Contrôle d une caméra Kinect par le middleware ROS



Documents pareils
Sommaire. Leap motion Technologie Fonctionnement Langages utilisés Possibilités d utilisation... 4

µrv : Realité Virtuelle

Rapport projet MMI. Luis Domingues, I3 Naomi Favre, I3 Tiago De Deus, I3. Luis Domingues, Tiago De Deus, Naomi Favre SP Interfaces Multimodales

SmartCam HD. Guide d utilisation

Working with Kinect. Intelligence Ambiante. Tomás DÍAZ TRONCOSO Arturo GARCÍA TOVAR Daoud MAROUAN LMTIUI


MASTER 2 INFORMATIQUE - UNIVERSITE DE FRANCHE-COMTE. Projet Kinect. Détection de mouvements intempestifs dans un bloc opératoire

DEPLOIEMENT MICROSOFT WINDOWS

PRECAUTIONS DESCRIPTION DU PRODUIT

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

NOTICE D UTILISATION FACILE

Interface PC Vivago Ultra. Pro. Guide d'utilisation

TP1 : Initiation à l algorithmique (1 séance)

Chapitre 1 L interface de Windows 7 9

Les jeux sous GNU/Linux progressent

La visio-conférence holographique : Pourquoi? Comment?

Le projecteur qu il vous faut pour vos jeux vidéos

Clé USB 2.0 Wi-Fi n Référence

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Tutorial Terminal Server sous

MICROSOFT FRANCE ANNONCE L ARRIVEE DE NOUVEAUX GRANDS NOMS DU DIVERTISSEMENT SUR XBOX

Sécurisation de Windows NT 4.0. et Windows 2000

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Enseignement, Handicap et tablette tactile

Construire des plug-ins pour SAS Management Console SAS 9.1

SYSTÈME DE SURVEILLANCE VIDÉO À DISTANCE

Ateliers Python+Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi?

SYSTÈME DE SURVEILLANCE VIDÉO À DISTANCE

Tutoriel Création d une source Cydia et compilation des packages sous Linux

KWISATZ MODULE PRESTASHOP

L OUTIL NUMERIQUE CARACTERISTIQUES ET FONCTIONNALITES

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

Projet Robot Centaure

COURS WINDEV NUMERO 3

Manuel d utilisation DeveryLoc

Introduction à MATLAB R

Pour les futurs développeurs Sommaire

MANUEL DE WEBCAM STATION EVOLUTION

Installation de SQL Server Reporting Services avec l intégration dans un site Windows SharePoint Services V3

Business Talk IP Centrex. guide. web utilisateur. pour. les services standards

Version 2.2. CAMHED04IPN (noir / filaire) CAMHED04IPWN (noir / wifi) CAMHED04IPB (blanc / filaire) CAMHED04IPWB (blanc / wifi)

Dix bonnes raisons d essayer Office Professionnel Plus 2010

Caméra IP motorisée de surveillance jour et nuit

Cours de numérisation sur Epson Perfection

Sommaire : 2) BRANCHEMENT 3 3) INSTALLATION DU LOGICIEL 3 4) CONFIGURATION DE LA CAMERA IP FILAIRE 7

Caméra Cloud jour / nuit sans fil TV-IP751WIC (v1.0r)

Le projecteur qu il vous faut pour vos jeux vidéos

Installation LTE-SIM. Simulation du réseau 4G (LTE-SIM) en vue d optimiser les ressources spectrales de l opérateur.

Micro-ordinateurs, informations, idées, trucs et astuces. Utiliser une caméra IP Trendnet IP-TV110. Auteur : François CHAUSSON

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

CONFÉRENCE WEB 2.0. UPDATE ASBL Michaël Barchy 23 janvier 2013

Détection d activité à l aide de Kinect 2.0

TD séance n 2c Mise à jour des Systèmes

LIDAR LAUSANNE Nouvelles données altimétriques sur l agglomération lausannoise par technologie laser aéroporté et ses produits dérivés

Sébastien Geiger IPHC Strasbourg

DE LA NUMÉRISATION DES ACTIONS PHYSIQUES DES UTILISATEURS VERS LA CONCEPTION D INTERFACE AVEC LA KINECT

