详解卡尔曼滤波原理

云脑智库 2022-03-23 00:00


来源 | 网络

智库 | 云脑智库(CloudBrain-TT)

云圈 | “云脑智库微信群”,请加微信:15881101905,备注您的研究方向

声明 | 本号聚焦相关知识分享,内容观点不代表本号立场,可追溯内容均注明来源,若存在版权等问题,请联系(15881101905,微信同号)删除,谢谢。


该文章原文是国外的一篇博文,对卡尔曼滤波的介绍使人通俗易懂,又有严谨的理论推导,是一篇不可多得的好文章,在此翻译过来和大家分享。原文链接:http://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/。


以下为原文翻译。


我不得不说说卡尔曼滤波器,因为它的作用非常惊人。然而,似乎很少有软件工程师和科学家真正了解它,这让我感到难过,因为它是在存在不确定性的情况组合信息的通用且强大的工具。它提取准确信息的能力令人惊奇。


什么是卡尔曼滤波器?


你可以在有不确定信息动态系统的任何地方使用卡尔曼滤波器,从而对系统接下来要做什么做出有根据的猜测。即使有干扰出现并打乱了你猜测的运动,卡尔曼滤波器通常也能很好地找出实际发生的情况。它可以利用我们想象不到的现象之间的相关性


卡尔曼滤波器非常适合连续变化的系统。它们的优点是内存占用少(除了前一个状态,不需要保留任何历史记录),而且速度非常快,非常适合实时问题和嵌入式系统。


在 Google 上找到的大多数地方,实现卡尔曼滤波器的数学运算看起来晦涩难懂。这是一种糟糕的情况,因为如果以正确的方式看待卡尔曼滤波器,它实际上非常简单且易于理解。因此,它是一个很棒的文章主题,我将尝试用许多清晰、漂亮的图片和颜色来照亮它。先决条件很简单:只需要对概率和矩阵有基本的了解。


我将从一个卡尔曼滤波器可以解决的问题的示例开始。


我们可以用卡尔曼滤波器做什么?


让我们举个玩具例子:你造了一个小机器人,它可以在树林里四处走动,机器人需要准确地知道自己的位置才能导航。



我们可以假设机器人有一个状态  ,它只表示位置和速度: 

请注意,状态只是有关系统底层配置的数字列表;它可以是任何东西。在我们的示例中,它是位置和速度,但它可能是关于油箱中的液体量、汽车发动机的温度、用户手指在触摸板上的位置或需要跟踪的任何数量的数据。


我们的机器人还有一个 GPS 传感器,精确到 10 米左右,这还不错,但它需要知道自己的位置比 10 米更精确。这些树林里有很多沟壑和悬崖,如果机器人错了几英尺以上,它可能会从悬崖上掉下来。所以只有 GPS 本身是不够的。



我们还知道机器人是如何移动的:发送命令到电机驱动轮子移动,机器人知道如果它朝一个方向前进且没有任何干扰,那么下一刻它可能会继续沿着该方向运动。


但机器人不知道它的运动的一切:它可能会受到风的冲击,车轮可能会打滑,或者在崎岖不平的地形上翻滚;所以轮子转动的量可能不能准确地代表机器人实际走了多远,预测也不会完美。


GPS 传感器告诉我们一些关于状态的信息,但只是间接的,并且带有一些不确定性或不准确性。我们的预测告诉我们一些关于机器人如何移动的信息,但也只是间接的,并且也存在一些不确定性或不准确性。


但是,如果我们使用所有可用的信息,我们能得到比任何一种估计本身都给我们更好的答案吗?当然答案是肯定的,这就是卡尔曼滤波器的用途。


卡尔曼滤波是如何看到你的问题的


下面我们继续以只有位置和速度这两个状态的简单例子做解释。 

我们并不知道实际的位置和速度,它们之间有很多种可能正确的组合,但其中一些的可能性要大于其它部分:



卡尔曼滤波假设两个变量(位置和速度,在这个例子中)都是随机的,并且服从高斯分布。每个变量都有一个均值  ,表示随机分布的中心(最可能的状态),以及方差  ,表示不确定性。



在上图中,位置和速度是不相关的,这意味着由其中一个变量的状态无法推测出另一个变量可能的值。下面的例子更有趣:位置和速度是相关的,观测特定位置的可能性取决于当前的速度:



这种情况是有可能发生的,例如,我们根据旧的位置来估计新位置。如果速度很快,我们可能已经移动很远了。如果速度很慢,则距离不会很远。跟踪这种关系是非常重要的,因为它带给我们更多的信息其中一个测量值告诉了我们其它变量可能的值,这就是卡尔曼滤波的目的尽可能地在包含不确定性的测量数据中提取更多信息


