OpenScenario是驾驶仿真领域中描述动态参与者的标准,结合OpenCRG、OpenDrive可以呈现较为完整的自动驾驶方针场景。

动机:如图1所示,提供一套场景标准普遍适用于自动驾驶仿真工具以满足各个主机厂、研究机构的需求。

图1
OpenScenario计划有的产出:Test Tool、Validation Tools、Test Data、Support/Website、Format Specification。从官网的信息来看,目前提供了Format Specification的信息。

图2
OpenSCENARIO_0.9.1 版本的specification format为最新版本。对于FileHeader、ParameterDeclaration、Catalogs、RoadNetwork、Entities、Storyboard、Catalog进行了标准规范。OSCTypeDefs为对于各个模块进行说明。此文件的作用为对于编写OpenScenario
的代码进行说明规范。

图3
OpenScenario的代码也是根据以上几个模块进行编写的。例如:

图4
接下来对于各个模块进行说明:
一、 FileHeader: 由OSCFileHeader标准定义。OSCFileHeader在OSCTyepDefs目录下。
OSCFileHeader里面定义了FileHeader的标准:需要包含recMajor、revMinor、date、description、author等内容。

图5
例子:

<FileHeader revMajor="0" revMinor="9" date="2017-07-26T10:00:00" description="Sample Scenario - Double Lane Changer" author="Andreas Biehn"/>

二、 ParameterDeclaration: 由OSCParameterDeclaration标准定义。但在官网给出的例子中,ParameterDeclaration部分均没有说明。

图6
例子:<ParameterDeclaration/>
三、 Catalogs: 分为VehicleCatalog、DriverCatalog、PedestrianCatalog、PedestrianControllerCatalog、MisObjectCatalog、EnvironmentCatalog、ManeuverCatalog、TrajectoryCatalog、RouteCatalog组成。由OSCDictionary标准定义,指引到path。

图7
例子:

<Catalogs><VehicleCatalog><Directory path="Catalogs/VehicleCatalogs"/></VehicleCatalog>
</Catalogs>

四、 RoadNetwork: 分为以下几项。 OSCFile将指引到filepath。

图8
例子:

<RoadNetwork><Logics filepath="SampleDatabase_01.xodr"/><SceneGraph filepath="SampleDatabase_01.opt.osgb"/>
</RoadNetwork>

【SampleDatabase_01】为OpenScenario提供的一份关于道路信息的文件。

五、 Entities: Entity由Object组成。Object需要对name、Controller、choice进行定义。

图9

  1. name定义此Object的名字
  2. 选择Object的CatalogReference:对于CatalogReference的定义由标准OSCCaralogReference规定,由catalogName、entryName和Parameter Assignment定义。在catalogName中选择Vehicle、Pedestrian、MiscObject,在entryName中输入此种catalog的某个名字。例如选择VehicleCatalog为catalogName,entryName可以选择AudiA3_blue_147kW。 AudiA3_blue_147kW的性能可以根据OSCVehicle标准进行定义。

    图10

    图11
  3. 然后对此Object选择Controller,同样根据CatalogReference进行选择,输入catalogName和entryName。例如选择DriverCatalog为catalogName,entryName可以选择DefaultDriver。

    图12
    例子:
<Entities><Object name="Ego"><CatalogReference catalogName="VechicleCatalog" entryName="AudiA3_blue_147kW"/><Controller><CatalogReference catalogName="DriverCatalog" entryName="DefaultDriver"/></Controller></Object>
</Entities>

六、 Storyboard:StoryBoard由三部分组成,Init、Story、EndConditions。

图13

  1. Init:对于Object最开始的状态进行定义,可以选择Global、UserDefined、Private。例如选择Private,然后选择在Entities定义的Object,再定义此Object的初始Action。例如选择Ego为Object,定义Action的标准参见OSCPrivateAction,对需要定义的内容进行定义。例如用Longitudinal对初始状态进行定义。

    图14

    图15
    例子:
    <Init><Actions><Private object="Ego"><Action><Longitudinal><Speed><Dynamics shape="step"/><Target><Absolute value="3.6111111111111107e+01"/></Target></Speed></Longitudinal></Action></Private></Actions>
</Init>
  1. 进行Story的编写:定义story的名字(name)、主人公(owner)。然后定义这个故事要进行的动作(act)。Act由sequence和condition组成,Sequence为这个动作的内容,condition为这个动作发生的时间。

    图16
    例子:
<Story name="MyStory" owner="A1"><Act name="MyAct">

2.1 Sequence: Sequence由以下几项构成。

图17
例子:<Sequence name="MySequence" numberOfExecutions="1">
2.1.1 Actors为执行此动作的对象。例如为这个故事的主人公:

 <Actors><Entity name="$owner"/></Actors>

2.1.2 Maneuver为动作内容,通过OSCManeuver标准进行定义。
OSCManeuver定义如图:由name、parameterDeclaration、event组成。Event由name、priority、action、startcondition组成。Action为这个event的动作,startcondition为这个event 的开始条件。

