← Retour aux projets

Manna, visualisateur de plans de vol

Année : 2021
Catégorie : Jumeau Numérique & Temps Réel
Manna, visualisateur de plans de vol
Jumeau Numérique Photogrammétrie 4 km² Pipeline Houdini Unity Conversion GPS Décimation & UV Livraison par Drone

Visualisateur de Plans de Vol (Manna Drone Delivery)

Client : Manna | Lieu : Oranmore, comté de Galway, Irlande | Photogrammétrie : équipe locale, calcul par Stephan Sturges | Rôle : Pipeline 3D, optimisation et développement Unity


Un visualisateur destiné aux bureaux de Manna : un grand écran immersif où l'on voit, au-dessus d'un jumeau numérique de la ville, le plan de vol transmis à un drone, le couloir aérien qui lui était assigné, et le trajet qu'il a réellement parcouru. La ville a été reconstruite par photogrammétrie sur quatre kilomètres sur quatre.

16 km² reconstruits | 265 modèles 3D traités | Unity temps réel | Tourne sur un Pixel 4a

Contexte & Enjeux

  • Un outil de démonstration : Manna voulait pouvoir montrer, depuis ses bureaux, ses drones rejouant de vrais plans de vol sur un grand écran. L'enjeu était autant de prouver que le prototype fonctionnait que de rendre la chose lisible pour un visiteur.
  • Montrer la sécurité, pas seulement l'annoncer : en affichant côte à côte le plan transmis, le couloir assigné et le trajet réel, Manna pouvait démontrer que ses drones restent dans leur corridor.
  • Un terrain reconnaissable : la lecture des trajectoires n'a de sens que si le sol est identifiable, ce qui imposait une photogrammétrie fidèle plutôt qu'une carte stylisée.
  • Un budget de rendu contraint : une photogrammétrie brute de 16 km² en haute résolution est inexploitable en temps réel, il fallait la ramener à un coût compatible avec Unity sans perdre la lisibilité du terrain.
  • Deux référentiels à réconcilier : les plans de vol arrivaient en coordonnées GPS, la scène vivait en coordonnées Unity.

Ingénierie & Méthodologie

  • Chaîne photogrammétrique : captation par drone réalisée par une équipe locale, calcul du nuage et du maillage par Stephan Sturges dans nos locaux.
  • Post-traitement automatisé : pipeline Houdini prenant en charge la décimation, le redépliage UV et la reprojection des textures, appliqué de façon répétable sur toute la zone.
  • Horizon artificiel : un modèle topographique basse résolution prolonge la carte au delà de la zone captée, et un brouillard reproduisant la perspective atmosphérique en dissimule les bords.
  • Correspondance géographique : algorithme de calage entre points GPS relevés et coordonnées Unity, permettant de projeter n'importe quelle trajectoire dans la scène.

Breakdown Technique

1. Rendre 16 km² de photogrammétrie jouables en temps réel

Défi : le maillage issu de la photogrammétrie est dense, irrégulier et doté d'UV impropres à un moteur temps réel. Le simplifier naïvement fait perdre le détail des textures, qui est précisément ce qui rend le sol reconnaissable. Et la zone ne tenait pas en un seul objet : 265 modèles 3D distincts étaient à traiter, ce qui excluait toute reprise manuelle.
Solution : un pipeline automatique sous Houdini qui décime le maillage, en reconstruit un dépliage UV propre, puis reprojette les textures haute résolution d'origine sur ce maillage allégé. Le coût géométrique s'effondre pendant que la définition visuelle est préservée. Le terrain est ensuite découpé en chunks pour être chargé par morceaux dans Unity.
Le test qui valide le pipeline : la scène complète tourne sur un Pixel 4a, un téléphone milieu de gamme sorti en 2020. Faire tenir seize kilomètres carrés de photogrammétrie sur ce matériel donne la mesure de ce que l'optimisation a fait gagner.
Scène Unity en mode wireframe montrant le maillage décimé et le découpage en chunks
La scène Unity en mode wireframe : le maillage après décimation, et le découpage en chunks visible dans la hiérarchie.

