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):
- Insert fargo into box
- Place lid on box
- Screw screw1 into lid and box
- 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
- 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.
- 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.
- 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.
- 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.
- Partitioning:
Repeat until success:
Given an assembly A, hypothesize a subassembly S
and veryfy that S and A\S can be separated.
- 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
- 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.
- 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.
- 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: