perm filename UNI2.V[1,VDS]2 blob sn#271984 filedate 1977-03-21 generic text, type C, neo UTF8
C00001 00001
C00002 00002	\|\\M1BDR30\M2SIGN57\M3NGR25\M4NGR20\F2\CUNIMATION INC.
C00042 ENDMK
\F1\C				VAL

\C			Version of March 1,1977
\J	For the following instructions, commas are to be used to separate
variables.  If an argument is optional, the default value will be used
if no value is given.  The names of transforms and programs can consist
of up to six characters. \.
\J The following commands are used for defining transforms and determining
the current position of the arm.  Transforms are specified in cartesian
coordinates and Euler angles.\.
\L     Command     	       	\R	Operation                                 
TRANS <trans>		\j Used to specify and modify the value of transform
                        <trans>.  The current value of the transform is printed
                        and any of the transform elements (x,y,z,o,a,t)
                        can be modified by typing a new value after the
                        query CHANGES?.   Values that are not to be changed
                        can be omitted.   Changes are continuously asked for
                        until no change in the transform is made.
                        The X,Y,Z specify the position of a point centrally
                        located between the finger tips in table coordinates.  
                        O,A,T specify the orientation of the hand.  With all three
                        angles (in degrees) zero, the hand points in the negative Y
                        direction with the fingers in a horizontal plane.  The 
                        orientation vector which points from one finger tip to the
                        other  is aligned along the X axis.  O specifies a rotation
                        of the orientation vector about a vertical direction.  Thus
                        at O=90deg, the hand, still horizontal, would point along the
                        positive X direction.  A is a rotation about the orientation
                        vector.  With A=90deg. the hand always points straight down.
                        T is a final rotation about the axis of the wrist and
                        corresponds to a rotation of the final (#6) joint.\.
HERE <trans>		\jDefines transform <trans> to be current arm position.
                        As with TRANS, post modification of the Euler angles (O,A,T)
                        and cartesian position (X,Y,Z) is permitted.\.

TF <trans>,X,Y,Z,O,A,T	\jInitializes the transform <trans> to the specified
                        value.  All arguments left unspecified will be set
                        to zero.  This instruction is used mainly for 
                        reading in transforms that have be punched on paper

WHERE\jPrints out the current location of the arm in Euler
                        and joint angles along with the current hand opening.\.


\L        Command  \R 	       		Operation                                
EXEC <PROG>,<NLOOP>,<STEP>\j Executes the motion program <PROG>, <NLOOP>
                        number of times.  A loop is terminated when
                        either a STOP instruction or the last defined step
                        of the program is encountered.  If <nloop> is
                        omitted, the program will be executed one time.
                        If <prog> is omitted, execution of the last
                        user program EXEC'ed will be re-initiated.
                        If <STEP> is specified, the motion program begins
                        execution at motion program step <STEP> for the
                        first pass, otherwise, the program starts execution
                        at step #1.  All successive passes begin at the 
                        start of the program.\.

P                      \jProceeds motion program at the step following the
                        step where execution was halted due to a PAUSE
                        instruction or runtime error.\.


\C The following commands are used for creating and modifying  user motion \N
instruction programs.
\L      Command     	       	\R	Operation                                 
EDIT <prog>,<nstep>\jPermits user to create or modify program <prog> 
                        starting at step <nstep>.  If no step number is
                        specified editing proceeds from the step were the 
                        last editing session was terminated.  If no program
                        is specified, the last program edited is re-opened.\.

DEFPRO <prog>		\jUsed primarily for reading user motion programs
                        that have been dumped to paper tape via the PUNCHP
                        instruction.  Successive program steps are read in
                        until an empty line or illegal motion is encountered.\.

\COnce having entered the EDIT program, the following edit functions may be invoked.

\F1\L      Command     	       	\R	Operation                                 
<any motion instruction>  \jReplaces the motion instruction stored at the 
                        current step with the instruction typed in.  The 
                        next step is then displayed for editing.\.

<cr>                      \jTyping an empty line ( carriage return ) leaves the
                        current step unaltered and displays the next 
                        instruction for editing.\.

D <nstep>         	\jDeletes an arbitrary number of instructions starting
                        with the current instruction step.  If nstep is not
                        specified, only the current step is deleted.\.

E <prog>,<nstep>	\jSwitches EDITing from the current program to the
                        new user motion program <prog> starting with
                        step <nstep>.  As always, <nstep> can be omitted
                        and editing will begin with the first motion

I                        \jMoves 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.\.

L                        \jLeaves the current step unaltered and displays the
                        previous step for editing.\.

P <nstep>		\jPrints the next <nstep> number of program steps
                        and sets the current line number equal to the
                        last line printed.\.

S <nstep>		\jLeaves the current step unaltered and displays the
                        instruction which is at step <nstep> in the user

T                        \jReturns to monitor program.\.

\CThe following commands are used to get hard copies of programs and transforms.

\F1\L  Command     	       	\R	Operation                                
LISTT <t1>,....,<t8>	\jTypes out the values of up to eight differenct
                        transforms.  If no transforms are specified, the
                        values of all existing transforms will be printed.\.

PUNCHT <t1>,...,<t8>	\jPractically the same as the LISTT instruction 
                        except that no header is typed and the transform
                        names and values are printed in "TF" format.  Also
                        a series of nulls are printed before and after
                        the transforms to provide some leader paper tape.\.

LISTP <prog>,<s1>,<s2>	\jTypes out the user motion program <prog> from step
                        <s1> to step <s2>.  If the step numbers are omitted
                        the entire program will be printed.\.

PUNCHP <prog>,<s1>,<s2>	\jSame as LISTP except that leading and trailing
                        blank paper tape is punched.\.

PROGS                        \jPrints out the names of all defined user programs.\.


\L  Command     	      \R	Operation                                 
CLEAR                        \jRe-initializes ARM program so that all transforms
                        and user programs are deleted.  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                        \jMonitor program stops, computer exits to ODT.\.

FREE			\jTypes out percentage of free storage left.\.


\L   Code                    \R   Meaning                                              
1,2,3,4,5,6,7		\jNumber of arm joint out of tolerance or preventing
                        required arm solution.\.

8                       \jDesired position too close.\.

9                       \jDesired position too far out.\.
\JIn the following motion instructions all distances are in inches, time
is in clock ticks (100 ticks per second), and strings can be up to one line

\F1\L  Command     	   \R  		Operation                                 
DRAW dX,dY,dZ		\jMoves the arm along a straight line a distance of dX
                        in the X direction, dY in the Y direction and dZ in
                        the Z direction.  Any distances omitted are assumed
                        to be zero.  The arm configuration and orientation
                        are maintained during this motion.\.

GO   <trans>		\jMoves the arm to the position and orientation specified
                        by transform <trans>.  There is no path computed for
                        this motion,  the hardware position servo operates in
                        slew mode.  Any changes in configuration requested by
                        the user are executed during the motion.\.

MOVE <trans>		\jMoves the arm to the position and orientation specified
                        by transform <trans>.  Intermediate set points between
                        the initial and final arm position are computed by 
                        interpolating the initial and final joint angles.
                        Any changes in configuration requested by the user are
                        performed during the motion.\.

DEPART <distance>	\jMoves the arm hand a distance of <dist> along the
                        current axis of rotation of the last joint.  Negative
                        distances move the hand forward, positive distances
                        move the hand back.\.

APPRO <trans>,<dist>	\jMoves the hand to the position and orientation 
                        specified by <trans> offset by a distance <dist> along
                        the axis of rotation of the last joint.  Positive
                        distances move the hand away from the specified
                        transform position, negative distances move the
                        hand beyond the transform position.\.

READY                        \jMoves the arm to the READY position above the work
                        space.  This forces the arm into a standard
REST                        \jMoves the arm to the REST position.  This leaves the
                        arm in a safe position in case power is turned off.
                        If no special speed has been set via the SPEED command,
                        the arm will move to rest at half the normal speed.\.

OPEN <dist>		\jChanges the hand opening to <dist> inches.\.

GRASP <dist>		\jCloses the hand and generates an error message
                        if the final hand opening is less than <dist>.\.

DRIVE <jt>,<angle>,<time>  \jOperates 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.  The
                        duration <time> must be specified in clock ticks.\.

WAIT <time>		\jHalts motion for <time> in seconds.\.

PAUSE <message>		\jTerminates execution of motion program and types
                        a message.  Execution can be continued from this
                        point by typing P.\.

STOP                    \jSame as PAUSE except that motion cannot be continued.\.

COMMNT <string>		\jComment line, a no-operation at run-time.\.

TYPE <message>		\jTypes the string <message> on the teletype.\.

RIGHTY or LEFTY		\jRequests a change in arm configuration to a left
                        or right shouldered arm.\.

ABOVE or BELOW		\jRequests a change in arm configuration so that the
                        approach angle of the hand is from below or above

FLIP or NOFLIP		\jChanges the range of operation of joint 5 to 
                        plus (NOFLIP) or minus (FLIP) angles.\.

SPEED <percentage>	\jRequests that the next arm motion be performed at
                        a speed other than normal( = 100).  The percentage
                        can range from 1 ( extremely slow ) to 32000 
                        ( hardware slewing mode ).\.

COARSE                        \jThe low tolerance feature is enabled in the
                        hardware servo so that larger errors in
                        the final position of the arm joints will be 
                        permitted at the end of the next motion.\.

INTOFF                        \jTurns off the hardware position error integration
                        feature during the next motion.\.

INTON                        \jForces the hardware to integrate the position error
                        throughout the next motion.\.

PULSE                        \jEnables the hardware hand pulse mode during the
                        next arm motion for approximately 100msec.  This
                        mode is useful for freeing the hand after it
                        has jammed open or closed.\.
Top Level Instructions

\F3             TRANS <transform>
             HERE <transform>
             TF <transform>,X,Y,Z,O,A,T
             EXEC <program name>,<pass count>,<starting step>
             LISTT <trans #1>, .... , <trans #8>
             PUNCHT <trans #1>, .... , <trans #8>
             LISTP <program name>,<first step>,<last step>
             PUNCHP <program name>,<first step>,<last step>
             DEFPRO <program name>
             EDIT <program name>,<step number>

\F1Edit Instructions

\F3             <any motion instruction>
             S <number of steps>
             D <number of steps>
             E <program name>,<step number>

\F1Motion Instructions

\F3             DRAW         dX,dY,dZ
             GO <transform>
             MOVE <transform>
             DEPART <distance>
             APPRO <transform>,<distance>
             DRIVE <joint>,<angle>,<time>
             OPEN <distance>
             GRASP <distance>
             COMMNT <any string>
             TYPE <any string>
             WAIT <time>
             PAUSE <any string>
             SPEED <percentage>