VTD软件说明书阅读之OpenDRIVE Scenario Editor 您所在的位置:网站首页 天气测量工具说明书图片 VTD软件说明书阅读之OpenDRIVE Scenario Editor

VTD软件说明书阅读之OpenDRIVE Scenario Editor

2024-07-13 02:56| 来源: 网络整理| 查看: 265

 

 

 

在VTD的仿真工具链中,第一步使用ROD(道路路网编辑器,Roadnetwork Designer)进行完道路的编辑以后,下一步要在Scenario Editor中进行场景编辑。场景编辑器中会进行一系列的可重复执行的设置和行动,对场景、交通和确定性的动作进行设定,可以理解为场景或者情景。    scene + traffic + deterministic actions,所有的测试场景都是以人类可读的 XML格式进行保存的,对于熟练的使用者来说,可以使用任何编辑器进行编辑。

Scenario Editor说明书目录结构:

1、主窗口选项(Options of the main window):主菜单(Main menus)、图标Icons、导航栏 Navigation Bar、 操纵工具  Manipulation2、场景生成准备(Preparation of Scenarios):3、实例化和定位交通参与者,特指车辆(Instantiating and Positioning Players):4、实例化和定位人物,特指行人(Instantiating and Positioning Characters):5、实例化和定位障碍物(Instantiating and Positioning Objects):6、动作控制概念(Action-control Concept):  触发器、交通参与者动作、特征动作、常规动作、选项7、场景模板(Scenario Templates):8、测量工具(Measuring Tool):9、配置交通信号灯(Configuring Traffic Lights):10、动作信息监控(Action Info Monitor):11、信息池窗口 (Message Dock Window):12、编辑元素位置(Editing Element positions):13、场景编辑器设置(Scenario Editor Settings):14、瓦片地图(Map Tiles):

1、主窗口选项(Options of the main window):

主菜单

File:新建、打开、保存、重置、恢复场景等。 Edit:撤销、重做功能 View:可以选择以下选项是否显示:交通信号标志 road signs、交通信号灯 traffic lights、 sign references、 playernames、 vehicle lights等。 Extra:可以新打开一个对话框,把所有的元素(players,characters,actions and waypoints etc)转换到空间中去。

图标Icons 新建、打开、保存、重置、特性定义(新打开一个对话框进行定义)、交通信号灯对所有的动态交通参与者进行追踪,可以打开和关闭这个模式、打开监控模式可以对某个交通参与者进行详细的监控和跟踪,能够看到仿真的时间,可以进行action触发。

导航栏 Navigation Bar

上下左右平移、放大缩小,当前操作对象的名字(外部交通参与者是蓝色的、内部交通参与者是红色的)、最后一个按钮只有交通参与者是 central player时才可以用的。

操纵工具  Manipulation Tools

 选择框,可以选择 players、characters、objects、actions、waypoints。新加一个player,默认叫做“New Player”,如果是在路上生成的话会自动适应车道信息和交通方向。新加一个行人,高度会根据道路高度属性自适应,默认是在X正轴方向,0度。新加一个障碍物选中障碍物、行人或者配合车辆时,添加行为触发器(Add new trigger for actions)打开编辑道路对话框,可以编辑路网结构(road network),所有的路都没问题,status会显示绿色的ok。在主窗口的道路上,如果道路有错误,会显示为红色。如果道路没问题会显示为黄色+标号。打开路径形状对话框(path shape dialog)。可以看到path的名称、类型(polyline、spline、clothoid)、长度等属性。 ployline 折线:

所有的线段都是直线,曲率是零。 spline 样条曲线: 每一段样条曲线都有两个黑色的控制点,控制着样条曲线的切线

clothoid 回旋曲线: 可以定义片段 segments,可以指定线的长度、曲率等

2、场景生成准备(Preparation of Scenarios)

 

生成新的场景之前,要学会了解 Scenario Properties,有许多设置选项会影响最后场景的全局布置情况。2.1 在场景 (Scene)窗口中可以选择 layout file和 visual database的路径。

2.2 在车辆定义(Vehicle Definitions)窗口中可以选择具有不同属性(轴距、重量、类型等)的车辆,这些参数会影响车辆的动力学模型,影响到不同车辆之间的障碍物距离计算。

2.3 在驾驶模式定义(Driver Definitions)窗口中可以修改驾驶员模型。

 

不同的驾驶员模型反应了不同的驾驶特性,不定义的话就是默认选项,类型选择有 briskdriver(轻快的驾驶模式?)、comfortableDriver(舒适的驾驶模式)、hastyDriver(匆忙的驾驶模式)、InsecureDriver(不安全的驾驶模式) 驾驶模式定义中可以对下列参数进行设置:(为了便于用户进行修改,每个参数都设置0—1的系数,0表示该项参数影响很小或者没有该项特性,0.5表示平均水平,1.0表示可能的最高情况) Desired Velocity:期望速度,车辆无任何影响情况下的最高目标速度。 Desired Acceleration:期望加速度 Desired Deceleration:期望减速度 Curve speed:曲线允许的最大曲线速度 Observe Speed Limits:观测速度限制?  Distance keeping:距离保持,定义了最近的时距间隔。 Lane keeping:车道保持能力,从在车道两侧边缘线之间震荡到完全在车道中间行驶。 Speed keeping:速度保持能力,从永远不能真正达到期望速度到完全按照期望速度行驶。 Lane Changing Dynamic:变更车道能力,变道时从横向速度很低到横向速度很快。 Urge to Overtake:超车激励,0代表从来都不想超车,1代表会进行很激烈的超车行为。 Keep Right Rule:靠右规则能力。0代表从来不会主动底进行靠边换道操作,1代表会尽可能早的进行靠边换道操作。 Responed to Tailgating:追尾响应能力, 从距离很近也不响应到很早就会提前响应。 Foresight Distance: 检测距离, 车辆看其他车辆和交通标志的预瞄距离,从非常短的预瞄距离到非常长的预瞄距离。 steering distance:转向距离。转向过程的距离?,从到最近的距离再开始转向到很早就开始转向。 Use of Indicator: 指示器使用。可以理解为转向提前打转向灯的距离。从从来不打转向灯到转弯前很早就开始打转向灯。 Obey Traffic Signs:是否遵守交通标志。开或者关 Obey Traffic Lights: 是否遵守交通信号灯。开或者关 Pulk Distribution:编队行驶?

2.4 在交通要素窗口(Traffic Elements)中可以定义换道的时间

2.5 在计数器(Counters)窗口中,属于编辑器设置。

可以定义类似于圈数的变量,可以由行为进行触发,触发时可以是加一个数或者减一个数。

2.6 在 Pulk Traffic选项中可以定义联队或者是蜂群交通,每一个车辆都可以作为蜂群的中心。如果脱离了联队区域可以进行解散。

2.7 在 Layers选项中可以新建图层,也可以删除既有的图层,也可以对图层进行重命名。

在复杂的场景构建中,图层就显得尤其重要。一般把同一类的障碍物(Players,Characters,Objects or Actions)放在同一个图层中,如果选择该图层不可见,那么这个图层在场景中就不可见。

2.8 在Slections选项中可以选择不同的交通障碍物或者参与者的集合,可以查看集合中已经有的行人、车辆或者障碍物。

双击打开相应的集合,那么集合中所有的action和trigger就都会被打开,还可以添加新的action和trigger,默认的slections是不能够编辑的,自己建的集合slections可以增加、删减、新建等。

3、实例化和定位交通参与者,特指车辆(Instantiating and Positioning Players):

在主窗口的左侧菜单栏中选择可以在选中的交通位置生成车辆。 双击车辆图标可以打开对话框: Player Properties dialog, 可以定义车辆的名称、类型、驾驶模式、激励(Animation)、速度等进行设置。 激励模式(Animation)是障碍车辆的控制类型。由内部的交通流模型生成的车辆显示是红色的,另外也可以定义外部障碍车辆(自定义任务或者激励),自定义的外部障碍车辆显示是蓝色的。speed:定义Player的初始速度。Align to road:对齐到道路,如果激活了,那么在仿真开始的时候车辆会出现在预先定义的位置上,和起始线正切?Position Type:位置类型,包括绝对坐标、路径形状坐标、相对坐标等。绝对坐标:绝对坐标是相对于全局的,绝对坐标表示的占该车辆会以红色标出。路径形状坐标:可以选出来一段路,然后把障碍物的起始点定义在path shape的起始点相对坐标:可以定义障碍车辆相对于某一个已经存在车辆(需要把这个车辆设置成领航员 pivot player)进行相对坐标,从而定义这个车辆的运动。 总而言之,需要把场景中每一个占该车辆的开始时的初始位置进行定义。

4、实例化和定位特征,特指行人(Instantiating and Positioning Characters):

