Transcript Pogamut 2

Faculty of mathematics and physics
Charles University at Prague
16th April 2008
Pogamut 2
Platform for fast development of cognitive agents inside 3D environment
Creating JavaSPOSH bot project + pitfalls
(S)POSH
Reimplementing bots with SPOSH
http://artemis.ms.mff.cuni.cz/pogamut
JavaSPOSH bot project
Select
correct
project
type and
read the
description
!
http://artemis.ms.mff.cuni.cz/pogamut
JavaSPOSH bot project
Freshly created project is containing:
 Main.java – main class that fires up the bot, containing path to the
sposhPlan.lap (need to be configured! – next slide…)
 MyBehavior.java – descendant of Behavior, containing actions and
senses (implementations done here)
 sposhPlan.lap – file containing SPOSH plan (decision tree of the agent)
Running empty JavaSPOSH bot
Not as easy as with JavaBot project.
1) we’re still have some nasty problem with
build.xml (Ant script file firing the agent up),
may be already corrected…
2) some project names gives the Python
engine a headache
3) you have to correctly specified the path to
the sposhPlan.lap file (for SPOSH-engine)
JavaSPOSH bot project – Pitfall 1
2) No bot is running…
3) We’re still have some
troubles with build.xml file…
4) Take build.xml file from any
Java Bot project (replace
JavaSPOSH one with it).
1) Even though BUILD
is SUCCESSFUL
http://artemis.ms.mff.cuni.cz/pogamut
JavaSPOSH bot project – Pitfall 2
2) Bot
failed
to run
3) Python engine has tried to interpret
\abc as a character and broken the
path to the planfile
1) Even though BUILD
http://artemis.ms.mff.cuni.cz/pogamut
is SUCCESSFUL
JavaSPOSH bot project – Pitfall 2
solution
DO NOT create projects with names that begin
with a, b, c, d, e, f … otherwise the Python
engine will interpret \abcYourName as
‘\abc’YourName converting \abc to a wrong
character and breaking the path.
Project name ABC is WRONG
Project name JavaSPOSHTest is OK
http://artemis.ms.mff.cuni.cz/pogamut
JavaSPOSH bot project – Pitfall 3
3) Because it couldn’t find the
sposhPlan.lap file
2) Bot has failed
to run…
1) Even though BUILD
is SUCCESSFUL
JavaSPOSH bot project – Pitfall 3
solution
Step-by-step:
1) open Main.java file and find getPlanFile() method
2) change “PROJECT_NAME” and “package_name”
in this case to
“JavaSPOSHExample” and “javasposhexample”
JavaSPOSH bot project – Bot is running
Congratulations!
POSH
parallel ordered slip-stack hierarchy
 Dr. J. J. Bryson, University of Bath, UK
 http://www.cs.bath.ac.uk/~jjb/web/posh.html
 reactive planner
 not fully reactive, you may store whatever
variable in your Behavior
 SPOSH – Strict POSH
 more or less a decision tree with slip-stack
 working with Behavior class that is containing
actions and senses
http://artemis.ms.mff.cuni.cz/pogamut
POSH
parallel ordered slip-stack hierarchy
 Agent has:
 goal to fulfill
 we’re running endlessly so the goal is “fail”
 ordered drives
 evaluated each POSH-engine iteration
 competences
 action patterns
 Using (defined in Behavior):
 senses – gives information from the environment
 actions – primitives
http://artemis.ms.mff.cuni.cz/pogamut
POSH
parallel ordered slip-stack hierarchy
http://artemis.ms.mff.cuni.cz/pogamut
POSH Syntax
for HC people :-)
http://artemis.ms.mff.cuni.cz/pogamut
POSH
parallel ordered slip-stack hierarchy
Notice the corespondency
between action / sense
names in plan file and
names of the methods
in java source code.
http://artemis.ms.mff.cuni.cz/pogamut
Java SPOSH bot project
Implementing actions / senses
File MyBehavior.java
Implemented
inside
MyBehavior.java
Java Reflection
API is used.
 every action has prefix ‘action_’
 every sense has prefix ‘sense_’
 both are always without parameters, both HAS
to return a boolean (success)
 memory and body accessible through bot.getMemory()
and bot.getBody() inside MyBehavior.java
Java SPOSH bot project
When the bot fails to run…
1) Bot builds ok
2) But fails to
run
3) Examine
Platform Log
4) Look for
SEVERE
entry with
‘Can’t
instantiate
SPOSH
agent’
5) Read the
reason
… here, we’ve
got error in
plan syntax
Java SPOSH bot project
How to test, how it works…
Download the JavaSPOSHExample bot from the webpage.
Where is the trick? Every action / sense that is firing is
logging into User log that it fires. You’re free to examine
how the SPOSH engine works
Some hints:
1) SPOSH engine first schedules some action / action
pattern to be executed
2) Then it executes all scheduled actions (e.g. action
pattern will schedule more then one action)
Java SPOSH bot project
Remember FollowBot?
Now the time has come! To become The One…
Do you remember FollowBot from the second
lecture? Good! Go and implement it using
JavaSPOSH bot project.
Good luck!