Logo Viscera
Logo Main Pomme

Manipulateurs robotiques

mercredi 16 mars 2011

Matrices de rotation et de transformation

Comme le titre de cet article pouvait l’annoncer, attendez-vous ici à un peu de théorie mathématique ; théorie qui concernera en outre, à la surprise générale, les matrices. Heureusement, la matière présentée ici est légèrement plus avancée que celle du cours Algèbre linéaire et géométrie vectorielle ; mais en même temps, ceux et celles qui ont suivi ce cours ne devraient pas être trop confondus par ce qui va suivre.

Commençons avec la matrice de rotation. Supposons d'abord que nous avons un point P, au coordonnées (x,y,z), dans l’espace à trois dimensions. Nous voulons faire subir à ce point P une rotation quelconque ayant pour centre l’origine et ayant pour résultat le point P’. Comme le premier article sur les degrés de liberté a pu le laisser entendre, cette rotation peut être exprimée en fonction d’un angle de rotation q par rapport à l’axe des x, un angle r par rapport à l’axe des y, et un angle s par rapport à l’axe des z.

À quoi va servir la matrice de rotation dans tout ceci ? C’est bien simple : en multipliant les coordonnées de notre point P par la matrice de rotation, on peut obtenir celles du point P’. Il est à noter que les exemples qui suivent vont prendre en considération que les points de l’espace sont exprimés sous la forme verticale, soit

P =

x
y
z


La matrice de rotation comme telle sera notée R. Il s’agit simplement d’utiliser la même notation que le livre qui sert de source à cet article, de façon à éviter toute confusion dans les nombreuses multiplications de matrices qui vont survenir. Bref, comme j’allais l’expliquer,

R * P = P’.

Les trois matrices de rotation de base dépendent de l’axe autour duquel s’effectue la rotation. S’il s’agit d’une rotation autour de l’axe des x,

Si on a une rotation autour de l’axe des y,

Finalement, si la rotation s’effectue autour de l’axe des z,


Bien entendu, ces matrices ne sont pas descendues du ciel comme par magie ; il est absolument possible de démontrer leur provenance, et ce à l’aide de concepts tels que le produit scalaire et le produit vectoriel. Mais il se trouve que cette démonstration est du genre à être plutôt longue et, à moins d’une demande particulière des lecteurs et lectrices de ce blogue, elle ne sera pas affichée ici.

Pour revenir à nos matrices, la beauté dans tout ça, c’est qu’elles peuvent être multipliées pour arriver à la rotation finale voulue. Bien entendu, le résultat final R = Rx * Ry * Rz ne sera pas reproduit ici, mais vous pouvez quand même vous l’imaginer. On notera au passage que la rotation n’est pas une opération commutative : l’ordre dans lequel sont effectuées les rotations peut mener à un résultat final différent, et il peut donc exister plusieurs « chemins de rotation » pour passer d’un point P à un point P’ final. Pour ceux qui se demandent ce qu’il faut faire lorsque la rotation s’effectue selon un système d’axes différent de celui de l’origine, soyez sans crainte : il suffit d’exprimer notre point selon les coordonnées du nouveau système d’axes, d’effectuer la rotation voulue sur les « nouvelles » coordonnées du point, et de traduire le résultat dans les coordonnées du système d’origine. Mais passons tout de suite à la seconde moitié du titre de cet article.

Les matrices de transformation, pour leur part, sont des matrices conçues pour regrouper plusieurs transformations homogènes ; voilà pourquoi on utilisera souvent le terme de « matrice de transformation homogène ».

Tout d’abord, une telle matrice de transformation, pour l’espace à trois dimensions de forme 4x4. Dans son coin supérieur droit se trouve une matrice 3x3, qui correspond à une matrice de rotation telle que définie précédemment ; dans son coin supérieur gauche se trouve une matrice 3x1, qui donne les coordonnées de translation ; dans son coin inférieur gauche, on retrouve une matrice 1x3 qui donne la transformation de perspective, et il reste juste assez de place dans son coin inférieur droit pour abriter une « matrice » 1x1 : le facteur d’échelle. Dans l’étude des manipulateurs robotiques, la transformation de perspective est toujours mise à zéro, et le facteur d’échelle demeure 1.

Pour appliquer une matrice de transformation à un point, il faut exprimer ce point sous la forme verticale, avec une coordonnée ajoutée, correspondant au facteur d’échelle pour ce point. Dans les cas qui vont nous intéresser, ce facteur gardera une valeur de 1.

Par exemple, si on veut affecter au point P(0,2,3) une rotation de 30 degrés autour de l’axe des z ainsi qu’une translation de 5 unités en x et de 5 unités en y, l’opération résultante aura cette forme :

Les coordonnées de P’ sont donc (4, 6.73, 3).

Les informations pour cet article ont été prises dans TSAI, Lung-Wen, ROBOT ANALYSIS : The Mechanics of Serial and Parallel Manipulators, John Wiley and Sons Inc., États-Unis, 1999, 505 p. Sachez que cet article aura très probablement une suite, où seront appliquées les méthodes matricielles à l’analyse de position des manipulateurs sériels.



Aucun commentaire:

Enregistrer un commentaire