簡介
無人駕駛車由車、線控系統、感測器、計算單元等組成,如圖 2.1 所示。車作為無人駕駛的載體,是無人駕駛車最基礎的組成部分。
除了車本身之外,還需要車上安裝有線控系統。有別於傳統汽車透過機械傳動的方式控制汽車,線控系統透過電訊號來控制汽車,這種方式顯然更適合電腦控制。
無人駕駛車還配備了數目眾多的感測器,包括鐳射雷達、攝像機、毫米波雷達、超聲波雷達、GPS、IMU 等。感測器是無人駕駛車的眼睛,負責感受外部環境。計算單元則是無人駕駛車的大腦,感測器獲取的資訊經過計算單元的計算之後,輸出一條可以供汽車安全行駛的軌跡,控制汽車行駛。
圖 2.1 無人駕駛車硬體組成
硬體首先需要考慮的就是安全。汽車關係到人的生命安全,因此需要有嚴格的安全規範。無人駕駛車同樣要求如此,需要儘可能地保障乘客的安全,不僅要使用滿足車規要求的硬體,還要使汽車能夠覆蓋足夠的視野範圍。
其次需要考慮的是成本,目前無人駕駛車的成本居高不下,主要原因是感測器的成本太高,甚至比一輛車的成本還高,這是阻礙無人駕駛車普及的重要原因之一。
下面我們分別從車和線控系統、感測器、計算單元、輔助單元等方面介紹無人駕駛車的硬體組成。
2.2 車和線控系統
2.2.1 車
傳統汽車由發動機、汽車底盤、中控系統和車身等組成,如圖 2.2 所示。實際上,無人駕駛車的車身部分和傳統汽車幾乎沒有區別,只是在傳統汽車的基礎上,安裝了汽車線控系統。
目前主要有以下 4 種形式的無人駕駛車。
無人駕駛計程車。透過小車改裝而成,常見的型號有林肯 MKZ。
無人駕駛小巴、擺渡車。透過巴士改裝而成,有些甚至沒有方向盤。
無人駕駛貨車。由卡車改裝而成,主要廠家有比亞迪、東風等。
無人駕駛清潔車。透過特種車輛改裝而成。
圖 2.2 汽車構造
目前還沒有真正量產的無人駕駛車,無人駕駛車大部分都是根據現有車型改裝而成,計算單元還都是放在汽車後備箱中,需要將空調風道引入後備箱以供計算單元散熱。同時,車上要增加按鈕,實現將所有子系統從自動駕駛狀態緊急切換到人工駕駛狀態,在發生整車故障時,能完全退出至人工駕駛模式,保障安全。
為什麼電動車比燃油車更加適合做自動駕駛呢?主要有以下 3 個原因。
電動車比燃油車的反應時間更短。普通燃油車透過機械控制的方式,普遍的延遲在 200ms 左右,而電動車的控制響應時間不到 20ms。對比燃油車來說,電動車更容易控制,響應時間也更短。
電動車能夠直接提供無人駕駛車所需要的電源。燃油車則需要透過發動機發電,效率轉換比較低,同時也提供不了大功率的電源輸出。除此之外,燃油車還要額外提供 UPS 裝置保障電源供應,而電動車不存在這些問題。
電動車比燃油車具有先天優勢。由於電動車目前還在發展階段,可以進行全新的設計,而燃油車已經非常成熟,設計和改造有著諸多限制。
綜上所述,電動車比燃油車更適合用來做自動駕駛。
2.2.2 線控系統
汽車需要具備線控系統才能改裝成無人駕駛車,那麼什麼是線控系統呢?
傳統汽車是透過機械傳動的方式對汽車進行轉向、油門和剎車等的控制,而線控系統是透過電訊號對汽車進行轉向、油門和剎車等的控制。電腦能夠更好地控制電訊號,這就是為什麼無人駕駛車採用線控系統來控制汽車的重要原因。
線控系統省去了機械傳動的延遲,透過電腦可以更加快速地控制汽車,並且一些輔助駕駛任務也需要線控系統來完成,例如定速巡航、自動避障、車道保持等。線控系統最大的問題在於安全性,線控系統如果被破解,駭客甚至可以控制汽車的行駛,成為很大的安全隱患。
線控系統從功能上可以分為以下 4 個部分。
線控油門,透過電訊號控制汽車油門大小。
線控剎車,透過電訊號控制汽車制動。
線控轉向,透過電訊號控制汽車轉向角度。
線控檔位,透過電訊號控制汽車檔位。
線控系統一方面需要接收無人駕駛車發出的控制指令,另一方面要把指令執行的結果和車輛的狀態反饋給無人駕駛車。無人駕駛車輸出給線控系統的資訊如下。
油門、剎車、轉向等的控制訊號。
檔位訊號。
車燈、雨刷器等的控制訊號。
線控系統反饋給無人駕駛車的資訊如下。
命令執行的結果。
底盤狀態。
底盤詳細資訊。
除此之外,線控系統需要能夠及時響應控制命令。響應時間是指從無人駕駛車發出控制命令到汽車執行完成的時間,如果響應時間太長或者響應時間不穩定,會影響無人駕駛車的控制。
線控系統傳送的資料幀不能丟失或者出現錯誤,如果資料幀丟失或者資料幀出錯,可能會造成控制失效,這也是不能接受的。
在控制命令出錯的情況下,線控系統要提供一系列錯誤碼來通知控制系統,以便控制系統根據錯誤碼獲取出錯的原因。
控制命令越界處理,當控制訊號越界的時候線控系統應當拒絕執行,並且進入人工接管模式。
當安全員主動控制方向盤、油門或者剎車腳踏板的時候,線控系統能夠主動退出無人駕駛模式。
下面是百度 Apollo 線控認證平臺的部分效能指標。
最大驅動加速度。最大驅動加速度指的是車可以達到的最大加速度值。
驅動響應延遲時間。驅動響應延遲時間是傳送命令到開始執行的時間。
最大超調。最大超調是指油門調節的過程中,目標值與實際值之間的最大誤差。
對應執行時間。對應執行時間是驅動開始響應到響應到目標加速度的值。
2.3 感測器
為了方便感知周圍的環境,無人駕駛車用到了各種各樣的感測器,這些感測器從功能上劃分為 2 類:環境感知和狀態感知。
環境感知主要是獲取車當前所處的環境資訊,包括:周圍的車輛、行人、交通標誌、紅綠燈、所處的場景(路口交匯處、停車場、高速公路)等。
狀態感知主要是獲取車自身的狀態,包括當前車輛的位置、航向角、速度、俯仰角等資訊。
無人駕駛車所用到的感測器如圖 2.3 所示,包括鐳射雷達、毫米波雷達、超聲波雷達、相機、GPS、IMU 等。下面開始分別介紹這幾種感測器。
圖 2.3 無人駕駛車感測器示意
2.3.1 鐳射雷達
鐳射雷達是無人駕駛車中最重要的感測器之一,目前大部分的無人駕駛公司都選擇配備鐳射雷達。雖然特斯拉的 CEO 伊隆 · 馬斯克曾經一語驚人的說“只有傻瓜才用鐳射雷達。”,但出於安全性的考慮,鐳射雷達仍然是無人駕駛車的首選。
1. 原理
鐳射雷達( Light Detection and Ranging,LIDAR)是光檢測和測距的縮寫,透過對外發射鐳射脈衝來進行物體檢測和測距。鐳射雷達採用飛行時間(Time of Flight,TOF)測距,包括鐳射器和接收器。鐳射器先傳送一束鐳射,遇到障礙物後反射回來,由接收器接收,最後鐳射雷達透過計算鐳射傳送和接收的時間差,得到目標和自己的相對距離。
如果採用多束鐳射並且 360 度旋轉掃描,就可以得到整個環境的三維資訊。鐳射雷達掃描出來的是一系列的點,因此鐳射雷達掃描出來的結果也叫“鐳射點雲”,如圖 2.4 所示。
圖 2.4 鐳射雷達掃描效果圖
應用
鐳射雷達能夠準確輸出障礙物的大小和距離,同時還具有較高的解析度,可以記錄周圍環境的三維資訊,對無人駕駛進行規劃軌跡,避開障礙物非常有用。除了上述優點外,鐳射雷達還是主動發射型裝置,對光照的變化不敏感,在有光照變化和夜晚等場景基本不會受到影響。此外鐳射雷達能夠提供水平 360 度的視野範圍,保證整個無人駕駛車基本上沒有視野盲區。
但是鐳射雷達懼怕霧霾天氣,因為霧霾顆粒的大小非常接近鐳射的波長,鐳射照射到霧霾顆粒上會產生干擾,導致效果下降。另外鐳射雷達還比較昂貴,以 64 線的鐳射雷達為例,售價約 8 萬美元,可以抵得上一輛車的價格了,這也是推廣鐳射雷達的障礙之一。
除了障礙物感知,鐳射雷達還可以用來製作高精度地圖。地圖採集過程中,鐳射雷達每隔一小段時間輸出一幀點雲資料,這些點雲資料包含環境的準確 3 維資訊,透過把這些點雲資料做拼接,就可以得到該區域的高精度地圖。
最後,鐳射雷達還可以用來做定位,無人車在行駛過程中利用當前鐳射雷達採集的點雲資料幀和高精度地圖做匹配,可以獲取無人車的位置。
2. 分類
鐳射雷達從工作方式上可以分為:旋轉式鐳射雷達和固態鐳射雷達。
旋轉式鐳射雷達內部有一個馬達,透過馬達帶動鐳射束 360° 旋轉掃描,每掃描一圈得到一幀鐳射點雲資料,掃描一圈的時間稱為一個掃描週期。
固態鐳射雷達採用相控門陣列技術,透過調整訊號的相對相位來改變鐳射束的發射方向,實現掃描整個平面,固態雷達的掃描範圍有限,一般水平視角為 60° 左右。雖然固態雷達的角度範圍小,但是掃描精度和指向精度高、可控性好、成本也相對較低,是鐳射雷達未來的主要發展方向。圖 2.5 所示分別是 Velodyne 公司生產的旋轉式鐳射雷達和固態鐳射雷達。
圖 2.5 旋轉式鐳射雷達(左)和固態鐳射雷達(右)
3. 引數指標
(1)視場角。視場角決定了鐳射雷達能夠看到的視野範圍,分為水平視場角和垂直視場角,視場角越大,代表視野範圍越大,反之則代表視野範圍越小。以圖 2.5 中的鐳射雷達為例,旋轉式鐳射雷達的水平視場角為 360°,垂直視場角為 26.9°,固態鐳射雷達的水平視場角為 60°,垂直視場角為 20°。
(2)線數。線數越高,代表單位時間內取樣的點就越多,解析度也就越高,目前無人駕駛車一般採用 32 線或 64 線的鐳射雷達。
(3)解析度。解析度和鐳射光束之間的夾角有關,夾角越小,解析度越高。固態鐳射雷達的垂直解析度和水平解析度大概相當,約為 0.1°,旋轉式鐳射雷達的水平角解析度為 0.08°,垂直角解析度約為 0.4°。
(4)探測距離。鐳射雷達標稱的最遠探測距離一般為 150-200m,實際上距離過遠的時候,取樣的點數會顯著變少,測量距離和鐳射雷達的解析度有著很大的關係。以鐳射雷達的垂直解析度為 0.4° 最遠探測距離為 200m 舉例,在經過 200m 後鐳射光束 2 個點之間的距離為,也就是說只能檢測到高於 1.4m 的障礙物。如圖 2.6 所示。
圖 2.6 鐳射雷達探測距離
如果要分辨具體的障礙物型別,那麼需要取樣點的數量更多,因此鐳射雷達有效的探測距離可能只有 60-70m。增加鐳射雷達的探測距離有 2 種方法,一是增加物體的反射率,二是增加鐳射的功率。物體的反射率是固定的,無法改變,那麼就只能增加鐳射的功率了。但是增加鐳射的功率會損傷人眼,只能想辦法增加鐳射的波長,以避開人眼可見光的範圍,這樣可以適當增大鐳射的功率。探測距離是制約鐳射雷達的另一個障礙,汽車在高速行駛的過程中越早發現障礙物,就越能預留越多的反應時間,從而避免交通事故。
(5)反射率。反射率是指物體反射的輻射能量佔總輻射能量的百分比,比如說某物體的反射率是 20%,表示物體接收的鐳射輻射中有 20% 被反射出去了。不同物體的反射率不同,這主要取決於物體本身的性質(表面狀況),如果反射率太低,那麼鐳射雷達收不到反射回來的鐳射,導致檢測不到障礙物。鐳射雷達一般要求物體表面的反射率在 10% 以上,用鐳射雷達採集高精度地圖的時候,如果車道線的反射率太低,生成的高精度地圖的車道線會不太清晰。
4. 擴充套件閱讀
在無人駕駛普及之後,大量的鐳射雷達都是相同波段,相鄰的鐳射雷達之間會產生干擾,採用連續波調頻技術可以解決這個問題。
此外,目前市場上大部分鐳射雷達的波長是 905nm,非常接近可見光的波長,而鐳射會損害人眼,燒壞視網膜上的光敏探測細胞,因此 905nm 鐳射雷達的功率受到嚴格限制。
2.3.2 毫米波雷達
毫米波雷達(RADAR)和鐳射雷達的原理類似,毫米波雷達透過發射和接收電磁波來檢測物體的距離和速度。目前已經上市的高階駕駛輔助系統(Advanced Driver Assistance Systems,ADAS)大部分都帶有毫米波雷達。
1. 原理
毫米波雷達的原理是透過發射電磁波,然後接收反射回來的訊號,透過電磁波返回的時間差計算目標的相對距離,透過多普勒效應產生的頻率偏移來計算目標的相對速度。
2. 應用
毫米波雷達的體積小,安裝之後對汽車外觀的影響不大;毫米波雷達能夠同時檢測多個物體的距離、角度和相對速度,特別是高速移動的物體;毫米波雷達測量距離也比較大,最大探測距離可達 250m,並且能夠穿透霧和粉塵,還能夠適應各種不同的天氣。
毫米波雷達的缺點是測量角度受限,特別是垂直角度;毫米波雷達取樣的點比較稀疏,解析度比較低,很難識別體積比較小的物體。
3. 分類
雷達按照測量的距離劃分為短距離雷達和長距離雷達。
短距離雷達:探測的範圍比較大,但是探測的距離比較短。
長距離雷達:探測的範圍比較窄,但是探測的距離比較長。
4. 引數指標
毫米波雷達主要有以下 4 個引數指標。
最大探測距離:能夠探測到障礙物的最大相對距離,一般為 250m。
最大探測速度:能夠探測到障礙物的最大相對速度,一般為 240km/h。
探測視角:能夠探測到的視野範圍,水平範圍一般為 ±60°,垂直視角一般為 ±15°。
最大探測目標數:最大能夠探測的目標數量,一般為 24-32 個。
2.3.3 超聲波雷達
超聲波雷達(Ultrasonic radar)透過發射超聲波計算障礙物的距離,對溫度敏感,測量精度大概是 1-3cm。同時超聲波雷達探測的距離非常短,最遠探測距離不到 3m,只能在短距離測距的時候使用。
目前超聲波雷達主要應用在自動泊車中,寶馬和大眾的自動泊車系統都搭載了數枚超聲波雷達來檢測停車庫位。
超聲波雷達有 2 種應用方式:一種稱為 UPA,用來探測汽車前後的障礙物;另一種稱為 APA,安裝在汽車側方,用於探測汽車側方的障礙物。
2.3.4 相機
相機(Camera)是目前無人駕駛中應用和研究最廣泛的感測器。基於影像的物體檢測和識別技術已經相當成熟,近幾年,基於深度學習的視覺感知演算法甚至已經超過了人類的水平。無人駕駛車上一般會安裝多個相機,兼顧不同的視角和任務。
1. 原理
相機利用了光學成像原理,光線透過相機鏡頭後,被感光元器件捕獲,最後形成影像,如圖 2.7 所示。
圖 2.7 相機成像原理
2. 應用
相機的成本低、成像畫素高、重新整理頻率快,因此相機被大量應用於車輛,行人和車道線檢測;相機還可以獲取顏色資訊,用來做紅綠燈檢測和交通標誌識別;相機拍攝的圖片經過場景分割用來做場景理解和路面識別。可以說相機應用在無人駕駛環境感知的方方面面。
在天氣良好的情況下,相機最遠可以看到 1000m 左右的距離,比鐳射雷達能夠更早的發現遠處的交通狀況。
相機是被動型感光裝置,對光照的變化十分敏感,在有強光直射和陰影變化的時候拍攝質量會嚴重下降,在夜晚的時候相機的表現也不太好。另外相機在拍攝快速移動的物體的時候會出現運動模糊,拍攝的照片有重影或者模糊不清。通常在下雨天氣,無人駕駛車會使用車內的相機做環境感知,暴露在車外的相機鏡頭會被雨水模糊。最新有報導利用鐳射做雨刷的新聞,對以後相機暴露在雨天工作可能有幫助。為了獲取足夠的視野無人駕駛車一般會配備多個相機。這就引入了一個問題,多個相機的拍攝時間可能不一致。那麼如何保證多個相機的拍攝時間一致呢?相機有一個觸發器(Trigger),用於觸發相機拍照,透過控制訊號同時觸發多個相機的觸發器來拍照,就可以保證所有照片都是同一時間拍攝的了。
3. 分類
按照使用到的相機個數,分為單目相機和雙目相機。
單目相機。單目相機由 1 個相機組成,結構簡單,成本低,但是無法測量準確的距離。
雙目相機。雙目相機由 2 個相機組成,由於 2 個相機之間的距離已知,可以估算出空間距離,但是標定和計算量比單目相機大。
按照相機的焦距,分為長焦相機和短焦相機。
長焦相機。長焦相機看的距離遠,在拍攝遠處的景象的時候更加清晰。在無人駕駛車中,長焦相機用來發現遠處的交通狀況和紅綠燈識別。
短焦相機。短焦相機主要用來發現近處的物體,視野範圍比長焦寬。障礙物識別、車道線檢測和場景分割等多個任務都需要用到短焦相機,往往車上會整合多個短焦相機,覆蓋整個車的視野範圍。
按照型別劃分,除了最常見的相機之外,還有事件相機、全景相機、深度相機和紅外相機 4 種新型相機。
(1)事件相機(Event Camera)。事件相機中的每個畫素獨立響應亮度的變化,透過捕捉亮度變化成像,因此對運動物體捕捉效果非常好,並且不受曝光時間限制,成像速度非常快。普通相機在高速運動狀態下會出現運動模糊,而事件相機則很好的解決了這個問題。目前事件相機的主要限制是畫素大小和影像解析度,例如 DAVIS240 型號的事件相機畫素大小隻有 18.5x18.5µm,解析度為 240x180。如圖 2.8 所示,分別是普通相機和事件相機拍攝到晚上有行人在汽車前奔跑的畫面,可以看到普通相機出現了明顯的曝光不足和運動模糊,而事件相機則很清晰。
圖 2.8 普通相機和事件相機效果對比
(2)全景相機(Omnidirectional Camera)全景相機有 360° 的採集視野,解決了單個相機視野範圍不足的問題。全景相機透過 2 枚或者 4 枚魚眼鏡頭進行拍攝,然後把拍攝好的照片拼接起來,組成全景照片。全景照片技術已經非常成熟,已經應用在 VR 看房等場景,對導航,定位和地圖製圖都很有幫助。如圖 2.9 所示全景照片的邊緣畸變非常嚴重,需要演算法處理之後才能正常顯示。
圖 2.9 全景照片示例
(3)深度相機(Range Camera)。深度相機能夠獲取環境的深度和顏色資訊,目前有 3 種深度測距方法:結構光測距、飛行時間法和雙目視覺測距。深度相機能夠探測的距離非常有限,因此主要還是應用在室內場景的三維重建,如圖 2.10 所示。
圖 2.10 深度相機效果圖
(4)紅外相機(Infrared Camera)。紅外相機透過熱成像原理對行人進行檢測,目前在無人駕駛中還沒有大規模應用。
4. 引數指標
相機主要有以下 5 個引數指標。
畫素:相機的畫素越高,解析度也越高,影像也就越清晰。
焦距:焦距足夠大,在拍攝比較遠的物體時才足夠清晰。
視場角:視場角決定了攝像頭能夠看到的視野範圍,廣角的鏡頭所拍攝的視野範圍更大。
幀率:幀率越高,表示單位時間內拍攝的照片越多,拍攝速度越快。
訊雜比:訊雜比越高表明產生的雜波訊號越少,影像訊號質量越好,單位為 DB。
2.3.5 GPS/IMU
GPS(Global Positioning System)是全球衛星定位系統的簡稱,終端透過接收至少 4 顆衛星訊號,就能迅速確定自己的經緯度和海拔高度,精度可以達到 10 米左右,是目前使用最廣泛的定位手段。IMU(Inertial Measurement Unit)是慣性測量單元的簡稱,IMU 安裝有三軸的陀螺儀和三個方向的加速度計,用來測量物體三軸姿態角以及加速度,一般而言要安裝在無人駕駛車的重心上。GPS 和 IMU 通常結合起來,用來獲取無人駕駛車的位置和姿態。
1. 應用
GPS 通常用於室外定位,在使用 RTK 技術之後,往往精度能夠達到釐米級別。GPS 定位非常方便,但在高樓、隧道和停車場等場所會出現多徑效應和訊號衰減,導致測量精度下降。GPS 的更新頻率也比較低,一般為 1s 重新整理一次。
為了解決上述問題,IMU 通常用來輔助 GPS 進行定位,IMU 不需要接收訊號,不受訊號質量影響,而且更新頻率快,工作頻率通常可達 100Hz 以上,可以彌補短期 GPS 重新整理頻率不足的問題。但是 IMU 有累計誤差,在一段時間後需要校準,所以目前無人車主要透過 GPS 和 IMU 融合定位。
2. 引數指標
陀螺儀:角度偏差為 0.1°/s - 0.001°/h。
加速度計:加速度偏差為 100mg - 10µg。
由距離計算公式可以得出,100mg 和 10µg 偏差的加速度計在 60s 之後的測量誤差分別是 3528m 和 0.35m,差距非常大。
3. 小結
GPS 和 IMU 融合定位是目前無人駕駛中主要的定位手段。由於 GPS 的時間源比較精準,也用來當做整個無人駕駛車的基準時間。
2.3.6 總結和展望
1. 總結
上面介紹了不同型別的感測器,表 2.1 所示為感測器的各項效能指標對比。
2. 展望
如表 2.1 所示,不同的感測器互有優缺點,單一的採用某種感測器並不能解決所有的問題,感測器融合才是未來無人駕駛車發展的方向。
未來,另一個趨勢是藉助外界手段進行感知,也就是越來越被重視的車路協同。透過 V2X 技術實現車和外界環境的互動,從而實現超越感測器本身的感知能力,如圖 2.11 所示。
圖 2.11 V2X 示意圖
2.4 計算單元
如果說感測器是無人駕駛車的眼睛,那麼計算單元則是無人駕駛車的大腦,感測器採集到的資料經過計算單元的運算,最後才能轉化為控制訊號,控制汽車的行駛。因此一個效能強勁的大腦顯得尤為關鍵。
2.4.1 簡介
無人駕駛車執行過程中需要處理各種不同型別的任務,所以目前大部分的無人駕駛計算平臺都採用了異構平臺的設計。無人駕駛車在 CPU 上執行作業系統和處理通用計算任務,在 GPU 上執行深度模型感知任務。
無人駕駛作業系統執行在 CPU 上,實現系統排程、程式管理、網路通訊等基本功能。還有一部分通用任務也跑在 CPU 上,例如定位的 NDT 演算法、卡爾曼濾波和控制相關的演算法等。無人駕駛的環境感知演算法執行在 GPU 上,目前主流的深度學習框架都支援透過 GPU 來加速運算,特別是一些影像演算法。GPU 的效能和無人駕駛車感知周圍環境的能力息息相關,目前也有采用專門用於深度學習的晶片來處理此類任務,例如 google 的 TPU 等。
從哪些方面來判斷計算平臺是否滿足無人駕駛的要求呢?下面來詳細講解計算平臺的參考指標。
2.4.2 參考指標
1. 效能
效能包括 4 個方面:CPU、GPU、記憶體和匯流排 。
CPU。CPU 主要執行自動駕駛作業系統和進行通用計算,目前主流的通用 CPU 是 Intel 公司 X86 架構和 ARM 公司的 ARM 架構。Intel 公司的志強系列處理器已經廣泛應用於資料中心伺服器和工控機上,ARM 公司則是設計晶片然後把方案賣給各家公司讓他們自己生產。目前各大公司釋出的無人駕駛計算平臺大部分都採用了 ARM 架構的處理器,主要原因是在汽車行業,晶片需要滿足車規要求,而 ARM 處理器更方便整合。可以預見未來發布的無人駕駛計算平臺會大量採用 ARM 架構的處理器做通用計算。
GPU。目前主流的深度學習框架都是透過 GPU 進行訓練和計算,因此無人駕駛計算平臺大部分都採用 GPU 來進行深度學習計算。也有專門針對深度學習計算的晶片如 TPU 等,但目前這類晶片應用的生態和成熟度還不是很高。此外還有計算平臺透過 FPGA 來做深度學習加速,成本會比 GPU 高。未來在無人駕駛大規模商業之後可能會出現專門針對深度學習計算的晶片。
記憶體。記憶體包括 CPU 記憶體和視訊記憶體,記憶體容量太小和重新整理頻率太低都會影響到系統效能。同時應當儘量避免記憶體條的設計,採用貼片記憶體,防止記憶體震動失效。
匯流排。無人駕駛車的感測器和 GPU 等硬體裝置都需要匯流排和計算平臺相連線,匯流排頻寬是系統效能的保障。同時計算平臺的 CPU 需要採用冗餘設計,2 顆 CPU 之間透過匯流排連線,保證一顆 CPU 失效後,另一顆也能夠繼續工作。
2. 功耗
一般系統的效能越強,則功耗越大。這時候需要考慮以下 2 個方面:電源和散熱。
電源。計算平臺採用的是車載電源,考慮到人的安全,車載電源的電壓限制在 36v 以下。一般車載電源能夠提供的功率不超過 1KW,也就是說在不進行任何改造的情況下,計算平臺的功率限制在 1KW 以下。如果需要增加功率,要麼採用多個電源,要麼增大電源的電流。而 1KW 的電源電流約為 42A,功率如果要增大到 2KW,那麼電流要增大到 84A,我們知道電流越大,系統的發熱會越大,所以也不是可以無限增加電源功率。
散熱。在功率非常大的時候,計算平臺甚至需要水冷散熱,採用風扇散熱在汽車密閉的後備箱中沒有排風口,無法有效的把熱量排放出去。水冷散熱的效果好,而且不需要排風口的設計,在功耗比較大的時候採用水冷散熱是很好的選擇。
3. 儲存
無人駕駛車需要儲存高精度地圖、日誌、感測器資料等多種資料。這些資訊的資料量很大,特別是感測器資料,在錄製資料的時候,為了讓資料能夠及時儲存,一般會選擇固態硬碟。固態硬碟的寫入速度快,並且相對機械硬碟也不容易失效,因此無人駕駛中都建議採用固態硬碟。
4. 介面
計算平臺除了需要注意效能、功耗和儲存,還需要注意各種匯流排介面是否完備。目前感測器的介面豐富多樣,攝像頭採用的是 USB 介面,鐳射雷達採用的是乙太網,毫米波雷達採用的是 CAN 匯流排,同時還需要預留足夠的介面給其它外設,例如 GPU、FPGA 加速卡、V2X 裝置等。計算平臺只有具備豐富的介面型別才能滿足無人駕駛的要求。
2.4.3 計算平臺
目前無人駕駛計算平臺有 3 種選擇。
第一種是採用工控機,工控機採用 CPU 和 GPU 的組合,非常通用,同時又能夠滿足惡劣壞境的要求。但工控機的效能不太強勁,介面也不太豐富,適合初期的無人駕駛驗證。
圖 2.12 工控 IPC(Nuvo-6108GC)
第二種是採用晶片廠家推出的無人駕駛計算平臺,比如英偉達的 DRIVE、德州儀器基於 DSP 的 TDA2X Soc、恩智浦的 BlueBox。這類平臺都是採用開發板設計,不太適合直接應用在無人駕駛中,好處是廠家提供了 SDK,可以做到開箱即用。
圖 2.13 Navidia drive AGX
第三種是自研計算平臺。特斯拉的 FSD 就是自研的計算平臺,整合度非常高,採用冗餘設計,整合有專門的安全模組,效能和介面也能夠滿足特定場景的要求。自研晶片的解決方案非常適合無人駕駛,但是研發成本太高。
圖 2.14 特斯拉 FSD 晶片
2.4.4 邊緣計算
邊緣計算是無人駕駛未來的發展趨勢之一,感測器中會逐步整合融合和濾波演算法,而不需要把所有的計算全都放在計算平臺中完成。典型的應用場景是為了處理攝像頭拍攝的大量影像,可以先用 FPGA 處理,然後輸出處理好的結果給計算平臺使用,這樣不僅可以減輕系統頻寬壓力,同時還可以加快圖片處理速度。
2.5 輔助單元
除了實現無人駕駛必須的一些硬體之外,我們還需要一些硬體來輔助無人駕駛,無人駕駛車沒有司機,因此需要人機互動裝置實現人和車的互動。此外,無人駕駛車同外界進行通訊,還需要 V2X 等網路裝置。最後無人駕駛車還需要類似飛機黑匣子的裝置來記錄無人車的狀態,在發生交通事故之後,幫助分析事故原因。
2.5.1 人機互動
1. 為什麼需要人機互動?
無人駕駛車帶來的好處顯而易見,汽車不再需要司機了,帶來的後果是,我們從和司機交流變成和汽車互動了。司機能夠很好的理解乘客的意圖,同時也能對突發狀況進行處理,以目前的技術而言無人駕駛車還遠達不到這麼先進。未來人機互動正朝著更加智慧的方向發展,以便更好的理解人的意圖。
2. 人機互動的過程
人機互動分為 2 個過程:一是人對車下達指令,二是車對人的反饋。如圖 2.15 所示。
圖 2.15 人機互動過程
人對車下達指令最直接的需求就是告訴汽車,我要從哪裡上車,目的地是哪裡。這是出行最本質的需求,目前的無人駕駛叫車服務,提供的還是點對點的服務,也就是說你無法選擇起點和終點,只能選擇固定線路,真正的無人駕駛服務應該提供任意點到點的服務。透過滴滴叫車時,我們可能不止一次因為手機定位不準,需要打電話給司機溝通上車地點。而無人駕駛車沒有司機,如果乘客的定位不準,那麼如何和無人車確認上車地點就成了問題,因此解決人和車的溝通問題在無人駕駛叫車中顯得尤為重要。
未來,人對車的指令會由單純的機械指令變的更加抽象,只需要指定一系列行為,無人駕駛車會自動完成這一過程,現在已經實現的功能就有自適應巡航和自動泊車等。
車對人的反饋包括通知乘客無人駕駛車當前的狀態、位置、速度以及電池的電量等。同時人機互動系統還需要提示是否發現了潛在的威脅,以及車準備做出的決策,乘客憑藉這些資訊能夠知道駕駛過程是否安全。如果無人駕駛車出現了故障,人機互動系統還需要發出警報提醒乘客。
圖 2.16 特斯拉 model3 互動介面
除了功能上的互動,還需要關注車載服務的互動。自動駕駛普及之後,車不僅僅是作為交通工具,更像是一個私密場所了,人們可以在車內辦公、娛樂、遊戲和休息。車內的娛樂和影音服務都會升級,乘車可能變得更有樂趣而言了。
上述都是對乘客友好的互動設計,對工程師和維護人員而言,無人駕駛車最好能夠提供一些診斷介面,方便檢視當前的硬體健康狀態、軟體版本和車輛維護資訊等。診斷介面是工程師發現問題和維護車輛不可或缺的手段。
3. 人機互動方式
按鈕是最古老的人機互動方式之一,目前已經被越來越多的電子螢幕所替代。按鈕的方式非常可靠,常常用來啟動無人駕駛車的自動駕駛模式,或者當做緊急按鈕使用。
圖形介面是目前最多采用的互動方式。透過圖形介面可以下發控制命令,也可以顯示無人車的反饋資訊。目前汽車中整合了越來越多的電子螢幕用來做人機互動。
最理想的方式是透過語音互動,我們不止一次的在科幻片中看到雖然飛船駕駛倉裡有著各式各樣的控制按鈕,但是最後飛船指揮官都是透過簡單的對話來駕駛飛船。無人駕駛車也是類似,但以目前的自然語言處理技術,還遠達不到這種程度。駕駛過程中的噪音也會對語音識別產生影響。當遇到多個乘客一起交談的時候如何理解語境也會變得非常困難。
隨著技術的發展,目前越來越多的互動方式加入到了汽車之中,例如指紋識別、人臉檢測以及手勢控制等。相信未來無人駕駛車的互動方式會變得越來越智慧和人性化。
2.5.2 V2X
1. 什麼是 V2X?
V2X(Vehicle-to-Everything),是車和外界進行通訊互聯的技術。V2X 是車聯網的重要組成部分,主要目的是為了保障道路安全、提高交通效率和節省汽車能源。美國國家公路交通安全管理局(NHTSA)估計,如果實施 V2V 系統,至少可以減少 13%的交通事故,從而每年減少 43.9 萬次車禍。
目前有 2 種 V2X 的通訊技術。
基於區域網的技術(DSRC)
基於蜂窩網的技術(C-V2X)
2012 年,IEEE 首先透過了基於區域網的 V2X 技術規範,它支援車和車以及車和基礎設施之間的直接通訊,這項技術稱為專用短距離通訊(DSRC)。DSRC 使用 802.11p 提供的基礎無線電通訊。
2016 年,3GPP 釋出了基於 LTE 的 V2X 標準。它也稱為 C-V2X 技術用以區別基於區域網的 V2X 技術。在直接通訊的基礎上,C-V2X 還支援透過蜂窩網路(V2N)進行廣域通訊。
儘快存在一些爭議,但是在 2017-2018 年由 5G 汽車協會 (5GAA) 進行的一些研究和分析表明基於蜂窩的 C-V2X 技術在效能、通訊規範和可靠性等多個方面均優於 DSRC。
V2X 的應用場景分為 2 類:一類是道路安全;一類是交通管理。
V2X 可以有效避免交通事故,這類事故往往是剎車不及時,或者沒有足夠的視野範圍導致的。V2X 能夠在靠近車輛之前提供預警,在一些十字路口沒有視野範圍的時候,能夠提示乘客有車輛匯入。
V2X 還用於交通管理,監控當前的交通狀況,動態的控制交通,減少交通擁堵。
2. 展望
V2X 不僅僅證明能夠減少交通事故,還能改善現有的交通狀況,最後 V2X 還能夠解決目前無人駕駛面臨的一些難題。
紅綠燈和交通標誌識別一直是無人駕駛中很重要的一個問題。在一些城市主幹道路口,交通標誌非常密集,邏輯也十分複雜,以目前的人工智慧水平還不足以理解分析交通標誌的邏輯。同時目前都是採用攝像頭做紅綠燈識別,而攝像頭在光照變化和夜晚的時候,識別效果會大打折扣,但採用 V2X 技術可以輕鬆的解決上述問題。
除此之外,視野範圍一直是自動駕駛保持安全的重要指標。單獨依靠無人駕駛車自身的感測器來獲取遠處的視野有著諸多限制,而依託 V2X 技術,能夠讓無人駕駛車看的更遠,還能夠獲取十字路口等一些感測器視野看不到的地方。
最後,無人車往往無法有效預測緊急剎車的汽車和突然從路邊出現的行人。而裝備有 V2X 裝置的汽車在做出緊急剎車時,能夠立刻通知後車減速,避免追尾。同時無人車能夠及時發現佩戴有 V2X 電子裝置的行人,而不需要進行大量的感知運算。
可以預見未來 V2X 對自動駕駛會是一個非常好的補充。
2.5.3 黑匣子
1. 什麼是黑匣子?
事件資料記錄器 (EDR) 是用於記錄汽車駕駛狀態的裝置。在現代的柴油卡車中,EDR 在發動機出現故障或車速陡然變化的時候觸發記錄資料。在發生車禍之後收集來自 EDR 的資訊,並對其進行分析,以確定事故發生的原因。EDR 一般將資訊記錄在防篡改的讀寫裝置中。
2. 原理
一些 EDR 不停的儲存資料,覆蓋幾分鐘之前寫入的資料,直到發生車禍之後停止覆蓋。還有一些 EDR 透過在碰撞之前的一些徵兆例如速度突然變化觸發寫入資料,直到發生事故之後結束。EDR 會錄製多方面的資料,包括是否使用了制動、撞擊時候的速度、轉向角以及座椅安全帶狀態等。雖然本地可以儲存資料,但是一些車還是會把資料上傳到遠端的資料中心進行分析和儲存。
3. 應用場景
EDR 主要用來分析事故原因,以及提供事故發生時候的法律依據。目前行車記錄儀實際上已經具備了部分的記錄功能,並且可以作為交通事故的證據。
在無人駕駛領域,黑匣子的主要目的是為了記錄事故發生的原因,用來分析無人駕駛車是否做出了錯誤的決定。當然無人駕駛車需要儲存的資訊可能更多,用以方便跟蹤問題。
2.6 總結
硬體可以理解為人的大腦和骨骼,而軟體則是人的思想。無人駕駛硬體需要具備哪些特性呢?下面主要從外觀、視野、操控、效能和適應性 5 個方面來介紹對無人駕駛硬體的要求。
2.6.1 外觀
無人駕駛車上加裝的鋼骨架和感測器很影響汽車的美觀,作為無人駕駛從業人員,可能慢慢接受了這種外觀,但要讓大眾能夠接受這種審美,還有漫長的路要走。人們不會為醜的東西買單,隨著無人駕駛定製車型的出現,無人車的外觀比之前已經有了很大的改觀。
如圖 2.17 所示,左圖為第一代無人車,DARPA 挑戰賽上奪冠的無人車 "Stanley",右圖為 Waymo 最新的無人駕駛車。
圖 2.17 無人車 & amp;quot;Stanley"(左)Waymo 無人車(右)
有什麼車不那麼在乎外觀呢?卡車。由於卡車不是私人所有,主要是考慮運輸功能,所以卡車可以相對任意的架設裝置,比較少的考慮外觀。圖 2.18 所示為 OTTO 公司的無人駕駛卡車。
圖 2.18 OTTO 公司的無人駕駛卡車
接下來再看如何設計無人車車頂的感測器模組,為什麼希望能夠模組化感測器模組呢?顯而易見的場景是採集地圖,如果在車上安裝支架,需要先改裝車,之後再安裝感測器,最後再把車開到目的地去採集地圖。如果地圖採集車在深圳,客戶在北京,車開過去的成本太高了。如果能整合好感測器模組,把模組快遞過去,再安裝到車上,對方只需要接一個電腦,透過簡單的校正就可以工作了,成本相對低很多。感測器模組如圖 2.19 所示。
圖 2.19 感測器模組示意圖
2.6.2 視野
無人駕駛車一個很重要的方面是視野,看的更廣和看的更遠,這是無人駕駛車安全的重要保障。
1. 如何做到全視野
如果可以,我們希望無人駕駛車具有 360° 的視野範圍。拿卡車和小汽車舉例子,如圖 2.20 所示,可以看到卡車的視野盲區是很大的,之前有交通事故報導,在卡車停車後,貼近車頭有行人透過,這時候行人在司機的視野盲區,卡車司機看不到行人啟動卡車後導致車禍。
圖 2.20 卡車和小汽車的視野對比
除了汽車型號帶來的視野差異之外,感測器數量太少也會導致視野盲區,增加多個感測器可以解決這個問題。如圖 2.21 所示,針對 1 個鐳射雷達出現的視野盲區,在無人車的左右分別增加 1 個鐳射雷達之後,擴大了視野範圍。
圖 2.21 鐳射雷達視野盲區
另外感測器的位置也影響到無人駕駛車的視野範圍。在路口拐彎處,特別是一些盤山公路,感測器的位置在車的中部和前部展現的視野範圍也不一樣。如圖 2.22 所示,安裝在車前部位置的感測器可以更早的發現障礙物。
圖 2.22 不同安裝位置的感測器視野範圍對比
除了這些考驗之外,還面臨其它一些特殊場景的視野挑戰。當汽車透過拱橋時即使在車頭位置安裝有感測器,由於車的俯仰角度,也很難發現障礙物;感測器的位置也可能帶來視野融合的問題,比如鐳射雷達看到了障礙物 B 而攝像頭沒有看到,融合的時候不能確定以哪個感測器的結果為準;由於毫米波雷達的垂直視野很窄,由坡導致的遮擋問題發現不了障礙物;另外當遇到特殊情況如:卡車拖著鋼筋、樹木等,由於障礙物很稀疏,靠雷達很難確認這類障礙物。上述場景分別如圖 2.23 所示。
圖 2.23 特殊場景視野盲區示例
最好的辦法是開發一款工具來識別汽車的視野盲區,在工具中設定好感測器的位置之後,可以檢視汽車視野盲區有多大,從而幫助工程師確定無人車感測器的個數和位置。
2. 如何做到遠距離視野
看的遠的好處在於車在高速行駛過程中,可以更早的發現潛在的危險。距離越遠鐳射雷達採集到的點就越稀疏,目前鐳射雷達最遠的視野範圍是 100-150m 左右。攝像頭和毫米波雷達的視野範圍更遠,採用攝像頭可以看到約 1000m 左右的視野。
綜上,透過鐳射雷達、毫米波雷達和攝像頭冗餘搭配,無人駕駛車既能獲取遠距離的視野,又能兼顧 360° 的視野範圍。如圖 2.24 所示,展示了無人車整體合理的感測器佈置,保證無人車獲取足夠安全的視野範圍。
圖 2.24 無人車整體感測器佈置
3. 天氣對視野的影響
天氣對視野的影響有 2 方面:一是會影響視野可見性,二是影響視野範圍。下面我們來分析天氣對感測器的視野有哪些影響。
霧霾。霧霾對鐳射雷達的影響最大,因為鐳射的波長和霧霾顆粒的大小差不多,穿透不了霧霾。同時攝像頭在霧霾的時候也會影響視野範圍,而毫米波的波長較長,可以繞過霧霾顆粒,受到的影響較小。
下雨。下雨對攝像頭的影響比較大,下雨會使得鏡頭模糊,如果雨很大,只能依賴車內的攝像頭。下雨對鐳射雷達和毫米波雷達的影響相對比較小。
光照。光照對攝像頭的影響最大,當強光照射(對面遠光燈直射),光線很暗(夜晚)或者光照突然變化(隧道出口)的時候,都會導致攝像頭失靈。目前有一些研究為了解決光照對攝像頭的影響,一種方法是對攝像頭做處理,來適應不同的曝光率,另外一種方法是提取光照不變特徵,即使環境光照變化,也不會影響這些特徵的提取。由於鐳射雷達是主動發射型裝置,所以光照的變化對鐳射雷達影響不大。毫米波雷達發射的是電磁波,可見光對毫米波雷達幾乎沒有影響。
下雪。下雪對攝像頭,鐳射雷達,毫米波雷達都有影響。
總之,每種感測器都有它的優點和缺點,只能透過適當的感測器冗餘和感測器融合來得到近似完美的視野。
圖 2.25 不同感測器對比
2.6.3 操控
我們到底需要什麼樣的汽車底盤?是採用現有的設計還是直接跳過去生產下一代。下面我們來看下無人駕駛車的操控。
圖 2.26 Zoox 無人駕駛車
Zoox 對汽車操控的設計非常超前,平時我也有這種想法,為什麼每次停車的時候都要倒車進去,而不是直接開進去呢?Zoox 就是為了解決這個問題而生的,Zoox 認為汽車有前後之分是人類的操控習慣,機器不存在這個問題,機器可以同時控制前輪,甚至後輪的方向,機器不需要汽車區別前進和後退。因此 Zoox 生產的車是沒有方向的,甚至憑藉車內的座椅也區分不出前後。如圖 2.27 所示。
圖 2.27 Zoox 的無人駕駛車設計
從人類的角度我們確實難以接受沒有方向的車,但是可以同時控制前輪和後輪,車的操控確實簡單了很多。
1. 倒車的時候方便了很多
如果是傳統有方向的車,我們先要開車過去,然後再分為 4 步倒車入庫,如圖 2.28 所示。而無方向的車就簡單多了,停車的時候直接開車進去,離開的時候直接開車出來,因為沒有方向,向前和向後行駛對機器來說沒有任何區別。
圖 2.28 停車示意圖
2. 可以原地轉彎
當前的汽車轉向模型可以抽象為單車模型,也就是前輪轉向。如圖 2.29 所示,假設車的後輪也可以轉向,就可以把汽車轉向模型抽象成 2 輪自平衡小車,實現原地 360° 轉向。學車的時候最怕一會前進檔,一會倒擋,很容易搞混往哪個方向打方向盤,而機器就不存在這樣的問題。前後輪都可以轉向的好處是可以實現原地轉彎,以後再也不用擔心狹窄路段掉不過頭來的情況。
圖 2.29 轉彎示意圖
Zoox 專門為機器而設計的下一代操控為無人駕駛操控系統提供了新的思路,未來無人駕駛車也許會採用這種設計。
2.6.4 效能
無人駕駛車在提升效能的同時要控制功耗,保證效能和功耗的平衡。
1. 提升效能
人們一直希望汽車效能強勁,同時功耗很低。半導體行業一直遵循著摩爾定律,即每 2 年的效能翻一番。摩爾定律促進了整個 PC 時代的發展,但摩爾定律將要失效了,目前矽基的製程最多到 7nm,再往前進一步已經相當困難。因為距離近了會漏電,擊穿矽晶體,導致晶片良品率太低。製程的降低首先可以減少功耗,其次可以提升效能,目前來看由於摩爾定律的失效,通用 CPU 的效能會在很長一段時間內陷入停滯狀態。
要提升效能,可以採用專門用來處理神經網路的晶片,比如 TPU,可以超快地處理神經網路大量的乘法和加法運算,而且耗電量顯著降低。也可以採用 FPGA 和專用 ASIC 晶片,把感測器融合演算法和底層演算法融入硬體,促進無人車系統的模組化發展。
2. 功耗的影響
接著再看功耗對無人車的影響。首先帶來的影響是供電,功耗太高會影響無人車的續航。以無人車實時的運算開銷為 2KW 估算,無人車的電池容量為 75kWh (千瓦時),那麼電池可以使用的時長是 37.5 小時。這還僅僅是運算的開銷,還沒有算車本身的動力開銷。由於能源緊張,無人車需要考慮限制功耗。
功耗太高帶來的另外一個問題是散熱,風扇不能滿足大規模散熱需求,只能採用水冷散熱。很早以前汽車發動機是拿自來水冷卻的,過一段時間就需要加水,現在有水冷散熱片就不用了。原理是把水放在銅管裡,迴圈流動散熱。加水有 2 個壞處,一是北方的冬天經常零下幾度,自來水會結冰,凍住之後水的體積會變大,把發動機撐壞;二是水會沸騰,如果變為水蒸氣,銅管會爆炸。所以目前的水冷液是在水中加入了防凍液和各種專門用途的防腐劑組成的混合物,防凍,沸點也會到達 120 度左右,也就很好的解決了上面的問題。
最後還要注意出風口和進風口。如果把計算單元放在後備箱,沒有出風口和進風口,熱量很難散發出去。
2.6.5 適應性
良好的適應性代表著無人駕駛車能夠戰勝複雜多變的環境。我們先看下我們處在什麼樣的環境下,然後再看我們面臨著哪些挑戰。如果有一天人類殖民火星了,一定會有人把汽車廠家告上法庭,因為他們沒有備註這點:“地球生產的車不適用於火星”。
圖 2.30 無人車後備箱整體結構
如圖 2.30 所示為無人車後備箱的整體結構,安裝有電源、運算單元、網路裝置以及各種資料線等,它們會面臨著以下 5 項挑戰。
振動。機械硬碟最怕震動,汽車長期處於顛簸狀態,因此只能採用固態硬碟。電路板也很怕震動,電路板的表面刷了一層絕緣膠,如果設計的不好,結構件經常摩擦電路板,會把絕緣層磨掉,導致電路直接燒燬,產生災難性的後果。
溫度。夏天環境溫度可能就達 40-50°,如果汽車在室外暴曬,同時機箱還在產熱,晶片的實際工作溫度會更高。汽車硬體要求的溫度範圍非常高,僅次於航天,需要硬體能夠在 - 40°~120° 的溫度範圍內工作,可以說目前無人車大部分的元器件還達不到要求。
溼度。溼度太高會導致電路進水短路。
鹽。在海邊的城市,空氣中鹽分很高,對汽車元器件有很強的腐蝕性。
電磁。大功率的計算單元會產生電磁輻射,影響高速匯流排的訊號質量,導致傳輸錯誤的資料。
外觀、視野、操控、效能和適應性都是無人車量產必須考慮的問題,無人車想要普及,必須要解決以上問題。最後我們希望無人車具有酷炫的外觀、廣闊的視野、完美的操控、強勁的效能和極低的功耗,同時還能夠適應各種複雜多變的環境。
2.7 參考資料
【1】 A Survey of Autonomous Driving: Common Practices and Emerging Technologies
【2】 Junior: The Stanford Entry in the Urban Challenge
知乎連結:https://zhuanlan.zhihu.com/p/180517459?utm_source