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

如果可以通过从机上键盘控制主机上的小乌龟移动,就说明成功了!

【参考】
1、https://blog.csdn.net/TifferPelode/article/details/52818264
2、https://blog.csdn.net/weixin_43707303/article/details/86496335
3、https://blog.csdn.net/xiangbin099/article/details/79843255

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