ASAM OpenSCENARIO定义了仿真世界的动态内容,例如,交通参与者的行为和如何预期这些行为,以及他们之间的相互影响和环境。静态组件(如道路网)不是ASAM OpenSCENARIO的覆盖范围,但是可被引用。
在ASAM OpenX标准中,OpenSCENARIO标准目前非常活跃,同时占有独特的地位。OpenSCENARIO工作组的总体规划如图4-5所示,现已开发了两个并行版本,即OpenSCENARIO V1.x(2021年3月发布了V1.1.0)和OpenSCENARIO V2.x(于2022年7月发布)。
图4-5 OpenSCENARIO制定总体规划
这两个版本在应用程序工具中占据不同的位置。V1.0.0是一种更低层级的、具体的规范格式,主要是为仿真工具读取而设计;而V2.0允许在更高的抽象层次上创建描述和测试以定义场景,为除现有的XML格式文件提供另一种表达方式。由于两个版本的标准涉及强耦合的开发活动,ASAM在前期做了大量工作,以确保两个并行版本的OpenSCENARIO有一致性和兼容性。
OpenSCENARIO V2.0.0旨在覆盖OpenSCENARIO V1.0.0的全部特性。ASAM OpenSCENARIO V2.0里的所有子集都可以映射到OpenSCENARIO V1.0中。所有未来ASAM OpenSCENARIO发布时将附带一个用于迁移的最新规则集,保证从V1.x到V2.x的路径畅通。任何场景从最新的OpenSCENARIO V1.x转化到OpenSCENARIO V2.0的运行行为也应相同。
OpenSCENARIO定义了一个数据模型和一个派生的文件格式,用于驾驶仿真开发和验证中使用的场景描述。OpenSCENARIO的主要内容是描述复杂的、涉及多个实体的同步运动,如车辆、行人和其他交通参与者。一个场景的定义可能基于驾驶员操作,如执行车道变换。OpenSCENARIO通过定义层次结构提供场景的描述方法,而场景中的元素属性和关系都是基于此构造出来的。该描述方法包括:
1)故事板。
2)使用由条件定义的触发器触发的事件。
3)逻辑道路网描述参考。
4)实体的实例化,如车辆、行人在道路上和道路外的活动。
5)利用重用机制,即目录和参数声明。
6)其他内容,如车辆、驾驶员、行人、交通的描述等。
OpenSCENARIO V1.x中用于场景描述的数据是有组织、有层次的,并基于XML格式编写以.xosc为扩展名。而OpenSCENARIO V2.0建立在DSL上,可以支持所有级别的场景描述,并以适当的方式从抽象到具体化。如图4-6中所示,OpenSCENARIO V2.0既保留了人工的可读性,又是一套规范的机器语言。因此,该格式可允许这一领域的从业人员,在没有特定工具的情况下直接编写和审阅场景,保留一个完全形式化的描述能力,使得机器和人都能精确地理解和执行。
图4-6 OpenSCENARIO V2.0脚本示例
与OpenSCENARIO V1.0.0相比,V2.0具有更详细的动作、属性设置,用来覆盖不同层次的测试用例描述。因此,其应代表适当水平的复杂程度,包括动态动作和ODD特征等。例如,在复杂道路上驾驶自动驾驶汽车,复杂性则包括具有环形交叉口、公共汽车站、高速公路坡道等道路特征,以及匝道出入口处交通流密集分布。除了这些提升之外,DSL支持通过灵活的场景组合和参数化,允许现实中紧急行为的发生。这将实现对新的复杂硬件的大规模测试和验证,以及复现它们与复杂环境的交互情况。经历近两年半的紧张开发工作,这一标准已于2021年末进行公开发布(概念版)。
为了支持新标准的开发和应用,OpenSCENARIO V2.0还发起了“使用者论坛”。这个论坛吸引了来自不同公司的实践者,使得标准开发者和应用者能够一起讨论并解决具体实施问题,核心重点是确保在语言特征和功能上没有歧义。