日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

opendrive中的Road

發布時間:2023/12/31 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 opendrive中的Road 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

路網在OpenDRIVE中用 <road> 元素來表示。每條道路都沿一條道路參考線延伸。一條道路必須擁有至少一條寬度大于0的車道。

OpenDrive中的道路可以與真實路網中或為應用而設的路網中的道路相提并論。每條道路由一個或多個 <road> 元素描述。一個 <road> 元素可以覆蓋一條長路、交叉口之間較短的路,或甚至多條道路。只有在道路的屬性不能在先前<road> 元素中得到描述或需要一個交叉口的情況下,才應開始一個新的 <road> 元素。

1?道路段以及橫截面的屬性

某些道路屬性是基于道路橫截面得到描述的,道路橫截面是道路參考線上給定點處的道路正交視圖。超高程是一種與道路橫截面相關的屬性。如果元素對道路橫截面有效,那么它對道路參考線上給定點處的整個寬度都有效。

其他道路屬性是基于道路平面圖得到描述的,其中包括車道和道路高程。這些屬性稱為道路段,其描述了道路的各個部分以及它們沿道路參考線s坐標的特定屬性。對路段有效的屬性僅對特定車道有效,可能對整個道路寬度無效。

這意味著可為不同屬性(例如道路類型或車道段)創建不同的道路段,方式是使用新的起始s坐標以及 <road> 元素中的附加元素。兩個給定s-起始位置之間的差別隱式地指定了組的長度。段的存儲必須按s坐標升序來進行。

2?道路連接

為了能夠在路網中行進,道路必須相互連接。道路可以連接到其他道路或交叉口上(孤立的道路除外)。

圖35的場景展示了禁止、允許以及建議的道路連接方式。非常重要的是,相互連接的道路的車道及其參考線需與其前驅以及后繼道路的車道及其參考線直接連接。如果參考線連接正確,則應該避免重疊或斷口,但不完全禁止。

圖36的場景展示了在交叉口外可行的道路連接方式,其中包括兩條同向、反向或匯聚的道路。如果這兩條參考線相互不連接,則也無法實現道路連接。

在OpenDRIVE中,道路連接用 <road> 元素里的 <link> 元素來表示。 <predecessor> 以及 <successor> 元素在<link> 元素中被定義。對于虛擬和常規的交叉口來說, <predecessor> 以及 <successor> 元素必須使用不同的屬性組。

屬性:
t_road_link
如果道路與一條后繼、前驅或相鄰道路連接,該屬性則遵循道路頭文件。孤立的道路可(may)忽略該元素。
t_road_link_predecessorSuccessor
必須將不同屬性用于虛擬以及常規的交叉口。@contactPoint須(shall)用于常規交叉口;@elementS 和@elementDir則須(shall)用于虛擬交叉口。

以下規則適用于道路連接:

  • 只有在連接(linkage)清晰的情況下,才能直接連接兩條道路。如果與前驅或后繼的關系模糊,則必須使用交叉口。
  • 道路可將其他道路或交叉口作為其后繼或前驅,它也可以沒有后繼或前驅。
  • 道路亦可作為自身的后繼或前驅。

3 Road type 道路類型

道路類型(例如高速公路以及鄉村公路)定義了道路的主要用途以及相關的交通規則。道路類型對于整個道路橫截面均有效。

通過在沿參考線的給定點上定義不同道路類型,可在 <road> 元素中根據需要改變道路類型。道路類型將持續有效,直到另一個道路類型被定義。

在OpenDRIVE中,道路類型用<road>元素中的 <type> 元素來表示。道路類型本身在@type屬性中被給定。

屬性:
t_road_type
道路類型元素對于整個道路橫截面持續有效,直到新的道路類型元素出現或者道路結束。

以下規則適用于道路類型:

  • 當道路類型有變更時,必須在父級<road>元素中創建一個新的 <type> 元素。
  • 可添加國家/地區代號以及州標識符至 <type> 元素中,以便對適用于該道路類型的國家交通規則進行詳細說明。相關數據并不存儲在OpenDRIVE中,它將存儲于應用中。
  • 只能使用ALPHA-2 國家/地區代號,ALPHA-3 國家/地區代號不能得以使用,原因是只有ALPHA-2 國家/地區代號才支持州標識符。
  • 單獨車道可能與其所屬道路的類型不同。道路類型和車道類型代表不同的屬性,若有具體說明,那么兩種屬性都為有效。

3.1?道路類型的限速


可為道路類型設置速度限制(限速)。若道路類型已更改且在路段中已有速度限制存在,由于道路類型并不擁有全局有效的速度限制,因此需要一個新的速度元素。必須為每個道路類型元素單獨定義限速。
在OpenDRIVE中,速度限制用 <type> 元素里的 <speed> 元素來表示。

屬性:
t_road_type_speed
該屬性結合了特定的道路類型對默認的最大允許速度進行定義。

以下規則適用于速度限制:

  • 最大速度可以(may)被定義為每個道路類型元素的默認值。
  • 單獨車道可以(may)有不同于其所屬道路的速度限制,其將被定義為<laneSpeed>。
  • 源自標志的限速必須(shall)始終被優先考慮。

4?高程的方法

以下幾種方法用于標高道路或道路的部分:

  • 道路高程詳細說明了沿道路參考線(s方向)的高程。
  • 通過使用超高程以及形狀定義,橫斷面圖將對與t方向參考線正交的高程進行詳細說明。

s長度不隨著高程變化。

4.1. Road elevation 道路高程


一條道路可沿其參考線被標高,需根據每個在參考線上給定點的道路橫截面來對道路高程進行定義。高程以米為單位,道路的默認高程為零。若使用了地理坐標參考,則根據地理坐標參考對零進行定義。
在OpenDRIVE中,高程用 <elevationProfile> 元素中的 <elevation> 元素來表示。

屬性:
t_road_elevationProfile_elevation
該屬性定義了參考線上給定點處的高程元素。此外,必須(shall)沿參考線按升序對元素進行定義。s的長度不隨高程而改變。

計算方式:
使用以下三次多項式函數來計算道路高程:
elev(ds) = a + b*ds + c*ds2 + d*ds3
其中,elev 是給定位置上的高程(慣性 z);a, b, c,d是系數;ds?是沿著參考線上新高程元素的起點與給定位置之間的距離

每當新的元素出現,`ds`則清零。使用以下公式對高程值的絕對位置進行計算:
s = s-start + ds
?其中,s?是參考線坐標系中的絕對位置;s-start?是元素在參考線坐標中的起始位置;

以下規則適用于道路高程:

  • 道路必須沿其參考線被標高。
  • 道路高程可單獨或者結合超高程以及道路形狀被定義。
  • 對高程元素的定義必須按升序進行。由于高程可以上下移動,元素必須被連接到參考線上的相應位置。
  • 道路高程的定義持續有效,直到該類型的下一個元素得到定義。

4.2?超高程

超高程是橫斷面圖的一部分,它描述了道路的橫坡。它可(may)用于將道路往內側傾斜,從而使車輛更容易駛過。如圖40所示,對于被超高程的道路而言,道路的t軸不與下層地形平行。因此,橫斷面圖的定義適用于整個道路橫截面。超高程不改變車道的實際寬度,但它會影響被投影的寬度。超高程的默認值為零。

超高程從數學角度被定義為圍繞參考線的道路橫截面的傾斜角。這意味著超高程對于向右邊傾斜的道路具有正值,對于向左邊傾斜的道路具有負值。

為簡化上述示例,圖40示例中的參考線平行于y軸。

在OpenDRIVE中,超高程用<lateralProfile>元素中的 <superelevation> 元素來表示。

屬性:
t_road_lateralProfile_superelevation
該屬性被定義為圍繞著s軸的路段傾斜角。必須沿參考線按升序定義元素。元素的參數將持續有效,直到下一個元素開始或道路參考線結束。道路的超高程程默認為零。

計算方式
通過使用以下三次多項式函數,對超高程進行計算:
s (ds) = a + b*ds + c*ds2 + d*ds3

其中,s?是給定位置的超高程;a, b, c,d是系數;ds?是沿參考線上超高程元素的起點與給定位置之間的距離。

每當新的元素出現, ds 則清零。超高程值的絕對位置的計算方式如下:
s = ss + ds
其中,s是在參考線坐標系中的絕對位置;ss?是元素在參考線坐標系中的起始位置;

以下規則適用于超高程:

  • 超高程的定義必須適用于整個道路橫截面。
  • 通過使用@level屬性,道路的單條車道

4.3?形狀定義

由于某些橫向道路形狀過于復雜,僅使用超高程來描述是不夠的。通過形狀則能夠更詳細地描述在參考線上給定點處的道路橫截面的高程。這意味著,一個有多個t值的s坐標上可以擁有多個形狀定義,從而對道路的彎曲形狀進行描述。

如果不結合超高程而使用了形狀,車道的實際寬度可能會由于其曲線的形狀而被改變。相對于平面圖的投影寬度不受影響。

如果結合超高程而使用了形狀(如圖41所示),相對于超高程狀態的道路投影寬度不會變化,但相對于平面圖的投影寬度會有變化。

如圖42所示,被定義的t范圍必須最少要覆蓋到整個 <road> 元素的最大t展開式。

圖41展示了如何對兩個橫斷面圖之間的高度信息進行計算。該圖中的橫斷面圖處于s 并擁有五個多項式定義,而處于s 的橫斷面圖則擁有三個多項式定義。可使用圖41中的公式對兩個橫斷面圖之間的一個點以及線性插值進行計算。

典型的應用案例是高速測試跑道以及路拱上的彎曲路面。形狀的默認值為零。

屬性
t_road_lateralProfile_shape
該屬性被定義為相對于參考水平面路段的路面。一個擁有不同t值的s位置上可存在多個形狀,從而對道路的彎曲形狀進行描述。

計算方式
通過以下多項式函數可對橫斷面圖的形狀進行計算:
h (ds)= a + b*dt + c*dt2 + d*dt3
?其中,h?是給定位置參考平面上方的高度;a, b, c,d是系數,dt?是形狀元素起點和給定位置之間垂直于參考線的距離

每當新的元素出現, dt 則清零。形狀值的絕對位置用如下方式計算:
t = tstart + dt
?其中,t?是參考線坐標系中的絕對位置,tstart ?是元素在參考線坐標系中的起始位置。

以下規則適用于形狀:

  • 可結合超高程以及道路高程對形狀進行定義。
  • 在使用形狀時,不應該存在任何車道偏移。

5. ?道路表面

OpenDRIVE并不包含對道路表面的描述,該類描述則包含在OpenCRG中,但OpenDRIVE可以引用在OpenCRG中生成的數據。兩者均不包含有關道路表面視覺展示的數據。借助OpenCRG可以對更細節化的道路表面屬性進行建模,例如圖43中的卵石或坑洼。

如CRG的名稱所示,CRG數據被置于常規網格中,該網格是沿參考線被布置的(類似OpenDRIVE的道路參考線)。在每個網格位置上,它都包含了在真實道路上測量到的絕對高程和某些附加數據,這些數據可以對相對于參考線的delta高程進行計算。將OpenDRIVE和CRG數據進行結合的關鍵在于對兩條參考線之間的相關性以及一條使用兩者高程數據的規則進行定義。CRG數據可能會與OpenDRIVE道路參考線有偏差(參見@tOffset),其方向可能與道路布局方向相同或者相反(參見方向)。

