geometric fundamentals in robotics quaternions · geometric fundamentals in robotics quaternions...

47
Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 1 / 47

Upload: others

Post on 23-Jun-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Geometric Fundamentals in RoboticsQuaternions

Basilio Bona

DAUIN-Politecnico di Torino

July 2009

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 1 / 47

Page 2: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Introduction

Quaternions were “discovered” in 1843 by Sir William Hamilton, who waslooking for the extension to 3D space of the complex numbers as rotationoperators.

Figure: Sir William Rowland Hamilton (1805-1865) and the plaque on BroomBridge, where the quaternions were discovered.

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 2 / 47

Page 3: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Definitions

The generic quaternion will be indicated as q.

Quaternions are elements of a 4D linear space H(R), defined on the realnumbers field F = R, with base {1 i j k}.

i, j and k are ipercomplex numbers that satisfy the followinganticommutative multiplication rules:

i2 = j2 = k2 = ijk = −1ij = −ji = k

jk = −kj = i

ki = −ik = j

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 3 / 47

Page 4: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Definitions

A quaternion q ∈ H is defined as a linear combination expressed in thebase {1 i j k}:

q = q01+q1i+q2j+q3k

where the coefficients {qi}3i=0 are real.

Another way to represent a quaternion is to define it as a quadruple ofreals, (q0,q1,q2,q3)

q = (q0,q1,q2,q3)

in analogy with complex numbers c = a+jb, where c is represented by acouple of reals, c = (a,b),

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 4 / 47

Page 5: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Definitions

Quaternions are also defined as hypercomplex numbers, i.e., those“complex numbers” having complex coefficients:

q = c1 +jc2,

where c1 = q0 +kq3 e c2 = q2 +kq1.

Therefore, considering multiplication rules, it results:

q = c1 +jc2 = q0 +kq3 +jq2 +jkq1 = q01+q1i+q2j+q3k

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 5 / 47

Page 6: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Definitions

In analogy with complex numbers that are the sum of a real part and animaginary part, quaternions are the sum of a real part and a vectorial part.

The real part qr is defined as qr = q0, and the vectorial part qv is definedas qv = q1i+q2j+q3k.

We write q = (qr , qv) or q = qr +qv ; note that the vectorial part is not“transposed” since the conventional definition for the vectorial part of aquaternion assumes a row representation.

Using the convention that defines vectors as “column” vectors, we canwrite q = (qr , qT

v ).

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 6 / 47

Page 7: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Definitions

Quaternions are general mathematical objects, that include real numbers

r = (r , 0, 0, 0) , r ∈ R

complex numbers

a+ib = (a, b, 0, 0) , a,b ∈ R

real vectors in R3 (with some caution, since not all vectorial parts

represents vectors)

v = (0, v1, v2, v3) , vi ∈ R.

In this last case, elements{

i j k}

are to be understood as unit vectors{

i j k}

forming an orthonormal base in a cartesian right-handedreference frame.

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 7 / 47

Page 8: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Definitions

Multiplication rules between elements i,j,k have the same properties ofthe cross product between unit vectors i, j,k:

ij = k ⇔ i× j = k

ji = −k ⇔ −j× i = −k

etc.

In the following we will use all the possible alternative notations toindicate quaternions

q = q01+q1i+q2j+q3k= (qr ,qv) = qr +qv = (q0,q1,q2,q3)

i.e., a) a hypercomplex number; b) the sum of a real part and a vectorialpart; c) a quadruple of reals.

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 8 / 47

Page 9: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Definitions

An alternative way to write a quaternion is the following

q = q01+q1i+q2j+q3k

where now

1 =

[

1 00 1

]

; i =

[

i 00 −i

]

; j =

[

0 1−1 0

]

; k =

[

0 ii 0

]

;

and i2 = −1.

Hence every matrix is of the form

[

c d−d∗ c∗

]

;

