ROS多机通讯踩坑,(主机和从机之间可以订阅话题,但是看不到话题消息)

在进行ROS分布式通讯的时候,已经设置好HOST 而且指定master地址
在树莓派上能够使用rostopic list 查看话题列表,
但是,监听话题时rostopic echo /chatter没有内容

查阅相关资料,我发现我出现如下错误:
1,在主机设置从机的host信息(非常重要 名字不能乱改)
host文件作用:
系统会先检查自己的Hosts文件中是否有这个地址映射关系,如果有则调用这个IP地址映射,如果没有再向已知的DNS服务器提出域名解析。也就是说Hosts的请求级别比DNS高。
在主机上

sudo nano /etc/hosts

注意这里,127.0.1.1是我的主机本地ip地址,并且autolabor-host 是我的主机名称
这里我们添加从机端的ip地址
我的从机(树莓派)地址为
10.12.50.8 名字叫robot
ROS多机通讯踩坑,(主机和从机之间可以订阅话题,但是看不到话题消息)_第1张图片
2,在从机上设置主机的host信息

sudo nano /etc/hosts

ROS多机通讯踩坑,(主机和从机之间可以订阅话题,但是看不到话题消息)_第2张图片
可以看到这里我的树莓派叫robot,所以在主机中应该名字填写robot,主机叫autolabor-host,这里也应该这样填,host名字在网络中作为一种标识,所以不能乱填,我最开始乱填,导致监听不到话题信息
3,在从机中设在ROSmaster地址

 sudo nano ~/.bashrc

最后加上:
ROS_HOSTNAME填本机的host名称,就是刚刚的host里面的那个,ROS_MASTER_URI填mast的地址,这里我主机当作master,所以写http://autolabor-host:11311

export ROS_HOSTNAME=robot
export ROS_MASTER_URI=http://autolabor-host:11311

这样就能成功的互相接受到话题信息了

你可能感兴趣的:(ROS机器人)