2. 自动驾驶系统基础

自动驾驶系统本质上是一个“感知-决策-执行”的闭环智能体,其核心由感知(Perception)、决策(Decision)、规划(Planning)和控制(Control)四大模块构成。理解这四大模块的功能边界、数据接口与协作机制,是进行场景建模与仿真测试的前提。场景并非孤立的数据包,而是贯穿所有模块的“上下文”——它既是感知的输入约束,也是决策与规划的逻辑边界,更是控制模块的物理极限校验基准。本章将系统拆解各模块的职责、数据流关系,并重点剖析场景在模块协同中的核心作用。

自动驾驶系统模块数据流与场景作用图 场景层(Scene Layer) 道路拓扑 | 交通参与者 | 天气/光照 | 临时施工 | 通信状态 | 高精地图动态层 作为所有模块的输入约束与验证基准 感知模块 摄像头 / 激光雷达 / 毫米波 目标检测 / 语义分割 / 跟踪 输出:障碍物列表、车道线、 交通标志、可行驶区域 决策模块 行为决策 / 意图预测 换道 / 跟车 / 让行 / 超车 风险评估 / 规则仲裁 输出:驾驶行为指令 规划模块 全局路径规划(Routing) 局部轨迹规划(Trajectory) 速度曲线 / 避障轨迹 输出:离散轨迹点+速度 控制模块 横向控制(转向) 纵向控制(油门/制动) PID / MPC / 前馈-反馈 输出:方向盘转角、加速度 障碍物/车道线 行为指令 轨迹点+速度 车辆状态反馈(速度/横摆角) 场景约束 场景约束 场景约束 模块间协同:感知提供环境模型 → 决策选择行为 → 规划生成轨迹 → 控制执行并反馈 场景数据(高精地图、交通流、天气)在每一级都作为过滤条件与验证基准

2.1 感知模块:从原始传感器数据到环境模型的构建

核心原理

感知模块负责将物理世界的原始信号转换为结构化、可计算的环境表征。其输入包括摄像头图像、激光雷达点云、毫米波雷达目标数据以及GPS/IMU定位信息。感知的最终输出并非简单的“检测到物体”,而是包含语义标签、空间位置、速度矢量、朝向角、尺寸以及历史轨迹的障碍物列表,同时还包括车道线几何、路沿边界、交通标志语义、可行驶区域栅格等静态环境要素。在L3级以上系统中,感知还需输出目标意图预测(如行人是否准备横穿),这通常由轨迹预测子模块完成。

感知模块内部通常分为三个层级:底层感知(信号处理与特征提取)、中层融合(多传感器时间/空间对齐与目标级融合)、高层语义(场景理解与态势评估)。其中,中层融合是决定系统鲁棒性的关键——摄像头在弱光下失效时,激光雷达和毫米波雷达需要无缝接管;反之,激光雷达在雨雾中衰减时,摄像头和毫米波需提供冗余。

判断方法或操作流程

在仿真测试中,评估感知模块性能不能只看“检测精度”,还需关注以下流程性指标:

  1. 数据同步性检查:各传感器时间戳偏差是否小于20ms,空间坐标系是否统一(通常以自车后轴中心为原点)。
  2. 目标生命周期管理:新目标如何创建、跟踪中如何关联、丢失后何时删除(通常设置2~3秒的保留窗口)。
  3. 感知范围边界:有效探测距离、FOV(视场角)盲区、遮挡条件下的退化模式。
  4. 输出延迟预算:从传感器采集到感知结果发布的总延迟,L3级系统通常要求小于100ms。
场景作用要点:场景中的天气参数(雨量、雾浓度)、光照条件(逆光、隧道口)、传感器退化(脏污、遮挡)直接决定感知模块的输入质量。仿真测试中,必须构建“传感器退化模型”来模拟真实物理限制,而非简单地在感知输出上叠加噪声。

案例拆解:雨天十字路口感知失效分析

