ROS多机通信,ros2多机通信
1 ROS 2多机通信需要哪些知识网络基础知识通信机制设置ROS_MASTER_URI和HOST_IP ROS环境变量。bashrc的功能3实现方式4测试多机通信设置环境,并按照上面的操作查看题目 talker listener测试 turtlesim键盘控制5总结
一群同学拿着一本很帅的头带书问我怎么设置多机通讯。下面简单配置一下。
1什么是ros
ROS是机器人操作系统的缩写。ROS是一个高度灵活的软件架构,用于编写机器人软件程序。它包含大量的工具软件、库代码和商定的协议,旨在简化跨机器人平台创建复杂而逼真的booties的过程的难度和复杂性。ROS的原型来自斯坦福大学的斯坦福。
人工智能机器人(STAIR)和个人机器人(PR)项目。
2多机通信知识多机通信主要是通过网络实现的,而这是ros的核心通信组件,即xmlrpc:
Rpc是一种RPC机制,使用http协议作为传输协议,并使用xml文本来传输命令和数据。rpc系统必须包括两个部分:
1.rpc客户端,用于调用方法到rpc服务器,接收方法的返回数据;2.rpc服务器,用于响应rpc客户端的请求,执行方法,并发回方法执行结果。
RPC procedure call的缩写,翻译成中文就是远程过程调用的意思,是一种在本地机器上调用远程机器上的过程(方法)的技术。这个过程也被称为“分布式计算”,它是为了提高各种离散机器的“互操作性”而发明的。网络基础知识。首先,您应该确保这两台设备在网络上是连接的。常用的方法是ping。目前测试不能跨网段。如果有同学意识到了,请告诉我。
关于ROS沟通机制的具体实现,请参考这份官方文件:http://wiki.ros.org/cn/ROS/Technical.概述
启动rosmaster节点,此时会拉起一个xmlrpc服务器uri=http://localhost:11311/。参考是ROS_MASTER_URI
启动参数服务器Parameter Server实际上是上述master的启动节点的一部分,节点主要负责与其他节点的协商。
主题sub和pub实际上是通过xml协商的。topic作为xmlrpc的客户端,协商时会取本地地址。这个地址是从ROS_IP或hostname获得的。协商完成后,可以点对点传输数据。将ROS_MASTER_uri和HOST_IP ROS_MASTER_uri设置为指定主机的URI的环境变量。默认是本地HOST_IP是指定主机的地址,默认主机名实际上是一个域名。如果没有指定具体的ip,协商后的传输建立将会失败,因为dns没有解析到地址。 ros环境变量ros环境变量主要是有ROS的几个环境变量。
ROS _ Root=/opt/ROS/Kinetic/Share/ROS Root ROS _ Package _ path=/home/utry/柳絮_ ws/src:/opt/ROS/Kinetic/Share ROS包路径,通过这个找到包的版本ROS _ uri ROS _ PYTHON _ VERSION=2 PYTHON VERSION=1 ROS ROS Lisp _ Package _ directory=/home/utry/柳絮_ ws/devel/Share/common-Lisp Lisp包路径ROS _ DISTRO=Kinetic release ROS _ IP=192 . 168 . 0巴沙尔的作用。每次打开新的终端都会执行bashrc文件,我们会在后面增加一些环境变量的操作。
3.这可以通过以下方式实现:
很多安装了ros的机器都在同一个局域网内,可以互相ping通,在确认为主的设备上启动roscore。设置主机HOST_ip和命令export ROS_IP=local IP。这是为了让别人可以连接到自己的从机,设置ROS _ master _ URI=3358主机ip:11311。命令是export ROS_MASTER_URI=http://主机ip:11311。您可以将此添加到。巴沙尔。此时,您可以通过命令检查主机和连接到主机的机器的节点状态。从机设置ROS_ip=本地ip,命令是export ROS_IP=本地IP。就是这样。下面测试4测试多机通讯设置环境,按照上面的操作得到两台电脑。
从属状态:
启动roscore和listener,我改了源代码,打印可能有点乱。
检查题目
talker listener test listen已经打开,我把它ssh到从机上,方便查看。
turtlesim键盘控制主启动乌龟,从控制。
反向控制,主控制从。
5总结是否犯了这个错误
ROS_IP未设置。
这个错误是roscore没有启动或者ROS_MASTER_URI没有设置。
就在我读到这里的时候,我熟悉了源代码,并且花时间制作了一个专栏的ros源代码。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。