这种相关性协方差矩阵来表示。矩阵中的每个元素  表示第  个状态变量和第  个状态变量之间的相关度。又因为第  个状态变量和第  个状态变量之间的相关度等于第  个状态变量和第  个状态变量之间的相关度,故协方差矩阵是一个对称矩阵


协方差矩阵通常用  来表示,其中的元素则用  表示。



使用矩阵来描述问题


我们基于高斯分布来建立状态变量,所以在  时刻需要两个信息:最佳估计  (即均值,其它地方常用  表示),以及协方差矩阵  。 

当然,在这里我们只用到了位置和速度,实际上这个状态可以包含多个变量,代表任何你想表示的信息。接下来,我们需要根据当前状态k-1 时刻)来预测下一状态k 时刻)。记住,我们并不知道对下一状态的所有预测中哪个是“真实”的,但我们的预测函数并不在乎。它对所有的可能性进行预测,并给出新的高斯分布。



我们可以用矩阵  来表示这个预测过程:



它将我们原始估计中的每个点都移动到了一个新的预测位置,如果原始估计是正确的话,这个新的预测位置就是系统下一步会移动到的位置。那我们又如何用矩阵来预测下一个时刻的位置和速度呢?下面用一个基本的运动学公式来表示: 

 换句话说: 

现在,我们有了一个预测矩阵来表示是下一个时刻的状态,但是,我们仍然不知道怎么更新协方差矩阵。此时,我们需要引入另一个公式,如果我们将分布中的每个点都乘以矩阵  ,那么它的协方差矩  会怎样变化呢?很简单,下面给出公式: 

结合上面的方程,可得 


外部影响


我们并没有捕捉到一切信息,可能存在外部因素会对系统进行控制,带来一些与系统自身状态没有相关性的改变。

以火车的运动状态模型为例,火车司机可能会操纵油门,让火车加速。相同地,在我们机器人这个例子中,导航软件可能会发出一个指令让轮子转向或者停止。如果知道这些额外的信息,我们可以用一个向量  来表示,将它加到我们的预测方程中做修正。


假设由于油门的设置或控制命令,我们知道了期望的加速度  ,根据基本的运动学方程可以得到: 

以矩阵的形式表示就是: 

  称为控制矩阵,  称为控制向量(对于没有外部控制的简单系统来说,这部分可以忽略)。让我们再思考一下,如果我们的预测并不是100%准确的,该怎么办呢?


外部不确定性


如果这些状态量是基于系统自身的属性或者已知的外部控制作用来变化的,则不会出现什么问题。



但是,如果存在未知的干扰呢?例如,假设我们跟踪一个四旋翼飞行器,它可能会受到风的干扰,如果我们跟踪一个轮式机器人,轮子可能会打滑,或者路面上的小坡会让它减速。这样的话我们就不能继续对这些状态进行跟踪,如果没有把这些外部干扰考虑在内,我们的预测就会出现偏差。



在每次预测之后,我们可以添加一些新的不确定性来建立这种与“外界”(即我们没有跟踪的干扰)之间的不确定性模型



我们最初估计的每个状态变量更新到新的状态后, 仍然服从高斯分布,所以我们可以说  中的每个状态变量都移动到了一个新的服从高斯分布的区域,协方差为  。另一种说法是,我们将这些没有被跟踪的影响视为具有协方差  的噪声来处理。



这产生了具有不同协方差(但是具有相同的均值)的新的高斯分布。



我们通过简单地添加  得到扩展的协方差,下面给出预测步骤的完整表达式: 

由上式可知,新的最优估计是根据上一最优估计预测得到的,并加上已知外部控制量修正。而新的不确定性上一不确定预测得到,并加上外部环境的干扰


现在我们对系统可能的动向有了一个模糊的估计,用  和  来表示。如果再结合传感器的数据会怎样?


用测量值来修正估计值


我们可能会有多个传感器来测量系统当前的状态,哪个传感器具体测量的是哪个状态变量并不重要,也许一个是测量位置,一个是测量速度,每个传感器间接地告诉了我们一些状态信息。



注意,传感器读取的数据的单位和尺度有可能与我们要跟踪的状态的单位和尺度不一样,我们用矩阵  来表示传感器的数据。



我们可以计算出传感器读数的分布,用之前的表示方法如下式所示: 

卡尔曼滤波的一大优点就是能处理传感器噪声,换句话说,我们的传感器或多或少都有点不可靠,并且原始估计中的每个状态可以和一定范围内的传感器读数对应起来。



