Ja, hallo.
Ich begrüße euch herzlich zur heutigen Vorlesung.
Wir haben uns hier mit den Grundlagen der Regelung beschäftigt,
speziell der Regelung von Roboter-Systemen, also der grundsätzliche
Aufbau eines Regelkreises.
Dann haben wir Methoden kennengelernt, mit denen wir die
Übertragungsfunktionen von Blöcken in einem Regelungskreis bzw.
vom gesamten Regelkreis beschreiben können.
Also die Laplace-Transformation, einige Übertragungsglieder und
Kennlinien und Regler auch kennengelernt.
Und wir haben anhand von einem IDOF-Manipulator auch die Stabilität
einer Regelung betrachtet.
Das heißt, die charakteristische Gleichung von dem Regelungssystem
aufgestellt und die Nullstellen von dieser Gleichung bestimmt, haben
wir gesehen, dass es dort unterschiedliche Verhalten geben kann.
Abperiodisches Verhalten, der abperiodische Grenzfall, aber
Schwingungen.
Und wir haben auch gesehen, wie man das tatsächlich aus der
charakteristischen Gleichung herleiten kann.
Und je nachdem, ob man zwei reelle Lösungen hat, zwei reelle
identische Lösungen oder zwei komplexe Lösungen, hat man oder haben
wir von einem abperiodischen Fall, abperiodischen Grenzfall bzw.
einer Schwingung gesprochen.
Was ganz wichtig im Kontext der Regelung sind so Testfunktionen.
Das sind eine ganze Menge von Testfunktionen, die man normalerweise in
der Regelungstechnik verwendet, mit denen man tatsächlich das
Verhalten von einem Regelungssystem charakterisieren kann.
Eine ganz wichtige Testfunktion, wir haben auch den Delta-Impuls oder
den Dirac-Impuls kennengelernt in der Vorlesung, aber eine ganz
wichtige Testfunktion ist die Sprungfunktion, also Einheitssprung
auch, wenn hier diese Funktion bei t gleich 0 von 0 auf 1 wechselt und
natürlich andere Testfunktionen, wie hier auf der Folie aufgelistet
sind, aber das Verhalten von dem System bei der Einschaltung von einer
Einheitssprung kann gut oder kann charakterisiert werden oder lässt
Aussagen zu über Stabilität bzw.
Nicht-Stabilität bzw.
wie das System überhaupt auf diese Eingangsfunktion reagiert.
Das heißt, wir sind im Ruhezustand und zum Zeitpunkt t gleich 0
schalten wir am Eingang zu eine Sprungfunktion und natürlich können
wir die Ausgangsgröße auch beschreiben, also die Ausgangsgröße bezogen
auf die Eingangsgröße ist nichts anderes als die Übertragungsfunktion
dieser Funktion und diese Übertragungsfunktion nennt man in dem Fall h
von t bzw.
wenn man das im Laplace-Bereich ist oder transformiert, dann ist es
ein h von s.
Und wenn wir jetzt für unsere Strecke, die wir das letzte Mal, das war
dieses 1DOF-Manipulator, wo wir die ganze Dynamik und die ganze
Betrachtung angeguckt haben, haben wir auch unterschiedliche Werte von
Sigma hier, von 0, 1 bzw.
kleiner als 1, großer als 1, haben wir unterschiedliches Verhalten
kennengelernt und das ist eigentlich auch hier nochmal dargestellt.
Wir schalten hier zum Zeitpunkt t gleich 0.
Diese Sprungfunktion, die geht von 1 auf 0, kann auch so sein.
Es muss nicht immer von 0 auf 1 gehen.
Und man sieht hier in Abhängigkeit von den unterschiedlichen
Parametern der charakteristischen Gleichung, hat man unterschiedliche
Antworten des Systems.
Also die beste wahrscheinlich ist die rote bei Sigma gleich 1, wo das
System so schnell wie möglich hier auf 0 geht, aber ohne
überzuschwingen.
Wenn man ein bisschen ein größeres Xi hier nimmt, dann sieht man das
System zwar gegen den Endwert hier konvergiert, aber es dauert länger
im Vergleich zum roten Verlauf, wo die Konstante hier gleich 1 ist.
Und wenn diese Konstante kleiner als 1 ist, dann sehen wir, dass das
System anfängt zu schwingen.
Und wie man hier sieht, bei 0, wenn das 0 ist, hätten wir eine
Dauerschwingung, das heißt, wo der Endwert hier gar nicht erreicht
wird.
Somit will ich hier diesen ersten großen Block abschließen und will so
auf grundlegende Regelungskonzepte in der Robotik eingehen.
Und in der Robotik haben wir Roboter-Army, wir haben auch mobile
Roboter -Systeme, zum Beispiel wie der Arma 3 hier.
Und was ganz wichtig ist natürlich, der grundlegende Regelkreis sieht
immer gleich aus.
Wir haben eine Strecke, das ist unser Manipulator oder unser Roboter
hier, zum Beispiel der Arm, der diese Tasse greift.
Wir haben Stuhlgrößen, die auf dem System einwirken, zum Beispiel die
nicht genaue Position der Tasse beziehungsweise Ungenauigkeiten der
Bewegung oder der Ausführung.
Dann haben wir Sensoren, mit denen wir alles erfassen, zum Beispiel
den Zustand vom Arm, die Gelenkwinkel vom Arm, aber auch die Position
der Tasse.
Das können ja interne, aber auch externe Sensoren sein.
Zum Beispiel für die Aufgabe sind externe Sensoren, um die Position
der Tasse zu bestimmen, auch sehr wichtig.
Und wir wissen, dass wir aus dieser Rückkopplung hier irgendeine
Regeldifferenz, das Ganze ist jetzt hier so ein bisschen grober
dargestellt, das heißt, wir haben diesen Soll-Ist-Wert-Vergleich nicht
und dann anschließend den Regler, das muss man sich hier in diesem
Block Regler betrachten.
Das heißt, aus den gemessenen Daten bilden wir letztendlich
Regeldifferenz zu bestimmten Vorgaben, die hier von einer
Trajektorienplanung, also irgendeinen Bewegungsplaner, der für uns die
Trajektorien generiert, wie wir die Hand zur Tasse bewegen.
Wir werden uns im nächsten Kapitel mit dem Thema beschäftigen, wie
diese Trajektorien kollisionsfrei generiert werden können.
Und diese Regeldifferenzen, die werden natürlich in entsprechenden
Stellgrößen für den Arm beziehungsweise auch für die mobile Plattform
hier, wenn sie sich beispielsweise bewegen soll, um an die Position,
also an die Tour hier heranzukommen, um die Tasse hier, um die
aufzumachen, um die Tasse zu greifen.
Das heißt, unter der Regelung von Manipulatoren fehlt nicht nur die
Gelenkwinkelregelung oder die karthesische Positionsregelung, sondern
natürlich und insbesondere auch externe Störungen beziehungsweise
Einflüsse der Umgebung.
Also Einflüsse der Umgebung, gerade wenn es zum Beispiel um die Tour
aufmachen geht, sind die Kräfte, die bei Kontakt mit dem Griff oder
mit der Tour auftreten, insbesondere sehr wichtig.
Und deshalb spielt auch die Regelung von Kräften bzw.
von Drehmomenten in der Robotik eine sehr zentrale Rolle.
Wenn wir die Regelung von einem Roboter betrachten, dann ist es eine
kaskadierte Regelung, also mehrere unterlagerte Regelkreise.
Wenn wir jetzt Strommotoren benutzen als Antriebe, dann haben wir
natürlich hier im innersten Kreis eine sogenannte Stromregelung.
Also das ist zum Beispiel der Ankerstrom von einem Gleichstrommotor,
wo wir praktisch regeln, wie stark dieser Strom sein muss, damit wir
eine bestimmte Position erreichen.
Natürlich sind die Vorgaben hier für diesen Stromregler irgendwelche
Geschwindigkeiten, die von der zweiten Schleife kommen.
Das ist ein Geschwindigkeitsregler, der natürlich als Istwert die
Gelenkwinkelgeschwindigkeiten, also Q-Punkt nimmt und die subtrahiert
von irgendwelchen Geschwindigkeiten, die aus der nächsten Regelung
kommen, um diese Differenzen zu bilden.
Und die äußerste Schleife, wie man hier sieht, ist die
Positionsregelung, wo wir über Positionssensorik die aktuelle Position
eines Gelenks hier haben und die natürlich von irgendwelchen
Sollvorgaben abziehen müssen, damit wir eine Regeldifferenz für diese
Positionsregelung bilden.
Und so weiter und so fort.
Das heißt, wir haben hier eine Unterlagerung von mehreren Regelkreisen
bei Gleichstrommotoren, mit denen ein Roboter angetrieben wird, sehen
diese Regelkreise meistens so.
Eine Stromregelung, anschließend eine Geschwindigkeitsregelung oder
Positionsregelung.
Natürlich, wenn die Roboter Drehmomentsensorik haben, dann könnte
jetzt diese Stromregelung durch eine Drehmomentsregelung ersetzt
werden.
Und insgesamt bezieht sich das jetzt nicht nur auf ein Gelenk, sondern
das bezieht sich auf alle Gelenke eines Roboters.
Also wenn wir jetzt den Arm mit sieben Freiheitsgraden betrachten,
dann muss man hier all diese Regelkreise für alle Gelenke realisieren.
Das heißt IA1 bis IA7, Q1, Q.1 bis Q.7 und Q1 bis Q7.
Also man spricht hier von einem mehrgroßen System.
Und die Regelung auf Gelenkebene wird realisiert, indem man
unabhängige lineare Einzelregelkreise für die einzelnen Gelenke
realisiert.
Und zwar kaskadiert die Einzelregelkreise für die einzelnen Gelenke.
So, der Ausgangspunkt für die ganze Regelung ist natürlich das
dynamische Modell von einem Roboter.
Und damit haben wir auch beschäftigt und wir wissen, wie wir diese
Bewegungsgleichung bzw.
dieses Dynamikmodell aufstellen, mithilfe von der Lagrange-Methode
oder der Newton-Euler-Methode.
Und das allgemeine dynamische Modell ist hier eingegeben mit den
verallgemeinerten Stellkräften und Momenten Q, mit der Trägheitsmatrix
Q, die Gelenkwinkelbeschleunigungen, dann ein Vektor, was für uns
Zentrifugale und Corelliskräfte beschreibt, dann natürlich die
Gravitationskräfte und die Reibungskräfte, die im Manipulator im Arm
auftreten.
So, und wenn man das hat, dann kann man natürlich hier, das ist
praktisch unser Modell, das ist das, was wir als Übertragungsfunktion
hier für den Kastenmanipulator hier hinschreiben müssen.
Und natürlich diese Gleichung, wie wir wissen jetzt, können wir im
Laplace -Bereich überführen oder transformieren.
Und da können wir dort praktisch diese Übertragungsfunktion mal
aufschreiben und dementsprechend unsere Regler entwerfen.
Und da unterscheidet man hier zwischen zwei Varianten der Regelung.
Einmal eine Regelung im Gelenkwinkelraum, das heißt, ich habe hier
meinen Manipulator, ich kriege natürlich meinen Gelenkwinkel, ich
kriege viel mehr als meinen Gelenkwinkel, Geschwindigkeiten, eventuell
Beschleunigungen.
Aber wenn wir eine Positionsregelung haben, kriegen wir die
verallgemeinerten Koordinaten hier für die Position.
Die messen wir über Sensoren, bilden wir unsere Regeldifferenzen.
Die Sollwerte, die kommen natürlich aus einer übergeordneten
Hierarchie dieser Regelung.
Also zum Beispiel bewege ich den Ellenbogen um 90 Grad.
Irgendeine Instanz hier, die das generiert, zum Beispiel, um die Tasse
zu erreichen oder um eine bestimmte Position zu erreichen.
Da muss man die Inverse-Kinematik lösen für diese karthesische
Sollposition.
Berechnet man die Soll-Gelenkwinkel, zieht man sie ab von den
aktuellen Gelenkwinkeln, bildet man eine Regeldifferenz für den
Regler.
Und dieser Regler, wie ich bereits erwähnt habe, könnte jetzt diese
kaskadierte Regelung mit Position, Geschwindigkeit, Strom sein.
Das heißt, wir müssen natürlich hier, wie man sieht, diese
Koordinatentransformation oder Inverse-Kinematik lösen, damit wir die
Soll -Trajektoren im Gelenkwinkelraum hier bestimmen und aus diesen
Sollwerten und den gemessenen haben wir Stellwerte für die Gelenke.
Man kann es aber anders machen, das heißt, man kann die Regelung zum
Beispiel im karthesischen Raum machen.
Fragt man sich, warum soll ich mich jetzt um die Regelung der
einzelnen Gelenke im Gelenkwinkelraum?
Ich will nur, dass ich meine Position und Orientierung, wo ich das
Objekt greife, erreiche.
Das heißt, die Sollwerte sind tatsächlich Position und Orientierung.
Und was ich messe, meine Messgrößen, sind auch die Position und die
Orientierung von dem Zielobjekt.
Ich will die Tasse greifen, deshalb zum Beispiel mithilfe einer
externen Sensorikkamera kann ich die Position und die Orientierung von
meinem Zielobjekt haben.
Dann kann ich die Sollposition für den Roboter bestimmen, wo er hin
muss.
Ich messe aktuell, wo die Hand ist, also die Position und die
Orientierung der Hand.
Und basierend auf den Differenzen, bilde ich natürlich hier meine
Regeldifferenz.
Und da ich ja im karthesischen Raum arbeite, also im Arbeitsraum
arbeite, muss ich natürlich letztendlich das Ganze auf Gelenkwinkel
abbilden.
Ich kann ja nur Kommandos schicken, die bestimmte Motoren antreiben,
sei es jetzt Positionen, Geschwindigkeiten oder Drehmomente.
Und deshalb müssen wir hier das Ganze vom Aufgabenraum oder
karthesischen Raum in den Gelenkwinkelraum abbilden.
Das heißt, alles, was wir kennengelernt haben, zu lösen von der
inversion -kinematischen Problem, bzw.
inversion Jacobi im allgemeinen Fall, wenn wir numerische Methoden
einsetzen.
Und damit können wir hier Stellgrößen für die unterschiedlichen
Antriebe im Manipulator oder im Arm haben.
Im Vergleich natürlich zu einer Regelung im Gelenkwinkelraum haben wir
hier eine höhere Komplexität von dem Regelalgorithmus, weil in jeder
Schleife, bei jedem Durchgang dieser Regelschleife, müssen wir die
inversion -kinematik, also die inversion Jacobi-Matrix hier bestimmen.
Im anderen Fall müssen wir das nicht, sondern wir müssen das nur
einmal machen, damit wir überhaupt wissen, was sind überhaupt die Soll
-Gelenkwinkel, die angefahren werden müssen.
Während wir hier müssen wir natürlich in jedem Zyklus diese inversion
-kinematik hier lösen.
Aber der Vorteil ist, dass man gezielt die einzelnen Raumkoordinaten
beeinflussen kann.
Man kann in X-Y-Z-Richtung bzw.
auch die einzelnen Orientierungen ganz intuitiv hier für uns Menschen
intuitiv regeln.
So, im Allgemeinen lässt sich so eine Regelung von einem Roboter wie
folgt darstellen.
Also wir haben hier einen Roboter, der hat natürlich interne Sensorik,
das sind zum Beispiel die Gelenkwinkel, die Positionssensoren in den
Gelenken, irgendwelche Drehmomentsensoren.
Im allgemeinen Fall, wir messen die Gelenkvariablen und dann haben wir
diese interne Regelung, die wir bereits kennengelernt haben.
Aber es kann sein, dass wir hier externe Sensoren haben, wie
Kraftmessdosen, also Kraftmomentensensoren, die am Handgelenk sind,
die für uns die Kräfte bei Kontakt mit der Umgebung messen.
Taktile Sensoren, zum Beispiel die Kontaktinformationen an
zugreifenden Objekten oder auch visuelle Sensoren wie Kameras, die für
uns die Positionen der zugreifenden Objekte bestimmen.
Und die werden zurückgekoppelt, natürlich klaren wir Kraft oder
taktile Informationen, die kann ja auch für die interne Regelung hier
wichtig sein.
Aber Positionssensoren, die werden oder Sicht- oder Kamerasysteme, die
werden hier in die externe Regelung eingebunden.
Das heißt, das ist praktisch unsere Messgröße für die externe
Regelung, wo wir die Zielvorgaben bekommen, die Tasse greifen.
Dann natürlich hier die Sollwerte müssen von dieser externen Regelung
zunächst mal in Arbeitsraum- bzw.
Arbeits- bzw.
Weltkoordinaten umgerechnet werden, die entsprechenden
Koordinatentransformationen, um daraus die Sollwerte für die Gelenke,
also die Solltrajektoren der Gelenke zu bestimmen, die als Input für
die interne Regelung bzw.
die Gelenkregelung dienen.
Und davon gibt es natürlich unterschiedliche Varianten, je nach
System, je nach sensorischer Ausstattung findet man natürlich diese
Regelung in unterschiedlichen Varianten bzw.
in unterschiedlichen Ausprägungen.
Was ist zentral bei der Regelung?
Zentral ist bei der Regelung eigentlich, ob man dieses Modell vom
Manipulator kennt oder nicht bzw.
wie gut man das kennt.
Wenn meine dynamische Gleichung perfekt ist, dann habe ich zwar ein
gutes Modell, aber wir wissen ja aus der Dynamikvorlesung, dass diese
Modelle sich mit der Zeit verändern, dass zum Beispiel irgendwelche
Einflüsse eintreten, die man gar nicht modellieren kann, exakt
modellieren kann.
Das heißt, wenn wir von einer exakten Systemmodellierung ausgehen,
dann setzen wir voraus, dass wir ein perfektes Dynamikmodell haben und
weitere Modelle, die zum Beispiel die Interaktion des Roboters mit der
Umgebung beschreiben, also zum Beispiel, wenn der Roboter die Tür
aufmacht, dass wir genau wissen, wie die Kräfte auftreten, in welche
Richtung und wie groß sind diese Kräfte, was ja nicht immer machbar
ist, gerade wenn man es jetzt nicht so mit sehr genauen Robotern zu
tun hat, sondern wie bei einem humanoiden Roboter.
Deshalb gibt es auch mehrere Regelungskonzepte, mit denen man mit
solchen Situationen umgeht, insbesondere um diese Interaktionskräfte
mit der Umgebung zu berücksichtigen, sogenannte
Kraftpositionsregelungen und hier die Unterscheidung zwischen einer
hybriden Kraftpositionsregelung und einer sogenannten
Imbedanzregelung.
Und was ist das grundlegende Problem bei Kraft- und
Positionsregelungen?
Wir haben ja das Problem, dass Kräfte und Positionen miteinander eng
verknüpft sind.
Jede Kraft führt zu einer Positionsänderung und eine Positionsänderung
kann nur aufgrund von irgendeiner Kraft oder von einem Drehmoment
erfolgen.
Das heißt, wenn der Roboter jetzt in Kontakt mit der Umgebung steht,
dann bedeutet das, dass jede Positionsänderung auch eine Kraftänderung
zufolge hat und umgekehrt.
Die allgemeine Methode zur Lösung von diesem Problem ist, dass man aus
der Aufgabe, die man ausführen will, die natürlichen Randbedienungen
ableitet bzw.
definiert.
Und natürlich auch zusätzliche Randbedienungen hinzufügt, die sich auf
das System beziehen.
Also zum Beispiel maximale Kräfte und Momente, die aufgebracht werden
können von dem Roboterarm, maximale Kräfte und Momente, die auftreten
können bei der Ausführung der Aufgabe, Gelenkwinkelbeschränkungen,
Gelenkwinkelgeschwindigkeiten und Beschleunigungen und so weiter und
so fort.
Und wenn man das macht, dann kann man solche Probleme lösen, also
Regelungsprobleme lösen, wo es eine Interaktion bzw.
ein Kontakt zwischen Umgebung und zwischen Roboter besteht.
Und hierzu gibt es in der Literatur auch mehrere Varianten, aber die
allgemeine Vorgehensweise ist, dass man natürlich Kraftregler
vorausgesetzt, dass man auch entsprechend die Kraftsensoren hat im
Roboter, die die Interaktionskräfte mit der Umgebung messen.
Also zum Beispiel 6G-Kraftmomentensensoren in den Handgelenken,
natürlich Positionssensoren.
Und man will ja oft bei vielen Aufgaben bestimmte Koordinaten im Raum
eigentlich positionsgeregelt betreiben, während die anderen
Koordinaten kraftgeregelt betrieben werden müssen, um die Aufgabe zu
erreichen.
Also zum Beispiel Einfuge-Operationen.
Ich will natürlich entlang dieser Richtung, wo ich ein Objekt in ein
anderes reinschieben will, ich will natürlich die Position regeln,
aber ich will auch an den Kontakten hier die Kräfte regeln und zwar,
dass die Kräfte in Richtung X und Y Null bleiben, damit die Fuge
-Operation erfolgreich ist.
Und um das zu erreichen, macht man grundsätzlich Folgendes.
Man hat hier Sollpositionen oder Sollkräfte, die geregelt werden
müssen und man hat sogenannte Selektionsmatrixen.
Ich weiß, das ist ein bisschen sehr grob oder sehr allgemein, was wir
hier behandeln.
Das ist auch ein großes Thema der Regelungstechnik.
Aber mithilfe von dieser Selektionsmatrix kann man bestimmen, welche
Koordinaten positionsgeregelt werden müssen und welche Koordinaten
kraftgeregelt werden müssen.
Und natürlich muss letztendlich alles, egal ob ich Kraft regle oder
Positions regle, Drehmomente zu den einzelnen Gelenken oder
Stromwerte, wenn wir an diesen kaskadierten Gelenkreis eines Roboters
von Anfang an denken, muss ich Drehmomente bzw.
Ströme bestimmen, die ich zu den einzelnen Gelenken schicke.
Und man sieht hier, wenn ich bestimmte Koordinaten positionsregeln
will, dann habe ich natürlich hier eine Regeldifferenz, die ich aus
den gemessenen Positionen bekomme.
Diese Regeldifferenz ist der Eingang von einem Positionsregler.
Und dieser Positionsregler liefert am Ende einen Strom bzw.
etwas, was proportional ist zum Drehmoment.
Und diese Kräfte hier zum Beispiel in Z-Richtung oder XY-Richtung
liefern für mich Sollwerte, die ich dann von den Ist-Werten abziehe
und dann eine Regeldifferenz für einen Kraftregler, der für mich dann
entsprechend die Drehmomente für die Gelenke des Roboters generiert.
Und das wollen wir anhand von zwei Beispielen sehen.
Also das sind hier zwei Beispiele.
Einmal eine hybride Kraft-Positionsregelung für zum Beispiel
Einschieben einer Box in eine Schacht.
Und wie ich bereits erwähnt habe, da sind bestimmte Koordinaten
mussten positionsgeregelt sein und andere Koordinaten kraftgeregelt
sein.
Das sind hier auch ein paar Implementierungsdetails für die Leute, die
das gleiche machen wollen.
Also wenn wir zum Beispiel hier, ich nehme mal am besten das Video
hier, wenn wir zum Beispiel hier diese Box in die Schacht schieben,
dann müssen wir natürlich entlang der Bewegung eine Positionsregelung
implementieren.
Aber in XY-Richtung, damit die Kräfte minimiert werden und diese Box
in die Schacht eingeführt werden muss, müssen wir natürlich diese
Kräfte auf null regeln.
Ein weiteres Beispiel Spiralsuche.
Also wenn wir zum Beispiel etwas, eine Schraube beziehungsweise einen
Stift in ein Loch mal einführen wollen durch ein Roboter und wir
wollen dieses Loch mal finden oder stellen wir uns mal vor ein
Roboter, der eine Schraube abschrauben soll, dann müssen wir natürlich
hier, wie man hier in dem Video sehen, also da können wir vielleicht
visuell jetzt hier diese Position nicht finden und deshalb müssen wir
diese Fehler, die hier entstehen, mal korrigieren, indem wir
spiralenförmige Bewegungen machen, um praktisch diese Einflugoperation
mal zu realisieren.
Und das ist jetzt keine leichte Aufgabe zu entscheiden.
Natürlich sind das jetzt hier isolierte Beispiele, wo man klar sieht,
ich muss in die Richtung positionsgeregelt arbeiten, in anderen
Richtungen kraftgeregelt arbeiten.
Man könnte sich vorstellen, dass es allgemein so nicht so einfach oder
trivial ist, diese Elemente in der Selektionsmatrix mal zu bestimmen
anhand von der zugrunde liegenden Aufgabe.
So, die zweite Variante, die ich bereits erwähnt habe,
Imbedanzregelung.
Und bei einer Imbedanzregelung wollen wir ja tatsächlich, es geht auch
darum, die Beziehungen zwischen Positionen und Kräften bei
Interaktionen mit der Umgebung zu beschreiben.
Und die Idee ist, diese Interaktion durch so ein Federmassiv-Dämpfer
-System zu beschreiben.
Das heißt, ich habe eine Kraft F und Bewegung vom Roboter und wir
wissen, die Bewegung von dem Roboter kann ich beschreiben durch XX
-Punkt und XY-Punkt, also die Trajektorie, Geschwindigkeiten,
Beschleunigungen.
Und wenn wir das Ganze hier, das kennen wir ja aus der Mechanik, aus
der Physik, das heißt, die Kraft ist nichts anderes als D mal X plus B
mal X-Punkt plus M mal XY-Punkt und diese B, D und M, die haben Namen.
Das heißt, einmal D ist die Steifigkeit von diesem System, also man
stellt sich vor jetzt hier, dass der Endeffektor oder ein Finger zum
Beispiel von der Hand, die praktisch an ein Objekt berührt und wir
wollen diese Interaktionskräfte an den Kontaktstellen mal modellieren.
Dann haben wir natürlich eine Dämpfung im System.
Das ist B, das ist dieser Dämpfer.
Dann haben wir hier eine Steifigkeit von dieser Feder, die hier zu
sehen ist und natürlich die Trägheit der Masse, die auch modelliert
werden muss.
Das heißt, diese Gleichung hier können wir jetzt mithilfe von der
Laplace -Transformation unter der Annahme, dass alle
Anfangsbedienungen Null sind, auf sowas überführen.
Wir kriegen eine Übertragungsfunktion von dem System, also F von S
durch X von S, das ist D plus BS plus M mal S-Quadrat.
Und dieser Term hier ist nichts anderes als die Imbedanz von diesem
Feder -Dämpfer-Masse-System, also Imbedanz sozusagen, der für mich
diesen Widerstand beziehungsweise Trägheit bei Kontakt mit der
Umgebung beschreibt.
Und wenn wir das hier haben, dann können wir das natürlich benutzen,
um sowas zu realisieren.
Das heißt, wir können einen kraftbasierten Imbedanzregler realisieren,
wo wir hier die Sollkraft haben.
Wir messen hier die Position, das ist die Sollposition.
Mithilfe von dieser Imbedanz können wir natürlich die
Interaktionskräfte, die im Kontaktfall auftreten, und können wir das
berücksichtigen hier bei einer Kraftregelung.
Dual dazu kann man natürlich einen positionsbasierten Imbedanzregler
realisieren, indem man X, also F und X hier vertauscht.
Das heißt, dass man hier F und hier X hat und hier misst man auch die
aktuelle Position und dann statt einem Kraftregler hier einen
Positionsregler.
So viel dazu.
Für die Leute, die natürlich Interesse haben, hier auf dem Gebiet
etwas zu machen, müssen sie sich mehr anstrengen und viel mehr dazu
lesen, weil die einzelnen Blöcke, die wir gesehen haben, die sind sehr
abstrakt.
Aber ich hoffe, dass ich die Grundideen hier rüberbringen konnte.
Auf der einen Seite eine hybride Kraftpositionsregelung, wo die
zentrale Idee dahinter, jede Kraft führt zu einer Positionsänderung.
Wenn ich jetzt hier eine Kraft auf dem Objekt ausübe, dann verändert
sich die Position von dem Objekt.
Und die andere Variante ist, dass wir Interaktionskräfte, also
Situationen, wo Kontakt mit der Umgebung vorhanden ist, also zum
Beispiel, wo der Roboter die Tür aufmacht, auch irgendwie modellieren
müssen.
Das sind nicht nur Positionen, die geregelt werden müssen oder
Einschiebeoperationen, die Box in die Schacht.
Ich muss sowohl die Position als auch die Kräfte modellieren und das
können wir beispielsweise mithilfe von dieser Embedance-Regelung
machen.
Welche Regelungen sind so in einem Roboter?
Normalerweise natürlich bei Industrierobotern Position
-Geschwindigkeitsregelungen, bei modernen, vielleicht in den
Leichtbaurobotern vielleicht auch Drehmomentregelungen unter der
Voraussetzung, dass in den Gelenken des Roboters Drehmomentgelenke
vorhanden sind.
Aber bei so einem humanoiden Roboter hat man natürlich fast die
komplette Palette von Regelungskreisen, also einmal
Gelenkwinkelregelungen, Regelungen im karthesischen Raum.
Ohne die können wir ja keine Objekte greifen und manipulieren, denn
wir müssen ja den Endeffektor zum Zielobjekt führen, um zum Beispiel
kontaktbehaftete Aufgaben zu lösen, Kraftpositionsregelungen oder
Embedance -Regelungen, Geschirrspülmaschine oder Kunstschrank
aufmachen.
Bildbasierte Regelung zum Beispiel, um basierend auf Bildinformationen
die Hand zum Objekt zu führen.
Kombinierte Bild- und kraftbasierte Regelung oder Haptikbasierte
Regelung beispielsweise, um Objekte, Überflächen von Objekten zu
explorieren.
Und das sind hier ein paar Beispiele, die wir schon kennen vielleicht
aus unseren Arbeiten, also wo der Roboter zum Beispiel dieses Objekt
mal greift.
Und was man hier sieht, wir werden uns natürlich mit den Themen
beschäftigen.
Also jetzt sind wir eigentlich hier die Ausführung und zwar die
zugrunde liegende Regelung für die Ausführung von solchen Aufgaben.
Das Thema Bewegungsplanung haben wir noch nicht behandelt.
Das wird das nächste Kapitel sein.
Und man sieht hier, da kommt noch vieles auf uns zu.
Aber das ist hier die Soll-Trajektorie und diese Soll-Trajektorie
bekommt der Roboter jetzt hier von der Bewegungsplanung und soll
natürlich ausgeführt werden.
Und das ist, was man hier sieht, dass man die visuelle Information
verwendet wird, um tatsächlich die Hand zum Objekt oder zur Zielpose
zu führen.
Und das Gleiche auch hier, also bildbasierte Positionsregelung für das
Greifen.
Das ist die Zielposition, die kommt von, also die 6D-Pose von den
Objekten, kommt natürlich aus der Bildverarbeitung, die externe
Sensorik, also extern, aber die ist im Kopf hier vom Roboter.
Und dann natürlich hier die Positionsgeführte, das positionsbasierte
Visual Servoing, um die Hand zum Objekt zu führen.
Das ist die aktuelle Position, die wird immer gemessen, wie wir gleich
sehen werden.
Und um diese einfache Aufgabe zu führen.
Der Roboter hat Kraftsensoren in den Handgelenken.
Da ist ein Kraftsensor hier, der misst tatsächlich die Kräfte und
Momente, die auftreten am Handgelenk, wenn der Roboter in Kontakt mit
der Umgebung ist, zum Beispiel hier die Spülmaschine aufmachen.
Und natürlich müssen diese Kräfte und Momente bzw.
die Positionsvorgaben oder Geschwindigkeitsvorgaben entsprechend
angepasst werden, je nachdem, wie weit die Tür offen ist.
Die Kräfte ändern sich auch und deshalb halt diese hybride
Kraftpositionsregelung in dem Fall, um praktisch die Aufgabe hier
auszuführen und weitere Sensorik, auf die ich jetzt hier im Einzelnen
nicht eingehen werde.
Aber wie sehen solche Regelkreise für das Greifen, für das
bildbasierte Greifen aus?
Das heißt, wir setzen voraus, wir haben diese kaskadierten Regelungen
für die Gelenkwinkel mit Geschwindigkeitsregelung der Gelenke und
Positionsregelung.
Wenn wir aus irgendeiner Inversionkinematik eine Sollposition
bekommen, dann gibt es auf der Low-Level-Ebene diese Gelenkregelungen,
die praktisch die Sollpositionen anfahren.
Aber wir wollen ja ein Objekt greifen, das heißt, wir haben ja eine
bildbasierte Regelung.
Die Position von dem Objekt, die wird hier bestimmt, zum Beispiel über
die Stereokameras hier vom Roboter.
Das heißt, hier die Perzeption, da kriegen wir hier die Position und
Orientierung von dem Zielobjekt.
Und das ist ein 6D-Vektor.
Wir haben natürlich die Position der Hand und greifen bedeutet
eigentlich, ich muss jetzt meine Hand zum Objekt führen.
Das heißt, die Regeldifferenz ist der Abstand zwischen meinem Tool
-Center -Point, also diesem Punkt hier und dem Objekt.
Und diese Differenz bzw.
diesen Abstand gilt es dann zu minimieren, auf null zu bringen.
Und das ist natürlich ein Spezialfall hier, weil der Roboter nicht so
genau ist und weil der Roboter keine genauen Gelenkwinkelsensoren hat,
die wirklich die Position der Gelenke bestimmt.
Deshalb kann man sich nicht rein auf die Gelenkwinkelsensoren hier
verlassen.
Man kann natürlich die Gelenkwinkel von dem Arm messen und kriegt man
hier eine Schätzung der Position und Orientierung von der Hand.
Diese Schätzung wird korrigiert mithilfe von visueller Information.
Deshalb haben wir diesen roten Marker am Handgelenk vom Arma 3.
Das heißt, die Fusion von diesen zwei gibt uns eine zuverlässige Pose
der Hand.
Pose bedeutet Position und Orientierung der Hand.
Position und Orientierung von dem Objekt haben wir auch visuell
bestimmt.
Das ist unsere Zielpose und aus der Hand- und Zielpose bilden wir eine
Regeldifferenz und diese Regeldifferenz geht hier in diesem Block, was
ja nichts anderes als die Inversikinematik ist, die Regeldifferenz.
Und anhand von dem hier bestimmen wir, das muss ein Delta-X sein
eigentlich, sehe ich gerade.
Und anhand von Delta-X hier bekommen wir unsere Theta-Punkt mit dem
Pseudo -Inversion hier und wenn wir Theta-Punkt haben und wir haben
Geschwindigkeitsregelungen für den Arm, also Gelenkwinkel-Controller
oder Regler hier, dann können diese Bewegungen hier ausgeführt werden.
Also das heißt, dass genau was im Hintergrund läuft, wenn tatsächlich
der Arma-Roboter hier eine Tasse greift, beziehungsweise visuell oder
bildgestützt seine Hand Richtung eines Zielobjekts bewegt.
So, nun habe ich erwähnt, dass der Roboter ja eine weitere Sensorik
hat und nicht nur immer oder visuelle Informationen nicht immer
ausreichend, um viele Bewegungen, um einige Aufgaben zu lösen, zum
Beispiel Aufgaben, bei denen es Kontakt mit der Umgebung auftritt, zum
Beispiel Tür aufmachen, das hat Drehmoment, das hat Kraftsensoren,
beziehungsweise die Lokalisierung von dem Objekt.
Und damit die Kommandos hier für die Regelungen geschickt werden,
müssen natürlich aus dieser multimodalen sensorischen Information
etwas erzeugt werden, was tatsächlich zu den unteren Ebenen geschickt
werden kann.
Natürlich haben wir die Vorwärtskinematik, mit der Vorwärtskinematik
und die Gelenkwinkelinformationen kriegen wir die Position der Hand.
Wir haben die Kräfte und Momente, die wir im Koordinatensystem von dem
Sensor messen und mit einer bestimmten, mit einer Transformation
führen wir das auf die Kräfte und Momente, die auf die Hand einwirken.
Wir haben natürlich die Position von den Objekten, die für uns ja die
Zielposi gibt und die werden beispielsweise im Kamerakoordinatensystem
bestimmt hier über die Kamerakalibrierung und Ähnliches.
Das hat über eine geeignete Transformation natürlich in das
Weltkoordinatensystem, also was halt für die Regelung notwendig ist
und dann anschließend die Lokalisierung der Hand, die wie im Beispiel
oder im Diagramm vorher zu sehen war, die auch entsprechend auf das
richtige Koordinatensystem hier abgebildet werden kann.
Genau, dann gibt es weitere Kraftregelungen, also Impedanzregelungen,
bei denen man aus Bewegungsabweichungen, also aus
Positionsabweichungen werden natürlich Kräfte generiert und da kann
man hier einige Vereinfachungen machen, zum Beispiel
geschwindigkeitsbasierte Vereinfachungen und realisiert man dann so
eine Steifigkeit oder Dämpfungsregelung, also wo man wirklich diese
Kraft hier regelt, die in diese Feder hier einwirkt.
Und das ist, was hier in dem Fall gemacht wird.
Das heißt, wir haben die Position von der Tour hier oder von Tourgriff
XY und wir messen die Kräfte hier in diesem 6D Kraftmomentensensor und
wenn die Tour hier aufgemacht werden muss, muss man natürlich hier aus
diesen Positionsänderungen, die man erfasst und auf die Kräfte
berechnen beziehungsweise letztendlich die Geschwindigkeiten
berechnen, mit denen man diese Bewegung hier ausführen kann.
Weitere Beispiele für zweiarmige Manipulationsaufgaben, also wo beide
Manipulatoren miteinander, beide Arme miteinander gekoppelt sind.
Einmal nachgiebig gekoppelte Manipulation, also man sieht hier, der
Roboter zieht zu einem Band und soll praktisch die Spannung hier
gehalten werden und der Mensch übt, also was der Mensch jetzt an der
Hand eigentlich macht, das sind Störungen, die von dieser Regelung
kompensiert werden müssen, um dieses Objekt hier in diesem gespannten
Zustand zu halten.
Was ja keine triviale Aufgabe und da wird tatsächlich diese
Stärfigkeit hier geregelt, wie vorher auf der Folie und einfacher ist
natürlich, wenn beide Manipulatoren starr miteinander gekoppelt sind,
wie man sieht hier, dass man die Kräfte, die ausgeübt werden, an dem
Objekt, an beiden Armen verteilt, mehr oder weniger, werden, um das
Objekt weiterhin halten zu können.
Oder weitere Kraftregelungen, also Positionskraftregelungen für Mensch
-Roboter -Kooperationsszenarien und was man hier eigentlich sieht,
dass diese Krafteinwirkungen, die der Mensch hier ausübt, bei
gemeinsamen Tragen von einem Tisch beispielsweise auf Kommandos für
die beiden Arme hier, an diese eng gekoppelten Arme weitergeschickt
werden, beziehungsweise auch hier beim gemeinsamen Tragen von diesen
schweren Objekten.
Das sind auch weitere Beispiele, ohne die tatsächlich diese hybride
Kraftpositionsregelung, beziehungsweise Imbedanzregelungen, solche
Aufgaben nicht zu realisieren sind.
Oder hier beim auch gemeinsamen Tragen von Objekten, wo tatsächlich
der Mensch und Roboter hier solche Manipulationsaufgaben ausführen.
Der Unterschied hier jetzt vielleicht, dass man hier über eine
Drehmomentregelung bei dem Arma 6 viel besser diese Regelungen
realisieren kann, als nur mithilfe von einem Kraftmomentensensor im
Handgelenk.
Damit will ich diese ganz kurze und allgemeine Einführung abschließen
zu den Regelungskonzepten hier bei Manipulatoren.
Das sind hier die englischen Begriffe, die man vielleicht in anderen
Papern sieht und das Kapitel somit abschließen und mit dem nächsten
Kapitel anfangen.
Gibt es Fragen dazu vielleicht?
Genau, das nächste Kapitel heißt Bahnsteuerung und zwar in diesem
Kapitel geht es darum, wenn wir jetzt eine Trajektorie haben, wie
können wir diese Trajektorie ausführen?
Das heißt, welche Punkte von dieser Trajektorie sollen wir eigentlich
als Sollwerte für die darunterliegende Regelung schicken?
Wir haben bis jetzt noch nicht darüber geredet, also wir sind noch
nicht so weit, dass wir überhaupt diese Trajektorie generieren.
Also dass wir eine Trajektorie, zum Beispiel eine kollisionsfreie
Trajektorie generieren, die für mich diese Manipulationsaufgabe
erfüllt.
Das heißt, wir nehmen an, die Trajektorie ist vorgegeben und im
nächsten Kapitel werden wir sehen, wie diese kollisionsfreien
Trajektoren generiert werden.
Aber wenn wir eine Trajektorie haben, wollen wir gucken, welche
Möglichkeiten es gibt, um diese Trajektoren hier auszuführen.
Und das ist, was man Bahnsteuerung nennt.
Das hat ein bisschen Grundlagen zur Bahnsteuerung.
Wie kann man Schlüsselpunkte einer Trajektorie programmieren?
Welche unterschiedlichen Interpolationsarten gibt es für exakte
Interpolationen, aber auch welche approximierten Interpolationsarten
gibt es oder Bahnsteuerungsmethoden gibt es?
Und zu Beginn wollen wir uns ein paar Definitionen angucken.
Das heißt zunächst mal, wir wollen die Bewegungen als Roboter als
Zustandsänderungen über die Zeit betrachten oder auffassen und zwar
relativ zu einem festen Koordinatensystem.
Das sind ja die Bewegungen, das heißt irgendwelche Zustandsänderungen
im Raum.
Der Roboter verändert ja seinen Zustand über die Zeit und das in einem
Koordinatensystem, sei es jetzt im karthesischen Raum oder im
Gelenkwinkelraum und mit bestimmten Einschränkungen.
Diese Einschränkungen können zum Beispiel die maximalen
Geschwindigkeiten, Beschleunigungen, Gelenkwinkelgrenzen, irgendwelche
Goody -Kriterien, die garantiert werden oder erfüllt werden müssen
während der Bewegung und irgendwelche weiteren Randbedingungen.
Das heißt, wenn wir das Problem hier betrachten, dann haben wir einen
Startpunkt und zwar das ist der Zustand zum Startzeitpunkt und wir
haben einen Zielpunkt und das ist der Zustand von dem Roboter am Ziel.
Und was wir suchen, wir suchen die Zwischenzustände, also wenn wir das
für eine Funktion zwischen Start- und Endposition suchen, suchen wir
die Stützpunkte dieser Funktion oder dieser Trajektorie, die uns von
Start zum Ziel bringt und zwar entlang einer glatten, vielleicht
stetig differenzierbaren Trajektorie.
Also je nachdem, was für Nebenbedingungen oder Randbedingungen man
definiert hat.
Was bedeutet das eigentlich?
Das bedeutet, wir haben irgendwelche Anfangsbedingungen.
Sagen wir mal, die Position von einem bestimmten Gelenk, jetzt von
einem Gelenk, soll zum Zeitpunkt T gleich 0,15 Grad sein.
Die Geschwindigkeit und Beschleunigung sind 0 und 40 Grad pro Sekunde
hier.
Und die Endbedingungen, wir sollen uns auf 45 Grad bewegen, also von
15 auf 45 Grad und sollen auch zum Stillstand hier kommen am Ende.
Die Geschwindigkeit soll 0 sein und die Beschleunigung minus 40 Grad
pro Sekunde zum Quadrat.
Also das sind irgendwelche Randbedingungen, die gegeben sind und wir
haben gesagt, wir beschreiben das Ganze, indem wir diese Zustände,
also wir suchen Zwischenzustände zwischen Start und Ziel.
Und wie können wir praktisch diese Bewegungen beschreiben?
Wir haben zwei Varianten.
Wir können das im Arbeitsraum machen.
Das ist zum Beispiel unser bekannter Roboter mit den drei Gelenken
hier und der soll von hier nach da sich bewegen.
Und das ist natürlich die Bahn in diesem karthesischen Arbeitsraum,
beziehungsweise wir können das Ganze im Gelenkwinkelraum beschreiben.
Das heißt, wo wir die Hindernisse, also das Rot ist hier ein
Hindernis.
Das ist der Hindernisraum hier im Konfigurationsraum und das sind die
Zustände, beziehungsweise die Bahn aller Gelenke.
Also wie sich die drei Gelenke hier Q0, Q1 und Q2 vom Start zum Ziel
bewegen.
So, das heißt, die Zustände, die können dargestellt werden im
Konfigurationsraum, also in der N, wenn wir N Freiheitsgrade vom
Roboter haben oder im Arbeitsraum SE3, also wo wir sowohl die Position
als auch die Orientierung haben.
Und die Bahnsteuerung im Konfigurationsraum, wenn ich jetzt die
einzelnen Gelenke ansteuere und ich suche tatsächlich irgendwelche
Zwischenpunkte für die Gelenkwinkel Trajektorien, dann ist es
natürlich eine Sache, die sehr nah an der Hardware ist.
Ja, ich weiß, ich suche Zwischenpunkte für den Ellenbogen Motor Nummer
4, der soll durchfahren von 0 bis 45 Grad mit der maximalen
Geschwindigkeit V und maximaler Beschleunigung A.
Das heißt, es ist eine Art der Bahnsteuerung, die näher an der
Ansteuerung der Teilsysteme des Roboters, also Gelenke und Sensoren,
während der Ansteuerung im Arbeitsraum ist näher an der zu lösenden
Aufgabe.
Also beziehungsweise auch für uns Menschen intuitiv, weil wenn ich
weiß, wie ich beispielsweise, wenn ich weiß, ich will dieses Objekt
hier greifen, dann kann ich natürlich meine Trajektorie oder diese
Stützpunkte der Trajektorie so definieren, dass ich alle Hindernisse
vermeide und zum Ziel komme.
So, deshalb ist es näher an der zu lösenden Aufgabe und natürlich
fordert das, dass ich bei jedem Stützpunkt, was ich definiere, auch
die inverse Kinematik löse, weil letztendlich kann ich keine X, Y, Z,
Alpha, Beta, Gamma zu der Robotersteuerung schicken, sondern am Ende
muss ich ja Gelenkwinkelwerte oder Gelenkwinkelgeschwindigkeiten zu
der Steuerung schicken.
Das heißt, wenn man das zusammenfasst, haben wir zwei Möglichkeiten,
wenn wir diese Stützpunkte definiert haben, beziehungsweise wenn wir
Stützpunkte zwischen Start und Ziel definieren wollen und
beziehungsweise zwischen denen interpolieren, dass wir sagen, wir
machen das in Weltkoordinaten, wo ich meine Start- und Zielkoordinaten
habe, also die aktuelle Position zum Beispiel vom Arm, die
Zielposition vom Objekt.
Und ich habe ja Stützpunkte zwischen den zwei, dann interpoliere ich
mehr oder weniger, dann habe ich interpolierte Koordinaten und diese
interpolierten Koordinaten im karthesischen Raum, also in
Weltkoordinaten, muss ich natürlich mithilfe von der inverse Kinematik
auf die entsprechenden Gelenkwinkel abbilden.
Wenn ich das Ganze im Gelenkwinkelraum mache, dann habe ich meine
Start - und Zielkoordinaten, ich bin hier, ich weiß, wie meine
Armstellung ist, ich muss zur Tasse, die Position der Tasse ist
bekannt, ich löse einmal die inverse Kinematik, dann kriege ich die
Gelenkwinkel für meine Start- und Zielkonfiguration und dann kann ich
zwischen Start und Ziel interpolieren und kriege ich dann diese
interpolierten Gelenkwinkel, die mich vom Start zum Ziel führen.
So, die Bahnsteuerung im Konfigurationsraum kann man natürlich als
Funktion der Gelenkwinkelzustände beschreiben und der Verlauf von zu
einer punktweise im Gelenkwinkel spezifizierten Bahn muss im
Arbeitsraum nicht definiert sein.
Also vielleicht kann man sie im Arbeitsraum nicht mal beschreiben,
aber ich kann natürlich die Gelenkwinkel auch so bestimmen, dass ich
diese Verläufe hier nachbilde.
Das Abfahren von diesen punktweise spezifizierten Trajektorien kann
auf zwei Arten und Weisen erfolgen.
Einmal asynchron, das heißt, man steuert die unterschiedlichen Achsen
oder Gelenke von dem Roboterarm unabhängig voneinander.
Man sagt, okay, du bist da und das ist dein Ziel und die werden
angesteuert.
Jedes Gelenk hat eine maximale Beschleunigung, eine maximale
Geschwindigkeit.
Die können rasen, wie sie wollen, Hauptsache sie kommen zum Ziel.
Und das ist, was man tatsächlich bei Punktschweißen verwendet.
Hier sind eure Punkte, fahrt mal hin und egal wie die einzelnen
Gelenke sich bewegen.
Wie schnell die einzelnen Gelenke zum Beispiel bewegen.
Im Gegensatz dazu gibt es die synchronische Steuerung oder man nennt
das auch Achseninterpolierte Steuerung, da bewegen sich alle Achsen
oder fangen alle Achsen gleichzeitig mit der Bewegung an und hören sie
gleichzeitig mit der Bewegung auf.
Das heißt, Bewegung an alle Achsen beginnt und endet zum gleichen
Zeitpunkt.
Das heißt, auch wenn bestimmte Gelenke sich schneller bewegen können
und nur eine kurze Distanz zurücklegen müssen, müssen sie sich so
langsam bewegen, dass sie auf das langsamste Gelenk warten, damit er
auch zum Ziel kommt.
Und dieses langsamste Gelenk nennt man tatsächlich das Leitgelenk oder
die Leitachse, weil die bestimmt alles.
Wenn man will, dass alle Gelenke gleichzeitig anfangen, gleichzeitig
aufhören, obwohl sie unterschiedlich lange Wege zurücklegen müssen,
dann natürlich muss sich die eine oder andere Achse langsamer bewegen.
Und das ist, was man verwendet, beispielsweise beim Bandschweißen oder
beim Lackieren oder beim Montieren.
Und was bedeutet das eigentlich für uns?
Das bedeutet, wir müssen uns gucken, was ist der Vorteil von einer,
wie haben wir sie genannt, asynchronen bzw.
synchronen Bandsteuerung?
Anscheinend bei der Asynchronen ist das Ganze weniger überschaubar,
was so die einzelnen Achsen machen.
Während bei der Asynchronen kann man sich noch ein bisschen die Bahn,
wie die einzelnen Gelenke sich bewegen, gut beschreiben.
Aber das werden wir gleich sehen.
Das heißt, Bandsteuerung im Arbeitsraum.
Wenn wir im Arbeitsraum arbeiten, dann müssen wir natürlich die
Trajektorie als Funktion der Zustände des Roboters und beispielsweise
Beschreibungsvektor.
Beispielsweise können wir jetzt hier als Beschreibungsvektor das
Endeffektor, die Position, die Geschwindigkeit und die Beschleunigung
angeben.
Und die andere Variante wäre, dass wir die kontinuierliche Bahn
tatsächlich vorgeben.
Das heißt, wir wollen, dass dieser Arm oder der Endeffektor jeden
Punkt dieser Bahn abfährt.
Natürlich, wenn wir auf einer Linie, entlang einer bestimmten Linie
schweißen wollen, dann wollen wir ja eigentlich, dass der Arm oder der
Endeffektor oder die Spitze von der Schweißpistole an jedem Punkt
exakt kommt.
Wir können uns nicht erlauben, dass irgendwelche Abweichungen zwischen
interpolierten Punkten hier zustande kommen.
Und deshalb nennt man das auch Trajektorientracking.
Das heißt, wir müssen wirklich die Trajektorie exakt tracken, ohne
irgendwelche Abweichungen zwischen den interpolierten Punkten.
Und in allen Fällen gibt es natürlich unterschiedliche Bahntypen, also
zum Beispiel lineare Bahnen zwischen den Stützpunkten der Trajektorie.
Natürlich Polynomi können wir zwischen den Stützpunkten der
Trajektoren definieren oder Splines.
Wenn man die unterschiedlichen Varianten, also die Bahnsteuerung im
Arbeitsraum bzw.
im Konfigurationsraum gegenüberstellt, dann ist es klar, im
Arbeitsraum kann ich die Bahn einfacher formulieren, weil ich weiß, wo
ich Stützpunkte definieren muss, damit ich die Aufgabe erreiche.
Die Interpolation ist viel einfacher.
Der Nachteil ist, ich muss die Inversi-Kinematik für jeden Punkt der
Trajektorie lösen, weil letztendlich schicken wir Gelenkwinkel oder
Gelenkweggeschwindigkeiten zur Gelenkregelung und die geplante
Trajektorie muss nicht immer ausführbar sein.
Wenn ich jetzt einen Stützpunkt definiere im karthesischen Raum und in
diesem Punkt habe ich eine Singularität oder es ist nicht erreichbar
oder ich habe irgendwelche Überschreitungen von Gelenkgrenzen, wo die
Inversi -Kinematik keine Lösung hat, dann ist meine Trajektorie nicht
ausführbar.
Im Gelenkwinkelraum ist die Ansteuerung der Gelenke natürlich
einfacher, weil das sind ja Gelenkwinkelwerte, die meine Trajektorie
beschreiben.
Die Trajektorie ist natürlich eindeutig und berücksichtigt die
Gelenkwinkelgrenzen.
Ich kann keine Trajektoren interpolieren im Gelenkwinkelraum, wo ich
irgendwelche Gelenkwinkelüberschreitungen habe.
Die Interpolation von mehreren Gelenken, also wie wir tatsächlich die
unterschiedlichen Gelenke ansteuern, das ist vielleicht keine einfache
Aufgabe.
Wie wir synchron oder asynchron steuern wir die einzigen Gelenke und
natürlich kann die Formulierung der Trajektorie umständlicher sein,
vor allem bei komplexen Roboter-Systemen oder Roboter-Systemen mit
einer großen Anzahl von Freiheitsgraden.
So viel allgemein zur Einführung in das Thema und jetzt wollen wir
gucken, wie programmiert man eigentlich in der Industrierobotik?
Ausnahmsweise Industrierobotik, wie programmiert man diese Punkte?
Man hat solche Geräte, also jeder Roboter hat so eine Schnittstelle
und da sieht man hier, das ist eigentlich so eine Tastatur mit vielen
Knöpfen, das ist auch sogar eine grafische Überfläche.
Das ist so eine Teach-Box oder Teach-Panel oder man hat auch so eine
Space -Mouse oder eine Teach-Kugel, mit der man Positionen definieren
kann und mithilfe einer Teach-Box kann man zum Beispiel die einzigen
Gelenke bewegen.
Ich glaube, das sind hier sechs Knöpfe, wo man X, Plus, Minus, Y, Z,
Alpha, Beta, Gamma, man kann also den Endeffektor, das ist X, das sind
die Gelenke, man kann die sechs Gelenke bewegen, man kann in
unterschiedlichen kartesischen Richtungen auch den Endeffektor
bewegen.
Man kann bestimmte Punkte programmieren, speichern, man kann weitere
Vorgaben machen, zum Beispiel an einem bestimmten Punkt mit einer
bestimmten Geschwindigkeit fahren oder an einem bestimmten Stützpunkt
soll der Greifer auf- oder zu sein.
Und auf diese Art und Weise kann man tatsächlich diese Stützpunkte
hier machen und da gibt es hier ein Video, da sieht man hier, mithilfe
einer Teach-Box kann man über diese Maus bzw.
über diese Tastatur kann man den Roboter steuern, die einzigen Gelenke
bzw.
auch die einzigen Gelenke bzw.
die unterschiedlichen Richtungen.
Im kartesischen Raum und das ist, was nach wie vor häufig, nach wie
vor verwendet wird bei der Programmierung von Industrierobotern.
Ja, also auf diese Art und Weise werden tatsächlich diese
unterschiedlichen Punkte bestimmt und gespeichert und dann hat man ein
Programm, was dieser Roboter dann abfährt, um Punktschweißen zu machen
oder um irgendwelche Montageaufgaben hier durchzuführen, zum Beispiel
Pakete vom Fließband zu nehmen.
So, die andere Variante, die man hat und die ist vielleicht
intuitiver, ist, wenn man den Roboter tatsächlich führen kann.
Das heißt, wenn der Roboter zum Beispiel im sogenannten Zero-Force
oder Zero-Torque-Modus betrieben werden kann, das heißt, ich kann
wirklich den Arm führen und bewegen und dem zeigen, wie er an
bestimmten Positionen, wie der Greifer oder der Endeffektor an
bestimmten Positionen sein muss.
Das heißt, der Roboter kann durch den Bediener bewegt werden.
Dann fahre ich natürlich die gewünschte Trajektorie oder die
gewünschte Bahn.
Ich speichere diese Werte entweder automatisch, alle Werte, zum
Beispiel mit der Abtastfrequenz der Regelung, beziehungsweise manuell,
wo ich irgendeinen Knopf beispielsweise habe am Roboter und sage,
diesen Punkt, diesen Punkt, diesen Punkt.
Und dann habe ich so mehr oder weniger ein Programm, was ich dann
ausführen kann, um die Aufgabe zu lösen.
Und das ist natürlich sehr praktisch, gerade wenn man irgendwelche
Trajektorien ausführen kann, die mathematisch sehr schwer zu
beschreiben sind.
Und beziehungsweise unsere Inversi-Kinematik, beziehungsweise was
automatisch, ja, Inversi-Kinematik, die liefert für uns jetzt nicht so
die optimale immer Lösung.
Aber wenn wir den Arm führen, dann können wir natürlich unsere
Erfahrung, wie der Arm sich bewegen kann oder welche Posen der Arm
annehmen kann, hiermit einfließen können.
Das heißt, Integration der handwerklichen Erfahrung ist hier möglich.
Und da wollen wir sehen, wie das hier funktioniert, auch in der
Industrierobotik.
Das ist der Leichtbauarm hier von KUKA und da sieht man, man hat einen
Knopf am Handgelenk und mithilfe von diesem Knopf, also der Bediener,
der kann den Arm führen zu diesen unterschiedlichen Positionen und
mithilfe von dem Kopf speichert er die Position.
Man hat gesehen, man hat die Position 3 gespeichert, jetzt speichert
er die Position 4 und jetzt hier noch eine Position P5, die Position
P6, wenn praktisch die Schraube hier im Loch ist und wenn der Greifer
aufgeht, das ist die Position P6 und dann, wenn man fertig ist, dann
hat man eigentlich ein Programm.
Man sieht hier, der Roboter muss P1, P2, P3, die Schraube, den Greifer
zumachen, dann zu P4, was der Benutzer eingeführt hat, damit es keine
Kollisionen hier mit dem Hindernis zustande kommen.
Also das komplette Erfahrungswissen eigentlich vom Menschen hat man
oder des Bedieners hat man hier automatisch mit dabei und dann kann
man die Trajektorie auf diese Art und Weise ausführen.
So, weiteres Beispiel hier auch aus Karlsruhe von ArteMinds, das sind
die Anfänge von ArteMinds, wo man hier mit einem UR5 Roboter auch
solche Positionen mal anfahren kann.
Man sieht hier, der Benutzer führt den Roboter an den
unterschiedlichen Positionen und dann kann der Roboter natürlich diese
Positionen abfahren.
Genau.
So, was ist der Vorteil?
Der Vorteil ist, das ist sehr schnell, das kann man sehr schnell
machen, gerade für komplexe Bahnen.
Man braucht diese komplexen Bahnen nicht mathematisch zu beschreiben
und sehr intuitiv.
Der Nachteil, den man hier hat, beziehungsweise die Einschränkung, man
hat manchmal einen sehr schweren Roboter, den man vielleicht nicht so
einfach bewegen kann und man hat nicht immer Roboter, die im Zero
Force Mode oder Zero Torque Mode arbeiten können, dass man den Roboter
an den Arm nimmt und dann führt und die Positionen abspeichert.
Natürlich gibt es oft auch in Fertigungszellen wenig Platz für den
Bediener, dass er beispielsweise diese Aufgaben durchführt.
Korrekturmöglichkeiten sind auch kaum gegeben.
Wenn man einen Punkt definiert hat, dann ist es oft der Fall, dass man
diesen Punkt nicht löschen kann oder modifizieren kann in dieser Bahn,
was man ja eigentlich auch will, beispielsweise um eine bestimmte
Straße, Fertigungsstraße auf ein neues Modell von einem Produkt
umzuprogrammieren.
Die Optimierung und Kontrolle durch Interpolationsmöglichkeiten ist
auch schwierig und da bekommt man hier auch sogenannte oder oft
suboptimale Bahnen.
Aber das sind prinzipiell die Methoden, die man heutzutage einsetzt
bei der Programmierung von diesen Industrierobotern.
Man hat natürlich hier bei Drehmoment geregelten Roboterarmen, wo man
den Roboter in den Arm nimmt und Kinesthetic Teaching hat man schon
eine intuitive Möglichkeit, an der man heutzutage auch sehr intensiv
arbeitet.
Und wir werden uns in den letzten Kapiteln der Vorlesung auch sehr
intensiv mit dem Thema Programmieren durch Vormachen auch hier
beschäftigen, wo wir sehen, wie man Roboter auf eine intuitive Art und
Weise hier programmiert.
Aber zurück zu den Bahnen.
Wir wollen nur Trajektoren heute angucken, also Interpolationsarten.
Und zwar, wir wollen gucken, wie wir zwischen Punkten interpolieren,
also Punkt-zu-Punkt oder Point-to-Point Interpolation, PTP, lineare
zirkulare Interpolation und dann Spline Interpolation zwischen
Stützpunkten, die für uns praktisch diese Sequenz von Zuständen des
Roboters, egal ob es im Konfigurationsraum oder im Arbeitsraum
beschreiben.
Das heißt, wir werden sowas haben.
Wir haben einen Start und wir haben ein Ziel.
Und wir können natürlich zwischen Start und Ziel entlang einer
linearen Bahn interpolieren im kartesischen Raum.
Ja, und natürlich müssen wir dann, je nachdem, wie genau wir sein
müssen, an bestimmten Punkten hier die Inverse Kinematik immer lösen,
wenn wir im kartesischen Raum arbeiten.
Wir können auf eine zirkulare Bahn interpolieren.
Das heißt, wir müssen Punkte definieren, die praktisch für uns so
einen Kreis definieren oder ja, einen Kreis definieren, was durch
Start und Ziel hier durchgeht.
Deshalb dieser Stützpunkt hier.
Und wir können jetzt auf andere Arten, also was wir gleich
kennenlernen werden, Synchrony PTP, also Synchrony Punkt-zu-Punkt
-Steuerung, eine Steuerung, bei der wir annehmen, dass alle Gelenke
immer bei der Bewegung zwischen einem Punkt zum nächsten Punkt zum
gleichen Zeitpunkt anfangen mit der Bewegung und zum gleichen
Zeitpunkt mit der Bewegung aufhören.
Beziehungsweise Asynchrony Punkt-zu-Punkt-Interpolationsart, wo diese
Bedienung gleichzeitig anfangen und aufhören nicht erfüllt sein muss
oder irgendeine Spline-Trajekt, Spline-Bahn, also Interpolation
entlang einer Spline-Bahn, die hier dargestellt ist.
Und diese unterschiedlichen Möglichkeiten wollen wir hier jetzt das
nächste Mal eingehen, in der nächsten Vorlesung.
Punkt-zu-Punkt-Steuerung, beziehungsweise PTP, der Roboter führt also
eine Punkt-zu-Punkt-Bewegung aus.
Die Vorteilberechnung der Gelenkwinkeltrajektoren ist einfach und
keine Probleme mit Singularitäten.
Und wenn wir natürlich im Gelenkwinkelraum arbeiten, dann werden
unsere Zustände durch eine Sequenz von Gelenkwinkelvektoren
beschrieben, also Q von TJ, wobei TJ die Zeitpunkte sind, also 0, 1
bis K.
Und was hat man hier?
Man hat bestimmte Randbedienungen, zum Beispiel Start- und Zielzustand
sind bekannt, also Q zum Zeitpunkt T0 ist unser Q-Start und Q zum
Zeitpunkt T-End, also Ende ist Q-Ziel.
Beispiel Geschwindigkeit zu Beginn und am Ende sollen 0 sein, dann
haben wir Q-Punkt zum Zeitpunkt T, gleich 0 ist gleich 0 und Q-Punkt
zum Zeitpunkt T ist auch gleich 0.
Es sollen bestimmte Gelenkwinkelbereiche nicht überschritten werden
bzw.
maximale Geschwindigkeiten und Beschleunigungen sollen begrenzt
werden.
Deshalb sollen unsere Gelenkwinkel zu jedem Zeitpunkt zwischen Q-Min
und Q-Max sein und der Betrag von den Gelenkwinkelgeschwindigkeiten zu
jedem Zeitpunkt kleiner als eine maximale Geschwindigkeit und der
Betrag von der Beschleunigung zu jedem Zeitpunkt soll auch kleiner
sein als eine maximale Beschleunigung.
Das sind die Nebenbedienungen und Randbedienungen, die bei der
Interpolation berücksichtigt werden müssen.
Und was ist die Vorgehensweise bei dieser Punkt-zu-Punkt-Steuerung?
Eigentlich, wenn ich weiß, ich bin hier und ich muss zum nächsten
Punkt, dann muss ich zunächst mal bestimmen, wie viel Zeit ich
eigentlich vom Startpunkt zum Zielpunkt brauche.
Das heißt, ich habe pro Gelenk eine maximale Geschwindigkeit, maximale
Beschleunigung und Start- und Zielwert für jedes Gelenk und ich muss
dann bestimmen, wie viel Zeit ich brauche, um vom Startpunkt zum
Zielpunkt zu kommen mit der maximalen Geschwindigkeit VM und der
maximalen Beschleunigung AM.
Was bedeutet das?
Wenn ich diese Zeit bestimme, TE, also die Zeit vom Anfang bis zum
Ende, dann muss ich auch die Zeit bestimmen, wie lange muss ich
überhaupt beschleunigen mit AM.
Also wenn AM ist die maximale Beschleunigung, wie lange darf ich
Beschleunigung, damit ich nicht über das Ziel schieße oder wie lange
muss ich beschleunigen, damit ich überhaupt zum Ziel komme.
Ja, deshalb die Beschleunigungszeit TA und dann, wann muss ich
anfangen zu bremsen, also die Zeit TD.
Diese maximale Geschwindigkeit und maximale Beschleunigung, die ein
Gelenk physikalisch aufbringen muss, muss nicht unbedingt diejenigen
sein, mit denen man überhaupt diese Bewegung ausführt, sondern ich
muss sie wahrscheinlich modifizieren, damit ich mich anpasse an der
nächsten Position.
Das heißt Modifikation von der maximalen Geschwindigkeit, maximale
Beschleunigung, Berechnung von diesen Zeiten und dann Interpolation,
also Berechnung der Zwischenwerte.
Und wenn ich das mache, dann bekomme ich meine S- bzw.
S-Punkt und S2-Punkt.
Das sind im karthesischen Raum.
Ich ermittle die dazugehörigen Gelenkwinkel-Sol-Werte über die Inverse
Kinematik und bekomme meine Sol-Gelenkwinkel, Sol
-Gelenkwinkelgeschwindigkeiten und Sol-Gelenkwinkelbeschleunigung.
Wir gehen davon aus, S ist die Strecke, wie man hier sieht, zwischen
Start und Ziel.
Zum Zeitpunkt 0 ist 0.
Die Geschwindigkeit zum Zeitpunkt 0 ist auch 0.
Die Strecke zum Zeitpunkt TE wollen wir mit SE bezeichnen.
Und das ist die Differenz zwischen Q-Ziel und Q-Start.
Und die Geschwindigkeit am Ende, also wir sollen auch zum Stillstand
kommen, die Geschwindigkeit am Ende, also die Ableitung von S ist V
zum Zeitpunkt TE ist gleich auch 0.
So, das heißt eigentlich ist es ja eine sehr einfache Sache.
Wir müssen nur diese Zeiten und diese neuen Werte für Vm und Am
berechnen.
Dann können wir diese ganze Aufgabe, also Punkt-zu-Punkt-Steuerung
lösen.
Wie machen wir das?
Vorteil, wenn wir das so machen, wir haben eine einfache Art der
Berechnung von allen beiden Parametern.
Der Nachteil, wir haben natürlich eine sprungförmige Aufschaltung der
Beschleunigung.
So rückartig können natürlich Schwingungen der mechanischen Teile im
Roboter sein.
Aber letztendlich haben wir diese Geschwindigkeitsprofile und wir
müssen für je zwei Punkte, zwischen denen wir interpolieren, die
Parameter von diesem Geschwindigkeitsprofil bestimmen.
Und was sind die Parameter von diesem Geschwindigkeitsprofil?
Das ist einmal Vm und Vm ist nicht die maximal mögliche
Geschwindigkeit eines Gelenks, sondern die maximale Geschwindigkeit,
mit der sich dieses Gelenk bewegen darf, damit wir hier zum Zeitpunkt
TE am Ziel kommen.
Also zunächst einmal Vm, dann die Steigung, also wie weit muss ich
oder wie schnell, wie stark darf ich beschleunigen und wie lange, also
TA und die Steigung hier.
Dann natürlich, wann muss ich anfangen zu bremsen, also TD und dann
natürlich auch die Steigung für den Bremsvorgang.
Und wie kann man das machen?
Das ist so ein bisschen Physik und Geometrie und ähnliches, also
ziemlich einfach.
In der Phase 1, Beschleunigungsphase, also zwischen T gleich 0 und T
gleich TA, wissen wir, dass die Beschleunigung ist Am, also die zweite
Ableitung vom Weg ist Am.
Die Geschwindigkeit, also das Punkt ist Am mal T plus
Anfangsgeschwindigkeit.
Wir haben angenommen, dass es 0 ist, deshalb ist die Geschwindigkeit
zu jedem Zeitpunkt T Am mal T.
Der Weg zum Zeitpunkt T ist nichts anderes als diese grüne Fläche
hier, also praktisch die Fläche von diesem Dreieck, beziehungsweise
ist das Integral von dem hier, also Integral von Amt ist ein halber
Amt Quadrat plus S zum Zeitpunkt T und S zum Zeitpunkt T ist 0.
Deshalb ist die Strecke S nichts anderes als ein halber Amt Quadrat.
Das heißt, wir können hier zu jedem Zeitpunkt die Strecke mal
berechnen, bis wir bei TA landen.
Das heißt, die zweite Phase ist für uns die Phase, wo wir uns
gleichmäßig bewegen, und zwar mit dieser maximalen Geschwindigkeit Vm.
Das heißt, die Beschleunigung ist gleich 0, die Geschwindigkeit ist
gleich Vm und die Strecke S zu jedem Zeitpunkt T ist natürlich die
Strecke, die wir vorher zurückgelegt haben, den Weg, den wir vorher
zurückgelegt haben, plus Vm multipliziert mit T minus TA.
Also die Strecke, die wir vorher berechnet haben, dieses blaue Dreieck
plus die Fläche von diesen grünen Quadranten und das ist die Höhe Vm
multipliziert mit Differenz T minus TA.
Und das haben wir vorher berechnet, das setzen wir ein, ein halber Amt
zum Quadrat und TA können wir von Phase 1 berechnen.
Wir wissen, dass Vm die maximale Geschwindigkeit ist Am mal TA, also
TA ist gleich Vm durch Am.
Wir setzen ein und da sieht man hier, wir können die Strecke S zu
jedem Zeitpunkt T berechnen anhand von bekannten Parametern.
Klar, natürlich T ist die Zeit, die uns interessiert, aber Vm ist
bekannt und Am ist bekannt und D2 ist auch bekannt.
Das heißt, wir können zu jedem Zeitpunkt die zurückgelegte Strecke
berechnen.
In der dritten Phase geht es um den Bremsvorgang.
Das heißt, wir sind hier zwischen TD und TE und wir wissen, dass TD
ist eigentlich nichts anderes als TE minus TA.
Wenn die Beschleunigung und die Steigung der zwei Flanken gleich ist,
das heißt S Punkt, die Geschwindigkeit ist minus Am, weil wir bremsen.
Die Steigung ist negativ hier.
T minus TA plus die Anfangsgeschwindigkeit S Punkt zum Zeitpunkt TD
und S Punkt zum Zeitpunkt TD ist nicht 0 wie hier beim Beschleunigen,
sondern es ist Vm, weil wir uns mit Vm bewegt haben und jetzt bremsen
wir.
Und dann minus Am mal T minus TD.
Und wenn man jetzt das Ganze hier integriert bzw.
die Fläche unter dieser Kurve berechnet bis zum Zeitpunkt T, dann ist
es nichts anderes als die gesamte grüne Fläche hier minus diese Fläche
des Dreiecks.
Und die Fläche von diesem Dreieck ist TE minus T und hier haben wir Am
mal TE minus T.
Das wäre jetzt der gesamte Quadrant hier und der Dreieck ist die
Hälfte davon.
Also Am halbe mal TE minus T zum Quadrat und das ist natürlich Vm mal
ET minus TA.
Also das hier grün minus blau bekommen wir unsere Strecke S und wenn
wir das hier haben, dann können wir natürlich jetzt die Fahrzeit TE
berechnen, weil wir wissen, dass die Strecke bei TE SE ist nichts
anderes als Vm mal TE minus TA.
Wir lösen nach TE und wir wissen, dass TA ist gleich Vm durch Am haben
wir vorher berechnet.
Und wenn man das hier alles einsetzt, dann sieht man, dass die Zeit,
die notwendig ist bis zum Zielpunkt, ist nichts anderes als SE, also
die Strecke, die zurückgefahren werden muss, durch Vm plus Vm durch
Am.
Und was ich bereits erwähnt habe, dass diese maximalen
Geschwindigkeiten und Beschleunigungen nicht immer die physikalisch
möglichen maximalen Geschwindigkeiten bzw.
Beschleunigungen sind, sondern die muss man manchmal anpassen, weil es
kann passieren, dass wir beispielsweise, um zum Ziel hier zu kommen
bei TA, keine Phase der gleichmäßigen Bewegung haben.
Das heißt, wir müssen nicht mal bis zu dieser maximal machbaren
Beschleunigung oder Geschwindigkeit der einzelnen Gelenke kommen,
sondern wir kommen auf einen neuen Wert Vm hier, was darunter liegt.
Und wir können natürlich diesen Vm auch berechnen hier anhand von, das
heißt wir beschleunigen und dann bremsen wir sofort ohne eine
gleichmäßige Fahrt hier zu haben.
Aber wie man hier sieht, in dem Fall hat man einen neuen Wert Vm, was
ja nichts anderes als die Wurzel aus Am mal SE.
Genau, das ist alles schön und gut, aber wir sehen ja, da haben wir
hier eckige Änderungen, das heißt wir bremsen plötzlich, wir wechseln
praktisch von gleichmäßig auf bremsen, auch sehr plötzlich.
Und das ist natürlich immer problematisch, man will immer so weichere
Übergänge bzw.
weichere Bewegungen haben, also statt dass man eckige Ecken hier in
diesem Geschwindigkeitsprofil hat, will man solche weichen,
abgerundeten Ecken haben, damit der Roboter weniger beansprucht wird.
Und um das zu realisieren, kann man natürlich unterschiedliche
Geschwindigkeitsprofile vorgeben, und zwar nicht diese Rampenprofile,
sondern Sinoidenprofile, das heißt für die Beschleunigungsphase kann
man hier für die Beschleunigung, um diese Abrundungen zu bekommen,
dann muss man natürlich in diesem Fall auch alle Parameter bestimmen
für die Beschleunigungsphase, für die gleichförmige Bewegung und für
den Bremsvorgang.
Und wenn man jetzt hier diese Sinoidenprofile nimmt, dann ist die
Beschleunigung beschrieben durch am mal Sinusquadrat mal das hier, die
Geschwindigkeit und der Weg kann man durch Integral bilden.
Und das sind unsere Nebenbedienungen, die wir kennen, das heißt die
Geschwindigkeit am Ende von der Beschleunigungsphase ist am mal ein
halb ta ist gleich vorm, daraus können wir ta berechnen und die
gleichmäßige Fahrt auf ähnliche Art und Weise.
Natürlich die Beziehungen oder die Gleichungen, die werden ein
bisschen komplexer sein als vorher, aber das ist alles im Rahmen des
Machbaren, also wo man die Geschwindigkeit bzw.
den Weg hier berechnen kann und dann daraus aus diesen ganzen
Beziehungen auch die Fahrzeit berechnet.
Weil man muss immer diese Fahrzeit TE berechnen und da sieht man hier,
wenn man das Ganze hier auflöst, dass auf ähnliche Art und Weise, dass
man diese Fahrzeit auch bekommen, also SE durch VM plus 2VM durch AM.
Der Unterschied zwischen den beiden ist folgendes, das heißt, wir
beschleunigen und dann haben wir eine Beschleunigung von 0 für die
gleichmäßige Fahrt und dann bremsen wir.
Dazu gehört ein Geschwindigkeitsprofil in der Form, was wir Schritt
für Schritt berechnet haben heute bzw.
die Strecke, die wir abfahren von T0 bis TE.
Bei Sinuidenprofilen beschleunigen wir auf diese Art und Weise, also
nicht so diese eckigen Beschleunigungsprofile, sondern diese weicheren
ohne Ecken.
Dann haben wir solche Geschwindigkeitsprofile und natürlich solche
Verläufe der Strecke, also der Verlauf der Strecke vom Start bis zum
Zielpunkt.
Genau, das heißt, jetzt wissen wir eigentlich, wie wir diese
unterschiedlichen Zeiten berechnen, aber zurück zu der Frage, wir
haben uns die Frage gestellt vorher oder wir haben zwei Formen der
Interpolation erwähnt, die asynchrone und die synchrone Interpolation.
Und egal, wie diese Profile jetzt definiert sind, ob das Rampenprofile
oder Sinuidenprofile, haben wir solches Verhalten.
Im asynchronen Fall bedeutet, ich habe mehrere Gelenke.
Ich muss natürlich das Gleiche, was wir jetzt vorher gemacht haben,
für jedes Gelenk machen.
Nicht nur einmal, sondern ich muss es für jedes Gelenk von dem Roboter
machen und wenn ich hier zwei Gelenke habe, dann habe ich solches.
Dieses Gelenk hat ein Vmax, was viel größer ist als Gelenk 1, also
Gelenk 2 viel größer als das hier.
Und wie man sieht hier, in beiden Fällen fangen natürlich alle Gelenke
gleichzeitig mit der Bewegung auf, aber da zum Beispiel hier Gelenk 2
eine kurze Strecke ablegen muss, kommt er hier zum Stillstand, während
Gelenk 1 zu einem anderen Zeitpunkt zum Stillstand kommt.
Also der bewegt sich doppelt so lange eigentlich wie das andere
Gelenk.
Bei der Synchronensteuerung muss Gelenk 2 sich so anpassen.
Man sieht hier, Gelenk 2 geht nicht bis zu dieser maximalen
Geschwindigkeit, sondern darf nur so viel beschleunigen mit der
maximalen Beschleunigung.
Und da muss er sich so langsam bewegen, dass er zum gleichen Zeitpunkt
wie Gelenk 1 zum Stillstand kommt.
Das beeinflusst natürlich die Berechnungen, die wir vorher gemacht
haben, weil was müssen wir dann in dem Fall machen?
Wir müssen für jeden Zielpunkt berechnen, wie viel alle Gelenke
brauchen.
Und dann nehmen wir die längste Zeit, also die Zeit des Gelenks, der
sich am längsten bewegen muss, und die geben wir als die Zeit für alle
weiteren Gelenke, damit sie ihre maximalen Geschwindigkeiten so
reduzieren, dass sie auf Gelenk 1 die Leitachse, das nennt man die
Leitachse, warten, sodass alle zum gleichen Zeitpunkt zum Stillstand
kommen.
Wenn man jetzt die Trajektorien mal anguckt, was ergibt sich
eigentlich?
Also wenn wir hier asynchron die Steuerung zwischen diesen Punkten,
also das sind irgendwelche Stützpunkte, P0, P1, P2, P3, P4 und P5, und
wie gesagt, asynchron jedes Gelenk sofort mit der maximalen
Beschleunigung und jede Gelenkbewegung endet unabhängig von den
anderen, dann kriegt man solche Verläufe der Bahn.
Das heißt, wir haben keine Garantie, dass wir entlang einer Linie
zwischen P1 und P2 oder P2 und P3 gehen und keine Garantie, dass wir
auf der gleichen Seite bleiben, wie Sie sehen.
Also das heißt, die Bahn zwischen zwei Interpolationspunkten können
wir nicht beschreiben.
Können wir beschreiben, aber hängt natürlich davon ab, wie die anderen
Gelenke sich bewegen, wie schnell die anderen Gelenke sich bewegen.
Und das ist ein typischer Verlauf der Trajektorie bei einer
asynchronen Interpolation, und zwar im karthesischen Raum, also
dargestellt in XY-Ebene.
Das wäre jetzt hier der korrespondierende Synchronie, der Verlauf der
Trajektorie zwischen den Interpolationspunkten im Falle von einer
synchronen PTP.
Das heißt, alle Gelenke beginnen gleichzeitig mit der Bewegung und
beenden die Bewegung auch zum gleichen Zeitpunkt, aber trotzdem können
wir keine Garantie geben, wie die Verläufe der Trajektorie im
karthesischen Raum zwischen zwei Stützpunkten oder
Interpolationspunkten sind.
Das heißt, bei der synchronen Steuerung, wie ich bereits erwähnt habe,
muss man für jedes Gelenk i die PTP-Parameter bestimmen.
Das sind SI für das Gelenk i, für jedes Gelenk, VM für jedes Gelenk,
AM für jedes Gelenk und die Fahrzeit für jedes Gelenk.
Man bestimmt die maximale Fahrzeit, also die maximale TEI und diese
maximale Zeit ist dann die Zeit für alle Achsen.
Die Achse mit der maximalen Fahrzeit nennt man auch die Leitachse.
Man setzt dann diese maximale Fahrzeit als die Fahrzeit für alle
Gelenke und macht diese Berechnungen, wie wir das vorher gemacht
haben.
Bei der synchronen PTP-Steuerung muss man natürlich die neuen
maximalen Geschwindigkeiten für alle Gelenke berechnen.
Das sind die maximalen Geschwindigkeiten der Gelenke hier bei der
Asynchronen.
Bei der Asynchronen müssen wir sie berechnen, also für Gelenk 2 und
das können wir machen.
Das ist ziemlich einfach.
Das heißt, wenn wir die maximale Fahrzeit von der Leitachse nehmen,
dann können wir sie in diese Gleichungen einsetzen und bekommen wir
immer die maximalen Geschwindigkeiten der einzelnen Gelenke, sowohl
bei den Rampenprofilen als auch bei den Sinoidenprofilen.
Okay, wir machen das nächste Mal ein bisschen weiter, um das Thema
hier abzuschließen, bevor wir uns mit einem sehr spannenden Thema, mit
dem sehr spannenden Thema der Bewegungsplanung weiter beschäftigen.
Für heute bedanke ich mich für die Aufmerksamkeit und wünsche euch
noch einen schönen Abend.