您当前的位置:首页 > 电脑百科 > 人工智能

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

时间:2020-08-11 10:51:48  来源:  作者:
ROS的几个重要概念:节点、消息、主题、服务

 

ROS是机器人操作系统(Robot Operating System)的简称,用于编写机器人的软件程序。

ROS是一种具有高度灵活性的软件架构,能够帮助软件开发者快速创建机器人应用软件。

ROS提供了一系列程序库和工具,包括:硬件抽象、设备驱动、库函数、可视化、进程间消息传递和软件包管理等。

ROS是一个分布式的进程(也就是“节点”)框架,这些进程被封装在不同的程序包或功能包中。

ROS可以分成两层:底层是操作系统层(通常不需要用户关心),上层则是实现不同功能的软件包,如感知、定位、规划、控制等。

了解了ROS的目录文件结构之后:ROS的目录文件结构

本文主要介绍几个ROS的重要概念:节点(node)、消息(message)、主题(topic)、服务(service),ROS控制器(ROS master),帮助初学者快速了解ROS。

1、节点(node)

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

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

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

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

 

2、消息(message)

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

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

3、主题(topic)

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

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

 

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

4、服务(service)

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

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

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

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

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

5、ROS控制器(ROS master)

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

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

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

 

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

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

 

消息记录包(bag)是一种用于保存和回放ROS消息数据的文件格式。

ROS提供了可以将bag文件可视化的图形工具,详见:ROS bag的绘图工具:rqt_bag和PlotJuggler



