Task-Priority Inverse Kinematics
- Aussi appelé: hierarchical inverse kinematics, prioritized inverse kinematics
- Catégorie: Foundations & spatial maths › Kinematics
- Mots-clés: inverse-kinematics, redundancy-resolution, whole-body-control, optimization, humanoids
Cinématique inverse pour robots redondants dans laquelle les tâches sont classées et chaque tâche de priorité inférieure n'est résolue que dans les mouvements qui laissent intactes les tâches de priorité supérieure.
Définition
Cinématique inverse à priorités de tâches (task-priority inverse kinematics) : méthode qui détermine le mouvement d'un robot redondant lorsqu'il doit atteindre plusieurs objectifs à la fois, comme garder l'équilibre, placer une main, maintenir une direction du regard et rester près d'une posture confortable. Les tâches sont ordonnées par importance. La tâche de plus haute priorité est résolue en premier, généralement par une pseudo-inverse de sa jacobienne (Jacobian) ; la tâche suivante n'est ensuite résolue que dans l'espace nul de la première, l'ensemble des mouvements articulaires qui ne la perturbent pas, et ainsi de suite en descendant la liste. Une tâche de priorité inférieure est accomplie aussi bien que possible sans jamais dégrader une tâche supérieure. Nakamura, Hanafusa et Yoshikawa ont formalisé cette idée en 1987, et Siciliano et Slotine ont donné en 1991 une formulation récursive largement utilisée pour un nombre quelconque de tâches.
Dans sa forme classique, la méthode opère au niveau des vitesses : q̇ = J₁⁺ ẋ₁ + N₁ (J₂N₁)⁺ (ẋ₂ − J₂J₁⁺ẋ₁) et ainsi de suite, où N₁ projette sur l'espace nul de la tâche 1. Deux problèmes pratiques se posent. Lorsque deux tâches sont en conflit, la jacobienne projetée de la tâche inférieure peut devenir singulière alors qu'aucune des deux tâches n'est singulière isolément, et un amortissement est nécessaire pour garder les vitesses articulaires bornées. Et les butées articulaires, l'évitement de collisions et les forces de contact sont des inégalités, que la seule projection dans l'espace nul gère mal.
Les solveurs modernes posent donc chaque niveau de priorité comme un programme quadratique, résolu en séquence ou avec un solveur QP hiérarchique dédié, de sorte que des tâches d'égalité et d'inégalité puissent apparaître à n'importe quel niveau. C'est la base de l'approche stack of tasks et de bibliothèques comme OpenSoT et CartesI/O. Une alternative courante est la cinématique inverse pondérée, ou à priorités souples, qui additionne toutes les tâches dans un seul coût avec des poids différents ; elle est plus simple et plus lisse, mais laisse les tâches se compenser mutuellement au lieu d'imposer une préséance stricte.
Pourquoi c'est important
Les humanoïdes, les quadrupèdes dotés de bras et les manipulateurs mobiles ont bien plus d'articulations qu'aucune tâche isolée n'en exige. La cinématique inverse à priorités de tâches rend explicite quels objectifs ne doivent jamais être violés et lesquels peuvent céder, ce qui est central pour le mouvement du corps entier de ces robots.
Applications principales
- Mouvement du corps entier des robots humanoïdes et à pattes
- Manipulation mobile avec la base et le bras qui bougent ensemble
- Bras redondants qui doivent éviter les butées articulaires et les obstacles tout en suivant une trajectoire d'outil
- Téléopération et reciblage de mouvement vers des robots de cinématique différente
- Suivi de trajectoire pour les robots à pattes et roues
En pratique
Sur un quadrupède à pattes et roues, un planificateur de mouvement produit des trajectoires pour le corps, les roues et les pieds. Pour les suivre sur le robot, l'équipe construit une pile de tâches : en haut, les limites de position et de vitesse articulaires comme contraintes d'inégalité ; ensuite, les points de contact des roues qui doivent rester au sol ; puis la pose du corps ; et enfin une tâche de posture qui ramène les articulations vers une configuration nominale. Un solveur QP hiérarchique exécute cette pile à chaque cycle de commande et fournit des consignes articulaires aux contrôleurs de bas niveau. Lorsque le corps ne peut pas atteindre une hauteur commandée sans soulever une roue, le solveur garde la roue au sol et laisse la tâche du corps rester en deçà, ce que l'équipe observe comme une erreur de suivi plutôt que comme une roue qui patine.
Idées reçues
- Les tâches de priorité inférieure sont ignorées — elles sont satisfaites d'aussi près que possible dans les mouvements laissés libres par les tâches supérieures
- La cinématique inverse pondérée donne le même résultat — les poids laissent les tâches se compenser, alors que des priorités strictes ne laissent jamais une tâche inférieure perturber une tâche supérieure
- La méthode évite toutes les singularités — les conflits entre tâches créent des singularités algorithmiques qui exigent un amortissement ou un réordonnancement
- La projection dans l'espace nul gère seule les butées articulaires — les inégalités demandent un traitement supplémentaire, c'est pourquoi les programmes quadratiques hiérarchiques sont largement utilisés
Qui devrait le savoir
- Ingénieurs en commande du corps entier pour humanoïdes et robots à pattes
- Développeurs en manipulation mobile
- Ingénieurs en planification de mouvement et en téléopération
- Étudiants en robotique qui étudient la résolution de la redondance
Technologies associées
- OpenSoT
- CartesI/O
- Stack of Tasks
- Programmation quadratique hiérarchique (Hierarchical Quadratic Programming)
- Moindres carrés amortis (Damped Least Squares)
Termes associés
- Inverse Kinematics
- Jacobian
- Whole-Body Control
- Operational Space Control
- Loco-Manipulation
- Humanoid Robot
Projets associés
- 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