APP下载

用于多机器人的BML人机交互框架设计与实现

2020-01-14韩冰心曾志文肖军浩卢惠民雷思清

小型微型计算机系统 2019年12期
关键词:命令框架群体

李 筱,韩冰心,曾志文,肖军浩,卢惠民,雷思清

1(国防科技大学 智能科学学院, 长沙 410073)2(92665部队, 湖南 张家界 427200)

1 引 言

指挥和控制多机器人系统是一项非常有挑战性的任务.主要面临的问题是,随着机器人的增加,以及异构性复杂度的增加,系统模型复杂度急剧上升[1].系统模型复杂度的增加,会让计算量增加,交互信息膨胀.每增加一台机器人,都要频繁修改通信协议以及相关决策,才能保证正常地指挥和控制多机器人系统.

在多机器人协同控制方面,研究人员已经开展了大量的工作,Alami[2]等人提出了分布式规划的一般方法,以分布式的方式逐步合并计划;Balch和Arkin[3]开发了在不同条件下维持不同类型的编队(线形,楔形等)的框架.他们展示了编队行为如何能够可靠地形成、保持并在编队之间平稳切换.文献[4,5]在控制理论框架中研究了队形维护,特别是机器人在限制通信的情况下,维护队形的稳定性.Parker[6]提出了ALLIANCE架构,能够处理编队维护以及其他多机器人任务.Jennings[7]等人开发出一种基于Scheme语言的用于多机器人协调的分布式执行程序.文献[8]侧重于多智能体系统的监督控制,采用基于行为的控制方法:预定义一组基本行为,指挥者选择其中一个智能体,但是这种方法在面对一个更大的智能体群体,更复杂或更多的行为时是不适用的.这种方式不具备可扩展性,并且行为的增加会给指挥者带来负担.Wilson[9]等人认为更先进的方法是基于策略的控制方法,全局约束由指挥者以受控的自然语言给出,并且相应的动作由智能体自主执行.Goldman[10]和Simons[11]考虑了一种类似剧本的方法,其中一组参数化的策略是机器人已知的,而指挥者的行为就类似于一个足球教练,他有一本预定战术的书,每个球员都知道相应的战术,指挥者只需要输入指定战术即可.文献[12]中为解决机器人智能的局限性以及误指挥的问题,提出了一种实现人机智能结合的方法,它可以进行一定程度的推理,从而对错误命令进行纠正.文献[13]提出一种换位思考的方法,得到机器人的信息之后,用统计学的方法计算出机器人的行为模式,根据相应的行为模式采取对应的策略.

美国陆军开发了C2(Command and Control)系统用于美国陆军实体级仿真系统[14].他们在实际使用中发现一些缺陷,因为C2通信是数据密集型的,最关键的C2信息——指挥官的意图和命令并没有作为数据通信,而是作为一种“自由文本”或者独立文件进行通信.虽然这样的方式适合人与人之间的交流,但是不适合用于仿真系统或者机器人系统.BML(Battle Management Language)是作为这个问题的解决方案而开发的.BML广义的被定义为:一种无歧义的语言,能够做到:1、指挥和控制进行军事行动的部队和装备.2、提供共同情景感知和共同作战目标.

文献[15]中Thomas Remmersmann等人在2010年设计了一个真实机器人执行BML命令的控制系统,提出了BML任务的分解和规划系统.Marco Langerwisch[16]等人基于Robot Operating System(ROS)开发了基于BML命令的控制系统用于无人机和无人车上,在异构的集群中,无人机与无人车通过BML进行信息的共享,完成了相应的任务.他们系统的架构和Thomas Remmersmann等人的基本类似,在从高层系统分发BML指令的时候用基于ROS开发的BMLConnector将ROS与BML结合起来.

现有的工作必须预先设定好群体内具有哪些机器人,不能够动态地让机器人加入以及退出群体.并且控制命令较为繁琐,容易增加指挥者的指挥负担.本文所提出的BML框架可以有效解决上述问题,首先它可以通过构建角色树和词汇树,支持机器人动态地加入或者退出机器人群体,通过搜索角色树可以知道每个机器人的能力.另外,本文提出的BML框架可以允许指挥者输入词汇受限的自然语言,通过词汇树和相应的语法规则,将输入的自然语言转化为标准的BML命令,能够极大地减轻指挥者的指挥负担.

