Robotique - AVR - Université de Strasbourg
Transcription
Robotique - AVR - Université de Strasbourg
Télécom Physique Strasbourg Université de Strasbourg Robotique Modélisation et commande des robots manipulateurs Bernard BAYLE Ce document évolue grâce à votre concours. Pour l’améliorer, communiquez moi vos remarques ou corrections par mail : [email protected] Table des matières Partie I – Modélisation des robots manipulateurs 1 1 Représentation des transformations et des mouvements rigides 1.1 Notations et définitions . . . . . . . . . . . . . . . . . . . . . . 1.1.1 Points . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.2 Solides . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.3 Transformations rigides . . . . . . . . . . . . . . . . . 1.2 Rotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 Matrice de rotation . . . . . . . . . . . . . . . . . . . . 1.2.2 Rotation d’un point appartenant à un solide . . . . . . . 1.2.3 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.4 Rotation d’un vecteur . . . . . . . . . . . . . . . . . . . 1.2.5 Propriétés des rotations . . . . . . . . . . . . . . . . . . 1.2.6 Combinaison de rotations . . . . . . . . . . . . . . . . 1.2.7 Représentation de l’orientation d’un solide dans l’espace 1.3 Transformations rigides . . . . . . . . . . . . . . . . . . . . . . 1.3.1 Matrices de passage homogènes . . . . . . . . . . . . . 1.3.2 Propriétés des transformations rigides . . . . . . . . . . 1.4 Mouvements rigides . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1 Vecteur vitesse de rotation . . . . . . . . . . . . . . . . 1.4.2 Vitesse d’un point lié à un solide . . . . . . . . . . . . . 2 Description des bras manipulateurs 2.1 Chaîne cinématique d’un bras manipulateur 2.2 Paramètres de Denavit-Hartenberg modifiés 2.3 Relations géométriques . . . . . . . . . . . 2.4 Relations cinématiques . . . . . . . . . . . 3 Modélisation des bras manipulateurs 3.1 Configuration et situation d’un bras manipulateur 3.2 Modèle géométrique direct . . . . . . . . . . . . 3.2.1 Définition . . . . . . . . . . . . . . . . . 3.2.2 Calcul . . . . . . . . . . . . . . . . . . . 3.2.3 Règles pratiques . . . . . . . . . . . . . 3.2.4 Exemple . . . . . . . . . . . . . . . . . 3.3 Modèle géométrique inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 3 3 4 4 4 5 5 6 7 7 9 14 14 15 15 15 16 . . . . 17 17 18 20 21 . . . . . . . 23 23 23 23 24 24 25 26 ii Table des matières 3.4 3.3.1 Définition . . . . . 3.3.2 Calcul . . . . . . . 3.3.3 Exemple . . . . . Modèle cinématique direct 3.4.1 Définition . . . . . 3.4.2 Calcul . . . . . . . 3.4.3 Règles pratiques . 3.4.4 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 27 27 29 29 29 30 31 Partie II – Commande des robots manipulateurs 35 4 . . . . . . 37 37 37 38 40 41 43 . . . . . . . . . . . . . 45 45 45 45 47 47 50 50 51 51 52 52 56 57 . . . . . . . . 73 73 73 73 74 76 77 77 78 5 6 Génération de mouvements 4.1 Les différents problèmes . . . . . . . . . . . . . . . 4.1.1 Problèmes point-à-point . . . . . . . . . . . 4.1.2 Problèmes à mouvement opérationnel imposé 4.2 Système de commande d’un robot . . . . . . . . . . 4.2.1 Contrôleur de robot . . . . . . . . . . . . . . 4.2.2 Variateur de vitesse . . . . . . . . . . . . . . . . . . . . . . . . . . Technologie 5.1 Motorisation . . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 Moteurs électriques pour la robotique . . . . . . 5.1.2 Moteurs à courant continu (avec balais) . . . . . 5.1.3 Moteurs à courant continu sans balais . . . . . . 5.1.4 Réducteurs . . . . . . . . . . . . . . . . . . . . 5.2 Mesure de position . . . . . . . . . . . . . . . . . . . . 5.2.1 Codeurs incrémentaux . . . . . . . . . . . . . . 5.2.2 Génératices tachymétriques . . . . . . . . . . . 5.2.3 Résolveurs . . . . . . . . . . . . . . . . . . . . 5.3 Variateurs de vitesse . . . . . . . . . . . . . . . . . . . 5.3.1 Principe et modélisation de l’actionneur . . . . . 5.3.2 Principe et modélisation du convertisseur statique 5.3.3 Variation de vitesse du moteur à courant continu Commande 6.1 Commande point-à-point . . . . . . . . . . . . 6.1.1 Principe de la génération de mouvement 6.1.2 Interpolation polynomiale de degré cinq 6.1.3 Loi Bang-Bang . . . . . . . . . . . . . 6.1.4 Loi trapézoïdale en vitesse . . . . . . . 6.2 Commande à mouvement opérationnel imposé . 6.2.1 Position du problème . . . . . . . . . . 6.2.2 Méthodes d’inversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table des matières iii Annexes A Modélisation d’un bras manipulateur de type SCARA A.1 Robot de type SCARA : présentation . . . . . . . A.2 Robot Samsung RSM-5 : modélisation . . . . . . A.2.1 Géométrie du robot . . . . . . . . . . . . . A.2.2 Modélisation géométrique . . . . . . . . . A.2.3 Modélisation cinématique . . . . . . . . . 79 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 81 81 82 83 83 Bibliographie 88 Index 89 Partie I Modélisation des robots manipulateurs Chapitre 1 Représentation des transformations et des mouvements rigides Ce chapitre contient des rappels mathématiques sur les transformations rigides et l’orientation des corps dans l’espace [Murray 94, Renaud 86, Craig 89]. 1.1 Notations et définitions L’objet de ce paragraphe est de fournir un ensemble de définitions mathématiques précises pour l’étude des mécanismes polyarticulés. 1.1.1 Points Soit un repère orthonormé cartésien noté R = (O, x, y, z) selon la convention de Gibbs. La position d’un point M est donnée par un triplet de coordonnées. On choisit par commodité de représenter ces coordonnées par un vecteur m de R3 , sous la forme d’une matrice colonne : 0 1 mx @ m = my A . mz Le mouvement du point est la courbe paramétrée m(t) de R3 donnant sa position au cours du temps. Le support du mouvement (la courbe non paramétrée) est la trajectoire du point. 1.1.2 Solides Un solide S est dit indéformable si, pour toute paire de points de ce solide de coordonnées m et n, ||m(t) n(t)|| = ||m(0) n(0)|| = constante au cours du temps. Par la suite, les solides seront tous considérés comme indéformables. Le mouvement rigide d’un solide S, considéré comme un sous-ensemble de R3 est le mouvement de chacun de ces points. Il est ainsi représenté par une famille d’applications g(t) : S ! R3 . La situation d’un solide S est donnée par la position et l’orientation dans R d’un repère lié à ce solide. 4 1. Représentation des transformations et des mouvements rigides 1.1.3 Transformations rigides On appelle transformation rigide le résultat d’un mouvement rigide amenant le solide d’une situation initiale à une situation finale. Une transformation rigide est représentée par une application unique g : S ! R3 qui transforme les coordonnées des points du solide S de leur position initiale vers leur position finale. Une application g représentera une transformation rigide si elle conserve à la fois les distances et l’orientation. Soit le vecteur v = m n où m et n représentent les coordonnées de deux points et : g? : R3 ! R3 telle que g? (v) = g(m) g(n). Conformément à la définition précédente, une application g représente une transformation rigide si et seulement si : 1. ||g(m) g(n)|| = ||m n||, 8m, n 2 R3 ; 2. g? (v ⇥ w) = g? (v) ⇥ g? (w), 8v, w 2 R3 . Cela signifie notamment qu’un repère orthonormé direct reste orthonormé direct par application d’une transformation rigide. 1.2 1.2.1 Rotations Matrice de rotation Soit deux repères orthonormés directs R = (O, x, y, z) et R0 = (O, x0 , y 0 , z 0 ) partageant la même origine O, conformément à la figure 1.1. z0 z y0 O x y M x0 F IGURE 1.1 – Changement de base des coordonnées d’un point Soit x0 , y 0 , z 0 les coordonnées des vecteurs de la base R0 exprimés dans R. Alors : 0 0 1 0 0 1 0 0 1 y .x x .x z .x 0 0 0 0 A 0 A @ @ @ x = x .y , y = y .y et z = z 0 .y A . x0 .z y 0 .z z 0 .z La matrice R = (x0 y 0 z 0 ) de dimension 3 ⇥ 3 est appelée matrice de rotation ou matrice de passage ou encore matrice de changement de base du repère R vers le repère R0 . En effet, selon le but recherché, on pourra l’utiliser pour rendre compte : – du changement de base des coordonnées d’un point ou d’un vecteur entre les repères R et R0 ; 1.2. Rotations 5 – de la rotation d’un solide lié à un repère orthonormé, initialement en R, et déplacé en R0 par la rotation autour de O. Nous allons illustrer ceci dans les paragraphes suivants. 1.2.2 Rotation d’un point appartenant à un solide Le repère R est un repère fixe cartésien orthonormé. Soient m = (mx my mz )T et m0 = (m0x m0y m0z )T les coordonnées d’un point M respectivement dans R et R0 (voir figure 1.1). Les coordonnées des vecteurs de la base R0 exprimées dans R étant (toujours) notées x0 , y 0 , z 0 , les coordonnées de M dans R sont données par : m = m0x x0 + m0y y 0 + m0z z 0 , soit encore sous forme matricielle : 0 1 m0x m = x0 y 0 z 0 @m0y A m0z c’est-à-dire : m = Rm0 . (1.1) La relation (1.1) rend compte du changement de base des coordonnées d’un point. On peut aussi en faire une analyse en terme de rotation si l’on considère que M est un point d’un solide S (en pointillés sur la figure 1.2) ayant effectué, autour de O, une rotation caractérisée par la matrice R. Alors m0 représentent les coordonnées initiales de M dans R et m ses coordonnées finales, toujours dans R, une fois la rotation effectuée. z0 z y0 O x y M x0 F IGURE 1.2 – Rotation d’un solide autour d’un point fixe 1.2.3 Exemple p On considère la rotation d’un point M de coordonnées initiales ( 3 0 1)T dans R, comme cela est représenté à la figure 1.3. On cherche à déterminer les coordonnées du point transformé par une rotation de centre O et d’angle ✓, autour de z. Les coordonnées des vecteurs de base de R0 dans R sont : 0 1 0 1 0 1 cos ✓ sin ✓ 0 x0 = @ sin ✓ A , y 0 = @ cos ✓ A et z 0 = @0A 0 0 1 6 1. Représentation des transformations et des mouvements rigides M y x0 y0 ✓ O z = z0 x F IGURE 1.3 – Exemple de rotation plane si bien que la matrice de rotation de R vers R0 , notée R(z, ✓), est : 0 1 cos ✓ sin ✓ 0 R(z, ✓) = @ sin ✓ cos ✓ 0A . 0 0 1 Les coordonnées du point M dans R0 sont : 0p 1 3 m0 = @ 0 A . 1 Dans R ses coordonnées sont : 0 1 0p 1 0p 1 cos ✓ sin ✓ 0 3 p3 cos ✓ m = @ sin ✓ cos ✓ 0A @ 0 A = @ 3 sin ✓ A . 0 0 1 1 1 Comme évoqué précédemment, on peut qu’il s’agit aussi des coordonnées dans p vérifier T R d’un point qui initialement en ( 3 0 1) , se trouverait déplacé en M sous l’effet de la rotation R(z, ✓). A titre d’exemple, pour ✓ = ⇡3 (c’est le cas de la figure 1.3) p m = ( 23 32 1)T . 1.2.4 Rotation d’un vecteur Bien évidemment, la rotation s’applique aussi aux vecteurs. Les coordonnées d’un vecteur sont en effet la différence des coordonnées de deux points de R3 . On peut ainsi appliquer la rotation à un vecteur de coordonnées v = m n dans R : m soit, en posant v 0 = m0 n = Rm0 Rn0 = R(m0 n0 : v = Rv 0 . n0 ), 1.2. Rotations 1.2.5 7 Propriétés des rotations La matrice de rotation R, par définition, est constituée de colonnes orthonormales et donc : RT R = I. Par ailleurs, on montre que : det R = (x0 )T (y 0 ⇥ z 0 ) = (x0 )T x0 = 1. La matrice de rotation R est donc un élément de l’ensemble : SO(3) = {R 2 R3⇥3 /RRT = I, det R = 1} appelé groupe spécial orthogonal. Cet ensemble, muni de l’opération multiplication matricielle, est un groupe sur R3⇥3 . Ceci a des implications pratiques : 1. La combinaison de deux rotations R1 et R2 est la rotation R1 R2 . 2. Il existe un unique élément neutre, qui est la matrice identité 1 d’ordre 3. 3. Pour une matrice de rotation R donnée, il existe une unique inverse R 1 = RT . Par ailleurs, une rotation est une transformation rigide car : 1. ||Rm Rn|| = ||m n||, 8m, n 2 R3 . 2. R(v ⇥ w) = Rv ⇥ Rw, 8v, w 2 R3 . 1.2.6 Combinaison de rotations Le groupe SO(3) est non commutatif car le produit matriciel n’est pas commutatif. Ainsi, soient deux rotations R1 et R2 , alors R1 R2 6= R2 R1 . Ces deux produits ont chacun leur signification propre, que nous allons expliquer maintenant. Deux cas se présentent pour combiner deux rotations : – soit on effectue la seconde rotation par rapport au repère résultant de la première rotation ; – soit on effectue les deux rotations par rapport à un repère fixe unique. Soit R0 et R00 les repères résultant des deux rotations successives du repère fixe R. Dans les deux cas évoqués précédemment, le repère R0 résulte de la rotation R1 de R autour d’un axe lié au repère fixe R. Ensuite, les deux cas précédents donnent : – dans le premier cas R00 résulte de la rotation de R0 autour d’un axe lié à R0 ; – dans le second cas R00 résulte de la rotation de R0 autour d’un axe lié à R. Examinons maintenant ces deux cas. Soit M de coordonnées respectives m, m0 , m00 dans les repères R, R0 et R00 . Premier cas : R00 résulte de la rotation de R0 autour d’un axe lié à R0 être analysé comme un problème de deux changements de base : m = R1 m 0 m0 = R2 m00 1. Une matrice identité, quel que soit son ordre, sera notée I. Ce cas peut 8 1. Représentation des transformations et des mouvements rigides et donc : m = R1 R2 m00 . Comme nous l’avons vu précédemment, les coordonnées m de M dans R sont aussi les coordonnées d’un point de coordonnées m00 dans R auquel on aurait appliqué les deux rotations successives. Par exemple considérons la combinaison des deux rotations suivantes : – une première rotation d’un angle ⇡4 autour de z ; – une seconde rotation d’un angle ⇡ autour de l’axe y 0 résultant de la première rotation. Ceci correspond à l’illustration de la figure 1.4. On considère le point de coordonnées z0 z M ⇡ y0 x00 O x0 x ⇡ 4 z 00 F IGURE 1.4 – Rotations successives autour d’axes non fixes p m00 = ( 2 0 0)T dans R00 et on souhaite exprimer ses coordonnées dans R. On a donc : p 0 p2 10 1 0p 1 0 1 2 0 1 0 0 1 2 p2 p2 2 A @ A @ A @ 0 1 0 1A . m = @ 22 = 0 0 2 0 0 1 0 0 0 0 1 Ceci correspond à la combinaison des deux rotations suivantes : – une première rotation d’un angle ⇡4 autour de z ; – une seconde rotation d’un angle ⇡ autour de l’axe y 0 . Second cas : R00 résulte de la rotation de R0 autour d’un axe lié à R Ce cas peut être analysé comme un problème de rotations successives d’un point. La transformation d’un point de coordonnées initiales m00 dans R donne un point intermédiaire, qui, 1.2. Rotations 9 transformé par la seconde rotation donne un point de coordonnées m dans R. Ainsi : m = R2 (R1 m00 ). Pour comparer avec le premier cas, vu précédemment, considérons la combinaison des deux rotations suivantes : – une première rotation d’un angle ⇡4 autour de z ; – une seconde rotation d’un angle ⇡ autour de l’axe y fixe. Ceci correspond à l’illustration de la figure 1.5. On considère le point de coordonnées z0 z ⇡ M x00 O x0 y x ⇡ 4 z 00 F IGURE 1.5 – Rotations successives autour d’axes fixes p initiales m00 = ( 2 0 0)T dans R (et donc de coordonnées finales m00 dans R00 ). On a : 0 1 0 @ 0 1 m= 0 0 1.2.7 1 0 p2 0 p2 0 A@ 2 2 1 0 p 2 p2 2 2 0 1 0p 1 0 0 1 0 2 A @ A @ 0 1 = 0 0 0 0 0 1 10 1 0 1 1 1 0 A @ A @ 0 1 = 1 A. 1 0 0 Représentation de l’orientation d’un solide dans l’espace La donnée d’une base attachée à un solide S en rotation détermine de manière unique son orientation dans l’espace. Différentes représentations peuvent être utilisées pour cela, avec pour chacune avantages et inconvénients. 10 1. Représentation des transformations et des mouvements rigides Matrice de rotation et cosinus directeurs On considère la rotation d’un repère R vers un repère R0 . La matrice de rotation R est une matrice de dimension 3 ⇥ 3 à valeurs dans R : 0 1 xx yx z x R = @ xy yy z y A . xz yz z z Les éléments de cette matrice sont appelés cosinus directeurs car ils représentent les coordonnées des trois vecteurs de la base R0 exprimés dans R. Par définition, les colonnes de R sont orthogonales entre elles et par conséquent la connaissance de deux colonnes suffit. En robotique, on omet ainsi souvent la seconde colonne : 0 1 xx ⇤ z x R = @ xy ⇤ z y A . xz ⇤ z z Les six paramètres restant sont appelés cosinus directeurs incomplets. Par ailleurs les colonnes de R formant une base orthonormée : – les deux colonnes restantes sont orthogonales et donc : xx z x + xy z y + xz z z = 0 ; – les deux colonnes restantes sont de norme unité et donc : x2x + x2y + x2z = 1, zx2 + zy2 + zz2 = 1. Les six cosinus directeurs incomplets sont ainsi liés entre eux par trois relations. Malheureusement, ces relations non linéaires ne permettent pas de fournir trois paramètres de manière unique, mais une collection de solutions : il faut donc conserver les six paramètres ou utiliser un autre mode de représentation de l’orientation. Représentation angle/axe Vecteur rotation Pour toute rotation, on peut trouver une unique paire (e, ") où e représente de vecteur directeur de l’axe de la rotation, de norme unité, et " l’angle de rotation en radians. Pour que la représentation soit unique, il faut choisir ⇡ < " 6 ⇡ et e de coordonnées e = [ex ey ez ]T tel que ex + ey + ez > 0. On appelle vecteur rotation le vecteur " = "e. On peut bien évidemment établir la correspondance entre cette représentation à quatre paramètres (" et les trois composantes de e) et les cosinus directeurs. On montre que : ✓ ◆ xx + yy + z z 1 " = arccos , 2 0 1 yz z y 1 @ z x xz A . et e = 2 sin " xy yx Il existe de très nombreux cas particuliers [Renaud 96]. 1.2. Rotations 11 Coordonnées exponentielles La vitesse d’un point M de coordonnées m en rotation autour d’un axe e à vitesse constante unité s’écrit : dm(t) = e ⇥ m(t) = ê m(t), dt avec : 0 0 ê = @ ez ey ez 0 ex 1 ey ex A 0 la matrice du tenseur antisymétrique associé au vecteur de coordonnées e. Alors : m(t) = exp(êt) m(0), avec m(0) les coordonnées de M à t = 0 et exp(êt) la matrice exponentielle : exp(êt) = I + êt + (êt)2 + ... 2 Cette matrice représente la rotation d’axe e. Si on l’évalue en t = ", on obtient une représentation de la rotation d’axe e et d’angle " : R(e, ") = exp(ê"). La matrice exponentielle exp(ê") se calcule en appliquant la formule de Rodrigues : exp(ê") = I + ê sin " + ê2 (1 cos "). Paramètres d’Euler complets Soit (c, p, q, r) le quadruplet associé à la rotation R(e, ") tel que : " c = cos > 0, 20 1 0 1 p e " @ xA @ A ey . et q = sin 2 r ez Les paramètres constituant ce quadruplet sont appelés paramètres d’Euler complets. Du fait que ⇡ < " 6 ⇡ : c 1< p 1< q 1< r 6 0, 6 1, 6 1, 6 1. Les paramètres d’Euler complets sont liés par la relation c2 +p2 +q 2 +r2 = 1. L’avantage majeur de cette représentation est qu’elle ne présente pas de singularité. Du fait du faible nombre de paramètres utilisés, elle représente donc un bon compromis. 12 1. Représentation des transformations et des mouvements rigides Angles d’Euler classiques Les angles d’Euler classiques permettent de décrire l’orientation d’un solide par trois rotations successives. Conformément à la figure 1.6, il s’agit des rotations R(z, ), R(x , ✓) et enfin R(z ✓ , ') où x et z ✓ sont déduits des vecteurs du repère de base conformément à la figure 1.6. Les angles , ✓ et ' sont connus respectivement sous les termes de précession, nutation et rotation propre. Chaque nouvelle rotation étant z z z' z✓ ' y y y' y✓ ✓ x x' x✓ x F IGURE 1.6 – Rotations successives dans le paramétrage par les angles d’Euler effectuée par rapport à un repère ayant tourné : R = R(z, ) R(x , ✓) R(z ✓ , '). Sous forme développée : 0 cos sin cos R = @ sin 0 0 10 0 1 0 0A @0 cos ✓ 1 0 sin ✓ soit finalement : 0 cos cos ' sin cos ✓ sin ' R = @sin cos ' + cos cos ✓ sin ' sin ✓ sin ' 10 0 cos ' sin ✓A @ sin ' cos ✓ 0 1 sin ' 0 cos ' 0A 0 1 cos sin ' sin cos ✓ cos ' sin sin ' + cos cos ✓ cos ' sin ✓ cos ' 1 sin sin ✓ cos sin ✓A . cos ✓ La transformation inverse permet d’établir les angles d’Euler à partir des cosinus directeurs 2 : • si zz 6= ±1 : = atan2(zx , zy ), ✓ = acos zz , ' = atan2(xz , yz ). • si zz = ±1 : ✓ = ⇡(1 zz )/2, + zz ' = atan2( yx , xx ), et donc et ' sont indéterminés. 2. Pour cela il faut définir la fonction atan2, qui permet d’associer l’unique angle x = atan2(sin x, cos x). ⇡ < x 6 ⇡ tel que 1.2. Rotations 13 Angles roulis, tangage et lacet Pour cette représentation, la littérature donne de nombreuses définitions [Paul 81, Craig 89, Khalil 99, Renaud 96]. Ces angles, très utilisés par les anglo-saxons et donc par les industriels, portent les noms de roll, pitch et yaw en anglais. Il s’agit en fait d’angles d’Euler non classiques en cela que les rotations s’effectuent autour d’axes fixes. Nous adoptons la définition de [Craig 89] : les rotations successives, conformément à la figure 1.7, sont R(x, ), R(y, ) puis R(z, ↵). Les angles , , et ↵ sont respectivement désignés sous les noms d’angles de roulis, tangage et lacet. Chaque nouvelle z ↵ y x F IGURE 1.7 – Rotations successives dans le paramétrage par les angles de roulis, tangage et lacet rotation étant effectuée par rapport à un axe du repère fixe R : R = R(z, ↵) R(y, ) R(x, ). Sous forme développée : 0 10 cos ↵ sin ↵ 0 cos @ A @ 0 R = sin ↵ cos ↵ 0 0 0 1 sin soit finalement : 0 cos ↵ cos @ R = sin ↵ cos sin 10 0 sin 1 0 A @ 1 0 0 cos 0 cos 0 sin sin ↵ cos + cos ↵ sin sin cos ↵ cos + sin ↵ sin sin cos sin 1 0 sin A , cos 1 sin ↵ sin + cos ↵ sin cos cos ↵ sin + sin ↵ sin cos A cos cos La transformation inverse permet d’établir les angles de roulis, tangage et lacet à partir des cosinus directeurs : • si 6= ± ⇡2 : • si ↵ = atan2(xy , xxp ), = atan2( xz , x2x + x2y ), = atan2(yz , zz ). = ± ⇡2 : ↵ (ou ↵ et donc ↵ et signe( ) signe( ) = atan2(zy , zx ), = atan2(yx , yy ) équivalent . . . normalement), sont indéterminés. 14 1.3 1.3.1 1. Représentation des transformations et des mouvements rigides Transformations rigides Matrices de passage homogènes Une transformation rigide résulte en général de la combinaison d’une translation et d’une rotation. Elle est définie par la paire g = (p, R) avec p la translation de l’origine du repère lié au solide S en mouvement (voir figure 1.8). L’ensemble des transformations rigides : SE(3) = {(p, R)/p 2 R3 , R 2 SO(3)} = R3 ⇥ SO(3) est appelé groupe spécial euclidien. z0 z y0 O0 p O x0 y M x F IGURE 1.8 – Transformation rigide du solide S Soient m = (mx my mz )T et m0 = (m0x m0y m0z )T les coordonnées d’un point M respectivement dans R et R0 . La transformation rigide résultant de la translation p du repère R puis de la rotation du repère obtenu vers R0 , on a : m = p + Rm0 . (1.2) Ceci peut se mettre sous forme linéaire en introduisant les coordonnées homogènes du point M qui sont représentées par un vecteur de dimension 4 ⇥ 1 : 0 1 0 01 mx mx ✓ ◆ ✓ 0◆ 0C B my C B m m m 0 0 y C B C m̄ = B @mz A = 1 dans R et m̄ = @m0z A = 1 dans R . 1 1 On peut alors exprimer la transformation rigide (1.2) par la relation matricielle : ✓ ◆ ✓ ◆ ✓ 0◆ m R p m = (1.3) 1 0 1 1 que l’on notera : m̄ = T m̄0 en posant : T = ✓ ◆ R p . 0 1 La matrice T , dite matrice de passage homogène, décrit ainsi le passage du repère R au repère R0 et donc la transformation rigide g = (p, R). 1.4. Mouvements rigides 1.3.2 15 Propriétés des transformations rigides L’ensemble SE(3) muni de la multiplication matricielle est un groupe. Il en résulte que : 1. Soit g1 et g2 deux transformations rigides représentées par les matrices homogènes : ✓ ◆ ✓ ◆ R1 p 1 R2 p 2 T1 = , T2 = . 0 1 0 1 Alors g1 g2 est bien une transformation rigide de matrice homogène : ✓ ◆ R1 R2 R1 p 2 + p 1 T1 T2 = . 0 1 (1.4) 2. La matrice identité d’ordre 4 est l’élément neutre du groupe SE(3). 3. D’après le produit (1.4) l’inverse d’une transformation rigide g = (p, R) de SE(3) est représentée par : ✓ T ◆ R RT p 1 T = 0 1 et donc g 1.4 1.4.1 1 = ( RT p, RT ). Mouvements rigides Vecteur vitesse de rotation Comme précédemment dans le cas des transformations rigides, on considère tout d’abord un mouvement de rotation pure. On considère un solide S auquel est lié un repère R0 en rotation dans R autour d’un point O, origine des deux repères. Le vecteur vitesse de rotation ⌦ décrit le mouvement de rotation. Il est porté par l’axe instantané de rotation du solide S, dirigé suivant le principe du tire-bouchon (voir figure 1.9). ⌦ z0 z y0 O x y OM x0 vM M F IGURE 1.9 – Mouvement de rotation pure, axe instantané de rotation et vecteur vitesse de rotation d’un solide S 16 1.4.2 1. Représentation des transformations et des mouvements rigides Vitesse d’un point lié à un solide Cas des rotations pures On considère un point M du solide S. Le mouvement du point M est donné par les coordonnées m(t) du point dans le repère fixe R, au cours du temps. Le point M tournant autour de l’axe instantané de rotation et le vecteur vitesse de rotation du solide S étant ⌦, la vitesse v M de M est : v M = ⌦ ⇥ OM . Si l’on considère les coordonnées des points et vecteurs : vM = = = en définissant : 0 0 ˆ = @ ⌦z ⌦ ⌦y ⌦ ⇥ m, ⌦ ⇥ R m0 , ˆ R m0 , ⌦ ⌦z 0 ⌦x (1.5) 1 ⌦y ⌦x A 0 la matrice du tenseur antisymétrique associé au vecteur de coordonnées ⌦ = (⌦x ⌦y ⌦z )T , permettant de remplacer le produit vectoriel par un produit matriciel. Par ailleurs, si l’on dérive l’équation (1.1) : dm dR 0 = vM = m. (1.6) dt dt Il résulte de (1.5) et (1.6) que : dR ˆ R. =⌦ (1.7) dt Cas des mouvements quelconques A la section 1.3 on a calculé la position d’un point M effectuant une transformation rigide composée d’une translation et d’une rotation. Pour décrire le mouvement rigide d’un point M , donc sa position comme une fonction continue du temps, on souhaite connaître la vitesse vM du point dans R, à l’image de ce qui a été fait dans le paragraphe précédent, dans le cas d’une rotation pure. Si l’on dérive l’équation (1.2) : dm dR 0 dp = vM = m + , dt dt dt 0 ˆ = ⌦ R m + vM 0 ce qui peut se mettre sous la forme linéaire : ✓ ◆ ✓ ◆ ✓ 0◆ ˆ R vM 0 vM m ⌦ = . 1 1 0 1 (1.8) (1.9) Chapitre 2 Description des bras manipulateurs On se propose par la suite d’établir les modèles géométriques et cinématiques des bras manipulateurs. Pour cela on définit la forme des chaînes cinématiques qui seront étudiées et le paramétrage usuel de ces structures [Renaud 86]. 2.1 Chaîne cinématique d’un bras manipulateur On ne considère ici que les systèmes mécaniques composés de chaînes cinématiques polyarticulées ouvertes, appelés bras manipulateurs série. La figure 2.1 montre les deux structures les plus répandues dans l’industrie : – les bras manipulateurs de type anthropomorphe, à six liaisons rotoïdes, d’usage général ; – les bras manipulateurs de type SCARA, qui sont fréquemment utilisés dans les cellules de production pour les opérations de palettisation. F IGURE 2.1 – Bras manipulateurs de type anthropomorphe et SCARA On supposera par la suite les bras manipulateurs constitués de n corps mobiles, supposés parfaitement rigides, reliés entre eux par n liaisons rotoïdes et/ou prismatiques formant une structure de chaîne simple (voir figure 2.2 page suivante). Pour identifier la 18 2. Description des bras manipulateurs corps C1 bâti (corps C0 ) liaison L1 corps C2 liaison L2 corps Cn 1 liaison L3 liaison Ln 1 corps Cn liaison Ln F IGURE 2.2 – Chaîne cinématique d’un bras manipulateur série nature de la i-ème liaison du bras manipulateur, on définit le paramètre : ( 0, pour une liaison rotoïde, i = 1, pour une liaison prismatique. On désigne fréquemment les bras manipulateurs en acollant les lettres R (pour rotoïde) et P (pour prismatique) pour décrire la succession des liaisons. Par exemple un bras manipulateur de type anthropomorphe sera désigné par le sigle 6R alors qu’un bras manipulateur de type SCARA sera de type RRP ou RRP R (il existe plusieurs variantes). 2.2 Paramètres de Denavit-Hartenberg modifiés La technique la plus répandue 1 pour décrire la géométrie d’un bras manipulateur consiste à utiliser les paramètres de Denavit-Hartenberg modifiés [Khalil 86]. On associe au i-ème corps le repère Ri = (Oi , xi , y i , z i ), avec i = 0, 1, . . . , n. Pour placer les repères R1 à Rn 1 selon la règle des paramètres de Denavit-Hartenberg modifiés, il convient de suivre les règles suivantes (voir figure 2.3 page ci-contre), pour i = 2, 3, . . . , n : – Oi 1 est le pied de la perpendiculaire commune aux axes des liaisons Li 1 et Li , situé sur Li 1 . Si les axes des liaisons sont parallèles, il faut choisir arbitrairement une perpendiculaire commune ; – xi 1 est le vecteur unitaire de cette perpendiculaire commune, orienté de Li 1 vers Li . Si les axes des deux liaisons sont concourants ou confondus, l’orientation est arbitraire (règle avant, droite, haut) ; – z i 1 est un vecteur unitaire de l’axe de la liaison Li 1 , librement orienté. On privilégie généralement les débattements positifs pour les liaisons prismatiques et on symétrise généralement par rapport à 0 le débattement des liaisons rotoïdes ; – y i 1 est tel que le repère Ri 1 soit orthonormé direct. Ensuite, le repère R0 est défini librement en suivant des considérations de simplicité. De même, le point On est choisi de façon à annuler un maximum de paramètres. Un point On+1 est associé à l’OT du bras manipulateur, selon des critères opérationnels : typiquement, si le bras manipulateur est équipé d’une pince, le point On+1 représentera le centre de ses mors. On choisit alors enfin Rn de sorte que le point On+1 se situe dans le plan Ri = (On , xn , z n ), conformément à la figure 2.4. 1. A la fois celle à laquelle on attribue la plus grande généralité [Gorla 01] et la plus intuitive en pratique. 2.2. Paramètres de Denavit-Hartenberg modifiés ↵i 19 zi 1 xi Oi zi zi 1 ri Oi 1 xi zi 1 ai 1 xi ⌦i 1 xi axe liaison Li 1 ✓i 1 axe liaison Li F IGURE 2.3 – Paramètres de Denavit-Hartenberg modifiés Les repères étant choisis, la situation du repère d’un corps respectivement à celle du repère du corps suivant peut être définie conformément à la figure 2.3. Les paramètres ↵i 1 , ai 1 , ✓i et ri , avec i = 1, 2, . . . , n, placés sur cette figure sont appelés paramètres de Denavit-Hartenberg modifiés. Textuellement, on peut les définir comme suit : – ↵i 1 : angle algébrique entre z i 1 et z i , mesuré autour de xi 1 ; – ai 1 : distance arithmétique de la perpendiculaire commune aux axes des liaisons Li 1 et Li mesurée le long de xi 1 ; – ✓i : angle algébrique entre xi 1 et xi , mesuré autour de z i ; – ri : distance algébrique du point Oi à la perpendiculaire, mesurée le long de z i . Les paramètres de Denavit-Hartenberg modifiés permettent de déterminer de manière unique la configuration des corps et donc la géométrie du bras manipulateur. Lorsque rn+1 zn On+1 z On O y xn an x F IGURE 2.4 – Placements respectifs des repères Rn et du point On+1 20 2. Description des bras manipulateurs l’on modélise une bras manipulateur, il est souhaitable de représenter celui-ci dans une configuration particulière, pour visualiser plus facilement les paramètres et annuler certains paramètres constants. On obtient alors la valeur des les paramètres constants ↵i 1 et ai 1 et la configuration des liaisons décrite par les paramètres ✓i et ri variables. 0 Exemple A titre d’exemple, paramétrer le bras manipulateur de type 6R présenté à la figure 2.5. a2 r4 z0 , z1 r7 x3 x4 , x 5 , x 6 O0 , O 1 , O 2 O3 O7 O4 , O 5 , O 6 z3 z2 Organe terminal z4 , z6 x0 , x 1 , x 2 z5 articulation i 1 2 3 4 5 6 0 0 a2 0 ⇡ 2 0 0 ⇡ 2 0 0 ⇡ 2 0 ↵i 1 0 ai 1 0 0 ⇡ 2 0 ✓i q1 q2 q3 q4 q5 q6 ri 0 0 0 r4 0 0 i 0 F IGURE 2.5 – Repérage et paramétrage d’un bras manipulateur de type 6R selon la méthode des paramètres de Denavit-Hartenberg modifiés 2.3 Ti 1, i Relations géométriques Conformément au paramétrage de Denavit Hartenberg modifié, la matrice de transformation entre les corps Ci 1 et Ci est donc : 10 10 0 10 1 1 0 0 0 1 0 0 ai 1 cos ✓i sin ✓i 0 0 1 0 0 0 B0 cos ↵i 1 B CB CB C sin ↵i 1 0C C B0 1 0 0 C B sin ✓i cos ✓i 0 0C B0 1 0 0 C =B @0 sin ↵i 1 cos ↵i 1 0A @0 0 1 0 A @ 0 0 1 0 A @0 0 1 r i A 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 | {z }| {z }| {z }| {z } R(xi 1, ↵i 1) translation de ai 1 xi 1 R(z i , ✓i ) translation de ri z i 2.4. Relations cinématiques 21 soit : Ti 1, i 0 cos ✓i sin ✓i Bcos ↵i 1 sin ✓i cos ↵i 1 cos ✓i =B @ sin ↵i 1 sin ✓i sin ↵i 1 cos ✓i 0 0 qui prend la forme : Ti 1, i = ✓ Ri 1, i 0 sin ↵i 1 cos ↵i 1 0 pi 0 où Ri 1, i représente la rotation entre les repères Ri ces mêmes repères. 2.4 1, i 1 1 1 ai 1 ri sin ↵i 1 C C ri cos ↵i 1 A 1 ◆ et Ri et pi 1, i (2.1) la translation entre Relations cinématiques On considère la i ème liaison, d’axe z i . Les autres axes étant fixes, une vitesse q̇i de l’axe i engendre une vitesse linéaire ṗi du point On et une vitesse de rotation ⌦i du repère Rn par rapport au repère fixe R0 . Le cas d’une liaison prismatique d’axe z i est illustré à la figure 2.6. Il en résulte que : ṗi = q̇i z i On q̇i z i Oi axe liaison Li F IGURE 2.6 – Vitesse du point On pour une vitesse q̇i de la i ème liaison, dans le cas d’une liaison prismatique ṗi = q̇i z i ⌦i = 0. Le cas d’une liaison rotoïde d’axe z i est illustré à la figure 2.7 page suivante. Il en résulte que : ṗi = q̇i z i ⇥ pi,n ⌦i = q̇i z i 22 2. Description des bras manipulateurs pi = q̇i z i ⇥ pi,n On pi,n ⌦i = q̇i z i Oi axe liaison Li F IGURE 2.7 – Vitesse du point On pour une vitesse q̇i de la i ème liaison, dans le cas d’une liaison rotoïde où pi,n = Oi On . En utilisant le paramètre i et son complément à 1 ¯i on peut regrouper ces relations et obtenir, pour une liaison quelconque : ṗi = ( i z i + ¯i z i ⇥ pi,n )q̇i ⌦i = (¯i z i ) q̇i . (2.2) (2.3) Chapitre 3 Modélisation des bras manipulateurs 3.1 Configuration et situation d’un bras manipulateur De manière classique, la configuration d’un système mécanique est connue quand la position de tous ses points dans R0 est connue [Neimark 72]. Pour un bras manipulateur, elle est définie par un vecteur q de n coordonnées indépendantes appelées coordonnées généralisées. La configuration est alors naturellement définie sur un espace N dont la dimension n est appelée indice de mobilité. N est appelé espace des configurations. Les coordonnées généralisées correspondent aux grandeurs caractéristiques des différentes articulations : angles de rotation pour les liaisons rotoïdes, translations pour les liaisons prismatiques. On note q = (q1 q2 . . . qn )T . La situation x de l’OT du bras manipulateur est alors définie par m coordonnées indépendantes dites coordonnées opérationnelles, qui donnent la position et l’orientation de l’OT dans R0 . On définira généralement la situation en fonction de la tâche à accomplir : par exemple on pourra ne considérer que la position de l’OT et non plus son orientation. Dans tous les cas, la situation de l’OT est définie sur un espace M, de dimension m 6 6, appelé espace opérationnel [Khatib 86]. On note x = (x1 x2 . . . xm )T . Le choix le plus commun pour les paramètres de position est celui des coordonnées cartésiennes. L’expression de l’orientation de l’OT dépend du choix des paramètres angulaires (voir section 1.2.7). 3.2 3.2.1 Modèle géométrique direct Définition Le modèle géométrique direct (MGD) d’un bras manipulateur exprime la situation de son OT en fonction de sa configuration 1 : f: N ! M q 7 ! x = f (q). 1. Autrement dit ses coordonnées opérationnelles en fonction de ses coordonnées généralisées. (3.1) 24 3. Modélisation des bras manipulateurs 3.2.2 Calcul Le calcul du MGD consiste donc à exprimer la position du point On+1 et l’orientation du repère Rn lié à l’OT, en fonction de sa configuration. Il faut pour cela multiplier les matrices de passage homogènes successives reliant le repère R0 lié au bâti au repère Rn lié à l’OT : T0,n (q) = T0,1 (q1 ) T1,2 (q2 ) . . . Tn 1,n (qn ). (3.2) La matrice : T0,n = ✓ R0,n p0,n 0 1 ◆ permet donc de connaître l’orientation de l’OT dans le repère de base et la position p0,n = (px py pz )T du point On . Comme précédemment, on note : R0,n 0 1 xx yx z x = @ xy yy z y A xz yz z z et l’on rappelle qu’il suffit de connaître les première et troisième colonne de cette matrice pour définir de manière unique l’orientation du repère terminal. La position (x1 x2 x3 )T du point On+1 se déduit alors facilement, compte tenu des coordonnées (an 0 rn+1 )T de On+1 dans Rn : x1 = px + an xx + rn+1 zx , x2 = py + an xy + rn+1 zy , (3.3) x3 = pz + an xz + rn+1 zz . 3.2.3 Règles pratiques Les règles précédentes permettent de programmer aisément le calcul numérique du MGD. Le calcul analytique permet de diminuer de manière conséquente le nombre d’opérations. Pour cela la connaissance de certaines règles et propriétés permet de simplifier le calcul : – les notations étant généralement lourdes, on adopte un certain nombre de conventions. On note, pour i, j, . . . compris entre 1 et n : Si Ci Si+j Ci+j = = = = ... sin qi cos qi sin (qi + qj ) cos (qi + qj ) Par ailleurs à chaque nouvelle opération effectuée on définit une variable intermédiaire qui permet de n’effectuer qu’une fois un produit ou une addition survenant à de nombreuses reprises ; – si l’on mène le calcul en effectuant le produit (3.2) à rebours (de droite à gauche) on peut s’abstenir de calculer la seconde colonne des différentes matrices. En effet, si l’on considère le produit de deux matrices de passage homogènes A et B, avec 3.2. Modèle géométrique direct 0 a11 a12 a13 Ba21 a22 a23 B @a31 a32 a33 0 0 0 25 B possédant une seconde colonne indéterminée donne : 10 0 b11 Bb21 0C CB 0A @b31 1 0 ⇤ b13 ⇤ b23 ⇤ b33 0 0 1 0 0C C= 0A 1 0 a11 b11 + a12 b21 + a13 b31 Ba21 b11 + a22 b21 + a23 b31 B @a31 b11 + a32 b21 + a33 b31 0 ⇤ a11 b13 + a12 b23 + a13 b33 ⇤ a21 b13 + a22 b23 + a23 b33 ⇤ a31 b13 + a32 b23 + a33 b33 0 0 1 0 0C C. 0A 1 – si deux transformations se composent aisément on effectue tout d’abord leur produit : c’est le cas en particulier de la transformation due à deux rotations successives d’axes parallèles. Par exemple si l’on considère deux rotations pures successives de q1 et q2 autour d’un même axe y 1 = y 2 : 0 10 1 0 1 C1 0 S1 0 C2 0 S2 0 C1+2 0 S1+2 0 B 0 1 0 0C B 0 1 0 0C B 0 1 0 0C B CB C B C @ S1 0 C1 0A @ S2 0 C2 0A = @ S1+2 0 C1+2 0A 0 0 0 1 0 0 0 1 0 0 0 1 3.2.4 Exemple On traite ici le cas du bras manipulateur de type 6R dont le paramétrage a été établi précédemment à la figure 2.5. On calcule tout d’abord les matrices de passage homogènes successives. D’après (2.1), on obtient : 0 1 0 1 C1 S1 0 0 C2 S2 0 0 B S1 C 1 0 0 C B0 0 1 0C C C T0, 1 = B T1, 2 = B @0 A @ 0 1 0 S2 C 2 0 0A 0 0 0 1 0 0 0 1 T2, 3 T4, 5 0 C3 B S3 = B @0 0 0 C5 B 0 = B @ S5 0 S3 C3 0 0 S5 0 C5 0 1 0 a2 0 0C C 1 0A 0 1 0 1 0 0 1 0 0C C 0A 1 T3, 4 T5, 6 0 C4 B0 = B @ S4 0 S4 0 C4 0 0 1 0 0 C6 B0 = B @ S6 0 S6 0 C6 0 0 1 0 0 0 1 0 r4 C C 0 A 1 1 0 0C C 0A 1 La multiplication des matrices, selon les règles précédemment énoncées fait apparaître les variables auxiliaires suivantes : D1 = a2 C2 D2 = a2 S2 D3 = C5 C6 D4 = S5 C 6 D5 = C4 D3 S4 S6 D6 = C4 S5 D7 = S4 D3 + C4 S6 D8 = S4 S5 D9 = C2+3 D5 + S2+3 D4 D10 = C2+3 D6 + S2+3 C5 D11 = r4 S2+3 + D1 26 3. Modélisation des bras manipulateurs px py pz xx xy xz zx zy zz yx yy yz = = = = = = = = = = = = C1 D11 S1 D11 r4 C2+3 + D2 C 1 D9 + S 1 D7 S 1 D9 C 1 D7 S2+3 D5 C2+3 D4 C1 D10 + S1 D8 S1 D10 C1 D8 S2+3 D6 C2+3 C5 z y xz z z xy z z xx z x xz z x xy z y xx La situation est alors donnée par : – position dans R0 : x 1 = p x + r7 z x x 2 = p y + r7 z y x 3 = p z + r7 z z – orientation dans R0 , avec les cosinus directeurs incomplets : x4 = xx x5 = xy x6 = xz x7 = z x x8 = z y x9 = z z – orientation dans R0 , avec les angles d’Euler calssiques : – si zz 6= ±1 : x4 = = atan2(zx , zy ) x5 = ✓ = acos zz x6 = ' = atan2(xz , yz ) – si zz = 1 : x5 = ⇡(1 zz )/2 x6 + zz x6 = atan2( yx , xx ) 3.3 3.3.1 Modèle géométrique inverse Définition Le modèle géométrique inverse (MGI) d’un bras manipulateur permet d’obtenir la ou les configurations correspondant à une situation de l’OT donnée. Un MGI est donc tel que : f 1 : M ! N (3.4) x 7 ! q = f 1 (x). La résolubilité du MGI, c’est-à-dire l’existence d’un nombre fini de solutions est fondamentale en matière de conception. Supposons que la situation x d’un bras manipulateur à n liaisons soit exprimée par un nombre m minimal de paramètres (voir section 3.3. Modèle géométrique inverse 27 1.2.7). Supposons par ailleurs que x soit une situation accessible par le bras manipulateur, c’est-à-dire que la situation appartient à l’ espace de travail 2 . Alors (dans la majorité des cas) : – si n < m, il n’existe pas de solution au MGI ; – si n = m, il existe un nombre fini de solutions en dehors de certaines configurations, appelées configurations singulières ; – si n > m, il existe une infinité de solutions. On sait que dans les cas où n < 6 les bras manipulateurs sont tous solubles, c’est-à-dire qu’il existe une solution connue au MGI. C’est aussi le cas de la plupart des structures à six liaisons, notamment celles possédant un poignet sphérique (trois dernières liaisons rotoïdes concourantes). Enfin, seul le calcul du MGI permet de connaître le nombre de solutions. 3.3.2 Calcul Il n’existe pas de méthode analytique systématique pour calculer le MGI. Le mieux est de reprendre les équations du MGD, préalablement calculé et de mener le calcul à l’envers. Le calcul se fait alors au cas par cas. Il est généralement aisé pour un bras manipulateur à moins de six axes, comme les bras manipulateur de type SCARA. Dans le cas où n = 6, l’existence d’un poignet sphérique permet de débuter la résolution par l’inversion du système 3.3, soit : px = x1 py = x2 pz = x3 an x x an x y an x z rn+1 zx , rn+1 zy , rn+1 zz . On résout ensuite le système d’équations non-linéaires que constitue le MGD, pour exprimer les qi , pour i = 1, 2, . . . , n en fonction de px , py , pz et des cosinus directeurs. 3.3.3 Exemple Reprenons l’exemple du bras manipulateur de type 6R. On détermine tout d’abord les coordonnées du point On , centre du poignet sphérique : p x = x 1 r7 z x p y = x 2 r7 z y p z = x 3 r7 z z Ensuite, on résout les autres équations : p D11 = "1 p2x + p2y ! 2 solutions "1 = ±1 2. Il n’est pas toujours facile de savoir si c’est le cas. 28 3. Modélisation des bras manipulateurs Si D11 = 0 : q1 indéterminé ! FIN sinon : x C1 = Dp11 py D11 S1 = q1 = atan2(S1 , C1 ) 2 +p2 (r 2 +a2 ) D11 z 4 2 2a2 r4 S3 = C 3 = "3 q3 p 1 S32 = atan2(S3 , C3 ) ! 2 solutions "3 = ±1 (r4 C3 )D11 +(r4 S3 +a2 )pz 2 +p2 D11 z S2 = C2 = q2 = atan2(S2 , C2 ) S2+3 = C2+3 = (r4 C3 )pz +(r4 S3 +a2 )D11 2 +p2 D11 z D11 a2 C2 r4 pz +a2 S2 r4 D10 = C 1 z x + S1 z y D8 = S1 z x D9 = C 1 x x + S1 x y D7 = S1 x x D6 = C2+3 D10 + S2+3 zz C5 = S2+3 D10 D5 = C2+3 D9 + S2+3 xz D4 = S2+3 D9 C2+3 xz p = "5 D62 + D82 ! 2 solutions "5 = ±1 S5 q5 C1 z y C1 xy C2+3 zz = atan2(S5 , C5 ) Si S5 = 0 : q4 indéterminé ! FIN sinon : 6 C4 = D S5 D8 S5 S4 = q4 = atan2(S4 , C4 ) D3 = C4 D5 + S4 D7 S6 = S4 D5 + C4 D7 C6 = C5 D3 q6 S5 D4 = atan2(S6 , C6 ) ! FIN 3.4. Modèle cinématique direct 3.4 3.4.1 29 Modèle cinématique direct Définition Le modèle cinématique direct (MCD) du bras manipulateur donne la relation entre les vitesses opérationnelles ẋ et les vitesses généralisées q̇ du bras manipulateur : (3.5) ẋ = J q̇, où J = J(q) est la matrice jacobienne de la fonction f , de dimension m ⇥ n : J : Tq N ! Tx M q̇ 7 ! ẋ = J q̇, où J = @f . @q La matrice jacobienne représente l’application linéaire df entre les espaces Tq N et Tx M, respectivement tangents à N en q et à M en x = f (q). On peut alternativement définir le modèle différentiel direct (MDD) qui donne l’accroissement infinitésimal dx de la situation en fonction d’un accroissement dq de la configuration : dx = Jdq. 3.4.2 Calcul On souhaite calculer la vitesse opérationnelle ẋ résultant de la vitesse généralisée q̇. Dans un premier temps, on calcule la vitesse du point On et la vitesse de rotation du repère Rn en appliquant le principe de superposition. On obtient, d’après (2.2) et (2.3) : ṗ = ⌦ = n X i=1 n X ( i z i + ¯i z i ⇥ pi,n )q̇i , (¯i z i ) q̇i . i=1 On obtient alors : avec : ✓ Jg = 1 z 1 + ¯1 z 1 ⇥ p1,n ¯1 z 1 ✓ ◆ ṗ = J g q̇ ⌦ 2 z 2 + ¯2 z 2 ⇥ p2,n ¯2 z 2 ... ... n z n + ¯n z n ⇥ pn,n ¯n z n ◆ une matrice vectorielle de dimension 2 ⇥ n. Si l’on projette cette relation dans le repère R0 lié au bâti : ✓ ◆ ṗ = Jg q̇ ⌦ où ṗ et ⌦ sont les coordonnées respectives de ṗ et ⌦. 30 3. Modélisation des bras manipulateurs Pour obtenir J, matrice jacobienne de f il convient alors d’exprimer la vitesse opérationnelle ẋ à partir de ṗ et ⌦. Concernant les dérivées de position, d’après (3.3), il vient : 0 1 0 1 0 1 0 0 1 0 11 ẋ1 ṗx ⌦x xx zx @ẋ2 A = @ṗy A + @⌦y A ⇥ @an @xy A + rn+1 @zy AA ẋ3 ṗz ⌦z xz zz soit encore, en transformant le produit vectoriel en produit matriciel : 0 1 0 1 0 1 ẋ1 ṗx ⌦x @ẋ2 A = @ṗy A + D @⌦y A ẋ3 ṗz ⌦z (3.6) avec : 0 0 D = @ an xz rn+1 zz an xy + rn+1 zy an xz + rn+1 zz 0 an xx rn+1 zx 1 an xy rn+1 zy an xx + rn+1 zx A . 0 En ce qui concerne l’orientation, définie par les paramètres x4 , x5 , . . . xm , on note C la matrice de dimensions (m 3) ⇥ 3 faisant la correspondance entre les vitesses de rotation de l’OT et les dérivées des paramètres angulaires choisis 3 : 0 1 0 1 ẋ4 ⌦x B ẋ5 C B C = C @ ⌦y A . (3.7) @. . .A ⌦z ẋm En regroupant (3.7) et (3.6), on obtient : ✓ ◆✓ ◆ ✓ ◆ I D ṗ I D ẋ = = Jg q̇, 0 C ⌦ 0 C ce qui permet finalement d’établir la jacobienne : ✓ ◆ I D J= Jg . 0 C 3.4.3 Règles pratiques On montre [Renaud 86] que l’on peut considérablement diminuer la complexité du calcul analytique du modèle en établissant la matrice Jg par la relation : ✓ ◆✓ ◆ ✓ ◆✓ ◆ R0,1 0 R1,2 0 Rk 1,k 0 I p̂k+1,n |Rk Jg = ... Jk+1 |Rk 0 R0,1 0 R1,2 0 Rk 1,k 0 I avec : – k = Ent( n2 ) , où Ent est la fonction partie entière et k est le nombre appelé indice préférentiel. Ceci est d’autant plus intéressant quand le robot possède six articulations, car alors p̂4,6 = 0 si le robot est muni d’un poignet sphérique ; 3. Pour obtenir cette matrice se référer à un ouvrage classique de mécanique ou de robotique ou à [Renaud 96]. 3.4. Modèle cinématique direct 31 – p̂k+1,n |Rk la matrice anti-symétrique associée à la projection de pk+1,n dans Rk ; – Jk+1 |Rk la projection dans Rk de : J k+1 = ✓ 1 z 1 + ¯1 z 1 ⇥ p1,k+1 ¯1 z 1 2 z 2 + ¯2 z 2 ⇥ p2,k+1 ¯2 z 2 ... ... n z n + ¯n z n ⇥ pn,k+1 ¯n z n ◆ Enfin, on notera que le calcul du MCD ne passe pas nécessairement par celui de la matrice jacobienne. Si l’on n’a pas besoin de la matrice jacobienne, on pourra se contenter d’exprimer ẋ en fonction de q̇ en un nombre minimal d’opérations, à l’image de ce qui a été fait pour le MGD. 3.4.4 Exemple Reprenons l’exemple du bras manipulateur de type 6R. Dans ce cas, comme n = 6, k = 3. On calcule donc la matrice J4 |R3 . Comme toutes les liaisons sont rotoïdes, et que le bras se finit par un poignet sphérique (p4,5 = p4,6 = 0) : ! J4 = z 1 ⇥ p1,4 z 2 ⇥ p2,4 z 3 ⇥ p3,4 0 0 0 z1 z2 z3 z4 z5 z6 Pour projeter cette matrice vectorielle dans le repère R3 , le mieux est d’exprimer ses composantes vectorielles en fonction des vecteurs de la base R3 , ce qui donnera directement la projection. On a tout d’abord : z2 z4 (x1 y 1 z 1 )T soit z 1 (x5 y 5 z 5 )T soit z 5 (x6 y 6 z 6 )T soit z 6 = = = = = = = = z3, y3, R1,3 (x3 y 3 z 3 )T S2+3 x3 + C2+3 y 3 , R3,5 (x3 y 3 z 3 )T S4 x 3 + C 4 z 3 , R3,6 (x3 y 3 z 3 )T D6 x3 C5 y 3 + D8 z 3 . Alors on effectue le calcul des composantes manquantes : z 3 ⇥ p3,4 = = = z 2 ⇥ p2,4 = = = = z 3 ⇥ r4 z 4 , z 3 ⇥ r4 ( y 3 ), r4 x 3 . z 2 ⇥ (p2,3 + p3,4 ), z 3 ⇥ ( r4 y 3 + a2 x2 ), z 3 ⇥ ( r4 y 3 + a2 (C3 x3 S3 y 3 )), (r4 + a2 S3 )x3 + a2 C3 y 3 . et enfin : z 1 ⇥ p1,4 = z 1 ⇥ (p1,2 + p2,4 ), = (S2+3 x3 + C2+3 y 3 ) ⇥ (a2 C3 x3 (r4 + a2 S3 )y 3 ), = z 3 ⇥ ( r4 y 3 + a2 (C3 x3 S3 y 3 )), = D11 z 3 . 32 3. Modélisation des bras manipulateurs On pose donc : E 1 = a2 S 3 + r 4 , E 2 = a2 C 3 et l’on a : 0 J4 | R 3 Alors : 0 E 1 r4 B 0 E2 0 B B D11 0 0 =B B S2+3 0 0 B @ C2+3 0 0 0 1 1 Jg = ✓ R0,1 0 0 R0,1 0 0 0 0 1 0 0 0 0 S4 0 C4 1 0 0 C C 0 C C. D6 C C C5 A D8 ◆✓ ◆✓ ◆ R1,2 0 R2,3 0 J| 0 R1,2 0 R2,3 4 R3 Avec les variables intermédiaires suivantes, on obtient alors la matrice Jg : E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 E14 E15 E16 E17 E18 E19 E20 E21 E22 E23 E24 E25 E26 E27 E28 E29 E30 = = = = = = = = = = = = = = = = = = = = = = = = = = = = C2+3 E1 S2+3 E2 C2+3 r4 C2+3 S4 C2+3 D6 + S2+3 C5 S2+3 E1 + C2+3 E2 S2+3 r4 C1 S2+3 S1 C 4 + C 1 E 5 C 1 E 6 + S 1 D8 S1 S2+3 S1 E 5 C 1 C 4 S 1 E 6 C 1 D8 S2+3 S4 S2+3 D6 C2+3 C5 D11 S1 zy r7 E 3 z z r7 C1 E18 E 4 z z r7 C1 E20 (C2+3 zy + E12 zz )r7 ( E15 zy + E13 zz )r7 D11 C1 + zx r7 S1 E18 S1 E20 ( C2+3 zx E9 zz )r7 (E15 zx E10 zz )r7 (C1 zx + S1 zy )r7 E7 + E29 3.4. Modèle cinématique direct 33 E31 = E8 + E29 E32 = ( E12 zx + E10 zy )r7 E33 = ( E14 zx + E11 zy )r7 avec : 0 E17 BE24 B B 0 Jg = B B 0 B @ 0 1 E19 E25 E30 S1 C1 0 E21 E26 E31 S1 C1 0 E22 E27 E32 E9 E12 C2+3 On en termine par : E34 E35 E36 E37 E38 E39 1 E23 0 E28 0 C C E33 0 C C E10 E11 C C E13 E14 A E15 E16 = cos = sin = E35 / sin ✓ = E34 / sin ✓ = E36 cos ✓ = E37 cos ✓ Finalement : ẋ = avec : 0 1 B0 ✓ ◆ B B0 I D =B B0 0 C B @0 0 ✓ 0 1 0 0 0 0 ◆ I D Jg q̇, 0 C 0 0 1 0 0 0 0 r7 z z r7 z x E38 E34 E36 r7 z z 0 r7 z x E39 E35 E37 1 r7 z y r7 z x C C 0 C C 1 C C 0 A 0 Partie II Commande des robots manipulateurs Chapitre 4 Génération de mouvements 4.1 Les différents problèmes Une fois connus les modèles d’un robot manipulateur, ceux-ci peuvent être utilisés pour déterminer la position et l’orientation de l’organe terminal, afin de réaliser une tâche donnée. Selon la nature de la tâche à effectuer on distinguera des problèmes dits point-à-point et des problèmes dits à trajectoire ou mouvement imposé. Dans le premier cas le mouvement du robot s’effectuera d’une configuration (point) à une autre, la trajectoire entre les deux étant libre. Dans le second cas, la trajectoire ou le mouvement du robot seront imposés, soit dans l’espace des configurations, par exemple pour éviter des obstacles, soit dans l’espace opérationnel, par exemple pour que l’organe terminal se déplace en ligne droite. Il existe donc plusieurs problèmes très différents de génération de mouvements pour un robot manipulateur, selon que la tâche impose l’un ou l’autre de ces scénarios. 4.1.1 Problèmes point-à-point Le cas le plus classique est celui ou l’on doit atteindre une position et une orientation désirées xf de l’organe terminal, à partir d’une configuration de départ q0 . Dans ce cas précis, il suffit d’obtenir à l’aide du modèle géométrique inverse la configuration qf associée à xf . Le problème s’exprime ensuite uniquement dans l’espace articulaire, comme représenté sur la figure 4.1. xf MGI qf génération de mouvement q0 qr (t) variateur robot q(t) capteur F IGURE 4.1 – Principe de la commande point-à-point, dans l’espace articulaire. Comme souligné par Khalil et Dombre [Khalil 04, Khalil 13], la génération de mouvements point-à-point dans l’espace articulaire présente plusieurs avantages : 1) moins 38 4. Génération de mouvements de calculs en ligne, puisque l’on n’a pas besoin des modèles une fois calculée la configuration cible ; 2) aucun problème au passage des configurations singulières ; 3) les contraintes telles que vitesses et couples maximums sont prises en compte au niveau de la génération de mouvements (de consigne) du robot, entre les deux configurations. En revanche, la prise en compte des contraintes géométriques entre le point de départ et le point d’arrivée est impossible : pas de gestion des auto-collisions, ni des collisions du robot avec l’environnement. C’est la raison pour laquelle ces mouvements point-à-point conviennent bien à des robots industriels qui ont un espace de travail compact, avec peu ou pas d’auto-collisions possibles entre deux points de cet espace de travail, et qui évoluent dans des environnements peu encombrés. C’est en particulier le plus souvent le cas des robots qui travaillent dans des cellules dédiées, comme à la figure 4.2. F IGURE 4.2 – Cellule robotisée et robot Epson SCARA. 4.1.2 Problèmes à mouvement opérationnel imposé Dans le cas où le mouvement opérationnel est imposé, il s’agit de calculer les commandes articulaires du robot permettant de suivre au mieux la trajectoire opérationnelle au cours du temps, comme représenté sur la figure 4.3. xf génération de mouvement xr (t) + cinématique inverse x(t) x0 qr (t) variateur robot q(t) MGD capteur F IGURE 4.3 – Principe de la commande point-à-point, dans l’espace articulaire. 4.1. Les différents problèmes 39 Le mouvement à suivre xr (t) peut résulter d’une génération préalable, comme par exemple si l’on souhaite que l’organe terminal suive une ligne droite entre la situation courante x0 et la situation finale xf (exemple figure 4.4). Dans ce cas, il ne s’agit pas d’une tâche point-à-point, puisque la trajectoire entre le point initial et le point final est imposée. Dans d’autres cas, le mouvement opérationnel à suivre xr (t) sera complètement défini par la tâche, et ne nécessitera pas de planification préalable. F IGURE 4.4 – Tâche de soudage à l’arc de tubes, robot ABB. La résolution de ce type de problème permet bien sûr de réaliser des tâches plus complexes que les tâches point-à-point. Cette approche permet par ailleurs de reformuler les problèmes de commande selon une approche dite référencée capteur, ou l’on utilise des capteurs extéroceptifs (des caméras par exemple) pour asservir la situation de l’organe terminal du robot. En revanche, elle rend difficile, voire impossible, une prise en compte systématique des contraintes telles que les butées articulaires, les limites de vitesse ou l’évitement des obstacles. Elle oblige à utiliser à chaque itération un ou plusieurs modèles du robot pour traduire en commande articulaire la position (ou la vitesse) désirée au niveau de l’organe terminal, et pour reconstruire la situation de l’organe terminal à partir des mesures des capteurs placés au niveau des articulations. Enfin, ce type de commande peut être mis en échec lors du passage par une configuration singulière dans laquelle la continuité de la commande ne sera plus assurée, le problème de cinématique inverse n’ayant alors plus de solution. Il existe évidemment certaines solutions aux différents problèmes posés, mais nous ne les aborderons cependant pas dans le cadre de ce cours. Le lecteur intéressé pourra se référer à [Khatib 08] ou [Nakamura 91]. Notamment nous n’aborderons que très peu la notion de redondance et son utilisation pour résoudre les problèmes de commande. 40 4. Génération de mouvements 4.2 Système de commande d’un robot D’après les explications précédentes, on aura compris que la commande d’un robot doit permettre différentes fonctionnalités. En particulier, elle doit autoriser la génération et l’exécution de mouvements définis soit dans l’espace articulaire, soit dans l’espace opérationnel. Les fonctions principales sont des calculs de références et l’asservissement des actionneurs. Pour cela, il faut évidemment une architecture matérielle adaptée : – une partie puissance, qui réalise l’alimentation des actionneurs du robot et leur asservissement, afin que ceux-ci puissent fonctionner à vitesse variable ; – une partie contrôleur, pour générer les consignes du robot et assurer un certain nombre de fonctionnalités de supervision, de communication et de programmation. La figure 4.6 donne le schéma synoptique du système de commande d’un robot Adept Viper 650. On y retrouve la partie puissance (MB-60R) et la partie contrôleur (SmartController CX). Nous allons décrire l’architecture générale d’un dispositif de commande de robot à partir de cet exemple. F IGURE 4.5 – Système de commande d’un robot Adept Viper s650 [Adept 13b]. 4.2. Système de commande d’un robot 4.2.1 41 Contrôleur de robot Dans le système de commande de la figure 4.5, c’est le module Adept SmartController (figure 4.6) qui réalise la génération et la supervision du mouvement. Un tel système est en général générique, ce qui permet de n’avoir qu’un générateur de mouvement pour toute une famille de robots. Ce module utilise un système d’exploitation dédié, le V+ [Adept 13a], évolution de l’OS développé à l’époque d’Unimation, aux premières heures de la robotique. On doit connecter ce contrôleur à un PC par liaison Ethernet (la connexion clavier/souris/écran est aussi possible) afin de paramétrer le système ou programmer les mouvements du robot. Pour cela, on utilise le langage robotique développé pour le V+, dont une illustration est donnée par la séquence d’instructions de la table 4.1. Ce langage est interprété, et l’on peut programmer des scripts à l’aide de l’éditeur See. ; Define a simple transformation SET loc_a = TRANS(300,50,350,0,180,0) ; Move to the location MOVE loc_a BREAK ; Move to a location offset -50mm in X, 20mm in Y, ; and 30mm in Z relative to "loc_a" MOVE loc_a :TRANS(-50, 20, 30) BREAK ; Define "loc_b" to be the current location relative ; to "loc_a" HERE loc_a :loc_b ;loc_b = -50, 20, 30, 0, 0, 0 BREAK ; Define "loc_c" as the vector sum of "loc_a" and "loc_b" SET loc_c = loc_a :loc_b ;loc_c = 350, 70, 320, 0, 180, 0 Once this code has run, loc_b exists as a transformation that is completely independent of loc_a. The following instruction moves the robot another -50mm in the x, 20mm in the y, and 30mm in the z direction (relative to loc_c) : MOVE loc_c :loc_b Multiple relative transformations can be chained together. If we define loc_d to have the value 0, 50, 0, 0, 0, 0 : SET loc_d = TRANS(0,50) and then issue the following MOVE instruction : MOVE loc_a :loc_b :loc_d the robot moves to a position x = -50mm, y =70mm, and z = 30mm relative to loc_a. TABLE 4.1 – Exemple de séquence d’instructions en V+ [Adept 13a]. Ceci suffit généralement à la plupart des fonctionnalités requises pour utiliser des robots dans un contexte industriel, moyennant le fait que le contrôleur de robot puisse échanger des entrées/sorties avec des dispositifs tiers (convoyeur, automate, capteurs) en utilisant un des bus de communication et le protocole associé (figure 4.6). Adept utilise en particulier la liaison IEEE 1394 (FireWire) pour la communication avec le contrôleur, qui autorise des transferts à haut débit (800 Mb/s pour le FireWire 800). Celle-ci présente l’intérêt d’être cadencée à fréquence élevée, à 8kHz, et de permettre un fonctionnement dit en temps-réel. Ceci implique qu’outre la validité des données transférées, le bus est aussi capable de garantir le cadencement temporel. Le contrôleur dispose de nombreuses autres possibilités de communication (Fast Ethernet, DeviceNet=bus terrain CAN, liaisons séries RS-232, XDIO=entrées/sorties tout ou rien, etc.). Dans le cas du SmartController Adept, on dispose aussi de fonctionnalités dédiées à la commande du robot par vision, ou au pilotage du robot de manière coordonnée avec un convoyeur automatisé. Ceci s’explique par la destination industrielle de ce type de robots. 42 4. Génération de mouvements F IGURE 4.6 – Entrées-sorties Adept SmartController CX [Adept 13b]. Un connecteur particulier (XMPC) permet de relier au SmartController un boîtier de commande manuelle (pendant en anglais, figure 4.7). A l’aide de celui-ci, on peut accéder à un large jeu de fonctionnalités, notamment au pilotage manuel des mouvements articulaires, dans le repère de base ou dans le repère outil. Ce système est notamment pratique pour apprendre de façon interactive des configurations particulières ou un cycle de fonctionnement. On peut notamment enregistrer des variables (configurations par exemple), qui seront par la suite disponibles pour être utilisées dans les programmes. Pour des raisons de sécurité le pendant du robot est généralement associé à un interrupteur qu’il faut maintenir pour que les moteurs du robot soient alimentés. F IGURE 4.7 – Boîtier de commande manuelle T1 Adept [Adept 13b]. 4.2. Système de commande d’un robot 4.2.2 43 Variateur de vitesse Les puissances mises en jeu dans les systèmes de commande de robots sont très variables, et dépendent beaucoup des masses en mouvement et des vitesses de déplacement autorisées. A titre d’exemple, un robot Adept Viper s650 consommera une puissance maximale de 2kW (pendant un temps limité à environ 100 ms) s’il porte une charge utile de 5 kg et que toutes les articulations bougent en même temps. Pour fournir au robot la puissance suffisante, ainsi que pour piloter la vitesse ou la position des axes, on utilise un variateur de vitesse, système qui combine des technologies issues de l’électrotechnique et de l’automatique. Le variateur MotionBlox-60R, utilisé dans le système de commande de la figure 4.5, autorise deux grandes fonctions pour la commande du robot : – l’alimentation des moteurs par une tension variable ; – l’asservissement du courant, ainsi que de la vitesse ou de la position de chacun des axes du robot. Les références des asservissements de position ou de vitesse sont transmises au variateur de vitesse MB-60R par le contrôleur de robot, à une fréquence de 1kHz, sensiblement inférieure à la fréquence maximale de la liaison FireWire. Ceci s’explique par la nécessité d’échanger par ailleurs entre le variateur et le contrôleur différentes informations (valeurs codeurs, statuts par exemple), qui permettent la supervision du robot. Le variateur de vitesse, qui gère la partie puissance, comporte aussi des fonctionnalités permettant le diagnostic du bon fonctionnement des moteurs (leds de statut, erreur de position, chauffe des moteurs notamment). Par ailleurs, il gère l’électronique permettant le contrôle des freins présents sur les axes moteurs du robot (un connecteur électrique et un sélecteur manuel permettent de relâcher les freins, si besoin). Enfin, il dispose d’un arrêt d’urgence pour couper la puissance du robot. Chapitre 5 Technologie 5.1 Motorisation La motorisation des axes des robots résulte le plus souvent de l’association d’un moteur électrique avec un réducteur de vitesse. Cet ensemble dit moto-réducteur est alimenté par un dispositif électronique appelé convertisseur statique. Equipé d’un capteur de position, le moto-réducteur peut être asservi en position ou vitesse. Le système d’électronique de puissance, associant convertisseur et asservissements est généralement appelé variateur de vitesse. Il est adapté à la technologie de moteur considérée. 5.1.1 Moteurs électriques pour la robotique Un moteur est un dispositif électromécanique qui convertit une énergie électrique d’entrée en énergie mécanique. Les moteurs électriques existants ne sont pas tous adaptés à la robotique. Les moteurs dédiés à la robotique sont généralement des dispositifs de faible à moyenne puissance, typiquement < 1kW. Ils doivent pouvoir être commandés précisément avec un bonne résolution angulaire. De ce fait, des actionneurs comme les moteurs pas-à-pas ou les moteurs asynchrones sont peu répandus en robotique. Les premiers sont en effet le plus souvent réservés à une utilisation en boucle ouverte, dotés d’un faible couple et d’une précision médiocre. Les seconds sont le plus souvent réservés aux fortes puissance, par exemple pour la traction électrique, et leur électronique est complexe et coûteuse. En robotique, les moteurs les plus fréquents sont les moteurs à courant continu, avec ou sans balais. 5.1.2 Moteurs à courant continu (avec balais) Le moteur à courant continu est un dispositif très ancien, dont la commercialisation remonte à la fin du 19ème siècle [Wikipedia 13]. Il fonctionne selon le principe de la figure 5.1. Le bobinage du moteur est disposé sur l’induit mobile (rotor). Ce bobinage est placé dans un champ magnétique, permanent ou non, produit par l’inducteur (stator). On supposera pour simplifier que cette excitation est séparée et constante, comme c’est le cas notamment lorsque l’inducteur est constitué d’aimants. Le courant circulant dans les spires de l’induit du moteur, des forces électriques lui sont appliquées et, grâce à un dispositif adapté (balais et collecteur, visibles sur la figure 5.2), les forces s’additionnent pour participer à la rotation. Ce principe de commutation mécanique du courant dans les 46 5. Technologie F IGURE 5.1 – Principe de fonctionnement d’un moteur à courant continu [Bernot 99]. spires du moteur n’est pas sans incidence sur le fonctionnement du moteur. Il en limite tout d’abord la vitesse maximale. Par ailleurs, les balais qui appuient sur le collecteur grâce à un système de ressorts sont en graphite pour permettre le passage du courant (et une usure maîtrisée). Le collecteur, qui est lui en cuivre, ne s’use pratiquement pas, ce qui est souhaitable puisque tout le bobinage est soudé sur ce collecteur. Le moteur à courant continu avec balais nécessite donc une maintenance régulière. Par ailleurs, le passage du courant à travers le contact glissant provoque parfois des étincelles, ce qui limite l’usage de ces moteurs dans certains environnements, explosifs notamment. F IGURE 5.2 – Moteur à courant continu Maxon (http://www.maxonmotor.com). 5.1. Motorisation 5.1.3 47 Moteurs à courant continu sans balais L’appellation de ces moteurs (héritée de l’anglais DC brushless motors) est trompeuse. Il ne s’agit en effet pas de moteurs à courant continu, mais de moteurs à courant alternatif : des moteurs synchrones auto-pilotés. Ils furent développés et commercialisés à partir de 1962 [Wikipedia 13], notamment pour palier les défauts des moteurs à courant continu, principalement dus au frottement des balais sur le collecteur. Les moteurs à courant continu sans balais ont ainsi un meilleur rendement, et des propriétés mécaniques meilleures. Ils offrent notamment de meilleurs couples massiques et des vitesses de rotation maximales plus grandes. Leur fonctionnement, sans frottements entre rotor et stator, leur confère une plus grande fiabilité et un temps de vie supérieur. Ils occasionnent moins de bruit de commutation et aucune étincelle. L’absence de bobinage au rotor permet souvent un refroidissement par simple convection, sans circulation forcée d’air vers l’extérieur. Ceci peut donc permettre une meilleure étanchéité. La vitesse de rotation reste limitée mécaniquement par les liaisons pivot entre bâti et rotor, et par l’échauffement qui a un effet sur l’efficacité des aimants. Ces moteurs présentent toutefois certains défauts (outre le prix), comme des effets d’ondulation de couple aux basses vitesses (cogging). Ces meilleures caractéristiques sont en revanche obtenues au prix d’un fonctionnement plus délicat à modéliser, et d’une électronique de commande plus complexe et plus coûteuse. Un moteur à courant continu sans balais est généralement équipé au rotor d’aimants placés dans le champ tournant produit par le bobinage triphasé du stator. De manière très grossière, on peut dire que le dispositif électronique de commande du moteur sans balais se substitue au convertisseur électromécanique constitué de l’ensemble balais+collecteur du moteur à courant continu. Pour cela, il est nécessaire de disposer de capteur à effet Hall pour repérer la position du rotor afin de réaliser l’auto-pilotage du moteur. Pour en savoir plus, on consultera le cours de (l’excellent) B. Multon [Multon 04]. 5.1.4 Réducteurs Réducteurs conventionnels et réducteurs planétaires Les réducteurs les plus conventionnels consistent en un ensemble de roues engrénant les unes sur les autres, grâce au profil de leur dentures qui peuvent être droites ou hélicoïdales (cf. figure 5.3). Ces réducteurs offrent un rapport de réduction égal au rapport du nombre de dents des roues dentées. La plus petite des roues, nommée pignon, F IGURE 5.3 – Réducteurs Emerson à dentures droite (gauche) et hélicoïdale (droite). 48 5. Technologie montée sur l’arbre moteur, tourne plus vite que la plus grande (nommée simplement roue), comme on le devine pour le réducteur de la figure 5.3, gauche. Il est fréquent de préférer les engrenages à denture hélicoïdale (figure 5.3, droite) aux engrenages à denture droite pour des raisons de bruit et de contraintes mécaniques sur les dentures. Bien que l’on puisse utiliser des roues possédant des diamètres très différents pour augmenter le taux de réduction, il est généralement souhaitable de mettre plutôt plusieurs étages de réduction pour obtenir ce résultat de manière beaucoup plus compacte (figure 5.4 gauche). On peut ainsi retrouver une sortie coaxiale, ce qui est aussi un avantage. F IGURE 5.4 – Réducteurs Maxon compacts à dentures droite (gauche) ou à train épicycloïdal (droite) (http://www.maxonmotor.com). Par ailleurs, il existe des réducteurs dits planétaires (ou à train épicycloïdal), qui ne sont pas constitués de roues engrenant entre elles par paires. Les trains épicycloïdaux possèdent comme précédemment un arbre de sortie coaxial à l’arbre d’entrée et sont le plus souvent caractérisés par des grands rapports de réduction et la possibilité de transmettre des couples élevés. Les trains épicycloïdaux comportent deux arbres coaxiaux dits planétaires, le planétaire extérieur est généralement appelé couronne. Des satellites, généralement au nombre de trois engrènent avec les deux planétaires, tournant ainsi autour de leur axe commun. Les satellites sont reliés entre eux par un porte-satellites. Le plus fréquemment, c’est la couronne qui est reliée au bâti, comme sur la figure 5.5, où l’arbre d’entrée est le planétaire intérieur et l’arbre de sortie le porte satellite. Pour bien visualiser le fonctionnement d’un réducteur à train épicycloïdal, rien de tel qu’une animation comme on en trouve de nombreuses sur Internet [Educmeca 13]. Réducteurs Harmonic Drive Les réducteurs Harmonic Drive ont un principe très différent des réducteurs classiques [Harmonic Drive 13]. Ils utilisent une cloche déformable (voir figure 5.6), entrainée par une partie mobile légèrement elliptique. Cette cloche engrène sur une couronne circulaire possédant 2 dents de plus que la cloche. Ce principe, aujourd’hui très répandu dans l’industrie nécessite une grande qualité de fabrication. Les réducteurs Harmonic Drive sont ainsi assez coûteux. En revanche, ils ont l’avantage de procurer des rapports de réduction élevés avec seulement trois éléments mécaniques (30:1, 50:1, 80:1 classiquement, jusqu’à 320:1) pour un relativement faible encombrement. Ils ne présentent par ailleurs pas de jeu angulaire, et peuvent transmettre des couples importants. 5.1. Motorisation F IGURE 5.5 – Principe des réducteurs à trains épicycloïdaux. F IGURE 5.6 – Réducteur Harmonic Drive (http://www.harmonicdrive.de). 49 50 5.2 5. Technologie Mesure de position De très nombreuses technologies sont envisageables pour mesurer la position d’un corps relativement à un autre (résistive, capacitive, inductive). En robotique, on utilise principalement des capteurs optiques appelés codeurs incrémentaux. On mentionnera toutefois pour mémoire le cas des génératrices et des résolveurs, qui présentent l’avantage de fournir des signaux continus et peuvent permettre d’atteindre de bonnes précisions ou de donner des signaux suffisamment peu bruités pour être dérivés. 5.2.1 Codeurs incrémentaux Les codeurs incrémentaux sont de loin la solution la plus classique pour mesure la position d’un axe en rotation (une version règle optique existe pour les axes en translation). Une photodiode émet un signal continu qui est récupéré par des récepteurs, selon le principe de la figure 5.7. Un masque permet de produire deux signaux lumineux déphasés. Une fois ceux-ci perçus sur le récepteur, on obtient finalement trois signaux, correspondant aux voies dénommées A, B et I (ou Z). La roue dispose d’un nombre n de franges qui vont être à l’origine de 2n changements de niveau logique du signal perçu. Le secteur angulaire couvert par une frange vaut 360/n degrés. La voix B étant décalée au niveau du récepteur d’un quart de période, on peut ainsi déterminer le sens de rotation, et multiplier encore par 2 la résolution de la mesure de position (4 changements de niveau logique de A ou B par période). On parle de quadruple précision. Il arrive fréquemment que les capteurs optiques contiennent les voies complémentaires Ā, B̄, pour assurer une certaine redondance dans l’opération de comptage, afin d’éliminer les perturbations. F IGURE 5.7 – Principe d’un codeur optique (http://www.maxonmotor.com) . Parmi les avantages de cette technologie, on mentionnera la très bonne compacité du capteur, et le fait qu’il ne perturbe que très peu le moteur : inertie négligeable, pas de frottement, pas de bruit électromagnétique. Par ailleurs, ces capteurs peuvent offrir de bonnes résolutions. En revanche, ils ne procurent pas la position absolue de l’axe. Il existe cependant des codeurs optiques absolus, utilisant des roues plus complexes, avec un nombre de voies plus important, afin de coder la position du rotor. Les différentes voix forment un mot binaire, ce qui permet de reconstruire la position absolue (voir un 5.2. Mesure de position 51 exemple de roue codeuse à la figure 5.8). Ces capteurs, beaucoup plus onéreux que les simples codeurs incrémentaux, peuvent être préférés en robotique malgré leur prix, afin d’éviter des fastidieuses procédures de recalage. Enfin, autre inconvénient des codeurs optiques, la mesure de position résultante est discrète d’où un effet de quantification du signal de position, qui est gênant en particulier aux très basses vitesses, ou lorsque l’on cherche à obtenir la vitesse de rotation par dérivation du signal de position. La documentation technique du codeur Heidenhan HEDL 5540, préconisé pour le moteur Maxon RE36, est donnée à la figure 5.23, en fin de chapitre. F IGURE 5.8 – Différentes roues codeuses (Catalogue Danaher). 5.2.2 Génératices tachymétriques Une génératrice tachymétrique est une machine à courant continu, qui est utilisée en génératrice. Au lieu d’alimenter le bobinage rotorique, comme dans le cas d’un moteur, on mesure la force électromotrice produite suite à la rotation de l’axe auquel la génératrice est accouplée. Ceci permet une mesure continue et absolue de la vitesse de l’axe, préférable à la dérivation d’un signal de position codeur. En revanche, ce type de capteur est plus encombrant, et beaucoup plus coûteux que les capteurs optiques. La documentation technique de la génératrice préconisée pour être associée au moteur Maxon RE36, est donnée à la figure 5.24. Cette génératrice est équipée d’un rotor sans fer pour limiter son inertie. 5.2.3 Résolveurs Un résolveur est un dispositif monté sur l’arbre du moteur et aligné avec le champ magnétique du rotor du moteur (voir figure 5.9). Il possède un bobinage primaire tournant au rotor, et deux bobinages secondaires diphasés. Le couplage magnétique entre les bobinages primaire et secondaire dépend de la position du rotor. Lorsque l’on alimente le bobinage rotorique avec une tension alternative, on récupère ainsi deux tensions alternatives déphasées de 90 degrés sur les bobinages secondaires. Les résolveurs sont appréciés pour leur robustesse et leur longue durée de vie, liées notamment à l’absence d’usure mécanique. Les signaux mesurés peuvent être transmis sans perturbations sur de longues distances, mais leur exploitation nécessite une électronique adaptée. Un avantage des résolveurs est de fournir potentiellement des informations de position et de vitesse exploitables avec un seul capteur. La documentation technique du résolveur préconisé pour le moteur Maxon RE36, est donnée à la figure ? ?. 52 5. Technologie F IGURE 5.9 – Principe d’un résolveur (http://www.maxonmotor.com). 5.3 Variateurs de vitesse Le principe de fonctionnement des variateurs de vitesse est donné à travers l’exemple du moteur à courant continu à excitation indépendante. Néanmoins, les principes exposés restent valables et permettent de comprendre la conception des variateurs de vitesse des autres moteurs électriques. Les résultats présentés s’inspirent largement des articles sur la moteur à courant continu et sa commande publiés dans les Techniques de l’Ingénieur. Comme nous l’avons déjà expliqué, un variateur de vitesse est un dispositif permettant de réaliser l’alimentation et la commande d’un moteur. Son schéma de principe est donné à la figure 5.10. On distingue dans un variateur deux niveaux de commande. La commande rapprochée est celle qui détermine les modes de fonctionnement et de commutation du convertisseur statique. La commande éloignée s’intéresse quant à elle aux problèmes de commande d’axe : asservissements de courant, de position ou de vitesse. F IGURE 5.10 – Schéma général d’un variateur de vitesse [Louis 02a]. Nous allons dans les paragraphes suivants présenter les problèmes d’asservissement de courant et de vitesse propres aux variateurs, ainsi que des exemples pratiques. 5.3.1 Principe et modélisation de l’actionneur Le schéma équivalent d’un moteur à courant continu est donné à la figure 5.11. L’équation électrique, liant la tension v(t) aux bornes de l’induit (rotor) et le courant d’induit i(t) s’écrit : di(t) Ri(t) + L + e(t) = v(t) (5.1) dt 5.3. Variateurs de vitesse 53 i c v B ! L R i e v F IGURE 5.11 – Schéma d’un moteur à courant continu. où R est la résistance de l’induit du moteur à courant continu, L son inductance et e(t) la force électromotrice, qui est proportionnelle à la vitesse de rotation du rotor : (5.2) e(t) = Ke !(t) L’équation mécanique rendant compte des couples agissant sur le rotor s’écrit : c(t) c0 (t) B!(t) = J d!(t) dt (5.3) où c(t) est le couple moteur, c0 (t) est le couple résistant (charge et perturbations), B le coefficient de frottement visqueux et J le moment d’inertie du rotor. Par construction, le couple c(t) est proportionnel au courant d’induit i(t) : (5.4) c(t) = Km i(t) En règle générale les coefficients Ke et Km sont si proches qu’il est raisonnable de les considérer égaux, négligeant alors les pertes durant la conversion électromécanique de puissance. On pose Kem = Ke = Km . Le modèle du moteur à courant continu peut être mis sous forme de schéma-bloc, comme représenté à la figure 5.12. C0 (s) V (s) + 1 R + Ls I(s) C(s) + Kem 1 B + Js E(s) Kem F IGURE 5.12 – Schéma de principe d’un moteur à courant continu. ⌦(s) 54 5. Technologie Modèles pour l’asservissement de vitesse du moteur à courant continu En supposant c0 (t) = 0 les équations (5.3) et (5.4) donnent : Kem i(t) = B!(t) + J d!(t) dt (5.5) En dérivant (5.5), il vient : di(t) d!(t) d2 !(t) Kem =B +J dt dt dt2 (5.6) En combinant (5.5) et (5.6) avec (5.1) et (5.2) : ✓ ◆ ✓ ◆ R d!(t) L d!(t) d2 !(t) B!(t) + J + B +J + Kem !(t) = v(t) (5.7) Kem dt Kem dt dt2 Modèle d’ordre un se simplifie en : On néglige l’influence de l’inductance d’induit. L’équation (5.7) 2 RB + Kem RJ d!(t) !(t) + = v(t) Kem Kem dt soit : RJ d!(t) Kem = v(t) 2 2 RB + Kem dt RB + Kem La fonction de transfert reliant la commande en tension du moteur à courant continu V (s) et sa vitesse ⌦(s) est : !(t) + G(s) = ⌦(s) K = V (s) 1 + ⌧em s (5.8) si l’on définit la constante de temps électromécanique du système : ⌧em = RJ 2 RB + Kem K= Kem 2 RB + Kem et son gain statique : Le système ainsi modélisé est donc d’ordre un. Il possède un pôle stable p = 1/⌧em . Modèle d’ordre deux On lève maintenant l’hypothèse du paragraphe précédent pour obtenir un modèle plus fin du moteur à courant continu. Deux expressions intéressantes de la fonction de transfert sont alors possibles : 1. En ordonnant (5.7) de façon à avoir un coefficient de un devant le degré de dérivation le plus élevé, il vient : 2 d2 !(t) RJ + LB d!(t) RB + Kem Kem + + !(t) = v(t) 2 dt LJ dt LJ LJ ce qui conduit à la fonction de transfert sous la forme : G(s) = s2 + ( R + L Kem LJ B )s J + 2 RB+Kem LJ (5.9) 5.3. Variateurs de vitesse 55 Cette écriture est intéressante pour identifier la fonction de transfert sous la forme canonique : K !n2 G(s) = 2 s + 2⇠!n s + !n2 2. En ordonnant (5.7) de façon à avoir un coefficient de un devant le degré de dérivation le plus faible (i.e. !(t)), il vient : !(t) + RJ + LB d!(t) LJ d2 !(t) Kem + = v(t) 2 2 2 2 RB + Kem dt RB + Kem dt RB + Kem (5.10) ce qui conduit à la fonction de transfert sous la forme : G(s) = K 1 + (⌧em + µ⌧el )s + ⌧el ⌧em s2 (5.11) si l’on définit la constante de temps électrique du système : ⌧el = On note encore que : µ= L R RB 2 RB + Kem est petit devant un (terme lié au frottement). Enfin, comme on peut raisonnablement supposer que ⌧el ⌧ ⌧em : ⌧em + µ⌧el ' ⌧em ' ⌧em + ⌧el Cela permet d’écrire finalement la fonction de transfert sous la forme : G(s) = Les pôles du système p1 = ⌦(s) K = V (s) (1 + ⌧el s)(1 + ⌧em s) 1/⌧el et p2 = 1/⌧em apparaissent alors clairement. Modèles pour l’asservissement de position du moteur à courant continu La position du rotor se déduisant de sa vitesse par intégration on obtient aisément la fonction de transfert reliant la tension d’induit V (s) et sa position ⇥(s) = L{✓(t)}, d’après les résultats du paragraphe précédent. D’après le cas le plus général étudié précédemment, il vient : ⇥(s) K G(s) = = V (s) s(1 + ⌧el s)(1 + ⌧em s) Le système possède trois pôles p1 = 0, p2 = 1/⌧el et p3 = 1/⌧em . Ce chapitre se termine par la documentation technique (figure 5.20) d’un moteur à courant continu Maxon Maxon RE36 118800 (source http://www.maxonmotor.com) qui sert à titre d’exemple dans ce cours. Le guide des grandeurs utilisées dans cette doc est également joint à la figure 5.21. On notera les variations sensibles entre les grandeurs choisies par le constructeur pour décrire le modèle du moteur et celles présentées précédemment. On fera également attention à l’usage des unités non SI. 56 5.3.2 5. Technologie Principe et modélisation du convertisseur statique L’étage de puissance permettant d’alimenter un moteur à courant continu à partir d’un réseau électrique alternatif est constitué d’un redresseur (conversion alternatif/continu), suivi par un hacheur (conversion continu/continu). Différents cas se présentent selon la source d’énergie (monophasé, triphasé) et la technologie des convertisseurs statiques utilisés (pont redresseur commandé ou non, hacheur 1, 2 ou 4 quadrants). La figure 5.13 illustre l’étage de puissance d’un moteur alimenté à partir du réseau triphasé avec un pont redresseur en commutation naturelle et un hacheur quatre quadrants. F IGURE 5.13 – Schéma du convertisseur statique [Louis 02b]. Le choix de la source d’alimentation dépend généralement des besoins en termes de puissance. Dans le cas de systèmes embarqués l’ensemble réseau+redresseur est remplacé par des batteries. Le choix le plus important pour la variation de vitesse concerne le hacheur. L’utilisation d’un hacheur quatre quadrants permet d’envisager un fonctionnement dans les différents modes possibles en variation de vitesse. Le moteur pourra fonctionner en vitesse dans les deux sens de rotation et le freinage sera rendu possible quand le courant sera renvoyé vers le module de dissipation. Dans ce cas, un module de dissipation est nécessaire. Ces principes déjà vus dans ce cours sont rappelés à la figure 5.14. Le hacheur fournit une tension de valeur moyenne réglable par le biais de son rapport cyclique ↵ 2 [0 1]. Le choix de la fréquence de commutation du hacheur dépend de l’application. Dans le cas d’applications de faible puissance (P 6 1 kW) la fréquence de commutation est choisie élevée, au-delà du seuil audible par l’homme, soit environ 20 kHz. En pratique la fréquence de commutation est plutôt de 50 kHz. Fonctionnant de manière échantillonnée à fréquence élevée, le hacheur peut être considéré en première approximation comme une source de tension continue de valeur réglable. Ainsi, la relation entre la tension d’alimentation du moteur et la tension de commande du rapport cyclique du hacheur peut être considérée comme un simple gain. 5.3. Variateurs de vitesse 57 F IGURE 5.14 – Fonctionnement 4 quadrants du hacheur [Louis 02b]. 5.3.3 Variation de vitesse du moteur à courant continu D’après le modèle dynamique du moteur obtenu précédemment, on peut étudier la réponse du système en boucle ouverte. Pour un échelon de tension de consigne, appliqué au moteur, les réponses indicielles en vitesse et en courant sont représentées à la figure 5.15. Le cas considéré est celui d’un moteur Maxon F2260, pour lequel : Kem R L J B = = = = = 100 N m/A 1, 44 ⌦ 0, 56 mH 129, 0 10 6 kg m2 7, 19 10 5 N s (nécessite un effort pour le déduire de la doc. . .) On observe un dépassement du courant qui peut atteindre des valeurs très importantes lors des transitoires. Ceci s’explique par la présence d’un zéro dans la fonction de F IGURE 5.15 – Réponse en boucle ouverte du moteur à courant continu (non chargé). 58 5. Technologie transfert : GI (s) = I(s) V (s) Cette fonction de transfert s’obtient aisément à partir du schéma de la figure 5.12 (analogie avec le calcul du signal d’erreur d’un asservissement). On obtient : GI (s) = LJs2 Js + B 2 + (RJ + LB)s + RB + Kem Le diagramme de Bode correspondant est représenté à la figure 5.16. Bode Diagram 0 Magnitude (dB) −10 −20 −30 −40 −50 90 Phase (deg) 45 0 −45 −90 −2 10 −1 10 0 10 1 2 10 10 Frequency (rad/sec) 3 10 4 10 5 10 F IGURE 5.16 – Diagramme de Bode de GI (s). Asservissement de courant Les dépassements de courant observés précédemment constituent un problème, tant pour le convertisseur statique que pour le moteur. Si le système (convertisseur+moteur) a été dimensionné pour une utilisation nominale, les transitoires de courant risquent de détruire les composants de puissance du convertisseur statique. Par ailleurs, dans le cas où l’on utilise des éléments commerciaux, il arrive que le convertisseur soit surdimensionné, car pouvant fonctionner avec une gamme de moteurs de différentes puissances. Alors, le convertisseur pourra délivrer le courant appelé et ce sont les conducteurs du moteur qui risquent d’être détruits par une surintensité. Pour ces raisons il convient donc : 1. d’asservir le courant pour avoir la maîtrise des dépassements ; 2. de limiter le courant maximum pour protéger le moteur dans tous les cas. 5.3. Variateurs de vitesse 59 L’étude de l’asservissement de courant du moteur à courant continu peut se faire sous deux angles. Soit on fait une synthèse en utilisant la fonction de transfert complète GI (s). Soit on fait le raisonnement approché suivant. La force électromotrice étant une grandeur proportionnelle à la vitesse de rotation, ses variations sont lentes devant celles du courant d’induit. On peut donc la considérer comme une perturbation dans le transfert tension-courant, d’après le schéma de la figure 5.12. Sous ces hypothèses, la fonction de transfert GI (s) se résume à : GI (s) = 1 1 1 = R + Ls R 1 + ⌧e s La fonction de transfert étant celle d’un premier ordre une simple correction PI : ✓ ◆ 1 CI (s) = Kp 1 + ⌧i s conduit à : CI (s)GI (s) = Kp 1 + ⌧ i s R⌧i s(1 + ⌧e s) Le choix le plus simple consiste alors à compenser le pôle électrique en choisissant ⌧i = ⌧e , ce qui conduit à un système en boucle fermé d’ordre un de fonction de transfert : GIBF (s) = 1 1 i Ki 1 + KR⌧ s p Ki où Ki est le gain du capteur assurant la mesure de courant. Le temps de réponse de la boucle de courant se règle alors aisément en choisissant Kp . Remarque 1 L’étude précédente est effectuée sans tenir compte du hacheur. Or, la modélisation proposée pour le hacheur (qui est un système échantillonné) occulte le fait qu’entre la tension de commande du hacheur et sa sortie il existe en fait un retard, dit statistique, d’une demi-période d’échantillonnage. La prise en compte de ce retard se fait dans certains cas en représentant son effet par une fonction de transfert du premier ordre (passe-bas de constante de temps la demi-période de commutation). Ceci n’est bien sûr valable que lorsque le temps de retard reste petit devant la dynamique du système, si bien que l’on préférera ne pas tenir compte de l’effet retard du hacheur dans la synthèse du correcteur et considérer simplement que la bande passante du système est limitée. Asservissement de vitesse L’asservissement de vitesse du moteur à courant continu est réalisé une fois réglée la boucle de courant. On a donc un asservissement avec boucles imbriquées ou asservissement cascade, répondant au schéma de principe présenté en introduction. Pour réaliser l’asservissement de la vitesse du rotor d’un moteur à courant continu, la tension image de la vitesse mesurée est comparée à une tension de référence vr , image de la vitesse de rotation désirée !r . La vitesse du rotor est mesurée par l’un ou l’autre des capteurs possibles (génératrice tachymétrique, synchro-résolveur, codeur) et la tension image est directement obtenue en sortie du procédé dans le cas des capteurs analogiques, ou après comptage dans le cas des codeurs incrémentaux. En faisant abstraction du mode de 60 5. Technologie Vr (s) + + C⌦ (s) CI (s) Ki V⌦ (s) = K! ⌦(s) ⌦(s) V (s) mcc I(s) K! F IGURE 5.17 – Asservissement de vitesse d’un moteur à courant continu avec boucle interne de courant. mesure, qui est ici assimilé à un simple gain K! , le schéma-bloc de l’asservissement de vitesse est représenté à la figure 5.17. Si la boucle de courant est réglée comme suggéré précédemment, elle a alors une fonction de transfert du premier ordre et il est facile de régler la boucle de vitesse. Le fonctionnement du moteur à courant continu asservi en courant est alors décrit par la figure 5.18 (d’après le schéma 5.12). En toute rigueur, il faudrait réécrire les équations asservissement de courant Vr (s) + V (s) CI (s) + I(s) 1 R + Ls Kem C(s) 1 B + Js ⌦(s) Ki Kem F IGURE 5.18 – Schéma du moteur à courant continu avec boucle de courant. dynamiques du moteur à courant continu asservi en courant. Ceci étant, on peut considérer 1 que le bloc de fonction de transfert R+Ls du schéma 5.12 est simplement remplacé par la fonction de transfert en boucle fermée GIBF (s). Dans ce cas, la constante de temps de la boucle de courant étant très petite devant la constante de temps électromécanique du système, on obtient un modèle d’ordre deux de classe 0, très proche d’un système du premier ordre (on considère la force électromotrice comme une perturbation). On peut donc à nouveau effectuer une correction PI. Asservissement de position Il est le plus souvent possible d’utiliser les variateurs en mode asservissement de position, que la fonction soit intégrée ou que l’on réalise l’asservissement à partir du système asservi en courant. Du fait de l’intégration au passage vitesse–position, la classe du système augmente et un correcteur proportionnel pourra convenir. Eventuellement, on utilisera un correcteur à avance de phase pour assurer stabilité et performance. Par ailleurs, certaines fonctions avancées pour l’asservissement de la position de l’axe moteur peuvent venir s’ajouter. Il s’agit en particulier de la génération de profils d’accélération en trapèze pour permettre d’obtenir des consignes de courant continues. 5.3. Variateurs de vitesse 61 Analogique ou numérique ? En pratique le choix d’une commande numérique ou analogique dépend du type de moteur dont on dispose. Dans le cas d’un moteur à courant continu, une commande analogique est généralement suffisante car elle reste relativement simple et peu onéreuse. Ce n’est plus le cas pour d’autres moteurs, typiquement les moteurs à courants continus sans collecteur, qui sont des moteurs synchrones autopilotés, pour lesquels la réalisation des asservissements peut nécessiter le recours à des fonctions non linéaires plus complexes qui seront aisément réalisées par un processeur. Toutefois, la tendance, y compris pour les variateurs des moteurs à courant continu est de les implémenter sous forme numérique, ce qui permet de paramétrer tout le variateur par une interface PC, celui-ci étant connecté par USB. C’est le cas du variateur ESCON de chez Maxon par exemple, dont la documentation pourra être trouvée sur le site Maxon (http://www.maxonmotor.com) et qui a remplacé dans la gamme standard le variateur analogique ADS 50 présenté plus loin. Protections La structure à boucles imbriquées du schéma 5.19 permet d’introduire des éléments de protection. Une limitation de courant sera ainsi simplement réalisée en F IGURE 5.19 – Schéma général d’un variateur de vitesse [Louis 02b]. saturant la valeur de la commande de la boucle de courant par une tension égale à ±Ki iM , iM représentant la valeur maximale du courant préconisée par le constructeur. Ce réglage est donc effectué par une simple fonction seuil analogique, la valeur du seuil étant ajustée par un potentiomètre. Si la boucle de courant est réglée convenablement (rapide et sans dépassement), les seules saturations proviendront alors d’un appel de courant trop fort, par exemple dû à une modification brutale de la charge ou du sens de rotation. Des raffinements dans ce mode de protection sont cependant généralement prévus. Les moteurs peuvent en effet le plus souvent supporter des courants transitoires largement supérieur à la valeur maximale continue (typiquement 5 fois le courant maximum pendant 50 à 200 ms ou dans le cadre d’un fonctionnement intermittent). Documentations techniques Ce chapitre se termine par différentes documentations, dont la documentation technique 5.20 du moteur Maxon RE 36, ainsi que celle du variateur de vitesse et des capteurs préconisés avec ce moteur 1 . 1. On remarquera que ces composants ne font plus nécessairement partie du catalogue du constructeur, mais que ces documentations ont été retenues pour leur intérêt pédagogique. Les "nouveautés" auront été évoquées en cours. 62 5. Technologie maxon DC motor RE 36 !36 mm, Graphite Brushes, 70 Watt M 1:2 Stock program Standard program Special program (on request) Order Number 118797 118798 118799 118800 118801 118802 118803 118804 118805 118806 118807 118808 118809 118810 Motor Data 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Values at nominal voltage Nominal voltage V 18.0 24.0 32.0 42.0 42.0 48.0 48.0 48.0 48.0 48.0 48.0 48.0 48.0 48.0 No load speed rpm 6610 6210 6790 7020 6340 6420 5220 4320 3450 2830 2280 1780 1420 1180 No load current mA 153 105 88.6 70.4 61.4 54.6 41.6 32.6 24.7 19.5 15.2 11.5 8.97 7.31 Nominal speed rpm 5880 5530 6120 6350 5660 5740 4520 3600 2720 2090 1530 1010 651 390 Nominal torque (max. continuous torque) mNm 70.2 78.2 77.1 77.9 79.9 79.5 81.5 82.2 83.6 84.1 84.1 83.8 84.1 83.1 Nominal current (max. continuous current) A 2.90 2.25 1.82 1.45 1.33 1.18 0.978 0.813 0.660 0.545 0.439 0.343 0.275 0.226 Stall torque mNm 730 783 832 866 786 785 627 504 403 326 258 198 158 127 Starting current A 28.6 21.5 18.7 15.3 12.6 11.1 7.22 4.80 3.06 2.04 1.30 0.784 0.501 0.334 Max. efficiency % 84 85 86 86 86 86 85 84 82 81 79 77 75 72 Characteristics Terminal resistance " 0.628 1.11 1.71 2.74 3.35 4.32 6.65 10.0 15.7 23.5 36.8 61.3 95.8 144 Terminal inductance mH 0.0988 0.201 0.300 0.487 0.597 0.760 1.15 1.68 2.62 3.87 5.96 9.70 15.1 21.9 Torque constant mNm / A 25.5 36.4 44.5 56.6 62.6 70.7 86.9 105 131 160 198 253 315 380 Speed constant rpm / V 375 263 215 169 152 135 110 90.9 72.7 59.8 48.2 37.8 30.3 25.1 Speed / torque gradient rpm / mNm 9.23 8.05 8.27 8.18 8.14 8.25 8.41 8.65 8.67 8.80 8.96 9.17 9.21 9.51 Mechanical time constant ms 6.00 5.89 5.84 5.81 5.81 5.80 5.81 5.81 5.82 5.83 5.84 5.86 5.85 5.88 Rotor inertia gcm2 62.0 69.9 67.5 67.8 68.1 67.2 66.0 64.2 64.1 63.3 62.2 61.1 60.7 59.0 Specifications 17 18 19 20 21 22 Operating Range Thermal data n [rpm] Thermal resistance housing-ambient 6.4 K / W Thermal resistance winding-housing 3.4 K / W Thermal time constant winding 44.2 s Thermal time constant motor 1120 s Ambient temperature -30 ... +100°C Max. permissible winding temperature +125°C Mechanical data (ball bearings) Max. permissible speed 12000 rpm Axial play 0.05 - 0.15 mm Radial play 0.025 mm Max. axial load (dynamic) 5.6 N Max. force for press fits (static) 5.6 N (static, shaft supported) 1200 N 28 Max. radial loading, 5 mm from flange 28 N Values listed in the table are nominal. Explanation of the figures on page 49. Tolerances may vary from the standard specification. Option Preloaded ball bearings May 2008 edition / subject to change Continuous operation In observation of above listed thermal resistance (lines 17 and 18) the maximum permissible winding temperature will be reached during continuous operation at 25°C ambient. = Thermal limit. Short term operation The motor may be briefly overloaded (recurring). 23 24 25 26 27 Other specifications 29 Number of pole pairs 30 Number of commutator segments 31 Weight of motor Comments Assigned power rating maxon Modular System Planetary Gearhead 1 !32 mm 13 0.4 - 2.0 Nm 350 g Page 237 Planetary Gearhead !32 mm 0.75 - 4.5 Nm Page 239 Planetary Gearhead !32 mm 1.0 - 6.0 Nm Page 240 Planetary Gearhead !42 mm 3 - 15 Nm Page 244 Overview on page 16 - 21 Recommended Electronics: ADS 50/5 Page 276 ADS 50/10 277 ADS_E 50/5 277 ADS_E 50/10 277 EPOS 24/5 294 EPOS2 50/5 295 EPOS P 24/5 297 Notes 18 Encoder MR 256 - 1024 CPT, 3 channels Page 259 Encoder HEDS 5540 500 CPT, 3 channels Page 262 Encoder HEDL 5540 500 CPT, 3 channels Page 264 DC-Tacho DCT !22 mm 0.52 V Page 271 maxon DC motor F IGURE 5.20 – Maxon RE36 118800 (source initiale http://www.maxonmotor.com). 83 5.3. Variateurs de vitesse 63 Dessin dimensionnel Sur le CD-ROM, les croquis de dimension sont disponibles en format DXF en vue de leur importation dans n’importe quel système CAD. Présentation des vues conforme à la méthode E (ISO). Toutes les dimensions sont exprimées en [mm]. Ligne 5 Pente vitesse/couple !n / !M [tr / min / mNm] La pente vitesse / couple indique la force du moteur. Plus cette courbe est plate, moins la vitesse est sensible aux variations de la charge. La pente vitesse / couple est calculée à une température de bobinage de 25°C. Taraudage de montage dans le plastique Ligne 6 Courant à vide Io [mA] La réalisation de connexions vissées sur des flasques plastiques nécessite une attention spéciale. C’est le courant qui s’établit lorsque le moteur est à vide. Il dépend du frottement des balais et du frottement à l’intérieur des paliers, il se modifie légèreCouple de serrage maximal [Ncm] Un tournevis automatique doit être ajusté à cette ment avec la vitesse. valeur d’étalonnage. Ligne 7 Courant de démarrage IA [mA], [A] Profondeur active de vissage [mm] La relation entre la profondeur de vissage et le diamè- C’est le rapport de la tension nominale (tension aux tre du pas de vis doit être au moins de 2 : 1. La profon- bornes) et de la résistance du moteur. Il est obtenu deur de vissage ne doit en aucun cas dépasser la lon- au couple de blocage. gueur utile de taraudage! Caractéristiques Ligne 1 ● Puissance conseillée P2T [W] C’est la puissance max. fournie, dans la plage de puissances conseillée. Elle dépend des types et correspond à la représentation du Guide de Sélection (voir également pages 50-146 «Plages d’utilisation»). Ligne 2 Tension nominale U [Volt] C’est la tension à laquelle se réfèrent toutes les valeurs nominales (lignes 3, 4, 6, 7, 12, 13).Elle est fixée pour que la vitesse à vide ne dépasse pas la vitesse maximale admissible. Mais l’utilisation du moteur n’est pas limitée par cette tension. Pour atteindre la puissance assignée (ligne 1), il est possible d’utiliser une tension de service plus haute. La puissance maximale de sortie est alors plus élevée (ligne 12). Ligne 8 Résistance aux bornes R ["] C’est la résistance mesurée à 25°C aux bornes de connection. Elle détermine, sous une tension U donnée, le courant de démarrage. Dans le cas de balais en graphite, la résistance de contact varie en fonction de la charge. Ligne 9 Vitesse limite nmax [tr / min] La vitesse limite ne doit pas être dépassée en fonctionnement normal, un dépassement intempestif endommagerait la commutation, mettant ainsi le moteur en panne. Ligne 13 Rendement max. #max [%] Le rendement dépend du courant ou de la vitesse (voir page 35 «Caractéristique de rendement»). Le rendement maximal est dérivé de la relation entre la marche à vide et le courant de démarrage. Ligne 14 Constante de couple kM [mNm / A] La constante de couple, ou couple spécifique, est le quotient du couple fourni et du courant s’y rapportant. Ligne 15 Constante de vitesse kn [tr / min / V] Elle indique la vitesse spécifique par Volt de la tension appliquée, sans tenir compte des pertes par frottement. La valeur inverse de la constante de vitesse est la constante de tension, aussi appelée constante FEM. Ligne 16 Constante de temps mécanique $m [ms] C’est le temps nécessaire au rotor (sans charge extérieure), pour passer de la vitesse 0 à 63 % de sa vitesse à vide. 2 Ligne 17 Moment d’inertie du rotor JR [gcm ] C’est le moment d’inertie de masse du rotor, basée sur l’axe de rotation. Ligne 18 Inductance terminale L [mH] C’est l’inductivité du bobinage lorsque le rotor est à l’arrêt, mesurée à l’aide d’une tension sinusoïdale à 1 kHz. Ligne 19 Résistance thermique Rth2 [K / W] C’est la résistance thermique entre la carcasse et l’air ambiant. Valeur théorique sans aucun refroidisseur additionnel. L’addition des lignes 19 et 20 permet de définir la puissance dissipée max. Ligne 11 Couple permanent max. Admissible. Sur les moteurs à flasque métallique, Mcont [mNm] la résistance thermique Rth2 peut être réduite jusC’est le couple délivré en permanence ou en valeur qu'à 50 %, à condition que le moteur soit couplé Ligne 3 Vitesse à vide no [tr / min] moyenne, qui élève la température du bobinage jus- directement à un bon conducteur thermique (méC’est la vitesse atteinte par le moteur sans charge qu’à sa valeur max. admissible. On se base sur une tallique) au lieu d'une plaque en matière synthétique. additionnelle et alimenté à la tension nominale. Elle température ambiante de 25°C. est pratiquement proportionnelle à la tension appliLigne 20 Résistance thermique Ligne 12 Puissance max. fournie quée. Rth1 [K / W] Pmax [mW], [W] Ligne 4 Couple de démarrage MH [mNm] C’est la puissance max. disponible à la tension no- Idem entre rotor et carcasse. Ce couple est appliqué sur l’arbre pour obtenir minale et à une température rotor de 25°C. Les vaLigne 21 Constante de temps thermique du l’arrêt à tension nominale. La croissance rapide de leurs d’utilisation se situent en-dessous de cette bobinage $w [s] la température du moteur provoque la baisse du puissance (voir «courant max. permanent» et «vicouple de démarrage (Voir page 38 «Comporte- tesse limite»). C’est le temps nécessité par le bobinage pour modiment thermique»). fier sa température. Plages d'utilisation Ligne 10 Courant permanent max. Icont [mA], [A] C’est le courant qui, à une température ambiente de 25°C, fait monter la température du rotor à sa limite max. admissible. Légende Exemple de la page 78 Fonctionnement intermittent Plage de puissance conseillée Plage de fonctionnement permanent Compte tenu des resistances thermiques (lignes 19 et 20) la température maximum du rotor peut être atteinte au valeur nominal de couple et vitesse et à la température ambiante de 25°C = Limite thermique. Vitesse [tr / min] 12000 10000 8000 6000 Domaine de fonctionnement intermittent 4000 Fonctionnement intermittent La surcharge doit être de courte durée (voir page 36). Fonctionnement continu 2000 20 0.5 1 Plage de puissance conseillée 40 60 80 Couple [mNm] 1.0 1.5 2 3 4 Courant permanent max. 2.0 5 4 Courant [A] Le diagramme du domaine de fonctionnement décrit la plage de puissance mécanique livrable par le bobinage. Il illustre les points de fonctionnement possibles en fonction de la vitesse et du couple.Pour deux bobinages sélectionnés, l’un à faible, l’autre à forte résistance, le couple figure en échelle de puissance (Ligne 8). 2 118757 Moteur avec bobinage à haute résistance (Ligne 8) 118749 Moteur avec bobinage à haute résistance (Ligne 8) 0 10 20 30 40 50 60 70 80 90 ON% ON Moteur en service OFF Moteur stationnaire ÎON Courant de pointe max. Icont Courant max. admissible en service continu (Ligne 10) tON Temps d’enclenchement, à ne pas dépasser $w (Lg. 21) T Temps de cycle tON + tOFF [s] tON% Temps d’enclenchement en % du temps de cycle Pendant une durée d’enclenchement de X %, le moteur peut être surchargé dans le rapport ION / Icon I ON % I cont Edition Juillet 2005 / Modifications réservées Temps 3 1 Courant [A] 6 T 5 T t ON maxon DC motor F IGURE 5.21 – Guide Maxon (source initiale http://www.maxonmotor.com). 49 maxon DC motor Explications sur les pages 50 - 146 64 5. Technologie Le programme des asservissements de moteurs maxon contient une gamme de servoamplificateurs pour commander les moteurs DC et EC hautement dynamique. Position Le régulateur de position s’efforce de faire coïncider la position actuelle mesurée avec la position désirée - de la même manière que le régulateur de vitesse - en donnant au moteur les valeurs de correction. L’information sur la position est généralement délivrée par un codeur digital. Courant Le régulateur de courant alimente le moteur avec une intensité proportionnelle à la valeur de consigne. Ainsi le couple du moteur est proportionnel à la consigne. Le régulateur de courant améliore aussi la dynamique d’un circuit de régulation de position ou de vitesse supérieur. Régulation par codeur digital Compensation R x I Le moteur est équipé d’un codeur digital qui délivre un nombre donné d’impulsions à chaque tour du rotor. Les impulsions rectangulaires des canaux A et B sont décalées de 90° pour permettre de déterminer le sens de rotation. ! Les codeurs digitaux sont surtout utilisés pour assurer le positionnement et pour détecter un déplacement angulaire. ! Les codeurs digitaux ne sont soumis à aucune usure. ! En liaison avec un régulateur digital, ils ne provoquent aucun effet de dérive. Une tension proportionnelle à la valeur de consigne est appliquée au moteur. Si la charge augmente, la vitesse de rotation diminue. Le circuit de compensation augmente alors la tension de sortie, avec un accroissement du courant dans le moteur. Cette compensation doit être ajustée à la résistance interne du moteur. Cette résistance varie avec la température et avec la charge appliquée. Principe: Régulation par codeur Valeur de consigne maxon motor control - - M La précision du réglage de la vitesse que l’on peut obtenir dans de tels systèmes est de l’ordre de quelques pour cents ! Économie en prix et en place ! Pas de génératrice DC ou de codeur nécessaire ! Régulation peu précise en cas de forte variation de la charge ! Régulation de vitesse uniquement ! Idéal pour les applications «Low Cost» qui n’exigent pas une vitesse très précise n Valeur réelle Principe: Compensation R x I E Valeur de consigne maxon motor control I - Vitesse La tâche d’un servoamplificateur pour régulation de vitesse consiste à maintenir la vitesse de rotation aussi constante que possible quelles que soient les variations de couple demandées au moteur. Pour atteindre ce but, l’électronique de régulation du servoamplificateur compare en permanence la valeur de consigne (vitesse desirée) avec la valeur réelle instantanée (vitesse effective). La différence entre les deux valeurs sert à piloter l’étage de puissance du servoamplificateur de telle manière que le moteur amenuise la différence de vitesse. On dispose ainsi d’un circuit de régulation de vitesse en boucle fermée. - Grandeurs commandées - - Schéma d’un circuit de régulation Valeur de consigne maxon motor control Déviation du système - - Contrôleur é tage de puissance (actuateur) Valeur réelle M U Valeur réelle - maxon motor control Technique – sans détour Moteur n Capteur 32 F IGURE 5.22 – Variateurs Maxon (source initiale http://www.maxonmotor.com). 5.3. Variateurs de vitesse 65 maxon motor maxon motor control 4-Q-DC Servoamplificateur ADS 50/5 Référence de commande 145391 Notice d'utilisation Edition Juillet 2009 L’ADS 50/5 est un variateur de vitesse pour piloter des moteurs à courant continu à aimants permanents allant jusqu’à 250 Watts. Quatre modes de régulation peuvent être sélectionnés à l’aide d’un commutateur DIP (jumper) situé sur la face avant: • Réglage de vitesse par génératrice tachymétrique DC • Réglage de vitesse par codeur digital • Réglage de vitesse par compensation IxR • Réglage du courant ADS 50/5 est protégé contre: • les surcharges de courant • les courts-circuits moteur • les élévations de température. Grâce à l’utilisation de transistors de puissance MOS-FET, son rendement atteint 95 % à la puissance nominale. Le variateur est muni d’une self de lissage permettant de réduire les ondulations du courant dans le circuit moteur. La fréquence de découpage PWM est de 50 kHz, elle permet de piloter les moteurs à basse inductive. Une self externe peut ainsi être évitée dans la plupart des applications. La gamme de tension d’entrée va de 12 à 50 VDC et ADS 50/5 supporte des alimentations non stabilisée. Le boîtier en aluminium facilite l’installation, la mise en service est rapide, grâce à des connexions à vis pratiques et robustes. Table des matières 1 2 3 4 5 6 7 8 9 10 11 Instructions de sécurité.................................................................................................................................... 2 Données techniques ........................................................................................................................................ 3 Câblage externe minimal pour les différents modes de fonctionnement......................................................... 4 Instructions d’utilisation.................................................................................................................................... 5 Description des fonctions d’entrée/sortie......................................................................................................... 7 Possibilités complémentaires de réglage ...................................................................................................... 10 Affichage de l’état de fonctionnement............................................................................................................ 12 Traitement des erreurs .................................................................................................................................. 13 Installation conforme à la compatibilité électromagnétique (CEM) ...............................................................13 Schéma bloc .................................................................................................................................................. 14 Dimensions .................................................................................................................................................... 14 La version actuelle de cette notice d’utilisation est disponible sur Internet au format PDF sur le site www.maxonmotor.com (cliquez sur Services & Downloads, puis saisissez le numéro de référence 145391), ou bien dans la boutique en ligne de maxon motor, à l’adresse http://shop.maxonmotor.com. 66 5. Technologie maxon motor 4-Q-DC Servoamplificateur ADS 50/5 2 Notice d'utilisation Données techniques 2.1 Caractéristiques électriques Tension d’alimentation nominal +Vcc ........................................................................12 … 50 VDC Tension d’alimentation absolute minimal +Vcc min............................................................ 11.4 VDC Tension d’alimentation absolute maximal +Vcc max .......................................................... 52.5 VDC Tension de sortie max ...................................................................................................... 0.9 · VCC Courant de sortie max Imax ...................................................................................................... 10 A Courant de sortie permanent Icont ............................................................................................. 5 A Fréquence de commutation ................................................................................................ 50 kHz Rendement ............................................................................................................................ 95 % Bande passante du régulateur de courant......................................................................... 2.5 kHz Self de lissage intégrée ..............................................................................................150 µH / 5 A 2.2 Entrées Valeurs de consigne «Set value» .......................................................... -10 ... +10 V (Ri = 20 kΩ) Enable ............................................................................................... +4 ... +50 VDC (Ri = 15 kΩ) Tension DC tacho «Tacho Input» .................................... min. 2 VDC, max. 50 VDC (Ri = 14 kΩ) Signaux codeur «Canaux A, A\, B, B\»............................................... max. 100 kHz, Niveau TTL 2.3 Sorties Image du courant «Monitor I», protégé du court-circuit .................. -10 ... +10 VDC (RO = 100 Ω) Image de la vitesse «Monitor n», protégé du court-circuit .............. -10 ... +10 VDC (RO = 100 Ω) Message de surveillance «READY» collecteur ouvert, protégé du court-circuit............................................ max. 30 VDC (IL ≤ 20 mA) 2.4 Tension de sortie Tension auxiliaire, protégée du court-circuit ........... +12 VDC, -12 VDC, max. 12 mA (RO = 1 kΩ) Tension d’alimentation du codeur................................................................. +5 VDC, max. 80 mA 2.5 Potentiomètres de réglage Compensation IxR Offset nmax Imax gain 2.6 Indicateur LED LED 2 couleurs .................................................................................................. READY / ERROR vert = ok, rouge = défaut 2.7 Température / Humidité Exploitation ................................................................................................................ -10 ... +45°C Stockage ................................................................................................................... -40 ... +85°C Humidité relative.................................................................................. 20 ... 80 % non condensée 2.8 Caractéristiques mécaniques Poids ............................................................................................................................... ca. 360 g Dimensions................................................................................................................... voir dessin Plaque de fixation ........................................................................................................ pour vis M4 2.9 Connexions Bornes PCB..........................................................................«Power» (5 pôles), Signal (12 pôles) Pas..............................................................................................................................3.81 mm Convenant pour sections de fils .................................................0.14 - 1 mm2 fil fin torsadé ou 2 ................................................................................................0.14 - 1.5 mm à un conducteur Codeur.........................................................................................................connecteur DIN41651 pour câble plat, pas de 1.27 mm, AWG 28 Edition Juillet 2009 / Doc. No. 539149-06 / Sous réserve de modification maxon motor control 3 5.3. Variateurs de vitesse 67 maxon motor 4-Q-DC Servoamplificateur ADS 50/5 3 Notice d'utilisation Câblage externe minimal pour les différents modes de fonctionnement 4 maxon motor control Edition Juillet 2009 / Doc. No. 539149-06 / Sous réserve de modification 68 5. Technologie maxon motor 4-Q-DC Servoamplificateur ADS 50/5 4 Notice d'utilisation Instructions d’utilisation 4.1 Détermination de la puissance d’alimentation N’importe quelle alimentation à courant continu peut être utilisée, si elle répond aux exigences minimales résumées ci-dessous. Durant la phase d’installation et de mise au point, nous vous recommandons de séparer mécaniquement le moteur de la machine qu’il doit entraîner, afin d’éviter tout dommage résultant d’un mouvement incontrôlé. Puissance d’alimentation nécessaire Tension de sortie Vcc min. 12 VDC; max. 50 VDC Ondulation <5% Courant de sortie Dépend de la charge, permanent 5 A (10 A en crête) Le tension d’alimentation nécessaire peut être calculée comme suit: Valeurs connues Couple en exploitation MB [mNm] Vitesse d’exploitation nB [tr/min] Tension nominale du moteur UN [Volt] Vitesse du moteur à vide à UN, n0 [tr/min] Vitesse/gradient du couple moteur ∆n/∆M [tr/min / mNm] Valeur cherchée Tension d’alimentation VCC [Volt] Solution VCC = UN ⎛ ∆n ⎞ 1 ⋅MB ⎟⋅ + 2 [V ] ⋅ ⎜ nB + ∆M n0 ⎝ ⎠ 0 .9 Choisissez une alimentation pouvant fournir la tension sous charge ainsi calculée Dans la relation ci-dessus est tenu compte d’une modulation max. du PWM de 90 % ainsi que d’une chute de tension de 2 VDC à l’étage final. Note: L'alimentation doit pouvoir absorber (par exemple dans un condensateur tampon) l'énergie refoulée lors de décélérations. Lors de l'utilisations à stabilisation électronique il faut s'assurer que la protection contre les courants de surcharge ne limite pas les modes de fonctionnement de l'unité d'asservissement. 4.2 Fonctions des potentiomètres Potentiomètre Fonction P1 IxR Compensation IxR P2 Offset P3 nmax P4 Imax Limite de courant P5 gain gain Ajustement n = 0 / I = 0 à la valeur 0 V Vitesse maximale à la valeur 10 V Edition Juillet 2009 / Doc. No. 539149-06 / Sous réserve de modification Tourner vers la gauche droite compensation douce compensation forte moteur tourne à gauche (CCW) vitesse plus lente plus bas min. 0.5 A plus bas moteur tourne à droite (CW) vitesse plus rapide plus haut max. 10 A plus haut maxon motor control 5 5.3. Variateurs de vitesse 69 maxon motor 4-Q-DC Servoamplificateur ADS 50/5 Notice d'utilisation 4.3 Ajustement des potentiomètres 4.3.1 Réglage de base Le positionnement de base des potentiomètres permet d’obtenir un fonctionnement idéal. Les appareils sous emballage original sont déjà préajustés en usine. Réglage de base des potentiomètres 4.3.2 Ajustage Mode: Réglage codeur Réglage génératrice tachymétrique Réglage compensation IxR Mode: Réglage du courant 1. P1 IxR 0% P2 Offset 50 % P3 nmax 50 % P4 Imax 50 % P5 gain 10 % Imposez la vitesse maximale (env. 10 V), puis tournez le potentiomètre P3 nmax jusqu’à l’obtention de la vitesse désirée. Mettez le potentiomètre P4 Imax à la valeur limite désirée. Le potentiomètre P4 permet d’ajuster le courant maximal dans le domaine de 0 ... 10 A de manière linéaire. Important: La valeur limite lmax doit se trouver au-dessous du courant nominal (courant permanent maximum), figurant sur la fiche des caractéristiques du moteur et n'ose dépasser 5 A en permanence. 3. Augmentez le gain du potentiomètre P5 gain lentement, jusqu’à ce que l’amplification soit suffisante. Attention: Si le moteur vibre ou fait du bruit, l’amplification est ajustée sur une valeur trop élevée. 4. Imposez une vitesse nulle, par exemple en court-circuitant la valeur de consigne d’entrée. Amenez la vitesse de rotation du moteur à zéro à l’aide du potentiomètre P2 Offset. De plus, uniquement en cas de compensation IxR: 5. Augmentez lentement le potentiomètre P1 IxR jusqu’à ce que la compensation soit suffisante pour permettre au moteur de garder sa vitesse ou de la baisser très peu, en cas de forte charge. Attention: Si le moteur vibre ou fait du bruit, l’amplification est ajustée sur une valeur trop élevée. 2. 1. 2. Mettre le potentiomètre P4 lmax à la valeur limite désirée. Le potentiomètre P4 permet d’ajuster le courant maximal dans le domaine de 0 ... 10 A de manière linéaire. Important: La valeur limite lmax doit se trouver au-dessous du courant nominal (courant permanent maximum), figurant sur la fiche des caractéristiques du moteur et n'ose dépasser 5 A en permanence Appliquer la tension prévue de 0 V et régler à l’aide du potentiomètre P2 Offset le courant du moteur à 0 A. Remarque • Valeur -10 ... +10 V correspond à un courant moteur de +Imax ... -Imax. • En fonctionnement comme régulateur de courant, les potentiomètres P1, P3 et P5 gain sont inactifs. 6 maxon motor control Edition Juillet 2009 / Doc. No. 539149-06 / Sous réserve de modification 70 5. Technologie maxon motor 4-Q-DC Servoamplificateur ADS 50/5 Notice d'utilisation 10 Schéma bloc -12V OUT +12V OUT DIP5 +5V/80mA Gnd Encoder A Encoder A\ Encoder B Encoder B\ Enable Polyfuse +5V 1K +12V 1K -12V F/V Converter Ready +5V +12V -12V Case Ground Safety 3 Earth Supply earth optional PTC 4 +Vcc 12-50VDC DIP6 5 Power Gnd +12V Current limit P8 I cont DIP1 -Set value +Set value P7 I gain P5 gain DIP4 PWM, Control & Protection Logic P6 n gain P3 n max 2 -Motor 3 LED P1 IxR DIP2 +Motor MOSFET Full-Bridge P4 Imax -Tacho Input 1 Current Detector Voltage Detector DIP3 +12V Monitor n P2 Offset -12V Monitor I 11 Dimensions Dimensions en [mm] 14 maxon motor control Edition Juillet 2009 / Doc. No. 539149-06 / Sous réserve de modification 5.3. Variateurs de vitesse 71 Encoder HEDL 5540 500 CPT, 3 Channels, with Line Driver RS 422 Cycle C = 360°e Channel A ULow Phase shift UHigh 90°e Channel B ULow UHigh Channel I ULow s3 s4 s1 s2 s 1..4 = 90°e s 45°e Direction of rotation cw (definition cw p. 150) Stock program Standard program Special program (on request) Part Numbers 110512 110514 110516 500 3 100 12 000 3 500 3 100 12 000 4 500 3 100 12 000 6 Type Counts per turn Number of channels Max. operating frequency (kHz) Max. speed (rpm) Shaft diameter (mm) overall length overall length maxon Modular System Page 179/181 179/181 179/181 179/181 179/181 180 180 180 180 180 180 180 180 180 180 181 181 181 181 181 182 182 183 183 183 183 184 184 184 184 184 184 184 184 + Gearhead Page GP 26/GP 32 KD 32, 1.0 - 4.5 Nm GP 32, 0.75 - 6.0 Nm GP 32 S 336/338 347 339/342 370-372 GP 26/GP 32 KD 32, 1.0 - 4.5 Nm GP 32, 0.75 - 6.0 Nm GP 32 S 336/338 347 339/342 370-372 + Brake Overall length [mm] / • see Gearhead 75.3 Page • • • • 63.8 GP 26/GP 32 KD 32, 1.0 - 4.5 Nm GP 32, 0.75 - 6.0 Nm GP 32 S AB 28 336/338 AB 28 347 AB 28 339/342 AB 28 370-372 AB 28 AB 28 336/338 AB 28 347 AB 28 339/342 AB 28 370-372 AB 28 GP 32, 0.75 - 4.5 Nm 340 GP 26/GP 32 KD 32, 1.0 - 4.5 Nm GP 32, 0.75 - 6.0 Nm GP 32 S • • • • 446 446 446 446 446 446 446 446 446 446 94.3 • • • • 105.8 • • • • 88.8 • 88.8 GP 32, 0.75 - 6.0 Nm KD 32, 1.0 - 4.5 Nm GP 32 S 338-344 347 370-372 GP 32, 0.75 - 8.0 Nm GP 42, 3.0 - 15 Nm GP 32 S 338-345 349 370-372 GP 32, 0.75 - 8.0 Nm GP 42, 3.0 - 15 Nm GP 32 S AB 28 338-345 AB 28 349 AB 28 370-372 AB 28 • • • 91.7 Technical Data Supply voltage VCC 5 V ± 10% Output signal EIA Standard RS 422 driver used: DS26LS31 Phase shift 90°e ± 45°e Signal rise time (typically, at CL = 25 pF, RL = 2.7 k , 25 °C) 180 ns Signal fall time 40 ns (typically, at CL = 25 pF, RL = 2.7 k , 25 °C) Index pulse width 90°e Operating temperature range -40…+100 °C Moment of inertia of code wheel 0.6 gcm2 Max. angular acceleration 250 000 rad s-2 Output current per channel min. -20 mA, max. 20 mA Option 1000 Counts per turn, 2 Channels The index signal is synchronized with channel A or B. May 2016 edition / subject to change • • • 446 446 446 446 124.3 • • • Pin Allocation Connection example 2 10 1 9 1 2 3 4 5 6 7 8 9 10 N.C. VCC GND N.C. Channel A Channel A Channel B Channel B Channel I (Index) Channel I (Index) Pin type DIN 41651/ EN 60603-13 flat band cable AWG 28 Encoder, Line Driver, DS26LS31 + Motor RE 25 RE 25 RE 25 RE 25 RE 25 RE 25, 20 W RE 25, 20 W RE 25, 20 W RE 25, 20 W RE 25, 20 W RE 25, 20 W RE 25, 20 W RE 25, 20 W RE 25, 20 W RE 25, 20 W RE 25, 20 W RE 25, 20 W RE 25, 20 W RE 25, 20 W RE 25, 20 W RE 30, 15 W RE 30, 15 W RE 30, 60 W RE 30, 60 W RE 30, 60 W RE 30, 60 W RE 35, 90 W RE 35, 90 W RE 35, 90 W RE 35, 90 W RE 35, 90 W RE 35, 90 W RE 35, 90 W RE 35, 90 W Line receiver Recommended IC's: - MC 3486 - SN 75175 - AM 26 LS 32 VCC GND Channel A R Channel A Channel B R Channel B Channel I R Channel I Terminal resistance R = typical 120 maxon sensor F IGURE 5.23 – Codeur incrémental HEDL 5540 (http://www.maxonmotor.com). 401 maxon sensor Pulse P = 180°e UHigh 72 5. Technologie DC Tacho DCT 22 0.52 Volt Important Information • Tacho with moving coil, maxon system. maxon sensor • Tacho with precious metal commutation. • To establish total inertia add motor and tacho inertias. • With the output shaft turning CW as seen from the mounting surface, the tacho output voltage will be positive at the + terminal. • A high impedance load is recommended at tacho terminals. • The tacho current should be kept low. • The indicated resonance frequency refers to the motor-tacho rotor system. Stock program Standard program Special program (on request) Part Numbers Type Shaft diameter (mm) overall length 118909 118910 3 4 overall length maxon Modular System + Motor RE 25 RE 25 RE 25 RE 25 RE 25 RE 25 RE 25, 20 W RE 25, 20 W RE 25, 20 W RE 25, 20 W RE 25, 20 W RE 25, 20 W RE 25, 20 W RE 35, 90 W RE 35, 90 W RE 35, 90 W RE 35, 90 W RE 35, 90 W Page 179/181 179/181 179/181 179/181 179/181 179/181 180 180 180 180 180 180 180 184 184 184 184 184 + Gearhead Page GP 26, 0.75 - 2.0 Nm GP 32, 0.75 - 4.5 Nm GP 32, 0.75 - 6.0 Nm GP 32, 1.0 - 4.5 Nm GP 32 S 336 338/339 342 347 370-372 GP 22, 0.5 Nm GP 26, 0.75 - 2.0 Nm GP 32, 0.75 - 4.5 Nm GP 32, 0.75 - 6.0 Nm GP 32, 1.0 - 4.5 Nm GP 32 S 329 336 338/339 342 347 370-372 GP 32, 0.75 - 6.0 Nm GP 32, 8 Nm GP 42, 3.0 - 15 Nm GP 32 S 338-344 345 349 370-372 Overall length [mm] / • see Gearhead 76.8 • • • • • 65.3 • • • • • • 89.1 • • • • Technical Data Output voltage per 1000 rpm 0.52 V Terminal resistance tacho 37.7 W Typical peak to peak ripple ≤ 6% Ripple frequency per turn 14 Linear voltage tolerance, 500 to 5000 rpm ± 0.2 % Linear voltage tolerance with 10 kΩ load resistance ± 0.7 % Polarity error ± 0.1 % Temperature coefficient of EMF (magnet) -0.02 % /°C Temperature coefficient of coil resistance +0.4 % /°C Connection example Max. current 10 mA Tolerance of the output voltage ± 15 % Rotor inertia (tacho only) < 3 gcm² Resonance frequency with motors on p. 179 – 181 > 2 kHz with motors on p. 184 > 4.5 kHz Temperature range -20 ... +65 °C 180 W T 0.1 mF 1 kW Option: Pigtails in place of solder terminals. UAC Ripple = x 100 (%) UDC Resonance frequency Motor winding-Tacho winding fR May 2016 edition / subject to change maxon sensor F IGURE 5.24 – Génératrice tachymétrique (http://www.maxonmotor.com). 4 kHz 411 Chapitre 6 Commande 6.1 Commande point-à-point Cette section s’inspire largement des notes de cours de mes collègues Wisama Khalil et Etienne Dombre [Khalil 13]. 6.1.1 Principe de la génération de mouvement Le problème, introduit au paragraphe 4.1.1, est illustré par la figure 4.1. Une fois calculée la configuration finale qf correspondant à la situation de l’organe terminal à atteindre, on doit effectuer la génération de mouvement entre q0 et qf , qui consiste à calculer les consignes du variateur. Soient respectivement !m et m les vecteurs des vitesses et accélérations articulaires maximales : – la vitesse maximale d’une articulation dépend de la vitesse admissible pour le moteur, mais aussi pour la transmission ; – l’accélération maximale se calcule elle (grossièrement) en faisant le rapport du couple maximum sur l’inertie de l’axe. Le mouvement articulaire est décrit, en toute généralité, par : q(t) = q0 + (qf q0 )P (t), 80 6 t 6 tf (6.1) La fonction d’interpolation P (t), telle que P (0) = 0 et P (tf ) = 1 permet de calculer des consignes admissibles. Il existe plusieurs façons de synthétiser P (t) de façon à satisfaire les conditions aux limites et les contraintes |q̇(t)| 6 !m et |q̈(t)| 6 m , 80 6 t 6 tf . Nous allons voir successivement trois de ces méthodes. 6.1.2 Interpolation polynomiale de degré cinq L’utilisation d’un polynôme interpolateur donnant autant de degrés de liberté qu’il y a de contraintes est un première solution pour la résolution du problème. Le choix d’un polynôme d’ordre cinq permet d’obtenir un mouvement de classe C 2 en position, vitesse et accélération, vérifiant par ailleurs les conditions aux limites : q(0) = q0 , q(tf ) = qf , q̇(0) = 0, q̇(tf ) = 0, q̈(0) = 0, q̇(tf ) = 0 (6.2) En posant P (t) = p0 + p1 t + p2 t2 + p3 t3 + p4 t4 + p5 t5 où les pi sont des coefficients réels, les conditions (6.2) impliquent que les termes p0 , p1 , p2 soient nuls. La résolution 74 6. Commande des conditions limites en tf permet elle de montrer [Khalil 13] que : ✓ ◆3 ✓ ◆4 ✓ ◆5 t t t P (t) = 10 15 +6 tf tf tf (6.3) On déduit alors q(t) et on peut par la suite montrer que les vitesses et accélérations maximales sont telles que, pour la i ème articulation : 15|qi (tf ) qi (0)| , 8tf 10|qi (tf ) qi (0)| p 2 = 3tf !mi = mi (6.4) (6.5) De ce fait, si le temps tf n’est pas imposé, mais que ce sont !mi et mi qui donnent les contraintes à respecter, on peut déduire la valeur minimale de tf possible en choisissant la valeur la plus grande entre les deux fournies par les équations (6.4) et (6.5), de sorte à satisfaire les deux contraintes. Ceci doit être fait pour l’ensemble des articulations pour satisfaire les 2n contraintes sur les vitesses et accélérations des n axes. Les courbes de position, vitesse et accélération articulaires, pour un axe, sont données à la figure 6.1, dans un cas où q0 = 0, qf = ⇡2 , !m = 4 rad.s 1 et m = 1, 5 rad.s 2 . Le temps tf résulte alors de la contrainte d’accélération (6.5), et vaut tf = 1, 74 s. F IGURE 6.1 – Mouvement articulaire généré avec une fonction polynomiale d’ordre 5, avec !m = 4 rad.s 1 et m = 1, 5 rad.s 2 . 6.1.3 Loi Bang-Bang La commande Bang-Bang permet en général de produire des mouvements à temps minimal. Elle consiste ici à choisir une accélération toujours sur les bornes admissibles : 6.1. Commande point-à-point 75 soit m , soit m . Pour générer un mouvement à vitesse de départ et d’arrivée nulle, et t qui dure tf , il faudra donc accélérer puis décélérer («à fond») pendant 2f . L’accélération est donc discontinue, mais pas les positions et vitesses. Avec les conditions aux limites : q(0) = q0 , q(tf ) = qf , q̇(0) = 0, q̇(tf ) = 0 (6.6) il résulte, par intégration, que : q(t) = q0 + 2 ✓ q(t) = q0 + ◆2 tf q0 ) pour 0 6 t 6 (6.7) 2 ✓ ◆ ✓ ◆2 ! t t tf 1+4 2 (qf q0 ), pour 6 t 6 tf (6.8) tf tf 2 t tf (qf On peut alors montrer que, pour la i ème articulation : !mi = mi |qi (tf ) qi (0)| , pour 0 6 t 6 tf 2 tf 4|qi (tf ) qi (0)| tf = , pour 6 t 6 tf 2 tf 2 (6.9) (6.10) ce qui donne comme précédemment une contrainte sur tf . Les courbes de position, vitesse et accélération articulaires, pour un axe, sont données à la figure 6.2, dans un cas où q0 = 0, qf = ⇡2 , !m = 4 rad.s 1 et m = 1, 5 rad.s 2 . Le temps tf résulte alors de la contrainte d’accélération (6.10), et vaut tf = 1, 44 s. F IGURE 6.2 – Mouvement articulaire généré avec une commande Bang-bang, avec !m = 4 rad.s 1 et m = 1, 5 rad.s 2 . 76 6.1.4 6. Commande Loi trapézoïdale en vitesse Au lieu d’effectuer comme précédemment une commande Bang-Bang, imposant aux actionneurs des commutations instantanées fréquentes 1 , on peut se limiter à une loi trapézoïdale en vitesse, autorisant des paliers à vitesse constante moins exigeants pour le moteur et permettant d’atteindre potentiellement plus vite une vitesse souhaitée. La génération de mouvement se décompose donc comme indiqué à la figure 6.3 : 1. accélération constante jusqu’à la vitesse maximale (sous certaines conditions) ; 2. accélération nulle et vitesse constante ; 3. décélération constante jusqu’à ramener l’axe à l’arrêt. F IGURE 6.3 – Vitesse et accélération dans le cas d’un profil trapézoïdal, comparaison avec la commande Bang-Bang (d’après [Khalil 13]). Les grandeurs !mi et mi représentent toujours les valeurs maximales de vitesse et accélération pour l’axe considéré. On suppose que la vitesse maximale est atteignable, ce qui implique que l’accélération soit suffisante. En posant "i = signe(qi (tf ) qi (0)), on obtient, pour la i-ème articulation : 1 qi (t) = qi (0) + "i t2 mi , pour 0 6 t 6 ⌧i (6.11) 2⇣ ⌘ ⌧i qi (t) = qi (0) + "i t !mi , pour ⌧i 6 t 6 tf ⌧i (6.12) 2 1 qi (t) = qi (tf ) "i (tf t)2 mi , pour tf ⌧i 6 t 6 tf (6.13) 2 m avec ⌧i = !m . On montre que, pour une articulation donnée, le temps minimal vaut : |qi (tf ) qi (0)| (6.14) !mi Pour que cette valeur soit identique pour tous les axes, et que les phases d’accélération soient les mêmes, il faut donc synchroniser les différentes articulations. Pour plus de détails, [Khalil 13] donne une description très détaillée de la solution. t f = ⌧i + 1. Elles sont impossibles en pratique à cause des inversions non instantanées des sens des courants dans les moteurs. 6.2. Commande à mouvement opérationnel imposé 6.2 6.2.1 77 Commande à mouvement opérationnel imposé Position du problème Résoudre le problème de la commande à mouvement opérationnel imposé consiste à produire, à chaque instant, la commande du robot manipulateur lui permettant de réaliser un mouvement opérationnel de consigne, à l’image de l’exemple de la figure 6.4. F IGURE 6.4 – Mouvement opérationnel pour souder deux pièces Plus précisément, le problème est le suivant : on cherche à asservir le robot manipulateur afin que la situation réelle x(t) de son organe terminal corresponde à la situation désirée xr (t). En d’autres termes, on souhaite réguler à zéro la fonction d’erreur : e(t) = xr (t) x(t) (6.15) Pour cela, les données du problème sont : – la configuration initiale q0 du robot manipulateur, qui est mesurée ; – le mouvement de référence, décrit par la fonction xr (t) ; – le modèle cinématique du robot manipulateur : ẋ = J(q)q̇. Remarque On a deux types de problèmes : 1) quand e(0) = xr (0) x0 = 0 : «on part bien» (suivi) ; 2) quand e(0) = xr (0) x0 6= 0 : «on part mal» (poursuite). On supposera toujours que le mouvement de consigne est réalisable par le système, c’est-à-dire que les vitesses opérationnelles désirées peuvent être produites, en tenant compte des limitations cinématiques du robot manipulateur. Dans le cas contraire, on doit se limiter à une approximation de celui-ci. Par ailleurs, on prend en compte le fait que les mouvements de consigne peuvent être définis en cours de déplacement du robot manipulateur, en particulier, à tout moment, à l’initiative de l’utilisateur. Ceci impose alors au système de commande de pouvoir répondre en temps voulu. Il est clair qu’une solution qui satisfait à cette réactivité conviendra également si le mouvement 78 6. Commande opérationnel de consigne est connu entièrement à l’instant initial. Soulignons enfin le fait que la gestion des efforts n’est pas prise en compte explicitement dans notre problème. Ainsi, dans un premier temps, cette approche conviendrait par exemple à une tâche de soudage au chalumeau, mais pas de soudage à l’arc. On trouve dans la littérature de nombreuses méthodes permettant de résoudre le problème de la commande des bras manipulateurs à mouvement opérationnel imposé [Khatib 08] ; elles sont parfois appelées algorithmes de cinématique inverse. Il existe en particulier deux méthodes : – tout d’abord, les méthodes dites d’inversion, qui utilisent le calcul d’une inverse du modèle cinématique direct ; – ensuite, la méthode dite de la transposée. Par la suite, on ne considèrera que les méthodes dites d’inversion. Le lecteur curieux pourra consulter [Sciavicco 00] pour plus de précision sur la méthode de la transposée. 6.2.2 Méthodes d’inversion Les méthodes d’inversion pour la commande à mouvement opérationnel imposé sont nombreuses [Khatib 08]. Elles consistent à calculer les vitesses généralisées nécessaires (servant de consignes au variateur) pour obtenir les vitesses opérationnelles spécifiées. En boucle ouverte, pour un bras manipulateur décrit par son modèle cinématique direct, on choisit une loi du type : q̇(t) = DJ ẋr (t), (6.16) où DJ est une inverse à droite de J(t). En effet, en pré-multipliant l’équation (6.16) par J(t), on constate alors que cette loi conduit à une erreur nulle sur la situation de l’organe terminal, si xr (0) = x0 (même situation de départ et même vitesse opérationnelle). On remarquera que dans le cas de robots non redondants, les dimensions de l’espace des configurations et de l’espace opérationnel sont identiques (même nombre de paramètres dans q et x) et l’inverse à droite DJ est simplement l’inverse J 1 . En boucle fermée, on peut choisir une loi de commande de la vitesse du type : q̇(t) = J 1 (t) (ẋr (t) + W (xr (t) (6.17) x(t))) où W est une matrice de pondération définie positive (Figure 6.5). En effet, en préd dt ẋr (t) génération de mouvement xr (t) + + W x(t) + J 1 variateur robot q(t) MGD F IGURE 6.5 – Commande cinématique dans l’espace opérationnel. capteur 6.2. Commande à mouvement opérationnel imposé 79 multipliant l’équation (6.17) par J(t), on constate que cette loi conduit à une décroissance asymptotique de l’erreur e(t) : ė(t) + W e(t) = 0 Dans le cas d’un robot redondant, possédant un nombre d’articulations supérieur au nombre nécessaire pour effectuer la tâche (dim q > dim x), il existe une infinité de solutions au problème du calcul du modèle de cinématique inverse. On calcule une inverse à droite de J [Nakamura 91, Khatib 08] : – soit en optimisant un critère sous contrainte que ẋ = J q̇, et alors l’inverse à droite pourra être une inverse généralisée, comme la pseudo-inverse J + ; – soit en augmentant la matrice Jacobienne de manière à obtenir une matrice carrée et inversible. Remarque : commande référencée capteur Dans ces techniques, qui dépassent sensiblement le cadre du cours, on utilise un capteur pour fournir les informations donnant une image de la situation de l’organe terminal. En effet, la reconstruction de cette situation par le modèle géométrique direct, dans le cas précédent, est nécessairement entachée d’erreur. Le principe de la commande reste le même, mais l’asservissement ne se fait plus sur la situation, mais par exemple sur la position dans l’image d’indices visuels (points, droites, etc.), que l’on cherche à placer de manière à positionner l’organe terminal indirectement. Le modèle, lors de l’inversion, doit alors intégrer la relation entre vitesses articulaires et vitesses des indices visuels (notion de matrice d’interaction). Ceci sera évoqué dans un autre cours... Remarque : modèle géométrique inverse numérique Le principe de commande exposé précédemment permet d’atteindre une situation désirée, en calculant la configuration correspondante itérativement. Ceci fournit donc une solution numérique au problème du modèle géométrique inverse, dont on sait qu’il peut être difficile analytiquement. Annexe A Modélisation d’un bras manipulateur de type SCARA A.1 Robot de type SCARA : présentation On désigne communément sous l’appellation de robots de type SCARA des robots à quatre axes dont la chaîne cinématique est RRP R. La figure A.1 représente deux modèles industriels de robots de type SCARA. Le second de ces robots, le Samsung RSM-5, sera l’objet de notre étude. (a) Robot EPSON EL-653M (b) Robot Samsung RSM-5 F IGURE A.1 – Exemples de robots de type SCARA A cause de leur cinématique, ces robots sont bien adaptés à tous les travaux de manipulation de palettes, de boîtes ou de cartouches, ou plus généralement d’objets devant être saisis et déplacés soit parallèlement, soit perpendiculairement à l’horizontale. On les rencontre notamment sur des chaînes de production (voir figure A.2). A.2 Robot Samsung RSM-5 : modélisation Les caractéristiques principales du robot Samsung RSM-5 sont données à la figure A.3. Le schéma A.3(a) permet notamment de comprendre la cinématique de ce robot. 82 A. Modélisation d’un bras manipulateur de type SCARA 1. On rappelle que le robot est de type RRP R, les deux dernières articulations concernant la montée–descente et la rotation de l’organe terminal autour de son axe. Dessiner le schéma cinématique de ce robot. A.2.1 Géométrie du robot Espace de travail On s’intéresse tout d’abord à l’espace de travail du robot. En l’absence d’obstacles particuliers, le premier axe vertical, les butées articulaires du robot et bien évidemment la longueur des différents axes constituent les seules limitations de l’espace de travail du robot. 1. Relever les valeurs des butées articulaires du robot. 2. Le robot étant symétrique, ses butées ont été placées en respectant cette symétrie. Représenter en vue de dessus (et en grand) les positions limites du robot, lorsque celui-ci est en butée sur les articulations 1 et 2. Il est conseillé de respecter une échelle cohérente. 3. Sur cette même figure, dessiner l’enveloppe de l’espace de travail, dans un plan horizontal donné (les articulations 3 et 4 ne sont pas actionnées). Cela se fera aisément à l’aide d’un compas et d’un rapporteur (à défaut, essayer d’être réaliste). 4. Donner les points particuliers de cette enveloppe. 5. Quelle est la dimension de l’espace opérationnel du robot ? Toutes les articulations influent-elles de manière identique sur la position de l’organe terminal ? D’après ces remarques, représenter sur un schéma en perspective l’allure du volume de travail du robot, pour une orientation quelconque de son organe terminal. 6. Pour éviter la collision de l’organe terminal avec le premier corps vertical, l’organe terminal ne peut s’approcher à moins de 155 mm cet de l’axe de ce corps. Vérifier que cette condition est remplie. On se remémorera pour cela l’antique théorème d’Al Kashi. On souhaite maintenant établir le modèle géométrique direct du robot. Paramétrage 1. Quelle précaution concernant la configuration du robot est préconisée dans le cours pour placer les repères selon la convention de Denavit-Hartenberg ? Si nécessaire refaire un schéma cinématique du robot dans une configuration adaptée. 2. Placer les repères R0 à R4 sur le schéma, en respectant les conventions de paramétrage vues en cours (paramètres de Denavit-Hartenberg modifiés). 3. Rassembler dans un tableau les paramètres de Denavit-Hartenberg modifiés : ai 1 , ↵i 1 , ri , ✓i , dont on rappellera brièvement la définition. On ajoutera à ce tableau une ligne donnant la valeur des paramètres de configuration, notés qi , dans la configuration du schéma cinématique. 4. Relever les valeurs numériques de ces paramètres. On continuera néanmoins les calculs en conservant les notations symboliques. Les valeurs numériques seront utilisées à des fins de vérification. A.2. Robot Samsung RSM-5 : modélisation A.2.2 83 Modélisation géométrique Modèle géométrique direct 1. Rappeler la définition du modèle géométrique direct. On notera q la configuration du robot et x sa situation. Quelle sont les dimensions respectives de q et x ? Quel est le degré de liberté de l’organe terminal du robot ? 2. Rappeler la formulation générale de la matrice de passage Ti 1, i d’un repère Ri 1 à un repère Ri , dans le cas où l’on respecte la convention des paramètres de Denavit-Hartenberg modifiés. 3. Calculer les matrices de passage successives du robot Ti 1, i , pour i = 1, . . . , 4. On notera Ci = cos qi , Si = sin qi , Ci+j = cos qi+j et Si+j = sin qi+j , . . . 4. Multiplier les matrices de passage entre elles (dans le bon ordre) pour obtenir le modèle géométrique direct du robot. On prendra là encore soin de respecter les recommandations du cours concernant la méthode de calcul. En particulier, on introduira des variables intermédiaires notées D1 , D2 , . . ., à chaque nouvelle addition ou multiplication entre variables déjà définies. 5. Vérifier le modèle obtenu dans au moins deux configurations : la configuration du schéma cinématique et une configuration plus quelconque, par exemple correspondant à un des points particuliers relevés sur l’enveloppe de l’espace de travail. 6. Donner l’orientation de l’organe terminal exprimée par les angles d’Euler. Est-ce la représentation de l’orientation de l’organe terminal adaptée au robot étudié ? Proposer une alternative. Modèle géométrique inverse 1. Rappeler la définition du modèle géométrique inverse. D’après la première question de la section A.2.2, que peut-on dire sur le nombre de solutions admises par ce modèle ? 2. Calculer le modèle géométrique inverse du robot. A.2.3 Modélisation cinématique 1. Rappeler la définition du modèle cinématique direct du robot et de sa matrice jacobienne, notée J(q). 2. Si l’on représente l’orientation de l’organe terminal du robot par l’angle de lacet ↵ = x4 , on a : 0 1 0 1 0 1 ẋ1 vx q̇1 Bẋ2 C B vy C Bq̇2 C B C = B C = J(q) B C . @ẋ3 A @ vz A @q̇3 A ẋ4 !z q̇4 En utilisant les éléments de cours relatifs à la composition des vitesses, calculer directement la matrice jacobienne J(q). 3. Vérifier que le résultat obtenu est exact en dérivant maintenant les équations du modèle géométrique direct. Retrouver l’expression de J(q) déterminée à la question précédente. 84 A. Modélisation d’un bras manipulateur de type SCARA 4. Le rang de la matrice jacobienne, c’est-à-dire le nombre maximum de lignes ou de colonnes indépendantes, donne le degré de liberté de l’organe terminal. En effet, celui-ci correspond à la valeur maximale du rang de J(q), lorsque q balaie l’espace des configurations. Pour le robot étudié, J(q) est de dimension 4 ⇥ 4 et de rang maximum égal à 4. On en déduit que le rang de J(q) n’est plus maximal lorsque son déterminant s’annule. Calculer l’expression du déterminant de J(q). Pour quelles configurations ce déterminant s’annule-t-il (on appelle ces valeurs les configurations singulières du robot) ? Commenter. F IGURE A.2 – Exemples d’utilisation du robot Samsung RSM-5 (a) Schéma et dimensions (b) Spécifications constructeur F IGURE A.3 – Caractéristiques du robot Samsung RSM-5 Bibliographie [Adept 13a] Adept. V+ robot programming language, 2013. http ://www.adept.com/products/software/embedded/vplus/general. [Adept 13b] Adept. Viper s650, 2013. http ://www.adept.com/products/robots/6-axis/vipers650/general. [Bernot 99] F. Bernot. Machines à Courant Continu. Constitution et fonctionnement. Techniques de l’Ingénieur, traité Génie électrique, pages D 3555 1–14, 1999. [Craig 89] J. J. Craig. Introduction to robotics : Mechanics and control. Addison-Wesley, 1989. [Educmeca 13] Educmeca. Réducteur épicycloïdal, 2013. http ://edumeca.free.fr/dotclear/themes/default/flash/engrenage.php. [Gorla 01] B. Gorla et M. Renaud. Modelling of robot manipulators. Control and applications. Communication personnelle, 2001. [Harmonic Drive 13] Harmonic Drive. Principe de fonctionnement, 2013. http ://www.harmonicdrive.de. [Khalil 86] W. Khalil et J. Kleinfinger. A New Geometric Notation for Open and Closed Loop Robots. ICRA’86, pages 75–79, avril 1986. [Khalil 99] W. Khalil et E. Dombre. Modélisation, identification et commande des robots. Hermès, 1999. [Khalil 04] W. Khalil et E. Dombre. Modeling, identification and control of robots. Butterworth-Heinemann, 2004. [Khalil 13] W. Khalil et E. Dombre. Bases de la modélisation et de la commande des robots-manipulateurs de type série. GDR Robotique, 2013. http ://www.gdr-robotique.org/cours_de_robotique. [Khatib 86] O. Khatib. Real-Time Obstacle Avoidance for Manipulators and Mobile Robots. International Journal of Robotic Research, vol. 5, no. 1, pages 90–98, 1986. [Khatib 08] O. Khatib et B. Siciliano. Handbook of robotics. Springer, 2008. [Louis 02a] J.-P. Louis et C. Bergmann. Commande Numérique des Machines. Evolution des Commandes. Techniques de l’Ingénieur, traité Génie électrique, pages D 3640 1–17, 2002. 88 Bibliographie [Louis 02b] J.-P. Louis, B. Multon, Y. Bonnassieux et M. Lavabre. Commande des Machines à Courant Continu (mcc) à Vitesse Variable. Techniques de l’Ingénieur, traité Génie électrique, pages D 3610 1–17, 2002. [Multon 04] B. Multon. Les machines synchrones autopilotÉes. ENS Cachan, antenne de Bretagne, 2004. [Murray 94] R. Murray, Z. Li et S. Sastry. A mathematical introduction to robotic manipulation. CRC Press, 1994. [Nakamura 91] Y. Nakamura. Advanced robotics : Redundancy and optimization. Addison-Wesley Longman Publishing, Boston, Etats-Unis, 1991. [Neimark 72] J. Neimark et N. Fufaev. Dynamics of nonholonomic systems, volume 33. Translations of Mathematical Monographs, 1972. [Paul 81] R. Paul. Robot manipulators : Mathematics, programming, and control. MIT press, Cambridge, Londres, Royaume-Uni, 1981. [Renaud 86] M. Renaud. Calcul analytique itératif des modèles d’un robot manipulateur. Rapport technique 86159, LAAS–CNRS, 1986. [Renaud 96] M. Renaud. Comment définir l’orientation d’un corps ? Rapport technique 96078, LAAS–CNRS, 1996. [Sciavicco 00] L. Sciavicco et B. Siciliano. Modelling and control of robot manipulators. Springer-Verlag, 2000. [Wikipedia 13] Wikipedia. Brushless DC electric motor, 2013. http ://en.wikipedia.org/wiki/Brushless_DC_electric_motor. Index angles d’Euler classiques , 12 roulis, tangage et lacet, 13 bras manipulateur série, 17 bras manipulateur anthropomorphe, 17 SCARA, 17 configuration singulière, 27 coordonnées d’un point, 3 coordonnées homogènes, 14 cosinus directeurs, 10 cosinus directeurs incomplets, 10 espace de travail, 27 groupe spécial orthogonal, 7 indice préférentiel, 30 lacet, 13 matrice de changement de base, 4 de passage, 4 de rotation, 4 matrice de passage homogène, 14 matrice jacobienne, 29 modèle cinématique direct, 29 différentiel direct, 29 géométrique direct, 23 géométrique inverse, 26 mouvement d’un point, 3 rigide, 3 nutation, 12 paramètres d’Euler complets, 11 paramètres de Denavit-Hartenberg modifiés, 19 paramètres de Denavit-Hartenberg modifiés, 18 poignet sphérique, 27 position d’un point, 3 précession, 12 rotation propre, 12 roulis, 13 situation d’un solide, 3 solide indéformable, 3 tangage, 13 trajectoire d’un point, 3 transformation rigide, 4 vecteur vitesse de rotation, 15 vecteur rotation, 10