Aménagement d'intérieur en réalité virtuelle (Post-WIMP 16/17)

De Ensiwiki
Aller à : navigation, rechercher

Expert.png  Troisième Année 

Introduction : le projet, l'équipe

Notre projet vise à faciliter l'aménagement d'une pièce virtuelle, en permettant à l'utilisateur d'organiser la disposition des meubles comme il le souhaite. Cette prévisualisation de la pièce permettra de se rendre compte de l'agencement optimal avant d'acheter effectivement les meubles adéquats.

Notre objectif est de rendre cette tâche intuitive et donc accessible à un utilisateur n'ayant reçu aucune formation préalable, car nos clients cibles sont les agences immobilières, les décorateurs d'intérieur ou même les particuliers ayant envie de changement chez eux.

Pour mener à bien ce projet, nous avons formé une équipe composée de :

Nous avons été encadrés par François Bérard.

Nos Outils

Notre solution permet une utilisation basée sur des gestes intuitifs en immersion totale dans un monde virtuel, et s'appuie sur deux outils disponibles au Fablab de l'Ensimag : l'Oculus Rift DK2 et la Wiimote.

Oculus Rift DK2

Oculus.jpg


Oculus Rift Dk2 : version développeur du casque de réalité virtuelle distribué en 2014 qui permet de plonger l'utilisateur dans un monde 3D. Cette version beta n'est pas aussi performante que l'Oculus Rift commercialisé en 2016 mais est suffisante pour démontrer la pertinence de cette interaction homme-machine novatrice.

L'Oculus est connecté à l'ordinateur et à la carte graphique, ce qui lui permet de projeter sur son écran LCD un monde virtuel. Deux lentilles, une pour chaque œil, déforment alors la scène pour donner un effet 3D par stéréo-vision.

Des LEDs placées sur le devant du casque sont repérées par la caméra et permette d'obtenir l'inclinaison de la tête. L'utilisateur peut donc tourner la tête et voir son champ de vision modifié en temps réel, dans une limite de 180 degrés pour que les LEDs restent dans le cadre de la caméra.

Wiimote et Nunchuk

Wiimote.jpg


Wiimote et Nunchuk : Accessoires de base de la console de jeux Wii, la télécommande Wiimote est équipée de plusieurs boutons (nous en utilisons 3 : les flèches directionnelles, le bouton circulaire A et le bouton B à l'arrière) et d'accéléromètres, tandis que le Nunchuk est équipé d'un joystick et d'un accéléromètre. Les deux sont reliés par un câble. La Wiimote est aussi équipée d'une caméra infrarouge couplée à une barre de leds, lui permettant de capter les mouvements latéraux en plus des mouvements verticaux. Il est possible de substituer cette barre par des bougies. Les données renvoyés par le capteur sont cependant moins précises dans ce cas.

Avec la Wiimote dans une main et le Nunchuk dans l'autre, l'utilisateur pourra se déplacer dans le monde virtuel, choisir les meubles dans le catalogue, et les positionner comme il le souhaite dans la pièce.

Notre Solution

Dans ce paragraphe, nous allons expliciter les modalités de notre interaction : comment utiliser notre système d'aménagement d'intérieur en réalité virtuelle, quels gestes pour quelles actions.

Room.png

Déplacement de l'utilisateur dans le monde virtuel

La gestion des déplacements de l'utilisateur s'effectue grâce au joystick du Nunchuk. En poussant celui-ci vers l'avant, l'utilisateur se déplace dans la direction de la caméra dans le monde virtuel, de même pour reculer. Pour changer de direction, l'utilisateur doit orienter la direction de la caméra grâce aux inclinaisons gauche/droite du joystick du Nunchuk. Cependant, il faut noter que la direction de la caméra dans laquelle les déplacements s'effectuent peut être différente de la direction du regard fournie par l'Oculus. Ce déplacement n'est donc pas entièrement réaliste (déplacement au Nunchuk et non pas en marchant dans la pièce), cependant il est bien adapté aux besoins car il est intuitif (utilisation classique du joystick dans un jeu vidéo), sans effort et relativement précis.

Gestion du catalogue de meubles

La gestion du catalogue s'effectue avec la Wiimote. En appuyant sur le bouton A, le menu catalogue apparait sous forme de catégories de meubles (ex : chaises, canapés, tables). Il est possible de changer de catégorie en appuyant sur les flèches directionnelles haut et bas de la Wiimote. Pour entrer dans une catégorie et faire défiler les meubles de cette classe, il faut utiliser les flèches directionnelles gauche et droite de la Wiimote. Pour sélectionner un meuble du catalogue, il faut maintenir le bouton B (à l'arrière de la Wiimote) enfoncé, le meuble est alors "saisi" et l'utilisateur revient à la scène. Pour quitter le menu catalogue, il suffit d'appuyer de nouveau sur le bouton A, comme pour l'ouvrir.

