Real-time Control System Software

The Real-time Control System (RCS) is a software system developed by NIST based on the Real-time Control System Reference Model Architecture, that implements a generic Hierarchical control system. The RCS Software Library is an archive of free C++, Java and Ada code, scripts, tools, makefiles, and documentation developed to aid programmers of software to be used in real-time control systems (especially those using the Reference Model Architecture for Intelligent Systems Design).

Introduction
RCS has been used in automated manufacturing, robotics, and automated vehicle research at NIST. The software consists of a C++ library and GUI and configuration tools written in a variety of software languages. The Software Library is offering the following RCS tools:
 * RCS Java-based Diagnostics Tool : A tool written as a java applet that allows programmers to see the status and send commands to any RCS module.
 * RCS Java-based Diagnostics Tool Instructions : Instructions on how to build applications for use with the diagnostics tool.
 * RCS-Design Tool : A tool written as a java applet that allows programmers to create RCS applications graphically and generates source code.
 * RCS-Design Tool Instructions : Instructions on how to build applications with the RCS-Design tool.
 * RCS Data Plotter : A Java applet which plots data on a cartesian or polar graph, read either in real-time or from a text file.
 * Socket Interface to NML : Describes how to connect to an NML server using sockets directly. This information should also be useful for other languages where the C++ NML client interface is not available.
 * RCS Posemath Library : A library of classes for representing positions, rotations, and translations in a variety of coordinate systems and the functions to add/subtract/multiply/divide/convert them. For more info on posemath you may also want to check out: Karl Murphy's Posemath Examples
 * RCS Library Lower Level Utilities : Describes many of the lower level utilities used to create the NODE, CMS, and NML components of the RCS Library but which may be useful on their own. Includes timers, semaphores, linked-lists, printing, and windows functions.
 * RCS Library Installation Instructions : Provides instructions for getting and making the RCS Library.
 * RCS Library Version Functions : Documentation for some functions for determining at run-time which version of the RCS library your using.

RCS applications

 * Robocrane - RCS controlled a crane having six degrees of freedom. It incorporated tactile, proximity and vision sensors.
 * Next Generation Inspection System - RCS controlled a Coordinate Measuring Machine, with sensors including analog touch probes, video camera, and laser rangefinder.
 * Intelligent Autonomous Vehicles - RCS controlled a group of autonomous vehicles, at a high level coordinating their movements, and a low level controlling their steering, throttle and brakes. Sensors included an Inertial navigation system and differential GPS.
 * Enhanced Machine Controller, or EMC - an NIST research project in CNC software that uses RCS.