很多帖子谈论陀螺漂移问题。有些人说陀螺仪读数有漂移,但也有人说整合已经漂移。
答案 0 :(得分:16)
如果陀螺仪读数有"漂移",则称为偏差而不是漂移。
漂移归因于积分,即使偏差恰好为零也会发生漂移。漂移是因为你通过积分累积了读数的白噪声。
对于漂移取消,我强烈推荐Direction Cosine Matrix IMU: Theory手稿,我已根据它为Shimmer 2设备实施了传感器融合。
(编辑:该文档来自MatrixPilot项目,该项目已移至Github,可以在维基的下载部分找到。)
如果您坚持使用卡尔曼滤波器,请参阅https://stackoverflow.com/q/5478881/341970。
您为什么要实施自己的传感器融合算法?
Android(Sensor.TYPE_ROTATION_VECTOR
下的SensorManager)和iPhone(Core Motion)都提供了自己的功能。
答案 1 :(得分:1)
漂移是偏差的整合。当你整合时,这是偏见的可见“效果”。噪声 - 任何类型的平稳噪声 - 均值为零,因此具有整数零(我不是在谈论PSD的积分,而是在时间上积分的信号的加性噪声)。
偏差随时间变化,与电压和运动温度有关。例如。如果电压发生变化(并发生变化),则偏差会发生变化偏见不是固定的,也不是“可预测的”。 这就是为什么你不能使用建议的信号减去估计偏差来消除偏差的原因。任何估计都有错误。此错误及时累积。如果误差较小,累积效果(漂移)会在较长的时间间隔内显现,但仍然存在。
理论认为,在目前的日子里,完全消除偏见是不可能的。在现有技术水平上,没有人能够找到一种方法来消除偏置 - 仅基于陀螺仪和加速度计的磁力计 - 可以过滤掉所有的偏差。
Android和iPhone有限制偏差消除算法的实现。它们并非完全没有偏差效应(例如,间隔很小)。对于某些应用,这可能会导致严重的问题和不可预测的结果。
答案 2 :(得分:1)
在这次讨论中,由于理想的整合,阿里和斯特凡诺都提出了漂移的两个基本方面。
基本上零均值白噪声是理想化的概念,即使对于这种理想的噪声积分,也可以在低频噪声分量上提供更高的增益,从而在集成信号中引入低频漂移。从理论上讲,如果在相当长的时间内观察到零均值噪声不应该引起任何漂移,但实际上理想的积分永远不会起作用。
另一方面,如果对其执行理想的积分(无损耗求和),即使读数(输入信号)中的微小直流偏移也会在一段时间内引起显着的漂移。它可以提升系统中非常小的直流偏移,因为理想的积分在输入信号的直流分量上具有无限增益。因此,出于实际目的,我们用低通滤波器代替理想积分,低通滤波器的截止频率可以低到所需的但不能为零或太低,不能用于实际目的。
答案 3 :(得分:1)
在阿里的回复(感谢阿里!)的激励下,我做了一些阅读和一些数值实验,并决定发表关于陀螺漂移性质的回复。
我写了一个简单的octave online script绘图白噪声和积分白噪声:
问题中显示的减少偏移的角度图似乎类似于典型的随机游走。数学随机游走具有零均值,因此不能将其视为漂移。但是,我认为白噪声的数值积分会导致非零均值(如下面随机游走的直方图中所示)。这与线性增加的方差一起可能与所谓的陀螺仪漂移有关。
对陀螺仪和加速度计here引起的误差有很好的介绍。无论如何,我还有很多东西需要学习,所以我可能错了。
关于免费滤波器,有一些讨论here,显示陀螺仪漂移是如何减少的。这篇文章非常非正式,但我发现它很有趣。