These matrices are called Cayley matrices [see Rotations - Pauli spinmatrices].

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 9 / 47

Page 10: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Quaternions algebra

Given a quaternion q = q01+q1i+q2j+q3k = qr +qv = (q0,q1,q2,q3),the following properties hold:

a null or zero 0 quaternion exists

0 = 01+0i+0j+0k= (0,0) = 0+0 = (0,0,0,0)

a conjugate quaternion q∗ exists, having the same real part and theopposite vectorial part:

q∗ = q0− (q1i+q2j+q3k) = (qr ,−qv ) = qr −qv = (q0,−q1,−q2,−q3)

Conjugate quaternions satisfy (q∗)∗ = q

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 10 / 47

Page 11: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Quaternions algebra

a non-negative function, called quaternion norm exists ‖q‖, defined as

‖q‖2 = qq∗ = q∗q=3

∑ℓ=0

q2ℓ = q2

0 +qTv qv

A quaternion with unit norm ‖q‖ = 1 is called unit quaternion.Quaternion q and its conjugate q∗ have the same norm

‖q‖ = ‖q∗‖

The quaternion

qv = 01+q1i+q2j+q3k = (0,qv ) = 0+qv = (0,q1,q2,q3),

that has a zero real part is called pure quaternion or vector . The conjugateof a pure quaternion qv is the opposite of the original pure quaternion

q∗v = −qv

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 11 / 47

Page 12: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Quaternions algebra

Given two quaternions

h = h01+h1i+h2j+h3k= (hr ,hv) = hr +hv = (h0,h1,h2,h3)

and

g = g01+g1i+g2j+g3k = (gr ,gv) = gr +gv = (g0,g1,g2,g3)

the following operations are defined

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 12 / 47

Page 13: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Sum

Sum or addition h+g

h+g = (h0 +g0)1+(h1 +g1)i+(h2 +g2)j+(h3 +g3)k= ((hr +gr ), (hv +gv))= (hr +gr )+ (hv +gv )= (h0 +g0,h1 +g1,h2 +g2,h3 +g3)

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 13 / 47

Page 14: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Difference

Difference or subtraction

h−g = (h0−g0)1+(h1−g1)i+(h2−g2)j+(h3−g3)k= ((hr −gr ), (hv −gv))= (hr −gr )+ (hv −gv )= (h0−g0,h1 −g1,h2−g2,h3−g3)

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 14 / 47

Page 15: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Product

Product

hg = (h0g0 −h1g1−h2g2−h3g3)1+

(h1g0 +h0g1−h3g2 +h2g3)i+

(h2g0 +h3g1 +h0g2 −h1g3)j+

(h3g0 −h2g1 +h1g2 +h0g3)k

= (hrgr −hv ·gv , hrgv +grhv +hv ×gv )

where hv ·gv is the scalar product

hv ·gv = ∑i

hvigvi = hTv gv = gT

v hv

defined in Rn, and hv ×gv is the cross product (defined only in R

3)

hv ×gv =

h2g3−h3g2

h3g1−h1g3

h1g2−h2g1

= S(hv )gv

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 15 / 47

Page 16: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Product

The quaternion product is anti-commutative, since, being

gv ×hv = −hv ×gv

it follows

gh = (hrgr −hv ·gv , hrgv +grhv −hv ×gv ) 6= hg;

Notice that the real part remains the same, while the vectorial partchanges. Product commutes only if hv ×gv = 0, i.e., when the vectorialparts are parallel.

The conjugate of a quaternion product satisfies

(gh)∗ = h∗g∗.

The product norm satisfies

‖hg‖ = ‖h‖‖g‖ .

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 16 / 47

Page 17: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Product properties

associative(gh)p = g(hp)

multiplication by the unit scalar

1q= q1 = (1,0)(qr ,qv ) = (1qr ,1qv ) = (qr ,qv )

multiplication by the real λ

λq= (λ,0)(qr ,qv ) = (λqr ,λqv )

