CNC-MAC & ROBO-MAC

MULTI-ACHS-CONTROLLER

 

Mathematischer 3D Gelenk-Baukasten

 

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.

 

Das Original-Video (Bild oben rechts) besteht aus mehr als 3.000 Frames
- das sprengt alles; das Movie daher in YouTube:
https://www.youtube.com/watch?v=MJbAxZ3Iuio

 

 

Teil 1     Theorie (Tutorial)
Themenübersicht

  • Dynamik und Kinematik
     
  • Begriffe & Philosophie
    • Drehachse & Schwenkachse
    • Fußpunkt, Ellenbogen & Co 
    • Philosophie eines mathematischen Ansatzes
    • Positionierung & Orientierung
    • Arbeitsbereich  
    • Visuelle Kontrolle (Adler & Maus Perspektive) 
       
  • Direkte (vorwärts) Kinematik
    • Mathematische Grundlagen  
    • Transformation & Matritzenrechnung  
    • Matritzenmultiplikation   
    • Vektortransformation & Homogene Koordinaten 
    • 3D-Transformation & 2D-Perspektive  
    • Verdrehte Koordinatenwelt
    • Links- & rechtshändige Koordinaten
    • End-Effektor & Tool Center Point (TCP)
    • SCARA & Gelenkarm Roboter   
    • Freie Rotation & Transponierte Matrix 
    • R3 Spezial-Matrix   
    • Denavit-Hartenberg    
       
  • Inverse (rückwärts) Kinematik
    • Freiheitsgrad & kinematische Überbestimmung   
    • Bewegungsstrategie & Silhouette 
    • Singularität  
    • Inverse Parallel- und Schiefkinematik 
       
  • Linearität und Oberwelle
     
  • Bézier Kurven & Bahngenerator    
    • 3D Bézier
    • Bézier "Wunschbahn"
    • Bézier Kreise, Ellipsen & Spiralen

       
  • Das Labyrinth von Chartres
     
  • Kollision
    • RoBo-mac Kollisionsprognose

 

Teil 2     Praxis
Themenübersicht

  • Systemüberblick
    • Direkte Kinematik 
    • Inverse Kinematik   
       
  • An Stelle eines Vorworts
        
    - Kartesische Koordinaten und Roboter Kinematik
     
  • Allgemeine Information  
         - Erst-Installation & Lizenz Varianten  
         - Sicherheitshinweis  
         - Bedienerhinweise zur ß-Demo 
         - Performence & Kompatibilität  
         - Controler- & Datenmodul 
         - Funktionsüberwachung und Fehlermeldung  
         - Hardware konforme Parametrierung  

         Supervisor-knowhow:
         - Werks-Reset 
         - Nur für Experten
         - Information zum aktuellen Release-Stand 
    finden Sie im Original-Manual  User + Supervisor InformationSie erhalten es im Down-Load
     
  • Die ersten Schritte
    • Für Ungeduldige 
    • Für Lernwillige 
       
  • Bildschirm- und Maskenaufbau
  • Bahnsteuerung
    • CAD Import
    • Interaktiver Bahngenerator
    • Bewegungsstrategien 
    • Bézier,  Kreis & Spiral Generator 
    • Positionierung & Orientierung 
    • Kombinierte Portal & Knickarm Robotik 
    • TCP Spur 
    • Positionierfehler & Watchdog 
       
  • Bewegungsstrategien
    • Kombinierte Portal & Knickarm Robotik 
    • Positionierfehler & Watchdog
       
  • Kinematische Bewegungsebenen
    • Parallele Ebenen
    • Schiefe Ebenen

 

Download
Mathematischer 3D Gelenkbaukasten Test- und Demo Version

 


 

Teil 1     Theorie
Tutorial

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. – Clicken muß man sie nur, um in die Tiefe zu gehen!

Die Theorie wird im Praxis orientierten Teil 2 ergänzt.  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:
    • Mathematiker stellen die Y-Achse grafisch gerne senkrecht, die Z-Achse "perspektivisch schräg nach hinten bzw. vorne" laufend dar. Dies ist die logische Erweiterung eines 2D Systems zu einem in der Ebene dargestellten 3D-System.,
    • CAD & Grafik-Programmen liegt meist diese Definition des Weltkoordinatensystems zu Grunde, vgl. http://www.3dsource.de/deutsch/3Dmathe.htm. Im Ingenieurwesen wird andererseits die senkrechte Achse oftmals mit "Z" bezeichnet – was in eine gewisse Verwirrung führt.
    • Im Ergebnis ist es gleich, ob nun die Y- oder die Z-Achse als Senkrechte definiert wird. Beide Systeme sind durch Drehung um die X-Achse ineinander gegenseitig abbildbar.

Wichtig ist die Systemdurchgängigkeit und wichtig ist vor allem, ob es sich um ein 'rechts-' oder ein 'links'-System handelt, vgl.: www.dma.ufg.ac.at/app/link/Grundlagen%3A3D-Grafik/module/9320?step=all#chapter

  • Im rechtshändigen Weltkoordinatensystem zeigt (für jeweils positive Koordinaten) die X-Achse nach rechts, die Y-Achse nach oben und die Z-Achse aus der Zeichenebene heraus - nach vorne.
    Im linkshändigen System hingegen zeigt sie nach hinten!
    - Dies entspricht einer Spiegelung bzw. Drehrichtungsumkehr.

Der Mathematik des Gelenk-Baukastens liegt die Definition des Weltkoordinatensystems zu Grunde; RoBo-mac bietet die Umschaltmöglichkeit zwischen rechts- und linkshändischem Koordinatensystem, die Achs-Bezeichnug der Ein- und Ausgabewerte Y- / Z- ist ergänzend umschaltbar. Unter '3D-Transformation & 2D-Perspektive' betrachten wir das Thema nochmals im Focus 'Verdrehte Koordinatenwelt' !

 

Positionierung & Orientierung
-
Die Positionierung bestimmt die kartesische XYZ-Position des "End-Effektors" im Raum,
- die Orientierung unter welchen Winkeln er steht.
Beide Werte zusammen definieren seine Vektorlage im 3D Raum.

 

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. In Teil 2 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 'q':
     x' = x · cos(q) y · sin(q) bzw.  x = x' · cos(q) + y' · sin(q)
     y' = x · sin(q) + y · cos(q) bzw. y = -x' · sin(q) + y' · cos(q)
    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 Es gilt

  • für die X-Achse
     x' = x
     y'
    = y · cos(q) z · sin(q)
     z' = y · sin(q) +z · cos(q)
     
  • für die Y-Achse
     x'  = z · sin(q) +x · cos(q)
     y' = y
     z
    '  = z · cos(q) x · sin(q)
     
  • 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.

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)!
  • Wird diese "Eins" zu "-1" negiert, so wird die Achse gespiegelt!
     
  • 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. Math. Zusammenfassung vgl.
www.mttcs.org/Skripte/Pra/Material/vorlesung3.pdf

Perspektive
steht im Sprachgebrauch für die Darstellung 3-Dimensionaler "Tiefe" in 2-Dimensionaler Ebene - wenngleich 'Perspektive' formal lediglich eine mehrerer Darstellungsarten 'Planarer-Projektion'  ist. Sprachlich unterschieden wird gelegentlich die Parallel- und Fluchtpunkt Perspektive.

  • Die Parallelprojektion arbeitet mit einer winkelabhängigen Verkürzung der in die Tiefe zeigenden Linien, die auf den hier erläuterten Winkeltransformationen basieren. Die Perspektive kennt zusätzliche 'Fluchtpunkte' in denen sich in der Realität parallele Linien treffen. Jedes System paralleler Linien hat einen eigenen Fluchtpunkt, dies können deutlich mehr als die 3 XYZ Koordinaten, (vgl. z.B. 'Place de l' Etoile) sein!
     
  • Die Grenzen perspektivischer Darstellung werden deutlich, wenn wir uns Parallelen parallel zur Zeichenebene vorstellen; sie hätten 2 Fluchtpunkte – 'links und rechts' bzw. 'oben und unten'. Der Strahl aus den Fluchtpunkten führt jedoch zu einer Kreuzung in der Zeichenebene, die als "zusätzliche Ecke" erscheinen würde!
    Dies ist unrealistisch, in der 'Schulperspektive darstellender Geometrie' werden diese Parallelen daher stets 'als parallel' gezeichnet.

    Aus der Fotographie kennen wir Fischaugenobjektive; die analoge Abbildung hat hier die Lösung: Der Kreuzungspunkt der "zusätzlichen E
    cke" wird verrundet dargestellt. Dies entspricht – auch wenn wir nicht wie eine Fisch zu gucken gewohnt sind – der Realität! Die Flucht-Linie ist keine Linie, sondern eine Hyperbel, die sich in Richtung Fluchtpunkt den Linien asymptotisch anschmiegt, Rundung im Betrachtungszentrum.

Leistungsstarke Programme der virtuellen Bilderstellung beherrschen diese Mathematik und arbeiten außerdem mit Licht und Schatten Effekten, um die Tiefenwirkung zu verstärken. Ganz ohne Mathematik: Stephan Thiele, www.thiele-architekt.de/pdf/Raumsprache-A5.pdf

Transformation
Die hier besprochene 3D-Transformation ermöglicht eine variable Parallelprojektion aus beliebiger XYZ Blickrichtung. Sie 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 Transformationsergebnissen 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, hatten Sie eine der beiden Achsen (unbewußt) gegen die Z-Achse getauscht!
       

Verdrehte Koordinatenwelt
Eigentlich ist alles ganz logisch: Liegt vor uns ein Stück Papier auf dem Schreibtisch oder steht der Monitor mit senkrechtem Bildschirm vor uns, so zeigt per Definition im 2D-System die Y-Achse nach oben. Wird eine dritte Dimension hinzugefügt, so liegt sie vor bzw. hinter der Zeichenebene; die Z-Achse zeigt also aus der Zeichenebene hinaus in den Raum.

Irgendwann kamen die Menschen auf die Idee, Bildschirm bzw. Papier zu drehen – aber die körperliche Position des Betrachters bei zu behalten: Das Schicksal nahm seinen Lauf:

  • Bei beiden Systemen, dem 2D- und dem 3D-System zeigt die Positive X-Achse nach rechts (auch "Breite" genannt).
  • Erweitert man das 2D-System (Y-Achse nach oben, auch "Höhe" genannt) um die dritte Dimension, die Z-Achse, so zeigt diese zunächst "unsichtbar" auf den Betrachter. Dreht man dieses System um die X-Achse, so wandert die Y-Achse nach hinten, die Z-Achse nach oben. Die Z-Achse übernimmt den Namen der Y-Achse (Höhe), die Y-Achse heißt jetzt Länge – und zeigt mit positivem Wert nach hinten!
  • Einige 3D-Darstellungen bevorzugen eine weitere Drehung um die nun senkrechte Z-Achse: Im Ergebnis zeigt dann die Y-Achse nach rechts und die X-Achse nach vorn.
  • Unabhängig hiervon bleibt zumindest die Koordinatenbezeichnung "X/Y/Z" unverändert!

Ich habe mich entschlossen, dieses Definitions-Chaos möglichst zu umgehen und verwende die Definition des klassischen Weltkoordinatensystems: Y-Achse nach oben!
 

Links- & rechtshändige Koordinaten
Eine schier unerschöpfliche Vielzahl von Koordinatensystemen kennt die Welt, vgl.:
https://de.wikipedia.org/wiki/Koordinatensystem. Dominierende Bedeutung in der Robotic hat das kartesische System – und hiervon gibt es 2, das rechts- und das linkshändige!
Grundsätzlich gilt (unabhängig davon, wie die Achsen benannt sind):

  • Rechts- bzw. linkshändige  Koordinatensysteme sind spiegelbildlich und nicht durch Drehung ineinander zu überführen, jedoch:
  • Transformationsmatrizen ermöglichen eine Skalierung (Multiplikation).
  • Bei unterschiedlicher Skalierung je Achse führt dies in eine Scherung (Verzerrung).
  • Eine negative Skalierung führt ergänzend zu einer Spiegelung der betreffenden Achse.

Unter 'Vektortransformation' hatten wir die Rotationsmatritzen XYZ besprochen. Zur Erinnerung: Wird die betreffende "Eins" zu "-1" negiert, so wird die Achse gespiegelt.
- Simpler Vorzeichenwechsel ermöglicht also die System-Umschaltung "links / rechts"!
 

Spiegelung ist nicht durch Drehung erreichbar, trotzdem erscheit dies mitunter so!?

  • Bei einem 3D-Drahtmodel ist es mitunter schwierig zu entscheiden ob man es von 'oben-links' oder 'unten-rechts' sieht; - d.h. betrachten will! Das Seh-Ergebnis ist eine Frage des mentalen Bewußtseins.
  • Das Gehirn gaukelt einem mitunter sogar vor, der mathematische Drehsinn (positiv/negativ) habe sich geändert, da das, was man vorne wähnt, nun auf einmal hinten erscheint. Dieses Wahrnehmungsphänomen wird erklärbar, weil jede Projektion eines realen Drahtmodells auf (mindestens) 2 unabhängige Raumorientierungen rückführbar ist. Anders ausgedrückt: Eine von 'oben gesehen vorne' liegende Ecke ist nach 3D-Transformation in die 2D Projektions-Ebene zu einer von 'unten gesehen hinten' liegenden kongruent!
  • Die Visualisierung des Baukastens kennzeichnet daher als Orientierungshilfe die Ecke des 1. Oktanten mit einem Kreis, der bei Würfel Drehung betrachtungskonform mit wandert. Im 'Kochbuch des User-Manuals' finden Sie unter Perspektive & 2D-Projektion eine Experimental-Studie hierzu.

     

End-Effektor & Tool Center Point (TCP)
Der End-Effektor bezeichnet die Hard-Ware, der Tool Center Point dessen "Arbeitspunkt";
beide werden gemeinsam "Bahn konform" vom Robotersystem im R3 Vektorraum bewegt.

  • Der TCP kann am Ende des End-Effektors liegen (Bohrer); weiter außerhalb (Laser) oder auch völlig abweichend zum "Werkzeug-Eingriffspunkt": Bei einem Greifer, der "Roboterhand" liegt dessen Kraftlinien-Schnittpunkt im Werkstück!
  • Eine Hardware spezifische Definition "was wie bewegt werden soll" ist Voraussetzung "Bahn konformer" Kinematik!
     

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 "TCP / End-Effektor" 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.

  • Vereinfachte Betrachtungsweise für XYZ-Rotationsmatrizen:
    Sin-Werte und Homogene Koordinaten invertieren das Vorzeichen, alle anderen Werte bleiben gleich.

Die "Step by Step" Transformationen nutzt dies meist für die Rückdrehung.
 

R3 Spezial-Matrix
Mathematiker bezeichnen den 3D-Raum auch als R3 Vektorraum. Durch geschicktes Vorab-Ausmultiplizieren des oben beschriebenen Matritzen-Algorithmus läßt sich die Zahl der Rechenschritte nochmals reduzieren: Lotte Emslander zeigt, wie's geht:
http://analysis.math.uni-mannheim.de/lehre/fs09/anageo/uebung/unsichtbar/Rotationen_im_R3.pdf

Die R3 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.
 

Denavit-Hartenberg
In den 1950-iger Jahren wurden Algorithmen erarbeitet, um den durch Länge der Roboter-Achsen bei freier Winkelstellunge definierten Raumpunkt in das kartesische Koordinatensystem (XYZ) zu transformieren. 1955 wurden sie als Denavit-Hartenberg Convention / Transformation / Parameter propagiert
https://de.wikipedia.org/wiki/Denavit-Hartenberg-Transformation , - wenngleich der Schweizer Mathematiker Leonhard Euler die Grundlagen der Winkeltransformation, vgl. https://de.wikipedia.org/wiki/Eulersche_Winkel bereits vor 300 Jahren entwickelte. Auf letztere habe ich dankbar zurückgegriffen.

 

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!
 

Eine Vielzahl mathematischer Denkansätze zeigt Lösungen hierzu auf. Klassisch unterschieden werden

  • algebraische Methoden (Transformation und Gleichung),
  • geometrische / trigonometrische Methoden (sin / cos) und
  • numerische Methoden (Iteration).

und Kombinationen hieraus. – Der Königsweg wurde bisher wohl nicht gefunden; vgl. http://geometrie.uibk.ac.at/cms/datastore/husty/husty-linz.pdf , Geschichtliche Entwicklung der inversen Kinematik.

  • Die Lösungsstrategie RoBo-mac's transformiert die Roboter-Achsen aus dem 3D Raum in die Ebene, sucht numerisch eine trigonometrische Lösung und prüft das Ergebnis in direkter Kinematik. Die absoluten Positionierfehler des Algorithmus liegen unter 1/10.000 mm, meist in einer Größenordnung 10-5 bis 10-6 mm.

 

