Interaction
(*) 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
Présentation: Stéphane Lavirotte Auteurs: … et al*
L’ordinateur d’hier, d’aujourd’hui et de demain
Introduction
Une évolution …
Nombre Taille
Mais pas seulement …
… Des nouvelles IHM
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]
22/11/2013 Stéphane Lavirotte 5
[Weiser 91] Weiser Mark, « The computer for the twenty-first century », Scientific American, 1 :94–10, 1991.
Une Vision qui devient Réalité…
… et les dispositifs de demain
http://aurelien.cassotti.perso.esil.univmed.fr/dotclear/
http://julien.eyraud.perso.esil.univmed.fr/blog/
Comment s’y retrouver parmi tous ces dispositifs
Classification des Dispositifs
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]
Taxonomie
Approche Intuitive
Taxonomie
Fonction de la tâche
Taxonomie
Fonction des Propriétés Physiques
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 »
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
De grandes nouveautés dans les interactions
Et dans le domaine des Jeux
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 …
Interaction
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 »
Interfaces Avancées 1/2
Evite d’avoir recours à un dispositif supplémentaire
– Mesure du potentiel électrostatique de l’utilisateur
Sony Sensing GamePad 2005
Interfaces Avancées 2/2
Rendre l’interaction plus naturelle
– Répartir les interactions sur le corps
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
Mixer Virtuel et Réel
Interaction et Rendu
La Réalité Augmentée
Réalité Augmentée
– Mélange monde physique / monde virtuel
Ping Pong Plus ,MIT, 2000
La Réalité Mixte
Réalité Mixte
– Interaction monde physique / monde virtuel
Aqua Gauntlet, 2000
Une console qui a révolutionné la manière de jouer
La Wii
La Wiimote Caractéristiques Techniques
Contrôleur de la console Wii
– Une télécommande à tout faire
Un concentré de technologies
– 12 boutons – 4 LEDs
– Accéléromètre 3 axes – Vibration
– Haut parleur
– Caméra Infrarouge – Bluetooth
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 !
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
Stéphane Lavirotte 27
22/11/2013
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
Souris, Centrale Inertielle, Wiimote
Merci à Jean-Olivier Laurendeau, Sophie Sivignon pour leur travail sur ce sujet en SI4 à Polytech’Nice
Comparaison d’Interactions
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
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
Dispositif d’entrée 2/2 :
la Wiimote
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
Test de la sensibilité
Évalue la sensibilité / précision d’un dispositif
Validation du modèle 2/3 Résultats
Comparatif Loi de Fitt
0 0,5 1 1,5 2 2,5 3 3,5 4
0 100 200 300 400 500 600 700 800 900
Distance (en pixel)
Temps (en s)
Souris Souris UPnP WiimoteUPnP CI UPnP
Validation du modèle 3/3 Résultats
Comparatif Sensibilité
0 100 200 300 400 500 600
Y (en pixel) Souris
Souris UPnP Wiimote UPnP CI UPnP X0 Y0
Votre corps tout entier devient la manette
La Kinect
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
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
Kinect Inside
1/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
Kinect Inside
2/2
Kinect : Principe Général
Faire une cartographie de la scène pour isoler le joueur
– 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
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…
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
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 Depth image features Body parts 3D joint proposals
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
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.
Mise en œuvre de la Kinect
XBox
Novembre 2010
~130 €
Licence utilisation
SDK 1.0
Pas de Near Mode
Connectable sur PC
Windows
Février 2012
~200 €
Licence commerciale
SDK 1.5
Near Mode
Pas connectable sur XBox
Interagir avec la Wiimote sur un PC
Mise en œuvre
de la Wiimote
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
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)
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
– 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)
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:
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
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
Nom des « Boutons »
wiimote.B wiimote.Left
wiimote.A
wiimote.Plus wiimote.Minus wiimote.Home
wiimote.One wiimote.Two
wiimote.Up wiimote.Down
wiimote.Right
wiimote.Led1
wiimote.Led2 wiimote.Led3 wiimote.Led4
?
wiimote.Leds (code allant de 0 à 15)
wiimote.Nunchuk.JoyY
< 0 = Up
> 0 = Down
wiimote.Nunchuk.JoyX
< 0 = Left
> 0 = Right
wiimote.PointerVisible wiimote.PointerX wiimote.PointerY
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:
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
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:
– 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
PyWiiUse
Une librairie Python disponible pour les Wiimote
Importer les bonnes librairies
import pygame
import pygame_wiimote import os
import sys import 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'
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