Planification de Trajectoire & Contrôle
Le cerveau du mouvement : comment le drone décide "où aller" (planification) et "comment y aller" (contrôle). Exploration des algorithmes de recherche (RRT*), d'optimisation (MPC) et d'apprentissage (RL).
🧠 Exploration de la Planification & du Contrôle
Planification Globale : La Vision d'Ensemble
Le planificateur global est responsable de trouver un chemin géométriquement faisable et optimal (ou quasi-optimal) du point de départ à la destination, en utilisant une carte préexistante ou construite par le SLAM. Il ne se soucie pas des obstacles dynamiques, mais de la topologie générale de l'environnement.
Algorithmes basés sur la recherche (Search-Based)
Ces méthodes discrétisent l'environnement en une grille ou un graphe et cherchent le plus court chemin.
- Dijkstra : Garantit de trouver le chemin le plus court depuis la source, mais explore "aveuglément" dans toutes les directions.
- A* (A-star) : Une version intelligente de Dijkstra. A* utilise une **heuristique** (une estimation "à vol d'oiseau" de la distance restante) pour guider sa recherche vers la destination, ce qui le rend beaucoup plus rapide dans la plupart des cas.

Exemple de "costmap" : les zones rouges sont des obstacles, les zones jaunes/vertes sont plus coûteuses à traverser. A* trouve le chemin le moins coûteux sur cette carte.
Algorithmes basés sur l'échantillonnage (Sampling-Based)
Extrêmement efficaces dans les espaces de grande dimension (ex: bras robotique, ou drone avec contraintes de lacet). Ils ne nécessitent pas une grille explicite.
- RRT (Rapidly-exploring Random Tree) : Construit un arbre de trajectoires faisables en partant du point de départ et en l'étendant aléatoirement vers des points de l'espace libre. Rapide pour trouver *un* chemin, mais pas forcément le meilleur.
- RRT* (RRT-star) : Une amélioration majeure. En plus de croître, l'arbre se "recâble" continuellement pour améliorer la qualité des chemins existants. RRT* converge vers le chemin optimal si on lui laisse suffisamment de temps.

Animation montrant la croissance d'un arbre RRT*. L'arbre explore l'espace (lignes grises) et la meilleure solution actuelle est affichée en vert, s'améliorant au fil du temps.
Planification Locale : Réagir à l'Imprévu
Le planificateur local (ou réactif) prend le chemin global comme un "guide" et génère des commandes de contrôle à court terme (typiquement pour les 2-5 prochaines secondes) qui sont sûres et respectent la dynamique du drone, tout en évitant les obstacles dynamiques détectés par les capteurs.
Dynamic Window Approach (DWA)
DWA est une méthode populaire qui fonctionne directement dans l'espace des vitesses du robot.
- Échantillonnage : Génère un grand nombre de paires de vitesses (vitesse linéaire, vitesse angulaire) atteignables par le drone dans une "fenêtre dynamique".
- Simulation : Pour chaque paire de vitesses, simule la trajectoire résultante sur un court horizon de temps.
- Évaluation : Évalue chaque trajectoire simulée selon une fonction de coût qui pénalise la proximité des obstacles, la déviation par rapport au chemin global, et récompense la vitesse.
- Sélection : La meilleure trajectoire est sélectionnée et la commande de vitesse correspondante est envoyée aux moteurs.
Illustration du DWA

