51WORLD受邀出席C-ASAM大会,深度讲解基于ASAM OpenSCENARIO 2.0自研编译器实现

Meta小元 关注 4

11月25日,第二届ASAM中国区域大会上,C-ASAM邀请51WORLD高级研发经理、ASAM OpenSCENARIO 2.0 Implementers Forum(以下简称“实现者论坛”)仿真组组长毛祖秋作为代表,介绍了实现者论坛的工作内容,并讲解了支持ASAM OpenSCENARIO 2.0标准的编译器实现。

本届大会上,C-ASAM邀请了51WORLD、上海机动车检测认证中心、四维图新、大疆创新等多家中外权威机构、整车企业、科技公司围绕自动驾驶仿真标准Open X的应用案例等内容展开了深层次探讨,进一步促进了汽车技术标准化、国际化进程。

 

作为ASAM中国区的重要会员,51WORLD积极参与ASAM标准的制定,同时自主研发了支持ASAM Open系列标准的开发工具,对标准制定工作提供了有效的反馈。

 

51WORLD的51Sim-One编译器实践验证ASAM OpenSCENARIO 2.0并提供反馈。今年3月,51Sim-One 2.0正式发布,在场景构建、传感器仿真、用户定制化、平台开放四大能力方面进行了全面提升。

 

在推动场景标准落地、场景挖掘、定制化场景库等领域,51WORLD正在积极发挥价值,努力通过产业化实现场景测试的市场化高效运作。

 

ASAM OpenSCENARIO 2.0 Implementers Forum实现者论坛

 

为了支持企业对于ASAM OpenSCENARIO 2.0标准更深层次的理解,ASAM举办了ASAM OpenSCENARIO 2.0 实现者论坛,提供了一个交流技术的平台,促进开发工作与标准相结合。毛祖秋在本次大会上详细介绍了ASAM OpenSCENARIO 2.0 Implementers Forum实现者论坛活动。

 

实现者论坛定期与开发项目交流反馈,目标确保制定出更易理解、并可得到工具部分支持的标准。该论坛将提供用于合作讨论、使用及实施ASAM OpenSCENARIO V2的框架。目前,该论坛一直与标准的制定并行运行,并已为标准持续改进提供了宝贵的反馈。

实现者论坛设有两个小组,一个专注于使用使用ASAM OpenSCENARIO 2.0创建和描述场景(规范组),另一个专注于在现有工具或新工具中实现ASAM OpenSCENARIO(仿真组)。

 

ASAM OpenSCENARIO 2.0标准支持具体场景、逻辑场景和抽象场景。实现者论坛还讨论了具体场景的定义。如,具体场景的定义是什么?具体到什么程度才算具体场景?仅仅没有描述车辆颜色而其他参数都确定的场景是不是具体场景?论坛为此进行了多次讨论,并将具体场景的定义向开发项目进行了反馈。

 

另外,论坛还进行了大量的实现结果展示、讨论和反馈,比如车道保持,逻辑场景,控制切换,路口场景,切出场景等。

基于ASAM OpenSCENARIO 2.0标准的编译器实现

目前,在ASAM OpenSCENARIO 2.0实现者论坛中,仿真组有两种方式实现ASAM OpenSCENARIO 2.0标准语言,第一种是将ASAM OpenSCENARIO 2.0转换为内部或工具特定的格式;第二种则是通过基于ASAM OpenSCENARIO 2.0标准开发的专用编译器直接使用ASAM OpenSCENARIO 2.0这一场景领域特定语言(DSL)。后者可以更直接地为标准制定过程提供宝贵的技术意见,有助于为标准开发项目提供反馈循环,以探寻任何潜在的问题。

 

ASAM OpenSCENARIO 2.0作为场景领域特定语言(DSL),在其标准制定过程中需要专用编译器为其提供技术反馈。

基于ASAM OpenSCENARIO 2.0标准开发的两大编译器:

 

  • 51WORLD自研51Sim-One编译器

 

