Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Capteurs > Autres caméras > Caméra Kinect

Caméra Kinect

Détection de mouvement... et application robotique ?

dimanche 7 novembre 2010, par Julien H.

Le domaine des jeux vidéo peut servir la robotique mobile. L’exemple de la Nintendo Wii montre combien les évolutions faites dans ce domaine apportent à la robotique : baisse du prix des composants, large communication auprès d’un public différent.

Les Wiimote, Nunchuck et autres Wii Motion Plus ne sont plus les seuls accessoires du gamer à titiller l’intérêt des bidouilleurs, puisque Microsoft a sorti récemment la caméra Kinect. La caméra est USB et est destinée à la console XBOX 360.

Comme son nom l’indique (jeu de mot entre "kine", le mouvement, et "connection", voire même "next" comme dans "Next Generation), cette caméra est avant tout destinée à capter le mouvement, dans le but de remplacer toute autre interface (le pad traditionnel, ou manette) avec le joueur.

Pour l’instant, nous présentons Kinect comme une caméra, mais on pourrait utiliser le terme anglais "RGB-D camera" puisqu’il y a un objectif couleur (RGB ou rouge vert bleu) et un deuxième objectif permettant de déterminer la profondeur (D pour "depth" qui est le terme anglais pour profondeur).

Intérêt pour les robots

La détection de mouvement est bien entendu intéressante "telle quelle". Mais on peut penser aussi à une inversion de la détection : un environnement fixe et une Kinect mobile.

Cette caméra pourrait ainsi populariser les approches de type "SLAM" (simultaneous localization and mapping soit cartographie et localisation simultanée) et "Visual SLAM". Ce sont des algorithmes de traitement d’informations (généralement beaucoup de capteurs en même temps) permettant dans un environnement inconnu (et préférablement fixe) de se positionner par rapport aux obstacles, tout en dressant une carte au fur et à mesure de la progression.

Ces algorithmes sont désormais connus, et de nombreuses implémentations open source sont disponibles. Ce qui manque désormais, ce sont des capteurs à un prix accessible (le moindre télémètre laser coûte plus de 1000 euros). Donc la réutilisation d’équipements et leur détournement d’usage initial sont une piste importante, qui populariseront encore plus l’intelligence artificielle et les sciences qui permettent aux robots modernes d’aller encore plus loin.

Nous avons déjà entrepris d’utiliser la webcam 3D Minoru pour avoir une représentation de la profondeur (vision stéréoscopique et comparaison d’images). Mais l’arrivée d’un nouveau capteur intégrant déjà le traitement d’image (comme la Wiimote intégrait la localisation des sources lumineuses les plus fortes en plus d’une caméra infra-rouge) serait un bond en avant.

Disponibilité et licence

Le capteur Kinect est plus cher qu’une Wiimote (150 euros contre 30 euros) ce qui diminuera sa banalisation (certes ce prix s’explique par l’investissement R&D demandé et la qualité - pas encore testée - de la détection). Mais surtout Microsoft a déjà montré les dents face aux tentatives de "retro-engineering" (pratique généralement illégale ou en tout cas découragée) qui n’ont pas manqué d’apparaitre quelques jours. Pourtant ils ont régulièrement exposé le fonctionnement de leurs capteurs :

 Fonctionnement du Xbox Kinect (en anglais)
 Explication de la société Prime Sense (merci Léon)

Les plus actifs dans la recherche d’un accès libre aux fonctionnalités de la Kinect sont sans doute Ada Fruit, fournisseur d’idées et de composants pour tous les "DIYers" Do-It-Yourself, fondée par une pétulante étudiante du MIT, et Make Magazine. Sur leur site web, un prix de 3000 dollars est promis au premier qui diffusera des drivers open source ou dans le domaine public permettant l’accès à l’information disponible.

Open Kinect Project prize (en anglais) régulièrement mis à jour.

Une initiative dont les résultats seront suivis attentivement, ainsi que la position officielle de Microsoft, pas si simple qu’il n’y parait.

Les contrefaçons font souvent du tord aux utilisateurs (faible qualité, temps perdu avec des bugs ou des défauts, argent volé quand on pense acheter l’original), en plus du tord qu’elles font à l’entreprise copiée. Mais c’est ici la sécurité qui pose question, puisque le capteur embarque un laser. Nous ne sommes pas des novices dans ce domaine, utilisant des lasers dans plusieurs projets, et il y a des conditions particulières à leur usage. Le risque zéro n’existe pas, et s’il y a une certification nécessaire (classe I, classe II, etc.) pour commercialiser un produit utilisant un laser, c’est parce qu’une altération du matériel ou du logiciel peut rendre le dispositif dangereux.

Ainsi, la fréquence et l’intensité du laser peuvent varier et dépasser les seuils certifiés : dans les compétitions robotiques, certaines équipes veulent régulièrement faire valider un dispositif dont l’extinction du laser est totalement contrôlée par logiciel. Si c’était le cas dans la Kinect, que se passerait-il si le pilote open source mis à disposition manquait une initialisation indispensable à la sécurité ?

Cela dit, le développement de drivers pour Windows 7 n’est plus considéré comme un "hack" par Microsoft qui met en garde sur l’absence de support de sa part.

Premier résultat ?

Voici une vidéo montrant ce que verrait la Kinect : il s’agit en fait du traitement d’information réalisé dans la console XBOX 360, et pas d’une sortie directe d’un flux analysant la position des membres. De ce fait, la caméra ne fournit que l’image réelle et une image modifiée montrant la profondeur estimée en fonction des points infra-rouges détectés.

Encore plus fort

Cette fois-ci, le code de lecture de la profondeur de l’image est directement intégré dans un pilote pour l’environnement ROS (Robot Operating System) de Willow Garage. Les couleurs et les mouvements de caméra montrent la puissance de détection :

Cette vidéo est la plus impressionnante de celles qui sont parues les premiers jours de hacking. ROS est utilisé par notre club et avoir déjà un driver disponible pour la Kinect est vraiment impressionnant.

Le principe du capteur est original, et différent des caméras stéréoscopiques habituelles (comme la BumbleBee) :
 un spot infra-rouge éclaire la scène d’une forte lumière invisible composée de multiples points
 une caméra filtrée en infra-rouge récupère chacun des points
 plus le point est brillant, plus c’est proche de l’objectif

Voici la liste du matériel utilisé dans la Kinect : Bill of Material de la Kinect

Certes c’est plus puissant mais c’est encore trop cher pour la plupart d’entre nous, donc on préfère chercher à améliorer la vue de la profondeur à partir de deux webcams simples ou d’une webcam 3D à 30 euros.

Il ne faut pas se leurrer, la représentation 3D dans cette vidéo est très bien faite, mais c’est la même information disponible que sur les vidéos en niveaux de gris. Mais encore fallait-il avoir l’idée d’une telle représentation.

Visualisation 3D par Pobot
Application du principe à une image en niveaux de gris

Pour aller plus loin

Des références sur les capteurs de mesure de profondeur :

 RGB-D dense point cloud à l’université de Washington
 capteurs de profondeur (lidar, ranging camera) sur Hizook

Vos commentaires

  • Le 12 novembre 2010 à 09:28, par Frédéric P. En réponse à : Caméra Kinect

    Et deja des drivers pour ROS (http://ros.org), decidement le plus dynamique des frameworks robotiques :

    un driver ici un autre la

    Et une petite video du resultat dans rviz, la GUI de ROS

    Répondre à ce message

  • Le 9 novembre 2010 à 18:36, par Frédéric P. En réponse à : Caméra Kinect

    ...et il y a deja de belles avancees vers une utilisation en robotique, cf lien ci dessous
    Yeesssssss !

    • Le 9 novembre 2010 à 23:11, par Julien H. En réponse à : Caméra Kinect

      La "source" des vidéos parues ces derniers jours. A noter qu’ils sont gourmands et qu’ils ont bien utilisé le buzz fait par AdaFruit puisqu’en présentant leur hack comme un candidat pour les 3000$, ils se sont fait connaitre et demandent désormais 10000$ pour accepter de publier leur hack en open source.

    Répondre à ce message

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.