Differential of Serial Manipulators Using Virtual Chains

Differential Kinematics of Serial

A. Campos Manipulators Using Virtual Chains This paper presents a new approach to calculate the direct and inverse differential R. Guenther kinematics for serial manipulators. The approach is an extension of the Davies method for and D. Martins open kinematic chains based on a virtual concept introduced in this paper. It is a systematic method that unifies the kinematics of serial manipulators considering the Universidade Federal de Santa Catarina type of kinematics and the coordinate system of the operational and constitutes an Departamento de Engenharia Mecânica alternative way to solve the differential kinematics for manipulators. The usefulness of the Laboratório de Robótica method is illustrated by applying it to an industrial . Caixa Postal 476 Keywords : Robot analysi, differential kinematics, screw theory Campus Universitário – Trindade 88040 900 Florianópolis, SC. Brazil [email protected]

[email protected] [email protected]

1983). The Davies method uses the differential kinematics screw Introduction representation, as described below for completeness. The Davies method allows the calculation of the differential Kinematics is a branch of physics concerned with the kinematics of closed kinematic chains by relating the joint rates geometrically possible movements of a body or a system of bodies along the chain. By considering that closed kinematic chains have without considering the and involved. actuated joints (with known ) and passive joints (in which Robot manipulator kinematics deals with the movements of the the velocities will be calculated), it may be stated that, more robot end-effector and how the robot joints need to move, in a specifically, the Davies method is a systematic way to express the coordinate manner, to achieve the end-effector prescribed joint rates of passive joints as functions of the joint rates of the movement. 1 actuated joints. Differential kinematics relates the velocities of the manipulator The Davies method, very useful for analyzing mechanical components. These velocities may be the velocities at the joints of networks with multi-loop kinematic chains, has, however, two the manipulator or the velocities of one or more links in the drawbacks when applied to robot kinematics. First, it is limited to manipulator kinematic chain. The standard approach to differential fully closed kinematic chains; therefore, it is not possible to apply kinematics is to relate joint and end-effector velocities through the this method to solve the differential kinematics of serial Jacobian matrix, which allows the calculation of the end-effector (open kinematic chains). Second, the method cannot be used to velocities given the joint velocities (direct differential kinematics) obtain information about the movement of a specific link, or, to determine the joint velocities in order to move the end-effector e.g. the robot end-effector in a desired operational space (Cartesian, with a prescribed (inverse differential kinematics). cylindrical etc.). Another important feature of differential kinematics is the This paper formalizes the concept of a virtual kinematic chain as singularity analysis, commonly based on the Jacobian matrix. suggested by Davies (Davies, 2000) and shows that by using this Furthermore, differential kinematics is used to define indices for concept it is possible to overcome the Davies method drawbacks the evaluation of the manipulator performance (Sciavicco, 1996), mentioned above and to extend the method to robot kinematics in e.g. manipulability ellipsoids (Angeles, 1997). Such indices, also order to calculate its direct and inverse differential kinematics using known as quality indices (Downing, 2002), may be helpful both for the same single systematic approach. the mechanical manipulator design and for determining suitable Furthermore, it allows the determination of the inverse manipulator configurations to execute a given task. differential kinematics in a coordinate system (Cartesian, cylindrical In the literature, the differential kinematics of robots with serial etc.) suitable for the end-effector task, which is not so evident to be kinematic chains (serial robots for short) is described using achieved using conventional methods. variations of two main approaches: the method based on Denavit- This paper has the following structure. Initially, the differential Hartenberg parameters (Sciavicco, 1996) and the screw-based kinematics of a body is represented using screws. Next, the Davies method (Hunt, 1987; Duffy, 1996; Davidson and Hunt, 2004). The method and the joint space kinematic solution are described. Then, latter allows the expression of the Jacobian manipulator in a greatly the concept of a virtually modified chain and its properties are simplified manner by expressing the screws in a properly chosen proposed. Following this, the joint space kinematics for a virtually reference frame (Tsai, 1999). modified chain is solved. Finally, the differential kinematics using In both descriptions the direct differential kinematics is usually virtual chains is discussed and the direct and inverse differential obtained by calculating the Jacobian and, after this, the inverse kinematics for a PUMA is calculated using the kinematics is obtained by inverting the Jacobian matrix. proposed method for a Cartesian and a cylindrical operational space. This paper presents a new variation of the screw-based method that allows the determination of the direct and the inverse Nomenclature differential kinematics using a single systematic approach. This approach is derived from the Davies formulation of the $= screw movement or twist Kirchhoff law, here designated as the Davies method (Davies, 1981, h = pitch of the screw Vp = linear of point p SO = position vector of any point at the screw axis ˆ Paper accepted July, 2005. Technical Editor: José Roberto de França Arruda. $ = normalized twist: a screw

J. of the Braz. Soc. of Mech. Sci. & Eng. Copyright  2005 by ABCM October-December 2005, Vol. XXVII, No. 4 / 345 A. Campos et al

S = normalized vector parallel to screw axis attached to the body which is instantaneously coincident with the N = matrix containing the normalized twists origin O of the reference frame (see Fig. 2).

Fb =gross degree of freedom The vector Vp consists of two components: a) a velocity parallel ω FN =net degree of freedom to the screw axis represented by τ =h ; and b) a velocity normal to

d =order of the screw system the screw axis represented by SOxω , where SO is the position vector n =number of links of a kinematic chain of any point at the screw axis. f =degree of freedom of a kinematic pair m =rank of matrix containing the normalized twists Z τ= hω T = transformation matrix of screw coordinates Vp R = rotation matrix W = skew-symmetric matrix representing a vector Greek Symbols Soxω ω = differential rotation about the screw axis, τ = differential translation along the screw axis, linear velocity p Ψ = twist magnitude O S θ X So = position angles at the rotary joints $ Subscripts τ s relative to secondary Y p relative to primary i,j relative to link or joint i,j ω Screw Representation of Differential Kinematics The Mozzi theorem (see Ceccarelli, 2000, for the original quotation and historical remarks) states that the velocities of the points on a rigid body with respect to an inertial reference frame Figure 2. Twist components for a general screw kinematic pair.

O( X,Y,Z ) may be represented by a differential rotation ω about a

certain fixed axis and a simultaneous differential translation τ along A twist may be decomposed into its amplitude and its the same axis. The complete movement of the rigid body, corresponding normalized screw. The twist amplitude Ψ is either combining rotation and translation, is called screw movement or

the magnitude of the angular velocity of the body, || ω ||, if the twist $. Fig. 1 shows a body “twisting” around an axis kinematic pair is rotative or helical, or the magnitude of the linear instantaneously fixed with respect to the inertial reference frame. velocity, || V || , if the kinematic pair is prismatic. Consider a twist This axis is called the screw axis and the ratio of the linear velocity p T * * * T

