许多帖子都在谈论陀螺仪漂移问题。有些人说陀螺仪读数存在漂移,但是其他人则说积分存在漂移。
因此,我进行了一个实验。下面的两幅图是我得到的结果。下面的图表明陀螺仪读数根本没有漂移,但存在偏移。由于偏移,积分效果很差。所以似乎积分才是漂移的原因,对吗?
下一个图显示当偏移减小时,积分根本没有漂移。
![enter image description here](https://istack.dev59.com/rtyGF.webp)
![enter image description here](https://istack.dev59.com/oF4QY.webp)
另外,我进行了另一个实验。首先,我将手机静置在桌子上约10秒钟。然后将其向左旋转再恢复到原位。接着向右旋转再恢复到原位。下图很好地说明了角度。我所使用的只是减小偏移量然后进行积分。
所以,我在这里遇到的大问题可能是偏移量是陀螺仪漂移(积分漂移)的本质?在这种情况下,可以应用互补滤波器或卡尔曼滤波器来消除陀螺仪漂移吗?
感谢任何帮助。
Sensor.TYPE_ROTATION_VECTOR
似乎没有在所有设备上实现(在运行 Cyanogenmod 的 OnePlus One 上我从未收到任何事件)。还有一个已弃用的Sensor.TYPE_ORIENTATION
,以及使用加速计和磁力计读数计算滚转、俯仰和偏航的 API 函数。然而,我的经验是,在两个不同的设备上尝试从两个传感器获取偏航值后,精度介于普通和可怕之间,这取决于设备。 - user149408