The Robotics Laboratory
This chapter describes the developed concept
and set-up of our robotic laboratory. It is aimed at the
technically interested reader and explains some of the hardware
aspects of this work. A real robot lab is a testbed for ideas
and concepts of efficient and intelligent controlling,
operating, and learning. It is an important source of
inspiration, complication, practical experience, feedback, and
cross-validation of simulations. The construction and working of
system components is described as well as ideas, difficulties
and solutions which accompanied the development.
For a fuller account see (Walter and Ritter
1996c). Two major classes of robots can be distinguished:
robot manipulators are operating in a bounded
three-dimensional workspace, having a fixed base, whereas
robot vehicles move on a two-dimensional surface – either by
wheels (mobile robots) or by articulated legs intended for
walking on rough terrains. Of course, they can be mixed, such as
manipulators mounted on a wheeled vehicle, or e.g. by combining
several finger-like manipulators to a dextrous robot hand.
2.1 Actuation: The Puma Robot
The domain for setting up this robotics
laboratory is the domain of manipulation and exploration with a
6 degrees-of-freedom robot manipulator in conjunction
with a multi-fingered robot hand. The compromise solution
between a mature robot, which is able to

Figure 2.1:
The six axes Puma robot
arm with the TUM multi-fingered hand
fixating a wooden “Baufix” toy airplane. The 6D
force-torque sensor (FTS) and the end-effector mounted camera is
visible, in contrast to built-in proprioceptive
joint encoders.

Figure 2.2:
The Asymmetric
Multiprocessing “Road Map”. The main hardware
“roads” connect the heterogeneous system components and
lay ground for various types of
communication links. The LAN Ethernet (“Local Area Network”
with TCP/IP and max. throughput 10 Mbit/s) connects the
pool of Unix computer workstations
with the primary “robotics host” “druide” and the “active
vision host” “argus” . Each
of the two Unix SparcStation is bus master to a VME-bus
(max 20 MByte/s, with 4 MByte/s S-bus link). “argus”
controls the active stereo
vision platform and the image processing system (Datacube, with
pipeline architecture).
“druide” is the primary host, which
controls the robot manipulator, the robot hand, the sensory
systems including the force/torque wrist sensor, the tactile
sensors, and the second image processing system. The hand
sub-system electronics is coordinated by the “manus”
controller, which is a second VME bus master and also accessible
via the Ethernet link. (Boxes with rounded corners
indicate semi-autonomous sub-systems with CPUs enclosed.)
carry the
required payload of about 3 kg and which can be turned
into an open, real-time robot, was found with a Puma 560
Mark II robot. It is probably “the” classical industrial robots
with six revolute joints. Its geometry and kinematics1
is subject of standard
robotics textbooks (Paul 1981; Fu, Gonzalez, and Lee 1987). It
can be characterized as a medium fast (0.5 m/s straight line),
very reliable, robust “work horse” for medium pay loads. The
action radius is comparable to the human arm, but the arm is
stronger and heavier (radius 0.9 m; 63 kg arm weight). The Puma
MarkII controller comprises the power supply and the servo
electronics for the six DC motors. They are controlled by six
parallel microprocessors and coordinated by a DEC LSI-11 as
central controller. Each joint microprocessor (Rockwell 6503)
implements a digital PD controller, correcting the commanded
joint position periodically. The decoupled joint position
control operates with 1 kHz and originally receives command
updates (setpoints) every 28ms by the LSI-11.
In the standard application the Puma is
programmed in the interpreted language VAL II, which is
considered a flexible programming language by industrial
standards. But running on the main controller (LSI-11
processor), it is not capable of handling high bandwidth sensory
input itself (e.g., from a video camera) and furthermore, it
does not support flexible control by an auxiliary computer. To
achieve a tight real-time control directly by a Unix
workstation, we installed the software package RCI/RCCL (Hayward
and Paul 1986; Lloyd 1988; Lloyd and Parker 1990; Lloyd and
Hayward 1992).
The acronym RCI/RCCL stands for Real-time
Control Interface and Robot Control C Library. The
package provides besides the reprogramming of the robot
controller a library of commands for issuing high-level motion
commands in the C programming language. Furthermore, we patched
the Sun operating system OS 4.1 to sufficient real-time
capabilities for serving a reliable control process up to about
200 Hz. Unix is a multitasking operating system,
sequencing several processes in short time slices. Initially,
Unix was not designed for real-time control, therefore it
provides a regular process only with timing control on a coarse
time scale. But real-time processing requires, that the
system reliably responds within a certain time frame.
RCI succeeded here by anchoring the
synchronous trajectory control task (a special thread) at a
special device driver serving the interrupts from a timer card.
The control task is thus running independently and
outside the planning task. By this means, sensory
information (e.g. camera or force sensors) can be processed and
feedback in a very effective and convenient manner.
For example, by default our DLR 6D wrist
sensor is read out about the currently exerted force and torque
vector (3+3=6 D) between the robot arm and the robot hand (Fig.
2.1, 2.4). The DLR Force-Torque-Sensor (FTS) was developed by
the robotics group of Prof. Hirzinger of the DLR,
Oberpfaffenhofen, and is a spin-off fromthe ROTEX Spacelab
mission D2 (Hirzinger, Brunner, Dietrich, and Heindl 1994). As
indicated in Fig. 2.2, the FTS is an micro-controller based
sensory sub-system, which communicates via a special field-bus
with the VME-bus.

Figure 2.3:
A two-loop control scheme
for the mixed force and position control.
The inner, fast loop runs on the joint micro controller
within the Puma controller, the
outer loop involves the control task on “druide”.
The resulting robot control system allows us to implement hybrid
control architectures using the position control interface. This
includes multisensor compliant motions with mixed force
controlled motions as well as controlling an artificial spring
behavior. The main restriction is the difficulty in controlling
forces with high robot speeds. High speed motions with
environment interaction need quick response and therefore
require, a very high frequency of the digital force control
loop. The bottleneck is given by the Puma controller structure.
The realizable force control includes a fast inner position loop
(joint micro controller) with a slower outer force loop
(involving the Sun “druide”). But still, by generating
the robot trajectory setpoints on the external Sun workstation,
we could double the control frequency of VAL II and establish a
stable outer control loop with 65 Hz.
Fig. 2.3 sketches the two-loop control scheme
implemented for the mixed force and position control of the
Puma. The inner, fast loop runs on the joint micro controller
within the Puma controller, the outer loop involves the control
task on the Sun workstation “druide”.

The guard block checks on specified sensory patterns,
e.g., forcetorque ranges for each axes and whether the robot is
within a safe-marked work space volume. Depending on the desired
action, a suitable controller scheme and sets of parameters must
be chosen, for example, S, gains, stiffness, safe
force/position patterns). Here the efficient handling and access
of parameter sets, suitable for run-time adaptation is an
important issue.
Figure 2.4:
The endeffector.
(left:) Between the arm and the hydraulic hand, the
cylinder shaped FTS device can measure current 6D force
torque values. The three finger
modules are mounted here symmetrically at the 12 sided regular
prism base. On the left side, the color video camera
looks at the scene from an end-effector
fixed position. Inside the flat palm, a diode laser is directed
in tool axis, which allows depth
triangulation in the viewing angle of the camera.