如果你使用的是 Windows 系统,那么我强烈建议换成 Linux 系统的电脑进行自动驾驶方向的研究。虽然 Carla 也支持 Windows Build, 但是后续要用到 ROS 和 Autoware 的时候还用 Windows 可能会出各种兼容问题。
CARLA 可以使用 Pre-comiled 版本,但是在这里我是打算 build from source. 为什么呢?一个是方便未来自己修改 carla 内部代码,实现更 customized 的功能,另外 build from source 往往会给你更多的错误提示。

# 系统配置要求

  • Ubuntu 14.04/16.04/18.04. Ubuntu 20.04 也可以 Build Carla, 不过 Autoware 不支持,所以不建议使用该版本
  • Nvidia Drvier 提前安装好,并且电脑配置一个至少 3G 的 GPU.
  • Clang
  • 网络连接良好
  • 硬盘里至少预存 100G 空间

# 安装依赖包

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/$(lsb_release -c --short)/ llvm-toolchain-$(lsb_release -c --short)-8 main" &&
sudo apt-get update

Note: 如果你 sudo apt-get update 时出现 404 之类的错误,建议参考以下两个链接

如果你使用的是 Ubuntu18.04, 还要额外输入以下指令:

sudo apt-get install build-essential clang-8 lld-8 g++-7 cmake ninja-build libvulkan1 python python-pip python-dev python3-dev python3-pip libpng-dev libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf libtool rsync libxml2-dev &&
pip2 install --user setuptools &&
pip3 install --user setuptools

# 环境配置

我们要保证 CARLA 和它的引擎 UNREALENGINE 用的是一个版本的 Clang

sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/lib/llvm-8/bin/clang++ 180 &&
sudo update-alternatives --install /usr/bin/clang clang /usr/lib/llvm-8/bin/clang 180

把你的 GithubUnrealEngine 连接到一起。因为 UnrealEnginerepoprivate 的,如果你的 github 没有连接到一起,是无法下载引擎 Repo

  • 安装 git:
sudo apt install git
  • 注册一个 UnrealEngine 的帐号:
    https://www.unrealengine.com/zh-CN/feed​www.unrealengine.com
  • 将你的 GithubUnrealEngine 关联,具体如下:
    使用经过验证的 Epic Games 帐户登录 www.unrealengine.com,单击网站标题栏中的用户名,然后选择个人选项。
    从菜单中选择连接的帐户。
    单击 GitHub 图标下方的连接按钮。
    查看《虚幻引擎最终用户许可协议》并选中对应复选框接受该协议,然后单击关联您的帐户按钮(如果已经接受了最新版本的《虚幻引擎最终用户许可协议》,则不会显示该提示)。
    登录现有 GitHub 帐户
  • 单击授权按钮,完成关联流程
    在进行下一步之前,进入 https://github.com/EpicGames - Connect to preview 来查看你是否能看到一个叫做 UnrealEnginerepo , 如果能,说明你关联成功了。

# 安装 Unreal 引擎

git clone --depth=1 -b 4.24 https://github.com/EpicGames/UnrealEngine.git ~/UnrealEngine_4.24
cd ~/UnrealEngine_4.24
./Setup.sh && ./GenerateProjectFiles.sh && make

检查 Unreal 引擎是否工作

cd ~/UnrealEngine_4.24/Engine/Binaries/Linux && ./UE4Editor

Clone Carla Github , 在这个教程里我将使用 0.9.10 版本。

cd ~
git clone https://github.com/carla-simulator/carla
cd ~/carla
git checkout tags/0.9.10 -b <branch_name>
./Update.sh

把 UnrealEngine 的路径加到 bashrc 里面

export UE4_ROOT=~/UnrealEngine_4.24

# 安装与测试

Make Carla Python API

make PythonAPI
make launch

make launch 第一次初始化会时间长一些,之后好很多。如果 Make 成功,一个 GUI 就会弹出来,就是我们的仿真界面啦!开始之前记得点 Play
不要刚才弹出的界面关掉,另开一个 terminal , 输入以下指令。如果一切都顺利,你应该看到和下图比较类似的情形。

cd ~/carla/PythonAPI/examples
python3 automatic_control.py

# 常见问题

Q1:为什么找不到 CarlaUE4.sh?

Answer: 因为只有 precompiled 版本才有,我们 build from source 是木有的。执行以下指令等同于直接使用 CarlaUE4.sh :

$ cd Unreal/CarlaUE4
$ ~/UnrealEngine_4.XX/Engine/Binaries/Linux/UE4Editor "$PWD/CarlaUE4.uproject"
Q2: 为什么我运行 python3 automatic_control.py 的时候会自己terminated?

Answer: make Launch 或者执行 ~/UnrealEngine_4.XX/Engine/Binaries/Linux/UE4Editor "$PWD/CarlaUE4.uproject" 后,你没有点击图形界面上绿色三角 “Play" 按钮

Q3:我的电脑明明很强大,为什么在玩automatic_control的时候server fps 只有3fps?

Answer: GO Editor->Preference->Performance->uncheck “use less cpu while in background”