安装好显卡驱动后,接下来的步骤是安装Unreal Engine。我的操作系统是Ubuntu 18.04
系统要求
- Ubuntu 18.04。CARLA兼容Ubuntu 16.04及之前版本,但虚幻引擎正常工作需要合适的编译器。
- 至少130GB磁盘空间。CARLA会占用大约31GB的空间,而虚幻引擎则会占用大约91GB的空间,因此至少需要保证磁盘空间不小于130GB。血的教训,一定一定要保证磁盘的空间足够!!
- 高性能的GPU。CARLA的目标是实现逼真的模拟,因此服务器至少需要6 GB的GPU,建议使用8 GB的GPU。
- 两个TCP端口和良好的互联网连接。默认情况下为2000和2001两个端口。确保这些端口未被防火墙拦截或任何其他应用程序占用。
软件要求
终端执行以下命令来安装一部分依赖
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
如果是Ubuntu 18.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 git
在这个过程中如果出现网络错误,可以选择更换仓库的源,也可以考虑使用代理的方式提高网络的可用性。
为了避免虚幻引擎和CARLA依赖项之间出现兼容问题,应该使用相同的编译器版本和C++运行库来编译所有的东西。CARLA使用clang-8和LLVM的libc++。将默认的clang版本更改为编译Unreal Engine和CARLA依赖项,这是无论哪一个系统版本都需要执行的操作。
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
从CARLA 0.9.12开始,用户可以选择使用pip或pip3安装CARLA Python API。但需要20.3或更高版本。通过以下的命令来检查pip的版本:
# For Python 3
pip3 -V
# For Python 2
pip -V
如果需要升级,则执行以下的命令:
# For Python 3
pip3 install --upgrade pip
# For Python 2
pip install --upgrade pip
升级完成后,安装这些python依赖:
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
安装虚幻引擎
由于虚幻引擎的代码仓库是私有的,因此在克隆它的代码之前需要在github上先进行一些操作才能获取到访问其代码仓库的权限,具体的教程可以参考虚幻引擎官网的指引,或者进行百度。
- 将CARLA专门的分支克隆到本地
git clone --depth 1 -b carla https://github.com/CarlaUnreal/UnrealEngine.git ~/UnrealEngine_4.26
- 进入克隆好的代码的目录
cd ~/UnrealEngine_4.26
- 进行编译,这一步非常耗费时间,在多核机器上将make换成make -j可以大大提高编译的速度
./Setup.sh && ./GenerateProjectFiles.sh && make -j
- 编译完成后检查虚幻引擎是否能够正常运行
cd ~/UnrealEngine_4.26/Engine/Binaries/Linux && ./UE4Editor
遇到的问题
编译完成后启动ue4时报错Cannot find a compatible Vulkan device or driver…
出现这个报错说明电脑的Vulkan组件没有安装好或没有正确运行起来,在终端中输入vulkaninfo
查看vulkan运行状态,果然出现了问题。尝试了百度上很多的方法,有的说单独安装Vulkan这个组件,有的说在运行的时候加上–opengl3或–opengl4这个命令行参数,即cd ~/UnrealEngine_4.26/Engine/Binaries/Linux && ./UE4Editor --opengl3
但是这些方法对我来说统统都没有效果。
报错中提示没有找到某个文件,这个文件的文件名中有nvidia字样,让我联想到是不是显卡驱动没有安装好,因此我到CARLA仓库中的issue栏目搜索了一下是否有用户和我遇到了一样的问题。经过一番查找之后,找到了一个行之有效的解决方法:https://github.com/carla-simulator/carla/issues/4687
这个用户一开始是使用sudo bash NVIDIA-Linux-x86_64-430.26.run –-no-opengl-files –-no-x-check
命令安装显卡驱动的,我一开始也是这么安装的,因此我赶紧把显卡驱动卸载掉,重新不带–-no-opengl-files –-no-x-check
这两个参数安装了一遍,再一次运行时就没有报错了。网上很多教程都会在运行显卡驱动安装脚本时在后面添加两个参数,事实证明,添加了这两个参数会导致非常多的问题出现,例如开机卡顿,登录界面无限循环等等,不加这两个参数啥事没有,虚幻引擎还能正常打开。
运行时提示Couldn’t launch …/UnrealEngine_4.26/Engine/Binaries/Linux/ShaderCompileWorker! Make sure you build ShaderCompileWorker
出现这个问题的原因不明,估计是编译的时候漏掉了这个模块,在运行make -j ShaderCompileWorker后这个问题解决了,可以正常启动UE4了。
参考文章
https://carla.readthedocs.io/en/latest/build_linux
https://github.com/EpicGames/UnrealEngine
https://github.com/carla-simulator/carla
https://zhuanlan.zhihu.com/p/338927297