我正在使用一个安卓设备来获取方向(方位角或偏航角)。
安卓 API 使用了加速度计值和磁场值来计算矩阵旋转,然后从该矩阵中提取出方位角(即 SensorManager.getOrientation(...))。但结果非常不准确!特别是如果手机受到某些磁性物质的干扰。
然后我有陀螺仪,如果我通过时间积分陀螺仪值,我就能得到实际的角度,但像每个人都知道的那样,这容易发生漂移...10秒后,即使我没有移动,角度也会偏移10°...
所以在一边我有加速计+磁力计的结果,在磁性场附近它相当垃圾;另一边是陀螺仪的结果非常好,但会随着时间漂移...
因此,我的问题是,有没有一种简单或聪明的方法将这两个结果组合在一起,以获得一种“鲁棒”的方向估计?我说简单是因为我知道有卡尔曼滤波器...但即使我读了50遍理论,我也一头雾水:)。
谢谢!
安卓 API 使用了加速度计值和磁场值来计算矩阵旋转,然后从该矩阵中提取出方位角(即 SensorManager.getOrientation(...))。但结果非常不准确!特别是如果手机受到某些磁性物质的干扰。
然后我有陀螺仪,如果我通过时间积分陀螺仪值,我就能得到实际的角度,但像每个人都知道的那样,这容易发生漂移...10秒后,即使我没有移动,角度也会偏移10°...
所以在一边我有加速计+磁力计的结果,在磁性场附近它相当垃圾;另一边是陀螺仪的结果非常好,但会随着时间漂移...
因此,我的问题是,有没有一种简单或聪明的方法将这两个结果组合在一起,以获得一种“鲁棒”的方向估计?我说简单是因为我知道有卡尔曼滤波器...但即使我读了50遍理论,我也一头雾水:)。
谢谢!