[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中路網結構中的一個road,該road有三部分組成,藍色的reference line,車道lane,車道lane的其他feature(限速等)。
所有道路都由一條reference line組成, 用于定義基本幾何 (弧線、直線等)。
沿著reference line 可以定義道路的各種屬性,例如海拔概況、車道、交通標志等。
道路之間可以直連,也可以通過junction進行連接。
reference line
lanes
lane offset
lane sections
lane properties
superelevation and crossfall
lateral profile
road linkage
junctions
neighbors
由于是XML文件寫的,所以可以有類似C語言中include的用法,可以在xml中include對應另一個xml
Original File <planView> <include file="planview.xml"/> </planView>Included File <planView> <geometry x="-0.014" y="-0.055" hdg="2.8829" length="95.889" s="0.000"> <arc curvature="-0.000490572"/> </geometry> <geometry x="-92.102" y="26.644" hdg="2.8359" length="46.651" s="95.889"> <spiral curvStart="-0.000490572" curvEnd="-0.004661241"/> </geometry> </planView>總體結構
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結構
百度高精地圖坐標采用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] OpenDrive学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据结构】天勤 例2-3 (单链表归并
- 下一篇: 数论入门基础