Drum Player, un simulateur pour tester des mécanismes d'apprentissage séquentiels

Simulation

Description :

Un robot simulé basé sur le moteur de jeu Blender (BGE), destiné à tester des mécanismes d'apprentissage séquentiels. Il est inspiré des travaux d'Olivier Georgeon, et notamment de sa simulation du robot Poppy, basé sur V-rep. Le but de ce simulateur est de proposer une plateforme entièrement open-source et facilement utilisable, pour tester des mécanismes d'apprentissage.

Le Drum Player est un bras robotique doté de deux degrés de liberté, et d'un capteur de contact au bout de son bras pour détecter les tambours. Le robot est configuré pour pouvoir jouer sept notes, et détecter si la note a bien été jouée. Lorsque le bras tappe sur un tambour, un son, issu du répertoire sound, est joué. Il est bien sûr possible de remplacer les notes jouées par d'autres sons, en remplaçant les fichiers sons du répertoire sound.

Le simulateur échange avec un système décisionnel externe par le biais de deux fichiers texte. Cette solution, outre sa simplicité, facilite le portage sur différents systèmes d'exploitation ainsi que l'utilisation d'autres langages de programmation. Le cycle de décision débute avec le mécanisme décisionnel, 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. Le système décisionnel 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 simulateur propose un système interactionnel composé de 14 interactions, chacune étant identifiée par un numéro :

id do mi fa sol la si
reussi 0 2 4 6 8 10 12
raté 1 3 5 7 9 11 13


Ressources :

- drum_player.zip : archive contenant le fichier Blender du simulateur, les fichiers d'échange, les notes à jouer au format mp3, ainsi que deux scripts Python (test_random.py et test_gamme.py) permettant de tester le simulateur. Nécessite Blender 2.69 ou supérieur.


Utilisation

Pour installer le simulateur, il suffit de décompresser l'archive dans un répertoire quelconque, puis d'ouvrir le fichier drum_player.blend avec Blender. La simulation se lance en appuyant sur la touche 'P', et se termine en appuyant sur 'Echap'. Une fois lancé, le simulateur attend une commande dans le ficher intended.txt. Il est possible de tester le bon fonctionnement du simulateur avec les fichier test_random.py et test_gamme.py, en exécutant la commande python test_random.py ou python test_gamme.py depuis le répertoire Ernest_simulator. Le premier joue des notes au hasard, le second joue les notes de la gamme dans l'ordre. Si le robot se met à bouger, le simulateur est pret.

Commandes :

il est possible de contôler le bras, les tambours et la caméra pendant la simulation. Voici la liste des commandes :

Jouer des notes :
touches 'a', 'z', 'e', 'r', 'u', 'i', 'o' pour jouer les 7 notes

placer/retirer les tambours: touches 'q', 's', 'd', 'f', 'j', 'k', 'l'

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 -

Drum Player en action : à gauche, piloté par test_game.py, à droite, par test_random.py