智能驾驶仿真软件VTD的学习资料较少,新建了一个QQ群:993708460,加群前请私聊群主(QQ:2059799865)加入。群管理需要花费时间和精力,为了鼓励管理员和群成员积极互动,入群需交¥9.99的群费。

目录

10 创建路口

10.1 Basis

10.2 自动生成路口连接

10.3 手动生成路口连接

11 平铺Tiles

11.1 增加一个tile

11.2 连接Tiles

11.3 Reload tiles

12 在ROD中使用自定义数据

12.1 添加自定义信号

12.2 添加自定义瓦片(Add own tiles)

12.3 添加自定义外部(Add own externals)

12.4 添加自定义风格(Add own styles)

13 导入数据

13.1 导入OpenDRIVE

13.2 导入OpenStreetMap

14 通过命令行启动ROD

15 性能表现

附录

1 快捷键

2 Style的定义



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所示。

对于每个封闭路径,执行以下步骤

  1. 选择与要填充的内部区域相接触并定义其宽度的lane(也就是说,不要选择零号车道,而是通常选择边框或-1车道)。在我们的示例中,我们选择边框(lane -2)
  2. 在lane对话框中定义fillet位置(这里:lane的左边,参见图),并选择适当的fillet样式。输入唯一的fillet ID或使用“Get按钮”。这个ID需要用于每个触及内部区域的lane。见图61
  3. 对所有路径重复这些步骤。剩下唯一要做的就是按要求设置标记。这将根据junction而异。

11 平铺Tiles

Tiles是预先定义好的数据库,可以快速构建大型数据库。他们可以通过连接多个tiles来快速构建大型数据库。Tiles是ROD中最快速的方法可以用来产生一个完整的数据库。

11.1 增加一个tile

通过在主车口打开“context menu”,选中“add tiles”可以在ROD 中增加Tiles。一个对话框会出现如图62所示。Tiles可以被筛选以便用户能够尽快地找到适合他们的数据库。下面是一个概览。

11.2 连接Tiles

Tiles可以通过下面的步骤进行连接。

  1. 按下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的了解尚不够深,难免有一些不对的地方。欢迎各个小伙伴批评指正!在用软件的过程中,也希望能够不断地熟悉不断地更新。

VTD的官方help翻译-ROD部分(10~15章)相关推荐

  1. VTD软件说明书阅读之ROD(Road Dsigner)

    1.说明书的整体结构 1.有经验的ROD用户快速上手 2.ROD软件的安装和电子狗驱动配置 3.ROD软件的基本配置图 4.新建一个Project和进行Project的配置 5.编辑器设置 Edito ...

  2. 通过 .gitlab-ci.yml配置任务-官方配置文件翻译

    Gitlab CI yaml官方配置文件翻译 通过 .gitlab-ci.yml配置任务 [TOC] 来源:https://github.com/Fennay/git... 此文档用于描述.gitla ...

  3. Dapper官方教程翻译8:Dapper方法之QueryMultiple(转)

    Dapper官方教程翻译8:Dapper方法之QueryMultiple 2019年02月28日 10:42:22 Day_and_Night_2017 阅读数:120 QueryMultiple方法 ...

  4. PhysX官方手册翻译

    PhysX官方手册翻译 本人水平有限,翻译中如果出现比较恶的句子...大家一定要查阅原文. 更新:2008-7-1   22:22  Raycasting(射线查询) 更新:2008-6-26 23: ...

  5. 搜狗翻译宝成为官方指定翻译机

    10月21日,全球最大规模电子产品采购展--环球资源移动电子展在香港圆满闭幕.搜狗翻译宝Pro作为官方指定翻译机凭借42种语言翻译.离线翻译.拍照翻译等多项丰富实用的功能和时尚靓丽的外观设计,在为期4 ...

  6. 翻译连载 | 第 10 章:异步的函数式(下)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇...

    为什么80%的码农都做不了架构师?>>>    原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS> ...

  7. 2017年含金量最高的机器学习技能或知识有哪些? 翻译 2017年10月20日 14:22:44 标签: 机器学习 / quora 7504 原文:As of 2017, what set of

    2017年含金量最高的机器学习技能或知识有哪些? 翻译 2017年10月20日 14:22:44 标签: 机器学习 / quora / 7504

  8. Android官方文章翻译之管理设备苏醒状态(Managing Device Awake State)(二)

    这是Managing Device Awake State的下半篇,上半篇请看:Android官方文章翻译之管理设备苏醒状态(Managing Device Awake State)(一) 在了解接下 ...

  9. 怎样写一个简单的操作系统?(原文标题:How to write a simple operating system) 分类: 翻译 2011-01-26 01:10 3175人阅读 评论(3) 收藏

    怎样写一个简单的操作系统?(原文标题:How to write a simple operating system) 分类: 翻译2011-01-26 01:10 3175人阅读 评论(3) 收藏 举 ...

  10. 鸿蒙构建系统——gn官方FAQ翻译,以及gn官方文档分享

    GN FAQ 翻译 (PS:花了将近半个小时,把GN的官方FAQ翻译了一遍,有错漏之处欢迎大家指正.) GN 的文档在哪里? GN有大量的内置的帮助文档,所以你可以运行gn help命令查阅,但是你同 ...

最新文章

  1. 在VSO8中使用QT
  2. android 自定义图形,Android自定义View之图形图像(模仿360的刷新球自定
  3. MySQL快速查询的12条建议,让你不止会用select *
  4. python restful 框架_restful-dj
  5. java 实现动画_java编程加载窗口,实现动画
  6. mysql导入csvnull,MySQL Workbench从CSV导入NULL
  7. 将Java类作为子进程运行
  8. 生成随机数 java
  9. 图像处理 基于Visual C++编程 学习笔记 (3)显示灰度图像和二值化图像
  10. 【转】【C#.NET】ASP.NET状态管理 APPlication,Session,Cookie和ViewStat用法
  11. 遗传算法原理及其在车辆路径规划中的应用
  12. Matlab画图相关知识
  13. 键盘拆开重新安装步骤_笔记本键盘按键安装拆卸详解
  14. TOM邮箱,那个陪我走过20多年的邮箱
  15. [网络安全学习篇64]:业务安全
  16. 山东理工大学ACM平台题答案关于C语言 1228 两数组最短距离
  17. 推荐三款良心实用软件,让人心动
  18. Win10 串口编程
  19. 截图工具(win+shift+S)截图之后为什么粘贴不上?有了这个方法,不用单独下载多次复制粘贴的工具了
  20. 开心消消乐java下载_开心消消乐原版下载安装

热门文章

  1. 这篇文章写给想学计算机视觉还没开始的人
  2. 四选1数据选择器的VHDL程序设计
  3. Java经典递归算法
  4. php网站动态实例教程,PHP动态网站开发实例教程
  5. 线性反馈移位寄存器的输出(未解出)
  6. 计算机房网络布线培训方案,网络工程综合布线实训授课计划.doc
  7. 阿里Java面经大全(整合版)
  8. elasticsearch-carrot2插件打包
  9. HDU---3642:Get The Treasury【立方体体积并】
  10. 计算机怎么接入外接键盘,联想笔记本怎么外接键盘驱动 笔记本外接键盘驱动方法...