码农生活告一段落,继续。。。。

多元正态分布

协方差矩阵,为正定对称矩阵。det表示行列式

协方差反应随机样本变量各分量之间的相关性。

当变量的假设模型不一致时,不适合用高斯滤波。

叠加高斯噪声的线性假设

联立1,2式可得状态转移概率

测量值

卡尔曼滤波

初始置信度

1、 其中贝叶斯滤波中的后验概率bel(x)由均值和协方差表示。整个算法流程就是在对二者不停的做迭代计算。

2、 可以看出增益系数K由前验概率中的协方差以及测量系数、测量误差这三者来决定。

3、 均值的更新需要用的测量值zt,协方差的更新只与上次协方差以及本次增益系数有关。

推导过程太繁复,略过不看了。

扩展卡尔曼滤波

式3.2与3.5

由如下两式代替

1、状态转移函数以及测量概率函数由原来的线性假设变为了非线性假设,但误差还是符合正态分布。

2、但是整体的后验概率将不符合高斯分布(正态分布),用原来的贝叶斯滤波将不会有闭环解(closed-form solution),所以扩展卡尔曼滤波只能计算近似解。

3、扩展卡尔曼滤波通过对函数的泰勒展开来逼近线性函数。

泰勒展开

偏导公式:

在上一次的均值处对做泰勒展开有:

算法描述

对比KF,可以发现原来的A、B、C由G、H代替。

实际考虑

1、多模型考虑。有时候,会用到多个模型对状态进行估计,这些模型没有相互冲突。此时可采用对模型加权的方式进行处理。称为多假设(扩展)卡尔曼滤波(Multi-Hypthesis (Extended) Kalman Filter,MHEKF),其中的加权系数为似然估计。

2、局部非线性化,局部线性化程度高,泰勒展开越逼近真实结果,滤波效果越好。

3、不确定性(方差),当状态的不确定性(方差)很大时,经过非线性函数的变换,结果容易扩散,得到的概率密度函数更加扭曲。

4、比之泰勒展开更加高级的另两种方式,一种是无迹卡尔曼滤波(Unscented KF,UKF),它通过使用加权统计线性回归过程实现随机线性化(机器学习);另一种是矩匹配(moments mathching),它仅通过对后验分布的真实均值与方差来计算。

下一步将用matlab进行模拟。

probabilistic robotics_Kalman filter(一)的更多相关文章

  1. probabilistic robotics_bayes filter

    贝叶斯滤波 执行测量后的后验概率: 执行测量前的先验概率: 执行测量后的后验概率推导 根据式2.23的推导方式 可推出 假定xt是complete,即xt可以完全决定测量结果,那么则有2.56式: 带 ...

  2. django 操作数据库--orm(object relation mapping)---models

    思想 django为使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM). PHP:activerecord Java:Hibernate C#:Ent ...

  3. 卡尔曼滤波—Simple Kalman Filter for 2D tracking with OpenCV

    之前有关卡尔曼滤波的例子都比较简单,只能用于简单的理解卡尔曼滤波的基本步骤.现在让我们来看看卡尔曼滤波在实际中到底能做些什么吧.这里有一个使用卡尔曼滤波在窗口内跟踪鼠标移动的例子,原作者主页:http ...

  4. (二). 细说Kalman滤波:The Kalman Filter

    本文为原创文章,转载请注明出处,http://www.cnblogs.com/ycwang16/p/5999034.html 前面介绍了Bayes滤波方法,我们接下来详细说说Kalman滤波器.虽然K ...

  5. 基于粒子滤波的物体跟踪 Particle Filter Object Tracking

    Video来源地址 一直都觉得粒子滤波是个挺牛的东西,每次试图看文献都被复杂的数学符号搞得看不下去.一个偶然的机会发现了Rob Hess(http://web.engr.oregonstate.edu ...

  6. 海量信息库,查找是否存在(bloom filter布隆过滤器)

    Bloom Filter(布隆过滤器) 布隆过滤器用于测试某一元素是否存在于给定的集合中,是一种空间利用率很高的随机数据结构(probabilistic data structure),存在一定的误识 ...

  7. Java Bloom filter几种实现比较

    英文原始出处: Bloom filter for Scala, the fastest for JVM 本文介绍的是用Scala实现的Bloom filter. 源代码在github上.依照性能测试结 ...

  8. url去重 --布隆过滤器 bloom filter原理及python实现

    https://blog.csdn.net/a1368783069/article/details/52137417 # -*- encoding: utf-8 -*- ""&qu ...

  9. Skip List & Bloom Filter

    Skip List | Set 1 (Introduction)   Can we search in a sorted linked list in better than O(n) time?Th ...

随机推荐

  1. shell中awk printf的用法

    打印输出时,可能需要指定字段间的空格数,从而把列排整齐.在print函数中使用制表符并不能保证得到想要的输出,因此,可以用printf函数来格式化特别的输出. printf函数返回一个带格式的字符串给 ...

  2. 【转】python入门指引

    http://matrix.42qu.com/10757179 前言 其实我也不知道python怎么入门,由我来写这个真的不是很合适.我学python是直接找了dive into python来看.然 ...

  3. 洛谷 [P2756] 飞行员配对方案问题 网络流实现

    网络流实现二分图匹配 对于x集合的每一个点连一条从源点出发的容量为一的边,对于y集合的每一个点连一条到汇点的容量为一的边,跑最大流 #include <iostream> #include ...

  4. BZOJ 4514: [Sdoi2016]数字配对 [费用流 数论]

    4514: [Sdoi2016]数字配对 题意: 有 n 种数字,第 i 种数字是 ai.有 bi 个,权值是 ci. 若两个数字 ai.aj 满足,ai 是 aj 的倍数,且 ai/aj 是一个质数 ...

  5. BZOJ 4129: Haruna’s Breakfast [树上莫队 分块]

    传送门 题意: 单点修改,求一条链的mex 分块维护权值,$O(1)$修改$O(S)$求mex...... 带修改树上莫队 #include <iostream> #include < ...

  6. BZOJ 2463: [中山市选2009]谁能赢呢?[智慧]

    明和小红经常玩一个博弈游戏.给定一个n×n的棋盘,一个石头被放在棋盘的左上角.他们轮流移动石头.每一回合,选手只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的格子之前不能被访问过.谁不能移 ...

  7. 【原】font-awesome IE6支持代码本人测试成功

    <!--[if (gte IE 6)&(lte IE 8)]> <script type="text/javascript" src="js/n ...

  8. linux内核链表的使用

    linux内核链表:链表通常包括两个域:数据域和指针域.struct list_head{struct list_head *next,*prev;};include/linux/list.h中实现了 ...

  9. Hadoop源码学习之HDFS(一)

    Hadoop的HDFS可以分为NameNode与DataNode,NameNode存储所有DataNode中数据的元数据信息.而DataNode负责存储真正的数据(数据块)信息以及数据块的ID. Na ...

  10. laravel框架学习-缓存,事件

    缓存配置:app/config/cache.php   缓存:     增加缓存项: Cache::put( 'key', 'value', $Cachetime );     在缓存中增加一个不存在 ...