BARDIAU Romain CRĂCIUN Anamaria DANILUC Dora SAVU Alexandra SOUTI Bilal [DÉVELOPPEMENT D'UNE API DE RECONNAISSANCE DE GESTES POUR LE CAPTEUR KINECT]

Dimension: px
Commencer à balayer dès la page:

Download "BARDIAU Romain CRĂCIUN Anamaria DANILUC Dora SAVU Alexandra SOUTI Bilal [DÉVELOPPEMENT D'UNE API DE RECONNAISSANCE DE GESTES POUR LE CAPTEUR KINECT]"

Transcription

1 BARDIAU Romain CRĂCIUN Anamaria DANILUC Dora SAVU Alexandra SOUTI Bilal [DÉVELOPPEMENT D'UNE API DE RECONNAISSANCE DE GESTES POUR LE CAPTEUR KINECT]

2 Abstract Les gestes et la reconnaissance des gestes sont des termes de plus en plus rencontrés dans les discussions sur l'interaction homme-machine, surtout en ce qui concerne le domaine des jeux vidéo, avec l apparition des nouveaux contrôleurs développés par les constructeurs de consoles de jeux. L intégration du contrôle à travers des gestes dans des logiciels embarqués ou qui contrôlent des objets à distance pourrait constituer un grand pas en avant dans des domaines comme la robotique ou la domotique. C est dans ce contexte que se situe le sujet de ce TER, qui consiste en la création d une API de reconnaissance de gestes qui permettrait l utilisation du capteur Kinect développé par Microsoft dans des projets qui ne se limitent pas qu à la console de jeux Xbox pour laquelle Kinect a été initialement conçu. Une fois l API développée, son utilisation a été illustrée à travers un programme qui contrôle un robot uniquement à l aide des gestes, ce qui a permis de donner une première vue sur une des utilisations possibles de la reconnaissance des gestes dans des applications situées en dehors de l univers des jeux vidéo. Développement d'une API de reconnaissance de gestes pour le capteur Kinect 2

3 Remerciements Nous souhaitons remercier toute l équipe pédagogique de l Université de Nice-Sophia Antipolis ainsi que les intervenants professionnels responsables du Master I Informatique pour tous les enseignements qu ils nous ont apportés. Nous remercions également Mr Michel BUFFA, notre tuteur pour ce TER, pour l aide et les conseils concernant les missions évoquées dans ce rapport, ainsi que pour les idées qui nous ont aidés à structurer le sujet de ce projet. Mr Fabrice Huet, le responsable du TER, pour son soutien et son aide, et pour l intérêt qu il nous a porté. L équipe de SimplySim, Nicolas Dalmasso et Bertrand Copigneaux, pour nous avoir accueillis et pour avoir partagé leur expérience dans le domaine avec nous. Développement d'une API de reconnaissance de gestes pour le capteur Kinect 3

4 Table des matières Abstract Introduction Présentation du sujet Gestes et reconnaissance des gestes Description du capteur Kinect Description du robot Mindstorms NXT Projets existants dans le domaine Travail réalisé Choix technologiques Outils développés Construction du robot Les algorithmes utilisés L algorithme $ L algorithme $N Main ouverte/main fermée Programmation de l API Description de l API Les classes de l API Les plugins L utilisation de l API Programmation du robot Développement d'une API de reconnaissance de gestes pour le capteur Kinect 4

5 Le code Le contrôle du robot L association des gestes détectés par l API aux actions du robot Organisation de l équipe Découpage des tâches Estimation du travail réalisé Bilan Conclusion Annexes Références Liste des gestes reconnus par le plugin Dollar Liste des gestes reconnus par le plugin NDollar Liste des poses reconnues par le plugin NDollar Développement d'une API de reconnaissance de gestes pour le capteur Kinect 5

6 Introduction Présentation du sujet Le but de ce TER a été de créer une API de reconnaissance des gestes en utilisant le squelette humain fourni par le capteur Kinect, qui pourra être par la suite intégrée dans des applications qui utilisent le contrôle par mouvements (Control By Gesture) à travers des interfaces utilisateur de type NUI (Natural User Interfaces). Une fois l API développée, un deuxième objectif a été de créer une application qui se sert de cette API pour illustrer son utilité dans le contexte de la robotique, et ceci en utilisant le robot Lego Mindstorms NXT 2.0. Gestes et reconnaissance des gestes La reconnaissance du mouvement est un sujet informatique qui a comme but d'interpréter les gestes de l'humain via des algorithmes mathématiques. Les gestes peuvent provenir de n'importe quel mouvement du corps ou d une pose, mais les centres d intérêt dans ce domaine sont le visage, plus précisément la reconnaissance des émotions qui s expriment à travers le visage, et les gestes faits avec la main. La reconnaissance des gestes peut être considérée comme un moyen pour les ordinateurs de commencer à comprendre le langage du corps humain, créant ainsi une liaison plus forte entre les machines et les humains, autre que celle offerte par les interfaces primitives en mode texte ou même des interfaces graphiques, qui limitent encore la communication au clavier et à la souris. En ce qui concerne la programmation de la reconnaissance du mouvement, celle-là peut être accomplie avec des techniques de vision par ordinateur et de traitement d'images. Comme Baudel et Beaudouin-Lafon (1993) le soulignent, il y a un certain nombre d'avantages offerts par l utilisation des gestes pour l interaction : Développement d'une API de reconnaissance de gestes pour le capteur Kinect 6

7 Une interaction naturelle : les gestes sont une forme naturelle de l'interaction, et sont faciles à utiliser ; Simple et puissant : un geste simple peut être utilisé pour spécifier à la fois une commande ainsi que ses paramètres ; Une interaction directe : la main utilisée en tant que périphérique d entrée élimine le besoin d objets intermédiaires entre la personne et la machine. Dispositifs d entrée qui permettent la reconnaissance des gestes Le fait de suivre les mouvements d'une personne et de déterminer quels gestes elle est en train de faire peut être obtenu grâce à divers outils. Bien qu'il y ait une grande quantité de recherche dans le domaine de la reconnaissance à l aide des images ou de la vidéo, des différences existent entre les outils et environnements utilisés entre les différentes implémentations : Caméras basées sur la profondeur : en utilisant des caméras spécialisées, on peut générer une carte de profondeur de ce qui est vu par la caméra sur des courtes distances, et utiliser ces données pour calculer une approximation d une représentation 3D de ce qui est vu. Ceux-ci peuvent être efficaces pour la détection de gestes de la main grâce à leur précision sur des courtes distances. Caméras stéréo : en utilisant deux caméras dont les positions relatives d une par rapport à l autre sont connues, une représentation 3D peut être approximée en utilisant les données enregistrées par les deux caméras. Gestes basés sur un contrôleur : des contrôleurs tels qu une télécommande ou un téléphone portable peuvent agir comme des extensions du corps, de manière à ce que lorsque les gestes sont effectués, certains de leurs mouvements peuvent être facilement capturés par des logiciels. La souris est un tel exemple, où le mouvement de la souris est associé à un symbole en train d être dessiné par la main d une personne, et la manette Wii est un autre exemple d un tel dispositif, qui peut étudier les changements d'accélération dans le mouvement de la main au cours du temps pour représenter des gestes. Développement d'une API de reconnaissance de gestes pour le capteur Kinect 7

8 Description du capteur Kinect Kinect est un périphérique développé par Microsoft, destiné à la console de jeux vidéo Xbox 360, qui permet de contrôler des jeux vidéo sans utiliser de manette. Le périphérique est basé sur une technologie logicielle développée par Rare, une filiale de Microsoft Game Studios appartenant à Microsoft, et sur une caméra spécifique créée par PrimeSense, qui interprète les informations sur la scène 3D obtenue à travers une lumière infrarouge structurée et projetée en continu. Ce système de scanner 3D appelé «Light Coding» utilise une variante de la reconstruction 3D basée sur l image. Le capteur Kinect est une barre horizontale reliée à une petite base avec un pivot motorisé, conçu pour être placé au-dessus ou en dessous de l'affichage vidéo (téléviseur, écran d un ordinateur). Le dispositif comporte une caméra RGB, un capteur de profondeur et un microphone multi-réseau exécutant un logiciel propriétaire, qui fournissent la capture du mouvement du corps en 3D, la reconnaissance faciale et la reconnaissance vocale. Le capteur de profondeur se compose d'un projecteur laser infrarouge combiné à un capteur CMOS monochrome, qui capture des données vidéo en 3D dans toutes les conditions de lumière ambiante. Le rayon de détection de ce capteur est réglable, et le logiciel de Kinect est capable de calibrer automatiquement le capteur en fonction du gameplay ou de l'environnement physique du joueur, pouvant accueillir la présence des meubles ou d'autres obstacles. Développement d'une API de reconnaissance de gestes pour le capteur Kinect 8

9 Caractéristiques techniques de Kinect Capteur : Lentilles détectant la couleur et la profondeur ; Microphone à reconnaissance vocale ; Capteur motorisé pour suivre les déplacements ; Champ de vision : Champ de vision horizontal : 57 degrés ; Champ de vision vertical : 43 degrés ; Marge de déplacement du capteur : ± 27 degrés ; Portée du capteur : 1.2m 3.5m ; Flux de données : en couleur 16 bits à 30 images/sec ; en couleur 32 bits à 30 images/sec ; Audio 16 bits à 16 khz ; Système de reconnaissance physique : Jusqu à 6 personnes et 2 joueurs actifs ; 15 articulations par squelette ; Application des mouvements des joueurs sur leurs avatars Xbox Live ; Audio : Chat vocal Xbox Live et chat vocal dans les jeux (nécessite un compte Xbox Live Gold) ; Suppression de l écho ; Reconnaissance vocale multilingue ; Développement d'une API de reconnaissance de gestes pour le capteur Kinect 9

10 Description du robot Mindstorms NXT 2.0 Mindstorms NXT 2.0 est un robot programmable créé par Lego, qui associe la polyvalence illimitée des systèmes de construction LEGO à une brique intelligente. L ensemble du robot comprend : La brique intelligente NXT LEGO qui inclut un microprocesseur de 32 bits, un grand écran à matrice, 4 ports d'entrée et 3 ports de sortie ainsi qu'un lien de communication USB et Bluetooth ; Trois servomoteurs interactifs ; Quatre capteurs dont un capteur ultrasonique, 2 capteurs de contact et un capteur de couleurs. Le capteur de couleurs dispose de trois fonctionnalités : il distingue les couleurs et la lumière et fonctionne comme une lampe ; 612 pièces LEGO nécessaires pour créer une multitude de robots ; Les éléments qui composent le robot LEGO Mindstorms NXT 2.0 Développement d'une API de reconnaissance de gestes pour le capteur Kinect 10

11 Projets existants dans le domaine Kinect Nui.Vision : Une mini librairie créé par Vangos Pterneas qui permet d utiliser Kinect plus facilement pour juste récupérér les images des caméras (Depth et Normal) ainsi que le squelette (en WPF). Cette librairie était disponible juste sous forme de fichier dll mais on s est inspiré de son utilisation pour créer notre propre API. UserTracker.net : Exemple fourni par OpenNi pour montrer comment utiliser les fonctions de OpenNi (en windows Forms). Faast : Flexible Action and Articulated Skeleton Toolkit : permet d associer un geste a une entrée clavier, écrit en C++. Kinect + Mindstorm : Vidéo où une personne contrôle un robot LEGO Mindstorms avec Kinect, mais le code de l application n est pas disponible. Mindstorms NXT Après une recherche sur Google pour pouvoir découvrir plusieurs applications qui ont été développées en utilisant C# et la librairie MindSqualls, voici les projets qu on a pu trouver: NXT Tri-Bot collection using C# Express and MindSqualls Library. Cette application donne une rétroaction visuelle de ce que les moteurs et les capteurs font. L'application a beaucoup de labels indiquant l état actuel des différents paramètres. Développement d'une API de reconnaissance de gestes pour le capteur Kinect 11

12 Basic Robot Control using NKH Mindsqualls Libraries. Ce code montre comment faire un contrôle de base d'un robot LEGO NXT via une connexion Bluetooth. Nxt mindsqualls collection of code. L'application fait que les Capteurs / Motors réalisent un certain nombre de tâches en utilisant une souris et un joystick. Les programmes offrent à l'utilisateur une rétroaction visuelle de ce qu un ou plusieurs moteur (s) ainsi que les capteurs font à un moment donné. L'application offre aussi un support pour les webcams et pour une Logitech Extreme 3D Pro Joystick. Il a également un support pour les capteurs standard et le HiTechnicCompassSensor. Développement d'une API de reconnaissance de gestes pour le capteur Kinect 12

13 Travail réalisé Choix technologiques L API Kinect Pour le choix du driver de Kinect, on a choisi celui de OpenNi puisque c est le driver officiel pour l utilisation de Kinect sur un ordinateur. Il existe en version C++ et C# (.NET), et on a préféré celui de C# puisque le langage est plus proche de Java, un langage qui nous est familier. De plus, la librairie est plus facile à utiliser mais malheureusement moins documentée. Pour la reconnaissance des gestes, nous avons opté pour l'algorithme $1 (que nous allons détailler plus loin dans ce document), puisqu il était le seul qui permettait une reconnaissance rapide, sans une phase d apprentissage, comparé à d'autres algorithmes tels que les réseaux de neurones ou les Hidden Markov Model. Un autre choix dans la création de l API a été de ne pas utiliser l algorithme $3, une variante du $1 mais qui prend en compte les trois directions de l espace (un point dans cet algorithme est caractérisé par les trois coordonnées, X, Y et Z). Ce choix a été motivé par le fait que dans les implémentations existantes de cet algorithme, les résultats qu il offre pour la détection d un geste sont trop souvent des faux positifs. Le robot Il existe plusieurs libraires C# pour contrôler un robot Lego: Mindsqualls NXT.Net Aforge.Net Au début, nous avons pensé à utiliser la deuxième, NXT.Net, parce qu elle est écrite dans une version plus récente de la plateforme.net, 3.0. Mais après avoir étudié plus en détail les Développement d'une API de reconnaissance de gestes pour le capteur Kinect 13

14 caractéristiques de cette librairie on a découvert qu elle n avait pas de documentation et aussi qu elle présentait encore des bugs. Cela nous a déterminé à chercher d autres librairies. Aforge.Net, même si stable, présente une contrainte technique qui nous a contraint à ne la pas prendre en considération : la méthode qui réalise la rotation des moteurs n a pas de paramètre pour le degré de rotation. Donc, on ne peut pas tourner le robot à droite avec 10 degrés ou 20 degrés, mais seulement avec 90 degrés. Cette contrainte nous a poussés à utiliser la libraire Mindsqualls. Minsqualls.net a 2 versions: 1.1 et 1.2. La deuxième, même si elle contient des nouvelles méthodes et attributs, présente un problème technique: avant de réaliser une nouvelle rotation, le moteur est remis à sa position initiale. Donc, si on veut tourner le robot deux fois à droite avec 10 degrés, sa nouvelle position n est pas décalée de la position initiale avec 20 degrés, mais avec 10 degrés, parce qu avant de tourner pour la deuxième fois à droite, le moteur est tourné en sens inverse pour arriver à sa position initiale. Ce problème n est pas rencontré dans la première version de la libraire. Donc, le choix final a été la librairie Mindsqualls v1.1. Outils développés NDollarKinectPlayer Cet outil permet de visualiser et créer les fichiers. xml qui seront utilisés par l implémentation de l algorithme $N pour représenter les gestes. L application peut être utilisée de deux manières, pour enregistrer un geste à l aide de Kinect, ou pour ouvrir, visualiser et modifier un geste existant : Création d un geste : Dans le menu «File» on choisit l option «New», cela aura pour effet de lancer Kinect, qui attendra la calibration de l utilisateur à travers la pose de calibration, et qui ensuite affichera le squelette sur la fenêtre principale de l application. Pour commencer a enregistrer, il faut cliquer sur le bouton «Start», puis effectuer devant Kinect le geste qu on veut sauvegarder, et cliquer sur le bouton «Stop» pour la Développement d'une API de reconnaissance de gestes pour le capteur Kinect 14

15 fin de l enregistrement, qui sera suivi de l apparition d une fenêtre qui permet la sauvegarde du geste dans le fichier.xml. Capture écran de l outil NDollarKinectPlayer Visualisation d un geste existant : Dans le menu «File» on choisit l option «Open» pour ouvrir un fichier.xml déjà existant. Des barres de défilement (des sliders) permettent la visualisation du geste enregistre ainsi que sa modification, de la façon suivante : o Un premier slider nous permet de faire défiler les différentes positions du squelette pour visualiser le geste pas à pas. Les boutons «Next» et «Previous» effectuent la même action. o Deux sliders supplémentaires offrent la possibilité de modifier le geste qui a été enregistré, en le découpant, pour garder le nombre de pas optimal nécessaire à Développement d'une API de reconnaissance de gestes pour le capteur Kinect 15

16 la reconnaissance du geste. Chaque pas d un slider représente une position du squelette à un moment donné pendant l exécution du geste. Pour que le geste soit mieux reconnu par le plugin NDollar, il est conseillé qu il contienne 30 à 50 positions de squelette. MusicApp Pour montrer une utilisation possible de l API de gestes Kinect développée, on a créé une application qui utilise les gestes détectés par l API pour produire de la musique. Le code de cette application sera inclus dans l archive livrable de l API et va constituer un exemple pour les développeurs qui veulent utiliser l API. Le principe de l application est le suivant : Au lancement, Kinect sera connecté à l application et la fenêtre principale du programme affichera l image de profondeur renvoyée par le capteur. Une musique de fond sera également démarrée. A partir de ce moment, l utilisateur qui se trouve devant le capteur doit prendre la pose de calibration du Kinect, et attendre que le squelette soit affiché sur la fenêtre. Une fois que le squelette a été détecté, l utilisateur peut faire des gestes qui chacun vont contrôler un son additionnel qui sera ajouté à la musique de fond de la manière suivante : o La première fois qu un geste est détecté, il lance un son qui sera ajouté pardessus la musique de fond (le son ajouté ne remplace pas la musique existante ou les autres sons qui sont en train d être joués, il sera joué en parallèle avec ceux-ci). o La deuxième fois que le même geste est détecté, le son lancé la première fois par le même geste sera arrêté. Cette utilisation des gestes permettra à l utilisateur de l application de créer de la musique en rajoutant ou en supprimant des sons. Développement d'une API de reconnaissance de gestes pour le capteur Kinect 16

17 Capture écran de l outil MusicApp, après la pose de calibration de Kinect En tant que simple application d exemple pour l utilisation de l API, l application ne contient pas d autres fonctionnalités, et la musique de fond ainsi que les sons rajoutés à l aide des gestes sont prédéfinis. Construction du robot Pour montrer la fonctionnalité de la libraire de gestes Kinect, on a décidé d utiliser un robot Lego Mindstorms NXT 2.0. Le modèle que nous avons construit s appelle Shooterbot. Il est composé de : Développement d'une API de reconnaissance de gestes pour le capteur Kinect 17

18 1 micro-ordinateur qui est le cerveau du robot. Il gère les commandes données et provoque l entrainement des moteurs pour réaliser l action désirée ; 1 senseur ultrasonique qui aide le robot à détecter les mouvements ; 1 senseur de couleur qui peut détecter les couleurs ou qui peut agir comme une lampe ; 3 moteurs: 2 entraînent les roues et 1 est utilisé pour tirer avec les boules colorées ; Le robot «Shooterbot» Le robot peut être connecté à l ordinateur via Bluetooth en utilisant un port COM. Bluetooth est une technologie qui permet d'envoyer et de recevoir des données sans utiliser de câbles. Nous avons utilisé le Bluetooth pour établir une connexion sans fil entre notre ordinateur et le robot NXT. Le Bluetooth peut être aussi utilisé pour établir une connexion sans fil NXT à un autre NXT. Nous avons transféré le programme entre notre PC et le robot et avons contrôlé ce dernier à l aide de cette technologie. Développement d'une API de reconnaissance de gestes pour le capteur Kinect 18

19 Les algorithmes utilisés L algorithme $1 Le principal défi de l API que nous avons réalisée a été de déterminer les algorithmes les plus adaptés dans le cadre de reconnaissance de gestes. En effet dans ce domaine les méthodes sont nombreuses telles que les réseaux de neurones ou les Hidden Markov Model (HMM). Ces algorithmes sont très sophistiqués. Néanmoins ils nécessitent un entrainement effectué au préalable (learning) plusieurs fois sur la même forme voulant être enregistrée. Cela rend ces types d algorithmes moins pratiques pour du prototypage d interface dans lequel l utilisateur ou le développeur voudrait définir ses propres formes enregistrables, reconnaissables en un temps immédiat. De plus ce niveau de sophistication entraine une difficulté tant au niveau programmation que debug. Le $1 recognizer est à l inverse simple à implémenter dans n importe quel contexte même dans un contexte de prototypage rapide. Un geste effectué par une personne se définit par un ensemble de points. Ces points sont alors comparés à un autre ensemble de points préalablement stockés. On devine très rapidement que la seule comparaison entre chacun de ces points n est pas suffisante pour déterminer le meilleur candidat parmi les ensembles de points préenregistrés (templates) i.e. les gestes à reconnaitre. En effet les variations entre 2 gestes faits par la même personne mais à des vitesses différentes et/ou un matériel différent ne générera pas le même nombre de points et de ce fait la comparaison est déjà impossible sur ce seul critère. S ajoute à cela le problème de l orientation et de l échelle du geste/figure en question et donc les problèmes d angles qui en découlent. C est pour cela que le $1 recognizer a été construit de telle manière à ce qu il soit insensible à tous ces types de variations. De plus l apprentissage (learning) d un geste n est effectué qu une seule fois i.e. ne nécessite qu un seul passage pour créer un template contrairement aux HMM et réseaux de neurones. Il faut aussi noter que le $1 recognizer ne considère que des mouvements «unistroke» i.e. une seule figure continue formée par un geste à l inverse de mouvements «multistroke». Le $1 recognizer se définit ainsi en quatre étapes. Les trois premières sont effectuées que cela soit pour créer les templates une première fois ou pour pouvoir comparer ces derniers à des gestes effectués dans l immédiat. Développement d'une API de reconnaissance de gestes pour le capteur Kinect 19

20 Exemple de gestes reconnus par l algorithme $1 Le ré-échantillonnage Afin de pouvoir comparer le geste effectué avec les templates préexistants on doit tout d abord ré-échantillonner l ensemble de points (stroke) ainsi créé. On calcule tout d abord le total de points M créés par le geste. On divise ce total par N-1 où N ne sera ni trop petit ce qui provoquerait une perte importante de précision ni trop grand qui entrainerait un nombre de comparaisons trop important consommant alors du temps. De cette division résulte une valeur d incrément I qui représentera la distance entre chaque nouveau point. Ces derniers formeront l ensemble de nouveaux points ré-échantillonné sous la forme d une liste. A la fin de cette première étape tous les templates pré-chargés ou tous les gestes effectués au temps T courant ont la même taille N. La rotation à 0 basée sur l angle indicatif Avec maintenant deux ensembles de points ordonnés il n est pas possible de déterminer à première vue l angle de rotation à appliquer sur ces deux ensembles pour qu ils soient égaux dans leur orientation. Néanmoins on s aperçoit d une solution assez simple. On calcule l angle entre le barycentre du geste et le premier point créé par le geste : c est l angle indicatif. Ce dernier est mis à 0. La mise à l échelle et la translation : Après avoir effectué la rotation le geste est mis à l échelle par rapport à ce que l on nomme le rectangle de référence (reference square ou bounding box). Ce dernier est calculé en prenant les minimums et maximums en x et y des points. La mise à l échelle effectuée il ne reste plus qu à effectuer une translation du geste où le barycentre est mis à (0, 0). Développement d'une API de reconnaissance de gestes pour le capteur Kinect 20

21 Obtenir le meilleur score : Un premier calcul est effectué afin de trouver et comparer la distance moyenne entre chaque point du candidat (geste effectué) C et les points de chacun des templates Ti. Cette distance définit ce que l on appelle path-distance entre C et les Ti. La path-distance la plus petite des Ti avec C est convertie en un score exprimé en pourcentage. Ce score est le résultat de la reconnaissance de gestes. L algorithme $N L algorithme de $N commence par appliquer toutes les permutations possibles à chaque stroke, c'est-à-dire regarder toutes les combinaisons possibles des strokes en partant du début ou de la fin du geste. Ensuite il génère tous les unistrokes à partir des combinaisons calculées avant, et va appliquer l algorithme $1 sur chacun d entre eux. Cette opération renvoie le pourcentage de «similarité» calcule pour chaque unistroke, et à la fin, l algorithme en choisit le meilleur candidat. Dans notre implémentation de l algorithme on a choisi de supprimer cette première étape à cause du nombre trop élevé de combinaisons (32 768, a cause des 15 strokes différentes, une pour chaque articulation du squelette). Cette étape n est pas nécessaire dans notre cas, puisque le squelette est toujours représenté de la même manière et donc les articulations sont toujours dans le même ordre. Main ouverte/main fermée Pendant le développement de l API, il s est avéré intéressant d avoir la possibilité de détecter si la main de la personne qui se trouve devant le Kinect est ouverte ou fermée. Cette fonctionnalité pourrait être utilisée pour marquer le début / la fin d un geste, pour le distinguer d autres gestes similaires : par exemple, dans le cas ou la personne veut dessiner un triangle en utilisant un geste, le fait que sa main est fermée pendant la durée du geste qui dessine la forme pourrait indiquer au logiciel que la personne est en train de dessiner un symbole et qu on ne désire pas la détection d autres gestes intermédiaires, comme par exemple la main qui va Développement d'une API de reconnaissance de gestes pour le capteur Kinect 21

22 horizontalement de droite à gauche pendant le dessin, geste qui ne sera donc pas pris en compte si la main est fermée. Pour détecter si la main est ouverte ou fermée, on se base sur l image de profondeur renvoyée par Kinect, de la façon suivante : On applique un filtre sur l image de profondeur renvoyée par Kinect, pour ne garder que les éléments les plus proches du capteur : les mains. (Ceci implique le fait que les mains doivent être plus proches du capteur que le reste du corps, donc ça ne marchera pas dans le cas où cette contrainte n est pas respectée, mais grâce à la bonne précision offerte par Kinect, il est possible de trouver les bons paramètres pour le filtre qu on applique sur l image afin que la distance entre les mains et le reste du corps ne soit pas grande) ; Sur l image obtenue, on détermine le contour de chaque main ; Pour chaque contour de la main, on calcule son enveloppe convexe ; On calcule les défauts de convexité sur l enveloppe convexe trouvée : o Dans le cas où il y a de grands défauts de convexité, cela signifie que la main est ouverte, puisque la forme sera concave entre les doigts ; o Sinon, cela veut dire que la main est fermée. Calcul de l enveloppe convexe à partir de l image de profondeur de la main Développement d'une API de reconnaissance de gestes pour le capteur Kinect 22

23 Programmation de l API Description de l API Notre API se base sur le code fourni par OpenNi, qui est le driver officiel pour l utilisation de Kinect sur un ordinateur. Cette API est écrite en C# et elle est destinée a une utilisation avec WPF, la nouvelle manière de Microsoft pour faire les IHM qui remplace l ancienne, les Forms. Les classes de l API Context Toute notre API commence par la classe «Context», c est celle-là qui permet de récupérer les images vues par Kinect. Ces images sont renvoyées sous la forme d un «ImageSource», ce qui permet un affichage facile en WPF. Les images ont une résolution de 640 x 480 mais il est facile de faire des miniatures de ces images avec WPF : en créant une image plus petite, WPF se chargera d adapter l image à la taille qu il doit afficher. Ce «Context» peut aussi lire un fichier.oni qui contient un enregistrement de ce qui est capté par Kinect, et donc peut fonctionner sans avoir besoin de la connexion du capteur à l ordinateur, en agissant comme une simulation de ce dernier. De plus, en utilisant la classe «UserGenerator» de OpenNi qui permet de récupérer les pixels composant l image d un utilisateur détectée par Kinect, on peut juste représenter l utilisateur sans dessiner l environnement qui l entoure. HandTracking Le «HandTracking» est une classe qui hérite de «Context». Cette classe apporte la détection de la main de l utilisateur fournie par OpenNi. Cette détection commence au moment où l utilisateur fait un geste avec sa main, le «Wave» qui consiste à bouger la main à droite et à gauche plusieurs fois devant Kinect. Au moment où la main est détectée, la classe va générer des évènements pour donner les coordonnées X, Y et Z de la main. Développement d'une API de reconnaissance de gestes pour le capteur Kinect 23

24 Cette classe utilise le «GestureGenerator» de OpenNi qui permet de détecter un geste. On ajoute donc le geste «Wave» au «GestureGenerator» qui va générer un événement «GestureRecognized». Quand cet événement est généré, on commence le suivi de la main à partir de la classe «HandsGenerator» fournie aussi par OpenNi, générant ainsi à chaque nouvelle image fournie par Kinect l événement «HandUpdate» qui nous donne les coordonnées de la main. On génère donc notre événement avec juste ces coordonnées. BodyTracking Le «BodyTracking» est une classe qui hérite aussi de «Context». Cette classe va permettre de fournir de manière plus aisée les coordonnées des 15 articulations de l utilisateur repéré par Kinect. Pour démarrer la détection il faut commencer par faire une pose. Une fois cette pose détectée, l API commence à générer des événements avec les coordonnées de l utilisateur. Cette classe va utiliser aussi «SkeletonCapability» et «PoseDetectionCapability» de OpenNi qui permettent respectivement de récupérer les coordonnées du squelette (les 15 articulations), et de détecter la pose de calibration du Kinect. Dans cette classe on va maintenir une liste de tous les utilisateurs calibrés avec un identifiant et les coordonnées de chacune de leurs articulations. Cette liste sera mise à jour à chaque nouvelle image et générera un événement qui contiendra cette liste. BodyGestureGenerator Cette classe va permettre de générer des événements lorsque qu un geste sera reconnu à partir du squelette fourni par le «BodyTracking». Nous avons choisis que la reconnaissance des gestes allait être effectuée sous la forme de plugins. C est donc le plugin qui va reconnaitre un geste et générer l événement. Chaque plugin devra implémenter l interface «Gesture», qui doit avoir trois événements «Start», «End» et «Recognised». De plus il doit avoir un constructeur vide, une méthode «getname()» et une méthode «construct()». On détaillera la raison de ces contraintes plus loin dans ce document. Le «BodyGestureGenerator» va garder une liste de tous les plugins qui ont été ajoutés. Pour ajouter un plugin, la classe a besoin de son nom. Elle va donc : chercher dans le dossier des plugins (par défaut dans le dossier «plugins» situé a la racine du projet) lire tous les fichiers.dll (qui représentent les versions compilées des plugins) Développement d'une API de reconnaissance de gestes pour le capteur Kinect 24

25 construire toutes les classes qui implémentent l interface «Gesture» appeler la fonction «getname()» pour voir si c est le bon plugin, et dans le cas ou le nom correspond alors la classe appelle la méthode «construct()» du plugin, sinon le Garbage Collector va supprimer le plugin créé. C est pour cette raison qu on a besoin du constructeur vide dans le plugin. De plus, on peut passer en argument un tableau d objets au moment d ajouter un plugin à la méthode «construct». Cette méthode maintient un tableau de trois objets : le premier correspond au «BodyTracker» le second correspond au «BodyGestureGenerator» le dernier correspond au tableau d arguments passé en paramètre au moment de l ajout du plugin. Lorsque l un des trois événements de «Gesture» est généré par un plugin, il est récupéré par le «BodyGesturegenerator», qui génère un nouvel événement avec le nom du plugin qui l a généré et les arguments associés. EventArgs Pour l implémentation du pattern Plugin, nous avons créés trois classes qui décrivent les arguments des événements : UsersEventArgs Possède une liste des squelettes des utilisateurs calibrés. Le squelette est la classe «UserSkeleton» qui possède un ID (commence à 1 pour le premier utilisateur détecté) et 15 éléments «Point3D» (classe de OpenNi) qui correspondent à chacune des articulations. Les 15 articulations du squelette sont: Head Neck LeftShoulder LeftElbow LeftHand RightShoulder RightElbow Développement d'une API de reconnaissance de gestes pour le capteur Kinect 25

26 RightHand Torso LeftKnee LeftHip LeftFoot RightKnee RightHip RightFoot PositionEventArgs Argument envoyé pour les évènements du «HandTracker». Possède l Id de l utilisateur qui a généré l évènement et les coordonnées de la main. GestureEventArgs Argument renvoyé pour les évènements du «BodyGestureGenerator». Possède le nom du geste qui a généré l évènement et un tableau d objets qui correspond aux arguments que le plugin veut envoyer. C est un tableau d objets puisqu on ne peut pas prédire les types renvoyés par un plugin. Les plugins Pour détecter les gestes, on a développé trois plugins différents, en fonction de l algorithme utilisé pour la détection : Le plugin Dollar Ce plugin, qui utilise une implémentation (voir Annexes, [1]) de l algorithme $1 décrit dans ce document, prend en paramètre les gestes que l on veut reconnaitre avec l algorithme (représentés par des fichiers.xml) à partir d un tableau de String. Ces gestes se trouvent dans un répertoire «xml» dans le répertoire «plugin» et on ne chargera que les gestes dont l application a besoin. Dans le cas où on choisit de charger tous les gestes, il suffit de remplacer le paramètre du constructeur du plugin par «All». Développement d'une API de reconnaissance de gestes pour le capteur Kinect 26

27 Pour détecter un geste, cette classe conservera une liste des dernières coordonnées de la main droite de chaque utilisateur détecté en récupérant l évènement «UsersUpdated» du BodyTracker qui lui est passé en paramètre. On va donc garder une liste des 70 derniers points (qui peut être modifiée par un paramètre à la construction). Cette liste sera mise à jour à chaque nouvel évènement, et si la liste d un utilisateur est pleine alors on passe cette liste de points à l algorithme «Dollar» qui va nous donner le geste, parmi ceux qu on veut reconnaitre, qui ressemble le plus a cette liste. On considère qu un geste a été bien fait s il dépasse un Score de 0.85 (fourni par Dollar, le score est compris entre 0 et 1, où 1 est l identique liste à celle de comparaison i.e. le template). Si on a un bon geste alors on vide la liste pour que le même geste ne revienne pas à l évènement suivant (il n y aura qu un nouveau point donc c est fortement probable) et on génère l évènement «Recognised» avec un «GestureEventArgs» qui a le nom du geste reconnu ainsi que dans le tableau des arguments on mettra, l ID de l utilisateur qui a fait le geste ainsi que son score. Le plugin Ndollar Ce plugin, qui utilise une implémentation (voir Annexes, *2+) de l algorithme $N, est très similaire au plugin «Dollar» car il utilise la version «Multistroke» de l algorithme $N. La différence vient du fait que l on va devoir garder une liste des dernières coordonnées de chaque articulation de chaque utilisateur. De plus on accepte un geste s il a un score de 0.75 à cause du fait qu avec autant de «Stroke» (chaque articulation est un «Stroke» de Dollar) il est plus difficile de faire un bon score (et en plus le capteur Kinect ne donne pas des coordonnées parfaites). Les réglages sont plus compliqués à faire dans ce plugin (taille de liste de 50 points par défaut) car si on augmente le score il détectera moins bien les gestes mais si on le diminue (ou augmente la taille de la liste), on a plus de chance d avoir un faux positif. L évènement généré sera le même que celui de Dollar. Pour les besoins de ce plugin nous avons développé un outil pour créer les fichiers xml qui serviront à la reconnaissance des gestes. Nous en parlerons plus tard. Ce plugin nécessite en plus un dossier «conf» à la racine du projet (même lieu que plugins). Ce dossier doit contenir deux fichiers xml «config.xml» et «config-onedollar.xml». Ces fichiers seront fournis avec le plugin. De plus, dans le dossier «plugins» où l on a mis le dll du plugin NDollar, nous devons ajouter un dossier nommé «xml$n», ce dossier devra contenir des dossiers où sont mis les xml (les noms des dossiers importe peu, c est pour pouvoir les ranger, il Développement d'une API de reconnaissance de gestes pour le capteur Kinect 27

28 peut y en avoir qu un seul). Dans ses dossiers, il y aura donc les fichiers xml des gestes que NDollar pourra charger. Le plugin Volant Ce plugin va permettre de simuler le fait d avoir un volant avec Kinect. Le plugin Volant va commencer par détecter si les deux avant-bras de l utilisateur sont parallèles. Si c est le cas alors il lance un Timer d une seconde qui s il arrive à la fin générera alors un évènement Start. Par contre si les deux avant-bras ne sont plus parallèles avant la fin du Timer alors on l arrête et il sera relancé en refaisant la pose. Ce Timer permet de ne pas faire le geste volant par accident car on regarde le geste à chaque nouvel évènement de «UsersUpdated». Pour finir le geste volant, il faut écarter les bras (on regarde la différence de distance entre les mains et les coudes et si elle est assez grande alors on a fini le geste volant). Ici aussi on va utiliser un Timer mais de 0.2 secondes pour éviter une sortie du volant non voulue. On génèrera un évènement «End» à la fin du Timer s il n a pas été interrompu car les bras se sont rapprochés. Quand la position d entrée en volant a été reconnue, on va calculer l angle entre les deux mains par rapport à l horizontal de la main gauche. On aura donc un angle positif si la main droite est au dessus de la main gauche ce qui correspond à un virage vers la gauche, et négatif si la main droite est en dessous de la main gauche ce qui est donc un virage à droite. On génèrera donc un évènement «Recognised» avec en premier paramètre du tableau d argument l Id de l utilisateur et en second l angle du volant. L utilisation de l API Pour utiliser notre API, les références suivantes doivent être rajoutées au projet : KinectAPI.dll, qui contient le code de l API de reconnaissance de gestes ; OpenNi.net.dll, qui contient l API de base fourni par OpenNI ; Le fichier SamplesConfig.xml, qui est le fichier de configuration pour utiliser Kinect, doit être ajoute dans le répertoire /bin/debug du projet. Développement d'une API de reconnaissance de gestes pour le capteur Kinect 28

29 La liaison avec l API se fait explicitement à l aide du code suivant : using KinectAPi ; Puisque l initialisation de Kinect est une opération couteuse en termes de temps, elle doit être effectuée au moment de l initialisation de l application : // Avec Kinect BodyTracker _skeleton = new BodyTracker(); OU // Pour utiliser un autre fichier de configuration que celui par defaut pour Kinect BodyTracker _skeleton = new ); OU // Avec la video qui remplace le capteur Kinect BodyTracker _skeleton = new ); Le même conseil devra être suivi pour les classes «HandTracker» et «KinectAPIContext». Pour afficher l image de Kinect en WPF, il faut utiliser un worker déclaré à l initialisation aussi : // Le thread de rendu graphique CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering); // Le worker BackgroundWorker _bgworker = new BackgroundWorker(); _bgworker.dowork += new DoWorkEventHandler(Worker_DoWork); Le code des handlers pour les événements déclarés est le suivant : Développement d'une API de reconnaissance de gestes pour le capteur Kinect 29

30 void CompositionTarget_Rendering(object sender, EventArgs e) { if (!_bgworker.isbusy) { _bgworker.runworkerasync(); } } void Worker_DoWork(object sender, DoWorkEventArgs e) { // Car le worker n a pas le droit d accéder aux elements de l IHM Dispatcher.BeginInvoke((Action)delegate { // Les images declarees dans le xaml (le fichier qui décrit l IHM) imgcamera.source = _skeleton.rawimage; imgdepth.source = _skeleton.depthimage; }); } L image captée par la camera RGB de Kinect se trouve dans _skeleton.rawimage, et l image captée par la camera de profondeur se trouve dans _skeleton.depthimage. Pour capturer les événements lancés par les classes «BodyTracker» et «HandTracker», qui signalent les modifications dans la position du squelette / dans la position de la main, il faut déclarer des handlers spécifiques, de la manière suivante : // BodyTracker _skeleton.usersupdated += new BodyTracker.UsersUpdatedHandler(Users_Updated); // HandTracker _handtracker.handposition += new HandTracker.HandPositionHandler(HandPosition_Updated); A l intérieur des handlers, on peut récupérer les coordonnées du squelette / de la main : Développement d'une API de reconnaissance de gestes pour le capteur Kinect 30

31 void Users_Updated(object sender, UsersEventArgs e) { foreach (var user in e.users) { float headx = user.head.x; float heady = user.head.y; float headz = user.head.z; } } void HandPosition_Updated(object sender, PositionEventArgs e) { float X = e.x; } Pour ajouter les plugins nécessaires à la détection des gestes, on crée une nouvelle instance de la classe «BodyGestureGenerator», on rajoute dans sa liste de plugins les noms des plugins qu on veut utiliser, et on déclare les handlers pour les événements qui décrivent la reconnaissance d un geste : // Déclaration BodyGestureGenerator _gesturegenerator = new BodyGestureGenerator(_skeleton); // Ajout des plugins _gesturegenerator.add("volant"); _gesturegenerator.add("ndollar", new string[] { "LeftHi5", "RightHi5" }); // Déclaration des Handlers _gesturegenerator.recognised += new BodyGestureGenerator.GestureRecognisedHandler(_gestureGenerator_Recognised); _gesturegenerator.start += new BodyGestureGenerator.GestureStartHandler(_gestureGenerator_Start); _gesturegenerator.end += new BodyGestureGenerator.GestureEndHandler(_gestureGenerator_End); Comme notre API est basée sur le mécanisme de Plugins et comme on ne peut pas savoir à l avance le type des plugins qui vont être utilisés par l application qui intègre l API, une solution simple est le switch/case sur le nom des plugins pour différencier les gestes reconnus : Développement d'une API de reconnaissance de gestes pour le capteur Kinect 31

32 void _gesturegenerator_recognised(string gesture, object[] args) { switch (gesture) { case "Volant": break; case "LeftHi5": break; } } Programmation du robot Le code Afin d'utiliser le robot, il faut d'abord le connecter à l ordinateur via Bluetooth. Le port Bluetooth est un paramètre qui doit être réglé dans l'interface utilisateur, car il peut être différent d'un ordinateur à un autre. Une fois qu on connait le port, il faut suivre les étapes suivantes pour établir une connexion: 1. On crée une instance de l'unité centrale du robot : nxt = new NxtBrick(port); 2. On crée les instances des moteurs : nxt.motorb = new NxtMotor() nxt.motorc = new NxtMotor(); nxt.motora = new NxtMotor(); 3. On synchronise les moteurs qui entrainent les roues pour qu ils tournent en même temps : motorpair = new NxtMotorSync(nxt.MotorB, nxt.motorc); 4. On crée les instances des senseurs qu on veut utiliser, dans notre cas, les Senseur Ultrasonic : Développement d'une API de reconnaissance de gestes pour le capteur Kinect 32

33 nxt.sensor4 = new NxtUltrasonicSensor(); 5. On réalise la connexion à l'unité centrale du robot : nxt.connect(); Une fois qu on est connecté au robot on peut faire les prochaines actions: a. Aller en avant motorpair.run((sbyte)power, 0, 0); La méthode Run reçoit comme paramètres: power : la puissance avec laquelle les moteurs synchronisés vont tourner. Pour aller en avant, il faut que la puissance soit positive ; tacho limit : le degré de rotation des moteurs (dans ce cas, 0 signifie que les moteurs vont tourner à l infini) ; turn ratio: détermine la direction du robot (à gauche, à droite, tout droit) ; b. Aller en arrière On utilise la même méthode comme pour l action aller en avant, mais cette fois la puissance doit être négative. c. Tourner à droite motorpair.run((sbyte)power, 0, turn); On utilise la même méthode comme ci-dessus, mais cette fois on doit indiquer la direction du robot. Le paramètre turn doit être plus grand que 0 pour que le robot tourne à droite. d. Tourner à gauche C est similaire avec l action de tourner à droite. La seule différence est la valeur du paramètre turn, qui doit être plus petite que 0. e. Idle Cette action met les moteurs synchronises dans un état inactif : Développement d'une API de reconnaissance de gestes pour le capteur Kinect 33

34 motorpair.idle(); f. Break C est l action qui réduit la puissance des moteurs synchronisés à 0 : motorpair.brake(); g. Tirer avec des balles colorées Cette fois on n utilise pas les moteurs synchronisés, mais le troisième moteur qui est utilisé pour des actions auxiliaires, dans notre cas, le tir des balles colorées : nxt.motora.run(power, degree); La méthode Run utilisée pour un seul moteur n a pas le paramètre turn ratio. Donc on peut indiquer seulement la puissance du moteur et le degré de rotation. h. Augmenter la puissance des moteurs synchronisés i. Diminuer la puissance des moteurs synchronisés j. Signaler a l utilisateur quand le robot est proche d un obstacle Si le robot détecte un obstacle, à l aide de son Senseur Ultrasonic il va le signaler à l utilisateur via un message sur l interface graphique et diminuera la puissance des moteurs synchronisés pour donner à l utilisateur le temps de penser à une action afin d éviter l obstacle. Pour fermer la connexion Bluetooth du robot on doit utiliser la méthode suivante : nxt.disconnect(); Le contrôle du robot On a implémenté trois moyens pour contrôler le robot: Des boutons Des touches Développement d'une API de reconnaissance de gestes pour le capteur Kinect 34

35 Kinect Dans l interface graphique il existe des boutons qui implémentent presque toutes les fonctionnalités du robot. L association des gestes détectés par l API aux actions du robot Certains gestes qui sont reconnus par le Kinect sont interprétés par le robot. En conséquence quand un geste est reconnu il est transmis au robot qui effectue une certaine action. Les gestes sont qui sont interprétés sont: Hi5 avec la main gauche. Quand le Kinect détecte ce geste le robot commence à se déplacer tout droit. Ce geste réalise une action permanente: une fois que le geste est détecté par le Kinect et interprété par le robot, il se déplace jusqu'au moment où le geste d arrêt stop ou celui qui commande la marche arrière soit détecté. Demi-cercle avec la main droite. La direction du demi-cercle doit être de droite à gauche. Quand le Kinect détecte ce geste le robot commence à se déplacer vers la droite. La direction de déplacement (marche avant/marche arrière) ne change pas, cela signifie que dans le cas où le robot se déplaçait déjà vers l avant, il bougera vers la droite Développement d'une API de reconnaissance de gestes pour le capteur Kinect 35

36 et continuera d aller vers l avant, et dans le cas où le robot se déplaçait déjà en marche arrière il bougera vers la droite et continuera d aller en marche arrière. Chaque fois que ce geste est détecté le robot bouge avec 10 degrés à droite en fonction de la position précédente. Ce geste ne détermine pas une action permanente: quand le geste est détecté, le robot bouge vers la droite avec 10 degrés une seule fois. Si on veut faire tourner le robot plusieurs gestes de ce type sont nécessaires. Demi-cercle avec la main gauche. La direction du demi-cercle doit être de gauche à droite. Quand le Kinect détecte ce geste le robot commence à se déplacer vers la gauche. La direction de déplacement (marche avant/marche arrière) ne change pas, cela veut dire que dans le cas où le robot se déplaçait déjà vers l avant, il bougera vers la gauche et continuera d aller vers l avant, et dans le cas où le robot se déplaçait déjà en marche arrière il bougera vers la gauche et continuera d aller en marche arrière. Chaque fois que ce geste est détecté le robot bouge avec 10 degrés à gauche en fonction de la position précédente. Ce geste ne détermine pas une action permanente: quand le geste est détecté, le robot bouge vers la gauche avec 10 degrés une seule fois. Si on veut faire tourner le robot plusieurs gestes de ce type sont nécessaires. Bouger la main droite de droite vers le gauche. Quand le Kinect détecte ce geste le robot lance une balle colorée. Ce geste ne détermine pas une action permanente: quand le geste est détecté, le robot lance une seule balle, et ce geste n'a aucune influence sur la direction de déplacement du robot. Les deux mains devant le corps. Quand le Kinect détecte ce geste le robot s'arrête. Ce geste réalise une action permanente: une fois que le geste est détecté par Kinect et interprété par le robot, il n'effectuera plus aucune autre action jusqu'au moment où un autre geste soit détecté. Les deux mains vers le haut. Quand le Kinect détecte ce geste le robot commence à bouger en marche arrière. Ce geste réalise une action permanente: une fois que le geste est détecté par Kinect et interprété par le robot, celui-ci se déplace jusqu'au moment où le geste d arrêt ou celui qui commande la marche en avant soit détecté. Pour une description en détail des gestes décrits précédemment ainsi que des images de chaque geste, référez-vous à la section [Annexes] de ce document. Développement d'une API de reconnaissance de gestes pour le capteur Kinect 36

37 Organisation de l équipe Découpage des tâches Lors de l'élaboration du cahier des charges et de la réflexion préliminaire au projet, le travail à effectuer a été découpé en différentes tâches indépendantes les unes des autres. Ce découpage a été respecté, et nous a permis de bien évaluer l'avancement de notre travail et de bien répartir les tâches entre les membres de l'équipe. Avant le début du travail on a créé un diagramme de Gantt pour visualiser les différentes parties qui composent le projet ainsi que les durées affectées à chacune d entre elles : Développement d'une API de reconnaissance de gestes pour le capteur Kinect 37

38 Cette distribution des tâches a été bien respectée, et leur durée a été assez bien calculée. A la fin du projet on a obtenu le diagramme de Gantt suivant qui montre les affectations et les durées réelles : Certaines tâches nous ont pris plus de temps que prévu initialement, tandis que d autres ont été finies plus tôt, donc dans l ensemble on peut considérer qu on a réussi à avoir une distribution uniforme du travail. Développement d'une API de reconnaissance de gestes pour le capteur Kinect 38

39 Estimation du travail réalisé Romain Bardiau Documentation sur la technologie Anamaria Craciun Programmation API - squelette API Integration pattern Plugin Programmation API - $1 Programmation API - $N Programmation API - Creation gestes Programmation API - Outil visualisation gestes Construction Robot Documentation sur la technologie Programmation Robot Integration Robot avec Kinect API Redaction de la documentation Développement d'une API de reconnaissance de gestes pour le capteur Kinect 39

40 Dora Daniluc Construction Robot Documentation sur la technologie Programmation Robot Interface graphique Redaction de la documentation Alexandra Savu Documentation sur la technologie Programmation API - squelette API Programmation API - $N Programmation API - Creation gestes Programmation MusicApp Redaction de la documentation Bilal Souti Documentation sur la technologie Recherche algorithmes des gestes Programmation API - Gestes 1ere version Programmation API - Main ouverte/fermee Redaction de la documentation Développement d'une API de reconnaissance de gestes pour le capteur Kinect 40

Vous pouvez obtenir une extension nécessaire via des achats In-App dans Paramètres (bouton en haut à gauche) > Extensions.

Vous pouvez obtenir une extension nécessaire via des achats In-App dans Paramètres (bouton en haut à gauche) > Extensions. Important: La description correspond à la version de ALON Dictaphone qui comprend toutes les extensions construites. Les extensions construites sont: Partager des Notes Audio Pack Audio Avancé Sélection

Plus en détail

TABLE DE MATIÈRES... 2 PREFACE... 3 INTRO... 4 UTILISATION DES MOTEURS... 9 LE BOUCLE... 10 FAIRE UN BLOC PERSONNALISÉ... 11

TABLE DE MATIÈRES... 2 PREFACE... 3 INTRO... 4 UTILISATION DES MOTEURS... 9 LE BOUCLE... 10 FAIRE UN BLOC PERSONNALISÉ... 11 COURS ELEMENTAIRE TABLE DE MATIÈRES TABLE DE MATIÈRES... 2 PREFACE... 3 INTRO... 4 PARTIES DE L ECRAN... 4 LE ROBOT EDUCATOR... 5 LA FENETRE DE PROGRAMMATION... 5 LES BOUTONS... 6 EXERCICES... 8 UTILISATION

Plus en détail

TP C# Prise en main : interface graphique, animation

TP C# Prise en main : interface graphique, animation TP C# Prise en main : interface graphique, animation 1. Hello World! Description : Vous allez construire une application graphique dotée d un unique bouton qui affiche le message «Hello World!» lorsque

Plus en détail

Projet 4ème année: Bras Robotique Contrôle du mouvement

Projet 4ème année: Bras Robotique Contrôle du mouvement Projet 4ème année: Bras Robotique Contrôle du mouvement TIAMIOU Adam BEN YOUNES Radhoane 1 Sommaire I. Présentation du contexte 3 II Travail effectué... 4 1.Interface de connexion avec le robot...4 2.Récupération

Plus en détail

Nous allons détailler dans cette documentation les fonctionnalités pour créer un objet colonne.

Nous allons détailler dans cette documentation les fonctionnalités pour créer un objet colonne. Généralités Dans le générateur d états des logiciels Ciel pour Macintosh vous avez la possibilité de créer différents types d éléments (texte, rubrique, liste, graphiques, tableau, etc). Nous allons détailler

Plus en détail

N'installez pas de driver windows et indiquez le n de port sur lequel est installé votre imprimante.

N'installez pas de driver windows et indiquez le n de port sur lequel est installé votre imprimante. RAPPEL IMPORTANT Concernant la gestion des imprimantes tickets : Mon imprimante est : Une Metapace 350 USB T1 ou T3 Mode de Connexion USB Procédures d'installation dans outils, menu imprimante ticket et

Plus en détail

Projet de cryptographie. Algorithme de cryptage de type Bluetooth

Projet de cryptographie. Algorithme de cryptage de type Bluetooth Projet de cryptographie Algorithme de cryptage de type Bluetooth Le but de ce projet est de créer une application qui crypte et décrypte des fichiers en utilisant le principe de cryptage du Bluetooth.

Plus en détail

WEBCAM HAUTE DEFINITION Réf. HDCM

WEBCAM HAUTE DEFINITION Réf. HDCM : 0033 (0)169922672 : 0033 (0)169922674 : www.sordalab.com @ : info@sordalab.com WEBCAM HAUTE DEFINITION Réf. HDCM Webcam haute définition Réf. HDCM Page 1 sur 8 I. CARACTERISTIQUES TECHNIQUES Capteur

Plus en détail

Mini-projet : projet KiBoom

Mini-projet : projet KiBoom Mini-projet : projet KiBoom Cours d interfaces multimodales, rapport de projet Bachelor EIA-FR, I3 Frédéric Monney, Guillaume Schneuwly Février - Avril 2011 Table des matières 1. Contexte... 3 2. Description

Plus en détail

INFOGRAPHIE. Rapport du Projet de dessin 2D et 3D

INFOGRAPHIE. Rapport du Projet de dessin 2D et 3D Institut Galilée INFO 1 : Yohan ROUSSET Stéphane FOURNIER INFOGRAPHIE Rapport du Projet de dessin 2D et 3D Superviseur : R. MALGOUYRES Année 2008-2009 2 Table des matières I. Introduction... 4 II. Dessin

Plus en détail

Projet informatique UML-Cpp avec QT4

Projet informatique UML-Cpp avec QT4 Haute école spécialisée bernoise Haute école technique et informatique, HTI Section Electricité et système de communication Laboratoire de l informatique technique Projet informatique UML-Cpp avec QT4

Plus en détail

N importe qui possédant un code MS valide peut initier la rencontre. Néanmoins, il serait préférable de laisser cette

N importe qui possédant un code MS valide peut initier la rencontre. Néanmoins, il serait préférable de laisser cette Les fonctionnalités de Secure Meeting permettent aux utilisateurs de tenir des réunions avec d autres utilisateurs internes et externes au réseau et de collaborer en toute sécurité. Bien que plusieurs

Plus en détail

La Clé informatique. Formation Access XP Aide-mémoire

La Clé informatique. Formation Access XP Aide-mémoire La Clé informatique Formation Access XP Aide-mémoire Septembre 2003 Définitions de termes Base de données : Se compare à un énorme classeur ayant plusieurs tiroirs où chacun d eux contient des informations

Plus en détail

INITIATION AU SYSTEME D EXPLOITATION WINDOWS 2000

INITIATION AU SYSTEME D EXPLOITATION WINDOWS 2000 INITIATION AU SYSTEME D EXPLOITATION WINDOWS 2000 Introduction : Initiation à la Micro- Informatique 1. Matériel 2. Périphériques a) Le clavier b) La souris c) L écran d) L unité centrale e) L imprimante

