有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java精确(方位)指南针方向Android 3.2平板电脑

亲爱的程序员/脚本编写者/工程师/其他人:

问题: 我目前正在为安卓3.2平板电脑开发增强现实应用程序,在获取准确的指南针读数方面遇到了一些问题。我需要准确地知道平板电脑所面对的(z)方向,从北方测量。不管是度还是弧度

我目前尝试的是:

  1. 我用磁强计和加速计来计算角度。它有一个很大的缺点。如果旋转90度,传感器将测量一个更大或更小的角度。即使我身处远离金属或任何磁性物体的开阔区域。即使是磁偏角也不能解决这个问题

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

  3. 旋转向量工作正常。它有一些问题,比如陀螺仪。如果你移动缓慢,突然停下来,它会漂走几秒钟。另一个问题是,根据速度和你转了多少圈,快速旋转是不准确的。(你不想知道当我将平板电脑向各个方向摆动时,我的同事是如何看着我的……)

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

所以我现在没有主意了。你能帮我头脑风暴/解决方案吗? 事先谢谢你,你诚挚的,罗兰

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

共 (1) 个答案

  1. # 1 楼答案

    我总结一下我们的评论:

    1. 从这个{a1}可以清楚地看出,手机上的传感器一开始就不是很准确。同样有趣的是this
    2. 重要的是,用户要将手机放平,做一个8字形的动作来校准传感器。应用程序可以通过编程方式检查是否有必要进行校准,并通知用户。有关详细信息,请参见此question
    3. 为了消除抖动,从传感器获得的值需要通过某种低通滤波器进行滤波。这也是StackOverflow上的问题
    4. 获得的方向不是正北。要获得正北,必须使用GeomagneticField