Mini Robot simulation d un automate industriel c Jacques Duma 17 novembre 2013 Ce document décrit un petit Robot très simple que l on peut piloter à la main, mais aussi par programme en définissant un automate à états. L application Web "Robot" simule ce mini-robot et permet de le faire fonctionner de façon interactive : Le Robot est décrit section 1, ainsi que l environnement dans lequel il évolue et les commandes qui permettent de le piloter à la main. On explique section 2 le fonctionnement du Robot, les objectifs à atteindre et les incidents qui peuvent survenir. On explique ensuite section 3 comment programmer le Robot pour le faire fonctionner automatiquement. Enfin, pour terminer, on propose section 4 un exemple de programme complet dont on va décrire pas à pas la mise au point. Il ne faut pas hésiter à tester immédiatement le Robot avant de lire ce texte, car son fonctionnement est assez simple et intuitif. On se reportera ensuite à cette documentation pour bien comprendre les principes théoriques élémentaires de la robotique. 1
Table des matières 1 Description de l environnement 3 1.1 Le paysage............................. 3 1.2 Le Robot............................. 3 1.3 Les commandes.......................... 4 1.4 Les capteurs............................ 4 2 Pilotage «à la main» 5 2.1 Reset................................ 5 2.2 Actions............................... 5 3 Programmation 6 3.1 Un exemple simple........................ 6 3.2 Automate à états et actions................... 7 3.2.1 États............................ 8 3.2.2 Transitions........................ 8 3.2.3 Actions.......................... 8 3.2.4 Conditions......................... 9 3.2.5 Programme........................ 9 4 Exemple 10 4.1 Objectif : jeter l objet dans la boîte............... 10 4.2 Aller jusqu à l objet........................ 10 4.3 Placer au préalable la pince correctement............ 11 4.4 Terminer le programme...................... 13 4.5 Rédiger les règles......................... 15 4.6 Observer l exécution du programme............... 15 2
1 Description de l environnement 1.1 Le paysage La pièce dans laquelle évolue le Robot est représentée par une vue latérale. Le Robot roule sur un sol horizontal situé entre deux murs gauche et droite. Une boîte bleue est placée à gauche, contre le mur. Entre la boîte est le Robot se trouve un objet orange que le Robot peut saisir avec sa pince. 1.2 Le Robot Le Robot peut se déplacer en roulant dans la pièce. Par convention : il avance lorsqu il se déplace vers la gauche il recule lorsqu il se déplace vers la droite Le Robot est muni d une pince située à l extrémité d un support. On peut ouvrir ou fermer cette pince, la monter ou la descendre. Avec sa pince, le Robot peut saisir l objet orange, le soulever et, par exemple, le transporter dans la boîte. 3
1.3 Les commandes Un panneau de commande permet de piloter le Robot «à la main». Ces boutons de commande peuvent être utilisés de façon naturelle et assez intuitive. On précisera plus en détail leur action et les incidents qu elle peuvent provoquer dans la section 2 page 5 : Ces boutons permettent de bouger le Robot, de saisir l objet orange à l aide de sa pince, de le soulever et de le déplacer. 1.4 Les capteurs Le Robot dispose de capteurs qui lui permettent de connaître les informations suivantes : Ces informations sont affichées dans le panneau des diodes. Chaque diode indique deux cas possibles : Vrai allumée ou verte Faux éteinte ou blanche 4
2 Pilotage «à la main» Le Robot peut effectuer six actions distinctes qui correspondent aux six boutons du panneau de commande. On peut, par exemple, s amuser à saisir l objet orange et à le placer dans la boîte bleue a gauche. On va décrire avec précision les actions de chaque bouton de commande et indiquer les incidents éventuels qu elles peuvent provoquer. 2.1 Reset Quand on pilote le Robot à l aide des boutons de commande, un incident peut survenir lorsque le Robot percute l objet ou un mur, ou s il est impossible d effectuer la commande sélectionnée. Dans ce cas, la diode «Incident» s allume en rouge et l environnement se bloque. Il faut alors utiliser le bouton «Reset» pour débloquer la situation. Le bouton «Reset» permet, en cas d incident, de replacer le Robot et l objet en position initiale dans l environnement : le Robot est placé près du mur de droite la pince est aléatoirement placée, soit en haut, soit en bas la pince est aléatoirement, soit ouverte, soit fermée l objet est placé, soit dans la boîte, soit entre la boîte et le Robot La position initiale est telle que n importe laquelle des six actions peut être effectuée au moins une fois sans provoquer d incident. On peut aussi utiliser le bouton «Reset» simplement pour modifier la position initiale. 2.2 Actions Le Robot se déplace dans la pièce pas à pas entre les deux murs. On va définir avec précision chacune des six actions et, pour chacune, indiquer les incidents qu elle peut éventuellement provoquer : 5
1. Avancer : déplace le Robot d un pas vers la gauche Incident si une partie du Robot percute un mur, l objet ou la boîte 2. Reculer : déplace le Robot d un pas vers la droite Incident si le Robot percute le mur de droite 3. Descendre pince : Incident si la pince est déjà en bas Incident si la pince, fermée, descend sur l objet ou le bord de la boîte 4. Monter pince : Incident si la pince est déjà en haut 5. Ouvrir pince : Incident si la pince est déjà ouverte 6. Fermer pince : Incident si la pince est déjà fermée Incident si la pince se ferme près de l objet (pas exactement dessus) 3 Programmation 3.1 Un exemple simple Objectif : On va faire effectuer au Robot un aller-retour. Le Robot doit avancer jusqu à un obstacle, puis reculer ensuite jusqu au mur de droite. Voici le diagramme représentant l objectif à atteindre : Début Si on peut avancer Avancer Si on ne peut pas avancer Ne rien faire A Si on peut reculer Reculer Si on ne peut pas reculer Ne rien faire Fin 6
Les cercles rouges représentent les étapes successives du programme. Les flèches représentent les transitions entre deux étapes successives. Sur chaque flèche il y a : un texte qui indique la condition à vérifier pour activer la transition un rectangle bleu représente l action effectuée lors de la transition Chaque flèche ou transition du diagramme ci-dessus peut donc être définie sous forme d une règle à quatre éléments : 1. une Étape origine de la transition 2. une Condition à vérifier pour permettre la transition 3. une Action à effectuer au cours de la transition 4. une Suite étape dans laquelle est placé le Robot en fin de transition Voici le programme qui réalisera l objectif prévu : Pour obtenir des d informations complémentaires sur l utilisation de l éditeur de programme, voir sous-section 4.5. Un clic sur le bouton «Exécuter le programme» fera démarrer le Robot qui réalisera alors automatiquement l objectif prévu. En cours d exécution du programme, cinq diodes clignotent sur le Robot pour signaler son fonctionnement en mode automatique. Ceci permet de repérer les situations où le Robot est immobilisé, en boucle, dans le cas d une erreur de programmation. Dans le cas où le programme tourne en boucle infinie, un clic sur le bouton «Reset» va permettre de débloquer le système et va replacer le Robot en position initiale. 3.2 Automate à états et actions On va maintenant décrire le fonctionnement automatique du Robot lors de l exécution de son programme en termes théoriques, en se référant au concept «d automate à états». 7
Le comportement du Robot est défini à l aide d un automate à états et actions que l on peut représenter par un diagramme, comme dans l exemple ci-dessus page 6. Cet automate peut aussi être défini à l aide de règles, comme on va le voir maintenant. 3.2.1 États À un certain instant, le Robot est dans un certain état, appelé étape dans notre programme. Un état est un simple nom comme, par exemple, Début, A, B,... Fin. Seuls les noms Début et Fin ont des significations prédéfinies, les autres peuvent être choisis librement par le programmeur. Un état est représenté sur les diagrammes, en rouge, par son nom placé à l intérieur d un cercle. 3.2.2 Transitions Lors du déroulent du programme, le Robot passe successivement d un état à un autre. Ce changement d état est une transition. Une transition est représentée sur les diagrammes par une flèche reliant deux états. Sur cette flèche figure, en noir, le texte définissant la condition à vérifier et, en bleu, dans un rectangle, l action à effectuer. Plusieurs transitions peuvent avoir le même état comme origine. Le programme en sélectionne une suivant des principes précisés plus loin page 9, parmi celles dont la condition est vraie. Lorsque la transition Origine Suite est sélectionnée, l Action est effectuée par le Robot avant de passer dans l état Suite. Chaque transition est définie à l aide d une règle de la forme : <Origine>: <Condition>, <Action> <Suite>. 3.2.3 Actions Origine Condition Action Suite On a vu à la sous-section 1.3, sur le panneau des commandes, les six actions que sait effectuer le Robot. L éditeur de règle propose une action supplémentaire : «Ne rien faire», utile pour définir certaines règles. 8
3.2.4 Conditions On a vu à la sous-section 1.4, sur le panneau des diodes, le statut des six capteurs que le Robot sait tester. À chaque capteur vont donc correspondre deux conditions qui testent respectivement le vrai et le faux. Par exemple on peut tester le statut la diode «Pince en haut» en utilisant, soit la condition Si pince en haut, soit la condition Si pince en bas. L éditeur de règle propose une condition supplémentaire, utile pour définir certaines règles : Dans tous les cas, qui est une condition toujours vraie. 3.2.5 Programme Le programme est constitué d un ensemble de règles de transitions entre états qui sont données en vrac, c est à dire sans ordre particulier. Deux noms d états jouent des rôles un peu particuliers : Début c est le premier état traité pour faire démarrer le Robot en mode automatique lorsqu on demande d exécuter le programme. Fin est un état pour lequel on ne définit aucune règle de transition et donc, quand le Robot se trouve dans cet état, le programme est terminé. C est la façon considérée comme normale de terminer un programme. Pour exécuter le programme on se place dans l état Début et on traite cet état. On traite un état en recherchant une transition valide, c est à dire dont la condition est vraie, ce qui permet alors d effectuer une action et de passer à un autre état. Traiter un état X consiste donc à : 1. faire la liste des règles ayant cet état X pour origine 2. repérer, dans cette liste, la règle dont la condition est vérifiée 3. effectuer l action définie dans cette règle 4. passer à l état Suite 5.... traiter ce nouvel état... Le libellé de l étape 2 sous-entend qu il y a une condition vraie et une seule. Tout autre cas est considéré comme une erreur qui provoque une interruption. Les différents cas d interruption sont les suivants : 1. si, à la première étape : la liste des règles à appliquer est vide, ou si, à la seconde étape : aucune des conditions des règles de la liste ne sont vérifiées 9
Arrêt du programme: Pas de règle applicable pour l état X 2. si, à la seconde étape : plusieurs conditions différentes (n) sont vérifiées simultanément Arrêt du programme: Indétermination: n règles applicables pour l état X 3. si, à la troisième étape : l action effectuée produit un incident matériel Incident... "Reset" pour recommencer Remarque : Le traitement de l état Fin, pour lequel aucune règle n est définie provoque une interruption du premier type, mais, dans ce cas le système arrête le programme normalement et affiche : Fin du programme 4 Exemple 4.1 Objectif : jeter l objet dans la boîte On veut que le Robot avance jusqu à l objet, le prenne, le porte jusqu à la boîte et le lâche dans la boîte. Pour réaliser cet objectif, nous allons procéder pas a pas et construire le programme par morceaux successifs que nous testerons au fur et à mesure. 4.2 Aller jusqu à l objet Voici le diagramme d un automate qui permet au Robot d aller jusqu à l objet et de s arrêter lorsqu on l a atteint : Début Si pas au dessus de l objet Avancer Si au dessus de l objet Ne rien faire Fin 10
Cet automate est défini par les règles suivantes : Mais si l on teste plusieurs fois ce programme, on constate, hélas, que pour certaines conditions initiales un incident peut survenir. Si la pince est ouverte en position initiale, tout va bien : Par contre, si la pince est fermée en bas, elle percute l objet : 4.3 Placer au préalable la pince correctement Avant de s approcher de l objet, il est donc raisonnable de placer la pince ouverte en haut. Nous allons donc tester ce diagramme : 11
Si pince fermée Début Ouvrir pince A Si pince en bas Monter pince Fin Écrivons les règles suivantes : Mais, si, lorsque la pince est initialement en bas fermée, tout va bien, dans toutes les autres positions initiales, diverses erreurs surviennent : la pince est en haut fermée Pas de règle applicable pour l état A la pince est en bas ouverte Pas de règle applicable pour l état Début la pince est en haut ouverte Pas de règle applicable pour l état Début Il est donc nécessaire d améliorer le programme : 12
Début Si pince fermée Ouvrir pince Si pince ouverte Ne rien faire A Si pince en bas Monter pince Si pince en haut Ne rien faire Fin Cette fois-ci le programme suivant fonctionnent correctement : Comme on a maintenant compris qu il faut, pour chaque état définir les règles de transitions en envisageant tous les cas possibles, on peut terminer le programme facilement. 4.4 Terminer le programme Voici un diagramme complet : 13
Début Si pince fermée Ouvrir pince Si pince ouverte Ne rien faire A Si pince en bas Monter pince Si pince en haut Ne rien faire B Si pas au dessus de l objet Si au dessus de l objet Avancer Descendre pince Dans tous les cas C Fermer pince D Dans tous les cas Monter pince Si au dessus de la boîte Ouvrir pince E Si pas au dessus de la boîte Avancer Fin À vous de définir les règles correspondantes... 14
4.5 Rédiger les règles L utilisation de l éditeur de programme est assez intuitive. Au départ, l éditeur ne contient qu une règle vide : On utilise les quatre menus pour définir la règle. Dès que la règle est complète, le bouton devient qui permet, si on le désire, d ajouter une nouvelle règle vide : Une fois la nouvelle règle vide ajoutée, le bouton de la règle précédente devient ce qui permet, si on le désire, de supprimer cette règle : À tout instant, les règles déjà rédigées peuvent être modifiées. Si on constate qu on a oublié une règle, on peut l ajouter à la fin, sans problème, puisque l ordre des règles n a pas d importance pour la définition de l automate. 4.6 Observer l exécution du programme Lorsque le programme s exécute les règles ayant pour origine l état courant sont affichées sur fond gris clair ou foncé. Les règles non applicables sont précédées du signe. Les règles applicables sont précédées du signe. Si le programme est correct il n y a qu une règle applicable à chaque étape. Dans le cas contraire une interruption survient avec un message d erreur. Les marques ci-dessus permettent alors de voir la cause de l erreur. 15