Title: Pogamut 2 Platform for fast development of cognitive agents inside 3D environment
1Pogamut 2 Platform for fast development of
cognitive agents inside 3D environment
Faculty of mathematics and physics Charles
University at Prague 16th April 2008
- Creating JavaSPOSH bot project pitfalls
- (S)POSH
- Reimplementing bots with SPOSH
http//artemis.ms.mff.cuni.cz/pogamut
2JavaSPOSH bot project
Select correct project type and read the
description!
http//artemis.ms.mff.cuni.cz/pogamut
3JavaSPOSH 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)
4Running empty JavaSPOSH bot
- Not as easy as with JavaBot project.
- 1) were 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)
5JavaSPOSH bot project Pitfall 1
3) Were still have some troubles with
build.xml file 4) Take build.xml file from any
Java Bot project (replace JavaSPOSH one with
it).
2) No bot is running
1) Even though BUILD is SUCCESSFUL
http//artemis.ms.mff.cuni.cz/pogamut
6JavaSPOSH 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 is SUCCESSFUL
http//artemis.ms.mff.cuni.cz/pogamut
7JavaSPOSH 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 \abcYourName
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
8JavaSPOSH bot project Pitfall 3
3) Because it couldnt find the sposhPlan.lap file
2) Bot has failed to run
1) Even though BUILD is SUCCESSFUL
9JavaSPOSH bot project Pitfall 3solution
- 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
10JavaSPOSH bot project Bot is running
Congratulations!
11POSH 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
12POSH parallel ordered slip-stack hierarchy
- Agent has
- goal to fulfill
- were 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
13POSH parallel ordered slip-stack hierarchy
http//artemis.ms.mff.cuni.cz/pogamut
14POSH Syntax for HC people -)
http//artemis.ms.mff.cuni.cz/pogamut
15POSH 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
16Java SPOSH bot project Implementing actions /
senses
Implemented inside MyBehavior.java Java
Reflection API is used.
File MyBehavior.java
- 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
17Java 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 Cant
instantiate SPOSH agent 5) Read the reason
here, weve got error in plan syntax
18Java 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.
Youre free to examine how the SPOSH engine works - Some hints
- SPOSH engine first schedules some action / action
pattern to be executed - Then it executes all scheduled actions (e.g.
action pattern will schedule more then one action)
19Java 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!