1. inhibition. In INHIBITION inhibition, the output of the subsuming module is connected
to the output of another module. If the output of the subsuming module
is “on” or has any value, the output of the subsumed module is blocked
or turned “off.” Inhibition acts like a faucet, turning an output stream on
and off.
SUPPRESSION 2. suppression. In suppression, the output of of the subsuming module is
connected to the input of another module. If the output of the subsuming
module is on, it replaces the normal input to the subsumed module.
Suppression acts like a switch, swapping one input stream for another.
In this case, the AVOID module suppresses (marked in the diagram with
a S) the output from RUNAWAY. RUNAWAY is still executing, but its output
doesn’t go anywhere. Instead, the output from AVOID goes to TURN.
The use of layers and subsumption allows new layers to be built on top
of less competent layers, without modifying the lower layers. This is good
software engineering, facilitating modularity and simplifying testing. It also
adds some robustness in that if something should disable the Level 1 behaviors,
Level 0might remain intact. The robot would at least be able to preserve
its self-defense mechanism of fleeing from approaching obstacles.
Fig. 4.10 shows Level 1 recast as behaviors. Note that FEELFORCE was
used by both RUNAWAY and AVOID. FEELFORCE is the perceptual component
(or schema) of both behaviors, with the AVOID and RUNAWAY modules being
the motor component (or schema). As is often the case, behaviors are usually
named after the observable action. This means that the behavior (which
consists of perception and action) and the action component have the same
name. The figure does not show that the AVOID and RUNAWAY behaviors
share the same FEELFORCE perceptual schema. As will be seen in the next
chapter, the object-oriented properties of schema theory facilitate the reuse
and sharing of perceptual and motor components.
Now consider adding a third LEVEL 2: FOLLOW layer to permit the robot to move down cor-
CORRIDORS ridors, as shown in Fig. 4.11. (The third layer in Brooks’ original paper is
“explore,” because he was considering a mapping task.) The LOOK module
examines the sonar polar plot and identifies a corridor. (Note that this
is another example of behaviors sharing the same sensor data but using it
locally for different purposes.) Because identifying a corridor is more computationally
expensive than just extracting range data, LOOK may take longer
to run than behaviors at lower levels. LOOK passes the vector representing
the direction to the middle of the corridor to the STAYINMIDDLE module.
STAYINMIDDLE subsumes the WANDER module and delivers its output to
the AVOID module which can then swerve around obstacles.
But how does the robot get back on course if the LOOK module has not
computed a new direction? In this case, the INTEGRATE module has been
observing the robots actual motions from shaft encoders in the actuators.
This gives an estimate of how far off course the robot has traveled since the
last update by LOOK. STAYINMIDDLE can use the dead reckoning data with
the intended course to compute the new course vector. It serves to fill in
the gaps in mismatches between updates rates of the different modules. Notice
that LOOK and STAYINMIDDLE are quite sophisticated from a software
perspective.
INTEGRATE is an example of a module which is supplying a dangerous
internal state: it is actually substituting for feedback from the real world. If
for some reason, the LOOK module never updates, then the robot could op-

No comments:
Post a Comment