RHEL(来源)

系统要求

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

  • Tier 2:RHEL 8 64 位

REP 2000 中定义

系统设置

设置语言环境

Make sure you have a locale which supports UTF-8. If you are in a minimal environment (such as a docker container), the locale may be something minimal like C. We test with the following settings. However, it should be fine if you’re using a different UTF-8 supported locale.

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 powertools

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

安装开发工具和ROS工具

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

# 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-builtins \
  flake8-class-newline \
  flake8-comprehensions \
  flake8-deprecated \
  flake8-docstrings \
  flake8-import-order \
  flake8-quotes \
  mypy==0.931

获取 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 packages are built on frequently updated RHEL systems. It is always recommended that you ensure your system is up to date before installing new packages.

sudo dnf update
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src -y --skip-keys "asio cyclonedds fastcdr fastrtps ignition-cmake2 ignition-math6 python3-babeltrace python3-mypy rti-connext-dds-6.0.1 urdfdom_headers"

安装其他 DDS 实现(可选)

如果您想要使用除默认供应商之外的其他 DDS 或 RTPS 供应商,您可以在此处找到说明:doc:此处

在工作区中构建代码

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

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

cd ~/ros2_rolling/
colcon build --symlink-install --cmake-args -DTHIRDPARTY_Asio=ON -DPython3_EXECUTABLE=/usr/bin/python3 --no-warn-unused-cli

注意:如果您在编译所有示例时遇到问题,并且这阻止您完成成功的构建,您可以像使用 CATKIN_IGNORE 一样使用 COLCON_IGNORE 来忽略子树或从工作区中删除文件夹。 举个例子:您想避免安装大型 OpenCV 库。 那么只需在 cam2image 演示目录中运行 touch COLCON_IGNORE 即可将其排除在构建过程之外。

环境设置

获取安装脚本

通过获取以下文件来设置您的环境。

# 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 核心概念。

其他 RMW 实现(可选)

ROS 2 使用的默认中间件是 Fast DDS,但中间件(RMW)可以在运行时替换。 有关如何使用多个 RMW,请参阅 guide

备用编译器

使用 gcc 以外的其他编译器来编译 ROS 2 很容易。如果您分别将环境变量“CC”和“CXX”设置为可运行的 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