Environnement VacuumSG

vacuumSG

Ressources :

sources

workspace pour Eclipse

manuel d'utilisation

Description :

Ce simulateur est dérivé de celui que j'ai utilisé durant ma thèse. Il est basé sur l'environnement Vacuum de Cohen (Teaching agent programming using custom environments and Jess, 2005), que j'ai modifié pour permettre une simulation d'un environnement continu. Afin que ce simulateur puisse être utilisé dans d'autre projets ou à des fins d'enseignement, j'ai retiré tout le système décisionnel des agents mis au point au cours de ma thèse et simplifié au maximum l'implémentation de l'environnement.

architecture
Architecture du simulateur
Ce simulateur est conçu pour la simulation d'un ou plusieurs agents en environment continu (il est cependant possible de restreindre l'agent à une grille). Par rapport à l'environnement utilisé pendant ma thèse, on peut noter les améliorations suivantes :
- chaque agent s'exécute sur un thread différent.
- le système visuel n'est plus restreint au centre de l'agent et peut être placé n'importe où sur l'agent.

L'utilisateur peut contrôler la simulation à l'aide de l'interface suivante :
interface
Il peut également sélectionner, dans la fenêtre principale, l'agent à observer, et éditer l'environnement.

L'environnement par défaut est construit à l'aide d'un fichier texte, et peut être modifié pendant la simulation. Il est possible d'ajouter des éléments en plus de ceux proposés.

Le robot simulé peut se déplacer dans toutes les directions et tourner sur lui-même. Il peut sentir les propriétés tactiles des éléments situés devant lui, à sa droite, à sa gauche, et derrière lui. Il dispose également d'un anneau de "leds" lui permettant d'afficher ses états internes.

Le simulateur propose également un moteur de rendu polaire donnant au robot un système visuel de 360° capable de mesurer les distances, et pouvant être utilisé pour simuler de nombreux types de capteurs (caméra, capteur de contact, de luminosité, de distance...). Un exemple de capteur ainsi construit est donné dans la version de base. Ce système de rendu peut être placé en tout point du robot, ce qui rend possible, par exemple, l'utilisation d'un système stéréoscopique.

vision
Affichage du système visuel. Le moteur de rendu peut définir un champs de vision de 360° capable de déterminer la couleur, la propriété tactile et la distance des objets, avec une résolution angulaire de 1°
Les échanges entre le robot et le système de décision se font sous la forme de vecteurs contenant soit les commandes motrices, soit les valeurs des capteurs du robot. La version de base propose des vecteurs utilisables, mais d'autres vecteurs peuvent être utilisés.

La version de base propose en exemple deux systèmes de décision :
- Braitenberg.java : implémente les célèbres véhicules de Valentino Braitenberg. Le robot utilise les proies en guise de source lumineuse.
- WallAvoider.java : un simple système d'évitement d'obstacle : le robot avance en tournant à gauche, et tourne à droite si il rencontre un obstacle.