一文讀懂自動駕駛軟件系統(tǒng)
/ 導讀 /
對無人駕駛來說,操作系統(tǒng)的實時性非常重要,操作系統(tǒng)要保證任務能夠在規(guī)定的時間內得到響應。無人駕駛系統(tǒng)實現(xiàn)了無人駕駛所需要的各種算法,包括定位、環(huán)境感知、路徑規(guī)劃和控制等,無人駕駛系統(tǒng)是無人駕駛軟件的核心部分。最后云平臺提供了無人駕駛所需要的各種基礎服務,共同構成了整個無人駕駛軟件。

圖源 CSDN況祥彬博客
自動駕駛操作系統(tǒng)
構建自動駕駛汽車是一項挑戰(zhàn),構建自動駕駛汽車操作系統(tǒng)則更具挑戰(zhàn)性。
讓汽車更智能、更安全比建造今天在我們的街道上行駛的任何汽車都要困難得多。自動駕駛汽車操作系統(tǒng)也是如此。選擇汽車操作系統(tǒng)是一件大事,因為它需要控制汽車的核心功能,同時保證乘客和駕駛環(huán)境的安全。操作系統(tǒng)是指控制和管理整個計算系統(tǒng)的硬件和軟件資源,并合理地組織調度計算機的工作和資源,以提供給用戶和其它軟件方便的接口和環(huán)境的程序集合。

而自動駕駛的操作系統(tǒng)較之手機電腦的操作系統(tǒng),顯得更加地復雜,對安全性要求也更高。由于無人車的軟件算法都運行在操作系統(tǒng)之上,對操作系統(tǒng)最主要的要求是穩(wěn)定性和實時性。穩(wěn)定性體現(xiàn)在操作系統(tǒng)占用的資源少,出現(xiàn)故障之后系統(tǒng)不會奔潰,能夠長時間運行。而實時性要求系統(tǒng)能夠及時響應控制指令,工業(yè)設備、汽車電子、航空航天等領域都要求采用實時操作系統(tǒng),因為在這些領域操作系統(tǒng)如果不能及時響應控制指令,會產生很嚴重的后果。試想一下在駕駛過程中發(fā)出了緊急剎車指令,而操作系統(tǒng)沒有及時響應,會導致嚴重的交通事故。
自動駕駛系統(tǒng)
前面介紹了實時操作系統(tǒng),在實時操作系統(tǒng)之上運行的就是無人駕駛中最重要的算法實現(xiàn)。算法實現(xiàn)有2種不同的架構,一種是模塊化的軟件架構,這是目前無人駕駛系統(tǒng)的主流方案,世界上最大的2個無人駕駛開源社區(qū)Apollo和Autoware都是采用這種架構。
另一種是端到端的軟件架構,和模塊化的思路不同,端到端的自動駕駛直接采用傳感器(攝像頭等)的數(shù)據作為輸入,通過深度學習模型,直接輸出控制信號(油門、剎車、方向轉角)控制汽車的行駛。端到端的自動駕駛結構非常簡單,但性能高效。由于深度學習模型不能安全硬編碼,并且具有不可解釋性,目前端到端的自動駕駛更多的只是作為研究手段。
現(xiàn)如今自動駕駛系統(tǒng)一般將核心的算法模塊化劃分為感知層、定位層、預測層、決策規(guī)劃層以及控制層,這一套系統(tǒng)的劃分經歷過大量的實驗及時間檢驗,可以說是目前無人車中運用最廣泛的系統(tǒng)之一。模塊化劃分的好處就是各個模塊各司其職,只用專心處理這一層所需要處理的數(shù)據,將輸出盡可能穩(wěn)定地傳給下一層,使其完美完成自動駕駛操作的閉環(huán),但同時,模塊間的信息交互、接口制定、互相配合的難度也是極大的,也造成了目前自動駕駛領域中部分難題難以劃定為某一模塊的劣勢。

