Modèles géométriques: directs et inverses
Ludovic Hofer
6 novembre 2019
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Robots articulés et modèle géométriques
Deux types d’articulations
Rotoïde (liaisons angulaires)
Linéaire (liaisons prismatiques)
Deux types d’architecture
Séries
Parallèles
Contenu du cours
Modèle géométrique pours robots séries
L. Hofer MGD/MGI 2 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Vocabulaire
y2
q2 yE
y0
x2
y1 x1
q1
xE
x0
Espace articulaire : Q
n : nombre d’articulations (degrés de liberté)
Configuration du robot q = (q1 , . . . , qn )
Ici : q = (π/6, −5π/12)
L. Hofer MGD/MGI 3 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Vocabulaire
y2
q2 yE
y0
x2
y1 x1
q1
xE
x0
Les repères du robot
0 : La base du robot
i : Repère du corps rigide après i articulations
E : L’effecteur ou outil du robot (pince, etc...)
L. Hofer MGD/MGI 3 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Vocabulaire
y2
q2 yE
y0
x2
y1 x1
q1
xE
x0
Espace opérationnel : O
Position de l’outil dans le repère 0
Orientation du repère E dans le repère 0
L. Hofer MGD/MGI 3 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Vocabulaire
y2
q2 yE
y0
x2
y1 x1
q1
xE
x0
Les modèles géométriques
Direct : Q → O (MGD, Forward Kinematics)
Inverse : O → Q (MGI, Inverse Kinematics)
L. Hofer MGD/MGI 3 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Repères
Note :
On se restreint ici aux repères orthonormés directs
Notations
Oi L’origine du repère i
x~i Le vecteur unitaire ~x du repère i
i
~v Le vecteur ~v dans le repère i
i
P La position du point P dans le repère i
Remarque
Oi , x~i et y~i suffisent à spécifier un repère, car :
z~i = x~i ∧ y~i
L. Hofer MGD/MGI 4 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Rotation en 3D
Notation
i
R j La rotation de j vers i
i i i i
Rj = x~j y~j z~j
Propriétés
i T
Rj = j Ri
i −1
Rj = j Ri
i
R j j ~v = i ~v
i
Rj j Rk = i Rk
L. Hofer MGD/MGI 5 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Transformation homogène en 3D
Notation
j
T i Transformation du repère j vers le repère i
j
!
i
i
Rj ~i
O
Tj =
01×3 1
Propriétés
i
Tj jTk = iT k
i
~ j = −i R j j O
O ~i
i T j ~
! !
i T ~j i T
i
Tj
−1 j
= Ti = Rj O = Rj −i R j O i
01×3 1 01×3 1
L. Hofer MGD/MGI 6 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Rotation autour des axes unitaires
j
1 0 0 0 zi
0 cos(θ) sin(θ) 0 zj
R(~x , θ) =
0 −sin(θ) cos(θ) 0
yj
θ
0 0 0 1 i
yi
j
cos(θ) 0 −sin(θ) 0 xi
0 1 0 0 xj
R(~y , θ) =
sin(θ) 0 cos(θ) 0
zj
θ
0 0 0 1 i
zi
j
cos(θ) sin(θ) 0 0 yi
−sin(θ) cos(θ) 0 0 yj
R(~z , θ) =
0 0 1 0
xj
θ
0 0 0 1 i
xi
L. Hofer MGD/MGI 7 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Translation selon un axe
~v ∈ Rn : un vecteur unitaire indiquant l’axe de translation
d ∈ R : La distance de la translation
j !
I3×3 −d~v yj
T (~v , d) =
0 1
i
yi
d~v xj
xi
L. Hofer MGD/MGI 8 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Dérivée des transformations
Dérivée élément par éléments
Exemple : Rotation
R(~x ,q) R0 (~x ,q)
z }| { z }| {
1 0 0 0 0 0 0 0
d 0 cos(q) sin(q) 0 0 −sin(q) cos(q) 0
=
dq 0 −sin(q) cos(q) 0 0 −cos(q) −sin(q) 0
0 0 0 1 0 0 0 0
L. Hofer MGD/MGI 9 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Transformation en fonction de q
À chaque q ∈ Q correspond une matrice 0 T E
Architecture série : transformations successives :
0
T E (q) = 0 T 1 (q1 )1 T 2 (q2 ) . . . n−1 T n (qn )n T E
Chaque transformation peut encore être décomposée
i 00 0
T j = i T j 00 j T j 0 (qi ) j T j
00
Rotoïde : j T j 0 (qi ) : R(~v , qi ), avec ~v l’axe de rotation
00
Linéaire : j T j 0 (qi ) : T (~v , qi ), avec ~v l’axe de translation
L. Hofer MGD/MGI 10 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Exemple : Bras à 3 degrés de libertés
y3
y2
L2
q2 q3 L3
x2 yE
x3
L1
y0
x1 xE
y1 q1
x0
0 1 2 3
T 1 (q1 ) T 2 (q2 ) T 3 (q3 ) TE
z }| {z }| {z }| {z }| {
R(~z , −q1 ) T (~x , −L1) R(~z , −q2 ) T (~x , −L2) R(~z , −q3 ) T (~x , −L3)
| {z }
0
T E (q)
L. Hofer MGD/MGI 11 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Notes sur l’espace opérationnel
0
T E contient des informations redondantes
9 valeurs pour décrire l’orientation
3 valeurs suffiraient
0
T E contient parfois des informations inutiles
Par exemple, intérêt uniquement pour la position (x,y)
Notation
0
P TE : transformation → l’espace opérationnel
0
G(q) = P T E (q)
Gi (q) Le i-ème élément du vecteur G(q)
L. Hofer MGD/MGI 12 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Quelques exemples de projection dans O
Position et orientation
0
!! O
E
0 0
0
RE OE roll
P TE = P =
0
01×3 1 pitch RE
yaw
Position uniquement
!!
0 0
0
RE OE
P TE = P = 0 OE
01×3 1
L. Hofer MGD/MGI 13 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Présentation
Modèle Géométrique Inverse
Objectif
Pour un o ∈ O, quelles configurations q ∈ Q tel que G(q) = o
Différences avec le MGD
Généralement, plusieurs solutions
Parfois 0 solutions
Parfois infinité de solutions
L. Hofer MGD/MGI 14 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Présentation
MGI et nombre de degrés de liberté
Cas classique : n = 6
L’espace opérationnel comprend position et orientation.
Sur-contraint : n < 6
Suppression de contraintes (par exemple position uniquement)
Sous-contraint : n > 6
Plusieurs possibilités :
Fixer toutes les articulations sauf 6
Introduire des contraintes supplémentaires
L. Hofer MGD/MGI 15 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Présentation
Méthodes de résolutions
Pas de solution générale, mais deux approches du problème :
Méthodes analytiques
Résolution géométrique
Résolution algébrique
Méthodes numériques (itératives)
Par Jacobienne Inverse
Par Jacobienne Transposée
L. Hofer MGD/MGI 16 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Résolution Analytique
Avantages et inconvénients
Avantages
Réponses exactes
Nombre de solutions disponible
Exécution rapide
Inconvénients
Pas de méthode générale : propre à chaque robot
Ne fournit pas de solution approchée quand la cible n’est pas
atteignable
L. Hofer MGD/MGI 17 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Résolution Analytique
Résolution géométrique : cas pratique
C
Données du problèmes
I
L2
C : Position cible
β D D : kO − C k
I’
L1 : kO − Ik
L1 α φ L2 : kI − C k
L. Hofer MGD/MGI 18 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Résolution Analytique
Résolution géométrique : cas pratique
C
Quelles valeurs pour α et β
I
L2
Par Al-Kashi :
β L2 2 = D 2 + L1 2 − 2DL2 cos(α)
I’ D
Autrement
dit :
2 2 −L 2
φ α = arccos L1 +D2L1 D
2
L1 α
De manièresimilaire :
2 2 2
2 −D
O β = arccos L1 +L
2L1 L2
L. Hofer MGD/MGI 18 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Résolution Analytique
Résolution géométrique : cas pratique
C
Quelles valeurs pour q1 et q2
I
L2
Cas classique : 2 solutions :
β D
(
I’ q1 = φ − α, q2 = 180 − β
q1 = φ + α, q2 = β − 180
L1 α φ
L. Hofer MGD/MGI 18 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Résolution Analytique
Résolution géométrique : cas pratique
C
Quelles valeurs pour q1 et q2
I
L2
Cas classique : 2 solutions :
β D
(
I’ q1 = φ − α, q2 = 180 − β
q1 = φ + α, q2 = β − 180
L1 α φ
Pas de solutions :
O D > L1 + L2 ou
D < |L2 − L1 |
L. Hofer MGD/MGI 18 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Résolution Analytique
Résolution géométrique : cas pratique
C
Quelles valeurs pour q1 et q2
I
L2
Cas classique : 2 solutions :
β D
(
I’ q1 = φ − α, q2 = 180 − β
q1 = φ + α, q2 = β − 180
L1 α φ
Pas de solutions :
O D > L1 + L2 ou
D < |L2 − L1 |
Une seule solution :
D = L1 + L2
L. Hofer MGD/MGI 18 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Résolution Analytique
Résolution algébrique
Non-couvert ici 1
Systèmes d’équation avec cos et sin
Choix du repère dans lequel sont exprimés est important
Utilisation de calcul symbolique (sympy, maxima, maple)
1. Voir 1.2.3 : [Link]
Khalil-Dombre_Modelisation/Khalil-Dombre_Modelisation.pdf
L. Hofer MGD/MGI 19 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Jacobienne
La jacobienne
∂G1 (q) ∂G1 (q)
∂q1 ... ∂qn
.. .. ..
∂G(q) ∂G(q)
J(q) = ∂q1 ... ∂qn
=
. . .
∂Gk (q) ∂Gk (q)
∂q1 ... ∂qn
Utilités
MGI : méthodes numériques
Vitesse dans l’espace opérationnel : ȯ = J(q)q̇
L. Hofer MGD/MGI 20 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Méthodes numériques
Avantages et inconvénients
Avantages
Méthode similaire pour tous les robots, basée sur G
Solution approximative pour position impossible
Inconvénients
Fournit une seule solution
Vulnérable aux singularités
Calculatoire
Non répétable
L. Hofer MGD/MGI 21 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Méthodes numériques
Inverse de la jacobienne
Résolution du MGI
Soit ∈ Rk un vecteur de norme faible :
On linéarise G autour de q : G(q + ) ≈ G(q) + J(q)
Donc : o − G(q) ≈ J(q)
On peut donc trouver avec : ≈ J(q)−1 (o − G(q))
Problèmes fréquents
trop grand : approximation linéaire invalide
Plusieurs pas de résolution : méthode itérative
J(q) non-inversible (exemple : matrice rectangulaire)
L. Hofer MGD/MGI 22 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Méthodes numériques
Jacobienne Transposée : Théorie
Formulation du problème
Minimisation d’une fonction de coût C (o, q) avec :
o ∈ O : la cible à atteindre
q ∈ Q : la configuration du robot
Recherche du coût minimum
Optimisation de fonction en boîte noire
Résolution plus efficace avec accès au gradient : ∇C (o, q)
∂
∂q1 C (o, q)
∇C (o, q) = ..
.
∂
∂qn C (o, q)
L. Hofer MGD/MGI 23 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Méthodes numériques
Jacobienne Transposée : Exemple
Cas simple
Cas simple : 3 degrés de liberté
Cible : position en 3D
Coût : carré des erreurs :
3
X
C (o, q) = (oi − Gi (q))2 = (o − G(q))T (o − G(q))
i=0
L. Hofer MGD/MGI 24 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Méthodes numériques
Jacobienne Transposée : calcul de ∇C (o, q)
Fonction de coût : carré des erreurs :
3
X
C (o, q) = (oi − Gi (q))2
i=0
L. Hofer MGD/MGI 25 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Méthodes numériques
Jacobienne Transposée : calcul de ∇C (o, q)
Fonction de coût : carré des erreurs :
3
X
C (o, q) = (oi − Gi (q))2
i=0
Dérivations de fonctions composées :
3
∂C (o, q) X ∂Gi (q)
= −2(oi − Gi (q))
∂qj i=1
∂qj
L. Hofer MGD/MGI 25 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Méthodes numériques
Jacobienne Transposée : calcul de ∇C (o, q)
Dérivations de fonctions composées :
3
∂C (o, q) X ∂Gi (q)
= −2(oi − Gi (q))
∂qj i=1
∂qj
Autrement dit :
!T
∂C (o, q) ∂G(q)
= −2 (o − G(q))
∂qj ∂qj
L. Hofer MGD/MGI 25 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Méthodes numériques
Jacobienne Transposée : calcul de ∇C (o, q)
Autrement dit :
!T
∂C (o, q) ∂G(q)
= −2 (o − G(q))
∂qj ∂qj
D’où :
∂G (q) ∂G2 (q) ∂G3 (q)
1
∂G∂q 1
1 (q)
∂q1
∂G2 (q)
∂q1
∂G3 (q)
∇C (o, q) = −2
∂q2 ∂q2 ∂q2
(o − G(q))
∂G1 (q) ∂G2 (q) ∂G3 (q)
∂q3 ∂q3 ∂q3
L. Hofer MGD/MGI 25 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Méthodes numériques
Jacobienne Transposée : calcul de ∇C (o, q)
D’où :
∂G (q) ∂G2 (q) ∂G3 (q)
1
∂G∂q 1
1 (q)
∂q1
∂G2 (q)
∂q1
∂G3 (q)
∇C (o, q) = −2
∂q2 ∂q2 ∂q2
(o − G(q))
∂G1 (q) ∂G2 (q) ∂G3 (q)
∂q3 ∂q3 ∂q3
Finalement :
∇C (o, q) = −2J(q)T (o − G(q))
L. Hofer MGD/MGI 25 / 26
Introduction Repères en 3D Modèle Géométrique Direct Modèle Géométrique Inverse
Méthodes numériques
Pour aller plus loin
[Link]
robots_series.pdf
http:
//[Link]/Khalil-Dombre_
Modelisation/Khalil-Dombre_Modelisation.pdf
L. Hofer MGD/MGI 26 / 26