當前位置: 華文問答 > 數碼

自動駕駛汽車涉及哪些技術?

2017-01-17數碼

Google從2009年開始做自動駕駛,到現在已有8個年頭。8個年頭的技術積累還無法將自動駕駛技術量產落地,可見自動駕駛技術並不簡單。

自動駕駛是一個龐大而且復雜的工程,涉及的技術很多,大部份答主僅從軟件方面進行了介紹,而且太過細致。我從 硬件 軟件 兩方面談一談自動駕駛汽車所涉及的技術。

硬件

離開硬件談自動駕駛都是耍流氓。

先看個圖,下圖基本包含了自動駕駛研究所需要的各種硬件。

圖片出處: https://www. e-sciencecentral.org/ar ticles/SC000011141

然而...

這麽多傳感器並不一定會同時出現在一輛車上。某種傳感器存在與否,取決於這輛車需要完成什麽樣的任務。如果只需要完成高速公路的自動駕駛,類似Tesla 的 AutoPilot 功能,那根本不需要使用到激光傳感器;如果你需要完成城區路段的自動駕駛,沒有激光傳感器,僅靠視覺是很困難的。

自動駕駛系統工程師要以任務為導向,進行硬件的選擇和成本控制。

1.汽車

既然要做自動駕駛,汽車當然是必不可少的東西。

從我司做自動駕駛的經驗來看,做開發時, 能不選純汽油車就別選

一方面是整個自動駕駛系統所消耗的電量巨大,混動和純電動在這方面具有明顯優勢。另一方面是是發動機的底層控制演算法相比於電機復雜太多,與其花大量時間在標定和偵錯底層上,不如直接選用電動車研究更高層的演算法。

國內也有媒體專門就測試車輛的選擇做過調研。為什麽谷歌、蘋果不約而同選擇這款車?

2.控制器

在前期演算法預研階段,推薦使用 工控機(Industrial PC,IPC) 作為最直接的控制器解決方案。因為工控機相比於嵌入式器材更穩定、可靠,社區支持及配套的軟件也更豐富。

百度開源的Apollo推薦了一款包含GPU的工控機,型號為 Nuvo-5095GC ,如下圖。

圖片出處:Github ApolloAuto

當演算法研究得較為成熟時,就可以將嵌入式系統作為控制器,比如Audi和TTTech共同研發的 zFAS ,目前已經套用在最新款Audi A8上量產車上了。

圖片出處:奧迪在 CES 上做了什麽?

3.CAN卡

工控機與汽車底盤的互動必須透過專門的語言——CAN。從底盤獲取當前車速及方向盤轉角等資訊,需要解析底盤發到CAN總線上的數據;工控機透過傳感器的資訊計算得到方向盤轉角以及期望車速後,也要透過 CAN卡 將訊息轉碼成底盤可以辨識的訊號,底盤進而做出響應。CAN卡可以直接安裝在工控機中,然後透過外部介面與CAN總線相連。

Apollo使用的CAN卡,型號為 ESD CAN-PCIe/402 ,如下圖。

4.全球定位系統(GPS)+慣性測量單元(IMU)

人類開車,從A點到B點,需要知道A點到B點的地圖,以及自己當前所處的位置,這樣才能知道行駛到下一個路口是右轉還是直行。

無人駕駛系統也一樣,依靠GPS+IMU就可以知道自己在哪(經緯度),在朝哪個方向開(航向),當然IMU還能提供諸如橫擺角速度、角加速度等更豐富的資訊,這些資訊有助於自動駕駛汽車的定位和決策控制。

Apollo的GPS型號為 NovAtel GPS-703-GGG-HV ,IMU型號為 NovAtel SPAN-IGM-A1

5.感知傳感器

相信大家對車載傳感器都耳熟能詳了。

感知傳感器分為很多種,包括視覺傳感器、激光傳感器、雷達傳感器等。

視覺傳感器就是網絡攝影機,網絡攝影機分為單目視覺,雙目(立體)視覺。比較知名的視覺傳感器提供商有以色列的 Mobileye ,加拿大的 PointGrey ,德國的 Pike 等。

激光傳感器分為單線,多線一直到64線。每多一線,成本上漲1萬RMB,當然相應的檢測效果也更好。比較知名的激光傳感器提供商有美國的 Velodyne Quanergy ,德國的 Ibeo 等。國內有 速騰聚創 禾賽科技

雷達傳感器是車廠Tier1的強項,因為雷達傳感器已經在汽車上得到了廣泛使用。知名的供應商當然是博世、德爾福、電裝等。

6.硬件部份總結

組裝一套可以完成某項功能的自動駕駛系統需要及其豐富的經驗,並且要對各傳感器的效能邊界及控制器計算能力了如指掌。優秀的系統工程師能在滿足功能的要求下將成本控制在最低,使其量產、落地的可能性更大。

軟件

大部份答主已對軟件進行了闡述,我也從我的角度介紹以下軟件的開發。

