UPJV, Département EEA M1 EEAII
Parcours ViRob
Fabio MORBIDI
Laboratoire MIS
Équipe Perception Robotique E-mail: fabio.morbidi@u-picardie.fr
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
solide 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 solide avec origine O’, par rapport au repère fixe (attitude ou orientation du solide)
O-xyz
Matrices homogènes
• P : point générique dans l’espace 3D
• , : coordonnées du point P par rapport au repère 0 et 1
• : vecteur qui décrit l’origine du repère 1par rapport au repère 0
p0 p1 o01
Repère 0
Repère 1
Soit:
Matrices homogènes
• On peut écrire la position du point P par rapport au repère 0 comme:
p
0= o
01+ R
01p
1 Transformation de coordonnées(translation + rotation) d’un vecteur entre le repère 1 et le repère 0
Matrices homogènes
Repère 0
Repère 1
Matrices homogènes
• La présence conjointe de produits et de sommes dans l'équation:
est peu pratique pour effectuer des calculs systématiques, dûs par exemple à des changements successifs de repère. On lui préfère une représentation
matricielle, basée sur les coordonnées homogènes
• La représentation en coordonnées homogènes consiste à doter toute notation vectorielle d'un facteur d'échelle, en introduisant une coordonnée supplémentaire
p0 = o01 + R01 p1
Alors la représentation du point P à l'aide de
coordonnées homogènes est faite par:
p =
⎡
⎣ a bc
⎤
⎦
où a = x
w, b = y
w, c = z w
.
• Soit par exemple un point P de l'espace, rapporté à un repère fixe, donné par:
p =
⎡
⎢⎢
⎣ xy z
⎤
⎥⎥
⎦
• Pour avoir une représentation compacte de la relation entre les coordonnées du même point P dans deux repères, nous utilisons donc la représentation homogène suivante:
p = p 1
On rajoute une 4ième coordonnée, de valeur égale à 1, au vecteur
Matrices homogènes
“tilde”
p
• En pratique, on choisit un facteur d'échelle unitaire (à savoir )
p
w = 1
• Si on utilise cette représentation pour les vecteurs et , on peut écrire la transformation de coordonnées en utilisant une seule matrice 4 × 4:
• Puisque et , la matrice appartient au groupe spécial euclidien de dimension 3:
p0 p1
A01 = R01 o01 01×3 1
Matrice de
transformation homogène
o01 ∈ R3 R01 ∈ SO(3) A01
SE(3) = R3 × SO(3)
• La pose du repère 1 par rapport au repère 0 est définie par le couple:
(o
01, R
01)
Nous avons 6 paramètres: 3 définissant la translation et 3 définissant la rotation (par ex. les angles de roulis-tangage-lacet)
Matrices homogènes
Exemple 1 (Rotation simple autour de l’axe z)
y1
x1
O1 z0
y0
x0
O0
x1
O1
z0
y0 O0
z1
α
Exemple 2 (Translation simple) y
1
z1
o01
A
01=
R
z(α) 0
3×10
1×31
A
01=
I
3o
010
1×31
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:
• La transformation inverse entre le repère 0 et le repère 1 est décrite par la matrice qui vérifie l’équation:
Matrices homogènes
p
0= A
01p
1A10
p1 = A10 p0 = (A01)−1 p0
• En utilisant les propriétés des matrices partitionnées*, on trouve que:
(A01)−1 = (R01)T −(R01)To01 01×3 1
= R10 −R10 o01 01×3 1
*Remarque
M =
A B
C D
∈ Rmn×mn, M−1 =
(A −BD−1C)−1 −A−1B(D −CA−1B)−1
−1 −1 −1 −1 −1
Attention: les matrices homogènes ne satisfont pas la propriété d’orthogonalité. En conséquence, en général:
En conclusion:
• Une matrice homogène permet d’exprimer la transformation
de coordonnées entre deux repères génériques sous forme compacte
A
−1= A
T• Si les repères ont la même origine, la matrice homogène
se réduit à la matrice de rotation définie précédemment (voir l’Exemple 1)
• Comme pour les matrices de rotation, on peut composer une
séquence de transformations de coordonnées grâce au produit matriciel:
p0 = A01 A12 · · · An−1n pn
où Ai−1i est la matrice de transformation qui met en rélation la déscription d’un point dans le repère avec la
déscription du même point dans le repère i i − 1
Matrices homogènes
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
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
• Soit une matrice de rotation variable dans le temps
• Si on calcule la derivée par rapport au temps, nous trouvons (règle de la derivée du produit):
Cinématique
• Grâce à la propriété d’orthogonalité de la matrice , on a que:
• Soit
Elle est une matrice antisymétrique. En effet:
R(t)
R(t)RT(t) = I3
R(t)˙ RT(t) + R(t) ˙RT(t) = 03×3
S(t) R(t)˙ RT(t)
S(t) + ST(t) = 03×3
• Si on multiplie à droite chaque côté de l’équation précédente par
on trouve: R(t)
R(t) =˙ S(t) R(t)
Ainsi on a écrit la derivée de la matrice de rotation en fonction
R = R(t)
Interpretation physique
• La derivée par rapport au temps de est:
• Soit un vecteur constant et
• Si le vecteur est la vitesse angulaire (ou de rotation) du repère
par rapport au repère “fixe” au temps , nous savons de la mécanique que:
• Donc l’opérateur décrit le produit vectoriel entre le vecteur et le vecteur
• Les éléments de symétriques par rapport à la diagonale principale répresentent les composants du vecteur:
p p(t) = R(t)p p(t)
p(t) = ˙˙ R(t)p = S(t)R(t)p
ω(t) R(t)
˙
p(t) = ω(t) × R(t)p
S(t) ω
R(t)p S(t)
ω = [ωx, ωy, ωz]T t
Cinématique
qui justifie l’expression:
S =
⎡
⎢⎣
0 −ωz ωy
ωz 0 −ωx
−ωy ωx 0
⎤
⎥⎦
S(t) = S(ω(t))
• On peut donc réécrire l’équation précédente:
R˙ = S(ω)R
C’est-à-dire:
Cinématique
Interpretation physique
Exemple
On considère la matrice de rotation élémentaire autour de l’axe z.
Si l’angle , on trouve que: α = α(t)
Donc
ω =
⎡
⎢⎣ 0 0
˙ α
⎤
⎥⎦
qui exprime la vitesse angulaire du repère autour de l’axe z S(t) = ˙Rz(α(t))RTz (α(t))
=
⎡
⎣−α˙ sinα −α˙ cosα 0
˙
αcosα −α˙ sinα 0
0 0 0
⎤
⎦
⎡
⎣ cosα sinα 0
−sinα cosα 0
0 0 1
⎤
⎦ =
⎡
⎣0 −α˙ 0
˙
α 0 0
0 0 0
⎤
⎦ = S(ω(t)) z
x y
Cinématique
• La transformation de coordonnées d’un point P entre les repères 0 et 1 est:
• Si on calcule la dérivée par rapport au temps de cette expression, on trouve:
Repère 0
Repère 1
p0 = o01 + R01 p1
˙
p0 = ˙o0 + R0 p˙1 + ˙R0 p1
Mouvement rigide
Cinématique
• Si on utilise l’expression de la dérivée d’une matrice et on spécifie la dépendance à l’égard de la vitesse angulaire, on trouve que:
Repère 0
Repère 1
˙
p0 = ˙o01 + R01 p˙ 1 + S(ω01)R01 p1
• Enfin, si on note le vecteur , nous concluons que: r01
˙
p0 = ˙o0 + R0 p˙ 1 + ω0 × r0
R01 p1
Cinématique
Mouvement rigide
Cas particulier: Si est fixé par rapport au repère 1, on trouve que:
Repère 0
Repère 1
car
˙
p0 = ˙o01 + ω01 × r01 p1
˙
p1 = 0
Cinématique
Mouvement rigide
• P est un point d’un solide
en mouvement par rapport au repère 0
• Le repère 1 est attaché au solide
• Le mouvement du repère 1
par rapport au repère 0 est le suivant:
1. Translation de vitesse suivant y0
2. Rotation de vitesse autour de y0 3. Pour , repère 0 repère 1 Exemple
On a que:
z1
y1
x1 O1
z0
y0
x0 O0
p1 = [1, 0, 0]T
ω
v v
≡
ω
R01(t) =
⎡
⎢⎣
cos(ωt) 0 sin(ωt)
0 1 0
−sin(ωt) 0 cos(ωt)
⎤
⎥⎦, o01 =
⎡
⎢⎣ 0 vt
0
⎤
⎥⎦
p˙0(t) = ˙o01(t) + ˙R01(t)p1 =
⎡
⎢⎣ 0 v
⎤
⎥⎦+
⎡
⎢⎣
−ωsin(ωt) 0 ωcos(ωt)
0 0 0
⎤
⎥⎦
⎡
⎢⎣ 1 0
⎤
⎥⎦ =
⎡
⎢⎣
−ωsin(ωt) v
⎤
⎥⎦
˙
p0(0) =
0, v, −ωT Noter que
P
, p˙1 = 0
t = 0
Solide
Cinématique
Soit le repère 0 fixe et le repère 1 attaché à un solide.
Le torseur cinématique décrivant le mouvement du solide par rapport au repère 0 est défini par:
Définition (torseur cinématique)
Cas particuliers:
1) Si , alors le torseur est une rotation pure atour d’un axe, et le torseur devient: o˙01 = 0
2) Si , c’est-à-dire le solide ne tourne pas mais il glisse dans la direction uniquement, alors le torseur devient: ω01 = 0
o˙01
Cinématique
z1
y1
x1 O1
z0
y0
x0 O0
Solide
V o01 × ω01 + ˙o01 ω01
∈ R6
V = o01 × ω01 ω01
V = o˙01
Vocabulaire anglophone
• Torseur : screw
• Le torseur cinématique permet de représenter de façon pratique le champ des vitesses d'un solide indéformable en un instant donné
• Le torseur cinématique décrit la cinématique du solide, indépendamment des causes du mouvement
• Torseur cinématique : twist
• Torseur statique ou d’action (nous avons ici la force et le moment exercés par un solide sur un autre): wrench
The Theory of Screws (1876) Robert Stawell Ball
(1840-1913)
Cinématique
• De façon similaire à la composition de matrices homogènes, pour les torseurs il existe la loi de composition des mouvements
Remarques