自動駕駛系統(tǒng)是一個復雜的智能化系統(tǒng),對于這類系統(tǒng)和軟件的測試與驗證面臨巨大的挑戰(zhàn),目前更多依賴在實際路況下的測試,除路試道路和環(huán)境條件受限外,需要耗費大量5人力時間成本,而且對于不同路況、天氣、相鄰靜止和運動實體的復雜環(huán)境,特別對一些突發(fā)狀況難以人工設置和復制,導致系統(tǒng)測試與驗證不可重復。
探討針對復雜環(huán)境開展自動駕駛系統(tǒng)軟件虛擬測試與驗證的方法,給出了車載和實驗室仿真測試與驗證系統(tǒng)的組成結構和相關實現(xiàn)方法,以克服在實際路況下測試的局限性,在路試基礎上進一步提高軟件測試充分性,從而達到提高系統(tǒng)安全性和可靠性的目的。
1. 自動駕駛系統(tǒng)測試與驗證面臨極大的挑戰(zhàn)
當前國內多數汽車企業(yè)處于 L2 級到 L3 級自動駕駛過渡的關鍵階段,而互聯(lián)網企業(yè)更多是采用激進的技術路線,即直接開發(fā) L4 級的自動駕駛系統(tǒng),并積極組織開展在各種路況條件下的樣車測試。
自動駕駛系統(tǒng)是一個復雜的智能化系統(tǒng),通過與外部環(huán)境交互處理大量輸入數據,涉及傳感器、數據融合、態(tài)勢分析、運動規(guī)劃和機器學習等多個領域的先進技術,由此相互結合產生的系統(tǒng)具有能夠感知、處理并與其周圍環(huán)境進行交互的復雜軟件系統(tǒng)。由于這類復雜智能系統(tǒng)要處理海量輸入的時間相關數據,并同時與其它系統(tǒng)進行交互,受到自動駕駛系統(tǒng)自身操控影響,使此類系統(tǒng)的測試與驗證面臨極大的挑戰(zhàn)。
在實際路況下的測試是必須要做的基礎測試驗證工作,但通過其難以做到充分,除路試道路和環(huán)境條件受限外,需要耗費大量人力時間成本,而且對于不同路況、天氣、相鄰靜止和運動實體的復雜環(huán)境,特別對一些突發(fā)狀況難以人工設置和復制,導致系統(tǒng)測試與驗證不可重復。
因此,必須解決在復雜環(huán)境下自動駕駛系統(tǒng)測試充分性問題,保證事故概率在一個可接受的水平,也許通過路試能夠達到 95%的可靠性,但最難的仍是從 95%提高到 99.9999%目標。
針對自動駕駛這類復雜系統(tǒng)的測試驗證,提出了一種新的高度集成的軟件測試模式,即在系統(tǒng)中新加入一個安全模塊,針對其中易于出錯且難于測試的決策模塊開展離線仿真測試,并根據已有測試結果在線提供決策信息,以保證決策模塊輸出結果的安全性。
本文基于上述思想進一步探討了在虛擬仿真環(huán)境下開展自動駕駛系統(tǒng)軟件測試驗證的方法,給出了車載和實驗室仿真測試驗證系統(tǒng)的組成結構和相關實現(xiàn)方法,以克服目前在實際路況下測試的局限性,在路試基礎上進一步提高軟件測試充分性,從而達到提高系統(tǒng)安全性和可靠性的目的。
2. 虛擬測試驗證相關基本概念
由于在實際道路上測試自動駕駛系統(tǒng)和軟件的不可控因素及測試本身不可重復,導致考慮在虛擬的仿真環(huán)境下對系統(tǒng)和軟件進行測試。因此,人們自然會采用能夠模仿實際道路的測試方式,即基于場景的測試,并且通過該種測試可以完成在現(xiàn)實世界實際道路測試無法完成的工作。對自動駕駛系統(tǒng)開展基于場景的測試涉及多類復雜問題,而這在常規(guī)測試中很難遇到,其中包括:
(1)場景類型:場景類型可以是靜態(tài)、動態(tài)或混合型。靜態(tài)場景是預先設定好的,即場景中的其他動態(tài)實體與自動駕駛系統(tǒng)所在自主系統(tǒng)本身狀態(tài)無關,而動態(tài)場景中的動態(tài)實體會根據自主系統(tǒng)行為做出反應。
(2)協(xié)同特征:可分為協(xié)同行為和非協(xié)同行為。根據測試要求可設置自主系統(tǒng)所在場景處于不允許協(xié)同行為發(fā)生的狀態(tài),或使場景中其他交通參與者具
有協(xié)同行為,這一特征對系統(tǒng)測試非常重要。
(3)場景描述有效性:對于測試過程中涉及的復雜路況及相關設施的描述要足夠細化和精確以滿足測試要求。例如:一些路況可能涉及各類停車場或鄉(xiāng)村土路,如果要測試相應路況的自動駕駛,需要繪制地圖并產生相應場景。
(4)輸入輸出不確定性:一般軟件測試選擇確定的輸入,經過系統(tǒng)處理后產生確定的輸出,據此判定測試結果的正確性。相反,對被測自主系統(tǒng)則不具備明確的輸入空間且輸出也不能明確定義。
(5)運行時間成本:基于場景的仿真測試與實際道路測試同樣需要耗費大量的運行時間和成本,因為按場景的細分通常要仿真上百萬各種相關或無關場景。當然,在實際實施過程中會重點選擇更為復雜和危險的情況開展測試驗證,這方面可以參考路試結果和人們對復雜環(huán)境、危險場景的已有經驗,以此減少測試場景的數量。
基于上述原因, 為使問題描述的更清晰,需要進一步定義自動駕駛所在自主系統(tǒng)的狀態(tài)和其它相關術語如下:
自主系統(tǒng)狀態(tài):自動駕駛所在自主系統(tǒng)的狀態(tài),包括系統(tǒng)位置、方向和其它外部所需參數及與時間周期性相關的內部參數或初始設置信息,例如:運動規(guī)劃所需各類參數和信息,仿真測試過程中系統(tǒng)狀態(tài)要以適當方式存儲。
態(tài)勢:態(tài)勢被定義為自主系統(tǒng)與其他所有交通參與者當前(瞬間)的狀態(tài),其中包括環(huán)境中的靜態(tài)部分,例如:自主系統(tǒng)所在道路和氣象條件等。
情景:態(tài)勢在一定時間間隔出現(xiàn)狀態(tài)變化的情況,將這種時間連續(xù)變化的態(tài)勢稱作情景。
場景:按照特定目的和時間間隔產生一系列情景形成場景。上述態(tài)勢、情景和場景的時間關系可由圖 1(a)表示,圖 1(b)是一個自動駕駛汽車并入一汽車隊列的場景。在仿真測試中,場景就是自主系統(tǒng)或者說自動駕駛系統(tǒng)測試的用例,簡單的場景由其中相關路網和靜態(tài)、動態(tài)實體組成。
靜態(tài)和動態(tài)實體:相對靜態(tài)實體在場景中不隨時間改變其位置或狀態(tài),例如:路邊停放的汽車,動態(tài)實體通常是隨時間不斷改變其位置或狀態(tài),包括運動中的汽車(連續(xù)變化)和交通信號燈(離散變化)。
協(xié)同和非協(xié)同行為:在仿真測試中,動態(tài)實體可以對其他相關實體的運動做出反應則稱其為具有協(xié)同行為,例如:協(xié)同的汽車會為要加入隊列的車輛讓出位置,這類實體可以預先估計其他交通參與者的意圖并做出友好的反應。相反,非協(xié)同行為是指動態(tài)實體只在為避免碰撞而做出反應而不會允許“加塞”。
態(tài)勢相似性:態(tài)勢相似是指當自主系統(tǒng)狀態(tài)及其與所處環(huán)境中的特征元素(道路及其標識、靜態(tài)實體等)的關系相似,其它動態(tài)實體也有相同的狀態(tài),所謂相似性是其特征參數和相互關系在預先設定的范圍內。
測試驗證空間:所有可能的態(tài)勢和由此導出的各種情景按相互關系組成的場景集合被稱為測試驗證空間。顯然,對于復雜情況測試驗證空間中各種態(tài)勢和情景組合出的場景數量是非常龐大的,但通過列舉是可以完全被覆蓋。
由上述定義可以進一步區(qū)分靜態(tài)場景和動態(tài)場景,即當場景中的動態(tài)實體是按照預先設定的運動軌跡運動,不考慮其他交通參與者(包括自主系統(tǒng)本身)的情況則屬于靜態(tài)場景,在這種情況下可認為是對自主系統(tǒng)的開環(huán)測試模式;而動態(tài)實體考慮其他交通參與者并采取協(xié)同或非協(xié)同行為則屬于動態(tài)場景,這時其運動軌跡可以根據道路和起點到終點的情況及其他交通參與者狀態(tài)實時計算,比如采用某種結構化的駕駛模型,上述動態(tài)場景可被認為是一種閉環(huán)系統(tǒng)測試模式。當然,由此可以導出混合場景。
3. 自動駕駛系統(tǒng)虛擬測試組成結構
自動駕駛系統(tǒng)一般包括采集、感知、通訊、數據庫、人機接口(HMI)和決策模塊,以及控制、執(zhí)行機構模塊,如圖 2 所示。除采集部分直接根據不同傳感器采集的數據經處理后輸出到感知模塊外,自動駕駛系統(tǒng)核心的決策模塊要使用其它模塊的輸出結果,然后將其決策信息發(fā)送給控制模塊,最后由執(zhí)行機構控制執(zhí)行完成自動駕駛任務。
針對自動駕駛這類復雜系統(tǒng)的測試驗證,提出了一種新的高度集成的軟件測試模式,即在系統(tǒng)中新加入一個安全模塊(圖 2 中虛線部分),針對其中易于出錯且難于測試的決策模塊開展離線仿真測試,并根據已有測試結果在線提供決策信息,以保證決策模塊輸出結果的安全性。
在自動駕駛過程中,其決策模塊可以向安全模塊詢問當前態(tài)勢和規(guī)劃的機動方式是否合理,后者會使用測試驗證數據庫信息判斷當前態(tài)勢是否經過驗證,且與當前態(tài)勢臨近的后續(xù)區(qū)域的驗證也能得到充分覆蓋,據此信息通知決策模塊相關處理操作安全或建議新的決策,即改變現(xiàn)有決策使其納入到經過驗證的區(qū)域部分。
本文基于這一思想進一步提出虛擬測試與驗證系統(tǒng)的組成結構,分為車載仿真測試系統(tǒng)和實驗室仿真測試開發(fā)系統(tǒng)兩部分,見圖 2 中替換原有安全模塊的部分,其中車載測試系統(tǒng)面向自控駕駛實際應用,包括在線給出駕駛策略建議和離線仿真測試,其中具體功能如下:
(1)態(tài)勢搜索:包括相似度分析、態(tài)勢更新存儲、決策結果接收;
(2)任務調度:包括場景 / 模型選擇、驗證集合生成、駕駛策略提取;
(3)仿真測試:包括仿真測試執(zhí)行、監(jiān)控和測試結果存儲;
(4)通訊接口:包括與 HMI 通訊接口和與測試開發(fā)通訊接口。
而測試開發(fā)系統(tǒng)則是面向仿真測試開發(fā)和測試與驗證,包括場景 模型建立、仿真測試驗證和結果分析,其中具體功能如下:
(1)場景生成:包括電子地圖、靜態(tài) 動態(tài)實體、2D/3D 場景生成和場景數據庫;
(2)模型建立:包括環(huán)境模型(道路、天氣和各類交通參與者模型)、自主系統(tǒng)模型(傳感器、自動駕駛智能控制系統(tǒng)相關模塊、車輛動力學和運動學模型及駕駛員模擬器)和模型庫;
(3)仿真測試:包括仿真測試執(zhí)行、過程監(jiān)控和測試結果記錄及測試驗證數據庫;
(4)結果分析:包括測試結果分析、模型驗證分析、模型調整和更新、車載測試場景 模型 測試結果更新。
測試開發(fā)系統(tǒng)是自動駕駛系統(tǒng)設計開發(fā)和測試驗證的重要手段,從設計階段智能控制算法的研究到后續(xù)軟件開發(fā),可利用先期建立的全數字或軟件在回路(Safety Integration Level, SIL)仿真測試系統(tǒng),到后期進一步建立用于實驗室自動駕駛系統(tǒng)驗證的半實物(Hardware In Loop, HIL)和車在回路(Vehicle In Loop, VIL)仿真測試系統(tǒng)均能夠發(fā)揮重要作用。
該系統(tǒng)要為車載測試系統(tǒng)提供能夠滿足所需場景下的仿真模型和測試驗證結果,同時依據車載測試系統(tǒng)實際路試產生的場景和測試結果,對已有模型進行驗證分析并更新車載測試場景 / 模型 / 測試結果。
車載測試系統(tǒng)與自動駕駛系統(tǒng)軟硬件緊密相關,需要處理大量實時性要求很高的數據,其中包括在線接收當前態(tài)勢并進行相似度分析,依據對應測試驗證結果給出駕駛策略建議或對未曾有的態(tài)勢更新存儲;
另一方面,在離線情況下對新的場景開展仿真測試驗證,并適時采用有線或無線通訊方式與實驗室測試開發(fā)系統(tǒng)交換信息??梢钥闯?,實驗室和車載兩套系統(tǒng)面向系統(tǒng)測試驗證和實際應用各有側重、相互支持,使測試驗證的準確性和充分性不斷迭代提升,以滿足自動駕駛系統(tǒng)從 L2 提高到 L5 的測試驗證需求。
4. 自動駕駛系統(tǒng)虛擬測試與驗證方法
為在虛擬環(huán)境下測試自主系統(tǒng)或自動駕駛系統(tǒng),基于前述虛擬測試與驗證相關基本概念需要進一步給出系統(tǒng)測試與驗證的基本方法
基于場景的測試與驗證空間
自主系統(tǒng)所在場景可以描述為它在所處交通路網中按運動規(guī)劃的軌跡移動并不斷改變狀態(tài),其它相關動態(tài)實體也在路網中可以按照協(xié)同或非協(xié)同行為移動,可以用時空狀態(tài)網格(Spatiotemporal State Lat? tices)來表征這種狀態(tài)轉換,圖中的結點表示(位置,時間)數據元組,其結點到結點線段表明線路和狀態(tài)變化。
為簡化描述用(距離,時間)二維 STSLs 舉例說明,見圖 3 用于表征基于場景的測試驗證空間時空狀態(tài)網格。圖中節(jié)點劃分取決于靜態(tài)場景中路網和靜態(tài)實體,并保證其具有足夠高精度地圖的支持,而通過結點的實際線路是由自主系統(tǒng)的運動規(guī)劃計算出或者由其他交通參與者的駕駛模型確定。圖中網格時間和距離步長大小要根據運動規(guī)劃是全局規(guī)劃或局部規(guī)劃的要求確定。
特別需要說明,時空狀態(tài)網格分的越細精度越高,導出的不同線路的場景數量會急劇增加,所有可能的線路組成的場景構成了測試驗證空間。圖 3 中給出了圖 1(b)自動駕駛汽車并入汽車隊列(第 2 和第 3 輛車之間)場景的一種情況。
測試場景的參數化
通過上述對基于場景的測試驗證空間的說明,可以進一步對靜態(tài)和動態(tài)場景進行參數化,并以此構造所需的場景測試用例,即對場景及其實體特征進行定義,表 1~3 分別給出道路、天氣和靜態(tài)實體的特征屬性,表中的參數和相關數值只是作為一種參考。
其中,考慮天氣因素是由于天氣效應直接會影響到自主系統(tǒng)傳感器的測量,表中 Φ、θ代表球坐標系下的方位角和高低角,靜態(tài)實體位置由直角坐標 X、Y 和指向角 Φ表示。
由于動態(tài)實體的參數化需要考慮時間因素,因此更為復雜。這里只以圖 1(b)自動駕駛汽車并入汽車隊列(第二和第三輛車之間)場景的一種情況為例,給出相關第二輛(前車)、第三輛(后車)和自主系統(tǒng)車輛的動態(tài)實體參數化特征屬性。
表中的參數對應的坐標系是原點在兩條道路之間與第 3 輛車中心平行的位置,X 軸與道路垂直的直角坐標系,時間零點取在自動駕駛汽車并入汽車隊列前的時刻。
顯然,自動駕駛汽車并入汽車隊列的其他可能性還有很多種情況,例如從第 3 輛或后續(xù)車并入,前述時空狀態(tài)網格(圖 3)清晰顯示了這種動態(tài)實體參數變化的態(tài)勢,由此將相關網格點作為動態(tài)實體在其路徑空間 - 時間上的可能取值,則可得到表 不同的動態(tài)實體參數化特征屬性。對于如何測試所述各類可能的情況或場景,則要依靠下面介紹的組合交互測試方法。
組合交互測試方法
通過上述對測試驗證所需場景的參數化,使后續(xù)工作集中在如何選擇相應參數并產生合理和更具實際應用價值場景的方法上。組合交互測試(Combina? torial Interaction Testing)方法是針對軟件系統(tǒng)中多個因素(參數)及它們之間相互作用的情況所采取的一種科學有效的測試方法,旨在使用盡可能少的測試用例達到較高的錯誤檢測效果。
對于一個具有 K 個參數的待測系統(tǒng),如果每個參數有 n 個取值,則完全測試需要 n 的 K 次方個測試用例,而采用 t 維組合測試,即其中任意 t 個參數的所有取值組合至少被一個測試用例覆蓋,也稱為 t 維組合覆蓋測試,由此生成的測試用例數比枚舉的方法大幅度減少,實踐證明其所需要的測試用例數是按照 k 的對數而不是指數增長。目前,常用的組合測試方法分為兩大類,即各種貪心算法和啟發(fā)式搜索算法[5-6]。
在組合測試中,測試用例集合被表示成組合覆蓋矩陣或混合覆蓋矩陣,矩陣中的每一行對應待測系統(tǒng)中的一個測試用例,每一列代表系統(tǒng)的一個參數的不同取值。貪心算法的思想是從空矩陣開始,逐行或逐列擴展覆蓋矩陣直到所有 t 維組合均被覆蓋。
常用 IPO(In-Parameter-Order)算法就是首先按成對組合覆蓋測試構造前兩個參數的所有組合形成一個初始矩陣,然后按矩陣水平和垂直方向進行二維擴展,逐步增加參數列以盡可能覆蓋更多的 t 維元組,如果仍有 t 維元組未覆蓋,則進一步增加新的測試用例行。啟發(fā)式搜索算法屬于搜索最優(yōu)化問題,在計算效率上不如前者。
本文以場景中動態(tài)實體的運動規(guī)劃為例,重點說明使用組合測試方法解決多車運動軌跡的場景生成,并結合回溯算法處理車與車之間軌跡約束問題。此處仍以圖 3 給出的場景說明應用過程,假設前車已有行車路線形成組合覆蓋矩陣 CA 的一個結點(列)或稱為路徑 - 時間元組,在此基礎上通過水平擴展增加屬于后車的結點,由其軌跡規(guī)劃根據前車軌跡產生的相關約束條件確定當前軌跡,但從測試角度可以通過簡單的網格路徑搜索和模式匹配方法(Brute force meth? od)計算出所有可能的軌跡。
在理想的情況下,最好前車只有一條軌跡線路,由此產生了約束條件區(qū)域并給后車所屬新元組規(guī)劃出相應軌跡線路。如果無法獲得后車軌跡,則前車的軌跡需要重新計算,然后重復計算后車的軌跡線路,重復此過程直到能夠獲取最終解決方案。當然,上述過程可以推廣到 n 個車輛的情況,如圖 4 所示。
圖 4 中實心圓代表已覆蓋的軌跡,圓環(huán)代表當前可行軌跡,而圓圈是尚未經過測試的未覆蓋軌跡。由此可知,參數組合僅包括部分動態(tài)實體而不是全部的情況下,即使得到了相應軌跡線路的組合場景,回溯算法仍需要繼續(xù)尋求包括其它動態(tài)實體的組合場景,這實際上是一個逐步由局部到全局場景的組合過程。為使動態(tài)實體的軌跡規(guī)劃更接近于真實情況,可軌跡規(guī)劃預測模型,它能很好模仿人的駕駛行為產生的軌跡線路。
5. 測試與驗證自動化
類似于車載導航系統(tǒng)的情況,通過實驗室仿真測試開發(fā)系統(tǒng)可以針對實際場景開展虛擬測試與驗證,并將測試與驗證結果傳輸給車載測試系統(tǒng),以便在自動駕駛過程中提供安全決策信息。
對于行車過程中車載測試系統(tǒng)當前未經過測試與驗證覆蓋的部分區(qū)域和態(tài)勢,通常情況下會自動保存并及時傳輸給實驗室開展測試與驗證,然后再由其統(tǒng)一發(fā)布更新車載測試系統(tǒng)信息。
在理想情況下,上述未經測試與驗證部分區(qū)域態(tài)勢可以直接由本車車載測試系統(tǒng)利用已有加載的仿真測試資源(典型道路、場景和相關仿真模型)在空閑時自動開展測試與驗證工作,所謂“空閑” 是指車輛未在行駛過程中但仍處在加電狀態(tài),例如:車輛處在停駛的充電過程中。
實際上,類似仿真測試與驗證需要耗費大量時間和計算資源,如果所有自動駕駛車輛均能夠按此執(zhí)行,并將結果自動傳輸給實驗室測試開發(fā)系統(tǒng)進一步綜合和測試與驗證并發(fā)布,那么這樣一種自動化處理方式是極為合理,而且利用前述的虛擬測試與驗證方法可以實現(xiàn)其自動化過程。
特別指出,自動駕駛系統(tǒng)實際路試的結果對虛擬測試與驗證也是非常重要,通過其驗證數據可以對典型道路、場景和相關仿真模型進行驗證和更新,以彌補虛擬測試與驗證由于簡化對結果帶來的影響。同樣,實際路試結果也是測試與驗證空間中被覆蓋的組成部分,兩種測試與驗證方式缺一不可且相輔相成。
隨著自動駕駛級別的不斷提高(L2~L5),虛擬測試與驗證結果在測試與驗證空間被覆蓋的比重將占有絕對的優(yōu)勢。
結論
本文探討了針對復雜環(huán)境下自動駕駛系統(tǒng)和軟件的虛擬測試驗證方法,給出了車載和實驗室仿真測試驗證系統(tǒng)的組成結構和相關實現(xiàn)方法,為進一步基于實際系統(tǒng)開展研究和系統(tǒng)開發(fā)打下了良好基礎。
對于建立實驗室條件下的虛擬測試驗證系統(tǒng),目前應該已具備成熟的基礎條件;而對于車載測試系統(tǒng)必須要結合實際自動駕駛系統(tǒng)及其軟硬件資源開展設計開發(fā)工作,并進一步解決其中涉及的海量態(tài)勢信息的存儲、態(tài)勢相似性判別、大規(guī)模混合場景的測試驗證方法及其自動化等。相信在未來,隨著自動駕駛系統(tǒng)逐步進入實用階段,車載虛擬測試系統(tǒng)也可以像當今的車載導航一樣應運而生并得到普及。