ekf在python中的实现

Hello,大家好!我是MPIG2018级研究生陈守钊。今天给大家带来的是扩展卡尔曼滤波相关内容的介绍。扩展卡尔曼滤波器是在卡尔曼滤波器的基础之上改变了状态转移函数和测量函数,从而将卡尔曼滤波器的线性算子变为非线性算子,经典的卡尔曼滤波只适用于线性且满足高斯分布的系统。

首先我们看下本章主要内容:

1.卡尔曼滤波器基本知识

2.扩展卡尔曼滤波器介绍

3.扩展卡尔曼滤波器算法流程

4.代码示例讲解

扩展卡尔曼滤波器与卡尔曼滤波器之间的区别与联系:

非线性模型利用泰勒级数展开进行线性化处理:

扩展卡尔曼滤波与卡尔曼滤波算法流程:

预测过程:

更新过程:

更新是指:由基于k-1时刻对k时刻状态的估计值应当如何得到k时刻的估计值。卡尔曼的思想就是:用基于k-1时刻对k时刻状态的估计值与预测输出值和实际输出值之间的差进行线性组合得到k时刻的估计值,连接这两者的就是卡尔曼增益。这里体现的就是反馈的思想。

更新过程步骤:

算法流程图:

代码示例:

代码仿真结果:

扩展卡尔曼滤波器的应用扩展:

前面我们介绍了扩展卡尔曼滤波器的算法原理 ,并通过模拟一个简单的非线性运动模型对扩展卡尔曼滤波器算法进行了验证。事实上,扩展卡尔曼滤波你能做的不仅仅是定位为题。下面这个例子就是扩展卡尔曼滤波的应用扩展。

Extended Kalman Filter for Training Neural-Networks

若要对扩展卡尔曼滤波的应用有兴趣深入挖掘研究可以点击github链接,github上有着完整的代码与说明:

https://github.com/MPIG-Robot/robotics_in_python/tree/master/kalmaNN-master

想要更加详细了解本讲更多细节的内容吗?那就一起来观看下面的Presentation的具体讲解吧:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181107G1KJCA00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励