概念: 卡尔曼滤波(Kalman filtering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法。)
以机器人举例障碍物距离为例。现在已知“传感器测量的机器人离障碍物的距离”,“上个时刻机器人离障碍物距离”和“自己当前时刻的速度”这三个数据。
观测值:传感器测量的机器人与障碍物的距离,比如雷达直接测量机器人离障碍物距离7m;
估计值:假如上一秒离障碍物10m,速度是4m/s,那么现在这秒估计就离障碍物距离是6m。
那么此时存在一个问题:
即:观测值是7m,估计值是6m,相信哪个?
因为传感器会坏掉,估计坏了,此时观测值不准; 或者就是速度不一,然后导致估计值不准.
那么提出如下:
如果雷达测量的那个7m准确度是90%,根据速度估计出的那个6m准确度是80%,那么最终的距离估计结果就是:
r
e
s
u
l
t
=
1
−
0.9
0.8
+
0.9
∗
6
+
0.9
0.8
+
0.9
∗
7
=
6.52
result=1-\frac{0.9}{0.8+0.9} *6\quad +\quad {0.9\over 0.8+0.9}*7=6.52
result=1−0.8+0.90.9∗6+0.8+0.90.9∗7=6.52
其中:
0.9
0.8
+
0.9
\frac{0.9}{0.8+0.9} \quad
0.8+0.90.9
为卡尔曼增益,它就是表示这个传感器数据相对于根据速度计算出的估计值的靠谱程度。