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
.
.
.
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