我正在使用Android设备获取标题(方位角或偏航角)。
Android API使用Accelerometer值+ mganetic字段来计算矩阵旋转,然后从该矩阵中提取方位角(也称为SensorManager.getOrientation(...))但结果非常不准确!特别是如果手机受到某些磁性物质的干扰。
然后我有陀螺仪,如果我整合了陀螺仪时间的值,我就能得到一个实际的角度,但是大家都知道:p,这可能会漂移...... 10秒后甚至我没有移动10°的漂移角度......
所以这里我在一侧有accel + magneto的结果,它在磁场附近相当废话 而在另一方面,我有陀螺的结果非常好,但随着时间的推移漂移...
所以我的问题是,是否有一种简单或聪明的方法将两个结果组合在一起以获得一种“稳健”的航向估计?我说很容易因为我知道有卡尔曼滤波器。但是,即使是艰难的,我读了50次这个理论我也不能得到一个该死的东西:)。
谢谢!
答案 0 :(得分:4)
据我所知,在SensorManager中实现卡尔曼滤波器或类似的东西。查看Sensor Fusion on Android Devices: A Revolution in Motion Processing。
您正在尝试解决已经解决的问题。
答案 1 :(得分:1)
似乎对陀螺仪传感器存在非常普遍的混淆。我最近回答了一个类似的问题here,所以我建议任何对这些主题感兴趣的人来看看这个问题和答案。
我在这个application中使用了所描述的技术(一种集成陀螺仪读数以改善结果的指南针)。结果并不完美,但总体上比其他指南针要好得多。
答案 2 :(得分:0)
简而言之:
无法组合陀螺仪+加速度计来获取方位角(我精确)仅仅因为加速度计无法检测XY轴上的加速度。
一种方法是将陀螺仪与指南针融合,但如果存在磁性扰动则不会起作用