通信机制

节点--执行单元

  • 执行具体任务的进程、独立运行的可执行文件;
  • 不同节点可以使用不同的编程语言,可分布式运行在不同的主机上。
  • 节点在系统中的名称是必须是唯一的。

节点管理器(ROS Master)--控制中心

  • 为节点提供命名和注册服务;
  • 跟踪和记录话题/服务通信,辅助节点互相查找、建立连接;
  • 提供参数服务器,节点使用此服务器存储和检索运行时的参数。

话题通信

  • 话题--异步通信机制
  • 节点间用来传输数据的重要总线;
  • 使用发布/订阅模型,数据由发布者传输到订阅者,同一个话题的订阅者或发布者可以不唯一。

消息--话题数据

  • 具有一定的类型和数据结构,包括ROS提供的标准类型和用户 自定义类型;
  • 使用编程语言无关的.msg文件定义,编译过程中生成对应的代码文件。

服务(service)--同步通信机制

  • 使用客户端/服务器(c/s)模型,客户端请求数据,服务器完成处理后返回应答数据;
  • 使用编程语言无关的.srv文件定义请求和应答数据结构,编译过程中,生成对应的代码文件。

参数--全局共享字典

  • 可通过网络访问的共享、多变量字典;
  • 节点使用此服务器来存储和检索运行时的参数;
  • 适合存储静态、非二进制的配置参数,不适合存储动态配置的数据。

文件系统

  • 功能包:ROS软件中的基本单元,包含节点源码,配置文件,数据定义等
  • 功能包清单:记录功能包的基本信息,包含作者信息、许可信息、依赖选项、编译标志等
  • 元功能包:组织多个用于同一目的的功能包。



    工作空间(workspace)是一个存放工程开发相关文件的文件夹。

创建工作空间

  • src: 代码空间(Source Space)
  • builed: 编码空间(Build Space)
  • devel: 开发空间(Development Space)
  • install: 安装空间(Install Space)

开发工具

应用功能

生态系统

