Hallo, ich begrüße euch herzlich zur heutigen Vorlesung.
Wir werden heute weitermachen mit Kapitel 3 Kinematik und wir werden
den Rest der ersten Übung, also was ich das letzte Mal behandelt habe,
am nächsten Donnerstag zusammen mit weiteren Aufgaben zu dem, was wir
heute und am Montag zum Thema Kinematik hier kennenlernen werden.
Okay, also es geht um die Modellierung von Robotern.
Das heißt, wenn wir mit Robotern oder wenn wir Roboter programmieren,
dann brauchen wir gewisse Modelle, die uns dabei unterstützen.
Und in den nächsten Vorlesungen werden wir uns mit diesen Modellen,
die man braucht für die Programmierung von Trajektoren eines Roboters,
für die Kollisionsvermeidung, für die Kollisionsberechnungen, für
irgendwelche Analysen von dem Arbeitsraum eines Roboters.
Wir werden uns in den nächsten Vorlesungen mit diesen Themen
beschäftigen.
Wir werden sehen, dass geometrische Modelle von Robotern notwendig
sind in unterschiedlichen Ausprägungen, zum Beispiel um Kollisionen zu
berechnen, um Robotermodelle oder Roboter zu visualisieren.
Das heißt, hier werden wir schauen, wie die Geometrie eines Roboters
dargestellt werden kann.
Geometrie ist nichts anderes als die mathematische Beschreibung der
Form von Körpern.
Das sind dann die Armsegmente beispielsweise eines Roboters oder die
Segmente einer Roboterhand oder Ähnliches.
Eine ganz zentrale Rolle wird hier die kinematische Modellierung eines
Roboters spielen.
Das heißt eigentlich, wie können wir Bewegungszustände von Robotern
beschreiben.
Kinematik als die Lehre der geometrischen und analytischen
Beschreibung von Bewegungszuständen Michotronische Systeme, da werden
wir uns hier mit dem Thema beschäftigen, also Zusammenhänge, die
notwendig sind, um Bewegungen zu beschreiben.
Und am Ende werden wir uns mit der dynamischen Modellierung eines
Roboters beschäftigen, was ja essentiell und wichtig ist für einen
modellbasierten Reglerentwurf, um Bewegungen eines Roboters zu
generieren.
Das heißt, bei der Dynamik werden wir sehen, dass wir hier Bewegungen
von Mehrkörpersystemen betrachten, also Segmente des Roboters, und
zwar nicht im statischen Zustand, sondern als Folge von einwirkenden
Kräften und Momenten.
Das ist noch ein bisschen zu viel, zu abstrakt, aber wir werden am
Ende sehen, wie diese drei unterschiedlichen Modelle eines Roboters
dazu beitragen, dass wir Roboter simulieren, dass wir Bewegungen
beschreiben, dass wir Kräfte und Momente berechnen und entsprechend
auch Regelungen bzw.
Regler für einen Roboter entwerfen können.
Fangen wir mal an, und das wird uns wahrscheinlich heute die ganze
Vorlesung beschäftigen, mit dem kinematischen Modell, und später komme
ich zum geometrischen Modell.
Das kinematische Modell, also eigentlich, nachdem wir diese ganze
Mathematik kennengelernt haben, mit der wir Beziehungen und
Transformationen im Raum beschreiben können, also sowohl Rotationen
als auch Translationen beschreiben können, ist es ja naheliegend, dass
wir diese Mathematik, die wir kennengelernt haben, einsetzen, damit
wir Beziehungen zwischen Armelementen, also z.B.
zwischen der Hand und Oberarm, bzw.
Unterarm, Oberarm, zwischen dem kompletten Arm und einer mobilen Basis
des Roboters beschreiben können.
Das heißt, ganz kurz werden wir die Begriffe kinematische Kette hier
einführen und kennenlernen, was das ist.
Wir werden ein paar Konventionen, speziell hier die sogenannte
Denevith -Hartenberg-Konvention, die, wie wir sehen werden, eine
Beschreibung von Relationen oder eine komplette Beschreibung der
Kinematik eines Roboterarmes erlaubt, mithilfe einer minimalen Anzahl
von Parametern.
Dann werden wir zwei wichtige Probleme kennenlernen.
Einmal das sogenannte direkte kinematische Problem und das inverse
kinematische Problem anhand von Beispielen.
Und wir werden uns nochmal mit einer sehr bekannten Matrix aus der
Mathematik beschäftigen, die sogenannte Jacobi-Matrix, und werden
sehen, wozu diese Jacobi-Matrix, die wir aus der Mathematik kennen,
wozu oder wofür sie im Kontext der Robotik hier eingesetzt wird.
Dann auf weitere Aspekte, die Singularitäten eines Roboterarms, bzw.
die Manipulierbarkeit eines Roboterarms und dann, wie man
Erreichbarkeiten im Arbeitsraum eines Roboters rechnergestützt
berechnen kann und repräsentieren kann, damit man schnell zum Beispiel
darauf zugreifen kann, wenn es um eine Online-Planung von einer
Trajektorie geht.
Und später, wie ich bereits gesagt habe, auf die geometrischen
Modelle.
Fangen wir mal an mit dem kinematischen Modell.
Und ganz vereinfacht zunächst einmal, was ist das kinematische Modell
eines Roboters?
Das kinematische Modell eines Roboters ist ein Modell, das die
Zusammenhänge zwischen zwei Räumen beschreibt.
Einmal der Raum der Gelenkwinkel, also Theta 1 bis Theta 7 bei einem
Roboterarm mit sieben Freiheitsgraden, also Raum, wo die Gelenkwinkel
sind.
Wir nennen das jetzt Gelenkwinkelraum.
Man nennt das auch Konfigurationsraum eines Roboters oder Raum der
Roboterkoordinaten, wobei die Koordinaten sich dann auf die
Gelenkwinkel des Roboters beziehen.
Also die Beziehungen zwischen diesem Raum und dem Raum, in dem
tatsächlich der Roboter operiert.
Also zum Beispiel jetzt hier der karthesische Raum, in dem wir uns
befinden.
Also wenn der Armer beispielsweise in der Küche ist, dann hat er
seinen Gelenkwinkelraum.
Mit sieben Gelenken ist es ein siebendimensionaler Raum.
Das ist der Raum der Gelenkwinkel des Roboters.
Und der Raum, in dem der Roboter natürlich arbeitet und sinnvolle
Aufgaben verrichten soll, ist dieser sechstimensionale Raum, in dem
wir uns befinden.
Das nennt man auch den Arbeitsraum bzw.
den karthesischen Raum.
Und warum braucht man diese kinematischen Modelle?
Das ist ja sehr naheliegend.
Wir wollen wissen, wie soll ein Roboter beispielsweise seine Gelenke
oder seinen Arm stellen.
Welche Konfigurationen der Gelenke des Armes sind notwendig, damit der
Roboter mit seiner Hand an der Tasse ist oder am Griff der Tür ist und
diese Tür beispielsweise aufmacht.
Also Zusammenhang zwischen Gelenkwinkelraum und Stellungen des
Roboters, also karthesische Stellungen des Endeffektes des Roboters.
Zum Zweiten, mithilfe von diesem Modell können wir etwas über die
Erreichbarkeit eines Roboters machen.
Das heißt, wir können etwas über die Erreichbarkeit sagen.
Das heißt, wenn ich weiß, dass das kinematische Modell der Arm maximal
90 cm lang ist, dann weiß ich, dass ein Objekt, das sich im Abstand
von 120 cm befindet, nicht erreichbar ist.
Das ist natürlich sehr trivial, aber wir werden sehen, dass wir
mithilfe von diesem Modell auch Aussagen darüber machen können, wie
gut eine Position im Raum für einen Roboter erreichbar ist.
Das heißt, mit wie vielen Gelenkwinkelmöglichkeiten kann der Roboter
diese Position im Raum erreichen.
Natürlich die Relation zwischen den Körpern des Roboters.
Wenn wir diese Modelle haben, dann können wir auch Aussagen darüber
machen, ob beispielsweise jetzt der Unterarm mit dem Torso kollidiert
bei einer bestimmten Gelenkwinkelkonfiguration oder der Oberarm mit
dem Unterarm kollidiert, beispielsweise bei einem bestimmten
Gelenkwinkel vom Ellenbogen.
Und dann können wir sowas beispielsweise vermeiden.
Also alle Kollisionen des Roboters mit sich selbst.
Wenn wir das Modell vom Roboter, natürlich nicht nur die reine
Kinematik, wir brauchen hierzu noch die geometrischen Modelle vom
Roboter, dann können wir natürlich hier die Selbstkollisionen
berechnen.
Und dann können wir natürlich mithilfe von diesen Modellen die
Relation eines Roboters in der Umgebung, also zu Objekten in der
Umgebung und somit nicht nur Selbstkollisionen, sondern Kollisionen
mit Gegenständen in der Umgebung erkennen bzw.
berechnen.
Nun denke ich, das ist motivierend genug und jeder glaubt, dass wir so
ein Modell brauchen.
Egal, ob dieses Modell jetzt analytisch, wie wir das in dieser
Vorlesung herleiten werden, zur Verfügung steht, also mithilfe von
allem, was wir aus der Mathematik, Physik und Geometrie und Mechanik
kennen, oder ob diese Modelle auch gelernt werden, zum Beispiel aus
Daten, genauso wie Menschen.
Also ein Kind, wenn er anfängt Objekte zu greifen, der lernt das ja
einfach aus seiner Erfahrung, aus sensorischen Daten.
Und da gibt es natürlich heutzutage auch Forschungsarbeiten auf dem
Gebiet, wo man sagt, all diese Modelle können wir lernen.
Zum Beispiel, dass ein Roboter fängt seinen Arm irgendwie willkürlich
mal zu bewegen und daraus ein kinematisches Modell, der sagt, wie
viele Gelenke vielleicht der Roboterarm hat und wie die Gelenke sich
bewegen und so weiter und so fort.
Ist sehr legitim und wir sind ja im Zeitalter von maschinellem Lernen
und so weiter, wo jeder versucht, alles zu erschlagen mit maschinellem
Lernen.
Aber wenn wir so viel wissen über die Welt und über die Physik und die
Mathematik, warum immer alles vom Scratch eigentlich versuchen zu
lernen?
Also zwei Varianten, die hier aktuell natürlich in der Forschung
existieren.
So, nun gehen wir weiter und ich will, bevor ich jetzt anfange mit dem
kinematischen Modell, nochmal die Idee anhand von diesen zwei
wichtigen Problemen, die wir im Kontext von kinematischen Modellen
hier kennenlernen werden.
Einmal das sogenannte direkte kinematische Problem, das heißt, ich
habe ja einen Becher hier auf dem Tisch und ich will ja diesen Becher
greifen.
Und dazu muss ich wissen, wo ist eigentlich meine Hand gerade.
Und diese Information, wie man sieht, wenn man hier die Gelenkwinkel
von dem Armer mal anschaut, dann weiß man eigentlich, es gibt ja eine
Beziehung zwischen der Endposi, also wo die Hand oder der Endeffektor
ist, und der Stellung dieser Gelenke.
Das ist, was wir als das direkte kinematische Problem bezeichnen und
kennenlernen werden.
Das heißt, wir wollen die Lagie, und mit Lagie meine ich immer
Position und Orientierung, also einen 6D-Vektor vom Endeffektor, aus
den Gelenkwinkelstellungen des Roboters hier bestimmen.
Eigentlich, wenn ich die Gelenkwinkel aus den Sensoren, aus den
Encodern ablesen kann, und ich habe ja eine Art Beziehungen, die mir
die Rotationen und Translationen der Gelenke zueinander beschreiben,
dann kann ich natürlich dieses Problem hier lösen.
Dramatischer wird es, wenn es andersrum, wenn das Problem anders ist.
Das heißt, ich habe die Position von der Tasse, und es interessiert
mich nicht, wo meine Hand ist, sondern es interessiert mich, wie komme
ich zu dieser Tasse.
Das heißt, wie soll ich den Arm jetzt hinstellen, damit ich überhaupt
zu diesem Objekt auf dem Tisch stelle.
Das heißt, gegeben ist die Zielposi hier von der Hand, und mit welchen
Gelenkwinkelwerten erreiche ich diesen Becher.
Das ist also das sogenannte inversi-kinematische Problem, welches für
uns tatsächlich die Gelenkwinkel eines Roboters, jetzt im Falle von
ARMA, die sieben Gelenkwinkel, die im Arm sind, aus der 6D-Posi von
dem Becher auf dem Tisch bestimmt.
Und das Problem ist natürlich wesentlich, weil jede Trajektorie, die
wir ausführen mit einem Roboter, muss das Problem lösen.
Für jede Trajektorie, die wir ausführen, müssen wir das Problem lösen.
Wenn wir entlang einer bestimmten Bahn fahren müssen, ja, die Bahn ist
gegeben im karthesischen Raum, dann müssen wir für jeden Punkt dieser
Trajektorie das inversi-kinematische Problem lösen.
Und die Leute, die sich so ein bisschen vielleicht mit dem Thema
auskennen, die wissen beispielsweise, dass das Problem hier, oder
könnten wissen, ja, das werden wir lernen, dass das Problem hier nicht
immer trivial lösbar ist, wie das sogenannte direkte kinematische
Problem.
So, bevor wir jetzt hier einsteigen, ganz kurz ein paar Definitionen.
Was ist eine kinematische Kette?
Das, was wir machen hier, bezieht sich nicht nur auf kinematische
Modelle auf Robotik, sondern auf beliebige kinematische Ketten.
Und eine kinematische Kette ist zum Beispiel ein Roboterarm oder der
gesamte Roboter.
Das heißt, wir haben hier beispielsweise die Basis von einem
Roboterarm, das im Gegensatz zu all diesen Beispielen, die wir in den
Buschen sehen, wo man so ein paar Gelenke von einem statischen Arm,
der irgendwo fixiert ist, in einem Basiskoordinatensystem.
Wir nehmen immer den Armer hier als Beispiel.
Das heißt, zum Beispiel die Basis von diesem Roboterarm ist das
Schultergelenk, irgendwas in der Schulter hier.
Dann haben wir natürlich Gelenke, also insgesamt drei hier, ein
Ellenbogengelenk und zwei im Handgelenk hier.
Und dann haben wir Segmenti, die diese Gelenke miteinander verbinden.
Man nennt sie auch links auf Englisch, man nennt sie auf Deutsch
Segmenti, beziehungsweise Glieder der kinematischen Kette.
Und dann haben wir den Endeffektor, der ein einfacher Backengreifer
sein kann, bei einem Roboter, oder eine fünffingerige Hand, wie hier
in dem Beispiel angegeben ist.
So, und das heißt, wenn man das Ganze jetzt ein bisschen allgemein,
beziehungsweise hier wie das normalerweise dargestellt ist in der
Literatur, eine kinematische Kette wird von mehreren Körpern gebildet,
die durch Gelenke miteinander kinematisch verbunden sind, zum Beispiel
ein Roboterarm.
Und da sieht man, man unterscheidet zwischen sogenannten offenen
kinematischen Ketten und geschlossenen kinematischen Ketten.
Das heißt, hier gibt es eine Basis, zum Beispiel war die Schulter bei
Arma und der Endeffektor hier die Hand von dem Roboter.
Aber es gibt solche kinematischen Ketten, die geschlossen sind, also
wo das erste und letzte Gelenk hier fest sind und dazwischen mehrere
Segmenti, die mit Gelenken miteinander verbunden sind.
So, das sind hier ein paar Definitionen.
Also jedes Armelement entspricht einem starren Körper.
Jedes Armelement ist mit dem nächsten durch ein Gelenk verbunden.
Wir haben natürlich nicht nur Rotationsgelenke, sondern
Translationsgelenke, beziehungsweise Schubgelenke, wie wir das in den
ersten Vorlesungen kennengelernt haben.
Und jedes dieser Gelenke, wir gehen jetzt noch davon aus, dass jedes
Gelenk nur einen Bewegungsfreiheitsgrad hat.
Das heißt, wir haben keine Gelenke mit zwei Freiheitsgraden oder mit
drei Freiheitsgraden, wie ein Kugelgelenk oder wie ein Sattelgelenk,
was wir im menschlichen Körper kennen, zum Beispiel die Schulter mit
drei Freiheitsgraden oder ähnliches.
So, das heißt, wir haben pro Gelenk hier einen Bewegungsfreiheitsgrad
und der kann entweder eine Rotation sein oder eine Translation sein.
Und das sind so Beispiele.
Das ist eine Kinematik von einem humanoiden Roboter.
Man sieht hier, man hat Armsegmente, das Unterschenkel, Oberschenkel,
Unterarm, Oberarm, Torso und diese Segmente sind über Gelenke
miteinander verbunden, in dem Beispiel hier von dem Roboter nur
Rotationsgelenke.
Und die Parameter, die man braucht, um die Lage vom Roboter im Raum zu
beschreiben, sind natürlich Parameter dieser Gelenke.
Was würde uns interessieren hier?
Natürlich würde uns interessieren irgendwie die Rotationsachsen.
Wo liegen die Rotationsachsen hier im Ellenbogen oder in der Schulter
genau?
Wie sind sie ausgerichtet?
Wie liegen sie relativ zueinander?
Wie weit kann sich ein Gelenk drehen?
Also Gelenkwinkelbegrenzungen.
Und wie weit sind z.B.
die einzelnen Segmente in der kinematischen Kette?
Also z.B.
der Oberarm und Unterarm des Roboters.
Das heißt, wir haben als kinematische Parameter z.B.
Rotationsachsen steht hier, aber auch Transformationen zwischen diesen
Gelenken, weil die Lage vom Knie im Bezug zu Fuß oder zum Sprunggelenk
ist nicht nur der Abstand des Unterbeines, sondern auch die Rotation
von dem Unterbein relativ zu dem Bezugskoordinatensystem.
So, und man sieht hier ein Beispiel, auch von dem AMA 3, da sieht man
hier ein Modell, ein geometrisches Modell zunächst mal hier von dem
Arm.
Und man sieht hier, dass man in jedem Gelenk eigentlich, wir haben
hier drei Gelenke in der Schulter, hier eins im Ellenbogen, eins im
Unterarm und zwei im Handgelenk.
Und man sieht hier, dass Koordinatensysteme diesen Gelenken zugeordnet
sind, anhand derer wir diese Transformationen beschreiben können.
Das heißt, um das hier machen zu können, damit wir wissen z.B.
wo die Hand ist, wenn wir bestimmte Gelenkwinkel hier haben, müssen
wir zunächst mal die Lage der Gelenke zueinander spezifizieren.
Also z.B.
das sind zunächst mal feste Transformationen zwischen diesen
Koordinatensystemen.
Da sieht man hier mehrere Koordinatensysteme im gleichen Punkt, also
Rot und Grün und Blau, das sind XYZ der lokalen Koordinatensysteme in
den Gelenken.
Man sieht hier, dass wir im Ellenbogen auch zwei Gelenke haben, also
einmal die Ellenbogenflexion und Extension und einmal die
Unterarmdrehung.
Und man sieht auch, dass wir zwei Gelenke hier im Handgelenk haben.
Das heißt, eigentlich kann die Beschreibung von diesem Arm darauf
zurückgeführt werden, dass wir auf die Beschreibung der Beziehungen
zwischen diesen unterschiedlichen Koordinatensystemen zurückgeführt
werden.
Und wie beschreiben wir Beziehungen zwischen zwei Koordinatensystemen?
Oder Lage eines Punktes in einem Koordinatensystem, also zum Beispiel
Ursprung vom Koordinatensystem vom Ellenbogen im Koordinatensystem der
Schulter.
Was brauchen wir oder was müssen wir überhaupt machen, um die Lage
eines Gelenks, zum Beispiel Ellenbogen im Koordinatensystem der
Schulter zu beschreiben?
Enttäuscht mich nicht.
Wie viele Parameter sind das oder welche Methoden haben wir
kennengelernt, um das zu machen?
Naja, viele Methoden eigentlich.
Wir müssen die Translation des Ellenbogens im
Schulterkoordinatensystem haben und wir müssen die Rotation vom
Ellenbogen im Schulterkoordinatensystem haben.
Und wir wissen, die Translation, das ist ein Translationsvektor, und
für die Rotation haben wir einen Haufen an Methoden kennengelernt.
Wir haben 3x3 Rotationsmatrizen, wir haben Eulerwinkel, wir haben Roll
-Picot -Winkel, wir haben Quaternionen und so weiter und so fort.
Das brauchen wir alles, damit wir am Ende tatsächlich sagen können, wo
ist die Hand des Roboters im Basiskoordinatensystem.
Das sind aufeinanderfolgende Gelenke, aufeinanderfolgende
Transformationsmatrizen, zum Beispiel homogene
Transformationsmatrizen, die, wie wir wissen, man miteinander
verketten kann durch Multiplikation, um die gesamte Transformation zu
beschreiben von Gelenk 0 bis Gelenk N oder vom Koordinatensystem 0 bis
Koordinatensystem N.
Also was wir machen müssen, wir haben feste Transformationen zwischen
den Gelenken, weil wir nehmen an, das ist ein starrer Roboter, es sind
keine deformierbaren Segmente, Oberarm und Unterarm, die Beziehungen
sind immer gleich, die Beziehungen zwischen Punkten auf den
Armelementen, die bleiben immer gleich bei der Bewegung.
Und was man machen muss, ist so lokale Koordinatensysteme der Gelenke
definieren, wie hier skizziert ist, und dann Transformationen von
Gelenk I-1 zu Gelenk I durch Transformationsmatrizen, zum Beispiel
homogene Transformationsmatrizen, die wir kennengelernt haben,
bestimmen.
Und wir wissen, für jedes Gelenk muss dann eine Transformation
bestimmt werden und diese Transformation hat drei Rotationsparameter
und drei Translationsparameter.
Also insgesamt eigentlich brauchen wir für die Beschreibung von
Beziehungen zwischen Koordinatensystemen hier in diesem Arm sechs
Parameter pro Beziehung zwischen Gelenk I-1 und I.
Drei Translationen und drei Rotationen, wenn wir mit Winkeln arbeiten,
mit Euler oder mit Roll-Picot.
Die Frage ist jetzt, geht es mit weniger Parameter als sechs
Parameter?
Und das ist tatsächlich, was ein Herr Denevitt-Hartenberg festgestellt
hat oder vorgeschlagen hat und wo er eine Konvention eingeführt hat,
die eigentlich nichts Neues ist, sondern durch diese Konvention kann
man die Festlegung der Koordinatensysteme in den Gelenken so geschickt
machen, dass man mit vier Parametern statt mit sechs Parametern
auskommt.
Das heißt, es gibt irgendein Kochrezept, mit dem man diese lokalen
Koordinatensysteme in den Gelenken geschickt festlegt, sodass man die
Anzahl der Parameter, die notwendig sind, um die Beziehungen zwischen
zwei aufeinanderfolgenden Gelenken zu definieren oder zu beschreiben,
reduziert.
So, wie funktioniert das?
Man hat zunächst mal, wie wir schon wissen, eine systematische
Beschreibung der Beziehungen.
Das sind Translationen und Rotationen zwischen benachbarten Gelenken.
Und in diesem Paper hier von Denevitt-Hartenberg von 1955 aus der
Mechanik, wie man sieht, Journal of Applied Mechanics, kann man die
Anzahl der Parameter, die notwendig sind, also bis jetzt wissen wir
eigentlich, was wir gelernt haben.
Wir brauchen sechs Parameter, um diese Transformation mal zu
beschreiben.
Und mit Hilfe von dieser Konvention können wir die Anzahl der
Parameter von sechs auf vier beschreiben.
Wie macht er das?
Man definiert natürlich ein Koordinatensystem in jedem Gelenk.
Jedes Koordinatensystem wird auf Basis von drei Regeln bestimmt.
Jedes Gelenkkoordinatensystem wird auf Basis von drei Regeln bestimmt.
Die erste Regel sagt, dass die ZI-1-Achse, also zum Beispiel Z1, liegt
entlang der Bewegungsachse vom Gelenk 2.
Also die ZI-1-Achse oder Gelenk liegt entlang der Bewegungsachse des
Ethengelenks.
Dann die XI-Achse, also die X-Achse beim Ethengelenk, verläuft entlang
der gemeinsamen Normalen auf den zwei Z-Achsen, also auf die Z-Achse
vom Gelenk I-1 und Gelenk I und zeigt von der ZI-1-Achse weg.
Und die Y-Achse vervollständigt das Ganze zu einem rechtwinkligen oder
zu einem Koordinatensystem entsprechend der Rechthandregel.
Und das macht man für jedes Gelenk, angefangen mit der Basis bis hin
zum letzten Gelenk.
Was wir hier präsentieren in dieser Vorlesung ist nur eine Variante,
wie man diese Parameter bestimmt beziehungsweise wie man die
Koordinatensysteme festlegt, um diese Reduktion der Anzahl der
beschreibenden Parameter zu erreichen.
Also aufgepasst, wenn ihr in unterschiedlichen Büchern mal nach den
David -Hartenberg-Notationen sucht, dann wundert ihr euch nicht, dass
die Beschreibungen in den unterschiedlichen Büchern unterschiedlich
sind.
So, wir wollen gucken, wie das funktioniert und wie kommt man wirklich
auf diese vier Parameter.
Also eigentlich, das Problem ist, ich habe ein Gelenk hier I plus 1
und ich habe hier ein Gelenk I, wie hier dargestellt.
Dazwischen die zwei Gelenke sind verbunden mit einem Armelement I,
also zum Beispiel Schulter und Ellenbogen.
Und das Ganze geht hier weiter am Element I plus 1 und hier am Element
I minus 1.
Und die Frage, was wir gerade suchen, wir suchen die Transformation,
die diese zwei Gelenke ineinander bringt.
Und man sieht hier zum Beispiel, was der Hartenberg vorschlägt.
Er sagt, die ZI minus 1 Achse muss entlang der Achse vom Gelenk I.
Deshalb hier ZI minus 1 und hier ZI bei Gelenk I plus 1.
Dann als nächstes, die zweite Regel ist, oder was man schon daraus
eigentlich ablesen kann, die Armelementlänge AI, die beschreibt jetzt
den Abstand zwischen diesen zwei Achsen entlang der gemeinsamen
Normali.
Also das ist die Normali auf ZI und ZI minus 1 und der Abstand
zwischen denen, das ist ein Parameter AI.
Das ist natürlich sehr wichtig und das gibt uns mehr oder weniger die
Länge vom Oberarm in unserem Beispiel.
Also im Armer-Beispiel.
So, dann die nächste Regel heißt, XI liegt entlang der Normalen von ZI
minus 1 zu ZI und zeigt von ZI weg.
Also er zeigt XI in die Richtung und nicht in die Richtung.
Das ist auch nichts Schlimmes.
Also auch senkrecht auf dem hier, das heißt, es ist ein legitimes,
rechtswinkliges Koordinatensystem.
Und die nächste Regel sagt, oder was man daraus schon jetzt hier sehen
kann, man kann sehen, dass dieser Versatz der Gelenke oder wie schräg
die Gelenke relativ zueinander sind, kann man beschreiben anhand von
dem Winkel Alpha I.
Und zwar Alpha I ist der Winkel eigentlich zwischen ZI minus 1 und ZI
im Ursprung vom Koordinatensystem I.
Und zwar, wie soll ich ZI minus 1 um die XI-Achse drehe, damit ZI
minus 1 in ZI hineingeht.
Das heißt, man kann sich vorstellen, wenn ich ZI minus 1 hierher
verschiebe, dann drehe ich ZI minus 1 um die XI-Achse, solange bis ZI
minus 1 in Übereinstimmung mit ZI ist.
Und das ist ein Winkel Alpha.
Und dieser Winkel natürlich beschreibt für uns, wie schräg die Achsen
relativ zueinander sind.
Also, das heißt, was haben wir bis jetzt?
Wir haben zwei Parameter.
Wir haben Alpha I, AI und Alpha I.
Was haben wir noch?
Wir haben jetzt natürlich die zwei Gelenke, die können weit weg
voneinander sein, also Alpha AI entfernt voneinander sein, aber die
können auch versetzt im Raum sein.
Und diesen Versatz kann man natürlich hier ablesen anhand von dem
Abstand, also das nennt man auch Gelenkabstand, zwischen der XI minus
1 Achse und der XI-Achse.
Und zwar entlang der ZI I minus 1 Achse.
Das heißt, wenn wir das hier verlangen, das ist die gemeinsame
Normali, das ist auch XI, schneidet hier.
Und das ist unser XI, der Ursprung von dem hier, also der Ursprung vom
Gelenk I sollte hier sein.
Und diese Differenz hier ist nichts anderes als DI.
Das braucht man natürlich, weil da wissen wir, wie versetzt die
Gelenke gegeneinander entlang der X-Achse sind.
Das heißt, wie viele Parameter haben wir jetzt?
Wir haben AI und wir haben DI und wir haben Alpha I.
Was fehlt uns noch?
Es fehlt uns natürlich, wie die Gelenke zueinander gedreht sind.
Und zwar tatsächlich, wie sie rotiert zueinander sind.
Also eigentlich, wir haben jetzt XI und ZI und jetzt müssen wir
gucken, dass diese zwei Koordinatensysteme, also vom Koordinatensystem
I und vom Koordinatensystem I minus 1 so gedreht werden, dass sie
ineinander überführt werden.
Und zwar, wir müssen also dieses Koordinatensystem I minus 1 um ein
TTI drehen, damit XI minus 1 parallel zu XI ist.
Und dann haben wir eigentlich die zwei Gelenke aufeinander gebracht.
So, was bedeutet das?
Das bedeutet eigentlich, wir kennen den Abstand, wir kennen den
Versatz, wir wissen, wie die Gelenke schräg zueinander liegen und wir
wissen, wie die zwei Koordinatensysteme hier verschoben oder gedreht
werden müssen, damit sie ineinander überführt werden.
Und mehr brauchen wir nicht.
Das heißt, mithilfe von diesen vier Parametern können wir tatsächlich
jetzt die kompletten Beziehungen, die Transformationen, also Lagen von
Punkten, zum Beispiel hier im Gelenk I plus 1 im
Basiskoordinatensystem vom Gelenk I beschreiben.
Okay, das war ja eine schöne Visualisierung jetzt, wir müssen das ein
bisschen mathematisch formulieren.
Eigentlich sind diese Parameter nichts anderes als Parameter von
irgendwelchen Transformationen.
Und diese Transformationen, vielleicht ganz kurz, ich habe ja das
Beispiel jetzt nur für Rotationsgelenke gemacht, wo natürlich der
letzte Winkel hier, V, ist die unabhängige Variable, weil das ist die
Drehung von dem Gelenk.
Bei einem Schubgelenk oder bei einem Lineargelenk ist natürlich die
Variable hier, die unabhängige Variable, ist natürlich D und nicht
Theta.
Also die Verschiebung entlang, D war die Verschiebung entlang der ZI
-Achse zwischen den zwei Koordinatensystemen.
Stellt euch mal vor, es gibt hier ein Gelenk, der bewegt sich hoch und
runter, natürlich D würde sich verändern und nicht Theta.
Gut, jetzt versuchen wir mal das mathematisch zu beschreiben.
Also, das heißt, um diese zwei Koordinatensysteme ineinander zu
überführen, haben wir zunächst mal eine Rotation Theta I, um die die
ZI -Achse und damit die XI-Achse parallel zur XI-Achse liegt.
Und das ist eine Rotation um eine Z-Achse und das können wir
dargestellt hier mithilfe von homogenen Koordinaten, homogenen
Matrizen, Rotation um die Z-Achse und dann unser Cosinus minus Sinus
und Sinus Cosinus.
Und zwar die Rotation um einen Winkel Theta I, deshalb Cosinus Theta I
minus Sinus Theta I und so weiter und so fort.
Was war die nächste Sache, die wir gemacht haben?
Wir haben eine Transformation um DI von dem Koordinatensystem I minus
1 zu I.
Das heißt, wir haben eine Translation entlang der Z-Achse und wir
wissen, dass wir diese Translation mithilfe eines DI hier, mithilfe
von DI in dieser homogenen Matrix beschreiben können.
Man sieht hier, dass die 3x3 Rotationsmatrix die Einheitsmatrix ist,
weil wir haben bei dieser Transformation keine Rotation.
So, das heißt Theta I und DI haben wir.
Was haben wir noch?
AI war eine Verschiebung entlang der X-Achse.
Das ist eine Translation entlang der X-Achse.
Rotationsmatrix ist die Einheitsmatrix und Translation um die X-Achse
sieht man hier.
So, und die vierte Variante war die Rotation um die XI-Achse und zwar
um den Winkel Alpha I.
Rotation um die X-Achse um Alpha I, das ist unsere Rotationsmatrix und
keine Translation.
So, und mithilfe von all diesen vier Transformationsmatrixen können
wir tatsächlich jetzt die Lage vom Koordinatensystem I im
Koordinatensystem I-1 beschreiben.
Wie bekommen wir das?
Wir multiplizieren alle diese vier Matrixen miteinander.
Das heißt, wenn ich diese vier Matrixen miteinander multipliziere, die
ich vorher gesehen habe, dann kommen wir auf eine Matrix, die gibt uns
immer die Transformation, also auf eine homogene Matrix auch, man
sieht hier 0001, die gibt uns die Transformation zwischen Gelenk I-1
und I.
Und diese Matrix, wie man sieht hier, hat nur oder enthält nur,
abgesehen von den trigonometrischen Funktionen, nur die Parameter
Theta, Alpha, D und A, die wir vorher hatten, um überhaupt diese
Transformation zu bestimmen.
Also Theta I, Alpha I, A I und D I.
So, und nun wollen wir nicht immer die Beziehungen oder die Lage vom
Koordinatensystem I im I-1, sondern manchmal interessiert uns
vielleicht die Lage vom Koordinatensystem I-1 im I.
Was müssen wir also machen?
Wir müssen nur diese Transformationsmatrix invertieren.
Und die invertierte Transformationsmatrix sieht so aus.
Und man sieht hier bei dieser invertierten Transformationsmatrix, dass
natürlich die 3x3 Matrix hier, also dieser Teil hier von dieser 4x4
Matrix, nichts anderes als die transponierte Matrix von dieser 3x3
Matrix hier in der ersten Transformation.
Das spart viel Zeit und viel Aufwand, wenn man solche Tricks hier
kennt, weil wir wissen ja, die Inversi-Matrix von Rotationsmatrixen,
dass sie ja orthogonal sind, identisch ist mit der transponierten
Matrix.
Also hier haben wir Cosinus minus Sinus, Cosinus und Sinus, Sinus.
Und man sieht hier Cosinus minus Cosinus, Sinus, Sinus in der ersten
Spalte.
Natürlich hier sieht die Welt anders aus, das ist nicht transponierte
für die komplette Matrix, sondern nur für die 3x3 Rotationsmatrix.
Okay, gibt es Fragen dazu?
Alles klar, dann sieht die Sache einfach aus.
Also haben wir jetzt eine 4x4 Matrix, die nur von vier Parametern
abhängt, mit der wir Beziehungen zwischen Koordinatensystemen
beschreiben.
Wenn wir das jetzt für den kompletten Roboterarm machen wollen, also
von der Basis bis zum letzten Gelenk, dann haben wir natürlich nichts
anderes als eine Multiplikation von diesen Transformationsmatrixen.
Also eine Transformation von der Basis, zum Beispiel Gelenk 0 nach 1,
der hängt natürlich nur von Theta 1, von der Drehwinkel Theta 1.
Transformation von Gelenk 1 nach 2 hängt natürlich nur von Theta 2,
und so weiter und so fort, bis Transformation von M-1 zu M, und das
hängt natürlich vom letzten Gelenkwinkel M.
Und man sieht also, dass man auf diese Art und Weise die Position von
dem Endeffektor, also vom letzten Gelenk, im Basiskoordinatensystem
des Armes beschreiben kann.
So, und wenn wir jetzt beispielsweise die Gelenkwinkel verändern, dann
kriegen wir automatisch immer die Position, oder?
Also wenn ich die Gelenkwinkel hier verändere, dann verändern sich
diese Matrizen, und durch die Multiplikation kriege ich eine andere
Positionorientierung vom Handgelenk.
Und was ist das?
Das ist nichts anderes als das direkte kinematische Problem.
Das heißt, ich habe jetzt eine Beziehung hier, Multiplikation von
Matrizen, das ist wiederum eine 4x4 Matrix, in der natürlich
trigonometrische Funktionen auftauchen, die von Theta 1 bis Theta M
abhängen.
Und wenn ich jetzt die Thetas kenne, also die Gelenkwinkel vom Arm
kenne, ich setze sie nur ein in dieser Matrix, und dann kriege ich die
Position, die neue Positionorientierung von dem Endeffektor.
Und das ist was wir, nichts anderes als das direkte kinematische
Problem, was wir vorher gesehen haben.
Das heißt, ich will wissen, wo ist meine Hand bei bestimmten
Konfigurationen, oder bei bestimmten Gelenkwinkelwerten, und das ist
tatsächlich, was diese DH-Transformationen uns hier liefern.
So, Zusammenfassung.
Wie geht man also vor, wenn man für einen Roboterarm diese DH
-Transformation oder die DH-Parameter bestimmen will?
Man macht zunächst mal sich eine Skizze von dem Roboter, die bekommt
man vielleicht auch von den Konstruktoren, oder kann man selber auch
ableiten.
Man identifiziert und nummeriert die Gelenke, also angefangen mit
Gelenk 1 und das letzte Gelenk ist N.
Man zeichnet die XI-1-Achse im Gelenk I, also laut den Regeln von
Hartenberg.
Man bestimmt die Parameter AI, und zwar das ist der Abstand zwischen
den ZI-1 und ZI-Achsen entlang der gemeinsamen Normalie.
Und man zeichnet dann die XI-Achse, und zwar senkrecht auf der ZI
entlang dieser gemeinsamen Normalie, aber zeigt von ZI-1 weg.
Ich weiß nicht, ob mir jemand folgen kann bei diesen ganzen Sachen.
Und dann man bestimmt den Parameter AI, also wie die Verwindung um die
XI -Achsen.
Anschließend den Parameter D, das heißt der Abstand der Achsen
voneinander entlang der ZI-1-Achse bei dem Parameter DI.
Und anschließend den Rotationswinkel, das heißt die Rotation der X
-Achse um die ZI-1-Achse, damit wir dieses DTE bekommen.
Und dann bestimmt man diese Gelenktransformationsmatrizen, also AI-1
zu AI, und verknüpft sie miteinander, wie wir das gerade hier gemacht
haben.
Gut, gehen wir weiter.
Das habe ich bereits erwähnt, dass wir hiermit auch auf eine einfache
Art und Weise das sogenannte direkte kinematische Problem lösen.
Und das direkte kinematische Problem zur Erinnerung war nichts anderes
als das, wo ist meine Hand.
Ich habe bestimmte Gelenkwinkelstellungen hier in meiner kinematischen
Kette und ich will wissen, wo ist der Endeffektor oder die Hand.
Also die Position und Orientierung.
Und da wir jetzt diese Transformation zwischen Schulter 1, Schulter 2,
Schulter 2 Ellenbogen, Ellenbogen-Handgelenk usw.
usf.
wissen wir, dass diese Beziehung eigentlich durch eine 4x4 Matrix
angegeben werden kann.
Und dass in dieser 4x4 Matrix die ersten drei Elemente von der letzten
Spalte die Position sind.
Und dass wir in der oberen linken 3x3 Matrix die Orientierung von der
Hand im Bezug-Koordinatensystem, also im ersten Koordinatensystem
ablesen können.
So nun haben wir das gerade gesehen, das heißt eigentlich die
Gelenkwinkel sind vorgegeben hier.
Die Stellung vom Tool Center Point oder vom Endeffektor hier ergibt
sich aus der oberen Gleichung durch Einsetzen der Gelenkwinkel.
So nun wollen wir ein paar Beispiele kennenlernen.
Das ist zum Beispiel hier ein Roboterarm mit drei Gelenken.
Das ist ein planarer Roboterarm, könnte man sich vorstellen.
Das sind die Drehachsen, die Achse 1 mit dem Gelenkwinkel Theta 1, die
Achse 2 mit dem Gelenkwinkel Theta 2 und die Achse 3 hier mit dem
Gelenkwinkel Theta 3.
Also das sind die drei Gelenkwinkel von diesem planaren Arm.
Und was man macht natürlich ist hier nichts anderes als diese
Konventionen oder diese Regeln, die ich gerade präsentiert habe.
Das heißt die Z-Achse kommt hier raus, die X-Achse geht zur Seite bei
X0 und Y geht nach oben.
Dann haben wir das erste Koordinatensystem auf die gleiche Art und
Weise das zweite Koordinatensystem.
Also die Z-Achsen gehen raus hier aus der Zeichnungsebene und X0 und Y
in die andere Richtung.
Und man sieht hier in diesem Beispiel natürlich der Abstand der Achsen
voneinander AI ist nichts anderes als die Segmentlänge hier.
Der Abstand hier ist nichts anderes als A2, der Abstand hier ist
nichts anderes als A3.
Und was man hier machen kann, man kann natürlich jetzt diese DH
-Parameter ablesen.
Zum Beispiel habe ich bereits erwähnt, dass AI vor Gelenk 1 ist nichts
anderes als das hier.
Die zwei Achsen, die sind eigentlich ausgerichtet, das heißt Alpha I
ist 0, weil beide Z-Achsen gehen in die Ebene.
Es gibt überhaupt keinen Versatz zwischen dem Ursprung hier von Gelenk
1 und Gelenk 0 entlang der X1-Achse.
Deshalb ist DI gleich 0.
Und natürlich die unabhängige Komponente hier oder unabhängige
Variable bei einem Rotationsgelenk ist Theta 1.
Und zwar ist das der Winkel, um den wir das Koordinatensystem X0
drehen müssen, damit die X-Achsen X0 und X1 in Übereinstimmung sind,
also Theta 1.
Und man sieht von Gelenk 2 und Gelenk 3 ist es ähnlich.
Also man kommt hier auf diese Parameter und mithilfe von diesen
Parametern kann man natürlich hier die Transformationsmatrizen
bestimmen.
Da wir so viele Nullen hier haben, also Alpha I ist 0 und DI ist 0,
deshalb verschwinden so viele Termine in dieser Gleichung, die wir
vorher gesehen haben.
Das heißt, wenn ich hier ein paar mal zurückgehe, sorry, aber
vielleicht ist es interessant, das zu sehen.
Da zum Beispiel Alpha I ist 0 und DI ist 0, verschwinden eigentlich AI
ist 0.
Nein, AI war nicht 0, sondern Alpha I und DI waren 0, deshalb tauchen
natürlich nur hier Cosinus und Sinus.
Alpha I ist, wie viel war Alpha?
Alpha war 0, oder?
Alpha war 0, das heißt Cosinus Alpha I ist 1 und deshalb vereinfachen
sich natürlich die Matrizen, wie wir auf der nächsten Folie sehen
werden.
So, das heißt die Matrizen, man sieht hier die 1, die ich gerade
angesprochen habe, der Rest ist Nullen und somit kann man mithilfe von
diesen Parametern jetzt einsetzen.
Also von 0 nach 1, dann setzt man hier die Gelenkwinkel hier, also A1
vor AI und dann ist es Cosinus Delta I und Sinus Delta I und so weiter
und so fort.
Und kann man diese 4x4 Matrizen eingeben.
Das heißt, wenn wir das hier machen, dann bekommen wir so einen
Ausdruck und in diesem Ausdruck haben wir immer hier die Rotation von
der Hand oder vom Endeffektor im Basiskoordinatensystem.
Die ist hier dargestellt in dieser Rotationsmatrix und man sieht, da
wir jetzt diesen Planarenfall betrachtet haben, dass eine Rotation um
die Z-Achse erkennt man anhand von dieser 3x3 Matrix, dass man die 1
hier hat und die Position natürlich ändert sich in Abhängigkeit von
den Gelenkwinkeln, von Delta I, Delta II, Delta III.
Das könnte man sich vorstellen, die Position hier ändert sich in
Abhängigkeit von den Gelenken Delta I, Delta II und Delta III.
Das heißt, wir haben eigentlich jetzt unser Vorwärtskinematikproblem
ganz einfach.
Wenn ich jetzt weiß, Delta I ist gleich 90°, Delta II ist gleich 90°
und so weiter und so fort, dann kann ich nur hier einsetzen und dann
kriege ich die Orientierung und die Position für eine bestimmte
Gelenkwinkelkonfiguration.
Das ist ein zweites Beispiel, das heißt, das Besondere ist hier das 3D
-Beispiel, wo man Delta I hier hat und anschließend Delta II und dann
hat man hier ein translatorisches Gelenk, also kein rotatorisches
Gelenk, sondern ein Translationsgelenk.
Und was man hier natürlich machen muss zunächst mal, die
Koordinatensysteme gemäß den Regeln, die wir kennengelernt haben,
festlegen.
Man sieht hier zum Beispiel, dass der Ursprung vom Koordinatensystem
Z0 und Z1, also für das erste Gelenk und das zweite Gelenk auch
übereinstimmen können.
Das ist natürlich ein Vorteil, weil dann habe ich ein Parameter, der 0
ist.
Diese Verschiebung zwischen den zwei Gelenken, das vereinfacht vieles
in diesen Matrizen.
Und wie wir sehen werden, werden die Matrizen dann einfacher und
später werden wir das auch sehen, wird die Lösung von einem inversen
kinematischen Problem, was für die Realisierung einer Steuerung
notwendig ist, auch noch einfacher.
Man bestimmt die Parameter hier und man sieht natürlich hier
besonders, dass die unabhängige Variable bei diesem Gelenk hier ist
D3.
Weil D3 ist das, was sich verschiebt, hoch und runter geht.
Es ist nicht ein Gelenk, was sich dreht.
D2 ist hier natürlich der Abstand zwischen diesem Punkt und diesem
Punkt.
Aber D3 ist natürlich die Verschiebung entlang dieser Z2 Achse hier.
Und auf die gleiche Art und Weise kann man die Matrizen hier eingeben.
Matrize 1 zu 2 und 2 zu 3.
Und man sieht, die Transformation 2 zu 3, das ist diese
Translationsachse, da ist im Gegensatz zu dem hier, also 0 zu 1, da
haben wir hier eine Rotation.
1 zu 2 haben wir auch hier eine Rotation.
Und D2 ist konstant, das ist der Abstand hier.
Aber 2 zu 3, da haben wir die Einheitsmatrix hier, also keine Rotation
in dem Fall.
Wenn D3 sich verändert, bleibt die Rotation gleich, die Orientierung
vom Endeffektor gleich, nur die Position ändert sich.
Und zwar nur der Z-Wert der Position ändert sich, weil das ist die
unabhängige Variable der Translationsachse.
So, jetzt war eine Frage hier, glaube ich, oder ist es schon erledigt?
Nein, nein, das ist eine ganz, also das ist nur eine, also C1,
Entschuldigung, das habe ich natürlich nicht erwähnt, aber ich dachte,
das ist ja einfach.
Also ich will jetzt, statt diese Termin hier aufzuschreiben in dieser
Matrix, ich will irgendwelche Abkürzungen haben.
Du kannst es X nennen von mir aus.
Nein, nein, das ist nur eine Abkürzung, wie ich diesen Term bezeichne,
was Cosinus Theta 1 plus Theta 2 plus Theta 3 ist, ist noch
uninteressant.
Ich weiß, also wenn du zum Beispiel Cosinus Theta 1 plus Theta 2 hast,
wie würdest du das hinschreiben?
Okay, er ist nicht so ganz einverstanden, aber gibt es hier
Unklarheiten, was das angeht, dass das eine Abkürzung ist und das ist
nicht eigentlich, nicht gemeint, dass ich jetzt beispielsweise die
Winkel addiere und Cosinus davon nehme.
Also ist mir bekannt, dass ich Cosinus Theta 1 plus Theta 2 ist gleich
irgendwas.
Aber das nur, damit wir wirklich eine verkürzte Schreibweise von
diesen Termen, die auftreten, hier haben.
Okay, so ich glaube es gibt noch ein drittes Beispiel, und zwar das
ist so ein Beispiel von dem ARMA 1 Roboter ARM.
Und zwar, da sieht man hier die DH-Parameter, das sind sieben Achsen,
das sind alle rotatorische Achsen, Theta 1 bis Theta 7.
Und man sieht hier natürlich, ein paar Sachen kann man aus diesen
Tabellen auch ablesen.
Also zum Beispiel dieser Abstand hier, D3 ist nichts anderes als die
Länge vom Oberarm vom Roboter und der Abstand hier, D5, ist nichts
anderes als die Länge vom Unterarm, also 27 cm und 22 cm.
Und man sieht hier natürlich die AIs, die Alpha-Is, die sind immer 90
plus 90 usw.
Und natürlich durch ein geschicktes Design, beziehungsweise durch ein
geschicktes kinematisches Modell von einem Roboter, kann man natürlich
die DH-Parameter Tabellen bekommen, wo viele Nullen dort auftreten.
Und keine Offsets, wie bei den Gelenken.
Also bei den Gelenken haben wir hier zum Beispiel ein Offset von Theta
2 bis Theta 3 und Theta 3 plus 90 und nicht nur ein Theta 3 oder hier
Theta 6 plus 90.
Gut, war der erste ARM, den ich in meinem Leben überhaupt realisiert
habe, aber trotzdem ist er nicht so dramatisch.
Statt dass man Cosinus Theta 6 berechnet, hat man ein Cosinus Theta 6
plus 90.
Manchmal ist es vielleicht auch vorteilhaft, aber im Allgemeinen
sollte man vielleicht versuchen, wenn man jetzt hier von irgendeiner
Großfirma beauftragt wird, so eine neue Kinematik für einen Roboter
-ARM zu entwickeln, dann sollte man sich überlegen, dass man
vielleicht hier so viele Nullen wie möglich in diesen DH-Parameter
-Tabellen hat, weil das würde vieles vereinfachen.
Gut, nun können wir jetzt mithilfe von diesen homogenen
Transformationen, aufeinanderfolgende Transformationsmatrizen, die wir
eindeutig bestimmen können, mithilfe von nur vier Parametern für zwei
aufeinanderfolgende Gelenke, können wir eigentlich das Problem der
Vorwärtskinematik lösen.
Jetzt machen wir ein bisschen weiter und schauen, ob es nicht so
andere Methoden gibt, mit denen man das Problem vielleicht allgemeiner
und weniger geometrisch, vielleicht mehr numerisch hier lösen kann.
Und da kommen wir auf die sogenannten Jacobi-Matrizen.
Und zwar, wir wissen jetzt schon, dass die Beziehungen zwischen
Gelenkwinkelstellungen oder Konfigurationen eines Roboterarms und
Endposi, also Lage und Orientierung vom Endeffektor im Raum, durch die
Beziehung der Vorwärtskinematik beschrieben werden kann.
Aber das ist nicht alles, was einem interessiert, wenn man eine
Steuerung für einen Roboter realisieren will, sondern es interessieren
uns auch die Beziehungen zwischen den Geschwindigkeiten vom Tool
Center Point und den Winkelgeschwindigkeiten der einzelnen Gelenke.
Also nicht nur wirklich, hier ist meine Gelenkwinkelkonfiguration,
hier ist meine Hand, sondern wir wollen zum Beispiel mit einer
bestimmten Trajektorie, mit einer bestimmten Geschwindigkeit des
Endeffektors, also der Hand, ausführen.
Welche Gelenkwinkelgeschwindigkeiten in der Schulter, Ellenbogen und
Handgelenk sind notwendig, um zum Beispiel diese Trajektorie mit einer
bestimmten Geschwindigkeit anfahren zu können?
Das heißt, die Beziehungen zwischen Gelenkwinkelgeschwindigkeiten,
also Gelenkwinkelgeschwindigkeit von der Schulter, vom Ellenbogen und
so weiter, und die kathesischen Geschwindigkeiten vom Endeffektor.
Weil die kathesische Geschwindigkeit ist zum Beispiel die
Geschwindigkeit, mit der ein Roboter eine Bahn abfährt, irgendwas
abschweißt oder lasert oder was sonst.
Also wie sehen diese Beziehungen aus zwischen Geschwindigkeiten, im
Geschwindigkeitsraum und nicht im Positionsraum?
Und zum Zweiten, wir wollen gerne auch wissen, was die Dynamik angeht
von einem Roboter, wie die Beziehungen zwischen den Drehmomenten in
den Gelenken und den Kräften, die am Endeffektor auswirken, sind.
Ja, also stellt euch mal vor, ein Roboterarm soll jetzt 10 Kilo
tragen.
10 Kilo ist eine Kraft, die am Endeffektor auswirkt.
Und die Frage ist, welche Drehmomente müssen jetzt die jeweiligen
Aktoren oder Antriebe in den Gelenken aufbringen, damit ich diese 10
Kilo halten kann beziehungsweise entlang einer Trajektorie auch
bewegen kann.
Das heißt, ohne die Beantwortung dieser Fragen können wir überhaupt
keine Roboter realisieren, die solche dynamischen Eigenschaften oder
dynamische Randbedienungen berücksichtigen.
Und Roboter müssen ja eigentlich was manipulieren, was tragen,
irgendwelche Operationen natürlich mit einer bestimmten
Geschwindigkeit ausführen und auch Präzision.
Und deshalb müssen wir gucken, wie können wir diese Fragen tatsächlich
beantworten.
Also einmal die Beziehungen im Gelenk im Geschwindigkeitsraum und
einmal die Beziehungen im Kraft- oder Drehmomentraum.
Und der Ansatz, den man hier hat, ich meine wir haben jetzt durch dem,
was wir bis jetzt kennengelernt haben, haben wir eigentlich nichts
anderes als eine Funktion.
Eine Funktion, die heißt x und x ist natürlich ein Vektor und das ist
eine Funktion von Theta.
Und wir wissen, dass diese x hier aus, also x, wenn wir im
kartesischen Raum sind, dann ist es natürlich aus R6 und Theta sind
die Gelenkwinkel eines Roboters und das ist natürlich aus Rn, wobei n
die Anzahl der Gelenkwinkel vom Roboter ist.
Das heißt eigentlich, wir haben jetzt gerade gesehen, dass zum
Beispiel mit Hilfe von homogenen Transformationsmatrizen, dass wir
diese Funktion f, das ist ungleich, aber die Funktion f von Theta
nichts anderes als 4x4 Matrix ist und in dieser 4x4 Matrix steht hier
die Orientierung und hier die Position vom Endeffektor.
Also hier in dem Vektor stehen die ersten drei Komponenten von x und
in dieser Matrix stehen die drei Rotationswinkel, die ich als weitere
Komponenten von x habe.
Weil x muss man sich vorstellen hier als ein 6-dimensionaler Vektor
mit x, y, z, Alpha, Beta, Gamma und x, y, z sind der Vektor und Alpha,
Beta, Gamma sind die drei Winkel, die in der Rotationsmatrix
beschrieben sind.
Aber im Allgemeinen haben wir so eine Funktion hier und diese Funktion
beschreibt alles im Gelenkwinkelraum bzw.
im karthesischen Raum, das sind Positionen.
Und jetzt interessieren uns Geschwindigkeiten.
Was macht man?
Differenzieren, ableiten.
Ja, also wir leiten zum Beispiel diese Gleichung her.
Ich mache es nicht an der... oder soll ich es an der Tafel machen?
Das Blöde ist, dass die Vorlesung aufgezeichnet wird für euch und wenn
ich an der Tafel hier was schreibe, dann weiß ich nicht, wie es
aussieht.
Ich hatte keine Zeit, um die letzte Übung mal anzugucken.
Aber ich mache es trotzdem an der Tafel hier, weil es mir viel lieber
ist, als jetzt durch die Folien hier durchzuholen.
Wie differenziert man nach der Zeit?
Also das sind Vektoren, das ist ein Funktional und das ist auch ein
Vektortäter.
Und was wir machen, wir machen eigentlich Delta X nach DT, DX nach DT,
wenn Position abgeleitet wird nach der Zeit.
Was haben wir?
Geschwindigkeiten.
Und was ist die Ableitung von F nach T, Vektor der partiellen
Ableitung?
Naja, nicht ganz.
Was hängt hier von der Zeit ab, hier in F von T?
Nein, die Tetas, die Gelenkwinkel, eigentlich hängt hier auch X von T,
die Position von T und hier hängen die Tetas von T.
Und wenn ich jetzt differenziere, was muss ich hier machen?
Ich muss natürlich zunächst mal ein Delta F von Teta von T nach Delta
Teta zunächst mal ableiten und dann muss ich hier, ja ist egal, Delta
Teta von T nach Delta T machen, also Kettenregel eigentlich.
Und was haben wir hier?
Wir haben hier nichts anderes als X-Punkt und X-Punkt sind die
Geschwindigkeiten, also die Geschwindigkeit in XYZ-Richtung und die
Geschwindigkeit vom Tool Center Point, also vom Endeffektor entlang,
also die Winkelgeschwindigkeit entlang der drei Richtungen oder um die
drei Rotationsachsen ist gleich dieses Delta F von Teta durch Delta
Teta.
Und was ist die Ableitung von Teta nach T?
Ist eigentlich Teta-Punkt.
Und was sind Teta-Punkte?
Wenn Teta der Gelenkwinkelvektor war, dann ist Teta-Punkt der
Gelenkgeschwindigkeitsvektor.
Das heißt, wir haben eigentlich eine Beziehung, das was wir suchen,
Gelenkwinkelgeschwindigkeiten, das sind Teta-Punkt,
Gelenkwinkelgeschwindigkeiten und kartesischen Geschwindigkeiten oder
Endeffektor -Geschwindigkeiten.
Was wissen wir noch nicht?
Das hier, das kennen wir noch nicht.
Kennt jemand von euch dieses Delta F nach Delta Teta?
Also, das ist eigentlich nichts anderes als die Jacobi-Matrix.
Und zwar, wir haben hier bei der Jacobi-Matrix, wie wir wissen aus der
Mathematik, eine differenzierbare Funktion, die ist zum Beispiel
definiert auf Rn, nimmt Werte in Rm.
Und die Jacobi-Matrix enthält sämtliche partielle Ableitungen in
erster Ordnung von F.
Wo jetzt ein Punkt im Rn, also ein A im Rn, ist diese Jacobi-Matrix
nichts anderes als die partiellen Ableitungen der
Komponentenfunktionen von F nach den unabhängigen Variablen, also nach
den Koordinaten von A.
Also A ist ein Punkt, also besteht ein Punkt im n-dimensionalen Raum,
also x1 bis xn.
Und deshalb ist die Jacobi-Matrix nichts anderes als die Ableitung der
Komponentenfunktionen, also in der ersten Spalte
Komponentenfunktionen, F1 nach x1, F2 nach x1 bis Fm nach x1.
Und in der letzten Spalte, wie man sieht hier, die Ableitung der
ersten Funktionen nach der ersten, zweiten, dritten, ämteren
Komponentenfunktionen nach der unabhängigen Variable xn.
So, und das ist nichts anderes als das hier.
Das heißt, eigentlich jeder Manipulator, jeder Roboterarm kann
beschrieben werden durch eine Jacobi-Matrix.
Also der kann beschrieben werden durch die h-Parameter, die wir gerade
heute gesehen haben, aber der kann beschrieben werden durch eine
Jacobi -Matrix.
Und diese Jacobi-Matrix, die hängt natürlich von den Gelenkwinkeln.
Ja, weil Theta hier in dieser Jacobi-Matrix, Theta ist aus Rn, also
ein n-dimensionaler Vektor und n ist die Anzahl der Gelenke eines
Roboterarms.
So, also, das heißt, damit haben wir eigentlich so eine mathematische
Mutation, alles was wir wissen über die Jacobi-Matrix, um tatsächlich
diese Beziehungen, die uns interessieren, zwischen
Gelenkwinkelgeschwindigkeiten und Geschwindigkeiten vom Endeffektor zu
beschreiben.
So, wir gucken uns das mal ein bisschen die Herleitung an.
Natürlich die Vorwärtskinematik, wie wir bis jetzt definiert haben,
war eine Abbildung von Rn auf Se3, also auf Position und Orientierung
im Raum, wie wir das gesehen haben mit den homogenen Matrizen.
Und da wissen wir hier eigentlich, für diese Darstellung, die wir
vorher gesehen haben, ist die Jacobi-Matrix nicht definiert.
Stattdessen, wir machen eine vektorwertige Repräsentation, zum
Beispiel, wie ich bereits gesagt habe, eine Abbildung von R6 oder Rn
auf R6, also n Anzahl der Gelenke vom Roboter und R6 ist der
karthesische Raum, in dem wir uns befinden.
Und wir nehmen an jetzt unsere kinematische Kette, die bewegt sich
entlang einer Trajektorie.
Und die Trajektorie, die können wir natürlich beschreiben mit einer
Abbildung von R auf Rn, also die Trajektur auf Rn.
Dann gilt für die Endeffektoposi x aus R6 zu jedem Zeitpunkt, dass x
ist gleich f von t.
Das ist, was wir auf der Folie hier hatten.
Und die Endeffektogeschwindigkeiten, die hängen dann linear von den
Gelenkwinkelgeschwindigkeiten nach diesem Kettenregel.
Also die Endeffektogeschwindigkeiten x-Punkt ist nichts anderes als
die Jacobi-Matrix der Funktion f, die hängt natürlich von den
Gelenkwinkeln, die wiederum zeitabhängig sind, multipliziert mit den
Gelenkwinkelgeschwindigkeiten.
Das heißt, diese Jacobi-Matrix setzt für uns jetzt die kathesischen
Endeffektogeschwindigkeiten in Relation zu den Gelenkwinkeln vom
Roboter.
Und damit kann man folgende Probleme lösen.
Wenn ich jetzt hier irgendeine gewünschte Endeffektogeschwindigkeit
oder Geschwindigkeitsprofil habe, ich muss eine Trajektorie mit einer
bestimmten Geschwindigkeit vom Endeffektor oder von der Hand
ausführen, die Frage ist, welche Gelenkwinkelgeschwindigkeiten sind
notwendig, um das zu realisieren.
Das ist genau, was diese Beziehung hier uns liefert eigentlich.
Ich wünsche mir irgendeinen x-Punkt hier und natürlich muss ich jetzt
hier die Theta-Punkte berechnen.
Das heißt, ich muss eigentlich nur die Jacobi-Matrix invertieren.
Wenn ich hier x-Punkt ist gleich j von Theta mal Theta-Punkt hier habe
und gegeben ist irgendeine Geschwindigkeit vom Endeffektor x-Punkt und
ich suche die Geschwindigkeiten der Gelenke hier, dann muss ich
eigentlich nichts anderes machen als zum Beispiel mit j-1 hier
multiplizieren, mal x-Punkt, was hier gegeben ist und die Jacobi
-Matrix kennen wir natürlich von dem Manipulator, ist gleich Theta
-Punkt.
Ja, klingt sehr einfach, oder?
Das heißt, wenn das gegeben ist, dann kann ich nur über die
Invertierung dieser Matrix, also muss man aufpassen, die Matrix muss
invertiert werden, also wie macht man Matrix-Invertierung?
Oder was sind überhaupt die Bedienungen für die Invertierbarkeit einer
Matrix?
Quadratisch praktisch gut, oder?
Singulär und ähnliches, das kennen wir aber, das besprechen wir noch.
Der zweite Punkt, wenn die Gelenkwinkelgeschwindigkeiten gegeben sind,
also wenn Theta-Punkt hier gegeben ist, dann welche
Endeffektorgeschwindigkeiten hier auftreten, das nur einsetzen.
Ja, das ist eigentlich trivial, das wäre das sogenannte
Vorwärtsproblem und das andere wäre das Inversi-Problem, aber im
Geschwindigkeitsraum.
So, jetzt nehmen wir weiterhin an, es interessieren uns Kräfte und
Momente.
Und nach wie vor die gleiche Annahme, diese kinematische Kette oder
der Roboterarm soll irgendwann eine Trajektorie ausführen, die
Trajektorie Theta-R nach Rn.
Und wir wissen eigentlich, dass die Energie oder die Arbeit, die
geleistet werden muss, wenn der Roboter diese Trajektorie ausführt,
angegeben werden kann als die Kraft, die am Endeffektor auftritt,
multipliziert natürlich mit dem Weg und der Weg hier ist angegeben als
x -Punkt, also die Geschwindigkeit mal dt.
Aber diese Energie oder diese Arbeit, die geleistet werden muss, um
die Trajektorie auszuführen, muss eigentlich von den Antrieben eines
Roboterarmes aufgebracht werden.
Das heißt, diese Arbeit, die die einzelnen Antriebe aufbringen müssen,
ist auch Kraft, aber nicht Kraft, sondern Drehmoment in dem Fall.
Das ist Tau multipliziert mit dem Weg hier, also Theta-Punkt mal dt.
Das ist Gelenkwinkelgeschwindigkeit multipliziert mit Zeit, nichts
anderes als der Weg, also der Gelenkwinkelweg für ein bestimmtes
Gelenk.
Und das zum Beispiel von T1 bis T2.
Das heißt, eigentlich diese Arbeit, die dort auftritt am Toolcenter
-Punkt, durch die Bewegung mit Geschwindigkeit x-Punkt, muss
aufgebracht werden durch Drehmomente in den einzelnen Gelenken des
Roboters, die sich dann mit einer bestimmten
Gelenkwinkelgeschwindigkeit bewegen müssen.
Das heißt, wir können eigentlich diese Gleichung hier hinschreiben.
Und das sind hier die Bezeichnungen, also Gelenkwinkelgeschwindigkeit
in Theta-Punkt, Drehmomente in den Gelenken und das Ganze hier
integriert von T1 bis T2.
Dann haben wir die geleistete Arbeit und auf der anderen Seite im
karthesischen Raum haben wir natürlich die Endeffektorgeschwindigkeit
x -Punkt und dann haben wir die Kräfte bzw.
einen Kraftmomentwektor, der am Endeffektor auswirkt.
Zum Beispiel, wenn der Roboter irgendetwas hält während der Bewegung.
So, was bedeutet das für uns eigentlich?
Das bedeutet, wenn ich jetzt diese Gleichung mal so angucke, dass ich
davor Folgendes schreiben kann.
Ich kann also diese Gleichung hier nehmen und diese Gleichung muss
natürlich gelten in jedem Zeitintervall.
Das heißt, ich kann eigentlich diese Integral hier wegmachen und kann
einfach schreiben, Theta-Punkt mal Tau, also vektormäßig, deshalb
transponiert, ist gleich x-Punkt transponiert mal F.
Wie gesagt, x-Punkt ist die Geschwindigkeit vom Endeffektor von der
Hand, F sind die Kräfte und Momente, die auf die Hand oder auf den
Endeffektor einwirken und Theta-Punkt sind die Geschwindigkeiten der
Gelenke, also Gelenkwinkelgeschwindigkeiten und Tau sind Drehmomente,
also letztendlich proportional zum Strom, der durch einen elektrischen
Motor fließt, der dieses Gelenk mal antreibt.
Und wir wissen, dass x-Punkt gleich J mal Theta-Punkt ist.
Ja, das haben wir vorher differenziert, die Beziehung.
Wir haben gesagt, okay, wenn wir die Beziehung x ist gleich f von
Theta ableiten, dann bekommen wir Jakobi-Matrix mal Theta-Punkt.
Das heißt, für x-Punkt transponiert, es ist nichts anderes als Theta
-Punkt transponiert, multipliziert mit der transponierten Jakobi
-Matrix.
Und wie man hier sieht, kann ich auf beiden Seiten die
Gelenkwinkelgeschwindigkeiten hier wegmachen, abkürzen und dann
bekomme ich eine tolle Beziehung hier, die heißt Tau von T ist gleich
transponierte Jakobi-Matrix, hängt natürlich von den Gelenkwinkeln zu
einem bestimmten Zeitpunkt, multipliziert mit den Kräften, die am
Endeffektor auftreten.
So, das heißt, diese Jakobi-Matrix, wo wir dachten, ich dachte auch
damals, als ich die Jakobi-Matrix in der Mathematik gelernt habe, wozu
braucht man sie?
Aber dann habe ich angefangen Robotik zu machen und habe gesehen, mein
Gott, ohne die Jakobi-Matrix können wir in der Robotik überhaupt nicht
überleben.
Also, das heißt, die Jakobi-Matrix, auf der einen Seite gibt sie uns
die Beziehungen zwischen Gelenkwinkelgeschwindigkeiten und
kartesischen Geschwindigkeiten vom Endeffektor und auf der anderen
Seite gibt sie uns die Beziehungen, also die transponierte Jakobi
-Matrix hier, zwischen Kräften und Momenten, die an der Hand
auftreten, am Endeffektor auftreten und Drehmomente, die in den
Gelenken eines Roboterarmes auftreten oder aufgebracht werden müssen,
damit man eine bestimmte Bewegung realisiert.
Okay, das heißt, zusammengefasst haben wir etwas ganz Tolles hier und
deshalb müssen wir in der Lage sein, natürlich mit diesen Matrizen
oder diesen Beziehungen umzugehen.
Und mithilfe dieser zweiten Beziehung können wir nochmal zwei Probleme
erledigen.
Und zwar das erste Problem, wenn die Kräfte am Endeffektor eingegeben
sind, welche Drehmomente treten in den einzelnen Gelenken.
Das heißt, ihr müsst so einen Roboter entwerfen, der zum Beispiel eine
Tour von einem Auto transportiert und montiert.
Das sind bestimmte Kräfte und Momente, die am Endeffektor auftreten.
Und ihr müsst natürlich die Motoren für die Gelenke so auslegen, dass
sie genügend Drehmomente haben, damit man diese Kräfte und Momente
realisieren kann.
Das heißt, es wäre das erste Problem, gegeben sind die Kräfte, die wir
am Endeffektor haben wollen, welche Drehmomente in den Gelenken
notwendig sind.
Und zum zweiten, wenn die Drehmomente in den Gelenken, wenn ich meinen
Roboter mit bestimmten Drehmomentverläufen betreibe, welche Kräfte und
Momente werden am Endeffektor auftreten.
Sind sie gefährlich für einen Mensch, würden sie einen Menschen zum
Beispiel umhauen.
Das heißt, gegeben die hier und gesucht die hier, dann müssen wir
natürlich die Gleichung hier invertieren, wie wir das vorher auch
gemacht haben für die Geschwindigkeiten.
Gut, so viel dazu.
Gibt es Fragen?
Wie berechnet man das?
Das ist ja alles so eine trockene Theorie.
Ihr kennt das aus der Mathematik, wie man die Jacobi-Matrix berechnet.
Aber hier kurz zur Erinnerung.
Natürlich berechnet man die Jacobi-Matrix jetzt hier spaltenweise, wie
in der Definition auch eingegeben ist.
Das heißt, diese Funktion f wird hier nach Theta 1 bzw.
hier nach Theta n abgeleitet.
Man hat aber andere Möglichkeiten, als zum Beispiel zur geometrischen
Berechnung von dieser Jacobi-Matrix, wo man unterscheidet zwischen
Translationsgelenken und Rotationsgelenken.
Das heißt, eigentlich diese Ableitungen, die korrespondieren zu einem
Gelenk in der kinematischen Kette.
Und wenn wir diese Einzelableitungen für ein Gelenk berechnen können,
dann haben wir natürlich die gesamte Jacobi-Matrix.
Und man kann hier nachweisen, werden wir in der Übung auch sehen, wie
das funktioniert, dass man im Falle von einem Translationsgelenk die
Ableitung hier nach einer Komponente oder nach einem Gelenkwinkel, wo
ein Gelenk eine Translation in Richtung von einem Einheitsvektor vj
ausführt, dass diese Ableitung hier nichts anderes als vj und 0 ist.
Und im Falle von einem Rotationsgelenk, also ein Gelenk, was eine
Rotation um eine Rotationsaxe vj ausführt, an einer bestimmten
Position, also ob das Ellenbogengelenk hier die Rotation ausführt oder
hier, das heißt die Position von dem Gelenk muss bekannt sein.
Und die Rotationsaxe ist ja auch bekannt, weil das ist ja unser
Gelenk.
Dann lässt sich diese Ableitung hier ganz einfach als, also so einfach
ist es nicht, werden wir auch sehen, in der Übung machen wir ein
Beispiel dazu, als vj hier und dann oben ist nochmal ein Vektor, also
das sind 6x1 Vektoren hier, die auftreten.
Ein Kreuzprodukt zwischen dieser Rotationsaxe vj mit einem weiteren
Vektor, und zwar der Abstand zwischen der aktuellen Axe und Tool
Center Point.
Also wo gerade sich der Arm befindet und wo die Position des Gelenks.
Und wenn man die zwei voneinander abzieht, dann ist es nichts anderes
als der Vektor, der die Position oder den Unterschied zwischen dem
aktuellen Gelenk und Tool Center Point beschreibt.
Und wenn man das Kreuzprodukt hier bildet, kommt ein 3er Vektor, ein
3x1 Vektor und zusammen mit der Rotationsaxe vj hat man die komplette
Spalte vor der Jacobi Matrix hier berechnet.
So, insgesamt die Eigenschaften von der Jacobi Matrix, die beschreibt
die Beziehungen zwischen Geschwindigkeiten der Gelenkwinkel, n
-dimensional bei einem Roboter mit n Gelenken und Geschwindigkeiten
des Endeffektors, die sind im karthesischen Raum 6-dimensional,
Drehmomente in den Gelenken, wiederum genauso viel wie Gelenke und
Kräfte und Momente am Endeffektor, auch 6-dimensional und natürlich
die Jacobi Matrix, die ist immer als eine Matrix zu betrachten, die
von bestimmten Gelenkwinkelstellungen abhängt.
Deshalb haben wir immer J von Theta geschrieben.
Gucken wir uns das mal an, wie man sowas berechnet, anhand von einem
Beispiel.
Nehmen wir an, wir haben so einen Manipulator oder einen Arm, der hat
zwei Gelenke, Theta 1 und Theta 2 und das sind die Längen L1 und L2
und was müssen wir machen, um die Jacobi Matrix zu berechnen?
Wir müssen diese Beziehung zunächst mal herstellen.
X, irgendeine Funktion, die beschreibt uns den Zusammenhang zwischen
karthesischen Koordinaten und Gelenkwinkelkoordinaten.
So, und das ist natürlich in 2D jetzt hier sehr einfach, weil zum
Beispiel die karthesischen Koordinaten sind hier X1 und X2 und wenn
ich zum Beispiel X1 berechnen will, dann ist es nichts anderes als L1
mal Cosinus Theta 1 plus L2 Cosinus Theta 1 plus Theta 2.
Kann man geometrisch ablesen.
Y bzw.
X2 ist L1 mal Sinus Theta 1 plus L2 Sinus Theta 1 plus Theta 2.
Was habe ich?
Ich habe meinen X-Vektor und mein X-Vektor besteht aus den zwei
Komponenten.
Also mein X-Vektor besteht aus den zwei Komponenten X1 und X2.
Und was wir immer suchen, wir suchen das.
X-Punkt ist gleich J mal Theta-Punkt.
Eigentlich, was ich machen muss, damit ich die Jacobi-Matrix bekomme,
ich muss diese zwei Komponenten nur differenzieren, damit ich X-Punkt
bekomme.
Und das ist ja ziemlich einfach.
Also für X1, das ist natürlich die Ableitung von Cosinus.
Theta 1 ist minus L1 mal Cosinus Theta 1 mal die innere Ableitung,
also immer Kettenregel.
Wir leiten nach der Zeit ab und Cosinus abgeleitet nach der Zeit ist
natürlich Sinus Theta mal Theta-Punkt.
Und die Ableitung von Cosinus Theta 1 plus Theta 2 nach der Zeit ist
natürlich minus Sinus.
Und dann natürlich die zwei inneren Ableitungen von Theta 1 und Theta
2.
Und das gleiche machen wir für X2 und dann, wenn man sieht, hier haben
wir unser X-Punkt, ist gleich das hier, X-Punkt.
Man sieht hier, hier ist Theta-Punkt.
Also das ist L1 Sinus Theta 1 minus L2 Sinus Theta 1 plus Theta 2
multipliziert mit Theta 1-Punkt.
Und dann mit Theta 2-Punkt ist nur minus L2 mal Sinus Theta 1 plus
Theta 2 und das gleiche hier unten.
Man sieht also die zwei Spalten der Jacobi-Matrix, die sind hier
eingegeben.
Und wenn wir jetzt mit dieser Jacobi-Matrix irgendwas machen wollen,
zum Beispiel wollen wir die Gelenkwinkel, wir wollen das inverse
kinematische Problem, die Gelenkwinkel bestimmen für eine gegebene
Position der Hand, dann müssen wir diese Matrix invertieren.
Die Matrix ist natürlich quadratisch, das ist eine 2x2-Matrix, wie man
sieht.
Aber bei bestimmten Konfigurationen kann diese Matrix zum Beispiel
singulär sein.
Also wenn z.B.
zwei Spalten linear abhängig sind.
Ja, da kann es auch krachen, wenn ein Roboterarm durch eine singuläre
Stellung z.B.
durchfährt.
Naja, aber man sieht hier z.B., wenn Theta 2 0 ist, also wenn
Gelenkwinkel 2 0 ist, dann verschwindet natürlich das hier, dann haben
wir hier minus L1 Sinus, minus L2 Sinus und dann haben wir hier minus
L2 Sinus und hier haben wir L1 Cosinus und L2 Cosinus und hier haben
wir L2 Cosinus und da sieht man also, wenn Theta 2 0 ist, was passiert
mit der Matrix?
Genau, weil die Spalten, die zwei Spalten, also minus L1, minus L2
Sinus das hier und Cosinus sind natürlich voneinander abhängig.
So, also das heißt für diese Matrix können wir natürlich schreiben, x
Punkt ist gleich J1 Theta mal Theta 1 Punkt plus J2 Theta mal Theta 2
Punkt und solange natürlich diese zwei nicht linear abhängig
voneinander sind, können wir natürlich hier den Tool Center Point in
beliebiger Richtung in der Ebene bewegen.
Man sieht aber, dass wenn die zwei Spaltenvektoren, zum Beispiel der
Matrix, also J1 und J2 linear abhängig sind, dann die Matrix wird
zingulär, zum Beispiel bei Theta 2 gleich 0, wo dann die Bewegung von
dem Endeffektor in solchen Situationen sehr eingeschränkt ist.
Okay, somit sind wir auch zu einem noch spannenderen Thema gekommen
und zwar, wie geht man mit solchen Situationen, wenn alles auf der
Jacobi Matrix basiert.
Ich mache gleich Schluss, die Minute ist noch nicht vorbei, also
gerade jetzt.
Okay, dann vielen Dank für die Aufmerksamkeit, wir sehen uns am Montag.