Vous êtes sur la page 1sur 27

Transformations

géométriques :
rotation et translation

173
Repères
• En robotique, on doit constamment transférer
des points d’un référentiel à un autre

7 3
Coordonnées du repère (robot) :  
1

référentiel
ym carte/global

xm
12
12
Coordonnées globales du repère :  
7 174
Autre exemple : caméra
• Si les objets sont directement en coordonnées de la
caméra, on peut facilement calculer une image
A' P A
 Ax 
u  1 0 0 0 A 
v  0 1 0 0  y
    Az 
1  0 0 1/ f 0  
coordonnées 1
image 2D coordonnées
3D

GLO-4001/7021 Introduction à la robotique mobile 175


Autre exemple : caméra
• Mais la caméra est sur le robot, qui se déplace…
le référentiel du monde (global) = référentiel caméra

• Il faut donc être capable d’exprimer un même point dans


plusieurs référentiels, et de passer d’un à l’autre
facilement.
176
Convention sur la notation
• Point P défini dans le repère B :
yB
B P
P
xB
• Position de P est un vecteur partant de l’origine
de B, selon les axes de B, et se terminant à P

GLO-4001/7021 Introduction à la robotique mobile 177


Transformation pour repères translatés
• L’origine de B est situé à la coordonnée (10,5)
dans le repère A : BT
A

• La position de P, exprimée dans le repère A, est


B
donc l’addition des deux vecteurs BT et P :
A

A
P  B P  ABT yr
P
 A Px   B Px   ABTx 
A   B A  5
 Py   Py   BTy  réf. B xr

Tous cela fonctionne tant yA


que les repères A et B ont la
même orientation. Sinon, il
faut tenir compte des réf. A xA 10
rotations. 178
Définir l’opération de rotation
• Correspond à déplacer un point (vecteur), avec
une rotation autour de l’origine, d’un angle q
antihoraire

y P1
q

x
• Opération linéaire* : multiplication de matrice
cos q  sin q 
R  , P2  RP1
 sin q cos q 
(prémultiplication)

*Le calcul des cos/sin n’est pas linéaire, mais l’application de la rotation R l’est 179
Exemple rotation 2D
Rotation de q =15o d’un rectangle autour de (0,0) : on
applique cette équation pour chaque point
 x2  cos15  sin15o   x1  0.9659 0.2588  x1 
o

y     
o  y   0.2588 y 
 2   sin15o cos15   1   0.9659   1

% Rotation d'un rectangle


P(:,1) = [0 0]';

P P2 P(:,2) = [2 0]';
P(:,3) = [2 1]';
P(:,4) = [0 1]';

angle = 15*pi/180; % radian


R = [cos(angle) -sin(angle) ; ...
sin(angle) cos(angle) ];

P2 = R*P; %rotat. sur tous les points

GLO-4001/7021 Introduction à la robotique mobile 180


Transformation pour des repères pivotés
• Soit le repère B pivoté de q =45o par rapport à A.
• Soit un point P défini dans ce repère B : BP =(9,16)
• Pour trouver AP, il suffit d’appliquer l’opérateur de rotation :
(coordonnées de P

yA
dans le repère A) A
P A B
BR P yA

17,7 équivalent
à faire tourner
le vecteur BP q
q
réf. A réf. A
-4.9 xA xA
 cos(45 o
)  sin(45o 
)  9   4.9
A
P     
 sin(45 ) cos(45 )     
o o 16 17.7
Transformation entre 2 repères
• On peut représenter toute transformation1 par une
rotation et une translation : cas général 2D/3D
• On a P, q et BT , on cherche P
B A A

yA

réf. A xA

1ou une série de transformations 182


Transformation entre 2 repères
• On peut représenter toute transformation1 par une
rotation et une translation : cas général 2D/3D
• On a P, q et BT , on cherche P
B A A

• Fait faire une rotation q : BA R


• Puis la translation ABT
(Définir un repère B par une combinaison
de rotation et une de translation) y
yAB P
A
P A B
B R P  BT
A
réf. B
L’ordre R, T est important! réf. A xA
B

(et la rotation R se fait autour de l’origine)


1ou une série de transformations
183
Transformations : coordonnées cartésiennes
• La rotation est une multiplication, et la
translation est une addition
• Chaînage d’opération devient peu élégant

yC

réf. C xC

C
P AC
 ( B R P  BT
 PA R A B A
) C
AT
184
Coordonnées homogène : translation 2D
• En cartésien, une translation est une addition
 x2   x1  Tx1 
 y    y   T 
 2   1   y1 
• En homogène, translation s’exprime par une multiplication

 x2  1 0 Tx1   x1   1  x1  0  y1  Tx1 1   x1  Tx1 


 y    0 1 T   y    0  x  1  y  T 1    y  T 
 2  y1   1   1 1 y1   1 y1 
 1  0 0 1   1  0  x1  0  y1  11   1 

P2  TP1
GLO-4001/7021 Introduction à la robotique mobile 185
Coordonnées homogène : rotation 2D
• Rotation est encore une multiplication

 x2  cos q  sin q 0   x1 
 y    sin q cos q 0   y1 
 2 
 1   0 0 1   1 

P2  RP1

GLO-4001/7021 Introduction à la robotique mobile 186


Homogène : chaînage des opérations
• On a donc que des multiplications!
P2 = T2R2T1R1P
• On peut donc facilement combiner toutes les
transformations dans une seule matrice
P2 = HP avec H = T2R2T1R1
• (rappel : toute transformation peut s’exprimer par une
rotation et une translation, ici capturée dans H)

