Open Source Robotics

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

Differential Flatness

  • Também chamado: flatness, differentially flat system, flat outputs
  • Categoria: Planning & manipulation › Trajectory optimisation
  • Tags: nonlinear-control, trajectory-generation, quadrotor, motion-planning, feedforward-control, aerial-robotics

Uma propriedade de alguns sistemas não lineares cujo estado completo e cujas entradas podem ser escritos como funções de algumas poucas saídas planas e de suas derivadas, o que simplifica muito o planejamento de trajetórias e o controle.

Definição

Planicidade diferencial (differential flatness) é uma propriedade estrutural de certos sistemas dinâmicos não lineares, formalizada por Michel Fliess, Jean Lévine, Philippe Martin e Pierre Rouchon na década de 1990. Um sistema é diferencialmente plano se existe um conjunto de saídas, chamadas saídas planas e em número igual ao das entradas de controle, tal que todo estado e toda entrada podem ser expressos como função dessas saídas e de um número finito de suas derivadas temporais. Na prática, escolher como as saídas planas evoluem no tempo determina completamente como o sistema inteiro deve se mover e de quais entradas ele precisa.

Isso transforma um problema de planejamento difícil em um mais fácil. Em vez de buscar sobre as entradas e integrar a dinâmica não linear, um planejador pode traçar qualquer curva suficientemente suave para as saídas planas, como um polinômio ou uma spline passando por waypoints, e então calcular diretamente os estados e as entradas correspondentes. Restrições como limites das entradas tornam-se restrições sobre as derivadas da curva. Os comandos de feedforward saem do mesmo cálculo, e um controlador de realimentação só precisa corrigir pequenos desvios.

O quadricóptero é o exemplo mais conhecido na robótica. Mellinger e Kumar mostraram em 2011 que um quadricóptero é diferencialmente plano tendo como saídas planas sua posição tridimensional e seu ângulo de guinada. O empuxo decorre da segunda derivada da posição, a atitude da direção da aceleração necessária, e as velocidades angulares do corpo e os torques de derivadas de ordem mais alta. É por isso que trajetórias de quadricópteros costumam ser geradas como polinômios de snap mínimo: o snap, a quarta derivada da posição, está diretamente ligado às entradas de torque. Outros sistemas planos incluem o robô móvel do tipo monociclo, o carro cinemático e um carro rebocando reboques.

A planicidade tem limites. Muitos sistemas não são planos, e não existe um teste geral para decidir se um sistema não linear arbitrário é plano nem para encontrar suas saídas planas. A planicidade também depende de um modelo preciso; arrasto aerodinâmico, efeitos dos rotores e outros termos não modelados quebram a relação exata. Sistemas planos estão intimamente relacionados à linearização por realimentação, já que podem ser transformados em sistemas lineares por uma forma de realimentação dinâmica de estado.

Por que importa

A planicidade diferencial permite que planejadores gerem trajetórias dinamicamente viáveis com cálculos em forma fechada em vez de uma otimização não linear cara, o que importa para veículos ágeis que precisam replanejar muitas vezes por segundo. Ela é a base da geração de trajetórias e do controle padrão de quadricópteros, além de muitos planejadores para robôs com rodas.

Principais aplicações

  • Geração de trajetórias para quadricópteros — planejamento polinomial de snap mínimo através de waypoints
  • Controle feedforward para robôs aéreos — calcular referências de atitude e empuxo a partir de trajetórias planejadas
  • Robôs móveis com rodas — planejar trajetórias viáveis para veículos do tipo carro e de tração diferencial
  • Sistemas trator-reboque — planejar manobras para veículos que rebocam reboques
  • Voo em formação — gerar trajetórias viáveis e coordenadas para vários drones

Na prática

Uma equipe de drones normalmente planeja uma rota como uma série de waypoints, ajusta polinômios por partes para posição e guinada que minimizam o snap ou o jerk sujeitos a restrições de tempo e de continuidade, e verifica os limites de empuxo e de velocidade angular do corpo avaliando as derivadas ao longo da curva. A cada passo de controle, o mapa de planicidade converte a posição, a velocidade, a aceleração, o jerk e a guinada de referência em atitude, empuxo e velocidades angulares desejados, que alimentam um controlador de atitude geométrico ou em cascata. Quando os testes de voo mostram erros de rastreamento causados por arrasto ou downwash, os engenheiros acrescentam termos de arrasto ao modelo ou aprendem uma correção, mantendo a estrutura baseada em planicidade.

Equívocos comuns

  • Todos os robôs são diferencialmente planos — muitos sistemas não são, e encontrar saídas planas para um dado sistema costuma ser difícil
  • A planicidade torna a realimentação desnecessária — ela fornece referências de feedforward; a realimentação continua necessária para lidar com perturbações e erro de modelo
  • Planicidade e linearização por realimentação são a mesma coisa — estão intimamente relacionadas, mas a planicidade é uma propriedade do sistema usada principalmente para planejamento, enquanto a linearização por realimentação é uma técnica de projeto de controle

Quem deve saber

  • Engenheiros de drones e de robótica aérea
  • Pesquisadores de planejamento de movimento que trabalham com veículos dinâmicos
  • Engenheiros de controle que projetam controladores de rastreamento de trajetória
  • Estudantes de pós-graduação que estudam controle não linear

Tecnologias relacionadas

  • Geração de trajetórias de snap mínimo (Minimum-Snap Trajectory Generation)
  • Linearização por realimentação (Feedback Linearization)
  • Otimização de trajetórias (Trajectory Optimization)
  • Controle geométrico (Geometric Control)
  • Controle preditivo baseado em modelo (Model Predictive Control)
  • Splines polinomiais (Polynomial Splines)

Termos relacionados

  • Trajectory Planning
  • Feedback Linearization
  • UAV
  • Model Predictive Control

Projetos 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

Este site requer JavaScript. Por favor, habilite o JavaScript para explorar nossos projetos de robótica.