Ubuntu18.04安装carla0.9.9 & UE4.24踩坑版

Ubuntu18.04安装carla0.9.9 & UE4.24踩坑版

博主安装环境:Ubuntu18.04+ROS melody+Python3.8源码编译完整安装,花了将近一周时间来安装,记录下安装过程及踩到的坑。整个下载安装编译过程请保证科学上网

一.前期准备

carla0.9.9需要Ubuntu18.04系统,据说16.04也可以但尽量不要尝试,避免麻烦最好安装18.04,磁盘空间建议预留出150G剩余空间,实测UE4.24大小74个G,Carla0.9.9大小40个G。还需要4G的GPU。如果电脑配置不够建议安装简易版本carla。官网链接:
https://carla.readthedocs.io/en/latest/start_quickstart/

1.注册Epic账号,并且与自己的github账户绑定

博主是用steam账户注册的,注册好epic账户后进入个人中心

因为博主已经绑定过自己的github账户所以显示已经链接,链接具体操作过程比较简单,csdn或者百度搜索下即可。绑定后进入自己的个github账户就可以看到Epic发布的UE库源码了。github搜索UnrealEngin,fork一下就可以。(注:不绑定github与Epic账户是搜不到UnreaEngin源码的)

2. 依赖项安装

安装vulkan-sdk
Ubuntu 18 安装 vulkan-sdk

wget -qO - http://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add -
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-bionic.list http://packages.lunarg.com/vulkan/lunarg-vulkan-bionic.list
sudo apt update
sudo apt install vulkan-sdk

端口配置

iptables -I INPUT -p tcp --dport 2000 -j ACCEPT
iptables -I INPUT -p tcp --dport 2001 -j ACCEPT
iptables-save

依赖安装

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

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 &&
pip2 install --user setuptools &&
pip3 install --user setuptools

修改默认 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

3.git clone下载ue源码

注:不要从github直接下载源码,安装过程中会报错,请一定使用git clone命令安装

#下面这条命令就是下载UE的,根据官网要求,0.9.9版的carla把UE升级为了4.24版本,之前安装过的需要先卸载
#再安装这个版本
#--depth=1表示获取最近一次更新
# -b 4.24表示分支为4.24
#~/UnrealEngine_4.24表示在系统更目录创建名为UnrealEngine_4.24的文件夹,源码保存在这个文件夹下面
#如果通过windows来直接下载的ZIP格式的文件,下面的命令行不需要执行,把下载的文件解压缩到根目录就可git clone --depth=1 -b 4.24 https://github.com/EpicGames/UnrealEngine.git ~/UnrealEngine_4.24

下载完毕后根据官网的命令来编译

cd ~/UnrealEngine_4.24#这里需要下在一个文本格式的文件
wget https://carla-releases.s3.eu-west-3.amazonaws.com/Linux/UE_Patch/430667-13636743-patch.txt ~/430667-13636743-patch.txt
patch --strip=4 < ~/430667-13636743-patch.txt#编译
./Setup.sh && ./GenerateProjectFiles.sh && make#打开UE
cd ~/UnrealEngine_4.24/Engine/Binaries/Linux && ./UE4Editor

出现以下界面证明安装成功!

可以看到版本号即为我们git clone时选择的4.24。第一次读条比较慢,耐心等待直至出现如下界面:
出现后ctrl+c关闭终端即可,在bashrc中添加一下系统变量,将如下内容添加到文件末尾:

# Unreal Engine  换成自己UE4对应的路径
export UE4_ROOT=~/<你自己电脑路径>/UnrealEngine_4.24

二.Carla0.9.9源码编译安装

1.依赖项安装

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 &&
pip2 install --user setuptools &&
pip3 install --user -Iv setuptools==47.3.1 &&
pip2 install --user distro &&
pip3 install --user distro

2.git clone下载carla源码
输入以下命令:

#下面这条命令就是下载Carla的,根据官网要求,0.9.9版的carla把UE升级为了4.24版本,之前安装过的需要先卸载
#再安装这个版本
#--depth=1表示获取最近一次更新
# -b 0.9.9表示分支为0.9.9
#~/Carla_0.9.9表示在系统更目录创建名为Carla_0.9.9的文件夹,源码保存在这个文件夹下面
git clone --depth=1 -b 0.9.9 https://github.com/carla-simulator/carla ~/Carla_0.9.9

