• fr Français
  •  
  •   Bienvenue
  •   De la recherche
  •   Découvrir
  •   Approfondir
  •   Itinéraires
  •   C'était hier
  •   Débattre
  •   Ludique
  •   Lire et voir
 
Pour en savoir plus sur des notions fondamentales
 
  • partager par courriel
  • twitter
  • facebook
  • netvibes
  • delicious
  • viadeo
  • Partager
 Imprimer
Contactez-nous !
 
Auteur(s)
Bernard Espiau (Chercheur)
Date de parution
26/05/2008
Sommaire du document
  1. Quelle commande pour quels robots ?
  2. Ca y est, on va le faire bouger
  3. Mais que va-t-on faire de ce robot ?
Document publié sous licence Creative Commons

 

Voir la thématique
  • Robotique
Mots-clés
  • Robot
  • Mouvement
http://interstices.info/commande-robot

Commander les robots  

précédent Page 2 / 3 suivant   

2. Ca y est, on va le faire bouger

Lorsque l’on pose la main sur la souris, on lui applique en fait des forces qui vont permettre son déplacement. L’étude du mouvement des corps soumis à des forces aussi diverses que la pesanteur ou l’action d’un moteur s’appelle la dynamique. Choisir les forces à appliquer pour obtenir le mouvement que l’on souhaite, tout en tenant compte du mouvement réel que l’on observe, est un problème de commande. C’est ce que nous allons à présent étudier, dans le cas particulier où le système mécanique n’est autre que notre bras de robot.

Le pendule de Tournesol

Schéma du pendule de Tournesol.

À ce stade, il était nécessaire de convoquer une éminente personnalité scientifique pour nous expliquer quelques rudiments de dynamique et de commande. Nous avons eu la chance de rencontrer le célèbre Professeur Tournesol, au moment où il travaillait sur son fameux pendule. Voici un verbatim de notre entretien.

Professeur Tournesol : Un peu plus à l’ouest...

Interstices : Professeur, pouvez-vous nous parler de la dynamique de votre pendule ?

Professeur Tournesol : De la dynamite, où ça ?

Interstices : De la DYNAMIQUE !

Professeur Tournesol : Ah oui... Eh bien voyez-vous, si je ne bouge pas la main, et en assimilant le fil à une tige rigide sans masse de longueur l, mon pendule est en quelque sorte un système à deux rotations, dont l’extrémité (une masse ponctuelle de valeur m) se déplace sur une portion de sphère. Mais pour simplifier, je vais en bloquer une et le laisser osciller dans un plan vertical. Son mouvement résultera alors de l’action de mon fluide magnétique personnel...

Interstices : Professeur, je vous en prie...

Professeur Tournesol : Bon, oublions cela. Mon pendule, qui est à présent un système à une dimension, repéré par l’angle ? [theta] de sa tige avec la verticale, est soumis à plusieurs forces, dont essentiellement la pesanteur et l’inertie. L’équation de son mouvement ressemble à la fameuse équation F ? m? = 0 [F moins m gamma égale zéro], qui exprime que l’accélération ? [gamma] d’un corps de masse m est d’autant plus élevée que la force F qu’on lui applique est importante. Je dirai même plus, l'équation du mouvement du pendule est [il sort de je ne sais où un bout de papier chiffonné et un minuscule crayon, puis griffonne à toute vitesse en marmonnant] :

[moins m g sinus de theta plus I dérivée seconde de theta égale zéro].

Interstices : ? ? ?

Professeur Tournesol : Quelle tête vous faites ! On dirait le capitaine Haddock devant une bouteille d’eau minérale... Bon, je vais essayer de vous expliquer. Dans le cas de mon pendule, quelle est la force appliquée F ? C’est juste la pesanteur, qui fait tomber la boule, puisque vous refusez d’admettre la puissance de mon fluide. Et vous voyez bien que si le pendule que je tiens est vertical, celle-ci est nulle, alors qu’elle est maximale à l’horizontale : d’où F = ?mg sin ?, où m est la masse de la boule et g l'accélération de la pesanteur, égale à 9,81 m/s2 , mg étant alors tout simplement son poids. Quant à l’accélération, le seul mouvement présent est la rotation, définie par l'angle ?. C’est donc l’accélération de celle-ci qui est considérée, c’est-à-dire sa dérivée seconde, qu'on note ? surmonté de deux points, la dérivée première étant la vitesse, qu'on note ? surmonté d'un point.
Et pour finir, rappelez-vous que, quand on tourne, c’est l’inertie qui compte, et non la masse seule... C’est ce que j’appelle I, qui dépend d'ailleurs de la masse de la boule et de la longueur du fil, elle vaut ici ml2.
Et le tout s’appelle une équation différentielle, c’est-à-dire une équation dont l’inconnue n’est pas une valeur mais une fonction - c'est l'angle de rotation qui varie - et dont les termes font intervenir les dérivées de la fonction. Ici, elle est du deuxième ordre, car comme je l’ai dit, elle implique une dérivée seconde, l’accélération.

