书接上回啊,上一篇详细的介绍了下标准卡尔曼滤波,使用卡尔曼滤波进行更新和预测都是建立在线性系统的基础上,因为高斯分布xkx_kxk​预测后仍然是高斯分布,且高斯分布变换到观测空间后也仍然是符合高斯分布的。

然而,实际工程中,极少有系统是线性系统,那这种情况怎么使用卡尔曼滤波呢?

非线性处理

学过数学的都知道,线性函数可以使用下式进行表达,

f(x)=ax+b(1)f(x)=ax+b \tag{1} f(x)=ax+b(1)

然而其他的函数,比如,f(x)=ax2+bx+cf(x)=ax^2+bx+cf(x)=ax2+bx+c,f(x)=sin⁡xf(x)=\sin{x}f(x)=sinx,f(x)=ln⁡xf(x)=\ln{x}f(x)=lnx,f(x)=axf(x)=a^xf(x)=ax等,这些都不是线性函数,按道理来说是都没办法使用卡尔曼滤波的,那工程中如何使用卡尔曼滤波呢?比如无人驾驶中的车辆运动学模型,如何使用卡尔曼滤波对车辆的位置进行跟踪?

大学那会都学过,任何光滑连续的曲线都是可微的,一个光滑的曲线可以用多个连续的短距离的直线来表示,如下图,


这就给我们在非线性系统上应用卡尔曼滤波提供了一种思路,可以使用泰勒级数对非线性系统进行展开,只取其一阶的泰勒级数,使用非线性系统当前位置的一阶泰勒级数进行近似和逼近。

扩展卡尔曼滤波

上面介绍了,如何将非线性系统通过泰勒展开成一阶系统,现在,来看一下EKF的整体计算流程。其实,扩展卡尔曼滤波与的整体流程与标准卡尔曼是大致相同的,如下,

第一步,确定状态预测方程,
x^k=Fkx^k−1+Bku⃗kPk=FkPk−1FkT+Qk(2)\hat{x}_{k}=F_{k} \hat{x}_{k-1} +B_{k}\vec{u}_{k} \\ \space P_{k}=F_{k}P_{k-1}F_{k}^{T} +Q_{k} \tag{2} x^k​=Fk​x^k−1​+Bk​uk​ Pk​=Fk​Pk−1​FkT​+Qk​(2)

