perm filename PROP.XGP[1,VDS] blob sn#302106 filedate 1977-08-14 generic text, type T, neo UTF8
/FONT#0=NGR25/FONT#1=BDR30/FONT#2=SIGN57/FONT#4=NGR20/TMAR=200/PMAR=1992/BMAR=2
␈↓␈↓↓␈↓α␈↓␈↓∧␈↓ α,␈β↓H␈↓∧ 
␈↓ F␈β⎇␈↓↓[1]
␈↓ ∧a␈β↓H␈↓↓COMPUTER SOFTWARE AND TEACH BOX
␈↓ α,␈βα	␈↓The␈α↔computer␈α⊗is␈α⊗responsible␈α⊗for␈α⊗both␈α⊗the␈α⊗execution␈α⊗of␈α⊗motion␈α⊗programs␈α⊗and␈α⊗for␈α⊗the
␈↓ α,␈βα'␈↓interpretation␈αand␈αexecution␈αof␈αthe␈αfunctions␈αcontained␈αon␈αthe␈αteach␈αbox.␈α⊗From␈αthe␈αstandpoint
␈↓ α,␈βαE␈↓of␈α⊃the␈α⊃software␈α⊃trajectory␈α⊃generator,␈α⊃motion␈α⊃commands␈α⊃can␈α⊃either␈α⊃emanate␈α⊂from␈α⊂a␈α⊂motion
␈↓ α,␈βαc␈↓program␈α∃or␈α∃the␈α∃manual␈α∃teach␈α∀box.␈α(However,␈α∀these␈α∀two␈α∀modes␈α∀are␈α∀mutually␈α∀exclusive.
␈↓ α,␈ββ↓␈↓Therefore,␈αinitiating␈αthe␈αexecution␈αof␈αa␈αprogram␈αautomatically␈αdisables␈αthe␈αmotion␈αfunctions␈αon
␈↓ α,␈ββ∨␈↓the␈αmanual␈αcontrol␈αbox.␈α_At␈αall␈αother␈αtimes,␈αso␈αlong␈αas␈αthe␈αcomputer␈αis␈αproperly␈αinitialized,␈αthe
␈↓ α,␈ββ=␈↓teach␈α
box␈α
can␈α
be␈α
used␈α
for␈α
moving␈α
the␈α
arm.
␈↓ ¬≤␈ββu␈↓↓OPERATION OF THE TEACH BOX
␈↓ α,␈β∧6␈↓Using␈α∪only␈α∪the␈α∪manual␈α∪control␈α∪teach␈α∩box,␈α∩it␈α∩is␈α∩possible␈α∩to␈α∩move␈α∩the␈α∩arm␈α∩in␈α∩either␈α∩joint
␈↓ α,␈β∧T␈↓coordinates,␈α
world␈α
(␈α
cartesian␈α
)␈α
coordinates,␈α
or␈α
hand␈α
coordinates.␈α_In␈αaddition,␈αthe␈αcontrol␈αbox
␈↓ α,␈β∧r␈↓allows␈α∞the␈α∞specification␈α
of␈α
a␈α
number␈α
of␈α
different␈α
speeds␈α
ranging␈α
from␈α
an␈α
incremental␈α
step␈α
of
␈↓ α,␈β¬⊂␈↓one␈αresolution␈αelement␈αper␈αbutton␈αdepression␈αto␈αa␈αcontinuous␈αvelocity␈αcapable␈αof␈αmoving␈αeach
␈↓ α,␈β¬.␈↓joint␈α
from␈α
stop␈α
to␈α
stop␈α
in␈α
a␈α
matter␈α
of␈α
seconds.␈α~The␈α
teach␈α
box␈α
also␈α
permits␈α
the␈α
recording␈αof
␈↓ α,␈β¬L␈↓positions␈α
or␈α
sequences␈α
of␈α
motions␈α
to␈α
positions.␈α~As␈α
a␈α
safety␈α
precaution,␈α
a␈α
button␈α
is␈α
provided
␈↓ α,␈β¬j␈↓which␈α
can␈α
be␈α
used␈α
to␈α
bring␈α
the␈α
arm␈α
to␈α
an␈αimmediate␈αstop.␈α_Finally,␈αusing␈αthe␈αcontrol␈αbox,␈αthe
␈↓ α,␈βελ␈↓brakes␈αon␈αindividual␈αjoints␈αcan␈αbe␈αreleased,␈αallowing␈αthe␈αmanipulator␈αto␈αbe␈αtaught␈αpositions␈αby
␈↓ α,␈βε&␈↓physically␈α
moving␈α
it␈α
by␈α
hand␈α
from␈α
point␈α
to␈α
point.
␈↓ α,␈βεb␈↓The␈α∩teach␈α∩box␈α∩operations␈α∩are␈α∩controlled␈α∩by␈α∩five␈α∩different␈α⊃sets␈α⊃of␈α⊃buttons:␈α"mode␈α⊃select,
␈↓ α,␈βπ␈↓joint/cartesian␈α∂component␈α∂select,␈α∂speed␈α∂select,␈α∂position␈α∂record,␈α∂and␈α∂panic.␈α≥The␈α∞mode␈α∞select
␈↓ α,␈βπ≡␈↓buttons␈α∞are␈α∞used␈α∞to␈α∞specify␈α∞the␈α∞type␈α∞of␈α
motion␈α
control␈α
that␈α
is␈α
to␈α
be␈α
used:␈α
joint␈α
coordinates,
␈↓ α,␈βπ<␈↓world␈α
coordinates,␈α
hand␈α
coordinates,␈α
or␈α
free␈α
motion.␈α∀If␈α
joint␈α
coordinate␈α
control␈α
is␈α
selected,␈α
then
␈↓ α,␈βπZ␈↓five␈αof␈αthe␈αsix␈αjoint/cartesian␈αcomponent␈αselect␈αbuttons␈αare␈αused␈αfor␈αcontrolling␈αthe␈αspeeds␈αof
␈↓ α,␈βπx␈↓the␈α
individual␈αjoints.␈α_While␈αif␈αworld␈αor␈αhand␈αcoordinate␈αcontrol␈αis␈αselected,␈αthe␈αjoint/cartesian
␈↓ α,␈βλ⊗␈↓component␈αbuttons␈αare␈αused␈αfor␈αspecifying␈αstraight␈αline␈αmotions␈αalong␈αand␈αrotations␈αabout␈αthe
␈↓ α,␈βλ4␈↓X,␈αY,␈αand␈αZ␈αaxes␈αof␈αthe␈αapplicable␈αcoordinate␈αsystem.␈α⊗Finally,␈αif␈αthe␈αfree␈αmode␈αis␈αselected,␈αfive
␈↓ α,␈βλR␈↓of␈α∞the␈α∞joint/cartesian␈α∞component␈α∞buttons␈α∞are␈α∞used␈α∞to␈α∞set␈α
and␈α
release␈α
the␈α
manipulator's␈α
joint
␈↓ α,␈βλp␈↓servos␈αor␈αbrakes␈α(joints␈α1␈αto␈α3␈αonly)␈αto␈αallow␈αthe␈αarm␈αto␈αbe␈αmanually␈αrepositioned.␈α_In␈αany␈αof
␈↓ α,␈β	∞␈↓the␈α
first␈α
three␈α
motion␈α
control␈α
modes,␈αadditional␈αswitches␈αhave␈αbeen␈αprovided␈αfor␈αspecifying␈αif
␈↓ α,␈β	,␈↓motions␈α⊂are␈α⊂to␈α⊂be␈α⊂incremental␈α⊂or␈α⊂continuous␈α⊂and␈α⊂for␈α⊂selecting␈α∂the␈α∂size␈α∂of␈α∂the␈α∂step␈α∂or␈α∂the
␈↓ α,␈β	J␈↓magnitude␈αof␈αthe␈αspeed␈αwith␈αwhich␈αto␈αmove.␈α_The␈αremaining␈αtwo␈αbuttons␈αon␈αthe␈αteach␈αbox␈αare
␈↓ α,␈β	h␈↓for␈α∩position␈α∩recording␈α∩and␈α∩panic␈α∩error␈α∩stop.␈α$The␈α∩function␈α∩of␈α∩the␈α⊃position␈α⊃record␈α⊃button
␈↓ α,␈β
ε␈↓depends␈α∩upon␈α∩the␈α∩state␈α∩of␈α∩the␈α⊃computer␈α⊃and␈α⊃will␈α⊃be␈α⊃described␈α⊃in␈α⊃detail␈α⊃in␈α⊃the␈α⊃following
␈↓ α,␈β
$␈↓sections␈α∂on␈α∂"Defining␈α∂Positions"␈α∂and␈α∂"Creating␈α∂Programs".␈α≤The␈α∞Panic␈α∞Button␈α∞can␈α∞be␈α∞used␈α∞to
␈↓ α,␈β
B␈↓immediately␈αstop␈αthe␈αmotion␈αof␈αthe␈αmanipulator␈αwhether␈αthe␈αarm␈αis␈αmoving␈αunder␈αteach␈αbox␈αor
␈↓ α,␈β
`␈↓program␈α
control.
␈↓ ¬t␈βT␈↓↓DEFINING POSITIONS
␈↓ α,␈β∃␈↓The␈αposition␈αand␈αorientation␈αof␈αthe␈αmanipulator,␈αwhich␈αwill␈αbe␈αcalled␈αthe␈αmanipulator's␈αposition,
␈↓ α,␈β3␈↓can␈α
be␈α
stored␈α
within␈α
the␈α
computer␈α
using␈α
either␈α
a␈α
transformation␈α
or␈α
a␈α
precision␈α
point.
␈↓ α,␈βo␈↓A␈α⊂transformation␈α⊂is␈α⊂a␈α⊂cartesian␈α⊂description␈α⊂of␈α⊂the␈α⊂position␈α⊂of␈α⊂the␈α⊂manipulator's␈α∂hand.␈α≡The
␈↓ α,␈β

␈↓hand's␈α
X,␈α
Y,␈α
Z␈α
location␈α
is␈α
stored␈α
as␈α
a␈α
vector␈α
and␈α
its␈α
orientation␈α
is␈α
stored␈α
as␈α
a␈α
3␈α
by␈α3␈αmatrix.
␈↓ α,␈β
+␈↓This␈α∀representation␈α∀is␈α∀advantageous␈α∀where␈α∀relative␈α∀translations␈α∪and␈α∪rotations␈α∪are␈α∪to␈α∪be
␈↓ α,␈β
I␈↓performed.␈α_Furthermore,␈αbecause␈αtransformations␈αonly␈αrefer␈αto␈αthe␈αposition␈αof␈αthe␈αhand,␈αthey
␈↓ α,␈β
g␈↓are␈α
independent␈α
of␈α
the␈α
geometry␈α
of␈αthe␈αmanipulator.␈α_However,␈αwhere␈αhigh␈αprecision␈αposition
␈↓ α,␈β∞¬␈↓recording␈α⊃and␈α⊃playback␈α⊃are␈α⊃required,␈α⊃transformations␈α⊃are␈α⊃somewhat␈α⊃inaccurate␈α⊃due␈α⊃to␈α⊃the
␈↓ α,␈β∞#␈↓complexity␈α∪of␈α∪the␈α∪computations␈α∪necessary␈α∪to␈α∪convert␈α∩between␈α∩joint␈α∩angles␈α∩and␈α∩cartesian
␈↓ α,␈β∞A␈↓coordinates.
␈↓ α,␈β∞⎇␈↓If␈α⊂high␈α⊂precision␈α⊂is␈α⊂required,␈α⊂the␈α⊂manipulator's␈α⊂position␈α⊂can␈α∂be␈α∂stored␈α∂as␈α∂a␈α∂precision␈α∂point.
␈↓ α,␈β∂≠␈↓Precision␈α∂points␈α∂save␈α∂the␈α∂five␈α∂joint␈α∂angles␈α∂of␈α∂the␈α∂manipulator␈α∂and␈α∂are␈α∂therefore␈α∞capable␈α∞of
␈↓ F␈β⎇␈↓↓[2]
␈↓ α,␈β↓H␈↓achieving␈α∪full␈α∪precision␈α∪playback.␈α&For␈α∪most␈α∪instructions␈α∩requiring␈α∩a␈α∩manipulator␈α∩position,
␈↓ α,␈β↓f␈↓precision␈α
points␈α
and␈α
transformations␈α
can␈α
be␈α
used␈α
interchangeably.
␈↓ α,␈βα"␈↓The␈α∞names␈α∞of␈α∞both␈α∞precision␈α∞points␈α∞and␈α∞transformations␈α∞consist␈α∞of␈α
a␈α
string␈α
of␈α
six␈α
characters
␈↓ α,␈βα@␈↓starting␈α
with␈α
a␈α
letter␈α
and␈αfollowed␈αby␈αany␈αsequence␈αof␈αletters␈αand␈αnumbers.␈α_Precision␈αpoints
␈↓ α,␈βα↑␈↓and␈α∞transformations␈α∞are␈α∞distinguished␈α∞by␈α
the␈α
fact␈α
that␈α
precision␈α
point␈α
names␈α
must␈α
always␈α
be
␈↓ α,␈βα|␈↓preceded␈αby␈αthe␈αsymbol␈α"#".␈α_The␈αnumber␈αof␈αprecision␈αpoints␈αand␈αtransformations␈αthat␈αcan␈αbe
␈↓ α,␈ββ~␈↓stored␈α⊂in␈α⊂the␈α⊂computer␈α⊂is␈α⊂only␈α⊂limited␈α⊂by␈α⊂the␈α⊂size␈α⊂of␈α⊂the␈α⊂computer␈α⊂memory.␈α∂The␈α∂standard
␈↓ α,␈ββ8␈↓memory␈α
will␈α
store␈α
at␈α
least␈α
128␈α
precision␈α
points␈α
or␈α
transforms.
␈↓ α,␈ββt␈↓There␈α∩are␈α∩several␈α⊃commands␈α⊃that␈α⊃can␈α⊃be␈α⊃used␈α⊃for␈α⊃defining␈α⊃positions␈α⊃and␈α⊃determining␈α⊃the
␈↓ α,␈β∧∩␈↓current␈α
location␈α
of␈α
the␈α
arm.
␈↓ β⊂␈β∧N␈↓POINT␈α
position␈α
-␈α
Used␈α
to␈α
specify␈α
and␈α
modify␈α
the␈α
value␈α
of␈α
the␈α
position.␈α~If␈αthe
␈↓ β⊂␈β∧l␈↓position␈α
is␈α
a␈α
transformation,␈α
its␈α
current␈α
value␈α
is␈α
printed␈α
as␈α
an␈α
X,␈α
Y,␈α
Z␈αlocation
␈↓ β⊂␈β¬
␈↓followed␈α∞by␈α∞three␈α∞Euler␈α∞angles␈α
which␈α
specify␈α
orientation.␈α~If␈α
the␈α
position␈α
is␈α
a
␈↓ β⊂␈β¬(␈↓precision␈αpoint,␈αthe␈αfive␈αjoint␈αangles␈αare␈α
displayed.␈α∀In␈α
either␈α
case,␈α
the␈α
operator
␈↓ β⊂␈β¬F␈↓is␈α∂repeatedly␈α∂asked␈α∂for␈α∂changes␈α∂to␈α∂the␈α∂position␈α∂components␈α∂until␈α∂no␈α∞further
␈↓ β⊂␈β¬d␈↓changes␈α
are␈α
to␈α
be␈α
made.
␈↓ β⊂␈βε ␈↓HERE␈α
position␈α
-␈α
Sets␈α
the␈α
position␈α
value␈α
equal␈αto␈αthe␈αcurrent␈αarm␈αposition.␈α_As
␈↓ β⊂␈βε>␈↓with␈α
POINT,␈α
post␈α
modification␈α
of␈α
the␈α
position␈α
is␈α
permitted.
␈↓ β⊂␈βεz␈↓TEACH␈αposition␈α-␈αEach␈αtime␈αthat␈αthe␈αTEACH␈αbutton␈αon␈α
the␈α
teach␈α
box␈α
is␈α
pressed,
␈↓ β⊂␈βπ_␈↓the␈α→current␈α→manipulator␈α→position␈α→is␈α→determined␈α_and␈α_saved␈α_either␈α_as␈α_a
␈↓ β⊂␈βπ6␈↓transformation␈α
or␈α
a␈α
precision␈α
point␈α
depending␈α
upon␈α
the␈α
type␈αof␈αthe␈α"position"
␈↓ β⊂␈βπT␈↓argument␈α∞specified.␈α≤In␈α∞this␈α∞case,␈α∞the␈α∞position␈α
name␈α
must␈α
end␈α
in␈α
one␈α
or␈α
more
␈↓ β⊂␈βπr␈↓numbers.␈α⊗For␈αinstance:␈αC1,␈αTX25,␈αPIN007,␈αand␈αBOX10␈αare␈αall␈αlegal␈αnames.␈α∀Each
␈↓ β⊂␈βλ⊂␈↓successive␈α∞recorded␈α∞position␈α∞will␈α∞be␈α∞assigned␈α∞the␈α∞name␈α∞with␈α
the␈α
next␈α
largest
␈↓ β⊂␈βλ.␈↓number.␈α_For␈αour␈αexamples,␈αthe␈αsecond␈αpositions␈αwould␈αbe␈αassigned␈αthe␈αnames:
␈↓ β⊂␈βλL␈↓C2,␈αTX26,␈αPIN008,␈αand␈αBOX11.␈α⊗This␈αmode␈αis␈αterminated␈αby␈αtyping␈αa␈αRETURN␈αon
␈↓ β⊂␈βλj␈↓the␈α
terminal␈α
keyboard.
␈↓ β⊂␈β	&␈↓WHERE␈α∞-␈α∞Prints␈α∞out␈α∞the␈α∞current␈α∞X,␈α
Y,␈α
Z␈α
location␈α
of␈α
the␈α
arm␈α
together␈α
with␈α
the
␈↓ β⊂␈β	D␈↓Euler␈α
and␈α
joint␈α
angles␈α
and␈α
the␈α
current␈α
hand␈α
opening.
␈↓ ¬¬␈β
~␈↓↓CREATING AND EDITING PROGRAMS
␈↓ α,␈β
[␈↓Distinct␈α∂sequences␈α∂of␈α∂instructions␈α∂to␈α∂be␈α∂executed␈α∂are␈α∞stored␈α∞as␈α∞motion␈α∞programs␈α∞within␈α∞the
␈↓ α,␈β
y␈↓computer.␈α#The␈α⊃number␈α⊃of␈α⊃programs␈α⊃that␈α⊃can␈α⊃be␈α⊃saved␈α⊃is␈α⊃limited␈α⊃only␈α⊃by␈α⊃the␈α⊃amount␈α⊃of
␈↓ α,␈β↔␈↓computer␈α∩memory␈α∩available.␈α"Programs␈α⊃are␈α⊃refered␈α⊃to␈α⊃by␈α⊃six␈α⊃character␈α⊃names␈α⊃which,␈α⊃like
␈↓ α,␈β5␈↓transformations,␈α
must␈αbegin␈αwith␈αa␈αletter␈αand␈αcan␈αbe␈αfollowed␈αby␈αany␈αsequence␈αof␈αletters␈αand
␈↓ α,␈βS␈↓numbers.
␈↓ α,␈β∂␈↓Programs␈α⊃can␈α⊃be␈α⊃developed␈α⊃off-line␈α⊃ON␈α⊃ANY␈α⊃COMPUTER␈α⊃capable␈α⊃of␈α⊃generating␈α⊂ASC-II␈α⊂text
␈↓ α,␈β-␈↓strings␈α⊂or␈α⊂they␈α∂can␈α∂be␈α∂developed␈α∂using␈α∂the␈α∂program␈α∂editing␈α∂routines␈α∂which␈α∂are␈α∂a␈α∂standard
␈↓ α,␈βK␈↓feature␈α⊃of␈α⊃this␈α⊃language.␈α"These␈α⊃editing␈α⊃routines␈α⊃can␈α⊃be␈α⊂used␈α⊂for␈α⊂both␈α⊂modifying␈α⊂existing
␈↓ α,␈βi␈↓programs␈αand␈αcreating␈αnew␈αprograms.␈α⊗The␈αcommand␈αto␈αbegin␈αediting␈αa␈αprogram␈αat␈α
a␈α
particular
␈↓ α,␈β
π␈↓step␈α
number␈α
is
␈↓ ¬↑␈β
C␈↓EDIT program, step number
␈↓ α,␈β
␈␈↓If␈α
no␈α
step␈α
number␈α
is␈α
specified,␈α
editing␈α
proceeds␈α
from␈α
the␈α
step␈α
where␈α
the␈α
last␈α
editing␈αsession
␈↓ α,␈β∞≥␈↓was␈α
terminated␈α
-␈α
1.␈α∀If␈α
no␈α
program␈α
is␈α
specified,␈α
the␈α
last␈α
program␈α
edited␈α
is␈α
re-opened.
␈↓ α,␈β∞Y␈↓Once␈α⊂the␈α∂EDIT␈α∂routine␈α∂has␈α∂been␈α∂initiated,␈α∂the␈α∂programmer␈α∂can␈α∂examine␈α∂any␈α∂step␈α∂within␈α∂the
␈↓ α,␈β∞w␈↓program,␈α⊂delete␈α∂instructions␈α∂or␈α∂insert␈α∂new␈α∂ones,␈α∂and␈α∂even␈α∂add␈α∂new␈α∂motion␈α∂steps␈α∂using␈α∂the
␈↓ α,␈β∂∃␈↓teach␈α∩box.␈α$The␈α∩teach␈α∩box␈α⊃EDIT␈α⊃mode␈α⊃functions␈α⊃in␈α⊃much␈α⊃the␈α⊃same␈α⊃fashion␈α⊃as␈α⊃the␈α⊃TEACH
␈↓ α,␈β∂3␈↓command␈α
used␈α
for␈α
memorizing␈α
positions.␈α∀However,␈α
each␈α
time␈α
the␈α
TEACH␈α
button␈α
is␈α
depressed␈α
on
␈↓ F␈β⎇␈↓↓[3]
␈↓ α,␈β↓H␈↓the␈α∂teach␈α∂box,␈α∂both␈α∂a␈α∂position␈α∂is␈α∂recorded␈α∂and␈α∂a␈α∂new␈α∂program␈α∂instruction␈α∂is␈α∂generated␈α∞for
␈↓ α,␈β↓f␈↓specifying␈α
a␈α
motion␈α
to␈α
go␈α
to␈α
that␈α
position.
␈↓ α,␈βα"␈↓Each␈αprogram␈αinstruction␈αis␈αreferred␈αto␈αby␈αa␈αunique␈α
step␈α
number.␈α∀Step␈α
numbers␈α
are␈α
numbered
␈↓ α,␈βα@␈↓consecutively␈αand␈αare␈αautomatically␈αadjusted␈αwhenever␈αinstructions␈αare␈αinserted␈αor␈αdeleted.␈α⊗A
␈↓ α,␈βα↑␈↓typical␈α
sequence␈α
of␈α
program␈α
steps␈α
will␈α
be␈α
displayed␈α
as␈α
follows:
␈↓ ε␈ββ~␈↓ ␈↓ ε\   :
␈↓ ¬<␈ββ8␈↓ 9.         MOVE POINT1
␈↓ ¬<␈ββV␈↓10.   201 MOVE POINT2
␈↓ ε\␈ββt␈↓   :
␈↓ α,␈β∧0␈↓In␈α
this␈α
example,␈α
steps␈α
9␈α
and␈α10␈αare␈αboth␈αmotion␈αcommands␈αand␈αstep␈α10␈αcontains␈αa␈αlabel,␈α201,
␈↓ α,␈β∧N␈↓which␈α∞can␈α∞be␈α∞used␈α∞for␈α∞program␈α
branching.␈α~Instruction␈α
labels␈α
are␈α
integer␈α
numbers␈α
which␈α
can
␈↓ α,␈β∧l␈↓assume␈α
values␈α
in␈α
the␈α
range␈α
from␈α
0␈α
to␈α
32767.
␈↓ ¬~␈β¬`␈↓↓INPUT AND OUTPUT COMMANDS
␈↓ α,␈βε!␈↓The␈α∪following␈α∪commands␈α∪are␈α∪used␈α∪for␈α∪writing␈α∪and␈α∪reading␈α∪hard␈α∪copies␈α∪of␈α∪programs␈α∩and
␈↓ α,␈βε?␈↓positions.␈α≤All␈α∞input␈α∞and␈α∞output␈α∞is␈α∞directed␈α∞to␈α∞either␈α∞the␈α∞console␈α∞terminal␈α∞or␈α∞to␈α∞the␈α∞cassette
␈↓ α,␈βε]␈↓magnetic␈α∂tape␈α∂peripheral.␈α≡As␈α∂an␈α∂option,␈α∂it␈α∂is␈α∂possible␈α∂to␈α∞connect␈α∞the␈α∞manipulator␈α∞computer
␈↓ α,␈βε{␈↓directly␈α⊃to␈α⊃another␈α⊂computer␈α⊂and␈α⊂perform␈α⊂inter-computer␈α⊂data␈α⊂transfers␈α⊂to␈α⊂load␈α⊂and␈α⊂store
␈↓ α,␈βπ→␈↓programs␈α
and␈α
positions.
␈↓ β⊂␈βπU␈↓LISTT␈αp1,....,p8␈α-␈αTypes␈αout␈αthe␈αvalues␈αof␈αup␈αto␈αeight␈αdifferent␈αpositions␈αon␈αthe
␈↓ β⊂␈βπs␈↓console␈α
terminal.␈α~If␈α
no␈α
position␈α
names␈α
are␈α
specified,␈αthe␈αvalues␈αof␈αall␈αexisting
␈↓ β⊂␈βλ⊃␈↓positions␈α
will␈α
be␈α
printed.
␈↓ β⊂␈βλM␈↓STORET␈α⊂p1,...,p8␈α⊂-␈α⊂Writes␈α⊂the␈α⊂values␈α⊂of␈α⊂up␈α⊂to␈α⊂eight␈α⊂different␈α∂positions␈α∂onto
␈↓ β⊂␈βλk␈↓cassette␈α
magnetic␈α
tape.␈α_As␈αwith␈αLISTT,␈αif␈αno␈αpositions␈αnames␈αare␈αspecified,␈αall
␈↓ β⊂␈β		␈↓positions␈α
will␈α
be␈α
written␈α
out.
␈↓ β⊂␈β	E␈↓LOADT␈α
-␈α
Reads␈α
in␈α
the␈α
positions␈α
stored␈α
on␈α
cassette␈α
magnetic␈α
tape.
␈↓ β⊂␈β
↓␈↓LISTP␈α∞program,␈α∞s1,␈α∞s2␈α∞-␈α∞Types␈α∞out␈α∞the␈α∞user␈α∞motion␈α∞program␈α∞from␈α
step␈α
s1␈α
to
␈↓ β⊂␈β
∨␈↓step␈α
s2.␈α∀If␈α
the␈α
step␈α
numbers␈α
are␈α
omitted␈α
the␈α
entire␈α
program␈α
will␈α
be␈α
printed.
␈↓ β⊂␈β
[␈↓STOREP␈α
program␈α
-␈α
Writes␈α
the␈α
entire␈α
program␈α
on␈α
cassette␈α
magnetic␈α
tape.
␈↓ β⊂␈β↔␈↓LOADP␈α
-␈α
Reads␈α
in␈α
a␈α
program␈α
from␈α
cassette␈α
magnetic␈α
tape.
␈↓ β⊂␈βS␈↓PROGS␈α
-␈α
Prints␈α
out␈α
the␈α
names␈α
of␈αall␈αprograms␈αthat␈αhave␈αat␈αleast␈αone␈αprogram
␈↓ β⊂␈βq␈↓step␈α
defined.
␈↓ ¬z␈βe␈↓↓COMPUTER STATUS
␈↓ α,␈β
&␈↓There␈α∂are␈α∂a␈α∂number␈α∂of␈α∂commands␈α∞which␈α∞can␈α∞be␈α∞used␈α∞to␈α∞determine␈α∞the␈α∞current␈α∞state␈α∞of␈α∞the
␈↓ α,␈β
D␈↓manipulator␈α∞computer␈α∞and␈α∞to␈α∞initialize␈α∞and␈α∞terminate␈α∞execution.␈α≤These␈α∞commands␈α∞are␈α
briefly
␈↓ α,␈β
b␈↓summarized␈α
below.
␈↓ β⊂␈β∞≡␈↓CLEAR␈α⊃-␈α⊃Re-initializes␈α⊃ARM␈α⊃program␈α⊂so␈α⊂that␈α⊂all␈α⊂positions␈α⊂and␈α⊂programs␈α⊂are
␈↓ β⊂␈β∞<␈↓deleted.␈α≠This␈α
is␈α
a␈α
totally␈α
destructive␈α
operation.␈α~This␈α
function␈α
first␈α
asks␈α
"Are
␈↓ β⊂␈β∞Z␈↓you␈α
sure␈α
(Y,N)?"␈α
to␈α
verify␈α
that␈α
the␈α
operation␈α
is␈α
to␈α
be␈α
performed.
␈↓ β⊂␈β∂⊗␈↓FREE␈α
-␈α
Types␈α
the␈αpercentage␈αof␈αfree␈αstorage␈αthat␈αis␈αnot␈αcurrently␈αin␈αuse.␈α_As
␈↓ β⊂␈β∂4␈↓the␈αavailable␈αfree␈αstorage␈αarea␈αis␈αbeing␈αadded␈αup,␈αa␈αsimple␈αcheck␈αof␈αthe␈αwhole
␈↓ F␈β⎇␈↓↓[4]
␈↓ β⊂␈β↓H␈↓area␈α
is␈α
made␈α
to␈α
ensure␈α
that␈α
the␈α
free␈α
storage␈α
book-keeping␈α
tags␈α
are␈α
consistent.
␈↓ β⊂␈βα∧␈↓STATUS␈α∞-␈α∞Prints␈α∞the␈α∞status␈α∞information␈α∞of␈α∞the␈α∞program␈α
being␈α
executed.␈α~This
␈↓ β⊂␈βα"␈↓includes␈α∞data␈α∞on␈α∞the␈α
program␈α
or␈α
subroutine␈α
step␈α
which␈α
will␈α
be␈α
executed␈α
next
␈↓ β⊂␈βα@␈↓and␈α⊂the␈α⊂number␈α∂of␈α∂program␈α∂EXEC␈α∂loops␈α∂completed␈α∂and␈α∂those␈α∂still␈α∂remaining.
␈↓ β⊂␈βα↑␈↓Note␈αthat␈αif␈αthe␈αprogram␈αis␈αin␈α
an␈α
infinite␈α
EXEC␈α
loop,␈α
i.e.␈α∀nloop␈α
<␈α
0,␈α
the␈α
print␈α
out
␈↓ β⊂␈βα|␈↓of␈αthe␈αnumber␈αof␈αloops␈αcompleted␈αcan␈αbe␈αoff␈αby␈α32767*n␈αcounts␈α(␈αn␈α=1,2,..,∞␈α),
␈↓ β⊂␈ββ~␈↓since␈α
the␈α
loop␈α
counter␈α
is␈α
permitted␈α
to␈α
overflow.
␈↓ β⊂␈ββV␈↓DONE␈α∂-␈α∂Monitor␈α∂program␈α∂stops,␈α∂computer␈α∂exits␈α∂to␈α∂ODT.␈α∂The␈α∂program␈α∂can␈α∂be
␈↓ β⊂␈ββt␈↓restarted␈α
by␈α
starting␈α
execution␈α
at␈α
location␈α
'20000.
␈↓ ¬g␈β∧h␈↓↓EXECUTION CONTROL
␈↓ α,␈β¬)␈↓Once␈α⊂a␈α⊂program␈α⊂has␈α⊂been␈α⊂written␈α⊂and␈α⊂all␈α⊂of␈α⊂the␈α⊂required␈α∂manipulator␈α∂positions␈α∂have␈α∂been
␈↓ α,␈β¬G␈↓defined,␈α∂the␈α∂following␈α∂commands␈α∂can␈α∂be␈α∂used␈α∞for␈α∞executing␈α∞and␈α∞single␈α∞stepping␈α∞through␈α∞the
␈↓ α,␈β¬e␈↓program.
␈↓ β⊂␈βε!␈↓EXEC␈α∞program,␈α∞nloop,␈α∞step␈α
-␈α
Executes␈α
the␈α
motion␈α
program,␈α
"nloop"␈α
number␈α
of
␈↓ β⊂␈βε?␈↓times.␈α≤The␈α∞value␈α∞of␈α∞nloop␈α∞can␈α∞be␈α∞between␈α∞32767␈α∞and␈α∞-32768.␈α~All␈α
negative
␈↓ β⊂␈βε]␈↓values␈α∩of␈α∩nloop␈α∩put␈α⊃the␈α⊃program␈α⊃into␈α⊃a␈α⊃infinite␈α⊃looping␈α⊃mode.␈α"If␈α⊃nloop␈α⊃is
␈↓ β⊂␈βε{␈↓omitted␈αor␈αassigned␈αa␈αzero␈α
value,␈α
the␈α
program␈α
will␈α
be␈α
executed␈α
one␈α
time.␈α∀If␈α
the
␈↓ β⊂␈βπ→␈↓program␈α⊃name␈α⊃is␈α⊃omitted,␈α⊃the␈α⊃last␈α⊃program␈α⊃executed␈α⊃will␈α⊂be␈α⊂re-started.␈α If
␈↓ β⊂␈βπ7␈↓"step"␈α∞is␈α∞specified,␈α
the␈α
motion␈α
program␈α
begins␈α
execution␈α
at␈α
specified␈α
program
␈↓ β⊂␈βπU␈↓step␈α
for␈αthe␈αfirst␈αpass,␈αotherwise,␈αthe␈αprogram␈αstarts␈αexecution␈αat␈αstep␈α1.␈α_All
␈↓ β⊂␈βπs␈↓successive␈α
passes␈α
begin␈α
at␈α
the␈α
start␈α
of␈α
the␈α
program.
␈↓ β⊂␈βλ/␈↓P␈α-␈αProceeds␈αthe␈αprogram␈αat␈αthe␈αstep␈αfollowing␈αthe␈αstep␈αwhere␈αexecution␈αwas
␈↓ β⊂␈βλM␈↓halted␈α
due␈α
to␈α
a␈α
PAUSE␈α
instruction␈α
or␈α
runtime␈α
error.
␈↓ β⊂␈β		␈↓X␈α∩-␈α∩Program␈α∩single␈α∩step␈α∩mode.␈α#Executes␈α⊃the␈α⊃next␈α⊃instruction␈α⊃in␈α⊃the␈α⊃user
␈↓ β⊂␈β	'␈↓program␈αand␈αthen␈αhalts.␈α⊗Like␈αthe␈α"P"␈αinstruction,␈α"X"␈αcan␈αonly␈αbe␈αtyped␈αafter␈αa
␈↓ β⊂␈β	E␈↓PAUSE␈α∞instruction␈α∞has␈α∞been␈α∞executed␈α∞or␈α∞after␈α∞a␈α∞non-fatal␈α
run-time␈α
error␈α
has
␈↓ β⊂␈β	c␈↓occurred.
␈↓ β⊂␈β
∨␈↓ABORT␈α∃-␈α∀Program␈α∀execution␈α∀is␈α∀terminated␈α∀at␈α∀the␈α∀completion␈α∀of␈α∀the␈α∀step
␈↓ β⊂␈β
=␈↓currently␈α
being␈α
executed.
␈↓ α,␈β
y␈↓When␈αa␈αprogram␈αterminates␈αexecution␈αfor␈αwhatever␈αreason,␈αa␈αmessage␈αis␈αtyped␈αon␈αthe␈αconsole
␈↓ α,␈β↔␈↓terminal␈α
indicating␈α
the␈α
reason␈α
for␈α
termination␈αand␈αthe␈αprogram␈αlocation␈αwhere␈αthe␈αtermination
␈↓ α,␈β5␈↓occurred.
␈↓ α,␈βq␈↓In␈α∞addition,␈α∞while␈α∞a␈α∞program␈α∞is␈α∞being␈α∞executed,␈α
the␈α
following␈α
functions␈α
can␈α
be␈α
executed␈α
from
␈↓ α,␈β∂␈↓the␈α∩console␈α⊃terminal:␈α"POINT,␈α⊃TEACH,␈α⊃HERE,␈α⊃WHERE,␈α⊃LISTT,␈α⊃STORET,␈α⊃LOADT,␈α⊃LISTP,␈α⊃STOREP,
␈↓ α,␈β-␈↓LOADP,␈α
PROGS,␈α
FREE,␈αSTATUS,␈αEDIT.␈α_This␈αability␈αallows␈αthe␈αprogrammer␈αto␈αtouch␈αup␈αpositions
␈↓ α,␈βK␈↓while␈αthe␈αmanipulator␈αis␈αin␈αmotion␈αand␈αeven␈αto␈αalter␈αthe␈αprogram␈αbeing␈αexecuted␈αor␈αto␈αload␈αor
␈↓ α,␈βi␈↓develop␈αnew␈αprograms.␈α⊗Furthermore,␈αthis␈αfacility␈αenables␈αthe␈αinterrogation␈αof␈αthe␈αcomputer␈α
as
␈↓ α,␈β
π␈↓to␈α
the␈α
status␈α
of␈α
the␈α
program␈α
currently␈α
being␈α
executed.
␈↓ ¬:␈β
{␈↓↓PROGRAM INSTRUCTION SET
␈↓ α,␈β∞<␈↓The␈αfollowing␈αsections␈αdescribe␈αthe␈αavailable␈αprogram␈αinstructions.␈α⊗Due␈αto␈αthe␈αgreat␈αflexibility
␈↓ α,␈β∞Z␈↓of␈α⊂the␈α⊂basic␈α⊂structure␈α⊂of␈α⊂the␈α⊂language,␈α∂new␈α∂instructions␈α∂and␈α∂data␈α∂types␈α∂which␈α∂are␈α∂deemed
␈↓ α,␈β∞x␈↓necessary␈α
can␈α
be␈α
added␈α
very␈α
easily.
␈↓ F␈β⎇␈↓↓[5]
␈↓ ¬T␈β↓H␈↓↓MANIPULATOR MOTIONS
␈↓ α,␈βα	␈↓There␈α
are␈α
three␈α
basic␈α
methods␈α
that␈α
can␈α
be␈α
employed␈α
for␈αmoving␈αthe␈αmanipulator's␈αhand␈αfrom
␈↓ α,␈βα'␈↓one␈α∂point␈α∂to␈α∂another:␈α≥hardware␈α∞slewing,␈α∞joint␈α∞interpolation,␈α∞or␈α∞straight␈α∞line.␈α≤Each␈α∞of␈α∞these
␈↓ α,␈βαE␈↓methods␈α
is␈α
described␈α
below.
␈↓ α,␈ββ↓␈↓In␈α
hardware␈α
slewing␈α
mode,␈α
the␈α
computer␈α
generates␈α
a␈α
single␈α
set␈α
of␈α
joint␈α
angles␈α
corresponding␈α
to
␈↓ α,␈ββ∨␈↓the␈α⊂desired␈α∂final␈α∂position␈α∂of␈α∂the␈α∂manipulator.␈α≡These␈α∂angles␈α∂are␈α∂sent␈α∂to␈α∂the␈α∂individual␈α∂joint
␈↓ α,␈ββ=␈↓hardware␈αposition␈αservos␈αat␈αthe␈αstart␈αof␈αthe␈αmotion␈αand␈αeach␈αjoint␈αis␈αpermitted␈αto␈αmove␈αto␈αits
␈↓ α,␈ββ[␈↓final␈αposition␈αat␈αits␈αown␈αspeed.␈α⊗The␈α
resulting␈α
motion␈α
is␈α
therefore␈α
very␈α
fast.␈α∀However,␈α
the␈α
path
␈↓ α,␈ββy␈↓of␈αthe␈αterminal␈αdevice␈αwill␈αnot,␈αin␈αgeneral,␈αfollow␈αa␈αsimple␈αcurve.␈α⊗A␈αtypical␈αprogram␈αinstruction
␈↓ α,␈β∧↔␈↓for␈α⊂moving␈α⊂the␈α⊂arm␈α⊂to␈α∂a␈α∂position␈α∂called␈α∂"PT1"␈α∂using␈α∂the␈α∂slewing␈α∂method␈α∂can␈α∂be␈α∂written␈α∂as
␈↓ α,␈β∧5␈↓follows:
␈↓ ε←␈β∧q␈↓GO PTI
␈↓ α,␈β¬-␈↓For␈αa␈αjoint␈αinterpolated␈αmotion,␈αthe␈αsoftware␈αgenerates␈αa␈αseries␈αof␈αjoint␈αangles␈αwhich␈αgo␈αfrom
␈↓ α,␈β¬K␈↓the␈α⊂manipulator's␈α⊂initial␈α⊂position␈α∂to␈α∂its␈α∂final␈α∂position␈α∂using␈α∂an␈α∂interpolating␈α∂polynomial.␈α≡The
␈↓ α,␈β¬i␈↓speed␈α∩and␈α∩position␈α⊃of␈α⊃each␈α⊃joint␈α⊃is␈α⊃continuously␈α⊃and␈α⊃accurately␈α⊃controlled␈α⊃throughout␈α⊃the
␈↓ α,␈βεπ␈↓trajectory.␈α≤The␈α∞path␈α∞of␈α∞the␈α∞terminal␈α∞device␈α∞is␈α∞smooth␈α∞and␈α
quite␈α
predictable.␈α~The␈α
total␈α
time
␈↓ α,␈βε%␈↓required␈αfor␈αeach␈α
motion␈α
can␈α
be␈α
controlled␈α
by␈α
altering␈α
the␈α
maximum␈α
permitted␈α
joint␈α
speed␈α
(␈α
see
␈↓ α,␈βεC␈↓SPEED␈α∩instruction␈α∩),␈α∩or␈α∩if␈α∩no␈α∩special␈α∩speed␈α∩is␈α∩specified␈α∩a␈α∩default␈α∩value␈α∩will␈α∩be␈α∩assumed.
␈↓ α,␈βεa␈↓Naturally,␈αthe␈αdefault␈αspeed␈αis␈αalso␈αunder␈αthe␈αcontrol␈αof␈αthe␈αprogrammer.␈α⊗A␈αsample␈αinstruction
␈↓ α,␈βε␈␈↓for␈α
generating␈α
a␈α
interpolated␈α
motion␈α
to␈α
a␈α
position␈α
"PT1"␈α
follows:
␈↓ εI␈βπ;␈↓MOVE PT1
␈↓ α,␈βπw␈↓The␈α⊂final␈α⊂method␈α∂for␈α∂trajectory␈α∂generation␈α∂moves␈α∂the␈α∂manipulator's␈α∂terminal␈α∂device␈α∂along␈α∂a
␈↓ α,␈βλ∃␈↓straight␈αline␈αpath.␈α_As␈αwith␈αjoint␈αinterpolated␈αmotion,␈αset␈αpoints␈αare␈αcontinuously␈αgenerated␈αby
␈↓ α,␈βλ3␈↓the␈α∂computer␈α∂and␈α∂the␈α∂movement␈α∂of␈α∂the␈α∂terminal␈α∞device␈α∞is␈α∞smooth␈α∞and␈α∞accurately␈α∞controlled.
␈↓ α,␈βλQ␈↓Once␈αagain,␈αthe␈αspeed␈αof␈αeach␈αmotion␈αcan␈αbe␈αindividually␈αspecified␈αby␈αa␈αSPEED␈αinstruction␈αor␈αa
␈↓ α,␈βλo␈↓default␈α
value␈α
will␈α
be␈α
utilized.␈α∀A␈α
typical␈α
straight␈α
line␈α
motion␈α
instruction␈α
follows:
␈↓ εA␈β	+␈↓MOVES PT1
␈↓ α,␈β	g␈↓In␈α
addition␈α
to␈α
the␈α
three␈α
basic␈α
motion␈α
instructions,␈αthere␈αare␈αseveral␈αspecial␈αinstructions␈αwhich
␈↓ α,␈β
¬␈↓are␈α
extensions␈α
of␈α
MOVE␈α
and␈α
MOVES.␈α∀These␈α
are␈α
briefly␈α
described␈α
below:
␈↓ β⊂␈β
A␈↓READY␈α∂-␈α∂Moves␈α∂the␈α∂arm␈α∞to␈α∞the␈α∞READY␈α∞position␈α∞above␈α∞the␈α∞work␈α∞space.␈α≤This
␈↓ β⊂␈β
←␈↓forces␈α
the␈α
arm␈α
into␈α
a␈α
standard␈α
configuration␈α
and␈α
position.
␈↓ β⊂␈β≠␈↓REST␈α-␈αMoves␈αthe␈αarm␈αto␈αthe␈αREST␈αposition.␈α_This␈αleaves␈αthe␈αarm␈αin␈αa␈αposition
␈↓ β⊂␈β9␈↓for␈α
power␈α
shutdown.
␈↓ β⊂␈βu␈↓DRAW␈αdx,dy,dz␈α-␈αMoves␈αthe␈αhand␈αalong␈αa␈αstraight␈αline␈αa␈αdistance␈αof␈αdx␈αin␈αthe␈αX
␈↓ β⊂␈β∪␈↓direction,␈α
dy␈α
in␈α
the␈α
Y␈α
direction,␈α
and␈α
dz␈α
in␈α
the␈α
Z␈α
direction.
␈↓ β⊂␈βO␈↓APPRO␈α⊃position,␈α⊃distance␈α⊃-␈α⊃Moves␈α⊃the␈α⊃manipulator␈α⊃to␈α⊃the␈α⊃indicated␈α⊃position
␈↓ β⊂␈βm␈↓offset␈α
by␈α
the␈α
specified␈α
distance␈α
along␈α
the␈α
Z␈α
axis␈α
of␈α
the␈α
hand.␈α∀This␈α
instruction␈α
is
␈↓ β⊂␈β
␈↓used␈α
to␈α
move␈α
the␈α
manipulator␈α
just␈α
above␈α
the␈α
final␈α
desired␈α
destination.
␈↓ β⊂␈β
G␈↓DEPART␈αdistance␈α-␈αMoves␈αthe␈αhand␈αa␈α
specified␈α
distance␈α
along␈α
its␈α
Z␈α
axis.␈α∀This␈α
is
␈↓ β⊂␈β
e␈↓a␈α∂very␈α∂convenient␈α∂way␈α∂of␈α∂retracting␈α∂the␈α∂hand␈α∂so␈α∂that␈α∂it␈α∂clears␈α∞all␈α∞obstacles
␈↓ β⊂␈β∞β␈↓before␈α
moving␈α
off␈α
to␈α
the␈α
next␈α
destination.
␈↓ β⊂␈β∞?␈↓DRIVE␈αjoint,␈αangle,␈αtime␈α-␈αDrives␈αa␈αsingle␈αjoint␈αthrough␈αa␈αspecified␈αangle␈αtaking
␈↓ β⊂␈β∞]␈↓the␈α
indicated␈α
amount␈α
of␈α
time␈α
to␈α
execute␈α
the␈α
operation.
␈↓ F␈β⎇␈↓↓[6]
␈↓ ¬`␈β↓b␈↓↓GRIPPER INSTRUCTIONS
␈↓ α,␈βα#␈↓Several␈α
instructions␈α
currently␈α
exist␈α
for␈α
controlling␈α
the␈α
opening␈α
of␈α
a␈α
gripper␈αdevice␈αwhich␈αcan
␈↓ α,␈βαA␈↓be␈α
provided␈α
with␈α
the␈α
manipulator.␈α∀Similar␈α
commands␈α
for␈α
operating␈α
any␈α
terminal␈α
device␈α
attached
␈↓ α,␈βα←␈↓to␈α
the␈α
arm␈α
can␈α
be␈α
added␈α
to␈α
the␈α
basic␈α
language␈α
upon␈α
request.␈α~The␈α
following␈α
instructions␈α
are
␈↓ α,␈βα⎇␈↓intended␈α
to␈α
indicate␈α
the␈α
type␈α
of␈α
control␈α
possible.
␈↓ β⊂␈ββ9␈↓OPEN␈αdistance␈α-␈αChanges␈αthe␈αhand␈αopening␈αto␈αthe␈αspecified␈αdistance␈αduring␈αthe
␈↓ β⊂␈ββW␈↓execution␈α
of␈α
the␈α
next␈α
motion␈α
instruction.
␈↓ β⊂␈β∧∪␈↓OPENI␈αdistance␈α-␈αPerforms␈αthe␈αsame␈αchange␈αin␈αhand␈α
opening␈α
as␈α
in␈α
OPEN␈α
but␈α
the
␈↓ β⊂␈β∧1␈↓operation␈α∩is␈α∩performed␈α∩immediately␈α∩instead␈α∩of␈α∩waiting␈α∩for␈α∩the␈α∩next␈α⊃motion
␈↓ β⊂␈β∧O␈↓instruction
␈↓ β⊂␈β¬␈↓GRASP␈αdistance,␈αprogram␈αlabel␈α-␈αCloses␈αthe␈αhand␈αand␈αchecks␈αto␈αsee␈αif␈αthe␈αfinal
␈↓ β⊂␈β¬)␈↓hand␈αopening␈αwas␈αless␈αthan␈αthe␈αspecified␈αdistance.␈α∀If␈α
so,␈α
the␈α
program␈α
branches
␈↓ β⊂␈β¬G␈↓to␈αthe␈αstep␈αindicated␈αby␈αthe␈αprogram␈αlabel␈αor␈αan␈αerror␈αmessage␈αis␈αgenerated␈αif
␈↓ β⊂␈β¬e␈↓no␈α⊃program␈α⊃label␈α⊃is␈α⊃specified.␈α"This␈α⊂instruction␈α⊂provides␈α⊂a␈α⊂simple␈α⊂one␈α⊂step
␈↓ β⊂␈βεβ␈↓method␈α∞for␈α
grasping␈α
an␈α
object␈α
and␈α
testing␈α
to␈α
ensure␈α
that␈α
proper␈α
contact␈α
was
␈↓ β⊂␈βε!␈↓achieved.
␈↓ ∧6␈βπ∃␈↓↓ARM CONFIGURATION CONTROL STATEMENTS
␈↓ α,␈βπV␈↓For␈α
the␈α
UNIMATE␈α
500␈α
manipulator,␈α
most␈α
X,␈α
Y,␈α
Z␈α
locations␈α
in␈αthe␈αworkspace␈αof␈αthe␈αarm␈αcan␈αbe
␈↓ α,␈βπt␈↓reached␈α∃by␈α∃assuming␈α∃one␈α∃of␈α∃four␈α∃possible␈α∃spatial␈α∃configurations.␈α*These␈α∀configurations
␈↓ α,␈βλ∩␈↓correspond␈α⊂to␈α⊂having␈α∂the␈α∂manipulator␈α∂resemble␈α∂a␈α∂human's␈α∂right␈α∂or␈α∂left␈α∂shouldered␈α∂arm␈α∂and
␈↓ α,␈βλ0␈↓having␈α
its␈α
elbow␈α
(␈α
the␈α
end␈α
of␈α
joint␈α
3␈α)␈αeither␈αpointed␈αup␈αor␈αdown.␈α_The␈αfour␈αinstructions␈αthat
␈↓ α,␈βλN␈↓have␈α
been␈α
provided␈α
for␈α
controlling␈α
the␈α
manipulator's␈α
configuration␈α
are:
␈↓ ¬/␈β	
␈↓RIGHTY, LEFTY, ABOVE, and BELOW
␈↓ α,␈β	F␈↓Normally,␈α∂the␈α∂arm␈α∂will␈α∂remain␈α∂in␈α∂whatever␈α∂configuration␈α∂it␈α∂starts␈α∂in␈α∂when␈α∞the␈α∞user␈α∞program
␈↓ α,␈β	d␈↓begins␈αexecution␈αor␈αcontinues␈αfrom␈αa␈αPAUSE␈αstatement␈αor␈αruntime␈αerror.␈α↔The␈αonly␈αexceptions
␈↓ α,␈β
α␈↓to␈α⊂this␈α⊂rule␈α⊂are:␈α 1)␈α⊂when␈α∂a␈α∂READY␈α∂or␈α∂REST␈α∂instruction␈α∂is␈α∂executed␈α∂or␈α∂2)␈α∂when␈α∂a␈α∂specific
␈↓ α,␈β
 ␈↓change␈αin␈αconfiguration␈αis␈αrequested␈αby␈αthe␈αuser␈αprogram␈αthrough␈αthe␈αexecution␈αof␈αany␈αof␈αthe
␈↓ α,␈β
>␈↓above␈α
program␈α
instructions.␈α~When␈α
a␈α
change␈α
in␈αconfiguration␈αis␈αrequested,␈αthe␈αchange␈αwill␈αbe
␈↓ α,␈β
\␈↓accomplished␈α
during␈α
the␈α
execution␈α
of␈α
the␈α
next␈α
GO␈α
or␈α
MOVE␈α
motion␈α
instruction.
␈↓ ∧=␈βP␈↓↓PROGRAM CONTROL LOGIC AND ARITHMETIC
␈↓ α,␈β⊃␈↓Integer␈α∞arithmetic␈α∞has␈α∞been␈α∞built␈α∞into␈α∞the␈α∞language␈α
to␈α
allow␈α
the␈α
execution␈α
of␈α
simple␈α
program
␈↓ α,␈β/␈↓loops␈α⊂and␈α⊂conditional␈α⊂branching.␈α∨In␈α∂most␈α∂cases␈α∂where␈α∂a␈α∂integer␈α∂variable␈α∂is␈α∂required␈α∂as␈α∂an
␈↓ α,␈βM␈↓argument␈α
for␈α
a␈α
program␈α
instruction,␈αeither␈αthe␈αsymbolic␈αname␈αof␈αa␈αvariable␈αcan␈αbe␈αgiven␈αor␈αa
␈↓ α,␈βk␈↓integer␈α∂value␈α∂can␈α∂be␈α∂specified.␈α≡Integer␈α∂symbol␈α∂names␈α∂conform␈α∂to␈α∞the␈α∞same␈α∞rules␈α∞given␈α∞for
␈↓ α,␈β
	␈↓position␈α∂and␈α∂program␈α∂names.␈α≡Integer␈α∂values␈α∂must␈α∞be␈α∞between␈α∞32767␈α∞and␈α∞-32768.␈α≤A␈α∞brief
␈↓ α,␈β
'␈↓description␈α
of␈α
the␈α
integer␈α
arithmetic␈α
and␈α
control␈α
instructions␈α
follows:
␈↓ β⊂␈β
c␈↓SETI␈α
var1␈α
=␈α
var2␈α
operation␈α
var3␈α
-␈α
The␈α
value␈α
of␈α
the␈α
first␈α
variable␈α
is␈α
set␈α
equal␈α
to
␈↓ β⊂␈β∞↓␈↓the␈αresult␈αof␈αevaluating␈αthe␈αexpression␈αon␈αthe␈αright␈αside␈α
of␈α
the␈α
equal␈α
sign.␈α∀The
␈↓ β⊂␈β∞∨␈↓permitted␈αoperations␈αare:␈α⊗addition␈α(+),␈αsubtraction␈α(-),␈α
multiplication␈α
(*),␈α
integer
␈↓ β⊂␈β∞=␈↓division␈α(/),␈αand␈αmodulus␈αdetermination␈α(%).␈α_If␈αboth␈αthe␈αoperation␈αand␈αthe␈αthird
␈↓ β⊂␈β∞[␈↓variable␈α
are␈α
missing,␈α
the␈α
instruction␈α
is␈α
a␈α
direction␈α
assignment␈α
statement.
␈↓ β⊂␈β∂↔␈↓IF␈α
var1␈α
relationship␈α
var2␈α
THEN␈α
program␈α
label␈α
-␈α
The␈α
value␈α
of␈α
the␈α
first␈α
variable␈α
is
␈↓ β⊂␈β∂5␈↓compared␈αto␈αthe␈αvalue␈αof␈α
the␈α
second␈α
and␈α
if␈α
the␈α
stated␈α
"relationship"␈α
is␈α
true,␈α
the
␈↓ F␈β⎇␈↓↓[7]
␈↓ β⊂␈β↓H␈↓program␈α⊃branches␈α⊃execution␈α⊃to␈α⊂the␈α⊂specified␈α⊂program␈α⊂step.␈α Otherwise,␈α⊂the
␈↓ β⊂␈β↓f␈↓next␈α∀sequential␈α∀step␈α∪of␈α∪the␈α∪program␈α∪is␈α∪executed␈α∪as␈α∪usual.␈α&The␈α∪possible
␈↓ β⊂␈βα∧␈↓relationships␈αthat␈αcan␈αbe␈αtested␈αfor␈α
are:␈α
equal␈α
(EQ),␈α
not␈α
equal␈α
(NE),␈α
greater␈α
than
␈↓ β⊂␈βα"␈↓(GT),␈α
greater␈α
than␈α
or␈α
equal␈α
(GE),␈α
less␈α
than␈α
(LT),␈α
or␈α
less␈α
than␈α
or␈α
equal␈α
(LE).
␈↓ β⊂␈βα↑␈↓GOTO␈α
program␈α
label␈α
-␈α
Performs␈α
an␈α
un-conditional␈α
branch␈α
to␈αthe␈αprogram␈αstep
␈↓ β⊂␈βα|␈↓specified␈α
by␈α
the␈α
given␈α
label.
␈↓ β⊂␈ββ8␈↓DO␈αvariable␈α=␈αval1,val2,val3␈α-␈α
Commences␈α
a␈α
loop␈α
where␈α
the␈α
variable␈α
is␈α
assigned
␈↓ β⊂␈ββV␈↓to␈α
values␈α
from␈α
val1␈α
to␈α
val2␈α
in␈α
steps␈α
of␈α
val3.␈α~The␈α
loop␈α
is␈α
always␈α
executed␈α
at
␈↓ β⊂␈ββt␈↓least␈α
one␈α
time.␈α∀and␈α
branching␈α
into␈α
the␈α
middle␈α
of␈α
a␈α
loop␈α
is␈α
not␈α
permitted.
␈↓ β⊂␈β∧0␈↓NEXT␈α
variable␈α
-␈α
Marks␈α
the␈α
end␈α
of␈α
the␈α
DO␈α
loop␈αwhich␈αincrements␈αthe␈αspecified
␈↓ β⊂␈β∧N␈↓variable
␈↓ β⊂␈β¬
␈↓TYPEI␈α
variable␈α
-␈α
Types␈α
the␈α
value␈α
of␈α
the␈α
integer␈α
variable.
␈↓ α,␈β¬F␈↓In␈α→addition,␈α→two␈α→basic␈α→instructions␈α→are␈α→provided␈α→for␈α_altering␈α_the␈α_positions␈α_stored␈α_in
␈↓ α,␈β¬d␈↓transformations:
␈↓ β⊂␈βε ␈↓SET␈αtrans1␈α=␈αtrans␈α2␈α-␈αThe␈αvalue␈αof␈αtransformation␈α1␈αis␈αset␈αequal␈αto␈αthe␈αvalue
␈↓ β⊂␈βε>␈↓of␈α
transformation␈α
2.
␈↓ β⊂␈βεz␈↓SHIFT␈α
trans␈α
BY␈α
dx,dy,dz␈α
-␈α
The␈α
X,␈α
Y,␈α
and␈α
Z␈α
positions␈α
of␈α
the␈α
transformation␈α
are
␈↓ β⊂␈βπ_␈↓modified␈α
by␈α
adding␈α
the␈α
changes␈α
in␈α
distances:␈α
dx,␈α
dy,␈α
and␈α
dz,␈α
respectively.
␈↓ α,␈βπT␈↓In␈α∞order␈α∞to␈α∞conserve␈α∞the␈α
space␈α
required␈α
by␈α
repeated␈α
sequences␈α
of␈α
operations␈α
and␈α
to␈α
permit
␈↓ α,␈βπr␈↓the␈α→development␈α→of␈α→libraries␈α→of␈α→programs,␈α_subroutines␈α_are␈α_included␈α_in␈α_the␈α_language.
␈↓ α,␈βλ⊂␈↓Subroutines␈α∪cannot␈α∪as␈α∩yet␈α∩be␈α∩called␈α∩with␈α∩specified␈α∩arguments.␈α$Therefore,␈α∩programs␈α∩and
␈↓ α,␈βλ.␈↓subroutines␈α∞are␈α∞identical.␈α≤Also,␈α∞since␈α∞all␈α∞data␈α∞stored␈α∞in␈α∞the␈α∞computer␈α∞is␈α∞globally␈α∞defined,␈α∞all
␈↓ α,␈βλL␈↓integers␈α
and␈α
positions␈α
can␈α
be␈α
accessed␈α
by␈α
any␈α
program␈α
or␈α
subroutine.
␈↓ β⊂␈β	λ␈↓GOSUB␈αsubroutine␈α-␈αExecution␈α
of␈α
the␈α
current␈α
program␈α
is␈α
temporarily␈α
suspended
␈↓ β⊂␈β	&␈↓and␈αprogram␈αexecution␈αcontinues␈αstarting␈αwith␈αthe␈αfirst␈αstep␈αof␈αthe␈αsubroutine.
␈↓ β⊂␈β	D␈↓The␈αaddress␈αof␈αthe␈α
next␈α
step␈α
in␈α
the␈α
current␈α
program␈α
is␈α
automatically␈α
saved.␈α∀Up
␈↓ β⊂␈β	b␈↓to␈α
10␈α
programs␈α
can␈α
be␈α
superseded␈α
at␈α
any␈α
given␈α
time.
␈↓ β⊂␈β
≡␈↓RETURN␈α∀-␈α∪Terminates␈α∪execution␈α∪of␈α∪the␈α∪current␈α∪subroutine␈α∪and␈α∪re-initiates
␈↓ β⊂␈β
<␈↓execution␈α∂of␈α∂the␈α∂last␈α∂suspended␈α∂program␈α∂at␈α∂the␈α∂step␈α∂following␈α∂the␈α∞executed
␈↓ β⊂␈β
Z␈↓GOSUB␈α∃instruction.␈α*A␈α∃RETURN␈α∃instruction␈α∃executed␈α∀in␈α∀the␈α∀main␈α∀program
␈↓ β⊂␈β
x␈↓functions␈α
like␈α
a␈α
STOP␈α
instruction.
␈↓ α,␈β4␈↓The␈α
final␈α
group␈α
of␈α
instructions␈α
are␈α
used␈α
for␈α
interlocking␈α
the␈α
execution␈α
of␈α
a␈α
manipulator␈α
program
␈↓ α,␈βR␈↓with␈α
other␈α
devices␈α
and␈α
to␈α
suspend␈α
the␈α
execution␈α
of␈α
programs:
␈↓ β⊂␈β∞␈↓SIGNAL␈α∩channel␈α∩-␈α∩Transmits␈α∩a␈α∩signal␈α∩to␈α∩the␈α∩device␈α⊃attached␈α⊃to␈α⊃the␈α⊃output
␈↓ β⊂␈β,␈↓channel
␈↓ β⊂␈βh␈↓WAIT␈αchannel␈α-␈αProgram␈αis␈αput␈αinto␈αa␈αwait␈αloop␈αuntil␈αa␈αsignal␈αis␈α
received␈α
on␈α
the
␈↓ β⊂␈β
ε␈↓input␈α
channel.
␈↓ β⊂␈β
B␈↓DELAY␈α
duration␈α
-␈α
Puts␈α
the␈α
program␈αin␈αa␈αwait␈αloop␈αfor␈αthe␈αspecified␈αamount␈αof
␈↓ β⊂␈β
`␈↓time.␈α∀The␈α
duration␈α
can␈α
be␈α
given␈α
as␈α
any␈α
value␈α
between␈α
.01␈α
and␈α
327.67␈α
seconds.
␈↓ β⊂␈β∞≤␈↓PAUSE␈αmessage␈α-␈αTerminates␈α
execution␈α
of␈α
a␈α
user␈α
program␈α
and␈α
types␈α
a␈α
message
␈↓ β⊂␈β∞:␈↓on␈αthe␈αconsole␈αterminal.␈α_Execution␈αcan␈αbe␈αcontinued␈αfrom␈αthis␈αpoint␈αby␈αtyping
␈↓ β⊂␈β∞X␈↓P.
␈↓ β⊂␈β∂∀␈↓STOP␈α⊗-␈α∃Suspends␈α∃execute␈α∃of␈α∃a␈α∃program.␈α*Program␈α∃execution␈α∃cannot␈α∃be
␈↓ β⊂␈β∂2␈↓continued␈α
from␈α
this␈α
point.
␈↓ F␈β⎇␈↓↓[8]
␈↓ ¬,␈βα≡␈↓↓SPECIAL SWITCH STATEMENTS
␈↓ α,␈βα←␈↓The␈αfollowing␈αinstructions␈αare␈αused␈αfor␈αenabling␈αand␈αdisabling␈αspecial␈αfeatures␈αof␈αthe␈α
hardware
␈↓ α,␈βα⎇␈↓position␈α⊂servo␈α⊂and␈α⊂the␈α⊂software␈α⊂trajectory␈α⊂generator.␈α As␈α∂indicated␈α∂below,␈α∂a␈α∂few␈α∂of␈α∂these
␈↓ α,␈ββ≠␈↓instructions␈αcan␈αbe␈αfollowed␈αby␈αthe␈αword␈αALWAYS␈αif␈αit␈αis␈αdesired␈αthat␈αthe␈αrequested␈αoption␈αbe
␈↓ α,␈ββ9␈↓turned␈αoff␈αor␈αon␈αduring␈αall␈αsuccessive␈αmotions.␈α⊗Whenever␈αa␈α
switch␈α
is␈α
not␈α
followed␈α
by␈α
ALWAYS,
␈↓ α,␈ββW␈↓it␈α
is␈α
assumed␈α
that␈α
the␈α
switch␈α
setting␈α
is␈α
only␈α
to␈α
effect␈α
the␈α
next␈α
motion.
␈↓ β⊂␈β∧∪␈↓COARSE␈α⊂<ALWAYS>␈α⊂-␈α⊂The␈α⊂low␈α⊂tolerance␈α⊂feature␈α⊂is␈α∂enabled␈α∂in␈α∂the␈α∂hardware
␈↓ β⊂␈β∧1␈↓servo␈α∩so␈α∩that␈α∩larger␈α∩errors␈α∩in␈α⊃the␈α⊃final␈α⊃position␈α⊃of␈α⊃the␈α⊃arm␈α⊃joints␈α⊃will␈α⊃be
␈↓ β⊂␈β∧O␈↓permitted␈αat␈αthe␈αend␈αof␈αthe␈αnext␈αmotion.␈α⊗This␈αwill␈αresult␈αin␈αmuch␈αfaster␈αmotion
␈↓ β⊂␈β∧m␈↓execution␈α
times␈α
if␈α
high␈α
accuracy␈α
is␈α
not␈α
required.
␈↓ β⊂␈β¬)␈↓FINE␈α
<ALWAYS>␈α
-␈α
Opposite␈α
of␈α
the␈α
COARSE␈α
instruction.
␈↓ β⊂␈β¬e␈↓NONULL␈α∞<ALWAYS>␈α∞-␈α∞The␈α∞next␈α∞executed␈α∞motion␈α∞is␈α∞terminated␈α∞without␈α
waiting
␈↓ β⊂␈βεβ␈↓for␈α∞the␈α∞hardware␈α
to␈α
signal␈α
that␈α
all␈α
moving␈α
joints␈α
have␈α
reached␈α
their␈α
specified
␈↓ β⊂␈βε!␈↓positions.␈α∃Like␈α
the␈α
COARSE␈α
command,␈α
this␈α
mode␈α
results␈α
in␈α
faster␈α
motion␈α
times␈α
if
␈↓ β⊂␈βε?␈↓final␈α∪position␈α∪accuracy␈α∪is␈α∪not␈α∪required.␈α&However,␈α∩since␈α∩no␈α∩position␈α∩error
␈↓ β⊂␈βε]␈↓checking␈α⊂whatsoever␈α⊂is␈α⊂done,␈α⊂motion␈α⊂execution␈α⊂times␈α⊂will␈α⊂be␈α⊂fixed␈α⊂and␈α∂final
␈↓ β⊂␈βε{␈↓position␈α
errors␈α
can␈α
be␈α
quite␈α
large.
␈↓ β⊂␈βπ7␈↓NULL␈α
<ALWAYS>␈α
-␈α
Opposite␈α
of␈α
the␈α
NONULL␈α
instruction.
␈↓ β⊂␈βπs␈↓INTOFF␈α
-␈α
Turns␈α
off␈α
the␈α
hardware␈α
position␈αerror␈αintegration␈αfeature␈αduring␈αthe
␈↓ β⊂␈βλ⊃␈↓next␈α
motion.␈α~However,␈α
the␈α
hardware␈α
integration␈α
is␈αalways␈αenabled␈αduring␈αthe
␈↓ β⊂␈βλ/␈↓final␈α
position␈α
error␈α
nulling␈α
period.
␈↓ β⊂␈βλk␈↓INTON␈α∂-␈α∂Forces␈α∂the␈α∂hardware␈α∂to␈α∂integrate␈α∂the␈α∂position␈α∂error␈α∂throughout␈α∞the
␈↓ β⊂␈β		␈↓next␈α
motion.
␈↓ β⊂␈β	E␈↓PULSE␈α-␈αEnables␈αthe␈αhardware␈αhand␈αpulse␈αmode␈αduring␈α
the␈α
next␈α
arm␈α
motion␈α
for
␈↓ β⊂␈β	c␈↓approximately␈α
100msec.␈α~This␈α
mode␈α
is␈α
useful␈α
for␈αfreeing␈αthe␈αhand␈αafter␈αit␈αhas
␈↓ β⊂␈β
↓␈↓jammed␈α
open␈α
or␈α
closed.
␈↓ β⊂␈β
=␈↓SPEED␈αvalue␈α<ALWAYS>␈α-␈αRequests␈αthat␈αthe␈αnext␈α
arm␈α
motion␈α
be␈α
performed␈α
at␈α
a
␈↓ β⊂␈β
[␈↓speed␈α∃other␈α∃than␈α∃normal(␈α∀=␈α∀100).␈α(The␈α∀percentage␈α∀can␈α∀range␈α∀from␈α∀1␈α∀(
␈↓ β⊂␈β
y␈↓extremely␈αslow␈α)␈αto␈α32767␈α(␈αthe␈α
largest␈α
possible␈α
integer␈α
variable␈α
number␈α
which
␈↓ β⊂␈β↔␈↓in␈α
this␈α
case␈α
produces␈α
a␈α
hardware␈α
slewing␈α
mode␈α
).
␈↓ ¬!␈βm␈↓↓MISCELLANEOUS INSTRUCTIONS
␈↓ α,␈β.␈↓The␈α↔following␈α↔two␈α↔instructions␈α↔have␈α↔been␈α↔included␈α↔in␈α↔the␈α↔language␈α↔to␈α⊗allow␈α⊗program
␈↓ α,␈βL␈↓documentation␈α
and␈α
error␈α
message␈α
type␈α
out.
␈↓ β⊂␈β
λ␈↓COMMNT␈α
message␈α
-␈α
Comment␈α
line,␈α
a␈α
no-operation␈α
at␈α
run-time.
␈↓ β⊂␈β
D␈↓TYPE␈α
message␈α
-␈α
Types␈α
the␈α
message␈α
on␈α
the␈α
console␈α
terminal.