Un apprenti chez SQLI : à la découverte de l’HoloLens (partie 2)

Un apprenti chez SQLI

Dans le prolongement de mon immersion dans l’univers technologique de l’HoloLens dont je vous invite à découvrir mes premières réflexions dans cet article, j’ai focalisé mes travaux autour de la prise de mesure augmentée.

Mes premières prises en main de l’HoloLens de Microsoft ont rapidement évolué vers le développement d’une application concrète dont l’enjeu consistait à définir le niveau de précision des mesures de l’HoloLens. Pour cela, j’ai apprivoisé un nouvel outil : le repérage spatial.

Repérage spatial

Lorsque vous souhaitez développer des applications sur l’HoloLens, plusieurs choix de moteur de jeu peuvent s’offrir à vous. Du fait des tutoriaux et outils proposés par Microsoft, j’ai opté pour le développement d’une application Unity avec quelques paramètres sur la scène spécifique à l’utilisation de ce produit.

Afin de faciliter le développement et d’ouvrir l’accès aux fonctionnalités propres de l’appareil, Microsoft met à disposition un paquage Unity : l’HoloToolkit. Celui-ci est composé de scripts, de matériaux, d’éléments préfabriqués pour agrémenter vos développements, mais aussi d’outils pour configurer la scène.

Dans le cas de la résolution de cette problématique, l’outil indispensable est le repérage spatial. L’HoloToolkit apporte un élément préfabriqué nommé Spatial Mapping qui permet d’effectuer ce travail. Cet outil crée une maille tridimensionnelle composée de triangles pour représenter l’environnement. Il est possible de choisir le nombre de triangles par mètres carrés et l’intervalle de temps de rafraichissement de la maille. Plus vous augmentez ces valeurs, moins les performances de votre application seront bonnes. En effet, le repérage spatial et le traitement de la maille qui en résulte sont des opérations très coûteuses en termes de ressources.

L’HoloLens ne dispose que d’un processeur 32 bits cadencé à 1Ghz intégrant une puce graphique basé sur les processeur Intel Atom ainsi que de 2Gb de RAM et 1Gb de RAM dédié aux traitements holographiques : une configuration plutôt modeste pour une machine sortie en 2016 mais qui produit néanmoins des résultats impressionnants.

Prise de mesures avec l’HoloLens

Par défaut cette maille est visible et vient se superposer aux objets qui vous entourent.

Par défaut cette maille est visible et vient se superposer aux objets qui vous entourent. Cela vous permet dans un premier temps de voir comment votre environnement est détecté et représenté virtuellement par l’HoloLens. C’est sur cette représentation que nous allons pouvoir positionner des hologrammes comme nous avons pu les voir dans les démonstrations.

Comme vous pouvez le constater, cette maille comporte beaucoup de défauts. Il est alors possible de l’améliorer avec des outils disponibles dans l’HoloToolkit. Vous pouvez par exemple transformer cette maille en plans représentant sol, plafond, murs, tables, etc. ou bien traiter la maille afin d’en gommer les plus grosses impuretés comme vous pouvez le voir ci-dessous. Néanmoins vous réussirez très difficilement à obtenir un résultat parfait du fait des performances de la machine. Les plus gros défauts de cette maille traité se trouve au niveau des arêtes (entre mur et plafonds par exemple).

Prise de mesures avec l’HoloLens

Les plus gros défauts de cette maille traité se trouve au niveau des arêtes (entre mur et plafonds par exemple).

Pour terminer notre scène de base, il manque un élément important pour pouvoir interagir avec l’environnement : le curseur ! Une fois encore, des éléments préfabriqués sont disponibles dans l’HoloToolkit. Ici, j’ai utilisé un curseur de base, mais d’autres sont disponibles avec un retour quant à la détection des gestes de l’utilisateur. Par défaut, ce curseur se placera à une distance de 2 mètres de vous si aucun objet se trouve face à vous. Si un objet se trouve face à vous (la maille de repérage spatial ou un hologramme, par exemple), le curseur viendra se poser sur l’objet afin de vous permettre d’interagir avec.

Prenons des mesures !

Maintenant que nous avons un environnement de base il ne nous manque plus que la prise de mesure. Pour cela j’ai écrit un petit script attaché à mon curseur me permettant de détecter les Air Tap effectués par l’utilisateur (mouvement de pincement des doigts). Lorsque l’utilisateur effectue ce mouvement, on attache une petite sphère représentant un point sur la surface en question. Chaque point est ensuite relié aux autres points par une ligne et la mesure est affichée au milieu de cette ligne.

Nous pouvons alors nous poser des questions quant à la précision de ces mesures. Lors de l’utilisation de la maille traitée, les résultats sont assez précis (quasiment au millimètre près) comme vous pouvez le voir ci-dessous.

La précision dépend en grande partie de la qualité de la maille avec laquelle vous travaillez. Il sera d’ailleurs compliqué d’obtenir des résultats précis au niveau des angles des objets dus aux imperfections de la maille dans ces zones.

Mon objectif suivant sera de placer des hologrammes avec précision en tenant compte de l’environnement. Si cela est possible il faudra également déterminer avec quelle précision.

Je vous donne prochainement rendez-vous afin de vous présenter l’avancement de mes travaux, dans le cadre d’un nouveau billet de blog.

1 réponse
  1. Avatar
    Yvon Lavallée dit :

    Actuellement la technologie semble limitée par la ‘maille’ !
    Néanmoins le travail réalisé est intéressant, à voir comment cela évolue.
    Ultérieurement, j’espère qu’une meilleure détection de l’environnement permettra une meilleure utilisation de l’HoloLens, à voir dans le prochain billet quel est le degrés de précision possible avec la maille actuelle !
    Super article en tout cas, comme d’habitude

    Répondre

votre commentaire

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Inscription newsletter

Ne manquez plus nos derniers articles !