^^

I l^^rr ^"'^^'^ states Department of Commerce

I ^1 1^^# I National Institute ot Standards and Tectinology

.N4TX INST OF STAND & TECH R.I.C.

A111D3 3bMflE7

NIST

PUBLICATIONS

NIST Technical Note 1258

Manipulator Servo Level

World Modeling

Laura Kelmar

^QC-

100

.U5753

#1258

1989

C.2
NATIONAL INSTITUTE OF STANDARDS &

TECHNOLOGY

Research Information Center

Gaithersburg, MD 20899

DATE DUE

1

Demco, Inc. 38-293
dCioo

NIST Technical Note 1258

Manipulator Servo Level

World Modeling

Laura Kelmar

Robot Systems Division National Engineering Laboratory

National Institute of Standards and Technology

Gaithersburg, I^D 20899

Decennber 1989

<^ WW ^

O ^**^ in

t J ~5*^^^

U.S. Department of Commerce

Robert A, Mosbacher, Secretary

National Institute of Standards and Technology

Raymond G. Kammer, Acting Director
National Institute of Standards U.S. Government Printing Office For sale by the Superintendent

and Technology Washington: 1989 of Documents

Technical Note 1258 U.S. Government Printing Office

Natl. Inst. Stand. Technol. Washington, DC 20402

Tech. Note 1258

31 pages (Dec. 1989)

CODEN: NTNOEF
Table of Contents

1. Introduction

2. Module Interfaces 5

2.1. World Modeling to Sensory Processing Interface 5

2.2. World Modeling to Operator Interface 7

2.3. Servo (Level 1) World Modeling to Prim (Level 2) World Modeling Interface 9

2.4. World Modeling to Servo Task Decomposition Interface.... 9

2.4.1. World Modeling to/from Task Decomposition Job Assignment(JA) 9

2.4.2. World Modeling to/from Task Decomposition Planning(PL) 9

2.4.3. World Modeling to/from Task Decomposition Execution 9

3. World Modeling Module Operation: Level 1 Sensory Processing

Support 10

4. World Modeling Module Operation: Servo Support 11

4.1. Module Operation: Kinematics 11

4.1.1. Forward Kinematics 13

4.1.2. Manipulator Jacobian and Inverse Jacobian 14

4.1.3. Force and Torque Transformations 17

4.2. Module Operation: Dynamics 17

4.3. Module Operation: Control 19

5. Kinematics in Detail 20

5.1. Forward Kinematics 21

5.2. Inverse Kinematics for Redundant Manipulators 23

6. Conclusions 24

7. References 24

in

1. Introduction

This document describes the function, interfaces, and structure of a World Modeling

module at the lowest level of a hierarchical manipulator control system. The module

described in this document is part of a hierarchical control system in which complex tasks are decomposed into simpler and simpler subtasks, or objectives, as described in [ALB87]. The

system is divided vertically into levels based on the complexity of the objectives performed

within the level. Furthermore, each level is subdivided horizontally into columns: Task

Decomposition, World Modeling, and Sensory Processing. The control system is shown in

figure 1. World Modeling maintains the system's intemal model of the world by continuously

updating the model based upon sensory data. It consists of support processes or functions

which simultaneously and asynchronously support Sensory Processing and Task

Decomposition. The term world model refers to all the support processes, together with the

global data system. Figure 2 elucidates the allocation of processes in the control system,

through the Task Level, for a telerobot. There are computational hierarchies of Task

Decomposition, Sensory Processing and World Modeling modules, for each device and each

actuator. The modules can be logically recombined according to their function in the system,

as shown in figure 3. The system pictured consists of two main branches; the left branch

contains the perception processes and the right branch contains the manipulation processes.

The two branches decompose tasks independently and communicate via the global data

system.

The lowest level of the Task Decomposition hierarchy is called the Servo Level and is responsible for handling small dynamic motions of the manipulator, gripper, and all other

devices which require servo control. It computes the motor control signals for the actuators

based upon the command attractor set of desired positions, velocities, and accelerations

[FIA88]. The lowest level of Sensory Processing, Level 1, gathers and filters raw data from

the sensors. The Servo Level Task Decomposition module and the Level 1 Sensory

Processing module are supported by and interfaced through the Servo Level World Modeling

processes.

A manipulator control system, such as the one described in [ALB87], allows for many

controlled devices, as well as many sensors. For example, the Task Decomposition

hierarchy may provide servo control for the camera lens, the gripper, and the manipulator

joints, while the Sensory Processing hierarchy may process camera images, tactile arrays, and manipulator joint data. In general, each device requires separate World Modeling

support at each level. That is, a complete pictorial representation of the control hierarchy

would contain a separate World Modeling box for each device and associated sensor. The

scope of this document is limited to the discussion of the World Model module at the Servo

Level of a manipulator control system, as highlighted in figure 3. We briefly discua^ the

function of the Level 1 Sensory Processing module in supplying manipulator sensor readings.

Servo Level World Modeling maintains the following: the kinematic and dynamic

models, the current joint positions, velocities, forces and torques. All readings and

computations are recorded with respect to the specified coordinate system. Also, in support

of Sensory Processing, World Modeling maintains filtering algorithm parameters and

histories of the sensor readings. The Servo Level World Modeling module interfaces to the
OPERATOR

^GLOBALA

DATA

^SYSTEM/

SENSORY

PROCESSING

WORLD

MODELING

TASK CONTROl

DECOMPOSIIION

G6 ^% H6 SERVICE

MISSION

1 1 1 •rGs iv% Hs SERVICE

1

1 1 rG4 U^ H4 TASK

1

1

1 4

G3 IV% H3 E-MOVE

1

1 1 1

G2 M2 H2 PRIM

1 1 1

'

Gi Ml Hi SERVO

1 1 I

' ' ^ ^

SENSE ACTION

Figure 1. Hierarchical Control System Architecture.
SENSORY

PROCESSING

WORLD

MODELING

TASK

DECOMPOSITION

f

OPERATOR

CONTROL

SENSE ACTION

Figure 2. Modules for Each Sensor and Each Actuator.
TELEROBOT

TASK

SP WM TD

E-MOVE

PRIM

FORCE ARF AY

force

array

1' on/off

PAN & TILT

FOCUSZOOM

IRIS

IMAGE

SP WM TD

intensity

joint

position, force

joint joint actuator position, forcejoint actuator

camera

on/off

Figure 3. Perception and Manipulation Branches.
following: the Level 1 Sensory Processing module, the Servo Level Task Decomposition

module, the system operator, and the Level 2 World Modeling module. The interfaces to/from

Task Decomposition are further broken down as interfaces to/from the Job Assignment submodules, the Planning sub-modules and the Executor sub-modules as explained in [FIA88].

Section 2 of this document defines the interfaces between World ModeUng and the rest of the

control hierarchy. Sections 3, 4, and 5 discuss the classes of support processes for both

Sensory Processing and Task Decomposition for a manipulator (the most complex device)

and its sensors. This document does not provide an exhaustive list of the computations and

models required by World Modeling in support of all possible devices and sensors.

2. Module Interfaces

The Servo Level World Modeling module has several interfaces: World Modeling

supplies (filtering) algorithm parameters and histories of readings to the Level 1 Sensory

Processing which in turn writes sensor readings to the global data system. The operator

control transmits data related to the selected coordinate system and the servo algorithm

directly to the World Modeling module. Within World Modeling, information is passed

between the Level 1 (Servo) module and the Level 2 (Prim) module. Finally, the Servo Level

Task Decomposition module passes control algorithm parameters, via global memory, to World Modeling. World Modeling writes the results of its support computations to the