Freiheitsgrad & kinematische Überbestimmung
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!
 

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 3D-Koordinaten um die Y-Achse auf Z = 0 gedreht,
  • aus den nun in der Ebene liegenden XY-Koordinaten sind die Winkel zweier 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.
  • Einfache SCARA Roboter mit 2+1 = 3 Freiheitsgraden fallen in diese Kategorie.
     
  • Komplexer Fall: Kinematische Überbestimmung.

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

     

    Bewegungsstrategie und Silhouette
    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 aus Direkter Kinematik
                                 "in ähnlicher Silhouette" (TCP Abweichung  Soll/Ist  < 10-5 mm).
    • 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 'End-Effektor' parallel zu sich selbst
    • Teleskop,            bewegt den 'End-Effektor' wie einen "Teleskop-Auszug".

    Diese Bewegungsstrategien liegen in einer bzw. parallelen Bewegungsebenen. Um Zugriff im R3 zu realisieren, wird das Ebenenpaket um die (meist senkrechte) Hauptachse A/B gedreht.
     

    • Semi-Automatic
      orientiert sich an der Ist-Position der Gelenke und erreicht die neue Zielposition "in ähnlicher Silhouette". Die Stützpunkt-Schrittweite beeinflußt die "Ähnlichkeit"; liegen die Stützpunkte weit auseinander, so geht die Ähnlichkeit verloren. Die Bahnen der Gelenkpunkte sind bei Hin- und Herbewegung selten kongruent.
       
    • Konvex, Konkav & Zickzack
      generieren die Bahn mit reproduzierbarer Winkelstellung der Gelenke - unabhängig von deren Ausgangs-Position. Diese Bewegungsstrategien ermitteln für alle Gelenkpunkte stets die gleiche Bahn.
       
    • Parallel
      Der 'End-Effektor' wird ebenen parallel zu sich selbst,  in eigener Vektor-Orientierung bewegt, (Mathematiker nennen dies "kollinear"), und ggf. um die Hauptachse gedreht. 
       
    • Teleskop
      Die Begriffsverwendung bezieht sich nicht auf "FernSicht", sondern die klassische Bauart dieses Instrumentes, das in eigener Achse in der Länge veränderlich ist/war (Teleskop-Auszug etc.).
    • Die Bewegungsstrategie 'teleskopisch' berechnet aus der Ist-Vektorlage des 'End-Effektors' und dem gewünschten Vektor-Hub je Bewegungsschritt Winkel-Arm Kombinationen, die den 'End-Effektor'  teleskopartig  in eigener Vektor-Orientierung fluchtend (auf einer Geraden) bewegen; Mathematiker nennen auch dies "kollinear".
       

    Der mathematische Begriff "kollinear" unterscheidet nicht, ob Vektoren (wie zwei Eisenbahnschienen) parallel oder auf einer gemeinsamen Geraden "fluchtend" liegen; ich verwende ggf. den Doppel-Begriff.

     

    Singularität
    In der Mathematik beschreibt Singularität das Phänomen, daß außerhalb der Singularität geltende Algorithmen im Bereich der Singularität ihre Gültigkeit verlieren. Singularität steht hier für die "Definitionslücke einer Funktion"; einen "unbestimmten Zustand", der nicht berechnet werden kann. Relativ bekannt in diesem Focus ist die "Sprungfunktion".
     

    Singularität in der Robotik ist Fluch und Segen zugleich:
    Singularität tritt auf, wenn das Gesamtsystem einen (oder mehrere) Freiheitsgrade verliert bzw. die Bewegung einer Achse durch eine andere vollständig kompensiert werden kann.
     

    Fluch der Singularität

    • Innere Singularität (Singularität der Drehachsen)
      tritt im inneren des Arbeitsraumes auf. Liegen 2 – oder mehrere Achsen "kollinear fluchtend" auf einer gemeinsamen Vektor-Linie so gibt es unendlich viele, sich gegenseitig kompensierende Drehwinkel, die auf die die TCP- / Werkzeug-Orientierung ohne Einfluß sind, umgekehrt ausgedrückt: Es ist nicht eindeutig, welche der fluchtenden Achsen gedreht werden muß, um den End-Effektor zu drehen.
    • Äußere Singularität (Singularität der Schwenkachsen)
      liegt im Rand-Bereich des Arbeitsraumes. Ist der Gesamtarm voll gestreckt, so kann er nicht mehr über seinen Arbeitsbereich hinausgreifen; das ist geometrisch logisch, kann jedoch in mathematische Instabilitäten führen (Definitionslücke einer Funktion). Gleichsinniges gilt für die "Total-Faltung": 2 Achsen liegen mathematisch deckungsgleich aufeinander - für die Mechanik bedeutet dies Kollision. 

      Führt die Bewegungsbahn des TCP in den Grenzbereich des Arbeitsraumes, so nehmen die Arme eine Silhouette ein, die in der Technischen Mechanik als "Kniehebel-Presse" bezeichnet wird. Kniehebel-Pressen erzeugen bei geringem Hub enorme Kräfte, die durch einen langen Hebelweg erzeugt werden:

    Wird der äußere Singularitätspunkt unbeabsichtigt / unkontrolliert durchfahren, so tritt ein Bündel von Problemen auf:

    • Bei "Werkzeug-Eingriff" entstehen Widerstandskräfte, die das System zerstören können.
       
    • Um eine Roboter Bahn mit kontinuierlicher Soll-Geschwindigkeit zu durchfahren werden unterschiedlich hohe Winkelgeschwindigkeiten der Achs-Gelenke erforderlich. Nahe der Äußeren Singularität werden die Winkelgeschwindigkeiten nahezu unendlich! Um ein parasitäres Schwingen des Armes aus diesen dynamischen Kräften zu vermeiden, muß die Soll-Geschwindigkeit entsprechend herabgesetzt werden. Welche Winkelgeschwindigkeiten zulässig sind, hängt von der mechanischen Stabilität ab.
       
    • Problematischer als die eigentliche Singularität ist die mit äußerer Singularität einhergehende "Streck- bzw. Überschlagslage": Mathematisch korrekte Algorithmen Inverser Kinematik können dazu führen, daß die Vektor-Orientierungen der Knickarm-Achsen untereinander "umschlagen": Bildlich gesprochen würde das Bein eines Menschen beim Laufen "nach vorne" einknicken.

      Wird ein Stütz-Punkt der Sollbahn in beispielsweise konvexer Silhouette positioniert der Folgepunkt hingegen in konkaver Silhouette so sind zwar beide Punkte präzise positioniert, die gefahrene Ist-Bahn weicht jedoch von der Soll-Bahn ab. Die "Streck- bzw. Überschlagslage" zwingt den TCP auf eine Ist-Bahn außerhalb der theoretischen Soll-Bahn. Die Ist-Bahn weist einen "Peak" aus. Das Gesamtsystem "erzittert" aus undefinierten Winkelgeschwindigkeiten der Schwenkachsen!

    Die Probleme äußerer Singularität minimieren sich, wenn die den Singularitätspunkt einschließenden Achswinkel benachbarter Sollbahnpunkte gegen 0 gehen. Maßgebend für den Bahnfehler aus "Streck- bzw. Überschlagslage" ist der kleinere beider Winkel.

    • Werte um +/- 3° sind meist unproblematisch (cos 3° = 0,99863).
    • Liegen die Sollbahnpunkte rein visuell innerhalb o.g. Grenzen, werden jedoch als mech. Endlagenwerte erreicht (z.B. -179° / + 178°), so führt die Ist-Bahn über einen parasitären (nahezu) Vollkreis von 357° mit einer um 180° versetzten, negativer Stecklage!
       

    Segen der Singularität

    Wenngleich Singularität mitunter als Horror-Szenario der Robotik diffamiert ist, kann sie – bewußt eingesetzt – durchaus hilfreich sein. Ohne Einfluß auf die TCP- Position oder End-Effektor Orientierung ist die "Streck- bzw. Überschlagslage" äußerer Singularität ebenso nutzbar wie die innere Singularität fluchtender Dreh-Drehachsen:

    • zu einer bewußten Um-Orientierung der Achs-Vektoren, um ein Hindernis zu umfahren
    • um Drehachsen aus dem Grenzbereich ihres maximalen Drehwinkels "zurückzudrehen"

    Die RoBo-mac Algorithmen beherrschen das "Problem" recht souverän, mehr hierzu im User-Manual sowie dem Video: https://www.youtube.com/watch?v=MJbAxZ3Iuio

     

     

    Inverse Parallel- und Schiefkinematik

    • 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 2D-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 3D-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 (Interaktiver Prozeß) zuvor korrigiert werden. Der Gültigkeitsbereich bildet sich aus Schnittmengen vorgenannter Parameter. Ein "Watchdog"-Algorithmus überwacht, daß sich die Näherungsalgorithmen im Gültigkeitsbereich bewegen; - ggf. generiert er eine Fehlermeldung & Korrekturempfehlung.

     

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

    Linearität und Oberwelle
    Die beschriebenen Bewegungsstrategien verbinden die Bahnstützpunkte. Wenngleich der Positionierfehler des RoBo-mac Algorithmus unter 1/10.000 mm liegt, so ist der Bahnverlauf zwischen den Stützpunkten mathematisch unbestimmt:

    • Bestimmt wird die Bewegungs-Kinematik zwischen den Bahnstützpunkten durch die Knickarm-Mechanik. Die Rest-Welligkeit einer linearen Bahn hängt dabei (auch) von deren relativen Lage im Arbeitsbereich der Knickarme ab.
    • Linearität versteht sich in diesem Zusammenhang nicht nur als Linie/Gerade, sondern als lineare Umsetzung Soll/Ist.

    So, wie bei der CNC-Fräse ein Kreis - infinitesimal betrachtet - aus einer Vielzahl von geraden Segmenten besteht, so basiert beim Knickarmroboter die Bahn auf Kreiselementen. Soll eine lineare Bewegung des TCP / Endeffektors erreicht werden, so sind hieran eine Vielzahl von überlagerten Kreisbewegungen beteiligt.

     

    Ein Gedankenexperiment:
    Wenngleich die folgende Betrachtung für jede Soll-Kurve gilt, vereinfachen wir sie im Beispiel auf eine Gerade.

    • Mit einer Geraden sollen 2 gegenüberliegende Punkte auf der Peripherie des Roboter-Arbeitsbereiches verbunden werden.
    • Hieran beteiligt ist in jedem Fall die Hauptdrehachse A/B; sie beschreibt einen Kreisbogen. Um diesen zu glätten wird der Knickwinkel zwischen den Armen während der Dreh-Bewegung 'A/B' zunächst reduziert und danach wieder erhöht.
    • Erzeugt wird die Winkelarmbewegung über Motore. Konstant kann deren Winkelgeschwindigkeit nicht sein, denn zumindest der Knickarm Motor muß eine Hin- und Herbewegung durchführen.
    • Kreisbewegungen lassen sich auf sin/cos Komponenten zurückführen. Soll die CNC-Portal-Fräse einen Kreis herstellen, so arbeitet sie nicht "wie ein Zirkel", sondern auf Basis linearer (xy-paralleler) Bewegungen mit sin/cos Geschwindigkeitsprofil. Gleichsinniges – nur umgekehrt – gilt für die Knickarme.
    • Nehmen wir an, unsere Gerade läge parallel zur X-Achse, wir betrachten (Weltkoordinatensystem) aus Z-Richtung:
      Bei konstanter Drehgeschwindigkeit des Antriebs 'A/B' bewegt sich die Projektion der Drehung zunächst langsam, in der Mitte schneller, zum Ende wieder langsam – also sinus-konform. Um den Kreisbogen in eine Parallele zur X-Achse zu zwingen wird in erster Näherung eine überlagerte Sin-förmige Bewegung des Knickwinkels zwischen den Armen erforderlich. Diese Winkelbewegung kompensiert aber nicht nur wie gewünscht die Z-Komponente der Kreisbahn (Achse 'A/B'), sondern bringt eine ungewünschte Y-Komponente ein, die ebenfalls kompensiert werden muß - es wird also etwas komplexer.

      Nach Murphys Gesetz der größten Gemeinheit ist die die Knickarm-Bewegung auch noch unsymmetrisch, da die Gerade nicht durch den Roboter-Nullpunkt führen kann!

    Festzuhalten ist:
    Um mit Knickarm-Kinematik eine Gerade zu erzeugen, wird nicht nur die Überlagerung mehrerer Winkelbewegungen erforderlich.

    • Die Winkelgeschwindigkeit aller Knickarme unter-/ gegeneinander muß sich hierbei kontinuierlich  nicht linear ändern.

    Hingegen:
    Eine Bahnsteuerung verbindet 2 Stützpunkte mit einer beliebig komplexen Anzahl von Bewegungskomponenten (der RoBo-mac Multi-Achs-Controller beherrscht 8 Achsen). Die Achsen arbeiten hierzu mit individueller – aber zwischen den Stützpunkten konstanter Winkel-Geschwindigkeit. Bei Achsparallelen Systemen (CNC-Portalfräse) führt dies in lineare Bewegungen, bei Knickarm-Systemen in bogenförmige. Die sich ergebenden Oberwellen sind Mechanik-spezifisch.

    • Es wird also eine hohe Auflösung der Bahn mit hoher Stützpunktzahl erforderlich, um die Winkelgeschwindigkeiten "quasi kontinuierlich" gegeneinander verändern zu können
      - und so die Sollbahn "Oberwellen arm" zu realisieren.
    • Dies gilt nicht nur für eine Gerade, sondern für alle Bewegungsprofile, die nicht auf die simple Kreisbahn einer Achse zurückzuführen sind.

    Fazit:
    Nur eine hohe Auflösung der Soll-Bahn ermöglicht eine "Oberwellen arme" Ist-Bahn.
    - Der RoBo-Mac Bahngenerator erzeugt Bahnen mit beliebig geringer Schrittweite.

     

    Bézier Kurven & Bahngenerator
    Der Bahngenerator des Baukastens erzeugt ein Soll-Bahnprofil aus frei wählbaren Stützpunkten. Liegen die Stützpunkte (zu-) weit auseinander, beispielsweise um Pick & Place Punkte miteinander zu verbinden, so kann dies im Ergebnis in eine "wenig kontinuierliche Bewegung" des TCP führen. Die Bewegungsbahn weist Knickstellen auf, mathematisch wird dies als nicht stetige Änderung der Bahn-Krümmung beschrieben.

    Bézier Kurven können Ihre Krümmung stetig ändern. Mit nur 4 "Steuerpunkten" lassen sich die erstaunlichsten Kurven formen:

    • Zwei dieser Steuerpunkte liegen auf der Bahn, - nein, die Bahn entspringt und endet hier,
    • die anderen Beiden liegen außerhalb der Bahn. Sie bestimmen deren "Freiform" mit ihrer stetig geänderten Krümmung. Diese beiden Steuerpunkte werden auch als "Anfasser" (engl. Handle) bezeichnet.
    • Verbindet man die Anfasser mit "ihrem" Ursprungspunkt der Kurve so erhält man eine Art "Joy-Stick" – mathematisch eine Strecke, die im Einlaufpunkt zugleich Tangente der Bèzier Kurve ist. Die Kurve folgt diesen Anfassern. Sie läuft einerseits tangential ein, andererseits bestimmt die Länge der Anfasser Kurvenlänge und Kurvenkrümmung.
    • Beide Anfasser haben Wirkung auf die Gesamtkurve, jedoch ist die Wirkung auf den jeweils tangential einlaufenden Kurverbereich größer.

    Bézier Kurven haben also die wunderbare Eigenschaft nicht nur 2 Punkte zu verbinden:

    • Liegen die Anfasser in der Vektor-Orientierung einer anderen, anschließenden Kurve oder Geraden – beispielsweise den Pick & Place Vektoren so gehen beide Kurven nahtlos ineinander über. Anders ausgedrückt:
    • Zwei gegebene Bahn-Segmente, können durch Bézier-Splines "glatt" verbunden werden.

    Entwickelt wurde die Mathematik, in der französischen Automobilindustrie Ende der 1950-iger, um "intuitiv schöne Kurven" zu generieren. Paradebeispiel ist der Citroen DS, den Casteljau mit einer anderen, jedoch ergebnisgleichen Mathematik entwickelte. Hintergrund Know-how zu Bézier und Casteljau unter http://www.cnc-mac.de/html/bezier___spline_.html. Hier finden Sie auch die Spline-Theorie zu anderen Kurven sowie eine Studie mit dem Excel-Quellcode zu Bézier und Hermite; - letztere ist für unsere Aufgabe völlig ungeeignet!

    • Bézier Kurven laufen hoch präzise in ihren eigenen Tangentenpunkt ein; trotzdem ist die eigentliche Kurve, wenngleich exakt reproduzierbar manuell nur schwer beherrschbar. Allein die Kombination aus unterschiedlichen Anfasser-Längen führt in eine unendliche Kurvenvielfalt.
    • Wird die Anfasser-Länge gleich '0', so wird auch die tangentiale Einlauflänge der Kurve gleich '0', die Kurve knickt ab.
      - Werden beide Anfasser '0', so wird die Bézier Kurve zu einer Geraden.
    • Werden die Anfasser "länger", so wird dies auch die Kurve. Je nach Winkellage der Anfasser kann sie sich vom "Hufeisen" über ein spitzwinkliges Dreieck zur "Schleife" wandeln.
    • Sie wird jedoch nie über die von den 4 Steuerpunkten begrenzte Fläche hinauskragen,
      das macht sie so sympathisch!
    • Der RoBo-Mac Bezier Generator errechnet aus den zu verbindenden Bahnsegmenten zunächst trigonometrisch die Winkellage der Tangenten. Aus den Tangenten sowie dem Abstand der Bahn-Segmente bestimmt er "geeignete" Anfasser-Längen. Diese Zusammenhänge sind nicht linear, ich habe sie in o.g. Studie mit dem Excel-Quellcode offengelegt.
       
    • Mathematisch betrachtet lassen sich mit Bézier lediglich Ovale, jedoch keine "echten" Kreise und Ellipsen erzeugen. Die Abweichungsfehler sind abhängig vom Öffnungswinkel der Tangenten. Für Winkel unter 90° liegen sie im 1/10 Promille-Bereich, für einen Halbkreis hingegen im Prozent-Bereich. Aus 3 cascadierten Bézier-Splines (s.u.) läßt sich bereits ein nahezu exakter Vollkreis formen (Radius Standardabweichung < 0,6 Promille).
    • Mit dieser Einschränkung lassen sich tangential einlaufende Kreis- bzw. Ellipsen-ähnliche Segmente und natürlich Parabeln in beliebiger 3D-Lage gut realisieren.
       

    3D-Bèzier
    Die klassische Bézier Kurve liegt 2 dimensional in der Ebene. Es liegt nun nahe, die im 3D Raum liegenden Tangenten der zu verbindenden Bahnsegmente per Winkeltransformation in die Ebene zu drehen, die Kurve zu berechnen und das Ergebnis zurück zutransferieren. Mit der Tangente eines Bahnsegments ist dies gewiß möglich. Das andere wird realistisch betrachtet jedoch wohl kaum in dieser Ebene liegen. Wir brauchen also eine Lösung die allgemeingültig beliebige Vektororientierungen im 3D Raum verbindet:

    • Projiziert man die Tangenten der zu verbindenden Bahnsegmente in die Ebenen des XYZ Koordinatensystems, so erhält man 3 Vektorpaare und mithin 3 Bézier Kurven. Diese 3 Kurven lassen sich zu einer gemeinsamen überlagern, die einen "glatten" Übergang in die Vektoren der zu verbindenden Bahnsegmente bietet. Die Tangenten dieser Bahnsegmente können hierbei weitestgehend beliebig im 3D Raum orientiert sein.

    Der Bézier Bahngenerator errechnet die Tangentenorientierung aus der Raumpunkt Differenz der beiden jeweils letzten Stützpunkte am Ende/Anfang der zu verbindenden Segmente. Wenngleich der Algorithmus die Problematik "Division durch 0" beherrscht, sollten mindestens 2 von 3 Differenzwerten (X/Y/Z) den Betrag von 'einigen Zehntel' aufweisen. Werden 2 Differenzwerte "0" so kann dies in sehr unerwartete Kurven führen

     

    Bézier "Wunschbahn"
    Bézier Kurven laufen hoch präzise in ihren eigenen Tangentenpunkt ein; die Kurve selber ist, wenngleich exakt reproduzierbar jedoch nur bedingt auf eine "exakte Wunschbahn" zu bringen. Muß die Bahn präzise über einen oder mehrere Raumpunkte geführt werden, so wird sie in Segmentabschnitte geteilt. Mehrere Bézier Kurven verbinden diese Raumpunkte als "Cascadierter Spline". CAD/CAE Systeme arbeiten auf dieser Technologie-Basis. Vgl.
    http://www.cnc-mac.de/html/bezier___spline_.html.

    Je Raumpunkt bestimmt ein Stützpunkt-Paar die Orientierung der ein- und auslaufenden Kurve. Ab 3 Raumpunkten läßt sich mit Bézier ein nahezu exakter Vollkreis, ab 4 Raumpunkten eine Ellipse oder Spirale formen, der Näherungsfehler liegt wie beim Kreis im 1/10 Promille Bereich.

     

    Bézier-Kreise, Ellipsen und Spiralen
    Steht der Roboter im Zentrum des Kreises, so ist es keine besondere Aufgabe, ihn einen Kreis beschreiben zu lassen – jede Drehmaschine arbeitet nach diesem physikalischen Prinzip! Liegen Kreise jedoch asymmetrisch zu den kinematischen Achsen, so wird es interessant:
     

    Wir wissen inzwischen, daß die Anfasser einer Bézier-Kurve außerhalb der Kurve auf deren Tangente liegen. Im Sinne einer einfachen, intuitiven Bedienerführung liegt den Algorithmen des RoBo-mac Bézier Generators jedoch die Philosophie zugrunde, die Anfasser-Orientierung direkt aus der eigentlichen Kurve zu berechnen. Wir suchen also Punkte der Bewegungsbahn, aus denen die Orientierung der Anfasser ableitbar wird.

    Wie immer die Punkte auf der Kreisbahn auch liegen: Verbindet man sie mit einer Geraden, so wird sich keine Tangente, sondern eine Sekante bilden. Theoretisch könnten an Stelle der "90° Punkte" eines Kreises 2 eng benachbarte Punkte die Sekante bestimmen – die im Grenzfall in eine Tangente übergeht. Für eine Zeichnung mag dies durchaus ausreichend sein. Soll die Bahn jedoch dynamisch durchlaufen werden, so führt dies unweigerlich in eine nahezu schlagartige Unterbrechung der durch die Stützpunktweite bestimmten Winkelgeschwindigkeit – bei einfachen Bahnsteuerungen "ruckt" der Arm!

    Legt man den Stützpunkt hingegen ins Abstandsraster der übrigen Bahnpunkte, so ist dieses Dynamik-Problem eliminiert, allerdings klaffen jetzt Sekante und die zu suchende Tangente weit auseinander:
         Der Winkelfehler zwischen Sekante und gesuchter Tangente ist jedoch leicht korrigierbar:
         -  Er beträgt = ½ Öffnungswinkel des durch die Sekante bestimmten Kreis-Segments.
         - 
    Der Winkel des so korrigierten Bézier-Kreis Segmentes reduziert sich entsprechend.

    Im Ergebnis setzen sich die Stützpunkte des Kreises aus den "90° Punkten", den korrespondierenden Sekanten-Punkten und den zwischen beiden liegenden Bézier-Punkten zusammen.

    Das klingt etwas komplex.
    In der Tat, der Rechenaufwand übersteigt den der klassischen Mathematik. Zu den oben beschriebenen Bézier-Kreis Algorithmen kommt bei Ellipsen und Spiralen weiterer Korrekturbedarf der Tangentenwinkel hinzu:

    • Die "archimedische" Spirale ändert Radius und Steigung kontinuierlich mit ihrem Drehwinkel. Im Ergebnis führt dies zu einem mit zunehmender Windungszahl abnehmenden Steigungswinkel. Radius und Tangente einer Spirale stehen nie senkrecht aufeinander.
    • Es gibt eine Vielzahl ausgesprochen interessanter Verfahren, Ellipsen zu erzeugen - das Internet ist voll hiervon! Eine der mathematischen Betrachtungsweisen ist die, daß sich der Radius während einer Drehung 2 mal verkürzt bzw. verlängert. Im min/max Punkt des Radius steht die Ellipsen-Tangente senkrecht zum Radius – aber nur hier!

    Wenngleich mich der Gedanke faszinierte, all dies auf  Bézier Basis zu generieren, habe ich mich für die klassische Mathematik entschieden.

    Fazit
    Bézier ist großartig, falls Tangenten verfügbar sind; müssen Sie jedoch aus Mittelpunktslagen errechnet werden, so ist die klassische Berechnung eindeutig im Vorteil. Zu dieser Erkenntnis bin ich gelangt, als ich RoBo-mac den Weg durch das Labyrinth von Chartres gezeigt habe!

     

    Labyrinth von Chartres
    Zunächst meinen herzlichen Dank Herrn Erwin Reißmann für die Koordinaten der Wende- und Radienwechsel Punkte des Labyrinths. Aus diesen 70 Konstruktionspunkten hat der Bahngenerator in den beschriebenen Technologien zunächst die Laufbahn errechnet; in Inverser Kinematik ist hieraus die Winkelberechnung der Gelenkarme entstanden.

    Als ausgewiesener Experte antiker Labyrinthe zeigt Reißmann in seinem Blog u.a. das Labyrinth von Chartres und hier die Verlegung des Ariadnefadens durch RoBo-mac.
    https://bloggermymaze.wordpress.com/2018/12/30/ein-roboter-zeichnet-den-ariadnefaden-im-labyrinth-von-chartres/

     

    Bei 34 Mittelpunkten besteht die Bahnkurve des Labyrinths aus 64 unterschiedlichen Kreissegmenten und wenigen Geraden mit jeweils tangentialem Übergang. Die im Beispiel generierte Labyrinth Bahn wird mit ca. 950 Bahnpunkten beschrieben, zentrische Kreissegmente werden mit größerer Schrittweite als nicht zentrische durchlaufen (vgl. Oberwelle).

    Die Labyrinthfahrt erfordert eine Drehwinkelfreiheit der Hauptachse A/B von rund 360°. Der Roboterarm steht jedoch zunächst senkrecht in 'Home-Position' (Mittelstellung 0° +/- 180°). Vor Eintritt in das Labyrinth dreht er über eine 3D-Bezierkurve in die 'Startposition Labyrinth'. Beteiligt sind die Hautachse A/B mit rund 170° Drehwinkel sowie die Gelenkarme. In 'Home-Position' zeigt der den 'End Effector' führende Arm G/H senkrecht nach oben, bei Eintritt in das Labyrinth steht er absolut senkrecht zur Bewegungsebene und zeigt nach unten. - Er hat während des Durchlaufens der Bezier-Kurve seine Orientierung von zunächst 'senkrecht nach oben' in 'senkrecht nach unten ' gewechselt!
     

    Grundsätzlich wird es nur möglich, Positionierung und Orientierung im 3D Raum ohne Einschränkung frei zu wählen, wenn mindestens 2 x 3 Freiheitsgrade (Arm: X/Y/Z) und (Handgelenk: U/V/W) mechanisch vorhanden und ohne gegenseitige Beeinflussung ansteuerbar sind.

    • Wird lediglich eine senkrechte Ausrichtung des Endeffektors erforderlich, so bietet RoBo-mac für Roboter "ohne Handgelenk" durch entsprechende Gegendrehung der Achsen mit den Bewegungsstrategien 6 und 7 eine einfache Lösung (näheres hierzu im  'Kochbuch Inverse Kinematik').

    Mit einem Bewegungsfehler im 1/10 Promille Bereich wird diese senkrechte Orientierung während des gesamten Labyrinth Durchlaufs beibehalten. Gegen Ende der Fahrt weicht die Hauptachse in Portal Kinematik zurück, um dem End Effektor die kollisionsfreie Anfahrt der Null-Koordinate zu ermöglichen.

     

    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 Eigenkollision, 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.

     


     

    Teil 2     Praxis

    Hier, im Teil 2 finden Sie Praxis orientierte Problemlösungen.
    Besprochen werden ein 3D Bahngenerator und die aus der "Sollbahn" berechneten Winkel der Knickarme.
    Hierzu sollten Sie die kostenlose Test und Demo-Version downloaden.

    Teil 1,  (Tutorial) gibt theoretischen Back-Ground. Hier finden Sie Hintergrundinformation zu Problemen der Kinematik, theoretische Lösungsansätze und die Mathematik der Winkeltransformation. Für die Nutzung des Gelenkbaukastens ist es nicht unbedingt erforderlich, dieses zu lesen – es kann aber hilfreich sein!

     

    Systemüberblick
    Der Baukasten ist aus der Aufgabe entstanden, anwenderorientiert und  Hardware neutral

    • Rotations- und Teleskopachsen für Knickarm-Robotersysteme beliebiger Bauart & Geometrie - ggf. auf Portal verfahrbar - mathematisch zusammenzustellen, um deren Bewegungsbahn 3D zu simulieren. 
      • Eine gegebene Hardware hierzu produktspezifisch zu parametrieren
      • oder durch Auswahl geeigneter Hardware Komponenten ein optimales Gesamtsystem zu konfigurieren.
    • Rotations- und Teleskopachsen für Knickarm-Robotersysteme beliebiger Bauart & Geometrie - ggf. auf Portal verfahrbar - mathematisch zusammenzustellen,
    • Gelenk-Winkel und XYZ-Koordinaten wahlweise direkt oder invers zu berechnen und
    • das Roboter-System im 3D-Raum zu visualisieren.
    • In Anlehnung an die 8-Achsen Bahnsteuerung RoBo-mac's berechnet der Gelenk-Baukasten 8 Achsen mit jeweils 2 Freiheitsgraden (Teleskop-Dreh-Achse). Der Algorithmus ermöglicht beliebig viele kaskadierbare Achsen und ist somit erweiterbar.
    • Das Ergebnis steht numerisch (16-stellig / Fließkomma 15 Ziffern) zur Verfügung und wird ergänzend als 3D Grafik visualisiert.
       

    Direkte Kinematik
    Die kinematischen Grenzen werden durch Parametrierung der Achs-Längen, ihrer XYZ-Grundorientierung und der max. Achs-Drehwinkel definiert. An- und Abtrieb jedes Gelenkes kann unter beliebigem Winkel im Raum stehen. Die Werte werden über Schieber verändert und Real-Time visualisiert.
     

    Inverse Kinematik
    Um trotz Überbestimmung aus theoretisch unendlich vielen Winkel-Kombinationen möglichst geeignete Vektorlagen der Roboterarme zu berechnen verfolgt RoBo-mac mehrere, frei wählbare Bewegungsstrategien. Der Algorithmus basiert auf trigonometrischen und iterativen Elementen. Er arbeitet unabhängig von der Vorwärts Kinematik und nutzt diese für die Ergebnis-Visualisierung sowie die Positionskontrolle.
    Die absoluten Positionierfehler Soll/Ist des "End-Effektors" bzw. "Tool Center Points (TCP)" liegen unter 1/10.000 mm, meist in einer Größenordnung von 10-5 bis 10-6 mm.
     

    Bahngenerator
    Ein interaktiver Bahngenerator erzeugt individuelle Bewegungsbahnen.
    Der Baukasten beherrscht Kreise, zylindrische & archimedische Spiralen sowie 3D Bézier-Kurven.

     

    3D-Kinematik & 2D-Perspektive
    Achs-Drehwinkel und Perspektive werden über Schieber verändert und Real-Time visualisiert.

     

    Kartesische Koordinaten und Roboter Kinematik
    Legen wir ein Blatt Papier auf den Tisch und zeichnen mit dem Bleistift ein Achsenkreuz – wir können dies auch mit einem CAD-System am Bildschirm tun – so hat der Kreuzungspunkt per Definition die Bezeichnung "0 / 0". X- und Y-Wert sind also beide gleich "0".

    Dieser Kreuzungspunkt liegt in einem willkürlichen Versatz zum Papier- bzw. Bildschirmrand, Bildschirm bzw. Papier befinden sich in willkürlichem Abstand und Winkel zum Schreibtischrand, der Schreibtisch steht irgendwo im (Büro-) Raum usw.

    • Jeder dieser Gegenstände hat eine Bezugskante, von der üblicher Weise gemessen wird. Und, jeder dieser Gegenstände wird von einem anderen "umhaust", - er hat relative Koordinaten zu dieser Umhausung. Eingebetet ist das System relativer Koordinaten in das Weltkoordinatensystem, auf das allerdings nur selten referenziert werden muß.

    Wenn wir vor der Aufgabe stehen, daß ein Roboter gezielt irgendwo hingreifen oder eine Bewegungsbahn fahren muß, müssen wir den Zielpunkt in einem (kartesischen) Koordinatensystem erfassen auf das auch der Roboter-Fußpunkt referenziert. Während das Kartesische System achsparallel ohne Winkelwerte arbeitet sind Winkelwerte, - kaskadisch aneinander gereiht - der einzige Bezug zwischen Roboter-Fußpunkt und dem "End-Effektor / TCP"; dem Teil, das bewegt und in Position gebracht werden soll.

    Drehwinkel werden in Grad gemessen – so haben wir es in der Schule gelernt! Ein Vollkreis hat 360° (Grad) – und das hat sich eingeprägt, wenngleich es andere Maß Systeme der Winkelmessung gibt: In der Geodäsie wird der Vollkreis mit 400 Gon (Neu-Grad) gemessen.

    Die RoBo-mac Algorithmen arbeitet intern im "Bogenmaß"; ein Vollkreis hat den Winkelwert "2 PI" – was nicht ganz zufällig dem Kreisumfang bei Radius = 1 entspricht!

    Eine Achse kann sich beliebig oft um sich selbst drehen. 2 Umdrehungen entsprechen im (Alt-) Gradsystem einem Drehwinkel von 720°. Mathematisch ist dies unproblematisch, mechanisch ist eine Roboterachse - zumindest bei Gelenk- bzw. Knickarmrobotern - jedoch auf meist eine Vollkreisdrehung – manchmal etwas mehr – beschränkt. SCARA haben meist eine größere Freiheit. Gemeinsam ist diesen Systemen, daß nach Erreichen des maximalen Drehwinkels "zurückgedreht" werden muß. Robotersysteme haben somit zwischen beiden Endlagen einen Nullpunkt, der meist als symmetrisch mittig definiert wird. Sind alle Arme gestreckt, so steht das System in "Null-Stellung".

    Per Definition referenziert jede Drehung eines Armes auf die Stellung des (kaskadisch vorhergehenden) Armes. Gemessen wird der Winkel zwischen den jeweils benachbarten Armen. Eigentlich beträgt der Winkel zwischen gestreckten Armen 180° (im 0° bis 360° System); da andererseits die Streckstellung aller Arme als "Null-Stellung" bezeichnet wird, macht es Sinn, den Bezugsnullpunkt in diese Position zu legen. Das Bezugssystem ist dann als +/- 180° System definiert.

    Auf unsere Aufgabe bezogen, den Roboter gezielt "irgendwo" hingreifen zu lassen, bedeutet dies, das "Irgendwo" kartesisch zu definieren und den Roboter im kartesischen System geeignet zu positionieren, den Rest übernimmt der

    Mathematische 3D Gelenk-Baukasten

     

    Die ersten Schritte
    Wenn Sie sich in die Thematik einarbeiten, werden Sie recht schnell zu dem Schluß kommen:

    • Der Gelenkbaukasten bietet kinematische Bewegungsmöglichkeiten die zu beherrschen einige Erfahrung erfordert. Es ist wie beim Klavierspielen: Das Instrument wird vom Pianisten zum Leben erweckt! Und hier macht Übung den Meister.
    • Üben Sie, Sie können nichts kaputt machen, der Baukasten ist sehr bedien-tolerant. Ich habe bei der Entwicklung hohen Wert auf "Bediener-Komfort" und darauf gelegt, "Bedienungsfehler" (grausame Ausrede inkompetenter Entwickler) automatisch abzufangen. Vieles von dem was Sie tun überprüfet ein Algorithmus im Hintergrund auf Plausibilität – und meldet sich!
      Stöbern Sie!


    Für Ungeduldige

    • Die Datei "Demo-Arm"
      zeigt (nach Initialisierung der kostenlosen Test- und Demo Version) einen Bewegungsablauf.
    • Clicken Sie in der Grafik (oben links) "Control-Center"; eine Maske erscheint;
      • clicken Sie (Maske mitte unten) "Simulation Bewegung / vorwärts";
        der Arm fährt eine Bewegungsbahn, deren Spur zu- und abschaltbar ist.
      • Die Bewegungsrichtung läßt sich umkehren (etwas weiter links):
        Rasttaste "vorwärts / rückwärts". 
      • Weitere Info Bildschirm- und Maskenaufbau
         
    • Die Datei "Demo-Arm_schief"
      ist Beispiel einer komplexen Inversen Kinematik mit in sich gedrehtem Arm
      (vgl. Kinematische Bewegungsebenen sowie Tutorial).
       
    • Strategie-Demo
      verlassen Sie das 'Control-Center'. In der 3D Grafik (oben rechts) finden Sie den Button 'Demo-Menü'. Die Demo-Beispiele zeigen mögliche Bewegungs-Strategien – und geben einen Einblick in die Problematik kinematischer Überbestimmung.
       

    Für Lernwillige

    • Dieses Handbuch führt Schritt für Schritt durch die Möglichkeiten des 3D Gelenk-Baukastens. Sie finden eine Vielzahl von Möglichkeiten eine Bewegungsbahn selbst zu generieren oder aus einem CAD-System zu importieren.
    • Ein "Kochbuch" im Anhang zeigt (hoffentlich) praxisorientiert, wie die Demo-Datei generiert wurde. Zu Maskenfunktionen finden Sie ein "wie, warum und wozu"!
       
    • Über die "normale" Knickarm-Robotik hinaus beherrscht der Programm-Algorithmus
      • in der Länge veränderbare Teleskop-Achsen sowie
      • kombinierte Portal & Knickarm Robotik

     

    Parametrierung
    Die Roboter-Mathematik dieses Baukastens ist entsprechend der mechanischen Roboter-Hardware individuell parametrierbar; mehr hierzu im orig. Handbuch / Kapitel Supervisor-Information.

     

    Bildschirm- und Maskenaufbau

    • Bildschirm
      • Bildschirm oben links
        • Grafik: Stilisierte Armstellung im 3D-Raum.
        • Der 3D-Raum ist kontinuierlich zwischen Maus & Vogelperspektive einstellbar. Die Einstellung hat keinen Einfluß auf die Berechnung.
        • n der Grafik oben links der Button 'Control-Center', der die Maske aufruft.
           
      • Bildschirm oben rechts
        • ganz oben Perspektiv-Schieber, darunter die aktuellen XYZ Koordinaten aller Gelenke.
           
      • Bildschirm unten links / rechts
        • Kinematische Bewegungsdaten
           
    • Maske 'Robotic'

    Bedienerhinweis
    Sprachumschaltung :
    Maske 'Start' (derzeit Deutsch / English, weitere Sprachen möglich).
     

    Die Maske 'Robotic' mag zunächst "erschlagend" wirken, ermöglicht jedoch ohne Maskenwechsel nahezu alle kinematischen Funktionen und Befehle:

    • Direkte (vorwärts) Kinematik,
      • Berechnung der XYZ-Koordinaten des TCP aus Winkelstellung der Knickarme
         
    • Inverse (rückwärts) Kinematik
      • Berechnung der Knickarm-Winkelstellung aus vorgegeben XYZ-Koordinaten des TCP
      • freie, interaktive Off-line Entwicklung einer Bewegungsbahn  aus
        - linearen, Kreis- & Spiral-Elementen sowie 3D-Bézier Kurven
      • automatische Transformation einer extern vorgegeben Bewegungsbahn
      • 8 frei wählbare Bewegungsstrategien der Knickarme
      • sowie die Möglichkeit, Knickarm Roboter zusätzlich auf XYZ-Portal zu verfahren.
         
    • Last not lease
      • 3D-Visualisierung der Roboter Knickarme und einer Bewegungsspur des TCP aus frei wählbarer Maus- bis Adler-Perspektive.

    Auch dieses Leistungsspektrum mag "erschlagen"; wir betrachten es schrittweise. Zunächst den Maskenaufbau. Grundsätzlich gilt: Sie können nichts kaputt machen – probieren Sie!

     

    Die Maske zeigt 3 Säulen,
    links: inverse Kinematik & Bahngenerator, rechts: direkte Kinematik, Mitte: Zusatzfunktionen

    Kinematik invers

    • Alle Werte dieses Blocks (links oben) beziehen sich auf den TCP.
      • Die aktuelle Ist-Position wird im XYZ-Koordinatenfenster (ganz oben) angezeigt.
         

    Linear

    • Ziel Position (absolut).
      Der Wert wird im XYZ-Koordinatenfenster eingegeben.
      Falls sinnvoll, kann der Ist-Wert zuvor ins Ziel-Feld kopiert (Übernahme 'Ist-Position') und danach geändert werden. Wahlweise wird diese Ziel Position als Neuer Datensatz (DS-Neu) hinzugefügt oder der aktuell gewählte Datensatz korrigiert (DS-Korrektur).
      Die Achs-Winkelwerte werden hieraus OnLine errechnet und dem aktuellen Datensatz (s.u.) hinzugefügt.
       
    • Ziel Position (Offset).
      Der Offset bewegt den TCP - bezogen auf seine aktuelle Position - stets um den gleichen Wert mit den Doppel-Pfeiltasten wahlweise vorwärts / rückwärts. Er ist entweder
      - als kartesischer Zielwert (XYZ) oder

      -
      als Vektor-Hub führ in eine teleskopartige 'Unter-Arm'-Bewegung definierbar.
      Der aktive Offset färbt sich 'rot'.

    Kurve
    Bézier / Kreis & Spirale (ab Controller-Version 5.6)

    Die Bedienerführung wählt aus 2 recht ähnlichen LayOuts.
    Ein jeweils einzelner 'Button' führt bei beiden Bahnkurven durch die Prozeßschritte. Die Bahn Stützpunkte werden zunächst errechnet, die Bahn als 3D Vorschau zur visuellen Kontrolle / Korrektur gezeigt und nach Freigabe die Armbewegungen in Inverser Kinematik aktiviert.

    • 3D-Bezier
      Die Bézier 3D Funktion verbindet zwei getrennte (lineare Teleskop-) Bahn-Segmente beliebiger Vektorlage mit den "weichen Übergängen" einer 3D-Bézier Kurve. Der Generator schlägt 3 Bezier Lösungen zur Auswahl 'per Click' vor. Diese können "so wie sie sind" akzeptiert oder per Doppelpfeil individuell gestaucht bzw. gestreckt werden.
    • Der Kreis & Spiral Generator
      kennt 3 Modi: Kreise oder Spiralen (archimedisch, zylindrisch bzw. deren Kombination) sind frei parametrierbar. Sie schmiegen sich entweder tangential an (Mod. 1) oder sind im 3D-Raum frei positionierbar (Mod. 2). Per Doppelpfeil können sie wahlweise um ihren Mittelpunkt oder den peripheren Tangentenpunkt gedreht /orientiert werden.
      Modus 3: Aus einer Datenliste der Segment-Eckpunkten werden die Kreisbahn Stützpunkte berechnet; das ist das Beispiel "Labyrinth von Chartres".

     

    • Datensatz
      wählen Sie den zu bearbeitenden Datensatz mit seiner Ordnungs-Nr. oder den Pfeiltasten. Falls bereits mehrere Datensätze vorhandenen sind und Sie den letzten einer Liste aufrufen wollen, clicken Sie 'Anschluß DS (suchen)'. So Sie einen vorhandenen aus der Liste löschen oder einen zusätzlichen einfügen wollen, clicken Sie: 'DS-Neu' / 'DS-Löschen'.
      Es kann sinnvoll sein, die Anfahr-Koordinaten eines Zieles vom Ziel aus gesehen "rückwärts" zu entwickeln. In der Praxis können hierbei zunächst 2 getrennte Bewegungsfragmente (Start-Fragment / Ziel-Fragment) entstehen, die es zu schließen gilt. Die Rast-Taste 'vorwärts / rückwärts' wählt in Zusammenarbeit mit 'Anschluß DS (suchen)' das entsprechende Fragment und dreht die Suchrichtung im 'Ziel-Fragment' um.
       
    • 3D-Perspektive & Zoom
      wählen Sie mit den Doppel-Pfeiltasten die 3D-Perspektive. Der Knopf 'Reset' führt aus "unglücklichen" Perspektiven zurück in eine klassische 3D-Perspektive.

      Parallel hierzu zeigt das Daten-Modul im Info-Feld – oben rechts neben der Grafik – die gewählten Perspektivwinkel numerisch.
      - Bei nicht aktivem Control-Center sind die Schieber des Info-Feldes aktiviert.

      Ab Version 5.7 kann das rechtshändige Koordinatensystem (Z-Achse zeigt vorwärts aus der Zeichenebene) in ein linkshändiges 'gespiegelt'  werden (Z-Achse zeigt nach hinten).
      • Beachten Sie bitte:
        Die Umschaltung der perspektivischen Darstellung hat auf die kinematischen Berechnungen keinerlei Einfluß. Diese 'Spiegelung
        ' dient lediglich der optischen Anpassung an die perspektivische Erwartung.
        Merke: Eine 'Spiegelung
        ' ist nie durch eine  'Drehungerreichbar!
         
    • Bewegungsstrategie / Silhouette
      Mehreren Bewegungsstrategien stehen zur Auswahl. Beispiele, wie diese Strategien arbeiten, finden Sie im Makro-Menü unter "Strategie-Demo…". Die gewählte Bewegungsstrategie bestimmt den Algorithmus der inversen Kinematik.
      • Clicken Sie eine Strategie Ihrer Wahl. Im oberen Fenster-Bereich erscheint eine Info, ob diese für Parallel Kinematik, Schief Kinematik oder beide geeignet ist (vgl. Tutorial).
      • Ein Wechsel zwischen den Bewegungsstrategien ist jederzeit möglich.
      • Die Strategien 6 und 7 erzeugen ab Handgelenk-Punkt lineare Bewegungen und somit konstante Orientierung der Abtriebs-Achse.
         
    • Koordinaten Liste
      Die Liste extern erzeugter XYZ Koordinaten des TCP wird - entsprechend der Bewegungsstrategie - in die Winkel der Knickarme transferiert; schrittweise oder automatisch für die gesamte Liste.
       
    • Simulation Bewegung
      Die Bewegungssimulation visualisiert im zügigen Durchlauf die einzelnen Datensätze. Die bereits bekannte Rasttaste 'vorwärts / rückwärts' bestimmt die Laufrichtung:
      • Vorwärts: Start-Punkt bis zum aktuellen Datensatz / aktueller Datensatz bis Zielpunkt
      • Rückwärts: In umgekehrter Richtung.
         
    • Spur
      Die Bewegungsspur des TCP läßt sich per Rasttaste zu/abschalten. Angezeigt wird die Spur zwischen Startpunkt und dem (beim Clicken der Taste) aktuellen Datensatz. Sie kann über die Tasten 'Simulation Bewegung' bzw. die Befehlsgruppe 'Datensatz' mit den Doppel-Pfeiltasten frei durchlaufen und so ein gesuchter Datensatz visuell gefunden werden. Mit Aufruf der Maske wird die Spur aktiviert – und kann ggf. abgeschaltet werden.
       
    • Stop
      eine 'Stop-Taste' erscheint, sobald Simulation Bewegung oder Koordinaten Liste automatic gewählt ist. Die Funktion bricht ab, der Datensatz wird zum aktuellen Datensatz.

     

    Kinematik direkt
    Dieses Feld (rechts oben )zeigt Winkelschieber für 12 Achsen (A/B bis L/M) sowie den aktuell eingestellten Winkelwert, wahlweise im 0-360° oder -180° / +180° System. Nur die Schieber, die im Rahmen der Parametrierung aktiviert wurden, sind aktiv.

    Die direkte Kinematik dient in erster Linie dazu, eine "vernünftige Startposition", die Orientierung des TCP-Trägerarmes als Ausgangspunkt der inversen Kinematik oder auch Stützpunkte zur Umfahrung eines Hindernisses manuell zu bestimmen. Man braucht sie selten, aber man braucht sie. Vieles ist hier Sisyphus & Try and Error.

      Ist in direkter Kinematik eine Winkelposition gefunden, so kann sie der Datensatz-Liste über den Button 'DS-Neu' bzw. DS-Korrektur' (s. unten) direkt zugeführt werden.

      Hat nach dem Gesetz der größten Gemeinheit Murphy zugeschlagen und die Knickarme stehen völlig daneben, so können die Schieber mit den Doppel-Pfeiltasten des Bereiches Datensatz auf die Werte des List-Datensatzes synchronisiert werden.

    • Basiskoordinate Portal   (rechts unten)
      Koordinaten und Winkel-Berechnungen referenzieren auf den Achs-Fußpunkt XYZ.
      • Komplexe Robotersysteme arbeiten mit verfahrbarem Fußpunkt auf XYZ-Portal. Der Algorithmus inverser Kinematik berücksichtigt bei der Knickarm Berechnung die in direkter Kinematik vorgewählte Portal-Kordinate.
      • Die Verschiebung der Basiskoordinaten ermöglicht es auch, eine feste Fußpunkt Position entsprechend den kinematischen Möglichkeiten der Roboter-Mechanik zu optimieren.
         

    Button 'DS Neu' & 'DS Korrektur'
    Sie finden diese Funktionen in den Bereichen inverse sowie direkte Kinematik.

    • Per 'DS Korrektur' ändern Sie den aktuellen Datensatz,
    • 'DS Neu' generiert einen zusätzlichen Datensatz am aktiven Ende eines Datensatz-Blocks.
      Unter Sicherheitsgesichtspunkten ist 'DS Neu' de-aktiviert, sobald der aktuell gewählte Datensatz sich nicht am Block-Ende befindet; gleichsinniges gilt für die Offset Doppel-Pfeiltasten.
       
    • Wollen Sie größere Änderungen vornehmen, so sollten Sie (im Feld 'Datensatz')
      • per 'DS Einfügen' einen Datensatz an aktueller Stelle einfügen,
      • per 'Anschluß DS suchen' das aktive Ende des Blockes (vorwärts/rückwärts) aufsuchen.
        Die Taste 'DS Neu' wird aktiviert.
         

    Koordinaten & Datensatz-Liste
    Im unteren Teil des Bildschirmes werden (ab Zeile 51) die Kinematischen Bewegungsdaten zeilenweise gespeichert; links die XYZ-Koordinaten, rechts deren korrespondierende Winkel. Über die Maske haben Sie direkten Zugriff auf bereits erstellte oder entstehende Datensätze sowie deren Korrektur. Die in der Maske angezeigte Ordnungs-Nr. des Datensatzes wird mit dem Cursor ergänzend markiert. Sie finden:

    • Spaltenbereich 1 / (A)                               Ordnungs-Nr. der Bewegungsstrategie
    • Spaltenbereich 2 bis 4 / (B bis D)             Soll-Koordinate XYZ des TCP (absolut)
    • Spaltenbereich 5 / (E)                               Soll-Vektor-Offset des TCP (relativ)
    • Spaltenbereich 7 bis 9 / (G bis I)               Ist-Koordinate XYZ Portal / Fußpunkt *)
    • Spaltenbereich 14 bis 16 / (N bis P)         Ist-Koordinate XYZ des TCP (absolut)
    • Spaltenbereich 39 bis 50 / (AM bis AX)     Winkelwerte Achsen (A/B bis L/M)
       
    • Portal / Fußpunkt Ist-Koordinate
      • Sind in der Liste keine Fußpunkt-Koordinaten vorhanden, so arbeitet der Algorithmus "mit 0-Wert". Arbeiten Sie mit dem Bahn-Generator, so werden Portal Koordinaten in der Koordinatenliste nur ausgewiesen, wenn sie von 0 abweichen.
      • Sind Fußpunkt-Koordinaten in der Liste vorhanden, so werden sie als Offset berücksichtigt.

     

    Bahnsteuerung

    CAD-Import
    Sind Soll-Koordinaten (z.B. aus einem CAD-Programm) vorhanden, so werden sie zunächst mit den Excel-üblichen Befehlen in den Bereich der Sollkoordinaten (Spalten 2 bis 4 / bzw. B bis D) des Datenmoduls ab Zeile 50 übertragen. Das Programm generiert aus diesen TCP Soll-Koordinaten entsprechend der gewählten Bewegungsstrategie (s.u.) die Winkelstellung der Knickarme und schreibt sie in das Bewegungsprotokoll. Hierzu werden die Koordinaten entweder über den Button 'DS-Schritt' (Step by Step) aufgerufen oder per 'DS-Automatic' als Datenblock verarbeitet.

    Bahngenerator
    Sind keine (extern ermittelten) Soll-Koordinaten vorhanden, so müssen sie interaktiv generiert werden (Offline Teach-In). Die TCP-Bahn-Stützpunkte werden wahlweise als XYZ-Wert Absolut oder als Offset eingegeben und per 'DS Neu' bzw. 'DS Korrektur' verarbeitet. Der Bahngenerator

    • visualisiert "Real-time" die Bewegung im 3D-Raum entsprechend der gewählten Bewegungsstrategie (s.u.)
    • erlaubt hierbei beliebig "Try & Error" und
    • erzeugt die XYZ-Koordinatenliste des TCP sowie das Knickarm-Bewegungsprotokoll.
       
    • Ein 3D-Bézier Kurven Generator (s.u.)
      verbindet gefundene TCP-Bahn-Stützpunkte. Die vorgeschlagenen Bahnkurven sind individuell anpaßbar.
    • Ein Kreis Generator erzeugt frei im Raum positionierbare Kreis- und Spiralbahnen.
      (Zylindrische & Archimedische Spirale und Kombinationen hieraus – links- rechtsläufig).
       

    CAD-Import und Bahngenerator
    greifen auf die gewählte Bewegungsstrategie zurück und ermöglichen eine kontinuierliche oder schrittweise Kontrollfahrt. Bestimmen Sie ggf. in direkter Kinematik eine "vernünftige" Startpositionierung.
     

    • Im Rahmen einer interaktiven Arbeitssitzung erzeugt/speichert das Programm ein Bahnprofil mit Koordinaten und Winkelwerten. Wurden diese mit dem Bahngenerator erzeugt, so kann aus den gewonnenen Ist-Koordinaten eine ähnliche "parallel versetzte" Bahn mit den EXCEL-üblichen Befehlen "recht bequem" generiert werden: Die per Bahngenerator erzeugte Ist-Koordinatenliste wird mit entsprechendem Offset in den Soll-Koordinaten Bereich übertragen und über den Button 'DS-Schritt' bzw. 'DS-Automatic' erneut verarbeitet.
    • Stellt sich heraus, daß ein Zielpunkt außerhalb der kinematischen Möglichkeiten liegt und daß das Problem durch verschieben des Roboter 'Schulter bzw. Fußpunktes' zu lösen sei, so muß nicht die bisherige Arbeit erneuert werden: Über den Portal-Offset wird eine neue Basisposition gewählt und über den Button 'DS-Schritt' bzw. 'DS-Automatic' ein neues Bewegungsprofil bei geändertem Fußpunkt erzeugt.
    • Der Portal-Offset ist im Masken Bereich der 'direkten Kinematik' korrigierbar.
      • Der hier eingegebene Wert wird für den aktuellen Datensatz in der Koordinaten-Liste gespeichert. Clicken Sie hierzu den Button 'DS Korrektur' bzw. 'DS Neu'.
      • Um den bisherigen Portal-Offset beizubehalten, clicken sie den 'Doppelpfeil' "rauf/runter" (im Feld Datensatz) je einmal, der bisherige Offset wird synchronisiert.
      • Beachten Sie hierzu die Supervisor-Information 'Parameter & Datenkonformität'.

     

    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 aus Direkter Kinematik
                                 "in ähnlicher Silhouette" (TCP Abweichung  Soll/Ist  < 10-5 mm).
    • 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 'End-Effektor' parallel zu sich selbst
    • Teleskop,            bewegt den 'End-Effektor' wie einen “Teleskop-Auszug”.

      Zwischen den Strategien kann beliebig gewechselt werden.
       
    • Semi-Automatic
      orientiert sich an der Ist-Position der Gelenke und erreicht die neue Zielposition "in ähnlicher Silhouette". Wird die Arm-Position mit den Schiebern "in etwa" vorgewählt, so ermittelt der Algorithmus die Vektorlagen der Arme mit o.g. Präzision, ein Hindernis kann mit der Halb-Automatic so umfahren werden. Die Stützpunkt-Schrittweite beeinflußt die "Ähnlichkeit" der Silhouette; liegen die Stützpunkte weit auseinander, so geht die Ähnlichkeit verloren.
      • Die Bahnen der Gelenkpunkte sind bei Hin- und Herbewegung selten kongruent.
         
    • Konvex, Konkav & Zickzack
      sind Voll-Automatic Funktionen, sie generieren die Bahn mit reproduzierbarer Winkelstellung der Gelenke - unabhängig von deren Ausgangs-Position; diese Bewegungsstrategien ermitteln für alle Gelenkpunkte stets die gleiche Bahn. Der Algorithmus eignet sich für Bewegungen, denen genügend Arbeitsraum zur Verfügung steht, er benötigt wenige Stützpunkte.

      Innerhalb jeder einzelnen Bewegungsstrategie verlaufen die Armbewegungen konsistent und erwartungsgemäß.
      • Ein Strategiewechsel ist jederzeit möglich, führt jedoch über eine im Detail undefinierte Streck-Bewegung des Armes. In dieser Bewegungsphase besteht erhöhte Kollisionsgefahr!Vgl. Tutorial / Kochbuch: 'Singularität'. 
         
    • Parallel & Teleskope
      ähneln o.g. Voll-Automatic Funktionen. Der "End-Effektor" wird in paralleler Ebene zu sich selbst, bzw. in der Vektororientierung seiner eigenen Achse bewegt.

      Die Bewegungsstrategie 'parallel' verwendet hierzu den absoluten bzw. relativen XYZ-Wert. 'Teleskopisch' berechnet aus der Ist-Vektorlage entsprechend dem geforderten Vektor-Hub individuelle XYZ-Bewegungskomponenten, die  per Knickarm-Kinematik zu einer teleskopartigen Bewegung des "End-Effektors"  bzw. "Unterarmes" führen.
      • Die Winkelorientierung dem Unterarm ggf. kaskadisch folgender Achsen bleibt bei beiden Strategien erhalten.
      • Ein Strategiewechsel Parallel / Teleskop ist jederzeit ohne erhöhte Kollisionsgefahr möglich. Der Arbeitsbereich ist kleiner als der anderer Strategien.

     

    3D-Bézier Generator
    Bézier Kurven haben die wunderbare Eigenschaft, nicht nur 2 Punkte zu verbinden:

    • Die Kurve läßt sich in weiten Grenzen mit mathematisch gut beherrschbaren "Anfassern" beliebig formen. Besonders hilfreich ist es, daß die Bézier Kurve ihre "Anfasser" punktgenau tangential verläßt bzw. tangential einläuft, vgl. Tutorial.
    • Liegen die Anfasser in der Vektor-Orientierung einer anderen, anschließenden Kurve oder Geraden so gehen beide nahtlos ineinander über. Anders ausgedrückt:
    • Zwei gegebene Bahn-Segmente, können durch Bézier-Splines "glatt" verbunden werden.
       

    Soweit die Theorie. Mehr hierzu unter: http://www.cnc-mac.de/html/bezier___spline_.html. In der Praxis bedarf es erheblicher Übung, mit den Anfassern eine "vernünftige" Kurve zu generieren. Wir überlassen dies dem Bahngenerator.
     

    Der Bahngenerator fügt eine drei dimensionale Bézier Kurve mit 20 Stützpunkten ein, die Ihnen zur Beurteilung zunächst vorab in der 3D-Grafik gezeigt wird. Im Sinne besserer Übersichtlichkeit werden alle anderen Bewegungsbahnen bis auf diese Kurve ausgeblendet.

    • Der Bahngenerator bestimmt aus der Vektorlage der zu verbindenden Bahn-Segmente die Bézier Tangentenlage im Raum und berechnet aus dem Öffnungswinkel 3 Vorschlagsformen der Kurve. Diese können recht ähnlich, aber auch sehr unterschiedlich sein.
      - Per Click wählen Sie eine hiervon.
      - Mit den beiden 'Doppelpfeil-Tasten' ändern sie den Formfaktor (Amplitude) der gewählten Kurve.
      Falls Sie die Kurvenorientierung ändern möchten, korrigieren Sie deren Tangenten-Punkte

    Öffnungswinkel und Abstand zum theoretischen Tangenten Schnittpunkt bestimmen in unterschiedlicher Gewichtung die 3 Basis-Kurven.

    • Bei einem Öffnungswinkel von 90° und
      • gleichem Abstand zum theoretischen Schnittpunkt erzeugen Kurve 1) und 2) einen exakten ¼ Kreis. Kurve 3) bildet eine Sehne.
      • unterschiedlichem Abstand erzeugt Kurve 1) ein Oval, Kurve 2) eine Ellipse. Kurve 3) bildet eine Sehne.
         
    • Bei anderen Öffnungswinkeln kommt die Vielfalt Béziers zum Tragen:
      • Kurve 1) verbindet die Bahn-Segmente bei beliebigem Öffnungswinkel jedoch gleichem Abstand zum theoretischen Schnittpunkt mit einem Kreissegment.
      • Tendenziell erzeugt Kurve 2)
        - bei flachen Öffnungswinkeln flachere Verrundungen als Kurve 1),
        - bei spitzeren Öffnungswinkeln spitzere Verrundungen als Kurve 1).
      • Liegen die Tangenten der zu verbindenden Segmente parallel, so erzeugt Kurve 1) einen Halbkreis, Kurve 2) eine Halb-Ellipse.
      • Kurve 3) "reagiert stärker" auf Änderungen des Öffnungswinkels und der Schnittpunktlage als die beiden anderen; dies kann in sehr "elegante" aber auch völlig unbrauchbare Kurven führen.
         

    Liegen die zu verbindenden Bahnsegmente "parallel versetzt" (oder auch "schräg versetzt"), so werden sie mit einem "S-Bogen" verbunden; die Ausprägung des "S-Bogens" ist bei den 3 Kurven recht unterschiedlich.

     

    Bézier "Wunschbahn"
    Bézier Kurven laufen hoch präzise in ihren eigenen Tangentenpunkt ein; die Kurve selber ist, wenngleich exakt reproduzierbar jedoch nur bedingt auf eine "exakte Wunschbahn" zu bringen. Für die Bedienung des Bahngenerators bedeutet dies, zwischen 'bestimmter' und 'unbestimmter' Bewegungs-Bahn zu unterscheiden. Die 'bestimmte' Bewegungs-Bahn ermöglicht einen präzis geführten Werkzeugeingriff, die 'unbestimmte' Bahn dient vorzugsweise einer "eleganten" Werkzeugbewegung im Raum ohne Werkzeugeingriff.  Bahnsegmente mit Werkzeugeingriff generieren Sie in 'Inverser- Kinematik' mit den Bewegungsstrategien 1) bis 7).

    • Muß die "Wunschbahn" präzise über einen oder mehrere bestimmte Raumpunkt geführt werden, so teilen Sie die Bahn in Segmentabschnitte. Mehrere Bézier Kurven verbinden diese Raumpunkte als "Cascadierter Spline". Ein gemeinsames Stützpunkt-Paar bestimmt die Orientierung der ein- und auslaufenden Kurve. CAD/CAE Systeme arbeiten auf dieser Technologie-Basis. Vgl. http://www.cnc-mac.de/html/bezier___spline_.html.
       

    Bézier-Bahn & Arbeitsbereich
    Der Bézier Kurven Generator prüft, ob die vorgeschlagene Kurve im Arbeitsbereich des Roboters liegt. Ob diese Kurve in 'Inverser Kinematik' durch den Roboterarm realisiert werden kann, hängt von den parametrierten Grenzwinkeln ab (vgl. Supervisor-Information). Die Algorithmen der 'Inversen Kinematik' melden ggf. eine 'Winkelwert Überschreitung'.

    Falls die Kurve in eine 'Winkelwert Überschreitung' führt, haben Sie 2 Korrekturmöglichkeiten:

    • Wählen Sie testweise eine andere der vorgeschlagenen Kurven oder stauchen Sie sie mit den Doppelpfeil-Tasten (Formfaktor < 1).
    • Fahren Sie den Zielpunkt nicht über den kürzesten Weg an, sondern drehen Sie die Arme über die "Winkelposition 0°" zurück. Führen Sie den Roboterarm hierzu über "Hilfs-" Raumpunkte in die Ziel-Position.

     

    Kreise & Spiralen
    wären als Cascadierter Bézier Spline zwar mit hoher Präzision möglich, jedoch ist die klassische Mathematik vorteilhafter, zumal hier ein höherer Bedien-Komfort realisierbar wird. Im Sinne intuitiver Bedienung orientiert sich die Parametereingabe für Kreise & Spiralen an den beschriebenen Bézier-Abläufen.

    Kreise erreichen nach einem 360° Umlauf Ihren Startpunkt, Spiralen drehen hierüber hinaus.

    • Sind für ein Kreissegment der Start und Endpunkt aus vorhandenen Anschluß Koordinaten ableitbar, so erfragt das Programm die Mittelpunktkoordinate und den Drehsinn.
      - Ist nur die Startkoordinate bekannt, so wird ergänzend der Drehwinkel abgefragt.
    • Zylindrische & Archimedische Spiralen erfordern zusätzlich die Angabe  Steigung pro Umdrehung.

    Vorschlagswert hieraus sind Kreis Koordinaten für tangentialen Bahn Einlauf, abweichend ist jede beliebige Kreis- / Spirallage im 3D Raum per 'Doppelpfeil Taste'  individuell möglich.

    Im Kochbuch Inverse Kinematik
    finden Sie eine "Schritt für Schritt" Anleitung zu Bézier, Kreise & Spiralen.

     

    Positionierung & Orientierung
      -
    Die Positionierung bestimmt die kartesische XYZ-Position des "End-Effektors" im Raum,
      - die Orientierung unter welchen Winkeln er steht.
    Beide Werte zusammen definieren seine Vektorlage.

    • Grundsätzlich wird es nur möglich, Positionierung und Orientierung im 3D Raum ohne Einschränkung frei zu wählen, wenn mindestens 2 x 3 Freiheitsgrade  (Arm: X/Y/Z) und (Handgelenk: U/V/W) mechanisch vorhanden und ohne gegenseitige Beeinflussung ansteuerbar sind.

    Wird lediglich eine senkrechte, "Haupt-Achsen parallele" Ausrichtung des End-Effektors erforderlich, so bietet RoBo-mac für Roboter "ohne Handgelenk" durch entsprechende Gegendrehung der Achsen mit den Bewegungsstrategien 6 und 7 eine kostengünstige Lösung:
     

    Im Demo-Beispiel Labyrinth von Chartres steht der Roboterarm zunächst senkrecht in 'Home-Position'. Bei Eintritt in das Labyrinth weist der 'End Effector' Arm G/H 'senkrecht nach unten'.

    • Er hat während des Durchlaufens der Bezier-Kurve seine Orientierung geändert!
      Per Bewegungsstrategie 6) bzw. 7) wird diese Orientierung mit höchster Präzision beibehalten. Im Beispiel liegt der Orientierungsfehler am Bahn-Ende – nach etwa 1000 Bahnpunkten – in der Größenordnung 1/10 Promille.

    Orientierungswechsel des End Effektors währen der Bezier-Fahrt.
    - Das Demo-Beispiel ändert auch die Betrachtungsperspektive.

     

    Der Bahngenerator berechnet einen Neuen Datensatz stets basierend auf der aktiven / aktuell angezeigten Ist-Position und der hierzu gehörenden Orientierung.

    • Soll die Orientierung bei Beibehaltung der Bahn-Position korrigiert werden, so wird zunächst die aktuelle Position per Button 'Übernahme Ist-Position' "vorgemerkt".
    • In Direkter Kinematik wird die gewünschte Orientierung 'per Schieber' gewählt.
      - Diese Um-Orientierung führt zunächst in eine Änderung der Position!
    • Die "zuvor vorgemerkte" Position wird in der neu gewählten Orientierung mit 'Strategie 6) parallel' in 'Inverser Kinematik' angefahren.

    Bitte beachten Sie, daß eine Um-Orientierung bei großer Schrittweite (horizontal / senkrecht) über undefinierte Detail-Bewegung führen kann. Legen Sie diese Bewegungsphase in einen unkritischen Bewegungsbereich.
     

    Senkrechte / horizontale Orientierung des End-Effektors
    Hilfreich zur Kontrolle ist die Koordinaten-Übersicht unmittelbar rechts neben der Grafik.

    • Für eine senkrechte Orientierung der Achse G/H sind deren X und Z-Koordinaten gleich,
    • für eine horizontale die Y-Koordinaten.
    • Mit den Schiebern B/C, D/E, F/G stellen Sie eine senkrechte / horizontale Orientierung des End-Effektors G/H in beliebiger Position ein:
      - Beträgt die Winkelsumme 0° bzw. 180°, so steht er senkrecht, bei 90°/270° horizontal.


    "Bézier"- Orientierung des End-Effektors
    Der Bahngenerator erzeugt tangential in die Anschlußsegmente einlaufende 3D Bézier-Kurven. Wurden die Anschlußsegmente mit 'Strategie 7), teleskopisch' erzeugt, so steht der End-Effektor in diesem Datensatzbereich ebenfalls tangential. Die 'Strategie 6) parallel' übernimmt diese "auslaufenden Orientierung" – und behält sie bei. Allerdings wird diese Orientierung nur selten die Orientierung des Anschlußsegmentes der einlaufenden Bahn sein!

    Das Kochbuch Inverse Kinematik. führt "Schritt für Schritt" durch diesen Themenkreis.

     

    Kombinierte Portal & Knickarm Robotik
    Ist ein Knickarm Roboter auf Portal verfahrbar, so überlagern sich beide Bewegungskomponenten. Dies erhöht die Anzahl der Freiheitsgrade enorm. Um trotzdem gezielt Einfluß auf die Kinematik nehmen zu können, referenziert die Berechnung der Knickarm-Winkel auf die aktuelle Fußpunkt Position.

    • Wählen Sie eine Fußpunktposition in 'Direkter Kinematik' und die XYZ-Zielkoordinate des TCP im Maskenbereich der 'Inversen Kinematik.
    • Beide Bewegungskomponenten lassen sich so zu einer komplexen Gesamtbewegung kombinieren – und bestimmen die Orientierung des TCP.
       

    Soll die TCP Position bei geänderter Fußpunkt Koordinate beibehalten werden, so

    • clicken Sie zunächst den Button 'Übernahme Ist-Position' (Feld 'Zielposition absolut'),
    • korrigieren Sie die Fußpunkt Koordinate,
    • clicken Sie 'DS Neu' (Bereich direkte Kinematik)
    • clicken Sie 'DS Korrektur' (im Feld 'Zielposition absolut').
    • Diese Orientierungsänderung bei gleicher XYZ-Position führt in eine "Biege-Bewegung".
       

    TCP Spur
    Die Grafik visualisiert aus beliebiger Perspektive die aktuell errechnete Winkelstellung der Knickarme im 3D-Raum und (zu-/abschaltbar) die Bewegungsspur des TCP. Die Perspektiv-Einstellung hat keinen Einfluß auf die kinematische Berechnung.

     

    Positionierfehler & Watchdog
    Unabhängig davon, wie die Soll-Werte erzeugt wurden, werden die Datensatz Ist-Werte in inverser Kinematik entsprechend der gewählten Bewegungsstrategie berechnet und als korrespondierende Knickarm-Winkel gespeichert. In direkter Kinematik wird aus diesen Knickarm-Winkeln der XYZ-Wert des TCP errechnet. Das Verfahren mag umständlich sein, ermöglicht jedoch einen Soll/Ist Vergleich. Die absoluten Positionierfehler Soll/Ist des TCP liegen unter 1/10.000 mm, meist in einer Größenordnung von 10-5 bis 10-6 mm.

    Ein Watchdog-Algorithmus überwacht intern die Soll/Ist-Abweichung und schlägt ggf. Alarm. Falls der Zielpunkt nicht berechenbar oder kinematisch nicht erreichbar ist, wird eine Fehlermeldung generiert.

     

    Kinematische Bewegungsebenen

    • Parallele Ebenen
      Die Algorithmen der bisher besprochenen Bewegungsstrategien erwarten, daß sich die Schwenkachsen zwischen Schulterpunkt und Ellbogen bzw. dem Übergangspunkt "Arm/Handgelenk" in parallelen Ebenen bewegen. Die An- und Abtriebsachsen A/B bzw. G/H dürfen Drehachsen sein. Diese Parallel-Kinematik (vgl. Tutorial) erreicht jeden beliebigen Raumpunkt (XYZ).
       
    • Schiefe Ebenen
      Die zusätzliche Drehmöglichkeit einer Schwenkachse zwischen Schulterpunkt und Handgelenk erhöht die Bewegungsvielfalt enorm. Dieser Vorteil wird mit einer komplexen Mechanik, einer nochmals gesteigerten kinematischer Überbestimmung und  parasitären Bewegungskomponenten erkauft:
      • Jede schiefwinklige Bewegung eines Armsegmentes beinhaltet neben einer zielführenden Bewegung eine nicht gewünschte Vektorkomponente, die durch Gegenbewegung anderer Armsegmente kompensiert werden muß; der Rechenaufwand steigt extrem – und führt in wahrnehmbare Rechenzeit. Es müssen 3D- Näherungsalgorithmen verwendet werden (vgl. Tutorial).

      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 (Interaktiver Prozeß) zuvor korrigiert werden. Der Gültigkeitsbereich bildet sich aus Schnittmengen vorgenannter Parameter. Ein Watchdog-Algorithmus überwacht, daß sich die Näherungsalgorithmen im Gültigkeitsbereich bewegen; er generiert ggf. eine Fehlermeldung & Korrekturempfehlung.

      Mit Version 6.0 wird ein gegenüber den ältern Versionen deutlich präziser arbeitender Schief-Algorithmus eingeführt, Positionierfehler liegen nunmehr in der Größenordnung 10-4 – und besser. Der Algorithmus beherrscht alle Bewegungsstrategien.

    Das Programm prüft selbstständig, ob der rechenintensive Schief-Algorithmus erforderlich wird oder der schnellere & präzisere Parallel-Algorithmus geeignet ist.

     

    Diese Informationen verstehen sich als Handbuchauszug, im Download finden Sie alle Manuals im PDF Format.

    • Das Orig. Handbuch enthält ergänzend Supervisor-Informationen, wie das Programm der Mechanik-Struktur Ihres Gelenkarmroboters und dessen Maßen angepaßt wird, so daß die Mathematik des 3D Gelenk-Baukasten und Roboter-Mechanik kongruent sind. Die mathematischen Positionierfehler liegen dann (bei einem Arbeitsbereich um die 2 m) in einer Größenordnung von 10-5 bis 10-6 mm
      - die relative Genauigkeit somit um die 10-8 bis 10-9
      - und dies ist gewiß eine Herausforderung an die Robotermechanik!
      ..
    • Im Anhang zum Handbuch ein "Kochbuch" Inverse Kinematik.
      Diese Rezeptesammlung führt "Schritt für Schritt" (einschließlich kinematischer Stolperfallen & Lösungen) durch die Bewegungsprogrammierung.
    • Theoretischen Background erläutert ein Tutorial.
       

    Den Mathematischen 3D Gelenk-Baukasten für Rotations- & Teleskope-Achsen erhalten Sie im Download als kostenloses Test-Paket,

    Was der Baukasten kann, zeigt das Video "Inverse-Kinematik_Robotic-Simulation"; es besteht aus mehr als 3.000 Frames - das sprengt alles; daher in YouTube: https://www.youtube.com/watch?v=MJbAxZ3Iuio