readme - TraKERS Front Processing.txt
author bastiena
Mon, 24 Sep 2012 15:19:49 +0200
changeset 123 57a65edde708
parent 54 eb52a12370a3
permissions -rw-r--r--
Front IDILL: non tmpl config files removed.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
54
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     1
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.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     2
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     3
Auteur : Alexandre BASTIEN.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     4
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     5
I) TraKERS - Eléments requis :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     6
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     7
Dans cette partie, il vous faudra installer Processing, disponible ici : http://processing.org/download/
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     8
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     9
II) TraKERS - Structure :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    10
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    11
Dans le Front, se trouvent deux principaux exécutables "Trakers" et "Trakers_gestures", respectivement pour le tracé de courbes via les coordonnées des positions des mains récupérées du Middleware et pour l'affichage des gestes détectés. Il aurait été possible de les rassembler en un programme, mais pour des raisons de clarté lors de l'utilisation, j'ai préféré procéder ainsi.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    12
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    13
III) TraKERS - Utilisation :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    14
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    15
Si le Middleware est lancé, le programme de Front lancé fait office de client, et récupére les notifications envoyées. Détaillons les deux programmes :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    16
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    17
A) Trakers (composé du fichier principal et d'un fichier "TuioFunctions" gérant la réception des messages)
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    18
Comme indiqué plus haut, il reçoit et affiche les coordonnées des mains entrant dans le champ délimité par le Middleware.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    19
Afin d'indiquer les limites de zone de dessin, un masque noir a été appliqué, et se met à jour.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    20
Les notifications du client s'affichent en blanc en haut du masque, et indique si une ou deux mains sont détectées.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    21
Lorsque l'on dessine, une série d'ellipses apparaissent à l'écran, formant des courbes.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    22
Lorsque deux mains sont détectées, la gauche est rouge et l'autre verte.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    23
Si une main et une seule est détectée, la courbe sera rouge.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    24
Si la ou les mains s'approchent et atteignent une certaine proximité, le segment dessiné deviendra bleu à partir de ce moment-là.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    25
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    26
B) Trakers_gestures (composé du fichier principal et d'un fichier "TuioFunctions" gérant la réception des messages)
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    27
Le même masque a été appliqué dans ce programme d'affichage de notifications de gestes indiqués par le Middleware.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    28
Le programme indique simplement dans la partie supérieure du masque s'il détecte ou non une gesture, et s'il en détecte une, donne le code envoyé par le Middleware.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    29
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    30
Il existe d'autres exemples au sein de cet installeur, qui seront abordés au sein du tutoriel présent dans le dossier : front_processing/doc.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    31
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    32
IV) Fonctionnement :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    33
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    34
Les programmes sont découpés en fonctions, afin de rendre leur structure plus cohérente.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    35
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    36
Il existe deux fonctions principales sous Processing.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    37
void setup(), qui permet d'initialiser des variables, la taille de la fenêtre, etc.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    38
void draw(), qui est raffraichie constamment et sert principalement à dessiner ou faire appel aux fonctions amenées à être appelées toutes les N ms.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    39
Il est bien entendu possible de dessiner via des fonctions déjà implémentées et prêtes à l'emploi, dont la documentation se trouve ici :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    40
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    41
http://processing.org/reference/
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    42
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    43
Ils reçoivent des messages OSC de la part du Middleware. Ceux-ci sont contenus dans des objets qui sont des TuioCursors (en 3D) pour gérer la position des mains et des TuioStrings (objets personnalisés, ajoutés aux dll client et serveur TUIO).
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    44
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    45
Dans les programmes, les curseurs 3D sont principalement utilisés pour transmettre les coordonnées X, Y et Z (X et Y étant des pixels, et Z une distance en mètres). Les strings, quant à eux, ne véhiculent que de simples messages textuels.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    46
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    47
Ils sont envoyés par des listes présentes dans le client TUIO.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    48
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    49
Voici un bout de code expliquant comment obtenir la position des mains :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    50
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    51
TuioProcessing tuioClient;
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    52
tuioClient = new TuioProcessing(host, port; //host pourrait être this par défaut et port le numéro du port au format int.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    53
//On récupère les curseurs.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    54
Vector tuioCursorList = tuioClient.getTuioCursors();
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    55
//Si aucune main n'est repérée.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    56
if(tuioCursorList.size() <= 0)
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    57
{
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    58
    //fonction_1();
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    59
}
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    60
//Si une main est repéré
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    61
else if (tuioCursorList.size() == 1)
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    62
{
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    63
    TuioCursor cursor = (TuioCursor)tuioCursorList.elementAt(0);
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    64
    //fonctionAffiche1Main(cursor);
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    65
    //s'il y en a un deuxième, on l'obtient à elementAt(1)
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    66
}
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    67
//Si c'est les 2.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    68
else if(tuioCursorList.size() == 2)
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    69
{
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    70
    //fonctionAffiche2Mains(tuioCursorList);
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    71
}
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    72
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    73
Voici à présent comment extraire la position actuelle d'une main, via un tuioCursor :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    74
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    75
//On obtient le point actuel du curseur TUIO.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    76
TuioPoint pt = cursor.getPosition();
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    77
//On affiche les coordonnées dans la fenêtre à la position (100 ; 20).
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    78
text(pt.getX() + " " + pt.getY() + " " + pt.getZ(), 100, 20);
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    79
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    80
Il est à noter que plusieurs projets existent sous Processing, notamment dans l'affichage de fluides ou de fumée par exemple :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    81
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    82
http://processing.org/discourse/yabb/YaBB.cgi?board=Contribution_Simlation;action=display;num=1045166270
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    83
http://bodytag.org/nav.php?u=fluid3/
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    84
http://bodytag.org/fluid3/fluid3.pde
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    85
http://bodytag.org/nav.php?u=smoke2/
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    86
http://bodytag.org/smoke2/smoke2.pde
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    87
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    88
Si vous expérimentez des difficultés ou souhaitez nous soumettre une requête, veuillez consulter le fichier contact.txt à la racine du projet.