在主窗口左侧菜单栏点击可以在选中的交通位置生成人,双击生成的图标可以打开对话框: Charater Properties dialog,然后对行人的特性进行设置 名称设置,默认叫做“New Character” 类型设置,设置一般特性、运动和姿态 模式设置,一般是画面的显示设置  available graphical models 具体的模型含义在场景编辑器的设置中, Scenario Editor settings 中 CharacterModels -> descriptionFile中有定义。用户在使用时需要确认选择的行人的特性。

5、实例化和定位障碍物(Instantiating and Positioning Objects):

 

在主窗口左侧菜单栏点击,可以在选中的交通位置生成障碍物。双击生成的障碍物图标可以打开对话框初始化障碍物特征。 Object Properties dialog 在对话框中可以设置障碍物的名称,定义、类型等。 具体的障碍物模型含义在场景编辑器设置中 ObjectModels -> DescriptionFile中进行查看。 另外障碍物的角度和缩放比例可以进行调整。

6、动作控制概念(Action-control Concept):  

默认情况下,场景中的交通参与者都会自动按照内设的模型在道路上按照一定的规则进行运动,并与其它障碍物或者占该车辆保持合适的距离。 如果想要定义某个交通参与者按照特定行为或者动作进行运动,那么就应该设置合理的动作触发。设置action有两种方式: 第一种在 Player Properties dialog中的Action按钮,然后选择 New(element pos)或者 New (cross-hair),然后进行动作action的设置。第一种方法设置的新的trigger(触发器)就在player的当前位置 第二种是在装窗口中选中一个player,然后在主窗口的左侧菜单栏点击按钮,然后在路网中选择一个位置。第二种方法设置的新的trigger默认在地图视角的中心线的交点。

一般情况下,action动作触发是和触发点相关联的 trigger points,只有条件被触发才会进入定义的action。在Trigger List中可以看到所有的触发点trigger points。  

6.1 Tiggers 触发器

有两种类型的触发器:1、Absolute:绝对坐标系下的触发器trigger,在主窗口中以一个蓝色的圆圈进行显示。当player进入到圆圈范围,关联的action就会被触发。

2、Track: 基于路径点的触发器trigger,基于道路描述,比如经过某一个车道进行触发,那么只有player行驶到这个车道才会触发。 track_based trigger不需要设置半径进行触发,只需要设置路点。在主窗口中这类的触发器是一个蓝绿色的圆圈。

触发器定义在哪个player上就对哪个player生效

Relative Trigger(关联式触发器): 当slected player和pivot player的距离小于设置的触发半径时,触发器Trigger就会被触发。任何player都可以被设置成pivot player,触发器是和pivot player相关联的,在主窗口中触发器是一个品红色的圆圈。

External Trigger(外部触发器): 外部触发器是由外部的操作者通过仿真模型或者命令行进行触发的,与位置无关。触发器触发以后只有通过命令行才能进行关闭

External trigger在命令行中一般的格式如下:

TTC inertial Trigger(TTC惯性触发器): TTC触发器是通过计算pivot player到指定点距离的TTC时距。当时距小于制定的TTC时,TTC触发器会进行触发。TTC惯性触发器是深蓝色的圆圈,圆圈的大小和TTC大小有关。 time to collision

TTC Relative Trigger(TTC关联触发器): TTC关联触发器使用深品红色的圆圈进行表示,和TTC惯性触发器类似,但考虑的是action owner 和 pivot之间的时距TTC。

TH Relative Trigger (TH关联触发器): TH关联触发器考虑action owner到pivot之间的车头时距(time headway),使用粉红色的圆圈进行表示。

Absolute Speed(绝对速度触发器): 绝对速度触发器,当速度超过或者低于设定的速度时进行触发,使用淡红色的圆圈进行表示。

触发器的设置也可以依赖于计数器 Counters,Counters可以进行全局定义并分配给相应的ID,Counters通常用来触发不同的actions。 在Scenario Properties中进行counters设置,设置全局变量进行counter的设置。

 

6.2  Player Actions 交通参与者动作定义

针对于交通参与者进行动作定义,有些动作可以同时进行触发。

Autonomous自动 player的行为被设置成自动模式,如果不被换道或者速度切换的动作打断的话,就会一直按照既有的模型自由运动。

Lane Change 换道 player交通参与者会进行换道动作的触发。 在Direction中可以进行向哪个方向换道,换几条的定义,左正右负。 换道的持续时间和换道的类型会通过Type和Time进行定义。同一时间内只会有一个换道行为会被触发,如果想要确保这个换道行为被触发,那么需要选中force,那么其他潜在的可能冲突的同类型的action就会被取消。

