一、绪论:组合导航基本概念、滤波算法发展史、课程内容与学习路径
1.1 什么是组合导航?
组合导航,说白了就是「让多个传感器互相补台」。
我刚开始接触这个领域时,总觉得名字挺唬人。后来做项目多了才明白,核心就一句话:每个传感器都有短板,组合起来才能干活。
举个例子。GPS 精度高,但信号一丢就完蛋。惯导(IMU)不怕遮挡,但时间长了漂得离谱。把两者放一起,GPS 帮惯导校准零偏,惯导在 GPS 丢星时顶上去——这就是最经典的组合导航。
我个人习惯把组合导航分成三个层次:
- 松组合:各传感器独立解算,最后融合位置/速度。简单,但精度一般。
- 紧组合:直接用原始观测值(伪距、载波相位)做融合。精度高,但算法复杂。
- 深组合:在接收机跟踪环路层面就介入。抗干扰最强,但实现难度最大。
核心要点:组合导航不是「1+1=2」,而是「1+1>2」。关键在于如何利用不同传感器的互补特性。
1.2 滤波算法发展史——从最小二乘到因子图
滤波算法的发展,其实就是人类跟「不确定性」死磕的历史。
1.2.1 最小二乘法(1795年,高斯)
高斯当年为了预测天体轨道,发明了最小二乘。说白了就是「找一条线,让所有点到这条线的距离平方和最小」。这个方法到现在还在用,比如 IMU 的零偏标定。
1.2.2 卡尔曼滤波(1960年,R.E. Kalman)
这是组合导航的里程碑。卡尔曼滤波的伟大之处在于:它把状态估计问题变成了「预测+更新」的递归过程。你想想看,不需要存储所有历史数据,每来一个新测量值,更新一下就行——这在嵌入式系统里简直是救命的设计。
我记得第一次在 STM32 上跑卡尔曼滤波,算力只有几十兆赫兹,内存几十 KB。但卡尔曼滤波跑得稳稳的。嗯,这就是经典的力量。
1.2.3 扩展卡尔曼滤波(EKF)
现实世界是非线性的。比如姿态角的正余弦运算,卡尔曼滤波搞不定。EKF 的做法很简单:把非线性函数在估计点附近做一阶泰勒展开,强行线性化。
避坑指南:我曾经在无人机项目里用 EKF,结果发散得一塌糊涂。后来发现是雅可比矩阵算错了。EKF 对初值和噪声模型非常敏感,调参是个体力活。
1.2.4 无迹卡尔曼滤波(UKF)
EKF 的线性化会引入截断误差。UKF 换了个思路:我不去近似函数,我去近似概率分布。通过选取一组 Sigma 点,直接传递非线性变换后的统计特性。
我个人习惯在强非线性场景(比如大角度姿态变化)优先用 UKF。精度比 EKF 高,而且不用算雅可比矩阵,省心。
1.2.5 粒子滤波(PF)
当系统是非高斯、多模态分布时,卡尔曼家族就力不从心了。粒子滤波用一堆随机样本(粒子)来近似后验概率。说白了就是「撒网捞鱼」——粒子越多,估计越准。
但代价是计算量爆炸。我在车载定位项目里试过粒子滤波,1000 个粒子跑在 ARM Cortex-A72 上,勉强实时。再往上加粒子,帧率就掉到个位数了。
1.2.6 因子图优化(2010年代至今)
这是最近十年最火的方向。因子图把状态估计问题建模成图优化:节点是状态变量,边是约束(观测、运动模型)。然后用非线性最小二乘求解。
为什么火?因为因子图天然支持多传感器融合、滑动窗口、回环检测。你想想看,GPS、IMU、视觉、激光雷达,全都可以塞进因子图里,统一优化。GTSAM、Ceres Solver 这些库已经非常成熟了。
我的建议:初学者从卡尔曼滤波入手,理解「预测-更新」的闭环。进阶后再学因子图。不要一上来就啃因子图,容易劝退。
1.3 课程内容与学习路径
这门课共 10 章,我按「基础→进阶→实战」的路线来设计。
| 章节 | 内容 | 难度 |
|---|---|---|
| 第1章 | 绪论:基本概念、发展史、学习路径 | ★☆☆☆☆ |
| 第2章 | 惯性导航原理与误差模型 | ★★☆☆☆ |
| 第3章 | 卡尔曼滤波:从理论到代码 | ★★★☆☆ |
| 第4章 | 扩展卡尔曼滤波与无迹卡尔曼滤波 | ★★★☆☆ |
| 第5章 | 组合导航系统设计:松组合与紧组合 | ★★★★☆ |
| 第6章 | 粒子滤波与非线性非高斯估计 | ★★★★☆ |
| 第7章 | 因子图优化:原理与实现 | ★★★★★ |
| 第8章 | 多传感器融合实战:GPS+IMU+视觉 | ★★★★★ |
| 第9章 | 工程化落地:嵌入式移植、性能调优 | ★★★★☆ |
| 第10章 | 前沿趋势:深度学习+组合导航、完好性监测 | ★★★★☆ |
学习路径上,我建议你:
- 先啃数学:矩阵论、概率论、最优化。别怕,用到哪学到哪就行。
- 动手写代码:别光看书。我当年就是对着《捷联惯性导航》抄代码,抄着抄着就懂了。
- 跑数据集:KITTI、EuRoC 这些公开数据集,拿来跑你的算法。看看跟真值差多少。
- 做项目:买个便宜的 IMU+GPS 模块,自己搭一个组合导航系统。踩坑是最好的学习。
一句话总结:组合导航不是玄学,是数学+工程+经验的结合。这门课会带你从原理到代码,从仿真到真机,一步步走通。
1.4 本章知识体系
下面这张图,是我梳理的本章知识结构。你可以把它当作整个课程的「导航地图」。
这张图把整个课程的知识脉络串起来了。从组合导航基础出发,经过传感器和滤波算法,再到数学基础、工程实践,最后延伸到前沿方向。你每学完一章,都可以回来看看这张图,确认自己走到了哪一步。
学习建议:把这张图打印出来贴在墙上。每学完一章,就在对应的方块里打个勾。成就感是最好的驱动力。
好了,绪论就讲到这里。下一章我们正式进入惯性导航的世界——你会看到 IMU 是怎么「骗人」的,以及我们怎么「拆穿」它。