So, guten Abend.
Wie ihr sehen könnt, ist Tamim heute auch nicht da.
Wir haben heute eigentlich vor, eine Übung zu machen.
Tamim hat mir gesagt, ihr habt beim letzten Mal in der Übung nicht
alle Aufgaben aus der Matheübung geschafft.
Das heißt, die schauen wir uns nochmal kurz an.
Und dann machen wir ein paar Aufgaben zur Kinematik, wo ihr die
letzten beiden Vorlesungen zugehört habt.
Als Hinweis für die nächste Übung, die nächste Übung wird
wahrscheinlich schon nächste Woche Donnerstag wieder sein, so wie
jetzt.
Wir wollen ein bisschen Matlab machen mit euch.
Ich möchte euch im Grunde ein paar Sachen zeigen, die wir hier quasi
manuell berechnet haben, wie man die sich selbst ausrechnen lassen
kann.
Und wenn ihr mitmachen wollt, dann müsst ihr im Grunde euch Matlab
holen.
Da habt ihr als Studenten eine Lizenz für, wenn ihr dem Link folgt.
Die Folien sind auch jetzt schon online im Ilias.
Und zusätzlich diese Robotics Toolbox.
Peter Kork war ja auch hier, hat einen kurzen Vortrag von 20 Minuten
gehalten.
Und der hat eine Toolbox in Matlab, die könnt ihr euch installieren.
Relativ einfach.
Und in den nächsten Übungen werden wir mal versuchen, diese Aufgaben,
die wir in den mathematischen Grundlagen gemacht haben, Übungsblatt 1
mit Matlab zu lösen.
Wenn ihr wollt, könnt ihr euch das auch mal selbst angucken, ist gar
nicht so schwierig.
Also, wie gesagt, wenn ihr mitmachen wollt, das fürs nächste Mal.
Und dann kommen wir zu Übungsblatt 1 quasi, die mathematischen
Grundlagen und den Rest, den Tamim nicht ganz geschafft hat.
Wenn ihr euch erinnert, es gab eine Aufgabe 5, da ging es um
Quaternionen.
Tamim hat gesagt, er hat ein paar Aufgaben davon gemacht, deshalb
würde ich die jetzt einfach relativ schnell durchgehen.
Es ging darum, dass man eine Transformation, eine Rotation von einem
Punkt über Quaternionen darstellt und einmal durchrechnet von Hand.
Genau.
Und das ist so eine der Standardaufgaben.
Man bekommt einen Punkt gegeben, dann muss man diesen Punkt erstmal
als Quaternion darstellen.
Das geht relativ einfach.
Wir schreiben den Punkt quasi, die drei Koordinaten in den
Imaginärteil des Quaternions rein.
Dann müssen wir die Rotation darstellen, das heißt wir haben hier
einen Winkel gegeben und eine Achse gegeben.
Das heißt, wir können einfach mit der Formel, die wir kennen, ein
Quaternion dazu ausrechnen.
Wichtig ist immer, und das wird auch oft in Klausuren und sonstigen
Übungen vergessen, dass der Winkel, den man initial gegeben hat, im
Sinus und Kosinus hier halbiert ist.
Also dieses Durch zwei wird oft vergessen, zum Beispiel in
Klausuraufgaben.
Und dann kann man nachher die Rotation als Quaternion darstellen.
Um das Ganze dann verwenden zu können, brauchen wir auch noch das
konjugierte Quaternion.
Konjugiertes Quaternion hat nur den Imaginärteil negiert.
Und damit können wir eben die Transformation durchführen.
Also, wenn ihr euch erinnert, die Formel ist relativ einfach.
Wir haben den Punkt Q dargestellt als Quaternion.
Das haben wir im ersten Teil der Aufgabe gemacht und das Q
ausgerechnet.
Und dann können wir die Transformation einfach als Q mal V mal Q
konjugiert ausrechnen.
Und da machen wir dann nichts anderes als die entsprechenden Werte
einfügen.
Und die Multiplikation bei Quaternionen muss man leider einfach per
Distributivgesetz ausrechnen.
Dann bekommt man sogenannte Mischterme, also hier zum Beispiel Ki, Kj
oder K².
Dann muss man eine Tabelle nachschauen oder die Definition sich
anschauen.
Und eben diese ersetzen durch die einfachen, zum Beispiel Ki ist J, Kj
ist –i.
Und das Ganze macht man dann so weiter für den zweiten Term.
Das Konjugierte muss man auch noch durchmultiplizieren.
Wir bekommen wieder dasselbe.
Wir haben diese gemischten Terme, die wir wieder ersetzen müssen.
Durch die einfacheren Terme.
Und dann sind wir mit der Aufgabe quasi fertig.
Wir haben jetzt hier stehen, wenn wir das ausrechnen, minus einmal i
plus 5j plus 7k.
Und das können wir dann eben, wenn wir uns die Einzelteile des
Quaternions hinschreiben, so hinschreiben.
Und wir wissen ja, wenn wir jetzt den Punkt auslesen wollen, dann
steht der in dem Imaginärteil drin.
Das heißt, unser Punkt ist dann nachher minus 1, 5, 7.
Das ist im Grunde der Punkt, der um Q rotiert wurde, den man dann
nachher hat.
Genau, aber ich glaube, das hat Tami im letzten Mal auch an der Tafel
gezeigt.
Hier nochmal kurz zur Wiederholung.
Genau.
Dann gab es eine Aufgabe zur Spherical Linear Interpretation, also
SLIR für Quaternionen.
Zwischen zwei Quaternionen, Q1 und Q2.
Und da machen wir nur kurz mal, wie das Vorgehen ist.
Um diese Interpolation machen zu können, rechnet man zuerst den Winkel
aus zwischen den beiden Quaternionen.
Das geht, indem man das Skalarprodukt zwischen den beiden Quaternionen
nimmt.
Das entspricht dem Kosinus von dem Winkel, das die beiden Quaternionen
darstellen, die Rotation.
Und diese Quaternionen hier sind definiert über Achsen und Winkel.
Und wenn wir das ausrechnen, dann kommen wir auf relativ einfache
Quaternionen.
Das ist für dieses Beispiel extra so gewählt.
Das sind im Grunde fast überall Nullen und ein paar Einsen drin.
Und das heißt, das Skalarprodukt ist auch Null.
Weil immer 1 mal 0, 0 mal 1, 0.
Und dadurch können wir dann den Winkel ausrechnen, der dann die halbe
ist.
Genau, mit dem Winkel können wir dann anfangen, die Interpolation
auszurechnen.
Das ist hier die Formel aus der Vorlesung, bei der wir eben die
Sinustherme teilweise ausrechnen können.
Also wir wissen ja unseren Winkel jetzt, Pi halbe, Sinus Pi halbe ist
1.
Das heißt, diese unteren Teile fallen beide weg.
Und dann haben wir nachher eine Formel,
in die wir dann nur noch t einsetzen müssen.
Genau.
Und in diese Formel setzen wir dann auch t ein.
Also wir wollen das jetzt ausrechnen für t gleich 0,5.
Und das ist auch relativ einfach.
Das heißt, wir haben hier einfach die... diese Werte hier sind 0,5.
1 minus 0,5 sind auch 0,5.
Das rechnen wir aus.
Wir haben die Sinuswerte hier, wir setzen sie ein.
Wir erinnern uns daran, dass diese q1 relativ einfach waren.
q1 und q2 gleich j.
Und die wir hier dann haben.
Und dann haben wir hier das Quaternion, das hier rauskommt.
Das ist im Grunde eine Rotation, die genau zwischen q1 und q2 liegt.
In der Mitte quasi.
Genau.
Also das zunehmen.
Dann gab es noch die letzte Aufgabe.
Die letzte Aufgabe war etwas theoretischer gestellt.
Man sollte zeigen, dass die Einheitsquaternionen eine Untergruppe
sind, bezüglich der Multiplikation.
Wichtig ist immer, bezüglich welcher Operation man eine Gruppe
definiert.
Und in der Aufgabe war gegeben, welche Eigenschaften man zeigen
sollte.
Also Abgeschlossenheit, wenn ich zwei Quaternionen multipliziere.
Einheitsquaternion soll wieder eine Einheitsquaternion rauskommen.
Assoziativität, ich kann die Klammern setzen, wie ich will.
Es gibt ein neutrales Element und ein inverses Element.
Und um das zu machen, schauen wir uns einfach die einzelnen vier
Eigenschaften an.
Und was wir dafür tun müssen, ist eben zu zeigen, dass zwei
Einheitsquaternionen A und B, wenn ich sie multipliziere, ist das
Ergebnis wieder eine Einheitsquaternion.
Jetzt mal hier als S3 bezeichnet.
Und ich weiß schon von den Quaternionen her, dass das Produkt auf
jeden Fall auch eine Quaternion ist.
Aber ich weiß noch nicht, wie lang das ist.
Und das heißt, um das zu beweisen, dass es eine Einheitsquaternion
ist, berechnen wir die Länge und wollen zeigen, dass die gleich 1 ist.
Die soll nachher rauskommen.
Und um das ein bisschen einfacher zu machen, rechnen wir das Quadrat
aus.
Das ist das, was hier steht.
Und es steht hier auf der Folie schon oben, es gibt einen Tricky
-Ansatz.
Das ist auch der, der in dem Lösungsblatt drin steht.
Wir werden gleich sehen, warum.
Also die Länge zum Quadrat haben wir auch in der Vorlesung mal
besprochen.
Die Länge zum Quadrat kann man einfach ausrechnen, indem man das
Quaternion multipliziert mit seinem konjugierten Quaternion.
Also das ist im Grunde einfach die Definition.
Wenn ich ein Quaternion die Länge von einem Quaternion zum Quadrat
berechnen will, dann kann ich q mal q konjugiert rechnen.
Das ist hier jetzt angewendet.
Dann bringen wir die Konjugation in die Klammer rein.
Und das ist der Tricky-Teil, weil hier drehen sich die beiden um.
Also wenn ihr euch erinnert, Quaternionen sind ja nicht kommutativ.
Man darf nicht bei der Multiplikation die einzelnen Quaternionen
vertauschen.
Und dieser Effekt hat einen ganz kuriosen Namen.
Ich hoffe, ich schreibe es jetzt richtig.
Das ist ein involutiver Anti-Automorphismus, so in der Richtung.
Und das heißt im Grunde, wenn man eine Operation a mal b hat und einen
anderen Operator darauf anwendet, dann tauschen die beiden Operanten
die Reihenfolge.
Ist nur relevant für Operationen, die nicht kommutativ sind.
Und dann wenden wir einfach das Assoziativgesetz an.
Also ich setze jetzt die Klammern einfach anders.
Das darf ich machen, weil Quaternionen assoziativ sind.
Und jetzt wende ich diese Operation hier rückwärts an.
Also b mal b konjugiert entspricht der Länge von b zum Quadrat.
Ich habe hier das Sternchen vergessen.
Die Länge von b, wissen wir, ist ein Einheitsquaternion, ist 1.
Wir haben also a mal 1 mal a Stern.
Wir wenden wieder die Regel an, dass das die Länge von a zum Quadrat
ist.
Und wir wissen, die Länge von a zum Quadrat ist auch 1.
Damit sind wir fertig.
Das haben wir jetzt nur geschafft wegen diesem Trick.
Das macht es einfach, dass man das quasi auf einer Folie zeigen kann.
Wer es für den, der es nicht glaubt, hier gibt es nochmal als quasi
Folie.
Man kann es auch anders zeigen.
Man kann auch einfach die Multiplikation von diesen beiden
Quaternionen ausmultiplizieren mit den einzelnen Termen und davon die
Länge nehmen.
Das wird aber sehr gruselig.
Ich habe das mal mit MATLAB gemacht und dann hier hingeschrieben.
Und was man dann feststellt, ist, dass man hier einiges faktorisieren
kann.
Also diese Terme, hier kann man immer rausnehmen.
Dann wende ich das Distributivgesetz rückwärts an, faktorisiere.
Und dann sehe ich, dass hier diese Terme, die hier stehen, das sind im
Grunde alles die Länge von a zum Quadrat.
Kann ich hier einsetzen.
Setze ich ein.
Dann stelle ich fest, dass diese Länge von a Quadrat überall kommt.
Kann es rausnehmen, hier.
Stelle wieder fest, dass der Term, der übrig bleibt, ist im Grunde die
Länge von b zum Quadrat.
Kann das einsetzen.
Und das, was dann übrig bleibt, ist eben, weil wir wissen, a und b
waren von vornherein eine Quaternion, ist 1 mal 1, ja, bleibt 1 über
und dann sind wir auch fertig.
Genau, aber das will man eigentlich nicht von Hand aus rechnen, weil
diese erste Ausmultiplikation von a mal b relativ aufwendig ist.
Genau.
Gut, aber was als Ergebnis rauskommt, auf jeden Fall sind die
Einheitsquaternionen abgeschlossen bezüglich der Multiplikation.
Wir müssen noch die anderen Eigenschaften beweisen.
Diese zwei, Assoziativität und neutrales Element, sind eigentlich
relativ einfach.
Wir wissen nämlich, dass die normalen Quaternionen, die sind schon
assoziativ.
Das heißt, da die Einheitsquaternionen ja einfach die Untergruppe
davon sind, haben wir das wie so immer erfüllt.
Neutrales Element ist auch relativ einfach.
Das neutrale Element ist einfach die 1, ja, ohne Imaginärteil.
Da ja die Multiplikation hier auch so funktioniert, wenn ich einmal
ein Quaternion nehme, dann kommt das Quaternion raus.
Oder a mal 1, dann kommt auch das Quaternion raus.
Und da natürlich die Länge von 1, 1 ist, ist das auch gegeben.
Das heißt, die beiden sind relativ einfach.
Wir müssen noch dann das inverse Element zeigen, dass es existiert und
eine Einheitsquaternion ist.
Da gehen wir genauso vor, wie wir es auch bei der Abgeschlossenheit
gemacht haben.
Das heißt, wir schauen uns einfach die Länge von diesem inversen
Quaternion an.
Und wenn wir das machen, dann setzen wir die Definition ein.
Das inverse Quaternion kann man berechnen, indem man konjugiert und
durch die Länge vom Quaternion teilt.
Jetzt wissen wir natürlich, dass unser normales Quaternion, also das
nicht -inverse, hat die Länge 1, weil es ja schon eine
Einheitsquaternion ist.
Das heißt, man kann das Ganze hier schreiben als die Länge von q
konjugiert.
Und q konjugiert ist ja nichts anderes als das, was man als Skalarteil
hat, und das invertierte Imaginärteil, das heißt, konjugieren ändert
gar nichts an der Länge.
Das heißt, hier kommt auch wieder 1 raus.
Und mit den vier Schritten, hier nochmal auf der Folie, haben wir im
Grunde alle vier Eigenschaften gezeigt und damit wissen wir dann, dass
die Einheitsquaternionen eine Untergruppe sind der Quaternionen
bezüglich der Multiplikation.
Also das als Aufgabe, die sich mal so ein bisschen auf die Beweisebene
schiebt.
Genau, also das war der Rest, den Tamim eigentlich noch letztes Mal
vorstellen wollte.
Und jetzt wollen wir ein paar Aufgaben rechnen zur Kinematik.
Die werden überwiegend so in dem Bereich Dennerwied-Hartenberg,
Parameter und Anwenden gehen.
Wir haben auch am Ende ein bisschen was zu Jacobi-Matrizen, was dann
vielleicht ein bisschen interessanter wird.
Genau, das Übungsblatt ist ja auch online.
Ich habe es jetzt hier mal nur kurz zusammengefasst, was Aufgabe 1
ist.
Wir haben immer ein rechtshändiges Koordinatensystem gegeben in den
beiden Teilaufgaben und wir sollen dieses Koordinatensystem
transformieren mit einem gegebenen Satz von dh-Parametern.
Das heißt, wir haben hier unseren dh-Parametersatz und hier.
Und wir fangen natürlich mit der ersten Aufgabe an und wollen dann mal
sehen, wie man im Grunde diese Parameter anwendet.
Zur Erinnerung, ich habe hier einfach wieder die Folien reingepastet,
die es schon in der Vorlesung gab.
Was sind die h-Parameter nochmal und was bedeuten die?
Der erste Parameter ist ein Theta.
Das Theta ist ein Winkel, eine Rotation um die Zi-Achse, also die
vorherige Z-Achse.
Und das Di ist eine Translation um die vorherige Z-Achse.
Und nachher wird es ganz wichtig sein, also Theta und D gehen immer um
die alte Z-Achse, bevor man die Transformation anwendet.
Und dann haben wir nochmal ein ähnliches Pärchen.
Wir haben eine Translation um die Xi-Achse, das nennen wir A.
Und eine Rotation Alpha um die Xi-Achse.
Und hier steht nicht mehr "-1", das heißt, es geht hier um oder
entlang der neuen X-Achse.
Und mit der kurzen Wiederholung wollen wir das mal versuchen
anzuwenden.
An einem einfachen Beispiel.
Einfach, weil wir jetzt hier zwei der Parameter sind quasi Null.
Wir wollen uns die trotzdem angucken.
Also Theta 1 ist gleich Null.
Theta 1 dreht um die Z-Achse.
Da wir nichts zu tun haben bei der Rotation, können wir es bei diesem
aktuellen Stand belassen.
Dann müssen wir entlang...
D1 ist eine Translation entlang der alten Z-Achse.
Also hier Z0.
Das heißt, wir verschieben hier entlang dieser Achse.
Mit D1 gleich 60 mm.
Mache ich es mal einfach irgendwo hin.
Und dann haben wir unser neues Koordinatensystem hier.
Was wichtig ist, nach der Rotation um Theta ist die X1-Achse schon die
neue Achse.
Die anderen beiden Achsen sind aber noch in einem Zwischenzustand und
werden nochmal rotiert später.
Wir müssen jetzt aber erstmal um A1 verschieben.
A1 verschieben wir entlang der neuen X-Achse.
Das ist X1 hier.
Also diese Achse hier.
Da wir aber Null haben, müssen wir nichts verschieben.
Wir sehen das vielleicht im nächsten Beispiel dann deutlicher, wenn
das kombiniert wird.
Und dann kommen wir zum letzten.
Das Alpha 1 ist jetzt eine Rotation um die X-Achse.
D.h.
um diese Achse rotieren wir um 180°.
D.h.
wenn wir hier um 180° rotieren, dann kommt unsere Z-Achse nach hier
hin.
Das ist Z1.
Und unsere Y-Achse rotiert auch um 180°.
Das ist Y1.
Und das ist jetzt natürlich so ein bisschen hingekrakelt.
Ich habe es auch nochmal auf den Folien zusammengefasst.
Also erst um Z0 rotieren.
Da passiert jetzt hier nichts.
Dann das System verschieben um D1.
Dann verschieben um A1 entlang der neuen X-Achse.
Es passiert in dem Fall nichts.
Und dann die letzte Rotation um Alpha 1.
Und dann haben wir hier unser neues Koordinatensystem, wie wir es eben
aufgemalt haben.
Also das war im Grunde mal ein einfaches Beispiel, wo zwei Parameter 0
sind.
Die zweite Aufgabe ist dann absichtlich so gewählt, dass alle
Parameter da sind.
Und schauen wir uns mal an, was mit dem Koordinatensystem dann
passiert.
Wir müssen wieder um die Z-Achse rotieren.
In die Richtung um 90°.
Wenn wir hier unser X um 90° rotieren, dann landet es genau da, wo
vorher Y0 war.
Das heißt hier ist X0'.
Wenn wir Y rotieren, dann landet es hier.
Das ist Y0'.
Das heißt, damit haben wir diese Rotation um den Theta-Winkel, die
alte Z-Achse, durchgeführt.
Dann müssen wir verschieben entlang der Z-Achse.
Hier jetzt in Minusrichtung, also nach unten hin.
Wir verschieben also das ganze System nach ungefähr hier hin.
Ich mache das jetzt mal nicht maßstabsgerecht.
Und dann ist unser System jetzt hier.
Wir haben hier unsere Z-Achse, unsere Y-Achse.
Nachdem wir um den Theta gedreht haben, wissen wir, dass das hier
schon die wirkliche X1-Achse ist.
Das ist die einzige, die wir schon kennen.
Dann müssen wir verschieben entlang der neuen X-Achse.
Die neue X-Achse zeigt in diese Richtung, das heißt wir müssen uns
hier entlang bewegen.
Doppelt so lang wie vorher, aber ich habe natürlich nicht so viel
Platz.
Also das hier ist die Verschiebung um 60 mm.
Und wir sind jetzt erstmal in dieser Form hier, bei der wir hier
wieder wissen, das ist X1.
Wir wissen, das hier sind wieder diese noch nicht richtigen Y- und Z
-Achsen.
Und dann müssen wir ein letztes Mal um Alpha1-90° um die X-Achse.
Das heißt so rum, aber Minus.
Das heißt, das Ganze geht in diese Richtung.
Was dann passiert ist, dass die Z-Achse runterklappt.
Hier Z1, die Y-Achse hier runterklappt.
Y1 und das X war ja von vornherein schon richtig.
Das heißt in diesem Beispiel haben wir jetzt alle vier DH-Parameter
angewendet und haben ein neues Koordinatensystem bestimmt.
Wie vorhin habe ich das Ganze natürlich auch nochmal hier sauber auf
den Folien aufgemacht.
Das heißt, wir rotieren erst um Theta in die Z-Achse, die alte,
bekommen ein neues Koordinatensystem, müssen dann die 30 mm nach unten
verschieben.
Dann können wir entlang der neuen X-Achse um A1 verschieben, die 60
mm.
Dann müssen wir nochmal um X1 drehen, minus 90 Grad.
Und dann haben wir unser neues Koordinatensystem, wie wir es eben
gesehen haben.
Genau, also das war im Grunde so, wie man die H-Parameter anwendet an
einem einfachen Koordinatensystem, wenn man sie gegeben hat.
Und die nächste Aufgabe geht so ein bisschen in die Richtung, wir
haben eine schematische Zeichnung von dem Arm von Arma 4.
Und wir wollen die H-Parameter von diesem Arm bestimmen.
Das ist so ein bisschen problematisch, weil es gibt da immer so ein
bisschen Doppeldeutigkeiten, weil in dieser schematischen Zeichnung
nicht definiert ist, wie die Koordinatensysteme nachher aussehen
sollen.
Das heißt, wenn ihr das nachher macht, müsst ihr nicht unbedingt
dieselben Parameter aushaben, die wir in der Musterlösung haben.
Und diese Zeichnung ist so aufgebaut, dass wir acht Gelenke haben.
Die sind hier.
Und wir sehen den ganzen Arm auch nochmal von der anderen Ansicht.
Das ist nachher wichtig, weil wir hier noch so einen Versatz von 10 mm
haben, den wir einbauen wollen.
In dieser Übung gehen wir nur bis zum fünften Gelenk, machen das
einmal durch, wie man die H-Parameter für diesen Arm bestimmen könnte.
Und haben dann nachher eine Tabelle mit den Werten, die auch in der
Lösung drin sind.
Unser Basis-Koordinatensystem ist hier in dem Clavicular-Gelenk von
dem Roboter.
Das ist hier, diese Rotation.
Und mit dem wollen wir anfangen.
Die Gelenke.
Und wir machen nur die ersten fünf.
Was man jetzt hier sieht, ist dieses Koordinatensystem.
Im Moment, wo wir starten, hat die Z-Achse nach oben hin, also schon
in die richtige Richtung.
Die Y-Achse nach links hin.
Und die Z-Achse zeigt hier in das Bild hinein.
Das ist mit diesem X hier gemeint.
Und das Ganze sehen wir im Grunde ein bisschen schematisch hier unten
dargestellt.
Also das X geht hinein in die Bildebene, das Z nach oben, das Y nach
links.
Und da das hier ein Gelenk ist, ist diese Rotation um die Achse eine
Variable.
Also Theta 1.
Also die kann irgendwelche Werte annehmen, die den Gelenkwinkelgrenzen
des Roboters drin sind.
Trotzdem müssen wir aufpassen.
Es ist manchmal notwendig, hier so ein Offset einzuführen.
Also wo 0 ist, was 0 bedeutet, wenn Theta 1 0 ist.
Damit wir nachher die Koordinatensysteme richtig drehen müssen.
Und was wir hier nämlich machen ist, in diesem Fall kein Offset zu
setzen.
Also im Grunde hier 0, ist das richtig?
Und D und A sind hier auch 0.
Das ist ein bisschen seltsam, weil hier sieht es so aus, als hätte man
hier einen Abstand zwischen diesem Gelenk und dem zweiten Gelenk.
Das liegt aber an dieser schematischen Darstellung.
Den wirklichen Abstand hat man nur hier, die 200 mm.
Man hat es hier gemalt, damit man sieht, dass es zwei Gelenke sind.
Das bedeutet aber, dass diese beiden hier ein einzelnes...
die sind im Grunde nur am Nullabstand, sind am selben Ort, greifen am
selben Ort an.
Und was wir jetzt machen müssen, bei der Rotation mit dem Alpha, ist,
wir müssen unsere Z, also dieses hier ist ja eine...
die Rotationsachse von diesem Gelenk ist hier.
Das heißt, wir brauchen unsere Z-Achse nachher wieder an dieser
Stelle.
Das heißt, wir müssen eine Rotation hier machen, um die X-Achse, damit
unsere Z-Achse in diese Richtung zeigt.
Weil der Theta-Winkel, um den wir rotieren, ist ja immer nachher um
die alte Z-Achse.
Das heißt, wir machen hier das.
Und was wir wissen, ist, dass dieser kleine Teil hier 15° ist.
Das steht hier ja.
Und wir wissen, dass das insgesamt 90° sind.
Das ist der Grund, warum wir hier 90° minus 15° nehmen.
Und das ist im Grunde die Verschiebung hier um die 75°, die wir jetzt
hier eingetragen haben.
Wenn wir das anwenden, diese DH-Parameter, dann bekommen wir unser
neues Koordinatensystem X1.
Das ist jetzt hier, wie gesagt, die Z-Achse muss hier in diese
Richtung, in die Richtung der Rotationsachse zeigen, von dem neuen
Gelenk.
Und wir sind hier jetzt etwas schief mit der Y-Achse, um eben diese
15° oder 75°, je nachdem, was man hat.
Jetzt kommt der Fall, wo es nicht funktioniert, einfach nur Theta 2
hinzuschreiben.
Wir brauchen jetzt ein Offset von 90°.
Das heißt, wenn wir Theta 2 gleich 0 setzen, dann bedeutet das im
Grunde, dass wir schon 90° rotiert haben.
Das ist nachher wichtig, weil wir ja immer erst um die Z-Achse drehen
und danach um die neue X-Achse.
Und wenn wir vorher die Z-Achse falsch gedreht haben, dann können wir
die anderen Achsen nicht mehr richtig drehen, wenn wir nur um die X
-Achse drehen.
Das heißt, was hier passiert ist, wir können es hier sehen, hier
unten.
Wir drehen um die Z-Achse schon mal um die 90° vor.
Das heißt, in der Nullstellung sind wir quasi schon 90° gedreht.
Das führt dazu, dass die X-Achse in diese Richtung hier zeigt.
Das ist X1' und X2.
Und die brauchen wir in diese Richtung, um sie nachher wieder umdrehen
zu können.
Das ist so ein bisschen tricky, weil man immer ein bisschen
vorausschauen muss, was ist das nächste Gelenk, was kommt.
Wir haben hier jetzt tatsächlich diese 200 mm angewandt.
Und in den nächsten, das ist jetzt genau der lilane Fall hier, jetzt
wollen wir nämlich diesen Alpha-Wert um minus 90° drehen.
Und da drehen wir dann eben um die Z-Achse minus 90°.
Das heißt, wir drehen in diese Richtung.
Und wenn wir vorher nicht diesen Offset eingebaut hätten von plus 90°,
dann wäre unsere X-Achse ganz woanders und wir könnten unsere Z-Achse
nicht mehr richtig drehen.
Das ist so ein bisschen eines der Probleme, das auftreten kann, wenn
man, sag ich mal, beliebige Parameter ohne Offset vergibt.
Wir wollen nämlich hier, das Ziel ist nämlich, dass die X-Achse hier
raus zeigt, also dass es mit dieser Pfeilnotation bedeutet, im Grunde
der Pfeil zeigt auf uns zu, weil das hier eben ein Drehgelenk in der
Schulter ist, das eben hier um diese Z-Achse dreht.
Genau.
Wir müssen weitermachen und zwar mit dem Gelenk.
Wir haben jetzt hier wieder ein interessantes Offset von minus 105°.
Das kommt zustande, weil wir jetzt hier unsere Achse hierhin drehen
wollen.
Wir wollen, unsere X-Achse soll hierhin zeigen.
Und dadurch, dass wir am Anfang so ein bisschen diese Schräge hier
eingeführt haben, sind das hier die 90°, die man kippen will, plus die
15° Schräge, die wir wieder ausgleichen müssen.
Dann sind wir bei unseren 105°.
Und hier ist es jetzt wieder der Fall, wir wollen unsere neue X-Achse
in diese Richtung haben, damit wir unser Z runterkippen können.
Hier kann man das, glaube ich, am besten sehen.
Wir brauchen nachher, unser Z muss nachher hierhin zeigen.
Es zeigt im Moment ja aus der Bildebene raus.
Und wenn nun unsere X-Achse nach rechts hin zeigt, dann können wir das
quasi umkippen, dass es nach unten zeigt.
Relativ einfach.
Und das ist eben genau diese 90° hier, die um die X-Achse rotieren.
Das führt eben dazu, dass wir es hinkriegen, dass die Z-Achse nachher
nach unten hin zeigt.
Und hier ist jetzt wieder dieser interessante Fall, dass in der
Zeichnung hier ein Abstand ist, der aber nur zeigen soll, dass es zwei
Gelenke sind.
In Wirklichkeit ist hier gar kein Abstand.
Ich hatte es ja gesagt, wir brauchen unsere Z-Achse nach unten.
Das haben wir jetzt hingekriegt, indem wir um X rotiert haben.
Und jetzt müssen wir...
Wir haben wieder diesen Fall, dass wir dieses Offset hier einführen.
Das heißt, wir rotieren um die Z-Achse.
Plus 90°.
Das heißt, wir kippen unser Koordinatensystem hier um diese Achse.
Das nachher...
Y guckt uns ja gerade an.
Wir wollen nachher, dass Y nachher hierhin zeigt.
Und X quasi an uns ran zeigt.
Wir haben hier einen Versatz von 300 mm.
Den haben wir in der Zeichnung gesehen.
Und hier sind diese 10 mm in die andere Richtung.
Gucken wir uns gleich nochmal an, wo die herkommen.
Und dann machen wir noch wieder diese Rotation um 90° um die X-Achse.
Die ihr jetzt uns selbst anguckt.
Und rotieren dann um die X-Achse 90°.
Also, dieses System wurde...
in diese Richtung um 90° gedreht.
Und ich hatte es ja gerade gesagt.
Diese 300 mm haben wir jetzt hier gefunden.
Zwischen Gelenk 4 und Gelenk 5.
Und diese 10 mm haben sich jetzt hier versteckt.
Im Versatz von dem Ellenbogen zum Ellenbogen hin.
Und die sind eben hier zu finden.
Ich hoffe, ihr habt gesehen, es ist tatsächlich ein bisschen tricky.
Weshalb wir in der Klausur, wenn wir so eine Aufgabe stellen, dann
geben wir euch nicht einfach eine leere Tabelle oder so.
Und fragen dann, füllt das alles aus?
Weil da hat man Freiheitsgrade, was man machen kann.
Und es ist extrem tricky mit diesen Offsets, wie man die richtig
wählt, damit man nachher die Koordinatensysteme hat.
Was wir in der Klausur machen werden, falls wir so eine Aufgabe
stellen, ist immer, wir füllen einfach ein paar Werte aus.
Die sind schon von vornherein ausgefüllt in dieser Tabelle.
Und ihr müsst die restlichen berechnen.
Das kann passieren.
Wenn ihr euch die Sachen im Ilias anguckt, es gibt auch schon ein paar
alte Klausuren, da gibt es ein paar Aufgaben dazu.
Das kann man sich dann bei den Musterlösungen auch anschauen.
Also, ihr werdet nie vor der Aufgabe gestellt werden, hier ist die
leere Tabelle, hier ist der Roboter und füllt das Ganze aus.
Sondern wenn, dann sind halt Parameter schon vorgegeben.
Und ihr müsst die restlichen Parameter finden.
Dann tritt dieses Problem nicht auf, dass man diese Mehrdeutlichkeiten
oder diese Offsets benötigt, selbst herausfinden muss.
Genau.
Das war im Grunde gedacht als so ein bisschen komplexeres Beispiel, wo
wir halt wirklich den Arma 4 haben.
Also das ist nicht ein ausgedachtes Beispiel gewesen, sondern es ist
die tatsächliche Konstruktionszeichnung von dem Arma 4 Arm gewesen.
Um das ein bisschen genauer mal zu berechnen und dann auch wirklich in
Kinematik mit Jacobi-Matrix und Geschwindigkeiten zu kommen, haben wir
ein wesentlich einfacheres Beispiel genommen.
Das ist die Aufgabe 3, wo es einen einfachen Turmdrehkran gibt.
Und dieser Kran, der kann sich um seine Basis drehen.
Also er hat ein Drehgelenk an der Basis, in dem er sich frei drehen
kann, also keine Gelenkwinkelgrenzen.
Und er kann diesen Kran nach vorne und hinten ziehen, also den Abstand
hier hinten kann er vor- und zurück machen.
Und er kann den Aushang hier runterlaufen lassen.
Das ist ein zweiter Parameter.
Und die Parameter haben auch in der Aufgabe gewisse Grenzen.
Okay, drehen können wir so viel wie wir wollen.
Wir wissen, dass wir hier im Bereich 2 bis 15 Meter kommen können.
Und hier können wir bis zum Boden kommen.
Also da können wir 0 bis 20 Meter runterlaufen.
Also ein einfaches Beispiel.
Quasi ein Roboter, der besteht aus einem Drehgelenk und zwei
Schubgelenken, also Lineargelenke.
Wir wollen die dh-Parameter bestimmen und dann nachher die
Transformationsmatrizen bestimmen.
Um das zu machen, haben wir hier jetzt auch schon, im Gegensatz zum
vorherigen Beispiel, sind hier jetzt die Zielkoordinatensysteme schon
vorgegeben.
Also 0, Y1, also das 0.
Koordinatensystem, das 1.
Koordinatensystem, das 2.
und das 3.
Und dadurch, dass wir wissen, wie die nachher rotiert sein müssen,
haben wir nicht das Problem wie beim Arma-4-Arm, dass wir nicht genau
wissen, wie wir rotieren müssen.
Genau.
Und was wir hier jetzt machen, ist einmal die dh-Parameter wieder
bestimmen.
Jetzt ein bisschen einfacher.
Das heißt, wir haben jetzt hier den Fall, dass wir diesen minus 90
Offset haben.
Das heißt, hier in diese Richtung.
Das machen wir wieder, damit wir nachher um diese X-Achse hier
rotieren können.
Die ist uns wieder wichtig.
Wir haben hier in der Höhe die 20 Meter.
Und wenn wir dieses neue Koordinatensystem nach oben verschieben, dann
ist unser X1 natürlich nach der Rotation schon richtig.
Und das hier ist erstmal unser Y0 Strich.
Und nach oben hin zeigt unser Z0 Strich.
Und um das Ganze jetzt in diese gewünschte Form zu bringen, das ist
der Grund, warum dieses Beispiel jetzt einfacher ist, wir wissen, wie
das Koordinatensystem nachher aussehen soll, müssen wir jetzt um die X
-Achse rotieren.
Also hier, diese hier.
Also um die X-Achse rotieren.
Und was wir wollen, ist im Grunde dieses hier runterklappen.
Also das Y0 hier hin runterklappen und das Z0 hier hin runterklappen.
Und wie wir sehen, geht das gegen die Drehrichtung rechtshändig davon.
Das heißt, wir bekommen hier ein minus 90 Grad, wenn ich es richtig
gemacht habe.
Und wir haben auch keine Verschiebung, weil wir davon ausgehen, dass
die beiden Systeme so sind.
Genau.
Und damit haben wir im Grunde den ersten Satz dieser dh-Parameter
bestimmt.
Und im nächsten Satz gibt es ja jetzt keine...
Das ist eines der wichtigen Dinge.
Das Theta ist ja jetzt nicht mehr variabel.
Das heißt, das hier war ja ein Drehgelenk, das 0.
Und das hier ist ein Translationsgelenk.
Das heißt, was hier reinkommt, ist ein zweiter Parameter.
Das ist immer so irgendwie eines der Probleme in den Aufgaben, wenn
wir das stellen, herauszufinden, was sind die Variablen und was sind
die fixen Parameter im dh-Bereich.
In diesem Beispiel ist es ja so, dass wir uns hier beliebig um die
Basis des Turms drehen können.
Wir können diesen Teil hier ausfahren und wir können diesen Teil hier
ausfahren.
Und das sind eben Parameter vom Zustand des Krans.
Und diese haben auch einen Wertebereich.
Also wir können das hier 2 bis 15 Meter ausführen, ausfahren.
Das können wir auch hier eintragen.
Genau.
Und wenn wir das hier machen, also wir verschieben mal und wir
rotieren nicht, dann haben wir hier unser neues, erstmal verschobenes
Koordinatensystem.
Also ich verschiebe jetzt nur das Koordinatensystem hier nach hier
hin, ohne zu drehen.
Dann habe ich hier meine Z1-Koordinate.
Ich habe hier meine Y1-Achse.
Und die X-Achse ist ja schon richtig, das wissen wir.
Das müssen wir ja immer so drehen.
Und was wir jetzt noch machen müssen, damit es richtig ist, ist eben
um die X-Achse drehen.
Das heißt, wir sind hier und wir wollen, dass unsere Y-Achse hier
hinkommt und unsere Z-Achse hier hinkommt.
Und das ist wieder entgegen der eigentlichen Drehrichtung vom
rechtshändigen Koordinatensystem.
Das heißt, wir haben hier wieder eine minus 90 Grad.
Und in diesem Beispiel ist es immer so gewählt, dass A null ist, weil
das nächste Koordinatensystem ist immer direkt an dieser Stelle.
Genau.
Und der letzte Fall ist sogar noch einfacher.
Das heißt, wir können hier unseren D3-Parameter, der ist ja im Bereich
von 0 bis 20 Meter, den können wir schon eintragen.
Und wir sehen auch, das Koordinatensystem hier ist gleich dem
Koordinatensystem von hier.
Das heißt, alle unsere anderen Parameter sind auch null.
Das passiert oft beim letzten Gelenk, wenn man da nicht ein spezielles
Koordinatensystem haben will.
Und mit diesem relativ einfachen Beispiel wollen wir jetzt ein paar
Dinge ausrechnen.
Also was hervorzuheben ist, wir haben jetzt hier die variablen
Parameter, Theta 1, D2 und D3.
Und die beschreiben im Grunde den Zustand des Krans.
Wenn wir den Zustand als Q bezeichnen, jetzt nicht als Quaternion, was
wir gerade hatten, sondern Q wird oft benutzt als
Zustandsbeschreibung, dann kann man den kompletten Zustand des Krans
als eben Triple beschreiben, Theta 1, D2 und D3.
Genau.
Und was wir machen wollen in der nächsten Aufgabe, beim nächsten
Aufgabenteil, ist die Transformationsmatrizen von den einzelnen
Koordinatensystemen berechnen, von den einzelnen Gelenken, wenn man so
will, auf Basis von den dh-Parametern.
Also wir haben diese Tabelle und wir wollen Transformationsmatrizen
berechnen.
Unser Ziel ist im Grunde die Transformationsmatrix zum Endeffektor zu
berechnen.
Ich mache es mal so, wie wir es immer gemacht haben.
Also vom Basiskoordinatensystem zum Endeffektor.
Der Endeffektor ist der Schlussteil vom Kran, das nach unten zeigt.
Und ich nenne das jetzt einfach mal T03, also vom 0.
Koordinatensystem ins 3.
Koordinatensystem.
Und wir werden das ausrechnen, indem wir die einzelnen
Transformationsmatrizen der Gelenke berechnen.
Also diese hier können wir für jedes einzelne Gelenk berechnen.
Dann multiplizieren wir sie zusammen und dann haben wir das Ergebnis,
also eine Transformationsmatrix.
Also das hier ist eine 4x4-Matrix, also eine homogene
Transformationsmatrix.
Ich habe es hier nochmal reingepastet.
Es ist jetzt auch nicht so wichtig.
Aber wenn man die h-Parameter hat und man möchte die 4x4-Matrix
berechnen, dann kann man eben diese Formel hier benutzen.
Also es ist einmal ausmultipliziert, die einzelnen Teile, Rotation,
Translation, Translation und Rotation.
Das Ganze habe ich dann jetzt hier auch einmal gemacht.
Also im Grunde eingesetzt und soweit vereinfacht, wie man vereinfachen
könnte.
Für Gelenk 1 haben wir hier die Sinus- und Cosinus-Thermen drin,
Gelenk 2 die D2-Thermen und Gelenk 3 die D3-Thermen.
Also die Transformationen sind immer abhängig von den einzelnen Gelenk
-Parametern.
Also jeder einzelne.
Das ist von 0 zu 1, also bei der Drehung.
Das von 1 zu 2 ist der obere Teil des Krans und von 2 zu 3 ist der
Teil vom Kran, der dann nach unten geht.
Und wenn wir das Ganze zusammen multiplizieren, okay, das ist jetzt
auch wieder nur mühselig einmal ausrechnen.
Ich habe jetzt hier die ersten beiden Matrizen zusammen multipliziert.
Wir bekommen dann ein Ergebnis raus und dann multiplizieren wir die
letzten zusammen.
Und diese Matrix, das ist ja die letzte, die im Grunde den Schlussteil
des Krans nach unten bewegt.
Weil wir dann eben ein anderes Koordinatensystem haben, entsteht hier
diese Minus-D3.
Also Plus-D3 würde keinen Sinn machen, das würde bedeuten, dass der
Kran nach oben hin fährt.
Deshalb haben wir hier die einzige Änderung, die bei der
Multiplikation passiert ist, dass Minus-D3 hier reinkommt.
Genau, also diese Transformationsmatrix ausrechnen ist einfach nur so
ein bisschen stumpf ausrechnen, sag ich mal, die Formel einsetzen.
Das Interessante ist, was wir dann mit dieser Transformationsmatrix
machen können.
Und das ist eben der Teil der Aufgabe, der jetzt so ein bisschen von
diesen DH-Parametern weggeht und wirklich in die Kinematik reingeht.
Wir wollen jetzt die Jacobi-Matrix berechnen von dem Endeffektor.
Und die Jacobi-Matrix ist im Allgemeinen definiert als die partielle
Ableitung nach den einzelnen Parametern des Systems.
Ja, also hier, das ist die ganz allgemeine Formel.
Und die ist am Ende eine 6-Kreuz-N-Matrix, also in unserem Fall, wenn
wir über die Kinematik reden.
Das liegt daran, dass wir sechs Freiheitsgrade im Raum haben, also
drei für Position, drei für Orientierung und unser System N-Parameter
hat.
Das ist ein bisschen abstrakt, aber wenn wir das für unser System
hinschreiben, also unseren Kran, dann besteht unsere Jacobi-Matrix aus
drei Spalten.
Also wir haben Teta1, das ist die Basis des Krans, um den wir drehen.
Wir haben unseren zweiten Parameter, unser D2 und unser D3.
Ja, also wir haben drei Spalten, sechs Zeilen.
Das heißt, diese Jacobi-Matrix in unserem Beispiel ist eine 6-Kreuz-3
-Matrix.
Und was wir jetzt machen wollen, ist, diese Matrix auszurechnen.
Ich habe jetzt einfach dieses DF hingeschrieben.
Was ist dieses F überhaupt?
F ist die, wenn man so will, die Vorwärtskinematik, die uns aus dem
Zustand des Roboters, also in unserem Fall Teta1, D2 und D3, die
Position des Endeffektors berechnet.
Position und Orientierung.
Weshalb hier XY und Alpha, Beta und Gamma sind.
Genau, wie machen wir das?
Ich habe hier nochmal die Transformationsmatrix hingeschrieben, die
haben wir nicht ohne Grund vorhin ausgerechnet.
In dieser 4-Kreuz-4-Matrix findet man die Position des Endeffektors in
diesen drei Werten.
Also das ist ja die vierte Spalte, die im Grunde die Translation
enthält.
Und die Rotation ist leider nicht so einfach enthalten.
Die müssen wir bestimmen aus der Rotationsmatrix.
Also wenn ihr euch erinnert, dieses T hat ja die Form Rotation 0,
Translation 1.
Das ist genau das, was wir uns zunutze machen wollen.
Und für XYZ können wir im Grunde die Position des Endeffektors schon
hinschreiben.
Das ist nichts anderes als Abschreiben.
Ja, ist einfach nur abgeschrieben, nichts wildes dabei.
Hier nochmal auf der Folie, also die drei Werte sind unsere XYZ
-Position des Endeffektors.
Und dann müssen wir noch die Winkel berechnen.
Und das habt ihr, also wir machen das jetzt hier nicht ausführlich,
aber in der mathematischen Grundlagen in dem Übungsblatt 1 gab es
schon eine Aufgabe, in der Translations- und Rotationsdifferenz
ausgerechnet werden sollte zwischen zwei Transformationsmatrizen.
Und genau diese Formeln wenden wir jetzt an.
Also man kann mit trigonometrischen Funktionen auf Basis von einigen
Elementen der Rotationsmatrix die drei Winkel berechnen.
Und das machen wir jetzt hier.
Wir wählen eben die einzelnen Elemente der Matrix, die wir brauchen,
so aus, dass wir nicht in das Problem kommen, dass irgendwas
undefiniert ist.
Alpha und Beta sind bei uns immer 0, interessanterweise.
Wir werden nachher noch sehen, warum das auch so ist.
Und unser Gamma, der letzte Winkel, bei dem kriegen wir eben diese
beiden Thermien rein, unser Cosinus und Sinus.
Und hier können wir eben benutzen, dass, wenn man alle Wertebereiche
einhält, dass Tangens von x gleich Sinus von x durch Cosinus von x
ist.
Wenn wir das hier anwenden, dann kriegen wir eben als Ergebnis hier
den Fall, dass wir die Umkehrfunktion auf die normale Funktion
anwenden.
Und wie gesagt, solange wir die Wertebereiche einhalten, kriegen wir
dann hier ein relativ einfaches Ergebnis für unseren letzten Winkel.
Genau, damit haben wir jetzt aber nur die Vorwärtskinematik einmal
quasi explizit hingeschrieben, für den Kran, für den Endeffektor vom
Kran.
Was wir jetzt machen wollen, ist aus diesen, diese Werte hier
benutzen, die wir haben, um diese partiellen Ableitungen zu berechnen.
Ja, das ist einiges an Arbeit, aber schauen wir mal.
Genau, wie kann man diese hier explizit hinschreiben, also die erste
Spalte, in der wir nach Theta 1 ableiten?
Das Einzige, was wir tun müssen, ist alle Parameter x, y, z, Alpha,
Beta, Gamma zu nehmen und partiell nach Theta 1 abzuleiten.
Ja, und dann haben wir die einzelnen Elemente dieser Spalte.
Genau, und das machen wir dann auch.
Und interessanterweise stellen wir fest, dass die Funktionen nicht so
kompliziert sind.
Das heißt, wir haben jetzt hier unser x, das habe ich jetzt mal hier
hingeschrieben.
Wir haben Minus Sinus Theta 1 minus 90 Grad mal D2.
Wenn wir das ableiten, dann die Ableitung vom Sinus ist einfach nur
der Cosinus mal D2.
Wenn wir nach y gehen, dann müssen wir Cosinus ableiten.
Das heißt, wir kriegen Minus Sinus daraus von Theta 1 minus 90 Grad
mal D2.
Und der letzte, der z, ist noch einfacher, weil hier gar kein Theta
drin vorkommt.
Also dieses 0 ist unabhängig von Theta.
Und die Winkel, stellt sich heraus, sind noch viel einfacher.
Wir hatten es eben ja gesehen, Alpha und Beta haben nie einen Wert.
Sind immer 0, das heißt, die Ableitung von 0 ist auch 0.
Und die Ableitung von Gamma, Theta 1 minus 90 Grad, ist ja einfach nur
eine lineare Funktion.
Da kommt also 1 raus.
Und damit können wir im Grunde die Funktion, also die partielle
Ableitung, jetzt komplett hinschreiben.
Das heißt, wir nehmen die partielle Ableitung nach x, die partielle
Ableitung nach y, nach z ist 0, nach Alpha ist 0, nach Beta ist 0 und
nach Gamma ist 1.
Und dann müssen wir das Ganze noch transponieren, damit es die
richtigen Dimensionen hat.
Genau, also das ist im Grunde eine von diesen Spalten der Jacobi
-Matrix, die nach Theta 1.
Genau, und das müssen wir für die anderen Spalten genauso machen.
Das heißt, jetzt müssen wir nach D2 ableiten.
Fangen wir wieder mit x an.
D2 steht hier, ja.
Das ist im Grunde auch nur eine lineare Funktion, also beim partiellen
Ableiten, das wisst ihr sicherlich, sind alle anderen Werte konstant.
Nur die, nach der man ableitet, ist wichtig.
Das heißt, hier kommt einfach Sinus von Theta 1 minus 90 Grad raus,
dass D2 verschwindet.
Dasselbe passiert eben für unser y,
dass Theta 2 verschwindet.
Und hier ist es noch einfacher.
Fast alle anderen Werte sind unabhängig von D2.
D2 kommt gar nicht drin vor.
Das heißt, die sind alle Null, ja.
Also nur die ersten beiden haben überhaupt einen Wert.
Genau.
Die dritte Spalte ist noch viel einfacher.
Ich habe jetzt mal hier nur das Z hingeschrieben, weil das der einzige
Wert ist, der D3 enthält.
Und der enthält D3 auch in einer Form, in der es nur linear ist.
Das heißt, wir haben hier minus D3.
Das heißt, hier kommt minus 1 raus.
Alle anderen enthalten D3 gar nicht, sind also Null.
Das heißt, diese Spalte ist relativ einfach aufgebaut.
Und wenn wir jetzt diese drei Spalten ausgerechnet haben, können wir
sie einfügen.
Und das ist im Grunde unsere Jacobi-Matrix für den Enddefektor von
diesem Kran.
Wir sehen, dass die Jacobi-Matrix abhängig ist von D2 und von Theta1,
aber vollkommen unabhängig von D3.
Der Zustand von D3 spielt keine Rolle für die Jacobi-Matrix.
Das ist ein interessantes Detail.
Genau.
Was können wir jetzt mit dieser Jacobi-Matrix anfangen?
Wir haben sie jetzt ausgerechnet.
Wir wollen jetzt etwas damit tun.
Und deshalb gibt es diese dritte Aufgabe.
Was wir hier gegeben haben, ist ein Zustand vom Kran.
Ich hatte es eben schon angedeutet.
Diese oft als Q bezeichnet.
Zustand vom Kran besteht aus Theta1, D2 und D3.
Das ist der Zustand, in dem der Kran sich gerade befindet.
Die Jacobi-Matrix ist ja abhängig vom Zustand des Krans.
Und was wir hier gegeben haben als P1, ist hier bezeichnet als
Gelenkwinkelgeschwindigkeit.
Man muss ein bisschen aufpassen.
Wir werden das nachher in Dynamik auch noch ein bisschen genauer
machen.
Was hier Gelenkwinkelgeschwindigkeit heißt...
Der erste Parameter ist die Geschwindigkeit von Theta1.
Wenn ich mal hinschreibe, welche Einheit das hat, dann sind das Radian
pro Sekunde.
Das ist eine tatsächliche Winkelgeschwindigkeit.
Und die anderen beiden, diese beiden hier, das ist die
Geschwindigkeit, mit der sich D2 ändert.
Und die haben ja dieselben Einheiten D2 und D3.
Das sind Meter pro Sekunde, nur damit man sich das vorstellen kann.
Wenn wir hier Gelenkwinkelgeschwindigkeit schreiben, dann meinen wir
das im generalisierten Sinne.
Ich nehme das einfach mal so ein bisschen vorweg.
In der nächsten Vorlesung machen wir, glaube ich, Dynamik.
Da lernt ihr dann so Konzepte kennen wie generalisierte Koordinaten,
generalisierte Kräfte.
Und das ist eben der Fall, dass man diese Einheiten oft zusammenpackt.
Also es ist ein bisschen seltsam, dass wir hier diesen Vektor haben,
der im ersten Element eine wirkliche Winkelgeschwindigkeit hat und im
zweiten eine lineare Geschwindigkeit.
Aber das wird nachher relativ oft vorkommen, dass wir solche
Konstrukte benutzen.
Aber das können wir erstmal ignorieren, da kommt ein bisschen mehr zu.
Das ändert auch an der Mathematik nichts, also wir können das einfach
ausrechnen.
Das wollen wir jetzt auch mal machen.
Also wie machen wir das?
Wir wollen die Geschwindigkeit vom Enddefektor, also im ganz normalen
Arbeitsraum, also wie schnell bewegt er sich in XYZ-Rechnung und wie
schnell dreht er sich.
Und das machen wir, indem wir die Jacobi-Matrix evaluieren an unserem
speziellen Zustand Q1 und einfach multiplizieren mit dieser
generalisierten Gelenkwinkelgeschwindigkeit.
Und was muss man dafür tun?
Ja, man muss die Jacobi-Matrix evaluieren an diesem speziellen
Zustand.
Dafür schaut man sich an, welche Parameter man braucht.
Ich hatte es gesagt, die ist unabhängig von D3.
Das heißt, wir müssen Theta 1 und D2 einsetzen.
Das können wir machen.
Und dann kriegen wir eine Matrix raus, die einfach nur eine 6x3-Matrix
mit reellen Zahlen ist.
Also was ganz Einfaches.
Jacobi-Matrix hört sich oft immer relativ kompliziert an, man muss
partielle Ableitungen berechnen, das ist irgendwas Abstraktes.
Aber am Ende des Tages, wenn man einen konkreten Zustand vom Roboter
hat, ist die Jacobi-Matrix einfach nur eine 6xn-Matrix mit konkreten
Werten.
Wir machen jetzt diese Multiplikation.
Also einfach nur Standardmultiplikation, Zeile mal Spalte.
Und da bekommen wir dann eben jetzt einen 6-dimensionalen Vektor raus.
Und diesen Vektor würde ich gerne ein bisschen erläutern, dass man
sich darunter was vorstellen kann.
Das ist für einige wahrscheinlich relativ klar.
Aber überlegen wir mal, wie sieht unser Kran gerade aus.
Unser Kran befindet sich gerade in einem Zustand, in dem er um 90 Grad
gedreht ist.
Das ist der Zustand des Krans.
Und er ist um 10 Meter ausgefahren.
Und das hier ist unser Endeffektor.
Ich zeichne den Kran hier von oben.
Angenommen, wir hätten ein Koordinatensystem, das irgendwie so
aussieht.
Hier geht x hin, hier y und z zeigt in unsere Richtung.
Was bedeutet jetzt eigentlich dieser Vektor?
Das sind jetzt erstmal nur Zahlen, aber wir können das natürlich
interpretieren.
Diese minus 10, das ist die Geschwindigkeit in x-Richtung, das in y
-Richtung, das in z-Richtung.
Das kann ich einzeichnen.
Das heißt, wir haben eine relativ große Geschwindigkeit in die minus x
-Richtung, also nach links hin, 10 Meter pro Sekunde.
Und eine Geschwindigkeit nach vorne hin, in die y-Richtung.
Jetzt mal hier nicht maßstäblich gemalt.
Was bedeutet das?
Hätten wir das auch so herausfinden können?
Was hier der Fall ist, wir drehen uns ja mit einem Rad pro Sekunde in
diese Richtung.
Der Kran dreht sich gerade hier mit einem Rad pro Sekunde in diese
Richtung.
Und diese minus 10, die wir in die x-Richtung sehen, die kommen
einfach daher, dass wir gerade hier 10 Meter ausgefahren sind und uns
in diese Richtung bewegen.
Das ist im Grunde die Tangentialgeschwindigkeit, ja, entlang dieser
Kreisbahn, die der Kran gerade macht.
Das ist diese minus 10 hier.
Und die 1, ich habe sie jetzt hierhin gemalt, ich hätte sie besser
hierhin malen sollen.
Das ist einfach nur die Geschwindigkeit, mit der der Kran gerade hier
rausfährt.
Daher kommt diese 1.
Also es ist gar nichts, irgendwas Kurioses.
Und die minus 1, die kommt daher, dass der Kran gerade nach unten
fährt.
Also die positive D3-Richtung heißt ja, zum Boden hin.
Das heißt, dieses Ergebnis, wir haben noch einen noch nicht erklärt,
ja, diese 1 hier.
Die kommt, das ist die Änderung von Gamma.
Das heißt, dass sich unser Endeffektor bewegt sich gerade mit einem
Rad pro Sekunde, dreht sich gerade mit einem Rad pro Sekunde.
Aber das ist ja klar, weil unser Kran sich mit einem Rad pro Sekunde
dreht, ja.
Also dieses Ergebnis hätten wir auch ausrechnen können, ohne die
Jacobi -Matrix zu benutzen und hätten uns einfach das quasi
geometrisch angeschaut, was passiert gerade mit dem Kran.
Das Gute an dieser Jacobi-Matrix ist, dass ich diesen Wert ausrechnen
konnte, ohne das alles zu beachten.
In dieser Jacobi-Multiplikation steckt die komplette Kinematik von dem
Kran schon drin.
Das heißt, ich muss gar nicht wissen, okay, dieses Gelenk ist von dem
abhängig und wenn ich so drehe, dann kriege ich eine Geschwindigkeit
in X-Richtung und so weiter.
Und das ist eben das Schöne an der Jacobi-Matrix, deshalb wollte ich
das mal eben zeigen, was dieser Wert hier bedeutet.
Ja, genau.
Und wir haben davon noch ein paar mehr Aufgaben.
Das heißt, was jetzt hier passiert in der zweiten Aufgabe, ist, wir
haben denselben Zustand wie vorhin, aber ein anderes P2.
Ja, das heißt, wir müssen gar nicht die Jacobi-Matrix neu ausrechnen,
sondern wir haben das Ergebnis schon und wir können einfach die
Multiplikation mit den neuen Gelenkwinkelgeschwindigkeiten
durchführen.
Was das bedeutet ist, dass wir, wenn wir irgendwie in einem festen
Zustand vom Roboter sind, können wir verschiedene Geschwindigkeiten
ausprobieren, ohne dass wir irgendwelche komplexen Evaluationen machen
müssen.
Also angenommen, ich will jetzt mit so und so viel Geschwindigkeit das
Gelenk drehen, was passiert dann mit dem Endeffektor?
Mit der gleichen Matrix können wir das tun.
Das nächste Beispiel geht dahin, einen anderen Zustand zu haben.
Wenn wir einen anderen Zustand vom Roboter haben, dann müssen wir
natürlich die Jacobi-Matrix neu evaluieren.
Das heißt, wir müssen wieder die Parameter Theta1 und D2 einsetzen,
das Ganze evaluieren und wir bekommen wieder eine Matrix, die jetzt
anders ist als vorhin und können die jetzt anwenden auf
Gelenkwinkelgeschwindigkeiten.
Genau.
Und in diesem Fall kriegen wir jetzt andere Werte raus und das liegt
einfach daran, dass der Kran jetzt natürlich in einem anderen Zustand
ist.
Also der Kran ist jetzt um 180 Grad gedreht und auch nur 2 Meter
ausgefahren.
Also wenn das hier die Nullstellung vom Kran ist, haben wir uns um 180
Grad gedreht und wir sind um 2 Meter ausgefahren.
Das führt natürlich dazu, dass andere Werte rauskommen.
Das heißt, wir drehen uns jetzt auch, was wir jetzt hier gegeben
haben, ist hier eine...
Wir drehen in die negative Richtung, das heißt wir drehen in diese
Richtung, im Uhrzeigersinn mit minus einem Grad pro Sekunde.
Und was jetzt eben passiert, ist, dass diese Effekte anders sind.
Das heißt, wir haben wieder unser Koordinatensystem mit x in diese
Richtung, y in diese Richtung.
Und wenn wir in diese Richtung mit minus einem Grad drehen, dann
kriegen wir hier eine Geschwindigkeit, weil wir einen Radius von 2
Metern haben, von 2 Metern pro Sekunde.
Und das ist eben genau diese Zahl hier.
Und die 1, diese 1 hier, die kommt daher, dass wir uns gerade mit
minus 1 in die Richtung bewegen.
Minus 1 bedeutet, wir ziehen den Kran gerade ein.
Aber da wir gerade gedreht sind um 180 Grad, ist die Minusrichtung
einziehen, ist plus positiv.
Deshalb ist das hier plus 1 Meter pro Sekunde.
Genau.
Ja, wir machen das Ganze nochmal.
Wir können es auch auf eine andere Gelenkwinkelgeschwindigkeit
anwenden.
Kommen wir ein Ergebnis raus.
Was wir jetzt immer gemacht haben in den Aufgaben, ist den Kran so zu
drehen, dass er irgendwie mit den Koordinatenachsen zusammenkommt.
Also wenn ihr das mal für ein komplizierteres Beispiel durchrechnen
wollt, dann könnt ihr einen Zustand vom Kran nehmen, der im Grunde mal
in diese Richtung zeigt.
Wo man also zum Beispiel einen
Winkel von 45 Grad hat.
Dann passiert nämlich der Effekt, dass die, wenn wir uns hier
rotieren, dann haben wir eine Tangentialgeschwindigkeit, die sowohl in
X - als auch in Y-Richtung einen Effekt hat.
Dann werden die Ergebnisse ein bisschen interessanter.
Also vorher konnte man immer sehen, dass X und Y immer getrennt sind.
Das eine wird von der Rotation gefüllt, das andere von der Translation
durch den Kran.
Wenn man aber so ein Beispiel nimmt, dann könnte man das Ganze auch
einmal ein bisschen komplizierter rechnen.
Genau.
Ja.
Damit wären wir mit der Übung für heute durch, denke ich.
Genau.
Vielen Dank.