张国亮,王 钰,王展妮,林昌龙
(华侨大学 计算机科学与技术学院,福建 厦门 361021) E-mail:zgl0227@sina.com
近年来,随着新型智能机器人逐渐民用化,机器人产品迅速市场化的应用需求对当前机器人软件系统的体系结构提出了新的挑战.传统的机器人软件系统首先根据任务需求设计机器人本体机构,然后再由硬件设计控制软件,这种软件建模方法满足了一般工业生产对机器人安全高效的基本要求,但由于软件和硬件互耦合,导致控制系统各功能部件在软件上存在紧密耦合的关系,这种紧耦合性使得软件系统灵活性很差,软件系统一旦设计完成,操作和功能也相应的固化,难以对系统进行扩展和重用.因此,研究具有松耦合的机器人软件仿真运行环境对于缩短产品的研发周期,提高设计的重复使用性具有重要的意义.基于组件技术[1]的模块化、层次化设计思想为解决这一问题提供了有效的借鉴经验.通过将各部件与其对应的功能描述成具有统一硬件和软件接口的组件,分层屏蔽和隐藏诸如操作系统、开发语言和协议等细节差异,解除了机器人各个部件之间紧密的耦合性.如刘磊等[2]按照分层结构设计了移动机器人运行仿真系统软件,朱博[3]等建立了开放式室内场所软件系统,甘亚辉等[4]将Pro/E等3D实体模型导入Matlab机器人工具箱,建立了基于VA1400弧焊机器人的3D仿真研究平台,杨坤等[5]基于面向对象封装思想完成了亚毫米级微型零件自动装配.但这些研究仍主要针对某一具体应用或某一类别机器人,在机器人软件集成框架方面展开研究的并不多见.
相比于一般的软件控制系统,机器人往往要面对复杂环境下的多任务操作,传统的主从系统框架往往不能有效应对这类问题.因此,有学者尝试将分布式计算机网络结构、人工智能等理论引入机器人控制框架,以面对复杂多变的任务和环境.如文献[6-8]采用操作者-代理-机器人协作理论建立智能集成框架,文献[9]将哲学上的认知与社会概念同计算机网络、机器人应用结合,形成机器人与人之间社会认知网络.文献[10]采用了MAS(Multi-Agent System)结构,但不足之处是机器人和网络组件采用的是查询等待方式,并没有实现并发代理.
与传统的机器人网络操作系统仅将网络服务作为遥操作通讯手段不同,本文将机器人与网络服务统一定义为分布式Web组件服务,将网络作为知识源,而将机器人作为修改此知识源认知行为的手段.同时,将人工智能领域中本体论系统工程描述与分布式多Agent思想融合,用于管理分布式组件,构建基于松耦合服务的机器人集成智能框架.
软件系统框架采用如图1所示的四层分层结构.最高层是应用层,框架对于应用没有特殊限制,但针对不同的应用,需要协调下层的Agents来实现预期功能.最底层是物理逻辑层,包含事物逻辑世界和物理世界两部分,其中,逻辑世界作为Web服务的语义描述基础,物理世界是机器人可感知、可到达的实在环境.
框架的核心为基于Web的服务层和基于Agent的代理协调层.服务层负责将底层信息封装,并以分布式组件服务方式呈现,构建的组件不仅可与其他的组件进行互操作,同时解除了上层应用与底层硬件的强耦合关系,从而在应用、代理和服务之间建立无缝的松耦合集成框架.服务层以物理逻辑层为基础,包含网络服务WS(Web Service)和机器人服务RS(Robot Service)两部分.WS基于事物逻辑,采用语义规则描述特定服务,利用软件程序自动处理信息以及与其他服务交互,无需人工干预,体现了信息自主操作机制;RS对传感器、驱动等在硬件层面上作了行为抽象,便于上层代理使用及功能扩展.基于Agent的代理协调层介于用户应用和服务层之间,采用多层代理机制MAS (Multi-Agent System),不同的代理之间的协商与通信由基于语义描述的本体知识库实现.
图1 软件系统集成框架Fig.1 Framework of software system
在机器人软件系统中,经常采用多线程技术来处理机器人应用中的多任务问题,传统的同步多线程方法虽然实现简单,但应用程序往往逻辑结构复杂,同时,为保证数据的一致性,必须经常面对多个线程同时处理同一个变量带来的死锁问题.因此,为简化多线程编程模型,采用MRDS(Microsoft Robotics Development Studio)提供的CCR(Concurrency and Coordination Runtime)处理底层服务间的消息异步和线程的并发,通过消息组织机制替代锁定、信号量等线程操作,通过线程池解决线程的并发问题.
3.2.1 DSS服务模型
DSS(Decentralized Software Service)是微软提出的一个架构,在DSS框架下,任意一个服务(Service)组件的内部模型如图2所示.“Contract Identifier”是分布式组件服务的标识符,用于唯一确定该组件在网络中的位置,“Main Port”是用于操作的消息队列,所有的操作将作为消息发送到队列中,“Interleave”作为接收器从Main Port中读取消息并根据消息类型选择对应的Service Handler执行,执行过程中会对State进行读写操作,Service中的“Notification Port”用于存放其他Service发送的通知,接收器读取通知消息并根据消息类型执行对应的“Subscription Handler”的代码段.“Partners”与外部的其他Service通过Main Port进行通信,协助Service完成任务.这样,所有与机器人有关的信息都被抽象成服务,并按照分布式网络模型组织在一起,形成Web Service 组件,Service间的消息流由DSS框架管理.
图2 服务内部模型Fig. 2 Internal model of service
3.2.2 信息隐藏和可移植实现
从图2中可以看出,Web Service组件模型利用消息通知实现服务间的通信,所有的操作均通过唯一的接口Main Port实现,内部信息得到有效封装和隐藏.在移植性方面,基于XML的统一的技术规范使得Web Services能与其他兼容的组件实现跨平台互操作,不同系统间的集成更加容易.同时,组件间松散耦合的体系结构使软件系统便于管理,当需要更换某一Service时,只要新的Service与之前接口相同,在应用程序其他部分不做任何改动的情况下,系统依然可以正常运行,接口的一致性和基于消息传递的编程机制确保机器人应用程序能够进行模块化设计,软件的可靠性得到有效的保证.
代理机Agent指的是具有连续操作、自主决策等属性,无需人工干预的功能部件.从定义考虑,任意一个Agent可单独执行某一目标任务,但目前对于复杂任务的智能代理尚不成熟,因此实际应用中多采用将任务功能分解,分别由多个代理实现的MAS系统.针对机器人应用,本文将AI领域中多Agent结构与本体论系统描述结合,形成具有MASO(Multi Agent Systems based Ontology)结构的多代理协调层.
如节1所述,MASO处于集成框架的中间位置,因此,按照功能的不同,将代理划分为面向应用的代理、面向服务的代理和本层管理代理三类代理机,从系统的角度来看,分别对应着这一层的输入、输出和层间通信三个部分,其组织结构如图3所示.
面向服务的代理作为服务的拥有者,能够获得服务并保证服务实现的外部要求,包含RA(Robot Agent)和SA(Service Agent)两个代理.RA负责与实际的机器人通讯、传递消息,并将任务翻译为机器人可识别的命令,SA负责按照语义规则描述地图,实现预期的算法.应用代理作为服务的输出者,负责接收和呈现执行结果,包含CA(Customer Agent)和DA(Discovery Agent)两个代理.CA用于将用户的指令翻译成程序指令.DA负责寻找指定的服务完成目标,如果当前目标无法立即完成,需要将其进一步分解为更细小的子目标.管理代理包括FA (Framework Agent)和BA (Broker Agent).FA负责监测系统活动,如果发现系统阻塞,由其负责重新初始化进程以解锁系统.当任何代理收到一个无法解释的消息,问题消息会传递给BA,该代理采用系统本体知识库中的映射规则将消息翻译成可以理解的内容.
图3 代理协调层框架Fig.3 Framework of agent coordination
表1 本体知识库功能描述Table1 Discription of ontology knowledge function
针对以上6类不同类别的代理,引入本体论系统工程描述方法,在本体知识库内采用5种本体对相应的知识进行分类描述.由图3所示,在MASO框架下,每一个Agent能够自主执行有限的功能,当需要在多个Agent之间进行协商和通讯时,依照表1定义的语义规则进行协商和通讯.
不失一般性,框架原型试验选择机器人领域中常见的的移动机器人路径规划,规划算法为人工势场(APF,Artifitial Potential Field)[11].针对规划应用,将代理简化为四个,分别客户代理CA(Custumer Agent) 、路径规划代理PPA(Path Planning Agent)、机器人代理RA (Robot Agent) 和管理协调代理MCA(Manage and Coordinate Agent).仿真平台选用高性能和高可靠性的先锋系列机器人Pioneer P3DX和LRF(SICK Laser Rangefinder)激光传感器,真实机器人及仿真机器人如图4所示.
图4 仿真机器人及传感器Fig.4 Simulated robot and sensor
利用传感器对仿真环境信息探测,并绘制地图是机器人路径规划的前提.LRF作为高精度的激光测距传感器,能够扫描前方0°~180°的范围,即可计算从左边水平线到右边水平线内的所有的距离,模拟系统中所用的LRF的解析度为0.5°,因此共有360个距离数值,数值范围是0 ~ 8000,单位是毫米(mm),LRF扫描时的情形如图5所示.
图5 LRF扫描示意图Fig.5 Diagram of LRF scanner
按照节2中的方法对仿真地图封装,程序中以元素类型为byte的二维数组的形式表示地图,分别用“0”、“128”、“255”表示机器人不可通过位置、情况未知和机器人可通过位置.初始化时,二维数组的元素值均为“128”.当移动机器人运动时,激光测距传感器感知的数据变化会使二维数组中元素值随时改变,虽然传感器探测得到的只是局部信息,但随着小车的不断移动,地图信息会逐步完善,激光测距绘制地图原理如图6所示.
图6 利用激光测距绘制地图Fig.6 Drawing map with laser sensor
图中(X1,Y1)点是机器人的当前位置,(X2,Y2)点是障碍物边缘的位置,激光在某一角度β射出,若前方有障碍物,则测得当前点与障碍物的距离为Length,由公式(1)、公式(2),可得(X2,Y2),
X2=X1+Length*cosβ
(1)
Y2=Y1+Length*sinβ
(2)
将从(X1,Y1)点沿着β方向到(X2,Y2)点这条线段上的所有点标记为“255”,而(X2,Y2)点标记为“0”,则β方向上处理完毕,由LRF激光测距的特性可知,它发射的激光覆盖前方180°范围,每一角度的处理方法类同,模拟地图绘制结果如图7所示.
图7 模拟地图Fig.7 Simulated map
如节2所述,RS负责机器人驱动及环境感知,包括差分驱动服务、激光测距服务和机器人底层核心服务三部分,如图8所示.其中,差分驱动服务完成机器人的移动、旋转等动作,激光测距服务负责探测前方180度范围内的环境信息,机器人底层核心服务是机器人的核心组件,负责直接与机器人通信.如前所述,这三个服务按照DSS模型组织,分别对应着机器人的驱动、传感和底层API,这些组件可根据选择的驱动方式、传感器及底层运动参数的不同进行替换.
图8 Robot Service组件Fig.8 Robot Service component
在操作端口方面,除DSS默认消息外,针对当前驱动和传感方式,分别自定义6种消息及对应的消息处理(ServiceHandler):UpdateDrive(小车的行驶状态已更新);UpdateLRF(LRF数据已更新);Command(命令机器人小车扫描前方障碍物信息或进行转向);UpdateDriveRotate(小车已经完成转向操作);CalculateNext(计算小车下一步动作);Run(命令小车向前移动一段距离).
通知端口(NotificationPort)共有2个,分别是:_laserNotify(用于接收LRF传感器服务发送的更新通知),_driveNotify(接收差分驱动器服务发送的行驶状态更新通知和转向更新通知).Partners包括LRF传感器服务和差分驱动器服务,协助核心服务完成任务.
图9是MAS消息通讯流程.四个代理中,CA用于将用户的任务指令翻译成MCA可识别的程序指令.运动信息翻译和收发由RA完成,PPA实现路径规划算法,MCA负责协调PPA和RA,自主接收、处理信息,并根据路径信息进行决策.
当接收到任务命令后,MCA根据知识库中的语义规则对任务进行评价,然后向PPA发送路径规划消息,PPA则根据MCA指令,根据环境状态及路径规划算法,制定从当前工作点到目标点的最短路径.当收到PPA发送的路径制定完成消息后,MCA将其转化为一组命令,发送给RA.RA自主将PPA计算得到的路径消息翻译为机器人可以理解的运动命令,转发给实时环境中的机器人,建立通讯后,按照路径规划中的指令控制机器人运动,在机器人运动过程中,如遇到障碍或者任务完成,向MCA发送结束消息,MCA则需要对当前状态进行评价,如果任务完成,等待另一次外部任务指令; 如果任务失败,向PPA发送新的需求消息,该消息包含当前所在点、目标点和环境(障碍)信息,这些信息会被PPA重新利用建立地图.从图9可以看出,框架内的所有功能都是基于消息响应的方式实现.
图9 MAS消息通讯Fig.9 Message transmattion
APF是一种常见的机器人路径规划算法,通常情况下,目标点被设计为合势场的全局最小点,机器人会从高势场位置向低势场位置移动并最终止步于目标点,但在实际运行过程中,除目标位置以外的其他区域也可能存在极小值点.因此,克服局部极小问题成为提高算法环境适应性的关键环节,然而,传统的所受合力为零的极小点判断条件并不能有效处理特殊障碍物形状情况.为此,本文提出变换行走策略的改进APF算法,将其融入文中所提的框架内,进行仿真实验.
5.4.1 局部极小问题产生条件
在复杂环境下,机器人陷入局部极小点的情形可分为3类,分别为狭长通道,凹型障碍物,凸型障碍物,如图10所示.
图10 机器人陷入局部极小点的情形Fig.10 Robot in local minimal position
由图10所示,机器人受到目标点的引力和两侧障碍物的斥力,在某个位置引力和斥力相互抵消,合力为零,此时会陷入局部极小点.因此,仅仅以机器人所受合力为零这一条件来判断是否陷入局部极小点是无法面对这些特殊情况的,在实际运行过程中,由于机器人在每一个控制周期内会前进一段指定距离,因此机器人并不一定恰好停留在局部极小点,常常会在局部极小点周围往复运动.
5.4.2 变换行走策略
在人工势场法的基础上,加入向目标前进和沿墙行走这两种行走策略,使机器人根据当前条件不断变换行走策略,逃离局部极小点并最终到达目标位置.算法流程如图11,当机器人未陷入局部极小点时,采用人工势场法躲避障碍物,一旦满足陷入局部极小点的前提条件时,变换当前行走策略为向目标位置前进,若前方存在障碍物,则采用沿墙行走策略,直到机器人绕过障碍物才将策略变为势场法避障.
图11 变换行走策略Fig.11 Walking tragety
5.5.1 仿真设置
仿真任务包括两个,一是在一般障碍环境下,传统人工势场法与文中所提方法分析比较,用于观察路径规划效果.其二是在特殊障碍环境下,两种方法的局部极小问题逃离的分析比较试验.
图12-图15为两项仿真实验结果,图中的S和T分别代表起始点和目标点.地图是机器人在向目标移动过程中逐步绘制的.因此,图中的A区域呈现灰色是因为机器人尚未进行探测,这些区域是否有障碍物在绘制地图当前时刻仍是未知的,图中某些区域有小黑点是解析度不够小导致.
5.5.2 无特殊障碍物的一般情况
如图12所示,两种方法在一般障碍物的情形下均可以到达目标点,但在传统势场法的规划中,由于目标点离障碍物较近,当机器人靠近目标点时,同时也靠近障碍物,根据引力函数和斥力函数的定义可知,此时引力会小于斥力,导致机器人远离目标,随着与目标点距离的增大,引力又会大于斥力,因此机器人会多次出现往复运动.与之相比,改进的势场法一旦出现往复运动或受到合力较小的情形(接近局部极小位置),时,会命令机器人朝着目标方向移动,迅速脱离振荡区域.通过比较图12(a)、图12(b)两图的圆形区域,可以明显的看出,图12(b)中的运行轨迹比图12(a)平顺.
图12 无特殊障碍物的一般情况Fig.12 Common condition without special obstacle
5.5.3 特殊障碍物情况
A)凸型障碍物
如图13所示,当地图中存在凸型障碍物时,两种方法的运行轨迹差别明显.
图13 凸型障碍物Fig.13 Convex obstacle
图13(a)表明机器人前方存在凸型障碍物时,传统势场法由于引力函数和斥力函数存在缺陷,会使机器人长时间徘徊在障碍物之间,很难使机器人移动到障碍物后面的位置.如图13(b)所示,由于机器人采取沿墙壁行走的策略改进了传统的势场法,使机器人快速绕过了凸型障碍物,较好解决了凸型障碍物引起的局部极小问题.机器人一直沿墙运动到B点,此时机器人左侧沿墙且目标点在右前方,满足沿墙运动的结束条件,机器人改用势场法避障,并在引力的作用下朝目标移动.
B)凹型障碍物
当机器人前方存在凹型障碍物时,传统人工势场法与改进势场法的仿真结果如图14所示.
图14 凹型障碍物Fig.14 Concave obstacle
如图14(a),当机器人前方存在凹形障碍物时,它会陷入局部极小点,表现为在障碍物内部上下左右移动,但不能离开,此时传统势场法失效.从图14(b) 可以看出,改进的势场法通过沿墙壁移动策略有效地避开了凹形障碍物并到达目标位置.
C)狭长通道
图15 狭长通道Fig.15 Corridor obstacle
如图15(a),当机器人面对一条狭长通道时,由于左右两侧障碍物产生的斥力和目标产生的引力,使机器人左右徘徊,上下往复移动,而图15(b)表明,采用向目标移动的策略使机器人忽略障碍物的斥力影响,机器人的移动方向仅由目标点产生的引力方向决定,因此与传统势场法相比,有效地解决了由狭长通道引起的局部极小问题.
表2 传统势场法和改进势场法的时间对比Table 2 Time of passing trough obstacle between traditional APF and extended APF
对比图12-图15的仿真实验可看出,文中所述的改进的势场策略在普通运行环境和特殊障碍环境都能不仅在普通障碍情况下能获得较为平顺的轨迹,而且在特殊障碍情况下,能有效避免传统势场法陷入局部极小的问题.表2列出了机器人分别采用两种方法在不同类别障碍物的环境下,从同一S点移动到同一T点耗费的时间.从表中实验结果可以看出,改进势场法在时间性能上优于传统势场法,在三种可达情况下,传统规划方法平均用时89s,改进方法用时52s,平均规划时间节省约42%.同时,在存在凹型障碍物时,改进的势场法可绕过障碍物到达目标,比传统势场法更能适应环境的变化.
随着机器人产品多元化、功能多样化的快速发展,面向工业机器人应用的紧耦合软件设计模式已不能适应机器人行业迅速发展的需要,开放化、模块化的设计思想成为机器人技术发展的趋势.本文借鉴了分布式人工智能和多智能体控制技术思想,将分布式组件网络和多代理协调等理论引入传统的机器人软件控制系统,基于层次化设计思想构建了基于松耦合服务的机器人集成智能框架.该框架使机器人研究人员可以忽略编程语言、底层硬件和通讯协议等软件系统细节问题,将研究重点集中于机器人规划及控制算法,为加快机器人功能研究提供理论和实践方面的参考.
[1] Cao Li-juan,Yang Li-fen,Zhang Yu-qiang.Study and realization of GIS data conversion based on com technology[J].Computer Technology and Development,2011,21(9):141-144.
[2] Liu Lei,Xu Xiao-ming.The design of simulation software for autonomous navigation and obstacle avoidance mobile robot[J].Journal of Huazhong University of Sci.& Tec.,2011,39(Sup.2):196-200.
[3] Zhu Bo,Dai Xian-zhong,Li Xin-de.Open interior-places perception algorithm of robot based on prototype[J].Pattern Recognition and Artificial Intelligence,2012,25(1):2-10.
[4] Gan Ya-hui,Dai Xian-zhong.An efficient method of constructing open 3D simulation environment for articulated robot[J].Robot,2012,34(5):628-633.
[5] Yang Kun,Huang Xin-han,Mao Shang-qin.Design of control software with four-layer architecture for microassembly robot[J].Journal of Huazhong University of Sci.& Tec.,2013,41(Sup.1):55-62.
[6] Amy W R,Eric M T.A robust human-robot communication system using natural language for HARMS[C].29th European Conference on Solid-State Transducers,Publisher:Elsevier B.V.Freiburg; Germany,2015,56(1):119-126.
[7] Michael G A,Mark C,Bonnie B,et al.Incorporating a robot into an autism therapy team[C].IEEE Intelligent Systems,2012,27(2):52-59.
[8] Mattew J,Jeffrey M B,Paul F,et al.Autonomy and interdependence in human-agent-robot teams[C].IEEE Intelligent Systems,2012,27(2):43-51.
[9] Ryutov T.A socio-cognitive approach to modeling policies in open environments[C].Proceedings of the 8th IEEE International Workshop on Policies for Distributed Systems and Networks,Bologna,Italy,2007:29-38.
[10] Renato Vidoni,Francisco García-Sánchez,Alessandro Gasparetto,et al.An intelligent framework to manage robotic autonomous agents[J].Expert Systems with Applications,2011,38(74)30-39.
[11] Zhu Yi,Zhang Tao,Song Jing-yan.Study on the local minima problem of path planning using potential field method in unknown environments[J].Acta Automatica Sinica,2010,36(8):1122-1130.
附中文参考文献:
[1] 曹丽娟,杨丽芬,张玉强.基于组件技术的GIS数据格式转换研究与实现[J].计算机技术与发展,2011,21(9):141-144.
[2] 刘 磊,许晓鸣.自主导航避障移动机器人仿真软件设计[J].华中科技大学学报,2011,39(Sup.2):196-200.
[3] 朱 博,戴先中,李新德,等.基于“原型”的机器人开放式室内场所感知实验研究[J].模式识别与人工智能,2012,25(1):2-10.
[4] 甘亚辉,戴先中.一种高效的开放式关节型机器人3D仿真环境构建方法[J].机器人,2012,34(5):628-633.
[5] 杨 坤,黄心汉,毛尚勤.基于四层架构的微装配机器人控制软件设计[J].华中科技大学学报,2013,41(Sup.1):55-62.
[11] 朱 毅,张 涛,宋靖雁.未知环境下势场法路径规划的局部极小问题研究[J].自动化学报,2010,36(8):1122-1130.