Installer Enterprise Miner 5.1 en SAS environnement Windows

AFTEC SIO 2. Christophe BOUTHIER Page 1

EFFET DOPPLER EXOPLANETES ET SMARTPHONES.

Clé USB Wi-Fi Chiavetta USB Wi-Fi Llave USB Wi-Fi Chave USB Wi-Fi

Architectures web/bases de données

MANUEL UTILISATEUR. Application 4trip

TP1. Outils Java Eléments de correction

SOMMAIRE. 01_Installation ESXi Serveur HP.doc. Chapitre 1 Installation ESXi 5.1 2

WINDOWS SHAREPOINT SERVICES 2007

Sillage Météo. Notion de sillage

Contrôle distant par liaison SSH Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Atelier Le gestionnaire de fichier

TUTORIEL PAINTPOT. Louise Henninot - Anne- Cécile Patou - Julie Roquefort

Les PowerToys pour Windows XP

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

Lenovo TAB A7-40/ Lenovo TAB A7-50

PROJET BIGDATART DOSSIER DE PRESENTATION

DOCUMENTATION VISUALISATION UNIT

Configuration du driver SIP dans ALERT. V2

WinBooks Logistics 5.0

Installation d une camera vidéo de surveillance à distance de personnes dépendantes sur PC et téléphone portable (Smartphone)

Découvrez Windows NetMeeting

Connecte les Foules. Réinvente les Rituels.

CAMERA IP HEDEN CLOUD MANUEL D UTILISATION

Once the installation is complete, you can delete the temporary Zip files..

Manuel de formation Spaceman 1 ère journée

Lutter contre les virus et les attaques... 15

Documentation utilisateur. [EIP] TransLSF

Android. Programmation. De la conception au déploiement avec le SDK Google Android 2. Damien Guignard Julien Chable Emmanuel Robles

QUELQUES ACTIVITES RELATIVES A LA PARTIE A Propagation d une onde ; onde progressive. Comment installer le format de compression divx?

SAGE: Introduction. 1 Connections WEB. 2 Généralités. 1.1 Sur le web insset. 2.1 Conception modulaire. Sage. 100-Introduction

Piratrax 2012 Danger - Effacer vos traces

Mise en œuvre d une Gateway HTTP/HTTPS avec un serveur de Présentation en DMZ

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

Manuel Utilisateur Chariot odys.sante-lorraine.fr

WINDOWS 8. Windows 8 se distingue par la présence de 2 interfaces complémentaires :

Product positioning. Caméra Cloud d'extérieur PoE HD DCS-2310L/ Caméra Cloud HD sans fil d'extérieur DCS-2332L

FEN FICHE EMPLOIS NUISANCES

KWISATZ_TUTO_module_magento novembre 2012 KWISATZ MODULE MAGENTO

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

INITIATION A L INFORMATIQUE. MODULE : Initiation à l'environnement Windows XP. Table des matières :

Les bons réflexes : le bureau et la zone de notification : Les programmes qui s activent au démarrage ; Enlever / supprimer un programme ;

Mise en place d un système de Téléphonie sur IP basé sur le logiciel Asterisk

Transcription:

Projet de première année Contrôle d une caméra Kinect par le middleware ROS Auteurs : Elian Cocchi Maxime Sibellas Tuteurs : ISIBOT Romuald Aufrere

Table des matières 1 Le middleware ROS 3 1.1 Présentation............................... 3 1.2 Configuration d un environnement ROS................ 3 1.3 Outils importants............................ 7 1.3.1 OpenNI............................. 7 1.3.2 Rviz............................... 7 2 La caméra Kinect 8 2.1 Présentation générale.......................... 8 2.2 Capacités................................ 9 2.3 Fonctionnalités de base......................... 9 3 Interaction Kinect-ROS 11 3.1 Etude de l interaction.......................... 11 3.2 Récupération de données........................ 13 3.2.1 Récupération des données via une interface : Rviz...... 15 3.2.2 Analyse du transfert d information.............. 17 3.2.3 Interprétation des résultats................... 17 1

