Home

Rapport De Projet Etude du Leap Motion et implémentation

image

Contents

1. subjectOfFrame R cupere la frame courante et met jour moduleFrame counter et nbFramePerMolule detectSubject R cupere la frame courante et appelle subjectOfFrame v rifie l aide de nbFramePerModule si un sujet est reconnu et met jour les diff rentes va riables subjectAcquired module courant et alarme pour passer en mode lt verbe gt si oui timeElapsedSubject V rifie que le temps pour reconna tre un mouvement n est pas d pass et met a jour les variables pour repasser en mode lt sujet gt dans le cas contraire verb R cupere la frame courante elle fait appel sendEvent et repasse en mode lt sujet gt si elle reconnait un mouvement d fini pour le module courant La m thode onFrame fera d abord appel timeElapsedSubject si on est en mode lt verbe gt puis detectSubject ou verb selon le mode Sessions connexion et mission Le client Java doit pour communiquer avec Gladys se connecter via le protocole HTTP afin d envoyer les instructions re ues par le Leap Motion Pour cela il r cup re dans 11 Leadys M Campmas E Martel N No l N Poelen un premier temps les donn es n cessaires la connexion se connecte a Gladys et ensuite met des requ tes C est la classe Session qui remplit ce r le Elle utilise la biblioth que Apache HttpComponents pour g rer le protocole HTTP Elle se construit avec trois param tres L
2. FACULT DES SCIENCES MONTPELLIER LEADYS RAPPORT DE PROJET ETUDE DU LEAP MOTION ET IMPLEMENTATION D UNE APPLICATION Auteurs Mickael CAMPMAS Elsa MARTEL Nicolas NOEL Nicolas POELEN Encadrant Eric BOURREAU Dans le cadre du projet TER Licence 3 Informatique Ann e universitaire 2014 2015 IT Remerciements Nous tenons remercier Monsieur Eric Bourreau pour son temps ses id es et ses conseils qui nous ont permis de structurer nos pens es tout au long du projet Nous souhaitons aussi remercier Pierre Gilles Leymarie d veloppeur du projet Gladys pour la mise disposition de son projet ainsi que le temps qu il nous a accord pour r pondre nos questions Enfin nous voudrions remercier Mili Mona Salokannel pour la r alisation du logo du projet HI Table des matieres 1 Domaine d tude 2 1 1 Interactivit et objets connect s ll raras 2 12 Relier les objets connect s ba A AA AA 2 1 3 Le Multim dia au c ur du projet 2 2 Probl matique 4 eh Te Ge D MO ONY a u yp Du Mes A CS re h 4 2 1 1 Limitations sur le march hea a de AA AA a ae 4 2 1 2 Limitations physiques 4 2 2 Objets connect s u al s Yk a oe ae ee d 5 2 2 1 Interface homme machine ert oe ged ibas 5 222 AAAS cin a EN Sot m LAAN a SA 2 5 3 Choix et rapport technique 7 Salt KEE RS e 3 1 1 Classes du Leap Motion 44 408 2 44 04 eee e 7 3 1 2 Choix du
3. E ST 0 0T Jen ST z0 91T um sino LT Spollad e 9 ajeu asp nod ST Z0 ET USA ST ZO TT HOW sinofg seugyos 3e uolsb q AS HA ST 20 0T 1EW ST Z0 S0 nar sanof y s p s ll AnoN AY S1 20 90 u A St z0 z0 un1 sinof g sjuesixe sep auDieu2en A Al EH ST ZO T USA ST Z0 ZO um sanof OT spousd euer waive uonesiian p jjuelugauoaul ss8equene GT 10 0 uA ST TO ZZ nef sanof sep seydayoaJ s1s 1 ta AR br WaAWIS fTWaOAWITS mara Was irmwaa ns WaAW IS riwan uy wq a lt ayna a ae EJ ap uoN ei o SL4AAV9O SLJBNDE SLIBN EZ SLIBNOL SLIBNGO SLIENZO SLAPJEZ SLAPJ9L SLA9460 SLAPJZO SLUergZ SL uef spon FIGURE 10 Diagramme de Gantt XI R sum Le projet Leadys vise cr er une interface homme machine suppl mentaire pour le projet Gladys un assistant domotique intelligent en adoptant une approche simple et naturelle inspir e de la langue des signes Grace la technologie Leap Motion le but est d offrir une solution centralis e et innovante pour communiquer avec divers objets domestiques Une attention particuli re a t accord e a l tude des contraintes li es au p riph rique en termes de langages et de performance ainsi qu a la place qu il peut occuper dans le milieu florissant des appareils connect s Cette application a t d velopp e en utilisant les langages Java PHP JavaScript le SDK Leap Motion et la librairie Phue Mots cl s Leap Motion Gladys Domotiqu
4. 1 1 Interactivit et objets connect s L avanc e technique dans le domaine des objets connect s et leur pr sence de plus en plus affirm e sur le march a fait na tre le besoin de mettre diff remment en interaction l homme et la machine Les techniques habituelles de contr le de la machine ne sont pas toujours adapt es aux exigences des utilisateurs de ces nouveaux objets Les ordinateurs et les p riph riques qui leur sont habituellement associ s souris claviers et autres sont aujourd hui largement concurrenc s par les tablettes les smartphones mais aussi toutes sortes d objets du quotidien qui d sormais s int grent au sein d un r seau domestique Ces objets ont r invent notre mani re d interagir avec la machine tactile reconnaissance vocale reconnaissance de mouvements capteurs en tous genres C est dans ce cadre que nous avons voulu penser le Leap Motion non seulement comme un capteur de mouvements mais aussi comme un de ces objets connect s Il est noter que la reconnaissance de mouvements bien qu tant d j un domaine d tude puisant sa source dans les ann es 80 a connu des avanc es consid rables Taube des ann es 2000 et s est largement d mocratis e cette derni re d cennie notamment avec le succ s de la Kinect Le Leap Motion s inscrit donc aussi dans la lign e de ces capteurs accessibles au lt grand public gt et non un certain nombre d initi s et ce malgr sa vocatio
5. cifiques au Raspberry Pi qui peuvent parfois diff rer d autres distributions Linux en raison d une communaut plus pr sente et d une architecture CPU diff rente ARM 7 Pour fonctionner ce logiciel n cessite les paquets et pr requis suivants NodeJS et Apache afin d ex cuter le code c t serveur ventuellement WiringPi et reswitch Pi pour contr ler les GPIOs Le lecteur MOC pour la musique Les modules npm lt xmlhttprequest gt et lt googlemaps gt AJAX et g olocalisation L utilisateur www data ajout au groupe audio L utilisateur www data ajout aux sudoers notamment pour les fonctionnalit s de l interface web Tout ceci peut tre directement r alis en ex cutant avec les droits sudoer le script d installation lt install sh gt contenu dans le r pertoire racine de Gladys Toutefois quelques configurations suppl mentaires sont r aliser Premi rement il est parfois n cessaire de cr er un dossier cache pour le serveur de musique de MOC et de lui donner des droits de lecture et criture suffisants ceci afin de permettre l ex cution du serveur de musique et la lecture des playlists Pour cela il suffit d effectuer les commandes suivantes dans un terminal cd var www sudo mkdir moc sudo chmod R 755 moc Leadys M Campmas E Martel N No l N Poelen Un autre probleme rencontr avec MOC provient du code source En effet une er reur arithm tique a
6. langage final a Op che aye og a eg EE 7 3 2 Gladys Partie serveur lge Ae E e eee a s es e s 8 3 2 1 Pr requis mat riels lt u sod ae hae a AA 8 3 2 2 Paquets n cessaires et installation 8 3 2 3 Modifications des classes contr leurs 9 3 2 4 Phillips Hue et choix API cai Nu He En se 9 3 3 Partie li a A NS 9 O IS A SLIP ee G S Ay he T A a S S 9 33 2 o Z u hae ae ee PA A ee Soe a 10 4 Manuel d utilisation 13 4il EE alsa S n alg ee Ree ee Ea Bed ae Rats Pa 13 42 INSI Yaya s a phen EE ae 13 Ay Se ATCC O O ee ee A 13 MEN TE TE Ss voc A A A EN SE 14 IV Glossaire Circle gesture Mouvement circulaire horizontal de la main au dessus du Leap Motion GPIO Les ports GPIO General Purpose Input Output litt ralement Entr e Sortie pour un Usage G n ral sont des ports d entr e sortie tr s utilis s dans le monde des microcontr leurs IFTTT Web service permettant de cr er des chaines d actions conditionnelles d clench es par des changements sur d autres web services IF This Then That Key tap gesture Mouvement consistant amp mimer avec un doigt une frappe de clavier au dessus du Leap Motion Leadys Leap motion amp glaDYS Ensemble du projet tutor consistant en une interface de domotique bas sur le Leap Motion et d un assistant domotique intelligent Gladys NPM Gestionnaire de paquets officiel pour Node js fausse abr viation de Node Package
7. me accessible plus rapidement et proposant une interaction plus naturelle et personnelle avec Gladys C est ici que le Leap Motion intervient gr ce de simples mouvements et signes il serait possible de r aliser ces actions sans avoir passer par une interface web Le p riph rique serait connect un ordinateur et communiquerait via le r seau Wi Fi avec Gladys palliant ainsi le manque de puissance de calcul fourni par le Raspberry Pi pour faire fonctionner le Leap Motion En s inspirant de la langue des signes fran aise nous pouvons ainsi tablir des signes simples et facilement reconnaissables par le Leap Motion afin d indiquer Gla dys quel objet nous souhaitons utiliser nous avons ici un sujet En utilisant la col lection de mouvements comprise dans la SDK nous pouvons indiquer Gladys quelle action nous souhaitons effectuer avec cet objet nous avons alors un verbe En ajoutant ventuellement un chiffre nombre de doigts pour par exemple indiquer quelle lampe nous souhaitons activer nous avons un compl ment De cette mani re nous pouvons construire des phrases simples et ainsi interagir de mani re naturelle avec Gladys tout en proposant une alternative aux commandes vocales aux personnes sourdes muettes et en r solvant les probl mes rencontr s par le Leap Motion durant les phases de tests gr ce l utilisation des signes simples 4 IFTTT 2011 About IFTTT online lt https ifttt com wt
8. offrant une qualit et un confort sup rieurs voire un domaine compl tement nouveau o il deviendrait indispensable Un autre probl me rencontr par le Leap Motion et qui est directement reli au pr c dent est celui du manque d applications et de d veloppeurs En effet le manque de domaines d applications trouve aussi ses racines dans un manque de d veloppeurs et d id es dans un domaine relativement jeune r alit virtuelle motion tracking et cela se remarque par un manque de diversit dans les applications disponibles sur la boutique en ligne on y retrouve tr s souvent les m mes souris virtuelle jeux vid o dessin 2 1 2 Limitations physiques Problemes durant les tests D autres limitations peuvent se faire ressentir durant l utilisation de par son fonctionnement le Leap Motion ne percoit qu une image en 2D Si on pr sente ses mains ouvertes au dessus du Leap Motion paumes vers le sol l appareil ne d tectera que le premier niveau la partie inf rieure des mains Tout mouvement effectu au dessus des mains ne sera pas enregistr il en est de m me si des doigts se superposent c est alors une estimation gt de la position des doigts qui est alors calcul e par rapport a la derni re position connue qui m ne parfois des situations ambig es telles que des articulations d bo t es On peut alors difficilement faire reconna tre au Leap Motion des signes trop complexes un interpr teur compl
9. t commise par un d veloppeur dans les valeurs de r talonnage du mixeur audio r sultant en des valeurs num riques diff rentes dans MOC et l al samixer L erreur a t rapport e mais la correction n a pas encore t ajout e a la branche de distribution du paquet Afin de contourner ce probl me et de per mettre d augmenter le volume sonore du Raspberry Pi dans d autres applications nous avons d cid d inclure un script dans le r pertoire usr local bin Ce fichier nomm lt vol gt permet d augmenter le volume g n ral de l alsamixer via de tres simples commandes terminales telles que vol vol ou vol 60 Le code de celui ci est visible dans l annexe 3 2 3 Modifications des classes contr leurs Afin d offrir un maximum d interactions avec le Leap Motion quelques m thodes ont t ajout es aux contr leurs et classes de Gladys Ces commandes sont appel es via requ tes GET par le client Java et leurs codes sont disponibles en Annexes raison d un contr leur et d une classe par module Dans le cas du contr le des lampes et de la gestion de la m t o de nouvelles classes et contr leurs ont t impl ment s Le contr le des lampes fait appel API Phue dont l impl mentation est d taill e dans la partie suivante Le service de m t o fait quant lui appel PAPI json d Open Weather Map une application web permettant de g n rer des bulletins m t o pour les coordonn es fournies sur
10. une p riode param trable 3 2 4 Phillips Hue et choix d API Les lampes connect es Phillips Hue offrent diverses APIs dans une multitude de langages afin de pouvoir contr ler l intensit et la couleur des lampes Afin de s int grer naturellement dans le projet Gladys nous avons choisi la librairie Phue en raison de la richesse offerte par cette derni re Avant d int grer cette librairie il est n cessaire de r soudre les d pendances avec Composer puis d utiliser les scripts pr sents dans le dossier bin pour d tecter les lampes et cr er un utilisateur pour Gladys Il sera ensuite possible d utiliser cet utilisateur pour connecter Gladys aux lampes r cup rer les donn es relatives l intensit lumineuse la couleur et l tat des lampes et ainsi agir sur celles ci voir Annexe 9 3 3 Partie Client 3 3 1 Client C Pour crire ce programme nous nous sommes inspir s d un projet crit en Python permettant d utiliser VLC l aide du Leap Motion Celui ci proposait les mouvements suivants 2 GitHub 2013 sgmk Phue online lt https github com sqmk Phue gt consult le 18 avril 2015 3 GitHub 2013 michieldwitte Leap Motion VLCController online lt https github com michieldwitte LeapMotion VLCController gt consult le 5 f vrier 2015 Leadys M Campmas E Martel N No l N Poelen balayer vers la gauche pour passer la musique suivante balayer vers la droite pour r
11. 0 lt oluoraoS zrp drms Ft eznas D5 aznas s drms sdtms HdIMS HdxL 21n9529 dest E sr seanqseb suerzy ut sanasab zoz Aqdus spuey suery you JT urezjg z TTozaquoo Suez 19270194092 3 29S gt 2ue13 uo jsp IN MN L D MN u LU 1 ON m st 5 O r AO EEN SS IN IN IN t a lt co Or a m m m e 1 m TW M D NNN NNNM MMMM lt Ui Mi P Q C FIGURE 5 VLCController py VII lt php var vyv qgladys PHP class Music class php public function volume up exec yol wt SS r OV public function volume_down exec yol 7 public function forward exec mocp k 10 public function backward exec mocp k 10 FIGURE 6 Music class php lt php var wwvw gladys PHP controller music controller php SEN if isset user EET gt check_cookies l one GQ N P gt switch action f l O 1 Shane case toggle pause gt toggle_ pause rR F O 19 CO break case volume up gt volume_up gt gt va O N break case volume_down I gt volume_down Rp J Om Om break case forward gt forward KA break case backward gt backward break MN MN N N N N Oy Cn amp WHF O AO C0 FIGURE 7 music controller php VIII Constructor connection to hue light system function _ construct n l date_default_
12. 2 1 Interface homme machine De plus en plus pr sents les objets connect s connaissent un plein essor gr ce l mergence des smartphones et des r seaux domestiques Les objets de domotiques connect s se voient alors dot s d interfaces nombreuses et vari es interface web appli cations mobiles contr le vocal Limites du contr le vocal Un contr le vocal fiable fluide et r actif est le but r v dans le domaine des in teractions homme machine Toutefois le syst me n est pas encore v ritablement pr cis et 100 fiable notamment pour la langue fran aise et l interaction avec un ordinateur via ce syst me reste encore tr s primaire Il n est par exemple pas possible de communiquer et d activer des objets dans un domicile de mani re naturelle il faut encore se contenter de recherches internet et de commandes vocales limit es qui ne sont pas toujours comprises par la machine Ce dispositif reste bien videmment inaccessible aux personnes sourdes muettes il faut alors penser de nouvelles mani re d interagir avec son ordinateur 2 2 2 Gladys Principe un groom connect Gladys est un assistant domotique intelligent open source d velopp par Pierre Gilles Leymarie Ce programme fonctionnant sur un Raspberry Pi propose une alterna tive une intelligence artificielle contr l e par la voix en repensant le probleme ce n est pas l utilisateur de penser et donner des ordres mais l as
13. G PCT I SARG PCT t SOLD ABS PCT LEN 1 VAL MIN ABS SEXE q cset numid 1 leal FIGURE 9 vol bash first gt amp 2 0 9 elquodsipui uoo _ St go 60 um ST 0 z0 um sinof o des piezas siew steel z St v0 6t wig ST 0 90 UN sanoit zenop u SICUINES Pen ST r0 9z ug ST v0 90 un sanof 9T L poli9d P zz ST v0 0 USA ST E0 TE 1EW sinofy eseiyd eun p uonesi P Le osjau el Jnod sjusweAanow ST 0 0 UM ST 0 L7 Ven sanof z ap uonealo oz E ST v0 0 USA ST E0 L7 UBA sanof 9 9 apolad 6l uono des ST 0 97 ner ST 0 zz Wid s nofg eseiyd un p uonesi P Di aJalun ej ap uons 8 ap sjueweAnow ST 0 12 wes ST 0 6T ner sanof ap uone915 L sApelo anod asain ST 0 TZ wes ST 0 6T nar sinofg jnpow un p uonegi P 9L ST 0 97 ner ST 0 6T ner sinof 9 S apolad P SL uonoy de 1 ST 0 8T jem ST E0 ET USA sinofy eseiyd aun p uonesi Di L ST 0 ZT nef ST E0 TT 18W zumol z s pel dene 8elliy EL L ST 0 ZT nef ST 0 TT 18W sanofZ dLLH 3820s us aBesseg P a ST 0 8T Jet ST EO TT 18W sanof 9 Fapougd P LL LINV9 30 3NIWVI9VIO enbisnu Sp Inanas Un p 8 91jU02 ST Z0 Lz UBA ST ZO ez UM sinofs ap ng un p uone sjuawsanou sep ya ST z0 zz wid ST Z0 9T um sino 9 s8en ue np vous A 8 sApe o ap uonesedeid wanasqa st zo zz wid st z0 9T um sinof 9 78 uonel ezsu de Al
14. Gorilla arm gt http goo gl 9azy3p Site du projet Gladys Projet Gladys https ifttt com wtf Site officiel IFTTT Interaction entre appareils connect s http goo gl gj Yo8C Site officiel Leap Motion SDK amp documentation Leap Motion http goo gl D5v4Tx GitHub du projet Leap Motion VLCController Code source http goo gl kAknxn GitHub du projet Phue Code source https hc apache org Site officiel du projet Apache HttpComponents Librairie amp documentation Annexes 1 Diagramme de classes ono a a a HI 2 Diagramme de TEEN DS A Bo EENEG IV 3 Diagramme d activitf __ _ _ _ A A AA A are V 4 Diagramme des cas d utilisation VI 5 VEC Controller py yeu ll o punas aa EE Ei VII 6 Mu sic class Php r etsa a Me a esta a q E Aa eye Ge ta d VIII T tusrescontrollerph pe e E A A e BO a VII 8 Litas DO ASA a EE se ds See IX O ee X 10 Diagramme de Gantt ate e e e s XI IT 6ur135 dt AWENINPON UO LE SUE PTOA buT115 U40T 38 139puas Dron 12 uuo5 Bure 6ut115 159p UOTILUTISI ISS lt lt 1 l1l s gt gt Buriys uor3eurisag1iab lt lt 19 9b6 gt gt proa 6ut115 dpu dpynes lt lt 19 95 gt gt Bue dpuno6 lt lt 133396 gt gt proa Buti115 d1 dries lt lt 19 95 gt gt Bure d1196 lt lt 13 96 gt gt proa buta15 opnasd opnasglas lt lt 1 ll
15. IP du serveur Gladys ip le pseudo de l utilisateur sur Gladys pseudo et son mot de passe mdp Elle dispose de deux attributs suppl mentaires un CookieStore cookies qui sera rempli lors de la connexion Gladys et un String destination qui permettra lors des requ tes au serveur de sp cifier l adresse de destination de la requ te Apr s construction outre les getter setter la classe permet l acc s deux m thodes connect qui tablit grace au param tres de construction une connexion HTTP au serveur Gladys Une fois le lien tabli les donn es de connexion fournies sont sauve gard es via un cookie en l occurrence l attribut cookies de la classe Session En effet lorsque l authentification d un utilisateur est r ussie Gladys fournit des informations de connexions suppl mentaires qui seront alors n cessaires chaque requ te sendGet String action qui permet l envoi d un message action au serveur Gla dys C est ce message qui sera ensuite interpr t par Gladys et d clenchera les actions voulues Pour cela la m thode construit une requ te HTTP GET qui sera envoy e l adresse de destination pr d finie attribut destination A noter que la requ te n est possible que si le client s est d j authentifi auparavant via la m thode connect La v rification de la connexion se fait par l interm diaire du cookie stock dans l instance de Session cookies Modularit La cl
16. Manager Phillips Hue Dispositif d ampoules LED reli en WiFi a une passerelle elle m me reli e a son routeur Box Ces ampoules de 8 5Watts sont compos es de 3 LED RGB capables de reproduire 16 millions de nuances de couleurs Screen tap gesture Mouvement consistant mimer d un doigt le toucher d un cran tactile au dessus du Leap Motion SDK Acronyme anglais pour Software Development Kit Il s agit d une lt trousse de d veloppement logiciel gt un ensemble d outils permettant a des d veloppeurs de cr er de nouveaux logiciels Elles contiennent notamment de nombreux outils et codes d ja optimis s par un ensemble de programmeurs ou par les fabricants d un p riph rique Dans le cadre de notre projet nous utilisons notamment le SDK Leap Motion Swipe Gesture Mouvement vertical ou horizontal de la main au dessus du Leap Motion Leadys M Campmas E Martel N No l N Poelen Introduction Sorti en 2010 le Leap Motion est un capteur de mouvements qui permet d interagir avec un ordinateur Il peut potentiellement remplacer une souris une manette de jeu voire un clavier Il capte les mouvements des mains des doigts et des phalanges tout en prenant en compte leurs positions dans l espace distance par rapport au p riph rique l angle des articulations Ceci est rendu possible par la pr sence de 2 cam ras et 3 LED infrarouge Ainsi l ordinateur est capable de repr senter les mains dans un environnement en t
17. Poelen 3 2 Gladys Partie serveur 3 2 1 Pr requis mat riels Au niveau mat riel il est recommand de se procurer un Raspberry Pi version 2 type B notamment pour le gain de performance qu apporte le processeur Quad Core et la m moire vive suppl mentaire qui peuvent potentiellement permettre le support de modules et d application plus lourd dans le futur ainsi qu des utilisations dans d autres projets Par ailleurs cette version est commercialis e au m me prix que la version 1 et tendra a la remplacer ainsi que ses accessoires Le reste du mat riel n cessaire au fonctionnement de Gladys se limite de simples haut parleurs avec connecteur composite ou 3 5 mm 3 2 2 Paquets n cessaires et installation Le programme d installation de Gladys est disponible sur le site du d veloppeur et est d compresser dans le dossier var www du Raspberry Pi Le programme est ma joritairement compos de fichier PHP JavaScript mais on peut aussi trouver quelques scripts python servant principalement la communication avec des modules externes no tamment Arduino pour les capteurs de mouvements Le programme propose une interface Web utilisant le framework bootstrap le rendant accessible aussi bien sur ordinateur que tablette ou smartphone Il est recommand d utiliser un syst me d exploitation Raspbian pour Raspberry Pi a jour notamment en raison de l accessibilit et de la disponibilit des diff rents paquets sp
18. asse abstraite Module permet de g rer et d ajouter plus facilement des mo dules Elle poss de l adresse correspondant au module une HashMap associant un mou vement d fini par l num ration Movement avec une commande sous forme de String et fournit les m thodes permettant de r cup rer les diff rentes commandes ou v rifier leurs existences Lors de la cr ation d un nouveau module il faut cr er une nouvelle classe h ritant de Module et crire sa m thode abstraite subject recevant une frame et retour nant un bool en selon que le signe correspondant au module soit reconnu ou non L adresse et les commandes sont d finies en appelant le constructeur de Module Il ne faut pas ou blier d ajouter son module dans l num ration ModuleName et dans availableModules de LeapListener 4 Apache 2005 2015 The Apache HttpComponents project online lt https hc apache org gt consult le 8 mars 2015 12 Leadys M Campmas E Martel N No l N Poelen 4 Manuel d utilisation 4 1 Pr requis La partie cliente de Leadys doit tre install e sur une machine disposant au pr alable d une installation de la machine virtuelle Java et du logiciel Leap Motion Lors de l utilisa tion v rifier que les p riph riques audio et le Leap Motion Controller sont bien branch s et fonctionnels Les appareils domotique doivent tre connect s sur la machine Rasberry Pi dis posant de la partie serveur Pour insta
19. ava La classe MyLeapListener possede une m thode isConnected qui permet de savoir si le Leap Motion est connect onInit initialise les diff rents attributs de classe alarm qui permet de sauvegarder l heure actuelle en milliseconde subjectAcquired est initialis faux Elle va permettre de savoir si le sujet de la phrase a t reconnu initModules va initialiser l attribut availableModules une HashMap qui va associer la position un objet de la classe a appeler setSession prend en parametre un objet Session initialise la variable session Elle fait ensuite appel a la fonction initModules La m thode setCurrentModule prend en param tre une num ration de module Ce nom de module va alors tre recherch dans availableModules et cela va re tourner l objet cr lors de l initialisation de la hashMap Afin que les commandes soient envoy es au bon contr leur nous allons changer celui ci isSubjectAcquired est une m thode qui retourne soit vrai ou faux suivant la valeur de l attribut subjectAcquired 10 Leadys M Campmas E Martel N No l N Poelen setSubjectAcquired prend en param tre un bool en qui va tre affect l attri but subjectAcquired La fonction onConnect prend en param tre un Controller Elle va associer des gestes reconnus au Controller et les configurer comme par exemple la vitesse du geste Swipe et de KeyTap El
20. e Java PHP Phillips Hue Raspberry Pi Objets connect s langue des signes Summary The Leadys project aims to create an additional human machine interface for the Gladys project an intelligent home automation assistant with a simple and natural approach ins pired by sign language Using Leap Motion technology the goal is to provide a centralized and innovative solution to communicate with various connected objects Particular attention was paid to the device s constraint study in terms of language and performance and also to the position that it can occupy on the growing market of connec ted equipment This application was developped using Java PHP JavaScript Leap Motion SDK and the Phue Library Keywords Leap Motion Gladys house automation Java PHP Phillips Hue Raspberry Pi Connected devices Sign language
21. et de langue des signes devient alors presque impossible Sa trop grande pr cision l am ne parfois interpr ter des mouvements involon taires donnant alors des r actions qui n ont pas t voulues au d part Parfois le p riph rique ne reconnaitra pas un mouvement tout simplement cause d une mauvaise simulation d une partie de la main qu il ne voit plus ou bien parce que le mouvement n tait pas assez rapide pour tre reconnu Un certain apprentissage et un param trage plus fin des mouvements m me ceux d j existants dans la SDK est alors n cessaire Ce m me d faut l emp che d ailleurs d tre lt mobile gt pour tre par exemple accroch un T shirt Enfin l analyse des mouvements n cessite une grande puissance de calcul que ne peut offrir une tablette ou de l informatique embarqu e Il ne peut donc tre d port et utilis sur un Raspberry Pi m me dans sa deuxi me version 4 Leadys M Campmas E Martel N No l N Poelen Fatigue Un autre probleme rencontr lors d une utilisation continue est la fatigue inh rente au fait de devoir maintenir ses bras et mains en l air constamment Cet inconv nient appel syndrome lt Gorilla arm gt limite donc l appareil des mouvements brefs pour viter une g ne chez l utilisateur Pour cette raison et les raisons cit es pr c demment il est impossible de l utiliser dans un cadre th rapeutique 2 2 Objets connect s 2
22. evenir la musique pr c dente balayer vers le haut pour monter le volume balayer vers le bas pour baisser le volume lt key tap gt pour mettre en pause Nous avons alors adapt le programme notre projet pour pouvoir controler la musique avec le Leap Motion et avons ajout deux mouvements Faire des cercles dans le sens horaire pour avancer la lecture de 10 secondes Faire des cercles dans le sens antihoraire pour revenir 10 secondes en arri re screen tap gt arr terait la lecture Notre programme enverra des commandes au mocp car celui ci est d ja pr sent sur Gladys De plus mocp est plus l ger que VLC Le code source principal se situe dans la m thode onFrame de MyLeapListener une classe h ritant de Listener Celle ci se contente simplement de v rifier si les mouve ments pr c demment cit s sont reconnus et d envoyer des commandes avec une pause d une seconde apres chaque envoi La connexion au serveur est g r e par une classe VLCController renomm e par la suite plus logiquement MocpController 3 3 2 Client Java De nombreux problemes de compilation de portabilit et de compatibilit entre librairies survenus lors du d veloppement du programme sous Windows nous ont conduit a choisir un autre langage Nous avons donc r crit le programme en Java en raison de la portabilit de ce dernier et de sa syntaxe suffisamment proche du C MyLeapListener Transitions de C J
23. eyTapGesture mou vement du doigt comme si on frappait une touche et ScreenTapGesture mouvement du doigt en avant comme si on touchait un cran Il est possible de cr er ses propres mouvements en utilisant les informations des diff rents objets repr sentant les mains et ou outil A chaque rafraichissement du Leap Motion une nouvelle Frame est cr e au sein du contr leur Cet objet possede la liste des mains des outils et des mouvements un instant t Les Frames possedent d autres donn es mais celles ci ne seront pas utilis es dans notre programme 3 1 2 Choix du langage final Le SDK est disponible en plusieurs langages JavaScript C C Java Py thon Objective C Il peut aussi tre utilis avec les moteurs Unity ou Unreal Dans tous les langages l architecture est tres similaire et donc facilement adaptable Pour le client le Leap Motion est connect un ordinateur Pour que notre pro gramme puisse tre utilisable par un maximum de monde il faut que celui ci puisse tre ex cut sur les trois principaux syst mes d exploitation Windows OS X et Linux Le choix du langage s est donc port sur le C car c est un langage multiplateforme per formant fortement utilis et que nous connaissons bien 1 Leap Motion 2015 Installer es SDK Getting Started online lt https developer leapmotion com getting started gt consult le 18 janvier 2015 7 Leadys M Campmas E Martel N No l N
24. f gt consult le 2 mars 2015 Leadys M Campmas E Martel N No l N Poelen 3 Choix et rapport technique Notre projet comporte deux parties une partie serveur sur le Raspberry Pi qui r git la domotique ainsi qu une partie client qui reconna t les mouvements envoy s par le Leap Motion et qui envoie les donn es au serveur Nous avons d cid de nous s parer en deux groupes deux personnes s occupant du client et les deux autres du serveur 3 1 Le SDK 3 1 1 Classes du Leap Motion Le contr leur classe Controller se connecte au Leap Motion sa cr ation il r cup re alors toutes les donn es envoy es par le Leap Motion L couteur classe Listener fournit un m canisme bas sur les v nements pour r pondre aux changements d tat du contr leur il n est pas obligatoire Plusieurs couteurs peuvent s attacher au contr leur celui ci appelle alors les m thodes des couteurs lors qu un v nement survient Dans notre programme nous cr erons une nouvelle classe h ritant de Listener Les mains sont repr sent es par une classe Hand qui poss de des doigts Finger et le bras Arm ces doigts possedent aussi des phalanges Bone Une classe Tool permet de g rer les outils Chacun de ces objets enregistre la position et l angle de ce qu il repr sente Le SDK Leap Motion d finit quatre classes pour les mouvements CircleGesture mouvement circulaire SvipeGesture mouvement rectiligne K
25. gt 3 Lou sduu 1 ajnoqe sdua3 equpa 3833 D ns 3839 awe ajadn3a1 t 1v1 FIGURE 3 Diagramme d act Utilisateur Pause Play Augmenter le son Diminuer le son Passer la chanson suivante Contr ler la musique Passer la chanson pr c dente Avancer Rembobiner Allumer les lampes Eteindre les lampes Contr ler les lampes Augmenter l intensit Diminuer l intensit Changer la couleur de la luminosit Connaitre la m t o du jour Consulter la m t o Connaitre la m t o des jours suivants Augmenter le son Diminuer le son FIGURE 4 Diagramme des cas d utilisation VI qutad pu s z rTToaaqauoooTaA JT sS sent samt uzeTe gT s AE ME gt uzerTe jT s pue dul NAJAS Hd4L 21n1529 deet dK43 znas D FT ENZ pu s z rTozquoooTaA JTeS SuUTI sut DISTIR JIeSs UT SUTA gt gier JIeS pue dWL AAA AdAL eanqsep deeT adAj eanqseb sr pues 1a2TTO1IJUO0JZITA JTOSS utd sent sut wreTe JTes SuT2 sut gt wae 3 9s pue G 0 gt TIluorqoS arp drms y PUSS TST TOAWUODOTA ZJZT S qutad SuTI sut WIETE FTS urra SUT gt WAeTe JTes pue 50 lt T JUOTIDIATP dIMS a pues IST TOIIJUOJOTA JTOS quid urr3 urr3 uiere JIesS SUT sut gt WIETE JIeS pue G0 gt 0 JUOTIDIATP dTMS pues 12 TOI1IUOJOTA JTOSS qutad JOTT 20177 Mise uzeTe jTI s urra emt gt UIPT9 FTES GS
26. le va initialiser l attribut isConnect vrai Les m thodes onDisconnect et onExit prennent en param tre un Controller La premi re affiche un message si le Leap Motion est d connect Alors que pour la deuxi me l affichage se fera si l on quitte le programme La m thode sendEvent prend 2 param tres un message et une commande Elle va affecter alarm l heure courante en lui ajoutant 600 millisecondes et afficher le mouvement re u dans le terminal La commande va tre envoy e Gladys Nous mettons ensuite l attribut subjectAcquired faux Signes et syst me de phrases Pour viter que le programme ne reconnaisse des sujets par inadvertance la classe MyLeapListener stockera les sujets reconnus sur les 12 derni res frames et consid rera qu un sujet est effectu par l utilisateur que s il est reconnu sur au moins 10 frames Les valeurs peuvent videmment tre modifi es moduleFrame est le tableau qui stocke les sujets ModuleName reconnus aux derni res frames counter est la variable qui indique la position courante dans le tableau incr ment chaque frame et revient 0 une fois arriv la fin du tableau nbFramePerModule est une table de hachage qui indique pour chaque ModuleName combien il y a d occurrence dans le tableau Sa pr sence permet d viter de multiples boucles sur moduleFrame Le code onFrame est maintenant s par en quatre nouvelles m thodes
27. ller et configurer le serveur veuillez consulter la documentation de Gladys en suivant ce lien http gladysproject com developpeur 4 2 Musique Sujet Pour le module Music l utilisateur doit r aliser un signe qui permet de commen cer une phrase Celui ci correspond au sujet Musique qui est quivalant au mot lt Mu sique gt dans la langue des signes fran aise Le signe correspond l index tendu sur la main gauche ou droite Verbes Les verbes sont Swipe Gesture vers le haut augmenter le son Swipe Gesture vers le bas diminuer le son Swipe Gesture vers la gauche passer a la chanson suivante Swipe Gesture vers la droite passer la chanson pr c dente Key tap play pause Circle Gesture dans le sens horaire avancer Circle Gesture dans le sens antihoraire rembobiner 4 3 Lumiere Sujet Pour d buter une phrase pour le module Light Putilisateur doit effectuer un signe correspondant au sujet Lumiere ce signe correspond au signe du mot lt Lampe gt dans la langue des signes fran aise Ce signe s effectue en tendant les cing doigts de la main paume orient e vers le p riph rique 13 Leadys M Campmas E Martel N No l N Poelen Verbes Les verbes disponibles pour ce module sont au nombre de cinq Swipe Gesture vers le haut augmente l intensit de la lumiere Swipe Gesture vers le bas diminue l intensit de la lumi re S
28. n qui se veut encore exp rimentale et en attente de d veloppements 1 2 Relier les objets connect s La multiplication des objets connect s a oblig les d veloppeurs repenser le r seau domestique qui autrefois repr sentait la plupart du temps un simple lien entre des ma chines ayant des utilisations restreintes au lt domaine informatique gt et qui aujourd hui tend a devenir un v ritable r seau de lt domotique gt Les routeurs ou les ordinateurs per sonnels ne sont pas forc ment les plaques tournantes les mieux adapt es a ces r seaux De plus en plus de serveurs et de centrales de contr le d di s g rent les diverses interactions des utilisateurs avec les objets connect s L arriv e sur le devant de la scene du Raspberry Pi un nano ordinateur concu par David Braben a t la source de nombreux d veloppements et sa versatilit l a mis en position de pouvoir jouer le r le de lt plate forme de contr le gt reliant ces divers objets connect s Aussi il existe d ores et d ja des d veloppements logiciels sp cialis s dans le domaine de la domotique con u pour fonctionner sur un Raspberry Pi tel que Gladys le groom connect que nous avons utilis au cours de ce projet et dont le fonctionnement sera explicit plus en d tail dans la partie suivante 1 3 Le Multim dia au coeur du projet Le Leap Motion et le Raspberry Pi sont tous les deux impliqu s dans de nombreux projets li s au secteur du mul
29. rmet une interaction simple et naturelle avec Gla dys la rendant accessible tous tant par des programmeurs chevronn s que par des utilisateurs ing nus lors de pr sentations ou journ es portes ouvertes D un point de vue plus thique Leadys rend aussi ces technologies de contr les accessibles aux personnes sourdes malentendantes et muettes Ce qui est impossible avec des commandes vocales dont le d veloppement est toujours en cours mais dont la fiabilit n est pas encore opti male Enfin si les difficult s techniques rencontr es avec le Leap Motion nous ont contraints a choisir le confort d utilisation via des gestes simples au d triment de mouvements plus vari es complexes et pr cis cette m me simplicit rend d sormais le programme plus fa cile d acc s a d autres d veloppeurs En effet grace au principe de modularit d velopp des d veloppeurs du projet Gladys peuvent d sormais participer a l expansion des ca pacit s de Leadys en leur permettant de rapidement d velopper de nouveaux modules contr lant encore plus d objets connect s C est d ailleurs dans cette optique que le projet Leadys sera partag sur le site de la communaut du projet Gladys 15 Sitographie Site Type de site Information recherch e http naturalpad fr leap motion Site Natural Pad Applications th rapeutiques possibles http goo gl 62gU98 Magazine de vulgarisation scientifique Effet lt
30. rois dimensions et d effectuer des actions en fonction des mouvements de celles ci Nous avons donc tudi les avantages et les inconv nients de cet objet Ensuite nous avons cherch une application possible en nous inspirant de ce qui existe d ja Nous avons choisi de d velopper une application qui permet de contr ler des objets connect s situ s dans une maison Celle ci va permettre de controler de la musique des lampes connect es a l aide de diff rents gestes inspir s de la langue des signes et aussi de consulter la m t o Elle pourra tre utilis e sur les diff rents syst mes d exploitation car nous avons choisi Java comme langage pour la portabilit de application Le but de ce projet est ainsi de d montrer qu il est possible d allier le Leap Motion a d autres appareils connect s afin d am liorer l exp rience utilisateur et d en faire une interface homme machine simple et lt naturelle gt Il sera d ailleurs associ un Raspberry pi o un assistant domotique intelligent Gladys sera install et prendra en compte les mouvements qui seront effectu s au dessus du p riph rique Apr s une pr sentation du domaine d tude nous tudierons la probl matique li e l utilisation du Leap Motion et analyserons ses possibles impl mentations Enfin nous aborderons nos choix en terme de d veloppement avec le rapport technique Leadys M Campmas E Martel N No l N Poelen 1 Domaine d tude
31. s gt gt But115 opn sd1 5 lt lt 13 9b gt gt lt J369 UT Swena1n10 gt deWuseH 6uriys dpu Buriys opn sd uoTss s lt lt 10 3M1 5U0 gt gt BuT1 S UOT LUT SDP 210 S2TH00 S3TA00 Bure dr Butsis dpu Buriys opnasd lt 3 1NpoOW awena1npop gt deyuseH Dron aWe 14 3We11 q195 PTOA 193 qnspasde139uTj Dron awe14 awWe1 328 qns32833p PTOA a3WeJ4 3weJJ awes3410393 qns proa but135 pu2 6ut135 6su jusn3puss uea100q pastnboyqz2ef qnsst lt lt 19 39b6 gt gt PTOA AWENS NPON POW 31NPOYNUI11NJISS lt lt 19 95 gt gt PTOA UOTSS3S S UOTSSISISS lt lt 1 ll s gt gt PTOA s31NPOWATUT uea100q pa3123uu0 ST lt lt 13 13b gt gt 0007 uol 2dTMSUOTITSULA 13WTI OOST uol 435 qnsqi AuoTl1TsSueil uT1 000 uol qua jxepewti OT AUT 29a eqso4uTWawes 4qu ZI QUI 1eUTS 211815 ueijqu 1 1npoklli d ueijqu Jawena1npoy ewe1421npou JUT 43j uno uoTssas uoTssas 31MPOW 21npoy u211n2 531Np0y 91 98118 Ae ues100q p iTnb5v33 qns uea100q p2 2auu02 Huo drmsuwe e 5uol 1 u lsr1de T 0W PTOA 181101 U0 3 awes4u0 Dron 131101 U0 gt 1TX3U0 PTOA 191101 U09 2 28UU02STqU0 PTOA 191101 U03 2 3 TUIU0 PTOA 1311013U0 3 1 gt 3uu07u0 i u lsT1 wee 3SIMH2072 Y31NNOI 3SIMHDOT dYL A 1331 3dIMS LHOIY 3dIMS NMOG 3dIMS dN 3dIMS syiu u Aowl lt lt uoT1ei unu gt gt
32. sistant de pr dire ses besoins et de r agir sans intervention de l homme 1 David Pogue 2012 Why Touch Screens Will Not Take Over online Scientific American lt http www scientificamerican com article why touch screens will not take over gt consult le 18 jan vier 2015 2 NaturalPad 2014 TEST Le Leap Motion online lt http naturalpad fr leap motion gt consult le 8 f vrier 2015 3 Gilles Leymarie 2015 Gladys Project online lt http gladysproject com gt consult le 5 f vrier 2015 Leadys M Campmas E Martel N No l N Poelen Prenons un sc nario classique A 7h l utilisateur doit tre r veill Gladys d marre un r veil avec une musique et lui donne la m t o Il est 18h Putilisateur rentre du travail Gladys va son arriv e allumer les lumi res et d marrer une liste de musique L assistant propose ainsi une mani re de centraliser et connecter les objets connect s tout en automatisant leurs activations et leurs associations Il peut aussi tre utilis avec des services similaires tels qu IFTTT Ajout d une interface plus naturelle Leadys Toutefois un probleme peut se poser qu en est il des impr vus Comment pourrait on teindre et rallumer les lumi res arr ter et reprendre la musique la vol e Gladys propose d ores et d j une interface Web permettant de r pondre ce be soin Toutefois ne pourrait on pas disposer d un autre syst
33. tim dia En effet ce secteur d activit est tres avide de Leadys M Campmas E Martel N No l N Poelen nouveaux moyens d interaction et contr le d autant que ses finalit s sont vari es et font souvent appel a la cr ativit de l utilisateur Aussi de nombreuses applications amen es a inclure des interactions sonores ou visuelles utilisent le Leap Motion pour son interactivit ludique avec l utilisateur ou le Raspberry Pi pour sa versatilit et sa portabilit qui lui permettent de s adapter facilement au contexte d une installation Certains sites recensent m me ces projets multim dias et pr sentent des innovations intercroisant divers objets connect s Notre projet fait appel a ce lien fort existant entre les objets connect s et le secteur du multim dia puisqu il se propose de controler un lecteur audio et un systeme d clairage Leadys M Campmas E Martel N No l N Poelen 2 Probl matique 2 1 Le Leap Motion 2 1 1 Limitations sur le march Le Leap Motion souffre depuis son lancement d une difficult s implanter Des difficult s qui s expliquent notamment par un manque de couverture m diatique il reste encore un p riph rique m connu du grand public alors que son utilisation et m me son packaging l y destine Il est notamment difficile de lui trouver une utilisation pour laquelle il deviendrait v ritablement utile un domaine o il se substituerait un outil existant en
34. timezone_set Europe Paris connexion la base de donn s gt client new Phue Client 192 168 1 5 mickaelataladys Getter public function getClient return gt client Turn on off the light public function toggle_light l foreach if gt gt setOn false jelse gt setOn true Brighten the light by level of 50 on 255 public function brighten_light l a mm D Mn d foreach gt client gt getLights as gt getBrightness On Oh On Oh On ao gt setBrightness Change colour tint from blue to red public function change color right l foreach gt client gt getLights as gt getHue FIGURE 8 Light class php IX AN CE N N N N N N N N bin bash Found on htt usage Usage basename 0 N gt amp 2 where N is a whole number between LO ument must be one of empty m I I 0 9 11 usage ARG 1 Number argument 9 11 Must be betveen LO and HI ARG gt LO ARG lt HI usage sudo apt get install alsa utils bin p min bin l bin p max bin p values 0 9 MIN gt MAX VAL lt MIN VAL gt M Error could not get the right values from MIX output gt amp 2 i LEN 0 LEN MAX N i ABS 0 ABS VAL MIN i PCT PCT 100 ABS LEN SAR
35. uea100q 12afqns ueajoog 193 qns ues100q 193 qns ue looq 35TM4901 13 UN0 Sey ue3100q 35TM201 5ey uea100q de Aaysey uea100q 1ubTydImssey uea100q i eTdTMssey uea100q umogdTmssey uea100q but11s 2STMY201218qun02 But135 2STMY2012 But135 dejAox Suri35 1ubryadims bura3s 114a7adrms Bure umogadtrms Bure dnadims Butsis sseippyaeb 6ut435 4pe Buts3S5 99 Buts35 9 6uts3S5 14 Bur115 1s bur115 15 dndrwsseu lt lt 19 9b gt gt lt lt 19 9b gt gt lt lt 19 9b gt gt lt lt 19 9b gt gt lt lt 19 9b gt gt lt lt 19 9b gt gt lt lt 19 9b gt gt lt lt 19 9b gt gt Buriys ps Buriys ns lnpoM lt lt iol3nl1suo5 gt gt Buriys ss ippe lt BuTIIS SjuawaAopj gt deyyseyH 5q18A FIGURE 1 Diagramme de classes II en adue7 Is e uanay anbisnw Is LTY afessayy UBA ag nuuodad JuaWaAnow IS 1dO lt quawaanoyy nuuodad aubis Is 1dO kl aubis due ron S pelo Wa een ies dea y NRW Diagramme de s quence FIGURE 2 IV Q nuuo gt u uou zu w aanow onu apueuuuuos JuauwaAnou 2136 nuuo5 ihu ui Anouu SPUBWLUOD l0AUu nuuoda uou subis 2d13A 3783 ua assed lt gt nuuo2s1 aubis 3 fns 3239 ua assed a no
36. wipe Gesture vers la gauche droite change la couleur des ampoules key tap allume teint la lumi re 4 4 M t o Sujet Pour le sujet du module Weather l utilisateur doit effectuer le signe correspondant au sujet M t o ce signe s inspire du mot lt Vent gt dans la langue des signes fran aise Il s effectue en tendant l index et le majeur en V paume orient e vers le p riph rique Verbes Les verbes disponibles pour ce module sont au nombre de quatre Swipe Gesture vers le haut augmenter le son Swipe Gesture vers le bas diminuer le son Swipe Gesture vers la droite donne la m t o du lendemain key tap donne la m t o du jour 14 Leadys M Campmas E Martel N No l N Poelen Conclusion L explosion du march des objets connect s a permis l mergence de nouvelles technologies de nouveaux moyens de communications aussi nous permet elle de penser a de nouvelles approches dans le milieu des interfaces homme machine Leadys s inscrit ainsi dans cette d marche et offre une nouvelle mani re plus natu relle d interagir avec ces nouveaux objets du quotidien gr ce des mouvements inspir s de la langue des signes francaise Il est aussi noter que le projet peut tout aussi bien tre adapt en adoptant la m me approche et strat gie avec d autres objets de r alit virtuelle r alit augment e ou d interface plus pr cise L utilisation du Leap Motion pe

Download Pdf Manuals

image

Related Search

Related Contents

Eliet Superprof Shredder Operators Manual (pdf  Voyager Focus UC  Primus 25 advanced® - PEQLAB Biotechnologie  SMH5 FM - Sena Technologies, Inc.  Descarga Manual de Intrucciones  VIAIR 90111 Use and Care Manual    NewAir LX-100 User's Manual  Nokia N81 Brown  

Copyright © All rights reserved.
Failed to retrieve file