0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

卡尔曼滤波家族

硬件攻城狮 来源:硬件攻城狮 2024-01-14 14:29 次阅读

最近在看 《概率机器人》,觉得关于贝叶斯滤波器确实也可以稍作总结,于是就写了这篇卡尔曼滤波家族。

本文对于扩展卡尔曼滤波、无迹卡尔曼滤波仅仅做了一些简要介绍,不再想上次的文章那样做详细地推导了。但只要看过之前写的卡尔曼滤波,相信这篇文章对于你来说也是很好理解的。

本文配图均来自《概率机器人》

扩展卡尔曼滤波

假设状态转移概率和测量概率分别由非线性函数g和h控制,而不再是一个线性变换:

7b8d3ac6-b28a-11ee-8b88-92fbcf53809c.png

这种情况下,由于线性变换的关系不在了,因此概率分布也不再是高斯分布。整个系统不再有闭式解,这是最让人头疼的。

而EKF的主要思想就是线性化:通过一个在高斯函数的均值处与非线性函数g相切的线性函数来近似g。

7b941530-b28a-11ee-8b88-92fbcf53809c.png

线性化的主要优点就是效率,一旦对g和h进行了线性化,KEF和KF就是等效的。

EKF采用一阶泰勒展开的方式来进行线性化,其根据g的值和斜率构造一个函数g的线性近似函数:

7baff73c-b28a-11ee-8b88-92fbcf53809c.png

7bb40598-b28a-11ee-8b88-92fbcf53809c.png

同理,将测量函数h线性化,有

7bb79f50-b28a-11ee-8b88-92fbcf53809c.png

最后,整个EKF算法的流程如下:

1. 运动更新:

7bbafb28-b28a-11ee-8b88-92fbcf53809c.png

2. 测量更新

7bc7c344-b28a-11ee-8b88-92fbcf53809c.png

很显然,EKF 能否成功应用取决于两个因素:

1. 被近似的函数的局部非线性化程度;

2. 概率分布自身的不确定度(协方差)。

7bcfd390-b28a-11ee-8b88-92fbcf53809c.png

7be7fb96-b28a-11ee-8b88-92fbcf53809c.png

7bec6992-b28a-11ee-8b88-92fbcf53809c.png

7c04a46c-b28a-11ee-8b88-92fbcf53809c.png

上两图就明确展示了非线性函数在近似点非线性程度越高、概率分布本身越不确定,所得到的近似结果就越差。此时,采用扩展卡尔曼滤波的效果往往很差,甚至会导致发散。

无迹卡尔曼滤波

不同于EKF使用线性化来近似非线性函数,UKF通过无损变换来近似一个高斯分布,它通过使用加权统计线性回归过程来实现随机线性化。

7c096754-b28a-11ee-8b88-92fbcf53809c.png

下面就介绍些UKF无损变换的思想。

7c0e7d8e-b28a-11ee-8b88-92fbcf53809c.png

7c12d122-b28a-11ee-8b88-92fbcf53809c.png

将以上过程分别代入到运动更新和测量更新中就可以得到无迹卡尔曼滤波了。

运动更新

7c26d762-b28a-11ee-8b88-92fbcf53809c.png

测量更新

7c2a7962-b28a-11ee-8b88-92fbcf53809c.png

7c2e0f96-b28a-11ee-8b88-92fbcf53809c.png

以上就是扩展卡尔曼滤波和无迹卡尔曼滤波的全过程了。只要明白了贝叶斯滤波或者卡尔曼滤波器,这两个扩展都是信手拈来。

SLAM中,KEF往往比UKF使用得更广。我个人浅见,主要原因有一下几点:


1. UKF是一种抽样近似,无可避免地导致计算量较大;

2. 只有在高度不线性的情况下(或方差很大),UKF才有明显的优势;

3. UKF的优势主要集中在开环的情况下,但SLAM中更常使用回环检测这样的闭环来消除误差;

4. 如果建图与定位分开,UKF在建图过程中的作用可能会大些(开环的情况下);在定位中,用其来提高运动模型作用不大,观测模型中准确地和地图进行匹配对定位精度影响更大。

信息滤波

信息滤波(IF)是卡尔曼滤波的对偶滤波算法,二者的不同在于对高斯分布的表示方式。

信息滤波以正则参数来表示高斯分布,由一个信息矩阵和信息向量组成。

