第三章 传感器基础:自动驾驶的“感官世界”

大家好,我是你们的老朋友。今天我们来聊聊自动驾驶的“眼睛”和“耳朵”——传感器。

说实话,传感器选型这件事,我当年刚入行时踩过不少坑。有一次项目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

单一传感器都有短板。摄像头怕暗,激光雷达怕雨,毫米波雷达怕静止物体。所以,必须做融合。

常见融合策略:

  1. 前融合: 在原始数据层融合。比如,把点云和图像对齐,再一起做检测。精度高,但计算量大。
  2. 后融合: 每个传感器独立检测,再把结果融合。简单,但可能丢失信息。
  3. 特征融合: 提取特征后再融合。折中方案,我比较常用。

举个例子,我在一个项目中,用激光雷达检测障碍物,用摄像头识别类型,用毫米波雷达测速。三个结果通过卡尔曼滤波融合,最终输出一个稳定的目标列表。

核心原则: 传感器融合不是简单平均,而是取长补短。摄像头提供语义,激光雷达提供几何,毫米波雷达提供速度。三者缺一不可。

好了,这一章就到这里。传感器是自动驾驶的基石,选对、用好、融合好,才能让车“看得清、看得准、看得远”。下一章,我们会聊聊如何把这些传感器数据变成车辆能理解的“地图”。

公众号:蓝海资料掘金营,微信deep3321