开放式机器人智体

时间:2022-07-23 04:25:55

开放式机器人智体

摘要:针对机器人功能的更新、修改、升级、维护等工作,普遍只能采用离线、静态方式进行的问题,将“软件人”引入机器人平台中,搭建了以宿主“软件人”为管理中心的机器人系统架构,并重点对宿主“软件人”进行了研究。首先,构造了宿主“软件人”的体系结构;然后,提出了宿主“软件人”知识行为一体化描述模型,并对其知识模型进行了基于数据结构的构造和实现,对其主要服务类行为给出了相应的设计规范及算法的参考实现;最后,句子不通顺,前面说平台,后面是系统,将平台和系统合一吗请核实描述,此句中的机器人平台改为机器人系统。将引入宿主“软件人”的机器人系统与网络平台中的“软件人”系统进行合一,经测试,机器人功能的在线、动态更替取得成功,什么意义,且此句过于抒情,摘要应简洁明了将”引入宿主‘软件人’的意义得以实现“这句去掉。同时也验证了对宿主“软件人”设计、实现方法的正确性和可行性。

关键词:机器人;宿主“软件人”; 知行模型;“软件人”系统;合一系统

中图分类号: TP181 文献标志码:A

英文摘要

Abstract:To solve the problems of updating, modifying, upgrading and maintaining the function of robot by offline and static method, SoftMan was introduced for robot platform, and the architecture of robot system, whose managing center is host SoftMan, was built. The host SoftMan was mainly researched. Firstly, the architecture of host SoftMan was constructed. Then the descriptive unification model of knowledge and behavior of host SoftMan was put forward, the knowledge model was constructed and implemented based on data structure, and the design specifications and reference realization of the algorithm were given for its main service behaviors. Finally, the robot system was unified with the SoftMan system. Through the test, the function of robot was successfully replaced online and dynamically, implementing the meaning of the introduction of host SoftMan and verifying the correctness and feasibility of the method of designing and implementing the host SoftMan.

英文关键词

Key words:robot; host SoftMan; model of knowledge and behavior; SoftMan system; syncretic system

0 引言

目前,机器人控制结构的开放化、模块化[1],机器人控制器的标准化、网络化以及PC(Personal Computer)化已成为机器人领域的研究热点。实际上,早在20世纪90年代初开始,美国三大汽车制造公司就已联合发表了它们对未来开放式模块化控制器的需求白皮书,提出了“开放式、模块化体系结构控制器(Open Modular Architecture Controllers,OMAC)”的概念,并于1997年成立了OMAC用户组织[2]。欧洲共同体的22家控制器开发商、机床生产商、控制系统集成商和科研机构于1990年联合发起“自动化系统中开放式体系结构(Open System Architecture for Controls within Automation System,OSACA)的研究和开发”的倡议[3]。近二十几年间,机器人系统的开放可重构研究更是受到了极大的重视。White等[4]从物理运动学理论的角度证明了任意尺寸自重构机器人的存在性,并于2005年设计了Molecubes模块化机器人;Ferenc等[5]提出了一种实时的基于公共对象请求体系结构 (Common Object Request Broker Architecture,CORBA)协议的分布式机器人控制系统;麻省理工学院(Massachusetts Institute of Technology, MIT)的Gilpin等[6]于2006年设计了Miche晶格式模块化机器人,实现了机器人任意形状的组建。国内对机器人的研究起步相对较晚,但在开放可重构机器人研究方面也取得了一定的成果。刘明尧等[7]提出一种基于多智体(Agent)的机器人控制方法;张玉华等[8]提出了一种新型模块化可重构机器人(Hit Modular Selfreconfigurable Robot,HitMSR)系统的硬件和软件系统实现方案;谢峰等[9]以异构多Agent 系统(MultiAgent System, MAS)理论为基础,提出了一种可在多个层次上动态重构的控制系统设计方案。

“软件人”[10]是近年来在软计算、智能化领域提出并发展较快的一个课题方向。它是将人工生命、人工社会研究方法与现有(多)智体(Agent)[11-12]的研究成果结合起来的、网络世界中的虚拟机器人,是“智体(Agent)”和“对象”的升华,比通常的Agent更富有“人工生命”的特性和活性,具有感知、通信交互、任务分解、局部规划、任务分配、学习、控制与决策、进化(自适应)等功能,其中学习与进化特征是其区别于Agent的关键所在[13]。作为人的“自然生命”在软件世界里的模拟、延伸和扩展,“软件人”能进入、迁移并驻留各种计算机信息网络中,完成计算、通信等各种信息处理工作,因此“软件人”属于软件范畴,它需与类人机器人(humanoid robot)有所区分。类人机器人是外观和功能与人一样的智能机器人,通常是由传感器、微型处理器等组建搭建的机器人系统,它包含了硬件和软件两个范畴。

1.2.1 宿主“软件人”知识模型实现研究

“软件人”知识模型(SoftMan KnowLedgebase Model,SMKM)定义为一个三元组[14]:

SMKM=〈Data, Type, Relation〉。

1)Data为“软件人”知识的数据部分,表述为一个三元组:Data=〈DataType, DataContent, DataLen〉其中: DataType表示数据类型,DataContent表示数据内容,DataLen表示数据长度。

2)Type为本“软件人”知识节点的逻辑类型,即资源类型知识节点或属性类型知识节点。

