Simulateur ErnestIRL
Description :
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.
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 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.