Multitouch control for 3D user interfaces Contrôle multitouche pour interface utilisateur 3D...

Preview:

Citation preview

Multitouch control for 3D user interfacesContrôle multitouche pour interface utilisateur 3D

Présentation finale de Travail de Bachelor

Michael Gumowski – 8 avril 2010

2

Plan de la présentation

Introduction Cahier des charges

Résumé Objectifs ciblés

Gestuelle Manipulation de BATIC3S

Communes aux GUIs 3D Spécifiques à BATIC3S

Gestes adoptés

Implémentation Approche client serveur

Protocole TUIO Contraintes temps-réel

Traitement des données Reconnaissance des gestes

Démonstration Vidéo

Bilan Satisfaction des objectifs Difficultés rencontrées Perspectives et améliorations

Conclusion

08/06/2010

3

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

menu08/06/2010

4

Introduction

Objectifs ciblés Cross-platform Coût Utilisabilité

Rapidité Précision Simplicité

Modularité / Réutilisabilité

08/06/2010

5

Manipulation de BATIC3S – Gestuelle

Commune aux GUIs 3D Sélection Rotation Translation Zoom / Dé-zoom

08/06/2010

Spécifiques à BATIC3S Affichage des

Informations Entrée / Sortie des

objets 3D

Gestes communs Utilisabilité

augmentée

Recherche de gestes Simplicité

6

Gestes adoptés – Gestuelle

Sélection d’un objet 3D Équivalent au « clic » de souris 1 point de contact

08/06/2010

Curseur statique

Signal « court »

• Clignotement de l’objet 3D sélectionné

• Vue centrée sur l’objet 3D

7

Gestes adoptés – Gestuelle

Rotation autour d’un objet 3D 1 point de contact

08/06/2010

Curseur mobile

Signal « long »

• Rotation en gardant l’objet centré

8

Curseur statique

Zone spéciale

Signal « long »

Gestes adoptés – Gestuelle

Translation 2 points de contact

08/06/2010

Curseur mobile

Signal « long »

• Translation de la caméra

9

Curseur mobile

Signal « long »

Gestes adoptés – Gestuelle

Zoom / Dé-zoom 2 points de contact

08/06/2010

Curseur mobile

Signal « long »

• Eloignement des points Zoom• Rapprochement des points Dé-zoom

10

Gestes adoptés – Gestuelle

Affichage des informations d’un objet 3D Équivalent au « clic » prolongé de souris 1 point de contact

08/06/2010

Curseur statique

Signal « long »

• Affichage de la fenêtre d’information de l’objet 3D

Vue centrée sur l’objet 3D

11

Curseur statique

Signal « long »

Gestes adoptés – Gestuelle

Entrer / Sortir d’un objet 3D 2 points de contact Nécessite un objet sélectionné

08/06/2010

Curseur statique

Signal «court»

• Points proche Entrée• Point éloigné Sortie

12

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

08/06/2010

13

Protocole TUIO – Implémentation

08/06/2010

14

Protocole TUIO – Implémentation

08/06/2010

15

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

08/06/2010

null null null null null null null null null nullempty

ID de session des curseurs actifsPosition d’attente Buffer cyclique

Pointeur d’écriturePointeur de lecture

16

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)

08/06/2010

null null null null null null null null null nullemptyp11 p12 null null null null p7 p8 p9 p10

null p2 p3 p4 p5 null null null null null

p1 p2 p3 null null null null null null null

1

2

3

17

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

Contraintes temps-réels – Implémentation

08/06/2010

Reconnaissance des gestes

18

Démonstration

Présenter un exemple d’utilisation classique

08/06/2010

19

Bilan

Satisfaction des objectifs

08/06/2010

ObjectifCommentaires

SatisfactionPositifs Négatifs

Cross-Platform

Coût

Utilisabilité

Rapidité

Précision

Simplicité

Modularité / Réutilisabilité

• Java• eclipse

• API spécifiques aux OS

• Coût des périph. (wiimote, Bluetooth, …)

• Buffer• Arbre de décision

• Opérationnel• Limité aux gros objets• Facteurs extérieurs

• Gestes intuitifs• Mouvement simples• Apprentissage rapide

• 1-2 points de contact

• Protocole TUIO• Arbre de décision• Intégration « propre »

90%

100%

100%

60%

95%

100%

20

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

08/06/2010

21

Bilan

Perspectives et améliorations Serveur TUIO Structure de BATIC3S Gestuelle augmentée Système de buffer

08/06/2010

22

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!08/06/2010

23

Conclusion

Merci de votre attention!

15/04/2010

Recommended