bilinearity, with real λ1,λ2

g(λ1h1 + λ2h2) = λ1gh1 + λ2gh2

(λ1g1 + λ2g2)h = λ1g1h+ λ2g2h

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 17 / 47

Page 18: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Product

Alternative forms

Quaternion product may be written as matrix product forms:

hg =

h0 −h1 −h2 −h3

h1 h0 −h3 h2

h2 h3 h0 −h1

h3 −h2 h1 h0

g0

g1

g2

g3

=

[

h0 −hTv

hv h0I+S(hv)

]

g0

g1

g2

g3

= FL(h)g

or

hg =

g0 −g1 −g2 −g3

g1 g0 g3 −g2

g2 −g3 g0 g1

g3 g2 −g1 g0

h0

h1

h2

h3

=

[

g0 −gTv

gv g0I+S(gv )

]

h0

h1

h2

h3

= FR(g)h

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 18 / 47

Page 19: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Quotient

Since the quaternion product is anti-commutative we must distinguishbetween the left and the right quotient or division.

Given two quaternions h e p, we define the left quotient of p by h thequaternion qℓ that satisfies

hqℓ = p

while we define the right quotient of p by h the quaternion qr that satisfies

qrh = p

Hence

qℓ =h∗

‖h‖2 p; qr = ph∗

‖h‖2

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 19 / 47

Page 20: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Inverse

Given a quaternion q, in principle one must define the right q−1r and the

left inverse q−1ℓ as

qq−1ℓ = 1 = (1,0,0,0); q−1

r q = 1 = (1,0,0,0)

Since qq∗ = q∗q = ‖q‖2 = ‖q‖‖q∗‖, one can write

q

‖q‖

q∗

‖q∗‖=

q∗

‖q∗‖

q

‖q‖= 1 = (1,0,0,0)

It follows that right inverse and left inverse are equal

q−1ℓ = q−1

r = q−1 =q∗

‖q‖2similar to c−1 =

c∗

‖c‖2

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 20 / 47

Page 21: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Inverse

For a unit quaternion u, ‖u‖ = 1, inverse and conjugate coincide

u−1 = u∗, ‖u‖ = 1

and for a pure unit quaternion q = (0,qv ), ‖q‖ = 1, i.e., a unit vector

q−1v = q∗v = −qv .

Inverse satisfies

(q−1)−1 = q; (pq)−1 = q−1p−1

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 21 / 47

Page 22: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Selection function

We define the selection function

ρ(q) = q0 = qr

as the function that “extracts” the real part of a quaternion

This function satisfies

ρ(q) =q+q∗

2.

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 22 / 47

Page 23: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Hamilton product

If we multiply two pure quaternions , i.e., two vectors

uv = (0,uv ) = u1i+u2j+u3k

andvv = (0,vv ) = v1i+ v2j+ v3k

we obtainuvvv = (−uv ·vv , u×v).

Hence, with a slight notation abuse, we can define a new vector product,called Hamilton product

uv = −u ·v+u×v.

This product implies uu = −u ·u, and for this reason, among others thequaternions were abandoned in favor of vectors.

Nonetheless the quaternion product has an important role in representingrotations.

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 23 / 47

Page 24: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Unit quaternions

Before starting to illustrate the relations between quaternions and rotation,we look closer to the properties of the unit quaternions, that we indicatewith the symbol u.

A unit quaternion (‖u‖ = 1) has an unit inverse and the product of twounit quaternions is still a unit quaternion.

We assume that a unit quaternion is represented by a sum of twotrigonometric functions

u = cosθ+usinθ = (cosθ,u sinθ)

where u is a unit norm vector and θ a generic angle.

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 24 / 47

Page 25: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Unit quaternions

Notice the analogy with the unit complex number expression

c = cosθ+jsinθ

The analogy applies also to the exponential expression c = ejθ; substitutingx with uθ in the series expansion of ex and recalling that uu=−1, we have

