局域网内ROS多机通讯环境部署

前言

ROS的通信机制为我们带来极大便利,不仅仅是进程间通信方便,不同设备间通信也很方便,只需简单部署,就可以实现多电脑间的消息传输,实现远程控制等功能。

准备工作

  1. 确保两台电脑在同一局域网内, 可以使用网线直连。
  2. 将两台电脑的IP地址设置为同一网段,能ping通即可。
  3. 查看两台电脑的hostname,直接在终端输入:
hostname

这时我们就得到了局域网下两台电脑各自的hostname和IP地址:

  • 电脑A:hostname_A  IP_A
  • 电脑B:hostname_B  IP_B

设定master地址

这里简单介绍下什么是master,master中文名叫“节点管理器”,管理着整个ROS系统中的节点,每个node启动时都需要到master处进行注册,注册后master会将该node纳入ROS系统中。这就是为什么我们运行node前都需要先运行roscore,roscore为我们启动了master。

而一个ROS系统中只能存在一个master,当多机通讯时也是如此,因此我们需要指定一台电脑作为主机,为整个ROS系统启动一个master,其他电脑作为从机,与主机的master进行通讯。

使用如下指令,分别在电脑A和电脑B的打开 .bashrc 文件

sudo gedit ~/.bashrc

在打开的 .bashrc 文件中加入如下代码来指定master地址:

export ROS_MASTER_URI=http://[IP_A]:11311

注意:哪台电脑启动roscore,就以哪台电脑作为主机,此处假设电脑A为主机,如果改成电脑B为主机,则只需要将此步中的 [IP_A] 改成 [IP_B] 即可。

这样我们便为网络中的电脑配置好了master地址,此时主机和从机之间可以订阅话题,但还看不到话题消息。

标识主机名

因为关有IP地址是不够的,ROS多机通讯还需要知道各自电脑的主机名,就像我们叫别人的时候是叫别人的名字而不是身份证号码一样。

使用如下指令,分别在电脑A和电脑B打开 hosts 文件:

sudo gedit /etc/hosts

在hosts文件中加入(间隔为tab键):

IP_A  hostname_A
IP_B  hostname_B

如此,电脑A与电脑B便能正常通讯了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

JayLee719

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

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

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

打赏作者

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

抵扣说明:

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

余额充值