自动驾驶测试体系
1. 开篇介绍
自动驾驶系统的测试与验证是决定车辆能否安全上路的关键关卡。与传统软件系统不同,自动驾驶系统直接影响人身安全,因此对测试的完备性要求极为严苛。行业中广为流传的一句话是:"测不尽的长尾场景"——即便经过数百万公里的道路测试,仍然可能在现实中遭遇从未见过的罕见场景。
这一挑战的核心在于操作设计域(ODD,Operational Design Domain)的无限性。现实世界的交通场景由天气、光照、道路结构、交通参与者行为等数十个维度共同构成,其排列组合几乎无穷无尽。研究表明,若仅依靠传统道路测试验证自动驾驶系统的安全性,需要行驶约数百亿公里才能在统计意义上达到与人类驾驶相当的置信度。
正因如此,现代自动驾驶测试体系采用多层次、多手段的组合策略,将仿真测试、台架测试与实车测试有机结合,力求在有限资源下最大化测试覆盖度。
2. 测试层次体系(V字形模型)
自动驾驶软件开发普遍遵循V字形开发模型,将系统开发与系统验证对应起来,形成从需求到实现、再从实现回到需求验证的完整闭环。
需求定义 验收测试
\ /
系统设计 系统测试
\ /
子系统设计 集成测试
\ /
模块设计 单元测试
\ /
编码实现
2.1 单元测试(Unit Test)
单元测试针对单个算法模块进行验证,是粒度最细的测试层级。
- 测试对象:感知算法单模块、规划算法单函数、控制器单一功能
- 测试方法:输入边界值测试、等价类划分、白盒代码覆盖
- 自动化框架:Google Test(C++)、pytest(Python)
- 目标:行覆盖率(Line Coverage)≥ 90%,分支覆盖率(Branch Coverage)≥ 80%
- 特点:执行速度快,便于持续集成(CI)流水线集成
2.2 集成测试(Integration Test)
集成测试验证模块间接口的正确性,关注数据流在模块边界处的传递是否符合协议约定。
- 测试对象:感知-融合接口、规划-控制接口、通信中间件消息格式
- 常见问题:时间戳对齐、坐标系转换错误、消息丢失与乱序
- 测试工具:ROS 2 内置测试框架、Apollo Cyber RT 消息录放
2.3 系统测试(System Test)
系统测试在完整软件栈上运行,通常在软件在环(SIL)或硬件在环(HIL)环境中执行。
- 测试对象:端到端自动驾驶流水线
- 测试场景:预定义的功能测试场景集(Test Suite)
- 验证内容:系统整体功能、性能指标、故障模式与恢复行为
2.4 验收测试(Acceptance Test)
验收测试是最高层级的测试,在整车级别进行,通常包括封闭场地测试和开放道路测试。
- 测试对象:搭载完整硬件与软件的量产或原型车辆
- 参与方:OEM质量团队、第三方认证机构、监管机构
- 依据标准:ISO 26262、UN ECE R157、各地路测法规
3. 软件在环(SIL,Software-In-the-Loop)
软件在环测试是指仅运行软件、不涉及任何真实硬件的测试模式。所有传感器数据来自仿真引擎或历史数据集,执行器指令被虚拟消耗而不驱动真实电机。
3.1 离线数据集回放(Offline Data Replay)
将真实采集的传感器数据(点云、图像、IMU、GNSS等)按时间顺序回放给软件栈,观察软件输出是否符合预期。
- 优点:场景真实,数据获取成本低于实车测试
- 缺点:闭环问题——软件输出无法影响场景演化,难以测试控制闭环行为
- 常用工具:ROS 2 rosbag、Apollo Cyber RT record/play
3.2 闭环仿真
与回放不同,闭环仿真中软件输出的控制指令被仿真引擎接收,并驱动虚拟车辆运动,实现真正的感知-规划-控制闭环。
主要工具:
| 工具 | 特点 |
|---|---|
| CARLA | 开源,基于虚幻引擎4/5,支持Python API,传感器模型丰富 |
| Apollo仿真平台 | 与百度Apollo深度集成,支持场景编辑与批量测试 |
| LGSVL Simulator | LG开源仿真器,支持ROS/Cyber RT接口 |
| 自定义回放工具 | 企业内部开发,针对特定数据格式和接口定制 |
3.3 优势与局限
优势: - 执行速度快,可远超实时运行(加速比可达100x以上) - 成本极低,无需硬件消耗 - 结果可完全重复,便于回归测试 - 易于批量并行化,支持云端大规模测试
局限: - 仿真与现实存在仿真-现实差距(Sim-to-Real Gap),传感器模型不够精确 - 无法完整模拟硬件时序和计算延迟 - 需要维护仿真场景库,人力投入持续
4. 模型在环(MIL,Model-In-the-Loop)
模型在环测试主要应用于控制算法开发阶段,以MATLAB/Simulink为代表的模型级仿真环境为核心平台。
4.1 基本原理
在MIL阶段,开发者使用Simulink框架搭建算法模型(如PID控制器、MPC控制器、状态机),并在同一仿真环境中搭建被控对象模型(如车辆动力学模型)。通过运行仿真,验证控制算法在各种工况下的响应特性。
4.2 应用场景
- 横向控制算法:纯追踪(Pure Pursuit)、Stanley控制器、MPC横向控制
- 纵向控制算法:跟车ACC控制、停车精度验证
- 故障注入测试:传感器失效、执行器饱和、通信延迟的影响分析
4.3 与Simulink Coder联合仿真
MIL完成验证后,利用Simulink Coder自动生成C/C++代码,该代码可直接部署到嵌入式控制器(ECU)。生成代码与原始Simulink模型的行为一致性验证,即为SIL阶段的核心工作之一。
Simulink模型 --> MIL仿真验证 --> 代码生成 --> SIL验证 --> HIL验证 --> 整车测试
5. 硬件在环(HIL,Hardware-In-the-Loop)
硬件在环测试将真实的电子控制单元(ECU)接入仿真环境,ECU通过真实总线(CAN/LIN/以太网)与HIL设备交互,HIL设备实时模拟传感器信号和车辆动力学响应。
5.1 实时性要求
HIL系统的核心特征是严格的实时性:
- 调度抖动(Scheduling Jitter)需控制在 <1 ms
- 通常运行于实时操作系统(RTOS)如QNX、VxWorks或Linux PREEMPT_RT
- 仿真步长典型值:1 ms(动力学)或0.1 ms(电气系统)
5.2 主流HIL平台
| 平台 | 厂商 | 特点 |
|---|---|---|
| dSPACE SCALEXIO | dSPACE | 模块化,支持多核实时处理,汽车行业标准 |
| ETAS LABCAR | ETAS(博世子公司) | 与博世生态集成良好,支持AUTOSAR |
| NI VeriStand | 美国国家仪器(NI) | 基于NI硬件,LabVIEW生态 |
| Vector CANoe HIL | Vector | 总线仿真能力强,CAN/LIN/以太网 |
5.3 传感器注入(Sensor Injection)
传感器注入是HIL测试的重要技术,指向ECU的传感器接口注入仿真生成的传感器数据,使ECU"误以为"正在接收真实传感器信号。
- 雷达注入:通过RF信号发射器模拟毫米波雷达回波
- 摄像头注入:通过视频信号发生器向摄像头ISP注入仿真图像
- GNSS注入:通过GNSS信号模拟器生成卫星导航信号
- 总线注入:通过CAN/以太网直接注入解析后的感知目标数据
5.4 主要应用场景
- 线控底盘(By-Wire)测试:线控转向、线控制动的控制逻辑验证
- 域控制器(Domain Controller)测试:整合多传感器融合的域控ECU验证
- 功能安全(Functional Safety)测试:故障注入、安全机制触发、降级模式验证
- AUTOSAR栈验证:基础软件层与应用层集成测试
6. 道路测试(Road Testing)
道路测试是最接近真实使用场景的测试手段,分为封闭场地测试和开放道路测试两大类。
6.1 封闭场地测试(Test Track)
在专用测试场地进行,场景由测试团队预先设计,可精确重复执行。
典型场景类型: - 车道保持与变道 - 环岛通行 - 紧急制动(AEB触发) - 非结构化道路行驶 - 各类天气模拟(人工降雨/洒水)
优点: 安全可控,场景参数可精确记录,结果可重复 代表设施: 中汽研天津汽车测试场、上海国际汽车城、广州智能网联汽车测试基地
6.2 开放道路测试(Open Road Testing)
在真实公开道路上行驶,面对真实交通参与者和不可预测的场景。
主要挑战: - 场景不可预测,无法精确重复 - 安全风险高,需严格安全员配置 - 受地方法规约束,需持有路测牌照
6.3 安全员配置(Safety Configuration)
开放道路测试通常要求车内配备:
- 安全驾驶员(Safety Driver):坐于主驾,随时可接管车辆
- 安全监控员(Safety Monitor):坐于副驾或后排,监控系统状态与周边环境
- 远程监控中心:实时接收车辆状态数据,可远程紧急介入
6.4 数据采集策略
| 采集模式 | 触发条件 | 存储策略 |
|---|---|---|
| 持续记录 | 测试开始即全程记录 | 全量存储,数据量大 |
| 触发记录 | 接管事件、异常检测、特定场景标签 | 按事件存储,效率高 |
| 环形缓冲 | 结合触发,保留触发前N秒数据 | 平衡存储效率与完整性 |
6.5 中国路测牌照体系
中国各地对智能网联汽车开放道路测试制定了专项法规:
| 城市 | 法规文件 | 特点 |
|---|---|---|
| 北京 | 《北京市智能网联汽车政策先行区道路测试管理实施细则》 | 全国首批,要求最严格 |
| 上海 | 《上海市智能网联汽车测试与应用管理办法》 | 允许无人化测试,支持商业化运营 |
| 广州 | 《广州市智能网联汽车道路测试管理规范(试行)》 | 支持L3级自动驾驶测试 |
| 深圳 | 《深圳经济特区智能网联汽车管理条例》 | 全国首部地方性法规,明确责任认定 |
申请流程通常包括:资质审核 → 封闭场地测试报告 → 专家评审 → 牌照颁发 → 定期续签。
7. 基于场景的测试(Scenario-Based Testing)
场景化测试以形式化场景描述为核心,系统性地覆盖ODD空间,是业界公认的最有潜力解决长尾问题的方法论之一。
7.1 场景定义标准
OpenSCENARIO(ASAM标准):定义动态场景中各参与者的行为序列,使用XML/DSL格式 OpenDRIVE(ASAM标准):定义静态道路网络结构,包括车道、路口、坡度等信息
两者配合使用,可完整描述"在什么样的路上发生什么样的事"。
7.2 场景分类体系
参考德国联邦公路研究所(BASt)及ISO 34501提出的三级分类:
功能场景(Functional Scenario)
↓ 参数化
逻辑场景(Logical Scenario)
↓ 参数赋值
具体场景(Concrete Scenario)
- 功能场景:自然语言描述的场景类别,如"前车突然制动"
- 逻辑场景:功能场景的参数化表达,如"前车以 \(a \in [-8, -3]\ \text{m/s}^2\) 制动,初始车速 \(v \in [60, 120]\ \text{km/h}\)"
- 具体场景:参数取定具体值的可执行场景,如"\(a = -6\ \text{m/s}^2\),\(v = 80\ \text{km/h}\)"
7.3 覆盖率度量(Coverage Metric)
衡量测试完备性的关键指标是ODD空间覆盖度:
- 参数空间采样率(已测具体场景数 / 逻辑场景参数空间体积)
- 场景类别覆盖率(已覆盖功能场景类别 / 总功能场景类别数)
- 边界条件覆盖率(系统性能边界附近场景的覆盖情况)
7.4 关键场景识别(Critical Scenario Mining)
从海量数据中挖掘对系统性能影响最大的场景:
- 数据驱动挖掘:分析历史路测数据,提取接管事件附近的场景特征
- 对抗生成:使用优化算法或深度学习模型主动生成使系统失效的场景
- 专家知识:基于事故数据库(如德国GIDAS、中国交通事故数据库)提炼典型危险场景
7.5 ASAM OpenSCENARIO 2.0标准
相较于1.x版本,OpenSCENARIO 2.0引入了场景描述语言(SCENIC/OSC2 DSL),支持:
- 参数化场景的直接表达(无需枚举具体场景)
- 约束求解与场景实例化
- 与OpenDRIVE的深度集成
- 跨仿真平台的可移植性
8. 加速仿真测试
8.1 传统验证的局限
RAND公司的研究表明,要在统计意义上证明自动驾驶系统的安全性优于人类驾驶,需要行驶约275亿英里,按目前的路测规模需要数百年。这使得纯道路测试的验证路径不可行。
8.2 重要性采样(Importance Sampling)
重要性采样通过改变场景的采样分布,使测试集中于高风险、高价值的场景,从而在相同的测试次数下获得更高的统计置信度。
- 原理:对系统失效概率高的参数区域进行过采样,测试结果通过权重修正还原真实概率
- 效率提升:相比均匀采样可提升1000倍以上的统计效率
- 代表论文:Zhao等人(2016)在密歇根大学的研究
8.3 对抗场景生成(Adversarial Scenario Generation)
利用优化算法或强化学习,自动搜索使被测系统(SUT)失效的场景参数组合。
常用方法: - 基于梯度的优化:若系统可微分,直接对参数求梯度 - 进化算法:遗传算法、粒子群算法搜索参数空间 - 强化学习:训练对抗Agent专门生成使SUT失效的场景
8.4 PASTA方法
PASTA(Probability-Aware Scenario-based Testing Approach)是一种将场景概率模型与覆盖率指标相结合的系统性测试方法:
- 建立场景参数的概率模型(基于自然驾驶数据)
- 使用重要性采样生成测试场景集
- 运行仿真并收集系统响应
- 以加权统计量估计真实风险指标
8.5 工业级实践:Waymo Carcraft
Waymo的内部仿真平台Carcraft是业界加速仿真的标杆:
- 每年完成相当于 100亿英里(约160亿公里)的虚拟行驶里程
- 运行数万个仿真实例并行执行
- 将真实路测遭遇的场景自动注入仿真库,形成持续扩充的场景知识库
- 结合对抗测试自动发现系统薄弱点
9. 测试指标体系
全面的测试评估需要覆盖安全性、舒适性、效率和系统可靠性多个维度。
9.1 安全性指标
| 指标 | 英文全称 | 说明 |
|---|---|---|
| MPI | Miles Per Intervention | 每次人工接管的行驶里程数,越大越好 |
| MRC率 | Minimum Risk Condition Rate | 触发最小风险条件(靠边停车)的频率 |
| 事故率 | Accident Rate | 每百万公里事故次数 |
| 碰撞率 | Collision Rate | 仿真中碰撞事件发生率 |
接管(Disengagement)分为两类: - 主动接管:安全员主动介入(认为系统行为不安全) - 系统触发接管:系统自检失败,主动请求接管
9.2 舒适性指标
- 加速度(Acceleration):纵向加速度通常要求 \(|a| < 3\ \text{m/s}^2\),横向加速度 \(|a_{lat}| < 2\ \text{m/s}^2\)
- 急动度(Jerk):加速度的变化率,表征驾乘冲击感,要求 \(|j| < 5\ \text{m/s}^3\)
- 转向速率(Steering Rate):方向盘转速,影响晕车感受
9.3 效率指标
- 平均行程时间(Average Trip Time):与人类驾驶或导航预计时间对比
- 绕行率(Detour Rate):实际行驶距离与最优路径距离之比
- 平均行驶速度:反映系统是否过于保守
9.4 感知性能指标
| 指标 | 适用任务 | 说明 |
|---|---|---|
| mAP | 目标检测 | 各类别平均精度均值 |
| mIoU | 语义分割 | 各类别交并比均值 |
| 召回率 | 目标检测 | 漏检率的反指标,安全关键 |
| 位置误差 | 定位 | 厘米级(RTK参考)或分米级 |
在安全关键感知任务中,召回率(Recall)的优先级高于精确率(Precision),宁可误报,不可漏报。
9.5 系统可用性指标
- MTBF(Mean Time Between Failures):平均无故障时间,反映系统可靠性
- MTTR(Mean Time To Recovery):平均恢复时间,反映系统健壮性
- 系统可用性(Availability):\(A = \text{MTBF} / (\text{MTBF} + \text{MTTR})\)
10. 型式认证与准入
10.1 ISO 26262 功能安全认证
ISO 26262是汽车电气/电子系统功能安全的国际标准,核心概念包括:
- ASIL(汽车安全完整性等级):从ASIL A到ASIL D,D级要求最严
- 安全目标(Safety Goal):系统级危险分析与风险评估(HARA)结论
- 功能安全概念:如何通过冗余、监控、降级策略满足安全目标
- 认证流程:需求 → 设计 → 实现 → 验证 → 确认 → 功能安全评估
自动驾驶相关功能通常需达到 ASIL C或ASIL D,需配备独立的安全监控处理器。
10.2 UN ECE R157 ALKS认证
联合国欧洲经济委员会第157号法规规范了自动车道保持系统(ALKS,Automated Lane Keeping System)的认证要求:
- 适用范围:高速公路环境下的L3级自动驾驶
- 速度限制:最高 130 km/h(部分成员国限制为 60 km/h)
- 测试要求:规定了具体的测试场景矩阵(切入、前车制动、行人闯入等)
- 数据记录:要求配备事件数据记录仪(EDR)
10.3 中国智能网联汽车准入政策
2023年,工业和信息化部等四部门联合发布《关于开展智能网联汽车准入和上路通行试点工作的通知》,标志着中国L3/L4级自动驾驶商业化运营正式起步。
主要要求: - 申请企业需通过汽车整车、功能安全、预期功能安全等多项测试认证 - 搭载驾驶自动化系统的车辆需通过工信部委托机构的准入测试 - 明确了车辆事故责任认定:自动驾驶模式下由车辆生产企业承担依法应承担的赔偿责任 - 试点城市:北京、上海、广州、深圳、长沙、无锡等
10.4 SOTIF验证(ISO PAS 21448)
SOTIF(Safety Of The Intended Functionality,预期功能安全)关注系统在无故障状态下因功能局限性(如感知误差、ODD边界外场景)导致的危险。
SOTIF验证框架将场景空间划分为四个区域:
已知场景 未知场景
┌────────────────┬─────────────────┐
安全行为 │ 区域1:已知安全 │ 区域3:未知安全 │
├────────────────┼─────────────────┤
不安全行为 │ 区域2:已知危险 │ 区域4:未知危险 │
└────────────────┴─────────────────┘
SOTIF验证的目标是:充分减小区域2(通过设计改进),并尽量将区域4转化为区域1或2(通过充分测试暴露未知危险场景)。
验证活动包括:功能不足分析、触发条件识别、场景覆盖率证明、现场监控计划。
11. 参考资料
-
Kalra, N., & Paddock, S. M. (2016). Driving to Safety: How Many Miles of Driving Would It Take to Demonstrate Autonomous Vehicle Reliability? RAND Corporation. https://doi.org/10.7249/RR1478
-
Menzel, T., Bagschik, G., & Maurer, M. (2018). Scenarios for Development, Test and Validation of Automated Vehicles. IEEE Intelligent Vehicles Symposium (IV).
-
ASAM e.V. (2021). ASAM OpenSCENARIO 2.0 User Guide. Association for Standardisation of Automation and Measuring Systems. https://www.asam.net/standards/detail/openscenario/
-
ISO 26262:2018. Road vehicles — Functional safety. International Organization for Standardization. https://www.iso.org/standard/68383.html
-
工业和信息化部等四部门 (2023). 《关于开展智能网联汽车准入和上路通行试点工作的通知》. 中国工业和信息化部官网. https://www.miit.gov.cn/