This is work done in November and December at Birmingham in a
first term mini-project by MSc student Marek Kopicki extending a
previous 'sheepdog' demo in the SimAgent toolkit to produce a new
version with a hybrid deliberative/reactive architecture.
The previous, purely reactive version of the sheepdog (based on
projects by previous MSc students Peter Waudby and Tom Carter)
could not cope with even simple barriers (e.g. a row of trees)
whereas the new version can make plans finding quite tortuous
routes very quickly, using probabilistic waypoints to reduce the
search space.
However when executing plans it is highly reactive, adjusting to
movements of the sheep it is pursuing, and detecting both
problems that require re-planning and also opportunities to take
unexpected short cuts (because the interface allows trees and
sheep, or even the dog, to be moved using a mouse).
The (commented) code for the new sheepdog is now included
in the SimAgent toolkit, which is available for poplog users
to download from here:
http://www.cs.bham.ac.uk/research/poplog/newkit.tar.gz
(Much smaller than the movie 702938 bytes)
It requires rclib and other 'Birmingham extras'. Those extras are
all packaged in this tar file which can be installed if you
already have poplog without the Birmingham extensions.
http://www.cs.bham.ac.uk/research/poplog/bham.tar.gz
(About 2 Mbytes)
(newkit can be installed after that). It should all run on any
unix/linux/solaris version of poplog (not yet windows poplog,
unless you use vmware with windows).
The whole of poplog including all the above and some other
'extras' is packaged for easy installation on linux on a PC in
this file
http://www.cs.bham.ac.uk/research/poplog/bham-linux-poplog.tar.gz
(About 21 Mbytes)
If you already have a recent version of SimAgent you don't need to
fetch newkit.tar.gz.
The new sheepdog file can be fetched from here
http://www.cs.bham.ac.uk/research/poplog/newkit/sim/lib/hybrid_sheepdog.p
104962 bytes
After installing (poplog and) newkit, to run the hybrid sheepdog
demo, do:
pop11
uses newkit;
lib hybrid_sheepdog
some printing occurs, then
run_sheep(20000);
move the sheep, sheep dog, or trees if you wish, (but not the
sheep pen at present) then press RETURN to start the program.
You'll get a big window with mouse-movable objects, and a control
panel, which can be used to speed up, slow down, or stop the
program. By default it runs in relatively 'slow' mode (using a
timer delay). Local re-planning by the dog is almost
instantaneous. Global re-planning can take up to about half a
second on a 1Ghz AMD athlon PC. The dog shows its plans and
local re-planning graphically.
To read the code, and experiment with changes, try
showlib hybrid_sheedog
which reads the file into the editor.
The student had never used pop11 or any other AI language when he
started on this project late in October, though he had used other
programming languages. The ease with which he was able to do it
is to a considerable extent due to the role of the Objectclass
extension to pop11 whose multiple-inheritance facility is used to
glue together the X window based graphical tools (rclib) and the
SimAgent library. For more on the toolkit see
http://www.cs.bham.ac.uk/research/cogaff/talks/#simagent
http://www.cs.bham.ac.uk/~axs/cogaff/simagent.html
The sheepdog scenario is indefinitely extendable, with scope for
learning, collaborative planning and problem solving (more than
one sheepdog), addition of antagonists (e.g. wolves), extensions
to herding more than one sheep at a time (previously done in an
extension by Dean Petters), more variability in sheep behaviour,
more sources of motivation in the dog (e.g. hunger, fear),
addition of a reflective/meta-management layer (the dog could
monitor, remember, and reflect on its own strategies and
decisions, e.g. to explain them to someone).
It can, in principle, support many student projects, individual
or collaborative.
In the not too distant future it should be possible to have the
toolkit running in a robot using linux.
Aaron
==
Aaron Sloman, ( http://www.cs.bham.ac.uk/~axs/ )
School of Computer Science, The University of Birmingham, B15 2TT, UK
PAPERS: http://www.cs.bham.ac.uk/research/cogaff/
FREE TOOLS: http://www.cs.bham.ac.uk/research/poplog/freepoplog.html
TALKS: http://www.cs.bham.ac.uk/~axs/misc/talks/
FREE BOOK: http://www.cs.bham.ac.uk/research/cogaff/crp/
|