Introduction Le club de robotique de l utilise la technologie de la caméra Kinect dans leur projet de création de robot. Cette caméra permet une interaction entre le robot et son environnement. Dans le cadre de ce projet, les membres de ce club nous ont demandé d étudier les possibilités d interactions entre une Kinect et le middleware ROS (Robot Operating System) et de réaliser un démonstrateur permettant l acquisition d un nuage de points devant aider à la localisation de leur robot. Pour réaliser cela, nous avions à disposition une caméra Kinect V1 mise à disposition par l établissement ainsi que le site officiel du middleware ROS. Notre but pour ce projet était de nous familiariser avec le middleware ROS puis d étudier comment la caméra interagit avec celui ci et enfin de trouver un moyen de récupérer des données sous forme de nuage de points. Pour cela nous nous sommes tout d abord renseigné sur ROS, puis sur les composants de la Kinect et nous avons enfin utiliser l interaction entre la caméra et le middleware afin d obtenir des données. 2

Chapitre 1 Le middleware ROS 1.1 Présentation Robot Operating System ou ROS est un middleware (logiciel médiateur) open source originellement développé par la société Willow Garage en 2007. Sa dernière version en date est ROS Jade qui est sortie en avril 2015, mais c est sur la version précédente, ROS Indigo, que nous avons effectué notre projet. ROS est compatible sur un bon nombre de robots sur le marché comme Qbo ou Robotino.Comme tout logiciel médiateur, il permet des échanges d informations entre les divers composants du robot et les applications. Il permet entre autre la détection de mouvements et d obstacles grâce à une caméra, le contrôle des mouvements du robot etc. Il est possible d interagir avec ROS via des programmes en C++ ou Python. 1.2 Configuration d un environnement ROS Avant de commencer, l installation de ROS se fait via les commandes suivantes. Distro correspondant au nom de la version voulue. $ sudo apt-get install ros-<distro>-desktop-full 3

Création de l environnement Un environnement ROS se crée en créant le répertoire catkin ws (pour catkin workspace) puis le sous répertoire src qui contiendra les sources. Il suffit ensuite d initialiser l espace de travail dans le sous-répertoire src avec la fonction catkin intit workspace. $ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/src $ catkin_init_workspace Pour compiler l espace de travail, il suffit de lancer la commande catkin make dans le répertoire catkin ws. Création de package Une fois notre environnement créé, nous pouvons y rajouter des packages de la façon suivante. Tout d abord en se plaçant dans le sous-répertoire src puis en exécutant la commande catkin create pkg avec pour paramètres le nom du package et les dépendances souhaitées. $ cd ~/catkin_ws/src # catkin_create_pkg <package_name> [depend1] [depend2] [depend3] Il faut ensuite compiler l espace de travail comme précédemment. Ensuite, on ajoute le nouveau package à l environnement de la façon suivante. $. ~/catkin_ws/devel/setup.bash Les dépendances d un package peuvent être listées grâce à l outil rospack de la façon suivante : $ rospack depends1 <package_name> Pour compiler un package, il faut utiliser la commande catkin make dans le répertoire parent. Cocchi - Sibellas Page 4

Les nodes Un node est un exécutable contenu dans un package qui utilise ROS pour communiquer avec d autres nodes. Pour utiliser les nodes, il faut avoir lancer l environnement d exécution de ROS avec la commande roscore. Roscore est une collection de nodes et de programmes requis par un système utilisant ROS. Autrement dit, il faut que roscore soit lancé pour que les nodes puissent interagir entre eux. Une fois roscore lancé, nous pouvons lister les nodes qui tournent avec la commande rosnode list. A noter : roscore lance automatique le node rosout qui permet d arrêter proprement roscore. Pour lancer un node, on utilise la commande rosrun de la manière suivante. $ rosrun <package_name> <node_name> Les topics Un topic permet aux nodes de communiquer entre eux en récupérant les messages produits par un node et en les renvoyant vers le node correspondant. Pour avoir un aperçu des topics et des échanges entre les nodes, on utilise le package rqt qui contient le node rqt graph qui va nous permettre de visualiser les topics et les interactions entre nodes. $ rosrun rqt_graph rqt_graph Figure 1.1 Visualisation des topics grâce à rqt graph On voit sur cette image que le node teleop turtle envoie des informations au node turtlesim via le topic command velocity. Cocchi - Sibellas Page 5

