Kinematics of

Alba Perez Gracia c Draft date October 2, 2007 Contents

Contents i

1 Motion: An Introduction 3

1.1 Overview ...... 3

1.2 Introduction ...... 3

1.3 The finite displacement ...... 4

1.3.1 Translations ...... 5

1.3.2 Rotations ...... 6

1.3.3 General finite displacements ...... 10

1.3.4 The invariants of a general displacement ...... 11

1.4 A little bit of line geometry ...... 12

1.4.1 Dual vector algebra ...... 13

1.4.2 More line geometry ...... 15

1.4.3 Line motion ...... 15

1.4.4 Line Geometry and the Klein Quadric ...... 16

1.5 The screw axis of a general displacement and Chasles’ Theorem ...... 16

1.6 More on Matrix Representation ...... 19

1.6.1 How to create a rotation matrix ...... 19

1.6.2 Homogeneous matrix representation ...... 21

i ii CONTENTS

2 Using Matrix Algebra 25

2.1 Overview ...... 25

2.2 ...... 25

2.3 Basic joints ...... 27

2.4 Equations ...... 28

2.4.1 Denavit-Hartenberg parameters ...... 28

2.4.2 Kinematics Equations ...... 30

2.5 Forward Kinematics Example ...... 31

2.6 ...... 32

2.7 Inverse Kinematics Example ...... 33

3 Group Theory and Motion 35

3.1 Overview ...... 35

3.2 Group Theory Review ...... 35

3.2.1 Subgroups ...... 36

3.2.2 Automorphisms ...... 37

3.2.3 Products of Groups ...... 38

3.2.4 Cosets and Actions ...... 39

3.3 The group of finite displacements ...... 40

3.3.1 Subgroups of the Special Euclidean Group ...... 41

4 Lie Groups and Lie Algebras 43

4.1 Introduction ...... 43

4.2 Lie groups ...... 43

4.3 One-parameter subgroups ...... 44

4.4 The Lie Algebra ...... 45

4.4.1 The Lie bracket ...... 46 CONTENTS iii

4.4.2 Chasles’ Theorem again ...... 48

4.5 The Lie algebra of the Special Euclidean Group SE(3) ...... 48

4.5.1 Relative Rotations ...... 48

4.5.2 Relative general motion ...... 49

4.5.3 ...... 50

4.6 Example ...... 51

5 The Product of Exponentials for Serial Manipulators 53

5.1 Introduction ...... 53

5.2 Forward Kinematics ...... 53

5.3 Example: Epson E2L Scara Robot ...... 54

5.4 Velocity and Jacobian ...... 56

5.4.1 Example ...... 57

5.5 Inverse and pseudoinverse Jacobian ...... 58

6 Grassmann Algebra 59

6.1 Overview ...... 59

6.2 Vector spaces and metric spaces ...... 59

6.3 Algebras ...... 61

6.4 Grassmann Algebra ...... 61

3 6.4.1 Grassmann algebra associated to R ...... 62

2 6.4.2 Grassmann algebra associated to R ...... 65

4 6.4.3 Grassmann algebra associated to R ...... 65

6.4.4 The general Grassman algebra ...... 66

6.5 More on Grassmann algebra ...... 68

7 Quaternions 71

7.1 Overview ...... 71 iv CONTENTS

7.2 Quaternions ...... 71

7.3 Unit Quaternions and Rotations ...... 73

7.3.1 Rotation by a unit quaternion ...... 73

7.4 The Lie Algebra of Unit Quaternions ...... 75

7.4.1 Euler parameters revisited ...... 76

7.5 Applications ...... 76

7.5.1 Satellite navigation ...... 76

7.5.2 Singularities in the Euler angles matrix representation ...... 78

7.5.3 Trajectory planning and interpolation ...... 79

8 Clifford Algebras 81

8.1 Overview ...... 81

8.2 Clifford algebras and the Clifford product ...... 82

8.2.1 Properties of the geometric product ...... 83

8.2.2 Creating Clifford algebras ...... 83

8.2.3 Subalgebras ...... 84

8.3 Planar motion and planar geometry: Clifford algebras ...... 84

8.3.1 Clifford algebra of the Euclidean plane: C2,0,0 ...... 84

3 8.4 The Even Clifford algebra of the three-dimensional space R ...... 85

3 8.5 The even Clifford algebra of the projective space P ...... 86

8.6 The Clifford algebra of dual quaternions ...... 88

8.6.1 Spatial displacements using unit dual quaternions ...... 89

8.6.2 Examples ...... 91

+ 4 8.7 The geometry of the Clifford algebra C (P , d)...... 92

8.8 Lie algebra and Clifford algebra ...... 93

8.9 Clifford Analysis ...... 94

8.10 Other applications of Clifford algebras ...... 96 CONTENTS v

9 Kinematic Synthesis 95

9.1 Overview ...... 95

9.2 4R Synthesis ...... 95

Bibliography 73 vi CONTENTS List of Figures

1.1 Description of the motion of a rigid body ...... 4

1.2 (a) A pure translation and (b) a pure rotation of a rigid body ...... 5

1.3 A rigid displacement ...... 6

1.4 Composition of displacements ...... 11

1.5 A relative displacement ...... 12

1.6 A line defined using Pl¨ucker coordinates ...... 13

1.7 Dual vector geometry ...... 14

1.8 The screw axis, rotation angle and slide of a displacement ...... 18

1.9 Euler angles ...... 20

2.1 Reachable workspace, Adept Viper m650 robot (Adept Technologies, Inc.) ...... 27

2.2 Common types of joints ...... 28

2.3 Local transformations along the links of a robot...... 29

2.4 Example: a three-jointed serial robot...... 31

2.5 Welding Robot (Fanuc ) ...... 34

2.5 Welding Robot (Fanuc Robotics) ...... 32

5.1 SCARA robot Epson E2L65 ...... 54

6.1 H.G. Grassmann ...... 62

6.2 The wedge product of two vectors ...... 64

vii viii LIST OF FIGURES

7.1 Sir W.R. Hamilton ...... 72

7.2 ECI coordinates ...... 78

7.3 A spherical wrist ...... 79

7.4 The Agile Eye ...... 80

8.1 W. H. Clifford ...... 82 List of Tables

2.1 Denavit-Hartenberg parameters...... 30

2.2 Denavit-Hartenberg parameters for the robot of Figure 2.4...... 31

3.1 Subgroups of the group of spatial displacements ...... 41

3 6.1 Basis multivectors for the Grassman algebra of R ...... 65

4 6.2 Basis multivectors for the Grassman algebra of R ...... 66

m 6.3 Basis multivectors for the Grassman algebra of R ...... 67

8.1 Multiplication table for C2,0,0 ...... 85

8.2 Matrix and Clifford algebra expressions for rotations and general displacements. . . 88

1 24 LIST OF TABLES Chapter 2

Robot Kinematics Using Matrix Algebra

2.1 Overview

