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
消息,而 listener
说 I heard
这些消息。
这验证了 C++ 和 Python API 都正常工作。
万岁!
下一步
继续阅读 tutorials and demos 来配置您的环境,创建您自己的工作区和包,并学习 ROS 2 核心概念。
备用编译器
使用 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。
如果您还想释放空间,可以使用以下命令删除整个工作区目录:
rm -rf ~/ros2_rolling