upjv, département eea m1 eeaii parcours virobfabio/eng/documenti/teaching/ri16... · d'un...

35
UPJV, Département EEA M1 EEAII Parcours ViRob Fabio MORBIDI Laboratoire MIS Équipe Perception Robotique E-mail: [email protected] Année Universitaire 2016/2017 Mardi 9h00-12h00, Mercredi 13h30-16h30, Salle 8

Upload: vuongminh

Post on 10-Sep-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

UPJV, Département EEA

M1 EEAII Parcours ViRob

Fabio MORBIDI

Laboratoire MIS Équipe Perception Robotique

E-mail: [email protected]

Année Universitaire 2016/2017

Mardi 9h00-12h00, Mercredi 13h30-16h30, Salle 8

Page 2: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

2

Plan du cours Chapitre 1 : Introduction

1.1 Définitions

1.2 Constituants d’un robot

1.3 Classification des robots

1.4 Caractéristiques d’un robot

1.5 Générations de robots

1.6 Programmation des robots

1.7 Utilisation des robots

Chapitre 2 : Fondements Théoriques

2.1 Positionnement

•  Matrices de rotation et représentations de l’orientation •  Matrices homogènes

Page 3: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

3

Plan du cours

Chapitre 3 : Modélisation d’un Robot

2.2 Cinématique •  Vitesse d’un solide •  Vecteur vitesse de rotation •  Mouvement rigide •  Torseur cinématique

3.1 Modèle géométrique •  Convention de Denavit-Hartenberg •  Modèle géométrique direct •  Modèle géométrique inverse

3.2 Modèle cinématique

•  Modèle cinématique direct •  Modèle cinématique inverse

3.3 Modèle dynamique •  Formulation de Lagrange

Page 4: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

4

scalaires (nombres réels)

Notation

0n×m ∈ Rn×m

In ∈ Rn×n

vecteur colonne de dimension

matrice avec lignes et colonnes

matrice identité

matrice de zéros

norme euclidienne du vecteur

n× n

n×m

n

n

a, λ, M ∈ R

A ∈ Rn×m

AT ∈ Rm×n transposée de la matrice

produit scalaire des vecteurs x, y ∈ Rn

x ∈ Rn

‖x‖ =√〈x, x〉

déterminant et inverse de

x ∈ Rn

A ∈ Rn×m

m

x× y produit vectoriel des vecteurs

det(A), A−1 A ∈ Rn×n

〈x, y〉 = xTy

, x =

⎡⎣ x1

...xn

⎤⎦

x, y ∈ R3

Page 5: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

5

•  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

base

effecteur xe

ye

ze

Oe

θ1

θ2

θ4

d3

Objectif final: Exprimer la pose de l’effecteur en fonction des variables des articulations, par rapport à un repère donné (ex. le repère de la base)

Motivation

?

Robot générique à n articulations

q = [θ1, θ2, d3, θ4, . . .]T ∈ R

n

vecteur des variables articulaires

Page 6: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

6

2.1 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 (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)

O′O

y′ z′zy

x′

x

solide

repère fixe

Page 7: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

7

solide

La position du point O’ du solide par rapport au repère fixe O-xyz s’exprime par l’équation:

o′ = o′x x + o′y y + o′z z

où sont les vecteurs unitaires (la norme est 1) des axes du repère O-xyz et sont le composants du vecteur le long de chacun des trois axes

x, y, zo′x, o

′y, o

′z o′ ∈ R

3

repère fixe O-xyz

Page 8: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

8

•  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 les vecteurs unitaires des axes

•  Ces vecteurs sont exprimés par rapport au repère O-xyz par les équations:

x′, y′, z′

x′ = x′x x + x′

y y + x′z z

y′ = y′x x + y′y y + y′z z

z′ = z′x x + z′y y + z′z z

•  Sous forme compacte, les vecteurs unitaires qui décrivent l'orientation du solide par rapport à O-xyz, peuvent être combinés dans la matrice 3 3:

x′, y′, z′

R = [x′ y′ z′] =

⎡⎢⎣x′x y′x z′x

x′y y′y z′y

x′z y′z z′z

⎤⎥⎦ =

