在进行ROS分布式通讯的时候,已经设置好HOST 而且指定master地址
在树莓派上能够使用rostopic list
查看话题列表,
但是,监听话题时rostopic echo /chatter
没有内容
一,配置前准备
配置多机通讯时,需要明确自己哪个为master
我这里为树莓派作为从机,笔记本作为主机即master
这里需要查看本机与从机的hostname与ip
hostname
ifconfig
我这里查到:
树莓派(从机)hostname:raspi
ip:10.12.50.8
笔记本(master)hostname:chengyangkj-master
ip:10.12.50.1
二,配置多机通讯
查阅相关资料,我发现我出现如下错误:
1,在主机设置从机的host信息(非常重要 名字不能乱改)
-
host文件作用:
系统会先检查自己的Hosts文件中是否有这个地址映射关系,如果有则调用这个IP地址映射,如果没有再向已知的DNS服务器提出域名解析。也就是说Hosts的请求级别比DNS高。
-
更改host文件
在主机上
sudo nano /etc/hosts
-
添加本机ip与hostname
注意这里,10.12.50.1
是刚查询到的我的主机本地ip地址,并且chengyangkj-master
是刚查询到的主机hostname
-
添加从机hostname与ip
刚查询到的我的从机(树莓派)地址为
10.12.50.8
名字叫raspi
同理也填入
2,在从机上设置主机的host信息
sudo nano /etc/hosts
从机(树莓派)中同理也填入这两个hostname与ip:
可以看到这里我的树莓派主机名叫raspi,所以在主机中应该名字填写raspi,主机叫chengyangkj-master,这里也应该这样填,host名字在网络中作为一种标识,所以不能乱填,我最开始乱填,导致监听不到话题信息,同时注意如果网络环境改变的话需要及时去更新hosts文件中的IP
3,在从机中环境变量设置ROS master地址及本机ip
sudo nano ~/.bashrc
最后加上:
最终配置:
这样就能成功的互相接受到话题信息了
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)