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 online,
including a demonstration of how to use the Adept robot and
a look at the internal design and construction



  1. Make sure the main power breaker (labeled adept1 208 Volts) on the east wall of the Lab is in the ON position. It should be ON already.
  2. Make sure both power switches on the adept1 controller (on the west side of the robot base frame) are in the ON positions. They should be ON already.
  3. The robot brakes and gripper operate on pneumatic power.  Make sure the robot's black air hose is connected to the building air-supply line on the column next to the south-east corner of the robot base frame. It should be connected already.
  4. Turn on the surge protector power strip (with the small black toggle switch) on the west side of the robot base frame (to the left of the adept1 controller). You should hear the power supply fans start up.
  5. On the system control panel (on the south side of the robot base frame, labeled "adept1") turn on the SYSTEM POWER switch; the green light should illuminate (if not, push the Lamp Test button to see if the indicator light is burned out).
  6. Make sure the key switch is set to AUTO.  Never move this switch.
  7. Make sure the red E-stop plungers are pulled out on the control panel and the MCP (Manual Control Pendant.)  Rotate clockwise to pull out.
  8. Turn on the computer monitor.
  9. Wait for the start-up message and the monitor prompt (a period) to appear.
  10. Make sure the workspace is clear of people and objects.
  11. Type ENABLE POWER ("EN PO" for short) to activate arm power.  The amber HIGH POWER ON/OFF light should turn on. If this step fails, it is probably because the controller amplifier power switch is in the OFF position. If so, turn it on and try again.
  12. Type CALIBRATE ("CA" for short), respond with Y to have the robot calibrate itself.  This takes 1-2 minutes.  If calibration fails (because of *lost encoder sync*), manually move the suspect joints and try again. The resulting calibration holds for as long as the controller remains powered up, even if the arm power is turned off and enabled again.
  13. You can now operate the robot through the Terminal or the Manual Control Pendant.  See these sections for further details.
  14. If using the vision system, complete the vision calibration procedure in the Vision System Section of this reference.




    Push the E-STOP plunger on the system control panel
    Push the E-STOP plunger on the MCP

    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.


  1. Type DISABLE POWER ("DIS PO" for short) on the terminal to deactivate arm power.
  2. Make sure you save to disk anything in memory you wish to keep (programs, locations, vision prototypes, variables, vision calibration data). See disk I/O section for instructions.  Memory is lost when system power is turned off.
  3. Turn off the computer monitor.
  4. Turn the green power switch to "OFF" on the system control panel.
  5. Turn off the small black toggle switch on the surge protector power strip. The robot should become quiet at this point.


  1. After the System Startup procedure is complete, enable the MCP with the MAN/HALT button (right side).
  2. Select the motion mode by repeatedly pressing the MAN/HALT button (an LED will indicate the current mode):
  3. Select the degree of freedom to operate (j1/x, j2/y, j3/z, j4/roll).
  4. Operate the selected degree of freedom with the speed pot (-.........+) on the left side of the MCP, or in the case of FREE physically move the freed joint.
  5. To return to terminal control, press the COMP/PWR button.  This allows you to execute commands and programs from the terminal.


Useful terminal functions (^ = CTRL key):

^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.


Monitor Command (MC): command typed in at the monitor prompt (.) or executed from a program with an MC statement.

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 statement)

NOTE - anything shown in brackets [] in this reference guide is an optional parameter.


