OpenDrive学习笔记
Posted 小葵花幼儿园园长
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenDrive学习笔记相关的知识,希望对你有一定的参考价值。
OpenDrive
是什么
OpenDRIVE格式使用文件拓展名为xodr的可扩展标记语言(XML)作为描述路网的基础。
存储在OpenDRIVE文件中的数据描述了道路的几何形状以及可影响路网逻辑的相关特征(features),例如车道和标志
该格式将通过节点(nodes)而被构建,用户可通过自定义的数据扩展节点。
Opendrive坐标系
- xy惯性坐标系
- st参数坐标系
- uv局部坐标系
惯性坐标系
- X轴—东,Y轴—北
- 弧度关系为X轴为0 逆时针为正(-pi, pi),Y轴为pi/2。
st坐标系
- st坐标系的走势就是从参考线开始到参考线结束一直沿着参考线的切线方向进行的
- st坐标系是针对于参考线来说的,只有同一条参考线为基准下才能比较两个点的st坐标。
- S取值范围[0, 参考线长度length]
- T为基于参考线的偏移,使用处于参考线上的点t值均为0
描述属性
总体结构
(元素很多,但是很多元素也很少用到)
总体分为:
- Header类
- Roads类
- Juction类
Header类
geoReference — 规定了整个Opendrive地图的投影方式
Roads类
包含所有地图中描述了的道路,每一条道路被一对road标签表示
Road元素:
- link
- planView — 道路参考线(主要)
- lateralProfile — 超高程(从数学角度被定义为围绕参考线的道路横截面的倾斜角。)
- elevationProfile — 高程
- lanes
- type — 道路类型
- surface
road自身属性
- name道路名称(非必要
- length道路的总长度
- id 道路的唯一属性
- junction — 是否属于道路的唯一属性(道路关系的集合,处理复炸道路连接情况)
参考线
重要:
- 一条道路只能有一条参考线
- 一条参考线可以由多条几何线构成
几何线:
- 使用几何线来表示参考线
- 分段来描述一条道路的走势
几何线包含:
- 直线
<line>
- 螺旋线
<spiral>
- 弧线
<arc>
举例表示参考线和几何线在opendrive中式如何表示的:
直线 — line:
- s — 起始位置
- x 、 y — 惯性坐标系
- hdg — 给出起始朝向,用弧度表示
- length — 几何线长度
弧线 — arc
- 在直线基础上+curvature弧度
螺旋线 — spiral
- 弧度线性变化的曲线
- curvStart 线性变化起始点
- curvEnd 线性变化的终止点
link
道路连接
- Successor — 前驱
- predecessor — 后继
示例:
<link>
<predecessor elementId="0" contactPoint="end" elementType="road"/>
<successor elementId="1" contactPoint="start" elementType="road"/>
</link>
组合曲线
elevationProfile — 高程元素
在OpenDRIVE中,高程Road elevation 用 <elevationProfile>
元素中的 <elevation>
元素来表示。
该属性定义了参考线上给定点处的高程元素。
表达式:elev(ds) = a + b*ds + c*ds² + d*ds³
lateralProfile — 超高程元素
在OpenDRIVE中,超高程用<lateralProfile>
元素中的 <superelevation>
元素来表示横向。
超高程从数学角度被定义为围绕参考线的道路横截面的倾斜角。这意味着超高程对于向右边倾斜的道路具有正值,对于向左边倾斜的道路具有负值。
该属性被定义为围绕着s轴的路段倾斜角。必须(must)沿参考线按升序定义元素。元素的参数将持续有效,直到下一个元素开始或道路参考线结束。道路的超高程程默认为零。
给定位置的超高程表达式:
sElev (ds) = a + b*ds + c*ds2 + d*ds3
以上是关于OpenDrive学习笔记的主要内容,如果未能解决你的问题,请参考以下文章