构件化机器人系统的服务模型与网络辅助资源利用方法转让专利

申请号 : CN201310210880.0

文献号 : CN103279667B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 钱堃汪欢马旭东房芳王健勇

申请人 : 东南大学

摘要 :

本发明公开了一种构件化机器人系统的服务模型与网络辅助资源利用方法,所述服务模型包括语义和状态信息两层结构,本发明方法包括如下步骤:首先以服务说明文档的形式对服务构件的功能进行描述和存储;其次机器人通过自身的任务需求建模和服务匹配过程发现网络中的可用服务构件;然后机器人根据服务匹配规则,利用服务组合算法得到完成任务所需的服务构件组合;最后针对本地网络资源的服务类型和空间分布已知特性,采用服务拓扑图实现本地同类网络资源的快速切换。本发明实现了机器人根据自身任务需求、自动灵活地选择和调用网络中的各种服务资源,解决了网络资源异构性、动态性等关键问题,最终可实现将积聚于机器人一身的智能分散到网络环境中。

权利要求 :

1.构件化机器人系统的服务模型与网络辅助资源利用方法,其特征在于:所述服务模型即服务构件模型,是结合移动机器人的应用需求对OWL-S进行扩展定义,形成的一套面向移动机器人的环境智能节点服务功能建模规范;所述服务构件模型包括语义层和状态信息层两层结构:所述语义层用以描述抽象服务模型,即从功能的角度语义化定义某个具体服务的分类信息,也描述一类具体服务的某些通用属性,使具体服务的多变性和移动性对用户透明;所述状态信息层用以描述具体服务模型,描述某个具体服务在服务构件内部的运行状态及迁移,包括具体状态取值、状态之间的转移条件,支持移动机器人对服务构件的动态调用;该方法包括如下步骤:(1)采用服务规格说明文档和服务接口说明文档两种形式对服务构件模型的功能和接口进行描述和存储;具体为,将服务构件模型用服务规格说明文档和服务接口说明文档两种文档进行表达;所述服务规格说明文档采用可扩展标记语言XML描述服务的功能信息、规格信息以及用户自定义信息;所述服务接口说明文档主要使用Web Service中间件提供的WSDL语言描述机制来描述使用Web Service开发部署的服务构件的接口信息,所述接口信息包括服务的输入输出消息、服务调用的方法、服务部署的位置和绑定的具体协议;

(2)移动机器人通过自身的任务分解、需求建模和服务匹配过程,发现网络中的可用服务构件模型并对其注册,形成候选服务构件模型列表;具体为,移动机器人采用任务树方式,将复杂任务分解成粒度更细的子任务模型;根据各个子任务模型的需求,移动机器人以广播形式发出服务搜索消息,网络中可用的服务构件模型响应该服务搜索消息,并将服务规格说明文档传输给移动机器人,移动机器人收到服务规格说明文档后对其注册并建立当前可用服务构件模型列表;移动机器人解析各个服务构件模型的服务规格说明文档来明确各个服务构件模型的抽象功能和具体规格,并通过子任务模型和服务构件模型的匹配,完成服务资源的发现和筛选,形成候选服务构件模型列表;

(3)针对松耦合远程网络资源的动态性和未知性,移动机器人采用基于服务组合与选优的策略:根据候选服务构件模型列表和服务组合规则,自动生成服务资源图结构,利用基于广度优先双向搜索的服务组合算法得到完成任务所需的服务构件模型组合,形成一条可实施的计划作为机器人执行计划;

(4)针对紧耦合本地网络资源的服务类型和空间分布已知性,移动机器人采用基于服务拓扑图的服务切换策略:采用服务拓扑图来实现本地同类网络资源的快速切换,提高移动机器人利用网络服务资源的效率。

2.根据权利要求1所述的构件化机器人系统的服务模型与网络辅助资源利用方法,其特征在于:所述步骤(3)具体为,针对松耦合远程网络资源,移动机器人在候选服务构件模型列表中遍历,对满足前向服务组合规则和后向服务组合规则的所有相邻服务构件模型创建有向边连接,生成当前任务相应的完整服务资源图结构;在服务资源图中进一步采用广度优先双向搜索算法进行迷宫求解,生成可达路径最优的一条服务构件模型组合,作为机器人执行计划。

