Generation of planar kinematic chains

Generation of planar kinematic chains

~ Pergamon GENERATION Mech. Mach. Theory Vol. 31, No. 6, pp. 729-748, 1996 Copyright © 1996 Elsevier Science Ltd 0094-114X(95)00~3--6 Printed in Gre...

1MB Sizes 2 Downloads 74 Views

~

Pergamon GENERATION

Mech. Mach. Theory Vol. 31, No. 6, pp. 729-748, 1996 Copyright © 1996 Elsevier Science Ltd 0094-114X(95)00~3--6 Printed in Great Britain. All rights reserved 0094-114X/96 $15.00 + 0.00

OF PLANAR

KINEMATIC

CHAINS

E. R. TUTTLE Department of Engineering, University of Denver, Denver, CO 80208, U.S.A.

(Received 29 December 1994; received for publication 18 October 1995)

Abstract--This work presents a completely automated, mathematically rigorous procedure that generates all planar, non-fractionated, pin-jointed kinematic chains having 2-6 independent loops and 1, 2, or 3 degrees of freedom. It also addresses the isomorphism problem and the elimination of rigid subchains. The computer programs can be run on any personal computer (XT or higher); over 6 million kinematic chains and 100 million inversions have been generated. Copyright © 1996 Elsevier Science Ltd

INTRODUCTION The aim of number synthesis is to obtain all possible kinematic chains having a specified number of links, a specified degree of freedom, and any type, or combination of types, of joints. Classically, the investigation of this problem has concentrated on planar pin-jointed chains [1-13], although substantial amounts of work have also dealt with mechanisms containing prismatic joints and gears [14-17]. While various methods have been used [1-5, 9, 13], much recent work has relied on graph-theory, at least partially because of the convenience of representation of any kinematic chain by a graph. The method used in this work is more closely related to an older approach originally proposed by Davies and Crossley [2], which develops the kinematic chains from simpler structures, called molecules by them, and called bases in the present work. It is felt that base is a more descriptive term, as each of these simpler structures acts as a basis for several series of possible kinematic chains, all of which have the same number of independent loops, but which may have different degrees of freedom. The process by which kinematic chains are obtained from the bases has been described elsewhere [11-13] and will only be amended here. The present work describes a method for generating all possible distinct bases, and for determining those properties of each which are required in the generation of the corresponding kinematic chains. The method is complete and rigorous in the mathematical sense; it is also fully automated, so that a user can generate all kinematic chains with a reasonable number of links and degrees of freedom in a reasonable amount of time. DEFINITIONS

Partition

A set of integers specifying the numbers of non-binary links in a set of bases. For example, the partition 2 4 0 0 indicates that there are two ternary links, 4 quaternary links, and no links with five or six connections to other links. As there are four numbers in the partition, this is a partition for the series of kinematic chains having five independent loops. Bond

A connection between two non-binary links. Bonds are used to specify overall connectivity, and are not to be interpreted as binary links. Base

A set of non-binary links completely connected by bonds. The restrictions on the topology to eliminate fractionated bases have been given elsewhere [18]. A base is represented pictorially by a graph-like diagram, in which each non-binary link is represented by a vertex, and each bond is 729

730

E.R. Tuttle

represented by a line connecting two vertices. There are therefore no vertices of degree 2 in a base. The base may be represented numerically for computer use by a 2 by n array, obtained and ordered as follows: (1) Label all vertices of the base, with those of lower degree preceding those of higher degree. (2) Specify the base by listing all bonds, each bond being given by the pair of links it connects. The canonical ordering of these bonds is such that the smaller of the two numbers is always first, and the first number of bond i is always less than or equal to the first number of bond i + 1, If the first numbers are equal, then the order is determined by the second number. For example, the base depicted in Fig. 1 has the specification (12)(14)(14)(23)(23)(34) (later this specification is changed slightly to put all single bonds first, double bonds second, etc.). This yields a compact and unambiguous description of any base and is well suited to computer work; the schematic of the base can obviously be reconstructed from the numerical description. Two bases are isomorphic if, and only if, there exists a permutation of the n links that relabels the second base specification into the first. FIND A SET OF ALL POSSIBLE

BASES

The first step is to obtain a set of all possible bases. At this point we do not worry about duplication; this is dealt with later. The common factor for a set of bases is that all have the same number of independent loops; the kinematic chains generated from a set also have that number.

Find all possible partitions for the desired number of loops For the set of bases with n independent loops, the maximum degree of any link is n + 1, and the minimum degree is 3. The number of bonds in any base with N links can be shown to be N+n-1 and thus n+l

n+l

Ejnj=2(N+n-1), E nj=N j=3

j=3

It is a relatively simple procedure to determine all sets of integers {ns} which satisfy these two equations. Obviously no base obtained from one partition can be isomorphic to one from a different partition.

Generate all possible bases for each partition We first divide the possible bases into two distinct types: (1) bases in which there exists a loop that passes through all links, and (2) bases in which there is no such loop. Let us consider the first type, which we call maximum loop bases.

1

2

0 0 w

v

4

3

Fig. 1. A typical labelled base.

Generation of planar kinematic chains

a

d

b

e Fig. 2. The six non-maximum loop 5-loop bases.

731

c

f

Generation of maximum loop bases As the links must all lie on a single loop, we first find all possible distinct unlabelled ways of arranging the links on a circuit. This is done by first generating all possible distinct ways of arranging the links in a line, which is given by the multinomial coefficient n+l

N ! / ] - I nil j=3

and discarding configurations which become identical when the end of the lines are joined. As formation of the circuit of links uses N of the bonds, we now have n - 1 remaining bonds to be distributed among the links of the circuit, subject to consistency with the degrees of the links. For the worst case, the number of different sets of (n - 1) pairs which specify these bonds is (n - 3)!! This number is reduced by two factors: (1) if some of the links are of degree greater than 3, some of these sets are identical and the surplus can be discarded; (2) as these pairs are attached to a cyclic structure, any sets which can be shown to be isomorphic by application of the 2N permutations used in making the circuits distinct can also be discarded. While not all isomorphic bases have been identified and eliminated by using only these permutations, a highly significant fraction has been, and the resulting sets are small enough that they can be stored and examined further. If the number of independent loops is less that 5, then all bases are maximum loop bases and the second type need not be considered.

Other types of bases For n/> 5, there are bases in which no loop passes through all links of the base. For n = 5, there are 6 of these, as shown in Fig. 2. All of these have the general form shown in Fig. 3, where the structure denoted by the circled G is shown in Fig. 4 and is called an arm. The arms shown in Fig. 4 are all the l-loop arms; replacing any bond of a base by a l-loop arm increases the number of loops in the base by 1. Clearly there are also 2-loop, 3-loop, . . . , arms. One can generate bases with larger numbers of loops by replacing bonds by arms. For the case of 6 independent loops, one can show that one need only add the case in Fig. 3, in which two of the arms are l-loop arms and the third is a 2-loop arm, the four cases shown in Fig. 5, in which all arms are l-loop arms, and the one additional base shown in Fig. 6.

732

E . R . Tuttle

( Fig. 3. General structure of the bases of Fig. 2.

4-

Fig. 4. The set o f l-loop arms.

At the end of this process, we have generated the following numbers of bases (the actual numbers, after elimination of all isomorphic bases, are shown in parentheses): 2 3 4 5 6

loops loops loops loops loops

1 4 17 129 1476

(1) (4) (17) (118) (1197)

Clearly this algorithm does not generate a great number of isomorphic bases; this is important if the final isomorphism check is to run efficiently. Divide the bases generated into distinct non-isomorphic sets

Before finding the symmetry group of each base and performing the true test for isomorphism given in the next section, it is useful to do some preliminary work to reduce the size of the sets to be considered. All of this is needed eventually, so the only increase in time is that caused by the duplication on those bases that will be discarded. As the list above indicates, this is not a major problem, as we have not generated a large surplus in the first place; the extra time spent in reducing

v

v

b

v w

w

!

r

d Fig. 5. General structure of 6-loop bases with arms.

Generation of planar kinematicchains

733

Fig. 6~ Final non-maximumloop 6-loop base. the set size is more than compensated for later when each base is compared with all others in its set. (At this point, the largest set for 5 loops contains 35 bases; for 6 loops, 372.)

Sorting by bond multiplicity We determine, for each base, how many times each bond occurs, and then specify the base by the combination of multiplicities and distinct bonds. For example, the base of Fig. 1, whose initial specification is given above, is now specified by the multiplicities 1 1 2 2, and the distinct bonds (12)(34)(14)(23), which indicates that the first two bonds are single and the last two are double. Clearly, two bases with different sets of multiplicities are not isomorphic, so that the bases of a partition can now be sorted by multiplicities. After this sorting the maximum number of bases in a set is 1 for the 2- and 3-loop bases; 2 for the 4-loop bases; 6 for the 5-loop bases; and 58 for the 6-loop bases.

Sorting by l-step and 2-step lines Eventually, we must eliminate all chains containing rigid subchains. In the procedure used here, this requires identification of all possible ways in which rigid subchains can be created in the development of kinematic chains from bases. This procedure is given later; the important point is that, in order to perform that task, we require further information concerning the overall structure of each base. It is convenient to obtain some of that information at this point as it can also be used to refine the sorting of bases into non-isomorphic sets. We define a 1-step line as a bond between two links of a base, and a 2-step line as a set of bonds that connects two links by passing through a third link. A l-step line is thus specified by (i,j), where i is the first link and j is the second. A 2-step line is specified by (i,j, k), where i is the first link, j is the second, and k the third. For each link in each base we now find all the l-step and 2-step lines beginning with each link in turn. For the base of Fig. 1, the collection of 1-step and 2-step lines is the following: link link link link

1: 2: 3: 4:

(12)(14) (21)(23) (32)(34) (41)(43)

(123)(143) (214)(234) (321)(341) (412)(432)

No attention has been paid to multiplicities in this procedure; this was tried, but it seemed to add to both the execution time and the storage requirements. We now sort the bases within a set by 1-step and 2-step lines. It is obvious that if, for example, one base has 5 links with 4 1-step lines, and another has only 4 links with 4 1-step lines, then the two are not isomorphic, and no further comparisons need be made between them. After sorting by this criterion, one finds that all but two of the 4-loop bases are distinct; the largest set in the 5-loop bases contains only 3 members, and the largest set in the 6-loop bases contains only 11.

734

E.R. Tuttle

The problem of testing bases for isomorphism is now greatly reduced, as one need only test a given base against the other bases still in the same set, rather than against all bases for the problem at hand. It is important to remember that no bases have been discarded on the basis of these tests; a base will only be discarded if there exists a renumbering that transforms it into another base.

SYMMETRY GROUP AND ISOMORPHISM Any enumeration procedure eventually has to deal with the problem of isomorphism; not only must one obtain all possible chains, mechanisms or bases, but one must also show that they are distinct. For small sets, this can be accomplished by careful inspection [1, 2]; for larger sets, a more systematic procedure is required. Woo [13] uses Burnside's lemma to aid in the analysis of the 10-1ink, 1 degree of freedom chains; the method used by Kiper and Schian [3] in their massive analysis of the 6856 12-1ink, 1 degree of freedom chains appears to be the exhaustive permutation of labels. Many other investigators rely on one or more polynomial tests applied to matrices associated with different sets of graphs at various points in the enumeration procedure [5-9, 19-22]. The drawback to polynomial tests is that while any two graphs having different polynomials cannot be isomorphic, the reverse is not true; two graphs having the same polynomial may still be distinct, and several counterexamples are in fact known [8, 9, 23]. Attention has also been drawn to the use of optimal codes for rearranging or restructuring the adjacency matrices of graphs [15, 23-25] in ways that reduce the adjacency matrices in many cases. It has also been shown that if one can find a complete and distinct set of bases and the symmetry group of each base, then the problem of the isomorphism of the resulting chains can be dealt with efficiently and directly [10, 11]; this moves the problem to the distinctness of bases, and adds to it the problem of finding the symmetry group as well. Although the following analysis is concerned with the isomorphism of bases, it can be applied to chains as well; other investigators should keep this in mind throughout the discussion. Let us assume that we have a complete set of bases obtained by some method. We are now ready to: (1) find the symmetry group of each base; and (2) eliminate isomorphic bases, so that the final set will be not only complete but distinct. One obviously exhaustive method of accomplishing this would be the following: (1) Find all n! permutations of the n links of the base, and apply these to the array specifying the base. Any permutation which leaves the array invariant is then a member of the symmetry group, and the set of all such permutations is the symmetry group of the base. (2) To eliminate any isomorphic bases in a given set, apply each of the n! permutations to the second of the two bases that are being checked for isomorphism. If any permutation of the array specifying the second base is identical to the array specifying the first, then the two are isomorphic and the second is discarded; if not, then the two are distinct While this method will certainly work and is obviously exhaustive, it is also tedious and becomes less and less satisfactory as the number of links increases. We can reduce the work required for some sets of bases if different types of links are involved, for a ternary link can never replace a quaternary link, etc. This does not help in the "worst" cases, in which all the links are identical, e.g., the 8 ternaries which appear in some of the 5-loop chains. We therefore need a procedure in which a minimum of permutations is performed, but in which no possible permutation which leaves the base array invariant has been omitted. For the benefit of those readers not particularly comfortable with group-theoretic arguments, we present the method used first through two detailed examples, followed by the rigorous mathematical justification. This not only gives a concrete basis for following the argument, but also demonstrates the degree to which the number of permutations required to obtain the desired information is decreased. Example 1. Consider two bases belonging to the same set, whose specifications are given by the following arrays, and whose schematics are shown in Fig. 7.

(a) (12) (15) (16) (23) (25) (34) (36) (45) (46) (56); (b) (12) (15) (16) (24) (25) (34) (35) (36) (46) (56).

Generation of planar kinematic chains

]

