The Robonaut control system combines operator commands, force data and kinematic algorithms with safety rules to provide real-time joint control for Robonaut.
Robonaut Control System Architecture
The Robonaut control system architecture must respond to several interesting challenges. It must provide safe, reliable control for 47+ degrees-of-freedom. It must be controllable via direct teleoperation, shared control, and full autonomy. It must maintain performance in a harsh thermal environment. It must execute at the required rate on reasonable computing hardware. These challenges cannot be met by using only classical robot control methods. Advanced control theory in the areas of grasping, force control, intelligent control, and shared control must be developed to the point where the control is suitable for critical applications to fully realize the capability of the Robonaut.
The overall control architecture is being developed around the concept of creating sub-autonomies which are used to build the main system. These autonomies each combine controllers, safety systems, low-level intelligence, and sequencing. As a result, each is a self contained, peer system which interacts with the other peers. An example of the force controller sub-autonomy is shown on the right. The force safety system is an integral part of the sub-autonomy. Its limits are controlled by the force sequencer which configures the sub-autonomy for the selected force mode. When the safety system detects a problem, an input reaches a design criteria. Similarly, when a mode change occurs the force sequencer handles an orderly configuration change of the force control sub-autonomy. The mode of the joint control system required to implement the force mode is decided by the force sequencer and is sent to the joint control sub-autonomy.
System sub-autonomies include task sequences, Cartesian control, vision, teleoperator interface, joint control, and grasping among others. Higher level sub-autonomies make decisions as to what services the lower level sub-autonomies need to provide to implement the required tasks. The overall system design makes conflicts in requests for services either impossible or allows for arbitration by system level autonomies. Each sub-autonomy handles its own internal safety and decision making. If a failure occurs, a lower level sub-autonomy can request a shutdown or reconfiguration from a higher level sub-autonomy or the main system controller which will handle the system level actions required. The advantages of this approach are each sub-autonomy can be developed and tested individually, enhancing the object oriented aspect of the system.
Aldridge, H., Bluethmann, B., Ambrose, R., Diftler, M., "Control Architecture for the Robonaut Space Humanoid," Proceedings: The First IEEE-RAS International Conference on Humanoid Robots, Cambridge, Massachusetts, September 2000.
The computing environment chosen for the Robonaut project includes several state-of-the-art technologies. The PowerPC processor was chosen as the real-time computing platform for its performance and its continued development for space applications. The computers and their required I/O are connected via a VME backplane. The processors run the VxWorks real-time operating system. This combination of flexible computing hardware and operating system supports varied development activities.
The software for Robonaut is written in C and C++. ControlShell, a software development environment for object oriented, real-time software development, is used extensively to aid in the development process. ControlShell provides a graphical development environment which enhances the understanding of the system and code reusability.
A recent augmentation to the control system is the ability to command Robonaut remotely. Through this Application Programmer's Interface (API), every degree-of-freedom on the Robonaut system is available to be controlled remotely. Opening Robonaut to the external world sets the stage for growth opportunities, including ground control of a very remote Robonaut. From within the Robonaut team, the human tracking software and two separate force feedback controllers were developed and rapidly integrated through the API. For external researchers looking to work with Robonaut, the API allows a pathway into Robonaut without becoming intimately familiar with the internal workings of the system. The API is also compatible with the Robonaut simulation. This will allow development under the safety of simulation. Once the algorithms are working in simulation, they will be able to be ported seamlessly to hardware.
Software Development / Rapid Software Prototyping
Several methods for rapid software prototyping are utilized by the Robonaut project. System models and controller designs developed in Matlab are converted to C code directly by using the Matlab Real-Time workshop. This capability to rapidly produce code directly from verified system results allows many different techniques to be tried on hardware. The generated code can also be tested using the Enigma based graphical simulation of the Robonaut system. The Robonaut program also uses the Cooperative Manipulation Testbed (CMT) facility. The CMT is made up of three manipulators and their tooling. The three manipulators are seven degree of freedom devices. Two manipulators are identical while the third is a larger, scaled version of the others. This similar/dissimilar arrangement allows for testing of homogenous and heterogeneous tasks. The smaller manipulators have three fingered hands for tooling. This flexible tooling allows the manipulators to handle a wide variety of tasks. The larger manipulator has a quick-change mechanism allowing it to autonomously change special purpose end-effectors. All manipulators have six axis end-effector force/torque sensors and joint torque sensors for high bandwidth force control. The computing and development environment for CMT is identical to the Robonaut system for rapid software transfer, develop and test software and controls.