这张来自《机器人学中的状态估计》的图很好的概括了典型常见滤波算法的关系。
Bayes Filter(BF)提供了一个理论框架,产生了Gaussian filter(GF)和Particle filter(PF)两大类滤波算法。
GF的典型算法为Kalman filter(KF)是处理线性模型的最优估计,没有近似(因为高斯PDF经过线性变换后任然是高斯PDF)。对于非线性模型,KF演变出了Extended Kalman filter(EKF)和Unscented Kalman fliter(UKF)。
EKF是在K-1时刻的后验均值处对运动方程和观测方程进行泰勒展开线性化并套用KF。其公式与KF相比唯一改变是将KF中关于运动方程和观测方程的系数替换为EKF中各自的Jacobian即可。
UKF是蒙特卡洛方法和线性化方法的一种折中,通过sigma point点选取确定的样本,构建输出概率密度。
PF基于蒙特卡洛方法,用proposal分布进行采样,用观测模型计算权重,最终用粒子群来近似后延概率分布。
下面提供一些直观理解和编程实践的参考资料:
Kalman filter(KF)
陈光:无人驾驶技术入门(十三)| 手把手教你写卡尔曼滤波器zhuanlan.zhihu.comExtended Kalman filter(EKF)
陈光:无人驾驶技术入门(十八)| 手把手教你写扩展卡尔曼滤波器zhuanlan.zhihu.comUnscented Kalman fliter(UKF)
人类身份验证 - SegmentFaultsegmentfault.com https://starsmydestination.github.io/2017/05/09/UKF/starsmydestination.github.ioParticle filter(PF)
陈光:无人驾驶技术入门(二十)| 手把手教你用粒子滤波实现无人车定位zhuanlan.zhihu.com这些基本是基于Udacity的无人驾驶课程第二学期的项目,给出了直观的理解和编程实践。
但是对理论的推导有所欠缺,接下来我想基于《机器人学中的状态估计》和《视觉SLAM十四讲》补充出这几种滤波的理论推导。