GPS 会丢、会飘、会被骗,但车不能停。这篇文章讲清楚自动驾驶真正的“保底方案”——GNSS+惯性导航的组合系统,它是怎么工作的,为什么缺一不可。
先想象一个场景
你开车进了一条 5 公里长的隧道。手机上的导航箭头还在稳稳地往前动,播报也一切正常。可你心里清楚:隧道里根本收不到 GPS 信号。那它是怎么知道你在哪的?
▲ 隧道里收不到卫星信号,车靠什么知道自己没跑偏?(图源:Anna Frodesiak,CC0,Wikimedia Commons)
对普通司机来说,这只是个可有可无的好奇。但对一辆以 120 km/h 行驶的自动驾驶汽车来说,这是个生死问题:信号消失的那几秒到几分钟里,车靠什么知道自己没偏航、没压线、没冲向隧道壁?
答案不是摄像头,也不是激光雷达,而是一套听起来有点老派、却至今无可替代的技术组合——GNSS + 惯性导航(INS)组合导航。
为什么单靠 GPS 不行?
先泼一盆冷水:卫星导航远比大多数人想象的脆弱。
第一,它会物理消失。隧道、地下车库、高架桥底、密林峡谷,卫星信号说没就没。城市里开车,GPS 短暂中断是家常便饭,不是小概率事件。
第二,它会撒谎。在高楼林立的城市峡谷里,卫星信号在玻璃幕墙之间反复反射(专业上叫多路径效应),定位结果会突然飘出去十几米。你的手机导航显示你在对面马路上开过,就是这个原因。
▲ 高楼夹峙的“城市峡谷”是卫星导航的噩梦(图源:Ad Meskens,CC BY-SA 3.0,Wikimedia Commons)
▲ 绿色是直射信号,红色是经反射“绕路”的信号——多路径效应让定位凭空漂移(图源:Javiersanp,CC BY-SA 3.0,Wikimedia Commons)
第三,它会被攻击。几瓦功率的干扰机就能压制一片区域的 GPS 信号;更高级的欺骗设备可以伪造卫星信号,让接收机算出一个错误的位置。这不是科幻,2023 年以来,黑海、中东上空的民航客机已经频繁报告遭遇GPS 欺骗。
对于手机导航,这些问题顶多让你绕点路。对于自动驾驶,任何一次都可能是事故。
有人会说:不是还有摄像头和激光雷达吗?确实有,但它们也有自己的软肋——摄像头怕黑夜、怕逆光、怕雨雪;激光雷达在大雾大雨里性能明显打折。更根本的一点是:它们回答的是周围有什么,而不是我在地球上的哪个坐标。
自动驾驶需要一条不依赖光线、不依赖天气、不依赖任何外界信号的最后防线。
这条防线,就是惯性导航。
惯性导航:车上的内耳前庭
人闭上眼睛、堵住耳朵,依然能感觉出自己在加速、转弯、刹车。靠的是内耳里的前庭系统。
惯性测量单元(IMU)就是车的前庭。它内部有两类传感器:
·加速度计:测量三个方向的加速度
·陀螺仪:测量三个轴的转动角速度
▲ 一块指甲盖大小的 MEMS 惯性测量单元(IMU),里面集成了加速度计和陀螺仪(图源:SparkFun,CC BY 2.0,Wikimedia Commons)
从已知位置出发,把加速度对时间积分两次得到位移,把角速度积分得到姿态——理论上,不需要任何外界信号,就能推算出车的实时位置。这个方法叫航位推算,早在几百年前的大航海时代,水手们就在用同样的思想推算船位。
IMU 有三个GPS 永远比不了的优点:
·完全自主:不发射、不接收任何信号,干扰不了,也欺骗不了
·输出快:普通 GNSS 接收机每秒更新10~20 次位置,IMU 每秒能输出100~1000 组数据,能捕捉车辆的每一次急转和颠簸
·什么都能测:不光给位置,还给姿态角(俯仰、横滚、航向),这是车辆控制必需的
听起来很完美?可惜它有一个致命弱点。
惯导误差会滚雪球
积分是惯导的力量来源,也是它的诅咒。
加速度计和陀螺仪都存在微小的零偏和噪声。单次测量差一点点没关系,但航位推算是对时间做积分——误差会像滚雪球一样累积,而且是平方甚至立方级别的累积。
也就是说,一辆只靠普通车规 IMU 的车,GPS 中断半分钟后,它的位置估计可能已经偏出一个车道;中断几分钟,定位基本作废。
所以工程上的结论非常干脆:纯惯导撑不久,纯卫星靠不住。唯一的出路是让它们组队。
组合导航
GNSS 和INS 的短板与长板,恰好完美互补:
·GNSS:长期准(误差有界,不随时间累积),但短期不可靠(会丢、会跳变、更新慢)
·INS:短期极准(毫秒级的相对运动非常精确),但长期漂移(误差无界增长)
把它们绑在一起,就得到了一个短期跟得上、长期不跑偏的系统。这就是组合导航(Integrated Navigation)。
具体怎么绑?核心角色是卡尔曼滤波器。
你可以把卡尔曼滤波理解成两个信息源之间的调停人:
·GPS 信号好、可信度高的时刻,它让滤波结果多听GPS 的,同时顺手校准IMU 的零偏——相当于不断纠正惯导的惯性误差,不让雪球滚起来
·GPS 信号变差、丢星、出现可疑跳变的时刻,它自动降低对GPS 的信任权重,转而更多依靠IMU 的航位推算撑住场面
·GPS 恢复之后,再立刻用新鲜的位置把累积的漂移拉回正轨
这样一来,GPS 负责给系统锚定真实位置,IMU 负责在信号间隙里无缝续命。隧道里导航箭头为什么还能稳稳往前跑?就是这个机制在起作用。
▲ 一张图看懂组合导航的全貌(关注后回复「组合导航」可领取高清版)
工程上根据融合的深浅,还分出三个档次:
融合方式 | 融合什么 | 特点 |
松耦合 | GPS 解算出的位置/速度 + IMU | 实现简单,最常用 |
紧耦合 | GPS 原始观测值(伪距、载波相位)+ IMU | 可见卫星少于 4 颗时仍能工作,城市峡谷里明显更强 |
深耦合 | 信号跟踪环路层面融合 | 抗干扰最强,但实现最复杂,多见于高动态/军工场景 |
目前主流量产自动驾驶方案多在松耦合和紧耦合之间,头部玩家(如 Waymo、百度Apollo 及各家车规定位方案商)则普遍在紧耦合上发力,再叠加RTK 差分、高精地图和轮速计,把定位精度压到厘米级。
回到那辆进隧道的车
▲ 头顶激光雷达的 Waymo 自动驾驶汽车。它能在城市街道自主行驶,靠的正是多传感器融合定位(图源:Dietmar Rabich,CC BY-SA 4.0,Wikimedia Commons)
现在我们可以完整回答开头的问题了。一辆自动驾驶汽车穿过 5 公里隧道时,它的定位系统大致在做这些事:
1. 进隧道前:GPS + RTK 提供厘米级位置,卡尔曼滤波同步标定IMU 的零偏,把惯导状态调到最佳
2. 信号中断瞬间:滤波器检测到观测量消失,无缝切换到以 IMU 为主的航位推算模式,轮速计辅助约束纵向误差
3. 隧道行驶中:高精地图匹配车道,IMU 维持分米级的相对定位,误差被控制在车道宽度以内
4. 出隧道瞬间:GPS 恢复,滤波器重新收敛,几秒内回到厘米级
全程驾驶者(如果还有人看着的话)几乎无感。
这就是组合导航的价值:它不需要每个传感器都完美,只需要它们别在同一时刻一起出错。
Y博说
评估任何定位方案,先问两个问题:它依赖外界信号吗?它的误差随时间累积吗?GNSS 卡在第一问,INS 卡在第二问,组合导航的意义就在于同时绕过这两道坎。还要记住一点:卡尔曼滤波不是简单地把两个传感器“取平均”,而是根据可信度动态分配权重,并持续校准惯导的零偏。说到底,自动驾驶定位从来没有什么“银弹传感器”,所有量产方案的本质都是多源冗余加误差互补。下次再看到“一颗激光雷达搞定定位”之类的宣传,你不妨多问一句:GPS 没了,你怎么办?
关注公众号后回复「组合导航」,领取《GNSS/INS 组合导航算法思维导图》高清版。