Assembly planning with translations
The goal is to design a program to compute the disassembly sequence of
a product A. Each operation in the sequence applies to a subassembly S
(initially S = A) and partitions S into two subassemblies S1 and
S2. The subassemblies are divided into smaller subassemblies by
subsequent operations. The motion executed at each operation is an
extended on-step translation along some direction d. We assume that
each part of A is a simple polygon.
The project is organized into 4 steps:
- Compute the range of non-blocking directions for each pair
of parts in A: For an ordered pair (P1,P2) of parts of A,
a direction is said to be non-blocking if translating
P1 along d to infinity does not lead the interior of $P1
to overlap the interior of P2.
- Compute the non-directional blocking graph (NDBG) of A:
Represent the sspace of all possible translations by the
unit circle S1. Partition this circle into points and open
arcs such that in each arc all directions are blocking or
non-blocking for the same pairs of parts. For each
arc and point, compute the graph representing the blocking
relations between parts.
- Exploit the NDBG to find all possible partitioning of A:
This step is equivalent to finding the strong connected
components of the NDBG.
- Exploit the NDBG to generate all possible assembly
sequences of A
Related paper:
A General Framework for Assembly Planning: The Motion Space
Approach, by Dan Halperin, Jean-Claude Latombe, and Randall
H. Wilson.