⎡⎢⎣x′Tx y′Tx z′Tx

x′Ty y′Ty z′Ty

x′T z y′T z z′T z

⎤⎥⎦

qui est appelée matrice de rotation

Page 9: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

9

Propriétés des matrices de rotation

•  Les colonnes d’une matrice de rotation sont orthogonales à deux à deux:

La norme des colonnes d’une matrice de rotation est égale à 1:

En conséquence, est une matrice orthogonale, c’est-à-dire:

x′Ty′ = 0, y′T z′ = 0, z′Tx′ = 0

x′Tx′ = 1, y′Ty′ = 1, z′T z′ = 1

R

RTR = I3

Si on multiplie à droite chaque côté de l’équation précédente par on trouve que:

c’est-à-dire, la transposée d’une matrice de rotation est égale à son inverse

R−1

RT = R−1

•  Si le repère est direct (on use la « règle de la main droite »): det(R) = 1

SO(n) � {R ∈ Rn×n : RTR = In, det(R) = 1}

Groupe spécial orthogonal de

dimension n

Page 10: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

10

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 anti-horaire (le sens contraire des aiguilles d'une montre)

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

Page 11: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

11

Rotations élémentaires

•  Les vecteurs unitaires de O-x’y’z’ peuvent être exprimés par rapport au repère O-xyz comme:

x′ =

⎡⎢⎣cosα

sinα

0

⎤⎥⎦ , y′ =

⎡⎢⎣− sinα

cosα

0

⎤⎥⎦ , z′ =

⎡⎢⎣0

0

1

⎤⎥⎦

•  La matrice de rotation de O-x’y’z’ par rapport à O-xyz engendrée est donc:

Rz(α) =

⎡⎢⎣cosα − sinα 0

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 seront très utiles pour décrire des rotations dans l’espace 3D autour d’axes arbitraires

γβ

Page 12: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

12

Rotations élémentaires: sommaire

Rz(α) =

⎡⎢⎣cosα − sinα 0

sinα cosα 0

0 0 1

⎤⎥⎦

Matrice de rotation autour de l’axe x d’un angle

Remarque: Pour les rotations élémentaires, les propriétés suivantes sont vérifiées:

Rx(γ) =

⎡⎢⎣1 0 0

0 cos γ − sin γ

0 sin γ cos γ

⎤⎥⎦

Ry(β) =

⎡⎢⎣

cosβ 0 sinβ

0 1 0

− sinβ 0 cosβ

⎤⎥⎦ Matrice de rotation autour

de l’axe y d’un angle

Matrice de rotation autour de l’axe z d’un angle

γ

β

α

Rx(−γ) = RTx (γ), Ry(−β) = RT

y (β), Rz(−α) = RTz (α)

à imprimer

Page 13: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

13

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

On peut représenter le point 3D P comme:

p =

⎡⎢⎣pxpypz

⎤⎥⎦ par rapport à O-xyz

par rapport à O-x’y’z’

et

p′ =

⎡⎢⎣p′xp′yp′z

⎤⎥⎦

o′ = 03×1 = [0, 0, 0]T

Page 14: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

14

Représentation d’un vecteur

Mais cela signifie que (rappel les équations précédentes):

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’

Mais et sont deux représentations du même point P, donc p p′

p = Rp′

est une matrice orthogonale. Donc la transformation inverse est simplement: R

p′ = RTp

R

p = p′x x′ + p′y y

′ + p′z z′ =

[x′ y′ z′

]p′

Page 15: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

15

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’

Remarque: La matrice 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

px = p′x cosα − p′y sinα

py = p′x sinα + p′y cosα

pz = p′z

Rz(α)

On trouve facilement que:

Représentation d’un vecteur

Page 16: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

16

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

coordonnées d’un point P dans les trois repères p0, p1, p2 ∈ R3 :

O-x0 y0 z0

O-x1 y1 z1 O-x2 y2 z2

O

P

Page 17: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

17

Composition de matrices de rotation

Soit la matrice de rotation du repère par rapport au repère Rji

Donc

De même, on obtient:

p1 = R12 p

2

p0 = R01 p

1

p0 = R02 p

2

Mais alors:

R02 = R0

1 R12

ji

Page 18: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

18

Composition de matrices de rotation

Considérons un repère initialement aligné avec O-x0 y0 z0

La rotation définie par peut être interprétée comme obtenue en deux étapes:

1.  Tourne le repère avec pour l’aligner avec O-x1 y1 z1

2.  Tourne le repère, maintenant aligné avec O-x1 y1 z1, en utilisant pour l’aligner avec O-x2 y2 z2

R02

R01

R12

Remarque 1: •  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

Page 19: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

19

Composition de matrices de rotation Remarque 2: •  Les rotations successives peuvent aussi être specifiées toujours par rapport au repère initiale •  On dit donc que les rotations sont faites par rapport à un repère fixe •  La composition de rotations successives est obtenue par multiplication à gauche des singles matrices de rotation en suivant l’ordre donné des rotations

Problème fondamental: 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 singles rotations, à savoir:

R01 R

12 �= R1

2 R01

Conformément à notre notation, nous avons que:

Rji = (Ri

j)−1 = (Ri

j)T

Remarque 3:

Page 20: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

20

Composition de matrices de rotation

Exemple:

,Rx(π/4) =

⎡⎢⎣1 0 0

0√2/2 −√

2/2

0√2/2

√2/2

⎤⎥⎦ Ry(π/6) =

⎡⎢⎣√3/2 0 1/2

0 1 0

−1/2 0√3/2

⎤⎥⎦

Ry(π/6)Rx(π/4) =

⎡⎢⎣√3/2

√2/4

√2/4

0√2/2 −√

2/2

−1/2√6/4

√6/4

⎤⎥⎦

Rx(π/4)Ry(π/6) =

⎡⎢⎣

√3/2 0 1/2√2/4

√2/2 −√

6/4

−√2/4

√2/2

√6/4

⎤⎥⎦

�=

Page 21: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

21

Composition de matrices de rotation

•  Rotations successives d'un objet autour des axes du repère courant

a)

