在無人駕駛技術(shù)入門第一篇里,我對百度Apollo 1.0和Apollo 2.0所用到的傳感器及控制器進(jìn)行了介紹。 可以得到一個(gè)結(jié)論:實(shí)現(xiàn)越復(fù)雜的功能,所需要的傳感器越多,對控制器的性能要求也越高。 第二篇我會(huì)結(jié)合Apollo 1.0和Apollo 2.0所開放的模塊,談?wù)勎覍Π俣華pollo技術(shù)框架的理解。并告訴大家不寫代碼,如何成為自動(dòng)駕駛工程師! 先上一張百度Apollo的技術(shù)架構(gòu)圖。 可以看出除了第一排在云端工作的的模塊,剩下的模塊都是需要實(shí)時(shí)跑在車上的。 Open Software Platform 自動(dòng)駕駛系統(tǒng)最為重要的軟件層。 這一層包含了最底層的RTOS(Real Time Operation System)和第二層的運(yùn)行軟件所需的框架環(huán)境(Runtime Framework),再到第上層的各個(gè)子模塊(地圖引擎、定位、感知、規(guī)劃、控制、端到端、人機(jī)界面)。 Reference Hardware Platform 自動(dòng)駕駛系統(tǒng)所依賴的硬件層。 這里不僅包含了控制器、GPS/IMU、HMI Device(其實(shí)就是顯示器)和LiDAR,還有即將在12月開放的Camera、Radar、和Black Box(暫時(shí)還猜不到這個(gè)黑盒的功能)。 Drive-by-wire Vehicle 線控的底層,不開放這個(gè)接口,就無法控制汽車。 了解過百度Apollo發(fā)布會(huì)的童鞋想必都清楚,Apollo 1.0能實(shí)現(xiàn)封閉場地循跡自動(dòng)駕駛的功能,Apollo 1.5能實(shí)現(xiàn)定車道晝夜自動(dòng)駕駛的功能。 我們從Apollo 1.0和Apollo 1.5開放的角度來看一下“功能實(shí)現(xiàn)”與“模塊開放”之間的關(guān)系。(暫不談云端,僅談車端)。 Apollo1.0封閉場地循跡自動(dòng)駕駛 先上圖,下圖中紅色塊是Apollo 1.0所開放的模塊。 如果要實(shí)現(xiàn)封閉場地尋跡自動(dòng)駕駛功能: 首先我必須有一輛開放了底層的線控系統(tǒng)的車(Drive-by-wire Vehicle),才能實(shí)現(xiàn)這個(gè)功能; 自動(dòng)駕駛程序要運(yùn)行,控制器(Computing Unit)、顯示屏(HMI Device)都是不能少的; 實(shí)現(xiàn)循跡功能,需要解決一個(gè)很重要的問題——我在哪?因此作為定位所需要的關(guān)鍵模塊 GPS/IMU 被選中; 硬件配齊后,來看看軟件。操作系統(tǒng)(RTOS)和軟件所需的運(yùn)行環(huán)境(Runtime Framework)是必須的,沒有他們,軟件是跑不起來的。 最后是軟件層的子模塊,定位(Localization)用來處理GPS/IMU的數(shù)據(jù)。 有了定位和需要跟隨的軌跡線,那么就要開始控制(Control)了。 循跡時(shí)工程師需要控制自動(dòng)駕駛系統(tǒng),所以就有了人機(jī)交互界面(HMI)。 這樣一套從工程師角度挑選所需模塊的工作就完成了。 Apollo1.5固定車道晝夜自動(dòng)駕駛 同樣的操作,我們來分析Apollo 1.5實(shí)現(xiàn)的“固定車道晝夜自動(dòng)駕駛”的功能。先看圖,圖中藍(lán)色塊為新增模塊。 固定車道,意味著必須有車道線信息。 Apollo使用了高精度地圖提供的車道線信息,這樣有了高精度的定位(經(jīng)緯度)和我需要行駛的車道的經(jīng)緯度區(qū)域(這么說不是很專業(yè),主要是讓大家好理解,以后會(huì)詳細(xì)聊定位和地圖的關(guān)系),自動(dòng)駕駛車就知道自己要在哪個(gè)范圍內(nèi)行駛了。 所以需要有處理高精度地圖數(shù)據(jù)的模塊——地圖引擎(Map Engine)。 知道了自己要在哪個(gè)車道內(nèi)行駛,車道內(nèi)有障礙物怎么辦? 這時(shí)候就需要有傳感器能感知到這些東西。其實(shí)Camera、LiDAR、Radar都可以檢測障礙物,Apollo 1.5開放的是激光雷達(dá)(Lidar)模塊。 有了傳感器,必然有對應(yīng)的感知軟件(perception)。 感知到了障礙物,該剎車剎車,該加速加速,該避讓避讓,所以需要對無人車的行為有個(gè)規(guī)劃(planning)。 Apollo 1.5還開放了End-to-End,這是另外一種使用深度學(xué)習(xí)的方法實(shí)現(xiàn)“固定車道晝夜自動(dòng)駕駛”的方式,這里暫不討論。 Apollo2.0簡單城市路況自動(dòng)駕駛 下面這幅圖是18年1月百度公布的Apollo 2.0,新增的模塊我用紫色背景標(biāo)記出來了。 你可以嘗試用剛才我提供的思路,想一想“簡單城市路況自動(dòng)駕駛”的功能,為什么需要攝像機(jī)(Camera)和雷達(dá)(Radar)。 小結(jié) 上面的分享其實(shí)是正經(jīng)的“自動(dòng)駕駛系統(tǒng)工程師”要做的工作,他們需要從“需求”推導(dǎo)出“架構(gòu)”,進(jìn)而決定使用什么樣的硬件裝到車上。 如果你并不擅長寫代碼,又想從事自動(dòng)駕駛的工作,不妨多了解一些傳感器及系統(tǒng)架構(gòu)方面的知識(shí)(以后的文章中會(huì)對各傳感器做詳細(xì)介紹)。 好了,這篇分享基本上可以讓大家對百度Apollo的技術(shù)架構(gòu)有了了解。 作者:陳光 |
|