[OpenDrive] OpenDrive学习笔记

文章目录

  • OpenDRIVE
    • reference line
    • lanes
    • lane offset
    • lane sections
    • lane properties
    • superelevation and crossfall
    • lateral profile
    • road linkage
    • junctions
    • neighbors
  • 总体结构
  • Apollo OpenDRIVE
    • Apollo OpenDRIVE结构

OpenDRIVE

OpenDRIVE是对路网结构的描述性文件,于2006年1月31日发布第一版,目前已更新至1.5版本。
OpenDRIVE文件格式为XML,该XML文件种包含了Road、Junction、station等诸多道路路网信息。
从OpenDRIVE 1.4 开始, 可以使用格式化为 “proj4”-字符串的投影定义对路网进行地理参照转化. 它将地理空间坐标从一个坐标参考系统 (CRS) 转换为另一个坐标参考系统。这包括制图投影和大地测量转换。 geoReference元素定义了该文件使用的投影坐标系,其中地理坐标系为WGS-84[1]。
在OpenDRIVE数据中大量使用的位置信息都是投影后的xy坐标,而除了该投影坐标系,还定义了一种轨迹坐标系,如下所示,s坐标是沿着reference line的,关于reference line后面介绍,长度是在xy坐标下计算的。 t坐标,是相对于reference line的侧向位置,左正,右负。
[OpenDrive] OpenDrive学习笔记_第1张图片
OpenDRIVE中路网结构中的一个road,该road有三部分组成,蓝色的reference line,车道lane,车道lane的其他feature(限速等)。
[OpenDrive] OpenDrive学习笔记_第2张图片
所有道路都由一条reference line组成, 用于定义基本几何 (弧线、直线等)。
沿着reference line 可以定义道路的各种属性,例如海拔概况、车道、交通标志等。
道路之间可以直连,也可以通过junction进行连接。

reference line

[OpenDrive] OpenDrive学习笔记_第3张图片

lanes

[OpenDrive] OpenDrive学习笔记_第4张图片

lane offset

[OpenDrive] OpenDrive学习笔记_第5张图片

lane sections

[OpenDrive] OpenDrive学习笔记_第6张图片

lane properties

superelevation and crossfall

[OpenDrive] OpenDrive学习笔记_第7张图片

lateral profile

[OpenDrive] OpenDrive学习笔记_第8张图片

road linkage

[OpenDrive] OpenDrive学习笔记_第9张图片
[OpenDrive] OpenDrive学习笔记_第10张图片

junctions

[OpenDrive] OpenDrive学习笔记_第11张图片

neighbors

[OpenDrive] OpenDrive学习笔记_第12张图片

由于是XML文件写的,所以可以有类似C语言中include的用法,可以在xml中include对应另一个xml


Original File





Included File








总体结构

OpenDrive格式为xodr,默认浮点型为double类型,推荐家用16位科学计数法表示。
OpenDrive采取的路网结构

|- OpenDRIVE
|- header [1]
|- road [1+]
|- controller [0+]
|- junction [0+]
|- junctionGroup [0+]
|- station [0+]

|- road [name, length, id, junction]
|- link
|- type
|- planView
|- elevationProfile
|- lateralProfile
|- lanes
|- objects
|- signals
|- surface
|- railroad

新版的OpenDrive中推荐使用lateral profile而不是crossfall

Apollo OpenDRIVE

OpenDRIVE本身设计面向的应用是仿真器,自动驾驶需要更多的信息OpenDRIVE并没有完全提供,所以Apollo对OpenDRIVE的标准做了部分改动和扩展。

主要改动和扩展了以下几个方面:

  • 地图元素形状的表述方式 : 以车道边界为例,标准OpenDRIVE采用基于Reference Line的曲线方程和偏移的方式来表达边界形状,而Apollo OpenDrive采用绝对坐标序列的方式描述边界形状;
  • 元素类型的扩展, 例如新增了对于禁停区、人行横道、减速带等元素的独立描述;
  • 扩展了对于元素之间相互关系的描述, 比如新增了junction与junction内元素的关联关系等;

除此之外还有一些配合无人驾驶算法的扩展,比如增加了车道中心线到真实道路边界的距离、停止线与红绿灯的关联关系等。改动和扩展后的规格在实现上更加的简单,同时也兼顾了无人驾驶的应用需求。

Apollo OpenDRIVE结构

[OpenDrive] OpenDrive学习笔记_第13张图片
百度高精地图坐标采用WGS84经纬度坐标表示。

车道 ID 的命名规则:

  • lane section 内唯一数值连续的
  • reference line 所在 lane 的 ID 为 0
  • reference line 左侧 lane 的 ID 向左侧依次递增 (正t轴方向)
  • reference line 右侧 lane 的 ID 向右侧依次递减(负 t 轴方向)
  • reference line 必须定义在**< center >**节点内
  • reference line 自身必须为 Lane 0。

base_map, routing_map和sim_map之间的差异

  • base_map是最完整的地图,包含所有道路和车道几何形状和标识。其他版本的地图均基于base_map生成。
  • routing_map包含base_map中车道的拓扑结构
  • sim_map是一个适用于Dreamview视觉可视化,基于base_map的轻量版本。减少了数据密度,以获得更好的运行时性能。

参考文章:
[1] https://ryanadex.github.io/2019/06/04/opendrive/
[2] https://www.csdn.net/article/a/2018-04-12/15945514
[3] https://blog.csdn.net/weixin_36662031/article/details/81081744

你可能感兴趣的:(无人驾驶汽车学习,OpenDrive)