本文转载至:框架
添加一些本身的理解和标注的重点,算是学习笔记吧;学习
一. 什么是卡尔曼滤波:
首先定义问题: 对于某一个系统,知道当前状态Xt,存在以上两个问题:ui
1. 通过时间△t后,下一个状态如何求出?spa
2. 假定已求出,在t+1时刻收到传感器的非直接信息
,如何对状态
进行更正?.net
这两个问题正式卡尔曼滤波要解决的问题,形式化两个问题以下:3d
1.预测将来code
2.修正当下blog
下面以一个一维的例子简单理解一下卡尔曼滤波的理论框架。ci
二. 卡尔曼滤波的理论框架:
以一维运动为例,假若有一个小车,开始位于x= 的位置,可是因为偏差的存在,其真实分布是高斯分布,其方差是
,即其原始位置分布是
,当该小车通过运动,到达终点位置,可是因为运动也是不许确的(打滑等),其移动过程的分布也是高斯分布,移动分布为
,那么其最终的位置分布是多少呢?get
这是一个预测将来的过程,由前一时刻的位置和猜想的偏移,求新的位置,求预测位置符合全几率法则,即:
即,最终分布的均值为均值相加,方差也为方差相加,感性理解就是一个不肯定的分布,通过一段不肯定的移动后,其方差更大了,分布中心为两个中心和。
考虑另一种状况,假入有一个小车,开始位于x= 的位置,可是因为偏差的存在,其真实分布是高斯分布,其方差是
,即其原始位置分布是
,当时此时有一个传感器检测到该小车位于
,分布方差为
,那么小车的真实位置分布为多少呢?
这是一个感知过程,也就是经过传感器的数据修正当下,其感知过程符合贝叶斯法则,其最终分布是两个分布相乘,即
感性理解就是一个不肯定位置的小车,通过传感器观测,其最终位置分布方差会更小,且位置中心位于两个分布之间。
在一维模式下,感知过程融合后的均值和方差分别为:
咱们令
则,
总结:当一个位置小车通过移动后,且其定位和移动过程都是高斯分布时,其最终估计位置分布会更分散,即更不许确;当一个小车通过传感器观测定位,且其定位和观测都是高斯分布时,其观测后的位置分布会更集中,即更准确。
又总结:上面的两个例子总结了在一维状态下,预测过程和感知过程的均值和协方差的更新是如何更新的,也就是
和
,
的关系,以及
之间的关系;下面的博客更清晰地讲解了预测过程和感知过程.
接下来是扩展到二维状态下的一个例子:
问题场景以下:一个机器人, 咱们想知道它实时的状态, 同时也想作到预测将来和修正当下这两件事.
其状态x表示为一个一维的大小为2的向量, 元素分别表示位置信息与速度信息:
可是这个状态不必定准确, 其不肯定性用协方差表示:
预测将来
只考虑机器人自己的运动, 根据物理公式,可得:
用矩阵表示以下:
在状态变化的过程当中引入了新的不肯定性, 根据协方差的乘积公式,
可得:
其中是系统在k-1时刻状态的不肯定性;
考虑外部状态, 以引入加速度为例, 引入变量,
同时,环境中仍然存在咱们没法刻画的偏差, 以表示, 最终的预测公式以下:
也就是在本来的不肯定性的基础上,又加入了新的不肯定性,获得了新的当前时刻状态变量的不肯定度,也就是协方差
;
修正当下
咱们已经获得,
, 下面要经过观测到的测量值
对
,
进行更新;
由于 ,
和
的数据尺度不必定相同,例如
,
包含了笛卡尔的坐标信息, 使用雷达获得的
则包含极坐标信息. 因此首先应该把二者挡在相同的尺度下去比较, 尺度转换使用
将预测信息
转换为测量信息
的尺度.
这样一来,获得测量尺度上的两个分布:
1. 测量值的分布
2. 预测值的分布
在修正当下的过程当中,这两个分布会组成新的分布.
新的均值和方差的计算在第一部分的时候已经推导过, (姑且称之为感知变化公式),即为:
扩展到二维状况下,公式以下(该公式也是kalman滤波的核心,):
而在这里这种状况里,测量值对应的均值和协方差分别是,
预测将来的到的状态的均值和协方差分别是:
根据感知变化公式,可得在这个例子里面新的均值和协方差的公式以下:K变成, 就得到了新的状态量的值
,以及其对应的不肯定性
总结
预测将来
修正当下
理论总结:
kalman滤波的理论框架是全几率法则和贝叶斯法则,在设定中假设预测和感知均有偏差,且均服从正态分布,且预测过程(预测将来)和感知过程(修正当下)采用不一样的几率更新策略,具体采起的策略以下所示:
- 预测过程符合全几率法则,是卷积过程,即采用几率分布相加;
- 感知过程符合贝叶斯法则,是乘积过程,即采用几率分布相乘;
参考:(建议按照顺序阅读下面的博客,对于理解卡尔曼滤波很重要)
本文同步分享在 博客“莫奈的三轮车”(CSDN)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。