3.根据权利要求1所述的构件化机器人系统的服务模型与网络辅助资源利用方法,其特征在于:所述步骤(4)具体为,针对紧耦合本地网络资源,机器人利用Prolog语言建立服务拓扑图来描述服务资源的相对位置关系,移动机器人通过分析服务拓扑图的组织结构,根据实际服务性能和空间位置推理,实现对本地同类网络资源的动态切换,以提高本地同类服务利用的效率。

说明书 :

构件化机器人系统的服务模型与网络辅助资源利用方法

技术领域

[0001] 本发明涉及一种构件化机器人系统的服务模型与网络辅助资源利用方法,通过对网络中的异构服务资源进行构件化封装,使机器人能够灵活自主地调用各种服务资源并完成复杂的任务;属于机器人与智能环境技术。

背景技术

[0002] 随着机器人技术的迅速发展和应用领域的不断扩大,仅凭机器人自身携带的软硬件设备已经无法满足复杂任务的需求。网络和嵌入式技术的发展,使得越来越多的环境资源设备具有了网络接口。面对多种多样的智能节点,机器人缺乏的不是可利用的资源,而是合理利用辅助资源的方法。
[0003] 近年来,国外一些科研机构开始将目光转向如何利用智能环境中的节点资源来辅助机器人,尤其是日韩两国逐渐形成普适机器人(Ubiquitous Robotics)的研究领域。
[0004] 一类典型系统包括日本东京大学的Sato等人研究的智能房间“Robotic Room”(参见Sato T,Harada T,Mori T.Environment-type robot system"Robotic Room".IEEE/ASME Transactions on Mechatronics,2004,9(3):529-534)、韩国KAIST开发的用于老年人和残疾人肢体辅助应用的Intelligent Sweet Home(参见Do J H,Jang H,Jung S H,et al.Soft remote control system in the intelligent sweet home,2005IEEE/RSJ International Conference on.IEEE,2005:3984-3989)等。在这些实例中机器人往往不具备任何自主决策能力,只是作为一个可移动的执行机构来参与智能环境的任务执行。此类系统仍是以人为中心,而不是从机器人角度考虑如何利用环境资源。
[0005] 而另一类典型系统,例如德国Boltzmannstr大学的智能厨房(参见Beetz M,Stulp F,Radig B,et al.The assistive kitchen-a demonstration scenario for cognitive technical systems.The 17th IEEE International Symposium on.IEEE,2008:1-8.),利用了RFID技术为机器人提供一个知识丰富的智能环境。但是此类智能环境提供给机器人的仅仅是知识信息层面上的辅助,并且是以电子标签的形式,提供辅助的资源本身可以不具备任何智能。
[0006] 总的来说,由于网络辅助资源体现出的一些机器人难以适应的特性,例如多样性、异构性、动态性和未知性;也正由于这些难点,现有系统一般均为定制型系统,不具有通用性,机器人对辅助资源的使用是被动的,缺乏自主性;
[0007] 近两年新出现的一种基于构件的网络机器人系统(参见C.Jang,S.Lee,S.Jung,et al,OPRoS:A New Component-Based Robot Software Platform.ETRI Journal,2010,32(5),648-656.)采用服务构件的形式,将资源辅助功能封装成共享服务,借助智能环境通信网络,基于规范的服务接口和说明,提供开放的服务访问和调用,可以被独立地部署并由机器人任意组合应用。而此类系统尚没有研究讨论机器人如何自主地发现、利用服务资源的机制。因此建立以机器人为中心的环境资源利用机制,是一个急需解决的难题;而合理的服务资源功能模型则是实现机器人自主利用网络资源的重要前提,迄今为止也尚无标准的服务构件功能建模规范。
[0008] 中国发明专利申请03129538.X,《开放式网络机器人通用控制系统》,采用分布式对象和远程接口技术建立了网络机器人通用分布式对象模型,通过服务公布-查找模型实现了机器人和机器人设备间的自发互联和机器人组件的网络即插即用。但是该发明未采用构件技术对设备的功能进行封装,未涉及服务构件的功能建模规范,也未涉及机器人如何从大量候选设备中自动地发现、组合服务资源这一关键问题。

发明内容

