Avant d’expliquer ce qu’est
la cinématique inverse, il est nécessaire
de commencer par le début : la cinématique
directe.
La cinématique directe correspond à une méthode
de calcul qui permet de calculer la position dans l’espace
de l’extrémité d’un « bras »
articulé à partir de la position dans laquelle se
trouve chacune de ses articulations.
Regardons un exemple en 2 dimensions :
Ceci est un petit bras (ou une patte) avec 3 articulations. Chaque
articulation offre une rotation dans le plan. Chaque segment du
bras est caractérisé par la distance séparant
les centres de chaque articulation.
Chaque articulation est caractérisée par l’angle
qu’elle applique au segment du bras auquel elle est reliée.
L’articulation est généralement limitée
au niveau de la plage angulaire qu’elle peut produire.
Le but de la cinématique directe est de connaître les
coordonnées et l’orientation
de l’extrémité bu bras en partant des caractéristiques
du bras et de l’angle de chaque articulation dans une position
donnée.
Le principe est le suivant :
- On détermine une origine au système de coordonnées
du « monde » dans lequel évolue le bras. Dans
notre cas, disons que l’origine se situe au niveau de l’articulation
« 0 » qui est aux coordonnées (X0, Y0).
- On détermine les équations donnant
la position de l’articulation suivante sur le bras (1).
Ces équations sont du type X1=f(LA, 0)
et Y1=f(LA, 0). X1
et Y1 sont les coordonnées de la seconde articulation,
LA, la longueur du premier segment du bras et 0
l’angle imprimé par la premier articulation au premier
segment.
- On fait de même pour l’articulation suivante (2).
Cela donne 2 équations du type : X2= f(X1, Y1, LB, 1)
et Y2= f(X1, Y1, LB, 1).
On peut remarquer que la seconde paire d’équations
dépend des résultats de la première paire
d’équations donnant X1 et Y1.
- On recommence pour le segment suivant. On obtient : XE= f(X2,
Y2, LC, 2) et YE=
f(X2, Y2, LC, 2).
- En substituant les équations correspondantes à
X2 et Y2 puis les équations correspondantes à X1
et Y1, on obtient 2 équations du type : XE= f(LA, LB, LC,
0, 1,
2) et YE= f(LA, LB,
LC, 0, 1,
2).
- En plus de cela, il faut constituer une équation donnant
l’angle de l’extrémité du bras.
L’ensemble de ces 3 équations donne
les coordonnées et l’orientation du bout du bras pour
peu que l’on connaisse les caractéristiques des segments
et la position des articulations.
Tout cela est assez simplifié par le fait que nous avons
ramené le problème à 2 dimensions et à
une architecture de bras relativement simple.
Tout cela est bien pratique. Cependant, la plupart du temps, il
est plus avantageux de pouvoir travailler « à l’envers
». C'est-à-dire que l’on choisi une coordonnée
et une orientation dans l’espace à laquelle on désire
amener le bras (ou la patte) et par un jeu d’équations
adaptées, on en déduit la combinaison de position
de chaque degré de liberté du robot pour l’atteindre.
C’est ça, la cinématique inverse.
La cinématique inverse permet donc de piloter tous les
axes du robot uniquement en partant de la position que l’on
désire atteindre.
Cependant, il arrive, selon la structure du bras et selon la coordonnée
désirée, que les équations de cinématique
inverse ne puissent trouver de solution. Cela peut
venir de 3 causes principales :
- Les équations n’ont pas été établies
correctement
- Les coordonnées à atteindre et/ou le vecteur
d’approche soient hors de la zone couverte par le bras.
- Les équations butent sur une redondance.
On parle de redondance quand la structure du
bras permet d’atteindre une certaine coordonnée avec
un vecteur d’approche donné selon plusieurs configurations
différentes.
Si on reprend notre « bras », ça donnerait
:
On peut voir que l’extrémité du
bras, même si il est très simple, peut atteindre la
même coordonnée avec le même vecteur d’approche
de plusieurs façons. Deux dans le cas illustré ci-dessus.
L’obtention des équations pour piloter
un bras en cinématique inverse est relativement fastidieuse.
Elle nécessite d’obtenir autant d’équations
que le bras possède de degrés de liberté, et
ces dernières prennent comme variable d’entrée
la coordonnée de l’extrémité, le
vecteur d’approche et éventuellement la position d’un
des axes du moteur. Si tel est le cas, l’ordre dans lequel
sera résolue la configuration du bras devra être faite
dans un ordre précis.
Pour notre bras cela pourrait donner quelque chose du genre :
0= f(XE,
YE , E, LA, LB, LC)
1= f(XE, YE , E,
LA, LB, LC)
2= f(XE, YE , E,
LA, LB, LC, 0, 1)
L’obtention de ces formules se fait avec des méthodes
qui impliquent pas mal de trigonométrie et de calcul matriciel
formel.
Gaël Waiche / Ex-Machina / 10/04
|