HoloGRAM, un cas d’usage de réalité augmentée avec les lunettes HoloLens

Introduction

Cet article présente les concepts de réalité augmentée, mixte et virtuelle, les SDK et quelques bibliothèques permettant de mettre en œuvre ces concepts. Il sera illustré par l’application HoloGRAM, développée pour visualiser en réalité augmentée les propriétés de furtivité d’appareils militaires.

Cette application est composée des différents modules présentés dans le schéma suivant. Ils sont détaillés tout au long de l’article.

Réalité augmentée, Réalité mixte et Réalité virtuelle

Commençons par définir les concepts. La réalité augmentée se définit comme la superposition en temps réel d’éléments virtuels sur le monde réel. La réalité virtuelle immerge quant à elle l’utilisateur dans un monde artificiel. Enfin, le terme de réalité mixte est un terme assez récent apporté par Microsoft. Ce concept hybride permet de classifier une technologie se trouvant à la frontière mouvante et imprécise de la réalité virtuelle et de la réalité augmentée. Elle permet de superposer dans le monde réel, des hologrammes virtuels.
Le schéma suivant situe les différentes réalités les unes par rapport aux autres :

Casque HoloLens

Microsoft a été le premier à dévoiler un casque performant de réalité mixte en 2015, le casque HoloLens.

Le casque HoloLens est un ordinateur complet équipé d’une version de Windows adaptée et compatible avec Windows 10. Trois processeurs sont utilisés. Le premier est le CPU principal, le deuxième est un processeur graphique (GPU) et le troisième gère les hologrammes (baptisé HPU pour « Holographic Processing Unit »). Des capteurs de mouvements permettent à l’utilisateur de se déplacer librement et le son est spatialisé.

La simulation des hologrammes fonctionne avec les gestes de l’utilisateur, cependant, une commande vocale est également disponible. Le casque ne nécessite pas d’être connecté à Internet ou à un autre appareil pour fonctionner. Il pèse environ 579 grammes et permet un champ de vision d’environ 30° par 17.5°. Le casque permet à l’utilisateur de visualiser au travers de lentilles le monde réel dans lequel il évolue et d’y projeter en surcouche des hologrammes 3D avec lequel il va pouvoir interagir. A l’inverse de la réalité virtuelle, le casque de réalité augmentée permet de ne pas être coupé du monde.

Moteur de jeu Unity

Description

Unity est un moteur de jeu multiplateforme. C’est le logiciel privilégié pour le développement des applications HoloLens :

Unity dispose de nombreuses fonctionnalités pour éditer des scripts en C#, des cartes ou des scènes représentant des niveaux ou fenêtres d’une application :

 

Développer une application avec Unity permet de profiter d’un Store très riche du type objet 3D, animations, sons et même projets complets qui peuvent servir de base à une nouvelle application.

L’application est multiplateforme et permet, à partir du même projet, de déployer sur un smartphone ou une tablette Android, un casque HoloLens, un casque de réalité virtuelle ou une console PS4.

Utiliser le C# permet de développer avec l’IDE Visual Studio qui comprend également l’auto complétion de toutes les classes d’Unity3D.

Toolkit Mixed Reality

Le « Toolkit Mixed Reality » est un ensemble de scripts et de composants destinés à accélérer le développement d’applications ciblant les casques Microsoft HoloLens et Windows Mixed Reality. Il est disponible sur GitHub.

 

Le code suivant permet par exemple de capter les gestes de l’utilisateur réalisés lorsque le regard de l’utilisateur est sur un hologramme. La fonction « Start » est appelée une fois au lancement de la scène lorsque l’objet auquel le script a été rattaché, est créé. La fonction « Update » est appelée à chaque frame. Elle détecte l’objet dans le champ de vision du porteur du casque HoloLens pour lui appliquer une commande gestuelle.

De nombreux exemples de codes pour HoloLens sont présentés sur le site de Microsoft. Ils permettent de très vite monter en compétences et de réaliser une application gérant la voix et les gestes, et de mapper un environnement réel.

Framework « thelab-unity-mvc »

Ce Framework Unity permet de structurer l’ensemble des scripts C# d’un projet, afin de respecter le pattern MVC (Modèle-Vue-Contrôleur). L’idée est de dissocier la vue (l’IHM) du modèle (« abstraction » : les données et les traitements « métier » associés).

