卡尔曼滤波
卡尔曼滤波是对贝叶斯滤波算法的一种具体实现。
卡尔曼滤波解决的是如何从多个不确定数据中提取相对精确的数据。卡尔曼滤波把模型算出来的状态值和传感器测出的值进行加权平均作为当前的状态值。卡尔曼滤波认为观测模型是正态分布,控制模型也是正态分布,状态线性变化。卡尔曼滤波最终求得一个概率分布,将概率分布的均值作为当前状态的最优估计值。
参考 How a Kalman filter works,in pictures
以机器人离某个障碍物的距离作为机器人状态来举例,假设机器人在时刻t,它观测到自己离障碍物距离是zt,它控制自己移动的命令是让它移动ut
这么远的距离,算法根据传感器数据和控制器数据估计出离某个障碍物的距离是xt,算法上个时刻估算出的距离是xt-1。状态估计即为计算概率:
P(xt|zt,ut,xt-1)
观测模型 P(zt|xt)
控制模型 P(xt|xt-1,ut) 卡尔曼滤波认为控制模型为线性模型
假设传感器观测值zt只与xt有关,假设当前状态xt只和上时刻状态xt-1以及控制指令ut有关
卡尔曼滤波假设机器人状态是线性变化的,假设观测值zt与机器人实际离目标的距离xt也是线性的,假设所有变量和噪声都服从高斯分布。