跳转到内容

驾驶场景分类——功能性、逻辑性与具体场景

高级辅助驾驶(ADAS)和自动驾驶(AD)系统的场景化测试依赖一套三层抽象体系,源自 PEGASUS 研究项目,现已成为 ADAS / AV 测试流水线的标准实践:

  1. 功能性场景 — 定性描述,以自然语言表达。
  2. 逻辑性场景 — 参数化描述,为各参数给定范围。
  3. 具体场景 — 完全实例化,每个参数固定为单一数值。

本文是对各层次含义的中立性介绍,说明它与 ODD 以及 OpenSCENARIO 等格式的关系,并阐明 drawtonomy 的定位。

功能性场景是对驾驶情境的定性自然语言描述。它指名了参与者、道路布局和机动动作,但不涉及具体数值。

示例:“在双车道高速公路上,左车道的一辆更快的车辆在超过主车后从右车道插入其前方。”

功能性场景存在于测试计划、设计评审文档、幻灯片、论文插图和安全论证文本中,是人类相互传达场景含义的方式。

逻辑性场景将功能性描述转化为带有参数范围的结构化形式。每个变量(初始速度、间距、碰撞时间 TTC、横向偏移、天气、道路曲率)被赋予一个定义域而非单一数值。

示例:“主车速度 ∈ [70, 130] km/h,切入车辆相对速度 ∈ [+10, +30] km/h,切入开始时的碰撞时间 TTC ∈ [1.5, 4.0] s,……”

逻辑性场景是测试活动中被采样、扫描或搜索的对象。面向此层次的工具和 DSL 包括 Scenicscenariogeneration(pyoscx / pyodrx)以及 OpenSCENARIO 2.0 / DSL

具体场景是某一个特定实例——所有参数固定为单一数值,可在仿真器或封闭测试场中直接执行。

示例:“主车速度 90 km/h,切入车辆相对速度 +20 km/h,切入开始时 TTC = 2.5 s,干燥沥青路面,……”

具体场景是 OpenSCENARIO 1.x XMLesmini 回放以及大多数重放工具运作的层次。

**运行设计域(ODD,Operational Design Domain)**是驾驶功能预期运行的条件集合(道路类型、天气、时间、地理区域等)。场景分类与 ODD 在每个层次上相互作用:

  • 功能性场景在 ODD 范围内描述(“晴天高速公路驾驶”)。
  • 逻辑性场景将参数范围约束为符合 ODD(例如速度范围符合 ODD 的高速公路限制)。
  • 具体场景是应落在 ODD 之内的实例,以及刻意选取的探查 ODD 边界的边界案例。
  • PEGASUS — 德国研究项目,确立了本文使用的功能/逻辑/具体场景词汇体系。
  • ISO 21448(SOTIF) — 预期功能的安全性;以场景分类作为论证功能在整个 ODD 内正确运行的核心骨架。
  • ASAM OpenSCENARIO — 1.x 面向具体场景;2.0 / DSL 面向逻辑性场景。
  • ASAM OpenDRIVE — 提供三个场景层次共同引用的静态世界层。

drawtonomy 不是逻辑性场景采样器或具体场景执行器,而是面向驾驶场景的浏览器白板。它在场景分类体系中的狭窄定位:

  • 功能性场景的示意图。 进入测试计划、设计评审、安全论证文档、幻灯片和论文的图表,本质上是功能性场景的视觉形式。drawtonomy 适合制作这类图表。
  • 逻辑性场景的示意图。 逻辑性场景的”形态”——几何、参与者、大致运动——正是读者在理解参数表之前需要把握的内容。drawtonomy 适合制作示意图;参数表本身存在于你的 DSL 或电子表格中。
  • OpenSCENARIO 编写前的具体场景草图。 如果你即将手写某个具体的 OpenSCENARIO 1.x XML,drawtonomy 可以生成一张 2D 草图和一个你可以迭代的起始 .xosc 文件。参见用例:OpenSCENARIO 编写前的草图绘制

对于逻辑性/具体场景的规模化编写——参数扫描、条件触发、复杂 Storyboard——请使用 Scenicscenariogeneration、手写 OpenSCENARIO XML 或 OpenSCENARIO 2.0 / DSL。drawtonomy 负责配图,而非测试逻辑。