Gestes Kinect

De Wiki d'activités IMA
Révision datée du 24 mars 2011 à 09:18 par Mmendes (discussion | contributions) (Références)

Préparation du projet

Sujet

Kinect.jpg

https://twiki.polytech-lille.fr/cgi-bin/view/Main/XavierRedonProjets2010Kinect

"Vous développerez ensuite un programme permettant de récupérer et analyser les gestes d'un utilisateur face à une vitrine. Les opérations de l'utilisateur seront: sélectionner un objet, annuler la sélection, afficher les informations d'un objet sélectionné sur un grand écran, afficher un comparatif entre différents objets sélectionné. Le feedback de la sélection des objets sera assuré par des LED positionnées sous chaque objet."

Pour aller plus loin, nous pensons intégrer une notion de multi utilisateurs.

- Un utilisateur voulant utiliser le système devrait faire un petit coucou à la caméra (ensuite, comme le sujet le demande, il pourrait pointer vers un objet, puis vers plusieurs pour afficher un comparatif etc...)
- Si plusieurs utilisateurs souhaitent utiliser le système, le premier présent à en faire la demandea la priorité. Ensuite, un ordre est donné aux utilisateurs suivants.
- Chaque utilisateur se voit donné un certain temps d'utilisation du système. La mise en place d'un timer sera nécessaire.
- Si un utilisateur souhaite terminer sa session, il fait un signe X avec ses avants-bras ou sort du champ de la caméra.
- un écran pourrait afficher une image de tous les utilisateurs présents dans le champ de vision du kinect en affichant un numéro au dessus de leurs petites têtes.

Matériel requis

- 1 kinect (disponible)
- plusieurs LEDs (au moins une pour chaque objet)
- micro-contrôleur Arduino
- système Foxboard
- ordinateur PC
- du talent (disponible)

Références

HowTo Kinect : http://www.keyboardmods.com/2010/12/howto-kinect-openninite-skeleton.html
Source Code Mouse Kinect : http://www.keyboardmods.com/2010/12/howto-use-kinect-as-mouse-in-linux.html
Video Mouse Kinect : http://www.youtube.com/watch?v=-Hqu2DwnVok
Source OpenNI : https://github.com/OpenNI/OpenNI
Configuration Proxy Git : http://www.kernel.org/pub/software/scm/git/docs/git-config.html
Configuration Proxy Git : http://stackoverflow.com/questions/128035/how-do-i-pull-from-a-git-repository-through-an-http-proxy
Installation FAAST : http://projects.ict.usc.edu/mxr/faast/
Tuto FAAST : http://kinect-or.com/tuto-kinect/493-faast-004-dispo-tuto-appli-a-telecharger.html
Configuration fichiers XML pour NITE : http://groups.google.com/group/openni-dev/browse_thread/thread/c50238431e6dec4f
Affichage BMP : http://paulbourke.net/dataformats/bmp/

Avancement du projet

Lundi 28 février 2011

 - Installation OpenNi
 - libusb manquant 
   => Installation libusb
 - version `GLIBC_2.12' not found avec la version binaire pour Ubuntu
   => Téléchargement Source Code OpenNi
 - Installation de git pour récupérer le Code Source
   => Paramètrage du proxy
 - Installation, paramétrage Nite
 - Problème d'execution

Jeudi 3 mars 2011

 - Pour limiter les problèmes, utilisation d'un nouveau PC à usage exclusif pour ce projet.
 - Création Makefile pour les Samples de OpenNI et Nite.
 - Etude, compilation des Samples.
   => Problème de FPS ( 2 fps )
 - Passage sous windows.
   => Affichage a 30 fps donc problème venant de notre compilation ou xml sous linux

Lundi 7 mars 2011

 - Problème de FPS résolu sur linux
   => Modification XML ( Id + Serial )
 - Création programme permettant de récupérer la distance entre le capteur et le centre de l'usager.
   => Modification : Annonce à l'utilisateur, s'il est bien positionné .
 - Etude, compilation, test du programme NiUserTracker.

Jeudi 10 mars 2011

 - Récupération des coordonnées 3D de la main droite et du coude droit.
 - Algo pour récupèrer les coordonnées de la zone visé.
 - Activation de la recherche de squelette uniquement dans une certaine zone.

Lundi 14 mars 2011

 - Implantation de la partie qui récupère les coordonnées de la zone visé.
 - Mesure de la position des "items"
 - Réalisation d'un quadrillage définissant les différents zones.
 - Test sur l'armoire avec les dvd Lost, Stargate ...
   => Test réussi : Lost affiché lorsqu'il est pointé.

Jeudi 17 mars 2011

 - Réalisation programme Arduino permettant d'allumer une led X grâce à une variable qui lui est envoyée par ZigBee.
 - Optimisation du système de calibrage.
 - Création d'une "libXbee" qui va permettre à notre programme kinect de dialoguer avec l'arduino.
 - Ajout fonction qui envoie un entier vers l'arduino lorsque qu'un item est pointé. ( Item 01 pointé => "1" envoyé à l'arduino )

Lundi 21 mars 2011

 - Câblage de l'arduino dans l'armoire.
   => Utilisation des led bleu ainsi que des supports pour les leds.
 - Test réussi : 
   => Allumage des leds lorsque l'item est pointé.
 - Etude de la sélection d'un item ainsi que l'affichage de son descriptif sur un deuxième écran.

Jeudi 24 mars 2011