一、总体结构

ROS的系统主要被分成了三部分:

  • 文件系统级(Filesystem)
  • 计算图级(Computation Graph)
  • 开源社区级(Community)

文件系统级:程序是如何组织和构建的,需要的核心文件
计算图级:描述程序是如何运行的,进程和系统之间如何通讯
开源社区级:程序的分布式管理方式,开发人员之间如何共享知识、算法和代码。

二、文件系统级

ROS系统的不同组件被放在不同的功能文件夹下。这些文件夹根据功能的不同来对文件进行组织:

这里写图片描述

功能包集(Stack):
是包的集合,将一些具有某种功能的包集合在一起。

功能包(Package):
ROS中的基本单元,用于创建ROS程序。包含节点、ROS依赖库、数据套、配置文件、第三方软件、或者任何其他逻辑构成。包的目标是提供一种易于使用的结构以便于软件的重复使用。总得来说,ROS的包短小精干。

功能包中一般包括:

  • 功能包清单
  • 消息(msg)
  • 服务(srv)
  • 描述文件
  • bring_up文件
  • URDF文件
  • 驱动文件
  • gazebo文件
    ……

三、计算图级

计算图是ROS处理数据的一种点对点的网络形式。ROS运行时会创建一个网络,就像工业总线一样,每一个节点都可以通过网络发布消息,也可以接受其他节点发布的消息。

主要包括节点(node)、消息(message)、主题(topic)、服务(service)等,还包括节点管理器(Master)、参数服务器(Parameter Server)、消息记录包(Bag)等。

节点
节点就是一些直接运算任务的进程。一般是一些cpp文件。

消息
节点之间是通过传送消息进行通讯的。

主题
相当于消息传递的总线。多对多的模式。

服务
节点之间直接一对一的通讯。

四、社区级

ROS的社区级概念是ROS网络上进行代码发布的一种表现形式。主要是用来分享软件和知识。

参考文献:

(1)、刘平杰等,ROS机器人程序设计,机械工业出版社,2019.09
(2)、http://wiki.ros.org/

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