OpenSCENARIO介绍及目前面临的问题

OpenSCENARIO介绍及目前面临的问题

日前,广州虹科正式加入国际自动化和测量系统标准化协会(Association for Standardization of Automation and Measuring Systems,ASAM),参与该协会的技术交流活动与合作。

ASAM介绍

ASAM是国际汽车工业中的知名标准化协会,创建于1991年,致力于推动汽车研发与测试工具链的标准化工作。1998年,由德国汽车制造商奥迪、宝马、戴姆勒和保时捷大众发起成立ASAM协会。截至目前,ASAM已经成为在全球拥有340多个成员单位的世界性标准协会,包括国际知名车企、零部件供应商、工程服务提供商和汽车行业的研究机构(高校)等。未来,广州虹科将积极参与到ASAM标准制定工作组,与行业专家共同探讨标准建立的技术方向和自动驾驶的未来发展。

虹科目前加入C-ASAM,OpenSCENARIO工作组,负责推进OpenSCENARIO 2.0的落地。

OpenSCENARIO介绍

OpenSCENARIO是ASAM制定的其中一个标准,专门用于场景仿真领域(Scenario simulation)的动态场景规划。OpenSCENARIO常常与ASAM OpenDRIVE 1.6.0 和 ASAM OpenCRG 一起应用。OpenDRIVE是负责制定静态场景如路网的标准,OpenCRG则规定路面材质等。

OpenSCENARIO 目前应用的标准版本为1.x,ASAM下成员组希望明年第二季度时能够发布OpenSCENARIO 2.0.

OpenSCENARIO 2.0的目标是能够成为特定领域内的专用语言,能够合适地表达抽象和具体的场景。其需求为:

1.可读性:
目标受众易于理解和理解的质量,不仅包括领域专家,程序员和工程师,还包括安全工程师,监管人员,甚至可能包括公众。
尽管这对于语言的适当表面语法有明显的含义,但它还要求语言的语义要定义清楚,规则且重点放在问题域上,而不是技术实现工件上。
2.表达性:
语言允许精简和直接表达领域主题的能力。 这与语言的可读性和声明性相互影响,但也使例如能够使用语言语义而不是仅通过基于元数据的查询来查询场景数据库。
3.可组合性:
能够使用标准语言构建块以明确定义的方式逐步建立更复杂的行为的质量。 这就需要针对合成和合成运算符的明确规则,这些规则在合成后提供一定程度的可预测行为,同时还允许发生有趣的紧急行为,以确保覆盖整个实际交通行为。即将多种逻辑组合而成。
4.可移植性:
能够在许多执行平台(包括模拟平台以及真实的测试轨道)上使用以其编写的语言和场景的质量,而无需进行不适当的调整。 这包括提供适当的后备机制以处理平台之间的必要差异。
5.可重复利用性强
能够跨多个抽象级别,平台和用例重用场景和部分场景的质量,而无需进行不适当的调整。
这包括语言中合适的库概念和机制,以及构成核心语言功能以促进重用的方式
6.可扩展性:
允许将基础语言机制和领域模型轻松扩展到新要求的质量,包括新的流量参与者,他们的模型和属性,组成和约束
7.可从OpenSCENARIO1.0 迁移过来
该语言应支持OpenSCENARIO 1.0的迁移路径。 这包括将OpenSCENARIO 1.0方案转换为OpenSCENARIO 2.0方案的能力,而无需直接向后兼容。

总结来说:其主要特性为:

1 类python编写语言
2 每个模型对应一个文件 相互可以独立
3 按名称导入其他模块,用于开发的命名空间和位置的库概念
4 模块的其余部分由类型定义和扩展组成
5 有约束和参数

语言的细节定义:

·Structs:一组数据,类似于其他面向对象语言中的”类“
·Actors:定义一个能够采取行动并且其状态会随着时间而变化的主体,它们被用来对诸如汽车,行人及其周围环境等物理实体进行建模。 还使用参与者对更抽象的对象(例如交通和天气)进行建模。 使用由仿真器或其他报告机制(例如遥测)提供的更新以反映地面真相的字段来对演员状态建模。 使用场景对Actor行为进行建模。
·Scenarios:
定义归因于特定Actor的行为。 方案通过激活其他方案来定义行为,这些其他方案是从描述内置角色行为(例如移动,加速,转弯等)的基本方案库中建立的。
·Modifiers:
定义对应用它们的场景调用的行为的更改。

书写原则:
所有复合类型都有自己的命名空间
复合类型定义为类型提供一个名称、一个继承关系和一组成员定义

格式:

struct|actor|scenario <type-name>:<supertype-name>:
		<member>

scenario <actor> <scenario-name>

示例代码:

actor vehicle:
	category: vehicle_category
	emergency_vehicle: bool

actor truck: vehicle(category: truck):
	num_of_trailers: uint with: keep(it in [0..2])

OpenSCEANRIO 目前的顾虑/问题:

随着对OpenSCENARIO1.x和2.0的开发,目前有许多问题浮现:

  1. 许多Concept尚未解释清楚
  2. 尚未得到诸多仿真软件支持
  3. 许多Concept还未成熟,尚不明确是否可以成为标准

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_49762095/article/details/111551543
今日推荐