高 巖 蘇 虎 于 洋 周穆雄
(1.公安部交通管理科學研究所 江蘇 無錫 214151;2.西南交通大學電氣工程學院 成都 610000)
科學完善的測試與評價方法對于提高自動駕駛汽車研發(fā)效率、保障交通安全,促進產業(yè)健康發(fā)展至關重要[1]。基于場景的虛擬測試是智能汽車測試評價不可或缺的重要環(huán)節(jié)[2]。基于軟件的虛擬仿真測試方法具有成本低、測試效率高的優(yōu)點[1]。在對智能汽車進行仿真開發(fā)與測試時,需要構建高逼真度的仿真道路場景,以滿足不同視景仿真、動力學仿真、傳感器仿真等方面的數(shù)據(jù)需求。這些仿真計算所使用的數(shù)據(jù)并不相同,如將其在同一模型中表達,會存在信息冗余、訪問效率低等問題。應將這些數(shù)據(jù)根據(jù)其內容、數(shù)據(jù)組織結構進行分類處理。目前,各類智能汽車仿真測試系統(tǒng)的模型分類方法也不盡相同。如吉林大學洪峰、管欣將智能汽車虛擬測試平臺所使用的模型分為:幾何層、物理層、邏輯層、特征層,每層模型具有不同的屬性,分別應用于不同類型的仿真計算中[3-4]。道路場景中的同一對象可能在不同層次或類型的模型中存在數(shù)據(jù)表達問題,其表達應具有空間上的一致性。在建立這些數(shù)據(jù)或模型時,需要考慮保證場景對象的空間匹配關系。為提高建模效率、減少模型匹配誤差,應采用自動或半自動方式實現(xiàn)上述模型的建模。
目前,在道路場景建模相關領域,相關研究人員提出過多種自動或半自動建模的方法,用于不同目的的道路場景模型的建立。Wilkie等[5]提出了一種通過GIS數(shù)據(jù)創(chuàng)建集合和拓撲一致的大場景道路模型的方法,用于交通仿真和智能汽車導航等領域。劉健[6]對基于車載激光雷達的無人駕駛車輛環(huán)境建模關鍵技術進行了研究。王賢隆[7]基于SUMO仿真平臺和 OpenSceneGraph三維圖形引擎,提出一種大規(guī)模道路交通通場景的自動構建算法。Zhou Mo[8]提出了一種從地理信息系統(tǒng)中提取多源異構數(shù)據(jù)用于建立高速公路的三維數(shù)字模型的方法。Ines Ernst等[9]采用計算機視覺技術建立道路的3D模型。呂??萚10]采用CityEngine CGA語言編寫道路建模規(guī)則,利用路網(wǎng)的二維矢量數(shù)據(jù)實現(xiàn)城市道路三維模型的快速建模。這些方法主要面向視景模型的建立,對于仿真環(huán)境多類或多層模型的建模方法,則鮮有文獻提及。
筆者對不同類型模型的特點進行分析,根據(jù)其聯(lián)系與區(qū)別,提出了一種建模方法。在該方法中,以三維基礎道路模型的建立為基礎,通過擴展可實現(xiàn)3類不同層次模型的建立。
構建智能汽車仿真運行環(huán)境至少需要2類場景:①靜態(tài)場景,場景內容主要包括:道路、交通設施設備、交通標志標線、路口、橋隧、地形、建筑、植被等;②動態(tài)對象,包括:機動車、非機動車、行人等。本文主要討論靜態(tài)場景的建模問題。如前所述,在智能車輛仿真系統(tǒng)中,各類仿真子系統(tǒng)或模塊對于模型或數(shù)據(jù)有著不同的需求,這里將其分為:視景模型、物理層模型、傳感層模型。
視景模型范圍最大,涵蓋了視錐內的所有可見對象的模型。主要數(shù)據(jù)內容為:物體對象的幾何拓撲關系、幾何圖元數(shù)據(jù)、紋理數(shù)據(jù)、光照材質數(shù)據(jù)等。視覺傳感器仿真的基本原理是對三維視景模型進行高逼真度的實時渲染。不同之處在于,渲染所用的虛擬攝像機參數(shù)需根據(jù)所仿真視覺傳感器的參數(shù)設置,并進行必要標定。可將視景仿真子系統(tǒng)所用的三維場景模型用于視覺傳感器的仿真。
進行汽車動力學仿真計算時,需要獲得所行駛路面的高程、摩擦系數(shù)等參數(shù)。碰撞檢測計算需要對本車及可能發(fā)生碰撞的場景對象進行幾何求交運算。大多數(shù)碰撞檢測算法求交所使用的幾何體為場景對象的包圍體。檢測到碰撞,需進行碰撞響應的計算。碰撞響應模塊則需要場景對象的質量、重心、剛度等物理參數(shù)。上述3類計算所涉及的場景對象,其范圍限于道路及路側車輛可達區(qū)域,包含道路、道路兩側可能發(fā)生碰撞的物體。對于遠離道路的場景對象,則不需要進行數(shù)據(jù)描述。
除視覺傳感器外,智能汽車還會安裝激光雷達、毫米波雷達等傳感器??刹捎霉饩€投射、深度渲染等方法對此類傳感器進行仿真。用于這類傳感器仿真的模型應包含精確的幾何信息和反射特征。場景范圍限定在以可行駛范圍內車載激光雷達或毫米波傳感器感知包絡區(qū)域。
表1 3類場景模型特點Tab.1 Characteristics of three scene models
3類場景模型區(qū)域范圍示意圖見圖1。假設視景模型包含的物體為集合A,物理層模型包含的物體為集合B,傳感層模型中包含的物體為集合C,存在這樣的關系:B?C?A。
為實現(xiàn)大規(guī)模場景的實時渲染,視景模型的幾何模型必須經(jīng)過一定程度的簡化,其中存在大量Level of Detail(LOD)模型節(jié)點。經(jīng)過簡化的幾何模型配合紋理、光照材質等圖形屬性,能夠在現(xiàn)有圖形硬件設備上實現(xiàn)較高逼真度視景畫面的實時生成。激光雷達、毫米波雷達等傳感器仿真需要場景對象精確的幾何信息。傳感層模型中場景對象的幾何模型應該保證足夠的精度,不能進行簡化,而紋理、光照材質則為冗余數(shù)據(jù)。另外,超出傳感器探測范圍的場景對象無法被傳感器仿真模塊感知,也不被納入傳感層模型。
圖1 3類模型范圍及映射關系示意圖Fig.1 Scope and Mapping relationship of three models
由于仿真過程中,不同類型仿真計算對數(shù)據(jù)范圍要求不同。視景或視覺傳感器仿真需要用的視域內的全部場景對象模型,物理層仿真需要當前仿真周期行駛范圍內的道路或周圍場景對象的物理屬性或幾何數(shù)據(jù)。激光雷達及毫米波雷達仿真需要用到當前時刻可探測范圍內的所有場景對象的高精度幾何模型。為實現(xiàn)數(shù)據(jù)的高效訪問,這3類模型的組織結構存在較大區(qū)別。
一體化建模方法是通過1次建模同時生成視景模型、物理層模型和傳感層模型的方法,需解決的主要問題包括:物理層模型和傳感層模型的區(qū)域劃分、所包含物體的判定、確定物體與模型節(jié)點對應關系等??刹捎玫染嗑€算法[8]將道路線形曲線平移得到物理層模型和傳感層模型所描述的場景區(qū)域邊界,然后將邊界數(shù)據(jù)作為多邊形頂點數(shù)組,物體位置作為待測點,進而通過PNPoly算法[9-10]判斷得到場景包含的物體,最后通過物體位置與模型文件的映射關系實現(xiàn)不同場景中物體位置的準確對應,實現(xiàn)一次建模生成3類場景模型?;静襟E如下。
1)加載地形模型。地形數(shù)據(jù)可以是規(guī)則格網(wǎng)或不規(guī)則格網(wǎng)的數(shù)字高程數(shù)據(jù),也可從GIS系統(tǒng)或地圖系統(tǒng)導入的地形數(shù)據(jù)。
2)構建道路基礎模型。創(chuàng)建樁點,計算獲得完整的三維道路線形數(shù)據(jù)。通過等距線算法將道路線形數(shù)據(jù)沿道路橫斷面左右平移得到完整的道路模型,采用約束Delaunay三角構網(wǎng)方法完成道路模型與地形模型的拼接,實現(xiàn)道路基礎模型的建立。
3)構建完整場景模型。向地形、道路場景模型中添加路旁設備、建筑物、植被等物體,完成場景模型的初步構建。該模型經(jīng)過結構優(yōu)化后,可被作為視景模型用于場景的可視化、視覺傳感器的仿真。
4)獲得物理層模型及傳感層模型的范圍。采用等距線算法將得到的三維道路線形向兩側外推。外推不同的距離,獲得不同類型模型的范圍。
5)根據(jù)4)的結果,采用PNPoly算法判斷物理層模型和傳感層模型中所包含的物體對象,并獲得其ID。
6)建立物理層模型。根據(jù)物體對象ID,獲得該物體的幾何圖元數(shù)據(jù)(頂點坐標等)。利用這些數(shù)據(jù)計算該物體的包圍體參數(shù)。向該物體添加必要的物理屬性。將與物體對象ID關聯(lián)的物理屬性、包圍體參數(shù)存入模型數(shù)據(jù)庫。
7)建立傳感層模型。根據(jù)物體對象ID,獲得該物體的位置、姿態(tài)、比例參數(shù)。根據(jù)這些參數(shù),在傳感層模型中放置從模型庫中調取的該物體對象的高精度幾何模型。
8)利用優(yōu)化的四叉樹算法對視景模型結構進行組織,利用包圍體層次樹算法對物理層模型、傳感層模型的結構進行組織,存儲相關模型數(shù)據(jù)。
構建道路的三維線形。道路線形可分為平面曲線與豎曲線,以平面曲線計算為例介紹線形計算方法,篇幅所限,豎曲線計算略。平面曲線由直線、緩和曲線、圓曲線組合而成。直線結構簡單,可采用較大的采樣間隔,緩和曲線和圓曲線則需要較小的采樣間隔才能準確描述其形狀。平面曲線的設計是通過連續(xù)3個樁點逐段地計算,進而得到完整的線形數(shù)據(jù)。積木法又稱線元設計法,它是將組合復雜的公路平面曲線分解成若干個單元。
在給定樁點后,通過3個樁點的坐標,依次計算直線、入緩和曲線、圓曲線、出緩和曲線、直線上點的坐標,同時將其作為下一組樁點計算的起始信息,按此方法計算直至計算完所有樁點內的線形數(shù)據(jù),最后將各段內的線段首尾相連,得到完整的平面曲線。其完成平面曲線點的計算的完整步驟見圖2。
為使設計的公路模型線形符合標準,參考《公路路線設計規(guī)范》對線形以及圓曲線極限最小半徑、一般最小半徑和最小半徑等的要求,圓曲線的半徑要大于等于規(guī)定的最小半徑,緩和曲線的長度要大于等于規(guī)定的最小緩和曲線長度;同時根據(jù)各要素的含義及實際的幾何意義,圓曲線角與緩和曲線線角的和應大于緩和曲線角的和,切線總長要小于相鄰2個樁點之間的距離。
圖2 積木法計算平面曲線流程圖Fig.2 Building blocks method to calculate the plane curve
得到道路的三維線形數(shù)據(jù)后,還需設計道路橫斷面,以構建完整的模型。道路橫斷面包括:設計線、地面線,是道路中心線任意一點的法向切面。設計線包括:行車道、路肩、分隔帶、邊溝、邊坡、截水溝、護坡道以及取土坑、棄土堆、環(huán)境保護設施等。地面線則是表征地面起伏變化的線,通過現(xiàn)場地形數(shù)據(jù)獲得。一個典型的道路橫斷面結構[11-13]見圖3。根據(jù)所建道路模型的需求,通過人機交互的方式進行道路參數(shù)的設定,可獲得設計線的全部幾何參數(shù),進而完成道路橫斷面的設計工作。
圖3 道路橫斷面結構示意圖Fig.3 Road cross section structure
平、縱曲線經(jīng)設計、優(yōu)化后,得到道路的三維線形數(shù)據(jù)。將道路橫斷面設計沿三維線形拉伸,構建出完整的三維道路模型?;诩s束Delaunay三角網(wǎng)理論,實現(xiàn)道路模型與地形模型的拼合,完成道路模型構網(wǎng)。具體可利用三維圖形引擎中Delaunay三角形相關的類實現(xiàn),基本步驟如下。
1)創(chuàng)建一個三角網(wǎng)對象,向該對象中添加地形數(shù)據(jù)中所有的高程點。
2)設置一個三角網(wǎng)約束對象,將邊坡的底邊數(shù)據(jù)作為約束邊界數(shù)據(jù)構建約束邊界,并去除地形中在約束邊界內的點。
3)在三角網(wǎng)對象中添加線形約束對象,對該三角網(wǎng)進行重構。
4)將路肩的邊界數(shù)據(jù)作為約束邊界數(shù)據(jù),再次構建約束邊界。
5)將線形約束對象添加到三角網(wǎng)對象中,重構三角網(wǎng),完成道路模型的整體建模。
在完成道路模型的基礎上,通過人工方式從預先建立的模型庫中選擇道路交通設備、建筑物、植被等場景對象模型,經(jīng)旋轉、平移、縮放等變換后置入場景,完成視景模型的初步構建。各場景對象在場景樹中具有獨立的節(jié)點結構與不重復的ID,方便查詢、遍歷,也用于建立同一場景對象在不同類別模型中的關聯(lián)關系。模型庫中的場景對象模型自帶紋理、光照材質、多級LOD模型。加入場景后,需要重新計算頂點法向量、紋理及材質索引、包圍體參數(shù)等。根據(jù)變換后的坐標及尺寸將其置于場景樹形結構的某區(qū)域節(jié)點下。這些過程可通過遍歷場景樹及對應幾何體參數(shù)自動完成。經(jīng)過如上處理后得到的視景模型,可用于視景仿真及視覺傳感器仿真。
物理層模型包含了具有足夠精度的路面模型以及這些路面的摩擦系數(shù)等參數(shù)、可碰撞場景對象的包圍體、重量、質心等。其范圍被限定在道路及道路兩側的一定距離內,超過這個范圍的場景對象不予考慮??刹捎玫染嗑€算法將三維道路線形根據(jù)物理層模型的范圍向兩側外推,獲得1個條帶狀的空間。利用PNPoly算法從前面建立視景模型中判斷物理層模型所包含的場景對象,獲得其ID及對應的節(jié)點。將這些節(jié)點下最高級LOD模型在去除紋理、光照材質等圖形屬性后用于建立物理層模型。對于路面模型,需根據(jù)給定的誤差閾值、三維線形數(shù)據(jù)重新進行三角形化,以滿足動力學仿真計算對路面高程的精度要求。摩擦系數(shù)等參數(shù)可通過人機交互的方式輸入??膳鲎矆鼍皩ο蟮陌鼑w數(shù)據(jù)也應根據(jù)碰撞誤差精度的要求重新計算、細分。
傳感層模型中包含高精度路面模型和傳感器探測范圍內的場景對象模型。物理層模型中的路面模型可被傳感層模型復用。根據(jù)激光雷達、毫米波雷達的探測距離,可用前述方法獲得傳感層模型的有效范圍,并選出所包含的場景對象。根據(jù)場景對象的ID在預先建立的模型庫中對應的用于傳感器仿真的高精度幾何模型。這些模型無紋理、光照材質等圖形屬性信息,也未經(jīng)過簡化,比視景模型具有更高的精度。經(jīng)過同樣旋轉、平移、縮放等變換后置入傳感層場景樹中。為提高訪問效率,物理層和傳感層模型的組織結構需要進行必要優(yōu)化。
在視景場景中,大部分對象在地形表面呈單層面狀分布,適合采用四叉樹的方式實現(xiàn)場景對象的管理。四叉樹利用包圍四邊形對場景進行遞歸四叉分割[14],直至每個節(jié)點中的場景足夠簡單。場景的簡單程度可以用場景中對象數(shù)量、幾何體的多邊形數(shù)量或場景塊邊長等參數(shù)綜合判定。在本方法中,使用物理層模型構建過程中得到的AABB包圍盒來替代物體用于場景剖分。為與四叉樹剖分平面進行對應,可只使用AABB盒中底面的4個頂點來表示,不考慮場景對象的高度數(shù)據(jù)。通過PNPoly算法依次對物體包圍盒底面4個頂點進行判斷,進而判斷物體是否在某個子場景中。四叉樹剖分場景示意見圖4。
圖4 四叉樹劃分場景結構圖Fig.4 Quadtree partition scene structure diagram
圖4 中的場景結構,場景對象B,D正好處于剖分邊界上。在傳統(tǒng)四叉樹場景管理算法中,場景對象只能存儲在樹的節(jié)點上。對象B,D將被分別存儲在2個對應節(jié)點上,其結構見圖5?;蛴眠吔鐚,D剖分為多個子對象,分別存儲在對應的節(jié)點中。重復存儲會導致四叉樹數(shù)據(jù)出現(xiàn)冗余,增加不必要的存儲空間增大,降低遍歷速度。而多次剖分場景對象會給增加場景復雜度,并為建立場景對象映射關系造成困難??梢詫M跨多個節(jié)點區(qū)域的場景對象分配到能完全包圍其包圍盒的上級節(jié)點區(qū)域。根據(jù)此方法,可將上圖中的對象B存放到根節(jié)點中,物體D存放到二級節(jié)點中,則通過此法優(yōu)化的四叉樹結構[15]見圖6。
圖5 傳統(tǒng)四叉樹結構Fig.5 Traditional quadtree structure
圖6 優(yōu)化四叉樹結構Fig.6 Optimized quadtree structure
優(yōu)化后的四叉樹,其根節(jié)點和中間節(jié)點也存儲有空間實體信息,從而減少存儲空間浪費,控制四叉樹深度,提升空間數(shù)據(jù)窗口查詢效率。
物理層場景、傳感層場景沿道路兩側呈條帶狀或網(wǎng)狀分布。根據(jù)這一特點,采用包圍體層次樹對這2類場景對象加以組織。包圍體層次樹是另一種常用的空間剖分結構,基本結構是一個k叉樹[16]。根據(jù)某種規(guī)則將整個場景進行空間的遞歸剖分,直到達到設定的不再剖分條件。為每個子場景、場景對象建立包圍盒,并以樹形結構進行管理。根據(jù)道路場景的特點,可沿道路走向進行場景剖分。
hical Tree
基本方法是:進行等間距子區(qū)域剖分,建立樹形結構;查找各個子區(qū)域中包含的場景對象,并將其加入節(jié)點中。如果子區(qū)域較為復雜,可在子區(qū)域內繼續(xù)采用四叉空間剖分。對于部分包含在區(qū)域的對象,若其包圍盒幾何中心處于子區(qū)域外,則予以剔除;否則予以保留。對于跨區(qū)域邊界的對象,加入其包圍盒幾何中心所在的子區(qū)域對應的節(jié)點。
圖7 基于包圍體層次樹的場景劃分Fig.7 Scene Partition based on Enclosure hierarc
在對物理層進行碰撞檢測和在傳感層進行雷達仿真時,通過包圍體層次樹可預先剔除大量無關對象,縮小計算范圍,節(jié)省計算時間。
為驗證上述方法,選用1塊大小為1 024×1 024個高程點的規(guī)則格網(wǎng)作為地形數(shù)據(jù)。在該地形上采用如上述方法建立用于智能汽車仿真的場景模型。建立的視景四叉樹為5層。設置激光雷達的掃描范圍為120 m,傳感層包圍體層次樹包含35個子區(qū)域。通過上述判別方法得到每個子場景的范圍及包含物體,最后將相應的數(shù)據(jù)分別填入對應的子節(jié)點中,完成場景樹的構建。
在智能汽車仿真環(huán)境中,對上述場景模型進行了測試。視景幀速率可保持在60幀/s,激光雷達仿真周期為8~12 ms,獲得汽車動力學仿真所需高程及路面屬性數(shù)據(jù)的時間低于1 ms,碰撞檢測計算則可在2 ms內完成。各子系統(tǒng)的截圖見圖8~圖10。
表2 3類場景模型內容Tab.2 Content of three scene models
圖8 視景仿真運行結果Fig.8 Visual simulation running results
圖9 物理層場景示意圖(路面及碰撞包圍體)Fig.9 Schematic diagram of physical scene(road and collision enclosure)
圖10 激光雷達仿真結果(采用64線激光雷達仿真)Fig.10 LiDAR simulation results(with 64-line LiDAR simulation)
為提高智能汽車仿真場景的建模效率、使用效率,提出了一種能夠對視景模型、物理層模型和傳感層模型進行協(xié)同建模的方法,并初步實現(xiàn)了該方法。實踐表明,該方法能夠較快速地建立具有空間映射關系的異構模型,模型內容、結構能夠較好滿足仿真系統(tǒng)的功能及效率的要求。在今后的工作中,將進一步研究更為復雜的道路環(huán)境的建模方法,包括隧道、橋梁、立交橋、道路交叉及匝道等設施,并將微觀交通仿真所需的車道定義、車道關系等邏輯層場景要求納入。