Task-Priority Inverse Kinematics
- Auch genannt: hierarchical inverse kinematics, prioritized inverse kinematics
- Kategorie: Foundations & spatial maths › Kinematics
- Schlagwörter: inverse-kinematics, redundancy-resolution, whole-body-control, optimization, humanoids
Inverse Kinematik für redundante Roboter, bei der die Aufgaben in eine Rangfolge gebracht werden und jede Aufgabe niedrigerer Priorität nur in den Bewegungen gelöst wird, die Aufgaben höherer Priorität unbeeinflusst lassen.
Definition
Inverse Kinematik mit Aufgabenprioritäten (Task-Priority Inverse Kinematics) bestimmt die Bewegung eines redundanten Roboters, wenn er mehrere Ziele zugleich erfüllen muss, etwa das Gleichgewicht halten, eine Hand platzieren, eine Blickrichtung beibehalten und nahe einer bequemen Haltung bleiben. Die Aufgaben werden nach Wichtigkeit geordnet. Die Aufgabe mit der höchsten Priorität wird zuerst gelöst, typischerweise über eine Pseudoinverse ihrer Jacobi-Matrix (Jacobian); die nächste Aufgabe wird dann nur im Nullraum der ersten gelöst, also in der Menge der Gelenkbewegungen, die sie nicht stören, und so weiter die Liste hinab. Eine Aufgabe niedrigerer Priorität wird so gut wie möglich erreicht, ohne jemals eine höhere zu verschlechtern. Nakamura, Hanafusa und Yoshikawa formalisierten diese Idee 1987, und Siciliano und Slotine gaben 1991 eine weit verbreitete rekursive Formulierung für beliebig viele Aufgaben an.
In ihrer klassischen Form arbeitet die Methode auf Geschwindigkeitsebene: q̇ = J₁⁺ ẋ₁ + N₁ (J₂N₁)⁺ (ẋ₂ − J₂J₁⁺ẋ₁) und so weiter, wobei N₁ auf den Nullraum von Aufgabe 1 projiziert. Dabei treten zwei praktische Probleme auf. Wenn zwei Aufgaben in Konflikt stehen, kann die projizierte Jacobi-Matrix der niedrigeren Aufgabe singulär werden, obwohl keine der beiden Aufgaben allein singulär ist, und es ist Dämpfung nötig, um die Gelenkgeschwindigkeiten beschränkt zu halten. Außerdem sind Gelenkgrenzen, Kollisionsvermeidung und Kontaktkräfte Ungleichungen, mit denen eine reine Nullraumprojektion schlecht umgeht.
Moderne Solver formulieren daher jede Prioritätsebene als quadratisches Programm, das nacheinander oder mit einem eigens dafür gebauten hierarchischen QP-Solver gelöst wird, sodass Gleichungs- und Ungleichungsaufgaben auf jeder Ebene vorkommen können. Darauf beruhen der Stack-of-Tasks-Ansatz und Bibliotheken wie OpenSoT und CartesI/O. Eine verbreitete Alternative ist die gewichtete inverse Kinematik, auch mit weichen Prioritäten (soft priority), die alle Aufgaben mit unterschiedlichen Gewichten in einer Kostenfunktion summiert; sie ist einfacher und glatter, lässt die Aufgaben aber gegeneinander abwägen, statt eine strikte Rangfolge durchzusetzen.
Warum es wichtig ist
Humanoide, Vierbeiner mit Armen und mobile Manipulatoren haben weit mehr Gelenke, als eine einzelne Aufgabe braucht. Inverse Kinematik mit Aufgabenprioritäten macht explizit, welche Ziele nie verletzt werden dürfen und welche nachgeben können, was für Ganzkörperbewegungen solcher Roboter zentral ist.
Wichtige Anwendungen
- Ganzkörperbewegung humanoider und laufender Roboter
- Mobile Manipulation mit gemeinsam bewegter Plattform und Arm
- Redundante Arme, die Gelenkgrenzen und Hindernissen ausweichen müssen, während sie einer Werkzeugbahn folgen
- Teleoperation und Bewegungs-Retargeting auf Roboter mit anderer Kinematik
- Trajektorienfolge für Rad-Bein-Roboter
In der Praxis
An einem Rad-Bein-Vierbeiner erzeugt ein Bewegungsplaner Trajektorien für den Rumpf, die Räder und die Füße. Um ihnen am Roboter zu folgen, baut das Team einen Aufgabenstapel: ganz oben Gelenkpositions- und Gelenkgeschwindigkeitsgrenzen als Ungleichungsnebenbedingungen; danach die Kontaktpunkte der Räder, die am Boden bleiben müssen; dann die Rumpfpose; und zuletzt eine Haltungsaufgabe, die die Gelenke zu einer Nominalkonfiguration zieht. Ein hierarchischer QP-Solver führt diesen Stapel in jedem Regelzyklus aus und gibt Gelenksollwerte für die unterlagerten Regler aus. Kann der Rumpf eine befohlene Höhe nicht erreichen, ohne ein Rad anzuheben, hält der Solver das Rad am Boden und lässt die Rumpfaufgabe unerfüllt, was das Team als Folgefehler sieht und nicht als durchrutschendes Rad.
Häufige Missverständnisse
- Aufgaben niedrigerer Priorität werden ignoriert — sie werden so genau wie möglich innerhalb der Bewegungen erfüllt, die die höheren Aufgaben frei lassen
- Gewichtete inverse Kinematik liefert dasselbe Ergebnis — Gewichte lassen Aufgaben gegeneinander abwägen, während strikte Prioritäten nie zulassen, dass eine niedrigere Aufgabe eine höhere stört
- Die Methode vermeidet alle Singularitäten — Konflikte zwischen Aufgaben erzeugen algorithmische Singularitäten, die Dämpfung oder eine Umordnung erfordern
- Die Nullraumprojektion bewältigt Gelenkgrenzen von allein — Ungleichungen brauchen eine zusätzliche Behandlung, weshalb hierarchische quadratische Programme weit verbreitet sind
Wer das wissen sollte
- Ingenieure für Ganzkörperregelung von Humanoiden und Laufrobotern
- Entwickler für mobile Manipulation
- Ingenieure für Bewegungsplanung und Teleoperation
- Robotikstudierende, die sich mit Redundanzauflösung befassen
Verwandte Technologien
- OpenSoT
- CartesI/O
- Stack of Tasks
- Hierarchische quadratische Programmierung (Hierarchical Quadratic Programming)
- Gedämpfte kleinste Quadrate (Damped Least Squares)
Verwandte Begriffe
- Inverse Kinematics
- Jacobian
- Whole-Body Control
- Operational Space Control
- Loco-Manipulation
- Humanoid Robot
Verwandte Projekte
- 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