global data system for use by Task Decomposition. In addition, each request for information

receives a status report in retum. In most cases, the status is implied and not explicidy

labelled with the interfaces in figure 4. We discuss the Servo Level World Modeling

interfaces, as shown in figure 4, in the following sections.

2.1. World Modeling to Sensory Processing Interface

This section describes the interface between the World Modeling and Sensory Processing

modules at Level 1. Figure 4 shows the interface, as well as the internal structure of the

modules. In the figure, the Sensory Processing module includes four sub-modules.

However, sensory processing of manipulator sensor readings (joint angles) probably would

not involve spatial integration of readings or detection of events. It also may not include

temporal integration or averaging of readings over time; in these cases the processes are

null. The reader is referred to the document on Level 1 Sensory Processing for a camera for

details on the module's structure and function [CHA89]. A brief description follows.

The comparators receive data from the sensors and predictions from the world model.

Predictions for sensor joint readings might simply be threshold values with which to filter the

data. The comparators then perform an algorithm specific computation on the data, such as comparison against a threshold value, and store the results in the world model.

By definition, temporal integrators combine the results of the comparators over a given

time window. Temporal integration produces values which represent the average value, over

time, of the readings from a particular sensor. Most likely temporal integration would not be

applicable for manipulator joint readings, which typically are updated every sampling period.

Also, event detection is not applicable for manipulator sensor readings. The readings

undergo no further processing and are stored in the world model.
Level 2 Processing

Interface

Prim Interface

C , Servo_algorithm

Operator

Conjtrol

Interface

Sensor Interface Actuator Interface

Figure 4. Servo Level World Model Interfaces.
The information which is passed from the World Modehng module to the Sensory

Processing module represents requests for data which specify a starting criterion and an ending criterion for sensor readings, as weU as sensor update rate. Typically, World

Modeling (in support of Servo Task Decomposition) requires continuously updated

manipulator joint readings. Therefore, the Level 1 Sensory Processing module for

manipulator joint sensors operates in a default mode which continuously processes the joint

readings. Also, the specification of the filtering technique and parameters for processing the

readings would exist as a default setting. A change of setting would result from feedback

from Task Decomposition indicating poor results or a change in time constraints.

Input to World Modeling from Level 1 Sensory Processing consists of filtered, or

enhanced sensor readings. Manipulator joint data includes the positions (0-), velocities (6),

and torques (t-) where i denotes the joint number. Force sensors mounted on the wrist of

1 » the manipulator measure the forces (f^,f ,f2) and torques (Tn^,m^^,m^) acting upon the endeffector.

Associated with each reading is a sensor identification number which includes both the sensor type and the instance of the sensor. For example, the sensor identification number

might specify that the reading is coming from a joint sensor, and specifically the sensor at the n joint of the m manipulator in the system. In the most general case, each sensor reading has an associated timestamp. (It may not be necessary for all data.) While the

timestamp may not be used by Task Decomposition at the Servo Level, it is necessary for

temporal processing of the data. Table 1 contains a list of example parameters for the Level

1 Sensory Processing to World Modeling interface for a manipulator.

Table 1. Sensory Processing to World Modeling Interface

READING DESCRIPTION

0^62,...,^J^J Manipulator Joint Positions

a

^J j,o 2'-»o N Manipulator Joint Velocities

x-^,X2,..',i'^ Manipulator Joint Torques

Strain gauge readings Wrist Forces and Torques

2.2. World Modeling to Operator Interface

The World Modeling module receives information from the operator regarding the
specification of the coordinate system for the position and force commands and information

regarding the mode of operation. This information is essential to the World Modeling module

for computing the kinematic, dynamic, and control variables. Because the control architecture

supports both teleoperation and autonomous operation, the control operator must instruct

both the Task Decomposition and the World Modeling modules as to the mode of operation

[ALB87].

For teleoperated control the parameter C^ indicates the coordinate system of operation.

For autonomous control the parameter C^, which is passed to World Modeling by Servo

Level Task Decomposition, indicates the coordinate system. If the manipulator is to be

controlled with shared control (autonomous and teleoperated), the parameter R may be

needed to resolve redundancy between the systems. Specifically, if the operator coordinates

(C^) are underspecified with respect to the autonomous coordinates (C_), redundancy

resolution must be used to map between the systems. The choices for C and C_ are listed

in Table 2 shown below. Each choice of coordinate system is considered in section 4.1.2,

where we discuss the World Modeling module's process for computing the manipulator's

Jacobian.

The transformations T„, and T are fixed, rigid-body, homogeneous transformations

which locate an object or tool-tip. If the actual manipulator base or end-effector is to be used

as the reference point, then they are simply identity transformations.

Table 2. Choices for C and C_

SYSTEM DESCRIPTION

(joint) Commands in manipulator's joint space

