第三章 传感器基础:自动驾驶的“感官世界”
大家好,我是你们的老朋友。今天我们来聊聊自动驾驶的“眼睛”和“耳朵”——传感器。
说实话,传感器选型这件事,我当年刚入行时踩过不少坑。有一次项目Demo,激光雷达在雨夜直接“罢工”,搞得我们团队通宵排查。后来才明白,不是传感器不行,是没选对场景。
这一章,我会把摄像头、激光雷达、毫米波雷达、超声波雷达、IMU/GNSS这五类传感器,掰开揉碎了讲清楚。你想想看,一辆车要安全行驶,得先“看清”世界,对吧?
3.1 摄像头:最像人眼的传感器
摄像头是自动驾驶中最直观的传感器。它采集图像,然后通过算法识别车道线、行人、交通标志。
3.1.1 单目摄像头
单目摄像头就是一只眼睛。它成本低,但缺少深度信息。
工作原理: 通过图像中的物体大小、位置变化,估算距离。说白了,就是“猜”距离。
核心公式: 距离 = (实际高度 × 焦距) / 像素高度
我的经验: 单目在高速场景还行,但城市道路中,行人突然横穿时,测距误差能到30%。我建议,单目只做辅助,别依赖它做紧急制动。
3.1.2 双目摄像头
双目摄像头像人的两只眼睛。它通过视差计算深度,精度比单目高一个量级。
关键参数: 基线距离(两个镜头中心距离)。基线越长,测距越远,但体积也越大。
避坑指南: 我曾经在项目中用过一款双目,基线只有5cm,结果10米外的物体深度误差超过50%。后来换了基线12cm的型号,效果立竿见影。
3.1.3 鱼眼摄像头
鱼眼摄像头视角超大,通常超过180度。它主要用于环视、泊车场景。
缺点: 畸变严重。边缘图像扭曲得像哈哈镜。需要算法做畸变校正。
// 畸变校正伪代码
for each pixel (u, v) in output_image:
// 映射到归一化坐标
(x, y) = undistort(u, v, camera_matrix, distortion_coeffs)
// 插值采样
output_image[u][v] = input_image(x, y)
嗯,这里要注意:校正后的图像边缘分辨率会下降,所以鱼眼更适合近距离感知。
3.2 激光雷达:点云世界的“尺子”
激光雷达用激光束测量距离。它精度高,但成本也高。我参与的第一个L4项目,光激光雷达就花了20万。
3.2.1 机械式激光雷达
机械式激光雷达通过旋转电机,让激光束扫描周围环境。典型代表:Velodyne HDL-64E。
优点: 360度视场角,点云密度高。
缺点: 有机械旋转部件,寿命短,震动敏感。
注意: 机械式激光雷达在颠簸路面,点云会出现“抖动”。我曾经在测试车上发现,过减速带时,点云会丢失30%的物体。解决方案是加装减震支架。
3.2.2 固态激光雷达
固态激光雷达没有旋转部件。它用光学相控阵(OPA)或微振镜(MEMS)实现扫描。
优点: 体积小、寿命长、成本低。
缺点: 视场角通常只有120度左右,需要多颗拼接。
3.2.3 Flash激光雷达
Flash激光雷达像相机一样,一次发射覆盖整个视场。它没有扫描过程,速度极快。
适用场景: 近距离、高速移动的物体检测。比如,行人突然从车头窜出。
我的看法: Flash激光雷达目前分辨率还偏低,适合做安全冗余,不适合做主感知。
3.3 毫米波雷达:全天候的“老黄牛”
毫米波雷达用电磁波测距测速。它不怕雨雪雾,是自动驾驶的“全天候选手”。
工作频段: 24GHz、77GHz、79GHz。77GHz是目前主流,精度更高。
| 频段 | 最大测距 | 测距精度 | 主要应用 |
|---|---|---|---|
| 24GHz | 50米 | ±0.5米 | 盲区检测 |
| 77GHz | 200米 | ±0.1米 | 自适应巡航 |
| 79GHz | 100米 | ±0.05米 | 高精度测距 |
避坑指南: 我曾经遇到过毫米波雷达对静止物体检测不稳定的问题。原因是雷达的多普勒效应只能检测运动物体。解决方案是结合摄像头做融合。
3.4 超声波雷达:泊车的好帮手
超声波雷达用声波测距。它成本极低,但测距短(通常3-5米)。
应用场景: 自动泊车、盲区检测。
缺点: 受温度、湿度影响大。夏天和冬天的测距误差能差10%。
小技巧: 超声波雷达的安装角度很重要。我建议倾斜5-10度,避免地面反射造成误报。
3.5 IMU/GNSS:定位的“双保险”
IMU(惯性测量单元)和GNSS(全球导航卫星系统)是定位的核心。
3.5.1 IMU
IMU测量加速度和角速度。它不依赖外部信号,但存在漂移。
关键参数: 零偏稳定性。好的IMU零偏小于0.1°/h,差的可能到10°/h。
// IMU数据融合(简化版)
position += velocity * dt + 0.5 * acceleration * dt^2
velocity += acceleration * dt
orientation += angular_velocity * dt
我的经验: 纯IMU定位,10秒后误差能到几米。必须结合GNSS做修正。
3.5.2 GNSS
GNSS包括GPS、北斗、GLONASS。它提供绝对位置,但容易受遮挡。
精度等级:
- 普通GNSS:3-5米
- RTK差分GNSS:2-5厘米
- PPP精密单点定位:10-30厘米
注意: 城市峡谷、隧道中,GNSS信号会丢失。这时候必须靠IMU“撑”过去。我建议使用IMU+GNSS紧耦合方案,定位更鲁棒。
3.6 传感器融合:1+1>2
单一传感器都有短板。摄像头怕暗,激光雷达怕雨,毫米波雷达怕静止物体。所以,必须做融合。
常见融合策略:
- 前融合: 在原始数据层融合。比如,把点云和图像对齐,再一起做检测。精度高,但计算量大。
- 后融合: 每个传感器独立检测,再把结果融合。简单,但可能丢失信息。
- 特征融合: 提取特征后再融合。折中方案,我比较常用。
举个例子,我在一个项目中,用激光雷达检测障碍物,用摄像头识别类型,用毫米波雷达测速。三个结果通过卡尔曼滤波融合,最终输出一个稳定的目标列表。
核心原则: 传感器融合不是简单平均,而是取长补短。摄像头提供语义,激光雷达提供几何,毫米波雷达提供速度。三者缺一不可。
好了,这一章就到这里。传感器是自动驾驶的基石,选对、用好、融合好,才能让车“看得清、看得准、看得远”。下一章,我们会聊聊如何把这些传感器数据变成车辆能理解的“地图”。
公众号:蓝海资料掘金营,微信deep3321