Differential Flatness
- También llamado: flatness, differentially flat system, flat outputs
- Categoría: Planning & manipulation › Trajectory optimisation
- Etiquetas: nonlinear-control, trajectory-generation, quadrotor, motion-planning, feedforward-control, aerial-robotics
Una propiedad de algunos sistemas no lineales cuyo estado completo y cuyas entradas pueden escribirse como funciones de unas pocas salidas planas y sus derivadas, lo que simplifica mucho la planificación de trayectorias y el control.
Definición
Planitud diferencial (differential flatness) es una propiedad estructural de ciertos sistemas dinámicos no lineales, formalizada por Michel Fliess, Jean Lévine, Philippe Martin y Pierre Rouchon en la década de 1990. Un sistema es diferencialmente plano si existe un conjunto de salidas, llamadas salidas planas y en igual número que las entradas de control, tal que cada estado y cada entrada pueden expresarse como función de estas salidas y de un número finito de sus derivadas temporales. En la práctica, elegir cómo evolucionan las salidas planas en el tiempo determina por completo cómo debe moverse todo el sistema y qué entradas necesita.
Esto convierte un problema de planificación difícil en uno más sencillo. En lugar de buscar sobre las entradas e integrar una dinámica no lineal, un planificador puede trazar cualquier curva suficientemente suave para las salidas planas, como un polinomio o un spline que pase por puntos de paso, y calcular después directamente los estados y las entradas correspondientes. Restricciones como los límites de las entradas se convierten en restricciones sobre las derivadas de la curva. Los comandos de prealimentación salen del mismo cálculo, y un controlador de realimentación solo tiene que corregir pequeñas desviaciones.
El cuadricóptero es el ejemplo más conocido en robótica. Mellinger y Kumar demostraron en 2011 que un cuadricóptero es diferencialmente plano con su posición tridimensional y su ángulo de guiñada como salidas planas. El empuje se deduce de la segunda derivada de la posición, la actitud de la dirección de la aceleración requerida, y las velocidades angulares del cuerpo y los pares de derivadas de orden superior. Por eso las trayectorias de cuadricópteros suelen generarse como polinomios de mínimo snap: el snap, la cuarta derivada de la posición, está directamente ligado a las entradas de par. Otros sistemas planos son el robot móvil de tipo uniciclo, el coche cinemático y un coche que remolca tráileres.
La planitud tiene límites. Muchos sistemas no son planos, y no existe una prueba general para decidir si un sistema no lineal arbitrario es plano ni para encontrar sus salidas planas. La planitud también depende de un modelo preciso; la resistencia aerodinámica, los efectos de los rotores y otros términos no modelados rompen la relación exacta. Los sistemas planos están estrechamente relacionados con la linealización por realimentación, ya que pueden transformarse en sistemas lineales mediante una forma de realimentación dinámica del estado.
Por qué importa
La planitud diferencial permite a los planificadores generar trayectorias dinámicamente factibles con cálculos en forma cerrada en lugar de una costosa optimización no lineal, algo importante para vehículos ágiles que deben replanificar muchas veces por segundo. Es la base de la generación de trayectorias y el control estándar de cuadricópteros, así como de muchos planificadores para robots con ruedas.
Aplicaciones clave
- Generación de trayectorias para cuadricópteros — planificación polinómica de mínimo snap a través de puntos de paso
- Control por prealimentación para robots aéreos — calcular referencias de actitud y empuje a partir de trayectorias planificadas
- Robots móviles con ruedas — planificar trayectorias factibles para vehículos de tipo coche y de tracción diferencial
- Sistemas tractor-remolque — planificar maniobras para vehículos que remolcan tráileres
- Vuelo en formación — generar trayectorias factibles y coordinadas para varios drones
En la práctica
Un equipo de drones suele planificar una ruta como una serie de puntos de paso, ajustar polinomios a trozos para la posición y la guiñada que minimicen el snap o el jerk sujetos a restricciones de tiempos y de continuidad, y comprobar los límites de empuje y de velocidad angular del cuerpo evaluando las derivadas a lo largo de la curva. En cada paso de control, la aplicación de planitud convierte la posición, la velocidad, la aceleración, el jerk y la guiñada de referencia en una actitud, un empuje y unas velocidades angulares deseados, que alimentan un controlador de actitud geométrico o en cascada. Cuando las pruebas de vuelo muestran errores de seguimiento debidos a la resistencia aerodinámica o al downwash, los ingenieros añaden términos de resistencia al modelo o aprenden una corrección manteniendo la estructura basada en la planitud.
Ideas erróneas comunes
- Todos los robots son diferencialmente planos — muchos sistemas no lo son, y encontrar salidas planas para un sistema dado suele ser difícil
- La planitud hace innecesaria la realimentación — proporciona referencias de prealimentación; la realimentación sigue siendo necesaria para manejar perturbaciones y errores de modelo
- La planitud y la linealización por realimentación son lo mismo — están estrechamente relacionadas, pero la planitud es una propiedad del sistema que se usa sobre todo para planificar, mientras que la linealización por realimentación es una técnica de diseño de control
Quién debería saberlo
- Ingenieros de drones y de robótica aérea
- Investigadores en planificación de movimiento que trabajan con vehículos dinámicos
- Ingenieros de control que diseñan controladores de seguimiento de trayectorias
- Estudiantes de posgrado que estudian control no lineal
Tecnologías relacionadas
- Generación de trayectorias de mínimo snap (Minimum-Snap Trajectory Generation)
- Linealización por realimentación (Feedback Linearization)
- Optimización de trayectorias (Trajectory Optimization)
- Control geométrico (Geometric Control)
- Control predictivo basado en modelo (Model Predictive Control)
- Splines polinómicos (Polynomial Splines)
Términos relacionados
Proyectos relacionados
- 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
Vídeos
- lecture18 final clip3 differentialflatness: underactuated