ROS下多机协同——主从机节点通信

1. 介绍

  现如今,随工业智能化水平提高,单机器人已难以满足大规模任务的需要,因此多机协同控制方法应运而生,并逐渐应用于无人车、无人机的集群以及物流配送等诸多领域。
  要想实现多机协同控制,首要任务是实现多机通信,而ROS操作系统为我们提供了多机通信的优良环境,使得我们可以在分布式的ROS节点间进行通信。下面引入ROS通信的相关基础知识:

1.1 ROS节点:可以分布于多个相同或不同的主机中

1.2 ROS通信机制1. 话题; 2. 服务; 3. action等进阶方式。
下图直观展示了话题topic、发布Publisher、订阅Subscriber和话题消息message:
在这里插入图片描述
1.3 节点管理器 ROS Master:在ROS1中一台机器作为ROS Master,即以中心化方式管理分布式节点之间的通信。

1.4 方案一:机器人之间组网,在局域网下实现信息交互、相互感知、相互控制

  1. 硬件系统:以路由器为中心节点的星形网络,数据通过路由器做IP地址转发,使得主从机在同一个局域网下。
  2. 软件系统:ROS Master是整个分布式ROS节点中心,作为其他节点通信桥梁。

  下面进行主从机配置,使得主从机节点相互通信。

2. 主从机配置

2.1 添加IP地址
  首先确保主从机处于同一局域网。
  使用ifconfig指令查看主机和从机的 ip 地址,使用hostname指令查看主机和从机名
  下面以我的ROS机器为例:

  主机名:wheeltec   主机IP:192.168.0.100
在这里插入图片描述
  从机名:rikibot     从机IP:192.168.0.187

在这里插入图片描述
  在/etc/hosts 文件中,主机加入从机IP和从机名;从机加入主机IP和主机名。
在这里插入图片描述
在这里插入图片描述
  至此,主从机IP添加完毕,可以相互ping通。

2.2 设置 ROS Master
  由于ROS1中只能一台机器作为ROS Master,因此,我们要设置所有从机ROS_MASTER_URI,在.bashrc文件中,修改如下:
在这里插入图片描述
  至此,主从机在局域网内的通信配置完毕。

3. 测试主从机分布式节点通信

  我们首先启动主机wheeltec,输入命令:
  roslaunch turn_on_wheeltec_robot turn_on_wheeltec_robot.launch
  从而开启ROS Master,管理节点之间的话题通信。
  打开rqt_graph,可以看到主机节点话题图:
在这里插入图片描述
  再启动从机rikibot,输入命令:
  roslaunch turn_on_wheeltec_robot bringup.launch
  打开rqt_graph,可以看到主从机节点已经建立了话题通信:
在这里插入图片描述
  下面这张图展示了两台机器分别启动的单机节点图,以及建立多机通信之后的节点网络,主从机各自的节点、话题已用不同颜色+序号分开:
在这里插入图片描述
  至此,主从机便可以相互订阅和发布话题,从而进行通信啦!

  • 18
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wilbur11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值