ROS节点、消息、服务、主题的关系
2017-03-25 14:19
489 查看
1.ROS计算图级
ROS 会创建一个连接到所有进程的网络。在系统中的任何节点都可以访问此网络,并通过该网络与其他节点交互,获取其他节点发布的信息,并将自身数据发布到网络上。如图
在这一层级中最基本的概念包括节点、节点管理器、参数服务器、消息、服务、主题和消息记录包,这些概念都以不同的方式向计算图级提供数据:
节点(Node) 节点是主要的计算执行进程。如果你想要有一个可以与其他节点进行交互的进程,那么你需要创建一个节点,并将此节点连接到ROS 网络。
消息(Message) 节点通过消息完成彼此的沟通。消息包含一个节点发送到其他节点的数据信息。ROS 中包含很多种标准类型的消息,同时你也可以基于标准消息开发自定义类型的消息。
主题(Topic) 主题是由 ROS 网络对消息进行路由和消息管理的数据总线。每一条消息都要发布到相应的主题。当一个节点发送数据时,我们就说该节点正在向主题发布消息。节点可以通过订阅某个主题,接收来自其他节点的消息。一个节点可以订阅一个主题,而并不需要该节点同时发布该主题。这就保证了消息的发布者和订阅者之间相互解耦,完全无需知晓对方的存在。主题的名称必须是独一无二的,否则在同名主
题之间的消息路由就会发生错误。
服务(Service) 在发布主题时,正在发送的数据能够以多对多的方式交互。但当你需要从某个节点获得一个请求或应答时,就不能通过主题来实现了。在这种情况下,服务能够允许我们直接与某个节点进行交互。此外,服务必须有一个唯一的名称。当一个节点提供某个服务时,所有的节点都可以通过使用ROS 客户端库所编写的代码与它通信。
总之,ROS对所有的节点进行统一管理。节点与节点通过消息来通信。节点与节点之间使用服务之间直接通信,使用主题进行间接通信。服务是多对一,主题是多对多的关系。
使用rxgraph可以查看各个节点之间的关系。
参考文献
《ROS机器人程序设计》
相关文章推荐
- ROS节点,消息,话题,服务的介绍
- ROS:三个节点相互传递消息,每个节点都可以同时发布和订阅主题
- ROS学习笔记4-使用节点,消息,主题和服务
- 我的ROS入门(五):总算搞通ROS的服务节点订阅发布消息话题了
- ROS实践(4)-消息服务
- ROS 基础: 在同一个节点里订阅和发布消息
- ROS总结——ROS消息和ROS服务
- ROS 学习系列 -- RViz中移动机器人来学习 URDF,TF,base_link, map,odom和odom 主题的关系
- 安卓UI线程向ROS节点发送消息的方法
- ros 节点实现简易超声雷达串口通讯 模拟出激光雷达消息
- ROS(6)消息和服务具体实现
- ros节点/话题/服务...管理工具multimaster_fkie的安装和简单使用
- ROS中节点在每次接收到消息之后都发布一条消息的反馈topic
- 创建ROS消息和ROS服务(九)
- 学习9:rosed命令的简单介绍 + 创建ROS消息和ROS服务。
- ROS之msg文件定义以及自定义发布主题消息类型
- ros用rqt_graph显示节点关系、rqt_plot显示数据流、rqt_console显示节点的输出、rqt_logger_level
- ROS 学习系列 -- RViz中移动机器人来学习 URDF,TF,base_link, map,odom和odom 主题的关系
- ROS 学习系列 -- RViz中移动机器人来学习 URDF,TF,base_link, map,odom和odom 主题的关系
- 学习ROS的基本知识,节点、话题、服务等