Vous êtes sur la page 1sur 31

UPJV, Département EEA

M1 EEAII
Parcours ViRob

Fabio MORBIDI

Laboratoire MIS !
Équipe Perception et Robotique!
E-mail: fabio.morbidi@u-picardie.fr!

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

Année Universitaire 2015/2016


Plan du cours
Chapitre 1 : Généralités

1.1 Définitions

1.2 Constituants d’un robot

1.3 Classification des robots

1.4 Caractéristiques d’un robot

1.5 Les générations de robot

1.6 Programmation des robots

1.7 Utilisation des robots

Chapitre 2 : Degrés de liberté - Architecture

2.1 Positionnement
•  Rotation et représentation de la rotation
•  Attitude et matrices homogènes
2
Plan du cours
2.2 Cinématique
•  Vitesse d’un solide
•  Vecteur vitesse de rotation
•  Mouvement rigide
•  Torseur cinématique

Chapitre 3 : Modélisation d’un robot

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


•  Equation d’Euler-Lagrange
3
Notation
a, λ, M ∈ R scalaires

x ∈ Rn vecteur colonne de dimension n


A ∈ Rn×m matrice avec n lignes et m colonnes

AT ∈ Rm×n transposée de la matrice A ∈ Rn×m


det(B) , B−1 déterminant et inverse de B ∈ Rn×n
In ∈ Rn×n matrice identité n × n

0n×m ∈ Rn×m matrice de zéros n × m

xT y = �x, y� produit scalaire des vecteurs x, y ∈ Rn



�x� = �x, x� norme euclidienne du vecteur x ∈ Rn
x × y produit vectoriel des vecteurs x, y ∈ Rn
4
Introduction
ze effecteur
Manipulateur θ4
xe Oe
générique 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)
5
2.1 Positionnement

La pose d'un solide (ou corps rigide) dans l'espace 3-D 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. angles d’Euler)

solide

z y� z�
x�
y O�
O x
6
solide

repère fixe

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ù x, y, z sont les vecteurs unitaires (la norme est 1) des axes
� � �
du repère O-xyz et ox , oy , oz sont le composants du vecteur o� ∈ R3
le long de chacun des trois axes
7
•  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� = x�x x + x�y y + x�z 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:
 �  
x�x yx� zx �T
x x �T
y x �T
z x
 �   
R = [x� y� z� ] =  xy yy� zy�  = x�T y y�T y z�T y
x�z yz� zz� x�T z y�T z z�T z
qui est appelée matrice de rotation
8
Propriétés des matrices de rotation
•  Les colonnes d’une matrice de rotation sont orthogonales à deux à deux:

x�T y� = 0, y�T z� = 0, z�T x� = 0


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

x�T x� = 1, y�T y� = 1, z�T z� = 1


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

R T R = I3
Si on multiplie à droite chaque côté de l’équation précédente par R−1
on trouve que
RT = R−1
c’est-à-dire, la transposée d’une matrice de rotation est égale à son inverse

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


Groupe spécial
SO(n) � {R ∈ R n×n T
: R R = In , det(R) = 1} orthogonal de
dimension n
9
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

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

10
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 seront très utiles pour décrire des rotations
dans l’espace 3D autour d’axes arbitraires
11
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 γ
 
cos β 0 sin β
  Matrice de rotation autour
Ry (β) =  0 1 0 
de l’axe y d’un angle β


− sin β 0 cos β
 
cos α − sin α 0
  Matrice de rotation autour
Rz (α) =  sin α cos α 0
de l’axe z d’un angle
α
0 0 1

Remarque:
Pour les rotations élémentaires, la propriété suivante est vérifiée:

Rk (−θ) = RTk (θ), k ∈ {x, y, z}


12
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:
 
px
 
p =  py  par rapport à O-xyz
pz

et
 
p�x
 
p� =  p�y  par rapport à O-x’y’z’
p�z

13
Représentation d’un vecteur
Mais p et p� sont deux représentations du même point P, donc
� �
p = p�x �
x + p�y �
y + p�z �
z = � �
x y z �
p�

Mais cela signifie que (rappel 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
14
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 = p�x cos α − p�y sin α


py = p�x sin α + p�y cos α
pz = p�z

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
15
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

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

Dans le même esprit, 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 initiale
•  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 singles 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 singles rotations:

R01 R12 �= R12 R01

19
Composition de matrices de rotation
•  Rotations successives d'un objet autour des axes du repère courant

a)

�=
b)

20
Composition de matrices de rotation
•  Rotations successives d'un objet autour des axes du repère fixe

a)

�=
b)

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

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


 
r11 r12 r13
 
R =  r21 r22 r23 
r31 r32 r33
•  Mais il y a 6 relations indépendantes entre ces éléments (contraintes
de orthogonalité et normalité)
2 2 2
r11 r12 + r21 r22 + r31 r32 = 0 r11 + r21 + r31 = 1
2 2 2
r11 r13 + r21 r23 + r31 r33 = 0 r12 + r22 + r32 = 1
2 2 2
r12 r13 + r21 r23 + r31 r33 = 0 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 une représentation minimale
22
Représentations de la rotation: introduction

•  Une représentation minimale de l’orientation peut être obtenue en


utilisant un ensemble de trois angles φ = [ϕ, θ, ψ]T

•  Une matrice de rotation générique peut être obtenue en composant une


séquence opportune de 3 rotations élémentaires: il faut garantir que deux
rotations successives ne sont pas faites autour d’axes parallèles