毛祖秋在实现者论坛中介绍了51WORLD自主研发的基于ASAM OpenSCENARIO 2.0标准开发的51Sim-One编译器,其框架也分为三个阶段,预处理、编译器前端、编译器后端。

 

  • 预处理,第一阶段是进行预处理以获取整个内容,当你得到一个场景时,它可能会导入另一个文件或标准库;

  • 编译器前端,它使用ANTLR4来实现EBNF,可以生成词法分析器和语法分析器,之后,它可以得到抽象的语法树并将其传递给语义分析器;

  • 编译器后端,场景引擎使用脚本引擎和语义模型作为后端,脚本引擎实现了函数调用和表达式计算,它通过栈帧实现函数调用。语义模型实现ASAM OpenSCENARIO 2.0的领域模型,例如驾驶(Drive)、变道(changeLane),它使用状态机控制车辆运动。

经典的编译器开发主要包括三个部分,前端、中端、后端。例如,在使用方面,利用LLVM模块化和可重用的方法,不同语言可统一使用LLVM中端和中间代码。编译器支持一种新的的编程语言只需实现一个新的前端,例如C++、Rust、Fortran只需实现各自的前端;而其支持一种新的硬件比如X86、ARM和Power PC等硬件,只需实现一个新的后端。

  • 博世YASE场景编译器

 

实现者论坛上,博世公司介绍的场景编译器YASE(Yet Another Scenario Engine)正是经典编译器应用的典型案例,它借鉴了经典编译器中类似LLVM的模块化和可重用的方法。YASE场景编译器的框架也分为三个阶段,前端、中端、后端。ASAM OpenSCENARIO 1.x、ASAM OpenSCENARIO 2.0和内部工具实现各自的前端,并统一使用YASE中端,不同的模拟器实现各自的后端,如esmini、OpenPASS和内部工具。YASE使用Unity和UE等常在游戏引擎中用到的行为树进行场景执行。

值得一提的是,YASE是一个开源项目,点击链接可查看项目详情:

https://gitlab.eclipse.org/mbauerm6f/simopenpass/-/tree/master/common

 

支持ASAM OpenSCENARIO 2.0标准的编译器开发难点:

 

ASAM OpenSCENARIO 1.0用XML Schema来验证场景的合法性。在没有编译器时,ASAM OpenSCENARIO 2.0可以使用EBNF语法来验证场景的合法性。例如,使用ANTLR4来实现EBNF,做基本的词法和语法检查,不仅对场景编写者有用,而且对开发基于ASAM OpenSCENARIO 2.0标准编译器的企业也有帮助。

在开发编译器的过程中,ASAM OpenSCENARIO 2.0标准的语法并没有制定完成,尤其在开始阶段,需求的经常改变,对于程序员编程实现来说是一大困难和挑战,不得不综合参考各方面的信息,比如概念版、早期版本、M-SDL、Python语法等。因此,在研发51Sim-One编译器时,51WORLD采用模块化架构,前端定期更新以应对变化及跨厂商兼容性挑战,后端基本保持稳定的方案。

目前,51WORLD正计划实现ANTLR4版本的EBNF并开源。
51WORLD基于ASAM OpenSCENARIO 2.0自研的51Sim-One编译器支持语法编译错误检查,能及时发现语法错误,提高用户使用效率。
51WORLD高级研发经理毛祖秋在会议中提到,对于从事计算机软件专业的人来说,编译器是亟待挑战的硬核技术。ASAM Open系列标准作为目前自动驾驶仿真技术最重要的标准之一,对企业开发过程的影响深远。未来,51WORLD将进一步结合ASAM Open系列标准,打造更多标准应用案例。
此外,关于计划开源EBNF的实现正在根据最新ASAM OpenSCENARIO 2.0标准迭代改进中,Sim-One未来将有更多开源计划,请大家持续关注。

C-ASAM和ASAM OpenSCENARIO 2.0实现者论坛都是可以促进行业交流加强交叉验证的优质社区。未来,51WORLD将继续积极参与各项行业标准的制定,与更多仿真工具和编译器厂商共同推动自动驾驶仿真技术行业的发展。

您愿意向朋友推荐 ‘社区博客’ 吗?
强烈不推荐 不推荐 无所谓 推荐 强烈推荐
感谢您的反馈,谢谢!
阅读 858 本作品系原创,转载请联系作者授权
赞 0 收藏
全部评论({{commentCount}}条评论)
得票数 最新

暂无数据