一.ROS架构

ROS架构上分为三个层级:

  • 计算图级(Computation Graph level):体现进程与系统的关系,描述系统怎么运行。
  • 文件系统级(Filesystem level):组织构建程序文件。
  • 社区级(Community level):开源社区,共享知识、算法和代码等。

1.1 计算图级

计算图级包含:节点、节点管理器、参数服务器、消息、服务、主题和消息记录包。

  • 节点(node):主要的计算执行进程,可自行创建节点,加入网络。
  • 节点管理器(master):是节点通信的基础,用于节点的注册、查找。
  • 参数服务器(parameter server):属于节点管理器的一部分,将数据存放在系统关键位置,节点可以获取这些数据来配置、改变自己的状态。
  • 消息(message):具有各种类型,节点间沟通传输的信息数据。
  • 主题(topic):一类消息的集合,节点可以发布、订阅主题。发布者和订阅者之间相互解耦,不知对方的存在。
  • 服务(service):区别于主题,服务用于节点直接向节点交互,获得请求或应答。
  • 消息记录包(bag):保存回放消息数据的文件格式。

  ROS创建一个网络(Computation Network)来进行计算,该网络连接了系统中的所有进程(节点),如下图所示:

1.2 文件系统级

  功能包(package):一种特定结构的文件、文件夹的组合。ROS中各种软件的组织方式,包含节点、配置文件、ROS依赖库、第三方软件及其它任何逻辑构成。

  元功能包(Metapackage):只有一个文件(package.xml)的特殊包,将多个具有某些功能的包组织在一起形成逻辑包。

1.3 社区级

开源社区级,通过独立的网络社区分享软件、知识,包含如下几部分:

  • 发行版:可独立安装、类似于Linux。
  • 软件库:联网的代码存储库,不同机构可以发布。
  • ROS Wiki:论坛,可贡献自己的文件。
  • Bug提交系统
  • 邮件列表:交流软件更新等各种问题。
  • 博客:发布一些定期更新、新闻。
  • ROS问答

ROS初探:(一)ROS架构的更多相关文章

  1. SLAM+语音机器人DIY系列:(二)ROS入门——2.ROS系统整体架构

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...

  2. SLAM+语音机器人DIY系列:(二)ROS入门——1.ROS是什么

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...

  3. 回调函数ros::spin()与ros::spinOnce()

    ros::spin() 这句话的意思是循环且监听反馈函数(callback).循环就是指程序运行到这里,就会一直在这里循环了.监听反馈函数的意思是,如果这个节点有callback函数,那写一句ros: ...

  4. ros::spin() 和 ros::spinOnce() 区别及详解

    版权声明:本文为博主原创文章,转载请标明出处: http://www.cnblogs.com/liu-fa/p/5925381.html 博主提示:本文基于ROS Kinetic Kame,如有更(g ...

  5. (十)创建ROS消息和ROS服务

    ROS总教程(中文版) 110.创建ROS消息和ROS服务

  6. ROS教程4 ROS自定义srv类型及使用

    创建srv文件 在上一节单独为自定义的消息和服务的包 test_msgs 里面 创建 srv文件夹 进入创建 testsrv.srv 文件 ,内容为: (srv文件和msg文件类似,唯一不同的是它包含 ...

  7. ROS教程3 ROS自定义msg类型及使用

    1ROS自定义msg类型及使用 http://blog.csdn.net/u013453604/article/details/72903398 首先创建一个空的package单独存放msg类型(当然 ...

  8. ROS Learning-009 beginner_Tutorials ROS服务 和 ROS参数

    ROS Indigo beginner_Tutorials-08 ROS服务 和 ROS参数 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14 ...

  9. ROS Learning-008 beginner_Tutorials ROS话题

    ROS Indigo beginner_Tutorials-07 ROS话题 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.04.4 LT ...

  10. ROS Learning-012 beginner_Tutorials (编程) 创建自定义的ROS消息和ROS服务

    ROS Indigo beginner_Tutorials-11 创建自定义的ROS消息和ROS服务 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubunt ...

随机推荐

  1. js中this的意义

    随着函数使用场合的不同,this的值会发生变化.但是有一个总的原则,那就是this指的是,调用函数的那个对象.

  2. Ani动态光标格式解析

    数据结构: Ani文件中的数据是按区段存放的,区段数据结构如下: 标识符(4字节ASCII),数据长度(一个DWORD),数据 按照此规则来看Ani文件,文件起始12字节可以理解为标准文件头,除数据长 ...

  3. .net 系列:事件和委托

    在.net 的世界里,离不开委托和事件,其实理解透了后很简单,总结了一下分为5步:   1)定义委托   public delegate void RevicedEventHandler(object ...

  4. Bootstrap-datepicker3官方文档中文翻译---概述(原版翻译 http://bootstrap-datepicker.readthedocs.io/en/latest/index.html)

    bootstrap-datepicker Bootstrap-datepicker 提供了一个拥有Bootstrap样式的弹性Datepicker控件 Requirements/使用要求 Bootst ...

  5. leetcode算法题1: 两个二进制数有多少位不相同?异或、位移、与运算的主场

    /* The Hamming distance between two integers is the number of positions at which the corresponding b ...

  6. Promise原理与实现探究的一种思路

    写在前面 这个文章,展现的是一个实现Promise的思路,以及如何发现和处理问题的情境. 从现有的Promise分析 如果我们想要自己实现一个简单的Promise,那现有规范规定的Promise肯定是 ...

  7. LNMP1.3 一键配置环境,简单方便

    系统需求: CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian Linux系统 需要3GB以上硬盘剩余空间 需要128MB以上内存(如果为128MB的小内存VPS,Xe ...

  8. Android测试:Fundamentals of Testing

    原文地址:https://developer.android.com/training/testing/fundamentals.html 用户在不同的级别上与你的应用产生交互.从按下按钮到将信息下载 ...

  9. Ext表单验证

    //大家在很多的extjs代码中都看到了这两个,他们都起提示作用的Ext.QuickTips.init();//支持tips提示Ext.form.Field.prototype.msgTarget=' ...

  10. 转自知乎-wifi破解

    上点python有意思的代码. 环境准备 python2.7 pywifi模块 字典 清除系统中的任何wifi连接记录 导入模块 这里用的模块就这三个 pywifi的_wifiutil_linux.p ...