PROJET DE FIN D'ÉTUDE Social Robotics : Human-Robot Interaction Using EEG Signals and Head Motion Structure d'accueil PFE présenté par Spécialité / Promotion Tuteur du PFE dans la structure d'accueil Tuteur pédagogique du PFE Date de n de condentialité du PFE Cardi University Siméon Capy Mécatronique 2015 Pr Rossi Setchi Cécilia Zanni-Merk Non-condentiel Condensé Ce stage s'inscrit dans le cadre de l'aide aux personnes âgées menée par l'Université de Cardi. Il vise à réaliser des interactions sociales au moyen d'un robot (un Turtlebot) et d'un casque électroencéphalographique (Emotiv Epoch). Dans le cadre d'un système de visioconférence amélioré, imaginé durant le stage, l'algorithme développé s'est concentré sur la détection des clignements des yeux de l'utilisateur dans le but d'être retransmis sur un écran. L'algorithme s'occupe également de détecter les mouvements de la tête de l'utilisateur grâce à l'accéléromètre du casque Emotiv. L'algorithme a été développé avec un double logiciel client/serveur de communication réseau, an de permettre à l'ordinateur de l'utilisateur d'envoyer les ordres au robot pour le commander d'après les mouvements de tête de l'utilisateur, sans y être connecté physiquement. Le logiciel sur le robot s'occupe également d'acher l'image des yeux établie par l'algorithme (avec une précision de 68 %). Ainsi, les personnes qui ont des dicultés à se mouvoir pourraient communiquer presque normalement avec leur entourage. En outre, cela pourrait être utile pour la communication entre personnes très éloignées. 1 1.1 Introduction Présentation du pro jet Ce stage a pour but de réaliser des interactions sociales avec un robot et un capteur électroencéphalographique (EEG). Il s'inscrit dans le cadre des recherches liées à l'aide aux personnes âgées du département Mechanics, Material and Advanced Manufacturing (MMAM) de l'université de Cardi [1]. La façon de réaliser les interactions sociales avec le capteur EEG, un casque Emotiv Epoch [2], et le robot, un Turtlebot [3], a été laissée libre. Ainsi, un système d'immersion à l'intérieur du robot a été imaginé, mais également un algorithme de détection des clignements de l'÷il de l'utilisateur sur le graphe EEG. 1 1.2 Cahier des charges Quelques projets de contrôle de robots par un électroencéphalogramme ont vu le jour ces dernières années, beaucoup de ces projets se contentaient de faire bouger le robot par la pensée en imaginant une action préalablement enregistrée ou alors en regardant un point précis d'un écran. D'autres projets d'immersion avec un robot, sans interface neuronale directe (BCI en anglais, pour brain-computer interface), utilisent une manette de jeu-vidéo pour bouger le robot. L'immersion est réalisée grâce à un visiocasque. Le but, de ce stage, est la réunion de ces deux mondes. Il a donc été choisi d'imaginer tout un écosystème ; dans lequel s'inscrit ce stage, qui n'est qu'une brique de cet ensemble. Le but est d'aider les personnes à mobilité réduite ou âgées qui ont du mal à se déplacer. L'objectif est d'immerger l'utilisateur dans le robot, comme si c'était son corps. Pour cela, le casque EEG est utilisé pour contrôler le robot au moyen de la pensée : l'utilisateur imagine qu'il marche et le robot avance en conséquence. Le gyroscope du casque EEG, qui fonctionne plutôt comme un accéléromètre, est utilisé pour tourner le robot sur lui-même et ainsi suivre le regard de l'utilisateur. Ce qui lui donne le sentiment de voir comme s'il était dans le robot car l'utilisateur porte un visiocasque qui ache devant ses yeux les images de la caméra 3D située sur le robot. Cependant le visage n'est plus visible à cause du visiocasque, alors que les expressions faciales et notamment des yeux sont très importantes dans les interactions sociales. Pour palier ce problème, l'électroencéphalogramme est utilisé pour récupérer les mouvements des yeux et notamment leurs clignements. Ils sont ensuite achés sur l'écran de l'ordinateur du robot. Enn, pour compléter le sentiment d'immersion, un système de microphones binauraux est placé sur le robot pour retranscrire une ambiance sonore spatiale à l'utilisateur, qui, lui, porte un casque ou des écouteurs. La Figure 1 résume le système qui est appelé système de visioconférence amélioré (SVCA). En eet, il fonctionne à la manière d'un logiciel de visioconférence, mais il ore beaucoup plus de libertés à l'utilisateur qui peut se mouvoir dans l'espace. En ce sens, il peut également servir des personnes valides. Il est à noter que ce stage s'est concentré sur la détection des clignements et sur le contrôle du robot par l'accéléromètre. Figure 1.3 1 Schéma de principe du SVCA Méthodologie Pour détecter le clignement des yeux plusieurs problématiques sont apparues. Avant tout, il faut savoir où et comment ces signaux peuvent être détectés. Les signaux EEG étant nombreux (ici, 14 signaux) et très bruités, il convient de bien choisir les électrodes et de rééchir sur la méthode à employer. Primo, le cerveau envoie des signaux sur une large bande de fréquence, quatre grandes bandes ont ainsi été dénies au l du temps [4]. Il s'avère que les signaux émis par les yeux, dont le clignement, sont présents dans les deux plus petites bandes, soit jusqu'à 7 Hz. Secundo, les signaux oculaires ne sont pas captés par toutes les électrodes car ce sont les signaux musculaires qui sont enregistrés, ainsi, seules les électrodes les plus proches des yeux peuvent détecter ces signaux. Tertio, les signaux oculaires sont noyés dans les signaux cérébraux et dans ceux des muscles du visage. On a à faire à une problématique de séparation aveugle des sources (ou BSS en anglais pour blind source separation ), en eet, il s'agit d'extraire les signaux des yeux des autres. Ultimo, la seconde problématique est la détection du clignement parmi les signaux oculaires. On a à faire 2 à une problématique de reconnaissance de formes (pattern recognition en anglais). Ce sont les quatre grands axes de la méthodologie de détection des clignements de l'utilisateur. La seconde partie vise à connaître le mouvement de la tête de l'utilisateur pour commander le robot. Pour cela il faut détecter un dépassement d'amplitude dans le signal. 1.4 Le matériel Le matériel utilisé est, pour le robot, un Turtlebot. C'est un robot plan qui reprend la base de robot kobuki (qui ressemble beaucoup à celle des robots-aspirateurs domestiques) avec une structure au dessus. Celle-ci est faite pour accueillir un capteur Kinect de Microsoft (non utilisé pour ce stage) et l'ordinateur de contrôle. Le système d'exploitation du robot est ROS [5], un système d'exploitation libre spécialement conçu pour la robotique. Le casque, quant à lui, est un casque EEG de 14 électrodes plus deux de références. Le placement des électrodes se fait selon le système 10-20 (avec quelques modications dans le choix des électrodes). Le casque possède également deux accéléromètres, l'un pour les mouvements de droite à gauche et l'autre pour ceux de haut en bas ; à noter que l'accéléromètre est appelé gyro dans la documentation. Le casque est connecté à l'ordinateur de l'utilisateur et les commandes créées par l'algorithme doivent être envoyé au robot. Il a donc fallu créer un programme de communication entre les deux ordinateurs. 2 La communication Le casque EEG étant branché sur l'ordinateur de l'utilisateur, il a fallu trouver une solution pour transmettre les commandes au robot. Les données du casque sont d'abord captées par le logiciel OpenVIBE [6] développé par l'Institut national de recherche en informatique et automatique (INRIA). C'est un logiciel spécialement fait pour traiter les données électroencéphalographique. Il eectue, ici, des traitements basiques, comme du ltrage ou de la sélection de canaux. Vient ensuite la partie commune du stage, les logiciels de communication et de commande du robot. Les données sont envoyées par OpenVIBE au logiciel de communication client développé grâce à la bibliothèque Qt [7]. Celui-ci s'occupe de traiter les données au moyen de l'algorithme réalisé, voir section 3. Une fois traitées, les données sont envoyées par le réseau (ad-hoc dans le cas de ce stage) avec le protocole TCP à l'application serveur, également développée durant ce stage. Elle se charge de transmettre les ordres reçus du client vers le programme de commande du robot, aussi programmé ici. Le serveur a également la charge d'acher sur l'écran de l'ordinateur la représentation des yeux de l'utilisateur. Figure 3 3.1 2 Schéma de principe de la communication Algorithmes développés Mouvement de la tête Pour l'extraction des données de l'accéléromètre, comme celles-ci ne sont pas bruitées, aucun pré-traitement n'est eectué. Il a été choisi d'utiliser une technique simple pour détecter le clignement des yeux : une bascule de Schmitt (ou Schmitt trigger en anglais), c'est une bascule à deux seuils, ou à hystérésis. En eet, la forme du signal est toujours la même lorsque l'utilisateur bouge 3 sa tête, c'est une sinusoïde amortie. L'amplitude de la première oscillation indique la vitesse de rotation à donner au robot, le signe indique le sens du mouvement. La bascule permet, en choisissant bien les coecients, de ne détecter que la première oscillation et de ne pas redéclencher la commande du robot pour les suivantes. 3.2 Clignement Pour détecter les clignements un algorithme a été imaginé. Il est décrit en détail sur la Figure 3, chaque bloc répond aux problématiques soulevées à la section 1.3. Le premier bloc, le préltre est un ltre passe bas de fréquence de coupure de 7 Hz. Le second, pour séparer les sources utilise l'algorithme d'analyse en composantes indépendantes (ou ICA pour Independent component analysis en anglais) [8]. C'est un algorithme dont le but est de trouver la matrice de séparation qui permet, à partir des mesures, de retrouver les sources. Pour cela, l'algorithme dégaussianise le signal, ce qui implique que les sources soient non-gaussiennes. Il faut ensuite ltrer le signal car les électrodes envoient un signal très bruité. Pour cela deux ltres ont été codés, un ltre de et un ltre exponentiel. Ces deux ltres sont testés et comparés. La dernière étape consiste à détecter le clignement, là encore, deux méthodes ont été implémentées. Les deux se basent sur un signal source d'un clignement, la première est la corrélation et la seconde la transformée en cosinus discrète (ou DCT pour discrete cosine transform en anglais). Ces deux méthodes sont également comparés. Gauss Figure 4 3 L'algorithme développé de détection du clignement des yeux Résultats Pour tester les résultats de l'algorithme, le protocole expérimental suivant a été suivi. Des enregistrements cérébraux d'une minute ont été eectués lors desquels l'utilisateur devait cligner des yeux dix fois toutes les cinq secondes. L'enregistrement ne dure qu'une minute car il est très fatiguant pour l'utilisateur de cligner volontairement des yeux tout en restreignant ses clignements naturels. Plusieurs chiers ont ainsi été enregistrés. Le but est de compter les clignements détectés par l'algorithme an d'établir le meilleur paramétrage. Il a été choisi de xer les valeurs des ltres pour éviter d'avoir trop de paramètres à gérer. Ainsi les valeurs du ltre de Gauss sont σ = 20 et x = 59 et pour le ltre exponentiel, α = 0,01. Ensuite, pour chaque ltre, les paramètres suivants ont été testés : Seuil de la correlation : 0,601 ; 0,614 ; 0,624 ; 0,65 ; 0,702 ; 0,75 DCT (3 coecients) : 200 ; 250 ; 260 ; 280 ; 300 DCT (5 coecients) : 200 ; 250 ; 260 ; 280 ; 300 Ce qui fait 32 expériences par chier. Il est à noter que les résultats seront moins bons qu'en utilisation réelle, car ici, l'algorithme ICA n'attend pas que la matrice W ait convergé car cela peut prendre du temps et les chiers ne durent qu'une minute. La matrice n'est pas forcément la meilleure, mais elle est restée identique pour tous les tests sur un même chier. Dans un premier temps, les deux ltres sont comparés sur chaque algorithme pour les deux yeux. Dans ce cas présent, le clignement est considéré comme détecté si au moins un des deux yeux a cligné. L'algorithme DCT avec trois coecients a été écarté car il ne donnait aucun résultat avec les deux ltres. La Figure 4 donne le résultat de la comparaison des ltres avec chaque algorithme. Le ltre de Gauss semble être le ltre qui donne les meilleurs résultats par rapport au ltre exponentiel. Il limite également le taux de faux positif. C'est donc lui qui a été choisi pour eectuer la suite des tests. Ici chaque ÷il est considéré séparément et les algorithmes sont comparés. La corrélation avec un seuil autour de 0,600 semble meilleure que la DCT. 4 (a) Comparaison avec la corrélation (b) Comparaison avec la DCT Figure 4 Comparaison entre les ltres de Gauss (courbes de couleur froide) et le ltre exponentiel (couleur chaude). Le taux de faux positif est également présent (vert et jaune). Le meilleur algorithme est celui composé d'un ltre de Gauss et de la méthode de corrélation. Les taux sont les plus élevé avec 68 % de détection pour 39 % de faux positif. C'est le taux de faux positif le plus faible pour une valeur de détection si élevée. Les taux de faux positifs restent toutefois assez élevés et doivent être réduits. Une combinaison des deux méthodes, en parallèle ou en cascade, peut être envisagée pour augmenter le taux de positifs et réduire les faux positifs. 5 Conclusion La partie sur la détection des mouvements des yeux ainsi que celle sur le contrôle du robot par l'accéléromètre, ont été accomplies durant le stage. Le projet répond à la problématique de robotique sociale du sujet : Interaction Homme-robot en utilisant des signaux EEG et le mouvement de la tête. En eet, capter les mouvements des yeux permet de retranscrire cette interaction sociale et cela a été réalisé en utilisant un robot et un casque EEG. L'algorithme a prouvé qu'il arrivait à détecter la majorité des clignements tout en ayant un nombre de faux positif raisonnable. On peut quand même nuancer ce résultat, le taux de faux positifs est faible, mais reste tout de même assez élevé pour reproduire dèlement les mimiques de l'utilisateur. L'amélioration de la détection du clignement, en mettant, notamment, plusieurs algorithmes ensembles, pourrait permettre de réduire ce taux. En outre, la technique utilisée ne permet pas de détecter avec une assez grande précision les mouvements des yeux pour retranscrire le regard (position de la pupille). Seuls les grands mouvements tels que les clignements et les froncements sont exploitables. De plus, la qualité du signal de l'Emotiv n'est pas très bonne et contrairement à un EEG classique (à bonnet) la position des électrodes est moins précise. C'est donc un autre point qui pourrait être approfondi pour perfectionner le système. Enn, il serait intéressant, avec plus de temps et plus de moyens, de développer le reste du système de visioconférence amélioré. Références [1] R. Qiu, Z. Ji, A. Noyvirt, A. Soroka, R. Setchi, D.T. Pham, S. Xu, N. Shivarov, L. Pigini, G. Arbeiter, F. Weisshardt, B. Graf, M. Mast, L. Blasi, D. Facal, M. Rooker, R. Lopez, D. Li, B. Liu, G. Kronreif, and P. Smrz. Towards robust personal assistant robots : Experience gained in the srs project. In Intelligent Robots and Systems (IROS), 2012 IEEE/RSJ International Conference on, pages 16511657, Oct 2012. [2] Emotiv epoc brain computer interface and scientic contextual eeg. http ://emotiv.com/product-specs/Emotiv2014. Accessed : 2015-04-14. [3] Turtlebot. http ://www.turtlebot.com/. Accessed : 2015-04-29. [4] Saeid Sanei. EEG Signal Processing. Wiley-Interscience, 1st edition, 2013. [5] Robot operating system. http ://www.ros.org/. Accessed : 2015-04-29. 5 [6] Y Renard, F Lotte, G Gibert, M Congedo, E Maby, V Delannoy, O Bertrand, and A Lécuyer. Openvibe : An open-source software platform to design, test, and use brain computer interfaces in real and virtual environments. Presence, 19(1) :3553, Feb 2010. [7] Qt library. http ://www.qt.io/developers/. Accessed : 2015-08-29. [8] A. Hyvärinen and E. Oja. Independent component analysis : algorithms and applications. Neural Networks, 13(45) :411 430, 2000. 6