Plus en détail

Suivant les windows, le signal pour indiquer l imprimante par défaut est un petit rond noir ou vers avec un V à l intérieur.

Suivant les windows, le signal pour indiquer l imprimante par défaut est un petit rond noir ou vers avec un V à l intérieur. La gestion des Imprimantes sous Facile_Caisse : Vous pouvez utiliser plusieurs sortes d imprimante avec le logiciel Facile_Caisse. Si vous possédez une imprimante classique au format A4, vous n aurez aucun

Plus en détail

Figure 6.3: Possibilité d exprimer son talent

Figure 6.3: Possibilité d exprimer son talent SÉANCE 6 Création de schémas 6.1 Présentation du logiciel «Draw» est un logiciel de dessin vectoriel et de PAO (Publication Assistée par Ordinateur). Avec ce logiciel, il vous est possible de créer divers

Plus en détail

WSS Windows Sharepoint Services Guide pratique. Section Technopédagogie

WSS Windows Sharepoint Services Guide pratique. Section Technopédagogie WSS Windows Sharepoint Services Guide pratique Section Technopédagogie Août 2007 1. QU EST CE QUE WSS? «Un site WSS SharePoint est un site Web représentant un espace de collaboration et un lieu de stockage

Plus en détail

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Oussama ELKACHOINDI Wajdi MEHENNI RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Sommaire I. Préliminaire : Notice d exécution et mode opératoire...4 II. Architecture globale de l application...5

Plus en détail

COMMANDE DU ROBOT LEGO MINDSTORM NTX PAR APPLICATION ANDROID UTILISATION D APP INVENTOR

COMMANDE DU ROBOT LEGO MINDSTORM NTX PAR APPLICATION ANDROID UTILISATION D APP INVENTOR SIN STI2D - Système d'information et Numérique TD TP Cours Synthèse Devoir Evaluation Projet Document ressource COMMANDE DU ROBOT LEGO MINDSTORM NTX PAR APPLICATION ANDROID UTILISATION D APP INVENTOR 1

Plus en détail

Calculatrice virtuelle HP Prime

Calculatrice virtuelle HP Prime Calculatrice virtuelle HP Prime Microsoft est une marque commerciale du groupe de sociétés Microsoft. Les informations contenues dans ce document peuvent être modifiées sans préavis. Les garanties relatives

Plus en détail

Découvrez Windows NetMeeting

Découvrez Windows NetMeeting Découvrez Windows NetMeeting Conférence Internet 2001 Université de Moncton. Tous droits réservés. Table des matières 1. Comment puis-je télécharger, installer et démarrer NetMeeting?... 3 2. Quelles sont

Plus en détail

Concours de Programmation ULCO 2013

Concours de Programmation ULCO 2013 Concours de Programmation ULCO 2013 Notice d aide à l utilisation de Prog&Play 7 mars 2013 Introduction Le concours de cette année a pour cadre un jeu de stratégie temps réel, basé sur le moteur Spring,