2

2

6

3

5

735

a

$

6

4

5

b

3

4

Fig. 7. Two 6-1ink, 5-loop bases.

The collection of l-step and 2-step lines for (a) is given by the list: 1: (12)(15)(16); 2: (21)(23)(25); 3: (32) (34) (36); 4: (43) (45) (46); 5: (51)(52)(54)(56); 6: (61)(63)(64)(65);

(123)(125)(152)(154)(156)(163)(164)(165) (215)(216)(234)(236)(251)(254)(256) (321) (325) (345) (346) (361) (364) (365) (432) (436) (451) (452) (456) (461) (463) (465) (512)(516)(521)(523)(543)(546)(561)(563)(564) (612)(615)(632)(634)(643)(651)(652)(654).

Similarly, the collection of 1-step and 2-step lines for (b) is given by the list: 1: 2: 3: 4: 5: 6:

(12)(15)(16): (21)(24)(25); (34) (35) (36); (42) (43) (46); (51)(52)(53)(56); (61)(63)(64)(65);

(124)(125)(152)(153)(156)(163)(164)(165) (215)(216)(243)(246)(251)(253)(256) (342) (346) (351) (352) (356) (362) (364) (365) (421) (425) (435) (436) (461) (463) (465) (512)(516)(521)(524)(534)(536)(561)(563)(564) (612)(615)(634)(635)(642)(643)(651)(652)(653).

We now describe the procedure employed, using this example. Symmetry group Step 1. We begin by finding the exchange matrix of the base. This is a square n × n matrix whose elements a~ are zero if links i and j are not interchangeable, and 1 if they are. The criteria used to determine interchangeability are derived from the degrees of the two links and the list of 1-step and 2-step lines. Two links are not. interchangeable if any of the following criteria are met: (1) (2) (3) (4) (5)

the the the the the

two links are of different degree; numbers of 1-step lines for the two links are different; numbers of 2-step lines for the two links are different; spectra of intermediate links in 2-step lines are different; spectra of final links in 2-step lines are different.

By "spectrum" of links in (4) and (5), we mean the frequency of occurrence. For example, consider link 1 in Example 1 (a) above. In the final links of 2-step lines, one link (1) appears zero times, 2 links (2 and 6) appear once, and 3 links (3, 4, and 5) appear twice. An investigator using a different representation may wish to use a different set of structural tests. As long as these are label-independent, a modification of the algorithm used here will work satisfactorily. For Fig. 7(a), we obtain the following exchange matrix from conditions 1 and 2. 1 1 1 1 0 0

1 1 1 1 0 0

1 1 1 1 0 0

1 1 1 1 0 0

0 0 0 0 1 1

00 0 0 1 1

736

E.R. Tuttle

Condition 3 separates links 1 and 4 from links 2 and 3. Conditions 4 and 5 provide no further differentiation. Thus the final exchange matrix for this example has the form: 1 0 0 1 0 0

0

0 1 1 1 1 0 0 0 0 0 0

1 0 0 1 0 0

0 0 0 0 1 1

00 0 0 1 1

The largest number of permutations which might leave this base invariant is (2!)(2!)(2!) = 8, which is certainly a smaller number than 6! = 720 (if we ignore link types), or (2!)(4!) = 48 (if we take link types into account). In many cases, examination of the exchange matrix reduces the set of permutations to be examined to a quite manageable size. It does not always, however, sufficiently simplify the problem, so we must find further ways of reducing the number of permutations required. Step 2. Find the exchange matrix which describes the set of all permutations which leaves the first link invariant, which we shall call EMat~. In this case the only replacement allowed for link 1 is itself, and we examine only the 1-step and 2-step lines for link 1. To form EMatl, we take the original exchange matrix, and set all elements except at1 to zero in both row 1 and column 1. In addition, further elements aij of the exchange matrix are set to zero if, and only if, in the list of 1-step and 2-step lines associated with link 1: (1) the number of times i appears and the number of timesj appears are different in 1-step lines; (2) the number of times i appears as either an intermediate link or a final link and the number of times j appears as either an intermediate or final link are different in 2-step lines. In our example, the matrix EMatt has the form 1

0 0 0 0 0

0 1 0 0 0 0

0 0 1 0 0 0

0 0 0 1 0 0

0 0 0 0 1 0

00 0 0 0 1

Clearly the only permutation that leaves link 1 invariant is the identity permutation, which is always a member of the symmetry group. In general the number of permutations allowed by EMah is much smaller than the number we might otherwise consider. We now test all permutations permitted by EMah ; all those which leave the base invariant are members of the symmetry group. Step 3. As we have found all the permissible permutations that leave link 1 invariant, we must now search for those in which link 1 replaces another link. Returning to the original exchange matrix, we go across the first row until we find the next non-zero element. Let us suppose that this is element a~. We then look at the 1-step and 2-step lines associated with link j, and use this to create another matrix EMatj from the original exchange matrix. In the first row and t h e j t h column, the only non-zero element is a~j. In addition, other elements at, are set equal to zero if: (1) the frequency with which link i appears as a final link in 1-step lines of link 1 is not equal to the frequency with which k appears as a final link in 1-step lines of link j ; (2) the frequency with which link i appears as either an intermediate or a final link in 2-step lines of link 1 is not equal to the frequency with which link k appears as either an intermediate or a final link in 2-step lines of link j. In our example, the only replacement that link 1 can make is with link 4, so we need only create EMat4 We see that: link 1 appears twice as a final link in 2-step lines of link 4 and not at all as a final link in 1-step lines of link 4. The only link with the same properties in the lines of link 1 is link 4. Thus a4~ is still 1. Link 2 appears once as a final link in the 1-step lines of link 1, twice

Generation of planar kinematic chains

737

as an intermediate link and once as a final link in the 2 step lines of link 1; the only link with these properties in the link 4 lines is link 3, so that a23 is also 1. Similar analysis for the other four links yields the following form for EMat4: -0 0 0 0 0 1 1 0 0 0 0 0

0 1 0 0 0 0

1 0 0 0 0 0

0 0 0 0 0 1

0 0 0 0 1 0

Thus the only permutation possible in which link 1 replaces link 4 is that given by 123456 432165 where the second line shows the replacement to be made. These two permutations (the identity and the permutation just found) therefore form the symmetry group of the base and no further tests are needed. This procedure can be carried out very efficiently on a computer and requires no expert intervention. Clearly we have exhausted the collection of all permutations. We first found all permutations which left link 1 invariant, and then found all possible permutations in which link 1 replaced all other possible links. As we have shown in earlier work [10, 11], knowledge of the symmetry groups of all distinct bases is sufficient to eliminate all isomorphic chains which might be found from these bases quickly and efficiently. We must therefore proceed to the elimination of all isomorphic bases.

