1、定位技术概述:为什么定位是自动驾驶的基石?GNSS、IMU、LiDAR、视觉定位的对比
大家好,我是你们的老朋友。今天咱们正式开篇,聊聊定位技术。
说实话,我入行做自动驾驶那会儿,很多人觉得「感知」才是核心。摄像头看到红绿灯,雷达检测到障碍物,车就能跑了。但真正跑过路测你就知道——没有定位,感知就是无头苍蝇。
你想想看,车知道自己在哪里,才知道接下来该往哪走。定位,说白了就是自动驾驶的「坐标系原点」。原点歪了,后面规划、控制全白搭。
1.1 为什么定位是自动驾驶的基石?
我经常跟团队新人讲一个比喻:
自动驾驶 = 感知 + 定位 + 规划 + 控制。
感知是眼睛,定位是骨架,规划是大脑,控制是手脚。
骨架歪了,手脚再灵活也没用。
举个真实例子。我在某园区做路测时,车辆定位突然跳了2米。结果呢?车直接冲着路沿石就去了。幸好安全员及时接管。那次之后,我要求所有定位模块必须做「故障检测」——定位不准时,宁可停车,也不能瞎跑。
具体来说,定位决定了三件事:
- 我在哪? —— 全局坐标下的位置
- 我要去哪? —— 与目标点的相对关系
- 我该怎么走? —— 车道级路径规划的基础
嗯,这里要注意:定位不是「大概知道在哪」就行。自动驾驶要求的是厘米级精度。差个几十厘米,可能就从车道内偏到隔壁车道去了。
1.2 四大定位技术:GNSS、IMU、LiDAR、视觉
目前主流的定位方案,无非这四种。我一个个说,顺便聊聊我在项目中踩过的坑。
1.2.1 GNSS:全球导航卫星系统
GNSS就是咱们常说的GPS、北斗这些。它靠卫星信号计算位置。
优点:
- 全球覆盖,室外都能用
- 绝对定位,不累积误差
- 成本低,一个模块几十块钱
缺点:
- 信号容易遮挡(隧道、高楼、树荫)
- 精度有限,普通单点定位3-5米
- 更新频率低(10Hz左右)
要提升精度,可以用RTK(实时动态差分)。配合基站,能到厘米级。但RTK也有坑——基站信号覆盖范围有限,离开基站远了就不行。
1.2.2 IMU:惯性测量单元
IMU测量加速度和角速度,通过积分推算位置。说白了就是「猜」——我知道上一秒在哪,测出这一秒动了多少,就能算出这一秒在哪。
优点:
- 完全自主,不依赖外部信号
- 更新频率高(100-1000Hz)
- 短时精度极高
缺点:
- 误差随时间累积(漂移)
- 需要初始位置
- 高精度IMU价格昂贵
我个人习惯把IMU当作「短时救星」。比如车辆进隧道,GNSS信号丢失,IMU能撑个几十秒。但时间一长,误差就大到离谱了。
1.2.3 LiDAR:激光雷达定位
LiDAR通过发射激光束,测量周围环境的点云。然后与高精地图匹配,算出当前位置。
优点:
- 精度极高(厘米级)
- 不受光照影响
- 能直接获取3D结构信息
缺点:
- 成本高(虽然现在降了不少)
- 受天气影响(雨雪雾天性能下降)
- 需要预先构建高精地图
我记得有一次在雪天测试,LiDAR点云被雪花反射得乱七八糟,匹配算法直接崩了。后来我们加了「点云滤波」——先滤掉噪点,再做匹配。嗯,这个后面会详细讲。
1.2.4 视觉定位
视觉定位用摄像头拍摄图像,提取特征点,与地图或前后帧匹配。
优点:
- 成本低(摄像头便宜)
- 信息丰富(车道线、路牌、纹理)
- 能同时做感知和定位
缺点:
- 对光照敏感(逆光、黑夜)
- 纹理缺失场景失效(白墙、雪地)
- 计算量大
视觉定位我最头疼的就是「光照突变」。比如车辆从隧道出来那一瞬间,图像从暗变亮,特征点全丢了。后来我们加了「曝光自适应」和「特征点预测」,才算稳住。
1.3 四大技术对比总结
说了这么多,咱们直接上表格,一目了然。
| 技术 | 精度 | 更新频率 | 成本 | 环境依赖 | 误差特性 |
|---|---|---|---|---|---|
| GNSS | 米级(RTK厘米级) | 10Hz | 低 | 需天空视野 | 不累积 |
| IMU | 短时厘米级 | 100-1000Hz | 中高 | 无 | 累积漂移 |
| LiDAR | 厘米级 | 10-20Hz | 高 | 需特征丰富 | 局部累积 |
| 视觉 | 分米级 | 30-60Hz | 低 | 需光照纹理 | 局部累积 |
你看,没有一种技术是完美的。所以实际工程中,我们做的是多传感器融合。
1.4 实际工程中的定位方案
我目前最常用的方案是:GNSS + IMU + LiDAR 融合。
为什么这么搭?
- GNSS提供绝对位置,消除IMU的长期漂移
- IMU提供高频更新,填补GNSS的低频间隙
- LiDAR提供环境匹配,修正GNSS的多路径误差
视觉呢?我一般把它当作「辅助」——在LiDAR失效的场景(比如雨雪天),视觉能顶上去。但视觉单独做定位,我是不太放心的。
最后说一句:定位没有银弹。每个场景都有它的最优解。城市道路、高速、隧道、地下停车场——你得针对不同场景,设计不同的定位策略。这个,咱们后面章节慢慢聊。
好,今天就到这儿。下一章,咱们深入讲讲GNSS定位的原理和代码实现。到时候我会手撕一个RTK解算的demo,保证干货满满。