**2. Mathematical preliminaries**

68 Serial and Parallel Robot Manipulators – Kinematics, Dynamics, Control and Optimization

number coordinate transformation approach, is that it allows, for a complete 3D motion, to use only six parameters for each anatomical joint. KiatTeu infers that the method has proved to be an effective means to examine high-speed movement in 3D space. It also provides an option in assessing the contributions of the individual segmental rotations in

(Page et al, 2007) present the location of the instantaneous screw axis (ISA) in order to obtain useful kinematic models of the human body for applications such as prosthesis and orthoses design or even to help in disease diagnosis techniques. Dual vectors are used to represent and operate with kinematic screws with the purpose of locating the instantaneous screw axes which characterize this instantaneous motion. A photogrammetry system based on markers is used to obtain the experimental data from which the kinematic magnitudes are obtained. A comprehensive analysis of the errors in the measurement of kinematic parameters was developed, obtaining explicit expressions for them based on the number of

The dual-number representation has been extended to other fields of mechanics; rigid body mechanics is an area where the dual number formulation has been applied, especially in the

The homogeneous transformation is a point transformation; in contrast, a line transformation can also naturally be defined in 3D Cartesian space, in which the transformed element is a line in 3D space instead of a point. In robotic kinematics and dynamics, the velocity and acceleration vectors are often the direct targets of analysis. The line transformation will have advantages over the ordinary point transformation, since the combination of the linear and angular quantities can be represented by lines in 3D space. Since a line in 3D space is determined by four independent parameters. (Gu, 1988) presents a procedure that, offers an algorithm which deals with the symbolic analysis for both rotation and translation. In particular, the aforementioned is effective for the direct determination of Jacobian matrices and their derivatives. The dual-number transformation procedure, based on these properties and the principle of transference, can be used for finding Jacobian matrices in robotic kinematics and their derivatives in robotic dynamics and control modeling. A related work was performed in (Pennock & Mattson, 1996) where the forward position problem of two PUMA robots manipulating a planar four bar linkage payload is solved using closed-form solutions for the remaining unknown angular displacements based in orthogonal transformation matrices with dual-number. (Brosky & Shoham, 1998; Sai-Kai, 2000) introduce the generalized Jacobian matrix which consists of the complete dual transformation matrices. The generalized Jacobian matrix relates force and moment at the end-effector to force and moment at the joints for each axe. Furthermore, the generalized Jacobian matrix also relates motion in all directions at the joints to the motion of the end-effector, an essential relation required at the design stage of robot manipulators. An extension of these kinematics and statics schemes into dynamics is possible by applying the dual inertia operator. (Brodsky, 1999) formulated the representation of rigid body dynamic equations introducing the dual inertia operator. Brodsky gives a general expression for the three-dimensional dynamic equation of a rigid body with respect to an arbitrary point. Then the dual Lagrange equation is established by developing derivative rules of a real function

production of the relevant velocity of the end-effector.

markers and their distribution.

with respect to dual variables.

**1.1 Dual-number representation in robotics** 

kinematics and dynamics of mechanisms.

Let us consider a transformation of coordinates between the Cartesian Coordinate system (x,y) and the oblique coordinate system (u,v) given by the equations:

$$\mathbf{x} = a\boldsymbol{\mu} + b\boldsymbol{\upsilon}; \quad \mathbf{y} = \mathbf{0}\boldsymbol{\mu} + a\boldsymbol{\upsilon} \tag{1}$$

With a, b real numbers. The geometry is depicted in Figure 1.

It is well known that the point (,) *u v* is localized by the vector *rx y* <sup>î</sup> from the origin of the Cartesian coordinate. From the transformation (1):

$$
\vec{r} = (a\iota + b\upsilon)\mathfrak{f} + a\upsilon\mathfrak{j} \tag{2}
$$

The tangent vectors to u and v are:

$$\frac{\partial \vec{r}}{\partial u} = a\mathbf{i} \; ; \quad \frac{\partial \vec{r}}{\partial v} = b\mathbf{i} + a\mathbf{j} \tag{3}$$

