2.5 Commande en position d`un robot
Transcription
2.5 Commande en position d`un robot
2.5 Commande en position d’un robot 2.5 75 Commande en position d’un robot 2.5.1 Introduction En robotique, une des taches de base que doit accomplir un robot consiste à se déplacer d’un point A à un point B, avec le respect éventuel d’un certain nombre de contraintes (vitesse, accéleration max, évitement d’obstacle). La commande en position du robot consiste donc à calculer les différentes consignes, en fonction du temps, afin de générer le mouvement désiré. C’est pour cela que la commande en position d’un robot est aussi appelée génération de mouvement. De manière classique, deux types de commande en position sont envisagée : – une commande en position dans l’espace articulaire q (fig 2.12a). Pour assurer le passage de la position initiale à la position finale (q i → q f ) et le controler temporellement, une génération de mouvement est nécessaire. Par exemple, si l’on souhaite synchroniser les axes pour avoir un mouvement harmonieux et controler la géométrie du déplacement du robot à chaque itération. – une commande en position dans l’espace opérationnel X (fig 2.12b). q f d Génération d’un q (t) mouvement en q T Asservissement + - qm qi (a) Xf q d (t) d X (t) Génération d’un MGI mouvement en T X Xi qi MGD Asservissement + - qm (b) Fig. 2.12 – Boucles de génération de mouvement. (a) : dans l’espace articulaire (b) : dans l’espace opérationnel. . Le choix du type de commande peut être effectué en fonction de l’espace dans lequel est décrit la trajectoire à suivre. La génération d’un mouvement directement dans l’espace articulaire présente des avantages : – le mouvement est minimal sur chaque articulation, – elle nécessite moins de calculs (pas de passage M GD M GI), Modélisation géométrique des robots - Commande en position des robots 76 – le mouvement n’est pas affecté pas le passage sur les configurations singulières, – les contraintes de couples maximum et de vitesse maximum sont connues car on les fixe aux limites physiques des actionneurs. En contrepartie, la géométrie du déplacement du robot dans l’espace opérationnel n’est pas controlée (bien qu’elle soit répétitive). Il y a donc risque de collision si l’environnement est encombré. On en déduit que ce type de mouvement conviendra d’avantage lorsque l’espace sera dégagé, et pour des déplacements rapides. Lorsque la géométrie de la trajectoire doit être contrôlée, la génération de trajectoire dans l’espace opérationnel sera préférée. Par contre, elle comporte un certain nombre d’inconvénients : – elle demande d’appliquer le M GI en chaque point de la trajectoire, – elle peut être mise en défaut lorsque la trajectoire calculée passe par une position singulière, – elle peut être mise en défaut lorsque la trajectoire calculée fait passer une articulation hors de ces limites de variation q¬[qmin ; qmax ], – les limites Cmax , Vmax étant définies dans l’espace opérationnel ne permettent pas d’utiliser au mieux les actionneurs. Le choix dépend essentiellement de la tâche à effectuer et de l’espace de travail. tâche 2.5.2 espace articulaire rapide espace de travail libre (vitesses, couples, butées) espace opérationnel “moyennement” rapide espace de travail encombré (précision, obstacle) Génération de mouvement dans l’espace articulaire Soit un robot à n degrés de liberté. Soit qi le vecteur des coordonnées articulaires initiales. Soit qf le vecteur des coordonnées articulaires finales. Soit kv le vecteur vitesse maximal. Soit ka le vecteur accélération maximal. Les caractéristiques kv , ka sont calculées en fonction de : – kv : les caractéristiques des actionneurs et des rapports de réduction des organes de transmission, – ka : le rapport des couples moteurs maximaux aux inerties maximales. Le mouvement interpolé entre q i et q f en fonction du temps t est décrit par 2.5 Commande en position d’un robot 77 l’équation suivante : q = q i + r(t)D . . q (t) =r (t)D pour 0 ≤ t ≤ tf (2.146) avec D = q f − q i . r(t) est une fonction d’interpolation telle que : r(0) = 0 et r(tf ) = 1. On peut alors écrire 2.146 comme suit : q(t) = q f (t) − [1 − r(t)]D (2.147) Plusieurs fonctions permettent de satisfaire le passage par q i à t = 0 et q f à t = tf : – interpolation polynomiale linéaire, de degré 3 ou de degré 5 – loi du Bang Bang, – loi trapèze (Bang Bang avec paliers de vitesse) 2.5.2.1 Interpolation polynomiale Les 3 modes les plus courant sont l’interpolation linéaire, l’interpolation de degré 3 et l’interpolation de degré 5. L’interpolation linéaire C’est la plus simple. L’équation du mouvement s’écrit : q(t) = q i + t .D tf (2.148) Cette loi de mouvement impose une vitesse constante le long de la trajectoire. Elle est continue en position et discontinue en vitesse. On en déduit la fonction d’interpolation : r(t) = t tf (2.149) La loi est continue en position, mais discontinue en vitesse et accélération. On obtient l’évolution suivante (fig 2.13). Pratiquement, le début (t = 0) et la fin (t = tf ) sont marqués par des à-coups. 78 Modélisation géométrique des robots - Commande en position des robots Evolution de la variable q(t) 3 2.5 q(t) 2 qi qf 1.5 1 0.5 0 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 1.4 1.6 1.8 2 1.4 1.6 1.8 2 1.4 1.6 1.8 2 Evolution de la variable dq/dt 3 2.5 2 1.5 Vmax dq/dt 1 0.5 0 −0.5 −1 −1.5 −2 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 Evolution de la variable d/dt(dq/dt) 3 2 d/dt(dq/dt) 1 0 −1 −2 −3 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 Fig. 2.13 – Degré 1 : Evolution de la position, de la vitesse et de l’accélération . 2.5 Commande en position d’un robot 79 L’interpolation de degré 3 [Craig86] Si l’on impose une vitesse nulle aux points de départ et d’arrivée, on rajoute deux contraintes supplémentaires par rapport à l’interpolation linéaire. Afin de satisfaire ces 4 contraintes, ½ q̇ i = q̇(0) = 0 (a) q̇ f = q̇(tf ) = 0 (b) ½ q(0) = q i (c) q(tf ) = q f (d) le degré minimal du polynôme est de 3. La forme générale est donnée par l’équation suivante : q(t) = a0 + a1 .t + a2 .t2 + a3 .t3 (2.150) On en déduit les relations donnant la vitesse et l’accélération : ½ q̇ = a1 + 2.a2 .t + 3.a3 .t2 q̈ = 2.a2 + 6.a3 .t (2.151) En utilisant les hypothèses (a) et (c), on en déduit les coefficients : ½ a0 = q i a1 = 0 On en déduit la fonction d’interpolation : µ ¶2 µ ¶3 t t r(t) = 3. − 2. tf tf (2.152) (2.153) En utilisant les hypothèses (b) et (d), on obtient un système de deux équations et deux inconnues. On en déduit les coefficients : ( a2 = t32 .D f (2.154) a3 = − t23 .D f 2.a2 L’accélération s’annule lorsque t = − 6.a = 3 2.3.t3f t2f .6.2 = tf . 2 Elle a donc un maximum en t = 0 et minimum en t = tf . La valeur extrèmale est : q̈max = La vitesse est maximale en t = extrèmale est : q̇max = 3.|D| . 2.tf tf 2 6.|D| t2f et nulle en t = 0 et en t = tf . La valeur On obtient l’évolution suivante (fig 2.14). 80 Modélisation géométrique des robots - Commande en position des robots Evolution de la variable q(t) 3 2.5 q(t) 2 qf 1.5 1 qi 0.5 0 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 1.4 1.6 1.8 2 1.4 1.6 1.8 2 1.4 1.6 1.8 2 Evolution de la variable dq/dt 3 2.5 2 3.|D|/(2.tf) 1.5 dq/dt 1 0.5 0 −0.5 −1 −1.5 −2 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 Evolution de la variable d/dt(dq/dt) 6.|D|/(tf.tf) 6 4 d/dt(dq/dt) 2 0 −2 −4 −6.|D|/(tf.tf) −6 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 Fig. 2.14 – Degré 3 : Evolution de la position, de la vitesse et de l’accélération . 2.5 Commande en position d’un robot 81 L’interpolation de degré 5 [Binf ord77] Si de plus l’on impose une accélération nulle aux points de départ et d’arrivée, on rajoute deux contraintes supplémentaires par rapport à l’interpolation de degré 3. Afin de satisfaire ces 6 contraintes, ½ q̈ i = q̈(0) = 0 (a) q̈ f = q̈(tf ) = 0 (b) ½ q̇ i = q̇(0) = 0 (c) q̇ f = q̇(tf ) = 0 (d) ½ q(0) = q i (e) q(tf ) = q f (f ) le degré minimal du polynôme est de 5. La forme générale est donnée par l’équation suivante : q(t) = a0 + a1 .t + a2 .t2 + a3 .t3 + a4 .t4 + a5 .t5 (2.155) On en déduit les relations donnant la vitesse et l’accélération : ½ q̇ = a1 + 2.a2 .t + 3.a3 .t2 + 4.a4 .t3 + 5.a5 .t4 q̈ = 2.a2 + 6.a3 .t + 12.a4 .t2 + 20.a5 .t3 En utilisant les hypothèses (e), (c) et a0 a1 a2 (2.156) (a), on en déduit les coefficients : = qi = 0 = 0 (2.157) En utilisant les hypothèses (f ), (d) et (b), on obtient un système de trois équations et trois inconnues. On en déduit les coefficients : .D a3 = 10 t3f 15 a4 = − t4 .D (2.158) f 6 a5 = 5 .D tf On en déduit la fonction d’interpolation : µ ¶3 µ ¶4 µ ¶5 t t t r(t) = 10. − 15. + 6. tf tf tf L’accélération s’annule lorsque t = 10.|D| √ 2 q̈min = − √ 2 q̈max = 10.|D| 3.t 3.t f tf . 2 (2.159) Elle a un maximum et un minimum : f La vitesse est maximale en t = extrèmale est : q̇max = 15.|D| . 8.tf tf 2 et nulle en t = 0 et en t = tf . La valeur On obtient l’évolution suivante (fig 2.15). 82 Modélisation géométrique des robots - Commande en position des robots Evolution de la variable q(t) 3 2.5 q(t) 2 qi qf 1.5 1 0.5 0 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 1.4 1.6 1.8 2 1.4 1.6 1.8 2 1.4 1.6 1.8 2 Evolution de la variable dq/dt 3 2.5 15.|D|/8.tf 2 1.5 dq/dt 1 0.5 0 −0.5 −1 −1.5 −2 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 Evolution de la variable d/dt(dq/dt) (10.|D|)/(sqrt(3).tf.tf) 6 4 d/dt(dq/dt) 2 0 −2 −4 −6 − (10.|D|)/(sqrt(3).tf.tf) 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 Fig. 2.15 – Degré 5 : Evolution de la position, de la vitesse et de l’accélération . 2.5 Commande en position d’un robot 2.5.2.2 83 Loi bang-bang Dans ce cas le mouvement est représenté par une phase d’accélération constante t jusqu’à 2f , puis une phase de deccélération constante. On impose les 4 contraintes : ½ q̇ i = q̇(0) = 0 (a) q̇ f = q̇(tf ) = 0 (b) ½ q(0) = q i (c) q(tf ) = q f (d) Le mouvement est donc continu en position et en vitesse. Il est discontinu en accélération. La position est donnée par l’ensemble des relations suivantes : q(t) = h q i + 2 · ( ttf )2 .D q(t) = q i + −1 + 4 · t tf pour i − 2 · ( ttf )2 .D 0 tf 2 t ≤ t ≤ 2f ≤ t ≤ tf (2.160) On en déduit les relations donnant la vitesse et l’accélération : ( tf P our 0 ≤ t ≤ 2 ( tf ≤ t ≤ tf P our 2 q̇ = 4 · ( tft2 ).D q̈ = ( tf42 ).D q̇ = q̈ = 4 tf − 4 · ( tft2 ).D −( tf42 ).D (2.161) (2.162) L’accélération a un maximum et un minimum : q̈max = ( tf42 ).D, q̈min = −( tf42 ).D La vitesse est maximale en t = extrèmale est : q̇max = 2.|D| . tf tf 2 et nulle en t = 0 et en t = tf . La valeur On obtient l’évolution suivante (fig 2.16). 84 Modélisation géométrique des robots - Commande en position des robots Evolution de la variable q(t) 3 2.5 qf q(t) 2 1.5 1 qi 0.5 0 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 1.4 1.6 1.8 2 1.4 1.6 1.8 2 1.4 1.6 1.8 2 Evolution de la variable dq/dt 3 2.5 2.|D|/tf 2 1.5 dq/dt 1 0.5 0 −0.5 −1 −1.5 −2 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 Evolution de la variable d/dt(dq/dt) 6 4.|D|/(tf.tf) 4 d/dt(dq/dt) 2 0 −2 −4.|D|/(tf.tf) −4 −6 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 Fig. 2.16 – Loi bang-bang : Evolution de la position, de la vitesse et de l’accélération . 2.5 Commande en position d’un robot 85 Remarque : temps minimum . Si tf n’est pas spécifié, on recherche en général le temps minimum pour faire le déplacement q i → q f en respectant les contraintes de vitesse et d’accélération. Généralement on calcul le temps minimum sur chaque articulation séparemment puis on effectue la coordination des articulations sur un temps commun. La coordination est nécessaire à deux titres : – harmonie du mouvement global du robot – contrôle de la trajectoire et de la géométrie du robot. Les deux étapes sont donc : – calcul du temps minimum tf : il dépend de la méthode d’interpolation retenue. Il consiste en fait à saturer la vitesse et/ou l’accélération. Pour le calcul de chacun des tf j , on se sert des résultats suivants : Interpolation linéaire Interpolation de degré 3 tf j = tf j = M AX h |Dj | kvj 3·|Dj | , 2·kvj q 6·|Dj | kaj q 10·|Dj | √ 3·kaj Interpolation de degré 5 tf j = M AX h 15·|Dj | , 8·kvj Loi Bang-Bang tf j = M AX h 2·|Dj | ,2 kvj · q i |Dj | kaj i i – Pour la coordination des axes, on impose pour chaque axe tf M AX[tf 1 , tf 2 , · · · tf n ]. = 86 Modélisation géométrique des robots - Commande en position des robots 2.5.2.3 Loi trapèze : loi bang-bang avec palier de vitesse Avec une loi bang-bang, le temps minimal est assuré, soit en saturant la vitesse, soit en saturant l’accélération. Lorsque la vitesse est saturée, le fait d’ajouter un palier permet aussi de saturer l’accélération, et de diminuer le temps de parcours. Evolution de la variable dq/dt 3 2.5 2 Loi trapèze : saturation de l’accélération 1.5 kv dq/dt 1 0.5 0 −0.5 Loi bang−bang : saturation de la vitesse −1 −1.5 −2 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 1.4 1.6 1.8 2 1.8 2 Evolution de la variable d/dt(dq/dt) loi trapèze : saturation de l’accélération 6 ka loi bang−bang : saturation de la vitesse 4 d/dt(dq/dt) 2 0 −2 −4 −ka −6 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 1.4 1.6 Fig. 2.17 – Loi trapèze et bang-bang : Evolution de de la vitesse et de l’accélération . Si la vitesse est saturée sur l’articulation j, d’après le tableau 2.5.2.2, on voit que : – tf ≥ 2·|Dj | kvj lorsque que l’on veut saturer la vitesse 2.5 Commande en position d’un robot q 87 |D | – tf ≥ 2 · kajj lorsque que l’on veut saturer l’accélération par conséquent l’existence d’un palier de vitesse est donné par : s 2 · |Dj | |Dj | >2· kvj kaj (2.163) En élevant au carré, on obtient la condition d’existance du palier : |Dj | > 2 kvj kaj (2.164) La loi trapèze est optimale en temps : elle est parmi celles qui assurent une continuïté en vitesse. La position est donnée par l’ensemble des relations suivantes : 2 qji + t2 · kaj · sgn(Dj ) qj (t) = τ qj (t) = qji + (t − 2j ) · kvj · sgn(Dj ) q (t) = q f − 1 · (t − t)2 · k · sgn(D ) fj aj j j j 2 0 ≤ t ≤ τj τj ≤ t ≤ tf j − τj pour tf j − τj ≤ t ≤ tf j (2.165) On en déduit les relations donnant la vitesse et l’accélération : P our 0 ≤ t ≤ τj ½ P our τj ≤ t ≤ tf j − τj P our tf j − τj ≤ t ≤ tf j ½ q̇j (t) = t · kaj · sgn(Dj ) q̈j (t) = kaj · sgn(Dj ) ½ q̇j (t) = kvj · sgn(Dj ) q̈j (t) = 0 q̇j (t) = (tf j − t) · kaj · sgn(Dj ) q̈j (t) = −kaj · sgn(Dj ) avec τj = kvj kaj On obtient l’évolution suivante (fig 2.18). (2.166) (2.167) (2.168) (2.169) 88 Modélisation géométrique des robots - Commande en position des robots Evolution de la variable q(t) 3 2.5 q(t) 2 qf 1.5 1 qi 0.5 0 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 1.4 1.6 1.8 2 1.4 1.6 1.8 2 1.4 1.6 1.8 2 Evolution de la variable dq/dt 3 2.5 2 1.5 kv dq/dt 1 0.5 0 −0.5 −1 −1.5 −2 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 Evolution de la variable d/dt(dq/dt) 6 ka 4 d/dt(dq/dt) 2 0 −2 −4 −ka −6 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 Fig. 2.18 – Loi trapèze : Evolution de la position, de la vitesse et de l’accélération . 2.5 Commande en position d’un robot 89 L’aire du trapèze représentant l’évolution des vitesses, est égale à la distance parcourue dans l’intervalle [0; tf j ]. On a donc : Rτ R t −τ |Dj| = |qjf − qji | = 2 · 0 j kaj · t · dt + τjf j j kvj · dt (2.170) k 2 |Dj| = kvj · tf j − kvjaj On en déduit le temps minimal pour l’axe j. ( kvj + |Dj| tf j = kaj kvj tf j = τj + (2.171) |Dj| kvj Pour synchroniser les différents mouvements des axes 1, 2, · · · , n deux méthodes ont été proposées. Méthode du temps minimal [Tondu 84] Dans cette méthode le temps optimal tf = M axj [tf j ] est conservé. Soit k l’articulation contraignante imposant tf = tf k . L’articulation j est synchronisée par rapport à sa loi propre en augmentant la durée du palier de vitesse. Les phases d’accélération et de déccélération restant identiques à celles de la loi propre. La loi synchronisée s’obtient en réalisant une homothétie d’un rapport λj sur sa loi propre. On obtient l’évolution suivante (fig 2.19). Evolution de la variable dq/dt 2 1.5 Loi propre Loi homothétique rapport lambdaj kvj 1 dq/dt kaj lambdaj . kvj 0.5 lambdaj . kaj t 0 tfk tfj −0.5 −1 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 1.4 1.6 1.8 2 Fig. 2.19 – Loi trapèze : Evolution de la vitesse . |D | tf = τj + λj ·kjvj représente la durée de synchronisation. En fait, τj reste constant. On peut reprendre le calcul de l’intégrale précédent en introduisant λj . Comme : 90 Modélisation géométrique des robots - Commande en position des robots tf = τj + On en déduit : |Dj | λj · kvj λj = =⇒ tf − τj = |Dj | λj · kvj (2.172) |Dj | tf j − τj = (tf − τj ) · kvj tf − τj (2.173) Méthode proportionnelle Avec cette méthode, les lois de vitesses des diverses articulations sont homothétiques et comportent des phases d’accélération et de freinage de même durée τ . On obtient l’évolution suivante (fig 2.20). Evolution de la variable dq/dt 2 1.5 dq/dt = lambdaj . kvk j=k 1 dq/dt j=n 0.5 j=2 j=1 t 0 tau tf−tau tf −0.5 −1 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 1.4 1.6 1.8 2 Fig. 2.20 – Loi trapèze : Evolution de la vitesse . On a alors : q̇j (t) = λj · q̇k (t) pour j = 1, 2, · · · , n (2.174) Classiquement dans cette méthode les lois de vitesses sont déduites par homothétie de la loi de vitesse de l’articulation contraignante k. On a : q̇k (t) = λk · q̇k (t) donc λk = 1 (2.175) Dans certains cas, il n’est pas possible de respecter des contraintes d’accélérations ou bien celles de vitesses pour une ou plusieurs articulations. On est alors obligé d’introduire une marge de temps ∆t et de recalculer les rapports d’homothétie compte tenu de la nouvelle durée du mouvement tf = tf k +∆t. 2.5 Commande en position d’un robot 91 Cette méthode ne donne pas le temps minimum (car soit il faut ralonger τ (accélération), soit il faut ralonger la durée du palier de vitesse (vitesse)). Il existe une alternative à cette méthode que nous allons présenter maintenant. Cette méthode suppose le calcul d’une constante de temps τ de la phase d’accélération à priori différent du τj optimal des lois propres de chacunes des articulations. Soit λj · kvj la vitesse de la loi synchronisée pour l’articulation j. Soit νj · kaj l’accélération de la loi synchronisée pour l’articulation j qui produit le mouvement. Calculons τ qui assure un temps tf minimum. Considérons deux articulations. Les temps de parcours minimaux pour ces deux articulations sont : |D1 | kv1 |D2 | kv2 tf 1 = τ1 + tf 2 = τ2 + On obtient l’évolution suivante (fig 2.21). Evolution de la variable dq/dt 2 1.5 lambda1 . kv1 kv1 1 lambda2 . kv2 dq/dt kv2 0.5 0 tau1 tf1 tf2 tf tau2 −0.5 tau −1 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 1.4 1.6 1.8 2 Fig. 2.21 – Loi trapèze : Evolution de la vitesse . La loi synchronisée est telle que le temps tf : tf = τ1 + avec |D1 | |D2 | = τ2 + kv1 kv2 (2.176) 92 Modélisation géométrique des robots - Commande en position des robots τ1 = τ2 = λ1 ·kv1 ν1 ·ka1 et λ2 ·kv2 ν2 ·ka2 tf = M AX[tf 1 , tf 2 ] On doit calculer λj et νj pour rendre tf minimum. On veut un τ fixe. On a donc : τ = τ 1 = τ2 = λ1 · kv1 λ2 · kv2 = ν1 · ka1 ν2 · ka2 (2.177) De plus, comme τ = τ1 = τ2 et tf = tf 1 = tf 2 , on a : |D2 | |D1 | = λ1 · kv1 λ2 · kv2 On en déduit deux relations : λ2 = λ1 · ν = ν · 2 1 kv1 kv2 ka1 ka2 (2.178) · |D2 | |D1 | · |D2 | |D1 | (2.179) Pour satisfaire les contraintes de vitesse, on a : 0 ≤ λ1 ≤ 1 kv2 |D1 | ⇒ 0 ≤ λ1 ≤ · kv1 |D2 | 0 ≤ λ2 ≤ 1 Pour satisfaire les contraintes d’accélération, on a : 0 ≤ ν1 ≤ 1 ka2 |D1 | ⇒ 0 ≤ ν1 ≤ · ka1 |D2 | 0 ≤ ν2 ≤ 1 (2.180) (2.181) Le temps tf minimum est obtenu lorsque λ1 et ν1 sont les plus grands et satisfont les contraintes suivantes : h v2 λ = M IN 1, kkv1 · 1opt h ν1opt = M IN 1, ka2 · ka1 |D1 | |D2 | |D1 | |D2 | i (2.182) i Dans ce cas la durée optimale de la phase d’accélération est : τopt = λ1opt kv1 · ν1opt ka1 (2.183) 2.5 Commande en position d’un robot 93 Ces relations sont généralisables à n articulations, en écrivant que : h i kvj |D1 | λ = M IN 1, · 1opt kv1 |Dj | j = 2, 3, · · · , n h i kaj 1| j = 2, 3, · · · , n pour ν1opt = M IN 1, ka1 · |D |Dj | j = 1, 2, · · · , n τ = λ1opt · kv1 = λjopt · kvj opt ν1opt ka1 νjopt kaj (2.184) Remarque : Si pour une articulation j donnée, la loi optimale n’atteint pas la vitesse maximale kvj , on remplace dans les formules précédentes le terme kvj par 0 la vitesse maximale effectivement atteinte kvj . Cette situation se présente lorsque : |Dj | < 2 kvj . kaj On obtient l’évolution suivante (fig 2.22). Evolution de la variable dq/dt 3 kvj 2.5 kvj’ 2 1.5 dq/dt 1 0.5 t 0 tfj −0.5 −1 −1.5 −2 0 0.2 0.4 0.6 0.8 1 t (secondes) 1.2 1.4 1.6 1.8 2 Fig. 2.22 – Loi trapèze : cas où la vitesse n’est pas saturée . 0 On en déduit : kvj = p |Dj | · kaj En effet, en laissant tomber le terme sgn(Dj ), on a : qj ( t2f ) = qji + t q̇j ( 2f ) = tf 2 ( tf 2 ) 2 2 · kaj 0 · kaj = kvj ⇒ |Dj | 2 0 kvj = ( tf 2 ) 2 2 · kaj p = |Dj | · kaj t ⇒ ( 2f ) = q |Dj | kaj Modélisation géométrique des robots - Commande en position des robots 94 2.5.3 Génération de mouvement rectiligne dans l’espace opérationnel Nous nous restreindrons à ce type de mouvement car la génération de mouvement dans l’espace opérationnel devient vite complexe. On cherche à appliquer un mouvement rectiligne au point outil (OE origine du repère RE lié à l’outil). Soit O TE i la matrice de transformation homogène décrivant la situtation initiale de l’outil dans le repère R0 . Soit O TE f la matrice de transformation homogène décrivant la situtation finale de l’outil dans le repère R0 . ¸ ¸ · f Ai P i A Pf f O On définit : TE = TE = 0 1 0 1 On décompose le mouvement en un mouvement de : – rotation autour d’un axe u de l’organe terminal pour aligner Ai avec Af , – translation en ligne droite entre les origines OE i et OE f . O i · Les deux mouvements se terminent en même temps. On a donc : O f O i TE = TE · T (u, θ) = · Ai P i 0 1 ¸ ¸ · A(u, θ) P · 0 1 (2.185) Soit : – kv1 et ka1 les vitesses et accélérations maximales pour la rotation – kv2 et ka2 les vitesses et accélérations maximales pour la translation Le calcul de u et θ est obtenu à partir de la relation suivante : Ai .A(u, θ) = Af (2.186) A(u, θ) représente une rotation d’un angle θ autour d’un axe u. si ¤ £ A(u, θ) = [Ai ]T · Af = ni · sf nf af ai si · sf si · nf si · af A(u, θ) = ni · sf ni · nf ni · af ai · s f ai · nf ai · af (2.187) (2.188) 2.5 Commande en position d’un robot 95 or on a vu que : ux uy .(1 − cθ) − uz .sθ ux uz .(1 − cθ) + uy .sθ u2x .(1 − cθ) + cθ uy uz .(1 − cθ) − ux .sθ u2y .(1 − cθ) + cθ A(u, θ) = ux uy .(1 − cθ) + uz .sθ ux uz .(1 − cθ) − uy .sθ uy uz .(1 − cθ) + ux .sθ u2z .(1 − cθ) + cθ (2.189) ou bien A(u, θ) = u.uT .(1 − cθ) + I3 .cθ + û.sθ (2.190) De ces différentes expressions on en déduit : ¤ £ i f 1 i f i f · s + n · n + a · a − 1 s cθ = · 2 p 1 i · nf − ni · af )2 + (si · af − ai · sf )2 + (ni · sf − si · nf )2 · sθ = (a 2 θ = AT AN 2(sθ, cθ) i f i f · n − n · a a 1 · s i · a f − ai · s f 2·sθ u = ni · sf − si · sf (2.191) L’ensemble des méthodes d’interpolation mises en œuvre dans l’espace articulaire peuvent être mises en œuvre dans l’espace opérationnel. Compte tenu du déplacement total θ et des contraintes kv1 et ka1 , on calcule le temps minimal tf 1 . On procède de manière identique pour déterminer pour déterminer tf 2 imposé par le mouvement de translation sachant que la distance parcourue est : q f i (2.192) D = kP − P k = (Pxf − Pxi )2 + (Pyf − Pyi )2 + (Pzf − Pzi )2 La synchronisation des deux types de mouvement permet de trouver un commun tf . Le mouvement résultant est tel que · ¸ A(t) P (t) O TE (t) = avec 0 1 : ¯ ¯ P (t) = P i + r(t)(P f − P i ) ¯ ¯ A(t) = Ai · A(u, r(t) · θ) (2.193) où r(t) représente la fonction d’interpolation retenue. On pourrait également écrire : ¯ ¯ P (t) = P f − (1 − r(t))[P f − P i ] ¯ ¯ A(t) = Af · A(u, −(1 − r(t)) · θ) (2.194) 96 Modélisation géométrique des robots - Commande en position des robots Remarque : Si l’on choisit de calculer la rotation autour d’un axe fixe par rapport à R0 , alors il faut réécrire la relation exprimant le mouvement de rotation en composant à gauche : A(u, θ).Ai = Af (2.195) Bibliographie [DH55] Denavit J and Hartenberg R.S. A Kinematic notation for lower pair mechanism based on matrices. Trans. of ACME, J. of Applied Mechanics, 22 :215–221, June 1955. [Fou80] A. Fournier. Génération de mouvements en robotique : application des inverses généralisées et des pseudo-inverses. PhD thesis, USTL, Mntpellier, April 1980. [GBF85] A.A Goldenberg, B. Benhabib, and R.G. Fenton. A complete generalized solution to inverse kinematics of robots. IEEE J. of Robotics and Automation, RA-1(1) :14–20, 1985. [KC] Khalil W. and Creusot D. Symoro+ : a system for the symbolic modeling of robots. Robotica, 15 :153–161. [LZ83] C.S.G. Lee and M. Ziegler. A geometric approach in solving the inverse kinematics of PUMA robots. In Proc. 13th Int. Symp on Industrial Robots, volume 16, pages 1–18, 1983. [Pau81] R.C.P Paul. Robot manipulators : mathematics, programming an d control. 1981. [Pie68] D.L Pieper. The Kinematics of manipulators under computer control. PhD thesis, Stanford University, 1968. [Ren80] M. Renaud. Contribution a la modélisation et à la commande dynamiques des robots manipulateurs. PhD thesis, UPS, Toulouse, September 1980. [SS94] L. Sicavicco and B. Sciavicco. Modeling and control of robot manipulators. McGraw Hill, 1994. [WE84] W.A. Wolovich and H. Elliot. A computational technique for inverse kinematics. In 23 IEEE Conf. on Decision and Control, pages 1359–1353, Las Vegas, December 1984.