Page 306 - Introduction to Autonomous Mobile Robots
P. 306

Planning and Navigation

                           6.3  Navigation Architectures                                       291

                           Given techniques for path planning, obstacle avoidance, localization, and perceptual inter-
                           pretation, how do we combine all of these into one complete robot system for a real-world
                           application? One way to proceed would be to custom-design an application-specific, mono-
                           lithic software system that implements everything for a specific purpose. This may be effi-
                           cient in the case of a trivial mobile robot application with few features and even fewer
                           planned demonstrations. But for any sophisticated and long-term mobile robot system, the
                           issue of mobility architecture should be addressed in a principled manner. The study of nav-
                           igation architectures is the study of principled designs for the software modules that con-
                           stitute a mobile robot navigation system. Using a well-designed navigation architecture has
                           a number of concrete advantages:

                           6.3.1   Modularity for code reuse and sharing
                           Basic software engineering principles embrace software modularity, and the same general
                           motivations apply equally to mobile robot applications. But modularity is of even greater
                           importance in mobile robotics because in the course of a single project the mobile robot
                           hardware or its physical environmental characteristics can change dramatically, a challenge
                           most traditional computers do not face. For example, one may introduce a Sick laser
                           rangefinder to a robot that previously used only ultrasonic rangefinders. Or one may test an
                           existing navigator robot in a new environment where there are obstacles that its sensors
                           cannot detect, thereby demanding a new path-planning representation.
                             We would like to change part of the robot’s competence without causing a string of side
                           effects that force us to revisit the functioning of other robot competences. For instance we
                           would like to retain the obstacle avoidance module intact, even as the particular ranging
                           sensor suite changes. In a more extreme example, it would be ideal if the nonholonomic
                           obstacle avoidance module could remain untouched even when the robot’s kinematic struc-
                           ture changes from a tricycle chassis to a differential-drive chassis.

                           6.3.2   Control localization
                           Localization of robot control is an even more critical issue in mobile robot navigation. The
                           basic reason is that a robot architecture includes multiple types of control functionality
                           (e.g., obstacle avoidance, path planning, path execution, etc.). By localizing each function-
                           ality to a specific unit in the architecture, we enable individual testing as well as a princi-
                           pled strategy for control composition. For example, consider collision avoidance. For
                           stability in the face of changing robot software, as well as for focused verification that the
                           obstacle avoidance system is correctly implemented, it is valuable to localize all software
                           related to the robot’s obstacle avoidance process. At the other extreme, high-level planning
                           and task-based decision-making are required for robots to perform useful roles in their
   301   302   303   304   305   306   307   308   309   310   311