A New Algorithm for Unique Representation and Isomorphism Detection of Planar Kinematic Chains with Simple and Multiple Joints

In this work, a new algorithm is proposed for a unique representation for simple and multiple joint planar kinematic chains (KCs) having any degree of freedom (DOF). This unique representation of KCs enhances the isomorphism detection during the structural synthesis process of KCs. First, a new concept of joint degree is generated for all joints of a given KC based on joint configuration. Then, a unified loop array (ULA) is obtained for each independent loop. Finally, a unified chain matrix (UCM) is established as a unique representation for a KC. Three examples are presented to illustrate the proposed algorithm procedures and to test its validity. The algorithm is applied to get a UCM for planar KCs having 7–10 links. As a result, a complete atlas database is introduced for 7–10-link non-isomorphic KCs with simple or/and multiple joints and their corresponding unified chain matrix.


Introduction
The structural synthesis of kinematic chains (KCs) usually starts with an enumeration of all candidates of KCs. During that, KCs should be represented in such a way to facilitate the synthesis process. The structural representation of KCs may be classified into graphical or numerical methods. Then, isomorphism detection is to be performed to exclude isomorphic KCs. Consequently, many techniques are available for isomorphism detection in KCs with either simple or multiple joints.
The matrix representation for the structural synthesis of both single and two degrees of freedom of simple-jointed chains was used by Mruthyunjaya and Balasubramanian [1][2][3]. They also used the characteristic polynomial of the degree matrix of the corresponding graph to detect the isomorphism of simple-jointed KCs up to 10 links with one, two and three degrees of freedom (DOF). Jin-Kui and Wei-Qing [4] proposed the concept of a link's adjacent-chain table to detect the topological relationships between links and isomorphism in KCs. Summation polynomials for isomorphism detection in single freedom and multi-DOF planar KCs were introduced by Shende and Rao [5]. A computer-aided method, based on the concept of multiplicity distance, was presented by Yadav et al. [6] for detecting isomorphism among planar binary KCs. Rao et al. [7,8] used fuzzy logic and chain loop string to investigate isomorphism among planar KCs with simple joints. The concept of links labeling to detect isomorphism in simple and multiple-joint KCs and epicyclic gear trains with 4-6 links. A molecular topological index was proposed by Deng et al. [41] to identify isomers in KCs as used in organic chemistry. Therefore, the adjacency identification index, which fits for the isomorphism detection of KCs, was detected. This method was applied to all 230 ten-bar one DOF KCs. Li et al. [42] used a combinatorial graph to represent geared linkage kinematic chains (GLKCs). Then, the powers of a combinatorial matrix were used to detect isomorphism in GLKCs. Chu. et al. [43,44] introduced a new representation for mechanisms using a double color graph (DCG) that was applied for the structural synthesis of planar 10-link three DOF simple and multiple-joint KCs.
From the above literature, isomorphism detection is still a challenge in the mechanism synthesis process. Graphical and numerical techniques were investigated. The best of these techniques include complicated mathematical concepts based on link-adjacency matrices or their modifications. In this work, a simple method is presented for the unique representation of KCs that facilitate isomorphism detection among KCs. This paper will be discussed in four main parts: (1) basic definitions, (2) algorithm procedures, (3) examples to validate the algorithm and (4) results and conclusion.