某L4级测试车辆在雨天通过无保护左转路口时,感知模块将路边积水反光误检为可行驶区域,导致车辆试图驶入对向车道。事后分析发现:摄像头图像中积水区域与天空反射形成高亮纹理,语义分割模型将其分类为“路面”,而激光雷达点云在积水表面产生镜面反射,点云密度骤降,无法提供有效修正。该案例暴露了多传感器置信度动态权重的缺失——在雨天场景中,应降低摄像头纹理特征的权重,提高毫米波雷达对静态障碍物的置信度。仿真测试中,需要构建包含“积水反光”“雨滴遮挡”“点云稀疏”的复合场景,并注入传感器退化参数,才能复现此类问题。

常见误区或总结复盘

  • 误区一:认为感知精度越高系统越安全。实际上,感知的不确定性表达(协方差矩阵、置信度)比精度数值更重要,决策模块需要感知的不确定性来评估风险。
  • 误区二:忽略感知延迟的累积效应。单帧延迟100ms看似可接受,但连续10帧的延迟抖动会导致决策模块基于过期信息做判断。
  • 复盘要点:感知模块的测试必须覆盖“传感器部分失效”场景,如单目摄像头被泥浆遮挡、激光雷达某个扫描层故障等,验证系统能否优雅降级。

2.2 决策模块:行为选择与风险仲裁

核心原理

决策模块接收感知输出的环境模型,结合自车状态(速度、位置、航向)和路由信息(目的地、路径),输出驾驶行为指令,例如“保持当前车道跟车”“向左变道”“在停止线前停车”“通过交叉口”等。决策不是简单的规则匹配,而是在不确定性条件下进行风险-收益权衡的过程。其核心算法包括:有限状态机(FSM)、行为树(Behavior Tree)、马尔可夫决策过程(MDP)以及基于深度强化学习的端到端策略。

决策模块的关键挑战在于处理交互博弈——其他交通参与者(人类驾驶员、行人)的行为并非完全理性可预测。例如,当自车准备变道时,目标车道后方车辆可能加速或减速让行,决策模块需要预测这种交互并选择最优策略。场景中的交通流密度、参与者类型组合、道路优先级规则,都直接影响决策策略的选择。

判断方法或操作流程

在仿真环境中验证决策模块,需要关注以下判断流程:

  1. 场景语义解析:将场景中的交通规则(限速、禁停、让行标志)转化为决策模块可执行的约束条件。
  2. 风险度量定义:设定碰撞时间(TTC)、最小安全距离、加速度变化率等量化指标,作为决策优劣的客观评价。
  3. 行为合理性评估:不仅看是否安全,还要看是否符合人类驾驶习惯(如变道是否过于激进、跟车距离是否过远导致交通效率下降)。
  4. 边界条件测试:在“两难场景”中验证决策的鲁棒性,例如:左侧有连续实线、右侧有行人闯入、后方有高速来车时,如何选择。
场景作用要点:决策模块的测试高度依赖场景的语义标签。同一个物理场景(十字路口),在不同交通规则(红灯可右转/红灯禁止右转)下,决策输出必须不同。因此,场景建模必须包含“规则层”数据,而非仅几何层。

案例拆解:无保护左转的决策博弈

在无保护左转场景中,自车必须在对向直行车流中寻找可穿越间隙。传统FSM方法设定“对向车辆距离大于50米且TTC大于5秒”才执行左转,这导致在交通拥堵时车辆永远无法完成左转。改进方案采用MDP模型,将场景中的对向车辆速度、加速度、驾驶员让行意图(通过历史轨迹预测)作为状态变量,将“等待”“缓慢前进试探”“加速通过”作为动作空间,通过价值迭代求解最优策略。仿真测试中,构建了200组不同间隙、不同车速、不同驾驶员激进程度的场景,验证了改进决策在通行效率上提升40%,同时碰撞风险未增加。该案例说明,决策模块必须与场景的动态语义深度耦合,静态阈值无法应对复杂交互。

常见误区或总结复盘

  • 误区一:将决策模块视为“if-else规则库”。真实交通场景的组合爆炸使得规则无法穷举,必须引入概率推理或学习型方法。
  • 误区二:忽略决策的时间一致性。决策模块在相邻帧之间不应产生频繁的指令跳变(如“变道-取消变道-再变道”),这会导致规划与控制的不稳定。
  • 复盘要点:决策测试场景应包含“意图模糊”场景,如行人站在路边但未明确是否过马路,验证决策模块是否采取保守策略(减速准备停车)而非激进策略(保持速度通过)。

2.3 规划模块:从行为指令到可执行轨迹

核心原理

规划模块将决策模块输出的行为指令转化为具体的、满足运动学约束的轨迹。规划分为两个层级:全局规划(Routing)在车道级拓扑中搜索从起点到终点的路径,通常基于高精地图的lane graph,使用A*或Dijkstra算法;局部规划(Trajectory Planning)在全局路径的约束下,生成未来5~8秒内的离散轨迹点(位置+速度+加速度),需满足避障、交通规则、乘坐舒适性(加加速度限制)和车辆动力学约束(最大转向角、最大横向加速度)。

局部规划的核心方法是采样-优化框架:在Frenet坐标系下,分别对横向(d)和纵向(s)方向进行多项式采样,生成候选轨迹簇,然后通过代价函数(包含碰撞代价、偏离参考线代价、速度代价、加速度代价)选择最优轨迹。近年来,基于优化的方法(如MPC轨迹规划)和基于学习的方法(如Imitation Learning)也逐渐成熟,但采样-优化因其可解释性和稳定性仍是工业界主流。

判断方法或操作流程

规划模块的仿真测试需关注以下流程性指标:

  1. 轨迹可行性:生成的轨迹是否满足车辆运动学(曲率连续、曲率变化率有界)和动力学(加速度、加加速度限制)约束。
  2. 碰撞安全性:轨迹与所有障碍物(包括动态障碍物的预测轨迹)之间的最小距离是否大于安全阈值(通常为0.3~0.5米)。
  3. 舒适性指标:横向加速度变化率(Jerk)是否小于2m/s³,纵向加加速度是否小于3m/s³。
  4. 实时性:规划周期是否在50~100ms内完成,且轨迹发布延迟是否稳定。
场景作用要点:规划模块对场景的依赖体现在“时空耦合”上。场景中的动态障碍物轨迹预测(如行人可能突然加速)、道路几何(如曲率突变)、路面附着系数(影响最大加速度)都必须作为规划约束输入。仿真场景中,必须提供障碍物的预测轨迹集合(而非单一确定性轨迹),否则规划模块无法进行鲁棒的避障。

案例拆解:高速匝道汇入的轨迹规划

在高速匝道汇入主路场景中,自车需要在有限加速车道内将速度从60km/h提升至100km/h,并找到主路车流中的可插入间隙。规划模块的挑战在于:主路车辆的预测轨迹具有不确定性(可能加速或减速),且加速车道的长度有限。某测试案例中,规划模块生成了三条候选轨迹:激进加速(在匝道末端前完成汇入)、匀速等待(寻找更大间隙)、减速让行(放弃本次汇入)。代价函数中,将“汇入失败”的代价设为最高,同时将“与主路车辆TTC小于3秒”的代价设为次高。最终选择了一条在匝道2/3处加速汇入的轨迹,横向加速度峰值为1.8m/s²,纵向加加速度为2.1m/s³,满足舒适性要求。该案例表明,规划模块需要场景提供“间隙预测”信息,即主路车流的动态间隙变化模型。

常见误区或总结复盘

  • 误区一:只验证规划轨迹的终点是否安全,忽略轨迹中间过程的平滑性。实际上,轨迹的曲率突变会导致控制模块跟踪失败。
  • 误区二:将规划与决策完全解耦。规划模块在遇到无法生成可行轨迹时,应能回退请求决策模块重新决策(如从“变道”回退为“跟车”),这种闭环机制必须在仿真中验证。
  • 复盘要点:规划测试场景应包含“狭窄通道会车”“施工区域临时改道”“前方静止故障车辆”等典型场景,验证轨迹生成在极端约束下的可行性。