图18
例子:

<Maneuver name="MyDoubleLaneChangeManeuver"><Event name="MyLaneChangeRightEvent" priority="overwrite">

Action 有Private、Global、UserDefined之分。例如选择private的action。定义这个action的动作由OSCPrivateAction标准规范。例如在PrivateAction里面选择’Lateral’ 的‘LaneChange’。根据条件需要对参数进行赋值。

图19

图20
例子:

                <Action name="MyLaneChangeRightAction"><Private><Lateral><LaneChange><Dynamics shape="sinusoidal" time="2"/><Target><Relative object="$owner" value="-1"/></Target></LaneChange></Lateral></Private></Action>
StartCondition由OSCCondition标准进行定义。例如通过ByEntity对StartCondition进行定义。则需要对TriggeringEntities和condition进行定义。


图21

图22

例子:

<StartConditions><ConditionGroup><Condition name="MyStartCondition1" delay="0" edge="rising"><ByEntity><TriggeringEntities rule="any"><Entity name="$owner"/></TriggeringEntities><EntityCondition><Distance value="5.0000000000000000e+00" freespace="false" alongRoute="false" rule="greater_than"><Position><RelativeObject object="Ego" dx="0.0000000000000000e+00" dy="0.0000000000000000e+00"/></Position></Distance></EntityCondition></ByEntity></Condition></ConditionGroup>
</StartConditions>

2.2 对Act发生的Conditon进行定义。Condition的执行标准与StartConditon一样,为OSCConditionGroup。

图23
例子:

    <Conditions><Start><ConditionGroup><Condition name="" delay="0" edge="rising"><ByValue><SimulationTime value="0" rule="equal_to"/></ByValue></Condition></ConditionGroup></Start></Conditions>

以上为对于OpenScenario Specification的调研。Specification就如同在定义Scenario的大纲和字典,使得场景的定义能够完成。在场景定义中最重要的时间是定义Story. OpenScenario官网给出了几个例子。这几个例子举了大致的书写规则,完整的书写规则需要参见Specification。

Example 1: simple steering command

storyboard
Story: owner = Egoact 1: condition = simTime>2ssequence 1.1:actor = $ownermaneuver 1.1.1: name = start drivingevent 1.1.1: condition = upon start of actaction 1.1.1.1.1: apply throttle at 0.4sequence 1.2:actor = $ownermaneuver 1.2.1: name = apply steering torqueevent 1.2.1.1: condition = 10s after start of actaction 1.2.1.1.1: set throttle to 0.0action 1.2.1.1.2: apply 2.0Nm torque to steering wheel

Example2: two lane changes in front of Ego vehicle, 3-lane motorway

【TTC】Time to Collision, 碰撞时间
Example 3: two lane changes in front of Ego vehicle, 3-lane motorway+ emergency brake

Example 4: Lane change right/left

Example 5: Overtaking

Example 6: Traffic Jam and Corridor

场景库举例
中国汽车技术研究中心有限公司数据资源中心
数据库的建设重要步骤:场景数据格式、虚拟仿真工具链与测试用例评价体系
虚拟场景数据的分类:

  1. 自然驾驶场景
  2. 危险工况场景
  3. 法律规范场景
  4. 参数重组场景
    百度Apollo场景库:https://github.com/ApolloAuto/apollo/releases/tag/v2.5.0
    Worldsim:由人为预设的 障碍物行为和交通灯状态构成的场景,可以简单高效的测试自动驾驶车辆,但缺 乏真实交通环境中复杂的情况
    Logsim:由路测数据提取的场景,提供复杂多变 的障碍物行为和交通状况,使场景充满不确定性。
    目前提供约200个场景,包括:
    基于不同的路型,包括十字路口、调头、直行、三叉路口、弯道。
    基于不同的障碍物类型,包括行人、机动车、非机动车及其他。
    基于不同的道路规划,包括直行、调头、变道、左转、右转、并道。
    基于不同的红绿灯信号,包括红灯、黄灯、绿灯。
    51VR51Sim-One 案例库
    51VR仿真平台案例库支持来自真实采集的危险工况和人工编辑的标准案例。 目前提供的场景包括:
    基于不同的路型,包括直道、十字路口、弯道、调头、环岛、人行横道等。
    基于不同的障碍物类型,包括行人、机动车、非机动车,静态物体等。
    基于不同的道路规划,包括直行、突然插入,变道、转弯、并道, 超车, 靠边停车等。
    基于不同的红绿灯信号,限速牌,停车牌等

GitHub上关于OpenScenario的资源:
https://github.com/esmini/esmini
https://github.com/carla-simulator/scenario_runner
https://github.com/OpenRCT2/OpenScenarios
https://github.com/MrMushroom/CarlaScenarioLoader
https://github.com/AndreaTagliavini/OpenScenario-scenarioGen
https://github.com/mhct/OpenScenario
https://github.com/fcagroupj/OpenScenario
https://github.com/matthewcoyle-cpc/esmini-visualiser

