第三节:场景设计软件
Last updated
Last updated
场景设计软件是用来创建和修改场景、以及配置交通流量的可重复执行设置的工具。我们称这种设置为一种场景。所有场景支持选取特定的场景参数值,组成场景参数向量,并通过具体的场景语言表示,以人类可读的XML格式编写,也可以通过任何文本编辑器进行编辑。
场景设计软件能够根据具体地理状况建立复杂的交通路网;能够对复杂的、各种干扰(包括行人干扰、不遵守交通规则的车辆干扰)的交通状况进行仿真。
以下章节描述了对场景设计软件的配置过程以及实现场景的所有必要步骤。
请在Ubuntu 18.04或Ubuntu 20.04系统的电脑上进行如下安装配置过程:
首先,双击安装包或选中安装包后单击鼠标右键,将安装包提取到指定位置。
将本电脑场景设计软件的saimo.license拷贝到scenarioDesigner文件夹下,替换原有的saimo.license。
从Sim Pro控制栏中的快捷键进入到场景设计软件的主界面。
场景设计软件支持按工程创建场景,场景中所依赖的文件均以相对路径来记录。软件默认指向Sim Pro的工作目录,即***/opt/simpro/workspace***,在场景设计软件编辑完场景后,就能直接在Sim Pro上运行。当然,用户也可以通过“工程路径设置”来配置实际的工程路径。
由于工程里必须要包含场景依赖文件,这些文件按属性放在了“Catalogs”、“Config”、“DynamicObjects”、“StaticSignals”文件夹里,如果需要创建新的工程,建议将Projects/SampleProject目录拷贝出来,将名称修改为实际的项目名称。
属性栏显示当前选中元素的属性。如果没有元素被选中,则显示场景配置信息。
菜单栏从左往右依次是:文件、编辑、视图和帮助。
【文件】
新建:点击 “新建” 可以新建一个空白的场景设计软件界面。
打开:点击 “打开” 可以打开.xosc格式的文件。
保存:点击 “保存” 可以保存为.xosc格式的文件。
另存为:点击 “另存为” 可以将当前文件存储到指定位置。
场景文件设置:设置场景元素、轨迹路线、航点路线的储存位置。当选择“全局引用”时,场景元素和路线会保存至工程路径下Catalogs文件下相应的文件夹里;当选中“独立配置”时,场景元素和路线会保存至当前的场景文件里,重新安装软件或更换电脑后,场景文件中的路线仍然可用。
工程路径设置:点击该按钮可以对工程路径进行设置。
退出:点击该按钮直接退出场景设计软件。
【编辑】
地图设置:点击该按钮,可以在主界面右侧设置场景的xodr路网文件和osgb可视化数据库。如果使用了道路编辑器自带的SaimoDemo.xodr地图,那么还可以勾选UE4数据库,在下拉框中选择“赛目demo”,即可在仿真时使用UE4数据库。
环境设置:点击“环境设置”按钮,进入环境设置对话框。选择“关闭”模式,环境设置参数不可编辑,选择“启用”模式,环境设置参数可编辑。环境设置参数包括:仿真类型、日期时间、天气和路面的摩擦比例因子等(注:摩擦比例因子不是路面的摩擦系数,而是表示由于下雨、下雪等天气变化导致的路面摩擦系数变化情况,摩擦比例因子默认为1)。
交通灯:点击 “交通灯” 弹出交通灯设置对话框。详见5.2.3交通灯配置。
交通流:点击 “交通流” 弹出交通流设置对话框。用户可以在一个或多个中心车辆周围定义交通流。这种特殊的自动车辆离开中央车辆周围的交通流区域后,它将自动从道路上移除,然后又会被更新到区域边缘的另一个位置。
交通流列表:显示已创建的交通流的中心车辆。
新建:点击新建,在弹出的窗口中选择交通流的中心车辆。
删除:删除交通流列表中选中的交通流。
中心车辆:显示交通流的中心车辆。在交通流被创建之后,不可切换中心车辆。
交通车辆数量:交通流区域的最大车辆数量。
交通流区域:
可以指定交通流外区域为圆形或椭圆形。
- 圆形:用户可以配置圆形半径,半径可取值范围为50~5000米。
- 椭圆形:用户可以配置椭圆形的短半径、长半径。
- 内半径:内圆半径。
- 中心偏移:圆/椭圆中心点相对于中心车辆位置在车辆正前方向上的偏移距离。
交通车辆类型:用户可以设置交通流中各种类型车辆(小轿车、货车、巴士、卡车、自行车)的占比。各种类型车辆的占比之和应该等于100%。
车辆模型:想点击该按钮可以对车辆模型进行设置。用户可以进行车辆模型的选择,用于交通流中出现的车辆。
驾驶员模型:点击该按钮可以对驾驶员模型进行设置。
仿真结束条件设置:点击“仿真结束条件设置”可以对仿真结束条件进行设置。
“仿真时长”支持仿真时长达到某一设定数值时,仿真结束。
“到达指定位置”支持场景元素到达指定位置附近时,仿真结束。触发元素可以选择场景内的全部元素。指定位置可以直接通过x、y坐标设置,也可以在主视图内选区。
在主视图内,仿真结束位置用旗帜表示,可以拖动旗帜修改位置。旗帜周围的白色圆圈表示触发范围半径,触发元素到达圆圈范围内时,仿真结束。
【视图】
点击“视图”展示“交通灯”、“交通流”、“航点路线”、“轨迹路线”、“交通标志”、“标志引用”、“路网物体”、“元素名称”选项,选中或取消选中控制对应的元素在界面上是否展示。默认都不选中。
(注:标志引用指的是xodr文件中的SignalReference)
***新建:***同“菜单栏-文件-新建”。
***打开:***同“菜单栏-文件-打开”。
***保存:***同“菜单栏-文件-保存”。
***属性:***打开属性设置窗口。
***交通灯:***打开交通灯属性设置窗口。
提供选择中心目标、放大、缩小、显示全部。
选择中心目标:选择中心目标,是个下拉单选框,也可以输入元素名称。输入元素名称时,将根据输入值在下拉菜单中显示模糊匹配的内容。下拉菜单中显示场景中所有的车辆、人员、物体,并按属性依次显示,排序次序从前到后为车辆、人员、物体。
选择了中心目标后,视图将平移,使得中心目标位于屏幕中心点。
放大、缩小:每点击一次,在原缩放比例基础上放大/缩小10%。
显示全部:将道路网络地图重置为居中并对其进行缩放,使得整个道路网络地图在主视图一屏内完整显示,并尽量占满全屏。
操作工具栏提供视图元素操作工具,从上往下依次为目标选择工具、车辆、人员、物体、航点路线、轨迹路线。
在其它工具没有被激活的时候,默认目标选择工具处于激活状态。
选中元素
通过单击鼠标一次选择一个元素,或者在周围拖动一个矩形来选择多个元素(车辆、人员、物体、路线)。按住Ctrl键点击未选中的元素,能把该元素加入到已选择元素中;按住Ctrl键点击选中的元素,能把该元素从已选择元素中去掉。
删除
删除:删除当前元素及其事件删除。在键盘按Delete键也可实现相同效果。
激活此工具后,再次单击地图上的某一点,新车辆将添加到放置点所在路面上。如果点击的位置位于车道内,则编辑器将根据所在车道的信息和交通方向自动决定新车辆的航向。
新建的车辆会默认根据 “车辆模型”、“驾驶员定义”中第一个可用的定义进行配置。
激活此工具后,再次单击地图上的某一点,新人员将添加到放置点所在路面上。
新建的人员会默认配置为第一个可用的人员类型和模型。
激活此工具后,再次单击地图上的某一点,新物体将添加到放置点所在路面上。
新建的物体会默认配置为第一个可用的物体定义。
激活此工具后,属性栏显示航点路线对话框。
(1)航点路线列表:
在航点路线列表中,可用的航点路线(所有航点都在道路上的航点路线)显示在列表上方,不可用的航点路线(存在不在道路上的航点的航点路线)置灰,显示在列表下方。不可用的航点路线无法展示在主视图内,且不支持进行除删除外的任何操作。
在搜索框输入字符,可以搜索名称包含该字符的航点路线。
(2)基本属性
- 名称:航点路线的名称。
- 路线类型:航路线是否自动闭合。
航点列表展示选中的路线下的所有航点的信息。
- 序号:航点在路线中的次序。
- 道路号:航点所在道路的road ID。
- s:航点的s值。
- 路线策略:航点路线的策略。有以下三种选项可选,默认选择距离最短。
a) 距离最短:此航点通过最短路线连接到下一个航点。
b) 时间最短:此航点通过尽可能快的路线连接到下一个航点。考虑路线长度和道路类型,但不考虑交汇路口或交通标志处的等待时间。
c) 路口最少:此航点通过最少的交汇路口连接到下一个航点。
点击上移/下降按钮,可以上移/下降选中航点在路线中的次序。
激活此工具后,属性栏显示轨迹路线对话框。
(1)轨迹路线列表
在轨迹路线列表中,可用的轨迹路线(所有轨迹点都在道路上的轨迹路线)显示在列表上方,不可用的轨迹路线(存在不在道路上的轨迹点的轨迹路线)置灰,显示在列表下方。不可用的轨迹路线无法展示在主视图内,且不支持进行除删除外的任何操作。
在搜索框输入字符,可以搜索名称包含该字符的轨迹路线。
(2)基本属性
- 名称:路线名称。
- 路线类型:路线是否自动闭合。
轨迹点列表展示选中的轨迹路线上的所有轨迹点的信息。
- 序号:轨迹点在路线中的次序。
- 道路号:轨迹点所在道路的road ID。
- 车道:轨迹点所在的车道id。
- 偏移:轨迹点相对于所在车道的中心线的偏移量。
- s:轨迹点的s值。
- 航向:轨迹点的航向角,即轨迹点方向与x轴正方向的夹角。
点击上移/下降按钮,可以上移/下降选中轨迹点在路线中的次序。
“交通灯”工具按钮可以对地图所有的交通灯进行相位和光罩的配置。
交通灯配置界面的显示模式分为“编辑模式”和“预览模式”。默认为“编辑模式”。
左侧的列表显示所有可用的控制器和交通灯,其中“可用”是指在路网地图中定义、且在当前加载的场景中能加载的交通灯。选中某个控制器或交通灯,右侧的编辑区显示该控制器或交通灯的配置信息。选中交通灯时,还可以使该交通灯居中显示在主视图内。
(1)配置控制器
选中控制器时,可以在编辑区为其选择一个有延时关联的控制器,并设置延时时长。一个控制器与另一个控制器具有延迟意味着——它实际上在参考的第一阶段开始后的秒数就开始有着相对的延迟时间,这可以用来定义渐进式信号系统,但只有当所有连接控制器的总时间相同时才有意义。
控制器相位列表显示控制器的所有相位和相位持续时长。相位类型对于交通流的行为非常重要。
点击“新建”,可以新建一个相位,默认相位类型为关闭,持续时长为5.00秒。双击相位类型,可以在下拉菜单中选择其他相位类型,包括:
关闭:信号灯熄灭,没有意义;
停止:交通参与者必须在信号灯处停车;
停止/注意:交通停止,但不久将允许再次通行;
注意:允许车辆停止或者通行;
通行:正常通行,但必须遵守路权规则;
独占通行:专用车辆可以行驶,不必等待其他车辆;
闪烁:灯光状态反复打开和关闭,否则类似“关闭”状态。
双击持续时长,可以编辑相位的持续时长。
选中某个相位,还可以对其进行“删除”、“上移”、“下移”的操作。
(2)配置交通灯
选中交通灯时,可以在编辑区配置其参数。
交通灯的相位与其所在控制器的相位保持相同,例如,控制器1创建了4个相位,则交通灯10、交通灯12、交通灯20、交通灯22同样也有4个相位。
交通灯的光罩默认为全部关闭状态。在灯相位列表中先选中一个相位,再点击相位中的圆点,可以开启/关闭相应的光罩(如上图,需要先选中相位,再点击圆点)。
除此之外,还可以对交通灯的光罩进行上移、下移和取反的操作。取反可以将交通灯原先开启的光罩变为关闭、原先关闭的关闭的光罩变为开启。
预览模式可以直观地展示控制器的相位类型、时长以及交通灯的光罩。控制器相位条的不同颜色代表不同的相位类型,相位条的长度代表相位的持续时长。
选中控制器或交通灯的相位,单击鼠标右键,可以对相位或光罩进行复制、粘贴的操作。控制器仅复制相位配置信息,交通灯仅复制光罩信息。
新建车辆/选中车辆,在属性区显示车辆配置参数,如下图所示:
在“初始化”选项卡中,可以定义车辆的常规设置,包括模拟开始时和重置后有效的初始条件。
“初始化”选项卡可以配置以下属性:
名称:车辆的唯一名称。
车型:车辆类型,可以显示当前可用的所用类型;
驾驶员:车辆所使用的驾驶员类型,可以从所有定义列表中选择定义好的驾驶员模型。始终可以为车辆分配“无驾驶员”即列表中第一个特殊类型的驾驶员。在这种情况下,车辆实际上不需要后续处理,但同样也无法操作或自主控制。这对停车场景很有用。
控制类型:车辆控制的类型,使用此列表可以让用户自定义通过交通模拟(内部)或者外部模块(外部)来控制车辆。其中内部控制车辆显示为红色,外部控制车辆显示为蓝色。
初速度:定义车辆的初始速度。
位置类型:允许选择车辆在道路上的位置,可以选用的类型有:
① 绝对位置:按照惯性坐标系来配置车辆的初始位置,同样也是在窗口显示的位置。在道路窗口中,可以通过拖动的方式来改变车辆的位置,而且用户可以通过车辆模型上的方向箭头,拖动来改变车辆的初始方向。
② 相对位置:允许车辆相对于某关联实体来定位相对位置。其中关联实体可以在“关联实体”下拉列表中进行选择。“距离”为车辆与关联实体的距离(沿道路中心线测量)必须与相应的道路文件匹配,距离的正值表示车辆位于关联实体的前方,负值表示位于关联实体的后方。“车道”字段中定义相对于关联实体的车道位置,正值表示在关联实体所在车道左侧,负值表示在关联实体所在车道右侧。“偏移”为车道内的相对偏移,正值表示在关联实体所在车道向左偏移,负值表示向右偏移。“行驶方向”下拉列表,让用户自定义车辆应指向与关联实体相同或相反的方向。
(如果车辆的起始位置是相对于一个外部车辆来定义的,请考虑,在模拟开始之前可能不知道外部车辆的确切位置。因此,在准备一个场景时,建议将外部车辆放置在启动时预期的位置。)
③ 道路位置:允许车辆根据道路ID、车道ID、与车道中心线的偏移、航向角来定义初始位置。
④ 航点路线位置:航点路线位置允许将车辆放置在预先定义好的航点路线上,行驶中车辆必须遵循该航向路线。可以从下拉列表中选择一条航点路线,并选择起始车道。如果没有定义航点路线,此选项卡将为灰色不能被选中。
⑤ 轨迹路线位置:轨迹路线位置允许将车辆放置在预先定义好的轨迹路线上,行驶中车辆必须遵循该轨迹路线。可以从下拉列表中选择一条轨迹路线。如果没有定义轨迹路线,此选项卡将为灰色不能被选中。
当创建行人/选中已经创建的行人,在属性区显示对应行人配置项:
有以下属性能够进行配置:
名称:行人的唯一名称。
模型:显示所选人员类型的所有可用图形模型。可选项有成人、小孩和狗。
初速度:定义行人的初始速度。
位置类型:允许选择行人在道路上的位置,可以选用的类型有:绝对位置、相对位置、道路位置、轨迹路线。具体配置方法参照车辆位置类型。
新建物体/选中物体,在属性区显示物体配置参数,如下图所示:
有以下属性能够进行配置:
名称:物体的唯一名称。
物体定义:当前允许格式包括立方体和锥形筒。
物体类型:定义物体的常规类型,包括障碍物、护栏或者其他。
航向:可以配置物体的三维角度来定义物体的所处状态,包括偏航角、俯仰角、翻滚角。
位置类型:允许选择物体在道路上的位置,可以选用的类型有:绝对位置、相对位置、道路位置、轨迹路线。具体配置方法参照车辆位置类型。
默认情况下,内部交通参与者的行为是自主的,也就是说,他们会遵循道路,服从最大或推荐的速度,并与其他交通参与者保持合理的距离。
如果需要交通参与者有一些确定性的行为,则需要为其提供适用的事件。这些可以通过更改到各对象属性对话框中的“事件”选项卡操作来创建。
在事件列表中双击事件的名称,可以修改事件的名称,同一元素的事件名称不可重复。
触发条件有以下几种:
(1)绝对位置
触发器位于绝对(惯性)坐标系中。关联实体表示触发器所需的判断对象,激活半径表示触发器操作激活的范围。在主窗口中,红色十字代表触发点,红色圆圈代表触发半径,可以通过挪动十字来修改触发点的位置。。
上图表示:当车辆061驶入触发器5米的激活半径内,触发事件将会被激活。
(2)相对位置
触发器位于相对(车辆)坐标系中,关联实体表示触发器所需的判断对象,激活半径表示触发器操作激活的范围。在主窗口中,蓝色圆点始终位于关联实体上,不可拖动,蓝色圆圈代表触发半径。
(3)TTC绝对位置
通过关联实体的绝对速度,推导出它以当前恒定速度持续移动到该触发器位置所需的时间。如果此时间减少到给定的TTC以下,则触发此触发器。触发器周围灰色圆圈的大小间接对应于碰撞的时间。
(4)TTC相对位置
计算方式类似于TTC绝对位置,但是在此基础上考虑了事件拥有者和关联实体的相对速度以及关联实体当前位置。触发器周围紫色圆圈的大小间接对应于碰撞的时间。
(5)TH相对位置
考虑触发事件拥有者和关联对象之间的相对时间间隔,即车头时距。触发器周围粉色圆圈的大小间接对应于时距的时间。
(6)绝对速度
如果关联实体超过、未达到或者等于激活速度时,则会激活触发后行为。触发器周围亮粉色圆圈的大小间接对应于激活速度。
(7)行驶距离
当事件主体行驶距离达到设定值时,激活触发后行为。
(8)触发事件
当事件主体完成1个事件后,激活触发后行为。例如下图,事件1完成后,激活事件2的触发后行为,用户可以借此设置车辆一系列的连续操作。
(9)交通灯控制器
交通灯控制器为指定的相位类型时,激活触发后行为。
(10)仿真时长
仿真时长达到指定秒数时,激活触发后行为。
在每一类触发条件下,都可以设置“触发时刻”和“延时”。触发时刻表示当车辆驶入或者驶出激活半径时,会触发事件行为。如果用户有特殊需求还可以定义延时时刻,例如模拟反应延时等。
除了单触发条件,用户还可以设置多触发条件。点击“添加”按钮,即可新增1个触发条件。只有在所有的触发条件都满足的情况下,才会触发事件的行为。
某些行为可能会有先后顺序,比如说变速行为没有达到要求时即还在执行上一个行为时需要变成自适应巡航,就需要强制自适应巡航的触发执行。即如果要确保现在触发的行为被激活,可以选择强制执行。
(1)车辆的触发后行为
针对车辆,有以下触发后行为:
自动:通过选中“使用”使能激活行为,车辆会按照推荐速度保持一个速度行驶直到其他触发被激活。
变道:通过选中“使用”使能激活行为,车辆将改变车道。车道的方向和数量可以在字段方向定义,其中正数表示向左变换,负数表示向右变换。可以根据时间配置变道所需的时间来表示变道行为的激进程度。
变速:通过选中“使用”使能激活行为,车辆将改变车速。车辆的速率以及目标速度都将提前被定义。
轨迹路线:通过选中“使用”使能激活行为,车辆将按照指定轨迹路线进行行驶。
车道偏移:通过选中“使用”使能激活行为,车辆将相对车道中心线或相对某一指定元素,横向偏移一定的距离。
(2)人员、物体的触发后行为
针对车辆,有以下触发后行为:
运动:通过选中“使用”使能激活行为,人员或物体会按照推荐速度保持一个速度行驶直到其他触发被激活。
轨迹路线:通过选中“使用”使能激活行为,人员或物体将按照指定轨迹路线进行行驶。
点击航点路线名称前的图标,该航点路线常亮,可以在地图上一直显示。
点击加号按钮,可以新建1条航点路线。
点击删除,可以删除选中的航点迹路线。
点击增加航点按钮,可在当前航点路线上增加航点。此时鼠标在主界面上显示+,点击鼠标左键,可在该点所在道路的0车道路面的相同s处增加1个航点(航点的t固定为0)。点击鼠标右键,增加航点结束。
点击删除,可以删除选中的航点。
点击轨迹路线按钮时,展示轨迹路线的属性区。
点击轨迹路线名称前的图标,该轨迹路线常亮,可以在地图上一直显示(如上图中的轨迹路线3)。
点击加号按钮,可以新建1条轨迹路线。
点击删除,可以删除选中的轨迹路线。
点击添加轨迹点按钮,可在当前轨迹路线下添加轨迹点。此时鼠标移至主界面的路网上会显示+,点击鼠标左键,在该处添加1个轨迹点,连续点击可连续添加轨迹点。点击鼠标右键,增加轨迹点结束。
点击删除,可以删除选中的轨迹点。