ROS:计算图

news/2024/7/5 2:31:31

目录

  • 一、ROS计算图简介
  • 二、节点(Node)
  • 三、节点管理器(Master)
  • 四、消息(Message)
  • 五、话题(Topic)
  • 六、服务(Service)
  • 七、动作(Action)
  • 八、消息记录包(Bag)
  • 九、参数(Parameter)
  • 十、功能包(Package)
  • 十一、功能包清单(Package manifest)
  • 十二、元功能包(Meta Package)

一、ROS计算图简介

计算图(Computation Graph)是一个由ROS进程组成的点对点网络,它们能够共同处理数据。ROS的基本计算图概念有节点(Nodes)、主节点(Master)、参数服务器(Parameter Server)、消息(Messages)、服务(Services)、话题(Topics)和袋(Bags),它们都以不同的方式向图(Graph)提供数据。
在这里插入图片描述

二、节点(Node)

节点就是执行具体任务的进程或独立运行的可执行文件,通常一个系统由多个节点组成,节点之间可以通过ROS客户端库(如roscpp 、rospy)相互通信。不同节点可使用不同编程语言,可分布式运行在不同的主机。节点在系统中的名称必须是唯一的。

三、节点管理器(Master)

节点管理器在系统中主要起到了一个中介的作用,能够帮助节点相互找到彼此。节点管理器能够为节点提供命名和注册服务,以及跟踪和记录话题/服务通信。同时节点管理器还提供了一个参数服务器(Parameter Server),节点使用此服务器存储和检索运行时的参数。

四、消息(Message)

消息本身是基于发布/订阅模型的话题通信机制而来的,具有一定的类型和数据结构,既包含ROS提供的标准数据类型,也可由用户自定义数据类型。

五、话题(Topic)

话题通信采用的是一种异步通信机制。话题通信基于发布/订阅模型,数据由发布者传输给订阅者。其中节点既可以作为发布者发布消息,也可以作为订阅者订阅消息。同一个话题的发布者和订阅者可以不唯一,另外一个节点也可以发布或订阅多个消息。一般来说,发布者和订阅者并不知道对方的存在。发布者将信息发布在一个全局的工作区内,当订阅者发现该信息是它所订阅的,就可以接收到这个信息。通常用于数据传输。

六、服务(Service)

服务通信采用的是一种同步通信机制。服务通信基于客户端/服务器模型,客户端(Client)发送请求数据(Request),服务器(Server)完成处理后返回应答数据(Response)。与话题不同的是,ROS中只允许有一个节点提供指定命名的服务。通常用于逻辑处理。

七、动作(Action)

动作是基于ROS消息机制实现的一种问答通信机制,基于客户端/服务器模型,服务器可以连续反馈数据给客户端,客户端可以在任务运行过程中中止运行。动作Action的接口主要由goal、cancel、status、feedback和result组成,客户端可以在任务启动前向服务器发布任务目标goal,也可以在任务过程中向服务器发送cancel请求取消任务。服务器向客户端反馈服务器当前的状态,或周期性反馈任务运行的监控数据,而result在任务运行过程中只发布一次,仅在服务器完成动作后反馈一个最终结果。

八、消息记录包(Bag)

消息记录包是一种用于保存和回放ROS消息数据的文件格式。它使用.bag格式保存消息、主题、服务和其他ROS数据信息,可以在事件发生后,通过使用可视化工具调用和回放数据,检查在系统中到底发生了什么。记录包文件可以像实时会话一样在ROS中再现情景,在相同时间向主题发送相同的数据。通常用于调试算法。

九、参数(Parameter)

参数服务器能够保存一部分参数作为全局共享字典,系统中的所有节点都可以通过网络访问这些共享字典,存储和检索参数的参数名或参数值,而字典中的数据类型包含了int整型、float浮点型、string字符串等。参数的存储和检索采用的通信机制是更为底层的RPC,而不再是话题或服务。它更适合存储静态、非二进制的配置参数,不适合存储动态配置的数据。

十、功能包(Package)

功能包是ROS软件中的基本单元,包含节点源码、配置文件、数据定义等。

十一、功能包清单(Package manifest)

功能包清单记录了功能包的基本信息,包含作者信息、许可信息、依赖选项、编译标志等。

十二、元功能包(Meta Package)

元功能包是一种特殊的功能包,它只包含元功能包清单文件。它的作用是将多个具有相同功能的功能包整合成一个逻辑上独立的功能包,类似于功能包集合。
在这里插入图片描述


http://lihuaxi.xjx100.cn/news/1269625.html

相关文章

到底还有谁学不会 MySQL 中的视图?

文章目录 MySQL中的视图视图的概念视图的用法简化查询操作提高查询效率保护数据的安全性 视图的代码示例总结 MySQL中的视图 在MySQL中,视图是一种虚拟表,它是由一个或多个基本表的行或列组成的。视图并不实际存储数据,而是根据定义的查询语…

Word技巧之【文档自动保存】

打工人的噩梦—电脑突然坏掉,文档还没保存!你是否遇到这种情况? 如果Word文档设置了自动保存,就不用太过担心了,只需要几个简单的操作就能设置好。还不知道的小伙伴,跟着小编一起看看吧。 设置Word文档自动…

Vb+sql医院门诊管理系统(系统+论文+开题报告+任务书+文献综述+参考文献)

信息时代已经来临,计算机应用于医院的日常管理,为医院的现代化带来了从未有过的动力和机遇,为医疗卫生领域的发展提供了无限的潜力。采用计算机管理信息系统已成为医院管理科学化和现代化的标志,给医院带来了明显的经济效益和社会…

丰田汽车投资人要求董事长下台

🚙 丰田电动车推广不力,股东要求董事长下台 Toyota faced down two proxy votes at its annual general meeting. In an unusual challenge to the management of a Japanese company, activist investors in America and Europe recommended voting aga…

在 Python 中打印度数符号

本篇文章将介绍如何用 Python 编写度数符号。 度数符号 度数符号是表示特定区域温度的符号。 例如,假设卡纳塔克邦的气温为 34 摄氏度; 它表明,在印度卡纳塔克邦,温度为 34 度。 度数也与华氏度和摄氏度一起使用。 使用 chr 函数…

【Linux】常用指令(二)

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员,2024届电子信息研究生 目录 man指令 echo指令 补充: echo和cat的区别? CP指令 mv命令 ctrlc 指令 which指令 学习中遇到得问题: 1.如何看待指令? 2.在执行指令之前&#xf…

Linux之快速入门和换源

目录 1.Linux的一些基本的语句 2.换源 1.Linux的一些基本的语句 mv 文件或者目录的改名或者移动以及修改文件名 pwd 查看用户当前目录 touch 新建文件 mkdir 新建文件夹 clear 清除屏幕 su 切换用户 mkdir -p 多个文件夹创建 cat 文件查看内容 mkdir -p {} 创建多成相同…

Python|Pyppeteer启动浏览器窗口,右侧出现空白区域怎么解决?(13)

前言 本文是该专栏的第13篇,结合优质项目案例持续分享Pyppeteer的干货知识,记得关注。 有些同学可能在使用pyppeteer的时候,在配置项里面,明明已经设置好了窗口最大化,而启动Chromium窗口,打开的窗口最右侧却是一大片空白区域,具体如下图所示: 那么,出现上述情况,需…