There are two types of commands: program instructions (lines in a program file) and monitor commands (typed at the "." prompt.)  Their use can be switched using the following commands:

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


    type "SEE prog_name" Three Modes of Operation:
    1. COMMAND [ESC key]- for issuing line-editor type commands (SEE starts in this mode.  You must change to INSERT or REPLACE mode to enter text.)

    3. INSERT [INSERT key]- for inserting text at the cursor

    5. REPLACE [F12] - for writing over text at the cursor
    Some Useful Functions (common functions are labeled on the keyboard template; the SHIFT key accesses the yellow commands): Some Useful Commands (in COMMAND mode):

    DISK I/O (MC)

  • 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)
  • FORMAT A: [/Q /H]

    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!!!

    DEFAULT DISK = path

    defines a default (current) drive and/or subdirectory (MC).

    NOTE: The DOS/UNIX command CD can also be used to change to a subdirectory (CD subdir) and go up one directory (CD ..).

    STORE[x] file_spec = prog_name[s]
    stores a program, its subprograms, and/or its variables (locations, numbers, strings) in a disk file (MC).
    [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)
    LOAD file_spec
    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).
    Note: the file extension is required.
    FRENAME new_spec = old_spec
    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).


    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.)

    Note:  Program files are ASCII text files, so use ASCII versus binary transfer.  You can edit program files in any ASCII text editor (such as Notepad.)


  • 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).
    [x] can be:
    P: program.
    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[x] object list
    delete object from memory. The object type must agree with [x] (MC).
    [x] can be:
    P: program, referenced subprograms, and variables.
    L: location.
    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).


    PARAMETER [param_name [= value]]
    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).
    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).


    Types of 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.
  • Note:
  • 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.

    MOVE[S] loc
    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).
    opens the jaw gripper (This function is equivalent to SIGNAL 3002, SIGNAL -3001) (PI).
    closes the jaw gripper (This function is equivalent to SIGNAL 3001, SIGNAL -3002) (PI).
    relaxes (turn off air pressure to) the jaw gripper (This function is equivalent to SIGNAL -3001, -3002) (PI).
    MC: SPEED value PI: SPEED factor [ALWAYS] F: SPEED(i)
    DELAY time
    stops robot motion for a given number of seconds (PI).
    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).


    Types of Location Variables:
  • 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)
    specifies a right-elbow configuration for the next motion (PI).
    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)
    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.


    EXECUTE prog_name [, cycles, step] ENABLE TRACE XSTEP prog_name [,cycles, step] X STATUS KILL task_num To Terminate Program Execution:


    Variables: General: I/O and MCP Control:

    TYPE output_spec

    PROMPT output_string, variable_list DETACH() ATTACH() Timing, Execution Control:

    TIMER i = 0 or TIMER(i) = 0

    TIMER(i) DELAY time PAUSE STOP Control Structures:


    See also: Student-created vision system guide


    Calibrating the Vision System:

    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[1] relating the end of link 2 to the field-of-view of the camera.

    Notes: Important Vision System Switches (set ON or OFF with ENABLE and DISABLE):

         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.

    VTRAIN proto_name

    initiate training or continue training examples of a prototype object for later identification by image processing (MC, PI).
        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.
    VLOCATE (, 2) $name, loc

    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.

    VFEATURE (index)

    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.

    VLOAD file_spec

    loads vision prototype[s] from a disk file.

    VDELETE proto_name

    deletes a vision prototype from vision memory.

    VRENAME proto_new = proto_old

    renames a prototype in vision memory.

    Example program:

         .PROGRAM vac_part()
         ; Program to locate the TARGET in the field of view and pick it up
         ; with the vacuum suction tool.[1] 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
         VDISPLAY 0
         100 VPICTURE
         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
         GOTO 100
         HERE pict.loc
         HERE #pict.loc
         DECOMPOSE jt[1] = #pict.loc
         SET link2 = pict.loc:RZ(-jt[4]):TRANS(,,-jt[3])
         SET obj.loc =[1]:fov.loc
         SET grasp.loc = obj.loc:part.grip
         APPROS grasp.loc, 10
         SPEED 5
         MOVES grasp.loc
         SIGNAL 2025
         DEPART 10
         PROMPT "Hit RETURN to return part", $cr
         SPEED 5
         MOVE grasp.loc
         SIGNAL -2025
         DEPART 10
         MOVE pict.loc
         PROMPT "Move the TARGET and Hit Return to continue", $cr
         GOTO 100

         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[1] 1.7735231E-03 0.99999845 0 0.99999845 -1.7735231E-03 0
         0 0 -1 73.190757 -90.838272 179.49658


    External Hardware Signals for auxiliary devices (available at DIO ports on the back of the controller.  See Chapter 13 of the ADEPT MV Controller User's Guide for details.  See also: Adept Binary I/O student report): Active Software Signals: SIGNAL [-]sig_num IO [i] SIG (sig1, sig2, ......, sign) RESET REACT[I] sig_num, prog_name IGNORE sig_num


    Lab Phone:
    System S/N:
    Versions: AdeptOne-MV, V+ 12.2

    Adept Technology
    150 Rose Orchard Way
    San Jose, CA 95134
    (408) 432-0888
    FAX: (408) 432-8707

    Adept Customer Support Calls:
    (800) 232-3378
    Adept Sales (CO rep):
    (816) 862-6811 (Roger Marble)
    Applied Robotics (end-effector change system):
    (518) 384-1200