在Ubuntu 20.04中安装CARLA

0. 引言

CARLA (Car Learning to Act) 是一款开源自动驾驶模拟器,其支持自动驾驶系统全管线的开发训练验证(Development, Training, and Validation of autonomous driving systems)。Carla提供了丰富的数字资产,例如城市布局(Urban layouts)、建筑物(Buildings)、车辆(Vehicles),并支持多项功能——包括灵活的传感器配置、环境条件、对静态和动态Actors的控制、地图生成等。Carla使得研究人员和工程师能够在虚拟环境中模拟复杂的城市交通环境,生成多样化的场景数据,极大地降低自动驾驶算法路测时的成本和风险。

  • Carla 官方网站

CARLA: Open-source simulator for autonomous driving research.icon-default.png?t=O83Ahttps://carla.org/

  • Carla 学术论文(随着论文版本更新链接可能失效,当前为v78)

CARLA: An Open Urban Driving Simulatoricon-default.png?t=O83Ahttps://proceedings.mlr.press/v78/dosovitskiy17a/dosovitskiy17a.pdf

Carla 的亮点功能:

  • 可扩展性(Scalability via a server multi-client architecture):通过服务器多客户端架构实现扩展性,多个客户端可以在同一节点或不同节点上控制不同的Actors

  • 灵活的API(Flexible API):CARLA的API允许用户控制与仿真相关的各个方面,包括交通生成、行人行为、天气、传感器等

  • 自动驾驶传感器套件(Autonomous Driving sensor suite):用户可以配置多样化的传感器套件,包括激光雷达(LIDAR)、多摄像头、深度传感器、GPS等

  • 快速仿真(Fast simulation for planning and control):提供快速仿真模式,该模式关闭了渲染功能,以便快速执行不需要图形的交通仿真和道路行为

  • 地图生成(Maps generation):用户可以通过RoadRunner等工具,根据ASAM OpenDRIVE标准创建自定义地图

  • 交通场景仿真(Traffic scenarios simulation):ScenarioRunner引擎允许用户基于模块化行为定义并执行不同的交通场景

  • ROS集成(ROS integration):CARLA通过ROS-bridge实现了与ROS的集成

  • 自动驾驶基线(Autonomous Driving baselines):CARLA中提供了自动驾驶Baselines,包括AutoWare Agent和基于条件模仿学习的Agent(Conditional Imitation Learning agent)

1. Carla安装步骤

本部分给出详细步骤,介绍如何在 Ubuntu 20.04系统中安装 CARLA。根据以下图片所示的软件依赖关系,ROS bridge需要基于ROS2 Foxy,因此也需要Ubuntu 版本为Ubuntu 20.04(Focal Fossa)。

ROS Bridge版本依赖要求

ROS2 Foxy版本依赖要求

根据以上安装指南,可确定所涉及的各软件版本应为

  • Ubuntu 20.04 (不可使用虚拟机系统)

  • ROS2 Foxy

  • Carla 0.9.13

本人的GPU软硬件环境如下:

1)安装依赖项

  • 安装Python3的pip,并升级pip

sudo apt install python3-pip
pip3 install --upgrade pip
  • 安装必要的Python库

pip3 install --user pygame numpy
pip3 install opencv-python
pip3 install carla
  • 安装系统库

sudo apt install libomp5
sudo apt install ros-foxy-derived-object-msgs

2)下载并配置CARLA模拟器

  • 前往CARLA的GitHub发布页面,下载适用于Linux/Ubuntu的Carla 0.9.13压缩包,文件名为CARLA_0.9.13.tar.gz

  • 解压并进入CARLA目录

# 定位至Carla解压后的文件夹路径,例如 cd /home/yaoyao/Documents/CARLA_0.9.13
cd <path-to-carla>
  • 首次运行CARLA需要导入配置文件

./ImportAssets.sh
  • 运行CARLA模拟器

./CarlaUE4.sh

此时,命令行会提示如下内容,并在新的CarlaUE4窗口中显示一个城市街景图。

yaoyao@u2004:~/Documents/CARLA_0.9.13$ ./CarlaUE4.sh
4.26.2-0+++UE4+Release-4.26 522 0
Disabling core dumps.

3)安装ROS2

  • 使用鱼香ROS一键安装ROS2。安装过程中,选择ROS2 Foxy版本
wget http://fishros.com/install -O fishros && . fishros 

4)安装carla_ros_bridge

  • 创建carla-ros bridge工作空间并进入,以下示例代码为将carla-ros-bridge安装在根目录下

mkdir -p ~/carla-ros-bridge && cd ~/carla-ros-bridge
  • 克隆carla_ros_bridge仓库
git clone --recurse-submodules https://github.com/carla-simulator/ros-bridge.git src/ros-bridge
  • source ROS2环境(应根据foxy setup.bash的实际安装目录进行修改)

source /opt/ros/foxy/setup.bash

5)安装ROS功能包依赖rosdep

rosdep是ROS的依赖管理工具,用于安装ROS包所需的系统依赖项,确保环境的一致性。继续使用鱼香ROS安装rosdep:

wget http://fishros.com/install -O fishros && . fishros
  • 更新rosdep数据库
rosdepc update
  • 安装依赖项
cd /opt/ros/foxy
rosdepc install --from-paths src --ignore-src -r
  • 编译carla_ros_bridge