In Chapter 1 we characterized the motion using vector and matrix algebra. In this chapter we introduce the application of 4 × 4 homogeneous transforms in traditional robot analysis, where the motion of a robot is described as a 4 × 4 homogoeneous matrix representing the position of the end-effector. This matrix is constructed as the composition of a series of local displacements along the chain.

In this chapter we will learn how to calculate the forward and inverse kinematics of serial robots by using the Denavit-Hartenberg parameters to create the 4 × 4 homogeneous matrices.

2.2 Robot Kinematics

From a kinematics point of view, a robot can be defined as a mechanical system that can be programmed to perform a number of tasks involving movement under automatic control. The main characteristic of a robot is its capability of movement in a six-dimensional space that includes translational and rotational coordinates.

We model any mechanical system, including robots, as a series of rigid links connected by joints. The joints restrict the relative movement of adjacent links, and are generally powered and equipped with systems to control the movement.

25 26 CHAPTER 2. ROBOT KINEMATICS USING MATRIX ALGEBRA

The degrees of freedom of the robot, also called mobility, are defined as the number of independent parameters needed to specify the positions of all members of the system relative to a base frame. The most commonly used criteria to find the mobility of mechanisms is the Kutzbach-Gruebler formula. For a robot with n links (counting the base) and j joints, in which each joint i allows fi degrees of freedom, we compute the mobility as j X M = 6(n − 1) + (6 − fi). (2.1) i=1

It is important to remark that this formula does not give the correct answer for several types of closed, or parallel, robots. For a serial robot, the degrees of freedom are equal to the number of joints multiplied by the mobility allowed by each joint.

The mobility indicates how many of the joints of the robot need to be actuated, also called active joints. In a serial robot, all joints are active.

Once the mobility is defined and the active joints are identified, the two main problems of kinematic analysis of robots are the direct kinematics and the inverse kinematics. In the direct kinematics, also called forward kinematics, we define the position of the end-effector as a matrix which is a function of the angles or slides at each joint. If the joint variables are known, the position of the end-effector is completely specified. The inverse kinematics problem consists of finding the joint angles to reach a given position. For serial robots, the inverse kinematics problem is harder than the forward kinematics, while it is the opposite for parallel robots.

The solutions of the direct kinematics define the workspace of the robot. The set of all possible positions of the end-effector, constructed using all possible values of the joint variables within their range, define the workspace of the robot. Remember that position means location plus orientation; the workspace of the robot is a six-dimensional subset of the six-dimensional space of rotations and translations.

Because of the difficulty in visualizing the workspace, several subspaces have been defined [9].

• Reachable workspace (WR): Set of all locations of the origin of the end-effector frame that the robot can reach. It is a three-dimensional subset of the workspace.

• Dextrous workspace (WD): Set of all locations of the origin of the end-effector frame that the robot can reach with any orientation. It is useful because the robot has full dexterity in this subspace, which ensures that any task can be performed within it.

• Workspace with constant orientation (Wθ): Set of all locations of the origin of the end-effector frame that the robot can reach with a specified orientation for the end-effector. 2.3. BASIC JOINTS 27