OpenScenario调研报告相关推荐

  1. 智源发布人脸识别与公共卫生调研报告

    为了促进人工智能成为推动"健康社会"形成的使能技术之一,推动人工智能应用于全球可持续发展,北京智源人工智能研究院人工智能伦理与安全研究中心联合中国科学院自动化研究所中英人工智能伦理 ...

  2. 2016年金融全行业网络安全状况调研报告

    本报告由谷安天下和乌云联合发布,并感谢网贷之家.支付圈.安全值.安全牛等媒体和机构提供数据来源. 金融行业网络安全调研概述 报告背景 近两年来互联网金融飞速发展,不同于传统金融,依托于互联网的新的金融 ...

  3. SANS:2014年安全分析与安全智能调研报告

    2014年10月份,紧接着2014年度日志管理调研报告(Log management survey),SANS又发布了2014年度的安全分析与智能调研报告(Analytics and Intellig ...

  4. 6万广州人坐过无人出租车,过半月薪一万以上 | 中国首份Robotaxi乘客调研报告...

    李娅宁 发自 副驾寺  智能车参考 报道 | 公众号 AI4Auto 原来广州人民才是真名媛.真凡尔赛. 上下班车接车送,过半数的人月收入万元以上,78%以上都是本科以上学历-- 而且这个车,还不是人 ...

  5. 全球及中国血液透析行业发展规模与前景动态调研报告2022版

    全球及中国血液透析行业发展规模与前景动态调研报告2022版 -------------------------------------  <出版单位>:鸿晟信合研究院[专员客服对接] &l ...

  6. 中国呼吸道防护劳保用品市场投资效益与销售前景调研报告2022年

    中国呼吸道防护劳保用品市场投资效益与销售前景调研报告2022年 ··························· <修订日期>:2022年1月 <专员对接>:周文文 &l ...

  7. 中国冶金工业节能减排行业十四五投资动态与运营方向调研报告2022-2027年

    中国冶金工业节能减排行业十四五投资动态与运营方向调研报告2022-2027年 ··························· <修订日期>:2022年1月 <专员对接> ...

  8. 中国饲用微生态制剂行业十四五研发方向与专项应用调研报告2022年

    中国饲用微生态制剂行业十四五研发方向与专项应用调研报告2022年 --------------------------------------- <修订日期>:2021年12月 <报 ...

  9. 全球及中国甲醇催化剂行业前景动态与市场需求调研报告2022版

    全球及中国甲醇催化剂行业前景动态与市场需求调研报告2022版 --------------------------------------- <修订日期>:2021年12月 <报告价 ...

最新文章

  1. IT职场常见疾病之“脂肪肝”
  2. 松下服务器分频器输出信号与,基础资料松下PANASONIC伺服驱动器MADHT1507E
  3. 4.50Nginx负载均衡
  4. matlab扩充内存,matlab扩大内存的方法
  5. http --- Web页面请求的历程(如何根据URL寻找到需要的资源)
  6. C#控件绑定数据源方式
  7. java光标移动函数_文件内光标的移动 函数基础 定义函数的三种形式 函数的返回值 调用方式...
  8. 湖南省普通高等学校计算机应用水平,湖南省普通高等学校非计算机专业学生计算机应用水平二级考试大纲...
  9. ThreadLocal 内存泄漏问题
  10. HoloLens开发手记-世界坐标系 Coordinate systems
  11. .net core WebAPI 初探及连接MySQL
  12. html验证码功能如何实现原理,基于JS实现一个随机生成验证码功能
  13. 翻译 | 上手 Webpack ? 这篇就够了!
  14. 从防御到应急响应 XDR
  15. VBA读excel写xml
  16. 研究生跟了一个很棒的导师是种怎样的体验?
  17. 64qam带宽计算_烧脑:5G 理论峰值速率是怎么计算的?
  18. 计算机主板芯片组型号有哪些,如何鉴别主板芯片组型号
  19. 使用HC05蓝牙模块实现数据无线传输,看完包会
  20. Markdown实用快捷键

热门文章

  1. 苹果自带跳语音服务器,iOS自带文本转语音技术(TTS)的实现即语音播报的实践
  2. 用C#开发的双色球走势图
  3. C#游戏《坦克大战》--主程序
  4. 数字信号处理(DSP)
  5. CAD中的超级修剪功能、使用CAD旋转命令绘制图形
  6. ubuntu动态壁纸 视频 Komorebi
  7. 败家选手周幽王谢幕后,春秋五霸如何粉墨登场?
  8. 浅谈linux - 描述硬件的文件设备树
  9. 你羡慕靠副业赚钱的人吗
  10. python画波浪线_python 实现PIL模块在图片画线写字