文章目录
- 一、PX4 的 ECL EKF 公式推导及代码解析 by 赵祯卿
- 二、PX4 的 ECL EKF2 方程推导 by shuyong.chen
PX4的ECL EKF开源代码已经比较广泛地应用到很多无人机飞控项目中。该开源项目可以融合多种传感器数据,包括IMU、磁力计、气压高度计、GPS、测距仪、空速、光流、外部视觉传感器等。
由于PX4 EKF采用了四元数作为状态量,因此许多量测的雅可比矩阵其实还是比较难推导的。PX4前期采用了matlab,后面采用了python来进行雅可比矩阵的推导以及代码自动生成。如果直接看代码,其实理解起来还是比较困难的。
目前我看到的,有两位博主对PX4 EKF的算法进行了比较系统且详细的推导,并且无私地将文档分享了出来,非常感谢他们的无私分享,让我觉得获益匪浅。这篇文章主要是介绍这两篇文章的主要内容。
一、PX4 的 ECL EKF 公式推导及代码解析 by 赵祯卿
作者在知乎和CSDN博客都发表了该文章,根据文章内容和github上的代码来看,作者应该主要是根据PX4的matlab代码来进行相关的推导。matlab代码中融合的传感器实际比C++代码中少一些。如果是想用PX4 matlab先做做仿真研究的,非常推荐阅读赵同学的文档。
文档总共18页,如下图封面所示,文章中推导了EKF的状态方程、以及GPS,气压高度计、磁力计、光流、ZED相机相关的量测方程等。我比较仔细地阅读了全文,暂时没有发现任何错处。
文章链接:
知乎:PX4 的 ECL EKF 公式推导及代码解析
CSDN:PX4 的 ECL EKF 公式推导及代码解析
作者联系方式:
e-mail: ericzzj@163.com
github: https://github.com/ericzzj1989/matlab_px4_msf
二、PX4 的 ECL EKF2 方程推导 by shuyong.chen
从内容来看,作者应该主要是根据C++代码来整理的相关推导,因此会比赵同学的推导多出一些传感器。如果是用PX4做工程实践的,比较推荐阅读这篇文档。
文档总共67页,作者在推导时也参考了上述赵同学的文档,因此文档比较详尽。从下面的封面可以看到,文章中包括IMU、磁力计、气压高度计、GPS、测距仪、空速、合成侧滑、风场、光流、外部视觉的融合处理,以及地形高差估计、偏航对准以及输出互补滤波等。文档详细整理了每一个传感器的融合,并且还包含一些作者对一些处理的理解,比如为什么将水平和高度方向的位置分开融合,为什么将所有观测拆分成一维一维地处理。
文章链接:
知乎:PX4 的 ECL EKF2 方程推导
作者github:
https://github.com/shuyong/
最后,我想再次感谢两位作者,文中的推导,绝对不是一朝一夕就能完成的。我之前也推导过部分公式,本来有过将其全部推导一遍的想法,不过看到他们的内容,我觉得我就不要再班门弄斧、画蛇添足了。
两位作者能够公开知识供大家学习,是非常可贵的。如果他们的文档让你很有收获,我觉得也可以去向作者留言表示感谢。知识其实是很宝贵的,需要花大量的时间和精力去整理。如果没有正向的交流和反馈,可能就很难看到越来越多的公开的知识。