Page 280 - Introduction to AI Robotics
P. 280

263
                                      7.3 Architectural Aspects
                                      mines what functionality goes in what modules, what modules have access
                                      to global knowledge (which leads to specifying public and friend classes
                                      in C++), and what that global knowledge (shared data structures) should
                                      be. Likewise, it is important to subdivide the deliberative portion into mod-
                                      ules or objects. A good decomposition will ensure portability and reusabil-
                                      ity. While Hybrid architectures are most noteworthy for how they incorpo-
                                      rate deliberation into mobile robotics, they also introduce some changes in
                                      the way reaction is organized. Many researchers found the two primary
                                      means of combining reactive behaviors—subsumption and potential field
                                      summation—to be limited. Since then at least three other mechanisms have
                                      been introduced: voting (in the DAMN architecture), 121  fuzzy logic (Saphira), 77
                                      and filtering (SFX). 107
                                        The number of Hybrid architectures is rapidly increasing. This section
                                      attempts to introduce some conceptual organization on Hybrids in two ways.
                                      First, it offers a set of common components—essentially, things to look for in
                                      a Hybrid architecture. Second, it divides Hybrid into three broad categories:
                                      managerial, state hierarchies, and model-oriented.


                               7.3.1  Common components of hybrid architectures

                                      While Hybrid architectures vary significantly in how they implement de-
                                      liberative functionality, what they implement is fairly similar. Generally a
                                      Hybrid architecture has the following modules or objects:

                          SEQUENCER     A Sequencer agent which generates the set of behaviors to use in order to
                                         accomplish a subtask, and determines any sequences and activation con-
                                         ditions. The sequence is usually represented as a dependency network or
                                         a finite state machine, but the sequencer should either generate this struc-
                                         ture or be able to dynamically adapt it. Recall from Ch. 5 that assemblages
                                         of reactive behavior are manually constructed.

                    RESOURCE MANAGER    A Resource manager which allocates resources to behaviors, including se-
                                         lecting from libraries of schemas. For example, a robot may have stereo
                                         vision, sonars, and IR sensors, all of which are capable of range detec-
                                         tion. The behavioral manager would ascertain whether the IR sensors can
                                         detect at a sufficient range, the stereo vision can update fast enough to
                                         match the robot’s desired velocity, and the sonars have enough power to
                                         produce reliable readings. In reactive architectures, the resources for a
                                         behavior were often hard-coded or hardwired, despite the ability of hu-
   275   276   277   278   279   280   281   282   283   284   285