2. 自动驾驶系统基础
自动驾驶系统本质上是一个“感知-决策-执行”的闭环智能体,其核心由感知(Perception)、决策(Decision)、规划(Planning)和控制(Control)四大模块构成。理解这四大模块的功能边界、数据接口与协作机制,是进行场景建模与仿真测试的前提。场景并非孤立的数据包,而是贯穿所有模块的“上下文”——它既是感知的输入约束,也是决策与规划的逻辑边界,更是控制模块的物理极限校验基准。本章将系统拆解各模块的职责、数据流关系,并重点剖析场景在模块协同中的核心作用。
2.1 感知模块:从原始传感器数据到环境模型的构建
核心原理
感知模块负责将物理世界的原始信号转换为结构化、可计算的环境表征。其输入包括摄像头图像、激光雷达点云、毫米波雷达目标数据以及GPS/IMU定位信息。感知的最终输出并非简单的“检测到物体”,而是包含语义标签、空间位置、速度矢量、朝向角、尺寸以及历史轨迹的障碍物列表,同时还包括车道线几何、路沿边界、交通标志语义、可行驶区域栅格等静态环境要素。在L3级以上系统中,感知还需输出目标意图预测(如行人是否准备横穿),这通常由轨迹预测子模块完成。
感知模块内部通常分为三个层级:底层感知(信号处理与特征提取)、中层融合(多传感器时间/空间对齐与目标级融合)、高层语义(场景理解与态势评估)。其中,中层融合是决定系统鲁棒性的关键——摄像头在弱光下失效时,激光雷达和毫米波雷达需要无缝接管;反之,激光雷达在雨雾中衰减时,摄像头和毫米波需提供冗余。
判断方法或操作流程
在仿真测试中,评估感知模块性能不能只看“检测精度”,还需关注以下流程性指标:
- 数据同步性检查:各传感器时间戳偏差是否小于20ms,空间坐标系是否统一(通常以自车后轴中心为原点)。
- 目标生命周期管理:新目标如何创建、跟踪中如何关联、丢失后何时删除(通常设置2~3秒的保留窗口)。
- 感知范围边界:有效探测距离、FOV(视场角)盲区、遮挡条件下的退化模式。
- 输出延迟预算:从传感器采集到感知结果发布的总延迟,L3级系统通常要求小于100ms。
案例拆解:雨天十字路口感知失效分析
某L4级测试车辆在雨天通过无保护左转路口时,感知模块将路边积水反光误检为可行驶区域,导致车辆试图驶入对向车道。事后分析发现:摄像头图像中积水区域与天空反射形成高亮纹理,语义分割模型将其分类为“路面”,而激光雷达点云在积水表面产生镜面反射,点云密度骤降,无法提供有效修正。该案例暴露了多传感器置信度动态权重的缺失——在雨天场景中,应降低摄像头纹理特征的权重,提高毫米波雷达对静态障碍物的置信度。仿真测试中,需要构建包含“积水反光”“雨滴遮挡”“点云稀疏”的复合场景,并注入传感器退化参数,才能复现此类问题。
常见误区或总结复盘
- 误区一:认为感知精度越高系统越安全。实际上,感知的不确定性表达(协方差矩阵、置信度)比精度数值更重要,决策模块需要感知的不确定性来评估风险。
- 误区二:忽略感知延迟的累积效应。单帧延迟100ms看似可接受,但连续10帧的延迟抖动会导致决策模块基于过期信息做判断。
- 复盘要点:感知模块的测试必须覆盖“传感器部分失效”场景,如单目摄像头被泥浆遮挡、激光雷达某个扫描层故障等,验证系统能否优雅降级。
2.2 决策模块:行为选择与风险仲裁
核心原理
决策模块接收感知输出的环境模型,结合自车状态(速度、位置、航向)和路由信息(目的地、路径),输出驾驶行为指令,例如“保持当前车道跟车”“向左变道”“在停止线前停车”“通过交叉口”等。决策不是简单的规则匹配,而是在不确定性条件下进行风险-收益权衡的过程。其核心算法包括:有限状态机(FSM)、行为树(Behavior Tree)、马尔可夫决策过程(MDP)以及基于深度强化学习的端到端策略。
决策模块的关键挑战在于处理交互博弈——其他交通参与者(人类驾驶员、行人)的行为并非完全理性可预测。例如,当自车准备变道时,目标车道后方车辆可能加速或减速让行,决策模块需要预测这种交互并选择最优策略。场景中的交通流密度、参与者类型组合、道路优先级规则,都直接影响决策策略的选择。
判断方法或操作流程
在仿真环境中验证决策模块,需要关注以下判断流程:
- 场景语义解析:将场景中的交通规则(限速、禁停、让行标志)转化为决策模块可执行的约束条件。
- 风险度量定义:设定碰撞时间(TTC)、最小安全距离、加速度变化率等量化指标,作为决策优劣的客观评价。
- 行为合理性评估:不仅看是否安全,还要看是否符合人类驾驶习惯(如变道是否过于激进、跟车距离是否过远导致交通效率下降)。
- 边界条件测试:在“两难场景”中验证决策的鲁棒性,例如:左侧有连续实线、右侧有行人闯入、后方有高速来车时,如何选择。
案例拆解:无保护左转的决策博弈
在无保护左转场景中,自车必须在对向直行车流中寻找可穿越间隙。传统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)也逐渐成熟,但采样-优化因其可解释性和稳定性仍是工业界主流。
判断方法或操作流程
规划模块的仿真测试需关注以下流程性指标:
- 轨迹可行性:生成的轨迹是否满足车辆运动学(曲率连续、曲率变化率有界)和动力学(加速度、加加速度限制)约束。
- 碰撞安全性:轨迹与所有障碍物(包括动态障碍物的预测轨迹)之间的最小距离是否大于安全阈值(通常为0.3~0.5米)。
- 舒适性指标:横向加速度变化率(Jerk)是否小于2m/s³,纵向加加速度是否小于3m/s³。
- 实时性:规划周期是否在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)作为被控对象,而控制模块内部使用简化模型(如自行车模型)进行预测。这种“模型失配”是控制误差的主要来源,也是仿真测试需要重点覆盖的环节。
判断方法或操作流程
控制模块的仿真测试指标包括:
- 跟踪精度:横向偏差(通常要求小于0.2米)、纵向速度偏差(小于0.5m/s)、航向角偏差(小于2度)。
- 稳定性:在高速(120km/h)或低附着路面(冰雪)条件下,车辆是否出现振荡或发散。
- 执行器响应:转向执行器的延迟(通常小于50ms)、制动系统的压力建立时间(小于200ms)。
- 乘坐舒适性:车身横向加速度变化率是否超过人体舒适阈值(2m/s³)。
案例拆解:冰雪路面紧急避障的控制失效
某测试车辆在冰雪覆盖的测试场上进行紧急避障(麋鹿测试)时,控制模块输出的前轮转角指令在车辆上产生了严重的转向不足,车辆冲出预定轨迹。分析发现:控制模块内部的车辆模型假设附着系数为0.8,而实际冰雪路面附着系数仅为0.2。MPC预测模型认为车辆能够产生足够的侧向力,但实际轮胎已进入非线性饱和区。解决方案是:在控制模块中增加路面附着系数在线估计器,通过比较实际横摆角速度与模型预测值的残差,实时调整MPC中的轮胎刚度参数。仿真测试中,构建了附着系数从0.8到0.2渐变的路面场景,验证了改进后的控制模块在附着系数突变时仍能保持车辆稳定,横向偏差控制在0.35米以内。
常见误区或总结复盘
- 误区一:只测试控制模块在理想路面(高附着、平坦)上的性能,忽略低附着、坡道、颠簸路面的极端工况。
- 误区二:将控制模块与车辆动力学完全解耦。实际上,控制参数(如PID增益)必须针对不同车型进行标定,仿真测试中应使用参数化车辆模型来覆盖不同车型的响应特性。
- 复盘要点:控制测试场景应包含“执行器部分失效”场景,如制动单侧失效、转向助力减弱等,验证控制模块的容错能力。
2.5 场景在模块协同中的核心作用
核心原理
场景在自动驾驶系统中的作用可以概括为三个层次:输入约束层、逻辑触发层和验证基准层。在输入约束层,场景中的道路几何、交通参与者状态、天气条件直接决定了感知模块的输入数据分布和决策/规划模块的可行域。在逻辑触发层,场景中的特定事件(如前车急刹、行人闯入、施工改道)触发决策模块的状态迁移和规划模块的轨迹重规划。在验证基准层,场景库中的测试用例是评估系统整体性能的“考卷”,必须覆盖从常见工况到边缘用例的完整谱系。
从数据流角度看,场景数据并非一次性加载,而是持续动态更新的。高精地图提供静态场景(车道线、交通标志),实时感知提供动态场景(障碍物、临时施工),V2X通信提供远距离场景(前方拥堵、信号灯相位)。这三级场景数据在时间尺度和空间范围上互补,共同构成自动驾驶系统的“世界模型”。
判断方法或操作流程
在构建场景库时,需要遵循以下流程来确保场景对模块协同的有效覆盖:
- 场景要素分解:将场景拆解为静态要素(道路拓扑、交通设施)、动态要素(参与者轨迹、状态)、环境要素(天气、光照)、信息要素(交通规则、临时事件)。
- 模块相关性分析:针对每个场景要素,标注其影响哪些模块(如“路面附着系数”影响控制模块,“行人意图模糊”影响决策模块)。
- 协同场景构建:设计需要多个模块协同才能完成的场景,如“雨天夜间行人横穿高速”,同时考验感知(低光照+雨滴)、决策(紧急制动vs变道)、规划(避障轨迹)、控制(低附着制动)。
- 覆盖度评估:使用场景覆盖度矩阵,检查每个模块的边界条件是否被至少一个场景覆盖。
| 场景要素 | 感知模块 | 决策模块 | 规划模块 | 控制模块 |
|---|---|---|---|---|
| 道路曲率突变 | 车道线检测难度↑ | 速度决策需调整 | 轨迹曲率约束 | 横向控制增益需调整 |
| 行人突然横穿 | 目标跟踪与意图预测 | 紧急制动/避让决策 | 紧急轨迹重规划 | 高减速度执行 |
| 路面湿滑(μ=0.3) | 感知退化(水雾) | 降低速度阈值 | 限制最大加速度 | MPC模型参数调整 |
| 临时施工改道 | 锥桶/围挡检测 | 重新规划路径 | 局部轨迹绕行 | 精确跟踪新轨迹 |
案例拆解:场景驱动的模块协同调优
某自动驾驶公司在其测试车队中发现,车辆在通过“隧道出口+强逆光+前车急刹”的复合场景时,系统整体反应时间比预期慢了300ms。通过逐模块分析发现:感知模块在逆光条件下对前车刹车灯的检测置信度下降,导致目标跟踪延迟;决策模块因感知置信度低而推迟了紧急制动决策;规划模块在收到制动指令后,因轨迹重规划需要额外时间;控制模块最终执行时,车辆与前车距离已不足安全阈值。针对该问题,团队在场景库中新增了“逆光隧道出口”场景,并设定了跨模块性能指标:从感知检测到前车刹车灯亮起,到控制模块输出制动压力,总延迟必须小于500ms。通过优化感知的曝光控制策略、决策的置信度阈值、规划的快速重规划通道,最终将系统总延迟降低至420ms。该案例说明,场景不仅是测试输入,更是驱动跨模块协同优化的“标尺”。
常见误区或总结复盘
- 误区一:将场景库视为静态资产,一次构建永久使用。实际上,场景库需要根据测试反馈持续迭代,新增真实路采中发现的边缘案例。
- 误区二:只关注单模块性能指标,忽略跨模块的端到端延迟和误差累积。例如,感知的微小定位误差经过决策、规划放大后,可能导致控制模块的跟踪偏差超限。
- 复盘要点:场景建模的最终目标是验证“系统级”行为,而非“模块级”功能。每个场景都应定义明确的系统级通过标准(如“车辆安全停车且乘员舒适度评分大于80分”),而非仅看模块输出是否正常。