Comparison Between Newton-Euler and Automatic ... - IEEE Xplore

3 downloads 0 Views 2MB Size Report
Comparison Between Newton-Euler and Automatic. Separation Method for SCARA Dynamic Modeling. Ana Djuric. Engineering Technology, Wayne State ...
Comparison Between Newton-Euler and Automatic Separation Method for SCARA Dynamic Modeling Ana Djuric

Mirjana Filiovic

Engineering Technology, Wayne State University Detroit, MI, U.S.A. [email protected]

Mihajlo Pupin Institute, University of Belgrade Belgrade, Serbia [email protected]

Vukica Jovanovic, IEEE Senior Member

Ljubinko Kevac

Engineering Technology, Old Dominion University Norfolk, VA, U.S.A. [email protected]

Innovation center, School of Electrical Engineering, University of Belgrade, Belgrade, Serbia [email protected]

Abstract—Dynamic modeling of robotic systems is always a challenge, not only because of the calculation complexity, but also because of the difficulties in separating basic elements of the system mass matrix, matrix of Coriolis torques, matrix of centrifugal torques, and the matrix of gravity torques. Automatic Separation Method (ASM) is applied and compared with the traditional Newton-Euler (N-E) recursive procedure using the SCARA robotic system with three Degrees of Freedom (3 DOF). In the comparison of the two methods, it is significant that using the N-E method will require additional computing time and effort to manually separate metrics elements, while the ASM takes no time to achieve the same result. The benefits of ASM can be important for more complex robotic systems, such as industrial robots with 6 or 7 DOF. The results achieved by ASM can be easily written in the form that the N-E recursive procedure delivers, but vice versa is very hard. Keywords—SCARA, robotic systems, recursive modeling, Newton-Euler, Automatic Separation complexity

I.

dynamic Method,

INTRODUCTION

The rigid body dynamic structures of multi degree of freedom robotic systems are important in defining performance boundaries and controlling circumstances. The main purpose of developing a mathematical model that explains dynamics of such a mechanism is to get direct and inverse dynamic equations, which are essential for analysis of robotic mechanisms and their control parameters. Two well-known procedures for multi-DOF robotic systems dynamics calculations (equations of motion) are the Lagrange-Euler (LE) and Newton-Euler (N-E) formulations [1]. The L-E procedure is based on scalar quantities of kinetic and potential energy, while N-E uses Cartesian coordinate systems. The L-E procedure minimizes the need for complex vector equations. Furthermore, the L-E procedure has other deficiencies related to the fact that some coordinates have to be generalized at the beginning. If a discrepancy happens then the resulting

978-1-5090-2246-5/16/$31.00 ©2016 IEEE

differential equations will not match the physical system [2]. Moreover, another downside of the L-E procedure is that it is not completely accurate when it comes down to the mathematical operations used to calculate N-E equations [3]. More assessment of different methods for developing dynamic equations for robotic systems is presented in DH parameters and can be calculated for a more accurate mathematical algorithm, which would better describe dynamics of the given robotic mechanism [4, 5], and accomplish efficient algorithm calculations. In this way, the Automatic Separation Method (ASM) is applied for the purpose of a more accurate dynamical mathematical model, as early as possible in the mathematical model because every segment in the matrix that is described by dynamics has to be separated [6]. To demonstrate benefits of the ASM and compare it with the N-E traditional recursive procedure, the SCARA robotic system has been used. A. Review of Dynamic Equations of Mutibody Sytem The n-DOF robotic manipulator base mathematical equation is shown in Equation (1).  A(q)q  B(q)[qq ]  C(q)[q 2 ]  G(q)   (1) Matrix A is n n matrix, which describes inertial dynamics components of a given system, B is the n 1

n   (n  i ) , Coriolis torque matrix, C is the n n i 1

centrifugal torque matrix, and G is a n 1 gravity torque vector. The mathematical expression q for generalized joint coordinates: q  q1 q2  qn T . Vectors q is joint velocity. Acceleration vector is q . These two multiplied are

given with the vector [qq ] , as shown in the following equation: [qq ]  q1q2 q1q3  q1qn  qn 1qn  . Hence, a squared velocity is shown with the following vector: [q 2 ]  q12 q22  qn2 The Recursive Newton-Euler (RNE) algorithm coupled with the mathematical methodology Automatic Separation Method (ASM), were used to develop the mathematical model of the robot described in this study (a SCARA robot). The Equation (1) for the SCARA robot has the following form. See Equation (2).



 a11 a  21 a 31

