The DLR Hand II provides an excellent platform for the development of future grasping strategies. In order to handle the complexity of hardware, sensors and applications, an appropriate hard- and software structure has to be provided.
The hand system's information processing architecture consists of hardware, software and communication structures. The hand uses a serial communication system, allowing it to be integrated into any robot system, in particular in different generations of DLR's lightweight robot with a customized tool retainer. The result is a system that is both compact and easy to use.
The communication system of the DLR Hand II has been structured as modular as possible in order to provide for easy access to measured data, simple maintenance and quick replacement or enhancement of parts of the system to adapt to new needs in experiments and applications. In this context data processing has been parted in multiple levels of abstraction.
In the lowest Hardware Level, data is collected and conditioned in analog, time-continuous hardware. The Communication Protocol Level represents control of the data collection process and the logical transmission of digitized sensor values to higher levels. Finally on levels three and higher, software implementation of algorithms is applied to process measurements and produce control signals at multiple levels of complexity.
This lowest level of data processing consists of analog time-continuous or quasi time continuous hardware. We use off-the-shelf control hardware components outside of the DLR Hand II to control the hand. In compliance with modular design considerations the capacity of the external processor can be customized without an expensive redesign. The data in DLR Hand II is collected from the sensors and conditioned for further processing. Wiring effort in and towards the hand had to be kept low to use the hand flexibly at different robot systems. Thus, the sensor data in DLR Hand II is collected by a network of FPGAs and sent serially to a higher level digital signal processing controller. The serial data transport is governed by a protocol implemented on the Communication Protocol Level. The use of FPGAs allows a flexible structure of data collectors. Any new data source can be easily integrated in the system. The data is made available to the Data Processing Level and higher levels on the control computers through a dual ported memory board that allows mutual access to data from the FPGA network as well as from external processor hardware.
Data Collection and Signal Conditioning Hardware
In order to allow sensitive interaction with the environment DLR Hand II has been equipped with various sensors for position, velocity, joint torque and temperature sensors measurement. The effort to collect and condition a given sensor signal is governed by the intended use of this data. The physical data of the sensor, e.g. the voltage output of a potentiometer, is led to the sensor signal preprocessing. This is located directly beside the sensor itself and consists of an impedance converter and an instrumentation amplifier with a Butterworth low pass filter of 3rd order. This circuit is followed by a 12 bit A/D converter, which is located as close as possible to the sensor signal conditioning circuits in each finger link in order to keep wiring effort and noise induction low. The converters are sampled asynchronously more than ten times faster than the actual control system clock rate, guaranteeing a quasi continuous data stream and leaving space for further extensions. The data is sent through a serial communication link to a finger data collector implemented in an FPGA. Each finger data collector routes its data serially to the hand data collector which reroutes all collected data to the dual ported RAM board. For simplicity, all sensors irrespective of their actual need of resolution use the same 12 bit A/D converters. Therefore, each moving link of the finger is equipped with one 8-channel 12 bit A/D converter. The non moving base board of each finger houses two of these A/D converters. In total, this results in five converters per finger providing 40 channels. Currently 25 channels are used, leaving 15 channels available for further applications like additional tactile sensors.
Command Signal Distribution
Control values for the motors coming from the control software are distributed in the reverse way of the sensor signal collection. To separate the power electronics from signal processing devices an additional galvanical decoupling is introduced between the finger controller and the power electronics.
In order to be easily scalable and to guarantee simple access to both code and data of the controller, all higher level data processing was implemented on two industrial PowerPC VME-bus boards. For communication with external computers and data sources, both boards are provided with LAN connection and serial interface. Both VME boards run the real-time operating system VxWorks.
EEPROM for calibration data
Calibration parameters for sensors vary in-between sensors as well as between fingers. To maintain modularity and exchangeability of hardware, these parameters are stored in the individual fingers. Therefore each finger is equipped with an EEPROM to store the parameters for the corresponding finger. Upon powering up the system the parameters are read.
Communication Protocol Level
In order to collect and transmit data, a hierarchical serial communication system has been implemented in the palm and the fingers of DLR Hand II. It is implemented in FPGAs according to the IEEE 1355 standard, which specifies a slim protocol layer, prevents collisions, and supports different physical transmission mediums. The character links of the network are realized with data and strobe lines in both directions resulting in four lines. A heartbeat event activates the data collector to take the shared memory data by a package and send it to the host. A special character with high priority is used to transmit the heartbeat event to all data collectors for real-time system synchronization. A host interface controller with a dual ported memory interface to the host CPU handles the incoming packages with the sensor values, prepares the outgoing packages with the actuator values to send them to the data collectors, and generates the heartbeat event to synchronize the system. In DLR Hand II a physical data rate of 10 Mbits allows a full cycle sampling sensor data, computing and setting actuator values every millisecond.
Control Software Architecture
The multilevel, modular structure of the whole hand system is also introduced in the hand's software architecture. Data processing in software is realized in four more major logical levels. Levels are increasing from the lowest Communication Protocol Level. The following Data Processing Level performs all computations needed to convert digitized sensor values to applicable measurements in SI units. Following is the Lower Controller Level, which performs basic control, system monitoring and safety tasks concerned with individual fingers, joints and sensors. The fourth software level, the Higher Controller Level implements coordinated controllers for all fingers and performs basic operations that can be used by external command generators from the highest External Command Level.
Data Processing Level
In this level for each finger, one independently scheduled task waits for newly arrived sensor data signalized by interrupt. In most cases, the data has to be processed to be interpreted by other tasks. Most signals can be converted using a linear measurement function. However some signals can better be fit by higher order polynomials or special computations.
Lower Controller Level
In this level, the controller loop awaits a heartbeat interrupt and processed measurements of all fingers to synchronize with the hardware clock. In a second step, joint or Cartesian commands are received from the Higher Controller Level. Next to these command values, control values are also received, which govern the choice and parameterization of controllers and the on-off status of motors etc. Consecutively, one step in the desired type of controller is performed. Implemented types of controllers contain joint level impedance control with friction and gravity compensation, zero torque control and two different implementations of Cartesian control. Finally, extensive safety checks are performed including joint and temperature limits, sensor signal validity and communication system integrity. Resulting errors are reported at a lower priority in an extra task to ensure proper time behavior also in faulty cases. In case of a major system fault, a post mortem dump of sensor values and commands is possible to help reconstructing and removing errors.
Higher Controller Level
In this level basic skills are provided like coordinated controllers and higher level data processing necessary to perform complex tasks. These basic skills comprise for example detection of contact, estimation of the velocity of a grasped object or an interface to a data glove. In contrast to the Lower Controller Level, here it is urgently necessary to be able to switch from one type of control to another in a smooth transition without having to terminate one control type first. For this reason, operations and controllers spawned in this level are controlled by a specially designed scheduler, governing a state machine for each operation, in this context called an application. Context dependent security checks have to be performed on this level.
We distinguish two types of applications: commanding applications and assisting applications. The first kind comprises for example closed loop controllers and different kinds of reference position generators, e.g. data glove interfaces. There can be only one active commanding application at a time. The latter type includes all applications providing and processing data for one commanding application. There can be multiple assisting applications active at once.
Program Flow of the Higher Controller Level
The scheduling mechanism is included in the program flow of level five. The control task awaits measurements from the Lower Controller Level and hereby indirectly synchronizes to the hardware clock. Consecutively it checks for commands from external sources, reschedules and executes applications and sends the resulting commands. Interfaces to external command generators are constructed as separate RPC or serial interface drivers that communicate through an assisting application with the control task.
External Command Level
The developed modular level concept was designed mainly to perform different tasks on a high abstraction level. The realization of these tasks can be done on any computer platform. The External Command Level is provided with interfaces to the lower levels through a RPC connection. A graphical task oriented programming system has been connected to DLR Hand II as well as several control and monitor menus to evaluate the state of the system. Using these basic interfaces, many applications have been developed.