1 CARLA模擬器
1.1 介紹
CARLA是用於自動駕駛研究的開源模擬器。CARLA是從零開始開發的,旨在支持自動駕駛系統的開發,訓練和驗證。除了開源代碼和協議,CARLA還提供了爲此目的而創建且可以免費使用的開放數字資產(城市佈局,建築物,車輛)。該仿真平臺支持傳感器套件的靈活規範,環境條件,對所有靜態和動態參與者的完全控制,地圖生成等等。
如果您希望在與我們的CoRL’17論文相同的條件下對模型進行基準測試,請查看基準測試。
相關資料:
- 主頁:http://carla.org/
- 文檔:https://carla.readthedocs.io/en/latest/
- GitHub:https://github.com/carla-simulator/carla
1.2 特色功能
- 通過服務器多客戶端架構實現可擴展性:同一節點或不同節點中的多個客戶端可以控制不同的參與者。
- 靈活的API:CARLA公開了功能強大的API,使用戶可以控制與模擬相關的所有方面,包括交通生成,行人行爲,天氣,傳感器等。
- 自動駕駛傳感器套件:用戶可以配置各種傳感器套件,包括激光雷達,多個攝像頭,深度傳感器和GPS。
- 用於規劃和控制的快速仿真:此模式禁用渲染以提供不需要圖形的交通仿真和道路行爲的快速執行。
- 地圖生成:用戶可以通過RoadRunner之類的工具輕鬆遵循OpenDrive標準創建自己的地圖。
- 交通場景模擬:我們的引擎ScenarioRunner允許用戶基於模塊化行爲定義和執行不同的交通狀況。
- ROS集成:CARLA通過我們的ROS-bridge與ROS集成
- 自主駕駛基準:我們以CARLA中可運行的代理程序(包括AutoWare代理和條件模仿學習代理)的形式提供自主駕駛基準。
2 CARLA生態系統
與CARLA仿真平臺相關的存儲庫:
- Scenario_Runner:在CARLA 0.9.X中執行交通場景的引擎
- ROS-bridge:用於將CARLA 0.9.X連接到ROS的接口
- Driving-benchmarks:用於自動駕駛任務的基準工具
- Conditional Imitation-Learning:在CARLA中訓練和測試條件模仿學習模型
- AutoWare AV stack: Bridge to connect AutoWare AV stack to CARLA
- Reinforcement-Learning:在CARLA中運行條件強化學習模型的代碼
- Map Editor:獨立的GUI應用程序可通過交通信號燈和交通標誌信息來增強RoadRunner地圖
喜歡你看到的嗎?在GitHub上爲我們加註星標以支持該項目!
3 論文
如果您使用CARLA,請引用我們的CoRL’17論文。
CARLA: An Open Urban Driving Simulator
Alexey Dosovitskiy, German Ros, Felipe Codevilla, Antonio Lopez, Vladlen Koltun; PMLR 78:1-16 [PDF] [talk]
@inproceedings{Dosovitskiy17,
title = {{CARLA}: {An} Open Urban Driving Simulator},
author = {Alexey Dosovitskiy and German Ros and Felipe Codevilla and Antonio Lopez and Vladlen Koltun},
booktitle = {Proceedings of the 1st Annual Conference on Robot Learning},
pages = {1–16},
year = {2017}
}
4 安裝
使用git clone或從此頁面下載項目。請注意,master
分支包含最新的修補程序和功能,最新的穩定代碼可能最好切換到stable
分支。
然後按照“如何在Linux上構建或如何在Windows上構建”中的說明進行操作。
不幸的是,我們還沒有在Mac上構建的正式說明,請檢查問題#150的進度。
注意:CARLA需要Ubuntu 16.04或更高版本。
4.1 安裝構建工具和依賴項
sudo apt-get update
sudo apt-get install wget software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
sudo apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main"
sudo apt-get update
sudo apt-get install build-essential clang-7 lld-7 g++-7 cmake ninja-build libvulkan1 python python-pip python-dev python3-dev python3-pip libpng16-dev libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf libtool rsync
pip2 install --user setuptools
pip3 install --user setuptools
提示:對於Ubuntu 18.04,將上一個示例中的libpng16-dev
更改爲libpng-dev
。
爲了避免Unreal Engine和CARLA依賴項之間的兼容性問題,最好的配置是使用相同的編譯器版本和C++運行時庫編譯所有內容。我們使用clang 6.0和LLVM的libc++。我們建議更改默認的clang版本以編譯Unreal Engine和CARLA依賴項
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/lib/llvm-7/bin/clang++ 170
sudo update-alternatives --install /usr/bin/clang clang /usr/lib/llvm-7/bin/clang 170
4.2 構建Unreal Engine
注意:Unreal Engine存儲庫設置爲私有。爲了獲得訪問權限,您需要在 www.unrealengine.com 上註冊時添加GitHub用戶名。
下載並編譯Unreal Engine 4.22。在這裏,我們假設您將其安裝在~/UnrealEngine_4.22
上,但是您可以將其安裝在任何位置,只需在必要時替換路徑即可。
git clone --depth=1 -b 4.22 https://github.com/EpicGames/UnrealEngine.git ~/UnrealEngine_4.22
cd ~/UnrealEngine_4.22
./Setup.sh && ./GenerateProjectFiles.sh && make
如果以上任何步驟失敗,請查看Unreal的文檔“Building on Linux”。
4.3 構建CARLA
從我們的GitHub存儲庫克隆或下載項目
git clone https://github.com/carla-simulator/carla
現在您需要下載資產包,爲此,我們提供了一個方便的腳本來下載並提取最新版本。
注意:此包的大小爲3GB以上,此步驟可能需要一些時間,具體取決於您的連接。
提示:(可選)您可以下載aria2(使用sudo apt-get install aria2
),因此以下命令將利用它,並且運行速度會更快。
./Update.sh
爲了讓CARLA找到您的Unreal Engine的安裝文件夾,您需要設置以下環境變量:
export UE4_ROOT=~/UnrealEngine_4.22
您也可以將此變量添加到~/.bashrc
或~/.profile
中。
現在已經建立了環境,您可以使用make運行不同的命令並構建不同的模塊:
make launch # Compiles the simulator and launches Unreal Engine's Editor.
make PythonAPI # Compiles the PythonAPI module necessary for running the Python examples.
make package # Compiles everything and creates a packaged version able to run without UE4 editor.
make help # Print all available commands.
4.4 Assets repository(僅限開發)
我們的3D資產,模型和地圖也有一個公開可用的git存儲庫。我們定期將最新更新推送到此存儲庫。但是,僅建議開發人員使用此版本的內容,因爲我們經常有正在進行的工作圖和模型。
處理該存儲庫需要在您的計算機中安裝git-lfs。將此存儲庫克隆到Unreal/CarlaUE4/Content/Carla
:
git lfs clone https://bitbucket.org/carla-simulator/carla-content Unreal/CarlaUE4/Content/Carla
建議使用git lfs clone
進行克隆,因爲這在舊版本的git中明顯更快。
5 常見問題解答
如果您遇到問題,請查看我們的常見問題解答。
6 協議
CARLA特定代碼在MIT許可下分發。
CARLA特定資產根據CC-BY許可進行分配。
由RSS Integration build variant編譯和鏈接的ad-rss-lib庫引入了僅限LGPL-2.1的許可。
請注意,UE4本身遵循其自己的許可條款。
注:開源協議非常重要,後期如果商用一定要遵守協議纔行。