注:一定使用git clone安装carla,github源码下载的carla在编译过程中会出现与git相关的报错:

wh@wh-System-Product-Name:~/carla$ make launch
Setup.sh: llvm-8.0 already installed.
Setup.sh: boost-1.72.0-c8 already installed.
Setup.sh: rpclib-v2.2.1_c2-c8 already installed.
Setup.sh: gtest-1.8.1-c8 already installed.
Setup.sh: recast-cdce4e-c8 already installed.
fatal: bad revision 'HEAD'
Util/BuildTools/Linux.mk:135: recipe for target 'setup' failed
make: *** [setup] Error 128

fatal: bad revision 'HEAD’这个问题是与git相关的,用download可能会出现这个问题。

上述命令-b 0.9.9可根据自己需求选择想要的Carla版本例如想下载最新的carla0.9.12的话命令行改为-b 0.9.12即可。不过请慎用,一定选择与博主相同的环境即UE4.24+Carla0.9.9。截至21年9月份Carla已经更新至0.9.12版本,不过官网文档说明0.9.12版本的carla需要对应UE4.26,所以按照本教程安装好的UE4.24是无法为carla0.9.12提供开发环境的,carla编译过程中会报错的。carla与ue版本的对应也是安装过程中的一大坑,一定根据官网文档一一对应carla与ue的版本,也不建议基于最新发布的版本进行开发。

3.源码编译

#这个命令是可以优化下载效果的的,不然可能下载出错后就必须重新下载,最好还是装一个这个
sudo apt-get install aria2#去相关目录下运行下载脚本,下载相关内容content,大约11个G
#建议铁子们在夜深人静的时候关掉大片(大人看的片,嘿嘿嘿)科研使我快乐
#因为白天下载网速实在感人,可能就我实验室的慢也不一定,看情况而定
cd ~/carla_0.9.9
./Update.sh#./Update.sh后为了防止后续build过程中出现问题,最好先备份一份update之后的文件夹内容10G左右
cp ~/carla_0.9.9 ~/carla_0.9.9_backupmake launch
#make launch其实包含三条命令
#make setup
#make LibCarla
#make CarlaUE4Editor
#分开执行也可以,方便看具体报错。若编译过程中报错,修改错误之后继续编译请输入make rebuild或者先输入
#make clean 然后 make launch。#编译PythonAPI
make PythonAPI.3
#carla ue开发环境主要依赖python3,建议安装python3.5以上版本make package
#生成可执行文件,运行即可打开Carla,否则需要输入命令make launch-only开启carla

全部success之后执行
make launch-only,出现如下界面则安装成功:

4.测试例程

cd ~/Carla_0.9.9/PythonAPI
python3 manual_control.py
#执行上述命令可能会报一些缺少例如pygame numpy等Python依赖库,自行安装一下即可。
#需求的依赖库说明在PythonAPI/examplex/requirements.txt中有

若报如下错误RuntimeError:

INFO: listening to server 127.0.0.1:2000
Example of automatic vehicle control from client side.
Traceback (most recent call last):File "automatic_control.py", line 846, in <module>main()File "automatic_control.py", line 839, in maingame_loop(args)File "automatic_control.py", line 687, in game_loopworld = World(client.get_world(), hud, args)
RuntimeError: time-out of 4000ms while waiting for the simulator, make sure the simulator is ready and connected to 127.0.0.1:20

打开3.源码编译小节第二幅图所示的编辑页面,点击播放,然后再运行Python脚本即可。
出现如下界面,恭喜你安装成功!
操作跟GTA大致差不多,wasd 空格

三.踩坑总结

小坑1:博主最开始安装UE+carla的时候东看一个教程,西看一个教程,导致UE与Carla版本不匹配,carla源码编译总是报一些莫名其妙网上还搜不到的错误。Carla版本一定要与UE一一对应。Carla0.9.9对应UE4.24、Carla0.9.12对应UE4.26等,具体对应关系请看官方文档或者gitHub Carla里的说明

小坑2:博主在安装过程中尝试安装了一次UE4.22,编译UE的过程中报错具体忘记了,大致内容是本机装的clang版本过高(8.0),编译4.22的UE需要clang6.0或7.0

小坑3:Ubuntu自带的Python是2.7,CARLA最好是需要Python 3.5及以上版本。

