两台电脑使用ROS通讯

Posted npulzb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两台电脑使用ROS通讯相关的知识,希望对你有一定的参考价值。

一、ROS分布式多机通讯简介

  ROS是一种分布式软件框架,节点之间通过松耦合的方式组合,在很多应用场景下,节点可以运行在不同的计算平台上,通过Topic,Service通信。

但是各个节点只能共同拥有一个Master,在多机系统中Master只能运行在一台机器上,其他机器通过ssh方式和Master取得联系。所以多机ROS系统需要进行一些配置。

二、两台电脑的ROS通讯配置

两台机器的hostname与IP假设如下:

主机名与IP地址为:A     IP_A        

从机名与IP地址为:B    IP_B

1:先使用下面命令查看两台计算机的局域网IP地址

ifconfig 

 

 然后打开hosts文件:

sudo gedit /etc/hosts

 

     接着在hosts中加入(间隔为tab键):

IP_A  A
IP_B  B

 

2:重启网络服务:

sudo /etc/init.d/networking restart

 

3:装上chrony包,用于实现同步:

sudo apt-get install chrony

4:安装ssh工具

sudo apt-get install openssh-server

 

 安装完以后,确认服务器是否已经启动:

ps -e|grep ssh

 

   如果看到sshd那说明ssh-server已经启动了。

5:相互ping一下对方机子,看网络通不通:

ping A     //主机
pnig B     //从机

 

对主机与从机相同地执行上述操作,第六条略有不同

6:把下面的内容增加到.bashrc末尾

export ROS_HOSTNAME=[本机的hostname] #!!!注意是本机的hostname 端口号11311是固定值,照抄即可
export ROS_MASTER_URI=http://[主机的hostname]:11311

 

   执行以下命令,使之有效:

source ~/.bashrc

 

三、注意事项

如果在从机运行一个roslaunch,需要现在主机上运行roscore后,从机才能启动起来。
原本一个pc上运行roslaunch的时候,会默认启动rosmaster,但是现在主机是另一个pc了,所以需要这样先把master跑起来
尽量把最常用的pc设置为master。

以上是关于两台电脑使用ROS通讯的主要内容,如果未能解决你的问题,请参考以下文章

ROS与ROS2通讯机制的区别

网络编程

两台苹果电脑之间如何同步

ROS中两台机器时钟同步

两台华为交换机之间怎么做端口隔离,实现他们之间的任何端口都不能通讯?

电脑如何和三菱Q系列PLC通讯