Plus en détail

KWISATZ MODULE PRESTASHOP

KWISATZ MODULE PRESTASHOP Table des matières -1) KWISATZ - :...2-1.1) Introduction :...2-1.2) Description :...3-1.2.1) Schéma :...3-1.3) Mise en place :...4-1.3.1) PRESTASHOP :...4-1.3.1.1) Les Web Services :...4-1.3.2) KWISATZ

Plus en détail

Manuel d utilisation de PointWrite

Manuel d utilisation de PointWrite Manuel d utilisation de PointWrite Table des matières Contenu de l emballage... 3 Fixer le PointWrite au projecteur... 4 Connecter le PointWrite au PC... 5 Action du stylet... 5 Remplacer la pointe du

Plus en détail

Introduction au débogage avec Eclipse

Introduction au débogage avec Eclipse Introduction au débogage avec Eclipse C. Pain-Barre et H. Garreta IUT INFO Année 2006-2007 1 Notion de debogage Tout développeur est confronté un jour à un programme qui plante pour une raison apparemment

Plus en détail

EDUGRAF. L éditeur nouvelle génération. de GRAFCET. Version : 1.0. Edition Août 2012 EduLabo

EDUGRAF. L éditeur nouvelle génération. de GRAFCET. Version : 1.0. Edition Août 2012 EduLabo EDUGRAF L éditeur nouvelle génération de GRAFCET Version : 1.0 Compatible : Win XP, Vista, 7 Mise à jour automatique Grafcet avec : o Divergence convergence OU, o Divergence convergence ET, o Temporisateurs,

Plus en détail

Groupe Eyrolles, 2003, ISBN : 2-212-11317-X

Groupe Eyrolles, 2003, ISBN : 2-212-11317-X Groupe Eyrolles, 2003, ISBN : 2-212-11317-X 3 Création de pages dynamiques courantes Dans le chapitre précédent, nous avons installé et configuré tous les éléments indispensables à la mise en œuvre d une

Plus en détail

LE LOGICIEL CHOREGRAPHE

LE LOGICIEL CHOREGRAPHE STI2D - Système d'information et Numérique TD TP Cours Synthèse Devoir Evaluation Projet Document ressource LE LOGICIEL CHOREGRAPHE 1 PRESENTATION Le logiciel «Chorégraphe» est entièrement conçu et développé

Plus en détail

Application de gestion de tâche

Application de gestion de tâche Université de Montpellier 2 Rapport TER L3 Application de gestion de tâche Tuteur : M. Seriai Participant : Cyril BARCELO, Mohand MAMMA, Feng LIU 1 er Fevrier 2015 26 Avril 2015 Table des matières 1 Introduction

Plus en détail

Leçon N 4 Picasa 1 ère Partie

Leçon N 4 Picasa 1 ère Partie Leçon N 4 Picasa 1 ère Partie Nous allons maintenant revoir PICASA en détail, car c est le principal logiciel pour gérer et traiter ses photos et que vous serez amenés à utiliser assez souvent. PICASA

