readme - BBM Middleware.txt
author bastiena
Tue, 24 Jul 2012 16:35:10 +0200
changeset 54 eb52a12370a3
child 56 7d0ae2f385e7
permissions -rw-r--r--
BBM : installer
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
54
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     1
BBM (Browse By Motion) est une interface permettant de naviguer dans une mosaïque de vidéos indexées basée sur la détection de gestures / positions du squelette envoyé par le SDK Microsoft (1.5) de Kinect ou à la souris.
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
Les spécifications de Microsoft font état des éléments matériels et logiciels requis afin de pouvoir utiliser le SDK :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     8
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     9
Besoins matériels :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    10
    Capteur Kinect.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    11
    Processeur32-bit (x86) ou 64-bit (x64).
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    12
    Dual-core 2.66-GHz ou plus rapide.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    13
    Bus USB 2.0 dédié.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    14
    2 GB RAM.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    15
Besoins logiciels :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    16
    Microsoft® Visual Studio® 2010 Express ou une autre édition de Visual Studio 2010 (si vous souhaitez développer).
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    17
    Windows 7.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    18
    NET Framework 4.0.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    19
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    20
Vous les trouverez ici si vous le souhaitez : http://www.microsoft.com/en-us/kinectforwindows/develop/release-notes.aspx
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    21
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    22
La version 4.0 du Framework est présente dans l'installation de TraKERS.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    23
Néanmoins, par soucis de taille de l'installeur, il vous sera nécessaire d'installer le SDK 1.5 de Microsoft ici :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    24
http://www.microsoft.com/en-us/kinectforwindows/develop/developer-downloads.aspx
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    25
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    26
II) BBM - Structure :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    27
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    28
BBM est composé de deux modules, le Middleware (utilisant la Kinect afin de détecter des gestes et de suivre la position des mains et un Front (nommé Front IDILL, développé en Javascript), permettant de récupérer les WebSockets du Middleware par Client/Server WebSocket. Pour plus d'informations sur le Front, veuillez consulter la documentation située à la racine sous le nom Front IDILL.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    29
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    30
Le middleware dispose d'une interface de debug permettant de connaître en temps réel la position de l'utilisateur à la Kinect. Ces fonctionnalités seront vues plus avant dans la partie Utilisation.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    31
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    32
Les sources des modules sont fournies lors de l'installation, n'hésitez pas à les consulter si besoin est.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    33
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    34
III) BBM - Utilisation :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    35
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    36
Vous pouvez démarrer le Middleware ou bien le Front dans l'ordre que vous voulez.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    37
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.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    38
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.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    39
(Plus de détails sur la Kinect : http://fr.wikipedia.org/wiki/Kinect).
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    40
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    41
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).
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    42
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    43
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).
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    44
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    45
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.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    46
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    47
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.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    48
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    49
A) Position des mains :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    50
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    51
Lorsqu'au moins une main entre dans le champ, ses/leurs coordonnées sont envoyées par le serveur au front.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    52
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    53
B) Détection de gestes :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    54
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    55
Pour l'instant, plusieurs gestes peuvent être détectés :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    56
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    57
    SWIPE - Désigne 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 tête. 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.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    58
    Lorsque ce geste est détecté, le bas de la fenêtre se colore en rouge si le swipe est vers la gauche.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    59
    Lorsque ce geste est détecté, le bas de la fenêtre se colore en violet si le swipe est vers la droite.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    60
    
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    61
    PUSH/PULL - Mouvement de poussée/traction rectiligne dirigé vers la kinect à partir de l'emplacement actuel de la main effectuant le geste.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    62
    Lorsque ce geste est détecté, le bas de la fenêtre se colore en blanc s'il s'agit d'un push.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    63
    Lorsque ce geste est détecté, le bas de la fenêtre se colore en noir s'il s'agit d'un pull.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    64
    
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    65
    JUMP - Action de sauter vers le haut.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    66
    
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    67
    FALL - Action de s'accroupir.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    68
    
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    69
    BEND - Action de se pencher en avant.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    70
    
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    71
    KNEE-UP - Action de lever le genou.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    72
    
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    73
C) Paramètres de configuration.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    74
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    75
Ceux-ci sont accessibles dans le fichier config.txt situé dans le même dossier que l'exécutable du Middleware nommé MainModule.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    76
Ils sont actuellement de la forme :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    77
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    78
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.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    79
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    80
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.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    81
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    82
minDistHands:1,0    Distance min de la zone de recherche pour les mains.    Type float.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    83
minDist:1,0    Distance min de la zone de détection globale de l'utilisateur.    Type float.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    84
takenPoints:10    Nombre de points pris dans une courbe de recherche. (En développement).    Type entier.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    85
directionChangeTresholdXY:10    Pixels parcourus avant de segmenter une courbe. (En développement).    Type entier.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    86
imagesToShow:20    Nombre d'images à afficher dans la mosaïque du Front IDILL. (Autre projet).    Type entier.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    87
maxDistHands:1,5    Distance max de la zone de recherche pour les mains.    Type float.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    88
maxDist:3,0    Distance max de la zone de détection globale de l'utilisateur.    Type float.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    89
zeroPoint:1,9    Distance du point d'interaction maximal.    Type float.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    90
directionChangeTresholdZ:0,1    Nombre de mètres avant de segmenter une courbe en profondeur. (En développement).    Type float.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    91
tuioConnexionHost:127.0.0.1    Host du serveur TUIO.    Type string.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    92
tuioConnexionPort:8080    Port du serveur TUIO.    Type entier.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    93
tuioTimerElapsing:1000    Temps de latence en ms pour l'affichage et l'envoi des notifications de gesture. TUIO.    Type entier.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    94
wsConnexionHost:127.0.0.1    Host du serveur WebSocket.    Type string.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    95
wsConnexionPort:8090    Port du serveur WebSocket.    Type entier.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    96
wsTimerElapsing:1000    Temps de latence en ms pour l'affichage et l'envoi des notifications de gesture. WebSocket.    Type entier.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    97
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    98
readmeBBMMiddleware:..\readme - BBM Middleware.txt    Chemin du readme du Middleware.    Type string.    
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    99
docBBMFrontIDILL:..\tutorial - BBM Front IDILL.html    Chemin de la documentation du Front IDILL.    Type string.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   100
frontIDILLS:C:\wamp\www\Front IDILL\    Chemin du code du Front IDILL.    Type string.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   101
frontIDILLExe:http://localhost/Front%20IDILL/    Chemin du Front IDILL.    Type string.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   102
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   103
Voici les règles à respecter lors de l'affectation des valeurs des paramètres :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   104
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   105
1) maxDistHands doit être supérieur à 0f.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   106
2) minDistHands doit être supérieur à 0f.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   107
3) maxDistHands doit être inférieur ou égal à maxDist.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   108
4) minDistHands doit être inférieur ou égal à maxDist.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   109
5) minDistHands doit être inférieur à maxDistHands.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   110
6) zeroPoint doit être supérieur ou égal à maxDistHands.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   111
7) minDistHands doit être inférieur ou égal à minDist.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   112
8) zeroPoint doit être inférieur à maxDist.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   113
9) tuioConnexionPort doit être supérieur ou égal à 0.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   114
10) wsConnexionPort doit être supérieur ou égal à 0.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   115
11) tuioTimerElapsing doit être supérieur ou égal à 0.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   116
12) wsTimerElapsing doit être supérieur ou égal à 0.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   117
13) imagesToShow doit être supérieur ou égal à 1.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   118
14) takenPoints doit être supérieur à 0.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   119
15) directionChangeTresholdXY doit être supérieur ou égal à 0.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   120
16) directionChangeTresholdZ doit être supérieur ou égal à 0.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   121
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   122
D) Menu.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   123
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   124
Via le menu en haut de la fenêtre de debug du Middleware, il est possible d'accéder aux readme et documentations du Middleware et du Front IDILL. Le fichier de configuration est également disponible dans ce menu. Une fois un paramètre modifié, il est nécessaire de redémarrer le Middleware pour que les nouveaux paramètres soient pris en compte.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   125
L'exécutable et le code source du Front sont accessibles dans le menu.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   126
- Dans le cas où l'on souhaite lancer le Front IDILL, il est nécessaire de placer le dossier Front IDILL présent à la racine de BrowseByMotion dans le répertoire www du dossier wamp (par défaut C:\wamp\www).
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   127
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   128
IV) Mention(s) importante(s) pour le debug :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   129
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   130
Le serveur WebSocket permet de gérer le multi-client.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   131
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   132
Paramétrage : Le Middleware était conçu à l'origine pour permettre une modification de la configuration via une fenêtre durant le runtime. Il semblerait que Fleck provoque un comportement innatendu de cette fenêtre. Par conséquent, il est nécessaie de modifier le fichier config.txt à la racine de Middleware si on souhaite modifier les paramètres du Middleware. En cas de problème, le fichier ErrorFile.txt est créé dans ce même dossier.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   133
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   134
Si vous expérimentez des difficultés ou souhaitez nous soumettre une requête, veuillez consulter le fichier contact.txt à la racine du projet.