Open Source Robotics

Una colección curada de proyectos, herramientas y software de robótica de código abierto de alta calidad.

Minimum-Snap Trajectory

  • También llamado: minimum snap trajectory, min-snap
  • Categoría: Planning & manipulation › Trajectory optimisation
  • Etiquetas: trajectory-generation, quadrotors, aerial-robotics, motion-planning, optimization

Una trayectoria suave a través de puntos de paso que se obtiene minimizando la integral del cuadrado del snap, la cuarta derivada de la posición; la forma estándar de planificar el vuelo de un cuadrirrotor.

Definición

Una trayectoria de mínimo snap (minimum-snap trajectory) pasa por una secuencia de puntos de paso mientras minimiza la integral del cuadrado de la cuarta derivada temporal de la posición, llamada snap. Cada coordenada suele representarse como un polinomio a trozos, un segmento por cada par de puntos de paso, con continuidad impuesta en la posición y sus derivadas en las uniones. Como el coste es cuadrático en los coeficientes de los polinomios y las condiciones de puntos de paso y de continuidad son lineales, encontrar los coeficientes para duraciones de segmento fijas es un programa cuadrático, y en el caso sin restricciones puede resolverse en forma cerrada.

El método está estrechamente ligado a los cuadrirrotores. Mellinger y Kumar (2011) mostraron que un cuadrirrotor es diferencialmente plano, con la posición y la guiñada como salidas planas: el estado completo y las entradas pueden calcularse a partir de estas salidas y sus derivadas. La dirección y la magnitud del empuje se derivan de la aceleración, las velocidades angulares del cuerpo del jerk, y las aceleraciones angulares, y por tanto los pares de los motores, del snap. Minimizar el snap mantiene, por tanto, pequeños y suaves los cambios necesarios en los comandos de los motores, lo que hace que la trayectoria sea más fácil de seguir. La misma idea a un orden menor da las trayectorias de mínimo jerk, usadas desde hace tiempo para movimientos de brazos, y las trayectorias de mínima aceleración.

La resolución polinómica cubre solo parte del problema. Las duraciones de los segmentos deben elegirse por separado, a menudo mediante una optimización externa o escalando el tiempo hasta que se cumplan los límites de velocidad, empuje y velocidad angular del cuerpo. La solución pasa por los puntos de paso, pero por sí sola no evita los obstáculos entre ellos, así que los planificadores o bien añaden puntos de paso intermedios donde la trayectoria corta una esquina, o bien restringen cada segmento a un corredor convexo seguro. Las trayectorias de mínimo snap son suaves pero no óptimas en tiempo, y por eso los sistemas de carreras también usan planificadores de tiempo óptimo basados en muestreo o en optimización.

Por qué importa

La generación de trayectorias de mínimo snap es la forma por defecto de convertir puntos de paso en referencias volables para multirrotores. Es rápida, se entiende bien y se corresponde limpiamente con la dinámica del cuadrirrotor gracias a la planitud diferencial, por lo que aparece en autopilotos de investigación, carreras de drones e inspección aérea.

Aplicaciones clave

  • Vuelo por puntos de paso y maniobras agresivas de cuadrirrotores
  • Trayectorias de referencia para carreras de drones
  • Trayectorias de inspección y fotografía aérea
  • Trayectorias suaves articulares o cartesianas para manipuladores (variantes de mínimo jerk)
  • Refinamiento de trayectorias después de un planificador de caminos geométrico

En la práctica

Un equipo de carreras de drones tiene un mapa de las posiciones de las puertas en un circuito. Coloca un punto de paso en el centro de cada puerta, fija la guiñada para que apunte a la puerta siguiente y ajusta un polinomio a trozos de mínimo snap en x, y y z con continuidad hasta el snap en cada puerta. Una asignación de tiempos inicial se obtiene de las distancias y de una velocidad nominal. Después comprueba la trayectoria frente a los límites de velocidad, empuje colectivo y velocidades angulares del cuerpo, calculados mediante la correspondencia de planitud, y estira o encoge los tiempos de los segmentos hasta que todos los límites se cumplen con margen. La trayectoria resultante se muestrea a la frecuencia del controlador y se pasa a un controlador de seguimiento geométrico, y la misma referencia se usa para generar etiquetas para una política de percepción aprendida.

Ideas erróneas comunes

  • El mínimo snap es óptimo en tiempo — minimiza un coste de suavidad para tiempos de segmento fijos, no el tiempo de vuelo
  • La trayectoria evita los obstáculos porque los puntos de paso están libres de colisiones — los segmentos entre puntos de paso aún pueden cortar esquinas si no se añaden restricciones de corredor
  • Los límites de los actuadores se gestionan automáticamente — los límites de velocidad, empuje y velocidad angular del cuerpo deben comprobarse e imponerse mediante la asignación de tiempos o restricciones
  • El mínimo snap es lo mismo que la planitud diferencial — la planitud es una propiedad del modelo del vehículo; el mínimo snap es un coste usado para planificar las salidas planas

Quién debería saberlo

  • Ingenieros de robótica aérea y de autopilotos de drones
  • Investigadores de planificación de movimiento
  • Desarrolladores de carreras de drones y de inspección
  • Estudiantes de control que estudian la generación de trayectorias

Tecnologías relacionadas

  • Programación cuadrática (Quadratic Programming)
  • Splines polinómicos a trozos (Piecewise Polynomial Splines)
  • PX4
  • Control geométrico de seguimiento en SE(3) (Geometric Tracking Control on SE(3))
  • Corredores de vuelo seguros (Safe Flight Corridors)

Términos relacionados

  • Differential Flatness
  • Trajectory Planning
  • UAV
  • Direct Collocation
  • Kinodynamic Planning
  • Model Predictive Control

Proyectos relacionados

  • Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
  • GTSAM: Factor-graph optimization library powering many modern SLAM backends
  • 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
  • PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization

Este sitio web requiere JavaScript. Por favor, habilite JavaScript para explorar nuestros proyectos de robótica.