目录
3.2 ROS_AUTOMATIC_DISCOVERY_RANGE 变量
前言
本系列文章是由笔者翻译自ROS 2 官方教程。笔者水平有限,如有错误,还请读者指正。
本系列文章列出的部分命令为Liunx下,使用Windows或者MacOS的读者可前往官方教程查询。
目标:本教程将会展示如何配置你的ROS2环境
级别:初学者
时间:5分钟
背景
ROS 2 依赖于使用 shell 环境组合工作区的概念。“工作区” 是一个 ROS 术语,用于表示您使用 ROS 2 进行开发的系统上的位置。核心 ROS 2 工作区称为底层。后续的本地工作区称为叠加层。使用 ROS 2 进行开发时,通常会同时激活多个工作区。
通过组合工作区,可以更轻松地针对不同版本的 ROS 2 或不同的软件包集进行开发。它还允许在同一台计算机上安装多个 ROS 2 发行版(或“发行版”,例如 Dashing 和 Eloquent)并在它们之间切换。
这是通过在每次打开新 shell 时添加安装文件,或者将 source 命令添加到 shell 启动脚本一次来实现的。如果不添加安装文件,您将无法访问 ROS 2 命令,也无法查找或使用 ROS 2 软件包。换句话说,您将无法使用 ROS 2。
先决条件
在开始这些教程之前,请按照 ROS 2 安装页面上的说明安装 ROS 2。
任务
1 添加ROS启动文件
你将会需要在每一个新打开的shell窗口运行此命令,在运行此命令后你便可以使用ROS 2命令(Liunx)命令如下:
# 如果你不是使用bash的话,使用你使用的shell替换".bash"
# 可能的选项有: setup.bash, setup.sh, setup.zsh
source /opt/ros/iron/setup.bash
注意:
具体的命令取决于你安装ROS 2 的位置。如果你遇到问题的话,确保路径是你安装位置。
2 在你的shell启动脚本中添加ROS启动文件
如果你不想在每一个新打开的shell中添加启动文件(跳过任务1),你可以在shell启动脚本中添加此命令:
echo "source /opt/ros/iron/setup.bash" >> ~/.bashrc
如果你不需要在shell启动时自动添加ROS启动文件,你可以在shell启动脚本中删除此命令。
3 检查环境变量
添加ROS 2启动文件将会设置多个操作ROS 2所必须的系统变量。如果你在寻找或使用ROS 2包的过程中曾遇到过问题,通过以下命令来确保你的环境已经被正确配置:
printenv | grep -i ROS
检查例如 ROS_DISTRO 和 ROS_VERSION 变量已经被设置 (如下)
ROS_VERSION=2
ROS_PYTHON_VERSION=3
ROS_DISTRO=iron
如果环境变量未被正确设置,请回到ROS 2安装教程。
3.1 ROS_DOMAIN_ID 变量
前往 domain ID 文章查看ROS domain IDs 的具体细节。
一旦你决定了你的ROS 2节点组的唯一整数id,你可以通过如下命令来配置环境变量:
export ROS_DOMAIN_ID=<your_domain_id>
使用你的id替换 <your_domain_id>
为了在不同的shell会话中保持一致的id,你可以通过使用如下命令来在shell启动脚本中添加:
echo "export ROS_DOMAIN_ID=<your_domain_id>" >> ~/.bashrc
3.2 ROS_AUTOMATIC_DISCOVERY_RANGE
变量
ROS 2通信在默认情况下不会限制在本地。
ROS_AUTOMATIC_DISCOVERY_RANGE
变量可以让你设置ROS 2通信发现范围。使用此变量在特定情况下是有帮助的,例如在教室之中,多个机器人可能会发布同样的话题,这样可能会导致奇怪的问题。
详见 Improved Dynamic Discovery。
总结
在使用之前,ROS 2开发环境需要被正确配置。这可以通过两种方法来完成:在每个新打开的shell中添加启动文件、或是在启动脚本中添加启动文件。
如果你遇到了任何定位或者使用ROS 2包方面的问题,你需要做的第一件事情就是检查你的环境变量并确保它们被设置为你需要的版本和发行包。