開源生態是推動軟件技術創新的重要引擎,可以說現在世界上很多偉大的軟件和OS都靠著開源,走向繁榮。
在自動駕駛平臺領域,也有著許多開源平臺,其中屬Autoware最為著名,可以說,它在自動駕駛界的地位不亞于“Linux”。當然,不能把它理解成OS,它實際上是一套軟件庫和工具,可以幫助用戶快速建立機器人應用程序。
作為汽車領域的工程師必知必會的平臺之一、自動駕駛入門最有價值軟件框架,最近一段時間,其熱度正在不斷攀升。
世界第一個自動駕駛開源軟件
你有沒有發現最近幾年自動駕駛走得特別快?除了芯片本身發展較快外,開源平臺也是加快自動駕駛腳步的重要因素之一。
自動駕駛平臺開源的歷史并沒有多久,Autoware就是世界上第一個用于自動駕駛汽車的“All-in-One”(多合一)開源軟件,現在國內熱度很高的百度Apollo都是它的“小老弟”。它基于ROS(Robot Operating System,機器人操作系統),并在Apache2.0許可下使用,支持在各種車輛和應用中進行自動駕駛的商業部署。
Autoware的開源算法最初是由名古屋大學的客座副教授、東京大學的副教授加藤真平在2015年8月首次提出。2015年12月下旬,加藤伸平教授創立了Tier IV,以維護Autoware并將其應用于真正的自動駕駛汽車。
而后,開源自動駕駛平臺就像雨后春筍一樣,不斷浮現:
- 百度Apollo:2017年4月推出,包括一整套硬件、軟件和云服務解決方案,可以幫助開發者快速構建各種類型和規模的自動駕駛系統,從3.5版放棄傳統的ROS,轉用自己開發的CyberRT,Apollo推薦64位x86指令集的CPU加英偉達GPU架構;
- 英偉達DriveWorks:英偉達不僅拋棄了ROS,連Ubuntu也拋棄了,使用了微內核的QNX來代替Ubuntu。雖然說軟件本身是開源的,但必須在使用英偉達GPU前提下使用,而且DriveWorks實際只是其中的最上層,關鍵的底層DriveOS,英偉達并未開源,因為DriveOS有相當多QNX的貢獻,而QNX肯定是要收費的;
- 大陸汽車子公司Elektrobit的EB robinsand Predictor:VECTOR、博世旗下的ETAS和大陸旗下的EB并稱AUTOSAR中間件三巨頭,其EB robins完全沒考慮非車規級的底層系統,它高度依賴Autosar,其評估套件是運行 EB robinos e-Horizon Provider (ADASIS) 的 Raspberry Pi 設備,所以主要支持Arm架構;
- comma.ai的OpenPilot:與上面的產品不同,OpenPilot專注于提供高級駕駛輔助系統(ADAS)功能,如自適應巡航控制和自動轉向,OpenPolit的cereal中間件主打輕量化、高性能,并保持服務協議的全局一致性
- CARLA:它是一個開源的自動駕駛仿真平臺,提供了真實的交通環境模擬,可以用于測試和驗證自動駕駛算法,可以與Autoware耦合使用。
從上面主要廠商來看,軟件計算框架可以主要分為ROS派生自動駕駛平臺、專研自動駕駛平臺(如Cyber RT)、面向工業界開發的軟件框架Autosar三種技術路線。剛開始,廠商都和Autoware一樣,基于ROS,后來慢慢改變了自己的路線,Autoware則一直保持本心,基于ROS。
從指令集架構來看,Autoware支推薦Arm指令集架構,但也支持Arm。歷史上,Autoware剛開始被Arm鼎力支持,而后AMD也成為了Autoware基金會的白金會員之一。此外,Autoware的白金會員還包括華為、AWS、富士康、TIER IV等。
隨著時間的流逝,Autoware已成為公認的開源項目。
看懂Autoware的里子
Autoware的優勢很多。一是模塊化架構,作為一個多合一平臺,其集成了自動駕駛所需的所有功能,并采用模塊化架構設計,具有清晰定義的接口和API;二是可擴展性,不僅能哦股擴展更多功能,還能聯動別的軟件;三是不斷進化,其最新版本已經開始基于ROS 2.0進行重新設計:四是支持多種自動駕駛的應用場景,如出租車、公交車、貨運、物流、農業、建筑、采礦等。
更重要的是,Autoware自動駕駛平臺的ROS 2采用了代碼優先的方法,使為此類系統開發新應用程序變得盡可能簡單,代碼可重復性高,學習起來比其它平臺更容易上手,適合初學者,代碼在Github(https://github.com/autowarefoundation/autoware)上面為全開源狀態,可以直接安裝使用。此外,Autoware自動駕駛平臺考慮了更多的嵌入式系統。
傳感器部分,Autoware支持多種傳感器,包括相機、激光雷達(LiDAR)、慣導(IMU)和GPS等,提供了多種傳感器的驅動和融合算法,主要功能包括感知、定位、規劃與控制等。在Autoware中,每個相機分開管理,以便執行不同任務,如物體檢測和交通信號燈識別等。此外,Autoware自動駕駛平臺不支持將不同相機圖像合成一個圖像;在Autoware中,可以組合使用多臺雷達掃描儀,提供豐富的融合點云數據,實現更精準的目標檢測、跟蹤和定位;GPS/GNSS接收器通常會通過串行接口生成符合NMEA標準的文本字符串。目前,幾乎所有的GPS/GNSS產品都將與Autoware自動駕駛平臺現有的nmea2tfpose節點兼容;不過,Autoware還沒有獨立的IMU模塊適配,因為在不使用IMU情況下,通過基于SLAM算法的3D地圖和里程計定位已經足夠可靠。但是,由于IMU在某些場景中仍然有用,因此Autoware自動駕駛平臺支持將IMU驅動程序和數據集成到本地模塊中。
算法部分,包括感知、決策和路徑規劃三大功能。其中,感知功能由定位、檢測和預測三個模塊組成;決策功能跨越感知和路徑規劃功能,根據感知的結果,Autoware決定當前的駕駛行為,從而可以選擇合適的規劃函數;路徑規劃功能作用是根據感知和決策的結果制定全局運動方案與局部運動方案,路徑規劃功能由任務和運動兩個模塊組成。
驅動部分,算法部分的輸出結果是一組速度、角速度、車輪角度和曲率,這些信息將作為命令通過車輛接口發送到線控控制器,線控控制器負責方向角度和油門的改變。
特別是現在的Autoware.Universe(開發者版本)和Autoware.core(穩定版本)版本,內容十分豐富,功能和性能相較Autoware.Ai和Autoware.Auto兩個前期版本有了質的飛躍,由Sensing、Map、Localization、Perception、Planning、Control、Vehicle Interface七大模塊組成。
不過,Autoware也不是萬能的。雖然從ROS 1升級到了ROS 2,解決了實時性、master節點、跑不了嵌入式等問題,但車規方面建設并不很多。此外,自動駕駛開源項目商業模式不明確,很難形成有效的開發團隊。在汽車行業內,也沒有開源項目可以直接用于產品上,嚴格的測試認證需要較大資金投入。
對比Apollo,有什么異同
Apollo同屬于開源自動駕駛平臺這一賽道,也擁有很好的人氣,行業對于二者的討論也很多。
工程師普遍認為追求快速落地和生態圈,Autoware更好。ROS作為世界上最豐富的機器人操作系統,積累了大量的經驗,避免了開發者重復的開發工作,提高了開發效率。但成也ROS,“敗”也ROS,畢竟ROS更多針對機器人,原本并非針對汽車領域。同時,由于Linux是極其開放的開發環境,內核調度器對于算法業務邏輯并不清晰,只能保證公平的分配資源。所以,ROS Node運行順序并無任何邏輯。當然隨著進入新版本,Autoware也已經逐漸填補了這些缺點。
追求一些特殊場景的性能,選擇Apollo。Apollo沒有調度,無算法運算邏輯,同時增加了Component組件,組件之間通過Cyber channel通信。不過,Cyber RT用戶經驗少,同時資源也沒有ROS全面。
當然,現在市場上也有一些雙系統的選項,即Autoware(ROS 2)和Apollo相結合。也有一些廠商,比如Apex.AI開始嘗試將Autoware(ROS 2)和Autosar相結合。反正都是開源的,結合起來也沒啥毛病。
Autosar和ROS在Apex.AI產品中統一,來源:Apex.AI
總而言之,Autoware本身的人氣在工程師群體內很高,是對這個行業有興趣的人必知必會的平臺之一。為了讓廣大工程師更好的學習Autoware,我們的訂閱號:汽車開發圈(ID:AutoDevelopers)也曾經放出一些學習資料,未來汽車開發圈還會繼續為廣大工程師提供更多資料。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.