Page 28 - Introduction to AI Robotics
P. 28

11
                                      Part I
                                        To see the importance of an architecture, consider building a house or a
                                      car. There is no “right” design for a house, although most houses share the
                                      same components (kitchens, bathrooms, walls, floors, doors, etc.). Likewise
                                      with designing robots, there can be multiple ways of organizing the compo-
                                      nents, even if all the designs follow the same paradigm. This is similar to cars
                                      designed by different manufacturers. All internal combustion engine types
                                      of cars have the same basic components, but the cars look different (BMWs
                                      and Jaguars look quite different than Hondas and Fords). The internal com-
                                      bustion (IC) engine car is a paradigm (as contrasted to the paradigm of an
                                      electric car). Within the IC engine car community, the car manufacturers each
                                      have their own architecture. The car manufacturers may make slight mod-
                                      ifications to the architecture for sedans, convertibles, sport-utility vehicles,
                                      etc., to throw out unnecessary options, but each style of car is a particular
                                      instance of the architecture. The point is: by studying representative robot
                                      architectures and the instances where they were used for a robot application,
                                      we can learn the different ways that the components and tools associated
                                      with a paradigm can be used to build an artificially intelligent robot.
                                        Since a major objective in robotics is to learn how to build them, an im-
                                      portant skill to develop is evaluating whether or not a previously developed
                                      architecture (or large chunks of it) will suit the current application. This skill
                                      will save both time spent on re-inventing the wheel and avoid subtle prob-
                                      lems that other people have encountered and solved. Evaluation requires a
                                      set of criteria. The set that will be used in this book is adapted from Behavior-
                                      Based Robotics: 10

                         MODULARITY   1. Support for modularity: does it show good software engineering princi-
                                         ples?

                   NICHE TARGETABILITY  2. Niche targetability: how well does it work for the intended application?

                          PORTABILITY  3. Ease of portability to other domains: how well would it work for other
                                         applications or other robots?

                          ROBUSTNESS  4. Robustness: where is the system vulnerable, and how does it try to re-
                                         duce that vulnerability?

                                        Note that niche targetability and ease of portability are often at odds with
                                      each other. Most of the architectures described in this book were intended to
                                      be generic, therefore emphasizing portability. The generic structures, how-
                                      ever, often introduce undesirable computational and storage overhead, so in
                                      practice the designer must make trade-offs.
   23   24   25   26   27   28   29   30   31   32   33