6

我正在使用 Android 设备来获取航向(方位角或偏航角)。

Android API 使用加速度计值 + 磁场来计算矩阵旋转,然后从该矩阵中提取方位角(又名 SensorManager.getOrientation(...))但结果非常不准确!特别是如果手机受到一些磁性物质的干扰。

然后我有陀螺仪,如果我整合陀螺波谷时间的值,我可以得到一个实际的角度,但就像每个人都知道的那样:p,这会受到漂移......在 10 秒后甚至很难我'米不动的角度漂移了10°...

所以这里我一方面是加速 + 磁电机的结果,它在磁场附近非常糟糕,另一方面我有陀螺仪的结果非常好,但随着时间的推移会漂移......

所以我的问题是,有没有一种简单或聪明的方法将这两个结果结合在一起以获得一种“稳健”的航向估计?我说很简单,因为我知道有卡尔曼滤波器.. 但即使很难,我也读了 50 次理论,我什么也不懂 :)。

谢谢!

4

3 回答 3

4

据我所知,卡尔曼滤波器或类似的东西都是在 SensorManager 中实现的。查看Android 设备上的传感器融合:运动处理的革命

您正在尝试解决已经解决的问题。

于 2011-11-09T08:50:42.213 回答
1

简而言之:

无法将陀螺仪 + 加速度计结合起来获得方位角(我精确)仅仅是因为加速度计无法感应 XY 轴上的加速度。

一种方法是将陀螺仪与指南针融合,但如果有磁扰动,那将不会很好

于 2011-12-06T19:27:03.407 回答
1

它似乎对陀螺仪传感器有一个非常普遍的混淆。我最近在这里回答了一个类似的问题,所以我建议任何对这些主题感兴趣的人看看这个问题和答案。

我在这个应用程序中使用了所描述的技术(一个集成陀螺仪读数以改善结果的指南针)。结果并不完美,但总体上比其他指南针要好得多。

于 2011-12-11T15:19:10.900 回答