4. 自动驾驶系统架构:感知、决策、执行三大模块,传感器配置方案

聊到自动驾驶系统架构,很多人第一反应就是堆传感器。其实不然。我做了这么多年系统集成,最深的体会是:架构决定上限,传感器决定下限。今天咱们就把这套东西拆开揉碎了讲清楚。

4.1 三大模块:感知、决策、执行

自动驾驶系统说白了就干三件事:看路、想事、动手。对应到工程上,就是感知(Perception)、决策(Planning & Decision)、执行(Control & Actuation)。

核心观点:这三个模块不是串行的,而是闭环的。感知给决策喂数据,决策给执行下指令,执行的结果又反过来影响感知——比如车辆转向后,摄像头看到的画面变了,感知模块得重新理解环境。

4.1.1 感知模块

感知模块的任务就一个:把传感器原始数据变成有意义的环境信息。包括但不限于:

  • 目标检测与分类:车、人、自行车、锥桶、路障……
  • 车道线与路沿:可行驶区域边界
  • 交通标志与信号灯:限速牌、红绿灯状态
  • 可行驶空间:Free Space 估计
  • 自车定位:高精地图 + GPS + IMU + 感知融合

我遇到过不少团队,感知模块做得特别花哨,各种深度学习模型往上堆。结果呢?决策模块根本用不过来。你想想看,感知输出每秒 100 帧的障碍物列表,决策模块处理一帧就要 50 毫秒,这不就崩了吗?感知不是越强越好,而是够用就好。

4.1.2 决策模块

决策模块是自动驾驶的「大脑」。它接收感知模块输出的环境模型,结合自车状态和导航路径,做出驾驶决策。

决策模块通常分三层:

  1. 行为决策(Behavioral Decision):要不要变道?要不要超车?要不要让行?
  2. 运动规划(Motion Planning):具体怎么走?路径曲线长什么样?速度曲线怎么调?
  3. 控制指令生成:方向盘打多少度?油门踩多深?刹车给多大压力?

个人经验:决策模块最容易出问题的地方不是算法,而是状态机设计。我曾经在一个项目中,因为状态机少考虑了一种「前车突然切入且自车正在变道」的组合情况,导致车辆在高速上犹豫了 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 传感器融合策略

传感器融合不是简单地把数据拼在一起。它分三个层级:

  1. 数据级融合:直接把原始数据融合。比如把摄像头图像和激光雷达点云对齐,生成 RGB 点云。计算量大,但信息损失最小。
  2. 特征级融合:先提取特征,再融合。比如分别从图像和点云中提取目标框,然后用匈牙利算法做关联匹配。计算量适中,工程上最常用。
  3. 决策级融合:每个传感器独立做决策,最后投票。比如摄像头说「前面有车」,雷达说「前面有目标」,激光雷达说「前面有障碍物」,三个一致就确认。鲁棒性好,但信息利用率低。

我个人习惯用特征级融合 + 决策级兜底。平时用特征级融合保证精度,当传感器之间出现严重冲突时,切换到决策级融合做安全兜底。

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 自动驾驶系统架构总览

下面这张图是我自己画的自动驾驶系统架构总览,涵盖了感知、决策、执行三大模块以及传感器配置方案。你可以把它当作本章的知识地图。

自动驾驶系统架构总览 自动驾驶系统架构总览 传感器层 摄像头 2MP ~ 8MP 毫米波雷达 24GHz / 77GHz 激光雷达 机械 / MEMS / Flash 超声波雷达 40kHz ~ 60kHz 感知模块 目标检测与分类 车道线与路沿 交通标志识别 可行驶空间 自车定位 决策模块 行为决策(变道/超车/让行) 运动规划(路径/速度) 控制指令生成 执行模块 转向系统(EPS/SBW) 制动系统(ESP/iBooster) 驱动系统(VCU/MCU) 灯光与信号

这张图把本章的核心内容串起来了。从上到下依次是传感器层、感知模块、决策模块、执行模块。每个模块内部的关键子功能也都列出来了。你可以把它当作一个快速索引,复习的时候对着这张图回忆每个模块的细节。

4.6 本章小结

自动驾驶系统架构的核心就三句话:

  • 感知:把传感器数据变成环境信息。别贪多,够用就好。
  • 决策:根据环境信息做驾驶决策。状态机设计要严谨,别漏了边界情况。
  • 执行:把决策变成物理动作。延迟是关键指标,别超过 100 毫秒。

传感器配置没有标准答案。纯视觉方案便宜但怕极端天气,多传感器融合方案贵但鲁棒性好。选什么方案,取决于你的目标等级、成本预算和算法能力。我个人的经验是:先定功能,再定传感器,最后定算法。别反过来,否则你会陷入「为了用传感器而用传感器」的陷阱。