1、定位技术全景:从GNSS到多传感器融合的演进之路
大家好,我是你们这期课程的讲师。在自动驾驶这个行当里摸爬滚打了快十年,我最大的感触就是——定位这事儿,看着简单,做起来全是坑。
你想想看,一辆车在高速上跑,如果定位偏差了半米,可能就压线了。如果偏差了一米,可能就撞护栏了。更别提城市里那些复杂的立交桥、隧道、高楼林立的CBD。说实话,我见过太多团队在定位上栽跟头,最后不得不返工重做。
所以这第一节课,我想带大家把定位技术的全景图捋一遍。从最基础的GNSS,到如今主流的多传感器融合,咱们一步步看明白:这条路是怎么走过来的?
核心观点:没有一种传感器是万能的。定位的终极答案,一定是融合。
1.1 GNSS:定位的起点,但不是终点
GNSS,全球导航卫星系统。说白了就是GPS、北斗、GLONASS这些。它是目前最普及的定位手段,也是所有自动驾驶方案的起点。
我记得刚入行那会儿,大家觉得有GPS就够了。毕竟手机导航都能用,车为什么不行?
但实际一跑就发现问题了——GNSS的精度,在理想环境下是米级,在复杂环境下直接崩盘。
| 场景 | GNSS精度 | 问题 |
|---|---|---|
| 开阔道路 | 2-5米 | 基本可用,但无法满足车道级定位 |
| 城市峡谷 | 10-50米 | 多路径效应严重,信号反射导致偏差 |
| 隧道/地下 | 无信号 | 完全失效 |
| 高架桥下 | 5-20米 | 信号遮挡,频繁跳变 |
为什么会这样?因为GNSS依赖卫星信号,而卫星信号太弱了。它穿透不了混凝土,也扛不住高楼反射。我在项目中遇到过最夸张的一次,车在高架桥下正常行驶,定位突然跳到了对面车道——差点把测试工程师吓出心脏病。
避坑指南:我曾经以为RTK(实时动态差分定位)能解决一切。确实,RTK能把精度做到厘米级,但它需要基站信号。一旦离开基站覆盖范围,或者基站信号被遮挡,RTK就退化成普通GPS。所以千万别迷信RTK,它只是工具之一。
1.2 惯性导航:GNSS的黄金搭档
既然GNSS有这么多毛病,那怎么办?加IMU(惯性测量单元)。
IMU这东西,说白了就是加速度计+陀螺仪。它不依赖任何外部信号,自己就能算位置。但它的毛病也很明显——误差会随时间累积。你跑一分钟,它可能偏几米。跑十分钟,可能偏几百米。
所以业界最常见的做法是:GNSS + IMU 组合导航。
- GNSS提供绝对位置,用来修正IMU的累积误差
- IMU提供高频姿态和短时位置,填补GNSS的更新间隙
- 两者互补,实现100Hz以上的定位输出
嗯,这里要注意。组合导航不是简单的加权平均,而是要用卡尔曼滤波来做状态估计。我见过不少新手直接把GNSS和IMU的位置做平均,结果两个信号打架,定位反而更差。
警告:组合导航的调参是个玄学。过程噪声、测量噪声、初始协方差,任何一个参数设错了,滤波器都可能发散。我建议你从最简单的松耦合开始,跑通了再上紧耦合。
1.3 视觉定位:让车学会看路
GNSS+IMU的组合,在开阔道路上已经够用了。但到了城市环境,尤其是隧道、地下车库、密集高楼区,这套方案还是不够稳。
这时候,视觉定位登场了。
视觉定位的核心思路是:让车通过摄像头看到的环境特征,来推算自己的位置。比如看到路边的电线杆、地面的车道线、墙上的广告牌,这些都能作为定位的锚点。
常用的视觉定位方法有两种:
- 视觉里程计(VO):通过连续帧之间的特征匹配,推算相对运动。说白了就是「我上一帧看到这个角点,这一帧它移动了这么多,所以我走了这么远」。
- 视觉SLAM:在VO的基础上,加入回环检测和全局优化。能消除累积误差,构建全局一致的地图。
我个人习惯在项目中先用VO做短时定位,然后定期用回环检测做全局修正。这样计算量可控,精度也够用。
关键点:视觉定位的精度取决于特征点的质量和数量。在纹理丰富的场景(比如城市街道),效果很好。但在白墙、雪地、夜间等低纹理场景,视觉定位会直接失效。
1.4 激光雷达定位:精度之王
如果说视觉定位是「看路」,那激光雷达定位就是「摸路」。它通过发射激光束,直接测量周围环境的3D点云。精度可以达到厘米级,而且不受光照影响。
激光雷达定位的主流方案是:
- 点云配准:将当前帧的点云与高精地图或上一帧点云进行匹配,算出相对位姿。常用算法有ICP、NDT。
- 激光SLAM:在配准的基础上,构建和维护局部地图,实现实时定位与建图。
我记得有一次在夜间测试,视觉方案完全失效,GNSS信号也断断续续。但激光雷达定位稳如老狗,全程保持10cm以内的精度。那一刻我真心觉得,激光雷达才是定位的终极武器。
当然,它也有缺点:贵、体积大、对雨雾天气敏感。所以目前量产车很少单独用激光雷达做定位,更多是作为融合方案的一部分。
1.5 多传感器融合:集大成者
好了,现在我们有GNSS、IMU、视觉、激光雷达。每个都有优点,每个都有短板。那怎么办?
答案是:融合。
多传感器融合不是简单地把所有数据堆在一起,而是要用一个统一的框架,把不同传感器的优势发挥出来,同时抑制它们的劣势。
目前业界最常用的融合框架是:
- 松耦合:各传感器独立做定位,然后通过卡尔曼滤波融合结果。实现简单,但精度有限。
- 紧耦合:在滤波器的观测层面直接融合原始数据(比如GNSS的伪距、IMU的加速度、视觉的特征点)。精度更高,但实现复杂。
- 因子图优化:用图优化的方式,把历史所有观测和状态都纳入优化。精度最高,但计算量大,适合离线或高算力平台。
我个人习惯在量产项目中用紧耦合方案。虽然开发周期长一点,但精度和鲁棒性都更可控。至于因子图,我一般只用在离线标定和高精地图制作中。
经验之谈:做融合定位,最重要的不是算法有多花哨,而是异常处理。传感器会坏、信号会丢、数据会跳变。你的融合框架必须能检测这些异常,并优雅地降级。我曾经见过一个团队,融合算法写得漂亮,但没处理传感器失效的情况,结果一个GPS跳变直接让车冲上了马路牙子。
1.6 知识体系总览
说了这么多,我画了一张图,帮你把整个定位技术的知识体系串起来。你可以把它当作这章课程的思维导图。
从这张图你能看到,定位技术不是一条单一路径,而是一个不断叠加、不断融合的过程。从最早的GNSS单打独斗,到GNSS+IMU组合,再到视觉和激光雷达的加入,最后汇聚到多传感器融合这个终极方案。
每一层都有它的价值,每一层也都有它的局限。真正的高手,不是只会用一种传感器,而是知道在什么场景下用什么传感器,以及如何把它们拧成一股绳。
好了,这一章的内容就到这里。下一章我们会深入GNSS的核心原理,聊聊那些让你头疼的误差源到底是怎么来的,以及怎么用RTK把它们压下去。