[comp.robotics] CHIMERA II Real-Time Operating System

stewart@faraday.ece.cmu.edu (David B Stewart) (05/23/91)

As per your requests, I have enclosed information on the CHIMERA II
Real-Time Operating System.  If you have any questions or comments,
please feel free to ask.

Dave (stewart@ece.cmu.edu)

-----------------------------

	        CHIMERA II Real-Time Operating System
	        =====================================

			    Developed by
	  David B. Stewart, Donald E. Schmitz, and Pradeep Khosla

		  Advanced Manipulators Laboratory
		       The Robotics Institute
		     Carnegie Mellon University
		        Pittsburgh, PA 15213

The CHIMERA II Real-Time Operating System has been developed by the
Advanced Manipulators Laboratory at Carnegie Mellon University for
sensor-based control applications, such as robotics, process control,
and manufacturing systems.

CHIMERA II provides most of the features available in commercial
real-time operating systems, and performs as well as VxWorks, OS-9,
VRTX, and iRMX II.  In some cases, such as interprocessor
communication, CHIMERA II performance is an order of magnitude faster.
The main strength of CHIMERA II, however, lies in the multitude of
features offered which are necessary for quickly developing reusable
and standardized code, but are not available in other real-time
operating systems.

CHIMERA II is a VME-based operating system which supports multiple
general and special purpose processors.  It offers hardware
independence of binary executables, express mail for an extended file
system, fast prioritized message passing, transparent global shared
memory, remote semaphores, and a powerful interface between the
non-real-time host workstation and the real-time environment.  

An extensive set of utility libraries are also provided, including
typical UNIX libraries (e.g. strings, math, random, qsort, time, etc.),
a concurrent standard I/O (e.g. printf, fgets, etc. with multitasking
synchronization), a matrix package (e.g. addition, inverse, gaussian
elimination, determinant, etc.), and a command interpreter library of
routines for quickly developing custom command-line interfaces.

By default, the CHIMERA II real-time kernel supports both fixed (e.g.
Rate Monotonic Algorithm) and dynamic priority scheduling (including
earliest-deadline-first, and the maximum-urgency-first scheduling
algorithm recently developed at CMU).  It uses a policy/mechanism
separation which allows the user to easily customize any part of the
kernel or to add a new scheduler.  CHIMERA II can detect missed
deadlines, and provides failure handlers to handle task execution
during transient overload conditions.  Two-level device driver support,
user redefinable C-language exception handlers, and a C-language
interface to interrupt handlers remove the need for using assembly
language in any part of the control code.

Hardware timers are controlled by the operating system, thus allowing
software developers to write programs with timing constraints for any
number of tasks, through the use of a few simple routines.  This
method allows any number of tasks to pause on a time signal, regardless
of the number of timers available in hardware.  Periodic and Aperiodic
tasks are all programmed in the same way, and deadline and execution
times may optionally be specified for use with dynamic scheduling
algorithms.

Programming of reusable code on VME-based systems is often very
difficult, because of the multitude of address spaces that exist
within the bus and every processor in the system.  With CHIMERA II,
all the address space conversions and manipulations are taken
care of by the operating system.  Programmers can then write
code which is independent of the hardware configuration being used,
and hence allows for the developments of reusable and reconfigurable
software.

CHIMERA II is already being used by many systems in university,
industry, and government labs.  At Carnegie Mellon University, the
following systems are using CHIMERA II:  CMU Direct Drive Arm II,
Reconfigurable Modular Manipulator System, Rapid 3D Assembly Troikabot,
Self-Mobile Space Manipulator, Amada Steel Sheet Bending System, and
the Mobile Manipulator.  CHIMERA II has allowed all of these systems to
share both software and hardware, thus reducing the development
costs and improving the flexibility of the systems available.

CHIMERA II has also proven itself to be an excellent testbed for
real-time systems research, because every part of the kernel can easily
be overriden by user's code.  


SUPPORTED HARDWARE 
------------------

The one major disadvantage of CHIMERA II as compared to commercial
products such as VxWorks, OS-9, pSOS, etc. is in the diversity of
hardware supported.  Because CHIMERA II is a research project and not a
commercial product, only a very limited set of hardware is supported.