•  Ca veut dire que 12 ensembles différentes d’angles sont admissibles


parmi les 33 = 27 combinaisons possibles

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

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

1.  Les angles ZYZ

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

23
Représentation roulis-tangage-lacet
•  Représentation de l'orientation utilisée en aéronautique pour décrire
l’attitude d’un avion
T
•  Les angles φ = [ϕ, θ, ψ] représentent des rotations définies dans
un repère fixe attaché au centre de masse de l’avion
x

lacet
ψ (yaw)

θ ϕ

y z
tangage
(pitch)
roulis (roll)
24
Représentation roulis-tangage-lacet
La rotation décrite par les angles de roulis, tangage et lacet est obtenue
comme composition de 3 rotations élémentaires:

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


définie par Rx (ψ)

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


définie par Ry (θ)

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


définie par Rz (ϕ)

La rotation finale est obtenue en composant les rotations par rapport au


repère fixe, et peut être calculée en multipliant à gauche les matrices de
rotation élémentaires:  
cϕ cθ cϕ sθ sψ − sϕ cψ cϕ sθ cψ + sϕ sψ
 
R(φ) = Rz (ϕ) Ry (θ) Rx (ψ) = sϕ cθ sϕ sθ sψ + cϕ cψ sϕ sθ cψ − cϕ sψ 
−sθ cθ sψ cθ cψ
où, pour simplicité:

cϕ = cos ϕ , sθ = sin θ
25
Représentation roulis-tangage-lacet
Problème inverse: determiner les angles de roulis, tangage et lacet qui
correspondent à une matrice de rotation donnée:
 
r11 r12 r13
 
R =  r21 r22 r23 
r31 r32 r33

Si on confronte cette expression avec R(φ), on trouve que la solution, pour


θ ∈ (−π/2, π/2), est:
ϕ = Atan2(r21 , r11 )
� � �
θ = Atan2 − r31 , r32 2 + r2
33

ψ = Atan2(r32 , r33 )

L’autre solution équivalente pour θ ∈ (π/2, 3π/2) , est:

ϕ = Atan2(−r21 , −r11 )
� � �
2 2
θ = Atan2 − r31 , − r32 + r33
ψ = Atan2(−r32 , −r33 )
26
Représentation roulis-tangage-lacet
Remarque 1:
•  Si cos θ = 0 les solutions précédentes sont dégénerés: dans ce cas on peut
seulement déterminer la somme ou difference de ϕ et ψ

•  Les configurations qui correspondent aux angles θ = ± π/2 caractérisent


les singularities de représentation des angles d’Euler

Remarque 2:
•  Atan2(y, x) est la fonction arctangente à 2 arguments

•  Atan2(y, x) calcule l’arctangente du rapport y/x mais elle utilise le signe


des arguments pour determiner le bon quadrant de l’angle

 arctan(y/x) x>0


A 


 arctan(y/x) + π yx ≥ 00, x < 0
y’ 

 arctan(y/x) − π y < 0, x < 0
x
Atan2(y, x) =
x’ 
 +π/2 y > 0, x = 0


y 

B

 −π/2 y < 0, x = 0


non defini y = 0, x = 0
� �
arctan(y/x) = arctan(y /x ) … angle A ou B ?
27
Représentation angle/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 est utile, par ex. pour planifier la trajectoire de l’effecteur
d’un manipulateur

z r = [rx , ry , rz ]T
θ
Vecteur unitaire (�r� = 1 )
r de l’axe de rotation dans le
repère O-x y z

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

28
Représentation angle/axe
 
rx2 (1 − cθ ) + cθ rx ry (1 − cθ ) − rz sθ rx rz (1 − cθ ) + ry sθ
 
R(θ, r) =  rx ry (1 − cθ ) + rz sθ ry2 (1 − cθ ) + cθ ry rz (1 − cθ ) − rx sθ 
rx rz (1 − cθ ) − ry sθ ry rz (1 − cθ ) + rx sθ rz2 (1 − cθ ) + cθ

Matrice de rotation d’un angle θ autour de l’axe r (cθ = cos θ , sθ = sin θ )

Proprieté
R(−θ, −r) = R(θ, r)
•  Une rotation d’un angle −θ autour de l’axe −r ne peut pas être distinguée
d’un rotation d’un angle θ autour de l’axe r

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

29
Représentation angle/axe
Problème inverse: determiner l’angle et l’axe qui correspondent à une matrice
de rotation donnée:
 
r11 r12 r13
 
R =  r21 r22 r23 
r31 r32 r33

Si sin θ �= 0 on obtient:

� �
r11 + r22 + r33 − 1
θ = arccos angle
2
 
r32 − r23
1  
r = r13 − r31  axe
2 sin θ
r21 − r12

30
Représentation angle/axe
•  Si sin θ = 0, les équations précédentes ne sont pas définies
Pour resoudre le problème inverse, il faut travailler avec l’expression
spécifique de la matrice R et trouver des formules de resolution pour
les deux cas θ = 0 et θ = π

Si θ = 0 (zéro rotation), le vecteur unitaire r est arbitraire (singularité)

•  Les inconvénients (singularités) de la représentation angle/axe peuvent


être surmontés par une autre représentation à 4 parametrès :
•  Le quaternion unitaire

Broom Bridge, Dublin

William R. Hamilton (1806–1865)


i2 = j 2 = k 2 = ijk = −1
31

Vous aimerez peut-être aussi