ROS的通信机制的更多相关文章

  1. .Net中Remoting通信机制简单实例

    .Net中Remoting通信机制 前言: 本程序例子实现一个简单的Remoting通信案例 本程序采用语言:c# 编译工具:vs2013工程文件 编译环境:.net 4.0 程序模块: Test测试 ...

  2. .Net中Remoting通信机制

    Remoting通信机制 Remoting介绍 主要元素 通道类型 激活方式 对象定义 Remoting介绍 什么是Remoting,简而言之,我们可以将其看作是一种分布式处理方式. 从微软的产品角度 ...

  3. 【单页应用之通信机制】view之间应该如何通信

    前言 在单页应用中,view与view之间的通信机制一直是一个重点,因为单页应用的所有操作以及状态管理全部发生在一个页面上 没有很好的组织的话很容易就乱了,就算表面上看起来没有问题,事实上会有各种隐忧 ...

  4. Android多线程通信机制

    掌握Android的多线程通信机制,我们首先应该掌握Android中进程与线程是什么. 1. 进程 在Android中,一个应用程序就是一个独立的进程(应用运行在一个独立的环境中,可以避免其他应用程序 ...

  5. Storm进程通信机制

    storm的worker进程之间消息传递机制图: 每个worker都有一个独立的监听进程,监听配置文件中配置过的端口列表supervisor.slots.ports,topology.receiver ...

  6. Android 进程通信机制之 AIDL

    什么是 AIDL AIDL 全称 Android Interface Definition Language,即 安卓接口描述语言.听起来很深奥,其实它的本质就是生成进程间通信接口的辅助工具.它的存在 ...

  7. 【腾讯Bugly干货分享】深入源码探索 ReactNative 通信机制

    Bugly 技术干货系列内容主要涉及移动开发方向,是由 Bugly 邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 本文从源码角度剖析 RNA 中 J ...

  8. 【转】跟我学Kafka之NIO通信机制

    from:云栖社区 玛德,今天又被人打脸了,小看人,艹,确实,相对比起来,在某些方面差一点,,,,该好好捋捋了,强化下短板,规划下日程,,,引以为耻,铭记于心. 跟我学Kafka之NIO通信机制   ...

  9. Angularjs Controller 间通信机制

    在Angularjs开发一些经验总结随笔中提到我们需要按照业务却分angular controller,避免过大无所不能的上帝controller,我们把controller分离开了,但是有时候我们需 ...

  10. netlink---Linux下基于socket的内核和上层通信机制 (转)

    需要在linux网卡 驱动中加入一个自己的驱动,实现在内核态完成一些报文处理(这个过程可以实现一种零COPY的网络报文截获),对于复杂报文COPY下必要的数据交给用户 态来完成(因为过于复杂的报文消耗 ...

随机推荐

  1. 【源码分析】XXL-JOB的执行器的注册流程

    目的:分析xxl-job执行器的注册过程 流程: 获取执行器中所有被注解(@xxlJjob)修饰的handler 执行器注册过程 执行器中任务执行过程 版本:xxl-job 2.3.1 建议:下载xx ...

  2. Node.js躬行记(27)——接口管理

    在页面发生线上问题时,你要做的事情就是去查接口,响应数据是否正确,查接口的方法有两种: 第一种是在浏览器中打开地址,但是你必须得知道详细的 URL,并且有些页面还需要附带参数. 第二种是打开编辑器,启 ...

  3. MySql中执行计划如何来的——Optimizer Trace

    作者:京东物流 籍磊 1.前言 当谈到MySQL的执行计划时,会有很多同学想:"我就觉得使用其他的执行方案比EXPLAIN语句输出的方案强,凭什么优化器做的决定与我得不一样?".这 ...

  4. Python-pytest-repeat的简单使用

    前言: 一.简介 pytest-repeat是pytest的插件,重复执行单个用例,或多个测试用例,并指定重复次数. 二.安装 1.执行如下命令 pip3 install pytest-repeat ...

  5. MySQL百万数据深度分页优化思路分析

    业务场景 一般在项目开发中会有很多的统计数据需要进行上报分析,一般在分析过后会在后台展示出来给运营和产品进行分页查看,最常见的一种就是根据日期进行筛选.这种统计数据随着时间的推移数据量会慢慢的变大,达 ...

  6. 2022-09-20:以下go语言代码输出什么?A:8 8;B:8 16;C:16 16;D:16 8。 package main import ( “unsafe“ “fmt“ )

    2022-09-20:以下go语言代码输出什么?A:8 8:B:8 16:C:16 16:D:16 8. package main import ( "unsafe" " ...

  7. 2022-02-19:安装栅栏。 在一个二维的花园中,有一些用 (x, y) 坐标表示的树。由于安装费用十分昂贵,你的任务是先用最短的绳子围起所有的树。只有当所有的树都被绳子包围时,花园才能围好栅栏。

    2022-02-19:安装栅栏. 在一个二维的花园中,有一些用 (x, y) 坐标表示的树.由于安装费用十分昂贵,你的任务是先用最短的绳子围起所有的树.只有当所有的树都被绳子包围时,花园才能围好栅栏. ...

  8. 2021-10-21:Excel 表列序号。给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回该列名称对应的列序号。示例 1:输入: columnTitle = “A“,

    2021-10-21:Excel 表列序号.给你一个字符串 columnTitle ,表示 Excel 表格中的列名称.返回该列名称对应的列序号.示例 1:输入: columnTitle = &quo ...

  9. Prompt工程师指南[应用篇]:Prompt应用、ChatGPT|Midjouney Prompt Engineering

    Prompt工程师指南[应用篇]:Prompt应用.ChatGPT|Midjouney Prompt Engineering 1.ChatGPT Prompt Engineering 主题: 与 Ch ...

  10. vue-admin-template包下载地址

    https://gitee.com/panjiachen/vue-admin-template/ https://github.com/PanJiaChen/vue-admin-template