經(jīng)過數(shù)年的積累,美團(tuán)無人車已經(jīng)從技術(shù)探索進(jìn)入到業(yè)務(wù)運(yùn)營階段,這個階段對于自動駕駛車端系統(tǒng)和離線系統(tǒng)都有了新的要求。
在車端系統(tǒng)上,我們更加關(guān)注如何構(gòu)建低成本、低功耗、高穩(wěn)定性的自動駕駛系統(tǒng)來支撐大規(guī)模運(yùn)營,對此業(yè)界常用多片ARM芯片并配合邊緣計算技術(shù)來實現(xiàn),這對于上層軟件自動駕駛引擎來說也有了新的要求,即需要它能夠支撐多計算節(jié)點的協(xié)作運(yùn)行。
另外在離線仿真系統(tǒng)上,仿真任務(wù)的迅速增長,要求我們需要具備高效管理、運(yùn)行超大規(guī)模仿真任務(wù)的能力,由于不同類型的仿真任務(wù)對硬件算力的需求并不一樣,那么在仿真系統(tǒng)所能使用的硬件資源配比相對固定的情況下,我們就需要將最大化資源所能承載的任務(wù)同樣作為引擎的優(yōu)化目標(biāo)。
美團(tuán)無人車技術(shù)團(tuán)隊如何應(yīng)對以上挑戰(zhàn),下文將展開講述。
在從傳統(tǒng)IPC向分布式計算平臺的過渡過程中,我們希望上層功能模塊在移入到分布式計算平臺上運(yùn)行時無需任何適配,功能模塊也無需關(guān)心它所運(yùn)行的節(jié)點是否跟上下游模塊在同一個節(jié)點上。
為完成上述目標(biāo),我們就需要自動駕駛引擎能夠提供運(yùn)行環(huán)境的抽象與隔離,引擎為完成這一層抽象,必須解決三個關(guān)鍵點:分布式環(huán)境下高實時性的數(shù)據(jù)傳輸、高實時性的調(diào)度、關(guān)鍵自動駕駛數(shù)據(jù)的實時記錄。
圖1. 引擎需要將算力向端上平滑遷移
仿真系統(tǒng)是自動駕駛研發(fā)的重要手段,在自動駕駛進(jìn)入到運(yùn)營階段之后,仿真任務(wù)也迅速增長,目前美團(tuán)自動駕駛仿真系統(tǒng)每天執(zhí)行數(shù)百萬仿真任務(wù),峰值流量每小時上百萬任務(wù),仿真里程每天上千萬公里。
前面提到,不同的仿真任務(wù)對硬件算力的需求是不一樣的,比如感知預(yù)測仿真任務(wù)必須依賴GPU運(yùn)行,在硬件資源(或者其硬件資源的配比)是固定的前提下,為擺脫這種仿真任務(wù)的硬性依賴進(jìn)一步提升資源利用率,我們需要將仿真任務(wù)中不同的子任務(wù)按照計算屬性拆分到不同的機(jī)器上運(yùn)行,其中引擎要負(fù)責(zé)完成同一任務(wù)在不同機(jī)器間的通信和執(zhí)行調(diào)度,并做到這種拆分對上層仿真任務(wù)無感。
圖2. 如何在仿真環(huán)境中依據(jù)任務(wù)屬性調(diào)度任務(wù)
在美團(tuán),我們打造了統(tǒng)一的自動駕駛引擎來同時滿足車端計算平臺和離線仿真系統(tǒng)的需求,因此面向運(yùn)營的分布式引擎也會遵循這一策略,使用統(tǒng)一的架構(gòu)來滿足車端分布式計算平臺和離線仿真系統(tǒng)在大規(guī)模運(yùn)營階段的新需要。
自動駕駛引擎作為車載自動駕駛系統(tǒng)和離線仿真系統(tǒng)的運(yùn)行調(diào)度管理中心,負(fù)責(zé)構(gòu)建自動駕駛功能模塊(定位、感知、預(yù)測、規(guī)劃等)的運(yùn)行環(huán)境,讓上層功能模塊的開發(fā)者專注于模塊的核心功能開發(fā)。
而諸如模塊的如何穩(wěn)定執(zhí)行、上下游的數(shù)據(jù)如何傳輸、自動駕駛數(shù)據(jù)如何可靠記錄等問題則由引擎來處理。
在自動駕駛進(jìn)入運(yùn)營階段之后,為應(yīng)對前述講到的分布式計算平臺的新需求和仿真系統(tǒng)的挑戰(zhàn),自動駕駛引擎需要關(guān)注以下關(guān)鍵點:
a).能夠提供底層不同硬件平臺和計算場景(單IPC/分布式計算平臺/仿真集群)的高度抽象與隔離,對上層功能模塊提供統(tǒng)一的執(zhí)行接口,上層模塊不需要任何改變就可以運(yùn)行在不同的業(yè)務(wù)場景中,這種隔離和抽象是對高效研發(fā)的重要支撐。
b).提供高效的自動駕駛各功能模塊的數(shù)據(jù)交互機(jī)制,各場景下的通信接口完全一致。
c).統(tǒng)一管理自動駕駛各模塊的公共基礎(chǔ)依賴,比如配置、地圖、環(huán)境等,并對上層模塊提供統(tǒng)一的接口。
d).提供可靠的自動駕駛系統(tǒng)運(yùn)行數(shù)據(jù)記錄,并要保證數(shù)據(jù)完備、一致。
基于以上考量,美團(tuán)自動駕駛引擎的整體架構(gòu)如下圖所示,后續(xù)章節(jié)會對架構(gòu)中關(guān)鍵模塊做進(jìn)一步闡述。
圖3. 美團(tuán)面向運(yùn)營場景的自動駕駛引擎架構(gòu)
為應(yīng)對自動駕駛運(yùn)營階段的新需求,我們構(gòu)建了一套基于Pub-Sub模式的可擴(kuò)展的通信機(jī)制,并已經(jīng)將之?dāng)U展到多種通信場景中,比如單節(jié)點多進(jìn)程間的IPC通信、多節(jié)點間也根據(jù)需要提供了gRPC和PCIe等多種通信方式來滿足分布式計算平臺和仿真平臺上的需要,而上層功能模塊在不同場景下均使用統(tǒng)一的通信接口。
下圖是分布式通信總線的層次結(jié)構(gòu)示意圖。
圖4. 分布式通信總線層次結(jié)構(gòu)
通信總線關(guān)鍵組件解釋:
a).CallbackManager負(fù)責(zé)管理上層功能模塊訂閱者的回調(diào)函數(shù)及其執(zhí)行。
b).Dispatcher負(fù)責(zé)構(gòu)建通信路由,并根據(jù)路由將消息分發(fā)到對應(yīng)的節(jié)點,他是通信總線的核心組件,他決定了自動駕駛數(shù)據(jù)流的完整通路,圖5是一個模塊間通信的數(shù)據(jù)流轉(zhuǎn)過程的示例。
c).Channel負(fù)責(zé)實際的消息傳輸,并根據(jù)不同的場景構(gòu)建了不同方式的Channel來供上層業(yè)務(wù)模塊選擇。
圖5. 自動駕駛消息流轉(zhuǎn)過程示例
自動駕駛數(shù)據(jù)的記錄對于我們分析自動駕駛問題至關(guān)重要,數(shù)據(jù)記錄的完整性和可靠性直接決定了研發(fā)效率的下限。
對于分布式場景下的自動駕駛數(shù)據(jù)記錄來說,我們關(guān)心以下幾點:
a).數(shù)據(jù)的高度有序性:各計算節(jié)點間的數(shù)據(jù)按照時間線進(jìn)行有序統(tǒng)一記錄是事后高效數(shù)據(jù)分析的基礎(chǔ),如何在分布式場景中保證海量數(shù)據(jù)(100+GB/Hour量級)的有序性是數(shù)據(jù)記錄的一個難點。
b).數(shù)據(jù)的完整性:自動駕駛的數(shù)據(jù)要做到不遺漏,不重復(fù),在需要記錄的數(shù)據(jù)中,除了自動駕駛業(yè)務(wù)模塊的數(shù)據(jù)外,通信鏈路本身的Trace數(shù)據(jù)和模塊執(zhí)行數(shù)據(jù)對于分析系統(tǒng)問題同樣重要,實際應(yīng)用中我們發(fā)現(xiàn)這類數(shù)據(jù)量非常大,一般會達(dá)到2-3萬條/秒,對這些數(shù)據(jù)的記錄不能影響到自動駕駛系統(tǒng)的平穩(wěn)運(yùn)行。
針對這些挑戰(zhàn),我們的解決方案是,采取集中式 + 主動拉取式的數(shù)據(jù)記錄落盤策略,即通信數(shù)據(jù)和系統(tǒng)數(shù)據(jù)統(tǒng)一進(jìn)入通信總線,使用單一Recorder主動監(jiān)聽總線進(jìn)行數(shù)據(jù)記錄落盤,最大化減少數(shù)據(jù)記錄對系統(tǒng)正常運(yùn)行的影響,在主動拉取的工作方式上運(yùn)用重排機(jī)制,解決了分布式場景下可能出現(xiàn)的亂序問題。
下圖是一個典型的數(shù)據(jù)流記錄的示例流程。
圖6. 自動駕駛關(guān)鍵數(shù)據(jù)記錄流程示例
自動駕駛地圖是自動駕駛系統(tǒng)正常運(yùn)行不可或缺的一部分,并且它是上層功能模塊的一個通用組件,因此分布式引擎也負(fù)責(zé)管理車端地圖。
在自動駕駛進(jìn)入運(yùn)營階段之后,自動駕駛地圖的管理有了新的挑戰(zhàn):
a).在運(yùn)營階段,ODD的不斷快速擴(kuò)展成為常態(tài),全量地圖數(shù)據(jù)已經(jīng)無法全部載入內(nèi)存,顯然這是地圖管理在運(yùn)營階段需要著重解決的主要問題之一。
b).另外在實際大規(guī)?;\(yùn)營過程中,自動駕駛地圖類信息更新比較頻繁,比如某個交通燈壞掉、車道線更新、路兩側(cè)植被環(huán)境短時間內(nèi)變化較大等等,這就要求我們能夠支撐高頻的自動駕駛地圖更新需求。
針對地圖數(shù)據(jù)的不斷擴(kuò)張等問題,我們通過精細(xì)化地圖服務(wù),使用車輛位置動態(tài)加載瓦片地圖,很好地解決了這一阻礙。
此外我們引入了動態(tài)圖層管理,提供了準(zhǔn)實時更新高頻變化的地圖數(shù)據(jù)的手段,為保證全天候的自動駕駛運(yùn)營提供了重要支撐。
下圖是自動駕駛引擎中地圖管理流程的示意圖。
圖7. 分布式引擎地圖服務(wù)管理方案示意圖
美團(tuán)自動駕駛引擎的演進(jìn)有效支撐了上層業(yè)務(wù)在不同階段的需求,為分布式計算平臺提供了系統(tǒng)級的軟件解決方案,也為仿真系統(tǒng)進(jìn)一步提升資源利用率掃除了主要障礙,促進(jìn)了美團(tuán)無人車規(guī)模化快速落地運(yùn)營的進(jìn)程。
未來,美團(tuán)無人車技術(shù)團(tuán)隊也將持續(xù)深耕末端物流無人配送領(lǐng)域,努力成為構(gòu)建“幫大家吃得更好,生活更好”美好生活中的重要一環(huán)。
瑪氏中國|2025年度瑪氏箭牌北京區(qū)域包材及原材料倉儲(VMI)項目
2236 閱讀華為的物流“布局”,為何備受關(guān)注?
1495 閱讀北美倉配一體機(jī)會和風(fēng)險
1299 閱讀?年營收15億的跨境物流企業(yè)要上市
1182 閱讀解秘粵港澳大灣區(qū)規(guī)模最大的生產(chǎn)服務(wù)型國家物流樞紐——廣州東部公鐵聯(lián)運(yùn)樞紐
1099 閱讀縱騰集團(tuán)借殼上市,6.4億收購A股上市公司綠康生化
1008 閱讀TEMU美區(qū)半托管即將開放國內(nèi)發(fā)貨模式
869 閱讀京東物流一線員工日10周年:為5年、10年老員工授勛,為15000名標(biāo)桿頒獎
829 閱讀15倍爆發(fā)式增長,網(wǎng)絡(luò)貨運(yùn)行業(yè)跑出了一匹黑馬
825 閱讀2024年快遞滿意度出爐:順豐、京東快遞排名最高
781 閱讀