a12 a 22 a 32



a13   1  b112 a 23   2   b212 a 33   d3  b312

II.

b113 b213 b313

b123  1 2   c11 b223  1 d3   c 21 b323   2 d3  c 31

c12 c 22 c 32

c13  12   G1   1     c 23   22   G 2    2  c 33   d 32  G3   3   

cos  2  sin  2 1 A2    0   0

KINEMATIC MODELING OF SCARA ROBOT MANIPULATOR

The kinematic diagram for the SCARA robot manipulator is graphically presented in Fig. 1. The first two joints are rotational, while the third joint is translational. According to the joint types their joint variables are: q1  1 , q2   2 , and

q3  d3 , where 1 and  2 represent related joints angular displacements, and d 3 is linear displacement of the third joint. a1

a2

z1

2 y1

m1

x1

x2

m2 z2

y2

d3

m3 d1

z0

x0

1

0

z3

y0



The D-H parameters for the SCARA robot manipulator are given in Table 1. Where:  d i is Link offset along previous z-axis to the common normal,   i is Joint angle about z-axis, from old x-axis to new xaxis,  ai - Link length of the common normal, and

 i is Twist angle about common normal, from old z-

III.

1

ai

i

Joint Type

1

d1

0 d3

a1 a2

Rotational

2

1 2



3

0



0

0 180 0

Rotational Translational

A3 0A11 A2 2 A3 7)

DYNAMIC MODELING OF SCARA ROBOT MANIPULATOR

To start the calculation of the dynamic equation for the SCARA robot, the following information has been provided:  The upper 3X 3 sub matrices of each homogeneous transformation matrices represent the related rotational matrices for each joint, and they are shown in Equation (9-11).

D-H PARAMETERS FOR SCARA ROBOT MANIPULATOR

di

0 a2 cos  2  0 a2 sin  2  5)  1 0  0 1 

0 a1 cos1  a 2 cos1   2  cos1   2  sin1   2   sin     cos    0 a sin   a sin     1 2 1 2 1 1 2 1 2  8) 0 A3     0 0 1 d1  d 3   0 0 0 1  

axis to new z-axis. TABLE I. Link i

sin  2 cos  2 0 0

1 0 0 0  0 1 0 0  2  6) A3   0 0 1 d 3    0 0 0 1  The direct kinematic of the SCARA robot can be found by multiplying all homogeneous transformation matrices from the base frame to the end-effector frame. See Equation (7) and (8).

L

x3

y3

g

Fig. 1. SCARA Kinematic diagram



The general homogeneous transformation matrix is show in Equation (3). sin i sin i ai cos i  cos i  cos i sin i  sin cos i cos i  sin i cos i ai sin i  i i 1 Ai   3)  0 sin i cos i di    0 0 1   0 Using the Equation (3) and Table 1, the following homogeneous matrices for the SCARA robot has been generated. See Equations (4-6). cos1  sin1 0 a1 cos1   sin cos1 0 a1 sin1  1 0 A1   4)  0 0 1 d1    0 0 1   0

0

cos1 R1   sin 1  0

 sin 1 0 cos1 0 9) 0 1

1

cos 2 R2   sin 2  0

sin  2 cos 2 0

0 0  10)  1

1 0 0 2 R3  0 1 0 11) 0 0 1  The next step is to find the transpose of all rotational matrices: (0R1)T , (1R2 )T , and ( 2R3 )T .  The upper right 3X 1 sub matrices for each homogeneous transformation matrices represent the position vectors for each joint, and is stated in Equation (12).

0

a1 cos1  a2 cos 2  0     1 2 P1   a1 sin1   P2   a2 sin 2   P3   0  12)  0   d1  d 3 

 The linear and angular velocity vectors and acceleration vectors for each joint are shown in Equations (13-16), respectfully.

0