cd ~/carla-ros-bridge
colcon build

请注意,第一次编译时可能会出现stderr: pcl_recorder错误。

  • 再次运行colcon编译命令,解决此stderr错误
colcon build

6)配置Python环境变量

  • 更新Python环境变量,使用sudo gedit ~/.bashrc命令,将以下语句添加至 ~/.bashrc
export CARLA_ROOT=/home/yaoyao/CARLA_ROS/CARLA_0.9.13
export PYTHONPATH=$PYTHONPATH:$CARLA_ROOT/PythonAPI/carla/dist/carla-0.9.13-py3.7-linux-x86_64.egg:$CARLA_ROOT/PythonAPI/carla
  • 修改~/.bashrc如下图第157-158行所示。其中,carla-0.9.13-py3.7-linux-x86_64.egg应能在Carla安装目录的.../PythonAPI/carla/dist/目录下找到。

7)修复bool类型错误

NumPy版本更新后,numpy.bool类型被弃用,运行过程中可能会遇到以下错误:

TypeError: data type 'numpy.bool' not understood
  • 为了解决上述兼容性问题,首先定位至packages文件夹 

cd ~/carla-ros-bridge/install/carla_ros_bridge/lib/python3.8/site-packages/carla_ros_bridge
  • 使用gedit等文本处理工具,将camera.py的第455行('pol', numpy.bool)修改为('pol', bool)

以上各个步骤即完成了Carla的安装。

2. 启动基本测试

由于ROS2采用分布式节点架构,每个节点可能在不同的终端或机器上运行。为了同时运行CARLA模拟器和ROS2 Bridge,需要在不同的终端中启动。

  • 第一个终端:启动CARLA模拟器(根据实际安装目录修改路径)

-carla-rpc-port=2000:指定CARLA的RPC端口,默认为2000

carla_ros_bridge.launch.py:启动ROS桥接节点,与CARLA进行通信

cd /home/yaoyao/Documents/CARLA_0.9.13
./CarlaUE4.sh -carla-rpc-port=2000
  • 第二个终端:启动ROS Bridge
cd ~/carla-ros-bridge
source ./install/setup.bash
ros2 launch carla_ros_bridge carla_ros_bridge.launch.py

Carla的运行界面会变为如下图所示的街景:

或者,第二个终端也可启动带有示例车辆的案例。即不运行上述ros2 launch carla_ros_bridge carla_ros_bridge.launch.py,而是执行以下代码:

cd ~/carla-ros-bridge
source ./install/setup.bash
ros2 launch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch.py

将出现CARLA ROS manual control窗口,可以通过键盘进行车辆控制。

控制说明:

  • H:显示帮助信息

  • B:切换手动驾驶模式

  • P:切换自动驾驶模式

3. 总结

本教程涉及了在Ubuntu系统上安装CARLA模拟器的详细步骤,并配置了ROS2和carla_ros_bridge。安装成功后可在ROS 2环境中与CARLA进行交互,进行自动驾驶相关的开发和测试。

常见问题

  • Anaconda的安装可能导致Python环境问题

    在安装与运行ROS2和CARLA时,不要激活如已安装的Anaconda环境:

# Anaconda将在启动终端时不再自动激活base环境
conda config --set auto_activate_base false
  • CARLA模拟器运行缓慢

    尝试使用低质量模式运行,或者升级硬件配置。不应使用虚拟机运行Carla。

# 以低分辨率运行Carla
./CarlaUE4.sh -quality-level=Low

参考资料

您可以通过以下步骤在 Ubuntu 20.04 安装 CARLA: 1. 打开终端并登录 root 账户。 2. 确保您的系统已更新并安装了所有必要的依赖项。 sudo apt-get update sudo apt-get install build-essential python3-pip python3-dev python3-numpy git libpng-dev libtiff-dev libjpeg-dev libopenal-dev libsndfile1-dev openjdk-8-jdk cmake 3. 克隆 CARLA 存储库。 git clone https://github.com/carla-simulator/carla.git cd carla git checkout {VERSION-TAG} 4. 安装依赖项。 pip3 install -r requirements.txt sudo apt-get install python3.7-dev 5. 使用 CMake 构建和安装 CARLA。 mkdir build && cd build cmake .. \ -DARCH=$(uname -m) \ -DCMAKE_BUILD_TYPE=Release \ -DPYTHON=$(which python3) \ -DPYTHON_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \ -DPYTHON_LIBRARY=$(python3 -c "from distutils.sysconfig import get_config_var;from os.path import dirname, join; print(join(dirname(get_config_var('LIBPC')),get_config_var('LDLIBRARY')))") \ -DPYTHON_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \ -DBUILD_SERVER=ON \ -DBUILD_LIBCARLA=ON \ -DSTATIC_BUILD=False \ -DPYTHONAPI_TEST=OFF \ -DBUILD_CARLA_PYTHON=ON make -j$(nproc) sudo make install 请注意,这个过程可能需要一些时间,具体取决于您的计算机配置。完成后,您可以在 /home/username/carla 命令下找到 CARLA 文件夹并启动模拟器。 请注意,此方法仅适用于 CARLA 版本 0.9.10.1。如果版本有所不同,您可能需要更改一些依赖项和配置设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值