Robotics Project 3

timestamp : Wed Aug 6 08:55:38 PHT 2008

general problem specification : pick and place operation with the RVM1 manipulator.

project specifications :

Using the kinematic equations from the previous project, generate a set of commands
for pick and place operation of several objects.  A camera will be used to acquire the
position of objects.

Six objects will be laid out on a white field.  The objective for the project is to move all
six objects from the original position on the white field to a stacked pyramid position,
i.e. three objects on the bottom level, two objects on the middle level and one object on the
top level, somewhere in the workspace of the manipulator.

The coordinates of the object will not be given.  However, an
image from a CCD camera will be available for some basic image processing.
The coordinates of the camera will be available.

Two images of the field will be given during runtime.
a) Reference / calibration image
b) Actual image

The reference image will contain one object located at coordinate (0, 380, 0) mm.
The actual image will contain all six objects.

Part of the project involves processing reference image and extracting useful information
that can be used in determining the location of six objects in the actual image.

The object is a cylinder with diameter = 35 mm and height = 42 mm.
The length (along x-axis) and width (along y-axis) of the white field
are 534 mm and 211 mm, respectively.  You must figure out the location of the
field from the reference image.

Objects may be placed very close to each other (minimum distance of 10 mm).
Gripper orientation is important to be able to pick up an object without
disturbing neighboring object(s).

Once the location of the objects are determined, a series
of MJ (move joint), GO (gripper open), GC (gripper close) commands must be generated
to pick and position the objects in the pyramid position.  The
center object of the pyramid must be located at (380, 0, 0) mm.

project output :

Octave (not Matlab) is the preferred platform for this project.
However, you may also write a C program if you desire.

Assume that a grayscale image reference / calibration image
and a grayscale actual image will be available during runtime.
Sample images are provided.

The program should process the images
and generate (and store in a text file) a series of commands (MJ, GO, GC only)
similar to the format specified in the previous project.  The GO and GC commands
should have no parameters.

The program should also generate a copy of the supplied image
with cross hairs superimposed on the found objects,
and showing what orientation the object will be picked up from.

additional requirements / information :

All coordinates are reference as shown in manipulator.jpg.

The end-effector opens at a width of 50 mm.  The actual gripper assembly
is 25 mm deep with the end-effector reference point 20 mm from the tip.

The camera is located at around (0, 380, 1100) mm.
Sample images.  calibrate.jpg and snap.jpg.

The object locations (x,y) shown in the sample snap.jpg are
(200, 305), (100, 330), (-100, 305), (-150, 330),  (0, 330), (0, 380) mm.

More recent samples are here. calibrate.jpg snap.jpg.
These images would most likely be similar to the ones you would be getting on testing day.

The base of the objects are located on the x-y plane, i.e. at z = 0.
The pyramid base will also be at z = 0.

The program should be compatible with GNU Octave, version 2.9.12 or can be compiled with gcc version 4.1.3.
5 minute report + 2 minute Q&A
complete documentation.
verify your solution, consult me.

final submission : 3 weeks
   everything (project, documentation and presentation) must be ready by 3 weeks time.
    each group will have a total of 5 minutes to report + 2 minutes for Q&A.