Basic Definitions
Definition 1. Topological structure of KCs: a schematic representation of KCs that include (1) the number and type of joints. (2) Number and type of links (such as binary, ternary, quaternary or quinary links). (3) Connection relations among these joints and links, as shown in Figure 1. These KCs may have open or closed loops. Topological graphs of KCs can be categorized into planar and nonplanar graphs. A planar graph can be drawn in the plane without edge crossing, whereas a nonplanar graph contains at least one edge crossing [45]. In this work, the KCs of planar graphs with closed loops were considered, as shown in Figure 1.
Processes 2021, 9, x FOR PEER REVIEW 3 of 45 joint KCs of single and multi-DOF. Then, a maximum binary code was presented based on links labeling to detect isomorphism in simple and multiple-joint KCs and epicyclic gear trains with 4-6 links. A molecular topological index was proposed by Deng et al. [41] to identify isomers in KCs as used in organic chemistry. Therefore, the adjacency identification index, which fits for the isomorphism detection of KCs, was detected. This method was applied to all 230 ten-bar one DOF KCs. Li et al. [42] used a combinatorial graph to represent geared linkage kinematic chains (GLKCs). Then, the powers of a combinatorial matrix were used to detect isomorphism in GLKCs. Chu. et al. [43,44] introduced a new representation for mechanisms using a double color graph (DCG) that was applied for the structural synthesis of planar 10-link three DOF simple and multiple-joint KCs. From the above literature, isomorphism detection is still a challenge in the mechanism synthesis process. Graphical and numerical techniques were investigated. The best of these techniques include complicated mathematical concepts based on link-adjacency matrices or their modifications. In this work, a simple method is presented for the unique representation of KCs that facilitate isomorphism detection among KCs. This paper will be discussed in four main parts: (1) basic definitions, (2) algorithm procedures, (3) examples to validate the algorithm and (4) results and conclusion.  [45]. In this work, the KCs of planar graphs with closed loops were considered, as shown in Figure 1.

Definition 2.
Simple and Multiple joints: a simple joint is formed when two links are connected together. As shown in Figure 1, joints a-c,e-j) are simple joints. Multiple joints are formed when more than two links are connected together. Joint (d) in Figure 1 is a multiple joint that connects three binary links-namely, links 3-5. Definition 3. Independent loop: any closed path through a KC in which no link or joint is encountered more than once. Moreover, an independent loop should not contain internal loops or link crossing. For the KC shown in Figure 1, loop (1) is formed by the connection of links (1, 2, 3, 5, 7 and 9). In other words, loop (1) is formed by joints (b-d,h-j) So that, loop of a KC represents the connectivity among its links.

Definition 2.
Simple and Multiple joints: a simple joint is formed when two links are connected together. As shown in Figure 1, joints a-c,e-j) are simple joints. Multiple joints are formed when more than two links are connected together. Joint (d) in Figure 1 is a multiple joint that connects three binary links-namely, links 3-5.

Proposed Algorithm Steps
The proposed method for the generation of a unique representation of a KC depends on (1) the number of independent loops that form a KC and (2) the joint configuration. The algorithm can be summarized in the following steps: Step 1 Modified Link Assortment Array (LAA): Number and type of links forming a KC with specified DOF are defined as a link assortment [46]. The modified link assortment array (LAA) of a N-link KC with any -DOF KC is given by: where N, N B , N T , N Q and N P are the number of total, binary, ternary, quaternary and quinary links in the KC, respectively.
Step 2 Joint Assortment Array (JAA) Type and number of joints connecting different links in a KC are defined as a joint assortment array [47]. The joint assortment array (JAA) of an N-link KC with any DOF is given by: where J t , S and M are the total number of joints, number of simple joints and number of multiple joints in the KC, respectively.

Definition 5.
Degree of Freedom (F) of a planar KC: describes the relation between F (DOF), N (number of links) and J (number of simple joints). Therefore, referring to the Grübler equation, the DOF is given by [48].
Step 3 Independent loop Definition 6. Independent loop: the inner loop of a KC inside which there is no other closed loop. Planar KCs satisfy the equation where: L, N and F are, respectively, the number of independent loops, number of links and number of DOF [44]. For most planar KCs, independent loops can be determined by visual inspection. Each independent loop must contain at least one joint that does not appear in other loops. However, each joint must appear in at least one of the independent loops. The number of independent loops is a significant factor in KC representation, as it indicates the number of rows in the generated matrix illustrated in step 7.
Step 4 Joint Degree (JD) Joints between links in a KC may be simple or multiple. The joint symbol can be detected according to type of connected link at this joint. Definition 7. Joint Symbol: an abbreviation code derived from the first letters of links types that are connected at the considered joint. Definition 8. Joint Degree (JD): a numerical value for each joint in a KC that can be generated based on joint type and its connectivity. Table 1 indicates joint degrees for simple and multiple joints with the most commonly used types of connection. Hence, all joints in the considered KC can be defined by their degrees. As illustrated in Table 1, joints are classified into simple and multiple joints formed by three links and multiple ones formed by four links. For the KC shown in Figure 1, the loops (1 and 2) can be analyzed to generate their joint symbols and joint degrees. This will be based on the values of joint degrees (JD) extracted from Table 1, as shown in Figure 2. For the KC shown in Figure 1, the loops (1 and 2) can be analyzed to generate their joint symbols and joint degrees. This will be based on the values of joint degrees (JD) extracted from Table 1, as shown in Figure 2.  Joint degrees sequence in JDA is usually in a clockwise direction starting from any joint degree. Therefore, the same loop may have more than one JDA depending on the starting joint. For loop (1) in KC shown in Figure 2, JDA can be expressed as [1,2,2,3,3,11] starting from joint "d" or [1,2,2,3,3,11] starting from joint "b", etc. However, the arrangement of joint degrees inside the array must be unified to ensure that a similar loop must generate the same array.
Step 6 Unified Loop Array (ULA): In order to enhance the reliability of the joint degree array, it is important to have a unified loop joint degree array regardless the starting joint. In other words, each loop should have a unique array. A MATLAB code [49] was established to rearrange the elements of the joint degree array to start from a specific joint degree and continue in a specific loop direction. This arrangement depends on the concept of the "master joint" and "neighbor joint", as described below.

Definition 10.
Master joint: a joint that has the least joint degree (JD) in a certain loop. Generally, each loop may contain single master joint or multiple master joints.
Case 1: Single master joint: For a given loop, all joint degrees can be determined according to the Table 1. If there is a single master joint, a unified loop array, "ULA" can be generated as follows:

1.
Select the master joint in the given loop.

2.
Compare joint degrees of the 1st neighbor joints on both sides of the master joint and select the least value.

3.
ULA starts from the master joint and continues in the direction of the selected neighbor joint. In Figure 3a, the shown loop has a single master joint of JD = 1. The least 1st neighbor joint has JD = 3. Therefore, the given loop has ULA = [1 3 5 3 2 3 2 4].

4.
If the 1st neighbor joint degrees are similar, then compare between the 2nd neighbor joints. Therefore, the ULA will be continued in direction of the least 2nd neighbor joint degree starting from the master joint. In Figure 3b, the given loop has ULA = [1 3 2 3 2 3 4 3].

5.
If the 2nd neighbor joint degree is similar, then compare between the 3rd neighbor joints and so on. Then, "ULA" will be continued in direction of the least 3rd neighbor joint degree starting from the master joint. In Figure 3c, the given loop has ULA = [1 3 2 3 2 4 2 3].

Definition 9. Joint Degree Array (JDA): is an initial array for a certain loop in a KC. The elements of JDA are represented by joint degrees of joints forming the considered loop. Therefore, Joint Degree Array (JDA) for a loop-i that has joints (a, b, c, d, …) is given by:
Joint degrees sequence in JDA is usually in a clockwise direction starting from any joint degree. Therefore, the same loop may have more than one JDA depending on the starting joint. For loop (1) in KC shown in Figure 2, JDA can be expressed as [11,1,2,2,3,3] starting from joint "d" or [2,2,3,3,11,1] starting from joint "b", etc. However, the arrangement of joint degrees inside the array must be unified to ensure that a similar loop must generate the same array.
Step 6. Unified Loop Array (ULA): In order to enhance the reliability of the joint degree array, it is important to have a unified loop joint degree array regardless the starting joint. In other words, each loop should have a unique array. A MATLAB code [49] was established to rearrange the elements of the joint degree array to start from a specific joint degree and continue in a specific loop direction. This arrangement depends on the concept of the "master joint" and "neighbor joint", as described below.

Definition 10. Master joint: a joint that has the least joint degree (JD) in a certain loop. Generally, each loop may contain single master joint or multiple master joints.
Case 1: Single master joint: For a given loop, all joint degrees can be determined according to the Table 1. If there is a single master joint, a unified loop array, "ULA" can be generated as follows: 1. Select the master joint in the given loop. 2. Compare joint degrees of the 1st neighbor joints on both sides of the master joint and select the least value. 3. ULA starts from the master joint and continues in the direction of the selected neighbor joint. In Figure 3a, the shown loop has a single master joint of JD = 1. The least 1st neighbor joint has JD = 3. Therefore, the given loop has ULA = [1 3 5 3 2 3 2 4]. 4. If the 1st neighbor joint degrees are similar, then compare between the 2nd neighbor joints. Therefore, the ULA will be continued in direction of the least 2nd neighbor joint degree starting from the master joint. In Figure 3b, the given loop has ULA = [1 3 2 3 2 3 4 3]. 5. If the 2nd neighbor joint degree is similar, then compare between the 3rd neighbor joints and so on. Then, "ULA" will be continued in direction of the least 3rd neighbor joint degree starting from the master joint. In Figure 3c, the given loop has ULA = [1 3 2 3 2 4 2 3]. Case 2: Multiple master joints For a given loop, all joint degrees can be determined according to Table 1. In this case, multiple master joints can be detected in the same loop so that the ULA can be generated as follows: 1.
Check each master joint for its 1st-neighbor joint degrees.

2.
If there is one master joint that has the least 1st-neighbor joint degree, then the ULA for this loop will be continued in direction of that least 1st-neighbor joint degree starting from its associated master joint. In Figure 4, the given loop has a master joint of JD = 2 (indicated by yellow in Figure 4), and its 1st-neighbor joint has JD = 3, which is the least value of joint degrees among all 1st-neighbor joints for all master joints. Hence, ULA = [2 3 4 4 2 5].  Case 2: Multiple master joints For a given loop, all joint degrees can be determined according to Table 1. In this case, multiple master joints can be detected in the same loop so that the ULA can be generated as follows: 1. Check each master joint for its 1st-neighbor joint degrees. 2. If there is one master joint that has the least 1st-neighbor joint degree, then the ULA for this loop will be continued in direction of that least 1st-neighbor joint degree starting from its associated master joint. In Figure 4, the given loop has a master joint of JD = 2 (indicated by yellow in Figure 4), and its 1st-neighbor joint has JD = 3, which is the least value of joint degrees among all 1st-neighbor joints for all master joints. Hence, ULA = [2 3 4 4 2 5]. 3. If the least 1st-neighbor joint degrees are equal in all master joints, check each master joint for its 2nd-neighbor joint degree and select the least 2nd-neighbor joint degree. Hence, the ULA will be continued in the direction of the least 2nd-neighbor joint degree starting from its associated master joint, indicated by yellow in Figure 5, therefore, the given loop has ULA = [2 3 3 4 2 3 4 5]. 4. If the least 2nd-neighbor joint degrees are equal in all master joints, check each master joint for its 3rd-neighbor joint degree and select the least 3rd-neighbor joint degree. Hence, the ULA will be continued in direction of the least 3rd-neighbor joint degree starting from its associated master joint, indicated by yellow in Figure 6, therefore, the given loop has ULA = [2 3 2 4 3 4 2 5].

