付建寬,靳志剛,余楚禮
(中汽數據(天津)有限公司,天津 300000)
隨著新能源技術、超大規(guī)模集成電路微電子技術、高性能GPU并行計算處理技術等前沿科技的蓬勃發(fā)展,自動駕駛近年來風起云涌,各類傳統(tǒng)車輛主機廠、初創(chuàng)公司、互聯網巨頭紛紛斥資投入研發(fā),一些新產品相繼問世,國外谷歌系Waymo、通用旗下Cruise、科技大廠特斯拉等幾乎每年都有新的自動駕駛車輛發(fā)布[1]。據維基百科參考資料顯示,美軍的自動駕駛技術已經進入裝備階段;國內蔚來汽車、地平線、百度等公司也逐步將一部分可靠自動駕駛技術下放至量產車型[2]。
自動駕駛技術可以大大降低各類交通事故的發(fā)生率,減少交通擁塞,實現節(jié)能減排,更好地管理交通流量,進一步解放駕駛員,基于這些優(yōu)勢,在可見的未來,自動駕駛技術前景被十分看好,必將不斷推陳出新,甚至可以孵化出新的商業(yè)模式[3]。
當前L0~L3自動駕駛系統(tǒng)控制器主流采用的是性能模塊和安全模塊的組合。性能模塊一般是由AI處理器模組來擔當,比如華為的MDC300采用的是12核的鯤鵬920并擴展昇騰310來實現;Nvidia的 Jetson AGX Xavier則采用了 8核 ARM v8.2 64位CPU并擴展512核Volta GPU來實現;還有一些工控機廠商比如宸曜科技、研華科技等則基于Intel高性能處理器并搭載Nvidia的圖形引擎來實現。安全模塊一般由英飛凌TC297/397之類的MCU充當,不要求太高的算力,但是對于功能安全等級要求很高。
華為MDC300的硬件成本大約在20萬人民幣左右,我們之前采用 Nvidia的 Jetson AGX Xavier和外部自研 STM32控制板的方案成本大約在一萬塊錢左右,如果采用工控機替代AGX的話成本將會更貴。而當前很多應用場景并不十分需要視覺傳感器的感知信息,也就是說控制器并不是必須要支持深度學習,只要能夠處理光電雷達傳感器的信息并在此基礎上實現規(guī)劃決策控制也可以實現L3級別的自動駕駛,基于這種考慮,我們嘗試采用明遠智睿公司的MY-IMX6-EK200-6Q-1G開發(fā)板來擔當大腦控制器,成本大約在一兩千塊錢左右,汽車級的i.MX6工作溫度范圍是-40℃~125℃,可以擴展多種硬件接口,同時支持Ubuntu開源操作系統(tǒng),另外能夠保證至少15年的供貨周期。
低成本的自動駕駛系統(tǒng)硬件采用NXP的i.MX6作為主控芯片,外部擴展兩路CAN總線,一路接中云智車車輛線控底盤,另外一路接德爾福前向毫米波雷達和華測組合慣導;兩路千兆以太網,一路接速騰聚創(chuàng)16線激光雷達,另外一路連接4G路由器來實現和云服務器的交互。各模塊的具體連接如下如所示。
云服務器支持SVN的代碼版本控制,同時部署OTA遠程升級功能,還通過gRPC實現了車輛運行現場的遠程監(jiān)控。
4G無線路由器是本地控制器和云服務器的中轉媒介,支持物聯網卡,可以提供wifi支持本地無線網絡調試,可以支持使用scp和ssh進行文件傳輸,使用telnet進行遠程shell操作。
主控板是系統(tǒng)的大腦,低功耗設計,可以通過HDMI接口連接顯示器輸出基于QT的圖形界面顯示車輛運行實況;可以通過串口shell輸出和Ubuntu系統(tǒng)進行交互;可以通過gpio輸出控制底盤車輛的一些燈光、繼電器等開關量;可以通過外置傳感器實現溫濕度、PM2.5值的監(jiān)測報警;內置軟件看門狗(WDT),方便無人值守。
組合慣導內置MEMS陀螺儀與加速度計,融合衛(wèi)星導航信息(支持RTK)和車輛信息(輪速、檔位等),實時提供高精度的載體厘米級位置、姿態(tài)、速度和傳感器等信息。
激光雷達通過發(fā)射高頻率激光束對周邊環(huán)境進行持續(xù)性的線束發(fā)射,經過內置測距算法提供三維空間點云數據及周圍物體的反射率,可以為自動駕駛車輛的定位、導航、避障等提供有力的保障。
毫米波雷達可以全天候工作,對前方物體進行高精度的距離、方位、速度、頻率和空間位置的測量和定位。
底盤是自動駕駛系統(tǒng)控制技術的核心硬件,提供可以線控的油門或扭矩、制動、轉向、自動擋位等的控制。
由于i.MX6是ARM處理器,因此需要在X86架構的PC上移植gcc和g++的交叉編譯工具鏈,編譯arm版本的QT庫、PCL庫、boost庫、protbuf庫、yaml-cpp庫等。另外如果條件允許還可以直接在Jetson AGX Xavier上開發(fā),然后將生成可執(zhí)行文件直接拷貝到i.MX6主控板上運行。
我們移植了Ubuntu16.04的系統(tǒng)到i.MX6主控板上,采用fastboot機制[4],大大加快了Linux系統(tǒng)開機時間。在軟件開發(fā)過程中使用shell自動化腳本統(tǒng)一進行編譯。
首先完成傳感器的內參和外參標定,確定其內部映射關系和外部坐標關系[5]。
激光雷達我們直接調用速騰聚創(chuàng)感知算法SDK,實現障礙物檢測、障礙物分類識別、動態(tài)物體跟蹤。
ESR毫米波雷達在其視域內可以同時檢測到64個目標障礙物并將解析數據通過CAN總線輸出,值得一提的是,毫米波雷達能夠依據多普勒頻移測算出車身和障礙物之間相對速度,同時還能實現對障礙物的追蹤。
我們利用組合慣導提供的精準航向、位置等信息錄制或者規(guī)劃高精地圖,并在車輛自動駕駛過程中以100Hz的頻率更新車身的定位信息。
最后對傳感器的信息根據使用路況和天氣情況做一些簡單的融合算法,方便自動駕駛系統(tǒng)的決策更加精準。
在匯集了車輛感知的車身和周邊障礙物的位置、姿態(tài)、速度、加速度等信息后,結合全局和局部路徑規(guī)劃結果,軟件上以20ms作為一個計算周期,根據設定的規(guī)則引擎,在結構化道路上不斷做出加速、減速、停車、轉彎、換道、泊車等行駛策略。
通過考慮車輛的運動學約束,抽象出其動學模型,保證車輛按照預先設定車輛的軌跡安全平穩(wěn)地行駛。自動駕駛系統(tǒng)的縱向控制主要是通過對油門和剎車的調節(jié)來實現速度控制,采用PID控制策略,通過整定PID控制器參數,實現對目標車速的追蹤;由于模型預測控制(MPC)需要復雜的數據處理,對處理器要求有點高,因此我們的橫向控制方案也采用經典的PID控制策略,依據車輛實際行駛的預瞄航向偏差來調節(jié)前輪轉向,實現橫向的跟隨[6]。
本次開發(fā)實現了車輛的自動循跡、自動緊急制動、自動泊車、自動車道保持、自動變道避障等L3級別的自動駕駛功能,車輛運行穩(wěn)定可靠,多次參加各種類型的產品展示,并開始進行商業(yè)推廣。下圖是車輛實際運行時的展示效果。
本文介紹了一種基于汽車級i.MX6主控芯片實現的低成本L3級自動駕駛方案,大大節(jié)省用戶費用,降低技術開發(fā)和市場風險,并在一些場合進行了小范圍的落地應用。今后我們將繼續(xù)優(yōu)化算法,在算力允許的情況下添加camera視覺支持,實現障礙物類型、交通標識、交通信號燈的識別,并和雷達數據進行融合。由于Ubuntu不是實時操作系統(tǒng),后面我們將嘗試在QNX或VxWorks上來移植自動駕駛算法軟件,使得車輛的控制響應更加及時。同時將加快國產化硬件方案的研究,后面爭取采用龍芯或者飛騰的主控芯片重構軟硬件,最終實現硬件的完全自主可控。