Isomorphism Clearly, two bases are isomorphic if, and only if, one of them can be relabelled to yield the other. If more than one base remains in any given set, then the possibility exists that some of the bases in the set are isomorphic to each other, and that therefore the surplus ones must be identified and discarded. Again, this appears to require the testing of n! permutations on n objects; and, again, this problem can be circumvented by using the structural information already collected. The example we have chosen to demonstrate the general method for finding the symmetry group is continued, as it is a case in which two isomorphic bases did appear, i.e., the base shown in Fig. l(b) is isomorphic to that of Fig. l(a) and must therefore be eliminated. Step 1. Form a comparison matrix. This is similar to the exchange matrix described earlier, except that we are now comparing the links of base 1 with the links of base 2, rather than with the other links of base 1. We let the rows of the matrix represent the links of base 1 and the columns represent the links of base 2. The matrix is then constructed using the same criteria as given for the exchange matrix above. For our example, the comparison matrix has the form shown below: 1 0 0 1 0 0

0 1 1 0 0 0

1 0 0 1 0 0

0 1 1 0 0 0

0 0 0 0 1 1

00 0 0 1 1

Step 2. Create a first relabelling of base 2 from the comparison matrix. This is done as follows: Go down column 1 until one encounters the first non-zero element. This is the first possible replacement for 1 in base 2. As this label has now been used up, strike out the remainder of the row and column in which this occurs. Repeat this procedure for the remaining columns. If this procedure cannot be completed, then there is no relabelling of base 2 into base 1 for this replacement and we must proceed to the next possible replacement. If it can, the result is the first

738

E.R. Tuttle

relabelling; use this to relabel base 2 and put it into canonical form. In this example the first relabelling is given by 1 2 4 3 5 6, and the canonical relabelling of base 2 is given by (12) (15) (16) (23) (25) (34) (36) (45) (46) (56). Step 3. Take all the permutations generated in the search for the symmetry group of the base and apply them to the relabelled base 2. If any of these turn base 2 into base 1, then the two are isomorphic and base 2 can be discarded. (In our example, the relabelled base 2 is identical to and therefore isomorphic to base 1.) Step 4. If base 2 has not been discarded or identified as nonisomorphic to base 1, go back to step 2, but use the second non-zero element as the first possible replacement for 1. The remainder of the procedure is unchanged. If all possible relabellings generated fail to eliminate base 2 or if no possible relabelling of base 2 can be found then it is not isomorphic to base 1 and must be kept. We use it to divide the set into two sets; and further members of the original set must then be compared with both base 1 and base 2. This completes the procedure for eliminating the isomorphic bases. It should be noted that we do not, in general, need to test all the permutations implied by the comparison matrix. It is only necessary to test the product of the number of possible replacements for link 1 times the number of permutations tested in the determination of the symmetry group. Example 2. This example considers two of the most complicated cospectral graphs that we have found in the literature. This pair, which are shown in Fig. 8, are not graphs of possible chains as they contain several rigid embedded structures; they can, however, be used to show the power and efficiency of the isomorphism detection method given here. We first reduce each to a base by removing all binary vertices. This base, which is the same for both graphs, is shown in Fig. 8(c). (It should be noted that of all sets of cospectral graphs that we have found in the literature, this is the only pair that derives from the same base.) We must

7 3

6

az~.f-~ . 8 ~ ~ 2

3b

3

C

2 w

=

/ Fig. 8. (a) and (b) Two cospectral graphs which are not isomorphic, (c) the base from which both are derived.

Generation of planar kinematic chains

739

first find the symmetry group of the base. The exchange matrix is a 9 × 9 block-diagonal consisting of a 6 x 6 with a 3 x 3. The matrix EMatl is given by 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 _0 0 and the only permutations which leave

0 0 1 0 1 0 0 1

0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 the base invariant of the 8 permutations are

123456789 and 132465987. Continuation of the procedure yields group of the base. 1 2 1 3 3 1 2 1 2 3 3 2 4 5 4 6 6 4 5 4 5 6 6 5

the following 12 permutations which form the symmetry 3 2 2 3 1 1 6 5 5 6 4 4

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

5 6 6 4 6 5 2 3 1 I 3 2

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

7 9 9 7 8 8 7 9 9 7 8 8

8 8 7 9 9 7 8 8 7 9 9 7

9 7 8 8 7 9 9 7 8 8 7 9

In Fig. 3(a), the bonds which acquired binary vertices are (17)(28)(49)(57)(68), while the bonds which acquired binary vertices in Fig. 3(b) are (19) (27) (38) (57) (68). As none of the 12 permutations in the symmetry group turns the first set into the second, the two graphs of Fig. 3(a) and 3(b) are not isomorphic. The effort involved in this proof consists of performing 48 permutations on the base to obtain the symmetry group and performing the 12 permutations of the symmetry group on the bond specifications of those bonds to which binary vertices have been added, The result is not in question; we have established that there is no possible relabelling of Fig. 3(a) into Fig. 3(b) at a cost of only 60 permutations on 9 integers. By comparison, even one that takes into account the differences in degree of the various vertices, would require the examination of 6!6!3! = 3,100,400 permutations.

Mathematical justification of the procedure Symmetry group of the base. The set of permutations on n objects forms the symmetric group Sn of order n ! and the symmetry group of the base, which has n links, must be a subgroup of this group. The set of all permutations of the n links of the base that leaves link 1 invariant is also a subgroup of Sn. The set of all permutations in which 1 replaces j is a coset (cf. the Appendix) of the latter subgroup. From EMatj, we found the 1st element of this coset; the remainder of this coset is generated by applying the permutations in the original group to this coset. The set of all cosets (including the original) then also forms a group, which is the group of all permutations of the n links which preserves the structure of the 1-step and 2-step lines, by which we mean the number and frequency of appearance of links in the 1-step and 2-step lines. Obviously, the symmetry group of the base (which also preserves the structure of the 1-step and 2-step lines) must be a subgroup of this smaller group. Thus if we examine only the permutations that preserve the structure, we indeed identify all elements of the symmetry group of the base. In fact, if we find the subgroup

740

E . R . Tuttle

