ROS学习笔记10-两台机器、两个主机的ros通信配置和实验

master设备配置

1、查看基本信息
在终端中输入hostname,查看hostname
输入ifconfig 查看ip
2、
运行

sudo vim /etc/hosts

可以看到如下配置信息

127.0.0.1  localhost
127.0.1.1  本设备的hostname
-------(下面新增加,注意!!!! ip和hostname用tab键隔开,且顺序不重要,只是一个记录)
[IP_A]            [主设备的hostname ]
[IP_B]            [从设备的hostname]
-------(上面新增加)

增加主设备和各从设备后,如下所示
例如:下面的这个配置

127.0.0.1  localhost
127.0.1.1  本设备的hostname

192.168.1.11    master_hostname
192.168.1.12    slave_hostname

#the following
.
.
.
ROS学习笔记10-两台机器、两个主机的ros通信配置和实验_第1张图片
例如我的电脑,第四和第五行为增加的内容

3、重启网络服务
sudo /etc/init.d/networking restart

5、装上chrony包,用于实现同步:
sudo apt-get install chrony

6、安装ssh工具,方便远程到另一个设备进行调试,省的来回切电脑操作
sudo apt-get install openssh-server
安装完毕后,可以通过下面命令查看服务是否启动
ps -e|grep ssh

7、ping下对方机子,看网络通不通
主机需要ping下每个从机,从机都ping下主机

8、把下面的内容增加到.bashrc末尾

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

例如,主机yuhs的设备作为master

export ROS_HOSTNAME=yuhs
export ROS_MASTER_URI=http://yuhs:11311

然后启用

source ~/.bashrc

slave设备配置

其他内容和master配置一致,只有第八项内容
8、把下面的内容增加到.bashrc末尾

export ROS_HOSTNAME=[本机的hostname] #!!!注意是本机的hostname
export ROS_MASTER_URI=http://[主机的hostname]:11311

例如 lisi是从设备的hostname,yuhs是主设备的hostname

export ROS_HOSTNAME=lisi
export ROS_MASTER_URI=http://yuhs:11311

测试

打开master终端运行

第一个终端

roscore

第二个终端

rosrun turtlesim turtlesim_node

可以看到小乌龟

打开slave设备的终端运行

rosrun turtlesim turtle_teleop_key

开始用方向键遥控小乌龟,如果动了,就表示成功了

实验结果

成功跨主机控制小乌龟

使用注意事项

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

你可能感兴趣的:(ROS学习笔记10-两台机器、两个主机的ros通信配置和实验)