Open Source Robotics

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

Complementarity Constraint

  • Também chamado: complementarity condition, contact complementarity
  • Categoria: Planning & manipulation › Trajectory optimisation
  • Tags: contact, trajectory-optimization, nonlinear-programming, physics-simulation, legged-robots

Um par de condições de não negatividade com produto zero, de modo que no máximo uma das grandezas pode ser positiva; usado para modelar o contato, em que a força só existe se a folga for zero.

Definição

Uma restrição de complementaridade (complementarity constraint) relaciona duas grandezas que devem ser ambas não negativas e cujo produto deve ser zero, o que se escreve 0 ≤ a ⊥ b ≥ 0. Em qualquer solução, pelo menos uma das duas é zero, e qualquer uma delas só pode ser positiva enquanto a outra permanece em zero. Essa estrutura aparece sempre que um sistema alterna entre dois regimes sem uma variável de chaveamento explícita, e é a base do problema de complementaridade linear (LCP) e dos programas matemáticos com restrições de complementaridade.

O contato rígido é o exemplo padrão na robótica. A distância φ(q) entre um pé ou dedo e uma superfície deve ser não negativa, a força normal de contato λ deve ser não negativa porque as superfícies só podem empurrar, e a força só pode ser diferente de zero quando a distância é zero: 0 ≤ φ(q) ⊥ λ ≥ 0. O atrito de Coulomb pode ser escrito com condições de complementaridade adicionais que relacionam a velocidade de deslizamento a se a força de atrito está na borda do cone de atrito. Os simuladores de corpos rígidos por passos de tempo desenvolvidos nos anos 1990, incluindo os esquemas de Stewart e Trinkle e de Anitescu e Potra, resolvem um LCP ou um problema de complementaridade relacionado a cada passo para encontrar os impulsos de contato. Em otimização de trajetória, Posa, Cantu e Tedrake (2014) adicionaram essas restrições diretamente a um problema de transcrição direta, de modo que o otimizador escolhe quando e onde os contatos são feitos e desfeitos sem que a sequência de contatos seja especificada de antemão.

A abordagem evita as variáveis inteiras que uma formulação inteira mista usaria para ligar e desligar o contato, mas traz sua própria dificuldade. As restrições de complementaridade são não convexas e violam as qualificações de restrição das quais dependem os solvers padrão de programação não linear, por isso os solvers podem travar ou convergir lentamente. Remédios comuns são relaxar a condição do produto para φλ ≤ ε e apertar ε ao longo de uma sequência de resoluções, levar o produto para o custo como penalidade ou usar solvers projetados para problemas de complementaridade. Boas estimativas iniciais importam muito, e é por isso que otimizadores com contato implícito costumam receber inicialização a quente a partir de soluções mais simples.

Por que importa

O contato é a característica que define a locomoção com pernas e a manipulação, e as restrições de complementaridade são a forma exata padrão de escrever o contato rígido em equações. Elas permitem que simuladores calculem forças de contato de forma consistente e que otimizadores descubram o momento dos contatos, em vez de exigir que um engenheiro fixe de antemão a marcha ou a sequência de contatos.

Principais aplicações

  • Otimização de trajetória com contato implícito para robôs com pernas e manipulação
  • Simulação de corpos rígidos por passos de tempo com contato e atrito
  • Planejamento de aterrissagens, saltos e impactos
  • Modelagem de restrições unilaterais, como limites de junta e cabos
  • Formulações de física diferenciável do contato

Na prática

Um engenheiro planeja a aterrissagem de um quadrúpede solto de uma certa altura. A otimização de trajetória usa transcrição direta com pontos de nó a cada poucos milissegundos; para cada pé e cada nó, ela adiciona como variáveis a altura do pé acima do solo e a força vertical de reação do solo, com as condições altura ≥ 0, força ≥ 0 e altura × força ≤ ε. A primeira resolução usa um ε folgado e uma estimativa inicial a partir de um movimento de queda simples; cada resolução seguinte aperta ε e recebe inicialização a quente a partir da solução anterior. O plano final mostra quais pés tocam o solo primeiro e como as forças aumentam, e o engenheiro verifica se a violação de complementaridade restante é pequena o bastante para que o plano não dependa de forças à distância.

Equívocos comuns

  • Restrições de complementaridade tornam o planejamento de contato convexo — elas eliminam as variáveis inteiras, mas são não convexas e numericamente difíceis para solvers padrão
  • Uma solução com um produto relaxado pequeno é fisicamente exata — com φλ ≤ ε o otimizador pode explorar forças pequenas a distâncias pequenas, por isso ε e a violação restante precisam ser verificados
  • Todos os motores de física resolvem o contato como um problema de complementaridade — muitos usam, em vez de complementaridade estrita, modelos de contato por penalidade ou complacentes, ou relaxações convexas

Quem deve saber

  • Engenheiros de otimização de trajetória e de locomoção com pernas
  • Desenvolvedores de simulação física
  • Pesquisadores de manipulação que planejam através do contato
  • Profissionais de otimização numérica em robótica

Tecnologias relacionadas

  • Problema de complementaridade linear (Linear Complementarity Problem, LCP)
  • MPCC (Mathematical Program with Complementarity Constraints)
  • IPOPT
  • Drake
  • Solver PATH

Termos relacionados

  • Contact mode
  • Mixed-Integer Programming
  • Direct Collocation
  • Penalty-Based Contact Model
  • Coulomb Friction
  • Warm Start

Projetos relacionados

  • Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
  • ProtoMotions: NVIDIA framework for training simulated digital humans and humanoid robots on GPUs
  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • PHC: Physics-based perpetual humanoid controller with fail-state recovery for real-time avatars
  • SOFA Framework: Real-time physics simulation framework for medical simulation and soft tissue modeling
  • Extreme Parkour with Legged Robots: RL system for legged robot parkour trained in under 20 hours

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