Penalty-Based Contact Model
- También llamado: spring-damper contact model, penalty method contact
- Categoría: Software & tooling › Simulation & twins
- Etiquetas: contact, physics-simulation, differentiable-simulation, numerical-methods, dynamics
Un modelo de contacto que deja que los cuerpos se solapen ligeramente y los separa con una fuerza de muelle-amortiguador proporcional a la profundidad y a la velocidad de penetración.
Definición
Modelo de contacto por penalización (penalty-based contact model) es el que trata el contacto como un muelle rígido con amortiguamiento. Cuando dos cuerpos se solapan, el simulador mide la profundidad de penetración a lo largo de la normal de contacto y aplica una fuerza repulsiva, normalmente k veces la profundidad más d veces la velocidad de penetración, donde k es una rigidez y d un coeficiente de amortiguamiento. La fuerza actúa solo mientras los cuerpos se solapan y se recorta para que el contacto nunca atraiga los cuerpos entre sí. Existen variantes no lineales; el modelo de Hunt–Crossley, por ejemplo, hace que la fuerza de amortiguamiento crezca con la profundidad de penetración para evitar el salto de fuerza no físico en el momento del impacto. La fricción tangencial suele añadirse como una versión regularizada de la fricción de Coulomb.
El enfoque resulta atractivo porque es sencillo y local: las fuerzas de contacto son funciones explícitas del estado actual, por lo que no hay que resolver ningún problema de restricciones global, y las fuerzas son continuas en el estado, lo que conviene a la optimización basada en gradientes y a la simulación diferenciable. La familia alternativa, el contacto rígido o basado en restricciones, impone exactamente la no penetración mediante problemas de complementariedad u optimización con restricciones, a costa de solvers más complejos y de un comportamiento no suave. Los modelos de restricciones blandas y los hidroelásticos se sitúan entre ambos.
La principal dificultad es la rigidez. Un muelle blando permite una penetración visible y un contacto rebotón y esponjoso. Un muelle rígido mantiene pequeña la penetración, pero vuelve rígidas las ecuaciones, lo que exige pasos de tiempo muy pequeños o integración implícita para mantener la estabilidad, y produce fuerzas grandes que cambian rápidamente. En la simulación diferenciable esto también afecta a los gradientes: los contactos por penalización rígidos producen gradientes muy grandes cerca de los eventos de contacto, y su varianza entre rollouts crece a medida que aumenta la rigidez, lo que puede hacer que los gradientes exactos del simulador sean menos útiles para la optimización de políticas que estimaciones más suaves.
Por qué importa
El contacto es la parte más difícil de la simulación de robots, y la elección del modelo de contacto determina lo estable, rápido, preciso y diferenciable que es un simulador. Los modelos por penalización son habituales en los simuladores diferenciables y de investigación, por lo que entender su compromiso de rigidez explica muchas de las inestabilidades, penetraciones y problemas de gradientes con los que se encuentran los ingenieros.
Aplicaciones clave
- Simuladores físicos diferenciables para optimización del control y del diseño
- Simulación de contacto blando y deformable
- Simulación de locomoción con patas con modelos de suelo complaciente
- Renderizado háptico y guías virtuales (virtual fixtures)
- Simuladores sencillos a medida para prototipado e investigación
En la práctica
Un investigador construye un simulador diferenciable sencillo para optimizar un movimiento de empuje. Los contactos entre el empujador, la caja y la mesa usan un modelo por penalización con un muelle y un amortiguador lineales a lo largo de la normal y un término de fricción de Coulomb suavizado. Con poca rigidez, la caja se hunde visiblemente en la mesa y desliza de forma extraña; aumentar la rigidez lo corrige, pero hace que la simulación explote salvo que el paso de tiempo se reduzca en un orden de magnitud. Los gradientes de la posición final de la caja respecto a la trayectoria de empuje también se vuelven erráticos. El investigador se decide por una rigidez que mantiene la penetración en una fracción de milímetro con el paso de tiempo elegido, añade un amortiguamiento cercano al crítico y suaviza las estimaciones de gradiente promediando sobre varios rollouts perturbados.
Ideas erróneas comunes
- La penetración significa que el modelo está roto — el muelle necesita cierta deformación para producir fuerza, por lo que una pequeña penetración es inherente y se ajusta en lugar de eliminarse
- Un contacto más rígido siempre es más preciso — una rigidez mayor exige pasos de tiempo más pequeños, puede desestabilizar la simulación y aumenta la varianza de los gradientes
- El contacto por penalización da gradientes suaves en todas partes — la fuerza sigue activándose y desactivándose en el momento del contacto, por lo que los gradientes en torno a los eventos de contacto pueden ser grandes o poco informativos
Quién debería saberlo
- Desarrolladores de simulación física y de motores de física
- Investigadores que trabajan con simulación diferenciable
- Ingenieros de locomoción y de manipulación que dependen de la simulación
- Desarrolladores de háptica
Tecnologías relacionadas
- Modelo de contacto de Hunt-Crossley (Hunt-Crossley Contact Model)
- Modelo de Kelvin-Voigt (Kelvin-Voigt Model)
- Problema de complementariedad lineal (Linear Complementarity Problem)
- Contacto hidroelástico (Hydroelastic Contact)
- Integración implícita (Implicit Integration)
Términos relacionados
- Differentiable Simulation
- Coulomb Friction
- Contact mode
- Signed Distance Field
- Hybrid system
- Reduced Coordinates
Proyectos 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