前言
CARLA是Nvidia开发的一款面向自动驾驶的模拟器,本文记录在Ubuntu服务器上安装CARLA模拟器的流程,文章在Ubuntu 20.04和Ubuntu 16.04上实验,安装CARLA 0.9.14版本。
CARLA for Ubuntu 20.04
官方的下载安装教程可以参考Quick start package installation,本文对该教程进行复述,附带部分遇到的问题和解决方案。
1. 下载CARLA模拟器
官方提供两种方式下载CARLA:Debian和 Package。
Debian
Debian下载方式支持Ubuntu 18.04 和 Ubuntu 20.04,该方式下载CARLA发布的Ubuntu软件安装包,安装在/opt/carla-simulator目录下。该下载方式需要root权限,而在一般的实验室服务器上,普通用户并无root权限,因此本文未测试该方法。这里提供官方的下载指令以供参考。
1 | sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1AF1527DE64CB8D9 |
Package
Package下载方式只区分Ubuntu和Winodws。该下载方式不需要root权限,只需在GitHub下载编译后的文件包,解压即可。
在Downlaod下载需求版本的编译后文件包,每个版本中,打有Ubuntu标签的有3个包,第一个CARLA_{version_number}.tar.gz是我们需要的。
1 | [Ubuntu] CARLA_0.9.14.tar.gz |
以CARLA 0.9.14为例,下载安装包到服务器
1 | wget https://carla-releases.s3.eu-west-3.amazonaws.com/Linux/CARLA_0.9.14.tar.gz |
解压安装包的服务器某文件
1 | tar -zxvf CARLA_0.9.14.tar.gz -C /path/to/carla-simulator/ |
2. 导入额外的资源
在Downlaod下载需求版本的资源包,第二个AdditionalMaps_{version_number}.tar.gz
以CARLA 0.9.14为例,下载额外资源包
1 | wget https://carla-releases.s3.eu-west-3.amazonaws.com/Linux/AdditionalMaps_0.9.14.tar.gz |
将下载后的额外资源包移动到CARLA模拟器根目录的Import文件夹内(通过Debian方式下载的模拟器根目录为/opt/carla-simulator)
1 | mv AdditionalMaps_0.9.14.tar.gz /path/to/carla-simulator/Import/ |
导入额外资源包
1 | cd /path/to/carla-simulator |
3. 下载CARLA客户端
针对0.9.12+版本的模拟器,官方提供了3种方式:.egg,.whl,Downloadable Python Package,文章测试了后两种。
.whl
在/path/to/carla-simulator/PythonAPI/carla/dist/目录下寻找有无适合版本的 .whl文件。如carla-0.9.14-cp37-cp37m-manylinux_2_27_x86_64.whl表示适合Python 3.7版本,Linux的.whl文件。
如果没有找到合适的版本可以去PyPI网站的carla安装包下载页面下载。例如:下载carla 0.9.14版本针对Python 3.8的安装包
1 | wget https://files.pythonhosted.org/packages/c1/a2/6e172f2cc17e6ad9f9853f18dd4f99c5d05d5a241ce2ba4a2daa73eff695/carla-0.9.14-cp38-cp38-manylinux_2_27_x86_64.whl |
下载完成之后,需要修改文件名为符合pip命名规范的安装包,才能正常安装(这里建议安装前升级pip)。
1 | mv carla-0.9.14-cp38-cp38-manylinux_2_27_x86_64.whl carla-0.9.14-cp38-cp38-manylinux1_x86_64.whl |
这里pip安装包命名规范查看命令为:
1 | pip debug --verbose |
如果没有找到安装包,可以从源码编译。
Downloadable Python Package
直接使用pip下载。
1 | pip install carla |
文章测试了下,这种方式最多只能安装0.9.5版本。
4. 运行CARLA服务端
1 | cd /path/to/carla-simulator |
运行CARLA服务端的一些常用参数
1 | ./CarlaUE4.sh -RenderOffScreen # 无屏幕渲染 |
CARLA 相关的代码、文档和学习资源
其他尝试案例和问题记录
Ubuntu 20.04
Q: 在运行./CarlaUE4.sh时出现
1 | error while loading shared libraries: libomp.so.5: cannot open shared object file: No such file or directory |
A: 联系服务器管理员,下载libomp5。
1 | sudo apt install libomp5 |
Q: 在运行./CarlaUE4.sh时出现
1 | MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0 ../src/intel/isl/isl.c:2105: FINISHME: ../src/intel/isl/isl.c:isl_surf_supports_ccs: CCS for 3D textures is disabled, but a workaround is available. |
A: 添加VK_ICD_FILENAMES到~/.bashrc文件。
1 | export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/nvidia_icd.json" |
Q: 在运行./CarlaUE4.sh时出现
1 | WARNING: lavapipe is not a conformant vulkan implementatio , testing use only. |
A:在第一个GPU上训练时,去掉GPU指定参数-graphicsadapter=GPU_ID。
Ubuntu 16.04
Q: 安装与Ubuntu 20.04相似的方式安装,在运行./CarlaUE4.sh时出现
1 | /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found |
A: 暂无好的解决方案,Ubuntu 16.04的glibc版本为2.23,建议切换到Ubuntu 18.04/Ubuntu 20.04。文章这里下载glibc-2.27源码编译后,没能运行成功,而且Ubuntu的Shell指令如ls也崩溃了。
1 | ldd --verison # 检查glibc版本 |
从源码安装glibc(glibc-2.27为例)
1 | wget https://ftp.gnu.org/gnu/glibc/glibc-2.27.tar.gz |
Ubuntu 16.04 从源码编译
按照源码编译教程,编译,并未成功。
问题记录如下
Q: 在make PythonAPI时出现libproj包编译问题
1 | ....../PythonAPI/carla/dependencies/lib/libproj.a(geodesic.c.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC |
A: 按照Carala GitHUb Issue并未解决。相关Issue: Additional Python API in pre-build carla package。