如何在卡尔曼滤波器中建模不可预测的噪声?


9

背景:

我正在实现一个简单的卡尔曼滤波器,用于估计机器人的前进方向。该机器人配有指南针和陀螺仪。

我的理解:

我想代表我的国家作为一个2D向量,其中X是当前的前进方向和 ˙ X是旋转速率报告的陀螺仪。(x,x˙)xx˙

问题:

  1. 如果我的理解是正确的,则过滤器中将没有控制项。是真的吗 如果将状态作为一维矢量x 怎么办?然后呢我˙ X变,控制项ú?这两种方法会产生不同的结果吗?u(x)x˙u
  2. 众所周知,当指南针处于扭曲磁场中时,主要噪声源来自指南针。在这里,我认为高斯噪声不太明显。但是磁失真是完全不可预测的。我们如何在卡尔曼滤波器中对其建模?
  3. 在卡尔曼滤波器中,是否有必要假设“所有噪声都是白色的”?说,如果我的噪声分布实际上是拉普拉斯分布,是否仍可以使用卡尔曼滤波器?还是我必须切换到另一个滤波器,例如扩展卡尔曼滤波器?

Answers:


6
  1. θ˙^=ωgyro+w
    y^=x^
    y^
  2. 磁畸变将非常困难,因为如果您坐在任何地方,它将显示为常数偏移项-卡尔曼滤波器将无法很好地解决这一问题。我很确定您将需要映射变形,获取一些第二个绝对方向参考或仅接受变形。
  3. 您将频谱内容与概率分布混淆了。如果噪声是白色的,则每个样本完全独立于任何其他样本。如果噪声是拉普拉斯噪声,则每个样本都服从拉普拉斯分布。卡尔曼滤波器不喜欢有色噪声(但是您可以通过添加状态来处理)。当噪声为高斯分布且代价函数为平方和时,卡尔曼滤波器只是整体最优滤波器。对于任何其他噪声和成本函数,最佳滤波器可能是非线性的。但是对于任何零均值,白噪声和平方和成本函数,卡尔曼滤波器是找到的最佳线性滤波器。

(请注意,我给出的系统模型最终带有一个相当平凡的Kalman滤波器-如果您找不到其他估计圆规偏移的方法,可以使用互补滤波器组合这两个传感器输入,这样可能会更好。无论如何,所有卡尔曼计算最终都会咳出一个免费滤波器,而且很有可能您将对常量有足够的猜测,甚至可以猜测免费滤波器的交叉点并用它来完成)。

(也请注意,如果您有一些绝对位置参考,并且有一些方法可以估算速度,并且车辆始终朝着您指向的方向行驶,则可以通过使用以下方法非常有益地使用扩展的卡尔曼滤波器来校正罗盘失真:它实际移动的方向以校正罗盘方向)。

在我看来,丹·西蒙(Dan Simon,Wiley 2006)的最优状态估计是对卡尔曼滤波及其更复杂的弟兄(H无穷大,扩展卡尔曼,无味卡尔曼,甚至有点贝叶斯和粒子滤波)。它不会告诉您如何将其应用于类似这样的导航问题,但是如果所有问题都得到解决,生活中的乐趣会在哪里?如果您不能遵循Simon书中的数学方法,那么您可能应该问自己,是否能够以任何一种智能方式应用卡尔曼滤波器。


+1对于这种应用的互补滤波器似乎更合适。丹·西蒙的书也很好。本文是对卡尔曼滤波器的很好的介绍(同一作者)masys.url.tw/AU/2013SP/OpenCV/0513/kalman-dan-simon.pdf
ddevaz 2013年

@ddevaz是的,实际上我现在正在实现一个补充过滤器。但是问题在于它不会产生非常好的结果。因此,我正在考虑切换到另一个“更复杂的”过滤器...
Sibbs Gambling

我知道了。我已经编辑了答案,以包括一些有关使用陀螺仪,加速度计和磁力计进行卡尔曼滤波器实现的参考资料。
ddevaz

3
  1. 将没有控制输入项。您应该将(x,xdot)作为状态向量来正确地构造卡尔曼滤波器。

  2. 噪声的主要来源是指南针和陀螺仪。陀螺仪的噪声和漂移很大。通常来说,克服磁失真是非常具有挑战性的,但是有补偿技术

  3. 零均值多元正态分布噪声的假设是必要的,但是白噪声只是这种情况的特例。对于扩展的卡尔曼滤波器,该假设仍然需要成立。您可以研究其他类型的过滤器(粒子过滤器无味卡尔曼过滤器)。

卡尔曼滤波器设计/实施文件:

实现用于惯性/磁传感器的3D方向检测的传感器融合算法


因此,我不能离开KF来处理不可预测的磁失真吗?我应该先丢弃失真值,然后再离开KF来处理传感器噪声。对?
西伯斯赌博

是。卡尔曼滤波器将无法准确补偿磁畸变,因为变化可能很大。我会先尝试实现一些磁补偿,然后再实现卡尔曼滤波器。
ddevaz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.