Urbanisme 2.0 (POST-WIMP 19/20)

De Ensiwiki
Aller à : navigation, rechercher

Expert.png  Troisième Année 

Présentation de l’équipe

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

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


Contexte et objectifs

Notre idée consiste à faciliter la gestion de projet d’urbanisme en permettant à différents utilisateurs d'interagir dans une scène 3D virtuelle avec des objets palpables, ainsi que voir en temps réel la répercussion sur les différents paramètres et variables affichées.

Motivations

L'interaction classique avec une scène 3D est loin d’être optimale. En effet le fait de pouvoir bouger sa souris sur deux dimensions uniquement pour se déplacer dans une scène 3D n’est pas aisé. De plus dans des projets d’urbanisme par exemple, on ajoute au fait de se déplacer dans la scène, le fait de déplacer les objets/bâtiments les uns par rapport aux autres. Dans notre situation type, on n'imagine pas uniquement un utilisateur interagir avec la maquette 3D, mais plutôt le travail de toute une équipe (pour valider un prototype, le présenter ou comparer plusieurs dispositions…). Cette nouvelle forme d’interaction ajoute une toute autre dimension à l’urbanisme. Désormais, on peut interagir avec nos objets plus facilement, d’une manière très intuitive, avec plus de degrés de liberté également. L'interaction au touché direct donnera ainsi l’impression de toucher la représentation numérique, et permettra d'interagir à deux mains et/ou à plusieurs utilisateurs.


Notre interaction se positionne aussi en opposition avec les itérations que peuvent avoir les architectes ou urbanistes avec une maquette. Sur ce point notre interaction a pour volonté de se rapprocher au maximum de celle-ci et de palier aux problèmes qu'elle peut avoir: coût, pas à temps réel, peu modulable, doit repasser par une application informatique entre chaque changement...

Solution envisagée

Analyse des besoins

Nous voulons offrir à une équipe d’urbanistes la possibilité d'interagir avec des objets palpables pour modifier une scène 3D à l’écran. De telle façon, n’importe quel urbaniste pourra proposer ses solutions sans connaissance préalable éloignée de son domaine d’expertise. Ce travail qui était réservé à des experts en logiciel 3D pourra désormais être partagé entre tous les membres d’une équipe. En effet les clients ou spécialistes ne peuvent pas se former à un logiciel de représentation 3D pour exprimer concrètement les souhaits ou contraintes du milieu. Néanmoins, des connaissances seront requises par au minimum une personne pour modéliser les bâtiments initialement, en amont de tout travail collaboratif. Une fois que tous les objets physiques sont associés aux objets virtuels de la scène 3D (travail en amont) : il s’agira de déplacer, en translation ou en rotation, chaque objet pour trouver la solution à son problème d’urbanisme. Cela peut être:

  • Comment optimiser l’ensoleillement de chaque bâtiment?
  • Comment respecter les normes demandées?
  • Où placer les bornes incendies, horodateurs...?
  • Comment gérer les flux de vents, personnes ou tout autre travail initialement fait à partir de logiciels d’urbanisme?

La collaboration sera très intuitive, car il ne s’agira pas de déplacer des objets virtuelles avec son doigt, mais bien de déplacer des objets physiques, que l’on peut passer à son collègue, s’il a une contre proposition. De plus, il est très fréquent de travailler avec de nouvelles personnes, qui ont des connaissances très spécifiques sur un terrain particulier (à côté d’un parc, d’un terrain nouvellement constructible), donc cet aspect intuitif permet de pouvoir très rapidement avoir un travail productif avec ces nouvelles personnes.

Objet à manipuler

Spécifications techniques

Notre solution est composée de deux parties:

  • Les objets palpables (tel que des legos) sur lesquels seront placés des capteurs d'opti tracking ainsi que les caméras infra-rouges pour les repérer.
  • La visualisation de la scène où chaque objet réel aura sa représentation 3D sur l’écran.

La visualisation que pourra voir l'utilisateur sur l'écran aura toutes les spécificités qu'il peut attendre d'un logiciel de représentation 3D: ses bâtiments avec tout leurs détails, les ombres, le décor... Le ou les utilisateurs, après leurs itérations avec la scène 3D pourront ensuite la sauvegarder et retourner à leur travail habituel sur la scène.


Opti Track

Dans notre projet nous avons utilisé Opti-Track couplé au logiciel Unity. Nous avons placé des marqueurs sur deux objets physiques pour représenter nos deux bâtiments. Ainsi nous récupérons les déplacements de nos objets dans la scène 3D créée sur Unity. Une première partie de calibration est faite sous le logiciel Motive. Ce dernier sert à contrôler les capteurs infrarouges d'Opti-track. Par la suite, les données de déplacement des objets créés sont transmis à Unity par un Plug-in Optitrack. Une fois que les objets de Unity sont liés aux objets créés sur Motive, notre scripts décrit les translations et rotations de chaque objet respectivement, en fonction de nos besoins.