小坑4:编译PythonAPI的时候报错显示setup.py的第36还是37行module ‘platform’ has no attribute ‘linux_distribution’
解决方案:

if os.name == "posix":# @todo Replace deprecated method.linux_distro = platform.dist()[0]  # pylint: disable=W1505
#添加一个头文件且改为下面这样:
import distro
if os.name == "posix":# @todo Replace deprecated method.linux_distro = distro.linux_distribution()[0]  # pylint: disable=W1505
#修改之前最好备份以下setup.py,毕竟要在源码基础上更改。

报错原因:python3.7以后platform.linux_distribution()被移除了。博主为Python3.8环境,可能3.6或者3.5的python就不会报这个错。
具体参考链接:报错原因
小坑5:运行examples中的python脚本时可能会提示缺少依赖项例如pygame,numpy等,博主是pygame2.0版本

小坑6:编译PythonAPI报错ModuleNotFoundError: No module named ‘distro‘
解决参考链接:解决

小坑7:安装编译完成后运行PythonAPI中example的例程,python maunal_control.py手动控制车辆时会发现FPS较低特别卡顿,解决方法:选择Carla编辑界面左上角编辑,然后选择编辑器偏好设置
在左侧一排选择性能,勾选掉处于背景中时占用较少CPU即可。

大坑1:千万不要直接download carla源码,一定要用git clone来下载!,因为不这样的话下载的版本可能就会出现与git相关的问题

fatal: bad revision 'HEAD’这个问题是与git相关的,用download可能会出现这个问题

**博主安装过程中主要参考了以下链接:**转给需要的同学
1.https://blog.csdn.net/feng0217/article/details/107186071?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163065732216780264067774%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163065732216780264067774&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-5-107186071.pc_search_result_cache&utm_term=carla+%E7%BC%96%E8%AF%91%E6%8A%A5%E9%94%99&spm=1018.2226.3001.4187

2.https://blog.csdn.net/feng0217/article/details/107186071?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163065732216780264067774%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163065732216780264067774&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-5-107186071.pc_search_result_cache&utm_term=carla+%E7%BC%96%E8%AF%91%E6%8A%A5%E9%94%99&spm=1018.2226.3001.4187

3.https://blog.csdn.net/maitianpt/article/details/108984885?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_utm_term~default-0.essearch_pc_relevant&spm=1001.2101.3001.4242

4.https://blog.csdn.net/DoHer/article/details/107121127?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163031518716780274180998%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163031518716780274180998&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v29_ecpm-3-107121127.first_rank_v2_pc_rank_v29&utm_term=Util%2FBuildTools%2FLinux.mk%3A83%3A+recipe+for+target+%27CarlaUE4Editor%27+failed&spm=1018.2226.3001.4187

5.https://zhuanlan.zhihu.com/p/44851915

6.https://www.jianshu.com/p/46e487fbf76c

7.https://blog.csdn.net/qq_17759721/article/details/106723581

8.https://blog.csdn.net/davidhopper/article/details/81485872?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163031518716780274180998%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163031518716780274180998&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v29_ecpm-2-81485872.first_rank_v2_pc_rank_v29&utm_term=Util%2FBuildTools%2FLinux.mk%3A83%3A+recipe+for+target+%27CarlaUE4Editor%27+failed&spm=1018.2226.3001.4187

9.https://blog.csdn.net/weixin_39880458/article/details/106874566?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163031518716780274180998%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163031518716780274180998&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v29_ecpm-1-106874566.first_rank_v2_pc_rank_v29&utm_term=Util%2FBuildTools%2FLinux.mk%3A83%3A+recipe+for+target+%27CarlaUE4Editor%27+failed&spm=1018.2226.3001.4187

10.https://blog.csdn.net/maitianpt/article/details/108984885?utm_medium=distribute.pc_relevant.none-task-blog-2defaultBlogCommendFromBaidudefault-4.essearch_pc_relevant&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2defaultBlogCommendFromBaidudefault-4.essearch_pc_relevant

源码编译安装卸载方法:
卸载源代码编译的的软件:
cd 源代码目录
make clean
./configure
(make)
make uninstall
rm -rf 目录

清理系统:
sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove

博主重新安装过程中又发现了许多新的坑,记录一下
1.make PythonAPI的时候报了下面的错误,网上查了一下,有可能是python版本的问题,缺少wheel包,安装完再升级一下即可。python环境为3.6.9。解决方法如下:
pip3 install wheel
pip3 install --upgrade wheel
pip3 install setuptools
pip3 install --upgrade setuptools
但是用 命令make PythonAPI ARGS="–python-version=2.7"采用系统自带的python27环境编译python接口时就不会报上面的问题。总之不管用那种python环境编译pythonapi,最终都会在/<your_carla_root>/PythonAPI/carla/dist路径下生成对应python版本的.whl和.egg文件,最后还要.egg文件配置到bashrc的环境变量里,如果环境变量配置的是27版本的.egg,那么在运行pythonapi脚本时用python xxxxx.py命令;如果环境变量配置的是36版本的.egg,如下图所示。那么在运行pythonapi脚本时用python3 xxxxx.py命令。

2.如果不make package的话每次启动carla就要在ue4编辑器下启动,及其麻烦和缓慢,因此执行make package生成可执行文件CarlaUE4.sh直接运行比较方便,在整个过程非常顺利没有报错,可是并没有生成CarlaUE4.sh,根据make package成功后的提示,package编译出来的内容在/<your_carla_root>/Dist下的CARLA_0.9.12-dirty.tar.gz。直接命令解压即可生成CarlaUE4.sh脚本,下次直接./CarlaUE4.sh执行即可

3.在运行Co_simulation/sumo下的sumo carla联合仿真脚本的时候报了下面的错误

大致意思是/co_simulation/sumo/sumo_integration/sumo_simulation.py这个脚本中304行,显示traci没有sumolib这个属性。这里说一下博主的sumo环境是1.11.0版本的源码编译版本,traci接口和sumolib是用pip3 install traci pip3 install sumolib安装的,安装完成后终端提示是安装的1.13.0版本的sumolib,博主猜测是因为sumolib traci 跟sumo的版本不匹配导致的原因,解决方法找到上面的.py脚本:

找到第304行,将代码原有的traci.删除即可,如上图所示解决!

4.在git clone下载好carla源码后,按照步骤首先进行./Update.sh脚本,但由于是国外的域名,用非会员的科学上网工具下载速度异常慢,解决方法更换下载镜像源,采用南方科技大学镜像源,先打开Update.sh脚本更改方法如下:
修改第50行如上图所示,下载速度直接起飞!

2022年10月18日重新装机更新bug:

报错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_0.9.12/Util/BuildTools/Setup.sh脚本,更改第428行XERCESC_VERSION=3.2.4如下图:

更改完这个脚本还不算完,后续在make PythonAPI的过程中还会报错recipe for target ‘osm2odr’ failed,具体报错当时没有截图

原因:刚才装的xerces库为3.2.4版本,只在setup.sh脚本中更改了相关的版本代号代码,下载之后的xerces库在下图位置

而编译osm2odr库的脚本内容中需要调用这个库,而脚本中的版本代号仍然为xerces-c-3.2.3…,由于我们更改setup.sh后安装的是xerces-c-3.2.4,所以文件路径不匹配,找不到xerces-c-3.2.3。

解决方案:
打开编译osm2odr库的编译脚本,BuildOSM2ODR.sh,路径为/Carla_0.9.12/Util/BuildTools/BuildOSM2ODR.sh
更改第100 101行如下:


将3.2.3改称3.2.4即可

