Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Rasenmaehroboter Test

Dieser Artikel wird z.Z. formatiert


Vorwort

Irgendwie hatte sich aus Diskussionen zur Knickarm-Robotermechanik die Frage ergeben, …"und wie berechnen Sie das?" Meine Antwort war, "Mit EXCEL® ist das recht einfach." Ganz so einfach war es dann doch nicht.

Im Internet findet sich zwar einiges zum Thema, aber wenig Problem orientiertes im Focus Robotic. Meine Recherchen führten mich so zunächst in die Entwicklung Robotic orientierter Algorithmen.

  • Entstanden ist hieraus ein Mathematischer 3D Gelenk-Baukasten. Eine kostenlose Test und Demo-Version erhalten Sie im Download von meiner Web-Site.
  • Hier, im Teil 1 finden Sie Hintergrundinformation zu Problemen der Kinematik, konkurrierende Lösungsansätze und die Mathematik der Winkeltransformation in einem eher theoretischen Focus (Tutorial). Mit einigen Links verweise ich auf diejenigen, von denen ich "Honig gesaugt" habe. Alle externen Links sind offen mit ihrer URL im Kontext dieses Artikels ausgewiesen und nicht hinter einem Pseudonym versteckt. – Clicken muß man sie nur, um in die Tiefe zu gehen!
  • Die Theorie wird im Praxis orientierten Teil 2 ergänzt. Inverse Kinematik 2 – Praxis . Besprochen werden ein 3D Bahngenerator und die aus der "Sollbahn" berechneten Winkel der Knickarme.


Dynamik und Kinematik

beschreiben "wie sich was" bewegt;

  • die Dynamik fokussiert auf Beschleunigung und Verzögerung einer Bewegung unter Einfluß einer kontinuierlichen oder sich zeitlich ändernden Kraft;
  • die Kinematik berechnet "was sich wie" bewegt – ohne die Ursache, also die einflußnehmende Kraft zu betrachten.

Wenngleich die Begriffe in einander zahnen, ist jeder für sich - zumindest theoretisch - ohne den anderen betrachtbar. Diese Arbeit befaßt sich mit der Kinematik von Roboterarmen und deren Berechnung.


Zur Einstimmung legen wir unsere Hand auf eine Tischkante und bewegen Sie nach vorn - und wir beobachten bewußt, wie sich hierbei Schultergelenk, Ellenbogen- und Handgelenk mit unterschiedlicher Winkelgeschwindigkeit bewegen. Als Kleinkind haben wir Kinematik über Jahre studiert, wir haben gelernt uns zu bewegen und wir haben sogar inverse Kinematik studiert: Letztendlich interessiert nicht, wohin die Hand sich bewegt, wenn Gelenke einen definierten Winkelwert einnehmen; wir wollen nicht irgendwelche Muskeln oder Gelenke bewegen, sondern "den Finger in die Nase stecken – und bohren"!

Entsprechend dem Ausgangs- und Zielwert bzw. seiner Algorithmen unterscheidet sich Kinematik in

  • Direkte Kinematik – auch als "vorwärts"-Kinematik bezeichnet
(welcher Raumpunkt wird erreicht, wenn Länge und Winkel der Knickarme geben sind) und
  • Inverse Kinematik – "umgekehrte"-Kinematik
(welche Länge und Winkel der Knickarme werden erforderlich, um einen gegebenen Raumpunkt zu erreichen).

Legen wir die Hand am ausgestreckten Arm flach auf den Tisch, so können wir Ober- und Unterarm drehen ohne das sich die Hand bewegt – dieses Phänomen der Inversen Kinematik wird uns noch jede Menge Ärger machen – und ist eine Herausforderung an die Mathematik.

Begrenzt wird Kinematik vom Freiheitsgrad der Gelenke und der steuernden Intelligenz. Soll ein Roboter-Arm übernehmen, was wir als Kleinkind erlernt haben, so erfordert dies eine anspruchsvolle Bahnsteuerung – und einige Mathematik.


Begriffe & Philosophie

Drehachse & Schwenkachse

Unterschieden wird in der Robotik oftmals der Begriff "Drehachse und Schwenkachse". Aus Sicht der Kinematik gibt es diesen Unterschied nicht. Eine Schwenkachse wird letztendlich von einer in der Bewegungs-Kaskade seriell davor liegenden Achse gedreht. Aus Anwendersicht ist die Definitionsunterscheidung trotzdem sinnvoll!

Fußpunkt, Ellenbogen & Co

Auch diese, den menschlichen Extremitäten nachempfundene Begriffe finden wir in der Literatur. Fußpunkt mag zunächst plausibel erscheinen. Beim Roboter ist der Fußpunkt unbeweglich, beim Menschen Basis aller Bewegungen. Wenn die Begriffe Ellenbogen und Handgelenk sinnvoll sein sollen, dann ist der Fußpunkt in Konsequenz eher "Schulter"! - Fußpunkt macht hingegen Sinn, falls der Roboter auf Portal verfahrbar ist.

Philosophie eines mathematischen Ansatzes

