Open Source Robotics

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

Penalty-Based Contact Model

  • Também chamado: spring-damper contact model, penalty method contact
  • Categoria: Software & tooling › Simulation & twins
  • Tags: contact, physics-simulation, differentiable-simulation, numerical-methods, dynamics

Um modelo de contato que deixa os corpos se sobreporem levemente e os afasta com uma força de mola-amortecedor proporcional à profundidade e à velocidade de penetração.

Definição

Modelo de contato por penalidade (penalty-based contact model) é o que trata o contato como uma mola rígida com amortecimento. Quando dois corpos se sobrepõem, o simulador mede a profundidade de penetração ao longo da normal de contato e aplica uma força repulsiva, normalmente k vezes a profundidade mais d vezes a taxa de penetração, onde k é uma rigidez e d um coeficiente de amortecimento. A força atua apenas enquanto os corpos se sobrepõem e é limitada para que o contato nunca puxe os corpos um para o outro. Existem variantes não lineares; o modelo de Hunt–Crossley, por exemplo, faz a força de amortecimento crescer com a profundidade de penetração para evitar o salto de força não físico no momento do impacto. O atrito tangencial geralmente é acrescentado como uma versão regularizada do atrito de Coulomb.

A abordagem é atraente porque é simples e local: as forças de contato são funções explícitas do estado atual, então nenhum problema global de restrições precisa ser resolvido, e as forças são contínuas no estado, o que se adapta à otimização baseada em gradiente e à simulação diferenciável. A família alternativa, o contato rígido ou baseado em restrições, impõe exatamente a não penetração por meio de problemas de complementaridade ou de otimização com restrições, ao custo de solvers mais complexos e de comportamento não suave. Os modelos de restrições suaves e os hidroelásticos ficam entre os dois.

A principal dificuldade é a rigidez. Uma mola macia permite penetração visível e contato saltitante e esponjoso. Uma mola rígida mantém a penetração pequena, mas torna as equações rígidas, exigindo passos de tempo muito pequenos ou integração implícita para permanecer estável, e produz forças grandes que mudam rapidamente. Na simulação diferenciável, isso também importa para os gradientes: contatos por penalidade rígidos produzem gradientes muito grandes perto dos eventos de contato, e sua variância entre rollouts cresce conforme a rigidez aumenta, o que pode tornar os gradientes exatos do simulador menos úteis para a otimização de políticas do que estimativas mais suaves.

Por que importa

O contato é onde a simulação de robôs é mais difícil, e a escolha do modelo de contato determina o quão estável, rápido, preciso e diferenciável é um simulador. Modelos por penalidade são comuns em simuladores diferenciáveis e de pesquisa, então entender seu compromisso de rigidez explica muitas das instabilidades, penetrações e problemas de gradiente que os engenheiros encontram.

Principais aplicações

  • Simuladores físicos diferenciáveis para otimização de controle e de projeto
  • Simulação de contato macio e deformável
  • Simulação de locomoção com pernas com modelos de solo complacente
  • Renderização háptica e guias virtuais (virtual fixtures)
  • Simuladores simples e personalizados para prototipagem e pesquisa

Na prática

Um pesquisador constrói um simulador diferenciável simples para otimizar um movimento de empurrão. Os contatos entre o empurrador, a caixa e a mesa usam um modelo por penalidade com uma mola e um amortecedor lineares ao longo da normal e um termo de atrito de Coulomb suavizado. Com rigidez baixa, a caixa afunda visivelmente na mesa e desliza de forma estranha; aumentar a rigidez corrige isso, mas faz a simulação explodir, a menos que o passo de tempo seja reduzido em uma ordem de grandeza. Os gradientes da posição final da caixa em relação à trajetória de empurrão também se tornam erráticos. O pesquisador escolhe uma rigidez que mantém a penetração em uma fração de milímetro no passo de tempo escolhido, acrescenta amortecimento próximo do crítico e suaviza as estimativas de gradiente fazendo a média sobre vários rollouts perturbados.

Equívocos comuns

  • Penetração significa que o modelo está quebrado — a mola precisa de alguma deflexão para produzir força, então uma pequena penetração é inerente e é ajustada em vez de eliminada
  • Contato mais rígido é sempre mais preciso — rigidez maior exige passos de tempo menores, pode desestabilizar a simulação e aumenta a variância dos gradientes
  • O contato por penalidade dá gradientes suaves em toda parte — a força ainda é ligada e desligada no momento do contato, então os gradientes em torno de eventos de contato podem ser grandes ou pouco informativos

Quem deve saber

  • Desenvolvedores de simulação física e de motores de física
  • Pesquisadores que trabalham com simulação diferenciável
  • Engenheiros de locomoção e de manipulação que dependem de simulação
  • Desenvolvedores de háptica

Tecnologias relacionadas

  • Modelo de contato de Hunt-Crossley (Hunt-Crossley Contact Model)
  • Modelo de Kelvin-Voigt (Kelvin-Voigt Model)
  • Problema de complementaridade linear (Linear Complementarity Problem)
  • Contato hidroelástico (Hydroelastic Contact)
  • Integração implícita (Implicit Integration)

Termos relacionados

  • Differentiable Simulation
  • Coulomb Friction
  • Contact mode
  • Signed Distance Field
  • Hybrid system
  • Reduced Coordinates

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
  • 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
  • DART: C++ physics engine for articulated rigid body dynamics and robotics simulation
  • frax: JAX library for fast, differentiable robot kinematics, dynamics and inverse kinematics

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