The Navlab system for mobile robot navigation

Mobile robots are useful for a broad range of tasks including factory automation, hazardous waste removal, planetary exploration, defense, and construction. Navigation is an important component in these applications in order to transport materials and position sensors for data acquisition. The robot's software must coordinate the sensing and robot control to recognize landmarks, detect and avoid obstacles, and guide the robot along navigable passageways. The system must be organized in such a way that high-level, symbolic instructions can be systematically converted into low-level control signals to move the robot about. In this thesis, we address the architectural and planning issues involved in building a mobile robot system. We begin with CODGER, a software engineering tool for building complex robot systems for execution in a distributed programming environment. It employs a common data representation with information hiding, synchronization primitives for the exchange of data between parallel modules, and a central geometric reasoning system to assimilate data taken at different times and places into a consistent form. We describe a hierarchical architecture for navigation implemented atop CODGER that separates high-level route planning from low-level sensing, trajectory generation, and driving operations. We illustrate a control scheme known as the driving pipeline that employs parallelism to maximize the velocity of the robot. We illustrate how parameters of this control scheme such as the aiming of sensors and adjustment of robot speed affect parallelism, continuous motion, and robot behavior. We extensively address the problem of trajectory planning in local navigation. Our system is capable of planning trajectories while taking into account the visibility of landmarks, kinematic constraints such as a minimum turning radius, robot safety, and uncertainly in the robot's control and the environment. Multi-resolution techniques are employed to reduce the number of states needed in the search space and thus the planning time. Furthermore, we establish a framework for reasoning about a broad class of constraints to allow this work to be extended to other classes of robots, environments, and goal specifications. Many of the ideas in this thesis were implemented and tested on the NAVLAB (NAVigational LABoratory), an outdoor mobile robot.