本文主要介绍几个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的几个重要概念:节点、消息、主题、服务相关推荐

  1. 【ROS入门-3】嘴对嘴讲解ROS的核心概念——节点与节点管理器

    文章目录 前言 ROS系列文章 ROS的通信机制 节点(Node) 节点管理器(Master) 简单运行 引用说明 参考 前言 我要给大家来介绍一下ROS当中一些核心的概念,帮助大家去在后面的ROS学 ...

  2. ROS2 基础概念 节点

    ROS2 基础概念 节点 1. Nodes 2. 重映射 3. 环境设置 3.1. ROS_DOMAIN_ID 3.2. ROS_LOCALHOST_ONLY 1. Nodes 每个节点应负责单个模块 ...

  3. ros入门 工程目录结构、节点通信方式、基本操作命令

    目录 ROS(Robot Operating System) ros的特点 ros的系统实现 ROS(Robot Operating System) ros的基本框架是斯坦福大学人工智能实验室在STA ...

  4. ROS系统 C++或Python实现话题消息的定义与使用

    如何自定义话题消息 定义msg文件 在package.xml中添加功能包依赖 在CMakeLists.txt添加编译选项 编译生成语言相关文件 创建 msg 文件 cd ~/catkin_ws/src ...

  5. ROS基础四之roscpp/rospy节点编写

    roscpp/rospy节点编写 subscriber/advertiser编写 roscpp实例 rospy实例 server/client编写 roscpp实例 rospy实例 actionlib ...

  6. ROS系列——mavros功能包中常用话题和服务介绍,包括消息名称、类型、头文件、成员变量、示例代码

    ROS系列--mavros功能包中常用话题和服务介绍,包括消息名称.类型.头文件.成员变量.示例代码 官方链接 常用话题 订阅 1.1 系统状态 1.2 GPS数据 1.3 本地位置 1.4 三轴速度 ...

  7. mfc 消息消息队列概念_消息队列面试连环问

    最近我一直扎在消息队列实现细节之中无法自拔,已经写了 3 篇Kafka源码分析,还剩很多没肝完.之前还存着RocketMQ源码分析还没整理.今儿暂时先跳出来盘一盘大方向上的消息队列有哪些核心注意点. ...

  8. 广播 消息 没有服务器,服务器节点消息广播

    服务器节点消息广播 内容精选 换一换 添加节点时提示"添加节点失败,节点已存在".待添加节点的服务器上已安装系统性能分析或者添加过节点.如果待添加节点的服务器上已安装系统性能分析, ...

  9. ROS笔记(40) 通讯节点

    ROS笔记(40) 通讯节点 1. 节点分析 1.1. 建立仿真 1.2. 仿真分析 2. 建立节点(C++) 2.1. 节点配置 2.1.1 hhbot_bsp_serial_conf 2.1.2 ...

最新文章

  1. 老年机按键串号_老人机怎么解除*号键解锁
  2. oracle导入与导出,oracle导入与导出
  3. 每天学点linux之-rmdir,cp,mv
  4. 机器学习理论《统计学习方法》学习笔记:第九章 EM算法及其推广
  5. ftp模式 503、227错误
  6. 【渝粤题库】陕西师范大学164204 供应链与物流管理 作业
  7. web元件库/axure元件库/常用web组件/常用表单/导航栏/边框/图标/日期时间选择器/评分组件/穿梭框/输入框/步骤条/
  8. Improper inline parameter map format. Should be: #{propName,attr1=val1,attr2=val2}
  9. ARP表项的创建与更新
  10. 螳螂科技产研分享:做有生命力的SaaS产品架构
  11. 华为交换机或路由器释放DHCP已分配的地址
  12. 2020时尚COSMO美容大奖“破圈直播间”完美收官!打造美妆直播全新形式!
  13. 远程桌面连接如何重启计算机,如何使用“远程桌面连接”连接到另一台计算机...
  14. 史上最全的工业相机CCD/CMOS靶面尺寸规格说明
  15. Postman团队协作
  16. 扫描二维码下载app
  17. java synchronized_Java中synchronized关键字理解
  18. java对接微信支付收不到支付通知问题(亲身实践)
  19. 自动控制原理-频率特性 G(jw ) 定义
  20. 【python】分苹果

热门文章

  1. GNU Bison 2.1 中文手册
  2. 第031讲:永久存储,腌制一缸美味的泡菜 | 学习记录(小甲鱼零基础入门学习Python)
  3. 2017计算机考研参考书目推荐,2017年中山大学085211计算机技术考研参考书目推荐...
  4. 最新Quarters II 13.1 下载安装全教程 + ModelSim联调(2022/12/11 )
  5. Python写入数据到txt文本中
  6. 变分推断 python_变分推断(Variational Inference)
  7. 城市级智能网联示范区情况全扫描(2021版)
  8. win32 010 使用masm32
  9. mysql身份证号用什么数据类型_建SQL表时身份证号码的数据类型最好选什么
  10. 不填写内容用哪个斜杠代替_反斜杠