禁止转载到任何平台!!!本意只是为了帮助和我一样对carla摸索学习中的朋友们,希望文章对你们有一点点帮助~

1.软件下载版本列表

ubuntu版本为18.04 [本文为18.04与20.04混合教程]
UnrealEditor版本4.26
carla版本0.9.12/0.9.13 都行

注意

为了避免出现黑屏问题后来我改用了ubuntu 20.04 ,但18.04的版本经过我本人测试也可以用的,所以文章中有因为不同版本而导致的命令不同,请注意甄别后复制。
由于ros-bridge要求环境太复杂了我老报莫名其妙的错误,我最后直接使用python脚本控制carla,所以本文的56部分虽然经过测试确实可以实现,但仅作参考。


强烈建议使用20.04作为ubuntu环境


2.硬件环境

由于carla官网推荐显存8G,内存大于16G,硬盘大于100G,CPU十代I7以上
本人使用电脑配套硬件环境如下:
核显:AMD 独显:Nvidia

3.安装流程

3.1 安装驱动

ubuntu-drivers devices

记住recommended的代码,如这里的470,不要选择有带有open/开源字眼的
在这里插入图片描述
更新一下软件包

sudo apt update
sudo apt upgrade

安装驱动(xxx填写你的推荐驱动)

sudo apt install nvidia-driver-xxx

nvidia-smi测试一下是否成功安装,若出现“NVIDIA_SMI has failed because it couldn’t communicate with the NVIDIA driver.”,运行下列代码

sudo modprobe nvidia

