李 筱,韓冰心,曾志文,肖軍浩,盧惠民,雷思清
1(國防科技大學(xué) 智能科學(xué)學(xué)院, 長(zhǎng)沙 410073)2(92665部隊(duì), 湖南 張家界 427200)
指揮和控制多機(jī)器人系統(tǒng)是一項(xiàng)非常有挑戰(zhàn)性的任務(wù).主要面臨的問題是,隨著機(jī)器人的增加,以及異構(gòu)性復(fù)雜度的增加,系統(tǒng)模型復(fù)雜度急劇上升[1].系統(tǒng)模型復(fù)雜度的增加,會(huì)讓計(jì)算量增加,交互信息膨脹.每增加一臺(tái)機(jī)器人,都要頻繁修改通信協(xié)議以及相關(guān)決策,才能保證正常地指揮和控制多機(jī)器人系統(tǒng).
在多機(jī)器人協(xié)同控制方面,研究人員已經(jīng)開展了大量的工作,Alami[2]等人提出了分布式規(guī)劃的一般方法,以分布式的方式逐步合并計(jì)劃;Balch和Arkin[3]開發(fā)了在不同條件下維持不同類型的編隊(duì)(線形,楔形等)的框架.他們展示了編隊(duì)行為如何能夠可靠地形成、保持并在編隊(duì)之間平穩(wěn)切換.文獻(xiàn)[4,5]在控制理論框架中研究了隊(duì)形維護(hù),特別是機(jī)器人在限制通信的情況下,維護(hù)隊(duì)形的穩(wěn)定性.Parker[6]提出了ALLIANCE架構(gòu),能夠處理編隊(duì)維護(hù)以及其他多機(jī)器人任務(wù).Jennings[7]等人開發(fā)出一種基于Scheme語言的用于多機(jī)器人協(xié)調(diào)的分布式執(zhí)行程序.文獻(xiàn)[8]側(cè)重于多智能體系統(tǒng)的監(jiān)督控制,采用基于行為的控制方法:預(yù)定義一組基本行為,指揮者選擇其中一個(gè)智能體,但是這種方法在面對(duì)一個(gè)更大的智能體群體,更復(fù)雜或更多的行為時(shí)是不適用的.這種方式不具備可擴(kuò)展性,并且行為的增加會(huì)給指揮者帶來負(fù)擔(dān).Wilson[9]等人認(rèn)為更先進(jìn)的方法是基于策略的控制方法,全局約束由指揮者以受控的自然語言給出,并且相應(yīng)的動(dòng)作由智能體自主執(zhí)行.Goldman[10]和Simons[11]考慮了一種類似劇本的方法,其中一組參數(shù)化的策略是機(jī)器人已知的,而指揮者的行為就類似于一個(gè)足球教練,他有一本預(yù)定戰(zhàn)術(shù)的書,每個(gè)球員都知道相應(yīng)的戰(zhàn)術(shù),指揮者只需要輸入指定戰(zhàn)術(shù)即可.文獻(xiàn)[12]中為解決機(jī)器人智能的局限性以及誤指揮的問題,提出了一種實(shí)現(xiàn)人機(jī)智能結(jié)合的方法,它可以進(jìn)行一定程度的推理,從而對(duì)錯(cuò)誤命令進(jìn)行糾正.文獻(xiàn)[13]提出一種換位思考的方法,得到機(jī)器人的信息之后,用統(tǒng)計(jì)學(xué)的方法計(jì)算出機(jī)器人的行為模式,根據(jù)相應(yīng)的行為模式采取對(duì)應(yīng)的策略.
美國陸軍開發(fā)了C2(Command and Control)系統(tǒng)用于美國陸軍實(shí)體級(jí)仿真系統(tǒng)[14].他們?cè)趯?shí)際使用中發(fā)現(xiàn)一些缺陷,因?yàn)镃2通信是數(shù)據(jù)密集型的,最關(guān)鍵的C2信息——指揮官的意圖和命令并沒有作為數(shù)據(jù)通信,而是作為一種“自由文本”或者獨(dú)立文件進(jìn)行通信.雖然這樣的方式適合人與人之間的交流,但是不適合用于仿真系統(tǒng)或者機(jī)器人系統(tǒng).BML(Battle Management Language)是作為這個(gè)問題的解決方案而開發(fā)的.BML廣義的被定義為:一種無歧義的語言,能夠做到:1、指揮和控制進(jìn)行軍事行動(dòng)的部隊(duì)和裝備.2、提供共同情景感知和共同作戰(zhàn)目標(biāo).
文獻(xiàn)[15]中Thomas Remmersmann等人在2010年設(shè)計(jì)了一個(gè)真實(shí)機(jī)器人執(zhí)行BML命令的控制系統(tǒng),提出了BML任務(wù)的分解和規(guī)劃系統(tǒng).Marco Langerwisch[16]等人基于Robot Operating System(ROS)開發(fā)了基于BML命令的控制系統(tǒng)用于無人機(jī)和無人車上,在異構(gòu)的集群中,無人機(jī)與無人車通過BML進(jìn)行信息的共享,完成了相應(yīng)的任務(wù).他們系統(tǒng)的架構(gòu)和Thomas Remmersmann等人的基本類似,在從高層系統(tǒng)分發(fā)BML指令的時(shí)候用基于ROS開發(fā)的BMLConnector將ROS與BML結(jié)合起來.
現(xiàn)有的工作必須預(yù)先設(shè)定好群體內(nèi)具有哪些機(jī)器人,不能夠動(dòng)態(tài)地讓機(jī)器人加入以及退出群體.并且控制命令較為繁瑣,容易增加指揮者的指揮負(fù)擔(dān).本文所提出的BML框架可以有效解決上述問題,首先它可以通過構(gòu)建角色樹和詞匯樹,支持機(jī)器人動(dòng)態(tài)地加入或者退出機(jī)器人群體,通過搜索角色樹可以知道每個(gè)機(jī)器人的能力.另外,本文提出的BML框架可以允許指揮者輸入詞匯受限的自然語言,通過詞匯樹和相應(yīng)的語法規(guī)則,將輸入的自然語言轉(zhuǎn)化為標(biāo)準(zhǔn)的BML命令,能夠極大地減輕指揮者的指揮負(fù)擔(dān).
本文的后續(xù)章節(jié)安排如下:第2章介紹BML的概念和特點(diǎn).第3章介紹本文提出的基于BML的人機(jī)交互框架,框架的工作原理以及流程.第4章主要通過三組實(shí)驗(yàn)來驗(yàn)證BML人機(jī)交互框架的優(yōu)勢(shì)和有效性.
BML是一種上下文無關(guān)語言,是基于Standard Generalized Markup Language(SGML)語言的擴(kuò)展,它可以無歧義地表達(dá)指揮者的意圖,也可以提供共同的作戰(zhàn)態(tài)勢(shì)和局勢(shì).通過對(duì)5W(Who,When,What,Where,Why)的描述,來表達(dá)任務(wù)具體信息.
BML的設(shè)計(jì)目標(biāo)是:1)一種無歧義的命令;2)一種將機(jī)器人模塊化的協(xié)議.針對(duì)這兩個(gè)目標(biāo),首先解決歧義的問題,選取上下文無關(guān)的語法,規(guī)定其產(chǎn)生式,就能從語法上消歧.在 BML 的語法層面上,文獻(xiàn)[17]中 Thomas Remmersmann 和 Alexander Tiderko 等人認(rèn)為 BML 必須明確無歧義,為了明確無誤,BML 必須被設(shè)計(jì)成為一種形式語言,形式語言是由形式語法生成句子的集合[18].在 BML 中,該語法是命令和控制詞匯語法[19],并且包含 5W(Who,What,Where,When,Why)的概念.核心語法規(guī)則是將任務(wù)分配給單元.這些規(guī)則集中表達(dá)在 What 上,在構(gòu)建任務(wù)的時(shí)候,需要包含至少一個(gè)What.Who表示任務(wù)分配對(duì)象和執(zhí)行者,Where和When表示任務(wù)的空間和時(shí)間約束.文獻(xiàn)[20]中,Ulrich Schade 等人對(duì) BML 的語法進(jìn)行了進(jìn)一步的討論,他們認(rèn)為 BML 語法應(yīng)該是:1)、上下文無關(guān)的;2)、它的詞匯術(shù)語應(yīng)該取自于 Joint Consultation,Command and Control Information Exchange Data Model(JC3IEDM)[20];3)、它的非終結(jié)符應(yīng)該表示語義角色;4)、應(yīng)該可以修復(fù)成分的順序,使得子句在語義上消歧.
為實(shí)現(xiàn)機(jī)器人模塊化,像搭積木一樣將單個(gè)機(jī)器人組合成一個(gè)群體.本文提出一種 BML 框架,通過統(tǒng)一協(xié)議,限定詞匯等方法,讓每個(gè)機(jī)器人對(duì)應(yīng)一些特定的詞匯和標(biāo)記.通過這種方式,可以將機(jī)器人模塊化,指揮者只需要知道機(jī)器人對(duì)應(yīng)的詞匯就可以指揮機(jī)器人.同時(shí),只需要在字典中加入和刪除相應(yīng)的詞匯,就可以從系統(tǒng)中添加和刪除機(jī)器人.
用BML來指揮異構(gòu)的機(jī)器人群體,需要能夠充分發(fā)揮異構(gòu)機(jī)器人的能力,也需要方便地使得不同種類的機(jī)器人能夠快速的加入群體和從群體中分離.除此之外,在某些必要的場(chǎng)景,需要用語音或者手勢(shì)等方式來控制機(jī)器人群體.為了滿足上述需求,BML需要具備以下特性:1、可以發(fā)布無歧義的指令2、BML命令可以根據(jù)需求擴(kuò)展,具備可擴(kuò)展性3、是用于人機(jī)交互的一種標(biāo)準(zhǔn)指令格式4、支持多通道的輸入5、方便人去控制指揮機(jī)器人
為了讓BML命令有較強(qiáng)的表達(dá)力,所有的指令都通過5W表達(dá)出來.為了使得命令盡量簡(jiǎn)單,Who對(duì)應(yīng)命令執(zhí)行者,What對(duì)應(yīng)命令關(guān)鍵詞,如圖1所示.
圖1中展示了一條讓機(jī)器人A移動(dòng)到坐標(biāo)(200,200)的命令.其中,除了5W是固有的標(biāo)記之外,其它的標(biāo)記比如ID,Coordinate等,都是根據(jù)實(shí)際情況擴(kuò)展的.每條標(biāo)記都對(duì)應(yīng)著相應(yīng)的詞匯集合,只有標(biāo)記在詞匯集合中,這條BML命令才是一條有效的命令.
本節(jié)提出一種人機(jī)交互框架,在定義BML為上下文無關(guān)語言基礎(chǔ)之上,基于開源的ROS(Robot operating system)框架開發(fā),完成人機(jī)交互功能.該框架可以表達(dá)指揮者的抽象意圖,允許指揮者發(fā)出動(dòng)作級(jí)和任務(wù)級(jí)的指令.BML交互框架應(yīng)用于多機(jī)器人系統(tǒng)中,其目的是為了讓單個(gè)指揮者可以很方便地指揮和控制整個(gè)多機(jī)器人系統(tǒng),讓指揮者免于處理單個(gè)機(jī)器人的行動(dòng)細(xì)節(jié).
BML交互框架采取了分層模型,從上往下為輸入層,接口層和行為層.輸入層接收來自GUI的指令,接口層負(fù)責(zé)將GUI中的輸入轉(zhuǎn)化成相應(yīng)的命令,行為層收到接口層發(fā)送過來的命令,將命令轉(zhuǎn)化為機(jī)器人的實(shí)際行動(dòng).通過這種分層的模型,可以很方便地增加和減少機(jī)器人,即只需要在接口層中動(dòng)態(tài)地改變相應(yīng)的接口命令即可.本框架的GUI為一個(gè)名為Coach的節(jié)點(diǎn),在第四節(jié)將介紹Coach.
BML交互框架如圖2所示,圖中兩個(gè)共享數(shù)據(jù)庫為同一個(gè)數(shù)據(jù)庫.
圖2 BML交互框架圖Fig.2 BML interactive framework
指揮者與機(jī)器人之間通過Coach連接起來,通過Coach輸入命令,再將命令轉(zhuǎn)化為標(biāo)準(zhǔn)的BML命令格式.標(biāo)準(zhǔn)BML命令中具有5W元素,再將命令進(jìn)行分解,將高級(jí)命令轉(zhuǎn)化為機(jī)器人能夠執(zhí)行的指令.
考慮到多機(jī)器人系統(tǒng)中機(jī)器人是分布式控制的,在接口層中定義了一個(gè)共享數(shù)據(jù)庫.在某些情況動(dòng)態(tài)改變了某些詞語或者增加,刪除了機(jī)器人,集群內(nèi)的其他機(jī)器人也能夠知曉.某些命令可能需要機(jī)器人之間相互配合,如果不能正確的知道自身集群內(nèi)機(jī)器人情況,可能會(huì)造成任務(wù)失敗.當(dāng)機(jī)器人執(zhí)行完任務(wù)之后,會(huì)將自己的視覺、里程計(jì)等感知信息發(fā)送給接口層,接口層將感知信息聚合成標(biāo)準(zhǔn)的BML格式,作為報(bào)告返回.Coach接收到相應(yīng)的報(bào)告后展示給指揮者反饋命令執(zhí)行情況.
為了能充分的使用框架,機(jī)器人需要具備一定的自主能力,可以是由信息驅(qū)動(dòng)的半自主機(jī)器人,本身具備一定的能力完成復(fù)雜的任務(wù).指揮者在下達(dá)命令的時(shí)候,根據(jù)指令需求以及機(jī)器人自身情況,進(jìn)行任務(wù)分配.
BML框架是一種指揮多機(jī)器人系統(tǒng)的通用框架,適用于不同的機(jī)器人系統(tǒng),可以方便地讓機(jī)器人從群體中快速接入與分離.為了達(dá)到這一目標(biāo),BML框架中使用了BML標(biāo)記,詞匯樹與角色樹,這三者構(gòu)成了BML框架的三要素.
三要素都存在共享數(shù)據(jù)庫中,所有機(jī)器人都共同使用著同一份數(shù)據(jù)庫的數(shù)據(jù).這個(gè)數(shù)據(jù)庫是實(shí)時(shí)更新的,發(fā)布的指令與機(jī)器人傳感信息的返回都是通過這個(gè)共享數(shù)據(jù)庫進(jìn)行數(shù)據(jù)通信,其數(shù)據(jù)交互模型如圖3所示.
圖3 數(shù)據(jù)交互模型Fig.3 Data model of BML framework
3.2.1 BML標(biāo)記
BML標(biāo)記分為兩種,一種是核心標(biāo)記,Who、When、What、Where、Why,另一種是自定義標(biāo)記,是根據(jù)任務(wù)情況,動(dòng)態(tài)添加的.其中,每個(gè)自定義標(biāo)記都會(huì)被納入到詞典當(dāng)中,詞典中的每個(gè)詞語都有相應(yīng)的標(biāo)記.在解析命令的時(shí)候,通過詞典的標(biāo)記與詞語的對(duì)應(yīng)關(guān)系,將BML解析成相應(yīng)的命令.
3.2.2 詞匯樹
詞匯樹包含了兩種詞匯,戰(zhàn)術(shù)詞匯和動(dòng)作詞匯.其中戰(zhàn)術(shù)詞匯是根據(jù)具體任務(wù)確定的高級(jí)命令,是由動(dòng)作詞匯組合而成的.動(dòng)作詞匯包含機(jī)器人基本的動(dòng)作,比如移動(dòng),避障等行為.當(dāng)一個(gè)命令下達(dá),通過搜索詞匯樹,來判斷命令為高級(jí)命令還是低級(jí)命令,如果是低級(jí)命令則直接執(zhí)行,高級(jí)命令則進(jìn)行分解.
BML標(biāo)準(zhǔn)命令中,包含了5W.為了方便解析命令,框架定義Who為任務(wù)的執(zhí)行者,在角色樹中可以找到Who.When為執(zhí)行時(shí)間,除了立即執(zhí)行與定時(shí)執(zhí)行之外,還能循環(huán)執(zhí)行任務(wù),例如巡邏任務(wù),需要循環(huán)執(zhí)行.Where表示任務(wù)執(zhí)行者的目的地,要實(shí)現(xiàn)這個(gè)功能需要機(jī)器人具備全局定位能力,否則機(jī)器人無法知道自身與目的地之間的相對(duì)位置關(guān)系.Where可以用固定的坐標(biāo)表示出來,也可以使用動(dòng)態(tài)目標(biāo)位置,當(dāng)使用動(dòng)態(tài)位置的時(shí)候,機(jī)器人需要對(duì)目標(biāo)的位置進(jìn)行估計(jì),在進(jìn)行追蹤任務(wù)時(shí),還需要保持固定的距離.What本應(yīng)該用來描述任務(wù),但是考慮到是人機(jī)交互,直接用來作為戰(zhàn)術(shù)詞匯或者動(dòng)作詞匯的載體.
3.2.3 角色樹
圖4 角色樹Fig.4 Role tree
為了讓機(jī)器人能夠快速加入集群與從集群中分離,框架定義了角色樹來實(shí)現(xiàn)這個(gè)功能.角色樹如圖4所示.
角色樹與詞匯樹非常相似,其中,每個(gè)角色都通過動(dòng)作詞匯描述 出來.當(dāng)一條命令下達(dá)后,在任務(wù)分配階段,通過搜索角色樹,確定哪些機(jī)器人具備能力完成相應(yīng)任務(wù),完成任務(wù)的分配.加入新機(jī)器人時(shí),在root節(jié)點(diǎn)中加入以角色名字為根節(jié)點(diǎn),動(dòng)作詞匯為子節(jié)點(diǎn)的子樹.將角色樹同步到共享數(shù)據(jù)庫中,并且在共享數(shù)據(jù)庫中開辟一塊空間,用來給新機(jī)器人與群體進(jìn)行信息交互,這樣新機(jī)器人就接入到機(jī)器人群體當(dāng)中了.刪除角色時(shí),在角色樹中,找到角色名字的節(jié)點(diǎn),進(jìn)行尾遞歸刪除,并且將共享數(shù)據(jù)庫中相應(yīng)內(nèi)存釋放掉.在實(shí)際框架中,上述操作只需要在GUI中進(jìn)行簡(jiǎn)單的操作即可完成.
角色樹中角色名的根節(jié)點(diǎn)除了作為數(shù)據(jù)之外還可以表達(dá)當(dāng)前角色的狀態(tài).當(dāng)機(jī)器人處于任務(wù)狀態(tài)時(shí),可以在當(dāng)前節(jié)點(diǎn)查詢到,這樣在任務(wù)分配時(shí)就能避免出現(xiàn)沖突.
BML交互框架是一種通用的人機(jī)框架,允許指揮者在抽象層次上表達(dá)自己的意圖.在人機(jī)交互中,很自然的想法是用自然語言去控制機(jī)器人.本文在所提出的BML交互框架中實(shí)現(xiàn)了這種想法.
命令以自然語言的形式輸入,通過中文自然語言處理,將句子進(jìn)行分詞,再進(jìn)行語義角色標(biāo)注.其中,關(guān)鍵詞為who,when,where和what.對(duì)應(yīng)于語義角色中的主語,時(shí)間狀語,地點(diǎn)狀語和謂語.在數(shù)據(jù)庫內(nèi)有一個(gè)總詞典,經(jīng)過第一次分詞之后,再根據(jù)總詞典進(jìn)行強(qiáng)制分詞,保證一些自造詞不會(huì)被分錯(cuò).通過這種方式讓一段自然語言轉(zhuǎn)化成為對(duì)應(yīng)5W的標(biāo)準(zhǔn)BML命令.
在執(zhí)行命令的流程中,BML交互框架會(huì)搜索角色樹.根據(jù)角色的能力以及狀態(tài)對(duì)角色分配任務(wù),如果任務(wù)分配失敗,則會(huì)將結(jié)果報(bào)告給GUI讓指揮者知曉.
BML交互框架的工作特點(diǎn)如下:
1)根據(jù)特定任務(wù)目標(biāo),選取戰(zhàn)術(shù)詞匯,戰(zhàn)術(shù)詞匯為高級(jí)命令,如跟隨、巡邏、防守等命令.
2)根據(jù)戰(zhàn)術(shù)詞匯,選取基本的動(dòng)作詞匯,動(dòng)作詞匯為低級(jí)命令,比如移動(dòng)、轉(zhuǎn)向等命令.
3)機(jī)器人的加入以who為根節(jié)點(diǎn),動(dòng)作詞匯為子節(jié)點(diǎn)的樹加入角色樹中,然后同步數(shù)據(jù)庫.
4)機(jī)器人的刪除以who為根節(jié)點(diǎn),進(jìn)行尾遞歸刪除,然后同步數(shù)據(jù)庫.
本節(jié)將BML框架應(yīng)用在實(shí)際機(jī)器人人機(jī)交互中.由于BML框架由本文首次提出,在國內(nèi)外沒有類似的方法去指揮和控制機(jī)器人,因此本文重點(diǎn)測(cè)試和分析所提出BML框架的使用效果.通過在仿真平臺(tái)實(shí)驗(yàn),驗(yàn)證其可行性;通過動(dòng)態(tài)增加和刪除機(jī)器人實(shí)驗(yàn),證明其通用性;通過對(duì)機(jī)器人群體發(fā)送任務(wù)級(jí)命令,證明其便利性;最后,通過實(shí)物機(jī)器人人機(jī)交互實(shí)驗(yàn),驗(yàn)證本文提出的框架的實(shí)用性.
擬使用RoboCup中型組為應(yīng)用背景開展實(shí)驗(yàn).設(shè)計(jì)針對(duì)足球比賽的戰(zhàn)術(shù)詞匯與動(dòng)作詞匯,讓詞匯盡量全面的覆蓋球場(chǎng)上的所有情況.根據(jù)戰(zhàn)術(shù)詞匯與動(dòng)作詞匯,建立詞匯樹與角色樹.使用簡(jiǎn)單的上下文無關(guān)語法產(chǎn)生式,輸入無歧義的上下文無關(guān)語言作為指揮者的控制命令.對(duì)于多機(jī)器人的指揮在RoboCup中型組機(jī)器人足球比賽中有著很好的體現(xiàn),由于RoboCup中型組由兩種機(jī)器人組成——常規(guī)球員、守門員,并且常規(guī)球員和守門員的能力不同,可以認(rèn)為這是一個(gè)異構(gòu)的機(jī)器人群體.所有球員都具備全局定位,足球識(shí)別,以及共享隊(duì)友位置信息等能力.常規(guī)球員擁有帶球、傳球和射門的能力,守門員有張開雙臂防守射門的能力.
在RoboCup中,除了常規(guī)球員之外,每個(gè)球隊(duì)還需要一個(gè)Coach.負(fù)責(zé)給場(chǎng)上球員下達(dá)相關(guān)命令以保證比賽正常進(jìn)行.Coach界面如圖5所示.
圖5 Coach界面Fig.5 Coach interface
其中球場(chǎng)坐標(biāo)系定義與常見笛卡爾坐標(biāo)系相同,原點(diǎn)在球場(chǎng)中心,定義x正方向?yàn)檫M(jìn)攻方向.在本實(shí)驗(yàn)中,假設(shè)進(jìn)攻方向都朝右.仿真平臺(tái)[21,22]為Gazebo,由于Gazebo中機(jī)器人位置信息都可以通過Coach顯示出來,為方便展示實(shí)驗(yàn)效果,本文都使用Coach界面來展示實(shí)驗(yàn)效果.
在本實(shí)驗(yàn)中,定義了動(dòng)作詞匯如移動(dòng)、抓球、射門等命令,定義了戰(zhàn)術(shù)詞匯如傳球、任意球、比賽開始、比賽結(jié)束等命令.
本文所提出的BML框架具備控制單個(gè)機(jī)器人的能力與語法檢查的能力.單個(gè)的足球機(jī)器人具備移動(dòng)、抓球、射門等能力.在多機(jī)器人系統(tǒng)的指揮和控制中,首先要實(shí)現(xiàn)針對(duì)單個(gè)機(jī)器人的控制.本文提出的BML人機(jī)交互框架也具備該細(xì)粒度的控制能力.在仿真環(huán)境中,針對(duì)單個(gè)機(jī)器人發(fā)出移動(dòng)、抓球和射門等動(dòng)作級(jí)指令,讓機(jī)器人完成相應(yīng)的動(dòng)作.仿真環(huán)境中,有一號(hào)到五號(hào)機(jī)器人,其中一號(hào)是守門員,二號(hào)到五號(hào)是常規(guī)球員.
單機(jī)器人控制的命令符合上下文無關(guān)語法,格式為 SVO,其中S為主語,表示命令執(zhí)行者,V表示動(dòng)詞,O表示動(dòng)作對(duì)象與目的.如:①指令“二號(hào)去原點(diǎn)”是一條合法指令,其中二號(hào)為主語S,去是動(dòng)詞V,原點(diǎn)表示動(dòng)作目的O.②指令“二號(hào)去”不是一條合法指令,句子成分中沒有表示動(dòng)作目的的O.在Coach中輸入錯(cuò)誤的指令會(huì)返回命令不合法的錯(cuò)誤,如圖6(a)所示.
除了語法上需要合法之外,還需要機(jī)器人與動(dòng)作指令都在相應(yīng)的角色樹與詞匯樹中.如:“六號(hào)去原點(diǎn)”不是一條合法指令,因?yàn)樵诮巧珮渲胁]有六號(hào)機(jī)器人,所以在解析命令合法性的時(shí)候同樣也會(huì)返回命令不合法的錯(cuò)誤,如圖6(b)所示.
1https://www.trustie.net/org_document_comments/6568?organization_id=23
圖6(c)中Coach發(fā)出的命令為二號(hào)去原點(diǎn).在球場(chǎng)坐標(biāo)系中,原點(diǎn)為球場(chǎng)中點(diǎn),二號(hào)機(jī)器人接收到命令后移動(dòng)到了球場(chǎng)中點(diǎn).
當(dāng)命令通過語法檢查,并且能夠在角色樹和詞匯樹中找到相應(yīng)的機(jī)器人和動(dòng)作指令時(shí),Coach就會(huì)發(fā)送命令.發(fā)送命令是將句子分解成S、V、O三個(gè)部分,一起發(fā)送到共享數(shù)據(jù)庫中.所有機(jī)器人都接收共享數(shù)據(jù)庫中的數(shù)據(jù),當(dāng)自身ID和共享數(shù)據(jù)庫中當(dāng)前命令中包含的ID相同,那么當(dāng)前機(jī)器人就會(huì)根據(jù)命令執(zhí)行相應(yīng)的動(dòng)作.
圖6 合法和非法命令的展示Fig.6 Example of legal and illegal orders
本文所提出的BML框架具備通用性.為驗(yàn)證其通用性,本實(shí)驗(yàn)中,先讓二號(hào)機(jī)器人完成移動(dòng)功能,然后再將二號(hào)機(jī)器人刪除.Coach中失去相應(yīng)機(jī)器人的信息,機(jī)器人無法在Coach中顯示,并且由于機(jī)器人不在角色樹中,傳球命令也不合法.當(dāng)重新加入機(jī)器人后,Coach中重新顯示機(jī)器人,發(fā)送命令也可以正常響應(yīng),如圖7所示.圖7(a)與圖7(b)中顯示的是刪除二號(hào)機(jī)器人前后的對(duì)比.當(dāng)二號(hào)機(jī)器人刪除后,Coach中無法顯示.當(dāng)重新將二號(hào)機(jī)器人加入后,Coach中重新顯示出二號(hào)機(jī)器人.并且發(fā)送命令“二號(hào)去前點(diǎn)”,二號(hào)成功響應(yīng),如圖7(c)中所示.前點(diǎn)是一個(gè)自造詞匯,代表坐標(biāo)(500,0).
圖7 動(dòng)態(tài)添加和刪除機(jī)器人Fig.7 Dynamically add and remove robots
本文提出的BML人機(jī)交互框架可以動(dòng)態(tài)地從群體中增加和刪除機(jī)器人.框架中使用的共享數(shù)據(jù)庫可以動(dòng)態(tài)地申請(qǐng)內(nèi)存空間,并且實(shí)時(shí)監(jiān)聽某一端口的數(shù)據(jù).當(dāng)數(shù)據(jù)庫中增加一臺(tái)機(jī)器人以及相應(yīng)的描述,共享數(shù)據(jù)庫根據(jù)描述動(dòng)態(tài)申請(qǐng)空間.當(dāng)共享數(shù)據(jù)庫申請(qǐng)對(duì)應(yīng)機(jī)器人的空間成功,即機(jī)器人加入群體成功.共享數(shù)據(jù)庫中有所有機(jī)器人的描述,即所有機(jī)器人天然知道所有機(jī)器人的消息,但是只對(duì)與自己相關(guān)的命令進(jìn)行處理.
本文所提出的BML人機(jī)交互框架是基于信息的框架,其中信息由BML描述,這樣機(jī)器人只需要處理由BML規(guī)定的信息即可.只要機(jī)器人符合所規(guī)定的BML規(guī)范,就可以很方便地加入機(jī)器人群體或者從群體中刪除.
本文所提出的BML框架具有便利性,面對(duì)一個(gè)龐大的機(jī)器人群體,指揮者常常面臨著高強(qiáng)度的指揮負(fù)擔(dān).在機(jī)器人自身具備一定智能的情況下,使用任務(wù)級(jí)的命令指揮機(jī)器人或者機(jī)器人群體,會(huì)使得指揮者負(fù)擔(dān)大大降低.
本文提出的BML人機(jī)交互框架中的詞匯樹中具有戰(zhàn)術(shù)詞匯,其中戰(zhàn)術(shù)詞匯為高級(jí)詞匯,需要機(jī)器人具備多種能力才能夠執(zhí)行.當(dāng)Coach接收到戰(zhàn)術(shù)詞匯時(shí),將戰(zhàn)術(shù)詞匯發(fā)送到共享數(shù)據(jù)庫中,機(jī)器人接收到命令后搜索角色樹與行為樹,如果自身符合條件即接受命令.每條戰(zhàn)術(shù)詞匯都會(huì)指定機(jī)器人數(shù)量,比如傳球,需要兩臺(tái)機(jī)器人.當(dāng)接受命令的機(jī)器人達(dá)到指定機(jī)器人數(shù)量時(shí),即可執(zhí)行相應(yīng)命令,完成指定任務(wù),如圖8所示.
圖8 任務(wù)級(jí)命令“任意球”Fig.8 Tactical vocabulary-free kick
當(dāng)發(fā)出任務(wù)級(jí)命令“任意球”后,機(jī)器人準(zhǔn)備開出任意球,其中三號(hào)作為傳球者,四號(hào)和三號(hào)作為進(jìn)攻者,二號(hào)為防守者.即一條任務(wù)級(jí)的命令讓場(chǎng)上四臺(tái)機(jī)器人同時(shí)行動(dòng)起來,完成相應(yīng)的任務(wù).除了在仿真系統(tǒng)中完成上述實(shí)驗(yàn)驗(yàn)證外,本文還在實(shí)物機(jī)器人上開展了實(shí)驗(yàn)研究,證明了所提出的人機(jī)交互框架的實(shí)用性.具體視頻參見鏈接1.
本文針對(duì)所提出的基于BML的多機(jī)器人交互控制方法和傳統(tǒng)的機(jī)器人遙控方法開展實(shí)驗(yàn)對(duì)比分析.主要對(duì)比二者從命令發(fā)出到完成相同任務(wù)所需要的時(shí)間.所對(duì)比的項(xiàng)目為單機(jī)器人的移動(dòng)和抓球,以及多機(jī)器人傳接球配合.第一個(gè)實(shí)驗(yàn)為機(jī)器人的定點(diǎn)移動(dòng),從球場(chǎng)坐標(biāo)系的(0,0)移動(dòng)到(0,500),重復(fù)移動(dòng)6次.第二個(gè)實(shí)驗(yàn)為機(jī)器人的定點(diǎn)抓球,機(jī)器人初始位置為(0,0),面朝x軸正方向,足球擺放在以(0,0)為圓心,半徑為5m的半圓弧上,以π/6的弧度為間隔,重復(fù)抓球6次.第三個(gè)實(shí)驗(yàn)為機(jī)器人的傳接球配合實(shí)驗(yàn),兩臺(tái)機(jī)器人分別在(0,0)和(0,500),足球放在兩臺(tái)機(jī)器人正中間,即(0,250)處.由(0,0)處的機(jī)器人先抓球然后帶球移動(dòng)回(0,0)再傳球,當(dāng)另一臺(tái)機(jī)器人抓住球后視為一次傳接球配合完成,該配合重復(fù)執(zhí)行6次.在分別使用本文提出的方法控制機(jī)器人和使用傳統(tǒng)遙控方法控制機(jī)器人完成上述三個(gè)實(shí)驗(yàn)任務(wù)的情況下,完成任務(wù)所需的平均時(shí)間如表1、表2和表3所示.
表1 機(jī)器人定點(diǎn)移動(dòng)所需時(shí)間Table 1 Time required for the robot to move
表2 機(jī)器人定點(diǎn)抓球所需時(shí)間Table 2 Time required for the robot to catch the ball
表3 多機(jī)器人傳接球配合所需時(shí)間Table 3 Time required for the robot to pass the ball
通過上述三個(gè)實(shí)驗(yàn)對(duì)比,可以看出來,對(duì)單機(jī)器人的簡(jiǎn)單控制,使用傳統(tǒng)遙控方法耗時(shí)較少,但是隨著控制的復(fù)雜度增加,尤其是當(dāng)涉及到多機(jī)器人系統(tǒng)的交互控制時(shí),傳統(tǒng)的方法時(shí)間效率上明顯低于本文所提出的方法.在傳接球配合實(shí)驗(yàn)中,傳統(tǒng)方法所消耗的時(shí)間幾乎是本文方法的兩倍.
本文所提出的方法將更多的時(shí)間花費(fèi)在解析指令上,當(dāng)機(jī)器人開始響應(yīng)后,所花費(fèi)時(shí)間與傳統(tǒng)單機(jī)器人控制方法相差無幾.綜上所述,本文所提出的方法對(duì)于多機(jī)器人交互指揮控制,相較傳統(tǒng)方法具有明顯優(yōu)勢(shì),隨著控制復(fù)雜度的增加,本文方法的優(yōu)勢(shì)還會(huì)更加明顯.
本文首次提出了基于BML的人機(jī)交互框架,并且以足球機(jī)器人比賽為應(yīng)用場(chǎng)景,定義了相應(yīng)的戰(zhàn)術(shù)詞匯與動(dòng)作詞匯,完成了單機(jī)器人控制、機(jī)器人從群體中分離與加入、多機(jī)器人指揮控制等任務(wù).為了讓人機(jī)交互更加自然,基于BML創(chuàng)建相應(yīng)的上下文無關(guān)語法,用更加貼近人類自然的表達(dá)方式來指揮和控制多機(jī)器人.實(shí)驗(yàn)結(jié)果表明本文提出的基于BML的人機(jī)交互框架是一種具有通用性的框架,可以動(dòng)態(tài)地在群體中增加和減少機(jī)器人,針對(duì)單個(gè)機(jī)器人可以實(shí)現(xiàn)動(dòng)作級(jí)的指揮控制,針對(duì)多機(jī)器人可以實(shí)現(xiàn)任務(wù)級(jí)的指揮控制.
本文實(shí)驗(yàn)中使用的機(jī)器人均為足球機(jī)器人,但是只要機(jī)器人符合相應(yīng)的BML規(guī)范,使用相同的共享數(shù)據(jù)庫,使用本文提出的框架都能指揮控制.即本文所提出的控制框架可以對(duì)異構(gòu)的機(jī)器人通用.
本文提出的基于BML的人機(jī)交互框架只使用了簡(jiǎn)單的上下文無關(guān)語法,表達(dá)能力有限.針對(duì)此可以設(shè)計(jì)更為復(fù)雜的上下文無關(guān)語言,以擁有更強(qiáng)的表達(dá)能力.但是設(shè)計(jì)的語法太過于復(fù)雜,反而會(huì)造成指揮者的指揮負(fù)擔(dān).如何設(shè)計(jì)一種語言能夠兼顧二者,也將成為人機(jī)交互的研究熱點(diǎn)之一.