You are on page 1of 98

Faculty of Computing and Information

Technology
Department of Robotics and Digital Technology
Technical Report 95-7

Computer-Aided Planning of Mechanical


Assembly Sequences
Maria Jo~ao Abrantes and Simon D. Hill
February 2, 1996
Enquiries:Technical Report Coordinator
Robotics and Digital Technology
Monash University
Clayton VIC 3168
Australia
tr.coord@rdt.monash.edu.au

+61 3 9905 3402

Contents
Abstract and Keywords
1 Introduction

vi
1

2 Computer-Aided Assembly Sequence Planning

1.1 Motivation : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
1.2 Organisation of the Report : : : : : : : : : : : : : : : : : : : :

2.1
2.2
2.3
2.4
2.5
2.6
2.7

Introduction : : : : : : : : : : : : : : : : : : : :
Representations of Mechanical Assemblies : : :
Classi cation of Assembly Sequences : : : : : :
Representations of Assembly Sequences : : : : :
Generation of Assembly Sequences : : : : : : :
Evaluation and Selection of Assembly Sequences
Complexity of Automatic Assembly Planning :

:
:
:
:
:
:
:

:
:
:
:
:
:
:

:
:
:
:
:
:
:

:
:
:
:
:
:
:

:
:
:
:
:
:
:

:
:
:
:
:
:
:

:
:
:
:
:
:
:

:
:
:
:
:
:
:

3 Overview of the Proposed Methodology

1
3

4
4
8
9
16
18
20

22

3.1 Introduction : : : : : : : : : : : : : : : : : : : : : : : : : : : : 22
3.2 General Methodology : : : : : : : : : : : : : : : : : : : : : : : 22

4 Assembly Modelling

4.1 Introduction : : : : : : : : : : : : : : : : : : : :
4.2 Initial Representation of Assemblies : : : : : : :
4.2.1 Relational Information : : : : : : : : : :
4.2.2 Topological and Mechanical Information
4.2.3 Fasteners : : : : : : : : : : : : : : : : :
4.3 Expert-System Representation of Assemblies : :

5 Assembly Knowledge Representation

:
:
:
:
:
:

:
:
:
:
:
:

:
:
:
:
:
:

:
:
:
:
:
:

:
:
:
:
:
:

:
:
:
:
:
:

:
:
:
:
:
:

:
:
:
:
:
:

30

30
31
31
33
38
39

41

5.1 Introduction : : : : : : : : : : : : : : : : : : : : : : : : : : : : 41
5.2 Fundamental Contacts Between Parts : : : : : : : : : : : : : : 42
5.3 Virtual Contacts Between Parts : : : : : : : : : : : : : : : : : 43
i

5.4 Contacts Between Subassemblies : : : : : : : : : :


5.5 Assembly Operation Feasibility Evaluation : : : : :
5.5.1 Feasibility Evaluation without Explanation :
5.5.2 Feasibility Evaluation with Explanation : : :
5.6 Minimising Knowledge Base Accesses : : : : : : : :

6 Application Examples
6.1
6.2
6.3
6.4
6.5
6.6
6.7

:
:
:
:
:

:
:
:
:
:

:
:
:
:
:

:
:
:
:
:

Introduction : : : : : : : : : : : : : : : : : : : : : : : : : :
Virtual Contacts and Unstable Connections : : : : : : : :
Insertion Path Obstructed by Intermediate Fixturing : : :
Assembly Requiring Multidimensional Part Insertion Path
Four Interlocking Blocks : : : : : : : : : : : : : : : : : : :
Non-monotone Assembly Sequence : : : : : : : : : : : : :
Non-coherent Assembly Sequence : : : : : : : : : : : : : :

7 Conclusion
Bibliography

:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:

46
47
48
50
57

66

66
66
80
81
83
84
85

88
91

ii

List of Tables
2.1 Mello's attribute functions for the contact entities in Figure 2.2 7
5.1 Decompositions for assembly in Figure 5.9 : : : : : : : : : : : 61

iii

List of Figures
2.1 Exploded view of assembly (a) and graph of connections (b). :
2.2 Mello's relational model graph for the assembly in Figure 2.1 :
2.3 Two Representations of States in the Directed Graph of Assembly Sequences. : : : : : : : : : : : : : : : : : : : : : : : : :
2.4 Directed graph of feasible assembly sequences for the assembly
shown in Figure 2.1 : : : : : : : : : : : : : : : : : : : : : : : :
2.5 De Fazio's \diamond representation" of feasible assembly sequences for the assembly shown in Figure 2.1 : : : : : : : : : :
2.6 Bourjault's product example and two assembly trees. : : : : :
2.7 AND/OR graph of feasible assembly sequences for the assembly shown in Figure 2.1 : : : : : : : : : : : : : : : : : : : : : :
2.8 Two solution trees for the product in Figure 2.1 : : : : : : : :
3.1 Simultaneous establishment of connections : : : : : : : : : : :
3.2 Functional modules of the system developed, and ow of information : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
4.1 Exploded view of simpli ed ashlight (a), graph of connections
(b), and incidence matrix (c) : : : : : : : : : : : : : : : : : : :
4.2 Relational Model of simpli ed ashlight : : : : : : : : : : : : :
4.3 Sample of Fundamental Connection Types : : : : : : : : : : :
4.4 Simple Didactic Assembly : : : : : : : : : : : : : : : : : : : :
4.5 Stacked parts fastened by a screw : : : : : : : : : : : : : : : :
5.1 Interference between parts without any real contact : : : : : :
5.2 Cross-section of didactic assembly : : : : : : : : : : : : : : : :
5.3 Rule propagate:inside : : : : : : : : : : : : : : : : : : : : : : :
5.4 Rules propagate:planar1 and propagate:planar2 : : : : : : : :
5.5 Cross-section of assembly showing insucient alignment clearance : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
5.6 Infeasible connection : : : : : : : : : : : : : : : : : : : : : : :
5.7 Four interlocked blocks : : : : : : : : : : : : : : : : : : : : : :
iv

6
6
11
12
12
13
15
15
27
28
32
33
35
36
38
44
44
45
46
51
52
53

5.8
5.9
5.10
5.11
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9

Assembly path of part A is obstructed by tool holding part D.


Cross-section and graph of connections of didactic example : :
Partial AND/OR graph of subassemblies of didactic example :
AND/OR graph of subassemblies of product in Figure 5.9 : :
Exploded View of Ballpoint Pen : : : : : : : : : : : : : : : : :
Graph of Connections of Ballpoint Pen : : : : : : : : : : : : :
Examples of topologies with virtual contacts between parts
without any real contacts : : : : : : : : : : : : : : : : : : : : :
Generation of planar virtual contacts by propagation : : : : :
Cross-section of assembly requiring intermediate xturing. : :
Simple didactic assembly : : : : : : : : : : : : : : : : : : : : :
Four interlocked blocks : : : : : : : : : : : : : : : : : : : : : :
Assembly requiring a non-monotone assembly sequence : : : :
Assembly requiring a non-coherent assembly sequence : : : : :

56
57
58
63
67
67
73
78
80
82
83
84
86

Abstract
This report describes current work on the modelling of assemblies and the
encapsulation of assembly knowledge in a rule-based system which allow ef cient generation of feasible assembly sequences for mechanical products.
The set of feasible sequences is generated from the topological and mechanical descriptions of the connections between component parts of the product.
The rule-based system interprets the connection information, enhances it and
evaluates the feasibility of assembly operations under the control of procedural code. The method presented here has three advantages. One is that
it does not need to interrogate the designer for supplementary data as the
sequence-generation evolves. The second is that it is suitable to be used in
an assembly-planning concurrent-engineering tool, early in a product development cycle, because it does not require any geometric information about
the product. Finally, it provides explanations for the infeasibility of assembly
operations, therefore, guiding the designer in the redesign of the product.

Keywords
Assembly Sequence Planning, Rule-based Systems, Concurrent Engineering

vi

Chapter 1
Introduction
1.1 Motivation
It has been increasingly recognised that product development requires a concurrent engineering approach for e ective cost, quality and delivery times.
Concurrent engineering creates an environment in which all the disciplines
that contribute to the product development cycle (design, manufacturing,
quality assurance, marketing, etc.) perform their functions cooperatively [1],
allowing ease of manufacture and assembly, quality control, maintenance etc.,
to be considered right from the conceptual design phase of the product.
It is at the conceptual design phase that the design team has the greatest opportunity to explore alternatives and identify the best product and
manufacturing process [2]. At this stage commitments to hardware and constraints due to the interactions between the various specialities involved in
the product's life cycle are not yet tight [2]. But, because of the large number of options available and because the decisions taken at this stage will
seriously constrain the options available at later phases of the product development cycle, these are the most dicult and in uential decisions in the
whole process.
For this reason it is fundamental to provide tools to the concurrent
engineering team that facilitate e ective communication and identi cation
of downstream implications of the in uential early decisions. There are
in fact several types of tools currently available to concurrent engineering
teams, which range from management based tools to Computer-Aided Design (CAD), Quality Function Deployment (QFD), Design for Assembly and
Manufacture (DFA/M), etc. However, there is an important activity which
still lacks an ecient computer-aided tool for use early in the product development cycle. This activity is the planning of the product-assembly sequence.
1

DFA methodologies and related software tools successfully assist the designer in reducing the cost of a product by improving its assemblability, but
the planning of the sequence is not part of the DFA procedure. During the
last decade work done in this area has lead to the development of several
assembly-sequence-planning methodologies. Typically, these methodologies
involve CAD representations of the product and are either based on geometric algorithms or on user interaction for the evaluation of the feasibility of
assembly operations.
Assembly sequence planning has a central role in product and assembly
system design. The choice of assembly sequence can impact directly on the
eciency and cost e ectiveness of the assembly process. The sequence in
which parts are assembled in uences, for example, the number of changes
in assembly orientation and in tools (e.g. robot grippers), the number and
complexity of xtures, and the complexity of the assembly operations. In addition, the assembly sequence can a ect, and be a ected by, several factors
such as the choice and layout of equipment, product testing and repair strategies, and the assembly method; manual or automated. Di erent sequences
can lead to totally di erent assembly times and costs. Without considering
the complete set of possible assembly sequences it is possible that a poor
choice is made.
The set of alternative assembly sequences of a product is primarily determined by the design of the product. Small changes in the design may change
the set of sequence options, and rule out a sequence that could lead to a
more ecient assembly process. Furthermore, for a typical product there
may be thousands of possible assembly sequences. Hence, a tool that can be
used very early in the design stage of the product, when CAD drawings may
not yet be available is fundamental to deal eciently with the combinatorial complexity of the problem and allow an analysis of the impact of design
changes on the set of valid sequences of assembly.
The main characteristics of the assembly sequence planning problem at
early stages of design are the inadequacy of applying algorithmic solution
methods and conventional optimization techniques, compounded by the problem's combinatorial complexity, which grows exponentially as the number of
parts and interconnections increases.
Using AI methods, assembly knowledge can be represented in an expert
system, to allow the inference of assembly operation feasibility from topological and mechanical information on the connections between the parts
composing a product, without the need for the precise geometric information
required by trajectory-path planners. Furthermore, graph search techniques
using heuristic knowledge can guarantee that the best assembly sequences
are eciently found, by providing valuable shortcuts when it is impractical,
2

due to time or cost constraints, to generate all possible assembly sequences


for the product.

1.2 Organisation of the Report


In addition to the current chapter this report contains six chapters.
Chapter 2 provides an overview on computer-aided assembly sequence
planning. Various representations of mechanical assemblies, and methods
of representing generating, evaluating and selecting assembly sequences are
summarised. It aims at presenting the state of the research in this area and to
position the methodology discussed in the subsequent chapters with respect
to other approaches.
Chapter 3 presents an overview of the methodology developed.
Chapter 4 describes the initial representation of mechanical assemblies in
the procedural and expert-system environments. It presents a classi cation
of connections between parts based on the mechanical characteristics and
establishment directions of the connections rather than on parts geometry.
Chapter 5 discusses the assembly knowledge represented in the expert
system. It also demonstrates how this knowledge is used in the automatic
enhancement of the initial product model with the necessary information
for the generation of feasible assembly sequences, that is, the determination
of all feasible and infeasible establishment directions for each connection
in an assembly, and the derivation of any eventual interferences between
parts not interconnected. Furthermore, this chapter shows how based on
the characteristics of each fundamental connection type the feasibility of the
simultaneous establishment of connections can be evaluated, as well as, the
parts precluding certain assembly operations can be automatically identi ed.
Chapter 6 demonstrates the capabilities of the methodology developed by
providing the results obtained from test runs of its current implementation
for several assembly examples. Namely, it illustrates the system's particular
features of automatically enhancing the initial representation of assemblies
and providing explanations for assembly operation infeasibility.
Finally, Chapter 7 contains the conclusions of the work developed and
discusses immediate future work.

Chapter 2
Computer-Aided Assembly
Sequence Planning
2.1 Introduction
Assembly sequence planning involves the generation evaluation and selection
of feasible assembly sequences of a product. An assembly sequence is feasible if it comprises only feasible assembly operations and leads to the fully
assembled state of a product.
Typically, an automatic planner takes as input a computer-based model
of the product to generate a representation of all feasible sequences. Ideally,
from this representation the planner evaluates the assembly sequences and
select one or a set of feasible sequences according to speci ed user criteria.
Until recently, the methods used to generate the possible assembly sequences for a product involved either precedence diagrams or exhaustive
exploration. In 1984, Bourjault [3] introduced the algorithmic generation of
all possible assembly sequences for the set of parts that constitute the assembled product from its representation. This was a fundamental step towards
the generation of automatic assembly sequence planners, whether they are
to be part of a set of DFA tools or part of an integrated control system for
the assembly process. Several related methods were subsequently devised.
This chapter summarises various methods of representing an assembly,
and methods of generating, evaluating and selecting assembly sequences.

2.2 Representations of Mechanical Assemblies


In order to automatically generate assembly sequences a computer representation of mechanical assemblies is required. The assembly model must
4

contain all the essential data required by the assembly planner to generate
all feasible assembly sequences. For many assemblies the number of feasible assembly sequences of a product is extremely large and it may not be
practical or useful to generate the complete set of feasible sequences. Several
approaches have been proposed to reduce the number of sequences generated, although ensuring the best sequences, according to some user speci ed
criteria, are obtained. In any case the automatic planner must take into
consideration any feasible sequence, that is, it must be able to generate all
sequences. Consequently, the assembly model must provide not only the information that enables the planner to generate all assembly sequences, but
also information that enables it to reason about the feasibility of the assembly operations comprising a sequence. Since Bourjault [3] presented a
method for the algorithmic generation of all assembly sequences for mechanical products, research advances in this area have given rise to the creation of
systems that have progressed from strongly interactive systems towards fully
automatic systems. Some authors have devised systems intended to be used
as computer aids to assembly planning; such as for example Bourjault and
Henrioud [4], and De Fazio and Whitney [5, 6]. Others have devised systems
that are, in addition, aimed to be integrated in control systems of exible
assembly systems, Homem de Mello and Sanderson [7, 8, 9], and Delchambre
[10]. This aspect has a direct implication for the structure of the computer
representation of assemblies; systems that are less user interactive require a
more detailed assembly representation. However, all the authors mentioned
above use a network approach to the representation of assemblies; the nodes
of the network represent parts and the edges between nodes represent relations between parts.
Bourjault [3] used two types of networks or graphs in his relational model:
the graph of contacts, and the graph of connections. The graph of contacts,
derived from the information contained in a parts list and an assembly drawing, is a graph that contains one node for each part in the assembly and one
edge for each contact between two parts. From this graph Bourjault derived
the graph of connections, which is a simple graph, i.e. a graph that contains one node for each part in the assembly, and one edge for each pair of
parts that have at least one contact between them. These contacts, called by
Bourjault \liaisons fonctionelles" can be real or virtual contacts. A graph of
connections for a simple assembly used by Homem de Mello in [9], is shown
in Figure 2.1
Homem de Mello and Sanderson have developed a relational model of
assemblies which they claim contains all the geometric and mechanical information needed to compute the feasibility of assembly operations; without
requiring intervention by the designer. The relational model consists of a re5

c1

Cap

Stick

z
c2

c3

c4

y
x
Cap

Stick

Receptacle

Receptacle

Handle

c5

Handle

( b)

(a)

Figure 2.1: Exploded view of assembly (a) and graph of connections (b).

Cap
R5

R1

R6

R4

R2
R7

R3

c2

A1

c1

R9

c3

c4

R8
R11

c5

Stick

R12

Receptacle

R10
Handle

R13

R14

A2

Figure 2.2: Mello's relational model graph for the assembly in Figure 2.1

lational graph, plus the set of associated attribute functions. The relational
graph extends the graph of connections to incorporate a representation of
the attachments that bind one part to another.
Figure 2.2 shows the relational graph for the simpli ed ashlight assembly shown in Figure 2.1. The labelled lines (edges) connecting two nodes
correspond to the relationships between the two entities represented by the
nodes. The rectangles, circles and triangles represent respectively part, contact and attachment (fastening) entities. All relationships in the graph of
Figure 2.2 are part-contact relationships, except R5 and R13 which are targetattachment relationships; they indicate that the contacts C2 and C5 are attached, and relationships R6 and R14 which are agent-attachment relationships and indicate that the agent of the attachment are the target contacts
themselves [9].
In their relational model Homem de Mello and Sanderson also de ne
attribute functions which associate the entities (parts, contacts and attachments) or relationships between entities to their characteristics, such as the
type of attachment, the entities related by a relationship, and the shape of
a part [9]. The attribute functions associated with the contact entities in
Figure 2.2 are shown in Table 2.1.
Type of contact
normal
back
forward
part-contact
relationships
target-attachments
relationships
agent-attachments
relationships

C1

C2

C3

C4

C5

nil

(R5 )

nil

nil

(R13 )

nil

(R6 )

nil

nil

(R14 )

planar

threaded- cylindrical planar threadedcylindrical


cylindrical
(0 1 0)
nil
nil
(0 1 0)
nil
cap
nil
nil
stick
nil
stick
nil
nil
handle
nil
(R1 R2 ) (R3 R4 )
(R7 R8 ) (R9 R10 ) (R11 R12 )

Table 2.1: Mello's attribute functions for the contact entities in Figure 2.2
Homem de Mello and colleagues in their Pleiades system, described in [11],
use CATIA (an IBM solid modelling and mechanical CAD design system)
to design the parts model, i.e. to generate a computer representation of the
geometric information of the parts in the assembly. Then they utilise Geos
(a variational geometric modelling system developed at Rensselaer Polytechnic Institute to model parts and assemblies) to specify the geometric and
7

mechanical relationships between the parts and the attachments information


