android - 将陀螺仪与加速度计相结合以获得航向

标签 android orientation accelerometer gyroscope azimuth

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

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

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

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

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

谢谢!

最佳答案

据我所知,卡尔曼滤波器或类似的东西是在 SensorManager 中实现的。查看Sensor Fusion on Android Devices: A Revolution in Motion Processing .

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

关于android - 将陀螺仪与加速度计相结合以获得航向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8052171/

相关文章:

android - 如何将xml加载到webview android

android - adb logcat 挂起并显示 "waiting for device"消息

android - 布局土地不起作用?

android - 测量与特定应用程序相关的功耗

安卓实时绘图

ios - 如何在 swift 中使用加速度计和重力检测苹果 watch 的位置?

android - 如何在android中制作椭圆形按钮?

java - 获取 EditText 的字符数

android - 在 tabGroup 中如何防止单个窗口旋转?

objective-c - iOS 在旋转时重新组织图形