4. 自动驾驶系统架构:感知、决策、执行三大模块,传感器配置方案
聊到自动驾驶系统架构,很多人第一反应就是堆传感器。其实不然。我做了这么多年系统集成,最深的体会是:架构决定上限,传感器决定下限。今天咱们就把这套东西拆开揉碎了讲清楚。
4.1 三大模块:感知、决策、执行
自动驾驶系统说白了就干三件事:看路、想事、动手。对应到工程上,就是感知(Perception)、决策(Planning & Decision)、执行(Control & Actuation)。
核心观点:这三个模块不是串行的,而是闭环的。感知给决策喂数据,决策给执行下指令,执行的结果又反过来影响感知——比如车辆转向后,摄像头看到的画面变了,感知模块得重新理解环境。
4.1.1 感知模块
感知模块的任务就一个:把传感器原始数据变成有意义的环境信息。包括但不限于:
- 目标检测与分类:车、人、自行车、锥桶、路障……
- 车道线与路沿:可行驶区域边界
- 交通标志与信号灯:限速牌、红绿灯状态
- 可行驶空间:Free Space 估计
- 自车定位:高精地图 + GPS + IMU + 感知融合
我遇到过不少团队,感知模块做得特别花哨,各种深度学习模型往上堆。结果呢?决策模块根本用不过来。你想想看,感知输出每秒 100 帧的障碍物列表,决策模块处理一帧就要 50 毫秒,这不就崩了吗?感知不是越强越好,而是够用就好。
4.1.2 决策模块
决策模块是自动驾驶的「大脑」。它接收感知模块输出的环境模型,结合自车状态和导航路径,做出驾驶决策。
决策模块通常分三层:
- 行为决策(Behavioral Decision):要不要变道?要不要超车?要不要让行?
- 运动规划(Motion Planning):具体怎么走?路径曲线长什么样?速度曲线怎么调?
- 控制指令生成:方向盘打多少度?油门踩多深?刹车给多大压力?
个人经验:决策模块最容易出问题的地方不是算法,而是状态机设计。我曾经在一个项目中,因为状态机少考虑了一种「前车突然切入且自车正在变道」的组合情况,导致车辆在高速上犹豫了 3 秒才做出反应。嗯,从那以后我设计状态机都会画一张完整的组合状态表。
4.1.3 执行模块
执行模块就是把决策模块的指令变成物理动作。它直接跟车辆底盘打交道:
- 转向系统:EPS(电动助力转向)或 SBW(线控转向)
- 制动系统:ESP/ESC、iBooster、线控制动
- 驱动系统:VCU(整车控制器)或 MCU(电机控制器)
- 灯光与信号:转向灯、喇叭、双闪
执行模块有个关键指标:延迟。从决策发出指令到执行器开始动作,这个时间差不能超过 100 毫秒。我见过一些方案,决策到执行走了 CAN 总线再转 LIN 总线,延迟直接飙到 300 毫秒以上——这种车你敢坐吗?
4.2 传感器配置方案
传感器配置是自动驾驶系统里最烧钱、也最纠结的部分。没有完美的传感器,只有合适的组合。
4.2.1 摄像头
摄像头是自动驾驶的「眼睛」。它的优势是信息丰富,能识别颜色、纹理、文字。缺点是受光照影响大,没有深度信息(单目)。
| 类型 | 分辨率 | 视场角 | 典型用途 |
|---|---|---|---|
| 前视主摄像头 | 2MP ~ 8MP | 60° ~ 120° | 车道线、车辆、行人检测 |
| 环视摄像头 | 1MP ~ 2MP | 180° ~ 190° | 全景影像、泊车 |
| 侧视摄像头 | 2MP ~ 5MP | 100° ~ 120° | 盲区监测、变道辅助 |
| 后视摄像头 | 1MP ~ 2MP | 120° ~ 140° | 倒车影像、后方来车检测 |
| 驾驶员监控摄像头 | 0.5MP ~ 1MP | 60° ~ 90° | 疲劳驾驶、分心检测 |
避坑指南:我曾经在一个项目中选了 8MP 的前视摄像头,想着分辨率越高越好。结果发现,高分辨率带来的数据量太大,SoC 的 ISP 带宽根本扛不住,最后不得不降采样到 2MP 来用。白白多花了 30% 的硬件成本。选摄像头,先算带宽,再定分辨率。
4.2.2 雷达
雷达分两种:毫米波雷达和超声波雷达。
毫米波雷达:24GHz 或 77GHz。测距远(最远 250 米),不受光照和天气影响。但分辨率低,无法区分行人还是自行车。
超声波雷达:40kHz ~ 60kHz。测距近(0.2 ~ 5 米),精度高。主要用于泊车和近距离障碍物检测。
| 参数 | 毫米波雷达 | 超声波雷达 |
|---|---|---|
| 工作频率 | 24GHz / 77GHz | 40kHz ~ 60kHz |
| 最大测距 | 250m(77GHz) | 5m |
| 测距精度 | ±0.1m | ±0.02m |
| 角度分辨率 | 1° ~ 3° | 10° ~ 30° |
| 受天气影响 | 小 | 小 |
| 典型数量 | 3 ~ 6 个 | 8 ~ 12 个 |
4.2.3 激光雷达
激光雷达(LiDAR)是自动驾驶的「深度感知神器」。它直接输出 3D 点云,精度高、不受光照影响。但贵,而且受雨雾天气影响大。
激光雷达按扫描方式分:
- 机械旋转式:64 线、128 线。精度最高,但机械结构寿命有限。早期无人车标配。
- MEMS 微振镜式:半固态。成本适中,可靠性好。目前主流方案。
- Flash 面阵式:固态。没有运动部件,但探测距离有限(通常 < 50m)。
- OPA 光学相控阵:纯固态。还在实验室阶段,但未来可期。
我的建议:L2+ 级别的系统,用摄像头 + 毫米波雷达就够了。L3 以上,建议加一颗前向激光雷达。L4 无人驾驶,至少 3 颗激光雷达(前向 + 两侧补盲)。别盲目堆数量,传感器融合的算法复杂度会随着传感器数量指数级增长。
4.3 传感器融合策略
传感器融合不是简单地把数据拼在一起。它分三个层级:
- 数据级融合:直接把原始数据融合。比如把摄像头图像和激光雷达点云对齐,生成 RGB 点云。计算量大,但信息损失最小。
- 特征级融合:先提取特征,再融合。比如分别从图像和点云中提取目标框,然后用匈牙利算法做关联匹配。计算量适中,工程上最常用。
- 决策级融合:每个传感器独立做决策,最后投票。比如摄像头说「前面有车」,雷达说「前面有目标」,激光雷达说「前面有障碍物」,三个一致就确认。鲁棒性好,但信息利用率低。
我个人习惯用特征级融合 + 决策级兜底。平时用特征级融合保证精度,当传感器之间出现严重冲突时,切换到决策级融合做安全兜底。
4.4 典型传感器配置方案对比
| 方案 | 摄像头 | 毫米波雷达 | 激光雷达 | 超声波 | 典型成本 | 适用等级 |
|---|---|---|---|---|---|---|
| 纯视觉方案 | 8 ~ 12 个 | 0 ~ 3 个 | 0 | 8 ~ 12 个 | $500 ~ $1500 | L2 ~ L2+ |
| 视觉 + 雷达方案 | 8 ~ 12 个 | 3 ~ 6 个 | 0 | 8 ~ 12 个 | $1500 ~ $3000 | L2+ ~ L3 |
| 多传感器融合方案 | 8 ~ 12 个 | 3 ~ 6 个 | 1 ~ 3 个 | 8 ~ 12 个 | $5000 ~ $15000 | L3 ~ L4 |
| 全冗余方案 | 12 ~ 16 个 | 6 ~ 8 个 | 3 ~ 5 个 | 12 ~ 16 个 | $20000+ | L4 ~ L5 |
避坑指南:我曾经见过一个团队,为了追求「全冗余」,在车上装了 5 颗激光雷达、12 个摄像头、8 个毫米波雷达。结果呢?数据量太大,域控制器的 PCIe 带宽全部打满,以太网也堵死了。最后不得不砍掉一半传感器。记住:冗余不是堆数量,而是关键链路的备份。
4.5 自动驾驶系统架构总览
下面这张图是我自己画的自动驾驶系统架构总览,涵盖了感知、决策、执行三大模块以及传感器配置方案。你可以把它当作本章的知识地图。
这张图把本章的核心内容串起来了。从上到下依次是传感器层、感知模块、决策模块、执行模块。每个模块内部的关键子功能也都列出来了。你可以把它当作一个快速索引,复习的时候对着这张图回忆每个模块的细节。
4.6 本章小结
自动驾驶系统架构的核心就三句话:
- 感知:把传感器数据变成环境信息。别贪多,够用就好。
- 决策:根据环境信息做驾驶决策。状态机设计要严谨,别漏了边界情况。
- 执行:把决策变成物理动作。延迟是关键指标,别超过 100 毫秒。
传感器配置没有标准答案。纯视觉方案便宜但怕极端天气,多传感器融合方案贵但鲁棒性好。选什么方案,取决于你的目标等级、成本预算和算法能力。我个人的经验是:先定功能,再定传感器,最后定算法。别反过来,否则你会陷入「为了用传感器而用传感器」的陷阱。