天天看點

自動駕駛仿真平台Carla從入門到放棄

一、Carla的基本概念

自動駕駛仿真平台Carla從入門到放棄

人工智能、5G和V2X技術的不斷發展使得自動駕駛成為可能。近幾年,自動駕駛發展迅速,在科技新聞上經常可以看到自動駕駛的身影,而從事自動駕駛相關軟、硬體研究的高效研究所和公司也越來越多,既有傳統的汽車巨頭,也有新興的電動車巨鳄,既有網際網路巨頭,也有初創企業,自動駕駛可謂是風口是上的風口。

自動駕駛的落地需要使用大量的資料訓練模型,同時也需要完成大量的不同駕駛環境的驗證。然而大量的訓練資料和環境驗證全部都使用實車進行測試是不現實的,因為涉及到成本問題,周期問題,更重要的是很多場景在現實環境中并不能複現,比如前方的車輛突然失控。是以科學家和從業人員希望能夠通過計算機實作環境的仿真。這篇部落格将介紹一個應用于自動駕駛環境仿真的軟體Carla,Carla是英特爾實驗室和巴塞羅那的計算機視覺中心聯合開發的開源項目。此外,從業人員和學習者沒有條件使用真實的環境極性學習,仿真環境也給他們提供了一個深入學習自動駕駛領域的機會。

1. 架構

對于學習和使用Carla而言,第一件事情就是掌握Carla環境的架構。在Carla的官方文檔中https://carla.readthedocs.io/en/latest/用下邊這樣一張圖直覺的說明了Carla環境的構架,以及應該如何去使用這個架構。

如下圖所示,Carla是一伺服器/用戶端形式的架構,所謂的伺服器就是仿真環境本身(Simulator),為圖中左側部分,Simulator是仿真環境的主體,所有在真實的汽車駕駛環境中具有的東西都在裡邊有展現,包括:車輛,行人,路橋,信号燈,訓示牌,天氣,建築等等,Simulator的目的就是實作一個真實的世界。

自動駕駛仿真平台Carla從入門到放棄

而作為世界的參與者,像車輛,行人,信号燈,以及天氣光線等等這些在真實的世界中是移動和變化的,要模拟真實的環境,其實就是要模拟這些變化,比如要讓一台車超速行駛,比如想讓天氣是雨天等等,這就是用戶端的作用了。除此之外,環境還提供了各種傳感器(攝像頭,雷達等等),我們可以将傳感器配備到車輛上,用于資料收集和自動駕駛的訓練以及車輛的控制。Carla環境會将所有必要的用來控制世界參與者的接口都暴露出來了(以Python的形式,也有C++),供用戶端來調用,一方面用戶端可以讀取到環境的資料,另一方面用戶端可以像環境中的各種參與者發送控制指令控制他們的行動和變化。

到這裡,我們對怎麼使用這個環境已經有一個比較清晰的認識了,那就是,将伺服器環境(即仿真器)啟動,然後就不用理會它了,剩下的所有的代碼和算法其實都是使用Python庫來作為用戶端通過調用API的方式跟仿真器互動。

2. 運作伺服器(仿真器)

Carla是開源項目,是以可從它的GitHub倉庫中下載下傳最新的仿真器,Carla是基于UnrealEngine實作的,目前Linux和Windows版本。此外,由于Carla需要渲染3D模型,是以Carla需要一定性能的GPU。(我的桌上型電腦C24小方糖用的GPU是1050ti,卑微的在讀博士打工仔。:sob:

自動駕駛仿真平台Carla從入門到放棄

下載下傳CARLA_0.9.11.zip 後将其解壓,以Windows環境為例,将包含下邊這些檔案夾和檔案,通過輕按兩下CalaUE4.exe就可以啟動伺服器環境了,官方也提供了一些用戶端實作的例子,在PythonAPI檔案夾中可以找到。

自動駕駛仿真平台Carla從入門到放棄

啟動之後會出現如下圖所示的3D環境,在環境中隻有靜态的物體,比如建築、道路,使用者可以通過按住滑鼠左鍵并移動滑鼠來切換視角,并使用ASWD來前進後退來觀察這個環境,但是并不能跟環境互動。如前邊所說,跟仿真環境的互動,需要使用PythonAPI以用戶端的形式來進行。

自動駕駛仿真平台Carla從入門到放棄

3. 用戶端

使用Carla環境的過程其實就是實作各種滿足我們目标的用戶端的過程。在下載下傳到的Carla包中有一個PythonAPI的檔案夾,裡邊的内容包括:

  • carla檔案夾 - 包含carla python庫,即Python對Carla接口的封裝,由于這個庫還沒有放到PyPi,是以不能使用pip的方式安裝,隻能手動安裝carla python庫到Python環境中
  • examples檔案夾 - 包含示例代碼,可以運作和閱讀檔案夾中的代碼來學習Carla的使用
  • util檔案夾 - 提供了一些友善的腳本,用于配置carla環境
自動駕駛仿真平台Carla從入門到放棄

3.1 carla庫的安裝

carla\dist檔案夾中包含了egg格式的檔案,名稱類似于:carla-0.9.11-py3.7-win-amd64.egg,這個就是carla的python庫,我們需要手動安裝一下,運作以下指令來實作安裝。

3.2 執行示例代碼

當庫安裝完畢以後,我們可以運作其中一個代碼來直覺的感受下。這是運作PythonAPI\examples中automatic_control.py的效果,automatic_control.py檔案實作了自動駕駛的demo。

自動駕駛 carla仿真 Demo

參考文獻:

  1. https://pythonlibrary.net/2020/04/05/carla-autonomous-driving-simulator-intro/
  2. https://pythonlibrary.net/2020/04/12/carla-autonomous-driving-simulator-core-concepts/
  3. https://pythonlibrary.net/2020/04/18/carla-autonomous-driving-simulator-vehicle-detection/
  4. https://pythonlibrary.net/2020/05/09/carla-autonomous-driving-simulator-traffic-manager/
  5. http://carla.org/