Mechanism and Machine Theory 41 (2006) 1443–1466
Mechanism and Machine Theory www.elsevier.com/locate/mechmt
A method for the identification of the connectivity in multi-loop kinematic chains: Analysis of chains with total and partial mobility A. Liberati, N.P. Belfiore
*
Department of Mechanics and Aeronautics, University of Rome La Sapienza, Via Eudossiana 18, Roma 00184, Italy Received 15 April 2005; received in revised form 11 January 2006; accepted 18 January 2006 Available online 18 April 2006
Abstract In this paper, a new algorithm for the computation of the connectivity in kinematic chains having total and partial mobility is presented. The adopted algorithm, based on graph theory, is able, firstly, to recognize when a kinematic chain has partial mobility and, then, to find the corresponding connectivity matrix. The new strategy consists in a recursive procedure, called ‘‘circuits gradual freezing’’, which detects the sets of independent loops for each grade of recursion, and assigns to each pair of vertices the weighted distance. Results have shown the feasibility of the new approach and its better performance in some difficult cases. 2006 Elsevier Ltd. All rights reserved. Keywords: Kinematic chain; Graph; Connectivity; Partial mobility; Total mobility
1. Introduction The kinematic structure of a mechanism is usually chosen by experience and practice. However, this task could be done by a more systematic procedure that takes into account the most important parameters, such as, for example, the number of links and pairs, the type of joints, and the end-effector mobility. The function-tostructure mapping is sometimes aided by the possibility of selecting one link as the frame, and one as the endeffector. This requires the knowledge of the mutual degrees of freedom existing between any two links of the kinematic chain. The connectivity in a given kinematic chain can be very useful in the very first stage of design. In fact, among the criteria used by the designer in topology selection there is connectivity. Hunt defined (1978) the connectivity between two specific members of a kinematic chain as the relative mobility between them [1]. Hence, it can be defined, numerically, as the number of Degrees of Freedom (DoF) between two specific members of a given kinematic chain. It is clear that such a notion is distinct from the
*
Corresponding author. Tel.: +39 06 44585227; fax: +39 06 484854. E-mail address: belfi
[email protected] (N.P. Belfiore).
0094-114X/$ - see front matter 2006 Elsevier Ltd. All rights reserved. doi:10.1016/j.mechmachtheory.2006.01.015
1444
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
number F of DoF of the whole kinematic chain, being valid for any pair of links of that kinematic chain. The connectivity was studied by Phillips, in 1984, who introduced [2] the so-called ‘‘joint in the bag equivalence’’ that is helpful for the conceptual definition of connectivity. According to such equivalence one can imagine all the interposing links and joints between two links i and j, as hidden inside a flexible black bag. This bag’s contents can be regarded as an equivalent unknown joint between the two links i and j, and the DoF of this equivalent joint is a measure of connectivity between the two links. On the other hand, the DoF of any single joint cannot be greater than the maximum number of DoF that a rigid body may have in the given system. Such a maximum is usually called the mobility number k. It follows, in particular, that the connectivity C[i, j] between two members i and j will be less or equal to k = 3, in the cases of plane or spherical motion, while it will be less or equal to k = 6 in the case of general spatial motion. The aim of this paper is to present a new algorithm able to compute the connectivity between any two members of a given kinematic chain. In this sense it is very important to introduce the ‘‘connectivity matrix’’ [3]. In fact, the full set of connectivities of a kinematic chain is composed of the DoF between all the n(n 1)/2 pairs of links, n being the total number of links. Such a set, therefore, can be systematically arranged in a symmetric matrix C whose elements C[i, j] represent the connectivity between links i and j (null in the case i = j). Even though the concept of connectivity between two members is very simple, being nothing more that their number of relative freedom, its numerical computation is quite difficult in the general case. An important attempt to find the connectivity of a kinematic chain was done by Tischler et al. [4–6] who introduced two important concepts, the Variety of a kinematic chain and the Minimal Set, with which it is possible to compute the connectivity matrix. This method, however, is difficult to be implemented as an algorithm, as it will be shown in the next paragraphs, so Shoham and Roth [3] presented an algorithm to find the connectivity that is based on some properties of the graph theory. This important contribution presented a very systematic approach for the numerical evaluation of connectivity. On the other hand, some cases were still found for which the above-mentioned algorithm gives incorrect results. In particular, Belfiore and Di Benedetto [7] identified the source of error and generalized the approach by building a new procedure, also based on graph theory. However, the latter algorithm is able to correctly compute the connectivity matrix for those kinematic chains having total and fractional mobility [8,9], while some problems may arise when this procedure deals with the kinematic chain which have partial mobility. In the present paper this limitation will be finally removed since the new algorithm is able to compute the connectivity matrix also for the kinematic chains having partial mobility, as Manolescu and Tempea have introduced in [8,9]. Hence, to the best of the Authors’ knowledge, the present contribution represents the first attempt to automatically detect the connectivity matrix in any kinematic chain (also when it has partial mobility). As a matter of fact, the other classes of methods, namely those which use the concept of minimal sets, are able to find the mobility of the subchains of a given kinematic chain regardless the facts that it could have partial mobility. However, until now, it seems that the concepts of minimal sets and of variety are rather difficult to be used in the programming of the automatic computation of the connectivity between any two links of a given kinematic chain. Furthermore, at the present time, only few minimal sets are completely known. 2. Basic equations and definitions The first fundamental concept, on which is founded the new algorithm, is the one to one correspondence between mechanisms and graphs [10]. Accordingly, links and pairs correspond to vertices and edges of a graph respectively. As a consequence, a multiple links with a certain degree of multiplicity corresponds to a vertex having, as degree, the same multiplicity. In addition, a group of sequentially jointed links, which formed a closed chain, correspond to a circuit of the graph having as many vertices as the links of the closed chains. In a graph, the total number of independent circuits is given by Euler’s equation [11]: Lind ¼ j l þ 1
ð1Þ
with Lind, j, and l being, respectively, the number of independent circuits, the number of pairs, and the number of members of the given kinematic chain. Furthermore, a graph can be defined as [11]:
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
1445
• connected, if every pair of vertices lie on at least one path; • biconnected, if it contains no cut-vertex (a vertex A is said to be a cut-vertex of a connected graph G if its removal disconnects G); • complete (KG) if in the set of edges all the combinations of pairs of vertices are present. In the new algorithm the results will have meaning only for those systems obeying the general mobility criterion: F ¼
j X
fi kLind
ð2Þ
i¼1
with fi being the DoF of the ith pair. This assumption is not a heavy limitation since the mechanisms in critical forms (for which Eq. (2) gives incorrect results) are usually studied as particular cases. Instead, the adoption of (2) allows us to focus our attention on the pure topological characteristics of a kinematic chain, offering a straightforward and general tool for the evaluation of its DoF. For practical reasons and with no loss of generality, it will be also supposed in this paper that the order of the screw system corresponds to that of a planar, spherical, or general spatial motion, and that only joints with 1 DoF (fi = 1) will be considered; this because the other joints having more than 1 DoF are difficult to be realized in practical and because, with the help of the concept of a multiple joints ‘‘equivalent mechanism’’, these can be converted to a simple joint. As shown in some previous investigation [5,7], the computation of the connectivity matrix of a kinematic chain depends on the type of its mobility, which can be, according to Manolescu [8,9], Total, Fractional, or Partial. In particular, it is reminded, for the sake of completeness, that a kinematic chain with F (or M) DoF is said to have Total Mobility if: • Any group of F links can be selected as moving links. • The moving links relative positions with respect to any other link can be independently assigned. • The motion of all the moving links with regard to any link (frame) depends only on the motion of F, and not less than F, moving links. If the above conditions are not satisfied, than the kinematic chain is said to have fractional or partial mobility, depending on if there is at least one cut vertex in the graph corresponding to the kinematic chain, or not. Later, Davies [12] said that among the plane kinematic chains of mobility M P 1 in which all the subchains have mobility greater than zero a distinction is made between: 1. kinematic chains of mobility M in which all the subchains have mobility M 0 P M, and 2. kinematic chains of mobility M in which there exists at least one subchain of mobility M 0 with M 0 < M. Davies showed that kinematic chains of the first kind correspond to those described by Manolescu as having total freedom, while kinematic chains of the second kind include those described by Manolescu as having partial or fractional freedom. In the present paper only those kinematic chains having mobility M > 0 and subchains with mobility M 0 P 0 will be considered. 3. Review of the previous contributions 3.1. Tischler et al. [5] The first important contribution to find the connectivity of a kinematic chain was given by Tischler et al. [5]. They introduced two new concepts: the Variety of a kinematic chain and the minimal set of a family of kinematic chains [5].
1446
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
A kinematic chain, with mobility M, is variety V if it does not contain any loop or subset of loops with a mobility of less than M V, but contains at least one loop or subset of loops that has a mobility of M V. For instance, a kinematic chain is variety V = 0 if it contains no loop or subset of loops with a mobility less than the mobility of the whole kinematic chain. The concept of variety is related with the concept of connectivity, so that we can have a new method, that we call Variety Method able to find the connectivity between any pair of members of a given kinematic chain. This method can be summarized in the following propositions that are true in absence of counterexamples of them: 1. If a Variety V kinematic chain has a mobility less than, or equal to, the order of the screw system, i.e. M 6 k, any two members in the chain, separated by at least M V joints, have a relative connectivity C P M V. 2. If a Variety V kinematic chain has a mobility greater than the order of the screw system that generally prevails, i.e. if M P k, then any two bodies, separated by at least k V joints, have relative connectivity C P k V. The relative connectivity of members, separated by fewer joints than the smaller of M V and k V, is equal to the number of joints between the two members. 3. Two members separated by a minimum of g single freedom joints, where g < k V and g < M V, have a relative connectivity C = g. These statements set the lower bounds for the connectivity of two members in a kinematic chain. We can have the exact values by identifying the subset of members with mobility M V and by checking the position of the two members to the corresponding subset of loops. If both members belong to such subset, then the relative connectivity will be equal to M V. The upper bound for the relative connectivity is the minimum number of joints that separate the two members. Although these propositions are theoretically relevant in the study of the mobility of a given kinematic chain, they are rather difficult to be adopted in order to build a procedure that automatically computes the connectivity between any two links of a given kinematic chain. Another important concept is that of minimal set, which is useful to find the Family of subchains of a given kinematic chain. Tischler, Samuel and Hunt defined this concept in relation to a method, called the Melbourne method, for the number synthesis of kinematic chains [4], for different values of k. Accordingly, after generating several kinematic chains for a given screw system, all the improper kinematic chains with loops of three or more joints are eliminated. Fig. 1(a) and (b) shows, for instance, the minimal set of improper kinematic chains with k = 3 and Lind = {1, 2} (they correspond to rigid sub-chains). Every improper kinematic chain, with k = 3, can be represented as a simple graph that contains at least one of these two kinematic chains as a subset, provided that the kinematic chain has Lind 6 2. Other different minimal sets can be found in the reference [5]. In particular there are minimal sets for k = 3, M = 1, and Lind 6 4, for k = 4 and Lind 6 2, but it is clear that the number of the minimal sets presented in literature is limited by the difficulty in generating all kinematic chains for every pair of values of k and Lind.
a
b
Fig. 1. Improper kinematic chains with k = 3 and Lind = {1, 2}.
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
1447
17 12
2 1
11
3
13 14
10
4
15 9
16 8
5 6
7
Fig. 2. Kinematic chain of variety V = 1, with k = 6 and M = 6.
Finally, for a better understanding of the main concepts of the Variety Method, let us consider the kinematic chain depicted in Fig. 2, for which M = 6 (with k = 6 and V = 1). By applying rules 1, 2, and 3, the connectivity matrix C1 listed in Appendix A is obtained. 3.2. Shoham and Roth [3] This method has been very important in the study of the connectivity because, for the first time, the importance of using the graph theory to solve the problem has been addressed. Particularly relevant has been the original procedure, therein presented [3], for adding the virtual edges to a given graph. This method has been developed and generalized in [7]. 3.3. Method by Belfiore and Di Benedetto [7] Belfiore and Di Benedetto presented a pure topological treatment of the problem; we will refer to this method as the Topological Method, in order to distinguish it from Tischler’s, Samuel’s, and Hunt’s Variety Method. The study of the difference between these two methods has been very enlightening in order to generalize the topological method. In particular, the latter has been only partially successful for the computation of the connectivity C, the redundancy R and the degrees of control K matrices [7] (R and K depends on C). The topological method is founded on the following assumptions: 1. No attention is paid to the nature of the loci traced instantaneously or over a full cycle of movement, by any point of any body of the mechanisms. 2. Infinitesimal movements are not analysed. 3. The nature and the order of the screw system full-cycle mobility, critically over-constrained linkages, and stationary and uncertainty configurations are not investigated. 4. The order of screw system corresponds to that of planar, spherical, or general spatial motion. 5. Mechanisms having special proportions, for which the number of DoF is temporally or permanently greater than F, are excluded. 6. Kinematic chains with partial mobility are excluded (this limitation will be removed thanks to the new algorithm that will be presented later in this paper). Under the above assumptions, the Topological Method can be resumed in the following steps [7]: 1. 2. 3. 4.
Build the graph G corresponding to the kinematic chain to be analysed. Copy G into a graph G 0 . For each pair of vertices i and j of G, evaluate their mutual distance Smin[i, j]. Build a matrix S whose element i j is equal to Smin[i, j].
1448
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
5. Build a set B of subgraphs composed of the biconnected components of G. 6. For each kth member Gk of B, perform the following step: 7. Perform the partial mobility test. If the components do not have partial mobility, then perform the followings steps (from 8 to 13). 8. Evaluate the number of independent loops Lk by means of the Euler‘s polyhedron formula Lk = pk nk + 1, where pk and nk denote, respectively, the total number of pairs and links in the kth component. 9. Evaluate the mobility Mk of the kth biconnected component Gk by means of the relation Mk = Rpkfi kLk = pk kLk. 10. Build the complete graph KGk of Gk. 11. For each edge t h of KGk, perform the following steps (12 and 13). 12. Find the pair of vertices r s of G that corresponds to the ends of the edge t h of KGk. 13. If M 0k < S½r; s then add to G 0 a virtual edge r s with weight equal to Mk. 14. For each pair of vertices i j of G 0 evaluate their mutual distance S 0min ½i; j. 15. Build a matrix S 0 whose element i j is equal to S 0min ½i; j. 16. Build the degrees of control matrix K in such a way that the element K[i, j] = S 0 [i, j]. 17. Build the connectivity matrix C in such a way that for each element, C[i, j] is equal to S 0 [i, j] or k, depending on whether S 0 [i, j] is less than k or not. 18. Build the redundancy matrix R in such a way that for each element R[i, j] = K[i, j] C[i, j]. As it is declared in step 7, this algorithm needs to know if the kinematic chain has Partial Mobility and for this reason it adopts a partial mobility test which screens out this kind of kinematic chains through the following steps: 1. Evaluate the number Fk of DoF of the biconnected component. 2. Build the graph corresponding to the biconnected component. 3. Evaluate a set of independent circuits of the components based on a minimum weight-spanning tree, having assigned a unitary value to the edge weights of the graph. 4. Detect the cycle having the lowest length q. 5. If q < Fk + k, then the biconnected component has partial mobility. However, there are some cases for which this partial mobility test [7] does not work properly. For this reason, in the present paper a novel approach will be suggested. 4. Comparison between the topological and variety methods Before formally describing the new proposed algorithm, it seems interesting to indulge once more on a reasoned comparison between the topological and the variety methods. A first case study is represented by the kinematic chain depicted in Fig. 2. For this chain, the connectivity matrix obtained by means of the topological method (see matrix C2 in Ref. [7]) is the same of the one obtained by means of the variety method (i.e. the matrix C1 in Appendix A). However, let us apply the two methods to the kinematic chain in Fig. 3 (Tischler’s private communication). This kinematic chain has M = 2, Lind = 4, with order k = 3. According to the variety method, this kinematic chain is variety V = M M 0 = 1 because there is the subchain {1, 2, 3, 4, 5, 6, 10, 11} which belongs to the set of minimal set for Lind = 3 and M 0 = 1 [5]. The connectivity matrix C2 (see Appendix A) is obtained by applying the rules 1, 2, and 3. On the other hand, the application of the topological method leads to the connectivity matrix C 02 (see Appendix A), which differs from C2. Hence, for the kinematic chain reported in Fig. 3, the two methods give different results. This fact means that one of the two methods fails in some points because for a given kinematic chain there exists a unique connectivity matrix. After the analysis of more and more examples, the partial mobility test called by the topological method has been identified as a source of miscalculation. For example, considering again the kinematic chain depicted in Fig. 3, the subchain composed by the members {1, 2, 3, 4, 5, 6, 10, 11} has mobility M 0 = 1 < M = 2, while the partial mobility test is not able to recognize the partial mobility.
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
9
1449
8
11
10 7
5
3 4
6
2 1 Fig. 3. Kinematic chain of variety V = 1, with k = 3 and M = 2.
In fact, given a kinematic chain with mobility Mk, the test used in [7] recognizes the partial mobility in relation to the existence of at least one circuit whose length q be less than the sum of Mk and k. By assuming, with no loss of generality, that only 1-DoF simple pairs are adopted, relation X fi ¼ q pk
holds for at least one circuit, with pk being the number of pairs of the circuit (pk = q). Since the number Mc of DoF of the single loop is given by (2) M c ¼ q k; the number of actuators Mk to be assigned to the pairs of the whole biconnected component will be greater than the number of DoF of a least one circuit, being Mc ¼ q k < Mk. Unfortunately, ascertaining the presence of single loops of length q is not a sufficient condition to state that the kinematic chain under analysis has partial mobility. Let us consider the kinematic chain b in Appendix B and again the kinematic chain in Fig. 3. For the first one, the partial mobility test works properly, since the loop {2, 4, 5, 6} is a subchain, composed of only one loop, with mobility M 0 = 1 less than the total mobility M = 2 of the kinematic chain. For the second one, the test response would be total mobility. In fact, each singe loop has a length q that is higher than the sum of the DoF M and the mobility number k. Such an output is wrong because it is obtained by ignoring the subchains composed by multiple independent circuits. The new algorithm has been tailored in order to take into account all the subchains present in a given kinematic chain. 5. Description of the new method In this paragraph, a new algorithm for the fully automated computation of the connectivity matrix will be described, together with some numerical examples. As it has been underlined above, the new method is able to find the partial and total mobility of a given kinematic chain, and to compute the matrix C for this kind of kinematic chains. The algorithm is also able to handle the kinematic chains characterized by fractionated mobility, since it is always possible: (a) to consider the biconnected components; (b) to treat them separately; (c) and finally to reassemble them into the original system. 5.1. An introduction to the basic concepts used to develop the new algorithm The new algorithm is based on a concept, called ‘‘gradual freezing of the circuits of a kinematic chain’’. The concept of subchain freezing has been suggested by the fundamental work [13]. First of all, let us recall how it is possible to easily build a kinematic chain with partial mobility [14].
1450
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
5
2
1
1 6
+
6
4
7
a
5
= 3
3
4
2
b
7
c
Fig. 4. Construction of a kinematic chain with partial mobility.
Let the kinematic chain (a) of Fig. 4 be in a screw system of order k = 3, with total mobility M = 1. If we add the subchain (b) to the chain (a), then the resulting kinematic chain (c) will have partial mobility. From definition, a kinematic chain is said to have partial mobility if there are some distributions of actuators that cause uncontrollability of the kinematic chain [8]. This will be fundamental in our study. In fact, considering again the kinematic chain in Fig. 4(a), with M = 1, we can adopt only one actuator to control the movement of the system. For examples, selecting links 3 and 4, respectively, as the moving and the frame ones, the block of link (with respect to the frame link 4) it makes the kinematic chain frozen. This means that, in the corresponding graph, this kinematic chain can be seen as a unique vertex. Now let us add three members to this frozen kinematic chain. In this case, we have another 1 DoF and if we want to freeze again the kinematic chain we have to use another actuator; now our choice is not free, in fact if we select one member in the circuit {1, 2, 3, 4} as a new actuator, we cannot control the whole kinematic chain because the members 5, 6, 7 cannot be controlled. Then we must select one member between the three ones added: for example the member 5. At the end, the kinematic chain with mobility M = 2 can be frozen by blocking the actuators in 3 and in 5. As the choice of the actuators is not free, we can state that in this way we have built a kinematic chain with partial mobility. Our problem, however, is the inverse one. In fact, from the kinematic chain, such as, for example, the one in Fig. 4(c), we must recognize the partial mobility. To solve this problem the correspondence between graphs and kinematic chains will be used. For example, the graph corresponding to the kinematic chain under study is reported in Fig. 5. In this case, the DoF are M = 2, so we can control the kinematic chain by using two actuators. In the graph of Fig. 5, the subgraph {1, 2, 3, 4} is a circuit of length q = 4. Considering a unit weight for any edge, the mobility for the mentioned subgraph is M = q k = 1, that means we have to add only one actuator to control it. Let us suppose to add this actuator and block the circuit: we have a frozen loop. A frozen loop can be seen as a unique new member that can be represented as a vertex belonging to a novel reduced graph, such the one in Fig. 6. In order to remember the frozen subgraph, the portion graph G1 can be created and stored for further analysis, as depicted in Fig. 6. Now, the reduced graph needs another actuator in order to be fully controlled, since the mobility of the whole kinematic chain is M = 2. At this point it is already possible to affirm that the initial kinematic chain in Fig. 4(c) has partial mobility. In fact, the subchain 2
5
1 6
4
3
7
Fig. 5. The graph corresponding to the kinematic chain of Fig. 4(c).
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
2
1451
5
1 G1
L1
4
6
3
7
Fig. 6. The graph reduced from the one depicted in Fig. 5, after freezing the circuit {1, 2, 3, 4}.
{1, 2, 3, 4}, which has mobility less than two, is controlled by only one actuator. Hence, the freezing of one circuit has helped in recognizing the partial mobility and in identifying a subchain with mobility M 0 < M. This freezing approach will be used also in the calculation of the connectivity matrix, by adding a group of weighted virtual edges to the original graph every time that a subchain of mobility less than the mobility of the whole kinematic chain is recognized. 5.2. Presentation of the new algorithm (through one significant example) Let us now apply the above presented concepts to a more difficult case, for example, to the kinematic chain represented in Fig. 3, for which the partial mobility test of the topological method has failed. The following steps will refer to this kinematic chain and to its corresponding graph depicted in Fig. 7. 5.2.1. First step The kinematic chain under analysis has mobility M = 2 and Lind = 4. For each independent circuit we must repeat the following procedure (three circuits have length q = 5). Let us consider one of these circuits, for example, the circuit formed by the members {1, 2, 3, 4, 11}. The relative mobility for this single circuit is M = q k = 5 3 = 2, and, therefore, two actuators are able to freeze it. Then we can consider the reduced graph where the vertex L2 represents the frozen circuit. In the same time, the elements of the frozen circuit can be stored in a portion graph G2, where the subscript number informs on how many DoF has the subchain composed by the vertices of that graph. The situation is depicted in Fig. 8. 5.2.2. Second step The new reduced graph has Lind = 3. The whole kinematic chain has M = 2 and this means that if the kinematic chain had total mobility, the new graph would be completely controlled, because two actuators have been already used in the previous step. The mobility of the new graph is zero so it seems that the kinematic chain has total mobility. However we must investigate also about other possible subchains. To be sure of the total mobility we must freeze iteratively all the circuits of the graph. Let us study the reduced graph, with
8 9 7 10
11 5 3
4 6
2 1 Fig. 7. The graph corresponding to the kinematic chain depicted in Fig. 3.
1452
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
8
11 9 5
2
7 G2
10
L2
3 1 4
6
Fig. 8. First step: graph with one frozen circuit.
particular interest on the circuit with less mobility; we can find a circuit {L2, 5, 10} having length q = 3. This means that the pair 5 and 10 is a dyad [14] for the subchain blocked in L2, and then these two members are also controlled by the two actuators of the previous subchain. We can include them in L2 and add to the graph G2 two new members. The new situation is presented in Fig. 9. 5.2.3. Third step The reduced graph has now only two independent circuits, Lind = 2, and the circuit of minimum length has length q = 2. We focus our attention on the circuit of minimum length because this is more restrictive for the mobility of the subchain. From the graph theory we know that if an arc is added to a kinematic chain with mobility M, the new kinematic chain will have mobility M 1. In our example, adding the member 6 to L2, we obtain a new kinematic chain with mobility M = 2 1 = 1. To freeze this new kinematic chain it is necessary only one actuator. This means that the subchain, composed by the member 6 and the members in L2, has mobility M = 1 and the initial kinematic chain, having M = 2, has partial mobility. At this step we obtain a new graph with the new vertex L1 that represents the members blocked using one actuator. At the same time the member 6 is added to the graph G2 that becomes G1. The situation is depicted in Fig. 10.
8
5
11
9
2
10
7
G2
L2 3
1
4
6
Fig. 9. Second step: members 5 and 10 are added to the graph G2.
11
8
5 10
2
9 7
G1
6
1
3 4
L1
Fig. 10. Third step: the partial mobility has been found.
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
1453
5.2.4. Fourth step The new graph obtained at the previous step has only one independent circuit with length q = 4; this means (the whole kinematic chain has M = 2) that we need one more actuator to control the members 7, 8, 9. At this point, however, we do not add the three members in the vertex L1, because in L1 there is the necessary information to compute correctly the matrix of connectivity of the kinematic chain. In fact we need to add the virtual edges to the subgraph corresponding to the subchain with mobility M 0 = 1. To add these virtual edges let us use the following procedure [7]: 1. 2. 3. 4. 5. 6. 7.
For each pair of vertices i j of G, evaluate their mutual distance Smin[i, j]. Build a matrix S whose element i j is equal to S 0min ½i; j. This matrix S is reported in Appendix A. Considering the graph G1, build the complete graph KG1 (see Fig. 11). For each edge t h of KG1, perform the following three steps: Copy G into a graph G 0 . Find the pair of vertices r and s of G that corresponds to the ends of the edge t h of KG1. If M1 (in our example M1 = 1) is M1 < S[r, s], then add to G 0 a virtual edge r s with a weight equal to M1 = 1.
After performing the above steps, the graph G 0 is obtained as represented in Fig. 12. We must underline that in this graph the virtual edges of weight 1 have been added (dashed line). 5.2.5. Fifth step Before computing the connectivity matrix C the process of subchain freezing must be completed. In particular, the members 7, 8, 9 are added in L1 and L2, with mobility M = 2, is obtained. At this final point, we have
5
11 11
5
6
6 2
2 10
10
3
1
1
4
G1
3 4
KG 1
Fig. 11. Fourth step: the complete graph KG1 of the graph G1.
9
8 5
11 10 2
7
6 1
3
M=1
4 Fig. 12. Fourth step: the graph G 0 obtained after adding virtual edges of weight M = 1 to the initial graph.
1454
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
5
11
10
9
2
8 6
7
G2
L2
3
1 4
Fig. 13. Fifth step: totally frozen kinematic chain.
9
8
5 11
10
2
6
1
3 4
7
M=1 M=2
Fig. 14. The graph G00 obtained after adding virtual edges of weights M = 2 and M = 1.
reduced all the kinematic chain. The final graph is just a vertex that represents the initial kinematic chain that has been totally frozen. The situation is presented in Fig. 13. 5.2.6. Iteration All the significant virtual edges must be added to the original graph, so the above reported steps must be iterated to add the virtual edges with weight M = 2. With the position S[r, s] = M1, the matrix S is updated. At the end of the process, the graph G00 is obtained as in Fig. 14. In this graph the virtual edges of weight 2 have been added (long-dashed line). To be sure to add all the virtual edges for all the subchains of the kinematic chain, we must perform the above steps starting from each independent circuit of the given kinematic chain. 5.2.7. Evaluation of the connectivity matrix After adding all the virtual edges with different weights, we can compute the connectivity matrix by using the following procedure: 1. For each pair of vertices i j of G00 , evaluate their mutual distance S 0min ½i; j. 2. Build the matrix S 0 whose element i j is equal to S 0min ½i; j. 3. Build the connectivity matrix C in such a way that for each element, C[i, j] is equal to S 0 [i, j] or k, depending on whether S 0 [i, j] is less than k or not. The computed connectivity matrix is that C2 reported in Appendix A. It can be noted that the same matrix has been obtained by means of the variety method, while the topological method fails because the used partial mobility test is not able to find the subchain {1, 2, 3, 4, 5, 6, 10, 11} having mobility M = 1. 6. Systematic description of the new proposed algorithm The adopted, fully automated procedure is based on the above considerations and can be resumed systematically as follows.
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
1455
6.1. Steps 1–11: Preliminary study of the given kinematic chain 1. 2. 3. 4. 5. 6. 7.
8. 9. 10. 11.
Build the graph G corresponding to the kinematic chain to be analysed with N members and P joints. Build the adjacency matrix A of the graph G [15,16]; copy A into a matrix A 0 . For each pair of vertices i j of G, evaluate their mutual distance Dmin[i, j]. Build a matrix D(N · N) whose element i j is equal to Dmin[i, j]. Calculate the number of independent circuits using the equation: Lind = 1 N + P; set L00ind ¼ Lind . Calculate the degree of freedom, M, of the whole kinematic chain using the equation: M = P kLind, with k = 3 in the plane and k = 6 in the spatial motion. Evaluate a set of independent circuits of the kinematic chain based on a minimum weight-spanning tree, having assigned a unitary value to the edge weights of the graph. Detect the cycles having the lowest length qmin; Copy G into a graph G 0 . If qmin < M + k, then the kinematic chain has partial mobility and go to step 11. If qmin P M + k, then we do not know if the kinematic chain has partial mobility or not. Build a set ‘‘C’’ of the independent circuits of the kinematic chain.
6.2. Steps 12–19: Main recursive procedure, necessary to freeze iteratively all the subchains of the given kinematic chain 12. For each element ck of C, perform the following steps, starting from the independent circuits with length qmin. 13.1. List the vertices of the circuit ck; evaluate the mobility Mk = q k; let N 0 = N. 13.2. Build a graph Gk corresponding to the circuit ck; copy ck into c0k , c0k ¼ ck . 13.3. Add the lines and the columns of the matrix A 0 relative to the vertices of c0k , using the Boolean algebra: 0 + 1 = 1 + 0 = 1 and 0 + 0 = 1 + 1 = 0. 13.4. Add the resultant column and the resultant line at the matrix A 0 [(N 0 + 1) · (N 0 + 1)] and set the element [N 0 + 1, N 0 + 1] = 0. Set to zero all the elements of the columns and lines corresponding to the vertices of c0k . (This step helps us in the implementation of the algorithm using an algebraic programming language.) 13.5. Find the graph corresponding to the adjacency matrix A 0 , where the column N 0 + 1 corresponds to the vertex LMK; Calculate the mobility M 0 of the new graph and if M 0 > 0, then the kinematic chain has partial mobility; calculate N 0 = N 0 + 1. 13.6. Calculate a set of independent circuits L0ind of the new graph, and find the circuit c0k with minimum length q0min , and having as element the vertex LMK. (L0ind is the number of independent circuits after each freezing. This must be compared with L00ind that represents the number of independent circuits before freezing. Three possible cases can occur: steps 13.7, 13.8, or 13.9). 13.7. Case L0ind 6¼ L00ind 1 then q0min ¼ 2; add the vertex of c0k to Gk and calculate Mk = Mk (k 2) and L00ind ¼ L00ind 1; go to step 13.3. 13.8. Case L0ind ¼ L00ind 1 P 1 then. 13.8.1. If q0min ¼ k, then add the vertices to Gk; let L00ind ¼ L0ind ; go to step 13.3. 13.8.2. If q0min > k: 13.8.2.1. If Mk P M, then add the vertices to Gk; calculate M k ¼ M k þ ðq0min kÞ and L00ind ¼ L0ind ; go to step 13.3. 13.8.2.2. If Mk < M, then lay M 0k ¼ M k and L00ind ¼ L0ind ; the kinematic chain has partial mobility; continue from step 14. 13.8.3. If q0min < k, add the vertices to Gk; calculate M k ¼ M k ðk q0min Þ and L00ind ¼ L0ind ; go to step 13.3. 13.9. Case L0ind ¼ L00ind 1 ¼ 0, then M 0k ¼ M and skip to the step 14. 14. Build the complete graph KGk of Gk. 15. For each edge t h of KGk, perform the two following steps. 16. Find the pair of vertices r s of G that corresponds to the ends of the edge t h of KGk.
1456
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
17. If M 0k < D½r; s then add to G 0 a virtual edge r s with a weight equal to M 0k ; In the matrix D, replace D½r; s ¼ M 0k . (In this step, the initial matrix D is updated with weights of virtual edges.) 18. If L0ind P 1, calculate M k ¼ M k þ ðq0min kÞ; add vertices to Gk and go to step 13.3. (The given kinematic chain has not been completely frozen.) 19. If L0ind ¼ 0, then perform the following independent circuit of the initial set C, go to step 13.1, else continue. (The given kinematic chain has been completely frozen.)
6.3. Steps 20–23: After having frozen all the subchains of the given kinematic chain, the matrix of connectivity is finally computed 20. 21. 22. 23.
Copy the graph G 0 into a new graph G00 . For each pair of vertices i j of G00 , evaluate their mutual distance Smin[i, j]. Build the matrix S whose element i j is equal to Smin[i, j]. Build the connectivity matrix C, in such a way that for each element, C[i, j] is equal to C[i, j] = Smin[i, j] if Smin[i, j] 6 k, otherwise C[i, j] = k if Smin[i, j] > k.
Using the above procedure, we could easily calculate also the matrix of degree of Control K and of the Redundancy R [7]. In the next paragraph some applications of the new method will be presented. 7. Applications of the new method The algorithm has been applied to the kinematic chains a, b, c, d, e, f, g, h, i, and l, presented in the first part of Appendix B. The analysis of these kinematic chains allows a more complete comparison between the new algorithm and the previous ones. The corresponding connectivity matrices Ca, Cb, Cc, Cd, Ce, Cf, Cg, Ch, Ci, and Cl, have been obtained by applying the new algorithm and have been reported in the second part of Appendix B. In particular, the kinematic chains a, b, c, d, are plane, with k = 3, and have partial mobility. The analysis of the kinematic chain d, for k = 3, it also allows to appreciate the concept that all the independent circuits must be considered in order to correctly complete the procedure of virtual edges adding, which it makes general the novel procedure. In fact, this kinematic chain, whose corresponding graph is reported in Fig. 15, has mobility M = 2 and three independent circuits, Lind = 3. The initial matrix D is presented in Appendix A as D1. The circuits with minimum length q = 4 are {1, 3, 4, 5} and {1, 2, 6, 7} (Steps 7–9). Since q < M + k (Step 9), the kinematic chain has partial mobility. The set C (Step 11) is composed by the circuits {1, 3, 4, 5}, {1, 2, 6, 7}, and {1, 2, 3, 8, 9}. Let us start the procedure from the circuit c0k ¼ f1; 3; 4; 5g with Mk = 1 and let us apply one actuator to freeze it. The reduced graph is shown in Fig. 16 (Steps 12–13.5). For the new graph: (a) the number of independent circuits is L0ind ¼ L00ind 1 ¼ 2 P 1 (Steps 13.6–13.8); (b) q0min ¼ 4 > 3 (Step 13.8.2); (c) Mk < M (Step 13.8.2.2). Hence, the virtual edges can be added in the graph G 0 , with weight M 0k ¼ 1, and L00ind ¼ L0ind . Fig. 17 shows the graph G 0 (Steps 14–17). In the reduced graph, since L0ind P 1 (Step 18), we have Mk = 1 + 1 = 2. Then, the members 2, 7, 6, can be added in the graph G1 and the new reduced
8
9 3
4
2 7
5
1 6
Fig. 15. The graph corresponding to the kinematic chain (d) in Appendix B.
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
8
9 3
4
1457
2 L1
G1 5
7
1 6
Fig. 16. The graph reduced from the one depicted in Fig. 15, after freezing the circuit {1, 3, 4, 5}.
graph with G2 (Steps 13.3–13.5) is obtained, as depicted in Fig. 18. At this point, L0ind ¼ L00ind 1 ¼ 1 (Step 13.8) and q0min ¼ 3; we have also established that two actuators are enough to control the whole kinematic chain (Step 13.8.1). Let add the last two vertices and set L00ind ¼ 1. The new graph corresponds to a single vertex L2 and all the members are in G2 (Steps 13.3–13.5) as represented in Fig. 19. Finally, L0ind ¼ L00ind 1 ¼ 0 (Step 13.9) and the virtual edges, with weight M = 2, are added (Steps 14–17). The graph obtained adding the virtual edges with weights 1 and 2 is presented in Fig. 20. At this step also the distance matrix D is changed and this is reported in Appendix A as D2.
8
9 3
4
2 7
5
1
M=1 6
0
Fig. 17. The graph G obtained after adding virtual edges of weight M = 1.
3
8
9
4
2 G2
7
5
L2
1
6
Fig. 18. New reduced graph obtained after freezing the circuit {L1, 2, 6, 7}.
9
8
3
4
2 G2
7
5 6
L2
1
Fig. 19. Final step for the first independent circuit.
1458
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
8
9 3
2
4 7 M=1
5 1
M=2
6
Fig. 20. The new graph G 0 obtained after adding also the virtual edges of weight M = 2.
8
9 3
2
4 7 5
M=1 1 6
M=2
Fig. 21. The final graph G00 obtained after adding all the virtual edges of weights M = 2 and M = 1.
However, we must repeat the above steps starting from the other two independents circuits. Let us consider the independent circuit c0k ¼ f1; 2; 6; 7g. If we see Fig. 20, we can understand that we must add some virtual edges to the c0k relative subgraph, otherwise we cannot exactly compute the connectivity matrix. In particular, from Fig. 20 it results that the connectivity between the members 2 and 6, and between 1 and 7, is C[2, 6] = C[1, 7] = 2, and this value is incorrect. In fact, the members 1, 2, 6, 7, belong to the circuit c0k that corresponds to a subchain of mobility 1; then their connectivity cannot be greater than 1. To make the algorithm as much general as possible, we need to investigate about all the subchains of the given kinematic chain in order to add all the necessary virtual edges to the initial graph. To do this, it is sufficient to start the procedure from each independent circuit of the given kinematic chain (Step 12). In our example, if we iterate the procedure from circuits {1, 2, 6, 7} and {1, 2, 3, 8, 9}, we obtain the graph G00 (Step 20) of Fig. 21, with the complete set of virtual edges. The resulting connectivity matrix Cd (Steps 21–22) is shown in Appendix B. The kinematic chains e and f of Appendix B are spatial kinematic chains with k = 6 and partial mobility. It can be underlined that for these kinematic chains the variety method cannot be practically used because the correspondent minimal sets are difficult to know. Finally, the kinematic chains g and h are plane kinematic chains with k = 3 and total mobility. In this cases, the gradual freezing of the circuits requires always a number of actuators that is higher or equal to the mobility of the whole kinematic chain, and, then, only virtual edges, with weight equal to the mobility of the whole kinematic chain, will be added to the initial graph. 8. Applicability of the new method to the case of fractionated mobility In the paper, the new algorithm has been developed basically for kinematic chain with partial and total mobility, but it can be used also with kinematic chains having fractional mobility. In this case, we can adopt the same approach used by the topological method [7]. From the definition of fractional mobility, the graph corresponding to this kind of kinematic chains has at least two biconnected components, separated by a cut vertex. It is then enough to apply the new procedure to each biconnected component of the initial graph
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
1459
2 4 6 9 5 3
8 1
7
Fig. 22. A graph corresponding to a kinematic chain with fractionated mobility.
2 4 6
M=1
9 5
3
8 1
7
Fig. 23. The graph after the virtual edges have been added.
to compute the connectivity matrix of the whole kinematic chain. Furthermore, the utilization of the new algorithm lets to study also the case of biconnected components with partial mobility, which was excluded in the topological method [7]. Then, a further improvement for the computation of the connectivity for kinematic chain with fractional mobility is obtained also. As an example, we can consider the plane M = 2 kinematic chain ‘‘i’’ in Appendix B, which is characterized by fractional mobility. The corresponding graph, reported in Fig. 22, has two biconnected components {2, 4, 6, 9} and {1, 3, 5, 7, 8, 9}, separated by one cut-vertex {9}. Applying separately the new algorithm to each biconnected subgraph, we can add all the virtual edges with their weights to the initial graph. The final graph is reported in Fig. 23. From the latter graph is then possible to compute the connectivity matrix of the kinematic chain Ci, presented in the second part of Appendix B. Another application has been developed on the kinematic chain ‘‘l’’ of Appendix B. In this case also, the kinematic chain is a plane chain with M = 3 and two biconnected components, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} and {6, 14, 15, 16}. Furthermore, the biconnected component {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} has partial mobility. Applying again the new algorithm to each component, it is possible to compute the matrix of connectivity Cl that is reported in the second part of Appendix B. It is underlined again that the matrix Cl could not be computed by using the previous topological method because of the partial mobility of one of its biconnected components. 9. Conclusions A new fully automated algorithm, which is able to find the connectivity matrix for planar and spatial kinematic chains having total, partial, and fractional mobility, has been presented in this paper. Based on graph theory, the procedure is able, firstly, to recognize if a kinematic chain has either total or partial mobility and, then, to compute the corresponding connectivity matrix. The novel procedure can be then easily adapted to analyse the kinematic chain with fractional mobility. A comparison between the new proposed method and
1460
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
the previous ones has been done and several applications of the new algorithm have been presented. With regard to the variety method, the new approach can be applied in an automatic way, without the necessity of using the limiting concept of minimal sets in order to detect the partial mobility of a given kinematic chain. With regard to the topological method, the new algorithm is able to find the mobility of all the subchains of a given kinematic chain and, for the first time, to compute the connectivity matrix for plane and spatial kinematic chains, regardless of their kind of mobility. Appendix A 2
0
6 61 6 6 62 6 6 63 6 6 6 64 6 6 65 6 6 65 6 6 65 6 6 C 1 :¼ 6 64 6 63 6 6 62 6 6 61 6 6 6 61 6 6 62 6 6 63 6 6 64 4 1 2
1
2
3 4
5
5
5 4
3
2
1
1 2
3
4
0
1
2 3
4
5
5 5
4
3
2
2 3
4
5
1
0
1 2
3
4
5 5
5
4
3
3 4
5
5
2
1
0 1
2
3
4 5
5
5
4
4 5
5
4
3
2
1 0
1
2
3 4
5
5
5
5 5
4
3
4
3
2 1
0
1
2 3
4
5
5
5 4
3
2
5
4
3 2
1
0
1 2
3
4
5
4 3
2
1
5
5
4 3
2
1
0 1
2
3
4
5 4
3
2
5
5
5 4
3
2
1 0
1
2
3
5 5
4
3
4
5
5 5
4
3
2 1
0
1
2
4 5
5
4
3
4
5 5
5
4
3 2
1
0
1
3 4
5
5
2
3
4 5
5
5
4 3
2
1
0
2 3
4
5
2
3
4 5
5
4
5 5
4
3
2
0 1
2
3
3
4
5 5
4
3
4 5
5
4
3
1 0
1
2
4
5
5 4
3
2
3 4
5
5
4
2 1
0
1
5
5
4 3
2
1
2 3
4
5
5
3 2
1
0
2
3
4 5
6
6
6 5
4
3
2
2 3
4
5
0 6 61 6 6 61 6 6 61 6 6 61 6 6 6 C 2 :¼ 6 1 6 6 62 6 6 62 6 6 62 6 6 61 4
1
1
1 1
1
2
2 2
1
0
1
1 1
1
2
2 2
1
1
0
1 1
1
2
2 2
1
1
1
0 1
1
2
2 2
1
1
1
1 0
1
2
2 2
1
1
1
1 1
0
1
2 2
1
2
2
2 2
1
0
1 2
2
2
2
2 2
2
1
0 1
2
2
2
2 2
2
2
1 0
2
1
1
1 1
1
2
2 2
0
1
1
1
1 1
1
2
2 1
1
1
3
7 17 7 7 17 7 7 17 7 7 17 7 7 7 17 7 7 27 7 7 27 7 7 17 7 7 17 5 0
1
3
7 27 7 7 37 7 7 47 7 7 7 57 7 7 67 7 7 67 7 7 67 7 7 57 7 7 47 7 7 37 7 7 27 7 7 7 27 7 7 37 7 7 47 7 7 57 5 0
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
2
0
6 61 6 62 6 6 61 6 62 6 6 C 02 :¼ 6 61 6 62 6 62 6 6 62 6 6 42 2
1 0
6 61 6 62 6 6 61 6 62 6 6 S :¼ 6 61 6 62 6 63 6 6 63 6 6 42 1 2
0 6 61 6 61 6 6 62 6 6 D1 :¼ 6 1 6 61 6 6 62 6 62 4 2 2 0 6 61 6 61 6 6 61 6 6 D2 :¼ 6 1 6 61 6 6 62 6 62 4 2
1
2
1 2
1
2
2 2
2
0
2
2 2
2
2
2 2
2
2
0
1 2
2
2
2 2
2
2
1
0 1
2
2
2 2
2
2
2
1 0
2
2
2 2
1
2
2
2 2
0
1
2 2
1
2
2
2 2
1
0
1 2
2
2
2
2 2
2
1
0 1
2
2
2
2 2
2
2
1 0
2
2
2
2 1
1
2
2 2
0
1
3
7 17 7 17 7 7 27 7 27 7 7 27 7 7 27 7 27 7 7 17 7 7 15
1 1 2 2 2 2 2 1 1 0 3 1 2 1 2 1 2 3 3 2 1 7 0 2 2 3 2 3 3 2 2 17 7 2 0 1 2 3 4 3 2 2 17 7 7 2 1 0 1 2 3 4 3 2 27 7 3 2 1 0 2 3 4 3 1 27 7 7 2 3 2 2 0 1 2 3 1 27 7 7 3 4 3 3 1 0 1 2 2 37 7 3 3 4 4 2 1 0 1 3 27 7 7 2 2 3 3 3 2 1 0 2 17 7 7 2 2 2 1 1 2 3 2 0 15 1 1
2
2
2 3
2
1
1
1
2
1 1
2
2
0
2
3
2 2
1
1
2
0
1
2 1
3
2
3
1
0
1 3
4
3
2
2
1
0 2
3
3
2
2
3
2 0
1
3
1
3
4
3 1
0
2
1
2
3
3 3
2
0
2
1
2
3 3
3
1
1
1
1
1 1
2
2
0
2
2
2 2
1
1
2
0
1
1 2
2
2
2
1
0
1 2
2
2
2
1
1
0 2
2
2
2
2
2
2 0
1
2
1
2
2
2 1
0
2
1
2
2
2 2
2
0
2
1
2
2 2
2
1
2
1 3
7 27 7 17 7 7 27 7 7 37 7 37 7 7 37 7 17 5 0 3 2 7 27 7 17 7 7 27 7 7 27 7 27 7 7 27 7 17 5 0
0
1461
1462
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
Appendix B B.1. First part Connectivity matrices with partial and total mobility used to test the new algorithm. The kinematic chains (a), (b), (c), (d), (g), and (h) are plane, while (e) and (f) are spatial kinematic chains. Finally, (i) and (l) are plane fractionated kinematic chains.
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
(g)
1463
(h)
2
12
6
16
4 10
8
5
13
15
9 5
8
3
4
7
1
11
6 3 2
14 9
7 1
(l)
(i)
B.2. Second part Connectivity matrices obtained by using the new method. The matrices correspond to the kinematic chains depicted in Section B.1. 3 2 0 1 1 1 1 1 1 2 1 2 1 2 1 61 0 1 1 1 1 1 2 1 2 1 2 17 7 6 7 6 3 2 61 1 0 1 1 1 1 2 1 2 1 1 17 0 1 1 2 2 2 2 1 2 7 6 61 1 1 0 1 1 1 2 1 2 1 2 17 61 0 2 1 1 1 2 2 27 7 7 6 6 7 7 6 6 61 1 1 1 0 1 1 2 1 2 1 2 17 61 2 0 2 2 2 1 2 27 7 7 6 6 7 7 6 6 61 1 1 1 1 0 1 2 1 2 1 2 17 62 1 2 0 1 1 2 2 27 7 7 6 6 7 7 6 C a :¼ 6 6 1 1 1 1 1 1 0 2 1 2 1 1 1 7 C b :¼ 6 2 1 2 1 0 1 1 2 2 7 7 7 6 6 62 2 2 2 2 2 2 0 2 1 2 1 27 62 1 2 1 1 0 2 2 17 7 7 6 6 61 1 1 1 1 1 1 2 0 2 1 2 17 62 2 1 2 1 2 0 2 27 7 7 6 6 7 7 6 6 62 2 2 2 2 2 2 1 2 0 2 2 17 41 2 2 2 2 2 2 0 15 7 6 61 1 1 1 1 1 1 2 1 2 0 2 17 2 2 2 2 2 1 2 1 0 7 6 7 6 42 2 1 2 2 2 1 1 2 2 2 0 25 1
1
1 1
1
1
1 2
1
1
1 2
0
1464
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
2
0 1
3
3 2
1
2
3 3
2
1
1
0
1
2
3 3
2
3
3 3
3
2
2
1
0
1
2 3
3
3
3 3
3
3
3
2
1
0
1 2
3
3
3 3
3
3
3
3
2
1
0 1
2
3
3 3
3
3
3
3
3
2
1 0
1
2
3 3
3
3
2
2
3
3
2 1
0
1
2 3
3
2
1
3
3
3
3 2
1
0
1 2
3
3
2
3
3
3
3 3
2
1
0 1
2
3
3
3
3
3
3 3
3
2
1 0
1
2
3
3
3
3
3 3
3
3
2 1
0
1
3
2
3
3
3 3
2
3
3 2
1
0
2
2
3
3
3 2
1
2
3 3
3
2
0
1 2
3
3
3 2
1
2
3 3
3
2
1
0
0 1
2
3
3 3
3
3
2 1
1
2
3
3 1
2
0
1
2
3 3
3
3
3 2
2
3
3
3 2
1
0
1
2 3
3
3
3 3
3
3
3
2
1
0
1 2
3
3
3 3
3
3
3
2
1
0 1
2
3
3 3
3
3
3
2
1 0
1
2
3 3
3
3
3
2 1
0
1
3
3
3
3 2
1
3
3
3
3 3
2
3
3
2
3
3
6 61 6 6 62 6 6 63 6 6 63 6 6 62 6 6 61 6 C c :¼ 6 62 6 6 63 6 6 63 6 6 62 6 6 61 6 6 61 4 2
1
3
2
7 27 7 7 37 7 7 37 7 7 37 7 7 27 7 7 17 7 7 27 7 7 37 7 7 37 7 7 37 7 7 27 7 7 17 5
2
1
1
1 1
1
1
0
2
2 2
1
1
2
0
1 1
2
2
2
1
0 1
2
2
2
1
1 0
2
2
1
2
2 2
0
1
1
2
2 2
1
0
1
2
2 2
2
2
2
1
2 2
2
2
3
4 4
4
3
4
4 4
3 3
4
4
4 4
3
3 4
4
4
4 4
3
3
2 4
4
4
4 3
3
3
2
1 4
4
4
3 2
2 3
3
3
3
2 4
4
4
4 3
0
1 2
3
3
3
3 4
4
4
4 4
2
1
0 1
3
3
3
3 3
4
4
4 4
3 3
3
2
1 0
2
3
3
3 2
3
4
4 4
3
3 3
3
3
3 2
0
1
2
3 2
3
4
4 4
3
3
3 3
3
3
3 3
1
0
1
2 3
4
4
4 4
3
3
3
3 2
3
3
3 3
2
1
0
1 4
4
4
4 4
3
3
3
2 1
2
3
3 3
3
2
1
0 4
4
4
4 3
2
3
4
4 4
4
4
3 2
2
3
4
4 0
1
2
3 4
3
4
4
4 4
4
4
4 3
3
4
4
4 1
0
1
2 3
4
4
4
4 4
4
4
4 4
4
4
4
4 2
1
0
1 2
4
4
4
4 3
4
4
4 4
4
4
4
4 3
2
1
0 1
4
4
4
3 2
3
4
4 4
4
4
4
3 4
3
2
1 0
4 4
4
3
2 1
2
3
4 4
4
4
3
2 4
4
3
2 1
6 61 6 6 62 6 6 63 6 6 63 6 6 63 6 6 63 6 6 63 6 6 62 6 6 61 6 C e :¼ 6 61 6 6 62 6 6 63 6 6 63 6 6 61 6 6 62 6 6 63 6 6 64 6 6 64 4
0
6 61 6 6 61 6 6 61 6 6 C d :¼ 6 61 6 61 6 6 61 6 6 62 4 2
3
7 47 7 7 47 7 7 37 7 7 27 7 7 17 7 7 27 7 7 37 7 7 47 7 7 47 7 7 47 7 7 47 7 7 37 7 7 27 7 7 47 7 7 47 7 7 37 7 7 27 7 7 17 5 0
2 2
3
7 1 27 7 7 2 17 7 7 2 27 7 7 2 27 7 7 2 27 7 7 2 27 7 7 0 17 5 1 0
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
2
0 61 6 62 6 62 6 62 6 62 6 62 6 6 62 6 62 6 61 6 62 6 62 C f :¼ 6 62 6 62 6 62 6 62 6 6 61 6 62 6 62 6 63 6 63 6 63 6 43 3 2 0 62 6 63 6 62 6 61 C g :¼ 6 62 6 63 6 62 6 41 3
2
0 62 6 61 6 62 6 C i :¼ 6 61 62 6 61 6 41 1
1 0 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 2 0 1 2 1 2 3 2 3 1
2 0 2 1 2 1 2 2 1
2 1 0 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 1 0 1 2 3 3 3 2 2
1 2 0 2 1 2 1 1 1
2 2 1 0 1 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 2 2 1 0 3 3 3 2 1 3
2 1 2 0 2 1 2 2 1
2 2 2 1 0 1 2 2 2 2 2 2 1 2 2 2 2 2 3 3 3 3 3 3 1 1 2 3 0 1 2 3 2 2
1 2 1 2 0 2 1 1 1
2 2 2 2 1 0 1 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 2 2 3 3 1 0 1 2 3 3
2 1 2 1 2 0 2 2 1
2 2 2 2 2 1 0 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 2 1 0 1 2 2
1 2 1 2 1 2 0 1 1
2 2 2 2 2 2 1 0 1 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 2 2 3 2 3 2 1 0 1 1
1 2 1 2 1 2 1 0 1
2 2 2 2 2 2 2 1 0 1 2 2 2 2 2 2 2 2 2 3 3 3 3 3 1 3 2 1 2 3 2 1 0 2
1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 0 1 2 2 2 1 0 1 2 2 2 1 0 2 2 2 2 1 0 1 2 2 2 1 0 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 1 2 3 3 3 2 2 3 3 3 2 2 3 3 3 2 2 3 3 3 2 2 3 3 3 2 1 2 3 3 3 3 2 0 17 7 61 6 27 7 61 7 6 37 62 7 6 27 62 C :¼ h 7 6 37 62 7 6 27 62 7 6 17 41 5 2 2 0 2 0 1 1 61 0 1 6 61 1 0 6 61 1 1 3 6 1 61 1 1 6 17 61 1 1 7 6 17 61 1 1 7 6 17 6 7 61 1 1 17 7Cl :¼ 6 61 2 2 6 17 7 61 1 1 6 17 7 62 2 2 6 15 62 2 2 6 0 61 1 1 6 62 2 2 6 42 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 1 0 1 2 2 3 3 3 3 3 3
2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 0 1 2 3 3 3 3 3 3
1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 0 2 3 3 3 3 3 3
2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 0 3 3 3 3 3 3
2 3 3 3 3 3 3 3 2 1 2 3 3 3 3 3 3 3 0 1 2 2 2 2
3 3 3 3 3 3 3 3 3 2 2 3 3 3 3 3 3 3 1 0 1 2 2 2
3 3 3 3 3 3 3 3 3 2 2 3 3 3 3 3 3 3 2 1 0 1 2 2
1 0 1 1 2 2 2 2 2
1 2 0 2 1 2 1 2 2
2 1 2 0 1 1 2 2 2
2 2 1 1 0 2 2 2 2
2 2 2 1 2 0 1 2 1
2 2 1 2 2 1 0 2 2
1 2 2 2 2 2 2 0 1
1 1 1 0 1 1 1 1 2 1 2 2 1 2 2 2
1 1 1 1 0 1 1 1 2 1 2 2 1 2 2 2
1 1 1 1 1 0 1 1 2 1 2 2 1 1 1 1
1 1 1 1 1 1 0 1 2 1 2 2 1 2 2 2
1 1 1 1 1 1 1 0 2 1 2 2 1 2 2 2
1 2 2 2 2 2 2 2 0 2 1 2 2 3 3 3
1 1 1 1 1 1 1 1 2 0 2 1 1 2 2 2
1465
3 3 3 3 3 3 3 3 3 2 2 3 3 3 3 3 3 3 2 2 1 0 1 2 3 2 27 7 27 7 27 7 27 7 17 7 27 7 15
3 3 3 3 3 3 3 3 3 2 2 3 3 3 3 3 3 3 2 2 2 1 0 1
3 3 37 7 37 7 37 7 37 7 37 7 37 7 7 37 7 37 7 27 7 17 7 27 7 37 7 37 7 37 7 37 7 7 37 7 37 7 27 7 27 7 27 7 27 7 15 0
0 2 2 2 2 2 2 2 2 1 2 0 1 2 3 3 3
2 2 2 2 2 2 2 2 2 1 1 0 2 3 3 3
1 1 1 1 1 1 1 1 2 1 2 2 0 2 2 2
2 2 2 2 2 1 2 2 3 2 3 3 2 0 1 1
2 2 2 2 2 1 2 2 3 2 3 3 2 1 0 1
3 2 27 7 27 7 27 7 27 7 17 7 27 7 7 27 7 37 7 27 7 37 7 37 7 27 7 17 7 15 0
1466
A. Liberati, N.P. Belfiore / Mechanism and Machine Theory 41 (2006) 1443–1466
References [1] K.H. Hunt, Kinematic Geometry of Mechanisms, Clarendon Press, Oxford, 1978, pp. 1–51. [2] J. Phillips, Freedom in Machinery, Cambridge University Press, Cambridge, UK, 1984. [3] M. Shoham, B. Roth, Connectivity in open and closed loop robotic mechanisms, Mechanism and Machine Theory 32 (3) (1997) 279– 293. [4] C.R. Tischler, A.E. Samuel, K.H. Hunt, Kinematic chains for robot hands: Part I orderly number-synthesis, Mechanism and Machine Theory 30 (8) (1995) 1193–1215. [5] C.R. Tischler, A.E. Samuel, K.H. Hunt, Kinematic chains for robot hands: Part II, Kinematic constraints, classification, connectivity, and actuation, Mechanism and Machine Theory 30 (8) (1995) 1217–1239. [6] C.R. Tischler, A.E. Samuel, K.H. Hunt, Selecting multi-freedom multi-loop kinematic chains to suit a given task, Mechanism and Machine Theory 36 (8) (2001) 925–938. [7] N.P. Belfiore, A. Di Benedetto, Connectivity and redundancy in spatial robots, International Journal of Robotics Research 19 (12) (2000) 1245–1261. [8] N.I. Manolescu, Systematisation et Classification des Me`canismes-Moteuplans plans Articule`s, a deux degre`s de mobilite` ‘‘Total’’ et ‘‘Partiel’’, Revue Roumanie des Sciences Techniques, Serie de Mecanique Applique 10 (1965) 999–1018. [9] N.I. Manolescu, I. Tempea, Structural synthesis of plane kinematic chains with multiple joints and five DoF: ‘‘Total, ‘‘Partial’’, ‘‘Fractional’’, Revue Roumanie des Sciences Techniques, Serie de Mecanique Applique 12 (1967) 1117–1140. [10] A. Di Benedetto, E. Pennestrı`, Introduction to Kinematics of Mechanisms, vol.1, Casa Editrice Ambrosiana, Milan, 1993, pp. 2–28. [11] C.W. Marshall, Applied Graph Theory, John Wiley and Sons Inc., New York, 1971, pp. 53–69. [12] T.H. Davies, An extension of Manolescu’s classification of planar kinematic chains and mechanisms of mobility M P 1, using graph theory, Journal of Mechanism 3 (1968) 87–100. [13] T.S. Mruthyunjaya, M.R. Raghavan, Computer-aided analysis of the structure of kinematic chains, Mechanism and Machine Theory 19 (3) (1984) 357–368. [14] N.I. Manolescu, I. Tempea, Structural and kinematic synthesis of plane driving-mechanisms with multiple joints and two degrees of mobility DoF: ‘‘Total’’ and ‘‘Partial’’, Revue Roumanie des Sciences Techniques, Serie de Mecanique Applique 12 (1967) 1251–1275. [15] T.S. Mruthyunjaya, M.R. Raghavan, Structural analysis of kinematic chains and mechanisms based on matrix representation, Trans. ASME J. Mech. Design 101 (1979) 488–494. [16] R. Ravisankar, T.S. Mruthyunjaya, Computerised synthesis of the structure of geared kinematic chains, Mechanism and Machine Theory 20 (5) (1985) 367–387.