欢迎光临散文网 会员登陆 & 注册

这才是优质卡尔曼滤波教程

2023-07-03 15:22 作者:啥都会一点的研究生  | 我要投稿

在导航、控制、信号处理、机器人、目标跟踪、SLAM等领域不可避免的会与卡尔曼滤波打交道

利用多源信息,包括系统模型、控制输入、测量数据等,进行综合分析,得到更准确的状态估计

可以处理线性或近似线性的系统,也可以通过扩展卡尔曼滤波或无迹卡尔曼滤波等方法处理非线性系统

最近因为手头的事情又需要再次用到它,正好推介给大家我经常用的这份卡尔曼滤波学习教程

在网上搜索卡尔曼滤波教程大多数都是堆公式,三年前我也是差点直接被劝退

有的太大白话,有的太过专业,没有一份系统的学习指南,然后,我便发现了这个宝藏

https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python

插播:出不去的/懒的,所有资料与pdf已打包,公众号【啥都会一点的研究生】后台回复【KF】

该教程是由 Roger R. Labbe 撰写的一本开源书籍,侧重于引导教学而不是形式证明,涵盖卡尔曼滤波、扩展卡尔曼滤波、无迹卡尔曼滤波、粒子滤波等。 

所有练习都包含解决方案,代码均用 Python 编写,所有内容都在Jupyter Notebook中完成,因此代码可以轻松的运行和修改

本教程中的每一个图、每一条数据都是由 Python 生成的,可以在电脑中直接使用

编写该教程的作者谈及目的时,也是完全站在初学者角度着想

这本书的动机源于我对卡尔曼滤波形象教学的渴望。我是一名软件工程师,曾经在航空电子领域工作了近二十年,所以我一直和卡尔曼滤波器“碰肘”,但从未自己实现过一个。当我用计算机视觉解决跟踪问题时,这种需求变得迫切。有一些领域的经典教科书,比如Grewal和Andrew的优秀的《卡尔曼滤波》。但是坐下来试图阅读是一种惨淡的经历,如果你没有所需的背景的话。通常前几章就飞速地涵盖了几年的本科数学,轻描淡写地引用了关于伊藤微积分等主题的教科书,并在几段简短的段落中介绍了一个学期的统计学。对于初学者来说,阅读起来真是困难重重。符号没有解释,不同的文献对同一概念使用不同的术语和变量,而且这些书几乎没有例子或者解答过的问题。我经常发现自己能够解析单词并理解定义的数学,但是对于它们描述的现实世界现象却一无所知。“但这是什么意思?”是我反复思考的问题。

当我开始更多地理解数学和理论时,更多的困难出现了。一本书或论文的作者陈述了一个事实,并提供了一个图表作为证明。不幸的是,为什么这个陈述是正确的对我来说并不清楚,也不明显如何制作那个图表。或者我想知道“如果R=0,这是否成立?”或者作者提供了一个高层次的伪代码,但实现起来并不明显。有些书提供了Matlab代码,但我没有那个昂贵软件包的许可证。最后,许多书在每章结束时都有许多有用的练习题。如果你想自己实现卡尔曼滤波器,你需要理解这些练习题,但是练习题没有答案。如果你在课堂上使用这本书,也许这没关系,但对于独立阅读者来说太可怕了。我讨厌作者向我隐瞒信息,大概是为了避免学生在课堂上“作弊”。

在我看来,这些都是没有必要的。当然,如果你要为飞机或导弹设计一个卡尔曼滤波器,你必须彻底掌握典型的卡尔曼滤波教科书中的所有数学和主题。我只想在屏幕上跟踪一个图像,或者为一个Arduino项目写一些代码。我想知道书中的图表是如何制作的,并选择不同于作者选择的参数。我想运行模拟。我想在信号中注入更多的噪声,看看滤波器的性能如何。在日常代码中有成千上万个使用卡尔曼滤波器的机会,而这个相当简单的主题却是火箭科学家和学者的专利。

我写这本书是为了解决所有这些需求。


这才是优质卡尔曼滤波教程的评论 (共 条)

分享到微博请遵守国家法律