ROS--3重要术语

ROS: 

表示整个机器人开发生态,提供共享库,消息解析,功能包管理,丰富开发和调试工具等。

 

主节点(Ros Master):

负责节点到节点的链接和消息通信,类似于名称服务器(Name Server)。Rescore就是运行它,当运行主节点时,可以注册每个节点的名字,并根据需要获取信息。

没有主节点,就不能在节点之间建立访问和消息通信(如Topic和server)

 

ROS--3重要术语_第1张图片

当启动ROS时,主节点将获取用户设置的ROS_MASTER_URI变量中列出的URI地址和端口。除非另外设置,默认情况下,URI地址使用当前的本地IP,端口使用11311。

ROS--3重要术语_第2张图片

 

节点(Node):

Node是指ROS中运行的最小处理单元。在ROS中,建议为一个目的创建一个节点,设计时注重可重用性

节点运行的同时,向主节点注册节点名称,并且还注册发布者(publisher)/订阅者(subscriber),服务服务器(service server)、服务客户端(service client), 且注册消息形式,URI地址和端口。

每个节点可以使用话题和服务与其他节点交换消息。

ROS--3重要术语_第3张图片

话题(Topic)

Publisher向主节点注册topic之后,它以消息的形式发布该topic的广播,subscriber节点获得在主节点中以这个topic注册的,那个发布者节点的信息。

ROS--3重要术语_第4张图片

发布者(Publisher)

 

发布(publish)是指以与话题的内容对应的消息的形式发送数据。

为了执行发布,发布者(publisher)节点在主节点上注册自己的话题等多种信息,并向希望订阅的订阅者节点发送消息。发布者在节点中声明自己是执行发布的个体。单个节点可以成为多个发布者。

 

ROS--3重要术语_第5张图片

 

订阅者(Subscriber)

订阅是指以与话题内容对应的消息的形式接收数据。

为了执行订阅,订阅者节点在主节点上注册自己的话题等多种信息,并从主节点接收那些发布此节点要订阅的话题的发布者节点的信息。基于这个信息,订阅者节点直接联系发布者节点来接收消息。

单个节点可以成为多个订阅者

发布和订阅概念中的话题是异步的,这是一种根据需要发送和接收数据的好方法。另外,由于它通过一次的连接,发送和接收连续的消息,所以它经常被用于必须连续发送消息的传感器数据。

然而,在某些情况下,需要一种共同使用请求和响应的同步消息交换方

案。因此,ROS提供叫做服务(service)的消息同步方法。服务分为响应请求的服务服务器和请求后接收响应的服务客户端。与话题不同,服务是一次性的消息通信。当服务的请求和响应完成时,两个节点的连接被断开。

ROS--3重要术语_第6张图片

 

服务(service)

服务(service)消息通信是服务客户端(service client)与服务服务器(service server)之间的同步双向消息通信。其中服务客户端请求对应于特定目的任务的服务,而服务服务器则负责服务响应。

ROS--3重要术语_第7张图片

 

服务服务器

服务服务器(service server)是以请求作为输入,以响应作为输出的服务消息通信的服务器。请求和响应都是消息,服务器收到服务请求后,执行指定的服务,并将结果下发给服务客户端。服务服务器用于执行指定命令的节点。

 

服务客户端

服务客户端(service client)是以请求作为输出并以响应作为输入的服务消息通信的客户端。请求和响应都是消息,并发送服务请求到服务服务器后接收其结果。服务客户端用于传达给定命令并接收结果值的节点。

动作(Action)

动作(action)是在需要像服务那样的双向请求的情况下使用的消息通信方式,不同点是在处理请求之后需要很长的响应,并且需要中途反馈值。动作文件也非常类似于服务,目标(goal)和结果(result)对应于请求和响应。此外,还添加了对应于中途的反馈(feedback)。它由一个设置动作目标(goal)的动作客户端(action client)和一个动作服务器(action server),动作服务器根据目标执行动作,并发送反馈和结果。

ROS--3重要术语_第8张图片

动作客户端和动作服务器之间进行异步双向消息通信。

 

动作服务器

动作服务器(action server)以从动作客户端接收的目标作为输入并且以结果和反馈值作为输出的消息通信的服务器。

在接收到来自客户端的目标值后,负责执行实际的动作。

 

动作客户端

动作客户端(action client)是以目标作为输出并以从动作服务器接收待结果和反馈值作为输入的消息通信的客户端。

它将目标交付给动作服务器,收到结果和反馈,并给出下一个指示或取消目标。

参数(Parameter)

ROS中的参数(parameter)是指节点中使用的参数。可以把它想象成一个

Windows程序中的*.ini配置文件。这些参数是默认(default)设置的,可以根据需要从外部读取或写入。尤其是,它可以通过使用外部的写入功能实时更改设置值,因此非常有用。

例如,您可以指定与外部设备连接的PC的USB端口、相机校准值、电机速度或命令的最大值和最小值等设置值。

 

参数服务器

参数服务器(parameter server)是指在功能包中使用参数时,注册各参数的服务器。参数服务器也是主节点的一个功能。

 

计算图(Computer Graph)

所有节点和图表,以及它们的连接方式,称为计算图;

ROS--3重要术语_第9张图片

计算图的可视化可以帮助我们了解有哪些节点,以及它们如何沟通,ROS提供了一个工具叫做rqt_graph可以显示系统计算图;

一个中等机器人可以包含几十个节点,以及更多的topic;利用rqt_graph的放大和平移功能,可以清晰的了解系统内部节点连接关系。

 

note:

参考链接:

1.www.ros.org

2.www.udacity.com

你可能感兴趣的:(ROS)