当前位置: 首页 > article >正文

在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软硬件环境如下:

  • RTX 2070 + GPU Driver Version: 535.183 + CUDA Version: 12.2 (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

参考资料

  • CARLA官方文档

  • 鱼香ROS

  • ROS2入门21讲 • 古月


http://www.kler.cn/news/331280.html

相关文章:

  • VMware ESXi 8.0U3b macOS Unlocker OEM BIOS 2.7 Dell HPE 定制版 9 月更新发布
  • 物流行业中的AI平台架构与智能化应用
  • 【计算机基础理论】图灵机(Turing Machine)
  • 以企业的视角进行大学生招聘
  • IT新秀系列:Go语言的兴起
  • 什么是 JWT?它是如何工作的?
  • jmeter学习(1)线程组与发送请求
  • 15分钟学 Python 第34天 :小项目-个人博客网站
  • 【H2O2|全栈】关于CSS(9)CSS3扩充了哪些新鲜的东西?(二)
  • 一个基本的包括爬虫、数据存储和前端展示框架0
  • 【Android 14源码分析】WMS-窗口显示-第二步:relayoutWindow -1
  • MISC - 第11天(练习)
  • unity3D雨雪等粒子特效不穿透房屋效果实现(粒子不穿透模型)
  • 在一个克隆的仓库中设置远程仓库并同步最新的更改
  • SpringBoot实现的师生健康信息管理平台
  • [Docker学习笔记]Docker的原理Docker常见命令
  • flink:java集成flink实现流数据处理(一)
  • Linux——环境变量
  • 获取unity中prefab的中文文本内容以及和prefab有关的问题
  • C++拾趣——绘制Console中圆形进度