运行在机器人上的叫主机master 开启roscore 远端的叫从机 host
第一步:
分别在两台机器上使用 hostname 指令查看用户名
第二步:分别在两台机器上使用 ifconfig 指令查看ip地址
wlp3s0是我的pc的无线网卡,可以看到ip地址为10.10.40.84,同样方法查询到小车的ip地址为10.10.40.174。
第三步:让主从机在网络上互相认识一下
前两步我们获得的hostname与ip地址是机器在网络上的标识,就好像我们交朋友,我知道了你的名字和你家的地址,就可以去找你玩啦。
在从机上使用vim或者其他编辑器修改 /etc/hosts 文件(此操作需要管理员权限,记得在指令前加sudo),在有注释的那一行上面加入主机的ip及hostname,如下图所示
同样的,在主机上修改 /etc/hosts 文件,加入从机的ip及hostname。
第四步:告诉ROS系统,谁才是老大!
分别在主机和从机上使用vim或其他编辑器修改 ~/.bashrc 文件,在末尾加
上
export ROS_HOSTNAME=SLAM
exprot ROS_MASTER_URI=http://10.10.40.174:11311
此外主从机都应当加上export ROS_IP=192.168.3.10 (本机的IP)
其中,ROS_HOSTNAME分别对应主从机的hostname,ROS_MASTER_URI全部对应为主机的ip,你需要替换成自己的。
第五步:大功告成,重启网络和终端
分别在主从机上使用 sudo /etc/init.d/networking restart 命令,重启网络使我们刚才的修改生效,并且重新打开终端,启动你主机上的roscore(从机上不用启动),使用 rostopic list 指令,就可以在从机上看到主机的消息啦。
PS:也可以直接重启两台机器,一样的效果。
我的目标达成,PC上启动rviz,直接可以看到小车建出来的地图了,耶!
PS:如果遇到主从机长时间无法连接后报错ERROR: Unable to communicate with master!
请看我的另一篇,ros爬坑日记