3.
If the least 1st-neighbor joint degrees are equal in all master joints, check each master joint for its 2nd-neighbor joint degree and select the least 2nd-neighbor joint degree. Hence, the ULA will be continued in the direction of the least 2nd-neighbor joint degree starting from its associated master joint, indicated by yellow in Figure 5, therefore, the given loop has ULA = [2 3 3 4 2 3 4 5].
Processes 2021, 9, x FOR PEER REVIEW 7 of 45 Case 2: Multiple master joints For a given loop, all joint degrees can be determined according to Table 1. In this case, multiple master joints can be detected in the same loop so that the ULA can be generated as follows: 1. Check each master joint for its 1st-neighbor joint degrees. 2. If there is one master joint that has the least 1st-neighbor joint degree, then the ULA for this loop will be continued in direction of that least 1st-neighbor joint degree starting from its associated master joint. In Figure 4, the given loop has a master joint of JD = 2 (indicated by yellow in Figure 4), and its 1st-neighbor joint has JD = 3, which is the least value of joint degrees among all 1st-neighbor joints for all master joints.  3. If the least 1st-neighbor joint degrees are equal in all master joints, check each master joint for its 2nd-neighbor joint degree and select the least 2nd-neighbor joint degree. Hence, the ULA will be continued in the direction of the least 2nd-neighbor joint degree starting from its associated master joint, indicated by yellow in Figure 5, therefore, the given loop has ULA = [2 3 3 4 2 3 4 5]. 4. If the least 2nd-neighbor joint degrees are equal in all master joints, check each master joint for its 3rd-neighbor joint degree and select the least 3rd-neighbor joint degree. Hence, the ULA will be continued in direction of the least 3rd-neighbor joint degree starting from its associated master joint, indicated by yellow in Figure 6

4.
If the least 2nd-neighbor joint degrees are equal in all master joints, check each master joint for its 3rd-neighbor joint degree and select the least 3rd-neighbor joint degree. Hence, the ULA will be continued in direction of the least 3rd-neighbor joint degree starting from its associated master joint, indicated by yellow in Figure 6, therefore, the given loop has ULA = [2 3 2 4 3 4 2 5]. 5. If there exist multiple consequent master joints, check the 1st-neighbor joint degree of the first and last master joints. If they are equal, check the 2nd-neighbor joint degree for the first and the last master joints. Therefore, the ULA will be continued in the direction of the least neighbor joint degree starting from the outmost master joint. As shown in Figure 7a, the given loop has ULA = [2 2 2 4 3 4 2 5]. 6. If all joints in a certain loop are master joints, then the ULA will start from any joint degree and continue in a clockwise direction. As shown in Figure 7b, the given loop has ULA = [2 2 2 2 2 2 2 2]. Moreover, all previous steps are included in the developed MATLAB code to obtain the unified loop array for a given loop. General rules for both cases of single and multiple master joints, as illustrated in Figure 8, are utilized to establish the MATLAB code, as shown in Algorithms 1 and 2.

5.
If there exist multiple consequent master joints, check the 1st-neighbor joint degree of the first and last master joints. If they are equal, check the 2nd-neighbor joint degree for the first and the last master joints. Therefore, the ULA will be continued in the direction of the least neighbor joint degree starting from the outmost master joint. As shown in Figure 7a, the given loop has ULA = [2 2 2 4 3 4 2 5]. 6.
If all joints in a certain loop are master joints, then the ULA will start from any joint degree and continue in a clockwise direction. As shown in Figure  5. If there exist multiple consequent master joints, check the 1st-neighbor joint degree of the first and last master joints. If they are equal, check the 2nd-neighbor joint degree for the first and the last master joints. Therefore, the ULA will be continued in the direction of the least neighbor joint degree starting from the outmost master joint. As shown in Figure 7a, the given loop has ULA = [2 2 2 4 3 4 2 5]. 6. If all joints in a certain loop are master joints, then the ULA will start from any joint degree and continue in a clockwise direction. As shown in Figure 7b, the given loop has ULA = [2 2 2 2 2 2 2 2]. Moreover, all previous steps are included in the developed MATLAB code to obtain the unified loop array for a given loop. General rules for both cases of single and multiple master joints, as illustrated in Figure 8, are utilized to establish the MATLAB code, as shown in Algorithms 1 and 2. Moreover, all previous steps are included in the developed MATLAB code to obtain the unified loop array for a given loop. General rules for both cases of single and multiple master joints, as illustrated in Figure 8, are utilized to establish the MATLAB code, as shown in Algorithms 1 and 2.     Step 7 Unified chain matrix (UCM) After generating the ULA for all loops, the whole chain can be represented by the unified chain matrix.
Definition 11. Unified chain matrix: a unique V × K matrix representing a given KC where V is the number of loops forming the considered KC, and K is the number of joints in the largest loop size.
However, the first row represents the ULA for the 1st loop, and the second row represents the ULA for the 2nd loop, etc. Any missing elements are represented as zero elements in the unified chain matrix.

Uni f ied Chain Matrix
Using the unified chain matrix, a complete atlas database is established for planar 7, 8, 9 and 10-links KCs with simple and multiple joints (given in Appendix A).
Step 8 Isomorphism Detection Isomorphism detection is the most important step in the structural synthesis of KCs. Isomorphic KCs are structurally identical chains that should be detected so as not to duplicate the enumeration or synthesis results. A reliable isomorphism detection process can be carried out using the UCM. Therefore, the previous algorithm can be applied to any planar KC. Different configurations of a KC should generate the same UCM. In other words, all configurations are isomorphic KCs.

Algorithm Validation Tests
In this section, some examples are given to illustrate the algorithm clearly with more detail and to test its validity. The selected examples present KCs with different DOF and different types of joints, either simple or multiple. Therefore, the previous algorithm can be applied to any planar KC. Different configurations of a KC should generate the same UCM. In other words, all configurations are isomorphic KCs.

Algorithm Validation Tests
In this section, some examples are given to illustrate the algorithm clearly with more detail and to test its validity. The selected examples present KCs with different DOF and different types of joints, either simple or multiple.

Example One: 11-Link KCs of Two DOF with Simple Joints
Consider a pair of 11-link simple-joint KCs with two DOF, shown in Figure 9a,b. The link assortment array (LAA) and joint assortment array (JAA) for KCs shown in Figure 9a,b are illustrated in Table 2. Table 2. Link Assortment Array and Joint Assortment Array for kinematic chains in Figure 9. The link assortment array (LAA) and joint assortment array (JAA) for KCs shown in Figure 9a,b are illustrated in Table 2. Table 2. Link Assortment Array and Joint Assortment Array for kinematic chains in Figure 9. The joint degree for all joints of each KC can be determined according to Table 1 based on the joint type and its associated connected links. The joint degrees for the KCs shown in Figure 9a,b are listed in Table 3. Furthermore, Figure 9 illustrates all the joint labels and their corresponding joint degrees. The number of independent loops for each KC is IL = J − N + 1 = 14 − 11 + 1 = 4. Therefore, there are four independent loops besides the peripheral loop. Hence, both KCs have five loops. The joint degrees are then detected for each loop. However, the initial joint degree array (JDA) for each loop can be obtained. Then, the unified loop array (ULA) for each loop is generated, as shown in Table 4, using the MATLAB code. Master joint.

Kinematic Chain (a) Kinematic Chain (b)
The unified chain matrix for each KC is derived as shown in Figure 10. However, there is no complete correspondence in both matrices. Therefore, the two KCs in Figure 9a,b are not isomorphic. Master joint.
The unified chain matrix for each KC is derived as shown in Figure 10. However, there is no complete correspondence in both matrices. Therefore, the two KCs in Figure  9a,b are not isomorphic.

Example Two: Eight-Link KCs of One DOF with Two Multiple Joints
Consider a pair of eight-link KCs of one DOF with one multiple joint, shown in Figure 11a,b.

Example Two: Eight-Link KCs of One DOF with Two Multiple Joints
Consider a pair of eight-link KCs of one DOF with one multiple joint, shown in Figure 11a,b.

Example Two: Eight-Link KCs of One DOF with Two Multiple Joints
Consider a pair of eight-link KCs of one DOF with one multiple joint, shown in Figure 11a,b. The link assortment array (LAA) and joint assortment array (JAA) for the KCs shown in Figure 11a,b are illustrated in Table 5. Table 5. Link Assortment Array and Joint Assortment Array for kinematic chains in Figure 11a The link assortment array (LAA) and joint assortment array (JAA) for the KCs shown in Figure 11a,b are illustrated in Table 5. Table 5. Link Assortment Array and Joint Assortment Array for kinematic chains in Figure 11a The joint degree for all joints of each KC can be determined according to Table 1 based on the joint type and its associated connected links. The joint degrees for the KCs shown in Figure 11a,b are listed in Table 6. Furthermore, Figure 11 illustrates all the joint labels and their corresponding joint degrees. Table 7. Unified Joint Degree Array for KCs in Figure 11a,b.
The unified chain matrix for each KC is derived as shown in Figure 12. However, there is no complete correspondence in both matrices. Therefore, the two KCs in Figure 11a,b are not isomorphic.

Example Three: 15-Link KCs of Four DOF with Simple Joints
Consider a pair of 15-link simple joints KCs with four DOF, shown in Figure 13a,b.   The link assortment array (LAA) and joint assortment array (JAA) for the KCs shown in Figure 13a,b are illustrated in Table 8. Furthermore, Figure 13 illustrates all the joint labels and their corresponding joint degrees. Table 8. Link Assortment Array and Joint Assortment Array for kinematic chains in Figure 13. The joint degree for all joints of each KC can be determined according to Table 1 based on the joint type and its associated connected links. The joint degrees for the KCs shown in Figure 13a,b are listed in Table 9. Furthermore, Figure 13 illustrates all the joint labels and their corresponding joint degrees. Table 9. Values of Joint degrees for kinematic chains in Figure 13a The link assortment array (LAA) and joint assortment array (JAA) for the KCs shown in Figure 13a,b are illustrated in Table 8. Furthermore, Figure 13 illustrates all the joint labels and their corresponding joint degrees. Table 8. Link Assortment Array and Joint Assortment Array for kinematic chains in Figure 13. The joint degree for all joints of each KC can be determined according to Table 1 based on the joint type and its associated connected links. The joint degrees for the KCs shown in Figure 13a,b are listed in Table 9. Furthermore, Figure 13 illustrates all the joint labels and their corresponding joint degrees.

Kinematic Chain (a) Kinematic Chain (b)
The number of independent loops for each KC is IL = J − N + 1 = 19 − 15 + 1 = 5. Therefore, there are five independent loops besides the peripheral loop. Hence, both KCs have six loops. The joint degrees are then calculated for each loop. However, the initial joint degree array (JDA) for each loop can be obtained. Then, the unified joint array (ULA) for each loop is generated, as shown in Table 10. Table 9. Values of Joint degrees for kinematic chains in Figure 13a,b.  The unified chain matrix for each KC is generated as shown in Figure 14. However, each row in the unified joint degree matrix of Figure 14a has a corresponding row in the unified joint degree of Figure 14b. Therefore, the two KCs in Figure 13 are isomorphic. Master joint.
The unified chain matrix for each KC is generated as shown in Figure 14. However, each row in the unified joint degree matrix of Figure 14a has a corresponding row in the unified joint degree of Figure 14b. Therefore, the two KCs in Figure 13 are isomorphic.

