Assembly planning is the problem of finding a sequence of motions to assemb
le a product from its parts. We present a general framework for finding ass
embly motions based on the concept of motion space. Assembly motions are pa
rameterized such that each point in motion space represents a mating motion
that is independent of the moving part set. For each motion we derive bloc
king relations that explicitly state which parts collide with other parts;
each subassembly (rigid subset of parts) that does not collide with the res
t of the assembly can easily be derived from the blocking relations. Motion
space is partitioned into an arrangement of cells such that the blocking r
elations are fixed within each cell. We apply the approach to assembly moti
ons of several useful types, including one-step translations, multistep tra
nslations, and infinitesimal rigid motions. Several efficiency improvements
are described, as well as methods to include additional assembly constrain
ts into the framework. The resulting algorithms have been implemented and t
ested extensively on complex assemblies. We conclude by describing some rem
aining open problems.