自動駕駛是一個龐大而且復雜的工程,涉及的技術(shù)很多。本文從硬件和軟件兩方面談一談自動駕駛汽車所涉及的技術(shù)。
一、硬件
先看個圖,下圖基本包含了自動駕駛研究所需要的各種硬件。
當然,這么多傳感器并不一定會同時出現(xiàn)在一輛車上。某種傳感器存在與否,取決于這輛車需要完成什么樣的任務。如果只需要完成高速公路的自動駕駛,類似Tesla 的 AutoPilot 功能,那根本不需要使用到激光傳感器;如果你需要完成城區(qū)路段的自動駕駛,僅靠視覺是很困難的。
所以,自動駕駛系統(tǒng)工程師要以任務為導向,進行硬件的選擇和成本控制。
汽車
既然要做自動駕駛,汽車當然是必不可少的東西。從經(jīng)驗來看,做開發(fā)時,能不選純汽油車就別選。
一方面是整個自動駕駛系統(tǒng)所消耗的電量巨大,混動和純電動在這方面具有明顯優(yōu)勢。另一方面是是發(fā)動機的底層控制算法相比于電機復雜太多,與其花大量時間在標定和調(diào)試底層上,不如直接選用電動車研究更高層的算法。
在前期算法預研階段,推薦使用工控機(Industrial PC,IPC)作為最直接的控制器解決方案。因為工控機相比于嵌入式設(shè)備更穩(wěn)定、可靠,社區(qū)支持及配套的軟件也更豐富。
當算法研究得較為成熟時,就可以將嵌入式系統(tǒng)作為控制器,比如Audi和TTTech共同研發(fā)的zFAS,目前已經(jīng)應用在最新款Audi A8上量產(chǎn)車上了。
CAN卡
工控機與汽車底盤的交互必須通過專門的語言——CAN。從底盤獲取當前車速及方向盤轉(zhuǎn)角等信息,需要解析底盤發(fā)到CAN總線上的數(shù)據(jù);工控機通過傳感器的信息計算得到方向盤轉(zhuǎn)角以及期望車速后,也要通過 CAN卡 將消息轉(zhuǎn)碼成底盤可以識別的信號,底盤進而做出響應。
CAN卡可以直接安裝在工控機中,然后通過外部接口與CAN總線相連。
全球定位系統(tǒng)(GPS)+慣性測量單元(IMU)
人類開車,從A點到B點,需要知道A點到B點的地圖,以及自己當前所處的位置,這樣才能知道行駛到下一個路口是右轉(zhuǎn)還是直行。
無人駕駛系統(tǒng)也一樣,依靠GPS+IMU就可以知道自己在哪(經(jīng)緯度),在朝哪個方向開(航向),當然IMU還能提供諸如橫擺角速度、角加速度等更豐富的信息,這些信息有助于自動駕駛汽車的定位和決策控制。
感知傳感器
相信大家對車載傳感器都耳熟能詳了。感知傳感器分為很多種,包括視覺傳感器、激光傳感器、雷達傳感器等。
視覺傳感器就是攝像頭,攝像頭分為單目視覺,雙目視覺。比較知名的視覺傳感器提供商有以色列的Mobileye,今年已被intel收購。
激光傳感器分為單線,多線一直到64線。每多一線,成本上漲1萬RMB,當然相應的檢測效果也更好。比較知名的激光傳感器提供商有美國的Velodyne和Quanergy,德國的Ibeo等。
雷達傳感器是車廠Tier1的強項,因為雷達傳感器已經(jīng)在汽車上得到了廣泛使用。知名的供應商當然是博世、德爾福、電裝等。
硬件部分總結(jié)
組裝一套可以完成某項功能的自動駕駛系統(tǒng)需要非常豐富的經(jīng)驗,并且要對各傳感器的性能邊界及控制器計算能力了如指掌。優(yōu)秀的系統(tǒng)工程師能在滿足功能的要求下將成本控制在最低,使其量產(chǎn)、落地的可能性更大。
二、軟件
軟件包含四層:感知、融合、決策、控制。各個層級之間都需要編寫代碼,去實現(xiàn)信息的轉(zhuǎn)化。
采集
傳感器跟我們的PC或者嵌入式模塊通信時,會有不同的傳輸方式。
比如我們采集來自攝像機的圖像信息,有的是通過千兆網(wǎng)卡實現(xiàn)的通信,也有的是直接通過視頻線進行通信的。再比如某些毫米波雷達是通過CAN總線給下游發(fā)送信息的,因此我們必須編寫解析CAN信息的代碼。
不同的傳輸介質(zhì),需要使用不同的協(xié)議去解析這些信息,這就是所謂的“驅(qū)動層”。通俗地講就是把傳感器采集到的信息全部拿到,并且編碼成團隊可以使用的數(shù)據(jù)。
預處理
傳感器的信息拿到后會發(fā)現(xiàn)不是所有信息都是有用的。傳感器層將數(shù)據(jù)以一幀一幀、固定頻率發(fā)送給下游,但下游是無法拿每一幀的數(shù)據(jù)去進行決策或者融合的。為什么?
因為傳感器的狀態(tài)不是100%有效的,如果僅根據(jù)某一幀的信號去判定前方是否有障礙物(有可能是傳感器誤檢了),對下游決策來說是極不負責任的。因此上游需要對信息做預處理,以保證車輛前方的障礙物在時間維度上是一直存在的,而不是一閃而過。
這里就會使用到智能駕駛領(lǐng)域經(jīng)常使用到的一個算法——卡爾曼濾波。
坐標轉(zhuǎn)換
坐標轉(zhuǎn)換在智能駕駛領(lǐng)域十分重要。
傳感器是安裝在不同地方的,比如超聲波雷達是布置在車輛周圍的;當車輛右方有一個障礙物,距離這個超聲波雷達有3米,那么我們就認為這個障礙物距離車有3米嗎?
并不一定!因為決策控制層做車輛運動規(guī)劃時,是在車體坐標系下做的(車體坐標系一般以后軸中心為O點),所以最終所有傳感器的信息,都是需要轉(zhuǎn)移到自車坐標系下的。
因此感知層拿到3m的障礙物位置信息后,必須將該障礙物的位置信息轉(zhuǎn)移到自車坐標系下,才能供規(guī)劃決策使用。
同理,攝像機一般安裝在擋風玻璃,中后視鏡處,拿到的數(shù)據(jù)也是基于攝像機坐標系的,給下游的數(shù)據(jù),同樣需要轉(zhuǎn)換到自車坐標系下。
什么是自車坐標系?請拿出你的右手,以大拇指 → 食指 → 中指 的順序開始念 X、Y、Z。然后把手握成如下形狀:
把三個軸的交點(食指根部)放在自車坐標系后軸中心,Z軸指向車頂,X軸指向車輛前進方向。
各個團隊可能定義的坐標系方向不一致,只要開發(fā)團隊內(nèi)部統(tǒng)一即可。
信息融合
信息融合是指把相同屬性的信息進行多合一操作。
比如攝像機檢測到了車輛正前方有一個障礙物,毫米波也檢測到車輛前方有一個障礙物,激光雷達也檢測到前方有一個障礙物,而實際上前方只有一個障礙物,所以我們要做的是把多傳感器下這輛車的信息進行一次融合,以此告訴下游,前面有一輛車,而不是三輛車。
決策規(guī)劃
這一層次主要設(shè)計的是拿到融合數(shù)據(jù)后,如何正確做規(guī)劃。規(guī)劃包含縱向控制和橫向控制。縱向控制即速度控制,表現(xiàn)為 什么時候加速,什么時候制動。橫向控制即行為控制,表現(xiàn)為 什么時候換道,什么時候超車等
軟件長什么樣子?
自動駕駛系統(tǒng)中的部分軟件看起來和下面類似。
軟件的名字反映了該軟件的實際作用——
app_driver_camera 攝像機驅(qū)動
app_driver_hdmap 高精度地圖驅(qū)動
app_driver_ins 慣導驅(qū)動
app_driver_lidar 激光傳感器驅(qū)動
app_driver_mwr 毫米波傳感器驅(qū)動
app_fusion_freespace 自由行駛區(qū)域融合
app_fusion_lane 車道線融合
app_fusion_obstacle 障礙物融合
app_planning&decision 規(guī)劃決策
然而實際上攻城獅們會編寫一些其他軟件用于自己的調(diào)試工作,比如記錄數(shù)據(jù)和回放數(shù)據(jù)的工具。
還有用于傳感器信息顯示的可視化程序,類似下圖的效果。
-
自動駕駛
+關(guān)注
關(guān)注
783文章
13684瀏覽量
166147
原文標題:自動駕駛汽車涉及了這些技術(shù)...
文章出處:【微信號:chuanglai_2015,微信公眾號:創(chuàng)來科技ADAS】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論