Simulateur ErnestIRL

Simulation

Description :

Une simulation du robot ErnestIRL basé sur le moteur de jeu Blender (BGE). Le simulateur utilise une version modifiée du modèle 3D du robot et un environnement virtuel similaire à celui utilisé pour le robot.

Tout comme le robot ErnestIRL, le modèle simulé dispose d'un capteur de contact à l'avant, d'un capteur détectant le passage sur des éléments colorés et une caméra.panoramique. Notons que cette dernière est consituée d'une caméra en hauteur plutôt qu'un système basé sur un miroir sphérique, le BGE ne permettant pas en effet de simuler efficacement un miroir. L'image obtenue est envoyée devant la caméra d'observation à l'aide d'un script disponible sur www.tutorialsforblender3d.com.

Le simulateur échange avec un système décisionnel externe par le biais de trois fichiers. Cette solution, outre sa simplicité, facilite le portage sur différents systèmes d'exploitation ainsi que l'utilisation d'autres langages. La séparation entre le système décisionnel (l'agent) et son environnement est ainsi totale, l'agent n'interagit avec son environnement que sous la forme d'interactions, respectant les principes du Radical Interactionism. Le cycle de décision débute avec l'agent, qui écrit le symbole d'une interaction dans le fichier intention.txt, puis se met en attente tant que le fichier enacted.txt est vide. Le simulateur attend jusqu'à ce que le fichier intention.txt ne soit plus vide, puis, lorsque c'est le cas, lit le symbole, efface le fichier, puis effectue l'interaction. À la fin de l'interaction, le simulateur écrit le symbole de l'intéraction énactée dans le fichier enacted.txt. L'agent peut alors lire ce symbole, puis, après avoir effacé ce dernier, intègre le résulat de son intention.

PRI
Système d'échange entre le système décisionnel et le simulateur
Le fichier simulation_image.jpg est généré à chaque cycle de décision. La partie en bas à gauche affiche ce que voit l'agent. Cette partie peut être exploitée pour générer des interactions visuelles.


Ressources :

- Ernest_simulator.zip : archive contenant le fichier Blender de la simulation et les fichiers d'échange, ainsi qu'un script Python (test_random.py) permettant de tester le simulateur. Nécessite Blender 2.69 ou supérieur.

- version7_3_simu.zip : sources du système décisionnel 7.3 d'Ernest, modifié pour être utilisé avec le simulateur.

- spaceMemoryV7_3_simu_(1).txt : sauvegarde des signatures apprises après 1500 cycles de décisions, utilisable avec le système décisionnel v7.3 simu.


Utilisation

Pour installer le simulateur, il suffit de décompresser l'archive dans un répertoire quelconque, puis d'ouvrir le fichier Ernest_simulation.blend avec Blender. La simulation se lance en appuyant sur la touche 'P', et se termine en appuyant sur 'Echap'. Il est possible de tester le bon fonctionnement du simulateur avec le fichier test_random.py, en exécutant la commande python test_random.py depuis le répertoire Ernest_simulator. Si le robot se met à bouger, le simulateur est pret.

Commandes :

il est possible de déplacer les élements de l'environnement, la caméra et le robot pendant la simulation. Voici la liste des commandes :

Contrôle manuel du robot :
z : faire avancer le robot d'un pas
s : faire reculer le robot d'un pas
q : faire tourner le robot à gauche
d : faire tourner le robot à droite

contrôle de la caméra (pavé numérique):

translations
5 : avant
2 : arrière
1 : gauche
3 : droite
/ : haut
8 : bas

rotations
4 : gauche
6 : droite
* : haut
9 : bas

zoom : + et -

autre
p : la caméra suit le robot

édition de l'environnement :
c : choisir l'objet à manipuler. Le nom de l'objet à manipuler est affiché dans la console, si celle-ci est ouverte.
flèches directionnelles : déplacer l'objet sélectionné.
h : cacher/afficher l'objet sélectionné.

Utilisation avec les mécanismes décisionnels d'Ernest

Il est possible d'utiliser les mécanismes décisionnels de nos agents pour interagir avec le simulateur. La version proposée (v7.3 simu) est une version modifiée de la version v7.3 permettant de contrôler le robot ErnestIRL. L'interface et l'intégration du système visuels ont été modifiés pour tenir compte des spécificité du simulateur.

Il devient alors possible de reproduire les expérimentations effectuées avec ErnestIRL, avec des résultats comparables. On notera toutefois que les signatures d'interaction obtenues différent légèrement de celles obtenues avec ErnestIRL, principalement à cause des différences dans leurs systèmes visuels respectifs.

Apprentissage de l'agent : au début, l'agent est principalement dirigé par le mécanisme d'apprentissage qui le pousse à tester ses interactions pour construire les signatures. À mesure que les signatures deviennent fiable, le mécanisme d'exploitation devient de plus en plus utilisé. Après 7 minutes environ, l'agent commence à générer des comportements le poussant à se diriger vers la nourriture tout en évitant les murs. Le mécanisme d'apprentissage reste cependant utilisé dans les situations peu connues. Après 17 minutes environ, le comportement devient très efficace.


On teste ici l'évitement des obstacles (le mécanisme d'apprentissage est désactivé afin de ne pas parasiter les comportements émergents). Lorsque l'agent se dirige vers une proie, on lui barre le chemin avec un mur. On observe alors un comportement d'évitement pour contourner le mur et atteindre la proie.