AME 469 Project 2: Puma Development Project

It is now 2003 and you are working for a company that fabricates parts for the aerospace industry. All the parts that are produced need to be sprayed with a special coating that inhibits material degradation. In the past, your company has used a PUMA 260 equipped with a spray nozzle to coat the parts and they have used the teach-repeat method to program the robot. While extremely precise motion is not necessary, the robot does have to maintain about .25 inch precision in its motion in order to evenly coat the part that it is spraying.

Recently, your company has received many orders for small batches of parts. Since teach-repeat is tedious and the most boring part of your job, you have decided that instead of having to reprogram the robot every time a new part is fabricated, you will write a computer program that will automatically program the robot's trajectory for a given part.

The way you decided to do this is as follows. The CAD drawings and files are available for every part that is made. You can write a computer program that parses the CAD file to determine the shape of the part, and using that information, the computer program will output a VAL program that, when transferred to the robot via the GUI, will make it follow the correct trajectory. Basically, you are going to write a computer program that takes the output from another program (the saved CAD file) and writes another computer program (the VAL) that will be used by the robot.

Your boss is enthusiastic about your proposal because it will be cheaper and more efficient than the current need to always teach the robot a new trajectory every time a new part is designed, and has asked you to demonstrate its feasibility.

The CAD file format that the design engineers use is called DXF, which stands for Document eXchange Format. CAD programs, such as autocad can export files in DXF format. ProE can as well, but not the student version. Autodesk, the maker of autocad, has the specification for DXF files available on line. It may be a good idea to skim most of it, but you will want to pay particular attention to the ENTITY called POINT. A sample DXF file that is a drawing of the cross section of an airfoil that you can use to help write your program has been furnished by the design team.

The part designers may use a variety of elements to define a part, but they always define a series of points (encoded in a DXF file by the "POINT" keyword) around the perimeter of the part. If the robot can have the spray nozzle follow close to those points with the correct orientation, it will follow the correct path to treat the part. If your program can read the points from the DXF file, it can then use them to do the necessary computations to create a VAL program.

To help you get started, for a huge consulting fee, one of your former professors wrote a C program that parses a different DXF file to look for the words "RADIUS," "ANGLE" and "STEPS" and to then read a radius, angle and number of steps which are numbers in the DXF file that appear on the line following the keywords. The same program creates a VAL program that causes the PUMA 260 to move in a circular arc of the radius, through the angle specified where the arc is approximated by the number of straight line segments that are specified by the line following STEPS. This program can be transferred to the PUMA via the GUI.

Since "time is money" your boss does not want any sort of written report describing what you did. All that is required is that you submit your code and demonstrate that the program works by:

  1. causing the end effector currently on the robot to trace along the edge of the airfoil outline (from the supplied DXF file) that is taped to the base of the robot platform and for the front edge to remain in a relatively normal orientation relative to the airfoil edge; and,
  2. running your program on a DXF file that will be supplied at the time of the demonstration and having the front edge of the end effector trace along the edge of the outline of the object in the new file.
Since it is the most common programming language in the world, the program must be written in C.

Since a huge number of new part orders is arriving soon, this program must be running by March 30, 2000.

Return to the AME 469 Homepage.


Bill Goodwine (jgoodwin@nd.edu)
Last updated: March 8, 2000.