近期,由C-ASAM组织、亮道智能翻译的中文版ASAM OpenDRIVE 1.6和OpenSCENARIO1.0标准文件正式上线ASAM官网(https://www.asam.net/)。此次上线的中文版OpenDRIVE和OpenSCENARIO标准文件,是ASAM首次对外发布除英文外的其他语言版本标准,对ASAM和C-ASAM都具有里程碑式的意义。
OpenDRIVE1.6中文全文链接:
https://www.asam.net/standards/detail/opendrive/
OpenSCENARIO 1.0中文全文链接:
https://www.asam.net/standards/detail/openscenario/
(注:请从指定官方渠道下载 禁止擅自发布传播相关ASAM标准。)
本文将为大家带来详细的中文版ASAM OpenSCENARIO 1.0标准解读。
一.中文版OpenSCENARIO 1.0亮点
首次在国际上用中文准确定义部分场景内容,如Action, Trigger等,解决了中文场景语言描述不统一、词汇翻译不够清晰的问题。针对中文词汇表中,超过100个重点词汇内容,覆盖场景,计算机语言,数据描述语言的重点定义。针对同样词汇在不同语境下的合理搭配进行了优化,实现全文及单个词语的完美匹配,为今后中文使用相应词汇给出了对应的建议。
二.OpenSCENARIO 1.0标准解读
Part I:场景组成概念
OpenSCENARIO 数据格式主要描述自动驾驶仿真测试中动态信息。此标准主要试图解决客观场景信息问题。场景主要的要素为,是谁(目标物体),在哪里(与道路或参照物关系),发生了什么(场景的动作描述),持续了多久(场景运行的时间)。这些客观信息的组合,可以有效覆盖所有的测试用例建立,实现高覆盖场景测试,提升场景的价值。在当前阶段,此标准主要关注这些信息的标准化描述方式,为众多企业提供数据交互的机制与基础。
OpenSCENARIO 1.0 每个场景中都包含三个必要组成概念
1.道路网络RoadNetwork
2.场景剧本Storyboard
3.动作Action
除此之外,场景还被赋予了两个附加概念,即4. 目录 (Catalogs)与5.参数声明(ParameterDeclaration),目的是允许多个场景重复使用场景元素。
1.道路网络RoadNetwork
道路网络RoadNetwork由实体Entity实例组成,此处的实体指:
车辆Vehicle
行人Pedestrian
其他目标(MiscObjects)
这些不同的实体Entity实例通过场景剧本Storyboard中包含的指令进行互动。
2.场景剧本Storyboard
场景剧本Storyboard涵盖了完整的场景描述。场景剧本这个概念的结构和命名与戏剧之类的剧本中的叙事方式有异曲同工之妙。每个Storyboard场景剧本包含一个初始化要素(Init),和一个或多个场景内容Story。
场景剧本Storyboard将场景构建为虚拟世界动态内容的剧本:
初始化要素Init用于设置场景的初始条件。
场景内容Story使分组具有更高层的层次结构,从而使场景描述更加结构化。
场景内容Story包含定义条件行动组(groups of Actions)的活动(Acts)。
Triggers(即startTriggers和stopTriggers)控制行为的活动(Act)的执行。
操作组(ManeuverGroups)将实体作为行动者(Actors)分配给操作(Maneuvers)。
操作(Maneuvers)是共享一个共同范围的事件(Events)的容器。
事件(Events)控制仿真世界或相应的实体。事件通过触发行动、给出用户定义的条件来达到。
3.动作Action
行动者Actor最终采取的动作Action是由条件Condition来触发的,此处的行动者Actor指的是参与动作的实体Entity实例。更通俗的来讲,触发器Trigger会使用条件Condition来启动动作集Act和事件Event,或停止动作集Act和场景剧本Storyboard。因此,条件Condition可被认为是用来定义动态行为和交互的基本模块。
Part II:场景创建示例
此场景适用于靠左行车国家。该场景讲述的是:由外部控制的本车 Ego vehicle (Ego)行驶在城市道路上并驶向一个路口(车辆右侧朝向路口),跟随其后的是 c1 和 c2 两辆会对之产生影响的车辆(两辆车的运动由场景来控制)。第三辆会产生影响的车辆(c3)则在路口等待右转。当本车 Ego vehicle (Ego)接近路口时,c1 和 c2 开始超车。 c3 紧接着开始右转,从而迫使 c1 和 c2 进行紧急刹车。下图标识了车辆的初始位置。
1. Init初始段
以下 XML 示例展示了行动 Action 如何利用全局坐标系来定位本车 Ego vehicle (Ego) 。类似的行动 Action(未做展示)则用于说明其他车辆的速度和位置。
2.Stories场景内容
使用两个场景内容Story实例来描述该场景:
描述超车和紧急刹车的Story,命名为AbortedOvertake
包含两个动作集Act:
Ø控制超车行为AbortedOvertakeAct1
Ø控制紧急刹车AbortedOvertakeAct2
描述右转的Story,命名为RightTurn
包含单一动作集Act:
Ø控制右转RightTurnAct
3.Act动作集
本车Ego vehicle接近路口时触发车辆c3右转动作集Act(RightTurnAct)
4.Maneuver Groups操作组
每个操作组 ManeuverGroup 分别从目录 Catalog 中给一辆车分配一个操作 Maneuver。该操作 Maneuver 将指挥该车辆变道、加速,继而让该车辆回到原先车道上并行驶在本车 Ego vehicle (Ego) 前面。
5.Maneuver操作
操作Maneuver可以被重复引用,因此可通过定义目录操作 Catalog Maneuver生成超车目录Overtake——操作Overtake Ego Vehicle来定义对本车ego vehicle的超车动作。
完成目录Catalog及操作Maneuver定义后,可在本例中的车辆c1、c2的操作组中分别引用该操作。
6.Events事件
此示例中,变道动作 Action 应该在其父级动作集 Act 被触发时立即启动。由于事件 Events 需要将触发器 Trigger 应用到动作 Actions 上,因此将用一个小条件 Condition 来触发立即的执行。
综上所述,我们可以应用OpenSCENARIO来构建预期的测试场景。那么如何应用 OpenSCENARIO如何来支持仿真测试呢?如何与静态场景,设计运行域,数据场景标注等配合使用?ASAM OpenX系列标准为自动驾驶仿真测试提供了完整的标准规划。下面让我们来了解一下ASAM OpenX的标准体系。
三.ASAM OpenX仿真标准
为解决智能网联汽车基于场景的仿真测试、实际开发和应用中主机厂、供应商与仿真平台的接口不统一,数据格式种类繁多等问题,ASAM推出了仿真领域的OpenX系列标准,并承诺将其作为一项长期标准以促进未来产业发展,并获得了全球的关注。
ASAM 仿真格式标准整体包括以下七个方面:
OpenDRIVE 对应静态地图场景,负责描述地图信息,包括高精地图信息;
OpenCRG 对应道路表面,专注于车辆动力学,以及车辆对路面信息的反馈;
OpenSCENARIO 对应动态行为场景,也就是描述自动驾驶的测试场景;
OSI对应仿真接口,比如传感器仿真接口或是各种信息的仿真接口;
OpenLABEL 是今年新开的一个项目,研究的是场景标签与传感器原始数据;
OpenODD概念项目阶段,定义设计运行域(ODDs)的标准化格式;
OpenOntology新标准制定中,通过一个由本体论表示的公共域模型将OpenX标准串联起来。
ASAM OpenX标准为业界提供了整套的统一接口和数据格式标准,使得仿真开发事半功倍。ASAM官方提供了OpenSCENARIO1.0标准文档和案例,并提供验证工具,用户可使用ASAM提供的API(内测阶段)来验证第三方仿真软件生成的OSC 1.0场景文件是否符合标准规范。