在机器人操作系统中使用传输服务质量的方法与流程

文档序号:12278197阅读:363来源:国知局

本发明涉及机器人,具体地,涉及在机器人操作系统中使用传输服务质量的方法。



背景技术:

随着科技发展,机器人已经走进了我们生活,它既可以接受人类指挥,又可以运行预先编排的程序,协助或取代人力工作。随着机器人的功能层次化要求的加深,计算平台的扩展,使用的硬件日益复杂,为机器人编写软件这一工作也变得越来越复杂繁重。为了简化编程工作,许多机器人软件开发平台应运而生。按照“平台化”的思想,在机器人领域引入操作系统软件的概念,促进了机器人硬件的标准化和软件的模块化,成为推动机器人技术和产业高速发展的催化剂,是机器人软件技术的未来主流的演化方向。

机器人软件平台的初期研究主要集中于中间件和软件框架等层面,典型项目包括Player、OpenRTM、OROCOS、ROS等。其中当前最为活跃的是机器人操作系统ROS(Robot Operating System)项目。ROS运行于Ubuntu等本地操作系统之上,由通信基础设施、机器人相关的软件包、开发和运行工具集等组成,能够为机器人应用开发提供驱动程序、硬件抽象、资源管理、通信管理、实用工具等类似操作系统的功能。ROS可看成使用ROS特定消息连接的多个软件节点组成的系统。目前,ROS包含了2000多个针对不同机器人平台的常用软件节点包,已经应用于上百种地面、空中、水面和水下无人系统,成为机器人应用软件平台的事实标准。

ROS软件框架及其功节点能模块目前运行在多节点异构计算机上,如机器人的传感器节点、计算单元节点和执行器节点上。ROS的本质是一种分布式处理框架,其既支持面向服务的同步远程过程调用通信,也支持面向数据的异步数据流通信,这使执行节点能被单独设计,并且在运行时松散耦合,形成完整的机器人控制软件系统。

但ROS的分布式通讯框架不注重传输的实时性、可靠性等,不能根据数据流类型来进行实时性和可靠性的折中选择,以支持不同速率、不同服务质量的通信。机器人系统节点间通讯需要满足实时性要求,很多处理和交互必须在一定时限内完成,有相对严格的时间要求,否则在真实环境中运行的机器人会有灾难性的后果。在保证信息实时传输的条件下,还需要保证信息传输的正确性和可靠性。另外需要机制能够描述分布系统中的计算资源和网络资源,动态的控制资源的分配和使用,以保证完整系统的实时性。节点也可以在运行时加入(如新增传感器)或退出(如能量耗尽或损坏),通讯需要能够自适应系统的动态性。而目前已有的ROS通讯框架仅基于节点间的TCP传输,不能满足机器人系统的实时性、可靠性、动态性的需求。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种在机器人操作系统中使用传输服务质量的方法。

根据本发明提供的一种在机器人操作系统中使用传输服务质量的方法,包括:

步骤1:节点注册:

将分布式通讯框架中的每个通讯组件定义为一个节点,节点通过机器人操作系统ROS的节点管理功能与ROS主节点进行通信,动态的在分布式计算网络内进行注册、注销操作,并接收ROS主节点的启动通知和关闭通知;

步骤2:生成节点连接拓扑关系:

当一个新的节点加入分布式计算网络时,通过基于XMLRPC通信协议与ROS主节点通信,获得分布式计算网络已有节点的信息,以与已有节点间不通过ROS主节点直接进行通信;

步骤3:生成发送的数据包:

分布式通讯框架在进行消息发布订阅时,节点使用自定义的数据类型进行数据的传递;

步骤4:通讯能力协商:

节点发起使用消息的数据传输时,先进行通讯能力的协商;

步骤5:配置QoS策略:

通过配置服务质量QoS描述底层的通讯机制,包括带宽限制、可靠性、等待时间、资源限制。

优选地,在所述步骤2中,分布式计算网络中的节点通过动态加入注册,实时改变拓扑结构,生成连接拓扑关系。

优选地,在所述步骤3中,基于ROS原生的接口定义语言编译生成数据包管理模块,以提供对用户自定义数据包的序列化、反序列化、匹配、转换、校验功能。

优选地,在所述步骤4中,当节点仅支持TCP传输时使用ROS的通讯传输方式;当节点的传输层具有支持服务质量的传输机制时,节点加入到支持服务质量的DDS节点集群中,使用ROS生成的节点间拓扑结构和消息数据类型,在传输层生成主题,注册消息数据类型,设置基于需求的传输服务质量属性。

优选地,订阅者请求最低需求的QoS策略;若发布者向可能的订阅者提供的QoS策略与所述。最低需求的QoS策略之间能够匹配,则订阅者与发布者形成了关联,从而建立连接,否则提示异常;

发布者和订阅者根据双方的需要来动态的改变QoS策略,以实现不同速率的数据传输来满足实时性或可靠性的需求;

QoS策略包括多种策略形式关联描述服务行为;用QoS控制服务行为,将资源的可用情况、提供方对资源的占有程度及请求方对资源的期待程度分别标准化;

QoS策略包括:

-可靠性:确保所有的数据都按照顺序被接收到;

-截止时间:发布者保证在每个周期的截止时间内发送数据,接收者表明在每个周期的截止时间内接收数据;

-历史记录:用来设定如何使用发送和接收队列的策略:(a)保持全部,在可用资源的限制内,在缓冲区队列中保持所有的数据;(b)保持最后N个数据,缓冲区队列将最后N个数据保持,其余丢弃;N为正整数;

-存在性:用来描述发送者在约定周期内发送数据包或存在性心跳包的约束策略;

-基于时间的过滤:接收者设定期望得到新的数据的最小时间间隔,中间件框架在满足最小时间间隔条件时,传送最小量的数据。

优选地,还包括:

步骤6:进行QoS匹配和数据传输:

根据QoS的配置,传输层进行消息的数据发布接收和服务质量的匹配,包括比较并设置QoS、预分配资源、根据订阅资源生成消息、通知监听接口;根据QoS要求,在规定的时间发送数据。

优选地,在所述步骤6中,进行通信的过程步骤如下:

传输层根据数据类型定义主题和设置QoS;订阅者从传输层查找主题,传输层返回要查找的主题;订阅者订阅主题,传输层比较主题和订阅者设定的QoS,检查是否满足订阅者需求,如满足则保存一个新的订阅信息并返回成功,否则拒绝订阅;发布者设置QoS并发布最新的数据;传输层接收到数据,比较QoS,将数据传递给订阅者。

与现有技术相比,本发明具有如下的有益效果:

1、为满足ROS分布式通讯框架中需要具有实时性、可靠性等传输服务质量机制的需求,本发明在通讯框架中加入了保障服务质量的传输层机制。参考OMG数据订阅分发技术(DDS)标准,定义了多种服务质量(QoS)策略,节点利用这些策略,指明描述了它们对于传输服务品质QoS的要求。数据发布者和订阅者可根据双方的需要来动态的改变QoS策略,以实现不同的数据传输方式来满足实时性或可靠性的需求。

2、机器人分布式系统可以由具有不同通讯能力的任意节点组成,通过一种通讯能力发现和协商机制,当机器人节点仅支持TCP传输时可使用ROS原本的通讯方式,当机器人节点支持服务质量的传输机制时,即可根据需要在传输时增加实时性、可靠性等服务质量保障。

3、本发明的方法兼容当前的ROS节点上的软件应用模块,已有的软件应用模块可不加修改的在通讯框架之上运行。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明提供的在机器人操作系统中使用传输服务质量的方法的步骤流程图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

本发明继承ROS分布式通信框架的数据发布/订阅模式,在ROS通讯框架的下层加入了符合数据订阅分发技术(DDS)标准的传输层。一方面使用ROS通讯框架完成节点的注册、节点间拓扑结构的生成和传输数据的序列化工作,这样已有的软件应用模块可不加修改的运行。另一方面,在进行数据传输时,进行传输能力的协商,对具有DDS传输能力的节点,使用服务质量(QoS)控制服务行为,满足通讯的实时性,可靠性和灵活性。

本方法包括如下步骤,方法步骤的流程见示意图1:

步骤1:节点注册:

使用机器人分布式通讯框架的每个组件程序称之为一个节点,节点通过ROS的节点管理功能与ROS的主节点进行通信,动态的在计算网络内进行注册、注销等操作,并接收到主节点的启动和关闭通知等信息。