required to complete the relational model.
Delchambre [10] has developed a model that also distinguishes contact
relationships from attachment relationships. The product's graph is a simple
graph where the nodes can be parts or fasteners, and a set of attributes
associated with each edge is speci ed. These attributes de ne the type of
contact between the parts, possible assembly directions and complementary
fastening processes. Contacts between parts are classi ed as placements,
insertions and xations. Fixations are screwing, insertion of pin, clipping
or o-ring insertion. Insertions can be with or without blocking, bearing or
screwed insertion.
A signi cantly di erent approach to the representation of assemblies,
using hierarchical data structures, has been followed by other researchers
[12, 13].
Ko and Lee [12] proposed a representation of this type, and derived a
procedure to generate the component hierarchy from the mating graph.
A hierarchical assembly representation, however, already contains implicit
information on the order of assembly tasks, thus implying a particular set of
assembly sequences [14]. Both Delchambre [10] and Homem de Mello [9] have
identi ed limitations in the hierarchical representation, which reduces its
usefulness for assembly planning. Similarly, the representations of assemblies
used by high-level robot programming languages (e.g. AUTOPASS, RAPT,
LAMA), have been found inadequate for assembly sequence planning [9, 10].

2.3 Classi cation of Assembly Sequences


Most assembly planners are limited in the type of plans or sequences they can
generate. Assembly plans can be divided into four main types: sequential,
monotone, coherent and linear plans.
A plan is sequential if at any instant only one set of parts will be in
motion and those moving parts will remain in xed positions relative to each
other.[15]
A plan is monotone if no operation ever separates any pair of parts that
were already in their goal positions relative to each other and every operation
leaves all moved parts in their goal positions relative to at least one unmoved
part [15]. An assembly, from reference [16], which requires a non-monotone
assembly sequence is shown in Figure 6.8.
A plan is coherent if during the assembly process any assembly operation
adds a part or subassembly to one single subassembly by the establishment of
at least one connection between the two. Figure 6.9, taken from [15], shows
8

a product that requires non-coherent assembly sequences. To assemble this


product part A must be added to two subassemblies, respectively constituted
by parts B and B1 , and by parts C , C1 and C2.
Finally, sequential plans can be linear , when only one part is added to
the partially assembled product by each speci c assembly operation, or nonlinear which take into consideration the assembly of subassemblies.
Although coherent restrictions are generally used in assembly planners,
many industry assemblies can only be assembled in a non-coherent sequence
of operations, by xturing two non-contacting subassemblies into their relative goal positions and then adding a third subassembly.[17]
Most assembly planners generate coherent, monotone and non-linear sequences [9, 18, 10, 16, 19, 20], or linear sequences [21]. Tsao and Wolter presented in [22] algorithms for the generation of non-linear and non-monotone
assembly sequences.

2.4 Representations of Assembly Sequences


A representation of the feasible assembly sequences of a product must be
complete and correct, that is, it must include only feasible sequences, and
all of them. Work done in this area during the last decade has lead to
the development of several representations of the complete set of feasible
assembly sequences of a product.
Several factors have been considered in the choice of the representation,
such as the complexity, amount of computer memory and processing time involved in its generation, the amount of computer storage necessary to store
the representation, and the complexity of the evaluation of the assembly sequences from their representation. Also, the possibility of representing time
dependency or independency between assembly operations, and the possibility of generating the next assembly operation, from any assembly state,
by testing locally in the representation but with the guarantee that the generated assembly operation can lead to the nal assembled state have been
considered by several researchers.
An assembly sequence can be represented by an ordered list of assembly
operations, or an ordered list of assembly states. Consequently, the set all
assembly sequences for a given product could be represented by a set of ordered lists, each corresponding to a di erent assembly sequence. However,
since many sequences have common subsequences, more compact representations have been proposed.[9]
As mentioned at the beginning of this chapter, before Bourjault's work
[3] precedence graphs were used to represent assembly sequences. However,
9

the principal use of the precedence graphs is as a tool to explore variations


of assembly sequence about a nominal sequence for the purpose of assembly line-balancing. They imply at least the choice of a base part, already
an assembly sequence decision, and they cannot represent disjunctive precedence conditions (i.e. conditions of the type "a always must precede b or
c"). Henrioud and Bourjault in a later paper [4] introduced the concept
of precedence hypergraphs, a generalisation of precedence graphs to include
disjunctive precedence conditions.
It was shown by simple examples by several researchers (Bourjault [4],
Homem de Mello and Sanderson [8], De Fazio and Whitney [5]) that an assembly does not often have a unique precedence graph, i.e. a precedence
graph does not generally represent all possible assembly sequences for a
product. To overcome the limitations of precedence graphs several other
representations of assembly sequences have been proposed.
Some of the proposed representations are explicit, as in the case of AND/OR
graphs, directed-graphs and assembly trees, where there is a mapping of the
assembly operations into the elements of the representations. Other representations are implicit, when they consist of a set of conditions that must
be satis ed by the assembly sequences. Examples of implicit representations
are establishment conditions and precedence relationships.
Homem de Mello and Sanderson in [23] showed the correctness and completeness of these representations, and the mappings of one representation
into the others. Depending on the application, some representations may be
preferable. For example, implicit representations, which are more compact,
are preferred in applications for which data storage space is limited. Some
authors used more than one representation in their sequence planners [18].
The directed graph representation of assembly sequences is a directed
state-space graph in which the nodes represent assembly states composed of
stable subassemblies and the directed arcs represent feasible assembly operations.
It is assumed that the assembly operations are executed sequentially, one
at a time, and that exactly two subassemblies (which can be composed of
one or more parts) are joined at each assembly operation. It is also assumed
that when a subassembly is formed all the connections between its parts
are established and they will remain established throughout the assembly
process.[9]
Under the above assumptions, an assembly state can be represented either
by the set of connections already established, or by a partition of the set of
parts in the product corresponding to the subassemblies so far formed [9]. In
the rst case, if there are L connections in the assembly, an L-dimensional
vector in which the ith component is true (T) or false (F), respectively, if the
10

state 1

{{C} {S} {R} {H}}

[F F F F F]

2
operation A

state 2

4
H

5
Graph of Connections

{{C R} {S} {H}}


[F T F F F]

operation B

state 3

{{C R} {S H}}
[F T F T F]

C = CAP
S = STICK
R = RECEPTACLE H= HANDLE

- In state 1 none of the connections is established, i.e.,


the subassemblies are still separate parts.
The 5-dimensional vector representing this state is: [F F F F F]
The subsets of the partition representing this state are: {C}, {S}, {R}and {H}
- In state 2 connection 2 is established, i.e., subassemby
composed of parts C and R is formed (due to execution of operation A)
The 5-dimensional vector representing this state is: [F T F F F]
The subsets of the partition representing this state are: {C R}, {S}and {H}
- In state 3 connections 2 and 4 are established, i.e., subassemby composed
of parts S and H is formed (due to execution of operation B), and subassembly
composed of parts C and R is formed (due to previous execution of operation A)
The 5-dimensional vector representing this state is: [F T F T F]
The subsets of the partition representing this state are: {C R}and {S H}

Figure 2.3: Two Representations of States in the Directed Graph of Assembly


Sequences.

ith connection is established in that state or not, will represent the state. In
the second case each disjoint subset of parts is composed by all the parts in
one subassembly already formed at that assembly state. These concepts are
illustrated in Figure 2.3
Figure 2.4 shows a directed graph of assembly sequences for the assembly
shown in Figure 2.1, including the two representations of assembly states
discussed above. The diamond representation of the directed graph used
by De Fazio is shown in Figure 2.5. In this representation each state of
assembly is represented by a box containing several cells, each corresponding
to a connection in the graph of connections. The cells are marked black when
the connections they represent are established.
Each valid assembly sequence is a path from the root node to the goal node
of the directed graph, the root node being the node in which no connection
has been established, and the goal node being the node in which the product
is fully assembled. It can be seen in Figure 2.4, that although states ffC R
Hg fSgg and ffC S Hg fRgg make part of the graph, since they represent
stable subassemblies, they will not be included in any assembly sequence and
there are not any assembly operations (arcs) from these states to the nal
state ffC S R Hgg.
Henrioud and Bourjault in [4] de ne an assembly tree for a product P as
11

{{C} {S} {R} {H}}


[F F F F F}

(* )

{{C R} {S} {H}}

{{C S} {R} {H}}

{{C} {S R} {H}}

{{C} {S} {R H}}

[F T F F F]

[T F F F F]

[F F T F F]

[F F F F T]

{{C} {R} {S H}}


[F F F T F]

(* )

{{C S R} {H}}

{{C R H} {S}}

{{C R} {S H}}

{{C S H} {R}}

{T T T F F]

[F T F F T]

[F T F T F]

[T F F T F]

{{C S} {R H}}
[T F F F T]

{{C} {S R H}}
[F F T T T]

{{C S R H}}
[TTTTT}

C = CAP

S = STICK

R = RECEPTACLE

H= HANDLE

Figure 2.4: Directed graph of feasible assembly sequences for the assembly
shown in Figure 2.1

Figure 2.5: De Fazio's \diamond representation" of feasible assembly sequences for the assembly shown in Figure 2.1
12

a
b
d
e
c
f
w

a
b
d
e
c
f
w

Figure 2.6: Bourjault's product example and two assembly trees.


a rooted tree, where the root represents P, nodes represent subassemblies of
P, and leaves component parts or non-geometric features of P (e.g. labelling,
machining). Figure 2.6 shows the product example and two of its possible
assembly trees used by these two authors in [4].
The AND/OR graph representation of assembly sequences was proposed
by Homem de Mello [9]. Relative to the directed graph, the AND/OR graph
has the advantages that for assemblies composed of more than four parts the
numbers of nodes is smaller, and it can represent the possibility of parallel
execution of assembly operations executed in separate subassemblies.
As in the case of the directed graph representation, it is assumed that
exactly two subassemblies (which can be composed of one or more parts) are
joined at each assembly operation, and that when a subassembly is formed
all the connections between its parts are established and they will remain
established throughout the assembly process.[9]
In the AND/OR graph representation of feasible assembly sequences the
nodes represent stable subassemblies and the hyperarcs represent feasible assembly operations. In this representation, each assembly operation, and each
subassembly is represented only once, unlike in the directed graph where each
13

assembly state is represented only once, but the same assembly operation is
represented the number of times the same pair of subassemblies is joined in
di erent states of assembly. The operations marked (*) in Figure 2.4 are an
example of this situation.
Each subassembly represented by a node in the AND/OR graph corresponds to a subset of the set of parts in the product. The root node corresponds to the fully assembled product, i.e. corresponds to the set of parts
that make up the product, whilst each terminal node corresponds to a part,
i.e. to a subset of the set of parts in the product which are composed by only
one element.
Each hyperarc is a 2-connector and corresponds to an assembly operation. An hyperarc is directed to the two subassemblies that are joined by
the corresponding assembly operation, and is directed from the subassembly
produced by the operation.
When nodes have several hyperarcs directed from them, each of these
hyperarcs represents a di erent set of two subassemblies that joined will
produce the subassembly represented by that node.
A particular solution of the AND/OR graph representation of assembly
sequences, called by Homem de Mello [9] an assembly tree , is a tree in the
AND/OR graph in which the root node represents the completed assembly,
and each part that comprises it is represented by one terminal node. Each
feasible assembly sequence maps into an assembly tree, however an assembly
tree may map into more than one assembly sequence when assembly tasks
can be executed in parallel [9].
Figure 2.7 illustrates the AND/OR graph representation of assembly sequences for the product shown in Figure 2.1, and Figure 2.8 shows two of its
eight assembly trees. The AND/OR graph in Figure 2.7 does not include the
subassembly formed by cap, stick and handle, nor the subassembly formed by
cap, receptacle and handle, since the graph is generated from the top these
subassemblies can never be reached. This is an advantage of the AND/OR
graph representation; the nodes corresponding to subassemblies that do not
lead to the fully assembled product are not generated, even if they are stable
subassemblies.
Note that the tree shown in Figure 2.8(b) corresponds to two assembly
sequences; the cap and stick can be assembled before or after the receptacle
and handle are assembled.
Implicit representations consist of a set conditions that all feasible sequences must satisfy. The assumptions made for these types of representation
are the same that were made for the directed graph representation.
The Establishment Condition Representation of assembly sequences is an
implicit representation that has been used by Bourjault in [3].
14

Figure 2.7: AND/OR graph of feasible assembly sequences for the assembly
shown in Figure 2.1

(a)

(b)

Figure 2.8: Two solution trees for the product in Figure 2.1
15

Representing assembly states by L-dimensional binary vectors allows the


use of a set of logical expressions to encode all feasible assembly sequences.
For example, the establishment condition for connection c1, for the assembly
shown in Figure 2.1 is:
F1 (x1 ; x2; x3 ; x4; x5 ) = x1 :x2 :x3 :x4 :x5 + x1 :x2 :x3 :x4 :x5 + x1 :x2 :x3 :x4 :x5 +
+x1:x2 :x3 :x4 :x5 + x1 :x2 :x3 :x4 :x5 + x1 :x2 :x3 :x4 :x5
This establishment condition shows the six states from which it is possible
to establish connection between the cap and the stick without precluding the
completion of the assembly. These states are respectively the state where:
(1) none of the connections is established, (2) only c2 is established, (3) only
c3 is established, (4) only c5 is established, (5) only c2 and c4 are established
and (6) only c1 and c2 are not established.[9]
Precedence relationships have been used by De Fazio, Delchambre, and
other researchers. For example, for the assembly in Figure 2.1, the assembly
sequence consisting of rstly joining the cap to the stick, then adding the
receptacle, and nally joining the handle, establishes respectively connection
c1 , then connections c2 and c3 , and nally connections c4, c5 . This sequence
can be uniquely represented by the conjunction of precedence relationships:
(c1 < c2) and (c2 < c4 ) and (c2  c3 ) and (c3  c2 ) and (c4  c5 ) and
(c5  c4), as shown by Mello in [9].

2.5 Generation of Assembly Sequences


Bourjault [3] used the graph of connections to generate all feasible assembly sequences from questions asked of the designer about the possibility of
performing assembly operations from various states of partial assembly. The
questions are organised in groups, and are always asked in pairs. Each pair
of questions has the following general form:
Q1) Is it true that Li cannot be established after Lj , Lk ,... have been established?
Q2). Is it true that Li cannot be established if Lj , Lk ,... are still not established?
where Li; Lj ; Lk , ... are the connections (real or virtual, called liaisons in
French) in the graph of connections.
From the answers to these questions, Bourjault derives the establishment
conditions for all the connections in the product from which the complete set
of feasible assembly sequences is generated.
De Fazio and Whitney [5, 6] proposed a di erent questioning technique
to reduce the number of questions and thus make the method practical for
application to products with a large number of connections. The answers
16

to these questions are expressed in the form of precedence relationships between connections or logical combinations of connections, and the assembly
sequences are generated algorithmically from them.
De Fazio and Whitney [5, 6] have shown that the number of questions,
Q, asked by Bourjault for assemblies with three or more connections, that
is for l  3, is l2l > Q  2(l2 + l). These researchers ask only one pair of
questions for each connection in the graph of connections, i.e. 2l questions.
The questions asked have the following general form, for i = 1 to l:
Q1) What liaisons must be done prior to doing liaison i?
Q2) What liaisons must be left to be done after doing liaison i?
The reduction in the number of questions is, however, accompanied by a
very signi cant increase in the diculty of answering the questions.
Mello and Sanderson [9, 11] developed a method also based on the graph of
connections, but using a signi cantly di erent approach. They transformed
the problem of generating assembly sequences into the problem of generating disassembly sequences in which disassembly operations are the inverse
of feasible assembly operations. In this method, known as the disassembly
approach , the disassembly sequences are obtained through the recursive decomposition of an assembly into subassemblies, where the decomposition of
each assembly is obtained by the application of graph theory methods. Each
assembly is represented by its graph of connections, and the set of valid cutsets of this graph represent all possible ways of decomposing the assembly
into pairs of subassemblies.
Mello and Sanderson's algorithm takes as input a relational model of the
product and returns the set of all feasible assembly sequences represented as
an AND/OR graph.
These authors propose the use of geometric algorithms for the evaluation
of the feasibility of assembly operations, from CAD representations of the
product.
The disassembly approach has also been used to develop expert systems
for assembly planning. However, these systems have generally been developed
with the objective of generating only one assembly sequence instead of the
complete set of possible assembly sequences.[10]
Whether the approach proposed is interactive or fully automatic, for an
assembly operation to be included in a feasible assembly sequence its feasibility has to be ascertained. To reduce the number of direct evaluations of the
feasibility of assembly operations, several authors [10, 18, 5], have used the
superset and subset rules originally proposed by Bourjault [3]. These rules
(presented in Chapter 3) allow the automatic evaluation of the feasibility of
a large number of assembly operations based on the results of earlier evaluations. Consequently, the application of these rules reduces very signi cantly
17

the number of questions asked to the user in interactive systems, and the
access to time consuming geometric algorithms in non-interactive systems,
thus in any case improving the system's eciency.
More recently, Wilson [19] proposed a method which also uses Bourjault's
rules but where the direct evaluations of assembly operations are further
reduced. This method consists on rst evaluating the feasibility of assembly
operations from a CAD model of the assembly using only simple techniques,
and then querying the user for the operations whose feasibility is undecided.
The simple techniques proposed by Wilson include the necessary condition
for local freedom and a sucient condition found by checking simple assembly
paths, such as single translations.
This author stresses the point that the emphasis in his method is not on
exact methods to calculate assembly paths, but on fast techniques that are
able to correctly detect the large majority of feasible operations. In this line
of reasoning, Wilson sustains that for operations requiring complex assembly paths querying the user is usually preferable to using computationally
expensive path planning techniques. The user's answers provide information
on the reasons an operation is not feasible, by identifying the two subsets
of parts in each pair of subassemblies to be joined that make the operation
infeasible, and these reasons are then used to automatically evaluate later
operations.
Sukhan Lee [24], which as Wilson uses the disassembly approach (called
in his work the Backward Assembly Planning ), proposes in [20] the feasibility
of the operations regarding the forces involved in their execution, to be evaluated before the decomposition process starts as an ecient way of reducing
the number of operations whose geometric feasibility must be evaluated.

2.6 Evaluation and Selection of Assembly Sequences


The methods developed by authors such as Bourjault, De Fazio and Whitney,
Homem de Mello and Sanderson, and Delchambre guarantee the generation
of the set of all feasible assembly sequences. These methods separate the
generation of assembly sequences from their evaluation and selection, thus
ensuring that good assembly sequences are not ruled out before they can be
generated.
The selection of an assembly sequence or a set of assembly sequences,
requires speci ed criteria to compare alternative solutions. Several evaluation
criteria have been proposed, some are related to the assembly sequence per
18

se, others take in account the characteristics of the assembly system.


Examples of sequence evaluation criteria are the tooling, and xturing
cost, subassemblies reorientation time, tool change time, and opportunity
to group operations at one station [18, 9]. Homem de Mello and Sanderson
[25, 9] propose three criteria. The rst is based on a combination of the
complexity of assembly operations and on the stability of intermediate subassemblies. The second and third criteria involve selecting assembly plans by
respectively maximising the exibility of sequencing the assembly operations,
and minimising the assembly time through parallel execution of assembly operations.
The assembly process is generally constrained by particular characteristics of the process itself, of the system and of component parts of the
product. These technological constraints which may, for example, include a
maximum number of xtures that can be used, a maximum number of assembly operations that can be executed in parallel, or the choice of the base
part, help reduce the combinatorial complexity of the assembly-sequencegeneration process. However, even when these constraints are taken into
consideration, typical products have a very large number of possible assembly sequences, and a complete enumeration of these sequences to compute
the value of evaluation functions based on the criteria mentioned may be too
costly in terms of processing time and computer requirements.
To handle this problem by avoiding the generation of inecient sequences,
some authors [4, 10] have proposed the incorporation of strategic constraints
to regulate the sequence generation process, in addition to the technological
and operation feasibility constraints: geometric, mechanical and stability.
For example, Bourjault [4] has proposed the imposition of certain subassemblies, and the grouping of operations that involve parts with similar shape,
size, or assembly direction; these parts being liable to be handled by the
same gripper.
Strategic constraints can reduce the combinatorial complexity of assembly
sequence evaluation, but additional methods have been found necessary to
make the exploration of the solutions space more ecient. For this reason,
Homem de Mello and Sanderson [25, 9] have proposed the use of heuristic
search techniques and have devised admissible heuristics for their sequence
evaluation criteria; their algorithms guarantee to return the best assembly
plan without the need to generate all plans, thus avoiding the combinatorial
explosion problem.