Plus en détail

Module SIN21 Pre sentation, analyse, prise en main

Module SIN21 Pre sentation, analyse, prise en main Module SIN21 Pre sentation, analyse, prise en main Temps : 3h Objectifs : Prendre connaissance du système. Lire les diagrammes UML et comprendre le fonctionnement du système. Mettre en place une maquette

Plus en détail

DIAPORAMA AVI. Ce guide permet de transformer une suite de photos en vidéo au format AVI.

DIAPORAMA AVI. Ce guide permet de transformer une suite de photos en vidéo au format AVI. DIAPORAMA AVI Ce guide permet de transformer une suite de photos en vidéo au format AVI. Il est possible de régler la vitesse de défilement des photos, d ajouter des transitions entre chaque photo, d ajouter

Plus en détail

fichiers Exemple introductif : stockage de photos numériques

fichiers Exemple introductif : stockage de photos numériques b- La Gestion des données Parmi les matériels dont il a la charge, le système d exploitation s occupe des périphériques de stockage. Il s assure, entre autres, de leur bon fonctionnement mais il doit être

Plus en détail

Picasa Utilisation : 1 ère partie

Picasa Utilisation : 1 ère partie Picasa Utilisation : 1 ère partie Pour ouvrir Picasa, faîtes un double clic sur l icône présente sur le bureau. Vous pouvez également cliquer sur le menu Démarrer, Tous les programmes, Picasa 3. Lorsque

Plus en détail

Utilisation de l application. Introduction à asa-control. Connexion à l application. Plus facile que tu ne le penses.

Utilisation de l application. Introduction à asa-control. Connexion à l application. Plus facile que tu ne le penses. asa-control Introduction à asa-control Utilisation de l application Plus facile que tu ne le penses. Tu travailles avec la souris et effectues toujours les mêmes étapes. Connexion à l application Choisis

Plus en détail

TeamViewer. Avec TeamViewer, la commande à distance d ordinateurs via Internet devient un jeu d enfants.

TeamViewer. Avec TeamViewer, la commande à distance d ordinateurs via Internet devient un jeu d enfants. Team Viewer Description Avec Team Viewer, vous pouvez contrôler à distance n'importe quel ordinateur comme si vous étiez assis en face de celui-ci, même à travers les pare-feu. Votre partenaire doit tout

Plus en détail

Atelier d initiation. Initiation à Windows Vista et 7

Atelier d initiation. Initiation à Windows Vista et 7 Atelier d initiation Initiation à Windows Vista et 7 Contenu de l atelier Qu est-ce que Windows?... 1 Démarrage d un ordinateur... 1 Ouverture de session... 1 Bureau... 2 La barre des tâches... 2 Le menu

Plus en détail

StereoControlConfig. Notice d emploi. Novembre 08 PC

StereoControlConfig. Notice d emploi. Novembre 08 PC Notice d emploi Novembre 08 PC 2 StereoControlConfig Table des matières 1. Prérequis Hardware et Software... 4 2. Installation... 4 3. Concepts fondamentaux... 8 3.1 Menus et boutons de sélection des fonctions

Plus en détail

MarioUS Plombier génétique. IFT615 Intelligence artificielle. IFT630 Processus concurrents et parallélisme

MarioUS Plombier génétique. IFT615 Intelligence artificielle. IFT630 Processus concurrents et parallélisme MarioUS Plombier génétique IFT615 Intelligence artificielle IFT630 Processus concurrents et parallélisme Présenté par Gabriel P. Girard 07 173 738 Marc-Alexandre Côté 07 166 997 Simon Renaud-Deputter 07

Plus en détail

Introduction à Eclipse

Introduction à Eclipse Introduction à Eclipse Eclipse IDE est un environnement de développement intégré libre (le terme Eclipse désigne également le projet correspondant, lancé par IBM) extensible, universel et polyvalent, permettant

Plus en détail

Numérisation. Copieur-imprimante WorkCentre C2424

