Présentation finale de Travail de Bachelor Multitouch control for 3D user interfaces Contrôle multitouche pour interface utilisateur 3D Présentation finale de Travail de Bachelor Michael Gumowski – 8 avril 2010
Plan de la présentation Introduction Démonstration Cahier des charges Vidéo Résumé Bilan Objectifs ciblés Satisfaction des objectifs Gestuelle Difficultés rencontrées Manipulation de BATIC3S Perspectives et améliorations Communes aux GUIs 3D Conclusion Spécifiques à BATIC3S Gestes adoptés Implémentation Approche client serveur Protocole TUIO Contraintes temps-réel Traitement des données Reconnaissance des gestes CLICK Cahier des charges CLICK Gestuelle CLICK Implémentation CLICK Scénario d’utilisation CLICK Conclusion 08/06/2010
Cahier des charges Résumé : Points cruciaux Introduction Cahier des charges Résumé : Ajout de fonctionnalité à BATIC3S Manipulation de la GUI 3D grâce au contrôle multitouche A l’aide du logiciel gratuit et open source Wiimote Whiteboard Basé sur l’utilisation de périphériques spécifiques Points cruciaux Définir une gestuelle précise et intuitive Contrôle multitouche de la GUI 3D et navigation dans les menu CAHIER DES CHARGES !! CLICK Manipulation GUI 3D multitouche CLICK Thx WWB CLICK basé sur utilisation périph spécif. CLICK AVEC points cruciaux CLICK gestuelle precis + intuitif CLICK contrôle MT de la GUI 3D + navig. menu 08/06/2010
Modularité / Réutilisabilité Introduction Objectifs ciblés Cross-platform Coût Utilisabilité Rapidité Précision Simplicité Modularité / Réutilisabilité CAHIER DES CHARGES, OBJECTIFS CLICK cross-platform :: JAVA rester cross-platform CLICK Coût :: minimum possible ave meilleurs rapport exigences/prix CLICK Utilisabilité :: degré un produit peut être utilisé par des utilisateurs identifiés pour atteindre buts définis avec EFFICACITE, EFFICIENCE, SATISFACTION dans un contexte d’utilisation spécifié Utilisabilité doit pas diminuer !! CLICK Rapiditié :: temps de réaction CLICK Precision :: enough précis pour remplacer souris CLICK Simplicité :: gestuelle CLICK Modularité / réutilisabilité :: permettre extension futur / réutilisation NEXT == GESTUELLE 08/06/2010
Manipulation de BATIC3S – Gestuelle Commune aux GUIs 3D Sélection Rotation Translation Zoom / Dé-zoom Spécifiques à BATIC3S Affichage des Informations Entrée / Sortie des objets 3D Gestes communs Utilisabilité augmentée Recherche de gestes Simplicité GESTUELLE MANIPULATION COMMUN CLICK 1-4 SELECTION ROTATION TRANSLATION ZOOM/DEZOOM CLICK commun CLICK utilisabilité ++ SPECIFIQUE CLICK display infos CLICK i/o object CLICK recherche geste CLICK simplicité NEXT == DESCRIPTION GESTES 08/06/2010
Gestes adoptés – Gestuelle Sélection d’un objet 3D Équivalent au « clic » de souris 1 point de contact Curseur statique Signal « court » Clignotement de l’objet 3D sélectionné Vue centrée sur l’objet 3D SELECTION Equiv click 1 pdc CLICK diagramme CLICK schéma CLICK descr :: objet clignote CLICK descr :: centrage 08/06/2010
Gestes adoptés – Gestuelle Rotation autour d’un objet 3D 1 point de contact Curseur mobile Signal « long » Rotation en gardant l’objet centré ROTATION - 1pdc CLICK diagramme CLICK schéma + ANIMATION CLICK descr :: rotation + centré CLICK effet 3D 08/06/2010
Gestes adoptés – Gestuelle Translation 2 points de contact Curseur statique Zone spéciale Signal « long » Curseur mobile Signal « long » Translation de la caméra TRANSLATION - 2pdc CLICK diag 1 CLICK + CLICK diag 2 CLICK schema + ANIMATION CLICK descr :: translation camera CLICK effet 3D 08/06/2010
Gestes adoptés – Gestuelle Zoom / Dé-zoom 2 points de contact Curseur mobile Signal « long » Curseur mobile Signal « long » Eloignement des points Zoom Rapprochement des points Dé-zoom ZOOM -2pdc CLICK diag1 CLICK + CLICK diag2 CLICK schéma CLICK eloignement points = zoom CLICK rapprochement point = dezoom CLICK effet 3D 08/06/2010
Gestes adoptés – Gestuelle Affichage des informations d’un objet 3D Équivalent au « clic » prolongé de souris 1 point de contact Curseur statique Signal « long » Affichage de la fenêtre d’information de l’objet 3D Vue centrée sur l’objet 3D DISPLAY INFOS 1er geste specif equiv click long 1pdc CLICK diagramme CLICK schema CLICK affiche info CLICK centrage vue CLICK effet 08/06/2010
Gestes adoptés – Gestuelle Entrer / Sortir d’un objet 3D 2 points de contact Nécessite un objet sélectionné Curseur statique Signal « long » Curseur statique Signal «court» Points proche Entrée Point éloigné Sortie I/O object 2pdc nécessite objet sélectionné CLICK diag 1 CLICK + CLICK diag 2 CLICK schéma CLICK point proche = entrée CLICK point loin = sortie CLICK effet NEXT == IMPLEMENTATION 08/06/2010
Approche Client-Serveur Initialement Implémentation Approche Client-Serveur Initialement Intégration des éléments de Wiimote Whiteboard dans BATIC3S Finalement Utilisation de Wiimote Whiteboard comme serveur d’événements Réceptionne les informations des curseurs actifs Transmet les données Utilisation de BATIC3S comme client Analyse l’évolution des données des curseurs Agit sur la scène 3D IMPLEMENTATON :: CLIENT-SERVEUR Init : CLICK integrer element WW BATIC3S Final: CLICK WW = serveur events pour CLICK réceptionne infos / curseur CLICK transmette données CLICK BATIC3S = client CLICK analyse évolution curseur CLICK agit sur scène 3D NEXT == TUIO 08/06/2010
Protocole TUIO – Implémentation CLICK SCHEMA TUIO CADRE de DVP qui définit un PROTOCOLE COOMUN + API pour les surfaces multitouche MANIPULATION points (curseurs) + objects Camera + tracker = aquisitions infos Protocole TUIO = encapsulage / formalisation des données Application + projecteur = effets NEXT == TUIO POUR PROJET 08/06/2010
Protocole TUIO – Implémentation IGNORE object, utilise que points Camera = wiimote BT protocole vers adaptateur USB API WW WW TUIO PROTOCOLE BATIC3S BATIC3S + PROJO = effet NEXT == BUFFER 08/06/2010
Contraintes temps-réels – Implémentation Traitement des données Système de buffer cyclique Peu de point stockés Traitement continu de données Le pointeur d’écriture remplit le buffer Le pointeur de lecture vide le buffer ID de session des curseurs actifs Position d’attente Buffer cyclique empty null Pointeur de lecture Pointeur d’écriture CONTRAINTE TEMPS REEL TRATEMENT DATA Buffer cyclique CLICK ID de session CLICK position attente CLICK buffer CLICK pointeur écriture CLICK pointeur lecture CLICK peu points stocké CLICK écriture = remplir CLICK lecture = vider NEXT == buffer complet 08/06/2010
Contraintes temps-réels – Implémentation Traitement des données Système de buffer cyclique Dimension : N x M (paramétrable) N = nombre de points (colonne), M = nombre de curseurs (ligne) 1 p11 p12 null p7 p8 p9 p10 empty null 2 null p2 p3 p4 p5 CLICK ANIMATION CLICK système NxM, cas exemple, N = 4, M = 10 1 ligne = 1 curseur actif NEXT == ARBRE DECISION 3 p1 p2 p3 null 08/06/2010
Contraintes temps-réels – Implémentation Reconnaissance des gestes Arbre de décision Feuilles = Gestes Nœuds = Tests à solution binaire Avantages Facile à intégrer au code Evite les ambigüités Simples et rapides IMPLEMENTATION, CONTRAINTE TEMPS REELS CLICK arbre de decision CLICK feuille = geste CLICK nœud = tests avec sol binaire CLICK DIAGRAMME CLICK avantage Facile intégrer code Simple + rapide Eviter ambigüité NEXT == DEMO 08/06/2010
Présenter un exemple d’utilisation classique Démonstration Présenter un exemple d’utilisation classique SCENARIO UTILISATION Montrer :: Exemple utilisation classique, cosmicRack Illustration fonctionnement client/serveur Manipulation multitouche NEXT == BILAN 08/06/2010
Satisfaction des objectifs Bilan Satisfaction des objectifs Objectif Commentaires Satisfaction Positifs Négatifs Cross-Platform Coût Utilisabilité Rapidité Précision Simplicité Modularité / Réutilisabilité Java eclipse API spécifiques aux OS 90% Coût des périph. (wiimote, Bluetooth, …) 100% Buffer Arbre de décision 100% Limité aux gros objets Facteurs extérieurs Opérationnel 60% Gestes intuitifs Mouvement simples Apprentissage rapide 3 CLICK cross-platform 3 CLICK cout 3 CLICK utilisabilité / rapidité 3 CLICK utilisabilité / précision 3 CLICK utilisabilité / dimplicité 3 CLICK modularité NEXT == DIFFICULTE RENCONTREE 1-2 points de contact 95% Protocole TUIO Arbre de décision Intégration « propre » 100% 08/06/2010
Difficulté rencontrées Logiciel Matériel et périphériques Bilan Difficulté rencontrées Logiciel Fonctionnement de BATIC3S Matériel et périphériques Instabilité au niveau infrarouge compatibilité sur tous les OS Recherche d’informations sur les techniques de contrôle multitouche CLICK logiciel :: fonctionnement BATIC3S CLICK matériel et périphérique Instab IR Intercompatibilité OS CLICK recherche infos technique sur contrôle MT NEXT == AMELIORATION 08/06/2010
Perspectives et améliorations Serveur TUIO Structure de BATIC3S Bilan Perspectives et améliorations Serveur TUIO Structure de BATIC3S Gestuelle augmentée Système de buffer CLICK serveur TUIO CLICK structure BATIC3S CLICK + gestes CLICK buffer NEXT == CONLUSION 08/06/2010
Reverse engineering (merci BATIC3S) Technologies multitouches Conclusion Expérience acquise Gestion de projet Génie logiciel Reverse engineering (merci BATIC3S) Technologies multitouches Importance De suivre une méthodologie de développement De l’architecture logicielle De la documentation Penser à ceux qui pourraient reprendre le travail! XP : CLICK gestion projet CLICK genie log CLICK reverse engineering CLICK technologie MT IMPORTANT CLICK suivre methodologie dvp CLICK architecture logicielle CLICK documentation CONCLUSION PENSER AUX SUIVANTS !!! NEXT == MERCI 08/06/2010
Merci de votre attention! Conclusion Merci de votre attention! 15/04/2010