Der RoBo-mac Gelenk-Baukasten unterscheidet dementsprechend für die Vorwärts Kinematik keine Dreh- und Schwenkachsen.

  • Die Kinematik wird durch Parametrierung der Achs-Länge, Ihrer XYZ-Orientierung und des max. Achs-Drehwinkels definiert.
  • An- und Abtrieb jedes Gelenkes kann unter beliebigem Winkel im Raum stehen.
  • Einige High-End Roboter arbeiten mit Teleskop-Armen, der mathematische Gelenk-Baukasten beherrscht auch diese Konstruktionen.
  • Der Algorithmus ermöglicht beliebig viel kaskadierbare Teleskop-Dreh Achsen.

In Anlehnung an die 8-Achsen Bahnsteuerung RoBo-mac's enthält der Gelenk-Baukasten 8 Achsen mit jeweils 2 Freiheitsgraden (Teleskop-Dreh Achse).

Definitionsgemäß führt die Null-Position aller Dreh-Gelenke zu einer kaskadierten Streckung aller Achs-Elemente; bei Bodenbefestigung entspricht dies "senkrecht nach oben". Wird der Arm an einem (beweglichen) Portal befestigt, so ergeben sich bei Null-Position der Gelenke ggf. andere Ausrichtungen im 3D-Raum, die der RoBo-mac Gelenk-Baukasten berücksichtigt.

Mathematiker und Ingenieure leben in verschiedenen Welten! Einig sind sich beide, daß die X-Achse grafisch von links nach rechts laufend dargestellt wird, bei Y- und Z- scheiden sich die Geister:

  • Der Mathematiker stellt grafisch die Y-Achse senkrecht, die Z-Achse "perspektivisch schräg nach hinten bzw. vorne" laufend dar,
  • CAD-Systeme, denen das Weltkoordinatensystem zu Grunde liegt, verwenden ebenfalls diese Definition, andererseits wird im Ingenieurwesen die senkrechte Achse oftmals mit "Z" bezeichnet – was in eine gewisse Verwirrung führt.

Der Mathematik des Gelenk-Baukastens liegt die Definition des Weltkoordinatensystems zu Grunde; unabhängig hiervon ist die Achs-Bezeichnug der Ein- und Ausgabewerte Y- / Z- umschaltbar.


Arbeitsbereich

Die Mechanik der Achsen (Länge und Winkelbeweglichkeit) begrenzt den Arbeitsbereich, einige Konstruktionen überstreichen einen Winkelbereich von mehr als +/- 180° je Achse, andere liegen (knapp) darunter. Im einfachsten (mechanisch nicht möglichen) Fall wäre der Arbeitsbereich eine exakte Kugel mit dem Radius aller gestreckten Achsen und dem Roboter Schulterpunkt in der Mitte, defacto gleicht die "Kugel" eher einem "Apfel".

Bei einigen Konstruktionen (KUKA / …) schneidet die Schwenkachse des dem Schulterpunkt nächsten Arms die theoretische (senkrechte) Drehachse nicht mittig, sondern rotiert auf einer Kreisbahn um diese herum, diese Auskragung hat also bereits Einfluß auf die X- und Z-Koordinaten (Achs-Definition: Weltkoordinatensystem); andere Konstruktionen (Stäubli / ...) arbeiten mit zentrischer Schulterpunkt-Achse; beide Bauarten sind parametrierbar. Im Handbuch wird dies als Supervisor-Information erläutert.


Visuelle Kontrolle (Adler & Maus Perspektive)

Unabhängig von der räumlichen XYZ Erfassung und Berechnung der Gelenk-Winkel ermöglicht es eine zusätzliche Perspektivische Betrachtung (aus beliebiger Position), "Tiefe" in der Ebene möglichst plausibel darzustellen – oder die (mathematisch "positive") CCW Drehrichtung entsprechend den Schieberbewegungen "im Uhrzeigersinn" (CW) zu visualisieren. Der hier verwendete Algorithmus wird im Rahmen der direkten Kinematik zunächst besprochen:


Direkte Kinematik

Die Mathematik geht auf simple Winkelberechnung und ihre Klassiker, Sinus / Cosinus / Tangens zurück. Unter http://de.wikipedia.org/wiki/Eulersche_Winkel findet sich eine Einführung in die Theorie der Winkeltransformation, näher beschrieben werden die Abhängigkeiten in: http://www-lehre.inf.uos.de/~cg/2006/PDF/kap-13.pdf und http://www.cg.tuwien.ac.at/courses/CG1/textblaetter/02%20Geometrische%20Transformationen.pdf.

Ich will versuchen, die letztendlich doch recht komplexen Winkelbeziehungen hier vereinfacht zu beleuchten. Grundsätzlich gilt:

  • Die Winkellage eines Punktes in der Ebene wird im XY-Koordinatensystem,
  • die eines Punktes im Raum im XYZ-Koordinatensystem beschrieben.
  • Legt man das willkürlich gelegte Koordinatensystem "anders", so beschreiben "andere" Koordinatenwerte ebenfalls die Lage des Punktes präzise.


Die Winkeltransformation ermöglicht es, die Winkel-Werte des einen Koordinatensystems in das andere zu transferieren. Bildlich gesehen wird hierzu das Koordinatensystem "gedreht, verschoben und skaliert".

  • Einen Punkt in der Ebene zu verschieben ist einfach
