perm filename DOC.OLD[1,VDS]1 blob sn#200662 filedate 1976-08-04 generic text, type C, neo UTF8
C00001 00001
C00002 00002	            INSTRUCTION SET FOR ARM SERVO PROGRAM: 02FEB76 
C00016 00005	NOTES:
C00018 ENDMK


   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.

    Command     	       		Operation

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
			is permitted.

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.


    Command     	       		Operation

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
			not altered.

PROCEED	or P		Continues motion program at the step following the
			step where execution was halted due to an PAUSE
			instruction or runtime error

   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.

    Command     	       		Operation

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
be invoked.

    Command     	       		Operation

<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
			are re-numbered.

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
			is used.

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
first letter.

   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.

    Command     	       		Operation

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
			in existance


    Command     	       		Operation

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
			be performed.

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

    Command     	       		Operation

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