MAVRIC - General Software Architecture
Hardware Considerations
Mavric is based on an ActivMedia Pioneer I robot platform. We have
modified the sensory systems considerably. Currently MAVRIC has four
semi-directional light sensors and a 'nose'. The latter is implemented
with a microphone and four narrow bandpass filters to simulate four odors.
The tone frequency represents a specific odorant and the amplitude represents
the concentration of the odorant along some presumptive gradient.
As MAVRIC approaches a tone source we can increase the volume to simulate
the robot moving up a gradient.
Pioneer comes with seven sonar sensors arrayed around the face.
We are not using these in the more traditional approach to robotics (distance-to-target).
Rather we use the information supplied by these sensors to emulate antenae-like
feelers that act as proximity detectors at near approach.
Provisions have also been made to incorporate two semi-directional microphones,
one on either side of the robot, to implement audition. Both 'ears'
will be tuned to four additional frequencies, thus emulating the Fourier
transform process that occurs in the cochlea. This will provide four
additional sensory features to use in object identification as well as
the potential for auditory directional processing (probably in the next
generation of MAVRIC).
In total, aside from the seven sonar (distance) we have added sixteen
channels of greyscale data to improve sensory information .
Figure 1. The basic Pioneer robot has been enhanced with eyes, a
nose, and (in the future) ears.
Software Architecture
ActivMedia's Saphira Environment
The Pioneer robot is controlled by software running on a laptop computer
under the Saphira client environment and interacting with the robot via
a radio modem link. This environment provides a library of routines
to provide robot state reflection (getting sensor readings and providing
motor output commands) and communications packet control. Additionally,
Saphira provides a synchronous real-time, multi-tasking environment which
executes all MAVRIC tasks, including the brain, every 100 milliseconds.
Figure 2 shows the relationships of the various components in the system.
Figure 2. The Saphira environment is used to provide a real-time,
multi-tasking environment for executing MAVRIC tasks each 100 msec.
We have significantly modified the on-board microcontroller-based server
monitor to accommodate the additional sensors (see above). The Pioneer
uses an on-board 68HC11 microcontroller to handle all sensor and motor
control functions as well as the communications through the on-board radio
modem.
MAVRIC's Tasks
MAVRIC is controlled by a very different architecture than is found in
more typical behavior-based systems. Saphira, in fact, comes with
a rich library of behavior-based tasks and support functions, which we
have largely abandoned to accommodate our own architecture. Figure
3 shows the basic architecture of MAVRIC along with its relationship to
the Saphira state reflector task.
Figure 3. The MAVRIC software architecture is radically different
from other behavior-based architectures.
The central feature of this architecture is the brain task. The brain
is composed of a set of structures called inslots (green rectangles in
the figure) which provide the data input to the neural network. The
latter is based on a set of adaptrode-based neurons (see MAVRIC
Brain Architecture). Data is output from the brain via a set
of outslots (also green).
Another set of external (to the brain) tasks, called 'body functions'
(light blue rectangles) mediate signals that emulate sensory transduction,
endocrine function and reflex reactions. These include:
-
Sonar to touch task
Using the seven sensor outputs, this task determines the location of
an object (right or left or both) that is within about 12 inches of the
robot's face.
-
Light detection task
Similar to the touch task but with the addition of a fuzzy OR of all
light sensors which simply says that a light source is within detection
range. This is because MAVRIC is mildly phototactic so needs to know
anytime light is present.
-
Odor detection task
This task requires that the robot not only detect an odor, but detect
a change in odor concentration, which is actually simply detecting a change
in volume of one of the four tones.
-
Sound detection task (not shown)
Not currently implemented. This task will simply provide the
amplitude detected in each ear for four tones (not the same frequencies
as are used for odors).
-
Digestion task
Whenever the robot is touching an object which is also emitting the
'food' tone, it goes into a stationary feeding mode. The duration
and amplitude of the tone is integrated through the 'feeding' outslot and
this task, operating on a longer time scale (minutes) converts accumulated
food to energy.
-
Disruption task
Somewhat analogous to the digestion task, but operating on a much faster
time scale, this task, in real-time, transfers detected pain (from the
sounding of the poison tone) to the pain inslot (which provides US input
to the Avoid neuron - see MAVRIC Brain Specification).
It also accumulates presumptive damage which acts as punishment (evaluative)
gating for the Avoid neuron. Finally, it diminishes the energy value
as a cost function (see Mobus, Foraging Search:
Prototypical Intelligence).
-
Wander task
As discussed in Mobus & Fisher,
Foraging Search at the Edge of Chaos, this task simulates the
actions of the central pattern generator used to implement a drunken sailor
walk. Motor controls for speeding up, slowing down, going right or
going left (all opponent processes) and going straight (when following
a cue stimulus) from the brain are used to modify the output of this task
as per the above reference.
-
Escape task
This is a reflex response to strong poison odor (tone) and/or touching
(and subsequent pain if not feeding). The robot reverses both motors
and executes a characteristic turn (approx. 180 degrees) then runs ahead
for a short time.
-
Depletion task
This task accumulates total motor control for the purpose of depleting
the system's energy. The longer and faster the robot moves, the more
energy is depleted.
Sensory and motor tasks interface with the Saphira state reflector via
a modified packet structure.
This material is based upon work supported by the National Science Foundation under Grant No. IIS-9907102.
Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author and do not necessarily reflect the views of the National Science Foundation.