摘抄自 作者:marine0131 链接:https://www.jianshu.com/p/44ff7281d4df
首先得明白P Q R这些矩阵的含义与来源
Q:过程激励噪声的协方差矩阵。翻译成这个名字是由时间序列信号模型的观点,平稳随机序列可以看成是由典型噪声源激励线性系统产生,故译作过程激励噪声。
R:观测噪声的协方差矩阵
P:不断迭代计算的估计误差的协方差矩阵
kalman滤波的过程:
滤波器估计过程某一时刻的状态,然后以(含噪声的)测量变量的方式获得反馈。因此卡尔曼滤波器可分为两个部分:时间更新方程和测量更新方程。时间更新方程负责及时向前推算当前状态变量和误差协方差估计的值,以便为下一个时间状态构造先验估计。测量更新方程负责反馈——也就是说,它将先验估计和新的测量变量结合以构造改进的后验估计。时间更新方程也可视为预估方程,测量更新方程可视为校正方程。最后的估计算法成为一种具有数值解的预估-校正算法。
典型的公式中,前两个是时间更新方程,后三个是状态更新方程(公式中( − 代表先验,ˆ代表估计)
参数解释和公式
这里有两个空间,状态空间n*1,观测空间m*1,往往观测量和状态量为同一个量,比如我观测机器人的位置(x,y),同时我要估计的也是机器人的位置(x,y),此时H观测模型矩阵为单位矩阵。但是也存在不同的情况,比如我观测的是机器人的速度和姿态,我估计的是机器人的位置,此时H观测模型矩阵需要根据不同情况自己设定。
均方误差中的门道
到这里,应该对Kalman 滤波有个总体的概念了,有几个观点很重要,是建立 Kalman 滤波器的基础:
一个是n-1对n时刻估计值,一个是n时刻的测量值,估计值和测量值都存在误差,且误差都假设满足独立的高斯分布
Kalman滤波器就是充分结合了估计值和测量值得到n时刻更接近真值的估计结果
Kalman滤波器引入状态空间的目的是避免了“像Wiener滤波器一样需要对过去所有[0,n-1]时刻协方差先验知识都已知”,而直接可以通过上一时刻即n-1时刻的状态信息和均方误差信息就可递推得到n时刻的估计。尽管递推使得实际应用中方便了,但n-1对n时刻的估计实际上使用到了所有前[0,n-1]时刻的信息,只不过信息一直通过最小均方误差进行传递到n-1时刻。基于此,Kalman滤波也需要先验知识,即-1时刻的初始值。
在上小节中只看到Kalman的结论,那么Kalman滤波器是如何将估计值和测量值结合起来,如何将信息传递下去的呢?这其中,“独立高斯分布”的假设条件功劳不可谓不大!测量值z(n)N(uz,σz^2),估计值x(n)N(ux,σx^2)。
Kalman滤波器巧妙的用“独立高斯分布的乘积”将这两个测量值和估计值进行融合!
如下图:估计量的高斯分布和测量量的高斯分布经过融合后为绿色的高斯分布曲线。