perm filename UNI.XGP[V,VDS] blob
sn#393876 filedate 1978-11-03 generic text, type T, neo UTF8
/FONT#1=BDR30/FONT#2=SIGN57/FONT#3=NGR25/FONT#4=NGR20/FONT#5=NGB25/FONT#6=SGN114/FONT#7=NGB40/FONT#8=BDR40/TMAR=200/PMAR=1998/BMAR=2
␈↓↓␈↓α␈↓β␈↓∧␈↓¬␈↓ε␈↓π␈↓λ␈↓ ↓H␈β↓H␈↓λ
␈↓ βt␈β∧λ␈↓αUSER'S GUIDE TO
␈↓ ∧a␈β¬3␈↓εV A L
␈↓ βQ␈βπ;␈↓πA Robot Programming and Control System
␈↓ ¬O␈β
s␈↓λUnimation, Inc.
␈↓ ¬4␈β≠␈↓λShelter Rock Lane
␈↓ ¬∂␈βC␈↓λDanbury, Conn. 06810
␈↓ ε$␈βk␈↓λU.S.A.
␈↓ ¬¬␈βc␈↓↓4␈↓#∂th␈↓# Printing - November 1, 1978
␈↓ εP␈β
0␈↓↓c
␈↓ ↓H␈β⎇␈↓↓[1]
␈↓ ¬8␈ββ4␈↓λINTRODUCTION
␈↓ ↓H␈β∧|␈↓βVAL␈α∞is␈α∞a␈α∞system␈α∞for␈α∞programming␈α∞all␈α∞computer␈α∞controlled␈α
robots␈α
and␈α
manipulators.␈α~The␈α
VAL␈α
system
␈↓ ↓H␈β¬~␈↓βand␈αlanguage␈αhas␈αbeen␈αdeveloped␈αover␈αa␈αperiod␈αof␈αseveral␈αyears␈αand␈αis␈αbased␈αon␈αmore␈αthan␈α15␈αyears
␈↓ ↓H␈β¬8␈↓βof␈α
computer␈α
controlled␈α
manipulator␈α
research␈α
and␈α
development␈α
efforts.
␈↓ ↓H␈β¬t␈↓βVAL␈αis␈αuniversal.␈α⊗All␈αinstructions␈αand␈αprogramming␈αconcepts␈αcan␈αbe␈αapplied␈αto␈αany␈αmanipulator␈αsystem
␈↓ ↓H␈βε∩␈↓βcapable␈α
of␈α
being␈α
computer␈α
controlled.
␈↓ ↓H␈βεN␈↓βVAL␈αis␈αeasily␈αlearned.␈α⊗All␈αinstructions␈αare␈αclear,␈αconcise,␈αand␈αgenerally␈αself␈α
explanatory.␈α∀All␈α
commands
␈↓ ↓H␈βεl␈↓βand␈α∩communications␈α∩with␈α∩the␈α∩robots␈α∩or␈α∩manipulators␈α∩are␈α∩in␈α∩the␈α∩English␈α∩language,␈α∩and␈α⊃use␈α⊃easily
␈↓ ↓H␈βπ
␈↓βunderstood␈α∞word␈α∞and␈α∞number␈α∞sequences.␈α≤Program␈α∞writing␈α∞may␈α∞be␈α∞done␈α∞on␈α
the␈α
same␈α
computer␈α
that
␈↓ ↓H␈βπ(␈↓βcontrols␈αthe␈αrobot,␈αor␈αon␈αany␈αother␈αcomputer␈αor␈αcomputer␈αterminal␈αcapable␈αof␈αstoring␈αthe␈αinstructions
␈↓ ↓H␈βπF␈↓βin␈α
the␈α
proper␈α
format.
␈↓ ↓H␈βλα␈↓βVAL␈α⊃is␈α⊃easily␈α⊃upgraded.␈α"New␈α⊃commands␈α⊃and␈α⊃capabilities␈α⊃are␈α⊃continually␈α⊃being␈α⊃added␈α⊃to␈α⊃the␈α⊂VAL
␈↓ ↓H␈βλ ␈↓βlanguage.␈α⊗The␈αsystem␈αhas␈α
been␈α
designed␈α
to␈α
be␈α
easily␈α
modified␈α
to␈α
suit␈α
specific␈α
applications␈α
and␈α
to␈α
work
␈↓ ↓H␈βλ>␈↓βwith␈α∞manipulators␈α∞or␈α∞robots␈α∞of␈α∞different␈α∞configurations␈α∞and␈α∞size.␈α~The␈α
VAL␈α
system␈α
can␈α
be␈α
used␈α
with
␈↓ ↓H␈βλ\␈↓βprocess␈α
controllers␈α
and␈α
other␈α
peripheral␈α
devices␈α
on␈α
assembly␈α
lines␈α
or␈α
in␈α
manufacturing␈α
operations.
␈↓ ↓H␈β _␈↓βVAL␈α∂programs␈α∂are␈α∂universal.␈α≡A␈α∂VAL␈α∂program␈α∂written␈α∂for␈α∞one␈α∞robot␈α∞may␈α∞be␈α∞used␈α∞to␈α∞operate␈α∞many
␈↓ ↓H␈β 6␈↓βdifferent␈α
types␈α
of␈α
robots.
␈↓ ↓H␈β r␈↓βVAL␈αfeatures␈αthe␈αability␈αto␈αgenerate␈αlibraries␈αof␈αmanipulation␈αroutines,␈αso␈αthat␈αcomplex␈αoperations␈αmay
␈↓ ↓H␈β
⊂␈↓βbe␈α
easily␈α
and␈α
quickly␈α
programmed␈α
by␈α
combining␈α
pre-defined␈α
sub␈α
tasks.
␈↓ ↓H␈β
L␈↓βVAL␈α∞operates␈α∞in␈α∞real-time.␈α≠Continuous,␈α
real-time␈α
computation␈α
permits␈α
complex␈α
motions␈α
to␈α
be␈α
quickly
␈↓ ↓H␈β
j␈↓βexecuted␈αwith␈αefficient␈αuse␈αof␈αcomputer␈αmemory␈αand␈αreduction␈αin␈αoverall␈αsystem␈αcomplexity.␈α⊗The␈αVAL
␈↓ ↓H␈βλ␈↓βsystem␈α⊂continuously␈α⊂generates␈α⊂robot␈α⊂control␈α⊂commands,␈α⊂and␈α⊂simultaneously␈α⊂interacts␈α⊂with␈α⊂a␈α⊂human
␈↓ ↓H␈β&␈↓βoperator␈α
or␈α
other␈α
interactive␈α
controller.␈α∀This␈α
permits␈α
on-line␈α
program␈α
generation␈α
and␈α
modifications.
␈↓ ↓H␈βb␈↓βVAL␈αis␈αself␈αcontained.␈α⊗The␈αentire␈αVAL␈αlanguage,␈αprogram␈αdevelopment,␈αand␈αmanipulator␈αcontrol␈αsystem
␈↓ ↓H␈β␈↓βis␈α
contained␈α
within␈α
a␈α
single,␈α
compact,␈α
low␈α
cost␈α
computer/controller␈α
unit.
␈↓ ↓H␈β<␈↓βVAL␈α∞is␈α∞easily␈α
used.␈α~This␈α
guide␈α
contains␈α
most␈α
of␈α
the␈α
information␈α
required␈α
to␈α
be␈α
able␈α
to␈α
create␈α
robot
␈↓ ↓H␈βZ␈↓βcontrol␈α
programs␈α
and␈α
to␈α
operate␈α
a␈α
computer␈α
controlled␈α
robot.
␈↓ ↓H␈β⎇␈↓↓[2]
␈↓ αZ␈β↓H␈↓λVAL - THE UNIMATION ROBOT CONTROL SYSTEM
␈↓ ↓H␈βα@␈↓βPreceding␈α∀the␈α∀monitor␈α∀instructions␈α∀described␈α∀below␈α∀are␈α∀two␈α∀symbols␈α∪which␈α∪indicate␈α∪when␈α∪each
␈↓ ↓H␈βα↑␈↓βcommand␈αcan␈αbe␈α
executed.␈α∀A␈α
period␈α
(.)␈α
signifies␈α
that␈α
the␈α
command␈α
can␈α
be␈α
performed␈α
when␈α
VAL␈α
is␈α
in␈α
its
␈↓ ↓H␈βα|␈↓βtop␈α∂level␈α∂monitor␈α∂mode␈α∂and␈α∂no␈α∂user␈α∂program␈α∂is␈α∂being␈α∂executed.␈α≡An␈α∂asterisk␈α∂(*)␈α∞indicates␈α∞that␈α∞the
␈↓ ↓H␈ββ~␈↓βcommand␈α
can␈α
be␈α
performed␈α
at␈α
the␈α
same␈α
time␈α
that␈α
VAL␈α
is␈α
executing␈α
a␈α
user␈αprogram.␈α_If␈αboth␈αsymbols
␈↓ ↓H␈ββ8␈↓βare␈α
present,␈α
then␈α
the␈α
command␈α
can␈α
be␈α
always␈α
be␈α
performed.
␈↓ ↓H␈ββt␈↓βFor␈α⊃both␈α⊃monitor␈α⊃and␈α⊃program␈α⊃instructions,␈α⊂items␈α⊂enclosed␈α⊂in␈α⊂brackets␈α⊂([...])␈α are␈α⊂optional.␈α Angle
␈↓ ↓H␈β∧∩␈↓βbrackets␈α⊂(<...>)␈α⊂are␈α⊂used␈α⊂to␈α⊂indicate␈α⊂that␈α⊂the␈α⊂enclosed␈α⊂item␈α⊂is␈α⊂the␈α⊂name␈α∂of␈α∂the␈α∂actual␈α∂argument␈α∂to
␈↓ ↓H␈β∧0␈↓βappear.
␈↓ ↓H␈β∧l␈↓βWhen␈αentering␈αany␈αmonitor␈αcommand␈αor␈αprogram␈αinstruction,␈αthe␈αfunction␈αname␈αcan␈αbe␈αtyped␈αin␈αfull␈αor
␈↓ ↓H␈β¬
␈↓βcan␈α
be␈α
abbreviated␈α
to␈α
only␈α
as␈α
many␈α
characters␈α
as␈α
are␈α
necessary␈α
to␈α
make␈α
the␈α
name␈αunique.␈α_Monitor
␈↓ ↓H␈β¬(␈↓βcommands␈α
and␈α
program␈α
instructions␈α
are␈α
always␈α
terminated␈α
by␈α
typing␈α
a␈α
carriage␈α
return␈α
(RETURN).
␈↓ ∧⊃␈β¬}␈↓↓MONITOR COMMANDS: DEFINING POSITIONS
␈↓ ↓H␈βε@␈↓βThe␈α∩position␈α∩and␈α∩orientation␈α∩of␈α∩a␈α∩manipulator␈α∩can␈α∩be␈α∩stored␈α∩within␈α∩the␈α⊃computer␈α⊃using␈α⊃either␈α⊃a
␈↓ ↓H␈βε↑␈↓βtransformation␈α
or␈α
a␈α
precision␈α
point.
␈↓ ↓H␈βπ~␈↓βA␈α∞transformation␈α∞is␈α∞a␈α∞cartesian␈α∞description␈α∞of␈α
the␈α
position␈α
and␈α
orientation␈α
of␈α
the␈α
manipulator's␈α
hand.
␈↓ ↓H␈βπ8␈↓βThe␈αhand's␈αX,␈αY,␈αZ␈αlocation␈αis␈αstored␈αas␈αa␈αvector␈αand␈αits␈αorientation␈αis␈αstored␈αas␈αa␈α3␈αby␈α3␈αmatrix.␈α⊗This
␈↓ ↓H␈βπV␈↓βrepresentation␈α∃is␈α∃advantageous␈α∃where␈α∃relative␈α∃translations␈α∃and␈α∃rotations␈α∃are␈α∃to␈α∃be␈α∀performed.
␈↓ ↓H␈βπt␈↓βFurthermore,␈αbecause␈αtransformations␈αonly␈αrefer␈αto␈αthe␈αposition␈αand␈αorientation␈αof␈αthe␈αhand,␈αthey␈αare
␈↓ ↓H␈βλ∩␈↓βindependent␈α
of␈α
the␈α
geometry␈α
of␈α
the␈α
manipulator.
␈↓ ↓H␈βλN␈↓βDue␈α∞to␈α∞the␈α∞complexity␈α∞of␈α∞the␈α∞computations␈α∞necessary␈α∞to␈α∞convert␈α∞between␈α
joint␈α
angles␈α
and␈α
cartesian
␈↓ ↓H␈βλl␈↓βcoordinates,␈α
using␈α
transformations␈α
to␈α
store␈α
the␈α
position␈α
and␈α
orientation␈α
of␈α
the␈α
manipulator␈α
can,␈α
at␈α
times,
␈↓ ↓H␈β
␈↓βbe␈αsomewhat␈αinaccurate.␈α⊗If␈α
high␈α
precision␈α
is␈α
required,␈α
the␈α
manipulator's␈α
position␈α
and␈α
orientation␈α
can␈α
be
␈↓ ↓H␈β (␈↓βstored␈αas␈αa␈α
precision␈α
point.␈α∀Precision␈α
points␈α
save␈α
the␈α
joint␈α
angles␈α
of␈α
the␈α
manipulator␈α
and␈α
are␈α
therefore
␈↓ ↓H␈β F␈↓βcapable␈α∂of␈α∂achieving␈α∂full␈α∞precision␈α∞playback.␈α≤For␈α∞most␈α∞instructions␈α∞requiring␈α∞a␈α∞manipulator␈α∞position,
␈↓ ↓H␈β d␈↓βprecision␈α
points␈α
and␈α
transformations␈α
can␈α
be␈α
used␈α
interchangeably.
␈↓ ↓H␈β
␈↓βThe␈α
names␈α
of␈α
both␈α
precision␈α
points␈α
and␈α
transformations␈α
consist␈α
of␈α
a␈α
string␈α
of␈α
six␈α
characters␈α
starting
␈↓ ↓H␈β
>␈↓βwith␈α∂a␈α∂letter␈α∂and␈α∂followed␈α∂by␈α∂any␈α∂sequence␈α∂of␈α∂letters,␈α∂numbers,or␈α∂periods(.).␈α≡Precision␈α∂points␈α∞and
␈↓ ↓H␈β
\␈↓βtransformations␈α
are␈αdistinguished␈αby␈αthe␈αfact␈αthat␈αprecision␈αpoint␈αnames␈αmust␈αalways␈αbe␈αpreceded␈αby
␈↓ ↓H␈β
z␈↓βthe␈α∩symbol␈α∩"#".␈α$The␈α∩number␈α∩of␈α∩precision␈α∩points␈α∩and␈α∩transformations␈α∩that␈α⊃can␈α⊃be␈α⊃stored␈α⊃in␈α⊃the
␈↓ ↓H␈β_␈↓βcomputer␈α
is␈α
only␈α
limited␈α
by␈α
the␈α
size␈α
of␈α
the␈α
computer␈α
memory.
␈↓ ↓H␈βT␈↓βThere␈α⊃are␈α⊃several␈α⊃commands␈α⊃that␈α⊃can␈α⊃be␈α⊃used␈α⊂for␈α⊂defining␈α⊂positions␈α⊂and␈α⊂determining␈α⊂the␈α⊂current
␈↓ ↓H␈βr␈↓βlocation␈α
of␈α
the␈α
arm:
␈↓ ↓H␈βL␈↓¬POINT <position1> [=<position2>]
␈↓ ↓p␈βj␈↓β[␈α.␈α*]␈αThe␈αlocation␈αof␈αposition␈α1␈αis␈αset␈αequal␈αto␈αthat␈αof␈αposition␈α2.␈α⊗If␈αposition␈α2␈αis␈αnot␈αspecified,␈αthe
␈↓ ↓p␈β
λ␈↓βvalue␈α∩of␈α∩position␈α∩1␈α∩is␈α∩either␈α∩left␈α∩unchanged␈α∩or␈α⊃set␈α⊃equal␈α⊃to␈α⊃a␈α⊃default␈α⊃value␈α⊃if␈α⊃its␈α⊃value␈α⊃was
␈↓ ↓p␈β
&␈↓βpreviously␈α∞undefined.␈α∞Subsequently,␈α∞the␈α∞value␈α∞of␈α∞position␈α∞1␈α∞is␈α∞printed␈α∞and␈α∞any␈α∞of␈α
its␈α
coordinates
␈↓ ↓p␈β
D␈↓βmay␈α∂be␈α∂modified␈α∂by␈α∂typing␈α∂a␈α∂new␈α∂value␈α∂after␈α∞the␈α∞query␈α∞CHANGES?.␈α≤Coordinate␈α∞values␈α∞must␈α∞be
␈↓ ↓p␈β
b␈↓βseparated␈α∪by␈α∪commas␈α∪and␈α∪values␈α∩that␈α∩are␈α∩not␈α∩to␈α∩be␈α∩changed␈α∩can␈α∩be␈α∩omitted.␈α$Changes␈α∩are
␈↓ ↓p␈β∞␈↓βcontinuously␈α⊃asked␈α⊃for␈α⊂until␈α⊂no␈α⊂change␈α⊂in␈α⊂the␈α⊂transform␈α⊂is␈α⊂made.␈α If␈α⊂the␈α⊂position␈α⊂variable␈α⊂is␈α⊂a
␈↓ ↓p␈β∞≡␈↓βprecision␈α
point,␈α
its␈α
6␈α
joint␈α
angles␈α
are␈α
printed.␈α~Otherwise␈α
the␈α
position␈αvariable␈αis␈αa␈αtransformation
␈↓ ↓p␈β∞<␈↓βand␈α∞its␈α∞value␈α∞is␈α∞typed␈α∞as␈α
(X,Y,Z,O,A,T).␈α~The␈α
X,Y,Z␈α
specify␈α
the␈α
position␈α
of␈α
a␈α
point␈α
centrally␈α
located
␈↓ ↓p␈β∞Z␈↓βbetween␈α⊃the␈α⊃finger␈α⊃tips␈α⊃in␈α⊂table␈α⊂coordinates.␈α O,A,T␈α⊂specify␈α⊂the␈α⊂orientation␈α⊂of␈α⊂the␈α⊂hand␈α⊂(Euler
␈↓ ↓p␈β∞x␈↓βangles).␈α⊗With␈αall␈αthree␈α
angles␈α
(in␈α
degrees)␈α
zero,␈α
the␈α
hand␈α
points␈α
in␈α
the␈α
negative␈α
Y␈α
direction␈α
with␈α
the
␈↓ ↓p␈β∂⊗␈↓βfingers␈αin␈α
a␈α
horizontal␈α
plane.␈α∀The␈α
orientation␈α
vector␈α
which␈α
points␈α
from␈α
one␈α
finger␈α
tip␈α
to␈α
the␈α
other␈α
is
␈↓ ↓p␈β∂4␈↓βaligned␈αalong␈αthe␈αX␈αaxis.␈α_O␈αspecifies␈αa␈αrotation␈αof␈αthe␈αorientation␈αvector␈αabout␈αa␈αvertical␈αdirection.
␈↓ ↓H␈β⎇␈↓↓[3]
␈↓ ↓p␈β↓H␈↓βThus␈α⊂at␈α⊂O=90deg,␈α⊂the␈α⊂hand,␈α⊂still␈α⊂horizontal,␈α⊂would␈α⊂point␈α⊂along␈α⊂the␈α⊂positive␈α⊂X␈α⊂direction.␈α∨A␈α∂is␈α∂a
␈↓ ↓p␈β↓f␈↓βrotation␈αabout␈αthe␈αorientation␈αvector.␈α⊗With␈αA=90deg,␈αthe␈αhand␈αalways␈αpoints␈αstraight␈αdown.␈α⊗T␈αis␈αa
␈↓ ↓p␈βα∧␈↓βfinal␈α
rotation␈α
about␈α
the␈α
axis␈α
of␈α
the␈α
wrist␈α
and␈α
corresponds␈α
to␈α
a␈α
rotation␈α
of␈α
the␈α
final␈α
(#6)␈α
joint.
␈↓ ↓H␈βα↑␈↓¬DPOINT [<position1>],...,[<position8>]
␈↓ ↓p␈βα|␈↓βDeletes␈α⊃the␈α⊃values␈α⊃of␈α⊃up␈α⊃to␈α⊃eight␈α⊂specified␈α⊂position␈α⊂variables.␈α This␈α⊂operation␈α⊂can␈α⊂be␈α⊂used␈α⊂to
␈↓ ↓p␈ββ~␈↓βrecover␈α∞most␈α∞of␈α∞the␈α∞memory␈α∞storage␈α∞required␈α∞by␈α∞position␈α∞variables␈α∞which␈α
are␈α
no␈α
longer␈α
needed.
␈↓ ↓p␈ββ8␈↓βDeleted␈α∞positions␈α∞cannot␈α∞be␈α∞listed␈α∞using␈α∞any␈α∞of␈α∞the␈α∞print␈α∞out␈α∞routines␈α∞and␈α∞attempts␈α∞to␈α
reference
␈↓ ↓p␈ββV␈↓βthese␈α∞variables␈α∞within␈α∞program␈α∞statements␈α
will␈α
generate␈α
an␈α
error␈α
message␈α
at␈α
execution␈α
time␈α
until
␈↓ ↓p␈ββt␈↓βtheir␈α
values␈α
are␈α
re-defined.
␈↓ ↓H␈β∧0␈↓¬HERE <position>␈↓β
␈↓ ↓p␈β∧N␈↓β[␈α.␈α*]␈αDefines␈αthe␈αvalue␈αof␈αthe␈α<position>␈αvariable␈αto␈αbe␈αequal␈αto␈αthe␈αcurrent␈αarm␈αposition.␈α⊗As␈αwith
␈↓ ↓p␈β∧l␈↓βPOINT,␈α
post␈α
modification␈α
of␈α
the␈α
position␈α
coordinates␈α
is␈α
permitted.
␈↓ ↓H␈β¬(␈↓¬WHERE
␈↓ ↓p␈β¬F␈↓β[␈α.␈α*]␈αPrints␈αout␈α
the␈α
current␈α
location␈α
of␈α
the␈α
arm␈α
in␈α
Euler␈α
and␈α
joint␈α
angles␈α
along␈α
with␈α
the␈α
current␈α
hand
␈↓ ↓p␈β¬d␈↓βopening.
␈↓ ↓H␈βε ␈↓¬BASE [<dX>],[<dY>],[<Z rotation>]
␈↓ ↓p␈βε>␈↓β[␈α.␈α]␈αOffsets␈αand␈αrotates␈αthe␈αlocation␈αof␈α
the␈α
base␈α
of␈α
the␈α
manipulator.␈α∀Normally␈α
when␈α
the␈α
VAL␈α
system
␈↓ ↓p␈βε\␈↓βis␈α∞initialized,␈α∞the␈α∞base␈α∞of␈α∞the␈α∞arm␈α∞is␈α∞assumed␈α∞to␈α∞be␈α∞located␈α∞at␈α∞position␈α
{0,0,0}␈α
and␈α
its␈α
orientation
␈↓ ↓p␈βεz␈↓βsuch␈αthat␈αin␈αthe␈αREADY␈αposition,␈αthe␈αlinks␈αof␈αthe␈αarm␈αare␈αroughly␈αpointed␈αalong␈αthe␈αpositive␈αY␈αaxis.
␈↓ ↓p␈βπ_␈↓βIf␈αthe␈αbase␈αis␈αactually␈αlocated␈αat␈αsome␈αother␈α
position␈α
{dX,dY,0}␈α
and␈α
is␈α
rotated␈α
about␈α
the␈α
Z␈α
axis␈α
by␈α
an
␈↓ ↓p␈βπ6␈↓βangle␈α∂of␈α∂<Z␈α∂rotation>,␈α∂the␈α∂BASE␈α∂command␈α∂can␈α∂be␈α∂used␈α∂to␈α∂modify␈α∞the␈α∞computations␈α∞necessary␈α∞to
␈↓ ↓p␈βπT␈↓βconvert␈α
between␈α
joint␈α
angles␈α
and␈α
cartesian␈α
coordinates␈α
to␈α
account␈α
for␈α
these␈α
alterations.
␈↓ ↓H␈βλ⊂␈↓¬TOOL <tool#> = [<dX>],[<dY>],[<dZ>],[<rZ>]
␈↓ ↓p␈βλ.␈↓β[␈α.␈α]␈α⊗If␈α
the␈α
dimensions␈α
of␈α
<tool#>␈α
are␈α
specified,␈α
the␈α
new␈α
tool␈α
dimensions␈α
are␈α
set␈α
and␈α
the␈α
current␈α
tool
␈↓ ↓p␈βλL␈↓βis␈αset␈αequal␈α
to␈α
the␈α
specified␈α
dimensions.␈α∀If␈α
no␈α
tool␈α
dimensions␈α
are␈α
given␈α
or␈α
if␈α
dimensions␈α
of␈α
zero␈α
are
␈↓ ↓p␈βλj␈↓βspecified,␈α⊃the␈α⊃current␈α⊃tool␈α⊃is␈α⊃set␈α⊃equal␈α⊃to␈α⊃the␈α⊃dimensions␈α⊃which␈α⊃were␈α⊃previously␈α⊃specified␈α⊂for
␈↓ ↓p␈β λ␈↓β<tool#>.␈α~The␈α
permitted␈α
tool␈α
numbers␈α
are␈α
0␈α
through␈α
4.␈α→Tool␈α#0␈αalways␈αhas␈αthe␈αdimensions␈αof␈αthe
␈↓ ↓p␈β &␈↓βdefault␈αtool␈αand␈αcannot␈αbe␈αaltered.␈α_The␈αdimensions␈αof␈αthe␈αcurrent␈αtool␈αare␈αautomatically␈αtaken␈αinto
␈↓ ↓p␈β D␈↓βaccount␈αwhenever␈αa␈αconversion␈αfrom␈αjoint␈αangles␈αto␈αtool␈αposition␈αor␈αtool␈αposition␈αto␈αjoint␈αangles␈αis
␈↓ ↓p␈β b␈↓βcomputed.␈α_The␈αtool␈αdimensions␈αalter␈αwhere␈αVAL␈αthinks␈αthe␈αtool␈αtip␈αis␈αby␈αfirst␈αadding␈αa␈αrotation␈αof
␈↓ ↓p␈β
␈↓β<rZ>␈α⊂to␈α⊂the␈α⊂last␈α⊂joint␈α⊂of␈α⊂the␈α⊂manipulator␈α⊂and␈α⊂then␈α⊂adding␈α⊂the␈α⊂offsets␈α⊂of␈α⊂<dX>,<dY>,<dZ>␈α⊂to␈α⊂the
␈↓ ↓p␈β
≡␈↓βposition␈α
of␈α
the␈α
arm␈α
wrist␈α
(the␈α
end␈α
of␈α
joint␈α
#3)␈α
along␈α
the␈α
x,y,z␈α
axes␈α
of␈α
the␈α
tool␈α
coordinate␈α
system
␈↓ ↓p␈β
<␈↓βrespectively.␈α This␈α⊂command␈α⊂cannot␈α⊂be␈α⊂executed␈α⊂when␈α⊂the␈α⊂arm␈α⊂is␈α⊂under␈α⊂program␈α⊂control␈α∂or␈α∂in
␈↓ ↓p␈β
Z␈↓βmanual␈αcontrol␈αand␈αoperating␈αin␈αWORLD␈αor␈αTOOL␈αcoordinates.␈α⊗To␈αchange␈αthe␈αtool␈αdimensions␈αunder
␈↓ ↓p␈β
x␈↓βprogram␈α
control␈α
use␈α
the␈α
TOOL␈α
command␈α
described␈α
in␈α
the␈α
user␈α
program␈α
instructions␈α
section.
␈↓ ∧≡␈βN␈↓↓MONITOR COMMANDS: PROGRAM EDITING
␈↓ ↓H␈β⊂␈↓βDistinct␈α∞sequences␈α∞of␈α∞instructions␈α∞to␈α∞be␈α∞executed␈α∞are␈α∞stored␈α∞as␈α∞user␈α∞programs␈α∞within␈α
the␈α
computer.
␈↓ ↓H␈β.␈↓βThe␈α∩number␈α∩of␈α∩programs␈α∩that␈α∩can␈α∩be␈α∩saved␈α∩is␈α∩limited␈α⊃only␈α⊃by␈α⊃the␈α⊃amount␈α⊃of␈α⊃computer␈α⊃memory
␈↓ ↓H␈βL␈↓βavailable.␈α~Programs␈α
are␈α
referred␈α
to␈α
by␈α
a␈α
name␈α
which␈α
consists␈α
of␈α
an␈αarbitrary␈αnumber␈αof␈αcharacters.
␈↓ ↓H␈βj␈↓βLike␈αposition␈αvariables,␈αprogram␈αnames␈αmust␈αbegin␈αwith␈αa␈αletter␈αand␈αcan␈αbe␈αfollowed␈αby␈αany␈αsequence
␈↓ ↓H␈β
λ␈↓βof␈α
letters,␈α
numbers,␈α
or␈α
a␈α
period.
␈↓ ↓H␈β
D␈↓βEach␈α∪instruction␈α∪within␈α∪a␈α∪program␈α∩is␈α∩referred␈α∩to␈α∩by␈α∩a␈α∩unique␈α∩step␈α∩number.␈α$Step␈α∩numbers␈α∩are
␈↓ ↓H␈β
b␈↓βnumbered␈αconsecutively␈αand␈αare␈αautomatically␈αadjusted␈αwhenever␈αinstructions␈αare␈αinserted␈αor␈αdeleted.
␈↓ ↓H␈β∞␈↓βIn␈α∩addition,␈α∩program␈α∩steps␈α⊃can␈α⊃contain␈α⊃step␈α⊃labels.␈α"Step␈α⊃labels␈α⊃are␈α⊃used␈α⊃for␈α⊃program␈α⊃controlled
␈↓ ↓H␈β∞≡␈↓βbranching␈α
and␈α
looping.␈α∀Step␈α
labels␈α
are␈α
integer␈α
numbers␈α
ranging␈α
from␈α
0␈α
to␈α
32767.
␈↓ ↓H␈β∞Z␈↓βPrograms␈α
can␈α
be␈α
developed␈α
off-line␈αin␈αany␈αcomputer␈αcapable␈αof␈αgenerating␈αASCII␈αtext␈αstrings␈αor␈αthey
␈↓ ↓H␈β∞x␈↓βcan␈α∞be␈α∞developed␈α∞using␈α∞the␈α∞program␈α∞editing␈α∞routines␈α∞which␈α
are␈α
a␈α
standard␈α
feature␈α
of␈α
this␈α
language.
␈↓ ↓H␈β∂⊗␈↓βThese␈α
editing␈α
routines␈α
can␈α
be␈α
used␈α
for␈αboth␈αmodifying␈αexisting␈αprograms␈αand␈αcreating␈αnew␈αprograms.
␈↓ ↓H␈β∂4␈↓βThe␈α
editing␈α
instructions␈α
are␈α
explained␈α
below.
␈↓ ↓H␈β⎇␈↓↓[4]
␈↓ ↓H␈βα∧␈↓¬EDIT [<program>],[<step>]
␈↓ ↓p␈βα"␈↓β[␈α.␈α*]␈α
Permits␈α
the␈α
user␈α
to␈α
create␈α
or␈α
modify␈α
the␈α
<program>␈α
starting␈α
at␈α
step␈α
<step>.␈α∀If␈α
no␈α
step␈α
number
␈↓ ↓p␈βα@␈↓βis␈αspecified,␈αediting␈αproceeds␈αfrom␈αthe␈αstep␈αwere␈αthe␈αlast␈αediting␈αsession␈αwas␈αterminated␈α-1.␈α⊗If␈αno
␈↓ ↓p␈βα↑␈↓βprogram␈α
is␈α
specified,␈α
the␈α
last␈α
program␈α
edited␈α
is␈α
re-opened.
␈↓ ↓H␈ββ8␈↓βOnce␈α
having␈α
entered␈α
the␈α
EDIT␈α
mode,␈α
the␈α
following␈α
edit␈α
functions␈α
may␈α
be␈α
invoked.
␈↓ ↓H␈β∧∩␈↓¬<any program instruction>
␈↓ ↓p␈β∧0␈↓β[␈α.␈α*]␈αReplaces␈αthe␈αprogram␈α
instruction␈α
stored␈α
at␈α
the␈α
current␈α
step␈α
with␈α
the␈α
instruction␈α
typed␈α
in.␈α∀The
␈↓ ↓p␈β∧N␈↓βnext␈α
step␈α
is␈α
then␈α
displayed␈α
for␈α
editing.
␈↓ ↓H␈β¬
␈↓¬<carriage return>
␈↓ ↓p␈β¬(␈↓β[␈α.␈α*]␈αTyping␈αan␈αempty␈α
line␈α
(carriage␈α
return)␈α
leaves␈α
the␈α
current␈α
step␈α
unaltered␈α
and␈α
displays␈α
the␈α
next
␈↓ ↓p␈β¬F␈↓βinstruction␈α
for␈α
editing.
␈↓ ↓H␈βεα␈↓¬C <program>,[<step>]
␈↓ ↓p␈βε ␈↓β[␈α.␈α*]␈αChanges␈αEDITing␈αfrom␈αthe␈αcurrent␈αprogram␈α
to␈α
the␈α
new␈α
user␈α
<program>␈α
starting␈α
at␈α
step␈α
<step>.
␈↓ ↓p␈βε>␈↓β<step>␈α
can␈α
be␈α
omitted␈α
and␈α
editing␈α
will␈α
begin␈α
with␈α
the␈α
first␈α
program␈α
instruction.
␈↓ ↓H␈βεz␈↓¬D [<nstep>]
␈↓ ↓p␈βπ_␈↓β[␈α∂.␈α∂*]␈α∂Deletes␈α∂the␈α∂specified␈α∂number␈α∂of␈α∂instructions␈α∂starting␈α∂with␈α∂the␈α∂current␈α∞instruction␈α∞step.␈α≤If
␈↓ ↓p␈βπ6␈↓β<nstep>␈α
is␈α
not␈α
specified,␈α
only␈α
the␈α
current␈α
step␈α
is␈α
deleted.
␈↓ ↓H␈βπr␈↓¬E
␈↓ ↓p␈βλ⊂␈↓β[␈α
.␈α
*]␈α
Exits␈α
the␈α
EDIT␈α
mode␈α
and␈α
returns␈α
to␈α
MONITOR␈α
mode.
␈↓ ↓H␈βλL␈↓¬I
␈↓ ↓p␈βλj␈↓β[␈α
.␈α*]␈αMoves␈αinstructions␈αstarting␈αat␈αthe␈αcurrent␈αstep␈αdown␈αone␈αand␈αinserts␈αin␈αits␈αplace␈αany␈αmotion
␈↓ ↓p␈β λ␈↓βinstruction␈α
that␈α
is␈α
typed␈α
in.␈α∀The␈α
process␈α
is␈α
repeated␈α
until␈α
an␈α
empty␈α
line␈α
is␈α
typed.
␈↓ ↓H␈β D␈↓¬L
␈↓ ↓p␈β b␈↓β[␈α
.␈α
*]␈α
Leaves␈α
the␈α
current␈α
step␈α
unaltered␈α
and␈α
displays␈α
the␈α
previous␈α
step␈α
for␈α
editing.
␈↓ ↓H␈β
≡␈↓¬P [<nstep>]
␈↓ ↓p␈β
<␈↓β[␈α
.␈α
*]␈α
Prints␈α
the␈α
next␈α
<nstep>␈α
number␈αof␈αprogram␈αsteps␈αand␈αsets␈αthe␈αcurrent␈αline␈αnumber␈αequal␈αto
␈↓ ↓p␈β
Z␈↓βthe␈α
last␈α
line␈α
printed.
␈↓ ↓H␈β⊗␈↓¬R [<arg#>],[<value>]
␈↓ ↓p␈β4␈↓β[␈α∂.␈α∂*]␈α∂Replaces␈α∂argument␈α∂number␈α∂<arg#>␈α∂of␈α∂the␈α∂current␈α∂program␈α∂instruction␈α∂with␈α∂the␈α∂new␈α∂value
␈↓ ↓p␈βR␈↓βspecified␈α∂by␈α∂<value>.␈α≡If␈α∂<arg#>␈α∂is␈α∂negative,␈α∂zero,␈α∂or␈α∂omitted,␈α∂the␈α∂first␈α∞argument␈α∞is␈α∞replaced.␈α≤If
␈↓ ↓p␈βp␈↓β<arg#>␈α∂is␈α∂greater␈α∂than␈α∂the␈α∂number␈α∂of␈α∂possible␈α∂arguments,␈α∂the␈α∂last␈α∞argument␈α∞is␈α∞changed.␈α≤"SETI"
␈↓ ↓p␈β∞␈↓βinstructions␈α
and␈α
instructions␈α
requiring␈α
string␈α
arguments␈α
cannot␈α
be␈α
altered␈α
using␈α
this␈α
EDIT␈α
function.
␈↓ ↓H␈βJ␈↓¬S [<step>]
␈↓ ↓p␈βh␈↓β[␈α.␈α*]␈αLeaves␈αthe␈αcurrent␈αstep␈αunaltered␈αand␈αdisplays␈αthe␈αinstruction␈αwhich␈αis␈αat␈αstep␈α<step>␈αin␈αthe
␈↓ ↓p␈β
ε␈↓βuser␈α
program.␈α∀If␈α
<step>␈α
is␈α
omitted,␈α
the␈α
first␈α
instruction␈α
of␈α
the␈α
program␈α
is␈α
displayed␈α
for␈α
editing.
␈↓ ↓H␈β
B␈↓¬T
␈↓ ↓p␈β
`␈↓β[␈α.␈α*]␈αInitiates␈αprogram␈αteach␈αmode.␈α_In␈αthis␈αmode,␈αeach␈αtime␈αthat␈αthe␈αRECORD␈αbutton␈αon␈αthe␈αmanual
␈↓ ↓p␈β
}␈↓βcontrol␈α∩box␈α∩is␈α⊃pressed,␈α⊃a␈α⊃MOVEI␈α⊃instruction␈α⊃is␈α⊃generated␈α⊃which␈α⊃contains␈α⊃as␈α⊃its␈α⊃arguments,␈α⊃the
␈↓ ↓p␈β∞≤␈↓βcurrent␈α∀arm␈α∀position␈α∪(in␈α∪joint␈α∪angles),␈α∪the␈α∪hand␈α∪opening,␈α∪and␈α∪the␈α∪speed␈α∪of␈α∪the␈α∪motion.␈α&By
␈↓ ↓p␈β∞:␈↓βsuccessively␈αmanually␈αpositioning␈αthe␈αarm␈αand␈αpressing␈αthe␈αRECORD␈αbutton,␈αa␈αcomplete␈αmotion␈αtask
␈↓ ↓p␈β∞X␈↓βcan␈α
be␈α
taught.␈α∀This␈α
mode␈α
is␈α
terminated␈α
by␈α
typing␈α
a␈α
carriage␈α
return␈α
on␈α
the␈α
console␈α
keyboard.
␈↓ ↓H␈β⎇␈↓↓[5]
␈↓ αe␈β↓H␈↓↓MONITOR COMMANDS: POSITION VARIABLE AND PROGRAM LISTING
␈↓ ↓H␈βα)␈↓βThe␈α
following␈α
commands␈α
are␈α
used␈α
to␈α
get␈α
hard␈α
copies␈α
of␈α
programs␈α
and␈α
position␈α
variables.␈α∀The␈α
execution
␈↓ ↓H␈βαG␈↓βof␈α∀these␈α∀commands␈α∀can␈α∀be␈α∀aborted␈α∪by␈α∪typing␈α∪a␈α∪carriage-return␈α∪(CR)␈α∪character␈α∪on␈α∪the␈α∪console
␈↓ ↓H␈βαe␈↓βkeyboard.
␈↓ ↓H␈ββ!␈↓¬DIRECTORY
␈↓ ↓p␈ββ?␈↓β[␈α
.␈α
*]␈α
Prints␈α
out␈α
the␈α
names␈α
of␈α
all␈α
user␈α
programs␈α
that␈α
have␈α
at␈α
least␈α
one␈α
program␈α
step␈α
defined.
␈↓ ↓H␈ββ{␈↓¬LISTT [<position1>],...,[<position8>]
␈↓ ↓p␈β∧→␈↓β[␈α.␈α*]␈αTypes␈αout␈αthe␈αvalues␈αof␈αup␈αto␈αeight␈αselected␈αposition␈αvariables.␈α⊗If␈αno␈αposition␈αvariable␈αnames
␈↓ ↓p␈β∧7␈↓βare␈α
specified,␈α
the␈α
locations␈α
of␈α
all␈α
of␈α
the␈α
position␈α
variables␈α
with␈α
defined␈α
values␈α
will␈α
be␈α
printed.
␈↓ ↓H␈β∧s␈↓¬LISTP <program>,[<step1>],[<step2>]
␈↓ ↓p␈β¬⊃␈↓β[␈α.␈α*]␈αTypes␈αout␈αthe␈αuser␈α<program>␈αfrom␈α<step1>␈αto␈α<step2>.␈α⊗If␈αthe␈αstep␈αnumbers␈αare␈αomitted␈αthe
␈↓ ↓p␈β¬/␈↓βentire␈α
program␈α
will␈α
be␈α
printed.
␈↓ αt␈β¬g␈↓↓MONITOR COMMANDS: PROGRAM AND POSITION DATA STORAGE
␈↓ ↓H␈βε)␈↓βThe␈α∩following␈α⊃commands␈α⊃are␈α⊃used␈α⊃to␈α⊃store␈α⊃and␈α⊃retrieve␈α⊃user␈α⊃programs␈α⊃and␈α⊃position␈α⊃data␈α⊃on␈α⊃the
␈↓ ↓H␈βεG␈↓βmini-floppy␈α
disk.␈α~The␈αdisk␈αis␈αlogically␈αdivided␈αinto␈αfiles.␈αFiles␈αare␈αreferred␈αto␈αby␈αsix␈αcharacter␈αnames,
␈↓ ↓H␈βεe␈↓βwhich␈αmust␈αbegin␈αwith␈αa␈αletter␈α(A-Z)␈αfollowed␈αby␈αany␈αcombination␈αof␈αletters␈αand␈αnumbers.␈α⊗In␈αall␈αcases
␈↓ ↓H␈βπβ␈↓βwhere␈αan␈αoperation␈αmay␈αresult␈αin␈αdestructively␈αwriting␈αover␈αvalid␈αdata␈αwhich␈αis␈αcontained␈αon␈αthe␈αdisk,
␈↓ ↓H␈βπ!␈↓βverification␈αis␈αfirst␈αrequired␈αbefore␈αthe␈αoperation␈αis␈αperformed.␈α⊗The␈αexecution␈αof␈αthese␈αcommands␈αcan
␈↓ ↓H␈βπ?␈↓βbe␈α
aborted␈α
by␈α
typing␈α
carriage-return␈α
at␈α
any␈α
time.
␈↓ ↓H␈βπ{␈↓¬DELETE <file>
␈↓ ↓p␈βλ→␈↓β[␈α
.␈α
*]After␈α
requesting␈α
confirmation,␈α
the␈α
specified␈α
file␈α
is␈α
deleted␈α
from␈α
the␈α
disk.
␈↓ ↓H␈βλU␈↓¬ERASE
␈↓ ↓p␈βλs␈↓β[␈α.␈α*]␈αThis␈αroutine␈αcompletely␈αerases␈α
the␈α
contents␈α
of␈α
the␈α
floppy␈α
diskette␈α
and␈α
initializes␈α
the␈α
diskette's
␈↓ ↓p␈β ⊃␈↓βfile␈α
directory␈α
information.
␈↓ ↓H␈β M␈↓¬FORMAT
␈↓ ↓p␈β k␈↓β[␈α
.␈α
*]␈α
This␈α
command␈α
must␈α
always␈α
be␈α
executed␈α
first␈α
before␈α
a␈α
new␈αdiskette␈αcan␈αbe␈αused␈αfor␈αstoring
␈↓ ↓p␈β
␈↓βprograms␈αor␈α
data.␈α∀It␈α
initializes␈α
the␈α
file␈α
directory␈α
and␈α
has␈α
the␈α
effect␈α
of␈α
erasing␈α
the␈α
entire␈α
diskette␈α
by
␈↓ ↓p␈β
'␈↓βwriting␈α
over␈α
any␈α
information␈α
that␈α
it␈α
may␈α
contain.
␈↓ ↓H␈β
c␈↓¬LISTF
␈↓ ↓p␈β↓␈↓β[␈α.␈α*]␈αTypes␈αthe␈αfile␈αdirectory␈αof␈αthe␈αdiskette␈αcurrently␈αloaded␈α
in␈α
the␈α
mini-floppy␈α
disk␈α
and␈α
prints␈α
the
␈↓ ↓p␈β∨␈↓βamount␈α
of␈α
space␈α
still␈α
available␈α
for␈α
storage.
␈↓ ↓H␈β[␈↓¬LOADP <file>
␈↓ ↓p␈βy␈↓β[␈α∞.␈α∞*]␈α∞Loads␈α∞the␈α∞program's␈α∞contained␈α∞in␈α∞<file>␈α∞into␈α∞the␈α∞computer's␈α∞memory.␈α≠If␈α
a␈α
program␈α
already
␈↓ ↓p␈β↔␈↓βexists␈α⊃which␈α⊂has␈α⊂the␈α⊂same␈α⊂name␈α⊂as␈α⊂a␈α⊂program␈α⊂contained␈α⊂in␈α⊂the␈α⊂disk␈α⊂file,it␈α⊂will␈α⊂be␈α⊂deleted␈α⊂and
␈↓ ↓p␈β5␈↓βreplaced␈α
by␈α
the␈α
program␈α
contained␈α
on␈α
the␈α
disk.
␈↓ ↓H␈βq␈↓¬LOADT <file>
␈↓ ↓p␈β
∂␈↓β[␈α⊂.␈α⊂*]␈α⊂Loads␈α⊂all␈α⊂of␈α⊂the␈α⊂position␈α∂variables␈α∂which␈α∂are␈α∂contained␈α∂in␈α∂the␈α∂specified␈α∂disk␈α∂file␈α∂into␈α∂the
␈↓ ↓p␈β
-␈↓βcomputer's␈αmemory.␈α_If␈αa␈αposition␈αvariable␈αis␈αalready␈αdefined␈αand␈αa␈αvariable␈αwith␈αthe␈αsame␈αname␈αis
␈↓ ↓p␈β
K␈↓βcontained␈α
in␈α
the␈α
disk␈α
file,␈α
the␈α
position's␈α
value␈α
will␈α
be␈α
replaced␈α
by␈α
the␈α
value␈α
read␈α
from␈α
the␈α
disk.
␈↓ ↓H␈β∞π␈↓¬STOREP <file> = [<program1>],...,[<program7>]
␈↓ ↓p␈β∞%␈↓β[␈α
.␈α
*]␈α
Stores␈α
up␈α
to␈α
seven␈α
specified␈α
programs␈α
in␈α
<file>.␈α
If␈α
no␈α
program␈α
names␈α
are␈α
given,␈α
all␈αexisting
␈↓ ↓p␈β∞C␈↓βprograms␈α
are␈α
saved␈α
in␈α
the␈α
specified␈α
file.
␈↓ ↓H␈β∞␈␈↓¬STORET <file>
␈↓ ↓p␈β∂≥␈↓β[␈α
.␈α
*]␈α
Stores␈α
the␈α
names␈α
and␈α
values␈α
of␈α
all␈α
defined␈α
position␈α
variables␈α
in␈α
the␈α
specified␈α
floppy␈α
disk␈α
file.
␈↓ ↓H␈β⎇␈↓↓[6]
␈↓ ∧⊃␈β↓H␈↓↓MONITOR COMMANDS: PROGRAM CONTROL
␈↓ ↓H␈βα
␈↓βThe␈α
following␈α
commands␈α
are␈α
used␈α
for␈α
executing␈α
and␈α
stepping␈α
through␈α
user␈α
programs.
␈↓ ↓H␈βαF␈↓¬ABORT
␈↓ ↓p␈βαd␈↓β[*]␈α
Program␈α
execution␈α
is␈α
terminated␈α
at␈α
the␈α
completion␈α
of␈α
the␈α
step␈α
currently␈α
being␈α
executed.
␈↓ ↓H␈ββ ␈↓¬DO <program instruction>
␈↓ ↓p␈ββ>␈↓β[.]␈α⊃The␈α⊃single␈α⊃specified␈α⊃program␈α⊂instruction␈α⊂is␈α⊂executed␈α⊂as␈α⊂though␈α⊂it␈α⊂were␈α⊂te␈α⊂next␈α⊂step␈α⊂in␈α⊂the
␈↓ ↓p␈ββ\␈↓βpreviously␈α
executed␈αprogram.␈α_Thus,␈αthis␈αcommand␈αcan␈αbe␈αused␈αfor␈αmoving␈αthe␈αarm␈α(eg.␈α_DO␈αMOVE
␈↓ ↓p␈ββz␈↓βT1)␈α∞or␈α∞altering␈α∞the␈α∞sequence␈α∞of␈α∞program␈α∞step␈α
execution␈α
(eg.␈α~DO␈α
GOTO␈α
100).␈α~If␈α
no␈α
instruction␈α
is
␈↓ ↓p␈β∧_␈↓βspecified,␈α
the␈α
previously␈α
specified␈α
instruction␈α
is␈α
performed␈α
once␈α
again.
␈↓ ↓H␈β∧T␈↓¬EXECUTE [<program>],[<nloop>],[<step>]
␈↓ ↓p␈β∧r␈↓β[␈α∞.␈α∞]␈α∞Executes␈α∞the␈α
user␈α
<program>,␈α
<nloop>␈α
number␈α
of␈α
times.␈α~A␈α
loop␈α
is␈α
terminated␈α
when␈α
either␈α
a
␈↓ ↓p␈β¬⊂␈↓βSTOP␈αinstruction␈αor␈αthe␈αlast␈αdefined␈αstep␈αof␈αthe␈αprogram␈αis␈αencountered.␈α⊗The␈αvalue␈αof␈α<nloop>␈αcan
␈↓ ↓p␈β¬.␈↓βbe␈αbetween␈α32767␈αand␈α
-32768.␈α∀Negative␈α
values␈α
of␈α
<nloop>␈α
put␈α
the␈α
program␈α
into␈α
a␈α
continuous␈α
loop.
␈↓ ↓p␈β¬L␈↓βIf␈α⊂<nloop>␈α⊂is␈α⊂omitted␈α⊂or␈α∂zero,␈α∂the␈α∂program␈α∂will␈α∂be␈α∂executed␈α∂one␈α∂time.␈α≡If␈α∂<program>␈α∂is␈α∂omitted,
␈↓ ↓p␈β¬j␈↓βexecution␈αof␈αthe␈αlast␈αuser␈αprogram␈αEXECUTE'd␈αwill␈αbe␈αre-initiated.␈α⊗If␈α<step>␈αis␈αspecified,␈α
the␈α
motion
␈↓ ↓p␈βελ␈↓βprogram␈αbegins␈αexecution␈αat␈αmotion␈αprogram␈αstep␈α<step>␈αfor␈αthe␈αfirst␈αpass,␈αotherwise,␈αthe␈αprogram
␈↓ ↓p␈βε&␈↓βstarts␈α
execution␈α
at␈α
step␈α
#1.␈α∀All␈α
successive␈α
passes␈α
begin␈α
at␈α
the␈α
start␈α
of␈α
the␈α
program.
␈↓ ↓H␈βεb␈↓¬NEXT [<program>],[<nloop>],[<step>]
␈↓ ↓p␈βπ␈↓β[␈α
.␈α
]␈α
Program␈α
single␈αstep␈αmode.␈α_If␈αany␈αof␈αthe␈αthree␈αoptional␈αarguments␈αare␈αspecified,␈αthe␈αprogram
␈↓ ↓p␈βπ≡␈↓βexecution␈α∞is␈α∞initiated␈α
in␈α
exactly␈α
the␈α
same␈α
manner␈α
as␈α
an␈α
EXEC␈α
command.␈α~However,␈α
unlike␈α
an␈α
EXEC
␈↓ ↓p␈βπ<␈↓βcommand,␈α
program␈α
execution␈αis␈αhalted␈αimmediately␈αafter␈αthe␈αfirst␈αprogram␈αinstruction␈αis␈αcompleted.
␈↓ ↓p␈βπZ␈↓βIf␈αall␈αthree␈αarguments␈αare␈αomitted,␈αthe␈α
next␈α
program␈α
instruction␈α
is␈α
executed␈α
and␈α
then␈α
the␈α
program␈α
is
␈↓ ↓p␈βπx␈↓βagain␈α∂halted.␈α≡As␈α∂with␈α∂the␈α∂PROCEED␈α∞and␈α∞RETRY␈α∞commands,␈α∞NEXT␈α∞with␈α∞no␈α∞arguments␈α∞can␈α∞only␈α∞be
␈↓ ↓p␈βλ⊗␈↓βexecuted␈αafter␈αa␈αPAUSE␈αinstruction,␈αa␈αnon-fatal␈αrun-time␈αerror,␈αor␈α
after␈α
single␈α
step␈α
execution␈α
of␈α
the
␈↓ ↓p␈βλ4␈↓βprevious␈α
program␈α
instruction.
␈↓ ↓H␈βλp␈↓¬PROCEED
␈↓ ↓p␈β ∞␈↓β[␈α
.␈α
*]␈α
Proceeds␈α
user␈α
program␈α
at␈α
the␈α
step␈α
following␈α
the␈α
step␈α
where␈α
execution␈αwas␈αhalted␈αdue␈αto␈αa
␈↓ ↓p␈β ,␈↓βPAUSE␈αinstruction␈αor␈αruntime␈αerror.␈α⊗If␈αa␈αprogram␈αis␈αcurrently␈αrunning␈αbut␈α
is␈α
in␈α
a␈α
WAIT␈α
loop,␈α
waiting
␈↓ ↓p␈β J␈↓βfor␈α⊃an␈α⊃external␈α⊃signal␈α⊃to␈α⊃be␈α⊃given,␈α⊃typing␈α⊃PPOCEED␈α⊃has␈α⊃the␈α⊃effect␈α⊂of␈α⊂skipping␈α⊂over␈α⊂the␈α⊂WAIT
␈↓ ↓p␈β h␈↓βinstruction.␈α∀If␈α
a␈α
program␈α
is␈α
executing␈α
but␈α
is␈α
not␈α
in␈α
a␈α
WAIT␈α
loop,␈α
this␈α
instruction␈α
has␈α
no␈α
effect.
␈↓ ↓H␈β
$␈↓¬RETRY
␈↓ ↓p␈β
B␈↓β[␈α
.␈α
]␈α
As␈α
with␈α
the␈α
PROCEED␈αinstruction,␈αthis␈αcommand␈αcan␈αbe␈αused␈αfor␈αrestarting␈αprogram␈αexecution
␈↓ ↓p␈β
`␈↓βafter␈α∞a␈α∞runtime␈α∞error.␈α≤In␈α∞this␈α∞case,␈α∞execution␈α∞resumes␈α
at␈α
the␈α
previous␈α
executed␈α
instruction␈α
step.
␈↓ ↓p␈β
}␈↓βThis␈α
allows␈α
the␈α
user␈α
to␈α
RETRY␈α
a␈α
step␈α
that␈α
may␈α
have␈α
been␈α
aborted.
␈↓ ↓H␈β:␈↓¬SPEED <value>
␈↓ ↓p␈βX␈↓β[␈α∩.␈α$*]␈α∩Alters␈α∩the␈α∩speed␈α∩at␈α∩which␈α∩all␈α∩subsequent␈α∩program␈α∩controlled␈α∩manipulator␈α⊃motions␈α⊃are
␈↓ ↓p␈βv␈↓βexecuted.␈α The␈α⊂speed␈α⊂at␈α⊂which␈α⊂a␈α⊂particular␈α⊂motion␈α∂will␈α∂execute␈α∂is␈α∂approximately␈α∂related␈α∂to␈α∂the
␈↓ ↓p␈β∀␈↓βproduct␈α∪of␈α∪the␈α∪speed␈α∪set␈α∪by␈α∪this␈α∩monitor␈α∩command␈α∩and␈α∩the␈α∩speed␈α∩set␈α∩by␈α∩a␈α∩program␈α∩speed
␈↓ ↓p␈β2␈↓βinstruction.␈α_The␈α<value>␈αof␈αthe␈αspeed␈αcan␈αrange␈αfrom␈α.01␈α(very␈αslow)␈αto␈α327.67␈α(very␈αfast)␈αwhere
␈↓ ↓p␈βP␈↓β100.00␈α
is␈α
normal␈α
speed.␈α~As␈α
an␈α
example,␈α
if␈α
the␈α
monitor␈α
speed␈α
command␈α
is␈α
50.00␈α
and␈αthe␈αprogram
␈↓ ↓p␈βn␈↓βinstruction␈α
speed␈α
is␈α
60.00,␈α
the␈α
arm␈α
will␈α
move␈α
at␈α
approximately␈α
30%␈α
of␈α
its␈α
normal␈α
speed.
␈↓ ↓H␈β
*␈↓βWhen␈αa␈αprogram␈αterminates␈αexecution␈αdue␈αto␈αa␈αPAUSE␈α
or␈α
STOP␈α
statement␈α
or␈α
from␈α
any␈α
one␈α
of␈α
a␈α
number
␈↓ ↓H␈β
H␈↓βof␈α∞runtime␈α∞errors,␈α∞an␈α∞appropriate␈α∞message␈α∞will␈α
be␈α
typed␈α
out␈α
followed␈α
by␈α
one␈α
of␈α
the␈α
following␈α
three
␈↓ ↓H␈β
f␈↓βphrases:␈α1)␈α"HALTED␈α
AT␈α
STEP␈α
xxx",␈α
2)␈α
"HALTED␈α
AT␈α
ppp-xxx",␈α
or␈α
3)␈α
"USER␈α
PROGRAM␈α
TERMINATED".␈α∀The
␈↓ ↓H␈β∞∧␈↓βfirst␈α∂message␈α∂is␈α∂printed␈α∂when␈α∂the␈α∂main␈α∂program␈α∂terminates␈α∂execution␈α∂due␈α∂to␈α∂an␈α∂error␈α∂or␈α∂a␈α∞PAUSE
␈↓ ↓H␈β∞"␈↓βstatement.␈α$In␈α∩this␈α∩case,␈α∩"xxx"␈α∩is␈α∩the␈α∩number␈α∩of␈α∩the␈α⊃program␈α⊃step␈α⊃following␈α⊃the␈α⊃instruction␈α⊃that
␈↓ ↓H␈β∞@␈↓βgenerated␈α
the␈α
halt.␈α→If␈αa␈αsimiliar␈αtermination␈αtakes␈αplace␈αbut␈αthe␈αhalt␈αoccurs␈αduring␈αthe␈αexecution␈αof␈αa
␈↓ ↓H␈β∞↑␈↓βprogram␈α∂subroutine,␈α∂the␈α∂subroutine␈α∂name␈α∂is␈α∂printed␈α∂(ppp)␈α∂followed␈α∂by␈α∞the␈α∞subroutine␈α∞step␈α∞number.
␈↓ ↓H␈β∞|␈↓βFinally,␈α
if␈α
a␈α
STOP␈α
instruction␈α
is␈α
executed␈α
or␈α
the␈α
last␈α
defined␈α
step␈α
of␈α
a␈α
program␈α
has␈α
completed␈α
execution,
␈↓ ↓H␈β∂~␈↓βthe␈α
third␈α
phrase␈α
is␈α
printed.
␈↓ ↓H␈β⎇␈↓↓[7]
␈↓ β$␈β↓H␈↓↓MONITOR COMMANDS: COMPUTER STATUS AND CONTROL
␈↓ ↓H␈βα
␈↓βThere␈αare␈αa␈αnumber␈αof␈αcommands␈αwhich␈αcan␈αbe␈αused␈αto␈αdetermine␈αthe␈αcurrent␈αstate␈α
of␈α
the␈α
manipulator
␈↓ ↓H␈βα(␈↓βcomputer␈α
and␈α
to␈α
initialize␈α
and␈α
terminate␈α
execution.␈α∀These␈α
commands␈α
are␈α
briefly␈α
summarized␈α
below.
␈↓ ↓H␈βαd␈↓¬CALIB
␈↓ ↓p␈ββα␈↓β[␈α.␈α]␈αThis␈αcommand␈αis␈αused␈αin␈αthe␈αUnimate␈α500␈αrobot␈αsystem␈αto␈αcalibrate␈αthe␈αjoint␈αposition␈αsensors.
␈↓ ↓p␈ββ ␈↓βThe␈α⊃arm␈α⊃must␈α⊂be␈α⊂calibrated␈α⊂whenever␈α⊂the␈α⊂arm␈α⊂controller␈α⊂power␈α⊂is␈α⊂switched␈α⊂on.␈α Although␈α⊂the
␈↓ ↓p␈ββ>␈↓βsystem␈αcan␈αbe␈αrun␈αunder␈αmanual␈αor␈αprogram␈αcontrol␈αwhile␈αuncalibrated,␈αit␈αis␈αrecommended␈αthat␈αthe
␈↓ ↓p␈ββ\␈↓βCALIB␈α
instruction␈α
be␈α
executed␈α
as␈α
soon␈α
after␈α
power-up␈α
as␈α
possible.
␈↓ ↓H␈β∧_␈↓¬DONE
␈↓ ↓p␈β∧6␈↓β[␈α⊃.␈α⊃]␈α⊃MONITOR␈α⊃program␈α⊃stops,␈α⊂computer␈α⊂exits␈α⊂to␈α⊂ODT.␈α⊂The␈α⊂program␈α⊂can␈α⊂be␈α⊂started␈α⊂by␈α⊂starting
␈↓ ↓p␈β∧T␈↓βexecution␈α
at␈α
location␈α
100000␈α
by␈α
typing␈α
100000G.
␈↓ ↓H␈β¬⊂␈↓¬ENABLE <switch> or DISABLE <switch>
␈↓ ↓p␈β¬.␈↓β[␈α⊂.␈α⊂*]␈α⊂These␈α⊂commands␈α⊂are␈α⊂used␈α⊂for␈α⊂turning␈α⊂on␈α⊂and␈α⊂off␈α⊂special␈α⊂system␈α⊂hardware␈α⊂features.␈α≡At
␈↓ ↓p␈β¬L␈↓βpresent,␈αthe␈αonly␈αswitch␈αdefined␈αis␈α"HHT".␈α⊗This␈αswitch␈αis␈αused␈αfor␈αenabling␈αand␈αdisabling␈α
the␈α
output
␈↓ ↓p␈β¬j␈↓βof␈α∂special␈α∂control␈α∂characters␈α∂which␈α∂are␈α∂necessary␈α∂for␈α∂the␈α∂operation␈α∂of␈α∂the␈α∂Unimation␈α∂Hand␈α∂Held
␈↓ ↓p␈βελ␈↓βTerminal.␈α≤For␈α∞terminals␈α∞other␈α∞than␈α∞the␈α∞HHT,␈α
these␈α
control␈α
characters␈α
will␈α
normally␈α
not␈α
affect␈α
the
␈↓ ↓p␈βε&␈↓βoutput␈α
display.
␈↓ ↓H␈βεb␈↓¬FREE
␈↓ ↓p␈βπ␈↓β[␈α∂.␈α∂*]␈α∂Types␈α∂the␈α∂percentage␈α∂of␈α∂available␈α∂memory␈α∂that␈α∂is␈α∂not␈α∂currently␈α∂in␈α∂use.␈α≡As␈α∞the␈α∞available
␈↓ ↓p␈βπ≡␈↓βmemory␈α∀is␈α∀being␈α∀added␈α∀up,␈α∀a␈α∀simple␈α∀check␈α∀of␈α∀the␈α∀whole␈α∀area␈α∀is␈α∪made␈α∪to␈α∪ensure␈α∪that␈α∪the
␈↓ ↓p␈βπ<␈↓βbookkeeping␈α
tags␈α
are␈α
consistent.
␈↓ ↓H␈βπx␈↓¬STATUS
␈↓ ↓p␈βλ⊗␈↓β[␈α
.␈α
*]␈α
Prints␈αthe␈αstatus␈αinformation␈αof␈αthe␈αuser␈αprogram␈αbeing␈αexecuted.␈α_This␈αincludes␈αdata␈αon␈αthe
␈↓ ↓p␈βλ4␈↓βprogram␈α∪and␈α∪subroutine␈α∪step␈α∩currently␈α∩being␈α∩executed,␈α∩the␈α∩speed␈α∩set␈α∩by␈α∩the␈α∩monitor␈α∩SPEED
␈↓ ↓p␈βλR␈↓βcommand,␈α∞and␈α∞the␈α∞number␈α∞of␈α∞program␈α∞EXEC␈α
loops␈α
completed␈α
and␈α
still␈α
remaining.␈α~Note␈α
that␈α
if␈α
the
␈↓ ↓p␈βλp␈↓βprogram␈αis␈αin␈αan␈αinfinite␈αEXEC␈αloop,␈αi.e.␈α_nloop␈α<␈α0,␈αthe␈αprint␈αout␈αof␈αthe␈αnumber␈αof␈αloops␈αcompleted
␈↓ ↓p␈β ∞␈↓βcan␈α
be␈α
off␈α
by␈α
32767*n␈α
counts␈α
(n=1,2,..,∞),␈α
since␈α
the␈α
loop␈α
counter␈α
is␈α
permitted␈α
to␈α
overflow.
␈↓ ↓H␈β J␈↓¬ZERO
␈↓ ↓p␈β h␈↓β[␈α
.␈α
*]␈α
Re-initializes␈α
the␈α
VAL␈α
system␈α
and␈αdeletes␈αall␈αdefined␈αpositions␈αand␈αuser␈αprograms.␈α_This␈αis␈αa
␈↓ ↓p␈β
ε␈↓βtotally␈α⊂destructive␈α⊂operation.␈α≡This␈α∂function␈α∂first␈α∂asks␈α∂"ARE␈α∂YOU␈α∂SURE␈α∂(Y,N)?"␈α∂to␈α∂verify␈α∂that␈α∂the
␈↓ ↓p␈β
$␈↓βoperation␈α
is␈α
to␈α
be␈α
performed.
␈↓ ¬λ␈β
>␈↓↓PROGRAM INSTRUCTION SET
␈↓ ↓H␈β␈↓βThe␈αfollowing␈αsections␈αdescribe␈αthe␈αavailable␈αprogram␈αinstructions.␈α_Because␈αof␈αthe␈αgreat␈αflexibility␈αof
␈↓ ↓H␈β≡␈↓βthe␈αbasic␈αstructure␈αof␈αthe␈αVAL␈αlanguage,␈αnew␈αinstructions␈αand␈αdata␈αtypes␈αwhich␈αare␈αdeemed␈αnecessary
␈↓ ↓H␈β<␈↓βcan␈α
be␈α
easily␈α
added.
␈↓ βE␈βt␈↓↓USER PROGRAM INSTRUCTIONS: MOTION STATEMENTS
␈↓ ↓H␈β6␈↓βIn␈αthe␈αfollowing␈αmotion␈αinstructions␈αall␈αdistances␈αare␈αin␈α
inches,␈α
time␈α
is␈α
in␈α
seconds,␈α
and␈α
strings␈α
can␈α
be␈α
up
␈↓ ↓H␈βT␈↓βto␈α
one␈α
line␈α
long.
␈↓ ↓H␈β
.␈↓¬GO <position> [!]
␈↓ ↓p␈β
L␈↓βMoves␈α
the␈α
arm␈α
to␈α
the␈α
position␈α
and␈α
orientation␈α
specified␈α
by␈α
the␈α
<position>␈α
variable.␈α∀There␈α
is␈α
no␈α
path
␈↓ ↓p␈β
j␈↓βcomputed␈α∂for␈α∂this␈α∂motion,␈α∂the␈α∂hardware␈α∂position␈α∂servo␈α∂operates␈α∂in␈α∂slew␈α∂mode.␈α≡Any␈α∂changes␈α∂in
␈↓ ↓p␈β∞λ␈↓βconfiguration␈α∩requested␈α∩by␈α⊃the␈α⊃user␈α⊃are␈α⊃executed␈α⊃during␈α⊃the␈α⊃motion.␈α"If␈α⊃the␈α⊃position␈α⊃name␈α⊃is
␈↓ ↓p␈β∞&␈↓βfollowed␈αby␈αan␈αexclamation␈αmark␈α(!),␈α<position>␈αwill␈αbe␈αset␈αequal␈αto␈αthe␈αmanipulator's␈αlocation␈αat␈αthe
␈↓ ↓p␈β∞D␈↓βtime␈α
the␈α
GO␈α
instruction␈α
is␈α
typed.
␈↓ ↓H␈β∂␈↓¬MOVE <position> [!]
␈↓ ↓p␈β∂≡␈↓βMoves␈αthe␈αarm␈αto␈αthe␈αposition␈αand␈αorientation␈αspecified␈αby␈αthe␈α<position>␈αvarible.␈α⊗Intermediate␈αset
␈↓ ↓p␈β∂<␈↓βpoints␈α
between␈α
the␈α
initial␈α
and␈α
final␈αarm␈αposition␈αare␈αcomputed␈αby␈αinterpolating␈αthe␈αinitial␈αand␈αfinal
␈↓ ↓H␈β⎇␈↓↓[8]
␈↓ ↓p␈β↓H␈↓βjoint␈αangles.␈α⊗Any␈αchanges␈αin␈αconfiguration␈αrequested␈αby␈αthe␈αuser␈αare␈αperformed␈αduring␈αthe␈αmotion.
␈↓ ↓p␈β↓f␈↓βSee␈α
GO␈α
for␈α
an␈α
explanation␈α
of␈α
[!].
␈↓ ↓H␈βα"␈↓¬MOVEI [<jt1>],[<jt2>],[<jt3>],[<jt4>],[<jt5>],[<jt6>],[<hand>],[<speed>]
␈↓ ↓p␈βα@␈↓βPerforms␈α⊂the␈α⊂same␈α⊂type␈α⊂of␈α⊂motion␈α⊂as␈α⊂a␈α⊂MOVE␈α⊂instruction,␈α⊂except␈α⊂that␈α⊂the␈α⊂final␈α∂arm␈α∂position␈α∂is
␈↓ ↓p␈βα↑␈↓βexplicitly␈αstated␈αin␈αterms␈αof␈αits␈αsix␈αjoint␈αangles␈αand␈αits␈αhand␈αopening␈αinstead␈αof␈αa␈αposition␈αvariable.
␈↓ ↓p␈βα|␈↓βThe␈α
specified␈α
speed␈α
supersedes␈α
any␈α
previously␈α
executed␈α
SPEED␈α
program␈α
instruction.
␈↓ ↓H␈ββ8␈↓¬MOVES <position> [!]
␈↓ ↓p␈ββV␈↓βMoves␈α∞the␈α∞arm␈α∞to␈α∞the␈α∞position␈α∞and␈α∞orientation␈α∞specified␈α∞by␈α∞the␈α∞<position>␈α∞variable.␈α≤The␈α∞hand␈α
is
␈↓ ↓p␈ββt␈↓βmoved␈α
along␈α
a␈α
straight␈α
line␈α
path␈α
and␈α
the␈α
hand␈α
orientation␈α
is␈α
smoothly␈αrotated␈αto␈αits␈αfinal␈αposition.
␈↓ ↓p␈β∧∩␈↓βNo␈α
changes␈α
in␈α
configuration␈α
are␈α
permitted␈α
during␈α
this␈α
motion.␈α∀See␈α
GO␈α
for␈α
an␈α
explanation␈α
of␈α
[!].
␈↓ ↓H␈β∧N␈↓¬DRAW [<dX>],[<dY>],[<dZ>]
␈↓ ↓p␈β∧l␈↓βMoves␈αthe␈αarm␈αalong␈αa␈αstraight␈αline␈αa␈αdistance␈αof␈αdX␈αin␈αthe␈αX␈αdirection,␈αdY␈αin␈αthe␈αY␈α
direction␈α
and␈α
dZ
␈↓ ↓p␈β¬
␈↓βin␈α⊂the␈α⊂Z␈α⊂direction.␈α∨Any␈α∂distances␈α∂omitted␈α∂are␈α∂assumed␈α∂to␈α∂be␈α∂zero.␈α≡The␈α∂arm␈α∂configuration␈α∂and
␈↓ ↓p␈β¬(␈↓βorientation␈α
are␈α
maintained␈α
during␈α
this␈α
motion.
␈↓ ↓H␈β¬d␈↓¬DEPART <distance>
␈↓ ↓p␈βεα␈↓βMoves␈αthe␈αhand␈αa␈αdistance␈α<distance>␈αalong␈αthe␈αcurrent␈αaxis␈αof␈αrotation␈αof␈αthe␈αlast␈αjoint.␈α⊗Negative
␈↓ ↓p␈βε ␈↓βdistances␈α
move␈α
the␈α
hand␈α
forward,␈α
positive␈α
distances␈α
move␈α
the␈α
hand␈α
back.
␈↓ ↓H␈βε\␈↓¬APPRO <position>[!], <distance>
␈↓ ↓p␈βεz␈↓βMoves␈α∪the␈α∪hand␈α∩to␈α∩the␈α∩position␈α∩and␈α∩orientation␈α∩specified␈α∩by␈α∩<position>,␈α∩offset␈α∩by␈α∩a␈α∩distance
␈↓ ↓p␈βπ_␈↓β<distance>␈αalong␈αthe␈αaxis␈αof␈αrotation␈αof␈αthe␈αlast␈αjoint.␈α_Positive␈αdistances␈αmove␈αthe␈αhand␈αback␈αfrom
␈↓ ↓p␈βπ6␈↓βthe␈α⊃specified␈α⊃position,␈α⊃negative␈α⊃distances␈α⊃move␈α⊃the␈α⊃hand␈α⊂beyond␈α⊂the␈α⊂position.␈α See␈α⊂GO␈α⊂for␈α⊂an
␈↓ ↓p␈βπT␈↓βexplanation␈α
of␈α
[!].
␈↓ ↓H␈βλ⊂␈↓¬APPROS <position>[!], <distance>
␈↓ ↓p␈βλ.␈↓βSame␈α⊃as␈α⊃APPRO,␈α⊃but␈α⊃the␈α⊂hand␈α⊂is␈α⊂moved␈α⊂along␈α⊂a␈α⊂straight␈α⊂line␈α⊂path␈α⊂and␈α⊂the␈α⊂hand␈α⊂orientation␈α⊂is
␈↓ ↓p␈βλL␈↓βsmoothly␈αrotated␈αto␈αits␈αfinal␈αposition.␈α⊗No␈αchanges␈αin␈αconfiguration␈αare␈αpermitted␈αduring␈αthis␈αmotion.
␈↓ ↓p␈βλj␈↓βSee␈α
GO␈α
for␈α
an␈α
explanation␈α
of␈α
[!].
␈↓ ↓H␈β &␈↓¬READY
␈↓ ↓p␈β D␈↓βMoves␈α
the␈α
arm␈α
to␈α
the␈α
READY␈α
position␈αabove␈αthe␈αwork␈αspace.␈α_This␈αforces␈αthe␈αarm␈αinto␈αa␈αstandard
␈↓ ↓p␈β b␈↓βconfiguration.␈α_No␈αmatter␈αwhere␈αthe␈αmanipulator␈αis␈αoriginally␈αpositioned,␈αthis␈αinstruction␈αwill␈αalways
␈↓ ↓p␈β
␈↓βsucceed.
␈↓ ↓H␈β
<␈↓¬REST
␈↓ ↓p␈β
Z␈↓βMoves␈αthe␈αarm␈αto␈αthe␈αREST␈αposition.␈α⊗This␈αleaves␈αthe␈αarm␈αin␈αa␈α
safe␈α
position␈α
in␈α
case␈α
power␈α
is␈α
turned
␈↓ ↓p␈β
x␈↓βoff.␈α↔If␈αno␈αspecial␈αspeed␈αhas␈αbeen␈αset␈αvia␈αthe␈αSPEED␈αcommand,␈αthe␈αarm␈αwill␈αmove␈αto␈αrest␈αat␈αhalf␈αthe
␈↓ ↓p␈β⊗␈↓βnormal␈α
speed.
␈↓ ↓H␈βR␈↓¬OPEN <distance> or CLOSE <distance>
␈↓ ↓p␈βp␈↓βFor␈α∞2-state␈α
hands␈α
these␈α
instructions␈α
are␈α
used␈α
without␈α
the␈α
<distance>␈α
argument␈α
to␈α
either␈α
OPEN␈α
or
␈↓ ↓p␈β∞␈↓βCLOSE␈αthe␈αhand␈αduring␈αthe␈αexecution␈αof␈αthe␈αnext␈αmotion␈αinstruction.␈α⊗For␈αproportional␈αhands,␈αthese
␈↓ ↓p␈β,␈↓βinstructions␈α
change␈αthe␈αhand␈αopening␈αto␈α<distance>␈αinches␈αduring␈αthe␈αexecution␈αof␈αthe␈αnext␈αmotion
␈↓ ↓p␈βJ␈↓βinstruction.␈α⊗If␈α<distance>␈αis␈αnegative,␈αthe␈αhand␈αis␈αclosed␈αas␈α
far␈α
as␈α
possible,␈α
and␈α
if␈α
<distance>␈α
is␈α
very
␈↓ ↓p␈βh␈↓βlarge,␈αthe␈αhand␈αis␈αopened␈αas␈αfar␈αas␈αpossible,␈αotherwise␈αthe␈αhand␈αopening␈αis␈αset␈αequal␈αto␈α<distance>.
␈↓ ↓p␈β
ε␈↓βBoth␈α
the␈α
OPEN␈α
and␈α
the␈α
CLOSE␈α
instructions␈α
produce␈α
exactly␈α
the␈α
same␈α
effect.
␈↓ ↓H␈β
B␈↓¬OPENI <distance> or CLOSEI <distance>
␈↓ ↓p␈β
`␈↓βFor␈α
2-state␈α
hands␈α
these␈α
instructions␈α
without␈α
a␈α
<distance>␈αargument␈αeither␈αopen␈αor␈αclose␈αthe␈αhand
␈↓ ↓p␈β
}␈↓βimmediately.␈α
For␈α
proportional␈α
hands␈α
OPENI␈αor␈αCLOSEI␈αperform␈αthe␈αsame␈αchange␈αin␈αhand␈αopening␈αas
␈↓ ↓p␈β∞≤␈↓βan␈α⊂OPEN␈α⊂or␈α⊂CLOSE␈α⊂but␈α⊂the␈α⊂operation␈α⊂is␈α⊂performed␈α⊂immediately␈α⊂instead␈α⊂of␈α⊂waiting␈α⊂for␈α⊂the␈α⊂next
␈↓ ↓p␈β∞:␈↓βmotion␈α
instruction.
␈↓ ↓H␈β∞v␈↓¬GRASP <distance>,[<label>]
␈↓ ↓p␈β∂∀␈↓βFor␈α∂proportional␈α∂hands␈α∂only,␈α∞this␈α∞instruction␈α∞closes␈α∞the␈α∞hand␈α∞and␈α∞checks␈α∞to␈α∞see␈α∞if␈α∞the␈α∞final␈α∞hand
␈↓ ↓p␈β∂2␈↓βopening␈αwas␈αless␈αthan␈αthe␈αspecified␈αdistance.␈α↔If␈αso,␈αthe␈αprogram␈αbranches␈αto␈αthe␈αstep␈αindicated␈αby
␈↓ ↓H␈β⎇␈↓↓[9]
␈↓ ↓p␈β↓H␈↓βthe␈α
program␈α
label␈α
or␈α
an␈α
error␈α
message␈αis␈αgenerated␈αif␈αthe␈αoptional␈αprogram␈αlabel␈αis␈αnot␈αspecified.
␈↓ ↓p␈β↓f␈↓βThis␈α∞instruction␈α∞provides␈α∞a␈α∞simple␈α∞one␈α∞step␈α∞method␈α∞for␈α∞grasping␈α∞an␈α∞object␈α∞and␈α∞testing␈α
to␈α
ensure
␈↓ ↓p␈βα∧␈↓βthat␈α
proper␈α
contact␈α
was␈α
achieved.
␈↓ ↓H␈βα@␈↓¬DRIVE <jt>,<angle>,<time>
␈↓ ↓p␈βα↑␈↓βOperates␈αthe␈αsingle␈αjoint␈αspecified␈αby␈αthe␈αparameter␈α<jt>␈α(1-7).␈α⊗The␈αcurrent␈αjoint␈αangle␈αis␈αchanged
␈↓ ↓p␈βα|␈↓βby␈αan␈αamount␈α<angle>.␈α⊗The␈αchange␈α
in␈α
joint␈α
angle␈α
must␈α
be␈α
specified␈α
in␈α
degrees.␈α∀The␈α
duration␈α
<time>
␈↓ ↓p␈ββ~␈↓βmust␈α
be␈α
specified␈α
in␈α
seconds.
␈↓ ↓H␈ββV␈↓¬DELAY <duration>
␈↓ ↓p␈ββt␈↓βPuts␈αthe␈αprogram␈αin␈αa␈αwait␈αloop␈αfor␈αthe␈αspecified␈αamount␈α
of␈α
time.␈α∀The␈α
duration␈α
can␈α
be␈α
given␈α
as␈α
any
␈↓ ↓p␈β∧∩␈↓βvalue␈α∞between␈α∞.01␈α∞and␈α∞327.67␈α∞seconds.␈α≤This␈α∞instruction␈α∞operates␈α∞just␈α∞like␈α∞a␈α
"move␈α
to␈α
nowhere"
␈↓ ↓p␈β∧0␈↓βmotion␈α∂instruction.␈α≡In␈α∂particular␈α∂if␈α∂there␈α∂is␈α∂a␈α∂pending␈α∞hand␈α∞operation,␈α∞the␈α∞hand␈α∞motion␈α∞will␈α∞take
␈↓ ↓p␈β∧N␈↓βplace␈α∂during␈α∂the␈α∂execution␈α∂of␈α∂the␈α∂DELAY␈α∂instruction␈α∞and␈α∞if␈α∞any␈α∞temporary␈α∞special␈α∞switches␈α∞have
␈↓ ↓p␈β∧l␈↓βbeen␈α⊃specified,␈α⊃they␈α⊃will␈α⊂be␈α⊂cleared␈α⊂after␈α⊂the␈α⊂conclusion␈α⊂of␈α⊂the␈α⊂DELAY␈α⊂(see␈α⊂section␈α⊂on␈α⊂special
␈↓ ↓p␈β¬
␈↓βswitches).
␈↓ α∃␈β¬B␈↓↓USER PROGRAM INSTRUCTIONS: ARM CONFIGURATION CONTROL STATEMENTS
␈↓ ↓H␈βε∧␈↓βFor␈α∩an␈α⊃anthropomorphic,␈α⊃six-joint␈α⊃manipulator,␈α⊃most␈α⊃points␈α⊃in␈α⊃the␈α⊃work␈α⊃space␈α⊃of␈α⊃the␈α⊃arm␈α⊃can␈α⊃be
␈↓ ↓H␈βε"␈↓βreached␈α∂by␈α∂assuming␈α∂one␈α∂of␈α∂eight␈α∂possible␈α∂spatial␈α∂configurations.␈α≡Normally,␈α∂the␈α∂arm␈α∂will␈α∞remain␈α∞in
␈↓ ↓H␈βε@␈↓βwhatever␈αconfiguration␈αit␈αstarts␈αin␈αwhen␈αthe␈α
user␈α
program␈α
begins␈α
execution␈α
or␈α
continues␈α
from␈α
a␈α
PAUSE
␈↓ ↓H␈βε↑␈↓βstatement␈αor␈αruntime␈αerror.␈α⊗The␈αonly␈αexceptions␈α
to␈α
this␈α
rule␈α
are:␈α∀1)␈α
when␈α
the␈α
arm␈α
is␈α
forced␈α
to␈α
change
␈↓ ↓H␈βε|␈↓βfrom␈αFLIP␈αto␈αNOFLIP␈αor␈αvice␈αversa␈αin␈αorder␈αto␈αkeep␈αjoints␈α4␈αor␈α6␈αwithin␈α
stop␈α
limits␈α
or␈α
2)␈α
when␈α
a␈α
READY
␈↓ ↓H␈βπ~␈↓βor␈αREST␈αinstruction␈αis␈αexecuted␈αor␈α3)␈αwhen␈αa␈αspecific␈αchange␈αin␈αconfiguration␈αis␈αrequested␈αby␈αthe␈α
user
␈↓ ↓H␈βπ8␈↓βprogram␈αthrough␈αthe␈α
execution␈α
of␈α
any␈α
of␈α
the␈α
following␈α
program␈α
instructions.␈α∀When␈α
the␈α
user␈α
specifies␈α
a
␈↓ ↓H␈βπV␈↓βchange␈α∞in␈α∞arm␈α
configuration,␈α
the␈α
requested␈α
change␈α
with␈α
be␈α
accomplished␈α
during␈α
the␈α
execution␈α
of␈α
the
␈↓ ↓H␈βπt␈↓βnext␈α
GO,␈α
MOVE,␈α
or␈α
APPRO␈α
motion␈α
instruction.
␈↓ ↓H␈βλN␈↓¬RIGHTY or LEFTY
␈↓ ↓p␈βλl␈↓βRequests␈α
a␈α
change␈α
in␈α
the␈α
arm␈α
configuration␈α
so␈α
that␈α
the␈αmanipulator's␈αfirst␈αthree␈αjoints␈αresemble␈αa
␈↓ ↓p␈β
␈↓βhuman's␈α
right␈α
or␈α
left␈α
shouldered␈α
arm,␈α
respectively.
␈↓ ↓H␈β F␈↓¬ABOVE or BELOW
␈↓ ↓p␈β d␈↓βRequests␈α
a␈α
change␈α
in␈α
arm␈α
configuration␈α
so␈α
that␈α
the␈α
elbow␈α
of␈α
the␈α
arm␈α
is␈α
either␈α
pointed␈α
up␈α
or␈α
down.
␈↓ ↓H␈β
␈↓¬FLIP or NOFLIP
␈↓ ↓p␈β
>␈↓βChanges␈α
the␈α
range␈α
of␈α
operation␈α
of␈α
joint␈α
5␈α
to␈α
plus␈α
(NOFLIP)␈α
or␈α
minus␈α
(FLIP)␈α
angles.
␈↓ ↓g␈β∀␈↓↓USER PROGRAM INSTRUCTIONS: INTEGER VARIABLE AND ASSIGNMENT INSTRUCTIONS
␈↓ ↓H␈βV␈↓βIn␈α∞most␈α∞cases␈α∞where␈α∞an␈α∞integer␈α∞variable␈α∞is␈α∞required␈α∞as␈α∞an␈α∞argument␈α∞for␈α∞a␈α
user␈α
program␈α
instruction,
␈↓ ↓H␈βt␈↓βeither␈α∂the␈α∂symbolic␈α∂name␈α∂of␈α∂a␈α∞variable␈α∞can␈α∞be␈α∞given␈α∞or␈α∞an␈α∞integer␈α∞value␈α∞can␈α∞be␈α∞specified.␈α≤Integer
␈↓ ↓H␈β∩␈↓βvariable␈αnames␈αconform␈αto␈αthe␈αsyntax␈αgiven␈αfor␈αposition␈αvariables␈αand␈αprogram␈αnames␈αand␈αtheir␈α
values
␈↓ ↓H␈β0␈↓βmust␈αbe␈αbetween␈α32767␈αand␈α-32768.␈α⊗The␈αonly␈αtime␈αthat␈α
an␈α
integer␈α
value␈α
cannot␈α
be␈α
used␈α
in␈α
place␈α
of␈α
a
␈↓ ↓H␈βN␈↓βinteger␈α
variable␈α
is␈α
when␈α
the␈α
specified␈α
operation␈α
would␈α
result␈α
in␈α
an␈α
attempt␈α
to␈α
alter␈α
the␈α
value␈α
of␈αthe
␈↓ ↓H␈βl␈↓βconstant.␈α∀In␈α
this␈α
case␈α
an␈α
error␈α
message␈α
is␈α
generated.
␈↓ ↓H␈β
F␈↓¬SETI <i.var1> = <i.var2> [<operation> <i.var3>]
␈↓ ↓p␈β
d␈↓βThe␈αvalue␈αof␈α<i.var1>␈αis␈αset␈αequal␈αto␈αthe␈αresult␈αof␈αevaluating␈αthe␈αexpression␈α
on␈α
the␈α
right␈α
side␈α
of␈α
the
␈↓ ↓p␈β∞α␈↓βequal␈αsign.␈α_The␈αpermitted␈α<operation>'s␈αare:␈α_addition␈α(+),␈αsubtraction␈α(-),␈αmultiplication␈α(*),␈αinteger
␈↓ ↓p␈β∞ ␈↓βdivision␈α(/),␈αand␈αmodulus␈αdetermination␈α(%).␈α⊗If␈αboth␈αthe␈αoperation␈αand␈αthe␈αthird␈αvariable␈αare␈α
missing,
␈↓ ↓p␈β∞>␈↓βthe␈α
instruction␈α
is␈α
a␈α
direct␈α
assignment␈α
statement.
␈↓ ↓H␈β∞z␈↓¬TYPEI <i.var>
␈↓ ↓p␈β∂_␈↓βTypes␈α
the␈α
value␈α
of␈α
the␈α
integer␈α
variable␈α
<i.var>.
␈↓ ↓H␈β⎇␈↓↓[10]
␈↓ ↓H␈β↓H␈↓¬HERE <position>
␈↓ ↓p␈β↓f␈↓βSets␈α⊃the␈α⊃value␈α⊂of␈α⊂the␈α⊂specified␈α⊂position␈α⊂variable␈α⊂equal␈α⊂to␈α⊂the␈α⊂current␈α⊂manipulator␈α⊂position␈α⊂and
␈↓ ↓p␈βα∧␈↓βorientation.
␈↓ ↓H␈βα@␈↓¬SET <point1> = <point2>
␈↓ ↓p␈βα↑␈↓βThe␈αvalue␈αof␈αpoint␈α1␈αis␈αset␈αequal␈αto␈αthe␈αvalue␈αof␈αpoint␈α2.␈α⊗If␈αthe␈αposition␈αand␈αorientation␈αof␈αpoint␈α2
␈↓ ↓p␈βα|␈↓βare␈α
not␈α
yet␈α
defined␈α
an␈α
error␈α
message␈α
will␈α
be␈α
generated.
␈↓ ↓H␈ββ8␈↓¬SHIFT <trans> BY [<dx>],[<dy>],[<dz>]
␈↓ ↓p␈ββV␈↓βThe␈α⊂X,␈α⊂Y,␈α⊂and␈α⊂Z␈α⊂positions␈α⊂of␈α⊂the␈α⊂transformation␈α⊂<trans>␈α⊂are␈α⊂modified␈α∂by␈α∂adding␈α∂the␈α∂changes␈α∂in
␈↓ ↓p␈ββt␈↓βdistances␈α
<dx>,␈α
<dy>,␈α
and␈α
<dz>,␈α
respectively.␈α~If␈α
the␈α
value␈α
of␈α
the␈α
transformation␈α
has␈α
not␈α
yet␈αbeen
␈↓ ↓p␈β∧∩␈↓βdefined␈α
or␈α
if␈α
its␈α
new␈α
X,␈α
Y,␈α
Z␈α
position␈α
is␈α
too␈α
large␈α
to␈α
represent,␈α
an␈α
error␈α
message␈α
will␈α
be␈α
generated.
␈↓ β>␈β∧h␈↓↓USER PROGRAM INSTRUCTIONS: CONTROL STRUCTURES
␈↓ ↓H␈β¬*␈↓βThe␈α⊃following␈α⊃instructions␈α⊃are␈α⊃used␈α⊃to␈α⊃alter␈α⊃the␈α⊂sequence␈α⊂in␈α⊂which␈α⊂user␈α⊂program␈α⊂instructions␈α⊂are
␈↓ ↓H␈β¬H␈↓βexecuted␈αand␈αfor␈αinterlocking␈αthe␈αarm␈αcomputer␈αwith␈αother␈αdevices.␈αIn␈αwhat␈αfollows,␈α<channel>␈αis␈αused
␈↓ ↓H␈β¬f␈↓βto␈α⊂designate␈α⊂one␈α⊂of␈α⊂the␈α⊂external␈α⊂signal␈α⊂input␈α∂or␈α∂output␈α∂lines.␈α≡<channel>␈α∂can␈α∂be␈α∂either␈α∂an␈α∂integer
␈↓ ↓H␈βε∧␈↓βnumber␈αor␈αan␈αinteger␈αvariable.␈α_The␈αabsolute␈αvalue␈αof␈α<channel>␈αis␈αused␈αto␈αspecify␈αa␈αparticular␈αsignal
␈↓ ↓H␈βε"␈↓βline.␈α∨The␈α∂magnitude␈α∂of␈α∂<channel>␈α∂must␈α∂be␈α∂between␈α∂1␈α∂and␈α∂N,␈α∂where␈α∂N␈α∂is␈α∂the␈α∂number␈α∂of␈α∂hardware
␈↓ ↓H␈βε@␈↓βinterlocks␈αprovided␈αwith␈αthe␈αsystem.␈α_For␈αcertain␈αinstructions,␈αthe␈αsign␈αof␈α<channel>␈αis␈αused␈αto␈αspecify
␈↓ ↓H␈βε↑␈↓βhigh␈αand␈αlow␈αsignal␈αvalues.␈α⊗In␈αthese␈αinstances,␈αa␈αpositive␈α<channel>␈αvalue␈αindicates␈αa␈αhigh␈αsignal␈αand␈αa
␈↓ ↓H␈βε|␈↓βnegative␈α
value␈α
indicates␈α
a␈α
low␈α
signal.
␈↓ ↓H␈βπV␈↓¬GOSUB <prog>
␈↓ ↓p␈βπt␈↓βExecution␈α∪of␈α∪the␈α∪current␈α∪program␈α∪is␈α∪temporarily␈α∪suspended␈α∪and␈α∪program␈α∪execution␈α∪continues
␈↓ ↓p␈βλ∩␈↓βstarting␈α⊂with␈α⊂the␈α⊂first␈α⊂step␈α⊂of␈α⊂the␈α⊂user␈α⊂program␈α⊂<prog>.␈α The␈α∂address␈α∂of␈α∂the␈α∂next␈α∂step␈α∂in␈α∂the
␈↓ ↓p␈βλ0␈↓βcurrent␈α
program␈α
is␈α
automatically␈α
saved␈α
and␈α
up␈α
to␈α
10␈α
programs␈α
can␈α
be␈α
superseded␈α
at␈α
any␈α
given␈α
time.
␈↓ ↓H␈βλl␈↓¬RETURN [<skip count>]
␈↓ ↓p␈β
␈↓βTerminates␈α∂execution␈α∂of␈α∂the␈α∂current␈α∂user␈α∂program␈α∂and␈α∂resumes␈α∂execution␈α∞of␈α∞the␈α∞last␈α∞suspended
␈↓ ↓p␈β (␈↓βprogram.␈αThe␈αsuspended␈αprogram␈αresumes␈αrunning␈αat␈α<skip␈αcount>+1␈αnumber␈αof␈αsteps␈αfollowing␈αthe
␈↓ ↓p␈β F␈↓βexecuted␈α⊃GOSUB␈α⊃instruction.␈α"Hence,␈α⊃if␈α⊃the␈α⊃skip␈α⊃count␈α⊃is␈α⊂omitted␈α⊂or␈α⊂a␈α⊂count␈α⊂of␈α⊂0␈α⊂is␈α⊂specified,
␈↓ ↓p␈β d␈↓βexecution␈α⊃resumes␈α⊃at␈α⊃the␈α⊃instruction␈α⊃following␈α⊃the␈α⊃executed␈α⊃GOSUB.␈α"If␈α⊃the␈α⊂subroutine␈α⊂started
␈↓ ↓p␈β
α␈↓βexecution␈α∞due␈α∞to␈α∞the␈α∞triggering␈α∞of␈α∞a␈α∞REACTI␈α∞statement,␈α∞a␈α∞skip␈α
count␈α
of␈α
1␈α
can␈α
be␈α
used␈α
to␈α
resume
␈↓ ↓p␈β
␈↓βexecution␈αof␈αthe␈αinterrupted␈αroutine␈αwithout␈αre-executing␈αthe␈αinterrupted␈αprogram␈αstep.␈α⊗Executing
␈↓ ↓p␈β
>␈↓βa␈α
RETURN␈α
in␈α
the␈α
main␈α
program␈α
produces␈α
the␈α
same␈α
effect␈α
as␈α
executing␈α
a␈α
STOP␈α
instruction.
␈↓ ↓H␈β
z␈↓¬IF <i.var1> <relationship> <i.var2> THEN <label>
␈↓ ↓p␈β_␈↓βThe␈α
value␈α
of␈α
<i.var1>␈α
is␈α
compared␈α
to␈α
the␈αvalue␈αof␈α<i.var2>␈αand␈αif␈αthe␈αstated␈α<relationship>␈αis␈αtrue,
␈↓ ↓p␈β6␈↓βthe␈α∂program␈α∂branches␈α∂execution␈α∂to␈α∂the␈α∂program␈α∂step␈α∂specified␈α∂by␈α∂<label>.␈α≡Otherwise,␈α∂the␈α∂next
␈↓ ↓p␈βT␈↓βsequential␈αstep␈αof␈αthe␈αprogram␈αis␈αexecuted␈αas␈αusual.␈α↔The␈αpossible␈αrelationships␈αthat␈αcan␈αbe␈αtested
␈↓ ↓p␈βr␈↓βfor␈αare:␈αequal␈α(EQ),␈αnot␈αequal␈α(NE),␈αgreater␈αthan␈α(GT),␈αgreater␈αthan␈αor␈αequal␈α(GE),␈αless␈αthan␈α(LT),␈αand
␈↓ ↓p␈β⊂␈↓βless␈α
than␈α
or␈α
equal␈α
(LE).
␈↓ ↓H␈βL␈↓¬IFSIG <channel>[,<channel>][,<channel>][,<channel>] THEN <label>
␈↓ ↓p␈βj␈↓βIf␈αthe␈αstates␈αof␈αthe␈αexternal␈αsignals␈αexactly␈αmatch␈αthe␈αspecified␈αsignal␈αstates,␈αthe␈αprogram␈αbranches
␈↓ ↓p␈β
λ␈↓βto␈α∞the␈α∞program␈α∞instruction␈α∞specified␈α∞by␈α
<label>.␈α~Otherwise,␈α
if␈α
any␈α
mismatch␈α
is␈α
detected,␈α
the␈α
next
␈↓ ↓p␈β
&␈↓βsequential␈α
program␈α
step␈α
is␈α
executed.␈α~The␈α
<channel>s␈α
are␈α
specified␈α
as␈α
signed␈αvalues␈αto␈αindicate␈αif
␈↓ ↓p␈β
D␈↓βeach␈αtest␈αis␈αto␈αbe␈αmade␈αfor␈αa␈αhigh␈αor␈αlow␈αsignal.␈α∀Omitted␈α
channel␈α
numbers␈α
or␈α
channel␈α
numbers␈α
with
␈↓ ↓p␈β
b␈↓βa␈α
value␈α
of␈α
zero␈α
always␈α
satisfy␈α
the␈α
matching␈α
test.
␈↓ ↓H␈β∞≡␈↓¬IGNORE <channel> [ALWAYS]
␈↓ ↓p␈β∞<␈↓βDisables␈α∞the␈α∞triggering␈α∞of␈α∞the␈α∞REACT␈α
or␈α
REACTI␈α
instruction␈α
which␈α
is␈α
associated␈α
with␈α
the␈α
specified
␈↓ ↓p␈β∞Z␈↓βexternal␈α∃signal␈α∃channel.␈α*If␈α∃ALWAYS␈α∃is␈α∃specified,␈α∀the␈α∀reaction␈α∀is␈α∀permanently␈α∀disabled␈α∀until
␈↓ ↓p␈β∞x␈↓βcompletion␈α
of␈α
the␈α
next␈α
motion␈α
statement.␈α∀The␈α
value␈α
of␈α
<channel>␈α
must␈α
always␈α
be␈α
greater␈α
than␈α
zero.
␈↓ ↓H␈β∂4␈↓¬GOTO <label>
␈↓ ↓H␈β⎇␈↓↓[11]
␈↓ ↓p␈β↓H␈↓βPerforms␈α
an␈α
unconditional␈α
branch␈α
to␈α
the␈α
program␈α
step␈α
specified␈α
by␈α
<label>.
␈↓ ↓H␈βα∧␈↓¬SIGON <channel>
␈↓ ↓p␈βα"␈↓βTurns␈αon␈αthe␈αsignal␈αto␈αthe␈αdevice␈αattached␈αto␈αthe␈αspecified␈αoutput␈αchannel.␈α⊗Only␈αpositive␈αvalues␈αof
␈↓ ↓p␈βα@␈↓β<channel>␈α
are␈α
permitted.
␈↓ ↓H␈βα|␈↓¬REACT <channel>,[<program>] [ALWAYS]
␈↓ ↓p␈ββ~␈↓βThis␈αinstruction␈αinitiates␈αthe␈αcontinuous␈αmonitoring␈αof␈αthe␈αexternal␈αsignal␈αspecified␈αby␈α<channel>.␈α⊗If
␈↓ ↓p␈ββ8␈↓βa␈α⊃high␈α⊃value␈α⊃is␈α⊃detected,␈α⊃the␈α⊃program␈α⊃reacts␈α⊃by␈α⊃altering␈α⊃the␈α⊃sequence␈α⊃in␈α⊃which␈α⊃the␈α⊃following
␈↓ ↓p␈ββV␈↓βprogram␈αsteps␈αare␈αexecuted.␈αThe␈αreaction␈αis␈αequivalent␈αto␈αperforming␈αa␈α"GOSUB␈α<program>"␈αat␈αthe
␈↓ ↓p␈ββt␈↓βcompletion␈αof␈αthe␈αprogram␈αstep␈αfolllowing␈αthe␈αfirst␈αoccurance␈αof␈αa␈αhigh␈αsignal␈αvalue.␈α_If␈αALWAYS␈αis
␈↓ ↓p␈β∧∩␈↓βspecified,␈α∩the␈α∩signal␈α∩monitoring␈α∩is␈α∩active␈α∩until␈α∩either␈α∩an␈α∩IGNORE␈α∩statement␈α∩is␈α∩executed␈α⊃or␈α⊃the
␈↓ ↓p␈β∧0␈↓βreaction␈α↔is␈α↔triggered␈α↔(in␈α↔which␈α↔case␈α↔the␈α↔equivalent␈α↔of␈α↔an␈α↔"IGNORE␈α⊗<channel>␈α⊗ALWAYS"␈α⊗is
␈↓ ↓p␈β∧N␈↓βautomatically␈αperformed).␈α⊗If␈α
ALWAYS␈α
is␈α
omitted,␈α
the␈α
signal␈α
will␈α
only␈α
be␈α
checked␈α
until␈α
the␈α
completiion
␈↓ ↓p␈β∧l␈↓βof␈α∞the␈α∞next␈α∞arm␈α∞motion␈α∞instruction.␈α≤If␈α∞<program>␈α∞is␈α
omitted,␈α
the␈α
program␈α
step␈α
following␈α
the␈α
first
␈↓ ↓p␈β¬
␈↓βoccurance␈αof␈αa␈αhigh␈αvalue␈αwill␈αbe␈αskipped␈αand␈αexecution␈α
will␈α
continue␈α
at␈α
the␈α
following␈α
program␈α
step.
␈↓ ↓p␈β¬(␈↓βOnly␈α
one␈α
REACT␈α
or␈α
REACTI␈α
command␈α
can␈α
be␈α
associated␈α
with␈α
any␈α
channel␈α
at␈α
any␈α
given␈α
time.
␈↓ ↓H␈β¬d␈↓¬REACTI <channel>,[<program>] [ALWAYS]
␈↓ ↓p␈βεα␈↓βLike␈α∞REACT,␈α∞this␈α∞instruction␈α
initiates␈α
the␈α
continuous␈α
monitoring␈α
of␈α
the␈α
external␈α
signal␈α
specified␈α
by
␈↓ ↓p␈βε ␈↓β<channel>.␈α&However,␈α∪in␈α∪this␈α∪case,␈α∪when␈α∪a␈α∪high␈α∪value␈α∪is␈α∪detected,␈α∪the␈α∪current␈α∩instruction␈α∩is
␈↓ ↓p␈βε>␈↓βimmediately␈αaborted␈αand␈αthe␈αequivalent␈αof␈αa␈α"GOSUB␈α<program>"␈αis␈αexecuted.␈αThe␈αsubroutine␈αcall␈αto
␈↓ ↓p␈βε\␈↓β<program>␈αis␈αperformed␈αsuch␈αthat␈αif␈αa␈α"RETURN␈α0"␈αis␈αused␈αto␈αexit␈αfrom␈α<program>,␈αthe␈αinterrupted
␈↓ ↓p␈βεz␈↓βprogram␈α
step␈α
will␈α
be␈α
executed␈α
once␈α
again.␈α~In␈α
order␈α
to␈α
return␈α
control␈α
to␈α
the␈αinterrupted␈αprogram
␈↓ ↓p␈βπ_␈↓βand␈αto␈αskip␈αthe␈αfurthur␈αexecution␈αof␈αthe␈αinterrupted␈αstep,␈αa␈α"RETURN␈α1"␈αmust␈αbe␈αused␈αto␈αexit␈αfrom
␈↓ ↓p␈βπ6␈↓β<program>.␈α"If␈α⊃<program>␈α⊃is␈α⊃omitted,␈α⊂when␈α⊂a␈α⊂high␈α⊂signal␈α⊂on␈α⊂<channel>␈α⊂is␈α⊂detected,␈α⊂the␈α⊂current
␈↓ ↓p␈βπT␈↓βprogram␈α∩step␈α∩is␈α∩immediately␈α∩aborted␈α∩and␈α∩the␈α∩next␈α∩sequential␈α∩step␈α∩is␈α⊃executed.␈α"The␈α⊃optional
␈↓ ↓p␈βπr␈↓βargument␈α
ALWAYS␈α
and␈α
the␈α
IGNORE␈α
instruction␈α
have␈α
exactly␈α
the␈α
same␈α
effect␈α
on␈α
REACTI␈α
as␈α
they␈α
do␈α
on
␈↓ ↓p␈βλ⊂␈↓βthe␈αREACT␈αinstruction.␈α⊗Only␈αone␈αREACT␈αor␈αREACTI␈αcommand␈αcan␈αbe␈αbe␈αassociated␈αwith␈αany␈αchannel
␈↓ ↓p␈βλ.␈↓βat␈α
any␈α
given␈α
time.
␈↓ ↓H␈βλj␈↓¬SIGOFF <channel>
␈↓ ↓p␈β λ␈↓βTurns␈αoff␈αthe␈αsignal␈αto␈αthe␈αdevice␈αattached␈αto␈αthe␈αspecified␈αoutput␈αchannel.␈α⊗Only␈αpositive␈αvalues␈αof
␈↓ ↓p␈β &␈↓β<channel>␈α
are␈α
permitted.
␈↓ ↓H␈β b␈↓¬WAIT <channel>
␈↓ ↓p␈β
␈↓βThe␈α⊂program␈α⊂is␈α⊂put␈α⊂into␈α⊂a␈α⊂wait␈α∂loop␈α∂until␈α∂the␈α∂proper␈α∂sense␈α∂of␈α∂the␈α∂external␈α∂signal␈α∂specified␈α∂by
␈↓ ↓p␈β
≡␈↓β<channel>␈αis␈αdetected.␈α⊗Positive␈αchannel␈αnumbers␈αindicate␈αwaiting␈αuntil␈αthe␈αexternal␈αsignal␈αgoes␈αtrue
␈↓ ↓p␈β
<␈↓β(high).␈α_Negative␈αchannel␈αnumbers␈αindicate␈αwaiting␈αuntil␈αthe␈αsignal␈αis␈αfalse␈α(low).␈α⊗A␈αsignal␈αwait␈αloop
␈↓ ↓p␈β
Z␈↓βcan␈α
be␈α
aborted␈α
by␈α
using␈α
the␈α
monitor␈α
PROCEED␈α
command.
␈↓ ↓H␈β⊗␈↓¬PAUSE <string>
␈↓ ↓p␈β4␈↓βTerminates␈α∪execution␈α∪of␈α∪a␈α∪user␈α∪program␈α∪and␈α∪types␈α∩the␈α∩message␈α∩<string>.␈α$Execution␈α∩can␈α∩be
␈↓ ↓p␈βR␈↓βcontinued␈α
from␈α
this␈α
point␈α
by␈α
typing␈α
PROCEED.
␈↓ ↓H␈β∞␈↓¬STOP
␈↓ ↓p␈β,␈↓βSame␈α⊂as␈α⊂PAUSE␈α⊂except␈α⊂that␈α∂the␈α∂program␈α∂cannot␈α∂be␈α∂continued␈α∂unless␈α∂more␈α∂program␈α∂loops␈α∂were
␈↓ ↓p␈βJ␈↓βspecified␈α
at␈α
the␈α
time␈α
that␈α
program␈α
execution␈α
was␈α
initiated␈α
(see␈α
EXECUTE␈α
command).
␈↓ β␈β
α␈↓↓USER PROGRAM INSTRUCTIONS: SPECIAL SWITCH STATEMENTS
␈↓ ↓H␈β
D␈↓βThe␈αfollowing␈αinstructions␈αare␈αused␈α
for␈α
enabling␈α
and␈α
disabling␈α
special␈α
features␈α
of␈α
the␈α
hardware␈α
position
␈↓ ↓H␈β
b␈↓βservo␈α
and␈α
the␈α
software␈α
trajectory␈α
generator.␈α~As␈α
indicated␈α
below,␈α
some␈α
of␈α
these␈α
instructions␈α
can␈α
be
␈↓ ↓H␈β∞␈↓βfollowed␈αby␈αthe␈αword␈αALWAYS␈αif␈αit␈αis␈αdesired␈αthat␈αthe␈αrequested␈αoption␈αbe␈αturned␈αoff␈αor␈αon␈αduring␈αall
␈↓ ↓H␈β∞≡␈↓βsuccessive␈α⊂motions.␈α≡Whenever␈α∂a␈α∂switch␈α∂is␈α∂not␈α∂followed␈α∂by␈α∂ALWAYS,␈α∂it␈α∂is␈α∂assumed␈α∂that␈α∂the␈α∂switch
␈↓ ↓H␈β∞<␈↓βsetting␈α
is␈α
only␈α
to␈α
affect␈α
the␈α
next␈α
motion.
␈↓ ↓H␈β∂⊗␈↓¬COARSE [ALWAYS]
␈↓ ↓p␈β∂4␈↓βThe␈α⊃low␈α⊃tolerance␈α⊃feature␈α⊃is␈α⊃enabled␈α⊂in␈α⊂the␈α⊂hardware␈α⊂servo␈α⊂so␈α⊂that␈α⊂larger␈α⊂errors␈α⊂in␈α⊂the␈α⊂final
␈↓ ↓H␈β⎇␈↓↓[12]
␈↓ ↓p␈β↓H␈↓βposition␈αof␈αthe␈αarm␈αjoints␈αwill␈αbe␈αpermitted␈αat␈αthe␈αend␈αof␈αthe␈αnext␈αmotion.␈α⊗This␈αwill␈αresult␈αin␈αmuch
␈↓ ↓p␈β↓f␈↓βfaster␈α
motion␈α
execution␈α
times␈α
if␈α
high␈α
accuracy␈α
is␈α
not␈α
required.
␈↓ ↓H␈βα"␈↓¬FINE [ALWAYS]
␈↓ ↓p␈βα@␈↓βOpposite␈α
of␈α
the␈α
COARSE␈α
instruction.␈α∀This␈α
is␈α
the␈α
default␈α
state␈α
of␈α
the␈α
hardware␈α
servo.
␈↓ ↓H␈βα|␈↓¬NONULL [ALWAYS]
␈↓ ↓p␈ββ~␈↓βThe␈αnext␈αexecuted␈αmotion␈αis␈αterminated␈αwithout␈αwaiting␈αfor␈αthe␈αelectronics␈αto␈αsignal␈αthat␈αall␈αmoving
␈↓ ↓p␈ββ8␈↓βjoints␈αhave␈αreached␈αtheir␈αspecified␈αpositions.␈α⊗Like␈αthe␈α
COARSE␈α
command,␈α
this␈α
mode␈α
results␈α
in␈α
faster
␈↓ ↓p␈ββV␈↓βmotion␈α
times␈α
if␈α
final␈α
position␈α
accuracy␈α
is␈α
not␈α
required.␈α~However,␈α
since␈α
no␈α
position␈α
error␈αchecking
␈↓ ↓p␈ββt␈↓βwhatsoever␈α
is␈α
done,␈α
motion␈α
execution␈α
times␈α
will␈α
be␈α
fixed␈α
and␈α
final␈α
position␈α
errors␈α
can␈α
be␈α
quite␈α
large.
␈↓ ↓H␈β∧0␈↓¬NULL [ALWAYS]
␈↓ ↓p␈β∧N␈↓βOpposite␈α
of␈α
the␈α
NONULL␈α
instruction.␈α∀This␈α
is␈α
the␈α
default␈α
state␈α
of␈α
the␈α
software␈α
control␈α
system.
␈↓ ↓H␈β¬
␈↓¬INTOFF [ALWAYS]
␈↓ ↓p␈β¬(␈↓βTurns␈α∂off␈α∂the␈α∂hardware␈α∂position␈α∞error␈α∞integration␈α∞feature␈α∞during␈α∞the␈α∞next␈α∞motion.␈α≤However,␈α∞the
␈↓ ↓p␈β¬F␈↓βhardware␈α
integration␈α
is␈α
always␈α
enabled␈α
during␈α
the␈α
final␈α
position␈α
error␈α
nulling␈α
period.
␈↓ ↓H␈βεα␈↓¬INTON [ALWAYS]
␈↓ ↓p␈βε ␈↓βForces␈α
the␈α
hardware␈α
to␈α
integrate␈α
the␈α
position␈α
error␈α
throughout␈α
the␈α
next␈α
motion.
␈↓ ↓H␈βε\␈↓¬SPEED <value> [ALWAYS]
␈↓ ↓p␈βεz␈↓βRequests␈αthat␈αthe␈αnext␈αarm␈αmotion␈αbe␈αperformed␈αat␈αa␈αspeed␈αother␈αthan␈αnormal␈α(=100).␈α↔The␈αspeed
␈↓ ↓p␈βπ_␈↓βcan␈α
range␈α
from␈α
.01␈α
(extremely␈α
slow)␈α
to␈α
327.67␈α
(extremely␈α
fast).
␈↓ ↓H␈βπT␈↓¬TOOL <tool#> = [<dX>],[<dY>],[<dZ>],[<rZ>]
␈↓ ↓p␈βπr␈↓βChanges␈α∂the␈α∂current␈α∂arm␈α∂tool␈α∂to␈α∂<tool#>␈α∞and␈α∞optionally␈α∞changes␈α∞the␈α∞dimensions␈α∞of␈α∞<tool#>.␈α≤See
␈↓ ↓p␈βλ⊂␈↓βmonitor␈α
instruction␈α
"TOOL"␈α
for␈α
a␈α
description␈α
of␈α
the␈α
effect␈α
of␈α
this␈α
instruction.
␈↓ β\␈βλf␈↓↓USER PROGRAM INSTRUCTIONS: MISC. STATEMENTS
␈↓ ↓H␈β G␈↓¬REMARK <string>
␈↓ ↓p␈β e␈↓βComment␈α
line,␈α
a␈α
no-operation␈α
at␈α
run-time.
␈↓ ↓H␈β
!␈↓¬TYPE <string>
␈↓ ↓p␈β
?␈↓βTypes␈α
the␈α
message␈α
<string>␈α
on␈α
the␈α
console␈α
terminal.
␈↓ ↓H␈β⎇␈↓↓[13]
␈↓ ¬F␈β↓H␈↓↓EXAMPLE PROGRAM
␈↓ ↓H␈βα)␈↓βWriting␈α
an␈α
example␈α
program␈α
named␈α
DEMO1␈α
to␈α
pick␈α
up␈α
an␈α
item␈α
at␈α
point␈α
PICK␈α
and␈α
place␈α
it␈α
at␈α
point␈α
PLACE.
␈↓ ↓H␈βββ␈↓β.EDIT DEMO1␈↓ ∧XUser types this in to start editing program DEMO1.
␈↓ ↓H␈ββ!␈↓βEDITING DEMO1␈↓ ∧XVAL response
␈↓ ↓H␈ββ]␈↓β1.␈↓ α_OPEN␈↓ ∧XOpen hand during next motion.
␈↓ ↓H␈ββ{␈↓β2.␈↓ α_APPRO PICK, 50␈↓ ∧XApproach to 50 mm away from point PICK.
␈↓ ↓H␈β∧→␈↓β3.␈↓ α_SPEED 30␈↓ ∧XSlow down to 30% speed for next move only.
␈↓ ↓H␈β∧7␈↓β4.␈↓ α_MOVE PICK!␈↓ ∧XMove to point PICK. Current arm position is point PICK.
␈↓ ↓H␈β∧U␈↓β5.␈↓ α_CLOSEI␈↓ ∧XClose hand now, before next motion.
␈↓ ↓H␈β∧s␈↓β6.␈↓ α_DEPART 70␈↓ ∧XMove 70 mm away along hand vector.
␈↓ ↓H␈β¬⊃␈↓β7.␈↓ α_APPROS PLACE,75␈↓ ∧XMove in straight line to 75 mm from point PLACE
␈↓ ↓H␈β¬/␈↓β8.␈↓ α_SPEED 20␈↓ ∧XSlow down to 20% speed for next motion only.
␈↓ ↓H␈β¬M␈↓β9.␈↓ α_MOVES PLACE␈↓ ∧XMove in straight line to point PLACE.
␈↓ ↓H␈β¬k␈↓β10.␈↓ α_OPENI ␈↓ ∧XOpen hand before next motion.
␈↓ ↓H␈βε ␈↓β11.␈↓ α_DEPART 50␈↓ ∧XRetract 50 mm. away from point PLACE.
␈↓ ↓H␈βε'␈↓β12.␈↓ α_E␈↓ ∧XExit from editor, program is completely written.
␈↓ ↓H␈βπ↓␈↓βOne␈α
way␈α
of␈α
entering␈α
the␈α
point␈α
PLACE.
␈↓ ↓H␈βπ=␈↓β.HERE PLACE␈↓ ∧XTyping this tells VAL to make the current position of the arm point PLACE.
␈↓ ↓H␈βλ↔␈↓βX␈↓ αhY␈↓ ∧λZ␈↓ ¬(O␈↓ εHA␈↓ πhT
␈↓ ↓H␈βλS␈↓β300.25␈↓ αh-56.82␈↓ ∧λ105.00␈↓ ¬(58.44␈↓ εH125.30 ␈↓ πh90.00
␈↓ ↓H␈β -␈↓βCHANGES?␈↓ ∧XVAL asks if operator wishes to make any typed in changes.
␈↓ ↓H␈β K␈↓β.␈↓ ∧XA carriage return signifies no changes desired.
␈↓ ↓H␈β
%␈↓βRunning program DEMO1.␈↓ ∧XFirst at 50% speed to see everything is right.
␈↓ ↓H␈β
a␈↓β.Speed 50
␈↓ ↓H␈β
␈␈↓β.EXEC DEMO1,3␈↓ ∧XExecutes DEMO1 3 times at 50% speed.
␈↓ ↓H␈β;␈↓βSTATUS␈↓ ∧XUsing background mode to check status while arm is running.
␈↓ ↓H␈βY␈↓β .
␈↓ ↓H␈βw␈↓β .
␈↓ ↓H␈β∃␈↓β .
␈↓ ↓H␈β3␈↓β .
␈↓ ↓H␈βo␈↓βPROGRAM COMPLETED␈↓ ∧XVAL says its done ...back to monitor mode.
␈↓ ↓H␈β
␈↓β.SPEED 100␈↓ ∧XNow run at 100 % speed.
␈↓ ↓H␈β
+␈↓β.EXEC ,50␈↓ ∧X50 times through DEMO1 at 100% speed.
␈↓ ↓H␈β⎇␈↓↓[14]
␈↓ ∧m␈β↓H␈↓↓SUMMARY OF INSTRUCTION SET
␈↓ ↓H␈βαε␈↓↓Monitor Instructions
␈↓ ↓z␈βαG␈↓¬Base [<dX>],[<dY>],[<Z rotation>]␈↓ ε DIRectory
␈↓ ↓z␈βαe␈↓¬EDit [<program>],[<nstep>]␈↓ ε DPoint [<position1>],...[<position8>]
␈↓ ↓z␈βββ␈↓¬LISTP <program>,[<step1>],[<step2>]␈↓ ε Here <position>
␈↓ ↓z␈ββ!␈↓¬POint <position1> [=<position2>]␈↓ ε LISTT [<position1>],...,[<position8>]
␈↓ ↓z␈ββ?␈↓¬Tool <tool#> = [<dX>],[<dY>],[<dZ>],[<rZ>]␈↓ ε Where
␈↓ ↓z␈ββ{␈↓¬DElete <file>␈↓ ε ERase
␈↓ ↓z␈β∧→␈↓¬FOrmat␈↓ ε LISTF
␈↓ ↓z␈β∧7␈↓¬LOADP <file>␈↓ ε LOADT <file>
␈↓ ↓z␈β∧U␈↓¬STOREP <file>= [<program1>],...,[<program7>]␈↓ ε STORET <file>
␈↓ ↓z␈β¬⊃␈↓¬Abort␈↓ ε CAlib
␈↓ ↓z␈β¬/␈↓¬DISable <switch>␈↓ ε DO <program instruction>
␈↓ ↓z␈β¬M␈↓¬DONe␈↓ ε ENable <switch>
␈↓ ↓z␈β¬k␈↓¬EXec [<program>],[<nloop>],[<step>]␈↓ ε FRee
␈↓ ↓z␈βε ␈↓¬Next [<program>],[<nloop>],[<step>]␈↓ ε PRoceed
␈↓ ↓z␈βε'␈↓¬Retry␈↓ ε SPeed <value>
␈↓ ↓z␈βεE␈↓¬STAtus␈↓ ε Zero
␈↓ ↓H␈βε⎇␈↓↓Edit Instructions
␈↓ ↓z␈βπ>␈↓¬<any program instruction>␈↓ ε <carriage return>
␈↓ ↓z␈βπ\␈↓¬C <program>,[<nstep>]␈↓ ε D [<nstep>]
␈↓ ↓z␈βπz␈↓¬E␈↓ ε I
␈↓ ↓z␈βλ_␈↓¬L␈↓ ε P [<nstep>]
␈↓ ↓z␈βλ6␈↓¬R [<arg#>],[<new value>]␈↓ ε S <step>
␈↓ ↓z␈βλT␈↓¬ ␈↓ ε T
␈↓ ↓H␈βλn␈↓↓User Program Instructions
␈↓ ↓z␈β /␈↓¬APPRO <position>[!], <dist>␈↓ ε APPROS <position>[!], <dist>
␈↓ ↓z␈β M␈↓¬CLOSE <dist>␈↓ ε CLOSEI <dist>
␈↓ ↓z␈β k␈↓¬DELay <duration>␈↓ ε DEPart<distance>
␈↓ ↓z␈β
␈↓¬DRAw [<dX>],[<dY>],[<dZ>]␈↓ ε DRIve <jt>,<angle>,<time>
␈↓ ↓z␈β
'␈↓¬GO <position> [!]␈↓ ε GRasp <distance>,[<label>]
␈↓ ↓z␈β
E␈↓¬MOVE <position> [!]␈↓ ε MOVEI [<jt1>],[<jt2>],[<jt3>],[<jt4>],[<jt5>],[<jt6>],[<hand>],[<speed>]
␈↓ ↓z␈β
c␈↓¬MOVES <position> [!]␈↓ ε OPEN <dist>
␈↓ ↓z␈β↓␈↓¬OPENI <dist>␈↓ ε REAdy
␈↓ ↓z␈β=␈↓¬ABove␈↓ ε BElow
␈↓ ↓z␈β[␈↓¬FLip␈↓ ε LEfty
␈↓ ↓z␈βy␈↓¬NOFlip␈↓ ε RIghty
␈↓ ↓z␈β5␈↓¬GOSub <prog>␈↓ ε GOTo <label>
␈↓ ↓z␈βS␈↓¬Here <position>␈↓ ε IF <i.var1> <relationship> <i.var2> THEN <label>
␈↓ ↓z␈βq␈↓¬IGnore <chan> [ALways]␈↓ ε IFSig <chan>[,<chan>][,<chan>][,<chan>] THEN <label>
␈↓ ↓z␈β
∂␈↓¬PAuse <string>␈↓ ε REACT <chan> [,<prog>] [ALWAYS]
␈↓ ↓z␈β
-␈↓¬REACTI <chan> [,<prog>] [ALWAYS]␈↓ ε RETurn <skip count>
␈↓ ↓z␈β
K␈↓¬SET <trans1> = <trans2>␈↓ ε SETI <i.var1> = <i.var2> [<operation> <i.var3>]
␈↓ ↓z␈β
i␈↓¬SHift <trans> BY [<dx>],[<dy>],[<dz>]␈↓ ε SIGON <channel>
␈↓ ↓z␈β∞π␈↓¬SIGOFF <channel>␈↓ ε STop
␈↓ ↓z␈β∞%␈↓¬TYPEI <i.var>␈↓ ε Wait <channel>
␈↓ ↓z␈β∞a␈↓¬COarse [ALWAYS]␈↓ ε Fine [ALWAYS]
␈↓ ↓z␈β∞␈␈↓¬INTOFf [ALWAYS]␈↓ ε INTON [ALWAYS]
␈↓ ↓z␈β∂≥␈↓¬NONull [ALWAYS] !col2;NUll [ALWAYS]
␈↓ ↓z␈β∂;␈↓¬SPeed <value> [ALWAYS]␈↓ ε TOol <tool#> = [<dX>],[<dY>],[<dZ>],[<rZ>]
␈↓ ↓H␈β⎇␈↓↓[15]
␈↓ ↓z␈β↓f␈↓¬REMark <string>␈↓ ε TYPE <string>
␈↓ ↓H␈β⎇␈↓↓[16]