技术分享 | 运动状态估计之卡尔曼滤波详解


今天将主要记录一下自己对机器人运动状态估计的学习,粒子滤波与卡尔曼滤波的讲述顺序稍做调整,主要是考虑到学习理解的难度,应该循序渐进。

那么主要讲述纲要如下:

1、卡尔曼滤波(kalman Filter,KF)原理与公式

2、经典卡尔曼滤波应用与简易代码实现

3、扩展卡尔曼滤波(Extended kalman Filter EKF)原理

4、无迹卡尔曼滤波(Unscented Kalman Filter,UKF)原理

至于粒子滤波与蒙特卡罗定位方法,因为和无迹卡尔曼滤波的部分思想有重叠,但又算是另外一种方法。

1、卡尔曼滤波原理与公式

图片1.png 

图片2.png 

图片3.png 

图片4.png 

2、卡尔曼滤波的案例分析与简易代码实现

图片5.png  

代码.png

随手写了一个,验证过单帧推进,具体迭代和需求根据大家使用来Ctrl+C,Ctrl+V,很好理解,不多赘述。

如果应用于多维场景,例如机器人的姿态分析等,涉及到了更多的C++应用,经常使用诸如Eigen,Vector等库,具体应用后续跟进SLAM分析。

3、扩展卡尔曼滤波(Extended kalman Filter EKF)

图片6.png 

图片7.png 

 图片8.png

4、无迹卡尔曼滤波(Unscented Kalman Filter,UKF)

图片9.png 

图片10.png 

图片11.png 

UKF总结

UKF的优点,在于①它本身不具备解析形式的导数和复杂的方程;②它的解算使用基本的线性代数,我们甚至不需要任何关于运动或观测模型的闭环形式,可以理解为黑盒运算。

其与EKF的泰勒一阶展开计算雅克比式计算不同,UKF计算到收敛的代价取决于sigmapoint的选取与初状态的情况。

 

以上便是关于KF,EKF,UKF的理论详解与部分几何化理解,并给出了KF的一个应用参考代码,当系统复杂时,引入更多的约束来参加运算,效果会更好,相关代码可以依据不同需求尝试编写解决。

学无止境,精益求精,在算法工程师的路上越走越远,越挖越深。

转自知乎作者:佳浩(SLAM算法工程师)

链接:https://zhuanlan.zhihu.com/p/395738793

 

阿木实验室致力于为机器人研发提供开源软硬件工具和课程服务,让研发更高效!

 

公众号:阿木实验室 ( 领取免费资料包)

官方淘宝店:阿木实验室(可购买硬件配件)

硬件咨询:yanyue199506(欢迎洽谈合作)

课程咨询:jiayue199506 (免费领取机器人工程师学习计划)

  • End -

技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术。