euθ = cosθ+usinθ = u

The relation above shows a formal identity between a unit quaternion andthe exponential of a unit vector multiplied by a scalar θNotice the similarity between u = euθ and R(u,θ) = eS(u)θ

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 25 / 47

Page 26: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Unit quaternions

From the previous relation one obtains the power p of a unit quaternion as

up = (cosθ+usinθ)p = euθp = cos(θp)+usin(θp)

and the logarithm of a unit quaternion

logu = log(cosθ+usinθ) = log(euθ) = uθ

Notice that the anti-commutativity of the quaternion product inhibits touse the standard identities between exponential and logarithms. Forinstance, eu1eu2 it is not necessarily equal to eu1+u2 , and log(u1u2) is notnecessarily equal to log(u1)+ log(u2).

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 26 / 47

Page 27: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Quaternions and Rotations

Now we relate rotations and unit quaternions

Given the unit quaternion

u = (u0,u1,u2,u3) = (u0,u) = cosθ+usinθ

this represents the rotation Rot(u,2θ) around u =[

u1 u2 u3

]T

The converse is also true, i.e., given a rotation Rot(u,θ) of an angle θaround the axis specified by the unit vector u =

[

u1 u2 u3

]T, the unit

quaternion

u =

(

cosθ2,u1 sin

θ2,u2 sin

θ2,u3 sin

θ2

)

=

(

cosθ2, usin

θ2

)

=

cosθ2

+usinθ2

represents the same rotations.

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 27 / 47

Page 28: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Quaternions and Rotations

We know that a rigid rotation in R3 is represented by a rotation

(orthonormal) matrix R ∈ SO(3) ⊂ R3×3.

We can associate to every rotation matrix R a unit quaternion u andviceversa, indicating this relation as R(u) ⇔ u.

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 28 / 47

Page 29: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Quaternions and Rotations

To compute the rotation matrix R(u) given a unit quaternion u= (u0,u),we use the following relation

R(u) = (u20 −uTu)I+2uuT−2u0S(u) =

u20 +u2

1 −u22 −u2

3 2(u1u2−u3u0) 2(u1u3 +u2u0)

2(u1u2 +u3u0) u20 −u2

1 +u22 −u2

3 2(u2u3−u1u0)

2(u1u3−u2u0) 2(u2u3 +u1u0) u20 −u2

1 −u22 +u2

3

where S(u) is an antisymmetric matrix.

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 29 / 47

Page 30: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Quaternions and Rotations

To compute the unit quaternion u = (u0,u) given a rotation matrix R weuse the following relation

u0 = ±1

2

(1+ r11 + r22 + r33)

u1 =1

4u0(r32 − r23)

u2 =1

4u0(r13 − r31)

u3 =1

4u0(r21 − r12)

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 30 / 47

Page 31: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Quaternions and Rotations

Another alternative relation is

u0 =1

2

(1+ r11 + r22 + r33)

u1 =1

2sign(r32− r23)

(1+ r11− r22− r33)

u2 =1

2sign(r13− r31)

(1− r11 + r22− r33)

u3 =1

2sign(r21− r12)

(1− r11− r22 + r33)

where sign(x) is the sign function, with sign(0) = 0.

This relation is never singular compared with the previous one that issingular for u0 = 0

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 31 / 47

Page 32: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Quaternions and Rotations

Elementary rotations around the three principal axes R(i,α), R(j,β) andR(k,γ), correspond to the following elementary quaternions

R(i,α) → ux =(

cosα2

, sinα2

, 0, 0)

R(j,β) → uy =

(

cosβ2, 0, sin

β2, 0

)

R(k,γ) → uz =(

cosγ2, 0, 0, sin

γ2

)

It is easy to see hat the “vectorial base” of quaternions correspond toelementary rotations of π around the principal axes

i = (0,1,0,0) → R(i,π)j = (0,0,1,0) → R(j,π)k = (0,0,0,1) → R(k,π)

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 32 / 47

