Ja, hallo, ich begrüße euch zur heutigen Vorlesung.
Wir haben das letzte Mal das Thema Repräsentationen von Positionen und
oder Translationen, Rotationen abgeschlossen und wir haben gesehen,
dass wir hier, dass wir dort unterschiedliche Möglichkeiten haben, mit
denen wir Rotationen, Translationen beschreiben, angefangen mit
Rotationsmatrizen, Translationsvektoren bis hin zu homogenen Matrizen,
auch die unterschiedlichen Varianten für die Beschreibung von
Rotationen, zum Beispiel mithilfe von Euler-Winkeln oder Rolle-Pitch
-IO -Winkeln.
Dann ganz zum Schluss haben wir Quaternionen kennengelernt, mit denen
wir sorgenlos Orientierungen interpolieren können, aber keine
Berücksichtigung von Translationen machen.
Und dann haben wir ganz, ganz zum Schluss gesehen, dass wir mithilfe
von dualen Quaternionen sowohl Rotationen als auch Translationen
beschreiben können.
Das werden wir nächste Woche natürlich in den Übungen vertiefen, das
ganze Material, was wir bis jetzt kennengelernt haben.
In der Vorlesung gehen wir heute zu einem anderen Thema, und zwar
Kinematik, das Kapitel Kinematik.
Und wenn wir über Robotermodelle immer reden, dann haben wir es immer
mit drei, die wichtigsten Modelle, zu tun.
Einmal ein sogenanntes kinematisches Modell, ein dynamisches Modell
und ein geometrisches Modell.
Und die kinematische Modellierung beziehungsweise die Kinematik, die
beschreibt für uns die geometrischen und analytischen Beziehungen der
Bewegungszustände von einem mechanischen System, also von einem
Roboter in unserem Fall.
Also das ist ja die Leere der geometrischen, analytischen Beschreibung
von Bewegungszuständen, also von Bewegung.
Die Dynamik ist die Leere der Untersuchung von Kräften und Momenten,
die bei Bewegungen von Mehrkörpersystemen auftreten.
Und die geometrischen Modelle, das ist die mathematische Beschreibung
der Form von Körpern, also wie ein Roboter aufgebaut ist, wie groß
sind oder wie breit und tief sind die einzelnen Elemente.
Das ist natürlich eine ganz wichtige Sache, die man auf der einen
Seite für Visualisierung beispielsweise in Simulationen benötigt, auf
der anderen Seite, um zu wissen, ob die Gelenke miteinander
kollidieren, wenn der Arm sich bewegt, beziehungsweise wo sind die
Gelenkgrenzen bei einer bestimmten Bewegung, denn das sind ja nicht
nur, die Armsegmente sind nicht nur Linien, sondern die haben ja eine
gewisse physikalische Ausdehnung, die natürlich durch die geometrische
Modellierung berücksichtigt wird.
Und als erstes wollen wir mit der kinematischen Modellierung anfangen,
das heißt, wir wollen sehen, wie kinematische Modelle von Robotern,
speziell Manipulatoren, aussehen.
Das ist keine Einschränkung der Allgemeinheit, das heißt, das Gleiche
ist einsetzbar, um zum Beispiel die Kinematik von einem mobilen
Roboter, also von einem Fahrzeug zu beschreiben.
Und wir wollen natürlich darauf eingehen, wie wir die Lage von dem
Endeffektor im Raum beschreiben können.
Und dazu müssen wir natürlich auch wissen, wie wir die Lage der
einzelnen Gelenke zueinander innerhalb einer kinematischen Kette
stehen.
Und dazu natürlich das Ganze, was wir gelernt haben in den bisherigen
Vorlesungen, Translationen, Rotationen und Ähnliches.
Und da werden wir hier auf eine neue Konvention eingehen, die speziell
für die Beschreibung von Transformationen zwischen Gelenken eines
Roboter -Arms entwickelt wurde, die sogenannte Deneveth-Hartenberg
-Notation, und dann auf zwei wesentliche Probleme der Kinematik, das
direkte und das inverse kinematische Problem.
Und wir werden sehen, welche Lösungsmöglichkeiten hier für diese, also
zunächst mal, was diese Probleme bedeuten und welche
Lösungsmöglichkeiten es hierzu gibt.
Und weitere vertiefen die Aspekte, zum Beispiel Singularität von einem
Roboter -Arm, die Manipulierbarkeit von einem Roboter-Arm,
beziehungsweise wie man die Erreichbarkeit von einem Roboter-Arm oder
von einem Roboter beschreiben kann.
Genau, und wir fangen heute mit einem kinematischen Modell.
Und wir wissen ja, aus der letzten Vorlesung, dass so ein
kinematisches Modell von etwas, was sich bewegt, mithilfe von einem
Graphen dargestellt werden kann.
Das ist hier das kinematische Modell von einem Menschen, zum Beispiel,
mit mehreren Freiheitsgraden, wie wir sehen.
Und die Kinematik beschreibt für uns die Bewegungszustände von diesen
Systemen.
Also, wie bewegt sich tatsächlich dieses Modell, wenn natürlich die
jeweiligen Gelenke sich verändern?
Und das ist, was wir hier betrachten.
Wie man sieht, nicht nur limitiert auf Robotik, sondern auch die
kinematische Beschreibung von Bewegungen des Menschen.
Und wenn wir das hier mal betrachten und daran denken, dass wir einen
Roboter haben wollen, der zum Beispiel Objekte manipuliert oder mit
seinem Arm zur Kante vom Tisch hier fahren kann oder seinen Arm zur
Kante des Tisches bringen soll, dann müssen wir eigentlich ganz
logisch, wenn ihr mal eure Arme bewegt und versucht, mal eine
bestimmte Position im Raum zu erreichen, dann gibt es immer, um diese
Position zu erreichen, bestimmte Gelenkwinkelstellungen von eurem Arm,
die angenommen werden müssen, damit diese Zielposition erreicht werden
kann.
Und wenn man das Ganze hier beschreiben will, das heißt, diese
Bewegungszustände bzw.
die Erhänglichkeiten von Gelenkwinkeln eines Roboterarms und wo der
Endeffektor, also die Hand, im Arbeitsraum sein soll, dann hat man es
eigentlich mit zwei Räumen immer zu tun.
Einmal ein Raum, was wir Gelenkwinkelraum nennen wollen bzw.
Konfigurationsraum, im Englischen auch Configuration Space und deshalb
wird es oft mit C bezeichnet.
Und das ist der Raum der Gelenkwinkel von diesem Roboter.
Das heißt, wenn wir hier den Arm von Arma 3 haben, der hat sieben
Freiheitsgrade.
Das heißt, wir haben Gelenkwinkelvektoren aus R7 und das ist nichts
anderes als unser Gelenkwinkelraum.
Das heißt, der Gelenkwinkelraum bzw.
der Konfigurationsraum hier ist ein Unterraum von R7.
So, und das sind die unterschiedlichen Gelenke, also z.B.
das ist hier Ellenbogengelenk,
das ist hier, also das ist Theta 4 z.B., das ist hier die Drehung um
den Unterarm, das ist Theta 5 usw.
usf.
Hier ist beispielsweise Theta 1, also wie das Gelenk sich hier in der
Schulter dreht usw.
usf.
Und damit wir mit diesem Arm irgendwo hinkommen, z.B.
an den Tisch, wie man sieht hier, das ist der Arbeitsraum, also wo der
Roboter seine Aufgaben verrichten soll, z.B.
die Küche hier, auf diesem Tisch irgendwelche Objekte manipulieren.
Das ist der karthesische Raum, den wir kennen, wo wir Objekte mithilfe
von drei Parameter für die Position und drei Orientierungen
beschreiben können mit all den Werkzeugen, die wir bis jetzt
kennengelernt haben.
So, das heißt, hier haben wir unser Koordinatensystem, sei es jetzt z
.B.
in dieser Ecke hier, x-Weltkoordinatensystem, y-Weltkoordinatensystem
und z-Weltkoordinatensystem.
Und wir haben es immer bei Bewegungen von den Armen, also um die
Bewegungszustände zu beschreiben, um z.B.
an einer Taste zu kommen, müssen wir gucken eigentlich, wie sieht die
Abbildung hier in diese Richtung aus.
Das heißt, auf der einen Seite, wenn meine Gelenkwinkelstellungen 90,
45, 90 und 13 sind, wo steht eigentlich der Endeffektor im
karthesischen Raum?
Also, wo komme ich hin auf diesem Tisch?
Das ist die eine Richtung, also wir haben die Gelenkwinkel und aus den
Gelenkwinkeln von dem Arm wollen wir wissen, wo steht der Endeffektor.
Natürlich, wenn wir eine Tasse greifen wollen, oder eine Flasche
greifen wollen, was auf diesem Tisch steht hier, dann bekommen wir
normalerweise die Position dieser Tasse mithilfe von einer Sensorik.
Das heißt, wir bekommen die Position von dieser Tasse beispielsweise
im Weltkoordinatensystem und wir müssen aus dieser xyz-Alphabet der
Gamma der Flasche, müssen wir wissen, welche Gelenkwinkel des Armes
müssen wir einstellen, damit wir dorthin gelangen können.
Das heißt, wir haben eigentlich eine Transformation in die
entgegengesetzte Richtung.
Und das zentrale Thema von diesem Kapitel Kinematik beschäftigt sich
eigentlich mit diesen zwei Abbildungsvorschriften.
Einmal die Abbildungsvorschrift vom Konfigurationsraum in den
Arbeitsraum.
Das nennen wir auch, werden wir gleich sehen, die Vorwärtskinematik.
Und zum Zweiten die Abbildungsvorschrift vom Arbeitsraum in den
Konfigurationsraum.
Und das ist ein Problem, was man in der Literatur die Inverse
Kinematik nennt.
Und wir wollen in diesem Kapitel hier sehen, wie diese zwei Probleme
zu bewältigen sind.
Denn ohne sie kann man keine Steuerung für diesen Arm realisieren, um
bestimmte Objekte zu manipulieren oder andere Aufgaben zu machen.
So, das heißt, das kinematische Modell eines Roboters beschreibt die
Zusammenhänge zwischen diesen zwei Räumen.
Einmal den Gelenkwinkelraum oder Konfigurationsraum oder Configuration
Space auf Englisch und dem Posenraum des Endeffektors im
Weltkoordinatensystem.
Man bezeichnet das als Workspace beziehungsweise auch als Arbeitsraum.
Warum brauchen wir das?
Wie ich bereits erklärt habe, wir müssen diese Zusammenhänge
verstehen, damit wir zum Beispiel Greifen manipulieren entlang
bestimmter Trajektorien oder bestimmte Trajektoren abfahren können,
zum Beispiel, um was zu reinigen oder zu schweißen oder Ähnliches.
Es ist auch sehr wichtig, dass wir diese Beziehungen kennen, damit wir
eine Erreichbarkeitsanalyse machen.
Ja, also das heißt, wenn ich jetzt stationär einen Arm hier, wenn ich
einen Roboterarm entwerfen will, der stationär hier auf diesem Tisch
ist und er soll Objekte dort manipulieren, dann kann ich natürlich
anhand von diesen Beziehungen oder diesen Analysen wissen, sind
überhaupt diese Objekte, die mich interessieren, erreichbar mit dem
Arm.
Und zwar nicht nur erreichbar einfach, dass ich sie antasten kann,
sondern vielleicht erreichbar in unterschiedlichen Orientierungen von
unterschiedlichen Seiten.
Deshalb diese Analysen oder dieses kinematische Modell ist sehr
wichtig.
Dann natürlich die Beziehungen zwischen Teilen des Körpers des
Roboters, um selbst Kollisionen auch zu identifizieren und
auszuschließen.
Und außerdem auch, wenn wir wissen, wo der Endeffektor ist bzw.
wie die ganze kinematische Kette sich bewegt bei einer bestimmten
Gelenkwinkelstellung, ja, dann wissen wir, ob das jetzt zu einer
Kollision mit der Umgebung kommt oder nicht.
Das heißt, das ist ganz zentral, wie ich erwähnt habe, um die
Steuerung von einem Roboterarm zu realisieren.
So, und die zwei Probleme, die ich erwähnt habe, sind auf der einen
Seite das Problem der Vorwärtskinematik.
Das heißt, ich kenne alle meine Gelenkwinkel oder der Roboter kennt
alle seine Gelenkwinkel.
Das ist hier der Arma 6.
Der hat acht Gelenke, also acht DOF-Arme.
Und alle diese Gelenkwinkel kennen wir.
Und die Frage ist eigentlich, wo ist jetzt der Endeffektor?
Das heißt, ich habe einen achtdimensionalen Vektor der Gelenkwinkel
und mit diesem Gelenkwinkel will ich wissen, wo ist jetzt die Hand?
So, also Eingabe, Gelenkwinkelstellungen des Roboters und woher
kriegen wir sie?
Zum Beispiel aus den Sensoren, die in den einzelnen Gelenken vorhanden
sind und die Gelenkwinkelpositionen messen.
Gelenkwinkelsensoren also.
Die Ausgabe ist die Pose des Endeffektors und wir sind uns ein oder
wir haben uns darauf geeinigt, dass mit der Pose meinen wir immer die
Position und Orientierung des Endeffektors.
Zum Beispiel im Basiskoordinatensystem des Armes oder in einem
Weltkoordinatensystem.
Das zweite Problem, also die andere Richtung, wir kriegen die Position
von dieser Sprühflasche beispielsweise oder von dieser Box hier aus
der Bildverarbeitung als einen sechssimensionalen Vektor, also XYZ
-Alphabeta -Gamma und wir müssen die Gelenkwinkel hier berechnen, so
dass wir hier zu diesem Zielobjekt zum Beispiel diese Tüte hier mit
den Schrauben oder diesen Sachen, mit denen man befestigen kann.
Mir fällt Dynamik gerade nicht ein.
Das heißt, wir wollen das hier greifen, das ist die Pose, wo der
Endeffektor hin muss, damit wir das greifen und wir müssen von der
vorigen Position hier die Gelenkwinkel so einstellen, dass wir hier zu
dieser Position oder Zielposition des Endeffektors kommen.
Also das heißt, die Eingabe ist die Zielposition vom Endeffektor und
die Ausgabe bei diesem Problem sollen ja die Gelenkwinkelstellungen,
die man letztendlich zu einem Regler auf der untersten Ebene der
Steuerung schickt, der dann diese Gelenkwinkelstellungen abfährt.
Das heißt, wenn man das hier jetzt ein bisschen mathematisch
beschreiben will, dann haben wir einen Gelenkwinkelraum bzw.
den Konfigurationsraum, den wollen wir immer 10 nennen und im
Allgemeinen haben wir n Gelenkwinkel bei einem Roboter, deshalb ist
dieser Raum eine Untermengung von R hoch n.
Und auf der anderen Seite haben wir einen Arbeitsraum, im Allgemeinen
einen m-dimensionalen Arbeitsraum, zum Beispiel wenn wir hier in der
Umgebung operieren, dann ist das ein sechstimensionaler Arbeitsraum,
wo alle Elemente aus diesem Arbeitsraum durch x, y, z, Alpha, Beta,
Gamma, also drei Positionen, drei Orientierungen beschrieben sind,
natürlich mit den unterschiedlichen Varianten der Darstellung der
Orientierung, die wir auch kennengelernt haben.
Und die direkte Kinematik ist nichts anderes als eine Transformation
f, die diese gegebenen Gelenkwinkelstellungen, die wir messen mithilfe
von Gelenkwinkelsensoren, in den, auf eine Position des Interfaktors
im Arbeitsraum, während die Inverse-Kinematik ist genau die Inverse
-Funktion.
Das heißt, gegeben ist die Position von dem Zielobjekt, das wir
greifen wollen, wir suchen die Inverse-Funktion von f, die uns die
Gelenkwinkel rechnet.
Und ihr könnt euch vorstellen, dass es keine triviale Aufgabe ist,
diese Inverse-Funktion immer so explizit anzugeben.
Also, wenn ich jetzt einen zweidimensionalen Roboter habe, der auf dem
Tisch nur arbeitet, dann kann man natürlich so diese Inverse-Funktion
f -1 bestimmen, aber im Allgemeinen für dreidimensionale Roboter ist
es sehr schwierig, gerade redundante Roboterarmee, also Roboterarmee,
die mehr als m Freiheitsgrade haben, also wenn n größer als m ist,
dann ist die Angabe von so einer Inverse-Funktion sehr schwierig.
So, die Frage ist, wie lösen wir das Problem?
Wir wollen uns hier auch darauf einigen, dass n die Anzahl der
Bewegungsfreiheitsgrade des Roboter ist, also die Degrees of Freedom
von dem Mechanismus, von der kinematischen Kette, und m die
Freiheitsgrade, die notwendig sind, um Positionen im Arbeitsraum zu
beschreiben.
Wenn wir in diesem dreidimensionalen Raum arbeiten, der Roboter
arbeiten sollte, dann ist m gleich 6, wie ich bereits erwähnt habe,
aber wenn der Roboter nur auf dem Tisch hier was manipulieren soll,
dann ist natürlich m gleich 3, weil ich beschreibe jede Lage von dem
Endeffektor mithilfe von drei Parametern, die Position x, y und dann
die Orientierung von dem Endeffektor auf dem Tisch.
Also dann ist m in dem Fall 3.
So, das ist, was wir hier machen wollen und wir haben das letzte Mal
gesehen, wir haben ja kinematische Ketten und diese kinematischen
Ketten können wir auch mithilfe von Graphen beschreiben.
Ganz wichtig hier, wir haben immer ein Roboter-Basis
-Koordinatensystem, auf das sich alle Berechnungen beziehen, wenn es
um die Inversikinematik des Armes geht, aber es kann sein, dass es um
die Inversikinematik des ganzen Körpers geht, dann muss man natürlich
ein passendes Koordinatensystem wählen.
Wir haben mehrere Gelenke bei einer kinematischen Kette und die
Segmente, Oberarm bzw.
Unterarm und wir haben den Endeffektor, das ist die Hand, egal ob das
jetzt eine fünffingerige, humanoide Hand oder ein Backengreifer ist,
wir wollen das immer als Endeffektor bezeichnen.
Und eine kinematische Kette, also wird von mehreren Körpern gebildet,
die durch Gelenke kinematisch miteinander verbunden und da sieht man
hier zwei Typen von diesen kinematischen Ketten.
Das, was wir jetzt gesehen haben bei Arma 3, das ist eine offene
kinematische Kette, die in der Schulter anfängt und beim Endeffektor
endet.
Aber es gibt auch solche geschlossenen kinematischen Ketten.
Und das sind alle serielle Kinematiken, das heißt die Gelenke, die
kommen nacheinander.
Es gibt aber parallele Kinematiken, also zum Beispiel Steward
-Plattformen, wo man jetzt mehrere Beine mal irgendwie ansteuern soll,
damit man die Orientierung von der Plattform, also das ist ja sehr
häufig, wird das bei Spielen oder in Simulatoren eingesetzt.
Das sind parallele kinematische Ketten.
Aber wir betrachten hier nur serielle, meistens offene kinematische
Ketten, aber es gibt auch geschlossene kinematische Ketten.
Und auch bei seriellen kinematischen Ketten, wie zum Beispiel zwei
Arme von einem humanoiden Roboter, die sind zwei serielle kinematische
Ketten, natürlich verbunden über den Körper, aber wenn sie ein Objekt
greifen, wenn beide Arme ein Objekt greifen, dann habe ich eine
geschlossene kinematische Kette und man kann sich vorstellen, dass ich
jetzt auch die Position und Orientierung von diesem Objekt, was ich
mit beiden Händen halte, variieren kann durch unterschiedliche
Gelenkwinkelkonfigurationen.
Das heißt, das Problem der inversen Kinematik muss man auch in solchen
Situationen lösen, werden wir hier aber nicht machen.
So, ganz kurz zu Konventionen.
Armelemente entsprechen immer starren Körpern.
Jedes Armelement ist mit dem nächsten durch ein Gelenk verbunden.
Wir wollen Rotationsgelenke und Translationsgelenke betrachten, bei
Schub - oder Translationsgelenken und Rotationsgelenken hat jedes
Gelenk nur einen Bewegungsfreiheitsgrad, also nicht wie bei der
Schulter im menschlichen Arm, die drei Freiheitsgrade hat, wo wir um
diese unterschiedlichen Achsen drehen.
Und die kinematischen Parameter für diese kinematische Kette sind
einmal natürlich Parameter, die die Gelenke definieren, zum Beispiel,
wo liegt die Rotationsachse der Schulter in einem
Bezugskoordinatensystem oder relativ zu einem anderen
Koordinatensystem, wo liegt die Rotationsachse vom Ellenbogen
bezüglich Schulter und ähnliches.
Und zum Zweiten natürlich nicht die Lage von den Gelenken, sondern die
Transformationen zwischen den unterschiedlichen Gelenken.
Also wie bewegt sich zum Beispiel der Unterarm relativ zum Oberarm und
so weiter und so fort.
Es ist nicht nur diese Flexionsbewegung, sondern auch diese
Unterarmdrehung zum Beispiel beim menschlichen Arm.
Und das sind Beispiele, die wir gesehen haben in der Vorlesung.
Und die Gelenkparameter, wie ich bereits erwähnt habe, bei
Rotationsgelenken ist das immer die Rotationsachse, bei
Translationsgelenken ist das natürlich die Translationsrichtung.
Also man könnte sich vorstellen, ein Roboter wie der Arma 6 zum
Beispiel, der auch eine translatorische Achse, die hoch und runter
geht, das ist wiederum etwas, was man auch berücksichtigen muss, weil
je nachdem, wie diese Achse sich bewegt, habe ich eine andere Position
vom Endeffektor.
Und ganz wichtig für die Beschreibung von der Kinematik ist die
Spezifikation der Lage der Gelenke zueinander.
Das heißt, da wir ja von starren Körpern ausgehen, haben wir feste
Transformationen zwischen zwei Gelenken.
Diese Spezifikation muss die lokalen Koordinatensysteme der Gelenke
beschreiben.
Da sieht man hier die Koordinatensysteme von dem Arm, von Arma 6.
Also das ist das erste Gelenk mit diesem Koordinatensystem und drei
Gelenke hier in der Schulter, dann zwei Gelenke im Ellenbogen und dann
weitere zwei im Handgelenk.
Aber auch, wie man sieht, das Kinematische Modell der Hand.
So, und was ganz wichtig ist, sind natürlich diese Transformationen
zwischen den aufeinanderfolgenden Gelenken.
Also z.B.
vom Gelenk 1 zu Gelenk 2, vom Gelenk 2 zu 3 hier.
Also das ist z.B.
vom Gelenk 1 zu Gelenk 2.
Dann haben wir hier vielleicht von Gelenk, weil das sind hier drei,
dann wäre das hier von Gelenk 4 zu Gelenk 5 und so weiter und so fort.
Und diese Transformationen suchen wir eigentlich, damit wir überhaupt
diese zwei Probleme, die Vorwärts- und Inversikinematik lösen können.
Und um das machen zu können, wissen wir, dass wir hier drei
Rotationsparameter brauchen, also diese Transformationen werden mit
drei Rotationsparameter und drei Translationsparameter beschrieben.
Das heißt, für jede solche Transformation brauchen wir die sechs
Parameter, die wir kennen, zwischen zwei Koordinatensystemen, wie wir
im letzten Kapitel kennengelernt haben.
Und auf der Suche nach effizienteren Methoden, also wenn wir jetzt
hier z.B.
acht Gelenke haben und sechs Parameter für jede Transformation
zwischen den Gelenken, dann haben wir 48 Parameter, die diese
Kinematik beschreiben.
Und deshalb hat man sich nicht nur in der Robotik, sondern auch in der
Mechanik mit der Frage beschäftigt, gibt es eigentlich
Repräsentationen oder Wege, mit denen man diese Beziehungen zwischen
aufeinanderfolgenden Gelenken in einem Mechanismus mit weniger
Parameter beschreiben kann.
Und da hat Denevitt Hartenberg eine Konvention, wie man sieht hier,
1955, Kinematic Notation for Lower Peer Mechanisms based on Matrices.
Und das Ziel war, die Reduktion von diesen sechs Parametern, die wir
zur Beschreibung von der Lage oder Beziehungen zwischen zwei Gelenken
in einem Mechanismus zu reduzieren.
Die Eigenschaft von dieser Konvention ist, die gibt uns einen
systematischen Weg oder systematische Vorgehensweise, um diese
Beziehungen zwischen zwei benachbarten Gelenken, wie man sieht hier,
abzuleiten und reduziert die Anzahl der Parameter, die notwendig sind,
um die Beziehungen zwischen Gelenk I-1 und I von 6, also drei
Rotationen und drei Positionen, auf 4.
Und die ganze Beschreibung, wie wir wissen, das letzte Mal haben wir
gesehen, homogene Matrizen stellen eine Möglichkeit dar, mit der man
Rotationen und Translationen einheitlich mithilfe von Matrix
-Operationen beschreiben kann.
Und diese Konvention, die basiert natürlich auf homogenen Matrizen.
Wie sieht diese Konvention aus?
Also, wir haben, die geht davon aus, dass wir zunächst mal
Koordinatensysteme legen in den einzelnen Gelenken der kinematischen
Kette.
Und zwar, die Art und Weise, wie man diese Koordinatensysteme
definiert, muss bestimmten Regeln folgen.
Also einmal, die ZI-Axi liegt entlang der Bewegungs-Axi vom I-Gelenk.
Also Z0 soll entlang der Bewegungs-Axi, also zum Beispiel der Dreh-Axi
vom Gelenk I.
Die XI-Axi, also die Axi XI vom Koordinatensystem im Gelenk I,
verläuft entlang der gemeinsamen Normalen von ZI-1 und ZI.
Und zeigt nicht zu ZI-1, sondern von ZI-1 weg.
Also, wenn wir entlang der Normalen sind, dann haben wir zwei
Richtungen und wir nehmen immer die Richtung, die von ZI-1 weg zeigt.
Dann die Y-Axi, ja, in einem Gelenk, vervollständigt natürlich XI und
ZI zu einem rechthändigen Koordinatensystem.
Das heißt, diese Is hier, die wir haben, die sind einmal von 1 bis N
plus die Basis.
Wir müssen natürlich immer eine Basis, also ein Null definieren und
mithilfe von diesen Koordinatensystemen, also Koordinatensystemen, die
auf diese Art und Weise festgelegt werden, kann man die Parameter für
die Arm-Elemente und für Arm-Segmente herleiten.
Vorsicht an der Stelle, je nachdem, was für ein Buch man nimmt hier,
also Robotikbuch, von den Büchern, die wir auch empfohlen haben,
findet man unterschiedliche Variationen der DH-Parameter.
Und wir verwenden hier in dieser Vorlesung eine modifizierte Variante,
die aus dem Buch von Baldorn und Paul hier kommt.
Aber es gibt andere Varianten, die sind auch korrekt.
Das sind alle Tricks beziehungsweise Wege, mit denen man systematisch
diese Beziehungen zwischen aufeinanderfolgenden Gelenken mit einer
möglichst geringen Anzahl, alle mit 4, also mit 4 Parameter statt mit
6 Parameter beschreiben kann.
So, und nun wollen wir gucken, wie diese Parameter aussehen.
Also wenn es 6 Parameter sind, dann ist es für uns klar, wie weit die
einzelnen Gelenkzentren voneinander liegen und wie die
Koordinatensysteme in den beiden Zentren zueinander verdreht sind.
Das sind die 6 Parameter.
Aber wir sehen die 4 hier, die die gleiche Information darstellen.
Nun nehmen wir hier so ein Roboterarm.
Das sind die Armelemente I-1, I und I-1.
Und wie wir sehen, Gelenk I ist zwischen Armelement I-1 und Armelement
I.
Das heißt, jedes Armelement I ist durch zwei begrenzte Gelenke hier
verbunden, das was wir annehmen.
Und die erste Sache ist, wir legen die Z-Achsen durch die Gelenke.
Das heißt, ZI-1 durch die Gelenkachse von Gelenk I und ZI durch die
Gelenkachse von I-1.
So, das Zweite war, dass wir eigentlich, wie man sieht, was wichtig
ist für die Beschreibung der Kinematik, wie weit sind diese Achsen
voneinander.
Und das ist ein Parameter A.
Und dieser Parameter A ist nichts anderes als der Abstand zwischen den
ZI -1 und ZI-Achsen, also die gemeinsamen Normale auf diesen zwei
Rotationsachsen.
Und mithilfe von AI können wir eigentlich XI definieren.
Das heißt, man sieht hier, XI ist entlang der Normalen auf ZI-1 und
ZI, das ist die Normale, die wir vorher bestimmt haben, und zeigt von
ZI -1 weg.
Also XI ist nicht in diese Richtung, sondern in diese Richtung.
So, und wenn wir natürlich das entsprechende Verhältnis hier kennen
von Gelenk I-1, dann können wir XI-1 auch entsprechend machen.
Also wir nehmen an, dass XI-1 jetzt in die Richtung hier zeigt.
So, was haben wir noch, um diese zwei Gelenke, um diese Relation der
zwei Gelenke zueinander zu bestimmen, müssen wir eigentlich wissen,
wie ist Gelenk I verdreht, verdrillt, im Vergleich zu Gelenk I-1,
oder?
Das ist eigentlich, wenn wir das wissen, dann haben wir die
Transformation.
Und wenn man das Ganze hier mal betrachtet, dann sehen wir, dass
eigentlich diese ZI-Achse und I-1-Achse schon schief zueinander
liegen, und zwar um einen Winkel Alpha-I.
Und dieser Winkel Alpha-I beschreibt den Winkel zwischen ZI-1 und ZI,
und zwar wie weit muss ich ZI-1 drehen um die XI-Achse, damit ZI-1 in
Übereinstimmung mit ZI kommt.
Ja, also hier der Winkel Alpha, also wenn wir uns jetzt ZI-1 hier mal
vorstellen, und wir drehen um die XI-Achse, dann drehen wir um einen
Winkel Alpha, der ZI-1 in ZI überführt.
So, nun kennen wir eigentlich den Abstand und kennen wir jetzt die
Verdrehung der zwei zueinander.
Was fehlt uns noch, um eindeutig die relative Beziehung zwischen den
zwei Gelenken zu beschreiben?
Fehlt noch was?
Ja?
Ich habe dich nicht gehört, aber es fehlt uns eigentlich diese
Information, ja, es fehlt uns diese Information, und zwar wie weit
sind die Gelenkabstände voneinander, und zwar der Abstand zwischen der
XI -Achse und der XI-Achse.
Also wie weit, wie versetzt sind die zwei Ursprünge voneinander?
Wahrscheinlich hast du das Gleiche gemeint.
Sag, du hast das Gleiche gemeint, ist besser für dich.
Okay, so, dann haben wir auch noch ein Parameter, was wir ganz leicht
eigentlich ablesen können.
Und wie man sieht hier, ich weiß, wie die Rotationsachsen oder die
Gelenkzentren zueinander versetzt sind.
Ich weiß, wie weit sie voneinander entfernt sind, und ich weiß, wie
verdrillt sie relativ zueinander sind.
Und das ist alles.
Das ist alles, was wir brauchen, um diese zwei Koordinatensysteme,
also hier ist nur X und Z dargestellt, und natürlich kann man das
Ganze hier um Y verdrehen.
Und das Letzte, was man noch hat natürlich bei einem Roboterarm, ist,
wie weit drehen sich die einzelnen Gelenke.
Weil je nachdem, wie sich die einzelnen Gelenke drehen, drehen sich
diese Koordinatensysteme auch.
Und dieser Winkel hier sieht man, ist nichts anderes als der Winkel
zwischen XI-1 und XI.
Das ist parallel zu XI, also das ist unser Drehwinkel.
Wenn das Gelenk I um TTI sich dreht, dann habe ich einen Versatz oder
einen Winkel TTI hier zwischen den zwei Achseln XI-1 und XI.
Also, mithilfe von diesen vier Parametern haben wir jetzt vollständig
diese Beziehungen oder die relative Lage der zwei Gelenke zueinander.
Das Ganze haben wir jetzt gemacht für Rotationsgelenke und natürlich
bei diesen Rotationsgelenken sind alle diese Parameter konstant bis
auf TTI.
Ja, weil wie weit die Gelenke voneinander, die Schulter vom Ellenbogen
sind und wie versetzt die Gelenke zueinander sind, das hängt nicht von
der Drehung ab, aber der einzige Parameter ist natürlich TTI, weil
mein Gelenk hier TTI dreht oder TTI plus 1.
Und während Alpha, A und D, also Alpha, A und D, die sind eigentlich
konstant, wenn wir von starren Mechanismen ausgehen.
So, das heißt, bei solchen Rotationsgelenken haben wir unsere vier
Parameter A, Alpha, D und TTI.
TTI ist natürlich die Variable, wie unsere Gelenke sich drehen, aber
die anderen drei, die sind invariant.
Und bei Schubgelenken, also translatorischen Gelenken, ist unser
Gelenkabstand, weil wenn ich hier ein translatorisches Gelenk und dann
habe ich hier ein rotatorisches Gelenk, zum Beispiel wo der Kopf eines
Roboters ist, dann ist natürlich der Abstand zwischen den zwei
Koordinatensystemen die Variable größer und somit ist es D und nicht
TTI.
TTI ist invariant, je nachdem kann der Kopf auch schräg so montiert
sein auf dieser Translationsachse.
So, und mithilfe von diesen vier Parametern kann man Folgendes machen.
Das heißt, wir haben vier Parameter und wenn wir jetzt ein bisschen
zurückgehen, haben wir bei der Identifikation von jedem Parameter eine
Operation durchgeführt.
Zum Beispiel AI, das war eine Translation von hier nach der DI, eine
Translation von hier nach der... Alpha I ist eine Rotation um die XI
-Achse.
Und wenn man merkt, was ich gerade erzähle, Translation, Rotation,
Rotation, das sind alle Sachen, die wir mit homogenen Matrizen
beschreiben können.
Und das ist, was man hier gemacht hat.
Das heißt, zunächst mal eine Rotation um TTI, um die ZI-1-Achse, damit
die XI-1-Achse parallel zur XI-Achse liegt.
Das ist, was wir gemacht haben als erstes.
Und unsere Rotationsmatrix, die das beschreibt, ist eine 4x4-Matrix,
wo der vierte Spalt die ersten drei Einträge 0,0,0 sind, weil wir
keine Translation haben.
Und wir rotieren um die Z-Achse, deshalb die 1 hier, und die Rotation
um die Z-Achse kennen wir.
Cosinus TTI minus Sinus und Sinus Cosinus.
Was haben wir als nächstes gemacht?
Wir haben eine Translation um DI entlang ZI-1 und die homogene Matrix,
die diese Translation macht, ist die Einheitsmatrix für die Rotation
hier und Translation um die Z-Achse ist nichts anderes als jetzt hier
der dritte Eintrag in der vierten Spalte.
So, die dritte Operation war eine Translation Alpha-I und zwar entlang
XI, um die Ursprünge der Koordinatensysteme zur Deckung zu bringen.
Also wiederum keine Rotation, aber eine Translation entlang XI, das
heißt TXI ist nichts anderes als der Eintrag hier Alpha-I, das erste
Element in der vierten Spalte der homogenen Matrix.
Und als letztes haben wir die Rotation um den Winkel Alpha-I um die
Achse XI, also deshalb Rotation um XI.
Rotation um XI ist die 1 hier oben, dann Cosinus minus Sinus Cosinus
und keine Translation, deshalb 000 hier.
Also, was wir brauchen, um die Relativlage von zwei Gelenken
zueinander zu beschreiben, wir brauchen eigentlich diese vier
Transformationen durchzuführen.
Und natürlich, um die Verhältnisse oder die relative Pose der
Koordinatensysteme zueinander zu beschreiben, muss ich diese vier 4x4
Matrizen, die wir jetzt hier ganz einfach und trivial bestimmt haben,
miteinander verketten.
Das heißt, wenn ich jetzt die Transformation zwischen Gelenk I minus 1
und I machen will, dann muss ich zunächst mal um ZI minus 1 um TTI
drehen.
Dann habe ich eine Translation um ZI minus 1 um DI.
Dann habe ich wiederum eine Translation um XI, also entlang XI um AI,
um die Länge von dem Armsegment zu bestimmen.
Und dann habe ich eine Rotation um die Achse XI, um die ZI minus 1 und
die ZI Achse zur Übereinstimmung zu bringen, und zwar um den Winkel
Alpha -I.
Und wenn wir diese vier Matrizen, die wir vorher bestimmt haben,
miteinander multiplizieren hier, dann kommen wir auf eine Matrix, die
die Gesamttransformation zwischen I minus 1 und I beschreibt.
Und man sieht in dieser Matrix, natürlich ist der I die Variable, weil
je nachdem, wie wir uns drehen, haben wir andere Verhältnisse.
Aber in dieser Matrix tauchen nur die vier Parameter Alpha-I, wie man
sieht, AI und DI.
Also das sind die vier Denevitt-Hartenberg-Parameter, die die Lage von
zwei Gelenken relativ zueinander beschreiben.
So, und wenn wir das hier haben, dann müssen wir wahrscheinlich,
manchmal brauchen wir die umgekehrte, die Inverse-Transformation, also
die Transformation vom Gelenk I zu I minus 1 und nicht I minus 1 zu I,
sondern I zu I minus 1.
Das ist natürlich die Inverse-Matrix und die Inverse-Matrix in
allgemeiner Form kann man auch berechnen auf diese Art und Weise.
Das heißt, wir haben alles, was wir brauchen, um tatsächlich
Verkettungen von Transformationen von der Basis vom Roboter, also zum
Beispiel die Schulter im Falle von dem Beispiel, was wir gesehen
haben, bei dem Arma-Roboter bis hin zum Endeffektor.
Und wie machen wir das?
Diese Verkettung, die haben wir das letzte Mal kennengelernt.
Wir multiplizieren diese Transformations-Matrix miteinander, also von
der Basis 0 zu 1 hängt nur von Delta I, dann von 1 zu 2 hängt vom
Gelenkwinkel Delta II und so weiter und so fort bis zu M.
Und was bedeutet das eigentlich?
Das bedeutet, ich kriege natürlich hier eine 4x4-Matrix als
Multiplikation von diesen M-Matrizen und in dieser 4x4-Matrix ist in
der Matrix oben links, die 3x3-Matrix, die Orientierung vom
Endeffektor dargestellt und in der letzten Spalte, der ersten drei
Einträge der vierten Spalte von dieser 4x4-Matrix, geben mir die
Translation zwischen Basis und zwischen Gelenk M bzw.
Endeffektor, wenn das das letzte Gelenk ist.
Also, Zusammenfassung.
Was müssen wir machen, damit wir kinematische Ketten mithilfe von DH
-Parametern beschreiben?
Wir müssen ein Skizzi von dem Manipulator zeichnen, wo wir wissen, wie
die einzelnen Achsen tatsächlich im Raum liegen.
Dann identifizieren und nummerieren wir die Gelenke.
Also, wir fangen mit Gelenk 1 und das letzte Glied ist N.
Dann zeichnen wir die jeweiligen ZI-1-Achsen durch die Rotationsachsen
vom Gelenk I, also ZI durch I plus 1 und so weiter und so fort.
Wir bestimmen zunächst mal die Parameter AI zwischen ZI und I-1 und
ZI, also der Abstand eigentlich zwischen den Ursprüngen der beiden
Koordinatensystemen.
Dann bezeichnen wir die XI-Achse, die entlang der gemeinsamen Normalen
auf ZI-1 und ZI steht, aber von ZI-1 weg zeigt.
Und dann bestimmen wir den Parameter A, also die Verwendung der XI
-Achsen, also wie weit muss ich um die ZI-1-Achse drehen, damit ich XI
-1 in XI überführen kann.
Dann bestimmen wir den Parameter D und zwar, das ist der Versatz
zwischen den Gelenkzentren entlang der ZI-1-Achse.
Also, ich kenne es ziemlich gut, merkt ihr das?
Keiner kann jetzt nachvollziehen, ob ich das richtig sage oder nicht,
oder?
Oder doch?
Genau, das muss man ab und zu mal machen.
Ich glaube, ich habe es so oft gemacht, aber ich mache trotzdem Fehler
und dann macht man immer Fehler bei dieser Sache.
Aber wenn man es richtig macht, dann haben wir bemerkt, hat man
eigentlich viel davon.
Und als letztes den Winkel TTI um ZI-1.
Dann verkrümpfen wir diese Matrizen miteinander und wir bekommen
eigentlich die Beschreibung vom Endeffektor im Basiskoordinatensystem
der kinematischen Kette.
Nun, was machen wir damit?
Jetzt habe ich ganz am Anfang gesagt, die zwei Probleme, die wir
behandeln, sind einmal die Vorwärts- und einmal die Inversekinematik.
Also gegeben sind bestimmte Gelenkwinkel von dem Arm, wir wollen
wissen, wo der Endeffektor ist.
Und jetzt haben wir diese ganzen Parameter, die H-Parameter bestimmt,
damit uns das ein bisschen helfen kann.
Klar, natürlich haben wir die Anzahl der Parameter reduziert von sechs
auf vier pro Transformation.
Jetzt wollen wir gucken, wie kann man das nutzen, um das direkte
kinematische Problem zu lösen.
Also nochmal hier zur Erinnerung, Gelenkwinkel sind gegeben und wir
suchen die Posi vom Endeffektor.
Und das ist, was wir jetzt bekommen haben.
Wenn die Gelenkwinkel gegeben sind, wenn Theta 1 bis Theta n gegeben
sind, dann brauchen wir nur einzusetzen.
Dann sind eigentlich diese Matrizen jetzt, wenn ich dort die Thetas
einsetze, alles konstant in den Matrizen.
Und dann kriege ich eine 4x4 Matrix, die für mich die Stellung von dem
Tool Center Point, also das Koordinatensystem von dem Endeffektor
beschreibt.
Beispiele.
Wir machen ein paar Beispiele.
Und zwar nehmen wir zunächst mal so einen zweidimensionalen oder einen
Roboterarm.
Wir machen die Betrachtung nur in der XY-Ebene, das ist die X0, das
ist die Y0-Ebene.
Und wenn man jetzt diese Abbildung mal anguckt, dann sieht man
eigentlich die Z-Achsen, die gehen hier raus oder rein, raus, ist das?
Raus, die gehen raus.
Hier, die gehen aus der Ebene raus, also XYZ.
Das Gleiche hier und das Gleiche hier.
Wir haben also insgesamt drei Gelenke, Theta 1, Theta 2 und Theta 3.
Und wir suchen eigentlich die Lage von dem Tool Center Point.
Also Tool Center Point ist das Koordinatensystem, was mit dem
Endeffektor assoziiert wird.
Also das ist unser Tool Center Point.
Das ist der Ursprung vom Koordinatensystem 3 hier.
Und um diese Beschreibungen zu machen, man sieht ganz einfach hier,
wenn das nur ein zweidimensionales Beispiel ist, dass die AIs nichts
anderes sind als die armsegmenti, weil das sind ja die Verschiebungen
zwischen den Koordinatensystemen entlang der gemeinsamen Normalen auf
der Z- und ZI-1-Achse und deshalb A1, A2 und A3, ziemlich einfach.
Aber wir müssen ja alle diese Parameter bestimmen.
Also die AIs, wie ich bereits erwähnt habe, sind das hier.
Die Alphas sind die Winkel, die für uns die Verdrehung der ZI-1 und ZI
-Achse relativ zueinander beschreiben.
Aber alle Z-Achsen gehen aus der Zeichnungsebene raus.
Deshalb haben wir keine Verdrehung, also eine Null.
Wir haben auch keinen Versatz hier, deshalb DI gleich Null.
Und da wir alle drei hier Rotationsgelenke haben, haben wir drei
Parameter, Delta 1 bis Delta 3.
Und wenn wir diese Parameter hier bestimmt haben, und das bestimmen
wir tatsächlich, nachdem wir diese Zeichnung hier erstellt haben und
die Koordinatensysteme entsprechend gelegt haben, dann nehmen wir
unsere Transformationsmatrix die wir auf gar keinen Fall auswendig
lernen sollen, sondern wir kennen sie, wir können das nachschlagen,
wenn es in der Klausur aus irgendeinem Grund zu etwas kommen sollte,
dann wird diese Transformationsmatrix gegeben.
Und dann wissen wir, wenn wir diese Parameter hier haben, also Alpha I
gleich Null, dann verschwindet alles, was Sinus Alpha I wird Null Null
und Cosinus Alpha I ist gleich 1.
Ansonsten Cosinus Alpha I gleich 1, Sinus Alpha I ist gleich Null und
so weiter und so fort.
Also ergibt sich eigentlich mithilfe von diesen Parameter, die
vereinfacht die Transformationsmatrix zwischen Gelenk I minus 1 und I.
Und wenn ich jetzt die unterschiedlichen Parameter einsetze und die
drei miteinander multipliziere, dann komme ich auf diese 4x4-Matrix
und in dieser 4x4-Matrix sehen wir, das sind, egal wie sich die drei
Gelenke drehen, ist das immer eine Rotation um die Z-Achse, also vom
Endefektor relativ zur Basis, zum Basiskoordinatensystem.
Egal wie ich drehe, ist es eine Rotation um die Z-Achse und zwar um
das hier.
Und das ist die Translation bzw.
die Position von dem Endefektor in der XY-Ebene, die Z-Ebene.
Wir arbeiten ja in der XY-Ebene, deshalb ist Z gleich Null.
Also nur zur Überprüfung eigentlich, ob das, was man gemacht hat, was
man multipliziert hat oder die Parameter, die man bestimmt hat,
wirklich korrekt waren.
Genau.
Ein weiteres Beispiel, wo wir eine Translations-Achse hier haben, also
das ist jetzt hier eine Translations-Achse in die Richtung und dann
das letzte Koordinatensystem Z3 hier.
Die ersten zwei Achsen sind einmal eine Rotations-Achse Theta1 mit Z0,
also i-1, dann die zweite Rotations-Achse um den Winkel Theta2.
Das Koordinatensystem ist dann Z1, wie man sieht, und natürlich
Erweiterung mit Xi, wie wir sehen.
Die nächste Translations-Achse ist Z2 und wie man sieht, auch X2 und
Y2 hier gezeichnet und die allgemeine Transformation, die wir vorher
kennengelernt haben.
Also was muss man hier machen?
Muss man wiederum diese Parameter bestimmen und das Besondere ist
natürlich bei Gelenk 2 hier, wir drehen hier, das heißt wir haben eine
Verschiebung zwischen dem Koordinatensystem 1 und 2 um die Länge D2
und wir haben die unabhängige Variable der Drehung Theta2, während wir
beim Gelenk 3 haben wir natürlich unsere Verschiebung in die Richtung,
das ist eine Achse, die hoch und runter geht am Ende, deshalb die
unabhängige Variable ist 0, aber keine Verdrehungen in der anderen
Koordinatensysteme, deshalb alle weiteren Parameter hier 0.
Und wenn wir das haben, dann können wir mithilfe von diesen Parametern
zum Beispiel die Matrix 0,1 bestimmen, wir können die Matrix 1,2
bestimmen und wir können die Matrix 2,3 bestimmen und man sieht hier
bei der Matrix 2,3 ist keine Rotationsmatrix, sondern eine Translation
in diese Richtung, deshalb nur D3 als die unabhängige Variable, weil
das ist eine Steuervariable, wo wir Kommandos zu diesem Gelenk
schicken, damit der Endeffektor hoch beziehungsweise runter bewegt
werden soll.
Und wenn wir alles miteinander multiplizieren, bekommen wir das hier
und man sieht hier, das ist einmal die Orientierung vom Endeffektor in
Abhängigkeit von Delta 1, Delta 2 und das ist hier die Position von
dem Endeffektor, weil die Orientierung von dem Endeffektor wird nicht
von der translatorischen Achse beeinflusst bei dieser Kinematik,
deshalb taucht eigentlich D3 hier nicht, aber die Höhe von dem
Manipulator oder die Z-Koordinate von dem Endeffektor, die ist
natürlich abhängig von D3 und natürlich auch abhängig von der Rotation
um die Achse T2, weil wenn ich hier D3 hoch und runter drehe und die
Achse hier in die Richtung oder in die Richtung drehe, dann verändere
ich auch die Höhe von dem Endeffektor.
Also das nur so zur Interpretation.
Genau, das ist hier ein realistisches Beispiel, das sind zum Beispiel
die DH-Parameter von dem Arm, von dem Armar 1 mit sieben Gelenken und
natürlich ist immer sehr gut, also man sieht hier zum Beispiel die
DIs, das ist nichts anderes als die Längen vom Oberarm und Unterarm.
Man sieht beispielsweise, dass man hier einen Versatz zwischen Gelenk
1 und Gelenk 2 hat, das heißt die ersten drei Gelenke, die schneiden
sich nicht in einem Punkt und natürlich hier gibt es am Ende auch
einen Versatz zwischen Gelenk 6 und Gelenk 7, was ja anhand von Alpha
I hier zu sehen ist.
Aber das sind Sachen oder Tabellen, die so erfahrene Leute, die jeden
zweiten Tag sich Gedanken darüber machen, wie die Kinematik von einem
Roboter aussehen sollte, um beispielsweise diese Parameter bei diesen
Tabellen so wenig wie möglich, nicht null Parameter zu haben.
Also wenn die ersten drei Achsen zum Beispiel sich in einem Punkt
schneiden würden, dann würden wir diese 30 hier eliminieren, aber das
ist nicht immer machbar, oder es ist schon machbar, aber bei dem
ersten Entwurf war das nicht der Fall bzw.
kam es zu etwas anderem.
So, nun eine Zusammenfassung, das heißt bei der Vorwärtskinematik
haben wir unsere Gelenke, Gelenkwinkelwerte, die kriegen wir von den
Sensoren, von den Gelenkwinkelsensoren eines Roboterarms.
Wir haben die Transformationsmatrizen, die für uns die Transformation
zwischen Gelenk I-1 und I beschreiben und die hängen natürlich von
Theta I, die haben wir kennengelernt, das sind 4x4 Matrizen und wir
wissen, wie diese, das sind die hier und wir wissen eigentlich, dass
wir den Endeffektor, die Posi vom Endeffektor im
Basiskoordinatensystem beschreiben, indem wir diese
Transformationsmatrizen von 0,1 bis zum Endeffektor miteinander
multiplizieren.
Und wenn wir das multiplizieren, wie wir gerade in den Beispielen
gesehen haben, kriegen wir 4x4 homogene Matrizen und die wir aus dem
letzten Kapitel kennengelernt haben und wir sehen, dass wir in diesen
4x4 Matrizen einmal hier unsere Rotationsmatrix, die für uns die
Rotation oder Orientierung vom Endeffektor relativ zur Basis
beschreibt und eine Transformation, die für uns die Transformation vom
Endeffektor im Basiskoordinatensystem eingegeben hat.
So, nun ist es eine ganz einfache Sache.
Jetzt die Frage ist, wenn wir das inverse-kinematische Problem lösen.
Jemand sagt euch, der Endeffektor muss sich jetzt zu dieser Position
und Orientierung bewegen.
Das heißt, die Position und Orientierung, Zielposition und
Orientierung ist gegeben und wir müssen ja dieses Problem hier lösen.
Das heißt, ich habe eine 4x4 Matrix, wie kriege ich eigentlich Theta
1, Theta 2, Theta 3 bis Theta n?
Ja, das wäre ja das inverse-kinematische Problem.
Wir werden in den Übungen auch hier Beispiele sehen, wie man das oder
mit welchen Tricks man eventuell das Problem lösen kann.
Aber ich will jetzt auf einen allgemeineren Weg eingehen, wie man das
Problem lösen kann.
Natürlich, das Problem ist immer schwieriger oder wird schwieriger mit
einer wachsenden Anzahl von Gelenken.
Das heißt, wenn ich hier 2D-Roboterarmee habe oder Roboterarmee mit 3,
4 Freiheitsgraden, dann könnte man solche Lösungen finden, auch
mithilfe von geometrischen Betrachtungen.
Aber wenn wir über Roboterarmee, die 6, 7 oder 8 Freiheitsgraden
haben, reden, dann brauchen wir allgemeinere Methoden.
Und natürlich diese Spezialmethoden, die über Geometrie gehen, wie wir
gleich sehen werden, vielleicht in einem Beispiel oder spätestens in
der Übung, da muss man ja die Kinematik kennen.
Das heißt, man muss wirklich die geometrischen Betrachtungen machen
und muss man also für jede Kinematik, die man entwickelt, also für
jeden Roboterarm, den man entwickelt, nochmal das Problem lösen.
Ist okay, macht man auch für bestimmte Roboterarmee, aber wir suchen
nach anderen Möglichkeiten, die allgemein gültige Lösungen oder
allgemeine Kochrezepte für das Lösen der, vor allem inversen
kinematischen Problemen liefern.
Und da kommen wir natürlich an der Mathematik nicht vorbei und dieses
Mal sind es nicht die hyperkomplexen Zellen wie bei Quaternionen,
sondern das sind die Jacobi-Matrizen.
Und was haben die Jacobi-Matrizen mit der Kinematik zu tun?
Also zunächst mal wissen wir Vorwärtskinematik, wir haben
Gelenkwinkelstellungen und wir wollen die Endeffektopose.
Und die Frage ist, die man sich stellt, naja, also oft macht man keine
positionsbasierte Regelung von einem Roboterarm, sondern
geschwindigkeitsbasierte Regelung von einem Roboterarm.
Das heißt, man hat Gelenkwinkelgeschwindigkeiten und will irgendwelche
Geschwindigkeiten vom Endeffektor realisieren.
Also nicht, dass ich sage, diese Gelenke und diese Pose, sondern ich
habe diese Gelenkwinkelgeschwindigkeiten und ich will eine bestimmte
Geschwindigkeit vom Endeffektor erreichen.
Oder anders, vielleicht anschaulicher, ich will, dass mein Endeffektor
entlang dieser Trajektorie mit dieser Geschwindigkeit bewegt.
Das heißt, nicht eine reine Position, sondern auch das Einhalten von
Geschwindigkeit.
Deshalb sehen wir eigentlich diese anderen Beziehungen, die natürlich
mit dem Problem sehr verwandt sind, aus.
Also gegeben sind Gelenkwinkelgeschwindigkeiten, was bedeutet das für
die Endeffektogeschwindigkeiten?
Beziehungsweise, wenn ich Kommandos zu den Gelenken schicke, zu den
Reglern, die die Gelenke bewegen, letztendlich Strom auf die Motoren
mal aufschalte, damit sie sich bewegen, dann weiß ich, welche
Drehmomente ich eigentlich habe in den Gelenken.
Und die Frage ist, mit diesen Drehmomenten, mit bestimmten
Drehmomenten in den Gelenken, welche Kräfte und Momente kann ich am
Endeffektor haben?
Ja, zum Beispiel, um durch diese Wand zu bohren oder ein bestimmtes
Objekt entlang einer bestimmten Trajektorie zu halten und zu
manipulieren.
So, und der Ansatz hier, den man hat, geht über die Jacobi-Matrix,
indem man die Beziehungen der Vorwärtskinematik ableitet.
Ich meine, wenn wir uns vor Geschwindigkeiten interessieren, statt
Position, müssen wir ja ableiten.
Und wenn wir die Jacobi-Matrix aus der Mathematik nochmal ein bisschen
angucken, dann wissen wir, die Jacobi-Matrix ist etwas, was definiert
ist für differenzierbare Funktionen.
Also eine Funktion definiert auf Rn und nimmt ihre Werte in Rm.
Und die Jacobi-Matrix ist die Matrix, in der wir alle partiellen
Ableitungen in erster Ordnung von F haben, und zwar nach den
unabhängigen Variablen.
Also zum Beispiel hier haben wir eine Funktion mit den unabhängigen
Koordinaten oder Variablen xi, also x1 bis xn.
Und die Jacobi-Matrix erhalten wir, indem wir die einzelnen
Komponentenfunktionen von F nach diesen Koordinaten ableiten.
Also einmal hier die partielle Ableitung in erster Ordnung von F1 nach
x1, natürlich an der Stelle A, die partielle Ableitung von der
Funktionskomponentenfunktion Fm nach x1 und das Gleiche hier aber nach
xn.
Das heißt, bei dieser Abbildung, wenn ich eine Funktion, die auf Rn
definiert ist und ihre Werte in Rm annimmt, aha, das ist eigentlich
Rn, war ja unser Konfigurationsraum, wenn wir n Freiheitsgrade haben.
Und Rm war der Arbeitsraum, als wir, haben wir gesehen auf der ersten
Folie dieser Vorlesung.
Das heißt eigentlich F könnte jetzt, ist die Abbildung von
Konfigurationsraum auf Arbeitsraum, das ist nichts anderes als unsere
Vorwärtskinematik.
So, und wenn man diese Abbildung hat von Rn nach Rm, dann hat man eine
m mal n Jacobi-Matrix, die wie hier auf der Folie zu sehen ist,
definiert ist.
So, jetzt versuchen wir mal, das Ganze tatsächlich mathematisch zu
machen.
Wir wissen, also die Vorwärtskinematik, das ist eine Abbildung, wie
wir das bis jetzt kennengelernt haben.
Wir haben gesagt, wir haben Gelenkwinkel Rn, also aus Rn, Vektoren aus
Rn und die nehmen ihre Werte in Form von einer 4 mal 4 Matrix.
Und in dieser 4 mal 4 Matrix haben wir eine Rotationsmatrix R und ein
Translationsvektor T.
Das heißt eigentlich, das sind Elemente aus SE3.
Das ist eine Abbildung zwischen Rn und SE3.
Und hier kann ich ja die Jacobi-Matrix nicht definieren, weil die
Jacobi -Matrix ist definiert auf Abbildungen zwischen Rn und Rm.
Wir wissen ja, SE3 ist ja ein Vektor und ein Matrix, also es ist
deshalb sehr schwierig, sowas zu machen.
Deshalb ist die Lösung, dass man eine vektorwertige oder vektorartige
Repräsentation wählt, z.B.
die Rolle-Pi-Gio-Winkel, die wir kennengelernt haben für die
Darstellung der Orientierungen, damit wir diese Matrixrepräsentation
in den homogenen Matrizen loswerden.
Und dann haben wir eine Funktion, die heißt, die bildet Rn, also den
Konfigurationsraum, auf einen sechstimensionalen Raum mit XYZ
-Alphabeta -Gamma.
Ja, das ist ganz naheliegend.
Wir nehmen an jetzt, dass eine kinematische Kette, dass der
Endeffektor einer kinematischen Kette entlang einer bestimmten
Trajektorie, Theta, bewegt.
Diese Trajektorie ist definiert natürlich von R auf Rn.
Und dann gilt für die Endeffektor-Pose, also wenn das die Gelenkwinkel
hier, die mit dieser Trajektorie assoziiert sind, dann kann ich die
Gelenkwinkel -Pose, dann kann ich die Pose von dem Endeffektor
bestimmen, indem ich einfach einsetze.
Also f von Theta, Theta ist gegeben, dann kriege ich zu jedem
Zeitpunkt die Informationen darüber, wo mein Endeffektor ist, als
Vektor X aus Rn, also aus R6 in dem Beispiel.
Wenn wir uns jetzt für die Geschwindigkeiten interessieren, dann
müssen wir nur diese Beziehung hier ableiten.
Ja, und wenn ich hier nach der Zeit ableite, natürlich ist es eine
Funktion f, die hängt von Theta und Theta wiederum von der Zeit.
Deshalb muss ich ja die Kettenregel anwenden, also X abgeleitet nach
der Zeit, also Position nach der Zeit ist Geschwindigkeit, X-Punkt,
und dann leite ich das hier nach Delta-Theta und wir wissen, die
Ableitung von f von Theta nach Delta-Theta ist die Jacobi-Matrix und
die Ableitung von Delta-Theta nach der Zeit ist die
Gelenkwinkelgeschwindigkeit, also Theta-Punkt.
Das heißt eigentlich, wir haben jetzt nicht nur die Beziehung zwischen
X und Theta, unsere Vorwärtskinematik im Positionsraum, sondern wir
haben die Beziehung zwischen den Geschwindigkeiten vom Endeffektor und
Geschwindigkeiten der Gelenke.
Und diese Beziehungen hier gehen dann mithilfe von der Jacobi-Matrix
oder werden beschrieben mithilfe der Jacobi-Matrix.
So, das heißt die Jacobi-Matrix setzt jetzt die karthesischen
Endeffektor -Geschwindigkeiten in Relation zu
Gelenkwinkelgeschwindigkeiten, wie wir hier das gesehen haben, und
damit können wir folgende Probleme lösen.
Naja, also wenn wir die Gelenkwinkelgeschwindigkeiten haben, weil wir
die Trajektorien entlang, die der Endeffektor abfahren soll, haben,
und diese Trajektoren differenzieren können, und zum Beispiel... Nee,
wenn wir die Gelenkwinkelgeschwindigkeiten haben und die Frage ist,
welche karthesischen Endeffektor-Geschwindigkeiten können wir damit
realisieren, dann müssen wir eigentlich was machen?
Nur einsetzen, oder?
Also wenn das gegeben ist, und ich suche das, dann muss ich das hier
nur ansetzen.
Aber die andere Frage, die wir auch beantworten können, wenn ich ja
die karthesische Endeffektor-Geschwindigkeit habe, also wie soll ich
mich mal bewegen mit dem Endeffektor, und welche Geschwindigkeiten der
Gelenke sind dazu notwendig, dann kann ich natürlich das auch mithilfe
von dieser Gleichung lösen, und zwar indem ich diese Gleichung nach
dem Punkt auflöse.
Und das gucken wir ein bisschen genauer an, das heißt,
Vorwärtskinematik.
Die Vorwärtskinematik ist für uns, gegeben sind die
Gelenkwinkelgeschwindigkeiten, und wir suchen die Endeffektor
-Geschwindigkeiten, dann brauche ich eigentlich nur dieses gegebene
Delta -Punkt hier in meiner Gleichung einzusetzen, und dann habe ich
die Lösung.
Andersrum, wenn wir die karthesischen Geschwindigkeiten haben, und wir
suchen die Gelenkwinkelgeschwindigkeiten, das ist eigentlich die
Inverse -Kinematik, aber im Geschwindigkeitsraum.
Ja, also das ist die gleiche Definition.
Hier, das ist die Vorwärtskinematik im Geschwindigkeitsraum, gegeben
sind die Gelenkwinkelgeschwindigkeiten, wo ist meine Hand?
Also vorher war, gegeben sind die Gelenkwinkel, wo ist meine Hand
jetzt?
Gegeben sind die Gelenkwinkelgeschwindigkeiten, wie schnell bewegt
sich meine Hand?
Und andersrum, ich weiß, wie schnell sich meine Hand bewegen soll,
entlang einer bestimmten Trajektorie, und jetzt, welche
Gelenkwinkelgeschwindigkeiten muss ich auf die einzelnen Gelenke
aufschalten?
Was müssen wir also machen?
Wir müssen eigentlich nach Delta-Punkt auflösen.
Und wie lösen wir nach Delta-Punkt auf?
Naja, wir invertieren, oder?
Wir brauchen nur eine Inverse von dieser Matrix, weil Delta-Punkt ist
die Inverse-Matrix von der Jacobi-Matrix multipliziert mit dem hier,
und wenn alles gut geht und ich brauche meine Gelenkwinkel aus
irgendeinem Grund, dann muss ich das, was ich hier bekommen habe,
integrieren und dann bekomme ich die Gelenkwinkel.
Oder?
Das ist ja eine ganz saubere Mathematik.
Stimmt das?
Gibt es irgendeinen Haken an der Stelle?
Okay, ich nehme ihn, weil ich ihn noch nicht kenne.
Ja, genau.
Also die Voraussetzung ist natürlich hier, dass diese Jacobi-Matrix
invertierbar sein muss.
Und wir haben vorher gesehen, die Jacobi-Matrix haben wir definiert
als eine M mal N-Matrix.
Und M war die Dimension vom Arbeitsraum, also unser sechstimensionaler
Raum, in dem der Roboter arbeiten soll.
Und N war die Anzahl der Gelenke, die der Roboter hat.
Das heißt, eigentlich ist diese Jacobi-Matrix nur dann invertierbar,
wenn der Roboter nur sechs Gelenke hat.
Aber es gibt, wie ihr wisst, und ich hoffe, ihr wisst das, weil ihr
habt ja die A-Mars jetzt so oft gesehen und gehört und so weiter, fast
alle neun eigentlich Roboterarmee, die man hat und die man gerade
entwickelt, nicht nur in der humanoiden Robotik, sondern auch für
industrielle Anwendungen, haben sieben Freiheitsgrade oder acht
Freiheitsgrade oder mehr als das.
Natürlich gibt es hier, die Mathematik hat auch Lösungen, es gibt ja
Approximationen für die Inversion von nicht-quadratischen Matrizen,
also zum Beispiel Pseudo-Inversion, auf die wir in den Übungen nochmal
eingehen können oder werden oder vielleicht eingehen werden.
Stimmt das?
So, das war also die erste Frage, das heißt, wir sehen die
Verwandtenbeziehungen im Geschwindigkeitsraum, aber was auch wichtig
ist, sind Kräfte und Momente.
So, das heißt, wir nehmen nach wie vor an, dass unser Arm, die
Kinematik bewegt sich entlang der gleichen Trajektorität.
Und wir wollen gucken eigentlich, welche Kräfte und Momente sind
notwendig, zum Beispiel in den einzelnen Gelenken, welche Drehmomente
sind notwendig, damit ich welche Kräfte und Momente am Endefektor
habe.
Das ist natürlich sehr wichtig, wenn ich etwas manipulieren, ein
Objekt mit einem bestimmten Gewicht manipulieren soll, dann sind es
Kräfte und Momente, die auf der Hand einwirken und dementsprechend
muss ich Kräfte und Momente in den einzelnen Gelenken als Soll
-Vorgaben für die Steuerung vorgeben, damit das geleistet wird.
Und wir wollen sehen, wie eigentlich diese Beschreibungen, die wir
hier haben, speziell die Jacobi-Matrix, auch diese Fragen beantwortet.
Also nehmen wir an, wir haben diese Trajektorie, die Kinematik bewegt
sich entlang der Trajektorie, dann wissen wir, dass die geleistete
Arbeit im Gelenkwinkelraum und im Arbeitsraum gleich sein muss.
Und wir vernachlässigen jetzt zunächst mal die Reibung.
Wir wissen eigentlich, die Arbeit, was ist die Arbeit?
Also in einem bestimmten Intervall T1 bis T2 ist die Leistung und die
Integral von der Leistung.
Und wir wissen, wenn wir Kraft mal Geschwindigkeit haben, dann ist es
die Leistung und die Integral davon ist die Arbeit, W.
Und im Gelenkwinkelraum ist das nichts anderes, als statt
Geschwindigkeit hier, Gelenkwinkelgeschwindigkeit, statt Kraft ist das
Drehmoment, also Drehmoment multipliziert mit der
Winkelgeschwindigkeit bekommen wir die Leistung.
Und wenn wir integrieren hier, dann bekommen wir die Arbeit.
Ja, also in beiden Räumen muss alles, das ist Energieerhaltungssatz,
da kann ja nichts anderes passieren.
In beiden Welten haben wir die gleiche, muss die Arbeit gleich
aussehen.
Und wir wissen, Thetapunkt sind die Gelenkwinkelgeschwindigkeiten, Tau
sind die Drehmomente in den einzelnen Gelenken, ja, also in jedem
Gelenk ist ein bestimmtes Drehmoment, X-Punkt ist die Geschwindigkeit
vom Endeffektor und F ist ein sechstimensionaler Vektor, der auf dem
Endeffektor einwirkt.
Also das einmal, wie schwer zum Beispiel das Objekt und welche Kräfte
und Momente wirken, auch da.
So, jetzt, was wollen wir damit?
Wir wollen mal folgendes mal sehen, das heißt, wir haben diese
Beziehung hier hergeleitet und ich hoffe, jeder hat es verstanden.
Und das muss natürlich für jeden, also die Beziehungen oder diese
Beziehung muss für jedes Zeitintervall gelten, deshalb können wir
diese Integrale weg machen.
Dann bekommen wir Thetapunkt transponiert mal Tau, ist X-Punkt
transponiert mal F, also die ist transponiert, ist hier aufgetaucht,
weil wir zu Matrixschreibweisen übergegangen sind und nicht nur
Skalariverte hier betrachten.
Und X-Punkt haben wir eigentlich kennengelernt.
X-Punkt ist nichts anderes als Jacobi-Matrix multipliziert mit Theta
-Punkt.
Transponiert bedeutet, dass Theta-Punkt transponiert mal Jacobi-Matrix
transponiert.
Und wenn ich das hier für X-Punkt einsetze, dann komme ich auf diese
Gleichung und wenn Theta-Punkt hier, wie man sieht, kann beliebig
sein, deshalb kann ich Theta-Punkt auf beiden Seiten eliminieren, dann
bekomme ich diese tolle Gleichung, die sagt mir, dass die
transponierte Jacobi-Matrix die Drehmomente, die in den einzigen
Gelenken auftreten in Beziehung zu den Kräften und Momenten, die am
Endeffektor einwirken, setzt.
Und zwar, die Drehmomente in den Gelenken sind nichts anderes als die
Jacobi -Matrix transponiert, multipliziert mit den Kräften und
Momenten, die am Endeffektor einwirken.
Das ist ja fast ein Zauber.
Eigentlich brauchen wir nur die Jacobi-Matrix, dann können wir fast
die komplette Robotik lösen, oder?
Zumindest was das Greifen und Manipulation angeht.
So, also zusammengefasst, die Jacobi-Matrix setzt Kräfte und Momente
am Endeffektor in Relation zu Drehmomenten in den Gelenken.
Damit können wir folgende Probleme lösen.
Wenn die Kraft am Endeffektor gegeben ist, weil wir wissen, wie schwer
zum Beispiel die Objekte, die wir manipulieren wollen, dann können wir
hier einsetzen und kriegen wir die Drehmomente, die dazu notwendig
sind.
Wenn die Drehmomente in den Gelenken vorgegeben sind, dann können wir
natürlich bestimmen, welche Kräfte notwendig sind.
Dann müssen wir natürlich diese Inverse dann von dieser Matrix auch
bilden.
So, nun mathematisch betrachtet haben wir gesehen, dass die Jacobi
-Matrix eigentlich vieles für uns löst und die Frage, wie berechnet
man diese Jacobi-Matrix?
Ganz genau.
Also wir haben eine Funktion mit mehreren Variablen.
Diese Funktion ist für uns die Vorwärtskinematik, die hängt von den
Variablen Theta 1, Theta 2, Theta 3 bis Theta n und wir müssen das
tatsächlich die Funktion nach den einzelnen Variablen, also die
partielle Ableitung der Funktion nach den einzelnen Variablen machen.
So, und das wollen wir mal ein bisschen angucken.
Es gibt aber in der Robotik oder in diesem Spezialfall auch andere
Varianten.
Da werden wir auch Beispiele in der Übung dazu machen, wie man diese
Jacobi -Matrix geometrisch berechnen kann und zwar spaltenweise, weil
wir wissen ja, wir leiten spaltenweise die einzelnen Komponenten der
Funktion nach den unabhängigen Variablen.
Und bei dieser geometrischen Berechnung ist ganz interessant, kann man
das ganz schnell, natürlich muss man die Geometrie von dem Arm kennen,
also von der kinematischen Kette.
Und wenn wir nach einer Variablen ableiten, die zu einem
Translationsgelenk in der kinematischen Kette gehört, dann haben wir
Folgendes, dass wir ein Gelenkj, also diese Translation wird um
Gelenkj in Richtung von einem Einheitsvektor Vj durchgeführt.
Dann sieht man eigentlich, dass die letzten drei, ich meine, das ist
jetzt eine Nx6-Matrix oder eine 6xN-Matrix, was wir kriegen in dem
Fall, wenn wir im 6-dimensionalen Arbeitsraum bleiben.
Und wenn wir hier die Richtung durch diesen Vektor gegeben haben, dann
ist tatsächlich die Komponente oder die Spalte von der Jacobi-Matrix
hier, die zu der Axi j gehört, nichts anderes als diese Richtung, der
Einheitsvektor Vi und alle drei weiteren Elemente sind null, weil das
ist ein Translationsaxel und deshalb gibt es keine Abhängigkeiten der
Rotationen und deshalb die letzten drei Einträge hier sind null.
Wenn es ein Rotationsgelenk ist, also wir nehmen an, das Gelenkj führt
eine Rotation um eine Rotationsaxi Vi, die wir ja kennen sowieso, an
einer bestimmten Position Pi, wo dieses Pi im Basiskoordinatensystem
beschrieben ist, dann kann man tatsächlich die Spalte der Jacobi
-Matrix so eingeben.
Natürlich, die Rotation ist nichts anderes als die Rotationsaxi, also
der Vektor, der Einheitsvektor entlang der Rotationsaxi, weil der
beschreibt ja die Änderungen der Rotationen.
Die Position ist ein bisschen komplizierter und zwar die ergibt sich
aus dem Kreuzprodukt von diesem Einheitsvektor der Rotationsaxi mit
dem Abstand zwischen der aktuellen Position vom Endeffektor und der
Position vom Gelenk im Basiskoordinatensystem.
Das kann man hier leiten, das will ich jetzt an der Stelle nicht
machen, aber man kann tatsächlich bequem, wenn die Geometrie von dem
Manipulator gegeben ist, auf diese einfache Art und Weise die Jacobi
-Matrix -Spalten berechnen.
Aber wir wollen es numerisch und allgemein machen.
Vorher vielleicht hier die Eigenschaften, also die beschreibt für uns
die Jacobi-Matrix die Beziehungen zwischen Geschwindigkeiten der
Gelenkwinkel und Geschwindigkeiten des Endeffektors und gleichzeitig
beschreibt sie für uns auch Beziehungen zwischen Drehmomenten in den
Gelenken und Kräften und Momenten am Endeffektor und die ist natürlich
abhängig von der Gelenkwinkelkonfiguration.
Einfaches Beispiel, wie man das so berechnet, um noch auf das, was du
gesagt hast vorher zurückzukommen.
Also wir haben hier einen Manipulator mit zwei Gelenken, Theta 1 und
Theta 2, das sind die Segmenti L1 und L2.
Wir arbeiten in diesem Arbeitsraum, das sind die Koordinaten X1 und X2
und nicht X und Y.
Und was wir eigentlich wissen, wir wissen, dass die Vorwärtskinematik
mit X gleich F von Theta beschrieben werden kann und X, wie gesagt,
ist X1 und X2, also nicht XY und Theta sind die zwei Gelenke Theta 1
und Theta 2.
Und wir wissen eigentlich, dass X-Punkt ist die Jacobi-Matrix
multipliziert mit Theta-Punkt, sprich in dem Beispiel hier haben wir
X1 -Punkt, X2-Punkt ist gleich die Jacobi-Matrix, die ist in dem Fall
eine 2x2-Matrix multipliziert mit Theta 1-Punkt, Theta 2-Punkt.
Und nun, wie berechnen wir diese Jacobi-Matrix?
Wir brauchen diese Funktion.
Wir suchen ja eigentlich diese Funktion und diese Funktion ist nichts
anderes als unsere Vorwärtskinematik, also die beschreibt die Lage von
dem Endeffektor in Abhängigkeit von den Gelenkwinkeln und das können
wir hier ganz einfach bestimmen.
Wir wissen, X1 ist nichts anderes als L1Cos Theta 1 plus, mit so ein
bisschen Geometrie, L2Cos Theta 1 plus Theta 2.
X2 ist nichts anderes als L1 mal Sinus, das ist der Abschnitt hier,
plus L2 Sinus Theta 1 plus Theta 2.
Und das ist unsere Funktion eigentlich.
Also wir haben eine Funktion, wir haben X, das ist unser X hier, ist
gleich diese Funktion von Theta, wobei Theta ein Vektor natürlich ist
und hängt von Theta, ein Vektor mit den zwei Komponenten Theta 1 und
Theta 2.
So und was müssen wir machen, damit wir die Kurbelmatrix bekommen?
Wir müssen tatsächlich das ableiten.
So, das heißt, wir leiten ab, X1 Punkt ist gleich Ableitung von
Cosinus ist minus Sinus, innere Ableitung nicht vergessen, weil wir
leiten nach der Zeit ab und Theta hängt von der Zeit ab, deshalb minus
L1 Theta 1 Punkt Sinus Theta 1 minus L2, dann die innere Ableitung ist
Theta 1 Punkt plus Theta 2 und die Ableitung von Cosinus ist Sinus,
ist minus Sinus, für X2 das gleiche.
Wenn wir ein bisschen aufräumen, das heißt, wir fassen alles zusammen,
was Theta 1 ist und alles zusammen, was Theta 2 ist und wir übertragen
das in diese Matrix-Schreibweise, dann bekommen wir X1 Punkt, X2 Punkt
und hier unsere Theta Punkt, Theta 1 Punkt, Theta 2 Punkt und dann
hier, wie man sieht, die zwei, die einzelnen Elemente von dieser 2x2
Matrix.
Und was bedeutet das?
Das bedeutet, die erste Spalte ist unsere J1 und die zweite Spalte ist
J2.
Und wenn wir das haben, dann können wir eigentlich das inverse
kinematische Problem lösen, weil wir haben jetzt das hier, das heißt,
wenn mich beispielsweise Theta 1 Punkt und Theta 2 Punkt
interessieren, um die Tasse zu greifen oder zu erreichen, dann muss
ich nur diese Matrix hier invertieren und das ist eine 2x2 Matrix,
normalerweise leicht invertierbar, es sei denn, diese Matrix ist
singulär, oder?
So, und wann ist diese Matrix singulär?
Kann jemand das so spontan herausfinden?
Wenn irgendwelche Spalten oder Zeilenvektoren linear abhängig sind und
wenn wir hier zum Beispiel Theta 2 gleich 0 haben, dann sind
eigentlich J1 und J2 linear abhängig voneinander und deshalb ist die
Matrix dann nicht mehr invertierbar.
Obwohl das so ein einfaches Problem ist, nur zwei Gelenke und nur im
2D, also nur X1 und X2 im Arbeitsraum.
Und da sieht man hier, dass wir immer eine Lösung haben, solange diese
J1 und J2, also die Spaltenvektoren in dieser Matrix nicht linear
abhängig sind.
Und wenn das der Fall ist, dann kann sich tatsächlich der Endeffektor
in beliebiger Richtung in der Ebene bewegen.
Wenn das nicht der Fall ist, wenn sie linear abhängig sind, dann ist
die Matrix singulär, also zum Beispiel bei Theta 2 gleich 0 und somit
werden die Bewegungen von dem Endeffektor eingeschränkt.
Da kann der Endeffektor sich nicht in beliebiger Richtung bewegen.
So, man sieht, wir wollen auch das Thema ein bisschen vertiefen, was
Singularitäten bei Roboterarmen bedeuten.
Also das heißt, die Jacobi-Matrix ist nicht invertierbar.
Physikalisch betrachtet, also nicht invertierbar und wir müssen hier
invertieren.
Das ist so, wenn wir im Skalaren sind, als ob wir durch Null
dividieren.
Und wenn wir durch Null dividieren, heißt es so unendlich, oder?
Und wenn wir das bei einem physikalischen System haben, dann bedeutet
das eigentlich, dass der Roboter unendlich große Geschwindigkeiten
braucht, um aus solchen singulären Konfigurationen rauszukommen, was
physikalisch und technisch nicht realisierbar ist.
Und deshalb sollen natürlich alle solchen singulären Stellungen bei
einem Roboterarm vermieden werden.
Das ist auch einer der wesentlichen Aspekte, die ich bei der
Motivation hier, oder die in der Gliederung des Kapitels hier standen,
dass wir uns diese Singularitäten hier angucken wollen.
So, und das werden wir das nächste Mal dann machen.
Also was bedeutet Singularitäten?
Und was bedeutet das für die Beweglichkeit von der kinematischen Kette
oder vom Roboterarm, wenn solche zwei Spalten von der Jacobi-Matrix
linear abhängig sind, dann sind das eigentlich solche Situationen, wie
Gelenke ineinander übergehen.
Also wenn ich meinen Arm strecke und ich rotiere jetzt den Oberarm in
die Richtung und den Unterarm in die Richtung, dann bleibt die
Orientierung vom Endeffektor gleich, obwohl ich unterschiedliche
Gelenkwinkelkonfigurationen für Oberarmdrehung und Unterarmdrehung
habe.
Aber für heute machen wir Schluss.
Ich bedanke mich sehr für die Aufmerksamkeit.