文圖|馬啟皓 姜超 李玉峰
【導(dǎo)讀】以模擬仿真、實車路試、功能安全相結(jié)合的方式完成智能網(wǎng)聯(lián)汽車的試驗、評價和認證是技術(shù)發(fā)展的必然趨勢。使用場景描述語言能夠仿真渲染出具有高價值的自動駕駛系統(tǒng)測試集,支持自動駕駛汽車整個開發(fā)過程的測試和場景的定義,以及高度還原現(xiàn)實世界的復(fù)雜交通狀況。本文介紹了在交通領(lǐng)域中場景的定義、分類、主要的場景描述語言以及基于場景描述語言的自動駕駛仿真測試系統(tǒng),并對場景描述語言存在的問題和展望做了總結(jié)分析。
近年來,智能網(wǎng)聯(lián)汽車發(fā)展迅速,確保其安全性的一種方法是進行足夠的里程數(shù)測試。據(jù)美國蘭德公司研究,一套自動駕駛系統(tǒng)必須擁有超過110億英里的駕駛數(shù)據(jù)。假設(shè)100輛自動駕駛汽車每天24小時、每年365天不停行駛,平均時速25英里,達到足夠的測試里程數(shù)將需要518年,顯然不切實際。因此,將實際路測與虛擬仿真相結(jié)合尤為重要。基于場景的智能網(wǎng)聯(lián)汽車仿真系統(tǒng)是利用計算機技術(shù)生成各種典型的道路場景,并用其來測試各種自動駕駛算法,增強算法的魯棒性。
交通領(lǐng)域的場景(scenario)是連續(xù) scenes的短暫發(fā)展,其一個重要特性是持續(xù)時間。scene是周圍環(huán)境的快照,包括場景靜態(tài)元素、動態(tài)元素、場景參與者和觀察者的自我狀態(tài)表示以及所有元素之間的關(guān)系。每一個scenario都由一個初始的scene開始。
一是按照抽象的程度分類。scenarios可分為功能場景(Functional scenarios)、邏輯場景(Logical scenarios)、空間場景(Concrete scenarios)三個不同的抽象級別。其中,功能場景指語義級別的描述;邏輯場景指通過在狀態(tài)空間級別使用參數(shù)范圍來進行邏輯方案描述;空間場景指通過在狀態(tài)空間級別使用參數(shù)值來進行具體方案描述。
二是按照場景的內(nèi)容分類。2021年9月發(fā)布的中國智能網(wǎng)聯(lián)汽車基礎(chǔ)數(shù)據(jù)服務(wù)平臺,基于內(nèi)容將場景分為基于真實采集數(shù)據(jù)生成的自然駕駛場景庫、標(biāo)準(zhǔn)法規(guī)場景庫、交通事故場景庫和駕駛員行為數(shù)據(jù)庫等。
三是按照信息分類。根據(jù)將不同信息歸類到不同層面來描述,scenarios可以劃分為六層模型,分別為 L1-L6。其中,L1為道路層面信息,如表層街道邊界;L2為交通基礎(chǔ)設(shè)施,如交通標(biāo)志;L3為L1 / L2的臨時操作,如各種突發(fā)事件;L4為對象,如靜態(tài)、動態(tài)的行人;L5為環(huán)境,如天氣、照明和其他周圍條件;L6為數(shù)字信息,如數(shù)字地圖等。
目前,場景描述語言可以影響到智能網(wǎng)聯(lián)汽車仿真的多個階段,主要包括:提升場景文本描述的質(zhì)量和節(jié)約數(shù)據(jù)采集成本;提升場景仿真案例的描述質(zhì)量,批量生成特定的測試場景;提升對車輛的行為控制的精度等。
XML是一種可擴展標(biāo)記語言,可以用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種準(zhǔn)許使用者對自己的標(biāo)記語言進行定義的源語言。XML最突出的功能是表現(xiàn)信息結(jié)構(gòu)的能力,即文檔各個部分之間的關(guān)系及它們?nèi)绾谓M織成為一個具有確定意義的整體。
ASAM(Association for Standardization of Automation and Measuring Systems)提出了一套完整的仿真測試場景描述方案 OpenX,并制定了一系列標(biāo)準(zhǔn),包括OpenDRIVE、Open Curved Regular Grid(簡稱OpenCRG)、OpenSCENARIO。OpenDRIVE使用XML語法描述自動駕駛仿真應(yīng)用所需的靜態(tài)道路交通網(wǎng)絡(luò),可以適配多種模擬器。該標(biāo)準(zhǔn)的主要任務(wù)是對道路及道路上的靜態(tài)物體進行描述,如道路、車道、交叉路口等內(nèi)容。OpenCRG主要關(guān)注道路表面的相關(guān)物理信息描述,允許在仿真軟件中對道路路面的真實3D渲染。OpenSCENARIO用于描述駕駛和交通模擬器中的動態(tài)內(nèi)容。其主要用例是描述涉及多個實體(如車輛、行人和其他交通參與者)的復(fù)雜的同步操作。具體標(biāo)準(zhǔn)與標(biāo)準(zhǔn)之間的關(guān)系如圖1所示。OpenSCENARIO數(shù)據(jù)模型由統(tǒng)一建模語言(UML)定義。UML通過圖形化數(shù)據(jù)模型圖提高了可讀性,在OpenSCENARIO中,類圖被用于數(shù)據(jù)建模,XML方案可以從這些數(shù)據(jù)模型中派生出來。
圖1 OpenX標(biāo)準(zhǔn)之間的關(guān)系
SceML是一種基于圖形的場景建模語言,為方便專業(yè)人員進行場景圖形結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換而開發(fā)。它遵循UML類圖的規(guī)則,允許對場景描述的多個抽象層級分別建模,主要特性是基于圖的結(jié)構(gòu)提供了模塊化和可重用的子場景。SceML中的每一個場景都有一個行為樹,使用了順序執(zhí)行策略和并行執(zhí)行策略。圖2說明了在車輛向左進行變道的動作描述,每個場景都有一個根節(jié)點,其中包含場景中所有參與者的列表,從初始狀態(tài)開始,遇到動作節(jié)點則進行條件判斷,往后通過條件同步節(jié)點,最終所有的機動路徑都收斂到終端節(jié)點。SceML可以用來設(shè)計具體的場景,然后進行驗證。其不同于其他描述語言系統(tǒng)的一個特點是,在執(zhí)行之前不需要定義場景結(jié)果,能夠以機器學(xué)習(xí)算法或由專家創(chuàng)建的方式,從數(shù)據(jù)集中生成和提取場景。
圖2 向左變道行為樹示例
GeoScenario的開發(fā)是為了描述可能影響交通的所有相關(guān)細節(jié),但是沒有為車輛定義動作的細節(jié),僅指定了初始條件和目標(biāo)。采用的數(shù)據(jù)格式基于XML,并且將由Open Street Map(OSM)標(biāo)準(zhǔn)確定的組件,包括自我起始位置和目標(biāo)、道路網(wǎng)絡(luò)、代理(車輛和行人)、路徑以及觸發(fā)器和動作記錄其中。GeoScenario的語言具有系統(tǒng)獨立性,它支持由不同自動駕駛系統(tǒng)設(shè)計的測試用例,可以在不同自動化級別上運行。場景支持手動設(shè)計,從真實的交通數(shù)據(jù)中提取,或從駕駛數(shù)據(jù)庫中導(dǎo)入。場景中包含靜態(tài)對象和動態(tài)元素,可以添加觸發(fā)器節(jié)點來激活動態(tài)元素上的不同操作。
CommonRoad是一種獨立于平臺的格式,用于道路運動規(guī)劃的特定道路交通場景。開發(fā)團隊提出了CommonRoadXML格式,它僅包含一小部分OSM屬性,但提供了指定交通場景所需的所有元素。CommonRoadXML文件由XML頭(XML版本和編碼類型)和普通根元素組成,包括位置、場景標(biāo)記、車道、交通標(biāo)志、紅綠燈、十字路口元素、靜態(tài)和動態(tài)障礙以及規(guī)劃問題。CommonRoad使用Lanelets來描述道路。Lanelets是OSM格式的開放擴展,專門用于支持自動駕駛車輛的道路網(wǎng)絡(luò)表示,能夠以任意精度逼近任意車道形狀。它可攜帶額外的數(shù)據(jù)來描述靜態(tài)環(huán)境。因此,這些邊界由一系列形成多段線的OSM節(jié)點數(shù)組進行編碼,一起組成了Lanelets的地圖。
M-SDL是一種開放的、人類可讀的高級場景描述語言,允許簡化場景的捕獲、重用和共享,并輕松指定任何場景和操作條件的組合,同時允許監(jiān)控和測量自動功能的覆蓋范圍,有助于實現(xiàn)“可測量的安全”生態(tài)系統(tǒng)。SDL的構(gòu)建塊是語句、結(jié)構(gòu)、參與者、場景成員、場景調(diào)用和表達式。由于M-SDL具有類似Python的語法和詞法約定,因此可以輕松定義通用抽象場景。
Scenic是一種新的概率編程語言,用于感知系統(tǒng)的設(shè)計和分析,特別適用于基于機器學(xué)習(xí)方法的無人駕駛系統(tǒng),從環(huán)境中收集數(shù)據(jù),并對系統(tǒng)進行重新設(shè)計,直至其性能令人滿意為止。該語言能夠生成開發(fā)者自己想要的一些數(shù)據(jù),或者現(xiàn)實世界難以采集到的數(shù)據(jù)(如交通事故數(shù)據(jù)),并利用這些數(shù)據(jù)對無人系統(tǒng)進行訓(xùn)練和測試,從而提高無人駕駛系統(tǒng)的性能。
汽車駕駛仿真測試是以數(shù)學(xué)建模的方式將自動駕駛的應(yīng)用場景進行數(shù)字化,盡可能還原成接近真實世界的系統(tǒng)模型,通過軟件進行測試便可達到對自動駕駛系統(tǒng)及算法的測試驗證目的,包括場景庫、仿真平臺兩個部分。其中,場景庫是指由自動駕駛測試場景構(gòu)成的數(shù)據(jù)庫。通過場景描述語言可以快速構(gòu)建復(fù)雜的場景,支撐完成從場景庫到場景測試引擎的橋接,實現(xiàn)從場景的自動產(chǎn)生、管理、存儲、檢索、匹配,到最后注入測試工具。基于場景描述語言的仿真平臺SUMO、CARLA、騰訊TAD Sim介紹如下。
SUMO(Simulation of Urban Mobility) 是 一個開源且高度便攜的,適用微觀模擬和連續(xù)行為的仿真平臺,可用于處理大型的路網(wǎng)交通模擬仿真。它附帶了一個交通仿真路網(wǎng)編輯器,可以通過交互式編輯的方式添加道路、編輯車道、處理信號燈時序等,也可以通過一個單獨的轉(zhuǎn)化程序轉(zhuǎn)換來自Vissim、OpenStreetMap、OpenDrive的路網(wǎng),流程如圖3所示。可以通過編輯路由文件的方式指定每輛車輛的路由,或者使用參數(shù)隨機生成。
圖3 將Vissim網(wǎng)絡(luò)導(dǎo)入SUMO的流程圖
CARLA是一個開源且具有開放生態(tài)的自動駕駛仿真平臺,旨在支持自動駕駛系統(tǒng)的開發(fā)、培訓(xùn)和驗證,具有與 SUMO 的協(xié)同仿真功能。CARLA可以與Scenic結(jié)合使用,通過單個場景定義生成多個不同的場景。CARLA支持用戶按照OPENDRIVE標(biāo)準(zhǔn)創(chuàng)建集中的地圖,允許用戶進行交通場景模擬。另外,CARLA還支持CarSIM、PTV Vissim、Chrono等各種軟件的接口。
騰訊自動駕駛數(shù)字孿生仿真測試平臺TAD Sim 2.0集成了工業(yè)級的車輛動力學(xué)模型、專業(yè)的游戲引擎、三維重建技術(shù)和虛實一體的交通流技術(shù),可以完成感知、決策、控制算法等實車上全部模塊的自動駕駛仿真測試。TAD Sim通過使用真實數(shù)據(jù)不斷訓(xùn)練模型來進行模型迭代,提供智能分析、仿真測試等應(yīng)用服務(wù),構(gòu)建自動駕駛快速研發(fā)、驗證和升級閉環(huán)。TAD Sim提供全棧式工具鏈,具備“數(shù)據(jù)采集、場景建模、場景自動生成、模型在環(huán)、軟件在環(huán)、云加速測評、硬件在環(huán)、車輛在環(huán)”完整測試驗證流程的自動駕駛仿真系統(tǒng)。該平臺自研了包括車輛動力學(xué)、傳感器、交通流、地圖和場景編輯等全套模型,并支持OpenX系列和OSI國際仿真標(biāo)準(zhǔn),解決傳統(tǒng)仿真軟件部分核心模型過于依賴第三方的問題。
近年來智能網(wǎng)聯(lián)汽車測試正由路測轉(zhuǎn)變?yōu)樘摂M仿真,各種場景描述語言及仿真平臺的開發(fā)使得網(wǎng)聯(lián)汽車工程師擁有了便捷的工具,從而實現(xiàn)更加貼近現(xiàn)實的場景模擬。對比部分場景描述語言,雖然應(yīng)用目標(biāo)各不相同,但XML作為一種泛用性較廣的數(shù)據(jù)結(jié)構(gòu),被大多數(shù)場景描述語言平臺所接受,也有利用python這種編程語言格式使得場景描述更為簡便。當(dāng)前可用于場景描述語言的平臺在國內(nèi)外得到快速發(fā)展,但存在的問題是場景庫標(biāo)準(zhǔn)不統(tǒng)一,影響了測試仿真效果。筆者提出以下建議:一是場景描述語言與圖像建模應(yīng)充分結(jié)合。文本描述場景擁有空間小、支撐簡單、含義明確、便于優(yōu)化的特點。但對于較為復(fù)雜的模型,無論是開發(fā)人員還是其他閱讀者,圖像模型可以從視覺上更加直觀立體地反映出較為抽象的特點。因此,出于對文本模型和圖像模型二者優(yōu)勢結(jié)合的考慮,有仿真平臺在研究文本與圖像的交互式建模。二是軟件的開源與格式應(yīng)保持相對兼容。開源的軟件可以更加廣泛地被應(yīng)用于工業(yè)界和學(xué)術(shù)界,在多種使用條件下,其核心的穩(wěn)定性更容易得到驗證與保障。開源的軟件更加有可能被大型企業(yè)作為行業(yè)規(guī)范,從而用其資源來支持該開源社區(qū)。例如CARLA作為一個開源的仿真軟件,能為大多數(shù)場景描述語言所用,有很多企業(yè)的項目和拓展研究也以它作為平臺。因此,從趨勢來看,越來越多的廠商開始支持OpenX。當(dāng)不同廠商采用統(tǒng)一場景描述語言,共建基礎(chǔ)場景庫,就可形成通用的、可移植的場景庫,提升場景庫的覆蓋率,促進汽車自動駕駛仿真測試的可行度。