深度解读:卡尔曼滤波,如此强大的工具 你值得弄懂!

嵌入式ARM 2019-09-08 13:00


在网上看了不少与卡尔曼滤波相关的博客、论文,要么是只谈理论、缺乏感性,或者有感性认识,缺乏理论推导。能兼顾二者的少之又少,直到我看到了国外的一篇博文,真的惊艳到我了,不得不佩服作者这种细致入微的精神,翻译过来跟大家分享一下。

原文链接:http://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/


我不得不说说卡尔曼滤波,因为它能做到的事情简直让人惊叹!意外的是很少有软件工程师和科学家对对它有所了解,这让我感到沮丧,因为卡尔曼滤波是一个如此强大的工具,能够在不确定性中融合信息,与此同时,它提取精确信息的能力看起来不可思议。


什么是卡尔曼滤波?


你可以在任何含有不确定信息的动态系统中使用卡尔曼滤波,对系统下一步的走向做出有根据的预测,即使伴随着各种干扰,卡尔曼滤波总是能指出真实发生的情况。


连续变化的系统中使用卡尔曼滤波是非常理想的,它具有占用内存小的优点(除了前一个状态量外,不需要保留其它历史数据),并且速度很快,很适合应用于实时问题和嵌入式系统。


在Google上找到的大多数关于实现卡尔曼滤波的数学公式看起来有点晦涩难懂,这个状况有点糟糕。实际上,如果以正确的方式看待它,卡尔曼滤波是非常简单和容易理解的,下面我将用漂亮的图片和色彩清晰的阐述它,你只需要懂一些基本的概率和矩阵的知识就可以了。


我们能用卡尔曼滤波做什么?


用玩具举例:你开发了一个可以在树林里到处跑的小机器人,这个机器人需要知道它所在的确切位置才能导航。



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

注意这个状态只是关于这个系统基本属性的一堆数字,它可以是任何其它的东西。在这个例子中是位置和速度,它也可以是一个容器中液体的总量,汽车发动机的温度,用户手指在触摸板上的位置坐标,或者任何你需要跟踪的信号。


这个机器人带有GPS,精度大约为10米,还算不错,但是,它需要将自己的位置精确到10米以内。树林里有很多沟壑和悬崖,如果机器人走错了一步,就有可能掉下悬崖,所以只有GPS是不够的。


或许我们知道一些机器人如何运动的信息:例如,机器人知道发送给电机的指令,知道自己是否在朝一个方向移动并且没有人干预,在下一个状态,机器人很可能朝着相同的方向移动。当然,机器人对自己的运动是一无所知的:它可能受到风吹的影响,轮子方向偏了一点,或者遇到不平的地面而翻倒。所以,轮子转过的长度并不能精确表示机器人实际行走的距离,预测也不是很完美。


GPS 传感器告诉了我们一些状态信息,我们的预测告诉了我们机器人会怎样运动,但都只是间接的,并且伴随着一些不确定和不准确性。但是,如果使用所有对我们可用的信息,我们能得到一个比任何依据自身估计更好的结果吗?回答当然是YES,这就是卡尔曼滤波的用处。


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


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


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



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



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



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


这种相关性用协方差矩阵来表示,简而言之,矩阵中的每个元素表示第 i 个和第 j 个状态变量之间的相关度。(你可能已经猜到协方差矩阵是一个对称矩阵,这意味着可以任意交换 i 和 j)。协方差矩阵通常用“”来表示,其中的元素则表示为“”。



使用矩阵来描述问题


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


(1)


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



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



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



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


结合方程(4)和(3)得到:


外部控制量


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


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


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



以矩阵的形式表示就是:




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


外部干扰


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


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


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



原始估计中的每个状态变量更新到新的状态后,仍然服从高斯分布。我们可以说的每个状态变量移动到了一个新的服从高斯分布的区域,协方差为。换句话说就是,我们将这些没有被跟踪的干扰当作协方差为的噪声来处理。



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



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



由上式可知,新的最优估计是根据上一最优估计预测得到的,并加上已知外部控制量的修正。


新的不确定性上一不确定性预测得到,并加上外部环境的干扰。


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


用测量值来修正估计值


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



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



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



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



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



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


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



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


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



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


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



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


融合高斯分布


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



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



将式(9)代入到式(10)中(注意重新归一化,使总概率为1)可以得到:



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



下面进一步将式(12)和(13)写成矩阵的形式,如果 Σ 表示高斯分布的协方差,表示每个维度的均值,则:



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


将所有公式整合起来


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



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



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



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



总结


以上所有公式中,你只需要用到式(7)、(18)、(19)。(如果忘了的话,你可以根据式(4)和(15)重新推导一下)


我们可以用这些公式对任何线性系统建立精确的模型,对于非线性系统来说,我们使用扩展卡尔曼滤波,区别在于EKF多了一个把预测和测量部分进行线性化的过程。

(ps: 第一次用Markdown,添加图片和公式心累啊,什么时候能直接拖拽就好了~~)


(转自网络,感谢原作者辛苦分享)

嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论 (0)
  • 四、芯片封测技术及应用场景1、封装技术的发展历程 (1)DIP封装:早期分立元件封装,体积大、引脚少; (2)QFP封装:引脚密度提升,适用于早期集成电路。 (3)BGA封装:高密度互连,散热与信号传输优化; (4)3D封装:通过TSV(硅通孔)实现垂直堆叠,提升集成度(如HBM内存堆叠); (5)Chiplet封装:异质集成,将不同工艺节点的模块组合(如AMD的Zen3+架构)。 (6)SiP封装:集成多种功能芯片(如iPhone的A系列SoC整合CPU、GPU、射频模块)。2、芯片测试 (1
    碧海长空 2025-04-15 11:45 335浏览
  • 2025年4月13日(中国武汉)——在全球经济分化与地缘政治不确定性加剧的背景下,科技与金融的深度融合已成为推动创新与繁荣的关键动力。为实现科技创新、产业进步和金融发展有机结合,发挥金融对科技创新和产业进步的支持作用,国际金融论坛(IFF)科技金融委员会启动大会暨首届科技金融圆桌会议于4月13日在湖北省武汉市武汉产业创新发展研究院成功举行。同时,IFF科技金融委员会由国际金融论坛IFF与武创院联合成立。本次大会汇聚了来自政府、产业与学术研究机构及金融等多领域的精英,共同探讨科技金融如何更好地服务
    华尔街科技眼 2025-04-15 20:53 104浏览
  • 4月15日,京东全球购迎来十周年生日。为了回馈广大用户十年来的支持与信赖,早在4月初,京东全球购就已率先开启十周年庆典活动,为消费者带来了一场消费盛宴。来自全球各地的进口好物,以全场进口大牌1元抢、爆品低至5折、跨店每满200减30的优惠价格被呈现在消费者面前。同时,在迎来十周年庆典之际,京东全球购还宣布,未来一年,将投入亿级资源,升级四大商家扶持举措,包括提供仓配和流量等多项补贴,推出扶持新品、新商家等举措,助力更多进口商家降本提效,在京东获得可持续、高质量成长。十年如一日 打造跨境购物首选平
    华尔街科技眼 2025-04-16 16:18 119浏览
  • 瑞芯微电子(Rockchip)是国内领先的AIoT SoC设计制造企业,专注于智能应用处理器及周边配套芯片的研发。飞凌嵌入式作为瑞芯微的战略合作伙伴,已基于瑞芯微RK3399、RK3568、RK3588、RK3576、RK3562和RK3506系列处理器推出了多款嵌入式主控产品,包括核心板、开发板和工控机,这些产品已成功帮助数千家企业客户完成了项目的快速开发和落地。本文将系统地梳理飞凌嵌入式RK平台主控产品在开发过程中常用的命令,助力更多开发者快速掌握RK系列芯片的开发方法。01、查看CPU温度
    飞凌嵌入式 2025-04-16 15:50 174浏览
  • 一、智能门锁市场痛点与技术革新随着智能家居的快速发展,电子门锁正从“密码解锁”向“无感交互”进化。然而,传统人体感应技术普遍面临三大挑战:功耗高导致续航短、静态人体检测能力弱、环境适应性差。WTL580微波雷达解决方案,以5.8GHz高精度雷达感知技术为核心,突破行业瓶颈,为智能门锁带来“精准感知-高效触发-超低功耗”的全新交互范式。二、WTL580方案核心技术优势1. 5.8GHz毫米波雷达:精准感知的革命全状态人体检测:支持运动、微动(如呼吸)、静态(坐卧)多模态感知,检测灵敏度达0.1m/
    广州唯创电子 2025-04-15 09:20 139浏览
  • 在这个AI技术日新月异的时代,人工智能(AI)已经逐渐渗透到我们生活的方方面面,从工作到学习,从娱乐到医疗,AI都在以其独特的方式改变着我们的世界。作为一名计算机专业的大学老师,我近期有幸阅读了《AI帮你赢:人人都能用的AI方法论》一书,深感这本书不仅为专业人士提供了宝贵的AI使用技巧,更为广大学生打开了一扇通往AI世界的大门。 《AI帮你赢》一书于2024年12月正式出版,也是紧跟时代发展的一本书,最新的日期。这本书以通俗易懂的语言,系统地阐述了人工智能的核心理念、应用场景及实践方法
    curton 2025-04-16 21:47 99浏览
  •   水下装备体系论证系统软件全面解析   一、系统概述   水下装备体系论证系统软件是针对水下作战、资源勘探、海洋工程等需求,专门设计的信息化论证工具。该系统通过集成建模、仿真、优化等技术,对水下装备体系的使命任务、环境适应性、技术参数、作战效能等进行全流程分析,为装备体系设计、方案权衡和决策提供科学依据。   应用案例   目前,已有多个水下装备体系论证系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润水下装备体系论证系统。这些成功案例为水下装备体系论证系统的推广和应用提
    华盛恒辉l58ll334744 2025-04-16 17:03 157浏览
  • 三、芯片的制造1、制造核心流程 (1)晶圆制备:以高纯度硅为基底,通过拉晶、切片、抛光制成晶圆。 (2)光刻:光刻、离子注入、薄膜沉积、化学机械抛光。 (3)刻蚀与沉积:使用干法刻蚀(等离子体)精准切割图形,避免侧壁损伤。 (4)掺杂:注入离子形成PN结特性,实现晶体管开关功能。2、材料与工艺创新 (1)新材料应用: 高迁移率材料(FinFET中的应变硅、GaN在射频芯片中的应用); 新型封装技术(3D IC、TSV硅通孔)提升集成度。 (2)工艺创新: 制程从7nm到3nm,设计架构由F
    碧海长空 2025-04-15 11:33 290浏览
  • 一、引言:智能化趋势下的学爬玩具开发挑战随着早教理念的普及,学爬玩具作为婴幼儿早期运动能力开发的重要工具,市场需求持续增长。然而,传统学爬玩具开发面临多重挑战:需集成红外遥控、语音交互、电机控制等多模块,开发周期长、硬件成本高;复杂的红外编解码与语音功能实现依赖工程师深度参与,技术门槛陡增。如何以更低成本、更快速度打造差异化产品,成为行业亟待解决的痛点。二、传统开发模式痛点分析硬件冗余红外接收模块、语音芯片、主控MCU分立设计,导致PCB面积增加,BOM成本攀升。开发周期长需工程师独立完成红外协
    广州唯创电子 2025-04-16 08:40 151浏览
  • 一、引言:健康管理数字化浪潮下的血压监测转型在慢性病高发与老龄化加剧的双重压力下,家庭健康监测设备正从“被动测量工具”向“主动健康管家”演进。传统血压计虽能提供基础数值,却无法解决用户的核心痛点:数据如何解读?异常如何干预?风险如何预防?WT2605C芯片方案的诞生,通过“AI对话+云端互联+个性化服务”三重技术突破,重新定义了血压计的价值边界——它不仅是一台测量仪器,更是一个全天候在线的健康管理生态系统。二、传统血压计的局限与用户需求升级1. 功能单一性困境数据孤岛:仅显示收缩压/舒张压数值,
    广州唯创电子 2025-04-16 08:55 146浏览
  •   网络链路攻防战术对抗仿真系统软件深度剖析   一、系统概览   北京华盛恒辉网络链路攻防战术对抗仿真系统软件,是专为网络安全领域攻防对抗需求打造的高仿真平台。它模拟真实网络环境中的攻、防行为,为安全研究人员以及红队、蓝队提供实战训练和策略验证工具。该系统以动态仿真技术为核心,融合人工智能与大数据分析,实现攻防战术的自动推演与可视化展示 。   应用案例   目前,已有多个网络链路攻防战术对抗仿真系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润网络链路攻防战术对抗仿
    华盛恒辉l58ll334744 2025-04-16 14:42 97浏览
  • 一、芯片的发展历程总结:1、晶体管的诞生(1)电子管时代 20世纪40年代,电子管体积庞大、功耗高、可靠性差,无法满足计算机小型化需求。(2)晶体管时代 1947年,贝尔实验室的肖克利、巴丁和布拉顿发明点接触晶体管,实现电子信号放大与开关功能,标志着固态电子时代的开端。 1956年,肖克利发明晶体管。(3)硅基晶体管时代 早期晶体管采用锗材料,但硅更耐高温、成本低,成为主流材料。2、集成电路的诞生与发展 1958年,德州仪器工程师基尔比用锗材料制成世界上第一块含多个晶体管的集成电路,同年仙童半导
    碧海长空 2025-04-15 09:30 209浏览
  • 二、芯片的设计1、芯片设计的基本流程 (1)需求定义: 明确芯片功能(如处理器、存储、通信)、性能指标(速度、功耗、面积)及目标应用场景(消费电子、汽车、工业)。 (2)架构设计: 确定芯片整体框架,包括核心模块(如CPU、GPU、存储单元)的协同方式和数据流路径。 (3)逻辑设计: 通过硬件描述语言(如Verilog、VHDL)将架构转化为电路逻辑,生成RTL(寄存器传输级)代码。 (4)物理设计: 将逻辑代码映射到物理布局,涉及布局布线、时序优化、功耗分析等,需借助EDA工具(如Ca
    碧海长空 2025-04-15 11:30 249浏览
  • 多极电磁铁的核心应用领域一、工业制造领域1.‌磁性材料处理‌:用于多极磁环充磁,通过四极、六极或八极磁场设计,使磁环获得均匀或梯度分布的磁性能,提升电机、传感器等设备的效率‌。在电子束焊接中控制电子束的聚焦和偏转,增强焊接精度(如精密电子元件加工)‌。2.‌机械控制与自动化‌应用于旋转磁场导向系统,优化工业机器人、自动化产线中磁性物料的传输路径。配合电磁吸盘用于起重设备,实现对金属部件的快速吸附与释放,提高搬运效率。二、科研实验领域1.‌物理与材料研究‌在实验室中生成径向梯度磁场或均匀磁场,用于
    锦正茂科技 2025-04-16 09:39 86浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