ROS主从机配置
与伙伴之间的工作配合可能涉及到ROS功能之间的调试,这时采用主从机的方式比较方便。
配置虚拟机网络适配器
虚拟机网络设置为桥接模式
查看主机和从机IP
打开终端输入1
ifconfig
如果报错请相应安装相关软件
设置IP地址
首先需要确定ROS多机系统中的所有计算机处于同一网络,同一网段,例如我的主机IP为192.168.21.228,从机IP为192.168.21.17
分别在两台计算机系统的/etc/hosts文件中加入对方的IP地址和对应的计算机名:
主机hosts设置
主机设置的是从机的IP和计算机名1
sudo gedit /etc/hosts
从机hosts设置
从机设置的是主机的IP和计算机名
从机打开终端1
sudo gedit /etc/hosts
这里因为我的主机和从机计算机名相同,所以在这里不要困惑
主机环境变量设置
这里两种方式可选择1、打开新终端设置环境变量2、在~/.bashrc文件末尾添加,两种方式都填入如下内容1
2
3export ROS_HOSTNAME=192.168.21.228 #主机IP地址
export ROS_MASTER_URI=http://192.168.21.228:11311 #主机IP地址:11311
export ROS_IP=190.168.21.228 #主机IP地址
从机环境变量设置
这里同样有两种方式可选择1、打开新终端设置环境变量2、在~/.bashrc文件末尾添加,两种方式都填入如下内容1
2
3export ROS_HOSTNAME=192.168.21.17 #从机IP地址
export ROS_MASTER_URI=http://192.168.21.228:11311 #主机IP地址:11311
export ROS_IP=190.168.21.228 #主机IP地址
下载包和解决报错
两台电脑都要下载以下两个包
第一个是下载同步包;第二个是下载ssh服务器1
sudo apt-get install chrony
1
sudo apt-get install openssh-server
重启ssh-server1
sudo /etc/init.d/ssh restart
检测通信
设置完成后,在两台电脑上分别使用ping命令测试网络是否联通。其中ping是用来检测本机与网络中另一主机之间网络是否联通的命令,如果两台主机之间ping不通,则表明这两台主机不能建立起连接。
主机ping从机
1 |
|
从机ping主机
1 |
|
两台电脑上都出现了ping接收到了数据,说明双向网络能正常联通,底层网络的通信就可以实现。
当然,如果碰到输入ping IP而一直无法响应时,说明没有ping通,检查一下该计算机对应的ip地址是否变动了
验证配置
配置完毕,接下来就要验证是否配置成功。但是运行前先要把之前的终端关掉,不然还是之前的配置
运行一个小海龟来验证一下,主机中输入:1
roscore
1
rosrun turtlesim turtlesim_node
在从机器中用键盘进行控制,从机中运行:1
rosrun turtlesim turtle_teleop_key
参考
http://wiki.ros.org/ROS/Tutorials/MultipleMachines
https://www.guyuehome.com/25106
https://blog.csdn.net/weixin_51244852/article/details/115738730
https://blog.csdn.net/GeForeverr/article/details/102465763
https://www.guyuehome.com/40852