VIO / SLAM & Navigation Visuelle
Quand le drone "voit" son environnement pour se localiser et naviguer. Fusion de données visuelles et inertielles, cartographie 3D temps réel (SLAM), et évitement d'obstacles intelligent.
👁️ Exploration de la Navigation Visuelle
Odometrie Visuelle-Inertielle (VIO) : L'art de se déplacer les yeux ouverts
Le VIO est une technique de navigation à l'estime qui imite la perception humaine en fusionnant deux sources d'information complémentaires : une centrale inertielle (IMU) et une ou plusieurs caméras. L'IMU agit comme notre oreille interne, mesurant les accélérations et rotations à haute fréquence, tandis que les caméras agissent comme nos yeux, corrigeant périodiquement la dérive inévitable de l'IMU.
Le Duo Dynamique : IMU + Caméra
Le principe est une boucle prédiction-correction :
- Prédiction (Propagation IMU) : Entre deux images de la caméra, l'IMU intègre les mesures d'accélération et de vitesse angulaire à très haute fréquence (200-1000 Hz). Cela donne une estimation très réactive mais qui dérive rapidement dans le temps.
- Correction (Mise à jour Visuelle) : Lorsqu'une nouvelle image arrive (30-60 Hz), le système détecte et suit des points d'intérêt (features) d'une image à l'autre. Le mouvement 3D de ces points permet de calculer le déplacement réel de la caméra, et donc de corriger la pose (position + attitude) et la vitesse estimées par l'IMU.
Animation illustrant le suivi de points d'intérêt (features) par un algorithme VIO. Les points verts sont suivis d'une image à l'autre pour estimer le mouvement.
Approches de Fusion : Couplage Lâche vs. Serré
La manière de fusionner ces données est cruciale :
- Couplage Lâche (Loosely-Coupled): Deux processus indépendants. L'odométrie visuelle calcule une pose, l'IMU en calcule une autre. Un filtre de Kalman fusionne ensuite ces deux solutions de pose. Simple, mais moins robuste car une perte de la vision interrompt une des deux entrées.
- Couplage Serré (Tightly-Coupled): Une approche plus moderne et performante. Un seul filtre (EKF ou optimiseur non-linéaire) prend en entrée les mesures brutes de l'IMU (accélérations) et les pixels bruts de la caméra (positions des features). Cette fusion à bas niveau permet aux capteurs de s'aider mutuellement : même avec peu de features visibles, l'IMU aide à contraindre la solution, et inversement.
Cycle de vie du VIO

L'IMU propage l'état à haute fréquence. La caméra fournit des mesures de reprojection des amers 3D pour corriger la dérive à plus basse fréquence, dans un seul optimiseur.
SLAM : Construire la carte au fur et à mesure
Le SLAM (Simultaneous Localization and Mapping) résout le problème de la poule et de l'œuf : pour se localiser, il faut une carte ; pour construire une carte, il faut savoir où l'on est. Le SLAM fait les deux en même temps. C'est l'évolution naturelle du VIO, qui non seulement estime le mouvement, mais mémorise aussi l'environnement pour s'améliorer sur le long terme.
La magie du "Loop Closing" (Recalage de boucle)
La dérive est inévitable pour toute odométrie. L'idée maîtresse du SLAM est de la corriger en reconnaissant des endroits déjà visités. Quand le drone revient dans une zone connue, l'algorithme s'exclame "Aha ! Je connais cet endroit !". Il utilise cette information pour "refermer la boucle" :
- Il calcule l'erreur de dérive accumulée depuis le dernier passage.
- Il redistribue cette erreur sur l'ensemble de la trajectoire et de la carte pour rendre le tout globalement cohérent.
C'est ce qui transforme une odométrie qui dérive à l'infini en un système de localisation globalement précis dans un environnement donné.
Illustration du Recalage de Boucle

En haut : la trajectoire estimée (en tirets) dérive par rapport à la réalité. En bas : en reconnaissant le point de départ, le système corrige toute la trajectoire et la carte (en bleu) pour un résultat cohérent.
Résultat : Carte 3D par SLAM Visuel

