OpenX系列标准:OpenDRIVE标准简述
1.概述
? 作為一個完整的仿真測試場景描述方案,OpenX系列標準包括:OpenDRIVE、OpenSCENARIO和OpenCRG。
| OpenDRIVE | .xodr | 靜態部分(如道路拓撲結構、交通標志標線等) |
| OpenDRIVE | .tdo | 保存ROD項目時生成的文件,是ROD項目的可編輯模式 |
| OpenDRIVE | .osgb | 通過ROD項目生成的貼圖與路面紋理文件 |
| OpenSCENARIO | .xosc | 動態部分(如交通車的行為) |
| OpenCRG | .crg | 靜態部分(道路的表面細節,如坑洼、卵石路等) |
2.OpenDRIVE簡介
? ASAM OpenDRIVE格式提供了用可擴展標記語言(XML)語法描述道路網絡的通用基礎,使用文件擴展名xodr。 存儲在ASAM OpenDRIVE文件中的數據描述了道路、車道和物體的幾何形狀,如道路上的路標,以及道路沿線的特征,如信號。ASAM OpenDRIVE文件中描述的道路網絡可以是合成的,也可以是基于真實數據的。
? ASAM OpenDRIVE的主要目的是提供一個道路網絡描述,它可以被送入模擬,以開發和驗證ADAS和AD功能。在ASAM OpenDRIVE的幫助下,這些道路網絡描述可以在不同的模擬器之間進行交流。為道路描述提供一個標準化的格式,也使行業能夠減少為其開發和測試目的創建和轉換這些文件的成本。道路數據可以從道路網絡編輯器、地圖數據的轉換中手動創建,或源于現實世界道路的轉換掃描。
? OpenDRIVE是一種高精地圖格式,2006年由德國VIRES公司發布,并反復迭代,期間德國戴姆勒駕駛模擬器部門和德國宇航中心DLR也發揮了很大作用。OpenDRIVE 1.5版本于2019年發布。2018年9月,OpenDRIVE的開發團隊將維護工作轉交給德國ASAM標準化組織,1.6及之后的版本由ASAM負責。1.6版本已由ASAM在2020年3月發布,本文使用該版本進行介紹。
? OpenDRIVE開發起因是VIRES公司在提供駕駛模擬器方案時,發現不同工具的道路數據格式中需要包含邏輯內容是基本一致的,為了方便在不同的駕駛模擬器間進行道路數據的傳遞,VIRES公司與Daimler Driving Simulator部門決定開發OpenDRIVE格式。轉交給ASAM組織后,ASAM組織同樣把OpenDRIVE定位為用于仿真測試的地圖格式。
? OpenDRIVE文件按XML格式編寫,文件擴展名為.xodr。
3.OpenDRIVE實例
3.1簡介
節點
? 該格式被組織在節點中,可以用用戶定義的數據進行擴展。這有利于個別應用(通常是模擬)的高度專業化,同時保持不同應用之間交換數據所需的互操作性。
參考線
? ASAM OpenDRIVE道路網是沿著參考線建模的,它是每條道路的核心部分。道路、車道,包括它們的高程剖面,都附著在參考線上。
Elements of ASAM OpenDRIVE? 代表特征的對象,如信號燈,可以通過使用參考線或全局坐標系來放置,路網被放置在其中。這在上圖中可以看到。參考線(中間的藍線)位于道路的中心,車道(藍色和淺綠色)連接到這條參考線。道路旁邊的標志被放置在s/t坐標系中。
? 在ASAM OpenDRIVE中,幾條道路構成了一個道路網絡,并可以被連接起來。ASAM OpenDRIVE可以被看作是不同路段的建筑套件。整個道路網絡是由相互連接的各個部分組成的。
? 上圖顯示了各個路段是如何相互連接的,例如與一個交叉口。所示的XML片段簡要介紹了如何在ASAM OpenDRIVE中使用道路段的鏈接。這些鏈接可以支持模擬交通的駕駛邏輯,特別是出于路由的目的,將更多的資源留給驗證和開發AD駕駛功能的實際工作。在路口,入口道路之間的每個可能的連接都通過 "連接道路 "連接。由于這種機制,連接道路是ASAM OpenDRIVE中唯一具有重疊表面的道路。
? 在ASAM OpenDRIVE中,不僅道路被鏈接,而且道路之間的車道也被鏈接。這些車道鏈接可以再次支持模擬交通。當連接道路的參考線和進入路口的道路不一定對齊時,它們對道路網的可視化也很重要(例如在路口的情況)。
與其他標準的關系
? ASAM OpenDRIVE的描述格式包含了道路網絡的所有靜態對象,可以真實地模擬車輛在道路上行駛。為了渲染完整的環境,需要額外的靜態三維路邊物體的描述格式,如樹木和建筑物。路面輪廓包括來自ASAM OpenCRG文件格式。駕駛模擬的動態內容,如車輛機動,可以用ASAM OpenSCENARIO來描述。這三個標準相互補充,涵蓋了環內車輛模擬應用的靜態和動態內容。
市場相關性
? ASAM OpenDRIVE是一個用于描述道路網絡的成熟標準。它已經被許多知名的制造商和開發ADAS和AD功能的公司使用,或在全球范圍內進行高精度的運動學測量。它正被用于公路和鐵路網絡。
參與的公司
? BMW AG, Daimler AG, AVL List GmbH, dSPACE GmbH, RA Consulting GmbH, Vector Informatik GmbH, VIRES Simulationstechnologie GmbH, virtualcitySYSTEMS GmbH, RWTH Aachen
其他語言
? ASAM OpenDRIVE V1.6.0現在有了中文版本。請在右邊的藍色下載框中下載中文版本。中文版本將很快在C-ASAM網站上提供。
較早的版本
? ASAM在2018年被委托進一步開發OpenDRIVE(閱讀全文)。ASAM發布的第一個版本是ASAM OpenDRIVE V1.6。為了完整起見,我們在網站上提供了之前的版本OpenDRIVE V1.5和OpenDRIVE V1.4:
? OpenDRIVE V1.5和OpenDRIVE V1.4.是由VIRES Simulationstechnologie GmbH發布。這些版本是VIRES Simulationstechnologie GmbH的知識產權。ASAM e.V.不對完整性、正確性或任何其他問題承擔任何責任。對于責任索賠、問題或其他事項,請聯系VIRES Simulationstechnologie GmbH(info(at)vires.com)。
? OpenDRIVE 1.6版包含了在1.5版中出現過的元素,但這些元素與1.4版不兼容。為了確保能與1.4版和1.5版兼容,這些元素在1.6版的XML模式中從技術上被定義為可選。在UML模型的注釋中,它們被標記為“向后兼容的可選”。
3.2 實例
以Crossing8Course.xodr為例,闡述xodr的文件架構。
其中橙色為必須部分,淡橙色為選填部分。
(1)header
<header> 元素是中的第一個元素。
header用于對文件的整體屬性進行說明。說明了主版本(revMajor)、子版本(revMinor)、本路網的版本號(version)、數據庫創建時間/日期(date)、最大慣性y值(north)、最小慣性y值(east)、最小慣性x值(west)和最小慣性x值(west)
該版本為1.1
(2)road
路網在OpenDRIVE中用 <road> 元素來表示。每條道路都沿一條道路參考線延伸。一條道路必須(shall)擁有至少一條寬度大于0的車道。
OpenDrive中的道路可以(may)與真實路網中或為應用而設的路網中的道路相提并論。每條道路由一個或多個 <road> 元素描述。一個 <road> 元素可以(may)覆蓋一條長路、交叉口之間較短的路,或甚至多條道路。只有在道路的屬性不能在先前 <road> 元素中得到描述或需要一個交叉口的情況下,才應(should)開始一個新的 <road> 元素。
road用于對路網中的道路進行說明。包括道路連接信息(link)、道路參考線信息(planView)、超高程信息(lateralProfile)、高程信息(elevationProfile)、車道信息(lanes)和表面信息(surface)以及道路上的物理和交通信號的信息(objects和signals)等。
(2.1)link
在OpenDRIVE中,道路連接用 <road> 元素里的 <link> 元素來表示。 <predecessor> 以及 <successor> 元素在 <link> 元素中被定義。對于虛擬和常規的交叉口來說, <predecessor> 以及 <successor> 元素必須使用(shall)不同的屬性組。
描述了本道路與其他道路的連接關系。中描述了本道路之前的道路id,中描述了本道路之后的道路id。(2.2)type
道路類型(例如高速公路以及鄉村公路)定義了道路的主要用途以及相關的交通規則。道路類型對于整個道路橫截面均有效。
通過在沿參考線的給定點上定義不同道路類型,可(may)在 <road> 元素中根據需要改變道路類型。道路類型將持續有效,直到另一個道路類型被定義。
在OpenDRIVE中,道路類型用元素中的 <type> 元素來表示。道路類型本身在@type屬性中被給定。
(2.3)planView
在OpenDRIVE中,參考線的幾何形狀用元素里的 <geometry> 元素來表示。
<planView> 元素是每個 <road> 元素里必須要用到的元素。
(2.4)elevationProfile
The elevation profile record contains a series of elevation records which define the characteristics of the road’s elevation along the reference line.
高程剖面記錄包含一系列的高程記錄,定義了道路沿參考線的高程特征。
elevationProfile用來描述參考線上給定點處的高程元素(elevation)等信息,必須沿參考線按升序對元素進行定義。
(2.5)lateralProfile
The lateral profile record contains a series of superelevation and crossfall records which define the characteristics of the road surface’s banking along the reference line.
橫向剖面記錄包含一系列的超高程和橫斷面記錄,這些記錄定義了沿參考線的道路表面的銀行特征。
在OpenDRIVE中,超高程用元素中的 <superelevation> 元素來表示。
該屬性被定義為圍繞著s軸的路段傾斜角。必須(must)沿參考線按升序定義元素。元素的參數將持續有效,直到下一個元素開始或道路參考線結束。道路的超高程程默認為零。
lateralProfile用來描述超高程(superelevation)、形狀信息(shape)等信息,超高程從數學角度被定義為圍繞參考線的道路橫截面的傾斜角。這意味著超高程對于向右邊傾斜的道路具有正值,對于向左邊傾斜的道路具有負值。該屬性被定義為圍繞著s軸的路段傾斜角。必須沿參考線按升序定義元素。元素的參數將持續有效,直到下一個元素開始或道路參考線結束。道路的超高程程默認為零。shape屬性被定義為相對于參考水平面路段的路面。一個擁有不同t值的s位置上可存在多個形狀,從而對道路的彎曲形狀進行描述。
(2.6)lanes
在OpenDRIVE中,車道用 <road> 元素里的 <lanes> 元素來表示。
中描述了道路的不同車道的信息。在OpenDRIVE中,所有道路都包含了車道。車道用 road元素里的lanes元素來表示。Lanes描述了車道組屬性(laneSection)。Type屬性描述了車道類型,車道類型描述了車道的主要用途及與其相對應的交通規則。Link屬性描述了車道之間的連接情況。Width屬性定義了車道的寬度。Speed屬性定義了給定車道上允許的最大行駛速度。Border屬性是用來描述車道寬度的另一種方法,它并不會直接定義寬度,而是在獨立于其內部邊界參數的情況下,對車道的外部界限進行定義。material元素用來表示車道材質。Access可以用來讓車道局限于特定的道路使用者。height元素可以用來表示車道高度。roadMark屬性可以用來定義車道外邊界線條的樣式。laneOffset元素可以來表示車道偏移。
(2.7)objects
在OpenDRIVE 中,物體用 <object> 元素中的 <objects> 元素來表示。其按每個 <road> 元素被定義。
(2.8)signals
在OpenDRIVE中,標志用 <road> 元素里的 <signals> 元素來表示。
對于交通信號,中分別描述了不同交通信號的位置、高度和id等信息。
(3)controller
在OpenDRIVE中,控制器用 <OpenDRIVE> 元素里的 <controller> 元素來表示。
被引用標志的ID存儲在 <controller> 元素的 <control> 元素中。
road標簽中定義了紅綠燈的id和位置等,為了方便實現對紅綠燈相位的控制,需要配置。該標簽中定義了controller的id和name,其下的control中,可以指定多個signal的id,從而實現對多個紅綠燈的同步控制。controller的相位順序和時長需要在場景文件及OpenSCENARIO中配置。如下圖:
(4)junction
在OpenDRIVE中,交叉口用 <junction> 元素來表示。聯接道路則用 <junction> 元素中的 <connection> 元素來表示。OpenDRIVE并未特意將去路定義為元素或屬性,來路也可被視作為去路,因此二者在此處可被相提并論。通往該道路的聯接道路將此類道路隱性地定義為去路。
道路的描述中對不同的道路分別給出了其前后連接的道路,這對于一般的道路足以描述其連接關系,但是對于路口道路的連接,卻不能清楚的描述,于是需要使用junction。
junction包括交叉口的名稱(name)、ID、類型(type)、聯接道路信息(connection)等。incomingRoad為該連接路的來路的id,connectingRoad為該連接路的id。laneLink中描述來路和連接路的車道的連接關系,from為來路的車道id,to為與其連接的連接路的車道id。
參考文獻
OpenX系列標準介紹(1):OpenDRIVE介紹
ASAM OpenDRIVE?
OpenDRIVE 1.6 CN
OpenDRIVE 1.4-1.5
總結
以上是生活随笔為你收集整理的OpenX系列标准:OpenDRIVE标准简述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opendrive文件结构
- 下一篇: Eclipse 语言包安装 地址