ROS主从机通讯
两个机器同时修改 .bashrc 文件 和 /etc/hosts 文件
.bashrc文件记得 source ~/.bashrc 一下,hosts文件直接保存即可
写这个文档前,还使用了图传设备,用这个方法进行摄像头数据的读取,效果还是不错的。
步骤实现:
1、同一局域网下、通过路由器或者网线或者图传设备都行
先ping通,即双方之间有数据传输,再进行下一步
2、从机修改:
1、.bashrc文件修改
export HOSTNAME=w
export ROS_MASTER_URI=http://192.168.1.130:11311
解释:HOSTNAME 写上自己电脑的名字,ROS_MASTER_URI写上主机的IP地址(即指定哪个是 ros中的master),后面的11311不进行修改。 改完之后source一下
2、hosts文件修改
192.168.1.30 w
192.168.1.130 cqu-Default-string
解释:(注意IP和hostname之间是tab 不是 空格)先写从机IP,再写从机的hostname名称;下面写主机的IP和主机的hostname名称;修改完成后保存退出即可;
3、主机修改:
1、.bashrc文件修改
export ROS_HOSTNAME=cqu-Default-string
export ROS_IP=http://192.168.1.130:11311
解释:ROS_HOSTNAME 写上自己主机电脑的名字,ROS_IP写上主机的IP地址,后面的11311不进行修改。 改完之后source一下
2、hosts文件修改
192.168.1.130 cqu-Default-string
192.168.1.30 w
解释:(注意IP和hostname之间是tab 不是 空格)先写主机IP,主机hostname;下面写从机的IP和hostname;修改完成后保存退出即可; 我是按照这个顺序的,不知道更改顺序会怎么样。
4、验证
master端即主机端开roscore,然后从机读取话题,或者主机开个小乌龟,从机开个键盘控制节点尝试一下看行不行;
5、容易出现的问题
1、比如,有ros话题,但是读取不到ros话题的数据,
肯定是没配置好,尝试了很多的方法,这个方法每次都是可以读到的;
2、一定要以话题的读取,或者实现你的目标为验证结果,简单读取到rostopic list 不一定就配置好了,一定要注意