0  0  0     1 2   P1  0 P2  0 P3   0  0 0 d3    

 0.5a1   0.5a2   0      Pc1   0   Pc 2   0   Pc3   0    0   0   0.5L  Using presented information, the dynamic model for the SCARA robot can be calculated. Using the traditional N-E recursive method, the torques for rotational Joint 1 and 2, and force for translational Joint 3, can be calculated. The resultant torques and force will include the inertia torque/force, Coriolis torque/force, centrifugal torque/force, and gravity torque/force elements mixed together. To be able to express the dynamic equation in the form of Equation (2), the elements of the matrices A, B, C, and G must be manually separated. For simple systems it is not a problem, but for complex systems it very difficult, and sometimes impossible. With that in mind, this paper demonstrates procedure and benefits of the ASM using the SCARA robotic system.  A. Forward Computation of Velocity and Accelerations The forward calculation will start from Joint 1 where 0  0    0 0 0 0 ( 0 )  0 and ( v0 )  0 represents the robot base 0 0 angular and linear velocities. The angular and linear velocities are calculated using the formulas for rotational or translational type of joints. Equation (18) represents the angular velocity for rotational joint type, and is applied to the first two joints in Equations (19) and (20). i 0

( i )iRi1

0 0 0      1 2 0 1   0   2   0   3  0 2  0 1     0  0  0     0  1  2  P1  0 P2  0 P3   0  0 0 d3    

0  1

1 0

1

( 1 ) R0

2 0

2

( 2 ) R1





( i1 )i1i 

i 1 0

0  ( 0 ) 1   0   1 

0 0

0



0       ( 1 )  2   0   1  2 

1 0

1



Equation (21) is the angular velocity for the translational joint type and is applied to the third joint in Equation (23).

0 0 0      1  2   0  2   0   3  0 1  2  0   

The center of mass of each link Pci has been determined in Equation (17), where L is determined in Figure 1.





( i )i Ri1 i1 (0i1 ) 

i 0

0      ( 3 ) R2 ( 2 )   0   1  2 

3 0

3

2 0

Equation (23) is the linear velocity for the rotational joint type, and is used for the first two joints, Equations (22) and (23).

2 0

2

(  2 ) R1



0      1   ( 1 ) ( 1 )  2   2   0   1  2 

1 0

1 0



1

( vi )iRi 1 i 1(0vi 1)i 1(0i 1 )i Ri 1 i 1Pi 

i 0

 0  ( v1 ) R0 ( v0 ) ( 0 ) R0 P1  a11    0 

1 0

1

0 0

0 0

1



a1 sin 2 1



 

0

 

The next step is to calculate the angular and linear 0  0 0 accelerations, where (  0 )  0 represents the robot base 0 angular acceleration. See Equations (26) and (27).

(  i )iRi1



(  2 )1

0

 2 ( 0 v ) 2R 1 ( 0 v )1( 0 )2 R 1P   a cos  a   a    2 1 1 1 1 2 1 2 2 1 2 2 

i 0

2 0

 0    0    1 

1



0 0

( 1 ) R0 (  0 ) ( 0 )

0

1  01



0   0   1 

For the SCARA robot the equations will be separated such that its expressions are written as a sum of all separated elements, expressed as a function of the vectors parameters: [q] , [qq ] , [q 2 ] that can be found from Equation (2). There are as follows:  ,  , d ,   ,  d ,  d ,  2 ,  2 , and d32 .

1

3

2

1 2

1 3

2 3

1

2

(  i )i Ri1 i1 (0 i1 ) 

 0  (  3 )3R2 2 ( 0 2 )   0    1  2 

3 0

 0  (  3 )1   0   1  0  3 0 (  3 )12  0 0 3 0

3 0

( 3 )

2

1

0   0 0

 0  0    3 0 (  3 ) 2   0  (  3 ) d  0 3  2  0 0  0  3 0 (  3 ) d  0 3 ( 0 3 ) d  0 13 2 3 0 0 3 0

3 0

( 3 )

2

2

0  0 0

( 1 )

2

1

0   0 0

1 0

( 1 )

2

2

0   0 0

0  ( 1 )  2  0 d 3 0

1 0

0  (  3 )  2  0 d 3 0

3 0



The linear acceleration for rotational joints are calculated using Equation (34).

1 0

1 0

3

i 0

See Equations below.

0 0  0      1 0 1 0 ( 1 )1   0  ( 1 ) 2  0 ( 1 ) d  0 3 1  0 0 0  0  0      1 0 1 0 1 0 ( 1 )12  0 ( 1 ) d  0 ( 1 ) d  0  13 2 3 0 0 0

(  2 ) d

0   0 0

The angular acceleration for the translational joint is given in Equation (31) and applied to Joint 3 in Equation (32).



0 0

2 0

0  0  0      2 0 2 0 (  2 )12  0 (  2 ) d  0 (  2 ) d  0  13 2 3 0 0 0 0  0  0  2 0 (  2 ) 2  0 2 ( 0 2 ) 2  0 2 ( 0 2 )  2  0   d 1 2 3 0 0 0

