Geometric Reasoning About Mechanical Assembly Randall H. Wilson and Jean-Claude Latombe Andreas Edlund Romain Thibaux
Assembly planning ● Assembly planning: – Initially: ● A bunch of loose pieces. – Goal: ● An assembled product. ● Uses: – Find assembly sequence. – Help contruct the building robots. – Analyze complexity of the product.
Virtual Manipulation Systems ● Hierachical approach. – First find just the sequence to assemble the product in the first iteration. – Introduce actual assembly robot in later iterations. ● In this paper: – Free flying parts.
Assembly instruction ● m is a subset of parts of the assembly. ● An assembly instruction: – Changes m's position and orientation. – Maintains the relative positions of the parts in m. ● m is a subassembly.
Assembly algorithm ● The algorithm is represented as a partial ordering where the nodes are assembly instructions. ● The algorithm is correct if all instructions represent collision- free motions.
Blocking structure ● The goal assembly is considerably more constrained than initial state. ● Start from goal and search backwards.
Blocking graph ● Previous approach: – Generate-and-test. ● Generate-and-test is inefficient because the contact analysis is done many times for no reason. ● Better to do a complete contact analysis first and store it. – A blocking graph is a compact representation of the results of this analysis.
Directional blocking graph ● Represents how the parts block each other in the assembly in every direction. ● A graph for each direction.
Directional blocking graph ● Various kinds of blocking graphs: – Infinitesimal translation. – Infinite translation. – Generalized motions (with rotations as well).
Terminology ● Locally free – Can translate infinitesimally in direction d without collision. ● Strongly connected component – Maximal subassembly such that for every pair of parts, a path exists between them.
Non-directional blocking graph ● Separate the set of directions into regular regions. ● One directional blocking graph per region.
Non-directional blocking graph ● Isolate every pair of parts that are in contact.
Non-directional blocking graph ● Find cone of allowed directions.
Non-directional blocking graph ● Each regular region represent a separate relationship between the part.
Non-directional blocking graph ● Repeat for next pair in contact.
Incremental updates ● Build the NDBG during the design of the product. ● Modification of a part can be represented as a deletion followed by an addition of a part. ● Delete: – Remove the corresponding node and all arcs connected to it. ● Add: – The a node and arcs to the other parts that are in contact.
3D
Face Edge Vertex
A B C 3D Incremental A B C
3D Incremental A B C AC B
Infinite translations
S5S5 3 Translations + 3 Rotations Translations + rotations
Complexity measures
A B C Blocking Graph A B A B C Assembly sequence Complexity measures NDBG …and more ! (next article) Summary