从测量到的传感器数据中,我们大致能猜到系统当前处于什么状态。但是由于存在不确定性,某些状态可能比我们得到的读数更接近真实状态。



我们将这种不确定性(如:传感器噪声)用协方差  表示,该分布的均值就是我们读取到的传感器数据,称之为  。


现在我们有了两个高斯分布,一个是在预测值附近,一个是在传感器读数附近。



我们必须在预测值粉红色)和传感器测量值绿色)之间找到最优解。


那么,我们最有可能的状态是什么?对于任何可能的读数  ,有两种情况:(1)传感器的测量值;(2)由前一状态得到的预测值。如果我们想知道这两种情况都可能发生的概率,将这两个高斯分布相乘就可以了。



剩下的就是重叠部分了,这个重叠部分的均值就是两个估计最可能的值,也就是给定的所有信息中的最优估计


瞧!这个重叠的区域看起来像另一个高斯分布。



如你所见,把两个具有不同均值和方差的高斯分布相乘,你会得到一个新的具有独立均值和方差的高斯分布!下面用公式讲解。


融合高斯分布


先以一维高斯分布来分析比较简单点,具有方差  和  的高斯曲线可以用下式表示: 

如果把两个服从高斯分布的函数相乘会得到什么呢?


  

将高斯曲线表达式代入到上式中(注意重新归一化,使总概率为 1)可以得到: 

将式(11)中的两个式子相同的部分用  表示:


将上式写成矩阵形式,如果  表示高斯分布的协方差,  表示每个维度的均值,则:


矩阵  称为卡尔曼增益,下面将会用到。放松!我们很快要完成了!


将所有公式整合起来


我们有两个高斯分布,预测部分  ,和测量部分  ,我们将它们放到式(15)中算出它们之间的重叠部分: 

由式(14)可得卡尔曼增益为: 

 将上两式的两边同时左乘矩阵的逆(注意  里面包含了  )将其约掉,再将式中第二个等式两边同时右乘矩阵  的逆得到以下等式:


上式给出了完整的更新步骤方程。  就是新的最有估计,我们可以将它和  放到下一个预测和更新方程中不断迭代。



该文章翻译参考

https://blog.csdn.net/u010720661/article/details/63253509。

- The End

版权声明:欢迎转发本号原创内容,转载和摘编需经本号授权并标注原作者和信息来源为云脑智库。本公众号目前所载内容为本公众号原创、网络转载或根据非密公开性信息资料编辑整理,相关内容仅供参考及学习交流使用。由于部分文字、图片等来源于互联网,无法核实真实出处,如涉及相关争议,请跟我们联系删除。我们致力于保护作者知识产权或作品版权,本公众号所载内容的知识产权或作品版权归原作者所有。本公众号拥有对此声明的最终解释权。

投稿/招聘/推广/合作/入群/赞助 请加微信:15881101905,备注关键词

“阅读是一种习惯,分享是一种美德,我们是一群专业、有态度的知识传播者.”

 阅读原文加入知识星球,发现更多精彩内容.

 分享💬 点赞👍 在看❤️@以“三连”行动支持优质内容! 

