03 - Interaction
Transcription
03 - Interaction
Interaction Présentation: Stéphane Lavirotte Auteurs: … et al* (*) Cours réalisé grâce aux documents de : Edouard Auvinet, Stéphane Lavirotte, Frédéric Precioso, Jean-Yves Tigli Mail: [email protected] Web: http://stephane.lavirotte.com/ Université de Nice - Sophia Antipolis Introduction L’ordinateur d’hier, d’aujourd’hui et de demain 22/11/2013 Stéphane Lavirotte 2 Une évolution … Taille Nombre Mais pas seulement … 22/11/2013 Stéphane Lavirotte 3 … Des nouvelles IHM 22/11/2013 Stéphane Lavirotte 4 La Vision du Chercheur (1991) « Ubiquituous Computing » Informatique Pervasive, Ubiquitaire, Omniprésente, Evanescente, Ambiante … « Silicon-based information technology, is far from having become part of the environment » – [Weiser 1991] [Weiser 91] Weiser Mark, « The computer for the twenty-first century », Scientific American, 1 :94–10, 1991. 22/11/2013 Stéphane Lavirotte 5 Une Vision qui devient Réalité… http://www.engadget.com/ 22/11/2013 Stéphane Lavirotte 6 … et les dispositifs de demain http://aurelien.cassotti.perso.esil.univmed.fr/dotclear/ http://julien.eyraud.perso.esil.univmed.fr/blog/ 22/11/2013 Stéphane Lavirotte 7 Classification des Dispositifs Comment s’y retrouver parmi tous ces dispositifs 22/11/2013 Stéphane Lavirotte 8 Classification des Dispositifs Changer de dispositif n’est pas innocent Comment classifier les dispositifs pour faciliter l’adaptation – Aux fonctionnalités souhaitées – Aux contraintes ergonomiques Taxonomie pour les dispositifs – Approche intuitive – En fonction des tâches de l’utilisateur [Foley and Wallace, 1974] [Enderle et al., 1984] [Foley et al., 1984] – En fonction des caractéristiques des dispositifs [Buxton, 1983] [Mackinlay et al., 1990] 22/11/2013 Stéphane Lavirotte 9 Taxonomie Approche Intuitive 22/11/2013 Stéphane Lavirotte 10 Taxonomie Fonction de la tâche 22/11/2013 Stéphane Lavirotte 11 Taxonomie Fonction des Propriétés Physiques 22/11/2013 Stéphane Lavirotte 12 Equivalence entre Dispositifs ? 1/2 Non équivalence des dispositifs due au fait que: – Deux dispositifs différents ne vont pas mobiliser mes mêmes « canaux de l’utilisateur » 22/11/2013 Stéphane Lavirotte 13 Equivalence entre Dispositifs ? 2/2 Non équivalence due au processus mental de l’utilisateur – Même si on utilise le même dispositif mais dans des conditions différente, il n’y a pas équivalence au niveau cognitif 22/11/2013 Stéphane Lavirotte 14 Et dans le domaine des Jeux De grandes nouveautés dans les interactions 22/11/2013 Stéphane Lavirotte 15 Interaction Un des points les plus importants – Point important pour le « game play » Aucun progrès durant des années – Sur console Manettes avec de plus en plus de boutons Quelques innovations: vibration, volant, … – Sur PC Classique: clavier, souris, joystick, volant/pédalier Des (r)évolutions dans l’interaction … 22/11/2013 Stéphane Lavirotte 16 La Nintendo DS Des évolutions – Ecran tactile remplaçant la souris – Deux écrans pour une meilleure immersion Une « révolution » – Le micro est utilisé comme une composante d’interaction dans le jeu. Ex: « Astérix aux jeux Olympiques » 22/11/2013 Stéphane Lavirotte 17 Interfaces Avancées 1/2 Evite d’avoir recours à un dispositif supplémentaire – Mesure du potentiel électrostatique de l’utilisateur Sony Sensing GamePad 2005 22/11/2013 Stéphane Lavirotte 18 Interfaces Avancées 2/2 Rendre l’interaction plus naturelle – Répartir les interactions sur le corps 22/11/2013 Stéphane Lavirotte 19 Une Interaction sans Dispositif Porté LM3Labs – Plus de dispositif portés, mais des caméras qui filment vos gestes – Interaction sans support, avec des gestes des mains – Réalité commerciale et industrielle 22/11/2013 Stéphane Lavirotte 20 Interaction et Rendu Mixer Virtuel et Réel 22/11/2013 Stéphane Lavirotte 21 La Réalité Augmentée Réalité Augmentée – Mélange monde physique / monde virtuel Ping Pong Plus ,MIT, 2000 The Eye of Judgement 22/11/2013 Stéphane Lavirotte 22 La Réalité Mixte Réalité Mixte – Interaction monde physique / monde virtuel Aqua Gauntlet, 2000 22/11/2013 Stéphane Lavirotte 23 La Wii Une console qui a révolutionné la manière de jouer 22/11/2013 Stéphane Lavirotte 24 La Wiimote Caractéristiques Techniques Contrôleur de la console Wii – Une télécommande à tout faire Un concentré de technologies – – – – – – – 22/11/2013 12 boutons 4 LEDs Accéléromètre 3 axes Vibration Haut parleur Caméra Infrarouge Bluetooth Stéphane Lavirotte 25 Les Extensions pour Interagir avec la Wii 1/3 Une Wiimote c’est bien… – Plusieurs formes pour la Wiimote c’est mieux ! De nombreuses extensions pour – Une meilleure immersion – Une meilleure interactivité – … Donc plus de réalisme et un meilleur gameplay ! 22/11/2013 Stéphane Lavirotte 26 Les Extensions pour Interagir avec la Wii 2/3 Trois types de dispositifs – Coques sans nouvelles fonctionnalités mais pour un meilleur réalisme Wii Zapper Wii Light Gun Wii Wheel Wii Racket Wii Helmet – Des extensions avec de nouvelles fonctionnalités Wii Guitare Wii MotionPlus – Des nouveaux dispositifs WiiPad Nunchuk Wii Balance Board 22/11/2013 Stéphane Lavirotte 27 Les Extensions pour Interagir avec la Wii 3/3 Et plus encore, avec un peu d’imagination – Johnny Chung Lee Human-Computer Interaction Institute Carmegie Mellon University Suivi de Doigts Tableau Blanc Interactif Multi-points Suivi de la Tête pour la réalité virtuelle – http://johnnylee.net/projects/wii/ 22/11/2013 Stéphane Lavirotte 28 Comparaison d’Interactions Souris, Centrale Inertielle, Wiimote Merci à Jean-Olivier Laurendeau, Sophie Sivignon pour leur travail sur ce sujet en SI4 à Polytech’Nice 22/11/2013 Stéphane Lavirotte 29 Dispositifs d’entrée 1/2 : Souris, Centrale Inertielle Souris = dispositif de pointage de référence Facile à utiliser Utilisée à travers sa représentation à l’écran (curseur) Centrale inertielle = dispositif de pointage ? Autorise le pointage en 3D Accès direct au matériel Transformer des angles en pixels 22/11/2013 Stéphane Lavirotte 30 Dispositif d’entrée 2/2 : la Wiimote Nouvelle mannette de la console Wii de Nintendo 12 boutons Un accéléromètre 3 axes Connectable à un PC en Bluetooth Utilisation à travers GlovePIE sous Windows Mappé sur le clavier ou la souris Calibrage difficile Wiimote UDP Wiimote UPnP 22/11/2013 Stéphane Lavirotte 31 Validation du modèle 1/3 Loi de Fitts, Sensibilité Mise en place d’un framework de validation réutilisable Différents types d’utilisateurs debout face à l’écran Test de la loi de Fitts Évalue le mouvement humain pour la pointage 22/11/2013 Test de la sensibilité Évalue la sensibilité / précision d’un dispositif Stéphane Lavirotte 32 Validation du modèle 2/3 Résultats Comparatif Loi de Fitt 4 3,5 Temps (en s) 3 2,5 Souris Souris UPnP WiimoteUPnP CI UPnP 2 1,5 1 0,5 0 0 100 200 300 400 500 600 700 800 900 Distance (en pixel) 22/11/2013 Stéphane Lavirotte 33 Validation du modèle 3/3 Résultats Comparatif Sensibilité 600 500 Y (en pixel) 400 Souris Souris UPnP Wiimote UPnP CI UPnP X0 Y0 300 200 100 0 0 100 200 300 400 500 600 X (en pixel) 22/11/2013 Stéphane Lavirotte 34 La Kinect Votre corps tout entier devient la manette 11/22/2013 Stéphane Lavirotte 35 Kinect: Présentation en Vidéo Kinect pour Xbox 360 ou Windows – Sortie en novembre 2010 connu avant sous le nom projet « Natal » – Vendu à 8 millions d’unités 2 mois après sa sortie 22/11/2013 Stéphane Lavirotte 36 Autorise l’Interaction sans Dispositif Porté ou Touché Pratique pour les jeux (quoi que) Certains cas d’utilisation où l’interaction physique est interdite: champs d’application potentiel 11/22/2013 Stéphane Lavirotte 37 Kinect Inside 1/2 11/22/2013 Stéphane Lavirotte 38 Kinect Inside 2/2 1 Caméra couleur – CMOS 1280x1024 à 15 img/s ou 30 img/s en 640x480 1 Caméra infrarouge – CMOS 1280x1024 pixels à 30 img/s 1 Projecteur infrarouge – Pattern de points lumineux fixe dans le temps 2 microphones + 4 sources audio digitales externes 1 accéléromètre 1 moteur d’élévation 11/22/2013 Stéphane Lavirotte 39 Kinect : Principe Général Faire une cartographie de la scène pour isoler le joueur – – – – – 11/22/2013 Cartographie des profondeurs dans l’image Identification des parties du corps Identification des jointures Application sur les jointures du squelette Animation du squelette en fonction des mouvements Stéphane Lavirotte 40 Mire Infrarouge Objectif: faire une carte des profondeurs Moyen – Projection d’une mire infrarouge – Capture de la mire grâce à la caméra infrarouge Une idée pas si nouvelle… 11/22/2013 Stéphane Lavirotte 41 Carte de Profondeur Calcul de la carte de profondeur – Géométrie épipolaire (cas général, voir Wikipedia) – Cas particulier de la Kinect: translation latérale Mesure de l’image 11/22/2013 Stéphane Lavirotte Carte de Profondeur 42 D’une Carte de Profondeur à l’Analyse du Squelette Humain… Carte de profondeur – Permet l’identification des parties du corps – Classification finale de chaque pixel Forêts d’arbres décisionnels – Utilisation du Mean Shit Obtention de la position surfacique Labellisation des 31 parties du corps Association au squelette Depth image 11/22/2013 Depth image features Body parts Stéphane Lavirotte 3D joint proposals 43 Classification et Apprentissage Apprentissage sur plusieurs classes de personnes: Exécution de l'apprentissage sur cluster: – 3 arbres de profondeur 20 sur une base de 1 million d'images prend 1 jour sur 1000 cœurs 11/22/2013 Stéphane Lavirotte 44 Expériences et Résultats Brevet et Publication – Us Patent : 2010 0118123, Depth Mapping using projected patterns – “Real-Time Human Pose Recognition in Parts from Single Depth Images”, J. Shotton, Andrew Fitzgibbon, M. Cook, T. Sharp, M. Finocchio, R. Moore, A. Kipman, A. Blake, Microsoft Research Cambridge & Xbox Incubation, CVPR 2011. 11/22/2013 Stéphane Lavirotte 45 Mise en œuvre de la Kinect XBox Novembre 2010 ~130 € Licence utilisation SDK 1.0 Pas de Near Mode Windows Février 2012 ~200 € Licence commerciale SDK 1.5 Near Mode Connectable sur PC Pas connectable sur XBox – Avec adaptateur 11/22/2013 Stéphane Lavirotte 46 Mise en œuvre de la Wiimote Interagir avec la Wiimote sur un PC 22/11/2013 Stéphane Lavirotte 47 Une Communication Bluetooth Assurer la communication Bluetooth – Un périphérique Bluetooth sur la machine de développement Inclus dans un portable Via une clé USB Bluetooth si pas en standard dans la machine Bluetooth – Créé par le constructeur Ericsson (1994) – Spécification 1.0 (1999) après avoir rallié IBM, Microsoft, Motorola, Nokia, Intel, Toshiba, … – Technologie radio courte distance (une dizaine de mètres) destinée à simplifier les communications entre appareils électroniques – Compatibilité entre marque assez bonne mais pas parfaite – Problèmes spécifiques avec les Wiimotes Dispositifs compatibles 22/11/2013 Stéphane Lavirotte 48 Utilisation avec BlueSoleil Une couche logicielle Bluetooth – Le logiciel fourni avec la clé USB risque de s’avérer incompatible – Vérifier la compatibilité avec BlueSoleil HardwareCheck.exe Installer la pile BlueSoleil – S’il y a compatibilité – Voir les logiciels sur le sujet de TD Connecter la Wiimote au PC – Mode de synchronisation (touche 1 et 2) – Recherche de périphérique – Connexion Wiimote (Nintendo RVL-CNT-01) 22/11/2013 Stéphane Lavirotte 49 Utilisation avec WIDCOMM Une couche logicielle Bluetooth – Pile logicielle pour les puces fournies par Broadcom – Les versions les plus récentes sont compatibles avec Wiimote Installer – Voir les logiciels sur le sujet de TD – Dernier driver disponible Sur le site de Broadcom Connexion de la Wiimote au PC – – – – 22/11/2013 Mode de synchronisation (touche 1 et 2) Recherche de périphérique Connexion Wiimote (Nintendo RVL-CNT-01) Passer la saisie du code d’appariement (Alt+C) Stéphane Lavirotte 50 En dernier recours… Si aucune des deux procédures précédentes ne marche Utiliser l’émulateur de Wii: Dolphin Emulator – http://dolphin-emulator.com/ – A l’aide de l’émulateur, il est possible de faire l’appariement de votre wiimote avec votre PC. – Procédure à suivre: 11/22/2013 Lancer Dolphin Aller dans le menu Wiimote (Options / Paramètres Wiimote) Choisir « Wiimote physique » Cliquer sur jumeler Cliquer sur 1 & 2 sur la wiimote Cliquer sur Rafraîchir Si votre wiimote s’arrête de clignoter vous avez fait l’appariement Stéphane Lavirotte 51 Tester l’Interaction Wiimote - PC GlovePIE – Permet de lancer des scripts – Chaque script permet de configurer la Wiimote de façon individualisée – Il existe de nombreux scripts sur Internet déjà fait pour des jeux et des logiciels De nombreux script existants – http://www.wiili.org/index.php/GlovePIE:GlovePIE_Scripts Réalisez les vôtres suivant vos besoins 22/11/2013 Stéphane Lavirotte 52 Nom des « Boutons » wiimote.Up ? wiimote.Down wiimote.Right wiimote.Nunchuk.JoyY < 0 = Up > 0 = Down wiimote.B wiimote.Left wiimote.A wiimote.Plus wiimote.Nunchuk.JoyX < 0 = Left > 0 = Right wiimote.Minus wiimote.Home wiimote.One wiimote.Two wiimote.Led1 wiimote.Led4 wiimote.Led2 wiimote.Led3 wiimote.Leds (code allant de 0 à 15) 22/11/2013 Stéphane Lavirotte wiimote.PointerVisible wiimote.PointerX wiimote.PointerY 53 Assigner les Boutons PC - Wiimote Assigner une touche du clavier à la Wiimote Key.Right = Wiimote.Right Key.Enter = Wiimote.A Assigner une combinaison de touches Key.CTRL+Key.C = Wiimote.A Key.ALT+Key.CTRL+Key.C = Wiimote.A Assigner une touche du clavier à une combinaison de bouton Wiimote If (Wiimote.B) and (Wiimote.A) then Key.C = TRUE Key.C = FALSE Endif Voir codes: – http://www.homemedia.fr/i/WiimoteClavier.pdf 22/11/2013 Stéphane Lavirotte 54 Fonctions « Giroscopiques » de la Wiimote Exemple: – Simuler l’appui de la touche D si on penche la manette vers la droite de plus de 80° var.xOffset = -1 var.xRot = Wiimote.RawForceX + var.xOffset if (var.xRot > 22) then Key.D = TRUE Key.D = FALSE endif 22/11/2013 Stéphane Lavirotte 55 Autres Solutions Wiimote sur PC Windows – – – – – Wiim: classes C++ pour connecter la wiimote au travers l’interface HID Wiiuse: librairie C pour utiliser les fonctionnalités de la Wiimote wiimote-api: librairie C pour exploiter les possibilités de la Wiimote WiinRemote: Application pour utiliser la Wiimote sous Windows WiimoteLib: librairie C# et VB.NET pour exploiter la Wiimote Linux – – – – – – Cwiid: collection d’outils en C pour exploiter la Wiimote sous Linux WMD: pilote Linux pour la Wiimote Libwiimote: librairie C pour la communication avec la Wiimote sous Linux Perlwiimote: interfaçage Perl de la Libwiilmote lg3d-wii: driver (user space mode) pour Wiimote Python HTDP Driver: interface Python pour la Wiimote Mac: – – – – 22/11/2013 DarwiinRemote: Programme de communication (OSX 10.4 et 10.5) Remote Buddy: Permet le contrôle des applications à l’aide de la Wiimote The Wiinstrument: Permet de jouer de la musique avec le Wiimote Wiiji: Application utiliser la Wiimote sur Mac OSX Stéphane Lavirotte 56 PyWiiUse Une librairie Python disponible pour les Wiimote Importer les bonnes librairies import import import import import pygame pygame_wiimote os sys time Détecter le nombre de Wiimote connectées # Initialize the wiimote if os.name != 'nt': print 'press 1&2' pygame_wiimote.init(1, 5) # look for 1, wait 5 seconds n = pygame_wiimote.get_count() # how many did we get? if n == 0: print 'no wiimotes found' 11/22/2013 Stéphane Lavirotte 57 Glossaire Récupération d’un objet Wiimote wm = pygame_wiimote.Wiimote(0) Glossaire des principales fonction de l’objet Wiimote – enable_leds(m) Control leds. The lower 4 bits map to the 4 leds – enable_rumble(self, on): Control rumble – enable_accels(on) Control reporting of accelerometer data – enable_ir(on, vres=None, position=None, aspect=None) Control reporting IR data – set_flags(smoothing=None, continuous=None, threshold=None) Set flags SMOOTHING, CONTINUOUS, ORIENT_THRESH – set_orient_thresh(thresh) Set orientation threshold – status() Trigger a status callback – disconnect(): Disconnect this Wiimote Voir le fichier d’exemple pygame_wiitest.py 11/22/2013 Stéphane Lavirotte 58
Documents pareils
Fiche technique : Wiimote
La « télécommande » est munie d'un D-pad, d'un bouton « A », d'une gâchette « B », de boutons « + » et « - », d'un autre
bouton marqué d'une maison (bouton Home) et qui sert à rejoindre le menu Hom...