Orienting Polygonal Parts without sensors


This applet illustrates an algorithm for automatic polygon orientation without sensors.

We assume the following background : in a factory, an assembly line is loaded with planar, polygonal parts. These parts are processed by a machine, which requires the parts to be reorientated before assembly. This is done by a so-called parts feeder. Often parts feeders have to be redesigned when part geometry changes. This can result in a costly and tedious trial-and-error process. The implemented algorithm is designed to work with the well-known parallel-jaw gripper. This gripper consists of two parallel jaws that are able to grasp, push und rotate parts. Given a polygonal part, the algorithm computes a sequence of robot actions. Executed by the jaw gripper, this plan orients the part regardless of its initial orientation on the assembly line.

A single robot action consists of the following steps :

  1. Orient the gripper at angle alpha with respect to its home position.
  2. Translate the gripper in direction alpha + pi / 2 for a distance delta.
  3. Close the jaws as far as possible.
  4. Translate the gripper in direction -( alpha + pi / 2 ) for -delta.
  5. Open the jaws.
We assume that distance delta is great enough to result in a stable configuration of the part. A stable configuration is achieved when at least one edge of the convex hull of the part is aligned with a jaw.

Start applet:

How to use the applet

On the left side of the applet there is an editor window. This is where polygonal parts are specified. Additional functionalty can be reached by clicking with the right mouse button into the editor. During computations the algorithm needs to know the polygon's center of mass. It can be automatically computed if masses are uniformely distributed. Arbitrary coordinates for the center of mass can be specified as well.

After completion of manual input, a plan for the gripper can be computed. It will appear as a sequence of angles in the upper right area of the applet window. Each angle corresponds to the execution of a single gripper action.

The main algorithm is based on the computation of five different functions. Having computed a plan, these can be displayed in a separate window.

Pressing the button "Execute plan" will open another window. The execution of a plan can be exemplified here. The window shows the part that was specified last and two parallel black lines for the gripper jaws. By clicking the reset button, the initial orientation of the polygon can be changed. Pressing the buttons "Start" and "Next step" respectively shows the execution of the sequence of actions stepwise. Since steps 4 and 5 in the description of a robot action have no influence on the orientation of the part, these steps are not visualized here. Thus for every angle there are three single steps that are visualized. Movement of the jaws is simply denoted by gray arrows. Note that the parts real center of rotation is not computed and used. This visualization should serve as a basic showcase rather than a completely realistic simulation.

Author: Torsten Baumgartner


[1]:Tom Kamphans, Rolf Klein, Elmar Langetepe: Bewegungsplanung für Roboter(Robot Motion Planning, Lecture Notes, University of Bonn, 2001
[2]:Kenneth Y. Goldberg: Orienting Polygonal Parts without Sensors, Algorithmica, Ausgabe 10(3), 201-225, August, 1993