Identification of kinematic chains, mechanisms, path generators and function generators using min codes

Identification of kinematic chains, mechanisms, path generators and function generators using min codes

Mech. Mach. Theory Vol. 22, No. 5, pp. 463-471, 1987 Printed in Great Britain. All rights reserved 0094-114X/87 $3.00+0.00 Copyright © 1987 PergamonJ...

631KB Sizes 0 Downloads 51 Views

Mech. Mach. Theory Vol. 22, No. 5, pp. 463-471, 1987 Printed in Great Britain. All rights reserved

0094-114X/87 $3.00+0.00 Copyright © 1987 PergamonJournals Ltd

IDENTIFICATION OF KINEMATIC CHAINS, MECHANISMS, PATH GENERATORS AND FUNCTION GENERATORS USING min CODES A. G . A M B E K A R I " a n d V. P. A G R A W A L Mechanical Engineering Department, Indian Institute of Technology, Delhi, New Delhi 1l0 016, India (Received in revised form 15 July 1986)

Abstract--rain Code, as canonical number, was shown to give a unique number for kinematic chains with simple joints. This paper suggests a method to identify mechanisms, path generators and function generators through a set of identification numbers. The concept of rain code is also shown to be effective in revealing the topology of kinematic chains and mechanisms consisting of: (a) different types of lower pairs, and/or (b) simple and multiple joints.

INTRODUCTION The structure of a system is basic to an understanding of its function. It was berieved[l-3] that, for closed kinematic chain (without any singular link) having no overconstrained subehain, the characteristic polynomial could describe the structure of the chain uniquely. Through the examples of kinematic chains (being abbreviated as K-chains) with co-spectral graphs[4, 5] we now know that characteristic polynomial, at best, constitutes only a necessary condition of isomorphism. The advent of robotics and manipulators has added a new dimension to the scope of K-chains. With singular links constituting a part of a mechanism, a kinematician has also to deal with tree graphs. Literature in graph theory[6] shows that almost all tree graphs are co-spectral. Even the identification codes for K-chains, mechanisms, path generators and function generators, evolved on the basis of existing methods[7, 8] are not decodable. All these considerations led to the introduction of rain code, as canonical number, for identifying K-chains. Again, although graph theorists[9] consider only the max code to be unique, for K-chains in particular, the rain code[10] is also shown to be unique. In this paper authors prefer rain code to max code mainly because of its relative compactness. In the present study, which is aimed at highlighting the flexibility and utility of canonical numbers in the structural analysis and synthesis of K-chains, the authors make following contributions: (i) Identification of mechanisms, path generators and function generators with simple pin joints; (ii) Identification of K-chains, and mechanisms thereof, having joints of revolute and non-revolute type; and t Reader in the Mechanical Engineering Department, Shri G. S. Institute of Technology and Science, Indore 452 003, India (currently on deputation to liT, New Delhi). 463

(iii) Identification of multiple-jointed K-chains and mechanisms thereof.

PRELIMINARIES Acording to the literature of graph theory, several matrices can be associated with a labelled graph. Of all the matrix representations of K-chains, the rink-rink form of incidence (adjacency) matrix is reported[l] to have a distinct advantage over the rink-joint form of incidence matrix. In order to avoid possible confusion from a rather liberal use of the term "incidence matrix", we propose to use the term adjacency matrix to describe a rink-link form of incidence matrix. This leaves the term incidence matrix to describe the rink-joint form alone. It is common to represent a labelled n-link K-chain through an n th order symmetric zero-one adjacency matrix, all of whose diagonal elements are equal to zero. Any off-diagonal element a o of this matrix is equal to one only if a kinematic pair exists between links i and j and zero otherwise. Since the form of adjacency matrix is not independent of the labelling scheme, one of the most common approaches is to compute a function (invariant) of graphs which succeed in distinguishing two non-isomorphic graphs. The set of characteristic coefficients, derived from a characteristic polynomial, has been used in the past [1], as one such invariant. The isomorphism problem of K-chains is related to the question of ordering K-chains. When looked from this angle, a complete order relation on Kchains establishes which one of two K-chains precedes another. This shows that the criteria for ordering of K-chains is fundamentally the same problem as the search for isomorphism. With different schemes of labelling the links, in general, a K-chain on n-links can have (n!) number of adjacency matrices. A binary code, representing a particular scheme, is obtained by converting a two-dimensional array of the adjacency

464

A.G. AMBEKARand V. P. AGRAWAL

matrix into a one-dimensional array. Since the adjacency matrix is a zero-one symmetric matrix with all diagonal elements as "zeros", the upper triangular portion of adjacency matrix represents all the structural details of the K-chain. For brevity, therefore, only the upper triangular adjacency matrix (abbreviated as UTAM) is considered and represented in a single line of digits by sequencing its rows. To accomplish this, one arranges the strings of "zeros" and "ones" in the rows of U T A M (taken in order from top to bottom and left to right) into a single string. One thus arrives at a line expression for any kinematic structure (for a given scheme of labelling), even if the associated graph G is non-planar. Of the (n !) different binary codes, possible for a K-chain with n links, only two have a special significance. The smallest binary code is called the rain code re(G), while, the largest binary code is called the max code M(G). Each of these codes correspond to a standard numbering of links, which yields a canonical form of matrix. To every binary code, there corresponds only one decimal code. The converse of this is also true because, only one combination (in the form of summation) of powers of "twos" can lead to a particular decimal code. Graph theorists do not consider min code to be unique because, by the addition of more "zeros" in front of the binary number additional vertices (of zero degree) can be taken. In K-chains, however, a link of zero degree is something difficult to conceive. Thus, invariably, in the first row of UTAM we can anticipate at least a single "one". This particular feature of Kchains, therefore, makes it possible to consider min code also as unique for K-chains and mechanisms. Each of the two canonical codes, thus, speaks for itself the number of rows and the number of digits in the UTAM. The following example will illustrate the decodability of min code.

Example Suppose a K-chain has a min code of 3612. Then as,

2" < 3612 < 212; the first "one" in the binary code, counted from the left, has eleven digits on the right-hand side of it. Also because, 3612 = 2 II + 21° + 29 + 24 + 23 + 22; the first "one" and the subsequent digits are as under: 111000011100.

Again, the total number of digits p in the binary code of a K-chain on n links is given by n (n - 1)/2. Thus, forn=5, p=10; forn=6, p=15and, forn=7, p -- 21. Since twelve digits are already allotted in the binary code, p = 15 becomes an obvious choice. The smallest number of links, permitting this, is n = 6. This requires three more "zeros" in front of first

"one". This dictates the required binary code to be m (G) = 000111000011100, giving a UTAM as,

UTAM =

0 0 0 1 1 l O 0 0 011 10 0

The adjacency matrix can be derived from this U T A M by using the property of symmetry. IDENTIFICATION

C O D E S FOR M E C H A N I S M S ,

PATH GENERATORS AND FUNCTION GENERATORS

Mechanisms Identification of mechanisms is closely related to the identification of K-chains. A canonical number procedure[10] permits one to assign rain code mK (G) to a K-chain. A min code gives a unique description of the topology of the K-chain in a compact form. A mechanism differs from the corresponding (parent) K-chain in that one of the links in it is identified as a frame member. Again, every link in a particular K-chain has a characteristic place in the min code just as it occupies a characteristic place in the K-chain. An identification scheme for mechanisms, therefore, calls for the identification of parent K-chain as well as the identification of the particular link constituting the frame link. Thus, a set consisting of the identification code for the K-chain and the identification code for the frame member should identify the mechanism completely. While identifying a link in a K-chain, reference to a theorem in graph theory[l l] will be quite useful. The theorem states that for a connected block graph G, in which u is not a cut-vertex, if the point-deleted subgraph G-u is isomorphic to the point-deleted subgraph G-v, then u and v are similar points. Clearly, when u~are not separation links (cut vertices) the min code of point-deleted subgraphs G-ut will be identical only when these links ui are structurally equivalent. Thus, the min code of a link (say, the frame) deleted substructure, identifies that link. Analytically, deletion of a vertex (say, corresponding to a frame link) from a graph is equivalent to a deletion of corresponding row and column from the adjacency matrix. The remaining (n - 1) x (n - 1), zero-one, symmetric matrix representing the pointdeleted subgraph, however, may not be in a canonical form, even if the original adjacency matrix was in the canonical form. A few additional permutations of rows and columns[10] can bring such a matrix to the canonical form, yielding the rain code mF(G). The rain code mF(G) along with InK(G), then, identifies the frame link. A set consisting of the rain code

