第二章:环境感知基础——自动驾驶的“眼睛”与“耳朵”
大家好,我是你们的老朋友。今天咱们聊聊自动驾驶的感知系统。说白了,这就是车的“眼睛”和“耳朵”。车要上路,得先知道自己在哪、周围有什么。没有感知,决策规划就是瞎指挥。
我个人习惯把感知系统比作人的感官。摄像头是眼睛,激光雷达是触觉,毫米波雷达是耳朵,超声波是手指尖。它们各有长短,谁也替代不了谁。嗯,咱们一个一个来看。
2.1 传感器原理与特性
2.1.1 摄像头——最像人的眼睛
摄像头的工作原理,说白了就是光电转换。光线通过镜头,打到CMOS或CCD传感器上,变成电信号,再转成数字图像。这个流程,跟手机拍照一模一样。
但自动驾驶用的摄像头,要求高得多。我见过不少项目,普通摄像头在强光下直接过曝,车道线都看不清。所以车载摄像头一般都有宽动态范围(HDR)功能,能同时看清暗处和亮处。
关键参数:
- 分辨率: 越高越好?不一定。1080P够用,4K数据量太大,处理不过来。
- 帧率: 30fps是底线,60fps更稳。车速快的时候,帧率低了会漏检。
- 视场角(FOV): 广角镜头能看更宽,但边缘畸变严重。我建议前视用120°左右,侧视用90°。
摄像头最大的优点是信息丰富。颜色、纹理、文字、交通标志,它都能识别。但缺点也很明显——怕黑、怕强光、怕雨雾。我在项目中遇到过,隧道出口处摄像头直接“失明”几秒钟,全靠其他传感器撑着。
2.1.2 激光雷达——精度之王
激光雷达(LiDAR)的原理,就是发射激光束,测量反射回来的时间,算出距离。这玩意儿精度极高,毫米级。你想想看,它能直接给你一个3D点云,每个点都有精确的XYZ坐标。
激光雷达分机械式和固态式。机械式的转着圈扫,360°无死角,但体积大、寿命短。固态式的用芯片控制光束,体积小、可靠性高,但视场角有限。
我的经验: 机械式激光雷达在颠簸路段容易出故障。我曾经调试一辆测试车,过减速带时激光雷达的旋转电机卡了一下,点云直接飞了。后来我们换了固态激光雷达,再没出过这问题。
激光雷达的缺点也很明显——贵。以前一个64线激光雷达要几十万,现在国产的便宜多了,但跟摄像头比还是贵。另外,它怕雨雪雾,激光会被水滴散射,导致点云稀疏。
2.1.3 毫米波雷达——全天候选手
毫米波雷达发射的是毫米波段的电磁波。波长比激光长,所以穿透力强。雨、雾、雪、灰尘,对它影响不大。这是它最大的优势。
毫米波雷达主要测距离和速度。它利用多普勒效应,能直接算出目标的速度。这在自适应巡航(ACC)里特别有用——前车急刹车,雷达瞬间就能感知到。
| 频段 | 特点 | 典型应用 |
|---|---|---|
| 24GHz | 探测距离近(<50m),精度一般 | 盲区监测 |
| 77GHz | 探测距离远(>200m),精度高 | 自适应巡航、前向碰撞预警 |
但毫米波雷达有个致命弱点——分辨率低。它只能告诉你“那里有个东西”,但说不清那东西是车、是人、还是路边的垃圾桶。所以它经常跟摄像头配合使用,摄像头负责分类,雷达负责测距测速。
2.1.4 超声波雷达——近身保镖
超声波雷达的原理最简单——发射超声波,等回声回来,算距离。跟蝙蝠一样。它探测距离短,一般就几米,但精度还行,厘米级。
超声波雷达主要用在泊车场景。倒车入库、侧方停车,全靠它。我建议在车的前后各装4个,基本能覆盖盲区。
注意: 超声波雷达对某些材料不敏感。比如,它可能检测不到细的金属杆、或者吸音材料。我曾经遇到过,车后面有个细铁柱,超声波雷达没检测到,倒车时直接撞上了。所以,别完全依赖它。
2.2 多传感器融合简介
单个传感器都有短板。摄像头怕黑,激光雷达怕雨,毫米波雷达分辨率低,超声波距离短。怎么办?融合呗。
多传感器融合,说白了就是取长补短。把摄像头、激光雷达、毫米波雷达的数据整合到一起,得到一个更可靠的环境模型。
融合分三个层次:
- 数据级融合: 直接把原始数据拼在一起。比如,把激光雷达的点云和摄像头的图像对齐,生成彩色点云。这种方法信息损失少,但计算量大。
- 特征级融合: 先分别提取特征,再融合。比如,摄像头检测出车道线,激光雷达检测出障碍物,然后合并成一张地图。这种方法效率高,但可能丢失细节。
- 决策级融合: 每个传感器独立做决策,最后投票。比如,摄像头说“前面有车”,雷达说“前面有车”,那就确认有车。这种方法鲁棒性好,但可能错过一些信息。
我个人习惯用特征级融合。数据量适中,效果也够用。在项目中,我们通常用卡尔曼滤波或粒子滤波来做融合。卡尔曼滤波适合线性系统,粒子滤波适合非线性系统。嗯,这里不展开讲,后面有专门章节。
2.3 高精地图与定位
2.3.1 高精地图——自动驾驶的“记忆”
普通导航地图告诉你“从A到B怎么走”。高精地图告诉你“车道线在哪、曲率多少、坡度多少、红绿灯位置”。精度厘米级。
高精地图包含三层信息:
- 道路层: 车道线、路沿、人行道、交通标志。
- 定位层: 地标、杆子、路牌、建筑物轮廓。
- 动态层: 实时交通信息、施工区域、事故。
高精地图需要定期更新。路在变,地图也得变。我见过一些公司,用众包方式更新地图——每辆车都是采集车,实时上传变化。
2.3.2 GPS+IMU——定位的“骨架”
GPS提供绝对位置,但精度有限。普通GPS误差几米,差分GPS(RTK)能到厘米级。但GPS有个问题——信号遮挡。隧道、高架桥下、地下车库,GPS直接失效。
IMU(惯性测量单元)提供相对位置。它测量加速度和角速度,通过积分算出位移。IMU不怕遮挡,但会漂移。时间长了,误差越来越大。
所以,GPS和IMU是天生一对。GPS校准IMU的漂移,IMU填补GPS的盲区。这就是组合导航。
避坑指南: 我曾经在一条长隧道里测试,GPS信号断了,IMU漂移越来越严重。出隧道时,定位误差已经超过10米。后来我们加入了轮速计和车辆模型,用车辆的运动约束来抑制IMU漂移。效果好了很多。
2.3.3 SLAM——没有地图也能定位
SLAM(同步定位与地图构建),说白了就是“一边走一边画地图”。车在未知环境中,通过传感器感知周围,同时确定自己的位置和构建地图。
SLAM分视觉SLAM和激光SLAM。视觉SLAM用摄像头,成本低,但受光照影响大。激光SLAM用激光雷达,精度高,但成本高。
SLAM的经典流程:
- 前端: 提取特征点,匹配相邻帧,估计运动。
- 后端: 优化轨迹和地图,消除累积误差。
- 回环检测: 检测是否回到之前去过的地方,修正全局误差。
SLAM在自动驾驶中主要用于地下车库、隧道等GPS失效的场景。我建议,能用GPS就用GPS,SLAM作为备份。毕竟SLAM计算量大,而且容易在长直走廊里迷失方向。
好了,这一章就到这里。环境感知是自动驾驶的基础,没有它,决策规划就是空中楼阁。下一章,咱们聊聊行为预测——怎么猜出其他车和行人下一步要干什么。