4. 测试场景设计

Robotaxi 的道路测试与运营验证,本质上不是“跑够多少公里”的问题,而是“跑过多少种有意义的情形”。测试场景设计就是把无限的真实世界,压缩成有限、可复现、可度量、可追溯的场景集合,让每一公里测试都指向明确的验证目标。本节围绕场景分类、场景库构建、关键场景提取、边缘案例生成与覆盖度评估五个环节展开。

一、核心原理:从真实世界到可执行场景

场景设计的基本逻辑是“抽象—参数化—实例化”。真实交通事件先被抽象为场景要素,再被参数化为可调变量,最后实例化为可执行的测试用例。业界常用三层描述:

  • 功能场景:用自然语言描述,如“无保护左转时对向有直行车辆”。
  • 逻辑场景:给出参数范围,如自车速度 20~40 km/h、对向车距 30~80 m、路面附着系数 0.4~0.9。
  • 具体场景:参数取定值,可直接注入仿真或实车测试,如自车 30 km/h、对向车距 45 m、附着系数 0.6。

场景分类通常按三个维度切分:道路维度(路口、匝道、隧道、无标线区域)、交通参与者维度(机动车、行人、骑行者、动物、施工人员)、环境与动态维度(天气、光照、遮挡、通信质量、交通流密度)。分类的价值在于保证场景库不出现“同类扎堆、异类缺失”。

二、方法流程:场景库构建与关键场景提取

场景库构建遵循“来源—清洗—标注—入库—版本管理”的链路。数据来源包括自然驾驶数据、事故数据、路测回放、仿真生成和专家经验。清洗阶段要去除重复、无效和不可复现片段;标注阶段为每个场景打上道路类型、参与者、冲突类型、风险等级等标签;入库后必须做版本管理,因为场景库一旦被用于回归测试,任何修改都会影响历史结论的可比性。

关键场景提取的核心是“风险—频次”二维筛选。高频低风险场景用于验证基本能力,低频高风险场景用于验证安全边界。常用指标包括碰撞时间 TTC、后侵入时间 PET、减速度需求、冲突点数量等。工程上通常先按 TTC 阈值粗筛,再用聚类去冗余,最后人工复核。

# 关键场景筛选伪代码
for scene in scene_library:
    ttc_min = min_ttc(scene)
    pet_min = min_pet(scene)
    risk = risk_score(ttc_min, pet_min, scene.weather, scene.occlusion)
    if risk >= RISK_TH and scene.frequency >= FREQ_TH:
        key_scenes.append(scene)
key_scenes = cluster_dedup(key_scenes, eps=0.15)

三、边缘案例生成:从参数扰动到对抗构造

边缘案例不是“罕见案例”的同义词,而是“使系统接近能力边界”的案例。生成方法主要有三类:

  1. 参数扰动:在逻辑场景参数空间内做拉丁超立方或贝叶斯优化采样,寻找失败率高的参数组合。
  2. 对抗生成:用可微分仿真或强化学习,让其他交通参与者主动制造冲突,例如“鬼探头”行人从遮挡后突然出现。
  3. 故障注入:注入传感器遮挡、GPS 漂移、通信延迟、制动响应下降等,验证系统降级策略。
边缘案例生成必须设置安全护栏。仿真中可放开参数,实车测试必须限定在封闭场地或低风险路段,并配置安全员与远程急停。切勿把仿真中“跑通”的极端参数直接搬到开放道路。

四、场景覆盖度评估与复盘

覆盖度评估回答两个问题:场景库是否覆盖了设计运行域 ODD 的关键维度?测试执行是否覆盖了场景库?常用做法是建立覆盖矩阵,行是场景类别,列是 ODD 要素,单元格填入用例数量与执行状态。覆盖度不足的单元格就是下一轮测试的重点。

评估维度指标示例达标参考
道路覆盖路口/匝道/隧道/无标线占比与 ODD 声明一致
参与者覆盖行人、骑行者、大型车、施工人员每类至少 1 组关键场景
风险覆盖TTC < 1.5 s 场景数量关键场景占比 ≥ 20%
环境覆盖雨、雾、逆光、夜间、遮挡恶劣条件单独统计
执行覆盖已执行用例 / 场景库总数回归集 100% 执行
覆盖度不是越高越好,而是“与 ODD 声明匹配”。若 ODD 不含夜间无路灯路段,就不必强行堆砌该类场景;但若 ODD 声明包含,则必须有对应用例和通过证据。

五、常见误区与复盘要点

第一个误区是“场景库越大越好”。未去冗余的场景库会导致回归测试时间失控,且大量相似用例掩盖真实缺陷。第二个误区是“只关注失败场景”。通过场景同样重要,它们构成能力基线,缺少基线就无法判断新版本是否退化。第三个误区是“覆盖度用里程代替”。里程是执行量,不是覆盖度;一万公里直路巡航无法替代一次无保护左转。

复盘时应重点检查:关键场景是否被真正执行而非仅入库;边缘案例是否触发了预期降级;覆盖矩阵中空白单元格是否被记录并排期;场景库版本变更是否同步到回归集。只有把场景设计、执行、评估闭环起来,Robotaxi 的测试才具备工程可信度。

Robotaxi 测试场景设计闭环 场景分类 道路·参与者·环境 场景库构建 来源·清洗·标注·版本 关键场景提取 TTC·PET·聚类去冗余 边缘案例生成 扰动·对抗·故障注入 场景覆盖度评估矩阵 道路 × 参与者 × 风险 × 环境 × 执行状态 覆盖缺口 空白单元格 → 排期补测 未执行用例 → 回归集 通过基线 通过场景构成能力基线 用于版本退化对比 失败与降级 触发预期降级策略 记录并回灌场景库 失败场景回灌 → 场景库迭代