【卡尔曼滤波】 Kalman Filter 原理详解与公式推导

前言

笔者最近在学习卡尔曼滤波,因个人水平实在有限,花了许久才理解卡尔曼滤波的思想。故现以通俗易懂的语言,总结我对卡尔曼滤波原理的理解

参考资料:本笔记基于Blog
中的实例与图解,并推荐大家阅读这篇文章

引例:什么是卡尔曼滤波?

现在,你开发了一个可以在森林里到处跑的小机器人。
这个机器人带有GPS,精度大约10m
森林里有很多沟壑和悬崖,如果机器人走错了一步,就有可能掉下悬崖。因此我们需要基于已有信息,推测出比GPS更精确的位置
在这里插入图片描述
状态矩阵
我们可以说小机器人有个zhuang
ps:这个状态只是这个小机器人的一系列基本属性,在这里是位置与速度。在其他场景也可以是机器人的重量、温度等

已知信息:
状态信息:通过估计得到的机器人的位置、速度。电机的预期转速以及机器人的运动方向等
测量信息:GPS测得的位置

但是,两种信息都有各自的不确定性
状态信息可能受到阻力、地面不平等影响;而GPS测量的信息则因其精度不足而有误差(测量误差)。
故我们既不能完全相信状态信息,也不能完全相信预测信息

需要注意,两种信息的不确定性也分大小。若GPS精度特别低,则预测信息的不确定性会更大。若运动过程中受到的阻力等干扰过多,则状态方程也难以很好估计机器人状态

卡尔曼滤波的引入:
卡尔曼滤波可以帮助我们在不确定性中融合信息,提取精确信息
简单来说:卡尔曼滤波算法以确定性为权重/即确定性高的信息权重更大,更相信;确定性低的信息权重较小,更不相信。
他通过两种信息的权重,加权融合信息,得到最优估计

图解卡尔曼滤波

引入

我们引入二维状态变量的概率密度分布图,来形象的表现系统二维状态(如小机器人的位置与速度)的可能性的分布。

概率密度分布图
在这里插入图片描述
越亮的区域表示越大的可能性

二维状态变量的均值与方差
两个状态变量均服从高斯分布,故每个变量都有一个均值 μ,共同表示随机分布的中心(最可能的状态);以及一个方差𝜎^2,协方差表示不确定性(中心向两侧的偏移量)
在这里插入图片描述

二维状态变量的相关性
事实上,二维状态变量常常是存在相关性的。就以位置与速度而言,若当下速度很大,则下此位置与这次位置相比,大概率偏差很大。二维状态变量的相关性以协方差的形式体现
以图表示
在这里插入图片描述

从宏观上理解卡尔曼融合

概述
卡尔曼滤波基于已知的状态信息(由状态方程预测)和观测信息(如传感器测量),
分别得到先验状态矩阵(靠状态信息的运动状态方程预测)和观测状态矩阵(传感器测量到的直接或间接状态值)
这两者的重叠区域,即融合后的后验状态矩阵
我们通过密度连乘计算后验矩阵密度分布分析,可以提取出其中心(即均值或最优估计)和边长(即协方差)。
最优估计即后验状态矩阵的中心

先验状态矩阵与观测状态矩阵
在这里插入图片描述
后验状态矩阵(最优估计矩阵)
在这里插入图片描述
分析后验状态矩阵
卡尔曼滤波融合先验状态矩阵和观测状态矩阵后得到的后验状态矩阵,也即融合得到最优估计
在这里插入图片描述

从微观上理解状态矩阵

先验状态矩阵