Zu den XY-Koordinaten des Original-Punktes werden X und Y Wert addiert, bei der Skalierung werden die XY-Koordinaten mit einem Skalierungsfaktor multipliziert; bitte beachten:
Eine unterschiedliche Reihenfolge der Transformationsschritte führt bereits bei dieser einfachen Aufgabe zu unterschiedlichen Ergebnissen!


  • Den Punkt um eine Achse zu drehen, ist selbst in der Ebene etwas komplexer:
Die Transformationsgleichungen lauten für ein Winkeldrehung um '[math] \phi\ [/math]':
x' = x • cos([math] \phi\ [/math]) − y • sin([math] \phi\ [/math]) bzw. x = x' • cos([math] \phi\ [/math]) + y' • sin([math] \phi\ [/math])
y' = x • sin([math] \phi\ [/math]) + y • cos([math] \phi\ [/math]) bzw. y = -x' • sin([math] \phi\ [/math]) + y' • cos([math] \phi\ [/math])
Die Drehrichtung ist also reversierbar.
Gedreht wurde um die Z-Achse.

Hier die erste wichtige Erkenntnis:

  • An der Drehung um die Z-Achse sind nur die XY-Koordinaten beteiligt.

Natürlich läßt sich eine zweidimensionale Darstellung auch um die X- bzw. Y-Achse drehen. Wird um die X Achse gedreht, so verkürzen sich die Y-Werte, wird um Y gedreht, die X-Werte (um jeweils den Cosinus des Drehwinkels). Ob dies sinnvoll ist, sei dahingestellt.

Liegt ein Punkt nicht in der Ebene, sondern im Raum, so hat er eine zusätzliche Koordinate, die Z-Koordinate. Die Zeichnerische Darstellung ist etwas komplex, da ja in der Ebene keine "Tiefe" dargestellt werden kann. In der klassischen Konstruktionslehre wurden 3 Ansichten (Frontsicht, Seitenansicht, Draufsicht) gezeichnet, und der "Technische Zeichner" erlernte Methoden, hieraus eine Perspektivische Ansicht zu erstellen – heute macht das der PC!

Wird ein in der Tiefe liegender Punkt um X oder Y gedreht, so führt die Transformation "aus der Tiefe in die Ebene" nicht nur zur Änderung seiner Z-Koordinate, sondern auch zur Änderung seiner XY-Koordinaten. Es gilt

  • für die X-Achse
x' = x
y' = y • cos([math] \phi\ [/math]) −z • sin([math] \phi\ [/math])
z' = y • sin([math] \phi\ [/math]) +z • cos([math] \phi\ [/math])
  • für die Y-Achse
x' = z • sin([math] \phi\ [/math]) +x • cos([math] \phi\ [/math])
y' = y
z' = z • cos([math] \phi\ [/math]) −x • sin([math] \phi\ [/math])

Hier die zweite wichtige Erkenntnis:

  • Bei Drehung um eine beliebige Koordinaten-Achse ändern sich die Koordinaten der jeweiligen Dreh-Achse nicht!

Basierend auf diesen Kenntnissen können wir "zu Fuß" jeden beliebigen Raum-Punkt transferieren, dies ist zugegebener Maßen etwas mühselig.


Transformation & Matrizenrechnung

Die Mathematik bedient sich für die Transformation meist der Matrizenrechnung, sie ist – beginnend mit ihrer Schreibweise – etwas gewöhnungsbedürftig; in Kurzform:

Eine Matrix besteht aus Zeilen und Spalten, die eine Tabelle bilden; die Matrizenrechnung verknüpft nach einem definierten Verfahren mindestens 2 Matrizen (Mehrzahl von Matrix) und erzeugt im Ergebnis eine neue Matrix. In der visuellen Darstellung wird meist jede Matrix für sich mit einer alle Zeilen übergreifenden Klammer "gerahmt", zwischen den Matrizen befindet sich der mathematische Operator.

Die Matrizenrechnung ist eigentlich nur eine "andere", sehr formale Darstellungsart bekannter Mathematik. Der Matrizen-Formalismus führt (nach Eingewöhnung) in eine sehr übersichtliche Darstellung, insbesondere "wenn vieles mit vielem" verknüpft werden muß; manchmal erkennt man am Matrix-Aufbau bereits was sie bewirkt!


Matrizenmultiplikation

Die Ergebnismatrix der Matrizenmultiplikation erhält die Zeilenzahl der ersten und die Spaltenzahl der zweiten Matrix, wesentliche Voraussetzung: Die Spaltenzahl der ersten Matrix muß gleich der Zeilenzahl der zweiten Matrix sein, (sonst geht es nicht)!

– aber Zeilenzahl der ersten Matrix und Spaltenzahl der zweiten sind beliebig!
– Als Sonderfall sind beide Werte gleich (Quadratische-Matrix).


Die Rechenanweisung der Matrizenmultiplikation lautet für die

  • Ergebnismatrix "Zeile 1 der Spalte 1".
- Multipliziere das Element aus Matrix 1 "Zeile 1 der Spalte 1" mit dem Element aus Matrix 2 "Zeile 1 der Spalte 1"
- Multipliziere das Element aus Matrix 1 "Zeile 1 der Spalte 2" mit dem Element aus Matrix 2 "Zeile 2 der Spalte 1"
- Multipliziere das Element aus Matrix 1 "Zeile 1 der Spalte 3" mit dem Element aus Matrix 2 "Zeile 3 der Spalte 1" usw.;
- addiere die Einzelergebnisse und schreibe deren Summe in die Ergebnismatrix "Zeile 1 der Spalte 1".
  • Für die Ergebnismatrix "Zeile 1 der Spalte 2" gilt gleichsinnig:
- Multipliziere das Element aus Matrix 1 "Zeile 1 der Spalte 1" mit dem Element aus Matrix 2 "Zeile 1 der Spalte 2"
- Multipliziere das Element aus Matrix 1 "Zeile 1 der Spalte 2" mit dem Element aus Matrix 2 "Zeile 2 der Spalte 2"; usw.


Jeder Zeilenvektor der ersten Matrix wird also unabhängig von allen anderen Zeilen dieser Matrix elementweise mit allen zugehörigen Spaltenvektoren der zweiten Matrix multipliziert. Es "paaren" also die Zeilen-Elemente je Spalte mit den Spalten-Elementen der korrespondierenden Zeilen. Die Einzelwerte der Ergebnismatrix hängen somit (selbst bei gleicher Zeilen und Spaltenzahl) von der Reihenfolge der Eingangs-Matrizen ab!

  • Eine quadratische Matrix 3 x 3 erfordert also z. B. 3³ = 27 Einzelmultiplikationen.

Hier die dritte wichtige Erkenntnis:

  • Die Reihenfolge der Matrizenmultiplikation bestimmt das Ergebnis.
  • Eine Vertauschung der Matrizenreihenfolge führt zu unterschiedlichem Ergebnis.


Vektortransformation & Homogene Koordinaten

Die gradlinige Verbindung zweier Punkte im Raum wird auch als Vektor bezeichnet. Jeder Vektor hat eine Größe (Länge) und eine Winkelausrichtung gegenüber dem Koordinatensystem. Vektoren haben somit einen Start- und einen Ziel-Punkt, der wahlweise mit Länge und Winkel (polar) bzw. seinen Start- und Ziel-Koordinaten (XYZ) beschrieben wird.

Bezogen auf die Roboter-Kinematik wird für die Bewegungsanalyse jeder Vektor für sich in einen anderen Vektor transformiert, dies übernimmt die Transformationsmatrix, die achsenspezifisch nach jeweils unterschiedlichem Schema aufgebaut ist;

  • sie enthält die Sinus und Cosinus Werte der Drehachse, die "Leerstellen" sind mit "Nullen und Einsen" besetzt.


Matrix Rotation XYZ 080.gif

Auffällig in diesen Schemata ist, daß für eine 3D-Transformation nicht 3 Zeilen und 3 Spalten, sondern jeweils 4 verwendet werden, die in der letzten Spalte und untersten Zeile zusätzliche "Nullen", sowie im Kreuzungspunkt eine "Eins" aufweisen.

  • Während die Rotation mit den Regeln der Matrizenmultiplikation errechnet wird, erfordert die Verschiebung, eine Vektoraddition, also unterschiedliche Rechenoperationen.
  • Durch Hinzufügen einer zusätzlichen Spalte und Zeile, den "Homogenen Koordinaten" kann die zusätzliche Vektoraddition in die Matrizenmultiplikation integriert werden. Die Verschiebung um XYZ wird dann als "Translationswert" in der Matrix an Stelle der Nullen eingetragen.

Ich hatte behauptet, der Matrizen-Formalismus führe in eine sehr übersichtliche Darstellung:

  • Ohne die "Homogenen Koordinaten" besteht jede der (Quadratischen) Rotations-Matrizen aus 3 Zeilen und 3 Spalten, also 9 Elementen. Dies sind eine "Eins", vier "Nullen" sowie die sin/cos Werte. Die "Eins" kennzeichnet die Koordinate, um die gedreht wird! (vgl. Zweite Erkenntnis)!

Mathematiker und Ingenieure leben in getrennten Welten! – Wir hatten das Thema bereits.

Die meisten Veröffentlichungen zum Thema stammen aus mathematischer Fakultät. Wir wissen bereits, daß ein Roboterglied mathematisch als Vektor betrachtet werden kann und mit seinen XYZ-Koordinaten beschrieben wird.
  • Mathematiker schreiben die XYZ-Koordinaten eines Vektors meist untereinander (vgl. Tabelle oben)
  • Ingenieure bevorzugen die horizontale Darstellung der Vektor-Koordinaten. Im Ergebnis ist dies gleich - kann aber zu erheblicher Verwirrung führen!
  • Ggf. sind Spalten und Zeilen gegeneinander zu tauschen.


3D-Transformation & 2D-Perspektive

Ein aus mehreren kaskadierten Vektoren erfaßter Roboterarm läßt sich – wie jedes andere 3D-Objekt - mit den Regeln der Winkel-Transformationen beliebig um die XYZ-Achse drehen und auch in 2D-Darstellung "perspektivisch" betrachten.