La mise en œuvre de ce pattern s’appuie sur 3 types d’objets avec des responsabilités différentes :

  • Vue : décrit l’interface à l’aide de composants graphiques réutilisables. Les scripts spécifiques à la visualisation sur HoloLens sont stockés dans ce répertoire. Pour déployer l’application sur un autre périphérique (tablette, smartphone), seuls les scripts de la vue devront être développés ;
  • Modèle : issu de la couche métier, il contient l’ensemble des informations nécessaires pour valoriser la vue. Elle est en revanche totalement indépendante de la technologie utilisée pour la vue. Il contient les informations de furtivité chargées au démarrage qui sont à afficher ;
  • Contrôleur : il fournit les données métiers du modèle à la vue. Il utilise pour cela des types directement utilisables par la vue. Le Contrôleur a également la responsabilité de traiter les interactions utilisateur transmises par la vue. Cela peut se traduire par une simple logique de navigation (changement de fenêtres) ou par des opérations impliquant le modèle métier (mise à jour de données).

La mise en œuvre de ce principe d’architecture repose sur une adaptation du Framework « thelab-unity-mvc ».

SDK Vuforia

Présentation

Vuforia est la plateforme la plus utilisée au monde pour les développements de réalité augmentée. Cette plateforme prend en charge téléphones, tablettes, casques et lunettes.

Cette bibliothèque est, depuis récemment, directement intégrée dans le moteur de jeu Unity. L’instanciation d’objet est donc facilitée et l’API peut être appelée dans les scripts C# du projet Unity.

La version 7 de Vuforia a introduit la nouvelle fonctionnalité « Model Target » permettant de reconnaître un objet réel à partir de sa forme géométrique et des différents contrastes de l’objet. L’application de réalité augmentée aura donc dans sa base de données, différentes formes géométriques à reconnaître dans le monde réel, et dès qu’elle détecte cet objet, il est possible d’interagir avec cet objet en affichant dessus différentes données en sur-couche.

Model Target

L’application « Vuforia Model Target Generator » permet de générer à partir d’un fichier CAO, un package Unity contenant la forme à détecter dans le monde réel et qui doit être intégré dans le projet Unity. Les différents formats supportés sont :

  • Creo View (.pvz) ;
  • Collada (.dae) ;
  • FBX (.fbx) ;
  • IGES (.igs, .iges) ;
  • Wavefront (.obj) ;
  • STEP (.stp, .step) ;
  • STL (.stl, .sla) ;
  • VRML (.wrl, .vrml).

Le développeur doit fixer la distance et l’angle de vision de la cible. Cela permet de générer l’image de droite sur la figure suivante correspondant à l’image de détection de la cible. C’est cette forme que l’application essaiera de détecter dans le monde réel.

Application HoloGRAM

Description

Le cas d’usage, présenté dans cet article, est l’application HoloGRAM. Cette application de réalité augmentée est déployée sur un casque HoloLens.

Sa fonctionnalité première est d’afficher les données de furtivité d’un appareil militaire sous forme d’hologrammes. L’appareil militaire utilisé pour cette preuve de concept est un MiG-21. La surface équivalente radar, c’est-à-dire sa furtivité, a été mesurée sous tous les angles et à des fréquences d’ondes électromagnétiques différentes. Ces données de mesures brutes sont injectées dans l’application HoloGRAM qui se charge de les afficher en surcouche sur l’avion. Les différents niveaux de furtivité en chaque point de l’appareil sont représentés par différentes couleurs correspondant à des niveaux de furtivité de faible à fort.

Lancement de l’application

L’application se lance en pointant son regard sur l’icône de l’application, puis en réalisant le geste de sélection avec deux doigts :

L’application commence par charger automatiquement les données de furtivité au lancement de l’application et initialise les différents objets 3D Unity de l’application.

Reconnaissance de la cible

Lorsque les données sont chargées, l’application affiche la forme géométrique de la cible, en blanc, au centre du champ de vision de l’utilisateur :

L’utilisateur doit superposer la forme géométrique sur l’avion réel pour les faire correspondre. Une maquette imprimée en 3D de 20 centimètres est utilisée pour réaliser les tests :

Cette forme géométrique blanche disparaît lorsque la cible est reconnue.

Affichage des données SER en réalité mixte

Une fois la cible reconnue par l’application, les données de furtivité sont affichées en superposition de la cible réelle :

Les données de furtivité sont affichées en fonction de la position de l’utilisateur. En effet, la furtivité d’un appareil dépend de la position de l’observateur. Un appareil sera naturellement plus furtif de face que de côté car une plus grande quantité d’ondes électromagnétiques envoyées en direction de l’appareil sera réfléchie. Sur la vidéo, plus les points sont rouges, violets et noires, moins l’appareil est furtif et ces points de l’appareil seront donc détectés par un radar. Ces points sont appelés points brillants. Les experts en furtivité peuvent dont localiser très facilement les points brillants de l’appareil grâce à cette nouvelle application HoloGRAM.

Annexes

L’application a été récompensée aux Trophées de la Simulation Numérique organisées par l’Usine Digitale et TERATEC :

L’application HoloGRAM a également été présentée aux 50 ans de DGA-MI et a fait l’objet d’un article dans le point :

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *