移动机器人行为协同开发框架与应用研究
2019-06-11周佳峰曹伟
周佳峰 曹伟
摘要:移动机器人在生产生活当中日益发挥重要作用,但移动机器人开发应用却比较困难,主要存在两个问题:一是软件模块化和重用性,二是行为协同控制模型的理论支撑。针对上述问题,融合了已在学术界和工业界取得广泛应用的开源机器人软件平台一机器人操作系统( Robot Operaing System,ROS),以及多主体理论中,支撑主体内部行为协同机制的反应式包容模型( Subsumption Architecture),设计并实现了一个移动机器人行为协同开发框架。基于机器人操作系统底层机制,把包容模型的基本控制元件封装成API,在功能单元内部提供基于有限状态机的开发模板,在功能单元之间提供松散耦合的通信机制,并且提供了基于框架的应用开发的模型设计方法学和应用实现方法学。用户使用本文框架开发移动机器人,因为框架把包容模型中的关键控制元件封装成API,使得用户不用了解复杂的控制模型理论以及底层模块执行机制和通信机制,并且可以重用机器人操作系统提供的开源软件包,几乎没有额外的学习代价,十分地方便高效。通过框架研究并且开发了具有三个行为层的自主漫游机器人以及具有六个行为层的安保巡逻机器人,在仿真器和实际场景中设置不同地图环境,进行机器人行为实验,通过实验结果分析,进一步验证了框架的易用性、可靠性和鲁棒性。
关键词:多主体理论;包容模型;机器人操作系统;应用开发框架;安保巡逻机器人
中图分类号:TP311
文獻标识码:A
移动机器人在移动中执行任务,既可以通过人工指挥,又可以运用人工智能技术,实现面向特定应用场景的自主性任务执行。移动机器人在现代社会中已经获得广泛应用,融人到了生产和生活的众多方面。移动机器人可以替代人类执行各种操作,尤其是危险作业,灾难救援机器人、农业机器人、安保机器人、消防机器人、核泄漏事故检测机器人等都是移动机器人的代表性应用[1-5]。但是长期以来,为移动机器人开发应用软件比较困难,主要是存在以下两个方面的问题:
(1)不同公司和科研院所开发的机器人功能模块互不兼容,机器人应用的软件重用性难以被保证,机器人开发者想要开发一个应用,往往要从底层的机器人驱动开始,耗费了极大的工作量;
(2)缺乏对于移动机器人应用开发的理论支撑,在机器人的行为模块被开发出来之后,如何协调机器人的这些行为模块,从而针对不同的应用场景完成不同的任务。
针对上述第一个机器人软件可重用性的问题,近些年,一些机器人软件平台被开发了出来。OROCOS[6]是一个开源的机器人控制软件平台,通过无锁编程(lock-free programming)技术,可以基于OROCOS开发实时性应用。MRDS( MicrosoftRobotics Developer Studio)[7]是微软开发的机器人软件平台,采用微软的基于.NET技术的编程环境。OPRoS[8]是由韩国开发小组设计的一个基于组件的开源软件平台,它整合了IDE开发工具、测试工具等,具有易用性。OpenRTM-aistc9]是基于RT中间件开发的机器人软件平台,基于RTC (RT-compo-nents)思想,其控制结构是分布式的。上述平台提供了机器人软件模块化机制,但是基本没有活跃的用户群体,甚至有些平台没有开源社区,可重用的代码包很少,对于机器人软件的重用支持的差。机器人操作系统ROS(Robot Operating System)[10]是一个开源的机器人软件平台,具有活跃的软件社区,全世界数以千计的程序员为其贡献了丰富的可以被重用的开源代码包。ROS开发的初衷就是鼓励程序员的合作式开发和软件重用。所以,ROS可以用来解决移动机器人开发面临的第一个软件模块化和可重用的问题。
针对第二个机器人行为协调理论模型的问题,很多学者展开了这方面的研究。运动模式( Motor-Schema)cll]方式为输入的各个行为赋予权值,输出的行为是所有输入行为的加权平均,但是这种模型采用中心仲裁方式,不具有鲁棒性。基于零空间的机器人行为协同方式[12],可以利用行为之间在不同维度的映射关系,整合成机器人的整体行为,但是该种方法同样由于其对中心计算节点的依赖性,缺乏鲁棒性。在多主体理论当中,基于行为的反应式模型可以通过松散耦合的行为交互,构建智能主体,包容模型[13]是其典型代表,基于分层行为控制的思想,协同机器人行为,构建机器人智能,具有鲁棒性。
近年来,研究者针对上述问题开发了一些典型的机器人编程框架,SMACH[14]框架采取有限状态机的思想,解决移动机器人行为协同,但是这种方法的缺点就是鲁棒性低,任何一个状态节点失效,将导致整个系统无法工作。COROS[15]基于ROS开发了机器人编程框架,但是该方法只是封装了一些基本可重用模块组件,缺乏理论支撑,应用验证也相对简单。Buzz[16]从编程语言设计的角度为机器人开发提供了可行方案,把机器人一般的功能需求封装为原子语言操作,工作具有启发性,但是缺乏软件平台支撑,无法支持软件可重用性。GSDF框架[17]以Buzz中的机器人原子语言模型作为理论支撑,融合ROS实现了机器人应用开发框架,但是该方法关注底层通信与功能原语,无法提供多任务的系统级别的应用开发,其应用范围有限。
基于ROS的底层机制,融合包容模型,开发了一个移动机器人编程框架。提取了包容模型中的关键控制元件一消息禁止器和消息抑制器,基于ROS进行封装,提供了功能单元间通信机制以及功能单元内部的行为描述模板。介绍了基于本文框架开发机器人应用的方法学。本框架相比于上述平台、模型和框架,针对移动机器人应用开发的优势可以总结如下:
(1)用户可以不用了解复杂的行为协同理论,框架底层机制对用户透明,用户直接复用本框架提供的API即可;
(2)ROS开源社区提供的丰富的开源软件包可以在框架当中被重用;
(3)本框架可以支撑鲁棒的系统级别的机器人应用开发,具有开发高效性;
(4)熟悉Python或者C++编程的程序员使用本框架基本没有额外的学习代价。
在实验阶段,基于框架实现了由包容模型提出者Brooks最初设计的自主漫游移动机器人[16]并且实现了一个具有六层行为的安保巡逻机器人。通过在仿真和实际环境中的实验结果和分析,验证了框架的易用性、鲁棒性和开发高效性。
其余部分组织如下,第1节介绍预备知识,介绍ROS的基本机制以及包容模型的基本思想和关键控制元件;第2节介绍移动机器人行为协同开发框架;第3节介绍基于框架开发机器人应用的方法学;第4节介绍基于框架的安保巡逻机器人应用开发;第5节是实验部分。
1 预备知识
移动机器人应用开发框架基于包容模型多主体理论与机器人操作系统ROS,下面对其进行介绍。
1.1 反应式包容模型
多主体理论当中,松散耦合的多个智能主体通过交互,可以构建整体智能。基于行为的反应式多主体理论中,多个行为通过松散耦合的方式交互,完成行为协同,包容模型是该反应式理论的典型代表,该模型最初由Brooks提出。如图(1)所示,表示基于包容模型的自主漫游移动机器人控制结构,方形模块表示不同的功能单元,功能单元之间的连接线表示不同类型的消息流,功能单元之间采取松散耦合的方式进行通信,不同的功能单元组合可以构建行为层。图(1)中带有符号“I”的圆形模块表示包容模型的控制元件之一——消息禁止器(In-hibitor),从消息禁止器之上流人的消息可以作为禁止信号,禁止经过禁止器的消息流通,圆形模块中的数字表示一次消息禁止的时间。图(2)中带有符号“S”的圆形模块表示包容模型的另一个控制元件——消息抑制器( Suppressor),从消息抑制器之上流人的消息,可以替代下层流经抑制器的消息,如果没有消息流经抑制器,原本流经其的消息正常传递,圆圈中的数字表示一次消息抑制的时间单位。通过两个控制元件,可以组合行为层,使得上层行为在抑制下层行为的同时,也可以包容下层的部分行为,从而实现移动机器人内部的行为协同,构建增长式的智能。
1.2 机器人操作系统-ROS
在ROS中,功能单元通过节点(Node)表示,节点之间可以通过松散耦合通信方式一发布/订阅方式进行消息通信。每一个节点通过一个操作系统进程来执行,节点内部通过订阅者接口( Subscriber)来订阅某个话题(topic)上的消息,通过与接口绑定的回调函数来处理消息,回调函数可以通过消息触发执行。发布者接口( Publisher)负责在某个话题上发布消息,实现节点间异步通信。
2 移动机器人行为协同开发框架
基于机器人操作系统ROS,融合多主体理论中基于行为的反应式模型,设计并实现了应用于移动机器人的行为协同开发框架。
2.1 总体结构
如图(2)所示,表示移动机器人行为协同开发框架总体结构。底层表示机器人操作系统,为框架开发提供底层支撑,功能单元可以复用机器人操作系统中的开源软件功能包,也可以自己编写。消息禁止器和消息抑制器为框架中的消息流控制元件,基于机器人操作系统的机制,把其封装成API,通过消息流控制元件的消息禁止和消息抑制功能,把功能单元组合成行为层,不同的行为层组合成了一个自主智能移动机器人。
2.2 消息流控制元件的封装
消息流控制元件为包容模型中最重要的部分,包括消息禁止器和消息抑制器,消息禁止器可以通过上层禁止信号的到来阻断下层消息流传递,消息抑制器可以把下层的消息流替换为从抑制器上层传人的消息流。例如,图(1)中的“wander”模块的输出消息线上插入了一个消息抑制器,就可以使得上层的“startlook”消息作为消息禁止信号,禁止下层的“heading”消息传递给“avoid”模块,一次消息禁止的时间为3个单位;图(1)中的“runaway”模块的消息输出线上,插入了一个消息抑制器,当上层的“avoid”模块有“heading”消息输出的时候,就会替换下层“runaway”模块本来的消息输出,一次消息抑制的时间为20个单位。
在消息禁止器控制元件的封装过程中,一个元件被封装为一个机器人操作系统中的节点。在节点内部有两个回调函数,一个被上层传人的消息触发,一个被下层传人的消息触发,每个回调函数内部都会记录一个时间戳,每一次回调函数的执行都会触发这个时间戳的更新,两个回调函数之间通过共享变量机制,共享各自的时间戳。当消息禁止器接收到一个从下层传人的消息时候,触发相应的回调函数,其内部控制逻辑就会计算这两个时间戳的差值,判断其是否小于一个预先指定的阈值。如果小于这个阈值,下层消息就会被禁止,否则下层消息通过该回调函数被转发,即消息正常传递。
消息抑制器的封装过程类似于消息禁止器的封装,不同点是,消息抑制器在禁止下层消息传递的同时,在处理上层消息的回调函数中加入了一个消息发布者,负责转发上层消息,从而使得下层传人的消息替換为上层消息,完成消息抑制过程。
控制元件中传人消息的话题、消息禁止和抑制时间被封装为可以外部配置的参数。用户使用这两个控制元件时,只需在ROS提供的launch文件中,实例化控制元件节点API,并配置相应参数即可。
2.3 功能单元之间的通信
在ROS中,功能单元通过节点执行,节点之间可以通过异步方式进行通信。采用发布/订阅机制,一个节点把消息发布到某一个话题上,所有在这个话题上订阅消息的节点都可以接受到这个消息,消息类型需要与话题上指定的消息类型相匹配。
在框架当中,如图(3)所示,表示功能单元之间以及与控制元件之间的通信方式,采用发布/订阅机制,通信相连的功能单元需要配置相同的话题,底层支撑采用TCP/IP协议。例如,在图(1)中,“sonar”模块在相应话题上发布了类型为“map”的消息,话题名称为“/sonar/map”,那么在这个话题上订阅消息的“feelforce”模块和“collide”模块,都可以接收到这个消息。通过这种方式,用户基于本文开发框架,重用的开源功能单元模块或者是自己重新编写的功能单元模块,都可以很方便地插入到想要开发的移动机器人应用的控制模型当中。
2.4 功能单元内部的行为描述模板
机器人行为协同开发框架提供了功能单元内部的行为描述模板,采用了有限状态机的方式,共分为四种类别的状态:事件触发调度状态、副效应状态、条件触发调度状态、输出状态。通过四种状态组成的有限状态机,可以作为行为描述模板开发功能单元,下面举例进一步解释。
如图(4)所示,表示的是图(1)中“avoid”功能单元内部的有限状态机行为描述方式,此状态机运行在一个回调函数当中,该函数负责处理到来的“heading”消息。监控状态负责订阅“heading”消息。此状态属于事件触发调度状态,“heading”消息的到来即为触发状态机调度的事件;规划状态根据“heading”消息存储的信息与共享变量计算结果,这个共享变量的更新通过另一个回调函数来执行,此状态属于副效应状态,状态的执行带来了内部某些变量的改变,比如说本例状态机中的结果变量。计算完毕后,转入执行狀态;执行状态将结果与一个阈值相比较,如果大于阈值,转入监控状态,如果小于阈值,转入输出结果状态。此状态为条件触发调度状态,触发的条件即为计算结果与阈值的比较;发布状态负责将计算得到的结果封装成消息并且发布。此状态属于输出状态,输出的是计算结果。
3 基于行为协同框架的应用开发方法学
提供了基于行为协同框架开发移动机器人应用的方法学,分为控制模型设计步骤和实际应用开发步骤,总结如下。
3.3 基于行为协同框架的控制模型设计方法学
总结的基于行为协同框架的控制模型设计方法学,主要是基于包容模型的层次行为设计的基本思想,采用自顶向下的方法,具体步骤如下。
(1)提出移动机器人应用的总体需求;
(2)将总体需求分解为机器人的具体行为;
(3)分析具体行为由哪些功能模块组成;
(4)分析消息流控制元件如何插入相应功能模块当中,组成行为层;
(5)画出基于包容模型的行为分层控制模型设计图。
3.4 基于行为协同框架的实际应用开发方法学
总结的基于行为协同框架的实际移动机器人应用开发过程的方法学,采用自底向上的思想,具体步骤如下:
(1)根据框架中的功能单元行为描述模板,开发相应的功能单元,如果ROS中有相应的开源代码包,尽量实现软件重用;
(2)使用框架提供的消息流控制元件API,配置相应的消息参数和时间参数,并且在launch文件中实例化。
(3)通过消息控制元件和功能单元组成相应的行为层;
(4)把不同的行为层组合成一个完整的移动机器人应用;
(5)在机器人仿真和实际环境中进行验证。
4 基于框架的安保巡逻机器人应用案例开发
安保机器人具有十分广泛的应用价值,例如家庭安保机器人、社区安保机器人、商场安保机器人等。本文基于提出的行为协同开发框架,设计了一个具有六层行为的安保巡逻机器人应用案例,进一步验证了本框架的易用性和开发效率的高效性。
4.1 安保巡逻机器人应用需求分析
针对安保巡逻机器人的特点,首先进行需求分析,将安保巡逻机器人的总体需求总结如下:首先,安保巡逻机器人需要可以在已经建立好地图的指定区域内巡逻,如果有入侵者到来,可以检测到并采取一定措施,例如跟踪入侵者、报警。当上述行为模块失效时候,为了提高机器人鲁棒性,机器人还需要具有一定的容错能力,比如基本的自我保护能力、漫游的能力、对环境的探索能力等。此外,远程的中心监控室需要看到机器人看到的视频画面,而且当机器人的巡逻安保行为失效的时候,比如机器人阻塞在某些障碍物之间无法移动,出现这些意外情况的时候,可以做到人工远程手动控制机器人。
4.2 安保巡逻机器人控制模型设计
如图(5)所示,表示设计的安保巡逻机器人控制模型,根据4.1节总结的需求,共分为六个行为层,现将六个行为层描述如下:
(1)第一层:当有外来物体靠近机器人时,机器人远离目标;
(2)第二层:机器人可以实现自主漫游行为,碰到障碍物的时候主动躲避;
(3)第三层:机器人会主动对环境的空闲区域进行主动探索;
(4)第四层:机器人在已经建立地图的环境当中,可以在预先标定的目标点之间实现巡逻。
(5)第五层:机器人可以通过人脸检测,检测可疑入侵者目标,自动跟踪并发出警报;
(6)第六层:远端有一个与机器人通过无线通信相连接的计算机,在计算机上可以看到机器人看到的画面,手动标识入侵者,手动控制机器人,实现远程控制和远程监控。
4.3 安保巡逻机器人应用开发
上一节设计了安保巡逻机器人的控制模型,下面介绍具体实现过程。
在第一层中,机器人通过“kinect”模块获取摄像头得到的视频信息以及深度图像信息,“run-away”模块采取手动编写方式,通过深度点云信息,计算前方对象是否离自己过近,从而逃离或者原地不动。“smoother”是速度平滑器模块,复用开源节点,减少机器人行进过程中由于速度变化而产生的抖动。
在第二层中,“bumper”模块传递机器人的碰撞信息,可以检测到是否撞到了障碍物,“wander”模块手动编写,可以发出随机漫游的速度指令,“avoid”模块也通过手动编写,可以融合这两个消息,实现了带有避障的漫游。第二层插入第一层的消息抑制器,可以通过漫游行为抑制逃离行为,并且实现了对于第一层速度平滑功能的包容。
在第三层中,“explore”模块手动编写,通过接收“kinect”模块的深度信息,发现前方空旷区域,主动实现探索性地自主智能漫游,通过第三层插入第二层的消息抑制器,可以通过探索行为抑制漫游行为,并且实现了对于底层避障功能、速度平滑功能的包容。
在第四层中,复用了开源的机器人导航软件包实现了“navigation”模块,“patrol”模块手动编写,给“navigation”模块发送目标指令,并且接收其反馈,反馈消息中包含是否到达相应目标点信息,如果到达,“patrol”模块发送下一个目标点指令,从而实现巡逻。通过第四层插入第三层消息抑制器,可以通过有带有任务规划的巡逻行为抑制较低层的探索行为。
在第五层中,复用了开源的视觉检测模块“de-tect”、视觉跟踪模块“track”以及机器人报警与发声代码包“alarm”和“sound_play”,当“detect”通过人脸识别算法检测到可疑目标的时候,会把消息发布出来,“alarm”模块会马上接收到这个消息并且发给“sound_play”模块报警,“track”模块也会马上接收到这个消息,“track”模块同时还会接收机器人摄像头捕捉的视频消息,处理之后,跟踪到可疑目标,框选出来。“follow”模块手动编写,把目标在视野中的位置和大小信息,通过视觉的近大远小原理,转换为机器人相应的速度指令,控制机器人移动。第五层插入第四层的消息禁止模块,能马上禁止机器人当前的巡逻行为,根据视野内当前可疑目标,进行跟踪算法的计算,从而最终输出跟踪行为,通过插入到第四层的消息抑制器,把巡逻行为替换为跟踪行为,实现可疑者跟踪。
在第六层中,“remote terminal”表示与机器人通过无线通信相连的远程计算机,“manual detect”是手动检测模块,可以手动人工框选目标,通过消息抑制器,替代下层自动框选的目标,“manual con-trol”通过远程计算机的人工控制命令,控制机器人移动,通过消息抑制器,替代下层的机器人自主移动的指令。
通过以上六层行为中功能模块的组织和消息元件的插入,实现了一个智能的安保巡逻机器人应用。
5 实验
5.1 自主漫游移动机器人实验
基于提出的行为协同开发框架,实现了由Brooks最初提出的由包容模型构建的三个行为层的自主漫游移动机器人应用,控制模型如图(1)所示。
5.1.1 实验设置
如图(6)所示,表示自主漫游移动机器人实验环境设置,图(6a)的环境表示的是两个空旷的走廊当中有一个方形的障碍物,图(6b)的环境表示地图中有零散分布的障碍物。图(6)中的圆圈为机器人,绿色范围表示声呐传感器的有效范围,红色线条表示激光传感器扫描线。
为仿真机器人配置了12个声呐传感器,这12个声呐传感器总共覆盖的角度为360度,最大探测范围为3米,最小的探测范围为0.3米;配置了1个激光传感器,覆盖的角度是270度,最大探测到的距离配置为8米,最小的探测距离配置为0米。仿真环境基于ROS提供的STDR仿真器[18]构建。
5.1.2 实验结果和分析
在第1级别的行为能力之下,机器人会找到一片比较空闲区域停留在原地,直到有另外的目标向其移动。如图(7)所示,表示自主漫游移动机器人的在第2级和第3级的行为能力下的实验结果。在图(7a)和图(7b)中,機器人在第2级相应行为能力之下,会在两种地图之中作无目的漫游,而且,第2级的行为同时也会包容第1级的行为,如果将要碰到某个障碍物,例如墙壁、地图边缘,会执行主动避障的行为。在图(7c)和图(7d)当中,机器人在第3级相应行为能力之下,会通过上层的激光传感器,探索到空旷区域的位置信息,并且向其移动,完成更高的级别的自主漫游行为。同时,第1级和第2级的行为模块在第3级当中也发挥着十分重要的作用,机器人在漫游的同时也可以完成避障。如果机器人周围障碍物较多的话,就会长时间探索不到比较空旷的区域,此时,机器人行为降级,恢复到第2级的随机漫游行为。实验结果验证了本文提出的应用于移动机器人的机器人行为协同开发框架的易用性、可靠性、鲁棒性。
5.2 安保巡逻机器人实验
5.2.1 实验设置
如图(8)所示,表示安保巡逻机器人的实验环境配置。图(8a)表示本文所使用的地面移动机器人TurtleBot[19],该机器人包括一个Kobuki底盘,一个Kinect摄像头以及一台笔记本电脑。Kobuki底盘上面带有碰撞传感器,碰撞传感器可以通过压力感应原理,检测到正前方、左前方以及右前方的障碍物。Kinect传感器可以获取RGB-D信息,最大的探测距离为3.5米,最小的探测距离为1.2米。
图(8b)表示实验环境,中间有一个乒乓球桌作为障碍物,乒乓球桌四面是机器人可以通行的通道。
5.2.2 实验结果和分析
如图(9)所示,表示实际环境下的安保巡逻机器人的实验结果,图中的白色箭头表示移动机器人TurtleBot的运动轨迹,机器人在不同的控制层次之下,会展示出相应的不同行为能力,同时,高级别的行为能力会包容低级别的一部分的行为能力。
在第1级别行为能力之下,如图(9a)所示,当有目标靠近机器人的时候,机器人会逃离目标,以执行自我保护行为;
在第2级别的行为能力之下,如图(9b)所示,机器人会执行随机漫游的行为,同时保证避障,当碰撞到障碍物时候,执行一定的避障行为;
在第3级别的行为能力之下,如图(9c)所示,机器人会执行探索空旷区域的行为,例如图中机器人通过kinect传感器,探索到了空旷的可通行通道,就会大致沿着这个方向行进,从而实现智能自主的探索行为。
在第4级别的行为能力之下,如图(9d)所示,在预先建立好地图的环境当中,指定了四个巡逻点(乒乓球桌的四个角),机器人就会沿着这些巡逻点执行巡逻行为。
在第5级别的行为能力之下,如图(9e)所示,前方粘贴人脸图片的TurtleBot为可疑入侵机器人,当机器人在正常巡逻的过程当中,通过人脸检测功能,检测到入侵机器人,就会执行跟踪行为并且报警。如果可疑机器人快速逃走导致其消失在视野当中,那么机器人就会降级其行为能力,恢复巡逻功能。
在第6级别的行为能力之下,如图(9f)所示,远程终端(乒乓球桌上的笔记本电脑)通过无线网络与机器人建立通信连接,此时,在远程终端上就可以看到机器人看到的画面,远程终端之上,如果机器人无法自动识别可疑者,可以通过人工手动框选目标的方式,指定可疑目标,也可以通过手动控制功能,在远程终端上向机器人发送速度运动指令,人工远程控制机器人移动。当人工指令不发出的时候,机器人降级其行为能力,恢复到之前的巡逻行为或者自主检测跟踪行为(根据视野中有无可疑入侵者目标)。
如果此安保机器人应用通过其他移动机器人框架开发,例如基于有限状态机的SMACH[14]框架,下面与本文实验进行对比分析。在机器人运行过程中,使巡逻节点失效(关闭巡逻任务进程)。对于本文应用来说,机器人会通过视觉传感器降级执行带有探索的漫游行为(行为级别3),对环境依旧有巡逻功能,并且发现入侵者的时候,依旧会进行跟踪;对于SMACH应用来说,机器人巡逻行为会马上失效,状态转换无法被触发,整个系统瘫痪,应用不具有可靠性和鲁棒性。此外,对于其他中心仲裁的框架,例如Motor Schema、多路复用选择器等,当中心仲裁节点的运行进程意外关闭,整个系统瘫痪;本文框架把行为协同节点(消息禁止器与消息抑制器)分布到各个行为层当中,实现分布式行为仲裁,进一步提高了框架的可靠性和鲁棒性。
在机器人原型过程中,通过基于本文框架开发的安保巡逻机器人的实际实验,进一步验证了本文提出的开发框架在实际机器人的应用开发方面,具有易用性、可靠性、鲁棒性。
6 结论
多主体理论中,各个主体可以通过交互构建整体智能,基于行为的反应式多主体理论中,主体可以通过对环境的反应实现智能,包容模型是反应式体系结构的代表,具有鲁棒、容错、分布式协同的优点。机器人操作系统ROS是开源机器人软件平台,有丰富的可重用的开源机器人软件功能包。本文融合ROS与包容模型开发了一个移动机器人行为协同框架,为移动机器人开发提供了方便。本文通过使用该开发框架,分别在仿真器和实际环境中实现了自主漫游机器人和安保巡逻机器人,进一步验证了框架的开发高效性。在接下来的工作中,会把框架向多机器人扩展,研究多机器人行为协同开发框架。
参考文献
[1]栾伟玲,韩延龙,张晓霓,等,用于核救灾机器人的电机驱动器安全防护[J].机械工程学报,2017(21):9-15.
[2]陈顺立,农业机器人路径优化及轨迹跟踪研究一基于遗传算法[J]农机化研究,2017,39(8):17-21.
[3]薛金言,张斌,武瀚,智能校园巡逻安保机器人设计[J].无线互联科技,2017 (16):131-132.
[4]徐振亚,姜树海,森林消防机器人执行机构的设计与仿真[J].制造业自动化,2017(12 ):67-70.
[5]刘呈则,严智,邓景珊,等.核电站应急机器人研究现状与关键技术分析[J].核科学与工程,2013,33(1):97-105_
[6]BRUYNINCKX H_ Open robot control software: the OROCOS pro-ject [C]//Proceedings 2001 ICRA. IEEE intemational conferenceon robotics and automation( Cat.No.OICH37164).IEEE, 2001,3:2523-2528.
[7] JACKSON J.Microsoft robotics studio:a technical introduction[J]. IEEE robotics&automation magazine, 2007, 14(4):82-87.
[8]JANC C, LEE S, JUNG S, et al.OPRoS:a new component basedrobot software platform[J].ETRI Journal: 2010, 32(5 ):646-656.
[9] ANDO N,SUEHIRO T,KOTOKU T.A software platform forcomponent based RT -system development:openRTM -aist[M]//Simulation, Modeling, and Programming for Autonomous Robots.Springer Berlin Heidelberg: 2008: 87-98.
[10] QUICLEY M,CONLEY K,GERKEY B,et al.ROS: an open-source Robot Operating System[C]//ICRA Workshop on OpenSource Software. 2009, 3(3.2):5.
[11] ARKIN R C.Motor schema-based mobile robot navigation[J].The International Journal of Robotics Research, 1989,8(4):92-1 12
[12] ANTONELLI, GIANLUCA. FILIPPO ARRICHIELLO,et al.Experiments of formation control with multirobot systems using the null-space-based behavioral control [J]. IEEE Transactionson Control Systems Technology: 2009: 1173-1182.
[13]BROOKS R S.A robust layered control system for a mobile robot[J]. IEEE J, 1986,2( 1):14-23.
[14] BOHREN J, COUSINS S. The SMACH high-level executive [ROSNews][J].IEEE Rohotics&Automation Magazine: 2010, 17 (4): 18-20.
[15]KOUBAA, SRITI M F,BENNACEUR H,et al.COROS:a multi-agent software architecture for cooperative and autonomousservice robots [J]. Studies in Computational Intelligence:2015. 604:3-30.
[16] PINCIROLI C,BELTRAME G.Buzz:a programming language forrobot swarms[J].IEEE Software, 2016, 33( 4):97-100.
[17] CHANGX, CAI Z, WANGY, et al.GSDF:a generic developmentframework for swarm robotics[C]// International Conference onIntelligent Robotics and Applications. Springer,Cham,2017:659-670.
[18] MANOST,CHRIS Z,ArisT.STDR二維分布式机器人仿真器.http://wiki.ros.orgstdr_simulator[EB/OL].2014.
[19] TULLY F,MELONEE W.TurtleBot地面移动机器人实验平台.http://wiki.ros.orgRobots/TurtleBot[EB/OL]. 2017.