2.4 控制模块:轨迹跟踪与车辆动态响应

核心原理

控制模块是自动驾驶系统的“手脚”,负责将规划模块输出的目标轨迹转化为具体的车辆执行指令(方向盘转角、油门开度、制动压力)。控制分为横向控制(转向)和纵向控制(速度/加速度)。横向控制常用方法包括:纯跟踪(Pure Pursuit)、Stanley方法、线性二次调节器(LQR)和模型预测控制(MPC);纵向控制常用PID和MPC。现代L4级系统普遍采用MPC,因为它能显式处理执行器约束(如最大转向角、最大制动减速度)和状态约束(如横向偏差、速度偏差)。

控制模块的性能不仅取决于算法本身,还取决于车辆动力学模型的精度。仿真测试中,通常使用高精度车辆动力学模型(如CarSim、veDYNA)作为被控对象,而控制模块内部使用简化模型(如自行车模型)进行预测。这种“模型失配”是控制误差的主要来源,也是仿真测试需要重点覆盖的环节。

判断方法或操作流程

控制模块的仿真测试指标包括:

  1. 跟踪精度:横向偏差(通常要求小于0.2米)、纵向速度偏差(小于0.5m/s)、航向角偏差(小于2度)。
  2. 稳定性:在高速(120km/h)或低附着路面(冰雪)条件下,车辆是否出现振荡或发散。
  3. 执行器响应:转向执行器的延迟(通常小于50ms)、制动系统的压力建立时间(小于200ms)。
  4. 乘坐舒适性:车身横向加速度变化率是否超过人体舒适阈值(2m/s³)。
场景作用要点:控制模块对场景的依赖主要体现在路面附着系数和坡度上。同样的转向指令在干燥沥青(附着系数0.85)和湿滑路面(附着系数0.4)上产生的横摆角速度差异巨大。仿真场景必须为控制测试提供“路面物理属性层”,包括附着系数、坡度、颠簸程度等参数。

案例拆解:冰雪路面紧急避障的控制失效

某测试车辆在冰雪覆盖的测试场上进行紧急避障(麋鹿测试)时,控制模块输出的前轮转角指令在车辆上产生了严重的转向不足,车辆冲出预定轨迹。分析发现:控制模块内部的车辆模型假设附着系数为0.8,而实际冰雪路面附着系数仅为0.2。MPC预测模型认为车辆能够产生足够的侧向力,但实际轮胎已进入非线性饱和区。解决方案是:在控制模块中增加路面附着系数在线估计器,通过比较实际横摆角速度与模型预测值的残差,实时调整MPC中的轮胎刚度参数。仿真测试中,构建了附着系数从0.8到0.2渐变的路面场景,验证了改进后的控制模块在附着系数突变时仍能保持车辆稳定,横向偏差控制在0.35米以内。

常见误区或总结复盘

  • 误区一:只测试控制模块在理想路面(高附着、平坦)上的性能,忽略低附着、坡道、颠簸路面的极端工况。
  • 误区二:将控制模块与车辆动力学完全解耦。实际上,控制参数(如PID增益)必须针对不同车型进行标定,仿真测试中应使用参数化车辆模型来覆盖不同车型的响应特性。
  • 复盘要点:控制测试场景应包含“执行器部分失效”场景,如制动单侧失效、转向助力减弱等,验证控制模块的容错能力。

2.5 场景在模块协同中的核心作用

核心原理

场景在自动驾驶系统中的作用可以概括为三个层次:输入约束层、逻辑触发层和验证基准层。在输入约束层,场景中的道路几何、交通参与者状态、天气条件直接决定了感知模块的输入数据分布和决策/规划模块的可行域。在逻辑触发层,场景中的特定事件(如前车急刹、行人闯入、施工改道)触发决策模块的状态迁移和规划模块的轨迹重规划。在验证基准层,场景库中的测试用例是评估系统整体性能的“考卷”,必须覆盖从常见工况到边缘用例的完整谱系。

