perm filename DOC.OLD[1,VDS] blob sn#231143
filedate 1976-08-09 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00005 PAGES
C REC PAGE DESCRIPTION
C00002 00002 INSTRUCTION SET FOR STANFORD ARM SERVO PROGRAM
C00006 00003 MONITOR COMMANDS - PROGRAM EDITING
C00010 00004 MONITOR COMMANDS - INPUT/OUTPUT
C00016 00005 NOTES:
INSTRUCTION SET FOR STANFORD ARM SERVO PROGRAM
MONITOR COMMANDS - DEFINING POSITIONS
The following commands are used for defining transforms and vectors.
Vectors are always specified in cartisan coordinates and transforms are
specified in cartisan coordinates and euler angles.
VECT <vect> Used to define vector #vect. Vectors 0,1,2,3 are
reserved and are predefined to be the null vector
and unit vectors in the x, y, and z directions
respectively. Reserved vectors can be listed, but
cannot be modified. Defining a vector to have all
zero elements releases it from use.
TRANS <trans> Used to specify transform #trans. Transform 0 is
reserved and is predefined to be the park position.
As with the command VECT, the reserved tranform can
be listed but not modified.
RELTRN <t1>,...,<tn> Releases transform numbers t1 to tn for future use.
This command takes an arbitrary number of arguments.
HERE <trans> Defines transform #trans to be current arm position.
As with TRANS, post modification of the euler angles
WHERE Prints out the current location of the arm in Euler
and joint angles.
If <trans> or <vect> is omitted in the commands VECT, TRANS, or HERE,
the first available transform or vector is selected.
MONITOR COMMANDS - PROGRAM CONTROL
EXEC <sp1>,<sp2>,<nstp> Executes the section of stored motion instructions
from sp1 to sp2, nstp number of times. If nstp is
omitted, one pass is assumed. If both nstp and sp2
are omitted, execution of instructions starts at
step sp1 and continues until the first PAUSE or
STOP is encountered.
EXEC <motion inst> Executes the single motion instruction specified and
returns to monitor command level. The previous state
of the arm status bits and the spot in the previous
motion program where execution was terminated are
PROCEED or P Continues motion program at the step following the
step where execution was halted due to an PAUSE
instruction or runtime error
MONITOR COMMANDS - PROGRAM EDITING
The following command is used for entering into motion instruction
program editing mode. This editing mode is used for creating motion
specification programs and modifying existing programs.
EDIT <step> Permits you to modify existing code starting at
instruction #step. If no step number is specified
editing proceeds from the step were the last
editing seqence was terminated.
Once having entered the edit program, the following edit functions may
<any motion instruction> Replaces the motion instruction stored at the
current step with the instruction typed in. The
next step is then displayed for editing.
<cr> Typing an empty line ( carriage return ) leaves the
current step unaltered and displays the next
instruction for editing.
DELETE <nstep> Deletes an arbitrary number of instructions starting
with the current instruction step. If nstep is not
specified, only the current step is deleted. Else,
specifying a negative number of lines deletes the
current line and nstep-1 previous lines ( i.e. lines
with smaller step numbers ). Specifying a positive
number of lines has the opposite affect. In all
cases, the steps following the deleted instructions
FIND <motion instr name> Performs a linear search for the first occurance
of a motion instruction whose function name matches
the requested name. If such a step if found, it is
displayed for editing, otherwise an error message is
typed. If no motion instruction name is specified,
the function name requested in the last FIND command
INSERT Moves instructions starting at the current step
down one and inserts in its place any motion
instruction that is typed in. The process is
repeated until an empty line is typed.
LAST Leaves the current step unaltered and displays the
previous step for editing.
SKIP <nstep> Leaves the current step unaltered and displays the
instruction which is nstep number of steps from the
current line for editing.
TERMINATE Returns to monitor program.
Any of the edit functions listed above may be abbreviated to just its
MONITOR COMMANDS - INPUT/OUTPUT
The following commands are used to get hard copies of programs, vectors,
and transforms listed on the teletype. When using any of the first three
commands listed below, if no arguments are typed in, all program instructions,
vector, or transforms will be typed out. If only one item is to be typed,
the second argument of the command may be omitted. In all four commands, any
requested vector, transform, or movement instruction step that is not
initialized, will not be typed out.
LISTV <vect1>,<vect2> Types out vectors vect1 to vect2.
LISTT <trans1>,<trans2> Types out transforms trans1 to trans2
LISTS <step1>,<step2> Types out motions instruction from step1 to step2
LISTA Types out all instructions, vectors, and transforms
MONITOR COMMANDS - MISC.
CLEAR Re-initializes all the vectors, transforms, and
instructions steps. This is a totally destructive
operation. This function first asks "Are you
sure (Y,N)?" to verify that the operation is to
DONE Monitor program stops, computer left in a HALT
In the following motion instructions all distances are in inches, time
is in seconds, and messages can be any strings containing 71 or fewer
DRAW <scale>,<vect>,<time>,<integration flag> Moves the arm along a straight
line in the direction of vector vect for a distance
scale*vect at an average velocity of scale*vect/time.
If the integration flag = 0, the hardware integration
is left on during the motion, otherwise it is turned
GO <trans> Moves the arm to the position specified by trans-
form trans. If no transform is specified, a new
transform is defined and it is set equal to the
current arm position.
MOVE <trans> This operation is equivalent to three successive
GO instructions. The first motion pulls the arm
back four inches along the hands central axis. The
second motion moves to the approach point of the
final position. The approach point is a position
four inches from the final position along the negative
of the final transform approach vector. The last
stage of this motion is moving from the approach
point to the desired transform position.
OPEN <dist> Changes the hand opening to dist inches.
GRASP <dist> Closes the hand and generates an error message
if the final hand opening is less than dist. The
closing speed of the hand is set at approximately
1 inch per second.
DRIVE <jt>,<angle>,<time> Operates the single joint specified by the
parameter <jt> (1-7). The current joint angle
is changed by an amount <angle>. The change in
joint angle must be specified in degrees or inches
which ever applies. The duration <time> must be
specified in seconds and fractions of seconds.
PAUSE <message> Terminates execution of motion program and
outputs message. Execution can be continued from
this point by typing PROCEED.
STOP <message> Same as PAUSE except that motion cannot be continued.
∂18-DEC-75 0831 BES
The following versions of the ARM code were given to Mitch
Ward during his trip out to California:
ARM PAL 27.8 14-DEC-75
ARMSOL PAL 9.7 14-DEC-75 1223
ARITH PAL 3.5 09-JUN-75 0912
EULER PAL 1.1 09-MAY-75 2031
INTFAC PAL 1.7 14-DEC-75 1306
IO PAL 6.6 30-SEP-75 1414
The following program modifications have since been done:
15DEC "P" commmand added to ARM.PAL
17DEC Corrected ARMSTT zero bug by moving one instruction
in the EXEC subroutine.
29JAN Corrected two bugs in GRASP routines. CMPF (SP),AC0
changed to CMPF @(SP),AC0 and MOV #CHKDNE,ARMSTT
changed to BIS #CHKDNE,ARMSTT
02FEB Modifications to DRAW function to allow specification
for turning the hardware integration on and off
during the motion.
∂09-FEB-76 0822 BES
The following versions of source code were sent to Mitch
Ward on 07FEB76:
ARM MEM 1.8 09-FEB-76 0819
ARM PAL 23.1 07-FEB-76 0122
IO PAL 6.0 29-DEC-75 0934
ARMSOL PAL 6.6 06-FEB-76 2256
ARITH PAL 3.5 29-DEC-75 0937
EULER PAL 1.1 09-MAY-75 2031
CALIB BLK 1.7 06-FEB-76 2256