EKF(拓展卡尔曼滤波)学习笔记:

一些参考:

(三十九)通俗易懂理解——卡尔曼滤波与扩展卡尔曼滤波 - 知乎 (zhihu.com)

(50 封私信 / 42 条消息) 如何通俗并尽可能详细地解释卡尔曼滤波? - 知乎 (zhihu.com)

视觉slam14讲-高博

先预测,在更新,得到融合以后的数据值

在任何含有不确定因素的动态系统里使用卡尔曼滤波,有效利用多个粗糙数据之间的关系

一个测量值告诉我们另一个测量值可能是什么样子。这就是卡尔曼滤波的目的

 用于衡量变量之间的相关性

(1)建模:高斯模型衡量每一个想要知道的状态

(2)通过上一时刻状态来更新新的时刻的状态,考虑状态转移函数,外力作用,同时考虑系统的不确定性

 

(3) 与传感器的数据融合(观测数据),

 通过矩阵H,将单位进行统一,观测数据与测量数据

(4)两个高斯分布的融合,相乘

 得到系统卡尔曼增益。

举例说明,以视觉slam14讲为例

通用slam系统方程:

 

 x代表某一时刻的所有状态,代表该状态下所有的观测

概率论角度来说:似然由观测方程给出,先验由过去所有状态给出,对于KF,由上一时刻状态给出

先验的计算方程如下:

线性状态下的KF方程:

本时刻的先验:

上一时刻的后验:

 不是单纯的数值,而是一个状态分布函数,是一个概率函数,程序的更新,只需要维护一个状态变量,对其进行更新即可。

线性高斯系统:

 

 (1)预测

通过运动方程确定状态的先验分布,有

 有上一时刻的状态,加系统输入得到系统的先验分布。

 另一方面,由观测方程,我们可以计算在某个状态下,应该产生怎样的观测数据:

 后验概率,系统先验乘以系统观测

仅对比概率分布的指数部分,可得更新后的均值和方差分别为:

 总结如下:

 非线性状态下的EKF(拓展卡尔曼滤波)

我们需要把所有非线性公式通过泰勒展开进行线性化

对于预测方程:

 对于观测方程进行线性化有:

 注意,slam中EKF是离散形式存在的,x(k-1)是变量,x(k-1).hat是变量值,计算概率时,带入进去。

 

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
扩展卡尔曼滤波(Extended Kalman Filter,简称EKF)是一种常用的非线性系统状态估计方法。对于使用EKF进行问题建模,一般有以下几个步骤: 1. 建立系统模型:首先,需要根据问题的具体情况建立系统的状态空间模型和观测方程。状态空间模型描述系统的动态演化规律,通常由一组非线性的微分方程表示。观测方程表示观测数据与系统状态之间的关系。 2. 线性化系统模型:EKF要求系统模型为线性或线性化的,因此对于非线性系统模型,需要进行线性化处理。可以使用泰勒展开式或雅可比矩阵来线性化系统模型。 3. 初始化状态和协方差:在使用EKF之前,需要对系统的初始状态和初始协方差进行设定。一般可以通过已知的先验信息来估计初始状态,并设置一个相对较大的协方差,以反映对初始状态不确定性的估计。 4. 预测步骤:在每个时间步长进行预测步骤,通过模型的状态转移方程预测系统的状态。同时,更新协方差矩阵,反映预测的不确定性。 5. 更新步骤:在观测到新的数据时,进行更新步骤,根据观测方程将预测的状态与观测数据进行比较,计算卡尔曼增益。利用卡尔曼增益,更新系统的状态和协方差。更新后的状态和协方差将作为下一个时间步长的预测值。 6. 重复预测和更新步骤:在每个时间步长重复进行预测和更新步骤,直到所有观测数据都被处理完。 7. 可选的非线性方差调整:在EKF中,由于线性化的误差,结果往往会不准确或收敛缓慢。为了提高估计的精度,可以使用非线性方差调整方法,如增加过程噪声或测量噪声的方差。 总之,使用EKF对问题进行数学建模需要注意系统模型的建立和线性化,初始化状态和协方差的设定,以及预测和更新步骤的执行。同时,根据具体情况可以使用非线性方差调整方法来提高估计的精度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值