La gestion du catalogue est donc plutôt réaliste car elle se rapproche du défilement des pages d'un magazine.

Catalogue.png

Manipulation des meubles dans le monde virtuel

Que ce soit à partir du catalogue ou directement dans la pièce, un meuble est saisi en maintenant le bouton B enfoncé. Pour déplacer le meuble, il faut pointer avec la Wiimote à l'endroit souhaité sur le sol (puisque seuls des meubles destinés à être posés sur le sol sont proposés dans le catalogue), puis lâcher le bouton B pour déposer le meuble. Pour faire pivoter le meuble, il faut utiliser les flèches directionnelles latérales de la Wiimote.

Cette interaction est également inspirée du monde réel : se saisir d'un meuble, le déplacer ou le faire pivoter, puis le reposer. Il est également logique que le meuble soit directement plaqué sur le sol car notre objectif est d'immerger l'utilisateur dans un monde virtuel le plus proche du possible du monde réel. Cependant d'un point de vue pratique, la gestion des meubles dans la pièce est moins aisée que ce que nous avions prévu : il est difficile de maintenir le bouton B enfoncé tout en appuyant sur les flèches pour le faire pivoter par exemple.

Évaluation de notre interaction

Prise de recul par rapport au document projet initial

Les fonctionnalités majeures annoncées dans le document projet initial ont été implémentées : il est possible de se déplacer dans la pièce, de choisir des meubles dans un catalogue, et de les contrôler dans le monde virtuel. Les intégrations de l'Oculus Rift et de l'association Wiimote - Nunchuk ont été faites avec succès.

Certaines fonctionnalités secondaires annoncées dans le document projet initial ont cependant été modifiées ou supprimées.

En effet, dans la version DK2 de l'Oculus Rift, les LEDs permettant de repérer son inclinaison sont uniquement situées sur l'avant du casque, ce qui permet un champ de rotation de 180° uniquement. Alors que nous comptions au départ sur un champ de rotation de 360° en plaçant l'utilisateur sur une chaise pivotante pour plus de réalisme, nous avons du nous contenter d'augmenter le champ de 180° grâce au Nunchuk. Cette limitation a été modifiée pour la version commercialisable de l'Oculus (ajout de LEDs à l'arrière du casque), avec un tel casque nous aurions pu conserver notre idée de départ.

De plus, nous souhaitions pouvoir supprimer des meubles que l'utilisateur aurait déjà intégré à la pièce, au cas où il changerait d'avis. C'est une fonctionnalité capitale pour que l'application soit utilisable, et elle n'a pas été implémentée faute de temps. Ce que nous avions prévu : lorsqu'un meuble de la pièce est sélectionné (de la même manière que pour le déplacer ou le faire pivoter), une petite corbeille apparait dans la scène, et l'utilisateur peut alors "drag and drop" le meuble dans la corbeille. Ce geste est très intuitif et ne pose pas de problème d’obstruction du champ de vision car la corbeille resterait petite et située en bas à droite du champ : il est inspiré à la fois de la vie réelle (se saisir d'un objet, l'amener à la poubelle et l'y jeter) et des interactions WIMP (icône corbeille). Son implémentation ne pose pas de réel challenge et, si elle est essentielle pour l'utilisateur, elle ne l'est pas dans le cadre de ce cours centré sur les interactions homme-machine.

Phase de tests

Nous avons pu interroger des volontaires pour tester notre interaction de manière objective, ainsi que noter leurs remarques et leur ressenti général.


Nous avions décidé de demander aux participants de prendre en main le dispositif sans aucune indication préalable, afin de mesurer le temps d'apprentissage nécessaire pour trouver le rôle de chaque geste. Cependant après quelques essais non concluants se soldant par un abandon des participants, nous avons renoncé à tester notre interaction de cette manière.

Nous avons choisi de faire réaliser une même tâche deux fois de suite aux participants, afin de pouvoir mesurer leur rapidité d'apprentissage et d'adaptation à notre dispositif. La tâche que nous avons choisie est de "placer le 2ème canapé du menu sous la fenêtre à la droite de l'utilisateur au moment de son entrée dans la scène".

Nous avons testé sur un échantillon de 6 personnes et voici les résultats obtenus :

Participant 1er essai 2eme essai
Ilyes Kacher 2 min 13 s 1 min 21 s "Lag bluetooth, difficile de faire pivoter les meubles, problème de précision pour placer un meuble contre le mur, malgré tout l'interaction reste meilleure qu'une WIMP grâce à l'immersion totale qui est en accord avec le besoin client"
Quentin Lisack 1 min 06 s 0 min 38 s "Problème de sensibilité pour le déplacement des meubles avec les Wiimotes : il est compliqué de garder le bouton B appuyé et de tourner en même temps le meuble avec les flèches"
Mickael Ly 0 min 29 s 0 min 15 s "Wiimote gauche-droite manquante, maintenir B + flèches implique un déplacement haut/bas de la Wiimote qui perturbe le placement du meuble"
Valentin Blais 1 min 31 s 0 min 21 s "Trop sensible, ne pas maintenir B appuyé mais effectuer un appui sur B pour saisir le meuble et un autre pour le relâcher"
Ludovic Salomon 2 min 06 s 0 min 25 s "Trop sensible, sens de rotation des meubles contre-intuitif, l'ajout d'ombres pour mieux se repérer en 3D serait appréciable"
Jean Bouvattier 0 min 52 s 0 min 21 s "Bouton A pour sélectionner serait plus intuitif, réduire la sensibilité de la Wiimote"

Nous constatons que les temps chronométrés pour le deuxième essai sont significativement et de manière consistante meilleurs que ceux du premier essai. Cela montre que, si le dispositif peut être déstabilisant au premier abord, il est très rapide à prendre en main après quelques dizaines de secondes d'interaction.

Les remarques des participants soulèvent plusieurs problèmes de notre dispositif :

- Le manque d'ergonomie : maintenir le bouton B enfoncé est handicapant, notamment quand il faut faire pivoter le meuble avec les flèches directionnelles. C'est un problème que nous avions anticipé au moment de la rédaction du cahier des charges, et nous souhaitions pour cela remplacer les flèches par des à-coups du poignet.

- Le temps de latence entre le mouvement réel de la Wiimote et le mouvement du pointeur sur l'écran est perturbant. Ce problème est lié à la mauvaise qualité du bluetooth au laboratoire FabLab. Lors de tests sur des ordinateurs portables récents, ce problème disparait totalement.

- La gestion du pointeur est défaillante : unidirectionnelle et trop sensible. L'unidirectionnalité est due à un problème matériel (les bougies oscillent et il est difficile de les pointer avec l'Oculus Rift sur les yeux).

Pistes pour des améliorations

Tout d'abord, il pourrait être intéressant de pouvoir sauvegarder les scènes créées, pour ensuite les partager ou reprendre le travail à un moment ultérieur. Cette partie n'a pas été implémentée faute de temps, cependant dans le cadre de ce cours d’interactions post-WIMP elle ne représente pas un enjeu crucial.

De plus, dans le catalogue actuel, seuls des meubles voués à être posés sur le sol ont été proposés. C'est pourquoi, pour réduire la dimension du problème au strict nécessaire, les meubles sont directement placés au sol et peuvent ensuite se déplacer dans ce plan. Nous avions prévu un système similaire pour les objets pouvant être placés sur les murs, en les plaquant automatiquement sur les murs puis en les déplaçant dans ces plans, qui n'a pas pu être mis en place.

Nous pensions aussi fournir le dispositif avec un catalogue de meubles de base, et offrir par la suite la possibilité d'uploader des catalogues plus spécifiques en fonction de la pièce que l'utilisateur aménage (pour un chambre par exemple : un plus grand choix de lits, de commodes et de penderies).

Pour pallier le problème des bougies, il serait possible d'utiliser le Wii Motion Plus, petit dispositif qui ajoute un gyroscope à la Wiimote, permettant de connaître son orientation dans l'espace sans contraintes particulières et avec une précision suffisante pour nos besoins.

Il serait intéressant de fournir à l'utilisateur la possibilité de recalibrer la Wiimote sans avoir à relancer l'application, et de lui permettre de régler la sensibilité de la Wiimote : celle-ci semblait correcte à certains participants alors qu'elle était trop importante pour d'autres.

Enfin, avec les retours suivant notre phase de test, nous avons constaté qu'il serait plus simple de remplacer l'usage de la touche B de la Wiimote par une des touches du Nunchuk, et qu'il faudrait séparer l'action de pivot d'un meuble de celle de placement sur le sol.

Conclusion du projet

Nous sommes parvenus à mener ce projet à bien, depuis l'idée de base, le cahier des charges, l'implémentation et la phase de tests. La phase de test nous a permis de repérer les principaux points forts et défauts de notre interaction, et donc de proposer des pistes d'améliorations pour compléter le dispositif actuel.