Wir finden im Internet eine Vielzahl von Beispielen hierzu; die in diesem Tutorial besprochene 3D Kinematik basiert rechentechnisch auf EXCEL® – ich verweise gerne auf Veröffentlichungen von Andy Pope http://www.andypope.info/charts/3drotate.htm und Klaus Kühnlein http://www.excelformeln.de/tips.html?welcher=53 , die mich zu dieser Ausarbeitung anregten - wenngleich oder gerade weil die Algorithmen zu unterschiedlichen Ergebnissen führen!

  • "excelformeln" arbeitet mit dem mächtigen EXCEL® Formel-Array "MMULT"- Andy Pope zeigt für die 3D-Transformation einen ebenfalls interessanten Weg – ich möchte diese Ausarbeitungen hier jedoch nicht nach dem "Schavan-Guttenberg-Prinzip" wiederholen.


Zu den unterschiedlichen Ergebnissen ein Experiment: Legen wir ein Buch, am Besten zwei jeweils in Leseposition (aber geschlossen) vor uns.

  • Das Linke drehen wir zuerst um seine Y-Achse, dann um seine X-Achse,
  • das Rechte zuerst um seine X-Achse, danach um seine Y-Achse.

Falls Sie die gleiche Position für beide Bücher erhalten, haben Sie etwas falsch gemacht!

  • Bei einem Roboter-Arm können Sie das Phänomen nicht beobachten, hier ist es egal, ob Sie den Arm erst nach hinten und dann nach oben oder umgekehrt bewegen. Der Grund liegt darin, daß der Roboter sein Koordinatensystem gewissermaßen mit bewegt. Bei unserem Buch-Experiment lag das Koordinatensystem hingegen starr.
  • Und wenn Sie beim Buch-Experiment in beiden Fällen dasselbe Endresultat erhielten, haben Sie eine der beiden Achsen (unbewußt) gegen die Z-Achse getauscht!


SCARA-Roboter

Ebenfalls unter http://www.excelformeln.de/tips.html?welcher=93 findet sich ein 2D-Roboterarm, der sich eindrucksvoll in der Ebene bewegen läßt und im Ansatz einen SCARA-Roboter simuliert. SCARA steht für: Selective Compliant Articulated Robot for Assembly. Selektiv läßt sich als "ausgewählt" in der Bedeutung von "eingeschränkt" übersetzen.

  • Der SCARA bewegt sich in einer 2D-Ebene – wenngleich mehrere dieser Ebenen geschichtet sind, um die Arme "untereinander" an sich selbst vorbeiführen zu können.
  • Senkrecht zu diesen plan-parallelen Bewegungs-Ebenen übernimmt am Ende der kinematischen Kette eine (meist drehbare) Hub-Achse die Tool-Center-Point (TCP) Funktion.

Die SCARA Bauart ermöglicht zwar nur eingeschränkte Bewegungsmöglichkeiten ist jedoch für Anwendungen optimal, deren Zielpunkte in plan-parallelen Ebenen liegen und parallel zur (meist senkrechten) Fußpunktachse anfahrbar sind. Die Konstruktion ist kostengünstig. Die eingeschränkten kinematischen Möglichkeiten führen andererseits zu einer Vielzahl aufgabenorientierter Spezialkonstruktionen, was dem Gedanken eines "Universal-Roboters" widerspricht. Unter kinematischen Gesichtspunkten sind die Bewegungsmöglichkeiten des SCARA eine Untergruppe des "Universal" Gelenkarm-Roboters.


Gelenkarm-Roboter

Der Gelenkarm- oder Knickarm-Roboter bewegt (im Gegensatz zum SCARA) die Arbeitsachse frei im 3D-Raum, also unter beliebigem Winkel. Um ein Objekt im 3D-Raum greifen / bearbeiten zu können werden mehrerer Freiheitsgrade = Drehachsen erforderlich:

Die "Roboterhand" wird mit dem "Roboterarm" positioniert.

  • Um die Hand gegenüber dem Objekt zu positionieren werden 3 Achsen (XYZ),
  • um das Objekt greifen / bearbeiten zu können, weitere 3 Achsen (UVW) erforderlich,
dies entspricht 6 Freiheitsgraden (oftmals mit "f", im amerikanischen Sprachgebrauch mit "DOF" - degree of freedom) bezeichnet).
  • Mit diesen 2 mal 3 Freiheitsgraden kann jeder beliebige Punkt im Arbeitsbereich des Roboters positioniert (XYZ) und das Werkzeug unter definiertem Winkel zum Werkstück orientiert (UVW) werden.
  • Muß der Roboter um ein Hindernis herumgreifen, so werden weitere Freiheitsgrade / Drehachsen erforderlich. Optimal sind meist 5-Arm und 3-Hand Freiheitsgrade.

Die "Roboterhand" eines Gelenkarm-Roboter rotiert im einfachsten Fall um eine Roboterarm-Achse, bei höherem Freiheitsgrad ("Ellenbogen") wird die "Roboterhand" bereits von 2 bzw. 3 Drehachsen positioniert; diese bewegen sich gegenüber dem Koordinatensystem frei im Raum.


Freie Rotation

Nochmals: Die Roboterachsen bewegen sich gegenüber dem Koordinatensystem frei im Raum.

