Carla 安装详细教程 —— Ubuntu 20.04 安装 Carla
简介
自动驾驶算法的调试和效果评测首先要在仿真环境中去做,因此,一个强大、灵活的仿真环境是开发、测试过程中必不可少的要素。我们在查找可用的仿真工具时主要关注以下几个特性:
-
开源,免费;
-
包含高速场景;
-
可以便捷的控制、切换场景的环境,且场景、环境尽可能的丰富与真实;
-
可以便捷的控制、切换场景内移动物体(如车辆、行人等)的行为模式,且行为模式尽可能的丰富与真实;
第 1 条基本上把商用的软件排除掉了,如 PreScan,VTD 等······。事实上,在论文库的检索过程中,CARLA 的出现频率是最高的,因此本文将介绍该软件及其安装和使用方法
Carla 是一个自动驾驶仿真框架。具有如下特点:
-
环境基于 Unreal Engine 4 开发;
-
完全开源;
-
包含 C++ 和 Python 全部开放接口;
-
以 Carla 仿真环境为核心构建的仿真生态链逐步支持各种自动驾驶仿真标准或规则,比如支持 OpenDrive 和 OpenScenario 标准,支持 Responsibility Sensitive Safety(RSS);
-
以 Carla 仿真环境为核心构建的仿真生态链逐步支持各种自动驾驶工具或者框架比如 ROS, SUMO,PTV-Vissim 等;
-
产品更新迭代速度相对较快;
-
有英特尔,丰田,通用等大公司支持
Carla 官网如下:Carla
Carla国内资料和资源分享网站:Carla 中文站
Carla源码下载地址:Carla github 源码仓库
这里我们需要下载 ubuntu 对应的安装包
安装前准备
硬件环境
Carla 是一款基于 Ue4 开发的仿真模拟软件,所以对硬件的要求比较高,推荐配置如下:
Carla 官网推荐显存 8G, 内存最好大于 16G 硬盘大于 100G , 虽然没说 CPU 的要求,但是 CPU 最好也配一个好一点的,最好配十代 i7 以上的 CPU
CPU : I7 10750+
GPU:英伟达 2060+
内存:16G+
硬盘:1T
这里如果是使用 Ubuntu 安装 Carla,需要同时安装很多环境:Carla、Ue4、Conda3等,至少要有 250G 的空间才能够完成安装
软件环境
这里我们是在 Ubuntu 20.04 的环境下安装 Carla,所以这里我们需要安装好所有的环境:
首先是需要安装好 python3,这里的 python3 的版本目前是最好使用 3.8 的最新版本,这里提供在线安装的命令:
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
udo apt install python3.8
python3.8 --version
然后这里我们需要更新 pip3 到最新版本(这里的最低 pip3 版本要求是 20.3),这里由于我们使用的系统是 ubuntu 20.04,默认的 pip3 版本是 20.0.2,直接使用命令升级 pip3 是没有效果的,这里我们需要按照如下方法进行更新:
#首先直接升级 pip3,这里虽然升级后查询版本没有改变,但在后续操作会解决
sudo pip3 install --upgrade pip
#修改 .bashrc 文件
sudo gedit ~/.bashrc
#在文件末尾添加如下字段
export PATH=/home/cxx/.local/bin/:$PATH
#保存后执行刷新调用
source ~/.bashrc
这样我们再次查看 pip3 的版本就已经更新到最新版本了:
python3 环境全部准备好之后,需要安装一些其他包
pip3 install --user pygame numpy
pip install --user setuptools &&
pip3 install --user -Iv setuptools==47.3.1 &&
pip install --user distro &&
pip3 install --user distro &&
pip install --user wheel &&
pip3 install --user wheel auditwheel
如果在执行安装 setuptools 时报错如下:
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
launchpadlib 1.10.13 requires testresources, which is not installed.
这里说明我们要更新 numpy 版本,然后按照提示安装 launchpadlib 后再安装:
pip3 install --upgrade numpy
pip3 install launchpadlib
这里由于我们是使用 python 语言进行开发,苏哟一这里最重要的就是安装 python3 ,其他环境安装如下:
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-8 main" &&
sudo apt-get update
这里不同系统版本对应不同的安装指令,可以去官网进行查看:How to build Carla on Ubuntu ,这里我们使用的是 Ubuntu 20.04 版本,命令如下:
sudo apt-add-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal main"
sudo apt-get install build-essential clang-10 lld-10 g++-7 cmake ninja-build libvulkan1 python python-dev python3-dev python3-pip libpng-dev libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf libtool rsync libxml2-dev git
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/lib/llvm-10/bin/clang++ 180 &&
sudo update-alternatives --install /usr/bin/clang clang /usr/lib/llvm-10/bin/clang 180
UE4 安装
由于 Carla 是基于 UE4 引擎进行开发的,所以在安装 Carla 前最终要的一步就是安装 UE4 ,这里在 CALAR 0.9.12 以后的版本使用的引擎是 Unreal Engine 4.26 。在安装 Carla 之前要安装好 Unreal Engine 4.26 。安装之前需要保证你的 github 账户和 Unreal Engine 账户连接。 连接方法可以参考下面链接:
https://www.unrealengine.com/en-US/ue-on-github
然后在这里我们需要点击 Follow:
如果这里没有点击,就不显示 UE4 源码仓库,无法 git clone 下载
除了两个账户之间的连接之外,还需要注意的是 git clone 过程中需要用 github 账户登入,但 github 从 2021 年开始不支持这种登入方式,需要设置个人密钥。github 的个人密钥设置有两种: fine-grained token 和 classic token,有些在使用 git clone 的时候没有提示要登陆,就跳过这部分。设置方法参考:
https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
其实这里的意思就是用 token 代替密码使用,参考如下博客配置 token:
https://blog.csdn.net/qq_41646249/article/details/119777084
开始安装 UE4 :
git clone --depth 1 -b carla https://github.com/CarlaUnreal/UnrealEngine.git ~/UnrealEngine_4.26
UE4 下载速度根据网络会有波动,耐心等待
如果执行 git clone 命令出现如下报错:
fatal: 无法访问 'https://github.com/CarlaUnreal/UnrealEngine.git/':GnuTLS recv error (-110): The TLS connection was non-properly terminated.
需要执行如下操作来关掉 SSL :
apt-get install gnutls-bin
git config --global http.sslVerify false
git config --global http.postBuffer 1048576000
编译 UE4
cd ~/UnrealEngine_4.26
./Setup.sh && ./GenerateProjectFiles.sh && make
编译时间较长,需要耐心等待,如果在编译的过程中出现 register ubreal engine file types 的窗口,直接关掉即可
编译完成后,我们需要检查是否安装完成,使用如下命令:
cd ~/UnrealEngine_4.26/Engine/Binaries/Linux && ./UE4Editor
如果成功打开并运行 UE4 就说明已经安装成功了
安装完,要把 UnrealEngine 的路径添加到 ~/.bashrc 中:
sudo gedit ~/.bashrc
打开后在最后一行添加:
export UE4_ROOT=~/UnrealEngine_4.26
安装 Carla
我们在一开始就已经下载了 ubuntu 对应的 Carla 的安装包,这里我们在 Home 目录下新建一个 CARLA 文件夹,并将刚下载好的压缩包解压到这个文件夹下,解压后如下:
按照官方给出的要求运行命令:
pip install carla
pip3 install carla
安装完成直接运行如下命令测试:
cd ~/CARLA/CARLA_0.9.14
sudo ./CarlaUE4.sh
如果报错如下:
CARLA/CARLA_0.9.13/CarlaUE4/Binaries/Linux/CarlaUE4-Linux-Shipping: error while loading shared libraries: libomp.so.5: cannot open shared object file: No such file or directory
执行如下命令即可:
sudo apt-get install libomp5
如果在运行的时候命令行出现如下内容:
MESA-INTEL: warning: Performance support disabled, consider syscrl dev. i9q5.perf_stream_paranoid=0
说明 Carla 强制使用核显,这里我们要使用如下命令来使用独显:
sudo ./CarlaUE4.sh -prefernvidia
示例演示
将弹出一个包含城市视图的窗口。 这是旁观者的观点。 要在城市中飞行,请使用鼠标和 WASD 键,按住鼠标右键来控制方向。
这是服务器模拟器,它现在正在运行并等待客户端连接并与世界交互。 您可以尝试一些示例脚本来为城市注入生命并驾驶汽车:
# Terminal A
cd PythonAPI\examples
python3 -m pip install -r requirements.txt # Support for Python2 is provided in the CARLA release packages
python3 generate_traffic.py
# Terminal B
cd PythonAPI\examples
python3 manual_control.py
卡顿问题
这里由于对显卡的要求比较高,所以这里可以通过命令设置来解决一些 Carla 的卡顿问题
~/CARLA/CARLA_0.9.13$ ./CarlaUE4.sh -prefernvidia -quality-level=Low -benchmark -fps=15
-prefernvidia:使用NVIDIA显卡启动
-quality-level=Low:调低渲染水平
-benchmark -fps=15:引擎以1/15秒的固定时间逐步运行
这里如果还是很卡,可以隐藏房屋建筑,仅留下道路,减少显卡渲染的任务量
方法:Shift+V 全选建筑物 Shift+B 隐藏所有建筑物
还有以下其余可使用的配置选项:
配置选项可用:
carla-rpc-port=N:侦听端口 N 处的客户端连接。默认情况下,流式端口 Streaming port 设置为 N+1
carla-streaming-port=N:指定用于传感器数据流的端口。 使用 0 获取随机未使用的端口。 第二个端口将自动设置为 N + 1
quality-level={Low,Epic}:更改图形质量级别
-carla-server:让 carla以服务的方式运行
-benchmark -fps=15:引擎以1/15秒的固定时间逐步运行
-windowed -ResX=800 -ResY=600:屏幕窗口大小