Ubuntu (来源)
系统要求
当前基于 Debian 的 Rolling Ridley 目标平台为:
第 1 层:Ubuntu Linux - Jammy (22.04) 64 位
第 3 层:Ubuntu Linux - Focal (20.04) 64 位
第 3 层:Debian Linux - Bullseye (11) 64 位
其他具有不同支持级别的 Linux 平台包括:
Arch Linux,参见 alternate instructions
Fedora Linux, 参见 alternate instructions
OpenEmbedded / webOS OSE, 参见 alternate instructions
根据定义 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 POSIX
.
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 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 存储库
You will need to add the ROS 2 apt repository to your system.
First ensure that the Ubuntu Universe repository is enabled.
sudo apt install software-properties-common
sudo add-apt-repository universe
Now add the ROS 2 GPG key with apt.
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
Then add the repository to your sources list.
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
安装开发工具和ROS工具
安装常用软件包。
sudo apt update && sudo apt install -y \
python3-flake8-docstrings \
python3-pip \
python3-pytest-cov \
ros-dev-tools
根据您的 Ubuntu 版本安装软件包。
sudo apt install -y \
python3-flake8-blind-except \
python3-flake8-builtins \
python3-flake8-class-newline \
python3-flake8-comprehensions \
python3-flake8-deprecated \
python3-flake8-import-order \
python3-flake8-quotes \
python3-pytest-repeat \
python3-pytest-rerunfailures
python3 -m pip install -U \
flake8-blind-except \
flake8-builtins \
flake8-class-newline \
flake8-comprehensions \
flake8-deprecated \
flake8-import-order \
flake8-quotes \
"pytest>=5.3" \
pytest-repeat \
pytest-rerunfailures
获取 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 Ubuntu systems. It is always recommended that you ensure your system is up to date before installing new packages.
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: If you’re using a distribution that is based on Ubuntu (like Linux Mint) but does not identify itself as such, you’ll get an error message like Unsupported OS [mint]
. In this case append --os=ubuntu:jammy
to the above command.
安装其他 DDS 实现(可选)
如果您想使用除默认供应商之外的其他 DDS 或 RTPS 供应商,您可以在 此处 找到说明。
在工作区中构建代码
如果您已经以其他方式(通过 debs 或二进制分发)安装了 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
注意:如果您在编译所有示例时遇到问题,并且这阻止您完成成功的构建,您可以像使用 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
消息,而 listener
说 I heard
这些消息。
这验证了 C++ 和 Python API 均正常工作。
万岁!
安装后的后续步骤
继续阅读 tutorials and demos 来配置您的环境,创建您自己的工作区和包,并学习 ROS 2 核心概念。
使用 ROS 1 桥
ROS 1 桥可以将主题从 ROS 1 连接到 ROS 2,反之亦然。有关如何构建和使用 ROS 1 桥,请参阅专用的 documentation。
附加 RMW 实现(可选)
ROS 2 使用的默认中间件是“Fast DDS”,但中间件(RMW)可以在运行时替换。 有关如何使用多个 RMW,请参阅 guide。
备用编译器
使用 gcc 以外的其他编译器来编译 ROS 2 很容易。 如果您分别将环境变量“CC”和“CXX”设置为可运行的 C 和 C++ 编译器的可执行文件,并重新触发 CMake 配置(通过使用“–cmake-force-configure”或删除您想要受影响的包),CMake 将重新配置并使用不同的编译器。
Clang
要配置 CMake 以检测和使用 Clang:
sudo apt install clang
export CC=clang
export CXX=clang++
colcon build --cmake-force-configure
了解最新动态
请参阅 维护源签出 以定期刷新源安装。
故障排除
故障排除技术可在 此处 找到。
卸载
1. 如果您按照上述说明使用 colcon 安装了工作区,则“卸载”可能只需打开一个新终端,而不是获取工作区的“setup”文件即可。 这样,您的环境将表现得好像系统上没有安装 Rolling。
如果您还想释放空间,可以使用以下命令删除整个工作区目录:
rm -rf ~/ros2_rolling