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滤波的更多相关文章

  1. 理解Kalman滤波的使用

    Kalman滤波简介 Kalman滤波是一种线性滤波与预测方法,原文为:A New Approach to Linear Filtering and Prediction Problems.文章推导很 ...

  2. 目标跟踪之卡尔曼滤波---理解Kalman滤波的使用预测

    Kalman滤波简介 Kalman滤波是一种线性滤波与预测方法,原文为:A New Approach to Linear Filtering and Prediction Problems.文章推导很 ...

  3. 目标跟踪之卡尔曼滤波---理解Kalman滤波的使用

    http://www.cnblogs.com/jcchen1987/p/4371439.html

  4. kalman滤波原理

    2017拜拜啦,怎么过元旦呢?当然是果断呆实验室过... 应该是大二的时候首次听说kalman,一直到今天早上,我一看到其5条“黄金公式”,就会找各种理由放弃,看不懂呀...但是研究lidar定位需要 ...

  5. 【滤波】标量Kalman滤波的过程分析和证明及C实现

    摘要: 标量Kalman滤波的过程分析和证明及C实现,希望能够帮助入门的小白,同时得到各位高手的指教.并不涉及其他Kalman滤波方法. 本文主要参考自<A Introduction to th ...

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

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

  7. kalman滤波

    kalman滤波原理(通俗易懂) 1. 在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”.跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人 ...

  8. 透过表象看本质!?之三——Kalman滤波

    数据拟合能够估计出数据变化的趋势,另外一个同等重要的应用是如何利用这一趋势,预测下一时刻数据可能的值.通俗点儿说,你观察苍蝇(蚊子,蜜蜂)飞了几秒,你也许会想“它下一个时刻可能在哪儿”,“呈现出什么样 ...

  9. Kalman滤波学习

    两个过程: 预测过程和更新过程 1.基本原理 2.IMU应用Kalman滤波求角速度. https://github.com/jjundot/MPU6050_Kalman

随机推荐

  1. jdk动态代理举例

    JDK动态代理是基于接口的代理,下面举例说明 代理类:proxy,代理动作必须要基于一个proxy实例来执行 代理执行类:实现InvocationHandler,案例中是TestInvocationH ...

  2. gearman学习笔记1

    1.简介       gearman是一个分布式开发框架,适合处理一些必须处理但是不影响主流程的操作,比如保存日志.发送邮件.缩略图片等.最早是基于perl语言的,2008年发布的时候改为C++语言开 ...

  3. 配置SQL Server on Linux(2)

    1. 前言 前一篇配置SQL Server on Linux(1),地址:http://www.cnblogs.com/fishparadise/p/8125203.html ,是关于更改数据库排序规 ...

  4. 《调试九法——软硬件错误的排查之道》【PDF】下载

    <调试九法--软硬件错误的排查之道>[PDF]下载链接: https://u253469.ctfile.com/fs/253469-231196352 内容简介 <调试九法:软硬件错 ...

  5. 用于文件系统的C库函数

    9/20/2017 学<LINUX C编程实战>中 1.打开 File *fopen(const char *path , const char * mode); fopen实现打开指定的 ...

  6. epoll的使用实例

    在网络编程中通常需要处理很多个连接,可以用select和poll来处理多个连接.但是select都受进程能打开的最大文件描述符个数的限制.并且select和poll效率会随着监听fd的数目增多而下降. ...

  7. 关于mysql的loose index scan的几点疑问

    本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/102 关于MySQL的loose index scan有几点疑问 ...

  8. Anaconda多版本Python管理

    Anaconda是一个集成python及包管理的软件,记得最早使用时在2014年,那时候网上还没有什么资料,需要同时使用py2和py3的时候,当时的做法是同时安装Anaconda2和Anaconda3 ...

  9. Java8函数之旅 (五) -- Java8中的排序

    前言    对数据进行排序是平常经常会用到的操作之一,使用Jav8排序可以减少你在排序这方面的代码量,优化你的代码. 测试用例代码 定义个实体类User,拥有姓名name,年龄age,积分credit ...

  10. 前端MVC Vue2学习总结(四)——条件渲染、列表渲染、事件处理器

    一.条件渲染 1.1.v-if 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: <!-- Handlebars 模板 --> {{#if ok}} <h1&g ...