[0009] 发明目的:为了克服现有技术中存在的不足,本发明针对新型构件化网络机器人系统,建立一种适于描述异构服务资源功能、具有通用性特点、兼顾定性与定量描述的服务模型,并基于此模型提供一种移动机器人对网络服务资源的发现、匹配和组合的方法,实现机器人灵活自主地利用各种服务资源以完成自身复杂的任务。
[0010] 技术方案:为实现上述目的,本发明采用的技术方案为:
[0011] 构件化机器人系统的服务模型与网络辅助资源利用方法,所述服务模型即服务构件模型,是结合移动机器人的应用需求对OWL-S进行扩展定义,形成的一套面向移动机器人的环境智能节点服务功能建模规范;所述服务构件模型包括语义层和状态信息层两层结构:所述语义层用以描述抽象服务模型,即从功能的角度语义化定义某个具体服务的分类信息,也描述一类具体服务的某些通用属性,使具体服务的多变性和移动性对用户透明;所述状态信息层用以描述具体服务模型,描述某个具体服务在服务构件内部的运行状态及迁移,包括具体状态取值、状态之间的转移条件等,支持移动机器人对服务构件的动态调用。
[0012] 该方法包括如下步骤:
[0013] (1)采用服务规格说明文档和服务接口说明文档两种形式对服务构件模型的功能和接口进行描述和存储;
[0014] (2)移动机器人通过自身的任务分解、需求建模和服务匹配过程,发现网络中的可用服务构件模型并对其注册,形成候选服务构件模型列表;
[0015] (3)针对松耦合远程网络资源的动态性和未知性,移动机器人采用基于服务组合与选优的策略:根据候选服务构件模型列表和服务组合规则,自动生成服务资源图结构,利用基于广度优先双向搜索的服务组合算法得到完成任务所需的服务构件模型组合,形成一条可实施的计划作为机器人执行计划;
[0016] (4)针对紧耦合本地网络资源的服务类型和空间分布已知性,移动机器人采用基于服务拓扑图的服务切换策略:采用服务拓扑图来实现本地同类网络资源的快速切换,提高移动机器人利用网络服务资源的效率。
[0017] 所述步骤(1)具体为,将服务构件模型用服务规格说明文档和服务接口说明文档两种文档进行表达;所述服务规格说明文档采用可扩展标记语言XML描述服务的功能信息、规格信息以及用户自定义信息;所述服务接口说明文档主要使用Web Service中间件提供的WSDL语言描述机制来描述使用Web Service开发部署的服务构件的接口信息,所述接口信息包括服务的输入输出消息、服务调用的方法、服务部署的位置和绑定的具体协议等。
[0018] 所述步骤(2)具体为,移动机器人采用任务树方式,将复杂任务分解成粒度更细的子任务模型;根据各个子任务模型的需求,移动机器人以广播形式发出服务搜索消息,网络中可用的服务构件模型响应该服务搜索消息,并将服务规格说明文档传输给移动机器人,移动机器人收到服务规格说明文档后对其注册并建立当前可用服务构件模型列表;移动机器人解析各个服务构件模型的服务规格说明文档来明确各个服务构件模型的抽象功能和具体规格,并通过子任务模型和服务构件模型的匹配,完成服务资源的发现和筛选,形成候选服务构件模型列表。
[0019] 所述步骤(3)具体为,针对松耦合远程网络资源,移动机器人在候选服务构件模型列表中遍历,对满足前向服务组合规则和后向服务组合规则的所有相邻服务构件模型创建有向边连接,生成当前任务相应的完整服务资源图(SRG)结构;在服务资源图中进一步采用广度优先双向搜索算法进行迷宫求解,生成可达路径最优的一条服务构件模型组合,作为机器人执行计划。
[0020] 所述步骤(4)具体为,针对紧耦合本地网络资源,机器人利用Prolog语言建立服务拓扑图来描述服务资源的相对位置关系,机器人不需要每次执行任务都进行服务的匹配过程,而是通过分析服务拓扑图的组织结构,根据实际服务性能和空间位置推理,实现对本地同类网络资源的动态切换,以提高本地同类服务利用的效率。
[0021] 有益效果:本发明提供的构件化机器人系统的服务模型与网络辅助资源利用方法,是一种针对网络资源的异构、动态、未知特性,采用语义网技术的机器人本体环境智能节点服务功能建模方法,相比传统服务模型的由于建模语法与匹配规则过于严格而导致的误匹配率较高的问题,解决了可靠的服务发现问题;由于网络资源的形式存在差异,针对远程网络资源,本发明提出同时提出的基于广度优先的双向搜索服务组合算法,实现了机器人灵活地选择、组合服务资源,确保生成的机器人执行计划最优;而针对本地资源的紧耦合特性,本发明提出的基于服务拓扑图的本地资源快速切换的策略,避免了机器人每次执行任务时都进行服务匹配的复杂过程,能够提高任务执行的效率;本发明可满足网络机器人系统的广泛需求,使得机器人能够通过自主利用网络服务资源而降低自身携带的传感器、执行器数量和性能,从而降低机器人本体的制造成本、提供机器人自主智能水平,因此具有广阔的应用前景和良好的经济效益。

