Drum Player IRL

Ernest IRL

Description :

Ce robot, calqué sur le modèle du Drum Player, est destiné à tester des mécanisme d'apprentissage séquentiels. Nous avons pu notamment tester les mécanismes d'apprentissages développés par Olivier Georgeon.

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 :

raspberry Pi
Câblage du robot : tous les éléments sont directement connectés aux ports GPIO du Raspberry Pi. comme les servomoteurs ont une faible consommation, et qu'un seul est utilisé à la fois, on peut se passer d'une alimentation externe.
contact
Gros plan sur le capteur de contact.

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.

PRI
Système d'échange entre le système décisionnel et le robot
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 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.

Utilisation du robot pour tester les mécanismes d'apprentissage

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.