自動駕駛汽車到底涉及了哪些技術?
自動駕駛汽車到底涉及了哪些技術?
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,如下圖。
工控機與汽車底盤的交互必須通過專門的語言—— CAN。從底盤獲取當前車速及方向盤轉角等信息,需要解析底盤發(fā)到 CAN 總線上的數據;工控機通過傳感器的信息計算得到方向盤轉角以及期望車速后,也要通過 CAN 卡 將消息轉碼成底盤可以識別的信號,底盤進而做出響應。
CAN 卡可以直接安裝在工控機中,然后通過外部接口與 CAN 總線相連。
Apollo 使用的 CAN 卡,型號為ESD CAN-PCIe/402,如下圖。
人類開車,從 A 點到 B 點,需要知道 A 點到 B 點的地圖,以及自己當前所處的位置,這樣才能知道行駛到下一個路口是右轉還是直行。
無人駕駛系統(tǒng)也一樣,依靠 GPS+IMU 就可以知道自己在哪(經緯度),在朝哪個方向開(航向),當然 IMU 還能提供諸如橫擺角速度、角加速度等更豐富的信息,這些信息有助于自動駕駛汽車的定位和決策控制。
Apollo 的 GPS 型號為NovAtel GPS-703-GGG-HV,IMU 型號為NovAtel SPAN-IGM-A1。
相信大家對車載傳感器都耳熟能詳了。
感知傳感器分為很多種,包括視覺傳感器、激光傳感器、雷達傳感器等。
視覺傳感器就是攝像頭,攝像頭分為單目視覺,雙目(立體)視覺。比較知名的視覺傳感器提供商有以色列的Mobileye,加拿大的PointGrey,德國的Pike等。
激光傳感器分為單線,多線一直到 64 線。每多一線,成本上漲 1 萬 RMB,當然相應的檢測效果也更好。比較知名的激光傳感器提供商有美國的Velodyne和Quanergy,德國的Ibeo等。國內有速騰聚創(chuàng)和禾賽科技。
雷達傳感器是車廠 Tier1 的強項,因為雷達傳感器已經在汽車上得到了廣泛使用。知名的供應商當然是博世、德爾福、電裝等。
6. 硬件部分總結
組裝一套可以完成某項功能的自動駕駛系統(tǒng)需要及其豐富的經驗,并且要對各傳感器的性能邊界及控制器計算能力了如指掌。優(yōu)秀的系統(tǒng)工程師能在滿足功能的要求下將成本控制在最低,使其量產、落地的可能性更大。
大部分答主已對軟件進行了闡述,我也從我的角度介紹以下軟件的開發(fā)。
軟件部分的內容已在我的回答:無人駕駛,個人如何研究? 中進行了介紹。
《無人駕駛,個人如何研究?》文章鏈接:
https://www.zhihu.com/question/20210846/answer/215490332
以下內容前半段為搬運。
軟件包含四層:感知、融合、決策、控制。
各個層級之間都需要編寫代碼,去實現(xiàn)信息的轉化,更細化的分類如下。
傳感器跟我們的 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。
然后把手握成如下形狀:
各個團隊可能定義的坐標系方向不一致,只要開發(fā)團隊內部統(tǒng)一即可。
4. 信息融合
信息融合是指把相同屬性的信息進行多合一操作。
比如攝像機檢測到了車輛正前方有一個障礙物,毫米波也檢測到車輛前方有一個障礙物,激光雷達也檢測到前方有一個障礙物,而實際上前方只有一個障礙物,所以我們要做的是把多傳感器下這輛車的信息進行一次融合,以此告訴下游,前面有一輛車,而不是三輛車。
這一層次主要設計的是拿到融合數據后,如何正確做規(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ī)劃決策
然而實際上攻城獅們會編寫一些其他軟件用于自己的調試工作,比如記錄數據和回放數據的工具。
- 延龍車友圈 2018-11-15
圈主:yanlong 帖子:1
- 汽車工業(yè)自動化圈 2018-11-15
圈主:x13249819827 帖子:16
- 大顯神通圈 2018-11-15
圈主:x13249819827 帖子:0
- 上海燃料電池交流圈圈 2018-11-15
圈主:chenxinsnec 帖子:0
- 小鵬汽車圈 2018-11-15
圈主:新能源汽車網 帖子:4