Page 199 - Introduction to AI Robotics
P. 199
182
5 Designing a Reactive Implementation
able), instead of letting directly perceivable attributes of the world inform the
robot as to what state it is in. Internal state is incompatible with reactivity.
The FSA also hid the role of the avoid behavior. The avoid behavior was
always running, while the other behaviors were asynchronously being in-
stantiated and de-instantiated. It is difficult to show behavioral concurrency
with an FSA. Other techniques, most especially Petri Nets, are used in soft-
ware engineering but have not been commonly used in robotics. The avoid
behavior was not a problem in this case. It was always running and the out-
put of the avoid potential field vector could be summed with the output of
whatever other behavior was active.
5.5.3 Implementation examples
In a schema-theoretic implementation, the FSA logic would exist in one of
two places. If the robot’s sole task was to recycle soda cans, the controlling
logic could be placed in the main program. If the robot had many tasks that
it could do, the ability to recycle trash would be an abstract behavior, called by
the main program whenever the robot needed to recycle trash. In that case,
the FSA logic would be placed in the coordinated control program slot of the
behavior schema.
Although the current discussion is on where the FSA goes, it might be use-
ful to spend some time on the overall implementation. While the wander-to-
goal and move-to-goal behaviors can be easily implemented with a potential
fields methodology, drop-trash cannot. Drop-trash really isn’t a navigation
behavior. It fits the overall profile of a behavioral schema: it has an obvious
motor schema (open the gripper, turn the wheels), a perceptual schema (read
gripper encoders and wheel encoders), a coordinated control program (open
THEN turn), and a releaser (at trash can). While schema-theoretic implemen-
tations use potential field methodologies and vector summation for effector
control, not every behavior will generate a vector based on a potential field.
One advantage of FSA is that they are abstract, and can be implemented
in a number of ways. The behavior table illustrated one way the FSA could
be implemented with a schema-theoretic system. Fig. 5.12 shows one way
it could be implemented in subsumption. This example shows the power
of inhibition and suppression which is not well represented by FSA state
diagrams.
In keeping with the idea of modularity and incrementally adding behav-
iors, the system starts with an explicit avoid behavior running on top of Level
0 (not shown). At the next level the robot wanders until it sees red. Then