2. Prolonger le monde au delà de la zone captée

Défi : la photogrammétrie s'arrête net aux limites du carré capté. Vu depuis un drone en altitude, ce bord franc trahit immédiatement l'artifice.
Solution : un modèle topographique basse résolution prend le relais jusqu'à l'horizon, avec une découpe réservée à la zone haute définition. Un brouillard imitant la perspective atmosphérique, ce voile bleuté qui estompe les lointains, masque la jonction et rend la transition invisible.
Maillage topographique basse résolution avec la découpe réservée à la zone photogrammétrique
Le maillage topographique qui prolonge la carte, avec la découpe réservée à la zone photogrammétrique.
Vue aérienne du jumeau numérique, le drone en vol et l'horizon estompé par le brouillard
Le résultat en vol : la zone détaillée, le drone, et l'horizon qui se dissout sans laisser voir la limite de la carte.

3. Du GPS aux coordonnées Unity, position et altitude

Défi : les plans de vol arrivent en JSON, sous forme de points GPS horodatés. Unity, lui, travaille dans un repère cartésien local. Sans correspondance fiable entre les deux, une trajectoire se retrouve à des centaines de mètres de sa position réelle.
Solution : un algorithme de calage qui s'appuie sur plusieurs points de référence relevés dans la scène, chacun associé à ses coordonnées GPS réelles. À partir de ces paires, il déduit la transformation à appliquer et projette n'importe quel point GPS à sa place exacte dans le monde Unity.
Le piège de l'altitude : caler la position horizontale ne suffisait pas. Les drones raisonnent en hauteur au dessus du sol, mesurée depuis leur point de décollage, alors que les fichiers GPS portent une altitude exprimée dans un référentiel global. Les deux valeurs ne se recouvrent pas. Utiliser l'altitude GPS telle quelle aurait fait flotter les trajectoires bien au dessus des toits, ou les aurait enfoncées dans le terrain.
Solution : le bâtiment de lancement sert de référence. Sa hauteur donne le zéro à partir duquel chaque altitude reçue est réinterprétée, ce qui replace les trajectoires à la bonne distance du sol dans la scène photogrammétrique.
Vue large de la zone avec le repère Unity et le carré photogrammétrique
La zone replacée dans son contexte géographique, avec le repère Unity qui sert d'origine à la conversion.

4. Confronter le vol prévu au vol réellement effectué

Défi : montrer une trajectoire ne suffit pas. L'intérêt était de superposer trois couches : le plan de vol transmis au drone, le couloir aérien qui lui était assigné, et le trajet qu'il a réellement parcouru. À quoi s'ajoute un problème de restitution : un plan de vol ne donne que des points discrets, alors qu'il faut afficher un déplacement continu.
Solution : les horodatages du JSON donnent le temps écoulé entre chaque point, donc la vitesse sur chaque segment. Le trajet est reconstruit par interpolation entre les relevés, ce qui permet de rejouer le vol en continu et de lire à tout instant la position du drone. Le plan transmis et le trajet réellement effectué sont affichés côte à côte, et un volume dessine autour d'eux le couloir aérien assigné.
Ce que cela permet de montrer : non pas un couloir théorique, mais le fait que le drone y reste. C'est l'argument que Manna pouvait présenter à un visiteur : la sécurité n'est pas une intention, elle se vérifie à l'écran, vol après vol.
Le visualisateur en fonctionnement : le trajet réellement parcouru et ses points GPS relevés, le chemin que le drone devait suivre, et le couloir aérien assigné.
Captation photogrammétrique : équipe locale sur site.
Calcul photogrammétrique : Stephan Sturges.
Pipeline 3D, optimisation et développement Unity : Sébastien Lebon.