本文的后续章节安排如下:第2章介绍BML的概念和特点.第3章介绍本文提出的基于BML的人机交互框架,框架的工作原理以及流程.第4章主要通过三组实验来验证BML人机交互框架的优势和有效性.

2 BML(Battle Management Language)

BML是一种上下文无关语言,是基于Standard Generalized Markup Language(SGML)语言的扩展,它可以无歧义地表达指挥者的意图,也可以提供共同的作战态势和局势.通过对5W(Who,When,What,Where,Why)的描述,来表达任务具体信息.

BML的设计目标是:1)一种无歧义的命令;2)一种将机器人模块化的协议.针对这两个目标,首先解决歧义的问题,选取上下文无关的语法,规定其产生式,就能从语法上消歧.在 BML 的语法层面上,文献[17]中 Thomas Remmersmann 和 Alexander Tiderko 等人认为 BML 必须明确无歧义,为了明确无误,BML 必须被设计成为一种形式语言,形式语言是由形式语法生成句子的集合[18].在 BML 中,该语法是命令和控制词汇语法[19],并且包含 5W(Who,What,Where,When,Why)的概念.核心语法规则是将任务分配给单元.这些规则集中表达在 What 上,在构建任务的时候,需要包含至少一个What.Who表示任务分配对象和执行者,Where和When表示任务的空间和时间约束.文献[20]中,Ulrich Schade 等人对 BML 的语法进行了进一步的讨论,他们认为 BML 语法应该是:1)、上下文无关的;2)、它的词汇术语应该取自于 Joint Consultation,Command and Control Information Exchange Data Model(JC3IEDM)[20];3)、它的非终结符应该表示语义角色;4)、应该可以修复成分的顺序,使得子句在语义上消歧.

为实现机器人模块化,像搭积木一样将单个机器人组合成一个群体.本文提出一种 BML 框架,通过统一协议,限定词汇等方法,让每个机器人对应一些特定的词汇和标记.通过这种方式,可以将机器人模块化,指挥者只需要知道机器人对应的词汇就可以指挥机器人.同时,只需要在字典中加入和删除相应的词汇,就可以从系统中添加和删除机器人.

2.1 BML的特点

用BML来指挥异构的机器人群体,需要能够充分发挥异构机器人的能力,也需要方便地使得不同种类的机器人能够快速的加入群体和从群体中分离.除此之外,在某些必要的场景,需要用语音或者手势等方式来控制机器人群体.为了满足上述需求,BML需要具备以下特性:1、可以发布无歧义的指令2、BML命令可以根据需求扩展,具备可扩展性3、是用于人机交互的一种标准指令格式4、支持多通道的输入5、方便人去控制指挥机器人

2.2 BML的命令格式

为了让BML命令有较强的表达力,所有的指令都通过5W表达出来.为了使得命令尽量简单,Who对应命令执行者,What对应命令关键词,如图1所示.

图1中展示了一条让机器人A移动到坐标(200,200)的命令.其中,除了5W是固有的标记之外,其它的标记比如ID,Coordinate等,都是根据实际情况扩展的.每条标记都对应着相应的词汇集合,只有标记在词汇集合中,这条BML命令才是一条有效的命令.

3 基于BML的人机交互框架

3.1 BML交互框架简介

本节提出一种人机交互框架,在定义BML为上下文无关语言基础之上,基于开源的ROS(Robot operating system)框架开发,完成人机交互功能.该框架可以表达指挥者的抽象意图,允许指挥者发出动作级和任务级的指令.BML交互框架应用于多机器人系统中,其目的是为了让单个指挥者可以很方便地指挥和控制整个多机器人系统,让指挥者免于处理单个机器人的行动细节.

