终于理解kalman滤波
2017拜拜啦,怎么过元旦呢?当然是果断呆实验室过。。。
应该是大二的时候首次听说kalman,一直到今天早上,我一看到其5条“黄金公式”,就会找各种理由放弃,看不懂呀。。。但是研究lidar定位需要以此为基础,故立志掌握,然后集中精力看了一天,我发现我居然看懂了。。。作为白巧克力的忠实粉,所以果断先攻读Ta关于kalman的两篇blog,照着第一篇blog的公式推导,虽然没全部推出来,但是对5条公式的来源大致了解了,然后跑了第二篇blog的matlab实例,对照5条公式,感觉明白了什么。。。然后又接着看了授之以渔老师的blog,跑了62楼的matlab代码(源码重复了一遍,删除一半),自己又尝试将K值改为常数并调节常数K的大小(0~1之间),看了效果,然后觉得终于理解了kalman滤波,详细的不赘述,只把自己认为的关键的点Mark下来:
1.所谓kalman滤波本质就是加权信息融合,跟freescale两轮车的互补滤波原理是一样的,即利用两种信息(信息1的毛刺大但是无漂移,而信息2的毛刺小但是漂移严重(类似于无反馈的开环系统以及没有闭环检测的Odometry))之间的偏差error来周期性地消除信息2的漂移,以此来实现信息融合,只不过:
1)权重K不是固定值,在每一次迭代中都由复杂的公式推导计算而来,相较于互补滤波,其权重不用人工调节而且根据黄金公式计算的权重K还是最优权重,kalman的牛逼之处一方面就体现在这个K的计算上。
2)互补滤波融合的都是来自传感器的信息(最起码我们当年比赛时是这样的),例如陀螺仪和加速度计的值;而kalman滤波可以通过对系统建立数学模型(状态方程)得出一种被融合的信息,即预测值;另一个被融合的信息就是传感器获得的原始信息,即观测值,一般有较大毛刺,噪声严重,那么问题来了,kalman怎么融合两种传感器的信息,没有数学模型,参数A,B,C怎么求?容我我再研究研究。。。//TODO
2.K值(0~1)与预测值协方差的大小正相关,协方差P越小,说明预测值的不确定度越小,越准确,最终结果就偏向预测值多一些,反之亦然。PS,将两位大大blog中代码K值改为常数后,在0~1的范围内调节其值可以很直观的验证K值的作用。
3.按照“授之以渔”公式里的参数来说,整个kalman的参数一共A,B,C,Q,R,其中A,B,C是系统数学模型的参数,Q和R分别是系统和测量噪声的方差,其值越大说明系统预测或测量就相应地越不靠谱。
4.“授之以渔”的blog中将白巧克力提的预测值和估计值用了一个符号代替,并且统称为估计值,所以两位大大的blog中的黄金公式好像不大一样,我又查了查其他资料,好像两种说法都有,再看看,这两种说法其实是一个意思,总结一下——“授之以渔”中更新之前的估计值和对应的协方差,就是白巧克力说的“预测值”以及“预测值和真实值之间的协方差”。
---------------------------------------------------------- 分割线 ----------------------------------------------------------
不查不知道,一查吓一跳,上文中的TODO,居然是多传感器信息融合的知识,目前的任务不涉及多传感器信息融合,先放着吧。。。
终于理解kalman滤波的更多相关文章
- 理解Kalman滤波的使用
Kalman滤波简介 Kalman滤波是一种线性滤波与预测方法,原文为:A New Approach to Linear Filtering and Prediction Problems.文章推导很 ...
- 目标跟踪之卡尔曼滤波---理解Kalman滤波的使用预测
Kalman滤波简介 Kalman滤波是一种线性滤波与预测方法,原文为:A New Approach to Linear Filtering and Prediction Problems.文章推导很 ...
- 目标跟踪之卡尔曼滤波---理解Kalman滤波的使用
http://www.cnblogs.com/jcchen1987/p/4371439.html
- kalman滤波原理
2017拜拜啦,怎么过元旦呢?当然是果断呆实验室过... 应该是大二的时候首次听说kalman,一直到今天早上,我一看到其5条“黄金公式”,就会找各种理由放弃,看不懂呀...但是研究lidar定位需要 ...
- 【滤波】标量Kalman滤波的过程分析和证明及C实现
摘要: 标量Kalman滤波的过程分析和证明及C实现,希望能够帮助入门的小白,同时得到各位高手的指教.并不涉及其他Kalman滤波方法. 本文主要参考自<A Introduction to th ...
- (二). 细说Kalman滤波:The Kalman Filter
本文为原创文章,转载请注明出处,http://www.cnblogs.com/ycwang16/p/5999034.html 前面介绍了Bayes滤波方法,我们接下来详细说说Kalman滤波器.虽然K ...
- kalman滤波
kalman滤波原理(通俗易懂) 1. 在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”.跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人 ...
- 透过表象看本质!?之三——Kalman滤波
数据拟合能够估计出数据变化的趋势,另外一个同等重要的应用是如何利用这一趋势,预测下一时刻数据可能的值.通俗点儿说,你观察苍蝇(蚊子,蜜蜂)飞了几秒,你也许会想“它下一个时刻可能在哪儿”,“呈现出什么样 ...
- Kalman滤波学习
两个过程: 预测过程和更新过程 1.基本原理 2.IMU应用Kalman滤波求角速度. https://github.com/jjundot/MPU6050_Kalman
随机推荐
- GIT如何从本地上传代码到github
转载请标明出处: http://blog.csdn.net/hanhailong726188/article/details/46738929 本文出自:[海龙的博客] 开篇之前说下题外话,之前写过一 ...
- Spring框架(三) JDBCTemplate,声明式事务,自动装载(注解)
JDBCTemplate 按照标准正常项目的结构 结构图: model层 dao层 实现 dao:(DateBase Access Object) 数据访问对象,dao层只用来访问数据库和模型层 s ...
- Function:html结构转字符串形式显示
//Html结构转字符串形式显示 支持<br>换行 function ToHtmlString(htmlStr) { return toTXT(htmlStr).replace(/\&am ...
- iOS自定义文字高度添加行间距
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000 } span.s1 { } span.s2 { c ...
- 将自己的域名代理到Gitpages
相信有很多程序员都有自己的域名,甚至很多人还有自己的服务器.去年我也买了半年的阿里云,在tomcat里面发war包,相当于一个正式的项目.但是很多前端程序员应该要求很简单,就是能将静态的html发布就 ...
- [array] leetcode - 40. Combination Sum II - Medium
leetcode - 40. Combination Sum II - Medium descrition Given a collection of candidate numbers (C) an ...
- 栈和队列数据结构的相互实现[LeetCode]
栈是先进后出,队列是先进后出,这里讨论一下两种数据结构之间的相互实现. 一.用两个栈实现队列 我们用一个栈来实现队列的进队操作(栈A),用另一个栈来实现队列的出队操作(栈B). 1.入队列: 把元素放 ...
- 解决报错:IncompleteElementException: Could not find result map...
今天遇到这样一个报错,记录一下: org.apache.ibatis.builder.IncompleteElementException: Could not find result map com ...
- js怎么防止变量冲突
[1]工程师甲编写功能A ? 1 2 3 var a = 1; var b = 2; alert(a+b);//3 [2]工程师乙添加新功能B ? 1 2 3 var a = 2; var b = 1 ...
- python爬虫爬取大众点评并导入redis
直接上代码,导入redis的中文编码没有解决,日后解决了会第一时间上代码!新手上路,多多包涵! # -*- coding: utf-8 -*- import re import requests fr ...