Page 1
.
Virtual disassembly of products based on geometric models
J. Pomares*, S.T. Puente, F. Torres, F.A. Candelas, P. GilDepartment of Physics, Systems Engineering and Signal Theory, University of Alicante,
Crta. San Vicente s/n. P.O. Box 99, 03080 Alicante, Spain
Received 18 September 2002; accepted 26 March 2004
Available online 19 June 2004
Abstract
This paper describes different aspects of a disassembly system and presents the information model to obtain, on the one hand,
the movements necessary for removing a component, and, on the other, a simulation of the disassembly process carried out. The
inputs of the disassembly system are the CAD model of the product to be disassembled and the different features of the
components stored in a database. Based on such information, an object-oriented model required for developing the disassembly
process in a flexible way is generated. Local and global strategies for the removal of one component, using a set of translational
movements, are described. Finally, the paper describes a simulation system that allows the verification of the disassembly
movements automatically obtained, and simultaneously, to determine the ease of non-destructive disassembly.
# 2004 Elsevier B.V. All rights reserved.
Keywords: Disassembly movements; Design for disassembly; Disassembly process; Geometric models; Disassembly simulation; Disassembly
path; n-Disassemblability
1. Introduction
Disassembly processes allow us to breakdown the
product into its different components, taking different
criteria into account (functional, according to materi-
als, etc). In [1,2], some of the desired objectives in
disassembling products are shown. Among such
objectives, we should mention the recovery of valu-
able components, the removal of defective parts, the
re-usability of certain components, the reduction of
the amount of left-overs, etc. In [3], once again, the
convenience of re-using the components of a product,
once its life-cycle has finished, is demonstrated. In this
paper, a study is presented that describes different
elements that an automatic disassembly system
requires from the economic and industrial point of
view. The need to have a preconception of the require-
ments for the disassembly of products from the initial
phases of their design has given rise to the term
‘design for disassembly’.
As already mentioned, the process for the disas-
sembly of a product can be done for many different
reasons, such as, the maintenance or the removal of a
given component. The type of disassembly or the
reason for which it is done conditions the entire
disassembly process. As such, depending on the objec-
tives, the methodology for developing its automatic
disassembly changes, as well as the information
required and, therefore, they should be considered
from the very first phases of the design. The case
we deal with here is a non-destructive disassembly for
maintenance. In such a case, a representation that
Computers in Industry 55 (2004) 1–14
* Corresponding author. Tel.: þ34 965 90 3400x2032;
fax: þ34 965 90 9750.
E-mail address: [email protected] (J. Pomares).
0166-3615/$ – see front matter # 2004 Elsevier B.V. All rights reserved.
doi:10.1016/j.compind.2004.03.001
Page 2
reflects both, the different components that can be
detached and the possible links for joining the differ-
ent components, is required.
There are two main types of disassembly, one is
‘destructive disassembly’, in which a component is
removed from the product previously assembled, by
destroying or damaging some other component of the
product, and the other is ‘non-destructive disassem-
bly’, in which we can remove each one of the com-
ponents without affecting any of the others.
In [4–6], different methods of determining the
sequence of movements required for removing any
of the components of a product (disassembly path) are
presented. These authors used, mainly, a disassembly
path that allows only one single translational or rota-
tional movement for removing a component, consid-
ering that the component cannot be separated from the
product if it needs more movements to accomplish the
removal operation (1-movability).
In this article, we present a method for the model-
ling of assemblies, which later on allows us to deter-
mine the disassembly path, taking into consideration a
complex path, composed of a set of movements.
Furthermore, it uses an adaptive planning since the
state of the disassembly is re-evaluated to find the
disassembly path after computing each movement of
the component. The method presented is based on
non-destructive disassembly.
This article proposes an algorithm for the genera-
tion of the movements for disassembly. We apply this
algorithm to the removal of components of a PC.
Within this field, there are several publications, such
as [7–11] in which different techniques are applied for
the disassembling of computers. Nowadays, the dis-
assembly of PCs is becoming more and more impor-
tant [12].
To be more specific, in this research we examine the
case of a PC that must be disassembled automatically.
In order to carry out this process, a model of the PC is
made in such a way that it allows us to determine the
characteristics of the elements involved in the product.
The characteristics are those that offer sufficient
information to determine the sequence of disassembly
actions required to remove a given component. Never-
theless, to be able to carry out automatic disassembly,
using a robot, other characteristics, which are
described later on in this paper, are required to allow
the grasping of objects and to determine the trajec-
tories to be followed by the arm in the 3D space. We
use the model mainly for the determination of the
movements required for the removal of a component.
It must, therefore, include the necessary geometric
information. We also include considerations for its
future implementation in automated systems based on
robots.
In the proposed disassembly system we have a
simulation software component that allows us to make
a pre-visualization of the steps that are required for the
removal of a given component.
The rest of the paper is organized as follows: in
Section 2, the main parts of the disassembly system
are shown. Sections 3–6 describe these steps. Section
7 shows a simulation of the results obtained. Finally,
the conclusions that can be drawn from this research
are presented, along with suggestions for possible
future studies.
2. Disassembly system
To provide a clear notation for the rest of this paper
we shall now define a set of concepts.
� Components: All the elements with individual phy-
sical entities, which form a product: hard drive,
power supply, CD-ROM, etc.
� Fasteners: All the elements with physically inde-
pendent entities, which link two or more compo-
nents: screws, cables, etc.
� Initial assembly: The original setup of all the com-
ponents, sub-assemblies and fasteners that form a
product.
� Product: The initial assembly.
The product to be disassembled, S, is composed of a
set of components attached to each other with different
kinds of contacts (flat, cylindrical, screw, etc.). Each
item of data about a component, Oi, (i 2 1; . . . ; n,
where n is the number of components) is stored in
a database from which the necessary characteristics of
the component can be obtained for its subsequent
removal.
Given a product and a component of that product,
the problem to be solved is to determine the necessary
movements for the automatic removal of the given
component. This problem is called a disassembly path
generation. To infer the trajectory to be followed
2 J. Pomares et al. / Computers in Industry 55 (2004) 1–14
Page 3
during the disassembly, it is necessary to have an
assembly model that allows an optimal storage of
the information needed for its disassembly. Futher-
more, this model stores the necessary features for
automatic implementation with a robotic arm.
The model used must accurately represent the
environment of the product so that the subsequent
simulation reproduces the disassembly process that
will be carried out in practice, as faithfully as
possible. This way, the simulation allows the evalua-
tion of the ease with which the product is disas-
sembled.
Fig. 1 shows the relationships that exist among the
different software components involved in the pro-
posed disassembly control and simulation system. A
geometric model of the product is generated from the
CAD model and from the information in the database.
This geometric model allows the system to obtain the
information necessary for the planner and for the
software component that determines the disassembly
path. The aspects of the disassembly system listed
below will be discussed throughout this article,
demonstrating its main advantages over other software
tools:
� Obtaining the information model required for the
disassembly system.
� Obtaining a geometric model from this information.
Such a model allows the system not only to deter-
mine the movements for the removal of a compo-
nent, but also to have a source of information for the
planning software component.
� Describing the strategy that enables the system to
determine the disassembly path of a given compo-
nent. That is to say, the way in which the disas-
sembly path is determined from an object-oriented
information model. This set of movements can be
implemented by a robot.
� Simulating the disassembly process.
It is not the objective of this paper to describe the
planning of the disassembly process. The planner uses
a generic graph of hierarchical relationships among
the components that make up the product, to deter-
mine the component to be disassembled at each
moment [13].
3. Geometric model
This section shows a proposal for a geometric
model of a product, which allows us to carry out
the automatic removal of each of its components.
An approach, in which the disassembly model is
generated automatically from the CAD design of
the product, is proposed. The model, which not only
facilitates the determining of the directions of the
removal of each component, also allows us to capture
the necessary information for the simulation of the
disassembly process. The characteristics of its future
implementation in a robotic system will also be dis-
cussed.
The components of the product are modelled as a
polyhedron. However, in a product, it is possible to
Fig. 1. Disassembly system.
J. Pomares et al. / Computers in Industry 55 (2004) 1–14 3
Page 4
find non-polyhedral components. In such cases, their
shapes are approximated by a polyhedron, so that the
disassembly movements will be determined for the
polyhedral envelope. Fig. 2 shows the approximation
of the shape of a screw to a polyhedron taking different
resolutions into consideration, using different qualities
in the representation.
A polyhedron is formed by a set of intersecting flat
surfaces. A surface has a normal vector, v, associated
with it, which is perpendicular to it and is directed
outwards from the polyhedron. In addition to the
vector, a point is required to obtain the complete
equation of the plane corresponding to the surface.
Therefore, it is also necessary to have the coordinates
of one of its vertices stored. Thus, for each surface, i, a
vector and a point will be needed (~vi1,pi1), where the
sub-index, 1, indicates that it is the initial position of
the surface of the polyhedron. Throughout the disas-
sembly, successive transformations will be carried out
on the above-mentioned vector and point so that after j
transformations of the polyhedron, their values will be
½~vij pij�T ¼ T � ½~vi1 pi1�, where T represents the set
of translations that the surface has undergone. The
problem to be solved now will be to determine the set
of translations, T, that allows the removal of a com-
ponent.
A model of the product which allows the inclusion
of all the characteristics (including the geometric
ones) that are implied in the disassembly problem
has been developed. This information model is an
extension of the model shown in [14], which was
designed exclusively for the planning of a disassem-
bly process restricted to 1-movable products. The
extension that we propose in this paper also allows
the generation of disassembly paths composed of
different translation movements. Each component is
represented hierarchically using an object-oriented
annotation (class, object, method). The attributes of
a component may be geometric, physical, relational,
etc. The attributes and the geometric features are
obtained directly from the CAD model of the product.
Within the geometric attributes, information such as
the location is stored. The location defines the posi-
tion and orientation of the component with respect to
the global system of coordinates. Furthermore, the
characteristics of the geometric model, such as the
pair ~vi1; pi1 for each surface, as well as, the physical
attributes, such as the geometric centre of the com-
ponents, are stored. Other information such as the
surfaces that allow the manipulation of the object, as
well as attributes of reachability that provide infor-
mation to the manipulator, is also stored. The non-
geometric information is obtained by means of a
database with the features of the product components
(see Fig. 1). Unlike the strategy shown by Zussman
et al.[14], in the system proposed here, a separate
representation of the previous object-oriented model
is used in order to show the relations between the
different components of the product, capturing addi-
tional information about the assembly, such as its
CAD model, which allows the generation of disas-
sembly paths. This representation is based on a graph
of contacts which will be described in the following
section.
Fig. 2. Approximation of the shape of a screw to a polyhedron taking different resolutions into consideration.
4 J. Pomares et al. / Computers in Industry 55 (2004) 1–14
Page 5
4. Graph of contacts
In the previous section, the information required
about each component has been described. In this
section, the information about the existing relations
among the components of the product is presented.
In the existing literature, there are numerous refer-
ences to methods of representing this information by
a graph. Among them Gottipolu and Ghosh [15],
Laperriere and ElMaraghy [16], Yokota and Brough
[17], Zussman et al. [14], Garcıa et al. [4], can be
found. The last of these authors describe a repre-
sentation of the relationships among the different
components of a product, which shows the direction
in which a contact between the components takes
place (in which case the type of contact is not
indicated). In [16], the different geometric relation-
ships that exist between each pair of components
(contact, blocking, free, etc.) are shown. In [17], the
possible degrees of freedom for the removal of a
component with a given contact are shown. In [4], a
graph is used for computing the possible movement
of a component considering its contact with the
adjacent components. The main problem with the
approaches proposed by these authors is that they use
static representations which, as such, are not mod-
ified at any time throughout the disassembly process.
In this paper, a dynamic representation is proposed.
This means that the representation is updated during
the progress of the disassembly process. e.g., during
the disassembly process a contact will disappear and
a new contact can be generated. The features of these
new contacts will be obtained from the object-
oriented model.
Fig. 3 shows an example of a graph of contacts. For
the sake of clarity, in Fig. 3, the adjacent surfaces
between each of the components have not been indi-
cated.
Therefore, each polyhedron (component Oi) of the
product, S, will be stored in the form of a graph with a
node for each surface (pij surface j of the component i),
so that there will be an edge when one surface of the
polyhedron is adjacent to another. Furthermore, this
graph has an edge (contact Ci) between each pair of
surfaces of each component that are in contact with
each other in the initial assembly. Each edge has an
attribute that indicates the type of contact it is (flat,
screw, cylindrical, etc.). This graph is labelled ‘graph
of contacts’ (Fig. 3) and is generated automatically
from the geometric model described in Section 3.
5. Simple movements
This section describes the method for determining
the direction in which the removal of a component
from the rest of the product has to be done. Simple
directions are considered, so that the disassembly is
done with just one translational motion.
5.1. Set of directions of removal
To determine the contact relations between each
pair of the components of the product, the graph of
O1
P12 P13 P14 P15 P16 P17P11
O2
P22
P23
P24
P25
P21
...
O3
P33
P34
P35
P36
P32
P31
...
O2
O1
O3
C1
C2
C3
C4
C5
C5
C3
C4
C1
C2
Assembly P26
Fig. 3. Graph of contacts.
J. Pomares et al. / Computers in Industry 55 (2004) 1–14 5
Page 6
contacts is used. In the following phase, the disas-
sembly path of a component is calculated. Some
authors, such as Mascle et al. [18], Laperriere and
ElMaraghy [16] propose defining the contacts
between the components of the product with the
degrees of freedom of each union. These publications
show a kinematic representation of the product in
which the set of movements allowed between the
components for removal are defined. In contrast, the
approach described in this article uses the concept of
the Gaussian sphere, developed by previous authors,
such as Shyamsundar and Gadh [19], Woo [20], Woo
and Dutta [21], Gadh et al. [22]. This concept is more
general than the kinematic approach and it is used to
determine the set of directions of removal (SDR)
based on the contact surfaces. This set represents
the possible separation directions of the component
with respect to the rest of the product.
To remove a component from the rest of the product
(for example O1 in Fig. 3), each of the contact surfaces
of the component must be considered. These contact
surfaces restrict the directions along which the com-
ponent is to be removed. Each of the contacts (which
can be determined from the graph of contacts) will
suppose a cut in the Gaussian sphere, thus limiting the
set of separation directions. This way, once all the
contact surfaces have been considered, we will have a
section of the sphere that represents the set of removl
directions for that component. Fig. 4 shows an exam-
ple for determining the SDR for the component O1
from the product of Fig. 3.
Different strategies for obtaining the removal direc-
tions use Gaussian sphere-based methods, and exten-
sions to the basic algorithm of the Gaussian sphere can
be seen in several studies, such as [23], which consider
cylindrical contacts in disassembly problems. In the
approach proposed in this article, the different types of
contact that are found in common industrial products
are considered (screws, cylindrical contacts, or other
elements that restrict the removal directions). This
allows us to obtain, for a given contact, the set of
movements to be carried out to achieve the removal of
a component, regardless of the complexity of the
movements, as well as the tools that a robot must
use for the disassembly process.
5.2. Direction of removal
This section describes the method used for deter-
mining the direction of removal (DR) from among the
set of directions represented by the SDR, calculated
with the Gaussian sphere method (a flow-chart of the
process followed to get a DR is shown in Fig. 5). In
order to determine this direction, taking into consid-
eration robot navigation techniques there are two main
approaches: local and global [24].
The global approach uses the complete knowledge
of the setting (the model of the product shown in
Section 3) where the disassembly is performed. A
Gaussian sphere Contact C1
Contact C2 Contact C3 Contact C4 Contact C5
SDR
Fig. 4. Set of directions of removal of the component O1 in the
assembly shown in Fig. 2. Fig. 5. Flow-chart to determine the direction of removal.
6 J. Pomares et al. / Computers in Industry 55 (2004) 1–14
Page 7
discrete global representation is often used to deter-
mine the direction of removal. The visibility graphs or
the Voronoı diagrams are found within these global
approaches [25,26]. These approaches are based on
the construction of a smaller dimension representa-
tion, such as a graph, from which the removal direc-
tion is determined. As opposed to the previous
approaches, there are the global ones that use the
decomposition in subspaces of the search space for
the direction of removal. This technique is known as
cellular decomposition [27,28].
In contrast, when a local approach is used, a local
representation of the disassembly environment is
needed. This information is often about the compo-
nents that are closest to the one to be removed. An
example of local approach is the potentials approach
[29] which will be partially used during the disas-
sembly process that is presented in this paper. While
local approaches study the possible motion of a com-
ponent without considering any blocking by remote
components, the global ones study detachment, i.e.,
motion towards infinity without being obstructed by
other components.
To obtain the trajectory for the removal of a given
component, a mixed approach has been developed. This
approach uses both local and global concepts. Local
concepts, such as the generation of a set of repulsion
forces from the obstacles towards the component to be
removed (potentials approach), are used. Global con-
cepts, such as the global information of the environment
of the disassembly process, are also used. This global
representation, labelled here as ‘discrete world’, stores
information that indicates whether a position (or set of
positions) in the environment is occupied by an obsta-
cle. The ‘discrete world’ is implemented as a tri-
dimensional array, so that each value of the array has
the occupation information of a global cartesian coor-
dinate (or set of coordinates) of the work space. There-
fore, each value of the ‘discrete world’ stores numerical
information concerning the probability that an obstacle
is in the corresponding set of positions.
The information contained in the ‘discrete world’ is
obtained through the detection of obstacles during the
execution of the disassembly process. This detection is
made using a set of rays or straight lines coming from
the geometric centre of the CAD model of the com-
ponent that is being removed (similar to an ultrasonic
ring in robotics). This set of rays form a sphere around
the component, which will be used to determine the
probability that a collision could take place in a given
direction. The number of rays is estimated by the
homogeneity of the component to be removed or by
the precision required. As such, the greater amount of
rays there are, the greater the precision will be in
detecting obstacles and the smaller the obstacles
detected may be. However, a higher number of rays
will require more extensive processing, which implies
a compromise between processing time and precision
in detection. A sampling of the trajectory followed by
the removed component is made, so that at given
intervals of time, the information in the ‘discrete
world’ is updated.
Once the SDR and the discrete world have been
obtained, the following step is to create a histogram,
which shows the probability with which a collision
might take place, for each possible direction of
removal. This histogram is generated from the infor-
mation in the ‘discrete world’ that is nearest the
component that is being removed. The histogram is
generated from the nearest information that is within a
sphere with a radius of d (proximity subsphere)
centred in the position of the ‘discrete world’ corre-
sponding to the geometric centre of the component to
be removed. The radius d is a parameter of the
algorithm and represents the information that will
be accumulated in the histogram.
The Cartesian global coordinates of the discrete
world are then converted into local spherical coordi-
nates with respect to the geometric centre of the
component to be removed. Thus, local spherical coor-
dinates (r, j, y) are obtained from the global cartesian
coordinates (x, y, z) which correspond to a position in
the ‘discrete world’. In order to determine the values
of the histogram, the values of the ‘discrete world’ that
are within the subsphere of proximity are accumulated
in the positions corresponding to the angles (j, y) in
the histogram. Therefore, the histogram will be a grid
of two dimensions that stores the probability of colli-
sion, p, on carrying out the movement in a given
direction. In Fig. 6, an example of a histogram for
the bi-dimensional case is shown. The proposed
method works in the three-dimensional case, but for
better graphical compression a bi-dimensional case
has been used in Fig. 6.
The following step consists of considering the
component to be removed as a particle subjected to
J. Pomares et al. / Computers in Industry 55 (2004) 1–14 7
Page 8
repulsion and attraction forces. In [29], similar stra-
tegies for determining trajectories are shown. In order
to determine the direction of the SDR that is selected
for removal, a repulsion force against the component
to be removed is associated with each value of the
histogram. These forces, which are directly propor-
tional to the values stored in the histogram, will be
inversely proportional to the distance between the
obstacle and the component. The repulsion force for
each value of the histogram (j, y) is computed using
Eq. (1), which calculates the resultant force in the
cartesian 3D space for each possible movement direc-
tion of the component. In Eq. (1) ‘hist(j, y)’ repre-
sents the value of the histogram at the angles (j, y).
‘f(j, y)’ has three components in the 3D cartesian
space (fx, fy, fz) and this force is different in each of the
removal directions given by the parameters j and y.
f ðj; yÞ ¼fxðj; yÞfyðj; yÞfzðj; yÞ
264
375 ¼
X8p=pðr;j;yÞ6¼0
histðj; yÞr
�x
y
z
264
375
(1)
From this histogram, it is possible to know the
directions that are free of obstacles. In these directions
an attraction force is exerted that will be combined
with the previously mentioned repulsive forces. Once
the direction of the resulting force has been calculated
and verified, the nearest direction within the SDR will
be the direction chosen for the removal, DR (direction
of removal).
6. Determination of the sequence of movements
Up to now, we have considered a 1-movable process
(note: 1-movability has already been defined). We
shall now describe the technique used for the removal
of components that require more than one translation
(n-disassemblable). In order to determine these move-
ments, the following steps are made (Fig. 7):
1. Obtain the DR from the concepts shown in Section
5.
2. Detect possible collisions. In this section we
determine what collisions would be obtained if
the component is moved in the DR. If no collision
takes place, we would have already found the
correct direction for the removal. Otherwise, we
would have a distance, d, in the DR, after which
we would have a collision.
Fig. 6. Generation of the histogram in the bi-dimensional case.
Fig. 7. Flow-chart to determine the sequence of movements.
8 J. Pomares et al. / Computers in Industry 55 (2004) 1–14
Page 9
3. Determine a distance d0 < d, so that, once the
component has been transferred through this
distance d0 for its removal, an update of the
‘discrete world is made and we return to point 1.
This transfer causes the data stored in the object-
oriented model to be updated (location, geometric
centre, etc.). It also causes the updating of the
graph of contacts.
The iteration of the three previous steps generates
the disassembly path. These movements are not
restricted to a set of orthogonal directions, so that
every direction is permitted in accordance with what
is expressed in Section 5. We have developed addi-
tional techniques for the control of the trajectory. These
techniques consist of guaranteeing smooth and non-
repetitive movements so that the disassembly is
obtained with the least possible number of movements.
In the second step for determining the disassembly
path of a component, we have shown the need to have
a detection system for collisions.
The problem of detection of collisions is reduced to
a problem of detection of collisions between polyhe-
dral objects in motion. In this field, there are classical
publications [30,31]. Other studies directed to the
detection of collisions between polyhedral objects,
[32], or those that use the simplex method-based
detection of collisions, [33], should also be mentioned.
The method that is described in this paper is used for
the detection of collisions of components that are
moving in a straight line (DR), affording the detection,
not only of a collision, but also of how far the
component can be transferred in a given direction
without causing a collision with any other component
in the product. In the algorithmic description of the
collision detector that is presented here, the following
considerations are made: DR is the direction of
removal of the component O obtained from SDR.
The algorithm that determines where the component
can move to, without any collision taking place, uses
the solution of a set of problems of linear program-
ming. From the solution of each one of the previous
problems, a set of collision points is obtained. The
nearest point to the component to be removed will
indicate the maximum distance that the component O
can be moved in the DR. To illustrate the general
description of the algorithm, the realistic example
shown in Fig. 8a is used. This figure shows a case
in which the system has to determine up to where the
screw (O) can be moved in the DR (i.e., vertical and
downwards) without colliding with the obstacle. Thus,
the algorithmic description of the method used for the
detection of collisions is as follows:
For all the surfaces (whose planes correspond to an
equation Pu) of the component to be removed O, and
whose normal vector~vji (where j is the numeration for
the surfaces of the component O) form an angle with
the DR that is in the range of ]p/2, þp/2[, do:
For all the surfaces (whose planes correspond to an
equation Pv) of the obstacles that have a normal vector
that forms an angle with the vector of movement (with
a direction equal to the DR) that is in the range ]p/2,
3p/2[ (which, therefore, can collide with surface Pu of
the component to be removed O),. do:
Surface whose equation is Pu
Surface whose equation is Pv
Screw to be disassembled. O.
Obstacle
DR
(a) (b) (c) (d) (e) (f)
Collisionpoint
Fig. 8. Sequence in which the set of restrictions for the problem of linear programming for the detection of collisions is shown.
J. Pomares et al. / Computers in Industry 55 (2004) 1–14 9
Page 10
Solve the linear programming problem of minimiz-
ing Pu. The restrictions associated with this problem of
linear programming will be:
� The equations of the planes corresponding to the
surfaces adjacent to Pu, but rotated so that their
normal vector is perpendicular to the vector of
movement corresponding to the DR, but also
continue to be adjacent to Pu (see Fig. 8b). Once
the plane has been rotated, the normal vector
will point towards the outside of the component.
This restriction will have to be �0 so that the
points that fulfil the restriction are those that are
in the subspace corresponding to the interior of
component O.
� The equation of the plane Pu. In this case, the
restriction will be �0, to limit the space in which
the component O is not located and, therefore, the
space that the component O will find during its
movement (see Fig. 8c).
� The equation of the plane Pv. The restriction will
now be equal to 0. (see Fig. 8d)
Fig. 9. (a) PC for the disassembly; (b) contact elements (screws) for hard drives and CD-ROM; (c) removal of a screw.
Fig. 10. Removal of the hard drive. (a) First direction for the removal; (b) second movement for the removal obtained for the hard drive; (c)
The last movement of the removal.
10 J. Pomares et al. / Computers in Industry 55 (2004) 1–14
Page 11
� The equations of the planes corresponding to the
surfaces adjacent to Pv, but rotated so that their
normal vector forms a ninety-degree angle with
the vector of movement corresponding to the DR,
and also continue being adjacent to Pv (see Fig. 8e).
Once the plane has been rotated, the normal vector
will point towards the outside of the component. This
restriction will have to be �0 so that the points that
fulfil the restriction are those that are in the subspace
corresponding to the interior of component O.
When this problem is solved, it gives the max-
imum distance to which the component O can be
moved in the DR without its Pu surface colliding
with the surface Pv of the obstacle. Fig. 8f shows
(in dark gray) the zone of the space that fulfils all
of the restrictions. The collision point is presented
in this figure.
Once the points are obtained, using the previous
algorithm, the nearest point to the component to be
removed in the DR will indicate the maximum dis-
tance to which component O can be moved during the
disassembly.
7. Simulation
In this section, the proposed disassembly system
is evaluated. To do so, several examples obtained
with the proposed simulation system are shown.
Fig. 11. Disassembly process for the power supply. (a) Original position of the power supply; (b) position of the power supply once the first
movement is made; (c) position of the power supply once the second movement is made; (d) the last movement for the removal of the power supply.
J. Pomares et al. / Computers in Industry 55 (2004) 1–14 11
Page 12
The simulation software component is represented in
Fig. 1 and it shows the user a simulation that allows
him to evaluate the automatic disassembly process.
There are many publications [34–38] on this matter.
The simulation system implemented uses the charac-
teristics stored in the model generated and obtains a
simulation of the movements required for the removal
of each component generated using the algorithm
described in Section 6. Thus, once the product to be
disassembled has been modelled, by employing this
tool, the obtained movements for the removal of each
component are simulated. The simulation system pro-
posed converts the CAD description of the product to a
VRML (virtual reality modelling language) descrip-
tion for the simulation of the disassembly path of a
component. VRML is a language for the description of
scenes and it is one of the most generalized methods for
visualization and virtual world navigation [39]. VRML
allows navigation, viewpoints, easy integration in the
Web and a high degree of portability. Therefore, this
tool is employed to evaluate the disassembly process,
obtaining the simulation of the movements required for
the removal of the components of a given assembly,
obtained as described earlier in this article.
Fig. 9 shows the PC modelled for the tests. If an
operator indicates to the system that it should make the
removal of a hard drive, the system indicates that the
previous removal of the fasteners is necessary, as is
shown in Fig. 9.
Once the fasteners have been disassembled, the
system determines that the next component to be
removed is the hard drive. Consequently, the path that
the component has to follow is computed, using the
proposed algorithm. With this information, the simu-
lation system shows the user the path required to
disassemble the hard drive. Its related movements
are shown in Fig. 10, with an arrow indicating the
removal direction in each step of the disassembly path.
Another example using the proposed system is
shown in Fig. 11. In this case, the component to be
removed is the power supply. The component has to
follow a disassembly path for removing it from the PC.
The movements obtained for the removal of the power
supply are shown in Fig. 11, where the arrows indicate
the directions for the removal of the power supply at
each step of the algorithm.
Virtual reality modelling language allows the user
to obtain different viewpoints for the evaluation of the
sequence of disassembly and, thus, to determine the
ease of disassembly of a product.
8. Conclusions
The different aspects of a disassembly system that
allows n-movability have been shown. The model
needed to infer the sequence of movements for the
disassembly by a robot arm is obtained from the CAD
model and a database with information about the
components, such as the grasping features. A flexible
system that allows a manufacturer to determine
whether the product can be disassembled easily, as
well as to obtain a sequence of the movements to be
made by a robot arm, has been proposed.
The method designed allows us, not only to obtain
the disassembly path, but also to verify whether these
movements exist and, if not, to indicate to the user or
to the planning software component why the removal
is impossible. Information about the fasteners has
been added to the product model.
We have implemented techniques for the detection
of collisions that allow us to correctly simulate the
movement of the components in a virtual environment.
We have also done a study on the structuring and
storage of the required information for each compo-
nent. We have decided on an object-oriented repre-
sentation of the information required for the
determination of the movements for disassembly.
Within the latter information, we include the tools
and places that allow a manipulator to grasp and do the
disassembly. We are now working on implementing
the disassembly with the use of a robot arm that carries
out the movements inferred by the system.
References
[1] A.J.D. Lambert, Disassembly sequencing: a survey, Interna-
tional Journal of Production Research 41 (16) (2003) 3721–
3759.
[2] A. Gungor, S.M. Gupta, Disassembly sequence plan genera-
tion using branch-and-bound algorithm, International Journal
of Production Research 39 (3) (2001) 481–509.
[3] G. Eckrth, T. Bonker, W. Kreis, Intelligent disassembly
systems for industrial reusing and closed loop economy, in:
Proceedings volume from IFAC Workshop on intelligent
assembly and disassembly, Bled, Slovenia, 1998, pp. 105–
110.
12 J. Pomares et al. / Computers in Industry 55 (2004) 1–14
Page 13
[4] M.A. Garcıa, A. Larre, B. Lopez, A. Oller, Reducing the
complexity of geometric selective disassembly, in: Proceed-
ing of the IEEE International Conference on Intelligent
Robots and Systems, Takamatsu, Japan, 2000, pp. 1474–1479.
[5] H. Srinivasan, R. Gadh, Selective disassembly of components
with geometric constrains, in: Proceedings of ASME design
engineering technical conferences, Las Vegas, Nevada, 1999.
[6] H. Srinivasan, R. Gadh, A geometric algorithm for single
selective disassembly using the wave propagation abstraction,
Computer-Aided Design 30 (8) (1998) 603–613.
[7] J.E. Boon, J.A. Isaacs, S.M. Gupta, Economic sensitivity for
end of life planning and processing of personal computers,
Journal of Electronics Manufacturing 11 (1) (2002) 81–93.
[8] T.C. Kuo, H.C. Zhang, S.H. Huang, Disassembly analysis for
electromechanical products: a graph-based heuristic ap-
proach, International Journal of Production Research 38 (5)
(2000) 993–1007.
[9] K. Lee, M. Martin, Modeling and supervisory control of a
disassembly automation workcell based on blocking topology,
IEEE Transactions on Robotics and Automation 16 (1) (2000)
67–76.
[10] H.C. Zhang, T.C. Kuo, A Graph-Based Disassembly
Sequence Planning for EOL Product Recycling, in: Proceed-
ings of IEEE/CPMT Electronics Manufacturing Technology
Symposium, Austin, TX, 1997, pp. 140–151.
[11] A. Gungor, S.M. Gupta, An evaluation methodology for
disassembly processes, Computers and Industrial Engineering
33 (1–2) (1997) 329–332.
[12] B. Kopacek, P. Kopacek, Intelligent disassembly of electronic
equipment, in: Proceedings volume from IFAC Workshop on
Intelligent Assembly and Disassembly, Bled, Slovenia, 1998,
pp. 87–92.
[13] F. Torres, S.T. Puente, R. Aracil, Disassembly planning based
on precedence relations among assemblies, International
Journal of Advanced Manufacturing Technology 21 (5)
(2003) 317–327.
[14] E. Zussman, E. Lenz, M. Shpitalni, An approach to the
automatic assembly planning problem, Annals of the CIRP 39
(1) (1990) 33–36.
[15] R.B. Gottipolu, H. Ghosh, Representation and selection of
assembly sequences in computer-aided assembly process
planning, International Journal of Production Research 35
(12) (1997) 3447–3465.
[16] L. Laperriere, H. ElMaraghy, GAPP: A generative assembly
process planner, Journal of Manufacturing Systems 15 (4)
(1996) 282–293.
[17] K. Yokota, D.R. Brough, Assembly/disassembly sequence
planning, Assembly Automation: International Journal 12 (3)
(1992) 31–38.
[18] C. Mascle, E. Dupinet, R. Maranzana, Feature modeling
in assembly planning, in: Proceedings of the IFIP Interna-
tional conference on feature modelling and recognition in
advanced CAD/CAM systems, Valenciennes, France, 1994,
pp. 605–627.
[19] N. Shyamsundar, R. Gadh, Geometric abstractions to
support disassembly analysis, IIE Transactions 31 (1999)
935–946.
[20] T.C. Woo, Visibility maps and spherical algorithms, Compu-
ter-Aided Design Journal 26 (1) (1994) 6–16.
[21] T.C. Woo, D. Dutta, Automatic disassembly and total
ordering in three dimensions, Journal of Engineering for
Industry 113 (2) (1991) 207–213.
[22] R. Gadh, H. Hjalmarsson, F.B. Prinz, On the recognition
and classification of shape features using MANU-facture,
ASME Issues in Design/Manufacture Integration 39 (1991)
53–58.
[23] Z. Siddique, D.W. Rosen, A virtual prototyping approach to
product disassembly reasoning, Computer-Aided Design
Journal 29 (12) (1997) 847–860.
[24] H. Choset, Coverage for robotics—A survey of recent results,
Annals of Mathematics and Artificial Intelligence 31 (1–4)
(2000) 113–126.
[25] X.B. Zou, Z.X. Cai, G.R. Sun, Non-smooth environment
modelling and global path planning for mobile robots, Journal
of Central South University of Technology 10 (3) (2003)
248–248.
[26] O. Takahashi, R. Schilling, Motion planning in plane using
generalised Voronoı diagrams, IEEE Transactions on Ro-
botics and Automation 5 (2) (1989) 143–150.
[27] H. Choset, Coverage of known spaces: the boustrophedon
cellular decomposition, Autonomous Robots 9 (3) (1999)
247–253.
[28] T. Lozano-Perez, A simple motion-planning algorithm for
general robot manipulators, IEEE Journal of Robotics and
Automation 3 (3) (1997) 224–238.
[29] M.B. Reid, Path planning using optically computed potential
fields, in: IEEE Proceedings of the International conference
on robotics and automation, Atlanta, GA, USA, 1993,
pp. 295–300.
[30] J.W. Boyse, Interference detection among solids and
surfaces, Communications of the ACM (CACM) 22 (1)
(1979) 3–9.
[31] J. Canny, On detecting collision between polyhedra, in:
Proceedings of ECAI, 1984, pp. 533–542.
[32] E. Schomer, Interaktive montagesimulation mit kollisionser-
kennung. Ph.D. Thesis, Universitat des Saarlandes, Saarland,
Germany, 1994.
[33] G.E. Gilbert, D.W. Johnson, S.S. Keerthi, A fast procedure
for computing the distance between complex objects in three-
dimensional space, IEEE Journal of Robotics and Automation
4 (2) (1988) 193–203.
[34] H. Bullinger, W. Menrad, K. Seidel, Advanced assembly
and disassembly planning using virtual reality techniques,
in: Proceedings volume from IFAC Workshop on intelligent
assembly and disassembly, Bled, Slovenia, 1998, pp.
7–10.
[35] T. Gutierrez, J.I. Barbero, A. Eguidazu, Virtual assembly and
disassembly simulation, in: Proceedings volume from IFAC
workshop on intelligent assembly and disassembly, Bled,
Slovenia, 1998, pp. 35–40.
[36] H. Srinivasan, R. Figueroa, R. Gadh, Selective disassembly
for virtual prototyping as applied to de-manufacturing,
Journal of Robotics and Computer Integrated Manufacturing
15 (1999) 231–245.
J. Pomares et al. / Computers in Industry 55 (2004) 1–14 13
Page 14
[37] G. Schmidt, A. Kron, J. Hoogen, Tele-Assembly and–
Disassembly in Real and Virtual Environments, in:
Proceedings volume from IFAC workshop on intelligent
assembly and disassembly, Bucharest, Romania, 2003,
pp. 1–12.
[38] D. Noe, P. Kopacek, Synergies between information technol-
ogies and (Dis)-assembly, in: Proceedings volume from IFAC
workshop on intelligent assembly and disassembly, Buchar-
est, Romania, 2003, pp. 27–36.
[39] R. Carey, G. Bell, The annotated VRML 2.0 reference
manual. Addison-Wesley, Boston, MA, 1997.
Jorge Pomares received the Computer
Science Engineering degree from the
University of Alicante, Spain, in 1999.
He has been working as professor in the
Department of Physics, Systems Engi-
neering and Signal Theory in the Uni-
versity of Alicante since 2000 and
teaches courses in robotics and auto-
matic control. He is also doing his
research in Automatics, Robotics and
Computer Vision Group in the same
department since 1999, where he has been involved in several
research projects in collaboration with industry and the Spanish
Government. He is currently working on his Ph.D and his main
research interests are visual servoing, robotics and computer vision.
Prof. Pomares is a member of the CEA-IFAC.
Santiago T. Puente received the Com-
puter Science Industrial Engineering and
Ph.D degrees from University of Ali-
cante in 1998 and 2002, respectively.
Since 1999, he has been at the Alicante
University, as professor in robotics and
computer networks. His research inter-
ests include robotics, manufacturing
automation, disassembly, and new tech-
nologies for teaching. Dr. Puente is a
member of the CEA-IFAC. He has pub-
lished several international papers.
Fernando Torres received the Industrial
Engineering and Ph.D degrees from Poly-
technic University of Madrid (UPM) in
1991 and 1995, respectively. Since 1994,
he has been at the Alicante University, as
professor in control, robotics and compu-
ter vision. His research interests include
automatic visual inspection, robotics,
manufacturing automation, visual servo-
ing, morphological processing and new technologies for teaching.
Prof. Torres is a member of the CEA-IFAC, IEEE and the Spanish
Image Analysis and Pattern Recognition Society. He has published
several international papers.
Francisco A. Candelas was born in
Alicante, Spain in 1972. He received
the Computer Science Engineering
degree and Ph.D from the University
of Alicante (UA) in 1996 and 2001,
respectively. Since 1997, he has been
working as professor at UA in the
Department of Physics, Systems Engi-
neering and Signal Theory and teaches
courses in process control and computer
networks. From 1999 he has been work-
ing as full professor at UA. His main research interests are virtual
laboratories, tele-manipulation of robots, and real-time computer
vision. Prof. Candelas is also a member of the CEA-IFAC.
Pablo Gil Vazquez received the Com-
puter Science Engineering degree from
the University of Alicante in 1999. He is
working as professor at the Department
of Physics, Systems Engineering and
Signal Theory of the University of Ali-
cante since 2000, and teaches courses in
computer networks, process control and
robotics and sensorial systems. His
research interests include image proces-
sing, pattern recognition, 3D-vision and
virtual laboratories for education, and he is currently working on his
Ph.D in computer vision and 3D vision.
14 J. Pomares et al. / Computers in Industry 55 (2004) 1–14