Numérisation. Copieur-imprimante WorkCentre C2424 Numérisation Ce chapitre contient : «Numérisation de base», page 4-2 «Installation du pilote du scanner», page 4-4 «Réglage des options de numérisation», page 4-5 «Récupération des images», page 4-11 «Gestion

Plus en détail

Chap. III : Le système d exploitation

Chap. III : Le système d exploitation UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Le système d exploitation (ou O.S. de l anglais Operating System ) d un ordinateur est le programme qui permet d accéder

Plus en détail

FCA SI2 GUIDE RAPIDE DE L UTILISATEUR

FCA SI2 GUIDE RAPIDE DE L UTILISATEUR FCA SI2 GUIDE RAPIDE DE L UTILISATEUR Introduction...2 1 Démarrage...3 1.1 Se connecter...3 1.2 Mettre à jour son Profil...3 1.3 Fonctionnalités du Système...4 2 Comment faire pour...5 2.1 Naviguer d un

Plus en détail

Leçon N 15 Réalisation d un film photo 1 ère partie

Leçon N 15 Réalisation d un film photo 1 ère partie Leçon N 15 Réalisation d un film photo 1 ère partie Vous venez d étudier comment classer et ordonner vos photos avec PICASA, comment traiter ces photos avec PICASA, PICMONKEY, IPICCY et GIMP. Vous venez

Plus en détail

Leçon N 5 PICASA Généralités

Leçon N 5 PICASA Généralités Leçon N 5 PICASA Généralités Avec cette leçon N 5, nous allons commencer l étude du traitement de vos photos avec le logiciel de GOOGLE, PICASA, que vous avez téléchargé dans la leçon N 3. 1 Présentation

Plus en détail

µrv : Realité Virtuelle

µrv : Realité Virtuelle µrv : Realité Virtuelle Edgar-Fernando ARRIAGA-GARCIA Charles-Henri BABIAUD Clément GRELLIER Quentin PETIT Jérôme Ricoeur Florent VIOLLEAU INSA Rennes 21 septembre 2011 1 / 15 Objectifs pour cette semaine

Plus en détail

GUIDE UTILISATEUR - LOGICIEL

GUIDE UTILISATEUR - LOGICIEL GUIDE UTILISATEUR - LOGICIEL Série RJ Le contenu de ce guide et les spécifications de ce produit peuvent être modifiés sans préavis. Brother se réserve le droit d apporter à tout moment et sans préavis

Plus en détail

Table des matières...2 Introduction...4 Terminologie...4

Table des matières...2 Introduction...4 Terminologie...4 Table des matières Table des matières...2 Introduction...4 Terminologie...4 Programme EasyTour...5 Premiers pas...5 Installation...6 Installation du logiciel EasyTour...6 Branchement du téléchargeur...6

Plus en détail

Manuel d utilisation. Votre voyage, Notre téchnologie. 1. Activer le mode 4x4 2. 8. La C.A.P. 8. 2. Lire la carte 2

Manuel d utilisation. Votre voyage, Notre téchnologie. 1. Activer le mode 4x4 2. 8. La C.A.P. 8. 2. Lire la carte 2 Manuel d utilisation 1. Activer le mode 4x4 2 2. Lire la carte 2 3. Régler une destination Hors Route 3 3.1 Choix Manuel 3 3.2 Régler un Waypoint comme destination 3 4. La Boussole 3 5. Le Trip Master

Plus en détail

CAMÉRA ESPION FORMAT MONTRE (Waterproof)

CAMÉRA ESPION FORMAT MONTRE (Waterproof) Référence : 9467-15 CAMÉRA ESPION FORMAT MONTRE (Waterproof) Remarque : L image sert uniquement de référence 1. Vue d ensemble Remarque : L image sert uniquement de référence 1. Interface USB 2. Entrée

Plus en détail

Utilitaire de récupération des données

Utilitaire de récupération des données MDECOM32 pour Windows 95 Utilitaire de récupération des données Le logiciel MDECom32.EXE permet à l'utilisateur d'établir une communication avec le terminal pour émettre ou recevoir des données. MDECom32

Plus en détail

LES ACCES ODBC AVEC LE SYSTEME SAS

LES ACCES ODBC AVEC LE SYSTEME SAS LES ACCES ODBC AVEC LE SYSTEME SAS I. Présentation II. SAS/ACCESS to ODBC III. Driver ODBC SAS IV. Driver ODBC SAS Universel V. Version 8 VI. Références I. Présentation Introduction ODBC, qui signifie

Plus en détail

Identification du document. Identification de la société cliente

Identification du document. Identification de la société cliente Référentiel documentaire projet ITIN Page : 1 / 18 Identification du document Titre du document : Spécifications IHM du projet Vidéosurveillance multi-sites Référence : vsm2_sihm_v1.0 Nom du fichier :

Plus en détail

2012 - Copyright Arsys Internet E.U.R.L. Arsys Backup Online. Guide de l utilisateur

2012 - Copyright Arsys Internet E.U.R.L. Arsys Backup Online. Guide de l utilisateur Arsys Backup Online Guide de l utilisateur 1 Index 1. Instalation du Logiciel Client...3 Prérequis...3 Installation...3 Configuration de l accès...6 Emplacement du serveur de sécurité...6 Données utilisateur...6

Plus en détail

ROBOT INSPECTEUR DE CABLES

ROBOT INSPECTEUR DE CABLES Barra Jérémy TS1 SSI ROBOT INSPECTEUR DE CABLES En ce début d année de terminale S Si, nous ont été présentés différentes idées de projets que l on pourrait réaliser pour notre projet personnel encadré.

Plus en détail

Sommaire. Procédurier Windows Movie Maker Mars 2009

Sommaire. Procédurier Windows Movie Maker Mars 2009 Procédurier Windows Movie Maker Mars 2009 Conception et réalisation Mathieu Brisson Technicien multimedia local Q3049 418.647.6600 poste 6776 mathieu.brisson@climoilou.qc.ca Sommaire L interface... 2 La

Plus en détail

1 - Présentation du matériel.

1 - Présentation du matériel. 1 - Présentation du matériel....2 1.1 Constitution générale....2 1.2 Brique NXT de chez LEGO...2 1.3 Connexions des capteurs et des moteurs à la brique...2 1.3.1 Les capteurs....3 1.3.2 Les moteurs...3

Plus en détail

User Manual Version 3.6 Manuel de l Utilisateur Version 2.0.0.0

User Manual Version 3.6 Manuel de l Utilisateur Version 2.0.0.0 User Manual Version 3.6 Manuel de l Utilisateur Version 2.0.0.0 User Manuel Manual de l Utilisateur I EasyLock Manuel de l Utilisateur Table des Matières 1. Introduction... 1 2. Configuration Requise...

Plus en détail

Morgan Beau Nicolas Courazier

Morgan Beau Nicolas Courazier EPSI - 2010 Rapport projet IA Conception et mise en œuvre d un générateur de systèmes experts Morgan Beau Sommaire Cahier des charges 3 Présentation générale 4 Analyse et modélisation 6 Le moteur d inférence

Plus en détail

MANUEL D UTILISATION DE FRAMVIDEO

MANUEL D UTILISATION DE FRAMVIDEO MANUEL D UTILISATION DE FRAMVIDEO Version 3 Applicable à FramVideo 2.0 et supérieur Ce document présente les fonctionnalités et méthodes d utilisation du logiciel de capture vidéo développé par FRAMIRAL

Plus en détail

Infolettre #6: SkyDrive

Infolettre #6: SkyDrive Infolettre #6: SkyDrive Table des matières AVANTAGES DE SKYDRIVE 2 DÉSAVANTAGES DE SKYDRIVE 2 INSCRIPTION AU SERVICE 2 MODIFIER VOTRE PROFIL 4 AJOUTER UN DOSSIER 5 AJOUTER DES FICHIERS DANS LE DOSSIER

Plus en détail

Getting Started. Analyseur temps-réel ATP 08. Introduction. Démarrage de l analyseur en ligne. HEAD Guide d introduction

Getting Started. Analyseur temps-réel ATP 08. Introduction. Démarrage de l analyseur en ligne. HEAD Guide d introduction Analyseur temps-réel ATP 08 Introduction L analyseur temps-réel (ATP 08) d ArtemiS permet à l utilisateur d analyser en ligne des données temporelles à l aide de nombreuses analyses, d en calculer la moyenne

Plus en détail

Manuel de l utilisateur. Logiciel SmartGUI. Dallmeier electronic GmbH & Co.KG. DK 200.004.000 F / Rev. 1.2.6 / 031222

Manuel de l utilisateur. Logiciel SmartGUI. Dallmeier electronic GmbH & Co.KG. DK 200.004.000 F / Rev. 1.2.6 / 031222 Manuel de l utilisateur Logiciel SmartGUI 1 DK 200.004.000 F / Rev. 1.2.6 / 031222 Software SmartGUI Copyright Tous droits réservés. Ce document ne doit ni être copié, photocopié, reproduit, traduit, transmis

Plus en détail

Rapport projet MMI. Luis Domingues, I3 Naomi Favre, I3 Tiago De Deus, I3. Luis Domingues, Tiago De Deus, Naomi Favre SP 2013 - Interfaces Multimodales

Rapport projet MMI. Luis Domingues, I3 Naomi Favre, I3 Tiago De Deus, I3. Luis Domingues, Tiago De Deus, Naomi Favre SP 2013 - Interfaces Multimodales Rapport projet MMI 2013 Luis Domingues, I3 Naomi Favre, I3 Tiago De Deus, I3 Page 1 Table des matières Luis Domingues, Tiago De Deus, Naomi Favre Introduction... 4 Contexte... 4 Description du projet...

Plus en détail

Your Detecting Connection. Manuel de l utilisateur. support@xchange2.net

Your Detecting Connection. Manuel de l utilisateur. support@xchange2.net Your Detecting Connection Manuel de l utilisateur support@xchange2.net 4901-0128-5 ii Table des matières Table des matières Installation... 4 Conditions d utilisation de XChange 2...4 Définir vos Préférences

Plus en détail

TO52 - Application médicale sous android Consultation des informations patient

TO52 - Application médicale sous android Consultation des informations patient TO52 - Application médicale sous android Consultation des informations patient DAVID LACHICHE XAVIER MICHEL Automne 2011 TABLE DES MATIÈRES 1 Partie données métier 2 1.1 Généralités.......................................

Plus en détail

Manuel d'utilisation DSim 2005

Manuel d'utilisation DSim 2005 Référence: I2-MU Version: 1.1 Date: 28 octobre 2005 Manuel d'utilisation DSim 2005 DSoft Corporation Le rédacteur: Laurent Duplaa Le chef de projet: Florent Paillard Le résponsable qualité: Pasquier Henri

Plus en détail

Windows 8 Module 3 Cours windows8 Dominique Bulté Sal e Informatique de Cappel e la Grande novembre 2013

Windows 8 Module 3 Cours windows8 Dominique Bulté Sal e Informatique de Cappel e la Grande novembre 2013 Windows 8 Module 3 7. L'indispensable fonction «Paramètres du PC» (3/3) Nous voilà arrivé à la dernière étape de notre tour d horizon des nombreuses options du module Paramètres du PC. Cet outil permet