From the obvious 2 2 ˆ *u v b e e b a* it is clear that the coordinates (u, v) are not orthogonal.

The unit vectors of the Cartesian frame can be written in the form of column vectors:

$$\begin{aligned} \mathbf{i} &= \begin{pmatrix} \mathbf{1} \\ \mathbf{0} \end{pmatrix}; \quad \mathbf{j} = \begin{pmatrix} \mathbf{0} \\ \mathbf{1} \end{pmatrix} \end{aligned} \tag{4}$$

We can describe the oblique frame (,) *u v* in terms of the tangent vectors ai and bi+aj written as a column vectors:

$$a\mathbf{i} = \begin{pmatrix} a \\ 0 \end{pmatrix} \qquad ; \qquad b\mathbf{i} + a\mathbf{j} = \begin{pmatrix} b \\ a \end{pmatrix} \tag{5}$$

The column vectors 1 0 *<sup>T</sup>* , 0 1 *<sup>T</sup>* can be combined into a single matrix describing the Cartesian Frame:

$$\text{Cartesian Frame:} \begin{pmatrix} 1 & 0\\ 0 & 1 \end{pmatrix}$$

Kinematic and Dynamic Modelling of

Finally expression (6) is written in the form:

Equation (7) is easily extended to 3D:

Study in 1903 called the expression *a b*

ˆ ˆ

Division by a pure dual number 0 ( )

A function *F* of a dual variable 0 *xx x* ˆ

conditions in order that *F* be analytic are:

Multiplication is defined as:

Division is defined as:

Serial Robotic Manipulators Using Dual Number Algebra 71

*a b*

100 001 1 0 1 0; 0 0 0 001 000 

*aa b* ˆ 

 0 0 <sup>ˆ</sup> *ab ab a b* <sup>ˆ</sup> 

0 0 0 0 <sup>ˆ</sup> *ab a a b b ab ab a b* <sup>ˆ</sup> ( )( ) ( )

*a a a a a a b b a b ab b bb bb bb b b*

0 0 ˆ ( ) *n nn n a a a a na a* 

> <sup>0</sup> <sup>ˆ</sup> *<sup>a</sup> a a*

0 0 *Fx f xx gxx* () (, ) (, ) ˆ 

Where *f* and *g* are real functions of real variables *x* & <sup>0</sup> *x* . The necessary and sufficient

0 0 0 ; *f fg x xx*

 

0 00

 

0 0 0 00

 

*a a*

The algebra of dual numbers has been originally conceived by William Kingdon Clifford.

(7)

"dual number" because it is constructed from the

(8)

(9)

(13)

(14)

(10)

(11)

 

;

2

1

(12)

(15)

*a* is no defined. It immediately follows that:

can be represented in the form:

0 *a b*

pair of real numbers (a, b). A dual number is usually denoted in the form:

Elementary operation of addition is defined as: 0 0 <sup>ˆ</sup> *aa a bb b* <sup>ˆ</sup>

*a*

 

Fig. 1. Oblique plane

The column vectors 0 *<sup>T</sup> a <sup>T</sup> b a* can be combined into a single matrix describing the oblique frame:

$$\text{Oblique Frame:} \begin{pmatrix} a & b \\ 0 & a \end{pmatrix}$$

The matrix *a b a a* is the transformation matrix that describes the Oblique Frame relative to the Cartesian Frame.

The matrix *a b a a* can be decomposed as:

$$
\begin{pmatrix} a & b \\ 0 & a \end{pmatrix} = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} a + b \begin{pmatrix} 0 & 1 \\ 0 & 0 \end{pmatrix} \tag{6}
$$

Where 1 0 1 0 1 is the unitary matrix and 0 1 0 0 is a matrix with the following

properties:

$$\text{a. } \quad \text{ } \quad \text{ } \quad \text{ } \quad \text{ is nilpotent:}$$