given by $=( ω ;Vp) = (L, M, N ;P , Q ,R ) . Then, the correspondent ω and the angular velocity is called the pitch of the screw h= || τ ||/|| ||. normalized screw is $ˆ =( L, M, N; P *, Q * ,R * )T. This normalized Z screw is a twist in which the magnitude Ψ is factored out, i.e.

$ = $ˆΨ (1)

The normalized screw coordinates (Davidson and Hunt, 2004) may be defined as a pair of vectors, namely, ( L,M,N ) and O (P*,Q*,R* ), given by,

X $  L    M  Y  N   S  $ˆ =   = (2) *  × +  P  SO S hS Q*    R*  τ  

where S is the normalized vector parallel to the screw axis. Notice ω that the vector (SO × S) determines the of the screw axis with respect to the origin of the reference frame. Figure 1. Screw movement or twist. The movement between two adjacent links, belonging to an n- link kinematic chain, may also be represented by a twist. In this

case, the twist represents the movement of link i with respect to link The twist represents the differential movement of the body with (i-1). respect to the inertial frame and may be expressed by a pair of

In Robotics, generally, the movement between a pair of bodies ω vectors, i.e. $=( ω ;V ). The vector =( L, M, N ) represents the p is determined by either a rotative or a prismatic kinematic pair. angular velocity of the body with respect to the inertial frame. The For a rotative pair the pitch of the twist is null ( h=0). In this vector V =( P*, Q * ,R *) represents the linear velocity of a point P p case the normalized screw is expressed by

346 / Vol. XXVII, No. 4, October-December 2005 ABCM Differential Kinematics of Serial Manipulators Using Virtual Chains

ˆ  S  $ =   (3)  i  × i Rj 0 SO S = (9) Tj i i i   Wj Rj Rj  For a prismatic pair the pitch of the twist is infinite ( h = ∞ ) and the normalized screw reduces to is a 6 x 6 matrix, and

0  0 − p p  ˆ =  z y  $   (4) i = − S Wj  pz 0 px  (10) −   py px 0  Often it is useful to represent the differential movement of a body, expressed by a twist $, in different reference frames. In what i is a 3 x 3 skew-symmetric matrix representing the vector pj follows, a 6 x 6 matrix of transformation T to serve this purpose is (expressed in the ith frame). presented (Tsai,1999). i i Since Wj is skew-symmetric and Rj is orthogonal, the inverse Consider two reference frames of interest ( Xi,Y i,Z i) and ( Xj,Y j,Z j) transformation matrix can be written as as in Fig. 3.

 i R T 0  $ j = j Ti  i T i T i T  (11)  W j R j R j  S Hence, given a screw in the jth frame, we can express it in the j i SO ith frame by applying Eq. (9), and vice versa using Eq. (11). SO Davies Method The Kirchhoff circulation law states that the algebraic sum of Yj potential differences along any electrical circuit is zero. Davies Zj adapts the Kirchhoff law to solve the differential kinematics of Zi closed chain mechanisms. Oj ip The Kirchhoff-Davies circulation law states that "The algebraic Oi j sum of relative velocities of kinematic pairs along any closed Xj kinematic chain is zero'' (Davies, 1981). Xi Using this law the relationship between the velocities of a closed Yi kinematic chain may be obtained in order to solve its differential kinematics, as is presented in the following example. Figure 3. Coordinate transformation of a screw. Let the planar four bar of Fig. 4 be formed by links 1, 2, 3 and 4 and by the rotative joints A, B, C and D. The position of origin Oj relative to the (X i,Y i, Z i) frame is given i T by pj=[px,p y,p z] and the orientation of the ( Xj,Y j,Z j) frame relative B 3 C i to the (X i,Y i,Z i) frame is described by a rotation matrix Rj. A screw i represented in the (X i,Y i, Z i) frame is denoted by $, and the same j 2 screw represented in the ( Xj,Y j,Z j) frame is denoted by $. Circuit 4 Following the normalized screw definition, we have A D  i S  i $ˆ =   (5) i ×i + i  S O S h S  1 Figure 4. Four bar mechanism.  j  j ˆ S $ =   (6) Let the twist $ represent the movement of link 2 in relation to  j S × j S +h j S  A  O  link 1, $ B represent the movement of link 3 in relation to link 2, $ C represent the movement of link 4 in relation to link 3 and $ D The line vectors S and the moment vectors SO of the two screws represent the movement of link 1 in relation to link 4. The twists $ A, are related by the following transformations: $B, $ C and $ D represent the kinematic pairs A, B, C and D, respectively. Consider that the planar mechanism lies in the XY- i =i j S R j S plane, so the twists $ A, $ B, $ C and $ D have only three components (7) since the linear velocity V at any point on the mechanism does not i S =ip +iR j S p O j j O have the R* component in the Z-axis direction. Additionally, the

angular velocity ω of any link of the mechanism does not have the L Hence and M components in the XY -plane. Therefore, for the four bar mechanism in the XY -plane, the twist components are only N , P * i ˆ= i j ˆ * $ T j $ (8) and Q and all the twists are spanned by three independent twists. The planar four bar mechanism forms a closed kinematic chain. where The movement of link 2 in relation to link 1 is represented by $ A.

J. of the Braz. Soc. of Mech. Sci. & Eng. Copyright  2005 by ABCM October-December 2005, Vol. XXVII, No. 4 / 347 A. Campos et al

= − The movement of link 3 in relation to link 1 is expressed by $ A+$ B. FN Fb d (16) The movement of link 4 in relation to link 1 is given by $ A+$ B+$ C and the movement of link 1 in relation to itself is $ +$ +$ +$ . A B C D where FN is the net degree of freedom or the mobility of the The kinematic pairs connecting link 1 to itself form a closed kinematic chain, which is also the number of variables necessary to kinematic chain and, for this closed chain, the Kirchhoff-Davies describe all the mechanism movements considering all kinematic circulation law, regarding the circuit direction indicated in Fig. 4, is pairs. given by To obtain the joint space kinematics we rewrite the magnitude

vector Ψ rearranging it in d secondary or unknown magnitudes + + + = $ A $ B $C $ D 0 (12) Ψ Ψ s and FN primary or known magnitudes p , i.e.

