Denavit-Hartenberg
La convention, ou notation, de Denavit-Hartenberg permet de caractériser la position relative de deux solides avec seulement quatre paramètres (au lieu de six). Ceci au prix de certaines restrictions dans le choix des systèmes de coordonnées (repères). En robotique, on rencontre en fait deux définitions[1] qui diffèrent légèrement :
- La convention de Denavit-Hartenberg [2], qui fut introduite en 1955, par Jacques Denavit et Richard S. Hartenberg.
- La convention de Denavit-Hartenberg modifiée, appelée aussi convention de Khalil-Kleinfinger[3], qui est préconisée depuis 1986[4], (parce qu'elle permet un allègement[5] du formalisme dans les exposés[6], portant sur les méthodes numériques par récurrence de la dynamique des robots).
Les deux notations sont couramment utilisées pour la modélisation des chaînes cinématiques constituées par des corps solides reliés entre eux par des articulations rotoïdes (pivots) ou prismatiques (glissières). Pour chaque articulation on peut définir l'axe de sa liaison[7] et sa variable articulaire[8].
- À chaque corps Cn de la chaîne est associé un repère (trièdre) orthonormé Rn. Corps et repères sont affectés d'un numéro dénominatif dans un ordre croissant, n = 1, 2.......N-1, N ; (généralement de la base vers l'extrémité de la chaîne).
- Chaque transformation faisant passer du trièdre Rn-1 au trièdre Rn est le produit de deux rotations et de deux translations[9] rangées dans un certain ordre alterné.
Notation de Denavit-Hartenberg
modifierLes axes de coordonnées sont définis par les règles[10] suivantes :
- L'axe est porté par l'axe de la liaison reliant le corps Cn-1au corps Cn. ( est donc porté par l'axe de la liaison reliant le corps Cnau corps Cn+1).
- L'axe est porté par la normale commune à et soit : .
- L'axe est choisi de manière à former un trièdre direct avec l'axe et soit : .
La transformation entre les corps successifs Cn-1 et Cn est décrite par les quatre paramètres[11] ci-dessous:
- , la distance selon l'axe entre les axes et . C'est la variable articulaire dans le cas glissière.
- , l'angle autour de l'axe entre les axes et . C'est la variable articulaire dans le cas pivot.
- (ou ), la distance selon l'axe entre les axes et . C'est donc également la longueur de la normale commune.
- , l'angle autour de l'axe entre les axes et
Ici et sont des paramètres constitutifs qui caractérisent le corps Cn .
En multipliant les matrices (4x4) de rotation et de translation élémentaire (autour ou le long d'un seul axe) en coordonnées homogènes, on obtient la matrice de passage en coordonnées homogènes entre les corps Cn-1 et Cn :
.
La matrice de Denavit-Hartenberg modifiée :
Convention de Khalil-Kleinfinger
modifierÀ l'instar de la convention de Denavit-Hartenberg, chaque transformation faisant passer du trièdre Rn-1 au trièdre Rn est le produit de deux rotations et de deux translations rangées dans un certain ordre alterné; et formellement les notations sont ressemblantes.
Les axes de coordonnées sont définis par les règles suivantes :
- L'axe [12] est porté par l'axe de la liaison reliant le corps Cn-1au corps Cn.
- L'axe est porté par la normale commune à et soit : .
- L'axe est choisi de manière à former un trièdre direct avec l'axe et soit : .
Chaque transformation entre les corps successifs Cn-1 et Cn est décrite[13] par quatre paramètres :
- , l'angle autour de l'axe entre les axes et
- , ou , la distance le long de l'axe entre les axes et . C'est donc également la longueur de la normale commune.
- , la distance le long de l'axe entre les axes et . C'est la variable articulaire dans le cas glissière.
- , l'angle entre autour de l'axe entre les axes et . C'est la variable articulaire dans le cas pivot.
La notation de Khalil-Kleinfinger est bien adaptée aux algorithmes numériques de la modélisation et aux chaînes arborescentes, mais elle présente une certaine lourdeur dans l'attribution des indices:
- Dans le cas pivot, on est amené à poser pour la variable articulaire et pour les paramètres constitutifs constants caractérisant le corps Cn-1 :
- De même, dans le cas glissière, on est amené à poser pour la variable articulaire et pour les paramètres constitutifs caractérisant le corps Cn-1 :
En multipliant les matrices (4x4) de rotation et de translation élémentaire (autour ou le long d'un seul axe) en coordonnées homogènes, on obtient la matrice de passage en coordonnées homogènes entre les corps Cn-1 et Cn :
La matrice inverse[14] s'écrit :
Remarque : on sait[15] que et en posant :
alors la matrice inverse s'écrit :
Notes et références
modifier- Attention aux confusions possibles !
- Voir par exemple [1]. École d'Ingénieurs de la Chambre de commerce et d'industrie de région Paris Île-de-France.
- Cours du Groupement de Recherche (GdR) en Robotique (créé en 2007 par le CNRS) [2] Bases de la modélisation et de la commande des robots-manipulateurs de type série Wisama KHALIL et Etienne DOMBRE.
- Article historique : «Khalil, W. & Kleinfinger, J.F. (1986). A new geometric notation for open and closed loop robots, IEEE Int. Conf. On Robotics and Automation, p. 1147-1180, San Francisco USA, April 1986 » .
- [3] DYNAMIC MODELING OF ROBOTS USING RECURSIVE NEWTON-EULER TECHNIQUES, Wisama KHALIL École Centrale de Nantes, IRCCyN UMR CNRS 6597.
- Page 25 : [4] ISTIA, Université Angers - Jean-Louis Boimond.
- L'axe du pivot, ou une droite dans la direction de la translation de la glissière.
- Angle de rotation, ou longueur du déplacement en translation.
- C'est le produit de deux déplacements hélicoïdaux, dans lesquels on peut échanger l'ordre rotation-translation.
- Des cas particuliers sont précisés en [5] Cours Kuchenbecker,MEAM Department,SEAS, University of Pennsylvania.
- Schèmas sur [6] University of West Florida, Rachid Manseur.
- Remarquez la différence avec Denavit-Hartenberg 1955.
- Schéma page 15, [7] Université Louis Pasteur de Strasbourg ´IUP Technologies Avancées des Sciences du Vivant, Cours Bernard BAYLE, année 2004–200
- Cours robotique, voir pages 24-28,[8] ou aussi [9] ISTIA, Université Angers, Jean-Louis Boimond .
- La matrice (3x3) représentant les termes de rotation est une matrice orthogonale : l'inverse est égale à la transposée.