The current development of applications for sensor-based robotic and automation (R&A) systems is typically a "one-of-a-kind" process, where most software is developed from scratch, even though much of the code is similar to code written for other prior applications. The cost of these systems can be drastically reduced and the capability of these systems improved by providing a suitable framework that supports the development of reusable and rapidly reconfigurable real-time software for all R&A systems.
The framework provides for the systematic development and predictable execution of R&A applications while maintaining the ability to reuse code from previous applications. The primary motivations for our approach include the following:
- Reconfigurable hardware, such as open architecture computing environments (e.g. VMEbus) and reconfigurable machinery (e.g. Carnegie Mellon’s Reconfigurable Modular Manipulator System) require reconfigurable software in order to take full advantage of the hardware capabilities.
- Reconfigurable software is useful for supporting multiple applications on a fixed hardware setup.
- Generic graphical user interfaces and programming environments for R&A applications (such as Onika) require that the underlying system be reconfigurable.
Other major advantages of designing applications to use reconfigurable software, even for systems which do not have to be reconfigurable, include the following:
- Reusable Software: Any software that is developed for a reconfigurable system is inherently reusable.
- Expandability: Existing hardware can be upgraded or new hardware or software added to the system without reprogramming the application.
- Technology Transfer: A module (and hence the technology implemented within that module) can easily be transferred to other institutions which are also using the framework.
Modules are reconfigurable only if their design and implementation is both independent of the target application and independent of the target hardware configuration.
The framework combines object-oriented design of real-time software with port-automaton design of digital control systems. A control module is an instance of a class of port-based objects. A task set is formed by integrating objects from a module library to form a configuration, which maps into a job at higher levels. State variables are used for the automatic integration of these objects. A subsystem is a collection of jobs which are executed sequentially, and can be programmed by a user. Multiple subsystems can execute in parallel, and operate either independently or cooperatively.
Our framework defines classes of reconfigurable device driver objects for proving hardware independence of I/O devices, sensors, actuators, and special purpose processors. Hardware independent real-time communication mechanisms for inter-subsystem communication are also defined.
Tools to support the implementation of this framework have been built into the Chimera Real-Time Operating System, which was also developed at CMU. Software for the control module, device driver, and subroutine libraries have already been implemented. As the libraries continue to grow, they form the basis of code that can be used by future R&A applications. There will no longer be a need to develop new applications from scratch, since many required modules will already be available in these libraries.
past head
- Pradeep Khosla
past contact
- Pradeep Khosla