Currently, CHIMERA II runs on Ironics series of processors, including
the IV3201a, IV3204a, and IV3220 which are M68020-based single board
computers (SBC), and the IV3230 which is an M68030-based SBC.
These SBCs are all VME-based.  The code may be ported to other
vendor's SBCs, but some amount of porting will be required.  

The VME system must be hosted by a Sun Workstation, on which the
development, editing, compilation, and downloading of code is
performed.  Either a Sun 3 or Sun 4 with VME bus can be used.  The SBCs
may be placed either directly in the Sun backplane (with appropriate
6U-9U form adaptors), or in a separate VME card cage, with a BIT-3
(Model 412 or Model 413) VME-to-VME adaptor.  A Sun SPARCstation with
BIT-3 Model 466 SBus-to-VME bus adaptor may also be used, but with
limitations (i.e. maximum 3 SBCs are currently supported). The use
of any other type of adaptors has not been tested, but they should
work.

If a Sun-4 or SPARCstation is used as a host, then network access to a Sun-3
is still required to compile code.  The Sun-3 compiler is used to generate
the M680X0 code required by the SBCs.

With our experience, any kind of VME-based special purpose processor (SPP)
(e.g. floating point accelerator, lisp machine, transputer, vision
system, digital signal processor, etc.) can be used in the system.
These SPPs are "slaves" to the general purpose processors which are
executing the CHIMERA II kernel.  Device drivers are recommended
for SPPs. 

CHIMERA II Device drivers are much simpler to write than their UNIX
counterparts.  In general, there is nothing "special" about a device
driver for an SPP, except that it forces the programmer to develop code
modularly.

I/O devices (e.g. Serial I/O, Parallel I/O, ADC/DAC, frame grabbers, etc.)
are also supported.  Like SPPs, they also require device drivers.
Several device drivers are already provided with the current release
of CHIMERA II (e.g. IV3220 and IV3230 serial ports device driver and
XYCOM Model 240 parallel I/O device driver).  These are not only offered
as samples, but can be used in your system if you have the same hardware.


DISTRIBUTION POLICY
===================

CHIMERA II is distributed free of charge. Redistribution in whole or
part is permitted as long as the authors' names and institution remain
intact on all software and documentation, and that no monetary or
material items are received as payment.  Modifications to the software
and documentation are also permitted with the same requirement that
authors' names and institution remain intact, and that the
modifications may be obtained by the authors and CMU and included in
future revisions free of charge.  CHIMERA II cannot be made part of any
other product or package for which monetary compensation is received,
without the prior written consent of the authors and CMU.  The authors
and CMU reserve the right to change the distribution policy at any time
without notice.

In order to cover the costs of 1/4" cartridge (3-1/2" disks available
for SPARCstations), shipping, and manual reproduction, we ask for a
$50.00 contribution made payable to "Carnegie Mellon University".

Current Release:	CHIMERA II Version 1.02b
Next Release:		Version 1.10 due June 1, 1991.

SunOS 4.0.1 or later is required on the host Sun Workstation.


REFERENCES
==========

Stewart, D. B., and P. K. Khosla, "Real-Time Scheduling of
    Sensor-Based Control Systems", in Proceedings of Eighth IEEE
    Workshop on Real-Time Operating Systems and Software, Atlanta GA,
    May 1991, pp. 144-150.

Stewart, D. B., D. E. Schmitz, and P. K. Khosla, "Implementing
    Real-Time Robotic Systems using CHIMERA II," in Proceedings of 1990
    IEEE International Conference on Robotics and Automation,
    Cincinnatti, OH, May 1990, pp. 598-603.

Stewart, D. B., D. E. Schmitz, and P. K. Khosla, "CHIMERA II: A Real-Time
    Multiprocessing Environment for Sensor-Based Robot Control," in 
    Proceedings of IEEE International Symposium on Intelligent Control,
    Albany, NY, Sept 1989, pp. 265-271.


Copies of these papers, or a more detailed technical report, are
available from the author.  Copies of CHIMERA II are also available
(please include $50.00 for cartridge, shipping and manual).

	    David B. Stewart
	    ECE Dept.
	    Carnegie Mellon University
	    Pittsburgh, PA  15213

	    Tel:   (412) 268-7120
	    email: stewart@ece.cmu.edu