= 参考/转自:

1 ---https://blog.csdn.net/u010720661/article/details/63253509

2----http://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/

3----徐亦达  机器学习课程(优酷)

4 -----https://blog.csdn.net/u010480899/article/details/55656209

不知道为什么,之前学习卡尔曼滤波器,总感觉差了点什么,很多人只知道是5个公式用一用就好,对于我则是不理解毋宁不用。

直到参考上面的才从感性上理解,之前都是理性(公式)。也可能是之前的积累吧。这里没有我自己的东西(如果整理算的话,那算一点),都是上面参考的。

卡尔曼滤波最好的作用是在。。。。。   这里一些介绍就不写了,参考链接很全,下面的思路讲解和图片部分来自于参考链接。

 如果表述不对的地方烦请大家批评指正,避免我误人子弟。

(这里是通过数据融和方式解释卡尔曼滤波,还有一种是通过估计的均方误差阵达到最小时,求得其滤波增益K的方式,所以,卡尔曼滤波也被称为最优的。。。。。)

下面直接给出线性kalman filter 的5个公式:

然后,一个一个公式去搞定和推倒。现在谈论一个场景----直线运动:

假设,一个人开着一辆车在一条比值的道路上行驶,我们的目的是要知道这个人的状态信息(包含车的位置和速度信息),并假设车的

加速度为

然后,根据参考链接4的表述:

然后,卡尔曼滤波的第一个公式我们知道了。这个式子的意义是:我们通过车辆“理论上”的速度、加速度、初始位置,使用刚体运动知识估计出刚体运动的状态。

但是,通常我们在项目中可以知道,这种估计因为传感器、现实生活都是非“理想的、理论上的”,所以,这种估计是比较简陋粗略、比较不准确的。这时候就要提升精度。

 第一个公式也就是正常的初中物理中介绍的,没问题吧。

 -------------------------------------------------------------------------

    如何提高估计准确性?

假设,世界上有上帝/神,上帝/神 可以知晓万物的一切,当神看到我们人类在计算一辆车的直线运动状态的时候,他心里肯定是这样想的:”傻瓜“的人类,车载运行中有很多

的不确定,你考虑到了吗?!!!!然后,神就把这些信息传递给我们人类,人类就分析:哪里有不确定呀?????,然后我们就思考了,

假设在0时刻

1、我们不确定车子是完全从坐标原点O出发的?

2、同时,我们也不确定0时刻车子的速度一定为v,

3 、也不确定如果速度不为v,这种情况对车子的位置影响有多少?

4、也不确定如果车辆初始触发位置不为原点O,是否对速度有影响?

看到上面的四个疑问是不是会联想到,这是位置和速度他们自己和自己的关系,还有就是互相的关系,然后答案就是协方差,在多维中就是协方差矩阵!!!!!

下面是参考链接4中介绍的:

这就是卡尔曼滤波公式的第二个公式,考虑了不确定性的传递和传递本身的不确定性。。。

下面是参考链接

第二个公式也就是对估计中不确定性给显示表达出来,没问题吧。

 -------------------------------------------------------------------------

很明显,目前这两个公式都是依据我们前一个(t-1),理论推算到t的,对吧,所以这两个公式归纳在predict环节

---------------------------------------------------------------------------------------------------------------------------------------------------------------

接下来,我们得到后面3个公式,后面的公式涉及到传感器问题,现在,我们通过卡尔曼公式1 、 2 ,得到了目标的位置预测,实际上

我们还有一些传感器对目标进行测量,比如说车上的里程计。这时候后面的3个公式的讲解将参考‘参考链接1’和‘参考链接4’的穿插结合。

在t时刻,假设车子出发时,车里程表的数值为0,也就是车子在运动中其车里程表的读数就是车子直线运动的位置信息。或者在初始时刻

记录车子的gps,在t时刻再记录gps,然后两个gps之间的距离就是车子位置状态测量的距离(这种在《多源信息融和》书中讲的是”量测“信息)

不管其他,总之,就是车辆在真实位置 中,这个位置是要估计的,当然我们不知道,然后传感器就”看到“车在这个位置,并输出

自己的探测(量测、测量)信息给用户做参考,其可以用这个公式表示:,借用参考链接4的表述:

----------------

---------------------------

这时后,我们就要开始分析了,如何将观测信息和估计值进行融和。我们的目的是求车辆位置xt的状态,

那么,根据估计值有:

那么,根据观测值有:

我们,对观测值,按估计值那样整理,并且得到

假设所有的不确定都是服从高斯分布的,然后,从上面的两个式子可以理解为:

对于估计值,它是对下一状态的估计,均值为,方差为:sqrt(),其图像为:

   

但是,这里有一个问题,我们的
 的高斯是关于位置的高斯,要和传感器融和,需要转换到传感器上,转换成传感器的高斯

对于测量(观测、量测)值,同样是高斯,其均值为:,方差为sqrt(),图像为:

这时候,我们分析,举个例子,

小红的成绩不低于90分(这是估计值),老师看了所有人的试卷,说,最高分不超过98分(这是观测值),那么小红成绩猜测是多少?

我们通过估计和观测值知道,小红的成绩是y 范围在[90,98],之间,做出估计就取平均值:(90+98)/2 = 94分。

同样的,在参考1中的描述为:

其中:

  =  因为是从估计值转换到传感器读书上的预测。

   =  

按参考链接1的处理,展开:

但是,我们求的是位置信息,且上面的Hk可以约掉,将传感信息,再转换为位置信息,从变化为的过程。

支撑,卡尔曼的后面三个公式也推倒出来

