终于理解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
随机推荐
- InfluxDB:cannot use field in group by clause
最近在使用InfluxDB时,发现一个很奇怪的问题,一个本来正常的功能,做了一次改动后,就不能正常显示了. 一.查询语句 SELECT MEMORY FROM "ACM_PROCESS_MO ...
- webpack加载多级依赖时css、html文件不能正确resolve的问题
在使用webpack+avalon以及avalon的mmRouter做SPA的时候,碰到一个困扰数周的问题:webpack加载多级依赖时出现了css文件和模板(html)文件不能正确resolve.原 ...
- mongodb副本集配置
需要用到mongodb的时候单个实例肯定是不行的,挂了怎么办,那然后呢,跟mysql一样搞主从备份吗,是可以的mongodb这么弄,不过官网已经不推荐了这么干了,推荐使用副本集的模式,然后数据再大一点 ...
- JVM虚拟机(一) 内存区域
JVM虚拟机内存组成: 如下图: 1. 程序计数器: (1)是一块较小的内存空间:可以看做当前程序执行子界面的行号指示器,字节码解析器执行的时候就是根据这个 ...
- SQL Server 2016 行级别权限控制
背景 假如我们有关键数据存储在一个表里面,比如人员表中包含员工.部门和薪水信息.只允许用户访问各自部门的信息,但是不能访问其他部门.一般我们都是在程序端实现这个功能,而在sqlserver2016以后 ...
- Xampp配置本地域名及常见错误解决
本地域名配置 1.计算机-->C盘-->Windows-->System32-->drivers-->etc-->hosts 127.0.0.1 loc ...
- Xamarin.Android 怎么定义一个按钮和返回键功能一样回到上一个界面
https://zhidao.baidu.com/question/570934367.html页面之间的跳转有startActivity 和startActivityForResult两种,star ...
- 微信小程序参数二维码6问6答
微信小程序参数二维码[基础知识篇],从6个常见问题了解小程序参数二维码的入门知识. 1.什么是小程序参数码? 微信小程序参数二维码:针对小程序特定页面,设定相应参数值,用户扫描后进入相应的页面. 2. ...
- NET控件Designer架构设计
总体结构 Designer总体上由三大部分组成:View,ViewModel和Model,这个结构借鉴了流行的MVVM模式.这三部分的职责分工是: View 负责把ViewModel以图形的方式展现出 ...
- Sqlmap Tamper大全(1)
sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞,目前支持的数据库是MS-SQL,,MYSQL,ORACLE和POSTGRESQL.SQLMAP采用四 ...