• Aucun résultat trouvé

Auteurs: … et al* Interaction

N/A
N/A
Protected

Academic year: 2022

Partager "Auteurs: … et al* Interaction"

Copied!
58
0
0

Texte intégral

(1)

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*

(2)

L’ordinateur d’hier, d’aujourd’hui et de demain

Introduction

(3)

Une évolution …

Nombre Taille

Mais pas seulement …

(4)

… Des nouvelles IHM

(5)

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.

(6)

Une Vision qui devient Réalité…

(7)

… et les dispositifs de demain

http://aurelien.cassotti.perso.esil.univmed.fr/dotclear/

http://julien.eyraud.perso.esil.univmed.fr/blog/

(8)

Comment s’y retrouver parmi tous ces dispositifs

Classification des Dispositifs

(9)

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]

(10)

Taxonomie

Approche Intuitive

(11)

Taxonomie

Fonction de la tâche

(12)

Taxonomie

Fonction des Propriétés Physiques

(13)

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 »

(14)

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

(15)

De grandes nouveautés dans les interactions

Et dans le domaine des Jeux

(16)

 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

(17)

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 »

(18)

Interfaces Avancées 1/2

 Evite d’avoir recours à un dispositif supplémentaire

– Mesure du potentiel électrostatique de l’utilisateur

Sony Sensing GamePad 2005

(19)

Interfaces Avancées 2/2

 Rendre l’interaction plus naturelle

– Répartir les interactions sur le corps

(20)

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

(21)

Mixer Virtuel et Réel

Interaction et Rendu

(22)

La Réalité Augmentée

 Réalité Augmentée

– Mélange monde physique / monde virtuel

Ping Pong Plus ,MIT, 2000

(23)

La Réalité Mixte

 Réalité Mixte

– Interaction monde physique / monde virtuel

Aqua Gauntlet, 2000

(24)

Une console qui a révolutionné la manière de jouer

La Wii

(25)

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

(26)

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 !

(27)

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

(28)

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

(29)

Souris, Centrale Inertielle, Wiimote

Merci à Jean-Olivier Laurendeau, Sophie Sivignon pour leur travail sur ce sujet en SI4 à Polytech’Nice

Comparaison d’Interactions

(30)

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

(31)

 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

(32)

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

(33)

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

(34)

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

(35)

Votre corps tout entier devient la manette

La Kinect

(36)

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

(37)

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

(38)

Kinect Inside

1/2

(39)

 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

(40)

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

(41)

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…

(42)

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

(43)

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

(44)

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

(45)

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.

(46)

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

(47)

Interagir avec la Wiimote sur un PC

Mise en œuvre

de la Wiimote

(48)

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

(49)

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)

(50)

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)

(51)

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

(52)

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

(53)

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

(54)

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:

(55)

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

(56)

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

(57)

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'

(58)

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

Références

Documents relatifs

- savoir exploiter les données présentes sur la plaque signalétique ; - savoir réaliser l'essai à vide pour un transformateur;.. - savoir utiliser un

Quel langage de programmation (Java, C++, C#, VB, etc.) et API de base de données sont utilisés dans vos applications, et combien d’instructions SQL natives

- S’engager dans des histoires collectives (se mettre à la disposition de l’autre pour choisir et concevoir son projet et le faire progresser ; exploiter au mieux ses possibilités

Capacités exigibles : Utiliser la loi de Coulomb. Citer les analogies entre la loi de Coulomb et la loi d’interaction gravitationnelle. Utiliser les expressions vectorielles : de

 Les BD XML intègrent des API que vous pouvez utiliser pour intégrer les données XML avec les applications.

Extraire et exploiter des informations pour justifier l’utilisation des horloges atomiques dans la mesure du temps.. Extraire et exploiter des informations relatives à l’évolution de

Ces éléments sont bien entendus toujours utilisés, mais ces regroupements fonctionnels que l’on peut utiliser pour des raisons pratiques ne sont pas pris en compte dans la

La principale motivation pour utiliser la pile Spark est que les mêmes pro- grammes ou commandes sont utilisées pour exécuter des algorithmes d’ap- prentissage (librairie MLlib), que