• 正文
    • 自動駕駛操作系統(tǒng)
    • 自動駕駛系統(tǒng)
    • 自動駕駛云服務
    • 總結(jié)
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

一文讀懂自動駕駛軟件系統(tǒng)

2022/07/27
524
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

無人駕駛軟件分為車輛端和云端2個部分,其中車輛端運行操作系統(tǒng)和無人駕駛系統(tǒng),云端提供無人駕駛所需要的各種服務。操作系統(tǒng)主要負責無人車硬件資源(包括傳感器、系統(tǒng)總線、網(wǎng)絡等)的管理以及計算資源的調(diào)度。

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

圖源 CSDN況祥彬博客

自動駕駛操作系統(tǒng)

構(gòu)建自動駕駛汽車是一項挑戰(zhàn),構(gòu)建自動駕駛汽車操作系統(tǒng)則更具挑戰(zhàn)性。

讓汽車更智能、更安全比建造今天在我們的街道上行駛的任何汽車都要困難得多。自動駕駛汽車操作系統(tǒng)也是如此。選擇汽車操作系統(tǒng)是一件大事,因為它需要控制汽車的核心功能,同時保證乘客和駕駛環(huán)境的安全。操作系統(tǒng)是指控制和管理整個計算系統(tǒng)的硬件和軟件資源,并合理地組織調(diào)度計算機的工作和資源,以提供給用戶和其它軟件方便的接口和環(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è)設備、汽車電子、航空航天等領(lǐng)域都要求采用實時操作系統(tǒng),因為在這些領(lǐng)域操作系統(tǒng)如果不能及時響應控制指令,會產(chǎn)生很嚴重的后果。試想一下在駕駛過程中發(fā)出了緊急剎車指令,而操作系統(tǒng)沒有及時響應,會導致嚴重的交通事故。

自動駕駛系統(tǒng)

前面介紹了實時操作系統(tǒng),在實時操作系統(tǒng)之上運行的就是無人駕駛中最重要的算法實現(xiàn)。算法實現(xiàn)有2種不同的架構(gòu),一種是模塊化的軟件架構(gòu),這是目前無人駕駛系統(tǒng)的主流方案,世界上最大的2個無人駕駛開源社區(qū)Apollo和Autoware都是采用這種架構(gòu)。

另一種是端到端的軟件架構(gòu),和模塊化的思路不同,端到端的自動駕駛直接采用傳感器(攝像頭等)的數(shù)據(jù)作為輸入,通過深度學習模型,直接輸出控制信號(油門、剎車、方向轉(zhuǎn)角)控制汽車的行駛。端到端的自動駕駛結(jié)構(gòu)非常簡單,但性能高效。由于深度學習模型不能安全硬編碼,并且具有不可解釋性,目前端到端的自動駕駛更多的只是作為研究手段。

現(xiàn)如今自動駕駛系統(tǒng)一般將核心的算法模塊化劃分為感知層、定位層、預測層、決策規(guī)劃層以及控制層,這一套系統(tǒng)的劃分經(jīng)歷過大量的實驗及時間檢驗,可以說是目前無人車中運用最廣泛的系統(tǒng)之一。模塊化劃分的好處就是各個模塊各司其職,只用專心處理這一層所需要處理的數(shù)據(jù),將輸出盡可能穩(wěn)定地傳給下一層,使其完美完成自動駕駛操作的閉環(huán),但同時,模塊間的信息交互、接口制定、互相配合的難度也是極大的,也造成了目前自動駕駛領(lǐng)域中部分難題難以劃定為某一模塊的劣勢。

而端到端的自動駕駛方法和人類的駕駛方式很相似,結(jié)構(gòu)簡單高效,并不依賴高精度地圖,但用于生產(chǎn)實踐具有可解釋性差的問題,由于自動駕駛過程中的感知、決策和規(guī)劃都是通過深度學習模型完成的,出現(xiàn)故障后,沒法分析具體的原因。并且也不能硬編碼安全規(guī)則。在算法失控的時候,不能保證安全,而這一條足以使其無法應用于實際的工程應用之中。

再根據(jù)無人車是否聯(lián)網(wǎng),可以將無人駕駛車分為單車智能和網(wǎng)聯(lián)智能,單車智能強調(diào)車本身的智能,即使在沒有網(wǎng)絡的情況下,也具備完全自動駕駛能力。而網(wǎng)聯(lián)車則強調(diào)車和車、車和環(huán)境的交互,通過整個車聯(lián)網(wǎng)來實現(xiàn)更高級的智能,車本身可以具備自動駕駛能力,也可以只具備部分自動駕駛能力,通過網(wǎng)絡獲取更高級的智能。從目前的發(fā)展趨勢來看,無人駕駛車要更快的落地,單車智能和網(wǎng)聯(lián)智能二者需要互相融合,共同發(fā)展。

自動駕駛云服務

云服務是自動駕駛不可或缺的一環(huán),自動駕駛相關(guān)的高精度地圖、數(shù)據(jù)存儲、模型訓練、自動駕駛仿真等都依賴于云服務。目前已經(jīng)宣布能提供自動駕駛服務的云平臺有百度Apollo、亞馬遜AWS和華為Octopus,提供的主要功能包括:數(shù)據(jù)采集和存儲、數(shù)據(jù)Pipeline、模型訓練部署以及自動駕駛仿真。

講到云服務,首先提到的是數(shù)據(jù)存儲。數(shù)據(jù)存儲首先需要的是一個分布式的文件系統(tǒng),大數(shù)據(jù)時代已經(jīng)被廣泛證明了分布式文件系統(tǒng)的好處,最主要的好處是容量可以水平擴展,而且可靠性高。自動駕駛每天產(chǎn)生的大量數(shù)據(jù)都可以通過分布式文件系統(tǒng)保存下來。

其次是數(shù)據(jù)處理,深度學習模型訓練、高精度地圖生成以及自動駕駛仿真等都需要進行數(shù)據(jù)處理。自動駕駛的數(shù)據(jù)處理流程包括:收集、清洗、標注、訓練和部署。用于自動駕駛模型訓練的數(shù)據(jù)首先需要人工標注,然后再進行模型訓練,最后才能得到能夠識別車輛和行人的深度學習模型。數(shù)據(jù)的自動化標注是很大的挑戰(zhàn),通過工程的方法盡量減少人工標注,可以大幅度提高標注效率。數(shù)據(jù)處理的另一個挑戰(zhàn)是大規(guī)模并行處理數(shù)據(jù),由于數(shù)據(jù)量巨大,如何快速的處理數(shù)據(jù)是瓶頸。

有很多優(yōu)秀的分布式計算框架,其中Apache Spark可以構(gòu)建大規(guī)模集群并發(fā)執(zhí)行多個任務,在大規(guī)模數(shù)據(jù)處理中有非常好的實踐。能夠快速高效的處理數(shù)據(jù),是自動駕駛數(shù)據(jù)處理的核心競爭力。

最后便是地圖服務,云端應該實時提供自動駕駛所需要的地圖服務。地圖包括道路信息和動態(tài)信息,道路信息不用再過多介紹,就是傳統(tǒng)的道路信息,動態(tài)信息是地圖上出現(xiàn)堵車或交通管制等需要實時動態(tài)更新的信息。在這之中,高精度地圖的維護是目前面臨的最大問題,因為涉及到整個地圖的采集、加工和標注,實時維護大體量的高精度地圖目前來說成本高昂,一些高精度地圖服務提供商提出采用眾包的方式更新高精度地圖。

總結(jié)

以上便是自動駕駛中軟件系統(tǒng)整體框架的全部內(nèi)容,可以看到,作為目前最前沿、最火熱的技術(shù),自動駕駛中囊括了太多目前尖端的科技,也不難理解為何如此多的人才涌入進該行業(yè)中。而要實現(xiàn)真正的無人駕駛,顯然也有很長的路需要走,也需要以上的各個方向,都能取得革命性的突破,才能使得自動駕駛不再有短板,也變得越來越安全。

參考資料:

[1] https://blog.csdn.net/qq_40337086/article/details/125540221

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