Speed Change速度切换 可以定义player以一定的加速度达到一定的期望速度,通过Rate和target speed进行设置。在同一个时刻也只会有一个速度切换行为会被触发,可以用force设置为一定会被触发的变速行为。

有三个参数是这些行为都需要设置的Delay Time 延时,从触发器trigger被触发到action开始执行的时间。Activation Event 激活事件定义。  定义是player进入还是出去进行action的触发。Number of Executions 执行次数定义。定义在一个场景scenario中这个action可以被触发多少次。

 

6.3  Character Actions 行人动作定义

针对行人进行动作定义,有些动作可以进行同时触发,对行人的动作、路径和姿态进行定义。

Motion 可以对行人的move模式、速度进行设置。

Path Shape 定义行人的运动路径,定义action触发时行人的起始位置和结束位置。 设置为beam模式,那么行为触发时行人就会直接出现在起始点上;如果没有选择beam模式,那么默认会规划出一条当前位置到起始点的最近路径,然后从起始点开始进行出发。  设置成Loop path的话行人从起点走到终点后悔再次从起点出发,循环往复。不然的话就会一直停在终点。 Glamp to ground  设置行人一直会在地面上。

Gesture 可以选择不同的模式来设置行人的姿态,包括摆动手臂或者摇头,还可以指定重复的次数。

 

6.4  Common Actions 一般性的动作触发

可以对行人和车辆进行一般的动作触发设置,对于典型的测试场景来说这些动作触发可以进行全局设置。6.4.1 SCP message  用户可以按照XML的格式进行自定义消息触发action,可以通过命令触发仿真环境里的交通参与者。 一般在SCP消息的编辑界面,加入XML的消息格式不对,编辑区域会显示为红色进行提醒。 可以在message中使用通配符 $ 来代替 player、character或者object。 在消息格式中可以定义 player的name、position和lane等属性。 例如: Ego$pos1:1    the next car on the right lane relative to Ego            Ego$pos:-2:-1     the second player behind ego on the left lane 需要仔细研究一下这些消息格式的定义,便于以后进行场景的计算机可读语言描述,便于以后测试场景数据的大规模采集、标注和训练。

可以在action的对话框中使用generic GUI用户交互工具信息SCP message的编辑,或者在view -> SCP GUI中打开。在后面的章节13.2里会有比较详细的介绍,message的格式必须是: group(with optional attributes) -> command -> attributes 

6.4.2  Counter 计数器 当trigger被触发,对应id的counter就会被修改。只有当触发器所有的条件都满足的时候,触发器trigger才会被触发。触发相应的trigger后,计数器可以增加、可以减少也可以被设置为特定的值。

 

6.5  Selections  选集 选场

在同一个时刻触发多个action,描述了一组players、objects或者characters在一个时刻触发各自的action

点击图标可以新建或者选择一个selection,有一些预先定义好的集合如下: ALL_CHARACTERS   包含所有的行人 ALL_EXT_PLAYERS    包含所有的外部交通参与车辆 ALL_INT_PLAYERS    包含所有的内部交通参与车辆 ALL_OBJECTS           包含所有的障碍物信息 ALL_PLAYERS           包含所有的内部的外部的交通参与车辆 ALL_SWARM_PLAYERS   包含蜂群(车队)中所有的交通参与车辆

6.5.1  Managing Selections  管理选集 可以进行slection集合的管理,可以新建一个集合并向里面添加相应的障碍物和action

6.5.2 Selections as pivot   领航员集合 单一的player可以作为其他player的领航员pivot,让其他车辆模仿它的action。 同样也可以选择一个集合作为领航员角色,集合中的每一个角色都可以进行trigger的触发知道最后一个action终止。 

6.5.3 Selections as owner of triggers and actions    集合作为触发器和动作的拥有者

可以把触发器和相应的动作和集合进行关联,一个action可以通过这样关联进行集群触发,方便不同的交通参与者之间定义的action进行复制。  和集合关联的触发器在主窗口中显示为绿色,一般的触发器在主窗口中显示为黄色。

 

7、场景模板(Scenario Templates):

可以按照自定义的模板文件导出部分场景,可以把一个场景中的一部分场景导入到另一个场景中去。 一些交通拥堵的场景、事故场景都可以导入新的场景中去。

 

8、测量工具(Measuring Tool):

在主窗口的map上点击鼠标右键,选择测量。可以在地图上选择点进行测量,可以进行角度和距离测量。 可以使用右键 measure ——remove measure points来删除测量点。

 

9、配置交通信号灯(Configuring Traffic Lights):

  有两种交通灯的定义方式:1、controllers:在道路描述阶段进行内置,多个红绿灯同一时刻同时切换状态,在可视化界面中没有物理显示。2、Traffic Lights: 在道路描述阶段就以可见信号的方式表述出来,并受一个确定的控制器控制,用户可以设置红绿灯的状态随着控制器的状态变化而变化,在同一个时刻受同一个控制器控制的红绿灯可以有完全不同的状态。

 

9.1 交通信号灯对话框工具(Tools of the Traffic Light Dialog) 

点击红绿灯按钮使其处于被激活状态,界面会自动跳转到map中选中的红绿灯 点击红绿灯树按钮,可以显示出来每一个控制器下面所控制的交通信号灯。 点击复制按钮,可以复制交通标志或者控制器。点击粘贴按钮 进行粘贴

 

9.2 编辑控制器(Editing Controllers)

颜色代表红绿灯的颜色,宽度代表持续时长,在列表找那个选中其中一个,打开control中可以对各部分的时长和顺序进行编辑,也可以点击Create Phases button新建一个红绿灯。

在signal controller这个对话框中可以对 controller的ID、名字、延时、红绿灯各个状态的顺序和时间进行设置。红绿灯的状态包括 off  红绿灯关闭状态,没有任何意义 stop   需要停止 stop/attention  需要停止,但是很快就可以前行了 go   可以走 go exclusive  可以走,不用等但是要等其他的 blink 一直在开关之间闪,等同于关 

 

9.3  编辑灯光信号 (Editing Light Signs)

把controller进行展开,可以看到交通信号灯的安排情况。

 

10、动作信息监控(Action Info Monitor):

 

动作信息监控界面可以对仿真过程中所有的action信息进行监控,包括正在执行的还有已经执行完毕的。 可以显示action的owner、ID、类型和触发器trigger的名称,当action执行完毕,状态指示灯从绿色就变成了红色,并显示了执行的时间。如果这个action还有其他额外的参数比如换道时间,选中action,然后在新窗口中查看 parameter / value。 如果不想看到action的执行信息,可以在模型中设置成 noinfo模式。 在仿真运行过程中可以使用SCP命令行来看管action的提示信息。 可以使用owner-Filter对action进行筛选,得出特定owner对应的action执行情况。

 

11、信息池窗口 (Message Dock Window):

 

场景编辑器仿真过程中所有可能对用户有用的信息,都可以在信息池窗口进行记录。

 

 12、编辑元素位置(Editing Element positions):

在位置编辑对话框Edit Position dialog可以对元素的绝对位置进行编辑。 可以选中元素,点击鼠标右键,然后点击Edit Position选项,可以对元素的坐标和航向角进行编辑。

 

13、场景编辑器设置(Scenario Editor Settings):

使用过程中为了方便我们可以对场景编辑器的窗口带下、网格大小进行调整,为了和image generators和task control这种插件进行联通,也需要对一些特征进行设置。设置完成以后,新的配置文件会被写到硬盘里,需要重启软件才能生效。

 

13.1 基本属性定义  Basic Properties

窗口的宽度、高度、X和Y点的位置、IP地址、UDP发送接口,UDP接收接口、网络模式设置、本地回路网络设置、自动连接、自动重置、X方向的网格大小、Y方向的网格大、默认场景、速度单位、靠右行驶、备份文件保存、删除备份文件、旧场景警告、路径形状点设置是否可以编辑、车辆模型、行人模型、行人视野、驾驶模式定义、障碍物定义、障碍物动力学定义。

13.2  SCP GUI(SCP用户图形界面)

Simulation Control Protocol 仿真控制协议 使用SCP用户图形界面进行XML格式的message数据编辑,XML中的所有的接口和子接口都需要满足 格式需求。 SCP用户图形界面会按照语法进行高亮显示并且识别一些简单的语法错误,点击OK后如果还有错误的话会有简单的提示框进行提示,告诉发生错误的行列号,在编辑器中可以进行简单的复制粘贴操作。

下面是一个外部触发器定义的示例:

 

14、瓦片地图(Map Tiles):

 

瓦片地图可以使用PNG格式的图片,比如一个小图片代表一平方公里。所有的瓦片地图应该放在同一个文件夹里。

本文基于VTD英文说明书进行翻译,加入作者本身一些理解。如有侵权请联系原作者进行删除。

因作者水平有限,这些阅读笔记难免会有错误,还希望各位发现及时批评指正,不断更新



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有