ROS总体框架
1.总体结构。主要分为三个级别:计算图级、文件系统级、社区级。
2.计算图级。计算图是ROS处理数据的一种点对点的网络形式。主要包括几个重要概念:节点(node)、消息(message)、主题(topic)、服务(service)。
(1)节点。节点就是一些直行运算任务的进程。ROS利用规模可增长的方式是代码模块化:一个系统就是典型的由很多节点组成的。
(2)消息。节点之间是通过传送消息进行通讯的。每一个消息都是一个严格的数据结构。
(3)主题。消息以一种发布/订阅的方式传递。一个节点可以在一个给定的主题中发布消息。一个节点针对某个主题关注与订阅特定类型的数据。可能同时有多个节点发布或者订阅同一个主题的消息。
(4)服务。消息以一种发布/订阅的方式传递。一个节点可以在一个给定的主题中发布消息。一个节点针对某个主题关注与订阅特定类型的数据。可能同时有多个节点发布或者订阅同一个主题的消息。
ROS Master 通过RPC(Remote Procedure Call Protocol,远程过程调用)提供了登记列表和对其他计算图表的查找。没有控制器,节点将无法找到其他节点,交换消息或调用服务。
比如控制节点订阅和发布消息的模型如下:
3.文件系统级
ROS文件系统级指的是在硬盘上面查看的ROS源代码的组织形式。
ROS中有无数的节点、消息、服务、工具和库文件,需要有效的结构去管理这些代码。在ROS的文件系统级,有以下几个重要概念:包(package)、堆(stack)。
(1)包。ROS的软件以包的方式组织起来。包包含节点、ROS依赖库、数据套、配置文件、第三方软件、或者任何其他逻辑构成。
(2)堆。堆是包的集合,它提供一个完整的功能,像“navigation stack”。Stack与版本号关联,同时也是如何发行ROS软件方式的关键。ROS是一种分布式处理框架。这使可执行文件能被单独设计,并且在运行时松散耦合。这些过程可以封装到包(Packages)和堆(Stacks)中,以便于共享和分发。
4.设区级
ROS的社区级概念是ROS网络上进行代码发布的一种表现形式。结构如下图所示:
学习来自: