2.在Ubuntu安装 CARLA 的详细教程 |
您所在的位置:网站首页 › ue4安装包4272 › 2.在Ubuntu安装 CARLA 的详细教程 |
CARLA 为windows和Linux都提供了安装包,该安装包包括 CARLA 服务器和客户端库的两个选项。本文关注的是Ubuntu系统上从源码build(编译)安装的过程,因为CARLA的编译版本可以使用Unreal Engine的高级定制和开发选项,这能够满足科研的需求。 注:当前CARLA 版本更新到0.9.14,下面build教程是针对latest version的。安装不同版本的方法几乎是一样的。但某个具体版本的安装过程会有细微的差别(版本和依赖),可以在下面链接中的右下角如下图所示选择具体的版本(绿色字体,然后查看安装教程,同时以本教程为参考。 Linux build
也可以直接在链接中修改版本(标黄的部分):
CARLA 需要许多不同类型的软件才能运行。 有些是在 CARLA build过程中构建的,例如 Boost.Python。 其他是应该在开始build之前安装的二进制文件(cmake、clang、不同版本的 Python 等)。 要安装这些要求,请运行以下命令: 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](https://apt.llvm.org/llvm-snapshot.gpg.key%7Csudo) apt-key add - && sudo apt-add-repository "deb [http://apt.llvm.org/xenial/](http://apt.llvm.org/xenial/) llvm-toolchain-xenial-8 main" && sudo apt-get update注:以下命令取根据不同的 Ubuntu 版本,做出相应的选择。 为避免Unreal Engine和 CARLA 依赖项之间的兼容性问题,请使用相同的编译器版本和 C++ runtime library来编译所有内容。 CARLA 团队使用 clang-8(或 Ubuntu 20.04 中的 clang-10)和 LLVM 的 libc++。 更改默认的 clang 版本来编译 Unreal Engine 和 CARLA 依赖项。 Ubuntu 20.04 sudo apt-add-repository "deb [http://apt.llvm.org/focal/](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 180Ubuntu 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 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 180Ubuntu 16.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 libpng16-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-8/bin/clang++ 180 && sudo update-alternatives --install /usr/bin/clang clang /usr/lib/llvm-8/bin/clang 180All Ubuntu systems从 CARLA 0.9.12 开始,用户可以选择使用 pip 或 pip3 安装 CARLA Python API。 需要 20.3 或更高版本。 要检查您是否有合适的版本,请运行以下命令: *# 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 1.3 Unreal Engine从版本 0.9.12 开始,CARLA 使用Unreal Engine 4.26 的修改版。 此分支包含特定于 CARLA 的补丁。 请注意,要下载这个 Unreal Engine 分支,需要有一个与 Unreal Engine 帐户相关联的 GitHub 帐户。 如果您没有此设置,请在继续之前按照如下指南进行操作。 1.3.1 Github和UnrealEngine连接操作指南:step 1 :注册一个github 账号(如果已有账号,跳过) GitHub: Let's build from here step 2:打开Unreal Engine帐户的仪表板 注册Epic Games 帐户: Epic Games 使用经过验证的 Epic Games 帐户登录 UnrealEngine.com。 要打开帐户仪表板,请将鼠标悬停在您的用户名上,然后从下拉菜单中选择个人。
step3: 连接github 在帐户仪表板打开的情况下,从侧边栏中选择“连接”(如果注册时地区选择了中国,这个选项就是应用与账户)选项卡。 选择帐户选项卡,然后选择 GitHub 图标下方的连接按钮。
中文版
step 4:连接至账号 如果你尚未签署Unreal Engine最终用户许可协议,则需要通读其条款并选中复选框,然后选择关联帐户。 如果你已退出 GitHub 帐户,你将在单击链接帐户按钮后被定向到 GitHub 以进行登录。
step 5:授权 要完成 OAuth 应用程序授权过程,请单击授权 EpicGames 按钮。 您可以在 GitHub 的授权 OAuth 应用程序概述中了解有关此过程的更多信息
step 6:接受邮件邀请或点击链接 方法一,接受邮件邀请: GitHub 将发送一封电子邮件,邀请您加入 GitHub 上的@EpicGames 组织。 您必须在 7 天内选择此电子邮件中的加入@EpicGames 按钮以完成 GitHub 和 Epic Games 帐户链接过程。
完成后,您将收到一封来自 Epic Games 的电子邮件,确认您的 GitHub 和 Epic Games 帐户已成功关联。 如果您没有收到确认电子邮件,或者如果您的帐户遇到问题,请向客户服务寻求帮助。 方法二:点击下面链接, Epic Games 在页面上方会有加入邀请,同意后,能看到Unreal Engine 的Repo说明成功连接github和UE。 本部分参考: Unreal Engine on GitHub 1.3.2 安装Unreal Enginestep1 将 CARLA 的 Unreal Engine 4.26 分支的内容克隆到您的本地计算机: git clone --depth 1 -b carla https://github.com/CarlaUnreal/UnrealEngine.git ~/UnrealEngine_4.26 注:不同的CARLA版本对应不同的Ureal Engine,如CARLA0.9.11对应UE4.24版本 step2 进入到克隆存储库的目录: cd ~/UnrealEngine_4.26 step3 进行编译,这可能需要一两个小时,具体取决于您的系统。 ./Setup.sh && ./GenerateProjectFiles.sh && make step4 打开编辑器检查Unreal Engine是否安装正确。 cd ~/UnrealEngine_4.26/Engine/Binaries/Linux && ./UE4Editor 2 编译CARLA用sudo apt-get install aria2命令下载aria2会加速接下来的命令。 2.1 Clone the CARLA repository:git clone https://github.com/carla-simulator/carla **注:**master 分支包含具有最新修复和功能的 CARLA 的当前版本。 以前的 CARLA 版本标有版本名称。 记得使用命令 git branch 检查 git 中的当前分支。用git tag —list,可以列出所有分支 如果要安装的版本不是最新的版本,而是某个版本,0.9.X。记得切换到这个版本的分支: cd ~/carla git checkout -b**例如:**切换到0.9.11的check point,可以在carla/Util/ContentVersions.txt中查到checkpoint, git checkout -b 0.9.11 20201222_232b876
您需要下载最新的assets才能使用当前版本的 CARLA。 我们提供了一个脚本来自动执行此过程。 要使用该脚本,请在 CARLA 根文件夹中运行以下命令: ./Update.shassets将被下载并提取到适当的位置。 下面是assets的特殊需求,无特殊需求可忽略,进入2.3这一步。 重要提醒:要下载当前正在开发的assets,请访问Update CARLA 并阅读获取开发assets。Update CARLA 如果要下载特定版本的 CARLA 的assets: 1.从 CARLA 根目录,进入到 \Util\ContentVersions.txt。 本文档包含指向所有 CARLA 版本的assets的链接。 2.提取 Unreal\CarlaUE4\Content\Carla 中的assets。 如果路径不存在,请创建它。 3.使用类似于以下的命令提取文件: tar -xvzf .tar.gz.tar -C C:\path\to\carla\Unreal\CarlaUE4\Content\Carla 2.3设置Unreal Engine 环境变量仅为该会话设置变量: export UE4_ROOT=~/UnrealEngine_4.26设置变量,使其在会话中持续存在: 1.打开 ~/.bashrcor ./profile. gedit ~/.bashrc *# or* gedit ~/.profile2.将以下行添加到文件底部: export UE4_ROOT=~/UnrealEngine_4.263.保存文件并重启terminal。 2.4 编译CARLA本节概述了编译 CARLA 的命令。 所有命令都应在 CARLA 根文件夹中运行。 CARLA 的编译过程分为两部分:编译客户端和编译服务器,即 make PythonAPI make launch若无特殊要求,执行完这两步就安装完毕,直接跳到2.4.3. ----------------—-------—-—-----------------------------------------------— **注意:**确保运行 make PythonAPI 来准备客户端并make launch来准备服务器。 或者,make LibCarla 将准备要在任何地方导入的 CARLA 库。2.4.1 编译Python API clientPython API 客户端授予对模拟的控制权。 第一次构建 CARLA 时需要编译 Python API 客户端,并在执行任何更新后再次编译。 编译客户端后,您将能够运行脚本与模拟进行交互。 以下命令编译 Python API 客户端: make PythonAPI ---------------------—-------—--—--------------------------—- 下面时特殊需求,若无特殊需求,上面的编译就可以了,跳到编译服务器部分。 --——-—---—--—-----—--—----——---------------------—-------- 若要为特定版本的 Python 编译 PythonAPI,请在 CARLA 根目录中运行以下命令。 # Delete versions as required make PythonAPI ARGS="--python-version=2.7, 3.6, 3.7, 3.8"CARLA 客户端库将以两种截然不同、相互排斥的形式构建。 这让用户可以自由选择他们喜欢的形式来运行 CARLA 客户端代码。 这两种形式包括 .egg 文件和 .whl 文件。 选择以下选项之一以使用客户端库: (1).egg 文件 .egg 文件不需要安装。 在导入 CARLA 时,CARLA 的所有示例脚本都会自动查找此文件。 如果您之前安装了 CARLA .whl,则 .whl 将优先于 .egg 文件。 (2).whl 文件 .whl 文件应该使用 pip 或 pip3 安装: Python 3 pip3 install .whlPython 2 pip install .whl此 .whl 文件无法分发,因为它是专门为您的操作系统构建的。 警告:使用不同的方法安装 CARLA 客户端库以及在您的系统上安装不同版本的 CARLA 可能会出现问题。 建议在安装 .whl 时使用虚拟环境,并在安装新客户端库之前卸载任何以前安装的客户端库。2.4.2 编译服务器以下命令编译并启动Unreal Engine。 每次要启动服务器或使用Unreal Engine编辑器时运行此命令: make launch 该项目可能会要求在第一次构建其他实例,例如 UE4Editor-Carla.dll。 同意以打开项目。 在首次启动期间,编辑器可能会显示有关着色器和网格距离场的警告。 这些需要一些时间才能加载,直到那时地图才能正确显示。 2.4.3 开始仿真按 Play 开始服务器模拟。 可以使用 WASD 键移动相机,并通过在移动鼠标的同时单击场景来旋转相机。 使用 PythonAPI\examples 中的示例脚本测试模拟器。 在模拟器运行的情况下,为每个脚本打开一个新终端并运行以下命令以在城镇中产生一些生命并创建一个天气循环: # Terminal A cd PythonAPI/examples python3 -m pip install -r requirements.txt python3 generate_traffic.py# Terminal B cd PythonAPI/examples python3 dynamic_weather.py 重要提示:如果模拟以非常低的 FPS 速率运行,请转到Unreal Engine编辑器中的Edit -> Editor preferences -> Performance 并禁用Use less CPU when in background。2.4.4 其他make命令还有更多你可能觉得有用的 make 命令。 如下表: CommandDescriptionmake helpPrints all available commands.make launchLaunches CARLA server in Editor window.make PythonAPIBuilds the CARLA client.make LibCarlaPrepares the CARLA library to be imported anywhere.make packageBuilds CARLA and creates a packaged version for distribution.make cleanDeletes all the binaries and temporals generated by the build system.make rebuildmake clean and make launch both in one command.有关本指南的任何问题,阅读F.A.Q或在 CARLA 论坛上发帖。 F.A.Q链接 F.A.Q. CARLA论坛: https://github.com/carla-simulator/carla/discussions 本文参考: https://carla.readthedocs.io/en/latest/build_linux/ 附:安装踩过的坑问题1:执行下列安装时,Ubuntu 16.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 libpng16-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-8/bin/clang++ 180 && sudo update-alternatives --install /usr/bin/clang clang /usr/lib/llvm-8/bin/clang 180即在Ubuntu16.04安装clang-8时,遇到了错误:libobjc-5-dev but it is not going to be installed如下: The following packages have unmet dependencies: clang-8 : Depends: libobjc-5-dev but it is not going to be installed Depends: libclang-common-8-dev (= 1:8.0.1+svn369350-1~exp1~20200112113617.82) but it is not going to be installed E: Unable to correct problems, you have held broken packages. 看上去是软件包冲突导致的错误,但没有显示具体是哪一个包导致了冲突,需要递归安装找到问题根源。 首先,尝试安装:apt install libclang-common-8-dev 提示: The following packages have unmet dependencies: libclang-common-8-dev : Depends: lib32stdc++6 (>= 4.1.1) but it is not going to be installed E: Unable to correct problems, you have held broken packages. 再尝试安装 apt install lib32stdc++6 提示 lib32stdc++6 : Depends: gcc-5-base (= 5.4.0-6ubuntu1~16.04.12) but 5.5.0-12ubuntu1~16.04 is to be installed E: Unable to correct problems, you have held broken packages. **发现了问题的根源:**lib32stdc++6依赖的是gcc-5-base = 5.4.0-6ubuntu1~16.04.12版本,但是系统已经安装了5.5.0-12ubuntu1~16.04 版本,所以导致了冲突。 解决办法: 定位到问题后就比较容易解决了,对gcc-5-base进行降级: apt install gcc-5-base=5.4.0-6ubuntu1~16.04.12 问题2 clone UE时,(若clone carla出现相同问题,同样适合)remote: Enumerating objects: 99575, done. remote: Counting objects: 100% (99575/99575), done. remote: Compressing objects: 100% (76573/76573), done. error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function. fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed 解决: 1.这是因为git/https的buffer的设置(最大设为2000000000),执行如下: git config http.postBuffer 524288000 2.输入命令: vim ~/.bashrc进入文件 下三行命令添加到文件的最后: export GIT_TRACE_PACKET=1 export GIT_TRACE=1 export GIT_CURL_VERBOSE=1或者直接在linux终端输入这三行 3. git clone --depth 1 -b carla https://github.com/CarlaUnreal/UnrealEngine.git ~/UnrealEngine_4.26 把上面的https换成http或者git尝试 4.执行下面命令 $ UnrealEngine_4.26 $ git fetch --unshallow 原因第三步 depth用于指定克隆深度,为1即表示只克隆最近一次commit.git shallow clone git clone 默认会下载项目的完整历史版本,如果你只关心最新版的代码,而不关心之前的历史信息,可以使用 git 的浅复制功能: git clone --depth=1 -b carla https://github.com/CarlaUnreal/UnrealEngine.git ~/UnrealEngine_4.26 –depth=1 表示只下载最近一次的版本,使用浅复制可以大大减少下载的数据量 如果之后又想获取完整历史信息,可以使用下面的命令: $ git fetch --unshallow 牢骚: 在下载Unreal Eninge时,卡了很久,有两个原因:一是有一些错误确实需要解决,如生成github 的token时,没有勾选repo。另一个很重要的原因是网络时好时坏,有时候连不上,挺崩溃的。 问题3 编译完Unreal Eninge 打开时出现一些错误LogLinux: Warning: MessageBox: Failed to load Vulkan Driver which is required to run the engine. The engine no longer fallbacks to OpenGL4 which has been deprecated.: Message: 尝试方法一:在 Ubuntu上, 安装 Vulkan utils及 Vulkan drivers sudo apt -y install vulkan-utils 问题4 编译carla client时,/boost/python/detail/wrap_python.hpp:57:11: fatal error: 'pyconfig.h' file not found # include ^~~~~ find / -name pyconfig.h若找不到 执行 yum install python3-devel重新执行第一步查找,找到像xxx/include/python3.x/pyconfig.h这样目录的文件,如果没有就是没有安装python3在终端执行 export CPLUS_INCLUDE_PATH=xxx/include/python3.x问题5 编译carla client时,报错404 Not Found 原因:http://ftp.cixug.es/apache//xerces/c/3/sources/xerces-c-3.2.3.tar.gz链接下没有这个xerces-c-3.2.3.tar.gz文件了,点进这个连接http://ftp.cixug.es/apache//xerces/c/3/sources会发现只有3.2.4版本的tar.gz文件了 解决方案: 打开/Carla/Util/BuildTools/Setup.sh脚本,更改第424行XERCESC_VERSION=3.2.3改为XERCESC_VERSION=3.2.4继续编译出现错误: Configuring incomplete, errors occurred! See also "/home/znfsljp/carla/Build/libosm2dr-build/CMakeFiles/CMakeOutput.log". Util/BuildTools/Linux.mk:152: recipe for target 'osm2odr' failed make: *** [osm2odr] Error 1如下图:
原因:刚才装的xerces库为3.2.4版本,只在setup.sh脚本中更改了相关的版本代号代码,而编译osm2odr库的脚本内容中需要调用这个库,而脚本中的版本代号仍然为xerces-c-3.2.3…,由于我们更改setup.sh后安装的是xerces-c-3.2.4,所以文件路径不匹配,找不到xerces-c-3.2.3。 打开编译osm2odr库的编译脚本,BuildOSM2ODR.sh,路径为/Carla/Util/BuildTools/BuildOSM2ODR.sh在蓝色圈位置加入下面两行 DXercesC_INCLUDE_DIR={CARLA_BUILD_FOLDER}/xerces-c-3.2.4-install/include \ -DXercesC_LIBRARY={CARLA_BUILD_FOLDER}/xerces-c-3.2.4-install/lib/libxerces-c.a \
https://blog.csdn.net/weixin_42259296/article/details/120127475 问题6x86_64-linux-gnu-gcc: error: /home//carla/PythonAPI/carla/dependencies/lib/libxerces-c.a: No such file or directory error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 Util/BuildTools/Linux.mk:87: recipe for target 'PythonAPI' failed make: *** [PythonAPI] Error 1 解决: 把第三个目录下:${CARLA_BUILD_FOLDER}/xerces-c-3.2.4-install/lib/libxerces-c.a 复制到/home//carla/PythonAPI/carla/dependencies/lib/libxerces-c.a即 cp {你的carla build 文件夹,一般为/home/XXXX/carla/Build}/xerces-c-3.2.4-install/lib/libxerces-c.a /home//carla/PythonAPI/carla/dependencies/lib/ 参考这个回答https://github.com/carla-simulator/carla/issues/973 参考链接: https://blog.csdn.net/sinat_25923849/article/details/112301804 https://blog.csdn.net/weixin_36184353/article/details/126373080 本文使用 Zhihu On VSCode 创作并发布 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |