## Serviços Personalizados

## Journal

## Artigo

## Indicadores

## Links relacionados

## Compartilhar

## Journal of the Brazilian Society of Mechanical Sciences and Engineering

##
*versão impressa* ISSN 1678-5878*versão On-line* ISSN 1806-3691

### J. Braz. Soc. Mech. Sci. & Eng. v.27 n.4 Rio de Janeiro out./dez. 2005

#### http://dx.doi.org/10.1590/S1678-58782005000400002

**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 end-effector and how the robot joints need to move, in a coordinate manner, to achieve the end-effector 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 end-effector velocities through the Jacobian matrix, which allows the calculation of the end-effector velocities given the joint velocities (direct differential kinematics) or, to determine the joint velocities in order to move the end-effector 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 Denavit-Hartenberg parameters (Sciavicco, 1996) and the screw-based 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 screw-based 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 multi-loop 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 end-effector 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 end-effector 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 = skew-symmetric 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

**xw, where**

*S*_{O}**is the position vector of any point at the screw axis.**

*S*_{O}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}*= (L, M, N ;P*

^{T}^{*}, Q

^{*},R

^{*})

*. Then, the correspondent normalized screw is =(*

^{T}*L, M, N; P*)

^{*}, Q^{*},R^{*}*. This normalized screw is a twist in which the magnitude Y is factored out,*

^{T}*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

*(*determines the moment of the screw axis with respect to the origin of the reference frame.

**S**x_{O}**S**)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 (i-1).

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*) as in Fig. 3.

_{j},Y_{j},Z_{j}

The position of origin *O _{j}* relative to the

*(X*frame is given by

_{i},Y_{i}, Z_{i})*[*

^{i}p_{j}=*p*]

_{x},p_{y},p_{ z}^{T}and the orientation of the (

*X*) frame relative to the

_{j},Y_{j},Z_{j}*(X*frame is described by a rotation matrix

_{i},Y_{i},Z_{i})*. A screw represented in the*

^{i}R_{j}*(X*frame is denoted by

_{i},Y_{i}, Z_{i})*$, and the same screw represented in the (*

^{i}*X*) frame is denoted by

_{j},Y_{j},Z_{j}*$.*

^{j}Following the normalized screw definition, we have

The line vectors ** S** and the moment vectors

**of the two screws are related by the following transformations:**

*S*_{O}Hence

where

is a 6 x 6 matrix, and

is a 3 x 3 skew-symmetric matrix representing the vector * ^{i}p_{j}* (expressed in the

*i*th frame).

Since * ^{i}W_{j}* is skew-symmetric and

*is orthogonal, the inverse transformation matrix can be written as*

^{i}R_{j}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 Kirchhoff-Davies 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, $

*represent the movement of link 3 in relation to link 2, $*

_{B}*represent the movement of link 4 in relation to link 3 and $*

_{C}*represent the movement of link 1 in relation to link 4. The twists $*

_{D}*$*

_{A},*, $*

_{B}*and $*

_{C}*represent the kinematic pairs A,*

_{D}*B*,

*C*and

*D,*respectively. Consider that the planar mechanism lies in the

*XY*-plane, so the twists $

*, $*

_{A}*, $*

_{B}*and $*

_{C}*have only three components since the linear velocity*

_{D}**at any point on the mechanism does not have the R**

*V*_{p}^{*}component in the

*Z*-axis direction. Additionally, the angular velocity of any link of the mechanism does not have the L and M components in the

*XY*-plane. Therefore, for the four bar mechanism in the

*XY*-plane, 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}*. The movement of link 4 in relation to link 1 is given by $*

_{B}*+$*

_{A}*+$*

_{B}*and the movement of link 1 in relation to itself is $*

_{C}*+$*

_{A}*+$*

_{B}**+$**

_{C}*.*

_{D}The kinematic pairs connecting link 1 to itself form a closed kinematic chain and, for this closed chain, the Kirchhoff-Davies 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 *d-th* 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*= S

*f*), with

_{i}*f*being the degree of freedom of the

_{i}*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*independent variables in the constraint equation, being

_{N}__<__F_{b}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 sub-matrix

*N*corresponds to the secondary joints and the primary network sub-matrix

_{s}*N*corresponds to the primary joints. This results in

_{p}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*=4). The net degree of freedom of a four bar mechanism is

_{b}*F*=

_{N}*F*=4-3=1. Consider that

_{b}-d*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

*, Y*

_{B}*and Y*

_{C}*, are functions of the magnitude Y*

_{D}_{A}.

Rearranging Eq. (14), the network primary sub-matrix results and the network secondary sub-matrix is . If *N _{s}* is invertible, the velocity magnitudes of secondary pairs Y

*are calculated by*

_{A}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 *B*-system *(X,Y,Z)*.

**Orthogonal PPPS Virtual Chain (Cartesian System)**

