在Ubuntu Linux上安装ROS 2

本页介绍如何在Ubuntu Linux上从预编译的二进制包安装ROS 2。国内的小伙伴可以访问 鱼香ROS 使用 一键安装[小鱼@5526]

注解

预编译的二进制文件不包括所有ROS 2包。包括 ROS base variant 中的所有包,并且只包括 ROS desktop variant 中的包的一个子集。包的准确列表在 this ros2.repos file 仓库中完整列出。 [Alyssa@5527]

还有 Debian 软件包[小鱼@5528]

系统要求

我们支持Ubuntu Linux Focal Fossa (20.04) 64位 x86和64位ARM。 [小鱼@5530]

添加ROS 2 apt仓库

您需要将ROS 2 apt仓库添加到您的系统中。为此,首先使用如下apt指令授权我们的GPG密钥: [Alyssa@5488]

sudo apt update && sudo apt install curl gnupg2 lsb-release
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 $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

下载ROS 2

  • the releases page [待校准@5532]

  • 下载Ubuntu的最新包; 让我们假设它保存在 “~/Downloads/ros2-package-linux-x86_64.tar.bz2”目录中。 [Alyssa@5533]

    • 注意: 可能有多个二进制下载选项,这可能会导致文件名不同。 [待校准@5534]

  • 解压: [Alyssa@5535]

    mkdir -p ~/ros2_foxy
    cd ~/ros2_foxy
    tar xf ~/Downloads/ros2-package-linux-x86_64.tar.bz2
    

安装和初始化rosdep [待校准@5536]

sudo apt update
sudo apt install -y python3-rosdep
sudo rosdep init
rosdep update

安装缺少的依赖项

根据您下载的版本设置您的rosdistribution。 [待校准@5538]

rosdep install --from-paths ~/ros2_foxy/ros2-linux/share --ignore-src -y --skip-keys "cyclonedds fastcdr fastrtps rti-connext-dds-5.3.1 urdfdom_headers"

注意: 如果你使用的是一个基于Ubuntu的发行版 (比如Linux Mint),但没有标识自己的版本,你会收到一条错误信息,比如 Unsupported OS [mint] 。在这种情况下,将 “-- os = ubuntu: focal” 附加到上述命令中。 [Alyssa@5494]

Optional:
如果你想使用ROS 1<->2bridge,那么你也必须安装ROS 1。[待校准@5540]

安装python 3库

sudo apt install -y libpython3-dev python3-pip
pip3 install -U argcomplete

安装额外的DDS实现 (可选) [待校准@5495]

如果你想使用除了默认的eProsima的快速RTPS,以外的DDS或RTPS供应商,你可以在 here 找到说明。 [Alyssa@5496]

环境设置

设置环境变量 [Alyssa@5543]

通过source以下文件来设置您的环境。 [Alyssa@5503]

. ~/ros2_foxy/ros2-linux/setup.bash

尝试运行一些例子 [Alyssa@5504]

在一个终端中,source安装文件,然后运行一个c++的 talker : [Alyssa@5544]

. ~/ros2_foxy/ros2-linux/setup.bash
ros2 run demo_nodes_cpp talker

在另一个终端源文件中,source安装文件,然后运行一个Python的 listener : [Alyssa@5545]

. ~/ros2_foxy/ros2-linux/setup.bash
ros2 run demo_nodes_py listener

你应该看到了 talker 说这是 Publishing 消息 ,listenerI heard 这些消息。这证明了C++和Python的APIs都是正常工作的。万岁! [Alyssa@5507]

安装后的下一步

继续使用 教程和Demo 来配置您的环境,创建您自己的工作区和包,并学习ROS 2核心概念。 [小鱼@5509]

使用ROS 1 bridge

ROS 1bridge可以连接从ROS 1到ROS 2的话题,反之亦然。看看这个专门的文献 documentation 如何编译和使用ROS 1bridge。 [Alyssa@5511]

附加RMW实现 (可选)

ROS 2使用的默认中间件是 Fast-RTPS ,但中间件 (RMW) 可以在运行时进行替换。查看 guide 了解如何使用多个RMWs。 [Alyssa@5513]

故障排除

故障排除技术可以查看 here 这个文档。 [Alyssa@5546]

卸载

  1. 如果你按照上面的指示用colcon安装了你的工作空间, "uninstalling" 可能只是打开一个新的终端,而没有source工作空间的 setup 文件。因此,您的环境就会表现得好像您的系统上没有安装Foxy。 [Alyssa@5523]

  2. 如果您还打算释放所有空间,则可以使用以下命令删除整个工作空间的目录: [Alyssa@5524]

    rm -rf ~/ros2_foxy