Optimal Robotic Component Placement

advertisement

Optimal Robotic

Component Placement

Kevin P. Broad

Department of Engineering Science

University of Auckland

New Zealand broad @esvl .auckland.ac.nz

Abstract

Many manufacturing companies, including Fisher and Paykel, use robotic component placement machines in the assembly of electrical goods. These machines place electronic components at predefined positions on printed circuit boards. A robotic arm, which carries one component at a time, collects components from feeders and positions them, under computer control, onto the printed circuit board. Fisher and

Paykel Electronics Ltd operate at near-capacity machine utilization and they regard increasing their through-put to be a major priority in avoiding the need to purchase new machinery.

A new solution method, based on a zero/one integer linear programming model, is developed for this problem that has, unlike earlier published solution procedures, demonstrated optimality for all Fisher and Paykel test problems. While this method does not prevent the occurrence of disconnected tours in solutions, such tours have never occurred in practice, and thus optimality does not appear to be compromised by this relaxation. Solution times of about 30 seconds for typical problems are achieved using a 1% tolerance on the branch and bound integerising process.

1 Introduction

Fisher and Paykel Electronics Ltd produce electronic circuitry for a variety of product lines. Like other manufacturing firms, they have moved to using modem manufacturing techniques such as Just In Time inventory control and Total Quality

Management. Consequently, they are always seeking improvements in manufacturing efficiency and effectiveness. One area of potentially large cost savings is that of circuit board assembly - the placement or insertion of electrical components onto a printed circuit board.

A circuit board consists of a non-conductive board with predefined positions for specific components to be placed. Commonly used components include such items as resistors, capacitors and semi-conductors and they vary in size, shape and the number of

72 points of electrical contact they have with the board. While there exist a variety of circuit board assembly procedures all require the use of robotic machines for the positioning of the electrical components. The assembly machines, which are commonly called pick-and-place machines, vary in design and component placement technique.

However, they all have a facility for holding the circuit board in place, feeders for component supply and a tool for picking up and placing the components. This project investigates the minimisation of the time taken to assemble the printed circuit boards at

Fisher and Paykel specifically for their Panasonic MPa pick and place machines.

2 Problem Definition

Figure 2.1 shows a schematic of the MPa Pick and Place Machine. Reels of specific component types are held in the feeders which control the availability of components stored on the reel for pickup by the robotic arm. For large components the reel may actually occupy the space of two or more feeders. For example a reel of Quad Flat

Packs (QFPs) would normally occupy three feeders while a reel of 200 £2 resistors would only ever occupy one feeder. The allocation of component reels to feeder positions is an important consideration when setting up the machine and can influence the assembly times substantially. The distances from the feeders to the circuit board vary significantly. Therefore, we wish to locate components as close as possible to their corresponding placements on the board, while balancing the same goal for the other components. This problem is complicated because some component reels occupy two or three feeder positions.

Feeders"''

Printed Circuit Board

Panasert Hole - used for oricjn Panasert Hole

M 1 2 l 3 l 4 1

Head-Change Area

DODDDQDQDD

L :

ODDDDDDDDD

