Inverse Kinematik

Hinführung

Die Inverse Kinematik basiert auf mathematischen Gleichungssystemen, die zur Simulation gelenkig verbundener Systeme dienen. Dieser Ansatz entstammt der Robotik, die schon früh mit der Problemstellung der exakten Positionierung von Greifarmen und Werkzeugen konfrontiert wurde. Im Bereich der Avatare dient sie zur Simulation der mechanischen Bewegungsabläufe des menschlichen Skelettes. Hinter uns Menschen einfach erscheinenden Bewegungen verbergen sich häufig komplexe Algorithmen, die das Gehirn in Echtzeit berechnet. Diese Algorithmen dürften den Gleichungsystemen der Inversen Kinematik sehr ähnlich sein. Mit diesen läßt sich unter anderem erklären warum schnelle Bewegungen ungenau, und langsame Bewegungen von uns Menschen genau ausgeführt werden können.

Es existieren zwei Ansätze, um die Bewegung gelenkig verbundener Systeme zu simulieren. Wobei die erste Methode, Vorwärtskinematik genannt, die Grundlage des zweiten Ansatzes, Inverse Kinematik genannt, bildet. Bei der Vorwärtskinematik sind die Winkelstellungen der Gelenke bekannt, unbekannt ist der aus den Winkeln resultierende Endpunkt. Die Inverse Kinematik geht dagegen den umgekehrten Weg: der gewünschte Endpunkt der Bewegung ist bekannt, und die Winkelstellungen müssen berechnet werden.

Grundlagen der Vorwärtskinematik

Kaum jemand macht sich ernsthafte Gedanken darüber, wie kompliziert der Vorgang des Gehens ist. Es ist für jeden Menschen eine Art Mechanismus, den das Gehirn bis ins kleinste Detail für uns erledigt. Doch welche großartige Leistung das Gehirn bei uns so primitiv erscheinenden Bewegungen erbringt, wird klar, sobald der Versuch gemacht wird, einem Roboter das Laufen beizubringen.

Im folgenden soll ein Bewegungsablauf mittels der Vorwärtskinematik nachgebildet werden. Dabei wird davon ausgegangen, daß die Gelenkstellungen bekannt sind, und der zugehörige Endpunkt berechnet werden muß. Zur Simulation eines menschlichen Gliedes werden drei Gelenke als ausreichend angesehen. In der Grafik unterhalb ist ein System mit drei Gelenken dargestellt. Dieses System könnte z.B. einen Arm nachbilden.

In der obigen Darstellung gelten folgende Beziehungen:

  1. Das erste Gelenk bezieht seinen Winkel Q1 auf die x-Achse

  2. Die weiteren Punkte Pi sind voneinander abhängig

Durch folgendes Gleichungssystem lassen sich die einzelnen Punkte berechnen:

Die Lage des Endpunktes P3 läßt sich auch unabhängig von der Position der anderen Gelenke berechnen:

Durch Einsetzen der Winkelgleichungen erhält man:

Diese Vorgehensweise der Endpunktbestimmung über die bekannten Winkelstellungen wird Vorwärtskinematik genannt. Weitaus interessanter für die Animation von Bewegungsabläufen ist jedoch, zu einem zugehörigen Endpunkt die entsprechenden Gelenkwinkel zu ermitteln. Dieser Vorgang wird dann Inverse Kinematik genannt, und wird im nächsten Kapitel erläutert.

Grundlagen der Inversen Kinematik

Die Inverse Kinematik beschäftigt sich mit dem Problem, in einem Gelenksystem zu einem gegebenen Gelenkpunkt, die entsprechenden Gelenkwinkel zu bestimmen. Dieses Problem ist nicht einfach zu lösen, da zu komplizierten trigonometrischen Formeln die Umkehrfunktion bestimmt werden muß. Außerdem, gibt es unendlich viele Möglichkeiten, die Position des Endpunktes durch drei Winkel zu beschreiben. Aus diesem Grund werden Näherungsformeln gesucht, die das gewünschte Ergebnis mit genügender Genauigkeit approximieren. Da Näherungsverfahren aber die Eigenschaft haben, nur in einem kleinen Intervall gute Werte zu liefern, ist der erste Schritt nicht mehr mit absoluten Winkeln und Positionsangaben zu rechnen, sondern nur noch Winkeländerungen und deren korrespondierende Postionsänderung zu betrachten. Durch diesen Trick können die trigonometrischen Funktionen durch eine einfache lineare Approximation beschrieben werden.

Gesucht ist also die Lage des Endpunktes, wenn sich die Gelenkwinkel um einen kleinen Wert ändern. Wie wir im obigen Abschnitt gehört haben wird das Problem durch eine Approximation, und zwar der linearen Approximation angegangen. Bei unserem Problem müssen also die Gleichungen 3 linear approximiert werden. Beide Gleichungen haben mehrere Variablen, dies sind Q1, Q2, Q3. Somit errechnet sich die Approximationsfunktion durch Aufsummieren ihrer partiellen Differentiale.

Der Sachverhalt der Approximation soll hier noch einmal allgemein dargestellt werden. Und zwar gilt bei einer Variablen allgemein:

Bei mehren Variablen werden die partitiellen Differentiale aufsummiert. Für drei Variablen ergibt sich somit:

Nun sind wir auch in der Lage die lineare Approximation für den gesuchten Endpunkt zu berechnen. Dabei soll folgendes gelten, um die Schreibweise zu vereinfachen: Die Winkel Q1, Q2 und Q3 sollen als Komponenten des Vektors Q aufgefaßt werden, und die Winkeländerungen dQ1, dQ2 und dQ3 sollen als Komponenten des Vektors dQ aufgefaßt werden, damit gilt dann: f(Q) = f(Q1,Q2,Q3) und f(Q+dQ) = f(Q1+dQ1,Q2+dQ2,Q3+dQ3).

Für den x-Wert des Endpunktes sind somit 3 partielle Differentiale zu berechnen, und für den y-Wert des Endpunktes ebenfalls. Die berechneten partiellen Differentiale sind in den folgenden Gleichungen zu sehen:

Setzt man nun die partitiellen Differentiale in die Gleichungen 5 ein, erhält man folgendes lineare Gleichungssystem mit 2 Gleichungen und 3 Unbekannten:

Mit Hilfe des Gaußschen Eliminationsverfahren lassen sich nun die gewünschten Winkeländerungen dQ ermitteln. Doch lassen Sie uns kurz über die Lösungsmenge nachdenken: Daß das Gleichungssystem unendlich viele Lösungen liefert, war schon klar, als wir das Bild mit den 3 Gelenken betrachtet haben, es sind beliebig viele Kombinationswinkel denkbar. Doch hier sei schon vermerkt, das es unter den unendlich vielen Lösungen nur wenige brauchbare geben wird. Denn viele Winkelkombinationen führen zu komplett unbrauchbaren Gelenkstellungen. Das ist aber auch nicht verwunderlich, wenn wir uns daran erinnern, daß die Approximationsfunktion nur für kleine Winkeländerungen definiert ist. Als Lösungsmenge erhalten wir eine Gerade im dreidimensionalen Raum. Wobei die Raumkoordinaten die drei Winkeländerungen dQ1,dQ2 und dQ3 bilden. Jeder Punkt auf dieser Geraden ist somit eine mögliche Lösung, der die gewünschte Positionsänderung liefert. Um nun aber zu einer eindeutigen Lösung zu kommen muß die Geradengleichung minimiert werden, denn die Approximationsfunktion ist nur für kleine Winkeländerungen definiert. Diese Art der Lösungsfindung, geht davon aus, daß alle Gelenke absolut gleichwertig behandelt werden. In der Natur gibt es aber bestimmte Gelenke, die stärker gebeugt werden als andere, und wieder andere, die in einer Zentralstellung verharren. Mathematisch wird diesem Problem entgegengetreten, indem die Gelenke mit Gewichtungsfaktoren versehen werden.

Grenzen der Inversen Kinematik

Die Inverse Kinematik stößt immer dann an Grenzen, wenn ein Bewegungsablauf zu komplex wird, um ihn mit einfachen Funktionen zu beschreiben, oder wenn die Lösungsfindung mathematisch so aufwendig wird, daß eine flüssige Animation nicht mehr gewährleistet werden kann. Denkt man an das Skelett eines Menschen mit den vielen Gelenken, wobei jedes einzelne Gelenk seine eigenen Charakteristiken aufweist, wird klar daß die Realistik der Bewegungsabläufe ein sehr hoher Anspruch ist. Jedes einzelne Gelenk hat nur bestimmte Winkelradien in Bezug auf andere Gelenke, die realistisch wirken, und was noch erschwerend hinzu kommt, die Gelenkstellung eines einzelnen Gelenkes ist oft von mehreren Gelenken abhängig. Die Findung der optimalen Gewichtungsfaktoren ist ein wichtiger Punkt, wenn man eine Animation in Hinblick auf die Realistik optimieren will.

Die Realitätsnähe der Bewegung steht im Mittelpunkt des nächsten Verfahren, das zur Animation benutzt wird, denn hier werden die Bewegungen von einem reell vorhandenen Animateur verwendet.