Microprocessors in Robotic and Manufacturing Systems (Muhadharaty) PDF
Microprocessors in Robotic and Manufacturing Systems (Muhadharaty) PDF
Microprocessors in Robotic and Manufacturing Systems (Muhadharaty) PDF
International Series on
MICROPROCESSOR-BASED SYSTEMS ENGINEERING
VOLUME 6
Editor
Professor S. G. Tzafestas, National Technical University, Athens, Greece
The titles published in this series are listed at the end of this volume.
Microprocessors in
Robotic and Manufacturing
Systems
edited by
SPYROS G. TZAFESTAS
Department of Electrical Engineering,
National Technical University of Athens,
Athens, Greece
ISBN 978-94"010-5694-6
Preface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Contributors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
PARr 1
ROBOTIC COMPUTATIONS
CHAPTER 1
COMPUTATION OF ROBOT DYNAMICS BY A
MULTIPROCESSOR SCHEME
Yuan F. Zheng
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Tree-Height Reduction by Newton-Euler State Space Equations. . 6
3. The Multiprocessor System and the Task Allocation. . . . . . . . . . . . 17
4. Performance Evaluation .................................... , 22
5. Parallel Processing for a Two Link Robot System. . . . . . . . . . . . . . .. 24
6. Conclusion ............................................... 27
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
CHAPTER 2
AUTOMATIC SCHEDULING OF THE NEWTON-EULER
INVERSE DYNAMICS
Erik H. D'Hollander
1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2. Task Granularity and Communication Overhead. . . . . . . . . . . . . . . . 32
3. The Newton-Euler Inverse Dynamics. . . . . . . . . . . . . . . . . . . . . . . . . 35
4. Automatic Data-Flow Analysis: the LEM Analyzer ............... , 37
5. Parallel Execution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 45
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
CHAPTER 3
NUMERICAL APPLICATIONS OF DSPs IN ROBOTIC
COMPUTATIONS
A. Di Stefano and O. Mirabella
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2. A Survey of the Main Characteristics of DSPs . . . . . . . . . . . . . . . . . . 52
3. Numerical Applications in Robotic Computations. . . . . . . . . . . . . .. 61
4. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
VI
CHAPTER 4
PARALLEL PROCESSING OF ROBOT CONTROL
AND SIMULATION
Hironori Kasahara
1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2. Parallel Processing of Robot-Arm Control Computation. . . . . . . . .. 80
3. Parallel Processing of Robot Dynamics Simulation. . . . . . . . . . . . . . 92
4. SurnmaIY and Future Directions . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 98
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 98
PARl'2
ROBOTIC CONTROL AND VISION
CHAPTERS
MICROPROCESSOR-BASED CONTROLLERS
FOR ROBOTIC MANIPULATORS
J.A. Tenreiro Machado and J.L. Martins de Carvalho
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
2. Survey of Microprocessor-Based Controllers. . . . . . . . . . . . . . . . .. 104
3. Techniques to Improve Microprocessor-Based Controller
Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 120
Acknowledgements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
CHAPTER 6
DESIGN ASPECTS OF A ROBOT COORDINATED
BY A DESKTOP COMPUTER
John Billingsley
1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 131
2. The Supervisory System ................................... , 132
3. Kinematics and Their Inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 132
4. Polynomial Fitting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 139
5. Implementing the Difference Equations. . . . . . . . . . . . . . . . . . . . .. 141
6. Axis Command and Coordination. . . . . . . . . . . . . . . . . . . . . . . . . . .. 143
7. Implementing the Position Control Loop . . . . . . . . . . . . . . . . . . . . .. 147
8. Priority of Operations in the Axis Controller. . . . . . . . . . . . . . . . . .. 150
9. Conclusions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 152
Acknowledgements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 152
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 152
vii
CHAPTER 7
A PC SIMULATION PROGRAM FOR COMPARING
PERFORMANCES OF ROBOT CONTROL ALGORITHMS
J. O'Shea and R. Benali
l. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
2. Trajectory Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
3. Robot Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
4. Robot Dynanlics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
5. Some Control Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
6. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
CHAPTERS
COLLISION STRATEGIES FOR ROBOT RETREAT
AND RESISTANCE
R.E. Goddard. K.L. Boyer and H. Hemami
l. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
2. Pre-Collision Visual Sensing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 178
3. Post-Collision Tactile Sensing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
4. Control Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 205
5. Four link Biped. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
6. Discussion and Conclusions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
CHAPTER 9
A DISTRIBUTED CONTROL NETWORK
FOR SENSORY ROBOTICS
A.T. de Almeida. U.C. Nunes. J.M. Dias. H.J. AratYo
and J. Batista
l. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
2. Distributed system architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
3. Modelling the environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
4. Vision system .......................................... 221
5. Manipulator gripper and associated sensors ................. 227
6. Sensor data integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
7. Software conSiderations .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
8. Conclusions ............................................ 233
References .............................................. 234
viii
CHAPTER 10
NEURAL NETWORKS AND ROBOT VISION
Erik H. D'HoUander
PARTS
MANUFACTURING SYSTEMS
CHAPTER 11
MICROPROCESSORS IN DATA ACQUISITION SYSTEMS
FOR PROCESS CONTROL
A.M. Weilert
CHAPTER 12
DESIGN AND ANALYSIS OF A MODULAR CNC SYSTEM
Y. Altintas
CHAPTER 13
COMPUTER / PROGRAMMABLE CONTROL
OF A FLEXIBLE MANUFACTURING CELL
J. Richard. F. LePage and G. Morel
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 311
2. Cell functional requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
3. Structural requirements .................................. 314
4. Study and realization ........... " . . . . . . . . . . . . . . . . . . . . . . . . . 320
5. Conclusion .............................................. 332
Acknowledgements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
References ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 332
CHAPTER 14
ROBOT AND PLC SUPPORT SYSTEM
BASED ON FmER OPTIC MAP NETWORK
P. Hodaie. B. Chan. B. Szabados and O. Storoshchuk
CHAPTER 15
EXPERIMENTAL RESULTS OF PARAMETER
IDENTIFICATION AND NONLINEAR CONTROL
ON A PM STEPPER MOTOR
M. Aiello. R. Rekowski. M. Bodson. J. Chiasson
and D. Schuerer
CHAPTER 16
DIGITAL SIGNAL PROCESSOR IMPLEMENTATION
OF A KALMAN FILTER FOR DISK DRIVE
HEAD POSITIONING MECHANISM
J.A. Lowe and F.L. Lewis
CHAPTER 17
SIMULATION ANALYSIS OF FLEXIBLE MANUFACTURING
SYSTEMS USING RENSAM
Jorge Haddock and YOWlg Chul. Kim
1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 386
2. RENSAM System Description. . . . . . . . . . . . . . .. . . . . . . . . . . . . .. 386
3. Case Study: CompanyC..................... ...... ......... 388
4. RENSAMResulm......................................... 392
5. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 396
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 402
ROBOTIC COMPUTATIONS
CHAPTER 1
Yuan F. Zheng
Hooshang Hemami
Dept. of Electrical Engineering
The Ohio State University
Columbus, OH 43210
ABSTRACT. The computation of applied torques in real time in the dynamic con-
trol of robot systems is complicated and time consuming. The Newton-Euler state
space formulation is used for computing the dynamics. By using this formulation,
the backward recursion for calculating angular velocities and angular accelerations
is eliminated. The calculation of lineal' acceleration is simplified. It involves only
two steps. This reduces the height of the evaluation tree in calculating the applied
torques which makes the parallel processing more effective. A multiprocessor sys-
tem composed of a central CPU and a group of satellite CPU's is suggested for
implementing the computations. The task of each satellite CPU is t.o take care of
one link of the system by calculating all it.s related data. The task of the CPU is to
compute the applied torques. Because of this arrangement, t.he required software
system is the same for all satellite CPU's. The proposed multiprocessing scheme
results in a flexible and modular system which is adaptive for a variety of dynamic
configurations. Computer simulation results of this strategy are presented to show
that the suggested multiprocessing scheme achieves a good speedup factor over the
uniprocessing system.
I Introduction
Robotic systems are widely used for industrial automation. The dynamics of
the system are not taken into account in the design of control strategy for the ma-
jority of today's industrial manipulators [1-4J. However, in cases of fast motion
and mechanical configurations with strongly coupled elements, the dynamics of the
system are needed in the derivation of control forces [5J. Because of the highly non-
3
4
linear ano coupleo charader of mll1t.ihody lin kage systems, the dynamics eq11flt.ions
of the system are very complicated. Early formulations of dynamics were based on
Lagrange's equations[6].
Lagrange's formulation is inefficient in computing the applied torgues when po-
sitions, velocities and desired accelerations are given [7,8]. As a result it is very
time consuming in real time control cases. Effort.s have been made to render the La-
grangian dynamics comput.ationally feasible. The Coriolis and the centrifugal forces
are the greatest calculation burden in the dynamics. A frequent.ly used method is
to eliminate these furces and consequently simplify the dynamics. However, t.he
contributions from Coriolis and centrifugal terms are significant. at fast speeds of
movements. Ignoring these t.erms will result in notable errors in the computed
t.orgues. Several met.hods have been proposed t.o raise t.he efficiency in comput.a-
tion of the applied torgues. Luh et al [7] proposed an approach based on recursive
Newton-Euler formulation of the dynamics. This method greatly reduces t.he cal-
culation time. The Lagrange formulation for a six-joint robot manipulation needs
66,271 multiplications and 51,548 additions. The Newt.on-Euler method requires
only 8.52 multiplications and 738 additions[I]. Later, Hollerbach[8] suggested a
recursive Lagrangian formulation for manipulator dynamics. His method requires
2,195 multiplications and 1,719 additions if 3 x 3 rather than 4 x 4 t.ransformationma-
trices are used. It seems that the recursive Newton-Euler is more efficient than the
recursive Lagrangian formualtion. However, Silver[9] showed that. with the proper
choice of the represent.ation for the rotational dynamics, the recursive Lagrangian
formualtion requires exactly the same computation as the recursive Newton-Euler
formualtion.
The recursive method as developed in [7] and [8] appears to be computationally
efficient. The computation is only feasible for real-time purposes with computers
that have reasonable computation power such as PDP 11 's[7]. It is desirable that
the computation of the applied torques for multi body systems be executable by
low cost microcomputers. To achieve real time control with microcomput.ers that
have limit.ed computat.ional power requires furt.her improvement of comput.ation ef-
ficiency. No method other than the recursive methods of [7] and [8] can offer better
computational efficiency. Computation parallelism then becomes the natural and
the best choice since parallelism can offer increased speed of computation without
the improvement of operation speed for individual hardware components. Recently,
5
Zakharov[10] summarizeo t.hree mf't.horls for parallelism, namdy pipf'lining, t.hf' lise
of multiple functional units within a uniprocessor, and the system with many pro-
cessors. The first and the second methods need specially designed processors. With
the complicated computation task of system dynamics, the design of these types of
processor is certainly a challenging problem. Lathrop proposed a parallel process-
ing algorithm for low-pair kinematic chains, suitable for special-purpose hardware
of VLSI[llJ. However, the design and manufacturing of such a processor is very
expensive. On the other hand, with the advent of low cost micro-processors, the
third method, multiprocessor systems become very attractive.
Luh and Lin[12] first proposed a parallel processing system which utilizes one
CPU for each link of a robot manipulator. The recursive Newton-Euler method
was employed for computational algorithm. For a multiple processor system, the
scheduling of parallel computation is of central importance. It directly affects com-
putational efficiency of the parallel processing system. The main efforts in [12]
were actually devoted to finding an optiomal schedule for the parallel computation.
Unfortunately, the recursive method itself inherently possesses serial computations
that cannot be executed concurrently, even though more than one CPU is available.
The result is that an optimal scheduling is hard to find and the improvement is very
limited. In the recursive methods there are two recursions: the backward and the
forward. The backward recursion propagates angular velocities, angular velocities,
angular accelerations, linear accelerations, total link forces, and total link torques
from the base to the end link[7]. The forward recursion propagates the forces and
applied torques exerted on individual joints from the end link of the manipulator to
the base[7]. Because of these two recursions, the dynamics behavior of one link af-
fects that of its adjacent links. Since each CPU is responsible for calculating all the
above parameters of the corresponding link it has to idle until its required data are
sent in by its adjacent CPU's [12J. This serial precedence imposes an optimization
problem in the assignment of computational subtasks to individual CPU's. A so
called "variable" branch-and-bound methods was developed in [12J, which schedules
the computation of tasks by distributing the load in some sequential order among
the CPU's under the series-papallel constraints, such that the time for completing
the computation is minimum. However, because of the two recursions, the im-
provement of computational efficiency is greatly affected by the series constraints
and the heavy communication among CPU's. The method is based on "search and
6
try" pro('ednre, it. t.akes great. effort to determine the final minimum-time schedule.
Furthermore, the subtasks to be processed have different sequences in individual
CPU's. Consequently, adding or dropping one link of the system will totally dis-
turb the previous schedule and the entirely complicated procedure will have to be
restarted again.
In this paper, a new multiprocessing scheme is suggested for the parallel compu-
tation of llluitibody system dynamirs. The Newton-Euler state space formulation
developed by Hemami[13] is utilized to compute the dynamics of the system. The
latter formulation keeps the computational efficiency of the recursive Newton-Euler
formulation. The backward recursion for angular velocities and angular accelera-
tions, however, are eliminated. The computation of linear velocities is not required
in the Newton-Euler state space formulation. The backward recursion for linear
accelerations is simplified to only two steps of a series precedence. Furthmore,
the multiprocessor system suggested has a central CPU in addition to the satellite
CPU's. The applied torgues are calculated in the central CPU such that heavy
communication among satellite CPU's is avoided. Because of the above considera-
tions, the parallel processing becomes more effective and the computation time may
be further reduced. Even more important is the fact that the software is the same
for each satellite processor.
For a multi body system of n joints, it is assumed that the system has a sufficient
number of sensors to determine at any time the joint position and velocities. Given
the desired joint accelerations, it is the goal to compute general torgues at each
joint. The whole data processing procedure is divided into a number of tasks. If
each task is regared as an atom, the computation procedure can be expressed as a
tree[14]. For example, consider the evaluation of a third order polynomial:
ST~
STEP 5
STEP
STEP 1
speeded IIp by using more t.han onp prOCPSSOf. TherefofP, t.o fPflllCP computation
time, one must first reduce the height of an evaluation tree so that each step in the
tree could have as many atoms as possible.
In t.he recursive Newton-Euler formualt.ion, t.he three-height. is a large number.
For example, the angualr velocities and angualr accelerations are expressed in the
recursive Newton-Euler method[7] as follows:
Wi - 1 + Zoqi-l,
(2)
Wi - 1 + Zoqi-l + Wi - 1 X Zoqi
where Wi is the angular velocity of link i a 3 x 1 vector; qi is the joint velocit.y of joint
i-a scalar and Zo = [00 l]T. The evalutation of Wi and Wi needs Wi - 1 and W i- 1 of
the previous link. To calculate the angular velocities and accelerations of all links,
the tree expression is as shown in Fig. 2. This kind of tree structure is not desired
since there is only one atom in each step. Additional processors do not speed up
the computation. The same situation applies in evaluating linear velocit.ies, linear
accelerations, total forces and tot.al torgues[7]. As a result, calculat.ing t.he final ap-
plied torgues for a multi body system with n links needs more than n st.eps; and, the
task scheduling becomes extremely difficult. For any multibody system with more
than five joints, it is very hard to find an optiomal schedule on a digital comput.er
with a reasonable amount of computing t.ime [12]. In t.he Newton-Euler stat.e space
formulation of the system dynamics suggested in [13], two coordinat.e systems are
assumed for each link - an inertial coordinate syst.em and a body coordinate system.
The origin of the latter is located at the center of gravity and t.he axes are among
the principal axes of the body (Fig. 3). Let the state variables be Xi, .Y";, 0i and
Wi; where (Ji and Wi are the Euler angles and the angular velocities expressed in
the body coordinate system. The Newton-Euler State Space equations for each link
are [13].
Oi B(O;)Wi ,
Wi J i- 1 [J(Wi ) + N;],
(3)
Xi ..fYi,
and Xi M-1Fi
where Mi is the mass matrix, Ji is t.he moment of inertia matrix, and N; and Fi are
the total forces and total torgues acting on link i, as defined in [7]. The matrices
B(O;) and vector J(W;} are
9
x 3.
1
o
x 2 .
1
k.
1
B( B;) = (4)
cos 8i3
° sin8 i3
From Eq. (3) one can obtain Wi and TV; without the backward recursion of
Eq. (1):
Wi = B- 1 (Oi)8;,
and
(6)
where e is the desired acceleration and Oi and 8 are the states of the
i i ith link which
may be detected by appropriate gyroscope type of sensors. Alterantively, angle g
and joint angular rate q (Fig. 4) may be sensed. For example, in the two-link system
of Fig. 4, link 1 and link 2 each have one degree of freedom. Link 1 can rotate along
the fixed axis X03 on the platform. Link 2 can rotate along 01Xl1. The joint angle
q1 is defined as the angle between axes X 02 and X l2 . The joint angle q2 is defined
as the angle between axes 01X13 and 02XZ3' Let Oll, 012 and 813 be the Euler
angles of link 1, and let 821 , On and 023 be the Euler angles of link 2. It follows
that 011 = g1, 8 12 = 0, and 013 = 0, and B21 = g1,
On = g2, and 823 = 0. Generally,
the dependence of the Euler angle 8 on the joint angle q can be described by a set
of parametric relations as follows:
where the elements of matrix C are constants (0, 1, and -1), j is the number of
links in the system, and n is the total degrees of freedom of the system. If each
joint has only one degree of freedom, j is equal to n. With the calculation of Bi and
Bi
11
x 23
o
./ ~ X 02
as st.ep 1, t.he eval11at.ion of TVi 11$ f'tf'P 2, 1111" rompl1t.f1t.iOll trpe will havp f1 h{'i~ht.
of 2 (Fig. 5). Furthermore, since the calculation of Wi does not. require knowledge of
the angular velocity of the other links, the tree height is independent of t.he number
of joints. The same situat.ion happens during the calcualtion of Wi.
In order to calculate the external force Fi on link i, one needs to knows Xi in
Eq. (3). For any two connected links i and i +1, there exists a holonomics connection
constraint (Fig. 3) expressed by
(8)
Ai( (}i) 3 x 3 matrix, transform a vector from the body coordinate syst.em to the
inertial coordinate system,
Ki vector from the center of the body coordinate origin to the upper joint (along
body axis X 3i ),
Li vector from the center of the body coordinate origin to the lower joint (along
body axis X3;)'
(9)
and
(10)
where WWi is a 3 X 3 skew symmetric matrix whose elements are related to the
vector Wi as follows [13]:
STEP 1
x
2
Xl ,
X i3
X i3
,,
X i2
x~2
S~rEP 2
0
,,,
STEP 3
" ,
STEP 2
CALCULATE W. s ~
STEP 1
ql qn
CALCULATE e. and e.
. .•
~ ~
ql qn
q2
q2
The t.f.'rmfl f( TC IInrl [,"; are Rimilarly rlefl1lf'd. H appearfl t.hllt to (,R]rJ.JRte of; hy
Eq. (10), backward recursion is still required. But it actually takes only two steps
to complete the computation of Xi. The computation of Xi may be arranged as
follows.
Let
(12)
and
(13)
Xl = --AWKI'
X2 AW(LI - Kd - AWK2 ,
(14)
where
In the first step, AWKi required by Xi, AW(Li - K;) required by X i+1, X iH ,···
and X n , are calculated. In the second step Xi is then calculated by Eq. (14). Since
all the WIs and Wis are available at the same time as it was pointed out earler,
the computation of AW Ki and AW( Li - I() for all the links can be carried out in
parallel. However, the calculation of Xn needs more time to be completed than those
of other linear accelerations. It appears that the value of XIs are not all available
at the same point of time. One may notice that the second step represented by
Eq. (14) only has a number of additions varying from zero for link 1 to (n - 1)
for link n. Clearly, step 2 needs much less computation time than step 1 does,
which includes matrix multiplications. Therefore step 1 is significant enough to
represent the parallel computation of the linear accelerations. The tree structure
for computation of all XIs is now as in Fig. 6. One may recall that in the recursive
Newton-Euler method of [7], the angular velocities and angular accelerations are
calculated one by one. The calculation of the linear accelerations, which needs
16
X2
STEP 2
STEP 1
Step 4: Calculate AW K;, AW(Li - K;} by Eq. (12) and Eq. (13)
As pointed out previously, there do not exist recursive relations between the links;
all the F!s and NIs can be computed in parallel by more than one processor.
To calculate Ti-the general torgue for link i, the following equations are em-
ployed[13].
(15)
(16)
( 17)
(18)
(19)
where 11, is the last link of the system. There exists a forward recursion. If Eqs. (15)
to (19) are assigned in one atom, the tree structure after calculation of .{Yfs is as
shown in Fig. 7.
The dynamics of a multi body system has now been assigned an evaluation tree
by using Newton-Euler state space formulation. Notable tree-height reduction has
been achieved. If each atom is regarded as a task, t.he next step is the task allocation
among the multiprocessors. This will be discussed in the next section.
The evaluation tree for calculating the applied torques was derived in the last
section. The tree height is significantly reduced by using Newton-Euler state space
formulation. To effectively execut.e the parallel ('ompllt.ation as schecluled, the ar-
chitecture of the multiprocessor system and the task allocation are also important.
The first point of interest about the architechture is the number of CPU's. The sys-
tem, specially designed for the parallel computation of the applied torgues, should
have 11, satellite CPU's (one CPU for each link) and a central CPU. Later it will be
made dear that the addition of the central CPU greatly reduces the COllllllunic.ation
18
CENTRAL
PROCESSOR
I/O
+ t+
(2) SATTELITE (2) SATTELITE (2) SATTELITE
PROCESSOR PROCESSOR PROCESSOR
- I/O
t
-- +
I/O
+
"-
t
I/O
r r
Fig. 8 : Block diagram of multiprocessor system.
among satellite CPU's and also makes the task allocation much easier than with-
out the central CPU. The second aspect concering the system architect.ure is the
coupling among the CPU's. A multiprocessor system can be either tightly coupled,
meaning that the system has a global memory shared by all the CPU's, or loosely
coupled, meaning that the system has no global memory [15J. For a tightly coupled
system, communication between processors occurs through global memory. A means
must be provided to resolve the conflicts for the access of the shared system. For a
loosely coupled system, the communication is done through input/output channels
[15J. For the purpose of simplicity and modularity, the loosely coupled system is
chosen. Each satellite processor of the system should have local memory and enough
I/O capability. The general block diagram of the suggested multiprocessor system
is shown in Fig. 8.
With t,hE" evalmltion t.rE"e and t.he sperifif'd systf'm Sh·l1rt.lll'e, the task allnration
becomes easy and obvious. In the last section, it was stated that F; and Ni could be
calculated in the seven steps. All the steps are the same for every link of a 111ult.ibody
system, except for step 5 in which the last link (link 5) needs 1110re additions in the
20
with
AW(L. _ K.) = { 0 j ~0
J J AW(Lj _ K j ) j >0
Step 5 will be the same for all the links in terms of computation time. If each step is
considered as a task, all the seven tasks for one link are assigned to the satellite CPU.
Since there are as many satellite CPU's as the number of links, all the calculation of
Fis and NIs can be carried out in para.l1el and completed simultaneously. Anot.her
advantage is t.hat the program in every satellite CPU is exactly the same. This
unique feature of the software plus the loosely coupled structure of the hardware
make the mechanism easy to be adopted to different robotic systems.
The final goal, however, is to calculate the applied t.orgue TIs. The calculation
of Tis has been assigned in an atom. If the task is allocated at one of t.he satellite
CPU's, two problems will arise:
One approach is to furt.her divide the task into small subtasks and distribute them
among satellite CPU's. This may reduce idle time, but software uniformity is de-
stroyed and heavy communication between satellite processors arises.
An alternative approach is to allocate the task to central CPU. As a result,
the software uniformity for satellite CPU's is maintained and heavy communication
between satellite CPU's is reduced. Most of the necessary communication is between
the central CPU and satellite CPU's. It may be noticed that after satellite CPU's
complf't.e t.he calculat.ion of F;'s and N,'s and iwno t.llf'm t.o t.hf' cf'ntral ('PTT, f1lf'Y
are totally idle until the computation in t.he central CPU is completed. To reduce
the idle time, one has to speed up the computation in the cent.ral CPU. The task for
calcualting Ti's is divided into two subtasks. Substask 1 includes every evaluation
which does not require the information of F/s and N:s; therefore, subtask 1 can
be executed in parallel with t.he execution of t.asks in sat.ellite CPU's. Subtask 2
21
SA TTElliTE CPU
EXECUTION TIME
COMMUNICATION
FOR STEP 1 TO 4 TIME EXECUTION TIME IDLE TIME
nT C1
CENTRAL CPU
EXECUTION TIME
FOR SUBTASK 2
EXECUTION TIME
FOR SUBTASK 1 IDLE TIME COMMUNICATION
TIME
t 3
nT c2
finishes the stage of calculation which needs Fi'S and Ni's. For example, Eq. (19)
is used to calculate Tn. It could be rearranged as
(21)
The evaluation of A~_l An, K K'!; and LLnA~ in Eq. (21) is assigned into subtask 1.
With these terms known, less time is required to evalua.t.e Tn by subtask 2. Conse-
quently, the idle time of the satellite CPU's is much reduced. The execut.ion times
for the satellite CPU's and the central CPU are described in Fig. 9.
22
IV Performance Evaluation
S -~ (22)
m - tm
Suppose that there are n links in the multi body system and one processor. To
calculate Fi and N i , the processor is required to execute step 1 through st.ep 7.
From Fig. 9, the time consumed by this calculation is
(23)
where
To calculate all the FIs and NIs for the system requires
(24)
(25)
where t~, t4 and t5 are denoted in Fig. 9. Since t~2 is the time required for all n
applied torques, it is directly proportional to n. Eq. (25) can then be expressed as
where
T3 = ~ and T4 = i5 - t4 .
n n
The total time required is then
(26)
The time interval ts includes COllllllUication time between satellite CPU's, t2 - tt,
and that between satellite and central CPU's, t4 - t3. Both are directly propotional
to (n - 1) and n respectively. They may be expressed as
and
(27)
(29)
Tl + T2 + T3 + T4 (31)
Tc2 + T3 + T4
One may notice that Sm is now a constant and has nothing to do with t.he number
of links. But Tl and T2 are much greater than Tc2 , T3 and T4 as it will be seen in
the next. section, the speedup fact.or will always be greater than 1.
The numerators in both (28) and (31) are fixed for any particular value of n. To
increase the speedup factor, one may reduce t.he denominators in which t.he COlll-
li+Ni'
BiWi ,
(32)
Xi,
7n..'Y; Fi , i = 1,2
r2 - 7n2g,
Af A2(N2 + h - J( J(2 Afr 2), (33)
and
Tl A 1 (T2 + Nl + 11 - J(J(lr 1 + LL 1 Afr2).
25
J2
Eqs. (32) is used to calculate FIs and NIs. The calculation is divided into seven steps
as indicated previously, and tasks for each link are allocated into two processors.
Eqs. (33) is used to calculate the final torgues. The task of calculating T/s is divided
into two subtasks. Subtask 1 includes:
1. Calculat.e Ai = AT .4 2 , a 3 x 3 matrix.
2. Calculate K A2 = K K2Af, a 3 x 3 matrix.
Suht.ask 2 inclndes:
The data transmitted from satellite CPU's to the central CPU are F/s and Nfs.
Each is a three element vector. Therefore, the total time of Tc2 is
Since
--~--
2{38+22+15+10)
__.
._--_.. - - ----_. ------
-------------~-----------~ --
All the above execution times include the evaluation of trigonometric functions. If
one implements is a table lookup for these complex function, execution time can be
further reduced.
The above executive and communication times can be used to find the speedup
factor for a general industrial manipulator with six joints. Since
VI Conclusion
using t.h~ cf'nt.rn.l CPlT, hC'n.vy comnnmicatioTl haffic het.ween t.hf' ~n.t "llit ... nplT'~ is
much reduced, and the complicated process of task allocation among the satellite
CPU's is avoided.
The parallel processing strategy developed here is applied to a two link robot
system. The speedup factor is 2.106. The simulation results are generalized to
industrial robots with six links. A speedup factor of 3.36 is obt.ained.
29
REFERENCES
[1] J .Y.S. Luh, "An Anatomy of Industrial Robots and Their Controls," IEEE
Trans. Automat. Contr. Vol. AC-28, no.2, pp. 133-153.
[2] Y.F. Zheng and F. R. Sias, "Design and Motion Control of Pratical Biped
Robot.s," International Journal of Robotics and Automation, Vol. 3 , 110.2, pp.
70-78, 1988.
[3] D.E. Whitney, "Resolved Motion Rate Control of Manipulators and Human
Prostheses," IEEE Trans. Man-Machines Syst., Vol.MMS-10, no. 2, pp. 47-53,
June 1969.
[4] C.S.G. Lee "Robot. Arm Kinemat.ics, Dynamics and Cont.rol," IEEE COM-
PUTER, PP.62-80, December, 1982.
[5] M. Vukobratovic, and D. Stokic, "Is Dynamic Control Needed in Robotic Sys-
t.ems, and, if so, to What Ext.ent?", The International Journal of Robotics
Research, Vol.2, no.2, Summer 1983.
[7] J .S. Luh, M. Walker, and R. Paul, "On-line Computational Scheme for Mechan-
ical Manipualtors," Trans. ASME, J. Dynamics Syst., Meas. Contrl., Vol.102,
pp.69-76, June 1980.
[9] W.M. Silver, "On the Equivalence of Lagrangian and Newton-Euler Dynamics
for Manipulators," The International Journal of Robotics Research, Vol. 1 , no.2,
Summer 1982.
[10] V. Zakharov, "Parallelism and Array Processing," IEEE Trans. Computer, Vol.
C-33, no. 1, pp 45-78, 1984.
30
[11] n. H. LII.throp, "Parallplis111 ill !\ rms lI11rl Lf'gs", l\f.S. Thf'sis, Till" l\f IIssadl11 Sf'Hs
Institute of Techuology, December, 1983.
[12] J .Y.S. Luh, and C.S. Lin, "Scheduling of Parallel Computation for a Computer-
Controlled Mechanical Manipulator," IEEE Trans. Syst., Man, Cybern. Vol.
SMC-12, no. 2 , pp 214-234, Marchi April, 1982.
[13] H. Hemami, "A State Space Model for Interconnected Rigid Bodies," IEEE
Trans. Atdoma. Contr., Vol. AC-27. no.2, pp 376-382, April, 1982.
[14] D.J. Kuck, "A Survey of Parallel Machine Organization and Program," Com-
puting Surv£Y:J(ACMj, Vol. 9 , no.l, pp. 29-.59, March, 1977.
Erik H. DlIollander
State University of Ghent
Department of Electrical Engmeenng
St.-Pietersnieuwstraat 41. B-9000 Ghent. Belgium
Abstract
The robust control of a robot arm requires the fast calculation of the dynamic
equations. Up to now the Newton-Euler formulation is considered to offer the most
efficient implementation, with a workload proportional to the number of links. However,
most low cost micro-controllers are unable to deliver the processing speed required for
operation in a real-time environment. Therefore several authors suggest a parallel
implementation. Using a careful manual decomposition of the taskgraph, speedups of
roughly equal to the number of links are reported in the literature. In this chapter
some general techniques for the automatic program decomposition and scheduling are
presented. These methods are embedded in the LEM Analyzer, a tool to generate
multiprocessor schedules from a high-level language program. A simulator allows to
measure the parallelism and estimate the performance of the execution. The automated
analysis is applied to the inverse dynamics problem. It compares favorably with a
manual decomposition and scheduling. Moreover, the LEM Analyzer holds the promise
to decompose and simulate many other robot-arm configurations in a large range of
multiprocessor configurations.
1 Introduction
The real-time control of a multiple link robot arm involves the computation of the inverse
dynamics. The dynamic equations of a n link manipulator describe the interaction between
the link control and the external forces. The Newton-Euler formulation of these equations
[19] provides a solution in O(n) steps. This makes a real-time control feasible, if the
resonance frequencies of the links remain below 60 Hz [20]. However, as noted in [26], a
60 Hz sampling rate is estimated too low for a realistic servo-control. In [22] a 300 Hz
frequency or 3.33 ms sampling period is recommended for the control of a PUMA robot.
A higher control loop frequency would even be preferred if possible. In this chapter we
will show that with the actual 32-bit micro-processors, a parallel execution of the inverse
dynamic equations is possible in .7168 IDS, giving a robust 1.395 KHz sampling rate.
Four approaches exist to speed up the computations. These are the development of
ASIC chips (Application Specific IC's), [2,15,9,16], pipelined array processors [25], a RISC
architecture [3] and several multiprocessor implementations [18,22,12,13,26,23].
31
32
The VLSI developments are bit-serial architectures [2,9,15,16] or vector processors [21].
They represent ad-hoc solutions for the specific nature of the robotics vector computations.
Pipelined array processors require large vectors to compensate for the expensive start-up
time of the pipe. Since most robotics matrices have a dimension of merely 3 x 3, this might
block out the pipelined systems all together. However, Wander and Tesar [25] devised a
special "base plus offset" addressing method which allows to align the data of consecutive
operations in long pipelines. This results in a total of 5.5 ms for the dynamics calculation.
A RISC approach for robot control is the JIFFE Very Large Instruction Word processor
[3]. Andersson uses two Arithmetic and Logical Units (ALUs) in parallel, fed with 200 bit
wide microcode instructions. An Am29331 program sequencer points into a 64K memory
address space. With 20 MFlops per ALU, the peak performance of the JIFFE processor
is 40 MFlops on 32 bit floating point numbers. The dynamic model of Izaguirre and Paul
[11] executes in 47.8 JJS, i.e. close to 20 MFlops.
Finally, several authors present multiprocessing solutions because it is natural to dis-
tribute the load of the relatively independent link equations over low cost micro-controllers.
For example, Luh et a1. [18] assign one controller per link to calculate the dynamics of the
Stanford arm. With 1 and 6 processors they obtain a processing time of 24.8 ms and 9.67
ms respectively, yielding a speedup of 2.56. Kasahara and Narita [12,13] schedule the tasks
on an arbitrary number of processors. Their modified critical path algorithm results in ex-
ecution times of 24.83 ms and 5.73 ms for 1 and 6 processors respectively, giving a speedup
of 4.33. Vukobratovic et a1. [23] use their own computer-generated numeric-symbolic dy-
namic model [24]. The calculations are organized into a many pseudo-independent subtasks.
These are distributed using a largest-processing-time-first list-processing algorithm [4]. For
the Stanford arm benchmark, the processing time is reduced from 28.7 ms to 4.81 ms with
6 processors, giving a speedup of 5.97. Recently, Wang et a1. [26] implemented the inverse
dynamics equations on a four processor MC68020jMC6881 system. Following a manual
decomposition of the Newton-Euler equations, the tasks are scheduled by the method of
Kasahara [12,13]. The measured execution times are 5.477 ms and 1.48 ms with 1 and 4
processors respectively, yielding a speedup of 3.70.
A comparison ofthe different speedup figures in the multiprocessing publications suggests
that the expected parallelism of the inverse dynamics equations is less than 10. The obtained
speedup critically depends on the task decomposition and scheduling method. In this
chapter we present several methods to automate the task decomposition and scheduling
of the inverse dynamic equations. These techniques are embedded in the LEM Analyzer
and apply to other models as well, such as the inverse kinematics or the joint coordinates
equations. The taskgraph is generated from a Fortran program describing the equations.
Then the task are scheduled using a simple but efficient list-scheduling algorithm. In this
way the inverse dynamics shows a speedup of 7.73 with 9 processors.
made. Small tasks increase the parallelism as well as the communication overhead. At the
other hand, large tasks cause processor idling times. We define the following task graph
parameters.
The task granularity r is defined as the average duration of a task 'f divided by the
duration of the whole program E.
r='f/E. (1)
The communication density of a task graph, p, measures the amount of inter-task com-
munication, c, with respect to the effective processing time, E - c.
~fficiency
1.0
0.9
0.8
0.7
0.6
0.0 0.1 0.2 0.3 0.4
~
Ii = 1 if link i is rotational
Ii = 0 if link i is translational
These equations compute the external forces Fi and the external moments Ni exerted on
link i by progressively calculating the linear velocity Vi and acceleration Vi, the angular
velocity Wi and acceleration Wi, from the base to the hand. Then the applied torques
and forces Ti are calculated in reverse order from the hand to the base [18]. Matrix A~_l
transforms a vector between coordinate systems i - I and i, Zo = [00 I]T. Some variables
of link i are represented with respect to the coordinate system associated with link i - l.
These are the origin of coordinate system i, pi, and the angular velocity and acceleration
qi and qi. fi and Di represent the force and moment vectors exerted on link i by link i - l.
The input variables are n, the number of joints, and fn+l, Dn+l, the force and moment
exerted by the hand (i.e. link n) on the load. The outputs are Ti, the torques or forces
to be applied for each link i. Constants are mi, the total mass, J i , the inertia matrix in
base coordinates, Si, the center of mass of link i, relative to its own coordinates and bi , the
damping coefficient. The derivation of these formulas can be found in [18].
A Fortran-77 program for the Stanford arm is derived from the Newton-Euler equations
(fig. 2).
36
do i = 1,6
ao(i) fl (ao(i-l»
if (i.ne.l .and. i.ne.3) then
veel = f2 (ao(i-l»
endif
aod(i) = f3 (aod(i-l),veel)
vee2 = f4 (avd(i-l»
if (i.ne.l .and. i.ne.4 . . and. i.ne.5) then
vee3 f5 (ao(i»
vee4 = f6 (aod(i»
endif
avd(i) f7 (vee2,vee3,vee4)
vee5 = f8 (ao(i»
vee6 f9 (aod(i»
agf(i) flO (vee5 , vee6 , avd(i»
vee7 fl1 (aod(i»
if (i.ne.12) then
vee8 = f12 (ao(i»
endif
agn(i) = f13 (vee7,vee8)
akf(i) = f14 (akf(i+l),agf(i»
if (i.It.4) then
vee9 = f15 (akf(i»
endif
if (i.It.6) then
vee10 = f16 (akn(i+1),vee9)
vee11 f17 (agf(i»
endif
akn(i) f18 (vee10 , vee11 , agn(i»
enddo
Figure 2: Fortran program of the Newton-Euler equations for the Stanford arm.
37
IF-tests are used to skip the zero operations reflecting the physical properties of the
manipulator. The functions fi 0, i = 1,,,,,18 represent the 18 Newton-Euler equations.
We assume that the torque Ti is calculated together with the force f; or the moment D;.
ao(1) = f1 (ao(O»
aod(l) f3 (aod(0),vec1)
vec2 = f4 (avd(O»
avd(l) = f7 (vec2,vec3,vec4)
vec5 f8 (ao(l»
The loop creates side-effects when the same variables obtain new values in subsequent
iterations. For example, the values of vectors vec2 and vec5 in iteration i+1 must not be
stored before the values of iteration i are consumed by the successor tasks. Redundant
dependencies are avoided by creating new versions for the variables in each iteration of the
loop.
4.3 Scheduling
The scheduling problem is conveniently formalized as follows [4]. Given a taskgraph of the
program, G = {J, <*, e} where
Table 1: A tabular description of a task graph segment representing the precedence relations,
e.g. T5 uses the output of T1.
Find a partition of the tasks J on p processors, P = {A l ,· •• , Ap} such that the maximal
execution time of all processors
is minimized.
It is well known that the scheduling problem of an acyclic taskgraph is NP-complete
[5J. Therefore suboptimal heuristics must be used. The LEM Analyzer uses the following
simple, yet efficient LPTF (Longest Processing Time First) list algorithm [lOJ.
3. Assign the highest level task without unfinished predecessors, to the first free proces-
sor.
The list-algorithm finds a solution within 5% of the minimal scheduling time with a
probability of 95% [IJ. Upper bounds for the execution time exist when the task graph is a
tree [14J, or the tasks are independent [8J.
r
tp $ to + Tma:t - Tma:tlp1 (tree-graph)
tp $ (4/3 - l/3p) to (independent tasks)
In these equations to represents the execution time of the optimal schedule on p processors
and Tma:t is the maximal task length.
39
r-----------,
LM 1 f-- P1 I
I"
I " " I
I I
LM 2 f-- P2 I
I " " " I
· I I
· I I
· · I
Crossbar Switch
I
· · I I
I I
LM p - Pp I
---"------- J
'\
1
L_"
M1 M2 . . . Mm
5 Parallel Execution
5.1 Program-dependent Speedup
The simulated architectures are based on the multiprocessor system for robotic applications,
developed by Wang et 801. [26J. The shared memory architecture has 4 MC68020 processors
and MC6881 floating-point coprocessors, communicating over a single VME bus. They
measured the execution time of the statements in figure 2 for the 6 links. We used the same
execution time, yet averaged over all links. In this way the duration time of a particular
statement is independent of the link number.
40
Link
Task 1 2 3 4 5 6 Eqn. Time (ps)
ao 2 16 34 51 66 81 1 47
vecl 17 52 67 82 2 32
aod 3 18 35 53 68 83 3 59
vec2 4 19 36 54 69 84 4 35
vec3 20 37 85 5 84
vec4 21 38 86 6 34
avd 5 22 39 55 70 87 7 43
vec5 6 23 40 56 71 88 8 85
vec6 7 24 41 57 72 89 9 50
agf 8 25 42 58 73 90 10 77
vec7 9 26 43 59 74 91 11 42
vec8 27 44 60 75 92 12 94
agn 10 28 45 61 76 93 13 44
akf 11 29 46 62 77 94 14 78
vec9 12 30 47 15 43
vecl0 13 31 48 63 78 16 69
vecll 14 32 49 64 79 17 57
akn 15 33 50 65 80 95 18 69
Table 2: Tasks and task numbers generated by the analyzer; associated execution times.
The program for the Stanford manipulator (figure 2), yields 95 tasks. Table 2 represents
the tasks and their duration times.
Task 1 represents a startup and synchronization task between the consecutive updates.
The total execution time on a single processor is 5.542 ms. The task-level and precedence
analysis reveals a critical path of L=0.7168 ms. Consequently, the maximal speedup of the
Newton-Euler equations is Sma., = 7.7316.
Neglecting the overhead, the optimal speedup is obtained with 9 processors and the
Gantt-chart in fig. 4 shows the minimal execution time of 0.7168 ms.
The precedence constraints create a delay at the start of the calculations, which prevent
a maximum speedup with fewer processors.
P2 d3 17 U 8 1 1 1 1 46 1471 48 1 nl
53 68 83
The fraction of local memory accesses and its effect on the speedup are depicted in fig.
5. Apparently memory balancing pays off in single-bus systems, where the communica-
tion bandwidth is relatively low. Actually with more than 4 processors, the bus becomes
saturated and therefore a small increase in local data accesses has a marked effect on the
speedup.
Fig. 6 shows a detailed time chart of a single-bus shared memory multiprocessor with
9 processors. Compared with the conflict-free case (fig. 4), the bus saturation causes the
speedup to drop from 7.7 to 4.5.
The bus contention is reduced using m > 1 memories. E.g., the speedup of a 9 x 9
crossbar system increases to 7.6 and a 10 x 10 system delivers the maximal theoretical
speedup. The speedup values with and without overhead are given in Table 3.
Now it is useful to compare the simulation times with the results measured on the 4
processor MC68020jMC6881 multiprocessor system in [26]. Wang measured the execution
times on one to four processors, both with all variables in the shared memory and with
the local data kept in local memory. Table 4 compares the results with the simulated
execution of the LEM Analyzer schedules. The simulated execution times appear slightly
over-estimated, especially when the local memory optimization is in effect. This can be
explained by the average memory access times. Since the memory access times were not
mentioned in [26], a data transfer was estimated at 6.4 Jl.S. Actually the memory access
times of the multiprocessor in [26] are smaller. Moreover, the local memory is faster, since
the measured execution time on 1 processor is lower with a local than with a global memory.
42
Fraction Speedup
100% 5.0
a o
-'--+---+-+--+--+ b
50% 2.5
o 2 4 6 8 10
Figure 5: Effect of the local memory optimization. a) Fraction of the data which can be
stored locally, b) speedup with only global data, c) speedup after removal of the local data
from the shared memory. The results are for a configuration of 4 processors and 1 memory.
I I I ! I I I I I
.00 .13 .26 .38 .51 .64 .77 .90 1.02 1.15 1.28 ms
Table 3: Speedup neglecting the communication overhead, Sp, and speedup in the presence
of bus conflicts with 1,2 and 10 shared memories.
Table 4: Comparison of the execution times from Wang et a1. [26], and the simulation
times obtained with the LEM Analyzer.
44
Processor utilization
1.00
0.80
a
c
0.60
b
0.40
o 2 4 6 8 10
Table 5: mmin: minimal number of memories and busses to avoid traffic congestion. Idle:
total processor idling time. C(mmin) and C(mmin+1): communication delay for saturation
conditions and for one extra shared memory.
Table 6: Comparison between various approaches to parallelize the inverse dynamics equa-
tions.
6 Conclusion
A uniform methodology to distribute the workload of robotic applications has been pre-
sented. It is applicable to algorithms which can be converted into a direct acyclic task graph.
The LEM Analyzer applies do-loop unrolling, task graph generation, side-effect elimina-
tion and list scheduling. In this way a program is prepared for execution on a p-processor
system with 1 to m memories and a single-bus or a crossbar interconnection network.
The analyzer is extended with a simulator. This provides a sophisticated toolbox to study
the program parallelism, the inter-processor communication and the effective speedup on
systems with up to 50 processors and memories.
A model of the communication overhead provides a formula (eq. 9) to calculate the
number of memories for an adequate communication bandwidth. Furthermore, the memory
allocation scheme balances the variables over the local and shared memories.
Finally, the automatic generated parallel schedules for the Newton-Euler dynamics com-
pare favorably with the manual analyses available in the literature (see Table 6).
46
References
[IJ Adam T.L., Chandy K.M., Dickinson J.R., A comparison of list schedules for parallel
processing systems, Communications of the ACM 17, 12, 685-690, 1974.
[2J Amin-Javaheri M., Orin D.E., A systolic architecture for computation of the manipu-
lator inertia matrix, IEEE International Conference on Robotics and Automation 87,
Vol. 2, pp. 647-653, 1987.
[3J Andersson R.L., Computer Architectures for Robot Control: A Comparison and a New
Processor Delivering 20 Real Mjlops, IEEE International Conference on Robotics and
Automation 89, pp. 1162-1167,1989.
[4J Coffmann Jr., E.G., Denning P.J., Operating Systems Theory" Prentice Hall, 1973.
[7J D'Hollander E.H., Speedup bounds for continuous system simulation on a homogeneous
multiprocessor, Proceedings of the IntI. Conf. on Parallel Processing '81, pp. 318-324,
1981
[8] Graham R.L., Bounds on Certain Multiprocessing Anomalies, SIAM Journal of Applied
Mathematics, Vol. 17, 2, pp. 416-429, 1969.
[9] Harber R.G., Hu X., Li J., Bass S.C., The Application of Bit-Serial CORDIC Com-
putational Units to the Design of Inverse Kinematic Processors, IEEE International
Conference on Robotics and Automation, Vol. 2, pp. 1152-1163, 1988.
[lOJ Hu T.C., Parallel sequencing and assembly line problems, Op. Res., 9, 6, 841-848, 1961.
[l1J Izaguirre A., Paul R.P., Automatic Generation of the Dynamic Equations of the Robot
Manipulators Using a LISP Program, IEEE International Conference on Robotics and
Automation, Vol. 1., pp. 220-226, April 1986.
[12J Kasahara H., Narita S., Parallel Processing of Robot-Arm Control Computation on
a Multimicroprocessor System, IEEE Journal of Robotics and Automation, Vol. 1, 2
(June), pp. 105-113, 1985.
[13J Kasahara H., Narita S., Practical muLtiprocessor scheduling algorithms for efficient
parallel processing, IEEE Trans. on Computers 33, 1023-1029, 1984.
[14] Kaufman M.T., An almost optimal algorithm for the assembly line problem, IEEE
Trans. on Computers-23, 11, 1169-1174, 1974.
47
[15] Lee C.S. George, Chang Po Rong, Efficient Parallel Algorithms for Robot Inverse
Dynamics Computation, IEEE Trans. on Systems, Man and Cybernetics, Vol. 16, 4,
pp. 532-542, 1986.
[16] Lee C.S.G., Chang P.R., A Maximum Pipelined CORDIC Architecture for Inverse
Kinematic Position Computation, IEEE Journal of Robotics and Automation, Vol. 3,
5, pp. 445-458, 1987.
[17] Ling Y.L.C., Sadayappan P., Olson K.W., Orin D.E., A VLSI Robotics Vector Proces-
sor for Real- Time Control, IEEE International Conference on Robotics and Automa-
tion, Vol. 1, pp. 303-308, 1988.
[18] Luh J.Y.S., Lin C.S., Scheduling of Parallel Computation for a Computer-Controlled
Mechanical Manipulator, IEEE Transactions on Systems Man and Cybernetics, Vol.
12, pp. 214-234, 1982.
[19] Luh J.Y.S., Walker M.W., Paul R.P.C., On-line Computational Scheme for Mechanical
Manipulators, Trans. of ASME J. of Dynam. Syst. Meas. and Control, Vol. 102,6, pp.
69-76, 1980.
[20] Luh J.Y.S., Walker M.W., Paul R.P.C., Resolved-acceleration control of Mechanical
Manipulators, IEEE Transactions on Automatic Control, Vol. 25, 3, pp. 468-474, 1980.
[21] Narasimhan S., Siegel D.M., Hollerbach J.M., Condor: A Revised Architecture for
Controlling the Utah-MIT Hand, IEEE International Conference on Robotics and Au-
tomation, Vol. 2, pp. 1116-1119, March, 1987.
[22] Nigam R., Lee C.S.G., A Multiprocessor-Based Controller for the Control of Mechanical
Manipulators, IEEE Journal of Robotics and Automation, Vol. 1, 4, pp. 173-181, 1985.
[23] Vukobratovic M., Kircanski N., Li S.G., An Approach to Parallel Processing of Dy-
namic Robot Models, The IntI. Journal of Robotics Research, pp. 64-71, 1988.
[24] Vukobratovic M., Kircanski N., Computer-assisted generation of robot dynamic models
in analytical form, Acta Appl. Math., Vol. 3, pp. 49-70, 1985.
[25] Wander J.P., Tesar D., Pipelined Computation of Manipulator Modeling Matrices,
IEEE Journal of Robotics and Automation, Vol. 3, 6 (December), pp. 556-566, 1987.
[26] Wang W-S., Chen K-K., Lai Y-S., Liu C-H., Implementation of II Multiprocessor Sys-
tem for Real- Time Inverse Dynamics Computation, IEEE International Conference on
Robotics and Automation, pp. 1174-1179,1989.
CHAPTER 3
A. Di Stefano, O. Mirabella
Informatics and Telecommunications Institute
Engineering Faculty - Catania University
V.le A. Doria, 6 - 95125 CATANIA, ITALY
x(n)
-'--'-r---/ Z - 1 Z -1
z-· ·····8
-
j o Del1lY
EB Add
[> ~1ultiDly
range of applications.
Finally, with reference to certain problems typical of
robotics (concerning the cinematics and dynamics of the
movement of a robot arm and image processing), they examine
the various approaches and implementation problems. In this
section they also discuss the main parts of certain assembler
routines for the solution of specific numerical calculation
problems.
2. A Survey of the Main Characteristics of DSPs
2.1. Arithmetic
~ ! Y DATA BUS
L MULTIPLIER
(16x16)
I--
X DATA
P REGISTER
BUS
(32)
1
SHIFT ( - 2 , 0 , +2)
1 L
"- MUX
I
/
QfSHIFT(q
1
Ao ACCUMULATOR
(36)
Al ACCUMULATOR
(36)
I
L
SHIFT I SAT.
1
Figure 2. Simplified architecture of the arithmetic
module in the DSP16.
Another possible solution to the problem of overflow
consists of using saturation arithmetic, by means of which,
in the occurrence of overflow, the maximum ALU value
(positive or negative) that can be represented is loaded into
the accumulator. This course of action (which is possible,
for example, in the TMS32010 where it is activated by the
54
CLOCK 24
DATA
14
1 data
14
-.
MEMORV
16K x 16
PROGRAM ~ 1-
MEMORV address
ADSP
24
16K x 24 2100
data 1""'- 14
add~ 1/0
DEVICE
24
2.3.1. TMS32010
TABLE 1
DATA BUS
Arithmetical Elements
The basic arithmetical elements contained in the chip are
the ALU, the accumulator, the multiplier and the shift
registers. After being removed from the RAM, data are sent to
the ALU by a shift register which can shift a word from 0 to
15 bits to the left, according to the value specified in the
instruction.
In the ALU the data can be stored, added to or subtracted
from the accumulator. As the accumulator is of 32 bits, the
data is stored in two locationss in the 16-bit data memory.
The multiplier block is composed of three units: the 16-
bit register T to memorize the multiplicand, the 32-bit
register P to memorize the result of the product and a
multiplication matrix for the fixed-point 16x16 product.
Data and Program Memory
The data memory is present in the chip and is made up of
144 16-bit words. It is subdivided into page zero, from place
o to 127, and page one from 128 to 144. Addressing can be
direct, immediate or indirect. In the latter case, the 8
least significant bits of the auxiliary registers are used,
which are able to address all 144 locations in the on-chip
59
I/O Functions
The TMS32010 can interface up to 8 external peripherals
which can be used as both input and output. The peripherals
are selected by decoding the first three pins (AO-A2) of the
address bus. The two instructions which allow data to be
transferred between the processor and a peripheral are IN and
OUT.
2.3.2. TMS32025
TABLE 2
MAIN FEATURES OF TMS32025
iiROGR~J-
COUNT.
control C
I!>TAlUS I
stgnols 0
N IPROGR.
memory T ROM ISTACK I
R
I
select 0
clock L.
PROGRAM I BUS
stgnols
I
. DATA BUS l
l
I-J. ~
TR( 16)
I ARP(3) MULTIPLIER
ARO ... AR7
-'lARB( 3) I I SHIFTER 1
PR(16)
externol
dot%ddr. T ! ~ 1 SHIFTER 1
bus
I-
ARAU
J~ !
~
-r
\. MUX /
I
T~ ALU (32) 'i
RAM
(B2)
I
1
l RAM
(B1)
RAM
(BO)
1 ACCH( 16) ACCL( 16)1
SHIFTER I
~ 1
/ MUX \.
I
T
DATA BUS
Arithmetical Elements
The CALU contains a 16-bit scaling shifter, a 16x16
parallel multiplier, a 32-bit ALU, a 32-bit accumulator and
some scalers which are available at the outputs of both the
accumulator and the multiplier.
ALU input data are provided by the accumulator and the
multiplier or the scaling shifter which can shift the data 0
to 16 bits to the left. There are several additional shifters
in the CALU which align the products in fractional
arithmetic, avoid overflow in multiplications with multiple
accumulations and normalize floating-point numbers contained
in the accumulator.
TMS32025 also has 8 auxiliary registers (ARO-AR7), which
can be used for indirect RAM addressing or for temporary
memorization. These registers can be manipulated by the ARAU,
which can serve as an additional Arithmetic Unit as the file
of the auxiliary registers can communicate directly with the
RAM. The ARAU has a 16-bit arithmetic with no sign, while the
CAIU has a 32 bits two's complement arithmetic.
61
Zi-l
65
(2' )
LRLK 2,>200 *
LAC *+,0,1 *
SACL W * Load W with parameter "e".
LARK 1,4 * Initialize Loop counter.
LT X
LOOP LARP 2
MPY W
PAC
ADD *+,15,1 * Add to accumulator the current
* register shifted 15, increment
* current register and load ARP
* with 1.
SACH W,l * the obtained result is converted
* into Q15 format.
BANZ LOOP
R~ = atan2[(-(na·at)sinR¢+(oa·nt)COSR¢),
(-(na'ot)sinR¢+(oa'ot)cOsR¢)]
DATA INPUT
- INITIALIZATION -
!
r---+< k = 1.2•...... N
I
n
1 Alele= 4000 .. 21 1
DIVF
I
-+(J = K+ I. K+2 • .... 2N>
rl
1 1 SUM
J.
END
1 1
1-bit shift to the left has to be made and the upper part
taken. This is performed by combining instructions SPM and
SPH.
RB LARP 2 **
ADRK 2 If the result is zero, then
LARP 3 * increment Auxiliary Register AR2
BANZ LOOP * to process next element without
RET * calling "SUM".
3.2. FFT
A typical DSP application concerns the Fourier Transform
which plays a key role in image preprocessing of robot vision
apparatus or for the spectral analysis in measurement and
control apparatus.
The spectral analysis of digital signals is performed in
the frequency domain. The Fourier transform converts
information from the time domain into the frequency domain.
When digital signals are in use, data need to be computed by
the Discrete Fourier Transform (DTF), given by:
N-1 nk
X(k) = E x(n) W k = O,l, ... ,N-1
n=O N
-j2rr/N
where W = e is known as the fase [19 ]
N
k k+(N!2)
Simmetry Property: W -W
N N
72
k k+N
- Periodicity Property: W W
N N
An N-point OTF can be evaluated through this algorithm as
a collection of 2-point OTFs or butterflies. If the X(K) is
an N-point OFT, the radix-2 OIT FFT al~orithm sequences
through a total of M stages, where N = 2, with N/2
butterflies per stage, giving a total of (N/2)log2
butterflies to be computed. The general radix-2 butterfly in
the m-th stage of an N-point OIT FFT is shown in Fig. 10.
Pm Pm + 1
Qm W<X:==Qm+l
Figure 10. Radix-2 butterfly.
k
P m+l Pm + W Qm (3)
N
k
Qm+l Pm - W Qm (4 )
N
Pm PR + j PI (5 )
Qm QR + j QI (6)
k -j(2rr/N)k
W e cos (x) - j sin(x) (7)
N
where x = (2rr/N)k;
by substituting the values from (5), (6) and (7), the equation:
where:
A QR cos(x) + QI sin(x)
KF=(NPS/2)-l
DF=NPS/2 J=l
PR=XR(I)/2 PI=XI(I)/2
QR=XR(L)/2 QI=XI(L)/2
BUTTERFLY ROUTINE
XR(I)=PR' XI(I)=pr
XR(L)=QR' XI(L)=QI'
I,;~~)
~'- ..
YES
! CI=CI+11+!.----.-<: CI=CF
YES
YES
LT XL
MPY COS
PAC
LT YL
MPY SIN
APAC
SACH XT,1 * XT XL*COS+YL*SIN
LT YL
MPY COS
PAC
LT XL
MPY SIN
SPAC
SACH YT,1 * YT YL*COS-XL*SIN
LAC XI
ADD XT
SACL XI * XI XI+XT
SUB XT,1
SACL XL * XL XI-XT
LAC YI
ADD YT
SACL YI * YI YI+YT
SUB YT,1
SACL YL * YL YI-YT
Bironori Kasahara
Department of Electrical Engineering, Waseda University
3-4-1 Ohkubo Shinjuku-ku, Tokyo, 169, Japan
ABSTRACT
This chapter describes parallel processing of robot-arm control
computation and simulation. The parallel processing of robot control
computation has attracted much attention to develop a cost-effective,
compact, and advanced robot controller which allows a robot system to
perform very complicated operations quickly and accurately even in
hazardous environments, such as space and ocean floor. Also, parallel
processing of robot motion simulation is important to efficiently
develop the advanced robot hardwares and the controllers. This chapter
introduces several parallel processing schemes on multiprocessor systems
for the robot-arm control computation and the robot-arm simulation.
More concretely, first of all, parallel processing schemes for the
Newton-Euler equations for dynamic control are introduced. Secondly, how
to implement the schemes on an actual multiprocessor system is
discussed. Thirdly, parallel processing schemes for Walker & Orin's
algorithm for dynamics .simulation and an implementation of the schemes
on a multiprocessor system are described. Finally, future directions of
the parallel processing of the robot control and simulation are briefly
discussed.
1. INTRODUCTION
I
, A;-I(A?_,w;_,), if link i is translational,
if link i is rotational.
if link i is translational,
I
+ (A ?pi +A?s;l x (A?F;) + A?N;
• The subscript i stands for the ith link of the manipulator. The equations
above the dashed line are calculated repeatedly for i = 1 to n (the number of
links) and those below the line for i = n to 1 in the reverse direction. A;+ I and
Ji are 3 x 3 matrices; 41, qi' mi, bi, and 1', are scalars. The remaining variables
are all 3 x 1 vectors.
2
[ 4
'-
5 6
"ll
Ajw; - A~v. - A~ta AO,
I I
- I I
-
-
~~~~·11
1 126 adds - 90 adds 54 7 8
54 adds
54 mutt. - 162
mull. ~Ir 108 mutt. 72
A<?w.
I I
r--
l[ A?n.
I I
t---
1
I
'-
- AjN;
103 adds
- 144 mult.
Mechanical manipulator
n based on the pipeline concept and force or torque for each joint is
obtained every unit time in a steady state. This scheme is effective if
a robot-arm has a lot of joints, or degrees of freedom (O.O.F.). It is
not, however, efficient for present robot-arms having only five or six
joints, since the initial pipe delay makes processing efficiency low.
In order to solve this problem, more flexible parallel processing
schemes are required.
2) Task scheduling
In order to process the set of tasks on a multiprocessor system
efficiently, an assignment of the tasks onto the parallel processors and
an execution order of the tasks assigned to the same processor must be
determined optimally. The problem which determines the optimal task
assignment and the optimal execution order can be treated as the
traditional multiprocessor scheduling problem of which the objective
function is the minimization of the parallel processing time, or the
schedule length (Coffmann, 1976; Kasahara & Narita, 1984a, 1985a). The
scheduling problem, however, has been known as one of the most
intractable optimization problems, for which no practical optimization
algorithms had been developed for nearly 20 years. More precisely
speaking, the problem belongs to the class of "strong" NP-hard problems
(Garey & Johnson, 1979).
In order to decrease the difficulty of the scheduling problem in hand,
Luh and Lin fixed the number of processors at six, which is equal to the
number of robot joints, and assigned tasks related to each joint onto a
processor. After this simplification, they tried to optimize only the
execution order of the tasks assigned to each processor by taking into
consideration the precedence constraints among tasks assigned to other
processors. Finally, they obtained a schedule which reduces the
processing time for the eighty-eight tasks from 24.8 [ms) for a single
processor to 9.67[ms) for six processors as shown in Table 1.
On the other hand, Kasahara and Narita successfully solved the original
intractable multiprocessor scheduling problem by developing two
practical algorithms named CP/MISF (Critical Path / Most Immediate
Successors First) and DF/IHS (Depth First / Implicit Heuristic Search)
86
C 0
1 24.80 24.83
2 12.42
3 8.43
4 6.59
5 5.86
6 9.67 5.73
7 5.69
53 55 62
61 37 65 32 I
66
! !
tasks are treated or when a multiprocessor system with low data transfer
capability is used. To this end, scheduling algorithms considering data
transfer have been actively researched (Kasahara & Narita, 1984b;
Kasahara et.a!., 1990) though development of practical optimization
algorithms is very intractable. Recently, a heuristic algorithm named
CP/OT/MISF, which is an extended version of CP/MISF to handle data
transfer, was developed. The effectiveness of the CP/OT/MISF algorithm
has already been confirmed on a multiprocessor system (Kasahara et.al.,
1990).
GLOBAL
III
E
Q)
20
E
~
OJ
c
'iii
en
Q)
u
...
0
a.
.J.
~ 10
iii
...
III 6.7
n. Ie( 6,S
3
2 4 5 6 7
Number of Processors
Fig. 7. Parallel processing time of robot dynamic control computation on
an actual multiprocessor system.
92
do 1=1 lo n,
Al",= {AI·tA!.,W,.,+ .. oi,) (lInk I : ROlallonall(l)
A:-tA:.,w,.,) <link I : Tr:wlallonal)(2)
MII=mll (13)
A:'IDII=A:.dA!'n+A!p,,) (14)
,-I F ,= {&IXM,A'-,O'
(Ill (IS)
A'
(00 M,)I ml2O)
A''-I N,_- {IAI.'E,AI")" (Il) em
0 m(22)
performance.
1) Task Generation
The simulation program, or equations to be calculated for the
simulation, are automatically derived from Walker and Orin's algorithm
by the special purpose compiler when the robot configuration, e.g. the
degrees of freedom, the type of joints, the length of links etc., is
given. The first step in parallel processing is to decompose these
equations into tasks with suitable sizes. The suitable task grain
should be determined taking into account the various factors mentioned
in the previous section. The equation level task grain is again chosen
taking into consideration the capabilities of the multiprocessor system
shown in Fig. 6.
In generation of tasks by the compiler, the following optimization are
made:
a) In order to extract parallelism to the full extent, an array
expansion technique, which is a variation of scalar expansion
technique (Padua & Wolfe, 1986), has been used. It transforms a
program part to be executed serially by output dependencies (Padua,
Kuck & Lawrie, 1980), into a parallelizable program by substituting
a vector variable by a two-dimensional array variable.
b) The equations, which can be computed at compile-time, are computed by
the compiler to minimize the computation to be executed at rue-time.
c) The Gauss-Jordan method with pivot selection has been used to solve
the linear equation. The dividing operations by the pivots and the
up-date operations for each row have been treated as a task to
generate large-size tasks.
d) For numerical integration, Euler, Trapezoidal, and 3-rd and 4-th
Adams-Bas.hforth methods are provided. A user can choose a desirable
integration method. The integration calculation for each variable is
treated as a task.
There exist data dependencies, or precedence constraints, among the
generated tasks for the simulation, as well as for the control. Fig.
10 represents the task graph for the Stanford manipulator. It involves
197 nodes.
95
0,
0,
0,
2) Scheduling
The generated tasks are scheduled onto processors by using DF/IHS and
CP/MISF. As mentioned before, CP/MISF is more suitable than DF/IHS for
the parallelizing compiler for the simulation because we would like to
have a solution quickly on a microcomputer.
CP/MISF algorithm is presented briefly below.
Step1: Determine the "level" for each task. The level Ii of task Ti is
defined as the longest path from the exit node to node Ni
corresponding to T i •
Step2: Construct the priority list in the descending order of Ii and the
number of immediately succeeding tasks.
Step3: Execute list scheduling (Coffmann, 1976), namely data driven type
scheduling, on the basis of the priority list.
The worst-case performance of CP/MISF, i.e., the error of the worst-case
solution t obtained by CP/MISF from the true optimal solution t opt is
given by t«2-1/m)t opt . CP/MISF gives us a good schedule for the robot
simulation in a few second on a 16 bit personal computer.
3) Code Generation
The compiler on the HC in Fig. 6 generates the machine codes to be
executed on each PE based on a scheduled result. The code generation
process for the simulation is almost the same as for the control. Here,
a code optimization technique to reduce synchronization overhead is
introduced which was not detailed in Section 2.
For example, let tasks A, Band C be allocated to processor 1 and tasks
D and E to processors 2 and 3 respectively as shown in Fig .11. Then,
task B does not need to check the version number set by task A. This
stems from the fact that both tasks are allocated to the same
processor. Also, task C and E have no need to check the version number
set by task D since the termination of task D has been confirmed by task
B. The elimination of redundant synchronization codes reduces
synchronization overhead significantly.
Pi P2 P3
~ Precedence
relations
FS Flag set
Fe Flag check
o Unnecessary
100
O~--~--~--~---J----~--~-
I 2 J 4 5 6 7
Number of processors
Fig. 12 Pa·rallel processing time of robot dynamics simulation on an actual
multiprocessor system.
98
This chapter has described several parallel processing schemes for the
robot dynamic control computation and the robot dynamics simulation.
Especially, the software oriented parallel processing schemes using the
static multiprocessor scheduling algorithms are theoretically and
practically efficient and can be easily implemented on a simple
inexpensive multimicroprocessor system.
As prospects for future, it is expected that a multimicroprocessor robot
controller will be more important to realize a compact powerful
controller to control an advanced autonomous robot system having various
sensors including a vision sensor and an auditory sensor and
intellectual functions using neural networks. Several research efforts
have been performed in this direction. For example, the HERMIES project
developing such a controller by using a hypercube multiprocessor on the
market (NCUBE) with sixty-four processors (Bahren, 1987). Also, the
OSCAR project developing an advanced shared memory multiprocessor
system composed of sixteen 5-MFLOPS RISC processors and software
oriented parallel processing schemes for the robot control and
simulation, neural network simulation, logical programs and numerical
programs (Kasahara et.al., 1990).
Finally, researches on parallel algorithms for the robot control and
simulation also seem to be getting more important (Fijany and Bejczy,
1989a,b) together with advance of multiprocessor systems and
parallelization techniques of the sequential control and simulation
algorithms mentioned in this chapter.
REFERENCES
MICROPROCESSOR-BASED CONTROLLERS
FOR ROBOTIC MANIPULATORS
1. I NTRODUCT I ON
Linear PID schemes were the first choice for the manipulator
control problem. In fact, the vast experience accumulated in
the process industries with PID controllers naturally led to
this option. In this scheme each joint controller is indepen-
dent of each other and its tuning is done by model free
heuristic procedures. Coupling between joints is regarded by
the controller as disturbances. Consequently, the higher the
robot speed/acceleration the higher the coupling effects and
the worst the controller performances. Yet, besides its
fundamental limitations, this controller exhibits two charac-
teristics - simplicity and decentralized architecture - that
105
!--.
Prog.Lang TC V2.0 JlC V4.0 TC V2.0 JlC V4.0 TC V2.0 JlC V4.0
w
-I:.
1 IBM PS/2-8530-021
8086, 8 MHz, IIC
2 IBM PS/2-8560-071
10· 80286, 10 MHz, IIC
3 IBM PS/2-8570-A21
80386, 25 MHz, IIC
4 IBM PS/2-8560-071
11 80286/80287,
i /il"'.':I.' Ililll' '1'111
IW~I'
:,11,::"; illi,lIll '1.'1
",I
l''.,,1 10 MHz. TC
10 3 i'
I
',',I!: ~'I " III,!.!,:II ,. :II'I!i'" 5 IBM PS/2-8530-021
illll:d,I"',lllii 8086/8087. 8 MHz. TC
ill'ii' Ii"III"f!!i "it"I'l,il 'IH. " ,!ill';I'1111,' Il jl~. ii I:.
6 VAX 11-750
i,l! illl'l il I! 7 IIVAX-II Q3
, '"11111'
I'll: ;::1; iq\W~!
l.I.I I;.'1 "I,.11'11'1':1: ; :.' i" 8 HP 9000-330.
Computing .i,lh;' I'!I/II::: i' /1;' II:!' ',11 ,iiilip ,I'
,"I: 68020/68881. 16.7 MHz
Frequency 10' "1111111/. tll l'i."I···· ~1 1: 1" '11,1.""/1 1,,, ..
I, I"! III II' ~."II"I:
'I1li'Iiii !ii!) ,'I! 9 SUN 3-60, 68020/68881
(Hz) 20 MHz, GNU V1,25
I'
It!!:1 !i,1 11:"I'1'
i~'I' IIi:1i ~i'1111l' 'I ;lli'l :11:'
"~iill ,1,
i'. ."I "!I I I
'I' 10 IBM PS/2-8570-A21
1111/111 11111.111 !!llii.'.?I' ,I i i 'il!iil!1 :11111 80386/80387 25 MHz TC
1'1,1 1'1' ':'I'd I'l ' ",' .
, I,'111'I,,;li r:I"'
Hiii:,il "!!'
I'll"",!!I 11I11
\ ': "11"'1'1'
I'll! I lit
11 Apollo DN3500
... "11111, ...... .1:::... 111/:.11" .... ,1,1/1" .... ',111'1'1 .....1"111'
68030/68882, 25 MHz
10 I: ,I,! lillll":
j.j h" ~ II
'i'::;!
i'lllI':!!j ) 11 .I,IUt ,III'Ii ""I I! 12 VAXSTATION
il/illi: 111111" '1'llli'I'
i,'"I '~ "'I"
iilill :I! 13 T800-20. Occam 2
i!lil: 'ill': i:ill:': ;1'/;: [II'I!,I )':II!! illllli!1 (8 bytes)
l 1:.,.': 111:1
i,l'I' hi'!
;' :,,1';:"1
!I'.. ,III':"'11'"
I'j f,j
il l 'l i,l ill!I'
"'I .I!W:
'I' hI:i!,!!I!III!II' 14 T800-20. Occam 2
1. 'I ~1 ,J.!i .', ~:fn ! 11:1, ti"
1.' i Ir'·~ ill'itJ; .I,!
111 '/111' (4 bytes)
JIi Iii I '1,,1111 1,+,1;1111.; 'III/i':, i,Ililii!+IIIIi,J!:lllIIllil.;
;;;!~ IE:; )' :1': C '1;' '1 :~l "i .I!. ':, I;:i "1:' :;
15 SUN 4-110, Sys4 SPARC
1 :::~i ,'il·· ;i!;, 14.3 MHz
16 DECSTATION 3100. MIPS
16.67 MHz
Microsystems
Fig. 1. Comparison chart of the computing frequencies for PUMA 560 dynamic equations
(5 sines, 6 cosines, 89 sums, 151 multiplications) using the microsystems
considered in Tables 1 to 5.
For the systems tested with two alternative compilers, it is depicted only
the result of the fastest code.
Floating point operations are evaluated using the standard precision of 8
bytes, except for microsystem 14 which uses 4 byte precision operations.
117
10'
Legend
1 0 2 tUmllilill'l'ii""" "'II~IIII!!IH'i:I!'" .," 'liHllii:iIltl' . "ilI!il~II:!JII IliilllllUII:II' ,.," ""111111111 ,', .. ~ T414-20. 8 bytes
lEi:11 T414-20. 4 bytes
Computing
Time 1111~~llrllr"" i'rlllll'!IIII::1 II 1:'1 T800-20. 8 bytes
(Jjsec) I :1' 1 1 ,:11,:(
II,iil :: 11il:T11 illllllill:I'
Illl: :i:li ~t" l Ilil~Il~,l rl~'i, :'lr: ~I ~11~llilllrl lr" 1 I I ~Illlll
ill,lllltriTi 1I1I1 1~':!":IIIII:I[;:!
u: T800-20. 4 bytes
,1"iIIUIUUI:I:I:III:,::::::I::,i""IIDIIIIIW:I:I:iU:,:::"II::.:I"",1111111101:1'1'1:11:::\11 :,I",,·'III!III!!I:I'I:II:'::'::I1:::.I.. ·IIIIIIIIII:I'I:I:III:":'::I1:'::1,,,,1111111111'1:1'1:11:.,::::1,,,..,
10
1
SIN COS ASIN ACOS ATAN SQRT
Fig. 2. Comparison chart of the computing time for several floating point operations
in transputers T414-20 and T800-20 using 8 bytes and 4 bytes precision
(source code programmed in Occam 2).
119
Compilers.
~-!-2-,-~-,_Dedicated The implementation of a control
algorithm implicitly assumes the representation of process
variables by means of real numbers. To these real numbers
corresponds a computer internal representation by means of
floating point structures. This representation, requiring
several bytes, is in sharp contrast with the 8 to 16 bit
accuracy of standard A/D and D/A converters.
The present authors have developed a method for implemen-
ting real-time control algorithms [131-132] that eliminate
this discrepancy, by optimizing the chain
by Tables 1 to 5.
This method is still in a research stage; however, it has
already suggested interesting extensions to RISC computatio-
nal structures and parallel architectures. In the first case
the extension is motivated by the fact that processing by
means of BDD's only requires microprocessors with a reduced
number of instructions; in the second case the advantage
stems from the simplicity of task allocation to parallel
processors.
4. CONCLUSIONS
5. ACKNOWLEDGEMENTS
6. REFERENCES
Report RI/55/87.
(5] Chung, W.-K. and Cho, H.S. (1988) 'On the Dynamic
Characteristics of a Balanced PUMA-760 Robot', IEEE
Trans. Indust. Electron., IE-35, 222-230.
[6] Asada, H. and Youcef-Toumi, K. (1984) 'Analysis and
Design of a Direct-Drive Arm with a Five-Bar-Link
Parallel Drive Mechanism', J. Dynamic Syst. Measurement,
Contr., Trans. ASME, 106, 225-230.
[7) Kazerooni, H. (1989) 'Statically Balanced Direct Drive
Manipulator', Robotica, 7, 143-149.
[8] Asada, H., Kanade, T. and Takeyama, I. (1983) 'Control
of a Direct-Drive Arm', J. Dynamic Syst. Measurement,
Contr., Trans. ASME, 105, 136-142.
(9] Ostman, I., Allared, C.-A. and Holmqvist, U. (1985)
'Pendulum Robot: Six Degrees of Freedom Without Any
Backlash for Fast and Precise Assembly', Asea Journal,
58, 12-17.
(10] Dwolatzky, B. and Thornton, S.G. (1988) 'The GEC
Tetrabot - a Serial-Parallel Topology Robot: Control
Design Aspects', in Proc. lEE Control 88, Oxford, UK.
[11) Yang, D.C.H. and Tzeng, S.W. (1986) 'Simplification and
Linearization of Manipulator Dynamics by the Design of
Inertia Distribution', The Int. J. Robotics Research,
5, 120-128.
(12] Youcef-Toumi, K. and Asada, H. (1987) 'The Design of
Open-Loop Manipulator Arms With Decoupled and
Configuration-Invariant Inertia Tensors', J. Dynamic
Syst. Measurement, Contr., Trans. ASME, 109, 268-275.
(13] Tsai, Y.C. and Soni, A.H. (1981) 'Accessible Regions and
Synthesis of Robot Arms', J. Mechanical Design, Trans.
ASME, 103, 803-811.
[14] Asada, H. (1983) 'A Geometrical Representation of
Manipulator Dynamics and Its Application to Arm Design',
J. Dynamic Syst. Measurement, Contr., Trans. ASME, 105,
131-142.
(15] Yoshikawa, T. (1985) 'Manipulability of Robotic
Mechanisms', The Int. J. Robotics Research, 4, 3-9.
[16] Yoshikawa, T. (1986) 'Analysis and Design of Articulated
Robot Arms from the Viewpoint of Dynamic Manipulability',
Robotics Research: The Third International Symposium,
MIT Press.
(17] Galhano, A.M.F., Machado, J, .A.T. and Carvalho, J.L.M.
de (1990) 'On the Analysis and Design of Robot
Manipulators: A Statistical Approach', in Proc. 11th
IFAC World Congress, Tallinn, USSR.
[18] Futami, S., Kyura, N. and Hara, S. (1983) 'Vibration
Absorption Control of Industrial Robots by Acceleration
Feedback', IEEE Trans. Indust. Electron .• IE-30,
299-305.
(19] Luo. G.-L. and Saridis, G.N. (1984) 'Robust Compensation
for a Robotic Manipulator', IEEE Trans. Automat. Contr.,
AC-29, 564-567.
122
(20] Luo, G.L. and Saridis, G.N. (1985) 'L-Q Design of PID
Controllers for Robot Arms', IEEE J. Robotics and
Automation, RA-l, 152-159.
(21] Studenny, J. and Belanger, P.R. (1986) 'Robot
Manipulator Control by Acceleration Feedback: Stability,
Design and Performance Issues', in Proc. 25th IEEE Conf.
on Decision and Control, Athens, Greece.
[22] Van Brussel, H. Van and Vastmans, L. (1984) 'A
Compensation Method for Controlling Time-Varying Robot
Configurations', in Proc. 14th ISIR, Gothenburg, Sweden.
(23] Luh, J.Y.S., Fisher, W.D. and Paul, R.P.C. (1983)
'Joint Torque Control by a Direct Feedback for
Industrial Robots', IEEE Trans. Automatic Control,
AC-28, 153-161.
[24] O'Shea, J. and Turgeon, A.B. (1986) 'Benefits of
Positive Current Feedback Inner Loop for Robot Servos',
in Proc. IFAC Theory of Robots, Vienna, Austria.
[25] Seraji, H., Jamshidi, M., Kim, Y.T. and Shahinpoor, M.
(1986) 'Linear Multivariable Control of Two-Link
Robots', J. Robotic Systems, 3, 349-365.
(26] Stone, H.W. and Neuman, C.P. (1984) 'Dynamic Modeling of
a Three Degree-of-Freedom Robotic Manipulator', IEEE
Trans. Syst., Man, Cybern., SMC-14, 643-654.
[27] Good, M.C., Sweet, L.M. and Strobel, K.L. (1985)
'Dynamic Models for Control System Design of Integrated
Robot and Drive Systems', J. Dynamic Syst. Measurement,
Contr., Trans. ASME, 107, 53-59.
[28] Golla, D.F., Garg, S.C. and Hughes, P.C. (1981) 'Linear
State-Feedback Control of Manipulators', Mechanism and
Machine Theory, 16, 93-103.
(29] Ohishi, K., Ogino, Y. and Hotta, M. (1988)
'Decentralized Manipulator Joint Control Based on Model
Following Acceleration Control System', in Proc. 1988
IEEE Int. Workshop on Intelligent Robots and Systems,
Tokyo, Japan.
(30] Hsia, T.C.S. (1989) 'A New Technique for Robust Control
of Servo Systems', IEEE Trans. Indust. Electron., IE-36,
1-7.
(31] Chen, Y. (1989) 'Replacing a PID Controller by a Lag-
Lead Compensator for a Robot - A Frequency Response
Approach', IEEE Trans. Robotics and Automation, 5,
174-182.
(32] Bejczy, A.K. (1974) 'Robot Arm Dynamics and Control',
Jet Propulsion Lab. Tech. Memo 33-669.
(33] Freund, E. (1982) 'Fast Nonlinear Control with Arbitrary
Pole-Placement for Industrial Robots and Manipulators',
The Int. J. Robotics Research, 1, 65-78.
[34] Katie, D. and Vukobratovic, M. (1986) 'The Influence of
Actuator Model Complexity on Control Synthesis for High
Performance Robot Trajectory Tracking', in Proc. IFAC
Theory of Robots, Vienna, Austria.
[35] Vukobratovic, M. and Kircanski, N. (1986) 'Numerical
123
468-474.
(51] Khosla, P.K., (1987) 'Effect of Control Sampling Rates
on Model-Based Manipulator Control Schemes', JPL
Workshop on Space Telerobotics, Pasadena, CA.
[52] Hollerbach, J.M. (1980) 'A Recursive Lagrangian
Formulation of Manipulator Dynamics and a Comparative
Study of Dynamics Formulation Complexity', IEEE Trans.
Syst., Man, Cybern., SMC-I0, 730-736.
[53] Luh, J.Y.S., Walker, M.W. and Paul, R.P.C. (1980) 'On-
Line Computational Scheme for Mechanical Manipulators',
J. Dynamic Syst. Measurement, Contr., Trans. ASME, 102,
69-76.
(54] Horak, D.T. (1984) 'A Simplified Modeling and
Computational Scheme for Manipulator Dynamics', J.
Dynamic Syst. Measurement, Contr., Trans. ASME, 106,
350-353.
(55] Leu, M.C. and Hemati, N. (1986) 'Automated Symbolic
Derivation of Dynamic Equations of Motion for Robotic
Manipulators', J. Dynamic Syst. Measurement, Contr.,
Trans. ASME, 108, 172-179.
(56] Koplik, J. and Leu, M.C. (1986) 'Computer Generation of
Robot Dynamics Equations and the Related Issues', J.
Robotic Systems, 3, 301-319.
[57] Cheng, P.-Y., Weng, C.-I. and Chen, C.-K. (1988)
'Symbolic Derivation of Dynamic Equations of Motion for
Robot Manipulators Using Piogram Symbolic Method', IEEE
J. Robotics and Automation, 4, 599-609.
[58] Neuman, C.P. and Murray, J.J. (1987) 'Customized
Computational Robot Dynamics', J. Robotic Systems, 4,
503-526.
[59] Neuman, C.P. and Murray, J.J. (1987) 'Symbolically
Efficient Formulations for Computational Robot
Dynamics', J. Robotic Systems, 4, 743-769.
[60] Kircanski, M., Vukobratovic, M., Kircanski, N. and
Timcenko, T. (1988) 'A New Program Package for the
Generation of Efficient Manipulator Kinematic and
Dynamic Equations in Symbolic Form', Robotica, 6,
311-318.
[61] Luh, J.Y.S. and Lin, C.S. (1982) 'Scheduling of Parallel
Computation for a Computer-Controlled Mechanical
Manipulator', IEEE Trans. Syst., Man, Cybern.,
SMC-12, 214-234.
(62] Kasahara, H. and Narita, S. (1985) 'Parallel Processing
of Robot-Arm Control Computation on a
Multimicroprocessor System', IEEE J. Robotics and
Automation, RA-l,104-113.
(63] Nigam, R. and Lee, C.S.G. (1985) 'A Multiprocessor-Based
Controller for the Control of Mechanical Manipulators',
IEEE J. Robotics and Automation, RA-1, 173-182.
[64] Binder, E.E. and Herzog, J.H. (1986) 'Distributed
Computer Architecture and Fast Parallel Algorithms in
Real-Time Robot Control', IEEE Trans. Syst., Man,
125
JOHN BILLINGSLEY,
Professor of Robotics,
Portsmouth Polytechnic,
Portsmouth P013DJ, UK
1. Introduction
An industrial robot is usually purchased complete with mechanical structure, drive electronics,
controlling computer and embedded programming language. The robot is a single unit, to be
used or abandoned as a whole, even though it contains a mix of technologies including that
volatile and obsolescent commodity, software. Purchasers are likely to find manufacturers
unwilling to upgrade an older model to take advantage of a software improvement, recommend-
ing replacement of the whole system instead.
The users of computer systems are becoming increasingly discerning when upgrading their
equipment. They see that the speed advantage of a new processor or operating system can be
offset by any loss of compatibility with existing software packages or high-cost peripherals.
Accordingly they seek to upgrade in a progressive way, transferring the assets of the old system
to the new and insisting on compatibility.
Components of, say, a desk-top publishing system are "unbundled". The software package
can be installed on any computer within a given range, and drivers are available within the
package to exploit any useful printer, laser or dot-matrix, which the user may wish to employ.
Computer, software or printer can be replaced or upgraded without trashing the other two
components of the system.
It is suggested that an unbundled approach would be attractive to the industrial robot market,
the software and supervisory systems being offered on a main-stream desktop computer. With
the low-cost norm being a multi-megabyte memory plus fast hard disk, this will outperform many
times over the LSI-II minicomputers and other computer systems customarily found embedded
in commercial robots. This computer would be interfaced with drive systems to control the axes,
which in turn must have sufficient "intelligence" to require relatively infrequent updating with
a succession of target points.
The nub of the system is the development of an acceptable general interface, with associated
protocol, which will allow easy substitution of supervisory computers or of robot configurations.
With such a standard, the way is open for the development of '~third-party" software packages
for specific tasks, such as loading and unloading of a particular machine tool. The three
components of the system, software, computer and robot, now reflect the example of the
provision by a software house of a word-processing package, for use on an IBM PC to drive an
Epson printer. Products from several manufacturers can be mixed, and if any part becomes
superseded by a new development it can be replaced without the loss of use of the other two.
131
132
To pursue these possibilities, a Mitsubishi RM-501 small robot was acquired by Portsmouth
Polytechnic Robotics Group, naked of its controlling computer and drive system. Controllers
have been developed for the individual axes, together with an interface to a supervisory
computer. Although a great deal of work remains to be accomplished, the philosophy underlying
the design is set out below.
Robot programming can be divided into several phases. One of these concerns the entry and
editing of coordinate data, sometimes with graphical assistance. Many packages now exist for
performing this task, running on a desktop machine or larger; these at present require onward
transmission of the program to the robot controller. A market-standard microcomputer system
can of course perform this part of the operation without question.
In the next phase of programming, coordinates are corrected (or are sometimes entered ab
initio) by guiding the robot through its sequence with the assistance of a teach-pendant. Now
the computer commands the axes to move in response to key-strokes or button-presses by the
operator. These may relate directly to individual axis movements, or may be transformed from
"world" or "tool" coordinates to make the human driving task easier. Solution of the inverse
kinematic equations is necessary if "world mode" or "tool mode" entry is required.
In the command language, there may be provision for specifying that a move should be made
in a straight line, rather than at uniform axis speeds. Some machines which offer world mode
programming, however, record only the joint coordinates for later replay, relying on the operator
to record sufficient intermediate points if straight-line movement is required. Move interpola-
tion is given some prominent consideration in the present study.
Modern sixteen-bit and thirty-two bit microcomputers are at least as powerful as the
processors at the heart of most robots. For high speed performance, however, there is an
advantage to be gained in reducing the number of interpolated points at which joint angles must
be calculated for producing smooth world-mode movement. Departing from the elementary
strategy of demanding a constant rate of change ofjoint angles between supervisory commands,
many authors suggest the use of fifth-order polynomial segments to achieve continuity of
acceleration at the blends. Here it is proposed that a cubic interpolation method will provide
an adequate compromise, giving acceptably small departures of the path while the slight
acceleration demand transients are smoothed by the electronic and mechanical responses. Sets
of coefficients for a third order difference equation are transmitted from the supervising
computer system to each of the axis controllers, which have a common "handshake" system to
synchronise their operation.
The Mitsubishi RM-501 is a five axis robot. A general inverse for tool position does nottherefore
exist, and a restriction on tool movement is imposed. The necessary constraint is easily
expressed, however, as will be seen.
133
.!lPproach
.QPening
Using the notation ofPauP, we may start with the approach vector !t, the opening vector Q and
the normal vector n defined to be coincident with the z, y and x axes at the base, see figure 2. The
first robot axis is the rotation of the base about the z axis. This and successive transformations
will represent the stages shown in figure 2:
[c.
~l
-Sl 0
Al = Sl ci 0
0 0 1
0 0 0
A2
.[j 0
c2
S2
0
0
-S2
c2
0 ~l
134
~""'Q
1ft T1= ~A2 rotot~
~
b -
0- Gz
I ~Ironslol~
'""',-'
;le'" n"'*'. . rolate
A3
I ,
I ,'<::1I~t:
,
I ....... n
, I" g I ,-
I
d " g
Figure 2. The elemelltary movemellts which combine to define the robot's position.
135
"[j ~l
0 0
G1 1 0
0 1
0 0
[; ~1
0 0
~ c3 -S3
S3 c3
0 0
[; ~l
0 0
Gz 1 0
" 0 1
0 0
[; ~1
0 0
A4 c4 -S4
S4 c4
0 0
~1
-ss 0
As [ Ss
c, Cs 0
0 0 1
0 0 0
[; ~l
0 0
and G3 1 0
" 0 1
0 0
[~:
=
0x
0y
ax
ay
px]
py
0z az pz
0 0 1
where (Px' Py' Pz) is the vector coordinate of the tool tip, and the first three columns represent
the cartesian components of the vectors fl, Q and E. respectively.
Now we can express Ts as:
(3.1)
]
-S5 0 0
ITs = [ ss·c)4
C, cs·c)4 -s)4 -s234.V-S23.U-s2.T
ss·s234 cs·s)4 c234 c)4.V +c).U +c2.T
0 0 0 1 (3.2)
Again following Paul we can approach the task of solving for the inverse kinematic relationship
by noting that:
137
whence
Now we can equate the 1,4 terms in equations 3.2. and 3.4. to arrive at
(3.5)
(3.6)
Together, these equations express the restrictions imposed on the tool direction vector by the
lack of a sixth axis.
Equating further terms give the following equations:
3,3 gives:
a. = c234 (3.7)
2,3 gives:
-SI· a• + cl·ay = S234 (3.8)
2,4 gives:
-SI'P, + cI'py = -S234' V - S23' U - s2· T (3.9)
3,4 gives:
(3.10)
Now the equations can be solved systematically. Using the unambiguous ATAN2 function,
where ATAN2(A.sin9, A.cos9) = e, we have from 3.5:
138
and S (3.12)
(3.13)
and (3.14)
where ~ = ATAN2(S, R)
and similarly
= sin-I U2 + R2 + S2 - T2 - 82 _ ~
2 T (R2 + S2)1/2 (3.16)
4. Polynomial fitting.
I ..----- I I
r:
I
n = -1
J:::::::::i:------']
n = 0 n =1 n=2 time
Figure 3. Fitting a cubic to the endpoints and to previous and following points as"pathjinders".
The cubic is fitted through four values at equal intervals of time. The times of these evaluations
can be considered as nT, where n takes values -I, 0, 1 and 2. This stresses that the resulting cubic
will be employed between the values of t = 0 and t = T, using the previous point at t = -T and a
future point at t=2T as "pathfinders".
There can of course be a discontinuity of derivative between segments, which might have been
eliminated by matching a higher order curve instead. The purpose of the interpolation, however,
is merely to improve on a simple linear interpolation between computed targets which are
themselves samples of a smooth curve. Further smoothing will result from the dynamics of the
servomotor, and so the added complexity of matching the derivative does not appear to be
warranted.
The calculation can be derived by considering a set of four polynomials, orthogonal at the
sample points where they take the following values:
n= -1 0 1 2
Po(nT): 1 1 1 1
PI(nT): -1 -1 1 1
P 2(nT): 1 -1 -1 1
P3(nT): -1 1 -1 1 (4.1)
140
x(nT) = L v, P,(nT)
,=0,3
where V
r 1/4 L P,(nT) x(nT)
(4.2)
.=·1,2
PI(nT) = (-2 n3 + 3 n2 + 5 n - 3) /3
PinT) = n2 - n - 1
i.e.
Po(nT) 3 0 0 0 1
PI(nT) 1 -3 5 3 -2 n
PinT) 3 -3 -3 3 0 n2
P3 (nT) 3 -4 -6 4 n3 (4.3)
Now if
ao 3 -3 -3 3 Vo
al 1 0 5 -3 -4 VI
a2 3 0 3 3 -6 v2
a3 0 -2 0 4 V3
141
3 -3 -3 3 1 1 1 1
x(-1) ]
.1 0 5 -3 -4 -1 -1 1 1 x( 0)
12 0 3 3 -6 1 -1 -1 1 x(T)
0 -2 0 4 -1 1 -1 1 x(2T)
whence
ao 0 6 0 0 x(-T)
al 1 -2 -3 6 -1 x( 0)
a2 6 3 -6 3 0 x(T)
~ -1 3 -3 1 x(2T) (4.4)
At each iteration of the processor controlling one of the robot axes, a proportion of the velocity
parameter, XI' will be added to the position demand xo:
For computational convenience N might be taken as 256, with the implication that the velocity
is scaled to represent the distance covered in 256 computation iterations. Time t will then be
represented by r /N, where r is the number of iterations so far performed. Velocity is updated
by acceleration in the same way, as is acceleration in its turn. The execution of the repeated
summation process can be performed by modifying each variable either before or after it has
been used to update a lower derivative, i.e. by performing the sequence of operations
X. . .
:= X + X +1/N (5.1)
in descending or ascending order of the subscript. In the first case, ifwe consider a constant third
derivative term of value 1 the result is seen to be
In either case the result will differ from t3/ 6 to a significant extent unless N is extremely large.
142
For general digital simulation, there are many integration algorithms which replace the simple
summation with a more complicated procedure to give a closer approximation to continuous
integration. In this instance, there is a much simpler solution. The inverse operation ofthe post-
updating method in which assignment 5.1 is applied in ascending order of subscript is the forward
difference operator.
If we take successive forward differences ofthe function Xo = t 3 (t = r/N) we find for r = 0, 1,
2 ... a set of sequences of values as follows:
~(r) 6, 6, 6 ...
N2xoCr) 0, 1, 4, 9,
N x1(r) 1, 3, 5 ...
x2(r) 2, 2 ...
~(r) 0 ...
then the correct function will be accurately generated by the repeated addition process. For the
particular value N =256 we can represent the coefficients as hexadecimal "decimals" as follows:
143
x., 0 1 0 0 x(-T)
Xl -0.54DS8 0.80FF8 1.007F8 -0.2AAA8 X( 0)
X2 O.FF -1.FD O.FD 0.01 x(T)
'S -1 3 -3 1 x(2T)
To enable the system to function as a robot, some sort of interface must be provided to link the
coordinating microcomputer to the individual axis control cards. This functional link is "private"
to the system which forms the robot and is specific to the task of providing command and status
monitoring in the most expedient way. Of course the computer must respect general commu-
nication structures and protocols in its dealings with any external network.
With independent processors controlling the individual axes, it is necessary to ensure that the
solutions of the difference equations keep in step. A three-line handshake is provided for this
purpose, in structure not unlike the handshake associated with the IEEE-488 bus. Each card has
two wire-or-ed outputs, each presenting a high or low resistance to ground. These are labelled
''waiting'' and "computing". A master card monitors these signals, and when appropriate issues
a signal "proceed".
I
1
_____________
All have released
waiting ~~M~:_~~:
Added
delay
proceed
I
Figure 4. Handshake example for three axes.
144
As each processor completes its iteration, it pulls "computing" false and releases "waiting".
Only when all the control cards have reached the waiting state will the "waiting" line go high. At
this point the master card pulls "proceed" false. In response, each processor releases
"computing" after pulling down "waiting". Thus only when all the cards have acknowledged the
low transition of "proceed" will "computing" be seen to go high. As the final step in the cycle,
"proceed" is taken high and the computation in each card is allowed to perform a further
iteration.
The "proceed" signal can be constructed using two NO R gates cross-connected as a bistable.
In practice, however, additional gating and timing circuits are added so that the supervisory
computer can regulate the speed of operation, permitting the execution of single steps if they are
called for.
Within the axis control card, the repeated computation is performed which yields the "target
position" and "target velocity". The motor carries a position transducer and a tachometer, so
that feedback of "position now" and ''velocity now" can be applied to achieve position control.
An analysis of the design of this loop is given in the next section.
Now the supervisory system must be able to issue commands to each processor, to transmit
sets of parameters for each move and to receive status and position information. In a journal
papers it was suggested that each command could be structured as a succession of eight-bit bytes,
the hexadecimal code SO being given special significance as a control character. Here the byte
following the code SOh determines the command, which will in general be followed by a list of
data bytes. Whenever a data byte is required to have value SOh, it is represented by two bytes
SOh FFh.
The list which follows contains those commands which are seen to be necessary. A code has
been suggested for each command, but if the scheme should find acceptance as a general
standard then the final set of codes might be the subject of considerable discussion.
Olh: Add the following coefficients which define a move to the queue of moves awaiting
execution. The coefficient set consists of:
number of calculation iterations (2 bytes),
initial position (3 bytes),
velocity (2 bytes),
acceleration (2 bytes),
jerk (2 bytes).
02h: Delete a move from the end of the queue. On the status bits, show the number of moves
still queued, or FFh if this command is invalid.
03h: Delete all queued moves, but complete the present move.
145
10h: Resume operation at the next "proceed" state of the handshake lines; this recovers from
the "stop" condition (llh).
llh: Stop and lock. Position control continues, but the position target freezes. The handshake
is frozen to halt all other channels.
12h: Stop and stand by. Position control continues with frozen target. The card releases both
handshake lines to allow other cards to proce,ed.
13h: Go limp. This is always preceded by a "stop" command. The motor drive is then set to
zero by the expedient of repeatedly copying the "actual position" value to the target position.
Another "stop" command will restore locked position control, with the present actual position
retained as target.
14h: Rotate until sense switch changes state. Two bytes set a velocity, another two set a limit
to the manoeuvre. The status byte shows 00 or 01 while running, according to the present value
of the switch. It shows 81h or 80h on successful completion, or FOh or Flh if the movement was
exhausted without reaching the sensor switching position.
ISh: Reset the axis counter, to make the "actual position" the reference zero position.
20h: Set normal mode: lock handshake when data points are exhausted.
21h: Set "ragged" mode: release handshake line whenever data is exhausted.
40h: Show status byte - the normal state. The eight-bit reply channel is updated with the card
status whenever it changes. The eight parallel bits can be read by the master machine without
use of any handshake. Three bits of the status indicate the number of queued moves remaining
to be performed - with a limit of seven. To avoid transient errors due to asynchronous reading,
a "Gray code" format can be used. Other bits indicate the partial receipt of a command string
and the synchronisation status in terms of "computing" or "waiting".
41h: Copy the status ofthe movement in progress to a buffer - steps remaining, position, velocity,
acceleration, jerk. These can then be read in sequence through the status byte, which now
performs a data handshake. Since the status channel does not carry commands, the code 80h
requires no special treatment.
146
To assist in developing the axis control software, provision has been made to download machine
code into the controller's RAM, and to transfer execution to any desired experimental routine.
60h: Read memory byte. The command is followed by two address bytes in the order high-low
(note that if any such byte is 80h, it must be transmitted as two bytes 80h FFh). The required
byte is copied to the status port. When it is read, the handshake causes the next byte to be output,
continuing until a further command is received.
6th: Write to memory. The command is followed by two address bytes, then by a succession
of bytes to be deposited in memory from that address onwards. Any byte of value 80h is
transmitted as 80h FFh. Any other command ends the transfer sequence.
63h: Execute memory. The command is followed by two address bytes. Care must be taken
to ensure that the new program is linked to the communication routine.
The hardware implementation of the link now remains to be defined. A number of choices
are available for the transmission technique. A serial line could be used, in the manner of a local
area network, giving savings in wiring. In common with several other bus structures, this can give
rise to "listener-talker" problems. If two separate lines are used for input and output, each
processor card must still have the facility to sieve all the received messages and to respond to
those which concern it. This in turn requires frequent interrupt activity if a single processor is
to be used per axis.
The method chosen for the experimental system maps each axis card into a separate group
of addresses in the memory or I/O map of the supervisory machine. Although this is to some
extent hardware specific, there is a commonality which runs across all present machines in the
provision of an expansion bus. This always carries address and data lines and a read/not-write
line or its equivalent. The same signals are to be found among those of a VME bus.
A single decoder on the master card enables a "peripheral interface adaptor" PIA chip
corresponding to one of the axis cards. This device has two ports, and one is here configured as
an input while the other becomes an output. Each port is linked pin-for-pin to its counterpart
on a second PIA, which is in turn connected to the internal bus of the axis controller. Two
handshake lines per port link the devices, which are designed to react to data transfers and to
reflect the status "new" or "taken" in an addressable register. Interrupts can also be generated
as required.
The pair of PIA's offer a low cost solution to the problem of providing a one-byte cache for each
axis in each direction, giving a fast asynchronous link with full semaphore protection of the data
transfer.
Such a technique can achieve very efficient data packing and gives high speed of communi-
cation over dedicated parallel channels. It was used in the prototype of a six-legged walking
robot. s A subsequent pneumatically powered walking robot was designed for low-cost fabrica-
tion and required greater simplicity of communication and interfacing. For this, a serial
multidrop system has been used. The most significant nibble of each transmitted character
147
defmes its control function, such as "select hoard" or "pulse control valve", whilst the least
significant nibble carries a data value. In this system, the command traffic is relatively light and
it has been possible to spare the time for a one-byte response after each command.
Much theoretical research has been devoted of late to the design of control loops which com-
pensate for inter-axis forces; the solutions which seem to find favour usually involve large
computational resources. Their design process is often based on the optimisation of an integral-
square-of-error cost function and great care is taken by the authors that the servo amplifier
should not saturate - the linear theory would then not be applicable. The concern for theoretical
respectability will usually result in performanc:e which is inferior to that of a system designed by
traditional methods.
When designing autopilot actuators twenty-five years ago, an important concern was to close
a "velodyne" loop around the servomotor with as high a tachometer gain as possible. The
response to force disturbances was then minimal; full saturated drive torque could be applied
for a velocity error of as little as 0.02% of the available speed range.
Any control signal injected into this loop consequently represented a demand for servomotor
velocity. A feedback signal was applied which was proportional to servo position error and very
large gains were again possible. Full saturating servo torque was achieved for a very small error
- the limitation was found in the accuracy of the transducer, rather than in the performance of
the control loop. In effect, the error due to an applied force was negligihle, less than that defmed
by the mechanical rigidity of the structure, until the disturbing force became equal to the limit
of the servomotor driving force. For greater forces control was lost completely - as it would be
under any controlling algorithm.
The most convenient method of analysing the saturating second-order system is hy means of
the phase-plane diagram, in which velocity is plotted against position error. When velocity
demand is made proportional to position error, the plane is divided into three regions by two
parallel oblique lines. The "proportional band", where the drive is not saturated, separates the
regions where the drive is at a positive extreme and at a negative extreme.
The behaviour of the controlled system is represented in the phase-plane by "trajectories",
curves along which the point representing the system's state will proceed. Under constant
acceleration or deceleration these will be parabolae, see figure 5 (reproduced from "Control-
ling with Computers"8 with the permission of the publishers.)
In the proportional band, the drive to the servo amplifier may be expressed as:
velocity axis
position ->
U = -umox
Proportional
band
velocity
trajectory
position el1Vr
Figure 6 shows that in some circumstances a parabolic path appears impossible. When the
trajectory crosses the switching line from the negative-drive region to the positive-drive one, the
positive-drive trajectory is seen to carry it immediately back into the negative-drive region. The
drive oscillates rapidly. The system performance may, however, be quite acceptable. The rapid
drive switching causes the servo state to follow the switching line, in what is termed "sliding"
motion. If the switching line has slope 11k, it is defined by the equation:
x+ kx = 0
Any state which follows this path will therefore satisfy the above equation, which can be solved
as:
The path of the servo state represents an exponential decay of error having time-constant k.
149
A slight proportional band can in practice modify the performance to remove the rapid
switching of the drive, replacing it with a steady value corresponding to the mean of the mark-
space ratio. This has the particular advantage of allowing the servo to come to rest with an
ensuing steady drive of zero.
Figure 7 shows that for a certain size of step disturbance, the accelerating trajectory cuts the
switching line at a point from which the decelerating trajectory passes through the origin. The
motor moves ftrst under full acceleration then under full deceleration to reach the origin in
minimum possible time. It also shows that when the parabola intersects the switching line
outside this point, an overshoot is inevitable. If the designer succumbs to the temptation to
reduce k to achieve faster response, the size of position step which can be achieved without
overshoot is reduced.
Figure 9. With a velocity limit, overshoots Figure 10.A dual-slope switching line.
from large displacements are avoided.
The answer to the design dilemma lies in nonlinear control. If the position error term is
limited in magnitude, giving a limit to the velocity demanded, then the phase-plane appears as
in figure 8: there is no overshoot. Alternatively a dual-slope curve of demanded velocity versus
error can give the performance of ftgure 9. The function which gives time-optimal control from
all errors is the switching parabola of figure 10.
i
u =-1
11- +1
To have chosen time-optimal control carries a large performance penalty in practice. Ma-
noeuvres are performed at the maximum speed from which the motor can theoretically come
to rest without overshoot. Disturbing forces and changes in inertial parameters will cause the
trajectory to deviate from the predicted one, and oscillatory behaviour will probably be the
result.
Suppose that a parabolic switching line is used nevertheless, but that the parabola represents
a deceleration which is only one half of the performance of which the motor is capable. For a
step change of target, the motor will again start by applying full acceleration. On reaching the
switching curve, the system will now enter a sliding mode in which the state follows the curve with
mean deceleration as defined by the parabola. Any disturbing forces which are less than one half
offull drive in magnitude will fail to detach the systems state from the sliding trajectory; they will
only modify the mean value of the motor torque.
The cost of this immunity to disturbances is an increase in settling time of 40% after the sliding
curve has been reached (a factor of 1.4), but since full acceleration is applied before reaching the
switching curve this increase may be only 20% overall for a step change of target position.
These discussions have assumed that the position error is represented by a continuous signal.
Often the position measurement will take the form of an incremetal optical transducer and
counter, so that the error signal changes in discrete values. The switching curve will now appear
as a staircase of steps, as the target speed changes for each value of the error count. In such a
system, the control is likely to be implemented by means of a microprocessor. Now the velocity
demand signal can be read from a table, where the index is error size, to give any switching curve
which may be desired.9
Control of a multi-axis robot with servomotor loops designed in this fashion will be immune
to substantial disturbance forces and to errors in predicted inertial parameters. As the operating
speed is pushed upwards, however, a point is reached where acceleration and coriolis forces
exceed the safety margin allowed. The robot path will break free from the target trajectory and
large errors can result. To avoid this, the path must be followed at speeds within the drive
limitation of the robot axes - a limitation common to all possible control strategies. To ensure
error-free control it is now necessary to moderate the target speed at which the spatial trajectory
is to be followed. Such path planning is a problem in the realm of dynamic programming.
(i) Performance will deteriorate significantly if the position control loop is not serviced
regularly, and so this is initiated by a high priority interrupt. The controller design used in the
experimental system involves a novel power amplifier, published in a paper coauthored by
D. Sanders3. Incremental encoder signals are processed by a 74LS2000 device, so that the
151
position can be read at each control cycle, and a corrective signal computed for application to
the drive amplifier.
Care must be taken to ensure that the interrupt does not result in a target position being used
which has been incompletely updated. Since the controlling function is initiated by the "Non
Maskable Interrupt" the target position data must be duplicated, flags being set before and
cleared after each replica is updated.
(ii) The supervisory computer must receive a swift response, but a delay equal to the position
control service time can be acceptable. Receipt of a byte on the command bus is thus serviced
by a lower level interrupt.
Commands must be able to initiate or inhibit control action, and to reschedule tasks at the
lower level too. A slightly unusual software structure has therefore been used, which accom-
plishes the necessary tasks without the complexity of a conventional multi-tasking operating
system.
The interrupt routine first fetches the byte from the communications interface. It tests it for
the "command" value 80h, in which case it sets a flag and returns forthwith (after restoring
appropriate registers).
If the "command" flag is not set, the byte is a data item for a command routine already in
progress. Two bytes are read from memory and pushed onto the stack, and a "return from
subroutine" is performed. This transfers control into the appropriate part of a routine which has
previously been invoked, which deals promptly with the input byte and then CALLs ENDINT
if a further byte is expected. ENDINT pops the return address bytes off the stack, saving them
for use when the next interrupt occurs, and then performs an interrupt return. If the command
task is complete, a jump is instead made to IDLE, which again calls ENDINT, jumping back to
IDLE as each non-command byte is received.
If the "command" flag is set, and the received byte is FFh, then the flag is reset, value 80h is
substituted for the byte, and computation proceeds as in the preceding paragraph.
If the "command" flag is set, then the flag is reset and the received byte is used as an index
into a pair of tables giving the address of the command routine to be initiated. These are pushed
onto the stack, and a subroutine RETURN is performed as before. When command is recovered
through ENDINT, a resumption address will be saved for the new routine.
This method of operation clearly imposes certain restrictions on all command routines, since
they must leave the stack clean for the interrupt return. In particular, although the command
routine may contain subroutines, none of these must include a call to ENDINT to fetch another
byte. Register values are lost between calls, and so their values are saved in locations particular
to the command level.
(iii) This task includes the three-line synchronisation handshake. Since this is designed to
reflect the readiness of all axis controllers to proceed, it would be pointless to cause computation
of the target coordinates to be interrupted by an event on the "proceed" line. Instead the com-
putation closes with a polling loop on the "proceed" status, from which the two levels of inter-
rupt can seize command as required.
152
9. Conclusion
A system has been outlined which will allow a general desktop computer to be used as the co-
ordinator and software vehicle of a robot. Interfacing is performed via VME or general
expansion bus to individual axis controller cards, which contain a minimum of software to
support position control, polynomial target interpolation and communication with the coordi-
nating machine.
The robot programming language has not featured in the description, since a major feature
of the proposal is that a variety of languages, be they general or application specific, can be
supported on the system at the behest of the user. Since the host computer is connected into
the system through a single plug-in card, and since only one memory offset address is involved
in the "personalisation" of the interface, almost complete portability can be achieved among
machines offering a given operating system.
The resulting "unbundling" can go far to preserve the durability of investment in both soft-
ware and hardware.
10. Acknowledgement.
The purchase of the Mitsubishi Robot was made possible through a grant from the Science and
Engineering Research Council under the initiative "Application of Computers in Manufactur-
ing Engineering".
11. References
J. O'SHEA, R. BENALI
Ecole Poly technique de Montreal
C.P. 6079, Succ. A
Montreal H3C 3A7, Canada
The motivation for this work came mostly from the need to test quickly
and inexpensively various robot control algorithms, proposed in the
literature, on a comparative basis. Simulation permits to carry that
evaluation easily and provides for direct comparison if it is limited to
only one type of robot. Since the Puma-560 is one of the most popular
robot and is well documented, it appeared as a natural choice to serve
as a comparative simulation model.
Generally, there exists two kinds of robot computer simulation. One
consists of displaying on a screen an animated picture of a robot
performing a task. CAnA [1] is a good example of such a type of
simulation. This is done mostly for determining or validating the
location of the work station relative to the robot and other machine-
tools. The second corresponds to the traditional way of simulating
processes or systems by plotting curves of variables of interest versus
time. This is specifically the type of simulation dealt with in this
paper.
Whereas reference [2] uses the Newton-Euler formulation of the equations
of motion which were programmed in Fortran to run on a CYBER 175
computer, this paper presents a study based on the Lagrange formulation,
while the simulation program is written in Pascal and runs on a PC.
153
154
However, the general scheme proposed in [2] has been retained and
appears herein as figure 1.
TRAJECTORY GENERATION
IN CARTESIAN COORDINATES
/
TRANSFORMATION FROM CARTESIAN
TO JOINT COORDINATES
l
l 9d
.....-----1-' CONTROL ALGORITHMS SIMULATION I
~ u
1-------'-1 ACTUATORS SIMULA TlON l
, Fm
L-_ _ _ _ _ _ _ _ ~
Ie. e
cof[n,2,O]:=ae[n,2]; p[3] );
cof[n,2,1]:=c[3,n];
cof[n,2,2]:=c[4,n]; ts:=ts+dt;
cof[n,2,3]:=c[5,n]; end-,
cof[n,3,O]:=ae[n,3]; UNTIL ts>=tsim ;
cof[n,3,1]:=c[6,n];
cof [n,3,2] :=c [7 ,n];
cof[n,3,3]:=c[8,n];
cof[n,3,4]:=c[9,n];
end; tsO:=O;
Now, the position vector P=(Px,Py'Pz)t, which points from the orlgln of
the arm coord i nate system to the di sta 1 end of 1ink 3, is known as a
function of time. Since the velocity of the effector along the
trajectory will also be required, one needs a subroutine for computing
the time derivative of the desired trajectory in the workspace:
158
sb:=sqrt(l-cb*cb);
bl:=sa*cb+(arm*elbow)*ca*sb;
b2:=ca*cb-(arm*elbow)*sa*sb;
p[2] :=atn(bl ,b2);
REPEAT rl:=sqrt(px*px+py*py+pz*pz-c6*c6);
begin cc:=(a2*a2+(d4*d4+a3*a3)-rl*rl)
c6:=0.149;d4:=0.433; /(2*a2*sqrt(d4*d4+a3*a3»;
a2:=0.431; sc:=arm*elbow*sqrt(l-cc*cc);
a3:=·0.02032; sb:=d4/(sqrt(d4*d4+a3*a3»;
cb:=abs(a3)/sqrt(d4*d4+a3*a3);
( Cartesian position reading } bl:=sc*cb-cc*sb;
readln(fl, t,px,py,pz); b2: =cc*cb+sc*sb;
p[3]:=atn(bl,b2);
{ Inverse kinematic calculation }
arm:=l; { Recording of joint coordinates }
bl:=(-arm*py*sqrt(px*px+py*py-c6*c6) -
px*c6)/(px*px+py*py); writeln(f2, t, I I ,p[l], I I ,p[2], I I ,p[3]);
b2:=(-arm*px*sqrt(px*px+py*py-c6*c6) + end;
PY*c6)/(px*px+py*py); UNTIL eof(fl) ;
p[l] :=atn(bl ,b2);
elbow:=l;arm:=l ;
sa:=-pz/(sqrt(px*px+py*py+pz*pz-c6*c6»;
ca:=-arm*sqrt(px*px+py*py-c6*c6)
/(sqrt(px*px+ py*py+pz*pz-c6*c6»;
cb:=(px*px+py*py+pz*pz-c6*c6+a2*a2-(d4*d4
+a3*a3»/(2*a2*sqrt(px*px+py*py+pz*pz
-c6*c6»;
- :
MOTOR
---- ------ -- -- - -------------------,
torqGe GEAR Fm El
L1 1:E~R 1_--------'
,-----------,
-KY-~r-v-\a-/-(R-+-S0l_t_~-
u ~AANIPULATOR
f7
e,-
REDUCER
co::te'l_ •
e.m.f. REDUCER
._--------------------------------
( Armature current )
cur[n]:=(u[n]*dt+l*uO[n])/(r*dt+I);
( Motor torque )
fm[n] :=cur[n]*nm[n]*lca;
uO[n] :=u[n];
162
4. ROBOT DYNAMICS
4.1. MANIPULATOR MODEL
The Lagrange formulation [5] of the manipulator dynamics gives a
convenient simulation model:
0 11 012 013
0(9) 012 022 023
013 023 033
ett 02e
1 + 01 + fbI + fci
P(9,e)= e0 e + °2 + fb2 + fc2
a03a
t + 03 + fb3 + fc3
(4.2)
In order to solve for 9, a double integration needs to be performed. But
this constitutes the task for another subroutine called OYN-ROB to be
described in the next section. Further to the above considerations, the
listing of MOD-ROB has been developed, and is shown below:
Procedure MOD_ROB (fm,p,v:vec_real; di j [1,3]:"' 013*( (x3*d3 + a3*y3 + a3*d3)*823 -
vartau:vec_real;var acc:vec_real;mc :real); z3*d3*c23) ;
acc[2):=1/det_dij*(i_dij[2,1)*tau[1) + acc[3):=1/det_dij*(i_dij[3,1)*tau[1) +
i_dij[2,2)*tau[2) + i_dij[2,3)*tau[3); i_dij[3,2)*tau[2) + i_dij[3,3)*tau[3);
End; {MOD_ROB>
and
c i = cos 9i
si = sin 9i
for the case of the Puma (figure 2), the derivation of the i- 1Ai matrices
gives
c1 0 -Sl 0
Sl 0 c1 0
0 -1 0 0
0 0 0 1
c2 -s2 0 a2c2
S2 c2 0 a2s2
0 0 1 0
0 0 0 1
(4.5)
c3 0 -S3 a3c3
s3 0 c3 a3s3
0 1 0 d3
0 0 0 1
167
1 0 o o
o 1 o o
o 0 1 o
o 0 o 1
From the fourth column of °T4, the coordinates of the distal end of link
3 relative to the base are found to be
px = a3c1c23 + d4c1s23 + a2c1c2 - d3 s 1
py = a3 s 1C 23 + d4 s1 S23 + a2 s 1c2 + d3c1 (4.6)
pz = -a3 s23 + d4c23 - a2 s2
where
C 23 = cos( 92 + 93 )
S23 = sin ( 92 + 93 )
Table 4.1 contains the numerical values for the Puma-S60 parameters [7]
needed in equation 4.6 to compute the trajectory in workspace.
Table 4.1 Parameters of the Puma-S60
Frame 9; 0; a; d;
1 91 -90 0 0
2 92 0 0.4318 0
3 93 90 -0.0191 0.1505
4 0 0 0 0.4331
From equation 4.6, a short subroutine called POL-CAR was written. Its
1isting follows:
Procedure POL_CAR(positionjp,pos_car:string); { Manipulator parameters }
d3:=0.149;d4:=0.433;
a2:=0.431;
83:=-0_02032;
REPEAT { Readings of polar coordinates }
begin readln(f1, t,p[ll,p[21,p(31);
{ Cartesian coordinates calculation }
168
~u
p (8,8)
__ K_a--.J~
I
!-r----l8
ROBOT
f 8
n:=1; n:=n+1;
REPEAT end;
begin UNTIL n>nnax ;
urn] :=kc[n,1]*err[n]+kc[n,2]*(vd[n]-v[n])+
kc [n,3]*s_err [n]; End;{PID}
where:
Ki = current gain
F m = torque at t = (k - l)T as computed by the motor subroutine
nm = gear ratio
Ka = motor torque constant
pee,S)
K_O~~
L -_ _
t- ROBOT
G T_G
lLJ
The subroutine for the PCF algorithm is a particular case of the next
algorithm. Therefore no listing is given for now. Suggested numerical
values for initially tuning the controller are Kp = 80 Kv = 10 Ki = 8.
171
'----------1 K2 1 - - - - '
End;{RPC}
-
e
e
Figure 7: AAF Controller
All the variables shown are vectors: the algorithm, this time, takes
into account the interaction between the degrees-of-freedom. As before,
position and velocity feedbacks are used but the new feature comes from
the generation of the compensat i ng torque tc' Idea 11 y, the matri x Dc
must be identical to the inertia tensor of the robot. However, keeping
Dc constant does not deteriorate appreci ably the performances. Hence,
the algorithm becomes:
(5.4)
where,
173
KC2 5
6. Conclusions
More on these algorithms and thei r performances can be found in the
references as their analysis does not presently constitute the
objective.
174
The software described in the previous sections was prepared with great
care for modularity thus favoring the ease of modifications. In
particular, it permits one to replace compensators at will without
having to rewrite other parts of the program. In this way, the need to
compare the performances of the various robot control algorithms
proposed in the literature can be satisfied.
Moreover, the lack of benchmark model for testing robot control
algorithms has been remedied. The situation had forced authors to use
hypothetical models for demonstrating the goodness of their controllers
leaving the reader with no direct basis for comparisons. But,
simulating a real robot (like the Puma 560 for which all the data are
available) undergoing the task to move objects along the straight line
trajectories proposed in this paper, offers a definitive benchmark
solution.
REFERENCES
[1] ANONYMOUS (1986), CATIA User's Manual - Robotics Module, Dassault
Systems, Suresnes France.
[2] WALKER M.W. and ORIN D.E. (1982), "Efficient Dynamic Computer
Simulation of Robotic Mechanisms", ASME Journal of Dynamic
Systems, Measurement and Control, 205-211.
[3] NEUMAN C.P. and MURRAY J.J. (1987), "The Complete Dynamic Model
and Customized Algorithms of the Puma Robot", IEEE Trans. on
Systems, Man, cybernetics, vol. SMC-17, no. 4, 635-644.
[4] FU K.S., GONZALEZ R.C. and LEE C.S.G. (1987), Robotics: Control,
Sensing, Vision and Intelligence, McGraw-Hill, New York.
[5] KOIVO, A.J. (1989), Fundamentals for Control of Robotic
Manipulators, Wiley, New York.
[6] PAUL R.P. (1981), Robot Manipulator: Mathematics, Programming, and
Control, MIT Press, Cambridge, Mass.
[7] TARN T.J., BEJCZY A.K., HAN S. and YUM X. (1985), "Inertia
Parameters of Puma 560 Robot Arm", Robotics Laboratory Report SSM-
RL-85-02, Saint-Louis.
[8] O'SHEA J. and TURGEON, A.B. (1988), "Benefits of Positive Current-
Feedback Inner Loop for Robot Servos", IFAC Proceedings on "Theory
of Robots", Pergamon Press, Oxford, 185-191.
175
[9] O'SHEA J •• BENALI R. and TURGEON A.B. (1990), "An Improved Robot
Controller Based on Positive Current Feedback Plus PIO", IMACS
Proceedings of MIM-S2 '90, Brussels.
[10] CHAUDET R. and O'SHEA J. (1983), "Val idation of an Adaptive Robot
Control Structure by Means of Simulation", IMACS Proceedings on
"Simulation in Engineering Sciences", Elsevier Pub., 411-416.
[11] GOREl R. and O'SHEAJ. (1989), "Robot Positionning Control: Survey
and Comparative Analysis", Proceedings Incarf 89: 4th Int. Conf.
on CAD, CAM, Robotics and Factories of the Future, vol. 1, New-
Delhi, 639-648.
CHAPTERS
Abstract
The best collision strategy for a robot is avoidance. If avoidance is not possible or feasible
the next best strategy, under certain circumstances, may be 1) partial judicious retreat
in order to ameliorate the consequences of collision, or 2) to resist the collision impact in
order to maintain stability. The retreat and resistance strategies share common elements of
design: sensory requirements, processing and transformations modules, and control struc-
tures. Much of the system design is amenable to microprocessor based implementation.
The subject of this chapter is to present the technical implementation of both of these
strategies via an example, and to discuss a microprocessor realization of them. The article
is divided into six: sections. Section 1 introduces the two strategies and the technical issues
via an example. Section 2 is concerned with pre-collision sensing and estimation require-
ments. Section 3 deals with the sensory requirements after collision. Section 4 presents
the control requirements. Section 5 offers some illustrative numerical simulations of re-
treat or resistance. Section 6 summarizes the major attributes of the retreat and resistance
strategies.
1. Introduction
Collision avoidance for robots has been the subject of many recent studies[1,2,3,4]. In
most of these studies, the robot is in full control of th(; situation and total avoidance of
the collision with the environment is planned in advance. When total avoidance is not
possible or feasible, the next best strategy, under certain circumstances may be partial
retreat in order to ameliorate the consequences of collision or to resist the collision impact
and dissipate the collision energy in order to maintain stability. Examples can be drawn
from the field of human activity in general, and athletics in particular, to illustrate partial
retreat or resistance. In soccer or football a player may retreat from collisions in order
to maintain speed or possession of the ball. A wrestler must deliberately resist collision
or forces that he encounters in contact with the opponent, and must sustain his postural
stance against steady force exerted by the opponent. There may also be interim maneuvers
between the extremes of resistance and retreat. The athlete (robot) may have to reorient
itself, i.e., change its attitude, in order to negotiate a retreat or to resist more effectively.
Many of these reactions are more accurately characterized as reflexive than as preplanned,
or structured, activities.
177
178
If the resistance or retreat is local, i.e., the magnitude of the force or the resulting distances
in retreat are small, both situations can be viewed as extreme cases of the mechanical
impedance of a linear system. Suppose the robotic system is linearized about an equilib-
rium point from which retreat or resistance is to take place, and suppose an analogy is made
between force and voltage on the one hand and velocity and current on the other. Then
the classical concept of impedance can be extended to the linearized robotic system[5,6J. In
resistance the robotic system should display high impedance (it should exhibit stiffness) in
the direction of the force. This means small velocity and, consequently, small displacement
should result. In retreat, small forces should produce high withdrawal velocity and corre-
spondingly large displacement. In this case, the system presents low impedance (exhibits
compliance) in the direction of the applied force.
In this chapter the common sensory, processing, and control requirements of both strategies
are discussed via an illustrative example. The example is a four segment robot anchored
to the ground with a state space of the angles and angular velocities of the segments with
respect to an inertial frame of reference.
In this section we will describe a strongly goal-oriented stereo vision system charged with
the task of establishing the possibility of collision with an inbound airborne projectile. From
an input sequence of stereo video image pairs, the system produces a current best estimate
of:
• Collision likelihood
• Impact position
• Impact vector
• Impact velocity
Such a system could form a component of a larger, more general, VISIon system. The
restriction to visual sensing merits further discussion. Progress has been made recently in
sensor design and integration [7,8,9J. We limit the sensory configuration to focus on its
contribution and requirements.
The processing demands imposed by this particular problem dictate a special case solution;
such a system should necessarily be, in some sense, minimalist. By this we mean the system
should construct a scene description just sufficiently rich to solve the problem at hand
and should do no more processing than is absolutely necessary. In addition, the imaging
resolution should be just sufficient. Extracting additional information and constructing
179
higher level scene representations wastes energy and computational resources and injects
an unnecessary degree of complexity, increasing the likelihood of malfunction.
This goal directed component approach to visual processing seems to have at least an ap-
proximate counterpart in the evolution of biological vision systems [10]. Biological systems
form representations and extract descriptions on a scale commensurate with the organism's
ambulatory capabilities and adapted to its specific needs!. Simple organisms which cannot
move far or fast need only sense the local environment; it is all the information they can
effectively use. Additionally, limited reasoning capability which does not allow for long
range planning or communications would be incapable of dealing with such information.
Distant vision capability is really only useful in a task planning operation as opposed to a
reflexive response to local conditions. The subject action of this chapter falls more into the
category of reflex than conscious planning. The system should not operate at any level of
abstraction which is not absolutely necessary.
The major requirement for either resistance or retreat is a reasonably accurate estimate of
the object's velocity vector and point of impact. If the objective is to resist the impact,
the robot will also require a priori knowledge of the mass of the projectile and whether the
force of the collision will be impulsive (short duration) or steady (sustained or lingering).
We are not supposing that the latter two pieces of information can be garnered from the
visual input, so they are assumed known from some other source.
We envision a system consisting of a stereo pair of video cameras mounted on the robot's
head 2 • The stereo vision system allows us to do triangulation ranging to recover the distance
to the inbound projectile. In building a (general purpose) visual stereo system, two problems
are paramount:
The solution to the correspondence problem is required to establish the local triangulation
used to compute the location of physical scene features. Camera calibration allows the
triangulation to be accomplished in real coordinates. Additionally, a well-calibrated camera
lFor example, the vision system of the frog, which is concerned mostly with acquiring food, is little more
than a "fly detector."
2In this sense, the design is blatantly anthropomorphic.
180
system is needed for many stereo correspondence algorithms, since this provides geometric
constraints which are used to direct the search process( es).
The stereo correspondence problem has been pursued by many researchers [11-25] 3. These
techniques generally operate at the pixel (point) based level with little aid or guidance from
any sort of structural representation of the scene content. As an exception, Boyer and Kak
[13] showed that the rich information content of a structural description of the scene may be
used in solving the stereo correspondence problem for a very simple class of scene (binary
skeletons); these experiments provided a reasonable first proof of concept for structural
stereo. None of the other systems cited above implement the notion of structural stereo
as defined by Boyer 4. In recent work, Horaud and Skordas [15] present a scheme in which
a relational graph is built for each image and then correspondence is recovered by finding
maximal cliques in a correspondence graph. Arcs in the correspondence graph represent
consistent matches with respect to the information encoded in the pair of relational graphs.
Most proposed solutions for stereo vision rely on the assumption that the images are regis-
tered in epipolar geometry. That is, scan lines are thought to be epipolar lines, or related
to them in a known way. For certain applications this condition is forced by aligning the
cameras perfectly parallel, although this condition is very difficult to achieve in practice.
However, even if it can be accomplished to acceptable accuracy, it is quite likely that this
condition will change in time. For example, in a moving robot physical disturbances and
vibrations may cause misalignment; the camera positions should be periodically surveyed
and readjusted if necessary. Although one of the authors (Boyer) is currently engaged in
research designed to recover correspondence from uncalibrated stereo camera systems, that
is a problem quite distinct from the one we consider here. For this discussion, we will
assume that the camera pair is calibrated with respect to an egocentric robot coordinate
frame.
With respect to the tracking or active vergence problem which is closely related, we also
point to some especially noteworthy work done by Ballard, et al.[16]. Cepstral filtering is
used to control the camera vergence and "track" an object in the field of view. Much of this
work is predicated on the observation that active eye and head movement can introduce a
great deal of useful information of a very succinct nature to aid in resolving ambiguity and
limiting the massive amount of computation typically associated with such problems.
At this point we take a departure from most prior stereopsis work, including our own,
and propose a system based on associative memory. The purpose of the memory is to
immediately associate a set of motor commands and other behavioral actions with a set of
input visual patterns in the two cameras. That is, rather than explicitly computing point
correspondences and object positions in world coordinates and trying to reason forward
from this information to a plan of action, we are trying to capture the essence of reflex
3We recommend Barnard and Fischler [11] and Kak [12] for excellent summary reviews of several classic
stereopsis algorithms.
4The term could reasonably be applied to the system of Ayache and Faverjon[14]' although it is actually
quite different and still requires a priori knowledge of the epipolar geometry.
181
behavior through the action of associative memory. The explicit construction of point
correspondences and 3D scene descriptions, followed by online velocity and point of impact
calculations, is prohibitively expensive from a computational point of view for the problem
at hand. Again, we are proposing a strongly goal directed system which can serve as a
building block; it is not general purpose in a standalone sense. Learned patterns on the
four image planes, left and right at two discrete but closely spaced instants in time, will be
used directly to infer the robot's reaction, if any is required. We will refer to such a set of
four images as an image foursome. This will be a continuing online process as the projectile
approaches and does not require simplifying straightline trajectory assumptions and the
like to make the problem tractable. Knowledge of the ballistic behavior of projectiles can
be learned synthetically offline and stored in the associative memory.
The task of the associative memory is first to determine whether an impact is imminent.
To do this effectively, the memory must be able to recognize with reasonable accuracy all
possible object position and trajectory combinations likely to cause such impact within its
field of views. The stereoscopic field of view for which we expect the associative memory to
be responsible is termed its domain of responsibility. Given an incoming projectile anywhere
within this volume of space, we expect that the associative memory will be able to recognize
the condition as a threat (if indeed it is) and associate with that recognized condition an
appropriate set of responses.
The set of patterns we store should effectively cover the domain of responsibility; holes in
the coverage will correspond to windows of vulnerability for the robot. The robot will be
incapable of appropriate action if the physical configuration of the domain of responsibility
is not recognized. Associated with each pattern is information specifying the appropriate
reflexive action based on the current state of the environment.
We have already outlined the general criteria of our goal oriented visual system. Speed
is certainly the most critical factor in its design. To this end, we are assuming that the
input scene is a single dark blob silhouetted against a bland, bright sky. Simple gray level
5 Forthis discussion, we will assume that the robot is not turning its head to scan the sky for threats,
although that could readily be incorporated as layer above our paradigm.
182
thresholding will be used to segment the images into binary form. We will also work with
limited resolution. We do not need to see the individual facets of the ball surface; neither
do we need precise delineation of the ball perimeter. Camera resolutions on the order of
500 X 500 will be substantially subsampled.
Nelson [17] outlines three criteria required of an associative memory system designed to
perform visual homing6 . Similar criteria applicable to our problem are as follows:
• The sensing and extraction of patterns from the domain of responsibility should be
such that the reference patterns and their associated actions vary smoothly with the
configuration of that domain. Simply put, if the projectile position and velocity are
perturbed only slightly, the resulting pattern and the robot's response should also
be perturbed only slightly. This allows a reference pattern to effectively span some
reasonable volume of the domain of responsibility and so limits the number of reference
patterns which must be stored. This concept is analogous to a Nyquist sampling
criterion with respect to the mapping from the physical domain of responsibility to
pattern space and, ultimately, the associated action space. We will see that the
physical aspects of our problem (i.e., fundamental ballistics) ensure that this condition
is easily satisfied.
• To limit the degree of false recognition, the probability that highly similar patterns
will be produced from highly dissimilar configurations of the domain of responsibility
should be low. Of course, this point is fairly obvious. Because of the simplicity we
assume in the visual input, the source of false matches in our case will predominantly
consist of segmentation errors in the original images, which will be determined by
the probability density function of the input noise. Because camera resolutions on
the order of 500 X 500 will be substantially subsampled, considerable averaging will
occur and the noise variance will be accordingly reduced. In general, this requirement
dictates that the mapping of raw data into patterns should be as nearly unique as
possible. Practically, there should be little or no repeated image structure or distinct
configurations of the physical domain which lead to redundant patterns.
• The patterns should be compact, easily generated, am! fast to compare because, re-
spectively, we will need to store a large number of them, we must produce them in
real time from the raw stream of input data, and we must compare a freshly computed
input pattern with all stored patterns of interest (what we mean by "of interest" will
become clearer later) within a time interval which allows real time performance.
Definitions
In keeping with Nelson's formalism, we define a pattern as an n-tuple P = (aI, a2, ... , an)
which is an element of pattern space, P:
(2.1)
6We have learned much from Nelson's work; in some ways the pre-collision sensing problem is a dual to
the homing problem which he has formulated very nicely.
183
where AI, . .. , An represent finite sets of features. That is, ak E Ak and an image foursome
is described by a set of discrete primitives. There is no relational information captured
explicitly in this formalism, in contrast to the parametric structural description formalism
of Boyer and Kak, or many of the other graph-theoretic representations. These more so-
phisticated representations are inappropriate for the reflexive action under consideration;
they are simply richer than necessary and too costly to consider here. This approach only
captures relational information implicitly in the positions of the primitives in the pattern
n-tuple.
We will refer to the stored patterns acquired in the training phase as reference patterns.
The pattern extracted from the incoming data as the system is in operation at any instant
of time will be referred to as the index pattern. The system will, in response to an index
pattern, produce that stored reference pattern closest to it, according to an appropriate
distance metric. If this reference pattern is sufficiently close to the index pattern, the
reflexive action associated with that reference pattern will be executed. This describes the
behavior of a rudimentary associative memory, essentially an inexact lookup table or nearest
neighbor classifier. For our problem, the appeal of such a configuration is in its simplicity;
it offers the minimalist characteristics that we require to meet our time demands.
We will now establish some of the pertinent design parameters of an associative memory
visual sensor processor such as we propose. This should not be taken as a definitive system
design, but rather as a preliminary investigation into the feasibility of implementing such a
system.
The first item to be considered is the mapping from image foursomes to elements of pattern
space:
if>:IxIxIxI>--->P (2.2)
We will denote the four images in the foursome by h(tO),!R(tO),h(t1),!R(tI) to signify
left and right images at sample times to, tl'
We construct an 8-element vector formatted as shown in Figure 2.1. Each of the eight
components specifies the row or column location of the centroid of the I-valued pixels
(object pixels having value 1, background pixels having value 0) in one of the four images
in the foursome. In this case, each of the £II; in the pattern formalism above is a number:
ak E {O,l, ... ,N -I} = Ak, Vk = 1, ... ,8 (2.3)
and the size of our pattern space is N8,which is likely to be quite large, indeed. This is
desirable to increase the mean separation between the stored reference patterns and so to
control the false match probability. We are assuming that an online estimate of centroid
position can be computed, possibly optically.
184
left . Right
J I
@ e
I- -
;;':e
\ I
V
<t>
•
"- Time I
A
Time 1+1
Figure 2.1: Constructing elements of pattern space from an input image foursome.
We will compare our patterns using a distance metric built on the well-known chessboard
distance. The chessboard distance between two points PI = (r}, CI) and P2 = (r2, C2) is
defined as follows:
(2.4)
This distance metric has the endearing characteristic of being fast to compute and relatively
meaningful physically. This will be applied to the projectile centroid position in each of the
four images. This involves four calculations, each comparing two members of the pattern
8-tuples. We then assume the distances in each position to be approximately additive with
respect to physical discrepancies.
Let Bk represent the pair (Ak, Ak+1), k odd, with the Ak arranged such that the pairs
Bk correspond to centroid positions in (row, column) format. Then we define the pattern
distance as follows:
8
dp(Px,PII ) =E ds[Bk(Px),Bk(PII )) (2.5)
k=l
kodd
where Bk(Px ) stands for the value of Bk in pattern Px , which in turn represents the pattern
constructed from an image foursome corresponding to a configuration, x, of D.
We will now select an appropriate imaging resolution. Assuming the object to be detected
and tracked is something like a soccer ball, we first establish the relationship among the
object's diameter, its detectable range, and the image resolution. In Figure 2.2 we depict
the perspective transform in one dimension. Assume a field of view 'IjJ, focal length f, image
185
plane physical extent s, and sampling interval ~ over the image plane. For an object of
diameter d tangent to the optic axis at a range (from the optical center) rand subtending
an angle equivalent to that of a single image sample, we can write:
(2.6)
~ = !... =:
N
2f tan
N
(!I!.)
2
(2.8)
With a field of view of 45°, N = 32 samples, and d = 1 unit, the range rmax ~ 39 units. So
a soccer ball about one 1/3 meter in diameter can be just isolated at a range of about 13
meters with only 32 X 32 resolution. Although the range is not spectacular, we will design
our system around this modest resolution. As the projectile approaches, the perspective
transform naturally ensures that our estimate of its position and velocity will improve as
its image covers a greater portion of the image plane.
Under these conditions, our patterns are vectors of length 8 with 32 choices in each com-
ponent. The pattern space is of size 328 ~ 1.1 X 10 12 , which is certainly large.
In the discussion which follows, we will have occasion to use the 1/3 meter object diameter
approximation often in computing estimates of the allowable image plane motion and in
counting the number of patterns to be stored. The reader should bear in mind that we
are assuming something like a soccer ball for a projectile. Obviously, if we knew the exact
diameter of the projectile we could compute range directly from image plane size through
the perspective transform using only a single camera. Again, this discussion is more an
assessment of feasibility than a detailed design exercise.
Given our definition of the pattern space, P, we next select a set of reference patterns,
R ~ P, to be stored together with the associated behavioral specifications. There are two
conditions imposed on the reference pattern selection:
Condition 1: The reference patterns should be drawn from configurations of the domain
of responsibility, D, in such a way that every "interesting" arrangement of this domain
186
r Optic AHis
Image Plane
Figure 2.2: Computing the range at which the projectile just occupies a single pixel.
produces an index pattern matching one of the reference patterns according to some
criterion. We use a threshold on the pattern distance. That is,
which collision is possible in the immediate future. In this sense, we refine our defi-
nition of the domain of responsibility. Any physical configuration of this space which
is known a priori to be non-threatening can be left unrepresented in the associative
memory. In effect, we are treating our "don't know" and "don't care" conditions
(ignorance and apathy) alike. If the system doesn't care about a given configuration
(because it cannot result in a collision) it is not necessary to recognize it.
For any y E ~-l(R), the set of all local x such that dp(Px , Py) ~ t is termed the
recognition neighborhood of y. Condition 1 states that the union of all the recognition
neighborhoods of the stored patterns must cover the domain of responsibility. It is
important to recall that the recognition neighborhood is a region of the domain of
responsibility and so is identified with physical quantities; it is not a neighborhood in
the abstract pattern space. For our problem, the physical quantities are the object
position and velocity vector, defining a six dimensional Euclidean space.
Condition 2: The mapping, ~, from the physical domain to the abstract pattern space
should be such that, if Px matches Py then x and y should be near one another in D.
That is, the mapping from the physical world through the sensing and pattern con-
struction process should produce similar patterns for similar physical configurations.
Mathematically:
The function r(.) is defined in the physical space as is the recognition neighborhood. In-
deed, we want to design the system so that rex) at each point just includes the recognition
neighborhood and as little else as possible. Then, of course, we want the union of the
recognition neighborhoods to cover the domain of responsibility. Figure 2.3 illustrates this
relationship. Two simplified (two dimensional) domains are depicted. On the left is the
domain of responsibility, which is actually a 6-dimensional real Euclidean space correspond-
ing to the physical quantities of position and velocity. On the right is the pattern space,
which is actually an 8-dimensional space (four row positions, four column positions) with
32 discrete values defined on each axis. In domain D is a configuration y corresponding to
a 6-dimensional vector (or a 6-tuple) of projectile position and velocity components. Sup-
pose this position in D is selected as a reference position. ~ maps this vector of physical
quantities onto the pattern space, P. Py = ~(y) is therefore stored as one of our reference
patterns, together with the associated robotic response. There is a region in pattern space
lying within a radius t (pattern distance) of the reference pattern Py • The inverse image of
this region is a region in D containing y which is the recognition neighborhood of y, and
which we denote as n(y). In a well designed system, this neighborhood should be simply
188
connected. Ideally, it is some sort of convex n-ball (n = 6 here) centered about y, but this
may be difficult to achieve (or verify) in some applications.
The accuracy criterion, r(.) then (indirectly) dictates the spacing of our reference patterns,
R, in the pattern space and the pattern distance threshold, t. That is, when we map the
set of matching patterns back onto the physical space, we want the resulting recognition
neighborhood to lie entirely within the accuracy limit:
(2.12)
Thus, we select our reference set and distance thresholds in pattern space to ensure the
accuracy we need with respect to physical space. If the recognition neighborhood is much
smaller than the region defined by r, the matching criterion will be overly demanding. We
will accurately determine the parameters of the physical environment (presumably more
accurately than necessary) when matches occur, but will be forced to store more vectors to
cover D, or risk a larger degree of vulnerability.
If the recognition neighborhood is larger than that defined by r, we will not achieve the
desired system accuracy. Matching an index pattern to one of the stored reference patterns
will not determine the physical parameters of the projectile's position and velocity to a
sufficient degree of accuracy. In the event that the recognition neighborhoods overlap, we
take the reference pattern closest to the index pattern and this may offer enough accuracy.
Despite this ameliorating feature, the computational burden is increased as a consequence
of the additional matches from which one must be selected. The system is most compu-
tationally efficient when one, and only one, reference pattern is found which matches the
input index pattern.
In our design, we adopt the position that our accuracy is limited by the coarse resolution
of our cameras s . The number and selection of reference patterns is determined by covering
the image foursome possibilities which imply impact with a projectile.
To get some feel for the size of the problem, we first consider the enormously impractical
brute force implementation in which all possible binary image foursomes having simply
connected blobs of approximate circular symmetry are encoded. At the farthest detection
range, the projectile subtends a single pixel. With no regard for the physics of the situation,
we have 32 2 valid positions for the projectile in each of four (independent) images, suggesting
that we have:
(2.13)
patterns to store just at this resolution, which would completely fill our pattern space.
It's obviously not worth pursuing this line of reasoning without introducing some physical
constraints.
8Indeed, with respect to motion our 32 x 32 images may not be enough in practice.
189
o p
{H I d (P ,P ) ( t)
P H Y
-I
n(yl = <1> {H I d (P ,P 1< t) P • <1>(y)
P H Y Y
Figure 2.3: The relationship among the physical domain, pattern space, the recognition
neighborhood, and the accuracy criterion.
Al: The cameras are aligned in epipolar geometry such that corresponding points in the
two images lie along a common raster scan line. This removes a degree of freedom in
positioning the projectile in the right image given its position in the left. The row
positions of corresponding image points must be the same (or very nearly so).
A2: The camera optical axes are parallel (this is related to Al). Under these conditions,
the disparity between the projectile position in the two images is directly proportional
to range and, since range is unipolar, the disparity is unipolar as well. This restricts
the position of the projectile along the right image epipolar raster to one side of its
position along the left image raster. Specifically, the disparity (left column position
minus right column position) must be positive; any point in the right image must lie
to the left of its correspondent's position in the left image.
A3: We are only concerned with inbound, threatening projectiles. Therefore, only pat-
terns derived from image foursomes which describe such events require recognition.
This restricts the polarity of the change in disparity with respect to time (between
successive image pairs).
190
A4: There is a limit on the magnitude of the inbound velocity. The projectile may not
approach arbitrarily quickly. Even in the event that the visual system could recog-
nize the threat, there will be mechanical inertia and other system time constants to
consider. Again borrowing a design principle from biological systems, it is neither nec-
essary nor desirable to acquire information from the sensory system which cannot be
used due to other, say ambulatory, limitations. The inbound velocity limit establishes
a limit on the magnitude of the rate of change of disparity with respect to time.
A5: The visual system will not provide updates once the projectile covers more than one-
fourth ofthe image plane(s). At that point, collision is imminent, and the current best
estimate of the impact parameters is made available to the tactile sensory subsystem
and the robot controllers.
A6: The fields of view of the two cameras do not completely overlap (obviously). We will
assume that all threats are inbound such that they appear in both cameras. Obviously,
a projectile could approach in such a manner as to be visible in one camera only, but
we cannot perform triangulation ranging in that instance anyway. The domain of
responsibility only incorporates that volume of space visible to both cameras.
To decompose the counting problem, we will partition the domain of responsibility with
respect to range. The range quantization will be inferred by the size ofthe imaged projectile.
We will first count the number of patterns to be stored when the projectile is at a range such
that it occupies a single pixel. Next we will consider the number of patterns necessary to
describe the situation when the projectile has a diameter of two pixels, and so on. This may
not exhaust the necessary pattern set, but should provide us with a reasonable estimate
of the size of R. To make the discussion easier to follow, we will use the term "n pixel
range" to mean that portion of the domain of responsibility for which the imaged projectile
appears with a diameter of about n pixels.
Figure 2.4 depicts a side view of the domain of responsibility (or, rather, the volume of
physical space it represents). The cameras are positioned such that the lower edge of the
field of view is parallel with the level ground plane. It is easy to see from the perspective
transform (recall the maximum range calculation) that the range at which the projectile
just subtends n pixels is given by:
Nd
Tn = 2n tan(~) (2.14)
SO that
Tnt = n2 (2.15)
Tn2 nl
From this relationship we observe the nature of the n-pixel range(s) as shown in the
diagram. As illustrated there, region Tl covers that range interval for which the projectile
covers at least a single pixel, but less than two full pixels, and so on. Therefore, the outer
191
h
Ground PIDne
Figure 2.4: Establishing physical limits on the vertical image motion of the projectile cen-
troid. Not drawn to scale.
limit of Tl is Tmax. We will refer to the Tn plane as the plane normal to the optic axis at
the outer limit of region Tn, SO the Tl plane is at a distance Tmax and Tn = Tmax/n.
To impose the motion constraints, we first observe that any inbound projectile which is
expected to collide with the robot must be (eventually) downward moving in the image
plane(s). Even if an object is launched on an upward trajectory which is threatening, we
assume that condition can be detected after the apex9 • Thus, we may restrict our reference
patterns to those for which the object is non ascending in both cameras. Given a pair
of centroid positions for images h(to),IR(to), the centroids in h(tI),IR(tI) should be no
higher.
The next limit to be estimated is the rate of change of centroid position. This is determined
by the speed of the projectile and its local trajectory. From Figurefig:incoming we see that
the fastest image plane motion for a given physical speed results when the rate of descent is
the steepest possible. Again, we only concern ourselves with trajectories which can result in
90f course, the system would certainly be more intelligent if it could infer collision while a projectile is
still upward bound, but we assume that it is rare that the projectile will be upward bound within D; i.e.,
it is on its downward arc before the robot sees it.
192
impact. For Tl (the 1-pixel range) that trajectory is denoted v. Obviously, as we approach
the cameras, the steepest possible path gets steeper, so the motion limit between successive
frames increases.
Careful computation of the limit as a function of range requires that we specify some of
the parameters of the system. Although our objective is a feasibility analysis rather than
a detailed design, we will specify certain parameters. To a reasonable extent, we will
try to develop general expressions. When necessary or practical, we assume the following
specifications:
• The image frame rate is 30 frames/sec. This corresponds to conventional video, ne-
glecting the 2:1 interleaved scan.
• The maximum projectile speed is about 20 meter/sec. This correponds roughly to
the speeds one might encounter in a foot ball or soccer game.
• The robot is 2 meters tall. More precisely, the camera lens centers are at h = 2 meters
above the ground plane.
• The closest approach for which we expect to have a chance to react corresponds to
T16, at which point the projectile occupies one-fourth of the image plane.
Figure 2.5 illustrates the extremal conditions for a given range limit. Tn is the distance
along the optic axis normal to the plane over which the projectile just subtends an n-pixel
diameter. The vector v is the trajectory of interest. We are interested in the speed of the
projection of v onto the Tn plane and then the perspective projection of that component of
motion onto the image plane.
a = tan - 1 [ex + h]
---;:r- (2.16)
where exis the vertical distance from the lower limit of the field of view to the upper limit
at range Tn, h is the height of the camera lens centers above the ground plane, and T~ is the
horizontal distance from the lens centers to the intersection of the Tn plane and the upper
limit of the field of view.
Next we notice:
T~ = Tx cos 1/J (2.17)
193
Figure 2.5: Computing the maximum image plane speed for a given range region.
where, as before, t/J is the angle of view, and Tx is the distance along the uppermost ray in
the field of view to the Tn plane. Since the angle between this ray and the optic axis is t/J/2,
we have:
(2.18)
By setting t/J = 45°, the T x , ex, T~ triangle is both right and isoceles, so we can see:
(2.19)
We also notice:
And the magnitude of the projection of v onto the Tn plane is, with t/J = 7:
Iv;' I = Ivlcos"Y (2.21)
= IVlcos{511" -tan- 1 [TnSeC(i)cos(-V+h]} (2.22)
8 Tnsec(i)cos(7)
with Tn = Tmax/n, as above.
194
The perspective transform then lets us write the image plane speed in pixels per second,
according to our earlier results, as:
with the real space velocity expressed in meters per second and the image plane velocity
expressed in pixels per second. This is because we arranged Tn to correspond to the range
at which a 1/3 meter diameter object spans 1 pixel. The maximum distance the projectile
centroid can then move per frame, which will (partially) determine the pattern density is
then easily seen to be:
1vp_1_- IViI
30 (2.24)
Figure 2.6 plots this relationship as image plane speed in pixels per frame vs. the ap-
proximate range in meters. Perhaps more interesting from a pattern counting standpoint,
however, is the curve plotted in Figure 2.7 which depicts the same relationship, except im-
age plane speed is normalized to object diameters and the range is plotted as the integer n
corresponding to object diameter units (which also reverses the polarity of the x-axis). The
curve is clearly asymptotic to some final value, indicating that in terms of object diameters
the rate of translation in the image plane saturates as the projectile gets very close. It is
easy to see, since limn_oo I = 11"/8, that this curve is asymptotic to about 1.85 diameters
per frame. We naturally quantize D (and, hence P) in terms of the projectile diameter as
seen in the image. By attaching an estimate of the object diameter to the pattern vector,
we can scale our required accuracy accordingly, and this limit makes this approach very
convenient. This, in turn, will make estimating the number of pattern vectors to be stored
for a given range region relatively easy.
To a first approximation, the limit on horizontal image plane motion from frame to frame
is the same as its vertical limit, except that the motion can be in either direction. However,
once motion is established in one direction, we expect it to continue more or less consistently.
This assumption is somewhat pessimistic, since the robot is unlikely to be as wide as it is
tall. Therefore, the lateral motion parameters of concern lie in a smaller range than do the
vertical.
The next limit on the image plane position and motion to be considered is that of the
disparity in centroid position between the members of the stereo pair. Under our simple
camera geometry assumption we can write:
VI JJ.1
r
Vr JJ.1
r
where r is the range, b is the x-baseline, and the cameras are perfectly aligned in V. The
world coordinates (for this calculation) are defined relative to the left camera optic axis and
with x- and v-axes aligned with the horizontal and vertical dimensions, respectively, of
the left image. The right camera optic axis lies at (b,O) in this coordinate system.
195
30 ~--'-----~----~----~----'-----'-----~I
25 I .,
1\ I I
10 I
I :.~ I
5'-1
o
o 2 4 6 8 10 12 14
Range (meters)
Figure 2.6: Maximum downward image plane speed as a function of projectile range.
With the x-disparity denoted as h and defined as left image position minus right image
position (and noting that the y-disparity is zero), we have
which produces a constraint on the allowable position of the projectile centroid as seen in
the right image, given its location in the left.
Additionally, since we have a limit on the maximum velocity of the projectile, this infers
a limit on the maximum rate of change of the x-disparity as a function of the projectile
range.
ah a [ bf ] -bf .
at = at r(t) = r2(t) r(t) (2.26)
with 1'(t) the rate of change of range in, say, meters per second. So with b, f, r expressed in
meters this expression yields the rate of change of disparity in meters per second, which is
not especially convenient. Since we would rather specify the angle of view and number of
image plane samples than the precise focal length, and since we wish to deal in spatial units
of pixels, we use the same set of substitutions used above in calculating maximum range to
196
1.8
1.6 I I
I i ..... 1---1 ~t-
1.4
.---'
./ I
I ~
1.2 -
Diameters per
!I
J---1,
I
Frame 0.8
0.6 Ji
i I
0.4
, I
! ,
i I
0.2
o i I
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Object Diameter (pixels)
Figure 2.7: Normalized object motion versus normalized range in units of object diameter
in pixels.
(2.28)
for the rate of disparity change in pixels per second. Of course, we can always normalize
the range into object diameter units as above, and this is again convenient.
Plotting these relationships, we gain additional insight into the pattern selection and count-
ing problem. Figure 2.8 plots the disparity as a function of the range region, measured in
object diameters as usual. We see that the disparity is directly proportional (and for our
parameters, the constant of proportionality is just below unity) to the object diameter in
pixels. This is the sort of tight physical constraint we desire 1o .
IOThis relationship is a hyperbola in pixels vs. range in meters. The simplicity of this plot over the hyperbolic
is the motivation for working in object diameters.
197
Disparity
(pixels)
2 3 4 5 Ei 7 8 9 10 11 12 13 14 15 16
Object Diameter (pixels)
Additionally, in Figure 2.9 we plot the maximum rate of disparity change in pixels per frame
as a function of range. The maximum rate is computed by simply assuming the projectile
is moving precisely parallel to the optic axes at 20 meters per second. Again, it is more
useful from a pattern counting standpoint to consider the relationship in terms of object
diameters, and this depicted in Figure 2.10. The rate of disparity change measured this
way increases linearly with object diameter as the projectile approaches, with a constant of
proportionality of about 0.05. This, of course, is not surprising.
Accumcy Considemtions
Now that we have established limits on the physical motion of the projectile which can
be used to limit the memory requirements, we must consider the demands of accuracy.
There are two aspects to this question: accuracy of object position and accuracy of object
trajectory. The reader should bear in mind that the robot's response to the applied force
will not be determined by the visual input alone, nor even primarily. The purpose of the
visual system is to prepare the robot's tactile sensors, controllers, and so on either to elude
the collision, if possible, or to respond to an unavoidable collision. The detailed impact data
necessary for collision response will originate in the tactile sensor array, not in the visual
processing. Thus, pinpoint accuracy is not a requisite for the visual sensor.
198
14
I I
f}+
12
10
F~T
---~
Disparity Change I
(pixels/frame)
6
I i
,
J
I
I
I
I I
4
~w
I
2 I
I I , I
L
I·
I I'll I
oL ---~ - - -
o 2 4 6 8 10 12 14
Range (meters)
Figure 2.9: Frame to frame disparity change in pixels as a function of true range to the
projectile.
Clearly, accuracy becomes more important as the projectile approaches and collision is
imminent. The perspective transform assists us in this regard since each pixel subtends a
progressively smaller area of space as the range is reduced. But in addition to this effect,
in any given range region, we could elect to encode only a subset of the possible centroid
position 4-tuples for the reference set and set the matching pattern distance threshold
higher accordingly. As the object approaches, the field of view is gradually filled and the
likelihood of impact grows more certain as the possible trajectory is restricted. To a first
approximation, we will assume that we can use the advantage of the perspective transform
to let us represent the physical situation more coarsely (in image terms) as the object
approaches.
Counting the Reference Pattern Set
The foregoing set of plots can now be used to design the reference pattern set. Although
the detailed design of this set lies beyond the scope of this discussion, we will use these
plots to build an estimate of both the size of the pattern set and to suggest a mechanism for
inducing an effective topological structure on the memory to improve its efficiency. We will
assume that the object diameter is estimated from the average number of pixels it occupies
over the four images (roughly, the square root) and attached as part of the pattern. This
199
0.8
0.7 /
0.6 /
0.5 /
Disparity Change /
/'
(dia/frame) 0.4
0.3
0.2 /
0.1 /
~
o
o 2 4 6 8 10 12 14 16
Object Diameter (pixels)
constrains the operating point along the various plots. We will further assume, to simplify
matters, that the range of possible projectile sizes and diameter estimation accuracy is such
that our position on these plots (in range expressed as object diameters) is known to within
±2 pixels.
By using the perspective transform to our advantage, we will store representative patterns
for non-overlapping projectile image positions. We begin counting by noting that, over
range region r n , there are:
32
n
choices for the column position of the projectile in h(to) and a like number for its row
position l l .
Once the h(to) image position is specified, the physical constraints on disparity (Figure 2.8)
leave us with only 3 (roughly) choices for the projectile position in IR(tO)' This is because
the disparity (for a projectile of about 1/3 meter diameter) is going to be about equal to
the object diameter in pixels. Since this information is part of the pattern, we have some
idea as to the range to the projectile, and so we have some idea of the expected disparity.
11 Recallthat we denote the four images in the foursome by h(tO),lR(tO),h(t,),lR(tl) to signify left and
right images at sample times to, t 1 •
200
Also, the patterns only represent positions to an accuracy of a diameter. Of course, if more
variety exists in our set of possible projectiles, more options will have to be accommodated
in the reference set.
With the first two images of the foursome specified, we now turn to the limits on object
motion to constrain the position in the second pair of the foursome. From Figure 2.7, we
see that the maximum vertical motion of the projectile will be less than two diameters.
Laterally, we will make the assumption that, since the robot is taller than it is wide, that
the next position will lie within one diameter to either side. Furthermore, we note that,
under the maximum velocity constraint, the projectile motion cannot attain its extreme
horizontal and vertical values simultaneously. Therefore, we conclude that given a position
in 1£(to), there are (in units of diameters) 7 possibilities for the object position in 1£(t1).
These are the current position and its neighbors to either side, the position just below the
current position and its neighbors td either side, and the position two diameters below the
current position. Motion which moves the imaged projectile out of this neighborhood will
not result in collision.
Finally, once the object position in 1£(td is specified, the position in I R(tl) is constrained
in precisely the same manner as IR(tO) is with respect to 1£(t o), giving 3 possibilities. Thus,
the total reference pattern count is approximately:
16 32 32
JRJ ~ I:-x-x3x7x3 (2.29)
n=l n n
1
L 2"
16
6.5 X 10 4 (2.30)
n
n=l
1.02 X 10 5 (2.31 )
We have about 100,000 patterns to store. With five bits to specify the centroid location
in each dimension of each of the four images plus four bits to specify an estimate of the
projectile diameter in the image, each pattern consumes 44 bits. Thus a total pattern
memory capacity in the range of 4.4 Mbits (or slightly more than 1/2 MByte) is needed to
store the reference pattern set. This is well within current capabilities, even at high speed.
With each reference pattern, we will also have to store an encoded version of the robot's
response, approximate point of impact, and approximate time of impact. The point of
impact estimate will first be to the segment of the robot; 2 bits suffice to represent that
information. The time of impact (more precisely, time until impact) can be reliably resolved
no finer than the video frame rate, we expect. Although we haven't specified how slow the
projectile may go, 64 frames of video gives just over two seconds warning, which should be
sufficient. This requires another 6 bits.
The response options are limited by the precision with which the impact force vector can
be estimated. Of course, we at least have to specify the .lNoidance, retreat, resistance, or
201
no-action option. But, given any of the first three, we have to roughly specify the means of
doing so, with the details provided by the tactile sensor and processor. We estimate that
12 bits should provide sufficient flexibility, probably overmatching our impact parameter
estimation capability, anyway. This results in a convenient 64-bit total word length (44
for the reference pattern plus 20 for the specified action) and a total associative memory
capacity requirement of about 6.4 Mbits, or 800 KBytes.
To summarize, an associative memory forms the current best estimate of the time of impact,
point of impact, and the velocity of the projectile at impact time in the inertial coordinate
system. The input to the associative memory is a nine tuple consisting of a four tuple of
centroids and a crude estimate of the diameter of the projectile - all contained in a 44 bit
word. The output of the associative memory is a 20 bit word: 2 bits on strategy selection,
2 bits to specify the segment of impact, 6 bits for time until inpact, with the remaining 10
bits identifying the vector location of impact on the given segment and the impact velocity
vector.
Finally, we offer a few comments concerning topological structuring. Since the image four-
somes are built from overlapping pairs (the second pair of one foursome is the first pair
of the next) we can immediately restrict our attention to that portion of the memory con-
taining reference patterns whose "heads" correspond, more or less, to the current "tail."
Additionally, we can restrict the search within this region to the subregion containing those
patterns whose "tails" are possible, given the same motion and disparity constraints derived
above. Thus, the memory should be organized to take advantage of this natural structure.
This is an area of ongoing study, as are the crucial accuracy issues.
For lack of space, we do not consider the collision itself. Some issues related to robotic
collision are discussed in [18].
In Figure 3.1 we illustrate the basic coordinate frame relationships we envision for the robot.
........."... .,.
202
nbo\..rment
Figure 3.1: The robot is anchored at the origin of the inertial frame, O. B is a point in the
inertial frame. Bl is its image in camera (eye) 1. Dl is a vector from the center of gravity
of the head, CG h , to the origin of the image frame of eye 1. The image frame of the second
eye is not shown (segments not drawn to scale).
The surface of the robot must be covered with sensors that collectively identify the location
of the force, its direction relative to the appropriate segment, and its magnitude.
From simpler tactile sensors with additional torque, position, and stress and strain sensors
we can estimate the magnitude, direction, and location of the disturbance force. In this
chapter we limit ourselves to the first approach, shifting the burden from the computing
machine to the sensor, although sensory systems of the type we envision do not yet exist
[19]. A sufficiently dense uniform grid of pressure detecting sensors is assumed to exist over
the surface of each segment of the robot, embedded in some skin-like viscoelastic material.
For each segment, an associative memory identifies the three segment-centered coordinates
203
of every point on the surface in response to excitation of the sensor elements by applied
pressure.
A subsystem is assumed that measures the magnitude and local direction of the impinging
force in that segment's coordinate system. It is worth noting that the neural processes
that supply this information in the central nervous system of living systems have not been
adequately identified nor have the processes been confirmed. Similarly artificial skin and
robots with tactile information processing capabilities do not yet exist to handle situations
of this complexity level. Consequently any mechanism discussed here is at best a theoretical
prototype. Additional uses of tactile information in exploration and shape perception are
found in [20,21]. The processing discussed here is shown schematically in Figure 3.2 and
divides naturally into two parts:
1. The set of excited sensors is treated as a three dimensional pattern and is reduced
to a skeleton, i.e., a sequence of sensors that lie parallel to the impinging force by a
lateral inhibition or nonmaximum suppression operation.
2. From the addresses of the skeletal sequence, the latter three components of impinging
force are computed in the segment's coordinate system.
3.3 TRANSFORMATIONS
(3.1)
Finally let Xi be the coordinates of the sensor in the inertial coordinate system
where CG.( 8) is the location of the center of gravity of the segment in the inertial coordinate
system and A.(8.) is the 3 X 3 orthogonal transformation from the segment of interest to the
inertial coordinate system. The 3-vector 8. describes the three Euler angles of the segment
[22,23]. The vector 8 in our notation represents the totality of all the degrees of freedom -
Euler angles of the robot. However, CG.(8), in general, depends only on a subset of these
angles, i.e., those of all the segments that are below the segment of interest.
When a vector is given by its components in the local system Fe, its components in the
inertial coordinate system are given by
Fi = A.(8 s )T Fe (3.3)
If the local coordinate system is the same as the segment coordinate system, the tranfor-
mation T is the identity matrix.
205
4. Control Requirements
There are two major requirements that must be specified prior to the robot's engagement
in resistance or retreat.
1. A subset of the robot states must be relegated [24,25) to the task of resistance or
retreat. The robot may be engaged in other tasks, and it is desirable not to interrupt
them.
2. The controller structure must be known, i.e., a topology of the feed forward and
feedback mechanisms must be selected.
We will not attempt to define any criteria or conditions for the selection of the subset of
states to which resistance or retreat is relegated. This selection depends on other tasks the
robot is involved in, and its future tasks and objectives, and is a function of higher levels
of intelligence and expertise of the robot. vVe assume the subset is a priori selected. One
underlying implication of relegation of control is that, due to higher level objectives, all
states are well specified so no redundancy or uncertainty can exist in the maneuver to be
undertaken.
For the controller structure we select heuristically combined feed forward and feedback
mechanisms. The feed forward component consists of two parts: direct actuator input as
reference input, desired reference state, and/or gain adjustment for the feedback loop. The
feedback component consists of state feedback with variable gains to be set by the feed
forward mechanism. This structure is schematically shown in Figure 4.1. The main charac-
teristic of this design is the flexibility of control. Under certain circumstances the feedback
mechanism with the feed forward gain maybe sufficient. For other cases the feed forward
may be sufficient. Under other circumstances the two components can act together. The
forward gain system G 1 adjusts the eigenvalues of the closed loop system in the vicinity
of an operating point. Eigenvalues with laf!~e negative real parts correspond to high stiff-
ness in the corresponding subspace. Eigenvalues having small negative real parts provide
compliance in the direction of the corresponding subspace [26). Mason and Salisbury have
proposed a similar mechanism for controllin!~ a finger [27).
A mechanism that is not considered here is to dynamically or magnetically hold the actu-
ators and lock them in a particular position. This is an effective mechanism for making a
system very rigid and stiff. Natural systems apparently use an analogous mechanism for
resisting motion by coactivation of systems of protagonist-antagonist muscles in such a way
that the muscles are very taut and behave like metal cables. They inhibit relative motion
between the limb segments.
206
a.m .....t - - - - - ,
0,
Figure 4.1: Topology of the feedback structure. State feedback with forward gain G},
forward actuator gain adjustment G 2 , direct forward actuator input, and desired reference
state input.
With these preliminaries suppose a force F of constant magnitude and direction is applied
to point A of the segment n. Suppose force F is expressed in the inertial coordinate system
and point f is specified by its vector VI in the local coordinate system of segment n. The
coordinates of point f in the inertial system are given by
(4.1)
IT vector 0 is disturbed by .6.0
8L
dL= -d0 (4.2)
80
The incremental work of F is given by
8L T
dw =< dL, F >= d0 T - - F
80
dw = 8L T F (4.3)
d0 80
Equation (4.3) defines the influence of F on the dynamics of the robot. The system actuators
must counteract 8w/80 in the dynamics. One way to do this is to relegate the counteraction
as the sole function of a particular set of inputs [24]. Alternatively, pseudoinverse methods
[28] may be used to distribute this effort among all the inputs.
207
dL = 8L0 (4.4)
dt 80
This equation partially defines the incremental constraints on 0. Traditionally this equation
has been solved by pseudoinverse methods, and the retreat is relegated to all the position
states [28]. With state relegation, one may relegate the retreat action to three specific angles
of the robot. On the other hand, the situation allows one to define additional constraints to
maintain stability by keeping the projection of the center of gravity vector under the support
surface or keep the head segments containing the vision system stationary or provide specific
synergies among the position states to simplify the decision of the controller.
As an example we consider a four segment planar robot anchored at the origin, with four
degrees of freedom 0 T = (81) 82 , 83 , 84 ) and four moment of force actuators at the joints
UT = (Ul, U2, U3, U4) [29]. The equations of motion for this robot can be symbolically
written in a standard robotic notation
where J(0)0 contains inertial terms, B(0)0 2 is the centrifugal vector, G(0)g is the grav-
itational vector (g=9.8 m/s-s) and
E~ U-~ -~ -~ 1 (5.2)
Robot variables and parameters are defined in Figure 5.1. The human-like physical param-
eters of this robot are given in Table 5.1. We will consider a case of resistance and a case
of retreat for the four degree of freedom planar biped.
208
n~-~--_r1......,CC,._I __ J,
......04--...1.,;.;.:"...----+.;...._.
UI
segment m 1 k j
number (kg) (m) (m) (kg-m-m)
1 7.770 .560 .260 .170
2 13.244 .375 .161 .130
3 40.628 .662 .331 1.25
4 8.358 1.000 .450 .585
The resistance strategy is selected when projectile collision can not be avoided and insuf-
ficient time remains for retreat. A projectile, with some impact velocity, which directly
strikes the robot will rapidly acquire zero velocity in a short time interval. The robot
will experience a disturbance force during this short time which can be approximated as a
constant force F.
The resistance strategy selected here is to hold a constant position. The desired robotic
response (superscript d is for desired and indicates a feed forward term in the controller) is
e e
e d equal a constant (which will be the value of e at impact) and d = d = 0
209
We devise a rigorous test for the resistance strategy by applying a steady force F to the
robot and not just a transient force. The dynamics are affected according to the work done
by F
.. •2 {JLT
J(0)0 + B(0)0 + G(0)g = EU + -a0F (5.3)
The incremental eigenvalues should naturally be chosen with knowledge of the time con-
stants and power capabilty of the DC motors, mechanical strength of the robot's struc-
ture;etc. The feedbacks are a priori calculated, somewhat arbitrarily, to set all eight eigen-
values of the four planar segments of the linearized system at -3. The corresponding state
feedback matrix K is given in Table 5.2 where K feeds back state pertubations
~U = J((~0, ~0) (5.5)
The retreat strategy is chosen when a collision is not avoidable by evasive action but there is
some time to ameliorate the effect on the robot of a projectile impact. The retreat strategy
210
-'W-
-
Figure 5.2: Robotic resistance to a projectile impact at joint 3.
--.....-....
•••
...._. ..
•••
·~:~.~~.~.4~-.~.~.-L~.~.~~.~.~~~~~.~4~ • .•. .t_••.
Figure 5.3: Resistance simulation - actual and desired angles
chosen here is to make the estimated point of impact acquire the estimated projectile velocity
in the time remaining prior to impact. This strategy has the desireable property that the
sudden change in projectile velocity due to striking a stationary robot does not occur, which
in turn yields a small impact force. Subsequent to impact, the retreat strategy is to return
211
the robot to some stationary position by bringing all angular velocities 0 to zero. The
estimated point of impact will be at joint 3 as shown in Figure 5.4 We relegate the retreat
••
strategy to the lower three angles 9b 92 , 93 and chose that 84 is zero( the head remains
stationary). The estimated velocity vector of the projectile is assumed to remain constant
at dL/dt = (.2,ol meters per second. From the given constant retreat velocity, dL/dt, the
minimum norm of angular velocities (B·t, e~,eg) is computed and et = 0 is appended to
e
give 0 d • The nomimal d is obtained directly as d(0 d )/dt.
Feed forward U d is obtain from the inverse dynamics, Equation (5.1), evaluated on 0 d ,ed ,
and 0.
The poles of the closed loop are chosen all at -10 resulting in the state feedback matrix of
Table 5.3 where K feeds back velocity pertubations l:1U = K l:10. The results of digital
computer simulations of this maneuver are given in Figure 5.5 which shows the angular
velocities WI = 8b W2 = 82 , W3 = 83 , and W4 = 84 of the robot in response to the retreat
command and Figure 5.6 which shows the actual and desired translational velocity of the
estimated impact point in both the horizontal and vertical direction.
212
....
..• - •• •• I • I •
- - - - - - .......... ..-.c,
••
••
I' I
••
,
•• I •
- _ ...,... _ _ _ _ "'".-....cl "' ••
• • ••
•I• • •:•••
••
II
•• f-
••
•:~.
•
............
.
~
.. I. I I I • • .t-
YfI'It_. I •
•• •• ••._'1&('I •
••
••tr~~;;~~~~~~~~A;;'~'~~~~~~"~'~~~
,- .
•• ••
...
.. ••
• J
I
;'.f-
:: ....
......
• - ....- - - - - -...---------·1
~
·
.....
.. ..
·
•• •...._.I' "' •• -.
..... I
.....•."' "'
I I
·
••
• I
Figure 5.6: Retreat simulation - actual and desired estimated impact point velocities
213
We have provided a rudimentary method for resistance and retreat of robots when colli-
sion or contact are unavoidable. The method requires a vision system for velocity, force,
and point of contact estimates. A uniform distribution of pressure sensors on the sur-
face of the robot, an associative memory, a nonmaximum suppression technique, and some
transformations are needed for force sensing. We have provided sufficient detail so that a
microprocessor implementation of all the above can easily be envisioned. Due to lack of
space the actual implementation is not attempted and is left for the reader.
The controller structure is to some extent standard. We used input relegation to counteract
the external disturbance force and provide resistance, as opposed to impedance control by
changing the feedback gains. We used state relegation for avoidance as opposed to general
pseudoinverse methods.
The digital computer simulations illustrate how these methods work and that both the
resistance and retreat strategies seem to be feasible. Much remains to be done on these issues
and this chapter should be considered as a motivational discussion and as an introduction
to the subject.
7. References
[1] L. A. Loeff and A. H. Soni, "An algorithm for computer guidance of a manipulator in
between obstacles," Journal of Engineering for Industry, vol. 97, pp. 836-843, 1975.
[2] T. Lozano--Perez, "Automatic planning of manipulator transfer movements," IEEE
Transactions on Systems, Man, and Cybernetics, vol. 11, pp. 681-689, 1981.
[3] R. A. Brooks, "Planning collision-tree motions for pick-and-place operations," Inter-
national Journal of Robotics Research, vol. 2, pp. 19-44, 1983.
[4] O. Khatib, "Real-time obstacle avoidance for manipulators and mobile robots," Inter-
national Journal of Robotics Research, vol. 5, pp. 90-98, 1986.
[5] N. Hogan, "Impedance control: An approach to manipulation," ASME Journal of
Dynamic Systems, Measurment, and Control, vol. 107, pp. 1-24, 1985.
[6] M. R. Cutkosky and 1. Kao, "Computing and controlling the compliance of a robotic
hand," IEEE Transactions on Robotics and Automation, vol. 5, pp. 151-165,1989.
[7] A. Pugh, Ed., Robot Sensors, Vol. 2, Tactile and Non- Vision. United Kingdom:
Springer-Verlag, 1986.
214
[8] D. Siegel, I. Garabieta, and J. M. Hollerbach, "An integrated tactile and thermal sen-
sor ," in Proceedings of the IEEE International Conference on Robotics and Automation,
pp. 1286-1291, 1986.
[9] Y. F. Zheng, "Integration of multiple sensors into a robotic system and its performance
evaluation," IEEE Transactions on Robotics and Automation, vol. 5, pp. 658-669,1989.
[10] M. A. Fischler and O. Firschein, Intelligence: The Eye, the Brain, and the Computer.
Reading, MA: Addison-Wesley, 1987.
[11] S. T. Barnard and M. A. Fischler, "Computational stereo," ACM Computing Surveys,
vol. 14, pp. 553-572, December 1982.
[12] A. C. Kak, "Depth perception for robots," in Handbook of Industrial Robotics, S. Nof,
Ed., pp. 272-319, New York: John Wiley, 1986.
[13] K. L. Boyer and A. C. Kak, "Structural stereopsis ior 3-d vision," IEEE Transactions
on Pattern Analysis and Machine Intelligence, vol. 10, pp. 144-166, March 1988.
[14] N. Ayache and B. Faverjon, "Efficient registration of stereo images by matching graph
descriptions of edge segments," International Journal of Computer Vision, vol. 1,
pp. 107-131, 1987.
[15] R. Horaud and T. Skirdas, "Stereo correspondence through feature grouping and maxi-
mal cliques," IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 11,
no. 11, pp. 1168-1180, November 1989.
[16] D. H. Ballard and A. Ozcandarli, "Eye fixation and early vision: kinetic depth," in
Proceedings Second International Conference on Computer Vision, pp. 524-531, 1988.
[17] R. C. Nelson, "Visual homing using an associative memory," in Proceedings of the
DARPA Image Understanding Workshop, pp. 245-262, 1989.
[18] Y. F. Zheng and H. Hemami, "Mathematical modeling of a robot collision with its
environment," Journal of Robotic Systems, vol. 2, pp. 289-307, 1985.
[19] J. Webster, Tactile Sensors for Robotics and Medzcine. New York: John Wiley and
Sons, 1988.
[20] H. Hemami and R. E. Goddard, "Recognition of geometric shape by a robotic system,"
Journal of Robotic Systems, vol. 4, pp. 237-257, 1987.
[21] H. Hemami, J. Bay, and R. Goddard, "A conceptual framework for tactually guided
exploration and shape perception," IEEE Transactions on Biomedical Engineering,
vol. 35, pp. 99-109, 1988.
[22] K. S. Fu, R. C. Gonzalez, and C. S. Lee, Robotics. New York: McGraw Hill Book Co.,
1987.
[23] H. Hemami, "A state space model for interconnected rigid bodies," IEEE Transactions
on Automatic Control, vol. 27, pp. 376-382, 1982.
215
1. INTRODUCTION
control strategies is a key point - it has been verified that the difficulty of generating
accurate fine motions for assembly, is still one of the most serious factors precluding
flexible manufacturing.
The sensory information described until now is mainly concerned with the
specification and execution of isolated pieces of specialized motions. The degree of
autonomy of a system is related with its capacity to select the suitable specialized
motion along the time according to the state of the task under execution. That is, a
system to be autonomous needs a module for planning sensory strategies and for
planning appropriate recovery actions once an error state is determined [1,2]. As an
example, this planning module should provide solutions for the following questions:
When should a vision system be used to cope with an uncertain object position? What
sensors to use to decide for the end of an action? What sensors to test to decide for the
success/failure of an action? What sensors to scan continuously in order to minimize,
or prevent, secondary effects due to an error or a failure? How to process sensory data
to extract oustanding information?
This paper is concerned with the development of a robotic system which aims at
enabling the evaluation of sensory integration techniques as well as the evaluation of
real-time path control strategies. Most commercial robots, as in the case of the six-axis
PUMA 560, do not have enough flexibility to allow an efficient use of sensory
information. For that, the use of an external processing system is needed. For
connecting an external system to a PUMA controller there are several possible
configurations [3]. One of them is to use both the channels provided by the VAL-II
system [4], the real-time path control and the supervisory control channels. Despite the
limitations of such a configuration, it provides enough power and flexibility for many
applications. This is the configuration adopted in our robotic system approach, shown
in Fig.I. The robotic system exhibits an hierarchical structure and is based on a
commercial distributed control network, the Bitbus serial control bus [5].
Presently the main devices of the robotic cell are: a six-axis manipulator PUMA
560 equipped with a wrist force sensor, two CCD cameras and a two finger gripper
with proximity and tactile sensors; a conveyor belt equipped with a set of devices and
a rotary table with pneumatic indexing. There are several sensors and actuators
associated with these devices which in the case of the conveyor belt are the brake and
the motor speed controller, sensors to monitor the motor speed and miniature optical
devices to detect objects on the conveyor. The gripper is pneumatically controlled by
using a pneumatic proportional valve which allows continuous variation of the force
applied to the handling objects. It is equipped with an optical sensor, to detect the
presence of objects between the fingers, tactile sensors and ultrasonic ranging sensors.
The actuators and sensing devices of the conveyor, indexing table and gripper are
connected to the Bitbus serial network through a microcontroller-based modular
system. A set of boards 'corresponding to a variety of functions has been implemented
around this modular system with which is possible to accomplish diverse control and
monitoring applications. The vision system is based on a host computer, a frame
grabber and several image processing units. The frame grabber can receive images
219
'-
SUPERVISOR
BITBUS
t
L BITBUS_
Wires (2.4Ml>'1)
Main oct
1
BITBUSSIa.. I
I
BITBUSSta... I
1
BITBUSSIa", I BITBUSSlave I
LOCAL DDCMP IMAGE LOCAL
PROCESSING
-
SUPERVISOR INTERFACE CONTROLLER
UNIT L..- SYSTEM '-
OIL,
RS 232
I DDCMP
~~ Polltlon.r '"
--1----
nd~_ .. ____ Proto,eol
Coauyor
BI lB •• MalOr "
L Ink. Actuatores
ALTER
Gripper ControUer
Ultrasonic System
Port
2 CCD
carner••
I
Wrist force Sensor
r
~~
Tactile Sensor
fa
PUMA
Controller
( )
J
Il
from up to four cameras with a resolution of 512x512 pixels and has a programmable
pseudo-colour output. The image processing units, based on a very fast digital signal
processor, carry out the feature extraction operations on the images obtained by the
frame grabber. Several image processing units can be connected in a parallel-processor
archi tecture.
(ii) To allow the access to the cell resources from other computational systems
working at a higher level. At this level it is expected to investigate problems such as
three-dimensional vision integration, path planning, domain modelling, grasp
planning, etc.
In order to achieve the first purpose, the control system was implemented
following a distributed model based on a high-speed short-message channel and using
slaves with a high processing capacity. The communication between the Supervisor
and the distributed slave systems uses a serial network in a bus topology (the Bitbus).
This network has enough attributes which lead to acttractive solutions for a wide
spectrum of local control applications, particularly at the sensor and actuator level. It
exhibits a good performance in handling short messages, namely allowing high order
rates of information transmission, up to 2.4 Mb/s in hal-duplex, synchronous mode.
For the second purpose we have connected the Supervisor to an Ethernet on which we
have Sun workstations.
In functional terms we can divide the control system in three parts, the planning
processing system at the highest level, a logic branching control structure at the
intermediate level and a real-time continuous controller at the lowest level. The
principal component at the lowest level is the Local Supervisor which is connected to
the PUMA controller through the real-time path control channel (Alter). This is the
level which supports the implementation of real-time continuous sensory-feedback
control strategies, that is, the implementation of fine motions (motions in contact,
surface following motions using proximity sensing, etc). At the intermediate level
sequences of discrete actions actuating upon the distributed devices can be
programmed. Examples of these operations are the examination of a sensor state, a
request of raw data from a specific sensor, or a command to trigger a MOVE action by
the PUMA robot. Physically this layer is connected to the manipulator robot controller
through the supervisory channel. The highest-level is the planning and high-level
information processing system.
different topologies depends on the type of environment and task in hands. It is easy to
conclude that several different levels of representation, corresponding to different
resolutions of the universe of the manipulator are necessary. For example, a symbolic
description is desired if high-level goals can be specified. In that case the model
should be hierarchical, built bottom-up with sensor data at the lowest level and with
symbolic and topological information at higher levels. This way, reasoning and
planning use the data previously processed at higher levels with the necessary details
coming from lower levels. Taking these problems into account we propose three
different levels of representation for the working universe:
(i) - Low resolution map with the symbolic and topological information;
(ii) - Medium resolution map with some dominant features;
(iii)- High resolution map with dense data.
The low resolution map is the main source of information for the task or path
planners, because it normally contains the position and identification of the obstacles
in the universe. The family of planners using the concept of configuration space [6]
uses discrete obstacles represented by 2D polygons which can be obtained from the
last level of data representation explained above. At the low resolution level we
describe only discrete obstacles without explicitly describing the local shape of the
environment. At the medium resolution level, we include a description of the
environment through surface patches that correspond to significant environment
features. These features include regions with the same kind of properties such as
colour, texture and the discontinuities between these homogeneous regions. This map
uses more dense information about the universe, grouping (or segmenting) portions of
regions based on some criteria and defining better the discontinuities (edges). To
obtain this map a more dense information map obtained in an early stage is used. In
that map all the information coming from different sensors is combined, validated and
placed into the high resolution map.
In this paper we comment the interconnection between the different processing
stages and the sensors used to obtain a high-resolution map. We also comment how
these tasks are performed and how the information coming from the several different
sensors is made available in the distributed network.
4. VISION SYSTEM
Vision is one of the most powerful sensors that can be used in robotics. The
visual data is rich enough to be used in tasks such as parts assembly using visual
feedback or, as the main source of information about the manipulator universe.
Different techniques from Computer Vision can be used to extract different types of
information from the image data. That information can be employed to make up the
222
A vision system was developed for image processing in the fields of robotic and
products inspection [7]. Taking advantage of the flexibility of a programmable Digital
Signal Processor (DSP) and being built around an industrial standard bus, the system
can be configured in a number of ways allowing a wide spectrum of applications - see
Fig.2. Working under the control of a host computer, the vision system, in its
minimum configuration, is composed of two boards which are capable of processing
images of 512x512 pixels with 256 grey levels per pixel. These boards are a video
acquisition and display board and an intelligent image processing unit.
The vision system, developed around a general-purpose digital signal processor
in the processing units, allows the construction of a Single-Instruction-Multiple-Data
(SIMD) structure suitable for vision processing without compromising flexibility. On
the other hand, the modular approach taken in the design of the system permits its
adaptation to particular applications.
The video-acquisition display and transmission board [8] is self-contained unit
interfacing this system to standard black-and-white TV cameras using the CCIR
(Comite Consultative International des Radio-communications) norm and to black-
and-white monitors (see Fig.3). Up to four video inputs can be connected to the
acquisition board which uses an 8-bit analog-to-digital flash converter to digitize one
V1DOO
AQUlSrmN
DISR.AY
UNtr
n VIDEO IN
nomthc
Cameras
~
~ II [1}--
~! our
Tothc
Mooita
of the selected channels. This provides information associated with multiple views of
the working cell. Before being stored in memory, the digitized sample passes through
a look-up table of 256 entries allowing simple processing, such as binarization of an
image, in real time. The display section of the board uses a conventional CRT
controller and a colour look-up table which incorporates three 8-bit digital-to-analog
converters to generate a RGB video signal with 256 colours from a palette of 256K
possibilities. The acquisition board has the capacity to store two complete images of
512x512 pixels on its internal video memory which is accessible to the host. This
board also has the capability of transmitting, through a secondary bus, the digitized
video which becomes available to the intelligent image processing boards connected to
the system. When activated by the host, the transmitting section of the board sends two
samples of video data and their corresponding addresses every 125 ns.
Each of the intelligent image processing boards [9] used in the vision system
consists of four parts: a video input module, digital signal processor (DSP), a local
memory and the interface to the main bus (VMEbus), as shown schematically in Fig.4.
DIGITAL SIGNAL
FROCESSOR
IMAGE
MEMORY
The video input module uses both the data and the addresses appearing on the
video bus to place an image, or part of it, in memory. Under the command of the host
computer, the video interface module may be configured to acquired images of
different sizes (windows) and different resolutions. In choosing a digital signal
processor for this system, a special consideration was given to the capability of
addressing a large range of external memory, as it is required in image processing. The
intelligence of the board is only local and the DSP processor is totally controlled by
the host computer. This intelligent board can store and process a complete 8-bit
512x512 image, i.e. 256K pixels. This information is physically stored in static RAM
memory which can be accessed by three elements: the video bus, the host computer
and the digital signal processor. An important aspect of the video memory
organization refers to the arbitration between the three sources of access. The video
bus has the highest priority, having the whole memory available during the total
transfer of an image. The VME host computer has the responsibility of haiting the
DSP processor before making an access to the video memory, avoiding in this way any
conflicts in the access to the shared memory. The VME interface module of the
processing board permits the access to the video memory, the access to the digital DSP
programme memory, the control of the video interface module and the control of a
number of registers to operate the board.
-Interactivity: This is essential for such software. Usually the user wish to be
able to select the operators, and to control the sequence of processing steps;
-Easy access:Provides a direct access to standard images files;
-Modularity: This feature allows the easy integration of new operators.
225
In order to build the world model it is important to compute the depth map of the
environment. For that purpose two cameras are attached to the gripper's end-effector.
To compute depth we need to find out, with reasonable accuracy, the relative
transformation between the 2-D image and the referential representing the tool. The
solution of this problem is obtained by performing a calibration of the stereo pair of
cameras. As a result of this process, we obtain two (3x4) matrices which express the
above mentioned transformations. If the transformation between origins of the two
cameras' referentials is known, then the coordinates of any point in the 3D world can
be calculated by using its projections on the left and right images.
The basic problem in camera calibration is to obtain the relationship between the
three-dimensional world and the two-dimensional images captured by the cameras-
226
Fig. 5. Geometry of the stereo pair. The {LEFT} and {RIGHT} referentials are the
three-dimensional referentials of the cameras. The relationship between the cameras
referentials and the world referential is known.
see Fig. 5. This relationship can be expressed by a linear equation (1) where (X,Y) are
the coordinates of the projections in the image of a point p(x,y,z) in the 3D world, s is
a scale factor and CAM is known as calibration matrix.
(1)
[~] = Ta (2)
strictly necessary, by using extra measurements to offset the noise effects or filter the
data. For this purpose a solution for T can be obtained by a least-squares estimation.
To obtain this solution all available points should be used in the computation of T
[11].
Experiments have been done to obtain an optimal estimation of T using a
recursive form of the least-squares estimation [14]. This interesting solution is possible
by exploring the capability of capturing several pictures in different positions of the
manipulator universe [15].
BilBus Interconned
I
BITBUS SI"'I
Aller
LOCAL
' - SUPERVISOR
RS2
BItB
Lin
.n
::"~ ---------------- -------- ---~---------
Ultrasonic Gripp.r Tactile
Processor Controller Processor
t.1
.nd .... ---_ .. --- ... --- ---- .. --_ .... -- -_ .. ---_ .. ---_ .. --_ .... ----
Po..• r
ASTEK
Lin k.
Force
Sensor
Pre-Processing Pre-Processing Pre-Processing PUMA
Controller
Ultrasonic
PWM WRIST
Ranginl Scanning
Aduator Sensor
Modules
On.
Out or
Three
/
Ullrasonic
.
Tunsducer.
IIPro
P•••••
/'
~.I¥e
licl
rlioaal Simple
~
FS R s
I ON/OFF
Sensors
I ""FSR Matri.1
be placed on the manipulator arm, close to the transducers, in order to achieve better
noise immunity. At the next processing level operations such as the frame formatting
of the raw data and the servo-control loops are executed. This level is micro-based and
is connected to the Local Supervisor through serial links (RS232 and/or RS485). The
real time implementation of sensor-based control is made possible due to the
multiprocessor structure described and due to the use of digital signal processor
based boards [16] (based on a TMS320C30), at the Local Supervisor, in digital
filtering and in the implementation of control algorithms. This board has two
synchronous serial interfaces aJlowing its direct connection to lower-level processing
systems. These DSP boards also allow the real-time processing of vision if required.
In flexible assembly it is required that the robot comes into physical contact with
parts, and continuous force control is necessary. Compliance can be achieved by using
passive and/or active methods_ Passive methods can be implemented by using
mechanical elastic devices as the remote center compliance (RCC), or its enhanced
229
version the instrumented remote center compliance (IRCC) which also provides
displacement sensing [17]. Wrist force sensors for sensing contact forces are used in
active compliance. Most popular stiff wrist force sensors are of strain-gauge type but
other types have been developed (see [18] for an optical 6-axial force sensor). It has
been widely reported that using a stiff sensor in a stiff environment can cause stability
problems [19]. One solution for the problem might be to use a combined stiff-
compliant sensor as described in [20]. Another approach to solve the stability problem
using only a stiff sensor has been reported by c.H.An and J.Hollerback [21,22] relying
on a fast open-loop joint torque control, to provide stability, and a lower bandwidth
outer loop with wrist force sensing to provide extra accuracy. We are using a stiff
Astek FS6-120A six-axis force sensor of strain-gauge type. The sensor carries out the
conditioning process and formats the force information in the form of a RS-232 serial
data stream. The sensor resolves data into a specified orthogonal coordinate frame at a
measurement rate up to 240 Hz. Currently we are working on the development of
algorithms for force control by analysing the behavior of the manipulator system when
constrained by different stiffnesses. We use the real time path control interface
provided by the PUMA to modify the robot's trajectory. Simultaneously we measure
the forces applied against surfaces caracterized by different passive compliances (we
use springs with different stiffnesses). Additionally we measure the position of the
end-effector during the motion using proximity sensors.
With regards to tactile sensing we are developing a 256 element tactile sensor using
a piezoresistive thick-film polymer manufactured by Interlink which is referred as a
force sensing resistor matrix. The transducer provides a spatial resolution of 0.156 cm
with a sensing area of 2.5 cm x 2.5 cm. The pre-processing board has the scanning
array circuit which implements a pixel isolation technique as described in [23,24]. The
same board has the analog-to-digital convertion circuit with serial output.
the manipulator close to the transducer. The other is a microcontroller based board
with serial interface. This board has the capacity of processing simultaneously data
from three remote modules.
The repetition rate of the trigger pulse applied to the ultrasonic ranging module,
which controls the ultrasound emissions, is programmable with discrete values
between 61 Hz and 400Hz. This capability allows for variable triggering as a function
of ranges of distances. This is of great importance when real-time performance is
required. The analog signal is rectified and converted to digital using a 12-bit ADC
with serial output. At the micro-based board this signal is converted to parallel and
stored in a FIFO memory. The disposal of this memory permits the parallel
processing up to three analog signals with high sampling rates. The pulse width is
measured with 12-bit resolution.by an interval counter at the micro-based board.
Geometrical aspects related to the use of the ultrasonic system in tasks such as
the evaluation of planar-surface equations and manipulator surface following were
described in [15].
For the real-time path control communications we have developed a PC-AT bus
board based on a microcontroller of the Intel MCS51 family. It has serial interfaces,
RS232 and RS485, allowing its use as a node in a Bitbus network. The memory
addressing space of the board is also mapped into the memory space of the PC-AT.
Besides this facility for downloading programmes and data, the module has a
multiprocessor interface device which provides a parallel, asynchronous
communications channel for passing messages and data between the two processor
systems. This circuit implements a shared memory space with logic to resolve access
conflicts, that is it implements the mutual exclusion logic.
The software which implements the real-time path control communication is
divided into two physically separated modules. One module is written in PL/M-51 and
lies in the previously described board. This programme was designed to maintain the
real-time communications in a running state overcoming the tight demands of time
imposed by the VAL-II system. It consists on the lowest-level protocol layer
discharging the PC for the processing of application software. The second software
module is a PC resident programme performing the interface between the lowest-level
layer and the application software. From the user point of view this module appears as
a set of procedures which allow him to control the robot's trajectory in real time. Once
the normal communications state is achieved (the running state) the application
programme has accessible data concerning the state of the communication and the set-
point (or current-location) of the end-effector. Additionally, this interface is in charge
of sending control data to define/modify the robot's trajectory. The exchange data rate
is fixed at the value of 36 Hz. To provide for the task's synchronization the interface
can trigger synchronous interrupts in respect with the start of reception of each
message from VAL-II.
231
In general, a single sensor only provides partial and often noisy measurements
from the environment. To obtain enough information for complex tasks characterized
by high degree of autonomy and flexibility the use of a set of sensors forming a multi-
sensor system is required. It is evident that the combination of several sensor data
produces a richer and more reliable perception of the environment. There are some
types of information which can only be derived from the combination of several
sensor data, not being available from a single sensor source. Data combination can
also reduce errors generated by inaccurate sensor data interpretation models or by
sensors working beyond their accuracy range. Furthermore, multiple sensors can
complement each other to provide better understanding of the scene, and the
redundancy of information allows the use multi-sources to achieve better accuracy.
The development of sensor data integration techniques has relatively short
history but the research on the subject has been very intensive [30].
The multi-sensor integration techniques under development are intended to build
the high-resolution map as described previously. To achieve such goal we use two
different forms of interaction between the data supplied by the sensors: competitive
integration and complementary integration. The competitive integration occurs when
two or more sensors supply information of the same features from the same universe.
In this case, the aim is to get more accurate information by utilizing the redundant
information. The complementary integration occurs when the information provided by
two or more sensors deals with different features from the universe. The combined
information is composed of several non-overlapping information pieces coming from
different sources.
The competitive integration technique is explored on the information obtained
from the vision system. More precisely, techniques such as stereovision, motion and
232
focus are used independently to obtain information about the three dimensional
structure of the universe. The information that it is in search are points and lines.
These techniques provide more accurate information about those three-dimensional
primitives.
The complementary integration is used to enrich the information of the high-
resolution map, as in case of using ultrasonic and force sensors which give information
about surfaces and stiffness of the objects in the universe.
The study of data integration techniques, known as cooperative integration,
which uses the information given by different sensors to infer features, are left for
future research. Namely, we expect to explore the combination of ultrasonic and vision
data to obtain three-dimensional primitives such as planes and curved surfaces.
For the competitive data integralion we have adopted a probabilistic approach,
describing the uncertainty in each geometric feature as a probabilistic Gaussian
distribution [31,32]. As it has been pointed out this approach forms a valid basis
framework for the formulation of mathematical tools in order to describe and to
manipulate spatial uncertainty.
7. SOFTWARE CONSIDERATIONS
SETUP of CELL
~TON
USER PROGRAM
CELL APPLICATION
SUPPORT
DATA LINK
order/reply structure (that is, a message in the Bitbus context). The connections to the
manipulator controller are assured by two channels whose processing is performed in
different slave units, as shown in Fig.1. The supervisory communications which use
the digital data communications message protocol (OOCMP) are assured by the
OOCMP Interface Unit while the real-time path control communications are
controlled by the Local Supervisor as described previously. Both communications
software belong to the Cell application support layer of the hierarchical control
system. Still at this layer we are developing functions which can be grouped in two
main classes: 1) Software which uses the remote access and control functions (RAC
functions of the Bitbus [5]); 2) Software that implements control operations at the
sensor and actuator level. As examples of those operations are the initialization of a
sensor processing module, request of raw data from a certain sensor, activation of a
fine motion and a command to trigger a MOVE action by the PUMA robot.
8. CONCLUSIONS
A distributed system has been described which aims to support the multi-sensor
integration in a robotic environment. For the communications, a high-speed serial
network was chosen exploiting its features of low cost, easy implementation and good
performance on short message transfers. On the other hand, slaves featuring high
capacity of data processing to enable real-time sensor-based control where developed.
The integration of several types of sensors around the manipulator allows the
estimation of a multi-level world model and thus enables the evaluation of
sophisticated assembly tasks. The development of algorithms for data integration and
data representation are under research. The aim is to build descriptions of the three-
dimensional world using information from various sensors - complementary and
234
9. REFERENCES
[15] U.Nunes, J.Dias and AT.Almeida, 'Geometric modeling aspects on vision and
ultrasonic range sensing for robotic applications', NATO ASI on Expert Systems and
Robotics, Greece, July 1990.
[16] J.Silvestre, AMendes, L.Sa and V.Silva, 'Frame Grabber com capacidade de
processamento para PC-AT', Internal Technical Report, DEE-University of Coimbra,
1990 (in Portuguese).
[17] y.xu, R.P.Paul and P.Corke, 'Hybrid position force control of robot manipulator
with an instrumented compliant wrist', First Int.Symp. on Experimental Robotics I,
Springer-Verlag, Eds. V.Hayward and O.Khatib, 1990, pp.244-270.
[18] S.Hirose and K. Yoneda, 'Development of optical 6-axial force sensor and its
signal calibration considering non-linear interference'JEEE Int.Conf.RobAutom,
1990, pp.46-53.
[19] R.P.Paul,'Problems and research issues associated with the hybrid control of force
and displacement', IEEE Int.Conf.RobAutom., 1987, pp.1966-1971.
[20] J.Dietrich, G.Hirzinger, B.Gombert and J.Schottet, 'On a unified concept for a
new generation of light-weight robots', First Int.Symp. on Experimental Robotics I,
Springer-Verlag, Eds. V.Hayward and O.Khatib, 1990, pp.287-303.
[21] C.H.An and J.Hollerback, 'Dynamic stability issues in force control of
manipulators', IEEE Int.Conf.RobAutom., 1987, pp.890-896.
[22] C.H.An, C.Atkeson and J.Hollerback, 'Model-based control of a direct drive arm,
PartlI:Control', IEEE Int.Conf.RobAutom., 1988, pp.1386-1391.
[23] T.H Speeter, 'A tactile sensing system for robotic manipulation', Int.Journ.Rob.
Research, 9 (6) (December 1990) 25-36.
[24] B.Tise, 'A compact high resolution piezoresistive digital tactile sensor', IEEE
Int.Conf.RobAutom., 1988, pp.760-764.
[25] B.Maqueira, C.Umeagukwu and J.Jarzynski, 'Application of ultrasonic sensors to
robotic seam tracking', IEEE Trans.Robot.autom, 5 (June 1989) 337-343.
[26] K.Furuta and M.Sampei, 'Path control of a three-dimensional linear motional
mechanical system using laser', IEEE Trans.lnd.Electron., 35 (1) (Feb. 1988) 52-59.
[27] B.Espiau and J.Y.Catros, 'Use of optical reflectance in robotics applications',
IEEE Trans.syst.Man Cybern.l0 (12) (December 1980) 903-912.
[28] U.Nunes, P.Faia, R.Araujo and AT.Almeida, 'Integrac;ao de informac;ao de
proximidade numa celula rob6tica de montagem', Proc. RECPAD 91, Portugal,1991
(in Portuguese).
[29] C.Wampler, 'Multiprocessor control of a telemanipulator with spatial proximity
sensors', Int.Journ.Rob.Research, 6 (1) (Spring 1984) 40-50.
[30] R.C. Luo and M.G.Kay, , Multisensor Integration and Fusion in Intelligent
Systems', IEEE Trans. on Sys, Man, and Cyb., 19 (5), (Sep./Oct. 1989),901-931.
[31] H.F.Durrant-Whyte, 'Integrated, coordenation and control of multi-sensor robot
system', Kluwer Acad.Publ., 1988.
[32] R. Smith, M. Self, and P. Cheeseman, 'Estimating Uncertainty Spatial
Relationships in Robotics', in Autonomous Robot Vehicles, I.J. Cox & G.T. Wilfong
Eds, Springer-Verlag, 1990.
CHAPTER 10
Erik H. D'Hollander
State University of Ghent
Department of Electrical Engineering
St.-Pietersnieuwstraat 41, B-9000 Ghent. Belgium
Abstract
Traditionally robot vision and robot control applications are written in imperative
languages, such as Fortran, Pascal, Modula or C. Since the development of Artificial
Intelligence techniques, specialized robot languages emerged. The upper layers of robot
languages are programmed in declarative languages, such as Lisp and Prolog. Recently,
neural computing has become a third exciting programming alternative which comple-
ments the other programming styles. Neural programming paradigms apply to both
robot vision and robot control. In this chapter the basic neural network techniques
applicable to robot vision are explored. Among these are pattern recognition, blurred
image restoration and unsupervised classification. It is likely that a judicious blend
of these techniques will be used in complex scene analysis. Neural networks are char-
acterized by an interconnection structure and a learning rule. These offer a wealth
of combinations for each particular application. Therefore the major neural network
models are analyzed and compared.
• The state of a unit i is determined by the activation value, a;, a function of the
weighted sum of the input values, the net input, neti. The output value, 0i, is a
function of the activation ai.
• A weight matrix, W, with weights Wi; indicates the connection strength from neuron
j to neuron i. Hence row i contains the connection strengths at the synapses of neuron
i, coming from the neurons i
237
238
Oi =f(ai}
ai = F(neti}
• The net input of the activation function, net;, equals the weighted sum of the outputs
OJ of the neurons connected to neuron i.
• The output function 0; = f(a;} calculates the effect the current activation will have
on the other units. Typical examples are a linear function, a threshold function, or
a probability distribution, determining the likelihood that the output will be either 0
or 1.
net; L W;jOj
j
act; F(net;)
0; f{act;)
PATTERN ASSOCIATION. Given a new pattern, the system associates the pattern with
a template that was stored in the training phase. The template most closely matches
the presentEld pattern. This phenomenon is known as the associative memory
property.
AUTO ASSOCIATION. In the training phase, a set of correct patterns is presented. This
corresponds to a pattern classifier in which the output and the input patterns are the
same in the training phase. After training, the network is capable to complete in-
complete or distorted patterns, based on the similarity with the prototype patterns
stored in the network.
CONSTRAINT SATISFACTION. In this paradigm, the nodes represent facts and the
activation of a node indicates the presence or the absence of a fact. Input nodes de-
scribe the known (observed) facts in the external world. During the learning process,
the network modifies its internal state as to be the most consistent with the external
world. Apart from external influences, the nodes affect each other through the fixed
weight connections. The weights between two units indicate the degree to which two
facts can coexist. The global quality is measured by a goodness value, E;j w;ja;aj,
and the activations are modified to maximize this expression. There is an analogy
with expert systems, because implicitly the network contains a knowledge base, or
more precisely, a relation between knowledge facts. Given a set of inputs patterns,
the network settles down into a state most feasible with the presented input patterns.
Therefore the constraint satisfaction model can be used e.g., for rule detection or
hypothesis testing. Learning paradigms for this type of network include the Harmony
theory [14], the Boltzmann machine [6] and the Schema model [13].
In the following sections the learning mechanisms of these models are explored. The
examples are programmed using the McLelland and Rumelhart PC-neural network software
[9].
ni
0, =L w'jij. (1)
j=l
The weight W,j equals the strength of the connection from input j to output i. In the
training phase, the weights of this system are adjusted in order to reproduce a given set of
np input/target pattern pairs, Ip, Tp, p = 1, ... , np. Therefore the learning rule minimizes
the difference vector Ep = Tp - Op or
8Ep
-f--
8w'j
8Ep 80,
-f----
80, 8w'j'
which yields the linear delta rule
(3)
Here t, and 0i represent the i - th coordinate of the target and the input patterns Tp and
Ip, and f is the learning rate parameter. The delta rule is applied to the np input patterns
until 2:;~1 Ep is minimized. In the linear network model, the Delta Rule is guaranteed to
converge to the unique set of weights which minimizes the quadratic error function (eq. 2).
241
3.2 The LPA, the Pseudo-Inverse and the Multiple Linear Regression
Analysis
The linear pattern associator (LPA) relates to two well known mathematical problems.
First, consider the input and target matricE~s Inixnp = [h ... Inp ] and Tnoxnp = [Tl ... Tnp],
where Ii and Ti are input and target pattern column vectors, with ni and no elements
respectively. The learning problem then comes down to solving the matrix equation
WI=T (4)
for the weight matrix W noxni.
When I is square, i.e. np = ni, and the input patterns are linearly independent, the
exact solution is found by a matrix inversion. However, in the general case p =I ni, and
then an approximate solution is calculated using the pseudo-inverse:
(5)
Kohonen [7] has shown that this formula yields the same weights as those obtained by the
delta rule. However, the closed formula (eq. 5) often is more efficient than the iterative
delta rule (eq. 3) .
By another approach, equation (1) can be considered as a multiple linear regression
problem, which predicts 0i from a weighted combination of the input variables i;. The delta
rule solves n linear regression problems and the row i of the weight matrix represent the
regression coefficients for unit i. Hence there is an evident isomorphism between the linear
neural network and two well known problems from the linear algebra and the statistics.
0 1 1 0 1 0 1 1 1 1
0 0 0 1 1 1 0 1 1 1
1 1 1 1 0 0 1 1 1 1
T lOx10 = WlOx7 0 1 1 1 1 1 1 1 1 0
0 1 0 0 0 1 0 1 0 1
1 0 1 1 1 1 1 1 1 1
0 1 1 0 1 1 0 1 0 1
Clearly, this is an overdetermined linear system. The best weights are found by the
delta rule or by the pseudo-inverse. The delta rule minimizes the total sum of squares
tss = liT - W Iii. After 1000 steps the total sum of squares of the errors over the 10
patterns for each unit, gives tss = 3.0009. However, an exact calculation using the pseudo-
inverse gives tss = 3.0000, and this is calculated in much less time. The output after
242
0
0
a 1
a 1
7
b 0
0
c 1
-Of
b£d C 0
d 1
0
e 0 0
f 0
9
9 0
0
"3"
• Input
• Output
Since the target is a unity matrix, the output of the network is poor. Nevertheless,
a nonlinear transformation, selecting the maximal element in each column, generates the
right answer.
aj aj
bias bias
o o act.
1/ /
1
netj netj
Threshold function Quasi-linear function
P(aj = 1)
bias
o /
netj
Probability function
Figure 4: Commonly used nonlinear activation functions
property of linear systems. For example, suppose that the output of one layer is fed into a
second linear network. Then the input-output relation of this two layer system is described
by the equations 0 = W 2 (W 1 I) = WI, where W = W 2W 1 represents the weight matrix
of the equivalent one layer system. This limitation is called the linear predictability
constraint.
The only way to increase the functionality of neural nets is to introduce nonlinearities
in the activation function. To keep the analogy with a biological neuron, the nonlinear
activation must preserve the significance of the excitatory and inhibitory connections. This
implies that an increase of the of an excitatory input causes an increased output, while a
decrease results in a decreased output. Therefore the activation function must be uniformly
non-decreasing for all inputs. Only then the excitatory or inhibitory character of the con-
nections are maintained. The most common non-decreasing activation functions are (see
figure 4):
- a linear threshold function. The binary output is 1 when the net input exceeds a
certain limit, otherwise it is o. A variant of this scheme is to add a bias-term to the
net input of each unit and let the unit fire if the result becomes positive. The biases
244
are equivalent to weights of input units which are always on and they can be trained
as ordinary weights.
- a quasi-linear function. The net input is fed into a nonlinear squashing function, which
maps into the interval [0,1]. The squashing function is typically a non-decreasing
sigmoid, such as
1
f(x) = 1 + e-z/T
This function divides the net input into three regions: a region of 'low activation'
(x « T), where the input is not significant enough to fire the unit, a 'saturation
region' (x » T) which limits the activation, and a 'center region' where the output is
quasi-linear in function of the input. With this division, the unit conforms to many
physical systems that have a limited dynamic range.
1. The activation function has only one input, net;, which is a weighted sum of the
inputs i j . Consequently it is impossible to distinguish the activity of the individual
units.
These limitations - which led to the criticism of Minsky and Papert [11], can be overcome
by adding one or more layers between the input and the output layer. These hidden
units are capable to extract additional features, calculate intermediate results and generate
extrema. Together with the nonlinear activation, the additional layers enhance the network
performance. The weights of this network are trained by the back-propagation algorithm.
where OJ represents the output of the units in the upstream layer. We have OJ = i; if
the unit is connected to input units, otherwise OJ equals the output of a hidden unit. The
output is calculated by a nonlinear activation function f,
(7)
The delta rule minimizes the sum of squares Ep of the differences between the training
patterns and the output patterns of the network (equation 2). By the steepest descent rule,
the weights are changed according to the derivative of the error function:
8Ep 8nd;
L:::..w;j = - ·8net;
f----
8w;j
(8)
_ 8Ep
8net;
__ 8Ep 80;
(10)
80; 8net;
Substituting the 8-values into equation (8) leads to the generalized delta rule
L:::..w;j = f8;oj.
The variable 8; (equation 10) is determined using equation (7), 80;/ 8net;
Now, consider two cases
Ok
{Wij} Ok'
{OJ} -----ftJ
downstream layer
and the t5-factor (eq. 10) for the output layer becomes
where k refers to the units in the next layer. Now, by definition, t5Ep/t5netk = -I5Ie,
and t5netJe/t5o; = WIe;, (eq. 6). Thus equation (13) becomes
n
t5Ep/t5o; =L -t5kwk;.
1e=1
Using equation (10), this leads to the t5-factor for the hidden units:
n
15; = t'(net;) L I5le W/ci. (14)
k=l
247
1. Present an input pattern, i, and let it propagate through the network, to yield the
output pattern, o.
2. Apply the generalized delta rule (eqn. 11), in combination with equation (12) for the
output layer.
3. Apply the generalized delta rule (eqn. 11) in combination with equation (14) for the
hidden layers, using the 8 values from the previous step.
out
out
a) b)
Figure 6: a) The linear XOR network, b) The XOR network with 1 hidden unit, h, and 2
bias terms, bo and bh . The output equals out = Wlil + W2i2 + WhOh + boo The bias values
are trained as ordinary weights.
5 .-----------------------______~
~----
0.4 -r------------,
,// Wl
Wh (A)
Cycles [1-100]
Cycles [1-332]
using the back propagation algorithm just described, the weights are trained in 332 cycles
(fig. 7). Three learning phases are observed.
1. In the first 100 cycles, the system is squeezing the weights to the value of zero. This is
the minimal state of energy, giving the same output of 0.5 for all input combinations.
2. Next, the hidden unit begins to recognize the special condition i1 = i2 = 1 and adjust
its weights in opposite directions. In this way the double one leads to a zero input.
However, the hidden unit still produc:es a positive output, due to the positive bias,
bh . Since the weight Wh is negative, the hidden unit acts as inhibitor to the positive
inputs il, i 2 • The same inhibiting activation results if both inputs are zero.
3. At a slower pace the other weights settle down to cover the two remaining states.
4. When the weights stabilize around c:ycle 300, the single excitatory weight to the
output, WI, ensures a 1 when the state [il i 2]=[1 0]. Finally, the state [0 1] inhibits
the output and the hidden unit. However, the strong positive bias of the output unit
ensures that a 1 is generated.
-
-
Inputs Outputs
-
Feedback
Figure 8: Auto associ at or network. The output is fed back and becomes an internal input
to the network
connecting the output back to the input units. In this way the network is fed by a weighted
sum of the external input and the output of the network in the previous cycle (fig. 8).
The outputs are not connected to the same inputs, since the network needs to develop
inter-pattern relations. In the learning phase, an input pattern is presented to the network
and after a fixed number of feedback cycles, the output is compared with the external input
pattern. The differences are accumulated in the error vector. Likewise the other training
patterns are successively clamped to the input units. When all patterns are presented,
the weights are adapted according to the delta rule and a new training epoch starts. The
training ends after the total sum of squares of the errors is minimized and the weights are
stable.
In a completion test, a distorted or incomplete pattern is presented. The network runs the
same number of cycles as in the training period, or more. Usually, the internal input pattern
which is fed back from the output will gradually override the incomplete external pattern.
In the end the output converges to one of the learned patterns. When the external input
pattern is too erroneous, the auto associator ends up in a local minimum corresponding to
an unknown pattern.
Table 2: Pattern completion test with the Auto-Associator. Learning and completion
phases uses 25 and 100 feedback cycles respectively. The parameters used are estr = istr =
decay = .15, f = .05. After learning, total sum of squares tss = 3.0545. Removal of one leg
in the 7-segment digits still results in a 77% hit-rate.
where estr and istr are the strength factors for the external and the feedback inputs. The
activation is gradually built up, where the decay parameter « 1) acts as an attenuator.
After settlement of the output, the weights are adapted according to a formula similar
to the delta rule:
the likelihood that these nodes appear in the same context. Negative weights indicate that
the objects normally do not occur in the same scene, while positive weights indicate they
do.
A vision system recognizes the individual objects and activates the corresponding nodes
via the external input input;. Then all nodes interact to maximize the global feasibility of
the network. The global goodness accumulates the local goodnesses of each unit:
goodness = Lgoodness;.
Besides the activation from the other units, aj, there is an external input and a bias term.
The bias value bias; represents the a priori knowledge that unit i should be on or off. The
net input informs the unit that its activation should be increased or decreased to improve
its local goodness. A possible update rule which increases the value of goodness; and keeps
the activation within the interval [0,1] is:
The parameter T is called the temperature, and the network operating in this fashion is
called a Boltzmann machine (fig. 9).
If the temperature T = 0, the update rule becomes the threshold function
a;(t + 1) = 2sign(net;) - 1.
253
P(8i 11 )
T»
0.5
neti
o
o
Figure 9: Activation function used for simulated annealing, T represents the temperature.
For high temperatures (T -> 00), the activation values move around rather arbitrarily:
P[a;(t + 1)] = .5
At a low temperature the units react solely on the net; value. The gradual lowering of the
temperature T is similar to the annealing of steel to form a crystalline structure. Therefore
this technique to learn the activation of the units is called simulated annealing.
0 1 2 3 4
17 20 20
17 17 49 20 20 25 25
20 20 25
17 17 49 20 20 25
17 20 20
5 6 7 8 9
20 25 14 20
20 20 25 14 14 20 20
20 20 25 14 20
20 20 20 25 14 14 20
20 20 14
Figure 10: Weight matrix of the 7-segment model after 80 cycles, using the Competitive
Learning paradigm. Dots represent 0 and values are given in percent. The weights are
placed at the corresponding segment locations.
!:::..Wij = -f.Wi;
Here nactive is the number of active units and f. is the learning rate parameter. This rule
maintains a normalized total weight into unit i. A formal analysis [12J learns that the
weights converge to conditional probability values:
9 Conclusion
In the last decades new programming paradigms such as declarative languages and neural
computing offer a wealth of new ways to implement robotic applications. The wide func-
tionality of neural networks will give it a place in robot vision and control. This chapter
has stressed the strong aspects of neural networks, such as associativity, adaptability and
unsupervised pattern classification. These properties make neural networks a serious can-
didate to replace the highly complicated feature extracting algorithms in hierarchical vision
systems.
References
[1] Anderson, J.A. (1983) Cognitive and Psychological Computation with Neural Models,
IEEE Transactions on Systems, Man and Cybernetics, Vol. 13, pp. 799-815.
[2] Fukushima, K. (1988) A neural network for Visual Pattern Recognition, IEEE Com-
puter, Vol. 21, 3, pp. 65-75.
[3] Fukushima, K. (1987) Neural network model for selective attention in visual pattern
recognition and associative recall, Applied Optics, Vol. 26, 23, pp. 4985-4992.
[5] Hinton, G.E. and Sejnowski, T.J. (1986) Learning and Relearning in Boltzmann Ma-
chines, Parallel Distributed Processing, Vol. 1: Foundations, D.E. Rumelhart, J.L.
McClelland and the PDP research group, Chapter 7, pp. 182-317.
[6] Hinton, G.E. and Sejnowski, T.J. (1983) Optimal Perceptual Inference, Proc. IEEE
Conf. on Computer Vision and Pattern Recognition, pp. 448-453.
[7] Kohonen, T. (1984) Self-organization and Associative Memory, Springer Verlag, Berlin.
[8] McClelland, J.L. (1986) Resource Requirements of Standard and Programmable Nets,
Parallel Distributed Processing, Vol. 1: Foundations, D.E. Rumelhart, J.L. McClelland
and the PDP research group, pp. 461-487.
[9] McClelland, J.L. and Rumelhart, D.E. (1988) Explorations in Parallel Distributed Pro-
cessing, A Handbook of Models, Programs and Exercises, The MIT Press.
[10] Myake S., Kawato M., Sonohara N., Hongo S., Inui T. (1989) em Applications in
Image Processing and Pattern Recognition, Flanders Technology Seminar on Neural
Networks, April, 9 pp.
[13J Rumelhart D.E., Smolensky R., McClelland J.L., Hinton G.E. (1986) Schemata and
Sequential Thought Processes in PDP models, Parallel Distributed Processing, Vol. 2:
Psychological and Biological Models, D.E. Rumelhart, J.L. McClelland and the PDP
research group, Chapter 14, pp. 7-57.
MANUFACTURING SYSTEMS
CHAPTER 11
A. M. WEILERI'
Hewlett-Packard Colorado Integrated Circuit Division
637 Mansfield Dr.
Fort Collins, 00 80525, USA
1.1. Sensors
1.1.1. General Sensor Requirements. In order to acquire data there
must be a source of data. '!he goal of any sensor is to provide some
quantifyable measure of some Ibysical characteristic of the real world.
'!he basic requirement of any sensor technology is the ability to make
the conversion to a tangible form. '!his key conversion is in turn tied
closely to some principle of basic Ibysics or chemistry. For instance,
flow measurements rely on Bernoulli's principle, pressure readings on
the ideal gas law, thermocouple temperature readings on the Peltier
effect. '!he wide range of sensors for a wider range of measurements is
testimony to the imaginative application of basic scientific principles
and even simple empirical relationships to the key conversion of one
Ibysical condition to another, gauged cbndition. Physical parameters
from temperature to charge mobility in a semiconductor can be sensed
and converted into a tangible representation. Before the advent of
microprocessor based acquisition the tangible representation could be
virtually unlimited: mechanical mechanisms driving needles showing
pressure, expanding fluids moving up scaled glass columns to indicate
temperature, varying electrical resistance caused by stretching wires
to indicate strain. '!he situation is still such that even if there is
no commercial sensor for the parameter required a principle or
relationship can be determined that will allow construction of a useful
sensor or allow an available sensor to measure some subsidiary effect
to construe the desired value.
1.1.2. Sensor Limitations For Microprocessor Systems. '!he
introduction of microprocessors into the data acquisition path has
imposed previously unnecessary restrictions on the sensors used to
generate the data. '!he most obvious limitation is the need for the
sensor to provide data in a form that can be either directly or
indirectly converted into an electrical signal. Gone are the days of
the simple mechanical gauge reading. '!he preferred sensors are those
that directly generate an electrical signal obviating the need for a
mechanical to electrical conversion (Basi~lly a sensor for the
sensor). A brief listing of direct electrical output sensors and the
parameters they measure is shown in '!able 1. A simple perusal of
experimental handbooks such as Holman [1] will provide a broadly based
a:>Verage of sensor technology, rut perhaps a resource closer to the
cutt.:inJ edge is the wide range of sensor manufacturer catalogs such as
Omega [2] am Davis [3] which list page after page (Many are the size
of a large city's Iilone book) of the latest in sensors for almost any
imaginable application.
263
While the sensor is the first point of contact between the real world
and the control system, the acquisition circuitry is the point at which
the information from the sensors urrlergoes its second conversion ('!he
first was the sensors conversion from Iilysical parameter to tangible
representation). '!he acquisition circuitry conditions and converts the
signals from the sensor (Preferably electrical signals) to a form
usable for display, control or complter inplt. '!he acquisition
circuitry can be used to convert the sensor signal directly into a
visible form as with a chart recorder or meter readout. '!he
acquisition unit can simply condition the signals into a form suitable
for use in a traditional analog control system. '!he acquisition
circuitry can be used to convert the sensor signal into a digital
representation suitable for inplt to a comp.1ter or digital control
system. since the primary focus of this treatment is microprocessor
based systems, the conversion of sensor data to digital form will be
the principle emlilasis.
speed, the format of the digital output (Binary coded decimal or simple
binary), and the type of conversion cirouitry employed. '!he A-to-D
characteristics can in turn can be matched to the requirements of the
acquisition system as a whole correspondingly: signal resolution where
more bits provide finer resolution, signal frequency where conversion
speed provides a hard limit to the maximum measurable frequency, use of
direct readout vs computer inplt where the choice between binary, BCD
and 7-segment LED C>tl"tp.1.t is made, and alEolute accuracy required which
often keys the choice between the more accurate rut slow dual-slope
converters and the less accurate rut much faster successive-
approximation converters. Other factors contrituting to the final
converter choice are mainly involved with the ease of interfacing and
use with a microprocessor based system. For instance, is the data
output in serial or parallel format, and which would the particular
complter system being used prefer? Converters are available using both
formats. Likewise, are multiple input channels needed, how many and
can they be of mixed types (Some analog, some digital)? Converters are
available which include the circuitry to decode multiple channels, even
of mixed types which greatly simplifies the task of multi channel
acquisition since one chip will do the whole jab. Or, if advanced
features are not needed, can a simpler, cheaper component be used?
Once the system requirements have been converted into characteristics,
the component data books can be consulted to find the closest match of
available components to desired characteristics. In fact, the data
books are such a valuable resource because, in addition to supplying
the appropriate part numbers for c:i:rx::uits meeting the user's
requirements, the books list the wide variety of circuits available,
providing inspiration and insight into alternative methods, unknown
alternatives and circuit suggestions for anyone simply paging through.
Table 2 provides a brief glimp;e into the available range of analog-to-
digi tal converters.
1.3. Control
Having combined a sensor and acquisition circuitry the final block
required for a complete acquisition system is a means of controlling
the action of the sensor and acquisition circuitry. Whether the
266
characteristics for the hls. For instance, if a hls speed higher than
8 MHz is required, the I.B.M.-P.C. bus is unsuitable but the E.I.S.A.
bJs would serve. Likewise, if the software to be used on the system is
only available for Motorola 68000 series processors only, the I.B.M.
bJsses which are primarily oriented to Intel microprocessors would be
at a distinct disadvantage. IDoking at an number of the key factors
provides the following image of the bJs world. Common 8 data bit
busses include S.T.D., and the I.B.M.-P.C. bus while 16 bit or more
busses include the I.B.M.-A.T., I.B.M.-M.C., Apple NuBus and the
E.I.S.A. bus. Of these the I.B.M.-P.C. and A.T. busses could be
considered dominant if only due to the vast number of systems,
interface cards and software for the I.B.M. bJsses. A relatively
recent development specifically for instrumentation and acquisition
systems is the V.X.I. bus which is a version of the V.M.E. bus
developed by Digital Equipment with extensions to allow direct
installation of instrumentation, measurement or interface cards for
data acquisition with standard control protocols and software. A
corresporrling list can be developed for which bJsses suitor are
primarily based on which microprocessor families. Intel
microprocessors are available for all of the I.B.M. bJsses, E.I.S.A.,
V.X.I and S.T.D. bJsses while Motorola processors can be found on
S.T.D., NuBus and v.x.I. cards primarily. overall, however, the choice
of a bJs is primarily a choice of user preference based mainly on
microprocessors supported and software availability. In fact, so
entrenched are many of the proponents of the various bJsses that
arguments between the camps can take on a nearly religious fervor.
Journals such as Byte [9] and Personal Engineering [10] commonly
provide up-to-date technical information on the latest hardware
standards, de-facto and otherwise.
with no set standard for which cormectors are used for what, it comes
as no surprise that adapters from one type to another are part of a
rooming blsiness. However, it should be noted that ideally the analog
signals are converted to a digital form as soon and closely as possible
to the source and can then be sent via more reliable, standard digital
methods. In the case of data communication standards, which are more
fully and carefully regulated than most of the hardware or software
standards discussed above, the actual standard p.lblication, such as
IEEE [11] for the GPIB standard, provides highly detailed information
on all aspects of the standard. Alternatively, since the actual
standard may in fact be too detailed, application oriented texts such
as Short [12] provide more practically oriented information.
2. PRO:ESS CONIROL
'!he initial input to the control system is, of course, data from the
sensors via the data acquisition system. '!his input is the indicator
the control system has of the actual current state of the real-world
system being controlled. Given the current state of the real-world,
the control system has a number of possible methods to evaluate the
current state and determine the action or outp.lt needed to bring the
real-world system to the state specified by the set point of the
control system. Traditional feedback control methods including
proportional, proportional-integral, proportional-integral-<llfferential
and on/off can all be applied to the signal to generate the appropriate
output to the controlled system. Ia;s traditional feedforward control
methods can also be applied although they generally require a fairly
complete understanding of the system so that the effect of variation in
any of the measured variables is known and can be compensated for
before the variation is transferred to the system as a whole. '!he
mathematical background for all of these traditional control methods
can be found in a general text. such as Weber [13]. Unfortunately, most
texts on control limit themselves to the mathematical realm while
treating the actual hardware as black boxes. In fact, to gain an
understanding of the actual hardware required for to put the
mathematics into practice, a source such as Senturia & Wedlock [14]
which covers the application of operational amplifiers to signal
summing, inversion, proportional amplification, integration and
differentiation is needed and even the electronically oriented texts
will only provide insight into what needs to be done to the input
271
2.2. Measures
2.3. Actions
lacking a complex motor control system, direct digital outp,rt lines can
be used (With appropriate corrlitionirg for the high currents and
voltages involved) to directly drive the stepper motor by OU"I:pJ.tting
the bits required to appropriately power the :irrlividual coils of the
motor. Like many of the other aspects of microprocessor based
acquisition and control systems, the stepper motors and controllers
available cover such a broad range that some of the best sources of
information are the manufacturer publications and industry journals
such as Chilton's [18].
3.1. Possibilities
3.2. Practicalities
3.3. Actualities
that previously controlled only the central core of the process and
left loading and unloading manual now employ the logic and multi-
channel capabilities of the microprocessor and the actuating
capabilities of integrated circuit based motor controllers to load and
unload material, sense and move doors and tracks and completely
automate the process. Similarly, control systems that previously were
hard-set for a single control point employ the programability and
memory capacity of the microprocessor to enable multiple ~ of
action and control points or even continuously variable control points
allowing for smooth ramped transitions between system states and the
ability to store and operate a large number of different processes in a
single piece of equipment. Further, the ability of the microprocessor
to automate statistical process control is now employed to enforce
large scale control on a sequence of processes by measuring pertinent
parameters on the actual product at various stages of manufacture and
feeding the parametric information, including current values, trends,
derived relationships and other factors, back. to the specific processes
which effect the measured parameter. However, at least currently, the
connection between the parametric measurement and statistical control
0I.ltpJts and the individual processes usually consists of a message to a
human operator or engineer who then takes the Iilysical action required
to bring the system back. into control. Of course, as the discussion of
the current situation above points out, tomorrow will certainly hold
advances that will further expand the scope and ability of
microprocessor based acquisition and control systems.
3.4. Eventualities
which doesn't need to go home and sleep or ever take a vacation. '!he
next logical extension is to simply eliminate the interaction and have
the expert system monitor the statistical control output and control
the system to the point where the expert system can make the
corrections itself. Likewise, advances in microprocessors have made at
least initial excursions into adaptive control systems possible.
Future developments will expand the areas where adaptive control can be
awli~, brirgirg the ability to adjust the mathematics ~ to control
the system based on the performance of the system and producing control
that can adapt to major environmental up;;ets by altering the control
equations and. generating continually refined and improved control.
Similarly, expanding comp.ltational abilities will continue to expand
the applicability of predictive controls which will awly a highly
specific, exactirg mathematical mcdel of the system itself, not merely
the control units, to predict the action of the system under the effect
of changes in intuts or environmental coroitions and adjust the
controll~ parameters by awlyirg the model in reverse to determine the
control actions requi~ to correct the inplt imbalances and maintain
control. A combination of expert systems and predictive control could
even be appli~ to a system which would employ the knowledge of the
system's performance under certain circumstances in the past to control
the system when the circumstance recurs. For instance, if the
controll~ system always goes out of temperature control after a shift
change this type of data can be coll~ into a statistical datamse
which the expert system can query to determine control actions when the
situation recurs. In some ways this is how weather prediction is
perform~; for instance, if it has rained three days in a row, past
statistics show that 50% of the time it will rain on the fourth day.
other possibilities for the future include the increasirg awlication
of parallel processors, neural networks and perhaIE even optical
computers to data acquisition and control systems. In conclusion, the
past has provid~ a firm base of mathematics, sensors and signal
coroitionirg, the present an expanding realm of microprocessor control
to enable the control of complex, multifaceted, configurable systems
and the future apparently holds nothing rut expansion of intelligence
and capabilities to brirg more and more systems into the space of
controlability •
4. REFERENCES
Dr. Y. Altlntas
The University of British Columbia
Department of Mechanical Engineering
Vancouver, B.C., VeT lW5, Canada
Abstract
Recent focus of manufacturing research has been in the develop-
ment of unmanned machining systems. Modular Computer Numerical
Control (CNC) units, which control and monitor many tightly coupled
machining tasks, are required. This article describes the detailed en-
gineering design and analysis of a modular, research CNC system for
a milling machine. Continuous and discrete transfer functions of a
feed drive servo system are derived and experimentally verified. A
state space model of a feed drive servo is developed for a time domain
analysis of actual position, velocity and armature current for given
position input and machining force disturbances. A complete experi-
mental verification of the system's model is presented. The influence
of servo dynamics mismatch, varying velocity profiles and cutting force
disturbances on the accuracy of contour machining are discussed.
Nomenclature
B: Viscous damping coefficient.
H g : Tachometer constant.
Ia : Armature current.
J.: Equivalent inertia reflected to the motor shaft.
Ka: Armature current feedback gain.
Kb: Voltage constant of the motor. (back EMF.)
Kd : D / A converter gain.
K. : Encoder gain.
KI: Velocity error preamplifer gain.
Kp : Digital filter gain.
K t : Torque constant of the motor.
K,,: PWM voltage gain.
La: Armature inductance of the motor.
Ra: Armature resistance of the motor.
279
280
1 Introduction
The present goal of manufacturing research is to develop flexible, self adjusting and
unattended intelligent machining systems. The limited presence of operators at
unmanned machine tools leaves the supervision, monitoring and control tasks to
computer controllers. Some of the important machining process monitoring and
control tasks are: in-process detection of tool wear and breakage, chatter detection
and avoidance, adaptive control of chip load for maximum metal removal, geometric
adaptive control for precision machining and in-process gauging [1, 2]. These tasks
must be executed in parallel since they have a coupled effect on the cutting process.
In order to implement the unmanned machining tasks, the machine tool must be
equipped with sensors and a multi-processor based Computer Numerical Controller
(CNC) where computations demanding tasks are assigned to dedicated processors.
Communication between tasks, therefore processors, must be carried out in short
intervals. For example; the Adaptive Control task must be able to send feeding
velocity updates at control intervals of 10 to 20 ms to the amplifiers. Although some
commercial CNC systems are multi-processor based, they don't provide the flexibility
to add sensing, monitoring and control modules. This article describes the design of a
very modular research CNC system which allows integration of additional monitoring
and control modules. The system enables simultaneous testing of chatter avoidance,
tool condition monitoring and adaptive control algorithms, which are coupled in
practical machining operations. The modular CNC system consists of off the shelf
units, and can be easily realized at other research laboratories.
Although considerable progress in CNC technology has paralleled developments
281
in electronics technology, a detailed analysis of feed drive servo systems for the
purpose of precision multi-axes contouring, adaptive control and monitoring of ma.-
chining process has not been studied sufficiently. Significant early work in the area
was primarily carried out by Bollinger [3, 4], Stute [5, 6] and Koren [7, 8]. They
concentrated on engineering design methods of eNe Systems where approximate
models of the feed drive servo were sufficient. However, unmanned machining tasks,
in particular precision contouring require complete modelling and analysis of the feed
drive control system.
The first comprehensive analysis of contour machining errors was presented by
Poo, Bollinger and Younkin [9]. Poo et al assumed a second order dynamics which
makes the feed drive servo Type 1 control system. They showed the significance of
steady state contouring errors when the gains of the two feed drive axis are mis-
matched. Koren proposed a cross-coupled controller to compensate the steady state
errors in machining [10]. Recently Srinivasan et al proposed optimal control of con-
touring errors for dual axis feed drive systems [12, 13, 14]. The previous researchers
have treated the velocity servo as a first order system excepting Doraiswami et al
[11] who included the electrical dynamics of the servo motor in the controller. In-
stead of designing a cross-coupled controller Doraiswami et al tried to minimize the
steady state errors at each axis. Although the previous researchers proposed control
algorithms to improve the contouring accuracy, none of them was able to reduce the
contouring error to zero especially at transients.
In this article, a De motor based velocity servo is treated as a second order
dynamic system, and that the complete feed drive system is a fourth order discrete-
time system with a digital compensating filter. Transfer functions of both velocity
and position loops are identified, and experimentally verified. A discrete-time state
space model of the feed drive servo is presented. The model allows simulation of all
state variables (i.e. actual position, velocity and motor current) for a given position,
feeding velocity and cutting force disturbance. This is particularly important for the
analysis of motor current and velocity changes under cutting force disturbances.
The article includes the analysis of multi-axis contouring errors in eNe machine
tools. There are two fundamental sources which influence the contouring accuracy.
The first type is due to the dynamic positioning performance of the servo drive
controller. In order to contour a desired tool path trajectory, the dynamics of each
axis used in contouring must be matched. However, since each controller drives
different parts in a machine tool, the inertias and friction in the guideways may differ
at each axis. Even if the axis are matched perfectly, due to the velocity lag produced
by the dynamics of the controller, contouring errors exists during machining parts
with severe transients. The second type of machining error is caused by the cutting
forces transmitted to the controller as disturbance torque, which takes away some
of the useful torque required in contour positioning. In the article, the contouring
errors are analyzed and simulated for practical operating conditions of a machine
tool.
282
POSITION FEEDBACK
DC
IBM PC SERVO
MOTOR
MPLIFIER
VELOCITY FEEDBACK
PC BUS
TO MULTIBUS
ADAPTOR
POSITION FEEDBACK
MULTIBUS
DR
RS 232
MUL TIBUS
CARD CAGE POSITION FEEDBACK
1====== =1 DC
SERVO
VT 100
MOTOR
MPLIFIER
VELOCITY FEEDBACK
The remainder of the article is organized as follows. Section 2 explains the archi-
tecture and physical components of the developed modular CNC system for a milling
machine. Transfer functions of the continuous and digital control components of the
feed drive system are given in section 3. Section 4 presents state space modelling.
Experimental results, which verify the feed drive model, are presented in section 5.
Time domain simulation of contouring three transient workpiece profiles, a square
corner, a diamond and an are, are presented in section 6. The paper concludes with
recommendations for CNC design and tool path planning.
shafts. The motors are capable of delivering sufficient continuous torque during
machining at desired feeding velocities.
A Motorola. M68008 processor based motion control board [16] was used to con-
trol feeding velocity and positions of the three linear axes of the machine. The
motion control card has 16 I/O lines for logic control functions. Coolant, spindle,
travel limit, feed-hold, amplifier shut-down and other auxiliary logic control signals
are wired to the I/O lines. Contouring (i.e. linear and circular interpolation), accel-
eration, deceleration and digital compensation functions are also carried out by the
motion control board. The board resides in a MULTIBUS card cage which can take
several motion control cards (Le. for an additional rotary axis control), data acquisi-
tion boards and single board dedicated process control computers (i.e. tool condition
monitoring, process identification and adaptive control) for modular unmanned ma-
chining research. In order to use the existing peripherals of the personal computers,
the Multibus is connected to the PC bus with a bus interface adaptor. An Intel
80386 CPU with an 80387 mathematics co-processor based PC was used as a master
computer to distribute monitoring and control tasks to other computer modules on
the Multibus. A full technical wiring diagram of the CNC unit is provided in Fig. 2
for readers. The machine tool can be used as a standard CNC machine by loading an
in-house developed ISO NC language emulator in PC. Feeding velocity, acceleration,
deceleration and digital filter parameters can be changed in real time by sending the
desired values from the PC to the motion control unit via the bus adaptor. This
feature is particularly important and essential for adaptive control and machine tool
monitoring research.
Figure 2: Electronics wiring diagram of the CNC feed drive control system.
285
MECHANICAL
+1
'{
J
0---'
ELECTRICAL
Figure 3: Schematic diagram of the Permanent Magnet Armature controlled DC
Servo Motor.
and compared with an actual velocity signal measured by the tachogenerator feed-
back unit. The resulting velocity error (in Volts) signal is converted to a desired
current by the current amplifier which has a gain of K/. The amplifier output cur-
rent is compared with the armature feedback current signal pulled from a current
sense coupler. The PWM circuit, which is modelled as a gain of K,,, accepts the
current error and outputs a mean voltage of V" to the armature terminal of the DC
motor. The transfer function between the input velocity command signal (v,,) and
the motor's angular shaft velocity (W) is found as follows; The voltage applied on
the armature of the motors is used to overcome losses in the resistance, inductance
and back electromotor voltage (Fig. 3),
(1)
The armature current produces a magnetic field between the armature and constant
field stator, which gives a torque proportional to the rotation of the motor.
(2)
The motor torque is spent in accelerating the equivalent inertia, and overcoming the
viscous friction and cutting torque reflected on the motor's shaft.
dW
Tm = Je Tt +B·W +Tc. (3)
Taking the Laplace transforms of (1,2,3), the second order dynamics of the ve-
locity controller and its parameters are derived from the control block diagram (Fig.
4) and given as follows:
t-..>
00
0'
IIWW to-...a
~
IIEI..IEITY
fUJIIM:I(
M
I'IISn1IJj fUJIIM:I(
W(s) Kl
(4)
l/;,(s) = s2+K2S+K3'
where the parameters Kh K2 and K3 are defined:
Je La
The parameters K t , Ra, La, Kb and By are provided by the manufacturers of the
amplifier and DC motor. The remaining power amplifier parameters (Ka, KJ, K",
8g and Tg) were measured from the circuits, by applying known signals to the input
port of the circuit in question, and then measuring the corresponding output with a
voltmeter and a currentmeter.
It must be noted that depending on the friction characteristics of the machine
tool's guideway, it may be necessary to include static friction as an additional dis-
turbance torque to the velocity loop. An average viscous damping coefficient of
B = 0.09(Nm/(rad/sec)) is identified by measuring armature current at various
steady state feeding velocities on the research machine, see (2) and (3). Factory
specifications and measured values of the servo feed drives are listed in Table 1.
288
(5)
The up-down counter acts like an integrator which contains the instantaneous posi-
tion error. Since the input to the controller is either parabolic (i.e. acceleration and
deceleration period) or ramp type (i.e. steady state velocity), the up down counter
and encoder gain can be cascaded to the end of the velocity loop as:
Xa(s) Ke
(6)
W(s) =-;-
Combining (6) with the transfer function of the velocity loop (4) yields to the transfer
function of the continuous part of the feed drive control system:
G (s) _ Kl Ke (7)
c - s2 + K2 s + Ka s
The velocity control signal v;, of the digital motion control unit is applied to the
power amplifier at T = 1 IDS intervals via a D/ A converter which has a gain of Kd.
The zero order hold equivalent of the Gc(s) for one millisecond sampling interval is:
The closed loop transfer function of the complete feed drive control system is derived
as follows:
or
(11)
The parameters of the closed loop transfer function Gc1(z) are given in Table 3.
There are two critical performance requirements from the feed drive servo: The
first being the smooth transient response in order to avoid oscillatory cutting during
velocity changes; and the second is to minimize the steady state position error (i.e.
following error) in order to achieve precision multi-axis contouring. At steady state
ramping of the position with a feeding velocity of Ie (counts/sec), the following error
is derived as [17]:
Ii Ie T (12)
e.. = z~ (z -1)D(z)Ge(z)"
290
Substituting (8) and (10) into (12) gives the parametric expression for the following
error in the feed drives as:
feK3T (1 + b)(l + al + ao)
(13)
e•• = KlKeKpKd . (1 + a)(b2 + bt + bo)'
It is evident that, the higher the open loop transfer function gain, (i.e. D(z)Ge{z)),
the lower the following error will be, which is desired for precision multi-axis contour-
ing. However, high open loop gain may result in an undesirable oscillatory response
in the servo. The digital filter parameters were tuned to achieve an optimum feed
drive servo response.
j.
K.KIS.
La
Be= 0 - ,0
J.
0 0
The state equation (14) represents the continuous part of the feed drive servo system,
which has the following discrete equivalent solution for an observation interval of
T = 1ms [17]:
291
Kl Ke Kd Kp b2
Kcl
K3
292
(15)
where state and input vectors at sampling interval k are defined as:
(17)
where
(18)
The new variables v;, and ltd can be treated as fourth state respectively. After rear-
ranging equations (18) and (16) and taking their inverse z-transforms, the following
discrete-time state equations are obtained:
where state, input and output vectors are defined respectively as:
293
}J(k) If,,(k)
x(k) =
1,,(k)
W(k)
u(k) = [ X,(k)
Tc(k)
1' y(k) =
1,,(k)
W(k)
X,,(k) Xa(k)
The state matrix G(T), input matrix r(T), output matrix C(T) and transmission
matrix D(T) are defined in order as follows:
-b 0 0 -KpKd(a - b)
hu <Pu <P12 <P13 - huKpKd
G(T) =
h21 <P21 <P22 <P23 - h21KpK d
h31 <P31 <P32 <P33 - h31KpK d
KpKd(a - b) 0
hllKpKd. h12
r(T) =
h21KpKd h22
h31KpKd h32
o 1 0 o o o
D=
001 o o o
000 1 o o
The output vector y( k) gives access to three useful dynamic parameters in the
feed drive servo, namely: the armature current, angular velocity and the position
of the table for a given position command and applied cutting torque. Other states
in the control system can be easily found by multiplying them with the appropriate
gains according to the block diagram shown in Fig. 4.
294
W(S) Kl
(21)
v., (8) = 8 2 + 2 e Wn 8 + W~ .
Here the natural frequency (w n ) and damping ratio (0 of the velocity loop are defined
as follows:
Wn = Fa [rad/sec] , e= 2V.l\.3
K~ < 1,
where Kb K2 > o. The time domain step response of this underdamped velocity
servo is expressed as:
(22)
Experimental step response of the velocity loop was obtained with and without the
table assembly by applying v., = 1.0 volt to the terminals of the amplifier and
simultaneously measuring the velocity from the tachogenerator. Analytical (22) and
measured step responses of the velocity control servo are shown in Fig. 5. The
step response results measured without the table indicate that the theoretical and
experimental results are in agreement. There is a high frequency component of
the step response when the motor is attached to the leadscrew, which is due to
the mechanical dynamics of the leadscrew and table assembly. Overall, the tuned
dynamics of the velocity loop are sufficiently fast for the controlled milling machine.
The frequency response of the velocity loop was analyzed in order to determine
the bandwidth of the controller. The magnitude ratio (M(w)) and the phase angle
(cP( w»of the closed velocity loop controller can be derived from (4) as:
,
Theoretical Experimental
•
•
--
,.-...
[/)
~
~
1-1
'-"
•
....u
~
~
I
.9
~ •
Table connected
• •
TIme (ms)
• Theoretical
•
•
--
,.-...
[/).
Experimental
~1-1 I
'-"
•
-I
• II
•
Time (ms)
• • •
The frequency response measurements were carried out with a Fourier analyzer.
The analyzer's random signal generator output was fed to the input terminal of the
amplifier, and the velocity was measured from the tachogenerator output (Hg) in
volts. The simulated and measured frequency response results are shown in Fig.6.
Although the model and experimental responses agreed fairly well, there were some
deviations. A separate frequency response measurement was carried out by removing
the motor from the table. When the model was modified to include only the motor's
shaft inertia and viscous damping, the measured and simulated frequency response
results were in perfect agreement. Hence, it is concluded that the small deviations
in the frequency response test with the table assembly is due to the presence of
unmodelled nonlinear friction and mec\tanical dynamics of the feed drive assembly.
The results also indicate that the servo seems to be able to follow feeding velocity
changes up-to 60 Hz which is the bandwidth of the velocity loop, see Fig. 6.
0 0 0 0.1724
13.5962 0.5085 -2.4203 -2.6555
G{T) =
0.6231 0.0617 0.8638 -0.1217
0.1392 0.0219 0.6028 0.9728
-0.1724 0
2.6555 0.3749
r(T) =
0.1217 -0.2634
0.0272 -0.0859
297
I~------------------------------~
-I Experimental
...
...
,,--... ... ~~~~
,.0 -II
~-II
Q)
"'d -14
Theoretical
.....E -11
~ -11
::g-ll
...
-Ii
-II
-II
-10
I 11
• Frequency
• • M
•
(Hz)
.. 'III ..
I
-11 Experimental
-.
-II
,,--...
bO
Q)
"'d
'--"
Q) -a
~
..cl -II
P-t
-II
-n
-II
-II
-UI
. Frequency• (Hz) . .
Figure 6: Frequency Response of the Velocity Loop. Top: Table connected, Bottom:
Table disconnected.
298
10
Experimental
18
1.
!~ •• ,VON .... ' ..... '''h' ,........
l'
--
,.-.. 12
UJ
Theoretical
'"0 10
~
r-.
'-"
8
.....~
•
~
u
.s ,
~
a
0
-2
0.00 10.00 aoo •.00 ••00 100.00 1111.00 1".00 180.00
Time (ms)
Figure 7: Transient feeding velocity response of the feed drive servo.
1 0 0 -0.195 0.195 0
o 1 0 o o o
D=
o 0 1 o o o
000 1 o o
The transient response of the position loop was experimentally tested by sending
a leedhold command to the motion controller during steady state feeding of the table.
The feedhold command sets the feeding velocity command to zero and bypasses the
deceleration velocity shapero The resulting feeding velocity response is shown in
Fig. 7, where it is apparent that the analytical and experimental values are in close
agreement.
The steady state position error can be calculated by substituting the servo pa-
rameter values in (13), thus e.. = 0.0137 Ie [counts]. The steady state error for
Ie = 10000 counts/sec (12.7mm/sec) feeding velocity was measured by reading the
299
contents of the up-down counter from the motion-control computer. An average fol-
lowing error of eu = 129 counts (O.1638mm) was observed which is 8 counts(O.Olmm)
less than the analytical prediction. Measurements across a range of velocities showed
that the steady state error is not quite linear, this being mainly due to effect of the
nonlinear friction characteristics of the table which are not accounted in the linear
model.
30~--------------------------------'
I
Jc
constant
,
feed
20 - -.....-....:..-----""\.
acceleration deceleration
/'
'"
O-+---r-~-...,...-"""\.
o 0.1
Ie
Figure 8: Velocity profile of an axis for a linear tool path. (Note: Acceleration period
o S t S O.ls -+ I = at; O.ls S t S (tJ - 0.1) -+ I = Ie; Deceleration period
(t - O.ls) S tJ -+ I = Ie - at. Ie =constant feed value, a = Ie/0.1 velocity
dependent acceleration.)
generates independent position command pulses to x and y axis feed drive servos.
The disturbance cutting torque components on the x and y feed drive shafts are
shown as Tea; and Tcy respectively in Fig. 10. Both drives have identical control
structures, and the state space equation 20, which allows time varying position and
cutting torque disturbance inputs, is used for both axis in the following simulation
cases. Feeding velocity of 1= 20mm/sec(15748count/sec) is used in all simulations
indicated otherwise. The circular arc is generated by sending following position
commands to x - axis and y-axis feed drive servos:
x(kT) = Rsin(we·kT) }
(24)
y(kT) = Rcos(we · kT)
where R is the radius of arc, T = 1ms is the sampling period, k is the sampling
counter. The angular velocity for circular contouring (we) is calculated from the
feeding velocity command and the radius of the arc (i.e., We = 1/ R). The velocity
profiles, which have acceleration and deceleration periods at the geometric transients,
are shown in Fig. 11 for the tool paths simulated.
301
200~-----------------------------,
150
IIII 100
.~
>.
50
x-axis (mm)
Figure 9: Standard workpiece profile to test contouring accuracy of CNC machine
tools.
Tcx(t)
c
0 Xo.
:p
d £
Xr(t) 0 ..s::
Q. +'
I....
III
s::0 Tcy(t)
+' (J)
c
...... <[
u Yo.
z
u
during machining of an arc segment, the contouring errors are negligibly small, see
Fig. 15.a. The correct strategy to avoid the error at transient corners of the profile
is to decelerate the axes until the position errors become zero in an NC block before
the next one is executed to follow a new trajectory. However, if the geometry has
many small geometric segments, it may be very unproductive to stop and start at
short time intervals. The sharp corners are smoothed out by the dynamics of the
servos as illustrated at constant feed contouring. The process planner has to consider
the tradeoffs between the precision and the productivity, which is obviously a part
tolerance dependent decision.
20 mm/sec
o
0.1 0.1
-20 mm/sec
------------------------~----~
20 mm/sec
o
a)
-20 mm/sec --------------- .. ----------------_'--_-J/
Time (8)
20 mm/sec
-20 mm/sec
20 mm/sec
-20 mm/sec
Time (8)
Figure 11: Velocity command profiles for the test geometry. Top: contouring of a
square corner, bottom: contouring of a diamond.
304
150.6,------------------.
. DESIRED
,......., 150 I
/'
--~tI.l
.~ 149.5
ACTtJAL
I
>.
149
a)
148.6
149.8 149.9 150 1SO.1
x-axis
150.6
DESIRED
150
I
/'
,.......,
--~
tI.l
.~ 149.5
ACTUAL
I
>.
149
b)
148.6
149.8 149.9 150 1SO.1
x-axis
Figure 12: Simulation of contouring a square corner. Top: cornering with perfectly
matched axis dynamics, bottom: cornering with mismatched dynamics.
305
150.2~-------------------'
150
1
........
149 8
.
fIJ 149.6
.~
I
>'149.4
149.2
a)
149+-~~r-""-.-.-r-r-.'-'-~~r-,,,,~
99 99.5 100 100.5 101
x-axis (nun)
150.2
DESIRED
150
1
J
149 8
.
"--'
fIJ 149.6
.~
I
>'149.4
149.2 ACTUAL
b)
149~~~-r-''-T-~~-r,-~~~-r-r'-'
99 99.5 100 100.5 101
x-axis (nun)
Figure 13: Simulation of contouring a diamond profile. Top: contouring with per-
fectly matched dynamics, bottom: Contouring with mismatched dynamics.
306
151.-----------------------------------~
150
,,--..
§
'-'"
149
tf.l
.~ 148
>.
147
146
97 99 101 103
x-axis (nun)
101
DESIRED
150 /
....--..
§ 149
'-'"
tf.l
.~ 148
I
>.
147
b)
146
97 99 101 103
x-axis (nun)
Figure 14: Simulation of contouring a diamond profile with a constant velocity. Top:
contouring with perfectly matched dynamics, bottom: Contouring with mismatched
dynamics. (Note: The velocity of the y axis is stopped and reversed stepwise at the
diamond point.)
307
pected since the friction coefficient is also approximately 3 times larger in one of the
axis. The velocity profile for diamond machining, which requires the coordination
of both axis, is shown in Fig. l1.b. There is a contouring error of 0.14mm along
the linear profile due to different following error amplitudes in each axis. Again, if a
constant velocity policy is used in the machining of sharp corners, the amplitude of
contouring error becomes much larger due to influence of mismatched dynamics, see
Fig. 14.b. A stable tracking error is predicted in the contouring of an arc as shown
in Fig. 15.b. It is rather difficult to compensate the contouring errors produced by
the mismatched dynamics with the current structure of a controller.
86.5,-------------------.
86
1
'-"
CI.l 85.5
.~
»
I
85
ACTUAL
a)
84.5
84 84.5 85 85.5 86
x-axis (nun)
86.5
DESm.ED
86
..--..
§
'-"
CI.l 85.5
.~
»
I
85
b)
ACTUAL
84.5
84 84.5 85 85.5 86
x-axis (mm)
Figure 15: Contouring of an arc profile. Top: contouring with perfectly matched
dynamics, bottom: Contouring with mismatched dynamics.
309
7 Conclusion
A practical and analytical guide for the design principles of a modular research CNC
system is presented. The architecture of the controller, transfer functions and state
space models of the physical and digital control modules of a feed drive servo are
substantiated with experimental verifications. The developed model can be used
in time domain simulations of positioning accuracy, variations in the current and
velocity states for time varying position and cutting torque disturbances. Analysis
of contouring errors for dual axis feed drive systems are presented. It is shown that
when the dynamics of both axis are matched, there is no machining error when
the geometry changes smoothly. At sharp geometric transients, where velocities are
commanded to change suddenly, the contouring errors are shown to be unavoidable.
It is shown that for the feed drives which have lead screws and gear reductions,
the influence of the reflected cutting torque on the contouring accuracy is negligibly
small at practical machining feedrates.
References
[1] J.Tlusty, G.C.Andrews, 'Critical Review of Sensors for Unmanned Machining',
Annals of GIRP, voI.32/2, p.563-572, 1983.
[4] J.G.Bollinger, G.Stute and H. Van Brussel, 'Digital Controls and Feed Drives:
State of the Art and New Developments', Annals of CIRP, vol.29/2, pp. 497-
5061982.
[11] R.Doraiswami, A.Gulliver, 'A Control Strategy for Computer Numerical Con-
trol Machine Exhibiting Precision and Rapidity', Transactions of ASME, J. of
Dynamical Systems, Measurement and Control, voI.106, pp.56-62, March 1984.
[13] K.Srinivasan, 'A General Multivariable Structure for Coordinated Control Ap-
plications', Proceeding of American Control Conference, June 1987.
[14] P.K.Kulkarni, K. Srinivasan, 'Optimal Contouring Control of Multi-Axial Feed
Drive Servomechanisms', Transactions of ASME, Jour'nal of Engineering for
Industry, May 1989.
[15J BaZdor DC Servo Motor and UMI Amplifier Manual, Baldor Servo Products,
Fremont, CA, 1987.
[16] DMC-230 Motion Control Unit Manual, Galil Motion Control Inc., Palo Alto,
CA,1987.
[17] K.Ogata, Discrete Time Control Systems, Prentice Hall, ppA50-455, 1987.
[18J Waler,S., Stute,G., Electrical Feed Drive for Machine Tools, Edited by Hans
Gross, John Wiley & Sons Ltd, 1983.
CHAPTER 13
ABSlRACT: This chapter presents the study and realization of a control loop flexible cell. The first part
is a description of the functional requirements, which define the functions that have to be made by the
physical manufacturing system, the industrial information system, and the manufacturing controller. The
structural requirements are described in the second part. They specify both the distributed control architecture
at cell and machine level, and the communication architecture. The control loop of the cell is achieved by
the quality control of the products and the monitoring of the equipment. The third part comprises the study
and the realization of an experimental cell in the laboratory. Many functions form the running at the cell
level. We only present the coordination between cell and station, and the planning of part handling. The
realization of the communication functions is presented; MAP, Ethernet, 3+ Open, and Bitbus networks are
used. The machine level is formed by three main components : the machine computer, supporting the
supervision, the numerical controller, and the fieldbus which for example achieves control and monitoring
of the fixturing device. The control loop of the machining process by dimensional measurement, is achieved
directly on the machine by gauging or by a vision system. It permits to correct in real time the machining
process, which achieves to keep optimal quality.
1. Introduction
The control of manufacturing units relies upon the implementation of many functions, including the
design of the products, the design of the associated manufacturing posts and the maintenance of the
means of production. Only the integration of these functions allows to search for a global
optimization of the process.
The integration of the control functions needs a suitable computer structure, which is
necessarily distributed, because the intelligence of the various functions is geographically
distributed. This requires methods and efficient tools in order to use and maintain:
- communication networks which carry different types of information,
- databases which store this information, and have to achieve their coherence and
consistence,
- real time and distributed computer systems which have permanently to co-operate.
311
312
Obviously reliable operating and quality assurance are essential to ensure economical interest.
This article presents the implementation of these principles limited at the level of a
manufacturing cell. With the experience of the study and realization of an automated manufacturing
island, [ I], we have developped a flexible manufacturing cell, which uses the same concepts:
- utilization of quality control as feedback,
- maximal flexibility of the cell related to new production,
- distribution of the control.
New concepts have been inserted:
- control loop for the equipment at each level,
- development of the distribution of decisions taken related to work chain defaults,
- global management of the information.
This cell can be integrated in to the global shop management. The integration of this concept
is only possible by the use of evolved computer systems, special local area networks which assume
the distribution of functions, and multi-task real time operating systems.
2.1. INTRODUCTION
The cell is materially integrated in the workshop structure as a product transformation unit and as a
manufacturing information unit. It is also integrated as a structural entity of the manufacturing
function which is able to plan its own manufacturing activity. The cell's real performance depends
on the functional specifications described in this paragraph.
In the workshop, machine regrouping and consequently cell machines is a result of group
structuration technologies. The cell is a transformation entity of material flow composed of parts
flow and tools flow. The cell can be in the situation of bottleneck or non bottleneck.
- Non bottleneck. It does not slow down the product flow. Its local productivity is not an
optimization criterion. However, it is avantageous to use idle time to optimize quality assurance and
so, to increase speed of material flow in downstream cells, which can be in a bottle neck situation.
- Bottleneck. It slows down the product flow. All possibilities which can increase material
flow speed must be studied,especially by using possibilities of freedom degrees which belong to
manufacturing process.Productivity research is not an optimization criterion for the cell,but only for
all the manufacturing process. The manufacturing cell plan is determined by workshop
313
planning .This uses a global productivity criterion ,which involves interdependance between
manufacturing cells, to achieve the lowest production costs.
To satisfy these constraints, he manufacturing flexibility must be raised to a maximum,as
well as the decisionnal autonomy which is distributed on all the machines of the cell.This
decisionnal autonomy must be integrated in the decisionnal structure defined by the workshop
planning system.
On the other hand, tools data must respect standardization of manufacturing data to satisfy
manufacturing flexibility allowed by the manufacturing process.
2.4.1. The Planning. The planning system partly implemented in the workshop, sends to the cell,
manufacturing orders which are always linked to a product. These orders can be issued from
workshop or other cells and depend on the planning method used [2] (MRP, OPT, PBC, ... ).
Each method has its own field application specific to enterprise production type. Their
objective is the product flow regulation in the workshop. Their differences are assessment of
criterion of performances and method of batch definition.
Cell planning must be adaptable to every manufacturing planning system and must:
- accept random or sample time distribution for manufacturing orders
- take in account the criterion of the manufacturing planning method
- regulate its own product flow in accordance with batch size and the ultimate date defined by
manufacturing planning system
-permit as soon as possible that the machines of cell choice product affectation to treat
equipment defaults in real time. This product affectation must respect manufacturing rules, function
314
of evaluation criterion, manufacturing method and bottleneck or non bottleneck situation of the cell
for this product.
2.4.2. Quality. The quality control of the cell is a factor of optimal regulation of parts flow and
must be integrated in to the manufacturing process. This quality function must have an autonomous
level to take decisions, to control and maintain product quality [3].
The cell must have its own equipment to realize quality control defined in computer aided
design process. It must decide to perform a control operation and if necessary a second operation
function of technical possibilities defined by CAD and of manufacturing rules. This control loop
function must be applied as much to product quality as to equipment control, it means to the whole
manufacturing process. It is necessary to implement analysis and diagnostics methodology based
on conformity control data and state equipments. This control loop function is able to predict
defaults as much as possible and eventually to cure them. The cell maintenance function is closely
linked to cell quality function.
- The cell maintenance function monitors all manufacturing means which are assigned to the
cell. The control loop function at the cell performs with all data given by the process sensors allows
to monitor equipment and eventually to predict defaults. So a predictive maintenance politic can be
defined by the planning system to avoid failures and to ensure maximal product flow.
2.4.4. Computer Aided Design and Manufacturing. The control loop functional constraints can
only be satisfied with a research of flexibility in manufacturing sheet. A half automstised data
process generates a flexible manufacturing sheet described with operation entities, therefore several
possibilities are able to be performed on cell, depending of equipment availability.
Entity concept increases a commom functional perception between different actors of the
manufacturing process (CAD, CAM, CAP, operator, ... ).
These functional entities (manufacturing, handling, qualification) are directly performed on
the different processes of corresponding machines.
3.Structural Requirements
3.1.1. Introduction. The ideas thai prevail in design and realization of a flexible cell control
structure, are the following:
- to respond to the production objectives prepared at shop level, therefore being able to
operate with various management rules,
- to change the cell configuration in real time, in order to mitigate the consequences of a
hardware failure. or to suit the production variations.
- to allow _the intervention of a supervision operator,
- to decentralize intelligence. by treating localy as much as possible. what may be done. from
a control or diagnosis point of view [4].
- to structure the control in layers. in order to create an independance of the upper layer with
regard to the hardware.
- to integrate quality control in order to ensure a feedback to the machining.
315
- to use a virtual machine model [5]. This model is organized into two layers : the
input/output posts layer, interfaced with the cell, and the station layer. The latter is itself split into
three sub-layers: supervision, process and ressources.
The on-line evaluation of the parts evolution is a great deal simplified if the cell is compared
with a set of input/output posts that mayor may not accept continually the product. The working
posts where the operations (machining, control, headling)are linked up , are intemaly controlled by
the machines (figure 1).
manufacturing plan
planning
sheet manufacturing orders
manufac-
Q H turing
] process
T
Trans- Quali- control
Hand-
~ subllevel forma- fication
ling
by
entitles
tion
D
nume- vision
resource rical control-
subllevel control- ler
ler
3.1.2. Control Distribution. The control architecture is divided into two levels:
- the cell level control, that has to manage the part flow in the cell,
- the machine level control that has to ensure the product manufacture [6].
3.1.2.1. Cell Level. The cell level control distributes a set of tasks to each piece of equipment that
depends on:
-the technical possibilites of each one;
- the analysis of the management function: production instructions, manufacturing orders
coming from real time scheduling, management rules, supervision operator decision;
- the manufacturing data: planning sheets, entities coming from Computer Aided
Manufacturing.
3.1.2.2. Machine Level. The machine level control communicates with the cell level by the state of
input/output posts. The planning sheet corresponding to each part on a post is formed by a
sequence of entities of machining qualification and handling. The entities order depends on the
results of the qualification operation and equipements state. The machining of several parts on a
palet in working position may be realized in parallel in order to reduce the idle time corresponding
to tool changes. This possibility requires the creation of an upper control level on the machine.
While on classical numerical controlled machines the part program generates the driving of
operating functions, this new constraint implies to dissociate two functions indeed: to realize the
parts and to drive the machine operating functions. The sequence of the functions transformation,
qualification and handling, is elaborated by the supervision sub-level, from the work to do, the
management of the quality, the state of machine resources, with the objective to obtain the minimal
delay or the maximal quality depending of the cell context.
The process sub-level is divided into three functional modules: transformation, qualification,
handling. It drives the machine operating functions and gives execution reports to the supervisor
that is so able to control the manufacturing quality and the equipment.. Qualification entities include
analysis of measure results and name of object to correct: tool wear compensation, dimension of
finished part, ... The supervision sub-level applies this correction to the next entities.
3.1.3. Communication Architecture. The cell level control and corresponding information
management are implemented on a computer named cell computer. The intelligent functions on each
machine forming the cell are implemented on a computer named machine computer. These
computers support, of course, the communication functions inherent in distributed systems.
A great distribution implies a great communication flow. This communication is characterized
by:
- the global throughput,
- the flow constitution: periodic or aperiodic messages, short or long messages,
- the constraints related to the transport delay,
- the type of information: text. image, voice.
In the studied cell, the analysis of information exchanges characteristics between the remote
modules shows the existence of three communication classes (figure 2) :
- Oasse 1 : communication between cell computer and others macro-elements of the company
such as others cells. computer-aided design shop, computer-aided planning shop .... Messages are
317
long and aperiodic, transport delays are not strictly limited but have to be maintained at in acceptable
values. The throughput is high. Text only is carried, but images will probabily be exchanged later.
Class 1 Communication
I I I I
Cell Cell CAD/CAM CAP
Computer Computer shop shop
I
Class 2 Commumcanon
I I I I
Machine Machine Measuring Vision
Computer Machine
Computer Controller
Controller
I I I
Class 3 Commumcanon
I I
I I I
I I
- Oasse 2 : communication between control elements in the cell : cell computer, machine
computers, measuring machine controller, vision controller, ... Messages have middle sizes.
Transport delays are limited to ensure real time operation.
- Classe 3 : communication between process elements, i.e. sensors and actuators, and the
control elements. Messages are short. Transport delays have to be very small.
Each class has a corresponding adapted local area network. This network must also deliver
information without transmission errors, and must be reliable.
Note: this architecture is not hierarchic. Communication may be shared in classe 2 and classe
3 for cell elements,_ if necessary.
3.2.1. Control loop of the cell by means of quality control. Optimal control of manufacturing
process must be achieved by means of control loops at several levels of the system in order to
realize correction (figure 3). The feedback controls require :
318
- to take into account measurements directly on the process with specific sensors
(temperature. vibrations. force .... ).
- to measure directly the part on the machine by probing (part orientation. half finished cut .
... ) or by means of a vision system (surface roughness •... ).
- to control tool wear and clamping devices.
- and after part machining. to inspect the part on a measuring machine.
With this informtion. corrections on the machining process can be performed in delayed time
defined by measuring process :
- immediatly with direct measures on the process with specific sensors. to correct feed and
speed or to stop the machine if a default is detected.
- with the following part machining a handling entity after measure with probing of part
orientation or half finished cut depth.
-with the following part after inspection on measuring machine. To achieve the feedback
controls on different process levels it is necessary to transmit. store and elaborate new data and to
integrate it in the cell control structure.
This cell control structure has several levels of data processing:
- machine tool level. The computer. connected to numerical control and specific equipment.
stores and analyses quality data issued from sensors. probing or vision system. Machine tool
corrections are directly performed on the machining process (speed. feed) or on the following entity
- cell level. Quality inspection of finished part on measuring machine. off line of machining
process. allows a control loop of quality with elaboration of a new manufacturing cell plan.
3.2.2. Control Loop of Equipment.. Control loop of equipment requires the modelling of the
behaviour of cell operating part or resources of the machine. The objective is to define monitors and
behaviour filters in order to pre-process information and thus to detect failures and there origins.
The functionalities of behaviour filters and monitors are appreciably distinctive. because a
filter may directly act on the actuators (figure 4).
These monitors and behaviour filters are integrated in the resource sub-level of the machine.
They return information to process modules during operation. or to the supervision sub-level at the
end of operation. For instance the behaviour of a tool is characterized by the wear monitor during
machining operation. and by information related to quality control. life duration. wear ratio •...
The control loop may be realized in short at several levels depending on information type :
- information coming from operating part by behaviour filter.
- information coming from machining by predictive model related to the dimension
fluctuation. by tool wear monitor. by model related to adaptative control •...
- information coming from probing or vision by position transformation model related to the
balancing.
319
cell
revised process plan computer inspection results
J
- -
Local area netWork:
I
,
position
or tool
I machine I
computer I intennittent
gauging
I I machine
computer
I
correction on machine tool
, I measuring
machine
I
I
Inumerical
in[ control in process
process measures
I
actions or
corrections
,
~ machining sensors\--
process
gauging,
..
Functional
"I To acwators
CON1ROLLER orders ...
BEHAVIOUR OPERATING
MONITOR
4.1.1. Introduction. The realization report of this level is intentionally limited to the coordination
function between cell and station level and to flow product planning according to manufacturing
planning rules.
4.1.2. Coordination between Cell and Station. When the cell decides to carry a new part to a
station, when the station is already machining, the reception point must not be the same as the part
being machined.
The station has to look logically at his point so that the cell does not use it.
For the same reason, the station does not put the part back on a place which is free for the
cell.
This reasoning is true for all objects exchanged by cell and stations. We have defined a
informational structure which insures that cell and stations have access to a place or its content with
mutual exclusion.
This structure is called reception post. It can be described by a diagram of the possible states
of the post (figure 5). Each state commutation is transmitted to the cell or the station. These
messages allow coordination between cell and stations.
... - - -
waiting
station
objet is taken station
+
working
...
waiting
transfert
- - -
~
objet is taken robot
empty
... - - - objet is deposited robot
When a station wants to evacuate a part. palet. or resource (Le. weared tool). it modifies the
state of the post belonging the object by sending the message "work finished" to the structure of the
reception object post. This structure points out its new state to the cell. which is informed on line
that a new object must be shifted.
When the handling device affected to this deplacement has physically pulled off the object. it
informs the reception post which state becomes "free". Also the reception post informs the cell
which will be able to choose this reception post for reception of another handling operation.
When the same handling device puts the object on its new place. it informs the associated
reception post which commutes in state "waiting station".
The reception post informs of its new state the station which knows that it has to receive the
object.The station carries out its application on the object (machining for instance) and forbids the
reception post access to the cell by commuting it in the state "waiting". In particular. the cell can not
dispose of this post while it is no longer waiting for the station. For the cell control. a machine is
considered like a physical entity composed by one or several station themselves composed by one
or several posts.
A graphical tool1ike GRAFCET is particularly fitted to describe the control structure of object
handling and can generate directly an executable code by using advancing and interpretation rules
without ambiguity.
The original vocation of functional diagram GRAFCET is to be a specification tool which
improves the methodological approach for definition and conception of the control structure [7].
This is achieved independently of realizational consideration of the automated system.
Based on step and transitions ideas. it permits us to describe all expected behaviours of a
process confronted with sensitive events to detect all incoherences and to express merely notions
like parallelism. synchronism and cooperation.
The rigourous formalism and deterministic solution which it supplies. allows the
transformation of this description tool into a true programmation language which principal
characteristic is to be not only structured but also structures the application.
For a great number of robotic applications. programming consists of moving and action
sequence description of parts and tools. depending on inside or outside data. So we think that
Grafcet may be applied to robotics.
We have developped a programming tool GRAFCET. called GRAFCET LM. comprising a
graphic editor and a translator compiler providing a source program in LM language [8]. This tool
generates in a first step the application structure. then allows touching up. principaly to integrate
concepts which cannot be directly included in GRAFCET : for instance teaching mode moving.
Figure 6 presents an example of GRAFCET LM programmation for exchange between two
posts.
What ever the manufacturing planning method used in the workshop, the aim is to supply the
ordered parts on the requested date.
- Computed by the workshop with MRP
- function of cell estimated manufacturing times with Kanban and OPT.
4.1.3.2. Assignment rule. Before determining the destination of an object to move, the cell reads
the report of the previous work on this part.
- If this report is negative, the cell can determine second operation solutions which are a
function of :
- the object type
- the possibilities of second operation in the part sheet.
Among the objects which are waiting for a transfer, some are resources to evacuate (weared
tool, ... ) or new resources for a station. They do not receive machining a measurement
operations in the station, then the associated working load is lower (time to set up in the
station) than working load for a manufacturing operation.
The associated operations are automated reconfiguration operations of the cell can receive
variable priority degrees.
The simplest planning which can be realized in the cell consists on an equal repartition of
working loads on the reception posts, on the corresponding stations, so that the station does not
become bottleneck in OPT planning. The working load is translated in working time.
A station does not load up its working capacity time, otherwise the cell can become a
bottleneck for the workshop.
When the cell plans handling operations, it considers the working load generated by
machining or control operations on the parts, and also by operation tool control or sharpening.
The cell selects the object destinations which increase as little as possible the working load of
the stations. The cell does not consider station working load but working load of reception post.
4.1.3.3. Impossible assignment.A file of free posts is managed by cell level which receives post
messages. Among free posts, it is possible that no one is physically able to accept objet to move for
two reasons :
- posts which can physically accept it have no more space,
- posts cannot accept it while there are no stations which can achieve the associated
operations.
In the first case, it is necessary to wait until a post becomes free, or to put the object on a
transit stock, or a less prioritary object which would unblock the post.
In the second case, the cell searches in its database for the missing resources and for the
station able to achieve the operation.
If the missing resources are present on other cell posts, in particular in transit stock, the cell
is able to drive these post states, so as to plan their transfers to the concerning station. In the other
case, it has to request necessary resources.
The cell must verify that the station can physically receive the sent resources.
323
wrist free
prepare post i
(grip, placing) part k
close grip j
close post i
4.2.1. Introduction. In order to simplify the realization a two level communication structure is used
(figure 7):
- a cell level that includes classes I and 2 defined in the structural requirements,
- a field level corresponding to classe 3.
This section only presents the cell level. Note that the regrouping of classes I and 2 at cell
level does not limit the transposition of software developments because these use application service
elements normally included on netwOlKs dedicated to either two classes.
MAP specifies a set of standard communication services for factory automation. The
specifications provide compatibility from the application layer to the physical layer. MAP uses the
ISO 8802.4. Token-passing bus on broadband bus medium for the factory backbone, and one
carrierband bus medium for subnets.
Full MAP 3.0 is in conformity with OSI model. It is used as the backbone network of the
factory. Three OSI services are currently provided for the user (figure 8) :
- MMS (Manufacturing Message Specification) ;
- FTAM (File Transfer, Access and Management) ;
- ISO/CCITT X500 Directory Services.
Directory
7b MMS flAM Service
I----~...........- - - I
ROSE
7a ACSE
6 Presentation layer
But the poor perfonnance of FTAM set a problem as the non-existence today of a database
management system operating on MAP. Therefore we used also an Ethernet network with the
netwoJX operating system 3+ OPEN LAN Manager from 3 COM Corporation. On this system has
been installed SQL Server. This multi-users relational database manager has been chosen because
of its opening and perfonnances qualities.
4.3.1. Used hardware. The experimental machine is created from a previous bought by the
laboratory machine tool. This machine is a CU 60 type machining center from Graffenstaden
Company controlled by a CNC NUM 760F.
This machine is a good answer to a range of present industrial requirements but has not all
the technical characteristics required in this project. Specially miss the possibility to developp smart
functions dedicated to control loop and a fieldbus allowing extensions with sensors and actuators.
The machine supervision software is implemented in a PS/2 micro-computer built on AT
bus and runs under OS/2 operating system. It communicates with the numerical controller by RS
232 link using a simple exchange protocol.
As fieldbus Bitbus from Intel Corporation, has been chosen because it is already used in the
industrial environment. This network extends the programmable logic controller capacities of CNC.
The programmable logic controller connection to the network uses a Bitbus node and a RS 232
link.
4.3.2. The machine computer. This micro-computer is chosen as it can work under the
multi-task operating system OS/2 and has an AT bus that authorizes a large choice of interface
boards. Its memory capacity is 8 mega-bytes, its hard disk capacity is 40 mega-bytes. The various
control tasks are developped using OBJECT!! object-oriented language. OS/2 and OBJECT!! offer
comfortable developpment tools and product user-friendly applications. This micro-computer
supports the communication on MAP and Ethernet networks. MMS-EASE and 3+ OPEN LAN
Manager therefore run on it .
4.3.3. The numerical controller. The NUM 760 controller has a modular architecture
described in figure 10. It includes three main processors:
- the numerical control processor that manages the part programs in memory, controls their
execution, realizes calculation and drives the axis; it is directly linked with the panel processor;
- the PLC (Programmable Logic controller) processor that processes the logical control
functions of the machine, especially those related to tools magazin and palets;
- the LPC (Link Processor Controller) that controls the exchanges between either previous
processors and external systems according to a user programmable protocol. These three
processors exchange infonnation on a common bus using control blocks.
A constructer specific real time operating system is active on each processor. It is the same on
PLC and LPC and it is open. This allows the developpment of new tasks written in an assembly
language similar, but not the same, as ASM 6809 from Motorola. The program debugging is
realized under the system using a specific utility program.
326
- J t Ethernet ..
-- II'-
MAP
J
I
-
.
, , - --
'If ,
PS/2 AT BUS PC
MACHINE
OOMPUTER IPCX
---- - 344
OS/2
1'
RS 232 RS 232" BrrBUS '"
DA1EM J
.....
it
L.P.C P.L.C
~6809 6809
iA.
NC Processor
I.... IRCB
11 68000 r--
44/10
~ ~rfh..m..- i
I
Machine Tool CU 60
Station 1 : Machining Center Station 2
- --
Figure 7 - Computers, controllers and networks in the cell
4.3.4. Control by the fieldbus : application to futuring device. The PLC functionalities
extension across Bitbus network allows to decentralize into Bitbus nodes the tending of operating
parts by behaviour filters implementation.
The Bitbus network is formed by nodes that are built around a microcontroller monochip
Intel 8044. This microcontroller is composed of a 8051 Central Processor Unit and a serial interface
unit. The real-time multi-tasks operating system iDCX 51 run on this microcontroller, and is the
heart of Bitbus software.
327
Application Program
API
Computer
MMS-EASE
Computer
Layer 7
Bus
J
Internal
Layer 1 Broadband / Carrierband or MODEM
External
MEDIUM
Bitbus application layer is based on a task integrated in the firmware with iDCX. This task
named RAC (Remote Access and Control) is a special purpose task that allows the user to transfer
commands and program variables to and from Bitbus controllers to obtain the status of Input/Output
or data lines, or reverse the state of an Input/Output line or read and write memory ,etc ... Each node
accepts a maximum of eight tasks : the RAC task is one, and seven may be created by the user.
Bitbus uses a master - slave communication. Remote task communication is performed by a set of
interactions (figure 11).
A toolbox provides the user with software utilities that speed and simplify development and
debugging of applications.
The behaviour filter is implemented on Bitbus node using six tasks to control the fixturing
device: MAIN task, INTERRUPf tasks, PREPARE task (place, take), PLACE task, TAKE task,
CLOSE task (place, take).
328
PLC Processor
6809
NC Processor
I 68000 I
IE~=I8K
32 outputs
Tape reader'
Punch
I
I RAM8K P
L
N
Operator panel C
C
Serial link
B r------, U
B 32 inputs
U ' Memory extension!
A xis s ,
'
S
I
-+
Feed reference
Coordinates
16
32Ko
I
L."
"- '..
8
PLC controlled
2 axis board
for PLC program I
Measures
Machine zero B L ______ .J
B
Feed reference
I Coordinates
I Measures
T
T
NCMemory s S
Machine zero
LPC Processor
REPROM
+ I 6809
PLC
interrupt board
RAM EEPROM
40K
IRAM 16KI
RS 232 links to
computer or network interface
The objective of MAIN task is the reading and interpretation of commands, the management
of operating states, initialization of control field and sequences starting. It is a non-interrupted
tasks.
The INTERRUPT task has a priority on all others tasks. It interrupts the present sequence
and awaits either a default acknowledgement order or an initialization order.
The PREPARE task realizes the real actuators driving in order to unlock the part, and the
supervision of the action. This task may be interrupted.
The PLACE task corresponds to the supervision of the part placing by the robot. It is a non-
interrupted task.
329
SLAVE 1 SLAVE 2
TASK? TASK?
TASK 2 TASK 2
TASKl TASKl
1 ~ COMMUNICATlONBE1WEENLOCAL TASKS
TASK!
2 ~ COMMAND MESSAGE, FROM MASTER
4~ COMMUNICATlONBE1WEEN NODE
TASK?
MASTER
The TAKE task corresponds to the supervision of the part taking by the robot. It is a non-
interrupted task.
The CLOSE task realizes the real actuators driving in order to lock the part, and the
supervision of action. This task may be interrupted.
Figure 12 shows the link between the tasks.
4.4.1. Introduction. Control loop on machining process is a process performed on the machine tool
using the feedback of dimensional control of part, tool and clamping device. Two dimensional
technologies are integrated on the machine:
- measurement on the machine with a touch probe type "Renishaw" and by using encoder
position signals as position sensors;
- measurement by vision system with a fixed camera or moved by a robot.
These two systems have their own application fields, however they can have an intersection
domain.
4.4.2. The measure with a touch probe on machine tool. Most high technology machine tools are
equipped with this functional possibility. The principal restrictions are:
- Analysis of measure results are performed in NC program by using program parameters.
Mathematical operations, inevitably restricted, aIJow only paraxial control, which limits surface
identification.
-This probing function, specific to each numerical control technic, is not integrable in a
CAD-CAM software.
To resolve the problem caused by these two constraints, the solution is to use the
communication and data exchange possibilities of the NC and to implement analysis measurement
function on the machine computer.
The probing programs executable on the machine tool are limited to probing path in a
moving mode and encoder information transfer by LPC processor to the machine computer. These
programs are generated by a CAD-CAM software using entities description of manufacturing sheet.
The generated code is an ISO code in which we have integrated sequences which permit
synchronization of results transfer (figure 13).
When the geometrical entity is probed, encoder information are analysed on the
qualification sublevel of machine control. This function achieves:
- the transformation of encoder information in part reference,
- probing touch radius compensation with normal approach,
- identification of simple geometrical entity (straightline, plane, circle, cylinder, cone,
sphere) with shape default and positionning in part reference,
-balancing oftheorical points in relation to measured points in part reference,
- statistical analysis of machining dimensions and prediction of fluctuations rIO].
331
NlOOOXA YAZA
N20 ElOOOl=O --> semaphore initialization
N3000l 010 XB YB ZB --> probing B
N40 ElOOOl=l --> measure to transfer
N5000 XA YAZA
N60 00 XC YC ZC
N70 ElOOOl=O
From this analysis, the diagnosis function detects the following defaults:
- bad part positioning,
- weared tool,
- machining dimension fluctuation.
These are corrected by the station level by :
- a new part positioning,
- radius tool wear compensation,
- machining dimension correction.
4.4.3. The measure with vision system. The functional possibilities are large in control loop cell :
dimensional inspection, localisation and recognition of part and tool, robot guiding. Although less
accuracy than touch probing for dimensional inspection, the advantage of vision system is data
availability and speed acquisition. The vision processor assigned to the machine is connected to the
machine computer on the same level that the other machine equipment.
332
A vision control interpreter has been developped to perfonn data processing execution
using simple description. Part description with dimensional entities allows automated parametering
of shape recognition and localisation modules.
The implemented shape recognition method perfonns noisy scenes recognition or
incomplete representation.
The object modelling with entities is improved progressly by threshold adjustment and by
an entities research strategy with likeness factor.
The object localisation makes easier their grasping by the handling system and is perfonned
in stereovision to define the object position in the working space. As for inspection with touch
probing on the machine, the defaults diagnosis and corrective actions calculation are achieved in the
machine computer.
5. Conclusion
The concepts synthesis developped in the control loop cell obviously expresses the fact that
cell perfonnances are tightly dependent on those of the infonnation system. Heterogeneity of
industrial equipment and their technical characteristics constrain the architecture and restrict
functional integration. They get illusory optimal exploitation of high technologies.
The electronic industrial equipment, numerical controllers, local area networks, etc ... have
to evolve to a larger capacity of data management. They have also to use more systematical
standards of data representation, data transmission, operating system. The future machines will
integrate directly enhanced control loop functions perfonned with larger instrumentation more
modularly implemented on ficldbus.
Acknowledgements
The authors expess their gratitude to MRT (Ministere de la Recherche et de la Technologic - France)
which supports the project.
References
(5) J. HUYSENTRUYT
"CIM - OSA, a computer integrated manufacturing based on the open system approach",
Proceedings of the 5th international Conference on flexible manufacturing system, p. 215-224.
Strafford Upon Avon, 3 - 5/11/1986.
(7) M. BLANCHARD
"Comprendre, mai'trlser et appliquer Ie Grafcet",
Automatisation et Production, Editions CEPADUES, 1982.
(8) F. MUNERATO
"Robotisation integree d'un flot de production manufacturiere",
These de I'Universite de Nancy 1
Nancy, 18 april 1988.
ABS1RACf. This chapter describes how factory floor devices can be sup-
ported, using microcomputer based Local Area Networks. We start by introducing the
problems faced in computer integrated manufacturing (CIM) environment in general
and why there is a need to support production devices such as robots and Program-
mable Logic Controllers (PLC). After stating the minimum functions required from
any support system, we describe one such a system implemented in General Motors Car
Assembly plant in Oshawa, Canada. Most of the design and development of this system
had to be done in-house, with the assistance of McMaster University engineers, since
this was the first time technologies such as fibre optic media and Manufacturing
Automation Protocol (MAP) were used in full scale production environment. The
design philosophy and some technical aspects of this implementation are also included
here. There are several areas which need further work; we will discuss present efforts
and future directions.
1. INTRODUCflON
These softwares represent a large percentage of the total automation cost, hence
maintenance is critical.
General Motors has stated that by 1990 it would have some 200,000 programmable
devices installed. By that time, enormous numbers of such devices will be operating
throughout the spectrum of manufacturing industries worldwide. With such an increase
in the number of devices, the communications problem would become unmanageable
if no solution was found.
Similar problems were faced in Oshawa Plant in 1982, when we first started to design
the plant Robot and PLC support systems. The General Motors Car Assembly plant in
Oshawa is one of the largest manufacturing facilities in the world. The plant covers an
area of 634 acres with over 147 acres under one roof. The plant workforce totals over
10,000 people, the size of a small town. As part of GM CPC (Chevrolet Pontiac
Canada), Oshawa is responsible for worldwide production of the Buick Regal and
Chevy Lumina models. The plant has two shifts in operation five days a week, with a
production rate of2 cars per minute. Oshawa is part of the GM10 program, with world
class manufacturing as a primary goal. Over $1 billion dollars have been spent on
automation, making it one of the most advanced plants in GM.
At that time there were over 500 robots and 150 PLCs operating throughout the plant,
none of which were linked to the host computers or file servers. Software maintenance
in these devices had to performed manually, which meant for each division of the plant
some body had to go around saving the software of every device on floppy discs or
cartridge tapes which were kept by each shift supervisor for that division. The back up
337
- Economica1- In general, MAP purchase prices are still higher than those of proprie-
tary networks. However, this is just one component of network cost of ownership.
MAP development and maintenance costs are significantly lower. Wiring costs go
down as well, with one common wiring system. Corporate dollars freed up from these
lower costs go into additional training, test equipment and support for MAP, thus
extending our expertise and ability to use MAP effectively. The biggest dollar
benefits though, are those resulting from the increased functionality, reliability and
performance that MAP provides.
3. NE1WORK DESIGN
Three networks have been implemented to data in the Oshawa plant, two for robot
support and one for PLC support. The two robot networks cover a 3000 foot by 1500 ft.
area, linking 515 robots to a host microcomputer and a network manager console
(which is also a microcomputer). The PLC network alone covers a 30 foot by 100 foot
area and contains 150 PLCs. The three networks have the same basic conceptual
design, as shown in Figure 1. Therefore they can be joined forming a single network at
any time. But since each network supports a different production line, it is configured
as a stand- alone system. In Figure 2 a single tapped bus is shown, but the difficulty of
passively tapping fiber optic media dictates the use of a tree topology using passive
couplers and active stars, as shown in Figure 2. The tree topology emulates the passively
tapped bus in that each signal is seen by each station only once, and the packets exit the
network without the intervention of the transmitting station (as in the bus). Each node
has two cables; one for transmission and one for receiving. Eight pairs are connected
to a passive splitter/combiner, which connects a pair of cables to an active concentrator
upstream. Each concentrator can handle 32 pairs (or 256 nodes) from the passive
splitter/combiners. The active concentrators are then connected to a passive star hub.
Transmissions pass from a node on the transmit line, up through the Combiner, through
the active concentrator to the hub, and relayed back to all nodes on the receive line to
be received by the intended node.
The physical and media layers of the network were designed to comply with the IEEE
802.4 specification, chapters 16 and 17. The fiber optic specifications are summarized
below.
Host Network]
Computer Manager
File
System
Transmit Receive
8x1 Combiner
T R
Fiber Cable: Mostly ruggedized duplex 100/140 urn, with some 62.5/125 used in
point to point links.
Active Star: All ports meet station transmitter and receiver specifications, all
signals are re-timed to prevent jitter accumulation.
The industrial devices supported by these networks are GM Fanuc robots, Cincinati
Millacron robots and Allen Bradly PLC3 PLCs. The hosts and network manager
consoles are Intel 80286 and Motorola 680XO based microcomputers. Active and
passive components for the media are supplied by Thomas & Betts, At&T, AMP, and
CD Networks. The network controller cards are supplied by Motorola, Ungermann-
Brass, Concord Communication, and Allen Bradley. The resulting network is a true
multi-vendor environment.
Although we can all appreciate and get excited about MAP technology, the real interest
is in the applications and the benefits they provide the factory. MAP is simply a
networking infrastructure that our support applications use to achieve reliable commu-
nication. With our wiring in place, and interoperability among several vendors, we can
add new applications quickly, and build on this infrastructure. The application soft-
wares developed in-house for these networks are written in C programming language
and run on the hosts under UNIX operating system. To clearly understand what is
involved in supporting plant floor devices, we describe an application we use to support
our production robots. This application is called Robot Support System (RSS) and run
on dedicated IBM PC/AT compatible (this software can also run on Motorola 1131
VME machine).
a) Upload programs from robots and store them on disk. This can be done via user
requests at a system terminal or form any robot on the MAP network.
b) Download programs from the Host's disk into the robot's memory. Again, this can
be done from either a system terminal or directly from any of the robots.
341
The host machine (while very low-cost) takes advantage of the increasing power and
capacity of microcomputer technology. This "little" machine provides very satisfactory
performance and response. In addition, 120 Megabytes of disk storage provide enough
space for thousands of robot programs. Separate space is provided for both the Current
and the Previous working copies, as well as a more secure Master (Production) copy.
There are also some sophisticated features you might not expect on a small system such
as this. For example, the software has been designed to provide logging for all
transactions, built-in debug capabilities, "locking" to avoid dual-simultaneous file
access, on screen help, and powerful ALLFILES function to make the user's job easier.
Based upon the plant's requirements, the system manager can configure a series of
menus starting from the Home Menu through the Robot Menus. Between the Home
Menu and Robot Menu there can be up to 6 Area Menus. Figure 3 illustrates an
example of a generic menu tree structure for a plant. There are two types of menus that
can be defined: an Area Menu and a Robot Menu. An Area Menu is a subdivision of
the plant, which eventually isolates a group of robots. A Robot Menu identifies the
actual names of robots located within a specific plant area.
Once running, RSS allows the user to select a specific robot through a multiple menu
selection process. This process guides the user in a hierarchical fashion from the shop
areas in the plant, the line or sub-areas within the shop, the functions available, to the
robot files.
The user must make a selection at each decision point. For example, the user will first
make a choice between HOME and UTIUTIES. If HOME is chosen, the user will then
make a choice between BODY and TRIM areas. If BODY is chosen, the user will then
choose LEFf or RIGHT within sub-area SIDES, and so on.
RSS is structured in a modular fashion. This provides for reasonably manageable tasks
for development, and allows for the maintainability of the software.
UTILITY FUNCTIONS
TRIM ROBOTS
SIDES END
LEFT FRONT REAR
ROBOTS ROBOTS ROBOTS ROl
R02
R06
R04 ROS
R09 RlO
RIGHT I
FUNCTIONS
ROBOTS I
FILES
R07 R08
Figure 3. Generic Menu Tree Structure for a Plant.
-Function control servers.
The components that manage the logic required to perform the functions
requested by the user.
-Communication servers.
The functions that perform the task of moving files and data between the robot
and the file storage system.
-Terminal configurations.
This system provides for access using many different terminal systems. Terminal
keyboard variations are placed in a configuration file, eliminating the need for
different software when a new or different terminal is added to the system. There
is no dependence on a particular vendor's terminal.
In many cases, a robot will be programmed by the equipment supplier prior to delivery
to the plant. If this is the case, the supplier will probably leave the program in the robot.
This will normally be the case if the robot uses Bubble memory. The supplier also
provides an up-to-date copy of all robot programs on some other media such as cassette
tape or floppy disk.
When the robot program is supplied by the supplier as described above, the robot
program is uploaded from the robot's memory into the RSS system as soon as the RSS
Manager has added the new robot to the network and RSS. Upon uploading the robot
program (or multiple programs if more than one resides on this device), the tape or disk
provided with the robot is also loaded into the robot and uploaded. The first upload will
be automatically copied from the "CURRENT" directory into the "PREVIOUS"
directory, while the "CURRENT" directory will contain the tape image. Next the user
does a compare to see if the two are identical. If there are any differences, the OEM
should be required to explain the discrepancy.
When the robot is programmed by the supplier, the plant probably still has to do some
fine tuning of the robot path after the arm is mounted in its final production position.
During this fine tuning process, the programmer saves his work (Upload into RSS host)
on a periodic basis, especially if it has been very time consuming.
If the entire robot program is to be developed at the plant, then it will be up to the
programmer to do uploads at an interval that is convenient, yet minimizes the potential
lost effort. The point to be remembered by the programmer is that each upload goes
into the "CURRENT" directory, and forces the "CURRENT" copy to be moved into
the "PREVIOUS" directory. At this point, the older "PREVIOUS" copy is destroyed.
If the user feels there is any chance that he might need to go back to an older version,
he should logon to RSS and copy the "PREVIOUS" file into his personal directory.
344
In all cases, once the robot program is finalized and metal has been run through the
station to verify a working program, the user Uploads the finished file to the RSS host.
The programmer will then see to it that this working version is copied into the
"MASTER" directory on RSS. In general, all copies into the "MASTER" directory are
to be made with great care. This copy must be known to be correct and must function
when loaded into the robot.
It is absolutely essential that a person is assigned to be the RSS system manager. All the
other RSS users should know who he is and how he can be contacted. It is also a good
idea that to have a user coordinator for each shift to assist the system manager and help
when the system manager is not present.
4.4 Security
A key administrative function of the system manager is to ensure that each RSS
function can only be accessed by authorized personnel. A security system has been
developed to simplify this job. This system has two modes, "Password Protection" mode
and "Full 3-D Protection" mode. In "Password Protection" mode the system utilizes a
multiple password approach to access the robot and utility functions. Also, a user who
has been granted password permission to a specific function may perform that function
on any device in any area ofthe plant. In contrast, the "Full 3-D Protection" mode relies
on a three-dimensional database (User, Device, and Function) to control the access to
RSS functions. This mode is very flexible, the permission for a user to perform any
function can be granted or denied on any device in any designated plant area. The Full
3-D protection mode can be used in conjunction with Password Protection mode, or the
system may be configured to such that the 3-D mode will serve as an alternative to the
standard Password mode. The user login ID and corresponding password are main-
tained. At the point in which the user attempts to perform a robot function or utility,
the system checks to determine whether or not the user should be permitted to access
the respective RSS functionality, based upon a predefined set of plant rules. The result
of this access check is relayed to RSS. If the permission has been denied, the user will
not be ;illowed to access the selected functionality. All failed attempts to access are
logged. If the 3-D mode grants the user access, the system then uses the password from
the Password Protection mode to supplement the 3-D result. If a non-zero security level
has been assigned to the respective function by the RSS Manager, the user will be
prompted to enter the appropriate password for that security level. The access to the
selected function is granted only if the user responds with the correct password. The
standard security system of any RSS with 3-D Security option installation may be
disabled by assigning a security level of zero to all functions/utilities.
345
The precautions on replacing the MASTER copy of a robot program will continue to
apply to all program modifications. While experience or process adjustments will
demand that the robot programs (logic or path) be changed, all such changes must be
officially approved before the new master program can be copied into the RSS
"MASTER" directory. The official approval process will vary from one plant to
another, and may even vary from time to time within the same plant. In general, it will
consist of identifying the person who made the change and the reason for the change.
The justification should be confirmed by the manager responsible for the area of the
plant containing the robot.
As a safety against accidentally destroying the only working version of a robot program,
two steps are strongly recommended"
1) Copy the existing master file to someone's personal directory prior to copying the
"CURRENT" to "MASTER".
2) Make sure that the robot actually runs with the version that is to become the new
master.
1) Display the directory of the robot. Displays all the files located on a specific
robot. The robot will send its directory up to RSS. For viewing only.
2) Display the RSS Pry directory. Displays all the files located within the RSS
Previous (work) directory associated with a specific robot. For viewing only.
3) Display the RSS Cur directory. Displays all the files located within the RSS
Current (work) directory associated with a specific robot. For viewing only.
4) Display the RSS Mst directory. Displays all the files located within the RSS
Master (production) directory associated with a specific robot. For viewing
only.
346
5) Upload one or more robot files. Copies one or more robot files/programs
from a robot to the robot's Current (work) directory on the RSS host. The
MENU will receive a current directory from the robot and display the
directory listing on the screen. The user may then select one or more files
from the list to be Uploaded.
6) Upload all robot files. Copies all robot files/programs from a robot and
stores them in the robot's Current (work) directory on the RSS host. The
MENU will receive a current directory from the robot and display the
directory listing on the screen.
7) Download one or more RSS Cur files to robot. Copies one or more robot
files/programs located within the robot's Current (work) directory on the
RSS host to the robot. The MENU will display the RSS Current directory
listing for that robot and allow the user to select one or more files from the
list to be Downloaded to the robot.
8) Download one or more RSS Mst files to the robot. Copies one or more robot
files/programs located within the robot's Master (production) directory on
the RSS host to the robot. The MENU will display the RSS Master directory
listing for that robot and allow the user to select one or more files from the
list to be Downloaded to the robot.
9) Download all the RSS Cur files to the robot. Copies all robot files/programs
located within the robot's Current (work) directory on the RSS host to the
robot. The MENU will display the RSS Current directory listing for that
robot.
10) Download all the RSS Mst files to the robot. Copies all robot files/programs
located within the robot's Master (production) directory on the RSS host to
the robot. The MENU will display the RSS Master directory listing for that
robot.
11) Delete a file from the robot. Remove a single file from a robot. This function
must be repeated for each file to be removed. The MENU will receive a
current directory from the robot and display the directory listing on the
screen. The user may then select one file from the list to be deleted from the
robot.
12) Delete a RSS file from the Prv directory. Removes a single file from the RSS
Previous directory for a particular robot. This function must be repeated for
each file to be removed. The MENU will receive a directory and display the
347
directory listing on the screen. The user may then select one file from the list
to be removed.
13) Delete a RSS file from the Cur directory. Removes a single file from the
RSS Current (work) directory for a particular robot. This function must be
repeated for each file to be removed. The MENU will receive a directory
and display the directory listing on the screen. The user may then select one
file from the list to be deleted.
14) Delete a RSS file from the Mst directory. Removes a single file from the
RSS Master (production) directory for a particular robot. This function
must be repeated for each file to be removed. The MENU will receive a
directory and display the directory listing on the screen. The user may then
select one file from the list to be deleted.
15) Copy one or more RSS robot files from Cur to Mst directory. Copies one or
more files located within the RSS Current (work) directory of a specific
robot to the RSS Master (production) directory of that robot.
16) Copy one or more RSS robot files from Pry to HOME directory. Copies one
or more files located within the RSS Previous directory of a specific robot
to the user's HOME directory.
17) Copy one or more RSS robot files from Cur to HOME directory. Copies one
or more files located within the RSS Current (work) directory of a specific
robot to the user's HOME directory.
18) Copy one or more RSS robot files from Mst to HOME directory. Copies one
or more files located within the RSS Current (work) directory of a specific
robot to the user's HOME directory.
19) Copy all RSS robot files from Cur to Mst directory. Copies all files located
within the RSS Current (work) directory of a specific robot to the RSS
Master (production) directory of that robot.
20) Copy all RSS robot files from Prv to HOME directory. Copies all files
located within the RSS Previous directory of a specific robot to the user's
HOME directory.
21) Copy all RSS robot files from Cur to HOME directory. Copies all files
located within the RSS Current (work) directory of a specific robot to the
user's HOME directory.
348
22) Copy all RSS robot files from Mst to HOME directory. Copies all files
located within the RSS Master (production) directory of a specific robot to
the user's HOME directory.
23) Display a RSS robot file from the Pry directory. Displays the contents of a
RSS Previous file on the user's terminal.
24) Display a RSS robot file from the Cur directory. Displays the contents of a
RSS Current (work) file on the user's terminal.
25) Display a RSS robot file from the Mst directory. Displays the contents of a
RSS Master (production) file on the user's terminal.
26) Compare file from the Cur directory with Mst and Prv directories. Com-
pares a file in Current with a file in Master and then Previous directories.
If the file does not exist in Master and/ or Previous, a message pertaining to
such is displayed.
27) Archive all saved log files onto a floppy diskette. Initializes the log file
system and archives all previous log files onto a floppy diskette.
28) Retrieve log files from archived floppy diskette. Retrieves logged files from
an archive floppy, and copies them into the current user's personal directory
(HOME Directory).
29) Mail a message to the RSS manager. To be used to tell the system manager
about any problems and/or to indicate if a program should be put in the
Master (production) directory.
30) Change RSS password. Allows all RSS users to change their RSS password.
Prompts user for old password, asks for new password, and then asks user
to re-enter new password.
31) List RSS users. Checks validity of RSS user setup. Gives a list of RSS users
by UNIX ID names. Also gives a list of all defined RSS Security Levels.
32) Backup robot directory. Copies all RSS robot host directories and files onto
backup tape system.
33) Backup HOME directory. Copies user's HOME directory onto a floppy
diskette.
349
34) Restore robot directory. Copies RSS robot host directories and files from
backup tape system onto the host directory.
35) Restore HOME directory. Copies user's HOME directory from backup
floppy diskette onto the host directory.
It is extremely important that the end users of the RSS system (people on manufactur-
ing floor) are aware of what the system can do for them and how to use it. We have
ensured that these individuals receive RSS training to satisfy their needs.
RSS is most useful during periods such as plant startup or changeover when numerous
robot changes are being made. Therefore it is important that the plant network stay up
during these production down times.
As a programming aid, the RRS system can be used to accomplish what is called "Cross-
Load" function. When a program from one robot can be used with little or no
modification in another robot, it can be copied from one robot to the other. To do this,
the file is first uploaded from the first robot, then copied to any directory of the second
robot via user's own directory and, finally downloaded into the second robot.
The value of RSS, and of any similar support system for programmable devices, lies in
getting the device back to a known and running condition quickly. Many hours are spent
in programming such a device. All of this work is at risk of being lost if the robot's
memory is wiped out by natural disaster, operator error, or internal device failure. In
addition to all this programming effort being lost, significant amounts of downtime for
the entire plant can result from such a memory loss.
But just having a support system like RSS available does not guarantee that the plant
is not vulnerable to these kinds of disasters. That can only be assured if the plant is using
the available tools to protect against major losses. In other words, the real benefits can
only be realized by establishing and following good procedures.
As stated before we have over 200 PLCs that provide control to various factory
automation and conveyance system. As with robots, PLC programs require frequent
backup and management as well, therefore all of the RSS functionality described above
are also supported by FAST system for PLCs. In addition, download capability is
essential for recovery since the plant may shut down if we lose one PLC. Our PLCs
control the assembly area of the plant where all cars must pass through a series of
350
unique, sequential stations. If one PLC goes down, there is not an alternate line or route
that can accomplish the task of the failed node, and production is stopped.
Using microcomputer hosts, we currently have connectivity to the PLCs. Our PLC
support system, known as FAST (factory automation support tools), provides upload/
download capability and lives up to its name. The primary problem we needed to solve
is one of speed. Manual tape backup takes 45 minutes per PLC. Backup over Allen
Bradley Data Highway takes about 20 minutes per node. Our MAP network accom-
plishes backup in less than 1 minute. In the event of a plant shutdown due to a PLC
failure, recovery can be accomplished in 1 minute instead of 20.
Above the basic restoration, there are other useful functions a support system should
provide. For example in a typical environment where softwares are modified frequently
to meet changing production requirements, program version control is essential. The
benefit of version control function is in achieving administrative control.
The issue of security becomes important, as the functionality of any support system
increases. Since some of the functions of the support system can effect production, only
authorized personnel should have access to these functions. In section dealing with
security, we have fully covered this issue and given an example of a 3-dimensional
security system built on top of a database.
New applications are presently being developed for the system. Real-time monitoring
of the plant, involving both addition of new devices and new functions (such as variable
access), is a prime example. New applications may be added to the network without
major upheaval since the system is easily expandable and enhanced functionality is
already in place.
A major issue that is becoming increasingly urgent is the integration of all applications
running on a network. Until this integration is achieved, it will not be possible to utilized
the benefits of our plant communication system. We propose development of a global
351
application interface environment which would lay above the network providing a
common application access, and development environment to all applications.
The network is best justified in economic terms. Consider, for example, a comparison
of times required for file backup on a PLC using tape/disk, a Data Highway network,
and MAP. A typical PLC download takes approximately 45 minutes (from experience)
using tape/disk, 20 minutes using Data Highway, and less than one minute using MAP.
In the event of a plant shutdown due to a PLC failure, recovery can be accomplished
in 1 minute instead of 20. Plant down time costs are estimated at $3,000 to $5,000 per
minute. This translates to a $57,000 to $95,000 saving every time one PLC crash causes
a plant shutdown. The system can pay for itself quite quickly. As new applications are
developed, systems such as this one will likely prove invaluable in keeping North
American and European industries competitive.
CHAPTER 15
Marc Bodson
Department of Electrical and Computer Engineering
Carnegie Mellon University. Pgh. PA 15213
Abstract
This paper discusses the application of modern nonlinear control
theory to the fast and accurate positioning of permanent magnet (PM)
stepping motors. The mathematical model of a PM stepper motor is given and
a control algorithm based on the recently developed feedback linearization
approach which uses only position measurements form an optical encoder is
described. Furthermore, a least squares parameter identification algorithm
to determine the resistance, inductance, torque/back-emf constant, moment
of inertia and viscous friction coefficient of the motor are presented.
The identification and control algorithms are implemented on an
experimental set-up consisting 0/ the Motorola DSP56001ADS Digital Signal
Processing System, a personal computer, two PWM amplifiers, and a PM
stepper motor. The results of the identification and control algoritms are
presented.
1. Introduction
DC motors have traditionally been used in positioning systems
precisely because they are easy (relatively speaking) to control. This
ease of control is due to the fact that a DC motor is a linear system.
Originally, stepper motors were designed to provide precise positioning
control to within an integer number of steps (e.g., 200 steps for a
resolution of 1.80 ) without using sensors. That is, they are open loop
stable to any step position and consequently no feedback is needed to
control them. Furthermore, by a more precise control of the phase
currents, microstepping can be ac~eved in which there are, for example,
2000 steps for a resolution of .18 which is the resolution limit of a
typical position transducer (optical encoder). But, using the stepper
motor in an open loop configuration results in very low performance. In
particular, the PM stepper has a step response with a significant overshoot
and a long settling time. Furthermore, at high rotor speeds, the phase
currents cannot build up nor decay fast enough to keep up with the applied
353
354
di
~ = [va -Ria + Kmrosin(Nre))/L
di
W = [vb - Rib - Kmrocos (Nre)]/L
(1)
dro
Of= [-Km a r e) + Kmi bcos(Nre) - Bro]/J
i sin(N
de
Of =ro
ia,ib and va, Vb are the currents and voltages in phases A and B,
respectively. L and R are the self-inductance and resistance of each phase
winding, K is the motor torque (back-emf) constant, N is the number of
m r
rotor teeth, J is the rotor inertia, B is the viscous friction constant, ro
is the rotor speed and e is the motor position. This model neglects the
slight magnetic coupling between phases, the small change in L as a
function of position e due to the rotor teeth [3], the variation in L as a
function of phase current level, and the detent torque. The results given
below suggest that the model given in (1) is sufficient for the control
355
design.
It is proposed here that the high rotor speed control problem briefly
mentioned in the introductory section can be circumvented by using the full
(four state) mathematical model in the design of a nonlinear feedback
controller. Since this model incorporates the speed dependent phase shift
between phase voltage and phase current [6], the control law will then
automatically take this dependency into account. In particular, a modified
exact feedback linearization [10] controller is designed using this full
order model. Applying the exact linearization method to the PM stepper
motor was first considered by Zribi [7] and later refined in Zribi and
Chiasson [8].
It should be pointed out that ruc et al. [2] considered the feedback
linearization technique on variable reluctance stepper motors and an
implementation of this controller was reported in [14].
id cos(Ne) sin(N e) 0 0 i
r r •
i
q ~ -sin(Nre) cos(Ne)
r
0 0 ib (2)
00 0 0 1 0 00
e 0 0 0 1 e
l~
-dt"'
= -Ri q - NR ooLid - Km00 + v q (4)
JdOO = K i - Boo
iff mq
de
at = 00
356
id 0 0 0 0 id 1 0
[:~l
Li
q
0 0 0 0 i
q
0 1
d
(If Jro = 0 Km -B 0 ro + 0 0
(6)
e 0 0 1 0 e 0 0
(7)
v =-Ri -NroLi
d dd R qd
(8)
v q = - Riqd - NRroLiddm
-K co
Then, using (4) and (8), the closed-loop system may be written as follows:
358
* = R( id - id d) + NReoL(iq - i qd )
Jdeo
Of
= K i - Beo
mq
de
Of = eo
iqd ~ (Ja.d+Beo)1K
d m - K
-1"
r(e-ed)dt - KP(e-ed) - KD(ro-eo)d (10)
Identification Method
Specifically. if we define
359
K
XI I
0
X2 K2
X = , V = [::]. K = K3 ' r(x,v) = 0 (11)
x3 0
x4 K4
x3
Ks
and
-x
I
-x
2
0 0
x sin(N x) -x3cos(N x ) 0 0
3 r4 r 4
W(x,V) = 0 0 -x sin(N x )+x cos(N x )
1 r4 2 r4 0
0 0 -1 0
v
a Vb 0 0
(12)
Then (1) may be rewritten as
•
X = WT(x,v)K + r(x,v) (13)
The linearity of eqn. (13) in the parameters make the system amenable
to standard identification techniques. We assume that x and V are known
exactly, as well as x.
1\
Denote by K(t) the estimate of K at time t, and bye., the
1
so-called identifier error
T 1\ •
e. = W (x,v)K + r(x,v) - x (14)
1
= WT(x,v)(K - 1\
K) (15)
J
I
Specifically,
1\
K(t) = [So W(x(t),v(t»W{x(t),v(t»
t J t
dtf I[ W(x(t),v(t»x(t)dt] (17)
o
1\
assuming that the inverse exists. In the absence of noise, K(t) =K as soon
1\
as the inverse exists. Otherwise, K minimizes (16).
where ~(O), P(O) = pT(O) > 0, and g > 0 are arbitrary, and P(t) is a 5x5
symmetric matrix.
The motor used for the controller evaluation experiments has a 6 Ampere
nominal phase current and a 70W maximum input power and is controlled
through a voltage regulated pUlse-width modulated ±40V source. The
361
Controller Evaluation
i
......
III
~
g
c::I
~
to> -100
S~
> -200
-300
-.OO~----~------~~----~~----~~----~~----~
o 0.2 0 .• 0.6 0.8 1.2
15
10
U
IaI
en
"-
~
e
c.:
0
c.:
c.:
IaI -5
-10
-15
0 0.2 0.4 0.6 0.8 1.2
TIME (SEC)
Velocity Error
The actual and desired positions are now shown below followed by the
position error. Note, as expected, the maximum position error occurs when
the velocity is at a maximum.
90
60
70
Ii> 60
:r.
!i
Q
<C 50
~
:r. 40
0
E
II)
0 30
c..
20
10
0
0 0.2 0.4 0.6 0.8 1.2
TIME (SEC)
0.3r-------~~._--~-------r------~------~------_.
0.2
til 0.1
~Q
g
Z
o
E
~ -0.1
c..
-0.2
-0.3L-------~------~------~------~~--~~----~
o 0.2 0.4 0.6 0.8 1.2
Although the currents i d and i q were not fed back, there were measured
and plotted below. The fIrst plot below is that of the desired and measured
direct current while the next plot is of the desired and measured quadrature
currents. As seen below, there is quite a discrepancy between them.
0.5
in
c.. -0.5
:E
~
fZ
r.:I
-1
III:
III:
::> -1.5
u
-2
-2.5
-3
0 0.2 0.4 0.6 0.8 1 1.2
TIME (SEC)
0.5
iil -0.5
c.
::&
~
-1
~
loll
""
~
Co)
-1.5
-2
-2.5
-3
0 0.2 0.4 0.6 0.8 1.2
..
3
,I
~--- '
"
:' \"- .. _--\
,:
/
2 \,
I \
Vi' '\
0-
:I
~
0
~
III
0::
0::
::> -1
u
-2
,,
-3
-4L-------~------L-----·--~------~------~----~
o 0.2 0.4 0.6 0,8 1.2
TIME (SEC)
The measured and ftltered position and phase currents (i I ,ib) are shown
below in the dashed curves. The constant voltages of vI = 0, vb = 4 volts
were used along with off-line calculations of speed, acceleration and
derivatives of the currents as "inputs" to the above identification
algorithm. The resulting values of the parameters were: R = .62 ohms,
L = .OO31H, Km = .34 Nt-m/amp, J = 14.05xlO- SKg-m2 and B = -.0013 Kg-m2/sec.
The resulting error index was 14.2% The "negative" friction coefficient is
attributed to the fact that the maximum speed attained in the step response
is only 9 rads/sec and consequently the resulting friction torque Bro is too
small to have an effect. That is, B is un-identifiable from step response
data.
0.033
0.03
! 0.025
.~ 0.02
'i
.... 0.013
0.01
0.003
°0L-~------0-.OO~3---------0.~0-1--------0~.0~1~3--------~0~.02
Time (oec)
5. Future Research
The authors are grateful to the Motorola Corporation for donating the
56001ADS development system which made possible the implementation of the
controllers.
Marc Bodson and John Chiasson are especially grateful to Mr. Stephen
Botos, President of the Aerotech Corporation (Pittsburgh), for his
commitment to this project in the form of equipment, technical and financial
support.
367
References
[1] M. Aiello, M. Bodson, J. Chiasson, R. Rekowski and D. Schuerer,
"Experimental Results of a Nonlinear Controller Applied to the Positioning
of a Pennanent Magnet Stepper Motor" 1990 Symposium on Incremental Motion
Control, Systems & Devices, June 12-14, San Jose, California.
[2] Ilic-Spong, M., R. Marino, S.M. Peresada and D.G. Taylor, "Feedback
Linearizing Control of Switched Reluctance Motors," IEEE Trans. on
Autom.Control, Vol. AC-32, No.5, May 1987.
[3] Kenjo, T. Stepping Motors and Their Microprocessor Controls, Clarendon
Press, Oxford, 1984.
[4] Kuo, B.C. and J. Tal, Incremental Motion Control, Step Motors and
Control Systems, Vol. n, SRL Publishing, Champaign, IL, 1978.
[14] Taylor, D.G., M.J. Woolley, and M. Ilic, "Design and Implementation of
a Linearizing and Decoupling Feedback Transfonnation for Switched Reluctance
Motors", Proceedings 17th Symposium on Incremental Motion Control Systems
and Devices, Champaign, Illinois, June 1988.
[15] Brown, R.H., Y.Zhu and X. Feng, A new relaxation Algorithm for the Time
Optimal Control Problems of Hybrid Step Motors", Proceedings 28th CDC Tampa,
FL, Dec. 1989.
CHAPTER 16
1. INTRODUCTION
The first production disk drive, introduced by IBM in 1957, used
mechanical detents to position the head and had a track density of 8
tracks per centimeter [1]. Disk drives have since incorporated a number
of significant innovations. Modern high performance disk drives use
voice coil actuators to position the heads under closed-loop control and
have track densities in excess of 400 tracks per centimeter. A history
of the evolution of disk drive technology is given in [2].
As track densities increased beyond 40 tracks per centimeter, it
became necessary to incorporate a position sensing mechanism in the disk
drive head-positioning assembly so that feedback control techniques
could be employed. This was accomplished by means of a dedicated servo
surface on which incremental position information is encoded. Position
measurements from a servo surface are typically available at a 250 kHz
to 500 kHz sample rate, which is essentially continuous when compared to
the bandwidth of typical head-position controllers. A velocity signal
is usually generated directly from the high speed position measurements
without resorting to optimal estimation methods. An obvious
disadvantage of the servo surface method of position sensing is that an
entire surface that could have been used for data is used for position
information; a less obvious disadvantage is that thermal errors make it
369
370
difficult to keep the heads on other platters aligned with the head on
the servo surface to the accuracy required for very high track density
drives. More details on servo surface encoding and decoding can be
found in [3] and f4].
Many modern disk drives have now dispensed with the dedicated servo
surface in favor of position information embedded on each data surface.
Because the position information must now be interleaved with data,
position measurements are typically available at only a 3 kHz to 4 kHz
sample rate. This requires that estimation methods be used to derive
the velocity. Although high speed microprocessors are typically
utilized for this task, the high speed arithmetic capability of a
digital signal processor makes it an attractive alternative.
A Kalman filter for a disk drive with embedded head-position
information is implemented in this paper. The filter estimates any bias
force acting on the head as well as the position and velocity of the
head. The filter is formulated as a one-step predictor so that
computational delay is not an issue.
The dynamics of the head-positioning actuator are described in
Section 2. Section 3 gives the detailed design of the Kalman filter.
Implementation of the filter on a digital signal processor is covered in
Section 4, along with an example of the performance of the filter for a
sample trajectory.
y- = k
-u (2.1)
m
x = [ ~~ Jx + [ ~ Ju, (2.2)
with x = [ d v ]T, d(t) the head position, and v(t) the head
velocity, where u(t) is now in units of acceleration.
Ve should like to consider a more detailed model which includes a
bias force and process and measurement noises. The theory of the Kalman
filter will then allow us to incorporate the known characteristics of
the noise processes into the filter design.
The model we will use of the disk drive head-positioning system is
given by
where the state is x = [ d v f ]T, with d(t) the head position and
v(t) the head velocity. The control input is u(t), and
w(t) = [ Wd Wv Wf]T is process noise which disturbs the state
components. Ve have selected the units so that the system matrices AC,
BC, GC have the simple elements shown (i.e. GC = I).
The bias force f(t) (equivalent driver input) is included to
model forces on the actuator which do not vary with time. Possible
sources of these constant forces are windage due to the rotation of the
platters, the flexible leads which connect to the heads, and tilt of the
disk drive. Since the bias is unknown and must be estimated, it is
necessary to include it as a state. Note that even though the bias is
not a function of time, it may be a function of other parameters such as
head position. To describe f, we have selected the Brownian motion
model, which is an integrator driven by white noise Wf(t).
Position measurements are made, so that the measured output is
y = [ 1 0 0 ]x + n = ex + n (2.4)
where net) is measurement noise.
To design a digital filter we must first sample the continuous
dynamics (2.3), (2.4). For a sample period of T and allowing the
control input u(t) to change only at the sample instants, the discrete
dynamics are
(2.6)
3. mm fILTER DESIGN
Ve will use the recursive a priori formulation [7] to design a Kalman
filter for the discretized dynamics. The predictive Kalman filter
provides a predictive estimate one sample period in the future, since
the measurement and control input at time kT are used to estimate the
state at time k(T+1). Use of the predictive formulation avoids the
need to include an extra state in the discretized actuator model as in
[6] in order to account for the computation delay.
3.1. lalaan filter for.ulation
The recursive a priori formulation of the Kalman filter equations for
the discretized actuator model (2.5) and (2.6) is given by
where (3.1) is the Kalman gain, (3.2) is the estimate recursion, and
(3.3) is the error covariance recursion. Ve have assumed that nk and
Wk are white noise processes uncorrelated with the initial conditions
of the actuator states and with each other. Ro[k] is the covariance of
the measurement noise nk and Qo[k] is the covariance of the process
noise Wk, where 6[k] is the Kronecker delta. The superscript If-If
denotes an a priori value (i.e. one not updated to reflect the current
measurement).
3.2. Discretization of the Noise Processes
Ve now need to relate the spectral densities of the discrete noise
processes to the spectral densities of the continuous noise processes in
the continuous model of the actuator. Suppose the covariance of the
continuous process noise w(t) is QC6(t). Then the covariance matrix
of the discrete process noise Wk is given by
374
(3.4)
(3.5)
To discretize the measurement noise we will use an approximation
given in Kailath [8]. If the covariance of the continuous measurement
noise n(t) is RC6(t), then the covariance matrix of the discrete
measurement noise nk may be approximated by
(3.6)
where Pi are scalars. The Kalman gain is computed using the following
steps.
(3.8)
(3.9)
(3.10)
Therefore, the error covariance update may be computed using the steps:
(3.12)
And, finally,
(3.14)
(3.15)
(3.16)
(3.17)
376
The error covariance of v{O) is thus 2rc jT2. The bias force estimate
£(0) may be taken as zero and the error covariance as some large value
such as 100 tracks2jms4. Our initial error covariance is thus
[ ~~ ]
L3
= [ ~:~~~:~ ms-
0.02107 ms~
1 ]. (4.6)
d 25 2-10 tracks
v 25 2-10 tracks/ms
f 24 2-11 tracks/ms 2
y 25 2-10 tracks
u 24 2-11 tracks/ms 2
T (v) 20 2-15 ms
T2/2 (f) 21 2-14 ms 2
T2/2 (u) 21 2-14 ms 2
LI 2° 2-15
T (f) 21 2-14 ms
T (u) 21 2-14 ms
L2 2° 2-15 ms- I
L3 2-1 2-16 ms-2
l/T 23 2-12 ms- I
---
N
o<' 30
~
]'
u
e 20
~ ~
N 20 -
<
..[10 -
t:: 16
e
(1J
~ 0
(1J
M
- 12
e
L---- ;3
III
~
(1J
'=' 8
.s
-10 - ~
c::
1-
0
20 -
....
.r:!
III
4
0
8
~
-30 I I I I I I
0
o 4 8 12 16 20 24 0 4 8 12 16 20 24
Time (ms) Time (ms)
2.0 -r------,.~----____,
20 1.6
~
~
III E 1.2
III
........
~
u 16 ~ 0.8
ec:: 12
~
~
l:l 0.4
'-'
0
.....J:1 a
·0
0.0
III
0 8
p.... .9-0.4
Q.I
4 :;> -0.8
-1.2
0
0 4 8 12 16 20 24 o 4 8 12 16 20 24
Time (ms) Time (ms)
~
NI
0 ~
<
I
< 0
,....;
0
0
,....; -2 :.<
:.< III -2
~
N U
<III -4 ~
-4
Actual l:l
E
........
'-'
s..
III
~ -6 0
s..
-6
u s..
~ ~
l:l c:: -8
'-' -8 0
~ .J:1
·iii -10
~ 0
-10 p....
-12
0 4 8 12 16 20 24 0 4 8 12 16 20 24
Time (ms) Time (ms)
Ll 22 2-13
L2 24 2-11
L3 25 2-10
5. CONCLUSION
We have presented in detail the design and implementation of a Kalman
filter for a disk drive head-positioning actuator on a fixed-point
digital signal processor. The results show that a second-generation
digital signal processor is capable of executing an iteration of the
383
filter in a small fraction of the available time and without the need
for any external memory. In fact, a digital signal processor clearly
provides more computational capacity than required if the processor is
only to be used for the Kalman filter and the track-following and
track-seeking control algorithms. The decision to employ a digital
signal processor rather than a traditional microprocessor in an actual
disk drive would likely hinge on the potential to utilize the excess
computational capacity of the DSP to perform in software tasks that
would otherwise require additional hardware.
6. AClNOllLEDGElENTS
This material is based upon work supported under a National Science
Foundation Graduate Fellowship.
7. REFERENCES
[1] T. Noyes and Y. E. Dickinson, "The Random-Access Memory Accounting
Machine," IBI Journal of Research and Development, vol. 1, pp.
72-75, Jan. 1957.
[2] J. I. Harker et aI, "A Quarter Century of Disk File Innovation,"
IBI Journal of Research and De'lJelopment, vol. 25, pp. 677-689, Sep.
1981.
[3] J. V. Espy, "Techniques of Position Control of High Performance,
High Capacity Disk File Systems," Proceedings, Symposium on
Incremental lotion Control Systems, pp. 177-210.
[4] R. K. Oswald, "Design of a Disk File Head-Positioning Servo," IBI
Journal of Research and Development, vol. 18, pp. 506-512, Nov.
1974.
[5] R. F. Bell et aI, "Head Positioning in a Large Disc Drive,"
Hewlett-Packard Journal, pp. 14-20, Jan. 1984.
[6] I. C. Stich, "Digital Servo Algorithm for Disk Actuator Control,"
Conference on Applied lotion Control, pp. 35-41, 1987.
[7] F. L. Lewis, Optimal Estimation with an Introduction to Stochastic
Control Theory, Viley, 1986.
[8] T. Kailath, Lectures on Yiener and Kalman Filtering, Springer-
Verlag, 1981.
[9] G. J. Bierman, Factorization lethods for Discrete Sequential
Estimation, Academic Press, 1977.
CHAPTER 17
Jorge Haddock
Young Chul Kim
Department of Decision Sciences and Engineering Systems
and Center for Manufacturing Productivity
Rensselaer Polytechnic Institute
Troy, New York 12180-3590
Telephone: 518-276-8099
BTINET Address: FFYE@RPITSMTS
ABSTRACT
Simulation has become the most widely used computer based performance
evaluation tool for FMS design and analysis due to the complexity of the interaction of the
dynamic components in these systems. Simulation models can incorporate a great level
of detail and capture the time dynamic behavior of these systems. RENSAM
(&msselaer's Simulator for Automated Manufacturing) is a generic simulation model that
takes advantage of the underlying structure of manufacturing systems. RENSAM is an
'adaptive system' in that it consists of a generic GPSS simulation model which provides a
high level of flexibility in modeling a wide spectrum of FMS configurations. This paper
presents a description of RENSAM system and its capabilities as an analysis tool are
illustrated by means of a case study.
This project has been partially funded by Alcoa, GE, GM, Kodak, RCA and New
York State Center for Advanced Technology.
385
386
INTRODUCTION
The use of simulation represents a viable approach for the design and analysis of flexible
manufacturing systems (FMS) because these systems tend to be more complex than the traditional
manufacturing systems. In fact. simulation has become the most widely used computer based
performance evaluation tool for FMS design and analysis due to the complexity of the interaction of the
dynamic components in these systems (Surl 1984). Simulation models can incorporate a great level of
detail and capture the time dynamic behavior of these systems. Events such as machine breakdowns.
as well as the monitoring of the state of the system. are significant events in any FMS and the ability
to include them in the model usually proves to be significant Also. simulation models are appropriate
when there is significant blocking in the system (Surl and Diehl 1987). Moreover. simulation is the only
available tool to study the system's transient behavior. Thus. simulation techniques enable the creation
of realistic models and provide a favorable environment for FMS design and analysis. Simulation
languages. such as GPSS. SIMAN and SLAM. have made feasible the modeling of large. complex
models in a reasonable time frame. However, the development of simulation models still require a
significant level of expertise and is usually time consuming and tedious. Other simulation systems
similar in software structure are specialized simulation languages such as GEMS (Phillips et al. 1979)
and MAP (Rolston 1984). These systems are easier to use. but can model a narrower spectrum of
system characteristics and also require training.
Other commercially available tools have also been developed to assist in the simulation process.
These packages include GEFMS. SIMFACTORY. STAR*CELL, and XCELL. All of these packages
provide dynamic animation and require no programming. These systems can be classified as simulation
generators. The concept of a generator is to translate a development-oriented description of the system
into a simulation model (Haddock 1987; 1988). Thus. some of the difficulties associated with simulation
modeling can be overcome by using a simulation model generator.
A similar approach involves generic simulation models such as RENSAM ~sselaer's
~imulator for .6.utomated Manufacturing) that take advantage of the underlying structure of the systems
(Foley, Jain and Haddock 1987). RENSAM is innovative because it is an 'adaptive system' that consists
of a generic GPSS simulation model which provides a high level of flexibility in modeling a wide
spectrum of FMS configurations.
This paper presents a description of RENSAM system and its capabilities as an analysis tool are
illustrated by means of a case study.
RENSAM was developed as a test bed for issues in scheduling and control of FMS. RENSAM
has been designed as a completely data driven generalized simulation generator with three major
components. pre-processor. generic simulation model. and post processor. The user interfaces (pre and
post-processors) have "been developed in Turbo-Pascal and run on an IBM-PC. The generic simulation
model has been developed in GPSS/H and is installed on a MicroVAX IT cluster.
Compared to general and special-purpose simulation languages. RENSAM provides more ease
of use and requires less simulation expertise from the user. This is. however. at the expense of higher
domain orientation and less flexibility in model development. Compared to a specific simulation model.
RENSAM provides more flexibility and lower domain orientation. but is is slightly more difficult to use.
Figure 1 shows an overview of the configuration of RENSAM. The user interacts with the
preprocessor to create a data file containing the description of the FMS. The generic simulation model
simulates the FMS according to a supplied schedule or based on the operational policies contained in
the FMS description file. The results of the simulation are stored in three files. One file consists of a
387
PRE-PROCESSOR~ USER
I~
FMS
SCHEDULE
DESCRIPT ION
.... '., .•......•..
", II
SIMULAlION
'.1
~ i'
~
POSl-
--.--
--- - PROCESSOR --.---.
---.
j,---- "V --~
GRAPHICS
GANTT CHART ANIMATION
I
DISPLA~S
~ I!I I~
rtUSER
Figure 1. RENSAM CONFIGURAnON
388
formatted perfonnance report that is genented for direct use. The other two files can be down-loaded
to an IBM-PC for detailed processing using the post-processor.
The data required to describe the FMS is elicited from the user through prompts. The data can
be classified in three groups: FMS description, e.g. work station, material handling system, layout
descriptions, and pallet/fixture availabilities; part descriptions, e.g., opention sequence for each part
type and resource requirement for each opention; and, scheduling parameters, e.g., tool loading and
schedule specifications.
The capabilities of the simulation model can be described in two categories, FMS simulation
capabilities and information and control capabilities. For instance, in terms of the FMS simulation
capabilities, different work station configuntions can be simulated. A station can have more than one
machine, an internal material handling device and stonge space. Each machine can have a number of
tool groups in its magazine. Storage can be modeled as either shared or dedicated input/output buffers.
Both discrete (e.g. AGVs, fork lifts) and continuous systems (e.g. conveyors) can be simulated. In terms
of the infonnation and control capabilities, extensive information and control capabilities have been built
in the generic simulation model to allow experimentation with different scheduling and control stIategies.
Salient capabilities include: part release control, different mechanisms are available to control the
release of parts to the system; part routing control, different mechanisms are available to detennine the
routing of parts through the system; real-time control, real-time control routines respond to occurrences
of interruptions during simulated opention of an FMS; and, final performance reports.
The post-processor is a user friendly interface for detailed analysis of simulation results. An
abstIact animation of the simulation is provided which displays the dynamics of the system opention.
The user can also examine gnphic displays for statistics such as machine utilizations and availability,
part flowtimes, distribution of flowtimes among process and waiting times, material handling system
utilization and availability, fixture utilizations, Gantt charts, and comparison of two different scenarios
using aggregate statistics.
FMS Environment
The manufacturing division is involved in low volume production of parts used to construct
electronic equipment (Table 1 contains sample order quantities) and they are considering the installation
of a FMS.
The manufacturing group functions as a 'in house vendor' for the rest of the organization. Due
to this status. there are a few special considentions which must be made in reviewing the
389
1. A 38 450
2. B 141 1.700
3. C 141 1.700
4. D 141 1.700
5. E 50 591
6. F 75 900
7. G 75 900
8. H 75 900
9. I 75 900
10. J 75 900
11. K 34 400
12. L 83 1.000
13. M 108 1.300
14. N 234 2.800
15. 0 15 80
16. P 8 90
17. Q 166 2.250
18. R 167 2.000
19. S 50 600
20. T 16 70
390
appropriateness of a FMS for the group. First, as an 'in house vendor', the organization is not run as
a profit producing division of the fmn. As a result, the manufacturing group is not privy to long range
marketing or sales forecasts on a regular basis. The group. therefore. only plans for one or two mooths
in advance. Second. the potential pool of customers is limited to other divisions within the firm. even
though the other divisions are permitted to go elsewhere for services. There are several steady
customers. but it is the organization's policy to accept important orders without advance notice. As a
consequence of this policy, even the division's short term plans are frequently interrupted.
Operating calendar. The company works on a thirteen period operating calendar. There is a three shift
operation (twenty four hours/day), five days per week. Saturdays are left for unplanned work and
machine maintenance.
System specifications. The proposed FMS is being designed to handle over two thousand parts.
consisting of a wide spectrum of materials and sizes. As this entails an abundance of data. a
representative sample of twenty parts has been selected to study the system.
Preliminary research has suggested that the FMS include the following:
• 5 machining centers (1 backup station)
• I inventory station (CMM)
• 1 wash station
• 2 load stations (manual)
• I fixture preparation station
• 1 tool change station
• 1 tool setting station
• 1 battery charge station (manual recharging of AGVs)
·3 or4 AGVs.
The planned workload for the manufacturing organization. along with long and short term forecasts of
the planned production requirements were used to establish this configuration. Figure 2 presents a
diagram of the system layout. Studies to determine the exact number of AGVs, inspection stations and
wash stations have not yet been completed. and the quantities provided are the result of preliminary
research.
Macbine-resouce capacities. Each of the five machining centers has a two pallet exchange. There are
two tool magazines on each machine. each with forty-five spaces for tools.
A 'riser' (also referred to as a 'stump' or 'tombstone') which holds additional parts on each of
its sides, sits on each pallet. The riser is used to reduce tooling costs, set-up times and downtimes.
Risers are mounted onto the center of the machining pallet. They provide the means by which up to
five sides of a part may be machined in one set-up.
Sub plates which are either aluminum or steel (flat) plates are secured to the riser. The sub
plates are used in drilling operations to prevent penetration of the riser. Sub plates are assigned to
specific parts and are not interchangeable.
Machine-resource reliability. The estimate of five machines, for the FMS. includes one machine to
be used as a backup. The estimated machine utilization is only eighty percent, including this additional
machine.
The company has estimated the 'tool lives' and is incorporating this knowledge into the FMS.
so that tools may be changed on a regular basis. The plans do not include, however, a means by which
the FMS would automatically detect broken tools.
Parts going to the coordinate measuring machine (CMM) must first be cleansed. It takes
approximately three to five minutes per pallet at the wash station. To date. there has not been a study
ChlpiCoolant System
-e -B
~~ II II
Cli [nopection Station Hash Station
..-xi"'I
! 'xtrw Q
Storage Area
AS/RS
~!l
c:::J ii
load Station.
(ltanual) • >----,--.,.--,,--:-,-,----,...---"""'-/
Control
Centar
8lttery CJlIrgtn,
Stat!~n Dd'
Too I Changer ,. C=o
~il.~
Fixture
~ Tool Setting
a Prep. Statlo1
E9
D(Hanual Recharge of ACV.)
o
Figure 2. SYSTEM LAYOUT w
10
-
392
to verify that only one CMM and one wash station is sufficient
Material handling. Preliminary studies suggest the use of three or four AGVs. The AGVs are battery
operated and time to recharge each of them will be allotted for by the FMS.
Routing. The routes through the FMS are easily depicted by using the diagram of the system (Figure
3) in conjunction with the list of operations for each part in Table 2. Note that every operation in Table
2 actually consists of a load, operation, wash, inspection, and unload sequence on the same fIxture. In
the actual simulation, many load and unload operations exist due to the actual difference in time caused
by the type of fIxture used and the type of part.
Goals. Given the information provided previously, the following goals were set for analysis with the
use of RENSAM. The fust step is to determine whether the proposed confIguration. as well as the
alternative systems to be developed and examined, reach steady state. If this condition does not hold.
the RENSAM results do not reflect the actual performance of the system in the long run. Second, based
on the results of whether a steady system, alternative systems shall be developed and analyzed through
RENSAM. By comparison of the results and the use of RENSAM as a tool. an adequate FMS system
shall be determined for the projected demand. Summarizing. the critical fIgures to be determined are
the combination of machining workstations. load/unload stations. wash stations. inspection stations. and
AGVs in which the main workstation will be working at an eighty percent level.
Assumptions for RENSAM. Given the data of fIve working days per week, each consisting of twenty
four hours. we initially ran the simulation to obtain data for 60 days. Thus, the run length of the
simulation in time units is: 60 days'" 24 hrs/day ... 600 time units/hr = 864.000 time units. In order to
determine if the data obtained is reaching a steady state, runs for 80 and 100 days were performed.
Other general assumptions were made for this case study. First, since backup workstations are
not currently modeled by the RENSAM model. we simply assume four workstations with immediate
repair time. That is the backup workstation becomes available immediately. However. the mean failure
time was arbitrarily decided as 144.000 time units. Identically. the same backup assumption was made
for the material handling system where the number of AGVs was set to four. The mean failure time
is set to 582,000 time units. Second, the AGV travelling speed is assumed to be 100 ft/min. Third. the
distance between stations shall be assumed to be as shown in Figure 2. Fourth. the movement time
between buffers is zero since the data provided assumes the operation times to include them. Fifth. for
simulation pu1llOSes, the wash and inspection stations are modeled as two different machine types located
at different stations, even though, they may in actuality be manual stations. Thus, three types of
machines exist totalling to a number of six machines in the system. Next. a single tool group is
assumed. Finally. the number of ftxtures available to the system is assumed to be the number of
operations using the fIXture type plus one or two additional fIXtures (see Table 3).
In addition, the interarrival schedule matrix determines order quantity. This has been set to
monthly batch sizes. which are referred as typical order quantities in Table 1. Also. two particular
decision rules are used for this case. First. the rule of smallest work in queue to choose the next station
is used. Second, the FIFO job selection rule is used.
RENSAM RESULTS
The original system which consists of four machining workstations. two load/unload stations. one
wash station, one inspection station. and four AGV's did not produce any parts due to blocking
conditions which were attributed to the low number of load/unload stations. Thus. through the use of
393
A 1
2
B.C.D 2 3
2 4
E 5
6
7
F 8
3 9
G 5 12
H 10
I 10
11
J 10
11
K 4 14
4 14
L 5 15
4 16
M 17
N 2 18
2 8
2 4
0 1 19
6 20
P 21
22
23
Q 24
394
R 6 26
6 27
S 4 28
4 29
T 4 30
Note that every operation actually consists of an load, operation, wash, inspection,
and unload sequence on the same fixture. .
395
15
2 3
3 2
4 5
5 3
6 4
7 2
396
the pre-processor. the capacity of loadlunload stations was immediately doubled. For the run length of
60 days. the system produced parts without the occurrence of blocking conditions. In order to determine
steady state. results of 80 and 100 day run lengths were used. The production figures for the different
runs are shown on Table 4. This table seems to indicate that production quantities are leveling off for
some parts. however. these figures alone are not concrete evidence of steady state.
Further examining data, cumulative average flowtime figures for 1000 days were plotted for every
part type produced in order to determine if steady state is being reached. Figure 3 is a graph of
cumulative average flowtime for part type A. For this particular part. the flowtime averages at around
3.8 hours when the demand rate calls for production of a part at every 14 hours. As shown for part A.
most parts show flowtimes lower than the demand rates. however for parts with very high demand this
is not true. Figure 4 shows part N as an example of this. The figure suggests that the average flowtime
that part N has an average flowtime of 8.2 hours. but the demand rate requires production of a part every
2.26 hours. With the offset of production rates. and the graphical figures. the system seems to be
reaching steady state. However. if one examines the machine statistics closely. the machining
workstations were utilized at levels over 97% in the 80th day. but at below 90% by the l00th day due
to blocking conditions at all stations (see Table 5). Obviously. with the gridlock condition, the system
will not reach steady state. In addition. the inspection and wash stations were only being utilized at a
33% level which indicated that there is no need for additional stations of this type. Finally, the material
handling system was not fully utilized indicating an excess of AGV's for the system.
Thus. the next obvious step was to increase the number of machining stations. The next system
to be modelled was comprised of five machining stations, four load/unload stations, and two AGV·s.
The simulation was run for 100 days and some critical results are found as shown in Table 6. The
results show that the increase of parts completed, as well as the higher utilization of the load-unload
stations, indicate that the flow of parts has defmitely improved as compared to the previous system.
However. the utilization of the machines at the main workstations are still at the 97% level which may
indicate future system blocking. Moreover. it is important to remember that the goal of this study is to
achieve a machine utilization level of 80%.
Further alternatives were quickly implemented through the use of the pre-processor. and results
indicated that with an increase in the machining workstations. it was necessary to increase the capacity
of the load/unload stations. as well as the material handling system. The final goal was attained with
a system configuration of seven machining workstations. six load/unload· stations, one washing station.
one inspection station. and a material handling system of five AGVs. Table 7 shows some critical
results for this system. An average utilization level of 80% level is achieved with this system and
furthermore. the production flowtime seems to be adequate for the demand projected. If demand is
increased in the future. at least there is a 20% utilization level that this system provides as a safety
factor. The wash and inspection stations are below 50% utilization levels. indicating that single stations
more than satisfy the demand. The additional results reveal that there is no substantial accumulation in
the queues system and the material handling system is not used to its full capacity.
SUMMARY
The use of a simulation generator such as RENSAM assists in the process of modeling different
FMS configurations. The user friendly interfaces facilitate quick modeling and analysis of the simulation
model. Once the data is entered and thus the model created, several alternatives are easily modeled and
analyzed. RENSAM has been successfully used in this study. The goals were accomplished by
designing an appropriate system configuration.
397
TABLE 4: FINAL INVENTORIES
:I
"
::I."
~ :I ?
!
::I."
!
:I 5
3."
3.3
:I ;0
1"1 21 411 -4., 5.., 8.., 71 91 1iiI"1 "'01 11.., 121 131 1 ....,
10.'
10.'
10.1-
10.2
~
10
a.1
!
! ...
a.1
o•
••
.. .......
••
••
• of trWWMt. r_
602.92 BUSY
2 595.63 BUSY
3 587.16 BUSY
4 586.21 BUSY
5 51.00 IDLE
6 51.00 BLOCK
1 605.54 BLOCK
2 597.05 BLOCK
3 589.72 BLOCK
4 587.99 IDLE
5 51.00 BLOCK
6 51.00 BLOCK
400
TABLE 6: RESULTS FOR FIVE WORKSTATION SYSTEM
MACHINE STATISTICS :
MACHlNE STATISTICS:
Machine -Utilization-During-- Fraction Fraction Pans
Number Processing Setup Blocked Failed Entered
1 0.8963 0.0000 0.0289 0.0000 2081
2 0.8760 0.0000 0.0287 0.0000 2075
3 0.8602 0.0000 0.0294 0.0000 2004
4 0.8065 0.0000 0.0283 0.0000 1943
5 0.7307 0.0000 0.0300 0.0000 1838
6 0.7037 0.0000 0.0284 0.0000 1786
7 0.6953 0.0000 0.0285 0.0000 1726
8 0.4762 0.0000 0.0022 0.0000 13446
9 0.4762 0.0000 0.0555 0.0000 13446
Average 0.7246 0.0000 0.0289 0.0000
REFERENCES
Foley, W., S. Jain and J. Haddock, 1990, "Using Simulation Generators for Modeling Flexible
Manufacturing Systems," Progress in Simulation, (J. V. Leonard and G. W. Zobrist, Co-Editors),
(Technical Report 37-87-137), forthcoming.
Haddock, J .• 1987, "An Expert System Framework Based on Simulation Generator," Simulation 48:2.
45-53.
Haddock, J., 1988, "A Simulation Generator for Flexible Manufacturing Systems Design and Control,"
liE Transactions 20:1, 22-31.
Phillips, D.T., M. Handwerker, and G.L. Hogg, 1979, "GEFMS: A Generalized Manufacturing
Simulator," Computers Industrial Engineering, 3, 225-233.
Rolston, L.J., 1984, "Modeling Flexible Manufacturing Systems with MAP/I," Proceedings: First
ORSAITIMS Flexible Manufacturing Systems Conference: Operations Research Models Applications,
University of Michigan. Michigan, Ann Arbor, August, 199-204.
Suri. R., 1984, ,. An Overview of Evaluative Models for Flexible Manufacturing Systems," Proceedings
of First ORSAITIMS Conference on FMS, 8-15.
Suri, R., and G. Diehl, 1987, "Rough-Cut Modeling: An Alternative to Simulation," elM Review,
Winter, 25-33.
AUTHOR INDEX
AIELLO M. 353
ALTINTAS Y. 279
ARAUJOH.J. 217
BATISTA J. 217
BENALI R. 153
BILLINGSLEY J. 131
BODSONM. 353
BOYERK.L. 177
CHANB. 335
CHIASSONJ. 353
DE ALMEIDA AT. 217
D'HOLLANDER E. 31, 237
DIASJ.M. 217
DI STEFANO A 49
GODDARDRE. 177
HADOOCKJ. 385
HEMAMI H. 3, 177
HODAIE P. 335
KASAHARAH. 79
KIM, Y.C. 385
LEPAGEF. 311
LEWISF.L. 369
LOWEJA 369
MARTINS J.L. DE CARVALHO 103
MIRABELLA O. 49
MORELG. 311
NUNES U.C. 217
O'SHEAJ. 153
REKOWSKI R. 353
RICHARDJ. 311
SCHUERERD. 353
STOROSCHCHUK O. 335
SZABADOSB. 335
TENREIRO MACHADO J.A 103
WEILERT AM. 261
ZHENGY.F. 3
403
SUBJECT INDEX
405
406
Real time
- controller performance 115
- path control 230
Reference pattern 188
- set 198
RENSAM 385, 386
Resistance to steady force 208
Retreat from a projectile 209
Robot control 159
- computation 80, 82
- performance 154
Robot dynamics 3,162
Routing 392