Assembly Planning


Path Space

The assembly planning problem is to plan the motions necessary to assemble a given product made of n parts.

It can be regarded as the problem of ccordinating the motion of n objects. If these objects are all rigid, it implies exploring a C-space of dimension m = 6 n, in a 3-D workspace.

However, most products are designed so that each motion is relatively simple, e.g., a translation along a single direction, or a coordinated translation and rotation.

Then rather than representing the moving objects by a point in a large composite C-space, it may be preferable to describe each allowable motion by few parameters and to represent it by a point in the corresponding parameter space, called the path space.

For example, suppose we allow only infinite translations. The path space is then the space of unit vectors in 3-D, i.e., the unit sphere S2. A point in S2, along a subassembly S, uniquely defines the motion of S, since the goal position of S is known.

Assembly Sequence

Let an assembly A be defined by the geometry of its parts and their relative positions in the assembly.

Assume no that parts are "free-flying", that is, can move on their own.

An assembly sequence is an ordering of operations to construct A from its individual parts.
Each operation generates a new subassembly by merging individual parts and/or subassemblies constructed by previous operations.
Each operation is defined by the relative motions of the parts involved.

Example (assembly made of 5 parts: box, cargo, lid, screw1, and screw2):
  1. Insert fargo into box
  2. Place lid on box
  3. Screw screw1 into lid and box
  4. Screw screw2 into lid and box
When all parts are rigid and there is no uncertainty, there is a bijection between assembly and disassembly sequences.

Characterization of Assembly Sequences

  1. Number of hands In an assembly operation a "hand" moves a part or a subassembly as a single rigid body. One "hand" can be fixed (e.g., the assembly table).

    The number of hands for an operation is thus the number of parts/subassemblies that move with respect to one another. The number of hands for an assembly sequence is the maximum number of hands required by its operations.

    It can be shown that an assembly of n parts can require up to n hands.

    A two-handed assembly sequence is one that only requires two hands.

  2. Monotonicity A monotonic assembly sequence is one in which every operation builds a final subassembly.

    A product may not admit a monotonic assembly sequence for some number of hands, but it may admit one for a greater number of hands.

  3. Linearity A linear assembly sequence is two-handed and adds one single part to a subassembly at each operation.

    A product may admit no linear sequence.

  4. Number of directions Consider a two-handed assembly sequence in which each operation is an infinite translation. The number of directions is the number of translations along distinct directions.

Generate-and-Test Approach

First compute a disassembly sequence. Then reverse that sequence.
  1. Partitioning:

    Repeat until success:
    Given an assembly A, hypothesize a subassembly S and veryfy that S and A\S can be separated.

  2. Recursion:

    Apply Step 1 with A = S and A = A\S, until all subassemblies are indivisual parts.
The number of candidate partitionings of A is exponential in the number of parts, though there may exist very few feasible partitionings.

Step 1 requires an efficient partitioning test. This test is usually based on analyzing contacts between S and A\S.

Non-Directional Blocking Graph Approach

  1. Define the space P of allowable paths, e.g., S1 for infinitesimal and infinite translations in the plane, S2 for infinitesimal and infinite translations in 3-D, S5 (5-D sphere in 6-D) for infinitesimal motions in 3-D, etc.

  2. Preprocessing

    Partition P into cells such that the "blocking relations" among parts remain the same over each cell.

    For example, assume that P consists of infinite translations. A point d in P defines a translation. Take any two parts P1 and P2 in the assembly. P2 blocks P1 along d if translating P1 along d leads P1 to overlap P2. The cells in P are such that if one part blocks (resp. does not block) another for a direction in this cell, it will do so for all directions in this same cell.

    In each cell, represent the blocking relations as a directed graph, called a directional blocking graph, or DBG. The nodes of this graph are the parts composing the assembly. A part P1 is connected by an arc to a part P2, if P2 blocks P1.

    The nondirectional blocking graph, or NDBG, is the collection of cells in P and their associated directional blocking graph.

  3. Query Processing:

    Exploit the NDBG to partition the assembly into two separable subassemblies.

    Take a DBG. If a subset of nodes in this DBG have no outgoing arc towards other nodes of the DBG, this subset defines a subassembly that can be separated from the rest of the assembly by a motion in the cell over which the DBG has been constructed.

    Therefore, scan all DBGs in the NDBG, until one allows to partition the assembly. Then repeat recursively with the NDBG of the two subassemblies.

Examples


Arbitrary Motions: Interference Diagram

The interference diagram is an intermediate data structure that allows the partitioning of a more complex motion space, e.g., the space of all k-translations, into cells such that each cell admits a single DBG. A k-translation consists of a series of k-1 finite translations and one infinite translation.

Reference: Two-handed Assembly Sequencing.

Extensions: