1. 从一次调试翻车说起:为什么这些概念总让人犯迷糊
刚入行那会儿,我第一次接手一个组合导航的调试任务,项目里同时出现了GNSS、INS、IMU、惯导、组合导航这几个词。当时我的反应很真实:这不就是一堆定位的东西吗,为什么非要搞这么多缩写?结果在联调现场,因为把IMU的输出频率和INS的解算频率搞混了,整个系统的姿态数据飘得离谱,排查了整整两天才定位到问题。那次之后我才明白,这些概念看着像同义词,实际上各自站在不同的层级上,职责边界非常清晰,混着用迟早要出事。
这篇内容我想把组合导航、惯导、GNSS、INS、IMU这几个高频概念彻底捋一遍。不是教科书式的定义罗列,而是从实际工程角度出发,讲清楚每个概念到底指什么、它们之间是什么关系、在真实系统里各自承担什么角色、选型和调试时容易踩哪些坑。适合刚接触导航定位的工程师、做机器人或自动驾驶方向的同学,以及需要和导航模块打交道的软件开发者。哪怕你之前完全没碰过这块,看完也能建立起一个清晰的认知框架,知道遇到问题时该往哪个方向查。
核心关键词会贯穿全文:组合导航是最终的系统形态,惯导是依靠惯性器件推算位姿的技术路线,GNSS提供绝对位置参考,INS是惯导的具体实现系统,IMU则是INS里最核心的传感器硬件。这几个词的关系,用一句话概括就是:IMU是零件,INS是产品,惯导是方法,GNSS是外部标尺,组合导航是把它们撮合到一起的融合方案。下面逐层拆开讲。
2. 概念全景拆解:五个词到底谁是谁
2.1 IMU:最底层的传感器硬件
IMU全称惯性测量单元,英文Inertial Measurement Unit。它本质上就是一个传感器组件,内部通常包含三轴陀螺仪和三轴加速度计,有的还会集成三轴磁力计(这种有时叫MARG或九轴IMU)。陀螺仪测的是角速度,单位一般是度每秒或弧度每秒;加速度计测的是比力,单位是米每二次方秒或g。
这里有个特别容易搞混的点:加速度计测的不是纯粹的“运动加速度”,而是比力,也就是包含重力在内的合力产生的加速度。静止放在桌面上,加速度计Z轴会读到大约1g,这不是因为它在动,而是重力在起作用。这个细节在做姿态解算时至关重要,因为你要靠重力方向来判断哪边是下。
IMU输出的是原始数据流,它本身不做任何解算,也不知道自己在哪、朝哪个方向。它就是一个忠实的测量器件,你给它供电,它按固定频率往外吐数据。常见的输出频率从100Hz到1000Hz不等,高端型号能到几千赫兹。选IMU时最核心的几个参数是零偏稳定性、角度随机游走、量程和带宽,这些直接决定了后续惯导解算能撑多久不飘。
2.2 INS:把IMU数据变成位姿的系统
INS全称惯性导航系统,英文Inertial Navigation System。它是在IMU的基础上,加上解算算法和计算单元,构成的一个完整系统。IMU负责测,INS负责算。INS通过积分陀螺仪的角速度得到姿态,再通过姿态把加速度计测到的比力转换到导航坐标系,扣除重力后积分得到速度和位置。
这个积分过程是INS的核心,也是它最大的软肋。积分会累积误差,陀螺仪的一点零偏,积分之后变成角度漂移,角度漂移再影响加速度的投影,最后导致位置误差随时间平方增长。这就是为什么纯INS在没有外部修正的情况下,几分钟甚至几十秒就会飘到没法用。高精度惯导能撑得久一些,但成本是数量级的差距。
INS按是否物理转动分为平台式INS和捷联式INS。平台式有个物理稳定平台,陀螺仪和加速度计装在一个被稳定住的平台上,始终对准导航坐标系,计算量小但结构复杂、体积大、成本高。捷联式是现在的主流,传感器直接固连在载体上,靠数学计算完成坐标转换,结构简单、体积小、成本低,但对计算能力和算法要求高。现在说INS,默认基本都是捷联式。
2.3 惯导:一条技术路线,不是某个具体产品
惯导是“惯性导航”的简称,它描述的是一种技术方法,核心思想就是依靠惯性器件(陀螺仪和加速度计)的测量,通过积分推算载体的姿态、速度和位置。惯导和INS的关系,有点像“通信”和“通信系统”的关系,前者是方法,后者是承载方法的实体。
很多人把惯导和INS当同义词用,日常交流问题不大,但严格来说有区别。惯导强调的是原理和算法层面,INS强调的是系统实现。你在论文里看到“惯导解算”,指的是那套积分和坐标变换的算法;看到“INS系统”,指的是包含硬件和软件的完整设备。
惯导最大的价值在于自主性和抗干扰。它不依赖任何外部信号,不往外辐射能量,也不怕别人干扰。这个特性在卫星信号被遮挡或拒止的环境里就是救命稻草。但它的缺点同样致命:误差随时间累积,长时间单独工作不可靠。所以惯导几乎从来不单独用,一定要和别的导航源组合。
2.4 GNSS:提供绝对参考的外部标尺
GNSS全称全球导航卫星系统,英文Global Navigation Satellite System。它是一个统称,包含多个卫星导航系统。GNSS的基本原理是接收机接收多颗卫星的信号,通过测量信号传播时间算出到各卫星的距离,再用三角定位原理解算出接收机的位置和速度。
GNSS最大的优势是提供绝对位置,误差不随时间累积,长时间稳定性极好。民用单点定位精度通常在米级,配合差分技术能到分米甚至厘米级。但它的问题也很明显:信号容易受遮挡,城市峡谷、隧道、地下车库、茂密树林里基本没法用;信号弱的时候容易受多径干扰;更新率相对较低,常见的是1Hz到10Hz,高动态场景下不够用。
GNSS输出的信息包括位置、速度、时间,有些还能输出航向(需要双天线或运动约束)。它给的是绝对参考,这个“绝对”很关键,因为惯导给的是相对推算,两者正好互补。
2.5 组合导航:把互补的东西撮合到一起
组合导航,英文Integrated Navigation,指的是把两种或多种导航手段融合在一起,取长补短,输出比任何单一手段都好的结果。最常见的组合就是GNSS加INS,也就是常说的GNSS/INS组合导航。
组合导航的核心是融合算法,主流方案是卡尔曼滤波及其变种(扩展卡尔曼滤波EKF、无迹卡尔曼滤波UKF、误差状态卡尔曼滤波ESKF等)。融合的基本逻辑是:用INS的高频推算结果做预测,用GNSS的绝对观测做修正,滤波器在两者之间找最优估计。GNSS好的时候,它把INS的累积误差压住;GNSS丢的时候,INS继续推算,滤波器靠惯性递推维持输出。
组合导航按耦合深度分松耦合、紧耦合、深耦合。松耦合是GNSS先自己解算出位置速度,再和INS结果融合,结构简单但GNSS卫星数少于4颗就失效。紧耦合是把GNSS的原始观测量(伪距、伪距率)直接送进滤波器,卫星数少也能用,抗遮挡能力更强。深耦合涉及硬件层面的信号跟踪环路辅助,一般厂商做得多,普通开发者接触少。
下面这张表把五个概念的核心定位做个对照,方便快速查阅。
| 概念 | 全称 | 本质 | 输出 | 核心特点 |
|---|---|---|---|---|
| IMU | 惯性测量单元 | 传感器硬件 | 角速度、比力 | 只测不算,高频原始数据 |
| INS | 惯性导航系统 | 硬件加算法系统 | 姿态、速度、位置 | 自主推算,误差累积 |
| 惯导 | 惯性导航 | 技术方法 | 同上 | 强调原理,自主抗干扰 |
| GNSS | 全球导航卫星系统 | 外部观测源 | 绝对位置、速度、时间 | 绝对参考,易受遮挡 |
| 组合导航 | 组合导航系统 | 融合系统 | 优化后的位姿 | 取长补短,鲁棒性强 |
3. 坐标系与误差:理解这些概念绕不开的底层逻辑
3.1 几个必须分清的坐标系
搞导航不把坐标系搞清楚,后面全是糊涂账。最常打交道的坐标系有这么几个。
惯性坐标系(i系)是牛顿力学成立的参考系,原点在地心,坐标轴指向恒星,不随地球转动。陀螺仪和加速度计的测量本质上是在惯性系下定义的,虽然实际器件输出会经过各种转换。
地球坐标系(e系)固连在地球上,随地球自转,原点在地心,Z轴指向北极。GNSS输出的经纬高就是相对这个系的。
导航坐标系(n系)是解算时用的参考系,常见的是东北天(ENU)或北东地(NED)。INS解算出来的姿态、速度、位置通常都在这个系下表达。选ENU还是NED看习惯,航空航天多用NED,地面机器人多用ENU,转换时注意符号。
载体坐标系(b系)固连在载体上,原点通常在IMU的测量中心,轴指向载体的前右下或前右上。IMU的原始输出就是在b系下的。
这几个坐标系之间的转换关系,就是姿态矩阵(也叫方向余弦矩阵或旋转矩阵)要表达的东西。姿态解算的本质,就是实时估计b系到n系的旋转关系。这个矩阵算错了,后面全错。
3.2 误差从哪里来,怎么累积
惯导的误差源主要有三类:器件误差、初始对准误差、解算误差。
器件误差包括零偏、标度因数误差、非正交误差、随机游走。零偏是最要命的,陀螺零偏直接导致角度漂移,加速度计零偏直接导致速度漂移。零偏还分常值零偏和随机零偏,常值部分可以标定补偿,随机部分只能靠滤波估计。
初始对准误差指的是初始姿态、初始速度和初始位置不准。初始姿态误差会导致重力被错误投影到水平方向,产生虚假的水平加速度,进而导致位置误差。初始对准通常分粗对准和精对准,粗对准用重力矢量和地球自转矢量快速估个大概,精对准用滤波慢慢收敛。
解算误差来自积分算法本身的离散化误差、圆锥误差、划船误差等。高动态场景下这些误差不可忽略,需要用多子样算法补偿。
误差累积的规律大致是:陀螺零偏导致姿态误差随时间线性增长,姿态误差导致加速度投影误差,进而导致速度误差随时间平方增长,位置误差随时间三次方增长。这就是为什么惯导单独工作撑不了多久。一个中等精度的IMU,陀螺零偏假设是10度每小时,那么100秒后姿态误差就有约0.28度,位置误差可能已经到米级了。
3.3 卡尔曼滤波在组合导航里到底干了什么
卡尔曼滤波是组合导航的灵魂,但很多人只知其然不知其所以然。用大白话说,它就是一个“带权重的信息融合器”。它有两个信息来源:一个是预测(INS推算),一个是观测(GNSS测量)。它根据两者的不确定度来决定信谁多一点。
具体来说,滤波器维护一个状态向量,通常包含位置误差、速度误差、姿态误差、陀螺零偏、加速度计零偏等。预测步骤用INS的力学关系递推状态和协方差,协方差代表不确定度,随时间增长。更新步骤用GNSS观测和预测观测的差值(新息)来修正状态,同时把协方差压下来。
这里的关键是观测矩阵和噪声矩阵的设置。观测矩阵描述观测量和状态量的关系,噪声矩阵描述各噪声源的统计特性。这两个矩阵设错了,滤波器要么不收敛,要么收敛到错误的值。我见过有人把GNSS位置噪声设得特别小,结果滤波器过度信任GNSS,把INS的零偏估计带偏了,GNSS一丢整个系统就崩。
提示:调滤波器参数时,先确保噪声设置和实际传感器指标匹配,不要凭感觉拍脑袋。GNSS位置噪声可以看接收机输出的精度因子,IMU噪声可以查器件手册的 Allan 方差曲线。
4. 实操落地:从器件选型到组合导航调试
4.1 IMU选型:别只看价格和精度
选IMU是组合导航项目的第一步,也是最容易花冤枉钱的地方。核心参数有这么几个,我逐个说清楚怎么权衡。
零偏稳定性,单位通常是度每小时或度每秒。这个参数决定了惯导能撑多久。粗略估算,如果要求位置误差在1分钟内不超过10米,陀螺零偏稳定性大概需要优于1度每小时。如果只要求撑10秒,那10度每小时的器件也够用。别盲目追求高精度,先明确你的应用场景对失锁时间的容忍度。
角度随机游走,单位是度每根号小时。这个参数描述的是陀螺噪声的统计特性,影响滤波器的噪声设置和短期精度。它和零偏稳定性是两回事,前者是白噪声特性,后者是低频漂移特性。
量程,要覆盖你的实际运动范围。做无人机的话,角速度量程至少±300度每秒,做地面车辆±100度每秒可能就够。量程选小了会饱和,饱和期间数据无效,滤波器会发散。量程选大了分辨率下降,小信号测不准。
带宽,要匹配你的振动环境。带宽太低会滤掉有用信号,太高会把振动噪声放进来。一般车载100Hz左右,无人机200Hz以上。
成本方面,MEMS IMU从几十块到几千块都有,光纤陀螺和激光陀螺从几万到几十万。选型时先算清楚你的精度需求和预算,别一上来就上光纤陀螺,很多时候MEMS加GNSS组合就够用了。
4.2 GNSS接收机选型与配置
GNSS接收机选型主要看这么几点:支持哪些星座(单GPS还是多星座联合)、更新率、输出接口和协议、是否支持差分。
多星座联合能显著提升可见卫星数和定位可用性,城市环境里尤其明显。更新率方面,普通导航1Hz到5Hz够用,高动态场景需要10Hz以上。输出协议最常见的是NMEA和UBX,NMEA通用性好但信息量有限,UBX信息全但需要专门解析。
差分方面,如果精度要求到分米或厘米级,需要RTK或PPP。RTK需要基准站或网络差分服务,PPP不需要基准站但收敛时间长。选的时候想清楚你的精度需求和作业环境。
配置上有个容易忽略的点:天线安装。GNSS天线要尽量开阔,远离金属遮挡和电磁干扰源。天线和IMU之间的杆臂要精确测量,这个杆臂在紧耦合里要补偿,松耦合里如果忽略会引入系统性误差。
4.3 时间同步:最容易被低估的环节
组合导航里,GNSS和IMU的时间同步精度直接影响融合效果。GNSS给的是绝对时间,IMU给的是相对时间戳,两者对不齐,观测和预测就对不上,滤波器会引入额外误差。
同步方案通常有两种:硬件同步和软件同步。硬件同步用GNSS的秒脉冲信号触发IMU采样或打时间戳,精度能到微秒级。软件同步靠时间戳对齐和插值,精度差一些但实现简单。
我踩过的坑是:IMU的时间戳用的是系统时间,GNSS用的是卫星时间,两者之间有系统时钟偏差,没做补偿,结果滤波器一直有个固定偏差。后来改成用秒脉冲对齐,问题才解决。
注意:如果你的IMU输出频率是200Hz,GNSS是1Hz,那么每两个GNSS观测之间有200个IMU预测。时间戳错一个IMU周期,就相当于位置预测错了5毫秒的运动量,高速场景下这个误差不可忽略。
4.4 组合导航调试的完整流程
调试组合导航,我一般按这个顺序来,每一步确认没问题再进下一步。
第一步,单独验证IMU数据质量。静止采集一段时间,看陀螺输出均值是否接近零,加速度计模值是否接近1g,噪声水平是否符合手册。这一步能筛掉硬件问题和安装问题。
第二步,单独验证GNSS数据质量。看定位精度、卫星数、精度因子、固定解比例。如果GNSS本身就不稳,后面融合肯定好不了。
第三步,做初始对准。静止状态下让滤波器收敛,看姿态估计是否稳定,航向是否合理。初始对准不好,后面全白搭。
第四步,做纯惯导推算测试。断开GNSS,看INS能撑多久,误差增长是否符合预期。这一步验证惯导解算和滤波器预测部分是否正确。
第五步,接入GNSS做组合。先做松耦合,看融合结果是否比纯GNSS平滑、比纯INS稳定。然后做遮挡测试,模拟GNSS丢失,看系统能否平滑过渡。
第六步,做动态测试。跑车或飞行,对比融合结果和参考轨迹,看误差是否在可接受范围。
每一步都要记录数据,出问题了好回溯。我习惯把原始数据、中间结果、最终输出都存下来,方便对比分析。
5. 常见问题与排查技巧实录
5.1 姿态漂移快,问题出在哪
姿态漂移快是最常见的问题,原因通常有这么几个。陀螺零偏没标定或标定不准,这个最直接,静止时看姿态是否持续往一个方向转就能判断。初始对准没收敛就进入导航,滤波器还没稳定就开始积分,误差自然大。振动耦合导致陀螺输出有虚假信号,这个在无人机上特别常见,需要做振动隔离或滤波。坐标系定义搞错了,比如把NED当ENU用,姿态会完全乱掉。
排查顺序:先静止看漂移速率,判断是零偏问题还是对准问题;再看振动环境,判断是否需要隔振;最后检查坐标系定义和转换矩阵。
5.2 GNSS丢星后位置跳变
GNSS丢星后位置跳变,通常是融合策略的问题。松耦合下GNSS丢星,滤波器没有观测更新,纯靠INS推算,如果INS零偏估计不准,位置会快速漂移。等GNSS恢复时,观测和预测差得太多,滤波器会有一个大的修正,表现为位置跳变。
解决办法:一是提高INS零偏估计的收敛速度,让丢星时推算更准;二是丢星期间适当放大过程噪声,让滤波器对INS的信任度降低;三是恢复时做平滑过渡,不要一步修正到位。紧耦合在这方面表现更好,因为卫星数少时仍有观测,不会完全失锁。
5.3 滤波器不收敛或收敛到错误值
滤波器不收敛,八成是噪声矩阵设错了。观测噪声设得太小,滤波器过度信任观测,把状态估计带偏。过程噪声设得太小,滤波器过度信任预测,观测修正不进去。初始协方差设得太小,滤波器一开始就“太自信”,后面很难调整。
排查方法:先看新息序列,正常应该是零均值白噪声,如果有色或均值不为零,说明模型有问题。再看协方差收敛曲线,正常应该逐渐收敛到稳定值,如果一直增大或震荡,说明噪声设置不合理。
我一般会先用仿真数据调滤波器,确认算法没问题再上实测数据。仿真能控制变量,排查起来快得多。
5.4 常见问题速查表
| 现象 | 可能原因 | 排查方法 | 解决思路 |
|---|---|---|---|
| 姿态持续漂移 | 陀螺零偏未标定 | 静止观察漂移方向 | 重新标定零偏 |
| 位置快速发散 | 加速度计零偏大 | 静止看速度漂移 | 标定或滤波估计 |
| GNSS恢复后跳变 | 融合策略激进 | 看新息序列 | 平滑过渡,调噪声 |
| 滤波器不收敛 | 噪声矩阵错误 | 看协方差曲线 | 重新设置噪声 |
| 航向不准 | 磁力计干扰或未用 | 对比GNSS航向 | 换用双天线或运动约束 |
| 高频抖动 | 振动耦合 | 看频谱 | 隔振或低通滤波 |
5.5 几条独家避坑经验
第一条,别迷信手册参数。手册上的零偏稳定性是理想条件下的,实际安装应力、温度变化都会让性能打折扣。我习惯在实际工作温度下重新标定一遍。
第二条,杆臂一定要量准。GNSS天线和IMU之间的杆臂,差几厘米在转弯时就能引入米级误差。用卷尺量完再用标定算法优化一遍。
第三条,滤波器参数不要一次调太多。每次只改一个参数,观察效果,不然出了问题都不知道是哪个参数导致的。
第四条,留足调试时间。组合导航调试不是一蹴而就的,静态调完调动态,动态调完调遮挡,每个场景都要反复验证。我做过的一个项目,光调试就花了两周。
第五条,数据记录要全。原始IMU、原始GNSS、中间解算结果、最终输出,全都存下来。出问题时能回放分析,比现场猜效率高得多。
6. 写在最后的一点个人体会
这些年做下来,我最大的感受是:组合导航这门手艺,概念清楚只是入门,真正的功夫在调试和排错上。IMU、INS、惯导、GNSS、组合导航这几个词,背定义五分钟就够了,但要在实际系统里让它们协同工作,需要理解每个环节的误差特性、每个参数的物理意义、每个现象背后的原因。
我见过太多项目,算法框架搭得漂漂亮亮,一到实测就各种问题。根因往往不是算法本身,而是时间同步没做好、杆臂没补偿、噪声参数拍脑袋。这些细节教科书上不一定讲,但实际工程里一个都绕不开。
如果你刚开始接触这块,我的建议是先从单传感器做起,把IMU和GNSS各自吃透,再做融合。融合算法可以先从松耦合的EKF入手,理解清楚预测和更新的逻辑,再往紧耦合深入。调试时耐心一点,每个现象都追到根因,别用“差不多”糊弄过去。导航这东西,差一点就是差很多。