ROS 架构 |
您所在的位置:网站首页 › linux系统基于什么架构 › ROS 架构 |
文章目录
ROS 的架构计算图文件系统开源社区
ROS 的架构
软件层次架构 从软件实现的角度,ROS 的架构可以分为三个层次:OS层,中间层,应用层; 系统层次架构 从系统实现的角度,ROS 可以划分为:计算图、文件系统、开源社区三个视角;如下图所示: 从计算图的结构来看,ROS 系统软件的功能模块是以节点(节点即为进程)为单位独立运行的,节点以拓扑的方式互联,构成了一个系统网络,即为系统的计算图。如下图所示: 端点表示各个节点,端点之间的边表示节点之间的通信方式。 在计算图中,有几个重要的概念要着重说明:消息、话题、服务、节点管理器; 消息(Message) 消息,又称之为 话题消息,它是话题通信发送的信息。每一种消息都是一种严格的数据结构。消息类型支持标准的数据类型(整型,浮点型,布尔型等),也支持嵌套结构和数组,还可以进行自定义; 话题(Topic) 话题 是 ROS 系统中最核心的通信方式,它基于发布/订阅(Publish/Subsribe)的方式传递。一个节点可以针对一个话题(Topic)发布消息(这个节点的角色为发布者/Talker),一个节点可以订阅这个消息(这个节点称为订阅者/Listener);话题(Topic)通信具有如下特点: 发布者和订阅者并不知道彼此的存在;一个话题(Topic)可以有多个发布者,也可以有多个订阅者;发布者向话题(Topic)发布消息,订阅者从话题(Topic)接收消息,消息的流向是单方向的;服务(Service) 服务(Service)是ROS中另外一个重要的通信方式,它基于 C/S 模型实现。一个节点成为服务端(Server),一个节点成为客户端(Client);客户端发送请求,服务端回应请求;这种通信方式具有以下特点: 服务端和客户端必须知道彼此的存在;客户端发送请求,服务端回应请求,信息流向是双向的;数据类型包含两部分:请求数据类型、应答数据类型;Master(节点管理器) ROS Master,ROS系统的管理者,也称为节点管理器(因为ROS的应用程序可以认为由节点的拓扑结构组成),其主要作用是管理整个ROS系统的正常运行;具体主要表现在: 登记和管理节点信息、话题信息,帮助节点之间相互查找和建立连接;管理全局共享参数,为共享参数通信提供帮助; 文件系统按照工程文件的组织结构,ROS 功能包的文件系统组织结构如下: 首先来说明功能包中各个部分的内容: 功能包(Package):功能包是ROS软件中的基本单元,包含ROS节点、库、配置文件等; 功能包清单(Package Manifest):每一个功能包都包含一个名为 package.xml 的功能包清单,用于记录功能包的基本信息,包含作者信息、许可信息、依赖选项、编译标志等;如下图所示:元功能包 元功能包是一种特殊的功能包,只包含一个 package.xml 元功能包清单文件。它的主要作用就是将多个功能包整合成一个逻辑上独立的功能包,类似于功能包集合的概念; 元功能包清单 package.xml 文件与功能包清单 package.xml 文件类型,但是需要包含一个引用标签如下: 元功能包清单也不需要 标签声明编译过程依赖的其他功能包,只需要使用 标签声明功能包运行时依赖的其他功能包。 导航功能包的元功能包清单如下: $ roscd navigation $ gedit package.xmlROS 开源社区中资料非常丰富,主要有以下几种: 提供ROS的发行版(Distrubutiom)提供软件源(Repository):不同的组织机构可以开发或者共享自己的机器人软件;ROS Wiki:记录 ROS 信息文档的主要论坛,所有人都可以注册、登陆,并上传自己开发的文档;邮件列表(Mailing List):交流 ROS 更新的主要渠道;ROS Answers:咨询ROS相关问题的主要网站;博客:发布ROS 社区中新闻、图片,视频(http://www.ros.org/news)功能包、元功能包、软件仓库、ROS 社区的主要关系 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |