Open Source Robotics

Uma coleção selecionada de projetos, ferramentas e software de robótica de código aberto de alta qualidade.

Minimum-Snap Trajectory

  • Também chamado: minimum snap trajectory, min-snap
  • Categoria: Planning & manipulation › Trajectory optimisation
  • Tags: trajectory-generation, quadrotors, aerial-robotics, motion-planning, optimization

Uma trajetória suave através de waypoints obtida minimizando a integral do quadrado do snap, a quarta derivada da posição; a forma padrão de planejar o voo de quadrirrotores.

Definição

Uma trajetória de snap mínimo (minimum-snap trajectory) passa por uma sequência de waypoints minimizando a integral do quadrado da quarta derivada temporal da posição, chamada snap. Cada coordenada costuma ser representada como um polinômio por partes, um segmento para cada par de waypoints, com continuidade imposta na posição e em suas derivadas nas junções. Como o custo é quadrático nos coeficientes dos polinômios e as condições de waypoints e de continuidade são lineares, encontrar os coeficientes para durações de segmento fixas é um programa quadrático e, no caso sem restrições, pode ser resolvido em forma fechada.

O método está intimamente ligado aos quadrirrotores. Mellinger e Kumar (2011) mostraram que um quadrirrotor é diferencialmente plano, com a posição e a guinada como saídas planas: o estado completo e as entradas podem ser calculados a partir dessas saídas e de suas derivadas. A direção e a magnitude do empuxo decorrem da aceleração, as velocidades angulares do corpo do jerk, e as acelerações angulares, e portanto os torques dos motores, do snap. Minimizar o snap, portanto, mantém pequenas e suaves as mudanças necessárias nos comandos dos motores, o que torna a trajetória mais fácil de seguir. A mesma ideia em ordem menor dá as trajetórias de jerk mínimo, usadas há muito tempo para movimentos de braços, e as trajetórias de aceleração mínima.

A solução polinomial cobre apenas parte do problema. As durações dos segmentos precisam ser escolhidas separadamente, muitas vezes por uma otimização externa ou escalando o tempo até que os limites de velocidade, empuxo e velocidade angular do corpo sejam satisfeitos. A solução passa pelos waypoints, mas sozinha não evita obstáculos entre eles, então os planejadores ou acrescentam waypoints intermediários onde a trajetória corta um canto, ou restringem cada segmento a um corredor convexo seguro. Trajetórias de snap mínimo são suaves, mas não ótimas em tempo, e é por isso que sistemas de corrida também usam planejadores ótimos em tempo baseados em amostragem ou em otimização.

Por que importa

A geração de trajetórias de snap mínimo é a forma padrão de transformar waypoints em referências que podem ser voadas por multirrotores. Ela é rápida, bem compreendida e se mapeia de forma limpa na dinâmica do quadrirrotor por meio da planicidade diferencial, por isso aparece em autopilotos de pesquisa, corridas de drones e inspeção aérea.

Principais aplicações

  • Voo por waypoints e manobras agressivas de quadrirrotores
  • Trajetórias de referência para corridas de drones
  • Trajetórias de inspeção e fotografia aérea
  • Trajetórias suaves de juntas ou cartesianas para manipuladores (variantes de jerk mínimo)
  • Refinamento de trajetória após um planejador de caminhos geométrico

Na prática

Uma equipe de corrida de drones tem um mapa das posições dos portões em uma pista. Ela coloca um waypoint no centro de cada portão, define a guinada para apontar para o próximo portão e ajusta um polinômio por partes de snap mínimo em x, y e z com continuidade até o snap em cada portão. Uma alocação de tempo inicial vem das distâncias e de uma velocidade nominal. Em seguida, a equipe verifica a trajetória contra limites de velocidade, empuxo coletivo e velocidades angulares do corpo, calculados pelo mapeamento de planicidade, e estica ou encolhe os tempos dos segmentos até que todos os limites sejam respeitados com margem. A trajetória resultante é amostrada na taxa do controlador e passada a um controlador de rastreamento geométrico, e a mesma referência é usada para gerar rótulos para uma política de percepção aprendida.

Equívocos comuns

  • Snap mínimo é ótimo em tempo — ele minimiza um custo de suavidade para tempos de segmento fixos, não o tempo de voo
  • A trajetória evita obstáculos porque os waypoints estão livres de colisão — os segmentos entre waypoints ainda podem cortar cantos, a menos que restrições de corredor sejam acrescentadas
  • Os limites dos atuadores são tratados automaticamente — os limites de velocidade, empuxo e velocidade angular do corpo precisam ser verificados e impostos por meio da alocação de tempo ou de restrições
  • Snap mínimo é o mesmo que planicidade diferencial — a planicidade é uma propriedade do modelo do veículo; o snap mínimo é um custo usado para planejar as saídas planas

Quem deve saber

  • Engenheiros de robótica aérea e de autopilotos de drones
  • Pesquisadores de planejamento de movimento
  • Desenvolvedores de corridas de drones e de inspeção
  • Estudantes de controle que estudam geração de trajetórias

Tecnologias relacionadas

  • Programação quadrática (Quadratic Programming)
  • Splines polinomiais por partes (Piecewise Polynomial Splines)
  • PX4
  • Controle geométrico de rastreamento em SE(3) (Geometric Tracking Control on SE(3))
  • Corredores de voo seguros (Safe Flight Corridors)

Termos relacionados

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

Projetos 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 site requer JavaScript. Por favor, habilite o JavaScript para explorar nossos projetos de robótica.