Open Source Robotics

Una colección curada de proyectos, herramientas y software de robótica de código abierto de alta calidad.

Complementarity Constraint

  • También llamado: complementarity condition, contact complementarity
  • Categoría: Planning & manipulation › Trajectory optimisation
  • Etiquetas: contact, trajectory-optimization, nonlinear-programming, physics-simulation, legged-robots

Un par de condiciones de no negatividad con producto cero, de modo que como mucho una de las magnitudes puede ser positiva; se usa para modelar el contacto, donde la fuerza existe solo si la separación es cero.

Definición

Una restricción de complementariedad (complementarity constraint) vincula dos magnitudes que deben ser ambas no negativas y cuyo producto debe ser cero, lo que se escribe 0 ≤ a ⊥ b ≥ 0. En cualquier solución, al menos una de las dos es cero, y cualquiera de ellas puede ser positiva solo mientras la otra se mantiene en cero. Esta estructura aparece siempre que un sistema cambia entre dos regímenes sin una variable de conmutación explícita, y es la base del problema de complementariedad lineal (LCP) y de los programas matemáticos con restricciones de complementariedad.

El contacto rígido es el ejemplo estándar en robótica. La distancia φ(q) entre un pie o un dedo y una superficie debe ser no negativa, la fuerza normal de contacto λ debe ser no negativa porque las superficies solo pueden empujar, y la fuerza puede ser distinta de cero solo cuando la distancia es cero: 0 ≤ φ(q) ⊥ λ ≥ 0. La fricción de Coulomb puede escribirse con condiciones de complementariedad adicionales que relacionan la velocidad de deslizamiento con si la fuerza de fricción está en el borde del cono de fricción. Los simuladores de cuerpos rígidos por pasos de tiempo desarrollados en la década de 1990, incluidos los esquemas de Stewart y Trinkle y de Anitescu y Potra, resuelven un LCP o un problema de complementariedad relacionado en cada paso para hallar los impulsos de contacto. En optimización de trayectorias, Posa, Cantu y Tedrake (2014) añadieron estas restricciones directamente a un problema de transcripción directa, de modo que el optimizador elige cuándo y dónde se establecen y se rompen los contactos sin que la secuencia de contactos se especifique de antemano.

Este enfoque evita las variables enteras que usaría una formulación entera mixta para activar y desactivar el contacto, pero trae su propia dificultad. Las restricciones de complementariedad son no convexas y violan las cualificaciones de restricciones en las que se apoyan los solucionadores estándar de programación no lineal, por lo que los solucionadores pueden estancarse o converger lentamente. Los remedios habituales son relajar la condición del producto a φλ ≤ ε y reducir ε a lo largo de una secuencia de resoluciones, trasladar el producto al coste como penalización o usar solucionadores diseñados para problemas de complementariedad. Las buenas estimaciones iniciales importan mucho, y por eso los optimizadores con contacto implícito suelen arrancarse en caliente a partir de soluciones más sencillas.

Por qué importa

El contacto es el rasgo que define la locomoción con patas y la manipulación, y las restricciones de complementariedad son la forma exacta estándar de escribir el contacto rígido en ecuaciones. Permiten que los simuladores calculen las fuerzas de contacto de forma coherente y que los optimizadores descubran la secuencia temporal de los contactos, en lugar de exigir que un ingeniero fije de antemano la marcha o la secuencia de contactos.

Aplicaciones clave

  • Optimización de trayectorias con contacto implícito para robots con patas y manipulación
  • Simulación de cuerpos rígidos por pasos de tiempo con contacto y fricción
  • Planificación de aterrizajes, saltos e impactos
  • Modelado de restricciones unilaterales como los límites articulares y los cables
  • Formulaciones de física diferenciable del contacto

En la práctica

Un ingeniero planifica el aterrizaje de un cuadrúpedo que se deja caer desde cierta altura. La optimización de trayectorias usa transcripción directa con puntos de nodo cada pocos milisegundos; para cada pie y cada nodo añade como variables la altura del pie sobre el suelo y la fuerza vertical de reacción del suelo, con las condiciones altura ≥ 0, fuerza ≥ 0 y altura × fuerza ≤ ε. La primera resolución usa un ε holgado y una estimación inicial a partir de un movimiento de caída simple; cada resolución posterior reduce ε y se arranca en caliente desde la solución anterior. El plan final muestra qué pies tocan el suelo primero y cómo aumentan las fuerzas, y el ingeniero comprueba que la violación de complementariedad restante es lo bastante pequeña como para que el plan no dependa de fuerzas a distancia.

Ideas erróneas comunes

  • Las restricciones de complementariedad hacen convexa la planificación de contactos — eliminan las variables enteras, pero son no convexas y numéricamente difíciles para los solucionadores estándar
  • Una solución con un producto relajado pequeño es físicamente exacta — con φλ ≤ ε el optimizador puede aprovechar fuerzas pequeñas a distancias pequeñas, por lo que hay que comprobar ε y la violación restante
  • Todos los motores de física resuelven el contacto como un problema de complementariedad — muchos usan en su lugar modelos de contacto por penalización o flexibles, o relajaciones convexas, en vez de una complementariedad estricta

Quién debería saberlo

  • Ingenieros de optimización de trayectorias y de locomoción con patas
  • Desarrolladores de simulación física
  • Investigadores en manipulación que planifican a través del contacto
  • Profesionales de la optimización numérica en robótica

Tecnologías relacionadas

  • Problema de complementariedad lineal (Linear Complementarity Problem, LCP)
  • MPCC (Mathematical Program with Complementarity Constraints)
  • IPOPT
  • Drake
  • Solucionador PATH

Términos relacionados

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

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
  • 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 sitio web requiere JavaScript. Por favor, habilite JavaScript para explorar nuestros proyectos de robótica.