19

2.7 Complexity of Automatic Assembly Planning


The automatic generation, evaluation and selection of feasible mechanical
assembly sequences is a complex task for a variety of reasons. As mentioned
earlier, an automatic planner must take as input, a model of the assembled
product to generate a representation of all feasible sequences. From this representation the planner ideally evaluates the assembly sequences and chooses
one or a set of feasible sequences according to a speci ed selection criteria.
The assembly model must contain all the essential information for automatic reasoning relating to the feasibility of each of the assembly operations
necessary to assemble the product. The reasoning on operation feasibility
involves evaluating each of the operations for geometric, mechanical and stability feasibility. As de ned by Homem de Mello in [9], an assembly operation
is feasible if:

 it is geometrically feasible, i.e. there is a collision-free path to bring


the two subassemblies into contact as they should be in the assembled
product, from a situation in which they are far apart;
 it is mechanically feasible, i.e. it is possible to establish the attachments
that act on the contacts between parts that are in each subassembly;
and
 it is stable, i.e. all the parts in each subassembly produced during the
assembly process keep their exact relative positions.

The evaluation of the mentioned feasibility criteria is computationally


intensive. Furthermore, the number of prospective assembly sequences that
must be analysed increases very quickly with the number of parts in a product and with the degree of interconnection between them. Consequently, the
combinatorial search of all possible sequences is often prohibitive for products
having more than a dozen parts; for example, the AND/OR graph representing the feasible and infeasible assembly sequences of a 15-part product may
have as many as 32,767 nodes, whilst the directed graph may have over 109
nodes.
The computational intensity of automatic assembly sequence planning is
further compounded by the evaluation of the relative merit of the feasible
assembly sequences.
To reduce the intensity of the operation feasibility evaluation process several methodologies have been proposed. These methodologies, which were
20

discussed in Section 2.5, include the use of simple techniques to evaluate the
operations feasibility from CAD representations of the product, and to infer
their feasibility or infeasibility from results of previously evaluated operations, as an alternative to the use of computationally expensive path planning
techniques.
To handle the combinatorial complexity of the problem, as discussed in
the previous section, the application of strategic constraints and search techniques based on sequence evaluation criteria have been proposed. Whilst the
use of search techniques and strategic constraints can reduce the computing
e ort, this is gained at the expense of completeness. Also, for complex assemblies the overall computation time required to complete the process may
still be unacceptable.

21

Chapter 3
Overview of the Proposed
Methodology
3.1 Introduction
The sequence in which a product can be assembled is primarily determined
by the design of the product. Small changes in the design may change the
set of assembly sequence options, and rule out a sequence that could lead
to a more ecient assembly process. A tool that can be used very early
in the development cycle of the product, when CAD drawings may not yet
be available is fundamental to allow the analysis of the impact of design
changes on the available sequences of assembly, and thus facilitate concurrent
engineering practices.
The aim of this work is to develop a methodology to generate feasible
assembly sequences, which is systematic, can be computerized, requires minimal input from the user, can be used in the early stages of the design of a
product, and that also provides the user with useful information for product
development.

3.2 General Methodology


The system developed is capable of generating the complete set of feasible
assembly sequences from the model of a product. It combines algorithmic
and rule-based solution methods, which have been implemented on a Unix
workstation in C++ and CLIPS [26] expert-system code respectively.
The sequences generated are sequential, and can be linear or non-linear.
In addition, although further work is to done in this aspect, these sequences
can also be non-monotone and non-coherent as shown in Sections 6.6 and
22

6.7.
A Reverse Assembly Approach is used in the generation of the assembly
sequences. This method, often called in assembly planning literature Disassembly Approach [10, 16, 7], consists of generating all possible decompositions of the initial assembly into pairs of subassemblies, and then applying
the same procedure to each of the subassemblies obtained, until the new subassemblies are only single parts. The term subassembly has the meaning of a
non-empty subset of the set of parts that constitute an assembly that either
has only one part, or is such that every part has at least one connection with
another part in the subset [9].
Each decomposition corresponds to an assembly operation that joins two
subassemblies to form a larger subassembly. However, not all decompositions generated will correspond to feasible assembly operations. Some operations cannot be performed because of geometric, mechanical or stability
constraints.[9]
To obtain the complete set of feasible decompositions, a generate and
test approach is used. The decompositions are generated in the form of an
AND/OR graph, where the nodes correspond to unique subassemblies and
the hyperarcs to the assembly operations [9]. Each decomposition generated
is immediately evaluated for feasibility by the expert system module (if its
feasibility cannot be inferred from a previous evaluation of another operation) and pruned from the graph if infeasible. The set of feasible assembly
sequences is then directly extracted from the AND/OR graph.
The decomposition approach to the problem and the use of the AND/OR
graph as an explicit representation of all assembly sequences of a product was
proposed by Homem de Mello [9]. The methods being developed evolved from
the work of Homem de Mello and Sanderson [7, 8]. However, their assembly
sequence planner is intended to be used as part of an integrated control
system for the assembly process, i.e. much later in the product's life cycle,
and consequently these researchers propose the use of algorithmic methods
to the evaluation of the geometric feasibility of assembly operations, from
CAD representations of the product.
Other researchers, such as, De Fazio and Whitney [24] and Delchambre
[10] derive precedence constraints between connections from which the assembly sequences are then generated. Delchambre's precedence constraints
are derived from a CAD representation of the product, whilst De Fazio and
Whitney's are obtained through a question-and-answer procedure.
The method used to decompose the initial assembly into pairs of subassemblies is based on graph theoretic principles. An ecient algorithm is
then used to extract subsequent subassemblies directly from the sets of connections broken by each decomposition of the initial assembly, i.e. each cutset
23

of the initial assembly.


The initial model comprises relational, topological and mechanical information, which combine to describe the relative position of parts and eventual
fasteners in the complete assembly, the types of connections between them,
and the fundamental directions in which these connections are established.
Additionally, it may also contain user-de ned assembly constraints.
Connections between parts can be real or virtual. Real connections describe the relationship between any two parts in the assembly that have at
least one surface contact between them, whilst virtual connections describe
blocking relationships equivalent to connections, between parts without any
surface contact between them.[9]
Real connections are classi ed according to their mechanical characteristics, i.e. they can be, for example, planar, threaded or pin, whilst the virtual
connections in the initial model are only planar.
This model contains solely the relevant information that cannot be obtained by other means, and hence must be provided by the user. The system
was designed so that it generates itself a higher level description of the product with all necessary and sucient data for the generation of feasible assembly sequences. The static assembly knowledge encoded in the knowledge-base
of the system allows it to automatically infer pertinent data from the initial
model.
Relational information is used for the generation of all decompositions
of the product into its subassemblies, whilst topological, mechanical and
constraint information is used for evaluating the feasibility of each candidate
assembly operation.
The graph of connections, which was rst introduced by Bourjault [3]
for the purpose of assembly sequence planning, and has since been used by
several other researchers [9, 10, 7, 24, 18] is encoded as an incidence matrix.
The initial model may also contain user-de ned technological and strategic assembly constraints. These constraints are not directly determined by
the product's design, and therefore their inclusion in the model is optional.
Technological constraints derive from the knowledge of particular characteristics of the assembly system, process or of component parts of the product. Examples of this type of constraints are the choice of a base part,
the maximum number of xtures, operations executed in parallel, or subassembly reorientations. A typical strategic constraint is the imposition of
building speci c subassemblies, when di erent product models use common

24

subassemblies.1
Assembly knowledge is represented in the knowledge-base of the expert
system to enable it to make inferences in the same way a design, process or
manufacturing engineer would infer the degree of diculty or the infeasibility
of an assembly operation from a sketch of the product.
The reasoning made by the engineer in analysing an assembly operation
consists basically of the geometric visualisation of the operation. This geometric reasoning is, however, based on knowledge about which connections
must be established and their possible establishment directions, an on the
knowledge about eventual blocking e ects between parts. Therefore, if the
initial representation of the product is enhanced to take also in account the
eventual blocking relationships between parts in the product that are not
interconnected, (virtual connections) the visualisation of the operation becomes redundant. This means that the actual shapes and dimensions of each
part are not required in the knowledge-base and the generation of assembly
sequences does not require fully-dimensioned engineering drawings.
The static assembly knowledge encoded in knowledge-based system in the
form of production rules allows the automatic enhancement of the product's
model, i.e. the addition of new facts to the expert-system data-base, which
originally contained only the initial assembly model.
The rst step in the enhancement of the initial model is the transformation of the connection information between the pairs of parts interconnected
in a product into fundamental contact types and their respective feasible
and infeasible establishment directions. This transformation is based on the
speci c characteristics of each fundamental connection type.
Each connection has associated with it six contacts , which represent the
connection along the positive and negative directions of each of the three axes
of a reference Cartesian coordinate frame. A pin connection, for example,
can only be established along the insertion axis (assumed to be parallel to one
of axes of the reference coordinate frame), and therefore, it has associated
with it one contact with a feasible establishment direction, and ve contacts
with infeasible establishment directions.
The second enhancement of the initial model is provided by a set of rules
that generate virtual contacts between parts. When, for example, a part is
inside another part, there may exist a third part in contact with the latter
which obstructs the assembly path of the former, without however, having
any direct or real contact with it. The Part Virtual Contact Generation Rules
Technological and strategic constraints are not further discussed in this report since
little work has been done in this area. However, the methodology appears well suited for
the inclusion of any type of constraints
1

25

detect this type of interference and generate virtual contacts by propagating


other existing contacts.
These rules simplify the user's job of modelling the assembly. The user
needs only to specify real or virtual connections between adjacent parts in
the assembly, which are easy to identify.
Virtual contacts are initially generated from the virtual and real contacts that resulted from the transformation of the connection information
in the initial model, since the original facts in the knowledge-base of the
expert-system are exclusively generated from this information. However, the
generation of virtual contacts becomes recursive in the sense that virtual
contacts may lead to the generation of more virtual contacts.
Based on the real and virtual contacts between the parts of a product,
the system generates the contacts between each pair of subassemblies whose
assembly operation is to be evaluated. The principle behind the generation
of contacts between two subassemblies is that the set of contacts between
two subassemblies is the union of all real and virtual contacts (veri ed in
the fully assembled product) between pairs of parts with one part in each
subassembly. Hence, if in the assembled product there is a contact C between
a pair of parts, and the parts belong to two subassemblies to be assembled
together, then those subassemblies have the same contact C between them .
Every time a new pair of subassemblies is generated by decomposition
of a larger subassembly, the set of contact facts that de ne all the contacts
between the two subassemblies is generated. These are the contacts to be
established by the operation joining the two subassemblies.
A set of rules, the Assembly Operation Feasibility Rules , have been developed to evaluate the feasibility of candidate assembly operations. These rules
also determine all alternative assembly directions, and provide information
on the reasons an operation is infeasible. The Assembly Operation Feasibility
Rules are activated after the generation of all virtual-contact facts and after
the generation of the subassembly-contact facts for the pair of subassemblies involved in the operation. They also take into consideration constraint
information contained in the initial model of the product.
Following the de nition in [9] an assembly operation is feasible if :
1. There is a collision-free path to bring the two subassemblies into contact.
2. It is possible to establish the attachments that act on the contacts
between the two subassemblies (e.g. the contacts can be accessed by
the fasteners).
26

A
X

Figure 3.1: Simultaneous establishment of connections


3. The two subassemblies that are joined and the resulting subassembly
are stable.
At the current stage of development of the methodology it is assumed that
all subassemblies formed are either stable or can be made stable through the
use of xtures.
Some of these Assembly Operation Feasibility Rules account for situations
that make an assembly operation infeasible, such as, the obstruction of subassembly or fastener assembly paths, or the obstruction of fastener access
caused by another part, subassembly, or xture. Others, account for the
situations that make an operation feasible as, for example, when the operation involves the establishment of only one connection or all connections are
compatible and established in a common direction.
These rules are based on the speci c characteristics of each fundamental
connection type, regarding their feasible and infeasible establishment directions, and regarding how each connection type is established. This knowledge
is the basis for the representation of the knowledge relative to the simultaneous establishment of connections.
Figure 3.1 is used to illustrate how the knowledge relative to the simultaneous establishment of connections is based on the knowledge regarding how
a connection is established and its feasible establishment directions. In this
gure part C cannot be assembled to the base assembly formed by parts A,
B and D because:
(a) The connection between parts C and B can only be established by translating B along the y-negative axis, and
(b) To insert the pin of part C into part B (along the y-negative axis) a
clearance between B and D larger than the length of the pin is necessary.
In other words, it is not possible to simultaneously establish the pin connection between B and C and the planar connection between C and D, and
parts B and D are identi ed as obstructing the insertion path of C. However,
if the connection between B and C was of type planar, it would be possible
to insert C into the base assembly along the z-negative axis. This is due to
27

Model Enhancement
Knowledge
Base
1

Enhanced Model

Operation Modelling

Operation Feasibility

Knowledge Assembly Operation Knowledge


Base
Base
3
2

Product Model

Generation
of
AND/OR
graph
Feasible
Assembly Operation

Feasible Assembly
Sequences

Generation
of pairs of
subassemblies
Pair of
Subassemblies

Figure 3.2: Functional modules of the system developed, and ow of information


the characteristics of a planar connection, which can be established along an
axis normal to the mating plan, and unlike a pin connection does not require
any additional clearance.
An alternative set of feasibility evaluation rules have also been developed
for the generation of assembly sequences, however, without the explanation
facility of the above rules. This alternative set of rules is exclusively based
on the feasible and infeasible establishment directions of each fundamental
connection type.
To improve the system's eciency, the rules are partitioned into three
distinct knowledge bases as shown in Figure 3.2. The Model Enhancement
knowledge base contains the Fundamental Contact and Virtual Contact rules
and is accessed only once. The other two knowledge bases contain, respectively, the Subassembly Contact Generation and the Assembly Operation Feasibility rules. Furthermore, the accesses to the last two knowledge bases have
been reduced to a minimum, without precluding any sequence from being
generated, by concurrently applying three measures.
Two of these measures, the generation of the AND/OR graph of unique
subassemblies and the immediate pruning of any infeasible operation and
associated subassemblies generated , have already been mentioned. This approach guarantees that the second and third knowledge bases, mentioned
above, are never accessed for any subassembly associated with an infeasible
operation nor accessed more than once for each subassembly generated in
the process. Since each unique subassembly has a unique set of decompositions, the feasibility of each corresponding set of assembly operations is never
evaluated more than once.
The third measure consists of inferring the feasibility (or infeasibility) of
28

an operation based on a previous evaluation of another operation by the application of three simple feasibility inference rules encoded in the procedural
module of the system. These rules evolve from rules used by De Fazio [18]
and Delchambre [10], and originally derived from Bourjault's work [3]. As
stated in [18] these rules are:
The Subset Rule : If two subassemblies can mate, then removing any part,
itself not associated with the mating liaison(s), from either subassembly, will
not change this situation.
The Superset Rule : If two parts or subassemblies cannot mate due to
interference in the approach path, then adding a part to either set will not
change this situation.
By concurrently generating the AND/OR graph of subassemblies and
pruning infeasible operations and associated subassemblies, these rules can
be expanded to include a much larger number of assembly operations. The
Subset Rule is expanded to include operations where the parts removed are
associated with the mating connections and a second Subset Rule is added.
The latter allows the inference of the infeasibility of assembling subsets of
parts of two subassemblies whose assembly has been found infeasible.
The application of the above measures substantially reduces the number
of operations generated and evaluated for feasibility, and therefore considerably improves the eciency of the system.

29

Chapter 4
Assembly Modelling
4.1 Introduction
The representation, or model, of an assembly must contain all data required
for the generation of any, or eventually all, feasible sequences for the assembly.
The aim of this chapter is to propose an assembly model which can be directly
used by the software system to generate assembly sequences and evaluate
their feasibility without user interaction.
The work discussed in this chapter builds on that of others, particularly
Homem de Mello and colleagues [7, 8, 9, 11, 23]. However, the approach
adopted, unlike de Mello's approach, enables the automatic evaluation of
the feasibility of assembly operations without the need for dimensional data,
and provides explanations for the infeasibility of assembly operations. The
connections in an assembly have been classi ed according to their mechanical characteristics and establishment directions, and this classi cation forms
the basis for the automatic inference of interferences between the parts composing an assembly, and consequently, for the expert-system evaluation of
assembly operation feasibility and for the operations infeasibility explanations provided.
The data initially contained in the model comprises relational, topological
and mechanical information, which combine to describe the relative position
of parts and eventual separate fasteners in the complete assembly, the types
of connections established between them and the directions in which these
connections are established, and it may also comprise user-de ned assembly
constraints.
This information is necessary but not sucient for the automatic generation and evaluation of assembly sequences. Chapter 5 describes how the
system itself generates a higher level description of the product which con30

tains all necessary and sucient data.

4.2 Initial Representation of Assemblies


A product or assembly is represented in the form of a relational model comprising two categories of information: relational information for the generation of all decompositions of the product into its subassemblies, and topological, mechanical and constraint information for evaluating the feasibility
of each candidate assembly operation.

4.2.1 Relational Information

Relational information describes how the component parts of an assembly


are interconnected.
The graph of connections was chosen to represent the relational information of an assembly. This approach allows the application of proven graphic
theory methods for the generation of the complete set of subassemblies of the
initial subassembly, which forms a basis for the generation of all possible assembly sequences for that assembly as proved by Homem de Mello in [9]. To
illustrate the modelling of an assembly, the simple product used by Homem
de Mello, Sanderson and Zhang in their work on assembly sequence planning
[11], and already used in Chapter 2, will be used again here. The product
is a simpli cation of a ashlight containing only four parts; cap, receptacle,
stick and handle. There are three types of connections; threaded cylindrical,
planar and cylindrical connections, which are in this work respectively named
threaded, planar and inside.
The exploded view of the product, and its graph of connections representation are shown in Figure 4.1, along with the incidence matrix of the graph
of connections.
Figures 4.1 (a) and (b) show that the vertices in the graph of connections
correspond to the parts that form the product, whilst the edges correspond
to the connections between the parts. Figure 4.1 (c) shows the incidence
matrix of the simpli ed ashlight, where each column corresponds to a connection, denoted by the symbols c1 to c5, and each row to a component part
of the product. This matrix encodes the mapping of each connection in the
product to the pair of parts it interconnects. The two ones in each column
of the incidence matrix (disregarding the sign for the moment) identify the
connections between pairs of parts. For example, connection c1 connects the
Cap to the Stick, whilst connection c2 connects the Cap to the Receptacle.
31

c1

Cap

Stick

z
c2

c3

c4

y
x
Cap

Stick

Receptacle

Handle

Receptacle

c5

Handle

( b)

(a)

C1 C2 C3 C4 C5 3
0 0 0
0 1 1 0 ?1 777
1 0 ?1 ?1 0 5
0 0 0 1 1
(c)
Figure 4.1: Exploded view of simpli ed ashlight (a), graph of connections
(b), and incidence matrix (c)
Cap
Receptacle
Stick
Handle

2
66
64

?1 ?1

32

C1 C2 C3 C4 C5 3
0 0 0
0 1 1 0 ?1 777
1 0 ?1 ?1 0 5
0 0 0 1 1
fy planar, y threaded, y inside, y planar, y threadedg
Figure 4.2: Relational Model of simpli ed ashlight

Cap
Receptacle
Stick
Handle

2
66
64

?1 ?1

The minus signs in the incidence matrix are not part of relational information, they are used to encode topological information which is discussed
in the next section.
As described in Chapter 3 the connections in the initial representation
of the product can be real or virtual. Furthermore, real connections can be
stable or unstable. Virtual and unstable connections are discussed in detail
in Chapter 6 where an assembly example illustrates the modelling of these
types of connections.

4.2.2 Topological and Mechanical Information

Topological information describes the relative positioning of parts and fasteners in the end product, i.e. when the product is fully assembled, whilst
mechanical information refers to the types of connections between parts, and
the types of fasteners present in the product.
The topology of an assembly is described with respect to a reference
Cartesian coordinate frame, the Assembly Orientation Frame [21] by de ning
the fundamental establishment direction(s) of the connection between each
interconnected pair of parts. The fundamental establishment direction(s) of a
connection, or fundamental assembly direction(s) of the parts interconnected
by the connection is the minimum set of feasible assembly directions that
completely de ne the topology of the interconnected pair.
An assembly operation is always performed by moving a part or subassembly towards a base part or subassembly, which is xed, i.e. the two
parts/subassemblies are never moved simultaneously. In the following discussion the choice of the moving and base subassemblies is arbitrary. If their
roles are interchanged the operation is performed along the same reference
axis, the only di erence being that the moving part is moved in the opposite
direction. In the product's model, topological information is encoded by the
signs of the entries in the incidence matrix combined with the direction in33

formation in the Connection Information Vector, shown below the incidence


matrix in Figure 4.2. Mechanical information is encoded in Connection Information Vector.
The syntax of the Connection Information Vector is:
fhfundamental assembly direction(s) fundamental connection typei,h...i, ...g.
For the ashlight assembly the rst column of the matrix combined with the
rst element of the Connection Information Vector , \y planar" speci es that
part Cap is to be joined to the Stick by a planar connection in the positive
y-axis direction of the assembly orientation frame. The third column and
element speci es that part Stick is to be inside the Receptacle, and that
the connection's fundamental establishment directions are in the positive and
negative y-axis directions .
The classi cation of connections into fundamental types is still in a development phase. A variety of products have been analysed and the connections
between pairs of parts classi ed in a set of fundamental connection types .
De nitions of some of these fundamental connections types regarding their
respective fundamental assembly directions are presented at the end of this
section. Figure 4.3 shows some of those connections and their respective potential assembly directions. In this gure, parts and respective connections
are shown arbitrarily with a square section. The actual geometry of the
parts involved in an assembly operation is irrelevant, because the evaluation
of the operation's feasibility is based on the interactions between parts, i.e.
on the restrictions on their degrees of freedom, rather than on their speci c
geometry.
The characteristics of each fundamental connection type present in an
assembly added to their fundamental assembly direction(s) in the assembly,
allow the knowledge-based module of the system to infer all potential assembly directions for each pair of interconnected parts in the assembly and
eventual interferences with other parts.
To illustrate the concepts of fundamental connection type and fundamental assembly direction(s), a simple didactic assembly shown in Figure 4.4 is
used. In that assembly part B is connected to C by a planar connection in
the positive y-axis direction . The fundamental assembly direction of a planar
connection is de ned along the normal to the mating surfaces. Given the
fundamental connection type and direction, the alternative ways of joining C
to B are: moving C towards B along the negative y-axis, along the positive
or negative x-axis, or along the positive or negative z-axis, are automatically
inferred by the system.
In the same gure, C is connected to A by a pin connection in the positive
y-axis direction . There is only one way of establishing the pin connection
34

Pin
(z+)

U-section with blocking U-section


(x+,z+-)
(z+,x+)

Inside
(z+-)

(a)

(b)

(c)

(d)

Planar
(x+-,y+-,z+)
(e)
z
y
x

L-section with blocking


(x+,y-,z+)

L-section
(x+,y-,z+-)

(f)

(g)

Figure 4.3: Sample of Fundamental Connection Types

35

Annular
(x+-,y+-,z+)
(h)

z
B

C
y

Figure 4.4: Simple Didactic Assembly


between these two parts, which is to move C towards A along the positive
y-axis. Note that this operation involves two main movements of part C: C is
moved along negative z-axis to align the pin with the hole in part D, and then
moved along the positive y-axis to establish the connection. The fundamental
assembly direction refers to the last movement, the rst movement of part
C is not considered in the feasibility evaluation of the establishment of the
pin connection. If there is any part(s) obstructing the rst movement, that
obstruction would be considered in the establishment of the (real or virtual)
connection(s) between C and the obstructing part(s).
A pin connection is characterized by having only one possible establishment direction, and by the requirement of a clearance between the part/
subassembly with the pin and any other part/subassembly, on the side opposite to the pin. The dimension of this clearance must be such to permit
the insertion of the pin. In the assembly of Figure 4.4 if part B and A are
already in the base subassembly, it is not possible to establish the pin connection between C and A, because of the non-existence of clearance between
parts B and C. If a real contact between parts B and C didn't exist, but
the clearance between them was smaller then the length of the pin, a virtual
planar contact would be de ned between these parts.

Fundamental Connection Types


As mentioned earlier in this chapter, real connections between pairs of parts
in an assembly have been classi ed according to speci c mechanical characteristics and establishment directions. This classi cation which forms the
basis for the automatic inference of interferences between the parts composing an assembly, and consequently, for the expert-system evaluation of
assembly operation feasibility is still being developed. Several de nitions of
fundamental connection types regarding their establishment directions are
presented below.
36

(De nition 1) Fundamental Planar Connection

A fundamental planar connection exists between parts pi and pj in the direction d 2 fx; y; zg if motion of pi is constrained by pj only in direction +d,
and the connection cannot be classi ed as annular.

(De nition 2) Fundamental Pin Connection

A fundamental pin connection exists between parts pi and pj in the direction d 2 fx; y; zg if motion of pi is constrained by pj in any direction except
direction ?d, and the connection cannot be classi ed as inside?.
(De nition 3) Fundamental Inside Connection A fundamental inside
connection exists between parts pi and pj in the direction d 2 fx; y; zg if
motion of pi is constrained by pj in any direction except directions +d and
?d, and no portion of pi protrudes from pj .

(De nition 4) Fundamental Inside+ Connection

A fundamental inside+ connection exists between parts pi and pj in the direction d 2 fx; y; zg if motion of pi is constrained by pj in any direction
except direction +d, and no portion of pi protrudes from pj .

(De nition 5) Fundamental Inside? Connection


A fundamental inside? connection exists between parts pi and pj in the direction d 2 fx; y; zg if motion of pi is constrained by pj in any direction
except direction ?d, and no portion of pi protrudes from pj .
(De nition 6) Fundamental U-section with blocking Connection
A fundamental U-section connection exists between parts pi and pj in the
directions d1; d2 2 fx; y; z; ?x; ?y; ?zg if motion of pi is constrained by pj
in any direction except directions ?d1 and ?d2.

(De nition 7) Fundamental U-section without blocking Connection

A fundamental U-section connection exists between parts pi and pj in the


directions d1 ; d2; ?d2 2 fx; y; z; ?x; ?y; ?zg if motion of pi is constrained by
pj in any direction except directions ?d1 , +d2, and ?d2.

(De nition 8) Fundamental L-section with blocking Connection

A fundamental L-section connection exists between parts pi and pj in the


fundamental directions d1; d2; d3 2 fx; y; z; ?x; ?y; ?zg if motion of pi is
constrained by pj only in directions +d1, +d2 and +d3.

(De nition 9) Fundamental L-section without blocking Connection


A fundamental L-section connection exists between parts pi and pj in the
fundamental directions d1; d2 2 fx; y; z; ?x; ?y; ?zg if motion of pi is constrained by pj only in directions +d1 and +d2.
37

S
C
B
A

Figure 4.5: Stacked parts fastened by a screw

4.2.3 Fasteners

In most assembled products separate fasteners are used to secure the connection between two or more parts. Fasteners can be treated as parts of a
product when generating feasible assembly sequences. However, this is not
the best approach to the problem, because there is practical knowledge associated with the usage of fasteners that can increase the eciency of the
sequence generation process.
The following two rules on the insertion of fasteners have been derived
from current practices, and implemented as static assembly knowledge:

Fastener Insertion Rule 1:

A fastener is inserted only and immediately after all parts it fasten have been
placed in the partial assembly of the product.

Fastener Insertion Rule 2:

If during the assembly of a product multiple subassemblies are built, the


parts belonging to a set of parts that is to be secured by a common fastener
never appear in separate subassemblies.
To illustrate the advantages of this approach consider a stack of parts to be
fastened together by a screw, as shown in Figure 4.5. If the four components
S, A, B and C are all treated as parts of the assembly the following 5 sequences
are generated as feasible:
Assembly
Assembly
Assembly
Assembly
Assembly

sequence
sequence
sequence
sequence
sequence

1
2
3
4
5

A
C
A
B
C

&
&
&
&
&

B
B
B
C
S

=>
=>
=>
=>
=>

A
B
A
B
C

B
C
B
C
S

&
&
&
&
&

C => A
A => A
C S =>
S => B
B => B

B
B
A
C
C

C
C
B
S
S

&
&
C
&
&

S
S
S
A
A

=> A B C S
=> A B C S
=> A B C S
=> A B C S

And the following 11 operations are evaluated for feasibility:


1:
2:
3:
4:
5:
6:

Operation A B C & S is feasible.


Operation A B & C is feasible.
Operation B C & A is feasible.
Operation A B S & C is not feasible.
Operation A B & C S is feasible.
Operation B C & A S is not feasible.

38

7:
8:
9:
10:
11:

Operation
Operation
Operation
Operation
Operation

B
B
B
C
A

C
C
S
S
C

S
&
&
&
S

&
S
C
B
&

A is feasible.
is feasible.
is not feasible.
is feasible.
B is not feasible.

1:
2:

Operation A B & C is feasible.


Operation B C & A is feasible.

However, if the component S is treated as a fastener of type screw only


the two rst sequences are generated, and only the following two operations
are evaluated for feasibility:

4.3 Expert-System Representation of Assemblies


The expert-system evaluates the feasibility of an assembly operation based
on static and dynamic assembly knowledge represented in its knowledge and
data bases.
The model of an assembly forms the dynamic assembly knowledge, whilst
general knowledge regarding the establishment directions of fundamental connection types, interferences between parts and simultaneous establishment of
connections, form the static assembly knowledge.
Initially, the dynamic knowledge is composed by a set of connection facts ,
which identify the fundamental type of connection between each pair of interconnected parts and its fundamental establishment direction(s), with respect
to the assembly orientation frame. This information is extracted directly
from the Incidence Matrix and the Connection Information Vector by the
procedural code. The syntax of a connection fact is shown below:
(connection hpart 1i hpart 2ihfundamental assembly direction(s)ihfundamental
typei)
The information encoded in these facts is that part 1 is joined to part 2 in the
positive direction of the axis determined by the assembly direction for planar,
annular and pin connections. For inside+, inside? and inside connections
the connection fact de nes part 1 to be inside part 2, and the fundamental establishment direction(s) to be along the negative direction of the axis
referenced in the connection fact in the case of an inside+ type connection,
along the positive direction in the case of an inside? connection, and along
both directions of the axis referenced for an inside connection. For L-section
and U-section connections, symbols are used to determine the direction of
assembly of part 2 to part 1 with respect to the three axes of the assembly
orientation frame.
39

For example, the simpli ed ashlight assembly in Figure 4.1 is initially


represented in the expert-system by the following CLIPS connection facts :
1. (connection Cap Stick y planar)
2. (connection Cap Receptacle y threaded)
3. (connection Stick Receptacle y inside)
4. (connection Stick Handle y planar)
5. (connection Receptacle Handle y threaded)

40

Chapter 5
Assembly Knowledge
Representation
5.1 Introduction
This chapter discusses how assembly knowledge is represented in the expert
system to enable it to make inferences in the same way a design, process or
manufacturing engineer would infer the degree of diculty or the infeasibility
of an assembly operation. That is, given some facts, a conclusion that follows,
is inferred.
The facts include relational, topological and mechanical information about
the subassemblies and connections involved in the assembly operation, as
well as, any eventual technological and strategic constraints, as already described in detail in Chapter 4. The implicit knowledge the engineer uses when
analysing an assembly operation is explicitly encoded in the knowledge-base
of the system developed in the form of IF THEN type rules. This knowledge
includes, for example, the realization of the physical impossibility of performing an operation due to the fact that a part already assembled obstructs the
assembly path of a part to be assembled, or the impossibility of establishing
the contacts involved in an operation because they would imply simultaneous
motion of a subassembly along di erent assembly directions.
The main role of the expert system is to ascertain the physical feasibility
of each candidate assembly operation. However, the system was designed to
require minimal input from the user, and consequently, the initial user representation of an assembly contains only the information necessary for the
generation and evaluation of assembly sequences that cannot be obtained
by other means. It is left to the system itself the task of generating an enhanced model with all information that can be inferred from generic assembly
41

knowledge and is required to complete the initial model of an assembly. This


information includes all feasible and infeasible establishment directions of
the connections between each pair of interconnected parts, and eventual virtual connections , i.e. interferences between parts that are not in contact in
the assembled product. From this enhanced model the system determines
all connections that are established between each pair of subassemblies involved in an assembly operation, and nally evaluates the feasibility of the
operation. Additionally, the system provides alternative feasible assembly
directions and explanations for the infeasibility of assembly operations.
The representation of the static assembly knowledge required for the completion of the initial model of a product, and for the evaluation of the feasibility of an assembly operation is analysed in detail in the following sections.
The last section discusses the minimization of the accesses to the knowledge
bases for operation feasibility evaluation.

5.2 Fundamental Contacts Between Parts


As described in Subsection 4.2.2 each connection in a product is modelled
by its fundamental type and establishment direction(s). The rst step in the
enhancement of the initial model is the transformation of this information
for each connection in the product into a contact type and its respective
feasible and infeasible establishment directions along the three axes of the
assembly orientation frame. Each connection in the initial model is, therefore,
translated into a set of orthogonal contacts in the enhanced model. These
contacts allow the checking of alternative assembly directions, and of eventual
virtual contacts with other parts in the assembly, that is, interferences along
each axis of the assembly orientation frame.
Knowledge on feasible and infeasible assembly directions for each type of
fundamental connection between pairs of parts is represented in the knowledgebase of the system in the form of production rules. Consequently, from each
connection fact in its database the system generates a set of contact facts.
For example, the connection fact (connection part1 part2 z pin) yields
three contact facts: (contact part1 part2 z pin), (contact part1 part2 not x)
and (contact part1 part2 not y), because a pin type connection can only be
established along its fundamental establishment direction.
A planar connection fact, such as (connection part1 part2 z planar), originates only the contact fact: (contact part1 part2 z planar), since a planar
connection can be established in ve directions: its fundamental establishment direction plus the positive and negative directions of the other two
orthogonal assembly axes.
42

5.3 Virtual Contacts Between Parts


Some parts in a partially assembled product will obstruct the assembly paths
of other parts or subassemblies to be added to the partial assembly with which
the former do not have any real connections.
The second enhancement of the initial model consists in the automatic
detection of these interferences between parts, and the automatic generation
of virtual contacts between them along each of the three axes of the assembly
orientation frame.
The didactic example of Figure 5.1 demonstrates one type of interference
that leads to the generation of virtual contacts. This gure shows the crosssection of an assembly composed of a cover (part A) fastened to a housing
(part B), and two cylinders (parts C and D); cylinder D is inside cylinder
C, and cylinder C is inside the housing B. Although there is not any (real)
contact between parts A and C, they interfere with each other since if cover A
is fastened to housing B, part C cannot be inserted in B, because its assembly
path is obstructed by the cover.
This type of interference is detected by a set of rules, the Virtual Contact
Generation Rules , which generate virtual contacts by propagating existing
contacts. For the assembly in Figure 5.1, the planar contact between cover A
and housing B is propagated to part C, because C is inside B. A virtual planar
contact between A and C is therefore automatically generated, modelling
the interference between these two parts along the z axis of the assembly
orientation frame.
Virtual contacts are initially generated from fundamental contacts, since
these are the only contact facts in the knowledge-base of the expert system.
However, the generation becomes recursive in the sense that virtual contacts
may lead to the generation of more virtual contacts.
For example, the initial model of the assembly of Figure 5.1, contains
three connections: a planar connection between parts A and B and two
inside+ connections respectively between parts C and B and parts D and C.
These three connections are processed by the Fundamental Contact rules to
generate seven fundamental-contact facts. Three of which are:
1. (contact D C z inside+)
2. (contact C B z inside+)
3. (contact B A z planar)

The Part Virtual Contact Generation Rules add to these fundamentalcontact facts the following three new contact facts:
4. (contact C A z planar)
5. (contact D A z planar)

43

D
C
B

Figure 5.1: Interference between parts without any real contact


F

E
D

B
z

A
C

Figure 5.2: Cross-section of didactic assembly


6. (contact D B z inside+)

The planar contact between C and A (fact 4) was generated by propagating the planar contact of B with A (fact 3), because C is inside+ B (fact
2):
(contact C B z inside+) and (contact B A z planar) => (contact C A z planar)
Similarly, fact 6 is generated from facts 1 and 2:
(contact D C z inside+) and (contact C B z inside+) => (contact D B z inside+)
But fact 5 is generated from fact 1 and from the virtual contact in fact 4:
(contact D C z inside+) and (contact C A z planar) => (contact D A z planar)
For the example in Figure 5.2 if part D is joined to the assembly BC,
part A cannot be assembled because Part D obstructs its assembly path. In
this case the Virtual Contact Generation Rules generate a planar contact
between A and D by propagating the pin contact between B and D:
(contact A B z inside) and (contact B D z pin) => (contact A D z planar).
There are four possible types of virtual contacts: inside, inside+, inside?
and planar.
The set of Virtual Contact Generation Rules implemented in the system
takes into account all combinations of fundamental connection types and
44

Part C

Part B

Part A

Figure 5.3: Rule propagate:inside


possible establishment directions. Simpli ed versions of these rules are as
follows:

 RULE propagate:inside
IF:

- Part A is inside part B, and


- Part B is inside part C
THEN: - Part A is inside part C.

 RULE propagate:planar1
IF:

- Contacts between parts A and B, and parts B and C


are established along a common direction d, and
- Part A is inside part B, and
- Part B has a contact with part C on the insertion
path of A (this excludes annular connections).
THEN: - Part A has a virtual planar contact with part C
established along direction d.

 RULE propagate:planar2
IF:

- Contacts between parts A and B, and parts B and C


are established along a common direction d, and
- Part A has a non-inside contact with part B, and
- Part B has a non-inside contact with part C, and
- Parts A, B and C are inside part D.
THEN: - Part A has a virtual planar contact with part C
established along direction d.
The non-inside contact between parts A and B, and parts B and C is of
any type except of the inside family type. The latter connections are catered
for by a set of rules similar to the propagate:inside rule.
Figure 5.3 shows a topology that originates the propagation of an inside
connection, and Figure 5.4 shows two topologies that lead to the generation
of virtual planar contacts. The generation of the virtual contacts is discussed
again in Chapter 6 and several topologies that originate virtual contacts are
shown in Figures 6.3 and 6.4.
45

Part B

Part A

Part C

Part D

Part A

Part B

Part C

Figure 5.4: Rules propagate:planar1 and propagate:planar2

5.4 Contacts Between Subassemblies


The role of the Subassembly Contact Generation Rules is to generate all contacts between a pair of subassemblies, before the feasibility of the assembly
operation that joins them together is evaluated. The determination of all
contacts between the two subassemblies is necessary because these contacts
may include virtual contacts whose corresponding virtual connections were
not in the initial model of the product. These contacts are the virtual contacts that have been generated by the model enhancement module of the
system and must therefore be added to the contacts whose corresponding
connections are in the initial model. The latter are the connections in the
cutset (of the graph of connections) corresponding to the operation to be
evaluated.
The principle behind the generation of contacts between two subassemblies is that:
The set of contacts between two subassemblies is the union of all contacts
(veri ed in the fully assembled product) between pairs of parts with one part
in each subassembly.
This principle can be translated in the following simpli ed IF THEN rule:

 RULE Generate Contacts Between Two Subassemblies


IF:

- In the assembled product there is a contact C


between a pair of parts, and
- The parts belong to two subassemblies to be
assembled together.
THEN: - The two subassemblies will have the same contact C
between them.
Note: A contact can be real or virtual and is always de ned by its type
46

(planar, threaded, etc.) and its fundamental establishment direction(s).


Every time a new pair of subassemblies is generated by decomposition
of a larger subassembly the expert system generates the set of contact facts
that de ne all the contacts between the two subassemblies.

5.5 Assembly Operation Feasibility Evaluation


The use of graph-theoretic methods for the generation of the decompositions
of an assembly guarantees that all decompositions of a product into its subassemblies are generated. However, not all decompositions generated will
correspond to feasible assembly operations. Some operations are not feasible
due to geometric, mechanical, or stability constraints.[9]
In this section several rules for the automatic evaluation of the feasibility
of assembly operations are discussed. At the current stage of development
of the system it is assumed that the subassemblies involved in an assembly
operation are either stable, or can be made stable through the use of xtures,
and that if a fastener can be accessed the fastening operation is feasible (e.g.
the forces involved in the fastening operation are ignored).
Feasibility constraints imposed by the equipment used to implement an
assembly sequence, such as, the interferences with parts handling devices
and xtures have not yet been considered except for a particular type of
assemblies. These are products whose assembly requires a part/subassembly
to be held in place with the help of some equipment before it is nally
secured by a subsequently added part or fastener, and that regardless of the
equipment used it will obstruct other parts assembly paths.
However, the modelling methodology described in Chapter 4 appears
suited for the modelling of any assembly equipment, and consequently for
the inclusion of the constraints this equipment imposes on an assembly task.
Nevertheless, the set of feasible assembly sequences should be initially
generated without the equipment constraints. Preferred sequences can then
be selected, and their feasibility automatically evaluated again, but this time
including the equipment constraints.
This second feasibility evaluation is done at a task planning level, and assembly sequences may be discarded due to the unavailability or cost ine ectiveness of the equipment necessary for their implementation. Alternatively,
equipment that had not been anticipated may be made available to allow the
implementation of a preferred sequence.
In this approach potentially good sequences are not ruled out before they
47

are generated due to an extemporaneous choice of assembly equipment, because assembly sequence and assembly task are planned concurrently.
To illustrate the concepts of feasible and infeasible decompositions of an
assembly, Homem de Mello's assembly example shown in Figure 4.1 is used
here again. This simpli ed ashlight, which is composed of Cap, Receptacle,
Stick and Handle, can be decomposed into the following six pairs of subassemblies:
Subassembly1
Subassembly2
Cap, Receptacle, Stick
Handle
Receptacle, Stick, Handle Cap
Cap, Receptacle, Handle Stick
Cap, Stick, Handle
Receptacle
Cap, Stick
Receptacle, Handle
Cap, Receptacle
Stick, Handle
However, the operations joining Cap, Receptacle and Handle to the Stick,
and Cap, Stick and Handle to the Receptacle are not geometrically feasible,
and these decompositions are said to be infeasible . In both cases there is
not a collision-free path to assemble the remaining part to the subassembly
formed by the other three parts.
To obtain the complete set of feasible decompositions of an assembly into
two subassemblies, a generate and test approach is used. The assembly operation corresponding to each decomposition generated is tested for feasibility
and the subassemblies generated by infeasible decompositions are discarded,
and therefore, not furthered decomposed.
The set of Assembly Operation Feasibility rules ascertains the geometric feasibility or infeasibility of each potential assembly operation. Some of
these rules infer the infeasibility of the operation, others its feasibility or
infeasibility along one of the axis of the assembly orientation frame.
These rules operate on the enlarged model of the product, i.e. the rules
are activated after the Fundamental Contact Generation rules have generated all the part-contact facts, the Virtual Contact rules have generated all
the virtual-contact facts and the Subassembly Contact Generation rules have
generated the facts for the contacts between the pair of subassemblies whose
assembly operation is being checked.

5.5.1 Feasibility Evaluation without Explanation

An assembly operation involves the establishment of one or more connections


between two subassemblies.
When only one connection is established, that is, when only one part in
one subassembly has a connection with one part in the other subassembly the
48

operation is by de nition feasible. In fact, if there was one part obstructing


the establishment of the connection, at least one virtual connection would
exist between that part and a part in the other subassembly. Consequently,
the operation would establish at least two connections (one real and one
virtual), which contradicts the initial statement. Also, if a separate fastener
is used to fasten the two connected parts, the operation establishes at least
three connections, and in this case the operation's feasibility depends on the
feasibility of establishing the connections between the fastener and the parts.
When an operation establishes several connections the operation is feasible if all connections (virtual and real) can be simultaneously established.
The feasibility of the simultaneous establishment of connections is referred
here as the connections' compatibility . It can then, be said that an operation is feasible if and only if all connections it establishes are compatible .
Compatibility between all the connections established by an operation is,
therefore, a necessary and sucient condition for the operations' feasibility.
As all connections being compatible is equivalent to the non-existence of
one connection that is not compatible, the feasibility of an operation can be
ascertained if a non-compatible connection does not exist.
Connections can be established by translation along the establishment
axis, or by simultaneous rotation and translation respectively around and
along the establishment axis. All connections fall into the former category
except threaded connections.
Connections that involve only translations are compatible if they share
a common establishment direction. A connection that involves rotation and
translation is only compatible with placement (against) connections that can
be established along a common axis. In terms of fundamental connection
types: threaded connections are only compatible with planar and annular
connections.
Connections are not compatible if:
- they do not share a common establishment direction, or
- they comprise one threaded, and one non-placement
connection type.
From the above it can be concluded that the feasibility of an operation,
can be ascertained by the following rule:

 RULE Operation feasible


IF:

- There is not one contact that cannot be established in


direction d, and
- The contacts to be established do not include
a threaded and a non-placement contact.
THEN: - The operation is feasible (along d).
49

When an operation establishes several connections the operation is infeasible if at least two connections it would establish are not compatible, that is,
an operation is infeasible if one pair of connections it would establish is incompatible . Incompatibility between one pair of connections to be established
by an operation is a sucient condition for the operations' infeasibility.
The infeasibility of an operation can be ascertained by the following two
rules:

 RULE Operation infeasible 1


IF:

- There is one contact that cannot be established


in direction x, and
- There is one contact that cannot be established
in direction y, and
- There is one contact that cannot be established
in direction z.
THEN: - The operation is infeasible.

 RULE Operation infeasible 2


IF:

- There is one threaded contact, and


- There is one non-placement contact to be established.
THEN: - The operation is infeasible.
Based on the above rules a set of expert-system rules have been developed
and implemented. These rules also provide alternative assembly directions
for each assembly operation, but they do not provide an explanation for the
infeasibility of assembly operations.

5.5.2 Feasibility Evaluation with Explanation

A distinguishing feature of the methodology developed is that reasons for the


infeasibility of assembly operations are provided. This information assists the
designer in the redesign of the product. It directs the designer for the design
changes required for a preferred sequence to be feasible; often, small changes
in the design, that do not a ect other aspects of the product, allow preferred
sequences to be implemented.
This section discusses several of the expert-system rules developed to
evaluate the feasibility of assembly operations and provide an explanation
for their infeasibility.
These rules are based on the speci c characteristics of each fundamental
connection type regarding its feasible and infeasible establishment directions
and also regarding how that connection can be established. It is from this
50

d1
Insufficient clearance
d1 < d2

d2

Figure 5.5: Cross-section of assembly showing insucient alignment clearance


knowledge that the feasibility or infeasibility of the simultaneous establishment of connections and an adequate explanation for the infeasibility of an
operation are derived.
As in the previous section, the rules presented here are simpli cations of
the actual rules that have been implemented into the system.
For the didactic assembly in Figure 5.5 the insertion of part A into subassembly BC is not feasible by translating A along the z-negative axis, due to
the obstruction of C. Alternatively, the translation of A along the y-negative
axis, to align parts A and B, followed by the translation of A along the znegative axis is also infeasible, because clearance d1 is not large enough to
allow the alignment of A and B. That is, because d1 < d2 there is not a
collision-free path to align the parts before the insertion operation.
Since a product is modelled in its fully assembled state, the geometric
infeasibility of the establishment of a connection can never be due to geometric incompatibilities between the two parts de ning the connection. An
infeasible connection such as the one depicted in Figure 5.6 is an example of
a connection that could never gure in the model of a product.
Consequently, an insertion operation (pin, threaded, inside, etc.) is geometrically feasible if there is a collision-free path to bring the two subassemblies from an arbitrary position, suciently far apart, to an alignment
position from where the insertion connection can be successfully established
by a single translation. Two subassemblies are said to be \suciently far
apart" when their envelopes do not intersect.
For the assembly example in Figure 5.5 the rule No-alignment-clearance
detects the infeasibility of assembling A to BC.
Note that all contacts mentioned in the rules presented in this section
51

d1

d1 > d2
A

d2

Figure 5.6: Infeasible connection


are contacts between subassemblies, that is, each of the parts in a contact
belongs to one of the two subassemblies involved in the operation. For this
reason, and to present the rules more succinctly, for example, \a contact
established by P" is used instead of \a contact established by P and a part
of the other subassembly".

 RULE No-alignment-clearance

- Parts P , and Q belong to Subassembly1, and


- There is an insertion contact established by P
along v, and
- There is a contact established by Q along ?v.
THEN: - The operation is infeasible.
Can't join Subassembly1 and Subassembly2 along v.
Parts P and Q blocking access to Subassembly2.

IF:

For the assembly in Figure 5.5 Subassembly1 is BC, Subassembly2 is


A, parts P and Q are B and C respectively, v is the z-direction, and the
insertion contact is of type pin. The actual explanation provided by the
expert system for this operation is:
Can't join BC and A along z Parts B and C blocking access
to A.

The rule above ascertains the geometric infeasibility of simultaneously


establishing connections in opposite directions if (at least) one of the connections involves an insertion. For the assembly in Figure 5.5 the two incompatible connections are the pin connection between A and B, and the virtual
planar connection between A and C.
52

y
x

Front View

Figure 5.7: Four interlocked blocks


Another example of a non-existent free-collision path to assemble two
subassemblies is depicted in Figure 5.7. In this gure, for example, part A
cannot be assembled to subassembly BCD because it is infeasible to establish
simultaneously the pin connections between A and B, and A and D along
orthogonal directions. Rule Incompatible-directions , ascertains the geometric
infeasibility of simultaneously establishing insertion connections along nonparallel directions.

 RULE Incompatible-directions

- Parts P , and Q belong to Subassembly1, and


- There is a non-placement contact established by P
along v, and
- There is a non-placement contact established by Q
not along v.
THEN: - The operation is infeasible.
Can't join Subassembly1 and Subassembly2.
Subassembly2 has di erent assembly directions with
P and Q of Subassembly1.
Although, both rules No-alignment-clearance and Incompatible-directions
ascertain the infeasibility of simultaneously establishing two insertion contacts in opposite directions, only one will \ re" for a speci c operation, given
that any of them is a sucient condition for the infeasibility of the operation.
A third example of the non-existence of a free-collision path is shown in
Figure 2.1. In the assembly of this gure the Stick cannot be assembled to
subassembly CapReceptacleHandle, because the insertion paths of the Stick
into the Receptacle are blocked by the Cap in the y-positive direction, and
by the Handle in the y-negative direction.
Rule Blocked-inside-hollow ascertains the infeasibility of simultaneously
establishing an inside contact and two other non-annular and non-inside conIF:

53

tacts respectively in the positive and the negative directions of the establishment of the inside contact.

 RULE Blocked-inside-hollow

- Part P belongs to Subassembly1, and


- Parts Q, R, and S belong to Subassembly2, and
- There is an inside contact established by P and Q
along v, and
- There is a non-annular and non-inside contact
established by P and R
along v, and
- There is a non-annular and non-inside contact
established by P and S
along ?v.
THEN: - The operation is infeasible.
Can't join Subassembly1 and Subassembly2.
P must go inside Q, which is blocked by
R and S .

IF:

The rule above ascertains the infeasibility of the operation joining the
Stick (subassembly1) to CapReceptacleHandle (Subassembly2), where P is
the Stick, Q, R, and S are Receptacle, Cap and Handle respectively, v is
the y-positive direction, and the non-annular and non-inside contacts are
virtual planar contacts.
The actual explanation provided by the expert system for this operation
is:
Can't join Stick to CapReceptacleHandle. Stick must go inside
Receptacle, which is blocked by Handle and Cap.

In the last example of a non-existent collision-free path presented here,


the assembly path of a part is obstructed by a tool required to hold down
another part before the latter is nally secured.
It is assumed that when two subassemblies are assembled together one of
them is xed into a work xture and the other will be moved and placed or
inserted in the rst one.
In some cases, the subassembly that is placed or inserted into the base
assembly is immediately secured, or located by attachments in the subassemblies themselves (threads, insertion pins, snap- t, etc.) or by separate fasteners (screws, pins, rivets, etc.), and consequently, becomes completely stable.
In other cases, the subassembly is unstable after placement or insertion, or
during subsequent operations, and will require holding down until is nally
54

secured. Holding down a subassembly to maintain its position and orientation may be achieved by means of tools or xtures, or eventually by hand
in manual assembly. The medium used, regardless of its exact nature, is
called here the holding-down tool . When an holding-down tool is used it
may obstruct the assembly path of a part or parts in subassemblies to be assembled in subsequent operations until the subassembly being held is nally
secured and the tool removed. Since a reverse assembly approach is used
during the assembly operation feasibility tests, the feasibility of joining two
subassemblies is assessed before the assessment of each of these subassemblies. Therefore, a feasible assembly operation may end up not appearing
in any of the feasible assembly sequences of a product if one (or both) of
the subassemblies it joins cannot be built. It is, usually, not possible to ascertain the impossibility of building a subassembly until the subassembly is
decomposed in all its possible pairs of sub-subassemblies and the feasibility
of the respective assembly operations is tested. For it to be possible to build
an assembly there must exist at least one feasible assembly operation to join
a pair of its subassemblies. However, when a tool is used to hold down a
sub-subassembly it is possible to determine that the subassembly cannot be
built as soon as the subassembly is generated, by decomposition of a parent
subassembly, if:
 The subassembly contains a part that needs to be held down with a
tool, and
 The part/fastener that is going to nally secure the part is not yet in
the subassembly, and
 There is at least one part in the subassembly which cannot be assembled
when the holding tool is present.
The two rst facts determine that the tool is currently holding the part,
and these with the third fact determine the impossibility of building the subassembly. A subassembly in this case can, therefore, be discarded without the
need to decompose it in its pairs of sub-subassemblies and test the feasibility
of the respective assembly operations. Furthermore, the assembly operation
that joins this subassembly to another subassembly will be asserted as infeasible, because it cannot appear in any feasible assembly sequence for the
product being analysed.
Thus, when an assembly operation is performed with the presence of tools
to hold-down parts, two situations must be judged:
1. Whether the presence of a holding-down tool in a subassembly precludes it to be assembled to another subassembly by obstructing the
assembly path of at least one part of the latter subassembly, and
55

Figure 5.8: Assembly path of part A is obstructed by tool holding part D.


2. Whether the subassembly containing the part held down could not have
been built, because the holding-down tool would preclude the assembly
of at least one of its parts by obstructing its assembly path.
The second situation is illustrated in Figure 5.8 where a subassembly
formed by parts A, B and D cannot be built, because the tool holding part
D in place, until the screw C secures it nally, obstructs the assembly path
of part A.
The knowledge derived from the discussion above is encapsulated in the
following rule:

 RULE Tool-obstruction

IF:
- Part A is secured by part B,
- Parts A is in the subassembly that is going to be assembled to the
subassembly containing part B,
- There is a third part, part C, in one of the subassemblies, that has a
contact with part A (real or virtual), and
- The contact between the tool holding down part A and part A is
established in the same direction than the contact between parts C
and A.
THEN:
IF:
- Parts A and C belong to the same subassembly.
THEN:
- This subassembly cannot be built. Part C is obstructed by the tool
holding down part A.
IF:
- Parts A and C are in separate subassemblies.
THEN:
- The operation of joining the two subassemblies is infeasible. Part C
is obstructed by the tool holding down part A.
56

cut-set 3

cut-set 1

c2

F
cut-set 6
c7

c3

cut-set 2

c6

c1
z

c4

B
C

cut-set 4

E
cut-set 5

(a)

cut-set 7

c51

(b)

Figure 5.9: Cross-section and graph of connections of didactic example


Several examples of assembly path obstruction are presented in Chapter 6
with the accompanying explanations for operation infeasibility.

5.6 Minimising Knowledge Base Accesses


