3.-3.5 Commande 014.02.12 PDF
3.-3.5 Commande 014.02.12 PDF
3.-3.5 Commande 014.02.12 PDF
SYSTEMES AUTOMATISES
(Partie 3 du cours “Robotique et Automatisation”)
Jean-Daniel Dessimoz
12 février 2014
Robotique et systèmes automatisés Partie 3. Commande p. 2
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 3
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 4
RESUME
Les systèmes de commandes sont de plus en plus organisés hiérarchiquement, que ce soit à
l'échelle de tout un atelier de fabrication, ou à celle beaucoup plus petite d'un équipement de
production. C'est en particulier le cas pour la commande des robots industriels.
Suivant le niveau à laquelle se trouve une boucle de réglage, des caractéristiques différentes
apparaissent (temps de réaction, qualité d'abstraction des grandeurs, interactions avec l'homme...).
En conséquence, il y faut des outils spécifiques. Il vaut la peine d'étudier la commande à quelques
uns de ces niveaux types, considérés isolément.
Aux niveaux les plus élevés, la commande de systèmes se fait typiquement dans le contexte de
programmes. Différentes approches sont adoptées. Nous y trouvons les langages généraux, tels que
C, Pascal, ou Ada, permettant en particulier de programmer des ordinateurs industriels; mais il existe
aussi, plus spécialisés, les codes à relais ou le langage Grafcet pour les automates programmables;
pour les robots, les langages tels que V+(version la plus récente de VAL), RAPID (ABB) ou Comau
offrent, en plus d'instructions générales, des mots-clefs adaptés à la gestion de trajectoires et de
positions dans l'espace. C’est aussi le cas du langage « Piaget » que nous avons inventé pour nos
robots mobiles autonomes.
A un niveau intermédiaire, les robots requièrent une forme particulière de commande afin d'assurer la
coordination étroite d'articulations diverses, de façon à suivre des trajectoires dans l'espace avec des
caractéristiques dynamiques et de précision sévères. Il s'agit ici non seulement de commander
individuellement des systèmes de réglage avals, mais il faut encore assurer un synchronisme entre
eux. La coordination est d'autant plus difficile à garantir que tant les systèmes eux-mêmes que les
influences externes sur eux sont fort disparates.
Enfin, cette section du cours s'intéresse aux servocommandes, qui servent généralement ici à assurer
en permanence, pour chaque articulation individuellement, le positionnement demandé par les étages
amonts. Autrefois exclusivement de type analogique, les servocommandes sont maintenant presque
toujours numériques. Cependant les algorithmes implémentés ont peu changé, car la théorie dans ce
domaine nouveau n'a guère dépassé le stade du mimétisme: sous forme numérique, ce sont pour
beaucoup les anciennes techniques que l'on reprend.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 5
La commande de systèmes automatisés suit deux types d'évolutions complémentaires. D'une part, les
méthodes s'affinent, pour une boucle de commande donnée (voir par exemple fig. 3.1.1). Ces
techniques ressortent du réglage automatique. Mais d'autre part, la commande de systèmes
complexes font un usage toujours accru de structures hiérarchisées, où de nombreuses boucles de
commandes interviennent, à différents niveaux d'abstraction. La puissance de ces systèmes de
commande - et parfois la difficulté à les gérer - provient non plus d'une boucle en particulier, mais de
leur synergie et de leur interactions mutuelles. Si l'automaticien est souvent embarrassé pour prédire
le comportement d'une hiérarchie de systèmes de réglage, il est en revanche parfois surpris de la
relative simplicité de certaines boucles considérées isolément.
consigne
40
10 système
d'asservissement
30
X
20
MOTEUR
mesure
10
compteur
0
R+A 65
Fig. 3.1.1b On observe que pour des commandes, C, rapides avec retards faibles (T petit), les
solutions simples sont appropriées. Lorsqu’au contraire, T avoisine ou dépasse la
constante de temps caractéristique , τ, du système à commander, S, des modes de
régulation plus évolués doivent s’envisager. L’agilité relative est définie comme le
rapport de la secaonde grandeur sur la première.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 6
On s'achemine maintenant vers l'automatisation globale des usines de fabrication. L'évolution se fait
en même temps à plusieurs échelles. Voyons d'abord celle de tout un atelier, puis nous aborderons
celle d'un cellule de fabrication.
A NIVEAU ATELIER
L'automatisation au niveau global de l'atelier pose des problèmes très sérieux. Pour les résoudre, la
stratégie du "diviser pour régner" est la seule issue. Partant du centre informatique de l'atelier,
l'information est distribuée à un nombre limité de partenaires. Ceux-ci, correspondant à des îlots de
production ont à leur tour un nombre limité de cellules, qui elles-mêmes gèrent individuellement leurs
machines. Il est clair que l'information remonte aussi des machines jusque vers le centre de l'atelier.
R+A 68
Fig. 3.1.2 Exemple de hiérarchie de commandes au niveau de l'atelier (doc. American Robot/ACC)
La fonction de communication est vitale à ce niveau, et le standard le plus prometteur est celui de
MAP, qui en est maintenant à la troisième version de sa définition. MAP suit des normes tant du point
de vue physique qu'en ce qui concerne les protocoles d'échanges, jusqu'à un niveau relativement
abstrait. Il ressemble au réseau Ethernet, largement répandu, mais s'en distingue en particulier par le
fait qu'il garantit un temps de réponse de durée limitée.
A l'intérieur une cellule de fabrication, l'information circule également par des voies hiérarchiques.
Cependant, entre les diverses commandes qui y coopèrent, les distances sont courtes, et les
intervalles de temps pour synchronisation se réduisent à l'ordre de la seconde. La communication est
assurée par des moyens spécifiques entre équipements. Mais de plus en plus, on voit apparaître des
réseaux plus simples. Dans ce contexte, une norme allégée de MAP est aussi en développement:
mini-MAP. La tendance touche jusqu'aux instruments, tels qu'un capteur ou une électrovanne. On
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 7
parle alors de réseaux "de terrain". Une norme international est en préparation. On peut s'attendre,
même au niveau le plus bas, à retrouver un sous-ensemble des normes MAP.
A ce niveau de l'atelier de fabrication, les équipements informatiques les plus répandus sont les
automates programmables (API), les ordinateurs (OI), et les commandes de robots industriels (RI).
Chacun de ces différents types peut être représenté par un organe de contrôle unique, mais très
souvent, il s'intègre dans une hiérarchie propre.
Le qualificatif "industriel" que ces organes de commandes partagent indiquent qu'ils sont destinés à
travailler en atelier (c'est à dire en milieu riche en perturbations de tous ordres), et à piloter des
procédés en temps réel.
Les API sont des machines électroniques, programmables par un personnel peu spécialisé, et
destinées à piloter des procédés logiques séquentiels et combinatoires. Typiquement, ils élaborent
des signaux binaires de sortie, commandant par exemple des électrovannes pneumatiques, en
fonction de signaux binaires d'entrée, tels que délivrés par des interrupteurs ou des barrières
lumineuses. Ils s'interconnectent facilement, gardant une structure et une fonction similaires à tous les
niveaux.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 8
R+A 72
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 9
A NIVEAU P
Au niveau le plus abstrait, les actions que le robot doit effectuer sont surtout décrites dans un
programme défini durant une phase d'apprentissage. Elles sont aussi influencées par des
informations de haut niveau reçues durant l'exécution en provenance soit de l'opérateur, soit,
surtout, des capteurs extéroceptifs. Les instructions formant les programmes se succèdent à un
intervalle moyen de l'ordre de la seconde pour une tâche typique. Ceci est particulièrement vrai
pour les instructions concernant le mouvement.
B NIVEAU C
A un niveau intermédiaire, les articulations du robot sont synchronisées pour garantir des
mouvements coordonnés. Des transformations entre référentiels et espaces divers (articulations,
atelier, outil, ...) sont assurées , ainsi qu'une interpolation entre les positions commandées par le
niveau du programme. Une modélisation dynamique au moins grossière permet de réduire les
chocs et les saccades aux endroits critiques, tout en permettant globalement des temps de cycles
réduits.
C NIVEAU S
Finalement, on trouve des circuits "classiques" de réglage au niveau de chaque articulation. Les
articulations sont réglées en position, en vitesse ou en couple. Ces régulateurs, de type P, PD, PID
ou similaires en technologie numérique travaillent en boucle fermée alimentant les actuateurs en
fonction des consignes reçues du niveau C et des données des capteurs proprioceptifs.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 10
distance
commande hiérarchisé, en milieu industriel, se fait de Télécom (ex-PTT)
différentes manières suivant l'application. Chaque fois, il faut
réseau de terrain
satisfaire au mieux les exigences particulières de débit
réseau local
d'information et de proximité des équipements.
Réseaux de terrain. A l'autre extrême, la communication se fait par débit relativement faible, mais
sur de longues distances (jusqu'à 1000 m), au moyen de réseaux de terrain. L'objectif principal est
ici d'économiser le nombre de fils physiquement câblés, et plus généralement de limiter les coûts
par accès, tout en permettant la communication entre commande et signaux physiques bas-niveau:
capteurs individuels, actionneurs tout-ou-rien, ou numériques en boucle ouverte. Au LaRA, on
dispose en particulier du CAN-BUS et de ModBuspour ce type d'application. Développé pour
l'industrie (en particulier, pour les voitures), le CAN-Bus permet de transmettre, jusqu'à des
distances de 1000 m, des messages pouvant comporter jusqu'à 48 bit. La mise à jour se fait en
quelques millisecondes. Mais actuellement, ces protocoles tendent à être encapsulé dans des
messages Ethernet (par ex. Beckhoff)
Réseaux locaux. Pour des débits plus grands, à moyenne distance, diverses solutions existent.
Actuellement, c’est la norme "TCP/IP" qui est la plus répandue. Au LaRA, des communications
rapides sont possibles entre équipements à l'échelle d'une place de travail à l'aide de lignes série à
signaux différentiels de norme RS-485 (par ex. Aria, Indel) ou par réseau optique (INFO). Pour les
communications à l'intérieur des bâtiments, c'est le réseau Ethernet (10à1000Mb/s) qui s'utilise, sur
lequel divers protocoles coexistent.
Réseaux à grande distance (Swisscom etc.). Pour les grandes distances, d'un bâtiment à un autre,
ou à l'échelle intercontinentale, les liaisons sont assurées par les services publics (ou privés, depuis
la "déréglementation"). En ce qui concerne le débit disponible, une large palette d'offre existe. Les
limites ultimes sont posées par la vitesse de la lumière... et par le coût financier du service
demandé! Au LaRA, on a accès aux lignes téléphoniques RNIS (128'000 bit/s), ainsi qu'au service
informatique du canton de Vaud via lequel l'accès au réseau mondial Internet est en particulier
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 11
possible à très grande vitesse. Sur celui-ci, il y a notamment le protocole WWW (World-wide web)
qui est résident, pour lequel le labo fournissait déjà un serveur d'information dans la première moitié
des années nonante (cf. Mosaic, avant Netscape !).
Autres moyens de communication. Il est enfin possible d'établir une liaison entre un équipement et
son environnement via les entrées/sorties traditionnelles (par signal booléen, ou par variable
scalaire, de type numérique ou analogique). Mais cela sort du cadre de notre discussion car il ne
s'agit alors pas typiquement de réseaux (n partenaires possibles) mais plutôt de liaisons point-à-
point (1 partenaire par canal). Dans ce contexte, la liaison série de norme RS-232 est encore
répandue (1000 m max, débit de 300 à 115kbit/s, typiquement: 9600 bit/s). Pour cette dernière, un
logiciel de bas-niveau, à interruptions, a été développé, que l'on a beaucoup utilisé pour l'échange
de données entre équipements en contexte Pascal (PC-Rx, PC-Comau, PC-PC, etc.).
Actuellement, les outils de base sont intégrés dans Windows.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 12
Cette section commence par un exemple de tâche d'assemblage. L'exemple illustre le travail de
programmation nécessaire pour les API, les OI, et les Robots industriels, qui sont discutés aux points
suivants.
Considérons un exemple de montage robotisé: Deux robots coopèrent pour assembler une pompe.
Des pièces arrivent, avec une orientation aléatoire sur des bandes transporteuses. Ces dernières sont
pilotées par API. Des ordinateurs localisent des pièces et estiment les forces mises en jeu lors de
l'assemblage.
A DESCRIPTION DE L'APPLICATION
position et d'orientation par rapport au robot, et inspection d'une pièce (couvercle) qui arrive
sur une bande transporteuse. Ceci se fait avec vision par ordinateur.
2. Amener le premier robot, R1, au point de prise prédéfini par rapport au couvercle, dont la
position est estimée au point 1. Remarquons que si la bande bouge, il faut continuellement
mettre à jour le point de prise en fonction d'un capteur lié à la bande transporteuse.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 13
4. Contrôler par l'ouverture de la pince si les dimensions du point de prise sont dans les
tolérances ou si l'orientation a été mal estimée. Signaler l'erreur éventuelle.
5. Placer le couvercle sur le bâti en se déplaçant d'abord au-dessus puis s'approchant jusqu'à
ce qu'une force de réaction donnée soit atteinte. Tourner la main de manière à annuler les
moments résultant d'un mauvais alignement du couvercle. Lâcher le couvercle et mémoriser
la position effective pour la suite du travail.
6. En parallèle avec les points précédents, bouger le deuxième robot R2 pour prendre un
goujon du vibreur. Amener le goujon en un point au-dessus du premier trou du couvercle, en
tenant compte de la position du couvercle mémorisé en 5.
7. Insérer le goujon. Une stratégie pour faire ceci demande de l'incliner légèrement afin
d'accroître les chances de trouver le trou. S'il ne tombe pas sur le trou, une recherche en
spirale doit s'entreprendre. Lorsque le bout du goujon est dans le trou, celui-ci peut être
redressé. Durant ce mouvement, le robot doit appuyer vers le bas avec une force donnée,
appuyer de côté pour garder le contact avec le bord et, en même temps, annuler les forces
dans la direction perpendiculaire. A la fin de ce mouvement, la position du goujon doit être
testée pour garantir qu'elle soit dans les tolérances.
8. Pendant qu'un robot insère le premier goujon, le deuxième robot va en chercher un autre,
l'insère à son tour et ainsi de suite jusqu'à la fin. Une synchronisation est nécessaire pour
éviter les collisions entre robots.
Capteurs de position
Capteurs visuels
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 14
Des capteurs sur les doigts permettent le contrôle de la force de prise des objets. Ces capteurs sont
gérés par une électronique numérique ou par un OI particulier.
Par ailleurs, d'autres capteurs détectent la présence ou l'absence de pièces entre les doigts,
l'arrivée d'objets sur le tapis roulant, ou une demande manuelle d'arrêt d'urgence. Ces capteurs
délivrent une information binaire, tout ou rien, et sont typiquement gérés par API.
Les erreurs de positionnement du robot, les incertitudes sur la position des objets et les tolérances
sur celles-ci, tout conspire pour rendre impossible un positionnement relatif précis, entre organe de
préhension et objet à saisir. Ceci est surtout gênant lors d'assemblage à faible jeu. Il est possible
cependant d'utiliser les forces générées à mesure que l'assemblage progresse pour faire des
mouvements incrémentaux adaptés au résultat final voulu. On parle alors de contrôle de
mouvement à accommodation active. Les capteurs de forces y jouent un rôle très important. Ils sont
gérés par un OI spécialisé, qui dialogue avec les commandes de R.I..
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 15
Les automates programmables voient leur tâches définies de façon plus simple que les ordinateurs.
Le mode de programmation de ces deux types de ressources est discuté dans ce paragraphe.
Il faut cependant bien observer que la distinction entre API et OI paraît parfois excessivement
schématique, car l'évolution les rapproche.
Autrefois les ordinateurs de commande de procédés étaient très grands et difficiles à programmer, et
l'on avait, à l'opposé, des armoires ou même des salles entières de (logique à) relais. Les API ont
rapidement remplacés ces derniers, tout en restant très simples.
Par la suite, l'évolution a permis la réalisation d'ordinateurs de plus en plus simples et petits, alors que
les API haut de gamme voyaient leurs capacités augmenter. On est arrivé aujourd'hui au stade où
l'API le plus complexe ne se distingue en rien (ni sur le plan matériel, ni sur celui du logiciel) des petits
ordinateurs industriels.
Gros Complexité
ordinateurs
Miniordinateurs
Stations de trav.
Micro-ordin. en
Micro -
version industrielle
ordinateurs
temps Systèmes de
commande...
Fig. 3.2.2 L'évolution rapproche les API et les ordinateurs industriels, qui étaient
autrefois bien distincts
Fig. 3.2.2b API BK9000 du labo (gauche) et architectures possibles pour API. Ceux-
ci sont autonomes ou liés plus ou moins directement à un ordinateur. A droite,
l’automate mécanique Manutec utilisé pour la manipulation.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 16
Les API se programment de différentes manières, pour la plupart selon la norme IEC 61'131. Certains
modes remontent aux origines de la technique (logique à relais, listes d’instructions, blocs logiques),
alors que d'autres résultent de propositions plus récentes, résultant d’une démarche théorique
(grafcet) ou de l’influence grandissante de l’automatisation par ordinateur (texte structuré). Pour plus
de détails, il existe un polycopié supplémentaire et la manipulation no 25 au laboratoire de robotique
et automatisation.
LOGIQUE A RELAIS
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 17
BLOCS LOGIQUES
Si l'on attribue un symbole (un nom) aux signaux externes et internes d'un API, il est commode
d'indiquer leur relation par des opérateurs logiques. Au lieu d'une série d'interrupteurs successifs,
comme on pouvait l'avoir dans le cas précédent, c'est maintenant une suite d'opérateurs "ET" que l'on
va rencontrer. De même, les interrupteurs en parallèle disparaissent au profit de fonctions "OU". Des
fonctions nouvelles, telles le "OU exclusif" ou l'opérateur "majorité" peuvent maintenant apparaître. De
plus, des blocs à effet mémoire, tels les "flip-flops", sont alors disponibles.
GRAFCET
Le GRAFCET et une méthode de définition
de tâche proposée par le GREPA (Groupe
Équipement de Production Automatisée), un
groupe d'experts formé dans le cadre de
l'organisme français A.D.E.P.A..
La rigueur de la méthode en ont assuré la
diffusion rapide, et ses répercussions sont
réelles même aux États-Unis. En particulier,
le langage de programmation proposé
permet de déclarer de façon explicite les
tâches parallèles. Le langage est toutefois
limité à des séquences et des
combinaisons logiques, aussi il n'est
vraiment intéressant que pour les API. R+A 58
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 18
Fig. 3.2.4b Opération réflexe selon laquelle l’API reporte sur un signal
de sortie l’état perçu sur une entrée.En haut à droite : déclaration des
entrées-sorties ; à gauche : solution générale en grafcet ; à droite :
spécification des actions de façon détailée, en « texte structuré »
Un bloc monostable (« Timer ») existe dans la norme IEC6-1131, qui permet de définir simplement
des temps d’attente : ex. MonTimer :TP ; Avec notamment les champs « IN » pour l’entrée, « PT ;
PT :Erreur ! Aucune entrée d'index n'a été trouvée.=#T1s » pour la durée d’impulsion, et « Q »
pour la sortie ; ex. de variable : « MonTimer.Q ».
Du point de vue théorique, un formalisme plus général, qui inclut le GRAFCET, est celui des réseaux
de Petri (voir point suivant).
RESEAUX DE PETRI
La théorie des réseaux de Petri est très utilisée pour modéliser les processus industriels parallèles et
discrets, et se développe depuis plusieurs décennies dans les groupes de recherches.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 19
De ces conventions de bases, ainsi que de multiples autres considérations dans les cas évolués, on
peut tirer un outil très intéressant. Les réseaux de Petri (comme bien d'autres moyens de re-
présentation informatiques) permettent non seulement de décrire une commande, mais aussi de
modéliser l'environnement de celle-ci, c'est-à-dire la partie "opératoire" du système.
Les ordinateurs industriels se distinguent quelque peu des ordinateurs généraux, quant à leur mode
de programmation, parce qu'ils doivent satisfaire des contraintes particulières. Après avoir mentionné
quelques unes d'entre elles, nous verrons quelques exemples de langages utilisés.
EXIGENCES
Interfaçage. L'OI est forcément relié à des entrées-sorties. Nous avons vu dans l'exemple de la
pompe divers capteurs destinés à se brancher aux entrées, ainsi que des équipements
périrobotiques, tels que les bandes de transport ou le vibreur, susceptibles d'être commandés par les
sorties.
Temps réel. La contrainte la plus évidente est celle du "temps réel". L'OI est imbriqué dans des
procédés de fabrication d'où des données surgissent à tout instant. Par ailleurs, les équipements
avals attendent à leur tour des consignes qui ne peuvent être différées. Les programmes doivent
pouvoir simplement réagir à des demandes asynchrones d'interruption.
Multitâches. Une place de travail automatisée comprend généralement plusieurs tâches qui se
déroulent en parallèles, avec parfois des points de synchronisation. Il est bien sûr très utile pour
l'utilisateur de disposer de langages permettant la définition du travail par blocs indépendants,
coordonnées par un nombre minimal de structures appropriées (sémaphores, coroutines, etc.).
Communication. L'évolution allant vers une intégration toujours plus poussée des ressources
informatiques de l'atelier, il est clair que la fonction de communication gagne en importance. Si
pendant longtemps quelques bits parallèles ont suffi, gérés de la même façon que les entrées-sorties
mentionnées au §Interfaçage, depuis plusieurs années ce n'est plus le cas. Au minimum, un canal
série de type RS-232 est maintenant nécessaire; et souvent, il faut un véritable réseau local, avec ses
différents niveaux de protocole.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 20
Aujourd'hui, ce qui est le plus courant c'est probablement l'usage d'un langage général de
programmation, complété par des modules écrits en langage assembleur, tournant avec un système
d'exploitation spécifique. Les langages les plus utilisés dans ce contexte sont probablement les
langages C++, Fortran, Visual Basic ou de type Pascal (Delphi). Un cas qui est en augmentation, c’est
l’utilisation de systèmes d’exploitation répartis (cf. Java).
Mais il existe aussi des langages spécialement développés pour le contrôle de procédés. Le plus
connu est aujourd'hui Ada, au niveau mondial. En Suisse, le langage Portal a eu un impact et une
qualité remarquable, mais est en voie de disparition. Il existe encore toute une série d'autres langages
utilisés pour le contrôle de procédés en temps réel, mais il ne sont connus que dans des milieux plus
restreints (par exemple, il y a relativement peu de programmeurs qui pratiquent PERL, ou FORTH...).
Les commandes de RI, nous l'avons vu, comprennent plusieurs niveaux. Au niveau le plus élevé, où
l'essentiel de la programmation se fait, les tâches à exécuter incluent à la fois des fonctionnalités
d'API et d'OI.
Comme un API, la commande de RI doit gérer des entrées-sorties binaires, suivant une logique
combinatoire ou séquentielle, impliquant les équipements périrobotiques, et le préhenseur.
En plus de ses tâches similaires aux API et aux OI, ce que la commande de robots a en propre, c'est
la gestion de positions et de trajectoires dans l'espace. Cette tâche ne peut être transférée à des
équipements externes, car elle sous-entend une connaissance détaillée des éléments cinématiques
du bras (cf. partie 2 du cours), ainsi qu'une coordination étroite des servocommandes d'articulations.
Pour le montage des couvercles de pompes, l'utilisateur doit par exemple spécifier les mouvements
du préhenseur de robot en fonction de positions estimées visuellement, ainsi qu'en tenant compte de
l'avance des convoyeurs. On attend de la commande (du langage de programmation) qu'elle (il) gère
d'elle-même (de lui-même) le détail des mouvements articulaires.
Voyons d'abord les modes de programmation possibles pour un RI. Ensuite, l'utilité d'un langage
approprié sera mise en évidence par un exemple traité de façon détaillée.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 21
Cinq approches sont schématiquement adoptées pour la programmation des robots. Elles sont
adaptées à la définition de tâches de complexité croissante. En général, un mode même puissant peut
aussi fonctionner suivant les modes les plus simples.
1 Guidage.
Les premiers robots programmés par guidage avaient essentiellement comme commande un
enregistreur de coordonnées. A l'apprentissage, les coordonnées fournies par l'homme, par
exemple à l'aide du déplacement manuel du robot, sont mises en mémoire; ensuite, lors de
l'exécution, ce sont les données ressortant de la mémoire qui servent de consignes aux
servocommandes individuelles de chaque articulation.
Les robots de peinture sont généralement programmées par guidage. Par guidage également, on
peut parfois obtenir le squelette d'un programme, ou l'apprentissage de quelques positions-clefs.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 22
La solution passe par l'utilisation de menus interactifs. Les RI les plus répandus, ne sont pas
programmés à l'aide d'un terminal classique, avec clavier et écran, mais simplement par une
console portable, où un nombre limité de boutons-poussoirs sont disponibles, ainsi que 2 ou trois
lignes d'affichage.
La commande est en général suffisamment puissante pour que l'utilisateur dispose de coordonnées
multiples (par exemple cartésiennes, articulaires, ou cylindriques). De plus les entrées-sorties (E/S)
peuvent s'utiliser pour influer non seulement sur les équipements périphériques mais sur le
déroulement du programme lui-même. Des ordres généraux de programmation, tels que la
définition de boucles et de sous-programmes, ou tels encore que les accès à des fichiers sont
disponibles même sur une simple console portable.
Mais par contre les symboles alphanumériques sont exclus (pas de clavier...), ce qui d'un point de
vue pratique restreint l'utilisation du RI à des tâches simples (comment se souvenir par exemple de
la signification dans l'atelier de la position 652, stockée dans le programme 356 du secteur 13 de la
disquette?).
Si le marché réclame d'abord ce mode de programmation, au niveau de l'utilisateur final, c'est pour
deux raisons essentielles. La première, comme on l'a déjà vu, c'est la simplicité de l'interface
homme-machine. La deuxième est plus sournoise: une application simple est intrinsèquement plus
fiable. D'ailleurs beaucoup d'industriels se méfient des programmeurs, qui promettent souvent la
lune (y a-t-il quelque chose qu'un informaticien juge impossible à réaliser?) et ne la livre jamais
("L'application est prête à 95%...").
Malgré la réserve concernant la fiabilité des systèmes peu programmables, il faut bien convenir que
lorsque les tâches d'automatisation deviennent quelque peu complexes, un terminal complet, et un
langage permettant l'utilisation de symboles alphanumériques est un minimum nécessaire.
Les premiers langages développés à ce niveau d'élaboration ont été tirés de langages courants
pour OI (BASIC, Pascal, FORTRAN...) avec un nombre variable d'extensions spécialisées.
Les extensions sont tout-à-fait nécessaires pour gérer les servocommandes et les articulations,
ainsi que pour réagir aux événements asynchrones survenant dans les équipements périrobotiques.
Afin de permettre un déverminage aisé en conditions réelles, les langages adoptés ici sont
généralement interprétés.
Mis à part les cas du guidage et des menus interactifs, la programmation de robots repose sur
l'emploi de langages explicites. Des instructions sont disponibles pour gérer les capteurs et pour
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 23
commander les mouvements du robot. Le robot peut s'adapter dans une très large mesure aux
variations même aléatoires de son environnement.
Les langages spécialisés pour R.I. accordent une place prépondérante aux instructions permettant
de manipuler les variables de position, ainsi que les trajectoires.
Pour bien comprendre comment le problème de la commande de ddl multiples se pose, et surtout
comment exprimer un ordre de mouvement, il est utile de revenir un instant sur le cas de la fig.
3.1.1. Dans ce cas, l'axe de mouvement est unique, linéaire, et une forme (syntaxe) possible pour
demander le mouvement serait la suivante:
x = x0, ou encore: x = 10
où x est une variable correspondant au déplacement de l'élément mécanique entraîné, le signe "="
exprime le désir que l'on a de voir un mouvement se faire, et x0 (ou 10) est la position désirée. Au
début, il se peut bien que le déplacement ne soit pas celui que l'on désire. Par exemple, l'axe est
initialement à la position 32. Mais après quelques instants, le système se déplace. C'est le système
de commande, en agissant sur la force ou le couple de l'actionneur, qui s'organise de façon à ce
que l'égalité soit respectée.
Fig. 3.2.6
L'utilisateur donne
la transformation
allant de la base du
robot au point de
prise désiré (par
exemple position
d'un objet), et le
contrôleur gère les
variables
articulaires
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 24
Fig. 3.2.7b Analogie entre la commande, en mode absolu, d’un mouvement pour le cas
simple, à 1 ddl, à gauche, et le cas typique pour un robot universel, à droite.
Si l'on a plusieurs ddl, par exemple 6, on peut par analogie proposer une solution concise, ne
contenant guère que la consigne donnée sous forme de matrice de transformation, et laisser le soin
au système de commande de résoudre l'équation:
- -
0 0 -1 10
T06 = Trobotobjet ou encore: T06 = 0 1 0 0
1 0 0 -2.5
0 0 0 1
- -
Avant que le système de commande ne reçoive cette équation, l'extrémité mobile du bras a peu de
chance de coïncider avec l'objet. Par contre, dans les instants suivants, le bras se met en marche de
façon à ce que l'équation soit vérifiée. La syntaxe présentée ici est élégante. Elle ne correspond
pourtant pas de façon immédiate à ce que la plupart des R.I. proposent.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 25
Trajectoire physique et chemin logique. Au début l'utilisateur peut être surpris de la différence qu'il y
a entre la trajectoire effectivement parcourue par la main ("chemin physique") et le chemin logique
servant à définir la consigne. Les deux chemins aboutissent évidemment sur le même repère. Mais
leur point de départ est bien différent.
Pi
trajectoire Pi
physique
z 0 base trajectoire
Pi+1 physique
y0 z0
e
base i qu Pi+1
ue y0
og
x0
lo giq l
chemin
min
che x0
Fig. 3.2.7 c. Chemin logique et trajectoire physique sont différents mais aboutissent au même
repère. A gauche la consigne est "simple" (par ex. T 6 = T 0
Pi+1), alors qu'à droite, elle est
robot
Dans le premier cas (trajectoire de l'outil), on part forcément de la position courante (sur la fig. ci-
dessus: Pi). Dans le deuxième cas (chemin logique), il s'agit de spécifier une consigne, c'est-à-dire
une (cascade de) transformation(s), partant obligatoirement de la base et qui aboutisse sur le
repère voulu (Pi+1).
1 2 3 4 5
En résumé, on peut dire que la consigne est absolue, alors que le déplacement est relatif.
Modification trajectoire en temps réel. Souvent, la possibilité est offerte de modifier en cours
d'exécution la trajectoire nominale programmée. Des corrections instantanées sont apportées, en
fonction de capteurs fournissant des informations évoluées (données utiles selon plusieurs ddl
simultanément). Ceci s'utilise par exemple pour exploiter le long d'une chaîne en mouvement, les
tâches décrites dans l'environnement immobile d'un R.I. fixe. Ou encore, cela permet de modifier en
fonction de capteurs extéroceptifs une trajectoire définie en valeurs standards.
Modèle dynamique. Certains R.I. ont également maintenant des commandes qui tiennent compte
d'un modèle simplifié des éléments dynamiques inhérents à chaque tâche robotisée. Des
instructions spécifiques sont alors offertes dans leur langage de programmation.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 26
Le plus gros problème, avec les deux modes de programmation précédents, provient du fait qu'il
faut être quelque peu expert en programmation et dans les stratégies d'utilisation des capteurs pour
pouvoir préparer le robot à une nouvelle application.
Un autre problème provient du fait que les matrices de transformation imposent la définition explicite
de toutes les variables spatiales. Souvent la tâche ne présente pas d'exigences si grandes. Par
exemple s'il s'agit, dans l'exemple de la pompe, de déposer un couvercle sur une bande de
transport, 3 ddl pourrait suffire: l'orientation dans le plan du convoyeur, ainsi que les translations
dans ce plan là peuvent rester incertaines, alors que les coordonnées restantes doivent être
spécifiées avec précision pour éviter des collisions et des chutes.
Ce mode de programmation n'est encore pas disponible en pratique, mais se limite à être un
objectif pour de futures solutions.
6 Conclusion
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 27
Les divers modes de programmation peuvent s'observer sous un angle différent de celui que nous
avons adopté jusqu'ici. En particulier, J. Latombe propose une différence entre approches définissant
la tâche à des niveaux de complexité croissante: niveaux actionneur, préhenseur, objet, objectif...
Comme exemple d'application, considérons l'insertion de deux cylindres dans un cube (voir fig.3.2.4).
Cette opération est représentative de beaucoup de tâches d'assemblage (nous avions jusqu'ici
l'assemblage d'une pompe. Il est un peu malheureux de changer d'exemple; mais le lecteur aura peut-
être la curiosité d'imaginer que les vis du premier exemple se transforment maintenant en cylindres,
que les cylindres soient localisés visuellement comme tout-à-l'heure les couvercles, et qu'enfin le bâtis
de la pompe se métamorphose en cube...).
PREMIERE SOLUTION
Certains langages pour robots permettent facilement d'exprimer la position et l'orientation d'objets
quelconques dans l'espace, tant par rapport à la base standard du robot, que par rapport à des
repères librement définis.
Bien qu'ils requièrent un certain apprentissage, ces langages se révèlent rapidement d'emploi facile,
et ils sont seuls à permettre de programmer des tâches d'assemblage de complexité réaliste. Comme
précédemment, la tâche est programmée ici en V+. Mais cette fois, on tire parti des instructions qui
permettent de structurer la tâche. Les mots-clefs du langage sont en majuscules, alors que les
symboles introduits par l'utilisateur sont en minuscules. Une autre version, écrite en Val3 est aussi
disponible au laboratoire. Notons dans ce dernier cas que la pratique a rattrapé la théorie : le
fournisseur fait un usage abondant des graphes de transformation. Dans ce cas, pour représenter les
repères, les « points » accompagnés d’un nom, que nous avions dans la partie 2 du cours, sont
remplacés par des rectangles dans lesquels le nom du repère est inscrit. Pour le reste, notamment
pour les flèches décrivant les transformations, ou pour les règles d’équivalence, tout est identique.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 29
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 30
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 31
REMARQUES
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 32
Exemple de définition d'une position. Voyons plus en détail, comme exemple, ce que vaut PA. PA
doit contenir la consigne qui amène le préhenseur au dessus du cylindre, avec une orientation qui
prépare la prise. La position doit être suffisamment haute pour qu'on l'atteigne sans collision en
venant d'un peu n'importe où.
La consigne doit toujours être donnée entre extrémité fixe et extrémité mobile. Or à la ligne 7 du
programme, où cette (matrice) variable s'utilise, l'extrémité fixe du bras est précisément définie sur le
cylindre! Et l'extrémité mobile sur le préhenseur! Notre tâche est donc bien simple.
#0 0 −1 10 &
% (
0 1 0 0 (
PA = %
%1 0 0 −10(
% (
$0 0 0 1 '
€
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 33
Si l'on ne veut pas définir PA ainsi, analytiquement, et que l'on dispose du robot, d'autres solutions,
interactives, sont alors possibles. Par exemple après les définitions de TOOL et de BASE faites selon
le programme aux points 1 et 6, on amène le préhenseur en position d'approche, à l'aide de la
console portable et de ses boutons-poussoirs. Lorsque la position est satisfaisante, à l'oeil, on peut
alors taper sur le terminal:
DO SET pa = HERE ; "DO" est un préfixe qui permet de transformer une instruction de
programme en commande à effet immédiat. HERE est une fonction du système
qui renvoie la position courante de l'extrémité mobile par rapport à l'extrémité
fixe.
Dialogue avec l'équipement de vision. A la ligne 4, le programme "Cylindres" fait appel à un autre
programme (sous-programme "appelle.caméra"). Dans la configuration actuelle du laboratoire,
"appelle.caméra" envoie typiquement une chaîne de caractères ("POSITION?") sur une ligne série à
un PC-AT. Celui-ci, qui est équipé d'un numériseur d'image, analyse l'image de la caméra, et répond
au message reçu ("POSITION?") par l'envoi des coordonnées, en pixels, du cylindre dans son champ
de vue. Le sous-programme fait la conversion de pixels en mm, et utilise cette information pour mettre
à jour la position PC. Cette variable est globale, aussi le programme "Cylindres" pourra-t-il l'utiliser au
retour d'"appellecaméra".
Nom des variables. Les variables utilisées ici ont des noms très courts (Z, P, CAM, etc.). Cela est
admissible parce que le programme s'accompagne de plusieurs figures et graphiques où la
signification de ces symboles apparaît de façon évidente. Si ces auxiliaires ne sont pas prévus, il vaut
mieux utiliser des noms plus explicites. Par exemple, dans le programme "Cylindres", on aurait pu
utiliser le symbole "position.du.robot" au lieu de "z". Ou mieux encore, on aurait pu choisir
robot
"t.atelier.robot", ce qui est complet et rappelle la syntaxe utilisée dans la partie 2 du cours: Tatelier
. Les matrices de transformation portaient le nom des repères qu'elles reliaient; non seulement le
repère de destination y apparaissait, mais aussi celui de départ (autrement dit, il faut spécifier non
seulement la position qui nous intéresse, mais encore par rapport à quel référentiel on la décrit).
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 34
L'étage de coordination d'un contrôleur de robot travaille généralement en boucle ouverte. Mais
parfois aussi, un canal d'entrée permet de modifier la trajectoire courante en fonction de capteurs
extéroceptifs.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 35
Certains robots industriels n'ont pas d'étage de coordination dans leur unité de contrôle. Il
appartient alors à l'utilisateur de gérer explicitement et dans le détail la synchronisation des
articulations en agissant au niveau P. Les possibilités de coordination sont alors limitées.
Il existe maintenant des commandes tenant compte en temps réel de paramètres dynamiques.
L'étage de coordination modifie alors les paramètres limites des servocommandes en fonction des
inerties instantanées (du bras, compte tenu de sa configuration, et de la charge, compte tenu de
déclarations faites par l'utilisateur ou de certains capteurs, au niveau P).
Le programme envoie des consignes qui sont relativement distantes, tant du point de vue spatial que
temporel. Il faut les interpoler afin que la trajectoire, c'est-à-dire la réponse combinée de toutes les
articulations soit prévisible. Ce paragraphe se préoccupe de l'interpolation par rapport au temps de
chaque articulation prise isolément.
Nous verrons tout d'abord le problème de l'interpolation dans son principe. Puis nous examinerons
des lois de mouvements calculées en temps réel, ainsi qu'un autre type de solution, où un profil type,
normalisé, est résident en mémoire.
A PRINCIPE
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 36
L'amplitude du mouvement à réaliser, A, est fixé par le niveau P. Ce paramètre est bien respecté,
même si certains modes (en particulier, l'interpolation dite "à trajectoire continue", que nous
aborderons par la suite) y font parfois une légère entorse.
La forme peut varier dans une large mesure. Ce point est développé dans la suite. Les variantes sont
nombreuses mais elles ont toutes pour objectif d'offrir un bon compromis entre la minimisation du
temps de cycle, la minimisation des oscillations et dépassements, ainsi qu'une simplicité maximale
des calculs.
La durée du mouvement d'interpolation, T, permet de faire varier, pour une amplitude et une forme
donnée, l'erreur de dépassement à la fin du mouvement. En même temps qu'une forme est définie,
une équation est établie afin de calculer la durée. Les paramètres de cette équation peuvent être
multiples, prenant par exemple en compte la fréquence propre d'oscillation de l'élément entraîné, sa
vitesse maximale, ou l'accélération la plus grande que l'actionneur peut provoquer.
Demaurex a par exemple proposé une équation qui met en relation ces divers éléments:
B MOUVEMENTS CALCULES
temps
Le mouvement calculé le plus courant prend, par rapport au acc.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 37
cause de la simplicité des calculs qu'elle entraîne, et parce que, pour la plus grande partie des
mouvements, elle décrit assez bien la réponse d'une articulation où les forces de frottement dominent
les termes inertiels.
ACCELERATION CONSTANTE
n
1 16 A temps
D≤ ∑ σi =
2 2 vit.
ω0 1 ω0 T2
PROFIL TRAPEZOÏDAL
temps
acc.
Il est très courant en pratique de modéliser les mouvements
articulaires, par rapport au temps, comme ayant des
phases de démarrage et de freinage à accélération (et temps
R+A 84
décélération) constante, séparées par un temps de durée
variable où l'articulation se déplace à vitesse constante. Fig. 3.3.5 Loi de mouvement "à profil
Durant les phases de démarrage et de freinage, puisque trapézoïdal"
l'accélération est constante, la vitesse croît et décroît de
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 38
façon linéaire. Globalement, le profil de vitesse apparaît donc, en général, comme de forme
trapézoïdale. Il peut arriver que le déplacement soit si court que l'axe n'a pas le temps d'atteindre la
vitesse maximale. La courbe de vitesse est alors, exceptionnellement, triangulaire.
En général, on considère que le temps de freinage, tfrein , est égal au temps d'accélération, tacc.
Les relations entre temps d'accélération, vitesse maximale, et accélération maximale sont évidentes:
vmax vmax
⇒ a = ----------- ou encore tacc = ----------------
tacc a(max)
Une variante un petit peu plus compliquée du mouvement à profil trapézoïdal est celui où le freinage
se fait en deux étapes: d'abord, le freinage est maximal, comme nous l'avons vu; mais avant l'arrêt
total du mouvement, l'accélération est fortement réduite, passant à un palier inférieur afin de garantir
une arrivée en douceur, et évitant par là dépassements et vibrations. Ceci se fait par contre au
détriment du temps de cycle.
En particulier, pour les robots Demaurex (Delta), la portion ordinairement constante de a(t) durant les
phases d’accélération et de décélération du mouvement trapézoidal en vitesse sont eux-mêmes
trapézoïdaux, ce qui implique des impulsions d’amplitude constante au niveau du jerk. Le résultat sur
la trajectoire c’est l’apparition de segments de cubiques (triple intégration du jerk), qui donne
l’impression sur la courbe de vitesse (v(t) ) d’un trapèze à transitions arrondies (cf. fig. 3.3.5b).
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 39
C MOUVEMENTS TABULES
Alors que dans les cas précédents les mouvements pouvaient se calculer en temps réel, nous allons
considérer ici la possibilité de précalculer des lois de mouvements compliquées, sous forme
normalisée (normée) en amplitude et en durée. Hélas ce n'est pas toujours possible. Ainsi
précisément le profil trapézoïdal
que nous venons de voir change
dépl.
de forme, passant par exemple du
triangle à un trapèze ou même à un
quasi-rectangle, lorsque les phases temps
vit.
d'accélération et de freinage sont A π
x t = 1- cos t
courtes par rapport à la durée du 2 T
trajet à vitesse constante. temps A π π
acc. v(t) = • • sin t
LOI EN COSINUS 2 T T
2
Nous avons vu que la douceur A π π
R+A 85
temps a(t) = • • cos t
d'une commande variait en fonction 2 T T
de l'ordre de dérivation où
Fig. 3.3.6 Loi d'interpolation en cosinus
l'amplitude était discontinue. Les
fonctions trigonométriques (sinus et cosinus) ont la propriété intéressante de n'avoir jamais de dérivée
discontinue. On peut donc être tenté par une loi d'interpolation temporelle en forme de cosinus.
Il faut bien voir cependant que notre loi d'interpolation n'a pas une durée infinie. Elle commence au
début du mouvement et s'interrompt à la fin. Ainsi nous n'avons qu'une demi-solution: Le passage de
l'accélération au freinage est infiniment doux (dans le sens que toutes les dérivées sont continues),
mais par contre le début et la fin du mouvement ne se distingue guère du cas de l'accélération
constante (discontinuités à la deuxième dérivée).
Le cosinus est tabulé, avec une durée de 1 s, et une amplitude de 1 (mm ou degré). Comment passer
aux termes effectifs A et T?. A nous est fixé par le niveau P. C'est l'intervalle entre deux consignes
successives, A1 et A2: A = A2-A1. Quant à la durée, T, elle peut être tirée de A, du dépassement
toléré, D, et de la fréquence propre du système entraîné, f0:
n n
D < 1 ∑ σi , = 2 A π
2
avec ∑ σi
ω20 1 1 2 T
2 A
1 π 1 A
⇒ D ∼-----2- . ----------
- et T = -------------- ------
T
2 2 fo D
ωo
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 40
CAME ELECTRONIQUE
Lorsqu'on compare les lois de déplacement présentées jusqu'ici, il apparaît que plus la loi de
commande est douce, et plus le démarrage et le freinage se font à petite pente. Par contre, à durée
de déplacement égale, une commande douce devra atteindre une pointe de vitesse élevée à mi-
parcours.
On observe également que la loi en cosinus ressemble beaucoup à celle de l'accélération constante,
bien qu'elle lui soit légèrement inférieure.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 41
R+A 64
Fig. 3.3.8 Profils tabulés pour les lois à vitesse constante, à accélération constante, à jerk constant, et
en cosinus
La coordination des articulations permet de générer différents types de trajectoires dans l'espace,
linéaires, circulaires ou autres encore. Voyons d'abord le principe de la commande de trajectoire.
A PRINCIPE
Il s'agit ici de commander des trajectoires dans l'espace. La première question est celle du choix des
coordonnées. L'interpolation elle-même est presque toujours linéaire. Mais veut-on cette interpolation
linéaire sur les coordonnées articulaires, les coordonnées cartésiennes de l'atelier, ou encore en
coordonnées cylindriques ou polaires? Les deux premiers cas sont traités de façon optimisée dans la
plupart des commandes de robots. Le dernier par contre, est souvent laissé aux soins de l'utilisateur,
qui peut le réaliser en mode "procédural" que nous verrons plus loin.
Il est indéniable que le mot "linéaire" qualifiant la méthode d'interpolation adoptée conduit souvent à
des malentendus , bien qu'il soit exact, car on l'applique à des coordonnées différentes de cas en cas
(articulaires, spatiales, temporelle...). On peut tenter de décrire les différents modes d'interpolation
linéaire par des termes peut-être techniquement discutables, mais intuitivement plus parlant: dans le
cas de l'interpolation linéaire dans l'espace des articulations, on conviendra de parler de "mouvement
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 42
L'évolution par rapport au temps des consignes de position ne nous intéresse plus directement, car
elle n'affecte pas la forme de la trajectoire, en mouvement normalement coordonné. C'est
indirectement, à cause d'un nécessaire synchronisme entre les différentes coordonnées, que l'on en
tiendra encore compte.
Fig. 3.3.10 Même trajectoire que dans la fig. précédente, mais observée cette fois dans l'espace
des coordonnées articulaires. On observe également les points correspondant à l'envoi de
consignes aux servocommandes. Ils sont rapprochés lorsque le robot se déplace à basse
vitesse, car ils se calculent à intervalles de temps réguliers.
Dans une première étape, on choisit une durée de mouvement, T, commune pour toutes les
coordonnées. Cette durée est la plus petite possible, c'est-à-dire la plus petite que toutes les
coordonnées peuvent respecter. Une coordonnée lente jouera un rôle important dans le choix de T.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 43
Mais ce peut aussi en être une autre, qui, bien que rapide, prend beaucoup de temps car elle doit
faire un très grand déplacement par rapport à son axe propre.
Une fois T fixé, on peut pour chaque coordonnée interpoler par rapport au temps l'amplitude des
consignes définissant la trajectoire. Si ces consignes s'expriment en coordonnées articulaires, on
pourra les envoyer aux servocommandes. Sinon, il conviendra encore de les convertir.
La situation la plus courante est celle où l'interpolation se fait linéairement dans l'espace des
coordonnées articulaires. Si les consignes nous parviennent du niveau P dans ces coordonnées là, on
peut sans autre passer à l'interpolation et transmettre les consignes interpolées au niveau S.
Si par contre, ce qui est courant également, les consignes nous parviennent du niveau plus élevé en
coordonnées spatiales (cartésiennes, dans l'atelier), il faudra tout d'abord les convertir en
coordonnées articulaires à l'aide de la solution cinématique inverse.
θ 1i θ 1 i+1
θ 2i θ 2 i+1
Pi = P i+1 =
θ ...i θ ... i+1
θ ni θ n i+1
On a déterminé que l'articulation qui nécessite le plus de temps est l'articulation θj, qui va de
l'amplitude θji à θji+1 en suivant la loi de mouvement f(t) (cf. § 3.3.2). Nous avons donc:
Nous sommes dans l'espace des variables articulaires, aussi le temps ne nous intéresse pas
directement. Nous décidons que toutes les coordonnées soient liées l'une à l'autre par une loi linéaire.
En particulier il en résulte que toutes les articulations peuvent se connaître par rapport à la variable
interpolée par rapport au temps, θj :
Les coefficients ak sont implicitement imposés par les consignes Pi et Pi+1. Leur valeur est la
suivante:
ak = θ k i+1- θk i
θ j i+1 - θ j i
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 44
θ1 30 θ2 60
P 1= = P 2= =
r1 12 r2 8
Aθ = θ 2-θ 1 = 6 0 - 3 0 Ar = r 2 - r1 = 8 -12
Considérons que les vitesses maximales en rotation et en déplacement radial sont respectivement de
180°/s et de 50 cm/s. On en tire le temps minimal de déplacement, pour chacune des articulations,
sous l'hypothèse de loi de mouvement à vitesse constante, de 30/180 s, et de 4/50 s respectivement.
Le temps le plus long étant de 0.17 s, dû au grand déplacement angulaire, on l'impose également aux
autres articulations, c'est-à-dire, dans notre cas, à l'articulation radiale.
Dès lors, le déplacement peut être calculé avec une loi de mouvement quelconque, par exemple
trapézoïdale, pour l'une des articulations (par exemple θ). On obtient à chaque instant pour l'autre (la
coordonnée radiale) la consigne adéquate par fonction linéaire:
r 2- r 1 8-12 2
r(t)= r 1+ θ(t)- θ 1 = 12+ θ(t)- 30 = - θ(t)+16
θ 2- θ 1 60- 30 15
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 45
Alors que précédemment la coordination était assurée par une interpolation linéaire en espace
articulaire des consignes provenant du niveau P, il s'agit ici d'appliquer le même type d'interpolation
aux coordonnées spatiales de l'atelier (coordonnées cartésiennes).
Fig. 3.3.11b Mouvements en mode « articulaire » (cf. mouvement linéaire dans l’espace des
articulations), à gauche, et en mode « linéaire » dans l’atelier (à droite). Dans les deux cas, les
mêmes trois points sont définis, et les trois segments de trajectoire s’enchaînent « point-à-point »
(Illustrations de Sarah Pitteloud et Adrien Villoz, « Stäubli TX-40 », rapport HEIG-VD.LaRA,
29.01.2014).
L'avantage de donner le mouvement dans un espace cartésien plutôt que de le donner dans l'espace
des articulations, est que le mouvement est bien défini, et qu'il peut être décrit par une suite de
segments depuis le point de départ jusqu'au point d'arrivée.
Le calcul de trajectoires linéaires en coordonnées cartésiennes est généralement difficile. Ceci est
étonnant pour le non-spécialiste car nous avons tous une expérience importante dans le maniement
de nos propres bras, et cela semble aller de soi.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 46
Pour calculer un mouvement linéaire dans l'atelier, il faut appliquer les lois de mouvement aux
coordonnées spatiales. Puis pour chaque valeur interpolée, au rythme d'environ 40 valeurs par
secondes, il faut évaluer la solution cinématique inverse, qui, nous l'avons vu dans la partie 2, nous
convertit les coordonnées spatiales en coordonnées articulaires.
Un autre problème du mouvement cartésien, c'est celui dérivant d'une connaissance imparfaite des
éléments géométriques du manipulateur. La solution cinématique inverse implique des termes jugés
constants (paramètres D-H, tels que par exemple l'angle formé par deux axes successifs de
mouvement) qui en fait varient en fonction des tolérances d'usinage, mais aussi avec le vieillissement
et les charges dynamiques instantanées. En valeur absolue, les erreurs de positionnement peuvent
être très grandes (10 à 100 fois l'erreur nominale), mais en terme relatif (cf. notion de répétabilité
introduite dans la partie 1) ceci est acceptable. Ceci est d'autant plus vrai que le manipulateur ne
travaille pas dans un hypothétique référentiel absolu, mais ce qui est déterminant pour lui c'est de ce
positionner de façon précise par rapport aux objets qui l'entourent. Dans ce contexte, la facilité de
gestion de trajectoires cartésiennes, impliquant un mode agréable de dialogue avec le programmeur
et les capteurs extéroceptifs s'avère déterminante.
Enfin, une difficulté encore propre au mouvement cartésien, c'est qu'il masque à l'utilisateur le travail
effectif de chaque articulation. Cela a deux conséquences principales. D'une part, le déplacement des
articulations nécessaires au mouvement cartésien n'est parfois pas possible; l'une des articulations
est en butée, ou plusieurs axes de mouvements sont alignés: la solution cinématique inverse n'a alors
pas de solutions; cela implique un arrêt du manipulateur. D'autre part des vitesses même modestes
sur les coordonnées spatiales impliquent parfois de très grande vitesses articulaires. Lorsque celles-ci
ne peuvent être atteintes, des erreurs grossières sont possibles, sur la trajectoire.
Dans les machines-outils, les tolérances le long des trajectoires sont très faibles, aussi les points
interpolés sont très rapprochés et nombreux. Pour pouvoir exécuter toute la masse de calculs
nécessaires, des circuits matériels spéciaux sont utilisés. Cependant, l'interpolation linéaire n'est alors
assurée que pour 2 ou 3 coordonnées simultanément, et les coordonnées articulaires sont elles-
mêmes mécaniquement linéaires (axes prismatiques) ce qui simplifie le problème. Pour les robots il y
a moins de points, mais par contre ils concernent l'ensemble des articulations (typiquement, 4 à 6
ddl).
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 47
Il est néanmoins possible d'obtenir des trajectoires circulaires, sinusoïdales, ou de forme quelconque
en intervenant au niveau supérieur, celui de la programmation. Pour avoir une trajectoire de qualité, il
faut que les calculs se fassent à un rythme suffisant (40 points/s). Entre les points calculés, on peut
schématiquement admettre que l'unité de coordination génère des segments de droite. Mais en fait
l'approximation peut être meilleure encore si l'on travaille en mode dit "à trajectoire continue".
Jusqu'ici nous avons considéré des lois de mouvements pour un déplacement élémentaire, entre le
point courant, Pi et la consigne suivante Pi+1. Au point de départ comme à l'arrivée, le bras est à
l'arrêt. On parle dans ce cas d'une commande qui travaille en mode "point-à-point".
Voyons d'abord les avantages et défauts respectifs de ces deux types de commande. Nous
examinerons ensuite en détail l'approximation polynomiale inhérente aux trajectoires continues.
La commande point à point a pour elle l'avantage de la simplicité de l'algorithme de commande. Elle
présente aussi l'avantage parfois déterminant de passer exactement par les points de consignes
reçus du niveau P.
Temps de cycle. Le temps de cycle est relativement élevé, car même si les points successifs sont
alignés, la commande bloque le bras au passage de chacun des points. Si la distance est grande
entre consignes successives, ce problème n'est pas sérieux. Mais s'ils sont rapprochés, comme cela
est presque obligatoirement le cas lors de la phase finale des mouvements d'assemblage, ou lorsque
l'on travaille en mouvement procédural, ce défaut peut être extrêmement gênant.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 48
B TRAJECTOIRE CONTINUE
Nous allons maintenant traiter le cas de la continuité de la trajectoire que les points de consigne
provenant du niveau P définissent.
Fig. 3.3.11c Mouvements en mode « point-à-point» (arrêt en chaque point), à gauche ; et en mode
« continu», avec 50 mm de zone de lissage (à droite). Dans les deux cas, les mêmes trois points sont
définis, et les trois segments de trajectoire s’enchaînent en mode « linéaire » (Illustrations de Sarah
Pitteloud et Adrien Villoz, « Stäubli TX-40 », rapport HEIG-VD.LaRA, 29.01.2014).
L'avantage d'un tel type de commande est la diminution du temps de cycle, ainsi que le "coulé" du
mouvement, qui se traduit par des saccades et vibrations moindres.
Il faut bien voir cependant que cette solution est susceptibles d'erreurs locales parfois inadmissibles.
Paradoxalement, elle est précise entre les points de consignes, mais c'est dans leur voisinage
immédiat que les erreurs les plus grandes se manifestent. Cet effet se comprend mieux sur un
graphique (cf. fig. 3.3.11).
Le mode de commande à trajectoire continue n'est donc acceptable que si une marge d'erreur est
tolérée. Comme ce n'est pas toujours le cas, le programmeur doit de façon explicite indiquer lorsqu'il
la désire, ou quand au contraire, il convient d'y faire exception.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 49
Un désavantage occasionnel, lié au principe même de ce mode de commande, est que l'interprétation
du programme doit précéder de plusieurs instructions (au moins jusqu'à l'instruction donnant la
consigne suivante) l'exécution, par le bras, du programme. Il faudra donc prendre garde à la
synchronisation du mouvement avec les capteurs et autres équipements périrobotiques gérés
simultanément par le programme. Le cas échéant, il faut bloquer l'exécution du programme jusqu'à ce
que le mouvement en cours soit terminé.
C APPROXIMATION POLYNOMIALE
Voyons maintenant comment une trajectoire continue se calcule. On peut distinguer deux étapes
principales. Dans la première, une trajectoire "exacte", mais non continue en vitesse s'élabore, sur la
base des consignes transmises par le niveau P. Ensuite, dans une démarche qui rappelle un peu celle
adoptée pour le déplacement à profil trapézoïdal de vitesse, le passage entre segments de trajectoire
à vitesse constante est assuré, par une accélération douce, au détriment éventuel d'une légère erreur
sur la position.
R+A 92
0 h 1
La trajectoire "exacte". Dans une première étape, il s'agit à partir des consignes successives Pi
reçues du niveau P, de générer une esquisse de trajectoire.
Seul l'ordre des consignes est explicitement déterminé par le niveau P. Eventuellement, des
paramètres de vitesse et d'accélération maximales sont données par ailleurs, mais en aucun cas le
programme ne définit l'intervalle de temps devant séparer le passage par deux points successifs.
On démarre tout simplement en considérant que le déplacement d'un point au suivant se fait à
vitesse constante. Comme on l'a déjà dit, ce mouvement n'est pas réaliste dans la mesure où il
implique des pointes infinies d'accélération. Néanmoins c'est une approche utile à ce stade.
Comme toujours en coordination, il faut déterminer le temps Tij nécessaire à chacune des
coordonnées (indice j), pour le déplacement dans les intervalles successifs, Pi à Pi+1. Dans chaque
intervalle (pour chaque valeur de i), le temps le plus long (maximum des Tij ) est retenu pour
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 50
que la vitesse, pour la coordonnée représentée sur la figure, est inférieure pour ces deux segments à
ce qu'elle valait entre A et B. On en conclut qu'elle "attend" vraisemblablement une autre coordonnée
travaillant à vitesse limite.
Les changements de vitesse. Il faut maintenant remplacer les points de discontinuités (en vitesse) de
la trajectoire esquissée jusqu'ici.
Un certain temps est nécessaire aux articulations pour qu'elles puissent changer de vitesse, puisque
les accélérations sont forcément limitées par la capacité des actionneurs. Dans le pire des cas, la
vitesse initiale est maximale, et il faut non seulement la réduire à zéro, mais encore atteindre la
vitesse maximale en sens inverse. Appelons ce temps maximal d'accélération tacc, et admettons qu'il
est également applicable au freinage. Par prudence, nous adopterons cette valeur pour toutes les
transitions. L'approximation va donc se concentrer sur une période de 2 tacc, qui est centrée sur
Pour alléger les notations, substituons à la variable temporelle t une autre variable, h. Alors que la
première évolue, pour la transition au voisinage de Pi, entre ti -tacc, et ti+tacc, nous définissons h de
i
t i = ∑ Tk
k=1
h = t- t i +t acc
2 tacc
La fonction d'approximation à définir pour le passage d'un segment de trajectoire au suivant, c'est-à-
dire dans le domaine de h allant de 0 à 1 doit satisfaire à un certain nombre de conditions.
Il faut tout d'abord respecter une contrainte de position, C1. Mais il faut en plus générer une courbe
douce, sans choc ni saccade, ce qui se traduit par des contraintes C2 à C5 de continuité en vitesse et
en accélération, aux deux extrémités de la zone d'approximation. Au total nous avons 5 contraintes,
ce qui est compatible avec un polynôme du 4ième degré. Le polynôme apparaît à l'équation E.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 51
C4:θ (h=0) = 0
C5: θ (h=1)= 0
E: θ(h) = a4h4+ a3h3+ a2h2+ a1h+ a0
Le polynôme en h doit satisfaire aux 5 contraintes sus-mentionnées. On peut donc en évaluer les
coefficients ai:
C1 et E ⇒ a0 = B + (T1- tacc) C - B
T1
C2 et E ⇒ a1 = C - B
T1
C4 et E ⇒ a2 = 0
θ(h=1) = D - C = 4 a4h + 3 a3h + a1
3 2
C3 et E ⇒
T2
⇒ E 2: 4 a4+ 3 a3 = D - C - C - B
T2 T1
C5 et E ⇒ θ(h=1) = 0 = 12 a4+ 6 a3
⇒ E 3:
a 3 = - 2 a4
E3 et E2 ⇒ 4 a4- 6 a4= D - C - C - B
T2 T1
⇒ a4 = - 1 D - C - C - B
2 T2 T1
L'approximation faite ci-dessus n'est pas fondamentalement différente de celle opérées par les
fonctions de Bézier (spline B) en infographie ou en modélisation géométrique.
EXERCICE
Considérons l'exemple de trajectoire interpolée entre les points A et D de la fig. 3.3.11, par des
polynômes de degré 4.
- Quelle est l'erreur de position au voisinage de C (en T1) ?
- Que vaut la vitesse en ce point (en T1) ?
Jusqu'ici nous avons vu que par programmation, et en tenant compte de capteurs extéroceptifs, il était
possible de déplacer le préhenseur selon des trajectoires variées. Cependant, cela se fait au niveau
P, qui se caractérise par une grande flexibilité, mais aussi par des cadences d'exécution d'instructions
relativement faibles.
A l'inverse, les constantes de temps sont très petites au niveau des servocommandes (niveau S),
mais les consignes doivent obligatoirement y être fournies en coordonnées articulaires, ce qui est une
limite déterminante, car les capteurs extéroceptifs ne fonctionnent pratiquement jamais selon des
axes de mouvements articulaires.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 52
Pour les meilleures performances, il faut intervenir dans l'étage de coordination. De toute façon, la
conversion de coordonnées spatiales en coordonnées articulaires s'y déroule, et de plus, les routines
d'interpolation sont optimisées pour travailler vite. Lorsque l'étage de coordination permet de prendre
en compte, à sa cadence relativement élevée (typiquement 40 points par seconde), des données
extérieures de corrections de déplacement, on parle de "modification de trajectoire".
Les signaux reçus servent à définir un déplacement instantané relatif à la trajectoire nominale
commandée par le niveau P. Du point de vue des calculs, nous avons maintenant en particulier un
produit matriciel supplémentaire, qui vient s'intercaler entre la procédure d'interpolation linéaire en
coordonnées spatiales, et l'opérateur cinématique inverse:
La première équation est applicable si les corrections s'interprètent dans le repère du préhenseur,
alors que l'équation B s'utilise lorsque les corrections externes sont données par rapport au repère de
la base du robot, soit, pratiquement dans les coordonnées d'atelier.
L'utilité d'une commande de robot permettant la modification de trajectoire en temps réel n'est pas
négligeable. Elle permet par exemple de déposer des colles à distance constante du bord des pièces,
d'ébavurer des objets en leur applicant une force constante, normale à la surface de contact. Une
autre classe d'applications intéressantes est celle où les équipements périrobotiques, ou la pièce à
travailler, sont en mouvement par rapport au robot; comme, par exemple, lorsque les pièces sont sur
une chaîne de fabrication.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 53
Les systèmes d'asservissement d'axe sont tout au bas de la hiérarchie de commande. Ils travaillent
soit en boucle fermée, soit souvent aussi en boucle ouverte. Ces divers points sont abordés
successivement ci-dessous. Ils sont suivis d'un exemple de circuit de commande pour moteur: le
HCTL-1000
Au bas de la hiérarchie que représente une commande de robot, ou très souvent également parmi les
périphériques d'un ordinateur industriel, on rencontre des systèmes d'asservissement d'axes. On
emploie aussi parfois, pour les désigner, les termes de servocommandes ou de systèmes
d'entraînement d'axe.
Fig. 3.4.1 Commande au niveau des articulations individuelles (cadre rouge pointillé). Une seule
coordonnée, θi, est représentée ici. Le premier graphique montre typiquement la tension au bornes
d’un moteur, et le deuxième les signaux de capteurs, directs (A, B) et intégrés (<θi >).
Schématiquement, les servocommandes reçoivent des niveaux supérieurs une consigne, décrivant
l'état désiré du système réglé. Ils envoient alors un signal de commande aux actionneurs, tout en
tenant compte par des capteurs de mesure de l'état effectif du système entraîné.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 54
On ne parlera pas, dans cette partie du cours, ni des capteurs utilisés, ni des actionneurs, dont les
caractéristiques ne peuvent être ignorées pour un réglage effectif. On ne parlera pas non plus des
étages de puissance qui alimentent les actionneurs. On s'en tiendra ici à une présentation des
techniques fondamentales en réglage, et même cela sera fait de façon relativement superficielle.
En général, comme nous l'avons vu, la servocommande tient compte par capteurs de l'état du
système. Le chemin de l'information part de la consigne, traverse le régulateur, les circuits de
puissance et l'actionneur, aboutit sur le système entraîné, puis, par le capteur, revient sur le
régulateur. La boucle se referme, comme nous l'avions observé dans l'une des premières figures du
cours.
Mais ce n'est pas toujours le cas. Il est possible d'entraîner certains axes en boucle ouverte, c'est-à-
dire sans prélever par capteur une information quelconque sur leur état effectif.
Le réglage en boucle fermée est le thème essentiel des théories de l'automatique. Dans notre
contexte, cependant, les techniques sont relativement simples, pour au moins deux raisons. D'une
part, la servocommande s'intègre dans une hiérarchie de commande, remontant à des niveaux
d'abstraction et de généralité qu'elle ignore, mais où des signaux de mesure adaptés sont aussi pris
en compte. D'autre part, les servocommandes doivent travailler à une cadence (bande passante, pour
les circuits analogiques, et fréquence d'échantillonnage pour les circuits numériques) très élevée. Les
constantes de temps y sont de l'ordre de la milliseconde.
Les servocommandes ne règlent pas toujours les mêmes grandeurs. Les plus courantes sont la
position, la vitesse, et le couple de l'actionneur. Le régulateur peut lui-même avoir plusieurs boucles
de réglage.
Considérons la régulation d’un système en boucle fermée. Dans les cas les plus simples une
commande de type tout-ou-rien suffit. Mais pour des cas plus délicats, la commande doit se faire de
façon fine. Travaillant à niveaux d’amplitude multiples, l’unité de commande prend alors l’aspect d’un
régulateur bouclé de type P, PI, PD, ou PID notamment.
Enfin il subsiste encore une classe de systèmes non gérables par un seul régulateur PID, quelque soit
la valeur des gains considérée. Il faut alors enrichir la structure de commande avec d’autres
régulateurs assurant par ailleurs une partie du travail.
La figure ci-dessous propose, comme point de départ, un critère pour le choix du type de régulateur
approprié. La variable libre est un rapport : constante de temps caractéristique de la commande, T,
(comprenant le temps de calcul du régulateur et la somme des éventuels retards purs présents dans
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 55
On observe que pour des systèmes à T petit (régulation rapide et retard pur relativement faible), les
solutions simples sont appropriées. Lorsqu’au contraire T avoisine ou dépasse aa constante de temps
caractéristique du système, τ, des modes de régulations plus évolués doivent s’envisager.
Fig. 3.4.2.1 On observe que pour des commandes, C, rapides avec retards faibles (T petit),
les solutions simples sont appropriées. Lorsqu’au contraire, T avoisine ou dépasse la
constante de temps caractéristique , τ, du système à commander, S, des modes de
régulation plus évolués doivent s’envisager. L’agilité relative est définie comme le
rapport de la seconde grandeur sur la première.
A REGLAGE ANALOGIQUE
Le régulateur le plus typique en réglage analogique est celui que l'on appelle proportionnel-intégral-
dérivé (PID). Il vaut la peine de le discuter quelque peu. Nous le faisons en privilégiant une description
plus intuitive que mathématique, car il faut en sentir les aspects fondamentaux au moment de se
convertir aux techniques numériques.
A l'entrée d'un régulateur, on commence généralement par évaluer la différence instantanée entre la
consigne, C et la mesure, M. Ceci nous donne l'erreur, ε.
ε = C-M
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 56
Le régulateur PID élabore un signal de commande, Y, à partir de ce signal d'erreur. Il lui fait d'abord
subir trois opérations en parallèle, puis additionne les résultats dans un étage de sortie. Chacune
des trois opérations correspond à l'une des 3 lettres de son nom.
Fig. 3.4.2.2 Schéma de principe d'un régulateur PID. Les termes Ki et Kd sont en général exprimés
sous la forme de 1/Ti et Td, ce qui rend explicite leur rôle de normalisation par rapport au temps
YP = K ε
L'avantage de la composante P c'est sa simplicité, et le fait qu'elle marche bien; elle n'est pas
toujours suffisante, mais elle est toujours nécessaire.
Le problème principal provient du fait que pour avoir une action non nulle sur le système
entraîné (Y>0), il faut également que l'erreur ε soit non nulle. Lorsqu'une charge constante
est appliquée au système (par exemple, l'effet de la gravité sur une articulation), nécessitant
un niveau de commande de V, l'équilibre n'est atteint qu'au prix d'une erreur résiduelle,
appelée l'erreur statique:
ε =V/K
Bien des méthodes existent pour trouver une bonne valeur de K. Dans le principe, on choisit
une valeur de K aussi grande que possible. K est en général limité soit par des phénomènes
de saturation (surcharge du système, ou non-linéarités à éviter), soit par des oscillations.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 57
Composante intégrale. Dans certains cas, le régulateur P peut s'améliorer par l'adjonction
d'une composante intégrale.
t
YI ( t )=
1
ε⋅ dτ
Ti
0
L'idée maîtresse ici est qu'une erreur ε même petite peut, par intégration au cours du temps,
conduire à une action importante. Si la sortie de l'intégrateur n'est pas envoyée au système,
on la voit croître linéairement au cours du temps, dans le cas d'une erreur statique. En la
branchant effectivement sur la sortie, elle parvient tôt ou tard à compenser la charge
constante.
Contrôler un système par voie intégrale comprend aussi ses limites. Il y en a principalement
trois.
- D'une part, le résultat de l'intégration est difficile à gérer au cours du temps. Dans une
première phase, admettons que par intégration de ε on a pu générer la commande
permettant de compenser une charge V. Que se passe-t-il si celle-ci disparaît? Le système
va maintenant être entraîné par la composante intégrale bien au delà de la consigne. Il y
restera jusqu'à ce que l'intégrale de l'erreur retombe à zéro.
- Dans un système où plusieurs régulateurs coopèrent, un seul peut avoir une composante
intégrale. Si ce n'est pas le cas, une différence même infime entre leurs valeurs de
consignes ou leurs valeurs de mesures conduira à l'arrêt de l'un des régulateurs, ou à la
saturation d'un autre.
- Le troisième effet gênant (mais c'est en partie le premier qui resurgit sous une autre
forme...), c'est qu'un intégrateur ajoute un élément de retard au système à régler. Or nous
avons déjà dit que les retards conduisent souvent à des instabilités; ou tout au moins, qu'ils
le ralentissent.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 58
permet dans une certaine mesure d'augmenter le terme proportionnel, le gain, sans
dommage.
dε
YD( t )= Td
dt
On peut aussi considérer qu'en réglage PD nous avons l'équivalent d'un réglage proportionnel
qui serait appliqué non pas sur la mesure courante, mais sur sa prévision à l'instant t+Td. Si
cette prévision était parfaite, on pourrait ainsi compenser un éventuel retard de même durée,
qui caractérise le système à régler. On pourrait alors sans danger d'oscillation augmenter K
jusqu'à des valeurs arbitrairement grandes. Cette situation se rencontre rarement, parce que
la dérivée d'un signal est un outil bien pauvre de prévision, surtout lorsque le signal à prévoir
n'est pas une simple droite, qu'il émane d'un système réel, et que de plus l'horizon de
prévision s'allonge.
Il faut remarquer enfin que le terme dérivé est souvent prélevé, dans les systèmes
analogiques, par une génératrice tachymétrique entraînée par l'axe en mouvement. Ceci
permet d'éviter une dérivation électronique du signal de position (ou indirectement, de ε), qui
amplifie toujours le bruit, particulièrement aux fréquences élevées.
Le réglage d'un régulateur PID n'est pas une opération aisée puisqu'il s'agit de régler trois
paramètres, à savoir : K, Ti et Td. Ce réglage a donné lieu à de nombreux tableaux et méthodes.
Dans certains cas l’approche est manuelle, expérimentale ou analytique. De plus en plus souvent
aussi, ce réglage se fait de façon automatique..
Celle que nous présentons ici est particulièrement intéressante ; simple et fondamentale. C’est une
méthode qui est de nature expérimentale. Il s’agit de brancher le régulateur au système avec des
gains P, I et D initialement nuls, puis d’augmenter progressivement le gain de la branche
proportionnelle (KP).
Dans certains cas on peut augmenter ce gain arbitrairement et cela va de mieux en mieux. Un
réglage tout-ou-rien est alors indiqué.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 59
Dans d’autres cas, le système tend à osciller même avec un gain très faible, et il faut changer
d’approche. On ne peut utiliser un régulateur PID dans ce contexte (cf. systèmes hiérarchisés).
Le cas intéressant ici est celui où un régulateur PID (ou P, PI, etc.) est à la fois nécessaire et utile.
La méthode consiste essentiellement à relever la valeur du gain critique Kc, et celle de la pulsation
ωc. des oscillations qui s’installent dans ces conditions.
On choisit alors:
KP=0.59 Kc ; KD=π/ωc (parfois aussi appelé TD); KI =ωc /0.75 (parfois aussi appelé 1/TI);
Ceci est évidemment une solution de principe, qui peut s'adapter, suivant l'application, aussi par
exemple pour le cas d'un simple régulateur P, ou au contraire pour des cas plus évolués, par exemple
avec des composantes a priori supplémentaires
B REGLAGE NUMERIQUE
- En général l'unité de calcul doit au cours du temps successivement servir à des tâches différentes,
alors que les circuits analogiques fonctionnent naturellement en parallèle, chacun assumant une
tâche spécifique. Les performances en vitesse sont donc encore nettement inférieures.
- Enfin, le domaine est encore neuf, aussi ne disposons-nous pas d'expérience et de théories aussi
élaborées qu'en technique analogique.
Avantages. Les circuits numériques peuvent, dans une large mesure, simuler ce que font les circuits
analogiques. Mais ils apportent aussi de nouvelles possibilités. Voyons d'abord les avantages qu'ils
présentent lorsqu'ils se substituent simplement aux systèmes analogiques:
- Les circuits numériques n'ont pas de dérive. Un zéro, par exemple, reste un nul parfait, aussi
longtemps qu'on le désire, ce qui n'est jamais le cas en technique analogique.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 60
- Ils ont une immunité au bruit (signaux indésirables) remarquable. Tant que l'amplitude du bruit
n'excède pas une certaine marge (typiquement, cette marge est grande, atteignant 40% d'un
signal intéressant), son effet est nul car le signal numérique reste dans la plage de tolérance
d'un état défini. Il est ainsi possible d'avoir des signaux de précision arbitrairement grande. En
pratique, on est bien sûr limité par la nature analogique des signaux entrant et sortant du
système à régler.
- Les circuits numériques sont maintenant moins coûteux. Cela s'explique au moins de deux
façons complémentaires. D'une part, un même circuit numérique peut généralement remplacer
beaucoup d'alternatives analogiques, car il est programmable. L'autre raison relève de la
technologie. Les circuits numériques sont essentiellement réalisés sous forme intégrée, dans le
silicium. Le coût marginal de production est incroyablement faible. Et lorsqu'ils sont produits en
masse, les coûts de conception et de mise en route sont aussi, par unité, avantageux.
Les techniques classiques en réglage analogique font une part belle aux systèmes linéaires. Dans un
premier temps, elles ont été reprises telles quelles (cf par ex. : régulateur PID numérique) ou très
légèrement adaptées telle la transformée en z.
Certains outils de base, tels que la transformée de Fourier, restent indispensables, mais la plupart des
méthodes sont aujourd'hui dépassées, soit à cause de la nature non-linéaire des nouveaux systèmes
réglés (la sortie de la somme de 2 entrées n'est pas égale à la somme des 2 sorties
correspondantes...), soit à cause de leur non-stationarité (changement de caractéristiques au cours du
temps).
L'approche la plus prometteuse est de simuler, selon un maximum d'aspects, le monde réel. On est
aidé dans cette démarche par la physique, dont l'objet depuis des millénaires est la représentation
formelle du monde, c'est-à-dire sa modélisation.
Prenons par exemple la servocommande contrôlant le déplacement vertical d'un robot. Dans un
premier temps, on y mettra un régulateur P. Si des performances supplémentaires sont désirées, un
terme dérivé est utile. Il serait sage aussi d'ajouter un terme parallèle au régulateur (appelé parfois
composante "a priori" ou encore "forward") compensant l'effet de la gravité. Le terme peut être
constant, correspondant à la charge moyenne, ou variable, ajusté au cours du temps en fonction des
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 61
variations de la charge utile. Lorsque le préhenseur est proche des points de consignes, que sa
vitesse y est basse, il est tentant d'introduire une composante intégrale, afin d'annuler l'erreur statique.
Mais si la consigne varie, il faut aussitôt supprimer à nouveau la composante intégrale, sinon elle va
provoquer des dépassements...
La difficulté de trouver de bons régulateurs numériques s'explique en partie par le fait que la discipline
est jeune. Mais surtout, c'est que le problème abordé est maintenant plus vaste et plus complexe. La
technique a plus d'ambition.
Nous avons déjà traité de régulation en boucle ouverte à un niveau hiérarchique supérieur. Dans la
partie 3.3, le problème de la coordination des articulations est étudié de façon détaillée, et dans ce
contexte-là, les trajectoires sont presque toujours calculées en boucle ouverte. On attend des
servocommandes en aval, qu'elles entraînent exactement les articulations selon les consignes
successives transmises. Néanmoins, pour qu'elles puissent effectivement suivre, on respecte des lois
de mouvements plus ou moins douces.
Au niveau le plus bas des commandes de moteurs, le problème est en bien des points similaire.
Tous les moteurs électriques ne peuvent pas se commander en boucle ouverte. Les moteurs à
courant continu par exemple ont une courbe théorique linéaire, à charge constante, qui lie vitesse et
tension d'alimentation. Mais en pratique la charge n'est jamais constante, ni même connue, aussi ne
peut-on prévoir effectivement la vitesse ou encore plus la position du moteur sur la seule base de la
commande.
Ce sont les moteurs pas-à-pas que l'on commande en boucle ouverte. Les bobines du moteur sont
alimentés par phases (moteurs à 2, 4 ... 8 phases), à l'aide de circuits électroniques comprenant un
séquenceur. Le séquenceur gère la succession des phases alimentées, et à chaque impulsion reçue
de la commande, le moteur avance ou recule d'un pas.
En pratique, c'est la loi de mouvement à profil de vitesse trapézoïdal qui est le plus souvent employée
pour assurer des mouvements doux et fiables. Démarrage et arrêt se font à accélération constante,
alors que le gros du mouvement se fait à vitesse constante (voir § 3.3.2.B).
Dans les années 80, Hewlet-Packard avait étudié la possibilité de s'engager dans le domaine de la
robotique. Parmi les retombées de leur premiers essais, il se trouve des capteurs optoélectroniques
incrémentaux, ainsi que le circuit numérique spécialisé pour la commande de moteurs, le HCTL-
1000. Le circuit a toujours un succès considérable aujourd’hui, et mérite que l'on s'y arrête. Bien
qu’une tendance nouvelle bien différente apparaît également, qui se base sur l’utilisation de tout un
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 62
PC sur un hardware très compact et avec un logiciel multi-tâche temps résel compatible avec
Windows (par exemple : VxWorks).
La fig. 3.4.3 présente de façon schématique les nombreuses fonctions assurées par le circuit.
Voyons en les principales.
Calcul d'erreur. On se souvient que la première opération d'un régulateur consiste à évaluer
l'"erreur", c'est-à-dire la différence entre consigne et mesure. Pour cela, le HCTL-1000 utilise trois
blocs: "∑", "Input command", et "feedback". Suivant les cas, le circuit peut travailler sur des
informations de position ou de vitesse.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 63
Composantes PID. Le circuit implémente un régulateur PID en technique numérique (bloc "Digital
filter"). Dans le jargon approprié, nous travaillons avec la transformée en z. Le régulateur est
décrit par sa fonction de transfert, ce qui le rend équivalent à un filtre. La composante
différentielle, caractérisée en technique analogique par Td , se traduit ici par un "zéro", au
numérateur, alors que le paramètre intégral, Ti, prend l'aspect d'un pôle, au dénominateur. Les
bonnes valeurs du régulateur peuvent se calculer selon des méthodes essentiellement similaires
à celles qui sont utilisées pour les systèmes analogiques. Souvent, les valeurs sont aussi choisies
par tâtonnement... Rappelons que le problème se complique souvent parce que le système n'est
pas stationnaire. En particulier, la charge varie souvent beaucoup, au cours du temps.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 64
Fig. 3.4.3.2 Représentation plus claire des fonctions du circuit de régulation HCTL-1000/1100.
Interpolation. Le bloc "Position profile generator" a pour fonction de générer un déplacement entre
consignes fixées par l'utilisateur, selon la loi de mouvement à profil trapézoïdal de vitesse (voir §
3.3.2.B). Il exploite, en plus des consignes de position, des ordres de vitesse et d'accélération
maximales.
Circuits de sortie. Le HCTL-1000 contient vraiment une palette complète de modes de commande
de moteur. Il peut gérer aussi bien un moteur à courant continu (CC) qu'un moteur synchrone
autopiloté (MSA), ou qu'un moteur pas-à-pas (PAP). De plus, dans les deux premiers cas, la
consigne de tension destinée aux amplificateurs peut à choix être linéaire, ou binaire, codant les
niveaux d'amplitude différents par modulation de largeur d'impulsions. Les blocs mis en jeu sont
décrits un par un.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 65
R+A 90
Fig. 3.4.4 Modèle du circuit régulateur, ainsi que de l'ensemble du système en boucle ouverte. De
tels modèles étaient présentés comme utiles, il y a 25 ans, pour un choix systématique ("optimal")
des paramètres de régulation.
Gestion des enroulements de moteur. Le bloc "Commutator" gère une séquence d'états. Par pas
successifs, différents enroulements, ou groupe d'enroulements ("phases") d'un moteur pas-à-pas,
ou synchrone autopiloté, sont alimentées. Dans le cas du PAP, c'est l'utilisateur qui fixe la
succession de pas désirés, de façon semblable à ce qui a été décrit ci-dessus (§ Interpolation).
Pour le MSA, ce sont les signaux du capteur incrémental qui commandent l'avance de pas. Le
circuit peut commander directement jusqu'à 4 phases. Au-delà (m phases), il faut interpréter ces 4
sorties comme l'adresse d'une table à 16 mots et m sorties.
Sortie linéaire. Le bloc "Motor command port" fournit 8 sorties binaires parallèles, destinées à un
convertisseur numérique/analogique externe. C'est donc pratiquement un signal linéaire que l'on
obtient, utilisable soit en tension, soit en courant, pour, à travers un ampli, entraîner un moteur. Il
s'agit de façon indifférente ici d'un moteur CC ou MSA. Notons dans ce dernier cas, que le circuit
dispose donc de 12 lignes pour la commande du moteur (utilisation simultanée de la sortie
linéaire et de la commande de phases).
Avec 8 bit en sortie, la commande linéaire peut paraître peu précise. Ce n'est pas du tout le cas.
Ce qui fixe la précision d'un mouvement, ce n'est pas simplement le nombre de niveaux possibles
de tension aux bornes du moteur (dans certains cas, celui-ci vaut 2...) mais c'est surtout la
résolution du capteur de position. La position, pour un robot industriel, est généralement codée
sur un minimum de 16 bit. Le présent circuit en gère 24!
Modulation de largeur d'impulsions. Le dernier bloc discuté ici, c'est le "PWM Port". Comme
alternative à la sortie "linéaire", qui nécessite un convertisseur externe, le circuit offre une sortie
binaire modulée dans le temps. Cette sortie peut directement attaquer certains amplificateurs.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 66
A l'intérieur d'une période de durée fixe, T, une faible vitesse du moteur sera codée par une
impulsion brève, alors qu'au contraire un signal précédemment décrit comme élevé apparaîtra
maintenant comme une impulsion longue, couvrant quasiment toute la période T. Durant
l'impulsion, on peut considérer que le moteur est alimenté, alors qu'il est "en l'air" le reste du
temps.
Le circuit HCTL-1000 est un circuit performant, qui allège l'hôte dont il dépend de toutes les
opérations rapides intervenant dans la commande de moteurs. Mais il a aussi ses limites, qui sont
de deux types. D'une part, il n'est pas assez rapide encore pour certaines applications de pointes.
D'autre part, certains lui préfère les micro-contrôleurs "classiques".
Les micro-contrôleurs sont très "compacts". Ce sont des microordinateurs monopuces, où des
convertisseurs analogiques ainsi que des ports séries de communication sont disponibles. De plus,
leur unité centrale de traitement est souvent compatible avec des systèmes de développement plus
grands, où l'interface entre machine et utilisateur ainsi que l'environnement de programmation sont
tous deux efficaces.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 67
Alors que dans la partie 3.2, le problème général de programmation d'une cellule de fabrication a été
traité, c'est ici l'étude concrète de divers langages utilisés dans l'industrie que nous allons aborder.
Les langages retenus sont principalement les suivants: Rapid/ABB, VAL+/Stäubli, ARIA, et Piaget. Le
choix a été guidé par deux types de considérations. D'une part, les principaux langages existants
doivent être représentés. D'autre part, pour une classe donnée de programmes, la priorité va au
langage disponible au laboratoire de robotique et d'automatisation de l'EIVD.
Chaque langage fait d'abord l'objet d'une brève description individuelle. Ensuite le lecteur trouvera un
tableau comparatif rassemblant leurs caractéristiques majeures. Pour des informations plus détaillées
sur les langages et les systèmes sur lesquels ils tournent, on se reportera à des fascicules annexes
(3.5.A: ABB, 3.5.C: VAL-2, 3.5.E: ARIA, 3.5.F: Comau), ou pour plus d'informations encore, à la
documentation technique du fabricant, disponible au laboratoire.
3.5.1 RAPID/ABB
Le langage ABB (Asea Brown Boveri) est important vu l'impact majeur de ces robots au niveau
mondial. De façon surprenante au premier abord, l'interface utilisateur en limite de façon drastique la
programmabilité: pas de clavier ni de console au sens courant. La communication se fait par un boîtier
portable doté d'une vingtaine de boutons et de deux lignes de texte.
Le langage ABB est tout-à-fait représentatif d'autres langages pour robots et pour l'automatisation qui
se caractérisent par une approche typique des commandes de machines-outils traditionnelles. C'est
en particulier le cas du langage SRL de Siemens (utilisées par exemple sur divers robots allemands
tels Kuka ou Manutec).
Alors que la version standard se limite aux fonctions de base, minimales, toutes sortes d'extensions
ont été montrées par le fabricant sur des sites pilotes: vision intégrée, trajectoires asservies à des
capteurs de force, programmation hors-site en contexte CAO, etc.
VAL est un langage puissant pour robots industriels dérivé de AL. AL a été développé à l'Université de
Stanford, et reste une référence classique.
VAL a été développé pour les robots Unimation, et s'utilise actuellement aussi pour les robots Stäubli
et Adept . Dans les versions récentes, des extensions importantes ont été introduites pour la
programmation structurée, les trajectoires adaptatives et pour la communication en réseau.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 68
V+ est aussi représentatif d'autres langages, similaires, optimisés pour la gestion de référentiels
multiples. Le langage Karel des robots Fanuc (ex-GMF), Renault, et Comau ("KL2"), en sont des
exemples.
3.5.3 ARIA
ARIA est un langage récent pour robots industriels développé par Demaurex Robotique et
Microtechnique. Ce langage est basé sur Pascal, et à ce titre, il est représentatif de plusieurs autres
langages pour robots, tel RAIL aux Etats-Unis.
Mais il a en plus diverses particularités intéressantes: travail à très haute vitesse, trajectoires
interpolées de façon linéaire ou elliptique, programmation en réseau, avec fonctionnalités réparties,
intégration de systèmes d'analyse d’images.
Plus qu'un simple langage, ARIA constitue en fait un environnement de travail à plusieurs couches,
qui permet de commander des systèmes divers, allant d'un robot isolé à toute une ligne de production.
3.5.4 PIAGET
Piaget est un langage multi-agents (multi-tâches), temps réel, créé à la HEIG-VD dans le but de
programmer rapidement des robots, mobiles autonomes ou industriels.
Dans sa première version (1997-2001), Piaget était très spécialisé, avec des instructions du genre
ChoisirLePontVisuellement, ActionnerFusée, ou encore TirerSurTour(centrale).
Puis dès fin 2001, on est revenu un peu vers des instructions plus générales, et le bon compromis
s’est établi au niveau des instructions spécialisées pour robots. Stratégiquement, des instructions du
type de V+ ont été introduites pour les robots mobiles autonomes (Move, Appro, Signal, etc.), comme
base de programmation..
Parmi les autres langages pour robots, on peut notamment citer, également représentés au
laboratoire de robotique et automatisation (LaRA), le langage KRL de Kuka, très inspiré de Val et de
Rapid, et l’environnemnt Chrégraphe pour la programmation de l’humanoïde NAO.
Les paragraphes précédant ne présentent, pour chaque langage mentionné, que quelques éléments
saillants. On se propose ici de décrire leurs instructions de base : lecture des entrées, changement de
l’état dess sorties, lecture de la position du bras et commande de mouvement.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 69
Quel système est le meilleur ? Il n’est pas possible de répondre en toute généralité à cette question.
Si un paramètre est critique pour une prise de décision, il conviendra d'évaluer plus à fond ce que tel
ou tel système apporte. En fin de compte, un benchmark très proche de l'application envisagée reste
le meilleur critère d'appréciation. Pour cela, la disponibilité de la plupart de ces systèmes au
laboratoire s'avère extrêmement précieuse.
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 70
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 71
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 72
12.02.14
Robotique et systèmes automatisés Partie 3. Commande p. 73
12.02.14