b)

�=

Page 22: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

22

Composition de matrices de rotation

•  Rotations successives d'un objet autour des axes du repère fixe

a)

b)

�=

Page 23: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

23

Représentations de l’orientation •  Les matrices de rotation fournissent une description redondante de l’orientation d’un corps

•  En effet, une matrice de rotation comprend 9 éléments:

•  Mais il y a 6 relations indépendantes entre ces éléments (les contraintes d’orthogonalité et de normalité des colonnes):

R

R =

⎡⎢⎣r11 r12 r13

r21 r22 r23

r31 r32 r33

⎤⎥⎦

r11 r12 + r21 r22 + r31 r32 = 0

r11 r13 + r21 r23 + r31 r33 = 0

r12 r13 + r21 r23 + r31 r33 = 0

r211 + r221 + r231 = 1

r212 + r222 + r232 = 1

r213 + r223 + r233 = 1

Conclusion: 3 paramètres sont suffisants 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

Page 24: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

24

•  Une représentation minimale de l’orientation peut être obtenue en utilisant un ensemble de trois angles:

•  Une matrice de rotation générique peut être obtenue en composant une séquence opportune de 3 rotations élémentaires

Attention: il faut garantir que deux rotations successives ne sont pas faites autour d’axes parallèles

•  Cela veut dire que 12 ensembles différents d’angles sont admissibles parmi les 33 = 27 combinaisons possibles

•  Chaque ensemble représente un triplet d’angles d’Euler

Deux triplets d’angles d’Euler très utilisés sont:

1.  Les angles ZYZ

2.  Les angles ZYX ou angles roulis-tangage-lacet (roll-pitch-yaw, en anglais)

Leonhard Euler (1707–1783)

Représentations de l’orientation

φφφ = [ϕ, θ, ψ]T

Page 25: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

25

Angles roulis-tangage-lacet •  Représentation de l'orientation utilisée en (aéro)nautique pour décrire l’attitude d’un avion

•  Les angles représentent des rotations définies dans un repère fixe attaché au centre de masse de l’avion

x

y z

lacet (yaw)

roulis (roll)

tangage (pitch)

ϕθ