Starting from Equation (27), the ASM must be applied. The procedure details are presented in [6].

1 0

(  2 ) 2

 0    0     2 

2 0

(  i1 )i1(0i1 )i1i i1i 

i1 0

2 0





 i 1 ( 0 ai 1 ) i 1 ( 0  i 1 ) i 1 Pi  i 1 ( 0  i 1 )  i 1 ( 0 i 1 )i 1 Pi   ( ai ) i Ri 1   i 1 0 i 1  i 1 i 1  i 1 i 1  i 1  i 1   2 (  i 1 )   i  Pi   i  Pi   i   i  Pi 

i 0









 a112    1 0 ( a1 )   a11    0   

a1 sin 2 1   a1 cos 2  a2 12  a222  2a212    2 0  a1 cos 2  a2 1  a22  a1 sin 2 12 ( a2 )       0  

The linear acceleration for translational joints are calculated using Equation (37).  i 1 ( 0 ai 1 ) i 1 ( 0  i 1 )i 1Pi  i 1 ( 0 i 1 )  ( ai ) i Ri 1     2 i 1 ( 0 i 1 )i 1Pi  i 1P i

i 0





( i 1 )i 1Pi    

i 1 0

a1 sin 2 1   a1 cos 2  a2 12  a222  2a212    3 0  a1 cos 2  a2 1  a22  a1 sin 2 12 ( a3 )       d3  

The acceleration of center of mass is expressed in Equation (39). i 0

( aci )i (0ai )i (0i )i (iPci )i (0i ) [i (0i )i (iPci )] 

  a1 sin 2 1  0    1  1    2 0 ( ac 2 )1    a1 cos 2  a2 1  ( ac 2 ) 2   a22  2   2   0    0      a212  0  0    2 0 ( ac 2 ) d  0 2 ( 0 ac 2 )12   0  2 ( 0 ac 2 ) d  0 3 13  0  0 0   2 0

0  2 0 ( ac 2 ) d  0 2 3 0



 1  2    a1 cos 2  2 a2 1     2 0 ( ac 2 ) 2    a1 sin 2 12     1 0    

 1 2   2 a2 2  2 0  ( ac 2 ) 2   0    2 0    

0  ( ac 2 )  2  0 d 3 0

2 0

a1 sin  2 1   a1 cos 2  a2 12  a222  2a212    3 0  a1 cos 2  a2 1  a22  a1 sin 2 12 ( ac3 )       d3  

The acceleration of center of mass for each joint is calculated and separated using the same procedure.

 1 2   2 a11   1  1 0 ( ac1 )   a1 1    2   0   

  a1 sin 2 1   ( ac3 )1   a1 cos 2  a2 1    0  

3 0

0 ( ac3 ) d   0  3 d3 

3 0

3 0

( ac 3 ) 

 0  0  0   1   1 0   1 0 ( ac1 )1   a1 1  ( ac1 ) 2  0 ( ac1 ) d  0 3 2 0  0 0   0  0  0  1 0 ( ac1 )12  0 1( 0 ac1 ) d  0 1( 0 ac1 ) d  0 13 2 3 0 0 0 1 0

 1 2   2 a11  1 0 ( ac1 ) 2   0     1  0   

0  ( ac1 ) 2  0  2 0

1 0



0  ( ac1 )  2  0 d 3 0

1 0

 1  2 1 2      a1 sin 2 1    a1 cos 2  a 2 1  a 2 2  a 21 2  2 2     1  1    2 0 2 ( ac 2 )     a1 cos 2  a 2 1  a 22  a1 sin  2 1  2  2    0    

2d3

0   0 0

 0  ( ac3 ) 2   a22   0   a212  0    3 0 ( ac3 )12   0  3 ( 0 ac3 ) d  0 13  0  0    1  2    a1 cos 2  2 a2 1      3 0 ( ac 3 ) 2    a1 sin 2 12     1 0    

 1 2   2 a2 2  3 0  ( ac 3 ) 2   0    2 0    

3 0



0  ( ac3 )  2  0 d 3 0

3 0

