Last Modified 22 April 2008
jyPOSH documentation
Behavior
Oriented
Design (BOD) is a way to develop AI systems. It requires a
modular behavior library in any OO language, and a version of POSH action
selection for that language. jyPOSH (formerly pyPOSH) is a
version
of POSH that runs in Python and Jython.
Note on python:
if you are using python, you now need to use python 2.4 at least
because of the logging. However, note that to maintain
compatability with jython, most features of even python 2.3 are not
used.
Instructions for installing and using BOD and jyPOSH are on the web.
Please note that jyPOSH is open source & we are happy to have
additional help with development (including of
documentation). Email us for access to our SVN repository.
Quickstart
There are two ways to use jyPOSH, either with a GUI or from the command
line. The command line is more powerful, in that it allows you to
easily start multiple agents by specifying their parameters in an
initialisation file. The GUI just makes people happy.
To use any version of jyPOSH you need to add POSH/log4j-1.2.jar
to your Java
Classpath. Consult the documentation of your Java installation on how
to do this.
To get the GUI, run jython jyposh.py.
You might
be able to hack from
there. However, the most significant behavior libraries we
distribute rely on other external software (e.g. the MASON simulation
environment or Unreal Tournament) for creating the
environment the BOD agents will run in. There is one simple demo,
the cookie
demo, that is happy to run with just the OS as the environment
(at least
under linux, unix or mac OS X).
launch.py
contains code that will run an agent without using the GUI.
If you are running under python instead of jython you must use
this. All of the options that could be set in the GUI are also
easily set in an init_agent
text file, which may be passed to launch.py as an option.
Run either python
launch.py --help or jython
launch.py --help for instructions, depending which
language you want to use.
Green backgrounded
text
indicates files that only matter if you are going to be using a MASON
behavior library. MASON is an
agent-based modelling toolkit. To use MASON, you need to set the
Java CLASSPATH to include platform_files/MASON/mason.jar.
Also, you must
consult platform_files/MASON/README
before using MASON for the first
time.
Files (in this folder)
- jyposh.py : main GUI file, running this launches the GUI.
- launch.py : main file -- allows launching BOD agents from the
command line. Has
about the same functionality as the GUI, but can be used with Python as
well. Running launch.py
--help describes options for controlling which agents are
launched.
- config.py: code that helps all the parts of jyPOSH to locate the
right directories
Directories
Boldface indicates directories that have code you will edit if you
create your own agents.
- library : the behavior libraries and POSH
script files. This directory contains all the files we expect you
to customize yourself. That is, all the files you create when you
create a new agent go here.
- POSH : files that implement POSH, including both the scheduled
and slip-stack POSH action selection
- platform_files:
Files that are specific to certain environments. The MASON files reside
in this directory. If you want to run MASON simulations, please read platform_files/MASON/README.html,
which includes instructions for compiling some further java
classes. Also, do not forget to add platform_files/MASON/mason.jar
to the Java CLASSPATH.
Behaviour Libraries
A single behaviour library can support many different agents on a
single platform. The individual agents are defined by their POSH
scripts, which are found in a subdirectory called plans.
When using launch.py,
you can set the number and parameters of agents you run by editing the init_agent
script in that library's directory (or that you pass to launch.py as
an
argument).
Boldface indicates recommended
libraries. Documentation for these can be found linked on the AmonI
Software Page.
- bodbot
: the current Unreal Tournament library. Agents for playing
capture the flag, including both offensive and defensive goals and
play. Written mostly
by Sam
Partington, based on Andy Kwong's poshbot (below).
Additional code by Steve
Couzens & Tristan Caulfield. Recent improvements on agent
performance and also updating to the new pyPOSH standards by Francis
Binns and Andrew Mansfield.
- cookietest
: a simple test library. Use this for simple
experiments with POSH. We use it to test changes to POSH engines.
- latch-test
: a BOD/MASON library demonstrating improved action selection using
flexible latching. This work was biomimetically inspired by
emotions and drives, and funded by the EPSRC. The code is written
by Philipp Rohlfshagen, starting from a base by Hagen Lehmann.
The research is documented in Rohlfshagen
& Bryson (2008).
- mason : some core files for creating
MASON libraries. Also contains a sheep/dog demo with the
deprecated scheduled verison of POSH (see sheepDogDemo for the current
version). Initially written
by Tristan Caulfield, substantially revised by Jan Drugowitsch.
- macaques : a
behaviour library that simulates the social interaction between a group
of monkeys using BOD/MASON. Code by Hagen Lehmann and Joanna Bryson,
currently in
development.
- poshbot : an old behavior library for Unreal Tournament written
by Andy Kwong. This will not run with the current POSH, but we
leave it in place because it is documented by Andy Kwong's tech report
on pyPOSH.
- sheepDogDemo: the
BOD/MASON library demo for social agent based modelling, showing sheep
and
dog agents. This is the current recommended
version based on SPOSH. Revised from the demo files in mason by
Joanna Bryson. There is a
(somewhat out of date) web page
& tutorial for the sheep/dog demo.
Other Documentation
- API documentation will be there if you have followed the
instructions in doc/README.html
- POSH/agentinitparser.py:
documents how agent_init files should
work
- launch.py: documents
how to start BOD agents. Can also be
read by running launch.py --help
- platform_files/MASON/README.html,
necessary documentation and instructions for running MASON agents.
page authors: Joanna
Bryson, Jan Drugowitsch