Letztes Mal sind ein paar Studenten noch hingekommen, hatten ein paar
Fragen.
Deshalb habe ich nochmal so ein bisschen zusammengefasst.
Also eine Frage ging darum, was ist denn der Unterschied zwischen SO3
und SE3?
Die Folien werde ich dann noch hochladen.
Also SO3 kann sich nur um Orientierungen kümmern.
Also wenn man zum Beispiel hier auf der linken Seite so ein Dreieck
hat und das rotiert, kann man diese Rotation mit einem Element aus SO3
beschreiben.
Das ist sozusagen auch Format von einer 3x3 Matrix.
Und SE3 kann eben Position und Orientierung darstellen.
Das heißt, wenn ich ein Dreieck habe und das verschiebe und rotiere,
dann habe ich eben eine Translation und eine Rotation und die kann ich
eben mit einem Element aus SE3 beschreiben.
Also SO3 kann keine Position oder Translation beschreiben.
Dann ging es noch um diese Aufgabe, die ich vorgerechnet habe.
Und da war das letzte Ergebnis, habe ich falsch an die Tafel
geschrieben, ist aber in den Folien richtig gewesen.
Und dann kam auch noch die Frage auf in dem Beispiel, dass wir
gerechnet haben mit zwei Rotationen, die verknüpft werden sollen.
Welche wird denn zuerst angewendet, die Y oder die Z?
Und was bedeutet das jetzt in diesem Zusammenhang, was wir in dem
Beispiel ausgerechnet haben?
Und in diesem Beispiel haben wir die von links nach rechts
ausgerechnet, weil wir die Rotationsmatrix erst ausmultipliziert haben
und dann später erst auf den Vektor angewendet haben.
Das heißt, wir sind in dem Fall von lokalen Achsen.
Das heißt, diese Z-Achse, das sieht man ja auch hier unten, wir
rotieren hier unten um die lokale Z-Achse, also die schon gedrehte Z
-Achse, nicht die globale, die wir erst im Basiskoordinatensystem
hatten.
Genau, da wollte ich nur nochmal drüber gehen.
Genau, und wir wollen jetzt den zweiten Teil von der mathematischen
Grundlage machen.
Es geht im Grunde weiter, wir haben im ersten Teil ja die
Rotationsmatrizen gemacht, ein bisschen Euler-Winkel, wir müssen jetzt
noch einen Teil von den Euler-Winkeln, machen wir im Grunde noch
einmal ein bisschen ausführlicher.
Und da geht es eben um den Gimbal-Lock, also Euler-Winkel, wenn ihr
euch erinnert, waren die Darstellungen, in denen man eine Rotation
durch drei Winkel darstellt.
Man konnte sich wieder aussuchen, welche Rotationsreihenfolge man
nimmt, also Z-X-Y, Z-X-Z, X-Y-Z.
Eine bekannte Rotationsreihenfolge ist zum Beispiel X-Y-Z, also Roll,
Pitch, Yaw, hier nochmal dargestellt.
Genau, und was bedeutet jetzt dieser Gimbal-Lock bei den Euler
-Winkeln?
Warum ist das ein Problem?
Was bedeutet der Name überhaupt?
Also so ein Gimbal, hatte ich damals ja gesagt, ist so eine Art
Lagerung.
Ich habe jetzt mal so ein Bild davon mitgebracht.
Da könnt ihr sehen, wie so drei Ringe miteinander verlagert sind und
dann eben so eine Rotation darstellen können in drei Messwerten.
Und das wird zum Beispiel in Gyroskopen oder in Kompassen benutzt, um
Dinge messen zu können.
Und Gimbal-Lock bedeutet, das hatten wir letztes Mal schon, dass bei
bestimmten Winkeln, die man hier einstellen kann für diese drei, sich
zwei Achsen so erleiden.
Wenn man hier mal das linke vergleicht mit dem rechten, dann sind die
grüne und die blaue Achse sind im Grunde gleich.
Das führt dazu, dass ein Freiheitsgrad verloren geht.
Und wie man das mathematisch zeigen kann, will ich dann auch nochmal
vorrechnen.
Machen wir mal nur vorne.
Genau, also nehmen wir einfach mal an, wir wollen eine Rotation
darstellen, um die Z-Achse um einen bestimmten Winkel Gamma, die Y
-Achse, und in der Y-Achse legen wir fest, dass wir um minus Pi halber
rotieren wollen.
Also hier haben wir einen festen Wert.
Und wir rotieren dann um die X-Achse mit dem Winkel Alpha.
Also wir haben hier eine einfache Darstellung, Gamma, ursprünglich
Beta, Alpha.
Und das Beta ist jetzt gefixt und wir wollen uns anschauen, wie die
Rotationsmatrix davon nachher aussieht.
Schreiben wir zuerst die RZ von Gamma hin.
Also wenn wir um Z rotieren,
das hatten wir ja schon, dann hat man im Grunde eine 2D-Rotation hier
oben drin.
Die RY kann man im Grunde schon ausfüllen.
Ich schreibe sie hier trotzdem mal hin.
Und dann kommt am Ende wieder die aus X, die wir schon kennen.
Das heißt, die X-Achse bleibt natürlich bei der Rotation unberührt.
Und der Rest steht hier noch drin.
Und wenn wir das jetzt weiter ausrechnen wollen, dann müssen wir
zuerst diese beiden Matrizen multiplizieren.
Also hier ist es so, Cosinus von MinusPiHalb ist 0.
MinusSinus gibt insgesamt Plus1.
Dieser Wert hier gibt Minus1.
Und dieser Wert hier gibt 0.
Das heißt, wir haben hier eine einfache Matrix, die wir multiplizieren
können.
Und da bekommen wir dann raus.
Und die Alpha-Matrix bleibt natürlich erhalten.
Die haben wir jetzt noch nicht einmultipliziert.
Das heißt, wir haben jetzt diese beiden Matrizen, die wir miteinander
multiplizieren sollen.
Das Einfache ist die erste Spalte, die können wir so ausrechnen.
Hier kriegen wir interessante Terme aus, die sich aus Cosinus und
Sinus zusammensetzen von Gamma und Alpha.
Die können wir gleich vereinfachen, aber ich schreibe sie erst mal
hin.
Und was wir hier jetzt anwenden können, sind trigonometrische Regeln.
Also SinusAlpha plus Gamma ist zum Beispiel SinusAlphaCosinusTheta
plus SinusTheta mal CosinusAlpha.
Und wenn wir diese Regeln hier anwenden auf diese Matrix, es gibt auch
noch ungefähr eine ähnliche Regel für CosinusAlpha plus Gamma, dann
kriegen wir am Ende eine Matrix raus, die diese Form hat.
Das heißt, wir wenden diese Regel rückwärts an.
Und was hier auffällt, ist, dass in den Parametern von Sinus und
Cosinus steht jetzt immer Alpha und Gamma drin.
Was bedeutet das?
Wenn wir uns vorstellen, wir erhöhen jetzt den Winkel Alpha um 90
Grad, also wir drehen um die Alpha-Achse, die Alpha bestimmt, dann
ändert sich diese Rotationsmatrix in einer gewissen Art und Weise.
Wenn wir dasselbe mit Gamma machen, dann ändert sie sich genau gleich.
Das heißt, ob ich Alpha oder Gamma verändere hier, in dieser Form, ist
vollkommen egal.
Das heißt, Alpha und Gamma haben dieselbe Rotationsachse.
Und deshalb ist dieses Beta, wenn ich um die Y-Achse um minus Pi
halber rotiere, ist jetzt in diesem Beispiel eines der Fälle, wo ein
Freiheitsgrad verloren geht.
Das heißt, dann hat unser Mechanismus nur noch zwei Freiheitsgrade
danach, wenn wir das in diesem Winkel gedreht haben.
Es gibt halt spezielle Winkel, bei denen das auftritt und einer dieser
Winkel ist eben in dieser Grafik, wo man das Flugzeug sieht, ist da
eben eingetreten, weil dann eben diese zwei Rotationsmesslinger im
selben Winkel, die selbe Rotationsachse haben.
Genau, und das Ganze haben wir natürlich auch auf der Folie drauf.
Ich mach's mal wieder runter.
Haben wir natürlich hier auch auf der Folie einmal, damit ihr es
nachher auch nachlesen könnt.
Aber nur, dass man das halt einmal gesehen hat, warum nachher hier
dieser Sprung passiert von den Sinus zu den Kosinus, eben aufgrund der
Eigenschaften von den trigonometrischen Funktionen.
Genau, also wir hatten letztes Mal Rotationsmatrizen Euler-Winkel
kennengelernt.
Hier mal eine kurze Übersicht von vergleichsmäßig.
Wir hatten bei den Rotationsmatrizen festgestellt, wir haben eine
Redundanz, weil wir eben neun Werte in dieser Matrix haben, die wir
nicht alle frei wählen konnten.
Deshalb sind wir auf die Euler-Winkel umgestiegen, weil sie eben
kompakter sind, weil sie uns vielleicht auch mehr sagen.
Also man kann sich darunter was vorstellen, um welche Achse man
rotiert.
Sind leider nicht eindeutig.
Wir haben dieses Gimbal-Lock-Problem, das wir uns gerade angesehen
haben.
Und wir haben uns auch angesehen, dass sie teilweise nicht
kontinuierlich sind.
Genau.
Wir haben uns auch diese unterschiedlichen Darstellungsarten von Euler
-Winkeln angeschaut.
Also je nachdem, welche Achsen man wählt.
Zum Beispiel zx'z'', eine der Standardvarianten.
Und die Roll-Pitch-Yaw x, y, z.
Was sie eben bedeuten ist, dass man einmal die Multiplikation von
links nach rechts hat, auf der anderen Seite von rechts nach links.
Bei den Euler-Winkeln zx'z'', hat man eben ein lokales
Koordinatensystem, und das man dreht.
Und dann dreht man immer um die veränderten Achsen.
Während man bei dem Roll-Pitch-Yaw immer um die unveränderten Achsen
dreht, das Basis-Koordinatensystem.
Genau.
Wenn wir Orientierung beschreiben wollen mit 3x3-Matrizen, dann haben
wir den Vorteil, dass wir zusammen mit einem Vektor für die
Translation, können wir eben ganze Posen beschreiben.
Der Nachteil ist natürlich, dass diese Pose aus einem Vektor und einer
Matrix besteht, und man im Grunde so ein mathematisches Objekt hat,
das so ein bisschen inhomogen ist.
Also aus zwei unterschiedlichen Teilen besteht.
Und wir möchten eigentlich gerne als nächstes uns eine Darstellung
anschauen, die Rotation und Translation gemeinsam in einer einzigen
Matrix darstellen kann.
Und diese Matrix benutzen wir dann für affine Transformationen, und
die wird unter anderem auch in der projektiven Geometrie eingesetzt.
Wir benutzen sie jetzt aber, um Transformationen darzustellen.
Genau.
Affine Transformationen, das hatten wir auch schon.
Jetzt schauen wir uns aber eine andere Darstellungsform an.
Das heißt, hier gehen wir davon raus, wir haben einen affinen Raum als
Erweiterung von dem euklidischen Raum.
Und das Einzige, was wir jetzt erweitern von unseren Vektoren, die XYZ
-Komponenten haben, ist, dass wir noch eine vierte H-Komponente
einführen, die entweder 0 oder 1 ist.
Weil 0 bedeutet, es ist eine Richtung, 1 bedeutet, es ist eine
Position.
Rechnen wir aber nochmal durch.
Genau.
Und wie kann man dann affine Transformationen darstellen?
Angenommen, ich habe eine Transformation, dann nehme ich B ist gleich
AX plus T.
Ich möchte das als eine Matrix darstellen.
Dann kann ich das tun, indem ich den Translationsvektor in dieser 4
kreuz 4 Matrix an diese Stelle schreibe.
Das heißt, das A ist wieder eine 3 kreuz 3 Matrix, mit der wir zum
Beispiel Rotationen darstellen können.
Und der Translationsvektor kommt in die rechte Spalte.
Genau.
Wir werden das aber nochmal in Beispielen durchrechnen.
Was können wir damit machen?
Wir können um beliebige Achsen rotieren und wir können gleichzeitig
auch eine Translation darstellen.
In einer einzigen Matrix.
Und das heißt, wir haben eine einheitliche Darstellung.
Ich habe es eben schon nochmal hier eindeutig.
Also wenn ich eine Transformationsmatrix habe, dann habe ich links
oben die Rotationsmatrix und rechts den Translationsvektor.
Und wenn ich jetzt solche Matrizen zusammenbauen möchte, dann gehen
wir jetzt hier genauso vor wie bei den 3 kreuz 3 Matrizen.
Bei den 3 kreuz 3 Matrizen haben wir uns so Basis-Rotationsmatrizen
zusammengebaut, wie ich sie auch gerade hingeschrieben habe.
Also um die x-Achse rotieren, um die y-Achse rotieren, um die z-Achse
rotieren.
Und hier haben wir jetzt noch eine dritte Möglichkeit einer Basis
-Operation und zwar das Verschieben ohne Rotieren.
Also nur eine Translation.
Und nur die Translation stellt man dar, indem man eben eine 4 kreuz 4
Matrix hat, bei der die Diagonalen Einsen sind und die rechte Spalte
den Translationsvektor enthält.
Eben der Eins.
Diese Basis-Rotationsmatrizen sind im Grunde identisch.
Also wir haben im linken oberen Teil die Rotationsmatrizen, die wir
schon kennen und der Translationsvektor ist 0 bei all denen.
Und indem wir diese Matrizen zusammen multiplizieren, können wir also
beliebige Kombinationen von Rotation und Translation um beliebige
Achsen darstellen.
Genau.
Das Ganze an einem Beispiel dann mal vorgerechnet, wie das aussehen
kann.
Angenommen, wir haben hier zwei Punkte und wir wollen für die beiden
Punkte eine Translation machen.
Genau.
Also was wir eigentlich machen wollen, ist relativ einfach.
Wir haben einen Translationsvektor, der in 5 in X-Richtung gehen soll,
0 in Y und 3 in S.
Das können wir natürlich einfach darstellen, indem wir einfach diesen
Vektor auf den anderen Vektor addieren würden.
Wir wollen das aber einfach mal mit einer homogenen
Transformationsmatrix machen, um eben zu verstehen, wie das
funktioniert.
Das heißt, wir bauen uns unsere Transformationsmatrix zusammen.
Nehmen wir sie mal A.
Wir wollen nicht rotieren, das heißt, wir haben in unserem oberen 3x3
-Teil genau, also wir haben unsere 4x4-Matrix und wir tragen in diesem
Bereich hier unseren Translationsvektor ein, den wir machen wollen.
Und wir haben jetzt unseren Punkt, den wir transformieren wollen, der
war 4, 3, 2.
Und weil es ein Punkt ist und keine Richtung, müssen wir in die 4.
Komponente eine 1 eintragen.
Und wenn wir jetzt diese Matrix-Multiplikation durchführen, dann
stellen wir fest, dass...
Was passiert, wenn wir diese Spalte mal...
wenn wir diese Zeile mal diese Spalte nehmen, dann stellen wir fest,
dass hier rauskommt 4 plus 5, was wir erwartet hätten und 3 plus 0 und
2 plus 3.
Und dann kommt eben als Ergebnis genau das raus, wenn wir den
Translationsvektor hier einfach hier drauf addiert hätten.
Ah, gut, aber es macht ja nichts, solange ich überall hier 3
hingeschrieben habe, passt es richtig.
In der Folie steht minus 3.
Dann kommt hier natürlich minus 1 raus, aber es funktioniert natürlich
auch mit plus 3.
Genau, also so können wir eine einfache Translation als 4 kreuz 4
Matrix darstellen.
Genau, und das Ganze an zwei Beispielen in den Folien einmal
durchgerechnet.
Genau.
Hier haben wir jetzt einmal, schauen wir uns einmal an, was diese
Bestandteile einer homogenen Matrix eigentlich bedeuten.
Wir haben das bei der Rotationsmatrix auch ein wenig gemacht und uns
festgestellt, dass die Spalten der Rotationsmatrix immer die neuen
Achsen, die neuen Achsen im Objektkoordinatensystem sind.
Und dasselbe gilt für die homogene Matrix, nur dass wir noch diese
vierte Spalte haben.
Wenn wir das in dem Kontext interpretieren wollen, dann haben wir hier
die, hier genannt NOA für normale Orientation und Approach, sind
einfach die neuen Achsen.
Und das U ist der Ursprung von dem Objektkoordinatensystem.
Das heißt, in dieser Matrix, wenn man diesen Spalten Bedeutung geben
will, hat man in den ersten drei Spalten die neuen Achsen vom
Koordinatensystem und in der letzten Spalte den Ursprung von dem
Koordinatensystem.
Genau.
Invertieren.
Genau, angenommen wir wollen jetzt, wir wollen jetzt diese Matrix
invertieren.
Hier steht die Lösung schon, es gibt eine etwas einfachere Lösung.
Die schreibe ich dann mal da hinten hin.
Also, wie bei den Rotationsmatrixen wollen wir natürlich auch manchmal
Transformationen invertieren.
Und angenommen, wir haben unsere Transformation mit einer
Rotationsmatrix, einem Translationsvektor und 0,1.
Das ist jetzt hier so von der Bedeutung her 3x3 Matrix, ein 3er
Vektor.
Und das ist eben ein 3er Zeilenvektor.
Und wir wollen bestimmen, was ist t hoch minus 1.
Und was wissen wir über t hoch minus 1?
Wir wissen, wenn wir t mal t hoch minus 1 nehmen, kommt da die
Identitätsmatrix raus.
Das ist die Definition von der Inversen.
Und wenn wir das hinschreiben, also hier rt 0,1 mal die Inverse, die
Inverse wird irgendeine Form annehmen.
Da wir einfach die Rotation und Translation rückgängig machen, ist es
auch wieder eine homogene Matrix.
Also nenne ich das einfach mal A und B.
Und wir wollen jetzt einfach mal A und B ausrechnen.
Ich schreibe diese Matrix auch mal als homogene Matrix hin.
Das ist jetzt so ein bisschen getrickst, aber wenn man hier jetzt
erste Zeile mal erste Spalte nimmt,
dann bekommt man dieses Ergebnis hier.
Also wissen wir, dass r mal A gleich i ist.
Und daraus folgt, dass das A muss die Inverse von r sein.
Und wir wissen, die Inverse von r ist die Transponierte aus der
Definition von der Rotationsmatrix.
Und dasselbe können wir jetzt hier machen für die erste Zeile und die
zweite Spalte.
Da bekommen wir dann raus, r mal b plus t mal 1 und das Ganze ist
gleich 0.
Wenn wir das umformen, kriegen wir r mal b ist gleich minus t.
Und wenn wir jetzt dieses r rüberbringen wollen, müssen wir beide
Seiten multiplizieren mit dem Inversen von r.
Das heißt rt mal r mal b ist gleich minus rt mal t.
Das hier gänzelt sich aus und deshalb ist b gleich minus rt.
Und damit wissen wir dann auch, dass das Inverse gleich der
Transponierten Rotationsmatrix ist.
Im Translationsteil wird es halt etwas komplizierter, weil man minus
die Transponierte Matrix mal den ursprünglichen Translationsvektor
nehmen muss.
Und die ganze Matrix ist homogen.
Also das ist eine andere Schreibweise für das, was hier steht.
Das ist ein bisschen ausführlicher hier mit den einzelnen Vektoren
dargestellt in der Folie.
Aber das ist eine Darstellung, die man auch in der Literatur ebenfalls
finden kann.
Vielleicht ein bisschen einfacher zu merken.
Wir haben es jetzt gesagt, diese homogene 4x4 Matrix hat insgesamt
zwölf Werte, die eine Bedeutung haben, weil die untere Reihe ist immer
0001.
Die Werte sind konstant, das heißt wir haben zwölf Werte, die gesetzt
werden können.
Das heißt, wir sind wieder in dem Fall, wir haben eigentlich sechs
Freiheitsgrade, Position und Orientierung jeweils drei.
Aber jetzt haben wir wieder zwölf Parameter, um das zu beschreiben.
Das ist dasselbe, was wir damals mit der Rotationsmatrix hatten.
Wir haben in dem Ganzen natürlich eine Redundanz drin, weil es immer
noch sechs Freiheitsgrade sind.
Und es ist manchmal schwierig, die Drehachsen und die Drehreihenfolge
aus den homogenen Matrixen auszurechnen, weil sie nur implizit
enthalten sind.
Genau, wie sieht es aus?
Wir haben ja schon mal so affine Transformationen dargestellt im
oberen Beispiel, indem wir einfach die Rotationsmatrix mit einem
Vektor multipliziert haben und dann den Translationsvektor addiert
haben, im oberen Fall.
Mit homogenen Koordinaten sieht es jetzt so aus, dass wir das in einer
einzelnen Matrixmultiplikation darstellen können.
Ist aber natürlich vom Prinzip her dasselbe Vorgehen, nur eine andere
mathematische Notation davon.
Genau, hier wollen wir uns jetzt eine kleine Notation einführen, wie
wir Koordinatensysteme mit diesen homogenen Matrizen verknüpfen
wollen.
Das heißt, wenn wir die Lage von einem Koordinatensystem mit einer
homogenen Matrix beschreiben wollen, dann können wir das tun mit dem
hochgestellten Koordinatensystem links und dem nach unten gestellten
rechts.
Was wir damit meinen ist, dass die Lage vom Koordinatensystem B
beschrieben wird, relativ zu A.
Und was wir damit tun können, ist es eben Punkte zu transformieren,
von einem Koordinatensystem ins andere.
Das werden wir gleich auch sehen, wie das nützlich sein kann.
Hier das Ganze mal als Beispiel, was wir mit den Koordinatensystemen
meinen.
Wir haben ja letztes Mal solche Begriffe wie Basiskoordinatensystem,
Objektkoordinatensystem eingeführt.
Hier haben wir jetzt eine Hand, ein Endeffektor-Koordinatensystem an
der Hand.
Und in diesem Koordinatensystem ist der Punkt beschrieben, der EKSP.
Das heißt, dieser Punkt, der existiert in dem linken oberen
Koordinatensystem, 0, minus 3, 5.
Und wir wollen wissen, wo dieser Punkt im Basiskoordinatensystem
liegt.
Und wir wissen, wo das EKS relativ zum BKS liegt.
Das heißt, wir haben eine Translation, minus 7, 0, 8 und eine
Rotation.
Das heißt, man sieht, die Achsen sind auch verdreht, im Vergleich zum
Basiskoordinatensystem.
Und wenn wir das Ganze jetzt ausrechnen wollen, wo dieser Punkt im
Basiskoordinatensystem liegt, dann können wir das wieder mit einer
homogenen Matrix machen, indem wir die Rotationsmatrix eintragen in
den Translationsfektor und die Matrix anwenden auf den Punkt, den wir
dann eben um die 1 erweitern.
Und dann kriegen wir eben den Punkt im Basiskoordinatensystem raus.
Genau, das ist immer nur so eine Transformation gewesen.
Oft ist es so, wir haben zum Beispiel ein Objekt A, das wir
beschreiben wollen im Basiskoordinatensystem.
Wir können auch ein Objekt B bezogen auf das Objektkoordinatensystem
von A haben.
Und eben das Objekt B bezüglich des Basiskoordinatensystems.
Und um diese unterschiedlichen Darstellungen ineinander umrechnen zu
können, hilft diese Notation, die wir jetzt hier eingeführt haben,
erheblich.
Das heißt, wenn wir jetzt hier die Transformation BKSHA mit der
Transformation AHB nehmen, dann ist es quasi so, als würden sich die
beiden As im Inneren rauskürzen.
Das heißt, wenn man diese Transformation zusammenzieht, dann kommt als
Ergebnis das Objekt B bezogen auf das Basiskoordinatensystem raus.
Und mit dieser Notation kann man dann eben auch kompliziertere
Darstellungen bearbeiten.
Im Vergleich dazu, also wir hatten ja vorher die Darstellung
Rotationsmatrix mal Vektor plus Translationsvektor.
Wenn wir das in diesem Format machen würden, dann kriegen wir etwas
Komplexeres raus, was nicht mehr so handlich ist.
Also hier ist mal dargestellt, wenn man zwei affine Transformationen
in der einfachen Darstellung R mal X plus T miteinander verknüpft.
Und dann bekommt man eben etwas nicht so Intuitives hier raus, während
man hier ein sehr intuitives Ergebnis in den homogenen Matrizen haben
kann.
Genau, und das Ganze lässt sich natürlich beliebig verknüpfen.
Also angenommen, wir haben ein Objekt 1 im Basiskoordinatensystem,
Objekt 2 bezüglich Objekt 1, Objekt 3 bezüglich Objekt 2.
Und wir können all diese Objektkoordinatensysteme miteinander
multiplizieren.
Und man sieht hier immer wieder, wichtig ist darauf zu achten, dass
man hier diese Korrespondenz hat.
Also Objekt 1 hier unten gestellt, hier hochgestellt, hier unten
gestellt, hier hochgestellt.
Dadurch kann ich die quasi hier rauskürzen und bekomme dann als
Ergebnis mein Objekt 3 im Basiskoordinatensystem raus.
Und das ist zum Beispiel relevant in der Robotik, wenn man zum
Beispiel so etwas hat, ich möchte die Tasse im Regal greifen.
Dann weiß ich, wo die Tasse im Regal ist.
Ich weiß, wo das Regal in Bezug zu mir ist.
Und deshalb kann ich dann diesen Griff ausführen.
Also diese Koordinatensysteme sind auch in realen Anwendungen
relevant.
Und das Ganze lässt sich natürlich beliebig hier nochmal als
Summenzeichen erweitern, die Koordinatensysteme alle miteinander zu
verknüpfen.
Genau.
Wir haben jetzt gesehen Rotationsmatrizen und Euler-Winkel, um
Rotationen darzustellen.
Die homogenen Matrizen haben die Rotationsmatrizen ja verwendet.
Kurze Zusammenfassung war eben, okay, wir haben die Rotationsmatrizen,
die sind redundant, neun Parameter, vielleicht schwierig zu
interpolieren.
Also wenn ich zwei Rotationsmatrizen habe, kann ich nicht einfach den
Durchschnitt von beiden nehmen.
Das ist vielleicht gar keine gültige Rotationsmatrix.
Die Euler-Winkel sind ganz kompakt, sind aber numerisch instabil.
Wir haben das Gimbal-Lock-Problem.
Und wir wollen eben eine andere Darstellung finden.
Gibt es eine Darstellung, die diese Nachteile nicht haben?
Und Spoiler-Warnung, es steht auch schon im Titel drin.
Wie als nächstes wollen wir uns nämlich die Quaternionen anschauen.
Quaternionen sind im Grunde eine Erweiterung von den komplexen Zahlen.
Wenn man so will, hyperkomplexe Zahlen.
Kommen ursprünglich so aus dem 19.
Jahrhundert schon von Hamilton.
Und wurden eher bekannt durch das Paper Closed Form Solution of
Absolute Orientation Using Unit Quaternions von Horn.
Und wir wollen uns anschauen, wie man diese mathematische Darstellung
erstmal schreiben kann.
Und wie man sie dann nutzen kann, um Rotationen darzustellen.
Also allgemein, die Quaternionen, wir benutzen da das Mengenzeichen h
bei uns für, sind eben eine Kombination aus, wenn man so will, zwei
komplexen Zahlen.
Was dazu führt, dass man am Ende quasi vier Zahlen in einem Quaternion
hat.
Also eine andere übliche Darstellungsform ist einen reellen Teil a und
einen imaginären Vektor u.
Wobei u ein dreidimensionaler Vektor ist.
Das heißt, wir haben hier drei Elemente, die imaginär sind.
Und für die i, j und k gelten eben spezielle Rechenregeln.
Wenn man mit dem Quaternion rechnet.
Genau.
Angenommen, wir haben jetzt halt zwei Quaternionen.
Was können wir mit so einem Quaternion erstmal allgemein machen?
Wir können es addieren.
Da gelten Gott sei Dank die üblichen Additionsregeln.
Das heißt, wir addieren den Realteil, wir addieren den Vektorteil und
dann haben wir das Ergebnis.
Es gibt ein Skalarprodukt, das wir an der einen oder anderen Stelle
benutzen werden.
Hier jetzt mal dargestellt als Multiplikation vom reellen Teil und
dann dem Skalarprodukt von den Vektoren.
Das entspricht im Grunde, als würde man das Quaternion als
vierdimensionalen Vektor interpretieren und dann das Skalarprodukt
bilden.
Sieht man hier in dieser Darstellung.
Das ist im Grunde das Skalarprodukt.
Multiplizieren ist leider nicht so schön.
Wir haben jetzt hier mal nur einfach ausgeschrieben, wie die
Multiplikation ist.
Und hier müsste man dann das Distributivgesetz anwenden.
Und leider ist es so, dass wenn man das macht, ein paar Terme
wegfallen, aber die meisten dableiben.
Das Ergebnis sieht nicht schön aus.
Könnt ihr euch mal im Internet oder im Mathebuch anschauen.
Kommt man leider nicht darum herum, das einfach per Hand auszurechnen.
Gibt keine schöne Formel für die Multiplikation.
Was kann man mit einem einzelnen Quaternion machen?
Konjugieren wird eine wichtige Eigenschaft sein, die wir benutzen
werden.
Auch um später Rotationen darzustellen.
Konjugieren ist super einfach.
Wir lassen den Realteil einfach so und wir negieren den Imaginärteil.
Das heißt, die drei Werte in dem U-Vektor werden einfach mit einem
negativen Vorzeichen versehen.
Die Norm definiert oft als Wurzel aus Q mal dem Konjugierten von Q.
Das Ergebnis entspricht dem, als hätte man den vierdimensionalen
Vektor davon die Länge genommen.
Also wenn ihr euch das anschaut, das ist einfach die Länge von einem
vierdimensionalen Vektor hier.
Kann man sich recht einfach merken.
Um zu invertieren, nimmt man das konjugierte Quaternion und teilt
durch die Länge ein Quadrat um.
Diese Formel wird noch wichtig für uns sein, weil wir uns nachher
spezielle Quaternionen anschauen, die immer die Länge 1 haben.
Und wenn die Quaternionen immer die Länge 1 haben, dann steht hier
konjugiertes Q durch 1.
Und dann können wir eben das Invertieren von dem Quaternion
vereinfachen.
Wir haben jetzt ein Quaternion und wir wollen später Punkte rotieren
können.
Also so ein Quaternion hat ja erstmal einfach nur vier Zahlen in sich.
Und wir müssen jetzt erstmal einen Weg finden, einen Vektor, einen
dreidimensionalen Vektor in diesem Quaternion abzubilden.
Da gibt es natürlich mehrere Möglichkeiten und wir wählen jetzt aus
mathematisch schönen Gründen.
So, wenn wir einen Punkt XYZ haben, dann tragen wir den in den
Imaginärteil von dem Quaternion ein.
Wenn wir einen Skalar darstellen wollen, dann tragen wir es im
Realteil von dem Quaternion ein.
Wir werden nachher sehen, warum uns das hilft, wenn wir rotieren
wollen mit den Quaternionen.
Und die Einheitsquaternionen, das hatte ich gerade gesagt, wenn wir
uns die Quaternionen anschauen, die die Länge 1 haben, dann haben die
eine spezielle Gruppenbezeichnung, die nennt man S3.
Und man kann eben SO3, also Rotationsmatrizen, eine Abbildung von
denen finden auf die S3-Quaternion.
Und dadurch kann man eben Rotationen auch durch Einheitsquaternionen
darstellen.
Was wir hier jetzt noch drauf haben, also diese Einheitsquaternionen
bilden eine Gruppe, das heißt, wenn ich ein Einheitsquaternion habe,
das multipliziere ich mit dem anderen, kommt als Ergebnis auch wieder
ein Einheitsquaternion raus.
Und die erfüllen eben Eigenschaften wie Assoziativgesetz, Existenz
eines Null-Elements und Existenz eines inversen Elements.
Und mit den Eigenschaften haben wir eben eine Gruppe, in der wir
Rechnungen durchführen können.
Also angenommen, wir haben jetzt eine Drehachse A mit normiert und wir
wollen um den Winkel V drehen.
Wie kriegen wir das in eine Quaternion rein?
Wir repräsentieren das so, dass wir hier, und aufpassen, in den
Realteil Cosinus von 4 Halbe und in den Imaginärteil A mal Sinus von 4
Halbe schreiben.
Das Halbe wird immer gerne vergessen bei Rechnungen und in Klausuren,
nur als Hinweis.
Und wenn wir das so tun, dann können wir mit unserer vorherigen
Darstellung von Punkten in Quaternionen eine Rotation ganz einfach
durchführen, um diese Achse und den Winkel, indem wir einfach Q mal
den Punkt mal Q hoch minus 1, das Inverse von Q nehmen.
Und ich hatte es gerade gesagt, wenn wir Einheitsquaternionen haben,
die haben alle die Länge 1, dann können wir eben dieses invertierte
Quaternion ersetzen durch das konjugierte Quaternion.
Das heißt, die untere Formel Q mal Punkt mal Q konjugiert werden wir
anwenden, um eben Rotationen mit Quaternionen durchführen zu können.
Genau.
Richtig.
Wie können wir jetzt zwei Quaternionen miteinander kombinieren?
Bei den Rotationsmatrizen hatten wir da auch schon mehrere
Möglichkeiten.
Angenommen, wir haben jetzt hier Q und R, sind zwei
Einheitsquaternionen, um unterschiedliche Achsen und unterschiedliche
Winkel.
Man kann natürlich einfach sich zwei Funktionen aufstellen und die
Funktionen verketten.
Das Interessante bei den Einheitsquaternionen ist, dass wir wie bei
den Rotationsmatrizen die kombinierte Rotation aus beiden einfach
durch die Multiplikation der Quaternionen ausrechnen können.
Also die endgültige Rotation ist dann im Grunde Q mal R und mehr
müssen wir gar nicht tun.
Genau.
Wir haben jetzt ein ganzes Beispiel dazu.
Das wird... schauen, wie viel Zeit wir haben.
Genau.
Also wir wollen im Grunde einen Punkt um eine Achse und einen Winkel
rotieren.
Und das haben wir schon mal mit Rotationsmatrizen gemacht.
Wir wollen uns jetzt mal anschauen, wie dasselbe aussieht mit
Quaternionen.
Also angenommen, wir haben einen Punkt 109 und wir haben eine
Drehachse.
Das machen wir jetzt für dieses Beispiel ganz einfach.
Wir nehmen einfach die X-Achse.
Und wir haben einen Drehwinkel um 90 Grad.
Die Aufgabe wollen wir lösen.
Was müssen wir dafür als erstes tun?
Wir müssen erstmal das Quaternion als Punkt darstellen.
Wo wäre es denn?
Es hat funktioniert.
Genau.
Also wir wollen als erstes den Punkt als Quaternion darstellen.
Und das machen wir, indem wir in das Quaternion den Realteil 0 setzen.
Und als Imaginärteil einfach P eintragen.
Das heißt, wenn wir das ausschreiben, dann kriegen wir hier 0 plus 1
mal i plus 0 mal j plus 9 mal k.
Das ist einfach der 109-Vektor in den Quaternion umgewandelt.
Dann müssen wir die Rotation noch darstellen um die Achse und den
Winkel.
Und das nennen wir einfach mal Q.
Und da haben wir die Formel gesehen.
Wir machen Cosinus von 90 Grad halbe.
Und der andere Teil ist eben die Achse.
Der Achsenvektor mal Sinus von 90 Grad halbe.
Genau.
Und was kriegen wir dann daraus?
Als Ergebnis kommt am Ende der Cosinus von 45 Grad.
Und hier im Teil die Drehachse ist einfach die x-Achse, also 1 0 0.
Das heißt, wir haben nur ein i-Teil.
Sinus von 90 Grad halbe.
Also das ist unser Rotationsquaternion.
Die Werte für j und k sind eben 0.
Wir müssen das Ganze konjugieren.
Konjugieren ist auch wieder einfach.
Wir drehen einfach das Vorzeichen vom Imaginärteil um.
Also das was hier plus ist, ist jetzt hier minus.
Genau.
Und damit können wir im Grunde die ganze Rotation jetzt darstellen.
Das heißt, wenn wir jetzt rotieren wollen,
dann können wir einen neuen Vektor ausrechnen.
Indem wir q mal v mal q konjugiert nehmen.
Den Wert haben wir, den Wert haben wir und den Wert haben wir.
Und damit können wir das Ganze ausrechnen.
Genau.
Also diese Sinus 45 Grad und Cosinus 45 Grad, das sind immer 1 durch
Wurzel 2.
Deshalb nehme ich die einfach mal raus.
Also wir haben hier im q 1 durch Wurzel 2 vorne stehen.
Und in dem q steht dann drin einfach nur 1 plus i.
Unser v, da nehme ich auch mal die Nullen raus.
Da steht dann i plus 9k.
Und der letzte Teil, das q, steht auch wieder 1 durch Wurzel 2 vorne.
Und dann steht da 1 minus i, also konjugiert.
Und jetzt müssen wir zuerst das hier ausrechnen.
Ich nehme mal diese 1 durch Wurzel 2 beide hier vorne und schreibe
einfach ein Halb davor.
So, also die Erste.
Die Erste, also 1 mal i plus 9k.
Dann hat man plus i mal i.
Und dann hat man plus 9 mal ik in der ersten Klammer.
Die zweite Klammer bleibt einfach noch 1 minus i.
Und hier müssen wir jetzt die Rechenregeln für Quaternionen anwenden.
Also i mal i, i Quadrat ist wie bekannt, wie bei den normalen Zahlen,
ist minus 1.
Und i mal k, da haben wir, ist minus j.
Das ist einfach eine Eigenschaft von diesen Quaternionen, dass zwei
multiplizierte Achsen eine andere Achse plus oder minus ergeben.
Das heißt, ich kann das hier schreiben als ein Halb mal minus 1.
Ich schreibe es mal jetzt in dieser Reihenfolge auf.
Plus ein i minus 9j plus 9k und das Ganze mal 1 minus i.
Das heißt, wir haben jetzt nur noch das hier mal dem.
Und das wird auch eine... ich schreibe mal hier weiter.
Das ist jetzt auch wieder so, man hat leider keine einfache Lösung,
man muss alles einmal durchmultiplizieren.
Und wenn man das dann macht, dann erhält man den vorderen Teil, der
bleibt einfach erhalten.
Minus 9j plus 9k.
Und der hintere Teil, minus i, steht ja hier.
Das heißt, wir müssen alles hier drin mit minus i multiplizieren.
Das heißt, wir halten minus i.
Minus i mal minus 1 ist plus i.
Und minus i mal i plus 9ji und minus 9ki.
Und das hier ist wieder minus 1.
J mal i gibt uns minus k.
Und k mal i gibt uns plus j.
Das heißt, wenn wir diese Vereinfachung jetzt hier drauf anwenden,
dann stellen wir fest, wir haben plus i plus i.
Zwei Is insgesamt.
Wir haben minus 1 minus minus 1 gibt 0.
Wir haben minus 9j minus 9j minus 18j.
Und wir haben minus 9k plus 9k, das streicht sich raus.
Und ich habe vergessen, die in halb mitzunehmen.
Und dann kommt eben draus i minus 9j.
Was machen wir jetzt damit?
i minus 9j, was bedeutet das?
Wir haben hier noch ein plus 0k.
Und dann können wir quasi aus diesem hier einmal 1 minus 9 0.
Das heißt, unser rotierte Punkt können wir beschreiben als 1 minus 9
0.
Also viel von den Substitutionsregeln für j mal i und so weiter
anwenden, bis man am Ende wieder ein Quartenion hat.
Und dann hat man nachher einen Punkt, der rotiert wurde um das
Quartenion.
Genau, dasselbe steht dann auch wieder auf der Folie drauf.
Nur etwas, ich sag mal, kompakter.
Also die Schritte Punkt darstellen als Quartenion, Rotationsquartenion
darstellen.
Und dann eben rotieren q v mal q Quartenion und nachher den Punkt
extrahieren.
Aufpassen, Quartenionen darf man nicht vertauschen.
a mal b ist nicht gleich b mal a.
Ja, was haben wir für Vorteile durch die Quartenionen?
Wir können das eben kompakt darstellen.
Wir brauchen nur vier Werte im Gegensatz zu neun.
Es ist anschaulich, wenn man sich das betrachtet als Achse und Winkel
von der Richtung.
Wir haben keinen Gimbal Lock und die Darstellung ist kontinuierlich.
Das ist das, was hier unten dargestellt sein soll.
Also angenommen, wir haben wieder eine kontinuierliche Rotation um
zwei Achsen.
Wir plotten das Ganze.
Dann ergibt das eben eine kontinuierliche Fläche im 2D Raum.
Genau, wir können aber nur Rotationen darstellen und keine
Translationen.
Genau, wir wollen uns auch noch ein spezielles Teil von Quartenionen
anschauen, wo sie noch besonders gut drin sind.
Und das ist die Interpolation zwischen zwei Rotationen.
Angenommen, ich habe hier diese zwei Rotationen und ich möchte das
kontinuierlich darstellen, wie das Rechteck von dieser Rotation in die
andere Rotation übergeht.
Dann ist das schwierig mit Euler-Winkeln.
Es ist auch schwierig mit Rotationsmatrizen.
Mit Quartenionen ist es super einfach.
Es gibt dieses Verfahren Spherical Linear Interpolation und auch SLURP
genannt.
Und das funktioniert ähnlich zu linearer Interpolation.
Das heißt, wenn wir zwischen zwei Quartenionen invertieren wollen,
dann haben wir eine allgemeine Formel hier oben bei SLURP
Interpolation.
Aber für unsere Einheitsquartenionen und für unsere Anwendungsfälle
reicht die Formel hier unten mit dem Sinus von Theta.
Das heißt, angenommen, wir haben zwei Quartenionen q1, q2.
Dann können wir mit dem Skalarprodukt einen Winkel zwischen diesen
beiden Quartenionen ausrechnen.
Cosinus Theta.
Und diesen Winkel dann in die Formel oben einsetzen für die lineare
Interpolation.
Und mit der Formel bekommen wir dann ein neues Einheitsquartenion, das
genau mit dem Parameter t zwischen diesen beiden Rotationen steht.
Der Vorteil davon ist, dass wir die Rotation mit konstanter
Winkelgeschwindigkeit darstellen können, wenn wir das so machen.
Wir könnten ja auch linear zwischen zwei Quartenionen interpolieren
und die dann einfach normieren.
Dann ist aber die Rotation nicht mit konstanter Winkelgeschwindigkeit.
Deshalb braucht man diese Spherical Linear Interpolation für einige
Anwendungsfälle.
Genau, was hat man da für Probleme?
Es gibt ein Problem, das sehr relevant ist, und zwar, dass die
Einheitsquartenionen decken alle Rotationen genau doppelt ab.
Das heißt, es gibt immer zwei Quartenionen, die dieselbe Rotation
beschreiben.
Und die sind relativ einfach verwandt.
Q und –Q stellen immer dieselbe Rotation dar.
Man kann sich so vorstellen, dass im Grunde der Rotationswinkel
invertiert wird und gleichzeitig auch die Rotationsachse und deshalb
dieselbe Rotation rauskommt.
Man kann das Ganze zeigen, dass die beiden eben gleich sind.
Das folgt einfach daraus, dass man Skalare vorziehen kann und Minus
mal Minus wieder Plus ergibt.
Das heißt, Q und –Q stellen dieselbe Rotation dar.
Und bei Spherical Linear Interpolation muss man deshalb aufpassen,
weil man nicht weiß, ob man von Q1 schneller nach Q2 kommt oder von
–Q1 nach Q2, die ja identisch sind.
Deshalb muss diese doppelte Abdeckung des Rotationsraums hierbei
beachtet werden, um die schnellste Rotation zu finden.
Als nächstes haben wir noch alle Quaternionen als letzte
Darstellungsmöglichkeit.
Wir haben es ja quasi bei den Rotationsmatrizen so gemacht, dass die
nur Orientierung darstellen konnten.
Und dann haben wir die vergrößert von 3x3 auf 4x4 und dann konnten wir
auch Translationen darstellen.
Und dasselbe kann man auch mit Quaternionen machen.
Die nennt man dann duale Quaternionen.
Das tun wir dadurch, dass wir alle reellen Werte von den Quaternionen
durch Dualzahlen ersetzen.
Was Dualzahlen sind, das schauen wir uns gleich an.
Und dadurch haben wir dann die Möglichkeit, auch eine Translation in
ein Quaternion darzustellen.
Duale Zahlen haben die Form, das ist sehr ähnlich zu komplexen Zahlen,
Primärteil P plus Epsilon mal Sekundärteil.
Nur ist jetzt nicht das i, i² gleich minus 1, sondern Epsilon² ist
gleich 0.
Also man hat dadurch eine andere Algebra, andere Rechenregeln, die für
die dualen Zahlen gelten.
Und ähnlich wie bei komplexen Zahlen kann man eben aus dieser
Rechenregel die Operationen ableiten.
Genau, die Rechenregeln sind sogar einfacher in der Multiplikation.
In der Addition ist es genauso wie bei den komplexen Zahlen.
In der Multiplikation führt eben dadurch, dass man E² gleich 0 hat,
führt dazu, dass eben der letzte Teil wegfällt von der Multiplikation.
Das heißt man hat nur P1 mal P2 und man hat einen Teil mal Epsilon.
Genau, wir können duale Quaternionen eben darstellen, dass wir vier
Werte haben.
Ein Quaternion hat ja immer vier Werte.
Und wir stellen jedes einzelne Element durch ein Primärteil und ein
Sekundärteil dann dar.
Wenn wir das jetzt Winkel und Translationen darstellen wollen, da gibt
es gleich noch eine ausführlichere Folie zu.
Und was bedeutet so ein duales Quaternion?
Das sind im Grunde Schreiben, die zum einen einen Winkelwert und eine
Translationsgröße und zum anderen Teil eine beliebig gerichtete
Gerade.
Und an dieser Gerade rotiert man und entlang dieser Geraden führt man
auch die Translationen durch.
Genau, ich hatte es jetzt für die Quaternionen schon irgendwie an der
Tafel gemacht.
Hier ist die komplette Multiplikationstabelle, wenn man duale
Quaternionen einsetzt.
Man hat i, j, k und man hat auch die Kombination von i, j, k mit dem
Epsilon, das wir durch die dualen Zahlen einführen.
Vorteil ist nur, dass die rechte und rechte Ecke alles Nullen sind,
weil E-Quadrat eben gleich Null ist.
Genau, hier mal genauso wie bei den Quaternionen müssen wir Rotationen
darstellen können.
Das machen wir genauso.
Wir packen in den primären Teil der dualen Zahl die Rotation rein.
Und in den sekundären Teil der dualen Zahl packen wir die Translation
rein.
Und hier muss man wieder aufpassen, wie bei den Quaternionen, muss man
hier nicht die Winkel halbieren, sondern man muss die Translationen
halbieren.
Das ist wichtig, wird oft vergessen.
Und wir können genauso, nachdem wir das gemacht haben, können wir die
dualen Quaternionen durch Multiplikation verbinden, um
Transformationen darzustellen.
Genau, um nochmal, wenn ich eine Translation und eine Rotation habe,
kann ich die durch Multiplikation verbinden.
Wir haben genau dasselbe, um die dualen Quaternionen anzuwenden auf
einen Punkt, machen wir genau dasselbe, was wir mit normalen
Quaternionen gemacht haben.
Wir nehmen das übliche Quaternion, mal der Punktdarstellung, mal das
Konjugierte.
Und in diesem Fall konjugieren wir dadurch, dass wir das Plus durch
ein Minus ersetzen in der Dualzahl.
Es gibt auch andere Konjugationen von dualen Quaternionen.
Man könnte ja auch den Primärteil konjugieren, plus Epsilon mal den
konjugierten Sekundärteil.
Wir verwenden diese Konjugierung, weil die eben dann funktioniert für
die Anwendung auf Transformationen.
Genau, das Ganze haben wir auch an einem einfachen Beispiel
durchgerechnet.
Das heißt, wir müssen wieder genau dasselbe Verfahren wie beim
Quaternion.
Wir haben einen Punkt, wir wollen ihn um eine Achse mit einem Winkel
rotieren, aber gleichzeitig auch eine Translation durchführen.
Das heißt, wir machen wieder dasselbe.
Wir stellen den Punkt als duales Quaternion dar.
Diesmal als Sekundärteil, deshalb sind die Epsilons drin.
Die Rotation als ganz normales duales Quaternion im Realteil, im
Primärteil.
Und dann können wir die Translation darstellen.
Und wir wollen jetzt hier Translation machen um 4, 2, 6.
Und ich hatte es gesagt, man muss die Darstellung halbieren.
Deshalb steht hier 2, 1, 3 in der Translation.
Deshalb nicht wundern.
Das Ganze muss kombiniert werden.
Das heißt, wir multiplizieren qr mal qt.
Das ersparen wir uns jetzt mal.
Und dann können wir das Ganze konjugieren, indem wir einfach den
Sekundärteil minus nehmen.
Hier sind nur die Vorzeichen gedreht.
Und dann können wir das Ganze anwenden und ausrechnen.
Das ist ein bisschen aufwendiger.
Ich lasse es jetzt mal aus Zeitgründen weg.
Könnt ihr mal am Schreibtisch durchrechnen mit der
Multiplikationstabelle in den Folien.
Genau, den Punkt kann man wieder genauso extrahieren wie vorher.
Man nimmt ihn hier nur aus dem Sekundärteil raus, also mit den
Epsilons.
Ja, also was haben wir?
Duale Quaternionen eignen sich zur Lagebeschreibung von Objekten,
zusätzlich zur Orientierung.
Man kann alle Transformationen darstellen.
Man hat weniger Redundanz, weil wir nur acht Parameter haben, im
Gegensatz zu zwölf bei der homogenen Matrix.
Und oft braucht man weniger Einzeloperationen.
Aber diese Einzeloperationen an sich sind wesentlich aufwendiger, als
wenn wir mit der Matrix rechnen.
Matrix enthält ja am Ende nur skalare Multiplikationen.
Hier müssen wir andere Rechenregeln anwenden.
Und es ist eben auch schwierig, dem Anwender klarzumachen, was jetzt
dieses duale Quaternion genau bedeutet.
Genau, ja, also, was haben wir gesehen?
Wir hatten jetzt verschiedene Darstellungsformen für Rotationen,
Translationen im euklidischen Raum.
Das waren zum einen die Rotationsmatrix mit einem Verschiebungsvektor
zusammen.
Wir hatten die Euler-Winkel.
Wir hatten die homogene 4x4-Matrix.
Wir hatten Quaternionen und duale Quaternionen.
Und wir haben gesehen, jede von diesen Darstellungsarten hat
spezifische Vor- und Nachteile.
Und es gibt halt konkrete Anwendungen, erfordern bestimmte Auswahl von
der Methode.
Wir werden uns das auch noch in der Übung anschauen, wo wir im Grunde
die ganzen 90 Minuten damit verbringen werden, an Aufgaben zu rechnen.
Ich hoffe, dass wir diesmal im Vergleich zum letzten Jahr die
Übungsaufgaben vorher bereitstellen können, dass ihr euch die schon
mal anschauen könnt.
Wir werden nächsten Donnerstag, wird Tamin wieder da sein und wird
eine Vorlesung halten.
Vielleicht haben wir auch einen Gastdozenten hier, der hoffentlich
vorbeikommen kann.
Wir werden mal schauen, sind im Moment noch am Vorbereiten.
Und ansonsten haben wir noch eine Sammlung von Begriffen, Englisch,
Deutsch.
Und damit würde ich die Vorlesung auch schon mal beenden.
Vielen Dank!