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
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
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
scalaires (nombres réels)
Notation
0 n×m ∈ R n×m I n ∈ R n×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 ∈ R n×m
A T ∈ R m×n transposée de la matrice
produit scalaire des vecteurs x, y ∈ R
nx ∈ R n
x =
x, x
déterminant et inverse de
x ∈ R
nA ∈ R
n×mm
x × y produit vectoriel des vecteurs
det(A), A
−1A ∈ R
n×nx, y = x
Ty
, x =
⎡
⎣ x
1.. . x
n⎤
⎦
x, y ∈ R
3•
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
x
ey
ez
eOe
θ
1θ
2θ
4d
3Objectif 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
articulationsq = [θ
1, θ
2, d
3, θ
4, . . .]
T∈ R
nvecteur des variables articulaires
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
z
y x
x
solide
repère fixe
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, z
o
x, o
y, o
zo
∈ R
3repère fixe
O-xyz
• 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
xx + x
yy + x
zz y
= y
xx + y
yy + y
zz z
= z
xx + z
yy + z
zz
•
Sous forme compacte, les vecteurs unitaires qui décriventl'orientation du solide par rapport à O-
xyz,
peuvent être combinés dans la matrice 3 3:x
, y
, z
R = [x
y
z
] =
⎡
⎢ ⎣
x
xy
xz
xx
yy
yz
yx
zy
zz
z⎤
⎥ ⎦ =
⎡
⎢ ⎣
x
Tx y
Tx z
Tx x
Ty y
Ty z
Ty x
Tz y
Tz z
Tz
⎤
⎥ ⎦
qui est appelée matrice de rotation
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
Tz
= 0, z
Tx
= 0
x
Tx
= 1, y
Ty
= 1, z
Tz
= 1 R
R
TR = I
3Si 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
−1R
T= R
−1• Si le repère est direct (on use la « règle de la main droite »):
det(R) = 1 SO(n) {R ∈ R
n×n: R
TR = I
n, det(R) = 1}
Groupe spécialorthogonal de dimension
n
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’axez
et O-
x’y’z’
est le repère qui résulte de cette rotationRotations é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:R
z(α) =
⎡
⎢ ⎣
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 angleet la matrice de rotation autour de l’axe
x
d’un angleRemarque: Ces matrices seront très utiles pour décrire des rotations dans l’espace 3D autour d’axes arbitraires
β γ
Rotations élémentaires: sommaire
R
z(α) =
⎡
⎢ ⎣
cos α − sin α 0 sin α cos α 0
0 0 1
⎤
⎥ ⎦
Matrice de rotation autour de l’axe
x
d’un angleRemarque:
Pour les rotations élémentaires, les propriétés suivantes sont vérifiées:
R
x(γ ) =
⎡
⎢ ⎣
1 0 0
0 cos γ − sin γ 0 sin γ cos γ
⎤
⎥ ⎦
R
y(β ) =
⎡
⎢ ⎣
cos β 0 sin β
0 1 0
− sin β 0 cos β
⎤
⎥ ⎦
Matrice de rotation autour de l’axey
d’un angleMatrice de rotation autour de l’axe
z
d’un angleγ
β
α
R
x(−γ ) = R
Tx(γ), R
y(−β ) = R
Ty(β ), R
z(−α) = R
Tz(α)
à imprimer
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 =
⎡
⎢ ⎣ p
xp
yp
z⎤
⎥ ⎦
par rapport àO- xyz
par rapport à
O- x’y’z’
et
p
=
⎡
⎢ ⎣ p
xp
yp
z⎤
⎥ ⎦
o
= 0
3×1= [0, 0, 0]
TRepré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 = R p
est une matrice orthogonale. Donc la transformation inverse est simplement:
R
p
= R
Tp
R
p = p
xx
+ p
yy
+ p
zz
= x
y
z
p
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 lesrepères
O- xyz
etO- 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
p
x= p
xcos α − p
ysin α p
y= p
xsin α + p
ycos α p
z= p
zR
z(α)
On trouve facilement que:
Représentation d’un vecteur
Composition de matrices de rotation
Problème: comment composer plusieurs rotations ?
Considérons trois repères O-
x
0y
0z
0,
O-x1 y1 z1 , O-x2 y2z2 avec la même origine O coordonnées d’un pointP
dans les trois repèresp
0, p
1, p
2∈ R
3:
O-x0 y0 z0 O-x1 y1 z1
O-x2 y2 z2
O
P
Composition de matrices de rotation
Soit la matrice de rotation du repère
R
jipar rapport au repère Donc
De même, on obtient:
p
1= R
12p
2p
0= R
01p
1p
0= R
02p
2Mais alors:
R
02= R
01R
12i j
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
R
02R
01R
12Remarque 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 rotationsComposition 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:
R
01R
12= R
12R
01Conformément à notre notation, nous avons que:
R
ji= (R
ij)
−1= (R
ij)
TRemarque 3:
Composition de matrices de rotation
Exemple:
R
x(π/4) =
,⎡
⎢ ⎣
1 0 0
0 √
2/2 − √ 2/2 0 √
2/2 √ 2/2
⎤
⎥ ⎦ R
y(π/6) =
⎡
⎢ ⎣
√ 3/2 0 1/2
0 1 0
−1/2 0 √ 3/2
⎤
⎥ ⎦
R
y(π/6) R
x(π/4) =
⎡
⎢ ⎣
√ 3/2 √
2/4 √ 2/4
0 √
2/2 − √ 2/2
−1/2 √
6/4 √ 6/4
⎤
⎥ ⎦
R
x(π/4) R
y(π/6) =
⎡
⎢ ⎣
√ 3/2 0 1/2
√ 2/4 √
2/2 − √ 6/4
− √
2/4 √
2/2 √ 6/4
⎤
⎥ ⎦
=
Composition de matrices de rotation
• Rotations successives d'un objet autour des axes du repère courant
a)
b)
=
Composition de matrices de rotation
• Rotations successives d'un objet autour des axes du repère fixe
a)
b)
=
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 =
⎡
⎢ ⎣
r
11r
12r
13r
21r
22r
23r
31r
32r
33⎤
⎥ ⎦
r
11r
12+ r
21r
22+ r
31r
32= 0 r
11r
13+ r
21r
23+ r
31r
33= 0 r
12r
13+ r
21r
23+ r
31r
33= 0
r
112+ r
212+ r
231= 1 r
122+ r
222+ r
232= 1 r
132+ r
232+ r
233= 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
• 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 3
3= 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
φ φ φ = [ϕ, θ, ψ]
TAngles 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)
θ ϕ
ψ
(ϕ, θ, ψ)
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 parL’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
ψ
θ
R
z(ϕ) ϕ R
y(θ) R
x(ψ)
R(φ) = R
z(ϕ) R
y(θ) R
x(ψ ) =
⎡
⎢ ⎣
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(φ φ φ) = R
z(ϕ) R
y(θ) R
x(ψ) =
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 =
⎡
⎢ ⎣
r
11r
12r
13r
21r
22r
23r
31r
32r
33⎤
⎥ ⎦
Si on compare cette expression avec , on trouve que la solution, pour , est:
ϕ = Atan2(r
21, r
11) θ = Atan2
− r
31,
r
232+ r
332ψ = Atan2(r
32, r
33)
ϕ = Atan2(−r
21, −r
11) θ = Atan2
− r
31, −
r
322+ r
233ψ = Atan2(−r
32, −r
33)
L’autre solution équivalente pour , est:
θ ∈ (−π/2, π/2)
θ ∈ (π/2, 3π/2) R
R(φ φ φ)
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
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 faitedans le sens anti-horaire
r = 1 r = [r
x, r
y, r
z]
Tr
xr
yr
zPropriété R(θ, r) =
⎡
⎢ ⎣
r
x2(1 − c
θ) + c
θr
xr
y(1 − c
θ) − r
zs
θr
xr
z(1 − c
θ) + r
ys
θr
xr
y(1 − c
θ) + r
zs
θr
y2(1 − c
θ) + c
θr
yr
z(1 − c
θ) − r
xs
θr
xr
z(1 − c
θ) − r
ys
θr
yr
z(1 − c
θ) + r
xs
θr
2z(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)
−θ −r
θ r
Angle et axe
Matrice de rotation qui correspond à un angle et à un axe
r
donnés:c
θ= cos θ, s
θ= sin θ
Problème inverse: determiner l’angle et l’axe qui correspondent à une matrice de rotation donnée:
R =
⎡
⎢ ⎣
r
11r
12r
13r
21r
22r
23r
31r
32r
33⎤
⎥ ⎦
• Si , on obtient:
θ = arccos
r
11+ r
22+ r
33− 1 2
r = 1 2 sin θ
⎡
⎢ ⎣
r
32− r
23r
13− r
31r
21− r
12⎤
⎥ ⎦ 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:r
x2+ r
y2+ r
z2= 1
• Si , on obtient:
θ = arccos
r
11+ r
22+ r
33− 1 2
r = 1 2 sin θ
⎡
⎢ ⎣
r
32− r
23r
13− r
31r
21− r
12⎤
⎥ ⎦ 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 etSi (rotation nulle), le vecteur unitaire
r
est arbitraire (singularité)sin θ = 0
θ = 0 θ = π
θ = 0
Angle et axe
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
−θ θ −r
r
: partie scalaire du quaternion
: partie vectorielle du quaternion
Remarque
• Matrice de rotation qui correspond à un quaternion unitaire donné:
William R. Hamilton (1806–1865)
i
2j
2k
2ijk −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(
xy
− η
z) 2(
xz
+ η
y) 2(
xy
+ η
x) 2(η
2+
2y) − 1 2(
yz
− η
x) 2(
xz
− η
y) 2(
yz
+ η
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
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