B. Backward Computation of Forces and Moments The backward calculation will start from the last Joint 3. In the calculation, we assume that there is no external load, which means that external load force and torque are zero vectors. 0 0    f 33tool  0 , n33tool  0 . In this calculation the gravity 0 0 vector must be determined. Observing the Figure 1, it is clear that gravity vector 0 g can be expressed in the form of Equation (46), while the other two gravity vectors are calculated using formula i g iR0 0 g .

 0   0  0 0       1 2 0 3 g   0   g   0   g   0   g   0    g   g   g   g  The inertia matrix about the center of mass of link is calculated based on the assumption that each link is a slender rod with masses m1, m2, and m3, respectively.

I1 

0 0 0 1 0 0 1 0 0    1 1 1 m1d 32 0 1 0 I 2  m2 a22 0 1 0 I 3  m3 a32 0 1 0   12 12 12 0 0 1 0 0 0 0 0 0

i 1 i 1

( f i )i 1Ri i (i 1f i )  i  3,2,1 

i 1 i 1

( ni )i 1Ri i (i 1ni )  i  3,2,1 

The robot is designed such that only z-component of the force/torque vectors is important for the dynamic calculation. The Equations (56) and (57) are used to calculate the zcomponents of the Force and Torque.

 i  i ( i 1ni )T z 0  i  3,2,1 

The radial distance to the center of mass of each link can be calculated using the formula in Equation (48). For the SCARA robot this formula is applied, using the D-H parameters from Table1. See Equation (49).

 i  i ( i 1f i )T z 0  i  3,2,1 

 ai  Pi   d i sin i   d i cos i 

0  Where z 0  0 is used to calculate only the z-component 1 of the force/torque for each joint.The last joint is translational, and we need to consider only force calculated in Equation (57). The ASM provides formulas for matrices elements calculations, which are expressed in Equations (58-61).

 

i i 1

 a1 

 a2 

0

 P    0    P    0    P    0  

1 0

1

d1 

2 1

2

 0 

3 2

3

d 2 

The procedure of calculating forces and torques are as follows:

aij i 1 (i 1f i ( i ) )T z0  i  3,2,1  j  1,2,3 

bi ,ij i 1 (i 1ni (ij /  ) )T z0  i  3,2,1  j  1,2,3  dj

i

( f i* )  mi i ( 0 aci )  i  3,2,1  cij i 1 (i 1n

i ( 2 )

i

(ni* ) i I i i ( 0 ci )i ( 0i ) [i I i i ( 0i )]  i  3,2,1 

All equations are made using the ASM. By combining separated equations for angular and linear acceleration with the equation of forces/torques, the elements of each matrix A, B, C, and G will be calculated automatically. To determine the force and moment balance, equations about the center of mass of link, in recursive form, is given in Equations (52) and (53).

i

)T z0  i  3,2,1  j  1,2,3 

g i i 1 (i 1ni (GRi ) )T z0  i  3,2,1 

The final matrices elements are calculated using the Equations (58-61) and are shown in Equations (62-71) for Joint 3.  a31  2 ( 2f 3( 1) )T z0  0 

i i 1

( f i )i (i f i 1 )  mi i g i ( f i* )  i  3,2,1  a32  2 ( 2f 3( 2 ) )T z0  0 

i i 1

( ni )i (i ni 1 ) [i (i 1Pi )i (iPci )]i (i 1fi )i (iPci )i (ifi 1 )i (ni* )

i  3,2,1



Once the reaction forces and moments are computed in the i link frame, they are converted into the (i  1)th link frame by the following: Equations (54) and (56):

a33  2 ( 2f 3( 3 ) )T z0  m3d3 

th

b312  2 ( 2f 3(1 2 ) )T z0  0 

b313  2 ( 2f 3(

b323  2 ( 2f 3(

c31  2 ( 2f

c32  2 ( 2f

1d 3)

)T z0  0 

2 d 3 )

)T z0  0 

T

z0  0 

T

z0  0 

) 3( 2 ) 1

) 3( 2 ) 2

c33  2 ( 2f

3( d 2 )

3

2 2

g 2 1 (1n2(GR2 ) )T z0  0 

The final matrices elements are calculated using the Equations (58-61) and are shown in Equations (82-91) for Joint 1.

a1 0 ( 0n1( 1) )T z0 

 m1 m  m2  m3 )a12  (m2  m3 ) cos 2 a1a2  ( 2  m3 )a22 3 3

a12 0 ( 0n1( 2 ) )T z0 

The final matrices elements are calculated using the Equations (58-61) and are shown in Equations (72-81) for Joint 2.

m2 2 m )a2  (m3  2 ) cos 2 a1a2  3 2

