Conception et Développement d'Un Moteur de Visualisation 3D Modulaire pour la Navigation Robotique H/F
Publiée le 21 octobre 2026 · En ligne jusqu'au 22 novembre 2026, prolongée tant que l'offre reste ouverte
- Contrat
- Stage
- Durée
- 6 mois
- Niveau
- Ingénieur/Cadre/Bac +5
- Lieu
- Châteaufort, Île-de-France
L'offre
Dans le cadre de nos développements en robotique mobile autonome, nous concevons des algorithmes de cartographie d'occupation (occupancy grid / costmap) couplés à un planificateur de trajectoire en temps réel (local planner).
Pour valider, régler et surveiller ces modules de manière interactive, il est indispensable de disposer d'un module de visualisation 3D performant, réactif et modulaire.
L'objectif de ce stage est de concevoir et d'implémenter ce composant de visualisation, capable d'afficher en temps réel le robot dans son environnement, ses trajectoires futures ainsi que diverses couches d'informations (sémantique, coût, détections capteurs), et de l'intégrer au sein d'une interface utilisateur (IHM).
Sous la responsabilité du tuteur de stage, le/la stagiaire aura pour mission de :
- Architecture logicielle & Ingestion temps réel :
o Concevoir l'architecture du module pour découpler la boucle de calcul du robot (carte, planification, etc.) de la boucle de rendu graphique (maintien d'un taux de rafraîchissement stable via multithreading et double-buffering par exemple).
o Mettre en place la gestion des transformations spatiales et des repères cinématiques (carte, position du robot,...).
- Moteur de rendu volumique & Géométrie :
o Développer le rendu performant de la carte d'occupation (grille de voxels denses ou éparses) en utilisant des techniques d'optimisation GPU (Instanced Rendering, gestion mémoire dynamique).
o Intégrer l'affichage du modèle géométrique du robot et le rendu dynamique des trajectoires du planificateur (dégradés de couleurs selon la vitesse/courbure).
- Système de calques multi-sources (Layer System) :
o Développer une architecture modulaire permettant d'activer, superposer et masquer dynamiquement différentes couches de données : carte d'occupation, cartes de coût, segmentation sémantique, obstacles dynamiques, champs de vision capteurs.
o Prendre en charge la gestion des transparences (blending) et les palettes de couleurs paramétrables.
- Interaction et intégration IHM :
o Implémenter des commandes caméra fluides (orbite, vue subjective, suivi automatique du robot).
o Intégrer un mécanisme de sélection 3D (raycasting / picking GPU) permettant à l'utilisateur de cliquer sur une cellule de la carte pour inspecter ses métadonnées (coût, classe sémantique, probabilité).
o Intégrer la fenêtre de rendu dans le framework d'IHM cible (Qt / GLFW).
- Volet optimisation & API graphique :
o Le socle de référence sera réalisé en Modern OpenGL (3.3+ / 4.5 Core) ou via une couche d'abstraction moderne (à déterminer).
o Option profil avancé : Si le/la candidat(e) possède déjà une solide expérience en programmation graphique bas niveau, l'architecture pourra être explorée ou déployée nativement via l'API Vulkan, afin d'évaluer les gains de performance et la pérennité des développements.
Profil recherché
-Formation : Étudiant(e) en dernière année d'école d'ingénieurs ou Master 2 avec une spécialisation en génie logiciel, informatique graphique ou robotique.
-Compétences techniques requises :
oMaîtrise du C++ moderne (C++17/20) et de la programmation orientée objet.
oBonnes connaissances en synthèse d'image 3D et shaders (OpenGL, GLSL, pipeline graphique, calcul matriciel/quaternions).
oSensibilité à l'optimisation des performances logicielles et à la concurrence (multithreading).
-Compétences appréciées (les « plus ») :
oExpérience avec l'API Vulkan ou WebGPU.
oConnaissance de frameworks d'IHM tels que Qt (Widgets ou QML/Qt Quick) ou GFLW.
oNotions en robotique mobile (ROS / ROS 2, structures de données spatiales de type Octree ou VoxelGrid).
-Qualités personnelles : Rigueur, autonomie, esprit de synthèse et curiosité technique.