465

min Code identification

InK(G) of the parent K-chain and the min code mF(G) of the frame link in it, then, identifies the mechanism completely. Thus, the identification code of mechanisms is given by

£thme lifik simultaneously, from the graph G, mFIO(G). The complete identification of the function generator is then given by

IM = [mF(G)]. [mK (G)].

IFG = [mFlO (G)]'[mlO (G)].[mI (G)].[mK (G)]. (3)

(1)

Path generators Identification of a path generator differs from that of a mechanism in that, in addition to the frame-link, an another link called coupler is also to be identified. In complete identification of path generator, this can be achieved by identifying the parent K-chain, the frame-link and the disposition of coupler link in respect of frame link. For identifying the frame-link one considers the frame link deleted substructure and establishes mF(G). For identifying the disposition of coupler link with respect to frame link, one considers the subgraph obtained by deleting the two vertices (one corresponding to frame and the other corresponding to the coupler) simultaneously from the graph G. Analytically, this requires us to consider the adjacency matrix left after deleting two rows and columns (corresponding to frame link and coupler) from the original adjacency matrix. The resulting (n - 2) x (n - 2) matrix is still a zero-one, symmetric matrix but, it need not be in canonical form. A few additional permutations of rows and columns, will bring the resulting matrix in the canonical form yielding the min code mFC(G). The complete identification of path generator is then given by

IPG = [(mFC (G)]- [mF (G)]" [mK (G)].

(2)

Function generators Practically useful function generators are obtained when input and output links are connected with the fixed link. In path function generators, however, input links are connected with the fixed link while coupler is a floating link. Any method of identification, therefore, must be quite general and should be applicable to all types of function generators. In angular function generators the choice of input and output links, which are kinematically paired with the fixed link, remains purely arbitrary in nature. The input and output links are, in general, not symmetrically placed in the K-chain and, therefore, structurally distinct function generators may be obtained by different choices of input and output links. A function generator can be identified through a set consisting of (a) min code of parent K-chain, InK(G); (b) min code(s) of the subgraph(s) obtained by deleting vertex/vertices corresponding to input link(s), ml (G); (c) rain code of the subgraph obtained by deleting vertices corresponding to input and output links simultaneously, mlO (G); (d) min code of the subgraph obtained by deleting vertices corresponding to input links, output link and M.M.T. 2 2 / ~ E

K-CHAINS WITH DIFFERENT TYPES OF SIMPLE JOINTS (LOWER PAIRS)

Kinematic chains It is easy to infer that the canonical code is as good as specifying the K-chain itself, and that the binary number is just the adjacency matrix written in a convenient form. This feature of the canonical code proves to be a great asset in identifying a kinematic chain with revolute or non-revolute type of joints. By representing a revolute joint by R; a spherical (globular) joint by G; a cylindrical joint by C; a prismatic joint by P; a screw joint by S and a planar joint by F, the "ones" in the adjacency matrix of a K-chain can be replaced by the corresponding symbols. Any non-existent joint, as usual, is represented by a "zero". This method of representation, as will be seen later, enables one to retain the exact topology, as also the nature of joint, in a K-chain. A general representation, giving identification code (i.e. min code in decimal form) of a K-chain, can be as under: mK(H) = (ml)'R + (m2).G + (m3)-C +(m4)'P + ( m s ) ' S +(m6)'F

(4)

where, mK (H) is the min code of the K-chain having H as its associated graph; m~, ms, m 3 , . . . , etc. are the decimal numbers identifying the topological locations of the corresponding joints in the canonical form of adjacency matrix of the K-chain. It may be noted that each of these mjs (i = l, 2, 3 . . . . . 6) can be generated by only a specific combination of powers of "twos" and, secondly, these powers of "twos" will not recur in any of the remaining mis. This is evident from the process of converting a two-dimensional array of UTAM into one-dimensional one.

Methodology for the canonical code The discussion above naturally brings forth the question of min code "methodology" for K-chains having different types of single joints. Taking a more generalized view, since our aim is to establish rain (or max) code, we must establish a basis for obtaining a scheme of labelling corresponding to canonical number. A close look at the expression (4) shows that the terms R, G, C, P, S and F are qualitative (of the joint) in nature and are, in no way, connected with weight factors. These symbols merely serve the purpose of storing information regarding type of joint and its topology in the K-chain. Also, a close examination of the UTAM of an all revolute K-chain and, the mechanism of extracting a decimal min code from it, reveals that the decimal contribution of each joint (by

466

A.G. AM~KARand V. P. AGRAWAL

virtue of its position in UTAM) is added up and, the canonical form of adjacency matrix is one for which these individual decimal contributions sum up to a least possible value. This leads us to define an equivalent rain code reEK(H) for K-chains, involving non-revolute type of joints also, as reEK(H) = ml + m2 + m3 +" • "+ mn.

(5)

Clearly, the equivalent min code is the rain code of the K-chain having revohite and non-revolute type of simple joints that is obtained after neglecting the symbols (or rather, by assigning a unity value to each symbol) in its quantitative evaluation. A search for equivalent rain code, thus, requires a labelling scheme for links which ensures a least possible value for

earlier section, results in a most generalized method of matrix representation which retains the property of decodability. Clearly, the use of numbers 2,3,4 . . . . . k as coefficients of R in the matrix representation of a p-tuple joint (p = 2, 3, 4 . . . . . k) is not permissible because they readily mix with the "twos" and result into a change of bits while obtaining decimal code from the corresponding binary code. This invariably distorts the decoding of rain code. We therefore propose to represent a p-tuple multiple joint (of revolute type) by R p. A generalized expression of min code for a K-chain with simple (p = 1) as well as multiple joints is, then, given by m (H) --- (m,). R + (m2)-R 2

~/lr/i.

+(m3)'R3 + " ' + ( m p ) ' R p (7)

i=t

Having defined the equivalent min code, as above, the algorithm described in Ref. [10] can be conveniently used to obtain the canonical form of adjacency matrix. This is explained later through an example problem. It must be remarked, however, that once a canonical form of adjacency matrix is established, the final rain code mK (H) must invariably be expressed in terms of the symbols R, G, C, P, S and F. Mechanisms

Once a scheme of representation for K-chain, with revolute and non-revolute type of joints, is established the identification of mechanisms (derived from such chains) become an obvious corollary. One considers the subgraph obtained by deleting the vertex that corresponds to the frame link from the canonically labelled graph of parent K-chain, and obtains the adjacency matrix in terms of the symbols R, G, C, P, S. Then, using the methodology proposed previously, the adjacency matrix is obtained in canonical form. This enables him to express the rain code m F ( H ) of the vertex deleted subgraph in terms of these symbols. A set consisting of the rain code of K-chain and that of the frame link, then identifies such mechanism completely. I M = [mF (n)]. [mK (H)].

(6)

K-CHAINS WITH SIMPLE AND MULTIPLE JOINTS K-chains

where, mt(i = 1, 2, 3 . . . . . p) is a part of the binary (decimal) rain code whose magnitude depends on the topological position of the i-tuple joint in the Kchain. In decoding, the number of m~ enables one to locate i-tuple joints in the canonical form of adjacency matrix. The discussions under the methodology of the canonical code, also apply to K-chains with multiple joints. The number and type of links can be determined from such a matrix representation by following a procedure* similar to one suggested in Ref. [2]. Thus, let number of Rs in the kth row,

n~= number of R2s in the kth row, n~= number of R 3s in the k th row, and so on. Then + ~(n3) + ½(n~) + . . . .

(8)

The link represented by kth row will be binary if n k -- 2, ternary if nk = 3 and quaternary, if nk = 4, etc. Again ifj is the total number of joints in the chain of whichA are the simple joints (connecting only one link to a given link), J2 are the double joints (connecting two links to a given link) and so on, then Jl -- ½(number of Rs in the matrix); J2 = ~(number of R2s in the matrix); A = ~(number of R3s in the matrix); and so, in general,

1

A graph representation of maximum utility for mechanisms with multiple joints had eluded the kinematicians so far. Remembering that a binary number is just the adjacency matrix written in a convenient form, we now propose a more meaningful scheme of matrix representation of such K-chains. The scheme, when used in conjunction with the ones presented in

Mechanisms

* Alternatively, a procedure similar to the one described in the second section can also be used.

With the scheme of representation for K-chains with simple and multiple joints so established, the identification of mechanisms can be done on lines

A = --[number K ( K + 1)

of Rks in the matrix].

Thus, the total number of joints is then given by j =j, + 2j: + 3js + " " + k "A.

(9)

467

min Code identification 5

5

.3 6 (a)

(b)

Fig. 1. Stephenson's chain. (a) Schematic representation. (b) Graph representation with min code labelling.

similar to the ones used previously. Thus considering a vertex (corresponding to the frame link) deleted subgraph, let the min code of canonically labelled subgraph, in terms of i-tuple joints, be mF(H). Then, if the min code of the parent K-chain is InK(H), the identification code of the mechanism is given by a set consisting of the two min codes. Thus, I M = [mF (n)]. [inK(n)].

(10)

APPLICATION

Binary min code: 0001001101 Decimal rain code, mF(G) = 77 Hence, IM = [77]-[3308]. For the path generator obtained by taking link 6 of Fig. l(a) as frame and link 5 as coupler, the rain codes mK(G) and mF(G) are as above. The rain code mFC(G) is obtained by considering the subgraph obtained by deleting vertices 6 and 5 from the graph at Fig. l(b). This subgraph, with rain code labelling, is shown at Fig. 2(c). The UTAM, binary code and decimal min code are as under:

Example 1 To illustrate the method of identification of mechanisms, path generators and function generators, we consider the Stephenson's chain, shown schematically in Fig. l(a). The method of obtaining a canonical form of the adjacency matrix, is the one proposed in Ref. [10], but only the results are quoted here for want of space. The relabelled graph for min code is as shown in Fig. l(b). The UTAM, binary and decimal rain code are as under:

[000 0

0 1 1 0

UTAM =

1 1

1

Binary rain code: 000110011101100 The decimal rain code of the K-chain is then given as:

mK(G) = 3308. For the mechanism, obtained by fixing link 6 of Fig. 1(a), the vertex-deleted subgraph is as shown in Fig. 2(a). The labelling in the subgraph corresponds to the one obtained for min code. The UTAM, binary and decimal min codes are as under:

UTAM =

[000] 0

l/TAM =

[00] 0

Binary rain code: 001~1 Decimal rain code: 2° -- 1 Hence, mFC(G)= 1 Thus from equation (2),

IPG = [l]. [77]-[3308]. For the function generator with link 6, of Fig. 1(a), as frame, link l as input and link 2 as output links, the rain code mK(G) is as indicated earlier. The link 1 deleted subgraph, with rain code labelling, is as shown in Fig. 2(d). The UTAM and mI(G) value is as under:

UTAM =

I

l

0 l

11

1 0

0

Binary min code: 0011101100 D ~ m a l min code, ml(G)= 236. The subgraph obtained by deleting vertices 1 and 2 of Fig. l(a) simultaneously, is shown with min code labelling in Fig. 2(h). The UTAM and decimal rain code for this subgraph is

0

1

O 01

UTAM --

E00] 1

468

A.G. AMSEr~R and V. P. AGRAWAL 5-

./,

Ii

3

2 3 1o1

l, (b)

2

(c)

3

(d)

(g)

z

3

3

(el

If}

(h)

(i)

Fig. 2. Subgraphs of Stephenson's chain with rain code labelling. (a) Vertex of frame-link deleted. (b) Vertex of coupler-link deleted. (c) Vertices of"frame and coupler" deleted. (d) Vertex of input-link deleted. (e) Vertex of output-link deleted. (f) Vertices of "frame and input link" deleted. (g) Vertices of "frame and output link" deleted. (h) Vertices of "input output link" deleted. (i) Vertices of "frame, input and output links" deleted.

Binary min code: 001101 Decimal min code, mlO ( G ) = 13. The subgraph obtained by deleting vertices 6, 1 and 2 of Fig. l(a) simultaneously, is shown in Fig. 2(i) with min code labelling. The UTAM and decimal min code are

Binary rain code: 0 0 R R G O P P 0 0 The decimal rain code is: m (H) = 0.(29) + 0.(2s) + R .(27)+ R .(26) + G .(25)+ 0.(24) + P .(23) + P.(22) + 0.(21) + 0.(2°). Hence,

Binary min code: 011 Decimal rain code, mFIO (G)= 3. Thus using equation (3), the identification code for the function generator is given by:

IFG = [31"[131"[2361-[331)81. Example 2 The Altmann coupling shown in Fig. 3(a) can be used conveniently to highlight the previous discussions. The graph of the K-chain, corresponding to the coupling, is shown in Fig. 3(b) with types of pairs marked on the corresponding edges. The same graph with min code labelling is shown at Fig. 3(c). The UTAM in terms of the symbols for the type of joint

UTAM =

E0!lo 0 RP0

m (H) = (27 + 26)" R + (25)' G + (2~ + 22)" P =(192).R + (32).G + (12).P.

Note: It must be remarked that by assigning label 1 to any other vertex in graph at Fig. 3(b), another combination of (miR + m2G + m3P) can be generated for min codes. In all such cases a common feature is that (m~ + m2 + m3 ffi 236). Each such solution preserves the topological features and type of each joint in the chain. Any such solution for rain code, when decoded, is capable o£ generating the same K-chain.

Example 3 The multiple-jointed K-chain shown in Fig. 4(a) can be used to illustrate the scheme of matrix representation. In terms of the symbol R p for a p°tuple joint, the adjacency matrix for the labellings, as at Fig. 4(a), can be shown to be

469

rain Code identification

G

t,

P

P

R

R (a)

3 t,

v

v

v

(b)

{c}

Fig. 3. (a) RPGRP Altman coupling. Co) Graph representation of Altman coupling (initial labelling). (c) Graph representation of AIUnan coupling (win code labelling).

[A] =

0 R3 R3 R3 0 0

R3 0 R3 R3 0 0

R3 R3 0 R3 0 R

R3 R3 R3 0 R 0

0 0 0 R 0 R

R

0

0

0

0

0

R

0

0

0

0 0 R 0 R 0

R 0 0 0 0 R2

0 R 0 0 0 R2 R2 0 R2 R2 R2 0

It can be verified that a series of permutations of rows and corresponding columns[10], carried out in the order (1 *--, 5), (4 *-* 8), (6 *--, 7), (2 ,--, 4), (4 ~ 5), (5 ~ 6) and (7,--, 8) reduces the above adjacency matrix to the canonical form, giving U T A M as under. The corresponding labelling of links for rain code is as shown in Fig. 4(b).

0

UTAM =

0

0

0

0 R2 R 0 R2 R3 0 R3 R3 R R R3 R3 0

0

0

0

R

R

0 R2 R3 0 0

The decimal min code for this U T A M will be

m(H) =

(2" + 221 + 2 l~ + 2 .0 + 29) • R + (218 + 215 + 23).R 2 + (2 '4 + 2 n + 2" + 2 s + 27 + 22) . R 3

= (6,424,064).R + (294,920).R 2+ (22,916).R 3.

(

I

3

2 8

7

8

to)

{b)

Fig. 4. Schematic representation of multiple joined K-chain. (a) K-chain with initial labelling. (b) K-chain with rain code labelling.

470

A. G. AMmSKARand V. P. AGRAWAL Table i. Upper and lower bound values of rain code for n ~<6 Upper bound on m (G) values =2~- 1 3 4 5 6

7 63 1023 32,767

Lower bound on m(G) values, m(G)=2L; L =n(n - 3 ) / 2 + d d=l

d=2

d=3

d=4

d=5

2 8 64 1024

4 16 128 2048

-32 256 4096

--512 8192

---16,384

STRUCTURE OF DESCRIPTORS It is shown[10] that min code values for K-chains with different number of links have different nonoverlapping ranges. Again, these min code values are strongly governed by the degree "d" of the link of smallest degree in the chain. For instance, these values for different combinations of number " n " of links and degree d, for n ~<6, are shown in Table I. It is also shown that a more precise upper bound values on m (G) are given by m (G) < 2v where

are decodable. Thus, an exact topological description of links and joints in K-chains and mechanisms is rendered possible through a number/expression. It is hoped that the paper contributes significantly towards automated recognition and cataloguing of K-chains and mechanisms. The authors do not claim to have presented an exhaustive study of this new approach of identification of all types of K-chains and mechanisms. In particular, a unique description of Kchains with different types of lower pairs require further investigations. Such an identification should, desirably, also take into account the relative orientations of the axes of pairs involved.

L ' = (n - 2)(n - 1)/2 + d.

It is thus seen that the upper bound as well as the lower bound values on m (G) are strongly governed by the number of links and the degree of the link with the smallest degree in the chain. The influence of number of joints on min code in unpredictable. Thus, a larger number of joints, for a given value of n and d, does not necessarily result in larger/smaller values of rain code in all the cases. However, the number of joints in a K-chain are denoted by the number of "ones" in the binary rain code. It is apparent, therefore, that a practically useful classification can be obtained if K-chains of a given family (say, K-chains consisting of same number of links and same number of joints) are subclassified according to their m (G) values. Since the decimal integer numbers m~ ( i - 1, 2, 3. . . . ) in expression (4) can be obtained only through a specific combination of powers of "twos" (in summation form), they automatically decide the number of joints of given type in the chain. Needless to say that such a classification scheme, when developed, will also have a beating on the number of degrees of freedom of a chain. CONCLUSIONS This paper demonstrates the power and potential of rain code, as a canonical number, in identifying kinematic chains, mechanisms, path generators and function generators. The scheme of number representation gives unique identification codes for all chains and mechanisms except, perhaps, for kinematic chains, with revolute and non-revolute type of joints. But even in such isolated cases, the numbers/expressions represent the least values and,

REFERENCES I . J . J . Uicker and A. Raicu, A method for the identification and recognition of equivalence of kinematic chains. Mech. Mach. Theory I0, 375-383 (1975). 2. T. S. Mruthyunjaya and M. R. Raghavan, Structural analysis of kinematic chains and mechanisms based on matrix representation. Trans. A S M E J. Mech. Design 101, 488-494 (1979). 3. H. S. Yan and A. S. Hail Linkage characteristic polynomials: assembly theorems, uniqueness. Trans. A S M E J. Mech. Design 104, 11-20 (1982). 4. V. P. Agrawal Identification, classification and isomorphism of kinematic chains and mechanisms. Ph.D. dissertation, Mechanical Engineering Department IIT, New Delhi, India (1982). 5. T. S. Mruthyunjaya and H. R. Balasubramanian, In quest of a reliable and efficient computational test for detection of isomorphism in kinematic chains. Proc. National Conf. on Machines and Mechanisms, I.I.Sc. Bangalore, India, pp. 53-60 0985). 6. A. J. Schwenk, Almost all trees are cospectral. In New Directions in the Theory of Graphs (Edited by F. Harary). Academic Press, New York (1973). 7. A. G. Ambekar and V. P. Agrawal, Identification and classificationof kinematic chains and mechanisms using identification codes. Proc. Fourth IFToMM International Symposium on Linkages and Computer Aided Design Methods (Theory and Practice of Mechanisms), SYROM 85, Bucharest, Romania 0985). 8. A. G. Ambekar and V. P. Agrawal, Identification of mechanisms, path generators and function generators-a rooted graph approach. Proc. Fourth IFToMM International Symposium on Linkages and Computer Aided Design Methods (Theory and Practice of Mechanisms), SYROM 85, Bucharest, Romania (1985). 9. F. Harary, Private communication. 10. A. G. Ambekar and V. P. Agrawal, Canonical numbering of kinematic chains and isomorphism problem: rain code. Mech. Mach. Theory. 22, 453-461 (1987). 11. F. Harary and E. D. Palmer, On similar points of a graph. J. Math. Mech. 15, 623-630 (1966).

rain Code identification

IDENTIFICATION DES CHAiNES CINI~MATIQUES, DES MECANISMES, DES GENERATEURS DE TRAJECTOIRES ET DE FONCTIONS EN UTILISANT DES CODES MINIMUMS R ~ t - - - L e code minimum, comme nombre canonique, donne un numbre unique pour identifier les chaines cin~rtatiques avec des articulations simples. Ce travail sugg~re une m~thode d'identiflcation des mb:anismes, g~n~rateurs de trajectoires ou de fonctions par rintermb:liaire d'une s~rie de hombres d'identification. Le concept du code minimum est efficace parce qu'il r~v~le la topologie des chaines cin~'matiques et m6~anismes comportant diff6rents types de paires inf~rieures et]ou des articulations simples ou multiples. La possibilit(~ de d~chiffrage de tels codes d'identification les rend tr~s utiles pour la creation de catalogues informatis~s.

471