--- a/readme - Middleware.txt Thu Jun 21 17:51:27 2012 +0200
+++ b/readme - Middleware.txt Fri Jun 29 15:37:26 2012 +0200
@@ -1,4 +1,4 @@
-TraKERS (Tracking using Kinect and Extracting Robust Skeletons) est une interface basée sur la détection de gestures / positions du squelette envoyé par le SDK Microsoft (1.0) de Kinect.
+TraKERS (Tracking using Kinect and Extracting Robust Skeletons) est une interface basée sur la détection de gestures / positions du squelette envoyé par le SDK Microsoft (1.5) de Kinect.
Auteur : Alexandre BASTIEN.
@@ -20,12 +20,12 @@
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 présente dans l'installation de TraKERS.
-Néanmoins, par soucis de taille de l'installeur, il vous sera nécessaire d'installer le SDK 1.0 de Microsoft ici :
-http://www.microsoft.com/en-us/kinectforwindows/develop/overview.aspx
+Néanmoins, par soucis de taille de l'installeur, il vous sera nécessaire d'installer le SDK 1.5 de Microsoft ici :
+http://www.microsoft.com/en-us/kinectforwindows/develop/developer-downloads.aspx
II) TraKERS - Structure :
-TraKERS v1.0 est composé de deux modules, le Middleware (utilisant la Kinect afin de détecter des gestes et de suivre la position des mains et le Front (développé en Processing), permettant de récupérer les messages OSC du Middleware. Pour plus d'informations sur le Front, veuillez consulter la documentation située dans le dossier Front Processing.
+TraKERS v3.0 est composé de trois modules, le Middleware (utilisant la Kinect afin de détecter des gestes et de suivre la position des mains et plusieurs Fronts (développés en Processing et en Javascript), permettant de récupérer les messages OSC du Middleware par Client/Server TUIO ainsi que les WebSockets du Middleware par Client/Server WebSocket. Pour plus d'informations sur les Fronts, veuillez consulter la documentation située à la racine sous les noms Front Processing et Front Web.
Afin de permettre au Middleware d'envoyer des messages à un Front sous Processing, un client TUIO a été installé dans le Front et un serveur TUIO dans le Middleware.
Si on souhaite envoyer des données à une page web, un serveur WebSocket ayant un fonctionnement identique a été intégré.
@@ -37,21 +37,21 @@
III) TraKERS - Utilisation :
Vous pouvez démarrer le Middleware ou bien le Front dans l'ordre que vous voulez.
-Lorsque le Middleware est démarré, la Kinect ne s'allume pas encore. Il faut pour cela appuyer sur le bouton ON en bas de la fenêtre de debug. Le capteur (situé le plus à gauche sur la Kinect) va alors s'allumer en rouge, signe que vous serez détecté 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 fenêtre ou de quitter via le menu éteignent également le capteur de la Kinect, avant de quitter.
+Lorsque le Middleware est démarré, la Kinect s'allume et affiche ce qu'elle voit. Le capteur (situé le plus à gauche sur la Kinect) est alors allumé en rouge, signe que vous serez détecté si vous entrez dans son champ.
+Lorsque le bouton ON a été appuyé, il devient un bouton OFF, et permet d'éteindre la Kinect. Il est à noter que le fait de fermer la fenêtre éteint également le capteur de la Kinect, avant de quitter.
(Plus de détails sur la Kinect : http://fr.wikipedia.org/wiki/Kinect).
-Lorsque vous êtes détectés, 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 troisième est jaune et au delà de 3m, le dernier rectangle est blanc.
+Lorsque vous êtes détectés, 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, plus la barre est remplie de bas en haut, plus l'utilisateur est proche du point d'interaction maximal (point dans lequel il suffit de tendre les bras pour que les mains soient dans la zone de recherche).
Il existe une zone de détection des mains, située par défaut entre 1m et 1,5m de la Kinect mais configurable. En dehors de cette zone, les mains sont toujours détectées, mais aucun signal n'est envoyé via le serveur TUIO. Il y a deux rectangles en haut de cette fenêtre, permettant d'indiquer si une main est entrée 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 coordonnées de la main (sauf pour la profondeur, qui est en mètres).
Il est possible de paramétrer des éléments du Middleware, comme la délimitation du champ pour les mains, le host et le port pour le serveur et l'intervalle de temps minimum qui sépare deux détections de gestes.
-Si des erreurs surviennent durant le fonctionnement du Middleware, ceux-ci seront affichés en bas de la fenêtre. Lorsqu'un geste est détecté, une couleur est affichée en bas de la fenêtre, au niveau des exceptions. Pour des raisons de lisibilité au niveau de la détection, la couleur restera affichée tant que la main gauche sera dans le champ. Autrement, la couleur apparaîtra, puis disparaîtra.
+Si des erreurs surviennent durant le fonctionnement du Middleware, ceux-ci seront affichés en bas de la fenêtre. Lorsqu'un geste est détecté, une image est affichée puis disparaît de la fenêtre.
A) Position des mains :
-Lorsqu'au moins une main entre dans le champ, ses/leurs coordonnées sont envoyées par le serveur au front. Si le front n'est pas lancé, il n'y aura pas d'erreur.
+Lorsqu'au moins une main entre dans le champ, ses/leurs coordonnées sont envoyées par le serveur au front.
B) Détection de gestes :
@@ -66,12 +66,56 @@
Lorsque ce geste est détecté, le bas de la fenêtre se colore en noir s'il s'agit d'un pull.
JUMP - Action de sauter vers le haut.
-
- FALL - Action de s'accroupir.
-
- BEND - Action de se pencher en avant.
-
- KNEE-UP - Action de lever le genou.
+
+ FALL - Action de s'accroupir.
+
+ BEND - Action de se pencher en avant.
+
+ KNEE-UP - Action de lever le genou.
+
+C) Paramètres de configuration.
+
+Ceux-ci sont accessibles dans le fichier config.txt situé dans le même dossier que l'exécutable du Middleware nommé MainModule.
+Ils sont actuellement de la forme :
+
+Les valeurs nominales min/max définissent la distance min (plus proche) et max (plus éloignée) par rapport à la Kinect et pas à l'utilisateur.
+
+Les variables de types float acceptent les valeurs de type N.Mf ou N,M. N étant un entier relatif et M étant un entier naturel.
+
+minDistHands:1,0 Distance min de la zone de recherche pour les mains. Type float.
+minDist:1,0 Distance min de la zone de détection globale de l'utilisateur. Type float.
+takenPoints:10 Nombre de points pris dans une courbe de recherche. (En développement). Type entier.
+directionChangeTresholdXY:10 Pixels parcourus avant de segmenter une courbe. (En développement). Type entier.
+imagesToShow:20 Nombre d'images à afficher dans la mosaïque du Front IDILL. (Autre projet). Type entier.
+maxDistHands:1,5 Distance max de la zone de recherche pour les mains. Type float.
+maxDist:3,0 Distance max de la zone de détection globale de l'utilisateur. Type float.
+zeroPoint:1,9 Distance du point d'interaction maximal. Type float.
+directionChangeTresholdZ:0,1 Nombre de mètres avant de segmenter une courbe en profondeur. (En développement). Type float.
+tuioConnexionHost:127.0.0.1 Host du serveur TUIO. Type string.
+tuioConnexionPort:8080 Port du serveur TUIO. Type entier.
+tuioTimerElapsing:1000 Temps de latence en ms pour l'affichage et l'envoi des notifications de gesture. TUIO. Type entier.
+wsConnexionHost:127.0.0.1 Host du serveur WebSocket. Type string.
+wsConnexionPort:8090 Port du serveur WebSocket. Type entier.
+wsTimerElapsing:1000 Temps de latence en ms pour l'affichage et l'envoi des notifications de gesture. WS Type entier.
+
+Voici les règles à respecter lors de l'affectation des valeurs des paramètres :
+
+1) maxDistHands doit être supérieur à 0f.
+2) minDistHands doit être supérieur à 0f.
+3) maxDistHands doit être inférieur ou égal à maxDist.
+4) minDistHands doit être inférieur ou égal à maxDist.
+5) minDistHands doit être inférieur à maxDistHands.
+6) zeroPoint doit être supérieur ou égal à maxDistHands.
+7) minDistHands doit être inférieur ou égal à minDist.
+8) zeroPoint doit être inférieur à maxDist.
+9) tuioConnexionPort doit être supérieur ou égal à 0.
+10) wsConnexionPort doit être supérieur ou égal à 0.
+11) tuioTimerElapsing doit être supérieur ou égal à 0.
+12) wsTimerElapsing doit être supérieur ou égal à 0.
+13) imagesToShow doit être supérieur ou égal à 1.
+14) takenPoints doit être supérieur à 0.
+15) directionChangeTresholdXY doit être supérieur ou égal à 0.
+16) directionChangeTresholdZ doit être supérieur ou égal à 0.
IV) Mention(s) importante(s) pour le debug :