Control Engineering Practice 7 (1999) 151 — 159
A genetic-algorithm-based approach to the generation of robotic assembly sequences D.S. Hong *, H.S. Cho Department of Mechanical Design and Manufacturing, Changwon National University, 9, Sarim-dong, Changwon, Kyeongnam, 641-773, South Korea Department of Mechanical Engineering, Korea Advanced Institute of Science and Technology, 373-1, Kusong-dong, Yusong-gu, Taejon, 305-701, South Korea Received 29 July 1997; accepted 15 September 1998
Abstract An assembly sequence is considered to be optimal when it minimizes the assembly cost while satisfying assembly constraints. To generate such sequences for robotic assembly, this paper proposes a method using a genetic algorithm (GA). This method denotes an assembly sequence as an individual, which is assigned a fitness related to the assembly cost. Then, a population consisting of a number of individuals evolves to the next generation through the genetic operations of crossover and mutation, based upon the fitness of the individuals. The population continues to evolve repetitively, and finally the fittest individual with its corresponding assembly sequence is found. Through case studies for industrial products such as an electrical relay and an automobile alternator, the effectiveness of the proposed method is demonstrated, and the performance is analyzed. 1999 Elsevier Science Ltd. All rights reserved. Keywords: Assembly sequence generation; genetic algorithms; robotic assembly; assembly cost; assembly constraints
1. Introduction It has been reported that, on average, assembly costs account for 10—30% of the total cost of most industrial products (Nevins and Whitney, 1980). To reduce such assembly costs, much research effort has been put into assembly sequence generation. As has been pointed out in other research work, assembly sequence planning has direct consequences for productivity, product quality and the fixed costs that are involved with the assembly machines and other equipment. Up to now, various methods for generating assembly sequences have been reported: tree-search or graphsearch methods (Cho, 1992; Cho and Cho, 1993; Cho et al., 1993; Fazio and Whitney, 1987; Mello and Sanderson, 1990), disassembly methods (Lee, 1989; Shin and Cho, 1994; Shin et al., 1995), neural-network-based approaches (Chen, 1990; Hong and Cho, 1995) and the simulated annealing (SA) method (Hong and Cho, 1998). The search methods can find the optimal solutions, but *Corresponding author. Tel.: #81-551-279-7577; fax: #81-551263-5221; e-mail:
[email protected].
have a problem of the search space explosion for an increased number of parts. On the other hand, the disassembly methods and the neural-network-based approaches can cope with larger parts, but usually find local optimal solutions. The simulated annealing method, however, can find an optimal solution with high success rates even for an increased number of parts. As an alternative search method, genetic algorithms (GAs) have been used for solving various optimization problems (Caponetto et al., 1993; Goldberg, 1989; Holland, 1971; Holsapple et al., 1993; Winston, 1992). To search for a solution, the GA starts from a set of points of an objective function, whereas the SA starts from a single point of the objective function. It has been reported from previous works that the GA can find an optimal solution for relatively large optimization problems (Caponetto et al., 1993; Goldberg, 1989). In general, GAs regard the fittest individual resulting from the natural evolution of a population as a solution. The population consists of a number of individuals, each of which has a number of genes. The natural law, which operates on the genes, is characterized by natural selection, which produces the next generation through crossover and mutation.
0967-0661/99/$ — see front matter 1999 Elsevier Science Ltd. All rights reserved. PII: S 0 9 6 7 - 0 6 6 1 ( 9 8 ) 0 0 1 7 7 - 4
152
D.S. Hong, H.S. Cho/Control Engineering Practice 7 (1999) 151 —159
Using such evolutionary characteristics, this paper proposes a new method for generating robotic assembly sequences by using a genetic algorithm. In this method, an assembly sequence is represented as an individual, which is assigned a fitness related to the assembly cost. Initially, a population consisting of a number of individuals is created. Then, the population evolves to the next generation through crossover and mutation, based upon the fitness of the individuals. As a result of such repetitive evolution, assembly sequences, represented as the fittest individuals, are finally found. To show the effectiveness of the proposed approach, case studies for industrial products such as an electric relay and an automobile alternator have been carried out. The results show that the proposed approach successfully generates robotic assembly sequences, while minimizing the assembly cost. This paper is organized as follows: assembly sequence description, generation of assembly sequences using a genetic algorithm, and case studies and discussion. Finally, conclusions are drawn from the results of the case studies.
2. Assembly sequence description As a prerequisite to the subsequent assembly planning, the assembled states of parts in a product must be adequately described. Such a description, called the product modeling, will be utilized to infer the assembly constraints, and to evaluate the assembly cost. This study adopts the modeling method previously proposed by Cho and Cho (1993), in which products are modeled by a set of liaison data between parts. This section describes the modeling method of products, and the concept of assembly sequences. 2.1. Product modeling A product is assumed to be suitable for robotic assembly; it is composed of rigid parts, interconnected with each other in mutually orthogonal directions. Each part can be assembled by a simple insertion or fastening action such as screwing. Fig. 1 shows such a product. Let a product A"(P, ¸) consist of n parts P"+p "a"1, 2, 2 , n, ? interconnected by r liaisons
(1)
¸"+l "a, b"1, 2, 2 , n. aOb,, (2) ?@ where r""¸" and (n!1))r)n(n!1)/2. A liaison l represents the connective relations between a pair of ?@ parts p and p . The connective relations can be divided ? @ into contact-type connections and fit-type ones. The assembly directions shown in the figure are defined with respect to x, y, z, xN , yN , zN . Then, a liaison l is ?@
Fig. 1. An example of a product: ten-part electrical relay.
expressed by a predicate l "liaison(p , C , F , p ). (3) ?@ ? ?@ ?@ @ The C is called the contact-type connection matrix, and ?@ the F is the fit-type connection matrix. Each matrix ?@ consists of 2;3 elements, and is expressed by
c c c f f f C " V W X , F " V W X . (4) ?@ ?@ cN cN cN fN fN fN V W X V W X The element c is given 0 for no contact, rc for real B contact, and vc for virtual contact in the d direction between two parts p and p , where d3+x, y, z, xN , yN , zN ,. ? @ While, the element f is given 0 for no fit, sw for B screwing, r f for round peg-in-hole, and mp for multiple round pegs-in-holes. A more-detailed description on the connective relations can be found in Cho and Cho (1993). 2.2. Feasible, stable and optimal sequences Generating an assembly sequence is equivalent to finding a series of operations by which n parts are
D.S. Hong, H.S. Cho/Control Engineering Practice 7 (1999) 151 — 159
sequentially assembled to form an end-product. Important factors in the generation of assembly sequences are assembly constraints, which can be classified into precedence constraints and connectivity constraints. These assembly constraints can be inferred from the liaisons of the product (Cho and Cho, 1993). The precedence constraints of a liaison are represented by a set of parts that must be connected before a pair of parts are interconnected. These constraints result from the geometrical relationships between parts. The other constraints, the connectivity constraints, state that a part to be assembled onto an in-process subassembly must have at least one real connection, i.e., a real contact or a fit, with some part belonging to the in-process subassembly. The connectivity constraints play the role of preserving only one in-process subassembly throughout the assembly of a product. It is noted that such assembly constraints are directly derived from the physical relationships between parts in a real product. Once the assembly constraints have been inferred, assembly sequences that satisfy the assembly constraints can be inferred. Such assembly sequences are called the feasible assembly sequences. The feasible assembly sequences, however, do not always guarantee the parts to fix onto an in-process subassembly; parts may be loosely connected, and may come apart when the subassembly is turned or moved. Such assembly sequences that maintain the stability of in-process subassembly movement are called the stable sequences, by means of which the parts can be successfully assembled to form an end-product. As can be expected, if a large-degree-of-freedom robot is used instead of a smaller one, an increased number of stable sequences can be found, since the robot motion may eliminate some otherwise necessary subassembly movements. Stable sequences, therefore, are related not only to the subassembly state, but also to the degrees of freedom of the robot motion. Among the stable sequences, optimal sequences are selected as the ones having the minimum assembly cost. The assembly cost is defined to reflect the normalized degree of motion instability C (0)C )1) and the ?Q ?Q normalized number of assembly direction changes C LR (0)C )1) when the degree of freedom of robot LR motion is chosen (Hong and Cho, 1995). It should be noted that the C strongly affects the complexity of jigs ?Q and fixtures, while the C is closely related to the number LR of turning devices. Taking into consideration these C and C , the assembly cost J (0)J)1) can then be ?Q LR expressed by
J"
1
153
where o and o denote weighting factors determined by Q R the assembly system and the assembly cycle time (Cho, 1992) and o #o "1. Q R The above equation will be considered when the energy function and fitness associated with assembly sequence are to be derived.
3. Generation of assembly sequences using a genetic algorithm This section describes a genetic algorithm that finds the fittest individual from the repetitive evolution of a population. For such purposes, an assembly sequence is represented as an individual, which is assigned a fitness related to the assembly cost. As a result of such evolution, the assembly sequences represented by the fittest individuals are finally found. 3.1. Population, individual and fitness of individuals A population consists of a number of individuals. Here, the number of individuals, denoted by n , is NMN called the population size. Each individual represents an assembly sequence of an n-part product. Accordingly, an individual consists of n genes. Each gene is attributed an integer lying between 1 and n, such that the ith gene number represents the part number to be assembled at the ith assembly step. For example, the individual at the top of Fig. 2 represents an assembly sequence +1, 8, 9, 3, 2, 4, 7, 5, 6, of a nine-part product. Each individual is assigned a fitness, which means the probability that the individual will survive and create offspring in the next generation (Goldberg, 1989; Winston 1992). It can be easily deduced from the concept of
if an assembly sequence violates assembly constraints, or it is unstable,
o C #o C otherwise, Q ?Q R LR
(5) Fig. 2. An example of crossover operation: partially matched crossover (PMX). The marks 䉲 represent the crossover points.
D.S. Hong, H.S. Cho/Control Engineering Practice 7 (1999) 151 —159
154
fitness that a sequence having a low cost is regarded as the one having a high fitness. As an auxiliary measure of the fitness, this study introduces an energy function associated with an assembly sequence by reflecting the assembly cost and assembly constraints. The energy function E is defined as L E"C J# (C k #C j ), (6) ( . G 1 G G where J denotes the assembly cost in Eq. (5), k is the G precedence index of the ith part, i.e., the ith gene, and j is G the connectivity index. The C , C and C are positive ( . 1 constants. The precedence index k is assigned a value of G zero if the ith gene of an individual satisfies the precedence constraints. Otherwise, it is assigned a value of one. In a similar manner, the connectivity index j is assigned G a value of either zero or one. To determine the fitness, various methods have been reported. This study adopts two fitness functions: the standard method and the ranking method (Winston, 1992). The standard method is a common one, which equates the fitness of an individual with the relative quality of the individual. In assembly planning, the reciprocal of the energy can be attributed to the relative quality. Since the fitness means the probability, this study defines the fitness such that the sum of the fitnesses for all individuals in a population becomes unity. Accordingly, the fitness F (i"1, 2, 2 , n ) of the ith individual is G NMN expressed by (1/E ) G , (7) F" n G NMN (1/E ) H H where E means the energy of the ith individual in Eq. (6). G As an alternative, the ranking method that links the fitness to the quality ranking was reported (Winston, 1992). It has been known that the ranking method not only offers a way of controlling the bias toward the best individual, but also eliminates any unfortunate choice of measurement scale that might do harm. In the ranking method, the fitness of the highest-quality individual is assigned a fixed probability p , while the fitness sum of PI the rest of the individuals is 1!p . In a similar manner, PI the second-ranked individual has the fitness p (1!p ), PI PI and so on. Accordingly, the fitness of the ith-ranked individual F (i"1, 2, 2 , n ) is expressed by G NMN p (1!p )G\ for i(n , PI NMN F " PI (8) G (1!p )G\ for i"n . PI NMN The performance of the two methods will be demonstrated and compared in the next section.
3.2. Genetic operations Initially, a set of individuals are randomly generated. Then, the population is evolved by natural selection,
which produces the next generation through crossover and mutation. Crossover creates two offspring as new individuals from two parents among the current individuals, whereas mutation operates only on one parent, and creates an offspring that is different from the parent. These crossover and mutation operations are described below. 3.2.1. Crossover The genetic operation of crossover acts on two individuals, and allows two new individuals to be created. Various methods of the crossover operation have been reported. In this study, the partially matched crossover (PMX) is adopted (Goldberg, 1992; Holsapple et al., 1993). Fig. 2 shows an example of the PMX operation. Initially, two individuals are selected as parents, based upon their fitness, and two crossover points are randomly picked along the individuals, as shown in Fig. 2a. Then, the shaded middle segments of the individuals are exchanged to create new individuals, as shown in Fig. 2b. However, it can be seen from the figure that each new individual will not always represent a meaningful assembly sequence; the first individual has two duplicate parts, 8 and 5. To eliminate this conflict, the duplicate numbers outside the middle segments are exchanged with the ones that have been matched in the middle segments. Fig. 2c shows the offspring resulting from this partially matched crossover. 3.2.2. Mutation Mutation operates on one parent, and creates an offspring that is different from the parent. Fig. 3 illustrates an example of the swap operation for mutation (Holsapple et al., 1993). Initially, a gene is randomly selected, and is to be changed with another number, as shown in Fig. 3a. This operation results in the creation of a new individual, shown in Fig. 3b, but this individual does not normally represent a meaningful assembly sequence; the individual has a duplicate part 4. To eliminate this conflict, the selected gene and the one having the mutated number are swapped with each other. Fig. 3c shows the offspring resulting from this swap operation. 3.3. Genetic algorithm for generating assembly sequence To simulate a GA, parameters for controlling the algorithm should be determined. The parameters include the crossover probability p , the mutation probability p , AP KS the ranking probability p and the population size n . PI NMN Fig. 4 shows the simulation flow of the GA. The crossover and mutation operations are summarized as follows: Crossover. Generate a random number N . If N )p , 0 0 AP perform crossover to create two new individuals. Otherwise, reproduce the two individuals as new ones.
D.S. Hong, H.S. Cho/Control Engineering Practice 7 (1999) 151 — 159
155
case, the individuals with the maximum fitness are obtained as the solution of the assembly sequences. In the next section, case studies are carried out using this algorithm. 4. Case studies and discussion 4.1. Simulation conditions
Fig. 3. An example of mutation operation: swap.
To show the performance of the proposed approach, it was applied to the generation of assembly sequences for industrial products such as an electrical relay (Fig. 1) and an automobile alternator (Fig. 5). As presented in the previous section, the simulation flow is shown in Fig. 4. A simulation run terminates when the number of generations reaches a specified number, or when no change in the maximum fitness occurs during a specified interval of a number of generations. In this study, the specified number was assigned as 1000, and the interval for checking the termination was given as 20 generations. The weighting factors in Eq. (5) were assumed to be o "0.5 Q and o "0.5, while the energy constants were determined R to be C "1, C "1, and C "1. The simulation pro( . 1 gram was written in Turbo Prolog and executed on an IBM PC 486(66 MHz). 4.2. Simulation results and discussion Fig. 6 shows an example of the evolution of a population consisting of sixteen individuals for the ten-part
Fig. 4. The flowchart of the genetic algorithm for generating assembly sequences.
Mutation. Generate a random number N . If N )p , 0 0 KS perform mutation for each gene of the parents. Otherwise, reproduce the parents as new individuals. The procedure shown in the figure terminates when the number of generations reaches a specified number, or when no change in the maximum fitness occurs for an interval of a specified number of generations. In the latter
Fig. 5. An exploded view of a 13-part automobile alternator.
156
D.S. Hong, H.S. Cho/Control Engineering Practice 7 (1999) 151 —159
Fig. 6. Example of evolution of population for a relay (n "16, p "0.5, p "0.08, p "0.2). NMN AP KS PI
relay. Each individual represents an assembly sequence, and is assigned an assembly cost. In terms of the genetic algorithm, a lower energy means a higher fitness, as described in Section 3.1. Fig. 6a shows an initial population in which individuals have relatively high energy. As the population evolves, assembly sequences with low energy are created; the first individual of the 61st generation in Fig. 6d yields a low energy 0.362, and so on. At the 140th generation, shown in Fig. 6e, an individual with the lowest energy 0.329 is created. As the population evolves, no individual whose energy is lower than 0.329 is created. As a result, assembly sequences whose assembly cost is 0.329 in Fig 6f are found as the solution in this example. In this case, energy lower than the unity means the assembly cost itself. It can be seen from this example that the assembly cost is minimized by using the proposed method. The results for the 10-part relay are shown in Figs. 7—10. Each result under a simulation condition was obtained from twenty simulation runs, and is expressed in terms of both the rate of yielding an optimal sequence
Fig. 7. The results from 20 simulation runs at various mutation probabilities for a 10-part relay (n "20, p "0.5, p "0.2). NMN AP PI
out of 20 simulation runs, and the average number of generations to complete a run. Here, the optimal sequences were analytically obtained from the expert system (Cho, 1992). The procedure of assembly-sequence generation from the expert system can be briefly explained as follows. Firstly, the assembly constraints are inferred from the liaison data of a product, as explained
D.S. Hong, H.S. Cho/Control Engineering Practice 7 (1999) 151 — 159
Fig. 8. The results from 20 simulation runs at various crossover probabilities for a 10-part relay (n "20, p "0.08, p "0.2). NMN KS PI
Fig. 9. The results from 20 simulation runs at various ranking probabilities for a 10-part relay (n "20, p "0.05, p "0.08). NMN AP KS
Fig. 10. The results from 20 simulation runs at various population sizes for a 10-part relay (p "0.5, p "0.08, p "0.2). AP KS PI
in Section 2. Secondly, feasible assembly sequences satisfying the assembly constraints are generated. Thirdly, stable sequences that maintain the stability of the inprocess subassembly movements are inferred from the feasible sequences. Lastly, by the evaluation of assembly cost of the stable sequences, optimal sequences, yielding the minimum cost, are generated. On the other hand, the proposed approach obtains assembly sequences by using a genetic algorithm. The sequences obtained are then compared with those of the expert system to verify their optimality. Through case studies, it was found that the proposed approach can find
157
the optimal solution, the sequence both satisfying assembly constraints and yielding the minimum assembly cost. Then, as a measure of performance, the rate of yield of optimal sequences is evaluated in this study. Fig. 7 shows the results at various mutation probabilities between zero and 0.13. The figure shows that the rate increases until the mutation probability reaches 0.12. However, when the mutation probability is larger than 0.14, the solution was observed to be unstable; the maximum fitness fails to converge due to its irregular oscillation during the evolution. The number of generations required to complete a run is shown to be a minimum around the mutation probability 0.07. It can be seen from these results that the mutation probability strongly affects the performance of the GA in this study. Fig. 8 shows the results at various crossover probabilities from zero to unity. The figure shows that the crossover probability barely affects the performance of the GA. Fig. 9 shows the results for various ranking probabilities. The result of the standard method is shown at the zero ranking probability for simplicity, while the result of ranking methods are shown at probabilities of more than 0.1. The figure shows that the ranking method gives superior performance to the standard method. The ranking probability 0.2 gives a relatively good performance both in the rate of yielding optimal sequences, and in the number of generations required to complete a simulation run. Fig. 10 shows the results at various population sizes. It can be seen from the figure that population sizes of more than 16 give good performance in yielding optimal sequences. As the population size increases, the execution time to complete a simulation run becomes longer, although the number of generations becomes smaller. Thus, it is recommended that the population should be chosen to be as small as possible, provided that good solutions are guaranteed. The results for the 13-part alternator are shown in Figs. 11—14. Each result under simulation conditions was also obtained from 20 simulation runs. Unlike the case of the 10-part relay, this case shows relatively poor performance; at best the rate of yielding optimal sequence 0.15 was found as can be seen from Fig. 11a. To clarify the performance, new measures are adopted instead of the rate of yielding optimal sequences: the rate of yielding stable sequences and the solution quality. The solution quality q for the stable sequences obtained from 20 simulation runs is defined by J !JM q " , J !J
(9)
where J represents the optimal assembly cost, JM is the average cost for the stable sequences obtained, and J is a reference cost. In this study, the maximum cost of the
158
D.S. Hong, H.S. Cho/Control Engineering Practice 7 (1999) 151 —159
Fig. 14. The results from 20 simulation runs at various population sizes for a 13-part alternator (p "0.04, p "0.06, p "0.2). AP KS PI
Fig. 11. The results from 20 simulation runs at various mutation probabilities for a 13-part alternator (n "30, p "0.04, p "0.2). NMN AP PI
Fig. 12. The results from 20 simulation runs at various crossover probabilities for a 13-part alternator (n "30, p "0.06, p "0.2). NMN KS PI
assembly sequence was assigned a value of unity; thus, the J is chosen as unity. The above equation states that the solution quality for the optimal sequences becomes one, and 0)q )1. Fig. 11a and b show the results at various mutation probabilities. The figures show that the mutation probabilities between 0.04 and 0.07 give relatively good solutions; the rate of yielding stable sequences and the solution quality are high, while the number of generations required to complete a simulation run is low. Fig. 12 shows the results at various crossover probabilities between zero and one. The results show a tendency quite similar to those of the relay; the crossover probability barely affects the performance of the GA. Fig. 13 shows the results at various ranking probabilities. As can be seen in the figure, the standard method whose result is depicted at the probability of zero cannot give any stable sequences. In the ranking method, the ranking probabilities of more than 0.2 are shown to give relatively good solutions. This tendency is the same as the case study for the relay. Fig. 14 shows the results at various population sizes. The figure shows a tendency similar to the case of the relay. It can be seen that the population size of 20 gives good performance, both in yielding stable sequences and in the execution times. The figure also implies that the population should be chosen to be as small as possible, provided that good solutions are guaranteed. From the above results, it is concluded that the proposed approach successfully generates robotic assembly sequences, while minimizing the assembly cost. The performance of the GA is shown to be strongly affected by the fitness function and the mutation probability.
5. Conclusions
Fig. 13. The results from 20 simulation runs at various ranking probabilities for a 13-part alternator (n "30, p "0.04, p "0.06). NMN AP KS
In designing assembly systems it is essential to determine optimized assembly sequences for increasing productivity and reducing assembly costs. In this study, a genetic-algorithmic-base approach was proposed to generate assembly sequences for robotic assembly.
D.S. Hong, H.S. Cho/Control Engineering Practice 7 (1999) 151 — 159
The study denotes an assembly sequence as an individual. The individual consists of a set of genes, and is assigned a fitness related to the assembly cost. Then, assembly sequences are found as the fittest individuals resulting from the evolution of the population. Here, the population consists of a number of individuals, and the evolution is characterized by natural selection, which produces the next generation of the population through the genetic operations of crossover and mutation. Through case studies for industrial products, the effectiveness was demonstrated, and the results were analyzed. The performance was shown to be strongly affected by the fitness function and the mutation probability. From the results of the case studies, it is concluded that the proposed approach successfully generates robotic assembly sequences, while minimizing the assembly cost.
References Caponetto, R., Graziani, L.S., & Xibilia, M.G. (1993). Genetic algorithms and applications in system engineering: a survey. ¹rans. Inst. MC, 15(3), 143—156. Chen, C.L.P. (1990). Neural computations for planning AND/OR precedence-constraint robot assembly sequences. Proc. Int. Conf. Neural Net., 1, 127—142. Cho, D.Y. (1992). An expert system approach to the automatic generation of robotic assembly sequences. Ph.D. dissertation, Korea Advanced Institute of Science and Technology, Korea.
159
Cho, D.Y., & Cho, H.S. (1993). Inference on robotic assembly precedence constraints using part contact level graph. Robotica, 11, 173—183. Cho, D.Y., Shin, C.K., & Cho, H.S. (1993). Automatic inference on stable robotic assembly sequences based upon evaluation of base assembly motion instability. Robotica, 11, 351—362. Fazio T.L.D., & Whitney, D.E. (1987). Simplified generation of all assembly sequences. IEEE J. Rob. Auto., 3(6), 640—658. Goldberg, D.E. (1989). Genetic algorithms in search, optimization, and machine learning. Reading, MA: Addison-Wesley. Holland, J.H. (1971). Processing and processor for schemata. In: Jacks (Ed.), Associative information processing (pp. 127—147). New York: American Elsevier. Holsapple, C.W., Jacob, V.S., Pakath, R., & Zaveri, J.S. (1993). A genetics-based hybrid scheduler for generating static schedules in flexible manufacturing context. IEEE ¹rans. Systems Man Cyber., 23(4), 953—972. Hong, D.S., & Cho, H.S. (1995). A neural-network-based computational scheme for generating optimized robotic assembly sequences. Engng Appl. Artificial Intelligence, 8(2), 129—145. Hong, D.S., & Cho, H.S. (1998) Generation of robotic assembly sequences using simulated annealing. J. Manuf. Systems, submitted. Lee, S.H. (1989). Disassembly planning by subassembly extraction. Proc. 3rd ORSA/¹IMS Conf. Flex. Manuf. Systems (pp. 383—388). Mello L.S.H., & Sanderson, A.C. (1990). AND/OR representation of assembly plans. IEEE ¹rans. Rob. Auto., 6(2), 188—199. Nevins, J.L., & Whitney, D.E. (1980). Assembly research. Automatica, 16, 595—613. Shin, C.K., & Cho, H.S. (1994). On the generation of robotic assembly sequences based upon separability and assembly motion instability. Robotica, 12, 7—15. Shin, C.K., Hong, D.S., & Cho, H.S. (1995) Disassembly analysis for generating robotic assembly sequences. Proc. IEEE Int. Conf. Rob. Auto., 2, 1284—1289. Winston, P.H. (1992). Artificial intelligence. Reading, MA: AddisonWesley.