workspace是ROS2中的工作空间,也是我们开发机器人代码的位置。 ROS2安装的系统目录称之为“underlay”,我们自己创建的工作空间称之为“overlay”,在一台电脑上往往有多个工作空间。我们可以通过source不同空间的环境变量脚本来更换所使用的workspace,包括ROS2的版本。 如果使用的是Linux系统或者MacOS,需要先熟悉Linux命令行的基本操作,可以参考该教程:http://www.ee.surrey.ac.uk/Teaching/Unix/
1.设置环境变量
Linux:
source /opt/ros/foxy/setup.bash
Windows:
call C:\dev\ros2\local_setup.bat
这种方法只能在运行该指令的终端中有效,如果需要在每一个终端中都生效的话,需要将脚本放到bash的启动脚本中:
echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc
设置完成后查看一下你的环境变量是否设置成功:
Linux:
printenv | grep -i ROS
Windows:
set | findstr -i ROS
如果在局域网的多台电脑中使用ROS2,默认的通信机制会自动建立各机器分布式通信框架,也就是不同电脑之间已经可以通信了,如果你不希望多台电脑之间产生连接,可以设置不同的组网ID,相同ID的电脑之间可以通信,不同ID的电脑之间无法通信。
Linux:
export ROS_DOMAIN_ID=<your_domain_id>
echo "export ROS_DOMAIN_ID=<your_domain_id>" >> ~/.bashrc
Windows:
set ROS_DOMAIN_ID=<your_domain_id>
setx ROS_DOMAIN_ID <your_domain_id>
环境变量的设置在ROS2中非常重要,如果后续使用中发现某些找不到命令、找不到包、找不到文件的错误,都应该首先确认环境变量是否正确设置。 参考链接: