根据ROS系统代码的维护者和分布俩标识,主要有两大部分:核心部分,也是主要部分,一般称为main。主要由Willow Garage公司和一些开发者来设计提供与维护。他们提供一些分布式计算的基本工具,以及整个ROS系统核心部分的程序编写;全球范围的代码,被称为universe,由不同国家的ROS社区组织开发和维护。
ROS从设计视角上有三级概念:文件系统级、计算图级、社区级。除此之外,ROS也有两种类型的命名:功能包源名称和计算图源名称。
ROS从架构视角上可以分为操作系统层、中间件层和应用层三个层级。ROS的系统架构如下图所示。
下面先从设计视角上展开叙述ROS系统架构。
ROS文件系统级
文件系统级:指可以在硬盘上查看的ROS源代码,包括以下几种
- 功能包(Package)。功能包是ROS中组织软件的主要形式,一个功能包可能包含ROS运行过程(如节点),一个ROS依赖库、数据集、配置文件或者组织在一起的任何其他文件。(带有manifest.xml)
- 功能包清单(Manifest)。提供关于功能包的元数据,包括它的许可信息和依赖信息,指定的编程语言信息(如编辑标记)。最重要的功能是定义功能包之间的依赖关系。功能包清单是一个manifests.xml文件,通过这个文件实现对功能包的管理。