Tags:ROS   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
最近这段时间,我们三易生活收到了一些来自读者朋友的求助,在他们选购电脑时发现,有的设备出厂预装了“Microsoft 365”,而另一些则预装的是“Office 2021”。对于这两款同为微软...【详细内容】
2021-12-14  Tags: ROS  点击:(26)  评论:(0)  加入收藏
随着信息技术及相关应用的不断普及,用户每天需要登录不同的信息系统,如WEB服务器、邮件服务器、数据库服务器及各种应用服务器等。传统的认证机制采用基于用户名/密码的分散管...【详细内容】
2021-10-27  Tags: ROS  点击:(31)  评论:(0)  加入收藏
标准C 语言使用下列关键字:auto break case char const continue default do double else enumextern float for goto if inline 1, a int long register restrict 1, a retu...【详细内容】
2021-04-22  Tags: ROS  点击:(275)  评论:(0)  加入收藏
推荐一款路由器系统,头条有很多喜欢使用软路由伙伴可能有很多都不知道RouterOS这个路由系统是,RouterOS 是 由拉脱维亚MikroTik 司开发的一 种基于Linux 内核的路由操作系统。...【详细内容】
2020-10-30  Tags: ROS  点击:(2176)  评论:(0)  加入收藏
我们都知道,随着智能手机屏幕的越做越大,除了能带来更加沉浸的使用体验的同时,也为广大用户进行多任务处理提供了更大的操作空间。不过在使用时也带来了不少问题,比如在你游戏时...【详细内容】
2020-09-04  Tags: ROS  点击:(112)  评论:(0)  加入收藏
接:ROS的几个重要概念:节点、消息、主题、服务上文主要介绍了ROS的几个重要概念:节点(node)、消息(message)、主题(topic)、服务(service)。 节点(node):独立的计算执行进程; 消息(message):...【详细内容】
2020-08-20  Tags: ROS  点击:(89)  评论:(0)  加入收藏
ROS是机器人操作系统(Robot Operating System)的简称,用于编写机器人的软件程序。ROS是一种具有高度灵活性的软件架构,能够帮助软件开发者快速创建机器人应用软件。ROS提供了一...【详细内容】
2020-08-11  Tags: ROS  点击:(291)  评论:(0)  加入收藏
在渗透测试中,有些工具的运行(例如高版本的Powershell)需要依赖Microsoft .NET Framework 4.0的环境。 而默认配置下,Win7不支持Microsoft .NET Framework 4.0。为了保证工具...【详细内容】
2020-07-03  Tags: ROS  点击:(116)  评论:(0)  加入收藏
对于安卓端开发者来说,最近最大的新闻莫过于谷歌在 6 月 11 日发布的 Android 11 首个 Beta 版本,并邀请多方参与测试。在国内也有不少厂商及时跟进,比如 OPPO,旗下 ColorOS 就...【详细内容】
2020-06-22  Tags: ROS  点击:(85)  评论:(0)  加入收藏
说到省电模式,国内各大厂商早已开始推行,比如华为、小米、vivo,ColorOS等都支持了该模式。但是在细化的方向上又有所不同,大部分的品牌都只关注在系统层面上的控制,却未有整整考...【详细内容】
2020-06-11  Tags: ROS  点击:(93)  评论:(0)  加入收藏
▌简易百科推荐
作为数据科学家或机器学习从业者,将可解释性集成到机器学习模型中可以帮助决策者和其他利益相关者有更多的可见性并可以让他们理解模型输出决策的解释。在本文中,我将介绍两个...【详细内容】
2021-12-17  deephub    Tags:AI   点击:(15)  评论:(0)  加入收藏
基于算法的业务或者说AI的应用在这几年发展得很快。但是,在实际应用的场景中,我们经常会遇到一些非常奇怪的偏差现象。例如,Facebook将黑人标记为灵长类动物、城市图像识别系统...【详细内容】
2021-11-08  数据学习DataLearner    Tags:机器学习   点击:(32)  评论:(0)  加入收藏
11月2日召开的世界顶尖科学家数字未来论坛上,2013年诺贝尔化学奖得主迈克尔·莱维特、2014年诺贝尔生理学或医学奖得主爱德华·莫索尔、2007年图灵奖得主约瑟夫·斯发斯基、1986年图灵奖得主约翰·霍普克罗夫特、2002...【详细内容】
2021-11-03  张淑贤  证券时报  Tags:人工智能   点击:(39)  评论:(0)  加入收藏
鉴于物联网设备广泛部署、5G快速无线技术闪亮登场,把计算、存储和分析放在靠近数据生成的地方来处理,让边缘计算有了用武之地。 边缘计算正在改变全球数百万个设备处理和传输...【详细内容】
2021-10-26    计算机世界  Tags:边缘计算   点击:(45)  评论:(0)  加入收藏
这是几位机器学习权威专家汇总的725个机器学习术语表,非常全面了,值得收藏! 英文术语 中文翻译 0-1 Loss Function 0-1损失函数 Accept-Reject Samplin...【详细内容】
2021-10-21  Python部落    Tags:机器学习   点击:(43)  评论:(0)  加入收藏
要开始为开源项目做贡献,有一些先决条件:1. 学习一门编程语言:由于在开源贡献中你需要编写代码才能参与开发,你需要学习任意一门编程语言。根据项目的需要,在后期学习另一种语言...【详细内容】
2021-10-20  TSINGSEE青犀视频    Tags:机器学习   点击:(37)  评论:(0)  加入收藏
SimpleAI.人工智能、机器学习、深度学习还是遥不可及?来这里看看吧~ 从基本的概念、原理、公式,到用生动形象的例子去理解,到动手做实验去感知,到著名案例的学习,到用所学来实现...【详细内容】
2021-10-19  憨昊昊    Tags:神经网络   点击:(47)  评论:(0)  加入收藏
语言是人类思维的基础,当计算机具备了处理自然语言的能力,才具有真正智能的想象。自然语言处理(Natural Language Processing, NLP)作为人工智能(Artificial Intelligence, AI)的核心技术之一,是用计算机来处理、理解以及运...【详细内容】
2021-10-11    36氪  Tags:NLP   点击:(48)  评论:(0)  加入收藏
边缘计算是什么?近年来,物联网设备数量呈线性增长趋势。根据艾瑞测算, 2020年,中国物联网设备的数量达74亿,预计2025年突破150亿个。同时,设备本身也变得越来越智能化,AI与互联网在...【详细内容】
2021-09-22  汉智兴科技    Tags:   点击:(54)  评论:(0)  加入收藏
说起人工智能,大家总把它和科幻电影中的机器人联系起来,而实际上这些科幻场景与现如今的人工智能没什么太大关系。人工智能确实跟人类大脑很相似,但它们的显著差异在于人工智能...【详细内容】
2021-09-17  异步社区    Tags:人工智能   点击:(57)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条