您的位置:首页 > 其它

惯性测量模块数据的卡曼滤波(Kalman filtering of IMU data)

2014-08-24 19:18 477 查看

介绍

对我们大多数人来讲,卡曼滤波如同圣杯(grail)一样让人感到神秘。实际生活上,它经常能很神奇的帮我们解决一些其他方法很难把握的难题,但是值得注意的是,卡曼滤波并非一剂“神药”,包治百病。

本文将采用许多实例方法来解释卡曼滤波的原理,以避免那些难以理解又令人心烦的理论。由于绝大部分人们仅仅用它来处理有人飞行(MAV)或无人飞行器(UAV)的东西,所以本人将用一些更具体的与飞行相关的东西代替容易让人感到困惑的一般性方法。

首先确保你从之前的文章中了解来自加速度计(accelerometers)和陀螺仪(gyroscopes)的数据是如何使用的,这样有便于后面的一些基础的算法知识的展开。

基础算法

卡曼滤波方法中的迭代滤波需要做两方面的事情。

首先,你需要某种类型的输入量(单输入或多输入信号源),可以将它仅采用线性计算方法变为一种可预测的预估输出量。换句话讲,我们需要针对某个问题的一种线性模型。

其次,还需要另一种输入量,这可以是真实世界中可被预测的一种变量,或者有时是该变量的一种比较准确的近似预测。在每次卡曼滤波迭代中,它都会少许改变我们线性模型的变量,以致线性模型的输出会接近于第二次的输入量。

一个简单模型实例

显而易见,我们的两个输入量由陀螺仪和加速度数据组成。采用陀螺仪数据的模型可以表示成如下形式:



第一个公式代表了线性模型的通用格式。从公式可以知道,我们需要A、B矩阵,而且还要选择一个状态变量x,这里变量u代表输入。在我们的例子中就代表了陀螺仪的数据。请记住的是我们是如何积分的:我们仅仅加上一个归一化(NORMALIZED)的测量值:

alpha k = alpha k-1 + (_u_ k – bias)

由于我们处理的是速率(degree/s),所以我们还需要将两次测量时间间隔(__dt__)包含进来:

alpha k = alpha k-1 + (_u_ k – bias) * dt

重新整理为:

alpha k = alpha k-1 – bias * dt + u k * dt

谨记的是:我们的偏差(bias)保持为常量!在陀螺仪相关的教程中,我们曾经知道该值实际上是浮动的。ok,接下来就是就是见证卡曼滤波奇迹的时刻:通过和加速度计的输出比较(我们的第二个输入量),滤波器会在每次迭代中自动调整偏差(bias)!Great(:>)!

总结一下

...

自己翻译,原文地址:http://tom.pycke.be/mav/71/kalman-filtering-of-imu-data
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  卡曼滤波 算法 UAV
相关文章推荐