To improve the system's eciency, static assembly knowledge is partitioned
into three distinct knowledge-bases. One of them contains the Fundamental
Contact and Virtual Contact rules and is accessed only once. The other two
knowledge-bases contain, respectively, the Subassembly Contact Generation
and the Assembly Operation Feasibility rules. Furthermore, the accesses to
the last two knowledge-bases can be reduced to a minimum, without precluding any sequence from being generated, by concurrently applying three
measures. This section illustrates the application of these measures to the
simple assembly of Figure 5.9.
Using the Reverse Assembly Approach , the assembly operation feasibility
analysis starts with the alternative last assembly operations obtained by
decomposition of the fully assembled product.
Examining the didactic assembly illustrated in Figure 5.9 with its graph
of connections, and the AND/OR graph of subassemblies partially shown in
Figure 5.10, the seven potential last operations can be seen represented in
level 1 of the AND/OR graph.
The two decompositions indicated by the dashed lines in both graphs
are infeasible decompositions, i.e. they correspond to infeasible assembly
operations. It is not possible to assemble part A to subassembly BCDEF,
because the insertion path of part A is blocked either by C or by D, E and
F. Similarly the connections between part E and parts D and F cannot be
57

ABCDEF
4

3
ABC
C

2
DEF

ABCDE

ABDEF

ABCD

EF

AC

ABCDF
A

BD

1
F

BCDEF

BDE

BDEF

Figure 5.10: Partial AND/OR graph of subassemblies of didactic example


established if parts D and F are already assembled together.
Feasibility analysis continues with the examination of the operations at
level 2 of the AND/OR graph, and so on, down to the level of the graph which
contains only operations at most involving two pairs of parts or involving
one part and a pair of parts. The level of the graph below this one would
contain only operations between two parts and this level is not generated
because operations joining two parts are by de nition always feasible (refer to
Section 5.5), and since there are not any other parts involved in the operation
it is also always possible to access the contacts by any eventual fasteners. For
this reason, the decomposition of two-part subassemblies is never performed.
Carrying out all decompositions of an assembly into subassemblies, and of
all these subassemblies again into smaller subassemblies, and so on, until none
of the subassemblies obtained in a level of the AND/OR graph contains more
than two parts and then testing the feasibility of all corresponding assembly
operations they represent would not be ecient. Eventually, subassemblies
that cannot make part of any feasible assembly sequence would be generated,
some operations would be tested several times and operations that lead to a
dead end would also be tested, as it will become clear shortly. Furthermore,
applied as such this method would imply accessing CLIPS feasibility rules
for each of these operations.
For the assembly in Figure 5.9 a total of 175 decompositions would be
generated and tested for feasibility.
To reduce the number of decompositions and subsequent accesses to the
CLIPS rule base without, however, loss of completeness the concurrent application the following three measures is proposed:
1. Concurrent generation of the AND/OR graph and evaluation

of operations feasibility.

Subassemblies are decomposed one at a time and the feasibility of the


corresponding alternative assembly operation is immediately checked.
58

Any pair of subassemblies that results from an infeasible decomposition is not added to the AND/OR graph, and consequently these subassemblies are not further decomposed. The corresponding assembly
operation is marked as infeasible.
Referring to Figure 5.10, operations 1 and 7, and respective pairs of
subassemblies, shown in dashed lines, are not actually part of the graph
generated.
Note that using the Reverse Assembly Approach and concurrently performing the generation of the AND/OR graph and the checking of the
feasibility of assembly operations guarantees that the de nition given
for the feasibility of an assembly sequence is observed; starting with the
fully assembled product working backwards towards individual parts,
a sequence of feasible operations can never lead to a situation where it
is not possible to complete the assembly.
If the graph is generated from individual parts towards the end product,
feasible sequences of assembly operations may eventually lead to a dead
end. For the didactic assembly in Figure 5.9, the sequence started by
inserting part C into a xture and then sequentially adding parts B,
D, E and F would reach a dead end because the remaining part to be
assembled, part A, cannot be inserted in BCDEF.
A direct assembly approach would involve backtracking every time a
dead end is found and would involve processing subassemblies that cannot in fact be part of any feasible sequence, as for example subassembly
BCD.
Building the AND/OR graph containing only subassemblies which result from feasible decompositions ensures that all subassemblies and
assembly operations in the graph will lead to the end product, and
it also reduces the number of decompositions that are e ected and
checked for feasibility.
For the product in Figure 5.9 the concurrent generation of the AND/OR
graph and the evaluation of operation feasibility reduces the number of
decompositions generated and tested from 175 to 83.
2. Generation of the AND/OR graph of unique subassemblies
Observing the AND/OR graph in Figure 5.10 it can be seen that one
subassembly may have several di erent parents, or in other words, it
may be the result of decompositions of several di erent subassemblies.
For example subassembly AC results from decompositions of subassemblies ABCDEF, ABCDE, ABCD and ABC.
59

The generation of the AND/OR graph of subassemblies involves the


establishment of a system of pointers between parent and children
subassemblies. These pointers which encode the 2-connectors in the
graphical representation of the AND/OR graph provide a mean of keeping track of all subassemblies decomposed and respective pairs of subsubassemblies obtained from each decomposition. Each subassembly is
unique in the AND/OR graph of subassemblies of the product, but it
may have several parents, indicated by the set of pointers associated
with it. Every time a subassembly already in the graph is found (again)
as the result of a new decomposition, the appropriate pointer linking
it to the new parent is set, but the subassembly is not added to the
graph.
Building an AND/OR graph of unique subassemblies reduces the number of decompositions and feasibility tests performed. Furthermore, as
unique subassemblies have unique decompositions, each decomposition
is never generated or checked more than once.
For the assembly in Figure 5.9 the application of measures 1 and 2
reduces the total number of decompositions generated and tested from
175 to 38, which is the total number of decompositions performed in
the process of generating the AND/OR graph of feasible assembly operations. These decompositions are listed in Table 5.1. Note that the
seven decompositions marked as infeasible will not make part of the
graph, but they must be performed and tested.
3. Inference of assembly operation feasibility. Measures 1 and 2
above indirectly reduce the number of times CLIPS subassembly-contact
and feasibility rules are accessed, because the set of decompositions for
each subassembly resulting from feasible decompositions is performed
only once and subassemblies resulting from infeasible decompositions
are never decomposed.
It is, however, possible to further reduce the number of accesses to
CLIPS knowledge bases by encoding in the procedural code simple
rules to infer the feasibility or infeasibility of operations based on the
results of evaluations of other operations.
Since it is assumed that the AND/OR graph contains only stable subassemblies (or subassemblies that can be made stable through the use
of xtures), and the assembly of Figure 5.9 does not have any separate
fasteners the following analysis of the feasibility of assembly operations
will refer only to the existence or absence of a collision-free path to
bring the subassemblies into contact.
60

DECOMPOSITIONS GENERATED IN THE PROCESS OF BUILDING THE AND/OR GRAPH OF FEASIBLE


ASSEMBLY OPERATIONS FOR THE DIDACTIC ASSEMBLY FIGURE 5.9
1:
2:
3:
4:
5:
6:
7:

B
A
A
A
A
A
A

C
C
B
B
B
B
B

D
&
D
C
C
C
C

E
B
E
&
D
D
D

F
D
F
D
&
E
F

&
E
&
E
E
&
&

A <--- infeasible
F
C
F
F
F
E <--- infeasible

8:
9:
10:
11:
12:

A
A
A
A
B

B
C
B
B
C

C
&
C
D
D

D
B
&
E
E

&
D
D
&
&

E
E
E
C
A

<--- infeasible

13:
14:
15:
16:
17:

A
A
A
A
B

B
B
B
B
D

D
D
D
&
E

E
&
F
D
F

&
E
&
E
&

F
F
E
F
A

18:
19:
20:
21:

A
A
A
B

B
B
C
C

C
D
&
D

&
&
B
&

D
C
D
A

22:
23:
24:
25:

B
B
B
D

D
D
D
E

E
&
F
F

&
E
&
&

F
F
E
B

26:
27:
28:

A B & C
A C & B
B C & A

29:
30:
31:

D E & F
E F & D
D F & E

32:
33:
34:

A B D & E
A B & D E
B D E & A

35:
36:

B D & E
D E & B

37:
38:

<--- infeasible

<--- infeasible

<--- infeasible

<--- infeasible

A B & D
B D & A

Table 5.1: Decompositions for assembly in Figure 5.9

61

Referring again to Figure 5.9, it can be seen that it is for example possible to assemble together subassemblies ABCD and EF, because there
is in fact a collision-free insertion path between the two subassemblies.
For the same reason it is also possible to assemble ABD and EF, BD
and EF, and D and EF.
The last three assembly operations have in common with the operation
that assembles ABCD and EF the fact that the connections established
are c5 and c7, which form cutset 5 (see Figure 5.9). In fact, the parts
that do not gure in the operations that assemble the last three pairs of
subassemblies are not associated with any of these connections. Several
authors, such as De Fazio [18] and Delchambre [10], have derived from
Bourjault's work [3] a rule to infer the feasibility of operations where
a relationship as the one between each of the operations joining any of
last three pairs of subassemblies and the rst pair is observed, without
the need for evaluating them directly.
This rule, with some terminology variations, states that:
If two subassemblies can be assembled together, then removing any
part, itself not associated with the mating connections, from either
subassembly will not change this situation [18, 10].
Given the method used to generate the AND/OR graph (breadth- rst
and concurrent operation feasibility analysis) this rule can be expanded
to include operations where the parts removed are associated with the
mating connections.
The following rule is proposed to further reduce the number of accesses
to the expert-system knowledge and enhance the system's eciency:

Operation Feasibility Inference Rule

If the assembly operation joining subassemblies A1 and A2 , respectively


constituted by the sets of parts SA1 and SA2 , is found feasible, in the
generation process of the AND/OR graph of feasible assembly operations of an assembly, then it is also feasible to join any other pair
of subassemblies B1 and B2 generated in the process and respectively
constituted by the sets of parts SB1  SA1 and SB2  SA2 .
For the assembly in Figure 5.9 this rule allows the inference of feasibility
of three other operations, to assemble respectively ABCD to E, ABD
to E, and BD to E, which involve only the establishment of connection
c7 .
The remaining operations involving subsets of subassemblies ABCD
and EF, are the operations that join BCD to EF, BCD to F, BCD to
62

ABCDEF
6

4
ABCDE

ABDEF
17

15
14

ABDF

11
10

13

12

16

BCDEF

ABCDF

ABCD

9
18

21
19

ABDE
32

BDEF

BCDE

ABC

34

33

26

20

BCD

24
27

23

25

BDF

22

28
BC

DEF
31

30

BDE

29

DF

36

AC

35

DE
ABD
38

EF
37

AB

BD

Figure 5.11: AND/OR graph of subassemblies of product in Figure 5.9


E, ABCD to F, ABD to F, and BD to F. None of these operations, however, is ever generated in the process of building the AND/OR graph,
because in all cases their respective parent assembly results from an
infeasible decomposition, as it can be seen Figure 5.11. These operations, although geometrically feasible, if performed would preclude the
product to be completely assembled, as discussed earlier.
Regarding the inference of the infeasibility of an assembly operation,
it is proposed the addition of the rule Operation Infeasibility Inference
Rule 2 to the rule used by Delchambre [10] and De Fazio [18], and also
derived from Bourjault's work [3]. The latter is called here Operation
Infeasibility Inference Rule 1 .

Operation Infeasibility Inference Rule 1

If the assembly operation joining subassemblies A1 and A2 respectively


constituted by the sets of parts SA1 and SA2 is infeasible, then it is also
infeasible to join any other pair of subassemblies B1 and B2 constituted
respectively by the sets of parts SB1  SA1 and SB2  SA2 .

Operation Infeasibility Inference Rule 2

If the assembly operation joining subassemblies A1 and A2 respectively


constituted by the sets of parts SA1 and SA2 , and establishing the set
63

of connections C, is found infeasible, in the generation process of the


AND/OR graph of feasible assembly operations of an assembly, then
it is also infeasible to join any other pair of subassemblies B1 and B2
generated in the process, respectively constituted by the sets of parts
SB1  SA1 and SB2  SA2 , whose assembly operation establishes the
same set of connections C, provided that the infeasibility of joining A1
and A2 is not due to the obstruction of fastener access by any part(s)
removed.
By using the latter rule in the generation of the AND/OR graph of our
assembly in Figure 5.9 only two operations need to be evaluated. The
operations joining respectively A to BCDEF and ABCDF to E, both
found infeasible during the generation of level 1 of the graph.
The infeasibility of assembling respectively A to BCDE and A to BCD
is inferred from the infeasibility of joining A to BCDEF, whilst the
infeasibility of the operations to assemble respectively ABDF to E,
BDF to E and DF to E is inferred from the infeasibility of assembling
ABCDF to E.
The remaining operations involving subsets of subassemblies A and
BCDEF, or ABCDF and E are either not generated in the process of
building the AND/OR graph, such as the operations joining A to BCDF
and BCDF to E, or they do not establish the same set of connections.
In the later case is the operation joining A to BC. The parts in each
subassembly are subsets respectively of A and BCDEF, but the set of
connections established by the operation does not include the virtual
contact between parts A and D.
Rule Operation Infeasibility Inference Rule 1 is never applied in this
example. Given the method used to generate the AND/OR graph this
rule is not as useful as Rule 2. Although smaller subassemblies may be
processed before larger ones, such as is the case of subassembly ABC,
which is decomposed before ABDE, in general larger assemblies are
processed rst, as it can be seen in Table 5.1.
Applying points 1, 2 and 3 in the generation of the AND/OR graph of
feasible assembly operations of the product in Figure 5.9 brings the number
of operations generated to 38, and the number of accesses to the expertsystem knowledge base to evaluate operation feasibility to a total of only
8. Figure 5.11 shows the operations generated and tested for feasibility;
the heavy lines denote the operations checked for feasibility, and the dashed
lines denote infeasible operations, all subassemblies formed by individual
parts are not shown to avoid cluttering the gure. The operations evaluated
64

are the seven operations generated in the rst level of the AND/OR graph
(operations 1 to 7) and the operation joining A to BC (operation 28) which
is found feasible when level two of the graph is generated.
These rules have been tested on a small sample of assembly examples.
Their correctness remains to be ascertained, and therefore, future work will
include formal proofs of their correctness.

65

Chapter 6
Application Examples
6.1 Introduction
The methods developed in this work have been implemented on a Unix workstation in both C++ and CLIPS [26] expert-system code. In this chapter several examples of the application of the system are presented and discussed
with the aim of illustrating the principal aspects of the methodology. These
examples illustrate the automatic enhancement of the initial model of a product, the explanation provided by the system for the infeasibility of assembly
operations, and the modelling of assemblies with particular characteristics.
The latter include assemblies containing unstable connections, parts requiring intermediate obstructive xturing, and parts requiring multidimensional
insertion paths. The modelling of assemblies requiring non-monotone and
non-coherent sequences of assembly is also discussed.

6.2 Virtual Contacts and Unstable Connections


In Section 5.2 it was shown how the connection information contained in the
initial model of a product is transformed into a set of fundamental contacts
and respective feasible and infeasible establishment directions along the three
axes of the assembly orientation frame. In Section 5.3 it was shown how
virtual contacts between parts can be automatically inferred from this set
of fundamental contacts to model eventual interferences between parts not
physically interconnected in the assembled product.
The ballpoint pen assembly shown in Figure 6.1, which was adopted from
Bourjault's work by De Fazio and Whitney to demonstrate their sequence
66

Body

Head

Cap

Button

Y
Tube

Ink

Figure 6.1: Exploded View of Ballpoint Pen


Head

uc

Cap

c1

Body

c5

Ink

uc

c2

Tube

c4

c3

Button

Figure 6.2: Graph of Connections of Ballpoint Pen


planner in [6], provides a good example of the generation of virtual contacts. This assembly is also used here to illustrate the modelling of unstable
connections, which were discussed in Section 4.2.1.
As it can be inferred from Figure 6.1 the connection between the Cap
and the Head is an unstable connection. It would be bad assembly practice to build a subassembly formed exclusively by the Cap and the Head,
because it would require xturing to maintain the relative positions of these
two parts during the assembly of subsequent parts. The same gure shows
that the connection between the Body and the Tube is a virtual connection.
These two parts are adjacent in the fully assembled product but they are not
interconnected, that is, there is a clearance between them.
These two connections are represented by the dashed lines in Figure 6.2 in
contrast to the solid lines representing stable connections. The modelling of
unstable and virtual connections di ers from the modelling of stable connections to ensure that all connections are considered in the feasibility analysis of
the assembly sequences, but no subassembly formed exclusively by unstable
and virtual connections is generated. All stable connections are, therefore,
represented in an incidence matrix of stable connections, from where all subassemblies are generated, whilst the Cap-Head and Body-Tube connections
are represented in a matrix of unstable connections as shown below:
67

[ -1 0 0 0 0 ] Cap
[ 0 -1 0 -1 0 ] Head
[ 1 1 -1 0 0 ] Body
[ 0 0 0 0 -1 ] Ink
[ 0 0 0 1 1 ] Tube
[ 0 0 1 0 0 ] Button
{y pin,y pin,y pin,y pin,y

[ 0 1 ]
[ 0 -1 ]
[ 1 0 ]
[ 0 0 ]
[ -1 0 ]
[ 0 0 ]
inside,y inside,y inside+}

The information above is translated into the following set of connection


facts:
(
(
(
(
(
(
(

connection
connection
connection
connection
connection
connection
connection

Cap Body y pin )


Head Body y pin )
Body Button y pin )
Head Tube y pin )
Ink Tube y inside )
Tube Body y inside )
Head Cap y inside+ )

The complete set of fundamental real and virtual contacts and respective
feasible and infeasible establishment directions along the three axes of the
assembly orientation frame derived from the connections facts is:
Real-contact facts:
(contact Head Cap y inside+ )
(contact Head Cap not z)
(contact Head Cap not x)
(contact Tube Body y inside )
(contact Tube Body not z)
(contact Tube Body not x)
(contact Ink Tube y inside )
(contact Ink Tube not z)
(contact Ink Tube not x)
(contact Head Tube y pin )
(contact Head Tube not z)
(contact Head Tube not x)
(contact Body Button y pin )
(contact Body Button not z)
(contact Body Button not x)
(contact Head Body y pin )
(contact Head Body not z)
(contact Head Body not x)
(contact Cap Body y pin )
(contact Cap Body not z)
(contact Cap Body not x)
Virtual-contact facts:
(contact Head Ink y planar)
(contact Cap Tube y planar)

68

(contact
(contact
(contact
(contact

Cap Ink y planar)


Tube Button y planar)
Ink Button y planar)
Ink Body y inside)

