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