无外部控制的状态转移(基于状态转移方程
在这里插入图片描述
我们用状态转移矩阵Fk来表示状态的转移,并预测这个过程
在这里插入图片描述
实际上,状态转移矩阵Fk使得中心(均值)与边长(协方差)均进行变换,体现为状态矩阵的矩阵变换
有外部控制的状态转移
在这里插入图片描述
噪声的参与
噪声通常服从均值为 0、方差为 Q 的高斯分布。
因此,噪声不会改变状态矩阵的均值,只会影响方差。即不改变先验状态矩阵的中心,只改变状态矩阵的边长。
因此,在状态转移方程中,无需考虑噪声的影响。但在协方差转移方程中,需加入噪声协方差 Q,以表示噪声增加了系统的不确定性和离散性。

观测状态矩阵

我们有时不直接测量状态值。
如陀螺仪中观测量为角速度,而状态量为角度,前者为后者的低一阶物理量,因此观测矩阵需要将测量值映射为状态值。
在这里插入图片描述

观测状态矩阵映射为同物理意义的状态矩阵。实际上也是中心(均值)与边长(协方差)的映射。
注意,观测噪声(传感器精度)同样会使得观测状态矩阵的不确定性和离散性增加。

卡尔曼滤波公式理解

在这里我们只较为浅显的理解卡尔曼滤波的公式,若想了解详细的公式推导,可跳跃至b站DR_CAN
卡尔曼滤波公式
在这里插入图片描述

参数说明

预测阶段(Prediction)

在这里插入图片描述

更新阶段(update)

在这里插入图片描述

公式理解

我们现在来一一对比卡尔曼滤波图解,来理解卡尔曼滤波公式

预测阶段(Prediction)

在这里插入图片描述

更新阶段(update)

在这里插入图片描述

卡尔曼增益系数与推导过程

我们先以一维高斯分布来分析,具有方差 这里写图片描述 和 μ 的高斯曲线可以用下式表示:
在这里插入图片描述
而卡尔曼滤波就是将两个服从高斯分布的概率密度函数(预测概率密度、测量概率密度)相乘融合,并求融合高斯分布的均值(最优估计)与方差
在这里插入图片描述
化简可得融合高斯分布的均值与方差:
在这里插入图片描述
定义卡尔曼增益系数K
实际上这个K还不是真正的卡尔曼增益系数,卡尔曼增益系数其实包含了Hk-的逆矩阵的作用,也即测量值到预测值的映射作用
在这里插入图片描述
改写为高维矩阵形式
在这里插入图片描述
公式整合
在这里插入图片描述

卡尔曼滤波器框架

在这里插入图片描述

卡尔曼滤波是一种用于通过融合多个传感器测量数据来估计物体状态的优化算法。它在估计中考虑了系统的动态模型以及传感器的测量噪声,能够在噪声和不确定性环境下提供最优的状态估计。 卡尔曼滤波原理可以通过以下步骤进行推导: 1. 假设系统是线性的,可以用以下状态方程描述:x(k)=Ax(k-1)+Bu(k)+w(k),其中x(k)是状态向量,A是状态转移矩阵,B是输入控制矩阵,u(k)是控制向量,w(k)是系统过程噪声。 2. 假设测量数据是线性的,可以用以下观测方程描述:z(k)=Hx(k)+v(k),其中z(k)是观测向量,H是观测矩阵,v(k)是测量噪声。 3. 假设状态和测量噪声都是高斯分布,即w(k)~N(0,Q),v(k)~N(0,R),其中Q是系统过程噪声协方差矩阵,R是测量噪声协方差矩阵。 4. 初始化卡尔曼滤波器的状态估计值和协方差矩阵。 5. 递归执行以下步骤: a. 预测步骤:根据当前状态估计值和模型方程,计算预测状态和预测协方差矩阵。即x^- = Ax+Bu,P^- = APA^T + Q。 b. 更新步骤:根据测量值和观测方程,计算卡尔曼增益、估计当前状态和协方差矩阵。即K = P^-HT(HP^-HT + R)^-1,x = x^- + K(z - Hx^-),P = (I - KH)P^-。 6. 返回估计的状态。 卡尔曼滤波是通过不断更新状态估计值和协方差矩阵来提供最优状态估计的。预测步骤利用系统的动态模型来预测下一个状态,更新步骤则将预测值和测量值进行融合,根据测量值的准确性来修正预测值。通过迭代执行预测和更新步骤,卡尔曼滤波能够提供最优的状态估计值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值