ROS作为一种分布式软件框架,允许节点之间以松耦合的方式组合,但是ROS中只允许存在一个Master,其他机器要通过ssh的方式和Master取得联系,以下为多机系统的配置步骤。
设置IP地址
配置多机系统首先要求所有的计算机处于同一局域网内,然后分别在两台机器上使用ifconfig命令查看IP地址,结果如下:
之后在两台计算机的/etc/hosts文件中加入对方的IP和计算机名
# @enp2s0
192.168.0.18 niubot
# @eth0
192.168.0.18 silan
设置ROS_MASTER_URI
使用如下指令将环境变量设置加入从机终端的配置文件中
echo "export ROS_MASTER_URI=http://niubot:11311" >> ~/.bashrc
多机通信测试
目前多机通信已经配置完成,我们可以测试通信效果。
首先,在主机上运行一个launch文件,如果没有的话可以先用小乌龟仿真器:
roscore
rosrun turtlesim turtlesim_node
然后在从机上使用“rostopic list”指令查看话题列表,若成功显示,则通信成功:
如果需要连接两个以上的从机,可以使用相同的办法进行配置,主机运行Master,其他从机通过设置ROS_MASTER_URI环境变量确定Master位置即可。