Page 144 - Designing Autonomous Mobile Robots : Inside the Mindo f an Intellegent Machine
P. 144

9
                                                                           CHAPTER





                                                             The Best Laid Plans


                                                         of Mice and Machines



               Having trampled our way through all of the requisite background subjects, we arrive
               at last at the fun part. We must now structure a software environment that enables
               our robot or vehicle to move purposefully and safely through its environment, using
               data that is often incomplete and even contradictory. This structure must also be
               flexible enough to undergo evolution as sensors and algorithms evolve.

               The answer is to create an almost schizophrenic process, in which one half is the
               optimistic planner and executer, and the other half is the skeptical critic and back-
               seat driver. Navigation in autonomous robots is actually two almost completely separate
               processes that take place at the same time. The first process assumes that the posi-
               tion estimates are correct, and executes a plan. The second process monitors the
               progress and sensor systems, and corrects the odometry estimates as appropriate.
               First, let’s consider planning.
               The trick to the planner part is that the planning process must be capable of having
               its preconditions changed on a continual basis without becoming disoriented. This
               means that the process is dynamic, keeping little static information about its previous
               plans. If it had been planning to converge on a path from the left, and the planner
               suddenly finds it is mysteriously already on the right side of the path, it must simply
               adapt its approach without missing a beat.

               There are two immutable laws we must accept:
                   1. A robot is never exactly where its position estimate says it is.

                   2. A robot’s position estimate is never exactly where it wants to be.








                                                       127
   139   140   141   142   143   144   145   146   147   148   149