Le drone (cercle rouge) échantillonne de multiples trajectoires (arcs bleus). Celles qui entrent en collision avec des obstacles (points noirs) sont rejetées. La meilleure trajectoire (en vert) est choisie en fonction de sa proximité avec l'objectif (point vert) et de sa vitesse.
Méthodes basées sur l'Optimisation
Ces approches formulent la planification locale comme un problème d'optimisation numérique.
- Timed Elastic Band (TEB) : Représente la trajectoire comme une "bande élastique" déformable connectant le drone à un point sur le chemin global. Un optimiseur ajuste la forme de la bande pour qu'elle soit la plus courte possible tout en évitant les obstacles et en respectant les contraintes de temps et de vitesse.
- Optimisation de Trajectoire : Des solveurs plus généraux (ex: TrajOpt) peuvent optimiser une séquence de points de passage (waypoints) pour minimiser des coûts comme l'énergie, le temps, ou les secousses (jerk), sous des contraintes de collision.
Model Predictive Control (MPC) : Le Contrôle par Anticipation
Le MPC est une technique de contrôle avancée qui surpasse les contrôleurs classiques (comme le PID) dans les systèmes complexes. Son super-pouvoir est d'utiliser un modèle de la dynamique du drone pour **prédire le futur** et prendre des décisions de contrôle optimales en conséquence.
La Boucle MPC
À chaque pas de temps (ex: toutes les 20ms), le contrôleur MPC effectue le cycle suivant :
- Mesure : Obtient l'état actuel du drone (position, vitesse, attitude) depuis l'estimateur (EKF).
- Optimisation : Résout un problème d'optimisation numérique. Le but est de trouver la **séquence de commandes moteur futures** (sur un horizon de prédiction de 2-3 secondes) qui minimise une fonction de coût.
- Application : Applique **uniquement la première commande** de la séquence optimale trouvée.
- Répétition : Jette le reste de la séquence et recommence le processus à l'étape 1 avec le nouvel état mesuré.
Cette approche en "horizon glissant" rend le MPC très robuste aux perturbations et aux erreurs de modèle, car il se ré-évalue constamment.
Schéma de la boucle MPC
Le drone est à l'état $x_k$. Le MPC prédit plusieurs trajectoires futures possibles (en bleu) et optimise pour trouver la meilleure (en vert) qui suit la référence (en rouge). Il applique la première commande $u_k$ et recommence.
Reinforcement Learning (RL) : Apprendre à Voler
L'apprentissage par renforcement est une branche de l'IA où un "agent" (le drone) apprend une stratégie de contrôle optimale (une "politique") en interagissant avec un environnement et en recevant des "récompenses" ou des "punitions" pour ses actions. C'est une approche puissante pour les problèmes où la dynamique est trop complexe à modéliser manuellement.
La Boucle Agent-Environnement
Le concept est simple :
- L'agent observe l'**état** de l'environnement (ex: images de la caméra, vitesse).
- Il choisit une **action** (ex: commandes moteur) en se basant sur sa politique.
- L'environnement évolue vers un nouvel état et donne à l'agent une **récompense** (ex: +1 pour s'être rapproché du but, -100 pour une collision).
- L'agent met à jour sa politique pour maximiser la récompense cumulée sur le long terme.

La boucle fondamentale du RL : l'agent agit sur l'environnement, qui lui renvoie un nouvel état et une récompense, permettant à l'agent d'apprendre.
Applications et Défis
Le RL est prometteur pour des tâches de vol agiles et complexes. On distingue :
- Contrôle de bas niveau : Apprendre à stabiliser le drone ou à suivre des trajectoires très agressives.
- Navigation de haut niveau ("End-to-End") : Apprendre une politique qui va directement des images de la caméra aux commandes moteur pour atteindre un but, en évitant les obstacles.
Le principal défi est le **Sim2Real (Simulation to Reality)** : une politique apprise en simulation (où des millions d'essais sont possibles) doit pouvoir être transférée et fonctionner sur le vrai drone, malgré les différences entre la simulation et le monde réel.

Scène d'entraînement en simulation (ex: AirSim, Isaac Gym) où des milliers de drones apprennent une tâche en parallèle.
Glossaire & Liens de référence
Ressources Planification de Mouvement
- **OMPL (Open Motion Planning Library)**: La bibliothèque de référence pour les algorithmes de planification basés sur l'échantillonnage (RRT, RRT*, etc.).
- **"A* Search Algorithm" (Article)**: Une explication claire et concise du fonctionnement de A*.
- **"Timed-Elastic-Band for On-Line Motion-Planning" (Paper)**: L'article de recherche original sur l'approche TEB pour la planification locale.
Ressources Contrôle & MPC
- **CasADi**: Un outil logiciel puissant pour la modélisation et la résolution de problèmes d'optimisation, très utilisé pour le MPC.
- **"Understanding Model Predictive Control" (Vidéo par Steve Brunton)**: Une excellente introduction pédagogique au MPC.
- **PX4 Autopilot**: Un firmware de pilote automatique open-source pour drones qui implémente des contrôleurs sophistiqués, y compris des formes de MPC.
Ressources Apprentissage par Renforcement
- **OpenAI Spinning Up in Deep RL**: Une ressource éducative de très haute qualité pour comprendre les bases et les algorithmes de Deep RL.
- **Gymnasium (ex OpenAI Gym)**: La bibliothèque de référence pour développer et comparer des algorithmes de RL sur des environnements standardisés.
- **Microsoft AirSim**: Un simulateur open-source pour drones (et voitures) basé sur Unreal Engine, conçu pour la recherche en IA et RL.
