Differential Flatness
- Aussi appelé: flatness, differentially flat system, flat outputs
- Catégorie: Planning & manipulation › Trajectory optimisation
- Mots-clés: nonlinear-control, trajectory-generation, quadrotor, motion-planning, feedforward-control, aerial-robotics
Une propriété de certains systèmes non linéaires dont l'état complet et les entrées peuvent s'écrire comme des fonctions de quelques sorties plates et de leurs dérivées, ce qui simplifie grandement la planification de trajectoire et la commande.
Définition
Platitude différentielle (differential flatness) : propriété structurelle de certains systèmes dynamiques non linéaires, formalisée par Michel Fliess, Jean Lévine, Philippe Martin et Pierre Rouchon dans les années 1990. Un système est différentiellement plat s'il existe un ensemble de sorties, appelées sorties plates et en nombre égal à celui des entrées de commande, telles que chaque état et chaque entrée puissent s'exprimer comme une fonction de ces sorties et d'un nombre fini de leurs dérivées temporelles. Concrètement, choisir la manière dont les sorties plates évoluent dans le temps détermine entièrement comment le système tout entier doit se mouvoir et de quelles entrées il a besoin.
Cela transforme un problème de planification difficile en un problème plus simple. Au lieu de chercher parmi les entrées et d'intégrer une dynamique non linéaire, un planificateur peut tracer n'importe quelle courbe suffisamment lisse pour les sorties plates, comme un polynôme ou une spline passant par des points de passage, puis calculer directement les états et entrées correspondants. Les contraintes telles que les limites d'entrée deviennent des contraintes sur les dérivées de la courbe. Les commandes en anticipation (feedforward) sortent du même calcul, et un contrôleur en boucle fermée n'a plus qu'à corriger de petits écarts.
Le quadrirotor est l'exemple robotique le plus connu. Mellinger et Kumar ont montré en 2011 qu'un quadrirotor est différentiellement plat, avec sa position tridimensionnelle et son angle de lacet comme sorties plates. La poussée découle de la dérivée seconde de la position, l'attitude de la direction de l'accélération requise, et les vitesses angulaires du corps et les couples de dérivées d'ordre supérieur. C'est pourquoi les trajectoires de quadrirotor sont souvent générées sous forme de polynômes minimum snap : le snap, dérivée quatrième de la position, est directement lié aux couples d'entrée. Parmi les autres systèmes plats figurent le robot mobile de type unicycle, le modèle cinématique de voiture et une voiture tractant des remorques.
La platitude a ses limites. Beaucoup de systèmes ne sont pas plats, et il n'existe pas de test général pour décider si un système non linéaire quelconque est plat ni pour trouver ses sorties plates. La platitude repose aussi sur un modèle exact ; la traînée aérodynamique, les effets des rotors et d'autres termes non modélisés brisent la relation exacte. Les systèmes plats sont étroitement liés à la linéarisation par bouclage, car ils peuvent être transformés en systèmes linéaires par une forme de retour d'état dynamique.
Pourquoi c'est important
La platitude différentielle permet aux planificateurs de générer des trajectoires dynamiquement réalisables par des calculs en forme close plutôt que par une optimisation non linéaire coûteuse, ce qui compte pour les véhicules agiles qui doivent replanifier de nombreuses fois par seconde. Elle sous-tend la génération de trajectoires et la commande standard des quadrirotors, ainsi que de nombreux planificateurs pour robots à roues.
Applications principales
- Génération de trajectoires de quadrirotor — planification polynomiale minimum snap à travers des points de passage
- Commande en anticipation pour robots aériens — calcul de consignes d'attitude et de poussée à partir des trajectoires planifiées
- Robots mobiles à roues — planification de chemins réalisables pour des véhicules de type voiture et à entraînement différentiel
- Systèmes tracteur-remorque — planification de manœuvres pour des véhicules tractant des remorques
- Vol en formation — génération de trajectoires réalisables et coordonnées pour plusieurs drones
En pratique
Une équipe drone planifie généralement un trajet sous forme de série de points de passage, ajuste des polynômes par morceaux pour la position et le lacet qui minimisent le snap ou le jerk sous des contraintes de temps et de continuité, puis vérifie les limites de poussée et de vitesse angulaire en évaluant les dérivées le long de la courbe. À chaque pas de commande, l'application de platitude convertit la position, la vitesse, l'accélération, le jerk et le lacet de référence en attitude, poussée et vitesses angulaires désirées, qui alimentent un contrôleur d'attitude géométrique ou en cascade. Lorsque les essais en vol révèlent des erreurs de suivi dues à la traînée ou au souffle descendant des rotors, les ingénieurs ajoutent des termes de traînée au modèle ou apprennent une correction tout en conservant la structure fondée sur la platitude.
Idées reçues
- Tous les robots sont différentiellement plats — beaucoup de systèmes ne le sont pas, et trouver les sorties plates d'un système donné est souvent difficile
- La platitude rend la boucle de retour inutile — elle fournit des consignes en anticipation ; une boucle de retour reste nécessaire pour gérer les perturbations et l'erreur de modèle
- La platitude et la linéarisation par bouclage sont la même chose — elles sont étroitement liées, mais la platitude est une propriété du système utilisée surtout pour la planification, tandis que la linéarisation par bouclage est une technique de conception de commande
Qui devrait le savoir
- Ingénieurs en drones et en robotique aérienne
- Chercheurs en planification de mouvement travaillant sur des véhicules dynamiques
- Ingénieurs automaticiens qui conçoivent des contrôleurs de suivi de trajectoire
- Étudiants de master et doctorants qui étudient la commande non linéaire
Technologies associées
- Génération de trajectoires minimum snap (Minimum-Snap Trajectory Generation)
- Linéarisation par bouclage (Feedback Linearization)
- Optimisation de trajectoire (Trajectory Optimization)
- Commande géométrique (Geometric Control)
- Commande prédictive (Model Predictive Control)
- Splines polynomiales (Polynomial Splines)
Termes associés
Projets associés
- gym-pybullet-drones: PyBullet Gymnasium environments for single- and multi-agent drone reinforcement learning
- OMPL: Sampling-based motion planning library powering MoveIt and countless robotics applications
- MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
- PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
- mink: Python inverse kinematics library built on MuJoCo supporting 20+ robot platforms
- Ruckig: Real-time jerk-constrained time-optimal trajectory generation for robots and machines
Vidéos
- lecture18 final clip3 differentialflatness: underactuated