Ψ = [Ψ M Ψ ]T where 0 is a zero vector whose dimension (3x1) corresponds to the s p . Rearranging the network matrix dimension of twists A, B, C and D. [N] ()× coherently with the magnitude division, we get According to Eq. (1) this equation may be rewritten as d F b [N ]()× = [N × M N × ] , where the secondary network d Fb s(d d ) p(d FN ) $ˆ Ψ + $ˆ Ψ + $ˆ Ψ + $ˆ Ψ = 0 (13) A A B B C C D D sub-matrix Ns corresponds to the secondary joints and the primary network sub-matrix Np corresponds to the primary joints. This where $ˆ represents the normalized screw of twist $ and Ψ results in A A A represents the velocity (angular in this case) magnitude of twist A,  []Ψ  with the same applying to the kinematic pairs B, C and D.  s (d × )1  Equation (13) is referred to as the constraint equation of the four [] M[]   L  = [] N s (d ×d ) N p × 0 ()d ×1 (17)  (d FN )  bar mechanism and, in matrix form, is given by []Ψ   p ×   (FN )1  Ψ  A  Ψ  This equation may be rewritten as []ˆ ˆ ˆ ˆ  B  = $ A $ B $C $ D 0 (14) Ψ  Ψ = − Ψ  C  Ns s N p p (18) Ψ  D  and the joint space kinematic solution is given by The considered four bar mechanism is planar and, as explained

above, all the twists are spanned by three independent twists. In this −1

Ψ = − N N Ψ (19) case all the normalized screws belong to a third order screw system s s p p (Hunt, 1978). Additionally, it may be observed that the four bar The four bar mechanism (Fig. 4) is planar ( d=3) and has four mechanism has only one independent circuit or loop in its closed joints, with one degree of freedom ( f =1) each. The sum of the kinematic chain. i In general the constraint equation of a mechanism with degrees of freedom of all mechanism joints results in ( Fb=4). The movements in a d-th order screw system is given by net degree of freedom of a four bar mechanism is FN=Fb-d=4-3=1. Consider that A is an actuated (primary) kinematic pair and that B, Ψ = C and D are non actuated or passive (secondary) pairs. In this case, N × × 0 × (15) Ψ (d Fb ) (Fb )1 (d )1 the velocity magnitude of pair A is determined by an external A

where N is the network matrix containing the normalized screws actuator and the velocity magnitudes of the passive kinematic pairs, Ψ Ψ Ψ Ψ , and , are functions of the magnitude . whose signs depend on the circuit direction, Ψ is the magnitude B C D A vector and Fb is the gross degree of freedom i.e. the sum of the = degrees of freedom of all mechanism joints ( Fb ∑ fi ), with fi Rearranging Eq. (14), the network primary sub-matrix results being the degree of freedom of the ith joint. = ˆ N p [$ A ] and the network secondary sub-matrix is = ˆ ˆ ˆ Ns [$B $C $D ] . If Ns is invertible, the velocity magnitudes

Joint Space Kinematic Solution Ψ of secondary pairs s are calculated by Closed kinematic chains, unlike open kinematic chains, contain

Ψ passive kinematic pairs, in addition to active kinematic pairs. The

  Ψ B Ψ velocity of an active kinematic pair is given by an external actuator,   −1 = −[][]$ˆ $ˆ $ˆ $ˆ (20) e.g. a servomotor. The velocities of the passive kinematic pairs are Ψ C  B C D A A functions of the velocities of the active kinematic pairs due to the    D  closure of the kinematic chain. The use of the constraint equation, Eq. (15), allows the which is the joint space kinematic solution for the four bar calculation of the passive joint velocities as functions of the active mechanism. joint velocities. This procedure is referred to as the joint space This shows that the approach of combining the screw kinematic solution (Davies, 1981). representation of the movements, the Davies method and the joint To achieve this solution, the constraint equation needs to be space kinematic solution presented above, provides a systematic rearranged, highlighting the actuated and the passive pair velocities. way to relate the joint velocities in closed kinematic chains. This To this end, one may consider that Eq. (15) establishes d ≥ useful systematic approach may be extended to obtain the constraints for a kinematic chain with Fb d variables. This means differential kinematics of serial manipulators (open kinematic ≤ that there are only FN F b independent variables in the constraint chains) using the virtual kinematic chain concept introduced below. equation, being

348 / Vol. XXVII, No. 4, October-December 2005 ABCM Differential Kinematics of Serial Manipulators Using Virtual Chains

