Model Predictive Path Integral
- Aussi appelé: MPPI, MPPI control, information-theoretic MPC, path integral MPC
- Catégorie: Control › Feedback control
- Mots-clés: model-predictive-control, sampling-based-control, optimal-control, gpu-computing, navigation
Une méthode de commande prédictive par échantillonnage qui simule de nombreuses séquences de commandes perturbées aléatoirement dans un modèle dynamique et en fait la moyenne, pondérée par le coût, pour choisir l'action suivante.
Définition
Model Predictive Path Integral (MPPI) : forme de commande prédictive par échantillonnage développée par Grady Williams, Evangelos Theodorou et leurs collègues, avec une démonstration de 2016 largement citée sur une petite voiture de rallye autonome conduite à grande vitesse sur une piste en terre. Comme les autres contrôleurs prédictifs, MPPI planifie une séquence d'entrées de commande sur un horizon court, applique la première, puis replanifie au pas de temps suivant. Ce qui le distingue, c'est la façon dont le plan est calculé.
À chaque pas, MPPI part de la séquence de commandes précédente et en génère un grand nombre de versions perturbées en y ajoutant un bruit aléatoire. Chaque séquence perturbée est déroulée dans un modèle dynamique pour prédire la trajectoire résultante, et cette trajectoire est évaluée par une fonction de coût. La nouvelle séquence de commandes est une moyenne pondérée de tous les échantillons, avec des poids qui décroissent exponentiellement avec le coût selon un paramètre de température. Les échantillons de faible coût dominent la moyenne, tandis que la mise à jour reste lisse.
La méthode est issue de la théorie de la commande par intégrale de chemin, qui relie une classe de problèmes de commande optimale stochastique à des espérances sur des trajectoires échantillonnées. En pratique, le principal attrait de MPPI est qu'il ne nécessite aucun gradient : le modèle dynamique et la fonction de coût peuvent être non linéaires, discontinus ou appris, du moment qu'ils peuvent être évalués de nombreuses fois. Les déroulements sont indépendants et se parallélisent donc bien sur GPU.
Les contreparties sont le coût de calcul, qui croît avec le nombre d'échantillons et la longueur de l'horizon, et la sensibilité au niveau de bruit et à la température. Avec trop peu de bruit, le contrôleur explore mal ; avec trop, les commandes deviennent saccadées, si bien qu'un lissage des séquences échantillonnées ou de la sortie est courant.
Pourquoi c'est important
MPPI permet aux robots de planifier avec des modèles dynamiques complexes ou appris et avec des coûts difficiles à différencier, comme des cartes d'obstacles et le risque lié au terrain. Comme ses déroulements s'exécutent en parallèle, il peut replanifier assez vite pour des véhicules terrestres, des drones et des robots à pattes fonctionnant en temps réel.
Applications principales
- Conduite autonome à grande vitesse et tout-terrain
- Navigation locale des robots mobiles, y compris dans la pile ROS 2 Nav2
- Commande agile de quadrirotors
- Planification avec une dynamique apprise et des modèles du monde
- Manipulation et locomotion avec des coûts de contact non lisses
En pratique
Une équipe qui utilise MPPI pour la navigation en extérieur l'exécute généralement sur un GPU embarqué, en échantillonnant à chaque cycle de nombreuses séquences de commandes sur un horizon de quelques secondes. Chaque séquence est propagée dans un modèle du véhicule, cinématique ou dynamique, ou dans un modèle de dynamique directe appris, et évaluée selon un coût qui combine la progression vers le but, les coûts d'obstacles et de traversabilité, et la régularité des commandes. Des implémentations open source existent, dont un contrôleur MPPI dans la pile de navigation ROS 2 Nav2. L'essentiel de l'effort d'ingénierie porte sur la fonction de coût et les paramètres d'échantillonnage : les équipes règlent la covariance du bruit et la température en simulation, puis vérifient sur le matériel que le véhicule n'oscille pas et qu'il réagit rapidement aux nouveaux obstacles.
Idées reçues
- MPPI n'est qu'une recherche aléatoire — il utilise l'aléatoire pour explorer, mais sa moyenne pondérée par le coût est dérivée de la théorie de la commande optimale stochastique
- Plus d'échantillons corrigent toujours de mauvaises performances — une fonction de coût mal conçue ou un bruit et une température mal réglés limitent les résultats quel que soit le nombre d'échantillons
- MPPI n'a pas besoin de modèle — il s'appuie sur un modèle dynamique pour prédire chaque déroulement ; seuls les gradients du modèle sont inutiles
Qui devrait le savoir
- Ingénieurs en commande de véhicules autonomes et de robots mobiles
- Développeurs de commande de drones et de quadrirotors
- Chercheurs qui combinent modèles appris et planification
- Utilisateurs de Nav2 qui configurent des contrôleurs locaux
Technologies associées
- Commande prédictive (Model Predictive Control)
- Nav2
- Méthode de l'entropie croisée (Cross-Entropy Method)
- iLQR
- Modèle de dynamique directe (Forward Dynamics Model)
- CUDA
Termes associés
Projets associés
- Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
- DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
- ROS Motion Planning: One repo implementing 40+ classic and learning-based robot path planners as ROS plugins
- MRPT: Comprehensive C++ toolkit for mobile robotics, SLAM, and sensor-based navigation
- TurtleBot3: ROS packages for TurtleBot3 — the standard educational mobile robot platform
- MuJoCo MPC: DeepMind's interactive real-time model predictive control framework for MuJoCo