Ubuntu (Debian 包)
ROS 2 Humble Hawksbill的Debian软件包目前可用于Ubuntu Jammy。
设置区域设置
确保您的系统支持 UTF-8
语言环境。如果您处于最小化环境(例如 Docker 容器),语言环境可能是最小化的,如 POSIX
。我们使用以下设置进行测试。不过,如果您使用其他支持 UTF-8 的语言环境,应该也没问题。
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 仓库添加到您的系统中。
首先确保已启用 Ubuntu Universe 软件源。
sudo apt install software-properties-common
sudo add-apt-repository universe
然后使用 apt 添加 ROS 2 GPG 密钥。
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
接下来将软件源添加到您的源列表中。
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 2软件包
在设置完软件源后,请更新apt存储库缓存。
sudo apt update
ROS 2 包是建立在频繁更新的 Ubuntu 系统上的。在安装新的包之前,始终建议确保您的系统是最新的。
sudo apt upgrade
警告
由于Ubuntu 22.04的早期更新,安装ROS 2之前,重要的是更新与``systemd``和``udev``相关的软件包。在新安装的系统上安装ROS 2的依赖项而不进行升级可能会触发**删除关键系统软件包**。
请参考`ros2/ros2#1272 <https://github.com/ros2/ros2/issues/1272>`_和`Launchpad #1974196 <https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1974196>`_获取更多信息。
桌面安装(推荐):ROS、RViz、演示、教程。
sudo apt install ros-humble-desktop
ROS-Base安装(基础安装):通信库、消息包、命令行工具。没有GUI工具。
sudo apt install ros-humble-ros-base
开发工具: 编译器和其他用于构建ROS软件包的工具
sudo apt install ros-dev-tools
尝试一些示例
说话者-监听器
如果您已经安装了上述``ros-humble-desktop``,您可以尝试一些示例。
在一个终端中,先源化设置文件,然后运行C++的``talker``:
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_cpp talker
在另一个终端中,先源化设置文件,然后运行Python的``listener``:
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_py listener
你应该看到“talker”说它正在“发布”消息,而“listener”说“我听到了”这些消息。这验证了C++和Python API都正常工作。太棒了!
使用 ROS 1 桥接器
ROS 1 桥接器可以连接 ROS 1 和 ROS 2 的主题。请参阅专门的 文档 以了解如何构建和使用 ROS 1 桥接器。
其他RMW实现(可选)
ROS 2默认使用的中间件是``Fast DDS``,但中间件(RMW)可以在运行时进行替换。请参阅:doc:`指南 <../How-To-Guides/Working-with-multiple-RMW-implementations>`以了解如何使用多个RMW。