13

我正在 Android 上试用 Sensor.TYPE_ROTATION_VECTOR。它应该使用磁场传感器、加速度计和陀螺仪来始终提供准确的旋转。但是,我注意到 Moto G 2nd 发生了巨大的漂移。我想知道这是否是特定于设备的问题,或者这发生在很多手机上(我会假设,尽管我很熟悉 Moto G 2nd 的陀螺仪是一个有问题的案例)。

是否有另一种形式的传感器融合,它是无漂移的(使用磁传感器)?我也尝试过 Google Cardboard 的传感器融合,但它使用偏差估计,所以可能不是完全没有漂移(因为此时似乎没有使用磁场传感器),尽管仍然比 TYPE_ROTATION_VECTOR 好很多。

4

2 回答 2

7

https://play.google.com/store/apps/details?id=org.hitlabnz.sensor_fusion_demo有一些我刚刚找到的方便的替代方案。我仍然必须测试哪种融合会导致最稳定的结果。来源:https ://bitbucket.org/apacha/sensor-fusion-demo/src 。

其中很多也显示出漂移;特别是那些使用陀螺仪的。

于 2015-12-07T22:05:30.123 回答
1

平台/硬件独立方法

  1. 根据定义,陀螺仪总是会漂移。
  2. 根据定义,磁力计将缺乏精度(*)。
  3. 加速度计,就检测设备位置而言,没有任何价值。

一般方法包括:

  • 听磁力计变化通知,随着时间的推移摊销。这使您在设备方向更改方面发生了很大变化。
  • 收听陀螺仪变化通知,随着时间的推移而摊销。这为您提供了设备方向更改的微小变化。

(*)在笛卡尔物理世界中,磁力计应该足够了,但在地球的宇宙中,你需要用陀螺仪来弥补磁力计更新频率、精度和外部因素的不足,它提供即时反馈。

于 2015-12-23T22:48:29.697 回答