Page 33: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Quaternions and Rotations

Notice an important fact: while the product among the unit basequaternions gives

ii = jj = kk = ijk= (−1, 0, 0, 0) ,

the product among the associated rotation matrices gives:

R(i,π)R(i,π) = R(j,π)R(j,π) = R(k,π)R(k,π) =

R(i,π)R(j,π)R(k,π) = I

Since I represents a rotation that leaves the vectors unchanged, it seemsnatural to associate it to positive unit scalar, i.e., the quaternion (1,0,0,0).

The apparent discrepancy between the two results can be explained onlyintroducing a most basic mathematical quantity, called spinor, notdiscussed in the present context

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 33 / 47

Page 34: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Quaternions and Rotations

We shall see now some correspondence between quaternion operations andmatrix operations

Rotation product

Given n rotations R1, R2, · · · , Rn and the corresponding unit quaternionsu1, u2, · · · , un, the product

R(u) = R(u1)R(u2) · · ·R(un)

corresponds to the product

u= u1u2 · · ·un

in the shown order.

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 34 / 47

Page 35: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Quaternions and Rotations

Transpose matrix

Given the rotation R(u) and its corresponding unit quaternion u, the

transpose matrix (i.e., the inverse rotation) RT corresponds to theconjugate unit quaternion u∗ (i.e., the inverse quaternion)

R ⇔ u

RT ⇔ u∗

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 35 / 47

Page 36: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Quaternions and Rotations

Vector rotation

Given a generic vector x, and the corresponding pure quaternion

qx = (0,x) = (0,x1,x2,x3)

and given a rotation matrix R(u) with its corresponding unit quaternion u,the rotated vector y = R(u)x is given by the vectorial part of thequaternion obtained as

qy = (0,y) = uqxu∗

where∥

∥qy

∥ = ‖qx‖

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 36 / 47

Page 37: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

The mapqx 7→ qy = uqxu

∗ ⇔ y = R(u)x

that transforms a pure vector into its rotated counterpart, in quaternionform, is called conjugation by u.

Notice that the transpose map is equivalent to exchange the order of theconjugation

qx 7→ qy = u∗qxu ⇔ y = RT(u)x

Quaternions u and u∗ = u−1 are called antipodal, because they representopposite points on the 3-sphere of unit quaternions.

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 37 / 47

Page 38: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Quaternions and Rotations

If we use the homogeneous coordinates to express the vector x

x =[

wx1 wx2 wx3 w]T

and the quaternion x is defined as

x = (w ,wx)

the product uxu∗ provides the quaternion y, defined as

y= (w ,wR(u)x)

The resulting vector y, in homogeneous coordinates is therefore

y =[

wy1 wy2 wy3 w]T

⇔ y = R(u)x

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 38 / 47

Page 39: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Quaternions and Rotations

Product matrices

Since the bi-linearity property holds for the product between twoquaternions, this can be represented by linear operators (i.e., matrices).

We recall that the product qp can be expressed in matrix form as

qp = FL(q)p

This can be interpreted as the left product of q by p.

Similarly for the right product pq, expressed as pq= FR(q)p.

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 39 / 47

Page 40: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Quaternions and Rotations

We can obtain pq∗ as FR(q∗)p and

qpq∗ = FL(q)FR(q∗)p = Qp

where the matrix Q ∈ R4×4 is

Q = FL(q)FR(q∗) =

q20 +q2

1 −q22 −q2

3 2(q1q2−q3q0) 2(q1q3 +q2q0) 0

2(q1q2 +q3q0) q20 −q2

1 +q22 −q2

3 2(q2q3−q1q0) 0

2(q1q3−q2q0) 2(q2q3 +q1q0) q20 −q2

1 −q22 +q2

3 0

0 0 0 ‖q‖2

We observe that the upper left 3×3 matrix of Q equals the matrix R(q)previously defined

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 40 / 47