$$\boldsymbol{\varepsilon}^{2} = \begin{pmatrix} 0 & 1 \\ 0 & 0 \end{pmatrix}^{2} = \begin{pmatrix} 0 & 1 \\ 0 & 0 \end{pmatrix} \begin{pmatrix} 0 & 1 \\ 0 & 0 \end{pmatrix} = \begin{pmatrix} 0 & 0 \\ 0 & 0 \end{pmatrix} = \mathbf{0}$$

b. is a ninety degree rotation operator

$$
\varepsilon j = \begin{pmatrix} 0 & 1 \\ 0 & 0 \end{pmatrix} \begin{pmatrix} 1 \\ 0 \end{pmatrix} = i
$$

Finally expression (6) is written in the form:

$$
\begin{pmatrix} a & b \\ 0 & a \end{pmatrix} = a + \varepsilon b \tag{7}
$$

Equation (7) is easily extended to 3D:

70 Serial and Parallel Robot Manipulators – Kinematics, Dynamics, Control and Optimization

*a <sup>T</sup> b a* can be combined into a single matrix describing the

*a b a* 

is the transformation matrix that describes the Oblique Frame relative to

(6)

is a matrix with the following

10 01

*a b*

 

0

0 01 00

<sup>2</sup> 01 01 01 00

00 00 00 00

01 1 00 0

 *j i* 

 

 

Oblique Frame: 0

Fig. 1. Oblique plane

the Cartesian Frame.

1 0

0 1 

is nilpotent:

1

oblique frame:

The matrix

The matrix

Where

a. 

b. 

properties:

The column vectors 0 *<sup>T</sup>*

*a b a a* 

*a b a a* 

can be decomposed as:

*a b*

is the unitary matrix and

is a ninety degree rotation operator

*a*

2

$$\mathbf{1} = \begin{pmatrix} \mathbf{1} & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & \mathbf{1} & \mathbf{0} \\ \mathbf{0} & \mathbf{0} & \mathbf{1} \end{pmatrix}; \quad \mathcal{E} = \begin{pmatrix} \mathbf{0} & \mathbf{0} & \mathbf{1} \\ \mathbf{0} & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & \mathbf{0} & \mathbf{0} \end{pmatrix}$$

Study in 1903 called the expression *a b* "dual number" because it is constructed from the pair of real numbers (a, b). A dual number is usually denoted in the form:

$$
\hat{a} = a + \varepsilon b \tag{8}
$$

The algebra of dual numbers has been originally conceived by William Kingdon Clifford. Elementary operation of addition is defined as: 0 0 <sup>ˆ</sup> *aa a bb b* <sup>ˆ</sup> ;

$$
\hat{a} + \hat{b} = \left(a + b\right) + \varepsilon \left(a\_0 + b\_0\right) \tag{9}
$$

Multiplication is defined as:

$$
\hat{a}\hat{b} = (a + \varepsilon a\_0)(b + \varepsilon b\_0) = ab + \varepsilon (ab\_0 + a\_0b) \tag{10}
$$

Division is defined as:

$$\frac{\hat{a}}{\hat{b}} = \frac{a + \varepsilon a\_0}{b + \varepsilon b\_0} = \left(\frac{a + \varepsilon a\_0}{b + \varepsilon b\_0}\right) \left(\frac{b + \varepsilon b\_0}{b + \varepsilon b\_0}\right) = \frac{a}{b} + \varepsilon \frac{a\_0 b - a b\_0}{b^2} \tag{11}$$

Division by a pure dual number 0 ( ) *a* is no defined. It immediately follows that:

$$
\hat{a}^n = (a + \varepsilon a\_0)^n = a^n + \varepsilon n a\_0 a^{n-1} \tag{12}
$$

$$
\sqrt{\hat{a}} = \sqrt{a} + \varepsilon \frac{a\_0}{a\sqrt{a}}\tag{13}
$$

A function *F* of a dual variable 0 *xx x* ˆ can be represented in the form:

$$F(\hat{\mathbf{x}}) = f(\mathbf{x}, \mathbf{x}\_0) + \varepsilon \,\hat{\mathbf{g}}(\mathbf{x}, \mathbf{x}\_0) \tag{14}$$

