2. 自动驾驶仿真基础

自动驾驶仿真不是“把车放进游戏引擎里跑一圈”这么简单。它是一套从模型到硬件、从软件到整车、从单传感器到交通流的验证体系。理解这套体系,关键在于三个维度:仿真分级决定“测什么”,在环测试决定“在哪测”,场景库与模型决定“测得真不真”。

一、仿真分级:从纯软件到整车在环

行业通常把仿真分为五个层级,层级越高,接入的真实部件越多,置信度越高,但成本和搭建难度也越大。

层级被测对象接入真实部件典型用途
MIL控制算法模型无算法逻辑快速迭代
SIL编译后的目标代码无(PC 运行)代码级功能验证
PIL目标处理器ECU 芯片实时性与资源验证
HIL真实 ECUECU + IO 板卡硬件接口与故障注入
VIL整车或台架整车、传感器、执行器系统级闭环验证

MIL(Model-in-the-Loop)阶段,控制器和被控对象都是 Simulink 等环境中的模型,适合验证算法逻辑是否正确。SIL(Software-in-the-Loop)把控制算法生成 C/C++ 代码后在 PC 上运行,重点检查代码实现与模型是否一致。PIL(Processor-in-the-Loop)进一步把代码烧录到目标芯片,验证浮点、中断、时序等真实约束。HIL(Hardware-in-the-Loop)接入真实 ECU,用实时仿真机模拟传感器和执行器信号,是量产前最关键的硬件验证环节。VIL(Vehicle-in-the-Loop)则把真实车辆或底盘台架接入虚拟环境,验证整车级行为。

选择层级的经验法则:算法早期用 MIL/SIL 快速试错;涉及硬件接口、通信、故障诊断时上 HIL;涉及整车动力学、传感器安装位置、多系统耦合时用 VIL。

二、场景库:仿真的“题库”

场景库决定了仿真能覆盖多少真实风险。一个完整的场景通常包含道路、交通参与者、环境条件和自车任务四要素。按来源可分为:

  • 自然驾驶场景:从真实路采数据中提取,最贴近实际交通。
  • 事故场景:来自碰撞数据库,用于验证安全边界。
  • 参数化场景:对关键参数(车速、距离、角度)做组合生成。
  • 对抗场景:主动构造边缘案例,如加塞、鬼探头、施工改道。

场景库不是越多越好,而是要有覆盖度和可追溯性。每个场景应标注来源、参数范围、预期行为和评价指标,否则仿真结果无法用于安全论证。

三、传感器模型与车辆动力学基础

传感器模型决定感知输入的真实度。摄像头模型通常包含内参、外参、畸变、曝光和噪声;激光雷达模型包含线束、扫描模式、反射率和天气衰减;毫米波雷达模型关注距离、速度、角度和多径效应。仿真中常见的误区是只做理想几何投影,忽略噪声和失效模式,导致感知算法在仿真中表现过好。

车辆动力学模型则决定车辆对控制指令的响应。常用模型从低到高包括:运动学自行车模型、动力学自行车模型、多体动力学模型。低速泊车场景可用运动学模型,高速紧急避障则需要考虑轮胎侧偏、载荷转移和悬架特性。

# 典型动力学参数示例
m   = 1500    # 整车质量 kg
Iz  = 2500    # 横摆转动惯量 kg·m²
lf  = 1.2     # 前轴到质心距离 m
lr  = 1.5     # 后轴到质心距离 m
Cf  = 80000   # 前轮侧偏刚度 N/rad
Cr  = 90000   # 后轮侧偏刚度 N/rad

四、常见工具链与闭环关系

工具链通常分为场景编辑、仿真运行、车辆动力学、传感器仿真和测试管理五类。CarMaker、CarSim 擅长车辆动力学;PreScan、VTD 擅长传感器与场景;CARLA、LGSVL 偏开源和感知算法;dSPACE、NI 提供 HIL 实时平台。实际项目中往往需要多工具联合,通过 FMI/FMU 或 ROS/ROS2 接口打通。

自动驾驶仿真在环测试闭环与工具链 场景库 自然驾驶 / 事故 / 参数化 对抗 / 边缘案例 传感器模型 摄像头 / 激光雷达 毫米波雷达 / 噪声 车辆动力学 运动学 / 动力学 轮胎 / 悬架 / 载荷 仿真引擎 场景调度 / 时间同步 物理计算 / 渲染 FMI / ROS2 接口 实时 / 非实时 数据记录与回放 被测系统 MIL / SIL 算法 PIL / HIL ECU VIL 整车 / 台架 感知 / 规划 / 控制 诊断与故障注入 评价结果反馈:场景调整 / 参数优化 / 回归测试

五、常见误区与复盘

误区一:仿真通过等于安全。仿真只能证明“在给定场景和模型下通过”,不能替代真实道路测试。模型误差、场景遗漏和传感器理想化都会导致仿真结果偏乐观。

误区二:场景越多越好。没有覆盖度分析和评价指标的场景库只是数据堆积。应按 ODD 边界、风险等级和功能模块组织场景。

误区三:忽略实时性。HIL 和 VIL 对时间步长、通信延迟和计算资源有严格要求,非实时仿真中表现良好的算法可能在实时环境中失效。

复盘一个典型项目:某低速泊车算法在 MIL 中成功率 99%,上 HIL 后降到 82%。排查发现,HIL 中超声波传感器模型加入了真实回波延迟和盲区噪声,而 MIL 中使用了理想距离值。这说明传感器模型的真实度直接决定在环测试的有效性。后续团队在 SIL 阶段就引入噪声模型,问题提前暴露,节省了大量台架时间。

总结来看,仿真分级回答“测什么”,场景库回答“测哪些”,传感器与动力学模型回答“测得像不像”,工具链回答“怎么测”。四者构成闭环,缺一不可。