ROS支持多机互通,可以设置一台主机,多台从机,主机中运行roscore,启动master节点,从机直接运行其他节点,在配置好的机器之间就可以互相通信了,就像在同一台机器上一样。
具体应该如何配置呢?详细步骤如下:
1、IP设置
一个主机,多个从机,每个先都设定为同一网段下固定IP。
2、修改~/.bashrc文件
主从机都需要修改~/.bashrc文件,添加以下内容:
主机中添加:
export ROS_HOSTNAME=主机hostname export ROS_MASTER_URI=http://主机IP:11311 export ROS_IP=主机IP
从机中添加:
export ROS_HOSTNAME=从机hostname export ROS_MASTER_URI=http://主机IP:11311 export ROS_IP=主机IP
注意,在这里的ROS_MASTER_URI指明的是作为主机的IP,因此主机从机这里要设置为一致的IP,另外最好加上ROS_IP。
3、修改/etc/hosts文件
接下来这步比较重要,就是将从机的IP添加到主机的 /etc/hosts 这个配置文件里:
sudo gedit /etc/hosts
主机添加:
从机IP 从机hostname
从机添加:
主机IP 主机hostname
注意:这里建议主机从机都要将对方的IP hostname添加到自己的 /etc/hosts 中,如果不填加,将无法反向控制。如主机的hosts文件中没有添加从机的信息,从机只能接收到从主机发来的信息,而无法向主机发送信息。
4、测试
以上设置完成后,基本就可以测试下了
主机运行
roscore rosrun turtlesim turtlesim_node
从机运行:
rosrun turtlesim turtle_teleop_key
如果可以通过从机上键盘控制主机上的小乌龟移动,就说明成功了!