第二步,计算卡尔曼增益,
K′=PkHkT(HkPkHkT+Rk)−1(3)K^{'}=P_{k}H_{k}^{T}(H_{k}P_{k}H_{k}^{T}+R_{k})^{-1}    \tag{3} K′=Pk​HkT​(Hk​Pk​HkT​+Rk​)−1    (3)

第三步,更新系统状态和协方差矩阵,
x^k′=x^k+K′(z⃗k−Hkx^k)Pk′=Pk−K′HkPk(4)\hat{x}_{k}^{'}=\hat{x}_{k}+K^{'}(\vec{z}_{k}-H_{k}\hat{x}_{k}) \\ \space \\ P_{k}^{'}=P_{k}-K^{'}H_{k}P_{k} \tag{4} x^k′​=x^k​+K′(zk​−Hk​x^k​) Pk′​=Pk​−K′Hk​Pk​(4)

第四步,将系统状态方程泰勒展开到一阶方程,并用此一阶方程作为下一个计算循环的系统方程,
Fk+1=δfδx^′x^k+1=Fk+1x^k+Bk+1u⃗k+1Pk+1=Fk+1PkFk+1T+Qk+1(5)F_{k+1} = \frac{\delta f}{\delta \hat{x}^{'}} \\ \hat{x}_{k+1}=F_{k+1} \hat{x}_{k} +B_{k+1}\vec{u}_{k+1} \\ \space P_{k+1}=F_{k+1}P_{k}F_{k+1}^{T} +Q_{k+1} \tag{5} Fk+1​=δx^′δf​x^k+1​=Fk+1​x^k​+Bk+1​uk+1​ Pk+1​=Fk+1​Pk​Fk+1T​+Qk+1​(5)

Apollo学习笔记(18)EKF相关推荐

  1. Apollo学习笔记3-定位模块配置

    Apollo学习笔记3-定位模块配置 环境介绍 导航设备参数配置 导航设备配置 (1)杆臂配置 (2)GNSS 航向配置 (3)导航模式配置 (4) USB 接口输出设置 (5)网口配置 (6) PP ...

  2. Hadoop学习笔记—18.Sqoop框架学习

    Hadoop学习笔记-18.Sqoop框架学习 一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据 ...

  3. Ext.Net学习笔记18:Ext.Net 可编辑的GridPanel

    Ext.Net GridPanel 有两种编辑模式:编辑单元格和编辑行. 单元格编辑: 行编辑: 可以看出,单元格编辑的时候,只有单元格会进入编辑模式,而行编辑模式中则对编辑行的所有可编辑字段统一进行 ...

  4. 华为HCIA-datacom 学习笔记18——SDN与NFV概述

    华为HCIA-datacom 学习笔记18--SDN与NFV概述 SDN与NFV概述 1.计算机时代的演进 1.1大型机 专门的硬件 专门的操作系统 专门的应用.(稳定性能好,但封闭) 1.2小型机 ...

  5. Apollo学习笔记

    Apollo学习笔记 Apollo课程 智能驾驶入门课程 无人驾驶概览 1.软件层分为三层: 实时操作系统(RTOS):确保在给定时间内完成特定任务,实时时确保系统稳定性.驾驶安全性的重要要求.通过在 ...

  6. 2020-4-12 深度学习笔记18 - 直面配分函数 5 ( 去噪得分匹配,噪声对比估计NCE--绕开配分函数,估计配分函数)

    第十八章 直面配分函数 Confronting the Partition Function 中文 英文 2020-4-8 深度学习笔记18 - 直面配分函数 1 ( 配分函数概念,对数似然梯度) 2 ...

  7. Apollo学习笔记 进阶课程之三:定位技术②

    Apollo学习笔记 进阶课程之三:定位技术② 百度的无人驾驶定位方案 1).GNSS定位 GPS误差来源: 上图为单点定位,基于TOA 载波定位技术:(RPK技术,PPP技术) RPK:可以在五秒内 ...

  8. Python学习笔记18:实操案例十五(记录用户登录日志,模拟淘宝客服自动回复)

    Python学习笔记18:实操案例十五(记录用户登录日志,模拟淘宝客服自动回复) 网课传送门:https://www.bilibili.com/video/BV1Sw411Z779?p=168& ...

  9. 【计算机网络学习笔记18】防火墙技术、入侵检测技术

    [计算机网络学习笔记18]防火墙技术.入侵检测技术 一.防火墙 防火墙 (firewall) :一种访问控制技术,通过严格控制进出网络边界的分组,禁止任何不必要的通信,从而减少潜在入侵的发生,尽可能降 ...

  10. 影像组学视频学习笔记(18)-使用MRIcroGL软件格式转换、勾画ROI、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(18)主要介绍: 使用MRIcroGL软件进行格式转换.勾画ROI并保存为mask文件 MRIcroGL 是一款免费.开源的轻量级软件: ...

最新文章

  1. SELinux与强制访问控制系统应用
  2. 第十章 使用机器学习的建议-机器学习老师板书-斯坦福吴恩达教授
  3. 【网络安全】xhCMS代码审计思路
  4. WinForm部署问题
  5. 关于数据库更新插入语句
  6. edwardcmh@cnblogs
  7. display:inline-block带来的问题及解决办法
  8. getch方法_C语言中getch()函数详解及简单实例
  9. 需要一款管理链接的软件
  10. 关于qt 开发的灵异事件
  11. 【深入理解计算机系统】CSAPP-实验四:ArchLab全网最详细
  12. 山寨免费软件的阴谋!
  13. Excel 2010 VBA 入门 095 数据处理之用数组实现分列
  14. 广义表,广义表的定义和计算
  15. 机器学习----决策树(一)
  16. win11 下beyondcompare 右键菜单中无“比较“
  17. Bloc入门之Bloc详解
  18. ccache高速编译工具
  19. java获取cpu数量
  20. php 星座,PHP根据年月日期计算所属星座名

热门文章

  1. Android 点击图标使APP由后台切换至前台重新启动欢迎页的问题
  2. Linux没有fstab文件,Linux配置文件fstab
  3. Python Gauge框架
  4. ASP.NET javascript实现图片切换
  5. 买了台九号E200的车,原装电池要九千左右,自己买了20块大单体锂电和彦阳的保护板装了个60AH锂电池,比原装还大6AH,不需要改仓还能直接装到电池仓里面,支持双店模式,可以多跑个十几公里,关键装出来
  6. FastText的简单介绍
  7. 家具企业如何降低管理成本
  8. IEEE VR 2022
  9. 猴子吃桃问题用循环解决 C语言 超简单
  10. 制定项目计划,确保团队协同效率