【正文】
Cup大賽的主要項(xiàng)目之一。其目的便是通過仿真比賽,推動(dòng)智能機(jī)器人的人機(jī)交互和自主規(guī)劃能[11]。 家庭服務(wù)仿真機(jī)器人 它有兩個(gè)輪子(可以自由移動(dòng)),手臂上有一個(gè)手爪和機(jī)器人頭部有一盤子,手爪和盤子中只能放下一個(gè)物品,它具有基本的移動(dòng),抓取和放下的能力。在這些基礎(chǔ)上,測(cè)試機(jī)器人在人機(jī)交互、資助規(guī)劃和推理方面的能力。室內(nèi)每一件物品都有相應(yīng)的物體參數(shù),如size(big/small)、color(blue/red/yellow)等等這些數(shù)據(jù)集合就叫做場(chǎng)景描述。而我們所要研究的便是對(duì)于不同的仿真環(huán)境,不同的任務(wù)指令如何能最大化的精簡(jiǎn)原子動(dòng)作,規(guī)劃行動(dòng)序列。? move(X):機(jī)器人改變當(dāng)前位置屬性,移動(dòng)到位置X。執(zhí)行效果為機(jī)器人移動(dòng)到了位置X,機(jī)器人location屬性為X,不受此原子動(dòng)作影響的其他環(huán)境描述屬性不變。執(zhí)行此原子動(dòng)作條件為:A的size屬性為small,A的location 和機(jī)器人的location相同,A 不在其他物體(例如refrigerator) 內(nèi)部,機(jī)器人hold的參數(shù)為0。? putdown(A):機(jī)器人改變hold屬性,放下物體A。執(zhí)行效果為機(jī)器人hold的參數(shù)為0,不受此原子動(dòng)作影響的其他環(huán)境描述屬性不變。執(zhí)行此原子動(dòng)作條件為:機(jī)器人的hold的參數(shù)為A的id,plate的參數(shù)為0。? fromplate(A):機(jī)器人改變hold屬性,將物體A 從盤子中拿起。執(zhí)行效果為機(jī)器人的plate的參數(shù)為0,機(jī)器人的hold的參數(shù)為A的id,不受此原子動(dòng)作影響的其他環(huán)境描述屬性不變。執(zhí)行此原子動(dòng)作條件為:機(jī)器人的location屬性和A 的location屬性相同, 機(jī)器人手抓狀態(tài)為空, 并且A 的門關(guān)閉。? close(A):機(jī)器人關(guān)上物體A。執(zhí)行效果為A 的門關(guān)閉,不受此原子動(dòng)作影響的其他環(huán)境描述屬性不變。B):機(jī)器人將size屬性為small的物體A 放到size屬性為big的B中。執(zhí)行效果為,小物體A 在B 的內(nèi)部,機(jī)器人手抓狀態(tài)為空,B的狀態(tài)不是空的,不受此原子動(dòng)作影響的其他環(huán)境描述屬性不變。B):機(jī)器人將size屬性為small的物體A從size屬性為big的B 中取出來(lái)。執(zhí)行效果為,機(jī)器人抓住小物體A, 并且A 處于B 的外部,B的狀態(tài)是空的,不受此原子動(dòng)作影響的其他環(huán)境描述屬性不變。即當(dāng)前仿真環(huán)境中所出現(xiàn)的物體及其屬性(sort、location、size、color),以及機(jī)器人的狀態(tài)(location、hold、plate)等。這些描述都是可選的,但是不是所有物體的屬性信息都是完整的,在有的任務(wù)描述中會(huì)對(duì)于相應(yīng)任務(wù)進(jìn)行補(bǔ)充。在所有場(chǎng)景描述中,有且僅有一個(gè)人,并且在所有的任務(wù)解決方案過程中人的屬性都是不變的。 color:指所有小物體的顏色。屬性為small的物體可以移動(dòng),而屬性為big的物體則不可以移動(dòng)。“小物體”機(jī)器人可以移動(dòng)的物體,location屬性經(jīng)常隨著機(jī)器人的調(diào)用而改變著。一個(gè)位置內(nèi),可以同時(shí)放置多個(gè)size為small物體,但至多只能有一個(gè)size為big“大物體”。hold、plate為0則是空的,不為0則是有物體存在的。 dooropen:某個(gè)某個(gè)size為big的物體門是開著的。任務(wù)描述分兩種形式、三種類型。三種類型為:目標(biāo)、約束和補(bǔ)充信息。例如“Put a cup on the table.”目標(biāo)的實(shí)現(xiàn)就是“ cup”的的位置屬性與“ the table”的位置屬性相同。例如“Do not pick up the yellow cup.”表示在任務(wù)完成的整個(gè)過程中機(jī)器人只能黃色以外的其他顏色的杯子。例如,“Put the green cup on the table.”但環(huán)境描述中“ green cup”沒有給出位置屬性,這時(shí)我們?cè)谌蝿?wù)描述從中可以添加如此補(bǔ)充信息“The green cup is on the bed.”繼而我們便可以對(duì)算出“green cup”的位置就在“ bed”處。命令中ins 定義如[3]:ins=task+info+cons;命令中task定義如下:task=give(human,obj1)/puton(obj1,obj2)/goto(obj1)/pickup(obj1)/putdown(obj1) /opendoor(obj1)/putin(obj1,obj2)。obj1 的size屬性為small,最終狀態(tài)為obj1的位置在human處,機(jī)器人的盤子和手爪中沒有obj1。goto(obj1):表示要求機(jī)器人移動(dòng)到obj的位置。putdown(obj1):表示將機(jī)器人的盤子或手爪中的obj1放下,最終狀態(tài)為obj1不在機(jī)器人的盤子或手爪中。putin(obj1,obj2):表示機(jī)器人將size屬性為small的obj1放到size屬性為big的obj2的內(nèi)部,最終狀態(tài)為obj1在obj2的內(nèi)部,并且obj2 處于關(guān)閉狀態(tài)。 near(obj1, obj2):表示物體size屬性為small的obj1在size屬性為big的obj2旁邊。 inside(obj1, obj2):表示size屬性為small的obj1在size屬性為big的obj2 里面。 命令中cons定義如下: cons = not task/ not info / not not info not info:表示在整個(gè)命令執(zhí)行過程中,info 所描述的情況都禁止出現(xiàn)。 自然語(yǔ)言任務(wù) 自然語(yǔ)言交互是用戶用特的英語(yǔ)定詞匯來(lái)表達(dá)任務(wù)描述的方式[4]。代詞只有用戶“me”。其中主動(dòng)動(dòng)詞含義解釋如表22 動(dòng)詞 用法含義give 一般用法為“give somebody A”或“give A to somebody”在指令交互中轉(zhuǎn) 為give(human, A)put 一般用法為“put A in/on/near/next to/down to B”,在指令交互中表示為 puton(A,B)/putin(A,B)/putdowm(A) go 一般用法為“go to A”在指令交互中表示為goto(A) pick 一般用法為“pick up A”在指令交互中表示為pickup(A)open 一般用法為“open A”在指令交互中表示為opendoor(A)?! ∪蝿?wù)描述中約束用“Do not …”,“There must (not) be …”,或者“…must(not) be …” 的方式表達(dá)。“There must (not) be” 后面一般接信息描述。正常情況下,完成一個(gè)命令獲得十分,維護(hù)一個(gè)約束獲得五分,完成一個(gè)補(bǔ)充信息十分,執(zhí)行一次move減去三分,執(zhí)行其他原子動(dòng)作減一分。 仿真比賽平臺(tái) 仿真過程中使用ChallengeServer 作為比賽平臺(tái)ChallengeServer 負(fù)責(zé)管理比賽問題集(場(chǎng)景描述和任務(wù)描述),在比賽中調(diào)用參賽程序,使其在規(guī)定的時(shí)間(5 秒)內(nèi)對(duì)一個(gè)問題求解,并對(duì)輸出的規(guī)劃結(jié)果打分,最后按總分給所有參賽程序[13]。ChallengeServer 通過加載動(dòng)態(tài)鏈接庫(kù)來(lái)調(diào)用參賽程序。比賽平臺(tái)將在Window XP 系統(tǒng)下運(yùn)行,比賽所用機(jī)器配置如下:CPU: AMD Athlon(tm) II X4 620Memory: 2GB ChallengeServer 在Windows XP 系統(tǒng)Visual Studio 2008 下用C++ 開發(fā),目前只支持裝有VS2008 的Windows 系統(tǒng),因此要運(yùn)行平臺(tái),需要先安裝VS2008ChallengeServer 通過加載各參賽隊(duì)伍生成的動(dòng)態(tài)鏈接庫(kù)(dll 文件),來(lái)調(diào)用參賽程序??梢詤⒄誄hallengeServer 源代碼中sample 文件夾下代碼。 類構(gòu)造函數(shù)的參數(shù)。對(duì)于每個(gè)問題,平臺(tái)將調(diào)用Plan()函數(shù),給予5 秒的計(jì)算時(shí)間。 dname, const char* amp。 ,來(lái)輸出相應(yīng)的規(guī)劃結(jié)果。 在測(cè)試開始前有數(shù)需要初始化,可重載Init() 函數(shù)實(shí)現(xiàn)。 ,參數(shù)為相應(yīng)的類名,將工程配置成生成動(dòng)態(tài)鏈接庫(kù)的方式,即可將相應(yīng)的程序打包成平臺(tái)可調(diào)用的動(dòng)態(tài)鏈接庫(kù)3 編程動(dòng)作序列規(guī)劃 機(jī)器人在仿真環(huán)境內(nèi)在規(guī)定時(shí)間里根據(jù)場(chǎng)景描述和任務(wù)描述規(guī)劃出結(jié)果,也就是原子動(dòng)作序列。對(duì)于任務(wù)有兩種類型一種為基本任務(wù),另一種為復(fù)合型任務(wù)。復(fù)合型任務(wù)包含若干基本任務(wù)組合,一般情況下機(jī)器人會(huì)獨(dú)立完成每一件任務(wù)。機(jī)器人通常情況下會(huì)把A先拿給人然后在把B拿給人但是這樣機(jī)器人的工作效率很低。 指令語(yǔ)言動(dòng)作規(guī)劃在求解過程中,由于程序的的先后劃分順序,對(duì)于一個(gè)問題集的求解通常是:先規(guī)劃出前面的原子動(dòng)作序列,然后再依次依據(jù)前一次的動(dòng)作序列所產(chǎn)生的場(chǎng)景描述來(lái)完成后面所有的的原子動(dòng)作序列。對(duì)于不同問題中的的場(chǎng)景描述和任務(wù)描述,我們希望的是在產(chǎn)生最少的原子動(dòng)作序列情況下,完成任務(wù)。 位置 爪子 盤子1 0 0 物體編號(hào) 種類 顏色 大小 位置 1 human big 202 desk big 303 teapoy big 324 cup green small 32 5 bottle blue small 32 在場(chǎng)景描述中機(jī)器人的屬性(location、hold、plate,)