RHEL (来源)

系统要求

Rolling Ridley 当前的目标 Red Hat 平台是:

  • Tier 2: RHEL 9 64-bit

根据定义 REP 2000.

系统设置

设置区域

确保您的语言环境支持“UTF-8”。 如果您处于最小环境(例如 docker 容器),语言环境可能为“C”之类的最小语言环境。 我们使用以下设置进行测试。但是,如果您使用其他支持 UTF-8 的语言环境,应该没问题。

locale  # check for UTF-8

sudo dnf install langpacks-en glibc-langpack-en
export LANG=en_US.UTF-8

locale  # verify settings

启用所需的存储库

rosdep 数据库包含来自 EPEL 和 PowerTools 存储库的软件包,默认情况下未启用这些软件包。 可以通过运行以下命令启用它们:

sudo dnf install 'dnf-command(config-manager)' epel-release -y
sudo dnf config-manager --set-enabled crb

Note

This step may be slightly different depending on the distribution you are using. Check the EPEL documentation: https://docs.fedoraproject.org/en-US/epel/#_quickstart

安装开发工具

sudo dnf install -y \
  cmake \
  gcc-c++ \
  git \
  make \
  patch \
  python3-colcon-common-extensions \
  python3-mypy \
  python3-pip \
  python3-pydocstyle \
  python3-pytest \
  python3-pytest-cov \
  python3-pytest-mock \
  python3-pytest-repeat \
  python3-pytest-rerunfailures \
  python3-pytest-runner \
  python3-rosdep \
  python3-setuptools \
  python3-vcstool \
  wget

# install some pip packages needed for testing and
# not available as RPMs
python3 -m pip install -U --user \
  flake8-blind-except==0.1.1 \
  flake8-class-newline \
  flake8-deprecated

构建 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 软件包建立在经常更新的 RHEL 系统上。 始终建议您在安装新软件包之前确保您的系统是最新的。

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

安装其他 RMW 实现(可选)

ROS 2 使用的默认中间件是“Fast DDS”,但可以在构建或运行时替换中间件(RMW)。

有关如何使用多个 RMW,请参阅 guide

在工作区中构建代码

如果您已经以其他方式(通过 RPM 或二进制分发)安装了 ROS 2,请确保在没有其他安装源的新环境中运行以下命令。 还要确保您的 .bashrc 中没有 source /opt/ros/${ROS_DISTRO}/setup.bash。 您可以使用命令 printenv | grep -i ROS 确保 ROS 2 没有被获取。 输出应该为空。

有关使用 ROS 工作区的更多信息,请参阅 本教程

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

Note

如果您在编译所有示例时遇到问题,并且这阻止您完成成功构建,则可以使用“–packages-skip”colcon 标志忽略导致问题的包。 例如,如果您不想安装大型 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 listener

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

您应该看到 talker 说它正在 Publishing 消息,而 listenerI heard 这些消息。 这验证了 C++ 和 Python API 都正常工作。 万岁!

下一步

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

备用编译器

使用 gcc 以外的其他编译器来编译 ROS 2 很容易。如果您分别将环境变量 CCCXX 设置为可运行的 C 和 C++ 编译器的可执行文件,并重新触发 CMake 配置(通过使用 --force-cmake-config 或删除您想要受影响的包),CMake 将重新配置并使用不同的编译器。

Clang

要配置 CMake 来检测和使用 Clang:

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

了解最新动态

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

故障排除

故障排除技术可在 此处 找到。

卸载

1. 如果您按照上述说明使用 colcon 安装了工作区,则“卸载”可能只需打开一个新终端,而不是获取工作区的“setup”文件即可。 这样,您的环境将表现得好像系统上没有安装 Rolling。

  1. 如果您还想释放空间,可以使用以下命令删除整个工作区目录:

    rm -rf ~/ros2_rolling