BML交互框架采取了分层模型,从上往下为输入层,接口层和行为层.输入层接收来自GUI的指令,接口层负责将GUI中的输入转化成相应的命令,行为层收到接口层发送过来的命令,将命令转化为机器人的实际行动.通过这种分层的模型,可以很方便地增加和减少机器人,即只需要在接口层中动态地改变相应的接口命令即可.本框架的GUI为一个名为Coach的节点,在第四节将介绍Coach.

BML交互框架如图2所示,图中两个共享数据库为同一个数据库.

图2 BML交互框架图Fig.2 BML interactive framework

指挥者与机器人之间通过Coach连接起来,通过Coach输入命令,再将命令转化为标准的BML命令格式.标准BML命令中具有5W元素,再将命令进行分解,将高级命令转化为机器人能够执行的指令.

考虑到多机器人系统中机器人是分布式控制的,在接口层中定义了一个共享数据库.在某些情况动态改变了某些词语或者增加,删除了机器人,集群内的其他机器人也能够知晓.某些命令可能需要机器人之间相互配合,如果不能正确的知道自身集群内机器人情况,可能会造成任务失败.当机器人执行完任务之后,会将自己的视觉、里程计等感知信息发送给接口层,接口层将感知信息聚合成标准的BML格式,作为报告返回.Coach接收到相应的报告后展示给指挥者反馈命令执行情况.

为了能充分的使用框架,机器人需要具备一定的自主能力,可以是由信息驱动的半自主机器人,本身具备一定的能力完成复杂的任务.指挥者在下达命令的时候,根据指令需求以及机器人自身情况,进行任务分配.

3.2 BML框架三要素

BML框架是一种指挥多机器人系统的通用框架,适用于不同的机器人系统,可以方便地让机器人从群体中快速接入与分离.为了达到这一目标,BML框架中使用了BML标记,词汇树与角色树,这三者构成了BML框架的三要素.

三要素都存在共享数据库中,所有机器人都共同使用着同一份数据库的数据.这个数据库是实时更新的,发布的指令与机器人传感信息的返回都是通过这个共享数据库进行数据通信,其数据交互模型如图3所示.

图3 数据交互模型Fig.3 Data model of BML framework

3.2.1 BML标记

BML标记分为两种,一种是核心标记,Who、When、What、Where、Why,另一种是自定义标记,是根据任务情况,动态添加的.其中,每个自定义标记都会被纳入到词典当中,词典中的每个词语都有相应的标记.在解析命令的时候,通过词典的标记与词语的对应关系,将BML解析成相应的命令.

3.2.2 词汇树

词汇树包含了两种词汇,战术词汇和动作词汇.其中战术词汇是根据具体任务确定的高级命令,是由动作词汇组合而成的.动作词汇包含机器人基本的动作,比如移动,避障等行为.当一个命令下达,通过搜索词汇树,来判断命令为高级命令还是低级命令,如果是低级命令则直接执行,高级命令则进行分解.

BML标准命令中,包含了5W.为了方便解析命令,框架定义Who为任务的执行者,在角色树中可以找到Who.When为执行时间,除了立即执行与定时执行之外,还能循环执行任务,例如巡逻任务,需要循环执行.Where表示任务执行者的目的地,要实现这个功能需要机器人具备全局定位能力,否则机器人无法知道自身与目的地之间的相对位置关系.Where可以用固定的坐标表示出来,也可以使用动态目标位置,当使用动态位置的时候,机器人需要对目标的位置进行估计,在进行追踪任务时,还需要保持固定的距离.What本应该用来描述任务,但是考虑到是人机交互,直接用来作为战术词汇或者动作词汇的载体.

3.2.3 角色树

图4 角色树Fig.4 Role tree

为了让机器人能够快速加入集群与从集群中分离,框架定义了角色树来实现这个功能.角色树如图4所示.