Page 41: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Quaternions in Aerospace literature

In space applications quaternions are used when dealing with satelliteorientation control; unfortunately they may be “organized” in a differentway wrt to our conventions: often the real part is the last element ofquaternions

q = (q1,q2,q3,q0)

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 41 / 47

Page 42: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Historical notes

Hamilton tried to use the quaternions for a unified description ofspace-time physics (before Einstein), considering the real part of thequaternion as the representation of time, and the vectorial part as therepresentation of space q = (t,x ,y ,z).

Unfortunately the quadratic form

q∗q = qq∗ = t2 + x2 + y2 + z2

has the wrong signature (+,+,+,+).

We know that, in special relativity, the Minkowski spacetime standardbasis has a set of four mutually orthogonal vectors (e0,e1,e2,e3) such that

−(e0)2 = (e1)

2 = (e2)2 = (e3)

2 = 1

with signature (+,−,−,−) or (−,+,+,+).

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 42 / 47

Page 43: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

The development of hyperbolic quaternions in the 1890s prepared the wayfor Minkowski space.

Indeed, as a mathematical structure, Minkowski space can be taken ashyperbolic quaternions minus the multiplicative product, retaining only thebilinear form

η(p,q) = −pq∗+(pq∗)∗

2

which is generated (evidently) by the hyperbolic quaternion product pq∗.

[from Wikipedia: Minkowski space]

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 43 / 47

Page 44: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Hamilton tried for many years to extend the complex numbers rotationoperator from plane to space trying with triads of real number (a,b,c),with base (1,i,j), but he did not succeed.

A story goes that every morning his sons would inquire “Well, Papa canyou multiply triplets?”

The problem is that the general result on which he based his reasoning,i.e., the extension of the complex number result

(a21 + a2

2)(b21 +b2

2) = (c21 + c2

2 )

to the R3 space, cannot be solved with triads of numbers, i.e.,

(a21 + a2

2 + a23)(b

21 +b2

2 +b23) 6= (c12 + c2

2 + c23 )

that is the same to ask for the existence ‖a‖‖b‖ = ‖ab‖ in general cases(three components vectors in particular).

[from J. Stillwell, Mathematics and Its History, Springer ]

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 44 / 47

Page 45: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

The problem is that, while for complex numbers the product result is wellknown

(a1 +ja2)(b1 +jb2) = a1b1 − a2b2 +j(a2b1 + a1b2)

or(a1,a2)(b1,b2) = (a1b1− a2b2,a2b1 + a1b2)

for triad of numbers it is impossible.

Hamilton failed to acknowledge this and did not notice a result alreadygiven by Diophantus, that for example, 3 = 11 +12 +12 and5 = 02 +12 +22 are both sums of three squares, but their product 15 isnot. So he persisted for 13 years before discovering that he needed fournumbers, i.e., the quaternions.

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 45 / 47

Page 46: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

By the way the only number systems with a product satisfying

‖a‖‖b‖ = ‖ab‖

are

the real numbers R = R1.

the complex numbers C = R2; they are couples or real numbers.

the quaternions H = R4; they are couples or complex numbers.

the octonions O = R8; they are couples or quaternions.

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 46 / 47

Page 47: Geometric Fundamentals in Robotics Quaternions · Geometric Fundamentals in Robotics Quaternions Basilio Bona DAUIN-Politecnico di Torino July 2009 Basilio Bona (DAUIN-Politecnico

Commutative multiplication is possible only on R1 and R

2 and ityields the number systems R and C.

Associative, but noncommutative, multiplication is possible only onR

4, and it yields the quaternions H.

Alternative, but nonassociative, multiplication is possible only on R8,

and it yields a system called the octonions O.

Partial associativity law called cancellation or alternativity

a−1(ab) = b = (ba)a−1

Basilio Bona (DAUIN-Politecnico di Torino) Quaternions July 2009 47 / 47