Interstices : Bien. À présent, j’ai un moteur, et je voudrais positionner le pendule à un angle donné ?d [theta indice d]. Comment faire ?

Professeur Tournesol : En fer ? Non, plutôt en alliage, c’est plus léger.

Interstices : COMMENT MOTORISER LE PENDULE ?

Professeur Tournesol : Oui, oui, j’ai compris, je ne suis pas sourd... Installons donc votre moteur sur l’axe, et supposons qu’il soit capable de fournir un couple C. Nous voulons donc positionner notre pendule à l’angle ?d, c'est notre consigne. Alors c’est tout simple, il suffit de trouver le « bon » couple C.

Interstices : Ben voyons... Et où le trouve-t-on ce « bon couple »? Un peu plus à l’ouest ?

Professeur Tournesol : Pas exactement. En fait, utiliser un moteur revient à ajouter une force extérieure C à la pesanteur, et la dynamique du pendule est à présent [il modifie la formule sur son papier] :

[C moins m g sinus de theta plus I dérivée seconde de theta égale zéro].

En regardant le pendule, on devine bien que, d’abord, le couple doit être positif si ? est plus petit que ?d et négatif dans le cas contraire, juste histoire de tourner dans le bon sens. Et l’on a envie de corriger d’autant plus fortement que l’écart sera important. Donc, on introduit un coefficient kp positif qui « règle » l’ampleur de la correction, et on obtient un truc du genre C = ?kp(?d??) [C égale moins k indice p facteur de theta indice d moins theta].

Interstices : C’est tout ?

Professeur Tournesol : Ah, cette toux ? Oui, j’ai un peu pris froid. Mais pourquoi changez-vous sans cesse de sujet ? Ce n’est pas fini : si on en reste là, le pendule va dépasser ?d, puis revenir en arrière, et ainsi de suite... et cela n’en finira jamais. On va donc ajouter un machin pour le freiner : c’est un terme qui dépend de la vitesse (dérivée de l'angle), et dont l’intensité de l’action est réglée par un autre coefficient, le coefficient positif kv, appelé « coefficient d’amortissement ». Ce qui freine, c'est donc le produit de ce coefficent d'amortissement kv et de la vitesse angulaire dérivée de ?. Et finalement le couple de commande à appliquer est calculé ainsi
[il reprend son papier, saisit son crayon et ajoute en dessous de l'équation précédente] :

[C égale moins I facteur de entre parenthèses k indice p facteur de entre parenthèses theta indice d moins theta fermer la parenthèse moins k indice v dérivée de theta fermer la parenthèse plus mg sinus de theta]

Interstices : Euh, attendez... je retrouve bien le truc ?(kp(?d??)), le machin kv dérivée de ?, mais vous avez aussi rajouté des choses bizarres...

Professeur Tournesol : Eh bien quoi ? C’est évident, non ? Le dernier terme, dans l’expression du couple calculé C qui constitue la commande, permet d’annuler l’effet de la pesanteur dans cette expression, c’est-à-dire le poids de la boule ; c’est en quelque sorte une pesanteur inversée !
Quant à l’introduction de l’inertie I dans la commande, elle permet d’avoir également un comportement indépendant de la valeur de I. Avec cette commande, vous remplacez ma boule en acier par une bille de plastique, ça ne change rien du tout.
Et, finalement, en appliquant la commande donnée par la première équation au système donné par cette deuxième équation, on obtient ce que l’on appelle un système bouclé, dont l’équation se réduit à [et il ajoute une troisième ligne de pattes de mouche] :

[dérivée seconde de theta égale moins k indice v dérivée de theta moins k indice p facteur de theta indice d moins theta]

Interstices : Et alors ? Rien ne prouve que ça marche, votre affaire !

Professeur Tournesol : Mais il faut tout vous dire ! Il s’agit, là encore, d’un magnifique spécimen d’équation différentielle linéaire du second degré. Je vais vous expliquer ce qu’elle signifie, c’est-à-dire vous montrer que le pendule va se comporter comme nous l’avons prévu en choisissant notre commande.
Grâce à cette équation, l’angle ? va évoluer vers ?d d’une façon bien déterminée. Oublions tout d’abord provisoirement le terme en vitesse dérivée de ?. On voit que l’accélération dérivée seconde de ? sera proportionnelle à l’écart entre la valeur instantanée et la valeur désirée de l’angle : plus on sera loin, plus on va accélérer pour s’approcher de la valeur cible, et inversement.
Supposons maintenant que l’on soit très près de cette valeur désirée. Alors, on peut oublier un moment à son tour le terme (?d??) qui est petit, et s’intéresser au terme ?kv dérivée de ?. L’accélération dépend donc de la vitesse à laquelle on se trouve. Si celle-ci est grande et dans le bon sens, alors on va freiner fortement, comme lorsque l’on arrive trop vite à un péage autoroutier.
Inversement, si la vitesse est grande et dans le mauvais sens (c’est-à-dire tendant à éloigner l’angle de sa valeur désirée), alors on accélère très vivement pour la remettre dans le bon sens. Comme je vous l’ai déjà dit, tout ceci se « règle » en modifiant les paramètres positifs kp et kv, que l’on appelle les gains de l’asservissement.
Et finalement, comme disent les professionnels, nous avons ainsi réalisé ici une commande proportionnelle dérivée avec, de plus, une compensation de la dynamique du pendule qui marche bien grâce aux termes I et ?mg sin ? de la commande.

Interstices : Mais...

Professeur Tournesol : Bien évidemment, ceci suppose que nous soyons capables de mesurer l’angle ? et la vitesse angulaire dérivée de ? de notre pendule. Il faut donc disposer de capteurs, par exemple intégrés dans les moto-réducteurs.

Interstices : Les motos ?

Professeur Tournesol : Un moto-réducteur, c'est un moteur particulier, avec des engrenages intégrés pour mieux démultiplier sa force et contrôler la position ou l'orientation d'un degré de liberté...

Interstices : Merci Professeur. Et je suppose que tout ceci se généralise très bien à des systèmes articulés plus complexes ?

Professeur Tournesol : Bien sûr que non, ceci se généralise très bien à des systèmes articulés plus complexes, et d’ailleurs à toutes sortes de systèmes comme le contrôle de la température avec un thermostat ou celui du niveau d’eau dans un réservoir. Cela s’appelle de l’automatique. Bon maintenant rendez-moi mon pendule.
Un peu plus à l’ouest...

Il ne fut pas possible de tirer plus du Professeur. Mais nous avons gardé précieusement ses formules.

Et les chercheurs en automatique et en robotique confirment qu'effectivement, la démarche peut se généraliser à des chaînes cinématiques comme celles constituant un bras de robot. En voici un aperçu.

Dynamique et commande articulaires

C'est à Joseph-Louis Lagrange que sont dues les équations qui en robotique permettent d’obtenir explicitement le modèle dynamique, multidimensionnel, d’un bras articulé. Après Isaac Newton, et avec son contemporain Leonhard Euler, ce grand mathématicien, né à Turin en 1736 et mort à Paris en 1813, a, entre autres, inventé la mécanique analytique.

Le modèle basé sur les équations de Lagrange peut être vu comme une généralisation de la formule classique de la dynamique déjà citée F - m? = 0. Pour l’illustrer, imaginons que l’on assemble bout à bout n pendules rigides du type Tournesol modifié Interstices ®. Et si l’on essayait, en première approche, d’empiler les modèles de chacun (selon l'équation déjà évoquée, avec cette fois un indice i pour chacun) pour obtenir le modèle du tout ?

Allons-y : on rassemble les couples de commande Ci dans un vecteur Γ, les angles ?i dans un vecteur de positions articulaires q, les poids mig dans un vecteur G et les inerties Ii dans un terme M.

On aurait alors envie d’écrire la forme générale :

.

Voilà, M’sieur, est-ce que j’ai bon ?

Il y a de l’idée, cher lecteur, mais malheureusement, ce n’est pas si simple, ne serait-ce que par exemple en raison des effets de couplage : si vous secouez l’un des pendules, tous les autres vont se mettre à bouger, et ceci doit se voir dans le modèle ! Il faut donc avoir une approche différente pour construire le modèle complet d’un bras de robot, et ce sont les équations de Lagrange en savoir plus qui vont nous fournir la solution.

Pour les mettre en œuvre, on commence par rassembler les données géométriques et mécaniques dont on dispose sur le bras du robot : dimensions, masses, inerties, etc. On peut alors établir l’expression de l’énergie cinétique, qui dépend de la configuration et des vitesses articulaires. Avec les mêmes données, on calcule l’énergie potentielle, représentant l’action de la pesanteur. Celle-ci est également fonction de la configuration.

Ensuite, on applique les formules de Lagrange et, hop, on obtient la version « propre » de l’équation déjà citée. On a donc finalement la belle équation ci-dessous (tout ceci peut se faire à la main, très laborieusement, mais, ouf, de nombreux et performants logiciels de calcul formel permettent aussi de sous-traiter ce travail à notre ordinateur favori) :

   équation (1)

Pour comprendre en détail la signification de cette équation, quelques précisions ne sont pas de trop :

  • Γ est un vecteur représentant les n forces ou couples extérieurs appliqués aux n articulations. Ceci veut dire qu’il ne s’agit pas de ce qui sort du moteur, mais de ce qui arrive après transmission (de la même façon que ce qui compte pour faire avancer un vélo, ce n’est pas tant l’effort appliqué sur les pédales en lui-même que le couple effectivement exercé sur le moyeu arrière en bout du système pédalier-chaîne-changement de vitesse).
  • M(q) est la matrice n×n qui intervient dans l’expression de l’énergie cinétique K, appelée pour cette raison matrice d’énergie cinétique. Elle est, pour un système articulé, analogue de la masse pour un objet ponctuel ou de l’inertie pour un corps rigide. Elle dépend de la configuration - observez un patineur : pourquoi sa vitesse de rotation augmente-t-elle lorsqu'il plaque ses bras le long du corps ? C'est parce que son inertie, qui dépend de sa posture, a diminué, et que le produit de la vitesse de rotation par l'inertie reste constant. Le théorème classique de la mécanique qui s'applique ici s'appelle la conservation du moment cinétique.
  • q 2 points est le vecteur des accélérations articulaires, regroupant les dérivées secondes des coordonnées articulaires.
  • provient du caractère non linéaire et couplé du système (les mouvements influent les uns sur les autres). Certains coefficients sont en : ils représentent la force centrifuge,vous savez, celle qui peut nous faire déraper dans les virages. D’autres termes sont en . Ceux-là modélisent la force de Coriolis, celle qui donne le sens de rotation des dépressions atmosphériques selon l’hémisphère.
  • G(q) : ce terme-là, c'est l’effet du poids des éléments du robot sur chaque articulation. Comme l’énergie potentielle dont il dérive, il dépend de la configuration : si vous tendez le bras avec une enclume dans la main, l’effort sur l’épaule sera plus élevé que si vous le repliez complètement ! Et si le robot est dans un liquide de densité ad-hoc ou en apesanteur, alors G(q) est nul !
  • : ce terme représente les forces engendrées par les frottements, qui ne font rien que ralentir les mouvements et dissiper de l’énergie en chaleur. Il y en a de deux sortes : les frottements secs, qui impliquent qu’un couple minimal est nécessaire au déclenchement d’un mouvement (comme pour déplacer une armoire sur un plancher), et les frottements visqueux (beuh...), croissant avec la vitesse. D’ailleurs ceux-ci sont de même nature que le terme en que nous avons utilisé pour freiner le pendule. Dans les deux cas, la dissipation d’énergie induite va avoir pour conséquence un ralentissement des mouvements.

La commande

Comme on l’a constaté, le bras de robot est légèrement plus compliqué que le pendule du Professeur Tournesol. Le roboticien, qui n’est qu’un paresseux, va donc chercher à se ramener le plus près possible de la situation la plus simple. Comment ? En travaillant en deux étapes :

  1. Nous l’avons vu, l’équation (1) comporte plein de termes compliqués dont l’effet sur la commande peut être pernicieux. Une première opération consiste donc tout bêtement à s’en débarrasser, et ceci en écrivant la commande sous la forme :

       équation (2)

    On utilise ainsi explicitement le modèle dynamique calculé dans l’expression de la commande qui sera envoyée aux moteurs. Pour briller dans les salons, sachez que cette opération est qualifiée de découplage et linéarisation par feedback. À noter que les mécaniciens peuvent aussi mettre leur grain de sel dans l’affaire en compensant plus ou moins complètement la pesanteur au niveau du robot lui-même, par d’astucieux dispositifs à base de ressorts ou de contrepoids.

  2. La commande formulée dans l'équation (2) appliquée à l’équation (1) nous donne le résultat le plus simple possible :

       équation (3)
    soit un ensemble de n équations différentielles linéaires indépendantes
    .

    Pour que notre bras se positionne à la posture spécifiée par les angles articulaires qdi et y reste, grâce à l’asservissement, il suffit d’appliquer à ces équations une commande proportionnelle dérivée, version simple d’une commande par retour d’état (feedback), analogue à celle du pendule :

       équation (4)

Fort bien, mais il est rare qu’un bras de robot soit juste destiné à rester immobile dans une configuration donnée. Heureusement, la méthode précédente se généralise aisément au cas où l’on désire suivre une trajectoire articulaire en savoir plus dépendant du temps,qd(t), plutôt qu’atteindre un point ou un ensemble de points successifs.

précédent Page 2 / 3 suivant