(,ena-errector,_, 1^^^ Commands in Cartesian system fixed at a frame

with relation T^^ to end-effector

(World,T ,T ) Commands in a frame with relation T... to base for

Cartesian system with relation T^^ to end-effector

In addition to the coordinate system parameters, the operator passes the parameter

Op_algorithm to direct the mode of operation. If Op_algorithm specifies teleoperation, then

the job assignment module directs the manipulator control based upon input from the joystick or other input device [FIA88]. For autonomous operation, the job assignment module takes

commands from the Primitive Level Task Decomposition module and Servo_algorithm

selects the control algorithm.
2.3. Servo (Level 1) World Modeling to Prim (Level 2) World Modeling Interface

The World Modeling modules at Level 1 and Level 2 interface when the support column

functions hierarchically to achieve a common end. For example, in order to compute obstacle

avoidance torques, the Prim World Modeling support module (Level 2) might provide the

Servo support module (Level 1) with the necessary parameters or equations. (The update

rate of the Servo Level support may be too great to allow for the extensive computations.)

2.4. World Modeling to Servo Task Decomposition Interface

This section describes the interface between World Modeling and Task Decomposition at the Servo Level. The Task Decomposition module is further decomposed into submodules

(Job Assignment, Planning, Execution), each of which interfaces to World Modeling. We

describe each of the submodule interfaces separately. Additional explanations of the uses of

the parameters and how to compute them can be found in the discussion of World Modeling

operation in sections 4 and 5.

2.4.1. World Modeling to/from Task Decomposition Job Assignment(JA)

When the system operates in teleoperation mode, or shared control mode, the vectors of

desired position, velocity, acceleration, and force (z , z , z , f^) for the manipulator are

received by the World Modeling module from the input device and then passed to the job

assignment module. These vectors are expressed with respect to the coordinate system

Cq. For pure teleoperation, they represent the state of the master arm or other input device

which serves as the attractor set for the slave (manipulator).

2.4.2. World Modeling to/from Task Decomposition Planning(PL)

The World Modeling module receives the vector of desired position, velocity,

acceleration, and jerk (z^, ^, z^, z"^) for the manipulator from the Task Decomposition

planning module. These vectors are received and stored by World Modeling so that they

may be used to compute feedforward compensation terms (for both autonomous and

teleoperation modes), as described in section 4.3. The vectors specify goal the state of the

manipulator to be used in autonomous control mode, or shared control mode. They may also

be used by Task Decomposition for error checking or interpolation.

2.4.3. World Modeling to/from Task Decomposition Execution

The World Modeling module transforms the sensory joint position and velocity readings

(z, z ) into the coordinate system specified by Task Decomposition (C ). The vector of

forces and torques at the manipulator's end-effector (f^^.f ,f2,m^,m^,m2), is also transformed

into the proper coordinate system and made available. The coordinate system specification,

C^, indicates the coordinate system in which the position and force command vectors are expressed, as well as the system in which the servo errors are computed. World Modeling
makes the sensory readings available to the execution module for computation of the servo

error terms; it resolves any differences between the coordinate system of the readings

(Sensory Processing) and that of the computations (Task Decomposition). For example, if servo executes a Cartesian space control scheme, it is desirable for World Modeling to supply the current manipulator position in Cartesian space. Assuming that Sensory

Processing reads joint positions (velocities), World Modeling would calculate the current

Cartesian position of the manipulator from the joint space sensory readings.

The World Modeling module supplies the execution module with model-based terms

necessary for the dynamics calculation of the control torques. The dynamics terms include

the matrix of centrifugal and Coriolis coefficients, a vector of gravity compensation terms, the

inertia coefficients, and friction terms.

The manipulator Jacobian and inverse Jacobian may also be needed by the execution

module. (If C^ is joint space, then the Jacobians are identity; the desired workspace is

equivalent to the workspace of the sensor readings.) If the manipulator is redundant, with

respect to its workspace, then computing the inverse Jacobian involves resolving the

redundancy. The Moore-Penrose generalized inverse (pseudoinverse) is the most

commonly used replacement for the inverse of the Jacobian.

The World Modeling module also supplies any avoidance torques which may be used by

the execution module when computing the control torques. The nature and purpose of these

torques are explained in [FIA88] and are reiterated in section 4.3 where we discuss how to compute them.

Finally, if an adaptive control scheme is to be implemented, the execution module sends

the vector of actuator torques, x ^, to the World Modeling module. The vector represents

the torques from the previous sampUng period and is used in order to adapt the control

algorithm to reduce the error between the desired end-effector position (velocity) and the

realized one.

This completes our discussion of the Servo Level World Modeling module's interfaces.

We have mentioned some of the operations which must be performed within the World

Modeling module. In the next section we elaborate upon the operation of the module.

3. World Modeling Module Operation: Level 1 Sensory Processing Support

The Level 1 Sensory Processing module for manipulator sensors is supported by World

Modeling. After the Sensory Processing module filters the data, the World Modeling module

accepts the filtered data and transforms it, if necessary, to the coordinate system specified

by Task Decomposition (C^). After the data is transformed, it is stored in the global data

system for use by the Task Decomposition module, as well as the World Modeling

processes.

The Sensory Processing system often contains force and torque sensors. Force and

torque sensing can take place at the joints or the wrist of the manipulator, with wrist sensing

being the most widely used. Sensory Processing filters the force and torque data in its "raw

form" and then stores the values in the global data system. World Modeling converts the

10
data from strain gauge readings to forces and torques. The conversion is based upon a model

of the position and orientation of the gauges within the force/torque sensor. The gauges measure the forces perpendicular to the plane in which they lie. The measured forces (W)

are converted to wrist (joint) forces and torques (F) through a force calibration matrix (R^)

according to: F = R W. \y '

•

4. World Modeling Module Operation: Servo Support

Each World Modeling support process can be thought of as a cyclically-executing

procedure or function which works upon certain inputs to produce the required values. Task

Decomposition directs the operation of the World Modeling support processes with the

algorithm parameters contained in the global data system. The processes are coordinated

(activated and deactivated) by a World Modeling coordinator, as shown in figure 5. Each

support process and each Task Decomposition process, JA, PL, and EX, executes cyclically;

all processes communicate through global memory. The ovals in the figure 5 represent the

global memory.

Before specifying the World Modeling operation, one must choose a method for

representing translations and rotations in the system as a whole. Such representations are used for defining the kinematics and dynamics of the manipulator. They are also necessary

for defining positions and orientations in all facets of task planning, including representing

objects/frames in the manipulator's workspace.

Many techniques exist for representing translations (positions) and rotations

(orientations) [ASA86, DEN55, FUN88, KAN83]. The most common approach to the

problem is to use vectors. While vectors lend themselves to expressing translational

information, they do not lend themselves to representing 3-D rotations. Thus, spatial

transformations typically have taken the form of 4x4 homogeneous transformations, which

contain a 3x3 rotational submatrix and a 3x1 positional vector. However, a 3x3 matrix

representing orientation in 3-D space necessarily contains redundant information. In order

to expedite calculations with rotations in robotics, alternate methods using quaternions and

Lie algebra have been proposed to remove the redundancy [FUN88, GU88, PER82].

The discussion of the World Modeling functions that follows is intended to be general.

That is, we do not make assumptions about the data structures (representations), the target

hardware, or other characteristics of the system or manipulator. Each of the following

sections contains an explanation of an operation of the World ModeHng, as well as some of

the methods for implementing it. We conclude each section with a discussion of the

computational considerations for the World Modeling operation.

4.1. Module Operation: Kinematics

Typically, a manipulator task is specified in World (or Cartesian) space. Specifying a

task in Cartesian space necessitates a kinematic model to define the relationship between

the position and orientation of the end-effector and the joint angles. The complete kinematic

model describes all the geometrical and time based motions of the manipulator, without

11
From Prim Level

Task Decomposition

TD

Job Assignment

JA(1)

Figure 5. World Modeling Servo Support Processes.

12
regard for the forces acting upon the manipulator. We begin this section by discussing

several methods for creating a forward kinematic model. We then consider the problem of

creating the manipulator Jacobian which relates the differential changes in the joint angles to the differential changes in the position and orientation of the end-effector.

4.1.1. Forward Kinematics

For each of the forward kinematic systems we assume that the joint angles (or

displacements in the case of prismatic joints) are the variables obtained from the sensors. That is, that the joints are directly actuated. In some cases, however, the joint position must

be calculated from the actuator position. For example, a revolute joint may be rotated by a

linear actuator through bar linkages [CRA86]. Therefore, an additional transformation may

be required from actuator space to joint space, as shown in figure 6.

In general, forward kinematic techniques systematically determine the transformation

(position and orientation) between adjacent links in a manipulator. By starting at the base

and successively applying (multiplying) the transformations, one can determine the position

and orientation of the end-effector with respect to the base as a function of the joint

variables.

While many methods exist, the Denavit-Hartenberg system is the most frequently

used. (For details regarding the Denavit-Hartenberg system, see sec. 5.) Its popularity is due in part to its clear physical interpretation and to the fact that it uses the minimum number

of parameters to specify the kinematics of a manipulator. In addition, it allows for easy

derivation of the manipulator Jacobian [PAU81].

Although the kinematic representation created with the Denavit-Hartenberg system

uses the minimum number of parameters to specify each transformation, the resulting

homogeneous transformation matrices. A- and T^t, contain redundant information.

Maintaining extra terms requires additional memory and additional floating point operations.

However, by properly customizing generic matrix operations (e.g., multiplication and

inversion), the Denavit-Hartenberg system C£in be optimized so as to be usable for real time

applications [ZHA88].

Another more serious drawback, or deficiency, of the Denavit-Hartenberg system results

from the particular set of geometric parameters that are used in the model [EVE87]. When

two consecutive joint axes are parallel, the second joint axis is placed at the intersection of

its axis and the common normal of the previous axis. Because there are infinitely many

common normals, the location of the axis coordinate system is arbitrary. If the consecutive axes are slightly misaligned, they may appear to intersect. The distance between the

coordinate frames, however, can become arbitrarily large. That is, for slight misalignments,

the corresponding D-H parameter can approach infinity. Several techniques have been

developed to adjust for the shortcoming of the D-H system in the case of parallel axes. One

such method is call the S-model and is discussed in section 5. Among the other systems for specifying the kinematics of a manipulator are techniques

for specifying the position and orientation of a body separately. Specification of the

displacement is done simply with a vector of three position terms corresponding to x, y, z. Euler Angles (which include roll-pitch-yaw angles) is a system for specifying the

13
Figure 6. Kinematic Chain.

orientation. They are a set of consecutive angles of rotation about predefined axes [ASA86,CRA86]. The advantage of such a system is that it requires only three parameters

to specify a rotation. Euler Angles (and roll-pitch-yaw angles) are discussed in section 5.

Quaternions are another mathematical object which can be used to represent rotations

[FUN88, PER82]. Typically, a quaternion, q, is represented by the following:

q = s + /x +jy + kz,

where s, x, y, z g R, and i, j, k are orthogonal unit vectors. However, a quaternion can also

be written with a trigonometric representation. From the trigonometric form, one can derive

a general expression for the rotation of one vector into another using a quaternion as an

operator. For a thorough comparison of quaternions and homogeneous transformations, as well as a derivation of quaternions as rotation operators, see [FUN88].

Each of the above mentioned methods creates a forward kinematic model for the

manipulator. Each provides a way for representing the position and orientation of the endeffector of the manipulator with respect to its base as a function of the joint variables Q^, i =

1, ..., N. If in the static description the coordinate frame of reference (as specified in this

document by the parameter C^.) is displaced from the base by T^, then the forward kinematic

model must be adjusted accordingly. If T^ and the kinematic system both use homogeneous

transformations or quatemions, then the forward kinematic model simply is pre-multiplied by

T to account for the displacement.

For the purposes of the discussion in this document, we represent the kinematic rotation

(orientation) by Rj and the position by P-. For example, if the Denavit-Hartenberg system

is used, Rj is the 3x3 rotation submatrix and P^ is the 3x1 position vector.

4.1.2. Manipulator Jacobian and Inverse Jacobian

In order to control the manipulator in Cartesian space using resolved rate control or force

control, the Jacobian is needed to transform the rates or forces to joint coordinates. The

Jacobian relates the differential changes in the joint coordinates to differential changes in the

Cartesian coordinates. It is a function of the manipulator's position, or joint variables.

Inherent in the derivation of the Jacobian is the choice of frame of reference for the

motions. That is, the motions can be specified with respect to the base of the manipulator,

with respect to its end-effector, or with respect to another frame with a known

transformation fi-om the base or end-effector. In our discussion of the manipulator Jacobian,

we consider each case for the choice of frame of reference, as given by the parameter Cz

(Co).

14
The frame of reference for the Jacobian is specified by the parameter C^.. If C^ = (World,

T.-,, T ), then the commands and movements are measured in a frame which is related to

the base of the manipulator by T^. The offset from the base can be incorporated into the

kinematic model by pre-multiplying the kinematic transformation (Aq if the DenavitHartenberg system is used) by T . Similarly, the offset from the end-effector can be

incorporated by post-multiplying the last kinematic transformation by T„„. The offset WW

transformations can be appended and treated as constant transformations because they do

not vary with the joint variables. Creation of the Jacobian follows, as above, using the

appended or modified kinematic transformations.

If C = (end-effector, _, T ), then the commands are sent from the Task Decomposition

module with respect to the frame at T„„. The specifications in this case would not contain Cw

absolute positions, but rather would contain commands of the form: move in the direction of

the z-axis of the tool tip. Once again, the transformation T can be appended to the last WW

kinematic transformation. The Jacobian for this system would relate changes in the joint

angles to changes in the end-effector's motion, as measured with respect to the end-effector.

The inverse of the Jacobian is needed to relate the instantaneous velocities in Cartesian

space to those in joint space. For a non-redundant manipulator, the kinematic relationship is as follows:

e =J"^x,

where x is the six-dimensional Cartesian velocity, 9 is the n > 6 -dimensional joint velocity,

and J' is the inverse of the Jacobian. This equation determines the necessary changes in

the joint variables to achieve a desired change in Cartesian space.

The inverse Jacobian can also be used to relate the dynamic models in joint space to that

in operational space [KHA87]. The manipulator equations of motion are given by:

x = A(e)e + b(e,0) + g(e),

where x is the vector of external or applied torques. A, b, and g represent the inertial

coefficient matrix, the Coriolis and centrifugal forces, and the gravity forces, respectively. A

similar equation can be written for the torques in terms of Cartesian quantities, which are in

turn related to their joint space counterparts through the inverse Jacobian. For example, the

joint space (A) and Cartesian space (A') inertial matrices are related by:

A'(x) = J''^(0)A(0)J"l(e),

T where J" denotes the transpose of the inverse Jacobian. The joint space (g) and Cartesian

space (g') gravity potential energy terms are related by:

g'(x) = j-'^(e)g(e).

In the case of a redundant manipulator, Khatib replaces the inverse of the Jacobian

15
transpose with the generalized inverse I given by:

J(0) = A"l(e)j'^(0)A'(e),

which minimizes the manipulator's instantaneous kinetic energy. The transformed dynamics

values (A'(x), b'(x), g'(x)) are then used to control the manipulator in operational space.

(For additional discussion of manipulator control see sec. 4.3 or [FIA88]; for additional

discussion of manipulator redundancy and generalized inverses, see sec. 5.)

Many recursive methods exist for computing the manipulator Jacobian with respect to different frames of reference [DOT87, ORI84, PAU81,VUK79]. Most of them employ

iterative techniques to determine the angular and linear velocities. In the following section

we introduce several techniques and discuss their computational complexity. The reader is referred to the references for details of the iterative techniques and a comparison of the

efficiency of each computational method.

Computational Considerations: The choice of techniques for generating the kinematic

variables (forward kinematics and Jacobian) are not entirely independent; certain forward

kinematic representations lend themselves to certain techniques for generating the Jacobian.

Paul and Zhang developed a computationally efficient kinematics method based upon the

Denavit-Hartenberg parameters for manipulators with a spherical wrist [PAU86]. The

authors generate the overall forward kinematic model (T^) in symbolic form. By substituting

for common expressions, they are able to reduce the total number of arithmetic operations.

Their resulting expressions for the T^ matrix corresponding to the forward kinematic model of

the PUMA 560 manipulator requires 6 sine/cosine pairs, 34 multiplications, and 17 additions

[PAU86].

Paul and Zhang then present an efficient method for obtaining the Jacobian from the

Denavit-Hartenberg forward kinematic model. They create the Jacobian with respect to the

last link frame in symbolic form. Because the manipulator has a spherical wrist, the upperright 3x3 submatrix of the Jacobian is identically zero. Thus showing that there is no

coupling between position and orientation. The resulting evaluation of the Jacobian requires

6 sine/cosine pairs, 46 multiplications, and 19 additions.

Recursive techniques for creating the Jacobian tend to be more general. (They are not

limited to 6 degrees of freedom and they do not assume that the manipulator has a spherical

wrist.) As a result, they are more computationally intensive. As a rough estimate,

computing the Jacobian for a 6 degree of freedom manipulator requires 1(K)-150

multipUcations, 60-80 additions, and 10-12 sine/cosine operations [ORI84]. The lower

bounds for the number of computations results when one of the middle link's frame is used as the frame of reference. The number of operations and the method of choice depend to a large

extent on the desired frames of reference.

Computing the inverse of the Jacobian is computationally intensive. A few measures can be taken, however, to reduce the number of floating point operations. If the manipulator has a spherical wrist, it will have a 3x3 submatrix which is identically zero. If J is written in

16
terms of submatrices as:

J = hi

hi hi

then J" can be given by:

r' =

'11

-hi hihi ^11

-1

Each submatrix inversion can be done symbolically or numerically. Paul and Zhang evaluate

the inverse Jacobian with 72 multiplications and 31 additions [PAU86].

4.1.3. Force and Torque Transformations

Force and torque sensing can take place at the joints and/or the wrist of the manipulator,

with wrist sensing being the most widely used. Force sensor readings F =

(f ,f ,f ,m ,m ,m ) from the manipulator end-effector are transformed to the base or tool tip

frame (or any other frame specified by C^) according to:

^F = (^ J)T Bp,

where A denotes the desired frame of reference and B denotes frame in which the readings were taken [CRA86]. Similarly, the Jacobian transpose maps forces acting at the endeffector into equivalent joint torques by:

T = j'^F.

4.2. Module Operation: Dynamics

In order to perform model-based manipulator control. Servo Task Decomposition requires a dynamic model of the manipulator. The dynamics terms, however, generally need not be

updated at the servo rate. By updating the dynamic model every 10-16 milliseconds. World

Modeling can supply Servo Task Decomposition with sufficiently accurate values.

Recall the symbolic equation for the dynamics of a manipulator:

X = A(0)e + b(0, ) + g(0).

The above equation contains the basic dynamic model which the World Modeling module

makes available for the Task Decomposition module. The Task Decomposition module computes the complete dynamic model, taking into account the servo algorithm, as well as any

singularity or obstacle avoidance. The dynamic model, as computed by the World Modeling,

is either in the form of the forward dynamic terms (A(0), b(0, ), g(0)), or it is the overall

17
torque required for the manipulator to make the specified move, (x). To a large extent, the

form of the dynamic model depends on the type of dynamics formulation used. Additionally,

the forward dynamics terms may be transformed to Cartesian space for use in operational

space control, as depicted by the dotted line function in figure 7. While many different methods exist for computing the dynamics of a manipulator [BUR86,

FAE86, FEA87, IZA86], the primary concern of them all is the large number of computations

involved. Furthermore, because the dynamic equations for a manipulator with 6 (or more)

degrees of freedom are highly complex, they are very difficult to compute by hand. The

dynamics typically are computed in one of two ways. The first is to generate closed form

expressions for the dynamic equations ojf-line using a symbolic code generation package.

The model is then evaluated at execution time. The second is to use a recursive (iterative)

formulation of either the Newton-Euler or the Lagrangian dynamic equations to compute the

model at execution time. Recursive algorithms have been devised to compute the dynamics

(forward and backward) in linear time [HOL80, WAL82]. Symbolic generation can achieve

similar results through simplifications based upon manipulator geometries and the underlying

structure of the dynamic equations [BUR86, IZA86].

Regardless of the method used, certain kinematic and dynamic data is required as input.

The World Modeling module computes and maintains the information. For each link, the

position and orientation transformations are given by R- and P-. In addition to the vector Pi,

which locates the joint origins, a vector is needed to locate the center of mass of each link.

The vector, r^, is given below. Finally, the dynamic equations depend upon the inertial

matrices, I^, also shown below.

^1 =

^ix

^iy

hz

\

=

IXX

lyx

I:IZX

^xy

izy

TIXZ

L

yz

izz

Computational Considerations: Highly efficient recursive algorithms for the inverse

dynamics problem result from optimizing and customizing the Newton-Euler algorithm

FromSP: 0,9

»- From global memory: m-,IFrom Kinematics: R-, P-, r-

(Lagr.)

Forward

Dynamics

m

(N-E)

Dynamics

f(e)

To TD for control: A(e).b(e.e). g(er

To TD for control^

(Lag.)

Forward

Dynamics

f(z)

To TD for control: ^

AXx), b'(x,k), g'(x)

Figure 7. Manipulator Dynamics Computations.

18
[HOL80, KH086]. The efficiency of the algorithm is further improved by choosing a middle

link's frame as the frame of reference rather than the base frame. The resulting NewtonEuler method requires 852 multiplications and 738 additions to solve the inverse dynamics

for a 6 degree of freedom manipulator.

Burdick presented an algorithm for symbolically generating efficient dynamic equations

[BUR86]. The equations are based upon the Lagrangian dynamics formulation. The

equations are generated and simplified off-line by a LISP-based program. The number of

computations for a manipulator is greatly reduced by exploiting algebraic identities and the

underlying structure (symmetries) of the dynamic equations. Further reductions can be

made based upon the "regularity of common manipulator configurations." Specifically,

simplifications can be made if consecutive joints in the manipulator have parallel or orthogonal joint axes, as is the case for most commercial manipulators. In addition, the

"regular geometry" of the spherical wrist leads to further reductions in the complexity of the

dynamic equations. The total computation of the inverse dynamics, for the 6 degree of

freedom PUMA 560 manipulator, requires 401 multiplications and 254 additions.

Thus, symbolic equations have the advantage that they can be optimized so as to be

more efficient than the recursive methods. Symbolic equations also make it possible to

extract the forward dynamics terms (A(0), b(0, 9 ), g(0)) from the calculations. Because

these terms are explicitly needed to perform operational space control [KHA87], a symbolic

preprocessing method may be preferred. However, a recursive method has the advantage

that it does not require a symbolic processor (e.g. a LISP program or a symboUc mathematics

package such as MACSYMA) and is easily coded.

4.3. Module Operation: Control

The Servo Level of Task Decomposition is responsible for controlling the manipulator so

that it tracks a desired path with a desired velocity and acceleration, in a stable manner. Many control schemes are possible, and the reader is referred to [FIA88] for an overview.

One such scheme [LUH85, SK086]:

M(0)[ Kp (0^ - 0) + K^ (0^ -0) + 0^ ] + x,,„,(0,0) + Xg,avity(e) = \ct

requires that the World Model compute the dynamic model of the manipulator. Here, the

matrix M(0) is the inertia coefficient and x^^^j^^ ( 0,0) is the vector of centrifugal and Coriolis

compensation torques, both computed from the manipulator model. The manipulator model

does not change significantiy between servo cycles; World Modeling need not update it at the servo rate. Compensation for other types of disturbances, such as friction, can be

included in the control provided a model of the disturbance exists. In the Cartesian domain

the computed torque control algorithm requires the terms A'(x), b'(x,x ), g'(x).

In a feedforward control scheme, a model of the manipulator dynamics is used to decouple

the actuators. World modeling provides these manipulator model terms. For example, a common feedforward control can be performed by [ASA83, FIA88]:

19
^model( h' ^d- ^d ) + Kp (^d - 6) + K^ (6,1 -9) + 8^ = T,,,

In this case, all of the dynamic compensating terms are obtained as one torque vector, as shown in figure 8. World Modeling also might provide avoidance torques to Task Decomposition. The

avoidance torques are vectors of joint torques that are added to the control to achieve

avoidance of some condition. One example of the use of this type of parameter is for obstacle

avoidance [KHA87]. While global obstacle avoidance requires considerable planning at higher levels of the control hierarchy, local avoidance torques can be added to the control

torques at the servo level. In Khatib's paper, a hypothetical force pushing away from an

obstacle is given by

l ifp>Po

'

where p is the distance to the obstacle, Tj and p^ are constants. World Modeling would

compute the hypothetical force (f ) and convert it to a torque through the manipulator

Jacobian by:

Task Decomposition could then add x j to the control torques to provide local obstacle

avoidance.

5. Kinematics in Detail

In this section we provide additional details on forward kinematics; we discuss several

methods in detail, including the Denavit-Hartenberg parameters and Euler Angles. In the

following section we consider inverse kinematics for redundant manipulators. We

concentrate our discussion on methods of computing the inverse of the manipulator's

Jacobian which exploit the redundancy.

FromTD: 6^.9^,9^

Compute

Manipulator

Model

z=9

To TD for control:

'^model( ^d' %'^d )

FromTD: 9^.9^,9^ Compute

Manipulator

Model

z=x

To TD for control:

'^model( ^d' ''d' ^d^

Figure 8. Computing the Manipulator Model for Control.

20
5.1. Forward Kinematics

The first step in the Denavit-Hartenberg systematic process is to assign a coordinate

frame number to each link. We assign the number to the base, although we do not consider

it as one of the links of the manipulator. The numbers 1, ..., N are assigned sequentially to the rest of the links.

The coordinate frames are aligned so that the z-axis for link / is the axis of rotation of the

th

i Denavit-Hartenberg frame. The following series of transformations:

Rotation(z^ |, 0j)Translation(a^, 0, d^ Rotation(x^, a^

th th

describes the position and orientation of the / link in the i-1 frame. The variables 0-, a^,

dj, and a^ are called the Denavit-Hartenberg parameters of the system. The first parameter,

th

6j, is the joint variable for the / revolute joint; it defines the angle of rotation of the joint

about the z^j axis from its home position. Rotating a joint an angle 0^ about its z^j axis,

causes the x-_2 axis of its frame to align with the x^ axis of the next link's frame. By

translating the i-1 frame amount a^ along the x^ axis (or equivalently, along the Xj_j axis)

and an amount d- along the z- i axis, its origin rests in the same location as the origin of the

/ frame. (In the case of prismatic joints, d- is the joint variable.) Finally, after rotating the

frame an angle a^ about the x- axis, the z-axes of the two frames coincide and the

transformation from one frame to the next is complete.

The homogeneous transformation matrix created from the rotations and translations

defined by the Denavit-Hartenberg parameters is called an A matrix of the system.

th th

Specifically, A^ denotes the homogeneous transformation from the i-1 frame the i frame.

It is composed of a 3x3 rotational submatrix and a 3x1 positional vector, as separated by the

dotted line in the following expression..

Ai =

C0J -s0-

s0jca|_j c0^ca-_^

s0^sa; 1 c0^saj_i

-s«i-l

^i-1

s«i-l^i

ca

x-.X^.

c0^ denotes the cosine of 0^, s0j denotes the sine of 0j, etc.

By multiplying successive A matrices, Aj-A2-...Ajyj, where N is the number of degrees of

freedom of the manipulator, one obtains the Tj^ matrix. The Tj^ matrix represents the

position and orientation of the end-effector with respect to the base frame, as a function of

21
the joint variables.

Another system, similar to the Denavit-Hartenberg system, is the Whitney-Lozinski

model [ST087]. (The S-model results directly from the Whitney-Lozinski model.) This

model uses six parameters, rather than four, to transform between coordinate frames

according to:

Rotation(y,6pTranslation(0,yj,zpRotation(z,<l)pRotation(y,QpRotation(x,Y-).

The homogeneous transformation matrix created from the rotations and translations defined

by the Whitney-Lozinski parameters is called an W matrix of the system. By multiplying

successive W matrices, W2W2'...-Wj^, where N is the number of degrees of freedom of the

manipulator, one obtains the Tj^ matrix. The resultant T-^ matrix has the same properties as

the Tjs^ matrix formed with the Denavit-Hartenberg parameters. The Whitoey-Lozinski

model introduces a greater degree of flexibility in assigning the locations of the link

coordinates. However, a drawback of this system is that it requires 6N parameters to completely specify the geometry of the manipulator.

Roll-pitch-yaw angles and Euler Angles, use consecutive angles of rotation about

predefined axes [ASA86,CRA86].

The series of rotations for roll-pitch-yaw are:

Rotation(z,a) Rotation(y,p) Rotation(x,7)

where the order of rotations is essential to the technique. Each rotation is performed about

the specified axis of the initial frame.

Euler Angles differ from roll-pitch-yaw angles in that each successive rotation is made

about the moving frame's axes rather than those of the initial frame. There are two

commonly used series of rotations for Euler Angles. The first series, appropriately called ZY-X Euler Angles, is:

Rotation(z,a) Rotation(y',p) Rotation(x", y),

where the ' and " denote that the updated, or rotated, frames are used as the new frames of

reference. The second series, called Z-Y-Z Euler Angles, is:

Rotation(z,a) Rotation(y',p) Rotation(z", y),

where, once again, the updated frames are used as the frames of reference.

Another possible description of the orientation of a frame, or rigid body, is the equivalent

angle-axis representation [CRA86]. A general orientation can be written as:

Rotation(k,9),

where 9 represents the angle of rotation, in the right hand sense, about the unit axis k.

A similar representation can be created using screw coordinates [ROT84]. Screw

coordinates employ six parameters to define the displacement (and orientation) of a rigid

body. According to Chasles' Theorem, any displacement can be effected by a single rotation

about a unique axis combined with a unique translation parallel to that axis. Screw

22
coordinates realize Chasles' Theorem which states that four parameters defme the screw

axis in space, one parameter specifies the rotation about the screw axis and one parameter

specifies the translation along the screw axis.

5.2. Inverse Kinematics for Redundant Manipulators

Because of the benefits of kinematic redundancy (e.g. obstacle avoidance, singularity

avoidance), many manipulators are configured with more than six degrees of freedom.

Introducing redundancy complicates the control algorithm. At what level and how the

redundancy should be resolved is still an open problem.

When the manipulator is redundant, the extra degrees of freedom can be used to advantage in defining the endpoint trajectory. For redundant manipulators, the relationship

x=J0

still holds. However, J in this case is non-square and has no inverse; the standard inverse

must be replaced by a generalized inverse.

I T T 1 The pseudoinverse, given by J = J (JJ ) , is most often used in robotics applications

[BAI84, CHAN86, KLE83, NAK86]. It provides the minimum norm solution, Oq, for the

kinematic equation = J x . That is, for any other solution, 6j^, found using another method,

the following is true: II 9^11 > ll&)ll, where II II denotes the Euclidian norm. The

pseudoinverse has an additional advantage over J" . While J" is not defined at

singularities where the Jacobian loses rank, J provides an approximate solution in the sense

of the minimum norm of || II [KLE83]. These properties make it attractive for robot

kinematics.

T T 1 When computing the pseudoinverse ( J [JJ ]" ), care should again be taken to reduce

T

the number of floating point operations. First, because the product J- J is symmetric, only

the elements along the diagonal and above (below) need to be expUcitly computed. Second,

T

J-J IS not only symmetric, but also positive definite. Its special form should be exploited

when performing the matrix inversion to reduce the ordinarily N operation [JEN75].

While the pseudoinverse provides an adequate means for resolving kinematic

redundancy, many researchers have explored methods to improve the pseudoinverse

[BAI84, CHAN86, KLE83, YOS84]. In many of these methods, the inverse solution takes

the form

= J "^x + (I - J"*"J) (f)

,

where J"*" is the pseudoinverse equal to J^(J jV and ^ is an arbitrary joint vector. The

operator (I - J'^J) maps ^ into the null space of the Jacobian. The null space vectors

23
correspond to self-motion of the linkage which does not affect the end-effector motion. In

this way it does not change the validity of the solution created by the pseudoinverse. It augments the solution so as to be more robust with respect to the chosen criterion (^). The

vector <j) can be used to minimize an optimization criterion or generate avoidance torques

that operate only in the null space of the manipulator end-effector motion. (For a more

thorough discussion, see [FIA88].)

The singularity robust inverse [NAK86] presents another alternative for J"*". It replaces

the pseudoinverse and exploits the manipulator's kinematic redundancy to achieve

singularity avoidance. The singularity robust inverse is based upon the premise that the

pseudoinverse solution is problematic in the neighborhood of a singularity. In an effort to converge to an exact solution, the pseudoinverse may generate an infeasible one. That is, it may generate a solution for which one, or more of the joint increments is so large that it cannot be physically realized. To circumvent the problem of excessively large joint angles,

Nakamura and Hanafusa propose the singularity robust inverse.

The singularity robust inverse, J ,is defined as:

J* = j'^(Jj'^ + >.I)"^

where X is the scale factor between the exactness and the feasibility of the solution. By

increasing X in the neighborhood of a singularity, one creates a feasible solution and avoids

excessively large changes in the joint variables [NAK86].

If the kinematic redundancy is to be resolved dynamically, most of the above mentioned

kinematic methods are not applicable. However, as mentioned above, the concept of a nullspace vector is applicable for generating avoidance torques [FTA88].

6. Conclusions

This document has given a description of Level 1 World Modeling for a hierarchical

manipulator control system. Level 1 includes World Modeling support for Servo Task

Decomposition and support for Level 1 Sensory Processing. The function and interfaces of

the World Modeling module have been described. While the specific function and

computations of the support processes depend on the sensors, devices and control

algorithms implemented in the Task Decomposition module, typical computations for a manipulator have been discussed.

7. References

[ALB87] Albus, J.S., McCain, H.G., Lumia, R., NASA/NBS Standard Reference Model

Telerobot Control System Architecture (NASREM), NASA Document SS-GSFC-0027, June

18, 1987.

[ASA83] Asada, H., Kanade, T., Takeyama, I., "Control of a Direct-Drive Arm," Journal

ofDynamic Systems, Measurement, and Control, Vol. 105, No. 3, 1983.

[ASA86] Asada, H., Slotine, J.J., Robot Analysis and Control, John Wiley and Sons, New

York, 1986.

24
[BAI84] Baillieul, J., Hollerbach, J., Brockett, R., "Programming and Control of

Kinematically Redundant Manipulators," Proceedings 23rd Conference on Decision and

Control: 768-774, December, 1984.

[BUR86] Burdick, J.W., "An Algorithm for Generation of Efficient Manipulator Dynamic

Equations," Proceedings 1986 IEEE International Conference on Robotics and Automation,

Vol. 1:212-218, April, 1986.

[CHA89] Chaconas, K., Nashman, M. "Visual Perception Processing in a Hierarchical

Control System: Level 1," NIST Technical Note 1260, NIST, Gaithersburg, MD, June 1989.

[CHAN86] Chang, P.H., "A Closed-form Solution for the Control of Manipulators with

Kinematic Redundancy," IEEE International Conference on Robotics and Automation, Vol.

1:9-14, April, 1986.

[CRA86] Craig, J.J., Introduction to Robotics: Mechanics and Control, Addison Wesley

Publishing, Massachusettes, 1986.

[DEN55] Denavit, J., Hartenberg, R.S., "A Kinematic Notation for Lower-Pair

Mechanisms Based on Matrices," ASME Journal of Applied Mechanics, Vol. 2, 1955, pp.

215-221.

[DOT87] Doty, K.L., "Tabulation of the Symbolic Midframe Jacobian of a Robot

Manipulator," The International Journal of Robotics Research, Vol. 6, No. 4:85-97, Winter,

1987.

[EVE87] Everett, L.J., Driels, M., Mooring, B.W., "Kinematic Modelling for Robot

Calibration," Proceedings 1987 IEEE International Conference on Robotics and Automation,

Vol. 1:183-189, April, 1987.

[FAE86] Faessler, H. "Computer-Assisted Generation of Dynamical Equations for

Multibody Systems," The International Journal of Robotics Research, Vol. 5, No. 3, Fall,

1986.

[FIA88] Fiala, J., "Manipulator Servo Level Task Decomposition," NIST Technical Note

1255, NIST, Gaithersburg, MD, October 1988.

[FEA87] Featherstone, R., Robot Dynamics Algorithms, Kluwer Academic Publishers,

Massachusettes, 1987.

[FUN88] Funda, J., Paul, R. P., "A Comparison of Transforms and Quaternions in

Robotics," Proceedings 1988 IEEE International Conference on Robotics and Automation,

Vol. 2: 886-891, April, 1988.

[GU88] Gu, Y.L., "Analysis of Orientation Representations by Lie Algebra in

Robotics," Proceedings 1988 IEEE International Conference on Robotics and Automation,

Vol. 2: 874-879, April, 1988.

[HOL80] Hollerbach, J.M., "A Recursive Lagrangian Formulation of Manipulator

Dynamics and a Comparative Study of Dynamics Formulation Complexity," IEEE

Transactions on Systems, Man, and Cybernetics, Vol. SMC-10, No. 11, November, 1980.

[IZA86] Izaguirre, A., Paul, R., "Automatic Generation of the Dynamic Equations of the

Robot Manipulators Using a LISP Program," Proceedings 1986 IEEE International

25
Conference on Robotics and Automation, Vol. 1: 220-226, April, 1986.

[JEN75] Jensen, J.A., Methods of Computation: The Linear Space Approach to Numerical Analysis, Scott, Foresman and Company, Illinois, 1975.

[KAN83] Kane, T.R., LUdns, P.W., and Levinson, D.A., Spacecraft Dynamics, McGrawHill Book Company, New York, 1983.

[KHA87] Khatib, O., "A Unified Approach for Motion and Force Control of Robot

Manipulators: The Operational Space Formulation," IEEE Journal of Robotics and

Automation, Vol. RA-3, No. 1:43-53, February, 1987.

[KH086] Khosla, P.K., Real-Time Control and Identification of Direct-Drive

Manipulators, Ph.D. Thesis, Carnegie Mellon University, August, 1986.

[KLE83] Klein, C.A., Huang C-H, "Review of Pseudoinverse Control for Use with

Kinematically Redundant Manipulators," IEEE Trans, on Systems, Man, and Cybernetics,

Vol. SMC-13, No. 3:245-250, March/April, 1983.

[LUH85] Luh, J. Y. S., "Design of Control Systems for Industrial Robots," in Handbook of

Industrial Robotics, Nof, S. Y., ed., John Wiley & Sons, New York, 1985.

[NAK86] Nakamura, Y., Hanafusa, H., "Inverse Kinematic Solutions with Singularity

Robustness for Robot Manipulator Control," Journal of Dynamic Systems, Measurement, and

Control, Vol.l08:163-171, September 1986.

[ORI841 Orin, D.E., Schrader, W.W., "Efficient Jacobian Determination for Robot

Manipulators," Robotics Research: The First International Symposium, MIT Press, 1984.

[PAU811 Paul, R.P., Robot Manipulators: Mathematics, Programming and Control, MIT

Press, Massachusettes, 1981.

[PAU86] Paul, R.P., Zhang, H., "Computationally Efficient Kinematics for Manipulators

with Spherical Wrists Based on the Homogeneous Transformation Representation," The

International Journal ofRobotics Research, Vol. 5, No. 2:32-44, Summer, 1986.

[PER82] Pervin, E., Webb, J., "Quaternions in Computer Vision and Robotics," Carnegie

Mellon Department of Computer Science technical report #CMU-CS-82-150, 1982.

[ROT84] Roth, B., "Screws, Motors, and Wrenches that Cannot Be Bought in a Hardware Store," Robotics Research: The First International Symposium, MIT Press, 1984.

[SK086] Skowronski, J. M., Control Dynamics of Robotic Manipulators, Academic Press,

Orlando, 1986.

[ST0871 Stone, H., Kinematic Modeling, Identification, and Control of Robotic

Manipulators, Kluwer Academic Publishers, Massachusettes, 1987.

[VUK79] Vukobratovic, M., Potkonjak, V., "Contribution of the Forming of Computer

Methods for Automatic Modeling of Spatial Mechanisms Motions," Mechanism and Machine

Theory, Vol. 14:179-200, 1979.

[WAL82] Walker, M.W., Orin, D.E., "Efficient Dynamic Computer Simulation of Robotic

Mechanisms," Journal of Dynamic Systems, Measurements, and Control, Vol. 104:205-211,

September 1982.

26
[YOS84] Yoshikawa, T., "Analysis and Control of Robot Manipulators with

Redundancy," Robotics Research: The 1st International Symposium: 735-747, MIT Press,

1984.

[ZHA88] Zhang, Y., Paul, R.P., "Robot Manipulator Control and Cost," Document

distributed to NIST from University of Pennsylvania , 1988.

27

ft U . S . GOVERNMENT PRINTING F F I C E t 1 9 8 9 -2 6 1 - 9 1 3 / I 3

NBS-114A (REV. 2-8C) U.S. DEPT. OF COMM. BIBLIOGRAPHIC DATA

SHEET (See instructions)

1. PUBLICATION OR

REPORT NO.

NIST/TN-1258

2. Performing Organ. Report No 3. Publication Date December 1989

4. TITLE AND SUBTITLE

Manipulator Servo Level World Modeling

5. AUTHOR(S)

Laura Kelmar

6. PERFORMING ORGANIZATION (If joint or other thon NBS, see /nstruct/ons)

NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY

(formarly NATIONAL BUREAU OF STANDARDS)

U.S. DEPARTMENT OF COMMERCE

QArrHERSBURQ, MD 20899

7. Contract/Grant No.

80 Type of Report & Period Covered

Final

9. SPONSORING ORGANIZATION NAME AND COMPLETE ADDRESS (Street. City. State. ZIP)

S/A

10. SUPPLEMENTARY NOTES

I I Document describes a computer program; SF-185, PIPS Software Summary, is attached.

11. ABSTRACT (A 200-word or less factual summary of most significant information. If document includes a significant

bibliography or literature survey, mention it here)

This document describes the interfaces and functions of the Worid Modeling module at the

lowest level of a hierarchical manipulator control system. The World Modeling modules

maintain an intemal model of the world by continuously updating the model based upon

sensory input. At the lowest level of the control system, the Level 1 World Modeling

module interfaces to and supports the Data Acquisition Sensory Processing module and the

Servo Task Decomposition module. This document contains detailed descriptions of the

interfaces between the Level 1 World Modeling module and the rest of the control hierarchy.

This document also discusses the function of the support processes within the module. It does not attempt to provide an exhaustive list of the computations and models required by

World Modeling in support of all possible devices and sensors in a manipulator control

system. Rather, it aims to elucidate the classes of support processes for both Sensory

Processing and Task Decomposition, considering control of a manipulator (the most complex

device) as an example. The reader should be familiar with ICG Document #001, NASA/NBS

Standard Reference Model for Telerobot Control System Architecture (NASREM).

12. KEY WORDS (Six to twelve entries; alphabetical order; capitalize only proper names; and separate key words by semicolons)

control system architecture; hierarchical control; manipulator dynamics;

manipulator kinematics; robotics; world model

13. AVAILABILITY

[)Q(Unlimited

I I For Official Distribution, Do Not Release to NTIS

4^tl Order From Superintendent of Documents, U.S. Government Printing Office, Washington, D.C.

20402.

\2Z] Order From National Technical Information Service (NTIS), Springfield, VA. 22161

14. NO. OF

PRINTED PAGES

31

15. Price

USCOMM-DC 6043-P80

I

NIST.Technical Publications

Periodical

Journal of Research of the National Institute of Standards and Technology—Reports NIST research

and development in those discipUnes of the physical and engineering sciences in which the Institute

is active. These include physics, chemistry, engineering, mathematics, and computer sciences.

Papers cover a broad range of subjects, with major emphasis on measurement methodology and

the basic technology underlying standardization. Also included from time to time are survey articles on topics closely related to the Institute's technical and scientific programs. Issued six times a year.

Nonperiodicals

Monographs—Major contributions to the technical literature on various subjects related to the

Institute's scientific and technical activities. Handbooks—Recommended codes of engineering and industrial practice (including safety codes) developed in cooperation with interested industries, professional organizations, and regulatory bodies.

Special Publications—Include proceedings of conferences sponsored by NIST, NIST annual reports,

and other special publications appropriate to this grouping such as wall charts, pocket cards, and

bibliographies.

Applied Mathematics Series—Mathematical tables, manuals, and studies of special interest to physicists, engineers, chemists, biologists, mathematicians, computer programmers, and others engaged in

scientific and technical work.

National Standard Reference Data Series—Provides quantitative data on the physical and chemical

properties of materials, compiled from the world's literature and critically evaluated. Developed un- der a worldwide program coordinated by NIST under the authority of the National Standard Data

Act (Public Law 90-396). NOTE: The Journal of Physical and Chemical Reference Data (JPCRD)

is published quarterly for NIST by the American Chemical Society (ACS) and the American Insti- tute of Physics (AIP). Subscriptions, reprints, and supplements are available from ACS, 1155 Six- teenth St., NW., Washington, DC 20056.

Building Science Series—Disseminates technical information developed at the Institute on building

materials, components, systems, and whole structures. The series presents research results, test methods, and performance criteria related to the structural and environmental functions and the

durability and safety characteristics of building elements and systems.

Technical Notes—Studies or reports which are complete in themselves but restrictive in their treat- ment of a subject. Analogous to monographs but not so comprehensive in scope or definitive in treatment of the subject area. Often serve as a vehicle for final reports of work performed at NIST

under the sponsorship of other government agencies.

Voluntary Product Standards—Developed under procedures published by the Department of Commerce in Part 10, Title 15, of the Code of Federal Regulations. The standards establish nationally

recognized requirements for products, and provide all concerned interests with a basis for common

understanding of the characteristics of the products. NIST administers this program as a supplement

to the activities of the private sector standardizing organizations.

Consumer Information Series—Practical information, based on NIST research and experience, covering areas of interest to the consumer. Easily understandable language and illustrations provide useful background knowledge for shopping in today's technological marketplace.

Order the above NISTpublications from: Superintendent ofDocuments, Government Printing Office,

Washington, DC 20402.

Order the following NISTpublications—FIPS and NISTIRs—from the National Technical Information

Service, Springfield, VA 22161.

Federal Information Processing Standards Publications (FIPS PUB)—Publications in this series col- lectively constitute the Federal Information Processing Standards Register. The Register serves as the official source of information in the Federal Government regarding standards issued by NIST

pursuant to the Federal Property and Administrative Services Act of 1949 as amended. Public Law

89-306 (79 Stat. 1127), and as implemented by Executive Order 11717 (38 FR 12315, dated May 11, 1973) and Part 6 of Title 15 CFR (Code of Federal Regulations).

NIST Interagency Reports (NISTIR)—A special series of interim or final reports on work performed

by NIST for outside sponsors (both government and non-government). In general, initial distribu- tion is handled by the sponsor; public distribution is by the National Technical Information Service,

Springfield, VA 22161, in paper copy or microfiche form.
U.S. Department of Commerce

National Institute of Standards and Technology

(formerly National Bureau of Standards)

Gaithersburg, MD 20899

Official Business

Penalty for Private Use $300