Page 154 - Introduction to AI Robotics
P. 154

137
                                      4.4 Potential Fields Methodologies
                                      seen by revisiting the example behaviors used to describe the subsumption
                                      architecture. In the case of Level 0 in subsumption, if there are no obstacles
                                      within range, the robot feels no repulsive force and is motionless. If an obsta-
                                      cle comes within range and is detected by more than one sonar, each of the
                                      sonar readings create a vector, pointing the robot in the opposite direction.
                                      In the subsumption example, it could be imagined that these vectors were
                                      summed in the RUNAWAY module as shown in Fig. 4.20. In a potential fields
                                      system, each sonar reading would release an instance of the RUNAWAYpf be-
                                      havior (the “pf” will be used to make it clear which runaway is being referred
                                      to). The RUNAWAYpf behavior uses a repulsive potential field. The output
                                      vectors would then be summed, and then the resultant vector would be used
                                      to guide the turn and forward motors.
                                       while (robot==ON)
                                       {
                                          vector.magnitude=vector.direction=0;
                                          for (i=0; i<=numberSonars; i++) {
                                             reading=readSonar();               //perceptual schema
                                             currentVector=runaway(reading); // motor schema
                                             vector = vectorSum(vector, currentVector);
                                          }
                                          turn(vector.direction);
                                          forward(vector.magnitude*MAX-VELOCITY);
                                      }
                                        The COLLIDE module in subsumption does not map over to a behavior
                                      in a potential fields methodology. Recall that the purpose of COLLIDE is
                                      to stop the robot if it touches an obstacle; in effect, if the RUNAWAY behav-
                                      ior has failed. This fits the definition of a behavior: it has a sensory input
                                      (range to obstacle = 0) and a recognizable pattern of motor activity (stop).
                                      But it doesn’t produce a potential field, unless a uniform field of vectors
                                      with 0 magnitude is permissible. If it were treated as a behavior, the vec-
                                      tor it contributes to would be summed with any other vectors contributed
                                      by other behaviors. But a vector with 0 magnitude is the identity function
                                      for vector addition, so a COLLISION vector would have no impact. Instead,
                                      collisions are often treated as “panic” situations, triggering an emergency
                                      response outside the potential field framework.
                                        Some of the subtle differences between potential fields and subsumption
                                      appear when the case of Level 2 is considered. The same functionality can
                                      be accomplished by adding only a single instance of the WANDER behavior,
                                      as shown in Fig. 4.21. As before, the behavior generates a new direction
   149   150   151   152   153   154   155   156   157   158   159