Ubuntu18.04安装carla0.9.9 UE4.24踩坑版相关推荐

  1. ubuntu18.04 安装 CARLA0.9.10

    ubuntu18.04 安装 CARLA0.9.10 https://carla.readthedocs.io/en/0.9.10/build_linux/ 方法1 :Debian 安装 1. Set ...

  2. Ubuntu 16.04安装NVIDIA驱动(含各种踩坑经历)(GeForce GTX 970)

    本文为博主个人成功安装经验,其中有参考其他国内外网页资料.有可能针对少数系统情况下不适用吧~ 毕竟网上海量的安装经验针对我的电脑却无法安装成功,所以写下此篇经历希望能帮上此刻无助的你. 环境:已装双系 ...

  3. Ubuntu18.04安装Carla 记录

    官方文档:CARLA Simulator 方式一:简单快速安装,该方式有缺陷.需要使用虚幻引擎编辑器的高级定制和开发选项不可用. Advanced customization and developm ...

  4. ubuntu18.04安装pcl库

    参考Ubuntu18.04安装PCL 1.9.1(图文详解,附踩坑和测试)_ubuntu安装pcl_振华OPPO的博客-CSDN博客 遇到的问题 1 安装依赖时软件未满足依赖关系 sudo apt-g ...

  5. Ubuntu18.04安装搜狗输入法-问题全讲解

    Ubuntu18.04安装搜狗输入法 文章目录 Ubuntu18.04安装搜狗输入法 序言 细数Ibus的坑 坑一 坑二 坑三 坑四 转投fcitx的坑 从完全卸载fcitx输入框架开始 以最简配置安 ...

  6. Ubuntu18.04配置carla0.9.11踩坑与解决方法总结,同时解决安装carla-ros-bridge遇到的问题,并复现OpenCDA成功与ros关联

    Ubuntu18.04配置carla0.9.11踩坑与解决方法总结,同时解决安装carla-ros-bridge遇到的问题,并复现OpenCDA成功与ros关联 背景: 主要是为了复现叶小飞的Open ...

  7. Ubuntu18.04安装后要做的事

    Ubuntu18.04安装后要做的事 一.安装好第一件事:换源!! 按Windows键在搜索框中找到Software & Updates, 将源更新为阿里云的源. 在Other Softwar ...

  8. Ubuntu18.04 安装Proverif 和Syther_tool

    Ubuntu18.04 安装Proverif 和Syther_tool Proverif安装 安装ocaml4.05 安装graphviz 安装GTK+2.24 安装LabelGTK2 安装ProVe ...

  9. 【深度学习】Ubuntu18.04安装NVIDIA GTX960M驱动

    Ubuntu18.04安装NVIDIA GTX960M驱动 1 安装环境 2 准备工作 2.1下载驱动 2.2安装目标 3 安装步骤 3.1删除原有驱动 3.2禁用nouveau驱动 3.3禁用nou ...

  10. Ubuntu18.04 安装ROS Melodic(官方版) 之不使用科学方法

    此前记录了官方安装流程,参见Ubuntu18.04 安装ROS Melodic(官方版),但是受限于无法访问raw.githubusercontent.com,需科学方法才能成功安装,带来诸多不便,网 ...

最新文章

  1. 加法神经网络--AdderNet: DoWe Really Need Multiplications in Deep Learning?
  2. redis中的hash
  3. 消除warning方法
  4. .NET混淆器 Dotfuscator使用教程三:保护你的应用之检查受保护的程序集
  5. python科学计算笔记(十一)pandas中date_range生成指定日期
  6. Metadata Service 最高频的应用 - 每天5分钟玩转 OpenStack(164)
  7. 深入理解== 和 equals 的区别
  8. 小心!上万个 Android 和 iOS 应用正在泄露你的数据
  9. 【C++】常用查找算法
  10. 史上最全的HTML、CSS知识点总结,浅显易懂。
  11. iPhone各个机型屏幕尺寸
  12. torchvision.datasets.FashionMNIST报错[WinError 10054] 远程主机强迫关闭了一个现有的连接
  13. 【计算机毕业设计】251毕业论文管理系统设计与实现
  14. 华硕 PRIME Z490-PLUS+i7-10700K黑苹果EFI引导文件
  15. 咱们也真够疯狂的。。
  16. Type-C保温杯取电方案
  17. 安卓Android基于百度云平台人脸识别学生考勤签到系统设计
  18. 输入年月日判断当天是该年的第几天
  19. far manager引出的windows编码问题
  20. NCE开放可编程培训交流

热门文章

  1. 巴西游戏出海攻略,优质游戏出海市场
  2. 罗马数字转换python_Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
  3. SGE(集群任务管理系统)常用操作命令
  4. php session fixation,Session Fixation 攻防实战
  5. STM32实现的语音识别的智能垃圾桶
  6. Cesium for UE4 4.27 demo实现代码
  7. iov_iter操作
  8. 厦大计算机考研学硕,2021厦大计算机考研招生、复试、书目专业大解析!
  9. php mysql orm_初探PHP ORM框架Doctrine
  10. 远程服务器连接计算机和用户名填写,windos系统服务器:添加远程连接用户名方法...