Exemple de nuage de points 3D sparse généré en temps réel par un algorithme de SLAM (type ORB-SLAM). Chaque point est un amer 3D utilisé pour la localisation.
Perception & Sémantique : Au-delà de la géométrie
Un drone autonome ne doit pas seulement savoir "où" sont les obstacles, mais aussi "ce qu'ils sont". La perception sémantique, alimentée par l'IA, enrichit la carte géométrique brute avec une couche de compréhension, permettant une navigation plus intelligente et plus sûre.
Segmentation Sémantique
Grâce à des réseaux de neurones convolutifs (CNN), le drone peut classifier chaque pixel de l'image pour identifier les différentes classes de l'environnement (sol, bâtiment, végétation, ciel, route). Ceci permet de trouver automatiquement des zones d'atterrissage sûres ou de suivre des infrastructures.

Gauche : image brute. Droite : image segmentée où chaque couleur représente une classe d'objet.
Détection d'Objets
En parallèle, d'autres modèles d'IA peuvent détecter et localiser des objets spécifiques comme des personnes, des véhicules, ou d'autres drones. Cette information est cruciale pour l'évitement et la prédiction de mouvement.

Détection en temps réel de véhicules et de personnes avec des boîtes englobantes (bounding boxes) et un score de confiance.
Évitement d'Obstacles 3D : Ne pas juste voir, mais agir
La finalité de la perception est de permettre une action sûre. L'évitement d'obstacles combine la détection 3D de l'environnement avec des algorithmes de planification de trajectoire rapides et réactifs.
De la Perception à l'Action
- Reconstruction 3D locale : Les données des capteurs (caméras stéréo, LiDAR) sont utilisées pour créer une carte de distance (depth map).
- Représentation pour la planification : Cette carte est convertie en une structure de données efficace, comme une grille d'occupation 3D (OctoMap), qui indique les zones libres, occupées et inconnues.
- Planification de trajectoire : Un algorithme (ex: A*, RRT*) cherche le chemin le plus sûr vers l'objectif en évitant les zones occupées.
- Commande moteur : La trajectoire est traduite en commandes pour les moteurs.

Visualisation d'une OctoMap : les cubes de couleurs représentent les obstacles détectés dans un espace 3D, permettant une planification de trajectoire sûre.
Planification réactive

Le drone détecte un obstacle sur sa trajectoire planifiée (en rouge). Un planificateur local génère rapidement une nouvelle trajectoire (en vert) pour le contourner.
Glossaire & Liens de référence
Ressources VIO/SLAM Fondamentales
- **VINS-Mono (Paper on ArXiv)**: Un article de recherche fondateur sur le VIO couplage serré, une référence dans le domaine.
- **ORB-SLAM3 (Project Page)**: L'un des systèmes de SLAM visuel et visuel-inertiel les plus performants et polyvalents, capable de gérer des caméras monoculaires, stéréo et RGB-D.
- **TUM RGB-D Dataset**: Un jeu de données de référence pour l'évaluation des algorithmes de SLAM. Indispensable pour comparer les performances.
Frameworks & Outils Open Source
- **Robot Operating System (ROS)**: Le framework de facto pour le développement en robotique. La plupart des algorithmes VIO/SLAM sont disponibles sous forme de packages ROS.
- **OpenCV (Open Source Computer Vision Library)**: La bibliothèque incontournable pour le traitement d'images et la vision par ordinateur, utilisée par tous les systèmes de VIO/SLAM.
- **Point Cloud Library (PCL)**: Une bibliothèque open-source pour le traitement de nuages de points 3D et de données géométriques.
Perception & IA
- **YOLO (You Only Look Once)**: Une famille de modèles de détection d'objets en temps réel, très populaires pour les applications embarquées.
- **Papers With Code - Semantic Segmentation**: Un excellent répertoire des derniers articles de recherche et codes sources sur la segmentation sémantique.