3)Relation用于描述本知识节点与其子节点之间的模糊关联,表示为:

Relation=∪〈SubSKMi, tValuei, fValuei〉;0≤i≤n其中:tvaluei表示第i个子知识节点相对于本节点的隶属度, fvaluei表示第i个子知识节点相对于本节点的假隶属度[14]。

“软件人”知识模型SMKM主要是由以下4个数据结构来构造和实现的。

1)枚举类型SMKMType表示“软件人”知识Data部分的DataType,其成员包括:无数据类型smkm_no_type, 整数类型smkm_int_type, 浮点类型smkm_float_type,字符串类型smkm_str_type, 结构体类型smkm_struct_type, 链表类型smkm_list_type。

2)枚举类型SMKMLogicType表示“软件人”知识Type部分的逻辑类型,其成员包括:资源类型smkm_logic_res_type, 属性类型smkm_logic_attr_type。

3)结构体smkmTerm表示“软件人”知识的基本构造元素,其成员包括:smkmType表示“软件人”知识Data部分的DataType,*p表示“软件人”知识Data部分的DataContent,len表示“软件人”知识Data部分的DataLen,logicType标明“软件人”知识的逻辑类型Type,wMs和wUnMs表示本知识节点与其父节点的模糊关联 。

4)结构体smkmStructType为软件人”知识基本构造元素提供了一种灵活的组装方式。

根据以上对“软件人”知识模型与其数据结构的定义与说明,对图3左边宿主“软件人”的知识库Knowledge Base部分进行实现,其实现示意图如图4所示。行为集Behaviors的实现逻辑与此类似,不再详细赘述。

图4顶层方框表示要描述的是知识Data部分的DataType为结构体类型smkm_struct_type的知识节点“HostSoftMan”。第二层左分支方框描述的是“软件人”名称,名称的数据类型为字符串类型smkm_str_type;LogicType=smkm_logic_res_type表明该“软件人”知识的逻辑类型为资源类型;*p表示名称的数据内容为“HostSoftMan”;len=11表明名称的数据长度为11个字符;wMs=1、wUnMs是否应为wUnMs,图中表述为wUnMs将wUnM改为wUnMs=0表明与其父节点隶属度为1、假隶属度为0。第二层右分支方框枚举了图3宿主“软件人”知识库Knowledge Base的下层组成要素名称及个数。由*p可看出组成知识库要素的数据名称分别为Node Data、Message Buffer、Host Abstract 和InitROT, 枚举类型SMKMType的数据类型为字符串类型smkm_str_type;len=4表明组成要素数据个数为4;wMs=1、wUnMs=0表明与其父节点隶属度为1、假隶属度为0。对图4中第三层与第四层的理解可分别参照对顶层和第二层的解释,不再赘述。

1.2.2 宿主“软件人”行为规范及算法实现

服务类行为集SrvBehs是与宿主“软件人”的职能所对应的,因篇幅有限,本节选取其服务类行为集SrvBehs中典型的信道建立行为CreateChannelBeh和节点容错行为FaultToleranceBeh进行相关设计规范及算法的参考实现。

1) 信道建立行为CreateChannelBeh。

“软件人”之间通过消息传递进行交互[21],因此,在机器人平台中担当守护、信息处理角色的宿主“软件人”需先创建通信信道。在嵌入式Linux系统中,支持多种进程间通信(InterProcess Communication,IPC),常用的IPC方式有:共享内存、信号量、管道、消息队列、socket等。本文选取socket作为进程间通信的方式,建立机器人平台上的通信信道。信道建立后,宿主“软件人”可为机器人端提供消息守护功能。节点内部的附体“软件人”能通过信道与宿主“软件人”进行通信,同时,“软件人”平台上的消息节点也能通过连接该信道与机器人平台上的“软件人”进行通信。宿主“软件人”消息守护流程如图5所示。

2) 节点容错行为FaultToleranceBeh。

容错机制是系统可靠性的一种保证。宿主“软件人”作为机器人系统的守卫者和管理者,关键是要保障机器人节点的正常运行。因此,需讨论宿主“软件人”为使系统可靠运行而提供的容错行为。对于宿主“软件人”的容错行为,首先需要能为异常结束的附体“软件人”提供重新启动的功能。宿主“软件人”处理附体“软件人”进程退出信号过程如图6所示。

在宿主“软件人”监听到附体“软件人”退出时,通过查看“软件人”状态来判断是否有异常。若已申请退出,则宿主“软件人”释放维护的相关信息;否则认为该“软件人”进程为异常退出,重新启动附体“软件人”。当宿主“软件人”接收到操作系统内核传来的信号时,附体“软件人”进程已经结束,且尚未处理的输入消息也将丢失。若采用直接重新启动从初始化状态开始工作,虽然避免了附体“软件人”异常退出,但并未能保证其对外服务的连续性。因此,为了避免附体“软件人”服务的中断,宿主“软件人”采取了检查点容错机制。即宿主“软件人”定期的保存运行期附体“软件人”的相关信息(检查点),当附体“软件人”因意外终止而重启时,利用保存的信息初始化附体“软件人”,使得“软件人”能从检查点继续执行,以此保持“软件人”对外服务的持续性。

上一篇:高校学生社会主义核心价值观教育的路径 下一篇:基于改进双系统协同进化算法的无线传感器网络...