“Robust Real-Time Reconfigurable Robotics Software Architecture” (“R4SA”) is the name of both a software architecture and software that embodies the architecture. The architecture was conceived in the spirit of current practice in designing modular, hard, real-time aerospace systems. The architecture facilitates the integration of new sensory, motor, and control software modules into the software of a given robotic system. R4SA was developed for initial application aboard exploratory mobile robots on Mars, but is adaptable to terrestrial robotic systems, real-time embedded computing systems in general, and robotic toys.

The R4SA Architecture features three levels correspond - ing to different levels of abstraction.
The R4SA software, written in clean ANSI C, establishes an onboard, real-time computing environment. The R4SA architecture features three layers: The lowest is the device-driver layer, the highest is the application layer, and the device layer lies at the middle (see figure).

The device-driver layer handles all hardware dependencies. It completely hides the details of how a device works. Activities directed by users are performed by means of well-defined interfaces. Each type of device driver is equipped with its own well-defined interface. For example, the device-driver interface for an analog-to-digital converter differs from that for a digital-to-analog converter.

The device layer provides the means for abstracting the high-level software in the application layer from the hardware dependencies. The device layer provides all motion-control computations, including those for general proportional + integral + derivative controllers, profilers, controllers for such mechanical components as wheels and arms, coordinate-system transformations for odometry and inertial navigation, vision processing, instrument interfaces, communication among multiple robots, and kinematics for a multiple-wheel or multiple-leg robot.

The application layer provides application programs that a robot can execute. Examples of application programs include those needed to perform such prescribed maneuvers as avoiding obstacles while moving from a specified starting point to a specified goal point or turning a robot in place through a specified azimuthal angle. Each robot is provided with application software representing its own unique set of commands. The software establishes a graphical user interface (GUI) for exchanging command information with external computing systems. Via the GUI and its supporting interface software, a user can select and assemble, from the aforementioned set, commands appropriate to the task at hand and send the commands to the robot for execution. System software that interacts with the R4SA software at all three levels establishes a synchronized control environment.

The R4SA software features two modes of execution: before real time (BRT) and real time (RT). In the BRT mode, a text configuration file is read in (each robot has its own unique file) and then device-driver-layer, device-layer, and application-layer initialization functions are executed. If execution is successful, then the system jumps into the RT mode, in which the system is ready to receive and execute commands.

One goal in developing the R4SA architecture was to provide one computer code for many robots. The unique executable code for each robot is built by use of a configuration feature file. The set of features for a given robot is selected from a feature database on the basis of the hardware and mechanical capabilities of that robot. Recompilation of code is straightforward: modifications can readily be performed in the field by use of simple laptop-computer development and debugging software tools.

This work was done by Hrand Aghazarian, Eric Baumgartner, and Michael Garrett of Caltech for NASA’s Jet Propulsion Laboratory.

The software used in this innovation is available for commercial licensing. Please contact Karina Edmonds of the California Institute of Technology at (626) 395-2322. Refer to NPO-41796.



This Brief includes a Technical Support Package (TSP).
Document cover
Robust Software Architecture for Robots

(reference NPO-41796) is currently available for download from the TSP library.

Don't have an account?



Magazine cover
NASA Tech Briefs Magazine

This article first appeared in the July, 2009 issue of NASA Tech Briefs Magazine (Vol. 33 No. 7).

Read more articles from this issue here.

Read more articles from the archives here.


Overview

The document outlines the Robust Software Architecture for Robots (R4SA), developed by NASA's Jet Propulsion Laboratory (JPL) under the Technical Support Package NPO-41796. The primary goal of R4SA is to create a software architecture that enables rapid prototyping of robotic systems, enhancing their functionality and adaptability in various applications, particularly in aerospace.

R4SA employs a three-layer software architecture consisting of:

  1. Device Driver Layer (DD): This lowest layer manages all hardware dependencies, including digital input/output, counters, and analog/digital drivers.
  2. Device Layer (DL): The middle layer abstracts the higher-level software in the Application Layer from hardware dependencies. It is responsible for motion control, vision processing, instrument interfaces, and kinematics for robotic components like the Mast and Instrument Arm.
  3. Application Layer (APL): The top layer where the actual applications run, utilizing the functionalities provided by the lower layers.

The R4SA environment is characterized by its self-supporting nature and strong partitioning of hardware features from sensor-motor functions, which enhances fieldability and simplifies the integration of new sensing and control modules. The architecture is designed to be modular and adheres to hard real-time aerospace system practices, ensuring that the real-time kernel is small, executables are fast, and the overall code structure is efficient with minimal overhead.

One of the significant advantages of R4SA is its ease of code recompilation, allowing for in-field modifications using standard laptop development and debugging tools. This flexibility has made R4SA a valuable resource for rapid prototyping in JPL’s Planetary Robotics Lab, where it has been successfully implemented on 14 different robots.

Additionally, the document highlights the successful technology transfer of R4SA to the Mars Exploration Rover (MER) Mechanical Systems Electrical Ground Support Equipment (EGSE). This transfer has passed the Support Equipment Certification Requirement (SECR) process, enabling its use with flight hardware and during various testing phases.

Overall, R4SA represents a novel approach to robotic software architecture, emphasizing modularity, efficiency, and adaptability, making it a significant advancement in the field of robotics and aerospace technology. The document serves as a resource for understanding the architecture's capabilities and its potential applications in broader technological contexts.