配置ROS 2环境
目标: 本教程将向您展示如何准备ROS 2环境。 [Alyssa@7087]
教程级别: 初学者 [Alyssa@7088]
时间: 5分钟 [Alyssa@6714]
内容
背景
ROS 2依赖于使用shell环境组合工作空间的概念。 "Workspace" 是一个ROS术语,表示您在系统中使用ROS 2进行开发的位置。核心ROS 2工作空间被称为underlay。后续本地工作空间被称为overlays。使用ROS 2进行开发时,您通常将同时激活多个工作空间。 [Alyssa@7089]
组合工作空间使针对不同版本的ROS 2或针对不同包的开发变得更加容易。它还允许在同一台计算机上安装多个ROS 2发行版 (或 “distros”,例如Dashing和Eloquent) 并在它们之间切换。 [Alyssa@7090]
这是通过每次打开新shell终端时source安装程序文件或将source命令添加到shell启动脚本一次来完成的。如果不source安装文件,您将无法访问ROS 2命令,也无法查找或使用ROS 2包。换句话说,您将无法使用ROS 2。 [Alyssa@7091]
先决条件
在开始这些教程之前,请按照ROS 2 安装 页面上的说明安装ROS 2。 [待校准@7092]
本教程中使用的命令是假设你跟着二进制包安装指南为操作系统完成ros2的安装 (Linux系统下安装Debian包)。如果你由源文件编译安装你也可以跟着操作,但设置文件的路径可能会不同。您也无法使用 sudo apt install ros-<distro>-<package>
命令 (常用初学者级别教程) ,如果你是从源文件安装。 [Alyssa@7093]
如果您使用的是Linux或macOS,但还不熟悉shell终端, 这份教程 将会有所帮助。 [Alyssa@7094]
任务
1 source安装文件 [Alyssa@7095]
您需要在打开的每个新shell终端上运行此命令才能访问ROS 2命令,如下所示: [Alyssa@7096]
source /opt/ros/foxy/setup.bash
. ~/ros2_install/ros2-osx/setup.bash
call C:\dev\ros2\local_setup.bat
注解
确切的命令取决于您安装ROS 2的位置。如果遇到问题,请确保文件路径是您的安装路径。 [Alyssa@7097]
2 将source命令添加到您的shell启动脚本 [Alyssa@7098]
如果您不想每次打开新shell终端时都必source安装文件 (即跳过任务1),则可以将命令添加到shell启动脚本中: [Alyssa@7099]
echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc
要撤消此操作,需要找到系统的shell启动脚本并删除附加的source命令。 [Alyssa@7100]
echo "source ~/ros2_install/ros2-osx/setup.bash" >> ~/.bash_profile
仅适用于PowerShell用户,在'My Documents'调用ed'WindowsPowerShell'中创建一个文件夹。在'WindowsPowerShell'内,创建文件 “microsoft.PowerShell_profile.ps1”。在文件内部,粘贴: [待校准@7101]
C:\dev\ros2_foxy\local_setup.ps1
每次打开新shell时,PowerShell都会请求运行此脚本的权限。为避免该问题,您可以运行: [待校准@7102]
Unblock-File C:\dev\ros2_foxy\local_setup.ps1
要在Linux和macOS中撤消此操作 (更改为另一个发行版),请找到系统的shell启动脚本并删除添加的source命令。 [Alyssa@7103]
3 检查环境变量 [Alyssa@7104]
source ROS 2的安装文件将设置一些运行ROS 2所需的环境变量。如果您在查找或使用ROS 2包时遇到问题,请确保使用以下命令正确设置了环境: [Alyssa@7105]
printenv | grep -i ROS
printenv | grep -i ROS
set | findstr -i ROS
检查是否设置了像 ROS_DISTRO
和 ROS_VERSION
这样的变量。例如,如果你正在使用Foxy,你会看到: [待校准@7106]
ROS_VERSION=2
ROS_PYTHON_VERSION=3
ROS_DISTRO=foxy
如果环境变量设置不正确,请返回您遵循的安装指南的ROS 2包安装部分。如果你需要更具体的帮助 (因为环境设置文件可以来自不同的地方),你可以从社区 找到答案 。 [Alyssa@7107]
3.1 ROS_DOMAIN_ID
变量
有关ROS域ID的详细信息,请参阅 domain ID 文章。 [Alyssa@7109]
确定ROS 2代理组的唯一整数后,可以使用以下命令设置环境变量: [待校准@7110]
export ROS_DOMAIN_ID=<your_domain_id>
要在shell会话终端之间维护此设置,您可以将命令添加到shell启动脚本中: [Alyssa@7111]
echo "export ROS_DOMAIN_ID=<your_domain_id>" >> ~/.bashrc
export ROS_DOMAIN_ID=<your_domain_id>
要在shell会话终端之间维护此设置,您可以将命令添加到shell启动脚本中: [Alyssa@7111]
echo "export ROS_DOMAIN_ID=<your_domain_id>" >> ~/.bash_profile
set ROS_DOMAIN_ID=<your_domain_id>
如果要在shell会话之间使此永久保留,请同时运行: [待校准@7112]
setx ROS_DOMAIN_ID <your_domain_id>
总结
ROS 2开发版本环境需要在使用前进行正确配置。有两种方式: 在每个新打开的shell终端source安装文件,或在启动脚本中添加source命令。 [Alyssa@7113]
如果您在使用ROS 2定位或使用包时遇到任何问题,您应该做的第一件事是检查您的环境变量,并确保它们设置为您想要的版本和发行版。 [待校准@7114]
下一步
既然你已经有了一个有效的ROS 2安装,并且你知道如何source它的安装文件,你就可以开始参考 turtlesim tool 学习ROS 2的来龙去脉了。 [Alyssa@7115]