Il existe un autre node permettant de visualiser les topics : rostopic. Ce node nous permet de : lister les topics en cours avec la commande $ rostopic list récupérer les données envoyées pas un topic avec la commande $ rostopic echo [topic] récupérer le type du topic en question $ rostopic type [topic] envoyer des données à un node $ rostopic pub [node] [info] déterminer la fréquence auquel les informations sont envoyées $ rostopic hz [topic] Les paramètres serveur Lorsque l on lance roscore, des paramètres serveur sont initialisés. Pour les modifier il existe le node rosparam à utiliser avec les compléments set et get. Pour les réinitialiser, il suffit d utiliser call clear. $ rosparam set [param_name] $ rosparam get [param_name] $ rosparam call clear Les scripts.launch Les fichiers.launch permettent de lancer plusieurs nodes simultanément et d une manière prédéfinie. Ils sont placés dans un sous dossier launch dans le répertoire du package correspondant. Pour exécuter un tel fichier, on utilise la commande roslaunch. $ roslaunch [file_name] Cocchi - Sibellas Page 6

1.3 Outils importants 1.3.1 OpenNI La gestion de la caméra Kinect V1 et de ses fonctionnalités est assurée par le package openni launch qui contient des nodes permettant d utiliser des dispositifs OpenNi (Open Natural Interaction). Ce package a été créé pour la version ROS Fuerte et est donc obsolète. Cela s explique entre autre chose par la sortie des caméras Kinect V2. Cependant il est toujours disponible via les dépots unix avec la commande suivante. $ apt-get install ros-fuerte-openni-camera ros-fuerte-openni-launch Ou bien directement via le dépot github des développeurs à l adresse github.com/ros drivers/openni launch. Le package se lance grâce à roslaunch comme suit. $ roslaunch openni_launch openni.launch 1.3.2 Rviz Rviz est un outil de visualisation 3D pour ROS permettant de récupérer des données via un node ROS. Il est possible d interagir avec via des programmes en C++/Python pour simuler des courbes, des surfaces et des volumes. Nous l utiliserons plus tard pour l exploitation des données de la Kinect. Il se lance avec la commande suivante. $ rosrun rviz rviz Cocchi - Sibellas Page 7

Chapitre 2 La caméra Kinect 2.1 Présentation générale La Kinect (mot-valise composé par kinetic et connect) est un périphérique sorti en novembre 2010 pour la console Xbox 360 de Microsoft, promouvant une nouvelle manière de jouer. Il est équipé de plusieurs caméras ainsi que d une source de lumière infrarouge capables d évaluer la distance au capteur ainsi que de logiciels de reconnaissance de personnes, permettant au joueur de jouer sans manette, seulement en effectuant des gestes devant la caméra de Kinect. Des pilotes sont mis à disposition en tant que logiciel libre par un magasin d électronique ayant organisé un concours de développement dans ce but. Ces pilotes sont peu après portés sur le Robot Operating System ROS. Suite à son succès, une version Kinect pour Windows sort en février 2012, compatible avec les ordinateurs Windows et fournie avec un kit développeur, mettant la motion capture à portée de tout le monde. Une toute nouvelle génération de Kinect sort en novembre 2013 avec la nouvelle console de salon de Microsoft : la Xbox One. Nous ne nous intéresserons cependant ici qu à celle sortie en 2010, la version Kinect v1. 8