Results
The proposed algorithm was successfully applied to detect isomorphic KCs during the structural synthesis of the mechanisms. Two or more KCs are said to be isomorphic if they have the same UCM. For any planar KC with single or multiple DOF, a unified chain matrix can be obtained based on the independent loop and unified loop array. The ULA are generated for each independent loop based on the joint degree concept using the developed MATLAB code. The proposed method was applied to the most common planar KCs of 7-10 links with simple or multiple joints. As a result, a complete atlas for 7-10 links of KCs and their corresponding UCM was constructed up to five independent loops. The selected types of KCs are various in DOF and a number of multiple joints to ensure the algorithm validity. Almost all of the presented KCs have no edge crossing that facilitate independent loop detection. Three examples were presented for the generation of the unified chain matrix and isomorphism detection in 8, 11 and 15-link KCs. The examples and constructed atlas verified that using the UCM is a simple and effective tool in the isomorphism detection process. The developed atlas is presented in Figures A1-A8

Conclusions
A new method to represent planar KCs was developed in this paper. The joint degree (JD) was introduced to represent all joints in a KC. Then, a MATLAB code was established to obtain the unified loop array (ULA) for each independent loop. Therefore, a unified chain matrix was generated to represent the considered KC. The proposed method was successfully tested for all KCs up to five independent loops. This algorithm was applied

Results
The proposed algorithm was successfully applied to detect isomorphic KCs during the structural synthesis of the mechanisms. Two or more KCs are said to be isomorphic if they have the same UCM. For any planar KC with single or multiple DOF, a unified chain matrix can be obtained based on the independent loop and unified loop array. The ULA are generated for each independent loop based on the joint degree concept using the developed MATLAB code. The proposed method was applied to the most common planar KCs of 7-10 links with simple or multiple joints. As a result, a complete atlas for 7-10 links of KCs and their corresponding UCM was constructed up to five independent loops. The selected types of KCs are various in DOF and a number of multiple joints to ensure the algorithm validity. Almost all of the presented KCs have no edge crossing that facilitate independent loop detection. Three examples were presented for the generation of the unified chain matrix and isomorphism detection in 8, 11 and 15-link KCs. The examples and constructed atlas verified that using the UCM is a simple and effective tool in the isomorphism detection process. The developed atlas is presented in Figures A1-A8 (given in Appendix A). The detailed results are listed below: 18 eight links of one DOF KCs with two multiple joints 22 eight links of one DOF KCs with one multiple joint five seven links of two DOF KCs with one and two multiple joints 40 nine links of two DOF KCs with simple joints four seven links of two DOF KCs with simple joints 83 nine links of two DOF KCs with one multiple joint 16 eight links of one DOF KCs with simple joints 219 ten links of one DOF KCs (without edge crossing) with simple joints

Conclusions
A new method to represent planar KCs was developed in this paper. The joint degree (JD) was introduced to represent all joints in a KC. Then, a MATLAB code was established to obtain the unified loop array (ULA) for each independent loop. Therefore, a unified chain matrix was generated to represent the considered KC. The proposed method was successfully tested for all KCs up to five independent loops. This algorithm was applied to planar KCs having single or multiple DOF with either simple or multiple joints. A complete atlas database was introduced for non-isomorphic 7, 8, 9 and 10-link KCs with simple or/and multiple joints with their corresponding UCM. Furthermore, isomorphic KCs can be easily identified using UCM. Some examples were presented for isomorphism detection in planar KCs. It was proven that the proposed method is a reliable approach to represent and detect isomorphism among KCs having closed planar graphs without edge crossing. In future works, KCs with edge crossing should be investigated. The proposed algorithm can also be extended to be applied for geared and spatial KCs. A MATLAB graphical user interface may be developed, including all algorithm steps, to facilitate the input and output data for users. Processes 2021, 9, x FOR PEER REVIEW 21 of 45 Figure A2. Unified chain matrix, UCM, for all 8 links 1-DOF KCs with 1 multiple joint [25].    [40]. Figure A3. Unified chain matrix, UCM, for all 7 links 2-DOF KCs with 1, 2 multiple joints [40]. Processes 2021, 9, x FOR PEER REVIEW 30 of 45 Figure A6. Unified chain matrix, UCM, for all 9-links of 2-DOF KCs with 1-multiple joint [25].