Building a Robocup team using Jason BDI framework Sean Bassett, Nancy Ho Woo, Laurence Smith, Carlos Valencia Software Agents November 30, 2006
Nov. 30, 2006Slide 2 Architecture
Nov. 30, 2006Slide 3 Sequence diagram
Nov. 30, 2006Slide 4 Jason’s features used for implementation Environment coded in java –Communication with BDI occurs only at perception/action points Open/closed world assumption –Closed world in implicit by not using strong negation (~) on plans Late option specification –Parameters are specified right at the moment of calling the action Internal actions written in Java –Elegant way to extend plans from within the BDI
Nov. 30, 2006Slide 5 Modeling a player
Nov. 30, 2006Slide 6 Example of a plan // -kickoff // -team Canada // Forward, in front of the ball noball. /* Plans */ +noball: ball(X,Y,P,Q) & team(Tn) & player(Tn,Un,Xp,Yp,Pp,Qp) <-.print("1"); robojason._bpDist(X,Y,Xp,Yp,Re); !disDec(X,Y,Xp,Re); -ball(_,_,_,_); -player(_,_,_,_,_,_). +noball: ball(X,Y,P,Q) <-.print("2"); -ball(X,Y,P,Q); -noball; !gotoball(X,Y). +noball: otherside(OS) & flag(p,OS,t,Xf,Yf,Pf,Qf) & Xf>10 & (Yf>=15| Yf<=-15)<-.print("4"); turn(Yf); -flag(_,_,_,_,_,_,_). +noball: otherside(OS) & flag(p,OS,t,Xf,Yf,Pf,Qf) & Xf>10 <-.print("5"); dash(90); -flag(_,_,_,_,_,_,_). +noball: noball <-.print("3"); !findball. +!findball: ball(X,Y,P,Q) & team(Tn) & player(Tn,Un,Xp,Yp,Pp,Qp) <-.print("6"); robojason._bpDist(X,Y,Xp,Yp,Re); !disDec(X,Y,Xp,Re); -ball(_,_,_,_); -player(_,_,_,_,_,_). +!findball: ball(X,Y,P,Q) <-.print("7"); -ball(X,Y,P,Q); -noball; !gotoball(X,Y). +!findball: noball <-.print("8"); turn(70); -noball. +!findball: otherside(OS) & flag(p,OS,t,Xf,Yf,Pf,Qf) & Xf>10 & (Yf>=15| Yf<=-15)<-.print("a"); turn(Yf); -flag(_,_,_,_,_,_,_). +!findball: otherside(OS) & flag(p,OS,t,Xf,Yf,Pf,Qf) & Xf>10 <-.print("b"); dash(90); -flag(_,_,_,_,_,_,_). +ball(X,Y,P,Q): X<1 <-.print("24"); -ball(_,_,_,_);!haveball.
Nov. 30, 2006Slide 7 Defensive Strategy
Nov. 30, 2006Slide 8 Offensive Strategy
Nov. 30, 2006Slide 9 Jason compared to another BDI Comparison criteriaJasonJack Inter-agent communication approach Speech-act based communication based on KQML querying and informational performatives High-level primitives for communication are offered Preciseness: Does the platform provide clear and precise semantics? Yes. Based on AgentSpeak(L)’s formal semantics Provides clear and precise, although not formal, semantics Verification: Path for the formal verification of programs written in the language? Model checking techniques have been developed by the authors No verification techniques are provided
Nov. 30, 2006Slide 10 Jason compared to another BDI Comparison criteriaJasonJack Deployment and portability: Manuals support. Limited, as it’s an open source project with just a single manual and no formal support Highly documented and formally supported Extensible through open source collaboration Open source from the beginning and offers clear cut interfaces to integrate environments Not open source. Although it provides several “hooks” for extension. Tools for debugging and programming? Provides an IDE but debugging capabilities are limited IDE and capabilities such as textual trace, graphical plan tracing and agent interaction diagrams
Nov. 30, 2006Slide 11 References Bordini, R.H. & Hubner, J.F “Jason. A java-based interpreter for an extended version of AgentSpeak”. Available online, Bordini, R., Hubner, J. & Vieira, R. “Jason and the golden fleece of agent-oriented programming” In R. Bordini, M. Dastani, J. Dix & A. Seghrouchni (Eds.), Multi- agent programming. Languages, platforms and application. pages Liverpool: Springer