ROS入门笔记(六):ROS系统架构

摘要:
ROS简介说明(6):ROS系统架构1ROS系统架构1.1文件系统(关键)1.2计算图1.3开源社区1ROS系统体系结构1.1文件系统,关键)文件系统:主要指硬盘中可以看到的ROS目录和文件:1)元功能包:为同一目的组织多个功能包。3) ROSwiki:记录ROS信息文档的主要论坛。5) ROSAnswers:ROS相关问题咨询网站。

ROS入门笔记(六): ROS系统架构

1 ROS系统架构
    1.1 文件系统(重点)
    1.2 计算图
    1.3 开源社区

1 ROS系统架构

ROS入门笔记(六):ROS系统架构第1张

 

1.1 文件系统(重点)

文件系统:主要指在硬盘里能看到的ROS目录和文件:

ROS入门笔记(六):ROS系统架构第2张

 

1)元功能包(Meta Packages):组织多个用于同一目的功能包。
2)元功能包清单(Meta Packages):类似于功能包清单,不同之处在于元功能包清单中可能会包含运行时需要依赖的功能包或者声明一些引用的标签。

3)功能包(Package):功能包是ROS中软件组织的基本形式。一个功能包具有用于创建ROS程序的最小结构和最少内容。它可以包含ROS运行的进程(节点)、配置文件等;

4)功能包清单(Package manifest):记录功能包的基本信息,包含作者信息、许可信息、依赖选项、编译标志等。
5)消息类型(Message):消息是ROS节点之间发布/订阅的通信信息,可以使用ROS系统提供的消息类型,也可以使用.msg文件在功能包的msg文件夹下自定义需要的消息类型。

注:消息类型的说明存储在对应功能包的msg文件夹下。

6)服务类型(Service):服务类型定义了ROS服务器/客户端通信模型下的请求与应答数据类型,可以使用ROS系统提供的服务类型,也可以使用.srv文件在功能包的srv文件夹中进行定义。

注:服务描述说明存储在对应功能包的src文件夹下

7)代码(Code):放置功能包节点源代码的文件夹。

1.2 计算图

计算图是ROS在点对点网络里整合并处理数据的过程。基本计算图概念是 节点, 主机, 参数服务器, 消息, 服务, 话题, 和 数据包,它们通过不同的方式提供数据给图层。

这些概念是在ros_comm库里实现的。

ROS入门笔记(六):ROS系统架构第3张

 

1)节点(Node)—节点是执行任务的进程,也称为软件模块。

注:在ROS中,最小的进程单元就是节点( node)。一个软件包里可以有多个可执行文件, 可执行文件在运行之后就成了一个进程(process), 这个进程在ROS中就叫做节点 。

2)节点管理器(ROS Master)—管理者角色,统筹管理节点,保证节点的正常运行。

注:当ROS程序启动时, 第一步首先启动master, 由节点管理器处理依次启动node 。

作用:

通过RPC提供登记列表及对其他计算图表的查找功能,帮助节点间互相查找,建立连接,进行点对点的通信

控制中心,提供参数服务器,管理全局参数

3)参数服务器(Parameter Server)—参数服务器是节点存储参数的地方、 用于配置参数, 全局共享参数。 参
数服务器使用互联网传输, 在节点管理器中运行, 实现整个通信过程。 参数服务器维护着一个数据字典, 字典里存储着各种参数和配置。

4)消息(Message)—消息在ROS中,是一种数据类型,节点之间通过消息来互相通信。消息类型有ROS标准类型和基于标准消息开发的自定义类型两种。

6)主题(Topic)—异步通信机制,传输消息(Message)

主题:指节点发布的消息的去处。节点可以发布消息到话题,也可以订阅话题以接收消息。当一个节点发送数据时,我们就说该节点正在向主题发布消息。节点可以通过订阅某个主题,接受来自其他节点的消息。

发布/订阅:多对多的传输方式

ROS入门笔记(六):ROS系统架构第4张

 

6)服务(Service)—同步通信机制,传输请求/应答数据,基于C/S模型

当你需要直接与节点通信并获得应答时,将无法通过主题实现,从而需要服务。此外,服务必须有唯一的名称。当一个节点提供某个服务时,所有的节点都可以通过使用ROS客户端编写的代码与它通信。

