ROS多机通信,ros2多机通信

  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源代码。

ROS多机通信,ros2多机通信