自动驾驶ros-carla规控算法设计+测试全记录[安装已完结,实验测试中]
自用,禁止转载至任何平台
禁止转载到任何平台!!!本意只是为了帮助和我一样对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最高版本
根据电脑允许下载的版本,在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- (lsbrelease−c−−short)/llvm−toolchain−(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账号
注册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
更多推荐




所有评论(0)