Details on the Navigation System

The overall navigation software system is divided into on-board and off-board components, communicating via two radio links for video and data (eventually, many of the off-board processes will be moved on-board). The basic data flow is that the stereo process produces terrain elevation maps which are passed to the obstacle avoidance planner which uses them to evaluate the efficacy of traveling along different paths. These recommendations are merged (in semi-autonomous mode) with the desires of a human operator to choose the best path to traverse (in autonomous mode, there is typically no operator input). The command arbiter then forwards steering and velocity commands to the off-board controller, which packages them up and ships them, using the RCP protocol developed at Sandia Laboratories, to the on-board controller which then executes the commands and returns status and sensor information.

Concurrency is very important in achieving the levels of performance needed (1-2 Hz cycle time is desirable). In particular, perception and planning functions run simultaneously: while the obstacle avoidance planner is using one stereo elevation map to evaluate paths, the stereo system is processing another image. When stereo completes, it asynchronously sends the image to the planner. Likewise, the arbiter is getting asynchronous path evaluations from the planner and user interface, combining the most recent information to produce steering commands. Meanwhile, the controller module is receiving asynchronous commands and requests for pose information from different modules. While it is admittedly more difficult to develop and debug distributed, concurrent systems, they have great advantages in terms of real-time performance and modularity in design and implementation.

LRD Navigation Group - (last updated in March 1995)
Comments? Suggestions? Requests? Please send e-mail to!