智能驾驶仿真软件VTD的学习资料较少,新建了一个QQ群:993708460,加群前请私聊群主(QQ:2059799865)加入。群管理需要花费时间和精力,为了鼓励管理员和群成员积极互动,入群需交¥9.99的群费。
目录
12.3 添加自定义外部(Add own externals)
10 创建路口
10.1 Basis
junction 的连接部分叫 path,连接的两个道路叫做 tracks。一条tracks可以连接多条 path。每一条path需要明确连接到哪条车道(Lane)。path和tracks本质上都是分离的道路。
主窗口junction的图形化展示只是一个任意的矩形,它应该仅仅靠近junction。它的实际位置不影响数据库的图形或者逻辑性为。
10.2 自动生成路口连接
自动生成路口连接从ROD 4.4.3开始,此功能可以使用。
第一步:(Create incoing tracks as standard roads)把 incoming tracks设置成标准的道路格式
第二步:(Create the container for the junction entries)在左侧的工具栏中选择“create junction”按钮 ,激活junction mode,然后使用鼠标左键选中路口区域,然后返回选择模式 selection mode
第三步: (Add paths to the junction)点击选择矩形框(把鼠标放在矩形框内进行点击即会变色,然后右侧窗口栏就会弹出 connection1、connection2等),然后就变成了红色。在弹出的 specify junction对话框中选择相应的path进行添加
可以对参数running path radius 和 turning path clothoid 进行调整,然后点击Create Path创建路径。
The exit lanes 当新建右侧驾驶习惯的道路时,默认出口的车道都是红色;当新建左侧驾驶习惯的道路时,出口车道都是绿色。
The entry lanes 当新建右侧驾驶习惯的道路时,默认入口的车道都是绿色;当新建左侧驾驶习惯的道路时,入口车道都是红色。修改路径参数,以确保路径几何形状符合连接。
按“创建路径”后调整路径参数有两种方法:
方法A:为参数赋一个新值,然后再次单击“Create path”。
方法B:按下“Ctrl”键,然后按一下路径,选择路径。弹出arc属性对话框。改变螺旋半径和螺旋长度的值,使其与结匹配,如图47所示。
第四步:Finish the junction (重复一二三步添加完所有的path)
如果交叉路口包含非常复杂的轨道(例如大量不同的车道),你的外部路径可能会缺少一个边界。如果缺少此边框,请自己添加一个,并在其左侧添加一个圆角。圆角ID必须与此连接的其他边框上的编号相同。
第五步: Check the junction entries: 检查路口出口
选择连接区域。在连接对话框中选择每个路径。所选路径也将在主窗口中显示出来,如图48所示。用VTD验证逻辑场景编辑器或具有同等功能的工具。
第六步: Generate database and see the visual appearance ,点击按钮然后进行可视化查看
10.3 手动生成路口连接
手动生成路口连接费时费力,一般只有在自动生成失败的时候才会进行手动生成。
第一步:创建道路 (create tracks):创建进入的轨道作为标准道路。第六章包含了如何创建轨迹的信息。
第二步:创建平移道路(create shifted tracks),使用sticky points 和 move line lateral功能进行道路平移。
第三步:创建连接道路(create first path)选择两条道路,然后选择 tracks -> create connecting track。新的path就会被生成。
第四步:配置几何结构(configuring geometry),按住crtl + 左键点击,可以选择调整几何结构
第五步:安排车道。Assigning lanes 调整车道的方向用来适应实际需求,驾驶车道的路面需要做隐形处理。这样做是为了避免闪烁,因为如果所有通过路口的路径都包含人行道,那么它就会相交,并导致图形错误。使路面不可见可以通过车道对话框来实现。选择一个车道,切换到车道属性的style选项卡,并切换隐藏路面,如图54所示。
第六步:做好所有的连接线。对所有其他可能的连接重复步骤2、3和4(在本例中,总共将创建6条路径)。在为每个轨道分配车道时,您可以通过使用properties对话框中提供的复制轨道和复制粘贴功能来减轻负担。当添加所有路径时,连接应该如图55所示。
现在所有的临时轨道可能被移除。在此步骤之后,您的连接应该如图所示56
第七步: 创建路口的junction,以包含所有的entries
第八步:Add paths to the junction :
根据你的接驳点的布局(例如参考线的轨道和接驳点是在同一条线上或有横向偏移),使用以下其中一种方法来建立接驳点的连接矩阵:
方法A(快速,如果准备充分和参考线的轨道和路径直接连接)
○选择所有路径,然后junction container(使用“Shift+ Left mouse”)执行“junction->add paths to junction (auto)
使用矩形框选中所有的path(shift + left mouse),右键执行 junction -> add path to junction()auto
方法B (如果方法A失败的部分或全部 tracks,可以用方法B操作)
○首先选择一个路径 , 然后junction container(using “Shift+Left mouse”) 执行“junction->add path to junction (manual)” 图58
方法C (如果方法A或者B失败的部分或全部 tracks,可以用方法B操作) 会需要,如果track有偏移
○选择进入的轨道,路径,出口轨道,然后junction执行(使用“Shift +鼠标左键”) “junction->add connection to junction (manual)” 图59。三个track的逻辑连接就会被自动创建。
重复这些步骤,直到所有轨道都成功地添加到连接矩阵中
第九步:检查junction的entries
只选择junction区域。通过junction参数的定义和生成可以出现一个对话框。通过选择一个对应的connection和path(按下对应的“edit”键),用户可以控制每一个junction的connection(在主窗口中也能看到)。用VTD的SE或者类似的工具可以证实这些逻辑。
第十步:最后的可视化
如果车道上有人行道,那么交叉口就会有几个洞,而且不止一条车道的地方就会出现闪烁。相反,我们有一个大的整体,将会被平边填满。Junction的当前状态如图60所示。
对于每个封闭路径,执行以下步骤
- 选择与要填充的内部区域相接触并定义其宽度的lane(也就是说,不要选择零号车道,而是通常选择边框或-1车道)。在我们的示例中,我们选择边框(lane -2)
- 在lane对话框中定义fillet位置(这里:lane的左边,参见图),并选择适当的fillet样式。输入唯一的fillet ID或使用“Get按钮”。这个ID需要用于每个触及内部区域的lane。见图61
- 对所有路径重复这些步骤。剩下唯一要做的就是按要求设置标记。这将根据junction而异。
11 平铺Tiles
Tiles是预先定义好的数据库,可以快速构建大型数据库。他们可以通过连接多个tiles来快速构建大型数据库。Tiles是ROD中最快速的方法可以用来产生一个完整的数据库。
11.1 增加一个tile
通过在主车口打开“context menu”,选中“add tiles”可以在ROD 中增加Tiles。一个对话框会出现如图62所示。Tiles可以被筛选以便用户能够尽快地找到适合他们的数据库。下面是一个概览。
11.2 连接Tiles
Tiles可以通过下面的步骤进行连接。
- 按下Ctrl 然后点击tile的边缘,把一个tile移动到另一个tiles然后释放。(暗示:最好的方式是点击tile的一个黄色的小角)
11.3 Reload tiles
tile可以重复使用很多次。如果一个平铺文件被更改了,而用户想要使用新的更正后的平铺文件,他们需要从数据库中删除该平铺文件,并再次添加它来应用更改。
为了避免这种不必要的工作,用户可以使用“Reload tiles”栏调用:
Edit -> Tile......-> Reload tiles,可以更新重载素有的瓦片
只要原始文件的track id和signal id没有更改,它们就不会受到重新加载的影响。提示高级用户:“Renum tracks”和“relink tiles”不再需要。
12 在ROD中使用自定义数据
ROD能够提供构建复杂路网所需要的大量数据、模型和Tiles。但是,用户仍然有可能需要编辑自己的数据。这个章节讲述如何为增加自己的数据。
提示:使用自定义数据需要创建一个名叫Setup-files的文件。如果想看一下文件是怎样的格式,可以打开存储在ROD包中的Lib/Standard/SetupFiles目录,打开其中一个文件。它包含在ROD中的配置对象objects的段落。要想使用自己的数据,你必须由你自己写下类似的段落。
你必须在项目设置(ProjectSetting)中增加文件夹。如下图所示。
点击保存按键后,将会询问你以重新加载项目。第一次加载之后,数据就可以进行使用。
12.1 添加自定义信号
可以将自己的信号添加到ROD的配置中。一个完整的信号配置由3d模型文件(必须是FLT格式)、适当的纹理和setup-file中的条目。
第一步:新建一个包含你自定义信号数据的文件夹。增加你的信号FLT模型和合适的质地(texture)。在该文件夹下创建一个SIGNALS.DAT文件(文件名中必须包含字符串signals)
第二步:向file中添加一条包含有以下信息的行。注意一个信号由一行进行配置。因此,首先在整个配置行之后使用换行符。下面的配置例子由于空格的原因被分成了两行。
提示:请注意,值必须使用小数点加点而不是逗号。
第三步:单击左侧工具栏中的适当符号,启动ROD并打开项目设置对话框
12.2 添加自定义瓦片(Add own tiles)
根据下面的步骤添加自己的tiles。
第一步:选择tile所需要的所有道路tracks。选择将要成为平铺的一部分的所有轨道。通常需要选择数据库的所有轨迹,因此在主窗口中点击鼠标右键打开上下文菜单,点击“选择所有轨迹”。
第二步:在Edit -> Tile ->Create from selection。
现在,您将看到轨道已经从白色更改为淡黄色,并在您的选择项上方添加了一个矩形。对话框出现在右侧。
第三步:还可以向平铺Tiles添加junction和遮挡平面occlusion planes。选择平铺并按住“Shift”,同时点击一个连接将其添加到选择中。使用 Edit -> Tile –>……> Add element。
提示:确保数据库不包含任何不属于轨道的几何数据(例如绿线)。tile中不需要这些数据。
第四步:在tile对话框中输入设置。如果在右侧不可见,则在主窗口中选择tile。将文件保存到所需的目录。
提示:在tile information的对话框里修改坐标等
第五步:建立自己的tile的文件,例如 MY_TILES.DAT。推荐新建一个自己的文件夹以存储自己所有的tile。注意文件名必须包含字符串“tiles”。将下面的行添加到文件中,以配置您的外部(external)。当然,您的外部参数可能会有所不同。
第六步:打开ROD并且打来项目设置。
12.3 添加自定义外部(Add own externals)
通过执行以下步骤,可以将自定义外部类似地添加到前几章。
第一步:首先新建一个文件夹,在该文件夹下加上自己的FLT格式的3D模型然后生成一个DAT文件,例如 EXTERNALS.DAT(注意文件名必须包含字符串“externals”,并且必须扩展名为.DAT或者.inc。例如:MY_EXTERNALS.DAT或者externals_config.inc)
第二步:然后添加一条包含有以下信息的行。注意一个外部可以通过一行进行配置。因此,首先在整个配置行之后使用换行符。由于空间问题,下面的示例配置必须分成两行。
第三步:打开ROD和project setting
12.4 添加自定义风格(Add own styles)
第一步:新建一个文件夹以存储你自定义的style数据。在该文件夹下新建一个SETUP.DAT文件(注意文件名必须包含字符串“setup”,并且必须扩展名为.DAT)
第二步:增加一个包含以下信息的line。注意每种样式都需要一个STYLE_DEF.TEX_DEFs以用于多种样式。每个定义的配置必须在一行完成。因此因此,首先在整个配置行之后使用换行符。由于空间问题,下面的示例配置必须分成两行。
○关于纹理,宽度和长度必须匹配“2的幂”(256,512,1024,2048像素)。
○提供用户的保留ID:[20000-20999]
第三步:最后增加style的定义。在附录中你可以找到对应的语法。
为了简化符号,下面的例子描述了一个叫做OWNSTYLE的道路障碍:
第四步:打开ROD和工程设置。
13 导入数据
13.1 导入OpenDRIVE
地图中的Signal heading(信号头)在OpenDRIVE中确认之前就已经被ROD导出。Signal heading的导入导出和Object heading类似,都是相对道路方向而言的。正如在OpenDRIVE中介绍的heading一样,heading是相对于signal的方向而言的。OpenDRIVE signal heading的导入导出都是根据标准默认的(相对signal的方向)。
但是一些用户仍然想使用旧的方式。在ProjectSetting中用户可以切换signal heading,像object一样。
13.2 导入OpenStreetMap
通常,OpenStreetMap数据并不包含所有必需的数据。一些好的例子是道路宽度,车道数量,道路标志,道路纹理等。因此就需要做一些假设,但是但这些可能因国家而异,有时甚至因城镇而异。因此,这些假设都可以在配置文件中进行配置。这个文件在ProjectSetting的导入窗口中可以指定。
ROD将只转换“highway”和配置文件中列出的“值”。如果有疑问,请使用OpenStreetMap编辑器检查osm数据。
在ROD 4.5.6中实现了导入城镇开放街道地图的第一个版本,包括路口和环形路。高速公路入口/出口尚未实现。
14 通过命令行启动ROD
15 性能表现
阐释了如何提高ROD和VTD运行时的表现,降低内存占用,减弱渲染效果。
附录
1 快捷键
2 Style的定义
语法:
ELEMENT <name>(必有)
name= 上述所有样式列表中指定的元素的名称
SHOW_LOD <n> (可选)
本文基于VTD英文说明书进行翻译,加入作者本身一些理解。如有侵权请联系原作者进行删除。
对整个ROD的了解尚不够深,难免有一些不对的地方。欢迎各个小伙伴批评指正!在用软件的过程中,也希望能够不断地熟悉不断地更新。