2.2 Capacités La Kinect est équipé de plusieurs capteurs détectant la couleur et la profondeur des points filmés, permettant notamment de détecter des joueurs dans une pièce, ainsi que des visages entrés dans une base de données. Le capteur est motorisé pour un champ de vision élargi et une capacité à suivre les mouvements d objets détectés. Le capteur de profondeur rend aussi possible l utilisation de Kinect dans l obscurité. La profondeur est mesurée par un émetteur/récepteur infrarouge émettant un grand nombre de rayons infrarouges formant une sorte de grille et calculant pour chaque rayon le temps qu il lui faut pour parcourir l aller-retour entre le capteur et l objet, permettant le calcul d une distance. Les capteurs de profondeur peuvent mesurer des profondeurs d environ un mètre à quatre mètres pour la première version disponible avec la Xbox et descendant jusqu à un peu moins de cinquante centimètres pour la version pour Windows (nous ne disposions ici que de la version pour Xbox). A cela s ajoute un micro permettant la reconnaissance vocale dans une dizaine de langues, accentuant le côté contrôle à distance sans intermédiaire et donnant lieu à un chat vocal dans certains jeux compatibles. Le tout est monté sur un pied lui aussi motorisé, de manière à agrandir encore le champ de vision, atteignant 57 degrés à l horizontale et 43 degrés à la verticale. 2.3 Fonctionnalités de base Les pilotes de base de Kinect permettent d accéder à plusieurs prises de vue. On a tout d abord une simple image telle que celle qu on aurait à travers un appareil photo ou une caméra classique, puis l image couplée aux mesures infrarouges, qui met en évidence la grille de lasers infrarouges grâce à laquelle Kinect mesure les profondeurs. Enfin, on a la carte de profondeur qui représente la profondeur des points de l image en différentes couleurs, par un dégradé. Cocchi - Sibellas Page 9

Ces images sont acquises sur ordinateur grâce au package unix libf reenect. Figure 2.1 comparaison côte à côte de l image standard et sa carte de profondeur Figure 2.2 Vue de la grille de la même image Cocchi - Sibellas Page 10

Chapitre 3 Interaction Kinect-ROS 3.1 Etude de l interaction Nous avons vu que les nodes interagissent entre eux grâce aux topics. Intéressonsnous aux échanges entre le node openni launch et la caméra Kinect. Pour cela nous allons réutiliser rqt graph comme nous l avons vu précédemment. Le graphique nous permet de visualiser les topics qui interagissent entre la caméra et les nodes du package OpenNI. /tf correspond au périphérique qu est la caméra. Les nodes camera base link, camera base link1, camera base link2 et camera base link3 interrogent la caméra, qui répond en envoyant des informations aux nodes traitant les informations relatives aux images capturées ici le node concerné est /camera/camera nodelet manager, le node chargé de la gestion des communications avec les autres nodes. Ce graphique est généré dans un cas où on n interroge aucun node, le node manager ne transmet donc aucune information aux autres nodes du package. 11

Figure 3.1 Topics entre Kinect et ROS via rqt graph Cocchi - Sibellas Page 12

3.2 Récupération de données Maintenant que openni launch est lancé, nous pouvons utiliser ROS pour traiter et recevoir les informations capturées par la Kinect. Autrement dit, nous pouvons afficher ce que voit la Kinect, en demandant au node correspondant de traiter les informations fournies par la caméra. S il on veut afficher la caméra mono chrome, on appellera le node /camera/rgb/image mono via la commande suivante. $ rosrun image_view image_view image:=/camera/rgb/image_mono Il en va de même pour la caméra couleur avec le node /camera/rgb/image color. Nous pouvons aussi interroger le node traitant la différence de profondeur : /camera/depth/disparity avec la commande suivante. $ rosrun image_view disparity_view image:=/camera/depth/disparity Figure 3.2 Sortie couleur et mono chrome Figure 3.3 Sortie du traitement de la profondeur par ROS Cocchi - Sibellas Page 13

Pour accéder à l acquisition d un nuage de point avec profondeur, il nous faut tout d abord définir ce nuage de point construit à partir des données RGB de la Kinect. Pour cela, on modifie la configuration des drivers avec rqt reconf igure en le lançant avec la commande suivante. $ rosrun rqt_reconfigure rqt_reconfigure Dans le menu déroulant, /camera/driver, il faut cocher la case depth registration. On peut alors interroger le node correspondant : /camera/depth registered/disparity. Figure 3.4 Reconfiguration Le graphique d interactions correspondant est celui de la figure suivante. Cocchi - Sibellas Page 14