从数据流角度看,场景数据并非一次性加载,而是持续动态更新的。高精地图提供静态场景(车道线、交通标志),实时感知提供动态场景(障碍物、临时施工),V2X通信提供远距离场景(前方拥堵、信号灯相位)。这三级场景数据在时间尺度和空间范围上互补,共同构成自动驾驶系统的“世界模型”。

判断方法或操作流程

在构建场景库时,需要遵循以下流程来确保场景对模块协同的有效覆盖:

  1. 场景要素分解:将场景拆解为静态要素(道路拓扑、交通设施)、动态要素(参与者轨迹、状态)、环境要素(天气、光照)、信息要素(交通规则、临时事件)。
  2. 模块相关性分析:针对每个场景要素,标注其影响哪些模块(如“路面附着系数”影响控制模块,“行人意图模糊”影响决策模块)。
  3. 协同场景构建:设计需要多个模块协同才能完成的场景,如“雨天夜间行人横穿高速”,同时考验感知(低光照+雨滴)、决策(紧急制动vs变道)、规划(避障轨迹)、控制(低附着制动)。
  4. 覆盖度评估:使用场景覆盖度矩阵,检查每个模块的边界条件是否被至少一个场景覆盖。
场景要素 感知模块 决策模块 规划模块 控制模块
道路曲率突变 车道线检测难度↑ 速度决策需调整 轨迹曲率约束 横向控制增益需调整
行人突然横穿 目标跟踪与意图预测 紧急制动/避让决策 紧急轨迹重规划 高减速度执行
路面湿滑(μ=0.3) 感知退化(水雾) 降低速度阈值 限制最大加速度 MPC模型参数调整
临时施工改道 锥桶/围挡检测 重新规划路径 局部轨迹绕行 精确跟踪新轨迹

案例拆解:场景驱动的模块协同调优

某自动驾驶公司在其测试车队中发现,车辆在通过“隧道出口+强逆光+前车急刹”的复合场景时,系统整体反应时间比预期慢了300ms。通过逐模块分析发现:感知模块在逆光条件下对前车刹车灯的检测置信度下降,导致目标跟踪延迟;决策模块因感知置信度低而推迟了紧急制动决策;规划模块在收到制动指令后,因轨迹重规划需要额外时间;控制模块最终执行时,车辆与前车距离已不足安全阈值。针对该问题,团队在场景库中新增了“逆光隧道出口”场景,并设定了跨模块性能指标:从感知检测到前车刹车灯亮起,到控制模块输出制动压力,总延迟必须小于500ms。通过优化感知的曝光控制策略、决策的置信度阈值、规划的快速重规划通道,最终将系统总延迟降低至420ms。该案例说明,场景不仅是测试输入,更是驱动跨模块协同优化的“标尺”。

常见误区或总结复盘

  • 误区一:将场景库视为静态资产,一次构建永久使用。实际上,场景库需要根据测试反馈持续迭代,新增真实路采中发现的边缘案例。
  • 误区二:只关注单模块性能指标,忽略跨模块的端到端延迟和误差累积。例如,感知的微小定位误差经过决策、规划放大后,可能导致控制模块的跟踪偏差超限。
  • 复盘要点:场景建模的最终目标是验证“系统级”行为,而非“模块级”功能。每个场景都应定义明确的系统级通过标准(如“车辆安全停车且乘员舒适度评分大于80分”),而非仅看模块输出是否正常。
经验总结:在自动驾驶系统开发中,场景是连接“模块功能”与“系统能力”的桥梁。建议团队建立“场景-模块-指标”的三维矩阵,确保每个关键场景都能追溯到具体的模块性能指标,每个模块的边界条件都有对应的场景覆盖。这种结构化方法能显著提升测试效率和问题定位速度。