总结(个人参考和整理等总结的不成熟的解释):


如下图所示,我们给定初始值:

  1. X初始状态
  2. Sigma 初始状态协方差矩阵
  3. F 状态转移矩阵
  4. Q 状态转移协方差矩阵
  5. H  观测矩阵
  6. R 观测噪声方差

给定这些值后,开始进入卡尔曼跟踪:

首先,通过初始值和前两个公式获得下一个时刻的位置、不确定的预测。然后,获得卡尔曼增益K,再获得下一时刻的融和值(最终值),

接着修正方差。其内在的工作机制是将观测和估计进行融和,内在原理是取两个高斯分布的交集,因为交集的误差比小于等于任何单个集合

的误差,从而获得更加精准的结果。(是否是越多传感器越好呢??),同时,这也提供了多个传感器的融和方案。(附图来源参考链接1)

暂时写到这里吧,后面还有jpda、ekf等等

kalman filter卡尔曼滤波器- 数学推导和原理理解-----网上讲的比较好的kalman filter和整理、将预测值和观测值融和的更多相关文章

  1. 卡尔曼滤波器 Kalman Filter (转载)

    在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”.跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人! 卡 尔曼全名Rudolf Emil ...

  2. 对Kalman(卡尔曼)滤波器的理解

    1.简单介绍(Brief Introduction) 在学习卡尔曼滤波器之前,首先看看为什么叫"卡尔曼". 跟其它著名的理论(比如傅立叶变换.泰勒级数等等)一样.卡尔曼也是一个人的 ...

  3. 对Kalman(卡尔曼)滤波器的理解@@zz

    1.简介(Brief Introduction) 在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”.跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他 ...

  4. [转载]卡尔曼滤波器及其基于opencv的实现

    卡尔曼滤波器及其基于opencv的实现 源地址:http://hi.baidu.com/superkiki1989/item/029f65013a128cd91ff0461b 这个是维基百科中的链接, ...

  5. ArcEngine中IFeatureClass.Search(filter, Recycling)方法中Recycling参数的理解

    转自 ArcEngine中IFeatureClass.Search(filter, Recycling)方法中Recycling参数的理解   ArcGIS Engine中总调用IFeatureCla ...

  6. [Math]理解卡尔曼滤波器 (Understanding Kalman Filter) zz

    1. 卡尔曼滤波器介绍 卡尔曼滤波器的介绍, 见 Wiki 这篇文章主要是翻译了 Understanding the Basis of the Kalman Filter Via a Simple a ...

  7. [Math]理解卡尔曼滤波器 (Understanding Kalman Filter)

    1. 卡尔曼滤波器介绍 卡尔曼滤波器的介绍, 见 Wiki 这篇文章主要是翻译了 Understanding the Basis of the Kalman Filter Via a Simple a ...

  8. 卡尔曼滤波器【Kalman Filter For Dummies】

    搬砖到此: A Quick Insight     As I mentioned earlier, it's nearly impossible to grasp the full meaning o ...

  9. 时间序列八: 以NASA之名: 卡尔曼滤波器

    目录 以NASA之名: 卡尔曼滤波器 引言 荣耀骑士 卡尔曼滤波器* 参考文献: 以NASA之名: 卡尔曼滤波器 'That's one small step for man,one giant le ...

随机推荐

  1. 框架tensorflow2

    TensorFlow 2 TensorFlow 激励函数 TensorFlow 添加层: 思考:matmul和multiply两种乘法的区别:http://www.soaringroad.com/?p ...

  2. 有人WIFI ble101配置

    新买来的模块,默认为slave模式,波特率57600,8位数据位,无检验位,1位停止位. 发送+++a,进入命令模式. 需要加回车符 1.设置模块名称 AT+NAME=BT_Shining 2.设置发 ...

  3. 学习笔记TF017:自然语言处理、RNN、LSTM

    自然语言处理 (NLP)问题都是序列化的.前馈神经网络,在单次前馈中对到来数据处理,假定所有输入独立,模式丢失.循环神经网络(recurrent neural network,RNN)对时间显式建模神 ...

  4. python------面向对象进阶 异常处理

    一. 异常处理 try: pass except KeyError as e : #注3.x用as ,except KeyError, e ,2.x 用逗号. print("No this ...

  5. cordova热更新插件的使用:cordova-hot-code-push-plugin

    1. 添加插件:cordova plugin add cordova-hot-code-push-plugin 2. 先打开cli,执行命令 npm install -g cordova-hot-co ...

  6. SELinux初探

  7. Redis使用规范

    突出强调部分 [强制]key名不要包含特殊字符,如空格.换行.单双引号以及其他转义字符 [强制]拒绝bigkey(防止网卡流量.慢查询) [强制]控制key的生命周期,redis不是垃圾桶 [强制]技 ...

  8. oracle存储结构

    数据库的物理存储结构 select * from v$datafile; 数据库的逻辑存储结构,从表空间开始查起一个数据库对象的逻辑存储结构如下表空间-段-区-块 select * from dba_ ...

  9. Scala环境(集成idea)

    1 语言介绍 他已经出生15年了,就像明星一样,谁都不可能一开始就人气爆棚粉丝无数,得慢慢混. 据说这家伙已经威胁到了Java的地位,我当时也是被这句话惊到,才毅然决然的认识了他.目前也正在努力学习中 ...

  10. MNIST数据可视化

    一.数据准备 二.数据说明 可以看出图片数据在偏移量为第16字节开始存,每28X28字节存放一张手写字图片.而label是从偏移量为第8字节开始存,每个字节存放一个label. 三.matlab201 ...