ROS系统框架

ROS 是 Robot Operating System 的缩写,即 机器人操作系统。 

ROS实际上是一个面向机器人硬件场景的系统框架,可运行在Linux内核以及其他兼容POSIX接口的操作系统内核之上。   

作为一个操作系统的系统框架,ROS提供了一系列面向机器人场景应用的系统级服务,抽象了底层复杂的异构硬件资源,还提供了应用之间交互以及应用与服务之间交互的IPC机制

层次架构图如图:
 

ROS  可以分为 基础设施层通信层应用层

基础设施层 包括ROS中的Python、C++等运行环境、 ROS文件系统 与 ROS包管理机制等。

在基础设施层 之上运行了ROS的通信层,提供基础的ROS IPC 机制以及ROS数据分发服务(Data Distribution Service, DDS)等。

ROS 应用层是基于一个个节点所构成的计算图,这些节点可以使用ROS的通信层直接进行相互调用,或者通过对一些 话题(topic)  发布消息 或者 订阅消息 以进行间接通信。

ROS节点与计算图

ROS采用计算 图的形式 来组织各种服务。 每个服务构成一个节点,每个节点执行一个具体的计算处理(包括机器人中所需的感知、融合、规划与控制等)。

运行在ROS上的应用可以被表示成一个“图” 的关系结构,不同的节点表示不同的应用(它们既可以是信息接收者,也可以是信息发布者)。 ROS上常见的应用包括:接收、发布、处理来自传感器(sensor)的数据, 以及对处理过程进行控制的节点与计划节点等。

与微内核设计的思想类似,ROS同样将其系统框架分解为多个服务,不同的服务之间通过ROS提供的IPC进行通信。 这种 解耦式的架构 使得ROS易于部署,甚至可以部署在一个分布式系统上。

服务与动作

ROS每个组件的设计是 服务为中心 的: 一个服务接收一个请求,执行该请求,然后回复。  一个节点 可以向另一个提供服务的节点发送请求,然后等待一个结果。 服务的模型是一次性的同步通信,即当服务的请求和回复完成后,连接会被断开; 进行下一次交互必须再次建立连接。   一个节点还可以提供 动作(Action)。  动作和服务类似,主要的区别在于动作的假设是服务端处理请求的时间会很长,并且可能需要在处理的过程中就获取一些中途的返回值。 在实际的使用中,一般通过动作来让机器人执行相对复杂的任务。

话题

话题 的 方式是ROS中比较新的处理方式,是一类  单向的异步通信机制。 话题机制将通信的双方称为 发布者(publisher) 和 订阅者(subscriber)。 发布者节点首先需要向主节点(一个特殊的全局节点)注册一个话题, 之后该发布者会以消息的形式发布关于该话题的新内容。  在话题模式下,发布者和订阅者是多对多的关系,即单个节点可以成为多个话题的发布者,也可以成为多个话题的订阅者。

数据分发服务

ROS2.0引入了 数据分发服务(Data Distribution Service, DDS) 以支持实时性。  从架构的角度, DDS可以被看作一个系统中间件,处于ROS应用层和ROS基础设施层之间。  DDS提供了上面介绍的ROS基本通信接口和语义, 如话题方式的发布者和订阅者模型或服务类型的IPC等。   之所以将DDS分离出来,是为了对性能有重要影响的通信进行加速。 不同的硬件厂商可以针对自己的机器人环境实现DDS的中间件,只要最终这些DDS的实现能够满足对应的协议接口即可。这些DDS的实现是针对特定硬件进行的,因此可以进行针对性的优化。 

DDS内部可以利用共享内存的方式来传递本地数据。 在ROS2.0中, ROS会将数据交接给DDS层。 在DDS层,具体的DDS实现可以使用一些如共享内存的方式,在建立了连接的不同节点之间共享数据。 在传输后,可以直接将序列化后的数据放在共享区域中,这样可以极大地提升传输性能。

计算图架构与 ROS IPC

ROS系统框架的设计将计算任务组件化与服务化,形成独立的ROS节点; 各个节点通过ROS IPC(如话题、 服务、 动作等方式 )进行通信。  DDS的引入能够在支持多种通信方式的情况下,尽可能地优化底层通信性能。

ROS的官方文档地址:  ROS 2 Documentation — ROS 2 Documentation: Kilted documentation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值