赞
踩
首先要求主从机连接同一个局域网,然后分别打开自己终端获得IP地址和主机名
终端输入ifconfig查看IP地址;输入hostname查看主机名。
ifconfig
设置主机为lm-MPG,192.168.43.96;从机为wyh,192.168.43.136
其中一台主机IP地址如上图所示是:192.168.43.96 ;另一台为 192.168.43.136
hostname
用于查看用户名,主机为lm-MPG,从机为wyh
修改hosts文件的目的是将两电脑的ip和主机名绑定,两台电脑之间通过hostname就能找到对方。没有这一步的时候,你直接去ping 对方主机名时,结果是无法解析对方主机名。
分别再两台电脑的hosts文件中,从第三行开始插入刚刚查到的对方电脑的ip地址和主机名hostname,注意中间用按tap隔开。
进入hosts文件的命令:
vim /etc/hosts
或是
sudo gedit /etc/hosts
后面就要执行vim相关命令输入ip地址和主机名hostname,然后保存退出。
主机为lm-MPG,从机为wyh,因此对应修改的主机和从机文件如下所示
sudo /etc/init.d/networking restart
两台电脑都要下载以下两个包。
第一个是下载同步包;第二个是下载ssh服务器。
- sudo apt-get install chrony
- sudo apt-get install openssh-server
在两台电脑的终端输入以下命令检查是否启动启动了ssh
ps -e|grep ssh
看到sshd那说明ssh-server已经启动了,没启动就输入下面命令进行重启。
sudo /etc/init.d/ssh restart
设置完成后,在两台电脑上分别使用ping命令测试网络是否联通。
其中ping是用来检测本机与网络中另一主机之间网络是否联通的命令,如果两台主机之间ping不通,则表明这两台主机不能建立起连接。
指令为ping 对方ip
- 主机侧
- ping 192.168.43.136
- 从机侧
- ping 192.168.43.96
出现如下说明网络通了。
或是在各自终端输入对方的电脑名,例如
- 主机侧
- ping wyh
- 从机侧
- ping lm-MPG
两台电脑上都出现了上面这样的数据传输,说明双向网络能正常联通,底层网络的通信就可以实现。
当然,如果碰到输入ping hostname而一直无法相应时,说明没有ping通,检查一下该hostname对应的ip地址是否变动了。
在两台电脑中选择其中一台作为主机器人,并设置一个ROS master,从机器人上需要对该Master进行定义才能找到它的位置。因此在从机上使用如下命令设置ROS_MASTER_URI。
为了实现所有终端都能识别Master的位置,最好使用如下命令在配置文件中添加环境变量。配置文件位于主文件的下,名为“.bashrc”打开该文件,在最后输入以下两行环境变量。
1.主机上设置
- export ROS_HOSTNAME=192.168.43.96 #主机IP或名称
- export ROS_MASTER_URI=http://192.168.43.96:11311 #主机ip或名称
再
source ~/.bashrc
2.从机上设置
- export ROS_HOSTNAME=192.168.43.136 #从机IP或名称
- export ROS_MASTER_URI=http://192.168.43.96:11311 #主机ip或名称
再
source ~/.bashrc
别忘记source
上面的步骤都设置完成后,下面使用小乌龟历程进行测试。
首先在主机上运行小乌龟的仿真器。
- roscore
- rosrun turtlesim turtlesim_nod
然后在从机上使用“rostopic list”命令查看ROS系统中的话题列表。
rostopic list
从机上打开小乌龟键盘控制节点,然后控制小乌龟运动。
rosrun turtlesim turtle_teleop_key
通过实验证明,所谓的主机从机,并不是主机只能控制从机,从机不能控制主机,上面的设置的主机从机代表roscore的位置是在主机上运行的,而主从机之间的通信是相互的,从机也可以控制主机上的小海龟移动,所以主从机的说法只是概念上的,通信是相互的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。