Software featuring a multilevel architecture is used to control the hardware on the K9 Rover, which is a mobile robot used in research on robots for scientific exploration and autonomous operation in general. The software consists of five types of modules:

  • Device Drivers — These modules, at the lowest level of the architecture, directly control motors, cameras, data buses, and other hardware devices.
  • Resource Managers — Each of these modules controls several device drivers. Resource managers can be commanded by either a remote operator or the pilot or conditional-executive modules described below.
  • Behaviors and Data Processors — These modules perform computations for such functions as planning paths, avoiding obstacles, visual tracking, and stereoscopy. These modules can be commanded only by the pilot.
  • Pilot — The pilot receives a possibly complex command from the remote operator or the conditional executive, then decomposes the command into (1) more-specific commands to the resource managers and (2) requests for information from the behaviors and data processors.
  • Conditional Executive — This highest-level module interprets a command plan sent by the remote operator, determines whether resources required for execution of the plan are available, monitors execution, and, if necessary, selects an alternate branch of the plan.

This program was written by John L. Bresina and Maria Bualat of Ames Research Center; Michael Fair and Anne Wright of QSS Group, Inc.; and Richard Washington of Research Institute for Advanced Computer Science. For further information, access the Technical Support Package (TSP) free on-line at under the Software category.

Inquiries concerning rights for the commercial use of this invention should be addressed to

the Ames Innovative Partnerships Office at (650) 604-2954.

Refer to ARC-14587-1.

NASA Tech Briefs Magazine

This article first appeared in the March, 2006 issue of NASA Tech Briefs Magazine.

Read more articles from the archives here.