EKF—面向初学者的互动教程(1)
2017-11-06 15:20
155 查看
在使用像openpilot和pixhawk的自动驾驶系统过程中,我经常会遇到所谓的拓展卡尔曼滤波器(EKF)。谷歌EKF,我找到了许多网页和文献,它们大多数都难以上手,所以我决定为初学者创建自己的教程。这篇教程仅仅需要高中数学知识,如果需要,我会介绍线性代数等高级概念。从一个简单的例子和(线性的)卡尔曼滤波器开始,最终在教程的结尾对EKF的真正实现有一个理解。
工程师使用递归这个术语来指代一个像这样的公式,在这个公式中,数量是用先前的值来定义的:为了计算当前值,我们必须“重复”回到先前的值。 最终我们又回到了一些最初的“基本情况”,就像已知的起始高度。
最后附上原版教程下载链接:The Extended Kalman Filter(html)
PART 1:一个简单的例子
想象一架飞机正在着陆,尽管这里有许多事情我们需要关注比如空速、燃料等等,但是最主要的是关注飞机的高度(海拔高度)。对降落过程做一个简单的近似描述,我们可以认为现在的高度是上一个时刻高度的一个函数。比如我们每次观测时,飞机每次下降2%的高度,然后飞机当前的高度是上一时刻高度的98%:工程师使用递归这个术语来指代一个像这样的公式,在这个公式中,数量是用先前的值来定义的:为了计算当前值,我们必须“重复”回到先前的值。 最终我们又回到了一些最初的“基本情况”,就像已知的起始高度。
PART 2:噪声处理
当然,真实的高度测量来自于对传感器的观测,比如GPS或者气压计。这些传感器不同程度上的反映了真实高度。如果一个传感器仅仅是有零偏,我们减去这个零偏就可以得到高度。但是,通常情况下,传感器的准确度会随着时间的推移而不可预知地变化,使得观察到的传感器读数成为真实高度与噪声的叠加:最后附上原版教程下载链接:The Extended Kalman Filter(html)
相关文章推荐
- TensorsFlow学习笔记3----面向机器学习初学者的MNIST教程(MNIST For ML Beginners)
- 面向所有初学者的一篇教程
- Yoshua Bengio实验室MILA开放面向初学者的PyTorch教程
- 给初学者的RxJava2.0教程(八)
- php面向对象教程3
- XML初学者教程(IBM)
- 给初学者的RxJava2.0教程(三)
- Node初学者入门,一本全面的NodeJS教程
- 微信小程序面向个人开放-附超详尽申请教程
- 新C++标准:C++0x教程(二):面向所有开发者的特性(上)
- NSIS初学者图文教程一
- AIR Native Extension实现iOS应用内付费(In-App Purchase)全教程(二)——AIR面向iOS设备的原生扩展
- Apache Solr入门教程(初学者之旅)
- Quick-Cocos2d-x初学者游戏教程(一)
- 再次免费发一个Qt教程,希望能帮助各位Qt初学者快速入门
- Android核心分析28篇,强烈推荐android初学者,android进阶者看看这个系列教程
- 【Unity3D基础教程】给初学者看的Unity教程(六):理解Unity的新GUI系统(UGUI)
- matlab面向对象教程【2】影讯抓取及其可视化展示(1/5)
- 电脑初学者必学的数据恢复知识(带教程和软件)
- 写给初学者的Python与pip安装教程