步骤2:生成节点连接拓扑关系:

当一个新的节点加入分布式计算网络时,首先通过基于XMLRPC的通信协议与ROS的主节点通信,获得相关节点的信息,之后节点间直接进行通信。分布式系统的中的节点通过动态加入注册,实时改变拓扑结构,生成连接拓扑关系。

步骤3:生成发送的数据包:

分布式通讯框架在进行消息发布订阅时,节点使用自定义的数据类型进行数据的传递。基于ROS原生的接口定义语言编译生成的数据包管理模块提供对用户自定义数据包的序列化、反序列化、匹配、转换、校验等功能,防止因用户数据类型不匹配造成通信错误的情况。

步骤4:通讯能力协商:

节点发起使用消息的数据传输时,先进行通讯能力的协商。当节点仅支持TCP传输时可使用ROS原本的通讯传输方式。而当节点的传输层具有支持服务质量的传输机制时,节点加入到支持服务质量的DDS节点集群中,使用原生ROS生成的节点间拓扑结构和消息数据类型,在传输层生成主题,注册消息数据类型、设置基于需求的传输服务质量属性。

步骤5:配置QoS策略:

服务质量QoS描述了底层的通讯机制,包括带宽限制、可靠性、等待时间、资源限制等。参考OMG数据订阅分发技术标准,定义了多种QoS策略,节点利用这些策略,指明描述了它们对于传输服务品质QoS的要求。订阅者请求一套最低需求的策略。发布者向可能的订阅者提供一套QoS策略。如果之间能够匹配,就形成了关联,从而建立连接,否则提示异常。发布者和订阅者可根据双方的需要来动态的改变QoS策略,以实现不同速率的数据传输来满足实时性或可靠性的需求。

服务质量QoS参数描述了使用者对资源的需求情况及其资源的可用情况。QoS包括多种策略形式关联描述服务的行为。用QoS控制服务行为,将资源的可用情况、提供方对资源的占有程度及请求方对资源的期待程度分别标准化。基本的QoS策略包括:(1)可靠性:确保所有的数据都按照顺序被接收到,同时可以配置可靠性强度,高效模式下不一定保证所有数据都被接收到,但是确保收到的数据的顺序正确;(2)截止时间:发布者保证在每个周期的截止时间内发送数据,接收者表明在每个周期的截止时间内接收数据;(3)历史记录:用来设定如何使用发送和接收队列的策略:(a)保持全部,在可用资源的限制内,在缓冲区队列中保持所有的数据;(b)保持最后N个数据,缓冲区队列将最后N个数据保持,其余丢弃;(4)存在性:用来描述发送者在约定周期内发送数据包或存在性心跳包的约束策略;(5)基于时间的过滤:接受者设定期望得到新的数据的最小时间间隔,中间件框架在满足其条件时,传送最小量的数据。

步骤6:进行QoS匹配和数据传输:

根据QoS的配置,传输层进行一系列的动作进行消息的数据发布接受和服务质量的匹配,包括比较并设置QoS、预分配资源、根据订阅资源生成消息、通知监听接口等,此外还要根据QoS要求,在规定的时间发送数据。进行通信的过程步骤如下:传输层根据数据类型定义主题和设置QoS;订阅者从传输层查找主题,传输层返回要查找的主题;订阅者订阅主题,传输层比较主题和订阅者设定的QoS,检查是否满足订阅者需求,如满足则保存一个新的订阅信息并返回成功,否则拒绝订阅;发布者设置QoS并发布最新的数据;传输层接收到数据,比较QoS,将数据传递给订阅者。

本发明的优点为:

1)性能提升:本发明提出的方法在继承ROS通讯框架数据发布订阅模式的基础上,基于DDS中间件标准做出实时性、可靠性的扩展,使用服务质量(QoS)控制服务行为,满足了机器人节点间通讯的实时性、可靠性和灵活性的需求。

2)扩展性好:本发明提供了一种通讯能力发现和协商机制,当机器人节点仅支持TCP传输时可使用ROS原本的通讯方式,当机器人节点支持DDS中间件时,即可根据需要在传输时增加实时性、可靠性等保障。

3)通用性好:本发明的方法兼容当前的ROS节点上的软件应用模块,已有的软件应用模块可不加修改的在通讯框架之上运行。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1