of the group that preserves the structure and which also leaves link 1 invariant, this is the subgroup of the symmetry group that leaves link 1 invariant. As we generate coset j (where 1 replaces j ) , it is useful to test each element as it appears to see if it is a member of the symmetry group of the base; if it is, then we have found an element of the j t h coset of the symmetry group of the base, and the other members of the coset can be found by making the permutations of the symmetry group of the base that leave link 1 invariant. It may therefore not be necessary to test all the permutations that preserve the structure; we have assumed a worst case scenario in the examples presented above. As the formation of all cosets j includes all possible cases (all ways in which link 1 can replace a link), the set of permutations thus formed is the group that preserves the structure and no other permutations need be considered. Isomorphism of bases. Clearly two bases are isomorphic if, and only if, there exists a permutation that relabels the second into the first. We begin by attempting to find a permutation in which link 1 of base 2 replaces link j of base 1, and in which the structure of 1-step and 2-step lines is preserved, starting from j = 1. This is found from C M a h . If no possible permutation is found from j = 1, one continues on to j = 2, etc. Once some permutation has been found which preserves the structure, then one can relabel base 2 according to the inverse of this permutation to get it into the same subspace as base 1. That is, the group of permutations that preserves the structure of base 1 is now the same as that which preserves the structure of the relabelling of base 2. If any of these permutations turns relabelled base 2 into base 1 then the two are isomorphic; if none of them do, then they are not. In the worst possible case the number of permutations to be tested is n (Gnu), where Gnu is the order of the group that preserves the structure of the 1-step and 2-step lines. Ej~ciency of this part of the procedure. This depends very sensitively on the structural criteria chosen. We have used the criteria based on the spectrum and frequency of 1-step and 2-step lines for three reasons: (1) The information is easy to obtain and is needed anyway for the elimination of embedded rigid structures, as is shown in the next section; (2) It has proved to be highly discriminatory for all cases considered, including that of bases with 6 independent loops; (3) It is suited to computer implementation. As long as the criteria are label independent, the general procedure outlined above can be used, provided one makes the appropriate changes to accommodate changes in representations of the bases, chains, or mechanisms. In other words, the above procedure, appropriately modified, is a general and complete test for isomorphism. One indicator of the efficiency of the procedure is the number of permutations that must actually be performed to establish the symmetry group of all the bases in the set and to eliminate all isomorphic bases. This is to be compared with the total number of permutations in the symmetry groups of the bases in the set and the number required if the brute force approach had been used. Table 1 summarizes this information. Clearly the extra effort involved in collecting the structural information is well worth the trouble. It is also worth noting that most bases have group orders that are small (8 or less). This fact, plus the use of the method of sequential operations [10, 11] is what makes the generation of kinematic chains from these bases so computationally fast. The only base for the 2-1oop problem has a group of order 2. The 4 bases for the 3-loop problem have orders 2 (twice), 4, and 24. In the 4-loop problem, 16 bases have orders of 8 or less, and there is one each with order 12 and 72. Table 1. Ett~ciency of the present procedure for determining the symmetry group of all bases and eliminating isomorphic bases

No. of loops 2 3 4 5 6

No. of bases

No. of permutations required in procedure

No. of permutations in all symmetry groups

1 4 17 118 I197

2 36 178 1230 6955

2 32 132 426 2888

No. of permutations required by "brute force" method (approx.) 2 80 12,278 6.6 (106) 1.5 (10 l°)

Generation of planar kinematic chains

741

In the 5-loop problem, 110 have orders less than 12 (including 30 with order 1) and 8 have higher orders, the maximum being 48. Finally, of the 1197 bases in the 6-loop problem 541 have order l, 448 have order 2, l has order 3, 145 have order 4, 59 have orders between 6 and 20, 1 has order 48, 1 has order 120, and 1 has order 144. Having established a complete and distinct selection of bases, we are now ready to tackle the problem of dealing with possible embedded rigid structures. O F R I G I D S T R U C T U R E S - - B A S E ANALYSIS

ELIMINATION

The requirement that a kinematic chain has a given number of links assumes that all links have relative mobility and no subset of links forms a rigid substructure within the chain. It is therefore necessary to examine each chain generated for the presence of rigid substructures and to eliminate any chains in which these occur from the enumeration. This problem has been addressed in several papers, either as a major, or as a peripheral, objective [1, 22, 27]. As the number of independent loops L in a set of kinematic chains increases, the total number of possible loops increases approximately as O(L 2) and elimination of rigid substructures on the basis of theorems on individual loop mobilities becomes increasingly tedious. The rigid substructures themselves may also contain more loops. It is therefore useful to have a collection of global theorems that apply to the analysis of the whole kinematic chain rather than to individual loops or sets of loops. The remainder of this section is devoted to those theorems that have proven most useful in the current investigation. As terminology differs among authors describing the same phenomenon, we also provide definitions where confusion might arise.

Length of a binary subchain The length of a binary subchain is equal to the number of binary links connected end to end in the subchain. Surplus freedom of a binary subchain (n > 2) The surplus freedom of a binary subchain of length greater than 2 is defined to be n - 2, where n is the length of the binary subchain. Basic rigid chain A basic rigid chain is a chain possessing zero degrees of freedom and containing no rigid subchains. This is identical to Yan and Hwang's [27] definition, and is equivalent to the basic kinematic chain of Yang and Yao [22]. The two basic rigid chains most generally encountered, the triangle and the E-quartet, are shown in Fig. 9.

Theorem 1. The maximum length of a binary subchain of a kinematic chain with more than one independent loop and F degrees of freedom is F + 1. Consider a kinematic chain such as that shown schematically in Fig. 10, which contains a binary subchain of length n connected to the remainder of the chain A at joints a and b and further assume that this kinematic chain has N links, J joints, and F degrees of freedom. The subchain A therefore has N - n links and J - n - 1 joints (joints

)

f a

b Fig. 9. The two lowest order basic rigid chains: (a) triangle, (b) E-quartet.

Fig. 10. Generalizedschematicof a kinematicchain containing a binary subchain of n links.

742

E.R. Tuttle

a and b being part of the binary subchain). For the entire chain, N, J, and F a r e related by Griibler's equation 3(N - 1) -- 2J = F. The degree of freedom F of the subchain A can be determined similarly; 3(N-n

- 1)- 2(J-n

- 1) = F ,

or F-n+2=F'. If the subchain A is not rigid, then F ' must be greater than zero, which can be true only if the length of the binary chain, n, is less than F + 2. Thus the maximum length of a binary subchain of a chain of degree of freedom F is F + 1. Theorem 2. The sum of all the surplus freedoms of the binary subchains of a non-fractionated kinematic chain having apparent degree of freedom F (as found by Griibler's equation) is less than or equal to F - 1. Consider a kinematic chain with apparent degree of freedom F that contains several binary subchains of length greater than 2. The replacement of a binary subchain of length n (n > 2) by a binary subchain of length 2 reduces the degree of freedom of the resulting chain by n - 2. If all binary subchains of length greater than 2 are replaced by binary subchains of length 2, the degree of freedom of the original chain is reduced by the sum of all the surplus freedoms of the binary subchains, and the degree of freedom of the resulting chain is equal to F minus the sum of the surplus freedoms of all the binary subchains. If this result is less than 1, then the resulting chain must contain a rigid subchain. But all rigid subchains must contain at least one basic rigid chain, and the structure of a basic rigid chain is not affected by the binary subchain replacement described above. Thus the original kinematic chain must also contain the same basic rigid chain. These two theorems place major restrictions on the lengths and numbers of binary subchains that can appear in a kinematic chain of degree of freedom F. For example, a kinematic chain of degree of freedom 3 can contain no binary subchains of length greater than 4, by application of Theorem 1. Furthermore, by Theorem 2, it can contain no more that one binary subchain of length 4, or two of length 3, and may not contain one of length 4 and another of length 3; all other binary subchains must be of lengths 0, 1, or 2. Theorem 3. A basic rigid chain with N links can be present only in kinematic chains with at least N + 2 + F links and F degrees of freedom. This theorem, for the case of a single degree of freedom, has been given earlier by Yan and Hwang [27]. The smallest possible kinematic chain with F degrees of freedom consists of a single loop with F + 3 links. As a basic rigid chain with N links can be treated as a single link, it follows that the smallest kinematic chain with F degrees of freedom that also contains a basic rigid chain with N links must have N + 2 + F links. Corollary. A basic rigid chain with L independent loops can be present only in kinematic chains with at least L + 2 loops, provided the lengths of all binary subchains are restricted by Theorem 1 above. The smallest kinematic chain containing a rigid subchain with L loops is one that contains the rigid subchain as a single link connected to a binary subchain with F + 2 links and therefore has L + 1 loops. But this violates Theorem 1 above, so the smallest set of kinematic chains that must be examined for L-loop basic rigid chains is the set with L + 2 loops. For example, if one allows only binary subchains of the lengths allowed by Theorems 1 and 2, then the embedded triangle first appears as a basic rigid subchain to be identified and eliminated in chains with 3 independent loops; and the E-quartet, in chains with 4 independent loops. Theorem 4. A kinematic chain with N links that contains no basic rigid chains and which satisfies Griibler' s mobility equation is a true kinematic chain with N links and F degrees of freedom, provided that the proper restrictions on the lengths of binary subchains are also satisfied. The proof follows immediately as a result of the preceding theorems. The above theorems are general; we now describe how they are used in the present work. At this point we have a complete and distinct set of bases and their symmetry groups. We generate all kinematic chains by performing all possible distinct operation sets on the bonds of the base; i.e., we replace all bonds of the base by binary subchains in all possible distinct ways, the lengths of these binary subchains being restricted by the global theorems above. It is possible that some of these operation sets result in the formation of rigid subchains; any such must be eliminated from

Generation of planar kinematic chains

743

the count. We must therefore begin by finding all the basic rigid subchains that can be created within each base and store these with the rest of the base data, so that each operation set can be checked against this list and eliminated if one of these has been formed. It is useful to start from the simplest cases and work toward more complicated ones; in this way, we develop a general description for all basic rigid chains. (1) Multiple bonds. Some bases contain multiple bonds of order 2 or higher; i.e., two higher links are connected by 2 or more simple bonds. If one of these bonds is contracted and the remainder are not expanded in the process of creating kinematic chains by operating on the bonds of the base, then the result is a rigid triangular structure and must be discarded. Similarly, if there are more that two simple bonds connecting the same two links and none of these are expanded, the result contains an E-quartet and must also be discarded. As the degree of each bond has already been determined, nothing more need be saved in the basefile, and the program to create kinematic chains from the base can easily cope with these two possibilities. In all that follows, we assume that these two possibilities have already been dealt with. (2) Triangles. Except for the case described above, the only way a rigid triangle can occur is by making three contractions on a substructure such as that shown in Fig. 11. All such substructures can be easily identified by an analysis of the 1-step and 2-step lines. If a l-step line and a 2-step line connect the same two higher links, then contraction of all 3 of the connecting bonds forms a triangle. Furthermore, this is the only way in which a rigid triangle can occur. Thus if we search the collection of 1- and 2-step lines for this particular configuration, we will find all the possibilities for creating rigid triangles, i.e., we search the collection of l-step and 2-step lines for the combination (i,j) (i, a,j). If the operation set includes contraction of the three bonds represented by (i,j), (i, a), and (a,j), then the chain created contains a rigid triangle and is eliminated from the count. (3) E-quartets. If we assume that all E-quartets arising from multiple bonds have been dealt with, then there are only three possibilities for formation of E-quartets, as shown in Fig. 12. If we contract both bonds in each of the 2-step lines and expand none of the l-step lines, we create an embedded E-quartet, and the whole chain of which this structure is a subchain must be discarded. Again, it is relatively easy to identify these possibilities in any given base. We first look for any two higher links that are connected by three or more l-step or 2-step lines. If a line is a 2-step line, then both intermediate bonds must be contracted; these are called "required contractions". The l-step lines (if any) are called "remaining lines". If in the process of deriving kinematic chains from the base we find that all the required contractions have been made and none of the remaining lines has been expanded, then an E-quartet has been formed and the chain is eliminated. We should note that the elimination of triangles can be described in the same way; in that case each triangle is specified by three required contractions and no remaining lines. (4) Seven-link basic rigid chains. There are three of these as shown in Fig. 13. Let us deal with the basic rigid chain of Fig. 13(a) first. This exists if there is a substructure consisting of (a) two l-step or 2-step lines from link 1 to link 2, (b) two l-step or 2-step lines from link 1 to link 3, and (c) a 1-step line from link 2 to link 3. To form the basic rigid chain shown in Fig. 13(a), we must (a) contract all intermediate bonds in the 2-step lines, (b) contract the bond between links 2 and

Fig. 11. Base structure which can produce a rigid triangle.

744

E . R . Tuttle

a

b

Fig. 12. Subchains of a base which can lead to the formation of an E-quartet.

a

/Z b

2

3

c

Fig. 13. (a), (b), (c) The three 3-loop basic rigid chains, (d) the tetragonal structure from which (b) and (c) are derived.

Generation of planar kinematicchains

745

3 (as shown), and (c) expand none of the remaining bonds. On the other hand, if we (a) contract all intermediate bonds, (b) contract any other bond in the structure, and (c) expand none of the other bonds, we also create a rigid substructure, although not, perhaps, the one given in Fig. 13(a). However, once all contractions of intermediate bonds have been performed, contraction of any further bond other than the bond between links 2 and 3 without some corresponding expansion will give rise to one of the rigid structures already discussed; and, if the elimination procedure is one which proceeds from the least complicated to the most complicated, the only possibility left by the time one looks for this particular basic rigid chain is indeed that in which the additional contraction is that of the bond between links 2 and 3. We can therefore collect the information necessary by (1) finding all ways of creating the substructure described above; (2) specifying all required contractions (all intermediate bonds in the 2-step lines); (3) specifying all 1-step lines as remaining lines; and (4) requiring that at least one of the remaining bonds be contracted while none of the remaining lines be expanded. If we now look back at the triangle and the E-quartet, we see that this information can be cast into precisely the same form; in both cases the number of additional contractions to be made is zero. This brings us to the two basic chains of Figs 13(b) and (c). Both of these are the result of performing three specific contractions on the tetrahedral structure of Fig. 13(d). But any three contractions with no expansions cause the tetrahedron to be rigid, so the specific contractions indicated are irrelevant. We therefore need to find any tetrahedral structures formed with either l-step and 2-step lines, and use the following specification; (a) the required contractions occur on all intermediate bonds of 2-step lines; (b) all 1-step lines are remaining lines; and (c) the number of additional contractions to be made is three. A little more consideration shows that the number of additional contractions can be replaced by the excess of additional contractions over the number of 1-step lines expanded; e.g., either 3 additional contractions and no expansions, or 4 additional contractions and no more than 1 expansion. Eliminating any possible chain containing a substructure that fulfils all of the above requirements will automatically eliminate any chain which contains either of the basic rigid chains of Fig. 13(b) or 13(c), and we need not search for the two separately. (5) Higher order basic rigid chains. At this point, we should note that the basic rigid chains discussed above are the only ones which need to be considered in the generation of kinematic chains of 5 or fewer independent loops and will therefore suffice for the searches made by other investigators to date; this includes all chains with up to 12 links and 1 degree of freedom, 13 links and 2 degrees of freedom, 14 links and 3 degrees of freedom, etc., and is certainly sufficient for any reasonable application. However, a pattern is emerging in the treatment of the problem, and it is worthwhile to explore this a bit further. Also, the tour de force example which can be dealt with in the computer program for automatic generation of kinematic chains includes the 6-loop chains and this requires the elimination of the 5-loop basic rigid chains, of which there are 28 [22]. We first observe that the specification of rigid substructures to eliminate is as much a property of the bases from which the basic rigid chains derive as it is of the basic rigid chains themselves, and that the number of these bases is usually consistently smaller than the number of chains. Specifically, 2 bases contribute the 3 basic rigid chains with 7 links; 8, the 28 with 9 links; 43, the 562 with 11 links; and 405, the 20,429 with 13 links. It is much easier to search for a small number of embedded bases than to search for all the individual basic rigid chains. The general procedure for preparing to eliminate rigid structures is therefore the following: (1) In each base of N loops, find all those substructures formed from 1-step and 2-step lines which are bases contributing basic rigid chains with up to, and including, N - 2 loops. (2) For each substructure found, save all intermediate bonds of 2-step lines as required contractions, and all 1-step lines as remaining lines. (3) In addition, for each substructure, save the number of additional required contractions needed to form a basic rigid chain. Figure 14 shows, in "graphical" form, the 8 bases that contribute the 28 basic rigid chains that must be identified in solving the 6-loop problem.

746

E.R. Tuttle

v

a

v

b

v

e

w

w



c

d

g

h

,

f

Fig. 14. The 8 bases from which the 28 4-loop rigid chains are derived. This completes the program for obtaining a basefile for each distinct base. Each file thus contains the following information: (1) The base specification. (2) The symmetry group of the base. (3) A list of all possible substructures that could give rise to embedded rigid subchains, with the number of additional required contractions. ELIMINATION

OF R I G I D S U B C H A I N S

The procedure for creating kinematic chains from the information stored in the basefiles has already been described elsewhere [10, 11] and will not be repeated here, except for giving more detail on how the information concerning rigid subchains is used to eliminate possible chains. (1) Let us assume that, for any given base, we have found a possible set of contractions, and that this is distinct from all previous sets. As certain rigid substructures cannot be removed by any possible expansions (e.g., triangles or the E-quartet formed by three 2-step lines), we begin by seeing if this set of contractions is such that any of these has been formed. If so, then this set of contractions can be abandoned. (2) If the set of contractions is still allowed after (1), find a possible set of no-operations consistent with this set of restrictions, using the method of sequential reduction developed in [11]. It obviously follows that any bond that has neither been contracted nor left alone must have been expanded in some way. We first check for the rigid structures which result from operations on multiple bonds, and discard the set of operations if any are found. We then start down the list of possible substructures given in the basefile. If, for any of these, we find that all required contractions have been made and that, in addition, the number of additional contractions minus the number of expanded lines in the remaining bonds of the substructure is greater than or equal to the number of additional required contractions, then a rigid substructure has again been created and this set of operations is discarded. Only if the set of operations passes all tests may we continue. On the other hand, if it does pass all tests, then any further combination of allowed operations (all of which must be expansions of some order) is possible; no further checking for rigid substructures is required. To find all basic rigid chains with N loops, one need only run the program for kinematic chains with zero degrees of freedom. By Theorem 1, the longest binary chain allowed in this case is of length 1. As the elimination procedure works from the smallest basic rigid subchains to the largest ones, any "chain" that survives contains no smaller basic rigid chain, and is, therefore, itself a basic rigid chain. We consider the simplest substructures first, and work toward the more complicated ones if these exist for the base under consideration, so that the simplest tests are performed before the more complicated ones. (As any failure causes abandonment of the set of operations, the more complicated tests are often not performed at all.)

Generation of planar kinematic chains

747

Table 2. Kinematic chains generated as a function of the number of independent loops and degree of freedom No. of degrees of freedom

Table 3. Number of distinct inversions of the kinematic chains of Table 2 No. of degrees of freedom

No. of loops 2 3 4 5 6

No. of loops 2 3 4 5 6

1 2: 161 2301 68563

318,126

2

3 31 5: 35: 74: 753z 1962 27,496 83,547 1,432,608 4,805,382

1

2 3 5 ll 18 71 220 517 1834 7156 20,737 75,397 335,398 1,105,923 4,274,142 20,736,427 74,387,903

After completing the procedure by successive operations, we have a complete set of kinematic chains having N loops and F degrees of freedom, all of which are guaranteed to be distinct (non-isomorphic), and none of which contain any rigid subchains. R E S U L T S OF E N U M E R A T I O N In Table 2 we give the numbers of kinematic chains obtained by the procedure described above for 2-6 independent loops and l, 2, and 3 degrees of freedom. The results marked with the superscript 1 are those which have been obtained previously by other investigators [2, 3, 9, 13]. Those marked with superscript 2 are in minor disagreement, but the source of the discrepancy has been located in each case and the original investigator now agrees that the results given in the present work are correct. The result marked with the superscript 3 for 12 links and 1 degree of freedom agrees with Kiper and Schian's original result, but not with the more recent result obtained by Hwang and Hwang [28]. There is insufficient detail in this later reference to identify the difference, and the authors have not responded to a request for more detailed information. The present result (6856) agrees in detail with Kiper and Schian, and we believe it to be correct. All other results are, to the best of our knowledge, new. Table 3 presents the number of distinct inversions (frames) for each case given in Table 2 above. COMPUTER IMPLEMENTATION The procedure described above has been implemented for standard personal computers operating under MS-DOS. The programs themselves are written in standard Fortran77. The first program accepts the number of independent loops and creates and writes the basefiles for that case. The second uses these basefiles as input files and then both creates and enumerates all kinematic chains and inversions for 1, 2, or 3 degrees of freedom. There is essentially no information in the literature concerning execution times for PC-based type synthesis, but we believe that the execution times obtained here are acceptable, particularly as they are considerably lower than those we have found for main-frame calculations. Kiper and Schian's [3] enumeration of the 6856 12-1ink, 1 degree of freedom chains took approx. 3 hours of CPU time on a CYBER 76. On an old IBM XT clone, this problem took 29 minutes; on an IBM 386SX (16 MHz) machine it took 2 1/2 minutes. On a Pentium 100 with 16 Mb of EDO RAM, it takes under 3 seconds. The execution times for smaller problems on the Pentium 100 are essentially unnoticeable to the operator. The tour de force 6-loop problem takes 27 seconds to generate the bases, and 30, 120 and 283 seconds to generate the kinematic chains for 1, 2, and 3 degrees of freedom, respectively. These execution times appear to be quite reasonable. The disk space required is also moderate; the source files, .EXE files and the complete set of basefiles for all the above cases can all be stored on a 1.44 Mb floppy disk. S U M M A R Y AND C O N C L U S I O N S We have developed a program which generates and enumerates all planar, pin-jointed, non-fractionated kinematic chains with 2-6 independent loops and finds all the distinct inversions of these chains. All chains are guaranteed to be distinct as a result of careful analysis of the symmetry of the underlying base structure. As the process is exhaustive, no isomorphic chains can survive. The elimination of chains containing rigid substructures is equally rigorous. This program executes rapidly on the newest PCs, particularly for problems with less than 5 independent loops; it also occupies less than 1 Mb of disk space. As a result, it is possible to envision MMT 31/6~B

748

E . R . Tuttle

u s i n g this p r o g r a m as a n e a r l y step in a fully a u t o m a t e d m e c h a n i s m d e s i g n system. E v e n t u a l l y , o n e w o u l d h o p e to be a b l e to p r o v i d e a m e n u t h a t w o u l d e n a b l e t h e u s e r to c h o o s e a m o n g v a r i o u s t o p o l o g i c a l c o n d i t i o n s likely to fit t h e d e s i r e d a p p l i c a t i o n b e f o r e p r o c e e d i n g to the m u c h m o r e n u m e r i c a l l y t a s k i n g step o f s e l e c t i n g d i m e n s i o n s a n d p e r f o r m i n g d y n a m i c c a l c u l a t i o n s . Acknowledgements--The author would like to thank the School of Engineering, University of Exeter (U.K.) for its hospitality during a sabbatical leave during which much of this work was done. A number of discussions with S. W. Peterson of Vanderbilt University were also of great value in clarifying some of the issues involved.

REFERENCES I. F. R. E. Crossley, Dev. Theoret. Appl. Mech. 2, 467 (1965). 2. T. H. Davies and F. R. E. Crossley, J. Mech. 1, 171 (1966). 3. G. Kiper and D. Schian, Sammlung der Griiblerschen kinematischen Ketten mit his zu zw6lf Gliedern. VDI, D/isseldorf (1976). 4. N. I. Manolescu, Mech. Mach. Theory 8, 3 (1973). 5. T. S. Mruthyunjaya, Mech. Mach. Theory 19, 487 (1984). 6. T. S. Mruthyunjaya, Mech. Mach. Theory 19, 497 (1984). 7. T. S. Mruthyunjaya, Mech. Mach. Theory 19, 507 (1984). 8. T. S. Mruthyunjaya and H. R. Balasubramanian, Mech. Mach. Theory 22, 131 (1987). 9. W. J. Sohn and F. Freudenstein, A S M E J. Mechanisms Transmissions Automatn Des. 108, 392 (1986). 10. E. R. Tuttle, S. W. Peterson and J. Titus, A S M E J. Mechanisms Transmissions Automatn Des. 111, 498, (1989). 11. E. R. Tuttle, S. W. Peterson and J. Titus, A S M E J. Mechanisms Transmissions Automatn Des. 111, 494, (1989). 12. E. R. Tuttle, S. W. Peterson, Proc. o f the lOth Applied Mechanisms Conf. 2, Sec. IV-B, New Orleans, LA (1987). 13. L. S. Woo, A S M E J. Engng Ind. 89, 159 (1967). 14. F. Buchsbaum and F. Freudenstein, J. Mech. 5, 357 (1970). 15. W. E. Fang and F. Freudenstein, A S M E J. Mech. Design 112, 514 (1990). 16. D. G. Olson, A. G. Erdman and D. R. Riley, Trends and Developments in Mechanisms, Machines, and Robotics--1988, ASME Design Technology Conference, Kissimmee, FLA DE Vol. 15-1, 125 (1988). 17. L. W. Tsai and C. Lin, Trends and Developments in Mechanisms, Machines, and Robotics--1988, ASME Design Technology Conference, Kissimmee, FLA DE Vol. 15-1, 153 (1988). 18. T. H. Davies, J. Mech. 3, 87 (1968). 19. J. J. Uicker and A. Raicu, Mech. Mach. Theory 10, 375 (1975). 20. H. S. Yan and A. S. Hall, A S M E J. Mech. Des. 103, 578 (1981). 21. H. S. Yan and A. S. Hall, A S M E J . Mech. Des. 104, 11 (1982). 22. T. L. Yang and F. H. Yao, Trends and Developments in Mechanisms, Machines and Robotics--1988, ASME Design Technology Conference, Kissimmee, FLA DE Vol. 15-1, 185 (1988). 23. C. S. Tang and T. Liu, A S M E J. Mech. Des. 115, 627 (1993). 24. A. G. Ambekar and V. P. Agrawal, Mech. Mach. Theory 22, 453 (1987). 25. A. G. Ambekar and V. P. Agrawal, Mech. Mach. Theory 22, 463 (1987). 26. F. Freudenstein, J. Mech. 3, 275 (1967). 27. H. S. Yan and W. E. Hwan, Proc. of the 9th Applied Mechanisms Conf., Vol. 1, I. 1 (1985). 28. W. M. Hwang and Y. W. Hwang, Mech. Mach. Theory 27, 189 (1992). APPENDIX Consider a group F of order G possessing a subgroup 3' of order g. Now take an element of F not in ~, and multiply it on the left by each element of 7; the resulting set, which consists of g distinct elements, none of which is an element of ~, is called a left coset of ~. (Multiplication on the right yields a right eoset of y.) If we now choose a second element of F which is neither in ~, nor in the first coset of ~, and multiply it on the left by each element of y, then we contain a second left coset of ~,. We can continue this process until we have completely exhausted the original group. The importance here is that all left (or right) cosets are distinct, and that each contains g distinct elements. G]~N]~RATION DE CHAINES CIN]~MATIQUES PLANES Resum&--On pr6sente i~i une proc6dure qui est compl6tement automatique et math6matiquement rigoureuse pour la g6n6ration de toutes les cha~nes cin6matiques planes non-fractionion6es avec 2 ~ 6 boucles ind6pendentes et 1, 2, ou 3 degrees de libert6. On s'addresse aussi ~ (1) la probl~me d'isomorphisme et (2) l'~limination des souchaines rigides. N'importe quel PC (XT ou mieux) peut faire marcher ces programmes; employant celles-ci on peut crier plus de 6 million de cha~nes cin6matiques et 100 million d'inversions cin6matiques.