Differential Flatness
- Also called: flatness, differentially flat system, flat outputs
- Category: Planning & manipulation › Trajectory optimisation
- Tags: nonlinear-control, trajectory-generation, quadrotor, motion-planning, feedforward-control, aerial-robotics
A property of some nonlinear systems whose full state and inputs can be written as functions of a few flat outputs and their derivatives, which greatly simplifies trajectory planning and control.
Definition
Differential flatness is a structural property of certain nonlinear dynamical systems, formalized by Michel Fliess, Jean Lévine, Philippe Martin and Pierre Rouchon in the 1990s. A system is differentially flat if there is a set of outputs, called flat outputs and equal in number to the control inputs, such that every state and every input can be expressed as a function of these outputs and a finite number of their time derivatives. In effect, choosing how the flat outputs move over time fully determines how the whole system must move and which inputs it needs.
This turns a hard planning problem into an easier one. Instead of searching over inputs and integrating nonlinear dynamics, a planner can draw any sufficiently smooth curve for the flat outputs, such as a polynomial or spline through waypoints, and then compute the corresponding states and inputs directly. Constraints such as input limits become constraints on the curve's derivatives. Feedforward commands come out of the same computation, and a feedback controller only has to correct small deviations.
The quadrotor is the best-known robotics example. Mellinger and Kumar showed in 2011 that a quadrotor is differentially flat with its three-dimensional position and yaw angle as flat outputs. Thrust follows from the second derivative of position, attitude from the direction of the required acceleration, and body rates and torques from higher derivatives. This is why quadrotor trajectories are often generated as minimum-snap polynomials: snap, the fourth derivative of position, is directly linked to the torque inputs. Other flat systems include the unicycle-type mobile robot, the kinematic car and a car towing trailers.
Flatness has limits. Many systems are not flat, and there is no general test for deciding whether an arbitrary nonlinear system is flat or for finding its flat outputs. Flatness also relies on an accurate model; aerodynamic drag, rotor effects and other unmodeled terms break the exact relationship. Flat systems are closely related to feedback linearization, since they can be transformed into linear systems by a form of dynamic state feedback.
Why it matters
Differential flatness lets planners generate dynamically feasible trajectories with closed-form computations instead of expensive nonlinear optimization, which matters for agile vehicles that must replan many times per second. It underpins standard quadrotor trajectory generation and control, as well as many planners for wheeled robots.
Key applications
- Quadrotor trajectory generation — minimum-snap polynomial planning through waypoints
- Feedforward control for aerial robots — computing attitude and thrust references from planned paths
- Wheeled mobile robots — planning feasible paths for car-like and differential-drive vehicles
- Tractor-trailer systems — planning maneuvers for vehicles towing trailers
- Formation flight — generating coordinated feasible trajectories for multiple drones
In practice
A drone team typically plans a path as a series of waypoints, fits piecewise polynomials for position and yaw that minimize snap or jerk subject to timing and continuity constraints, and checks thrust and body-rate limits by evaluating derivatives along the curve. At each control step, the flatness map converts the reference position, velocity, acceleration, jerk and yaw into a desired attitude, thrust and angular rates, which feed a geometric or cascaded attitude controller. When flight tests show tracking errors from drag or downwash, engineers add drag terms to the model or learn a correction while keeping the flatness-based structure.
Common misconceptions
- All robots are differentially flat — many systems are not, and finding flat outputs for a given system is often hard
- Flatness makes feedback unnecessary — it provides feedforward references; feedback is still needed to handle disturbances and model error
- Flatness and feedback linearization are the same thing — they are closely related, but flatness is a property of the system used mainly for planning, while feedback linearization is a control design technique
Who should know this
- Drone and aerial robotics engineers
- Motion planning researchers working on dynamic vehicles
- Control engineers designing trajectory tracking controllers
- Graduate students studying nonlinear control
Related technologies
- Minimum-Snap Trajectory Generation
- Feedback Linearization
- Trajectory Optimization
- Geometric Control
- Model Predictive Control
- Polynomial Splines
Related terms
Related projects
- 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