本文为作者学习卡尔曼滤波算法后的学习总结,如有错误请指正,万分感谢!
前言
本文学自B站up主华南小虎队,原视频讲得很好,推荐去观看。原视频卡尔曼滤波讲解
一、简介
(1)作用
在学习卡尔曼滤波之前,我们首先要明白在使用该滤波器后,可以给我们带来什么好处?
在此给读者举出一个例子,方便更加直观地理解。
假若这是一个超声波测距输出的距离信号与时间关系的坐标轴。
红色波浪线代表为滤波的信号,可以看到未滤波前的信号起伏较大,导致其所产生的误差会对我们的信号采集产生影响。
为了得到一个相对稳定的信号,我们需要对信号进行滤波,图中的紫色波浪线就是滤波后的信号,可以看到数据平稳了很多,能够更好的被我们使用。
(2)应用系统
卡尔曼滤波适用于线性、高斯系统。
1.线性
线性指的是输入对输出造成影响,例如 y = kx+b。x的改变会对输出 y 的结果进行改变。
2.高斯
信号的噪声满足高斯分布,即在均值的某一方差范围内,噪声出现的概率普遍较高。
(3)原理
从宏观意义上来看,卡尔曼滤波的本质是对数据权重的调整。
在卡尔曼中,有一个估计值和观测值,我们通过对两个值的权重调整,得到最优结果。
二、状态空间表达式
在上文的简介中,我们初步了解了卡尔曼滤波的概念,此时我们需要引入两个方程来进一步学习。
(1)状态方程
= + +
- 是当前状态的当前值
- 就是 A * 上一个时刻的值,A 是某种关系,可以理解成一个系数。
- 是 B * 当前状态的输入值,同理,B也可以理解成一个系数。
- 是过程中产生的噪声,指外界条件(非人为)对当前状态产生影响。
(2)观测方程
= C* +
- 就是状态方程的输出结果。
- 是观测噪声,与观测仪器的误差有关。
- C 是一个系数。
从状态方程和观测方程的表达式中,我们可以得到以下框图
(3)示例
这里用一个对水壶加热的例子来进行理解加深
在这个例子中
我们可以对状态方程的表达式进行拆解 = + +
是上一时刻的水温。
是在这一时段内,水上升的温度。
是外界条件造成的噪声影响
由此我们可得出 的值
再将其带入观测方程表达式,加上 观测器的误差,即可获得 的值。
三、参数分析
(1)高斯白分布
(过程噪声)和 (观测噪声) 都符合高斯白分布,即均值为0的高斯分布
(2)参数定义
因为 符合 正态分布,所以可以设它的均值为0,方差为。
例:我们可以根据 GPS 来定位一个物体的位置,此时可以确定该物体在 1000m处,误差在8米之内,那么此时8米就是 (观测噪声), 方差可以是1m。
同理,可以设 的均值为0,方差为。
例:若现有一个滑板以 5m/s 的速度在运动,此时可能有一股8m/s的顺风来加快滑板的运动,那么8m/s就是 (过程噪声),方差 可以是1m/s。
(3)超参数
使用卡尔曼滤波时需要调节Q、R这两个参数的值,也就是过程噪声的方差和观测噪声的方差。
如果运动状态很理想,几乎没有噪声,那么Q就可以调小,反之则调大。
若观测器精度较高,那么R就可以调小,反之则调大。
四、卡尔曼公式理解
(1)汇总
先分析公式之前,我们首先需要先知道卡尔曼滤波的实现过程,简单来说,该过程就是使⽤上⼀次 的最优结果预测当前的值,同时使⽤观测值修正当前值,得到最优结果。
(2)先验估计
这个公式左边的值被称为先验估计值。
右边的第一个部分为 F * 上一个时刻的最优估计值(最终滤波结果),F为状态转移矩阵。
第二部分则是控制输入部分,B为控制矩阵。
(3)先验估计协方差
这个公式的左边是先验估计值的协方差,并且它是由先验估计值推算而来的。
在进行推算之前,我先引入两种协方差的表达公式,如下图所示
由于这个公式是求的先验估计值的协方差,所以我们可以直接将式子的左边替换,具体推算过程如下图。
(4)修正估计
这个公式的左边部分是卡尔曼滤波的最终结果。
右边部分是先验估计值 加上 (卡尔曼增益)*(观测值 - 先验估计值)。
如果状态模型很理想,几乎没有误差,那么先验估计值就为可信, 可以调小。
如果观测器更为精准,则调大 ,增加观测值的权重。
(5)更新卡尔曼增益
可以根据先验估计协方差的结果来对这里进行推导。 由于只需要求一个状态量,所以H矩阵可以简化成 1。
(6)更新后验估计协方差
这个公式的左边部分是最优估计值的协方差,右边部分是 先验估计值协方差 * 一个矩阵关系。
I 是一个单位矩阵。
(7)小结
在分析完这五个公式后,我们可以得知这是一个循环的过程,使得最终滤波结果会越来越精准。
简单来说,可以理解为:
- 先验估计值 = 上一时刻的最优估计值*矩阵 + 控制输入
- 先验估计协方差 = 上一时刻的最优估计值*矩阵 + 过程噪声协方差
- 卡尔曼增益 可以看似与 Q和R有关的表达式
- 最优估计值 = 先验估计值 + 卡尔曼增益*(测量值 - 先验估计值)
- 最优估计协方差 = (单位矩阵 - 卡尔曼增益)*先验估计协方差
五、卡尔曼滤波的使用
- 选择状态量、观测量
- 根据状态模型、观测模型构建方程
- 初始化参数(Q、R、P等等)
- 代入公式迭代
- 调节超参数
总结
本文简单分析了卡尔曼滤波的原理和公式,希望对各位读者有所帮助。
标签:总结,噪声,卡尔曼滤波,估计值,观测,协方差,算法,先验 From: https://blog.csdn.net/aaajjz/article/details/141723164