Rotations and Translations

Preview:

DESCRIPTION

Rotations and Translations. Euler Theorem + Quaternions . Representing a Point 3D. A three-dimensional point A is a reference coordinate system here. Rotation along the Z axis. In general:. Using Rotation Matrices. Combining Rotation and Translation. Extension to 4x4. - PowerPoint PPT Presentation

Citation preview

Rotations and TranslationsEuler Theorem + Quaternions

Representing a Point 3D A three-dimensional point

A is a reference coordinate system

here

z

y

xA

ppp

P

Rotation along the Z axis In general:

AX

BX

AYBY

1000cossin0sincos

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 - MatlabR = 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)

ijijkijkk k

k ijkk ijk ijij k

Quaternions - Algebra Using the same methods, we can

get to the following:

Quaternions AlgebraWe 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 AlgebraBy 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

ExampleWe 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 ii j ki j k

i j kRot

Rotating with quaternionsWe 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 )

Recommended