7c31760e-b28a-11ee-8b88-92fbcf53809c.png

该式在一些情况下会比矩参数(卡尔曼滤波中均值和协方差分别是一阶矩和二阶矩)的表示更加简洁。例如,信息滤波下高斯分布的负对数为

7c727c30-b28a-11ee-8b88-92fbcf53809c.png

对应的信息滤波算法和扩展信息滤波算法如下。

信息滤波算法

对应的运动方程和测量方程为

7c7dbe10-b28a-11ee-8b88-92fbcf53809c.png

对应的信息滤波算法为:

7c816646-b28a-11ee-8b88-92fbcf53809c.png

对比信息滤波算法和卡尔曼滤波,二者在计算复杂度上有很大的不同。


信息滤波中运动更新涉及矩阵求逆,计算量大;但在卡尔曼滤波中运动更新只涉及状态向量的一部分。

而信息滤波中测量更新是增量的,而KF的测量更新涉及矩阵求逆而较为困难。这也展示了二者的特性是对偶的。

扩展信息滤波算法

7c84ba9e-b28a-11ee-8b88-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    3882

    浏览量

    61310
  • 卡尔曼
    +关注

    关注

    0

    文章

    21

    浏览量

    12139
  • 滤波算法
    +关注

    关注

    2

    文章

    82

    浏览量

    13661

原文标题:卡尔曼滤波家族

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【入门卡尔滤波器-03】卡尔滤波要完成的任务

    算法卡尔滤波
    硬件小哥哥
    发布于 :2022年06月20日 16:22:09

    卡尔滤波器介绍

    卡尔滤波器介绍卡尔滤波器介绍Greg Welch1and Gary Bishop2TR 95
    发表于 07-14 13:06

    卡尔滤波

    卡尔滤波的估计值能很好的逼近真实值,我的疑惑是,这和滤波有什么关系,请高手介绍下卡尔算法是如
    发表于 07-04 22:57

    卡尔滤波的原理说明

    转在学习卡尔滤波器之前,首先看看为什么叫“卡尔”。跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,
    发表于 09-21 11:41

    卡尔滤波算法

    已知测量值和原始值,但测量噪声和观测噪声未知,如何进行卡尔滤波。之前看了好像可以用自适应卡尔,但不是很懂,求例子,最好有注释的
    发表于 03-23 19:12

    卡尔滤波

    卡尔滤波的噪声协方差怎么配置啊?
    发表于 08-01 10:05

    LabVIEW一维卡尔滤波算法

    最近正在学习卡尔滤波算法,用LabVIEW仿照C语言写了个一维的卡尔滤波程序,不知写的对不对
    发表于 10-21 21:15

    卡尔滤波的基本原理及应用

    卡尔滤波的基本原理及应用
    发表于 05-05 09:26

    卡尔滤波的原理及如何实现

    卡尔滤波的原理和实现
    发表于 06-01 17:28

    卡尔滤波有哪些应用

    卡尔滤波风力发电机中的风速估计,转速估计甚至扭矩估计都设计到卡尔滤波,如果只是单一传感变量的
    发表于 07-12 06:00

    卡尔滤波器的使用原理

    [开发工具] STM32算法的翅膀之MATLAB基于加速度计与气压计的三阶卡尔滤波计算加速度、速度及高度主要介绍了卡尔
    发表于 08-17 07:02

    卡尔滤波C代码

    a往南向北 2019-01-16 20:39:20 11340 收藏 111分类专栏: C语言嵌入式 文章标签: 卡尔滤波 C代码卡尔
    发表于 08-17 09:10

    什么是卡尔滤波?具有哪些参数?

    什么是卡尔滤波?具有哪些参数?
    发表于 09-30 08:50

    卡尔滤波器是什么

    一、前言卡尔滤波器是一种最优线性状态估计方法(等价于“在最小均方误差准则下的最佳线性滤波器”),所谓状态估计就是通过数学方法寻求与观测数据最佳拟合的状态向量。在移动机器人导航方面,
    发表于 11-16 09:10

    卡尔滤波简介

    在这里我就不介绍卡尔的数学推算了,网上的数学推导一抓一大把,如果想了解推导过程的小伙伴可以去大佬的博客。如果你是想直接简单运用卡尔滤波
    发表于 02-28 14:24