Figure 3.5 Interaction Kinect - ROS avec affichage des sorties vidéos On retrouve les topics questionnant la caméra (/tf) et les informations retournant au nodelet manager. Celui-ci transfert les informations aux nodelets, ceux-ci les traitent puis les renvoient au manager qui lui les transmet aux nodelets qui renvoient les informations sur l écran (via les processus image view). 3.2.1 Récupération des données via une interface : Rviz Rviz nous permet d exploiter le nuage de point enregistré par le package OpenNI grâce aux informations collectées par la Kinect. Lançons rviz et regardons comment exploiter le nuage de points de la Kinect. Une fois rviz ouvert, il faut définir l image récupérée par rviz. On ajoute un Cocchi - Sibellas Page 15

nuage de point de type PointCloud2 et on définit le topic qu il récupère sur /camera/depth registered/points. Ce topic correspond à celui que nous avons créé lorsque nous avons reconfiguré les nodes avec rqt reconf igure. On choisit les couleurs RGB8. On récupère alors l image de la Kinect sous forme de nuage de points. Figure 3.6 Affiche du nuage de point par Rviz Cocchi - Sibellas Page 16

3.2.2 Analyse du transfert d information Pour analyser le transfert d information, on étudie à la fois le topic du node /camera/depth registered/points qui crée le nuage de points et celui du node /camera/depth registered/disparity qui s occupe du traitement de la profondeur. Le nuage de points rostopic echo renvoi tout les points enregistrés par le node, avec une valeur nulle dans le cas où le point ne peut pas être caractérisé (zone d ombre etc). rostopic type renvoi sensor msgs/pointcloud2. Les informations envoyées sont bien traitées comme faisant partie d un nuage de points provenant du capteur de la Kinect. rostopic hz nous indique que le taux moyenne du transfert d informations est de 30. Le traitement de la profondeur rostopic echo renvoi la valeur de la profondeur de chaque point, avec une valeur nulle dans le cas d un point non caractérisé (zone d ombre etc). rostopic type renvoi stereo msgs/disparity. On voit que les informations sont pas du même type que celles du nuage de points et ne sont pas collectée par le même capteur. rostopic hz nous indique que le taux moyen du transfert d informations est de 30, tout comme celui du nuage de points. 3.2.3 Interprétation des résultats On voit sur le nuage de points résultant qu il y a de grandes zones d ombre qui détériorent l image. Il s agit simplement de zone que l onde propagée par le capteur de la Kinect ne peut pas atteindre, soit parce qu elles se trouvent derrière une surface, que l obstacle est fait d une matière qui ne renvoie pas l onde ou bien parce qu elles sont trop proches ou trop lointaines. Cocchi - Sibellas Page 17

Les résultats obtenus sont néanmoins acceptables et utilisables. On effet, il suffit de modifier la coloration du nuage de points et préférer une coloration par axe pour se rendre compte que l on peut utiliser ce résultat pour un système de détection d obstacles. En effet, grâce à cette coloration, nous pouvons distinguer les surfaces : ce sont les étendues de points situés sur le même plan. Cela permettrai de programmer le robot pour contourner ces obstacles. Figure 3.7 Coloration selon l axe des X par Rviz Cocchi - Sibellas Page 18

Conclusion L étude de la caméra Kinect et du middleware ROS nous a permis d aboutir à une méthode de récupération de données exploitables sous forme de nuage de points. Cette méthode peut être approfondie et utilisée pour élaborer un algorithme permettant à un robot d éviter des obstacles. Ce premier projet nous a permis d appréhender le domaine de la robotique qui est un domaine dans lequel on prend réellement conscience du rôle de l informatique dans les technologies embarquées. Cela nous a permis de préciser nos choix pour la suite de nos études ainsi que nos domaines de carrières. Ces nouvelles connaissances nous seront utiles pour appréhender des projets pour lesquels nous aurons besoin de réfléchir sur des interfaces innovantes. 19

Bibliographie [http ://wiki.ros.org/] Wiki concernant le middleware ROS. [http ://fr.wikipedia.org/wiki/robot Operating System] Page Wikipédia sur ROS [http ://en.wikipedia.org/wiki/openni] Page Wikipédia sur l Open Natural Interaction 20