Télécharger le fichier pdf d’un mémoire de fin d’études
Techniques d’interaction
Les interactions qui permettent aux utilisateurs d’agir sur le monde virtuel peuvent être très différentes en fonction des tâches que les utilisateurs doivent effectuer dans l’en-vironnement virtuel. Dans certains cas, il faut trouver des techniques qui permettent aux utilisateurs d’effectuer des actions similaires à celles qu’ils effectueraient dans le monde réel. Dans d’autres cas, il faut trouver des métaphores d’interaction qui permettent aux utilisateurs d’agir de manière plus simple et plus efficace afin de leur permettre de réaliser des tâches qu’ils ne pourraient pas faire ou, du moins, pas aussi facilement dans le monde réel. En conséquence, il existe un très grand nombre de techniques et de métaphores d’in-teraction qui varient en fonction des différentes applications, mais aussi en fonction des dispositifs immersifs utilisés. Dans cette partie, nous réalisons un rapide panorama des différentes techniques couramment utilisées dans les environnements virtuels en se basant sur le livre de [Bowman et al., 2004] et sur le manuscrit de thèse de [Aguerreche, 2010]. Comme pour la navigation, les techniques d’interaction sont parfois classées en deux catégories : égocentrique et exocentrique. Les interactions égocentriques regroupent les techniques où les utilisateurs agissent depuis leur propre point de vue comme ils le feraient dans le monde réel. Les interactions exocentriques regroupent les techniques où les utilisa-teurs prennent un point de vue extérieur au monde virtuel afin d’agir plus facilement. Les utilisateurs peuvent prendre ce point de vue extérieur en utilisant, par exemple, un monde en miniature [Stoakley et al., 1995] ou la technique du Scaled-world grab [Mine et al., 1997]. Néanmoins, lorsque les utilisateurs interagissent de manière égocentrique ou exocentrique, les techniques utilisées pour manipuler les objets virtuels sont souvent similaires. En effet, les tâches à effectuer sont généralement identiques que les utilisateurs agissent directement sur le monde virtuel ou sur une « maquette » du monde virtuel. Dans les deux cas, les interactions peuvent être décomposées en deux tâches : la sélection et la manipulation.
Sélection. La tâche de sélection est essentielle dont toutes les interactions dépendent. En effet, avant toute manipulation, il faut que les utilisateurs désignent les objets virtuels avec lesquels ils veulent interagir. Pour cela, il existe différentes techniques qui sont plus ou moins bien adaptées à l’application et aux dispositifs immersifs utilisés :
• Main virtuelle : la technique de sélection la plus naturelle consiste à représenter la main d’un utilisateur par une main humaine dans le monde virtuel [Jacoby et al., 1994]. Cette main permet de sélectionner les objets par le simple fait de les toucher. La représentation virtuelle de la main peut être co-localisée avec la main réelle de l’utilisateur afin qu’il ait l’impression que cette main virtuelle est sa vraie main. En plus des changements de position, le mouvement des doigts peut être reproduit sur la main virtuelle si l’utilisateur porte un dispositif permettant de repérer la position de ses doigts comme un gant de données. Cette technique est particulièrement bien adaptée au HMD car l’utilisateur ne voit pas ses mains réelles avec un tel dispositif. Cependant, cette technique a un champ d’action limité qui correspond à la longueur de bras de l’utilisateur : il ne peut sélectionner que les objets virtuels qui sont à portée de sa main et il est obligé de se déplacer pour sélectionner des objets distants.
• Métaphore du « Go-Go » : cette technique proposée par [Poupyrev et al., 1996] est une extension de la main virtuelle. Elle permet à un utilisateur d’accéder à des objets éloignés sans avoir à se déplacer dans le monde virtuel. Lorsque la main réelle de l’utilisateur dépasse un seuil d’éloignement par rapport à son corps, la relation entre le déplacement de la main virtuelle et celui de la main réelle n’est plus linéaire, mais exponentielle. L’utilisateur peut ainsi sélectionner précisément les objets virtuels situés près de lui, mais il peut aussi aller sélectionner des objets lointains grâce à des déplacements plus importants de sa main virtuelle. Par contre, la co-localisation de la main de l’utilisateur n’est pas conservée avec cette technique.
• Curseur 3D : de la même façon que le curseur de la souris permet de désigner un point précis dans l’espace 2D du bureau de l’ordinateur, le curseur 3D [Zhai et al., 1994] permet de désigner un point précis de l’espace 3D de l’environnement virtuel. Il peut être déplacé dans tout le monde virtuel afin de sélectionner les objets qui s’y trouvent. Ce curseur 3D peut être contrôlé de deux façons différentes :
– en position grâce, par exemple, à un bras à retour d’effort ou un objet repéré par un système de tracking (comme un flystick ). Le curseur 3D peut être co-localisé avec l’objet réel qui sert à le contrôler. Cependant, la relation entre l’objet réel et le curseur 3D peut aussi être « débrayée » afin de pouvoir replacer l’objet réel et d’emmener le curseur 3D plus loin que le champ d’action du dispositif : la co-localisation n’est alors plus assurée.
– en vitesse grâce, par exemple, à un joystick ou une souris 3D (SpaceMouse). Bien entendu, dans ce cas, la co-localisation n’est pas possible.
• Rayon virtuel : cette technique utilise un rayon qui va être projeté dans le monde virtuel [Mine, 1995a]. Ce rayon permet de sélectionner les objets virtuels qu’il inter-secte. Il permet ainsi à un utilisateur de sélectionner des objets distants simplement en les pointant. Cet utilisateur spécifie l’origine et la direction du rayon virtuel grâce à sa main ou à un objet réel. La représentation du rayon virtuel est souvent co-localisée avec la main ou l’objet réel qui sert à matérialiser son origine. Cette technique est donc particulièrement bien appropriée aux dispositifs offrant une immersion visuelle importante (de type CAVE® ou salle immersive) car l’utilisateur voit vraiment le rayon virtuel partir de sa main ou de l’objet réel.
• Technique sur « image plan » : cette technique permet à un utilisateur de sélec-tionner des objets virtuels en interagissant avec une « image plan », c’est-à-dire une projection 2D de la scène virtuelle 3D [Pierce et al., 1997]. Pour cela, l’utilisateur doit pointer l’objet à sélectionner avec ses doigts ou un objet dédié : la sélection se fait sur le premier objet qui intersecte la ligne qui part des yeux de l’utilisateur et qui passe par ses doigts ou l’objet dédié. Il existe de nombreuses solutions pour pointer l’objet à sélectionner sur l’« image plan » : l’utilisateur place l’objet entre son pouce et son index, pose son index sur l’objet, place sa paume sous l’objet, encadre l’objet avec ses deux mains, occulte l’objet avec un objet spécifique, etc. Pour mettre en œuvre cette technique, la tête de l’utilisateur et l’objet dédié à la sélection doivent être repérés pour déterminer la ligne virtuelle qui pointe vers l’objet à sélectionner.
Manipulation. La manipulation est la tâche qui consiste à spécifier ou modifier les pro-priétés des objets du monde virtuel (leur position, leur orientation, leur forme, leur couleur, etc.). Cette tâche est intimement liée à la sélection car il n’est pas possible de manipuler un objet virtuel sans l’avoir sélectionné au préalable. Les techniques de sélection vues dans la partie précédente permettent également de réaliser certaines tâches simples de mani-pulation telles que des translations ou des rotations. Pour cela, une commande permet aux utilisateurs de spécifier qu’ils veulent sélectionner l’objet virtuel désigné et passer en mode manipulation. Généralement, l’objet virtuel se retrouve alors « accroché » à l’outil d’interaction et subit alors les même déplacements que cet outil. Par exemple, lorsqu’un utilisateur utilise une main virtuelle, il peut fermer sa main pour sélectionner un objet virtuel. Il passe alors en mode manipulation et il peut déplacer l’objet qui est en contact avec la main virtuelle simplement en bougeant sa main.
Cependant, les techniques utilisées pour la sélection ne sont pas toutes bien adaptées à la manipulation et elles ne permettent pas toujours de réaliser les modifications souhaitées. Par exemple, il est difficile d’utiliser le rayon virtuel pour effectuer des rotations autres que celles autour de l’axe du rayon. De plus, lorsque l’objet virtuel sélectionné se situe loin des utilisateurs, il est difficile pour eux d’être précis dans leurs manipulations. Pour remédier à ces limitations, certaines techniques utilisent une combinaison de plusieurs métaphores. La méthode HOMER proposée par [Bowman et Hodges, 1997] utilise un rayon virtuel pour sélectionner les objets virtuels, puis une main virtuelle attachée à l’objet sélectionné pour le manipuler plus facilement. D’autres techniques proposent, en plus, de rapprocher l’objet virtuel des utilisateurs une fois qu’il a été sélectionné. Cela permet aux utilisateurs de manipuler plus précisément l’objet et de mieux voir ce qu’ils font. Lorsque la manipulation est terminée, l’objet virtuel est replacé à sa place initiale dans le monde virtuel. Cependant, cette solution n’est pas envisageable pour des interactions collaboratives car il n’est pas toujours possible de rapprocher l’objet virtuel de deux utilisateurs en même temps.
Pour des manipulations plus complexes, il peut être nécessaire de réaliser différentes actions distinctes sur un même objet virtuel. De plus, ces différentes actions peuvent mettre en œuvre des techniques d’interactions très différentes. Il est donc nécessaire que les uti-lisateurs précisent l’action qu’ils souhaitent appliquer à l’objet sélectionné. Pour effectuer ce choix, nous distinguons deux fonctionnements différents :
– Le choix de l’outil d’interaction détermine l’action qui peut être réalisée par un utilisateur et donc les objets avec lesquels il peut interagir (c’est-à-dire les objets qui possèdent les bonnes propriétés correspondant à cette action). Les utilisateurs peuvent choisir l’outil d’interaction simplement en appuyant sur un bouton de leur périphérique d’interaction, en prenant un objet virtuel représentant cet outil dans le monde virtuel, ou en le sélectionnant dans un menu. Par exemple, dans le modeleur graphique 3DM [Butterworth et al., 1992], l’utilisateur choisit l’outil d’interaction au travers d’un menu 3D qui est présent directement dans le monde virtuel.
– Le choix de l’objet virtuel détermine les actions qui peuvent lui être appliquées par l’utilisateur qui l’a sélectionné : les « Smart Objects » [Kallmann et Thalmann, 1999] indiquent eux-mêmes les actions que les utilisateurs peuvent leur appliquer.
Intégration des utilisateurs dans l’environnement virtuel
Dans cette partie, nous présentons d’un point de vue plus technique les différentes pro-positions pour intégrer les utilisateurs au sein de la boucle perception/action en tenant compte de leur environnement réel et des dispositifs matériels qu’ils utilisent. Les solutions pour intégrer les utilisateurs et leur environnement réel peuvent être classées en trois caté-gories avec des objectifs graduels. Dans la partie 1.1.3.1, nous détaillons les solutions qui permettent d’abstraire les dispositifs matériels lors de la conception d’un système de réalité virtuelle afin de faciliter le déploiement d’une application sur des dispositifs matériels variés. Ces solutions permettent de mettre en relation de manière générique les retours sensoriels et les actions des utilisateurs avec les dispositifs qu’ils utilisent. Dans la partie 1.1.3.2, nous présentons les systèmes de réalité virtuelle qui intègrent les dispositifs matériels des utilisateurs au sein de l’environnement virtuel. Cela permet d’assurer une co-localisation de ces dispositifs en adaptant leurs retours sensoriels ou leurs actions en fonction de leur position dans le monde virtuel. Enfin, dans la partie 1.1.3.3, nous verrons que certaines applications nécessitent d’intégrer en plus dans l’environnement virtuel l’espace d’interac-tion réel associé à un dispositif matériel. Cela permet de faire percevoir aux utilisateurs les limites de leurs capacités de perception et d’interaction dans l’environnement virtuel, ainsi que d’adapter les techniques d’interaction en fonction de ces limites.
Abstraction des dispositifs matériels
De nombreux systèmes ont été proposés pour permettre le développement d’applications de réalité virtuelle. Même si les premiers d’entre eux étaient très spécifiques à des carac-téristiques techniques données (dispositifs d’entrée/sortie, système d’exploitation, etc.), la plupart des systèmes cherchent à s’abstraire au maximum des dispositifs matériels utilisés. Cela permet d’utiliser une même application de réalité virtuelle avec plusieurs types de dispositifs matériels ou avec des configurations différentes. Comme présenté dans [Aguerreche, 2010], il existe différentes manières de mettre en œuvre cette abstraction.
Afin de séparer le code principal d’une application de réalité virtuelle et celui associé aux dispositifs matériels utilisés, MR Toolkit [Shaw et al., 1993] propose de répartir les différents processus de l’application en trois couches. La première est la couche matérielle : chaque processus de cette couche correspond à un dispositif matériel et il communique avec la seconde couche par l’intermédiaire de sockets. Une seconde couche fournit une interface haut-niveau pour la couche matérielle et fait le lien avec la troisième couche. Enfin, la troisième couche correspond à l’application principale.
GNU/MAVERIK [Hubbold et al., 1999] utilise un système de callbacks. Chaque dispo-sitif matériel doit implémenter ces callbacks pour faire remonter ses informations (positions 3D, actions, etc.) au reste de l’application. Les développeurs peuvent ainsi concevoir leur application en se basant sur ces callbacks sans se soucier des dispositifs matériels qui seront utilisés. Il faudra néanmoins que les dispositifs matériels soient capables de fournir toutes les informations requises par l’application.
VR-Juggler [Bierbaum et al., 2001] se base sur un mécanisme d’héritage : les périphéri-ques d’interaction sont regroupés en plusieurs catégories (périphériques de positions, péri-phériques analogiques, etc.) ayant chacune une interface associée. Intégrer un nouveau dis-positif matériel consiste à implémenter les interfaces qui lui correspondent. L’application peut ainsi être développée en se basant seulement sur les interfaces des différents types de périphériques qui sont nécessaires dans cette application. D’une façon similaire, DE-VAL (DEVice Abstraction Layer for VR/AR) [Ohlenburg et al., 2007] définit une couche générique d’abstraction des dispositifs matériels qui est structurée en une hiérarchie d’in-terfaces associées aux différents types de dispositifs matériels (cf. figure 1.15). Cette couche d’abstraction peut ainsi être facilement étendue à d’autres types de dispositifs.
Dans les méthodes présentées précédemment, l’abstraction des dispositifs matériels est réalisée au niveau logiciel à l’intérieur du système. Cependant, une autre solution consiste à déplacer la couche d’abstraction en dehors du système. VRPN [Taylor et al., 2001] est constitué d’un ensemble de serveurs pour chacun des différents dispositifs matériels. Un serveur VRPN est généralement exécuté sur une machine séparée qui est reliée directement à un dispositif matériel. Le serveur envoie par le réseau les données provenant de ce dis-positif à la machine qui exécute l’application principale. L’application principale a donc juste à traiter les actions qu’elle reçoit des serveurs. Ces actions arrivent sous une forme abstraite (indépendante du dispositif matériel comme des positions 3D, des évènements, etc.) ce qui permet à l’application de s’adapter à n’importe quel dispositif matériel pour lequel il existe un serveur VRPN. Cette solution a connu un succès important et intègre des serveurs pour un grand nombre de dispositifs matériels de réalité virtuelle.
Intégration des dispositifs matériels
Les solutions précédentes permettant de s’abstraire des dispositifs matériels considèrent ces dispositifs seulement comme des services qui envoient des données en entrée ou reçoivent des données en sortie. Cependant, il peut être nécessaire de considérer chacun de ces dis-positifs comme étant liés à une entité avec une position dans le monde virtuel. Certains systèmes proposent de modéliser les dispositifs matériels dans l’environnement virtuel afin d’adapter les retours qu’ils transmettent aux utilisateurs ou les actions qu’ils permettent d’effectuer sur le monde virtuel en fonction de leur position dans le monde virtuel.
Par exemple, pour les dispositifs de visualisation, il est possible de placer une camera virtuelle qui définit les images affichées sur le dispositif de visualisation qui lui est associé. [Robinett et Holloway, 1992] proposent une hiérarchie de systèmes de coordonnées pour modéliser un système de réalité virtuelle utilisant un visio-casque (HMD). Cette hiérarchie de repères permet de modifier la position, l’orientation et l’échelle d’un utilisateur dans le monde virtuel, tout en maintenant la co-localisation entre la position réelle de la tête de cet utilisateur et celle de la camera virtuelle. Dans un environnement virtuel collaboratif, [Zhang et Furnas, 2005] proposent une approche similaire en utilisant la particularité du graphe de scène de Java3D [Sowizral et Deering, 1999]. Le concept de la ViewPlatform de Java3D définit un système de coordonnées particulier pour décrire le dispositif de vi-sualisation de chaque utilisateur. Cette ViewPlatform permet donc à chaque utilisateur d’utiliser la même application en l’adaptant à son propre système de visualisation avec l’idée de « write once, view everywhere ».
De façon plus générale, Dive [Hagsand, 1996][Frécon et Stenius, 1998] et ensuite Di-verse [Kelso et al., 2002] permettent de créer un environnement virtuel extensible et recon-figurable, indépendamment des dispositifs matériels utilisés. Ils utilisent une structure de données particulière pour décrire la scène du monde virtuel à la manière d’un graphe de scène. Cette structure de données est basée sur un système de modules qui peuvent être liés à différents dispositifs matériels. Par exemple, [Steed, 2008] propose d’utiliser les abstrac-tions d’un véhicule, de l’utilisateur et du corps de l’utilisateur pour adapter la navigation aux dispositifs matériels qui peuvent être utilisés. Ainsi, ces abstractions sont « pilotées » en fonction des périphériques d’interaction dont les utilisateurs disposent :
– Si l’utilisateur dispose uniquement d’un joystick, il contrôlera seulement le véhicule.
– Si l’utilisateur dispose en plus d’un système de tracking qui permet de le repérer dans son dispositif immersif, il pourra en plus déplacer son abstraction dans le véhicule.
– Si ce système de tracking permet de repérer de manière indépendante chacun des membres de l’utilisateur, il pourra en plus animer l’abstraction de son corps à l’inté-rieur du véhicule.
D’une façon similaire, Simple Virtual Environment (SVE) [Kessler et al., 2000] permet de concevoir des applications de réalité virtuelle dont la configuration des dispositifs maté-riels sera spécifiée uniquement lors de l’exécution de l’application. Pour cela, il propose de clairement séparer le modèle décrivant l’environnement virtuel et les dispositifs matériels lors de la conception de l’environnement virtuel. Le modèle de l’environnement virtuel in-clut une description de la scène 3D, ainsi qu’une représentation virtuelle de l’utilisateur. Cette représentation virtuelle sera ensuite contrôlée par les dispositifs d’entrée et définira les retours envoyés à l’utilisateur au travers des dispositifs de sortie.
Enfin, la Cabine Virtuelle d’Immersion [Duval et Chauffaut, 2006] propose d’utiliser un ensemble de systèmes de coordonnées pour coupler la navigation et les interactions dans les environnements virtuels collaboratifs multi-échelle. Grâce à cette Cabine Virtuelle d’Immersion, les outils d’interaction sont repérés dans un système de coordonnées propre à chaque utilisateur. Cela permet aux utilisateurs de naviguer (y compris en changeant d’échelle) dans le monde virtuel en transportant avec eux leurs outils d’interaction.
Intégration des espaces d’interaction réels
Les solutions précédentes proposent d’intégrer certains dispositifs matériels dans l’en-vironnement virtuel, mais elles ne tiennent pas compte des espaces d’interaction 3D qui leur sont associés. Cependant, certaines applications nécessitent d’intégrer ces espaces réels dans l’environnement virtuel afin de prendre en compte les possibilités de perception et d’in-teraction que les dispositifs offrent aux utilisateurs. Cette prise en compte permet, d’une part, d’adapter les techniques d’interaction en fonction des possibilités de perception et d’interaction des utilisateurs et, d’autre part, de leur faire percevoir ces possibilités.
Espace de déplacement physique Le modeleur graphique 3DM [Butterworth et al., 1992] propose de matérialiser la zone couverte par le système de tracking par un tapis volant virtuel (Magic Carpet) représenté par un cercle rouge sur le sol du monde virtuel (cf. figure 1.16). L’utilisateur qui utilise un visiocasque (HMD) peut se déplacer physiquement
Communication entre utilisateurs
Comme dans le monde réel, la communication entre les utilisateurs est essentielle pour permettre une collaboration efficace. La parole est le moyen de communication le plus simple à mettre en œuvre et le plus naturel pour les utilisateurs. En conséquence, de nombreuses plateformes de réalité virtuelle intègrent la voix des utilisateurs. Si la plate-forme en elle-même n’intègre pas la voix, il est toujours possible d’utiliser un logiciel de voix sur IP pour remédier à ce manque. Comme le précisent [Hindmarsh et al., 1998], la communication orale apporte aux utilisateurs beaucoup d’informations complémentaires pour la collaboration et permet éventuellement de compenser une mauvaise perception de l’environnement virtuel ou des autres utilisateurs. Par exemple, elle permet aux utilisateurs de compléter leur expertise du monde virtuel lorsqu’ils ont des points de vue différents ou de se coordonner lorsqu’ils réalisent une co-manipulation. Même si la communication orale est souvent pertinente lorsque deux utilisateurs sont en train de réaliser une tâche ensemble, elle peut entrainer des discontinuités lors des interactions comme l’expliquent [Bowers et al., 1996]. De plus, ce mode de communication est difficile à utiliser lorsque les utilisateurs sont nombreux ou lorsque l’environnement est bruyant.
Des outils d’interaction ou des outils dédiés peuvent aussi être utilisés pour la com-munication visuelle entre utilisateurs. Par exemple, un rayon virtuel peut être utilisé par un utilisateur pour montrer aux autres des détails intéressants du monde virtuel comme il le ferait avec un pointeur laser dans le monde réel. Certaines applications permettent en plus aux utilisateurs de laisser des annotations dans le monde virtuel sous diverses formes (texte, son, vidéo, etc). Ces annotations sont particulièrement pertinentes pour l’étude de données scientifiques comme le présentent [Schild et al., 2009]. De plus, ce mode de com-munication permet une collaboration différée dans le temps car un utilisateur peut laisser des annotations à un moment donné et un autre utilisateur peut venir les voir plus tard.
Navigation collaborative
Comme l’expliquent [Snowdon et al., 1995], les environnements virtuels collaboratifs sont du type WYSINWIS (What Your See Is Not What I see) dans le sens où les utilisateurs peuvent prendre des points de vue différents sur le monde virtuel afin de compléter leur perception mutuelle. Néanmoins, il est important pour cela que ces utilisateurs perçoivent en même temps le même état de l’environnement virtuel. Pour aider à la navigation, un utilisateur peut prendre un point de vue extérieur au monde virtuel comme dans CALVIN [Leigh et al., 1996] afin de diriger les autres utilisateurs qui naviguent ou même de les placer directement comme un objet virtuel pour leur offrir un point de vue intéressant.
Même si les utilisateurs peuvent naviguer indépendamment, il peut être intéressant de leur permettre de synchroniser leur déplacement afin qu’ils puissent se suivre dans le monde virtuel ou se placer au même endroit pour avoir le même point de vue (si un utilisateur veut montrer quelque chose à un autre). [Duval et al., 2008] proposent de permettre aux utilisateurs de définir un ensemble de points de vue intéressants que les autres pourront ensuite parcourir pour explorer des données scientifiques. Par ailleurs, [Yang et Olson, 2002] proposent trois modes pour permettre à deux utilisateurs de naviguer ensemble :
– les deux utilisateurs ont la même vue mais un seul dirige le déplacement,
– l’un des utilisateurs suit avec un offset celui qui dirige le déplacement,
– l’un des utilisateurs à une vue extérieure au monde virtuel et seul l’autre se déplace.
Enfin, [Dodds et Ruddle, 2008] proposent une navigation en groupe où les utilisateurs peuvent se déplacer indépendamment, mais où le système offre des fonctionnalités pour les aider à rester en groupe. Il leur permet, par exemple, de suivre automatiquement un membre du groupe ou d’être placé au centre du groupe (moyenne des positions des membres). Lors de ces déplacements automatiques, ils continuent à contrôler indépendamment leur orientation afin de pouvoir observer le monde virtuel comme ils le souhaitent.
Co-manipulation
Contrairement aux techniques d’interaction présentées dans la partie 1.1.2.2, la co-manipulation consiste à manipuler un objet virtuel à plusieurs utilisateurs en même temps. Interagir à plusieurs avec le même objet virtuel permet soit de réaliser des tâches compli-quées, soit de reproduire la manière réelle de manipuler cet objet. Pour mettre en œuvre une co-manipulation, il faut être capable de combiner les actions provenant de plusieurs uti-lisateurs en même temps. [Aguerreche, 2010] propose de classer les solutions existantes en deux catégories : la séparation des degrés de liberté (partie 1.2.4.1) et les accès concurrents à un même degré de liberté (partie 1.2.4.2).
Séparation des degrés de liberté
La séparation des degrés de liberté permet à plusieurs utilisateurs d’accéder indépen-damment à des degrés de liberté différents. Cela permet d’éviter les modification concur-rentes sur les mêmes paramètres d’un objet. Classiquement, six degrés de liberté sont associés à un objet virtuel : trois pour les translations et trois pour les rotations. Cepen-dant, il est possible de modifier de cette façon de nombreux autres paramètres de l’objet virtuel comme sa taille, sa couleur, etc. [Pinho et al., 2002] proposent deux méthodes pour réaliser la séparation des degrés de liberté :
• Les techniques coopératives homogènes : les utilisateurs utilisent chacun un même outil d’interaction mono-utilisateur présenté dans la partie 1.1.2.2.
• Les techniques coopératives hétérogènes : les utilisateurs utilisent des outils d’interaction différents (par exemple : un rayon virtuel pour qu’un utilisateur applique les translations et une main virtuelle pour qu’un autre applique les rotations).
[Pinho et al., 2002] concluent que la technique de séparation des degrés de liberté permet de faire plus facilement et plus rapidement des manipulations difficiles, mais aussi des ajustements plus précis que lorqu’un utilisateur réalise seul la manipulation.
Accès concurrents à un même degré de liberté
Pour permettre à des utilisateurs d’accéder en même temps aux mêmes degrés de liberté d’un objet virtuel, il faut mettre en œuvre des techniques pour gérer les modifications concurrentes. Une première solution consiste à faire la moyenne des valeurs données par les outils d’interaction de chaque utilisateur afin de calculer la valeur du paramètre contrôlé comme la position ou l’orientation d’un objet virtuel. [Noma et Miyasato, 1997] proposent une deuxième solution qui consiste à appliquer des forces sur les points de l’objet saisi par les utilisateur grâce à une main virtuelle. La position et l’orientation de l’objet virtuel sont le résultat de l’équilibre des forces appliquées par les utilisateurs. Afin d’éviter les mouvements brusques et les instabilités, un système de ressort est utilisé entre la main virtuelle et le point d’application de la force sur l’objet virtuel (cf. figure 1.24). Si deux utilisateurs seulement veulent réaliser ensemble cette manipulation physique (basée sur des forces), il est difficile de contrôler les six degrés de liberté de l’objet virtuel (en particulier la rotation) parce qu’il tourne de façon non contrôlée autour de l’axe formé par les deux points saisis. [Aguerreche et al., 2009] proposent une technique de manipulation à trois mains : un utilisateur possède deux points de contrôle, alors que l’autre n’en possède qu’un seul. Ces trois points définissent un plan qui sert de support pour manipuler l’objet. Cette technique permet de contrôler plus facilement et d’une façon plus réaliste les six de degrés de liberté de l’objet virtuel. Si les utilisateurs effectuent une collaboration locale, [Aguerreche et al., 2010] proposent d’utiliser en plus une interface tangible re-configurable pour matérialiser les trois points de contrôle.
Par ailleurs, il faut aussi trouver des solutions pour représenter les actions appliquées par les utilisateurs sur l’objet virtuel afin de permettre à chacun de comprendre quelle est son action et quelles sont les actions des autres sur l’objet. Si les utilisateurs utilisent des dispositifs à retour d’effort, il est possible de faire ressentir au travers d’un retour haptique les actions des autres. Autrement, il est possible d’utiliser des retours visuels comme une ligne extensible pour matérialiser le « ressort » entre le point saisi de l’objet et l’outil servant à le manipuler, ou des rayons coudés ou courbés pour matérialiser l’action appliquée à l’objet par les différents utilisateurs, comme proposé par [Riege et al., 2006] ou [Duval et Fenals, 2002] (cf. figure 1.25).
|
Table des matières
Introduction
1 Réalité virtuelle et collaboration
1.1 Environnement virtuel
1.1.1 Perception de l’environnement virtuel
1.1.1.1 Restitution multi-sensorielle
1.1.1.2 Co-localisation
1.1.2 Action sur l’environnement virtuel
1.1.2.1 Techniques de navigation
1.1.2.2 Techniques d’interaction
1.1.3 Intégration des utilisateurs dans l’environnement virtuel
1.1.3.1 Abstraction des dispositifs matériels
1.1.3.2 Intégration des dispositifs matériels
1.1.3.3 Intégration des espaces d’interaction réels
1.2 Collaboration
1.2.1 Perception des autres utilisateurs
1.2.2 Communication entre utilisateurs
1.2.3 Navigation collaborative
1.2.4 Co-manipulation
1.2.4.1 Séparation des degrés de liberté
1.2.4.2 Accès concurrents à un même degré de liberté
1.3 Synthèse
2 Architectures des environnements virtuels collaboratifs
2.1 Environnement virtuel distribué et maintien de cohérence
2.1.1 Systèmes étudiés
2.1.2 Architecture réseau du système
2.1.2.1 Architecture pair-à-pair
2.1.2.2 Architecture client/serveur
2.1.2.3 Architecture hybride
2.1.3 Distribution des données
2.1.3.1 Mode centralisé
2.1.3.2 Mode homogènement répliqué
2.1.3.3 Mode partiellement répliqué (hybride)
2.1.4 Mécanismes de maintien de la cohérence
2.1.4.1 Synchronisation
2.1.4.2 Gestion de la concurrence
2.1.4.3 Réduction des communications
2.2 Architecture logicielle d’une application collaborative
2.2.1 Architecture logicielle d’un système interactif
2.2.1.1 Modèles basés sur une décomposition fonctionnelle
2.2.1.2 Modèles multi-agents
2.2.1.3 Modèles hybrides
2.2.2 Architecture logicielle d’un système collaboratif
2.2.2.1 Modèles basés sur des couches d’abstraction
2.2.2.2 Modèles basés sur des agents
2.2.2.3 Modèles basés sur une description fonctionnelle de la collaboration
2.2.2.4 Modèles hybrides
2.3 Synthèse
3 Modèle d’adaptation dynamique de la distribution des données
3.1 Paradigme de référents et de proxys
3.2 Trois modes de distribution des données
3.2.1 Caractéristiques de chaque mode
3.2.1.1 Mode centralisé
3.2.1.2 Mode hybride
3.2.1.3 Mode répliqué
3.2.2 Comparaison des trois modes
3.3 Adaptation spécifique à chaque objet
3.4 Adaptation dynamique durant la session
3.5 Instanciation avec une architecture réseau client/serveur
3.5.1 Impacts sur les trois modes de distribution
3.5.2 Mécanismes centralisés pour améliorer la cohérence
3.5.2.1 Sauvegarde de l’état de l’environnement virtuel
3.5.2.2 Synchronisation
3.5.2.3 Gestion des droits et des accès concurrents
3.5.3 Mesures de performance
3.5.3.1 Conditions expérimentales
3.5.3.2 Mesures de LI et DC
3.5.3.3 Mesures de la charge de calcul et des communications réseaux
3.6 Conclusion
4 Modèle d’architecture logicielle pour les environnements virtuels collaboratifs
4.1 Interprétation de l’architecture logicielle PAC
4.2 Modèle d’architecture logicielle PAC-C3D
4.3 Mise en œuvre d’un environnement virtuel collaboratif avec PAC-C3D
4.3.1 Adaptation dynamique de la distribution des données
4.3.1.1 Instanciation du mode centralisé
4.3.1.2 Instanciation du mode hybride
4.3.1.3 Instanciation du mode répliqué
4.3.2 Découplage des représentations virtuelles
4.3.3 Gestion des objets virtuels
4.3.4 Création des objets virtuels
4.4 Utilisation de PAC-C3D dans le cadre du projet Collaviz
4.4.1 Intégration de différentes librairies graphiques
4.4.2 Interopérabilité entre différentes librairies graphiques
4.4.3 Intégration d’un moteur physique
4.4.4 Association de différents retours sensoriels
4.5 Conclusion
5 Modèle d’intégration des espaces d’interaction réels des utilisateurs
5.1 Concept de Cabine Virtuelle d’Interaction Immersive (CVII)
5.2 Modèle de CVII
5.2.1 Hiérarchisation des espaces d’interaction
5.2.2 Intégration des espaces d’interaction dans l’environnement virtuel
5.2.3 Structure de la CVII
5.2.4 Opérateurs de la CVII
5.3 Fonctionnalités de la CVII
5.3.1 Navigation
5.3.2 Intégration des outils d’interaction
5.3.3 Perception des limites des espaces d’interaction
5.3.4 Collaboration au travers de plusieurs CVII
5.4 Exemples d’utilisation de la CVII
5.4.1 Deux exemples d’instanciation de la CVII
5.4.1.1 Instanciation pour une station de travail semi-immersive
5.4.1.2 Instanciation pour une salle immersive
5.4.2 Métaphore du curseur 2D/rayon 3D
5.4.3 Utilisation des fonctionnalités de navigation collaborative
5.4.4 Système de caméras pour la visualisation de données scientifiques .
5.5 Conclusion
6 Expérimentations sur l’exploration collaborative de données scientifiques
6.1 Cadre général des expérimentations
6.1.1 Tâche à réaliser lors des expérimentations
6.1.2 Manipulation mono-utilisateur du plan de clipping
6.1.3 Co-manipulation à deux utilisateurs du plan de clipping
6.2 Mise en œuvre des expérimentations
6.2.1 Distribution des données sur le réseau
6.2.2 Adaptation aux dispositifs immersifs des deux sites
6.3 Expérimentations de manipulation du plan de clipping
6.3.1 Première expérimentation
6.3.2 Deuxième expérimentation
6.3.2.1 Description de l’expérimentation
6.3.2.2 Résultats
6.3.3 Discussion
6.4 Conclusion
Conclusion
Bibliographie
Télécharger le rapport complet