![f2ae98b5666b917e0ca9dc4199345ba7.png](https://i-blog.csdnimg.cn/blog_migrate/af4853a79279d01bb847ab39ca764fb7.jpeg)
这个专栏主要讨论如何利用 IMU(Inertial Measurement Unit,惯性测量单元)估计刚体的三维姿态。我会用一系列的文章向大家介绍陀螺仪角速度的积分,及 IMU 的数据融合滤波两方面的底层算法。如果你从事使用 IMU 进行 slam 方向的研究,飞控算法方面的编程及研究,或者利用 IMU 做动作捕捉及人体的运动学测量,这个专栏会带你深入了解最底层的IMU 算法知识。
首先需要明确的一点是 IMU 姿态估计算法是惯性导航算法中重要的一部分,但在大多数介绍惯性导航的教科书中并不会提到具体的 IMU 姿态估计算法。其次,在国内论坛讨论 IMU姿态估计的大量文章中,算法集中在对卡尔曼滤波器的直接应用,及Robert Mahony等人提出的互补滤波器。然而目前在导航领域最通用的算法并不是这两种,而是1982年提出的一种名为“Multiplicative Extended Kalman Filter”,直译是“乘法扩展卡尔曼滤波器”的方法。这种算法相比于论坛中流行的两种算法有着明显的理论优势,而且被广泛地应用在卫星的姿态估计中,经历了大量的实践检验。因此我认为将这个算法介绍给大家,使其为更多从事IMU 算法的人所熟知非常有价值。最后,结合我自己和朋友的经历,如果从卡尔曼滤波器直接入手进行 IMU 数据融合和姿态估计,会遇到许多理论上的问题,而且这些问题很难在现有的资料中找到合适的解决方法,这对初学者十分不友好。因此,我也希望能通过这个专栏解决一些会对初学者造成疑惑的问题。
这个专栏会通过以下几篇文章介绍 IMU 姿态估计的算法(可能会随实际进展有所改动):
- 姿态的表示方法(包括旋转矩阵,欧拉角,四元数,旋转矢量等);
- 角速度的积分;
- 互补滤波器;
- IMU误差模型;
- 基于欧拉角的卡尔曼滤波器;
- 乘法扩展卡尔曼滤波器(MEKF);
- 从矢量观测到姿态观测;
- IMU姿态估计的新方法。
最后,因为 IMU 姿态估计实在涉及到太多领域的知识,而我的个人能力有限,在讨论的过程中难免有错误,还请同学老师们指正。讨论是激发灵感的源泉,我也希望能通过这个专栏与更多兴趣相投的朋友们进行深入的探讨,从而让自己对这一话题有更深入的理解。