F e e d e rs '''

DDDDDDDDDD

----- 1----- 1----- 1----- 1----- 1----- 1----- 1------1----- 1-----

0

100 200 300 400 500 600 700 800 900 1

1000

Scale (mm)

Figure 2.1 Layout of MPa Machine

The machine has a selection of four chucks available for picking up and carrying different sized components to their placement positions, but only one chuck can be connected to the robotic arm at any one time. Whenever successive components require different chucks the robot arm has to move to the head-change area, at the side of the

machine, to swap its current chuck with the new one. In addition to the extra distance travelled by the placement head, the chuck swapping procedure takes a costly 5 seconds to complete.

The assembly process requires the robotic head to move to a feeder to collect a component and then to move to the required position on the circuit board to perform the placement of the component. The order in which it makes the placements of the components can have a major impact on assembly times. Obviously, we wish to avoid repeatedly moving from one side of the board to the other, for instance to make all placements of one particular component type. A more sensible strategy would be to place as many components as we can in the general vicinity of the current position of the robot arm until we are forced to move further across the board to place the remaining components.

Hence there are two major factors influencing the assembly time for a printed circuit board: the allocation of component reels to feeders and the sequence in which the component placements are made. These problems are coupled as we cannot decide the sequence of placements until we know the locations of the component reels, and we cannot find the best locations for these reels without some idea of the sequence of placements. We now examine these subproblems in detail.

Consider the head movements for some given component to feeder allocation.

Observe that the procedure of placing the components involves a repetitive alternating sequence of robotic head movements from feeders, where components are collected, to placement positions, where the component is off-loaded and back to the feeders for the collection of successive components and so on. Therefore, the movements of the placement head can be broken into two distinct groups: outward and return movements.

The first group correspond to the movements from feeders to placement positions, shown in Figure 2.2, and the second group corresponds to the movements from the placements of components back to the feeders, shown in Figure 2.3. Given the component type stored in a particular feeder, the placement head must move from this feeder along each and every outward arc, defined by the placement positions of that component type, at some stage of the assembly.

Printed Circuit Board

' Feeders

Figure 2.2

The Outward (Required) Arcs

Figure 2.3

The Return (Non-Required) Arcs

73

From the placement of any component, the placement head can return to any feeder along a path which shall be referred to as a return arc. This path will have to include a movement to the head-change area if a component of a different size is to be placed next. The number of return arcs going to a specific feeder must be equal to the number of outward arcs from that feeder and so only a small selection, out of the many possible return arcs, will be present in a feasible solution.

Return arcs are shown in Figure 2.4 for a particular component to feeder allocation.

Notice that there are four return arcs going to the first feeder (on the left) and two return arcs going to the third feeder, in both cases matching the number of placements to be made from each of those feeders.

74

Figure 2.4

A Possible Solution of Return Arcs

______ Key___________________

-----> Single Direction ie either an Outward or a Return Arc.

------- Both Directions ie Both an Outward and a Return Arc.

Figure 2.5

The Complete Network of Placement Head

Movements

The complete network is formed by combining the required and non-required arcs as shown in Figure 2.5. This provides the closed circuit of head placement movements required to place all of the components for a particular circuit board. The actual start and finish positions of the component placement sequence can be arbitrarily assigned by breaking any one of the return arcs in the circuit.

The robotic arm collects and places components at velocities which depend on the precision required in the placement of the component, eg Quad Flat Packs (QFPs) have up to 160 legs to be lined up with contacts on the board and so they are placed at speeds markedly slower than the speeds required for resistor placements. The machine controls the movements of the placement heads by the use of two independent stepper motors which move the head in the x and y directions shown in Figure 2.1. Therefore, the time taken for a set placement head movement can be determined by the maximum of the required movements in either the x or the y direction.

3 Model Formulation

The observation that the component placement problem consists of two subproblems defined by the two types of head placement movements has been made by many authors

[1]. While literature is available on heuristic schemes, many of which iterate between approximate solutions for each subproblem, there has been very little work on optimal component placement models. This was a major motivating factor for this project and resulted in the following zero/one linear programming formulation.

3.1 Matrix Structure

The two subproblems are essentially assignment problems, the first being the assignment of components to feeders (along with the outwards arcs that such an assignment generates), and the second being the assignment of return arcs from each placement to the set of feeders. These two subproblems are coupled by the requirement that the number of return arcs at each feeder equals the number of outward arcs at that feeder. This formulation is presented formally in the Appendix, and also in the following example (Figure 3.1). Note that the equation numbers in this figure correspond to those used in the Appendix. It should be noted that this matrix formulation, unlike the constraint set which follows, takes no account of the sizes of the components other than in the component reel to feeder allocations.

Consider a simple problem which has a machine with five feeders, FI to F5, and a circuit board requiring three component types C l, C2 and C3. For example, C l represents the 10 Q. resistors required on the board. We will assume that the reel for Cl occupies just a single feeder position, while the larger components C2 and C3 occupy 2 and 3 feeder positions respectively. We let PI, P2 and P3 refer to the placements required of component type Cl on the circuit board, e.g. PI is the placement of a 10 £2 resistor at location (100,200). We will assume P4 and P5 refer to single placements of the C2 and C3 components types respectively.

Component 1 Component 2 Component 3 Placement 1 Placement 2 Placement 3 . . .

Eq

(

2

)

Cl

C2

C3

FI F2 F3 F4 F5

1 1 1 1 1

Pi Ti H P4 P5 Pi ¥2 F3 F4 F5 FI F2 F3 F4 F5 Pi p2 p3 & P3 FI F 2 ................

1 1 1 1

1 1 1

= 1

= 1

= 1

Eq

(3)

FI

F2

F3

F4

F5

1

1

1

1

1

1

1 1

1 1

1 1

1

Eq

(4)

PI

P2

P3

1

1 1

1 1 1

1 1

1

1 1 1 1 1

1 1 1 1 1

1 1 . . .

= 1

= 1

= 1

Eq

(5)

FI

F2

F3

F4

F5

3

3

3

3

3

1

1

1

1 -1

1 -1

1 -1

1 -1

-1

Figure 3.1 Matrix Structure

-1

-1

-1

-1

-1

-1

-1

= O

= O

= 0

= 0

= 0

76

The two assignment subproblems are shown in the top left and bottom right of the matrix respectively, with the subproblem coupling being specified by the bottom left portion of the matrix. Consider the top left comer of the matrix. The allocation of C l,

C2 and C3 to the set of feeders clearly has the structure of an assignment problem with the extension that each column of the C2 and C3 assignments covers two and three feeders respectively. The second subproblem, in the bottom right of the matrix, shows the assignment of each placement to a feeder, i.e. the allocation of return arcs. These allocations are coupled by Equation (5) which requires the number of return arcs to each feeder to equal the number of outward arcs from each feeder, where the number of outwards arcs follows from the component allocated to that feeder

We now need to define costs of the columns in the matrix. The cost for each component to feeder column is given by the sum of the times associated with the outward arcs for that component when assigned to the appropriate feeder. The placement columns have costs corresponding to the time required for the head to return to a particular feeder after the completion of a given placement.

3.2 Patching Subtours

The formulation above approaches the component placement problem in a manner similar to the solution of a Travelling Salesman Problem as an assignment problem.

Consequently, subtours are possible with the demands at sub-groups of feeders for return arcs being satisfied by the very same components that were placed from those feeders. The use of subtour breaking constraints is not practical as we would need constraints for every possible combination of feeder subgroups, component types and component sizes. Detecting subtours and applying cuts to break the subtours after initially applying the above formulation would provide interesting future research, but for the purpose of this project a simple patching heuristic[2] was implemented, although it was only required for contrived problems. The patching algorithm involves swapping the endpoints of two return arcs from components belonging to separate subgroups, thus connecting the subgroups together and maintaining the rule that the number of arcs entering a node equals the number leaving that node. The choice of arcs is decided by finding the return arc swap that has the lowest time cost. The patching cost is calculated using the new return arc time costs and subtracting from these the original costs.

33

Implementation

This formulation was implemented on an Alpha workstation, using ZIP 3.0, a zero/one integer programming package developed by Professor David Ryan. Branch and bound routines had to be written to integerise the relaxed solutions produced by the primal solver of ZIP. Variable branching was used, with branches setting variables to one being favoured. By integerising the component to feeder allocation variables first, and by using a 1% tolerance on the objective value, it was found that solutions could be obtained within ten seconds after solving the relaxed problem. These solutions were often better than the tolerance value which was set at a practical limit to allow the bounding of the variable branches to be achieved in a reasonable time.

4 Results

Extensive trials were carried out on a selection of artificial and actual component placement problems. It was found that subtours only occurred with contrived problems having components of specific sizes grouped together in several partitioned areas ie areas requiring the use of different chucks. Head-change enforcing constraints (see equations (8) to (10) in the Appendix), while requiring at least a single change of the chuck sizes to be made for each different component size, did not succeed in linking all of the component size induced subtours together. Also, it was noted that subtours rarely occurred in problems which had a reasonable spatial mix of component sizes and when they did occur linking could often be made at no additional cost due to the insensitive cost metric. The Fisher and Paykel problems tended to be of this latter type of problem and none of them required the implementation of the patching algorithm.

While a limit on the problem size was not formally investigated, it was found that the largest real problem consisting of 22 component types, 427 placements and 60 feeders could be solved to within 0.2% of the relaxed non-integer LP solution in under 5 minutes on an Alpha Workstation. This problem had a linear program formulation consisting of 79546 variables and 695 constraints and required 5091 primal iterations using the ZIP package mentioned previously. The solution to a two machine split of this problem achieved a 9.5% time saving in production which was achieved despite some flaws in input information. This being the case it was anticipated that greater savings could be made using this model.

Acknowledgments

I would like to thank both Dr Andrew Mason and Dr Mikael Ronnqvist for their encouragement and support and their invaluable input into this project.

Appendix

The formulation of the zero/one integer linear program will now be presented formally.

Readers are advised to refer back to the matrix representation shown in Figure 3.1 for interpreting equations.

Terminology

C =

F =

P = nc =

Z =

S =

M =

L =

Set of all Component Types to be placed onto the circuit board.

Set of all Feeders capable of holding component reels.

Set of all Placements of components on the circuit board being optimised

Number of placements of component type c which are to be placed onto the circuit board.

Set of all component Size categories - this indicates the chuck required for pickup and placement of components. We will use z, where zeZ , to represent a particular size category.

Set of all components belonging to the small size category where, for the purpose of formulation, z = 1.

Set of all components belonging to the medium size category where, for the purpose of formulation, z = 2.

Set of all components belonging to the large size category where, for the purpose of formulation, z = 3.

77

78

1 if placement p returns to feeder/ which holds a component o f size z.

0 otherwise

1 if component type c is stored in feeder f .

0 otherwise

Constraint Set

minimise

Equation (1) : X I I K p f i X p f i + I I

p e P f e F z e Z ceC f e F subject to

Equation (2): X V - 1 V c e C f e F

Equation (3): I % + ceC

I w - i ) s 1 V f e F c e { M u L }

Equation (4): £ '5Lx pfz = 1 v P e p f e F z e Z

Equations (5): £ Ycf . n c - ceS />€/>

X pf l = 0 V f e F

Equations (6): £ % . / i c - Y j X pf 2 = 0 V f e F ceM peF

Equations (7): ^ Y c f . nc - ' £J X p f 3 = 0 V f e F ceL peP

Equations (8): X I x P /2 + I I x P/3 a 1 p e S /e F p e S /e F

Equations (9): X I XP/3 + I I *f>/3 2 1 p e S f e F p e M f e F

Equations (10): X I x P/2 + I I x P /2 * > p e S f e F p e L f e F

Equations (2) to (5) are discussed in Section 3.1. Equations (6) and (7) just extend the version of equation (5) represented in the matrix to define the size of the component in the feeder to which the return arc is being made. Equation (8) forces at least one return from a small component to a feeder containing either a medium or large component type. Equations (9) and (10) then force at least one return arc from either a medium component to a large one or a large component to a medium one depending on the result of equation (8). These equations are necessary to prevent subtours due to differing component sizes.

References

[1] M.O Ball, M.J. Magazine, Sequencing o f Insertions in Printed Circuit Board Assembly, Operations

Research, Vol.36 (1988), No. 2, pp 192-201.

[2] E.L. Lawler, J.K. Lenstra, A.H.G. Rinnooy Kan, D.B. Shmoys, The Traveling Salesman Problem

,

Wiley, Chichester, pp 195-203 , pp 361-367.

Download