J'ai eu l'occasion de travailler sur le robot ECCERobot au cours de mon stage recherche de fin d'étude à l'AI lab de Zurich, en 2010.

mon mémoire de stage

EcceRobot

ecce1
EcceRobot, le robot anthropomimétique.


EcceRobot sur le site de l'University of Zurich.

ecce2

ecce4

ecce3
L'interface moteur.

Le système de segmentation et de suivi

Au cours de mon stage, j'ai développé un système de segmentation et de suivi capable d'estimer les translations et rotations d'objets dans l'espace. Ce système repose sur un système multi-agent à deux niveaux : un ensemble d'agents, très nombreux, suit l'image à l'aide d'un algorithme de flux optique, et filtrent les mouvements parasites. Un second groupe d'agents extrait et gère des informations obtenues par le premier groupe, et régule la répartition de ce premier groupe d'agents sur l'image. Le système considère que lorsqu'un groupe de points de l'image se déplacent de façon synchronisée, ces points font partie d'un même objet. L'ensemble des agents de premier niveau qui ont détecté cet objet sont alors affectés à l'analyse des mouvements de cet objet, et sont supervisés par un agent de second niveau. Ce dernier analyse le comportement de ces agents pour estimer le déplacement de l'objet (translation et rotation) dans les trois dimensions (voir le mémoire pour plus de détails).

tracking
Le système de tracking : à gauche, trois objets ont été détectés. Les ellipses jaunes permettent d'estimer la taille de l'objet, les carrés colorés montrent la surface couverte par les agents. À droite, le système d'affichage. Les cardans permettent de visualiser le mouvement observé.

Expériences sur le robot ECCERobot

Le but de mon stage était de permettre au robot de savoir quels éléments faisaient partie de son corps. On compare pour cela les mouvements détectés par le système de suivi et les commandes motrices. Une corrélation entre les mouvements d'un objet et une commande motrice indique que cet objet fait partie du corps du robot. Il devient même possible de définir les mouvements associés à chaque commande motrice.

ecce_vision
Le robot est ici doté du système de segmentation et d'analyse du mouvement que j'ai développé au cours de mon stage, qui lui permet de déterminer quels éléments font partie de son corps.

ecce_vision
En bleu : mouvements détectés par le système de suivi pour l'un des objets après un filtrage passe-bas pour éliminer les mouvements parasites. En vert : les commandes motrices. Les colonnes représentent les axes X, Y et Z, les lignes, la position, la vitesse linéaire et la vitesse angulaire.

ecce_vision
Corrélation entre deux commandes motrices testées et les différentes composantes du mouvement des trois objets détectés : il apparait que l'objet 1 (bleu) ne fait pas partie du robot. L'objet 2 (vert) est fortement corrélés à la commande motrice 1 (bras gauche) et l'objet 3 (rouge) est fortement corrélé à la commande motrice 2 (bras droit). Il est même possible de définir à quelles composantes du mouvement sont associées les commandes.

ecce_tool
Le système de suivi s'adapte à des changements morphologiques : ici, un outil a été ajouté après détection du bras. Le système de suivi considère ensuite que l'outil fait partie du corps.