Theses
Thesis/Dissertation Collections
8-8-1990
Transputer-based robot controller
Wei-Chieh Chang
Follow this and additional works at:
http://scholarworks.rit.edu/theses
This Thesis is brought to you for free and open access by the Thesis/Dissertation Collections at RIT Scholar Works. It has been accepted for inclusion
in Theses by an authorized administrator of RIT Scholar Works. For more information, please contact
.
Recommended Citation
Department of Computer Engineering
Transputer- Based Robot Controller
by
Wei-Chieh Chang
A thesis, submitted to the Faculty of the Department of
Computer Engineering, in partial fulfillment of the req uirements
for the degree of Master of Sc ience in Computer Engineering.
Approved by:
Dr. Tony H. Chang,
Thesis Advisor
Dr. Roy S. Czernikowski, Professor,
Department Head
Prof. George A. Brown
g~/'90
date
date
hereby grant permission to the Wallaee Memorial Library of RIT to reproduce my thesis i
part or in whole. Any reproduction will not be for commercial use or profit.
(J---:;...L---"---TABLE OF CONTENTS
ABSTRACT
I.
Introduction
II.
Manipulator
Dynamics
andControl
A.
General Description
ofNE
andLE
equationsof
motionB.
D
Alembert Representation
C.
Computational Modules
ofNE Equations
ofMotion
D.
Data
Flow Characteristics
III.
Transputer-Based Controller
A. Transputer
andOccam Language
B.
Proposed Architecture
1
.Hardware
structure2.
Algorithm
ofdata
flow
IV.
Experiment Results
V.
Conclusion
VI.
Figures
andTables
VII.
References
VIII.
Appendices
A. NE
Equations Formulation
ABSTRACT
A
cost-effective architecturefor
the
control of robot manipulatorsbased
onfunctional decomposition
ofthe
equations of motionis
described.
The
Lagrange-Euler(
LE)
andthe
Newton-Euler(
NE)
formulations
are usedfor
decomposition.
According
to
real-time control criterion,the
LE
equationsare not suitable
for implementation
using
currently
availablehardware
because
the
required number of computationsis
too
high,
even aftertaking
the
inherent
parallelisminto
account.However,
the recursive nature ofthe
Newton-Euler
equations of motionlend
themselves
tobeing
decomposed
toterms
usedto
generate the recursiveforward
andbackward formulations.
A
special architectureimplemented
on a network of transputersis
proposed which
takes
advantage ofboth
the parallelism and seriallism of theNE
equations and the ease ofbuilding
communication channel providedby
the transputers
andOccam language. This
proposed controller model canbe
best defined
as a macrolevel
pipeline.Based
onthis
model,both
I. Introduction
As
more advancedVLSI
technologies
come tothe
world,the
fast
decrease
of computational costs and
increase in
computation power pave a smoothway
to
utilizing
multiple microprocessorsfor
real-time applications, such ascontrolling
robot manipulators.Although
currentindustrial
manipulatorsare multiple microprocessor-based systems,
they
do
not utilize thecomplete
dynamic
model ofthe
manipulatorin
designing
the controlsystem.
Independent joint
models are used to model thelinks
ofthe
manipulator, and the controller
design is based
onthese
joint
equations.This,
in
effect, assumesthat the
joints
of the manipulators aredecoupled,
and
the
coupling terms,
such as coriolis and centrifugalforces/torques,
arenegligible.
As
a result,they
move athigh
speed with"noticeable"
vibrations.
The
main problemin
using
microprocessorsfor
the real-time control ofmanipulators
is
the complexity
of computations required to compute acontrol
law
based
on thedynamic
model.Luh
andLin[l]
proposed anarchitecture
for
executing
theinverse
plantdynamic
equationsbased
onthe
Newton-Euler(NE)
equations,in
whichthey
assigned a processor tocalculate the
joint
torquefor
eachjoint
using
a minimumscheduling
algorithm,
based
on branch-and-bound method.However,
they
did
nottake
into
account the recursive structure of theNE
formulation;
especially the
sequential
dependencies
of the algorithm which are conductiveto
pipeling.pipelined architecture
for
computing
the
inverse
plant andindicated
thatby
using
three
CPUs
arrangedin
pipelinedfashion,
a gain of almost threetimes
in
the
servosampling
time
couldbe
achieved.The
objective ofthis thesis
is
to
extend theseideas
andto
find
acost-effective architecture
using
transputers to
performthe
real-time control of a manipulator.This
controllerfunctions
as a peripheral or anattached processor
controller(APC)
to somehost
computer(IBMPC-AT)
which provides
both
software andhardware
environments.The
real-time robot-arm-control problem wastackled
in
two separatebut
coherent phases ofdesign.
First,
thedynamic
model of a manipulator wasfunctionally
decomposed into
several"
computational
Second,
based
onthese
models, an appropriate computational structureusing
presentday
microprocessors wasdesigned
to
reducethe
computationaltime
as much as possible.So
the
NE
equations of motionis decomposed into
the terms
used to generate the recursiveforward
andbackward
equations.And
then
an architecture that meets ourdesign
criterionis
proposed, whichis
based
onthe
NE
equations,because
it is less
computationally
intensive
than the
LE
formulation.
A
simple robot(
seeFig.
2)
is
used as an example,though the
architecture presentedhere
is
applicableto
other manipulatorsII.
Manipulator Dynamics
andControl
A. General
Description
ofNE
equations andLE
equationsRobot
armdynamics deals
withthe
mathematicalformulations
ofthe
equations of robot arm motion.
The dynamic
equations of motion of amanipulator are a set of mathematical equations
describing
the
dynamic
behavior
ofthe
manipulator.Such
mathematical equations of motion areuseful
for
computer simulation of the robot arm motion, thedesign
ofsuitable control equations
for
a robot arm, andthe
evaluation of thekinematic design
and structure of a robot arm.The
purpose of manipulatorcontrol
is
to
maintainthe
dynamic
response of a computer-basedmanipulator
in
accordance with some pre-specified system performanceand
desired
goals.The
actualdynamic
model of a robot arm canbe
obtained
from known
physicallaws
such asthe
laws
ofNewtonian
mechanics and
Lagrangian
mechanics.This leads
tothe
development
ofthe
dynamic
equations of motionfor
the various articulatedjoints
ofthe
manipulator
in
terms of specified geometric andinertial
parameters ofthe
links.
Conventional
approacheslike
the
LE
[3l,[4],[5land
NE
[4],
[6]
formulations
could thenbe
appliedsystematically to
develop
the
actualrobot arm motion equations.
Various
forms
of robot arm motion equationsdescribing
therigid-body
robot armdynamics
are obtainedfrom
these two
formulations,
such asUicker's
LE
equations[7],[31,
Hollerbach's
Recurs
ive-Lagrange
(R-L)
equations[81,
Luh's NE
equations[6],
andLee's
generalized
d'Alembert
(G-D)
equations[91.
These
motion equations are "equivalent"behavior
ofthe
same physical robot manipulator.However,
the
structuresof
these
equationsmay
differ
asthey
are obtainedfor
various reasons andpurposes.
For
example, the
derivation
of thedynamic
model of amanipulator
based
onthe
LE formulation is
simple and systematic,this
formulation
provides explicit state equationsfor
robotdynamic
and canbe
utilized
to
analyze anddesign
advancedjoint-variable
space controlstrategies;
while some are obtainedto
achievefast
computation timein
evaluating the
nominaljoint
torques
in
servoing
a manipulator.All
these
equations can
be
used onboth
solving
forward dynamics
problem, thatis
,given
the
desired torques/forces,
the
dynamic
equations are usedto
solvethe
joint
accelerations which arethen
integrated
to
solvefor
the
generalized coordinates and
their
velocities; whilethe
inverse dynamics
problem
is
to
computethe
generalizedforces
andtorques
from
the
desired
generalized coordinated and
their
first
twotime
derivatives.
Comparing
with
their
computation complexities,only
NE
equations are suitablefor
real-time control
implementation
ofinverse
dynamics! 10], [1
H,[6]
to
meetreal-time cotrol requirements..
This
set of equations containsboth forward
recursion and
backward
recursionthat
propagatesthe
forces
and momentsexerted on each
link
from
the end-effector ofthe
manipulator tothe
base
reference
frame
-backward
recursion, and propagateslinear
velocities,angular velocities, angular acceleration, and
linear
accelerations at thecenter of mass of each
link from
the
inertial
coordinateframe
to
thehand
coordinate
frame
-forward
recursion.Before
the
work ofLuh
etal[6], all
the
inertial
matricesIi
and the physical geometric parameters(
ri, si,pi,
p*i)
are referencedto the
base
coordinate system.As
aresult,
they
changeequations of motion
by
referencing
all velocities, accelerations,inertial
matrices,
location
of center of mass of eachlink,
andforces/moments to
their
ownlink
coordinate systems and madethe
computationcomplexity
of
this
equationlinearly
proportional tothe
number ofdegree
offreedom
of a manipulator.
Based
onthis
model,it
wouldbe
very easy to build
areal-time controller of a robot arm
in
thejoint-variable
space.The
NE
B. D'Alembert
Representation
In
orderto
describe
the translational
and rotational relationshipsbetween
adjacent
links,
Denavit
andHartenberg[12l
proposed a matrix method ofsystematically establishing
a coordinate system(body-attached frame)
to eachlink
of an articulated chain.The
Denavit-Hartenberg(D-H)
representation
develops
a4
x4 homogeneous
transformation
matrixrepresenting
eachlink's
coordinate system at thejoint
with respect to theprevious
link's
coordinate system.Applying
this method,the
end-effectorof a robot expressed
in
the
"hand
coordinates"can
be
translatedto
and expressedin
the
"base
coordinates"which makes
up the
inertial
frame
ofthis
dynamic
system.Every
frame
is determined
and established onthe
basis
of thefollowing
three rules:1
.The Z
{_j
axislies
along the
axis of motion ofthe
i
th
joint.
2. The X j
axisis
normalto
theZ
j_j
axis, andpointing away
from
it.
3. The Y j
axis completesthe
right-handed coordinate system as required.The D-H
representation of a rigidlink
depends
onfour
geometricparameters associated with each
link. These four
parameterscompletely
describe
any
revolve or translationaljoint.
Referring
to
Fig. 3
these
four
parameters are
defined
asfollows:
0-
is
the
joint
anglefrom
the
Xj_
jaxisto
the
Xjaxis
aboutthe
1\_
\
axis(using
dj
is
the
distance from
the
origin ofthe
(i-1
)th
coordinateframe
to
the
intersection
ofthe
Z{_^
axis withthe
Xj
axisalong the
lv_\
axis.aj
is
the
offsetdistance from
the
intersection
ofthe
Zj.j
axis withthe
Xj
axisto the
origin ofthe
i
th
frame
along the
Xj
axis( or the shortestdistance between
the
l\-\
andZj
axes).0^
is
the
offset anglefrom
the
Z
-t_j
axis tothe
Z j
axis about theXj
axiscompleting
the
righthand
rule).The
values ofthese
parameters of two types of robot are shownin
Fig. 1
and
Fig. 2. After
these
parameters aredetermined,
thetransformation
matrix of
two
adjacent coordinateframes
canbe derived
asfollows:
A =T T T T
i
z,d z,e H,a'H,a1
0
0
0 C0i -S0i0
0 1 0 0 ai 1 0 0 00
1
0
0 s9i cGi0 0
01
0
00
cot. -SOtj 00
0
1di
0 0
1
0 00
10
0 SCC; coq 00 0
0
1
.0 0
0 1.
0
0 0 1 .0
0 0 1Using
the
l~^A;,
a pointPj
at restin link i
and expressedin
coordinatesystem
i-1 built
onlink i-1
by
p. .
.
i-1
a .p.ri-l
Miri
For
arotary
joint,
dj,
aj
andarfaj
arethe
joint
parameters and remainconstant
for
arobot,
whiletheta
is
thejoint
variable that change whenlink
C.
Computation Module
ofNE Equations
ofMotion
The
recursiveNE
equations were computedserially
in
the past(Fig.3
);
first
all
the
angular velocities wi were computed,then
the angular accelerationsw.i, etc.
In
the
parallel architecture(Fig.4
)
proposedby
Lathrop,
it is
obvious
that
some quantities canbe
computedin
paralleK seeFig. 4). For
example, after w.
1
has been
computed,both
w.2 and v.1
canbe
computedat
the
sametime.
Following
thedata
flow,
the
increasing
subscripts of(o, co,
v, a,
N,
F
show
that these
variablesbelong
to the
set offorward
eqations and shouldbe
computedforwardly
serially,
whilethe
variables,f,
n, tau shouldbe
computed
backwardly
serially
andbelong
to the set ofbackward
equations.There
canbe
many
different
assignments ofCPUs
to computation moduleswith
different
set ofthroughput,
computation time and utilization efficiencies.Assignment One:
(see
Fig. 5.
a)A
simple and pure pipeline withlow
throughput andlong
computationtime.
Assignment Two:
(see
Fig.
5-b)
A
macro-leveled pipeline with one morelocal
pipelineto
increase both
Assignment Three:
(see
Fig.
5.c)
A
meshlike
special structure.Since
Rn, Rv,
RN
are the mosttime-consuming
stagesin
the
computation process,using
more than oneprocess
to
reducethe computation time canincrease
the
global computationspeed and
throughput.
The
serial nature ofthe
computationaldata
flow lead
to
thetendency
of apipelined
implementation
andthe
parallel nature ofthe
data flow
lends
itself
to
multi-processorimplementation. Both
the seriallism andthe
parallelism
help
to
increase
the
computational throughput.However,
thecharacteristics of pipeline and parallel
processing
still need tobe
carefully
examined
to
seekfor
an optimal combination of software algorithm andhardware
organization.As
to the
pipeline, the throughputis
mainly
effected
by
the
mosttime-consuming
stagein
the pipeline; asto
parallelprocessing,
the
data
communication requiredby
software algorithm shouldtake
into
accountboth
thedata
dependency
ofNE
equation and theD. Data Flow
Characteristics
A
pipeline consists of multiple stages, where each stage performs anoperation which
is
only
dependent
ondata
providedby
its
predecessorstage.
This
stagein
turn
providesthe
output to the successor stagein
thepipeline, which can
then
begin
performing
their
requested operations.Each
stage can
be
performing
an operationin
parallel with all other stages.Stages
need nottake the
same amount oftime,
though this
case makes thepipeline much
harder
to
synchronize.If
a synchronous approachis
appliedto the pipeline, then
thethroughput
willbe
dragged
down
by
the sloweststage
in
the pipeline.If
a calculation takesN
seconds to perform on a singleprocessor,
the
same calculation alsotakes
N
secondsto
perform onthe
pipeline system while
the
pipelined system givesincreased
throughput.However,
it
willtake
less
thanN
seconds to performthe
same calculationon a mesh-like structure or a macro-level pipeline
if
the
data
dependency
and
hardware
structure can support todo
so.The
mainbenefit
of a pipeline systemis increased
computationalthroughput,
as subsequent calculations canbe initiated before
the
result ofthe
current calculationis
produced.But
a simple pipeline withoutreducing
the
longest
computation time ofthe
stagein
the pipelineis
not appropriatesince
if
the computation time of the torqueis
notless
than the sampling
time,
the
robot arm will oscillate.A
macro-level pipelineis
proposedto
further
speedup the
computation, which assigns morethan
one processorIII
Transputer-based
controllerThe
objective ofthis thesis
is
to
utilize a network oftransputer, already
built
on adaughter board
ofIBM-PC
AT,
developed
by
INMOS
Inc,
to
solvethe
problem ofinverse dynamics
ofthe
robot arm.Having
introduced
the
dynamic
model of a manipulator, adescription
ofthe
real-world computercomponent,
the programming
language,
and theintegrated
computersystem are presented as
follows
to
seehow
these
toolsimplement
theA. Transputer
andOccam
language
A
transputer
is
a microcomputer withits
ownlocal
memory
and withhardwire links for
connecting
onetransputer to
another transputerby
the
way
of point-to-point communicationto
support concurrency.To
gain mostbenefit from
the transputer
architecture,the
whole systemcan
be
programmedin OCCAM language.
This
provides all the advantagesof a
high level
language,
the maximum programefficiency
andthe ability
touse
the
specialfeatures
of the transputer.OCCAM
provides aframework for
designing
concurrent systemusing
transputersin
adirect
way.A
programrunning
on atransputer
is
formally
equivalentto
anOCCAM
process, so thata network of
transputers
canbe
described
directly
as anOCCAM
program.On
the programming
aspect,the
softwarebuilding
block is
the process.A
system
is
designed
in
terms
of aninterconnected
set of processes.Each
process can
be
regarded as anindependent
unit ofdesign. It
communicateswith other processes
along
point-to-point channels.Its
internal design is
transparent,
andis
specifiedonly
by
the messagesit
sends and receives.Communication
between
processesis
self synchronized,removing
the needfor
any
separate synchronization mechanism.Internally,
each process canbe
designed
as a set of communicating processes.The
systemdesign
is
therefore
hierarchically
structured.At
any
level
ofdesign,
the
designer
is
concerned
only
with a small and manageable set of processes.Occam
is
based
onthese
concepts, and providesthe
definition
ofthe transputer
On
the
communicationaspect, to
provide synchronized communication, eachmessage must
be
acknowledged.Consequently,
alink
required atleast
onesignal wire
in
eachdirection. A link
between
two transputersis
implemented
by
connecting
alink interface
on one transputerto
alink
interface
onthe
otherby
two
one-directional signallinks,
withdata
transmitted serially.
The
two
signal wires ofthe
link
canbe
usedto
providetwo
OCCAM
channels,
onin
eachdirection. All
the
transputers will supporta standard communications
frequency
of10
Mbits/sec
regardless ofprocessor performance.
Each
transputer can provide4
links(
8
B. Proposed
Architecture
1.
Hardware
Structure
The hardware
facility
usedto
implement
the controller of robotmanipulator
is
the
IMS B008 TRAM daughterboard.
The
IMS B008 is
adaughterboard
which plugsinto
theIBM PC-AT
andhas
10
TRAM
slots, toaccomodate
10
TRAMs
(
TRAM is board-level
transputer
that consists ofprocessor,
memory,
peripheralfunctions
and communicationlinks)
When
pluggedin,
they form
a pipeline ofprocessing
elements which consumestwo
links for
eachtransputer,
whilethe
other tworemaining
links
of eachtransputer
canbe
"
using
anINMOS IMS C004
programmablelink
switch,
incorporated in
thethe
IMS B008.
The
transputer
network contains at most10
transputers.The first
oneis
aT800
trasnputer
in
slot0
andit is
the only
one which can communicate withthe
host
computer.That is
to
say,in
order todisplay
the
data
generated
by
allthe
other9
transputers, data
has
to
sendto
this monitortransputer
in
slot0
andthen
the
monitortransputer
callsthe
I/O function
to
send thedata
to
the screen.This
monitor transputeris
also theonly
one which candirectly
receive thedata from keyboard.
The
hard-wired
link is
representedby
a solidline
between
two
transputers
while
the
soft-wiredlink(
or programmedlink)
is
representedby
adash
line. The
transputer placedin
slot0 is
denoted
by
PM(
monitorprocessor)
to
denote
the transputers
placedin
slots1
to9,
all are T800-model except2. Algorithms
ofdata flow
Each
algorithmis
illustrated
by
an equationtable(
seeTable
1)
and twodiagrams: linear
parallelNE
formulation(
seeFig.
6)
andtiming
diagram(see
IV
Experiment
Results
The
computationtime
ofNE
equationsusing
Integer
is
about9
1
0
microseconds, while
using
Real32
the time
is
about819
micro seconds.They
areless
than the
1.5
ms,
obtainedby
Lee[]
using
pipelinedM6800.
If
only
onetransputer(T800) is
used, the
computation timeis
about2790
microseconds.
The
results ofthe
eighttests
arelisted below:
For Integer:
Test 1:
computation time
is 908
micro secondsfrom
4066177
to
4067085
the tau
ofthe tau of
the
tau
ofthe tau
ofthe tau
ofthe tau
of6
0
0
oint
1
is
3888
with0
0
0
oint
2 is
2700
with0
0
0
oint
3
is 1728
with0
0
0
oint
4
is
972
with0
0
0
oint
5
is
432
with0
0
0
oint
6
is
108
with0
0
0
Test 2:
Computation
timeis
909
micro secondsfrom
2846324
to
2847233
0
0
0
the tau
ofjoint
1 is
324
with0
0
0
the tau
ofjoint 2 is
-864 with90
0
0
the tau
ofjoint
5
is
-864 with0
0
0
the tau
ofjoint
6
is
0
with90
0
0
Test 3:
computation
time
is 908
micro secondsfrom
3157899
to
3158807
the tau
ofthe tau
ofthe tau
ofthe
tau
ofthe
tau
ofthe tau
of0
0
0
oint
1 is
-143676 with0
10
0
oint
2 is
-116064
with90
0
0
oint
3
is
-39264 with0
10
0
oint
4 is
37536
with90
0
0
oint
5
is
23676
with0
10
0
oint
6
is
19200
with90
0
0
Test 4:
computation
time
is 909
micro secondsfrom 2906363
to
2907272
the tau
ofthe tau
ofthe tau
ofthe tau
ofthe tau
ofthe tau
of0
0
0
oint
1 is
-127356with0
10
0
oint
2
is
-92064 with90
0
20
oint
3
is
-21344 with0
10
0
oint
4 is
50336
with90
0
20
oint
5
is
291 16
with0
10
0
oint
6
is
19200
with90
0
20
Test 1:
computation
time
is 817
micro secondsfrom
6192471
to
6193288
the tau
ofthe tau
ofthe tau
ofthe tau
ofthe tau
ofthe tau
of0
0
0
oint
1 is
176.39
with0
0.0
0.0
oint
2 is
122.50
with0
0.0
0.0
oint
3 is
78.4
with0
0.0
0.0
oint
4 is
44.1
with0
0.0
0.0
oint
5
is
19.6
with0
0.0
0.0
oint
6
is
4.9
with0
0.0
0.0
Test 2:
computation
time
is 817
micro secondsfrom 4288094
to
428891
1
0
0
0
the tau
ofjoint 1 is
14.7
with0
0.0
0.0
the tau
ofjoint
2 is
-39.2 with90
0.0
0.0
the tau
ofjoint 3 is
-39.2 with0
0.0
0.0
the tau
ofjoint
4 is
-39.2 withthe tau
ofjoint
5
is
-14.7
with
the tau
ofjoint
6
is
0.0
with90
0.0
0.0
0
0.0
0.0
90
0.0
0.0
Test 3:
computation
time
is
823
micro secondsfrom 3831878
to
3832701
0
0
0
the tau
ofthe tau of
the tau
ofthe tau
ofthe tau
ofoint
2 is
-2939.19 with0
0.0
0.0
oint
3 is
-1339.19 with0
0.0
0.0
oint
4 is
260.80
with0
0.0
0.0
oint
5
is
235.30
with0
0.0
0.0
oint
6
is
400.0
with0
0.0
0.0
Test
4:
computation time
is 823
micro secondsfrom
5141659
to
5142482
the tau
ofthe
tau ofthe tau
ofthe
tau ofthe
tau ofthe
tau of0
0
0
oint
1
is
-2895.30 with0
10.0
0.0
oint
2 is
-2439.19 with90
0.0
20.0
oint
3 is
-965-86with0
10.0
0.0
oint
4 is
527.
46
with90
0.0
20.0
oint
5
is
348.63
with0
10.0
0.0
V. Conclusion
The
mostinteresting
pointis
that the
floating
point computationtime
is
shorter
than the
fixed
point computation time.The
T800
transputercontains
both
aRISC CPU
and aFloating
Point
Unit(
FPU). When
afloating
point operation
is in
processing,
both
CPU
andFPU
areworking
concurrently,
CPU
working
on address calculation whileFPU
working
ondata
computation.Therefore,
for
a simplehigh-level-language
statement,like
x-x+1
,
the
computationtime
with xbeing
integer
is
still shorterthan
the
computationtime
with xbeing floating
point.However,
for
a complexstatement,
like
for k-0
to
7
begin
x[kl:-u[kl+(((r*(zlkl+(r*y[k])))+
(t*((u[k
+3l+(r*[u[k+2l+(r*ulk+l ])))))))+
(t*((u[k+61+(r*ulk+5l+(r*u[k+4l)))))))
end.
which
is
aBenchmark,
Livermore
Loop
7,
the
computation withdata
being
integer is 178
micro seconds while the computationtime
withdata
being
floating
pointis just
85
micro seconds.This
is
the
result of parallelprocessing
whenthe
data
type
is
floating
point.When
the
data
typeis
integer,
CPU has
to
deal
with the address anddata
computationsequentially,
thereby
slowing
down
the
overall computation.avoid
the
difficult
ofscaling in multiplying
six sinusoidal coefficientstogether,
sin and cos values ofO's
andIs
only
are usedin
thefixed
pointcomputation.
Transputers
withOCCAM
programs renderthe
real-time computation ofrobot manipulator control not
only
possiblebut
also cost-effective.It
takesonly
0.82
msto
computethe
nominaltorques
of allthe
sixjoints
ofthe
robot arm
by
using
the
parallel recursive algorithmfor
solving
theNE
equations of motion.
The
result obtainedby Lee[19l
using
M68020 is
1.5
ms which
is
almosttwice
ofthat
obtainedby
using transputer
network.If
aglobal
bus
is
addedto
ourtransputer
network to support parallelcommunication,
the
overall computationtime
canbe further
reducedVI
Figures
andTables
jdf
x5
(86) m6
PUMA ROBOT ARM LINK COORDINATE PARAMETERS
joint
0i
ai81
di
joint
rangei 90 -90
q
0 -160 to +1602 0 0 431.8 mm 149.09mm -225 to 45 3 90 90 -20.32 mm o -45 to 225
4 0. -90 0 433.07mm -1 10 to 170
5 0 9C 0 0 -100to 100
6 0 0 0 56.25mm -266to 266
X6
Z3
(<>ZO
('>Z1
(2>Z2
(03>Simple Robot
armlink
coordinate parametersJoint i
0i
OtiJoint
range2 m
2m
180 to 180 180 to 180
A-
2m -180 to 1802m
2 m
180 to 180
180 to 180
2m 180 to 180
A
a
XLM
IM
xxr
XL
t6
t5
t3
t2
Tl
PO
Pi p2p3
P4P5
RN
P3
Rcb
Rv
PO
pi
p2
PO
PiRv
_?
P3
}
_*.P4
_
Rv.I
P3
t
_?
Rv.II
P4
Rv
Table 1:
Decomposition
of
NE
equations
v,=R
RoVR
V;'
Vit('o"'vi|x
Vi1
V,
=Vr'
+RoV"
^v../=W0'<i,)x(S^.)
jV
..;/
=(rJb)
x[u^)
x(^
if.)}
sqsy,=(RoS)x(Rosi)+SoV/
R'a..ll
=(R'w.)x
|(flV)x(s's
)]
0/
0/
Of
U
1R
'
F.
= mO i
J?
0a./KNi=RoNr,
+RoNr"
R>../=(R0'/.R>R^,.)
W+RoV/
0
i i+10.1+1
",-+1
+(RoT'^)x<Ro'"W
O 0 c/3
>
CM 0 n50 50 50 50 50
Z Z
3
^
^
^^ r-^^ ^^ r~ a 50 z ^~
S3 50 50 50 50 50 50
z z < <: *3 to
3
to to ^^
^
to to,__ ^_ *. 1, ^' I~~,
n
50 50
z
IO
5C 50 50 50 50 50 50 50 SO z Z P P < <
^
00
*a
OO 00 ^~ "~ to
to 00 00
*
, [ , ^^ ^^ >-^ , i
^^ "
a
50 50 50
< to
2: $a
00
50 50 ^ 50 50 50 50 50
z z 9* P < <
^
15^
Js ?^ to to 00 00 ?4^ hEs. Js
J_ ^ 1 ., 11
' ^"^ '
m 50 z 50 to 50
50 50 50 50 50 50 50 50 50 z z &> P <s <
^
^
V-n v-n 00 00 -s J^^n ^n
f L i^ .* 4 l-l ^^ J"~'
*n
50 50
"50
< Z^1 P3
50 50 50 50 50 50 50 50 50 Z Z P P < <
^
^
^
C^ C^ J^ J^ v-n v-n <^ <7\ (^^^ J_^ ^^ ^^ r. **
' ^" I"
0 50 50 50<
Z
<^
50 50 SO 50
P P < <
v-n Ui 9s 7s
M n NM n ^^ J-'
^ l_ r-* w 50 p ON 50 n ON
50 <.
-* ON
50 50 50
3 3 T]
ON 9s Ui
50 3 ON 50 P 0* to !*
50 50 -H
3 3 P
v-n v-/i C J
50 3 ON
3
era O p era r*50 50 H
3 3 P n
?fcv JX C p
3
;_ n V-n
50
3
S
50 50 H
3 3 P
00 OJ C
;_ i, 4K
50 3
00
z
^ 50 -3
3 3 P
to to C
I1 c 50 3 to 0
50 50 H
3 3 P
* 7- C
i__ '>1 to
C
<o
H P
cr
10
3
era
p era
p
VII
References
[1]
J. Y. S.
Luh,
andC. S.
Lin,
"Scheduling
ofParallel Computation for
aComputer
Controlled Mechanical
Manipulator,"IEEE Trans. Syst.
Man,
and
Cyber.,
vol. SMC-12,
March/April
1982,
pp.214-234.
[2]
D.
E.
Orin,
"Pipelined
approachto
inverse
plant plusJacobian
control ofrobot
manipulators,"
in Proc. 1984 IEEE International
conf.Robotics
Automation, 1984,
pp.169-175.
13]
A. K.
Bejczy,
"Robot
armdynamics
andcontrol,"
tech.
memo ,33-669,Jet Propulsion
Laboratory.
Feb. 1974.
[4]
C. S.
G.
Lee,
"Robot
armkinematics, dynamics,
andIEEE
Computer,
vol.15.no.
12,
pp. .62-80,Dec. 1982.
[5]
C.
S. G.
Lee,
Robot Manipulators:
Mathematics, Control,
andProgramming.
Cambridge,
MA:
MIT,
1981.
[6]
J. Y. S.
Luh,
M.
W.
Walker,
andR.
P. C.
Paul,
"On-line
computationalscheme
for
mechanicalTrans.
ASME,
J.
Dynam.
Syst..
Meas.
Contr.,
vol.1
20.
pp.69-76.
June 1980.
[7]
J. J.
Uicker,
"On
theDynamic Analysis
ofSpatial Linkages
using
4
x4
Matrices."
Ph.D.
dissertation
,Northwestern
University.
Evanston, 111,
1965.
|8]
J. M. Hollerbach,
"A
Recursive
Lagrangian
Formulation
ofManipulator
Dynamics
and a ComparativeStudy
ofDynamics Formulation
Complexity,"
IEEE Trans.
Systems,
Man, Cybern.,
vol. SMC-10,
no.11,
pp.
730-736.
[9]
C. S.
G.,
B. H. Lee
andR. Nigam,
"Development
ofthe
Generalized
dAlembert Equations
ofMotion
for Mechanical
Manipulates,"
22nd
Conf.
Decision
andControl,
San
Antonio,
Tex.,
pp.1205-1210.
10]
W.
M.
Armstrong,
"Recursive Solution
tothe
Equations
ofMotion fo
anN-link
Manipulator,"Proc.
5th
World
Congr.,
Thory
ofMachines,
Mechanisms,
vol.2,
pp.1343-1346.
11]
D. E.
Orin,
R. B.
McGhee,
M.
Vukobratovic
andG.
Hartoch,
"Kinematic
and
Kinetic Analysis
ofOpen-Chain
Linkages
Utilizing
Newton-Euler
Methods,"
Math.
Biosci.,
vol.43,
pp.107-130.
.12]
J. Denavit
andR. S.
Hartenberg,
"
AKinematic Notation for Lower-Pair
Mechanisms Based
onMatrices,"
J. App. Mech.
vol.77,
pp.215-22 1
.[13]
IMS B008 User Guide
andReference
Manual,
INMOS
Ltd, Bristol,
UK.
[14]
The Transputer
Databook,
INMOS
Ltd, Bristol,
UK.
[151
Dick
Pountain,
David
May,
"A
Tutorial Introduction
to
OCCAM
Programming
Language'
,
BSP Professional
Books,
INMOS
Ltd,
Bristol,
UK.
16]
R. D.
Dowsing,
"Introduction
to
Concurrency
Using
OCCAM",
VNR Co. Ltd.
17]
J. J.
Craig,
"Introduction
to
Robotics,
Mechanics
andControl",
Addison-Wesley
Publishing
Co.
18]
C. S. G.
Lee,
R. C.
Gonzalez,
K. S.
Fu,
"Tutorial
onRobotics",
IEEE
Computer
Society
Press.
19]
R.
Nigam,
C. S. G.
Lee,
"A
Multiprocessor-Based
Controller for
the
Control
ofMechanical
Manipulators",
IEEE
Journal
ofRobotics
and1985-Forward
equations: i=
1,2
n
B'oV R,i-ilR'o1"t-i
+zoai
+<R,o1a>i-i)xzo*,i1
>,"
(R>i'
*(R>?
+(RW
*,(RW
*<R'opP1
+RURo
"l-toa,
=<R
W
*(RoV
+,Rorai'
*1(R<rV
x(RW1
+R'o*i
r'0n.=
(R',,1
.R0)^.) +(R^a,.)
xim'0i
rf>
x(R'0oo.)l
RJ\= m.Ra.
0
i i0
iBackward
equations:i=n,
n-11
R'0f.=
R'.
V+V
J
+r'f.
0
i 1+10 1+10
Ii+1
,J+L*> iJ+K ^ rp'* .l
r'
R'oV
Ri+,1R'o
V.
+,Ro
"P
x,Ro
f
i+."+Vl
+RoV
*<RoFi'
+RoNi
B. Source
Code:
1.
Library
File
ofNetwork File
andMonitor
File.
VALLOO
ISO
VALLIO IS 1
VALL20 IS 2
VALL30
IS 3
VALLOI IS 4
VALL1I IS
5
VALL2I
IS
6
VALL3I IS 7
VALT.SIN IS
0.00(REAL32).
0.0174(REAL32), 0.0348(REAL32),
0.0523(REAL32),
0.0697(REAL32),
0.087KREAL32). 0.104(REAL32), 0.12KREAL32),
0.139(REAL32
0.173(REAL32
0.224(REAL32
0.258(REAL32
0.309(REAL32
0.342(REAL32
0.390(REAL32
0.422(REAL32
0.469(REAL32
0.499(REAL32
0.544(REAL32
0.573(REAL32
0.615(REAL32
0.642(REAL32
0.681
(REAL32
0.707(REAL32
0.743(REAL32
0.766(REAL32
0.798(REAL32
0.819(REAL32
0.848(REAL32
0.866(REAL32
0.156(REAL32
0.190(REAL32
0.24KREAL32
0.275(REAL32
0.325(REAL32
0.358(REAL32
0.406(REAL32
0.438(REAL32
0.484(REAL32
0.515(REAL32
0.559(REAL32
0.587(REAL32
0.629CREAL32
0.656(REAL32
0.694(REAL32
0.719(REAL32
0.754(REAL32
0.777(REAL32
0.809(REAL32
0.829(REAL32
0.857(REAL32
0.874(REAL32
FROM 0 TO
9
0.207(REAL32),
0.292(REAL32),
--FROM
10
TO 19
0.374(REAL32),
0.453(REAL32),
FROM 20 TO
29
0.529(REAL32),
0.60KREAL32),
FROM 30 TO 39
0.669(REAL32),
0.73KREAL32),
FORM 40 TO
49
0.788(REAL32),
0.838(REAL32).
-FROM
50 TO
59
0.89KREAL32
0.906(REAL32
0.927(REAL32
0.939(REAL32
0.956(REAL32
0.965(REAL32
0.978(REAL32
0.984(REAL32
0.992(REAL32
0.996(REAL32
0.999(REAL32
1.0(REAL32).
0.998(REAL32
0.996(REAL32
0.990(REAL32
VALT.COSISl
1.000(REAL3
0.998(REAL32
0.996(REAL32
0.990(REAL32
0.984(REAL32
0.974(REAL32
0.965(REAL32
0.95KREAL32
0.939(REAL32
0.920(REAL32
0.906(REAL32
0.882(REAL32
0.866(REAL32
0.838(REAL32
0.819(REAL32
0.788(REAL32
0.766(REAL32
0.731
(REAL32
0.707(REAL32
0.669(REAL32
0.642(REAL32
0.60KREAL32
0.573(REAL320.529(REAL32
0.898(REAL32
0.913(REAL32
0.933(REAL32
0.945(REAL32
0.961
(REAL32
0.970(REAL32
0.98KREAL32
0.987(REAL32
0.994(REAL32
0.997(REAL32
0.999(REAL32
0.999(REAL32),
0.997(REAL32
0.994(REAL32
0.987(REAL32
2),
0.999(REAL3
0.997(REAL32
0.994(REAL32
0.987(REAL32
0.98KREAL32
0.970(REAL32
0.96KREAL32
0.945CREAL32
0.933(REAL32
0.913(REAL32
0.898(REAL32
0.874(REAL32
0.857(REAL32
0.829(REAL32
0.809(REAL32
0.777(REAL32
0.754(REAL32
0.719(REAL32
0.694(REAL32
0.656(REAL32
0.629(REAL32
0.587(REAL32
0.549(REAL32
0.515(REAL32
,0.920(REAL32),
,60
TO
69
,0.95KREAL32).
,
0.974(REAL32),
,70 TO
79
,
0.990(REAL32),
,
0.998(REAL32),
,80
TO 89
0.999(REAL32),
i
.
0.992(REAL32),
]:
90 TO
99
2),
0.999(REAL32),
0.992(REAL32),
0 TO 9
0.978(REAL32),
0.956(REAL32),
10
TO 19
0.927(REAL32),
0.89KREAL32),
20 TO
29
0.848(REAL32),
0.798(REAL32),
30 TO
39
0.743(REAL32),
0.68KREAL32),
40
TO
49
0.615(REAL32),
0.544(REAL32),
0.500(REAL32),
0.484(REAL32),
0.469(REAL32),
0.453(REAL32),
0.438(REAL32),
0.422(REAL32),
0.406(REAL32),
0.390(REAL32),
0.374(REAL32),
0.358(REAL32),
-60
TO
69
0.342(REAL32),
0.325(REAL32),
0.309(REAL32),
0.292(REAL32),
0.275(REAL32),
0.258(REAL32),
0.241(REAL32),
0.224(REAL32),
0.207(REAL32).
0.190(REAL32).
-70 TO
79
0.173(REAL32).
0.156(REAL32),
0.139(REAL32),
0.12KREAL32),
0.104(REAL32),
0.087KREAL32), 0.0697(REAL32),
0.0523(REAL32),
0.0349(REAL32),
0.0174(REAL32).
80 TO 89
0.00(REAL32),
-0.0174(REAL32),-0.0348(REAL32),-0.0523(REAL32),-0.0697(REAL32),
-0.0871(REAL32),-0.104(REAL32),-0.121(REAL32),
-0.139(REAL32), -0.156(REAL32)]:
90 TO
99
VAL
INTDEGIS6UNT):
VALREAL32
ZERO IS
0.0(REAL32):
VALREAL32
ONE IS
1.0(REAL32):
VALREAL32
M.ONE IS
-1.0(REAL32):VALREAL32
G IS 9.8(REAL32):
VAL REAL32
TWO IS 2.0(REAL32):
VAL REAL32
TWE IS 1 2.0(REAL32):
VALREAL32
Z IS ZERO:
VAL INT Z.I IS O(INT):
PROTOCOL ME1I2R IS
INT;
REAL32;
REAL32:
PROTOCOL ME3R IS
REAL32;REAL32;REAL32:
PROTOCOL ME1I3R IS
INT;REAL32;REAL32;REAL32:
PROTOCOL ME 1I5R IS
INT;REAL32;REAL32;REAL32:REAL32;REAL32:
PROTOCOL
ME6R
IS
REAL32;REAL32;REAL32;REAL32;REAL32;REAL32:
PROTOCOL ME63R IS
[6]]3]REAL32:
PROTOCOL METT
CASE
t:
I31INT
tau; REAL32
PROTOCOL MECC IS
]6]INT; [6]REAL32;
|6]REAL32:
PROTOCOL ME3RTHE
THE;INT;REAL32;REAL32
DAT;
REAL32; REAL32;
REAL32
PROTOCOL
ME3RTHE0
CASE
THEO;
INT
DATO;
REAL32; REAL32;
REAL32
VALREAL32LIS 1.0(REAL32):
-METERVALREAL32
M IS
1.0(REAL32):
KGVAL
REAL32
S IS
(-L)/2.0(REAL32):
VAL INT
ARF1 IS Z.I:
VALREAL32
alIS L:
VALREAL32 dl IS Z:
VAL INT ARF2 IS Z.I:
VALREAL32
a2IS L:
VALREAL32 d2 IS Z:
VAL INT
ARF3
IS Z.I:
VALREAL32
a3IS L:
VALREAL32d3
IS Z:
VAL INT ARF4 IS Z.I:
VAL REAL32
a4IS L:
VALREAL32 d4 IS Z:
VAL
INT
ARF5
IS Z.I:
VALREAL32
a5
IS
L:
VALREAL32d5
IS Z:
VAL INT
ARF6ISZ.I:
VALREAL32
a6IS L:
VALREAL32 d6 IS Z:
VAL
REAL32 TWE IS
12.0(REAL32):
VAL REAL32 INER IS (M*(L*L))/TWE:
VALREAL32
INER1 IS INER:
VAL
REAL32
INER3
IS
INER
VAL
REAL32 INER4
IS
INER
VAL REAL32
INER5
IS
INER
VAL
REAL32 INER6
IS INER
VALREAL32
Ml
ISM:
KG
VAL
REAL32
M2 IS M:
KG
VAL
REAL32 M3
IS M:
KG
VALREAL32
M4
ISM:
VALREAL32
M5
ISM:
VALREAL32
M6 ISM:
VAL LM IS
[
M, M, M. M, M,
M):
LINK MASS
VAL LL IS
I
L, L, L, L, L,
L]:
LINK LENGTH
RB(I.I-l)-
1
C,
S, Z]
l-s,
C,
Z]
[Z,
Z, 1]
VALRB02 ISZ:
VALRB12 ISZ:
VALRB20 ISZ:
VALRB21 ISZ:
VALRB22 IS ONE:
~
RF(I-l.I)-I
C.-S. Z]
I
s,
C, Z]
[Z.
Z, 1]
VALRF02 ISZ:
VALRF12
ISZ:
VALRF20 ISZ:
VALRF21 ISZ:
VALRF22 IS ONE:
VALRPISIIL,
Z.
Z],[ L. Z. Z].[ L. Z. Z],
|
L, Z. Z].| L. Z. Z].[ L, Z.
Zll:
VALRSISKS.
Z.
Z],[S, Z. Z],[S, Z,Z],
[S.
Z.
Z],[S,
Z, Z].[S.
Z.
ZJ1:
FORI-1 TO
6
VALRIRISH
Z. Z. Z, Z,
INER1,
Z, Z,
Z,
INERlj
I
Z, Z, Z. Z,
INER2,
Z. Z,
Z. INER2],
[
Z, Z. Z. Z,
INER3,
Z, Z, Z,
INER3],
[
Z,
Z, Z, Z,
INER4,
Z, Z, Z,
INER4],
2.
Monitor File
which
is
placed at
Monitor Processor
#USE
uservals*USE
interf
#USE
useriothe
#USE is
similarto the
"include" ofC
*USE
LIBTH4
CHAN OF MECC TO.N:
comm channelsending
data
to the
transputer-network
CHAN OF
METT
FR.N:
comm channelreceiving
data
coming
from
networkPLACE TO.N AT
L20:
PLACE FR.N AT
L2I:
I31INT
D.IN:
TO GET THE TIMER FROM THE FIRST SLAVE
[Ol-START,
[1]-END,
[2]-LENGTH
INT
anyc,I, J,
K:
an"
any
key"
buffer.
[6]INTTHETA0:
[61REAL32
THETA 1
,THETA2:
[61REAL32
TAU:
VAL TIMEOUT IS 1000000:
TIMER
CLOCK:
INT TIMENOW:
SEQ
SEQ
This
exampleis
derived
from
example2
It
takes
its input from
afile
andthrows away the
echoINT j:
INT
input.
error:SEQ
CHAN
OFINTfilekeys:
CHAN OF INT
keyboard
IS
filekeys:
--channel
from
simulatedkeyboard
CHAN OF ANY
echo:CHAN OF ANY
screenIS
echo: echo channel with scopelocal
to
this
PAR
only
SEQ
keystream.
from.
file
(from.user.filer]2],
to.user.filer[2],
keyboard, 1,
input.
error)
check
input.
error when real screen accessible againscrstream.sink
(screen)
--consume
everything
echoedINT
kchar:
SEQ
kchar
:-0
x :-
0
INTx:
SEQ
1-0 FOR
6
WHILE
(NOTFINITE(x)
OR
(x
<> -1)))AND
(kchar
<>ft. terminated)
SEQ
write.
char(screen,
>')read.echo. char
(keyboard,
screen,kchar)
IF
kchar
<0
SKIP
kchar-
(INT*)
INT hexx RETYPES
x:read. echo.
hex. int
(keyboard,
screen,
hexx,
kchar)
TRUE
read. echo.
int
(keyboard,
screen,x,
kchar)
IF
kchar
-ft.
terminatedSKIP
TRUE
SEQ
IF
kchar
-ft.
number.errorbeep (screen)
SKIP
THETA01I]
:-xREAL32
x:SEQ
1-0
FOR 6
-WHILE
(NOTFINITE(x)
OR
(x
<>-1
)))
AND
(kchar
<>ft.
terminated)
SEQ
write.
char(screen,
>')read.echo. char
(keyboard,
screen,
kchar)
IF
kchar
<0
SKIP
kchar-
(INT*)
INT hexx RETYPES
x:read. echo.
hex. int
(keyboard,
screen,hexx, kchar)
TRUE
read. echo. real32
(keyboard,
screen,
x,kchar)
IF
kchar
-ft.
terminated
SKIP
TRUE
SEQ
IF
kchar
-ft.
number. errorbeep
(screen)
TRUE
SKIP
THETAllI]
:- xREAL32
x:SEQ
1-0 FOR
6
-
WHILE
(NOTFINITE(x)
OR
(x
<>-1)))
AND
(kchar
<>ft.
terminated)
SEQ
write.char(screen,
'>')
kchar
<0
SKIP
kchar-
(INT'*')
INT hexx RETYPES
x:read. echo.
hex. int
(keyboard,
screen,
hexx, kchar)
TRUE
read.echo.real32
(keyboard,
screen, x,
kchar)
IF
kchar
-ft.
terminated
SKIP
TRUE
SEQ
IF
kchar
-ft.
number. error
beep
(screen)
TRUE
SKIP
THETA21I]
:- xnewline
(screen)
IF
(kchar
>-0)
OR
(kchar
-ft.
number.error)
keystream.sink
(keyboard)
--consume
the
rest ofthe
keyboard
TRUE
SKIP
keyboard
file has
terminated orfailed
write.endstream
(screen)
terminate
scrstream.sinkwrite.full.string(screen,
"
ANY
KEY TO START
...")read.char(keyboard, anyc)
newline(screen)
TO.N I
THETAO; THETA1;
THETA2
CLOCK ?
TIMENOW
ALT
FR.N ? CASE t; D.IN
to
receivethe time
stampsSENT FROM ZERO
SEQ
write.full.string(screen,
"
the
time
length is
")
write.int(screen,
D.IN[2],0)
write.full.string(screen,
"microseconds")
newline(screen)
write.full.string(screen,
"
start
from
")
write.int(screen,
D.IN[0],0)
newline(screen)
write.full.string(screen,
"ends at
")
write.int(screen,
D.IN[1],0)
newline(screen)
SEQ
1-0 FOR DEG
FR.N
?
CASE
tau;
TAU|I]
-to
receivethe
tau(i) i-1,,6
SEQ
1-1 FOR DEG
SEQ
write.full.string(screen,
"the tau
OF JOINT
")
write.int(screen,
I,
0)
write.
full.
string(screen,
"IS
")
write.real32(screen,
TAU[DEG-I],5,5)
write.
full.
string(screen,
"with
theta
")
write.
int(screen, THETA0[I-1],5)
write.real32(screen,THETA 1
[I-1
],5,5)
write.real32(screen, THETA2[I-
1
1,5.5)
newline(screen)
write.full.string(screen, "
BACK TO TDS2 ?
")
read.char(keyboard, anyc)
CLOCK
? AFTER TIMENOW PLUS TIMEOUT
SEQ
write.full.string(screen, "
SOMETHING
WRONG,
BACK TO TDS2 ?
")
read.char(keyboard,
anyc)
3.
Network File
containing
9
processes which are placed at9
transputers,
respectfully.
*USE
LIBTH4
EXPLANATION
OF
VARIABLE
SHORT HAND
-1. M.NO
:NUMBER OF
MULTIPLICATION
OPERATION NEEDED IN THIS
PROCESS
2. A.NO
:NUMBER OF
ADDITION
OPERATION NEEDED IN THIS PROCESS
*USE LIBTH4
PROC ZEROO(CHAN OF MECC
FR.H,
CHAN OF REAL32
FR.l,
CHAN OF METT
TO.H,
CHAN OF ME3RTHE TO. 1
,CHAN OF ME3RTHE TO.
2,
CHAN OF ME3R
TO.8)
[61INTTHETA0:
[61REAL32 THETA1,
THETA2:
TIMER CLOCK:
I31INT
TIME:
FOR TIME STAMP AND
TIME
LENGTH
REAL32
V.COS,
V.SIN:
INT
I, J,
K:
REAL32
WO.
W1.W2.B0.B1, B2, CO, CI,
C2:
[6]REAL32
TAU:
TO RECEIVE THE END SIGNAL FROM P8
SEQ
INIT
W0:-Z
Wl:-Z
W2:-Z
-- receive
theta
from PH
FR.H
? THETA
0;
THETA
1
;THETA
2
SEQ
PRI PAR
SEQ
SEND THETA TO PI P2
SEQ
J-0 FOR DEG
SEQ
PAR
TO.l I
THE;
THETA0[J]; THETA 1
[J];
THETA2[J]
CLOCK
?
TIMEIO]
MAIN
PROCESS
WORKING
ON
W(I)
VALRB02
ISZ:
VALRB12
ISZ:
VALRB20
ISZ:
VALRB21
ISZ:
VALRB22
IS
ONE:
THEOO
ISTHETAOlO]:
THE
10 IS
THETA
1(0]:
SEQ
V.COS:-T.COS[THE00]
V.SIN:-T.SIN[THE00]
CALCULATION
OF W
B0:-W0
B1:-W1
B2:-W2
+THE10
WO:-
(V.COS *B0)
+(V.SIN*B1)
Wl:-
(V.C0S*B1)
-(V.SIN*B0)
W2:-
B2
SENDINGW(I)
TO
PI,
P2
PAR
TO.l
IDAT; W0;W1;
W2
TO. 2
IDAT; WO; Wl;
W2
T0.8 I
WO:
W1;W2
WORKING ON
W(I)
VALRB02 ISZ:
VAL RBI 2 ISZ:
VALRB20 ISZ:
VALRB21 ISZ:
VALRB22 IS
ONE:
THE01 ISTHETAOll]:
THE 11 IS THETA 1(1]:
SEQ
V.COS:-T.COS[THE01]
V.SIN:-T.SIN[THE01]
CALCULATION
OF W
B0:-W0
WO:-(V.COS *B0)
+(V.SIN*B1)
Wl:- (V.COS* Bl)-(V.SIN*B0)
W2>
B2
SENDINGW(I)TOPl,P2
PAR
TO.l
IDAT;W0;W1;W2
TO.
2
IDAT;
W0;W1;W2
TO.8
IW0;W1;W2
WORKING
ON
W(I)
VALRB02
ISZ:
VAL RBI
2
ISZ:
VALRB20
ISZ:
VALRB21 ISZ:
VALRB22
IS ONE:
THE02 ISTHETA0I2]:
THE12 IS
THETA
112]:
SEQ
V.COS:-T.COS[THE02]
V.SIN:-T.SIN(THE02]
CALCULATION
OF W
B0:-W0
B1:-W1
B2:-W2
+THE12
WO:-
(V.COS
*B0)
+(V.
SIN*Bl)
Wl:- (V.COS*
Bl)
- (V.SIN*BO)
W2>
B2
SENDINGW(I)TOPl,P2
PAR
TO.l I
DAT;
W0;W1;W2
TO. 2
IDAT;
WO;
Wl;
W2
TO.8 I
WO;
W1;W2
WORKING
ON
W(I)
VALRB02 ISZ:
VAL
RBI 2 ISZ:
VALRB20 ISZ:
VALRB21 ISZ:
VALRB22
IS ONE:
THE13 IS THETA
1[3]:
SEQ
V.COS:-T.COSlTHE03]
V.SIN:-T.SIN[THE03]
CALCULATION OF W
B0:-W0
B1:-W1
B2:-W2
+THE13
WO:-
(V.COS *B0)
+(V.SIN*B1)
Wl:- (V.COS*
Bl)
-(V.
SIN*BO)
W2>
B2
SENDINGW(I)TOPl.P2
PAR
TO.l
IDAT;
W0;W1;
W2
TO. 2 IDAT;W0;W1;W2
TO.8 IW0;W1;W2
WORKING ON
W(I)
VALRB02 ISZ:
VAL RBI 2 ISZ:
VALRB20 ISZ:
VALRB21
ISZ:
VALRB22
IS ONE:
THE04
ISTHETA014]:
THE14 IS THETA 1
[4]:
SEQ
V.COS:-T.COS|THE04]
V.SIN:-T.SIN[THE04]
CALCULATION
OF W
B0:-W0
B1:-W1
B2:-W2
+THEM
WO:-
(V.COS *B0)
+(V.SIN*B1)
Wl:- (V.COS* Bl)-
(V.SIN*B0)
W2:-
B2
-SENDINGW(I)T0P1,P2,P8
PAR
TO.l
IDAT;W0;W1;W2TO. 2
IDAT;W0;W1;W2VALRB02
ISZ:
VAL RBI 2 ISZ:
VAL RB20 IS Z:
VALRB21
ISZ:
VALRB22
IS ONE:
THE05
ISTHETA0I51:
THE15
IS
THETA 1(51: