Thursday, April 2, 2020

來聊聊自動駕駛功能測試的一環-虛擬整合(Virtual Integration)吧!

§為什麼傳統道路測試不再夠用?

在自動駕駛從一個很新穎的話題蛻變成新產品之前,需要歷經許多安全與可行性測試,但因為傳統道路測試有其限制(例如:需要等到產品之軟硬體部分都研發完成才能整車上路測試、且測試需要天時地利(天候、路況、車流有不可複製性),危險的情境測試的成本太大等問題)。
更關鍵的一點,訓練自動駕駛功能所用到的機器學習資料集需求量龐大,要累積到10^9公里級的道路駕駛里程,才有辦法訓練一個新功能到它足夠安全,如果是一組有100輛車的車隊,全年無休地駕駛,需要約10-400年的駕駛才能達成。一聽就知道不可行了吧!
所幸,這一切能透過所謂的Virtual Testing(虛擬測試),即用軟體模擬車輛狀況、環境、天氣等達成。

$用虛擬測試(Virtual test drive)優點是
1. 測試場景能被再利用: (Reproducibility)
在現實生活中,同樣的路況不會出現第二次,但是透過軟體,我們可以構建一個虛擬的世界,裡面有虛擬的其他道路使用者(Other Road User, ORU),以及不同天候、陽光照射角度、光線反射、地面狀況等等參數都能被依需求調整、貯存、重複利用。
2.測試較為彈性: 如上,測試參數都能自由調整,透過物件導向設計,不同排列組合就能產生無數的場景(Scenario)供測試。
3.測試能很早就進行: 虛擬測試在產品都還沒被研發出來時,就能提供一個視覺化界面,幫助客戶與工程師釐清他們的需求與初步可行性評估。另外,Time to Market時間能被縮短(至少研發real vehicle prototypes的前置時間能被縮短)。
4. 可以比real-time還快

那這是否表示,軟體主導的虛擬測試就完全取代傳統道路測試了呢?
還是不太可能的,隨便舉個例子,一些"主觀"的需求,如駕駛的舒適性,還是需要透過實車駕駛去感受。另外,有很多虛擬測試的場景都是從真實案例中(例如車禍的紀錄)去還原的,因此傳統道路駕駛還是有其必要性。
如果以現行產業來說,系統供應商(Supplier,負責單元研發與製造)與OEM(即那些知名的汽車品牌,負責研發新車款、項目管理、整車組裝、宣傳與售後服務)都會從virtual testing中受益,前提是雙方使用同樣的整合與測試環境(integration and test environment)。OEM可以把虛擬車輛原型以黑盒子(black box)形式給供應商,而供應商完成初步設計後,可以把系統實現細節加密後回傳給OEM評估,這樣一來Supplier在評估功能目標時能夠不論系統的真實細節;而OEM可以節省很多迭代時間。


§車輛電子系統開發的神器- V Model
在車用電子系統開發中,產業界有個行之有年的流程稱為V Model(見下圖,註1取材自),大學有學過軟體工程的朋友一定多少對它有印象。左半邊是任務分析(task analysis)流程,右半邊是測試與整合流程。整個V model的進行,就是從V的最左邊到中間低點再到最右邊的過程。我們可分為descending branch(任務是task analysis,產出是specification與test cases)與ascending branch(任務是testing與integration)。
他的一大特色是把product development與quality management緊密結合。但V Model一大缺點是,你在descending branch做的test case,要一直到ascending branch結束才會被執行完畢,也就是所謂Validation(Am I doing the thing right?)步驟。以汽車產業來說,這個過程約需要3年,因此我們需要在早期建立一個額外的、評估開發品質的方法來降低此類風險,並且此評估必須能被具體化且能夠在整個開發流程中隨時被修正。

以下我們先逐步介紹V Model各步驟:
V Model(註1)
1. MiL(Model-in-the-loop): 一個個模仿ADAS功能的軟體"模塊"共同組成一輛車,但是不考慮硬體。通常用Model-based輔助開發軟體能夠完成此工作(例如PREEVision就是德國業界常用)。接著進行virtual test driving,我們就能夠評估顧客接受度。
2. SiL(Software-in-the-loop):考慮到了target system的計算力、real-time behavior等等,但仍然不考慮真實硬體規格。
完成MiL與SiL後,virtual integration就完成了,這也是integration phase的起點。
3.HiL(Hardware-in-the-loop):首先,我們輪流把SiL的其中一個軟體模塊換成硬體,進行個別單元測試;接著進行部分整合測試,以觀察各硬體部件之間互動是否如預期。
4.ViL(Vehicle-in-the-loop):是一個相對新的觀念,用以補足V-Model的。

上面介紹過了V Model,而一個新的自動駕駛或先進駕駛輔助系統(ADAS)功能會經過哪些研發週期呢? 基本上就是從"虛"到"實"的逐步迭代過程,也就是會先進行全部透過軟體實現的MiL;接著把功能相關的code引進測試,變成SiL;再來HiL是把ECU硬體逐項引進測試;再來ViL(Vehicle)是除了駕駛員與環境是虛擬的,其他都是真的;最後才是實打實的實車測試(Real Test Drive)。
當然,針對以上所有測試方式,我們也要研發一套合理的評估方法,以便量化測試結果並為其評分。




§目前虛擬測試的難題與限制:
1.電腦計算力受限與2.現有模擬軟體擬真度不足(我們需要竟可能讓虛擬環境與現實世界"一模一樣",那可有多少參數細節要考慮,而目前模擬軟體還做不到此點)是兩大難題。關於虛擬場景的建立,包含靜態的scene與動態的scenario,日後將會專文探討。目前大宗為OpenDRIVE,日後有望變成統一天下的標準。

註1: 取材自 Winner, H., Hakuli, S., Lotz, F. & Singer, C. (eds.) (2016). Handbook of Driver Assistance Systems: Basic Information, Components and Systems for Active Safety and Comfort. Cham: Springer. ISBN: 978-3-319-12351-6, P.163

No comments:

Post a Comment