摘 要 隨著智能信息技術的發展,它已經廣泛的應用于各個領域。而智能AGENT又是智能空間中最豐富的因素。因此對智能AGENT動作行為的研究是當前的一個熱點。本文借助ConGolog作為智能AGENT動作規劃,并利用H_anim規范設計出智能AGENT三維實體模型,并且最終利用VRML技術將智能AGENT動作行為規劃的結果在虛擬現實環境中驗證其可行性。
關鍵詞 智能;agent;ConGolog;H_anim
中圖分類號:TP18 文獻標識碼:A 文章編號:1671-7597(2014)19-0069-03
智能agent的動作描述涉及到運動學,機器人學,生物力學等多個學科,這引起了很多學者的研究興趣,3D動畫中智能agent技術也由純粹的理論研究逐漸走向實際應用,它在醫學、生物學、軍事、航天、體育、汽車、藝術等相關領域發揮越來越重要的作用,本文采用web3d協會的H_anim規范設計出智能agent的模型。運用ConGolog進行動作規劃,以達到自動產生動作序列的目的。
DLP(distributed logic programming)是一種prolog語言的面向對象的擴展語言,具有面向對象,并行,分布和邏輯程序設計的特性,并且能夠很好同三維建模語言VRML結合在一起,本文通過DLP來對智能AGENT行為動作規劃進行仿真。
本文內容主要包括智能agent建模,動作規劃,系統仿真,最后是結論及未來工作的展望。
1 智能agent建模
我們參照H-Anim標準(VRML的一個子標準),忽略面部和手部的定義,將虛擬人表示16個骨骼段(Segment)的合成,骨骼段之間由節點相連。這些身體部分之間并不存在包含關系(在H-Anim標準中除了根節點HumanoidRoot以外,每個節點都是另外一個節點的子節點)。這些骨骼段主要有: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 。本文的人體組織結構如圖1所示。
圖1 身體節點圖
虛擬人動作之間的帶動關系。根據真實世界中人的運動規律,身體的一個部分的動作要帶動其他相關的身體部分,在H-Anim標準中,身體的各個部分之間是樹型的包含關系,例如左手腕(l_wrist)是包含在左肘(l_elbow)中的,而左肘則包含在左肩(l_shoulder)中的,這樣,左肩的動作自然包含了左肘和左手腕的動作,這樣的定義對于實現身體各部分的動作的帶動關系有很大方便,但是確給動作的刪減造成很大困難。而在本文的虛擬人中,這些節點沒有包含與被包含的關系,本文通過定義他們之間的關系來實現動作之間的帶動關系,在默認時他們的動作之間是都是有帶動關系的,在需要刪減動作的時候,例如需要根據一個有手臂動作和腿部動作的走的動作來定義一個沒有手臂動作只有腿部動作的走的動作時,就可以通過去掉手臂的帶動關系來實現。
2 智能agent的動作規劃
本系統動作規劃的思想要求設計出來的動作描述語言讓智能agent只要給定一個任務就能自動產生智能agent的動作序列。ConGolog是一種基于情景演算的并行程序語言,不同于其他的并行程序形式,它的初始情景可以不完全指定,且基本動作可以有用戶根據情景演算的公理自定義。智能agent找到一個由一些高層不確定程序的合法執行形成的動作序列的任務,取代了智能agent從初始狀態到目標狀態尋找到的動作序列。并且在情景演算的基礎上,ConGolog增加了下面的動作。
原始動作
測試判斷
順序操作
非條件的選擇性操作
非條件性中斷操作
if φ then δ1 else δ2, 條件性選擇性操作
while φ do δ, 循環操作
δ1||δ2, 同等優先級并發操作
(δ1 >>δ2), 帶有不同優先級的并發操作
δ, 并發重復
動作規劃的機制:我們可以通過一個具體的實例智能agent搬桌子來進行說明,具體如圖2所示。
圖2 搬桌子
ConGolog引進了兩個特殊的謂詞Trans(δ,s,δ′,s′)和Final(δ,s)。其中,Final(δ,s)表示程序δ合法地終止在情景s. Trans(δ,s,δ′,s′)表示程序δ在情景s下執行一步,將改變到情景s′,并余下程序δ′未執行,其中,情景s′表示執行一個基本動作或測試動作后得到的情景,程序δ′表示在執行上面的基本動作或測試動作后程序的剩余部分。Trans表示的是兩個結構間的傳遞關系,即從<δ,s>到<δ′,s′>的傳遞關系。ConGolog從初始情景經過有限次的過渡后達到最終的情景。在這些基礎上可以通過提供的優先級控制來確定先執行哪段程序。
因此ConGolog的搬桌子的動作代碼如下所示:
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 系統總體設計 3.1 DLP DLP結合了面向對象程序設計的概念,這使得它是一個有用的編程工具。這門語言采用了邏輯程序設計語言如Prolog的語法和語義學。它是一門高級的說明性語言,適合于人工智能領域的分布式軟件體系結構的構造。特別的,它是基于規則的知識表示法的一門靈活的語言。 在DLP中,一個對象就是一組規則和事實,有一系列由謂詞和條件(變量或常量)構成的公式。例如,一個規則。 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可以踢球而且球門在射程內,則代理就應該去嘗試著射門。 3.2 VRML EAI擴展 DLP是一門可擴展語言。專門應用領域的特殊必要條件可以很容易的綜合到現存的面向對象語言框架中。DLP已經用VRML EAI的運行時庫擴展了。接下來的謂詞時DLP VRML插件程序的幾個例子。 URL裝載謂詞loadURL(URL) 向Web瀏覽器裝載一個在URL的VRML世界 獲取位置謂詞getPosition(Object,X,Y,Z) 獲取VRML世界中的對象的當前位置 設置位置謂詞setPosition(Object,X,Y,Z) 設置VRML世界中的對象的位置 獲取旋轉謂詞getRotation(Object,X,Y,Z,R) 獲取VRML世界中的對象的當前旋轉 設置旋轉謂詞setRotation(Object,X,Y,Z,R) 設置VRML世界中的對象的旋轉 獲取屬性謂詞getSFVecef(Object,Field,X,Y,Z) 獲取對象的Field的一個值(這個值由三個浮點數X,Y,Z組成) 設置屬性謂詞setSFVec3f(Object,Field,X,Y,Z) 給對象的Field設置一個SFVec3f值X,Y,Z 而且,DLP程序是編譯成為java類文件,這使得它是實現VRML EAI小程序的一個便利的工具。 本系統由于最終需要在虛擬現實這個平臺中展示,因此通過DLP這個開發平臺,運用ConGolog動作規劃,對智能AGENT動作規劃進行仿真。系統設計圖見如3所示。 圖3 系統結構圖 本文通過智能AGENT踢球的實驗對動作規劃進行仿真實驗,仿真結果見圖4所示。 圖4 系統仿真圖 4 結論 情景演算理論為智能AGENT的規劃提供了一種有效的解決方法,本文通過智能AGENT模型的構建,將Congolog應用到智能AGENT的動作規劃上,并且通過DLP對動作規劃進行仿真驗證。本文為人工智能和3D動畫的結合,為智能AGENT動作規劃的實現提供了一種新的可行的方法。 基金項目 寧夏自然科學基金:基于Mashup個人知識環境構建研究,NZ13048。 參考文獻 [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-),男,寧夏人,副教授,碩士,寧夏大學數學計算機學院,研究方向:計算機應用,軟件工程,計算機教育。