Unsere Transformationsmatrizen kennen jedoch nur Rotation um die X-, Y- oder Z-Koordinate! Für den Rechenalgorithmus bedeutet dies,

  • daß eine frei im Raum stehende Dreh-Achse zunächst in den Koordinaten Nullpunkt verschoben und danach um die Winkelkomponenten zweier Koordinaten auf die verbleibende Koordinatenachse (welche ist beliebig) transferiert werden muß.
  • Die transferierte Dreh-Achse wird entsprechend dem gewünschten Drehwinkel um die Koordinaten-Achse gedreht,
  • die gedrehte Achse auf ihren ursprünglichen Start-Vektor zurück transferiert - und mit ihr sämtliche in der seriellen Kaskadierung folgenden Drehgelenke.

Wir erinnern das "Buchexperiment"; nach der Drehung liegt beim Linken der Rücken "unten", beim Rechten "vorn" (oder - je nach Drehrichtung - "hinten"). Dieses Phänomen macht jede Menge Ärger:

Hier die vierte wichtige Erkenntnis:

  • Die Transformationsmatrizen müssen für eine Rückdrehungen in exakt umgekehrter Reihenfolge durchlaufen werden. Nach jeder Transformation ändern sich alle Winkelkomponenten.

Hieraus folgt:

Die fünfte wichtige Erkenntnis:

  • Nach Transformation um eine (beliebige) Achse müssen die (neuen) Transformationswinkel der verbleibenden Achsen jeweils erneut berechnet werden, denn:
  • Die aus den Vektorkoordinaten (vorab) errechneten Winkel sind nicht die Transformationswinkel, um Roboter-Achsen auf die Koordinatenachse zu transferieren.

"Step by Step" sind dies je Achse 7 Transformationen bzw. 7 x (4³ Einzelmultiplikationen + 16 Additionen) zuzüglich der in serieller Kaskade folgenden Gelenke. Eine Drehung um die Basisachse erfordert also (bei einem Freiheitsgrad von 8) ca. 4.500 Einzelrechnungen! Die 7 Winkeltransformationen lassen sich auf 6 reduzieren, nicht alle Matrizen müssen homogene Koordinaten aufweisen, sodaß sich die Rechenschritte bei Erhalt der klassischen Rechenstruktur um ca. 40% reduzieren lassen.


Transponierte Matrix

Werden die Einzelelemente einer Matrix an ihrer Hauptdiagonalen (oben links nach unten rechts) gespiegelt - formal also Spalten und Zeilen getauscht - so entsteht eine Matrix, die das (vorherige) Transformationsergebnis in seine Ausgangswerte zurückrechnet. Werden die bereits errechneten Elemente an gespiegelter Position genutzt so reduziert sich der Rechenaufwand. Die "Step by Step" Transformationen nutzt dies meist für die Rückdrehung.

Durch geschicktes Vorab-Ausmultiplizieren der Matrizen läßt sich die Zahl der Rechenschritte nochmals reduzieren: Lotte Emslander http://analysis.math.uni-mannheim.de/lehre/fs09/anageo/uebung/unsichtbar/Rotationen_im_R3.pdf zeigt, wie's geht. Die Rotations-Matrix selbst wird jedoch etwas komplex; anstelle der recht übersichtlichen "Step by Step" Struktur (und einfacher Winkel-Beziehungen) errechnet sich nun jedes der 9 Matrix-Elemente im Schnitt aus jeweils 5 Multiplikationen zuzüglich 2 Additionen. Ergänzend werden einige "Schattenrechnungen" erforderlich.

Der für den RoBo-mac Gelenk-Baukasten entwickelte EXCEL® Algorithmus optimiert aus beiden Denkschulen, er beherrscht Teleskop- und Drehgelenke in beliebiger Kombination.


Inverse Kinematik

Diese "rückwärts" Kinematik beschäftigt sich mit der Frage: "Welchen Winkelwert müssen die in kinematischer Kette liegenden Gelenke einnehmen, um einen bestimmten Raum-Punkt (kartesisch XYZ) zu erreichen" – das Ziel, der Raumpunkt ist also gegeben!

Erinnern wir uns:

  • Mit 2 mal 3 Freiheitsgraden kann jeder beliebige Punkt im Arbeitsbereich des Roboters positioniert (XYZ) und das Werkzeug unter definiertem Winkel zum Werkstück orientiert (UVW) werden.
Um ein Werkzeug unter definiertem Winkel zu positionieren werden also 6 Freiheitsgrade erforderlich. Muß der Arm um ein Hindernis herumgreifen, so wird je Freiheitsgrad mehr als eine Achse erforderlich. Kinematisch bedeutet dies eine "Überbestimmung", denn der Raumpunkt kann wahlweise durch mehrere Achsen angesteuert werden; dies macht die Mathematik deutlich komplexer! Eine Vielzahl mathematischer Denkansätze zeigt Lösungen hierzu auf – der Königsweg wurde bisher wohl nicht gefunden; hier wird die Lösungsstrategie RoBo-mac's besprochen.