The Virtual Kinematic Chain Concept Consider the C-reference system ( C-system) attached to the virtual link C3 at the spherical joint . Therefore, there is no rotation The virtual kinematic chain, virtual chain for short, is essentially between the C-system and B-system and the three orthogonal a tool to obtain information about the movement of a kinematic rotative joints are aligned, respectively, with the X, Y and Z axes. So, chain or to impose movements on a kinematic chain. the normalized screws corresponding to the virtual joints In this paper we define a virtual chain as a kinematic chain represented in the C-system are composed of links (virtual links) and joints (virtual joints) satisfying the following three properties: a) the virtual chain is open; b) it has C ˆ = T C ˆ = T C ˆ = T $rx )0,0,0;0,0,1( , $ry )0,0,0;0,1,0( , $rz )0,0,0;1,0,0( joints whose normalized screws are linearly independent; and c) it (21) does not change the mobility of the real kinematic chain. C ˆ = T C ˆ = T C ˆ = T $px )0,0,1;0,0,0( , $ py )0,1,0;0,0,0( , $ pz )1,0,0;0,0,0( Either to obtain information about the movement of a (real) chain or to change its movement, we apply virtual chains to close It may be observed that the orthogonal PPPS virtual chain open real chains. represents the movements in a spatial Cartesian system. A serial manipulator is an open kinematic chain and so, to obtain its differential kinematics using the Davies method, a virtual chain needs to be added in order to close the chain and to obtain the RPPS Virtual Chain (Cylindrical System) constraint equation and the joint space kinematic solution. Another useful virtual chain to describe movements in the three- In this paper we present two useful virtual chains to obtain and dimensional space is the RPPS kinematic chain composed of a impose movement in Robotics: the orthogonal PPPS chain and the rotative joint ( rz ) aligned with the Z axis, a ( pz ) in the RPPS chain. For these virtual chains, consider the movements in Z axis direction, a prismatic joint ( pr ) in a direction orthogonal to the space described by a inertial reference frame named B-system the Z axis direction (named radial direction) and a spherical joint (X,Y,Z) . (S), see Fig. 6. It should be highlighted that when the spherical joint is along the Z axis, the normalized screws corresponding to the rz Orthogonal PPPS Virtual Chain (Cartesian System) and S joints are linearly dependent and the RPPS kinematic chain is in a singularity, and cannot be used as a virtual chain. A virtual chain useful to describe movements in three- dimensional space is the PPPS orthogonal chain with three C-system prismatic joints whose movements are in the X, Y and Z orthogonal R 2 directions and a spherical joint which is instantaneously substituted ZC (binormal) Y by three serial orthogonal rotative joints in the X, Y and Z directions, S C (tangential) see Fig. 5. The prismatic joints are called px, py and pz , and the (rn,rt,rb) P 3 rotative joints are called rx, ry and rz . pr Z X (radial) virtual r C links ZC real P 2 links pz Z -system C-system B P 1 YC rz Y Y S (rx,ry,rz) R2 α C3 X C R 1 B-system X X Figure 6. RPPS virtual chain. Real links pz R1 In this virtual chain the first three joints ( rz, pz and pr ) move virtual C into a cylinder. The spherical joint may be instantaneously py 2 links px substituted by three serial orthogonal revolute joints with C1 movements in the normal ( rn ), tangential ( rt ) and binormal ( rb ) cylinder directions. The joints rz and rb are attached to the real chain: joint rz Figure 5. PPPS virtual chain. connects real link R1 with virtual link P1, joint pz connects virtual link P1 with virtual link P2, joint pr connects virtual link P2 with The first prismatic joint ( px ) and the last rotative joint ( rz ) are virtual link P3 and joint S connects virtual link P3 with real link R2 attached to the real chain (kinematic chain to be analyzed). Joint px (see Fig. 6). connects real link R1 with virtual link C1, joint py connects virtual Let twist $ rz represent the movement of link P1 in relation to link C1 with virtual link C2, joint pz connects virtual link C2 with link R1, twist $ pz represent the movement of link P2 in relation to virtual link C3 and joint S connects virtual link C3 with real link R2 link P1, twist $ pr represent the movement of link P3 in relation to (see Fig. 5). link P2, and twist $ rn +$ rt +$ rb represent the movement of link R2 in Let the twist $ px represent the movement of link C1 in relation to relation to link P3. Then, the movement of real link R2 in relation link R1, twist $ py represent the movement of link C2 in relation to to real link R1 may be expressed by $ rz +$ pz+$ pr +$ rn +$ rt +$ rb . link C1, twist $ represent the movement of link C3 in relation to pz Consider that the Cˆ -system at the spherical joint is fixed to the link C2, twist $ rx +$ ry +$ rz represent the movement of link R2 in relation to link C3. Therefore, the movement of real link R2 in virtual link P3 and that the three orthogonal rotative joints are aligned, respectively, with the X , Y and Z axes. Thus, the relation to real link R1 may be expressed by Cˆ Cˆ Cˆ $px +$ py +$ pz +$ rx +$ ry +$ rz .

J. of the Braz. Soc. of Mech. Sci. & Eng. Copyright  2005 by ABCM October-December 2005, Vol. XXVII, No. 4 / 349 A. Campos et al

normalized screws corresponding to the virtual joints represented in A n-1

ˆ A 3 the C -system are n -1 n

2 ˆ ˆ ˆ An C $ˆ =( 0,0,0;0,0,1 )T ; C $ˆ =( 0,0,0;0,1,0 )T ; C $ˆ =( 0,0,0;1,0,0 )T rn rt rb (22) ˆ ˆ ˆ A2 C ˆ =()()()T C ˆ = T C ˆ = − T Bd-1 $ pr 0,0,1;0,0,0 ; $ pz 1,0,0;0,0,0 ; $rz ,0;1,0,0 r 0, 1 B2

B3 where r is the ray distance, i.e. the instantaneous distance from the Bd A 1 B1 cylindrical axis to the Cˆ -system origin. n +1 It may be observed that the RPPS virtual chain represents a 0 n+2 n+d cylindrical coordinate system. Virtual pair Serial manipulator pair Modified Kinematic Chain Figure 8. Modified (n+d)-link manipulator kinematic chains. The modified kinematic chain is the closed chain obtained by adding one or more virtual chains to the real chain. The virtual chain In general, each virtual kinematic pair has only one degree of selection depends on the information to be obtained or imposed freedom ( f=1). If a pair of the virtual chain has more degrees of between the real links jointed by the virtual chain. freedom ( f >1), it could be instantaneously substituted by f serial In this section we describe the modified kinematic chain virtual pairs with one degree of freedom ( e.g. spherical pair). obtained by adding a virtual chain to a n-link serial manipulator Adding this virtual chain to the manipulator converts the real whose movements belong to a d order screw system. open chain in a modified closed kinematic chain with ( n+d) links. Consider that the manipulator chain has n links (Fig. 7), The kinematic pairs of this modified chain may be divided into numbered from zero (link at the base) to n (end-effector). The actuated (primary) pairs and passive (secondary) pairs like parallel movement of link ( i) in relation to link ( i-1) is defined by the manipulators. kinematic pair A , and it is represented by the twist $ . For a serial manipulator in the 3D operational space the order of i Ai the screw system is six and the virtual chain has six virtual pairs. ˆ Additionally, $ Ai represents its corresponding normalized screw. These six pairs are represented by six mutually independent twists. The constraint equation for the modified kinematic chain is An-1 obtained by applying the Kirchhoff-Davies circulation law to the modified kinematic chain, considering the circuit direction indicated A3 n-1 n in Fig. 8, and is given by 2 An $ + $ +L + $ − $ −L − $ − $ = 0 (23) A1 A2 An B1 B(d- 1 ) Bd A 2 1 Notice that virtual twists are negative because they represent the velocity of the base in relation to the end-effector, in the opposite A1 direction of the circuit, while the real twists represent the velocity of the end-effector in relation to the base. 0 The network matrix results in: Figure 7. Real n-link manipulator kinematic chain. N =[ˆ$ ˆ$ Lˆ$ − ˆ$ L− ˆ$ − $ˆ ] A1 A2 An B1 B(d- 1 ) Bd (24) Consider that it is necessary to acquire information on or impose movement between the base and the end-effector of the and the velocity magnitude vector is serial manipulator. To achieve this end a suitable virtual chain is added between these two links. A general virtual chain used to Ψ = [Ψ Ψ LΨ Ψ LΨ Ψ ] (25) modify the open chain is shown in Fig. 8 in thinner lines. A1 A2 An B1 B(d- 1 ) Bd As the manipulator movements belong to a d order screw system, this virtual chain should have d joints with linearly The network matrix (24) and the velocity magnitude vector (25) independent normalized screws in order not to change the mobility define the modified kinematic chain constraint equation which of the real kinematic chain. allows the calculation of the differential kinematics as is described Thus, the virtual chain has d links numbered from ( n+1) (link below. jointed to the base) to ( n+d) (link jointed to the end-effector). The relative movement between two adjacent virtual links is defined by Differential Kinematics Using Virtual Chains the corresponding virtual kinematic pair. The movement of the virtual link ( n+1) with respect to the base (link 0) is defined by the Differential Kinematics using virtual chains relates the link movements of a kinematic chain applying the Davies method to a kinematic pair B1 and is represented by the twist $ . The B1 virtually modified kinematic chain. Due to the freedom to select the movement of the virtual link ( n+2) with respect to the virtual link primary kinematic pairs, it is possible to solve different kinematic (n+1) is given by the kinematic pair B2 and is represented by the problems, employing the same method. twist $ , and so on. B2 The solutions to different kinematic problems are obtained by choosing different groups of primary/secondary variables for the constraint equation Eq.(19). In order to illustrate this, the direct and inverse kinematics of the serial manipulators are found below by solving the constraint equation. Both direct and inverse differential

350 / Vol. XXVII, No. 4, October-December 2005 ABCM

Differential Kinematics of Serial Manipulators Using Virtual Chains θ kinematics consider the velocity of the end-effector in relation to the In Fig. 9, i ( i=1,…, 6) are the position angles at the rotary base. For this purpose, we add a virtual chain between the base and joints. The twists $ i corresponding to joint movements are aligned the end-effector of the serial manipulator as shown in Fig. 8. with the joint axes and are shown in the figures as conical arrows.

Direct Kinematics. Y θ2 In direct kinematics the objective is to determine the velocity of Z $2 the end-effector in the operational space as a function of the velocities of the actuated kinematic pairs in the joint space. f θ To this end the magnitudes of the real kinematic pairs (joint 1

Ψ θ + θ θ 2 3 space) are selected as the primary vector components ( p ) and the 3 $1 θ1 g magnitudes of the virtual kinematic pairs (operational space) are $3 h Ψ θ selected as the secondary vector components ( s ). Thus, Eq.(19) 4 X Z4 Y4 becomes link 4

B-system R-system Ψ    Ψ  B1 A1

  Ψ  M −1 $   = −[][]− ˆ − ˆ − ˆ ˆ ˆ ˆ  A2  6 Ψ $ L $ $ $ $ L$ (26)   B1 B(d- 1 ) Bd A1 A2 An  M  θ5

B(d- 1 ) Ψ   Ψ  $4  Bd   An  X4

This highlights that using the virtual kinematic chain concept Figure 9. The Puma robot. the Davies method should be extended to calculate the direct differential kinematics of serial manipulators. In this paper the PUMA robot differential kinematics is described using screws to represent the movement of the kinematic Inverse Kinematics. pairs. The reference frame in which the screws are expressed could be suitably chosen in order to get screws with simple components. The inverse kinematics maps end-effector velocities (operational To this end several authors (Hunt, 1987; Martins and Guenther, space) into joint velocities (joint space). 2003) use a system fixed to link 4 ( X4,Y 4,Z 4 ) at the center of the

To solve the inverse kinematics we select the components of the spherical wrist to describe the screws corresponding to the Ψ vector p as the magnitudes of the virtual kinematic pairs kinematic pairs of the manipulator.

Ψ In this , the reference system fixed to link 1 (base) is named (operational space) and the components of the vector as the s the B-system and the reference system fixed to link 4 is named the magnitudes of the real kinematic pairs (joint space) of the modified R-system, see Fig. 9. The normalized screws of the PUMA robot, kinematic chain, then Eq.(19) results in represented in the R-system, see Appendix A for details, are (Hunt,

1987) Ψ    Ψ  A1 B1

Ψ    −1 M R ˆ = (− − − )T  A2  = −[][]ˆ ˆ ˆ − ˆ − ˆ − ˆ   $1 s23 ,0, c23 ; fc23 , x14 , fs23

L L Ψ $A $A $ A $B $B $B (27)  M  1 2 n 1 (d- 1 ) d   R T

B(d- 1 ) $ˆ = ()g;0,1,0 s ,0, x′ Ψ    Ψ  2 23 14      An   Bd  R ˆ = ()− T $3 ,0,0;0,1,0 h (28) R ˆ = ()T It could be remarked that, using the virtual kinematic chain $4 0,0,0;0,0,1 concept integrated with the Davies method, the direct and inverse R $ˆ = ,0( −s ,c )0,0,0; T differential kinematics of serial manipulators may be obtained 5 4 4 employing the same method, simply by selecting the primary and R ˆ = ()T $6 c5,c4s5,s4s5 0,0,0; secondary kinematic pairs according to the desired result.

In the following, the method presented is applied to an industrial

θ θ θ θ θ where, s i=sin( θ i); s ik =sin( i+ k); ci=cos( i); cik =cos( i+ k); etc... robot manipulator. = + ′ = −( + ) x14 gc2 hc23 ; x14 gc 3 h ; and f, g and h are the distances shown in Fig. 9. Differential Kinematics of the PUMA Robot The direct and inverse differential kinematics of the PUMA Cartesian Operational Space robot, considering a Cartesian and a cylindrical operational space, is presented in this section in order to illustrate the approach presented. The Cartesian operational space corresponds to a screw system with d=6. To obtain the differential kinematics in the Cartesian The PUMA robot and its variants have widespread use as industrial robots. It is also one of the most studied configurations operational space, we chose the PPPS virtual chain presented in Fig. found in research papers on Robotics. For these reasons, this robot 5 to be added between the base and the end-effector. was chosen as an example of differential kinematics using the In this case, the modified kinematic chain corresponds to the virtual chains proposed in this work. closed chain shown in Fig. 10.

The PUMA robot is a serial manipulator with six degrees of freedom. All joints are rotative kinematic pairs. The last three joint axes intersect at a single point forming a so-called spherical wrist.

J. of the Braz. Soc. of Mech. Sci. & Eng. Copyright  2005 by ABCM October-December 2005, Vol. XXVII, No. 4 / 351 A. Campos et al

C = − $4 From Eq.(21) it is observed that Ns I , where I is the $5 ( 6× 6 ) identity matrix and employing Eq.(8)

C-system C =C R $3 $6 N p TR N p (36) Z Y where from Eq.(28)

− ($rx ,$ry ,$rz )  s23 0 0 1 0 c5  $2 Circuit  −   0 1 1 0 s4 c4s5  Y   Z X R c23 0 0 0 c4 s4s5 N =   (37) p − $pz  fc 23 gs 23 0 0 0 0  link of C -system  x 0 0 0 0 0  $  14  1 − ′ −  fs 23 x14 h0 0 0  $py $px B-system Thus, the direct kinematics (Eq.(35)) is given by

X C R

Ψ = T N Ψ (38) s R p p Figure 10. Schematic of modified kinematic chain for Puma robot in C Cartesian operational space. where TR is the transformation matrix of screw coordinates calculated using the rotation matrix CR and the position vector Cp R R According to the Kirchhoff-Davies circulation law the network (see Eq.(9)). matrix N of this closed kinematic chain is There is no rotation between the C-system and the B-system so the C-system is always parallel to the B-system and thus, we have,

= [ˆ ˆ ˆ ˆ ˆ ˆ − ˆ − ˆ − ˆ − ˆ − ˆ − ˆ ] N $1 $2 $3 $4 $5 $6 $rx $ry $rz $px $py $pz (29) C =B RR RR (39) where all the normalized screws are represented in the same C The matrix RR is obtained through a matrix product, see (Hunt, coordinate system and the normalized screw signs depend on the 1987) for details, as circuit direction shown in Fig. 10. The corresponding velocity magnitude vector is  −  c1c23 s1 c1s23

C  

Ψ Ψ Ψ Ψ Ψ Ψ Ψ Ψ Ψ Ψ Ψ Ψ Ψ T R = s c c s s (40) = [ ] (30) R  1 23 1 1 23  1 2 3 4 5 6 rx ry rz px py pz −   s23 0 c23 

Direct Kinematics in the Cartesian Operational Space Taking into account that the movements of the spherical wrist The direct kinematics is obtained by calculating the virtual chain do not affect the end-effector translation, the R-system origin may twist magnitudes, which are chosen as the secondary magnitude represent the position of the PUMA end-effector. The C-system origin and the R-system origin may then be considered coincident. vector components, i.e ., C

So the vector pR is null.

Ψ Ψ Ψ Ψ Ψ Ψ Ψ Therefore, using Eq.(9), the transformation matrix of screws = [ ]T (31) s rx ry rz px py pz coordinates may be expressed by

Consequently, the network secondary sub-matrix is given by [C R ] [0]  CT =  R  (41) R [] []C  0 RR  N = [− $ˆ − $ˆ − $ˆ − $ˆ − $ˆ − $ˆ ] (32) s rx ry rz px py pz where [0] is the (3 x3 ) zero matrix.

The primary magnitude vector has the input as components, i.e. , Equation (38) establishes the relation between the real joint

Ψ Ψ the magnitudes of the actuated pairs: Ψ velocity magnitudes ( ,…, ) and the virtual joint velocity

p 1 6

Ψ Ψ

Ψ Ψ Ψ Ψ Ψ Ψ Ψ

T Ψ = [ ] magnitudes s ( rx ,…, pz ) which, considering the special p 1 2 3 4 5 6 (33) configuration of the virtual chain, represent the Cartesian velocity Therefore, the network primary sub-matrix is of the end-effector with respect to the base represented in the C-

system. The former three components of the velocity state

Ψ Ψ

= [ˆ ˆ ˆ ˆ ˆ ˆ ] ( rx , Ψ ry , rz ) are the angular velocities of the end-effector with N p $1 $2 $3 $4 $5 $6 (34)

respect to the base, represented in the C-system, and the latter three

Ψ Ψ Ψ The secondary magnitude vector is calculated using Eq.(19). In components ( px , py , pz ) are the linear velocities of a point on order to simplify the inversion of matrix Ns we choose the C-system the end-effector, instantaneously at the C-system origin, with to represent the normalized screws and, thus, Eq.(19) is given by respect to the base, represented in the C-system. Therefore, using

the twist definition, we may express the velocity of the end-effector Ψ =− C −1 C Ψ with respect to the base, represented in the C-system, by s N s N p p (35)

352 / Vol. XXVII, No. 4, October-December 2005 ABCM Differential Kinematics of Serial Manipulators Using Virtual Chains

R

C T Matrix Ns in Eq.(50) is the Jacobian of the PUMA manipulator

= Ψ Ψ Ψ Ψ Ψ $ [ Ψ ] (42) EE rx ry rz px py pz when it is calculated throughout the screw theory (Hunt, 1987), i.e. the screw based Jacobian . The method presented in this paper, like Inverse Kinematics in the Cartesian Operational Space the screw based Jacobian method, allows the selection of a suitable coordinate system ( R-system) aiming at obtaining a sparser Jacobian The inverse kinematics is obtained by calculating the real chain matrix. twist magnitudes which, in this case, are chosen as the secondary magnitude vector components,

Cylindrical Operational Space

Ψ Ψ Ψ Ψ Ψ Ψ = [ Ψ ]T s 1 2 3 4 5 6 (43) For certain tasks, the description of the movements in operational other than the Cartesian could be useful. For Accordingly, the network secondary sub-matrix is instance to represent a radial or tangential velocity of the end- effector to weld a pipe, the cylindrical operational space may be more suitable than the Cartesian space. N = [$ˆ $ˆ $ˆ $ˆ $ˆ $ˆ ] (44) s 1 2 3 4 5 6 In order to illustrate the flexibility of the approach presented in this paper, the direct and inverse differential kinematics of the The primary magnitude vector has the input as components, i.e. , PUMA robot using a general cylindrical operational space is the magnitudes of the virtual pairs: presented below.

Consider a robot welding around a pipe whose axis coincides

Ψ Ψ Ψ Ψ Ψ Ψ = [ Ψ ]T p rx ry rz px py pz (45) with the Z axis of the B´-system shown in Fig. 11.

End effector Thus, the network primary sub-matrix is given by Cylinder axis Z = [− ˆ − ˆ − ˆ − ˆ − ˆ − ˆ ] N p $rx $ry $rz $ px $ py $ pz (46)

The secondary magnitude vector is calculated using Eq.(19), which, aiming at simplifying the inversion of the network secondary Z sub-matrix ( N ,), R-system is represented as s Y

Y Ψ =− R −1 R Ψ s Ns N p p (47) B-system where, using Eq.(28), B´-system X − X  s23 0 0 1 0 c5    − Figure 11. Schematic of Puma robot welding a pipe.  0 1 1 0 s4 c4s5   c 0 0 0 c s s  R = 23 4 4 5 Ns   (48) − fc gs 0 0 0 0  The cylindrical operational space corresponds to a screw system 23 23 in which d=6. To obtain the differential kinematics in the cylindrical  x 0 0 0 0 0   14  operational space, we chose the virtual chain RPPS presented in Fig. − ′ −  fs 23 x14 h0 0 0  6 to be added between the base and the end-effector. For this case the modified kinematic chain is shown in Fig. 12. and employing Eq.(8) End effector $4 R =R C N p TC N p (49) $6 $3

C where from Eq.(21) it could be observed that Np=-I.

($rn ,$rt ,$rb ) Thus, replacing Eq.(48) and Eq.(49) into Eq.(47), the inverse $5 $ kinematics becomes 2 $pr

Ψ =R −1 R Ψ Circuit s Ns TC p (50) $1 $pz Note that the transformation of the screw matrix, according to Eq.(11) and Eq.(41) may be written as

$rz [C ]T []  R =C −1 = RR 0 TC TR   (51)  [] []C T   0 RR  Figure 12. Schematic of modified kinematic chain for PUMA robot in cylindrical operational space. Equation (50) establishes the inverse differential kinematics of the PUMA robot where the end-effector velocity is given in the Cartesian system described by the virtual chain.

J. of the Braz. Soc. of Mech. Sci. & Eng. Copyright  2005 by ABCM October-December 2005, Vol. XXVII, No. 4 / 353 A. Campos et al

Applying the Kirchhoff-Davies circulation law, regarding the ˆ ˆ C R =CR B R (61) circuit direction indicated in Fig. 12, the network matrix N results R B R in B where RR is described in Eq.(40-41) and

N = [$ˆ $ˆ $ˆ $ˆ $ˆ $ˆ − $ˆ − $ˆ − $ˆ − $ˆ − $ˆ − $ˆ ] (52) 1 2 3 4 5 6 rn rt rb pr pz rz  c s 0  (rz ) (rz )  Cˆ = − and the corresponding velocity magnitudes vector is RB  s(rz ) c(rz ) 0 (62)  

 0 0 1

Ψ Ψ Ψ Ψ Ψ Ψ Ψ Ψ Ψ Ψ Ψ Ψ = [ Ψ ]T 1 2 3 4 5 6 rn rt rb pr pz rz (53) where c(rz) and s(rz) represent the cosine and sine, respectively, of the instantaneous angular position θ of the virtual rotative pair $ . It Direct Kinematics in the Cylindrical Operational Space rz rz could be observed that the angle θ is null when the Cˆ -system and The direct kinematics is obtained by calculating the virtual chain rz screw magnitudes which are chosen as the secondary magnitude the B-system are parallel. ˆ vector components, Therefore, the transformation matrix CT is given by R

Ψ Ψ Ψ Ψ Ψ Ψ = [ Ψ ]T (54) s rn rt rb px pz rz  Cˆ B  ˆ [ R R ] []0 CT =  B R  (63) R [] []Cˆ B Consequently, the network secondary sub-matrix is given by  0 RB RR 

N = [− $ˆ − $ˆ − $ˆ − $ˆ − $ˆ − $ˆ ] (55) The calculation of the direct kinematics is obtained using s rn rt rb px pz rz Eq.(58)

The primary magnitude vector has the input as components, i.e. ,

Cˆ −1 Cˆ R

Ψ =− Ψ the magnitudes of the actuated pairs: s Ns TR NP p (64)

Ψ Ψ Ψ Ψ Ψ Ψ = [ Ψ ]T (56) Equation (64) describes the relation between the real joint

p 1 2 3 4 5 6 Ψ Ψ velocity magnitudes ( Ψ ,…, ) and the virtual joint velocity

p 1 6

Ψ Ψ Therefore, the network primary sub-matrix is magnitudes Ψ s ( rx ,…, az ) which, considering the special configuration of the virtual chain, represent the cylindrical velocity N = [$ˆ $ˆ $ˆ $ˆ $ˆ $ˆ ] (57) p 1 2 3 4 5 6 of the end-effector with respect to the base represented in the Cˆ -

Ψ Ψ system. The former three terms ( Ψ , , ) of the end-effector The secondary magnitude vector is calculated using the rn rt rb velocity state represent the angular velocity (normal, tangential and constraint equation shown in Eq.(19). To simplify the inversion of binormal) of the end-effector with respect to the base, represented ˆ

matrix Ns we chose the C -system to represent the normalized ˆ

Ψ Ψ in the C -system. The latter three ( Ψ , , ) indicate,

screws and thus Eq.(19) is given by px pz rz . Ψ respectively, the radial linear velocity px , the axis linear velocity

Cˆ −1 Cˆ Ψ

Ψ =− Ψ s Ns N p p (58) pz and the azimuthal angular velocity Ψ rz of a point on the end-

effector, instantaneously at the Cˆ -system origin, with respect to the where, using Eq.(22), base, represented at the Cˆ -system. −1 0 0 0 0 0   −   0 1 0 0 0 0  Inverse Kinematics in the Cylindrical Operational Space ˆ  0 0 −1 0 0 −1 C = The inverse kinematics is obtained by calculating the real chain Ns   (59)  0 0 0 −1 0 0  screw magnitudes which are the secondary magnitude vector  0 0 0 0 0 r  components, i.e .,  

Ψ Ψ Ψ Ψ Ψ Ψ  0 0 0 0 1 0  Ψ = [ ]T (65) s 1 2 3 4 5 6 and employing Eq.(8) Then, the network secondary sub-matrix is ˆ ˆ C N =CT R N (60) p R p N = [$ˆ $ˆ $ˆ $ˆ $ˆ $ˆ ] (66) s 1 2 3 4 5 6

Cˆ The screw coordinates matrix transformation TR is calculated The primary magnitude vector contains the magnitudes of the Cˆ Cˆ virtual pairs:

using the rotation matrix RR and the position vector pR .

Ψ Ψ Ψ Ψ Ψ Ψ ˆ = [ Ψ ]T Considering that the origins of the C -system and R-system p rn rt rb pr pz rz (67) ˆ ˆ coincide, the vector C p is null. The rotation matrix C R may be R R Thus, the network primary sub-matrix is given by obtained by the matrix product

354 / Vol. XXVII, No. 4, October-December 2005 ABCM Differential Kinematics of Serial Manipulators Using Virtual Chains

= [− ˆ − ˆ − ˆ − ˆ − ˆ − ˆ ] Acknowledgments N p $rn $rt $rb $ pr $ pz $rz (68) This work was partially supported by `Fundação Coordenação The secondary magnitude vector is calculated using the de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)', Brazil, constraint equation (Eq.(19)), which, aiming to simplify the and by `Conselho Nacional de Desenvolvimento Científico e inversion of the matrix, is represented in the R-system, as shown in Tecnológico (CNPq)´, Brazil. Eq.(47), here repeated

Ψ Ψ Appendix A =− R −1 R s Ns N p p (69) In this appendix a method to calculate the normalized screws and employing Eq.(8) correponding to the joint movements of the PUMA robot is presented. ˆ Aiming to find the screws corresponding to the PUMA joints, R N =RT C N (70) p Cˆ p we first define a reference (home) configuration for the manipulator and a coordinate system fixed to each link, namely 1,2, ... and 6. where the transformation of the screw coordinate matrix, using Although the reference position can be chosen arbitrarily, it is Eq.(11), is usually chosen at a location where, if possible, all the joint axes are parallel or orthogonal. The reference configuration for PUMA and T [Cˆ B ] []  the coordinate systems 1,2,... and 6 fixed to the respective links are ˆ −1 R R 0 θ RT =CT =  B R  (71) Cˆ R ˆ T showed in Fig. A1 where all the joint angles ( i ) are null and the  []0 []C R B R   B R  coordinate systems are parallel.

So, the inverse kinematics, using Eq.(69), is given by Y1 Y2

R −1 R Cˆ

Ψ =− N T N Ψ (72) s s Cˆ p p Z2 $2 Y3 It should be remarked that the inverse differential kinematics is Z1 obtained by inverting the matrix corresponding to the manipulator $3 joint screws represented in the R-system, the same matrix is inverted Z 3 to obtain the inverse kinematics in the Cartesian operational space. $1 $ Similarly, by adding a suitable virtual chain, between the base 5 X and end-effector, it is to possible calculate the inverse differential 1 Z4,5,6 kinematics based on the end-effector velocity given in a spherical Y4,5,6 coordinate system. $4 This example shows that the proposed method allows the determination of the inverse differential kinematics in a coordinate $6 system (Cartesian, cylindrical etc.) suitable for the end-effector task. This is not so evident achieved using conventional methods ( e.g. X4,5,6 Denavit-Hartemberg based method and screw based method). Figure A1. The Puma robot reference configuration. Conclusions According to Eq.(3) the normalized screws of joints 1,2,.. and 6 This paper presents a simple, systematic and unified approach to expressed, respectively, at the coordinate system 1,2,… and 6 are obtain the differential kinematics of serial manipulators using the easily identified as screw representation. By introducing a virtual chain concept in order to close open 1$ˆ = ( 0,0,0;1,0,0 )T kinematic chains it is shown that the differential kinematics of serial 1 2 ˆ = ()T manipulators can be calculated using the Davies method, a simple $2 0,0,0;0,1,0 and systematic way to relate the joint velocities in closed kinematic 3$ˆ = ()0,0,0;0,1,0 T chains. 3 (A1) 4 ˆ = ()T The proposed approach results unified because the direct and the $4 0,0,0;0,0,1 inverse kinematics are obtained in a similar way, by selecting 5 ˆ = ()T variables according the desired result. $5 0,0,0;1,0,0 Furthermore, the approach allows the determination of the 6$ˆ = ()0,0,0;0,0,1 T inverse differential kinematics in a coordinate system (Cartesian, 6 cylindrical, etc.) suitable for the end-effector task, which could be where the subindex represents the joint and the superindex very useful, and this is not trivially achieved using conventional represents the coordinate system where the normalized screws are methods. described. Like the screw based Jacobian method, the presented approach Considering the coordinate systems of Fig. A1, the rotation allows the selection of a suitable coordinate system aiming at a i −1 i −1 sparser Jacobian matrix. matrices R i and the vectors p i between adjacent coordinate systems are

J. of the Braz. Soc. of Mech. Sci. & Eng. Copyright  2005 by ABCM October-December 2005, Vol. XXVII, No. 4 / 355 A. Campos et al

− c1 s1 0  c2 0 s2   c3 0 s3  References 1 =   2 =   3 =   R2 s1 c1 0; R3  0 1 0; R4  0 1 0 Angeles, J., 1997, “ Fundamentals of Robotic Mechanical Systems ”, 0 0 1 − s 0 c  − s 0 c  Springer –Verlag, New York, USA.    2 2   3 3  Campos, A., Guenther, R. Martins, D, 2002, “Kinematics of parallel − manipulators based on Kirchhoff circuit law”, Proceedings of the CONEM 1 0 0  c5 s5 0 (A2) 2002- CDROM , ABCM - Brazil. 4 =  −  5 =   R5 0 c4 s4 ; R6 s5 c5 0 Ceccarelli, M., 2000 “Screw axis defined by Giulio Mozzi in 1763 and     early studies on helicoidal movement”, Mechanism and Theory 0 s4 c4  0 0 1 35(2000): 761-770. 1 =[][]− T 2 = − T p2 fs 1 fc 1 0 ; p3 gc 2 0 gs 2 ; Davidson, J.K. and Hunt, K.H., 2004, “ Robots and Screw Theory ”, Oxford University Press, Oxford, Great Britain. 3 = [][][]− T 4 = T 5 = T p4 hc 3 0 hs 3 ; p5 0 0 0 ; p6 0 0 0 Davies, T. H., 1981, “Kirchhoff's circulation law applied to multi-loop kinematic chains”, Mechanism and Machine Theory 16: 171-183.

Davies, T. H., 1983, “Mechanical networks – I: Passivity and θ where, si=sin ( θ i) and c i=cos ( i). Now it is necessary to transform screw coordinates from one redundancy”, Mechanism and Machine Theory 18: no. 2, pp. 95-101. Davies, T. H., 2000, “The 1887 committee meets again. subject: system to another. For this purpose, we may use the screw freedom and constraint”, in H. Hunt (ed.), Ball 2000 Conference , University coordinates transformation, Eq. (9) and Eq. (11). Employing these of Cambridge, Cambridge University Press, Trinity College, pp. 1-56. equations we can obtain the normalized screws of the joints of the Downing, D.M., 2002, “Quality Indices for Robots Manipulators”, PhD. PUMA in the coordinate system fixed to link 4, R-system, by Thesis, University of Melbourne, Department of Mechanical and Manufacturing Engineering, Melbourne, Australia. Duffy, J, 1996, “ and Kinematics with Application to Robotics”, 4 ˆ =4 3 2 1 ˆ = (− − − )T $1 T3 T2 T1 $1 s23 ,0, c23 ; fc23 , x14 , fs23 Cabridge University Press, Cambridge Hunt, K. H., 1978, “Kinematic Geometry of Mechanisms”, Clarendon 4 ˆ =4 3 2 ˆ = ()′ T $2 T3 T2 $2 g;0,1,0 s23 ,0, x14 Press, Oxford. Hunt, K. H., 1987, “Robot kinematics--a compact analytic inverse 4 $ˆ =4T 3$ˆ = (),0,0;0,1,0 −h T 3 3 3 (A3) solution for velocities”, Trans. ASME, Journal of Mechanisms, 4 $ˆ = ()0,0,0;0,0,1 T Transmissions and Automation in Design 109: 42-49. 4 Hunt, K. H., 2000, “Don't cross-thread the screw”, in H. Hunt (ed.), Ball 4 $ˆ =4T 5$ˆ = (),0 −s ,c 0,0,0; T 2000 Conference , University of Cambridge, Cambridge University Press, 5 5 5 4 4 Trinity College, pp. 1-37. 4 $ˆ =4T 5T 6 $ˆ = ()c ,c s ,s s 0,0,0; T Martins, D. Guenther, R., 2003, “Hierarchical Kinematic Analysis of 5 5 6 6 5 4 5 4 5 Robots”, Mechanism and Machine Theory 38(6):497-518.

Tsai, L.-W., 1999, “ Robot Analysis: the Mechanics of Serial and

θ θ θ θ = + where sik =sin ( i+ k), c ik =cos ( i+ k), x14 gc2 hc23 and Parallel Manipulators” , John Wiley & Sons, New York. ′ = −( + ) Sciavicco, L. Siciliano, B., 1996, “ Modeling and Control of Robot x14 gc 3 h ; the letters f, g and h being the distances shown in Manipulator” , McGraw-Hill, New York. Fig. 9.

356 / Vol. XXVII, No. 4, October-December 2005 ABCM