Interaction en Réalité Virtuelle
Journées d'études sur l'image :
Technique et Applications
20-22 février 2012
Thierry Duval
ISTIC / IRISA - VR4i
[Link]@[Link]
Réalité Virtuelle
➢ Image (3D)
➢ Interaction (3D et multi-modale)
➢ Immersion (3D et multi-sensorielle)
2
Dispositifs d'affichage pour la RV
3
Périphériques pour le suivi de mouvements
4
Périphériques pour l'interaction
5
Périphériques d'interaction et de restitution
6
Différents types d'interaction
[Hand 1997][Bowman et al. 2004]
➢ Navigation
✔ Interaction avec le point de vue de l'utilisateur
➢ Interaction avec les objets du monde virtuel
✔ Modifications de caractéristiques d'objets qui font partie de la
modélisation du monde virtuel qui a été faite dans le but de
simuler un monde réel
➢ Contrôle d'application
✔ Modifications des caractéristiques de l'application de RV au
travers d'objets de dialogue qui ne font pas forcément partie du
monde virtuel
7
Navigation
➢ Tâche parfois secondaire
➢ Pourtant essentielle
➢ Modification des caractéristiques de la caméra virtuelle qui
permet de voir ce qui se passe dans le monde virtuel
✔ Position
✔ Orientation
✔ Facteur d'échelle
➢ Souvent traitée de façon distincte de l'interaction
➢ Peut pourtant être considérée comme une interaction avec
un objet qui représente le point de vue de l'utilisateur
✔ Particulièrement vrai pour le domaine de la RV Collaborative
8
Navigation
➢ Notion de point de vue sur l'univers :
✔ Caméraman associable à une fenêtre de rendu
➢ Modification du point de vue :
✔ Envoi d'ordres de déplacement à un caméraman
➢ Adaptation du rendu en fonction du dispositif physique de
visualisation :
✔ Station de travail, Reality center, Workbench, Cave, ...
➢ Parfois besoin de compenser le faible champ de vision par
des techniques adaptées
✔ En particulier pour les stations de travail...
9
Lentilles périphériques (Massive-2)
10
Coup d’œil à gauche (Massive-2)
11
Quelques types de navigation
➢ Modes les plus souvent rencontrés
✔ Marche (walk)
✗ Limitation des degrés de liberté de translation
✗ Application de contraintes physiques (pesanteur)
✔ Vol (fly)
✗ Pas de limitations des degrés de liberté
✔ Examen (examine)
✗ La caméra est contrainte à tourner autour d'un objet particulier de l'univers
✔ Focus sur un objet
✗ Zoom / dezoom <-> rapprochement / éloignement de la caméra
✗ Ou changement de l'angle de vue de la caméra
✔ Passage d'un point de vue à un autre (téléportation)
✗ Avec ou sans interpolations de mouvements
➢ Démonstration...
12
Quelques types de navigation
➢ De nombreux autres modes possibles
✔ Attachement à un objet de la scène
✗ Avec possibilité de définir des offsets de positionnement
✗ (démonstration : Collaviz)
✔ Asservissements avec contraintes à respecter
✗ Extensions du mode examine : travelling, ...
✗ (Voir exposé de Marc Christie demain)
✔ Respect de contraintes physiques
✗ Détection de collision pour ne pas traverser les objets du monde virtuel
➢ Distinction possible entre :
✔ Navigation virtuelle
✗ Dans l'environnement virtuel 3D
✔ Navigation réelle/physique
✗ Dans l'environnement réel/physique de l'utilisateur
13
Immersion dans un système à 4 faces
14
Quelques remarques sur la navigation
➢ A beaucoup à gagner à être considérée comme une
interaction comme une autre
✔ Avec une représentation virtuelle
✗ Notion de support de caméra / point de vue qu'il est possible de
représenter dans l'environnement virtuel
✔ Avec possibilité d'agir / interagir directement sur cette
représentation
✔ Particulièrement vrai dans le domaine de la RV collaborative
➢ Exemples :
✔ Mode carte / plan : caméra éloignée
✔ Prise de contrôle possible du point de vue par un autre utilisateur
✔ ...
15
Interaction avec les objets du monde
➢ Tache essentielle en réalité virtuelle
➢ Nécessite de pouvoir désigner dynamiquement l'objet
avec lequel on souhaite interagir
✔ Possibilité de désignation implicite ou statique :
✗ Cas de l'action sur le point de vue :
• souvent implicite, souvent statique
✗ Cas du pilotage des outils d'interaction :
• souvent statiquement attachés à un périphérique d'interaction
➢ Nécessite également de pouvoir dialoguer avec l'objet en
interaction
✔ Protocole de dialogue nécessaire pour communication entre outil
d'interaction et objet interactif
➢ Besoin d'offrir des retours d'information à l'utilisateur
16
Désignation dynamique d'un objet virtuel
➢ 2D :
✔ Choix d'un objet parmi une liste des objets à disposition
✗ Pas très immersif
✗ Nécessite outils IHM 2D classiques
➢ 2D/3D :
✔ Picking orthogonal (de longueur infinie) dans la fenêtre de rendu
à partir de coordonnées 2D fournies par le dispositif de pointage
utilisé
✗ Nécessite une conversion 2D/3D
• Conversion souvent fournie par les API graphiques 3D
➢ 3D :
✔ Picking 3D réalisé à partir de la position et de l'orientation d'un
objet virtuel (un outil d'interaction)
✗ Généralement fourni par les API graphiques 3D
17
Dialogue avec un objet interactif
➢ Besoin d'un protocole de communication entre outils
d'interaction et objets interactifs
✔ Qu'est-ce qui peut être contrôlé ?
✗ Nom et type des paramètres de l'objet interactif
✔ Par qui ?
✗ Type, groupe et priorité des outils d'interaction
• Pour pouvoir mettre des garde-fous et ainsi sécuriser l'interaction
• Passage naturel à la collaboration
✗ Idem pour les utilisateurs (cas de la RV collaborative)
✔ Comment ?
✗ Un seul paramètre ou plusieurs paramètres à la fois ?
✗ Un seul outil ou plusieurs outils à la fois ?
• Interactions bimanuelles, multimodales, collaboratives, ...
✗ Compatibilité nécessaire entre objet interactif et outil d'interaction
➢ L'existence d'un tel protocole facilite l'évolution de l'EV
18
Description de l'interaction
➢ Codage en dur : c'est courant, mais à éviter...
➢ Via des langages de modélisation
✔ VRML, X3D :
✗ Expression d'interactions basiques dans le graphe de scène
• MouseSensor, PlaneSensor, CylinderSensor
✗ Possibilité d'extensions (pour X3D)
• Ajout possible de caractéristiques interactives plus précises
✔ Collada :
✗ Possibilité de décrire différents types de graphes de scènes
• Géométrique, physique
✗ Possibilité de décrire de nouveaux types de graphes
• Sonore, Interactif
✗ Possibilité de décrire des liens entre les nœuds des différents graphes
➢ À condition d'étendre ces langages...
✔ Et d'être capable d'interpréter ces ajouts ! 19
Métaphores et outils d'interaction
➢ Outils d'interaction souvent inspirés par des métaphores
tirées du monde réel
✔ Main virtuelle
✔ Curseur 3D
✔ Rayon 3D
➢ Besoin de métaphores additionnelles pour la collaboration
✔ Curseur2D/Rayon3D (pour la collaboration)
✔ Plusieurs outils simultanés
✗ Rayons déformables (ou avec liens élastiques)
✗ Curseurs 3D pour manipulations multi-points
20
Métaphores et outils d'interaction
➢ Main virtuelle
➢ Curseur 3D
➢ Rayon 3D
21
Métaphores et outils d'interaction
➢ Rayons déformables
22
Collaboration 3 mains
23
Périphériques pour l'interaction
➢ Ne devraient jamais être utilisés directement comme outils
d'interaction !
✔ Seulement pour piloter des outils d'interaction plus abstraits
✗ Meilleure évolutivité des applications de RV
✗ Exemple : normalisation à la mode VRPN
➢ Exemples de périphériques d'interaction :
✔ Capteurs magnétiques
✗ Polhemus, Flock of birds, MotionStar, ...
✔ Capteurs inertiels et ultrasoniques
✗ Intersense, ...
✔ Capteurs optiques
✗ ART, Vicon, Optitrack, Kinect, ...
✔ Joysticks et joypads
✗ SpaceMouce, Wiimote, ...
24
Interfaces tangibles
➢ Périphériques matériels dédiés à des interactions
particulières
✔ Ex : saisie + changement de position et d'orientation
➢ Permettent de meilleures sensations durant l'interaction
✔ Car l'utilisateur interagit physiquement
➢ Peuvent être passifs :
✔ Pas de retours particuliers à l'utilisateur
➢ Peuvent être actifs :
✔ Retours dynamiques à l'utilisateur :
✗ Force, son, vibration, ...
25
Interfaces tangibles
26
Utilisation d'une interface tangible
27
Visualiser la nature des interactions
➢ Indiquer que l’interaction est « accessible »
✔ « Highlight » de l’objet
➢ Présenter les possibilités offertes :
✔ Types de manipulations disponibles
28
Percevoir l'interaction effective
➢ Mettre en évidence l'interaction :
✔ Différemment de la façon de montrer le potentiel
✔ Rappeler également la nature de l’interaction en cours
29
Perception des contraintes d'interaction
➢ Fournir la perception des limitations sur les DDL
30
Contrôle d'application
➢ Modification de caractéristiques liées davantage à
l'application elle-même plutôt au monde virtuel :
✔ Taille de la fenêtre de rendu
✔ Frame-rate demandé
✔ Type de lissage souhaité
✔ Enregistrement d'une session dans un fichier
✔ ...
➢ Peut se faire via une IHM 2D classique
➢ Peut également se faire via des actions sur des widgets
3D
✔ Ces actions peuvent alors aussi prendre la forme d'interactions
3D, mais sont de nature différente des interactions 3D sur les
objets du monde
31
Limites Interactions / Contrôle d'application
➢ Pas toujours faciles à déterminer...
➢ Exemple :
✔ Cas d'une IHM 3D de contrôle de navigation
✗ Widgets 3D pour choix de directions
✗ Widgets 3D pour choix de vitesse de déplacement
✗ A priori il peut s'agir de contrôle d'application
✔ En situation collaborative :
✗ Les autres utilisateurs peuvent percevoir cette IHM 3D
✗ Ils peuvent peut-être également agir dessus
✗ On passe alors à de l'interaction 3D...
32
Immersion
➢ Plonger l'utilisateur dans le monde virtuel pour une
meilleure perception et de meilleures interactions
➢ Via de grands dispositifs d'affichage
✔ Systèmes immersifs de type RealityCenter ou Cave
✔ L'utilisateur peut effectuer des déplacements physiques dans son
environnement de travail
✗ Nécessité de faire un suivi de la tête de l'utilisateur pour adapter le rendu
de la scène virtuelle à la position de l'utilisateur
✔ Métaphore de regard par une fenêtre sur l'univers virtuel
✗ C'est une forme d'interaction de l'utilisateur avec le système immersif !
✗ Peut être étendue à tout type de dispositif de rendu...
➢ Via un visio-casque
✔ Problématique similaire
33
Immersion
➢ Effets sur les interactions :
✔ Interactions classiques via IHM 2D inadéquates
➢ Solutions acceptables :
✔ Interactions 3D :
✗ Pilotage d'outils3D par des périphériques immersifs
✗ Capture de mouvements / gestes
✗ Utilisation de widgets 3D
✔ IHM 2D embarquées/déportées sur dispositifs mobiles
✗ Tablettes tactiles, smartphones, ...
34
Immersion
➢ Exemple de collaboration distante en immersion
35
Modèle d'objet virtuel
➢ Extension du modèle PAC [Coutaz 1988]
✔ Comportement dans les abstractions
✔ Liaison avec le graphique dans les présentations
✔ Relation entre composants via les contrôles
✔ Interfaces pour un meilleur découplage entre composants
Contrôle
IA IC 0..N IP
0..1 ab n
s tra t at io
n
c t io se
n pré
A C P
36
PAC et les API graphiques 3D
➢ Permet de concevoir l'architecture globale de
l'environnement virtuel indépendamment de l'API
graphique 3D utilisée
➢ Permet de tester plus facilement différentes API
graphiques 3D
➢ Choix possible de l'API graphique 3D en fonction :
✔ Du langage de développement envisagé
✔ Des formats de données utilisables
✔ Des besoins :
✗ De stéréovision
✗ De tracking de tête
✗ De distribution du graphe de scène (CAVE)
✗ De partage de graphe de scène (multi-utilisateur)
37
Quelques API graphiques 3D
➢ Ogre 3D
✔ C++, Java (ogre4j), stéréovision, tracking de tête
➢ OpenSG
✔ C++, stéréovision, tracking de tête, graphe de scène distribué
➢ OpenSceneGraph
✔ C++, stéréovision, tracking de tête
➢ Java3D
✔ Java, stérovision (?)
➢ jReality
✔ Java, stéréovision, tracking de tête, graphe de scène distribué
➢ jMonkey (JME3)
✔ Java, distribué (multi-joueurs), multi plates-formes (?) 38
Environnements Virtuels Collaboratifs
➢ Application collaboratives de la Réalité Virtuelle
39
Domaines d'application
➢ Modélisation 3D et prototypage coopératifs
➢ Revue virtuelle et coopérative de projet :
✔ Industries automobile, aéronautique, pétrolière...
✔ Architecture, urbanisme
➢ Démonstration à distance de manipulations complexes sur
des maquettes virtuelles
➢ Apprentissage :
✔ Un tuteur avec un ou plusieurs élèves
✔ Plusieurs élèves : tâches typiquement coopératives
40
Simulation de combat (NPS-NET)
41
Conférence virtuelle (Avatars’98)
42
Partage de périphérique d'interaction
(Protein Interactive Theater)
43
Activités usuelles dans les EVC
➢ Activités classiques des EV
✔ Navigation
✔ Interaction 3D
✔ Contrôle d'application
➢ Interactions coopératives locales ou distantes
✔ Non réalisables seul(e)...
44
Principaux problèmes des EVC
➢ Communs aux environnements virtuels :
✔ Comment visualiser les univers virtuels ?
✔ Comment naviguer dans ces univers ?
✔ Comment interagir avec les objets de l'univers ?
➢ Propres aux aspects coopératifs :
✔ Comment partager les univers virtuels ?
✔ Comment partager des interactions ?
45
Principaux problèmes des EVC
➢ Aspect social du travail coopératif :
✔ Rôle et droits de chacun
➢ Maintien de la cohérence entre les vues des différents
participants :
✔ WYSIWIS
➢ Granularité de la protection des objets partagés
➢ Architecture logicielle
➢ Problèmes matériels de communication
46
Aspects sociaux des EVC
➢ Besoin d'une décomposition sociale des tâches et d'une
modélisation précise du rôle de chacun des participants :
✔ Qui fait quoi ?
✔ Quels sont les droits de chacun ?
➢ Exemples :
✔ Pouvoir imposer à des participants de suivre un guide
✔ Pouvoir corriger, aider des élèves
✔ Ne pouvoir consulter que les parties publiques de l'espace de
travail d'un collègue...
47
WYSIWIS
➢ WYSIWIS (What You See Is What I See)
✔ Premiers pas du collecticiel
✔ Inspiré du WYSIWYG :
✗ What You See Is What You Get
➢ Interaction de groupe :
✔ Chacun voit ce que font les autres (en plus de ce qu'il fait),
plusieurs personnes peuvent travailler sur des objets de
l'environnement partagé
➢ Nécessité du WYSIWIS :
✔ Selon le domaine d’application (ex : Réalité Virtuelle…)
48
Granularité de l'interaction
➢ Comment partager l'univers entre plusieurs utilisateurs ?
✔ Exclusion mutuelle sur la manipulation d'objets ?
✔ Exclusion mutuelle sur des parties d'objets ?
✔ Pas d'exclusion mutuelle ?
✗ Comment faire ressentir les actions des autres ? (efforts ?)
➢ Ex : manipulation d'objets virtuels en édition 3D :
✔ 1 seul manipulateur par objet ?
✔ 1 seul manipulateur par handlebox associé à l'objet ?
✔ Plusieurs manipulateurs simultanés ?
49
Prise de conscience des autres
➢ Comment faire percevoir à un utilisateur :
✔ La présence des autres utilisateurs ?
✔ Les actions des autres utilisateurs ?
✔ Les intentions des autres utilisateurs ?
➢ Des solutions pour les CVE :
✔ Fournir des avatars (humanoïdes ou non…)
✔ Mettre en évidence les objets en interaction
✔ Mettre en évidence de façons différentes selon :
✗ La nature de l’interaction
✗ Le degré de partage de l’interaction
50
Visualisation du champ de vision (Massive-2)
51
Visualisation d’une interaction (Massive-2)
52
Perception des autres (VR-OpenMASK)
➢ Leur présence
➢ Leur activité
➢ Leurs intentions
53
Perception de la coopération (VR-OpenMASK)
54
Collaboration complémentaire
55
Modèles de distribution pour les EVC
➢ Architecture dupliquée
56
Modèles de distribution pour les EVC
➢ Architecture centralisée
57
Modèles de distribution pour les EVC
➢ Architecture hybride
58
Action sur un objet distant
➢ Usage classique d'ORBs peu adaptés :
✔ Les mises à jour doivent se faire en asynchrone...
59
Synchronisation en univers partagés
➢ Un contrôleur local sur chaque processus
➢ Algorithme de synchronisation lié à la latence :
✔ Calcul du pas de simulation T seulement si toutes les données
de simulation de T - dT - latence des autres contrôleurs sont
disponibles
✔ Envoi des mises à jour aux autres contrôleurs locaux
✔ Les plus rapides doivent attendre les plus lents
➢ La simulation au temps T a lieu pendant que les données
de mise à jour de T - dT transitent :
✔ Les contrôleurs ne perdent pas de temps à attendre...
60
Cohérence en univers partagés
➢ L'extrapolation peut permettre d'éviter d'avoir à attendre
les valeurs exactes :
✔ De (bonnes) approximations sont disponibles pour T
✔ Ou pour tout autre instant, en fonction de la latence...
➢ Si la latence correspond à la latence du réseau, la
distribution ne ralentit pas la simulation :
✔ Très peu d'attente entre les différentes machines
✔ Mais introduction d'un délai constant (dû à la latence)dans la
propagation des changements
61
Envois de messages
➢ Quand un message est envoyé à un objet :
✔ Si c'est le référentiel qui le reçoit :
✗ Le message est traité
✔ Sinon (le référentiel est dans un autre processus) :
✗ Le message est reçu par un proxy...
✗ ...Qui est créé dynamiquement si besoin
✗ Le proxy transmet le message vers le processus qui héberge son
référentiel
✗ La réception effective du message est donc retardée...
✗ Les messages traversent le réseau avec les mises à jour des proxy
62
Coopération
➢ Interagir simultanément à plusieurs :
✔ Sur des objets différents
✔ Sur différentes parties d’un même objet
✔ Sur un même objet, en mode centralisé ou référent/proxy :
✗ Protocole de dialogue adapté
✗ Un référentiel reçoit plusieurs sollicitations à chaque pas de simulation
✗ Une fonction d’intégration des sollicitations détermine une consigne
résultante
✗ Le résultat de l’interaction est propagé aux proxys
✔ Mode dupliqué pas adapté à la co-manipulation
63
Modèle d'objet virtuel partagé
➢ Extension du modèle PAC :
✔ Les contrôles gèrent également la collaboration
✔ Ils peuvent déléguer cette collaboration à un composant dédié
contrôle
IA IC 0..N IP
0..1 ab n
s tra t atio
ct i o sen
n pré
A C P
0..1 politique de distribution
DP
DDP PDP RDP
64
Interaction en mode répliqué
Node 1 Node 2 Node 3
A C/DDP P A C/DDP P A C/DDP P
1: set
3: set 2: set
4: get 5: update
6: update 6: update
7: set 8: update 7: set 8: update
65
Interaction en mode centralisé
Server Node 1 Node 2
A C/RDP C/PDP P C/PDP P
1: set
2: set
3: set
4: set
5: get
6: update
7: update 7: update
66
Interaction en mode hybride
Node 1 Node 2 Node 3
C/PDP P A C/RDP P C/PDP P
1: set
3: set 2: set
4: get 5: update
6: update 6: update
7: update 7: update
1: set
2: set
3: set
4: set
5: get 6: update
7: update 7: update
8: update 8: update
67
Modèle d'environnement virtuel
➢ Cabine Virtuelle d'Interaction Immersive (CVII ou IIVC)
✔ « workspace »
✔ « conveyor »
✔ « stage »
✔ « interaction tools »
68
Résumé des contraintes des EVC
➢ WYSIWIS (What You See Is What I See) :
✔ Maintien temps-réel de cohérence entre visualisations
✔ Architecture logicielle adaptée à la répartition
✔ Réseau à haut débit (faible latence)
➢ Coopération distante simultanée sur un objet :
✔ Synchronisations fortes entre utilisateurs
✔ Réseau à très faible latence
➢ Compréhension des actions des autres :
✔ Métaphores adaptées à la collaboration
✔ Explicitation des actions et intentions des autres
➢ Navigation et interaction fluides :
✔ Rendu 3D temps-réel
69