187
Homogène : chaînage des opérations
• Ordre est important
P2 = TRP
(multiplication rotation : autour
des matrices de l’origine
n’est pas
commutative)
pas au même endroit!

P3 = RTP
rotation : autour
de l’origine

P3 = P2
GLO-4001/7021 Introduction à la robotique mobile 188
RT vs. TR
• Il est plus naturel de faire TR que de faire RT
matrice vecteur
rotation translation

1 0 Tx  cos q  sin q 0 cos q  sin q Tx 


    
TR  0 1 Ty   sin q cos q 0   sin q
 cos q Ty 
0 0 1   0
  0 1   0 0 1 
couplage
translation-rotation 
cos q  sin q 0 1 0 Tx  cos q  sin q (Tx cos q  Ty sin q ) 
   
RT   sin q cos q 0  0 1 Ty    sin q cos q (Tx sin q  Ty cos q ) 
 0 0 1  0 0 1   0 0 1 

(À l’examen, cherchez les combinaisons TR) 189


Homogène : transformation 3D
1 0 0 0  cos A 0 sin A 0 
0 cos A  sin A 0   0
rotation rotation 1 0 0 
Rx ( A)   
autour axe x 0 sin A cos A 0 autour axe y Ry ( A)    sin A 0 cos A 0 
   
0 0 0 1  0 0 0 1
(certains manuels
ont des erreurs)
cos A  sin A 0 0 1 0 0 Tx 
 0 0  0 1
rotation R ( A)   sin A cos A 0 Ty 
 0 1 0
translation T  
autour axe z
z
0 0 0 1 Tz 
   
 0 0 0 1 0 0 0 1

matrice vecteur
rotation translation

 r11 r12 r13 Tx 


r r22 r23 Ty 
TR   21
 r31 r32 r33 Tz 
 
0 0 0 1
190
Transformations : coordonnées homogènes
• La rotation est une multiplication, et la
translation est une multiplication
• Chaînage d’opération plus élégant

yC

réf. C xC

C
P C C A A B
AT A R BT B R P
191
Transformations : coordonnées homogènes
• On peut ainsi combiner directement T et R dans
une seule matrice de transformation H=TR

yC

réf. C xC
Rappel :
rotation transl.
 R11 R12 R13 Tx 
R R 
R
 21 22 23 y  T coordonnées A
A

P
H C C A B
B
 R31 R32 R33 Tz 

 0 0

0 1 
AH BH P
192
Sens des transformations
• On peut facilement trouver l’opposé des
transformations. Supposons qu’on connaisse B H
A

On cherche
B
P B
A H A
P
B 1 B B 1 B
AH P  AH AH
A
P
B 1 B
AH P PA
(direction flèche
A
Or, B H B
P  A
P a changé)

A 1
Donc B H
A  BH
193
Sens des rotations
• Profitez des propriétés de certaines matrices
• Soit : B H  BT B R
A A A

• Quel est l’inverse AB H  BAH 1 ?


A 1 A 1 A 1 A 1
BH  ( ABT B R )  BR BT
R est orthogonal (orthonormal)
A 1
 BA RT BT
1 0 0 Tx 
0 1 0 Ty 
T 
1
0 0 1 Tz 
 
0 0 0 1 

B
AH  BART ( BAT )
(ordre inverse, direction inverses)194
GLO-4001/7021 Introduction à la robotique mobile
Transformation monde  caméra
• Pour calculer l’endroit où un point dans le monde
va se situer par rapport à la caméra, on trouve la
transformation entre les deux référentiels

GLO-4001/7021 Introduction à la robotique mobile 195


Transformation monde  caméra
Soit le point mP = (-3,0,2) dans le
référentiel du monde. Trouvez la
coordonnées dans le référentiel de
la caméra

Pc

GLO-4001/7021 Introduction à la robotique mobile 199


Transformation monde  caméra
Transférer le point mP = (-3,0,2)
dans le référentiel du monde,
vers le référentiel de la caméra
Pm =
-3
0
2
23.9054
1
Pc
R =
0.9397 0 0.3420 0 2.8650
0 1.0000 0 0
-0.3420 0 0.9397 0
0 0 0 1.0000

T =
1 0 0 5
0 1 0 0
0 0 1 21
0 0 0 1

>> Pc = T*R*Pm

Pc =
2.8650
0
23.9054
1.0000

GLO-4001/7021 Introduction à la robotique mobile 200


Modèle Caméra (Homogène)
3 à 2 dimensions 3 à 4 dimensions

dépend de la fabrication de la caméra

u
x1  X1   X1 
x3  x1   1 0 0 0    
    X  X2 
 x2    0 1 0 0H  2  X 
v
x2
 x   0 0 1/ f   X3   3
x3  3  0  
 1 

GLO-4001/7021 Introduction à la robotique mobile 202


Modèle Caméra plus complet
3 à 2 dimensions 3 à 4 dimensions

u
x1  X1   X1 
x3  x1     u0 0    
    X  X2 
 x2    0  v0 0H  2  X 
v
x2
x  0   X3   3
x3  3  0 1 0  
 1 
f = 1 pour simplifier
À titre informatif (u0,v0) : point principal sur capteur
,  : échelle x-y en pixel du capteur, idéalement 
 : déformation entre axes du capteurs, idéalement =0
203