Sensor.TYPE_ROTATION_VECTOR有漂移:是否有其他选择



我正在Android上试用Sensor.TYPE_ROTATION_VECTOR。它应该使用磁场传感器、加速度计和陀螺仪来随时提供准确的旋转。然而,我注意到在Moto G 2nd上发生了巨大的漂移。我想知道这是一个特定于设备的问题,还是发生在很多手机上(我认为这是可能的,尽管我知道Moto G 2nd的陀螺仪有问题)。

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

https://play.google.com/store/apps/details?id=org.hitlabnz.sensor_fusion_demo有一些我刚刚找到的方便的替代品。我仍然需要测试哪种聚变能产生最稳定的结果。来源:https://bitbucket.org/apacha/sensor-fusion-demo/src。

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

独立于平台/硬件的方法

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

一般方法包括:

  • 听磁强计的变化通知,随着时间的推移摊销。这会使您在设备方向更改方面发生大的更改
  • 听陀螺变化通知,随着时间的推移摊销。这会使您的设备方向发生小的变化

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

最新更新