云脑智库 努力是一种生活态度,与年龄无关!专注搬运、分享、发表雷达、卫通、通信、化合物半导体等技术应用、行业调研、前沿技术探索!专注相控阵、太赫兹、微波光子、光学等前沿技术学习、分享
评论
  •        随着对车载高速总线的深入研究,以电信号为媒介的传输方式逐渐显露出劣势,当传输速率超过25Gbps时,基于电信号传输已经很难保证长距离传输下的信号质量与损耗。在这样的背景下,应用于工业领域的光通信技术因其高带宽、长距离、低电磁干扰的特点得到了密切的关注,IEEE在2023年发布了802.3cz[1]协议,旨在定义一套光纤以太网在车载领域的应用标准。MultiGBASE-AU总览       以下是Mult
    经纬恒润 2024-12-17 17:29 77浏览
  •   前言  作为一名电子专业的学生,半导体存储显然是绕不过去的一个坎,今天聊一聊关于Nand Flash的一些小知识。  这里十分感谢深圳雷龙发展有限公司为博主提供的两片CS创世SD NAND的存储芯片,同时也给大家推荐该品牌的相关产品。  一、定义  存储芯片根据断电后是否保留存储的信息可分为易失性存储芯片(RAM)和非易失性存储芯片(ROM)。  非易失性存储器芯片在断电后亦能持续保存代码及数据,分为闪型存储器 (Flash Memory)与只读存储器(Read-OnlyMemory),其中
    雷龙发展 2024-12-17 17:37 66浏览
  •  2024年下半年,接二连三的“Duang Duang”声,从自动驾驶行业中传来:文远知行、黑芝麻、地平线、小马智行等相继登陆二级市场,希迪智驾、Momenta、佑驾等若干家企业在排队冲刺IPO中。算法模型的历史性迭代与政策的不断加码,让自动驾驶的前景越来越清晰。由来只有新人笑,有谁听到旧人哭。在资本密集兑现的自动驾驶小元年里,很多人可能都已经遗忘,“全球自动驾驶第一股”的名号,曾经属于一家叫做图森未来的公司。曾经风光无两的“图森”,历经内讧与退市等不堪往事之后,而今的“未来”似乎被锚
    锦缎研究院 2024-12-18 11:13 77浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-18 14:02 77浏览
  • 以人形机器人和通用人工智能为代表的新技术、新产品、新业态蓬勃发展,正成为全球科技创新的制高点与未来产业的新赛道。01、Optimus-Gen 2来了,人形机器人管家还远吗?没有一点点防备,特斯拉人形机器人Optimus-Gen 2来了!12月13日,马斯克于社交媒体上公布了特斯拉第二代人形机器人的产品演示,并预计将于本月内发布。在视频中,Optimus-Gen 2相比上一代有了大幅改进,不仅拥有AI大模型的加持,并在没有其他性能影响的前提下(相比上一代)将体重减少10kg,更包含:由特斯拉设计的
    艾迈斯欧司朗 2024-12-18 12:50 75浏览
  • 上汽大通G90是一款集豪华、科技与舒适于一身的中大型MPV,号称“国产埃尔法”。在国内市场,作为“卷王”的G90主要面向中大型MPV市场,满足家庭出行、商务接待和客运租赁等多元化场景需求,在国内市场上取得了不错的销售成绩。在海外市场,上汽大通G90也展现出了强大的竞争力,通过技术创新和品质提升,上汽大通的产品在国际市场上获得了广泛认可,出口量持续增长,如果你去过泰国,你就应该可以了解到,上汽的品牌出海战略,他们在泰国有建立工厂,上汽大通G90作为品牌的旗舰车型之一,自然也在海外市场上占据了重要地
    lauguo2013 2024-12-18 10:11 82浏览
  • 户外照明的“璀璨王者”,艾迈斯欧司朗OSCONIQ® C3030降临啦全球领先的光学解决方案供应商艾迈斯欧司朗(瑞士证券交易所股票代码:AMS)近日宣布,推出新一代高性能LED——OSCONIQ® C 3030。这款尖端LED系列专为严苛的户外及体育场照明环境而设计,兼具出色的发光强度与卓越的散热效能。其支持高达3A的驱动电流及最大9W的功率输出,以紧凑扁平封装呈现卓越亮度和可靠性,确保高强度照明持久耐用且性能出众。应用领域01体育场及高杆照明OSCONIQ® C 3030以卓越的光通量密度、出
    艾迈斯欧司朗 2024-12-18 14:25 82浏览
  • 车载光纤通信随着ADAS(高阶驾驶辅助系统)、汽车智能网联、V2X和信息娱乐技术的不断发展,车载电子系统和应用数量迅速增加。不断增长的车内传输数据量对车载通信网络造成了巨大的数据带宽和安全性需求,传统的车载总线技术已经不能满足当今高速传输的要求。铜缆的广泛使用导致了严重的电磁干扰(EMI),同时也存在CAN、LIN、FlexRay等传统总线技术不太容易解决的问题。在此背景下,车载光纤通信技术逐渐受到关注和重视,除了大大提高数据传输率外,还具有抗电磁干扰、减少电缆空间和车辆质量等优点,在未来具有很
    广电计量 2024-12-18 13:31 68浏览
  • 2003年买的电子管功放机,俗称胆机,坏过几次,咨询厂家,购买零件,自己修理,干中学,学中干。有照片记录的是2011年3月,一天,发现整流管比之前红亮了很多,赶紧关机,想找原因,反反复复折腾了几个月,搞好了。就此,还在网上论坛咨询和讨论,欧博Rererence 5.0电子管发粉红色光,何故?-『胆艺轩音响技术论坛』-胆艺轩[Tubebbs]论坛 发表于2011-5-7同时与厂家联系得到支持,见文:29kg胆机修理之联想——环保简易,做到真难!-面包板社区 发表于2011-6-13又继续使用了多年
    自做自受 2024-12-17 22:18 158浏览
  • You are correct that the length of the via affects its inductance. Not only the length of the via, but also the shape and proximity of the return-current path determines the inductance.   For example, let's work with a four-layer board h
    tao180539_524066311 2024-12-18 15:56 76浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