ROS2-Beginner:CLI tools-1、环境配置

发布时间 2023-05-30 20:25:07作者: gary_123

1、环境配置

目标:本教程告诉读者怎样准备ROS2环境

背景:ROS2依赖于使用shell环境组合工作空间的概念,“工作区”是一个ROS术语,表示您使用ROS 2进行开发的系统上的位置。ROS 2的核心工作空间称为底层(underlay)。后续的局部工作空间称为覆盖(overlays)。当使用ROS2进行开发时,通常会同时有几个工作区处于活动状态。

组合工作区使得针对不同版本的ROS2或针对不同的包集进行开发变得更容易。它还允许在同一台计算机上安装几个ROS 2发行版(或“发行版”,例如Dashing和Eloquent),并在它们之间切换。

这是通过每次打开一个新的shell时寻找安装文件来实现的,或者通过将源命令添加到shell启动脚本中一次来实现的。如果没有源设置文件,您将无法访问ROS 2命令,也无法找到或使用ROS 2包。换句话说,你将无法使用ROS 2。

如果从源代码安装,您也将无法使用sudo-apt-install-ros-<distro>-<package>命令(在初级教程中经常使用)。

任务

1、source setup文件

您需要在打开的每个新shell上运行此命令才能访问ROS 2命令,如下所示:

# Replace ".bash" with your shell if you're not using bash
# Possible values are: setup.bash, setup.sh, setup.zsh
source /opt/ros/humble/setup.bash  视自己安装的位置而定

2、将setup文件添加到启动脚本

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

3、查看环境变量

终端输入 printenv | grep -i ROS
ROS_VERSION=2
ROS_PYTHON_VERSION=3
ROS_DISTRO=humble

3.1 ROS_DOMAIN_ID变量

查看有关ROS域ID的文章,可见domain ID 

一旦确定了ROS2节点组的唯一整数,就可以使用以下命令设置环境变量:

export ROS_DOMAIN_ID=<your_domain_id>

要在shell会话之间保持此设置,可以将命令添加到shell启动脚本中:

echo "export ROS_DOMAIN_ID=<your_domain_id>" >> ~/.bashrc

3.2 ROS_LOCALHOST_ONLY变量

默认请款下,ROS2的通信是不限于localhost的。ROS_LOCALHOST_ONLY环境变量允许你限制ROS2通信只在局部localhost下。这意味着你的ROS2系统,话题,服务,以及action在局域网中的其他电脑不可见。在某些设置中使用ROS_LOCALHOST_ONLY是有帮助的。例如教室,其中多个机器人可能发布到同一主题,导致奇怪的行为。可以使用以下命令设置环境变量:

export ROS_LOCALHOST_ONLY=1

长期有效:

echo "export ROS_LOCALHOST_ONLY=1" >> ~/.bashrc