ROS学习笔记(0):几个重要概念:节点、消息、主题、服务

1、节点(node)

节点是进行运算任务的进程。一个系统可以由很多节点组成,节点也可以称为软件模块。

ROS是以节点的形式开发的,节点是根据其目的,可以细分的可执行程序的最小单位。

主节点
由于机器人的元器件很多,功能庞大,因此实际运行时往往会运行众多的node,负责感知世界、控制运动、决策和计算等功能。
那么如何合理的进行调配、管理这些node?这就要利用ROS提供给我们的节点管master,master在整个网络通信架构里相当于管理中心,管理着各个node
node首先master处进行注册,之后master会将该node纳入整个ROS程序中
node之间的通信也是先由master进行“牵线”,才能两两的进行点对点通信
当ROS程序启动时,第一步首先启动master,由节点管理器处理依次启动node
 

节点使基于ROS的系统在运行时更加形象化,当许多节点同时进行时,可以将不同节点的通讯绘制成下图。

ROS学习笔记(0):几个重要概念:节点、消息、主题、服务_第1张图片

2、消息(message)

节点之间通过传送消息进行通讯。每一个消息都是一种数据结构。

ROS的消息支持标准的数据类型(整型、浮点型、布尔型等),还包括数组、结构体、自定义的数据类型等等。

3、主题(topic)

消息以一种 发布/订阅 的方式传递,一个或多个节点可以在一个给定的主题中发布消息,多个节点可以订阅同一个主题。

ROS学习笔记(0):几个重要概念:节点、消息、主题、服务_第2张图片

发布者和订阅者不了解彼此的存在。

4、服务(service)

基于主题 发布/订阅 的通信方法是一种异步方法,该 发布/订阅 模型是一种很灵活的通讯模式。但在某些情况下,需要一种同时使用请求和响应的同步消息交换方案,ROS提供了叫做服务的消息同步方法,是一种一对一的机制。

一个服务被分成服务服务器和服务客户端,其中服务服务器只在有请求(request)的时候才响应(response),而服务客户端会在发送请求后接收响应。与话题不同,服务是一次性消息通信。

因此,当服务的请求和响应完成时,两个连接的节点将被断开。

服务通常被用作请求机器人执行特定操作时使用的命令,或者用于根据特定条件需要产生事件的节点。

由于它是一次性的通信方式,在网络上的负载很小,所以它也被用作代替 基于主题 发布/订阅 的通信手段。

5、ROS控制器(ROS master)

在上面概念的基础上,需要有一个控制器,可以使所有节点有条不紊地执行,这就是ROS的控制器(ROS master)。

ROS master 通过RPC(Remote Procedure Call Protocol,远程过程调用)提供登记列表和对其他节点/主题的查找。

ROS学习笔记(0):几个重要概念:节点、消息、主题、服务_第3张图片

总结为一句话就是:ROS中最小的进程单元就是节点(node),节点之间通过主题(topic)传递消息数据(message)

ROS学习笔记(0):几个重要概念:节点、消息、主题、服务_第4张图片

消息记录包(bag)是一种用于保存和回放ROS消息数据的文件格式。ROS提供了可以将bag文件可视化的图形工具,详见:

算法集市:ROS bag的绘图工具:rqt_bag和PlotJuggler9 赞同 · 4 评论文章

ref:

ROS的几个重要概念:节点、消息、主题、服务 - 知乎

ROS节点_duganlx的博客-CSDN博客

你可能感兴趣的:(ROS,学习,笔记)