角色树与词汇树非常相似,其中,每个角色都通过动作词汇描述 出来.当一条命令下达后,在任务分配阶段,通过搜索角色树,确定哪些机器人具备能力完成相应任务,完成任务的分配.加入新机器人时,在root节点中加入以角色名字为根节点,动作词汇为子节点的子树.将角色树同步到共享数据库中,并且在共享数据库中开辟一块空间,用来给新机器人与群体进行信息交互,这样新机器人就接入到机器人群体当中了.删除角色时,在角色树中,找到角色名字的节点,进行尾递归删除,并且将共享数据库中相应内存释放掉.在实际框架中,上述操作只需要在GUI中进行简单的操作即可完成.

角色树中角色名的根节点除了作为数据之外还可以表达当前角色的状态.当机器人处于任务状态时,可以在当前节点查询到,这样在任务分配时就能避免出现冲突.

3.3 工作流程

BML交互框架是一种通用的人机框架,允许指挥者在抽象层次上表达自己的意图.在人机交互中,很自然的想法是用自然语言去控制机器人.本文在所提出的BML交互框架中实现了这种想法.

命令以自然语言的形式输入,通过中文自然语言处理,将句子进行分词,再进行语义角色标注.其中,关键词为who,when,where和what.对应于语义角色中的主语,时间状语,地点状语和谓语.在数据库内有一个总词典,经过第一次分词之后,再根据总词典进行强制分词,保证一些自造词不会被分错.通过这种方式让一段自然语言转化成为对应5W的标准BML命令.

在执行命令的流程中,BML交互框架会搜索角色树.根据角色的能力以及状态对角色分配任务,如果任务分配失败,则会将结果报告给GUI让指挥者知晓.

BML交互框架的工作特点如下:

1)根据特定任务目标,选取战术词汇,战术词汇为高级命令,如跟随、巡逻、防守等命令.

2)根据战术词汇,选取基本的动作词汇,动作词汇为低级命令,比如移动、转向等命令.

3)机器人的加入以who为根节点,动作词汇为子节点的树加入角色树中,然后同步数据库.

4)机器人的删除以who为根节点,进行尾递归删除,然后同步数据库.

4 实 验

4.1 实验背景介绍

本节将BML框架应用在实际机器人人机交互中.由于BML框架由本文首次提出,在国内外没有类似的方法去指挥和控制机器人,因此本文重点测试和分析所提出BML框架的使用效果.通过在仿真平台实验,验证其可行性;通过动态增加和删除机器人实验,证明其通用性;通过对机器人群体发送任务级命令,证明其便利性;最后,通过实物机器人人机交互实验,验证本文提出的框架的实用性.

拟使用RoboCup中型组为应用背景开展实验.设计针对足球比赛的战术词汇与动作词汇,让词汇尽量全面的覆盖球场上的所有情况.根据战术词汇与动作词汇,建立词汇树与角色树.使用简单的上下文无关语法产生式,输入无歧义的上下文无关语言作为指挥者的控制命令.对于多机器人的指挥在RoboCup中型组机器人足球比赛中有着很好的体现,由于RoboCup中型组由两种机器人组成——常规球员、守门员,并且常规球员和守门员的能力不同,可以认为这是一个异构的机器人群体.所有球员都具备全局定位,足球识别,以及共享队友位置信息等能力.常规球员拥有带球、传球和射门的能力,守门员有张开双臂防守射门的能力.

在RoboCup中,除了常规球员之外,每个球队还需要一个Coach.负责给场上球员下达相关命令以保证比赛正常进行.Coach界面如图5所示.

图5 Coach界面Fig.5 Coach interface

其中球场坐标系定义与常见笛卡尔坐标系相同,原点在球场中心,定义x正方向为进攻方向.在本实验中,假设进攻方向都朝右.仿真平台[21,22]为Gazebo,由于Gazebo中机器人位置信息都可以通过Coach显示出来,为方便展示实验效果,本文都使用Coach界面来展示实验效果.

在本实验中,定义了动作词汇如移动、抓球、射门等命令,定义了战术词汇如传球、任意球、比赛开始、比赛结束等命令.

4.2 单机器人的控制

本文所提出的BML框架具备控制单个机器人的能力与语法检查的能力.单个的足球机器人具备移动、抓球、射门等能力.在多机器人系统的指挥和控制中,首先要实现针对单个机器人的控制.本文提出的BML人机交互框架也具备该细粒度的控制能力.在仿真环境中,针对单个机器人发出移动、抓球和射门等动作级指令,让机器人完成相应的动作.仿真环境中,有一号到五号机器人,其中一号是守门员,二号到五号是常规球员.

单机器人控制的命令符合上下文无关语法,格式为 SVO,其中S为主语,表示命令执行者,V表示动词,O表示动作对象与目的.如:①指令“二号去原点”是一条合法指令,其中二号为主语S,去是动词V,原点表示动作目的O.②指令“二号去”不是一条合法指令,句子成分中没有表示动作目的的O.在Coach中输入错误的指令会返回命令不合法的错误,如图6(a)所示.

除了语法上需要合法之外,还需要机器人与动作指令都在相应的角色树与词汇树中.如:“六号去原点”不是一条合法指令,因为在角色树中并没有六号机器人,所以在解析命令合法性的时候同样也会返回命令不合法的错误,如图6(b)所示.

1https://www.trustie.net/org_document_comments/6568?organization_id=23

图6(c)中Coach发出的命令为二号去原点.在球场坐标系中,原点为球场中点,二号机器人接收到命令后移动到了球场中点.

当命令通过语法检查,并且能够在角色树和词汇树中找到相应的机器人和动作指令时,Coach就会发送命令.发送命令是将句子分解成S、V、O三个部分,一起发送到共享数据库中.所有机器人都接收共享数据库中的数据,当自身ID和共享数据库中当前命令中包含的ID相同,那么当前机器人就会根据命令执行相应的动作.

图6 合法和非法命令的展示Fig.6 Example of legal and illegal orders

4.3 动态增加和删除机器人

本文所提出的BML框架具备通用性.为验证其通用性,本实验中,先让二号机器人完成移动功能,然后再将二号机器人删除.Coach中失去相应机器人的信息,机器人无法在Coach中显示,并且由于机器人不在角色树中,传球命令也不合法.当重新加入机器人后,Coach中重新显示机器人,发送命令也可以正常响应,如图7所示.图7(a)与图7(b)中显示的是删除二号机器人前后的对比.当二号机器人删除后,Coach中无法显示.当重新将二号机器人加入后,Coach中重新显示出二号机器人.并且发送命令“二号去前点”,二号成功响应,如图7(c)中所示.前点是一个自造词汇,代表坐标(500,0).

图7 动态添加和删除机器人Fig.7 Dynamically add and remove robots

本文提出的BML人机交互框架可以动态地从群体中增加和删除机器人.框架中使用的共享数据库可以动态地申请内存空间,并且实时监听某一端口的数据.当数据库中增加一台机器人以及相应的描述,共享数据库根据描述动态申请空间.当共享数据库申请对应机器人的空间成功,即机器人加入群体成功.共享数据库中有所有机器人的描述,即所有机器人天然知道所有机器人的消息,但是只对与自己相关的命令进行处理.

本文所提出的BML人机交互框架是基于信息的框架,其中信息由BML描述,这样机器人只需要处理由BML规定的信息即可.只要机器人符合所规定的BML规范,就可以很方便地加入机器人群体或者从群体中删除.

4.4 机器人群体完成任务级命令

本文所提出的BML框架具有便利性,面对一个庞大的机器人群体,指挥者常常面临着高强度的指挥负担.在机器人自身具备一定智能的情况下,使用任务级的命令指挥机器人或者机器人群体,会使得指挥者负担大大降低.

本文提出的BML人机交互框架中的词汇树中具有战术词汇,其中战术词汇为高级词汇,需要机器人具备多种能力才能够执行.当Coach接收到战术词汇时,将战术词汇发送到共享数据库中,机器人接收到命令后搜索角色树与行为树,如果自身符合条件即接受命令.每条战术词汇都会指定机器人数量,比如传球,需要两台机器人.当接受命令的机器人达到指定机器人数量时,即可执行相应命令,完成指定任务,如图8所示.

