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

Ubuntu 22.04 的 ROS 2 和 Carla 设置指南(其一)

重点介绍适用于 Ubuntu 22.04 的全面 ROS 2 和 Carla 设置指南。我们将首先安装 Terminator 终端,然后安装 ROS 2 依赖项,然后继续安装 ROS 2 Humble。接下来,我们将介绍如何在 Ubuntu 22.04 上安装 Carla,最后通过设置 Carla ROS Bridge 将 ROS 2 与 Carla 集成。此外,我们将探索如何在支持 NVIDIA Container Toolkit 的 Docker 上安装 Carla,最后介绍如何从 Ubuntu 中删除 ROS 2 和 Carla。

ROS 2 或 Robot Operating System 2 是一个开源机器人中间件框架。这是一个由 Open Robotics 维护的十年前的项目,由于可用的开源中间件框架很少,因此在许多机器人公司中广泛使用。

CARLA 是一个用于自动驾驶研究的开源模拟器。它使用 Unreal Engine 构建,提供了一系列功能,例如运行模仿学习模型、强化学习模型以及与 AutoWare AV 堆栈、ROS 等集成。


  1. 安装 Terminator
     
  2. 如何在 Ubuntu 22.04 上安装 ROS 2 Humble
  3. Carla Simulator 安装 Ubuntu 22.04
  4. Carla ROS 2 Bridge 设置
  5. 使用 Docker 设置 Carla
  6. 在 Ubuntu 22.04 中安装适用于 Docker 的 NVIDIA Container Toolkit
  7. 在 Docker 中安装 Carla
  8. 卸载 ROS 2 Humble
  9. 卸载 Carla 和 ros-bridge
  10. 从 Ubuntu 22.04 中删除 Docker 镜像和卸载 Docker
  11. 结论
  12. 引用

每年的世界海龟日,都会发布一个新的 ROS 版本。然而,将 ROS 与 Carla 集成的发展速度一直很慢。因此,即使 ROS 2 已经升级到 Jazzy Jalisco(截至 2024 年 5 月 23 日),Carla 也不支持此版本。此外,不支持 ROS 2 Humble 或 Galactic。目前,Carla 仅支持 Ubuntu 20.04 上的 ROS 2 Foxy。

提供有关 ROS 2 和 Carla 的详细文章,从而进入最终项目:构建用于静态避障的 6DoF 自动驾驶汽车

  • 在继续安装过程之前,我假设您有一个带有 Nvidia RTX 系列 GPU 的系统,>= 6GB GPU RAM,Ubuntu 22.04 作为您的作系统,并且您已经安装了 Nvidia-driver 和 cuda-toolkit。
  • 如果您在遵循此 ROS 2 和 Carla 设置指南时遇到任何意外问题,请查看本文底部的官方文档。
安装 Terminator

Terminator Terminal Emulator 或简称 Terminator 是一个用 python 编写的开源 GNOME 终端,比简单的 Ubuntu 终端具有更多的功能。这已被机器人社区广泛使用,因为它易于使用 key-binding,并且能够以网格状结构排列终端。要安装它,请运行以下命令。

$ sudo apt install terminator

如何在 Ubuntu 22.04 上安装 ROS 2 Humble

以下是在 Ubuntu 22.04 上安装 ROS 2 Humble 的说明。下面的代码单元格包含所有需要执行的命令。如果您对任何命令有任何疑问,请务必阅读单元格下方的说明。

1. 安装 ROS 2 Humble

1.1 检查 utf-8:

使用命令检查 UTF-8 编码 ;如果不存在,请执行命令 。无论是否具有 UTF-8,您都可以运行以下所有命令。localelocale

