Ubuntu(来源)
系统要求
{disto_title_full} 的当前基于debian的目标平台是:
Tier 1: Ubuntu Linux - Noble (24.04) 64-bit
Tier 3: Ubuntu Linux - Jammy (22.04) 64-bit
Tier 3: Debian Linux - Bookworm (12) 64-bit
如所定义 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 存储库添加到您的系统。
首先确保 Ubuntu Universe repository is enabled.
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
安装开发工具
sudo apt update && sudo apt install -y \
python3-flake8-blind-except \
python3-flake8-class-newline \
python3-flake8-deprecated \
python3-mypy \
python3-pip \
python3-pytest \
python3-pytest-cov \
python3-pytest-mock \
python3-pytest-repeat \
python3-pytest-rerunfailures \
python3-pytest-runner \
python3-pytest-timeout \
ros-dev-tools
构建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 软件包是在经常更新的 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"
Note: 如果您使用的是基于 Ubuntu 的发行版(如 Linux Mint),但未将其标识为 Ubuntu,则会收到错误消息,如“不支持的操作系统 [mint]”。在这种情况下,请将“–os=ubuntu:noble”附加到上述命令。
安装其他RMW实现(可选)
ROS 2使用的默认中间件是 快速dds
,但是中间件(RMW)可以在构建或运行时更换。
请参阅 guide 介绍如何使用多个RMW工作。
在工作区中构建代码
如果您已经以另一种方式安装了ROS 2(通过DEB或二进制分配),请确保您在没有其他安装的新鲜环境中运行以下命令。
另外,请确保您没有 .bashrc
, source /opt/ros/${ROS_DISTRO}/setup.bash
您可以确保使用命令 printenv | ros 2''Ros 2未能采购。 grep -i ros
。
输出应为空。
有关使用ROS工作空间的更多信息,请参见 this tutorial.
cd ~/ros2_rolling/
colcon build --symlink-install
Note
如果您在编译所有示例方面遇到困难,并且这阻止了您完成成功的构建,则可以使用 COLCON_IGNORE
CATKIN_IGNORE 。
例如,如果您不想安装大型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 侦听器
:
. ~/ros2_rolling/install/local_setup.bash
ros2 run demo_nodes_py listener
您应该看到 Talker'
说这是 发布
消息和 侦听器
说 我听到了
这些消息。
这验证了C ++和Python API的工作正常。
哇!
下一步
继续 tutorials and demos 要配置环境,创建自己的工作区和软件包,并学习ROS 2核心概念。
替代编译器
除了GCC以外,使用其他编译器来编译ROS 2很容易。
如果将环境变量设置为 CC
和 cxx
和 cxx
分别为工作C和C ++编译器的可执行文件,并将retigger cmake cmake Configuration(通过 cmake-force-configure
删除您想受到影响的软件包),CMAKE将重新配置并使用不同的编译器。
铛
配置cmake以检测和使用clang:
sudo apt install clang
export CC=clang
export CXX=clang++
colcon build --cmake-force-configure
保持最新
请参阅 维护源结帐 定期刷新您的源安装。
故障排除
可以找到故障排除技术 here。
卸载
- 1。如果您按照上述指示使用COLCON安装工作空间,则“卸载”可能只是打开新终端而不是采购工作空间的``设置’’文件。
这样,您的环境就会表现得好像在系统上没有{distro_title}安装。
2。如果您还试图释放空间,则可以使用以下方式删除整个工作区目录
rm -rf ~/ros2_rolling