ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

组合导航、惯导、GNSS、INS、IMU区别详解:原理、应用与选型指南

组合导航、惯导、GNSS、INS、IMU区别详解:原理、应用与选型指南 做了这么多年定位导航相关的项目被问得最多的就是“组合导航、惯导、GNSS、INS、IMU这几个东西到底啥区别”。每次开会或者带新人都要把这一堆缩写在白板上画一遍今天干脆整理成一篇长文把它们的定义、原理、优缺点、应用场景、选型建议全讲清楚。不管你是刚接触无人机的飞手、做自动驾驶的工程师还是搞机器人和测绘的朋友看完这篇基本就能摸清这套定位体系的脉络。我从实际项目出发尽量用大白话和真实场景来拆解也会给一些芯片和模组选型上的参考意见算是这几年踩坑总结出来的经验。1. 先给这些概念排个辈分从传感器到系统的四个层次很多朋友一开始接触这几个词就容易被缩写搞晕其实它们不是同一维度上的东西。有的指硬件有的指算法有的指系统还有的是整个技术路线的总称。我习惯用一套“俄罗斯套娃”的方式来理解它们。1.1 IMU最底层的姿态和加速度传感器IMUInertial Measurement Unit是惯性测量单元说白了就是“测量物体运动状态”的硬件盒子。一个典型的IMU内部包含三个正交的加速度计和三个正交的陀螺仪。加速度计测量的是物体在三个轴向上的加速度陀螺仪测量的是绕三个轴的角速度。这里有个很容易忽略的点IMU测量的是“加速度”和“角速度”不是直接输出位置和速度。相当于它只负责感受“身体怎么动”至于动完之后到了哪里需要靠后续的积分运算去推算。我打过一个比方IMU就是一个蒙着眼睛的人在走路它能感觉到自己迈了多大步、拐了多少弯但不知道自己现在走到哪儿了。1.2 惯导INS在IMU之上叠加解算算法惯导的全称是惯性导航系统Inertial Navigation SystemINS它是在IMU的基础上增加了解算处理器和导航算法。INS拿IMU输出的原始数据通过积分运算得到速度、位置和姿态信息。一个完整的INS通常包含三部分惯性测量单元、导航算法处理器、初始对准模块。初始对准是惯导启动时一个极其关键的环节因为它要进行姿态初始化确定“机头朝哪边、水平面在哪”。过惯导有致命的硬伤就是误差会随时间累积陀螺仪的微小零偏经过积分之后会变成越来越大的位置漂移。这就是为什么纯惯导不能长时间独立工作的原因你拿着手机走十分钟纯靠那种廉价IMU做的惯导位置可能已经偏出几百米了。1.3 GNSS绝对定位的“卫星尺子”GNSS是全球导航卫星系统的总称包括了GPS、北斗、格洛纳斯、伽利略等卫星系统。它解决的是“我现在在哪儿”的问题通过接收多颗卫星的信号计算出接收机在地球上的三维位置、速度和时间信息。GNSS的优势很明显误差不随时间累积长期精度稳定。只要视野开阔、卫星信号良好民用单频GNSS的定位精度可以做到1到3米用了RTK实时动态差分技术以后可以做到厘米级。但它也有天生的弱点怕遮挡、怕多路径效应、数据更新频率低一般是10到20赫兹。在城市峡谷、隧道、林荫道的场景下GNSS信号会丢失或者剧烈跳动。1.4 组合导航把多源信息揉成一个更准的姿态组合导航指的是用软件算法把GNSS、IMU以及其他传感器比如里程计、视觉、激光雷达的信息融合在一起输出一套连续、平滑、高可靠的定位结果。现在大多数量产级的惯导产品本质都是“组合导航系统”也就是惯组加卫导的组合方案。组合导航系统的核心思路是“取长补短”用GNSS的绝对位置信息去消除INS的积累漂移用INS的高频、短时高精度数据去填补GNSS丢失或跳变时的空缺。最新出来的一些消费级和工业级产品还会在组合导航里加入视觉或激光雷达的观测形成了“GNSSINS视觉”或者“GNSSINS激光”的多源融合导航方案。我觉得用一句话来总结这组概念的关系IMU是硬件传感器INS是建立在IMU之上的导航系统GNSS是提供绝对定位的另一类系统组合导航则是把INS和GNSS捏在一起做融合的最终形态。这四者不是并列关系而是层层递进、互相补充的关系。2. 核心原理拆解为什么惯导会漂移卫星会丢失而组合导航OK既然是讲区别那光有定义还不够要把每个方案背后的原理、误差模型和适用边界说清楚才能在实际项目中做出正确的技术选型。2.1 IMU的数据特性与误差模型别把积分想得太天真IMU输出的原始数据看起来只是三轴加速度和三轴角速度但用起来才知道里面全是坑。芯片层级的数据包含好几类误差源零偏Bias、标度因数误差Scale Factor Error、交叉轴耦合、随机游走噪声、温度漂移等等。其中对导航精度影响最大的是零偏和角度随机游走。零偏是加速度计或陀螺仪在没有输入的情况下仍然输出的一个“假信号”。当你对加速度做一次积分得到速度时零偏就变成了一条线性增长的速度误差再做一次积分得到位置时就变成了抛物线增长的位置误差。陀螺仪的零偏会直接导致姿态估计错误而姿态一旦错重力补偿就会出问题水平方向的加速度误差又一个接一个冒出来了。这里我想给新手一个直观的参数认知一个消费级的IMU比如InvenSense的MPU6050系列陀螺仪零偏稳定性大概在5到20度每小时左右加速度计零偏稳定性在几十毫克mg量级。这种性能级别的IMU纯积分导航的话几秒钟还能勉强看几十秒就开始没法看了。工业级的IMU比如ADI的ADIS16470陀螺零偏稳定性能做到几度每小时以内。而战术级的光纤陀螺或激光陀螺能到0.1度每小时甚至更低但那价格也是成指数往上翻的。3. GNSS与INS的博弈互补效应是怎么实现的3.1 GNSS的定位原理与误差源GNSS定位的基本原理是测距交会接收机测量自身到至少四颗卫星的距离通过解方程得出三维坐标和时间。民用信号受到电离层、对流层、卫星轨道误差、卫星钟差、多路径效应等多重误差源的影响所以单点定位的精度一般就在米级。实际工程里用得最多的是RTK技术它靠基准站和流动站之间的差分把大部分公共误差抵消掉精度能到厘米级。但RTK要求流动站和基准站之间有足够的共视卫星而且初始化需要一些时间遇到遮挡严重时固定解会掉成浮点解甚至单点解。3.2 INS与GNSS融合的具体实现方式INS与GNSS的融合工程上最常见的是松耦合和紧耦合两种方式。松耦合把GNSS输出的位置、速度当作量测值输入到卡尔曼滤波器里去估计INS的误差状态紧耦合则直接利用GNSS的伪距、载波相位等原始观测量与INS解算的预测值做差更新滤波器。从工程实现的复杂度看松耦合简单直观、发热量小、调试方便大多数组合导航模组都是这个方案紧耦合在有遮挡、卫星数不够多的时候表现更好但对接收机的底层协议开放度和代码功底要求很高。3.3 为什么组合导航能提供“连续、平滑、高可靠”的输出我用一个常见场景来说明问题车辆从露天车库驶入地下隧道。在进入隧道前GNSS信号良好RTK差分固定解组合导航系统利用GNSS的位置观测持续修正INS的漂移此时卡尔曼滤波器的状态估计非常收敛。进入隧道后GNSS信号瞬间丢失滤波器自动切断GNSS观测量系统纯靠INS继续推算位置。因为刚才的估计已经收敛到了一个良好的状态惯导的短期精度又比较高所以车辆在隧道里行驶几十秒位置误差依然能维持在很小范围内。驶出隧道后GNSS信号恢复滤波器重新把GNSS观测加进来把这段时间累积的漂移迅速“拉”回真实位置这就是组合导航的完整工作链路。整个过程在用户无感知的情况下完成输出的位置轨迹连续平滑没有跳跃这就是为什么自动驾驶和无人机系统必须用组合导航而不是单一传感器去定位的底层原因。4. 惯导和组合导航工程实现里的那些“坑”从选型到装车再到调参纯理论讲完了还是得落到实际项目。我把这几年在设备选型、安装、配置和排错上遇到的问题集中梳理一下希望能帮你省掉一些弯路。4.1 关键指标解析零偏稳定性、角度随机游走、数据频率选型挑选IMU或者组合导航产品首先看的就是指标书。核心精度指标一般包括陀螺仪零偏稳定性、陀螺仪角度随机游走、加速度计零偏稳定性、加速度计噪声密度。这里我不建议只看零偏这一个参数角度随机游走同样重要它代表的是噪声的白噪声级别决定了解算姿态的平滑度。实际项目里低速机器人或者室内移动设备如果只是辅助定位消费级IMU基本够用做无人机飞控工业级IMU是标配做高精度地图采集车或者自动驾驶主定位系统那就得至少对标战术级的MEMS方案比如ADIS系列或者国产同档次的产品。再往上追求更高的精度就要上光纤陀螺方案了不过那个成本和体积普通项目是真扛不住。一个容易踩的坑是只看“零偏稳定性”而忽略“温度范围”和“温漂系数”。某些便宜模组在室温下参数好看到了北方冬天的户外零偏能翻几倍姿态直接跑飞。4.2 安装位置与轴向对齐IMU能不能“乱摆”IMU的安装很讲究。首先安装位置应该尽量靠近载体的几何中心和动力学中心离得太偏会造成大的杆臂效应急加速和转弯时加速度计会测到额外的向心加速度和切向加速度GNSS位置和IMU位置之间也有一个杆臂误差需要在系统里补偿。另外一个我很想强调的问题是轴向对齐。很多用户买回组合导航模组直接双面胶一贴完全没有考虑模组的X轴和载体的前进方向是否一致。这样装上去输出的航向角一开始就带了一个固定偏差。正规做法是安装后用转台或者场地上画直线跑几圈来标定初始航向安装角或者在软件里做航向安装角补偿。4.3 时间同步问题IMU数据和其他传感器之间的“同一时刻”陷阱组合导航要融合多源数据数据来到了不同传感器时间戳必须统一到同一时间基准上。很多开发者在调试“里程计和IMU融合定位”时发现速度一快数据就开始乱跳十有八九是时间同步没做好。GNSS接收机给出的PPS每秒脉冲信号是时间同步的关键硬件上把PPS和IMU的数据线接到同一个处理器用PPS上升沿标记IMU数据的时间戳这样IMU数据的采样时刻就能被精确对齐到UTC时间。如果只用纯软件层面去凑时间在高动态场景下很容易引入几毫秒到几十毫秒的延迟这在高速运动中就是好几米的偏差。做激光雷达或视觉与IMU融合的时候时间同步更是头等大事不做好联合标定和时间戳对齐整个建图定位系统基本没法用。4.4 协议对接和调试GNSS模组的配置、串口解析、数据格式心法GNSS模组通常通过串口或者SPI接口输出NMEA协议组合导航系统要解析GGA、RMC、GST等语句。NMEA看起来简单实际上字符集、校验位、字段顺序都容易踩坑尤其是生产环境下的数据断帧和串口波特率不匹配会引出各种稀奇古怪的bug。我建议项目初期就把协议解析模块做成独立的工具库充分测试边界情况比如空字段、校验失败、超时、重复帧等。GNSS模组的配置一般也有专用命令去配置输出频率和语句格式很多模组默认只输出1Hz数据而组合导航系统往往需要10Hz甚至20Hz的位置更新这个一定要记得改。5. 常见问题与排查技巧5.1 定位漂移、航向慢漂和速度跳变怎么一步步定位故障源实际调试中最常见的现象就是定位漂移、航向慢漂、速度跳变。这几种问题对应的原因大不相同我一般按顺序排查遇到位置漂移先看GNSS原始输出有没有正常。如果GNSS本身就在跳那就是卫星环境问题跟IMU没太大关系如果GNSS正常但融合后的位置还漂再判断是IMU数据异常还是融合参数有问题。航向慢漂这种问题最典型的场景就是“基于IMU的位姿解算yaw仍会慢漂”这在纯IMU模式下根本躲不掉因为MEMS陀螺本身存在零偏积分之后航向必然缓慢漂移。要解决只能引入外部航向观测比如GNSS双天线测向、磁力计、视觉观测或者定期进行静止零速修正。速度跳变大概率是GNSS多路径或者RTK固定解切换造成的比如车辆在高架桥下方行驶时多路径效应会让GNSS速度突然跳动几十厘米甚至几米。处理手段通常是调整滤波器里的量测噪声模型让GNSS速度更新的权重在高动态环境下自动压低多相信IMU的短时预测。5.2 组合导航安装和测试的几点经验心得在实际测试过程中有些细节特别重要比如车辆跑“8字”轨迹来标定IMU安装角和杆臂参数这个环节不能省。很多车辆在跑“直线”时一切正常一到急弯和加减速就偏就是因为安装角和杆臂没有得到充分激励和辨识。新装的组合导航建议一上车先原地静止3到5分钟让滤波器充分收敛再进行运动测试。很多新手一上电就猛踩油门得到的初始姿态和零偏估计都不准后面再花好几倍的时间都未必能拉回来。另外室内环境下纯GNSS信号很弱或者根本没有组合导航很多时候退化成纯惯导状态这时候必须要靠外部的里程计、雷达或视觉辅助否则跑不了多久就飞了。如果你要做的是室内移动机器人建议一开始就把轮式里程计或激光雷达纳入融合框架。5.3 新手入坑指南从哪些产品开始学比较合适刚接触这套体系的新手想快速上手又不想被复杂的标定流程劝退可以先用市面上的集成式组合导航模组比如华测、司南、导远、戴世等厂商的产品。这些产品出厂前都做了标定输出已经是最优姿态、位置、速度拿来直接解析串口数据就能做上层开发先感受一下整套系统的行为模式。等有了一定基础再尝试把GNSS接收机和IMU单独买回来自己写融合算法这时候你才会真正理解卡尔曼滤波的状态量、量测方程、噪声矩阵到底该怎么调。这种由简入繁的路线学习效率最高。6. 未来方向多传感器融合与“GNSSINS视觉/雷达”的落地场景随着自动驾驶和机器人技术的推进单一GNSSINS的组合方式已经很难满足城市复杂环境下的高精度定位需求。最近几年的技术演进很明显都朝着“GNSSINS视觉激光雷达高精地图”的紧耦合紧融合方向走。视觉和IMU的紧耦合也就是VINSVisual-Inertial Navigation System在室内和GNSS拒止环境下的定位能力很强。激光雷达和IMU配合进行SLAM也是目前无人车、扫地机器人、AGV仓储机器人常用的方案。这里需要特别提醒的是把视觉传感器和IMU做融合之前必须先完成相机与IMU的联合标定很多小白直接用默认外参结果系统一跑就发散问题其实不在算法而在外参给错了。雷达与IMU的标定同理雷达外参标定不准会导致点云投影错位、地图叠加重影整个决策算法全被打乱。做这类项目时联合标定这个环节一定要留足时间并且要有好的标定工具和场地。未来整个趋势肯定是传感器越加越多、融合深度越来越紧单靠某一个数据的时代已经过去了多源融合才是可靠定位的主流路线。这是我做了这么多年项目最直接的体会想真正掌握这套技术光把缩写背熟没用一定要上手去处理真实的传感器数据流亲自盯着那些曲线看漂移、看跳变、看收敛慢慢才会建立起对这套系统的工程直觉。希望这篇文章能帮你在入门和选型的路上少踩几个坑。
返回列表