ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

组合导航、惯导、GNSS、INS、IMU概念辨析与工程调试避坑指南

组合导航、惯导、GNSS、INS、IMU概念辨析与工程调试避坑指南 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和UBXNMEA通用性好但信息量有限UBX信息全但需要专门解析。差分方面如果精度要求到分米或厘米级需要RTK或PPP。RTK需要基准站或网络差分服务PPP不需要基准站但收敛时间长。选的时候想清楚你的精度需求和作业环境。配置上有个容易忽略的点天线安装。GNSS天线要尽量开阔远离金属遮挡和电磁干扰源。天线和IMU之间的杆臂要精确测量这个杆臂在紧耦合里要补偿松耦合里如果忽略会引入系统性误差。4.3 时间同步最容易被低估的环节组合导航里GNSS和IMU的时间同步精度直接影响融合效果。GNSS给的是绝对时间IMU给的是相对时间戳两者对不齐观测和预测就对不上滤波器会引入额外误差。同步方案通常有两种硬件同步和软件同步。硬件同步用GNSS的秒脉冲信号触发IMU采样或打时间戳精度能到微秒级。软件同步靠时间戳对齐和插值精度差一些但实现简单。我踩过的坑是IMU的时间戳用的是系统时间GNSS用的是卫星时间两者之间有系统时钟偏差没做补偿结果滤波器一直有个固定偏差。后来改成用秒脉冲对齐问题才解决。注意如果你的IMU输出频率是200HzGNSS是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入手理解清楚预测和更新的逻辑再往紧耦合深入。调试时耐心一点每个现象都追到根因别用“差不多”糊弄过去。导航这东西差一点就是差很多。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进