[OpenDrive] OpenDrive学习笔记
文章目錄
- OpenDRIVE
- reference line
- lanes
- lane offset
- lane sections
- lane properties
- superelevation and crossfall
- lateral profile
- road linkage
- junctions
- neighbors
- 總體結(jié)構(gòu)
- Apollo OpenDRIVE
- Apollo OpenDRIVE結(jié)構(gòu)
OpenDRIVE
OpenDRIVE是對(duì)路網(wǎng)結(jié)構(gòu)的描述性文件,于2006年1月31日發(fā)布第一版,目前已更新至1.5版本。
OpenDRIVE文件格式為XML,該XML文件種包含了Road、Junction、station等諸多道路路網(wǎng)信息。
從OpenDRIVE 1.4 開(kāi)始, 可以使用格式化為 “proj4”-字符串的投影定義對(duì)路網(wǎng)進(jìn)行地理參照轉(zhuǎn)化. 它將地理空間坐標(biāo)從一個(gè)坐標(biāo)參考系統(tǒng) (CRS) 轉(zhuǎn)換為另一個(gè)坐標(biāo)參考系統(tǒng)。這包括制圖投影和大地測(cè)量轉(zhuǎn)換。 geoReference元素定義了該文件使用的投影坐標(biāo)系,其中地理坐標(biāo)系為WGS-84[1]。
在OpenDRIVE數(shù)據(jù)中大量使用的位置信息都是投影后的xy坐標(biāo),而除了該投影坐標(biāo)系,還定義了一種軌跡坐標(biāo)系,如下所示,s坐標(biāo)是沿著reference line的,關(guān)于reference line后面介紹,長(zhǎng)度是在xy坐標(biāo)下計(jì)算的。 t坐標(biāo),是相對(duì)于reference line的側(cè)向位置,左正,右負(fù)。
OpenDRIVE中路網(wǎng)結(jié)構(gòu)中的一個(gè)road,該road有三部分組成,藍(lán)色的reference line,車道lane,車道lane的其他feature(限速等)。
所有道路都由一條reference line組成, 用于定義基本幾何 (弧線、直線等)。
沿著reference line 可以定義道路的各種屬性,例如海拔概況、車道、交通標(biāo)志等。
道路之間可以直連,也可以通過(guò)junction進(jìn)行連接。
reference line
lanes
lane offset
lane sections
lane properties
superelevation and crossfall
lateral profile
road linkage
junctions
neighbors
由于是XML文件寫的,所以可以有類似C語(yǔ)言中include的用法,可以在xml中include對(duì)應(yīng)另一個(gè)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>總體結(jié)構(gòu)
OpenDrive格式為xodr,默認(rèn)浮點(diǎn)型為double類型,推薦家用16位科學(xué)計(jì)數(shù)法表示。
OpenDrive采取的路網(wǎng)結(jié)構(gòu)
|- 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本身設(shè)計(jì)面向的應(yīng)用是仿真器,自動(dòng)駕駛需要更多的信息OpenDRIVE并沒(méi)有完全提供,所以Apollo對(duì)OpenDRIVE的標(biāo)準(zhǔn)做了部分改動(dòng)和擴(kuò)展。
主要改動(dòng)和擴(kuò)展了以下幾個(gè)方面:
- 地圖元素形狀的表述方式 : 以車道邊界為例,標(biāo)準(zhǔn)OpenDRIVE采用基于Reference Line的曲線方程和偏移的方式來(lái)表達(dá)邊界形狀,而Apollo OpenDrive采用絕對(duì)坐標(biāo)序列的方式描述邊界形狀;
- 元素類型的擴(kuò)展, 例如新增了對(duì)于禁停區(qū)、人行橫道、減速帶等元素的獨(dú)立描述;
- 擴(kuò)展了對(duì)于元素之間相互關(guān)系的描述, 比如新增了junction與junction內(nèi)元素的關(guān)聯(lián)關(guān)系等;
除此之外還有一些配合無(wú)人駕駛算法的擴(kuò)展,比如增加了車道中心線到真實(shí)道路邊界的距離、停止線與紅綠燈的關(guān)聯(lián)關(guān)系等。改動(dòng)和擴(kuò)展后的規(guī)格在實(shí)現(xiàn)上更加的簡(jiǎn)單,同時(shí)也兼顧了無(wú)人駕駛的應(yīng)用需求。
Apollo OpenDRIVE結(jié)構(gòu)
百度高精地圖坐標(biāo)采用WGS84經(jīng)緯度坐標(biāo)表示。
車道 ID 的命名規(guī)則:
- lane section 內(nèi)唯一數(shù)值連續(xù)的
- reference line 所在 lane 的 ID 為 0
- reference line 左側(cè) lane 的 ID 向左側(cè)依次遞增 (正t軸方向)
- reference line 右側(cè) lane 的 ID 向右側(cè)依次遞減(負(fù) t 軸方向)
- reference line 必須定義在**< center >**節(jié)點(diǎn)內(nèi)
- reference line 自身必須為 Lane 0。
base_map, routing_map和sim_map之間的差異
- base_map是最完整的地圖,包含所有道路和車道幾何形狀和標(biāo)識(shí)。其他版本的地圖均基于base_map生成。
- routing_map包含base_map中車道的拓?fù)浣Y(jié)構(gòu)
- sim_map是一個(gè)適用于Dreamview視覺(jué)可視化,基于base_map的輕量版本。減少了數(shù)據(jù)密度,以獲得更好的運(yùn)行時(shí)性能。
參考文章:
[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
總結(jié)
以上是生活随笔為你收集整理的[OpenDrive] OpenDrive学习笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【数据结构】天勤 例2-3 (单链表归并
- 下一篇: 数论入门基础