a22 1 (1n2( 2 ) )T z0  (m3 

m2 2 )a2  3

T

a23  ( n2( 3 ) ) z0  0 

b212 1 (1n2(1 2) )T z0  0 

b213 1 (1n2(

1d 3)

b223 1 (1n2(

3

)T z0  0 

)T z0  0 

T

1 1

2( d 2 )

(

g 3  ( f 3(GR3 ) ) z0   gm3 

a21 1 (1n2( 1) )T z0  (m3 

c23 1 (1n

2 d 3)

)T z0  0 

)T z0  0 

(m3 

 m2 2 m )a2  (m3  2 ) cos 2 a1a2 3 2 a13  0 ( 0 n1( 3 ) )T z0  0 

b112  0 ( 0 n1(1 2) )T z0  2(m3 

m2 ) sin 2 a1a2  2

b113  0 ( 0 n0(

1d 3)

)T z0  0 

b123  0 ( 0 n1(

2 d 3)

)T z0  0 

c11  0 ( 0 n

1( 2 )

c12  0 ( 0 n

1( 2 )

2

1

)T z0  0 

)T z0  (m3 

m2 ) sin  2 a1a2  2

c13  0 ( 0 n  2 )T z0  0  1( d ) 3

c21 1 (1n

2( 2 )

1

m2 )a1a2 sin  2  2

g1  0 ( 0 n1(GR1 ) )T z0  0 

)T z0  0  2( 2 )

Calculation of robot dynamics without ASM can produce big problems for complex systems, such as standard industrial robots with 6 or 7 DOF. Using N-E recursive equations with

)T z0  (m3 

c22 1 (1n

2

ASM will provide all matrices elements automatically generated. Using Equations (2) and (72-91), the final dynamic equation has been generated and presented in Equation (92). In comparison of the two methods, it is significant that using the

N-E method will require additional time and effort to manually separate matrices elements, while the ASP takes no time to achieve the same result.

m2 m2 2 m2  m1  2 2 0  ( 3  m2  m3 ) a1  ( m2  m3 ) cos  2 a1a2  ( 3  m3 )a2 (m3  3 )a2  (m3  2 ) cos  2 a1a2    q1  m2 2 m2 m2 2    ( m3  ) a2  ( m3  ) cos  2 a1a2 ( m3  ) a2 0  q2     3 2 3  0 0 m3d3   q3       m2   m2 0 ( m3  ) sin  2 a1a2 0     2 2 2( m3  2 ) sin  2 a1a2 0 0  q1q2    q1   0  1  m      2 0 0 0 q1q3  ( m3  2 ) a1a2 sin  2 0 0   q2    0    2           2 2 0 0 0 q q   m g  0 0 0 q3   3   3   2 3      

IV. CONCLUSION Dynamic modeling of robotic systems is always a challenge, not only because of the calculation complexity, but more so because of separating elements of the inertia matrix A, Coriolis torques matrix B, centrifugal torques matrix C, and gravity torques vectors G. To minimize the separation problem, the Automatic Separation Method (ASM) has been applied and compared with the traditional Newton-Euler recursive procedure. The significant differences and benefits are shown using the SCARA robotic system with 3 DOF and rotational and translation joint types. The benefits of ASM can be more significant for more complex robotic systems, such as industrial robots with 6 or 7 DOFs. In that case the calculation requires programmed equations using different tools, such as Matlab, Malple, C++, etc.

REFERENCES [1] [2] [3] [4]

[5]

[6]

Craig J. J. Introduction to Robotics, Mechanics and Control, Second edition. Addison-Wiley publishing company, 1989. Spong M, Vidyasagar M. Robot dynamics and control, Wiley, New York, 1989. Fu KS, Gonzalez RC, Lee CSG. Robotics: control, sensing, vision, and intelligence. McGraw-Hill, New York 1987; pp12-149 A. M. Djuric, R. Al Saidi, W. H. ElMaraghy, “Dynamics Solution of nDOF Global Machinery Model“, Robotics and Computer-Integrated Manufacturing, Vol. 28, Issue 1, pp. 621–630, 2012. Denavit J, and Hartenberg RS. “A kinematic notation for lower-pair mechanisms based on matrices”, Journal of Applied Mechanics; 77/22:215-221, 1955. Djuric A. M. ElMaraghy WH, “Automatic Separation Method for Generation of Reconfigurable 6R Dynamic Equations”, International Journal Manufacturing Technology, 2010.