OpenDrive地图格式学习(未完待续


前言`

干中学干中学,最近项目中要用到此类相关的知识点,把它整理下
参考1

一、OpenDrive是什么

OpenDRIVE 格式起源于 2005 年。当时,德国 VIRES 公司在提供驾驶模拟器方案时,发现不同工具的道路数据格式中包含的逻辑内容基本一致,为了方便在不同的驾驶模拟器间进行道路数据传递,VIRES 公司与戴姆勒驾驶模拟器部门决定开发 OpenDRIVE 格式。
2006 年,VIRES 公司发布了该格式并反复迭代,期间德国宇航中心 DLR 也发挥了很大作用。2006 年发布时,宝马、戴姆勒、德国宇航中心、弗劳恩霍夫研究所等公司和机构也加入了开发 OpenDRIVE 格式的计划。
2018 年 9 月,OpenDRIVE 的开发团队将维护工作转交给德国 ASAM 标准化组织。2020 年 3 月,ASAM 发布了 OpenDRIVE 1.6 版本。截至 2024 年 11 月,最新版本是 OpenDRIVE 1.8.1。如今,OpenDRIVE 格式已成为描述道路网络的成熟标准,被全球众多知名制造商以及开发 ADAS 和自动驾驶功能的公司广泛使用。

ASAM OpenDRIVE是ASAM仿真标准的一部分,该标准专注于车辆环境的仿真数据。除了ASAM OpenDRIVE,ASAM还提供其他仿真领域的标准,例如ASAM OpenSCENARIO和ASAM OpenCRG。
ASAM OpenDRIVE 定义了道路网络静态描述的存储格式。与 ASAM OpenCRG 结合使用,可以向道路网络添加非常详细的路面描述。ASAM OpenDRIVE 和 ASAM OpenCRG 仅包含静态内容。要添加动态内容,需要 ASAM OpenSCENARIO。这三个标准相结合,提供了包含静态和动态内容的交通模拟的场景驱动描述
在这里插入图片描述
OpenDRIVE文件(.xodr)遵循XML(可扩展标记语言)格式,它由一系列标签和属性组成,用于描述道路网络的各个方面。以下是OpenDRIVE文件的基本结构和一些主要元素:

文件头部(Header):包含文件版本信息和一些基本的元数据,如制造商、创建日期等。
道路(Roads):描述道路网络的主要部分。每个道路包含了道路几何、车道、路口等信息。
道路几何(Road Geometry):定义道路的形状和拓扑结构。这包括了道路的中心线、车道边界、交叉口形状等。
车道(Lanes):描述车辆行驶的车道信息,如车道宽度、车道标线、车道类型等。
路口(Intersections):描述道路交叉口的信息,包括路口类型、连接的道路等。
信号灯(Signals):定义交通信号灯的位置和控制方式。
路缘(Roadside):描述道路两侧的路缘信息,如路缘标识、路灯等。
对象(Objects):描述道路上的各种对象,如标志牌、路标、建筑物等。
标高(Elevation):定义道路沿着垂直方向的高度变化

在这里插入图片描述

在这里插入图片描述


二、重要知识点

1、坐标系的概念

个人觉得坐标系的概念比较重要,因此先整理坐标系的相关概念
OpenDRIVE 使用三种类型的坐标系,如下图所示:

惯性 x/y/z 坐标系
参考线 s/t/h 坐标系
本地 u/v/z 坐标系

在这里插入图片描述
如果未另行说明,则局部坐标系将相对于参考线坐标系进行定位和定向。参考线坐标系通过指定原点以及原点相对于彼此的航向、滚动和俯仰旋转角度,相对于惯性坐标系进行定位和定向。

在这里插入图片描述
其实这里我没有理解参考线坐标系、局部坐标系。局部坐标系为什么是这个朝向,比较疑惑的。

1、惯性坐标系

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、参考线坐标系

参考线坐标系同样也是右手坐标系,应用于道路参考线。s方向跟随着参考线的切线方向。这里需要说明的是:参考线总是被放置在由惯性坐标系定义的x/y平面里。t方向与s方向成正交。在定义完垂直于x轴和y轴、朝上的h方向后,整个右手坐标系才算完成。被定义的自由度如下:
在这里插入图片描述
坐标沿参考线,以[m]为单位,由道路参考线的起点开始测量,在xy平面中计算(也就是说,这里不考虑道路的高程剖面);
横向位置,在惯性 x/y 平面内向左正;
在右手坐标系中垂直于st平面;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、Local coordinate systems 局部坐标系

根据ISO 8855局部坐标系是右手坐标系,其轴的指向方向如下。以下内容适用于非旋转坐标系:
在这里插入图片描述
通过依次设置航向角/偏航角、俯仰角和横摆角/翻滚角,将元素(例如物体)置于局部坐标系中
在这里插入图片描述
在这里插入图片描述
图14展示了对应角的正轴与正方向。局部坐标系只能(can)通过以下方法被置于参考线空间中:如图16所示,在参考线坐标系中提供局部坐标系的原点和相对于参考线坐标系、局部系原点的方向(航向角/偏航角)。
在这里插入图片描述

4、所有坐标系的总结

惯性坐标系、参考线坐标系和局部坐标系将在OpenDRIVE中同时被使用。图17中的示例描述了三个坐标系相对于彼此的位置与方向设定。
在这里插入图片描述

5、OpenDRIVE中的地理坐标参考

空间参考系的标准化由欧洲石油调查组织(EPSG)执行,该参考系由用于描述大地基准的参数来定义。大地基准是相对于地球的椭圆模型的位置合集所作的坐标参考系
通过使用基于PROJ(一种用于两个坐标系之间数据交换的格式)的投影字符串来完成对大地基准的描述。该数据应(shall)标为CDATA,因为其可能(may)包含会干预元素属性XML语义的字符。

在OpenDRIVE中,关于数据集的地理参考信息在

元素的元素中得以呈现。Proj字符串(如以下XML示例中所示)包含了所有定义已使用的空间参考系的参数:
Proj参考

2、Geometry 几何形状

道路的走向是多种多样的,它们可以是空旷地面上的直线、高速公路上细长的弯道、亦或山区狭窄的转弯。为从数学角度对所有这些道路线进行正确建模,OpenDRIVE提供了多种几何形状元素。 图19展示了五种定义道路参考线几何形状的可行方式:
直线;螺旋线或回旋曲线(曲率以线性方式改变);有恒定曲率的弧线;三次多项式曲线;参数三次多项式曲线
在这里插入图片描述

1、道路参考线

道路参考线是OpenDRIVE中每条道路的基本元素。所有描述道路形状以及其他属性的几何元素都依照参考线来定义,这些属性包括车道及标志。
按照定义,参考线向s方向伸展,而物体出自参考线的侧向偏移,向t方向伸展。
图20展示了OpenDRIVE中一条道路的不同部分。
道路参考线;一条道路上的单独车道;沿道路放置的道路特征(如标志)
在这里插入图片描述
在这里插入图片描述
在OpenDRIVE中,参考线的几何形状用元素里的 元素来表示。
元素是每个 元素里必须要用到的元素。
在这里插入图片描述
以下规则适用于道路参考线:

每条道路必须(shall)有一条参考线。
每条道路只能(shall)有一条参考线。
参考线通常在道路中心,但也可能(may)有侧向偏移。
几何元素应(shall)沿参考线以升序(即递增的s位置)排列。
一个 元素应(shall)只包含一个另外说明道路几何形状的元素。
若两条道路不使用交叉口来连接,那么新的道路的参考线应(shall)总是起始于其前驱或后继道路的 。参考线有可能(may)被指向相反方向。
参考线不能(shall)有断口(leaps)。
参考线不应(should)有扭结(kinks)。

2、Straight line 直线

在这里插入图片描述
在OpenDRIVE中,直线用 元素里的 元素来表示
在这里插入图片描述

3、Spiral 螺旋线

如图23所示,螺旋线是一条描述参考线变化曲率的回旋曲线。螺旋线可(may)被用来描述曲率在 到连贯的转换。
螺旋线是以起始位置的曲率(@curvStart)和结束位置的曲率(@curvEnd)为特征。沿着螺旋线的弧形长度(见 元素@length),曲率从头至尾呈线性。
也可以按顺序排列 、 和 几个元素,从而对复杂曲率进行描述。
在这里插入图片描述在OpenDRIVE中,螺旋线用 元素里的元素来表示。
在这里插入图片描述
在这里插入图片描述以下规则适用于螺旋线:

@curvStart和@curvEnd不应该相同

4、Arc 弧线

在这里插入图片描述在这里插入图片描述
在这里插入图片描述以下规则适用于弧线:曲率不应为零

5、 Generating arbitrary road courses from geometry elements 从几何形状元素中生成任意车道线

如图25所示,通过对OpenDRIVE中所有可用的几何形状元素进行组合,便可以创建诸多种类的道路线。
为避免曲率中出现断口,建议使用螺旋线将直线与弧线以及其他有不同曲率的元素进行结合。
在这里插入图片描述

6、Cubic polynom (deprecated) 三次多项式(弃用)

Cubic polynom (deprecated) 三次多项式不在使用,由参数三次曲线等区线代替

7、Parametric cubic curve 参数三次曲线

参数三次曲线被用于描述从测量数据中生成的复杂曲线。参数三次曲线相较于三次多项式更为灵活,它能描述更多种类的道路线。与在x/y坐标系中被定义或被当成局部u/v坐标系的三次多项式比起来,x坐标与y坐标的插值是通过它们自身的样条相对于共同的插值参数p而进行的

只需使用x轴和y轴便可以用参数三次曲线生成道路线。为保持三次多项式的连贯性,可利用u轴和v轴同时将它们计算到三次多项式里。
u§ = aU + bUp + cUp2 + dU
v§ = aV + bV
p + cVp2 + dV
若无另外说明,插值参数p则在[0;1]范围内。另外,也可(may)在 [0; @length of ]的范围内对其赋值。与三次多项式相似,有着变量u和v的局部坐标系可(may)被任意放置和旋转

为简化描绘,局部坐标系可与s/t坐标系在起始点(@x,@y)和起始方向@hdg上保持一致:
u点在局部s方向,即沿参考线在起始点上。
v点在局部t方向,即从参考线在起始点上作横向偏移。
参数@aU、@aV和@bV应为零。

给参数@aU、@aV、 和@bV赋予非零值会导致s/t坐标系的转移和旋转。
在为已知参数p定义曲线上的点后,在考虑相对于参数@aU、@aV、@bU、@bV、起始坐标(@x,@y)和起始方向@hdg所规定的位移和方向的前提下,u值和v值会被转换成x/y坐标系里的值

这里需注意的是:插值参数p和 元素中起始点(@x,@y)和与参数p相关的点(x§,y§)之间弧线实际长度是非线性关系。通常来说,只有起点和终点参数p=0和p=@length(选项@pRange=arcLength)与弧线的实际长度一致。

考虑到 元素中说明的位移和旋转参数@a、@b、(@x,@y) 和@hdg,在给定的u坐标上最终的x/y曲线位置如图29所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在OpenDRIVE中,参数三次曲线用 元素里的 元素来表示。
在这里插入图片描述
在这里插入图片描述
以下规则适用于参数三次曲线:
若局部u/v坐标系与s/t坐标系的起始点一致,那么多项式参数系数为@aU=@aV=@bV=0。
若@pRange=“arcLength”,那么p可(may)在[0, @length from ]范围内对其赋值。
若@pRange=“normalized”,那么p可(may)在[0, 1]范围内对其赋值。
多项式参数aU、bU和 aV应为0,以确保参考线的平滑。

4、Roads 道路

路网在OpenDRIVE中用 元素来表示。每条道路都沿一条道路参考线延伸。一条道路必须拥有至少一条宽度大于0的车道

OpenDrive中的道路可以与真实路网中或为应用而设的路网中的道路相提并论。每条道路由一个或多个 元素描述。一个 元素可以覆盖一条长路、交叉口之间较短的路,或甚至多条道路。只有在道路的属性不能在先前 元素中得到描述或需要一个交叉口的情况下,才应(should)开始一个新的 元素。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.Properties for road sections and cross section 道路段以及横截面的属性

某些道路属性是基于道路横截面得到描述的,道路横截面是道路参考线上给定点处的道路正交视图。超高程是一种与道路横截面相关的属性。如果元素对道路横截面有效,那么它对道路参考线上给定点处的整个宽度都有效。
其他道路属性是基于道路平面图得到描述的,其中包括车道和道路高程。这些属性称为道路段,其描述了道路的各个部分以及它们沿道路参考线s坐标的特定属性。对路段有效的属性仅对特定车道有效,可能对整个道路宽度无效。
这意味着可为不同属性(例如道路类型或车道段)创建不同的道路段,方式是使用新的起始s坐标以及 元素中的附加元素。两个给定s-起始位置之间的差别隐式地指定了组的长度。段的存储必须(shall)按s坐标升序来进行。

2、Road Linkage 道路连接

为了能够在路网中行进,道路必须相互连接。道路可以连接到其他道路或交叉口上(孤立的道路除外)。
图35的场景展示了禁止、允许以及建议的道路连接方式。非常重要的是,相互连接的道路的车道及其参考线需与其前驱以及后继道路的车道及其参考线直接连接。如果参考线连接正确,则应该避免重叠或断口,但不完全禁止
在这里插入图片描述
图36的场景展示了在交叉口外可行的道路连接方式,其中包括两条同向、反向或汇聚的道路。如果这两条参考线相互不连接,则也无法实现道路连接
在这里插入图片描述
在这里插入图片描述
在OpenDRIVE中,道路连接用 元素里的 元素来表示。 以及 元素在 元素中被定义。对于虚拟和常规的交叉口来说, 以及 元素必须使用不同的属性组。

在这里插入图片描述
如果道路与一条后继、前驱或相邻道路连接,该属性则遵循道路头文件。孤立的道路可(may)忽略该元素

t_road_link_predecessorSuccessor

必须将不同属性用于虚拟以及常规的交叉口。@contactPoint须用于常规交叉口;@elementS 和 @elementDir则须用于虚拟交叉口。
在这里插入图片描述
以下规则适用于道路连接:

只有在连接(linkage)清晰的情况下,才能直接连接两条道路。如果与前驱或后继的关系模糊,则必须使用交叉口。
道路可将其他道路或交叉口作为其后继或前驱,它也可以没有后继或前驱。
道路亦可作为自身的后继(predecessor)或前驱 (successor)。

3、Road type 道路类型

道路类型(例如高速公路以及乡村公路)定义了道路的主要用途以及相关的交通规则。道路类型对于整个道路横截面均有效。
通过在沿参考线的给定点上定义不同道路类型,可在 元素中根据需要改变道路类型。道路类型将持续有效,直到另一个道路类型被定义。
在OpenDRIVE中,道路类型用元素中的 元素来表示。道路类型本身在@type属性中被给定。

t_road_type

道路类型元素对于整个道路横截面持续有效,直到新的道路类型元素出现或者道路结束。
在这里插入图片描述
以下规则适用于道路类型:
当道路类型有变更时,必须在父级元素中创建一个新的 元素。

可添加国家/地区代号以及州标识符至 元素中,以便对适用于该道路类型的国家交通规则进行详细说明。相关数据并不存储在OpenDRIVE中,它将存储于应用中。

只能使用ALPHA-2 国家/地区代号,ALPHA-3 国家/地区代号不能得以使用,原因是只有ALPHA-2 国家/地区代号才支持州标识符。

单独车道可能与其所属道路的类型不同。道路类型和车道类型代表不同的属性,若有具体说明,那么两种属性都为有效。

1、限速情况

可为道路类型设置速度限制(限速)。若道路类型已更改且在路段中已有速度限制存在,由于道路类型并不拥有全局有效的速度限制,因此需要一个新的速度元素。必须为每个道路类型元素单独定义限速。
在OpenDRIVE中,速度限制用 元素里的 元素来表示。

t_road_type_speed

该属性结合了特定的道路类型对默认的最大允许速度进行定义。感觉官网的这个描述写错了
在这里插入图片描述
最大速度可以被定义为每个道路类型元素的默认值。
单独车道可以有不同于其所属道路的速度限制,其将被定义为。
源自标志的限速必须始终被优先考虑。

4、Methods of Elevation 高程的方法

以下几种方法用于标高道路或道路的部分:
道路高程详细说明了沿道路参考线(s方向)的高程。
通过使用超高程以及形状定义,横断面图将对与t方向参考线正交的高程进行详细说明。
在这里插入图片描述
s长度不随着高程变化。

1、Road elevation 道路高程

一条道路可沿其参考线被标高,需根据每个在参考线上给定点的道路横截面来对道路高程进行定义。高程以米为单位,道路的默认高程为零。若使用了地理坐标参考,则根据地理坐标参考对零进行定义。
在OpenDRIVE中,高程用 元素中的 元素来表示
Attributes 属性

t_road_elevationProfile_elevation

该属性定义了参考线上给定点处的高程元素。此外,必须沿参考线按升序对元素进行定义。s的长度不随高程而改变。
在这里插入图片描述
使用以下三次多项式函数来计算道路高程:
elev(ds) = a + bds + cds² + d*ds³
在这里插入图片描述
每当新的元素出现,ds则清零。使用以下公式对高程值的绝对位置进行计算:
s = sstart + ds
在这里插入图片描述
以下规则适用于道路高程:

道路必须沿其参考线被标高。
道路高程可单独或者结合超高程以及道路形状被定义。
对高程元素的定义必须(shall)按升序进行。由于高程可以上下移动,元素必须(shall)被连接到参考线上的相应位置。

道路高程的定义持续有效,直到该类型的下一个元素得到定义。

2、Superelevation 超高程

超高程是横断面图的一部分,它描述了道路的横坡。它可用于将道路往内侧倾斜,从而使车辆更容易驶过。如图40所示,对于被超高程的道路而言,道路的t轴不与下层地形平行。因此,横断面图的定义适用于整个道路横截面。超高程不改变车道的实际宽度,但它会影响被投影的宽度。超高程的默认值为零。
超高程从数学角度被定义为围绕参考线的道路横截面的倾斜角。这意味着超高程对于向右边倾斜的道路具有正值,对于向左边倾斜的道路具有负值。
在这里插入图片描述
在OpenDRIVE中,超高程用元素中的 元素来表示。
Attributes 属性

t_road_lateralProfile_superelevation

该属性被定义为围绕着s轴的路段倾斜角。必须沿参考线按升序定义元素。元素的参数将持续有效,直到下一个元素开始或道路参考线结束。道路的超高程程默认为零。
在这里插入图片描述通过使用以下三次多项式函数,对超高程进行计算:
sElev (ds) = a + bds + cds2 + d*ds3
在这里插入图片描述每当新的元素出现,ds 则清零。超高程值的绝对位置的计算方式如下:
s = sstart + ds
在这里插入图片描述
以下规则适用于超高程:
超高程的定义必须适用于整个道路横截面。
通过使用@level属性,道路的单条车道

4、Shape definition 形状定义

由于某些横向道路形状过于复杂,仅使用超高程来描述是不够的。通过形状则能够更详细地描述在参考线上给定点处的道路横截面的高程。这意味着,一个有多个t值的s坐标上可以(may)拥有多个形状定义,从而对道路的弯曲形状进行描述。

如果不结合超高程而使用了形状,车道的实际宽度可能会由于其曲线的形状而被改变。相对于平面图的投影宽度不受影响。
如果结合超高程而使用了形状(如图41所示),相对于超高程状态的道路投影宽度不会变化,但相对于平面图的投影宽度会有变化。
如图42所示,被定义的t范围必须最少要覆盖到整个 元素的最大t展开式。
图41展示了如何对两个横断面图之间的高度信息进行计算。该图中的横断面图处于sR1并拥有五个多项式定义,而处于sR2的横断面图则拥有三个多项式定义。可使用图41中的公式对两个横断面图之间的一个点以及线性插值进行计算。
在这里插入图片描述
典型的应用案例是高速测试跑道以及路拱上的弯曲路面。形状的默认值为零。
在这里插入图片描述
Attributes 属性

t_road_lateralProfile_shape

该属性被定义为相对于参考水平面路段的路面。一个拥有不同t值的s位置上可存在多个形状,从而对道路的弯曲形状进行描述。
在这里插入图片描述
通过以下多项式函数可对横断面图的形状进行计算:
hShape (ds)= a + bdt + cdt2 + d*dt3
在这里插入图片描述
每当新的元素出现,dt 则清零。形状值的绝对位置用如下方式计算:
在这里插入图片描述以下规则适用于形状:
可结合超高程以及道路高程对形状进行定义。
在使用形状时,不应该存在任何车道偏移。

5、Road surface 道路表面

OpenDRIVE并不包含对道路表面的描述,该类描述则包含在OpenCRG中,但OpenDRIVE可以引用在OpenCRG中生成的数据。两者均不包含有关道路表面视觉展示的数据。借助OpenCRG可以对更细节化的道路表面属性进行建模,例如图43中的卵石或坑洼。
在这里插入图片描述
如CRG的名称所示,CRG数据被置于常规网格中,该网格是沿参考线被布置的(类似OpenDRIVE的道路参考线)。在每个网格位置上,它都包含了在真实道路上测量到的绝对高程和某些附加数据,这些数据可以对相对于参考线的delta高程进行计算。将OpenDRIVE和CRG数据进行结合的关键在于对两条参考线之间的相关性以及一条使用两者高程数据的规则进行定义。CRG数据可能(may)会与OpenDRIVE道路参考线有偏差(参见@tOffset),其方向可能与道路布局方向相同或者相反(参见方向)。
在这里插入图片描述可(may)在不同模式下将CRG数据应用于给定的OpenDRIVE道路:
@mode = attached附加:
出于对@tOffset以及@sOffset参数的考虑,CRG数据集的参考线将被替换为OpenDRIVE道路的参考线。通过对CRG网格的评估以及@zOffset和@zScale的应用后得出CRG局部高程值,该值会被添加到OpenDRIVE道路的表面高程数据中(该数据衍生于高程、超高程以及路拱的组合)。无需考虑道路的全方位几何是否匹配,这个模式可用于将相对于原始CRG数据的参考线的道路表面信息从任意CRG道路转移到OpenDRIVE道路中。CRG道路的原始位置、航向角/偏航角、曲率、高程以及超高程均不在考虑范围内。CRG网格的评估是沿OpenDRIVE参考线,而不是沿CRG参考线而进行的。
在这里插入图片描述
在这里插入图片描述
该模式与附加模式基本无异,唯一与附加模式不同的是只有CRG数据的高程值会被作为关注对象(即OpenDRIVE高程被设置为零)。为了避免出现问题,需准确地将@sStart及@sEnd设置为CRG数据的边界,否则可能会出现如下图中的高度为零的缺口。
在这里插入图片描述
CRG数据集参考线的起点相对于OpenDRIVE道路参考线上的点位于由@sStart、@sOffset和@tOffset定义的位置上。通过为横向以及纵向移位、航向角/偏航角(@hOffset)以及高程(@zOffset)提供偏移值,可以明确OpenCRG与OpenDRIVE各自的参考线之间的相关性。在真实(genuine)模式中,CRG数据会完全取代OpenDRIVE高程数据,也就是说,会直接从CRG数据中计算出道路表面给定点的绝对高程(可把这看成将OpenDRIVE高程、超高程和路拱均设为零时,对CRG和OpenDRIVE数据进行合并)。若使用该方法, 必须(must)确保CRG数据的几何形状在一定的范围内与下层的OpenDRIVE道路几何是匹配的。
在这里插入图片描述
数据集仅从给定轨道或交叉口记录中引用,但并无平移或旋转转换可被应用。CRG文件中的所有数据保留在其原生的坐标系中。高程数据被认作为是惯性数据,也就是AS IS
由于CRG数据可能(may)只覆盖了道路表面部分,所以必须(must)确保衍生于OpenDRIVE数据的高程信息在有效的CRG范围外依然可以(can)得以使用。在OpenDRIVE中,道路表面用 元素里的 元素来表示,OpenCRG中描述的数据则用 元素里的元素来表示。

若在给定位置的相同物理属性(属性用途)具备一个以上的CRG条目,那么OpenDRIVE文件内出现顺序中的最后一个条目必须作为相关条目。所有其他的条目则被忽略。
在这里插入图片描述
方向属性在OpenCRG的u/v坐标系的原点处沿着CRG文件进行旋转。"same"值的旋转角度为0,"opposite"值则为180°。T-偏移不被方向属性所影响。

t_road_surface_CRG

在这里插入图片描述
在这里插入图片描述

<surface>
  <CRG file="fancyData.crg" sStart="0.0" sEnd="100.0" orientation="same" mode="attached" tOffset="0.0">
  </CRG>
</surface>

5、Lanes 车道

在OpenDRIVE中,所有道路都包含了车道。每条道路必须拥有至少一条宽度大于0的车道,并且每条道路的车道数量不受限制
需要使用中心车道对OpenDRIVE中的车道进行定义和描述。中心车道没有宽度,并被用作车道编号的参考,自身的车道编号为0。对其他车道的编号以中心车道为出发点:车道编号向右呈降序,也就是朝负t方向;向左呈升序,也就是朝正t方向。
图51展示了一条道路的中心车道,该车道拥有多条交通车道以及不同的行驶方向。在这个示例中,根据靠左行车以及靠右行车的交通模式,中心车道将道路类型中定义的行驶方向分隔开来。由于并未使用车道偏移,因此中心车道等同于道路参考线。
在这里插入图片描述图52展示了拥有相同行驶方向车道的道路(即单行道)的中心车道。
在这里插入图片描述
在OpenDRIVE中,车道用 元素里的 元素来表示。
在这里插入图片描述
以下规则适用于车道的使用:
每条道路必须拥有一条中心车道及一条宽度大于0的车道。
道路可根据需要而设定任意数量的车道。
中心车道不能拥有宽度,这就意味着不能(shall)将元素用于中心车道。
中心车道编号必须为0。
车道编号必须在中心车道之后从1开始,朝负t方向为降序,朝正t方向为升序。
车道编号必须保持连续性且无任何间断。
每个车道段都必须有唯一的车道编号。
可通过使用元素的@type属性对双向车道进行详细说明。

<lanes>
    <laneSection s="0.0">
        <left>
            <lane id="2" type="border" level="false">
                <link>
                </link>
                <width sOffset="0.0" a="1.0" b="0.0" c="0.0" d="0.0"/>
            </lane>
            <lane id="1" type="driving" level="false">
                <link>
                </link>
                <width sOffset="0.0" a="4.0" b="0.0" c="0.0" d="0.0"/>
            </lane>
        </left>
        <center>
            <lane id="0" type="none" level="false">
                <link>
                </link>
            </lane>
         </center>
         <right>
             <lane id="-1" type="driving" level="false">
                <link>
                </link>
                <width sOffset="0.0" a="4.0" b="0.0" c="0.0" d="0.0"/>
             </lane>
             <lane id="-2" type="border" level="false">
                <link>
                </link>
                <width sOffset="0.0" a="1.0" b="0.0" c="0.0" d="0.0"/>
             </lane>
         </right>
    </laneSection>
</lanes>

1、Lane grouping within lane sections 在车道段中进行车道分组

为了能够便利地在OpenDRIVE道路描述中进行查找,一个车道段内的车道可分为左、中和右车道,车道在该组中用 元素来描述。由于车道编号朝负t方向呈降序且朝正t方向呈升序,应用可(can)从ID属性中给出的车道编号中得知车道的方向(除非@type是双向的)。
在这里插入图片描述
在OpenDRIVE中,车道组用 元素内的

、 和 元素来表示。ID属性用嵌套在
、 <right 和 元素里的 元素来定义。

以下规则适用于车道分组:
带有正ID的车道在中心车道的左侧,而带有负ID的车道则在中心车道的右侧。
每个车道段必须包含至少一个或元素。
必须给每个s坐标定义一个

元素。
每个车道段都可包含一个
元素。
为了能够更好地确认方向,车道应按照降序ID按从左到右的顺序排列。

车道可被分成多个段。每个车道段包含车道的一个固定编号。如图56所示,每次车道编号的变更都随之产生一个新车道段的需求。车道段的定义将沿道路参考线按升序来进行。

图56中,路段被分割成不同的车道段。若车道编号改变,则需要定义一个新的车道段。
在这里插入图片描述
在OpenDRIVE中 ,车道段用 元素里的 元素来表示。

t_road_lanes_laneSection

车道可被分成多个段,每个车道段都包含一个车道的固定编号。每一次的车道编号变更都将需要定义一个新的车道段。
在这里插入图片描述
为了能够便利地在OpenDRIVE的道路描述中进行查找,一个车道段内的车道可分为左、中和右车道。每个车道段均必须(shall)包含一个

元素和至少一个或元素
车道元素被包括在左/中/右元素中。车道元素必须(should)使用降序ID从左到右展示车道
在这里插入图片描述
以下规则适用于车道段:
每条道路都必须拥有至少一个车道段。
车道段必须按升序来定义。
每个s位置上都必须只有一条中心车道。
应该避免在长距离上使用宽度为0的车道。
每次车道编号改变都必须有新的车道段被定义。
车道段将持续有效,直到一个新的车道段被定义。
可根据需要多次更改一个车道段内的车道属性。
可仅使用@singleSide属性为道路的一侧对车道段进行定义。

3、 Lane offset 车道偏移

车道偏移可用于将中心车道从道路参考线上位移,以便能够更轻松地在道路上对车道的局部横向位移进行建模(比如对左转车道进行建模)。
根据用于车道偏移的插值,车道偏移和形状定义两者的组合可导致不一致性。若线性插值被用于定义沿参考线的道路形状,那么它也应被用于偏移定义,以便两者的定义能被一致地组合使用。
图58展示了中心车道偏离道路参考线而产生的偏移。
在这里插入图片描述
在OpenDRIVE中,车道偏移用元素内的元素来表示。

t_road_lanes_laneOffset

在这里插入图片描述
利用以下三阶多项式函数来计算给定点的偏移:
offset (ds) = a + bds + cds² + d*ds³
在这里插入图片描述
每当新的元素出现, ds 则清零。偏移值的绝对位置计算方式如下:
s = sstart + ds
在这里插入图片描述

<lanes>
     <laneOffset s="25.0" a="0.0" b="0.0" c="3.9e-03" d="-5.2e-05"/>
     <laneOffset s="75.0" a="3.25" b="0.0" c="0.0" d="0.0"/>
     …
<\lanes>

以下规则适用于车道偏移:
车道偏移不能与道路形状一同使用。
当底层的多项式函数有变化时,必须启动一个新的车道偏移。
若边界定义已存在,则不允许出现偏移。

4、 Lane linkage 车道连接

车道的连接信息被存储在OpenDRIVE中以便进行车道查找,并将借助于每条车道的前驱以及后继信息来对连接进行描述。车道和交叉口均可作为车道的前驱和后继部分。车道可连接至相同或不同道路上的其他车道上。
在这里插入图片描述在OpenDRIVE中,车道连接用元素里的元素来表示。和元素在元素内得到定义。
在这里插入图片描述
以下规则适用于车道连接:
一条车道可拥有另外一条车道作为其前驱或后继。
只有当两条车道的连接明确时,它们才能被连接。若与前驱或后继部分的关系比较模糊,则必须使用交叉口。
若车道结束于一个路口内或没有任何连接,则必须删除 元素。


二、


总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值