ROS入门笔记(六):ROS系统架构第5张

 

请求/应答:一对多的传输模式

7)消息记录包(bag)—是一种用于保存和回放ROS消息数据的文件格式。消息记录包是一种用于存储数据的重要机制,它可以帮助记录一些难以收集的传感器数据,然后通过反复回放数据进行算法的性能开发和测试。ROS创建的消息记录包文件以*.bag为扩展名,通过播放、停止、后退操作该文件,可以像实时会话一样在ROS中再现情景,便于算法的反复调试。

1.3 开源社区

ROS开源社区的概念主要是ROS资源,其能够通过独立的网络社区分享软件和知识。

ROS入门笔记(六):ROS系统架构第6张

 

1)发行版(Distribution):ROS发行版包括一系列带有版本号、可以直接安装的功能包。
2)软件源(Repository):ROS依赖于共享网络上的开源代码,不同的组织机构可以开发或者共享自己的机器人软件。
3)ROS wiki:记录ROS信息文档的主要论坛。
4)邮件列表(Mailing list):交流ROS更新的主要渠道,同时也可以交流ROS开发的各种疑问。
5)ROS Answers:咨询ROS相关问题的网站。
6)博客(Blog):发布ROS社区中的新闻、图片、视频(http://www.ros.org/news)

免责声明:文章转载自《ROS入门笔记(六):ROS系统架构》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇1.AngularJS初探OpenCV学习笔记(30)KAZE 算法原理与源码分析(四)KAZE特征的性能分析与比较下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

在ros中集成Fast-rtps库并运行hello world 程序

1.介绍 ROS:自行百度 Fast-RTPS:是eProsima公司对RTPS标准的一个实现,也就是函数库。RTPS是DDS标准中的一个子集。RTPS:Real Time Publish Subscribe,是DDS标准中的通讯协议部分。其实ROS 2用到的DDS就是这个部分,所以Fast RTPS足够支持ROS 2的需求。简单来说Fast RTPS就是...

ROS知识(5)----消息与服务的示例

ROS中已经定义了较多的标准类型的消息,你可以用在这些标准类型的消息上再自定义自己的消息类型。这个在复杂数据传输很有用,例如节点和服务器进行交互时,就可能用到传输多个参数到服务器,并返回相应的结果。为了保证例子的完整,将详述每一步。 基本思路和创建talker和listener的例子类似,步骤如下: 建立工作空间workspace(类似于vs下的解决方案,...

ROS惯导数据发布(Python)

一、背景   基本配置:ubuntu 16.04,ROS Kinetic   惯导型号:维特智能 WT61C(六轴惯导)   维特智能官方提供的参考程序是通过手动比较各个字节来确定数据包/数据帧的,个人认为比较繁琐,因此采用Python的re(正则表达式)和struct(字节处理)模块简化其数据匹配和提取,并实现惯导数据在ROS中的发布。 二、程序   惯...

ROS在Ubuntu下的安装

本文参考为ROS的官方教程http://wiki.ros.org/hydro/Installation/Ubuntu ROS是一款机器人操作系统,截止到目前(2013年11月),最新的版本号为hydro。据官方网站的消息,下一次更新将在2014年的4月份左右。 下面,就来说一下如何在Ubuntu下安装ROS,我的笔记本操作系统为Ubuntu 12.04 L...

MikroTik RouterOS安装方法收集(转)

注意:ROS无法使用U盘安装,如果要使用ISO文件进行安装就必须使用光驱以及刻录成光盘,并且只能使用IDE的光驱。 一、首先了解常见的ROS硬件架构: X86架构(也是最常用的) mipsbe(欧米tik、部分RB系列、SXT、Groove等) mipsle(RBC系列、RB100、RB500系列等) pocketPC(PPC、RB1000就是这个架构的...

ROS中msg和srv文件的区别

1、msg和srv究竟有什么区别?? msg只是单向的发送和接受。 srv包含两个部分:请求和响应。 2、msg和srv简介 msg:msg文件是描述ROS消息字段的简单文本文件。它们用于为不同语言(c++或者python等)的消息生成源代码。 srv:srv文件用来描述服务。它由两部分组成:请求(request)和响应(response)。 msg文...