Abstract
This paper presents a new approach to calculate the direct and inverse differential kinematics for serial manipulators. The approach is an extension of the Davies method for open kinematic chains based on a virtual kinematic chain concept introduced in this paper. It is a systematic method that unifies the kinematics of serial manipulators considering the type of kinematics and the coordinate system of the operational space and constitutes an alternative way to solve the differential kinematics for manipulators. The usefulness of the method is illustrated by applying it to an industrial robot.
Robot analysi; differential kinematics; screw theory
TECHNICAL PAPERS
Differential kinematics of serial manipulators using virtual chains
A. Campos; R. Guenther; D. Martins
Universidade Federal de Santa Catarina; Departamento de Engenharia Mecânica; Laboratório de Robótica; Caixa Postal 476; Campus Universitário Trindade; 88040 900 Florianópolis, SC. Brazil; alexandre@emc.ufsc.br; guenther@emc.ufsc.br; dmartins@das.ufsc.br
ABSTRACT
This paper presents a new approach to calculate the direct and inverse differential kinematics for serial manipulators. The approach is an extension of the Davies method for open kinematic chains based on a virtual kinematic chain concept introduced in this paper. It is a systematic method that unifies the kinematics of serial manipulators considering the type of kinematics and the coordinate system of the operational space and constitutes an alternative way to solve the differential kinematics for manipulators. The usefulness of the method is illustrated by applying it to an industrial robot.
Keywords: Robot analysi, differential kinematics, screw theory
Introduction
Kinematics is a branch of physics concerned with the geometrically possible movements of a body or a system of bodies without considering the forces and masses involved.
Robot manipulator kinematics deals with the movements of the robot endeffector and how the robot joints need to move, in a coordinate manner, to achieve the endeffector prescribed movement.
Differential kinematics relates the velocities of the manipulator components. These velocities may be the velocities at the joints of the manipulator or the velocities of one or more links in the manipulator kinematic chain. The standard approach to differential kinematics is to relate joint and endeffector velocities through the Jacobian matrix, which allows the calculation of the endeffector velocities given the joint velocities (direct differential kinematics) or, to determine the joint velocities in order to move the endeffector with a prescribed speed (inverse differential kinematics).
Another important feature of differential kinematics is the singularity analysis, commonly based on the Jacobian matrix.
Furthermore, differential kinematics is used to define indices for the evaluation of the manipulator performance (Sciavicco, 1996), e.g. manipulability ellipsoids (Angeles, 1997). Such indices, also known as quality indices (Downing, 2002), may be helpful both for the mechanical manipulator design and for determining suitable manipulator configurations to execute a given task.
In the literature, the differential kinematics of robots with serial kinematic chains (serial robots for short) is described using variations of two main approaches: the method based on DenavitHartenberg parameters (Sciavicco, 1996) and the screwbased method (Hunt, 1987; Duffy, 1996; Davidson and Hunt, 2004). The latter allows the expression of the Jacobian manipulator in a greatly simplified manner by expressing the screws in a properly chosen reference frame (Tsai, 1999).
In both descriptions the direct differential kinematics is usually obtained by calculating the Jacobian and, after this, the inverse kinematics is obtained by inverting the Jacobian matrix.
This paper presents a new variation of the screwbased method that allows the determination of the direct and the inverse differential kinematics using a single systematic approach.
This approach is derived from the Davies formulation of the Kirchhoff law, here designated as the Davies method (Davies, 1981, 1983). The Davies method uses the differential kinematics screw representation, as described below for completeness.
The Davies method allows the calculation of the differential kinematics of closed kinematic chains by relating the joint rates along the chain. By considering that closed kinematic chains have actuated joints (with known velocities) and passive joints (in which the velocities will be calculated), it may be stated that, more specifically, the Davies method is a systematic way to express the joint rates of passive joints as functions of the joint rates of the actuated joints.
The Davies method, very useful for analyzing mechanical networks with multiloop kinematic chains, has, however, two drawbacks when applied to robot kinematics. First, it is limited to fully closed kinematic chains; therefore, it is not possible to apply this method to solve the differential kinematics of serial robots (open kinematic chains). Second, the method cannot be used to obtain information about the rigid body movement of a specific link, e.g. the robot endeffector in a desired operational space (Cartesian, cylindrical etc.).
This paper formalizes the concept of a virtual kinematic chain as suggested by Davies (Davies, 2000) and shows that by using this concept it is possible to overcome the Davies method drawbacks mentioned above and to extend the method to robot kinematics in order to calculate its direct and inverse differential kinematics using the same single systematic approach.
Furthermore, it allows the determination of the inverse differential kinematics in a coordinate system (Cartesian, cylindrical etc.) suitable for the endeffector task, which is not so evident to be achieved using conventional methods.
This paper has the following structure. Initially, the differential kinematics of a body is represented using screws. Next, the Davies method and the joint space kinematic solution are described. Then, the concept of a virtually modified chain and its properties are proposed. Following this, the joint space kinematics for a virtually modified chain is solved. Finally, the differential kinematics using virtual chains is discussed and the direct and inverse differential kinematics for a PUMA serial manipulator is calculated using the proposed method for a Cartesian and a cylindrical operational space.
Nomenclature
$= screw movement or twist
h = pitch of the screw
Vp = linear velocity of point p
S_{O} = position vector of any point at the screw axis
= normalized twist: a screw
S = normalized vector parallel to screw axis
N = matrix containing the normalized twists
F_{b} =gross degree of freedom
F_{N} =net degree of freedom
d =order of the screw system
n =number of links of a kinematic chain
f =degree of freedom of a kinematic pair
m =rank of matrix containing the normalized twists
T = transformation matrix of screw coordinates
R = rotation matrix
W = skewsymmetric matrix representing a vector
Greek Symbols
w = differential rotation about the screw axis, angular velocity
t = differential translation along the screw axis, linear velocity
Y = twist magnitude
q = position angles at the rotary joints
Subscripts
s relative to secondary
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 O(X,Y,Z) may be represented by a differential rotation about a certain fixed axis and a simultaneous differential translation along the same axis. The complete movement of the rigid body, combining rotation and translation, is called screw movement or twist $. Fig. 1 shows a body "twisting" around an axis instantaneously fixed with respect to the inertial reference frame. This axis is called the screw axis and the ratio of the linear velocity and the angular velocity is called the pitch of the screw h= t/w.
The twist represents the differential movement of the body with respect to the inertial frame and may be expressed by a pair of vectors, i.e. $=(w ;V_{p}). The vector w=(L, M, N ) represents the angular velocity of the body with respect to the inertial frame. The vector V_{p}=(P^{*}, Q^{*} ,R^{*}) represents the linear velocity of a point P attached to the body which is instantaneously coincident with the origin O of the reference frame (see Fig. 2).
The vector V_{p} consists of two components: a) a velocity parallel to the screw axis represented by t = h w; and b) a velocity normal to the screw axis represented by S_{O}xw, where S_{O} is the position vector of any point at the screw axis.
A twist may be decomposed into its amplitude and its corresponding normalized screw. The twist amplitude Y is either the magnitude of the angular velocity of the body, w, if the kinematic pair is rotative or helical, or the magnitude of the linear velocity, V_{p}, if the kinematic pair is prismatic. Consider a twist given by $=(w;V_{p})^{T} = (L, M, N ;P^{*}, Q^{*} ,R^{*})^{T}. Then, the correspondent normalized screw is =(L, M, N; P^{*}, Q^{*} ,R^{*} )^{T}. This normalized screw is a twist in which the magnitude Y is factored out, i.e.
The normalized screw coordinates (Davidson and Hunt, 2004) may be defined as a pair of vectors, namely, (L,M,N) and (P*,Q*,R*), given by,
where S is the normalized vector parallel to the screw axis. Notice that the vector (S_{O}xS) determines the moment of the screw axis with respect to the origin of the reference frame.
The movement between two adjacent links, belonging to an nlink kinematic chain, may also be represented by a twist. In this case, the twist represents the movement of link i with respect to link (i1).
In Robotics, generally, the movement between a pair of bodies is determined by either a rotative or a prismatic kinematic pair.
For a rotative pair the pitch of the twist is null (h=0). In this case the normalized screw is expressed by
For a prismatic pair the pitch of the twist is infinite (h = ¥) and the normalized screw reduces to
Often it is useful to represent the differential movement of a body, expressed by a twist $, in different reference frames. In what follows, a 6 x 6 matrix of transformation T to serve this purpose is presented (Tsai,1999).
Consider two reference frames of interest (X_{i},Y_{i},Z_{i}) and (X_{j},Y_{j},Z_{j}) as in Fig. 3.
The position of origin O_{j} relative to the (X_{i},Y_{i}, Z_{i}) frame is given by ^{i}p_{j}=[p_{x},p_{y},p_{ z}]^{T} and the orientation of the (X_{j},Y_{j},Z_{j} ) frame relative to the (X_{i},Y_{i},Z_{i}) frame is described by a rotation matrix ^{i}R_{j}. A screw represented in the (X_{i},Y_{i}, Z_{i}) frame is denoted by ^{i}$, and the same screw represented in the (X_{j},Y_{j},Z_{j}) frame is denoted by ^{j}$.
Following the normalized screw definition, we have
The line vectors S and the moment vectors S_{O} of the two screws are related by the following transformations:
Hence
where
is a 6 x 6 matrix, and
is a 3 x 3 skewsymmetric matrix representing the vector ^{i}p_{j} (expressed in the ith frame).
Since ^{i}W_{j} is skewsymmetric and ^{i}R_{j} is orthogonal, the inverse transformation matrix can be written as
Hence, given a screw in the jth frame, we can express it in the ith frame by applying Eq. (9), and vice versa using Eq. (11).
Davies Method
The Kirchhoff circulation law states that the algebraic sum of potential differences along any electrical circuit is zero. Davies adapts the Kirchhoff law to solve the differential kinematics of closed chain mechanisms.
The KirchhoffDavies circulation law states that "The algebraic sum of relative velocities of kinematic pairs along any closed kinematic chain is zero'' (Davies, 1981).
Using this law the relationship between the velocities of a closed kinematic chain may be obtained in order to solve its differential kinematics, as is presented in the following example.
Let the planar four bar mechanism of Fig. 4 be formed by links 1, 2, 3 and 4 and by the rotative joints A, B, C and D.
Let the twist $_{A} represent the movement of link 2 in relation to 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} represent the movement of link 1 in relation to link 4. The twists $_{A}, $_{B}, $_{C} and $_{D} represent the kinematic pairs A, B, C and D, respectively. Consider that the planar mechanism lies in the XYplane, so the twists $_{A}, $_{B}, $_{C} and $_{D} have only three components since the linear velocity V_{p} at any point on the mechanism does not have the R^{*} component in the Zaxis direction. Additionally, the angular velocity of any link of the mechanism does not have the L and M components in the XYplane. Therefore, for the four bar mechanism in the XYplane, the twist components are only N , P^{*} and Q^{*} and all the twists are spanned by three independent twists.
The planar four bar mechanism forms a closed kinematic chain. The movement of link 2 in relation to link 1 is represented by $_{A}. The movement of link 3 in relation to link 1 is expressed by $_{A}+$_{B}. 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}.
The kinematic pairs connecting link 1 to itself form a closed kinematic chain and, for this closed chain, the KirchhoffDavies circulation law, regarding the circuit direction indicated in Fig. 4, is given by
where 0 is a zero vector whose dimension (3x1) corresponds to the dimension of twists A, B, C and D.
According to Eq. (1) this equation may be rewritten as
where
^{A} represents the normalized screw of twist $_{A} and Y_{A} represents the velocity (angular in this case) magnitude of twist A, with the same applying to the kinematic pairs B, C and D.Equation (13) is referred to as the constraint equation of the four bar mechanism and, in matrix form, 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 case all the normalized screws belong to a third order screw system (Hunt, 1978). Additionally, it may be observed that the four bar mechanism has only one independent circuit or loop in its closed kinematic chain.
In general the constraint equation of a mechanism with movements in a dth order screw system is given by
where N is the network matrix containing the normalized screws whose signs depend on the circuit direction, Y is the magnitude vector and F_{b} is the gross degree of freedom i.e. the sum of the degrees of freedom of all mechanism joints (Fb = Sf_{i}), with f_{i} being the degree of freedom of the ith joint.
Joint Space Kinematic Solution
Closed kinematic chains, unlike open kinematic chains, contain passive kinematic pairs, in addition to active kinematic pairs. The velocity of an active kinematic pair is given by an external actuator, e.g. a servomotor. The velocities of the passive kinematic pairs are functions of the velocities of the active kinematic pairs due to the closure of the kinematic chain.
The use of the constraint equation, Eq. (15), allows the calculation of the passive joint velocities as functions of the active joint velocities. This procedure is referred to as the joint space kinematic solution (Davies, 1981).
To achieve this solution, the constraint equation needs to be rearranged, highlighting the actuated and the passive pair velocities.
To this end, one may consider that Eq. (15) establishes d constraints for a kinematic chain with F_{b}> d variables. This means that there are only F_{N}< F_{b} independent variables in the constraint equation, being
where F_{N} is the net degree of freedom or the mobility of the kinematic chain, which is also the number of variables necessary to describe all the mechanism movements considering all kinematic pairs.
To obtain the joint space kinematics we rewrite the magnitude vector Y rearranging it in d secondary or unknown magnitudes Y_{s} and F_{N} primary or known magnitudes, i.e.. Rearranging the network matrix coherently with the magnitude division, we get, where the secondary network submatrix N_{s} corresponds to the secondary joints and the primary network submatrix N_{p} corresponds to the primary joints. This results in
This equation may be rewritten as
and the joint space kinematic solution is given by
The four bar mechanism (Fig. 4) is planar (d=3) and has four joints, with one degree of freedom (f_{i}=1) each. The sum of the degrees of freedom of all mechanism joints results in (F_{b}=4). The net degree of freedom of a four bar mechanism is F_{N}=F_{b}d=43=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, the velocity magnitude Y_{A} of pair A is determined by an external actuator and the velocity magnitudes of the passive kinematic pairs, Y_{B}, Y_{C} and Y_{D}, are functions of the magnitude Y_{A}.
Rearranging Eq. (14), the network primary submatrix results and the network secondary submatrix is . If N_{s} is invertible, the velocity magnitudes of secondary pairs Y_{A} are calculated by
which is the joint space kinematic solution for the four bar mechanism.
This shows that the approach of combining the screw representation of the movements, the Davies method and the joint space kinematic solution presented above, provides a systematic way to relate the joint velocities in closed kinematic chains. This useful systematic approach may be extended to obtain the differential kinematics of serial manipulators (open kinematic chains) using the virtual kinematic chain concept introduced below.
The Virtual Kinematic Chain Concept
The virtual kinematic chain, virtual chain for short, is essentially a tool to obtain information about the movement of a kinematic chain or to impose movements on a kinematic chain.
In this paper we define a virtual chain as a kinematic chain composed of links (virtual links) and joints (virtual joints) satisfying the following three properties: a) the virtual chain is open; b) it has joints whose normalized screws are linearly independent; and c) it does not change the mobility of the real kinematic chain.
Either to obtain information about the movement of a (real) chain or to change its movement, we apply virtual chains to close open real chains.
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 constraint equation and the joint space kinematic solution.
In this paper we present two useful virtual chains to obtain and impose movement in Robotics: the orthogonal PPPS chain and the RPPS chain. For these virtual chains, consider the movements in the space described by a inertial reference frame named Bsystem (X,Y,Z).
Orthogonal PPPS Virtual Chain (Cartesian System)
A virtual chain useful to describe movements in threedimensional space is the PPPS orthogonal chain with three prismatic joints whose movements are in the X, Y and Z orthogonal directions and a spherical joint which is instantaneously substituted by three serial orthogonal rotative joints in the X, Y and Z directions, see Fig. 5. The prismatic joints are called px, py and pz, and the rotative joints are called rx, ry and rz_{.}
The first prismatic joint (px) and the last rotative joint (rz) are attached to the real chain (kinematic chain to be analyzed). Joint px connects real link R1 with virtual link C1, joint py connects virtual link C1 with virtual link C2, joint pz connects virtual link C2 with virtual link C3 and joint S connects virtual link C3 with real link R2 (see Fig. 5).
Let the twist $_{px} represent the movement of link C1 in relation to link R1, twist $_{py} represent the movement of link C2 in relation to link C1, twist $_{pz} represent the movement of link C3 in relation to 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 relation to real link R1 may be expressed by $_{px}+$_{py}+$_{pz}+$_{rx}+$_{ry} +$_{rz}.
Consider the Creference system (Csystem) attached to the virtual link C3 at the spherical joint. Therefore, there is no rotation between the Csystem and Bsystem and the three orthogonal rotative joints are aligned, respectively, with the X, Y and Z axes. So, the normalized screws corresponding to the virtual joints represented in the Csystem are
It may be observed that the orthogonal PPPS virtual chain represents the movements in a spatial Cartesian system.
RPPS Virtual Chain (Cylindrical System)
Another useful virtual chain to describe movements in the threedimensional space is the RPPS kinematic chain composed of a rotative joint (rz) aligned with the Z axis, a prismatic joint (pz) in the Z axis direction, a prismatic joint (pr) in a direction orthogonal to the Z axis direction (named radial direction) and a spherical joint (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 and S joints are linearly dependent and the RPPS kinematic chain is in a singularity, and cannot be used as a virtual chain.
In this virtual chain the first three joints (rz, pz and pr) move into a cylinder. The spherical joint may be instantaneously substituted by three serial orthogonal revolute joints with 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 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 virtual link P3 and joint S connects virtual link P3 with real link R2 (see Fig. 6).
Let twist $_{rz} represent the movement of link P1 in relation to link R1, twist $_{pz} represent the movement of link P2 in relation to link P1, twist $_{pr} represent the movement of link P3 in relation to link P2, and twist $_{rn}+$_{rt}+$_{rb} represent the movement of link R2 in relation to link P3. Then, the movement of real link R2 in relation to real link R1 may be expressed by $_{rz}+$_{pz}+$_{pr}+$_{rn}+$_{rt} +$_{rb}.
Consider that the system at the spherical joint is fixed to the virtual link P3 and that the three orthogonal rotative joints are aligned, respectively, with the and axes. Thus, the normalized screws corresponding to the virtual joints represented in the system are
where r is the ray distance, i.e. the instantaneous distance from the cylindrical axis to the system origin.
It may be observed that the RPPS virtual chain represents a cylindrical coordinate system.
Modified Kinematic Chain
The modified kinematic chain is the closed chain obtained by adding one or more virtual chains to the real chain. The virtual chain selection depends on the information to be obtained or imposed between the real links jointed by the virtual chain.
In this section we describe the modified kinematic chain obtained by adding a virtual chain to a nlink serial manipulator whose movements belong to a d order screw system.
Consider that the manipulator chain has n links (Fig. 7), numbered from zero (link at the base) to n (endeffector). The movement of link (i) in relation to link (i1) is defined by the kinematic pair A_{i}, and it is represented by the twist $_{Ai}. Additionally, _{Ai} represents its corresponding normalized screw.
Consider that it is necessary to acquire information on or impose movement between the base and the endeffector of the serial manipulator. To achieve this end a suitable virtual chain is added between these two links. A general virtual chain used to modify the open chain is shown in Fig. 8 in thinner lines.
As the manipulator movements belong to a d order screw system, this virtual chain should have d joints with linearly independent normalized screws in order not to change the mobility of the real kinematic chain.
Thus, the virtual chain has d links numbered from (n+1) (link jointed to the base) to (n+d) (link jointed to the endeffector). The relative movement between two adjacent virtual links is defined by the corresponding virtual kinematic pair. The movement of the virtual link (n+1) with respect to the base (link 0) is defined by the kinematic pair B_{1} and is represented by the twist $_{B1}. The movement of the virtual link (n+2) with respect to the virtual link (n+1) is given by the kinematic pair B_{2} and is represented by the twist $_{b2}, and so on.
In general, each virtual kinematic pair has only one degree of freedom (f=1). If a pair of the virtual chain has more degrees of freedom (f >1), it could be instantaneously substituted by f serial virtual pairs with one degree of freedom (e.g. spherical pair).
Adding this virtual chain to the manipulator converts the real open chain in a modified closed kinematic chain with (n+d) links.
The kinematic pairs of this modified chain may be divided into actuated (primary) pairs and passive (secondary) pairs like parallel manipulators.
For a serial manipulator in the 3D operational space the order of the screw system is six and the virtual chain has six virtual pairs. These six pairs are represented by six mutually independent twists.
The constraint equation for the modified kinematic chain is obtained by applying the KirchhoffDavies circulation law to the modified kinematic chain, considering the circuit direction indicated in Fig. 8, and is given by
Notice that virtual twists are negative because they represent the velocity of the base in relation to the endeffector, in the opposite direction of the circuit, while the real twists represent the velocity of the endeffector in relation to the base.
The network matrix results in:
and the velocity magnitude vector is
The network matrix (24) and the velocity magnitude vector (25) define the modified kinematic chain constraint equation which allows the calculation of the differential kinematics as is described below.
Differential Kinematics Using Virtual Chains
Differential Kinematics using virtual chains relates the link movements of a kinematic chain applying the Davies method to a virtually modified kinematic chain. Due to the freedom to select the primary kinematic pairs, it is possible to solve different kinematic problems, employing the same method.
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 kinematics consider the velocity of the endeffector in relation to the base. For this purpose, we add a virtual chain between the base and the endeffector of the serial manipulator as shown in Fig. 8.
Direct Kinematics.
In direct kinematics the objective is to determine the velocity of the endeffector in the operational space as a function of the velocities of the actuated kinematic pairs in the joint space.
To this end the magnitudes of the real kinematic pairs (joint space) are selected as the primary vector components (Y_{p}) and the magnitudes of the virtual kinematic pairs (operational space) are selected as the secondary vector components (Y_{s}). Thus, Eq.(19) becomes
This highlights that using the virtual kinematic chain concept the Davies method should be extended to calculate the direct differential kinematics of serial manipulators.
Inverse Kinematics.
The inverse kinematics maps endeffector velocities (operational space) into joint velocities (joint space).
To solve the inverse kinematics we select the components of the vector Y_{p} as the magnitudes of the virtual kinematic pairs (operational space) and the components of the vector Y_{s} as the magnitudes of the real kinematic pairs (joint space) of the modified kinematic chain, then Eq.(19) results in
It could be remarked that, using the virtual kinematic chain concept integrated with the Davies method, the direct and inverse differential kinematics of serial manipulators may be obtained employing the same method, simply by selecting the primary and secondary kinematic pairs according to the desired result.
In the following, the method presented is applied to an industrial robot manipulator.
Differential Kinematics of the PUMA Robot
The direct and inverse differential kinematics of the PUMA robot, considering a Cartesian and a cylindrical operational space, is presented in this section in order to illustrate the approach presented.
The PUMA robot and its variants have widespread use as industrial robots. It is also one of the most studied configurations found in research papers on Robotics. For these reasons, this robot was chosen as an example of differential kinematics using the virtual chains proposed in this work.
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 socalled spherical wrist.
In Fig. 9, q_{i} (i=1, , 6) are the position angles at the rotary joints. The twists $_{i} corresponding to joint movements are aligned with the joint axes and are shown in the figures as conical arrows.
In this paper the PUMA robot differential kinematics is described using screws to represent the movement of the kinematic pairs. The reference frame in which the screws are expressed could be suitably chosen in order to get screws with simple components.
To this end several authors (Hunt, 1987; Martins and Guenther, 2003) use a system fixed to link 4 (X_{4},Y_{4},Z_{4} ) at the center of the spherical wrist to describe the screws corresponding to the kinematic pairs of the manipulator.
In this work, the reference system fixed to link 1 (base) is named the Bsystem and the reference system fixed to link 4 is named the Rsystem, see Fig. 9. The normalized screws of the PUMA robot, represented in the Rsystem, see ^{Appendix A} Appendix A for details, are (Hunt, 1987)
where, s_{i}=sin(qi); s_{ik}=sin(q_{i}+ q_{k}); c_{i}=cos(q_{i}); c_{ik}=cos(q_{i}+q_{k}); etc... x_{14} = gc_{2} + hc_{23}; x_{14} = (gc_{3}+h); and f, g and h are the distances shown in Fig. 9.
Cartesian Operational Space
The Cartesian operational space corresponds to a screw system with d=6. To obtain the differential kinematics in the Cartesian operational space, we chose the PPPS virtual chain presented in Fig. 5 to be added between the base and the endeffector.
In this case, the modified kinematic chain corresponds to the closed chain shown in Fig. 10.
According to the KirchhoffDavies circulation law the network matrix N of this closed kinematic chain is
where all the normalized screws are represented in the same coordinate system and the normalized screw signs depend on the circuit direction shown in Fig. 10. The corresponding velocity magnitude vector is
Direct Kinematics in the Cartesian Operational Space
The direct kinematics is obtained by calculating the virtual chain twist magnitudes, which are chosen as the secondary magnitude vector components, i.e.,
Consequently, the network secondary submatrix is given by
The primary magnitude vector has the input as components, i.e., the magnitudes of the actuated pairs:
Therefore, the network primary submatrix is
The secondary magnitude vector is calculated using Eq.(19). In order to simplify the inversion of matrix N_{s} we choose the Csystem to represent the normalized screws and, thus, Eq.(19) is given by
From Eq.(21) it is observed that = I, where I is the (6 x 6) identity matrix and employing Eq.(8)
where from Eq.(28)
Thus, the direct kinematics (Eq.(35)) is given by
where ^{C}T_{R} is the transformation matrix of screw coordinates calculated using the rotation matrix ^{C}R_{R} and the position vector ^{C}p_{R} (see Eq.(9)).
There is no rotation between the Csystem and the Bsystem so the Csystem is always parallel to the Bsystem and thus, we have,
The matrix ^{C}R_{R} is obtained through a matrix product, see (Hunt, 1987) for details, as
Taking into account that the movements of the spherical wrist do not affect the endeffector translation, the Rsystem origin may represent the position of the PUMA endeffector. The Csystem origin and the Rsystem origin may then be considered coincident. So the vector ^{C}p_{R} is null.
Therefore, using Eq.(9), the transformation matrix of screws coordinates may be expressed by
where [0] is the (3 x3 ) zero matrix.
Equation (38) establishes the relation between the real joint velocity magnitudes Y_{p}(Y_{1}, ,Y_{6}) and the virtual joint velocity magnitudes Y_{s}(Y_{rx}, ,Y_{pz}) which, considering the special configuration of the virtual chain, represent the Cartesian velocity of the endeffector with respect to the base represented in the Csystem. The former three components of the velocity state (Y_{rx},Y_{ry},Y_{rz}) are the angular velocities of the endeffector with respect to the base, represented in the Csystem, and the latter three components (Y_{px},Y_{py},Y_{pz}) are the linear velocities of a point on the endeffector, instantaneously at the Csystem origin, with respect to the base, represented in the Csystem. Therefore, using the twist definition, we may express the velocity of the endeffector with respect to the base, represented in the Csystem, by
Inverse Kinematics in the Cartesian Operational Space
The inverse kinematics is obtained by calculating the real chain twist magnitudes which, in this case, are chosen as the secondary magnitude vector components,
Accordingly, the network secondary submatrix is
The primary magnitude vector has the input as components, i.e., the magnitudes of the virtual pairs:
Thus, the network primary submatrix is given by
The secondary magnitude vector is calculated using Eq.(19), which, aiming at simplifying the inversion of the network secondary submatrix (N_{s},), Rsystem is represented as
where, using Eq.(28),
and employing Eq.(8)
where from Eq.(21) it could be observed that ^{C}N_{p}=I.
Thus, replacing Eq.(48) and Eq.(49) into Eq.(47), the inverse kinematics becomes
Note that the transformation of the screw matrix, according to Eq.(11) and Eq.(41) may be written as
Equation (50) establishes the inverse differential kinematics of the PUMA robot where the endeffector velocity is given in the Cartesian system described by the virtual chain.
Matrix ^{R}N_{s} in Eq.(50) is the Jacobian of the PUMA manipulator when it is calculated throughout the screw theory (Hunt, 1987), i.e. the screw based Jacobian. The method presented in this paper, like the screw based Jacobian method, allows the selection of a suitable coordinate system (Rsystem) aiming at obtaining a sparser Jacobian matrix.
Cylindrical Operational Space
For certain tasks, the description of the movements in operational spaces other than the Cartesian could be useful. For instance to represent a radial or tangential velocity of the endeffector to weld a pipe, the cylindrical operational space may be more suitable than the Cartesian space.
In order to illustrate the flexibility of the approach presented in this paper, the direct and inverse differential kinematics of the PUMA robot using a general cylindrical operational space is presented below.
Consider a robot welding around a pipe whose axis coincides with the Z axis of the B´system shown in Fig. 11.
The cylindrical operational space corresponds to a screw system in which d=6. To obtain the differential kinematics in the cylindrical operational space, we chose the virtual chain RPPS presented in Fig. 6 to be added between the base and the endeffector.
For this case the modified kinematic chain is shown in Fig. 12.
Applying the KirchhoffDavies circulation law, regarding the circuit direction indicated in Fig. 12, the network matrix N results in
and the corresponding velocity magnitudes vector is
Direct Kinematics in the Cylindrical Operational Space
The direct kinematics is obtained by calculating the virtual chain screw magnitudes which are chosen as the secondary magnitude vector components,
Consequently, the network secondary submatrix is given by
The primary magnitude vector has the input as components, i.e., the magnitudes of the actuated pairs:
Therefore, the network primary submatrix is
The secondary magnitude vector is calculated using the constraint equation shown in Eq.(19). To simplify the inversion of matrix N_{s} we chose the system to represent the normalized screws and thus Eq.(19) is given by
where, using Eq.(22),
and employing Eq.(8)
The screw coordinates matrix transformation is calculated using the rotation matrix and the position vector . Considering that the origins of the system and Rsystem coincide, the vector is null. The rotation matrix may be obtained by the matrix product
where ^{B}R_{R} is described in Eq.(4041) and
where c_{(rz)} and s_{(rz)} represent the cosine and sine, respectively, of the instantaneous angular position q_{rz} of the virtual rotative pair $_{rz}. It could be observed that the angle q_{rz} is null when the system and the Bsystem are parallel.
Therefore, the transformation matrix is given by
The calculation of the direct kinematics is obtained using Eq.(58)
Equation (64) describes the relation between the real joint velocity magnitudes Y_{p} (Y1, ,Y6) and the virtual joint velocity magnitudes Y_{s} (Y_{rx}, ,Y_{az}) which, considering the special configuration of the virtual chain, represent the cylindrical velocity of the endeffector with respect to the base represented in the system. The former three terms (Y_{rn},Y_{rt},Y_{rb}) of the endeffector velocity state represent the angular velocity (normal, tangential and binormal) of the endeffector with respect to the base, represented in the system. The latter three (Y_{px},Y_{pz},Y_{rz}) indicate, respectively, the radial linear velocity Y_{px}, the axis linear velocity Y_{pz} and the azimuthal angular velocity Y_{rz} of a point on the endeffector, instantaneously at the system origin, with respect to the base, represented at the system.
Inverse Kinematics in the Cylindrical Operational Space
The inverse kinematics is obtained by calculating the real chain screw magnitudes which are the secondary magnitude vector components, i.e.,
Then, the network secondary submatrix is
The primary magnitude vector contains the magnitudes of the virtual pairs:
Thus, the network primary submatrix is given by
The secondary magnitude vector is calculated using the constraint equation (Eq.(19)), which, aiming to simplify the inversion of the matrix, is represented in the Rsystem, as shown in Eq.(47), here repeated
and employing Eq.(8)
where the transformation of the screw coordinate matrix, using Eq.(11), is
So, the inverse kinematics, using Eq.(69), is given by
It should be remarked that the inverse differential kinematics is obtained by inverting the matrix corresponding to the manipulator joint screws represented in the Rsystem, the same matrix is inverted to obtain the inverse kinematics in the Cartesian operational space.
Similarly, by adding a suitable virtual chain, between the base and endeffector, it is to possible calculate the inverse differential kinematics based on the endeffector velocity given in a spherical coordinate system.
This example shows that the proposed method allows the determination of the inverse differential kinematics in a coordinate system (Cartesian, cylindrical etc.) suitable for the endeffector task. This is not so evident achieved using conventional methods (e.g. DenavitHartemberg based method and screw based method).
Conclusions
This paper presents a simple, systematic and unified approach to obtain the differential kinematics of serial manipulators using the screw representation.
By introducing a virtual chain concept in order to close open kinematic chains it is shown that the differential kinematics of serial manipulators can be calculated using the Davies method, a simple and systematic way to relate the joint velocities in closed kinematic chains.
The proposed approach results unified because the direct and the inverse kinematics are obtained in a similar way, by selecting variables according the desired result.
Furthermore, the approach allows the determination of the inverse differential kinematics in a coordinate system (Cartesian, cylindrical, etc.) suitable for the endeffector task, which could be very useful, and this is not trivially achieved using conventional methods.
Like the screw based Jacobian method, the presented approach allows the selection of a suitable coordinate system aiming at a sparser Jacobian matrix.
Acknowledgments
This work was partially supported by 'Fundação Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)', Brazil, and by 'Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)´, Brazil.
In this appendix a method to calculate the normalized screws correponding to the joint movements of the PUMA robot is presented.
Aiming to find the screws corresponding to the PUMA joints, we first define a reference (home) configuration for the manipulator and a coordinate system fixed to each link, namely 1,2, ... and 6. Although the reference position can be chosen arbitrarily, it is usually chosen at a location where, if possible, all the joint axes are parallel or orthogonal. The reference configuration for PUMA and the coordinate systems 1,2,... and 6 fixed to the respective links are showed in Fig. A1 where all the joint angles (q_{i}) are null and the coordinate systems are parallel.
According to Eq.(3) the normalized screws of joints 1,2,.. and 6 expressed, respectively, at the coordinate system 1,2, and 6 are easily identified as
where the subindex represents the joint and the superindex represents the coordinate system where the normalized screws are described.
Considering the coordinate systems of Fig. A1, the rotation matrices ^{i1}R_{i} and the vectors ^{i1}p_{i} between adjacent coordinate systems are
where, s_{i}=sin(q_{i}) and c_{i}=cos(q_{i}).
Now it is necessary to transform screw coordinates from one system to another. For this purpose, we may use the screw coordinates transformation, Eq. (9) and Eq. (11). Employing these equations we can obtain the normalized screws of the joints of the PUMA in the coordinate system fixed to link 4, Rsystem, by
where s_{ik}=sin(_{i}+ _{k}), c_{ik}=cos(_{i}+ _{k}), x_{14} = gc_{2} + hc_{23} and; the letters f, g and h being the distances shown in Fig. 9.
Paper accepted July, 2005.
Technical Editor: José Roberto de França Arruda
 Angeles, J., 1997, "Fundamentals of Robotic Mechanical Systems", Springer Verlag, New York, USA.
 Campos, A., Guenther, R. Martins, D, 2002, "Kinematics of parallel manipulators based on Kirchhoff circuit law", Proceedings of the CONEM 2002 CDROM, ABCM  Brazil.
 Ceccarelli, M., 2000 "Screw axis defined by Giulio Mozzi in 1763 and early studies on helicoidal movement", Mechanism and Machine Theory 35(2000): 761770.
 Davidson, J.K. and Hunt, K.H., 2004, "Robots and Screw Theory", Oxford University Press, Oxford, Great Britain.
 Davies, T. H., 1981, "Kirchhoff's circulation law applied to multiloop kinematic chains", Mechanism and Machine Theory 16: 171183.
 Davies, T. H., 1983, "Mechanical networks I: Passivity and redundancy", Mechanism and Machine Theory 18: no. 2, pp. 95101.
 Davies, T. H., 2000, "The 1887 committee meets again. subject: freedom and constraint", in H. Hunt (ed.), Ball 2000 Conference, University of Cambridge, Cambridge University Press, Trinity College, pp. 156.
 Downing, D.M., 2002, "Quality Indices for Robots Manipulators", PhD. Thesis, University of Melbourne, Department of Mechanical and Manufacturing Engineering, Melbourne, Australia.
 Duffy, J, 1996, "Statics and Kinematics with Application to Robotics", Cabridge University Press, Cambridge
 Hunt, K. H., 1978, "Kinematic Geometry of Mechanisms", Clarendon Press, Oxford.
 Hunt, K. H., 1987, "Robot kinematicsa compact analytic inverse solution for velocities", Trans. ASME, Journal of Mechanisms, Transmissions and Automation in Design 109: 4249.
 Hunt, K. H., 2000, "Don't crossthread the screw", in H. Hunt (ed.), Ball 2000 Conference, University of Cambridge, Cambridge University Press, Trinity College, pp. 137.
 Martins, D. Guenther, R., 2003, "Hierarchical Kinematic Analysis of Robots", Mechanism and Machine Theory 38(6):497518.
 Tsai, L.W., 1999, "Robot Analysis: the Mechanics of Serial and Parallel Manipulators", John Wiley & Sons, New York.
 Sciavicco, L. Siciliano, B., 1996, "Modeling and Control of Robot Manipulator", McGrawHill, New York.
Appendix A
Publication Dates

Publication in this collection
02 Jan 2006 
Date of issue
Dec 2005
History

Received
July 2005 
Accepted
July 2005