Systèmes avancés et robotique
Chapitre.2
Repères et transformations
homogènes
Mlaouhi Ibrahim
Mastère CIM
Computer Integration Manufacturing
Plan du Chapitre
• Notation
• Introduction
• Positionnement
• Rotations élémentaires
• Représentation d’un vecteur
• Composition de matrices de rotation
• Matrices homogènes
• Exercices d'application
1
Notation
a, λ, M ∈ R scalaires ⎡ ⎤
x1
.
x ∈ Rn vecteur colonne de dimension n, x = ⎣ .. ⎦
xn
A ∈ Rn×m matrice avec n lignes et m colonnes
n
x x2i norme euclidienne du vecteur x ∈ Rn
i=1
In ∈ Rn×n matrice identité n × n
0n×m ∈ Rn×m matrice de zéros n × m
AT ∈ Rm×n transposée de la matrice A ∈ Rn×m
A−1 inverse de la matrice A ∈ Rn×n (de rang plein)
2
Introduction
ze
Manipulateur θ4 effecteur
générique xe Oe
ye
d3
θ2
?
θ1
base
• Un manipulateur peut être représenté comme une chaîne cinématique
de segments reliés par l'intermédiaire d'articulations rotoïdes ou prismatiques
• Le mouvement résultant de la structure est obtenu par composition des
mouvements élémentaires de chaque segment par rapport au précédent
• Afin de manipuler un objet dans l'espace, il est nécessaire de décrire
la position et l'orientation (pose) de l'effecteur
Objectif final: exprimer la pose de l’effecteur en fonction des variables des
articulations, par rapport à un repère donné (par ex. le repère de la base)
3
Positionnement
La pose d'un solide (ou corps rigide) dans l'espace 3D peut être
complètement décrite par 6 paramètres indépendants:
• 3 paramètres indépendants définissent la position d'un
point, noté O’, du solide dans le repère fixe O-xyz (par ex.
coordonnées cartésiennes, cylindriques ou sphériques)
• 3 paramètres indépendants déterminent l'orientation
du solide autour du point O’ (par ex. les angles d’Euler)
solide
z y z
x
y O
O x
4
solide
o
repère fixe
La position du point O’ du solide par rapport au repère fixe O-xyz
s’exprime par l’équation:
o = ox x + oy y + oz z
où x, y, z sont les vecteurs unitaires (la norme est 1) des axes
du repère O-xyz et ox , oy , oz sont les composants du vecteur o ∈ R3
le long de chacun des trois axes
5
• Afin de décrire l'orientation du solide, considérons un repère attaché au corps
et exprimons ses vecteurs unitaires par rapport au repère O-xyz
• Soit O’-x’y’z’ un tel repère avec origine O’ et soient x , y , z les vecteurs
unitaires des axes
• Ces vecteurs sont exprimés par rapport au repère O-xyz par les équations:
x = xx x + xy y + xz z
y = yx x + yy y + yz z
z = zx x + zy y + zz z
• Sous forme compacte, les vecteurs unitaires x , y , z qui décrivent
l'orientation du solide par rapport à O-xyz, peuvent être combinés dans
la matrice 3 3:
⎡ ⎤ ⎡ T ⎤
xx yx zx x x yT x zT x
⎢ ⎥ ⎢ ⎥
R = [x y z ] = ⎣xy yy zy ⎦ = ⎣xT y yT y zT y⎦
xz yz zz xT z yT z zT z
qui est appelée matrice de rotation
6
Rotations élémentaires
• Considérons les rotations qu’on peut obtenir à partir de rotations
élémentaires autour des axes x, y, z
• Ces rotations sont positives s’ils sont faites autour des axes
relatifs dans le sens antihoraire
Exemple: le repère O-xyz est pivoté d’un angle α autour de l’axe z
et O-x’y’z’ est le repère qui résulte de cette rotation
7
Rotations élémentaires
• Les vecteurs unitaires de O-x’y’z’ peuvent être
exprimés par rapport au repère O-xyz comme:
⎡ ⎤ ⎡ ⎤ ⎡ ⎤
cos α − sin α 0
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
x = ⎣ sin α ⎦ , y = ⎣ cos α ⎦ , z = ⎣ 0 ⎦
0 0 1
• La matrice de rotation de O-x’y’z’ par
rapport à O-xyz engendrée est donc:
⎡ ⎤
cos α − sin α 0
⎢ ⎥
Rz (α) = ⎣ sin α cos α 0⎦
0 0 1
De la même façon, on peut trouver la matrice de rotation autour de
l’axe y d’un angle β et la matrice de rotation autour de l’axe x d’un angle γ
Remarque: ces matrices sont très utiles pour décrire des rotations
dans l’espace 3D autour d’axes arbitraires
8
Rotations élémentaires: sommaire
⎡ ⎤
1 0 0
⎢ ⎥ Matrice de rotation autour
Rx (γ) = ⎣ 0 cos γ − sin γ ⎦
de l’axe x d’un angle γ
0 sin γ cos γ
Mouvement de Lacet
⎡ ⎤
cos β 0 sin β
⎢ ⎥ Matrice de rotation autour
Ry (β) = ⎣ 0 1 0 ⎦
de l’axe y d’un angle β
− sin β 0 cos β
Mouvement de Tangage
⎡ ⎤
cos α − sin α 0
⎢ ⎥ Matrice de rotation autour
Rz (α) = ⎣ sin α cos α 0⎦
de l’axe z d’un angle α
0 0 1
Mouvement de roulis
Remarque:
Pour les rotations élémentaires, la propriété suivante est vérifiée:
Rx (−γ) = RTx (γ), Ry (−β) = RTy (β), Rz (−α) = RTz (α)
9
Représentation d’un vecteur
Hypothèse simplificatrice: l’origine du repère du solide coïncide avec l'origine
du repère fixe. Donc o = 03×1 = [0, 0, 0]T
On peut représenter le point 3D
P comme suit:
⎡ ⎤
px
⎢ ⎥
p = ⎣ py ⎦ par rapport à O-xyz
pz
et
⎡ ⎤
px
⎢ ⎥
p = ⎣ py ⎦ par rapport à O-x’y’z’
pz
10
Représentation d’un vecteur
Mais p et p sont deux représentations du même point P, donc:
p = px
x + py
y + pz
z =
x y z
p
Mais cela signifie que (cf. les équations
précédentes):
p = R p
R représente la matrice de transformation qui
permet d’exprimer les coordonnées du point P
dans le repère O-xyz, en function des coordonnées
du même point dans le repère O-x’y’z’
R est une matrice orthogonale. Donc la
transformation inverse est simplement:
p = RT p
11
Représentation d’un vecteur
Exemple:
Deux repères avec la même origine et une rotation relative d’un angle α
autour de l’axe z
p , p : vecteurs des coordonnées
du point P dans les repères
O-xyz et O-x’y’z’
On trouve que:
px = px cos α − py sin α
py = px sin α + py cos α
pz = pz
12
Représentation d’un vecteur
Exemple:
Deux repères avec la même origine et une rotation relative d’un angle α
autour de l’axe z
p , p : vecteurs des coordonnées
du point P dans les repères
O-xyz et O-x’y’z’
On trouve que:
px = px cos α − py sin α
py = px sin α + py cos α
pz = pz
Remarque:
La matrice Rz (α) représente non seulement l'orientation d'un repère par rapport
à un autre, mais elle décrit également la transformation d'un vecteur dans un
repère en un autre avec la même origine
13
Composition de matrices de rotation
Problème: Comment composer plusieurs rotations ?
Considérons trois repères O-x0 y0 z0, O-x1 y1 z1 , O-x2 y2 z2 avec la même origine O
14
Composition de matrices de rotation
Problème: Comment composer plusieurs rotations ?
Considérons trois repères O-x0 y0 z0, O-x1 y1 z1 , O-x2 y2 z2 avec la même origine O
p0 , p1 , p2 ∈ R3 : coordonnées d’un point P dans les trois repères
O-x2 y2 z2 O-x1 y1 z1
P
O
O-x0 y0 z0
15
Composition de matrices de rotation
Soit Rji la matrice de rotation du repère i par rapport au repère j
Donc
p1 = R12 p2
De la même façon, on obtient
p0 = R01 p1
p0 = R02 p2
16
Composition de matrices de rotation
Soit Rji la matrice de rotation du repère i par rapport au repère j
Donc
p1 = R12 p2
De la même façon, on obtient
p0 = R01 p1
p0 = R02 p2
Mais alors:
R02 = R01 R12
17
Composition de matrices de rotation
Considérons un repère initialement aligné avec O-x0 y0 z0
La rotation définie par R02 peut être interprétée comme obtenue
en deux étapes:
1. Tourne le repère avec R01 pour l’aligner avec O-x1 y1 z1
2. Tourne le repère, maintenant aligné avec O-x1 y1 z1, en utilisant R12
pour l’aligner avec O-x2 y2 z2
Remarque:
• La rotation d'ensemble peut être exprimée comme une séquence
de rotations partielles
• Chaque rotation est définie par rapport à la précédente
• Le repère par rapport à lequel la rotation se produit est appelé repère courant
• La composition de rotations successives est obtenue par multiplication à droite
des matrices de rotation en suivant l'ordre donné des rotations
• Avec notre notation, on a que:
Rji = (Rij )−1 = (Rij )T
18
Composition de matrices de rotation
Remarque:
• Les rotations successives peuvent aussi être specifiées toujours
par rapport au repère initial
• On dit donc que les rotations sont faites par rapport au repère fixe
• La composition de rotations successives est obtenue par multiplication
à gauche des matrices de rotation en suivant l’ordre donné des matrices
de rotation
Problème de base: le produit matriciel n’est pas commutatif !
• Deux rotations, en général, ne commutent pas et la composition dépend
de l’ordre des rotations individuelles:
R01 R12 = R12 R01
19
Composition de matrices de rotation
Exemple:
⎡ ⎤ ⎡√ ⎤
1 0 0 3/2 0 1/2
⎢ √ √ ⎥ ⎢ ⎥
Rx (π/4) = ⎣0 2/2 − 2/2⎦ , Ry (π/6) = ⎣ 0 1 0 ⎦
√ √ √
0 2/2 2/2 −1/2 0 3/2
⎡√ √ √ ⎤
3/2 2/4 2/4
⎢ √ √ ⎥
Ry (π/6) Rx (π/4) = ⎣ 0 2/2 − 2/2⎦
√ √
−1/2 6/4 6/4
mais =
⎡√ ⎤
3/2 0 1/2
⎢√ √ √ ⎥
Rx (π/4) Ry (π/6) = ⎣ 2/4 2/2 − 6/4⎦
√ √ √
− 2/4 2/2 6/4
20
Composition de matrices de rotation
• Rotations successives d'un objet autour des axes du repère courant
a)
=
b)
21
Composition de matrices de rotation
• Rotations successives d'un objet autour des axes du repère fixe
a)
=
b)
22
Représentation de l’orientation
• Les matrices de rotation fournissent une description redondante
de l’orientation d’un corps
R comprend 9 éléments:
• En effet, la matrice de rotation
⎡ ⎤
r11 r12 r13
⎢ ⎥
R = ⎣ r21 r22 r23 ⎦
r31 r32 r33
• Mais il y a 6 relations indépendantes entre ces éléments (contraintes
d’orthogonalité et de normalité des colonnes)
r11 r12 + r21 r22 + r31 r32 = 0 2 2 2
r11 + r21 + r31 = 1
r11 r13 + r21 r23 + r31 r33 = 0 2 2 2
r12 + r22 + r32 = 1
r12 r13 + r21 r23 + r31 r33 = 0 2 2 2
r13 + r23 + r33 = 1
Conclusion: 3 paramètres sont suffisantes pour décrire l'orientation d'un corps
Une représentation de l'orientation en fonction de 3 paramètres indépendants
est dite représentation minimale (par ex. les trois angles d’Euler)
23
Représentation de l’orientation: Les trois angles d’Euler
Angles d'Euler ψ, θ et φ. Le système fixe est indiqué en noir (Oxyz), le sys-
tème mobile en rouge (Ox'y'z') et la ligne des nœuds en bleu (Ou).
24
Représentation de l’orientation: Les trois angles d’Euler
25
Matrices homogènes
solide
o
repère fixe
Pour décrire la pose d’un solide dans l’espace 3D, on a besoin de connaître:
• [Translation] Position d’un point sur le solide (O’) par rapport au repère fixe
• [Rotation] Composants des vecteurs unitaires du repère attaché au corps
avec origine O’, par rapport au repère fixe
26
Matrices homogènes
Repère 1
Repère 0
Soit:
• P : point générique dans l’espace 3D
0 1
• p , p : coordonnées du point P par rapport au repère 0 et 1
0
• o1 : vecteur qui décrit l’origine du repère 1 par rapport au repère 0
• R01 : matrice de rotation du repère 1 par rapport au repère 0
27
Matrices homogènes
Repère 1
Repère 0
• On peut écrire la position du point P par rapport au repère 0 comme suit:
Transformation de coordonnées
0
p = o01 + R01 p 1 (translation + rotation) d’un vecteur
entre le repère 0 et le repère 1
28
Matrices homogènes
Repère 1
Repère 0
• Pour avoir une représentation compacte de la relation entre les coordonnées
du même point P dans les deux repères, nous pouvons introduire la
3
représentation homogène d’un vecteur générique p ∈ R :
p
=
p On rajoute une 4e coordonnée
1 au vecteur, dont la valeur est 1
p “tilde”
29
Matrices homogènes
• Si on utilise cette représentation pour les vecteurs p0 et p1, on peut écrire
la transformation de coordonnées en utilisant une seule matrice 4 × 4:
Matrice de
R01 o01
A01 = transformation
01×3 1 homogène
• La pose du repère 1 par rapport au repère 0 est définie par le couple:
(o01 , R01 )
• La pose est définie par 6 paramètres:
• 3 définissant la translation
• 3 définissant la rotation
30
Matrices homogènes
• La transformation d’un vecteur du repère 1 au repère 0 est exprimée par
une seule matrice qui contient la matrice de rotation du repère 1 par rapport
au repère 0 et le vecteur de translation de l’origine du repère 0 à l’origine
du repère 1:
0 = A01 p
p 1
• La transformation inverse entre le repère 0 et 1 est décrite par la
matrice A10 qui satisfait l’équation:
1 = A10 p
p 0
0 = (A01 )−1 p
• En utilisant les propriétés des matrices partitionnées, on trouve que:
(R01 )T −(R01 )T o01 R10 −R10 o01
(A01 )−1 = =
01×3 1 01×3 1
31
Matrices homogènes
Attention: les matrices homogènes ne satisfont pas la propriété d’orthogonalité.
En conséquence, en général:
A−1 = AT
En conclusion:
• Une matrice homogène permet d’exprimer la transformation
de coordonnées entre deux repères sous forme compacte
• Si les repères ont la même origine la matrice homogène se réduit
à la matrice de rotation (4 × 4) définie précédemment
• Comme pour les matrices de rotation, on peut composer une séquence
de transformations de coordonnées grâce au produit matriciel:
0 = A01 A12 · · · An−1
p n
p n
où Ai−1
i est la matrice de transformation qui met en relation
la description d’un point dans le repère i avec la
description du même point dans le repère i − 1
32
Matrices homogènes z0 z1
Exemple 1 (Rotation simple autour de l’axe z) α
y1
O0
y0
Rz (α) 03×1 O1
A01 =
01×3 1 x0
x1
z1
Exemple 2 (Translation simple) O1
y1
z0
I3 o01
A01 = x1
o01
01×3 1
O0 y0
x0
33
Exercice.1
Déterminer: M01 , M12 puis M02
34
Exercice.2
35