Ja, hallo, ich begrüße euch zur zweiten Vorlesung Robotik 1.
Und wie das letzte Mal bereits angekündigt ist, fangen wir heute an
mit Kapitel 1.
Und Kapitel 1 wird sich mit den mathematischen Grundlagen, die wir für
die Robotik brauchen, hier beschäftigen.
Und wir haben ja diese Beispiele gesehen.
Ein Roboter, der hier in einer Küchenumgebung Objekte zunächst mal
visuell erkennt, lokalisiert, aber dann auch diese Objekte greift.
Man sieht hier, nachdem die Position von...
oder nachdem der Roboter erkannt hat, was so auf dem Tisch steht und
er eine Instruktion vom Benutzer bekommt, wie bring me the green cup
from the table or from the sideboard, dass der Roboter sich mal
positioniert, dann seinen Arm nimmt und dieses Objekt, also diese
grüne Tasche hier, wie man sieht, greift und dann den Menschen
überreicht.
Und viele weitere Aufgaben, wie zum Beispiel jetzt die
Geschirrspülmaschine aufmachen, natürlich damit der Roboter den Griff
hier greifen kann, also den Tourgriff hier, muss er natürlich diesen
Griff lokalisieren.
Lokalisieren bedeutet, er weiß eigentlich, wo er seine Hand bewegen
muss, damit er diesen Griff anfassen kann, um die Geschirrspülmaschine
aufzumachen.
Und viele andere weitere Beispiele, da sieht man hier, der Roboter
führt eine ganze Menge von Aufgaben, greifen unterschiedliche Objekte,
öffnen vom Kühlschrank, abstellen von Objekten auf dem Tisch, Tisch
wischen und so weiter und so fort.
Und was eigentlich notwendig ist und zentral, um so etwas machen zu
können, ist, dass der Roboter weiß, wo stehen eigentlich die Objekte
im Raum, wie weit sind sie von mir, wie muss ich meinen Arm bewegen,
damit ich diesen Seitengriff auf die Tasse ausführen kann,
beziehungsweise diesen Griff auf den Griff von der
Geschirrspülmaschine machen kann.
Wenn wir jetzt ein einfaches Beispiel, nur einen Ausschnitt hier
betrachten, das heißt, der Roboter soll jetzt diesen Apfelsaft im
Kühlschrank greifen, also bring me the apple juice from the fridge, da
sieht man hier, dass der Roboter auch seinen Arm bewegt zu einem
bestimmten Apfelsaft und dann, wenn er wahrscheinlich nah genug am
Apfelsaft ist, macht er die Hand zu und kann das Objekt greifen.
So, die Frage ist, was brauchen wir, um so etwas zu realisieren?
Das heißt, zunächst einmal, welche Methoden, mathematische Methoden
brauchen wir, um solche Aufgaben realisieren zu können?
Dass der Roboter an die Tasse auf den Tisch greift, dass der Roboter
sich zum Kühlschrank bewegt und die Tür aufmacht und dann wieder zum
Benutzer fährt und das Objekt übergibt.
Wir müssen anscheinend Positionen im Raum beschreiben.
Also, wie ist die Position der grünen Tasse im Raum beschrieben?
Wo ist der Apfelsaft?
An welcher Koordinatie eigentlich in einem bestimmten
Koordinatensystem liegt der Apfelsaft?
Ist das jetzt an der Koordinatie 1, 3 und 10 vom Koordinatensystem vom
Kühlschrank oder ist das 100, 350 und 400 im Koordinatensystem der
Küche, zum Beispiel in der Ecke der Küche?
Oder ist das irgendeine Position im Koordinatensystem der Kameras, die
das Objekt visuell lokalisiert haben?
Oder ist es vielleicht eine Position vom Apfelsaft im
Koordinatensystem des Armes, die notwendig ist, damit die Armsteuerung
den Arm zu dieser Zielposition führen kann?
Das heißt, wie man sieht hier, gibt es eine ganze Menge von Fragen,
die man beantworten muss.
Natürlich ist die Position vom Apfelsaft wichtig und notwendig, damit
der Roboter den Apfelsaft greift, aber wir müssen auch wissen, in
welchem Koordinatensystem eigentlich diese Position bereitgestellt
werden muss.
Und anscheinend ist es nicht nur die Position, weil wenn der Apfelsaft
oder diese Box nicht im Kühlschrank so aufrecht steht, sondern
umgekippt ist, dann ist es auch wichtig, dass wir wissen, in welcher
Lage oder welche Orientierung das Objekt steht, damit der Roboter
diesen Griff jetzt nicht von der Seite, sondern wahrscheinlich von
oben auf dem Objekt ausführen kann.
Das heißt, befindet sich zum Beispiel eine Flasche hier direkt vor dem
Roboter oder muss sich der Roboter ein bisschen drehen oder muss der
Arm, wie ich bereits erwähnt habe, statt seitlich von oben an das
Objekt rangehen, um das Objekt hier zu greifen?
Das heißt, wir benötigen Methoden, also mathematische Methoden, ein
Rahmenwerk, mit dem wir auf jeden Fall Positionen von Objekten, aber
auch Translationen, also zwischen unterschiedlichen Positionen, sowie
Orientierungen beziehungsweise Rotationen beschreiben können.
Denn das müssen wir auch nicht nur für die Objekte machen, sondern das
müssen wir für die Gelenke des Roboters machen.
Stellt euch mal vor, ich bin ein Roboter und das ist meine Hand.
Und wenn ich jetzt meinen Ellenbogen bewege, dann ändert sich
natürlich die Position von meiner Hand im Raum.
Und es ist so naheliegend, dass wenn der Roboter ein Objekt greift,
die Gelenkwinkel von Schulter, Ellenbogen, Unterarmdrehung verändert
werden müssen, damit er die gewünschte Greifpose erreicht.
Das heißt, es gilt auch diese Rotationen, die Gelenke zum Beispiel des
Roboterarmes durchführen, auch irgendwie zu beschreiben und deren
Einfluss auf zum Beispiel die Orientierung der Hand zu haben.
Und das ist, was wir machen wollen in diesem Kapitel, das heißt
Einführung in die mathematischen Grundlagen, um Positionen,
Translationen und Rotationen im Raum zu beschreiben.
Wir fokussieren hier zunächst mal uns auf die Kinematik, das heißt und
zwar Methoden, mit denen wir Positionen und Orientierungen
beziehungsweise Transformationen von Starkkörpern behandeln, also
keine weichen oder deformierbaren Körper, wo die Beziehung zwischen
zwei Punkten auf dem Körper sich verändert, wenn das Objekt sich
deformiert beispielsweise.
Und natürlich diese Methoden, die wollen wir jetzt nicht nur rein
mathematisch hier herleiten, sondern wir wollen schauen, wie diese
Methoden für die Modellierung von Robotersystemen verwendet werden
können.
Einige Definitionen, bevor wir loslegen.
Wir unterscheiden zwischen unterschiedlichen Konzepten in der Robotik.
Einmal die Kinematik und die Kinematik ist die geometrische
Beschreibung von Bewegungen.
Tatsächlich, wie bewegt sich meine Hand, wenn die Gelenke meines Armes
sich verändern.
Und wie man sieht hier, die essentielle Größe hier ist die Position,
also die Position der Gelenkwinkel, der einzelnen Gelenke.
Und rein geometrische Beschreibung, ohne dass wir wissen, wie schwer
ist der Unterarm, wie schwer ist der Oberarm, welche Trägheitsmomente
der einzelnen Segmente im Arm, wie groß die Trägheitsmomente sind und
so weiter und so fort.
Dann gibt es natürlich die Statik und die Statik ist die Lehre der
Kräfte und Momente, die sich auf einen ruhenden Mechanismus wirken.
Also man kann sich vorstellen, ein Roboterarm oder ein Roboterarm, der
irgendein Gewicht oder ein Last hält, ein Hammer oder eine Bierbox,
eine Bierkiste und Ähnliches.
Das heißt, in einer ruhenden Pose, wenn der Arm steht, sich nicht
bewegt, welche Kräfte und Momente wirken sich auf die einzelnen
Gelenke.
Ja, das ist eigentlich naheliegend und die wesentliche oder
essentielle Größe hier, die man hat, ist die Steifigkeit.
Deshalb muss man sich Gedanken darüber machen immer, wie steif muss
eigentlich ein Roboterarm sein, damit man bestimmte Genauigkeiten
erreichen kann unter bestimmten Belastungen.
Also wenn dieser Roboterarm immer so die Tour von diesem Auto
transportieren muss und irgendwo platzieren muss, dann muss er das mit
einer gewissen Genauigkeit machen und zwar in der Endpose.
Und deshalb muss man bei der Auslegung der Mechanik, beziehungsweise
der ganzen Struktur hier, sich Gedanken darüber machen, welche
Materialien eingesetzt werden müssen, damit man eine gewisse
Steifigkeit erreichen kann, die solche Kräfte und Momente an der
Endpose, also im ruhenden Zustand, garantiert.
Natürlich gibt es Kräfte und Momente, die sich einwirken, wenn ein
Roboterarm sich bewegt.
Wenn wir jetzt diese Tour von dem Auto transportieren, dann wirken
sich natürlich Kräfte und Momente während der Bewegung.
Das heißt, durch die Bewegung selber und die Beschleunigung des
Mechanismus oder der unterschiedlichen Teile des Mechanismus
entstehen.
Und eventuell durch auch eine zusätzliche Last.
Und diese Kräfte und Momente, die bei Bewegung auftreten, das ist ein
Fall für die Dynamik, was wir auch in dieser Vorlesung beschreiben
bzw.
behandeln werden.
Einiges zur Terminologie, das ist ja nicht schwierig.
Das ist hier ein Roboterarm und dieser Roboterarm oder Roboterarme
bestehen immer aus einem Endeffektor.
In unserem Beispiel sind diese Endeffektoren Anthropomorphie-Handy,
also fünffingriges Handy.
Natürlich in industriellen Anwendungen oder in anderen Anwendungen
können das Zweifingergreifer sein, also Backengreifer oder eine
Schweißpistole.
Aber das, was am Ende vom Roboterarm ist, ist der Endeffektor, weil
mit diesem Endeffektor kann der Roboter die Umgebung oder die Objekte
manipulieren.
Dann haben wir natürlich Segmente wie hier Oberarm bzw.
Unterarm oder ein Schultersegment, wie man hier sieht.
Und dann haben wir Gelenke hier, zum Beispiel Schultergelenke oder
Gelenke im Ellenbogen.
Einmal Flexionsextensionsgelenk und einmal das Gelenk für die
Unterarmdrehung oder Supination, Pronation.
Und wie man Roboter beschreibt oder die Kinematik von einem Roboter
beschreiben kann, das ist natürlich naheliegend, wenn ich jetzt die
Bewegung von diesem Roboterarm beschreiben will, basierend auf der
Geometrie ohne Berücksichtigung von Kräften und Momenten.
Da muss ich natürlich wissen, wie diese Gelenke zueinander liegen, wie
lang sind die einzelnen Segmente, Armsegmente oder Glieder.
Und wenn ich das habe, dann ist es ja eine einfache Sache für die
Mathematik eigentlich.
Ein paar Gelenke, die sich rotieren, dann dreht sich der Unterarm so
und der Oberarm so und dann weiß ich, wo mein Endeffektor ist.
Und damit man das macht, beschreibt man diese Roboter mithilfe von
sogenannten kinematischen Ketten und diese kinematischen Ketten oder
eine kinematische Kette, die bestehen aus einer Menge von Gliedern,
die durch Gelenke miteinander verbunden und die kann man durch einen
Graphen repräsentieren, wobei die Kanten natürlich die Glieder von dem
Roboterarm sind und die Knoten sind die Gelenke.
Und das sind ein paar Beispiele, das ist zum Beispiel ein Modell vom
menschlichen Körper, das ist wiederum ein Roboter, kann man als eine
kinematische Kette hier darstellen.
Da sieht man hier unterschiedliche Typen von Gelenken, zum Beispiel
Gelenke in der Schulter, die sich in drei Richtungen bewegen.
Das sind unsere Schulterkugelgelenke, dann Gelenke im Ellenbogen, die
die Flexion, Extension und Unterarmdrehung realisieren oder Gelenke im
Knie beispielsweise, die nur eine Drehung, also Knie, Flexion,
Extension durchführen.
Natürlich auch hier ein Modell von dem Arm, das sieht man hier und
kann man sofort ablesen eigentlich, welche Bewegungsmöglichkeiten hat
dieser Mechanismus oder dieser Roboterarm.
Man sieht hier, ich kann zunächst mal eine Drehung um die Theta 1
-Achse, dann um Theta 2, dann um 3, 4, 5, 6, 7, 8 und so weiter und so
fort.
Und beziehungsweise kann man jetzt hier so einen Graphen für die
komplette menschliche Hand hier aufstellen,
mit dessen Hilfe man die Beziehungen zwischen Segmentlängen der Hand
und Gelenke der Hand beschreiben kann.
Und das sind weitere Beispiele, also das ist zum Beispiel der Arma 4
-Roboter und das wäre jetzt hier das kinematische Modell
beziehungsweise der Graph, der die kinematischen Ketten in diesem
Roboter beschreibt.
Und man sieht hier, dass nicht nur eine einzige kinematische Kette des
Armes, sondern mehrere verzweigte kinematische Ketten für den Kopf,
für die beiden Arme, für die beiden Beine.
Oder solche für einen Roboter, der ohne Beine ist, ja, das ist das
kinematische Modell zum Beispiel von dem Arma 1, wo man auch direkt
anhand von diesen grafischen Darstellungen sofort die Information
bekommt, wie die Bewegungsmöglichkeiten dieses Roboters sind.
Hier sind noch weitere Beispiele und wie man sieht hier, natürlich die
Detailliertheitsgrad der Modellierung von diesen Systemen, die kann
auch unterschiedlich sein von sehr abstrakt Gelenk und eine Linie, die
Gelenke miteinander verbinden bis hin zu vielleicht irgendwelche
geometrischen Strukturen von den Segmenten, die notwendig sind, wenn
man zum Beispiel Kollisionsvermeidung von einem Roboter mit der
Umgebung betrachten will.
Weil da müssen wir ja etwas über die Ausdehnungen beispielsweise der
einzelnen Segmente etwas wissen, damit wir sicherstellen können, dass
diese Segmente während der Bewegung sich nicht mit der Umgebung oder,
also ungewollt mit der Umgebung kollidieren können.
Beziehungsweise sehr detaillierte und genaue Modelle, also anatomische
Modelle hier von der menschlichen Hand, die man auf die gleiche Art
und Weise beschreiben kann, hier eine Abstraktion von diesem
anatomischen Modell der menschlichen Hand.
Was auch ganz wichtig im Kontext der Kinematik ist der Begriff der
Bewegungsfreiheitsgrad.
Bewegungsfreiheitsgrad, beziehungsweise auf Englisch degree of
freedom, hier jetzt eine weniger formelle Definition, ist die Anzahl
der unabhängigen Parameter, die man braucht, um eine komplette
Spezifikation der Position und Orientierung eines Mechanismus oder
eines Objekts im Raum zu beschreiben.
Was bedeutet das?
Das bedeutet sowas wie, wenn ich jetzt die Position oder wenn ich
jetzt einen Punkt im zweidimensionalen Raum beschreiben will, dann
weiß ich, dass dieser Punkt mit zwei Parametern eindeutig beschrieben
werden kann, also x und y.
Wenn ich einen Punkt im dreidimensionalen Raum beschreiben will, dann
ist das x, y, z, also drei unabhängige Parameter, die ich brauche, um
eine eindeutige Beschreibung oder Spezifikation von diesem Punkt im
Raum zu haben.
Und ein starrer Körper, wie beispielsweise dieser Pointer hier auf dem
Tisch, um den zu beschreiben, brauche ich auch drei Parameter, weil
ich muss etwas zum Beispiel über den Mittelpunkt von dem Objekt, also
x, y auf dem Tisch, und dann, wie das Objekt auf dem Tisch liegt.
Ob das so liegt oder so liegt, also x, y und Alpha.
Und wenn man das Ganze verallgemeinert, also ein starker Körper wie
dieser Pointer hier oder ein Orangensaft oder eine Tassie oder
ähnliches im Raum, dann brauche ich sechs unabhängige Parameter, das
sind natürlich die Positionen x, y und z und die drei Orientierungen.
Also wie dieses Objekt hier im Raum orientiert ist in Bezug oder
relativ zu allen drei Achsen, also zu der x, y und z-Achse.
So, wir wollen das die Gryophrydem nennen, also Abkürzung im
Englischen, was man auch in der Literatur findet, in vielen
Veröffentlichungen, DOF.
Und wir wollen uns beschränken auf die Beschreibung von der Kinematik
bzw.
von Bewegungen von Starkkörpern, wie ich bereits erwähnt habe, also
keine deformierbaren Körper.
Und wir wissen ja bei Starkkörpern, dass die Distanz zwischen zwei
beliebigen Punkten auf diesem Körper immer erhalten bleibt und dass
die Orientierungen im Körper, also wenn ich jetzt auf diesem starken
Körper ein Koordinatensystem definiere, das rechtsdrehend ist, dann
bleibt dieses Koordinatensystem bei beliebiger Transformation,
beliebige Bewegung von dem Objekt ein rechtsdrehendes
Koordinatensystem.
So, das sind ganz einfache und naheliegende Annahmen.
Und was man hier hat in der Robotik, um Positionen bzw.
Orientierungen bzw.
Translationen und Rotationen zu beschreiben, hat man zwei sehr
wichtige Gruppen.
Die heißen SO3 und SE3.
Und diese beiden Gruppen, die sind von großem Interesse in der Robotik
aus einem einfachen Grund, die kommen natürlich aus der Mathematik,
aus der Algebra.
Die SO3, das ist die spezielle orthogonale Gruppe, die Rotationen
repräsentiert.
Das heißt, Elemente dieser Gruppe sind Entitäten, die Rotationen
beschreiben.
Und die SE3, das ist die spezielle euklidische Gruppe, die eigentlich
Bewegung repräsentiert.
Das heißt, sie repräsentiert Translationen und Rotationen, die während
einer Bewegung auftreten.
Die Elemente von SO3 sind reale 3x3 Matrizen mit einer ganz besonderen
Eigenschaft, dass einmal die Determinante von diesen Matrizen 1 ist
und die transponierte Matrix multipliziert mit der Matrix selber die
Einheitsmatrix ergibt, also 3x3 Einheitsmatrix.
Das heißt, wenn wir wissen wollen, ob eine gegebene Matrix
beispielsweise eine Rotationsmatrix ist oder ein Element von SO3 ist,
dann müssen wir prüfen, ob das hier stimmt, also ob R transponiert mal
R die Einheitsmatrix ist und ob die Determinante von dieser Matrix 1
ist.
Natürlich kann man das auch nicht nur auf SO3 sagen, man kann das auf
SE3 mal betrachten oder auf SE2, also 2x2 Matrizen, aber da kommen wir
vielleicht später dazu, wenn wir Rotationen in 2D betrachten.
Wenn man eine Matrix, die Rotation in 2D beschreibt hat, dann muss sie
auch diese Eigenschaft erfüllen, also dass die Determinante 1 ist und
dass die Matrix multipliziert mit der transponierten die
Einheitsmatrix ergibt.
Die Elemente von SE3 haben eine andere Form, und zwar sind das nicht
nur reelle 3x3 Matrizen.
Schauen wir mal, ob das hier heute funktionieren will.
Also hier haben wir, das sind 3x3 Matrizen, die Elemente von SO3.
Die Elemente von SE3 haben diese Form.
Die haben ein R, wobei R aus SO3, das heißt eine Rotationsmatrix, und
die haben noch ein Vektor P, und dieser Vektor P ist aus R3.
Was bedeutet das eigentlich?
Das bedeutet, ich habe einen Translationsvektor P und dann eine
Rotationsmatrix R, mit der ich sowohl Translationen als auch
Rotationen beschreiben kann.
Und das ist anscheinend, was wir so brauchen.
Das heißt, wir brauchen immer, um Positionen von starren Objekten im
euklidischen Raum zu beschreiben, also in Weltkoordinaten zu
beschreiben, wo ein Roboter Objekte greifen und manipulieren soll,
brauchen wir sowohl diesen Vektor P als auch diese Matrix R, die für
uns die Position von dem Objekt spezifiziert.
Und um zum Beispiel die Roboterhand dorthin zu führen, damit wir
dieses Objekt greifen, müssen wir dafür sorgen, die Robotersteuerung
muss dafür sorgen, dass die Position und die Orientierung von der Hand
des Roboters sich näher hat zu dieser Position und Orientierung des
Objekts.
Das heißt, man muss irgendwie schauen, dass diese Rotationsmatrix und
das P fast null wird und die Rotationsmatrizen von der Hand und von
dem Objekt sehr nah beieinander liegen.
So, um das ein bisschen so kurz zu visualisieren, man sieht hier SO3,
also die Elemente sind dreimal drei Matrizen.
Wenn ich jetzt ein Dreieck hier habe und ich wende jetzt hier diese
Operation, also die Rotationsoperation, also ich wende die Matrix R
auf die Ecken von diesem Dreieck an, dann drehe ich ja dieses Dreieck
natürlich bei einem gewissen Winkel, was ja durch die Matrix
spezifiziert ist.
SE3 haben wir die Position Orientierung, wie ich bereits erwähnt habe.
Das heißt, wir haben hier unser Basis-Koordinatensystem mit X, Y und
Z.
Das ist unser Objekt hier, liegt an einer bestimmten Position.
Natürlich wird durch die Rotation das Ganze gedreht und anschließend
bzw.
auch vorher durch die Transformation wird das Ganze zu einer neuen
Position verschoben.
Das ist gar nicht schwierig, oder?
Das ist ziemlich einfach.
Nun wollen wir jetzt gucken, wie wir diese Transformation eigentlich
bestimmen und was bedeutet es, wenn ich jetzt, wie bei einem
Roboterarm, der Roboterarm, wenn er jetzt ein Objekt greift, wie in
dem Beispiel vorher, der dreht ja nicht nur seinen Ellenbogen, sondern
vielleicht den Unterarm und nachher das Handgelenk.
Das heißt, wir müssen wahrscheinlich eine Verkettung von
Transformationen, also der Position bzw.
der Orientierung hier durchführen.
Und da hat die Mathematik natürlich eine ganze Menge von Werkzeugen
hier und Methoden, die man für solche Transformationen verwenden kann.
Zum Beispiel, wir benutzen die Affine Geometrie, um räumliche
Transformationen zu beschreiben.
Und diese Transformationen bestehen dann aus Verknüpfungen von
Rotationen und Translationen.
Und um das mathematisch zu beschreiben, also gibt es unterschiedliche
Möglichkeiten, um diese räumliche Transformationen mathematisch zu
beschreiben, entweder Rotationsmatrizen und Translationsvektoren, wie
wir gerade jetzt gesehen haben mit den SE3, mit Elementen aus SE3.
Aber bei dieser Betrachtung haben wir vielleicht auch bemerkt, dass
wir immer die Translation machen und dann die Rotation bzw.
die Rotation und dann die Translation.
Spielt ja keine Rolle an der Stelle, wenn wir bei einer Translation
sind.
Deshalb gibt es geschicktere Möglichkeiten, sogenannte homogene
Matrizen und wir werden gleich sehen, was sind die Vor- und Nachteile
von diesen unterschiedlichen Repräsentationsformen, also auch von
homogenen Matrizen.
Wir werden auch andere Möglichkeiten, algebraische Methoden, also
nicht Matrix-basierte Methoden, sondern algebraische Methoden, mit
denen wir Orientierungen beschreiben, zum Beispiel Quaternionen oder
duale Quaternionen, mit denen wir sowohl Orientierungen als auch
Positionen gleichzeitig beschreiben können.
Und diese Vorlesung wird tatsächlich diese üblichen Repräsentationen,
die man so in der Robotikliteratur findet, also einmal
Rotationsmatrizen und Translationsvektoren, einmal homogene Matrizen,
Quaternionen und duale Quaternionen behandeln.
Das heißt, ihr werdet hier aus dieser Vorlesung rausgehen, werdet
alles Mögliche wissen, was man zur mathematischen Beschreibung der
räumlichen Transformationen benötigt und vor allem auch die Vor- und
Nachteile von den unterschiedlichen Varianten und was man vielleicht
in welchem Fall anwenden soll.
So, ganz kurz hier einige Konventionen.
Wir wollen Skalarien mit kleingeschriebenen latanischen Buchstaben
immer bezeichnen, wir wollen Vektoren mit fettkleingeschriebenen
latanischen Buchstaben bezeichnen, wir wollen Matrizen mit
großgeschriebenen latanischen Buchstaben bezeichnen, wie zum Beispiel
eine Rotationsmatrix hier aus SO3 und wir wollen lineare Abbildungen
oder Transformationen mit großgeschriebenen griechischen Buchstaben
bezeichnen, das heißt hier zum Beispiel die Abbildung Phi, die den R3
auf sich selbst hier abbildet.
Wir haben den euklidischen Raum, den wir kennen, das ist der
Vektorraum R3 mit dem Standard Skalarprodukt, also mit dem inneren
Produkt und wir wissen, dass wir in diesem euklidischen Raum
beispielsweise Punkte, die auf einer Linie zwischen zwei Punkten A und
B liegen, ganz gut beschreiben können.
Das heißt, wenn ich hier einen Punkt A und einen Punkt B habe, dann
natürlich habe ich eine Gerade, die die zwei hier miteinander
verbindet und ich kann jeden Punkt C hier auf dieser Gerade mithilfe
von dieser Gleichung beschreiben, also diese parametrische
Beschreibung, wo ich sage, C ist gleich T mal A plus 1 minus T mal B
mit T im Intervall 0 und 1.
Und das ist klar jetzt, wenn T gleich 0 ist, dann ist hier auch eine
0, dann ist C am Ende von dieser Gerade und wenn T gleich 1 ist, dann
ist C am Anfang und wenn T dazwischen ist, dann liege ich irgendwo
zwischen diesen zwei Geraden.
Natürlich müssen wir Punkte im euklidischen Raum beschreiben und wir
wissen, dass wir hier diese Punkte durch Koordinaten beschreiben in
einem Koordinatensystem, also wenn ich hier ein Koordinatensystem mit
den Einheitsvektoren E x, E y, E z habe, dann kann ich jeden Punkt
hier im Raum A durch diese Gleichung beschreiben.
Das ist der Punkt A.
Und als weitere Konvention, wir benutzen orthonormale
Koordinatensysteme, das heißt die Einheitsvektoren E x, E y, E z sind
senkrecht zueinander und die sind Einheitsvektoren.
Und wir benutzen rechtsdrehende Koordinatensysteme, das heißt diese
Regel, wie man hier auch auf der Folie sieht, das heißt die Richtung
von der Koordinate z ist nichts anderes als die Richtung, die sich
ergibt aus dem Kreuzprodukt der Einheitsvektoren E x und E y.
Im Gegensatz dazu ein linksdrehendes Koordinatensystem, bei einem
linksdrehenden Koordinatensystem würde man bei diesem Kreuzprodukt ein
Minus E z bekommen.
Dann die rechte Handregel, das heißt, wenn der Daumen hier in die z
-Richtung zeigt und x, also Zeigefinger in x und die anderen Finger
hier in y, das ist unsere rechte Handregel.
Und wir können dann, oder wir können auch Orientierungen hier mithilfe
von dieser Regel mal beschreiben, das heißt, wenn wir Gegenuhrzeiger
sind hier, wie man sieht, hier uns drehen, dann haben wir positive
Winkel, wenn wir uns in die andere Richtung drehen, dann sind das
negative Winkel.
Wir müssen ja beschreiben, wenn der Unterarm von einem Roboter sich
dreht, ob diese Drehung jetzt positiv oder negativ ist, weil das
beeinflusst natürlich die Orientierung der Hand, wie man sieht, und
deshalb muss man gewisse Konventionen hier haben und das sind, glaube
ich, Sachen, die gängig sind und die ihr kennt.
Dann kommen wir zurück zu unserem Beispiel.
Wir wollen diese Tasse greifen oder irgendein Objekt, was auf dem
Tisch liegt.
Vorher war es der Orangensaft im Kühlschrank und normalerweise,
natürlich braucht man die Position von diesem Orangensaft und die
Position oder die Pose von diesem Orangensaft.
Wenn ich Pose sage, dann meine ich immer Position und Orientierung,
das heißt XYZ und drei Winkel, die für mich die Lage vom Objekt, die
Orientierung vom Objekt im Raum beschreiben.
Das heißt, wenn wir das eigentlich, diese Objekte oder ein Objekt
greifen wollen, brauchen wir diese sechs Parameter, die für uns die
Pose des Objekts im Raum beschreiben.
Und normalerweise, wenn man dieses bildbasiert macht, also dieses
bildbasierte Greifen, dann sind diese Koordinaten, diese XYZ-Alphabet,
also die Pose von dem Objekt, die wird zunächst mal bestimmt im
Basiskoordinatensystem von dem Sensor, der das Objekt wahrnimmt, also
zum Beispiel von dem Kamerasystem.
Aber es gibt eine ganze Menge von Sachen, die man berücksichtigen
muss, denn in Abhängigkeit davon, wie ich das Objekt greife, muss ich
mal auch Koordinatensysteme auf dem Objekt definieren.
Also vielleicht könnte man sagen, ja, wo lege ich ja die
Koordinatensysteme von der Müsli bzw.
von der Tasse?
Da könnte einer auf die Idee kommen, ich lege sie im
Massenschwerpunkt.
Wenn ich natürlich die Massenschwerpunkte kenne, dann ist das
natürlich eine einfache Sache, aber es ist vielleicht nicht so
zielführend, weil ich will jetzt nicht den Massenschwerpunkt von der
Tasse oder von der Müsli-Box greifen, sondern ich will vielleicht an
der Oberfläche Kontakt mit dem Objekt herstellen, also die Finger mit
dem Objekt in Kontakt bringen, damit ich das Objekt greife.
Und da sieht man hier eine ganze Menge von Koordinatensystemen, die
man hierzu braucht, also zum Beispiel diese zwei wichtigen
Koordinatensysteme.
Das ist eigentlich die Pose vom Handgelenk, und zwar in irgendeinem
Basis -Koordinatensystem.
Das könnte im einfachsten Fall wahrscheinlich dieses Basis
-Koordinatensystem vom Arm sein, was hier nicht eingezeichnet ist.
Aber das könnte natürlich die Pose im Kamera-Koordinatensystem sein,
was ja hier wahrscheinlich ist.
Aber zunächst einmal brauchen wir das.
Das könnte komplett irrelevant auch sein, weil eigentlich mein Ziel
beim Greifen ist, dieses Koordinatensystem zum Ziel-Koordinatensystem
zu führen.
Das heißt, ich kann relativ arbeiten, unabhängig davon, wo diese
Koordinatensysteme liegen.
Aber trotzdem muss ich die Informationen, zum Beispiel, wo ist jetzt
der Griff hier bei dieser Tasse, wo ist der Griff hier?
Das ist zum Beispiel ein Koordinatensystem am Griff der Tasse, das ist
ein Koordinatensystem an der Öffnung und das ist ein Koordinatensystem
an der Basis oder an der Seite.
Und wie man sieht hier, beziehungsweise bei der Müsli-Box, da haben
wir ja ein paar Koordinatensystemen hier, wo die Finger das Objekt
berühren.
Das sind diese zwei und ein Koordinatensystem, was oben ist, was man
wahrscheinlich benutzt, um das hier relativ zu dem hier auszurichten,
damit man den Einschenk-Vorgang durchführen kann.
So, nochmal sieht man hier ein Objekt, was nicht gegriffen ist.
Das ist hier die Ecke vielleicht, ein Koordinatensystem in der Ecke
und das sind ein paar weitere Koordinatensysteme.
Vielleicht sind das Kandidaten für Kontaktpunkte beim Greifen, wenn
das Objekt hier gegriffen werden soll.
Das heißt, wir müssen uns eigentlich immer fragen, wie die Hand
relativ zum Beispiel Messbecher-Henkel ausgerichtet ist.
Wie ist zum Beispiel die Messbecheröffnung relativ zur Tassenöffnung?
Wo liegt sie?
Oder Messbecher-Boden relativ zum Tisch?
Ja, weil ich habe ja letztendlich auch ein Koordinatensystem vom Tisch
hier, damit ich ja weiß, wo ist eigentlich diese Messbecher oder diese
Tasse, wo liegt sie auf dem Tisch?
Was mit dem Beispiel angedeutet werden soll, dass wir tatsächlich, um
diese Greifeaktionen oder Manipulationen dieser Szene durchführen zu
können, müssen wir irgendwie alle diese Koordinatensysteme in eine
einheitliche Repräsentation bringen.
Beziehungsweise alles im gleichen Koordinatensystem beschreiben.
Das heißt, ich muss wissen, wo liegt mein Handgelenk im
Koordinatensystem hier und wenn ich weiß, wo liegt der Messbecher hier
im Tisch-Koordinatensystem, dann arbeite ich eigentlich im gleichen
Koordinatensystem und kann den Abstand zwischen den Ursprüngen der
beiden Koordinatensysteme von Hand und von Messbecher oder von Tasse
minimieren.
Um das Objekt zu greifen und natürlich auch die Einheitsvektoren
entsprechend auszurichten.
So, um das zu machen, gibt es natürlich lineare Abbildungen oder
beziehungsweise Esomorphismen.
Lineare Abbildungen, Transformationen, die den euclidischen Raum auf
sich selbst abbilden und solche linearen Abbildungen nennt man
Endomorphismen.
Das ist so eine lineare Abbildung, also Abbildungen mit großen
griechischen Buchstaben von R3 auf R3, also das ist ein
Endomorphismus.
Und Endomorphismen können durch quadratische Matrizen repräsentiert
werden.
Das heißt, so eine Abbildung kann ich von einem Vektor a, also
entsprechend dieser Abbildungsvorschrift hier von R3 auf R3, kann ich
schreiben, das ist a mal klein a, wobei a, wie man sieht hier, aus
SO3, also in dem Fall hier ein Rotationsmatrix.
Und a beschreibt natürlich einen Basiswechsel zwischen den originalen
Basisvektoren, also x, y, z in diesem Raum und den neuen Basisvektoren
im anderen Raum.
Kann man das hier löschen eigentlich?
Das ist ziemlich... kann man?
Ja, damit wollte ich nicht anfangen, weil ich weiß wie... so.
Genau, und wir wissen eigentlich, dass diese Einheitsmatrix, dass
diese Matrix a nichts anderes ergibt sich aus der Multiplikation der
beiden Matrizen, die durch die Einheitsvektoren, also die neuen
Basisvektoren e'x, e'y und e'z multipliziert mit dem Inversen von der
Matrix, die aus den Einheitsvektoren e'x, e'y, e'z gebildet wird.
Es gibt auch bejektive oder umkehrbare Endomorphismen und die nennt
man Esomorphismen.
Und diese Esomorphismen, die können spezielle und interessante
Eigenschaften besitzen, die wir tatsächlich bei der Beschreibung von
Bewegungen von Startkörpern brauchen.
So, dass beispielsweise Winkel erhalten bleiben, das heißt Skalierung
und Rotation bleibt erhalten, die Längen bzw.
Abstände zwischen beiden Punkten auf einem Startkörper bleiben auch
erhalten und die Händigkeit, also rechtshändiges, linkshändiges
Koordinatensystem, die bleiben auch während der Bewegung auch
erhalten.
Und eine spezielle Art von Esomorphismen, die alle diese Kriterien
erfüllt, ist unsere Rotationsgruppe SO3.
Das heißt, SO3, also die spezielle orthogonale Gruppe, ist so ein
Esomorphismus, bei dem alle diese Eigenschaften hier erfüllt sind.
Das heißt, SO3 beinhaltet alle möglichen Rotationen und willkürlich
durch den Ursprung gelegte Achsen.
Dann, SO3 ist nicht kommutativ, das heißt, wir können ja nicht A mal B
mal X schreiben und hoffen, dass es das gleiche ist wie B mal A mal X,
das ist ja gleich, weil das ja eine Matrixmultiplikation ist.
Wir wissen, dass Matrixmultiplikationen nicht kommutativ sind.
Warum ist SO3 interessant für die Robotik?
Wir wissen ja, mit SO3 können wir die Objektposi, Objektposi ist ja
Position und Orientierung im Raum, beschreiben, sowie Transformationen
zwischen Robotergelenkachsen, also wie die Robotergelenke zueinander
stehen, wenn ich nur Rotationsachsen bei dem Roboter habe, wo ich das
Ganze hier als Verkettung von Translationen und Rotationen beschreiben
kann.
Das heißt, wenn ich jetzt hier so eine Abbildung nehme von R3 auf R3,
dann kann ich hier schreiben, ich will einen Punkt X zunächst mal
rotieren mit der Matrix R3 aus SO3 und dann eine Transformation oder
eine Translation um T machen, um einen Vektor T.
Und man sieht hier, dass natürlich die Elemente von SO3 sehr wichtig
sind, um diese räumlichen Translationen durchführen zu können.
Genau, wohlgemerkt, die Abbildung hier ist nicht linear, auch diese
Abbildung ist nicht linear und deshalb, weil wir haben ja ein Plus T,
also R mal X plus T und deshalb wird sie eine Affini-Abbildung
genannt.
Und das, was gemeint ist, das heißt, wenn ich jetzt hier zwei Gelenke
von einem Roboter habe, das könnte ja Ellenbogen und Schultergelenke
sein, dann muss man sich vorstellen, dass ich natürlich in jedem
Gelenk...
Das ist eigentlich eine triviale Sache, was ich machen will, aber ich
bin jetzt stur und ich will es zu Ende machen.
So, wir haben ja, also das ist zum Beispiel X1 oder XI, YI und ZI.
Das ist das Koordinatensystem vom Gelenk I und das ist zum Beispiel ZI
plus 1, YI plus 1 und XI plus 1.
Und natürlich müssen wir, damit wir wissen, wie so ein Mechanismus
oder ein Roboterarm sich bewegt, müssen wir wissen, wie diese zwei
Koordinatensysteme zueinander liegen.
Also wie weit ist eigentlich das eine Gelenk vom anderen und wie sind
sie orientiert?
Weil es kann sein, dass das Ellenbogen so rumliegt, das heißt, wenn
man 90 Grad hier macht, dann wird sich das nicht so bewegen, sondern
wird sich andersrum bewegen.
Und mithilfe von diesen Methoden oder mithilfe von den SO3 und SE3
wäre jetzt die Transformation, das wäre natürlich der Vektor hier, der
praktisch diesen Abstand zwischen den beiden Gelenken beschreibt.
Und da wir jetzt hier starre Körper haben, also die Segmente von dem
Roboter starr sind, ist dieser Abstand eine Konstante in dem Fall.
Das heißt, diese Beschreibung der Verhältnisse zwischen den beiden
Gelenken, die reduziert sich auf die Beschreibung der Abhängigkeiten
bzw.
die Lage der beiden Koordinatensysteme in den beiden Gelenken I und I
plus 1.
Das heißt, das, was wir machen, ist nicht nur, damit wir Objekte
irgendwie beschreiben, sondern auch, damit wir Roboter beschreiben,
damit wir die Kinematik von einem Roboter beschreiben können.
Aber jetzt wollen wir gucken, wie diese Matrizen aussehen.
Und ich fange tatsächlich ganz einfach an, indem wir Rotationen im 2D
betrachten.
Nehmen wir an, wir haben zwei Einheitsvektoren, V1 und V2, und wir
wollen diese zwei Vektoren um Alpha rotieren, und zwar um Plus-Alpha
in die Richtung.
Das heißt, wenn ich V1 in die Richtung rotiere, dann entsteht aus V1,
1, 0 ein neuer Vektor, V1', was nichts anderes ist als Cosinus-Alpha,
also dieser Abstand hier, und Sinus-Alpha.
Wenn ich diesen Vektor hier, V2, nehme, 0, 1, und ich rotiere auch um
Alpha, dann bekomme ich einen neuen Vektor, und dieser neue Vektor ist
nichts anderes als Minus-Sinus-Alpha und Cosinus-Alpha.
Also der Vektor wird beschrieben durch das hier, das ist gleich groß
wie das hier, das hat Sinus, und das in die Richtung geht, dann Minus
-Sinus, und dann die Y-Koordinate ist nichts anderes als Cosinus
-Alpha, wie man hier sieht.
Das ist ganz einfach.
Jetzt versuchen wir mal, diese zwei Sachen zusammenzufassen.
Das heißt, ich kann eigentlich einen beliebigen Vektor X, egal ob er
so liegt, so liegt oder andersrum liegt, mithilfe von einer
Rotationsmatrix beschreiben, und diese Rotationsmatrix ist nichts
anderes als Cosinus-Alpha-Sinus-Alpha, das ist das, was wir hier
bekommen haben, und Minus-Sinus-Alpha-Cosinus-Alpha.
Und jetzt könnt ihr mal einsetzen, also wenn X ist 1,0, dann bekomme
ich Cosinus-Sinus, und wenn X ist gleich 0,1, also für den Vektor
hier, dann bekomme ich Minus-Sinus-Cosinus, wenn ich multipliziere.
So, das heißt, es ist eigentlich eine Rotationsmatrix.
Stimmt das überhaupt, dass es eine Rotationsmatrix ist?
Können wir das irgendwie auf die eine oder andere Art und Weise
zeigen, dass es eine Rotationsmatrix ist?
Ja, was haben wir gelernt über Rotationsmatrixen?
Wir haben gesagt, also die Matrix, die wir jetzt haben, ist R, ist
gleich Cosinus-Alpha und Minus-Sinus-Alpha, das, was wir bekommen
haben, und dann Sinus-Alpha-Cosinus-Alpha.
So, und wir wissen, Rotationsmatrix, was bedeutet das?
Das bedeutet, die Terminante gleich 1, bzw.
R mal R transponiert ist gleich die Einheitsmatrix.
Ich muss das Problem lösen.
Genau, das können wir mal machen.
R mal R transponiert, bzw.
R transponiert mal R, ist gleich Cosinus-Alpha, Minus-Sinus-Alpha,
Sinus -Alpha-Cosinus-Alpha, multipliziert mit der Matrix transponiert,
das ist Cosinus-Alpha, Minus-Sinus-Alpha, und dann ist das hier Sinus
-Alpha -Cosinus-Alpha.
Und wenn wir das multiplizieren, dann kommen wir auf so etwas wie
Cosinus -Quadrat-Alpha plus Sinus-Quadrat-Alpha, und dann hier Cosinus
-Alpha -Sinus-Alpha, Minus-Sinus-Alpha-Cosinus-Alpha, und hier auch
Sinus -Alpha-Cosinus-Alpha, Minus-Cosinus-Alpha-Sinus-Alpha, und hier
Cosinus -Alpha-Quadrat plus Sinus-Alpha-Quadrat.
Das heißt, wie man hier sieht, das Ganze ist nicht anders als 1, weil
Cosinus -Quadrat plus Sinus-Quadrat ist 1, und das hier ist 0, und das
hier ist 0, und das hier ist 1.
Also das ist die Einheitsmatrix, und man kann auch prüfen, dass die
Determinante von dieser Matrix auch 1 ist.
So, das heißt, wir können jetzt diese einfache Transformation in 2D
auf diese einfache Art und Weise beschreiben, und jeder von euch kann
das herleiten.
Ihr müsst wirklich aufpassen, das mag für viele Leute jetzt sehr
einfach erscheinen, aber da macht man meistens Fehler, wenn es darum
geht, wie sieht eigentlich die 3x3-Transformationsmatrix oder 2x2
-Rotationsmatrix aus.
So, und wir haben gesehen, dass wir das hier eigentlich dargestellt
haben.
So, und nun können wir auch diese Rotationen um beliebige Punkte
machen, nicht nur um den Ursprung 0,0, sondern wenn wir unseren
Ursprung um einen beliebigen Punkt, der vom Ursprung verschieden ist,
auch rotieren wollen, dann können wir das machen, indem wir zunächst
einmal die Ebene um Minus C rotieren, also wir wollen ja um einen
Punkt, der vom Ursprung verschieden ist, rotieren.
Wir verschieben eigentlich die Ebene oder die Linie so weit, dass sie
durch C geht, also dass sie durch diesen von 0 verschiedenen Ursprung
oder Rotationszentrum durchgeht.
Also dann haben wir ein neues Rotationszentrum, der 0,0 liegt.
Wir führen diese Rotation um den neuen 0,0 Punkt, also um den neuen
Ursprung und danach verschieben wir diese Ebene zurück um Plus C.
Das heißt, wenn wir jetzt hier einen Vektor oder einen Punkt um einen
beliebigen Punkt C, was vom Ursprung verschieden ist, um Alpha
rotieren wollen, dann kann man dazu schreiben, das ist nichts anderes
als die Rotation um den verschobenen Ursprung um Minus C plus die
Addition von C und dazu können wir schreiben, dass die Rotation um X
plus oder plus minus die Rotation um den Winkel Alpha um den neuen
Ursprung C und dann eine Addition von dieser C.
Das heißt, natürlich ist diese Abbildung oder diese Transformation
eine nicht-lineare Transformation und die unterscheidet sich natürlich
von R Alpha, was wir vorher kennengelernt haben, dadurch, dass wir
jetzt diese Konstante hier dazu addieren.
Und solche Transformationen in der Form, also AX plus B, nennt man
Affinity -Transformationen oder Affinity-Abbildungen.
So, vielleicht zeige ich ein Beispiel, kann jemand von euch eigentlich
so Rotationen um beliebige Punkte im Raum machen?
Weiß jemand, wie man das macht?
Also das, was auf der Folie steht, kann jemand von euch das machen?
Okay, habe ich mir gedacht, deshalb machen wir ein Beispiel.
Und zwar, wir wollen Rotationen um beliebige Punkte.
Könnt ihr das lesen?
Könnt ihr das lesen, die Handschrift?
Okay.
Und zwar nehmen wir mal an, wir haben hier ein tolles
Koordinatensystem.
Ein tolles Koordinatensystem, Entschuldigung.
Und in diesem Koordinatensystem haben wir ein Dreieck.
Und dieser Dreieck soll jetzt bis 3 gehen, also hier,
mit den Ecken A, B und C.
Und das wollen wir rotieren um einen Punkt, und zwar um den Punkt,
nicht um den Ursprung, um den Ursprung ist das ja trivial, um diesen
Punkt wollen wir das rotieren.
Und dieser Punkt ist, dieser Punkt ist was Sinnvolles und nicht eine
Linie, sondern ist 2, minus 2.
Ja?
So, wie macht man das?
Ist klar, also wir müssen wahrscheinlich, da wir von einem starren
Körper ausgehen, müssen wir vielleicht jede Ecke von diesem Dreieck um
den Punkt C rotieren und das Ergebnis hinschreiben.
Und ich verrate euch, wie das Ergebnis aussieht.
Also was rauskommen wird, ist ein rotierter Dreieck natürlich, der
sieht so aus, und zwar, das ist der Punkt A Strich, das ist der Punkt
C Strich und das ist der Punkt B Strich.
So, also wir haben rotiert um den Punkt 2, minus 2 um 90 Grad, ja?
Und das ist das Ergebnis.
Wie macht man das?
Das ist ziemlich einfach.
Man geht hin zunächst mal und nimmt mal diese Punkte.
Die Punkte, die waren A, war 2 und 0.
B war 2 und 3.
Ach, das reicht mir.
Ich mache es hier an der Tafel.
Ja, also das ist, da verliere ich mehr Zeit als...
So, also A war der Punkt 2, 0.
B war der Punkt 2, 3.
Und C war 4, 0.
Ja, gehen wir mal zurück, dann könnt ihr das auch sehen.
Genau, das waren, glaube ich, die Punkte.
Und was man hier macht, was diese Vorschrift uns sagt, wir müssen
zunächst mal eigentlich alle Punkte so verschieben oder das
Rotationszentrum so verschieben, dass wir immer um 0,0 rotieren.
Das heißt, eigentlich von jedem Punkt müssen wir ein minus 2, minus 2
abziehen.
Ja, das ist unser Rotationszentrum, also minus 2, minus 2.
Das ist der Punkt hier, der grüne Punkt.
Und wenn ich das mache, also das ist hier ein minus 2, minus 2.
Das ist hier minus 2, minus 2 und hier minus 2, minus 2.
Das können wir jetzt alles hier berechnen, das ist ganz einfach.
Das ist nichts anderes als 0 und 2 für A.
Das ist hier nichts anderes als 0 und 5 und das ist hier nichts
anderes als 2 und 2.
Ja, also das heißt, wir haben neue Punkte.
Das ist C-Stern, das ist B-Stern und das ist A-Stern.
So, jetzt haben wir diesen Rotationsursprung verschoben, also wir
können eigentlich diese resultierenden Punkte jetzt drehen, als ob wir
um das Rotationszentrum drehen.
Und um das Rotationszentrum drehen, in 2D, wir drehen nur in 2D, wir
kennen ja die Rotationsmatrix R von Alpha, haben wir gerade berechnet,
das war nichts anderes als Cosinus Alpha minus Sinus Alpha und dann
Sinus Alpha, Cosinus Alpha und Alpha ist gleich Pi Halbi, also 90
Grad, daraus folgt das R von Pi Halbi, ist nichts anderes als 0, minus
1, 1, 0.
So, jetzt wenn ich einen beliebigen Punkt im Raum mit dieser Matrix
multipliziere, also das ist meine Rotationsmatrix 0, minus 1 und 1, 0
und ich will den Punkt XY mithilfe von dieser Transformationsmatrix
transformieren, das heißt, ich will eigentlich einen beliebigen Punkt
XY um 90 Grad drehen, dann was bekomme ich hier?
Ich bekomme nichts anderes als minus Y und X.
Das heißt, eigentlich diese Transformation naheliegend bedeutet, XY,
das Ergebnis, der rotierte Punkt um 0, 0, ergibt sich aus dem alten
Punkt, in dem ich X und Y vertausche und für X ein Minus tue.
Also Y wird zu X, aber mit Minus und X von dem ursprünglichen Punkt
wird zu Y mit einem Plus.
Das bedeutet für unsere Punkte hier, wenn wir jetzt um 90 Grad drehen,
dann bekommen wir hier einen neuen Punkt.
Ich drehe X und Y und X bekommt ein Minus, also Minus 2, 0.
Hier das ist Minus 5, 0 und hier ist es ein Minus 2 und 2.
So, dann haben wir unsere Rotation gemacht.
Was müssen wir machen, damit wir das Ergebnis bekommen?
Wir müssen jetzt ein Plus 2, Minus 2, also wir müssen den Punkt, wir
haben zunächst mal den Punkt so verschoben, so dass wir um 0, 0 drehen
und wenn wir fertig sind mit der Drehung, machen wir alles rückgängig.
Also ich habe hier vorher 2 und Minus 2 abgezogen, ich addiere 2,
Minus 2 hier, dann bekomme ich hier 0, Minus 2, dann bekomme ich hier
Minus 3 und Minus 2 und dann bekomme ich hier eine 0 und eine 0.
Und das ist hier C Strich, das ist hier B Strich und das ist hier A
Strich.
Also A Strich ist 0, Minus 2, C Strich ist 0, 0 und B Strich ist Minus
3 und Minus 2.
Okay, also wie man sieht, das ist jetzt nur ein Beispiel im 2D, aber
das Ganze lässt sich natürlich verallgemeinern.
Ich versuche mal, das hier sauber zu schreiben für euch, dass es in
den annotierten Folien auch auftaucht, für die Leute, die nicht hier
sind.
Genau, und auf diese Art und Weise können wir das also machen.
Jetzt wollen wir aber nicht nur in 2D rotieren, sondern wollen
natürlich Rotationen in 3D beschreiben.
Aber was ist eine Rotation in 2D?
Also diese XY-Matrix, diese Rotationsmatrix hier, hier, wir haben
eigentlich in der XY-Ebene um Alpha rotiert.
Aber eigentlich ist diese Rotation nichts anderes als Rotation um die
Z -Achse.
Das heißt, die Z-Koordinaten von jedem Punkt hier bleiben gleich und
deshalb kann man die Rotationsmatrix für den dreidimensionalen Fall,
also 2D-Rotation der XY ist eine 3D-Rotation um die Z-Achse, die
Rotation aller Punkte um die Z-Achse hängt nicht von den Z-Werten ab.
Deshalb kann man sagen, die Rotation um die Z-Achse, um Alpha ist
unsere Basismatrix, die wir hergeleitet haben.
Aber wo wir hier an der Stelle Z eine 1 haben, das heißt, wir rotieren
um die Z-Achse, die Z-Werte bleiben unverändert und natürlich die X-
und Y-Werte werden so verändert, wie der Winkel Alpha vorgibt.
Das Gleiche können wir machen für Rotation um die X-Achse.
Das heißt, die X-Werte bleiben bei einer Rotation um die X-Achse auch
konstant, also sind unabhängig von dieser Rotation, deshalb 1.
Und nochmal die gleiche Struktur, Cosinus, Minus, Sinus, Sinus und
Cosinus.
Und ähnlich sieht es auch vor Rotationen um die Y-Achse im
dreidimensionalen Raum.
Das kann man auf die gleiche Art und Weise herleiten.
Man muss nur darauf achten, dass tatsächlich dieses Minus hier, das
ist kein Fehler in den Folien, dass bei Rotationen um die Z-Achse das
Minus hier unten ist bei dem Sinus und nicht oben wie bei Z und wie
bei X.
Also wir haben Cosinus, Minus Sinus, Sinus, Cosinus, hier Cosinus,
Sinus und Minus Sinus, Cosinus.
So, genau, das heißt die Rotationen um die Achsen X, Y und Z eines
Bezugskoordinatensystems sind besondere Rotationen und man kann sie
dann mithilfe von 3x3 Matrizen beschreiben.
Eine Rotation um den Einheitsvektor x, die x-Koordinaten bleiben
gleich und wenn man da multipliziert vorher, dann bekommen wir
natürlich Ay mal Cosinus minus Az Sinus beziehungsweise Ay Sinus plus
Az Cosinus.
Das ist nichts anderes als eine Multiplikation von dieser Matrix hier,
die wir gesehen haben, mit x, y, z oder mit Ax, Ay, Az und das kann
man natürlich auf die Art und Weise hier auch schreiben, wie ich
bereits gezeigt habe, beziehungsweise visualisieren.
Das ist ein Punkt hier auf einem Kreis, das sind die zwei Achsen und
man sieht hier, wenn ich das um Alpha rotiere, dann bekomme ich einen
neuen Punkt, was ich auch so beschreiben kann, wo die x-Koordinate
immer konstant bleibt und die y- und z-Koordinatenabhängigkeit vom
Rotationswinkel Theta in dem Fall abhängt.
Analog gilt natürlich für die Rotation um die Einheitsvektoren Ey und
Ez.
Das will ich jetzt hier nicht mehr drauf eingehen.
Die Inversierotationsmatrix kann man auch sehr leicht berechnen, da
sie der transponierten Rotationsmatrix entspricht.
Also wenn das unsere Rotationsmatrixen sind und ich will die
Inversierotationsmatrix, dann ist diese Inversierotationsmatrix nichts
anderes als die Rotation um einen Winkel in die entgegengesetzte
Richtung.
Also deshalb die Inversierotationsmatrix um x um den Winkel Theta ist
nichts anderes als die Rotationsmatrix um die x-Achse um den Winkel
minus Theta.
Und wenn wir hier minus einsetzen in unserer Matrix, die wir ja gerade
kennengelernt haben, dann sehen wir, bekommen wir eins Cosinus, Sinus
und dann minus Sinus, Cosinus und das ist nichts anderes als die
transponierte Matrix hier von Theta.
Also es ist auch eine Vereinfachung, ich brauche keine Matrixinversion
zu machen.
Wenn ich irgendwie die Rotation in die andere Richtung machen will,
ich brauche die Inversierotationsmatrix, da ist sie identisch mit der
transponierten Matrix.
Wie ich vorher auch erwähnt habe, wollen wir nicht nur einzige
Rotationen beschreiben, sondern Verkettungen von Rotationen.
Das heißt, ich habe einen Punkt A im euclidischen Raum und ich will
diesen Punkt zunächst mal um die Achse x um Theta 1 rotieren und
anschließend um die Achse y um Theta 2 rotieren und ganz am Ende um
die Achse z um den Winkel Theta 3 rotieren.
Ja, das ist natürlich eine sehr gängige Sache, wenn ich jetzt die
Position vom Endeffektor, also von der Hand beschreiben muss, da muss
ich alle Rotationen von allen Gelenken miteinander verketten, damit
ich weiß, wo der Endeffektor des Roboters im Raum steht.
Wichtig hier, wenn man solche Sachen macht, und ich habe es jetzt
stillschweigend gesagt, ich will zunächst mal um x rotieren, um Theta
1 und dann um y und dann um z.
Warum?
Ich kann es ja auch andersherum interpretieren.
Ich kann sagen, ich rotiere zunächst mal um z um Theta 3, dann um y um
Theta 2 und dann um x um Theta 1.
Tatsächlich gibt es hier auch zwei Möglichkeiten, um diese Verkettung
zu machen.
Und wenn diese Verkettung als Multiplikation von Matrizen zu
interpretieren ist, dann wissen wir, dass das natürlich nicht das
Gleiche herauskommt.
Also wenn wir unsere Transformation als Multiplikation von Matrizen
machen, dann kommt nicht das Gleiche heraus.
Wenn wir von links nach rechts machen, bedeutet das, mit jeder
Rotation ändern sich die Einheitsvektoren und die Rotationen werden
dann um lokale Achsen durchgeführt.
Das heißt, ich rotiere zunächst mal um z, dann bekomme ich ein neues
Koordinatensystem, x', y', z'.
Anschließend rotiere ich dann um die um Theta 3 rotierte y-Achse und
dann als nächstes um die zweimal rotierte x-Achse um Theta 1.
Also das bedeutet, ich muss die Matrixmultiplikation in der Form
machen, ich rotiere um Theta 3, um die z-Achse, dann ich rotiere um
die rotierte y-Achse, die haben wir rotiert um Theta 3 hier, und zwar
den Punkt A nochmal um Theta 2 und anschließend rotiere ich um die
zweimal rotierte x-Achse, das heißt x', um den Winkel Theta 1.
Die andere Möglichkeit ist, ich mache das andersherum.
Und in dem Fall hier, wenn wir das andersherum machen, also wenn wir
von innen nach außen, also von rechts nach links vorgehen, dann
rotieren wir immer um globale Koordinatensysteme.
Also wir rotieren immer zum Beispiel relativ zum
Basiskoordinatensystem vom Arm oder zum Weltkoordinatensystem, in dem
praktisch alles geschieht.
Und deshalb bleiben, wie man sieht hier, die Rotationsachsen gleich,
also ich habe keine rotierte y-Achse, um die ich um Theta 2 rotiere
und keine zweimal rotierte x-Achse, um die ich um Theta 1 rotiere,
sondern ich rotiere immer um die globalen Koordinatensysteme in meinem
Beispiel.
So, gucken wir mal uns ein paar Beispiele, wie man so diese
Rotationsmatrizen machen kann, also von links nach rechts.
Das heißt, mit jeder Rotation ändern sich die Einheitsvektoren und das
ist eine Rotation um die Einheitsmatrizen.
Schauen wir mal dieses Koordinatensystem, wir wollen dieses
Koordinatensystem zunächst mal um die y-Achse um minus 90 Grad drehen.
Anschließend bekommen wir so etwas, wenn ich um die y-Achse drehe und
z auch um 90 Grad, dann kommt z nach unten und x geht nach oben.
Das heißt, ich bekomme dieses Koordinatensystem und anschließend will
ich um 180 Grad um die rotierte z-Achse rotieren.
Wenn ich um 180 Grad rotieren will, dann geht y in die Richtung, das
heißt y zwei Strich hier und 180 Grad von x Strich, dann geht x Strich
nach unten, dann bekomme ich dieses Koordinatensystem.
Das ist ja ganz naheliegend, oder?
Und jetzt schauen wir mal, wie das mit unseren Matrizen aussieht.
Das heißt, zunächst mal um minus 90 Grad rotieren um die y-Achse.
Da setze ich in meine Rotationsmatrix, wo ich diese 1 hier habe, hier
Cosinus, Minus und so weiter und so fort ein.
Hier rotiere ich um die z-Achse, das heißt, hier habe ich die 1 und
hier meine Cosinus und Sinus in dieser Ecke.
Ich setze Pi oder 180 Grad, dann bekomme ich das und wenn ich alles
hier miteinander multipliziert habe, dann bekomme ich eigentlich diese
Rotationsmatrix, die für mich den Zusammenhang oder die Überführung
von diesem Koordinatensystem hier in das Koordinatensystem, wenn ich
um minus 90 Grad um y und anschließend um 180 Grad um die rotierte z
-Achse rotiere.
Das heißt, wenn wir jetzt einen Punkt haben, U und dieser Punkt U ist
beschrieben in diesem Koordinatensystem, also das ist mein U.
Natürlich hat U einen dreidimensionalen Vektor, U1, U2 und U3 und wenn
ich das entsprechend mitschleppe, also ich will die Beschreibung, ich
will U im neuen Koordinatensystem haben, also ich will die Position
der Tasse jetzt im Arm-Koordinatensystem und nicht im
Kamerakoordinatensystem haben, dann muss ich natürlich mit dieser
resultierenden Matrix multiplizieren.
Ich multipliziere also U mit dieser resultierenden Matrix und wie man
hier sieht, U3 wird zu x-Komponenten, U2 bleibt erhalten, U1 wird zu
der dritten Komponente und alle mit Minus.
Das heißt, somit habe ich eine Beschreibung von diesem Punkt U nach
dieser zweimaligen, also nach diesen zwei Rotationen.
So, warum kommt hier noch ein Beispiel, das ist ja überflüssig.
Die Probleme, die wir haben mit diesen Rotationsmatrixen, das ist
natürlich sehr elegant und sehr leicht eigentlich zu machen, muss man
nur auf die zwei Varianten achten, ob man von links nach rechts oder
von rechts nach links multipliziert.
Dass wir bei so einer Matrix neun Werte haben, bei einer 3x3 Matrix,
klar natürlich nur vier von denen sind nicht trivial, aber trotzdem
müssen wir eine neun Werte mitschleppen bei allen Operationen.
Das ist eigentlich für Rotation, um Rotation um drei Achsen zu
beschreiben, zu große Redundanz.
Ich habe pro Rotation dann fast drei Parameter, die ich eigentlich
berücksichtigen muss.
Außerdem werden wir in der Übung Beispiele hier dazusehen.
Haben wir zu Beginn der Vorlesung gesagt, dass Rotationsmatrixen oder
Elemente aus SO3 eigentlich die Eigenschaft haben, dass der Moment,
der 1 ist oder Matrix multipliziert und transponiert, immer die
Einheitsmatrix.
Oft ist es so, dass man eine 3x3 Matrix, zum Beispiel im Bereich
schnelles Lernen, Bildverarbeitung, wo man die Orientierung von einem
Objekt relativ zu einem Objekt basierend auf Bilddaten bestimmen kann,
wo man diese Transformation nicht hat.
Und natürlich macht man das mithilfe von Methoden des maschinellen
Lernen, macht man eine Vorhersage, wie die Werte der Rotationsmatrix
eigentlich sind oder sein sollen.
Man muss das oft so machen, dass man diese Einträge der
Rotationsmatrixen unabhängig voneinander berechnen oder vorhersagen
muss.
Und da ist die Wahrscheinlichkeit sehr groß, dass die Matrix, die sich
daraus ergibt oder die man berechnet, keine Rotationsmatrix ist.
Also erfüllt nicht die Eigenschaft, dass die Determinante 1 ist oder
die Matrix multipliziert oder transponiert in die Einheitsmatrix ist.
Natürlich gibt es hier Methoden, da machen wir in der Übung ein
Beispiel dazu.
So, wie geht man allgemein mit diesen Problemen?
Einmal Redundanz und einmal gerade jetzt hier in dem Beispiel, wo wir
eventuell irgendwie datengetriebene Rotationsmatrixen berechnen, die
wirklich mathematisch keine echten Rotationsmatrixen sind.
Das heißt, man muss auf irgendwelche anderen Darstellungsmöglichkeiten
ausweichen.
Und die gibt es, wie bereits zu Beginn erwähnt, nicht nur die
Beschreibung von diesen Translationen oder Transformationen allgemein
mithilfe von Matrixen, sondern die Beschreibung zum Beispiel mit
Winkeln.
Also wenn es um Rotationen geht, da wissen wir aus der Mathematik,
dass wir dort eine Darstellung von Rotationen im Raum mithilfe von
Euler -Winkeln beschreiben.
Warum soll ich drei Matrixen nehmen und sagen, das ist die Drehung um
x, y und z?
Ich kann sagen, ich habe drei Winkel, die beschreiben für mich die
Drehung um x, um y und um z.
Also statt der neun Werte, die ich habe in einer Rotationsmatrix, habe
ich nur drei Werte für die drei Winkel, die für mich die Rotation um
die jeweilige Achse beschreiben.
Und die wollen wir als nächstes kennenlernen.
Also das sind Rotationsmatrixen, also auch dreimal drei Matrixen.
Und wie ich bereits erwähnt habe, jede Rotation kann man durch drei
Rotationen um drei Koordinatenachsen darstellen.
Die Achsen, die können willkürlich gewählt werden, historisch, gibt es
aber die Konvention, dass man zunächst mal um die z-Achse rotiert.
Also um Rotationen zu beschreiben, versucht man die Winkel
herauszufinden, die die Orientierung eines Objekts beschreiben.
Wenn man folgendermaßen rotiert, also einmal um die z-Achse, dann um
die rotierte x-Achse und anschließend um die zweimal rotierte z-Achse.
Also ich rotiere um die z-Achse um Alpha, ich rotiere um die rotierte
x -Achse um Beta und ich rotiere zum dritten um die zweimal rotierte z
-Achse hier um den Winkel Gamma.
Und diese Rotationsmatrixen um Winkel z, x und z, die kennen wir, die
haben wir ja vorher kennengelernt.
Das sind Cosinus, Sinus und Eins und so weiter und so fort, oben und
unten.
Wenn wir sie nehmen, also Rotationsmatrix um z, um Winkel Alpha, um x
Strich, um Winkel Beta und z zwei Strich, um Winkel Gamma und
multiplizieren alle miteinander, dann bekommen wir diesen Ausdruck.
Und man sieht hier, das ist wiederum eine 3x3-Matrix, weil wir haben
ja gesagt, dass diese SO3-Elemente, die beschreiben für uns Rotationen
im Raum.
Das ist also eine 3x3-Matrix, die beschreibt für uns Rotationen im
Raum durch die drei Winkel Alphabeta und Gamma.
Nicht durch 9 Elemente, nicht durch 9 Elemente wie zum Beispiel hier,
diese Matrix, die wir hier bekommen haben.
Natürlich gibt es viele Nullen und Einsen, aber trotzdem sind das, wie
gesagt, 9 Werte, die wir brauchen, um das zu beschreiben.
So, das heißt, die Euler-Winkel, wie ich bereits erwähnt habe, wir
rotieren zunächst mal um die z-Achse, dann bekommen wir um einen
Winkel Alpha, dann bekommen wir ein Koordinatensystem.
Natürlich bleibt die z-Achse erhalten, aber die x-Achse wandert hier,
wenn ich um die z-Achse rotiere und Y.
Im zweiten rotieren wir um die rotierte x-Achse und im dritten oder
zum dritten Schritt rotieren wir um die zweimal rotierte z-Achse hier
und dann bekommen wir hier unser Ergebnis.
Das heißt, die Drehung um jeweils, ganz wichtig ist die Drehung, die
erfolgt immer um die jeweils gedrehte oder veränderte Achse.
So, nun gibt es natürlich mathematisch betrachtet nicht nur eine
Variante, warum soll ich zuerst um z, dann um x und anschließend um z
rotieren.
Ich kann alle möglichen Varianten nehmen, also es gibt überhaupt keine
Einschränkung und diese zwölf Varianten, die werden tatsächlich in der
Literatur, also die sind alle mathematisch gültig, aber aus
historischen Gründen wird diese ZXZ-Konvention benutzt.
Aber man hat natürlich ZXZ, XYX, ZYZ und so weiter und so fort.
Und wie bereits erwähnt, wir rotieren immer um die rotierten Achsen,
also um die lokalen Achsen.
Wenn wir noch diese Kombinationen nehmen und erlauben die Rotationen
um globalen Achsen, also um festen Achsen bei allen unterschiedlichen
Varianten hier, dann haben wir insgesamt 24 Möglichkeiten, wie wir die
Reihenfolge der Rotationen beschreiben.
So, eine ganz wichtige Variante davon ist diese sogenannte Roll-PGO
-Variante.
Ja, die kommt, wie man sieht hier aus der Beschreibung der Lage vom
Flugzeug, aber auch in der Robotik, wo man einen Rollwinkel, also wie
Rollwinkel, das wäre der Winkel hier bei einem Flugzeug, ein Pitch
-Winkel, also zum Landen bzw.
zum Starten, was man verändern muss, und dann eine Yaw-Achse, wo das
Ganze um diese Achse, um diese Körperachse dreht.
Also bei einem Roboterkopf ist das natürlich die Yaw-Achse, wenn ich
so drehe, das ist die Pitch-Achse, wenn ich nach vorne und nach hinten
nicke, und das wäre meine Roll-Achse.
So, und das ist eine spezielle Euler-Konvention, und zwar XYZ um feste
Achsen, also spezielle Euler-Winkel, die werden Roll-Pitch-Yaw, im
Deutschen Roll-, Nick- und Gear-Winkel, und die Rotationsreihenfolgen
sind immer XYZ des Basis-Koordinatensystems um den jeweiligen Winkel,
aber natürlich festes Basis-Koordinatensystem.
Das heißt, die Achsen drehen sich nicht mit.
Wie können wir das hier beschreiben?
Ich glaube, das ist ja naheliegend, die Matrizen, die kennen wir, die
haben wir hergeleitet, und da kann man die drei miteinander
multiplizieren, kommt man auf drei mal drei Matrix, die diese Rotation
beschreiben.
So, was ist der Vorteil eigentlich von diesen Euler-Winkeln?
Die sind viel kompakter als Rotationsmatrizen, weil ich brauche nur
Alphabete und Gamma, und dann kann ich die Orientierung beschreiben.
Und die sind viel intuitiver für uns Menschen.
Wenn ich euch sage, das Objekt ist um die Peach-Axis von 90 Grad
gedreht, dann wissen wir, dass der Kopf in die Richtung zeigt.
Also, nur um ein Beispiel zu geben, aber wenn ich euch sage, oh, die
Orientierung von dem Kopf ist 0, minus 1, minus 2, 0, 0, 1, minus 2,
und 1, 0, minus 1.
Da versteht kein Mensch eigentlich, hat kein Mensch eine Vorstellung,
wie die Orientierung von dem Kopf oder von dem Objekt im Raum ist.
Aber wenn ich sage, okay, Roll, Peach, U, so und so, dann haben wir
Menschen, also ist das für uns Menschen natürlich aussagekräftiger,
beziehungsweise können wir das besser interpretieren.
Die Nachteile, die sind nicht zu unterschätzen.
Und ich will sie kurz nur hier andeuten und werde sie ausführlich das
nächste Mal natürlich behandeln.
Die Euler-Winkel, die sind nicht eindeutig.
Also wenn man jetzt hier, wenn ihr nach Hause geht, das Ganze
vielleicht in MATLAB oder irgendwo mal implementiert, das sollte ja
vielleicht in 10 Minuten gehen, hoffe ich.
Könnt ihr wahrscheinlich im Netz auch finden.
Wenn man jetzt diese Euler-Winkel in der Notation zx'z2', das ist die,
die hauptsächlich benutzt wird aus historischen Gründen, dann wird man
sehen, dass die Euler-Winkel 45, 30, minus 45 und 0, 30 und minus 0
die gleiche Rotationsmatrix ergeben.
Ja, oder somit die gleiche Rotation beschreiben.
Zum Zweiten, das ist vielleicht nicht so schlimm, wenn diese Fälle
nicht so viele sind, dann kann man sie ausschließen mit ein paar f, l
und so weiter und so fort, dann eliminiert man das.
Das Zweite, und das ist noch schlimm, diese Euler-Winkel, die sind
nicht kontinuierlich.
Was bedeutet das?
Das bedeutet, die Euler-Winkel einer kontinuierlichen Rotation sind
nicht kontinuierlich, also kleine Änderungen der Orientierung können
zu Sprüngen in den Verläufen der Euler-Winkel führen.
Also ihr könnt euch mal vorstellen, ein Roboter, der Saft in einen
Becher einschenken will und der steht so, ja, also mit seinem Arm, mit
dem Saft, mit der Saftflasche und der soll nur diese Bewegung machen.
Also eigentlich bei dieser Bewegung ändert sich nur die Orientierung.
Und jetzt stellen wir uns mal vor, wir beschreiben die Orientierung
und wie wir die Orientierung interpolieren, damit wir von hier nach da
kommen mit Euler-Winkeln.
Die Tatsache, dass diese Euler-Winkel nicht kontinuierlich sind,
bedeutet, dass obwohl ich diese kontinuierliche Änderung der
Orientierung von der Hand des Roboters einen Sprung im Verlauf der
Euler -Winkel habe, während der Interpolation, der dazu vielleicht
führt, dass die Hand so macht und dann so rumdreht und weiter, ja,
also die Konsequenz, wir können keine stetige Interpolation der zwei
Euler -Winkel erreichen und dann gibt es diesen Gimbal-Effekt.
Und das sieht man hier, den nicht kontinuierlichen Charakter von Euler
-Winkeln.
Das heißt, stellen wir uns mal vor, das sind zwei Gelenkwinkel vom
Roboter, Theta 1 und Theta 2, zum Beispiel für das Handgelenk beim
Einschenken und das sind die Euler-Winkel Alpha, Beta und Gamma.
Und stellt euch mal vor, irgendeine Aufgabe, bei der eigentlich diesen
Winkel Theta 1 von ein bisschen von hier nach hier, also ihr sollt
eigentlich bei Theta 1 von minus 2 Pi oder von 1,9 Pi bis 2,1 Pi
gehen.
Ja, das ist natürlich eine einfache Sache, aber die Interpolation von
Alpha, also der Winkel von der Euler-Winkel Alpha, der ist hier
zunächst mal Null und geht jetzt bei direkt nach 2 auf minus 2.
Das würde bedeuten, das ist ein Verhalten, das man überhaupt nicht
haben kann.
Das sind so die Verläufe der Euler-Winkel in diesem Bereich von
exemplarisch für zwei Gelenke von minus 4 bis plus 4 Pi hier und man
sieht hier, dass man keine kontinuierlichen Verläufe hat, sodass man
nicht immer garantieren kann, dass die Interpolation von Euler-Winkel
reibungslos funktioniert.
Okay, ich glaube, wir müssen hier aufhören.
Wir machen am nächsten Montag weiter mit der Vorlesung.
Für heute bedanke ich mich für die Aufmerksamkeit und wünsche euch
noch einen schönen Abend.