在ROS系统中,机器人功能是由各种节点组成的,这些节点可能位于不同的计算机中,这种结构可以将原本资源消耗较多的任务,分配到不同的平台上,减轻计算压力,这就是分布式通信框架的典型应用之一。
只要两个计算机安装好ROS2,并且处于同一网络中,他们就可以实现之前讲过的话题、服务、动作等通信了,就像在一个电脑里一样。
如果使用虚拟机,需将虚拟机网络修改为桥接模式。
如果一个网络中有很多个计算机,我们并不希望他们都可以互通互联,而是可以分组通信,小组之间是无法实现通信的。
ROS2提供了一个DOMAIN的机制,就类似分组一样,处于同一个DOMAIN中的计算机才能通信,我们可以在电脑和树莓派端的.bashrc中加入这样一句配置,即可将两者分配到一个小组中:
export ROS_DOMAIN_ID=<your_domain_id>
.bashrc文件其实就是Ubuntu系统用户根目录(即“~”目录)下一个隐藏的设置文件夹(必须选择“显示隐藏文件才能看到”),每次打开命令行窗口时都会自动先运行一遍.bashrc文件中的命令。之前配置ros2的环境时,也在.bashrc内添加过“source /opt/ros/humble/setup.bash”的语句。