Modélisation et animation de systèmes robotisés dans l
Transcription
Modélisation et animation de systèmes robotisés dans l
Modélisation et animation de systèmes robotisés dans l'environnement Delphi Aurel Fratu1, Mariana Fratu1, Jean-François Brethé2, Olga Cachard2 1 - Université Transilvania de Brasov, Roumanie, E-mail : [email protected]; [email protected] URL : http://www.unitbv.ro 2 – GREAH - Université du Havre, France, E-mail : [email protected]; [email protected] URL : http://www.univ-lehavre.fr Résumé. Les environnements informatiques sont les moyens idéaux pour créer/modéliser les architectures de robots virtuels. L’animation ou la simulation comportementale, dans les environnements informatiques, devient un outil important de recherche. La simulation est une approche stratégique pour la visualisation, la planification et a un rôle très important en robotique. Différents outils sont utilisés pour l'analyse du comportement des robots manipulateurs, pour la programmation off-line, pour la conception des différents algorithmes de commande, pour la conception de la structure mécanique des robots, pour la conception des cellules et des lignes de production robotisées, etc. En particulier, nous présentons dans cet article une technique innovante pour créer les prototypes virtuels. Nous donnons une vue d’ensemble de l’environnement Delphi permettant de créer et animer/simuler des robots virtuels. Les avantages de la simulation et des environnements virtuels et réels, utilisés en robotique, sont précisés. Cet article est le résultat de nos efforts pour modéliser/ créer et animer/ simuler des systèmes -robots virtuels. Mots-clés : Modélisation/Création, Animation/Simulation, Systèmes virtuels, Visualisation Introduction La simulation est maintenant un outil puissant pour la conception, la planification, l'analyse et la prise de décision dans différents domaines de recherche et de développement. En particulier, elle est devenue un outil stratégique en robotique. Dans le domaine de la robotique, la simulation joue un rôle très important, peut-être plus important encore que dans beaucoup d'autres domaines. Nous abordons ici la robotique du point de vue de la simulation des comportements et de l’animation. Nous allons présenter quelques exemples typiques d’animation/simulation dans différents domaines de la robotique concernant la simulation du comportement des robots manipulateurs et les environnements intégrés pour la simulation dynamique des systèmes robotisés. Les outils avancés de simulation sont la base pour la conception des systèmes sophistiqués comme le sont les robots, pour l'utilisation des robots dans les environnements complexes et pour le développement de nouvelles stratégies et algorithmes de commande. Auparavant, la simulation n’était qu'un outil pour l'analyse d'un système robotisé et pour la planification de la tâche robotique. Maintenant c’est une plateforme ouverte pour développer/créer de nouveaux systèmes robotisés. Non seulement les outils modernes de simulation permettent de simuler et visualiser le monde réel d'une manière très plausible, mais aussi ils permettent d’aller au delà de la réalité. En particulier, les chercheurs peuvent créer les environnements virtuels expérimentaux selon leur propre imagination, les robots et les technologies qui ne sont pas encore disponibles. 1. Le rôle de la simulation/animation La simulation comprend la conception d'un modèle d'un système physique réel ou théorique, l’étude expérimentale du modèle, et l’analyse des résultats obtenus à partir de ce modèle. En fait, la simulation est très utile pour appréhender la réalité dans toute sa complexité. Nous essayons de construire les objets artificiels et de les animer dynamiquement. Le concept d’apprentissage est essentiel dans la simulation. En utilisant la simulation nous pouvons apporter des améliorations au modèle et tout en modifiant « la règle de fonctionnement » nous pouvons observer les résultats des modifications apportées. Comme nous vivons selon le principe « je ne crois que ce que je vois », la visualisation est un autre aspect important de la simulation. La simulation est un champ fortement interdisciplinaire puisqu'elle est employée couramment dans tous les domaines de la recherche, de la recherche universitaire à la fabrication. La possibilité de simuler un phénomène ouvre un éventail d'options pour résoudre beaucoup de problèmes de manière créative. Nous pouvons concevoir, visualiser et étudier un objet/système même s’il n'existe pas. Nous pouvons tester les performances d'un système qui n’est pas encore construit. Il est possible que nos solutions mènent à l’échec ou même provoquent la destruction de l’objet de la simulation, mais ce n’est que virtuellement. Ainsi, à l'aide des outils de simulation on peut éviter les collisions ou des modifications de la conception après le début de la production des pièces en constatant que le processus de fabrication contient des cycles de durée trop longue. Les outils de simulation permettent d’aborder la géométrie exacte, de considérer les caractéristiques dynamiques d'un système, d’inclure les interfaces homme - machine, et de visualiser les détails d’un objet en 2D ou 3D. En sachant bien que tout ce que l’on peut simuler n’est pas réalisable, à l’aide des outils avancés pour simuler la réalité virtuelle on repousse loin les frontières de la connaissance. En utilisant des simulateurs, les chercheurs peuvent établir les environnements expérimentaux selon leur propre imagination. Ce qu'ils ont imaginé pendant la nuit, peut être transcrit en images le jour suivant. La complexité et la spécificité des objets de simulation peuvent être graduellement augmentées jusqu'à un niveau où les systèmes virtuels peuvent représenter un véritable défi pour le monde physique. La simulation a été identifiée comme outil important en robotique dans le domaine de la conception des nouveaux robots, l’étude de leurs performances et dans la réalisation de tâches par ces robots. La simulation nous permet d'étudier la structure, les caractéristiques et le fonctionnement d'un système robotisé, à différents niveaux de détails, en fixant pour chaque niveau différentes conditions pour les outils de simulation. Par exemple un processus rapide, comme le mouvement d’une articulation mobile de robot, peut être animé au ralenti pour observer tous les détails de ce mouvement. Ainsi, les choses deviennent plus faciles. À mesure que la complexité du système augmente, l’importance du rôle de la simulation augmente également. C'est pourquoi les outils de simulation peuvent certainement augmenter les performances de la conception, du développement et même de l'exploitation des systèmes robotisées. En améliorant la simulation avec des outils et des interfaces de visualisation, on peut simuler le fonctionnement des systèmes robotisés d'une manière très réaliste. Ainsi, on peut diminuer le coût de développement. Selon l’utilisation particulière, les différents attributs structuraux et les paramètres fonctionnels doivent être modélisés. Par conséquent, une grande variété d'outils de simulation a été développée pour la conception mécanique des robots manipulateurs, des systèmes de commande, des systèmes de programmation off - line, pour la conception et l’étude des cellules flexibles de fabrication, etc. Pour surmonter les problèmes qui apparaissent quand le système est très complexe (comme les robots le sont habituellement) plusieurs approches existent pour obtenir automatiquement les modèles dynamiques et/ou cinématique des robots. 2. Simulation des systèmes robotisés Une grande quantité de logiciels de simulation est maintenant disponible pour des systèmes robotisés, et est déjà intensivement employée. Dans la plupart des cas, la simulation de robots est centrée sur les mouvements du robot manipulateur dans différents environnements. Comme la simulation de mouvement joue le rôle central dans tous les systèmes robotisés, on y tient compte de la cinématique ou des modèles dynamiques des robots manipulateurs. Le choix de type de modèle à employer dépend de l'objectif du système de simulation. Par exemple, les algorithmes de planification de trajectoire dépendent des modèles cinématiques. De même, la construction d'une cellule robotisée peut être simulée efficacement en employant seulement des modèles cinématiques des robots manipulateurs, sans considérer leur dynamique ou les modèles de commande. Par contre, pour concevoir les actionneurs, les modèles dynamiques sont nécessaires. Les systèmes de commande modernes pour les robots manipulateurs utilisent différents modèles dynamiques internes pour améliorer l'exécution de la tache robotique. Il est possible de modéliser et simuler/animer le comportement d'un système robotisé de différentes manières. Tout dépend de l’approche utilisée pour établir le modèle. Le logiciel de simulation basé sur des diagrammes exige que l'utilisateur décrive le système en combinant des blocs et des diagrammes, mais il existe des logiciels différents nécessitant le codage manuel, c’est à dire l’écriture de code source. Les outils de simulation pour les systèmes robotisés peuvent être divisés en deux groupes principaux : les outils basés sur les systèmes usuels de simulation et les outils spéciaux pour des systèmes robotisés. Les outils basés sur les systèmes de simulation ordinaires contiennent habituellement les modules de simulation, les bibliothèques et les interfaces utilisateur spéciales permettant de simplifier la conception des systèmes et des espaces de travail pour robots (Corke, 1996). L’un des avantages de telles boîtes à outils intégrées est une possibilité d’avoir accès aux autres outils disponibles dans le système de simulation pour l’exécution de différentes fonctions : par exemple, pour concevoir un système de commande, pour analyser des résultats de simulation, pour visualiser des résultats, etc. Ils existent plusieurs outils de simulation de ce type qui peuvent être utilisés pour la simulation des systèmes robotisés comme par exemple, la boîte à outils pour la robotique de MATLAB, le Dymola/Modelica, le Sim 20, etc. Les outils spéciaux de simulation pour des robots couvrent un ou plusieurs domaines d’application dans la robotique comme la programmation off-line, la conception des cellules de travail pour robots, la conception mécanique, l'analyse cinématique et dynamique. Ils peuvent être spécialement développés pour les types particuliers de robots comme les robots mobiles, les robots industrielles, les mécanismes parallèles, ou ils sont désignes à une famille donnée de robots comme par exemple, le KUKAsim, le simulateur Fanuc etc. Dans cet article les auteurs proposent d’utiliser l'environnement informatique Delphi, pour la simulation qualitative des systèmes robotisés, en utilisant la programmation visuelle. Delphi est un outil de programmation visuelle qui permet de réaliser l'interface des applications Windows de manière pratiquement instantanée. L’utilisation de cet outil est très intuitive et aisée car on arrive à gérer sans effort un environnement aussi sophistiqué que Windows. Le langage Delphi vient du Pascal, et est orienté objet exactement comme langage C++. Il est très simple à apprendre, très évolutif et très intuitif. Le simulateur créé dans l'environnement Delphi a été utilisé pour contrôler l’exécution des tâches des systèmes robotisés. Le simulateur est créé avec le code DELPHI, dont l’objet est de créer des prototypes virtuels. Dans la formation des ingénieurs en robotique, il est fondamental de donner une définition exacte et structurée de ce qu'est exactement un robot. Le modèle générique de robot donne cette définition. La simulation fondée sur ce modèle est un outil valable pour définir les propriétés d'un robot. Le système Delphi incite les utilisateurs à faire leurs propres extensions de programmes et à les exécuter. En faisant ceci, de nouvelles idées peuvent être testées sur les systèmes de production robotisés. En général, la simulation peut être employée pour effectuer l'analyse et l’étude de tout projet de création d’un système robotisé pouvant être modélisé comme un ensemble des corps rigides reliés par des articulations, pouvant subir l’action des forces, pouvant être guidé par les mouvements prédéfinis et en tenant compte des limites posées par des contraintes. Dans la simulation qualitative on considère le mouvement pur, sans faire la référence aux masses ou aux forces impliquées dans ce mouvement. C'est le cas du modèle cinématique qui étudie le mouvement d'un corps ou d’un système de corps, sans prendre en considération la masse ou les forces qui agissent dessus. Ce modèle met en évidence les caractéristiques du mouvement, en négligeant les effets dynamiques. 3. Moteurs pour simuler la dynamique de multi-corps Dernièrement sont apparus des nouveaux outils pour la simulation de la dynamique des environnements physiques basés sur les moteurs usuels. Ces moteurs fournissent des bibliothèques pour pouvoir simuler la dynamique de système multi corps, c.-à-d. le modèle numérique du mouvement d'un ensemble de plusieurs corps avec contraintes. Ces outils permettent aussi l’étude de comportement des robots manipulateurs. Ils disposent d’un moteur de simulation de la dynamique des corps et également d’un moteur de simulation pour la détection des collisions. Dans ce dernier cas, on fournit au moteur de simulation des informations concernant la forme de chaque corps, en supposant que les corps en question rentrent en contact suite à une collision. Le moteur délivre au programmateur les informations résultantes concernant les points de contact. Le programmateur peut alors prendre les mesures appropriées. Comme exemples des bibliothèques servant à simuler la dynamique de multi corps, nous avons choisi Open Dynamics Engine (ODE) et Open Graphics Library (OpenGL). Open Dynamics Engine (ODE) est une bibliothèque logicielle libre qui se place dans la catégorie des moteurs physiques. Elle sert à simuler l'interaction physique de corps rigides. ODE est disponible pour plusieurs plates-formes et utilise une interface de programmation en C pour une plus grande compatibilité (bien qu'en interne le code source est écrit en C++). Elle possède plusieurs types d’articulations et intègre un détecteur de collision avec friction. Le moteur utilise plusieurs intégrateurs en fonction de la précision et de la robustesse de la simulation désirée. L'ODE est une source ouverte, une bibliothèque très efficace pour simuler la dynamique des corps rigides ou articulés. L'ODE est utile pour simuler des objets dans les environnements virtuels inspirés de la réalité. Avec son aide, il est assez simple d’établir le modèle d'un robot. Open Graphics Library(OpenGL) est une spécification qui définit une API (Application Programming Interface ou l’interface de programmation des applications) multi-plateforme pour la conception des applications générant des images 3D ou 2D. Elle utilise en interne les représentations de la géométrie projective. L'interface regroupe environ 250 fonctions différentes qui peuvent être utilisées pour afficher des scènes tridimensionnelles complexes à partir de simples primitives géométriques. Du fait de sa souplesse d'utilisation et de sa compatibilité avec toutes les plates-formes, elle est utilisée par la majorité des applications scientifiques, industrielles ou artistiques 3D et certaines applications 2D vectorielles. Comme exemple de l’environnement d’étude du comportement des systèmes multi corps nous avons choisi BehaviorSim. BehaviorSim est un environnement d’étude basé sur le comportement de l'agent robot. Cet environnement permet de réaliser l'étude de la commande adaptive du robot dont le comportement s’adapte en fonction d’un environnement dynamique (Wooldridge et Al., 2002). La simulation se fait d'une façon intuitive suivant le paradigme de « comportement-basé ». BehaviorSim permet à des étudiants de développer et de tester leurs propres applications basées sur le comportement des robots. Cependant, la diversité des tâches à réaliser nécessite l'étude d'autres types de robots, dont les paramètres de la conception diffèrent de ce qui est connu habituellement. Les nouveaux types de robots peuvent avoir de nouvelles propriétés, comme la haute stabilité ou l'existence de nouveaux types de trajectoires. Afin d'agrandir les possibilités de tels systèmes, il est intéressant d’assouplir quelques contraintes sur les paramètres des systèmes robotisés actuels. Les structures virtuelles présentées dans cet article peuvent se comporter différemment des robots actuellement utilisés dans l'industrie, ce qui permet des changements de conduite des systèmes robotisés actuels. Une tendance courante en robotique consiste à concevoir un robot dont les performances sont optimales pour une application donnée, tout en préservant la possibilité de l'employer pour des autres tâches ; c'est-à-dire de le spécialiser au maximum pour une application donnée et de l‘homologuer pour d’autres applications, afin d’amortir son coût et d’augmenter sa sûreté opérationnelle. 4. Exemples des systèmes multicorps simulés dans l’environnement Delphi Sous sa forme plus générale, un système robot se compose d'un certain nombre de corps rigides reliés par des articulations. Souvent, par souci de simplicité dans la fabrication et dans la commande on considère les robots uniquement avec les articulations de rotation ou de translation et aussi avec les axes d'intersection des articulations orthogonales et/ou parallèles (au lieu d’axes placés arbitrairement). La position et l'orientation du préhenseur du robot sont déterminées à partir des positions et orientations des articulations du bras de robot. Dans le premier exemple nous utilisons un robot virtuel de type sériel. Nous devons créer tous les corps et les relier aux articulations appropriées. Par exemple, le modèle 3DOF (degrees of freedom=degrés de liberté) comme montré ci-dessous est intégré dans une cellule de travail. Ici, la bibliothèque de multi-corps fournit les composants mécaniques tridimensionnels pour construire des systèmes multi-corps, comme les robots. Le système robotisé est établi en reliant des blocs représentant des pièces comme des corps, des articulations, des actionneurs, etc. La méthodologie de simulation emploie de nombreux scénarii possibles avec quelques séquences d'animation, que l’on peut voir dans les figures suivantes. La figure 1 montre comment une main (préhenseur) de robot peut saisir un récipient. Dans cet exemple, la synchronisation entre le bras du robot et le convoyeur est étudiée et tous les contacts entre les doigts et le récipient sont analysés. • Figure 1 : Séquences d'animation d’après scénarii représentant le processus de saisie d’un récipient La simulation dynamique des systèmes multi-corps devient nécessaire quand il existe une interaction entre le robot manipulateur et les objets mobiles. Dans ce cas, le résultat final dépend non seulement des performances des robots mais également de la simulation de l’interaction de tels systèmes. Dans notre exemple, on simule la situation où la main du robot et le système de transport agissent l'un sur l'autre. Ceci nous permet d’étudier chaque soussystème, de comprendre entièrement le comportement du système robotisé, d’examiner des algorithmes de commande. Pour la deuxième application, les images suivantes montrent des séquences d'animation d’après des scénarii créés pour usiner la carrosserie de la voiture DACIA. L’environnement Delphi nous permet de créer une chaîne de production automobile. La méthodologie est interactive parce que l'humain participe en définissant le volume d'espace de travail et le nombre de voitures embarquées dans le camion. Les configurations des système sont présentées cidessous pour deux couleurs différentes de la voiture: verte et rouge. • La première étape a été de réaliser graphiquement l’installation robotisée à l’aide des fonctions forme (rectangle, ellipse, polygone…). Nous avons commencé par créer le premier tapis roulant, puis le pont roulant, le deuxième tapis et ainsi de suite en suivant l’ordre logique de la chaîne, jusqu'à obtenir toute l’interface graphique. Mais pendant le déroulement du processus, certains objets se mettent devant les autres. Pour réaliser cela, Delphi lit le code dans l’ordre, c'est-à-dire que si l’on demande de tracer deux objets superposés, on verra uniquement le deuxième, car Delphi, après avoir interprété le premier, le trace, mais ensuite lit le deuxième et le trace par-dessus le premier, ainsi on ne voit donc que le deuxième dessin. La deuxième étape a été d’animer le dessin selon les séquences suivantes : - avancement de la voiture sur le tapis 1 ; - prise de la voiture par le pont roulant ; - trempage de la voiture dans le bac de cataphorèse (la cataphorèse est une technique de peinture qui consiste à immerger la pièce dans un bain de peinture hydrosoluble) ; - le pont roulant dépose la voiture sur le tapis 2 ; - la voiture avance jusqu’au prochain poste ; - le premier robot prend la porte arrière dans le bac et la maintient à sa future position sur la voiture ; - le deuxième robot soude la porte puis revient à sa position initiale ; - le premier robot relâche la première porte et va chercher la porte avant dans le deuxième bac, puis il la positionne ; - le deuxième robot soude la porte et revient à sa position initiale ; - le premier robot revient à sa position initiale ; - la voiture avance avec ses portes et descend au deuxième étage ; - la voiture avance jusqu'à la cabine de mise en peinture où elle est peinte ; - la voiture avance jusqu’au prochain poste où elle reçoit ses roues ; - la voiture avance jusqu’au vérin ; - le vérin descend avec la voiture et attend ; - la deuxième voiture commence son cycle ; - quand la deuxième voiture atteint la cabine peinture, la première voiture avance et rentre dans le garage puis le vérin remonte ; - la deuxième voiture sort de la cabine peinture et va recevoir ses roues ; - elle avance jusqu’au vérin et descend ; - elle entre dans le garage ; - le vérin remonte ; - les deux voitures sortent du garage et montent dans le camion pour être évacuées. Présentation des séquences principales pour les différents scénarii Dans le langage Delphi - au niveau de code source on utilise la programmation textuelle avec des symboles numériques et littéraux. Nous avons imaginé des scenarii dont nous avons retenu le premier Fig.(2) et le dernier Fig.(3) : • Au début, le pont roulant va attraper la voiture pour l’emmener dans le bain de cataphorèse, pour cela, il faut ajouter la variable qui s’incrémente automatiquement et qui est placée à la fois dans les coordonnées de la voiture et dans celles du pont roulant. Figure 2 : Première séquence d'animation simulée. • Pour passer à la dernière séquence il suffit d’utiliser la même variable dans les coordonnées des deux voitures et du camion afin de les faire avancer en même temps. On obtient cette dernière image : 5. Conclusions L’objectif de cet article est de souligner le rôle de la simulation dans différents domaines de la robotique. Ainsi nous recommandons aux chercheurs d'employer les moteurs dynamiques généraux et les langages de programmation visuels pour la simulation et la visualisation des systèmes robotisés. Les systèmes robotisés avancés exigent des outils sophistiqués de simulation qui peuvent simuler assez précisément le monde physique, à une vitesse suffisante et permettent l'interaction avec l’utilisateur. La simulation des systèmes multi corps, sous l'influence des forces extérieures, la détection de la collision et la détermination de la force d’impact, la visualisation réaliste de la scène de travail et l'interaction avec l’environnement sont les nouveaux défis dans la simulation des systèmes robotisés. Cet article propose d’utiliser l'environnement de programmation visuel Delphi, pour faciliter la programmation intuitive des robots et présente quelques exemples d’applications de systèmes robotisés virtuels. Le premier exemple concerne des robots qui travaillent dans des environnements avec contraintes. L’étude de la tâche robotique avec des contraintes nous permet d'établir les règles de base pour contrôler le processus de préhension, utilisé pour les robots réels. Le deuxième exemple nous montre comment mettre au point une chaîne de fabrication robotisée. Ainsi on peut analyser les structures virtuelles créées de point de vue de la robotique et obtenir une meilleure description du comportement de telles structures réelles robotisées. Les simulations réalisées pour cette application ont été également utilisées pour l'élaboration des méthodes systématiques pour créer les nouveaux systèmes robotisés. Nous avons prouvé que ces méthodes créatrices peuvent maintenant être utilisées pour créer de nouvelles structures de robots, pour tester les paramètres des systèmes et pour résoudre des problèmes spécifiques de cette façon. Enfin, la simulation en robotique maintenant joue un rôle très important. En employant ces différents logiciels de simulation, les performances - présentes et futures - des systèmes robotisés complexes peuvent être sensiblement améliorées. 6. Remerciements Figure 3 : Dernière séquence d'animation simulée. Ce travail a été soutenu dans le Département d'Automatique de l’Université Transilvania de Brasov Roumanie. Les auteurs remercient vivement cet établissement pour son accueil. 7. Références Bruzzone L.E., Molfino R.M., Zoppi M and Zurlo G., “The PRIDE prototype: control layout of a parallel robot for assembly tasks,” Proceedings. of the International Conference on Modelling, Identification and Control (MIC), 2003, pp. 606-611. Corke P.I., "A robotics toolbox for MATLAB", IEEE Robot Automation. Mag. 3(1), p. 24–32, 1996. Fernandez-Madrigal J-A. et al., "A software engineering approach for the development of heterogeneous robotic applications.", Proceeding of Robotics and Computer-Integrated Manufacturing, N°.24 (2008) p.150–166. Fleury G., Lacomme Ph., Tanguy A., "Simulation a eveniments discrets.", Editeur EYROLLES, 2006. Fratu A., Fratu M., "Programarea vizuala in mediul Delphi cu Aplicatii in Robotica (Programmation visuelle en environnement Delphi avec des Applications in Robotique)." Editeur : l'Université Transilvania de Brasov, ISBN 978-973-598-315-4, 2008. Wooldridge M. et al., "Model checking multi-agent systems with MABLE.", Proceedings of the first international joint conference on Autonomous agents and multiagent systems: part 2, ISBN:1-58113-480-0, p. 952 – 959, 2002. http://www.20sim.com/ http://ode.org/ode.html