ubuntu18.04 源码编译Carla0.9.13

一、简介

        虽然今天已经是2022年8月25日,Ubuntu已经发布到了22.04。但是为了减少不必要的麻烦,我们还是使用官网推荐的Ubuntu18.04系统来编译Carla源码。

首先,请先查看官网教程https://carla.readthedocs.io/en/0.9.13/build_linux/,再来使用本教程安装Carla。

注意:如果将操作系统安装在移动硬盘中,不要使用机械硬盘,会非常慢。可以选一个固态硬盘,根据自己的选择,插上电脑雷电口,最快读写速度可以达到1000+MB/s。

二、安装Ubuntu18.04

默认已经安装好,不做介绍

三、安装NVIDIA驱动

默认已经安装好

没安装的,见如下链接

https://www.cnblogs.com/chenjian688/p/16202512.html

四、安装基础系统工具

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

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 180

# For Python 3
pip3 install --upgrade pip

# For Python 2
pip install --upgrade pip


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

五、安装UE4引擎

1、首先注册UE账号

https://www.unrealengine.com/id/register?redirect_uri=https%3A%2F%2Fwww.unrealengine.com%2Fen-US%2Fue-on-github&client_id=932e595bedb643d9ba56d3e1089a5c4b

2、然后注册GitHub账号

https://github.com/

3、在UE4个人中心中关联GitHub账号

如下网址是关联的教程图

https://www.unrealengine.com/en-US/ue-on-github

4、在GitHub中加入UE4工程团队

https://github.com/EpicGames,点击网址,登录GitHub后,网页顶端会有一个要求提示,同意即可。

5、下载并编译UE4

#1. Clone the content for CARLA's fork of Unreal Engine 4.26 to your local computer:
git clone --depth 1 -b carla https://github.com/CarlaUnreal/UnrealEngine.git ~/UnrealEngine_4.26

#这个语句执行后会让你输github的账号密码,但是这个密码不是你登陆的密码,是需要生成token!
具体方法参考如下链接
https://blog.csdn.net/m0_51693209/article/details/124664968
#最后会生成一长串数字,这个就是你需要输入的密码。
 
#2. Navigate into the directory where you cloned the repository:
cd ~/UnrealEngine_4.26
 
#3. Make the build. This may take an hour or two depending on your system.
./Setup.sh && ./GenerateProjectFiles.sh && make
  
#4. Open the Editor to check that Unreal Engine has been installed properly.
cd ~/UnrealEngine_4.26/Engine/Binaries/Linux && ./UE4Editor

注意:UE4的Carla分支git下来大约1.7g,但是编译中会继续下载依赖,./Setup.sh大约会下载11-12G资源

等命令行不再刷新,界面不再变化,就是UE4编译完成,可以关闭界面,进行下一步了

六、安装Carla

1.安装工具

sudo apt-get install aria2
sudo apt install vulkan-utils

2.克隆源码

因为目master分支就是0.9.13,所以直接克隆主分支,如果以后有更新,记得克隆指定分支

git clone https://github.com/carla-simulator/carla

3.、进入根目录,进行更新资源和编译操作

cd ~/carla/

4、更改下载资源的脚本

第一次安装:

将~/carla/Update.sh中的rm Content.tar.gz屏蔽,保留下来,用于以后使用

第二次安装:

将之前下载的Content.tar.gz复制到Carla工程根目录,然后屏蔽wget -c ${CONTENT_LINK} -O Content.tar.gz

./Update.sh

5、设置虚幻引擎安装位置的环境变量

echo "export UE4_ROOT=~/UnrealEngine_4.26" >> ~/.bashrc
source ~/.bashrc

6、编译PythonAPI和服务器

#在carla根目录运行命令,中途下载的库都在Build目录下,默认会删除下载的库文件,只保留编译后的头文件和.so

make PythonAPI
#make PythonAPI ARGS="--python-version=2.7, 3.6, 3.7, 3.8" 官方输出指定Python API命令可能有问题
#make PythonAPI ARGS="python-version=2.7, 3.6, 3.7, 3.8"

make launch

七、发布二进制版本的Carla

make package

在Carla根目录运行上述命令,会在~/carla/Dist中生成和github上一样的预编译版本的压缩包。如果没有生成可能是没有成功,多运行几次。

八、将roadrunner导出的.xodr和.fbx文件导入Carla

按照如下官方教程,在指定位置放好文件然后在carla根目运行make import即可。

https://carla.readthedocs.io/en/0.9.13/tuto_M_manual_map_package/

九、make package导出二进制版本的Carla时,怎么将自建地图也打包?

通过查询github上的提问,可以通过以下方法打包。

注意:上述添加的包路径,最底层目录不要加/,软件选择的目录可能生成pakcage01/Maps/taizihu/Opendrive/,将最后的斜杠删除,不然编译报错

十、和sumo联合仿真

安装及运行教程链接

https://blog.csdn.net/weixin_52944278/article/details/124402873

可能遇到的问题:

1、no model carla

python中对carla的api引用可以直接使用egg文件。

try:
    sys.path.append(glob.glob('../carla/dist/carla-*%d.%d-%s.egg' % (
        sys.version_info.major,
        sys.version_info.minor,
        'win-amd64' if os.name == 'nt' else 'linux-x86_64'))[0])
except IndexError:
    pass

如果你的Python版本是3以上,使用Python3以上的egg就可以的。自己的Python是3.8,官方默认输出的是3.7,会造成找不到carla的问题。
将sys.version_info.minor改为7即可

2、运行python run_synchronization.py examples/Town04.sumocfg --sumo-gui这个指令的时候出现了 sumo_net = traci.sumolib.net.readNet(net_file)
AttributeError: module 'traci' has no attribute 'sumolib'这个错误

这是因为sumolib是独立的包,不在traci里面,你需要把carla/Co-Simulation/Sumo/sumo_integration/sumo_simulation.py的304行的这一句代码改成sumo_net = sumolib.net.readNet(net_file)

posted @ 2022-08-25 13:59  chenjian688  阅读(1528)  评论(0编辑  收藏  举报