Drum Player IRL
Description :
Le Drum Player est un bras robotique constitué de deux servomoteurs de modélisme, le premier permettant de déplacer le bras horizontalement, tandis que le second permet de lever et baisser le bras. Au bout du bras est placé un capteur de contact, constitué d'une tige de corde à piano, passant dans un cercle de métal. Lorsque le bras touche un objet, la tige fait contact avec l'anneau, permettant la détection. Le robot est contrôlé par un mini-ordinateur Raspberry Pi 2. La figure ci-dessous montre le câblage des éléments du robots :
Le robot est piloté par un script en Python qui échange avec un système décisionnel externe de la même façon que le Drum Player simulé, c'est à dire par le biais de deux fichiers texte, solution qui 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 robot 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 robot é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.
Le script contrôlant le robot propose un système interactionnel composé de 14 interactions, chacune étant identifiée par un numéro :
id | do | ré | mi | fa | sol | la | si |
reussi | 0 | 2 | 4 | 6 | 8 | 10 | 12 |
raté | 1 | 3 | 5 | 7 | 9 | 11 | 13 |
Ressources :
- drum_playerIRL.zip : archive contenant le script de contrôle du robot, les fichiers d'échange, ainsi que deux scripts Python (test_random.py et test_gamme.py) permettant de tester le robot.
Nous avons interfacé le mécanisme d'apprentissage séquentiel développé par Olivier Georgeon. Ici, le robot peut tapper à gauche, à droite et au centre. Nous tentons dans cette vidéo de lui apprendre à jouer la séquence droite-droite-milieu-milieu. Au bout de 5 minutes d'apprentissage, l'agent commence enfin à jouer cette séquence.