Im Fokus steht die Aufgabe, den anzufahrenden, kartesisch (XYZ) definierten Raumpunkt durch Winkelstellungen der Roboter-Achsen zu realisieren – ein Thema der Winkeltransformation. Grundlagen hierzu wurden in den 1950-iger Jahren erarbeitet und 1955 als Denavit-Hartenberg Convention propagiert.

Hilfreich ist es, Arm (XYZ) und Handgelenk (UVW) getrennt zu betrachten, da ansonsten 6 Freiheitsgrade in extreme Überbestimmung führen würden.

  • Beginnen wir mit dem eigentlichen Zielpunkt, dem Werkzeug-Eingriffspunkt, er bestimmt den Übergangspunkt "Arm/Handgelenk". Dieser Bahnpunkt ist also zugleich Zielpunkt des Armes und Startpunkt des Handgelenkes – und aus der Orientierung (UVW) zu bestimmen. Vergleichbar ist er mit der aus der CNC-Technik bekannten Äquidistanten, zur Fräs-Bahnberechnung mit Radius-Korrektur.
  • Liegen dieser Bahnpunkt und der eigentliche Zielpunkt im kartesischen System (XYZ) fest, so werden hieraus die Drehwinkel des Armes transformiert.


Einfacher Fall: Keine kinematische Überbestimmung.

  • Per Winkeltransformation werden die 3-D Koordinaten um die Y-Achse auf Z = 0 gedreht,
  • aus den nun in der Ebene liegenden XY-Koordinaten sind die Winkel der Roboter-Achsen trigonometrisch bestimmbar,
  • Sie erhalten 2 Lösungen – beide sind richtig, eine ist vermutlich sinnvoller,
  • das gewählte Zwischenergebnis wird um die Y-Achse auf den gegebenen Z-Wert zurückgedreht.

SCARA Roboter mit (meist) 3+1 = 4 Freiheitsgraden fallen in diese Kategorie.


Komplexer Fall: Kinematische Überbestimmung.

  • Die 3-D Koordinaten werden auch hier um die Y-Achse auf Z = 0 gedreht,
  • für die nun in der Ebene liegenden XY-Koordinaten sind jedoch theoretisch unendlich viele Winkel-Kombinationen der Roboter-Achsen möglich!
  • Ist eine Winkel-Kombinationen gefunden, so wird ebenfalls um die Y-Achse auf den gegebenen Z-Wert zurückgedreht.


Überbestimmung & Bewegungsstrategien

Um trotz Überbestimmung aus theoretisch unendlich vielen Winkel-Kombinationen möglichst geeignete Vektorlagen der Roboterarme zu berechnen verfolgt der RoBo-mac Gelenkbaukasten mehrere, frei wählbare Bewegungsstrategien:

- Semi-Automatic präzisiert manuelle Winkel-Vorwahl "in ähnlicher Silhouette"
- Konvex: Das mittlere Arm-Element liegt oberhalb des Zielpunktes
- Konkav arbeitet vice versa zu Konvex
- Zickzack: Die Arm-Elemente bilden eine Zickzack Silhouette
- Parallel, bewegt den Übergangspunkt "Arm/Handgelenk" parallel
- Teleskope bewegt Knickarme transversal wie Teleskoparme.
  • Zwischen den Strategien kann beliebig gewechselt werden.
Mehr zu den Bewegungsstrategien - und wann welche sinnvoll ist - in Teil 2 Inverse Kinematik 2 – Praxis .


Inverse Parallel-Kinematik

Die Algorithmen der beschriebenen Bewegungsstrategien erwarten, daß die Vektorlagen der Dreh- und Schwenkachsen "im überbestimmten Bereich" untereinander im rechten Winkel stehen. Die Schwenkachsen zwischen Schulterpunkt und Ellbogen bzw. dem Übergangspunkt "Arm/Handgelenk" bewegen sich somit in parallelen Ebenen. Die An- und Abtriebsachsen A/B bzw. G/H dürfen Drehachsen sein. Diese Parallel-Kinematik erreicht jeden beliebigen Raumpunkt (XYZ). Die absoluten Positionierfehler des RoBo-mac Algorithmus liegen unter 1/10.000 mm, meist in einer Größenordnung 10-5 bis 10-6 mm.


Inverse Schief-Kinematik

Im Gegensatz zur Parallel-Kinematik stehen die Vektoren "im überbestimmten Bereich" nicht senkrecht, sondern schiefwinklig zu einander. Die Bewegungsebenen der Achsen liegen somit ebenfalls nicht parallel, sondern stehen zu einander schief.

Bereits bei paralleler Kinematik ist die Bewegungsvielfalt aus kinematischer Überbestimmung – wenngleich nicht unendlich, so doch nahezu unermeßlich. Für die Schief-Kinematik steigt der Rechenaufwand nochmals – und führt in wahrnehmbare Rechenzeit.

Natürlich könnten die sich "in schiefen Ebenen" bewegenden Arme per Winkeltransformation in das mathematisch gut beherrschbare 2-D Modell paralleler Kinematik überführt werden; jedoch ist eine Rücktransformation wegen der sich aus der Transformation geänderten Winkel-Beziehungen nicht mehr direkt möglich (vgl. vierte und fünfte Erkenntnis). Vor diesem Hintergrund arbeitet der RoBo-mac Gelenkbaukasten ggf. mit 3-D Näherungsalgorithmen.

