ME 469 Project 1: "Pick and Place" and "Teach and Repeat"

In manufacturing assembly operations, robots often perform what is called pick and place operations. As the name suggests, the robot picks up a part and places it somewhere else. For example, the robot may pick up a computer chip and insert it in the appropriate location on a circuit board. The way to program the robot to do this procedure is called teach and repeat. You teach the robot the required moves one time, and then it should be able to repeat the maneuver indefinitely. This project is an simple introduction into the programming required to make the Puma 260 in the robotics lab do this. This project should be very easy, and is an illustration of the types of robotics concepts that are necessary for industrial application.

Project objectives:

After completing this project, each group will be able to

The VAL Programming Language:

The Puma 260 robot was manufactured in 1983, and as such, is somewhat dated. VAL is a lot like many computer programming languages from that time: not necessarily cutting edge anymore, but it is the evolutionary basis for robotic programming languages today (such as V+), and as such, is good to know. A user can control the Puma 260 in the lab five ways:
  1. direct control with the teach pendant;
  2. issue individual commands to the robot using a terminal interface;
  3. write and store a program for the robot to execute using the terminal interface and the built-in editor in the robot controller;
  4. issue individual commands to the robot using the GUI; and,
  5. write a program on a work station using your favorite editor, e.g., emacs, xemacs, textedit, xedit, etc., and transfer the program to the robot through the GUI.
The first three methods are the traditional means for controlling the robot and the last two are part of an on-going development project for this class. This project will utilize each of these methods.

You are encouraged to program the robot using any of the VAL commands that you wish, but most likely you will use some of the following:

     MOVE, MOVET, MOVES or MOVEST
     DRAW
     APPRO or APPROS
     DEPART or DEPARTS
     HERE
     SPEED
See Chapters 4 and 5 of the Programming manual for details of each of these commands. Feel free to use other commands as well. You may also wish to consult Chapter 6 of the Programming manual for an example program.

Terminal Interface:

The computer communicates with the robot through its serial port. To establish communication with the robot, start a terminal emulation program, such as

    minicom

The terminal must be configured with the following transfer protocol:

    baud: 9600
    parity: none
    stop bits: 1
    bits: 8
    device: /dev/ttyS0

Minicom should have these for the default settings; however, if you do have to change them, hit

    control-a z
to pull up a menu. From there you can set the transfer protocol. See the man pages for each program or ask the instructor for more details (in that order).

To exit minicom, type

    control-a x

Power-up, Initialization and Calibration Procedure

Once you have started the terminal emulation program, it is time to start the robot (see section 3-5, page 3-26 of the Equipment and Programming Manual for the step-by-step details). In summary, you need to "initialize," "limp," "calibrate" and "ready" the robot.

Important:

  1. do not turn on the robot until after starting the terminal emulation program as instructed in the initialization procedure in the programming manual;
  2. make sure the the arm is supported, i.e. someone is holding it or it is in the nest position, before running the
    LIMP
    command; and,
  3. never set the speed above 10:

GUI:

The GUI walks you through the initialization procedure by way of a series of pop-up windows after you choose "initialize" from the File pull-down menu. After the robot is initialized, you can issue single commands from the Action pull-down menu, or transfer a VAL program from the Program menu. To start the GUI program, type
    puma
at the prompt on the computer. Unfortunately, the GUI is not completely debugged, so occasionally things may go awry.

Important: do not turn on the robot until the GUI tells you to.

What you must do:

In the lab (B22 Fitzpatrick) you will find the robot and the computer (currently, a laptop). If you have not already done so, you must get an account on the computer for your group. Since there is not (yet) a gripper for the robot, there is a small "fork-lift" end effector attached to the end of the robot. Using that, you are going to program the robot to lift the small "pallets" from some starting position and place it in some final position.

The first task is to program the robot to "swap" two pallets as illustrated in the following figure.

There are markings on a sheet of paper taped to the base that indicate the initial positions of the two pallets.

Outline: using the manual control pendant, you will be able to manually direct the robot through the steps necessary to swap the pallets. Using the

      HERE
command, you will be able to name or define the various points, which then could be used in a program with the
      MOVE point_name
command to have the robot automatically go through the sequence of steps necessary to swap the pallets. The program must start and end in the "ready" position.

Hint: sections 2-4 and 2-5 of the Programming Manual contain an example program which will be very helpful. Also, near those sections is a description of how to use the editor used to program the robot.

Hint: there are "program commands" and "monitor commands." To execute a program command directly from the terminal, append the command with "DO," e.g.

       DO MOVE POINT2
will make the robot move to POINT2. You cannot just type "MOVE POINT2."

Once you have defined the points, written the program and successfully swapped the pallets one time, you should see how many times in a row you can repeatedly swap the two pallets without interfering. If you successfully swap them 100 times, you can stop there.

Use the command

    EXECUTE program_name
to execute the program. To run a program repeatedly, use the command
    EXECUTE program_name,n
where n is the number of times you want it to repeat.

To stop an executing program, type

    ABORT
and the robot will stop at the end of the current command.

Grading:

The grade for the project (out of 100 points) will be based upon the results presented in a report written consistent whit the report guidelines. Additionally , there are 40 bonus points available as follows:

  1. 10 points for the group that successfully swaps the parts the most times in a row without human intervention.
  2. 10 points for the group with the shortest program that successfully swaps the parts at least 10 times in a row without intervention. (Remember, the robot must start and end in the "ready" position.)
  3. 20 points for writing a program using a text editor and using the GUI to download it to the robot that successfully swaps the pallets. You will need to consult with the instructor regarding the details of using the GUI.
If there are ties for the first two, the groups will split the points. Any group that does the third will get the 20 bonus points.

Return to the ME 469 Homepage.


Bill Goodwine (jgoodwin@nd.edu)
Last updated: September 16, 1998.