Android Sensor.TYPE_旋转_矢量有漂移:是否有替代方案?

Android Sensor.TYPE_旋转_矢量有漂移:是否有替代方案?,android,accelerometer,gyroscope,magnetometer,sensor-fusion,Android,Accelerometer,Gyroscope,Magnetometer,Sensor Fusion,我正在Android上试用Sensor.TYPE_ROTATION_VECTOR。它应该使用磁场传感器、加速计和陀螺仪随时提供精确的旋转。然而,我注意到摩托G2出现了巨大的漂移。我想知道这是否是一个特定于设备的问题,或者这在很多手机上都会发生(我会假设,尽管我很熟悉Moto G 2nd的陀螺仪存在问题) 是否有无漂移的传感器融合替代形式(使用magnetsensor)?我也尝试过谷歌硬纸板的传感器融合,但它使用偏差估计,因此可能不会完全无漂移(因为magnetfieldsensor目前似乎没有使

我正在Android上试用Sensor.TYPE_ROTATION_VECTOR。它应该使用磁场传感器、加速计和陀螺仪随时提供精确的旋转。然而,我注意到摩托G2出现了巨大的漂移。我想知道这是否是一个特定于设备的问题,或者这在很多手机上都会发生(我会假设,尽管我很熟悉Moto G 2nd的陀螺仪存在问题)

是否有无漂移的传感器融合替代形式(使用magnetsensor)?我也尝试过谷歌硬纸板的传感器融合,但它使用偏差估计,因此可能不会完全无漂移(因为magnetfieldsensor目前似乎没有使用),尽管仍然比TYPE_ROTATION_VECTOR好很多

有一些我刚刚找到的方便的替代品。我仍然需要测试哪种融合会产生最稳定的结果。 来源:此处:

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

平台/硬件独立方法
  • 顾名思义,陀螺仪总是会漂移
  • 根据定义,磁强计将缺乏精度(*)
  • 加速计,就检测设备位置而言,毫无价值
  • 一般做法包括:

    • 听磁强计的变化通知,随着时间的推移进行摊销。这将使您在设备方向更改方面有较大的更改
    • 收听陀螺变化通知,并随时间进行摊销。这使您可以在设备方向更改中进行较小的更改


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

    谷歌一段关于传感器融合的老视频:漂移是否也在规定范围内<代码>的方差不得大于1e-7 rad^2/s^2/Hz(每Hz方差或rad^2/s)。允许方差随采样率变化,但必须受此值的约束。换句话说,如果你在1 Hz采样率下测量陀螺仪的方差,它应该不大于1e-7 rad^2/s^2。因为你看到的是持续时间很长的AR,这可能就是他们添加HiFI传感器功能的原因。
    android.hardware.Sensor.HiFI\u sensors