原文出自于ROS2GO手册 http://doc.tianbot.com/ros2go/3027908
ROS初学者容易卡在诸多不相关的问题上,这里也推荐ROS2GO给大家,立即拥有一个完善的环境配置,同时可以随时召唤老司机解决疑难杂症。
文章目录
ROS多机通信(主从机配置)
在充分的单机学习测试之后,往往要进行真实机器人的测试,那么就要接触到多机通信的问题。ROS采用的分布式网络通信,只要正确的设置ROS_MASTER_URI和ROS_IP两个环境变量,就可以成功实现ROS的多机通信。但是在这里初学者往往因为没有深入理解ROS通信机制而产生问题。ROS Wiki的说明也比较笼统,但是需要先行阅读。后面我们详细说明在多机通信产生问题时如何处理。
http://wiki.ros.org/ROS/NetworkSetup
http://wiki.ros.org/ROS/Tutorials/MultipleMachines
ROS消息通信机制

我们简单梳理一下,在话题通信时,什么时候会用到ROS_MASTER_URI和ROS_IP这两个环境变量。
-
Talker启动,通过ROS_MASTER_URI连接到ROS Master,注册发布者的信息,包含所要发布的话题名称(bar)和消息类型;ROS Master会将该发布者的注册信息存储到发布者注册列表中,等待接收者。
-
Listener启动,通过ROS_MASTER_URI连接到ROS Master,将其订阅的话题名bar和消息类型在ROS Master上注册(实际上也包括自己的

ROS初学者在多机通信中常遇到问题,如能看见消息列表但收不到内容。解决办法包括:设置ROS_MASTER_URI和ROS_IP,确保双方能ping通且SSH可行。在机器人(robot)上启动roscore,需在robot和远程电脑(ros2go)的.bashrc文件中正确设置ROS_MASTER_URI和ROS_IP。此外,可用命令行获取并设置IP地址,或通过hostname设置。官方推荐使用hostname,但路由器DNS解析的可靠性较低,建议使用IP地址或强制解析hosts文件。
最低0.47元/天 解锁文章
641

被折叠的 条评论
为什么被折叠?



