Rotations and Translations Euler Theorem + Quaternions.

30
Rotations and Translations Euler Theorem + Quaternions

Transcript of Rotations and Translations Euler Theorem + Quaternions.

Rotations and Translations

Euler Theorem + Quaternions

Representing a Point 3D A three-dimensional point

A is a reference coordinate system

here

z

y

xA

p

p

p

P

Rotation along the Z axis In general:

AX

BX

AYBY

100

0cossin

0sincos

ZABR

Using Rotation Matrices

PRP BAB

A

Combining Rotation and Translation

BORGABA

BA PPRP

AX

BX

PB

BORGAP

PAAY

BY

Extension to 4x4

110001

PPRP BBORG

AAB

A

We can define a 4x4 matrix operator and use a 4x1 position vector

Formula

PTP BAB

A

Notes

Homogeneous transforms are useful in writing compact equations; a computer program would not use them because of the time wasted multiplying ones and zeros. This representation is mainly for our convenience.

For the details turn to chapter 2.

Euler’s Theorem

Any two independent orthonormal coordinate frames can be related by a sequence of rotations (not more than three) about coordinate axes, where no two successive rotations may be about the same axis.

Euler Angles

This means, that we can represent an orientation with 3 numbers

Assuming we limit ourselves to 3 rotations without successive rotations about the same axis:

Example

Another Example

Suppose we want to use ZXZ rotation,

Rotation along Z axis, Rotation along X axis, Rotation along Z axis,

Example - Cont

Let’s see what happens if,

Example – Cont 2

Changing 's and 's values in the above matrix has the same effects: the rotation's angle changes, but the rotation's axis remains in the direction

Gimbal Lock

Gimbal Lock Animation

Euler Angle - Matlab If we want to rotate Roll,Pitch and Yaw Roll 0.1 degrees Pitch 0.2 degrees Yaw 0.3 degrees

>> rotx(0.1)*roty(0.2)*rotz(0.3)ans = 0.9363 -0.2896 0.1987 0.3130 0.9447 -0.0978 -0.1593 0.1538 0.9752

Euler Angle – Matlab cont.

>> rpy2r(0.1,0.2,0.3) ans =

0.9363 -0.2896 0.1987 0.3130 0.9447 -0.0978 -0.1593 0.1538 0.9752

Euler Theorem

In three-dimensional space, any displacement of a rigid body such that a point on the rigid body remains fixed, is equivalent to a single rotation about some axis that runs through the fixed point.

Euler Theorem - MatlabR = 0.9363 -0.2896 0.1987 0.3130 0.9447 -0.0978 -0.1593 0.1538 0.9752[theta, v] = tr2angvec(R)

theta =

0.3816

v =

0.3379 0.4807 0.8092

Euler Theorem – Matlab cont.

>> angvec2r(0.3816, [0.3379,0.4807,0.8092])

ans =

0.9363 -0.2897 0.1987 0.3130 0.9447 -0.0979 -0.1593 0.1538 0.9752

3D Rotations - Matlab

R = rotx(pi/2);trplot(R)

tranimate(R)

HW

Quaternions

The quaternion group has 8 members:

Their product is defined by the equation:

, , , 1i j k

2 2 2 1i j k ijk

Example

Calculate

2

?

1

( 1)

ij

ijk

ijkk k

k ijkk ijk ij

ij k

Quaternions - Algebra

Using the same methods, we can get to the following:

Quaternions Algebra

We will call the following linear combination

a quaternion. It can be written also as:

All the combinations of Q where a,b,c,s are real numbers is called the quaternion algebra.

Q s ia jb kc s v

, , ,Q s a b c

Quaternion Algebra

By Euler’s theorem every rotation can be represented as a rotation around some axis

with angle . In quaternion terms:

Composition of rotations is equivalent to quaternion multiplication.

K

1 2 3 42 2ˆ ˆ( , ) (cos( ) sin( ) ) ( , , , )Rot K K

Example

We want to represent a rotation around x-axis by 90 , and then around z-axis by 90 :

31 1

2 2 2

(cos(45 ) sin(45 ) )(cos(45 ) sin(45 ) )

( )( ) cos(60 )

3

( ),120

3

o o o o

o

o

k i

i j ki j k

i j kRot

Rotating with quaternions

We can describe a rotation of a given vector v around a unit vector u by angle :

this action is called conjugation.

* Pay attention to the inverse of q (like in complex numbers) !

Rotating with quaternionsThe rotation matrix corresponding to a rotation by the unit quaternion z = a + bi + cj + dk (with |z| = 1) is given by:

Its also possible to calculate the quaternion from rotation matrix:Look at Craig (chapter 2 p.50 )