Ubuntu(来源)

系统要求

{disto_title_full} 的当前基于debian的目标平台是:

  • Tier 1: Ubuntu Linux - Noble (24.04) 64-bit

  • Tier 3: Ubuntu Linux - Jammy (22.04) 64-bit

  • Tier 3: Debian Linux - Bookworm (12) 64-bit

如所定义 REP 2000.

系统设置

设置位置

确保您的语言环境支持 UTF-8 。 如果您处于最小环境(例如 docker 容器),语言环境可能为 POSIX 之类的最小语言环境。 我们使用以下设置进行测试。但是,如果您使用其他支持 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

启用所需的存储库

您需要将 ROS 2 apt 存储库添加到您的系统。

首先确保 Ubuntu Universe repository is enabled.

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

安装开发工具

sudo apt update && sudo apt install -y \
  python3-flake8-blind-except \
  python3-flake8-class-newline \
  python3-flake8-deprecated \
  python3-mypy \
  python3-pip \
  python3-pytest \
  python3-pytest-cov \
  python3-pytest-mock \
  python3-pytest-repeat \
  python3-pytest-rerunfailures \
  python3-pytest-runner \
  python3-pytest-timeout \
  ros-dev-tools

构建ROS 2

获取ROS 2代码

创建一个工作区并克隆所有存储库:

mkdir -p ~/ros2_rolling/src
cd ~/ros2_rolling
vcs import --input https://raw.githubusercontent.com/ros2/ros2/rolling/ros2.repos src

使用Rosdep安装依赖项

ROS 2 软件包是在经常更新的 Ubuntu 系统上构建的。 始终建议您在安装新软件包之前确保您的系统是最新的。

sudo apt upgrade
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src -y --skip-keys "fastcdr rti-connext-dds-6.0.1 urdfdom_headers"

Note: 如果您使用的是基于 Ubuntu 的发行版(如 Linux Mint),但未将其标识为 Ubuntu,则会收到错误消息,如“不支持的操作系统 [mint]”。在这种情况下,请将“–os=ubuntu:noble”附加到上述命令。

安装其他RMW实现(可选)

ROS 2使用的默认中间件是 快速dds ,但是中间件(RMW)可以在构建或运行时更换。 请参阅 guide 介绍如何使用多个RMW工作。

在工作区中构建代码

如果您已经以另一种方式安装了ROS 2(通过DEB或二进制分配),请确保您在没有其他安装的新鲜环境中运行以下命令。 另外,请确保您没有 .bashrc , source /opt/ros/${ROS_DISTRO}/setup.bash 您可以确保使用命令 printenv | ros 2''Ros 2未能采购。 grep -i ros。 输出应为空。

有关使用ROS工作空间的更多信息,请参见 this tutorial.

cd ~/ros2_rolling/
colcon build --symlink-install

Note

如果您在编译所有示例方面遇到困难,并且这阻止了您完成成功的构建,则可以使用 COLCON_IGNORE CATKIN_IGNORE 。 例如,如果您不想安装大型OpENCV库,则可以使用命令跳过构建依赖它的软件包:

colcon build --symlink-install --packages-skip image_tools intra_process_demo

设置环境

通过采购以下文件来设置您的环境。

# Replace ".bash" with your shell if you're not using bash
# Possible values are: setup.bash, setup.sh, setup.zsh
. ~/ros2_rolling/install/local_setup.bash

尝试一些例子

在一个终端中,源源,然后运行c ++ talker:

. ~/ros2_rolling/install/local_setup.bash
ros2 run demo_nodes_cpp talker

在另一个终端源中,设置文件,然后运行python 侦听器:

. ~/ros2_rolling/install/local_setup.bash
ros2 run demo_nodes_py listener

您应该看到 Talker' 说这是 发布 消息和 侦听器我听到了 这些消息。 这验证了C ++和Python API的工作正常。 哇!

下一步

继续 tutorials and demos 要配置环境,创建自己的工作区和软件包,并学习ROS 2核心概念。

替代编译器

除了GCC以外,使用其他编译器来编译ROS 2很容易。 如果将环境变量设置为 CCcxxcxx 分别为工作C和C ++编译器的可执行文件,并将retigger cmake cmake Configuration(通过 cmake-force-configure 删除您想受到影响的软件包),CMAKE将重新配置并使用不同的编译器。

配置cmake以检测和使用clang:

sudo apt install clang
export CC=clang
export CXX=clang++
colcon build --cmake-force-configure

保持最新

请参阅 维护源结帐 定期刷新您的源安装。

故障排除

可以找到故障排除技术 here

卸载

1。如果您按照上述指示使用COLCON安装工作空间,则“卸载”可能只是打开新终端而不是采购工作空间的``设置’’文件。

这样,您的环境就会表现得好像在系统上没有{distro_title}安装。

2。如果您还试图释放空间,则可以使用以下方式删除整个工作区目录

rm -rf ~/ros2_rolling