自动驾驶系统基础:感知、决策、控制三大模块的功能与分工,以及传统自动驾驶的分层架构

自动驾驶系统本质上是一个将物理世界信息转化为车辆控制指令的闭环工程系统。无论采用模块化方案还是端到端方案,其底层都需要回答三个核心问题:“我在哪里?”(感知)、“接下来该怎么做?”(决策)、“如何精确执行?”(控制)。理解这三个模块的功能边界与协作关系,是后续对比模块化与端到端架构差异的前提。传统自动驾驶采用分层架构,将这一闭环拆解为可独立开发、测试和验证的子系统,这种“分而治之”的思想至今仍是行业主流工程范式。

传统自动驾驶分层架构与三大模块协作关系 感知层(Perception) “我在哪里?周围有什么?” 传感器接入 Camera/LiDAR/Radar 感知融合 目标检测/语义分割 定位建图 SLAM/高精地图 预测 轨迹预测/意图估计 决策规划层(Decision) “接下来该怎么做?” 任务决策 路线/行为意图 行为规划 换道/跟车/让行 运动规划 轨迹生成/速度曲线 安全校验 碰撞检查/法规约束 控制执行层(Control) “如何精确执行?” 路径跟踪 横向/纵向控制 执行器接口 转向/油门/制动 状态反馈 IMU/轮速/车身 冗余监控 故障诊断/降级 环境理解 轨迹指令 车辆状态反馈(里程计/IMU/执行器状态) 分层架构关键特征 1. 单向依赖:感知 → 决策 → 控制,上层输出作为下层输入,接口明确。 2. 反馈闭环:控制层执行结果通过车辆状态反馈回感知层,形成闭环修正。 3. 模块内聚:每层内部可独立升级算法,不影响其他层接口协议。 4. 时间尺度:感知 10-50ms,决策 50-200ms,控制 10-100ms,层级间存在频率差异。 5. 故障隔离:某层异常可触发降级策略(如感知失效→安全停车),不影响其他模块运行。 注:虚线为反馈回路,实线为前向数据流。各层内部子模块可并行开发与测试。

2.1 感知模块:从原始数据到环境语义

核心原理:感知模块负责将物理世界的连续信号转换为计算机可理解的离散语义。其输入是各类传感器的原始数据流,输出是结构化环境描述,包括目标列表(车辆、行人、骑行者)、车道线几何、交通标志语义、可行驶区域边界以及自车精确位姿。感知并非单一算法,而是一个多传感器融合的复杂流水线。

感知子模块分工:

  • 传感器接入与预处理:负责Camera图像去畸变、LiDAR点云滤波、Radar多普勒解算,统一时间戳与坐标系标定。典型输出为同步后的多模态数据帧。
  • 目标检测与语义分割:基于深度学习模型(如YOLO系列、Transformer-based DETR)识别动态目标,输出3D包围框、类别、置信度;语义分割模型(如DeepLabV3+)输出像素级可行驶区域。
  • 多传感器融合:采用前融合(特征级)或后融合(目标级)策略,将Camera的纹理信息、LiDAR的深度信息、Radar的速度信息互补。后融合常用匈牙利算法做目标关联,卡尔曼滤波做轨迹跟踪。
  • 定位与建图:融合GNSS/IMU/轮速计做航位推算,结合LiDAR点云与高精地图做配准(如NDT算法),输出厘米级位姿(x, y, yaw)。
  • 轨迹预测:基于目标历史轨迹和交互上下文,预测未来3-8秒的多种可能轨迹(如基于LSTM或Social-GAN),输出概率分布。
关键指标:感知模块的工程验收通常关注三个维度——精度(mAP、IoU)、延迟(端到端感知延迟需小于100ms)、鲁棒性(雨雾、逆光、遮挡场景下的性能衰减率)。实际项目中,感知模块的代码量往往占整个自动驾驶系统代码总量的40%以上,是开发资源投入最大的部分。

案例拆解:以某L4级Robotaxi在雨天十字路口的感知表现为例。初始现象:车辆在通过积水路段时,LiDAR点云出现大量噪点,导致目标检测置信度下降,系统误将水花反射识别为障碍物。关键输入数据:LiDAR点云密度下降约30%,Camera图像对比度降低50%。分析过程:工程师通过回放日志发现,融合模块中Radar目标与视觉目标关联失败,原因是雨滴对Radar信号产生多径干扰。实际操作:调整传感器融合策略,在雨天场景下提高Radar权重,同时启用基于深度学习的点云去噪网络。结果对比:目标检测mAP从0.72提升至0.85,误报率下降60%。复盘经验:感知系统必须设计场景自适应融合权重,单一传感器在恶劣天气下的失效是常态,而非例外。

2.2 决策规划模块:从环境理解到驾驶策略

核心原理:决策规划模块是自动驾驶的“大脑”,其输入是感知模块输出的环境语义和自车状态,输出是满足安全、舒适、效率约束的可执行轨迹。该模块采用分层递阶结构,从宏观到微观逐步细化决策粒度。

决策规划四层结构:

  1. 任务决策(Route Planning):基于高精地图和全局导航目标,计算从起点到终点的道路级路径。常用A*或Dijkstra算法,输出为一系列道路ID和行驶方向。
  2. 行为决策(Behavior Decision):处理与其他交通参与者的交互博弈,决定“跟车、换道、超车、让行、停车”等驾驶行为。基于有限状态机(FSM)或基于强化学习的决策模型,输出行为意图。
  3. 运动规划(Motion Planning):在行为意图约束下,生成平滑、无碰撞的局部轨迹。横向规划常用多项式曲线或样条曲线拟合,纵向规划采用速度-时间图(S-T Graph)优化速度曲线。
  4. 安全校验(Safety Check):对生成的轨迹进行碰撞检测(如基于包围盒的SDF检测)和法规约束检查(如限速、红灯),确保轨迹可执行。