nvidia-smi成功应该出现:
在这里插入图片描述
这里没问题但电脑重启出现黑屏问题的,请看这个解决办法(驱动黑屏解决办法
不过最好的解决办法还是装20.04哈

3.2 安装CUDA

打开英伟达控制面板(NVIDIA Control Panel)→帮助→系统信息→组件,查询自己的显卡配置和允许安装的CUDA最高版本
如这里是最高能安装CUDA10.2

根据电脑允许下载的版本,在CUDA Toolkit Archive | NVIDIA Developer 选择要下载的CUDA Archived Releases版本,选择Linux - x84_64 - Ubuntu - 18.04 - deb(local),将出现安装命令,将其一条一条的输入到Ubuntu的终端中。

Ubuntu20.04的同学请选择:Linux - x84_64 - Ubuntu - 20.04 - deb(local)

安装成功后在终端输入sudo vim ~/.bashrc 打开bashrc文件,在末行添加

export PATH=/usr/local/cuda-11.7/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

注意CUDA版本写到11.x就行

完成后按esc键,输入:wq保存修改

在终端输入sudo source ~/.bashrc 更新环境变量

nvcc -V 测试是否安装成功,如图所示

3.3 安装anaconda

进入Free Download | Anaconda,选择Get Additional Installers 下的Linux企鹅图标进入后右键复制64-Bit(x86)Installer 链接

在终端输入wget+空格+链接 (示例)

wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh

安装完成后sh+空格+sh文件(示例)

sh Anaconda3-2024.02-1-Linux-x86_64.sh

安装中一直按回车键,到条款15.12,提示后键入yes,提示Anaconda 将安装到home/user文件夹下,再次按回车键
提示安装成功“Thank you for installing Anaconda3”
重启终端路径前将出现(base),如果没有出现,在bashrc文件末尾加上

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/yuan/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/yuan/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/home/yuan/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/yuan/anaconda3/bin:$PATH"
        fi
    fi

其中/home/yuan/anaconda3是anaconda的安装位置
source ~/.bashrc后可以看见虚拟环境(base)

3.4 安装虚拟环境

conda create --name xxx python=3.7 (xxx为环境名)

后面我改成安装python=3.8了,但最好还是就用3.7吧

安装成功后激活

conda activate xxx

3.5 安装pytorch

终端输入

conda install pytorch torchvision torchaudio cpuonly -c pytorch

在base环境和新建的虚拟环境下都输入

conda install jupyter

通过以下语句测试pytorch

import torch
torch.__version__

测试是否安装成功

3.6 安装UE4

安装依赖

在终端依次键入

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 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
sudo apt-get update

Ubuntu20.04的同学:
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/ ( l s b r e l e a s e − c − − s h o r t ) / l l v m − t o o l c h a i n − (lsb_release -c --short)/ llvm-toolchain- (lsbreleasecshort)/llvmtoolchain(lsb_release -c --short)-8 main”
sudo apt-get update

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

注册github及UE账号

注册虚幻引擎 | 推送 - Unreal Engine账号

注册GitHub: Let’s build from here · GitHub账号

设置个人token:

进入Sign in to GitHub · GitHub 或 登录github后点击头像-setting - Developer Setting - Personal access tokens - Tokens(classic)

选择New personal access token (classic)

自定义note,选择Expiration到期时间,全勾选Select scopes,点击Generate token,记住自己的用户名以及key(只显示一次,刷新网页后消失)

将Github与UnrealEngine关联

1.使用经过验证的Epic Games帐户登录UE网站,单击网站标题栏中的用户名,然后选择个人选项。
从菜单中选择连接的帐户。
2.单击GitHub图标下方的连接按钮。
3.查看《虚幻引擎最终用户许可协议》并选中对应复选框接受该协议,然后单击关联您的帐户按钮(如果已经接受了最新版本的《虚幻引擎最终用户许可协议》,则不会显示该提示)。
4.登录现有GitHub帐户
5.单击授权按钮,完成关联流程
6.在https://github.com/EpicGames点击follow加入UE团队
关联成功

正式安装UE4.26

sudo apt install git
git clone --depth=1 -b 4.26 https://github.com/EpicGames/UnrealEngine.git ~/UnrealEngine_4.26

这里要求输入账户名和令牌,按照之前记住的名字和key输入即可

cd ~/UnrealEngine_4.26
./Setup.sh && ./GenerateProjectFiles.sh && make

在bashrc文件末行加入,方法同3.2

export UE4_ROOT=~/UnrealEngine_4.26

安装完成后,使用该语句测试是否正常打开UE4

cd ~/UnrealEngine_4.26/Engine/Binaries/Linux && ./UE4Editor

3.7 安装build from source/源码的carla

conda activate carla(我们假设之前虚拟环境名为carla)
cd ~
git clone -b carla0912 --single-branch --depth=1 --branch 0.9.12 https://github.com/carla-simulator/carla

这里我们示例下载的是0.9.12版本

cd ~/carla
git checkout tags/0.9.12 -b carla0912
./Update.sh

这里修改三个文件,路径home/yuan是carla文件下载的地址
注意看xerces网站最新版本号的版本号,目前是3.2.5(2024年3月)
修一:/home/yuan/carla/Util/BuildTools/Setup.sh 428行改为

XERCESC_VERSION=3.2.5(最新版本号)

修改二:/home/yuan/Carla/Util/BuildTools/BuildOSM2ODR.sh 100行以后改为以下
(修改的地方也是版本号)

      -G "Eclipse CDT4 - Ninja" \
      -DCMAKE_INSTALL_PREFIX=${LIBCARLA_INSTALL_CLIENT_FOLDER} \
       -DPROJ_INCLUDE_DIR=${CARLA_BUILD_FOLDER}/proj-install/include \
      -DPROJ_LIBRARY=${CARLA_BUILD_FOLDER}/proj-install/lib/libproj.a \
      -DXercesC_INCLUDE_DIR=${CARLA_BUILD_FOLDER}/xerces-c-3.2.5-install/include \
      -DXercesC_LIBRARY=${CARLA_BUILD_FOLDER}/xerces-c-3.2.5-install/lib/libxerces-c.a \ 
  ninja osm2odr
  ninja install

修改三 /home/yuan/Carla/Util/BuildTools/BuildCarlaUE4.sh 第一行加入

UE4_ROOT=~/UnrealEngine_4.26

在bashrc文件末行加入并保存

export CPLUS_INCLUDE_PATH=<你的anaconda虚拟环境路径>/include/python3.7m
(示例)export CPLUS_INCLUDE_PATH=/home/yuan/anaconda3/envs/carla/include/python3.7m

修改后利用以下两条命令更新到仓库

git add .
git commit -m "Apply stashed changes"

进入carla目录下

make PythonAPI
make launch

3.8 安装Precomiled/预编译版本的Carla

SUSTech Open Source Mirrors下载AdditionalMaps_0.9.13.tar.gz和CARLA_0.9.13.tar.gz

conda activate xxx 
(进入之前安装好的虚拟环境)
(一定要在虚拟环境中安装carla)

(注意:为避免忘记使carla在虚拟环境下运行,可以在bashrc文件末尾加入conda activate xxx

在预备安装carla的文件夹路径下解压缩carla文件,将得到名为carla_0.9.13的文件

tar -xzvf CARLA_0.9.13.tar.gz

拷贝地图文件到指定文件夹

cp AdditionalMaps_0.9.13.tar.gz carla_0.9.13/Import

运行导入地图脚本,安装客户端插件

cd carla_0.9.13
sh ImportAssets.sh
cd PythonAPI/carla/dist/
pip install carla-0.9.13-cp37-cp37m-manylinux_2_27_x86_64.whl

4 运行carla测试(使用独显),并运行示例程序

终端1

cd carla_0.9.13
./CarlaUE4.sh -prefernvidia

终端2

cd ~/carla-0.9.13/PythonAPI/examples
python manual_control.py

5 ros bridge搭建与测试

5.0 ROS的安装

ubuntu18.04见这虚拟机/双系统 Ubuntu18.04安装ros语句

ubuntu20.04见这虚拟机/双系统 Ubuntu20.04安装ros语句

5.1 git clone ros-bridge

mkdir -p ~/carla-ros-bridge/catkin_ws/src
cd ~/carla-ros-bridge
git clone https://github.com/carla-simulator/ros-bridge.git
cd ros-bridge
git submodule update --init
cd ../catkin_ws/src
ln -s ../../ros-bridge
source /opt/ros/noetic/setup.bash 

成功后

cd ..
rosdep update
rosdep install --from-paths src --ignore-src -r

将显示All required rosdeps installed successfully

 catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

成功

source ~/carla-ros-bridge/catkin_ws/devel/setup.bash
export PYTHONPATH=$PYTHONPATH:<path/to/carla/>/PythonAPI/<your_egg_file>
# 举个例子: export PYTHONPATH=$PYTHONPATH:/home/yuan/carla/PyhtonAPI/carla/dist/carla-0.9.13-py3.8-linux-x86_64.egg

5.2安装相关模块

cd ~/carla-ros-bridge/catkin_ws/src/ros-bridge/
pip install -r requirements.txt
python
> import carla

6 运行carla并启动carla ros bridge

启动UE4

cd ~/carla_0.9.13
./CarlaUE4.sh -prefernvidia

可以用鼠标移动视角看一下电脑卡不卡
Attention: 以下命令每次roslaunch都要进行

source ~/carla-ros-bridge/catkin_ws/devel/setup.bash

正式开始测试

关闭所有终端后,进入虚拟环境,打开4个新终端
(建议直接在~./bashrc中加入conda activate xxx,这样每次打开终端会直接进入虚拟环境)

cd ~/carla_0.9.13
./CarlaUE4.sh -prefernvidia
cd ~/carla-ros-bridge/ros-bridge
source ~/carla-ros-bridge/catkin_ws/devel/setup.bash
roslaunch carla_ros_bridge carla_ros_bridge.launch
cd ~/carla-ros-bridge/ros-bridge
source ~/carla-ros-bridge/catkin_ws/devel/setup.bash
roslaunch carla_spawn_objects carla_spawn_objects.launch 
cd ~/carla-ros-bridge/ros-bridge
source ~/carla-ros-bridge/catkin_ws/devel/setup.bash
roslaunch carla_manual_control carla_manual_control.launch 

按B后操纵
在这里插入图片描述
中间也许会报错No module named xxx
一些解决方案如下:

which pip
#寻找pip文件夹位置
#比如这里有~/anaconda3/envs/carla/bin/pip
#记住这个~/anaconda3/envs/carla/bin
cd ~/anaconda3/envs/carla/bin
pip install PyYAML #解决No module named yaml 
pip install rospkg #解决No module named rospkg
pip3 install opencv-python #解决No module named cv2
pip install transforms3d #解决No module named transforms3d

OK,到这里测试成功~
第一次打开没问题之后可以只打开两个终端速开

cd ~/carla_0.9.13
./CarlaUE4.sh -prefernvidia
cd ~/carla-ros-bridge/ros-bridge
source ~/carla-ros-bridge/catkin_ws/devel/setup.bash
roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch

7 其他参考资料

​​​​ ​​​​​​​Linux 换源方法_linux_DK数据工作室-华为云开发者联盟
ubuntu20.04 安装carla0.9.13预编译版以及carla ros bridge
dl.google连接不上的问题
解决系统Info:I: The initramfs will attempt to resume from /dev/sdxx I: (UUID=XXXX…)

一些bug的解决办法

sudo apt install python3-pip
sudo apt-get install libomp5
sudo sysctl dev.i915.perf_stream_paranoid=0
pip3 install --user pygame numpy

Logo

分享最新的 NVIDIA AI Software 资源以及活动/会议信息,精选收录AI相关技术内容,欢迎大家加入社区并参与讨论。

更多推荐