ψ

(ϕ, θ, ψ)

Page 26: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

26

La rotation décrite par les angles de roulis, tangage et lacet est obtenue comme la composition de 3 rotations élémentaires:

• Tourner le repère d’un angle autour de l’axe x (lacet): rotation définie par

• Tourner le repère d’un angle autour de l’axe y (tangage): rotation définie par

• Tourner le repère d’un angle autour de l’axe z (roulis): rotation définie par

L’orientation résultante du repère est obtenue en composant les rotations par rapport au repère fixe, et peut être calculée en prémultipliant les matrices de rotation élémentaires:

Angles roulis-tangage-lacet

ψ

θ

ϕRz(ϕ)

Ry(θ)

Rx(ψ)

R(φ) = Rz(ϕ)Ry(θ)Rx(ψ) =

⎡⎢⎣cϕcθ cϕsθsψ − sϕcψ cϕsθcψ + sϕsψ

sϕcθ sϕsθsψ + cϕcψ sϕsθcψ − cϕsψ

−sθ cθsψ cθcψ

⎤⎥⎦

où, pour plus de simplicité: cϕ = cosϕ, sθ = sin θ

R(φφφ) = Rz(ϕ)Ry(θ)Rx(ψ) =

Page 27: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

27

Problème inverse: déterminer les angles de roulis, tangage et lacet qui correspondent à une matrice de rotation donnée:

Angles roulis-tangage-lacet

R =

⎡⎢⎣r11 r12 r13

r21 r22 r23

r31 r32 r33

⎤⎥⎦

Si on compare cette expression avec , on trouve que la solution, pour , est:

ϕ = Atan2(r21, r11)

θ = Atan2(− r31,

√r232 + r233

)ψ = Atan2(r32, r33)

ϕ = Atan2(−r21,−r11)

θ = Atan2(− r31,−

√r232 + r233

)ψ = Atan2(−r32, −r33)

L’autre solution équivalente pour , est:

θ ∈ (−π/2, π/2)

θ ∈ (π/2, 3π/2)

R

R(φφφ)

Page 28: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

28

Remarque 1: •  Si les solutions précédentes sont dégénérées: dans ce cas-là on peut uniquemment déterminer la somme ou la différence entre et

•  Les configurations qui correspondent aux angles caractérisent les singularités de représentation des angles d’Euler

•  est la fonction arc tangente à deux arguments

•  calcule l’arc tangente du rapport mais elle utilise le signe des arguments pour déterminer le bon quadrant de l’angle

Remarque 2:

cos θ = 0ψϕ

θ = ±π/2

x

y x’

y’ A

B

… mais angle A ou B ?

Atan2(y, x) =

⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

arctan(y/x) x > 0

arctan(y/x) + π x ≥ 0, x < 0

arctan(y/x)− π y < 0, x < 0

+π/2 y > 0, x = 0

−π/2 y < 0, x = 0

non defini y = 0, x = 0

arctan(y/x) = arctan(y′/x′)

Atan2(y, x)

Atan2(y, x)

y ≥ 0

Angles roulis-tangage-lacet

y/x

non définie

Page 29: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

29

Angle et axe

•  Une représentation non minimale de l’orientation peut être obtenue en utilisant 4 parametrès qui expriment une rotation d’un angle autour d’un axe générique dans l’espace 3D

•  Cette représentation peut être utile, par exemple, pour planifier la trajectoire de l’effecteur d’un manipulateur

θ

x

y

z

r

O

θ

vecteur unitaire ( ) de l’axe de rotation dans le repère O-x y z

θL’angle est considéré comme positif si la rotation autour de l’axe r est faite dans le sens anti-horaire

‖r‖ = 1

r = [rx, ry, rz]T

rx

ry

rz

Page 30: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

30

Propriété

R(θ, r) =

⎡⎢⎣

r2x(1− cθ) + cθ rxry(1− cθ)− rzsθ rxrz(1− cθ) + rysθ

rxry(1− cθ) + rzsθ r2y(1− cθ) + cθ ryrz(1− cθ)− rxsθ

rxrz(1− cθ)− rysθ ryrz(1− cθ) + rxsθ r2z(1− cθ) + cθ