决策层级 时间尺度 输入 输出 典型算法
任务决策 秒级(1-10s) 全局地图、起点/终点 道路序列 A*、Dijkstra
行为决策 毫秒级(100-500ms) 目标列表、交通规则 驾驶行为意图 FSM、决策树、RL
运动规划 毫秒级(50-200ms) 行为意图、障碍物预测 局部轨迹(路径+速度) 多项式拟合、S-T Graph
安全校验 毫秒级(10-50ms) 候选轨迹、障碍物 可执行/拒绝 SDF碰撞检测、RSS规则

实战场景:高速NOA(Navigate on Autopilot)场景下的决策规划。当自车以120km/h行驶在左侧车道,前方200米有慢车(80km/h),右侧车道后方100米有快速接近车辆。行为决策层判断“需要换道超车”,运动规划层生成一条时长8秒的换道轨迹,包含横向偏移3.5米和纵向加速曲线。安全校验层实时检测右侧车辆距离,若右侧车辆在1秒内从100米接近至50米,则触发“取消换道”指令,回到原车道跟车。整个过程在300ms内完成决策与规划更新。

常见误区:许多初学者将行为决策与运动规划混为一谈。实际上,行为决策关注“做什么”(What to do),运动规划关注“怎么做”(How to do)。若跳过行为决策直接进行轨迹规划,系统将无法处理复杂的交互博弈场景,例如无保护左转时与对向直行车的博弈。

2.3 控制执行模块:从轨迹指令到车辆响应

核心原理:控制模块是自动驾驶系统的“小脑”,负责将规划层输出的目标轨迹转化为转向、加速、制动的具体执行指令。其核心挑战在于车辆动力学模型的非线性和执行器响应的延迟。控制模块通常分为横向控制和纵向控制两个独立回路。

横向控制:目标是让车辆实际行驶路径与规划路径的横向偏差最小化。常用方法包括:

  • 纯跟踪(Pure Pursuit):基于几何模型,计算车辆后轴中心到预瞄点的曲率半径,输出前轮转角。简单鲁棒,但高速时精度不足。
  • 模型预测控制(MPC):基于车辆动力学模型,在预测时域内优化控制量,同时满足舒适性和稳定性约束。计算量大,但控制精度高,是L4级主流方案。
  • PID控制:基于横向偏差的比例-积分-微分反馈,适合低速场景,参数整定简单。

纵向控制:目标是精确跟踪规划速度曲线,同时保证跟车距离安全。典型方案为分层控制:上层采用PID或MPC计算期望加速度,下层通过逆纵向动力学模型转换为油门开度或制动压力。

工程要点:控制模块的标定工作至关重要。每个车型的转向传动比、制动响应时间、油门特性曲线均不同,需要实车采集数据建立精确的逆动力学模型。此外,控制模块必须包含执行器故障诊断逻辑,例如转向电机堵转、制动液压力不足时,系统应在50ms内检测并触发降级策略。

案例拆解:某L4级自动驾驶车辆在高速弯道出现“画龙”现象(横向振荡)。初始现象:车辆以100km/h通过半径200m的弯道时,横向偏差在±30cm范围内振荡,乘客明显感到不适。关键输入数据:IMU记录的横摆角速度波动频率为1.2Hz,转向执行器响应延迟约80ms。分析过程:工程师对比MPC控制器的预测时域参数,发现预测时域设置过短(0.8s),导致控制器对弯道曲率变化响应滞后。实际操作:将MPC预测时域从0.8s延长至1.5s,同时增加横摆角速度的权重系数。结果对比:横向偏差振荡幅度从±30cm降至±8cm,乘客舒适度评分从3.2分提升至4.5分(满分5分)。复盘经验:控制参数必须结合具体工况(车速、弯道半径)进行自适应调整,固定参数难以覆盖全工况。

2.4 分层架构的协同机制与工程意义

核心原理:传统分层架构的核心设计哲学是“关注点分离”。每一层只依赖下一层的输出,不关心下一层的内部实现细节。这种架构带来了三个关键工程优势:可测试性(每层可独立进行单元测试和仿真验证)、可替换性(升级感知算法不影响决策控制代码)、可诊断性(故障可通过层间接口快速定位)。

层间接口定义:

  • 感知→决策接口:标准化的目标列表(含ID、类别、位置、速度、朝向、预测轨迹)、车道线数组、可行驶区域多边形、自车位姿。通常采用Protobuf或ROS Message定义。
  • 决策→控制接口:目标轨迹(时间戳序列+路径点+速度+加速度)、行为标签(如“换道中”“跟车中”)。
  • 控制→执行器接口:转向角指令、油门百分比、制动压力,以及执行器反馈状态。

时间同步与调度:各模块运行频率不同,感知层通常10-20Hz,决策层10Hz,控制层50-100Hz。系统需要设计统一的时间同步机制(如基于PTP协议)和异步调度框架(如ROS2的executor),确保数据时间戳对齐。

分层架构的局限性:尽管分层架构在工程实现上优势明显,但其也存在固有缺陷——信息损失。感知层将原始数据压缩为抽象目标列表时,会丢失细节信息(如目标的部分遮挡状态、路面材质);决策层将环境理解转化为离散行为时,可能丢失连续场景的微妙变化。这种逐层抽象导致系统对长尾场景的泛化能力受限,也是端到端方案出现的核心动因之一。