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

 
樓主  收藏   舉報   帖子創(chuàng)建時間:  2018-11-15 18:08 回復:0 關注量:1152

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

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

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

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

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

然而…

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

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

1. 汽車

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

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

一方面是整個自動駕駛系統(tǒng)所消耗的電量巨大,混動和純電動在這方面具有明顯優(yōu)勢。另一方面是是發(fā)動機的底層控制算法相比于電機復雜太多,與其花大量時間在標定和調試底層上,不如直接選用電動車研究更高層的算法。

國內也有媒體專門就測試車輛的選擇做過調研。

調研文章地址:

http://www.sohu.com/a/139046349_120865

2. 控制器

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

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

當算法研究得較為成熟時,就可以將嵌入式系統(tǒng)作為控制器,比如 Audi 和 TTTech 共同研發(fā)的 zFAS,目前已經應用在最新款 Audi A8 上量產車上了。
3.CAN 卡

工控機與汽車底盤的交互必須通過專門的語言—— CAN。從底盤獲取當前車速及方向盤轉角等信息,需要解析底盤發(fā)到 CAN 總線上的數據;工控機通過傳感器的信息計算得到方向盤轉角以及期望車速后,也要通過 CAN 卡 將消息轉碼成底盤可以識別的信號,底盤進而做出響應。

CAN 卡可以直接安裝在工控機中,然后通過外部接口與 CAN 總線相連。

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

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

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

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

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

5. 感知傳感器

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

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

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

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

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

6. 硬件部分總結

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

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

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

《無人駕駛,個人如何研究?》文章鏈接:

https://www.zhihu.com/question/20210846/answer/215490332

以下內容前半段為搬運。

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

各個層級之間都需要編寫代碼,去實現(xiàn)信息的轉化,更細化的分類如下。

1. 采集

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

比如我們采集來自攝像機的圖像信息,有的是通過千兆網卡實現(xiàn)的通信,也有的是直接通過視頻線進行通信的。再比如某些毫米波雷達是通過 CAN 總線給下游發(fā)送信息的,因此我們必須編寫解析 CAN 信息的代碼。

不同的傳輸介質,需要使用不同的協(xié)議去解析這些信息,這就是上文提到的 "驅動層"。

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

2. 預處理

傳感器的信息拿到后會發(fā)現(xiàn)不是所有信息都是有用的。

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

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

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

3. 坐標轉換

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

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

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

因此感知層拿到 3m 的障礙物位置信息后,必須將該障礙物的位置信息轉移到自車坐標系下,才能供規(guī)劃決策使用。

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

什么是自車坐標系?

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

然后把手握成如下形狀:

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

各個團隊可能定義的坐標系方向不一致,只要開發(fā)團隊內部統(tǒng)一即可。

4. 信息融合

信息融合是指把相同屬性的信息進行多合一操作。

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

5. 決策規(guī)劃

這一層次主要設計的是拿到融合數據后,如何正確做規(guī)劃。規(guī)劃包含縱向控制和橫向控制。

縱向控制即速度控制,表現(xiàn)為 什么時候加速,什么時候制動。

橫向控制即行為控制,表現(xiàn)為 什么時候換道,什么時候超車等

6. 軟件長什么樣子?

自動駕駛系統(tǒng)中的部分軟件看起來和下面類似。

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

app_driver_camera 攝像機驅動

app_driver_hdmap 高精度地圖驅動

app_driver_ins 慣導驅動

app_driver_lidar 激光傳感器驅動

app_driver_mwr 毫米波傳感器驅動

app_fusion_freespace 自由行駛區(qū)域融合

app_fusion_lane 車道線融合

app_fusion_obstacle 障礙物融合

app_planning&decision 規(guī)劃決策

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

還有用于傳感器信息顯示的可視化程序,類似下圖的效果。