The above set of contact facts enhances the product's initial model and
provides the system's data base with the necessary and sucient information
for the automatic generation of all feasible assembly sequences, which are
shown below:
( Assembly sequence
1 Head & Body => Head Body & Cap
=> Cap Head Body & Tube => Cap Head Body Tube & Ink
=> Cap Head Body Ink Tube & Button => Cap Head Body Ink Tube Button)
( Assembly sequence
2 Head & Body => Head Body & Tube
=> Head Body Tube & Cap => Cap Head Body Tube & Ink
=> Cap Head Body Ink Tube & Button => Cap Head Body Ink Tube Button)
( Assembly sequence
3 Head & Tube => Head Tube & Body
=> Head Body Tube & Cap => Cap Head Body Tube & Ink
=> Cap Head Body Ink Tube & Button => Cap Head Body Ink Tube Button)
( Assembly sequence
4 Head & Body => Head Body & Cap
=> Cap Head Body & Ink Tube => Cap Head Body Ink Tube
=> Cap Head Body Ink Tube & Button => Cap Head Body Ink Tube Button)
( Assembly sequence
5 Ink & Tube => Ink Tube & Cap Head Body
=> Cap Head Body Ink Tube => Cap Head Body Ink Tube & Button
=> Cap Head Body Ink Tube Button)
( Assembly sequence
6 Head & Body => Head Body & Tube
=> Head Body Tube & Ink => Head Body Ink Tube & Cap
=> Cap Head Body Ink Tube & Button => Cap Head Body Ink Tube Button)
( Assembly sequence
7 Head & Tube => Head Tube & Body
=> Head Body Tube & Ink => Head Body Ink Tube & Cap
=> Cap Head Body Ink Tube & Button => Cap Head Body Ink Tube Button)
( Assembly sequence
8 Head & Body => Head Body & Ink Tube
=> Head Body Ink Tube => Head Body Ink Tube & Cap
=> Cap Head Body Ink Tube & Button => Cap Head Body Ink Tube Button)
( Assembly sequence
9 Ink & Tube => Ink Tube & Head Body
=> Head Body Ink Tube => Head Body Ink Tube & Cap
=> Cap Head Body Ink Tube & Button => Cap Head Body Ink Tube Button)
( Assembly sequence
10 Head & Tube => Head Tube & Ink
=> Head Ink Tube & Body => Head Body Ink Tube & Cap
=> Cap Head Body Ink Tube & Button => Cap Head Body Ink Tube Button)
( Assembly sequence
11 Ink & Tube => Ink Tube & Head
=> Head Ink Tube & Body => Head Body Ink Tube & Cap
=> Cap Head Body Ink Tube & Button => Cap Head Body Ink Tube Button)
( Assembly sequence
12 Head & Body => Head Body & Tube
=> Head Body Tube & Ink => Head Body Ink Tube & Button
=> Head Body Ink Tube Button & Cap => Cap Head Body Ink Tube Button)
( Assembly sequence
13 Head & Tube => Head Tube & Body

69

=> Head Body Tube & Ink => Head Body Ink Tube & Button
=> Head Body Ink Tube Button & Cap => Cap Head Body Ink Tube Button)
( Assembly sequence
14 Head & Body => Head Body & Ink Tube
=> Head Body Ink Tube => Head Body Ink Tube & Button
=> Head Body Ink Tube Button & Cap => Cap Head Body Ink Tube Button)
( Assembly sequence
15 Ink & Tube => Ink Tube & Head Body
=> Head Body Ink Tube => Head Body Ink Tube & Button
=> Head Body Ink Tube Button & Cap => Cap Head Body Ink Tube Button)
( Assembly sequence
16 Head & Tube => Head Tube & Ink
=> Head Ink Tube & Body => Head Body Ink Tube & Button
=> Head Body Ink Tube Button & Cap => Cap Head Body Ink Tube Button)
( Assembly sequence
17 Ink & Tube => Ink Tube & Head
=> Head Ink Tube & Body => Head Body Ink Tube & Button
=> Head Body Ink Tube Button & Cap => Cap Head Body Ink Tube Button)
( Assembly sequence
18 Body & Button => Body Button & Head Ink Tube
=> Head Body Ink Tube Button => Head Body Ink Tube Button & Cap
=> Cap Head Body Ink Tube Button)
( Assembly sequence
19 Head & Tube => Head Tube & Ink
=> Head Ink Tube & Body Button => Head Body Ink Tube Button
=> Head Body Ink Tube Button & Cap => Cap Head Body Ink Tube Button)
( Assembly sequence
20 Ink & Tube => Ink Tube & Head
=> Head Ink Tube & Body Button => Head Body Ink Tube Button
=> Head Body Ink Tube Button & Cap => Cap Head Body Ink Tube Button)

The set of feasible assembly sequences is generated from the dynamic assembly knowledge in the system's data base and the static assembly knowledge represented in the system's knowledge base. Furthermore, this knowledge also allows the system to provide useful information on all feasible and
infeasible assembly directions for each pair of subassemblies involved in an
assembly operation, as well as, an explanation of the reasons why candidate
operations are infeasible:
Can't join Ink to CapHeadBodyTubeButton. Ink must go inside Tube, which is
blocked by Button and Head.
CapHeadBodyInkTube and Button can be joined along y direction.
CapHeadBodyInkTube and Button cannot be joined along z direction.
CapHeadBodyInkTube and Button cannot be joined along x direction.
Ink and CapHeadBodyTube cannot be joined along z direction.
Ink and CapHeadBodyTube cannot be joined along x direction.
CapHeadBody and Tube cannot be joined along z direction.
CapHeadBody and Tube cannot be joined along x direction.
Can't join CapBody and Head.
Head must go inside Cap, which is blocked by Body.
HeadBody and Cap cannot be joined along z direction.
HeadBody and Cap cannot be joined along x direction.
Can't join CapBody and HeadTube.
Head must go inside Cap, which is blocked by Body.
HeadBodyTube and Cap cannot be joined along z direction.

70

HeadBodyTube and Cap cannot be joined along x direction.


HeadBody and Tube cannot be joined along z direction.
HeadBody and Tube cannot be joined along x direction.
HeadTube and Body can be joined along y direction.
HeadTube and Body cannot be joined along z direction.
HeadTube and Body cannot be joined along x direction.
CapHeadBody and InkTube cannot be joined along z direction.
CapHeadBody and InkTube cannot be joined along x direction.
Can't join CapBody and HeadInkTube.
Head must go inside Cap, which is blocked by Body.
HeadBodyInkTube and Cap cannot be joined along z direction.
HeadBodyInkTube and Cap cannot be joined along x direction.
Ink and HeadBodyTube cannot be joined along z direction.
Ink and HeadBodyTube cannot be joined along x direction.
HeadBody and InkTube cannot be joined along z direction.
HeadBody and InkTube cannot be joined along x direction.
HeadInkTube and Body can be joined along y direction.
HeadInkTube and Body cannot be joined along z direction.
HeadInkTube and Body cannot be joined along x direction.
Ink and HeadTube cannot be joined along z direction.
Ink and HeadTube cannot be joined along x direction.
Head and InkTube can be joined along y direction.
Head and InkTube cannot be joined along z direction.
Head and InkTube cannot be joined along x direction.
Can't join CapBodyButton and HeadInkTube.
Head must go inside Cap, which is blocked by Body.
HeadBodyInkTubeButton and Cap cannot be joined along z direction.
HeadBodyInkTubeBUtton and Cap cannot be joined along x direction.
Can't join Ink to HeadBodyTubeButton. Ink must go inside Tube, which is
blocked by Button and Head.
Can't join InkTube to HeadBodyButton. Tube must go inside Body, which is
blocked by Button and Head.
HeadBodyInkTube and Button can be joined along y direction.
HeadBodyInkTube and Button cannot be joined along z direction.
HeadBodyInkTube and Button cannot be joined along x direction.
HeadInkTube and BodyButton can be joined along y direction.
HeadInkTube and BodyButton cannot be joined along z direction.
HeadInkTube and BodyButton cannot be joined along x direction.

In the ballpoint pen ve of the virtual contacts are planar contacts generated by propagation of planar or pin contacts (the Tube-Button, Head-Ink,
Cap-Tube, Cap-Ink and Ink-Button virtual contacts) and one (Ink-Body) is
an inside contact generated by propagation of an inside contact.
Two topologies that originate virtual planar contacts are depicted in Figures 6.3(h) and (i). The connection between parts C and B of this gure is
propagated to part A as a planar virtual contact between C and A, and thus
modelling a potential interference between these two parts. The connection
71

between B and C is shown as planar, but it can be of any type except of the
types annular or inside. If the contact is annular part C will not interfere
with any possible insertion path of A, and thus no virtual contact is generated in this case. If B is inside C this connection is propagated to A as an
inside virtual contact between C and A. Some of the topologies that originate
the latter type of virtual contact are shown in Figures 6.3(a) to (g).
In the ballpoint pen the virtual planar contact between the Tube and
Button is generated by propagating the pin contact between the Body and
the Button to the Tube which is inside the Body:
(contact Tube Body y inside) and (contact Body Button y pin) => (contact Tube Button y
planar)

The newly generated virtual contact between the Tube and Button and
the contact between the Ink and Tube originate another virtual contact:
(contact Ink Tube y inside) and (contact Tube Button y planar) => (contact Ink Button y

planar)

The contacts Tube-Body and Cap-Body originate:


(contact Tube Body y inside) and (contact Cap Body y pin) => (contact Cap Tube y planar)
The virtual contact Cap-Tube and real contact Ink-Tube originate:
(contact Ink Tube y inside) and (contact Cap Tube y planar) => (contact Cap Ink y planar)
The inside contacts Ink-Tube and Tube-Body originate the only inside
virtual contact in the ballpoint pen:
(contact Ink Tube y inside) and (contact Tube Body y inside) => (contact Ink Body y inside)
Finally, the above virtual contact between the Ink and the Body with the
real contact between the Head and the Body originate:
(contact Ink Body y inside) and (contact Head Body y pin) => (contact Head Ink y planar)
As mentioned above, Figure 6.3 shows some of the possible topologies
that originate the automatic generation of virtual contacts. The topologies
in Figure 6.3 (a), (b) and (c) originate virtual contacts of the type \contact
A C y inside", as shown below.
Assembly in Figure 6.3 (a):
Input data:
[ -1 0 ] A
[ 1 -1 ] B
[ 0 1 ] C
{ y inside+, y inside }
Contact facts extracted from the initial product model:
(contact B C y inside )
(contact B C not z)
(contact B C not x)
(contact A B y inside+ )
(contact A B not z)

72

A
B

A
B

B
C

(b)

(a)

(c)

A
B

A
B

B
C

(d)

(e)

A
B

(f)

B
C

(h)

(g)

(i)

Figure 6.3: Examples of topologies with virtual contacts between parts without any real contacts

73

(contact A B not x)
Virtual contact generated:
(contact A C y inside)
Feasible assembly sequences:
( Assembly sequence
1 A & B
( Assembly sequence
2 B & C

=> A B & C
=> B C & A

=> A B C)
=> A B C)

Output explanation:
AB and C can be joined along y direction.
AB and C cannot be joined along z direction.
AB and C cannot be joined along x direction.
A and BC can be joined along y direction.
A and BC cannot be joined along z direction.
A and BC cannot be joined along x direction.

Assembly in Figure 6.3 (b):


Input data:
[ -1 0 ] A
[ 1 -1 ] B
[ 0 1 ] C
{ z inside+, y inside }
Contact facts extracted from the initial product model:
(contact B C y inside )
(contact B C not z)
(contact B C not x)
(contact A B z inside+ )
(contact A B not x)
(contact A B not y)
Virtual contact generated:
(contact A C y inside)
Feasible assembly sequence:
( Assembly sequence
1 A & B

=> A B & C

=> A B C)

Output explanation:
AB and C can be joined along y direction.
AB and C cannot be joined along z direction.
AB and C cannot be joined along x direction.
Can't join BC and A.
A has different assembly directions with C and B of BC

Assembly in Figure 6.3 (c):


Input data:
[ -1 0 ] A

74

[ 1 -1 ] B
[ 0 1 ] C
{ y inside, y inside }
Contact facts extracted from the initial product model:
(contact B C y inside )
(contact B C not z)
(contact B C not x)
(contact A B y inside )
(contact A B not z)
(contact A B not x)
Virtual contact generated:
(contact A C y inside)
Feasible assembly sequences:
( Assembly sequence
1 A & B
( Assembly sequence
2 B & C

=> A B & C
=> B C & A

=> A B C)
=> A B C)

Output explanation:
AB and C can be joined along y direction.
AB and C cannot be joined along z direction.
AB and C cannot be joined along x direction.
A and BC can be joined along y direction.
A and BC cannot be joined along z direction.
A and BC cannot be joined along x direction.

The topologies in Figures 6.3 (d), (e), (f) and (g) originate virtual contacts
of the type \A C y inside+", as shown below.
Assembly in Figure 6.3 (d):
Input data:
[ -1 0 ] A
[ 1 -1 ] B
[ 0 1 ] C
{ y inside+, y inside+ }

Contact facts derived from the initial product model:


(contact B C y inside+ )
(contact B C not z)
(contact B C not x)
(contact A B y inside+ )
(contact A B not z)
(contact A B not x)
Virtual contact generated:
(contact A C y inside+)

75

Feasible assembly sequences:


( Assembly sequence
1 A & B
( Assembly sequence
2 B & C

=> A B & C
=> B C & A

=> A B C)
=> A B C)

Output explanation:
AB and C can be joined along y direction.
AB and C cannot be joined along z direction.
AB and C cannot be joined along x direction.
A and BC can be joined along y direction.
A and BC cannot be joined along z direction.
A and BC cannot be joined along x direction.

Assembly in Figure 6.3 (e):


Input data:
[ -1 0 ] A
[ 1 -1 ] B
[ 0 1 ] C
{y inside-, y inside+}
Contact facts derived from the initial product model:
(contact B C y inside+ )
(contact B C not z)
(contact B C not x)
(contact A B y inside- )
(contact A B not z)
(contact A B not x)
Virtual contact generated:
(contact A C y inside+)
Feasible assembly sequence:
( Assembly sequence
1 A & B

=> A B & C

=> A B C)

Output explanation :
AB and C can be joined along y direction.
AB and C cannot be joined along z direction.
AB and C cannot be joined along x direction.
Can't join BC and A.
A must go inside C, which is blocked by B.

Assembly in Figure 6.3 (f):


Input data:
[ -1 0 ] A
[ 1 -1 ] B
[ 0 1 ] C
{ y inside, y inside+ }

76

Contact facts derived from the initial product model:


(contact B C y inside+ )
(contact B C not z)
(contact B C not x)
(contact A B y inside )
(contact A B not z)
(contact A B not x)
Virtual contact generated:
(contact A C y inside+)
Feasible assembly sequences:
( Assembly sequence
1 A & B
( Assembly sequence
2 B & C

=> A B & C
=> B C & A

=> A B C)
=> A B C)

Output explanation:
AB and C can be joined along y direction.
AB and C cannot be joined along z direction.
AB and C cannot be joined along x direction.
A and BC can be joined along y direction.
A and BC cannot be joined along z direction.
A and BC cannot be joined along x direction.

Assembly in Figure 6.3 (g):


Input data:
[ -1 0 ] A
[ 1 -1 ] B
[ 0 1 ] C
{ z inside+, y inside+ }
Contact facts derived from the initial product model:
(contact B C y inside+ )
(contact B C not z)
(contact B C not x)
(contact A B z inside+ )
(contact A B not x)
(contact A B not y)
Virtual contact generated:
(contact A C y inside+)
Feasible assembly sequence:
( Assembly sequence
1 A & B
Output
AB and
AB and
AB and

=> A B & C

=> A B C)

explanation:
C can be joined along y direction.
C cannot be joined along z direction.
C cannot be joined along x direction.

77

C
z

B
A
y

Figure 6.4: Generation of planar virtual contacts by propagation


Can't join BC and A.
A has different assembly directions with C and B of BC

The assembly in Figure 6.4 is used to illustrate the propagation of planar


contacts to non-adjacent parts that have inside+ type contacts with a common part. In this gure parts B, D and E have connections of type inside+
with part A, in the z-axis direction. Part C has a threaded type connection
with A in the y-axis direction, and it also has virtual planar connections with
parts B and D, along the z axis. As it can be seen in Figure 6.4, if part E is
assembled to part A it is not possible to insert parts B and D into A. Parts
D and E are adjacent in the assembled product, and therefore, the planar
virtual connection between them is part of the initial assembly model. The
virtual planar contact between parts B and E in the z-axis direction is automatically generated by the system, to represent the blocking relationship
between these two parts.
The virtual contacts generated automatically by the system for the assembly in Figure 6.4 are shown below with the explanation for the infeasibility
of operations due to path obstruction.
Input data:
[ 1 -1 1 1 -1 0 ] A ( 0 0 0 )
[ -1 0 0 0 0 0 ] B ( -1 0 0 )
[ 0 1 0 0 0 0 ] C ( 1 -1 0 )
[ 0 0 -1 0 0 0 ] D ( 0 1 -1 )
[ 0 0 0 -1 0 -1 ] E ( 0 0 1 )
[ 0 0 0 0 1 1 ] F ( 0 0 0 )
{ z inside+, y threaded, z inside+, z inside+, z pin, z pin,
planar, z planar }
Connection facts
( connection B A
( connection A C
( connection D A

specified in the initial product model:


z inside+ )
y threaded )
z inside+ )

78

z planar, z

(
(
(
(
(
(

connection
connection
connection
connection
connection
connection

E
A
E
B
C
D

A
F
F
C
D
E

z inside+ )
z pin )
z pin )
z planar )
z planar )
z planar )

Virtual contacts generated:


(contact B E z planar )
(contact C E z planar )
(contact B D z planar )
(contact D F z planar)
(contact B F z planar)
Feasible assembly sequences:
( Assembly sequence 1 A & B =>
=>
( Assembly sequence 2 A & B =>
=>
( Assembly sequence 3 A & B =>
=>
( Assembly sequence 4 A & B =>
=>
( Assembly sequence 5 A & B =>
=>
( Assembly sequence 6 E & F =>
( Assembly sequence 7 A & B =>
=>
( Assembly sequence 8 A & B =>
=>
( Assembly sequence 9 E & F =>
=>
Explanation for operation
Can't join AC and B.
B must go inside A, which
Can't join AD and B.
B must go inside A, which
Can't join ACD and B.
B must go inside A, which
Can't join ABCE and D.
D must go inside A, which
Can't join ABE and D.
D must go inside A, which
Can't join ADE and B.
B must go inside A, which
Can't join ACDE and B.
B must go inside A, which
Can't join ABCDF and E.

A
A
A
A
A
A
A
A
A
A
E
A
A
A
A
E
A

B
B
B
B
B
B
B
B
B
B
F
B
B
B
B
F
B

&
C
&
C
&
C
&
C
&
C
&
&
D
&
D
&
C

C
D
D
D
D
D
D
D
C
D
A
D
E
D
E
A
D

=> A B C
E & F =>
=> A B D
E & F =>
=> A B D
E & F =>
=> A B D
E F)
=> A B C
E F)
B C D =>
=> A B D
F & C =>
=> A B D
F & C =>
B D => A
E F)

&
A
&
A
&
A
&

D => A B C
B C D E F)
C => A B C
B C D E F)
E => A B D
B C D E F)
C => A B C

& D
A
&
A
&
A
B

B
E
B
E
B
D

D & E
D & E
E & C
D & E F

=> A B C D & E F
C D E F)
=> A B D E & F
C D E F)
F => A B D E F
C D E F)
E F => A B D E F & C

infeasibility due to path obstruction:


is blocked by C.
is blocked by D.
is blocked by C.
is blocked by E.
is blocked by E.
is blocked by D.
is blocked by C.

79

Figure 6.5: Cross-section of assembly requiring intermediate xturing.


E must go inside A, which
Can't join ABCEF and D.
D must go inside A, which
Can't join ABDF and E.
E must go inside A, which
Can't join ABEF and D.
D must go inside A, which
Can't join ADEF and B.
B must go inside A, which
Can't join ACDEF and B.
B must go inside A, which

is blocked by F.
is blocked by E.
is blocked by F.
is blocked by E.
is blocked by D.
is blocked by C.

