摘 要 隨著智能信息技術(shù)的發(fā)展,它已經(jīng)廣泛的應(yīng)用于各個(gè)領(lǐng)域。而智能AGENT又是智能空間中最豐富的因素。因此對(duì)智能AGENT動(dòng)作行為的研究是當(dāng)前的一個(gè)熱點(diǎn)。本文借助ConGolog作為智能AGENT動(dòng)作規(guī)劃,并利用H_anim規(guī)范設(shè)計(jì)出智能AGENT三維實(shí)體模型,并且最終利用VRML技術(shù)將智能AGENT動(dòng)作行為規(guī)劃的結(jié)果在虛擬現(xiàn)實(shí)環(huán)境中驗(yàn)證其可行性。
關(guān)鍵詞 智能;agent;ConGolog;H_anim
中圖分類號(hào):TP18 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-7597(2014)19-0069-03
智能agent的動(dòng)作描述涉及到運(yùn)動(dòng)學(xué),機(jī)器人學(xué),生物力學(xué)等多個(gè)學(xué)科,這引起了很多學(xué)者的研究興趣,3D動(dòng)畫中智能agent技術(shù)也由純粹的理論研究逐漸走向?qū)嶋H應(yīng)用,它在醫(yī)學(xué)、生物學(xué)、軍事、航天、體育、汽車、藝術(shù)等相關(guān)領(lǐng)域發(fā)揮越來越重要的作用,本文采用web3d協(xié)會(huì)的H_anim規(guī)范設(shè)計(jì)出智能agent的模型。運(yùn)用ConGolog進(jìn)行動(dòng)作規(guī)劃,以達(dá)到自動(dòng)產(chǎn)生動(dòng)作序列的目的。
DLP(distributed logic programming)是一種prolog語言的面向?qū)ο蟮臄U(kuò)展語言,具有面向?qū)ο?,并行,分布和邏輯程序設(shè)計(jì)的特性,并且能夠很好同三維建模語言VRML結(jié)合在一起,本文通過DLP來對(duì)智能AGENT行為動(dòng)作規(guī)劃進(jìn)行仿真。
本文內(nèi)容主要包括智能agent建模,動(dòng)作規(guī)劃,系統(tǒng)仿真,最后是結(jié)論及未來工作的展望。
1 智能agent建模
我們參照H-Anim標(biāo)準(zhǔn)(VRML的一個(gè)子標(biāo)準(zhǔn)),忽略面部和手部的定義,將虛擬人表示16個(gè)骨骼段(Segment)的合成,骨骼段之間由節(jié)點(diǎn)相連。這些身體部分之間并不存在包含關(guān)系(在H-Anim標(biāo)準(zhǔn)中除了根節(jié)點(diǎn)HumanoidRoot以外,每個(gè)節(jié)點(diǎn)都是另外一個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn))。這些骨骼段主要有:chest, pelvis, head, neck, l_upperarm, l_forearm, l_hand, l_thigh, l_calf, l_foot, r_upperarm, r_forearm, r_hand, r_thigh, r_calf, r_foot 。本文的人體組織結(jié)構(gòu)如圖1所示。
圖1 身體節(jié)點(diǎn)圖
虛擬人動(dòng)作之間的帶動(dòng)關(guān)系。根據(jù)真實(shí)世界中人的運(yùn)動(dòng)規(guī)律,身體的一個(gè)部分的動(dòng)作要帶動(dòng)其他相關(guān)的身體部分,在H-Anim標(biāo)準(zhǔn)中,身體的各個(gè)部分之間是樹型的包含關(guān)系,例如左手腕(l_wrist)是包含在左肘(l_elbow)中的,而左肘則包含在左肩(l_shoulder)中的,這樣,左肩的動(dòng)作自然包含了左肘和左手腕的動(dòng)作,這樣的定義對(duì)于實(shí)現(xiàn)身體各部分的動(dòng)作的帶動(dòng)關(guān)系有很大方便,但是確給動(dòng)作的刪減造成很大困難。而在本文的虛擬人中,這些節(jié)點(diǎn)沒有包含與被包含的關(guān)系,本文通過定義他們之間的關(guān)系來實(shí)現(xiàn)動(dòng)作之間的帶動(dòng)關(guān)系,在默認(rèn)時(shí)他們的動(dòng)作之間是都是有帶動(dòng)關(guān)系的,在需要?jiǎng)h減動(dòng)作的時(shí)候,例如需要根據(jù)一個(gè)有手臂動(dòng)作和腿部動(dòng)作的走的動(dòng)作來定義一個(gè)沒有手臂動(dòng)作只有腿部動(dòng)作的走的動(dòng)作時(shí),就可以通過去掉手臂的帶動(dòng)關(guān)系來實(shí)現(xiàn)。
2 智能agent的動(dòng)作規(guī)劃
本系統(tǒng)動(dòng)作規(guī)劃的思想要求設(shè)計(jì)出來的動(dòng)作描述語言讓智能agent只要給定一個(gè)任務(wù)就能自動(dòng)產(chǎn)生智能agent的動(dòng)作序列。ConGolog是一種基于情景演算的并行程序語言,不同于其他的并行程序形式,它的初始情景可以不完全指定,且基本動(dòng)作可以有用戶根據(jù)情景演算的公理自定義。智能agent找到一個(gè)由一些高層不確定程序的合法執(zhí)行形成的動(dòng)作序列的任務(wù),取代了智能agent從初始狀態(tài)到目標(biāo)狀態(tài)尋找到的動(dòng)作序列。并且在情景演算的基礎(chǔ)上,ConGolog增加了下面的動(dòng)作。
原始動(dòng)作
測試判斷
順序操作
非條件的選擇性操作
非條件性中斷操作
if φ then δ1 else δ2, 條件性選擇性操作
while φ do δ, 循環(huán)操作
δ1||δ2, 同等優(yōu)先級(jí)并發(fā)操作
(δ1 >>δ2), 帶有不同優(yōu)先級(jí)的并發(fā)操作
δ, 并發(fā)重復(fù)
動(dòng)作規(guī)劃的機(jī)制:我們可以通過一個(gè)具體的實(shí)例智能agent搬桌子來進(jìn)行說明,具體如圖2所示。
圖2 搬桌子
ConGolog引進(jìn)了兩個(gè)特殊的謂詞Trans(δ,s,δ′,s′)和Final(δ,s)。其中,F(xiàn)inal(δ,s)表示程序δ合法地終止在情景s. Trans(δ,s,δ′,s′)表示程序δ在情景s下執(zhí)行一步,將改變到情景s′,并余下程序δ′未執(zhí)行,其中,情景s′表示執(zhí)行一個(gè)基本動(dòng)作或測試動(dòng)作后得到的情景,程序δ′表示在執(zhí)行上面的基本動(dòng)作或測試動(dòng)作后程序的剩余部分。Trans表示的是兩個(gè)結(jié)構(gòu)間的傳遞關(guān)系,即從<δ,s>到<δ′,s′>的傳遞關(guān)系。ConGolog從初始情景經(jīng)過有限次的過渡后達(dá)到最終的情景。在這些基礎(chǔ)上可以通過提供的優(yōu)先級(jí)控制來確定先執(zhí)行哪段程序。
因此ConGolog的搬桌子的動(dòng)作代碼如下所示:
val(vpos(E,do(A,S)),V) :-
(A=vmove(Rob,Amount), holding(Rob,E,S), val(vpos(E,S),V1),
V is V1+Amount) ;
(A=release(Rob,E), V=0) ;
(val(vpos(E,S),V),
not(A=vmove(Rob,Amount), holding(Rob,E,S)),
A\=release(Rob,E)).endprint
tableUp(S) :-
val(vpos(end1,S),V1), V1>=3, val(vpos(end2,S),V2), V2>=3.
safeToLift(Rob,Amount,Tol,S) :-
tableEnd(E1), tableEnd(E2), E2\=E1, holding(Rob,E1,S),
val(vpos(E1,S),V1), val(vpos(E2,S),V2),
V1= proc(ctrl(Rob,Amount,Tol), seq(pick(e,seq(test(tableEnd(e)),act(grab(Rob, e)))), while(neg(tableUp(now)), seq(test(safeToLift(Rob,Amount,Tol,now)), act(vmove(Rob,Amount)))))). 3 系統(tǒng)總體設(shè)計(jì) 3.1 DLP DLP結(jié)合了面向?qū)ο蟪绦蛟O(shè)計(jì)的概念,這使得它是一個(gè)有用的編程工具。這門語言采用了邏輯程序設(shè)計(jì)語言如Prolog的語法和語義學(xué)。它是一門高級(jí)的說明性語言,適合于人工智能領(lǐng)域的分布式軟件體系結(jié)構(gòu)的構(gòu)造。特別的,它是基于規(guī)則的知識(shí)表示法的一門靈活的語言。 在DLP中,一個(gè)對(duì)象就是一組規(guī)則和事實(shí),有一系列由謂詞和條件(變量或常量)構(gòu)成的公式。例如,一個(gè)規(guī)則。 findHowtoReact(Agent;Ball; shooting) -: getP osition(Agent;X; Y;Z), getP osition(Ball;Xb; Y b;Zb), gateP osition(Agent;Xg; Y g;Zg), distance(X; Y;Z;Xb; Y b;Zb;Distb), distance(X; Y;Z;Xg; Y g;Zg;Distg), Distb =< kickableDistance, Distg =< kickableGoalDistance. 說明如果AGENT可以踢球而且球門在射程內(nèi),則代理就應(yīng)該去嘗試著射門。 3.2 VRML EAI擴(kuò)展 DLP是一門可擴(kuò)展語言。專門應(yīng)用領(lǐng)域的特殊必要條件可以很容易的綜合到現(xiàn)存的面向?qū)ο笳Z言框架中。DLP已經(jīng)用VRML EAI的運(yùn)行時(shí)庫擴(kuò)展了。接下來的謂詞時(shí)DLP VRML插件程序的幾個(gè)例子。 URL裝載謂詞loadURL(URL) 向Web瀏覽器裝載一個(gè)在URL的VRML世界 獲取位置謂詞getPosition(Object,X,Y,Z) 獲取VRML世界中的對(duì)象的當(dāng)前位置 設(shè)置位置謂詞setPosition(Object,X,Y,Z) 設(shè)置VRML世界中的對(duì)象的位置 獲取旋轉(zhuǎn)謂詞getRotation(Object,X,Y,Z,R) 獲取VRML世界中的對(duì)象的當(dāng)前旋轉(zhuǎn) 設(shè)置旋轉(zhuǎn)謂詞setRotation(Object,X,Y,Z,R) 設(shè)置VRML世界中的對(duì)象的旋轉(zhuǎn) 獲取屬性謂詞getSFVecef(Object,F(xiàn)ield,X,Y,Z) 獲取對(duì)象的Field的一個(gè)值(這個(gè)值由三個(gè)浮點(diǎn)數(shù)X,Y,Z組成) 設(shè)置屬性謂詞setSFVec3f(Object,F(xiàn)ield,X,Y,Z) 給對(duì)象的Field設(shè)置一個(gè)SFVec3f值X,Y,Z 而且,DLP程序是編譯成為java類文件,這使得它是實(shí)現(xiàn)VRML EAI小程序的一個(gè)便利的工具。 本系統(tǒng)由于最終需要在虛擬現(xiàn)實(shí)這個(gè)平臺(tái)中展示,因此通過DLP這個(gè)開發(fā)平臺(tái),運(yùn)用ConGolog動(dòng)作規(guī)劃,對(duì)智能AGENT動(dòng)作規(guī)劃進(jìn)行仿真。系統(tǒng)設(shè)計(jì)圖見如3所示。 圖3 系統(tǒng)結(jié)構(gòu)圖 本文通過智能AGENT踢球的實(shí)驗(yàn)對(duì)動(dòng)作規(guī)劃進(jìn)行仿真實(shí)驗(yàn),仿真結(jié)果見圖4所示。 圖4 系統(tǒng)仿真圖 4 結(jié)論 情景演算理論為智能AGENT的規(guī)劃提供了一種有效的解決方法,本文通過智能AGENT模型的構(gòu)建,將Congolog應(yīng)用到智能AGENT的動(dòng)作規(guī)劃上,并且通過DLP對(duì)動(dòng)作規(guī)劃進(jìn)行仿真驗(yàn)證。本文為人工智能和3D動(dòng)畫的結(jié)合,為智能AGENT動(dòng)作規(guī)劃的實(shí)現(xiàn)提供了一種新的可行的方法。 基金項(xiàng)目 寧夏自然科學(xué)基金:基于Mashup個(gè)人知識(shí)環(huán)境構(gòu)建研究,NZ13048。 參考文獻(xiàn) [1]H-Anim [EB/OL]: http://www.h-anim.org, 2004. [2]ConGolog, a concurrent programming language based on the situation calculus Giuseppe De Giacomo ; Yves Lespérance , Hector J. Levesque ,2000. [3]VHML (virtual human markup language) http://www.vhml.org/. [4]A Parameterized Action Representation for Virtual Human Agents Norman Badler, Rama Bindiganavale, Juliet Bourne,1999, PA 19104-6389 [5]John Funge, Xiaoyuan Tu, and Demetri, Terzopoulos. Cognitive Modeling: Knowledge, Reasoning and Planning for Intelligent Characters[C].SIGGRAPH 99, L.A., CA, 1999. 11-13. [6]Zhisheng Huang, Anton Eliens, and Cees Visser. STEP: A Scripting Language for Embodied Agents [C].Tokyo, Japan: Proceedings of the Workshop on Lifelike Animated Agents, 2002. 作者簡介 趙國棟(1972-),男,寧夏人,副教授,碩士,寧夏大學(xué)數(shù)學(xué)計(jì)算機(jī)學(xué)院,研究方向:計(jì)算機(jī)應(yīng)用,軟件工程,計(jì)算機(jī)教育。