Plus en détail

Classes et templates C++

Classes et templates C++ Classes et templates C++ Ce TP propose une application des classes, des templates et du polymorphisme au travers du design de classes permettant de gérer des courbes de Bézier. Contents 1 Bézier unidimensionnelle

Plus en détail

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE Atelier «pour débuter» La gestion des photos avec Windows 10 1 Généralités sur le jargon de l image numérique Les différents formats d image : une image enregistrée

Plus en détail

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed 6, bd maréchal Juin F-14050 Caen cedex 4 Spécialité Informatique 2 e année Rapport de projet Gestion du parc informatique matériel et logiciel de l Ensicaen SAKHI Taoufik SIFAOUI Mohammed Suivi ENSICAEN

Plus en détail

1ère année LMD informatique/mathématique, UHL Batna. Module Bureautique. TD n 2 Windows XP

1ère année LMD informatique/mathématique, UHL Batna. Module Bureautique. TD n 2 Windows XP 1 TD n 2 Windows XP 1. Définition Windows est le système d'exploitation fourni par la compagnie Microsoft. Windows XP est un système multiutilisateur et multitâche qui fonctionne sur les micro-ordinateurs

Plus en détail

Vos remarques / suggestions

Vos remarques / suggestions Présentation de Picasa Picasa est le logiciel de gestion d'album photo proposé par Google, il est gratuit. Google vous propose deux versions : un logiciel à installer sur l'ordinateur et un module Internet

Plus en détail

TSI-V5 Manuel d installation

TSI-V5 Manuel d installation TSI-V5 Manuel d installation 1 Sommaire Introduction... 3 Pré-requis... 3 Installation SQL SERVER 2008... 3 Introduction... 3 Installation... 3 Prise en main... 7 Application TSI... 9 Premier démarrage

Plus en détail

Summa Cutter Tools. Les outils suivants peuvent être installés avec Summa Cutter Tools :

Summa Cutter Tools. Les outils suivants peuvent être installés avec Summa Cutter Tools : Summa Cutter Tools 1 Cutter Tools Les outils suivants peuvent être installés avec Summa Cutter Tools : 1. Plug-in pour CorelDraw (version 11 ou ultérieure) et Adobe Illustrator (version CS ou ultérieure)

Plus en détail

Comment accéder à d Internet Explorer

Comment accéder à d Internet Explorer Comment accéder à d Pour ouvrir l application, vous n avez qu à doublecliquer sur l icône de celle-ci : ou vous pouvez encore allez le chercher par le raccourci dans la barre des tâches : Lorsque l application

Plus en détail

La robotique dans l enseignement de l informatique. CreativeStudio Sàrl www.creative-studio.ch Raphael Holzer

La robotique dans l enseignement de l informatique. CreativeStudio Sàrl www.creative-studio.ch Raphael Holzer La robotique dans l enseignement de l informatique CreativeStudio Sàrl www.creative-studio.ch Raphael Holzer But de cours Présenter le robot LEGO MINDSTORMS NXT. Comprendre le fonctionnement de quelques

Plus en détail

CAHIER DES CHARGES 2. Support automatisé de bagages à main pour personnes à mobilité réduite. Par : Boniface Lalié et Alex Couture

CAHIER DES CHARGES 2. Support automatisé de bagages à main pour personnes à mobilité réduite. Par : Boniface Lalié et Alex Couture CAHIER DES CHARGES 2 Support automatisé de bagages à main pour personnes à mobilité réduite Par : Boniface Lalié et Alex Couture CÉGEP DE SHERBROOKE Date : 20/12/2013 Table des matières 1. But:... 3 2.

Plus en détail

NAVIGATION SUR INTERNET EXPLORER

NAVIGATION SUR INTERNET EXPLORER Centres d accès communautaire Internet des Îles NAVIGATION SUR INTERNET EXPLORER Table des matières Introduction 1- Les barres d outils 1.1 La barre d adresse 2 5 min. 1.2. Les boutons de navigation 2

Plus en détail

Introduction à Windows XP

Introduction à Windows XP Introduction à Windows XP Windows...1 Windows dans les grandes lignes...1 Interface de Windows...1 Afficher les menus contextuels...2 Exemples de menus contextuels...2 Bureau de Windows...2 Barre des tâches...2

Plus en détail

Formation Gestion concours Version 2011.1.2 du 3 février 2011

Formation Gestion concours Version 2011.1.2 du 3 février 2011 Formation Gestion concours Version 2011.1.2 du 3 février 2011 PROGRAMME - Présentation du logiciel - Installation du logiciel, identification des éléments du logiciel - Récupération des licenciés de la

Plus en détail

Guide de l'utilisateur

Guide de l'utilisateur ELECTRONICA, MECANICA Y CONTROL, S.A. RealSimulator Guide de l'utilisateur TUSBA TQS R1 Adaptateur USB pour manette des gaz TQS F-16 Version R1 Installation et calibration Guide d'installation TUSBA TQS

Plus en détail

Utilisation du visualiseur Avermedia

Utilisation du visualiseur Avermedia Collèges Numériques Utilisation du visualiseur Avermedia Un visualiseur est aussi appelé caméra de table et ce nom rend mieux compte de sa fonction première à savoir filmer un document (revue,carte, dissection,

Plus en détail

Partie 4 Créer des parcours pédagogiques

Partie 4 Créer des parcours pédagogiques Partie 4 Créer des parcours pédagogiques Un parcours pédagogique est une séquence d'apprentissage découpée en sections contenant ellesmêmes des activités ou objets d apprentissage. Il peut être organisé

Plus en détail

Installer Joomla. 2013 Pearson France Joomla! Le guide officiel Jennifer Marriott, Elin Waring

Installer Joomla. 2013 Pearson France Joomla! Le guide officiel Jennifer Marriott, Elin Waring 3 Installer Joomla Dans ce chapitre, nous procéderons au téléchargement et à l installation manuelle de Joomla, et nous expliquerons la configuration de base. Les captures d écran et les instructions font

Plus en détail

Windows XP. Microsoft. Sommaire :

Windows XP. Microsoft. Sommaire : Microsoft Windows XP Sommaire : OUVERTURE DE SESSION...2 LE BUREAU...3 CHANGER D ENVIRRONEMENT...4 NOUVEAU RACCOURCI...7 LE MENU DEMARRER...9 LES PROGRAMMES AU DEMARRAGE...11 LA GESTION DES FICHIERS...12

Plus en détail

PROJET DE FIN D ÉTUDES Asservissement visuel d un robot parallèle à câbles pour la réalisation d une fresque verticale de grande taille

PROJET DE FIN D ÉTUDES Asservissement visuel d un robot parallèle à câbles pour la réalisation d une fresque verticale de grande taille Résumé de PFE PROJET DE FIN D ÉTUDES Asservissement visuel d un robot parallèle à câbles pour la réalisation d une fresque verticale de grande taille Introduction Dans le domaine de la robotique, la robotique

Plus en détail

Introduction à Expression Web 2

Introduction à Expression Web 2 Introduction à Expression Web 2 Définitions Expression Web 2 est l éditeur HTML de Microsoft qui répond aux standard dew3c. Lorsque vous démarrez le logiciel Expression Web 2, vous avez le choix de créer

Plus en détail

Création d un catalogue en ligne

Création d un catalogue en ligne 5 Création d un catalogue en ligne Au sommaire de ce chapitre Fonctionnement théorique Définition de jeux d enregistrements Insertion de contenu dynamique Aperçu des données Finalisation de la page de

Plus en détail

Dossier 03 Périphériques d acquisition

Dossier 03 Périphériques d acquisition Dossier 03 Périphériques d acquisition I. PERIPHERIQUES D ACQUISITION... 1 II. CARACTERISTIQUES GENERALES... 2 A. CLAVIER... 2 B. SOURIS... 3 C. LECTEUR DE CODES A BARRES (OU CODE-BARRES)... 3 D. SCANNER...

Plus en détail

Utilisation de Sarbacane 3 Sarbacane Software

Utilisation de Sarbacane 3 Sarbacane Software Tutorial par Anthony Da Cruz Utilisation de Sarbacane 3 Sarbacane Software Ambiance Soleil 17 Rue Royale 74000, Annecy Sommaire 1. Présentation générale 2. Guide étape par étape 3. Astuces de l éditeur

Plus en détail

2- Téléchargement et installation version actuelle 6.1

2- Téléchargement et installation version actuelle 6.1 1- EDI NetBeans (Environnement : Microsoft Windows Linux Ubuntu) EDI, Environnement de Développement Intégré Anglais : IDE, Integrated Development Environment Programme regroupant : Un éditeur de texte

Plus en détail

SIN : Maquettage d une solution en réponse à un cahier des charges

SIN : Maquettage d une solution en réponse à un cahier des charges SIN : Maquettage d une solution en réponse à un cahier des charges Module SIN 1.1 : Concevoir un système local et permettre le dialogue entre l homme et la machine Activité : TP2 IOWarrior - Commande de

Plus en détail

Tobii Communicator 4. Guide de démarrage

Tobii Communicator 4. Guide de démarrage Tobii Communicator 4 Guide de démarrage BIENVENUE DANS TOBII COMMUNICATOR 4 Tobii Communicator 4 permet aux personnes souffrant de handicaps physiques ou de communication d'utiliser un ordinateur ou un

Plus en détail

1. Faire Démarrer, Paramètres, Panneau de configuration, Outils d administration, Gestion de l ordinateur.

1. Faire Démarrer, Paramètres, Panneau de configuration, Outils d administration, Gestion de l ordinateur. TP PERSONNALISER SON POSTE DE TRAVAIL LES COMPTES, LES GROUPES C'EST QUOI? Les comptes et les groupes permettent de gérer plus facilement l administration d une machine. Il semble assez logique que sur

Plus en détail

Contrôle de flacons par vision industrielle

Contrôle de flacons par vision industrielle Contrôle de flacons par vision industrielle Le but du TP est d effectuer le contrôle de flacons après leur remplissage, leur bouchonnage et leur étiquetage. Le développement de cette application de vision

Plus en détail

Centre pour la formation à l Informatique dans le Secondaire UTILISER NETMEETING DANS LES CCM. Département Education et Technologie.

Centre pour la formation à l Informatique dans le Secondaire UTILISER NETMEETING DANS LES CCM. Département Education et Technologie. Département Education et Technologie UTILISER NETMEETING DANS LES CCM Monique Colinet 5.82 AVRIL 2003 Centre pour la formation à l Informatique dans le Secondaire Une première utilisation de Netmeeting

Plus en détail

Poker. A rendre pour le 25 avril

Poker. A rendre pour le 25 avril Poker A rendre pour le 25 avril 0 Avant propos 0.1 Notation Les parties sans * sont obligatoires (ne rendez pas un projet qui ne contient pas toutes les fonctions sans *). Celles avec (*) sont moins faciles

Plus en détail

www.imprimermonlivre.com

www.imprimermonlivre.com 0 www.imprimermonlivre.com Composition d une couverture avec Word L objectif de ce guide est de vous proposer un mode opératoire pour créer une couverture avec Word. Nous vous rappelons toutefois que Word

Plus en détail