APP下载

基于智能AGENT动作行为的规划及其仿真

2014-11-27赵国栋

新媒体研究 2014年19期
关键词:智能

摘 要 随着智能信息技术的发展,它已经广泛的应用于各个领域。而智能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-),男,宁夏人,副教授,硕士,宁夏大学数学计算机学院,研究方向:计算机应用,软件工程,计算机教育。

猜你喜欢

智能
智能小黑板
智能睡毯助好眠
智能烹饪机
智能生物钟
超智能插秧机
自由光2.4L专业版+智能包
智能汽车玩家大全
谜语大集合