Page 180 - Introduction to AI Robotics
P. 180
163
5.3 Steps in Designing a Reactive Behavioral System
in the case of potential fields, a vector of (0.0,0.0), which is the same as if the
behavior wasn’t active at all. This style of programming can tie up some
resources, but is generally a simple, effective way to program. Fig. 5.2 shows
the two approaches.
Either way, once the robot saw red, the observable aspect of move to goal
(e.g., moving directly toward the goal) would commence. The extract goal
schema would update the percept data (relative angle of the goal and size of
red region) every time it was called. This percept would then be available to
the motor schema, which would in turn produce a vector.
As will be covered in Sec. 5.5, the releaser must be designed to support the
correct sequence. Depending where the robot was in the sequence of activi-
ties, the robot uses move to goal to move to a red Coke can or a blue recycling
bin. Otherwise, the robot could pursue a red Coke can and a blue recycling
bin simultaneously. There is nothing in the OOP design to prevent that from
happening—in fact, OOP makes it easy. In this situation, there would be two
move to goal objects, one instantiated with goal of “red” and the other with
goal of “blue.” Notice that the move to goal behavior can use any perceptual
schema that can produce a goal angle and goal strength. If the robot needed
to move to a bright light (phototropism), only the perceptual schema would
need to be changed. This is an example of software reusability.
5.3 Steps in Designing a Reactive Behavioral System
Fig. 5.3 shows the steps in designing a reactive behavioral system, which
are taken from Behavior-Based Robotics 10 and a case study by Murphy. 98 This
section will first give a broad discussion of the design process, then work
through each step using the winning approach taken in the 1994 Unmanned
Ground Vehicle Competition.
The methodology in Fig. 5.3 assumes that a designer is given a task for the
robot to do, and a robot platform (or some constraints, if only budgetary).
The goal is to design a robot as a situated agent. Therefore, the first three
steps serve to remind the designer to specify the ecological niche of the robot.
The fourth step begins the iterative process of identifying and refining the
set of behaviors for the task. It asks the question: what does the robot do? Defin-
ing the ecological niche defines constraints and opportunities but doesn’t
necessarily introduce major insights into the situatedness of the robot: how it
acts and reacts to the range of variability in its ecological niche. This step is where
a novice begins to recognize that designing behaviors is an art. Sometimes,