SysQuake, un outil pour l'expérimentation et le prototypage rapide

Yves Piguet, Institut de systèmes robotiques, DGM- EPFL

SysQuake, un logiciel de simulation et de visualisation scientifique basé sur un langage de programmation compatible avec Matlab, a déjà été présenté dans ces colonnes (FI-10-99). C'était alors surtout sur la manipulation interactive de graphique propre à faire comprendre intuitivement des concepts théoriques difficiles que nous avions porté notre attention. Dans cet article, en décrivant quatre applications développées à l'Institut de systèmes robotiques (ISR-DMT) pour l'enseignement et la collaboration industrielle, nous verrons comment SysQuake peut être utilisé en relation avec du matériel: capteurs, actionneurs, robots mobiles ou caméras vidéo.

Expérimentation avec des capteurs et des actionneurs

Dans le cadre du concours de robots mobiles organisé par l'ISR de décembre 2000 à mai dernier ( http://dmtwww.epfl.ch/isr/asl/concours), qui lui-même fait partie d'un projet d'enseignement de la mécatronique ayant pour but d'impliquer davantage les étudiants sur la conception d'un produit réel ( http://dmtwww.epfl.ch/isr/asl/education/nlt-course.html ), les équipes ont reçu chacune des modules électroniques avec différents capteurs, tels que des capteurs de proximité infrarouge ou des caméras linéaires (fig. 1). Les modules sont chaînés entre eux et au PC par un bus I2C. Chaque module possède un micro-contrôleur PIC qui gère la communication, le capteur ou l'actionneur et le pré-traitement des signaux.

Fig.1: Module I2C avec caméra linéaire n/b de 64 pixels

Pour étudier les caractéristiques des capteurs et trouver comment les utiliser au mieux pour remplir la tâche du robot, une interface de commande a été développée pour SysQuake (fig. 2). Telle quelle, elle permet de configurer chaque module et d'étudier les signaux obtenus en fonction de ce que perçoivent les capteurs. Comme le programme pour SysQuake est fourni en tant que code source, les étudiants peuvent en étudier le fonctionnement et le modifier, par exemple pour fusionner les données de plusieurs capteurs et obtenir une connaissance plus fiable de l'environnement.

Fig. 2: Application SysQuake pour l'expérimentation avec les modules I2C de l'ISR, fournie aux participants au concours de robots mobiles 2000-2001

Commande de robots mobiles

Le cours de Systèmes informatiques donnés aux étudiants de Microtechnique de 5ème semestre se termine par des mini-projets de programmation de quatre semaines. Cette année, l'un des sujets proposés consistait à commander un robot mobile Khepera pour lui faire faire le tour d'un obstacle et en mesurer le périmètre. Khepera peut être commandé de plusieurs façons, par exemple en programmant directement son micro-contrôleur ou en communiquant par une liaison série. C'est cette solution-ci qu'ont choisie la plupart des étudiants concernés. Sur le PC, SysQuake assurait la commande, le calcul de l'odométrie (reconstruction de la position du robot à partir de la mesure de la rotation des roues) et l'interface utilisateur.

Par rapport à Matlab, la création de menus et d'autres éléments d'interface utilisateur est nettement plus facile. LabView, un logiciel que les lecteurs de FI connaissent bien, efficace pour réaliser des interfaces utilisateur de commande de processus, possède un langage de programmation graphique peu adapté au calcul scientifique.

Traitement d'image

Toujours dans le cadre du cours de Systèmes informatiques, il a été aussi proposé comme mini-projet le traitement d'images vidéo pour déterminer la position d'objets, en l'occurrence des dés et des billes de couleur. Les images étaient acquises par une caméra QuickCam de Logitech branchée sur le port USB des PC. Les étudiants étaient libres de choisir l'environnement de développement qu'ils voulaient; mais SysQuake était recommandé en raison de sa facilité à acquérir des images (une extension à cet effet était fournie), à observer pratiquement en temps réel l'effet de paramètres sur le traitement de l'image et à implémenter des algorithmes dans un langage bien adapté à la manipulation des tableaux. Pour le regroupement des pixels par objets, l'algorithme proposé traite l'image pixel par pixel; son exécution directe par SysQuake est relativement lente comparée à d'autres opérations (comme le filtrage et le seuillage) pour lesquelles l'image est traitée globalement. Une solution choisie par certains étudiants a été d'ajouter à SysQuake de nouvelles commandes écrites en C.

Prototypage rapide

L'ISR a développé pour l'entreprise Sedirep (Carouge/GE) un robot pour l'inspection de conduits d'aération ( http://dmtwww.epfl.ch/isr/asl/systems/scrappy.html). Le robot possède deux caméras dont une orientable, un dérouleur de câble, des capteurs d'inclinaison et de proximité et quatre roues motrices. La commande est assurée localement par une carte Kameleon de K-Team qui utilise le même OS et le même protocole de communication série que le Khepera, et à distance par un PC, par l'intermédiaire d'un câble qui assure aussi la connexion vidéo et l'alimentation.

SysQuake a été utilisé pour le prototypage rapide de l'interface de commande sur le PC (fig. 3). Une interface complète a été réalisée rapidement; elle a permis la commande du robot pour les premières explorations dans des conduits d'aération de l'EPFL, dont notamment ceux des hottes des cuisines de deux restaurants. Les avantages par rapport à d'autres environnements de développement sont multiples: la facilité de développement qu'apporte un langage interprété, les graphiques interactifs qui fournissent à la fois l'élément d'interface utilisateur de commande et le feed-back visuel, les capacités de calcul vectoriel propres au langage de Matlab utilisées pour l'odométrie et les changements de référentiels.

Fig. 3: Interface SysQuake pour le robot d'inspection de canalisation de Sedirep

Fig. 4: LyME sur Palm.

Conclusion

Ces différents projets montrent l'intérêt de SysQuake pour le développement rapide de programmes où se combinent interface utilisateur, acquisition, commande et traitement mathématique. La compatibilité avec Matlab évite à de nombreux utilisateurs l'apprentissage d'un nouveau langage de programmation.

SysQuake 2, disponible en tant que version bêta depuis deux mois, apporte un certain nombre d'améliorations utiles aussi bien pour les graphiques interactifs que pour l'expérimentation:

Parallèlement à SysQuake, LyME (http://www .calerga.com ), basé sur le même code source, offre aux ordinateurs de poche Palm un langage compatible avec Matlab. Avec une puissance de calcul typiquement mille fois plus faible que les ordinateurs actuels, le Palm n'autorise pas l'interactivité de SysQuake; mais la communication avec l'extérieur par le port série ou par une carte I2C développée dans le cadre d'un projet de semestre pourrait en faire un système de commande intéressant pour de petits robots mobiles.


retour au sommaire du Flash informatique du mois de septembre 2001
retour à la page principale des Flash informatique
Vos commentaires
© FI-7-1 du 18 septembre 2001