Notice that [ \ Wθ = WR , Wθ = WD (2.2) θ∈range θ∈range

Figure 2.1 shows the typical sketch of the reachable workspace for a commercial robot.

Figure 2.1: Reachable workspace, Adept Viper m650 robot (Adept Technologies, Inc.)

2.3 Basic joints

Releaux [13] identified six basic types of joints that continuously share a surface of contact, that he called lower pairs. His classification is still used today in most robotics and mechanisms books. He defined revolute (R), cylindric (C), prismatic (P), spherical (S), helical (H) and plane (E) joints. In our research, we only consider the basic types of revolute and prismatic joints; any of the others can be obtained by combining the two basic types with certain additional constraints. In addition to these, we refer to the universal joint (T), which can be modeled as two revolute joints at right angles. See Figure 2.2.

The revolute joint is a one-degree-of-freedom joint that allows a rotation of angle θ about an arbitrary located joint axis G = g + g0. The prismatic joint is also a one-degree-of-freedom joint, which allows translation along the direction h of the axis H. It is interesting to notice that the location of the prismatic axis does not matter for the movement of the prismatic joint. The cylindric joint is a general screw motion, in which the rotation about and the translation along the screw axis S are nonzero and independent. It can be constructed as the composition of a revolute joint 28 CHAPTER 2. ROBOT KINEMATICS USING MATRIX ALGEBRA

Figure 2.2: Common types of joints and a prismatic joint with same direction. In a similar fashion, the universal (T) joint and the spherical (S) joint can be constructed from individual rotations.

2.4 Forward Kinematics Equations

Following the traditional matrix kinematics equations, we will represent local transformations from joint to joint using 4 × 4 homogeneous matrices. The composition of these displacements will give as a result the displacement from the base to the end-effector.

Angles will be measured usually taking the ”extended” position as the origin. However, this is an arbitrary choice and any reference configuration can be used as the zero for the joint variables.

In order to create the local transformations along the chain, we identify the lines locating the joint axes, Si, and we compute the common normal lines Ai,i+1 between joint Si and joint Si+1. We consider that the link joining two consecutive joints extends along the common normal line, regardless of its real shape.

We assign local coordinate frames with the Z axis along the joint axis and the X axis along the com- mon normal line. Local displacements will take us from local coordinate frame to local coordinate frame, from the base to the end-effector, see Figure 2.3.

2.4.1 Denavit-Hartenberg parameters

In 1955, Denavit and Hartenberg introduced the methodology of 4 × 4 homogeneous matrix trans- formations to analyze robotic systems, which became a standard tool in robotics. They shaped the local transformations along the chain as screw displacements about the Z and X axes, de- pendent on only four parameters. With the pass of the years, slightly different versions of the Denavit-Hartenberg parameters have been developed. Our notation is similar to Craig [7]. 2.4. FORWARD KINEMATICS EQUATIONS 29

Figure 2.3: Local transformations along the links of a robot.

We locate the first local frame with the Z axis along the first joint axis S1 and the X axis along the common normal A12; the origin of the frame is located at the intersection of these two lines. Assume that a general displacement [G] locates this first local frame with respect to the fixed frame, as shown in Figure 2.3.

The second local frame has the same X axis but now the Z axis is aligned with S2, with its origin at the intersection point of these two lines, while the third local frame has same Z axis as the second and the line A23 as its X axis. From the local frame attached to the last joint axis to the moving frame attached to the gripper we define a general displacement [H].

Only four parameters are needed to transform from local frame to local frame: two correspond to the transformation along the link, which is an X-screw displacement, and two more to perform a Z-screw displacement about the joint. These parameters are:

• Twist angle αi−1,i: Angle between joint axes Si−1 and Si measured about the common normal

line Ai−1,i.

• Link length ai−1,i: Distance between joint axes Si−1 and Si measured along the common

normal line Ai−1,i.

• Joint angle θi: Angle between previous common normal line Ai−1,i and next common normal

line Ai,i+1, measured about joint axes Si. Notice that if joint Si is a revolute joint, the joint angle will include the variable value of the joint rotation. 30 CHAPTER 2. ROBOT KINEMATICS USING MATRIX ALGEBRA

Joint αi−1,i ai−1,i di θi

1 0 0 d1 θ1

2 α12 a12 d2 θ2

3 α23 a23 d3 θ3

Table 2.1: Denavit-Hartenberg parameters.

• Offset di: Distance between previous common normal line Ai−1,i and next common normal

line Ai,i+1, measured along joint axes Si. Notice that if joint Si is a prismatic joint, the offset will include the variable value of the slide.

The Denavit-Hartenberg parameters describe in a simple way the geometry of the robot. They are usually arranged on a table. For the robot of Figure 2.3 we create the corresponding Table 2.1, where we have not specified whether the joints are revolute or prismatic.

The D-H parameters are used to create the screw displacements,

    1 0 0 ai−1,i cos θi − sin θi 0 0     0 cos αi−1,i − sin αi−1,i 0  sin θi cos θi 0 0  [X(αi−1,i, ai−1,i)] =   [Z(θi, di)] =   . 0 sin α cos α 0   0 0 1 d   i−1,i i−1,i   i 0 0 0 1 0 0 0 1 (2.3)

2.4.2 Kinematics Equations

The local screw displacements created using the D-H parameters, together with the initial and final displacements [G] and [H], are multiplied together to obtain the displacement from the fixed frame to the frame attached to the end-effector,

[D] = [G][X(α01, a01)][Z(θ1, d1)][X(α12, a12)][Z(θ2, d2)] ... [X(αn−1,n, an−1,n)][Z(θn, dn)][H]. (2.4)

The 4 × 4 transform [D] is called the forward kinematics or simply the kinematics equations. It provides with all possible positions of the end-effector as a function of the joint variables. The kinematics equations solve the direct kinematics problem; for a given set of joint variables, the position of the end-effector is immediately calculated. 2.5. FORWARD KINEMATICS EXAMPLE 31

2.5 Forward Kinematics Example

Let us apply the technique described above to calculate the forward kinematics equations of the robot presented in Figure 2.4.

S1(q1)

{F} {M}

S (q ) S2(q2) 3 3

Figure 2.4: Example: a three-jointed serial robot.

The transformation from the fixed frame to the first local frame is a translation along the Z axis, given by the matrix   1 0 0 0   0 1 0 0  [G] =   (2.5) 0 0 1 80   0 0 0 1

The local transformations from the first joint axis to the last can be calculated using the Denavit- Hartenberg parameters of the robot, presented in Table 2.2.

Joint αi−1,i ai−1,i di θi

1 0 0 0 θ1

2 π/2 70 0 θ2

3 0 65 0 θ3

Table 2.2: Denavit-Hartenberg parameters for the robot of Figure 2.4. 32 CHAPTER 2. ROBOT KINEMATICS USING MATRIX ALGEBRA

The screw displacements about the X axis and Z axis are created using the rows of Table 2.2,     cos θ1 − sin θ1 0 0 1 0 0 70     sin θ1 cos θ1 0 0 0 0 −1 0  [Z1] = [Z(θ1, 0)] =   , [X12] = [X(π/2, 70)] =   ,  0 0 1 0 0 1 0 0      0 0 0 1 0 0 0 1     cos θ2 − sin θ2 0 0 1 0 0 65     sin θ2 cos θ2 0 0 0 1 0 0  [Z2] = [Z(θ2, 0)] =   , [X23] = [X(0, 65)] =   ,  0 0 1 0 0 0 1 0      0 0 0 1 0 0 0 1   cos θ3 − sin θ3 0 0   sin θ3 cos θ3 0 0 [Z3] = [Z(θ3, 0)] =   . (2.6)  0 0 1 0   0 0 0 1

The last local displacement, from the third joint axis to the end-effector frame, is calculated to be   1 0 0 35   0 0 1 −15 [H] =   . (2.7) 0 −1 0 0    0 0 0 1

The kinematics equations are constructed by multiplying the local transformations,

[D] = [G][Z1][X12][Z2][X23][Z3][H] =   cos θ1 cos(θ2 + θ3) − sin θ1 − cos θ1 sin(θ2 + θ3) 5 cos θ1(14 + 13 cos θ2 + 7 cos(θ2 + θ3) + 3 sin(θ2 + θ3) sin θ cos(θ + θ ) cos θ − sin θ sin(θ + θ ) 5 sin θ (14 + 13 cos θ + 7 cos(θ + θ ) + 3 sin(θ + θ )  1 2 3 1 1 2 3 1 2 2 3 2 3     sin(θ2 + θ3) 0 cos(θ2 + θ3) 80 − 15 cos(θ2 + θ3) + 65 sin θ2 + 35 sin(θ2 + θ3)  0 0 0 1 (2.8)

2.6 Inverse Kinematics

The inverse kinematics consists of finding expressions for the joint variables as a function of the desired position of the end-effector. Given the matrix formulation for the kinematics equations, usually these formulas are obtained by equating elements of the matrix to the elements of the desired task position and manipulating the expressions. For a good collection of results, see [16].

In general, for a robot with n joints and joint variables qi, i = 1 . . . n, we state the inverse kinematics 2.7. INVERSE KINEMATICS EXAMPLE 33 problem by equating the kinematics equations [D] to a desired position of the end-effector [P ],

[D(q1, q2, . . . qn)] = [P ]. (2.9)

There is no general formulation to solve for the joint variables in this equation; each case presents different techniques to isolate the joint variables qi.

Most of the times we obtain several solutions. For robots with more than six degrees of freedom we may obtain infinite solutions, and additional strategies must be used to decide the best set of joint variables.

2.7 Inverse Kinematics Example

To illustrate the somewhat vague description of previous section, we will solve the inverse kinematics for the example presented in Section 2.5.

Take the matrix from Eq.(2.8) and equate it to a desired task position [P ] = [pij]. Notice that we can solve for θ1 directly in elements (1, 2) and (2, 2); we obtain

θ1 = arctan(−p12, p22). (2.10)

Next we can solve for the sum of the angles θ2 + θ3 for instance using elements (3, 1) and (3, 3). Again we obtain

θ2 + θ3 = arctan(p31, p33). (2.11)

Finally, we can solve for θ2 in elements (2, 4) and (3, 4),

1 1 p24 θ2 = arctan( (p34 − 80 + 15p33 − 35p31), − ( + 14 + 7p33 − 3p31)), (2.12) 65 13 5p12 and θ3 = (θ2 + θ3) − θ2. In this case there are no multiple solutions and the solution is fairly easy to obtain. 34 CHAPTER 2. ROBOT KINEMATICS USING MATRIX ALGEBRA

Homework 2

Chapter 2

Use Maple to create the forward kinematics equations of the robot shown in Figure 2.5. Take the given configuration of the robot as the reference configuration.

Figure 2.5: Welding Robot (Fanuc Robotics)

1. Identify the joint axes and the common normal lines on the drawing or sketch.

2. Write the Pl¨ucker coordinates of the joint axes.

3. Create the D-H table.

4. Indicate the location of the world frame and the end-effector frame and construct the first and last transformations [G] and [H]. 2.7. INVERSE KINEMATICS EXAMPLE 35

5. Write the matrices of the local transformations and multiply them together to obtain the forward kinematics matrix.

6. What are the coordinates of the origin of the end-effector frame as a function of the joint variables?

7. Draw the trajectory of the origin of the end-effector frame for the following sequence of joint o o o o o o values: θ1 from 0 to 90 , θ2, θ3 from 0 to 45 , θ4, θ5 and θ6 from 0 to 180 .

8. (Optional): Create a simulation of the robot using Maple. Chapter 8

Clifford Algebras

8.1 Overview

Clifford algebras, also called geometric algebras, are a family of algebras defined by a product, the geometric product or Clifford product, that contains a bilinear form and a skew-symmetric product. Depending on both the underlying vector space and the definition of the geometric product, different Clifford algebras are obtained which can be used to model a variety of physical phenomena. These algebras are also called Grassmann-Clifford algebras, as the Clifford product is created as a combination of the outer product of Grassmann algebra and a scalar product or quadratic form. In the Clifford algebras that we use to model rigid motion, the underlying vector space has dimension four and generates a multi-vector space of dimension 16, and the scalar product is a degenerate bilinear form; similar combinations of the wedge product and an inner product can be used to model different geometries and transformations. Clifford algebras unite Euclidean, affine, projective, spherical, hyperbolic and conformal geometry.

Clifford algebras were formalized by Clifford as a combination of Grassman algebra and Hamilton’s quaternions. With it, the complex numbers that were extended to three dimensions by Hamilton are generalized to arbitrary dimensions.

William Kingdon Clifford (Exeter, Devon, England, 1845-1879) most important work is On the Classification of Geometric Algebras, from 1876 (collected in W.K. Clifford, Mathematical Papers, edited by R. Tucker, MacMillan Co., London 1882). He also studied non-euclidean geometry.

81 82 CHAPTER 8. CLIFFORD ALGEBRAS

Figure 8.1: W. H. Clifford

8.2 Clifford algebras and the Clifford product

Clifford algebras, called also geometric algebras, are the minimum algebra that can be defined to describe a certain geometry.

The set of elements of the algebra is composed of multi-vectors, which we saw can be seen as geometric objects and their combinations. The operations of the algebra are addition, which is performed component-wise, multiplication by scalar (this forms a vector space; however, because the scalar is also a multi-vector, the multiplication scalar-multivector can be understood within the product of the algebra), and a geometric or Clifford product. This product is defined as follows: let a, b be two elements of the underlying vector space that, together with the wedge product, generates the set of multivectors. The Clifford product is defined as

ab = a · b + a ∧ b (8.1) where the scalar product is any bilinear form and the wedge product is the one defined by Grassmann algebras.

Equivalently, the Clifford product can be defined as ab = −a · b + a ∧ b.

Notice first that this definitions implies that the underlying vector space has a metric, given by the symmetric bilinear form. The result of the Clifford product is a new element, a scalar and a multi-vector (in this case, a 2-multivector).

Once the geometric product is defined, we can express both the scalar product and the wedge 8.2. CLIFFORD ALGEBRAS AND THE CLIFFORD PRODUCT 83

1 1 product by using it, a · b = 2 (ab + ba) and a ∧ b = 2 (ab − ba), based on the symmetry and anti-symmetry properties of both components.

8.2.1 Properties of the geometric product

Based on the definition, we have the following properties:

• Associative: a(bc) = (ab)c = abc.

• Distributive with respect to the addition: a(b + c) = ab + ac, or more in general, linear: k(a + b)c = kac + kbc.

• Non-commutative (it is not anti-commutative either). Orthogonal vectors anti-commute and parallel vectors commute.

• The identity of the Clifford product is the scalar 1.

• The product is invertible: all elements of the algebra except the multiplicative zero have an inverse: a, b such that ab = 1 implies b = a−1.

±a • The inverse element in this case is b = a·a , where the sign depends on the sign in the definition of the Clifford product.

• The square of any vector is a scalar.

• It satisfies the condition ab + ba = ±2a · b.

Notice that we have defined the Clifford product only for vectors of the underlying vector space. The Clifford product is applied to the general elements of the algebra by using the linearity; we only need to know the multiplication table for the basis vectors.

8.2.2 Creating Clifford algebras

Using different underlying spaces and defining different bilinear forms, many Clifford algebras can be created, that model different phenomena. In the following sections, Clifford algebras are defined that are used to model different physical systems. We denote as C(V, d) the Clifford algebra with underlying vector space V and bilinear form d.

Bayro-Corrochano [3] uses the following notation to define Clifford algebras: A Clifford algebra denoted as Gp,q,r has p basis vectors of the underlying vector space that square to +1, q basis 84 CHAPTER 8. CLIFFORD ALGEBRAS vectors that square to −1 and r basis vectors squaring to 0. This gives at the same time the dimension of the underlying vector space and the bilinear form associated to the bilinear product. However, other authors use alternative notations in which the vectors that square to -1 are presented first, for instance.

The basis of a Clifford algebra consists of scalar, vectors, and i-rank multivectors, for i from 2 and up to the dimension of the underlying space. The underlying vector space is in fact a subspace in the Clifford algebra. For an underlying vector space of dimension n, we will have a basis with n one scalar, n vectors, 2 rank-2 multivectors, and so on, up to one rank-n multivector. The total number of basis elements is

n X n = 2n, (8.2) p p=0 and a general element of the Clifford algebra can be written as

A = A0 + A1e1 + ... + Anen + ... + A2n e1 . . . en (8.3)

8.2.3 Subalgebras

The Clifford algebra contains an even Clifford subalgebra, spanned by the basis multivectors of even rank. The dimension of the even subalgebra is 2n−1.

There is an isomorphism between the Clifford algebra of underlying vector space V n and the even Clifford subalgebra of underlying vector space V n+1, for same scalar product in coincident elements.

8.3 Planar motion and planar geometry: Clifford algebras

8.3.1 Clifford algebra of the Euclidean plane: C2,0,0

2 The two-dimensional geometry can be defined using R as the underlying vector space and the usual dot product as the symmetric bilinear form. In this description, we follow the approach of Lounesto [1].

Let us denote the basis vectors of the underlying vector space as e1 and e2. Define the positive 3 8.4. THE EVEN CLIFFORD ALGEBRA OF THE THREE-DIMENSIONAL SPACE R 85

Clifford product, ab = a · b + a ∧ b. When applied to the basis vectors, we obtain

e1e1 = e1 · e1 = 1

e2e2 = e2 · e2 = 1

e1e2 = e1 ∧ e2 = e12

e2e1 = −e1e2 (8.4)

The rand-2 multivector or 2-blade is the unit element of area in the plane. The basis of the Clifford algebra is then {1, e1, e2, e12}. The general element of the algebra is a linear combination of a scalar, a vector and a bivector,

P = P0 + P1e1 + P2e2 + P3e12. (8.5)

Notice that the product of two vectors a = a1e1 + a2e2 and b = b1ea + b2e2 is the sum of a scalar and a bivector,

ab = (a1b1 + a2b2) + (a1b2 − a2b1)e12 (8.6)

The following multiplication table, together with the associative and distributive properties of the product, allows us to multiply general elements of the algebra,

1 e1 e2 e12

1 1 e1 e2 e12

e1 e1 1 e12 e2

e2 e2 −e12 1 −e1

e12 e12 −e2 e1 -1

Table 8.1: Multiplication table for C2,0,0

8.4 The Even Clifford algebra of the three-dimensional space R3

3 Consider the underlying real three-dimensional space R , with basis vectors {e1, e2, e3}. Recall that they create an eight-dimensional Grassmann algebra.

For the geometric product, consider the usual dot product a · b = axbx + ayby + azbz. 86 CHAPTER 8. CLIFFORD ALGEBRAS

Let us apply the geometric product to the basis vectors,

e1e2 = −e1 · e2 + e1 ∧ e2 = 0 + e1 ∧ e2 = −e2e1,

e2e3 = e2 ∧ e3 = −e3e2,

e3e1 = e3 ∧ e1 = −e1e3,

e1e1 = −e1 · e1 + e1 ∧ e1 = −1 + 0 = e2e2 = e3e3 (8.7)

Using the associative property, the element e1e2e3 has rank 3 and it is such that

2 (e1e2e3) = e1e2e3e1e2e3 = −e1e2e1e3e2e3 = (e1e1)e2e3e2e3 = −e2e3e2e3 = (e2e2)(e3e3) = 1 (8.8)

Notice that using the properties of the Clifford product and the results of operating the basis vectors, the basis elements for the Clifford algebra are:

{1, e1, e2, e3, e1e2, e2e3, e3e1, e1e2e3}. (8.9)

Consider now the elements of even rank:

{1, e1e2, e2e3, e3e1}. (8.10) and notice that the product of any two of them also gives an element of even rank, so that the set is closed and they form a subalgebra. This subalgebra can be identified with the set of quaternions, with e2e3 = i, e3e1 = j, e1e2 = k. The quaternions are then the elements of the even Clifford + 3 subalgebra C (R ) with the standard dot product (or, using the other denomination, it is the + Clifford algebra G0,3,0). A quaternion is an element of the Clifford subalgebra that can be written as

qˆ = q0(1) + q1(e2e3) + q2(e3e1) + q3(e1e2) (8.11)

8.5 The even Clifford algebra of the projective space P3

The projective space was described in Chapter ??. There we saw how a projective space is a good tool to describe both points and directions; points as the intersections of vectors from the origin with the chosen projective hyperplane, and directions as those same vectors from the origin; coordinate-wise, a point is a = (x, y, z, 1), while a direction is written as v = (x, y, z, 0). This allows a unified notation to describe lines.

3 The underlying vector space P has four basis vectors, which we denote here by e1, e2, e3 and e4. They can be described coordinate-wise as the canonical base of a four-dimensional vector space. 3 8.5. THE EVEN CLIFFORD ALGEBRA OF THE PROJECTIVE SPACE P 87

Any four-dimensional vector of the projective space can be described as a combination of the base elements,

v = v1e1 + v2e2 + b3e3 + b4e4. (8.12)

In this underlying vector space we can define an inner product, or scalar product, denoted by < ., . >. This inner product can be specified in many different ways, as long as it has the properties specified in Chapter 6.

Consider the degenerate scalar product d given by

  1   T  1  < a, b >= a   b = a1b1 + a2b2 + a3b3. (8.13)  1    0

This bilinear product effectively eliminates the fourth component; notice that distances in the w = 1 plane don’t need the last coordinate. The Clifford product defined using this degenerate inner product operates on the basis vectors as follows,

eiei = −1, i = 1, 2, 3,

e4e4 = 0,

eiej = −ejei, i = 1, 2, 3, 4. (8.14)

4 A general element of C(P , d) can be written as

A =a0 + a1e1 + a2e2 + a3e3 + a4e4 + a5e1e2 + a6e1e3 + a7e2e3 + a8e4e1+

+ a9e4e2 + a10e4e3 + a11e1e2e3 + a12e1e2e4 + a13e1e3e4 + a14e2e3e4 + a15e1e2e3e4 (8.15)

The dimension of the algebra is 24 = 16.

+ 4 + 4−1 Consider now the even subalgebra C (P , d), or alternatively, G0,3,1, of dimension 2 = 8. An element of this algebra can be written as

Q = q0 + q1e2e3 + q2e3e1 + q3e1e2 + q4e4e1 + q5e4e2 + q6e4e3 + q7e1e2e3e4 (8.16)

2 2 2 2 2 Observe that (e1e2e3e4) = e1e2e3e4 = 0. If we define  = e1e2e3e4, the dual unit, and it is such 88 CHAPTER 8. CLIFFORD ALGEBRAS that 2 = 0, and consider the quaternion units, we can write the basis elements as

1,

e2e3 = i,

e3e1 = j,

e1e2 = k,

e4e1 = i = i,

e4e2 = j = j,

e4e3 = k = k,

e1e2e3e4 = . (8.17)

This allows us to write an element of this Clifford sub-algebra as a dual quaternion, consisting of two quaternions,

0 Q = (q0 + q1i + q2j + q3k) + (q7 + q4i + q5j + q6k) =q ˆ+ qˆ . (8.18)

8.6 The Clifford algebra of dual quaternions

In Chapter 7, we saw how unit quaternions are, like three-dimensional orthogonal matrices, another representation for rotations. In a similar fashion we can see how unit dual quaternions acting on the projective space are another representation of spatial displacements, as the 4 × 4 homogeneous matrix transforms studied before. This relations are captured in the table below,

3-D Rotations Spatial displacements 3-D orthogonal matrices 4 × 4 homogeneous transforms ( ) " #( ) X [R] d x X = [R]x = 1 0T 1 1

Unit quaternions Unit dual quaternions Xˆ =q ˆxˆqˆ∗ Xˆ = QˆxˆQˆ∗ = (ˆq + qˆ0)ˆx(ˆq + qˆ0)∗

Table 8.2: Matrix and Clifford algebra expressions for rotations and general displacements. 8.6. THE CLIFFORD ALGEBRA OF DUAL QUATERNIONS 89

8.6.1 Spatial displacements using unit dual quaternions

Let us change the notation for the dual quaternions, and use the superscript 0 for the dual part; it can be written in the following different ways,

ˆ 0 0 0 0 0 Q =ˆq + qˆ = (q0 + q1i + q2j + q3k) + (q0 + q1i + q2j + q3k) = 0 0 =ˆq0 + Q = (q0 + q0) + (q + q ), (8.19) that is, as two quaternions (“real” quaternion capturing information about rotations and “dual” quaternion with information about translation due to both rotation and translation), or as a dual scalar plus a dual vector.

In this fashion, quaternions can be seen as a subset of dual quaternions [1].

In order for the dual part to represent rotations, we know that the quaternion must be a unit √ quaternion, that is, ||qˆ|| = qˆqˆ∗ = 1. For a dual quaternion to be unit, we require the conditions

||qˆ|| = pqˆqˆ∗ = 1, qˆ · qˆ0 = 0. (8.20)

In fact, if we define the conjugate dual quaternion as Qˆ∗ =q ˆ∗ + qˆ0∗, the condition can be written as QˆQˆ∗ = 1. (8.21)

The expression of the dual quaternion as a function of the screw axis and other invariants of the displacement, following Chasles’ theorem, is also straightforward: for a displacement with screw axis S = s + s0 = s + c × s, rotation about the axis φ and slide along the axis t, the displacement is written as

 φ   φ 0 t φ  sin sx  sin sx + cos sx  2   2 2 2  sin φ s  sin φ s0 + t cos φ s  φˆ φˆ Sˆ(φ, t) = 2 y +  2 y 2 2 y = cos + sin S, (8.22) sin φ s sin φ s0 + t cos φ s 2 2  2 z   2 z 2 2 z   φ   t φ  cos 2 sx  − 2 sin 2  where φˆ φ t φ φˆ φ t φ cos = cos −  sin , sin = sin +  cos (8.23) 2 2 2 2 2 2 2 2

It is straightforward to check that the two conditions of Eq.(8.20) are fulfilled by the above expres- sion.

The composition of displacements is given by the group operation, that is, by left multiplication using the Clifford product. Let us do the componentwise product once, then we will derive a general 90 CHAPTER 8. CLIFFORD ALGEBRAS formula.

PˆQˆ =(p0 + p1e2e3 + p2e3e1 + p3e1e2 + p4e4e1 + p5e4e2 + p6e4e3 + p7e1e2e3e4)

(q0 + q1e2e3 + q2e3e1 + q3e1e2 + q4e4e1 + q5e4e2 + q6e4e3 + q7e1e2e3e4) =

p0q0 − p1q1 − p2q2 − p3q3 + p0(q1e2e3 + ...) + q0(p1e2e3 + ...)+

(p2q3 − p3q2)e2e3 + (p1q3 − p3q1)e3e1 + (p1q2 − p2q1)e1e2+

(p1q7 − p7q1 + p6q2 − p2q6 + p5q3 − p3q5)e4e1+

(p6q1 − p1q6 + p2q7 − p7q2 + p4q3 − p3q4)e4e2+

(p1q5 − p5q1 + p4q2 − p2q4 + p7q3 − p3q7)e4e3−

− (p1q4 + p4q1 + p2q5 + p5q2 + p3q6 + p6q3)e1e2e3e4 (8.24)

Using the quaternion unit, this becomes

PˆQˆ =p0q0 − p1q1 − p2q2 − p3q3 + (p0q1 + p1q0 + p2q3 − p3q2)i+

(p0q2 + p2q0 + p1q3 − p3q1)j + (p0q3 + p3q0 + p1q2 − p2q1)k+

(p0q4 + p4q0 + p1q7 − p7q1 + p6q2 − p2q6 + p5q3 − p3q5)i+

(p0q5 + p5q0 + p6q1 − p1q6 + p2q7 − p7q2 + p4q3 − p3q4)j+

(p0q6 + p6q0 + p1q5 − p5q1 + p4q2 − p2q4 + p7q3 − p3q7)k+

(p0q7 + p7q0 − (p1q4 + p4q1 + p2q5 + p5q2 + p3q6 + p6q3)) (8.25)

This calculation, apparently complex, can be written in a compact way if we consider the dual scalar plus dual vector notation, Pˆ =p ˆ0 + P and Qˆ =q ˆ0 + Q,

PˆQˆ = (ˆp0 + P)(ˆq0 + Q) = (ˆp0qˆ0 − P · Q) + (ˆp0Q +q ˆ0P + P × Q), (8.26) where we use the dual dot and cross product, which can be computed component-wise considering as usual 2 = 0.

Applying this formula to unit dual quaternions, expressed in terms of the invariants of the displace- ment, we obtain

φˆ φˆ φˆ φˆ Sˆ (φ , t )Sˆ (φ , t ) =(cos 1 + sin 1 S )(cos 2 + sin 2 S ) = 1 1 1 2 2 2 2 2 1 2 2 2 φˆ φˆ φˆ φˆ cos 1 cos 2 − sin 1 sin 2 S · S + 2 2 2 2 1 2 φˆ φˆ φˆ φˆ φˆ φˆ cos 1 sin 2 S + cos 2 sin 1 S + sin 1 sin 2 S × S , (8.27) 2 2 2 2 2 1 2 2 1 2 8.6. THE CLIFFORD ALGEBRA OF DUAL QUATERNIONS 91 which can also be collected as coefficients of the product of dual angles as φˆ φˆ φˆ φˆ φˆ φˆ φˆ φˆ Sˆ (φ , t )Sˆ (φ , t ) = cos 1 cos 2 +cos 1 sin 2 S +cos 2 sin 1 S +sin 1 sin 2 (S ×S −S ·S ) 1 1 1 2 2 2 2 2 2 2 2 2 2 1 2 2 1 2 1 2 (8.28) (PUT THIS IN A LATER CHAPTER, TYING WITH THE GEOMETRIC INTERPRETATION) where now the product can be seen as the addition of different dual quaternion elements: a dual quaternion S without the scalar part is a vector dual quaternion or pure dual quaternion, Sˆ(π, 0) =

S; the single scalar 1 is the unit quaternion Sˆ(0, 0) = Iˆ = 1 + 0, and the term S1 × S2 − S1 · S2 can be obtained as the quaternion product of two vector dual quaternions, Sˆ1(π, 0)Sˆ2(π, 0), to obtain:

Sˆ1(φ1, t1)Sˆ2(φ2, t2) = φˆ φˆ φˆ φˆ φˆ φˆ φˆ φˆ cos 1 cos 2 Sˆ(0, 0) + cos 1 sin 2 Sˆ (π, 0) + cos 2 sin 1 Sˆ (π, 0) + sin 1 sin 2 Sˆ (π, 0)Sˆ (π, 0) 2 2 2 2 2 2 2 1 2 2 1 2 (8.29) (AND WRITE THIS AS A MATRIX TOO)

The action of this group on the set of points, directions, lines, etc., objects of the three-dimensional geometric space, is by conjugation. Consider an objectx ˆ (if it is a vector, it will be a vector dual quaternion, etc.; we will cover this more in detail in following chapters). After the displacement, we obtain the element Xˆ, Xˆ = QˆxˆQˆ∗. (8.30)

8.6.2 Examples

These examples illustrate how the dual quaternion expression of robots is straightforward to con- struct, as it is the matrix exponential, with the added advantage of implying less components.

A rotation and a translation about the Z axis: The screw axis is     0 0     S = 0 +  0 (8.31) 1 0 and the dual quaternion for rotating by an angle θ and translating by an amount t is      0   0       0   0  Sˆ(θ, t) = +  (8.32) sin θ t cos θ  2   2 2   θ   t θ  cos 2  − 2 sin 2 

Remember that, in this expression, S is expressed in the fixed frame and θ represents the relative angle from an initial value to a final value (in this case, we can take θ0 = 0); same for the slide t. 92 CHAPTER 8. CLIFFORD ALGEBRAS

The composition of a rotation about the X axis and a rotation plus translation about an axis S2 directed along the Z axis but passing through a point c = (2, 2, 0): In this case, the screw axes for each individual displacements are         1 0 0 2         S1 = 0 +  0 , S2 = 0 +  −2 . (8.33) 0 0 1  0 

Notice that the composition, given by the left multiplication, corresponds to a relative rotation about S2 followed by a relative rotation about S1, which causes a displacement of S2 also. The resultant dual quaternion is

 θ θ   θ θ θ θ d θ θ  cos 1 sin 2  2(sin 1 sin 2 + cos 1 sin 2 ) + 2 cos 1 cos 2   2 2   2 2 2 2 2 2 2   θ1 θ2   θ1 θ2 θ1 θ2 d2 θ1 θ2  sin 2 sin 2  2(sin 2 sin 2 − cos 2 sin 2 ) + 2 sin 2 cos 2  Sˆ1(θ1, 0)Sˆ2(θ2, d2) = +  (8.34) cos θ1 sin θ2 − d2 sin θ1 sin θ2  2 2   2 2 2   θ1 θ2   d2 θ1 θ2  cos 2 cos 2   − 2 cos 2 cos 2 

8.7 The geometry of the Clifford algebra C+(P4, d)

As with any algebraic object, a Clifford algebra can be used to model different physical phenomena. The advantage in this case is that we can model both the group and the set in which it acts within the same algebra (I guess it is possible to do it like this with matrix algebra also, considering the vectors as 1-dimensional matrices, but that does not seem to yield much advantage).

+ 4 In the Clifford algebra C (P , d) we can use the following identifications [1]:

• Rotations are represented by quaternions, Qˆ =q ˆ + 0.ˆ

ˆ 1 • Translations are also a subset of the dual quaternions, T = 1 + 2 t, where t is the translation vector.     0 px     0 p  • Points have the expression Pˆ = 1 + p = +  y 0 pz      1  0    vx   v  • Vectors are written as Vˆ = 0 + v + 0ˆ = y vz     0  8.8. LIE ALGEBRA AND CLIFFORD ALGEBRA 93

3 In the projective geometry, e4 = 1 defines the hyperplane R , where points live. Vectors, which are directions, live in the hyperplane e4 = 0. (this may work for ablamowicz but does not work for vectors in my case unless we identify e1e2 with e3 and so on.... check their way of doing it; maybe it is easier).

In this scenario, a rotation applied to a point gives as a result another point (in this calculation, we use the fact that  conjugates with i, j, k),

qˆ(1 + p)ˆq∗ =q ˆqˆ∗ + qˆpˆqˆ∗ = 1 + qˆpˆqˆ∗. (8.35)

Translating a point,

1 1 1 1 1 1 (1 +  t)(1 + p)(1 +  t)∗ = (1 + (p + t))(1 −  t) = (1 + (p + t − t)). (8.36) 2 2 2 2 2 2

WHAT IS WRONG!!

And translating a direction v,

1 1 1 1 1 (1 +  t)(0 + v)(1 +  t)∗ = (0 + v + (t × v − t · v))(1 −  t) = v + (−t · v + t · v) = v, (8.37) 2 2 2 2 2 and as expected, translations do not change directions.

As we saw in Chapter 1, the general displacement can be written as a rotation followed by a translation. Using the Clifford algebra expressions, the general rotation can be obtained as

1 φ φ Qˆ = TˆRˆ = (1 +  t)(cos + sin (s + s0) = (8.38) 2 2 2

KEEP WORKING ON THIS EXPRESSION

8.8 Lie algebra and Clifford algebra

The question here is, how can we define the Lie algebra that creates one-parameter subgroups for the displacement within the Clifford algebra? In this section, we apply same methodology as we did for the matrix representation to obtain the Lie algebra elements as seen from the point of view of Clifford algebras.

Consider a vector quaternion Sˆ = 0 + s. Let us compute the exponential of this vector by using Taylor’s series development and the Clifford product,

2 ˆ φ eφS = (1 + ~0) + φSˆ + Sˆ2 + ... (8.39) 2 94 CHAPTER 8. CLIFFORD ALGEBRAS where Sˆ2 = (0 + s)(0 + s) = −1, Sˆ3 = −Sˆ, and so on. The expression simplifies to

2 4 3 ˆ φ φ φ eφS = (1 − + − ...) + s(φ − + ...) = cos φ + sin φs. (8.40) 2 4! 3!

The result is a unit quaternion, expression of a rotation about s by an angle 2φ. Which means that, in order to obtain the element of the Clifford algebra that represents the correct rotation, we need to use the half angle, φ Sˆ φ φ e 2 = cos + sin s. (8.41) 2 2 Relating to similar results for rotation matrices, we will see in following sections how the angular φ˙ velocity can be obtained from the finite rotation expressed using quaternions as ω = 2 s. The advantage with respect to the matrix expression is that we obtain this vector directly, without having to extract it as we had to do from the skew-symmetric matrix.

Similarly, consider a vector dual quaternion, or a screw Jˆ = 0 + J = 0 + (1 + µ)S)), where S = s + (c × s) can be seen as the Plucker coordinates of the line. The exponential of this Clifford algebra element, using the Clifford product, yields

2 3 4 ˆ φ φ φ eφJ = 1 + (1 + µ)S − (1 + 2µ) − (1 + 3µ)S + (1 + 4µ) + ... (8.42) 2 3! 4! because Jˆ2 = −(1 + 2µ), Jˆ3 = −(1 + 3µ)S, and so on. The expression simplifies, considering φµ = t,

2 3 4 3 4 ˆ φ φ φ φ φ eφJ =(1 + S − − S + + ...) + µ(S − φ2 − S + − ...) 2 3! 4! 2 6 φ2 φ4 φ3 φ3 φ2 =(1 − + − ...) + (1 − + ...)S + t(φ + − ...) + t(1 + + ...)S. 2 4! 3! 3! 2 =(cos φ − t sin φ) + (sin φ + t cos φ)S = cos φˆ + sin φˆS (8.43)

Finally, in order to obtain the dual quaternion of a screw displacement of angle φ and slide t, we can do it as the exponential of the screw,

ˆ ˆ φ Jˆ φ φ e 2 = cos + sin S (8.44) 2 2

8.9 Clifford Analysis

In this section the expression of and higher derivatives using Clifford algebra, in particular dual quaternions, is derived. 8.9. CLIFFORD ANALYSIS 95

We start with the action of the group on the set by conjugation, as given in Eq.(8.30). the inverse displacement is obtained by isolating the initial value of the element,x ˆ = Qˆ∗XˆQˆ. Consider Xˆ as a pure dual quaternion, which is basically a screw Xˆ = (0 + 0) + (s + (c × s + µs)).

The velocity of element Xˆ is computed as the time derivative of its position. We will skip the hats for this derivation but the elements are part of the dual quaternion Clifford algebra, and Qˆ is a unit dual quaternion, that is, represents a displacement. We obtain dX V = = QxQ˙ ∗ + QxQ˙ ∗ = QQ˙ ∗XQQ∗ + QQ∗XQQ˙ ∗. (8.45) dt Some of those products give the identity,

V = QQ˙ ∗X + XQQ˙ ∗ (8.46)

Let us take a closer look to the Clifford product QQ˙ ∗.

QQ˙ ∗ = (q ˙ + q˙0)(q∗ + q0∗) =qq ˙ ∗ + (qq ˙ 0∗ +q ˙0q∗). (8.47)

Express Q as a function of the invariants of the displacement to obtain ( )( ) ( ) ( ) 1 s cos φ φ˙ −s sin φ φ˙ s(cos2 φ + sin2 φ ) − s × s cos φ sin φ 1 φ˙s qq˙ ∗ = 2 2 = 2 2 2 2 = (8.48) 2 φ ˙ φ 2 φ φ φ φ 2 − sin 2 φ cos 2 − cos 2 sin 2 + s · s cos 2 sin 2 0

Let us expand the other two terms in the product QQ∗, ( )( ) ( )( ) 1 s cos φ φ˙ −s0 sin φ − t cos φ s s0 cos φ φ˙ + (cos φ t˙ − t sin φ φ˙)s −s sin φ qq˙ 0∗ +q ˙0q∗ = ( 2 2 2 2 + 2 2 2 2 2 ) 2 φ ˙ t φ φ ˙ t φ ˙ φ − sin 2 φ − 2 sin 2 − sin 2 t − 2 cos 2 φ cos 2 ( ) ( ) 1 sin2 φ φ˙s0 − cos φ sin φ φ˙s × s0 cos2 φ φ˙s0 + t˙s − cos φ sin φ φ˙s0 × s = ( 2 2 2 + 2 2 2 ) 2 t ˙ t ˙ 2 φ − 2 φ ( ) 1 φ˙s0 + t˙s = (8.49) 2 0

Finally, the product yields ( ) ( ) 1 φ˙s 1 (φ˙s0 + t˙s) QQ˙ ∗ = 2 +  2 (8.50) 0 0

Notice that, because this element has the scalar equal to zero, the dual quaternions anit-commute, then QQ˙ ∗ = (QQ˙ ∗)∗ = −QQ˙ ∗, (8.51) so that we can write Eq.(8.46) as a function of this term. Let us denote QQ˙ ∗ = Ω;ˆ the final expression for the velocity is V = ΩˆX + XΩˆ ∗ = ΩˆX − XΩˆ, (8.52) 96 CHAPTER 8. CLIFFORD ALGEBRAS with ( ) ( ) 1 φ˙s 1 (φ˙s0 + t˙s) Ωˆ = 2 +  2 . (8.53) 0 0

The operation in Eq.(8.52) is called commutator and defines a Lie algebra for the Clifford algebra elements with scalar part equal to zero. The commutator operator is usually written in brackets, [Ω,X] = ΩX + XΩ∗ and can be denoted as “the operator for taking derivatives”.

The velocity of element Xˆ = 0 + X, ( ) ( ) sφ˙ × x (s0φ˙ + st˙) × x + sφ˙ × x0 V = +  . (8.54) 0 0

In the previous calculation, if ΩˆX = a + b, then XΩˆ = a − b, so that the velocity can be written, using only the vector part of the dual quaternion, as the dual cross product

V = 2Ω × X (8.55)

8.10 Other applications of Clifford algebras

Develop the following applications from the references:

3 • Electron spin in a magnetic field: C(R , ·), it can be identified with the algebra of 2 × 2 complex matrices.

4 • Clifford algebra of Minkowski spacetime: C(R , < ., . >), with the scalar product given by the   1    1  bilinear form   (a 16-dimensional algebra).  1    −1 Bibliography

[1] Ablamowicz, R. and Sobczyk, G., Lectures on Clifford (Geometric) Algebras and Applicatons, Birkhauser, Boston 2004.

[2] Artin, M., Algebra, Prentice-Hall, New Jersey, 1991.

[3] Bayro Corrochano, E., Geometric Computing for Perception Action Systems, Springer-Verlag, New York, 2001.

[4] Bottema, O., and Roth, B., Theoretical Kinematics, North Holland Press, NY, 1979.

[5] Browne, J., Grassmann Algebra: Exploring applications of extended vector algebra with Mathematica, Swinburne University of Technology, Melbourne, Australia, 2001. (Draft from http://www.ses.swin.edu.au/homes/browne/grassmannalgebra/book/index.htm).

[6] Cohn, P.M., Algebra, 2nd. edition, John Wiley & Sons, 1989.

[7] Craig, J. J., Introduction to Robotics, Mechanics and Control, Addison Wesley Publ. Co., 1989.

[8] Gosselin, C.M., St-Pierre, E. and Gagne, M., 1996, “On the development of the agile eye: me- chanical design, control issues and experimentation”, IEEE Robotics and Automation Society Magazine, 3(4):29-37.

[9] Kumar, A., and Waldron, K.J., 1981, “The Workspace of a Mechanical Manipulator,” ASME J. Mech. Design, 103: 665-672.

[10] McCarthy, j.m., Introduction to Theoretical Kinematics, The MIT Press, 1990.

[11] McCarthy, J.M., Geometric Design of Linkages, Springer, New York 2000.

[12] Murray, R., Li, Z. and Sastry, S., A Mathematical Introduction to Robotic Manipulation, CRC Press, Boca Raton, 1994.

[13] Releaux, F., 1875, The Kinematics of Machinery: Outlines of a Theory of , Dover Publications, New York, translation of 1963.

73 74 BIBLIOGRAPHY

[14] Selig, J.M., Geometrical Methods in Robotics, Springer, London 1996.

[15] Sugimoto, K., 1987, “Kinematic and Dynamic Analysis of Parallel Manipulators by Means of Motor Algebra”, ASME Journal of Mechanisms, Transmissions and Automation in Design, 109(1):3-5.

[16] Tsai, L. W., 1999, Robot Analysis: The Mechanics of Serial and Parallel Manipulators, John Wiley and Sons, New York, NY.