A virtual chain useful to describe movements in three-dimensional 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 *R*1 with virtual link *C*1, joint *py* connects virtual link *C*1 with virtual link *C*2, joint *pz* connects virtual link *C*2 with virtual link *C*3 and joint *S* connects virtual link *C*3 with real link *R*2 (see Fig. 5).

Let the twist $* _{px}* represent the movement of link

*C*1 in relation to link

*R*1, twist $

*represent the movement of link*

_{py}*C*2 in relation to link

*C*1, twist $

*represent the movement of link C3 in relation to link*

_{pz}*C*2, twist $

*+$*

_{rx}*+$*

_{ry}*represent the movement of link*

_{rz}*R*2 in relation to link

*C*3. 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 *C*-reference system (*C*-system) attached to the virtual link *C*3 at the spherical joint*.* Therefore, there is no rotation between the *C*-system and *B*-system 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 *C*-system 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 three-dimensional 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 *R*1 with virtual link *P*1, joint *pz* connects virtual link *P*1 with virtual link *P*2, joint *pr* connects virtual link *P*2 with virtual link *P*3 and joint *S* connects virtual link *P*3 with real link *R*2 (see Fig. 6).

Let twist $* _{rz}* represent the movement of link

*P*1 in relation to link

*R*1, twist $

*represent the movement of link*

_{pz}*P*2 in relation to link

*P*1, twist $

*represent the movement of link P3 in relation to link*

_{pr}*P*2, and twist $

*+$*

_{rn}*+$*

_{rt}*represent the movement of link*

_{rb}*R*2 in relation to link

*P*3. 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 *P*3 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 *n-*link 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* (end-effector). The movement of link (*i*) in relation to link (*i*-1) is defined by the kinematic pair *A _{i}*, and it is represented by the twist $

*. Additionally,*

_{Ai}*represents its corresponding normalized screw.*

_{Ai}

Consider that it is necessary to acquire information on or impose movement between the base and the end-effector 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 end-effector). 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 $

*, and so on.*

_{b2}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 Kirchhoff-Davies 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 end-effector, in the opposite direction of the circuit, while the real twists represent the velocity of the end-effector 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 end-effector in relation to the base. For this purpose, we add a virtual chain between the base and the end-effector of the serial manipulator as shown in Fig. 8.

**Direct Kinematics.**

In direct kinematics the objective is to determine the velocity of the end-effector 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

*). Thus, Eq.(19) becomes*

_{s}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 end-effector 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

*as the magnitudes of the real kinematic pairs (joint space) of the modified kinematic chain, then Eq.(19) results in*

_{s}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 so-called spherical wrist.

In Fig. 9, q* _{i}* (

*i*=1,…, 6) are the position angles at the rotary joints. The twists $

*corresponding to joint movements are aligned with the joint axes and are shown in the figures as conical arrows.*

_{i}

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 B-system and the reference system fixed to link 4 is named the R-system, see Fig. 9. The normalized screws of the PUMA robot, represented in the R-system, see Appendix A for details, are (Hunt, 1987)

where, s* _{i}*=sin(q

*i*); s

*=sin(q*

_{ik}*+ q*

_{i}*);*

_{k}*c*=cos(q

_{i}*);*

_{i}*c*=cos(q

_{ik}*+q*

_{i}*); etc... x*

_{k}_{14}= g

*c*

_{2}+ h

*c*

_{23}; x