可在不同模式下將CRG數據應用于給定的OpenDRIVE道路:
@mode = attached附加:
出于對@tOffset以及@sOffset參數的考慮,CRG數據集的參考線將被替換為OpenDRIVE道路的參考線。通過對CRG網格的評估以及@zOffset和@zScale的應用后得出CRG局部高程值,該值會被添加到OpenDRIVE道路的表面高程數據中(該數據衍生于高程、超高程以及路拱的組合)。無需考慮道路的全方位幾何是否匹配,這個模式可用于將相對于原始CRG數據的參考線的道路表面信息從任意CRG道路轉移到OpenDRIVE道路中。CRG道路的原始位置、航向角/偏航角、曲率、高程以及超高程均不在考慮范圍內。CRG網格的評估是沿OpenDRIVE參考線,而不是沿CRG參考線而進行的。

該模式與附加模式基本無異,唯一與附加模式不同的是只有CRG數據的高程值會被作為關注對象(即OpenDRIVE高程被設置為零)。為了避免出現問題,需準確地將@sStart及@sEnd設置為CRG數據的邊界,否則可能會出現如下圖中的高度為零的缺口。

CRG數據集參考線的起點相對于OpenDRIVE道路參考線上的點位于由@sStart、@sOffset和@tOffset定義的位置上。通過為橫向以及縱向移位、航向角/偏航角(@hOffset)以及高程(@zOffset)提供偏移值,可以明確OpenCRG與OpenDRIVE各自的參考線之間的相關性。在真實(genuine)模式中,CRG數據會完全取代OpenDRIVE高程數據,也就是說,會直接從CRG數據中計算出道路表面給定點的絕對高程(可把這看成將OpenDRIVE高程、超高程和路拱均設為零時,對CRG和OpenDRIVE數據進行合并)。若使用該方法, 必須確保CRG數據的幾何形狀在一定的范圍內與下層的OpenDRIVE道路幾何是匹配的。

@mode = global全局:
數據集僅從給定軌道或交叉口記錄中引用,但并無平移或旋轉轉換可被應用。CRG文件中的所有數據保留在其原生的坐標系中。高程數據被認作為是慣性數據,也就是AS IS。

@orientation 定向
由于CRG數據可能只覆蓋了道路表面部分,所以必須確保衍生于OpenDRIVE數據的高程信息在有效的CRG范圍外依然可以得以使用。在OpenDRIVE中,道路表面用 <road> 元素里的 <surface> 元素來表示,OpenCRG中描述的數據則用<surface> 元素里的<CRG>元素來表示。

方向屬性在OpenCRG的u/v坐標系的原點處沿著CRG文件進行旋轉。"same"值的旋轉角度為0,"opposite"值則為180°。T-偏移不被方向屬性所影響。

屬性
t_road_surface_CRG

XML示例

<surface> <CRG file="fancyData.crg" sStart="0.0" sEnd="100.0" orientation="same" mode="attached" tOffset="0.0"> </CRG> </surface>

6 道路的應用案例

以下小節包含部分在OpenDrive中對道路進行建模的示范應用案例。

6.1 用線性路拱對道路形狀進行建模

許多道路都有一個路拱,例如用于提供一個排水坡度從而讓水能從路面上流入水溝中。
圖50展示了一個擁有路拱的兩車道路的樣本定義。

線性路拱擁有以下屬性:

  • 道路的寬度從t=-4開始。由于值為0,因此在高度到t=-3的范圍內不會有任何改變。
  • 從t = -3到t = 0,每米線性上升0.15米。這意味著,在t = 0(道路的中間)處,道路已達到0.45m的高度。
  • 從t = 0.45m開始,道路每米線性下降0.1米。這意味著,當達到t = 4時,道路的高度為0.05m(0.45m-0.40m為0.05m;在4m距離后,道路每米損失0.1m;當從0.45m開始時,終點則為0.05 m)。

XML結構用于描述路拱,< lateralProfile >中的<shape>元素可被使用;對道路形狀進行建模,形狀元素必須在處于正t方向的道路的右側開始。這意味著元素將會以負t值的形式開始。

總結

以上是生活随笔為你收集整理的opendrive中的Road的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。