Task-Priority Inverse Kinematics
- También llamado: hierarchical inverse kinematics, prioritized inverse kinematics
- Categoría: Foundations & spatial maths › Kinematics
- Etiquetas: inverse-kinematics, redundancy-resolution, whole-body-control, optimization, humanoids
Cinemática inversa para robots redundantes en la que las tareas se jerarquizan y cada tarea de menor prioridad se resuelve solo con los movimientos que no afectan a las tareas de mayor prioridad.
Definición
Cinemática inversa con prioridad de tareas (task-priority inverse kinematics) resuelve el movimiento de un robot redundante cuando debe cumplir varios objetivos a la vez, como mantener el equilibrio, colocar una mano, mantener una dirección de la mirada y permanecer cerca de una postura cómoda. Las tareas se ordenan por importancia. La tarea de mayor prioridad se resuelve primero, normalmente mediante una pseudoinversa de su jacobiano; la siguiente tarea se resuelve después solo dentro del espacio nulo de la primera, el conjunto de movimientos articulares que no la perturban, y así sucesivamente a lo largo de la lista. Una tarea de menor prioridad se cumple lo mejor posible sin degradar nunca una de mayor prioridad. Nakamura, Hanafusa y Yoshikawa formalizaron esta idea en 1987, y Siciliano y Slotine dieron en 1991 una formulación recursiva muy usada para cualquier número de tareas.
En su forma clásica, el método trabaja a nivel de velocidades: q̇ = J₁⁺ ẋ₁ + N₁ (J₂N₁)⁺ (ẋ₂ − J₂J₁⁺ẋ₁) y así sucesivamente, donde N₁ proyecta sobre el espacio nulo de la tarea 1. Surgen dos problemas prácticos. Cuando dos tareas entran en conflicto, el jacobiano proyectado de la tarea inferior puede volverse singular aunque ninguna de las dos tareas sea singular por sí sola, y se necesita amortiguamiento para mantener acotadas las velocidades articulares. Y los límites articulares, la evitación de colisiones y las fuerzas de contacto son desigualdades, que la proyección pura en el espacio nulo maneja mal.
Por eso los solvers modernos plantean cada nivel de prioridad como un programa cuadrático, resuelto en secuencia o con un solver de QP jerárquico dedicado, de modo que las tareas de igualdad y de desigualdad pueden aparecer en cualquier nivel. Esta es la base del enfoque stack of tasks y de bibliotecas como OpenSoT y CartesI/O. Una alternativa habitual es la cinemática inversa ponderada, o de prioridad blanda, que suma todas las tareas en un solo coste con pesos distintos; es más sencilla y más suave, pero deja que las tareas se compensen entre sí en lugar de imponer una precedencia estricta.
Por qué importa
Los humanoides, los cuadrúpedos con brazos y los manipuladores móviles tienen muchas más articulaciones de las que necesita cualquier tarea individual. La cinemática inversa con prioridad de tareas hace explícito qué objetivos no deben violarse nunca y cuáles pueden ceder, algo central para el movimiento de cuerpo completo en estos robots.
Aplicaciones clave
- Movimiento de cuerpo completo de robots humanoides y robots con patas
- Manipulación móvil con la base y el brazo moviéndose a la vez
- Brazos redundantes que deben evitar los límites articulares y los obstáculos mientras siguen la trayectoria de una herramienta
- Teleoperación y retargeting del movimiento a robots con distinta cinemática
- Seguimiento de trayectorias para robots con patas y ruedas
En la práctica
En un cuadrúpedo con patas y ruedas, un planificador de movimiento produce trayectorias para el cuerpo, las ruedas y los pies. Para seguirlas en el robot, el equipo construye un stack of tasks: arriba, los límites de posición y velocidad articulares como restricciones de desigualdad; después, los puntos de contacto de las ruedas, que deben permanecer en el suelo; luego la pose del cuerpo; y por último una tarea de postura que lleva las articulaciones hacia una configuración nominal. Un solver de QP jerárquico ejecuta este stack en cada ciclo de control y entrega referencias articulares a los controladores de bajo nivel. Cuando el cuerpo no puede alcanzar una altura ordenada sin levantar una rueda, el solver mantiene la rueda en el suelo y deja que la tarea del cuerpo se quede corta, lo que el equipo ve como un error de seguimiento en lugar de una rueda que desliza.
Ideas erróneas comunes
- Las tareas de menor prioridad se ignoran — se cumplen lo más fielmente posible dentro de los movimientos que dejan libres las tareas superiores
- La cinemática inversa ponderada da el mismo resultado — los pesos dejan que las tareas se compensen, mientras que las prioridades estrictas nunca dejan que una tarea inferior perturbe a una superior
- El método evita todas las singularidades — los conflictos entre tareas crean singularidades algorítmicas que requieren amortiguamiento o reordenación
- La proyección en el espacio nulo maneja por sí sola los límites articulares — las desigualdades necesitan un tratamiento adicional, por lo que se usan mucho los programas cuadráticos jerárquicos
Quién debería saberlo
- Ingenieros de control de cuerpo completo para humanoides y robots con patas
- Desarrolladores de manipulación móvil
- Ingenieros de planificación del movimiento y de teleoperación
- Estudiantes de robótica que estudian la resolución de la redundancia
Tecnologías relacionadas
- OpenSoT
- CartesI/O
- Stack of Tasks
- Programación cuadrática jerárquica (Hierarchical Quadratic Programming)
- Mínimos cuadrados amortiguados (Damped Least Squares)
Términos relacionados
- Inverse Kinematics
- Jacobian
- Whole-Body Control
- Operational Space Control
- Loco-Manipulation
- Humanoid Robot
Proyectos relacionados
- Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
- GEAR-SONIC: NVIDIA's whole-body controller for the Unitree G1, trained to track any human motion
- GTSAM: Factor-graph optimization library powering many modern SLAM backends
- ASAP: Sim-to-real framework for agile humanoid whole-body skills using delta action models
- PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
- PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization