准确(方位角)罗盘方向Android 3.2平板电脑

时间:2012-04-10 19:46:43

标签: java android rotation tablet compass-geolocation

亲爱的程序员/编程人员/工程师/其他人,

问题: 我目前正在为Android 3.2平板电脑开发增强现实应用程序,并且在获取准确的指南针阅读方面存在一些问题。我需要确切知道平板电脑面向的(z)方向,从北方测量。无论是度数还是弧度都没关系。

我目前的尝试:

  1. 我用磁力计和加速度计计算角度。它有一个很大的缺点。如果旋转90度,传感器将测量更大或更小的角度。即使我在远离金属或任何磁性物体的空地上。即使是赤纬也无法解决问题。

  2. 使用陀螺仪是一种选择。我试图测量转速并将测量单位存储到变量中以了解确切的视图方向。似乎有一个因素导致失真。我发现快速旋转会扭曲精确的方向测量。陀螺仪的漂移并没有那么麻烦。应用程序检查其他传感器是否有任何移动。如果没有检测到,则不会考虑陀螺仪的旋转变化。

  3. 旋转矢量工作正常。它有一些问题,如陀螺仪。如果你慢慢地移动并突然停下来,它会漂走几秒钟。另一个问题是,根据速度和转弯次数的不同,快速旋转会不准确。 (当我在各个方向摆动平板电脑时,你不想知道我的同事是怎么看着我的。)

  4. 传感器。方向,没什么好说的。由于某种原因它被弃用,所以我不会使用它。互联网上的很多例子都使用这种传感器,它可能与磁/加速度计组合相同。

  5. 所以我现在已经没想到了。你能帮助我解决头脑风暴/解决问题吗? 提前谢谢你,罗兰

    • 编辑1: 我愿意提供我尝试的代码。

1 个答案:

答案 0 :(得分:1)

我在总结我们的意见:

  1. video可以清楚地看到手机上的传感器开始时并不是很准确。同样有趣的是this
  2. 重要的是用户通过保持手机平坦的8字形运动来校准传感器。应用程序可以编程方式检查是否需要进行此类校准并通知用户。有关详细信息,请参阅此question
  3. 为了消除抖动,从传感器获得的值需要通过某种低通滤波器进行滤波。这在StackOverflow上也是discussed
  4. 获得的方向不是真正的北方。要获得真北,必须使用GeomagneticField