附图说明

[0022] 图1为智能环境辅助的机器人系统示例;
[0023] 图2为服务构件模型的两层结构示意图;
[0024] 图3为语义化服务模型;
[0025] 图4为服务作用区域模型,其中(a)为RoomSEA,(b)为CircleSEA,(c)为AreaSEA,(d)为服务质量分布;
[0026] 图5为机器人“取杯子”实例的任务树;
[0027] 图6为服务查询请求交互流程,机器人由此获取服务构件的服务说明文档;
[0028] 图7为子任务模型和服务构件模型的匹配,其中(a)为服务提供模型,(b)为RI/RO的任务模型,(c)为服务构件与机器人之间的输入输出关系;
[0029] 图8为服务资源图示例,其中(a)为执行服务组合前的初始状态,(b)为服务组合的过程;
[0030] 图9为服务前向组合与后向组合规则;
[0031] 图10为服务拓扑图实例;
[0032] 图11为全局摄像机定位服务的QoS计算模型。

具体实施方式

[0033] 下面结合附图对本发明作更进一步的说明。
[0034] 构件化机器人系统的服务模型与网络辅助资源利用方法,所述服务模型即服务构件模型,是结合移动机器人的应用需求对OWL-S进行扩展定义,形成的一套面向移动机器人的环境智能节点服务功能建模规范;所述服务构件模型包括语义层和状态信息层两层结构:所述语义层用以描述抽象服务模型,即从功能的角度语义化定义某个具体服务的分类信息,也描述一类具体服务的某些通用属性,使具体服务的多变性和移动性对用户透明;所述状态信息层用以描述具体服务模型,描述某个具体服务在服务构件内部的运行状态及迁移,包括具体状态取值、状态之间的转移条件等,支持移动机器人对服务构件的动态调用。
[0035] 该方法包括如下步骤:
[0036] (1)采用服务规格说明文档和服务接口说明文档两种形式对服务构件模型的功能和接口进行描述和存储;
[0037] (2)移动机器人通过自身的任务分解、需求建模和服务匹配过程,发现网络中的可用服务构件模型并对其注册,形成候选服务构件模型列表;
[0038] (3)针对松耦合远程网络资源的动态性和未知性,移动机器人采用基于服务组合与选优的策略:根据候选服务构件模型列表和服务组合规则,自动生成服务资源图结构,利用基于广度优先双向搜索的服务组合算法得到完成任务所需的服务构件模型组合,形成一条可实施的计划作为机器人执行计划;
[0039] (4)针对紧耦合本地网络资源的服务类型和空间分布已知性,移动机器人采用基于服务拓扑图的服务切换策略:采用服务拓扑图来实现本地同类网络资源的快速切换,提高移动机器人利用网络服务资源的效率。
[0040] 所述步骤(1)具体为,将服务构件模型用服务规格说明文档和服务接口说明文档两种文档进行表达;所述服务规格说明文档采用可扩展标记语言XML描述服务的功能信息、规格信息以及用户自定义信息;所述服务接口说明文档主要使用Web Service中间件提供的WSDL语言描述机制来描述使用Web Service开发部署的服务构件的接口信息,所述接口信息包括服务的输入输出消息、服务调用的方法、服务部署的位置和绑定的具体协议等。
[0041] 所述步骤(2)具体为,移动机器人采用任务树方式,将复杂任务分解成粒度更细的子任务模型;根据各个子任务模型的需求,移动机器人以广播形式发出服务搜索消息,网络中可用的服务构件模型响应该服务搜索消息,并将XML形式的服务规格说明文档传输给移动机器人,移动机器人收到服务规格说明文档后对其注册并建立当前可用服务构件模型列表;移动机器人解析各个服务构件模型的服务规格说明文档来明确各个服务构件模型的抽象功能和具体规格,并通过子任务模型和服务构件模型的匹配,完成服务资源的发现和筛选,形成候选服务构件模型列表。
[0042] 所述步骤(3)具体为,针对松耦合远程网络资源,移动机器人在候选服务构件模型列表中遍历,根据子任务模型的需求,对满足前向服务组合规则和后向服务组合规则的所有相邻服务构件模型创建有向边连接,生成当前任务相应的完整服务资源图(SRG)结构;在服务资源图中进一步采用广度优先双向搜索算法进行迷宫求解,生成满足子任务模型需求、可达路径最优的一条服务构件模型组合,作为机器人执行计划。
[0043] 所述步骤(4)具体为,针对紧耦合本地网络资源,机器人利用Prolog语言建立服务拓扑图来描述服务资源的相对位置关系,机器人不需要每次执行任务都进行服务的匹配过程,而是通过分析服务拓扑图的组织结构,根据实际服务性能和空间位置推理,实现对本地同类网络资源的动态切换,以提高本地同类服务利用的效率。
[0044] 下面结合实例对本发明作出进一步的说明。
[0045] 如图1所示为一种移动机器人-智能环境系统,在此系统中分布着动态感知、数据知识、物理执行、复杂计算四类智能节点,这些网络化服务资源既可能分布于本地智能环境中,也可能存在于远程互联网上,可以为机器人提供各种辅助功能。构件化机器人系统将上述系统中的辅助资源统一封装成可重用的服务构件,屏蔽具体资源硬件形式上的差异,并对各种资源的接口约定和服务功能加以描述,使构件易于被机器人所获知,可以被独立地部署并由机器人任意地组装。本例所述的构件化机器人系统是一种通用型的智能环境辅助系统,它将积聚于机器人一身的智能分散开去,分散到其作业环境中,并利用网络连接起来,相互通信、相互协作,机器人能够自主灵活地利用各种资源,以完成复杂的任务。
[0046] 服务构件模型结合了机器人应用需求对OWL-S进行扩展定义。服务模型是包含语义层与状态信息层的两层服务构件模型,包括抽象服务模型(Abstract Service Model)和具体服务模型(Concrete Service Model),如图2所示。
[0047] 1)抽象服务模型:
[0048] 抽象服务模型从功能的角度,语义化地定义某个具体服务的分类信息,也描述一类具体服务的某些通用属性,并使具体服务的多变性和移动性对用户透明。抽象服务模型包括:①抽象服务编号,抽象服务记为γi,其中i就是抽象服务的编号;②功能描述,包括接口模型描述(WSDL)和服务规格说明文档(XML);③服务属性。
[0049] 服务规格说明文档中采用语义网描述服务模型的本体,是实现服务发现和组合的主要依据。服务模型的本体定义如图3所示,由“OWLSModel”、“SEAModel”、“QoSModel”三部分组成。除了OWL定义的hasSubClass属性用于表达事物间的从属关系外,本例还自定义了一个hasPart属性,如图3中的实线所示。
[0050] OWLSModel主要由Profile、Model、Grounding三部分组成。本规范主要引用了其Profile部分中的服务名称ServiceName、类别ServiceCategory、参数IOPE。
[0051] ·ServiceName(SN):用户可直接按名称精确地搜索服务;
[0052] ·ServiceCategory(SC):用户可以搜索某一类服务。一个服务可以有多个类型约束;
[0053] ·Input/Ouput(IO):IO参数由若干本体概念组成,每个本体概念代表一个参数类型,可以表达为OWL的类,通过对本体概念的某些属性赋值来进一步限定它的类型;
[0054] ·Precondition/Effect(PE):PE参数由若干RDF陈述组成,表达了服务执行导致的状态变化。每个RDF陈述都具备“主谓宾”的形式,其中主语和宾语都可以表达为OWL的类,而谓语则表达为OWL的属性。
[0055] SEAModel即服务作用区域模型(Service Effective Area Model),由于传感器测量范围和精度有限,定义了三种常见的SEA模型,即以房间为单位的区域划分RoomSEA、近似圆形区域的CircleSEA,和用点阵图描述任何不规则形状的AreaSEA,如图4所示。
[0056] QoSModel即服务质量模型,例如感知精度、数据更新时间、移动设备的活动范围、机械臂的抓举重量、服务完成所需时间等。定义两种QoS描述方式:1)PerformIndex:描述服务质量最常用的就是性能指标,它由名称“Name”和数值“Value”组成;2)PerformMap:对于非均匀分布的服务质量,采用如图4所示的服务质量分布图,它是AreaSEA中各点处的采样值集合,需要事先采样测绘。
[0057] 2)具体服务模型:
[0058] 每个服务功能具有一个状态集的描述,包括具体状态取值、状态之间的转移条件等。具体服务模型细化描述服务的这些信息,包括:
[0059] (1)抽象服务编号,以便与抽象服务表述相关联;
[0060] (2)具体服务属性:细化规定了某项抽象服务属性的取值状态;
[0061] (3)服务状态:描述构件当前状态以及状态之间的转移条件,用扩展有限状态机(EFSM)来描述,即三元组 其中:
[0062] x是该服务的ID编号;
[0063] 是一个有限状态集;
[0064] 是关于动作及其代价的有限集合;
[0065] 是受限于转移Px的谓语的状态转移函数,记做:
[0066] (4)代价:EFSM是一个有向图,每个状态是一个节点,两两相邻且满足一定条件的节点之间用有向边相连。对相邻状态节点 如果存在一种行为 而且则此两节点之间存在一条有向边连接。若 为不相邻节点,若存在
一个行为序列 使得状态节点 与 之间存在一条通路相连,则状态 转
移到状态 的代价计算为:
[0067]
[0068] 即表示状态之间转移的代价随路径长度而累加。
[0069] 本案的网络辅助资源利用方法,具体实施步骤如下:
[0070] 1、服务模型的描述和存储:
[0071] 服务接口说明文档主要使用Web Service中间件提供的WSDL语言描述机制来描述。使用Web Service开发部署的服务构件的接口信息,包括:
[0072] ·Types:用于定义服务相关消息中包含的数据类型。
[0073] ·Messages:用于定义服务调用所需要的消息。一个消息由若干部分(part)组成。本例中定义了两条消息,一条是服务调用请求消息,一条是服务调用响应消息。每条消息包含一个part,其中的元素就是在上述中定义的入口和出口参数。
[0074] ·PortTypes:端口类型。这里的“端口”可以理解为服务所支持的操作(Operation)集。一个操作由一组进出的消息(Message)组成。本例中定义的操作Localize有一条进、出消息,分别对应着上面中定义的服务调用请求、响应消息。
[0075] ·Bindings:定义如何格式化消息以采用某种传输层协议传输,又称协议绑定。WSDL支持HTTP、SOAP、MIME等多种传输层协议的绑定。
[0076] ·Services:定义了服务的名称和访问端口,端口中指定了上面中定义的传输层协议绑定,并给出了具体服务的访问地址。
[0077] 这里以全局固定摄像头目标定位服务的WSDL描述文档为例说明服务接口说明文档的描述规范,如下所示:
[0078]
[0079] 服务规格说明文档采用可扩展标记语言XML描述了服务的功能信息、规格信息以及用户自定义信息。以全局固定摄像头目标定位服务为例,其服务规格说明文档表示为如下所示的内容:
[0080] 表1 服务规格说明文档
[0081]
[0082] 2、机器人任务分解、需求建模和服务发现:
[0083] (1)机器人采用任务树方式,将其复杂任务分解成粒度更细的子任务。任务树的根节点和子节点分别表示机器人任务(Task)和或划分成的子任务(SubTask),父节点指向子节点的连线表示“hasSubTask”关系。子任务间保持松耦合关系,仅存在执行流程上的先后顺序。机器人“取杯子”的任务树结构如图5所示。
[0084] (2)根据其各个子任务需求,机器人需要主动向网络中的广播地址发送广播消息进行服务查询。网络中可用的服务将其服务规格说明文档传送给机器人。服务查询请求交互流程如图6所示。发送方(机器人)和接收方(智能节点)约定基于用户数据报(UDP)协议通过端口(Port)2327进行广播消息的发送和接收。机器人收到后对其注册并建立当前可用服务列表。
[0085] (3)机器人首先采用TinyXML完成对各个资源的服务规格说明文档解析,明确其服务的抽象功能和具体规格。然后通过子任务需求模型和服务提供模型的匹配,完成服务资源的发现和筛选,形成候选服务构件列表。候选服务构件的I/O/P/E参数用AI/AO/AP/AE表示,即服务提供模型(Advertisement),如图7(a)所示。机器人的任务需求(Requirement)可以用I/O/P/E参数来描述。根据这些需求的输入输出关系,将需求划分为输入需求RI/RP,和输出需求RO/RE。其中RI/RO的任务模型如图7(b)所示。图7(c)反映了服务构件(服务提供者)与机器人(服务需求者)之间的输入输出关系。
[0086] 通过对需求模型和提供模型参数的匹配,可以找到符合机器人子任务需求的服务。匹配规则如式为:
[0087]
[0088] 其中Same(u,v)关系表示(u,v)两个参数完全相同,具体表现为两者字符串完全相同。
[0089] 3、松耦合远程网络资源的组合与选优:
[0090] 在实际应用中往往很难找到一个服务,使得其服务提供模型参数I/O/P/E直接和子任务的需求模型参数I/O/P/E恰好相匹配。为此本发明提出了一种基于机器人服务资源图(Service Resource Graph,SRG)的服务组合方法。
[0091] 机器人服务资源图如图8所示,描述了子任务需求和服务间的组合关系。机器人服务资源图由有限的顶点V和顶点间的有向边E构成,其中顶点V表示辅助系统提供的服务资源,若两顶点VA,VR间存在有向边E,则表示两个顶点所代表的服务A和服务R之间能够进行组合。
[0092] 机器人子任务需求模型的RI/RP及RO/RE可以看作服务组合的虚拟入/出口节点,记为SRI/RP和SRO/RE,执行服务组合前的初始状态如图8(a)中所示,图中外框表示Requirement,框内的圆点则表示未实现组合的独立服务。按照前向和后向组合规则,可以从虚拟入口SRI/RP和出口SRO/RE出发,沿着前后两个方向构造SRG,实现服务的组合。因此服务组合的过程类似于求解迷宫问题,其本质上是解决给定迷宫起点SRI/RP和终点SRO/RE,以及一组服务A={A1,A2,...,Am},如何根据通过组合规则找到一条或多条路径来连接起点和终点的问题,抽象出的迷宫问题如图8(b)中右下角所示。
[0093] 组合方式依照图9所示的两种规则:
[0094] ◆规则1:前向服务组合(Pre-composition)
[0095] 该组合方式将服务R的输出(RO/RE)和服务A的输入(AI/AP)进行组合,如果服务A能够通过这种方式和服务R进行组合,则称为A为R的前向组合服务,记为:
[0096]
[0097] ◆规则2:后向服务组合(Post-composition)
[0098] 相应的,后向组合方式按相反的方向组合服务R的输入(RI/RP)和服务A的输出(AO/AE),称A为R的后向组合服务,记为:
[0099]
[0100] 根据上述服务组合规则,本发明提出基于广度优先双向搜索(Bidirectional Breadth-First Search,BBFS)算法寻找迷宫问题的解,从而以寻找SRG中连结SRI/RP和SRO/RE的服务序列。
[0101] 服务组合算法首先创建了两个队列:前向搜索队列QFT,后向搜索队列QBT,两个队列开始时均置空。第1步,通过遍历所有服务的输出参数(AO/AE),以寻找和虚拟输出SRO/RE完全一致的服务Si,如果满足这样的匹配条件,则在第2步中将Si添加进后向搜索队列QBT,并建立SRO/RE和Si间的有向边edge(SRO/RE,Si),以初始化后向搜索;同样地,第3步通过对输入参数SRI/RP的匹配,初始化了前向搜索。第4步若QBT和QFT非空队列,则开始进入双向搜索主循环,第5步首先将QBT队首服务l以及QFT的队首服务x出列,第6步进入后向搜索过程,根据后向组合规则,搜索所有能进行后向组合的服务,如果存在这样的服务组合则在第7步将服务k插入后向搜索队列QBT的队尾,并更新SCG的有向边edge(l,k);同样地,第8步针对队首服务x,根据前向组合规则,搜索能够进行前向组合的服务y,并更新前向搜索队列QFT和SCG的有向边,如果此时前向搜索队列QFT和后向搜索队列QBT的队尾服务相同,说明已经满足两个服务搜索方向相遇的条件:
[0102]
[0103] 即两个方向的搜索过程均已经搜索到了同一个服务,因此得出了一条首尾相连的服务链,称为ComposePla n(i)(其中i表示第i种组合的方法),双向搜索主循环终止于所有能够组合的服务已被遍历。
[0104] 4、紧耦合本地网络资源的动态切换:
[0105] 当机器人在某个特定的室内范围环境中作业时,通常会利用某些本地服务资源,例如传感器网络中的分布式节点等。本地网络提供的辅助服务主要呈现出服务类型相同、空间分布已知、服务紧耦合的特点。因此机器人一旦获知此类服务的属性,就无需再次经过复杂的搜索和组合过程,只需要对各个节点快速切换调用即可。本发明提出了一种基于服务拓扑图(Service Topology Graph,STG)的本地服务资源快速切换利用方法。
[0106] STG采用有向图的形式来描述同类服务的相对位置关系,一个多全局摄像机目标定位服务(感知类服务)的STG实例如图10所示。
[0107] STG可以表示为STG={V,T,C,P}的四元组,其中STG中的节点V={V1,V2,...Vm}表示本地环境中的同类服务,C(Vi),i∈1,2...m表示构件提供该服务所消耗的代价,服务代价可以根据具体的服务类型设定不同代价计算公式,例如能耗、通信代价等。任意两个服务Vi,Vj∈V之间如果能够进行切换,则用有向边Tij(Vi→Vj)来表示。有向边终点Vj相对于起点Vi的空间位置记为Pij∈P,P={N,S,E,W,NE,NW,SE,SW}刻画了可切换服务间的相对空间位置关系,如正北,正南,正东,正西,东北,西北,东南,西南等。
[0108] 本发明采用Prolog语言将服务的位置关系固化成已知事实,用规则描述服务之间的可切换关系。机器人需要进行服务切换的情形主要有如下两种:
[0109] ◆服务辅助过程异常终止:由于掉电、运行异常等原因,节点不能再提供原有的服务,需要立刻切换到同类的服务以继续本次的机器人任务执行;
[0110] ◆QoS低于阈值限定:QoS指标描述了服务的质量,包括视觉感知在内的一些节点提供的“空间-质量”分布相关型服务,每一区域的QoS取值由该服务的QoS模型决定,因此当QoS低于某一阈值时,即认为该服务调用结果的可信度指标将下降,因此,如果此时不进行服务切换,则最终结果是机器人离开该服务的SEA区域,导致服务失败。
[0111] 其中,全局视觉传感节点提供的定位服务QoS模型如图11所示。
[0112] 设节点采集到的图像大小为U1*V1,定位服务得到的目标在图像坐标系下的坐标为(U,V),对目标定位服务的QoS定义为:
[0113]
[0114] 其中, 为目标的图像坐标(U,V)与图像中心点坐标(U0,V0)之间的距离。当目标图像坐标恰好位于图像的中心点时,即U=U0,V=V0时,d=
0,QoS=1,此时QoS为最佳。按照以上定义,可将定位服务的QoS按照图11进行划分:以图像中心点坐标(U0,V0)为圆心,以d=0.45V1为半径的一个圆形区域B表示QoS置信范围,圆周上每一点的QoS=0.1,该值即为QoS置信临界值。在B区以外的A区域,QoS均小于0.1,说明在该区域内的服务质量较差。因此,本发明中QoS的置信区间为[0.1,1]。
[0115] 若当前定位服务QoS低于置信阈值,则Prolog会根据当前机器人的运动方向,查询当前是否有可切换的服务,根据可切换服务的QoS值,决定是否进行服务切换。
[0116] 以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。