6.3 Insertion Path Obstructed by Intermediate Fixturing


During the process of assembling a product, a part or subassembly that is
placed or inserted into the base assembly may be immediately secured or
located by attachments in the part or subassembly itself or by separate fasteners, and the new partial assembly becomes immediately stable. However,
in many cases the new partial assembly requires temporary xturing during
subsequent operations until it becomes stable and the xture can be removed.
In the assembly of Figure 6.5, adopted from Lee [24], cylinder D must be
temporarily held in place until it nally secured by screw C. While D is held
in place, the lid A cannot be added to the assembly BD because regardless
of the type of tool used to hold D, it will obstruct the insertion path of A.
The initial model of this assembly, apart from the connection information,
must contain speci c information about the intermediate xturing to hold
down D until this part is nally secured by the screw C. In this example it is
considered that the product is manually assembled, and that part D is held
by hand until the screw C is tightened. Therefore, the input model for the
80

assembly in Figure 6.5 is:


[ 1 0 0 0 ] A
[ -1 -1 1 0 ] B
[ 0 1 0 1 ] C
[ 0 0 -1 -1 ] D
{y pin,x threaded,y inside+,x threaded}
(part D secured by C)
(part D held by hand along y +)
This assembly has only one feasible assembly sequence:
( Assembly sequence
1 B & D => B D & C => B C D & A => A B C D)
The system's explanation output is:
Can't join ABC and D.
D has different assembly directions with C and B of ABC
Subassembly ABD is infeasible.
Can't join A to make ABD. A is obstructed by hand holding D.
Can't join CD and AB.
AB has different assembly directions with D and C of CD
BCD and A can be joined along y direction.
BCD and A cannot be joined along z direction.
BCD and A cannot be joined along x direction.
Can't join BC and D.
D has different assembly directions with C and B of BC
BD and C can be joined along x direction.
BD and C cannot be joined along y direction.
BD and C cannot be joined along z direction.
Can't join CD and B.
B has different assembly directions with D and C of CD

6.4 Assembly Requiring Multidimensional Part


Insertion Path
In the assembly of a product one or more parts or subassemblies may require an insertion path that does not follow a straight line. This situation
should be avoided (mainly in the case of automated assembly), that is, when
a product is designed consideration should be given to the parts insertion
paths so that only straight line insertion paths are required to assemble the
product. Although multidimensional insertion paths are to be avoided they
have been considered in this work, and the assembly shown in Figure 6.6 is
used to illustrate how these paths are taken into consideration in the system
developed.
In this assembly part C must rstly be inserted along the z-negative axis
and then along the y-positive axis. Only the latter motion is considered in the
81

z
B

C
y

Figure 6.6: Simple didactic assembly


modelling of the connection between parts C and A, however, the obstruction
of the insertion of C along the z-negative axis is taken into consideration in
the modelling of the connection between parts C and D.
The system's input data for the assembly in Figure 6.6 is:
Input data:
[ -1 1 0 -1 0 0 ] A
[ 1 0 -1 0 -1 0 ] B
[ 0 -1 1 0 0 -1 ] C
[ 0 0 0 1 1 1 ] D
{z pin, y pin, y planar, z planar, z pin, z pin}
The feasible assembly sequences for this
( Assembly sequence
1 A & C => A C &
( Assembly sequence
2 A & C => A C &
( Assembly sequence
3 B & D => B D &

assembly are:
B => A B C & D => A B C D)
B D => A B C D)
A C => A B C D)

The system's explanation output is:


ABC and D can be joined along z direction.
ABC and D cannot be joined along x direction.
ABC and D cannot be joined along y direction.
Can't join AB and C along y
Parts B and A blocking access to C.
C and AB cannot be joined along z direction.
C and AB cannot be joined along x direction.
AC and B can be joined along z direction.
AC and B cannot be joined along x direction.
AC and B cannot be joined along y direction.
Can't join BC and A.
A has different assembly directions with C and B of BC
Can't join ABD and C.
C has different assembly directions with D and A of ABD
Can't join AB and CD.
CD has different assembly directions with B and A of AB
Can't join ACD and B along z
Parts A and D blocking access to B.

82

y
x

Front View

Figure 6.7: Four interlocked blocks


ACD and B cannot be joined along x direction.
ACD and B cannot be joined along y direction.
AC and BD can be joined along z direction.
AC and BD cannot be joined along x direction.
AC and BD cannot be joined along y direction.
Can't join AD and BC.
BC has different assembly directions with D and A of AD
Can't join BCD and A.
A has different assembly directions with C and B of BCD

6.5 Four Interlocking Blocks


The assembly shown in Figure 6.7 has been used by several authors [9] to
demonstrate their assembly sequence planners. This simple assembly provides another example of the explanation facility of the system.
Input data:
[ -1 0 0 1 ] A
[ 1 1 0 0 ] B
[ 0 -1 1 0 ] C
[ 0 0 -1 -1 ] D
{ y pin, z pin, y pin, z pin }
Assembly Sequences:
( Assembly sequence
( Assembly sequence
( Assembly sequence
( Assembly sequence

1
2
3
4

A
C
B
A

&
&
&
&

B
D
C
D

=>
=>
=>
=>

A
C
B
A

B
D
C
D

&
&
&
&

C
A
A
B

D
B
D
C

=>
=>
=>
=>

A
A
A
A

B
B
B
B

C
C
C
C

D)
D)
D)
D)

Output explanation:
Can't join ABC and D.
D has different assembly directions with C and A of ABC
CD and AB can be joined along z direction.

83

A
z

Figure 6.8: Assembly requiring a non-monotone assembly sequence


CD and AB cannot be joined along x direction.
CD and AB cannot be joined along y direction.
Can't join ABD and C.
C has different assembly directions with D and B of ABD
Can't join BCD and A.
A has different assembly directions with D and B of BCD
AD and BC can be joined along y direction.
AD and BC cannot be joined along z direction.
AD and BC cannot be joined along x direction.
Can't join ACD and B.
B has different assembly directions with A and C of ACD

6.6 Non-monotone Assembly Sequence


The assembly shown in Figure 6.8 was used by Huang and Lee in [16] to
exemplify a non-monotone assembly sequence, i.e. a sequence where a part,
or subassembly, must be temporarily left in a non-goal assembly position
while other assembly operations are performed, and subsequently moved to
its goal assembly position. In this assembly part C must rstly be fully
inserted in part B and moved to its goal position only after subassembly BC
has been inserted into A.
This assembly is modelled with C in its non-goal position, i.e. \C insideB". This connection and \B inside- A", are the existing connections when
the assembly operation involving the three parts is performed. In further
developments of the system goal and non-goal positions will be modelled
and explicitly speci ed in a detailed assembly plan outputed by the system.
Input data:
[ 0 1 ] A
[ 1 -1 ] B
[ -1 0 ] C
{ z inside-, y inside- }

84

Feasible assembly sequence:


( Assembly sequence
1 B & C

=> B C & A

=> A B C)

System's explanation output data:


BC and A cannot be joined along z direction.
BC and A cannot be joined along x direction.
BC and A can be joined along y direction.
Can't join AB and C.
C has different assembly directions with B and A of AB

6.7 Non-coherent Assembly Sequence


The assembly shown in Figure 6.9 was used by Wolter in [17] to exemplify an
assembly that can only be assembled in a non-coherent sequence of assembly
operations. This product can only be assembled by building two separate
subassemblies, respectively constituted by parts B and B1 and parts C, C1
and C2, xturing them into their relative goal positions and then adding part
A.
The reverse assembly approach as outlined in Chapter 3, does not generate non-coherent assembly sequences. This approach, is based on the generation of all decompositions of an assembly into pairs of subassemblies. An
assembly is represented by its graph of connections and each pair of subassemblies is the pair of subgraphs obtained by removing the connections
corresponding to a cutset of the graph of connections. Consequently, each
assembly operation always joins two subassemblies. In the case of the assembly in Figure 6.9, however, three subassemblies (BB1 , CC1C2, and A) must
be assembled together in one assembly operation.
At the current development stage of the system this limitation can be
overcome by explicitly specifying the use of xtures during the assembly
process. These xtures connect parts or subassemblies that are not interconnected in the assembled product. For the assembly in Figure 6.9 a connection
of type xture is speci ed between parts B and C.
Since the objective of the work being developed is to automate as much
as possible the generation of assembly sequences, the automatic generation
of non-coherent sequences will be taken into consideration in further developments of the system.
System's input data:
[ -1 -1 0
[ 1 0 -1
[ 0 1 0

0
0
1

0 0 ]
0 -1 ]
1 1 ]

A
B
C

(
(
(

0 0 0
0 -1 -1
1 0 0

85

0
0
0

0 )
0 )
0 )

C1
B1
C2

C
A
x

Figure 6.9: Assembly requiring a non-coherent assembly sequence


[
[
[
{y
x

0 0 1 0 0 0 ] B1 ( -1 0 0 1 -1 )
0 0 0 -1 0 0 ] C1 ( 0 1 0 0 1 )
0 0 0 0 -1 0 ] C2 ( 0 0 1 -1 0 )
pin, y pin, x pin, x pin, x pin, x fixture, x planar,
planar, x planar, y planar, y planar }

Feasible assembly sequences:


( Assembly sequence
1 B & B1 => B B1
=> B C B1 C1 C2
( Assembly sequence
2 C & C1 => C C1
=> B C B1 C1 C2
( Assembly sequence
3 C & C2 => C C2
=> B C B1 C1 C2

& C C1 C2 =>
& A => A B C
& C2 => C C1
=> B C B1 C1
& C1 => C C1
=> B C B1 C1

System's explanation:
Can't join ABCB1C1 and C2 along x
Parts B and C blocking access to C2.
C2 and ABCB1C1 cannot be joined along y direction.
C2 and ABCB1C1 cannot be joined along z direction.
Can't join ABCB1C2 and C1 along x
Parts B and C blocking access to C1.
C1 and ABCB1C2 cannot be joined along y direction.
C1 and ABCB1C2 cannot be joined along z direction.
Can't join ABCC1C2 and B1 along x
Parts B and C blocking access to B1.
ABCC1C2 and B1 cannot be joined along y direction.
ABCC1C2 and B1 cannot be joined along z direction.
Can't join CC1C2 and ABB1 along y
Parts C2 and C blocking access to ABB1.
ABB1 and CC1C2 cannot be joined along z direction.
ABB1 and CC1C2 cannot be joined along x direction.
Can't join BB1 and ACC1C2 along y
Parts B1 and B blocking access to ACC1C2.
ACC1C2 and BB1 cannot be joined along z direction.
ACC1C2 and BB1 cannot be joined along x direction.

86

B C B1 C1 C2
B1 C1 C2)
C2 & B B1
C2 & A => A B C B1 C1 C2)
C2 & B B1
C2 & A => A B C B1 C1 C2)

A and BCB1C1C2 can be joined along y direction.


A and BCB1C1C2 cannot be joined along z direction.
A and BCB1C1C2 cannot be joined along x direction.
BB1 and CC1C2 can be joined along x direction.
C2 and CC1 can be joined along x direction.
C2 and CC1 cannot be joined along y direction.
C2 and CC1 cannot be joined along z direction.
C1 and CC2 can be joined along x direction.
C1 and CC2 cannot be joined along y direction.
C1 and CC2 cannot be joined along z direction.
Can't join BCB1C1 and C2 along x
Parts B and C blocking access to C2.
C2 and BCB1C1 cannot be joined along y direction.
C2 and BCB1C1 cannot be joined along z direction.
Can't join BCB1C2 and C1 along x
Parts B and C blocking access to C1.
C1 and BCB1C2 cannot be joined along y direction.
C1 and BCB1C2 cannot be joined along z direction.
Can't join BCC1C2 and B1 along x
Parts B and C blocking access to B1.
BCC1C2 and B1 cannot be joined along y direction.
BCC1C2 and B1 cannot be joined along z direction.

87

Chapter 7
Conclusion
This paper reports on work being done in the area of computerised assembly
sequence planning.
The importance of the choice of assembly sequence for the eciency of
an assembly process and the need for more comprehensive software tools for
integrated product, process and system design was highlighted.
The literature review presented in Chapter 2 shows that the feasibility of
assembly operations in the methodologies proposed so far is either based on
user evaluation or on geometric algorithms which require fully-dimensioned
engineering drawings or CAD models of the assemblies. The methodology
presented in this report, unlike previous methodologies, does not require a
dimensional model of the assembly neither it needs to interrogate the user.
This approach has the advantages of being less prone to error than interactive systems, and unlike other automatic systems, of being suitable to be
used in an assembly-planning concurrent-engineering tool in early stages of
product development even before CAD drawings are complete.
The methodology proposed is based on the characteristics of the establishment of connections between the parts composing an assembly, and on
knowledge on the simultaneous establishment of connections. Connections
have been classi ed in a set of fundamental types, according to their possible
establishment directions and speci c mechanical characteristics. This classi cation forms the basis for the rule-based representation of the knowledge
required for the automatic evaluation of the feasibility of assembly operations
and identi cation of the parts that preclude certain assembly operations.
Furthermore, this knowledge allows the automatic inference of blocking
relationships between parts that are not in contact in an assembly, i.e. of
virtual connections, thus simplifying the user's job of modelling assemblies;
the user needs only to specify real and virtual connections between adjacent
parts in the assembly, which are easy to identify.
88

Methods of minimising the accesses to the knowledge bases of the system


for assembly operation feasibility evaluation, and therefore, improving the
system's eciency, have also been discussed. As a result of the method
used to generate assembly sequences, the Superset and Subset rules, initially
proposed by Bourjault have been expanded, and consequently, made possible
to evaluate the feasibility of a larger number of assembly operations from the
results of previous evaluations.
Finally, several test runs of the current implementation of the system have
been presented. These illustrate the capabilities and particular features of the
approach proposed, such as, the automatic generation of virtual connections
and its explanation facility.

Future work
Several points to receive immediate attention have already been mentioned
in the body of this report:
 Complete classi cation of connections between the parts in an assembly
into a set of fundamental connection types.
 Formal proof of correctness of the rules proposed for the minimisation
of direct evaluation of assembly operations' feasibility.
 Modelling of non-goal positions of parts for assemblies requiring nonmonotone sequences of assembly.
 Generation of non-coherent assembly sequences without the requirement for additional information from the user.
 Consideration of user de ned technological and strategic assembly constraints in the generation of feasible assembly sequences.
Other issues that will receive attention in a near future include:
 Formal de nitions of assemblies, connections an assembly operations,
to allow proof of the completeness and correctness of the rules forming
the knowledge bases of the system.
 Application of the methodology proposed to a representative sample of
assemblies from industry.
 Inclusion, in the system's output, of operations which although not being assembly operations in the strict sense (e.g. reorientations, cleaning,
testing, labelling) are an integral part of an assembly process.
89

Bibliography
[1] F. Gordon and R. Isenhour, \Simultaneous engineering," Electronic Engineering Times, January 1989.
[2] H. W. Stoll, \Simultaneous engineering in the conceptual design phase," in
SME Simultaneous Engineering Conference, November 1988.
[3] A. Bourjault, Contribution a une Approche Methodologique de l'Assemblage
Automatise: Elaboration Automatique des Sequences Operatoires. PhD thesis,
Universite de Franche-Comte, Besancon, France, 1984.
[4] J. M. Henrioud and A. Bourjault, \Computer-aided assembly process planning," Journal of Engineering Manufacture, 1992.
[5] T. De Fazio and D. Whitney, \Generation and consideration of all assembly
sequences for assembly system design," in International Workshop on Engineering Design and Manufacturing Management, pp. 43{56, November 1988.
[6] T. L. De Fazio and D. E. Whitney, \Simpli ed generation of all mechanical
assembly sequences," IEEE Journal of Robotics and Automation, pp. 640{658,
December 1987.
[7] L. Homem de Mello and A. Sanderson, \A correct and complete algorithm
for the generation of mechanical assembly sequences," IEEE Transactions on
Robotics and Automation, April 1991.
[8] L. Homem de Mello and A. Sanderson, \AND/OR graph representation of
assembly plans," IEEE Transactions on Robotics and Automation, pp. 188{
199, April 1990.
[9] L. S.Homem de Mello, Task Sequence Planning for Robotic Assembly. PhD
thesis, Carnegie-Mellon University, Pittsburgh, 1989.
[10] A. Delchambre, Computer-Aided Assembly Planning. London: Chapman and
Hall, 1992.
[11] A. Sanderson, L. Homem de Mello, and H. Zhang, \Assembly sequence planning," AI Magazine, pp. 62{81, Spring 1990.
[12] H. Ko and K. Lee, \Automatic assembly procedure generation from mating
conditions," Computer-Aided Design, pp. 3{10, January/February 1987.
[13] K. Lee and D. Gossard, \A hierarchical data structure for representing assemblies: Part 1," Computer-Aided Design, pp. 15{19, January/February 1985.

90

[14] H. Zhang, \Generation of precedence relations for mechanical assemblies,"


Master's thesis, Rensselaer Polytechnic Institute, Troy, 1989.
[15] J. Wolter, \A combinatorial analysis of enumerative data structures for assembly planning," in International Conference on Robotics and Automation,
Sacramento, California, pp. 611{618, April 1991.
[16] Y. F. Huang and C. S. G. Lee, \A framework of knowledge-based assembly
planning," in International Conference on Robotics and Automation, Sacramento, California, pp. 599{604, April 1991.
[17] J. Wolter, S. Chakrabarty, and J. Tsao, \Mating constraint languages for
assembly sequence planning," in International Conference on Robotics and
Automation, Nice, France, pp. 2367{2374, May 1992.
[18] D. F. Baldwin, T. E. Abell, M. M. Lui, T. L.De Fazio, and D. E. Whitney, \An
integrated computer aid for generating and evaluating assembly sequences
for mechanical products," IEEE Transactions on Robotics and Automation,
February 1991.
[19] R. H. Wilson, \Minimizing user queries in interactive assembly planning,"
in International Conference on Robotics and Automation, Atlanta, Georgia,
pp. 322{327, 1993.
[20] S. Lee and F. Wang, \Physical reasoning of interconnection forces for ecient
assembly planning," in International Conference on Robotics and Automation,
Atlanta, Georgia, pp. 307{313, May 1993.
[21] D. Y. Cho and H. S. Cho, \Inference on robotic assembly precedence constraints using a level graph," Robotica, pp. 173{183, 1993.
[22] J. Tsao and J. Wolter, \Assembly planning with intermediate states," in International Conference on Robotics and Automation, Atlanta, Georgia, pp. 71{
76, May 1993.
[23] L. Homem de Mello and A. Sanderson, \Representations of mechanical assembly sequences," IEEE Transactions on Robotics and Automation, April
1991.
[24] S. Lee, \Backward assembly planning with assembly cost analysis," in International Conference on Robotics and Automation, Nice, France, pp. 2382{
2391, May 1992.
[25] L. Homem de Mello and A. Sanderson, \Two criteria for the selection of assembly planning: Maximising the exibility of sequencing the assembly tasks
and minimising the assembly time through parallel execution of assembly
tasks," IEEE Transactions on Robotics and Automation, October 1991.
[26] NASA, Lyndon B. Johnson Space Center, Huston, TX, CLIPS User's Guide
{ Volume One, Rules, 1993.

91

You might also like