1、绪论:导航数据融合的定义、发展历程、核心挑战与工程意义
1.1 到底什么是导航数据融合?
先说说我个人的理解。导航数据融合,说白了就是「把多个传感器的数据揉在一起,得出一个更靠谱的位置和姿态」。你想想看,单个传感器总有它的短板——GPS进了隧道就抓瞎,惯性导航跑久了就漂移,视觉里程计遇到白墙就懵圈。融合的目的,就是让它们互相补台。
我在项目中遇到过最典型的场景:一辆AGV小车在仓库里跑,GPS信号被货架遮挡得断断续续。如果只用GPS,定位误差能到十几米。但加上轮式里程计和IMU,再做个简单的卡尔曼滤波,误差就能压到半米以内。这就是融合的价值。
从学术定义上讲,导航数据融合属于多源信息融合的一个分支。它利用估计理论(比如卡尔曼滤波、粒子滤波)或优化方法(比如图优化、因子图),将来自不同传感器、不同时间戳、不同坐标系的数据进行对齐、加权和估计,最终输出一个最优的状态估计。
状态估计 = 预测(模型驱动) + 更新(观测驱动)
嗯,这个公式贯穿了整个课程。你记住它,后面所有算法都是它的变体。
1.2 发展历程:从单打独斗到多源协同
导航融合不是一天建成的。我把它分成三个阶段来讲:
第一阶段:单传感器时代(1960s-1980s)
那时候主要靠惯性导航系统(INS)。飞机、导弹上用的都是高精度陀螺和加速度计。但有个致命问题——误差随时间累积。我记得读文献时看到,早期潜艇的惯导系统每航行一小时,位置误差就能漂出几百米。没办法,只能定期浮出水面用天文导航校准。
第二阶段:GPS+INS松耦合(1990s-2000s)
GPS普及后,大家发现它和INS简直是天生一对。GPS提供绝对位置,INS提供高频相对运动。最简单的做法就是「GPS有信号时用GPS,没信号时切到INS」。这就是松耦合。我在做车载导航时用过这种方案,优点是简单,缺点是GPS一旦中断,切换瞬间会有明显的跳变。
第三阶段:多传感器紧耦合与因子图(2010s至今)
现在的主流做法是紧耦合。什么意思?就是把GPS的原始观测(伪距、载波相位)和IMU的加速度、角速度直接扔进同一个优化框架里。再加上视觉、激光雷达、轮速计……你想想看,数据量大了,但精度也上去了。我个人习惯用因子图来做这个事,它比卡尔曼滤波更灵活,能处理非线性、非高斯的问题。
| 阶段 | 典型方案 | 精度 | 我踩过的坑 |
|---|---|---|---|
| 单传感器 | 纯惯导 | 低(随时间发散) | —— |
| 松耦合 | GPS+INS | 中等(有切换跳变) | 切换瞬间位置突变,导致控制指令异常 |
| 紧耦合 | 多传感器+因子图 | 高(厘米级) | 计算量大,嵌入式上跑不动 |
1.3 核心挑战:为什么融合这么难?
做导航融合这么多年,我总结出四个绕不开的坎:
- 时间同步问题——每个传感器都有自己的时钟。GPS是1秒输出一次,IMU是200Hz,相机是30帧。你如果不做时间戳对齐,融合出来的结果就是「鸡同鸭讲」。我曾经在一个项目里,因为IMU和GPS的时间差没处理好,导致定位结果在转弯时出现诡异的抖动。查了两天才发现是时间戳差了20毫秒。
- 坐标系对齐——IMU有自己的机体坐标系,GPS用的是地心地固坐标系,相机是像素坐标系。你得把它们统一到一个参考系下。这个转换矩阵一旦算错,后面全白搭。
- 异常值处理——传感器会坏、会受干扰。GPS多路径效应、IMU温漂、视觉特征丢失……如果你不做异常检测,一个坏数据就能把整个滤波器带偏。我建议在融合之前,一定要加一个「数据质量检查」模块。
- 计算资源限制——嵌入式系统不是PC。你跑一个全状态的卡尔曼滤波,状态维度一高,矩阵求逆就能把CPU吃满。我做过一个项目,用STM32跑15维的EKF,优化了半天才把单次迭代时间压到5毫秒以内。
1.4 工程意义:为什么你必须重视它?
说句实在话,导航融合不是「锦上添花」,而是「雪中送炭」。在以下场景中,没有融合,系统根本没法用:
- 自动驾驶——L4级别的车,要求定位精度在10厘米以内。单一传感器做不到。
- 无人机巡检——在桥梁、隧道等GPS拒止环境下,必须靠视觉+IMU融合。
- 机器人导航——室内定位没有GPS,全靠激光雷达+轮式里程计+IMU。
- 手机导航——你手机里的「高精度定位」,其实是GPS+基站+WiFi+加速度计的融合结果。
从工程角度看,融合算法做得好,能直接降低硬件成本。举个例子:如果你用融合算法把IMU的精度要求从「战术级」降到「工业级」,单颗芯片成本就能从几千块降到几十块。我参与的一个扫地机器人项目,就是靠融合算法,把原本需要激光雷达的方案,降级成了「单目相机+IMU」,成本降低了60%。
好了,绪论就讲到这里。下一章我们会深入卡尔曼滤波的工程实现——嗯,那才是真正开始「踩坑」的地方。