⎤⎥⎦

•  Une rotation d’un angle autour de l’axe ne peut pas être distinguée d’un rotation d’un angle autour de l’axe

•  La représentation angle-axe n’est pas unique !

A nouveau, pour plus de simplicité:

θ

R(−θ, −r) = R(θ, r)

−θ −rrθ

Angle et axe

Matrice de rotation qui correspond à un angle et à un axe r donnés:

cθ = cos θ, sθ = sin θ

Page 31: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

31

Problème inverse: determiner l’angle et l’axe qui correspondent à une matrice de rotation donnée:

R =

⎡⎢⎣r11 r12 r13

r21 r22 r23

r31 r32 r33

⎤⎥⎦

•  Si , on obtient:

θ = arccos

(r11 + r22 + r33 − 1

2

)

r =1

2 sin θ

⎡⎢⎣r32 − r23

r13 − r31

r21 − r12

⎤⎥⎦

sin θ �= 0

angle

axe

R

Remarque

Angle et axe

Les deux expressions précédentes décrivent la rotation en fonction de quatre paramètres: l’angle et les trois composantes du vecteur unitaire de l’axe. Cependant, on peut constater que les trois composantes de r ne sont pas indépendantes mais elles sont contraintes par la condition:

r2x + r2y + r2z = 1

Page 32: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

32

•  Si , on obtient:

θ = arccos

(r11 + r22 + r33 − 1

2

)

r =1

2 sin θ

⎡⎢⎣r32 − r23

r13 − r31

r21 − r12

⎤⎥⎦

sin θ �= 0

angle

axe

•  Si , les équations précédentes ne sont pas définies

Pour résoudre le problème inverse, il faut travailler avec l’expression particulière de la matrice R dont nous disposons et trouver des formules de resolution pour les deux cas et

Si (rotation nulle), le vecteur unitaire r est arbitraire (singularité)

sin θ = 0

θ = 0θ = π

θ = 0

Angle et axe

Page 33: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

33

Quaternion unitaire

•  Les inconvénients de la représentation angle-axe peuvent être surmontés par une autre représentation à 4 paramètres, le quaternion unitaire, défini par:

Q = {η, ε}où

η = cos(θ/2)

ε = [εx, εy, εz]T = sin(θ/2) r

avec la contrainte:

η2 + ε2x + ε2y + ε2z = 1

dont le nom de quaternion unitaire

Une rotation de autour de donne le même quaternion que celui associé à une rotation de autour de . Cela règle le problème de non unicité qu’on avait avec la représentation angle-axe

−θθ

−rr

: partie scalaire du quaternion

: partie vectorielle du quaternion

Remarque

Page 34: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

34

•  Matrice de rotation qui correspond à un quaternion unitaire donné:

William R. Hamilton (1806–1865) i2 = j2 = k2 = ijk = −1

Broom Bridge, Royal Canal, Dublin

•  Il existe également des formules pour le problème inverse: avec les quaternions 1) toute rotation peut être décrite, et 2) il n’y a pas de singularités

R(η, ε) =

⎡⎢⎣2(η2 + ε2x)− 1 2(εxεy − ηεz) 2(εxεz + ηεy)

2(εxεy + ηεx) 2(η2 + ε2y)− 1 2(εyεz − ηεx)

2(εxεz − ηεy) 2(εyεz + ηεx) 2(η2 + ε2z)− 1

⎤⎥⎦

Q = {η, ε}

(16 October 1843)

Remarque: Les quaternions et donnent la même matrice de rotation (autre que cette ambiguité, la relation entre rotations et quaternions est unique)

Q −Q

Quaternion unitaire

Page 35: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI16... · d'un point, noté O’, du ... • Considérons les rotations qu’on peut obtenir à partir

35

Représentations de l’orientation

Sommaire des propriétés des quatre représentations de l’orientation d’un corps rigide

Représent. Matrice de rotation

Angles d’Euler (ZYZ,

ZYX, etc.) Angle-axe Quaternion

unitaire

Globale Oui Non Non Oui

Unique Oui Non Non Non

Minimale Non Oui Non Non