与此问题类似:
CMDeviceMotion userAcceleration drift

我正在iOS5 SDK中使用CMDeviceMotion.userAcceleration绘制其x,y,z分量随时间的变化。就像上面的帖子一样,当我的iPhone 4s坐在平坦的表面上时,我看到z加速度分量始终显示较小的正值(0.005-0.015),而x和y分量始终沿零居中(-0.005-0.005)。

即使我的手机不动了一点,这个小的偏差也会不断增加估计的速度(我通过积分加速度数据来计算)。有什么已知的方法可以消除加速度计数据中的这种偏差吗?我不能简单地从z分量中减去偏差,因为如果设备处于任意方向,则该偏差似乎会沿重力轴分布在x y和z上。

我知道CMDeviceMotion.userAcceleration中的数据已经使用陀螺仪数据排除了重力,但是想知道是否有任何有效的方法来消除此残留偏差?

最佳答案

首先,您需要一些不会漂移的外部参考,例如GPS。然后,您必须执行传感器融合(想到卡尔曼滤波器)。否则,您将无法消除偏差,积分误差将无限期增长。

更新:您不能仅通过积分加速度来获得相对位移,请参见我对Android accelerometer accuracy (Inertial navigation)的回答。但是,我在此处给出一些示例,您实际上可以做什么。

如果检查我的答案,您会发现正是陀螺仪白噪声使积分无法实现。

关于iphone - 有什么办法可以消除加速度计数据中沿重力轴的小偏差,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9074947/

10-10 20:47