首頁 > 新能源汽車

張人杰:自動駕駛的阿喀琉斯之踵——冗余架構

來源:新能源汽車網
時間:2020-09-30 20:12:32
熱度:

張人杰:自動駕駛的阿喀琉斯之踵——冗余架構/ 導讀 /自動駕駛發(fā)展到今天,隨著傳感器技術和計算、決策、控制系統(tǒng)的進一步成熟,單車智能需要的技術在封閉環(huán)境和簡單環(huán)境已經逐漸具備商業(yè)化

導讀

自動駕駛發(fā)展到今天,隨著傳感器技術和計算、決策、控制系統(tǒng)的進一步成熟,單車智能需要的技術在封閉環(huán)境和簡單環(huán)境已經逐漸具備商業(yè)化落地的可能性,同時V2X也在一定程度上為單車智能提供基于通信方式的協(xié)同。但是要實現(xiàn)真正意義上的完全無人駕駛的路還很長,而系統(tǒng)架構冗余設計目前還是業(yè)界普遍被忽視但卻必須要有突破性發(fā)展的關鍵環(huán)節(jié)。本文基于作者多年對網絡通信和軌道交通系統(tǒng)冗余設計的經驗,期望能引發(fā)大家對架構冗余設計的理解,并開始思考如何將架構冗余應用到自動駕駛的軟、硬件和系統(tǒng)設計中去。

什么是冗余?

所謂冗余,就是為了系統(tǒng)的可用性(availability),采用兩套或者兩套以上的相同或相似且相對獨立配置并可切換使用的設計。簡而言之,就是當一套系統(tǒng)出現(xiàn)問題時,另一套系統(tǒng)能夠迅速切換,在不改變系統(tǒng)運行狀態(tài)的條件上保障系統(tǒng)仍然可用。

冗余設計不是新概念,然而在傳統(tǒng)汽車里很少考慮

做為現(xiàn)代化的交通工具,汽車在100年來一直承擔著我們出行的重要任務,然而在汽車的系統(tǒng)架構設計中我們從來沒有考慮過冗余設計,因此我們在道路上經??梢钥匆娨虬l(fā)動機或其它故障拋錨的汽車,有時候一個小小的剎車片故障,都可能導致汽車無法制動而釀成大禍。

再讓我們來看另一個很重要的交通工具——飛機,它在設計中一直通過冗余來保障生命關鍵性安全,通常一架飛機會配備四個發(fā)動機,如果有一到兩個發(fā)動機出現(xiàn)故障時,飛機仍然能夠通過剩余可用的發(fā)動機完成飛行任務,不至于造成墜機的重大傷亡事故。而現(xiàn)代飛機的控制電腦也大多采用冗余設計,提高了控制系統(tǒng)的可用性。

我們熟悉的通信網絡,也很少出現(xiàn)系統(tǒng)級的斷網現(xiàn)象,為什么?因為通信網絡的關鍵設備,比如核心路由器,在中央板卡和線卡都有冗余備份,無論是路由計算還是線卡的數據包轉發(fā),出現(xiàn)故障時,都能自動完成切換,在用戶端感知不到服務的中斷。

在軌道交通系統(tǒng)里,因為調度均為系統(tǒng)完成,很少有人為干預,信號控制系統(tǒng)的可用性要求極高,所以也是采用冗余架構設計,為達到EN50128/EN50129的標準,甚至要考慮復雜的異構冗余。

傳統(tǒng)汽車之所以沒有考慮冗余設計,其中一個原因是從成本的角度,冗余架構引入的系統(tǒng)設計復雜度和帶來的軟硬件成本提高,對于傳統(tǒng)汽車來說都是不現(xiàn)實的,還有另一個原因是汽車在公路上行駛,出現(xiàn)故障時轉移和修理的成本并不高,在用戶可以接受的范圍內。

自動駕駛離不開冗余設計

新一代的智能汽車,自動駕駛是其中很重要的一個發(fā)展方向,但從行業(yè)技術發(fā)展看,包括Waymo等國際領先的自動駕駛系統(tǒng)廠商,在系統(tǒng)設計時都沒有考慮最重要的環(huán)節(jié)——冗余架構。