Näherungsalgorithmen haben stets einen Gültigkeitsbereich, der hier von Start- & Zielposition sowie der Bewegungsstrategie abhängt. Nicht jede Zielposition ist aus jeder Startposition erreichbar, ggf. muß die Bewegungsstrategie geändert bzw. die Startposition im Rahmen der Bahnoptimierung zuvor korrigiert werden.

Der Gültigkeitsbereich bildet sich aus Schnittmengen vorgenannter Parameter. Der Algorithmus überwacht, daß sich die Näherungsalgorithmen im Gültigkeitsbereich bewegen; er generiert ggf. eine Korrekturempfehlung & Fehlermeldung. Die absoluten Positionierfehler Soll/Ist des TCP erreichen nicht die Präzision paralleler Kinematik; sie liegen in einer Größenordnung von 10-1 bis 10-2 mm und besser.

  • Der RoBo-mac Gelenkbaukasten "prüft auf Vektorlage" ob der rechenintensive Schief-Algorithmus erforderlich wird oder der schnellere Parallel-Algorithmus geeignet ist.


Kollision

Inverse Kinematik und Überbestimmung bedeuten auch, daß der Roboterarm mit sich selbst oder seiner "Umwelt" kollidieren kann. Theoretisch kann jede beliebige Stelle jedes einzelnen Roboter-Arms kollidieren; die Anzahl der Kollisionspunkte ist zwar nicht unendlich aber nahezu unermeßlich.

Die präzise Kollisionsvorhersage ist ein hochkomplexes Thema, es gibt mehrere theoretische Ansätze. Grundlagen hierzu in der Diplom-Arbeit v. Dominik Henrich unter https://kluedo.ub.uni-kl.de/frontdoor/index/index/docId/1029

Für eine Vorhersage werden Roboter-Geometrie und Umwelt als mathematisches "Drahtmodell" erfaßt und "Kollisionsvektoren" gespannt. Einerseits nimmt für feine Drahtmodelle der Modellierungsaufwand Größenordnungen visueller Bilderzeugung an, andererseits die Anzahl möglicher – wenngleich ähnlicher - Kollisionsvektoren exponentiell zu. An Stelle eines feinen Drahtmodells wird daher meist nur die wesentliche Kontur mit leicht zu berechnenden Körpern (Kugel, Zylinder, Quader etc.) nachgebildet, um so den Rechenaufwand erträglich zu halten. Ein zusätzlicher "Filter-Algorithmus" selektiert vor der eigentlichen Vektoranalyse die jeweils potentiellen Kollisionspunkte.

Außerhalb des Roboter-Arbeitsbereiches besteht keine Kollisionsgefahr. Der Arbeitsbereich wird deshalb mit einer Umhausung von der Umwelt abgetrennt, die die potentiellen Kollisionspunkte auf den Zugriffsbereich des TCP minimiert. Üblicher Weise sind die Umwelt-Kollisionspunkte innerhalb des Arbeitsbereiches starr / unbewegt. Die Kollision eines Roboters mit seiner gekapselten Umwelt ist somit verhältnismäßig leicht zu vermeiden. Deutlich komplexer ist die Kollisionsprognose eines Gelenkarm-Roboters "mit sich selbst". Bei der Eigenkollision bewegen sich die Arme aufeinander zu; die Komplexität erhöht sich exponentiell mit Zunahme des Freiheitsgrades. Eigenkollision kann bei SCARA-Roboter konstruktiv vollständig ausgeschlossen werden, da sich die Arme in verschiedenen Ebenen bewegen.

RoBo-mac Kollisionsprognose

Der RoBo-mac Gelenkbaukasten fokussiert auf die Vermeidung von Eigen-Kollision, er kombiniert eine Filter-Analyse mit der Möglichkeit visueller Kontrolle aus beliebiger Perspektive. Der Algorithmus spannt virtuell um jede Armachse einen mit einer Halb-Kugel abgeschlossenen Zylinder und prüft die anzufahrende Zielkoordinate auf Durchdringung "verbotener Räume".

  • Auskragungen im Antriebsbereich werden nicht getrennt modelliert, sondern sollten durch Wahl eines geeigneten Zylinder-Radius von diesem abgedeckt werden.
  • Die Grenzen des Algorithmus liegen darin, daß nicht die eigentliche Bahnbewegung zwischen den Stützpunkten, sondern lediglich der Zielpunkt überwacht wird. Theoretisch kann eine zu große Schrittweite der Stützpunkte so dazu führen, daß ein Kollisionspunkt übersprungen und nicht detektieret wird.


Weblinks

All dies muß getestet werden, ich habe hierzu OKTAVIAX, den Acht-Achser entwickelt; unter

 http://www.youtube.com/watch?v=TT344LsOnuY 

macht er ein Tänzchen (Bitte Lautsprecher einschalten).


Dieser Artikel ist ein (produkt-neutraler) Auszug aus dem Manual CNC & RoBo-mac, einem Multi-Achs-Controller für (z.Z.) bis zu 8 Achsen. Mehr dazu unter


NLB


LiFePO4 Speicher Test