# if locale shows below output, no need to execute 
# below commands# Expected output from command `locale`
# LANG=en_US.UTF-8
# LANGUAGE=en_IN:en
# LC_CTYPE="en_US.UTF-8"
# LC_NUMERIC="en_US.UTF-8"
# LC_TIME="en_US.UTF-8"
# LC_COLLATE="en_US.UTF-8"
# LC_MONETARY="en_US.UTF-8"
# LC_MESSAGES="en_US.UTF-8"
# LC_PAPER="en_US.UTF-8"
# LC_NAME="en_US.UTF-8"
# LC_ADDRESS="en_US.UTF-8"
# LC_TELEPHONE="en_US.UTF-8"
# LC_MEASUREMENT="en_US.UTF-8"
# LC_IDENTIFICATION="en_US.UTF-8"
# LC_ALL=en_US.UTF-8$ locale  # check for UTF-8$ sudo apt update && sudo apt install locales
$ sudo locale-gen en_US en_US.UTF-8
$ sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
$ export LANG=en_US.UTF-8
$ locale  # verify settings
1.2 添加 ROS 2 apt 仓库

您需要将 ROS 2 apt 存储库添加到您的系统中。首先,确保已启用 Ubuntu Universe 存储库。

$ sudo apt install software-properties-common
$ sudo add-apt-repository universe

现在使用 apt 添加 ROS 2 GPG 密钥。

$ sudo apt update && sudo apt install curl -y
$ sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

然后将存储库添加到您的源列表中。

$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
1.3. apt 软件包更新:

执行 apt package update 和 upgrade,

$ sudo apt update
$ sudo apt upgrade

在 Ubuntu 22.04 上,要使 humble 正常工作,您需要并进行更新。要查看这些软件包是否为最新版本,请使用以下命令systemdudev

$ sudo apt-get install --only-upgrade udev systemd
1.4 安装 ROS 2 Humble:

现在,让我们使用 apt 包管理器安装 ROS 2。官方文档建议安装该软件包,因为它包括 ROS 2、RViz、演示、Gazebo、教程等,所有这些都捆绑在一起。但是,如果您更喜欢单独安装 Gazebo,则可以改用该软件包。ros-humble-desktop-fullros-humble-desktop

$ sudo apt install ros-humble-desktop-full# OR$ sudo apt install ros-humble-desktop
1.5 获取 .bashrc 文件:

添加以下命令以在打开终端时自动加载 humble,.bashrc

# open ~/.bashrc and add this line
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc# close gedit and source `.bashrc`
$ source ~/.bashrc

运行 ,以验证安装是否正确完成。$ ros2

http://www.xdnf.cn/news/3348.html

相关文章:

  • Multicore-TSNE
  • 如何用GPU Instancing来优化树木草石重复模型
  • Kubernetes 配置中的 Selector 详解
  • GPU集群搭建步骤
  • 基础术语说明
  • 前端项目问题:TypeError: Failed to fetch dynamically imported module
  • 数据结构---【二叉搜索树】
  • Canvas基础篇:图形绘制
  • 工业质检领域相关近期顶会论文汇总CVPR2025
  • SALOME源码分析: SMESH模块
  • 2025-04-30 AIGC-如何做短片视频
  • 科学数据可视化工具库visIt安装和使用
  • 阿里云短信接入实现示例
  • IsaacLab最新2025教程(7)-创建Interactive Scene
  • Socket-UDP
  • Day.js一个2k轻量级的时间日期处理库
  • Modbus转PROFIBUS网关:电动机保护新突破!
  • [CPCTF 2025] Crypto
  • YOLOv11改进:视觉变换器SwinTransformer目标检测网络
  • C 语言链表详解
  • 第 11 届蓝桥杯 C++ 青少组中 / 高级组省赛 2020 年真题答和案解析
  • 测试 用例篇
  • 指令级并行(ILP)和线程级并行(TLP)的区别,GCC -O3优化会展开循环吗?
  • Git 忽略文件配置 .gitignore
  • AI对IT行业的重塑:挑战与机遇并存的技术革命
  • URP - 序列图动画的实现
  • 多数元素题解(LC:169)
  • 扩展根分区
  • 软件产品测试报告:如何全面评估及保障软件质量?
  • kubernetes》》k8s》》Service 、Ingress 区别