1. 卡尔曼滤波简介

目的 :对线性系统状态的估计

卡尔曼滤波(Kalman filtering)一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。

由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。

斯坦利·施密特(Stanley Schmidt)首次实现了卡尔曼滤波器。卡尔曼在NASA埃姆斯研究中心访问时,发现他的方法对于解决阿波罗计划的轨道预测很有用,后来阿波罗飞船的导航电脑使用了这种滤波器。

2. 卡尔曼滤波原理

方法 :利用状态过程中的噪声ω 和 观测噪声υ ,给予合理的权重,对状态x 进行估计
详解的原文链接:http://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/
对此,进行一些简单的描述,只求通俗易懂:
假如想开发了一个可以在树林里到处跑的小机器人,那么需要知道它实时所在的位置,才能导航。
可以在机器人上装GPS定位装置,精度大约为10米,
但树林里有很多沟壑和悬崖,如果机器人走错了一步,就有可能掉下悬崖,所以这远远不够。

此时还可以获取一些运动的信息:添加里程计和惯性惯性测量单元记录运动的过程,判断出机器人的姿势和行走距离。获取发送给电机的指令,知道机器人是否在朝一个方向移动并且没有人干预,预测在下一个状态,机器人很可能朝着相同的方向移动。
但由于传感器的精度、树林里的坑坑洼洼和自然界的风等影响,里程计和惯性测量单元实际并不能非常精确表示机器人实际姿势和行走距离,预测也不是很完美。

GPS 、里程计和惯性测量单元等传感器告诉了我们一些状态信息,我们的预测告诉了我们机器人会怎样运动,但都只是间接的,并且伴随着一些不确定和不准确性。
但是,如果使用所有对我们可用的信息,根据其本身的噪声,分配一定的权重,就能得到一个比任何依据自身估计更好的结果,这就是卡尔曼滤波的用处。

3. 卡尔曼滤波的公式

3.1. 五个公式

先了解一下卡尔曼滤波的五个公式:

                                       

java 卡曼滤波 卡尔曼滤波lstm_java 卡曼滤波

 

3.2. 公式作用

公式(一):计算预测状态值
公式(二):计算预测值和真实值之间的预测误差协方差矩阵
公式(三):在公式一和公式二的条件下,求得卡尔曼增益
公式(四):计算估计值
公式(五):计算估计值和真实值之间的误差协方差矩阵

4. 卡尔曼滤波的公式推导

4.2.2 协方差矩阵
方差:各个样本与样本均值的差的平方和的均值,度量一组数据的分散程度。

协方差:两个变量总体误差的期望,度量两个变量线性相关性程度。
当两个变量是相同的情况,协方差就是方差。
如果两个变量的变化趋势相反,其中一个变量大于自身的期望值时,另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。
两者之间的联系或者关系,关系越大,协方差越大。

协方差矩阵:数据集中两两变量的协方差组成,每个元素是各个向量元素之间的协方差

噪声协方差矩阵越小说明噪声的误差越小,可信度越高,其对角线上的值就是方差。
误差协方差矩阵越小说明过程噪声和量测噪声的关系越小,用比例分开过程噪声ω 和 观测噪声υ,如果关系越小,分开的越精确。比如一堆白砂糖和盐,如果两种混合的很均匀,说它关系很大,也就越难用比例的方法将其分开。