_{14}= -(g

*c*

_{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 end-effector.

In this case, the modified kinematic chain corresponds to the closed chain shown in Fig. 10.

According to the Kirchhoff-Davies 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 sub-matrix is given by

The primary magnitude vector has the input as components, *i.e.*, the magnitudes of the actuated pairs:

Therefore, the network primary sub-matrix is

The secondary magnitude vector is calculated using Eq.(19). In order to simplify the inversion of matrix *N _{s}* we choose the

*C*-system 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

*and the position vector*

^{C}R_{R}*(see Eq.(9)).*

^{C}p_{R}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,

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 end-effector translation, the *R*-system origin may represent the position of the PUMA end-effector. The *C*-system origin and the *R*-system 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 end-effector with respect to the base represented in the *C*-system. The former three components of the velocity state (Y* _{rx}*,Y

*,Y*

_{ry}*) are the angular velocities of the end-effector with respect to the base, represented in the*

_{rz}*C*-system, and the latter three components (Y

*,Y*

_{px}*,Y*

_{py}*) are the linear velocities of a point on the end-effector, instantaneously at the*

_{pz}*C*-system origin, with respect to the base, represented in the

*C*-system. Therefore, using the twist definition, we may express the velocity of the end-effector with respect to the base, represented in the

*C*-system, 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 sub-matrix is

The primary magnitude vector has the input as components, *i.e.*, the magnitudes of the virtual pairs:

Thus, the network primary sub-matrix is given by

The secondary magnitude vector is calculated using Eq.(19), which, aiming at simplifying the inversion of the network secondary sub-matrix (*N _{s}*,),

*R*-system 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 end-effector 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 (

*R*-system) 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 end-effector 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 end-effector.

For this case the modified kinematic chain is shown in Fig. 12.

Applying the Kirchhoff-Davies 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 sub-matrix is given by

The primary magnitude vector has the input as components, *i.e.*, the magnitudes of the actuated pairs:

Therefore, the network primary sub-matrix 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 R-system coincide, the vector is null. The rotation matrix may be obtained by the matrix product

where * ^{B}R_{R}* is described in Eq.(40-41) and

where *c _{(rz)}* and

*s*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*

_{rz}*B*-system 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

*(Y*

_{s}_{rx},…,Y

_{az}) which, considering the special configuration of the virtual chain, represent the cylindrical velocity of the end-effector with respect to the base represented in the -system. The former three terms (Y

*,Y*

_{rn}*,Y*

_{rt}*) of the end-effector velocity state represent the angular velocity (normal, tangential and binormal) of the end-effector with respect to the base, represented in the -system. The latter three (Y*

_{rb}*,Y*

_{px}*,Y*

_{pz}*) indicate, respectively, the radial linear velocity Y*

_{rz}*, the axis linear velocity Y*

_{px}*and the azimuthal angular velocity Y*

_{pz}*of a point on the end-effector, instantaneously at the -system origin, with respect to the base, represented at the -system.*

_{rz}**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 sub-matrix is

The primary magnitude vector contains the magnitudes of the virtual pairs:

Thus, the network primary sub-matrix 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 *R*-system, 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 R-system, 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 end-effector, it is to possible calculate the inverse differential kinematics based on the end-effector 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 end-effector task. This is not so evident achieved using conventional methods (*e.g.* Denavit-Hartemberg 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 end-effector 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 ^{i-1}R* _{i}* and the vectors

^{i-1}p

*between adjacent coordinate systems are*

_{i}where, *s _{i}=*sin

*(*q

*and*

_{i})*c*cos

_{i}=*(*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, *R*-system, by

where *s _{ik}=*sin

*(*cos

_{i}+_{k}), c_{ik}=*(*x

_{i}+_{k}),_{14}= g

*c*

_{2}+ h

*c*

_{23}and; the letters f, g and h being the distances shown in Fig. 9.

**References**

Angeles, J., 1997, "*Fundamentals of Robotic Mechanical Systems*", Springer –Verlag, New York, USA. [ Links ]

Campos, A., Guenther, R. Martins, D, 2002, "Kinematics of parallel manipulators based on Kirchhoff circuit law", *Proceedings of the CONEM 2002- CDROM*, ABCM - Brazil. [ Links ]

Ceccarelli, M., 2000 "Screw axis defined by Giulio Mozzi in 1763 and early studies on helicoidal movement", *Mechanism and Machine Theory* 35(2000): 761-770. [ Links ]

Davidson, J.K. and Hunt, K.H., 2004, "*Robots and Screw Theory*", Oxford University Press, Oxford, Great Britain. [ Links ]

Davies, T. H., 1981, "Kirchhoff's circulation law applied to multi-loop kinematic chains", *Mechanism and Machine Theory* 16: 171-183. [ Links ]

Davies, T. H., 1983, "Mechanical networks – I: Passivity and redundancy", *Mechanism and Machine Theory* 18: no. 2, pp. 95-101. [ Links ]

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. 1-56. [ Links ]

Downing, D.M., 2002, "Quality Indices for Robots Manipulators", PhD. Thesis, University of Melbourne, Department of Mechanical and Manufacturing Engineering, Melbourne, Australia. [ Links ]

Duffy, J, 1996, "Statics and Kinematics with Application to Robotics", Cabridge University Press, Cambridge [ Links ]

Hunt, K. H., 1978, "Kinematic Geometry of Mechanisms", Clarendon Press, Oxford. [ Links ]

Hunt, K. H., 1987, "Robot kinematics–a compact analytic inverse solution for velocities", *Trans. ASME, Journal of Mechanisms, Transmissions and Automation in Design* 109: 42-49. [ Links ]

Hunt, K. H., 2000, "Don't cross-thread the screw", *in* H. Hunt (ed.), *Ball 2000 Conference*, University of Cambridge, Cambridge University Press, Trinity College, pp. 1-37. [ Links ]

Martins, D. Guenther, R., 2003, "Hierarchical Kinematic Analysis of Robots", *Mechanism and Machine Theory* 38(6):497-518. [ Links ]

Tsai, L.-W., 1999, "*Robot Analysis: the Mechanics of Serial and Parallel Manipulators"*, John Wiley & Sons, New York. [ Links ]

Sciavicco, L. Siciliano, B., 1996, "*Modeling and Control of Robot Manipulator"*, McGraw-Hill, New York. [ Links ]

Paper accepted July, 2005.

Technical Editor: José Roberto de França Arruda