一個合格的自動駕駛產(chǎn)品一定具備兩種基本能力:自動行走能力及自動作業(yè)能力。前者是該產(chǎn)品能稱之為自動駕駛產(chǎn)品的根本,它的關(guān)鍵在于自動駕駛軟件系統(tǒng)的設計,也是本文重點介紹的對象;后者會在下文重點講述。
對于一個自動駕駛產(chǎn)品,如果說車身底盤及殼體等是其骨架,制動、轉(zhuǎn)向等執(zhí)行器是其手腳,雷達、攝像頭等 傳感器 是其眼睛與耳朵,車規(guī)級線束、接口等是其血液,那么自動駕駛軟件系統(tǒng)就是自動駕駛產(chǎn)品的大腦。核心大腦部分包括負責感知世界、認知自我的感知及定位系統(tǒng),負責行為分析決策的決策規(guī)劃系統(tǒng),負責指導執(zhí)行的控制系統(tǒng)及 車輛 平臺軟件,以及負責任務交互的人機交互系統(tǒng)。
上一期文章介紹了蝸小白的骨架、眼睛、耳朵、手腳及血液,接下來則重點介紹蝸小白自動行走大腦,即自動駕駛軟件系統(tǒng)。主要分為以下五個部分:
系統(tǒng)軟件架構(gòu)
環(huán)境感知系統(tǒng)
地圖與定位系統(tǒng)
決策規(guī)劃系統(tǒng)
車輛控制系統(tǒng)
一、系統(tǒng)軟件架構(gòu)
如果將蝸小白自動駕駛軟件系統(tǒng)比作大腦,系統(tǒng)軟件架構(gòu)就是對大腦的組織與結(jié)構(gòu)進行設計。從概念上來說,軟件架構(gòu)是對軟件組織與邏輯關(guān)系的描述。良好的架構(gòu)設計可以大大降低軟件設計與開發(fā)的復雜性,同時能夠滿足用戶對軟件系統(tǒng)性能的要求。
那么具體到蝸小白,軟件架構(gòu)設計會面臨什么挑戰(zhàn)呢?
首先,蝸小白采用了大量復雜算法以應對各種作業(yè)場景,這些算法通常具有計算時間長、計算時間抖動大等問題。需要在大量復雜計算的基礎上確保系統(tǒng)反應時間。
其次,蝸小白屬于L4級 無人駕駛 系統(tǒng),作業(yè)安全是其系統(tǒng)設計的基礎。必須從軟件架構(gòu)角度出發(fā),設計一套適用于整個產(chǎn)品生命周期的安全性保障機制。
最后,算法的持續(xù)發(fā)展使得感知、定位、決策、控制等核心模塊的能力快速提高。軟件架構(gòu)必須具備良好的升級能力,以確保新的軟件算法與硬件不會對整個軟件系統(tǒng)穩(wěn)定性產(chǎn)生非常大的影響。
為了解決上述問題,蝸小白通過軟件分層、核心任務重點保障等方法達到良好的軟件可升級性、計算資源分配效率。蝸小白軟件架構(gòu)如圖2所示。總的來看,蝸小白軟件系統(tǒng)包括三大部分:自動駕駛操作系統(tǒng)、云端平臺及移動端APP、車輛底層平臺。
其中,AVOS又分為應用層軟件與支持層軟件。應用層軟件主要負責實現(xiàn)自動駕駛功能,其主要包括感知、定位、決策規(guī)劃、控制等自動駕駛核心功能,以及OTA升級、HMI、遠程任務管理等附屬功能。支持層主要用于保障系統(tǒng)性能與穩(wěn)定性,其主要包括關(guān)鍵任務運行狀況監(jiān)控、計算資源調(diào)度、通信、傳感器與計算平臺時間同步、系統(tǒng)運行監(jiān)控、診斷和日志等功能。應用層與支持層架構(gòu)的深度優(yōu)化為蝸小白量產(chǎn)打下堅實基礎。
二、環(huán)境感知
環(huán)境感知技術(shù)是利用各類傳感器采集車輛周圍的環(huán)境信息,通過智能算法對空間環(huán)境進行建模,從而實現(xiàn)對空間動態(tài)環(huán)境深刻理解的過程。看上去很深奧的樣子,其實簡單來說就是利用 激光雷達 、超聲波雷達、攝像頭等傳感器感知周圍的世界,并且分析周圍有什么可能會影響小白行駛的物體,然后利用感知的信息進行避障、行駛等駕駛行為。
蝸小白感知傳感器包括激光雷達、超聲波雷達和攝像頭。激光雷達用于遠距離探測,能實現(xiàn)環(huán)境建模、定位、路面檢測、障礙物識別等功能;超聲波雷達用于近距離探測,包括近距離障礙物檢測、緊急避障等;攝像頭主要用于障礙物識別、環(huán)境建模、增強定位、視頻監(jiān)控等功能。
攝像頭就像是小白的眼睛,激光、超聲波雷達就像是小白的耳朵。有了眼睛和耳朵,小車就能感知周圍的環(huán)境。
為了支持復雜場景下的自動行走及安全作業(yè),小白的感知能力必須達到L4級別。常見的城市結(jié)構(gòu)化道路感知系統(tǒng)面對的場景,需要識別的目標較為單一:車、行人、非機動車、車道線等,如下圖所示。
但是蝸小白日常的工作場景相對復雜,需要覆蓋社區(qū)道路、廣場、園區(qū)等,檢測目標類型多樣且存在各種意外狀況,比如下面這樣的場景。
蝸小白需要檢測影響車輛通行的所有障礙物,否則就有可能出現(xiàn)安全風險。為了保證蝸小白在復雜運營環(huán)境中感知功能的穩(wěn)定可靠,他必須通過所有你想得到和想不到的各類測試,例如下圖的各類測試物品。
除此之外,蝸小白還有自己的殺手锏:能夠識別各種類型的道路邊界,并在此能力的基礎上實現(xiàn)了高精度貼邊清掃。
三、定位與地圖系統(tǒng)
在談論地圖與定位系統(tǒng)之前,我們不妨先來想想一個基本的問題:人們是如何過馬路的?顯然,我們在過馬路時要做兩件非常簡單,卻又非常必要的事情:低頭查手機,抬頭看車輛。
“低頭查手機”,是因為當我們身處陌生的城市,手機會告訴我們自身的位置及到達目的地的路線,這是我們在陌生城市中的自我定位。“抬頭看馬路”,是希望了解周圍來往的車輛及行人,以防被撞到,這就屬于上段介紹的環(huán)境感知范疇了。
蝸小白在行走和作業(yè)時,同樣面臨這兩個問題,其中高精度定位幫助蝸小白完成“低頭查手機”的部分。無論在哪條道路上,蝸小白必須精確地知道自己身處何方。為了確定自身的位置,它必須把自己看到的信息與一張地圖進行比較,而這張地圖代表了它對周圍環(huán)境的先驗認知。
蝸小白工作環(huán)境的復雜性及多樣性,給三維場景重建帶來了諸多挑戰(zhàn):
1、盤旋交錯的不規(guī)則道路,高低錯落的3D環(huán)境,極大地增加了點云拼接和閉環(huán)檢測的難度;
2、公園、商業(yè)街、工業(yè)園區(qū)、住宅小區(qū)、學校等多種多樣的應用場景下快速的標準地圖生產(chǎn)流水線作業(yè);
3、因季節(jié)變化、局部場景變化導致的局部地圖更新,保證地圖的時效性和準確性。
通過以下圖片可以看出,無論場景多大多復雜,無論樓宇多密集,無論道路多曲折,蝸小白都能夠完成精準的三維環(huán)境重建。
蝸小白典型作業(yè)場景包括校園、公園、工廠、社區(qū)、廣場、科技園區(qū)等,相對當前自動駕駛乘用車行駛的高速公路和城區(qū)主干道,其對激光雷達、慣性傳感器、衛(wèi)星導航和輪速計等定位傳感器的可用性要求更高,需要克服環(huán)境變化導致激光/視覺誤匹配、樓宇/樹木遮擋帶來的GPS多路徑誤差及長時間失效、低成本慣性傳感器器件誤差、輪速計測量噪聲等問題。
蝸小白選用低成本定位傳感器,采用傳感器原始信息進行故障診斷和融合濾波后定位信息再校驗的雙重保障,解決了融合定位連續(xù)性和高可靠性雙重矛盾,實現(xiàn)復雜多樣封閉區(qū)域無縫導航定位,清掃作業(yè)時平均定位精度優(yōu)于10cm。
四、決策規(guī)劃系統(tǒng)
決策規(guī)劃系統(tǒng)是蝸小白自動駕駛大腦的中樞。具體來說,決策規(guī)劃系統(tǒng)需要解決兩個問題:蝸小白接下來做什么,怎么做?“做什么”就是行為決策,判斷蝸小白是要回到功能點還是進行全覆蓋清掃、是要直行還是避障、是要停等還是靠邊讓行等等;“怎么做”就是軌跡規(guī)劃,計算如何運動才能實現(xiàn)返回、清掃、避障、讓行等行為。通過對環(huán)境感知系統(tǒng)和地圖定位系統(tǒng)給出的信息進行綜合分析,再結(jié)合當前任務,對車輛應該執(zhí)行的行為進行合理決策,同時計算出對應這個行為的一條車輛行駛軌跡,最后將這條軌跡交給控制系統(tǒng)進行跟蹤。
蝸小白行駛的環(huán)境通常是一些封閉園區(qū),沒有公共道路上那些具體的道路標志標線和交通規(guī)則,也沒有換道、超車、匯入等交通行為,看似會比乘用車簡化些。但也正因為行駛環(huán)境沒有具體交通規(guī)則約束,環(huán)境中的其他參與者也更加復雜并且不可預測,這給軌跡規(guī)劃帶來了巨大的挑戰(zhàn)。乘用車躲避障礙物一般比較簡單,不會面臨太復雜的工況,但是我們的小白就可能會遇到狹窄擁堵的胡同,也可能會遇到人流密集的廣場,環(huán)境的復雜與隨機性使得小白面臨的軌跡規(guī)劃問題異常復雜,如下圖所示。
通過結(jié)合多種避障模式,蝸小白已經(jīng)可以實現(xiàn)各種復雜工況下的自由行駛。
除了行駛和避障以外,蝸小白的本職工作還是清掃,為了將地面清掃干凈,蝸小白必須走過所有需要清掃的路面,這就是蝸小白需要解決的另一個規(guī)劃問題——全覆蓋路徑規(guī)劃。使用過掃地機器人的朋友應該知道,掃地機器人是以一種類似地毯式搜索的模式進行清掃的,蝸小白的全覆蓋路徑規(guī)劃與掃地機器人的地毯式清掃目的相同,但是兩者差異很大,有以下幾方面原因:
1、作業(yè)環(huán)境不同:掃地機器人是在一般的室內(nèi)工作,其環(huán)境一般都是筆直的墻面組成的規(guī)則矩形,而蝸小白工作的環(huán)境有各種可能,導致清掃區(qū)域可能是各種復雜的形狀,單純的走直線無法覆蓋所有地面;
2、轉(zhuǎn)向系統(tǒng)不同:掃地機器人一般都可以原地轉(zhuǎn)向,所以即使是折線路徑也可以完美跟蹤,而蝸小白是前輪轉(zhuǎn)向,且體型較大,有最小轉(zhuǎn)彎半徑限制,只能沿著曲率連續(xù)的曲線行駛,如果清掃路徑不光滑或超出轉(zhuǎn)彎半徑限制,自然也無法精確跟蹤,更談不上全覆蓋了;
3、外形輪廓不同:掃地機器人一般都設計成圓形,因此其原地轉(zhuǎn)向時不會撞到障礙物,非原地轉(zhuǎn)向時路徑寬度即代表了碰撞關(guān)系,而蝸小白近似為矩形,沿著曲線清掃路徑行駛時其車體在路徑兩側(cè)的分布是不對稱的,因此單純的路徑寬度無法表達蝸小白的碰撞關(guān)系,全覆蓋路徑必須考慮到這一點才有實際意義。
以上差異導致掃地機器人的全覆蓋路徑和蝸小白的全覆蓋路徑完全不是一個難度層次的問題,如下圖所示。
經(jīng)過智行者小伙伴們無數(shù)個日日夜夜的設計和調(diào)試,最終我們摸索出來一套有效的全覆蓋路徑生成辦法,大家看看效果。
正是有著這樣強大的通行能力和全覆蓋清掃能力,我們的蝸小白才能在各種復雜環(huán)境下圓滿完成任務。
五、車輛控制
車輛控制系統(tǒng)是基于車輛實時狀態(tài)信息,通過控制車輛轉(zhuǎn)向、驅(qū)動、制動執(zhí)行器實現(xiàn)對車輛期望軌跡的精確跟蹤控制。我們可以把車輛的轉(zhuǎn)向、驅(qū)動、制動等執(zhí)行器比作小白的手腳,控制系統(tǒng)就是接收小白前端大腦發(fā)出的指令后,按照指令操控手腳執(zhí)行動作的模塊,如圖所示。
蝸小白作為L4級別低速自動 清掃車 ,需要實現(xiàn)復雜環(huán)境下的全自動行走及作業(yè)功能,對車輛控制提出了很大的技術(shù)挑戰(zhàn)。
如復雜環(huán)境下的貼邊清掃功能,要求車輛的循跡控制具備厘米級精度并保證其貼邊控制的安全性。又如,小白在作業(yè)時需要進行無線充電與垃圾清倒,厘米級精度的定點停車功能也是小白需要具備的。
除此之外,對于車輛控制極具挑戰(zhàn)的技術(shù)難題在于產(chǎn)品的自動適配,車輛個體必然存在差異,如何實現(xiàn)成千上萬輛的小白具備高精度且高一致性的控制能力,這是量產(chǎn)控制系統(tǒng)必須要解決的問題。