David G. Alciatore,
Jeff Sorrentino, John Wood
Department of Mechanical
Colorado State University
originally posted: 1/10/96
last edited: 2/18/2012
See robot video demonstrations
including a demonstration of how to use the Adept robot and
a look at the internal design and construction
|**** IMPORTANT: EMERGENCY SHUTDOWN **** |
TO ABORT A ROBOT MOTION (IN CASE OF UNEXPECTED MOTION OR EMERGENCY),
E-STOP plunger on the system control panel
To restore from an E-STOP, pull out the red plunger (rotate clockwise), then type ENABLE POWER on the terminal or press the COMP/PWR button on the MCP.
^S / ^Q: scroll stop/continue.
^C: break / cancel.
^W: scroll slow/normal toggle.
^U: cancel current input line.
Pressing the UP ARROW or DOWN ARROW cycles through the previous commands you entered on the command line. This can save a lot of re-typing.
After the System Startup procedure is complete, you can type commands to the robot from the command prompt (indicated by a period: .). See the Command Execution and Program Execution sections.
Program Instruction (PI): instruction executed from a program or at the monitor prompt with a DO statement.
Function (F): callable routine which returns a value.
A function call can only appear where a value is expected (e.g., an assignment
NOTE - anything shown in brackets  in this reference guide is an optional parameter.
DO program instruction
allows program instructions to be executed at the "." prompt.MC monitor command
allows monitor commands to be executed from within a program file.COMMANDS program filename
executes a program file containing only MC instructions.Note:
Use "MC DO program instruction" to execute program instructions in a COMMANDS file.
Monitor Commands (MC) can be executed directly at the "." prompt. All commands and instructions can be abbreviated by enough leading characters to uniquely identify the command (e.g., EN PO for ENABLE POWER). MC instructions and normal program instructions cannot be mixed in the same program.
FORMAT A: [/Q /H]
hard disk: C: floppy drive: A: path specification: drive:[sub1\sub2]\ (be sure to include trailing \). file specification: drive:[sub1\sub2\]file[.ext] (Note: the extension is required for some commands; e.g., FDEL) file name extensions: V2 (programs and variables), PG (programs only), LC (locations only), RV (real variables only), ST (string variables only), VS (vision prototypes), DAT (data). maximum filename length: 8 characters (not counting the extension)
DEFAULT DISK = path
formats (and therefore erases) a double-density disk in the A: drive. Use the Q switch for ADEPT double-sided, the H switch for DOS compatible double-sided, no switch for ADEPT single-sided (also DOS compatible). Formatting is required to prepare a disk for use with the floppy drive (MC).
NOTE: This command is not required for pre-formatted DOS/Windows discs.
NOTE: Be very careful to make sure you never format the hard disk (C:) - everything, including the operating system, would be be lost!!!
STORE[x] file_spec = prog_name[s]
defines a default (current) drive and/or subdirectory (MC).
Ex: DEFAULT DISK = C:MECH564\
NOTE: The DOS/UNIX command CD can also be used to change to a subdirectory (CD subdir) and go up one directory (CD ..).
stores a program, its subprograms, and/or its variables (locations, numbers, strings) in a disk file (MC).LOAD file_spec
[x] can be:
P: for program and referenced subprograms only.
L: for locations only.
R: for real variables only.
S: for string variables only.
missing: program and all associated data.
Note: writing over an existing file is not allowed; the old file must be FDEL'd first (e.g., after first using FCOPY to make a backup)
loads a disk file into memory (default file extension: V2) (MC).FDIR [path]
lists the contents of a directory (MC).FDIR/C path
create a directory indicated by path (MC).FDIR/D path
delete a directory indicated by path (MC).FDEL file_spec
delete a file from a disk (MC).FRENAME new_spec = old_spec
Note: the file extension is required.
rename a disk file (MC).FCOPY new_spec = old_spec
copy a disk file (MC).FLIST file_spec
list the contents of a disk file (MC).
USING FTP TO STORE FILES ON ENGR
NOTE - This feature is currently unavailable.
You can transfer files to and from the ADEPT computer from a remote system (but only if the ADEPT is turned on.)
to execute programs or access data, they must be first loaded into memory. See disk I/O section for loading data. the contents of memory are lost at power down, so anything you want to retain must be stored on a disk.
list the names of all programs in memory (MC).LIST[x] [object list]
list the contents of an object in memory. If object is not included, all objects of the specified type will be listed. The object type must agree with [x] (MC).DELETE[x] object list
[x] can be:
L: location variable.
R: real variable.
S: string variable.
LISTP STARTUP (displays the program STARTUP).
LISTL (lists all location variables and their values).
LISTR data (lists all values in array data).
delete object from memory. The object type must agree with [x] (MC).ZERO
[x] can be:
P: program, referenced subprograms, and variables.
R: real variable.
S: string variable.
Missing: programs and data.
erases the total contents of memory. Make sure you save to disk anything you want to keep before executing this command (MC).COPY new_prog = old_prog
make a copy of a program in memory (MC).RENAME new_name = old_name
rename a program in memory (MC).
displays or sets a system parameter; a parameter is a quantity which can take on a range of values (e.g., PARAMETER V.THRESHOLD = 95 to set the binary vision threshold [range: 0 to 127] to 95) (MC).SWITCH [switch_name]
displays system switch settings. A switch can only take on one of two values: ON or OFF (MC).ENABLE switch_name
turns a system switch ON (MC/PI).DISABLE switch_name
turns a system switch OFF (MC/PI).SWITCH(switch_name)
returns the value of a specified switch (F).Useful Switches:
POWER robot arm power. CP continuous path trajectory control (on by default). VISION vision system. TRACE program step display before execution. DRY.RUN robot controller state (for testing programs w/o robot motion).
joint interpolated: joint motions are linearly interpolated from one location to another. straight line: tool traverses a straight line path and orientation is maintained from one location to another.
Angles are measured in degrees, distances are measured in millimeters (mm). Continuous path (CP) motion causes smooth transitions between motion instructions. Motion is maintained through the task points rather than coming to a complete stop. Activate CP with ENABLE CP; deactivate with DISABLE CP. The "S" suffix for certain motion commands indicates straight line end-effector motion; otherwise, joint-interpolated motion is assumed. The"I" suffix for the gripper functions indicates immediate action; otherwise, the function is performed during the next motion instruction. Do not use the jaw gripper functions when the vacuum suction tool is attached. If you do this by mistake, execute RELAXI.
moves the robot to a location (PI).DRIVE joint, change, speed
moves a single joint (1, 2, 3, or 4) a given increment at a given speed (PI).APPRO[S] loc,dist
moves to a position a given distance above a location (PI).DEPART[S] dist
moves vertically away from the current location (PI).OPEN[I]
opens the jaw gripper (This function is equivalent to SIGNAL 3002, SIGNAL -3001) (PI).CLOSE[I]
closes the jaw gripper (This function is equivalent to SIGNAL 3001, SIGNAL -3002) (PI).RELAX[I]
relaxes (turn off air pressure to) the jaw gripper (This function is equivalent to SIGNAL -3001, -3002) (PI).SPEED
MC: SPEED valueDELAY time
set the monitor robot speed as a percent (0 to 100 - default: 50) of the maximum allowable.PI: SPEED factor [ALWAYS]
set the speed percentage factor (0 to 100 - default: 100) to be applied to the monitor speed for the next motion instruction. The ALWAYS switch causes the speed to apply to all subsequent motion instructions in the program (until another SPEED instruction).F: SPEED(i)
returns the current monitor (i=1) or program (i=2) speed.
stops robot motion for a given number of seconds (PI).BREAK
delays program execution until the current motion finishes. This causes a break in the continuous path if CP is enabled (PI).DURATION time
sets the time for the subsequent motion to take (PI).ACCEL acc, decc
sets the acceleration and deceleration percentage factors (1 to 100 percent of allowable maximums) for subsequent motion instructions (PI).
precision point - location defined by its joint values (θ1, θ2, d3, θ4). Variable name must begin with a pound sign (e.g., HERE #start). Useful for a high precision fixed configuration location specification. transformation - location described by a cartesian end-effector specification (x, y, z, yaw, pitch, roll). Requires LEFTY/RIGHTY specification to determine configuration. relative transformation - defines a transformation relative to another (e.g., HERE pallet:post defines transformation post relative to pallet). Useful for defining locations relative to a mobile but fixed geometry pallet. location expression - various transformations concatenated (multiplied) with the ":" operator (e.g., A:RX(45):DX(10))
displays the current robot location (MC).HERE loc
assigns the current robot location to the location variable loc (MC, PI, F)RIGHTY
specifies a right-elbow configuration for the next motion (PI).LEFTY
specifies a left-elbow configuration for the next motion (PI).POINT loc_var [= loc_exp]
assigns a location expression to a location variable and allows keyboard editing of the values (MC).SET loc_var = loc_exp
assigns a location expression to a location variable (PI).TRANS(x, y, z, n, p, r)
returns a transformation defined by six cartesian components (F).RX(ang), RY(ang), RZ(ang)
returns single axis rotation transformations (F).SHIFT(trans BY x, y, z)
returns a translation-shifted transformation (F).DECOMPOSE array[index] = loc
stores the location components of a location variable (precision point or transformation) in an array starting at a given index (PI).DX(loc), DY(loc), DZ(loc)
returns the displacement components of a transformation (F).SOLVE.TRANS loc_var, ERROR=array[index]
calculates location transformation given an indexed array of joint values. ERROR = return status. (PI)SOLVE.ANGLES joints[index], joints_flag1, ERROR=trans, start[index], start_flag
computes joint positions from a location transformation. ERROR = return status, flag = 0:LEFTY, 1:RIGHTY. (PI)INRANGE(loc)
determines whether or not a location is reachable (i.e., is in the workspace) (F).FRAME(loc1, loc2, loc3, loc4)
returns transformation defining a frame with origin at loc4, x-axis from loc1 to loc2, and y-axis from x-axis to loc3.TOOL [trans]
defines tool transformation between the tool mounting flange to the tool tip (MC, PI, F).
for the jaw gripper, use TOOL = TRANS(0,0,0,0,0,30) to align the jaw axes with the tool coordinate system.
TIMER i = 0 or TIMER(i) = 0
CASE expression OF
VALUE value1[, .....]
VALUE value2[, .....]
WHILE logical_exp DO
See also: Student-created vision system guide
Note: Calibration is required every time the system is powered up in order to use the vision system.
Output from the calibration: threshold settings, relationship between pixels and linear dimensions (scaling and aspect ratio relations), transformation to.cam relating the end of link 2 to the field-of-view of the camera.
VISION enable the vision system
(ENABLED to use vision system).
V.BACKLIGHT establishes the background color (white/black)
(ENABLED for white background).
V.BINARY enable binary image processing (disable grayscale)
(ENABLED to use binary vision).
V.BOUNDARIES enables boundary analysis processing
(ENABLED to enable identification of object boundaries in a scene).
V.HOLES enable processing/accounting of interior holes in parts
(DISABLED to ignore interior holes in scene objects).
V.RECOGNITION enables prototype identification
(ENABLED to enable matching of object boundaries to prototypes).
VDISPLAY mode [, overlay]
determines what is displayed on the monitor. This has no effect on the results of the vision processing (MC, PI).
-1 live grayscale image.
0 live binary image (useful for setting V.THRESHOLD).
1 grayscale image from last VPICTURE.
2 binary image from last VPICTURE.
3 special graphics (useful for showing (with V.SHOW switches) the results of the vision processing).
TRUE to overlay special graphics (useful for displaying user graphics (e.g., from RULERI) over the current picture).
VPICTURE [mode, how_many]
grabs a camera image and optionally performs vision processing. Processed object data (if generated) is stored in a queue for retrieval with VLOCATE (MC, PI).
-1 acquires and processes the image (this is the default).
0 initiate processing of previously acquired image.
1 acquire an image but don't process.
2 perform a quick frame grab.
specifies the maximum number of objects for the processing to try to recognize.
initiate training or continue training examples of a prototype object for later identification by image processing (MC, PI).VLOCATE (, 2) $name, loc
set camera 1 by pressing the Set/Clr button and then the Rec/Done button.
use +/- to step through entities.
Use Yes/No to respond to questions.
Use REC/DONE to accept or continue.
several (at least two) examples must be trained.
see pp. 79-91 in "AdeptVision AGS User's Guide" for more information.
returns the prototype name and location (relative to the camera FOV) of the next object in the VPICTURE processed data queue. Success of this function is indicated by VFEATURE(1) (FALSE implies end of list) (PI).
Note - VWINDOW can be used to limit the area searched and improve the success rate.
VLOCATE (, 0) "proto_name", loc
returns the location (relative to the camera FOV) of a prototype object in the VPICTURE processed data queue. Success of this function is indicated by VFEATURE(1) (FALSE implies an object of the given prototype form was not in the FOV during VPICTURE) (PI).
Note - VWINDOW can be used to limit the area searched and improve the success rate.
returns information about an object that was VLOCATE'd (F).
1: flag indicating if VLOCATE was successful or not (true (-1) or false (0)).
2: x-coordinate of object centroid (in FOV).
3: y-coordinate of object centroid (in FOV).
7: z-rotation of object (i.e., orientation in the horizontal plane).
17: whether a hole is present or not.
VRULERI (camera, type, dmode) data = 1, xo, yo, L, ang
lays a straight line (ruler) across an image and records transitions in color along the line (ruler) (PI).
camera=1, type=0 (standard binary ruler).
dmode (ruler draw mode) = -1 (no draw), 0 (erase), or 1 (draw).
xo, yo: starting point of ruler in FOV(mm).
L: length(mm) of ruler.
ang: angle of ruler from FOV x-axis (¡).
data: array containing data returned from the function:
0: # of transitions along ruler (n).
1: color of starting pixel.
2 to (n+1): distance(mm) of each transition point from the starting point.
VSTORE file_spec = name1[, name2, .....]
stores vision prototype[s] in a disk file.
loads vision prototype[s] from a disk file.
deletes a vision prototype from vision memory.
VRENAME proto_new = proto_old
renames a prototype in vision memory.
; Program to locate the TARGET in the field of view and pick it up
; with the vacuum suction tool. to.cam must be previously defined
; by vision calibration. part.grip must be previously defined by
; manual teaching. The TARGET prototype must be loaded.
SPEED 20 ALWAYS
VLOCATE (, 2) "TARGET", fov.loc
IF NOT (VFEATURE(1)) THEN
TYPE "TARGET is not in the FOV of the camera"
PROMPT "Move TARGET into the FOV and hit RETURN", $cr
DECOMPOSE jt = #pict.loc
SET link2 = pict.loc:RZ(-jt):TRANS(,,-jt)
SET obj.loc = link2:to.cam:fov.loc
SET grasp.loc = obj.loc:part.grip
APPROS grasp.loc, 10
PROMPT "Hit RETURN to return part", $cr
PROMPT "Move the TARGET and Hit Return to continue", $cr
fov.loc 1 0 0 0 1 0
0 0 1 107.15625 85.668655 0
grasp.loc 0.94044149 -0.33995634 0 -0.33995634 -0.94044149 0
0 0 -1 659.19281 115.05168 783.65313
link2 0.88274276 -0.46985676 0 -0.46985676 -0.88274276 0
0 0 -1 527.03521 200.90631 879.29998
obj.loc -0.46829047 -0.88357466 0 0.88357466 -0.46829047 0
0 0 1 659.83923 111.9056 699.8034
part.grip -0.14002296 0.99014842 0 0.99014842 0.14002296 0
0 0 -1 -2.4770812 -2.0444335 83.849731
pict.loc 0.90227979 -0.431151 0 -0.431151 -0.90227979 0
0 0 -1 527.03521 200.90631 793.65106
#pict.loc 62.535938 -90.560935 85.648925 -2.4843747
to.cam 1.7735231E-03 0.99999845 0 0.99999845 -1.7735231E-03 0
0 0 -1 73.190757 -90.838272 179.49658
150 Rose Orchard Way
San Jose, CA 95134
FAX: (408) 432-8707
Adept Customer Support Calls:
Adept Sales (CO rep):
(816) 862-6811 (Roger Marble)
Applied Robotics (end-effector change system):