1. 课程导入
自动泊车功能从“能停进去”到“每次都停得稳、停得安全”,中间隔着的不是某一个算法,而是一整套可复现、可度量、可持续演进的验证体系。泊车场景仿真与回归测试工程,正是把真实停车场中难以穷举、难以复现、代价高昂的边界工况,转化为可批量执行、可自动判定、可追溯版本的工程能力。本课程的目标,是让学习者建立从场景建模、仿真执行、指标判定到回归闭环的完整工程视角,而不是停留在“会点一个仿真按钮”的工具操作层面。
学习目标:从会用到会建体系
完成本课程后,学习者应能独立完成以下工作:其一,依据泊车功能定义与ODD(运行设计域),拆解出可执行的场景要素,包括车位类型、障碍物、车辆初始位姿、动态交通参与者与天气光照条件;其二,使用场景描述语言或仿真工具搭建参数化场景,并保证同一场景可被不同版本算法重复调用;其三,设计回归测试集与判定准则,使“通过/失败”不依赖人工目测,而由碰撞、压线、揉库次数、横向误差、舒适度等量化指标自动裁决;其四,建立缺陷回溯与场景增补机制,让每一次实车或仿真暴露的问题都能沉淀为新的回归用例。
核心价值:为什么泊车必须做仿真与回归
泊车工况具有典型的“低速、近距、高碰撞风险”特征。真实停车场中,车位线磨损、邻车压线、立柱遮挡、行人突然穿行、地面反光等条件组合极多,实车测试成本高且危险。仿真与回归测试的价值体现在四个层面:安全前置,把碰撞类风险在虚拟环境中提前暴露;效率提升,一次回归可并行执行数百条场景,分钟级完成;版本可控,每次算法迭代都能对比历史基线,防止“修好一个、弄坏三个”;证据可追溯,为功能安全与预期功能安全论证提供结构化测试证据。
下图给出本课程的整体知识框架与实战路线:从场景输入到仿真执行,再到判定与回归闭环,最终反哺场景库与算法迭代。
方法流程:一条场景从诞生到回归的完整链路
工程实践中,一条泊车场景的生命周期通常遵循以下流程。理解这条链路,比记住某个工具菜单更重要。
- 需求与风险输入:从功能定义、ODD、历史实车问题中提取待验证风险点,例如“窄车位邻车压线时的避让能力”。
- 场景要素拆解:把风险点翻译为可参数化要素,如车位宽度、邻车偏移量、初始航向角、障碍物类型。
- 场景编码与实例化:用场景描述文件或脚本生成具体实例,保证参数可枚举、可随机、可复现。
- 仿真执行:接入被测算法,运行车辆动力学与感知输入,记录轨迹、控制量与事件日志。
- 自动判定:依据碰撞、压线、揉库次数、终止位姿误差等指标输出通过/失败及失败原因。
- 回归与基线对比:将本次结果与历史基线比对,识别新增失败与性能退化。
- 复盘与场景增补:对失败场景归因,补充边界变体,纳入下一轮回归集。
下面是一段典型的场景参数化配置片段,用于描述一个“邻车压线”的平行车位场景。参数化是回归可复现的前提。
scene: parallel_parking_adjacent_vehicle
params:
slot_length: 5.6 # 车位长度(m)
slot_width: 2.4 # 车位宽度(m)
adjacent_offset: 0.35 # 邻车向车位内偏移(m)
ego_init_pose: [x: 0.0, y: 0.0, yaw: 0.0]
obstacle: {type: pillar, pos: [3.2, 1.8]}
weather: clear
criteria:
collision: false
line_cross: false
max_shuffle_count: 3
final_lateral_error: <= 0.15
案例场景:一个“看似简单”的失败如何变成回归资产
某项目在实车中发现:当目标车位右侧邻车压线约0.3米时,泊车算法会反复揉库,最终虽然停入但耗时超过40秒。若只靠实车复现,需要找到同样压线的邻车,成本极高。工程做法是:将该工况参数化为“邻车偏移量0.2/0.3/0.4米”三档,叠加“车位长度5.4/5.6/5.8米”组合,生成9条仿真用例。运行后发现,偏移0.3米且车位5.4米时揉库次数达到5次,超出准则。算法团队据此调整了路径规划中的安全余量策略,再次回归后揉库次数降至2次。这条场景随后被固化进回归集,成为后续版本的必测项。
常见误区与复盘要点
| 误区 | 表现 | 纠正方向 |
|---|---|---|
| 只追求场景数量 | 跑了几千条,但都是相似工况 | 按风险维度做覆盖分析,优先补边界与组合工况 |
| 判定靠人工看回放 | 回归结果无法自动汇总,效率低 | 把碰撞、压线、误差等写成可执行判定准则 |
| 场景不可复现 | 同一用例两次结果不一致 | 固定随机种子,参数化描述,版本化管理场景文件 |
| 回归无基线 | 不知道本次是变好还是变坏 | 建立版本基线,记录通过率与关键指标趋势 |
| 失败场景不回流 | 同样的问题反复出现 | 建立缺陷到场景的增补机制,纳入持续回归 |
本课程后续将沿着“场景建模—仿真执行—判定度量—回归闭环”这条主线逐层展开,每一节都围绕可落地的工程动作组织。学习时建议始终带着三个问题:这条场景对应什么风险?它的通过准则是什么?失败后如何回流到场景库?把这三个问题贯穿始终,就能从工具使用者成长为验证体系的设计者。