自動駕駛為什么需要冗余設計?在高等級自動駕駛的場景中,人為干預情況極少,所有的感知、計算、決策、控制均由系統(tǒng)自動完成,在復雜的流程中只要有一個小故障發(fā)生導致部分系統(tǒng)不可用,就會產生車毀人亡的重大后果。那么,我們需要在哪些環(huán)節(jié)引入冗余架構設計呢?

首先,傳感器需要冗余。過去我們提的較多的是傳感器融合概念,就是通過多種不同的傳感器收集信息并計算評估結果,但單純的傳感器融合無法解決單一傳感器出現(xiàn)故障的系統(tǒng)可用性,我們必須針對每種類型的傳感器都有冗余設計。因為無論是單目攝像頭、立體攝像頭、激光雷達、毫米波雷達,在自動駕駛環(huán)境信息采集的內容和cover的場景都是非完全重合的,只有對每一種類傳感器采用冗余設計,才能保障極端情況下失效的可用性。比如我們在做360度全景時依賴的是前后左右四顆攝像頭的輸入通過算法來產生從車頂部視角的成像,如果有一顆攝像頭出現(xiàn)故障,算法就會使失效,而單目攝像頭這種自動駕駛高度依賴的傳感器如果出現(xiàn)故障,則所有的輸入都會失效,后續(xù)的計算、決策、控制也會隨之失敗。

傳感器冗余的復雜度不完全在部署兩套完全相同的傳感器,而是對輸入的仲裁和切換的方式。比如兩組傳感器部署的位置略有偏差,后面算法的輸入參數也需要微調,如何判斷某組傳感器發(fā)生故障或輸入數據有誤?當故障檢測到時切換的邏輯是什么?傳感器數據輸入的模塊狀態(tài)機的變化?每一個問題就意味著要有相應的解決方案。

其次,計算、決策、控制系統(tǒng)需要有冗余。無論是早期的數據擬合,還是現(xiàn)在用的廣泛的深度學習,神經網絡從模型上就是非確定性的計算,這意味著同樣的輸入未必產生同樣的輸出,模型自身的不確定性將為正確判斷人、車或障礙物產生風險。為了提高系統(tǒng)的可用性以及減少模型的不確定性,我們必須對計算、決策、控制系統(tǒng)增加冗余設計。

我們以未來中央計算架構為例,如果整車采用一塊高度集成的核心板做為中央計算基礎,自動駕駛的計算決策控制模塊以子板卡形式加載,我們就需要用同構或者異構設計加裝2塊以上的計算決策控制模塊。

什么是同構?簡單的說,就是硬件設計一樣、軟件設計一樣、系統(tǒng)設計一樣,那異構呢?就是硬件設計不一樣,比如處理器不同體系架構,第一塊用的ARM,第二塊也許就是X86或者PPC,隨之軟件和系統(tǒng)設計自然也不一樣。異構設計遠比同構設計復雜,但是在這里無論同構還是異構,都需要保障系統(tǒng)功能一致,即接受相同的輸入,在相同條件產生相同的輸出。

接下來,仍然要考慮的是仲裁,即如果兩組模塊同時工作,如果產生結果不同,如何選擇結果?如果其中一組大多數時間是靜默狀態(tài),那么如何保證在故障切換時系統(tǒng)的狀態(tài)一致?

除此之外,自動駕駛需要的高精度地圖信息、位置信息等都需要有冗余考慮,在復雜度極高的完全無人駕駛場景中,從系統(tǒng)、軟件、硬件到應用層面均需要有完善的冗余設計。很多人會說,我用車路協(xié)同,要知道5G毫米波一個重大的缺陷就是基站數增加,在基站覆蓋率較低的偏遠地區(qū),出現(xiàn)通信不暢的現(xiàn)象將極為平常,所以單車智能還將是自動駕駛的主導,而在這種場景,冗余架構設計就不是可有可無,而是必須要考慮的重要環(huán)節(jié)。