Ubuntu(源代码)
目录
系统要求
Humble Hawksbill的当前基于Debian的目标平台为:
Tier 1: Ubuntu Linux - Jammy (22.04) 64位
Tier 3: Ubuntu Linux - Focal (20.04) 64位
Tier 3: Debian Linux - Bullseye (11) 64位
其他具有不同支持级别的Linux平台包括:
Arch Linux,请参阅`其他说明 <https://wiki.archlinux.org/index.php/ROS#ROS_2>`__
Fedora Linux,请参阅 替代说明
OpenEmbedded / webOS OSE,请参阅 替代说明
如 REP 2000 中所定义。
系统设置
设置区域设置
确保您的系统支持 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 仓库
您需要将 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工具
安装常用软件包。
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_humble/src
cd ~/ros2_humble
vcs import --input https://raw.githubusercontent.com/ros2/ros2/humble/ros2.repos src
使用rosdep安装依赖项
ROS 2 包是建立在频繁更新的 Ubuntu 系统上的。在安装新的包之前,始终建议确保您的系统是最新的。
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"
注意:如果您使用的是基于 Ubuntu 的发行版(如 Linux Mint),但它没有将自己标识为 Ubuntu,您将收到类似 Unsupported OS [mint]
的错误消息。在这种情况下,请在上述命令后面添加 --os=ubuntu:jammy
。
安装额外的DDS实现(可选)
如果您想使用默认之外的其他DDS或RTPS供应商,您可以在这里找到说明:这里。
在工作空间中构建代码
如果您已经以其他方式安装了 ROS 2(无论是通过 Debian 还是二进制发行版),请确保在没有这些其他安装源的新环境中运行以下命令。还要确保您的 .bashrc
文件中没有 source /opt/ros/${ROS_DISTRO}/setup.bash
。您可以使用命令 printenv | grep -i ROS
确认未加载 ROS 2。输出应为空。
有关在ROS工作空间中的操作的更多信息,请参阅:本教程。
cd ~/ros2_humble/
colcon build --symlink-install
注意:如果您在编译所有示例时遇到问题,这导致您无法成功构建,您可以像使用 CATKIN_IGNORE 中的``COLCON_IGNORE``一样,忽略子树或从工作空间中删除该文件夹。例如,假设您希望避免安装庞大的OpenCV库。那么只需在``cam2image``演示目录中运行``touch COLCON_IGNORE``,即可将其排除在构建过程之外。
尝试一些示例
在一个终端中,先源化设置文件,然后运行C++的``talker``:
. ~/ros2_humble/install/local_setup.bash
ros2 run demo_nodes_cpp talker
在另一个终端中,先源化设置文件,然后运行Python的``listener``:
. ~/ros2_humble/install/local_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。