而端到端的自動駕駛方法和人類的駕駛方式很相似,結構簡單高效,并不依賴高精度地圖,但用于生產實踐具有可解釋性差的問題,由于自動駕駛過程中的感知、決策和規(guī)劃都是通過深度學習模型完成的,出現(xiàn)故障后,沒法分析具體的原因。并且也不能硬編碼安全規(guī)則。在算法失控的時候,不能保證安全,而這一條足以使其無法應用于實際的工程應用之中。
再根據無人車是否聯(lián)網,可以將無人駕駛車分為單車智能和網聯(lián)智能,單車智能強調車本身的智能,即使在沒有網絡的情況下,也具備完全自動駕駛能力。而網聯(lián)車則強調車和車、車和環(huán)境的交互,通過整個車聯(lián)網來實現(xiàn)更高級的智能,車本身可以具備自動駕駛能力,也可以只具備部分自動駕駛能力,通過網絡獲取更高級的智能。從目前的發(fā)展趨勢來看,無人駕駛車要更快的落地,單車智能和網聯(lián)智能二者需要互相融合,共同發(fā)展。
自動駕駛云服務
云服務是自動駕駛不可或缺的一環(huán),自動駕駛相關的高精度地圖、數(shù)據存儲、模型訓練、自動駕駛仿真等都依賴于云服務。目前已經宣布能提供自動駕駛服務的云平臺有百度Apollo、亞馬遜AWS和華為Octopus,提供的主要功能包括:數(shù)據采集和存儲、數(shù)據Pipeline、模型訓練部署以及自動駕駛仿真。
講到云服務,首先提到的是數(shù)據存儲。數(shù)據存儲首先需要的是一個分布式的文件系統(tǒng),大數(shù)據時代已經被廣泛證明了分布式文件系統(tǒng)的好處,最主要的好處是容量可以水平擴展,而且可靠性高。自動駕駛每天產生的大量數(shù)據都可以通過分布式文件系統(tǒng)保存下來。
其次是數(shù)據處理,深度學習模型訓練、高精度地圖生成以及自動駕駛仿真等都需要進行數(shù)據處理。自動駕駛的數(shù)據處理流程包括:收集、清洗、標注、訓練和部署。用于自動駕駛模型訓練的數(shù)據首先需要人工標注,然后再進行模型訓練,最后才能得到能夠識別車輛和行人的深度學習模型。數(shù)據的自動化標注是很大的挑戰(zhàn),通過工程的方法盡量減少人工標注,可以大幅度提高標注效率。數(shù)據處理的另一個挑戰(zhàn)是大規(guī)模并行處理數(shù)據,由于數(shù)據量巨大,如何快速的處理數(shù)據是瓶頸。有很多優(yōu)秀的分布式計算框架,其中Apache Spark可以構建大規(guī)模集群并發(fā)執(zhí)行多個任務,在大規(guī)模數(shù)據處理中有非常好的實踐。能夠快速高效的處理數(shù)據,是自動駕駛數(shù)據處理的核心競爭力。
最后便是地圖服務,云端應該實時提供自動駕駛所需要的地圖服務。地圖包括道路信息和動態(tài)信息,道路信息不用再過多介紹,就是傳統(tǒng)的道路信息,動態(tài)信息是地圖上出現(xiàn)堵車或交通管制等需要實時動態(tài)更新的信息。在這之中,高精度地圖的維護是目前面臨的最大問題,因為涉及到整個地圖的采集、加工和標注,實時維護大體量的高精度地圖目前來說成本高昂,一些高精度地圖服務提供商提出采用眾包的方式更新高精度地圖。
總結
以上便是自動駕駛中軟件系統(tǒng)整體框架的全部內容,可以看到,作為目前最前沿、最火熱的技術,自動駕駛中囊括了太多目前尖端的科技,也不難理解為何如此多的人才涌入進該行業(yè)中。而要實現(xiàn)真正的無人駕駛,顯然也有很長的路需要走,也需要以上的各個方向,都能取得革命性的突破,才能使得自動駕駛不再有短板,也變得越來越安全。更多行業(yè)深度解析,請關注智車科技公眾號!
參考資料:[1] https://blog.csdn.net/qq_40337086/article/details/125540221
- End -
標簽: