probabilistic robotics_Kalman filter(一)
码农生活告一段落,继续。。。。
多元正态分布

协方差矩阵
,为正定对称矩阵。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(一)的更多相关文章
- probabilistic robotics_bayes filter
贝叶斯滤波 执行测量后的后验概率: 执行测量前的先验概率: 执行测量后的后验概率推导 根据式2.23的推导方式 可推出 假定xt是complete,即xt可以完全决定测量结果,那么则有2.56式: 带 ...
- django 操作数据库--orm(object relation mapping)---models
思想 django为使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM). PHP:activerecord Java:Hibernate C#:Ent ...
- 卡尔曼滤波—Simple Kalman Filter for 2D tracking with OpenCV
之前有关卡尔曼滤波的例子都比较简单,只能用于简单的理解卡尔曼滤波的基本步骤.现在让我们来看看卡尔曼滤波在实际中到底能做些什么吧.这里有一个使用卡尔曼滤波在窗口内跟踪鼠标移动的例子,原作者主页:http ...
- (二). 细说Kalman滤波:The Kalman Filter
本文为原创文章,转载请注明出处,http://www.cnblogs.com/ycwang16/p/5999034.html 前面介绍了Bayes滤波方法,我们接下来详细说说Kalman滤波器.虽然K ...
- 基于粒子滤波的物体跟踪 Particle Filter Object Tracking
Video来源地址 一直都觉得粒子滤波是个挺牛的东西,每次试图看文献都被复杂的数学符号搞得看不下去.一个偶然的机会发现了Rob Hess(http://web.engr.oregonstate.edu ...
- 海量信息库,查找是否存在(bloom filter布隆过滤器)
Bloom Filter(布隆过滤器) 布隆过滤器用于测试某一元素是否存在于给定的集合中,是一种空间利用率很高的随机数据结构(probabilistic data structure),存在一定的误识 ...
- Java Bloom filter几种实现比较
英文原始出处: Bloom filter for Scala, the fastest for JVM 本文介绍的是用Scala实现的Bloom filter. 源代码在github上.依照性能测试结 ...
- url去重 --布隆过滤器 bloom filter原理及python实现
https://blog.csdn.net/a1368783069/article/details/52137417 # -*- encoding: utf-8 -*- ""&qu ...
- Skip List & Bloom Filter
Skip List | Set 1 (Introduction) Can we search in a sorted linked list in better than O(n) time?Th ...
随机推荐
- 揭开Java内存管理的面纱
前言 相对于C.C++这些高性能语言,Java有着让此类程序员羡慕的功能:内存自动管理.似乎这样,Java程序员不用再关心内存,也不用去了解相关知识.但结果真的是这样吗?特别对于我们这种Android ...
- 浅谈最大流的Dinic算法
PART 1 什么是网络流 网络流(network-flows)是一种类比水流的解决问题方法,与线性规划密切相关.网络流的理论和应用在不断发展,出现了具有增益的流.多终端流.多商品流以及网络流的分解与 ...
- crontab 定时任务守护程序,停止服务器时出现 job for * canceled
(1)首先要在程序启动的时候加入定时任务到crontab #! /bin/shmkdir -p /home/apps/components/ams/ 2>/dev/nullcp ./amswat ...
- C语言打印不出百分号'%'(以解决)
1. 问题描述 今天,我需要把百分号'%'打印出来,考虑到它是特殊符号,我就用转义字符'\',和它组合,结果是漆黑的屏幕什么也没有. 2. 解决办法 我问度娘, 她告诉我要打印百分号需要在它的前 ...
- Cypher查询语言--Neo4j-MATCH(二)
目录 Match 相关节点 接出关系Outgong relationship 定向关系和标识符 通过关系类型匹配 通过关系类型匹配和使用标识符 带有特殊字符的关系类型 多重关系 可变长度的关系 在可变 ...
- 使用Django实现分页器功能
要使用Django实现分页器,必须从Django中导入Paginator模块 from django.core.paginator import Paginator 假如现在有150条记录要显示,每页 ...
- ASP.NET控件GridView的使用& Xml操作注意事项
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6729478.html 文章主要内容 ...
- ABP官方文档翻译 6.5 内嵌资源文件
内嵌资源文件 介绍 创建内嵌文件 xproj/project.json形式 csproj形式 添加内嵌资源管理器 使用内嵌视图 使用内嵌资源 ASP.NET Core 配置 忽略文件 重写内嵌文件 介 ...
- 《深入理解Java虚拟机》学习笔记(一)
JDK是支持Java程序开发的最小环境集,JRE是支持Java程序运行的标准环境,JRE是JDK的一部分. Java 1.0版本诞生于1995年,其使用的虚拟机是Sun Classisc VM,这款虚 ...
- 使用最小堆优化Dijkstra算法
OJ5.2很简单,使用priority_queue实现了最小堆竟然都过了OJ……每次遇到relax的问题时都简单粗暴地重新push进一个节点…… 然而正确的实现应该是下面这样的吧,关键在于swap堆中 ...