ROS主从机通信(ssh同一局域网或网线连接控制两台Ubuntu系统设备)
参考:
目的是通过从机端SSH控制主机端,例如使用工控机(从机)控制小车(主机)运动
1、保证两台设备IP处于同一网段
两台设备连接同一WIFI(则不用进行下面的改同一网段不同地址IP)
两台设备网线连接,需要保证两台设备ip(IPV4)在同一网段下,只需修改地址为同一网段(倒数第二个字段),不同地址(最后一个字段),子网掩码及其他相同或不变。例如:主机IP:192.168.1.101 从机IP:192.168.1.103
修改后可以用命令ifconfig
查询当前设备IP是否修改完成,还可以在一台设备的终端ping另一台设备的ip,例如在主机的终端输入ping 192.168.1.103
,如果修改完成,则能够ping通,否则查找错误或者重启设备重试
2、设置从机ROS Master
两台设备只能共用主机的ros master(可以理解为一个roscore)
在从机终端中输入:
cd ~
sudo gedit .bashrc
在编辑文本的最后一行添加
export ROS_MASTER_URI=http://主机IP(192.168.1.100):11311
export ROS_IP=从机IP(例如192.168.1.103)
如果要关闭主从机通信,则把添加的两行代码删除或注释!!!
3、修改主从机的hosts
需要提前在两台设备终端用命令hostname
查询主机名称,这里例如主机hostname为ubuntu1,从机hostname为ubuntu2
在主、从机终端中输入:
sudo gedit /etc/hosts
在编辑文本中,主机加入从机IP和从机名;从机加入主机IP和主机名。
4、保证两台设备都有安装ssh
sudo apt-get install openssh-client
sudo apt-get install openssh-server
5、从机控制主机
从机终端输入
ssh -x ubuntu1@192.168.1.100
其中
-x 可以图像化控制主机
ubuntu1为主机hostname
192.168.1.100为主机IP
至此,两台设备可以共用一套ROS系统,能够实现从机控制主机!