= 参考/转自:

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. 【读书笔记】《Linux内核设计与实现》进程管理与进程调度

    大学跟老师做嵌入式项目,写过I2C的设备驱动,但对Linux内核的了解也仅限于此.Android系统许多导致root的漏洞都是内核中的,研究起来很有趣,但看相关的分析文章总感觉隔着一层窗户纸,不能完全 ...

  2. 熟悉基本的Linux文件系统命令

      修改配置是以后工作中必然经历的,要做好基础工作,两天的学习也说明了在Linux系统中修改配置的重要性,多看多学习. 每周总结学习和经验到网站上,坚持1w个小时,加油! Linux的安装环境 cen ...

  3. es6 Array数组方法

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  4. arch 安装准备--包管理的使用pacman

    -------https://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#List_of_installed_packageshttps:/ ...

  5. Javascript 2.4

    ---恢复内容开始--- 弱类型语言,可以随意修改变量的数据类型 "..."中的字符串包含 " 时需要转义字符  \" '...'中的而字符串包含 ' 时需要转 ...

  6. 学习笔记TF047:PlayGround、TensorBoard

    PlayGround.http://playground.tensorflow.org .教学目的简单神经网络在线演示.实验图形化平台.可视化神经网络训练过程.在浏览器训练神经网络.界面,数据(DAT ...

  7. Oracle Sql Loader的学习使用

    最近由于遇到oracle控制文件的使用,虽然不是很复杂,但是从来没有用过,专门花点时间看看.点击 这里 查看详细 1,概述: Sql Loader: 一个批量工具,将文件数据导入到数据库.可以导入一个 ...

  8. Dynamics CRM Instances

    Dynamics CRM 的instances: 当我们打开Dynamics 365 admin portal 会看到我们instance是什么: 新 admin center界面: 当前的admin ...

  9. Django学习笔记之URL与视图

    视图 视图一般都写在app的views.py中.并且视图的第一个参数永远都是request(一个HttpRequest)对象.这个对象存储了这个http请求的所有信息,其中包括携带的参数以及一些头部信 ...

  10. grafna与饼状图

    官网: https://grafana.com/plugins/grafana-piechart-panel/installation            https://grafana.com/p ...