Differential Flatness
- Auch genannt: flatness, differentially flat system, flat outputs
- Kategorie: Planning & manipulation › Trajectory optimisation
- Schlagwörter: nonlinear-control, trajectory-generation, quadrotor, motion-planning, feedforward-control, aerial-robotics
Eine Eigenschaft mancher nichtlinearer Systeme, deren vollständiger Zustand und deren Eingänge sich als Funktionen weniger flacher Ausgänge und ihrer Ableitungen schreiben lassen, was Trajektorienplanung und Regelung stark vereinfacht.
Definition
Differenzielle Flachheit (differential flatness) ist eine strukturelle Eigenschaft bestimmter nichtlinearer dynamischer Systeme, die Michel Fliess, Jean Lévine, Philippe Martin und Pierre Rouchon in den 1990er Jahren formalisiert haben. Ein System ist differenziell flach, wenn es eine Menge von Ausgängen gibt, flache Ausgänge genannt und in ihrer Anzahl gleich der Zahl der Stellgrößen, sodass sich jeder Zustand und jeder Eingang als Funktion dieser Ausgänge und endlich vieler ihrer zeitlichen Ableitungen ausdrücken lässt. Im Ergebnis legt die Wahl, wie sich die flachen Ausgänge über die Zeit bewegen, vollständig fest, wie sich das gesamte System bewegen muss und welche Eingänge es braucht.
Dadurch wird ein schweres Planungsproblem zu einem leichteren. Statt über Eingänge zu suchen und nichtlineare Dynamik zu integrieren, kann ein Planer eine beliebige, hinreichend glatte Kurve für die flachen Ausgänge vorgeben, etwa ein Polynom oder einen Spline durch Wegpunkte, und daraus die zugehörigen Zustände und Eingänge direkt berechnen. Bedingungen wie Eingangsgrenzen werden zu Bedingungen an die Ableitungen der Kurve. Vorsteuerungsbefehle ergeben sich aus derselben Rechnung, und ein Regler muss nur noch kleine Abweichungen korrigieren.
Der Quadrotor ist das bekannteste Beispiel aus der Robotik. Mellinger und Kumar zeigten 2011, dass ein Quadrotor mit seiner dreidimensionalen Position und seinem Gierwinkel als flachen Ausgängen differenziell flach ist. Der Schub folgt aus der zweiten Ableitung der Position, die Lage aus der Richtung der erforderlichen Beschleunigung, und Körperdrehraten und Drehmomente aus höheren Ableitungen. Deshalb werden Quadrotor-Trajektorien oft als Minimum-Snap-Polynome erzeugt: Der Snap, die vierte Ableitung der Position, ist direkt mit den Drehmomenteingängen verknüpft. Weitere flache Systeme sind der mobile Roboter vom Unicycle-Typ, das kinematische Fahrzeugmodell und ein Fahrzeug, das Anhänger zieht.
Flachheit hat Grenzen. Viele Systeme sind nicht flach, und es gibt keinen allgemeinen Test, um zu entscheiden, ob ein beliebiges nichtlineares System flach ist, oder um seine flachen Ausgänge zu finden. Flachheit setzt zudem ein genaues Modell voraus; Luftwiderstand, Rotoreffekte und andere nicht modellierte Terme zerstören die exakte Beziehung. Flache Systeme sind eng mit der Linearisierung durch Rückführung verwandt, da sie sich durch eine Form der dynamischen Zustandsrückführung in lineare Systeme überführen lassen.
Warum es wichtig ist
Differenzielle Flachheit erlaubt es Planern, dynamisch zulässige Trajektorien mit geschlossenen Berechnungen statt mit aufwendiger nichtlinearer Optimierung zu erzeugen, was für agile Fahrzeuge wichtig ist, die viele Male pro Sekunde neu planen müssen. Sie ist die Grundlage der üblichen Trajektorienerzeugung und Regelung von Quadrotoren sowie vieler Planer für Radroboter.
Wichtige Anwendungen
- Trajektorienerzeugung für Quadrotoren — Minimum-Snap-Polynomplanung durch Wegpunkte
- Vorsteuerung für Flugroboter — Berechnung von Lage- und Schubsollwerten aus geplanten Bahnen
- Mobile Radroboter — Planung zulässiger Bahnen für fahrzeugähnliche Roboter und Roboter mit Differentialantrieb
- Traktor-Anhänger-Systeme — Planung von Manövern für Fahrzeuge, die Anhänger ziehen
- Formationsflug — Erzeugung koordinierter, zulässiger Trajektorien für mehrere Drohnen
In der Praxis
Ein Drohnenteam plant eine Bahn typischerweise als Folge von Wegpunkten, passt stückweise Polynome für Position und Gierwinkel an, die Snap oder Ruck unter Zeit- und Stetigkeitsbedingungen minimieren, und prüft Schub- und Drehratengrenzen, indem es Ableitungen entlang der Kurve auswertet. In jedem Regelschritt wandelt die Flachheitsabbildung Sollposition, -geschwindigkeit, -beschleunigung, -ruck und -gierwinkel in gewünschte Lage, Schub und Drehraten um, die einen geometrischen oder kaskadierten Lageregler speisen. Zeigen Flugtests Folgefehler durch Luftwiderstand oder Abwind, ergänzen die Ingenieure das Modell um Widerstandsterme oder lernen eine Korrektur, behalten aber die flachheitsbasierte Struktur bei.
Häufige Missverständnisse
- Alle Roboter sind differenziell flach — viele Systeme sind es nicht, und flache Ausgänge für ein gegebenes System zu finden ist oft schwierig
- Flachheit macht Rückführung überflüssig — sie liefert Vorsteuerungssollwerte; Rückführung wird weiterhin gebraucht, um Störungen und Modellfehler zu bewältigen
- Flachheit und Linearisierung durch Rückführung sind dasselbe — sie sind eng verwandt, aber Flachheit ist eine Systemeigenschaft, die vor allem für die Planung genutzt wird, während Linearisierung durch Rückführung eine Methode des Reglerentwurfs ist
Wer das wissen sollte
- Ingenieure für Drohnen und Flugrobotik
- Forschende in der Bewegungsplanung, die an dynamischen Fahrzeugen arbeiten
- Regelungstechniker, die Folgeregler für Trajektorien entwerfen
- Doktoranden und Masterstudierende, die nichtlineare Regelung studieren
Verwandte Technologien
- Minimum-Snap-Trajektorienerzeugung (Minimum-Snap Trajectory Generation)
- Linearisierung durch Rückführung (Feedback Linearization)
- Trajektorienoptimierung (Trajectory Optimization)
- Geometrische Regelung (Geometric Control)
- Modellprädiktive Regelung (Model Predictive Control)
- Polynom-Splines (Polynomial Splines)
Verwandte Begriffe
Verwandte Projekte
- 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
Videos
- lecture18 final clip3 differentialflatness: underactuated