OpenX系列标准:OpenDRIVE标准简述
Posted zolty
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenX系列标准:OpenDRIVE标准简述相关的知识,希望对你有一定的参考价值。
1.概述
作为一个完整的仿真测试场景描述方案,OpenX系列标准包括:OpenDRIVE、OpenSCENARIO和OpenCRG。
标准 | 文件格式 | 文件内容 |
---|---|---|
OpenDRIVE | .xodr | 静态部分(如道路拓扑结构、交通标志标线等) |
OpenDRIVE | .tdo | 保存ROD项目时生成的文件,是ROD项目的可编辑模式 |
OpenDRIVE | .osgb | 通过ROD项目生成的贴图与路面纹理文件 |
OpenSCENARIO | .xosc | 动态部分(如交通车的行为) |
OpenCRG | .crg | 静态部分(道路的表面细节,如坑洼、卵石路等) |
2.OpenDRIVE简介
ASAM OpenDRIVE格式提供了用可扩展标记语言(XML)语法描述道路网络的通用基础,使用文件扩展名xodr。 存储在ASAM OpenDRIVE文件中的数据描述了道路、车道和物体的几何形状,如道路上的路标,以及道路沿线的特征,如信号。ASAM OpenDRIVE文件中描述的道路网络可以是合成的,也可以是基于真实数据的。
ASAM OpenDRIVE的主要目的是提供一个道路网络描述,它可以被送入模拟,以开发和验证ADAS和AD功能。在ASAM OpenDRIVE的帮助下,这些道路网络描述可以在不同的模拟器之间进行交流。为道路描述提供一个标准化的格式,也使行业能够减少为其开发和测试目的创建和转换这些文件的成本。道路数据可以从道路网络编辑器、地图数据的转换中手动创建,或源于现实世界道路的转换扫描。
OpenDRIVE是一种高精地图格式,2006年由德国VIRES公司发布,并反复迭代,期间德国戴姆勒驾驶模拟器部门和德国宇航中心DLR也发挥了很大作用。OpenDRIVE 1.5版本于2019年发布。2018年9月,OpenDRIVE的开发团队将维护工作转交给德国ASAM标准化组织,1.6及之后的版本由ASAM负责。1.6版本已由ASAM在2020年3月发布,本文使用该版本进行介绍。
OpenDRIVE开发起因是VIRES公司在提供驾驶模拟器方案时,发现不同工具的道路数据格式中需要包含逻辑内容是基本一致的,为了方便在不同的驾驶模拟器间进行道路数据的传递,VIRES公司与Daimler Driving Simulator部门决定开发OpenDRIVE格式。转交给ASAM组织后,ASAM组织同样把OpenDRIVE定位为用于仿真测试的地图格式。
OpenDRIVE文件按XML格式编写,文件扩展名为.xodr。
3.OpenDRIVE实例
3.1简介
节点
该格式被组织在节点中,可以用用户定义的数据进行扩展。这有利于个别应用(通常是模拟)的高度专业化,同时保持不同应用之间交换数据所需的互操作性。
参考线
ASAM OpenDRIVE道路网是沿着参考线建模的,它是每条道路的核心部分。道路、车道,包括它们的高程剖面,都附着在参考线上。
代表特征的对象,如信号灯,可以通过使用参考线或全局坐标系来放置,路网被放置在其中。这在上图中可以看到。参考线(中间的蓝线)位于道路的中心,车道(蓝色和浅绿色)连接到这条参考线。道路旁边的标志被放置在s/t坐标系中。
在ASAM OpenDRIVE中,几条道路构成了一个道路网络,并可以被连接起来。ASAM OpenDRIVE可以被看作是不同路段的建筑套件。整个道路网络是由相互连接的各个部分组成的。
上图显示了各个路段是如何相互连接的,例如与一个交叉口。所示的XML片段简要介绍了如何在ASAM OpenDRIVE中使用道路段的链接。这些链接可以支持模拟交通的驾驶逻辑,特别是出于路由的目的,将更多的资源留给验证和开发AD驾驶功能的实际工作。在路口,入口道路之间的每个可能的连接都通过 "连接道路 "连接。由于这种机制,连接道路是ASAM OpenDRIVE中唯一具有重叠表面的道路。
在ASAM OpenDRIVE中,不仅道路被链接,而且道路之间的车道也被链接。这些车道链接可以再次支持模拟交通。当连接道路的参考线和进入路口的道路不一定对齐时,它们对道路网的可视化也很重要(例如在路口的情况)。
与其他标准的关系
ASAM OpenDRIVE的描述格式包含了道路网络的所有静态对象,可以真实地模拟车辆在道路上行驶。为了渲染完整的环境,需要额外的静态三维路边物体的描述格式,如树木和建筑物。路面轮廓包括来自ASAM OpenCRG文件格式。驾驶模拟的动态内容,如车辆机动,可以用ASAM OpenSCENARIO来描述。这三个标准相互补充,涵盖了环内车辆模拟应用的静态和动态内容。
市场相关性
ASAM OpenDRIVE是一个用于描述道路网络的成熟标准。它已经被许多知名的制造商和开发ADAS和AD功能的公司使用,或在全球范围内进行高精度的运动学测量。它正被用于公路和铁路网络。
参与的公司
BMW AG, Daimler AG, AVL List GmbH, dSPACE GmbH, RA Consulting GmbH, Vector Informatik GmbH, VIRES Simulationstechnologie GmbH, virtualcitySYSTEMS GmbH, RWTH Aachen
其他语言
ASAM OpenDRIVE V1.6.0现在有了中文版本。请在右边的蓝色下载框中下载中文版本。中文版本将很快在C-ASAM网站上提供。
较早的版本
ASAM在2018年被委托进一步开发OpenDRIVE(阅读全文)。ASAM发布的第一个版本是ASAM OpenDRIVE V1.6。为了完整起见,我们在网站上提供了之前的版本OpenDRIVE V1.5和OpenDRIVE V1.4:
OpenDRIVE V1.5和OpenDRIVE V1.4.是由VIRES Simulationstechnologie GmbH发布。这些版本是VIRES Simulationstechnologie GmbH的知识产权。ASAM e.V.不对完整性、正确性或任何其他问题承担任何责任。对于责任索赔、问题或其他事项,请联系VIRES Simulationstechnologie GmbH(info(at)vires.com)。
OpenDRIVE 1.6版包含了在1.5版中出现过的元素,但这些元素与1.4版不兼容。为了确保能与1.4版和1.5版兼容,这些元素在1.6版的XML模式中从技术上被定义为可选。在UML模型的注释中,它们被标记为“向后兼容的可选”。
3.2 实例
以Crossing8Course.xodr为例,阐述xodr的文件架构。
其中橙色为必须部分,淡橙色为选填部分。
(1)header
<header>
元素是中的第一个元素。
header用于对文件的整体属性进行说明。说明了主版本(revMajor)、子版本(revMinor)、本路网的版本号(version)、数据库创建时间/日期(date)、最大惯性y值(north)、最小惯性y值(east)、最小惯性x值(west)和最小惯性x值(west)
该版本为1.1
(2)road
路网在OpenDRIVE中用 <road>
元素来表示。每条道路都沿一条道路参考线延伸。一条道路必须(shall)拥有至少一条宽度大于0的车道。
OpenDrive中的道路可以(may)与真实路网中或为应用而设的路网中的道路相提并论。每条道路由一个或多个 <road>
元素描述。一个 <road>
元素可以(may)覆盖一条长路、交叉口之间较短的路,或甚至多条道路。只有在道路的属性不能在先前 <road>
元素中得到描述或需要一个交叉口的情况下,才应(should)开始一个新的 <road>
元素。
road用于对路网中的道路进行说明。包括道路连接信息(link)、道路参考线信息(planView)、超高程信息(lateralProfile)、高程信息(elevationProfile)、车道信息(lanes)和表面信息(surface)以及道路上的物理和交通信号的信息(objects和signals)等。
(2.1)link
在OpenDRIVE中,道路连接用 <road>
元素里的 <link>
元素来表示。 <predecessor>
以及 <successor>
元素在 <link>
元素中被定义。对于虚拟和常规的交叉口来说, <predecessor>
以及 <successor>
元素必须使用(shall)不同的属性组。
(2.2)type
道路类型(例如高速公路以及乡村公路)定义了道路的主要用途以及相关的交通规则。道路类型对于整个道路横截面均有效。
通过在沿参考线的给定点上定义不同道路类型,可(may)在 <road>
元素中根据需要改变道路类型。道路类型将持续有效,直到另一个道路类型被定义。
在OpenDRIVE中,道路类型用元素中的 <type>
元素来表示。道路类型本身在@type属性中被给定。
(2.3)planView
在OpenDRIVE中,参考线的几何形状用元素里的 <geometry>
元素来表示。
<planView>
元素是每个 <road>
元素里必须要用到的元素。
(2.4)elevationProfile
The elevation profile record contains a series of elevation records which define the characteristics of the road’s elevation along the reference line.
高程剖面记录包含一系列的高程记录,定义了道路沿参考线的高程特征。
elevationProfile用来描述参考线上给定点处的高程元素(elevation)等信息,必须沿参考线按升序对元素进行定义。
(2.5)lateralProfile
The lateral profile record contains a series of superelevation and crossfall records which define the characteristics of the road surface’s banking along the reference line.
横向剖面记录包含一系列的超高程和横断面记录,这些记录定义了沿参考线的道路表面的银行特征。
在OpenDRIVE中,超高程用元素中的 <superelevation>
元素来表示。
该属性被定义为围绕着s轴的路段倾斜角。必须(must)沿参考线按升序定义元素。元素的参数将持续有效,直到下一个元素开始或道路参考线结束。道路的超高程程默认为零。
lateralProfile用来描述超高程(superelevation)、形状信息(shape)等信息,超高程从数学角度被定义为围绕参考线的道路横截面的倾斜角。这意味着超高程对于向右边倾斜的道路具有正值,对于向左边倾斜的道路具有负值。该属性被定义为围绕着s轴的路段倾斜角。必须沿参考线按升序定义元素。元素的参数将持续有效,直到下一个元素开始或道路参考线结束。道路的超高程程默认为零。shape属性被定义为相对于参考水平面路段的路面。一个拥有不同t值的s位置上可存在多个形状,从而对道路的弯曲形状进行描述。
(2.6)lanes
在OpenDRIVE中,车道用 <road>
元素里的 <lanes>
元素来表示。
中描述了道路的不同车道的信息。在OpenDRIVE中,所有道路都包含了车道。车道用 road元素里的lanes元素来表示。Lanes描述了车道组属性(laneSection)。Type属性描述了车道类型,车道类型描述了车道的主要用途及与其相对应的交通规则。Link属性描述了车道之间的连接情况。Width属性定义了车道的宽度。Speed属性定义了给定车道上允许的最大行驶速度。Border属性是用来描述车道宽度的另一种方法,它并不会直接定义宽度,而是在独立于其内部边界参数的情况下,对车道的外部界限进行定义。material元素用来表示车道材质。Access可以用来让车道局限于特定的道路使用者。height元素可以用来表示车道高度。roadMark属性可以用来定义车道外边界线条的样式。laneOffset元素可以来表示车道偏移。
(2.7)objects
在OpenDRIVE 中,物体用 <object>
元素中的 <objects>
元素来表示。其按每个 <road>
元素被定义。
(2.8)signals
在OpenDRIVE中,标志用 <road>
元素里的 <signals>
元素来表示。
对于交通信号,中分别描述了不同交通信号的位置、高度和id等信息。
(3)controller
在OpenDRIVE中,控制器用 <OpenDRIVE>
元素里的 <controller>
元素来表示。
被引用标志的ID存储在 <controller>
元素的 <control>
元素中。
road标签中定义了红绿灯的id和位置等,为了方便实现对红绿灯相位的控制,需要配置。该标签中定义了controller的id和name,其下的control中,可以指定多个signal的id,从而实现对多个红绿灯的同步控制。controller的相位顺序和时长需要在场景文件及OpenSCENARIO中配置。如下图:
(4)junction
在OpenDRIVE中,交叉口用 <junction>
元素来表示。联接道路则用 <junction>
元素中的 <connection>
元素来表示。OpenDRIVE并未特意将去路定义为元素或属性,来路也可被视作为去路,因此二者在此处可被相提并论。通往该道路的联接道路将此类道路隐性地定义为去路。
道路的描述中对不同的道路分别给出了其前后连接的道路,这对于一般的道路足以描述其连接关系,但是对于路口道路的连接,却不能清楚的描述,于是需要使用junction。
junction包括交叉口的名称(name)、ID、类型(type)、联接道路信息(connection)等。incomingRoad为该连接路的来路的id,connectingRoad为该连接路的id。laneLink中描述来路和连接路的车道的连接关系,from为来路的车道id,to为与其连接的连接路的车道id。
参考文献
以上是关于OpenX系列标准:OpenDRIVE标准简述的主要内容,如果未能解决你的问题,请参考以下文章