Page 173 - Introduction to AI Robotics
P. 173
156
5 Designing a Reactive Implementation
are they integrated into a system? The Reactive movement and early work
described in Ch. 4 was characterized by robots running a very small set of
EMERGENT BEHAVIOR behaviors which were combined internally to produce an overall emergent
behavior. The key components of a reactive architecture were shown to be
the behaviors plus the mechanism for merging the output of the concurrent
behaviors.
SERIES OF BEHAVIORS However, many applications are best thought of as a series of behaviors,
each operating in a recognizable sequence. One of the first popular appli-
cations that many roboticists looked at was picking up and disposing of an
empty soft drink can. This involved search for a can, move toward the can
when it is found, pick up the can, search for the recycle bin, move toward
the recycle bin, drop the can. 39;129;66 It’s counterintuitive to think of these be-
haviors as being concurrent or merged. (There is certainly the possibility of
concurrency, for example avoiding obstacles while moving to the soda can
or recycle bin.) Therefore, new techniques had to be introduced for control-
ling sequences of behaviors. Most of these techniques are conceptually the
equivalent of constructing a macro behavior, where the schema structure is
used recursively to simplify programming the control program.
This chapter attempts to aid the novice designer in constructing a reac-
tive robot system by addressing each of these two deficits. First, an object-
oriented programming approach to designing behaviors is introduced. This
approach is based on schema theory, which was introduced in Ch. 3. The
“art” of design is presented in a flow chart following the waterfall method
of software engineering, along with a case study of a winning entry in the
1994 International Association for Unmanned Systems’ Unmanned Ground
Robotics Competition. The case study emphasizes the importance of estab-
lishing the ecological niche of a reactive robot. Second, two techniques for
managing sequences of behaviors are introduced: finite-state automata and
scripts. As could be expected from the material presented in Ch. 3, both of
these techniques will look very similar to the Innate Releasing Mechanisms
from Tinbergen and Lorenz. Finally, the chapter shows how these techniques
were applied to entries in the “Pick Up the Trash” events of the 1994 AAAI
and 1995 IJCAI Mobile Robot Competitions. The focus of these examples is
how the logic for coordinating a sequence of behaviors is developed, repre-
sented, and implemented. The use of schemas to “factor out” and program a
small set of generic behaviors rather than designing a large set of specialized
behaviors is emphasized throughout the chapter.