Where *f* and *g* are real functions of real variables *x* & <sup>0</sup> *x* . The necessary and sufficient conditions in order that *F* be analytic are:

$$\frac{\partial f}{\partial \mathbf{x}\_0} = \mathbf{0}; \quad \frac{\partial f}{\partial \mathbf{x}} = \frac{\partial \mathbf{g}}{\partial \mathbf{x}\_0} \tag{15}$$

From these it immediately follows the Taylor Series expansion:

$$f(\hat{\mathbf{x}}) = f(\mathbf{x} + \varepsilon \mathbf{x}\_0) = f(\mathbf{x}) + \varepsilon \mathbf{x}\_0 \frac{\partial f(\mathbf{x})}{\partial \mathbf{x}} \tag{16}$$

Kinematic and Dynamic Modelling of

**2.2 Dual vectors** 

Fig. 3. Dual vector

3. Force: ˆ

Among the important dual vectors are: 1. Velocity defined as: ˆ*V vu* ( )

2. Linear momentum: *p*ˆ *p rp*

*FF rF* 

ˆ,

*y*

*R*

4. Angular momentum: ˆ

A dual vector ˆ*V V rV*

The primary component *V*

set of dual angles (Fisher, 1995; Cecchini et al, 2004).

component *r V* is called the "moment vector". The vector *<sup>r</sup>*

 ˆ

*LL rL* Important dual rotations around and along z, y, x axis are (Figure 4):

, ˆ

*sen*

*Rx* 

ˆ ˆ cos 0

ˆ ˆ 0 cos

ˆ 0 10

*sen*

10 0 ˆ 0 cos sin ˆ ˆ

0 sin cos ˆ ˆ

ˆ ,

*<sup>z</sup> R sen* 

ˆ ˆ cos sin 0

 

 

0 01

ˆ ˆˆ cos 0

point on line *L* , it depends on the choice of the frame origin. (Figure 3).

frame origin to any point on the line *L* of dual vector *V*

Serial Robotic Manipulators Using Dual Number Algebra 73

In particular a dual angle is an advantageous tool to represent the coordinates of a rigid body in the space relative to other rigid body, if two planes are parallel and exists a line in each plane, dual angle will be the distance between the planes and the angle produced by the projection of one of the lines onto plane, thus a dual angle is used to describe each one of a robot's joints as a cylindrical one, which means that the entire topology is formulated as a

direction of dual vector *V*ˆ . It is independent of the location frame origin. The dual

( ) is a vector constrained to lie upon a given line *<sup>L</sup>* in 3D space.

is called the "resultant vector" and comprises the magnitude and

is the position vector from the

. *r V* is invariant for any choice of

Because <sup>2</sup> 0 , <sup>3</sup> 0 , <sup>4</sup> 0 and so on, all formal operation of dual number are the same as those of ordinary algebra.

#### **2.1 The dual angle**

The dual angle represents the relative displacement and orientation between two lines *L*<sup>1</sup> and *L*2 in the 3D space (Figure 2).

Fig. 2. Geometric representation of a dual angle.

The dual angle is defined as:

$$
\hat{\theta} = \theta + \mathfrak{e}\mathbf{S} \tag{17}
$$

This concept was introduced by Study in 1903. the primary component of ˆ is the projected angle between *L*1 and *L*<sup>2</sup> . *<sup>S</sup>* the dual component of <sup>ˆ</sup> is the shortest distance between lines *L*<sup>1</sup> & *L*2 (as is obvious *S* is the length of common perpendicular to plane 1 and plane 2. Table 1 summarizes some properties:


Table 1. Basic dual algebra operations

In particular a dual angle is an advantageous tool to represent the coordinates of a rigid body in the space relative to other rigid body, if two planes are parallel and exists a line in each plane, dual angle will be the distance between the planes and the angle produced by the projection of one of the lines onto plane, thus a dual angle is used to describe each one of a robot's joints as a cylindrical one, which means that the entire topology is formulated as a set of dual angles (Fisher, 1995; Cecchini et al, 2004).
