什么是卡尔曼滤波?我们能用卡尔曼滤波做什么?-飞外网

卡尔曼滤波器是传感器融合工程师用于自动驾驶汽车的工具。想象一下,你有一个雷达传感器,告诉你另一辆车距离15米,一个激光传感器说车辆距离20米。你如何协调这些传感器测量?这就是卡尔曼滤波器的功能。卡尔曼滤波在自动驾驶汽车上的应用十分广泛,本文讲述卡尔曼滤波算法,希望对你有所帮助。

卡尔曼滤波算法在控制领域有极广泛的应用,在发动机燃油喷射控制中,可以应用扩展的卡尔曼滤波理论研究瞬态工况下发动机循环进气量的最优估计算法,在雷达中,人们感兴趣的是跟踪目标,但目标的位置、速度、加速度的测量值往往在任何时候都有噪声。卡尔曼滤波利用目标的动态信息,设法去掉噪声的影响,得到一个关于目标位置的好的估计。

为了以后更好的工程实践应用卡尔曼滤波算法,今天小编带领着大家了解卡尔曼滤波算法的理论。

什么是卡尔曼滤波?

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

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

在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多了一个把预测和测量部分进行线性化的过程。


人工智能正在为聊天机器人技术注入新的活力。NLP 等工具允许企业使用聊天机器人来改进支持操作并满.... 星星科技指导员 发表于 07-04 11:03 •
相扑机器人控制器 飞外网站提供《相扑机器人控制器.zip》资料免费 发表于 07-04 10:30 •
使用实时数据对工程决策的真正意义是什么 在构建模型时,工程师通常会对数据集进行平滑和下采样。对于实时数据,添加了频域,在模型分析数据之前.... 星星科技指导员 发表于 07-04 10:06 •
MEMS传感器领域关于“带状薄膜抗拉性能的试验方法”      我们知道,微机电系统(MEMS)传感器是采用微电子和微机械加工技术制造出来的新型传感器。与.... 发表于 07-04 10:02 •
离线飞外网居系统为用户提供更好的居家环境 但是如果突然遇到断网的情况,或者是放在某些不连接外网的场景中,这些飞外网居的优势又能如何体现,如果与.... 飞外网 发表于 07-04 09:56 •
智能旋进旋涡气体流量计概述及特点 JK-LUX系列智能旋进旋涡气体流量计采用新微处理技术,具有功能强、流量范围宽、操作维修简单,安装使.... 嘉可自动化仪表 发表于 07-04 08:40 •
临床医学对可穿戴设备中的关键元器件提出哪些新要求 从手环、智能手表到TWS耳机,可穿戴设备市场总有爆款出现,从而市场热度持续高涨。目前,可穿戴设备的年.... 贸泽电子 发表于 07-03 17:29 • 222次
在过去10年中,随着客户期望值的不断提高,汽车设计的重点发生了重大变化。现在,更多汽车工程师关注的是.... Molex莫仕连接器 发表于 07-03 11:08 • 241次
热式气体质量流量计的工作原理、特点及应用 嘉可仪表JK系列热式气体质量流量计是利用热传导原理测流量的仪表。热式气体质量流量计采用恒温差法对气体.... 嘉可自动化仪表 发表于 07-03 09:42 • 112次
气体涡轮流量计是什么 有哪些特点 JK-LWQ系列气体涡轮流量计是嘉可仪表吸取了国内外流量仪表先进技术经过优化设计,综合了气体力学、流.... 嘉可自动化仪表 发表于 07-03 09:07 • 105次
当前智能机器人已进入高速发展期,在各行各业发挥着十分重要的作用,为人类实现了经济价值和社会价值。正如.... 格物斯坦机器人 发表于 07-02 11:05 • 550次
近年来,人工智能在世界科技舞台上掀起了一股又一股的大热潮,相关政策的频繁落地期,以AI相关的教育蓝海.... 格物斯坦机器人 发表于 07-02 11:01 • 548次
人工智能与机器人教育并驾齐驱的未来趋势 二十一世纪已经全面进入人工智能与机器人教育并驾齐驱的社会,未来不掌握高科技,就算读书速到博士研究生,.... 格物斯坦机器人 发表于 07-02 11:01 • 646次
蒸汽流量计广泛用于石油、化工、电力、轻工等部门工业管道中测量液体、气体或蒸汽的流量。由于传感器材料为.... 嘉可自动化仪表 发表于 07-02 09:57 • 467次
在本文中,我们将查看可用于为IEPE传感器供电的典型电源单元图。我们还将了解IEPE类型和电荷输出传.... 科技观察员 发表于 07-02 09:31 • 374次
孩子本应该是活泼开朗、爱玩爱笑,对新鲜事物总是充满好奇心,什么都想要问一问,动一动的。但是随着现代工.... 格物斯坦机器人 发表于 07-01 19:55 •
人工智能少儿编程助力培养孩子的逻辑思维能力 近年,随着人工智能的快速发展,少儿编程方兴未艾。“双减”大风袭来,让少儿编程更加火爆,越来越多家长把.... 格物斯坦机器人 发表于 07-01 19:54 •
Nordic的nRF9160被Aovx公司用于G系列货物跟踪设备 位于国内的合肥云息通信技术有限公司(Aovx)开发了一套用于跟踪和监控货物的设备,可以用于生鲜食品、.... Nordic半导体 发表于 07-01 17:23 • 323次
随着工业发展,锂电池电芯实现商品化应用到各种行业。从而衍生铝塑膜应运而生来替代铝壳做外包装,而在批量.... h1654155703.5361 发表于 07-01 17:02 • 200次
如何使用Arduino和微型伺服系统制造一个小猫机器人 本文要介绍的是一种行走的四足机器人“机器猫”。3DOF 腿,IR 接收器都连接到 Pro Mini。 科技观察员 发表于 07-01 16:47 • 511次
如何制作手势控制机器人-MadeWithArduino(接收器PCB) 飞外网站提供《如何制作手势控制机器人-MadeWithArduino(接收器PCB).zip》.... 发表于 07-01 15:52 •
如何制作手势控制机器人-MadeWithArduino(发射器) 飞外网站提供《如何制作手势控制机器人-MadeWithArduino(发射器).zip》资料免.... 发表于 07-01 15:50 •
如何使用AirGradient构建功能强大的PM2.5细尘传感器 飞外网站提供《如何使用AirGradient构建功能强大的PM2.5细尘传感器.zip》资料免.... 发表于 07-01 15:42 •
据统计,我国近几年交通事故伤亡中,因疲劳驾驶造成的伤亡占比高达40%,驾驶者在长时间连续行车后,产生.... 唯创知音电子 发表于 07-01 15:26 • 125次
AIoT物联网,作为新一代信息技术与工业系统深度融合的产物,日益成为实现生产制造领域全要素、全产业链.... 倍加福 发表于 07-01 15:10 • 157次
单PCB线跟随器和蓝牙控制机器人 飞外网站提供《单PCB线跟随器和蓝牙控制机器人.zip》资料免费 发表于 07-01 15:06 •
mXY板-低预算XY绘图仪绘图机器人板 飞外网站提供《mXY板-低预算XY绘图仪绘图机器人板.zip》资料免费 发表于 07-01 14:57 •
用于架构探索和功能安全分析的虚拟原型平台 在这个 VisualSim 方法中,软件是使用传统方法开发的。MatLab/Simulink 模.... 星星科技指导员 发表于 07-01 14:46 •
检测有腐蚀性的液体用什么传感器呢? 一般检测这种带有腐蚀性的液体,可以选择不锈钢材质的液位传感器,不锈钢液位传感器可以检测水、消毒液、刹.... 能点科技1 发表于 07-01 13:36 •
冗余的PROFIBUS PA总线解决方案 AFD:有源现场分配器外形图如下,它可通过防短路分支总线连接,将最多4个 PA现场设备集成到一个带有.... 发表于 07-01 13:18 • 243次
可视觉识别的SLAM移动机器人方案 SLAM系统分为建图、定位和导航三部分,建图算法使用Google Cartographer 2D建图.... 发表于 07-01 13:02 • 262次
NVIDIA Isaac Sim 2022.1版本的亮点及功能 NVIDIA 宣布推出2022.1 版 NVIDIA Isaac Sim。作为一种机器人仿真和合成数.... NVIDIA英伟达企业解决方案 发表于 07-01 11:19 • 186次
智能工厂数采方案 两化融合物联网系统是智能工厂的核心,透过信息收集、分析及可视化进行实时管理,物通博联提供完整的物联网.... 发表于 07-01 10:56 •
世界模型在实体机器人上能发挥多大的作用? Dreamer 世界模型是谷歌、多伦多大学等机构在 2021 年提出的一种。如下图 2 所示,Dre.... 新机器视觉 发表于 07-01 10:48 • 107次
但这两者的精度还是存在差异的,我们以苹果的Apple Watch智能手表为例,我们在查看各项参数时,.... 飞外网 发表于 07-01 10:25 • 803次
众所周知,氧气检测仪是一种用于检测现场有害物质浓度的仪器设备。然而,对于各种复杂气体的工业场所,单个.... 欧森杰 发表于 07-01 10:17 •
振弦采集模块测量振弦传感器的流程步骤? VM 的测量过程分为激励、采样、计算三个大的步骤。在连续测量.... 工程监测 发表于 07-01 09:54 •
IBF288模块的工作原理、特点及应用 IBF288产品是一种物联网和工业以太网采集模块,实现了传感器数据采集并发送到网络。IEPE是“In.... 隔离转换模块 发表于 07-01 09:41 • 166次
汽车传感器的应用方案—双组分介电绝缘硅凝胶 应用:真空助力器压力传感器(相对压力测量) 【用胶点】 凝胶灌封、壳体密封,线路板粘接 【功能要求】.... 有机硅灌封胶|有机硅导热灌封胶 发表于 07-01 09:30 • 101次
两线制高精度隔离型温度变送器设计方案 在工业自动化系统中,由于高可靠性的需要,传感器信号处理电路以原理简单、可靠的模拟信号为主,但不能完成.... 嘉可自动化仪表 发表于 07-01 08:45 • 147次
人工智能可以在有限的范围,发挥自身的优势,辅助管理,但是最终的决策权应该被掌握在人类的手里,因为只有.... 格物斯坦机器人 发表于 06-30 18:18 •
通知对义务教育阶段校外培训学科类和非学科类进行了明确划分,其中信息技术教育归为综合实践活动,划入非学.... 格物斯坦机器人 发表于 06-30 18:15 •
数字赋能,牵住游戏人工智能发展的“牛鼻子”。近年来,随着数字世界与物理世界的深度融合,全球数字化进程.... 格物斯坦机器人 发表于 06-30 18:14 • 105次
OLogic采用先进集成电源模块,推出新一代移动机器人 来源:Vicor 功率转换技术的创新正在推动机器人设计的变革。今天的集成电源模块正在满足尺寸、重量、.... 半导体芯科技SiSC 发表于 06-30 17:07 • 170次
普渡科技携智能送餐机器人带来全新消费体验和服务模式 受主办方的大力邀请,普渡科技携旗下智能送餐机器人“欢乐送”、高端送餐机器人“贝拉”、配送迎宾机器人“.... 发表于 06-30 16:47 • 338次
【合宙Air105开发板试用体验】PM传感器使用 第一次使用合宙家的MCU,先熟悉熟悉怎样使用的。一、开发环境搭建及使用CH340驱动已经安装过了,将开发板usb连上电脑就... 发表于 06-30 16:29 • 1657次
巨磁电阻传感器概述以及三种应用模式 飞外网报道(文/李宁远)磁传感器在很多领域都有着重要作用,作为一类大家熟知的传感器类型,纵观磁.... 发表于 06-30 16:14 • 320次
【开源分享】带有 Arduino 接口的火灾报警传感器带有 Arduino 接口 PCB 设计板的火灾报警传感器火焰传感器:火焰传感器对普通光敏感。它用于检测火焰或火灾的存在... 发表于 06-30 16:12 • 10197次
如若您要自己检查维护仪器,以下将为您介绍仪器以及仪器维护保养的基本知识 一、仪器组成 通常情况下,户.... DJ20220420 发表于 06-30 16:06 • 245次
怎样去编写基于红外线技术的HC-SR505小型人体感应模块驱动程序呢 传感器介绍HC-SR505小型人体感应模块是基于红外线技术的自动控制产品,灵敏度高,可靠性强,小体积,低电压工作模式。 发表于 06-30 10:05 • 3704次
相扑机器人控制器资料分享相扑机器人控制器我的 Sumo 机器人比赛项目,我使用了 ATmega2560 -16au 微控制器和 BTN7960B 电机驱动器、6 轴... 发表于 06-28 06:38 •
分享一种基于W5500和Mongoose的webserver数据展示设计方案 1、基于W5500的Webserver数据展示本来要做的的基于 SDI-12 的传感数据记录器,拿到板子后,发现并不合适;恰好手头有个 W5... 发表于 06-27 15:01 • 4924次
设计一个红外物体检测设备使用 PIR 传感器的红外物体检测设备-PCB 设计项目背后的动机:这种物体检测传感器专门设计用于防止未经授权的... 发表于 06-27 06:18 •
LoRA网关转4G中继器DLS11有几种工作模式,分别是什么状态? LoRA网关转4G中继器DLS11有几种工作模式,分别是什么状态? 发表于 06-23 11:04 • 9181次
Zigbee漏水传感器Zigbee (CC2530) 传感器板Zigbee漏水传感器。可用作 zigbee 按钮或其他传感器。可以堆叠以添加额外的电池或带按... 发表于 06-23 07:07 • 164次
线跟随机器人如何导航?线路跟随器PCB线路跟随器阵列是一个长板,由八个红外传感器组成,这些传感器已配置为读取为数字位!我们设计了线跟... 发表于 06-22 09:11 • 102次
05282945-006 05282945-006 线性位移传感器 - LVDT 看产品文档,或 联系我们 以了解最新的机构审批信息。  目前没有详细产品特性的在线信息。  发表于 08-21 02:00 •
05282945-012 05282945-012 线性位移传感器 - LVDT 看产品文档,或 联系我们 以了解最新的机构审批信息。  目前没有详细产品特性的在线信息。  发表于 08-21 02:00 •
05282946-006 05282946-006 线性位移传感器 - LVDT 看产品文档,或 联系我们 以了解最新的机构审批信息。  目前没有详细产品特性的在线信息。  发表于 08-21 02:00 •
070369000000-M 070369000000-M 角位移传感器 - RVDTRVIT 看产品文档,或 联系我们 以了解最新的机构审批信息。  请注意:所有产品设计活动都应参照产品图纸。 
2350437-1 2350437-1 角度位置传感器 - 空心轴旋转变压器 看产品文档,或 联系我们 以了解最新的机构审批信息。  请注意:所有产品设计活动都应参照产品图纸。