TraKERS (Tracking using Kinect and Extracting Robust Skeletons) est une interface base sur la dtection de gestures / positions du squelette envoy par le SDK Microsoft (1.0) de Kinect.

Auteur : Alexandre BASTIEN.

I) TraKERS - Elments requis :

Les spcifications de Microsoft font tat des lments matriels et logiciels requis afin de pouvoir utiliser le SDK :

Besoins matriels :
	Capteur Kinect.
	Processeur32-bit (x86) ou 64-bit (x64).
	Dual-core 2.66-GHz ou plus rapide.
	Bus USB 2.0 ddi.
	2 GB RAM.
Besoins logiciels :
	Microsoft Visual Studio 2010 Express ou une autre dition de Visual Studio 2010 (si vous souhaitez dvelopper).
	Windows 7.
	NET Framework 4.0.

Vous les trouverez ici si vous le souhaitez : http://www.microsoft.com/en-us/kinectforwindows/develop/release-notes.aspx

La version 4.0 du Framework est prsente dans l'installation de TraKERS.
Nanmoins, par soucis de taille de l'installeur, il vous sera ncessaire d'installer le SDK 1.0 de Microsoft ici :
http://www.microsoft.com/en-us/kinectforwindows/develop/overview.aspx

II) TraKERS - Structure :

TraKERS v1.0 est compos de deux modules, le Middleware (utilisant la Kinect afin de dtecter des gestes et de suivre la position des mains et le Front (dvelopp en Processing), permettant de rcuprer les messages OSC du Middleware. Pour plus d'informations sur le Front, veuillez consulter la documentation situe dans le dossier Front Processing.

Afin de permettre au Middleware d'envoyer des messages au Front, un client TUIO a t install dans le Front et un serveur TUIO dans le Middleware.

Le middleware dispose d'une interface de debug permettant de connatre en temps rel la position de l'utilisateur  la Kinect. Ces fonctionnalits seront vues plus avant dans la partie Utilisation.

Les sources des modules sont fournies lors de l'installation, n'hsitez pas  les consulter si besoin est.

III) TraKERS - Utilisation :

Vous pouvez dmarrer le Middleware ou bien le Front dans l'ordre que vous voulez.
Lorsque le Middleware est dmarr, la Kinect ne s'allume pas encore. Il faut pour cela appuyer sur le bouton ON en bas de la fentre de debug. Le capteur (situ le plus  gauche sur la Kinect) va alors s'allumer en rouge, signe que vous serez dtect si vous entrez dans son champ.
Lorsque le bouton a t appuy, il devient un bouton OFF, et permet d'teindre la Kinect. Il est  noter que le fait de fermer la fentre ou de quitter via le menu teignent galement le capteur de la Kinect, avant de quitter.
(Plus de dtails sur la Kinect : http://fr.wikipedia.org/wiki/Kinect).

Lorsque vous tes dtects, le squelette de la personne la plus proche s'affiche. Les rectangles sur la droite indiquent la proximit de l'utilisateur par rapport  la Kinect, lorsque l'utilisateur est  moins de 1m, le rectangle du haut est rouge ; entre 1m et 2m, le second est orange ; entre 2m et 3m, le troisime est jaune et au del de 3m, le dernier rectangle est blanc.

Il existe une zone de dtection des mains, situe par dfaut entre 1m et 1,5m de la Kinect mais configurable. En dehors de cette zone, les mains sont toujours dtectes, mais aucun signal n'est envoy via le serveur TUIO. Il y a deux rectangles en haut de cette fentre, permettant d'indiquer si une main est entre dans ce champ (main gauche/droite dans le champ se traduit par la coloration du rectangle gauche/droit en bleu, et par l'affichage en pixels des coordonnes de la main (sauf pour la profondeur, qui est en mtres).

Il est possible de paramtrer des lments du Middleware, comme la dlimitation du champ pour les mains, le host et le port pour le serveur et l'intervalle de temps minimum qui spare deux dtections de gestes.

Si des erreurs surviennent durant le fonctionnement du Middleware, ceux-ci seront affichs en bas de la fentre. Lorsqu'un geste est dtect, une couleur est affiche en bas de la fentre, au niveau des exceptions. Pour des raisons de lisibilit au niveau de la dtection, la couleur restera affiche tant que la main gauche sera dans le champ. Autrement, la couleur apparatra, puis disparatra.

A) Position des mains :

Lorsqu'au moins une main entre dans le champ, ses/leurs coordonnes sont envoyes par le serveur au front. Si le front n'est pas lanc, il n'y aura pas d'erreur.

B) Dtection de gestes :

Pour l'instant, plusieurs gestes peuvent tre dtects :

	SWIPE - Dsigne un mouvement de claque horizontal, partant de la droite vers la gauche avec la main droite (et inversement pour la gauche). Durant le geste, la main ne doit pas descendre sous la hanche ni aller au dessus de la tte. Il lui faut une certaine longueur de parcours et elle ne doit aller que vers la gauche pour la main droite et vers la droite pour la main gauche. Le swipe peut donc tre pour l'instant gauche ou droit.
	Lorsque ce geste est dtect, le bas de la fentre se colore en rouge si le swipe est vers la gauche.
	Lorsque ce geste est dtect, le bas de la fentre se colore en violet si le swipe est vers la droite.
	
	PUSH/PULL - Mouvement de pousse/traction rectiligne dirig vers la kinect  partir de l'emplacement actuel de la main effectuant le geste.
	Lorsque ce geste est dtect, le bas de la fentre se colore en blanc s'il s'agit d'un push.
	Lorsque ce geste est dtect, le bas de la fentre se colore en noir s'il s'agit d'un pull.
	
	En dveloppement :
		JUMP - Action de sauter  pieds vers le haut.

IV) Mentions importantes pour le debug :

Il demeure quelques problmes dans cette version de TraKERS, qui seront rgls  l'occasion d'une autre phase de dveloppement.

1) Instabilit du logiciel lorsqu'un utilisateur se trouve trop proche de la Kinect durant un certain laps de temps (moins d'un mtre).
2) Le premier client Processing  se connecter au Middleware est le seul  recevoir des messages. Je ne pense pas que cela soit problmatique dans la mesure o l'on peut implmenter diffrentes fonctions de dessins sous processing qui seront appeles suivant les messages reus par le client.

Si vous exprimentez des difficults ou souhaitez me soumettre une requte, voici mon adresse : alexandre.bastien@iri.centrepompidou.fr