图8 任务级命令“任意球”Fig.8 Tactical vocabulary-free kick

当发出任务级命令“任意球”后,机器人准备开出任意球,其中三号作为传球者,四号和三号作为进攻者,二号为防守者.即一条任务级的命令让场上四台机器人同时行动起来,完成相应的任务.除了在仿真系统中完成上述实验验证外,本文还在实物机器人上开展了实验研究,证明了所提出的人机交互框架的实用性.具体视频参见链接1.

4.5 对比实验

本文针对所提出的基于BML的多机器人交互控制方法和传统的机器人遥控方法开展实验对比分析.主要对比二者从命令发出到完成相同任务所需要的时间.所对比的项目为单机器人的移动和抓球,以及多机器人传接球配合.第一个实验为机器人的定点移动,从球场坐标系的(0,0)移动到(0,500),重复移动6次.第二个实验为机器人的定点抓球,机器人初始位置为(0,0),面朝x轴正方向,足球摆放在以(0,0)为圆心,半径为5m的半圆弧上,以π/6的弧度为间隔,重复抓球6次.第三个实验为机器人的传接球配合实验,两台机器人分别在(0,0)和(0,500),足球放在两台机器人正中间,即(0,250)处.由(0,0)处的机器人先抓球然后带球移动回(0,0)再传球,当另一台机器人抓住球后视为一次传接球配合完成,该配合重复执行6次.在分别使用本文提出的方法控制机器人和使用传统遥控方法控制机器人完成上述三个实验任务的情况下,完成任务所需的平均时间如表1、表2和表3所示.

表1 机器人定点移动所需时间Table 1 Time required for the robot to move

表2 机器人定点抓球所需时间Table 2 Time required for the robot to catch the ball

表3 多机器人传接球配合所需时间Table 3 Time required for the robot to pass the ball

通过上述三个实验对比,可以看出来,对单机器人的简单控制,使用传统遥控方法耗时较少,但是随着控制的复杂度增加,尤其是当涉及到多机器人系统的交互控制时,传统的方法时间效率上明显低于本文所提出的方法.在传接球配合实验中,传统方法所消耗的时间几乎是本文方法的两倍.

本文所提出的方法将更多的时间花费在解析指令上,当机器人开始响应后,所花费时间与传统单机器人控制方法相差无几.综上所述,本文所提出的方法对于多机器人交互指挥控制,相较传统方法具有明显优势,随着控制复杂度的增加,本文方法的优势还会更加明显.

5 结论与展望

本文首次提出了基于BML的人机交互框架,并且以足球机器人比赛为应用场景,定义了相应的战术词汇与动作词汇,完成了单机器人控制、机器人从群体中分离与加入、多机器人指挥控制等任务.为了让人机交互更加自然,基于BML创建相应的上下文无关语法,用更加贴近人类自然的表达方式来指挥和控制多机器人.实验结果表明本文提出的基于BML的人机交互框架是一种具有通用性的框架,可以动态地在群体中增加和减少机器人,针对单个机器人可以实现动作级的指挥控制,针对多机器人可以实现任务级的指挥控制.

本文实验中使用的机器人均为足球机器人,但是只要机器人符合相应的BML规范,使用相同的共享数据库,使用本文提出的框架都能指挥控制.即本文所提出的控制框架可以对异构的机器人通用.

本文提出的基于BML的人机交互框架只使用了简单的上下文无关语法,表达能力有限.针对此可以设计更为复杂的上下文无关语言,以拥有更强的表达能力.但是设计的语法太过于复杂,反而会造成指挥者的指挥负担.如何设计一种语言能够兼顾二者,也将成为人机交互的研究热点之一.

猜你喜欢

命令框架群体
有机框架材料的后合成交换
框架
管理Windows10的PowerShell命令行使用记录
安装和启动Docker
“群体失语”需要警惕——“为官不言”也是腐败
移防命令下达后
解析Windows10的内部命令
关于原点对称的不规则Gabor框架的构造
我国在WYO框架下面对的贸易保护现状及应对
为特殊青少年群体遮风挡雨