Attention : Cette page contient de nombreux films vidéos qui sont de bien meilleure qualité et incomparablement plus "légers" à charger si votre navigateur bénéficie du "Plug-in" QuickTime
Télécharger QuickTime pour MAC (Gratuit)
Télécharger QuickTime pour Windows (Gratuit)
Le but de cette démonstration est de montrer les possibilités offertes par la programmation bayésienne des robots. Nous espérons convaincre notamment que cette approche de la programmation des robots permet de franchir un pas vers une plus grande autonomie.
La tâche choisie pour illustrer notre propos est une tâche de surveillance. Le mini robot mobile Khépéra doit effectuer un travail de "veilleur de nuit" :
Il existe un film complet de cette expérience, mais il est sans doute préférable, pour mieux le comprendre, de procéder par étapes, en suivant le fil du texte qui suit avant de le regarder.
Il faut noter que Khépéra, pour accomplir cette tâche ne dispose d'aucun plan ni de modèle géométrique ou symbolique de son environnement. Tous ses comportements ne sont fondés que sur les variables sensorielles et motrices du robot et sur des variables directement construites par prétraitement, inférence ou mémorisation à partir de ces seules variables sensori-motrices. Autrement dit, Khépéra ne travaille que sur des variables "proximales" (i.e. qui lui son propre) et jamais en prenant en compte une quelconque variable "distale" (i.e. relative à l'environnement).
Il résulte de ce choix et des techniques d'apprentissage et d'inférence bayésienne employée une très grande robustesse du robot relativement au variations possibles de son environnement comme, par exemple, la forme, la couleur, la matière, la position ou le déplacement des objets qu'il cotoit ou comme les conditions globales d'éclairage, d'adhérence ou de température de son environnement. Cette robustesse a bien évidemment des limites, le robot ne peut pas, par exemple, accomplir cette tâche avec des objets en déplacement très rapide, dans un environnement sous-marin ou avec un sol tellement incliné que ses roues ne lui laisseraient aucun espoir de pouvoir avancer. L'environnement doit être "viable" pour Khépéra, mais il n'est pas nécessaire qu'il soit spécifiquement conçu, contraint et équipé en fonction du robot. C'est précisément en cela que nous espérons avoir accompli un pas vers plus d'autonomie.
Présentons tout d'abord notre robot.
Khépéra est un mini robot mobile construit par l'Ecole Polytechnique Fédérale de Lausanne (EPFL) et commercialisé par la société K-Team. Khépéra est un robot mobile à deux roues, de 57 mm de diamètre et 29 mm de hauteur, pour un poids total de 80g dans sa version de base. Il est équipé de 8 capteurs de lumières (6 devant et 2 derrière) prenant des valeurs entre 0 et 512 en fonction décroissante de l'intensité lumineuse. Ces 8 capteurs peuvent aussi être exploités en tant que proximètres infrarouges prenant des valeurs entre 0 et 1023 en fonction décroissante de la distance de l'obstacle. Il est équipé de plus de capacités odométriques rudimentaires et peu fiables. Il est commandé par les vitesses de ses roues gauche et droite. Le Khépéra pour sa tâche de surveillance est en plus équipé d'une caméra linéaire à 64 pixels et d'une turbine qui sera utilisée pour intervenir sur les "incendies".
Film de Présentation de Khépéra (19 secondes)
La tâche de surveillance présentée ici a été élaborée incrémentalement par acquisition et mise au point successive de comportements de plus en plus complexes :
La couche de base consiste en un ensemble de comportement purement réactifs comme l'évitement d'obstacle, le suivi de contour, le comportement de "déménageur de piano" ou un comportement de phototaxie. Ces comportements ont été soient acquis par apprentissage en quelques minutes, soient "programmés" sous forme probabiliste.
Le premier film montre comment peut être appris le comportement de "déménageur de piano". Au début, Khépéra ne "sait" rien. À chaque instant (tous les 10es de seconde) il tire au hasard suivant une distribution très plate sa vitesse de rotation. La présence ou l'absence d'obstacle lui est indifférente, ses déplacements sont complètement aléatoires. Le Khépéra peut être utilisé suivant trois modes :
Le film montre une succession de ces trois modes. Tout d'abord, le comportement souhaité est démontré en mode téléopéré. Ensuite vient une succession de phase d'apprentissage et de restitution. Certaines phases d'apprentissage sont des séquences entières du comportement, d'autres sont très courtes et ont pour but de montrer au robot quoi faire dans telles ou telles situations caractéristiques. Après un total de 26 secondes d'apprentissage, on constate que Khépéra sait pousser les obstacles de manières satisfaisantes.
Film d'apprentissage du comportement de "déménageur de piano" (1 minute 45 secondes)
Le deuxième film, tourné sans apprentissage supplémentaire, montre qu'il sait le faire indépendamment, de leurs formes, de leurs couleurs, de leurs positions ou de leurs natures (dans certaines limites évidemment).
Film de restitution du comportement de "déménageur de piano" (10 secondes)
Enfin, le troisième film montre comment suivant le même principe, en changeant uniquement le comportement enseigné par téléopération, on peut apprendre à Khépéra à suivre les contours d'un objet.
Film d'apprentissage du comportement de "suivi de contour" (1 minute 35 secondes)
De la même manière que pour le comportement de "déménageur de piano" et celui de "suivi de contour", un comportements d'évitement d'obstacle et un comportement de phototaxie ont été acquis.
L'inférence bayésienne offre alors la possibilité de composer ces 2 comportements l'un avec l'autre pour obtenir un nouveau comportement dans lequel le Khépéra va vers la lumière tout en évitant les obstacles. Il s'agit bien d'une composition ou les 2 comportements sont "mélangés" l'un avec l'autre et pas d'un choix où l'on "bascule" sans nuance d'un comportement à l'autre. Ce nouveau comportement est utilisé par Khépéra pour rentrer à sa base matérialisée par une source lumineuse.
Une fois arrivé à la base se pose alors un nouveau problème : Khépéra peut-il reconnaître cette situation ("être à la base") et agir en conséquence ("s'arrêter"). Une inférence bayésienne fondée sur une distribution acquise par l'expérience permet de répondre à cette question. Ce n'est plus comme précédemment un comportement qui est appris mais une situation sensorielle ("être à la base").
Le quatrième film illustre ces 2 points. On voit tout d'abord Khépéra rentré à sa base grâce au comportement obtenu par composition de l'évitement d'obstacle et de la phototaxie. Khépéra qui n'a pas appris à reconnaître sa base se met alors à tourner sur place sous la lumière. On voit ensuite un apprentissage de ce qu'est la base par la présentation au robot de différentes situations sensorielles correspondant à sa base. On voit, enfin, un nouveau retour à la base, suivi, après quelques hésitations, par une reconnaissance de la base et par l'immobilisation du robot.
Film de "retour à la base" (1 minute 45 secondes)
On peut aussi utiliser un comportement réactif simple pour acquérir de nouvelles informations sur l'environnement. Nous avons ainsi construit un comportement de reconnaissance d'objet à partir d'un comportement réactif de suivi de contour. Le Khépéra fait le tour de l'objet qu'il a à reconnaître. Ce faisant il calcule 4 nouvelles variables qui vont lui servir à classifier les objets : le nombre de virages à gauche, le nombre de virage à droite, le périmètre et la longueur de la plus grande ligne droite.
En utilisant l'inférence bayésienne et des descriptions probabilistes des objets acquises par l'expérience, le Khépéra est ainsi capable de distinguer les uns des autres toute une collection d'objets. Qui plus est, en utilisant une description de référence uniforme, il est capable de reconnaître lorsqu'il a à faire à un nouvel objet.
Il a, par exemple, appris à reconnaître la collection d'objets présentés sur la photo suivante :
Ces objets lui ont été présentés les uns après les autres 4 fois suivant un ordre aléatoire. A chaque fois Khépéra a su dire soit que c'était un objet qu'il n'avait jamais vu (nouveauté), soit reconnaître correctement l'objet en question. Il ne s'est trompé que pour les deux objets à base carré (en haut à droite de la photo) qui ne diffère l'un de l'autre que par leurs hauteurs et leurs matières (métal et bois) et sont donc indiscernables pour les sens du robot.
Khépéra lorsqu'il patrouille son environnement doit détecter tout mouvement autre que le sien et donner une alarme si c'est le cas. Il a donc été équipé d'une caméra linéaire a 64 pixels qui donne de l'environnement une image assez déroutante pour notre oeil 2D.
Les traitements de détection de mouvement (ainsi que d'autres traitements plus élaborés et non utilisés dans cette expérience) ont été développés dans le cadre d'une collaboration avec le Laboratoire TIRF. Ces traitements sont inspirés très directement de ceux qui sont effectués dans la rétine et les toutes premières aires visuelles des mammifères.
On veut que Khépéra détecte et éteigne les "incendies" matérialisés dans son environnement par des bougies. Pour cela, il utilise la caméra pour "voir" les flammes et une micro-turbine pour souffler les bougies. Il est, cependant, très difficile avec la caméra de distinguer une forte lampe d'une bougie. Pour y arriver, Khépéra, lorsqu'il détecte une forte lumière susceptible d'être une flamme, souffle dessus et regarde si la lumière vacille ou non. Ceci nous semble illustrer simplement que l'on ne peut pas se contenter d'un schéma simpliste Perception -> Décision -> Action et que très souvent il faut agir pour percevoir.
Finalement, tous ces éléments ont été composés les uns avec les autres de manière probabiliste pour produire le comportement montré dans le film ci-dessous. On y voit successivement :
Film du comportement de veilleur de nuit (1 minute 45 secondes)