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