两台电脑使用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通讯的主要内容,如果未能解决你的问题,请参考以下文章