軟件部份的內容已在我的回答:無人駕駛,個人如何研究? 中進行了介紹。

以下內容前半段為搬運。

軟件包含四層:感知、融合、決策、控制。

各個層級之間都需要編寫程式碼,去實作資訊的轉化,更細化的分類如下。

1.采集

傳感器跟我們的PC或者嵌入式模組通訊時,會有不同的傳輸方式。

比如我們采集來自攝影機的影像資訊,有的是透過千兆網卡實作的通訊,也有的是直接透過影片線進行通訊的。再比如某些毫米波雷達是透過CAN總線給下遊發送資訊的,因此我們必須編寫解析CAN資訊的程式碼。

不同的傳輸介質,需要使用不同的協定去解析這些資訊,這就是上文提到的 「驅動層」

通俗地講就是把傳感器采集到的資訊全部拿到,並且編碼成團隊可以使用的數據。

2.預處理

傳感器的資訊拿到後會發現不是所有資訊都是有用的。

傳感器層將數據以一幀一幀、固定頻率發送給下遊,但下遊是無法拿每一幀的數據去進行決策或者融合的。為什麽?

因為傳感器的狀態不是100%有效的,如果僅根據某一幀的訊號去判定前方是否有障礙物(有可能是傳感器誤檢了),對下遊決策來說是極不負責任的。因此上遊需要對資訊做預處理,以保證車輛前方的障礙物在時間維度上是一直存在的,而不是一閃而過。

這裏就會使用到智能駕駛領域經常使用到的一個演算法——卡爾曼濾波。

3.座標轉換

座標轉換在智能駕駛領域十分重要。

傳感器是安裝在不同地方的,比如超聲波雷達(上圖中橘黃色小區域)是布置在車輛周圍的;當車輛右方有一個障礙物,距離這個超聲波雷達有3米,那麽我們就認為這個障礙物距離車有3米嗎?

並不一定!因為決策控制層做車輛運動規劃時,是在車體座標系下做的(車體座標系一般以後軸中心為O點),所以最終所有傳感器的資訊,都是需要轉移到自車座標系下的。

因此感知層拿到3m的障礙物位置資訊後,必須將該障礙物的位置資訊轉移到自車座標系下,才能供規劃決策使用。

同理,攝影機一般安裝在擋風玻璃下面,拿到的數據也是基於攝影機座標系的,給下遊的數據,同樣需要轉換到自車座標系下。

什麽是自車座標系?

請拿出你的右手,以大拇指 → 食指 → 中指 的順序開始念 X、Y、Z。

然後把手握成如下形狀:

把三個軸的交點(食指根部)放在自車座標系後軸中心,Z軸指向車頂,X軸指向車輛前進方向。

各個團隊可能定義的座標系方向不一致,只要開發團隊內部統一即可。

4.資訊融合

資訊融合是指把相同內容的資訊進行 多合一 操作。

比如攝影機檢測到了車輛正前方有一個障礙物,毫米波也檢測到車輛前方有一個障礙物,激光雷達也檢測到前方有一個障礙物,而實際上前方只有一個障礙物,所以我們要做的是把多傳感器下這輛車的資訊進行一次融合,以此告訴下遊,前面有一輛車,而不是三輛車。

5.決策規劃

這一層次主要設計的是拿到融合數據後,如何正確做規劃。

規劃包含縱向控制和橫向控制。

縱向控制即速度控制,表現為 什麽時候加速,什麽時候制動。

橫向控制即行為控制,表現為 什麽時候換道,什麽時候超車等

6.軟件長什麽樣子?

自動駕駛系統中的部份軟件看起來和下面類似。

軟件的名字反映了該軟件的實際作用

app_driver_camera 攝影機驅動

app_driver_hdmap 高精度地圖驅動

app_driver_ins 慣導驅動

app_driver_lidar 激光傳感器驅動

app_driver_mwr 毫米波傳感器驅動

app_fusion_freespace 自由行駛區域融合

app_fusion_lane 車道線融合

app_fusion_obstacle 障礙物融合

app_planning&decision 規劃決策

然而實際上攻城獅們會編寫一些其他軟件用於自己的偵錯工作,比如記錄數據和回放數據的工具。

還有用於傳感器資訊顯示的視覺化程式,類似下圖的效果。

圖片出處: http:// open.163.com/movie/2015 /10/U/U/MB1G83TR9_MB1GMCRUU.html

關註公眾微信: 自動駕駛幹貨鋪 ,回復「 資料 」獲取更多自動駕駛相關資料。

———————分割線———————

知乎專欄: 無人駕駛幹貨鋪

更多無人駕駛的內容:

互聯網公司和汽車企業都在開發自動駕駛,你更看好誰?

自動駕駛汽車涉及哪些技術?

高精地圖對自動駕駛來說有多重要?在自動駕駛上和一般的導航地圖有什麽區別?

無人駕駛,個人如何研究?

更多段子:

你珍藏了哪些高級黑的段子?

你這麽好看,一定很會點贊~