Vous êtes sur la page 1sur 5

01.10.

14

2.1.5 Rotations in 3D: Rotation axis!


2D:

3D:

Angle


Center of rotation

Angle

Rotations around axes as direction cosines!


!
% x1 x 2
! x 2 , y , z2 # = % y x 2
"
$ % 1
2
% z1 x 2
"

y1

y 2



z1=
z2

In 3 dimensions, we need to specify


angle and axis!

y1

y2

x1

y1=
y2

x1 y 2
y1 y 2
z1 y 2

y1 y 2
z1 y 2

#
x1 z 2 &
y1 z 2 &
&
z1 z 2 &
$

x 2

x1

! cos
%
= % sin
% 0
"

sin
cos
0

0
0
1

#
&
&
&
$

Rotation around x,y,z!

Rotations around axes as direction cosines!


!
% x1 x 2
! x 2 , y , z2 # = % y x 2
"
$ % 1
2
% z1 x 2
"

x1 y 2

#
x1 z 2 &
y1 z 2 &
&
z1 z 2 &
$

Ex. 5: Ry=?

# cos 0 sin &


%
(
Ry = % 0
1
0 (
%$ sin 0 cos ('
#1
0
0 &
%
(
Rx = %0 cos sin (
%$0 sin cos ('

#cos sin 0&


%
(
Rz = % sin cos 0(
%$ 0
0
1('

Exercice 6

a): rotation by 90 around z, then rotation


by 90 around y
b): rotation by 90 around y, then rotation
by 90 around z

Solution by matrix multiplication!


# 0 0 1&#0 1 0& #0 0 1&
%
(%
( %
(
% 0 1 0(%1 0 0( = %1 0 0(
%$1 0 0('%$0 0 1(' %$0 1 0('

6a

6b

#0 1 0&# 0 0 1& # 0 1 0&


%
(%
( %
(
%1 0 0(% 0 1 0( = % 0 0 1(
%$0 0 1('%$1 0 0(' %$1 0 0('

01.10.14

Problem 7a: Solution by an isometric drawing:!


z axis!
90!

Rotation autour daxes lis au corps

y axis!
90!

7c
y

corresponds to 120 rotation around. [1,1,1] axis!!

z axis 90
7b

z axis!
90!

y axis!
90!

Body frame

Rotation autour daxes li au corps

Body frame

7d

y axis 90

Ex. 8

z
x

y axis 90

z axis 90
Fig. 4

Passage Axe/Angle => Matrice de cos. dir.

Ex. 8

rotation d'un angle J autour de l'axe [x,y,z]T



avec || [x,y,z]T|| = 1

" xx
$
(1 cos )$ xy
$ xz
#

xy
yy
yz

" 0 z y %
" 1 0 0 %
xz %
'
$
'
$
'
yz ' + cos $ 0 1 0 ' + sin $ z 0 x '
'
$
'
$
'
0
0
1
y
x
0
zz &
#
&
#
&

# xx
R = (1 cos )% xy
$% xz

1. solution: Formule (10)


xy
yy
yz

xz &
#1
yz ( + cos %0
zz ('
$%0

0
1
0

0&
#0
0( + sin % z
%$y
1('

z
0
x

y&
x (
0 '(

2. solution:

(10)
Benjamin Olinde Rodrigues

1795 1851

01.10.14

Application de (11) lex. 6

Passage Matrice de cos. dir. => Axe/Angle


From direction cosines to axis/angle:!

! a d
#
R =# b e
# c f
"

g $
&
h &
i &
%

! x
axis! #
direction:

# y
# z
"

! f h $
$
&
&
1 #
# gc &
&=
& 2sin( ) # b d &
%
"
%

"a d
$
R = $b e
$#c f

1
cos( ) = (tr(R) 1)
2
1
sin( ) =
( f h)2 + (g c)2 + (b d)2
2

"0 0 1%
$
'
= $1 0 0'
$#0 1 0'&

g%
'
h'
i '&

# 0 1 0&
%
(
= % 0 0 1(
$%1 0 0('

"x%
" f h%
1
$ '
$
'
$y' = 2sin( ) $ g c '
$#z'&
$# b d '&

ex.
6a)

ex. 6b)

1
(tr(R) 1)
2
1
sin( ) =
( f h)2 + (g c)2 + (b d)2
2
cos( ) =

(11)

Problmes de (11)

Solution: Quaternions!

Lexpression axe/angle de l'quation (11) prsente


deux dfauts majeurs pour le traitement
l'ordinateur:
1.) La solution n'est pas unique (racine pos. ou neg.)

Ces deux inconvnients disparaissent de


faon lgante en employant les paramtres
d'Euler*) ou quaternions ou paramtres de
Rodrigues.
Les quaternions sont employs en robotique
industrielle.

2.) sin()=0 mne une singularit (axe non-dfini)

En pratique, il y aura une mauvaise condition


numrique pour tout angle proche de 0 ou de 180
et une erreur pour ces deux cas!

Les quaternions sont une


gnralisation des nombres complexes.

Aprs de longs et infructueux essais d'tendre l'interpretation gomtrique des nb. complexes dans le plan (Argand,
1768-1822, mathmaticien genevois) aux 3 dimensions,
Hamilton (1843) a trouv les deux astuces ncessaires:
1.

Il n'y aura pas deux, mais trois parties imaginaires,


en plus de la partie relle.

2.

Il faut abandonner la commutativit de la multiplication.

*) A ne pas confondre avec les angles d'Euler

Partie relle, parties imaginaires


Ces nouveaux nombres "hypercomplexes",
contiennent une partie relle scalaire 0

et trois parties imaginaires [1, 2, 3]T


qui sont interprtes comme partie vectorielle .
le quaternion Q est donc le quadruple

Q = { 0 , 1, 2, 3} = { 0 , }

(11a)

01.10.14

Parties imaginaires: Gnralisation de

Comment la rotation est-elle exprime dans


le quaternion?

i = (1)

Q = { 0 , 1, 2, 3} = 0 + i 1 + j 2 + k 3



(11d)




i2 = j2 = k2 = ijk = 1

(11e)



ij = k = ji
Non-Commutativit! !
jk = i = kj


ki = j = ik

(11f)

Angle de rotation

Laxe de rotation est donne


par la partie vectorielle

= [1, 2, 3]T

Q = { 0 , 1, 2, 3} ={ 0 , }

0 = cos(/2)

Donc tous les quaternions de rotation sont


unitaires:

0 = cos(/2)

|| = sin(/2)

(11b)

a.k.a. Euler Parameters, Rodrigues Parameters!

Passage entre quaternions et matrice des


cosinus directeurs

i2 = j2 = k2 = 1

Les rgles

jk = i = kj

(11c)

02 + 12+ 22+ 32 = 1

Laxe de rotation disparat pour!


angles de rotation 0, 360, 720!

ij = k = ji

(11b)

|| = sin(/2)

mnent au produit

$ 2( 20 + 12 ) 1
&
R = & 2( 1 2 + 0 3 )
&%2( 1 3 0 2 )

ki = j = ik

2( 1 2 0 3 )
2( 20 + 22 ) 1
2( 2 3 + 0 1 )

2( 1 3 + 0 2 )'
)
2( 2 3 0 1 ))
2
2
2( 0 + 3 ) 1 )(

QMQL = { 0 , } { 0 , } =

{ 00 T , 0 + 0 + }

(11g)

Ce produit dfinit l'enchanement des rotations QL puis QM



Exercice 8b): Exercice 7 avec des quaternions.

! r r
# 11 12
# r21 r22
#
#" r31 r32

r13 $
&
r23 &
&
r33 &%

"
$ sgn(r32 r23 )
1$
= $ sgn(r13 r31 )
2
$ sgn(r r )
21
12
$#
1
0 =
r11 + r22 + r33 +1
2

%
r11 r22 r33 +1 '
'
r22 r11 r33 +1 '
r33 r22 r11 +1 ''
&
= cos(/2) 0

01.10.14

Effort de calcul Composition de rotations!

2.1.6 Matrices homognes 3D


Homogenous Matrices in 3D

"R3 3
#$ 01 3

t 3 1 %
1 &'
(12)

!
Matrices de rot.
Quaternions !

!Mul. !Add. & soustr.

!total !

Une rotation autour d'un axe ne passant pas par l'origine se


compose de la mme faon que dans le cas 2D:

!27
!16

!45!
!28!

A rotation around an axis NOT through the origin is done as in 2D:

!
!

!18
!12

!
!

" I3 3
$#01 3

Pour la rotation de vecteurs, il faut utiliser les matrices!

p 31 % "R
1 '&#$ 0

0% " I
1&' $#0

p% "R
=
1 '& #$ 0

p Rp %
1 &'

(13)

avec le vecteur p de l'origine O un point quelconque sur l'axe de rotation


with vector p from origin O to any point on the rotation axis.

Rappel: Mouvement gnral 3D: Vis

(screw, Schraube)
Recall from earlier lecture: The most general motion in 3D is a screw

Diffrence avec le cas 2D:


Le mouvement gnral en 3D est quivalent une rotation autour d'un
axe plus une translation en direction de cet axe.

The most general change of position in 3-D is a screw.


A screw is a rotation around an axis plus a translation
along this axis.