Travail réalisé

Afin de réaliser un prototype qui fonctionne, nous avons donc utilisé principalement deux logiciels, Motive et Unity. Motive est la première étape du prototype. Il consiste à mettre en place un espace 3D pour le suivi des capteurs que nous utiliserons pour déplacer les bâtiments sur Unity. Ainsi dans un premier temps, il faut calibrer Motive en fonction de notre environnement de travail et des positions des capteurs. Cependant, nous avons la possibilité de sauvegarder la calibration si nous souhaitons la réutiliser avec la même configuration. Une fois la calibration effectuée, et nos objets (que nous allons manipuler) identifiés, nous utilisons la fonctionnalité de Data Streaming sur Motive, ainsi que son plug-in sur Unity qui permet de recevoir les positions et rotations des objets marqués.


La deuxième partie de notre travail sur Unity est le plus important. Notre but est de pouvoir plus facilement manipuler 4 degrées de liberté (Translations XYZ + Rotation Y) d'un ou de plusieurs objets en même temps, chose qui est tout simplement impossible par le biais de la souris. Ainsi le but est de lier les objets que nous manipulons aux bâtiments sur la scène. Cependant, nous appliquons uniquement les transformations mesurées sur nos 4 degrées de liberté et nous ignorons les autres. Nous avons également laissé la possibilité de changer le ratio d’échelle entre les transformations que nous appliquons et celles que nous apercevons sur les bâtiments 3D, dans le cas où nous travaillons dans un petit espace et que nous avons besoin de faire des grands mouvements sur la scène 3D.

Analyse des différentes interactions

Le statu quo auquel nous pouvons comparer notre solution est soit l'interaction écran-souris sur un logiciel 3D tel que sketchup, soit une interaction tangible sur une maquette. À la première interaction nous avons pour but d'ajouter une aisance dans la manipulation et une dimension collaborative. Nous voulons nous raprocher un maximum de l'interaction tangible qui est aussi très pratique pour la visualisation 3D de l'espace. Cependant on rajoute une dimension modulable grâce à la visualisation sur l'écran.

Évaluation de l’interaction créée

Manipulation

Nous avons ensuite voulu évaluer notre méthode en proposant plusieurs expériences à nos participants: une translation d'un d'objet d'un point A à un point B, une rotation de l'objet sur lui même de 360°, les deux actions précédentes combinées (en laissant le choix à l'utilisateur le sens dans lequel il peut les faire), nous avons ensuite ajouté des obstacles que les utilisateurs devaient évités. Pour finir nous avons voulu tester l’interaction à deux mains en demandant aux participants de translater 2 objets. Pour comparer nous faisons les mêmes expériences avec une interaction classique écran/souris.

Les valeurs mesurées représentent à la fois la vitesse et la précision de l'interaction, car l'utilisateur a pour but de déplacer un ou plusieurs objets le plus vite possible à un endroit donné.

Expérience de simple translation d'un seul objet

Participant 1er essai 2eme essai 3eme essai 4eme essai 5eme essai Moyenne Moyenne avec souris
Anas 1.25s 1.59s 2.72s 1.95s 1.30s 1.76s 1.07s
Guillaume 1.70s 2.34s 1.43s 2.13s 2.04s 1.93s 1.48s
Marion 2.26s 2.35s 1.92s 1.48s 2.60s 2.12s 1.50s
Alexis 2.10s 1.8s 1.74s 2.01s 1.86s 1.9s 1.38s
Tristan 2.20s 1.96s 1.80s 1.92s 1.68s 1.91s 1.41s


Expérience de simple rotation d'un seul objet

Participant 1er essai 2eme essai 3eme essai 4eme essai 5eme essai Moyenne Moyenne avec souris
Anas 2.96s 2.97s 1.92s 2.06s 2.05s 2.39s 1.11s
Guillaume 2.24s 2.65s 1.90s 1.50s 6s 2.86s 1.8s
Marion 3.51s 2.80s 3.56s 3.18s 2.90s 3.19s 1.92s
Alexis 4.60s 5.30s 4.02s 4.40s 5.01s 4.67s 1.60s
Tristan 4.20s 4.28s 4.02s 3.80s 3.96s 4.05s 1.70s


Expérience de translation et rotation d'un seul objet

Participant 1er essai 2eme essai 3eme essai 4eme essai 5eme essai Moyenne Moyenne avec souris
Anas 3.50s 2.40s 2.33s 2.66s 6.91s 3.56s 3.95s
Guillaume 3.20s 4.80s 3.50s 2.20s 2.88s 3.31s 5.31s
Marion 3.59s 2.53s 2.09s 3.21s 2.50s 2.78s 5.50s
Alexis 5.60s 5.40s 4.02s 4.62s 5.01s 4.93s 4.80s
Tristan 5.00s 4.90s 4.78s 4.83s 4.64s 4.83s 4.52s

Expérience de translation et rotation d'un seul objet avec obstacles

Participant 1er essai 2eme essai 3eme essai 4eme essai 5eme essai Moyenne Moyenne avec souris
Anas 4.50s 4.80s 3.66s 3.50s 3.56s 4.00s 5.18s
Guillaume 4.80s 5.00s 5.00s 3.66s 3.80s 4.45s 5.54s
Marion 7.75s 5.92s 5.96s 5.64s 6.26s 6.30s 6.02s
Alexis 6.20s 5.90s 5.54s 5.80s 5.50s 5.78s 5.5s
Tristan 6.80s 6.35s 5.23s 5.10s 5.22s 5.74s 5.80s


Expérience de translation de 2 objets

Participant 1er essai 2eme essai 3eme essai 4eme essai 5eme essai Moyenne Moyenne avec souris
Anas 2.32s 1.73s 2.09s 1.55s 1.33s 1.8s 4.52s
Guillaume 2.15s 2.56s 2.67s 1.78s 2.00s 2.32s 3.74s
Marion 1.89s 1.99s 2.65s 2.23s 1.00s 1.95s 5.02s
Alexis 2.01s 1.80s 1.56s 1.18s 1.24s 1.56s 4.30s
Tristan 2.20s 2.28s 2.01s 1.84s 1.96s 2.06s 4.28 s

Pour des mouvements simples, comme une simple translation en ligne droite, ou bien une rotation de l'objet, la souris reste meilleure, que ce soit en précision ou en temps.

Lorsque l'on combine rotations et translations, on remarque pendant les tests que le testeur était bien moins précis avec la souris. En effet, dans la majorité des logiciels 3D l'utilisateur doit changer de mode (avec une touche ou le clic droit de la souris). Cela pousse l'utilisateur à faire les deux tâches à la suite pour être efficace, ce qui demande plus de temps et une décomposition mentale de la position finale. Le fait de pouvoir faire pivoter et translater les objets en même temps permet à l'utilisateur de mieux ajuster la position finale de son objet.

La plus grande différence réside dans la manipulation de plusieurs objets. Avec notre système, nous pouvons manipuler deux(ou plus) objets en même temps, ce qui est impossible avec la souris. Le temps est doublé pour deux objets. De plus, le fait de placer deux objets, l'un par rapport à l'autre, implique à la souris d'alterner entre les deux objets ce qui n'est pas le cas avec notre interaction.

Pour améliorer nos tests, nous aurions dû chronométrer directement au sein de Unity les expériences, afin d'avoir une mesure fiable sans incertitude. De plus, cela aurait forcer les utilisateurs à faire des ajustements, car un programme n'a pas la même tolérance qu'un humain pour dire si le bâtiment est bien à destination. Nous aurions ainsi probablement vu que le temps à la souris pour enchaîner translations et rotations aurait été bien plus long, car l'utilisateur aurait été forcé d'alterner entre les modes pour faire des ajustements.

Critiques et améliorations possibles

Notre système a pour avantage (non mesurable) de permettre à différents collaborateurs de travailler en même temps sur leur projet.

Le problème principal de notre système concerne sa mise à l'échelle en terme de nombre de bâtiments. En effet, une scène comporte souvent un grand nombre d'objets virtuels, et on ne peut pas se permettre d'avoir un objet physique pour chaque objet virtuel. Nous souhaitons, pour remédier à cela, donner la possibilité de sélectionner (avec l'objet manipulé) le bâtiment dont on souhaite prendre le contrôle. Cela fonctionnerait comme ceci :

- Lorsque aucun bâtiment n'est sélectionné, notre objet contrôle un "fantôme" dans la scène.

- Pour saisir un bâtiment, il suffit d'effectuer un aller-retour selon l'axe vertical (non affiché sur l'écran car on se déplace en 2D), ce qui ferait disparaître notre fantôme, et afficherait le bâtiment en surbrillance (pour être certain du bâtiment que l'on a saisi).

- Pour relâcher un bâtiment, il suffit d'effectuer la même opération, et on récupèrera un fantôme.

Conclusion

Pour conclure, l’interaction post-WIMP que nous proposons offre une maniabilité et modularité qu'il ne peut obtenir sur un logiciel 3D ou avec une maquette. Neanmois pour des interactions très simples (translation d'un seul objet), un utilisateur sera beaucoup plus rapide et précis. Pour des mouvements un peu plus complexe un utilisateur entrainé sur le logiciel 3D pourra aussi avoir de meilleurs performances. Notre interaction devient donc intéressante pour un travail collaboratif, maniable, et présente un intéret dans des déplacements d'objets avec une rotation couplée à une ou des translations.

Une première amélioration intéressante consisterait à ajouter une option permettant de selectionner l'objet de sa scène 3D auquel on souhaite appliquer des transformations, pour ne pas être contraint d'avoir autant d'objets palpables que d'objets 3D.

Les autres améliorations possibles seraient d'ajouter toutes les options utiles que peut fournir des logiciels comme sketchup et de fournir une application compacte.