Southall and C.J.
The modular, hierarchical programs written in CHARON are inherently
parallel, both at the agent level and the mode level; to implement this
parallelism on our test-bed platform (the ClodBuster robots controlled
by radio link from a Windows NT server) we have been investigating the
use of "live objects". A live object encapsulates algorithms
and data in the usual object-oriented manner together with control of
a thread within which the algorithms will execute, and a number of events
which allow communication with other live objects. The parallel execution
required by CHARON programs is provided by the use of threads, hierarchy
by control of the execution of each object's thread, and modularity
by the use of standard c++ object-oriented techniques.
live object data structure has been defined, and we are currently incorporating
our existing algorithms into this new framework. In the coming months,
we are aiming to use combinations of these objects in hierarchies to
accomplish basic robotic exploration and localization abilities. It
is expected that once a basic set of sensing and control strategies
have been implemented as live objects, then combination and re-use of
these objects to provide novel functionality should prove straightforward.