Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Laderegler Test Tueftler Seite

Hier ist ein Multi-Achs-Controller zur interpolierenden Bahn-Steuerung von (z.Z.) bis zu 8-Achsen entstanden, ich habe ihn RoBo-mac genannt. Vom Roboternetz habe ich vieles gelernt, das in die Entwicklung eingeflossen ist; mit diesem Artikel möchte ich mich revanchieren.


Neu per 31.12.2012

  • Auf dem Server Release 0.6
- verbesserte grafische Darstellung der Ableitungen
- neu durchstrukturierte Algorithmen Kurve 1 & 2


Vorwort Teil 2

Kaum war RoBo-mac fertig (fertig wird so ein Programm nie!), kam die Frage nach Teach-In und Interpolationsverfahren zur Berechnung der Bahnkurve auf.

Der einfachste Weg ist die lineare Interpolation, sie führt in einen Polygonzug - letztendlich relativ ruckartige, abgehackte Bewegungen. Für reines Pick & Place, bei dem es nur auf die Reproduzierbarkeit der angefahrenen Punkte ankommt, ist die lineare Interpolation voll ausreichend. Ich habe mir bei der Entwicklung von RoBo-mac höhere Ziele gesetzt. In Teil 1 dieses Tutorials habe ich meine Erkenntnisse zur Berechnung "weicher" Bahnkurven zu Papier gebracht.

  • Erarbeitet habe ich diese Erkenntnisse im Wesentlichen mit der Excel® Studie Bézier-Cascade & Hermite.

Hier, in Teil 2 finden Sie einige "Bedien-Hinweise" zur Studie - und die Auflösung der Bézier-Überraschung!


Link zu Teil 1

Der Artikel besteht aus 2 Teilen weil er sonst zu groß würde (meint ein freundlicher Lektor im Hintergrund) !!!

Es empfiehlt sich zuvor / begleitend diesen Teil 1 des Tutorials durchzuarbeiten.


Bedien-Hinweise

Die Experimental-Studie untersucht die Bézier-Nachbildung eines Kreissegmentes sowie jeweils einen Spline aus 3 Bézier- bzw. 3 Hermite Segmenten. Diese sind "koppelbar" oder auch nicht.

  • Diese Studie ist kein professionelles Programm; sie dient lediglich dazu, mathematische Zusammenhänge und deren Einfluß und Abhängigkeit in Hinblick auf "Roboter-Mathematik" sowie mathematische Ansätze zur Interpolation einer Bahnkurve aus Stützstellen zu untersuchen. Es gibt eine Vielzahl von Möglichkeiten Kurven zu gestallten – nicht alle sind dokumentiert! Die Möglichkeit der freien Parameterwahl über Schieber und Werteingabe wird ergänzt durch mehrere Makrofamilien.


  • Im Sinne einer Studie sind die verwendeten Formeln nicht gegen Fehleingaben geschützt; verwenden Sie für Ihre Experimente eine Kopie.
  • Die Studie ist getestet, wird aber ohne jegliche Gewährleistung für irgendwelche Fehler "so wie sie ist" veröffentlicht.
  • Ansprüche jeglicher Art aus der Nutzung sind ausgeschlossen.


  • Um die Bézier bzw. Hermite "Mechanik" zu untersuchen werden in einem Excel® Sheet Kurven sowie ihre Ableitungen berechnet.
Die Anfasser werden jedoch nicht mit der Maus verschoben, sondern deren Position per Schieber reproduzierbar eingestellt – nicht als xy-Koordinate, sondern ähnlich einer Polarkoordinate nach Betrag und Winkel. Die Schieberwerte werden nach Betrag und Winkel angezeigt, alternativ sind die Werte direkt eingebbar. Der Anfasser kann also um P0 bzw. P3 kreisen ohne seine Länge zu ändern oder seine Länge ändern ohne den Winkel zu ändern. Im xy-Koordinaten System wäre dies schwierig.


  • Die Studie zeigt Algorithmen auf, Winkel und Betrag der Bézier-Anfasser automatisch zu berechnen, um gegebene Stützstellen (Teach-In Punkte) mit einem cascadierten Bézier-Spline zu verbinden.


Bézier

Die Studie macht deutlich:

Der Winkel des Anfassers bestimmt den Winkel, mit dem die Bézier-Kurve den Punkt P0 bzw. P3 trifft, die Länge des Anfassers bestimmt die Krümmung. Je länger der Anfasser, je länger schmiegt sich die Kurve an ihn an, je bauchiger wird sie – und die Länge bietet noch eine Überraschung!

Bézier-Kreissegment

Zur Theorie s. Teil 1 dieses Tutorials. Mit dem Makro "Winkel_tang…" wird für beispielhaft hinterlegte Winkel iterativ eine Kappa-Näherung errechnet. Im rechten Bildschirmbereich befindet sich eine "Kappa-Tabelle" für weitere Tangenten-Winkel in feinerer Auflösung, Bézier-cascadiert verwendet diese Tabelle.

Bézier-cascadiert:

Sie können aus 2 Makro-Familen kombinieren oder rein manuell untersuchen.

Makro "B_Copy_..."

Beispielhaft sind Koordinaten mehrerer unterschiedlicher Punkt-Konstellationen (Quadrat/Trapez/Winkel) für die 3 cascadierbaren Bezier-Kurven hinterlegt. Das Makro kopiert deren Koordinaten in den aktiven Bereich. Die Werte können hier manuell geändert werden, Änderungen werden sofort wirksam.

Makro "Auto_Spline_..."

Parallel hierzu läuft im Hintergrund ein Algorithmus, der für 5 unterschiedliche "Anfasser-Philosophien" mögliche Schieberwerte errechnet. Die Anfasser-Werte dieser 5 Philosophien werden unter den aktiven Schieberwerten angezeigt und per Makro "Auto_Spline_..." aktiviert.

  • Tangenten-Ellipse & Tangenten-Oval
die beiden äußeren Bézier-Kurven bilden jeweils eine Gerade – bestimmt durch deren Punkte P0/P3; die mittlere Bézier Kurve formt sich "kreisähnlich" und läuft in die Geraden tangential ein:
Liegen die beiden Tangenten-Endpunkte gleichweit vom theoretischen Schnittpunkt entfernt – sind also achsensymmetrisch – so werden die Punkte mit einer achsensymmetrisch Bézier-Kurve verbunden; beide Kurven sind deckungsgleich. Beträgt der Öffnungswinkel 90 Grad, so bildet sich bei beiden Varianten ein nahezu exaktes Kreisbogensegment.
Liegen die beiden Tangenten-Endpunkte bei einem Öffnungswinkel von 90 Grad in unterschiedlichem Abstand zum theoretischen Schnittpunkt, so wird an Stelle des Kreisbogens eine Ellipse bzw. ein Oval gebildet; das Ergebnis wird durch die Länge der Anfasser bestimmt (vgl. Bézier und der Kreisbogen).
Bei der Ellipse wird der Radius aus dem Schnittpunkt der beiden Tangentenlote im Knotenpunkt, beim Oval aus den beiden Schnittpunkten mit dem Mittelpunktslot der Sehne errechnet. Öffnungswinkel <> 90 Grad verzerren Ellipse bzw. Oval.


  • Tangenten-Flach/Spitzbogen
Diese im Ergebnis interessante Alternative geht – ähnlich dem Frottee Handtuch und Penicillin – auf einen Entwicklungsfehler, hier im Algorithmus der Ellipse zurück. Öffnungswinkel < 90 Grad werden überspitzt, Öffnungswinkel > 90 Grad abgeflacht verbunden. Bei symmetrischen 90 Gradwinkeln bildet sich ein Kreisbogen, bei unsymmetrischen eine Ellipse mit getauschten Anfassern.
  • Kurve 1&2
Die bisher als Kurve2 bezeichnete hat sich bei Internet-Recherchen als "Klassiker" erwiesen, unterschiedliche Algorithmen verfolgen den selben Rechenansatz, - vor diesem Hintergrund führt Sie ab Rel. 06 die Bezeichnung Kurve1.
  • Kurve1 (ehem. Kurve2)
Verbindet man einen Knoten-Punkt (P2.0 bzw. P3.0) mit seinen beiden Nachbarpunkten durch jeweils eine Gerade und deren Mittelpunkte mit einer Sehne, so bestimmt die Länge der Sehne die Gesamtlänge der beiden zu ihr parallel liegenden Anfasser. Diese Gesamtlänge der Sehne teilt sich je Anfasser im Längen-Verhältnis der beiden Geraden. Im Ergebnis ergibt dies "eher harte" Kurven mit meinst mehreren Wendepunkten, - der Algorithmus ist recht kompakt.
  • Kurve2 (ehem. Kurve1)
Die Knoten-Punkte P2.0/P3.0 bilden mit ihren beiden Nachbar Knoten-Punkten je ein Dreieck, das in einen äußeren Kreis eingeschlossen ist. Die Winkel der Anfasser stehen senkrecht auf der Geraden, die "ihren" Knoten-Punkt mit dem Mittelpunkt "ihres" Kreises verbindet. Im Diagramm sind diese Mittelpunkte markiert. Im Ergebnis ergibt dies "weiche, runde" Kurven mit wenigen Wendepunkten, - der Algorithmus ist deutlich aufwendiger:
Um parasitäre Schleifen zu vermeiden, wird aus der Beziehung der Winkellagen ermittelt, ob Knoten-Punkte im bzw. dem Uhrzeigersinn entgegen durchlaufen werden; die Anfasser-Winkel werden ggf. getauscht. An Stelle der bisher "komplex geschachtelten if / else Algorithmen" wird ab Rel. 06 der "Kreiswinkel" per Winkeltransformation auf Null gedreht; die Algorithmus-Struktur wird überschaubarer.
Die Algorithmen versuchen "schleifenfreie" Kurven zu bilden; dies gelingt nahezu 100%ig – aber nicht immer. Im Bereich der Winkel-Schieber befinden sich 2 gelb hinterlegte Felder, die standardmäßig den Wert "0" zeigen. Wird dieser Wert manuell auf "1" gesetzt, so wird für den zugehörigen Punkt der Winkel des Anfasserpaares getauscht; - eine Schleife wird entwirrt oder gezielt gesetzt! - Die "X-Kontur" wandelt sich z.B. vom "UFO" zur "Bretzel"!
  • Die Länge der Anfasser errechnete sich bis einschl. Release 03 aus dem Öffnungswinkel der Kreissegmente. Sie wird ab Rel. 04 aus der Winkel-Differenz von Anfasser und zugehöriger Sehne berechnet. Dieser Algorithmus ist im Grenzwinkelbereich um 0 bzw. 180 Grad wesentlich toleranter und "erwartungsgemäß".
  • "Bauch-Faktor"
Für die Kurven 1&2 ist im Bereich der "Anfasser-Berechnung" ein "Bauch-Faktor" wählbar.


Die Algorithmen der Kurven 1&2 versuchen "schleifenfreie" Kurven zu bilden; dies gelingt nahezu 100%ig – aber nicht immer. Im Bereich der Winkel-Schieber befinden sich jeweils 2 gelb hinterlegte Felder, die standardmäßig den Wert "0" zeigen. Wird dieser Wert manuell auf "1" gesetzt, so wird für den zugehörigen Punkt der Winkel des Anfasserpaares getauscht; - eine Schleife wird entwirrt oder gezielt gesetzt!

Das Makro "Auto_Spline_...." aktiviert die jeweils gewählten Anfasser Algorithmen, die errechneten Werte lassen sich mit den Schiebern manuell modifizieren.

Übung:
  • Wählen Sie für die Anfasser der Start- und Endpunkte (Kurven 1&2) manuell die Flucht- und Einlaufwinkel, mit denen der Punkt getroffen werden soll.
  • Kopieren Sie "Quadrat" und rufen Sie nacheinander "TangenteOval / Kurve1" auf. Verstellen Sie den Richtungssschieber A1.1 auf 90, den Schieber A3.2 auf 360 Grad. Ein ¾ Kreis erscheint.


Bézier Ableitungen

Die im Hauptdiagramm gezeigte Kurvenform wird in CNC- und Robotersystemen letztendlich aus mehreren Achsen, im einfachsten Fall der x- und y-Achse erzeugt. Die Studie zeigt zur weiteren Analyse daher das Weg-Zeit Diagramm nach x- und y Achse, die beiden anderen Diagramme die jeweilige Achsengeschwindigkeit und deren Beschleunigung/Verzögerung – also die erste und zweite Ableitung.

Die Ableitungen werden nicht als Differentialquotient, sondern als Differenzenquotient ermittelt. Dieser vereinfachte Ansatz wird möglich, da die Kurve über die Polynome parametriert für t = 0 bis t = 1 errechnet wird; diese t-Parameter können als Zeitraster aufgefaßt werden. Das Zeitraster ist konstant, es muß daher nicht einmal dividiert werden: Die Differenz der Nachbarn ergibt bereits die Ableitung nach Delta t! Für t = 1 ist die Differenzbildung etwas "tricky", um senkrechte Sprünge im Diagram besser darzustellen.

Weg-Zeit Diagramm der xy-Achsen

Betrachten wir den soeben erstellten ¾ Kreis: Klassisch wäre er auf die Überlagerung von Sinus und Cosinus zurückzuführen. Die Ableitung des sin bringt cos, die Ableitung des cos bringt -sin. Nicht aber hier!

Das Weg-Zeit Diagramm ist zwar sin/cos-ähnlich; die erste Ableitung zeigt jedoch bereits, daß die Geschwindigkeit alles andere als sinus-förmig zu- bzw. abnimmt, die zweite Ableitung offenbart die ganze Wahrheit: Die Ableitung einer Parabel führt letztendlich in eine Gerade!

Während bei einer kontinuierlich durchfahrenen Kreisbahn die Winkelgeschwindigkeit konstant ist, verändert sich die Bahn-Geschwindigkeit zwischen P0/P3. Sie liegt bei einer Standardabweichung von knapp 2% in Start- und End-Punkt der 90 Grad Seg-mente etwa 7% über der Geschwindigkeit im mittleren Kurvenbereich.


Die Bézier Überraschung

Die Länge der Anfasser beeinflußt also nicht nur die Form der Kurve, sondern unter CNC und Roboter Gesichtspunkten auch die Bahn-Geschwindigkeit, mit der die Kurve durchfahren wird!

  • Werden beide Anfasser eines Knotenpunktes gleich lang, so werden die Geschwindigkeiten mit der der Knotenpunkt erreicht und wieder verlassen wird ebenfalls gleich, die Änderung der Beschleunigung / Verzögerung, der "Ruck" wird minimiert.
  • Auffällig ist ebenfalls, daß als Bezier Kurve erzeugte Geraden im Weg-Zeit Diagramm nicht unbedingt als Gerade erscheinen. Verändern Sie die Länge der Anfasser für die Geraden: Die Gerade selbst verändert sich hierbei nicht, wohl aber Ihre Weg-Zeit-Funktion, sie verläuft bogenförmig, manchmal als S-Bogen – also mit unterschiedlicher Geschwindigkeit. Dieser Bogen formt sich zur Geraden, wenn die Längenwerte beider Anfasser zu exakt 1/3 des Abstandes von P0/P3 werden. Die Bahn-Geschwindigkeit ist dann kontinuierlich.
  • Werden die Anfasser zu 0, so werden P0/P3 mit 10 % der max-Geschwindigkeit des mittleren Kurvenbereiches angefahren,
  • liegen die Anfasser auf den Gegenpunkten so fällt die Geschwindigkeit in der Mitte der Geraden auf nahezu 0, die Geschwindigkeit im Start und Endpunkt steigt zum Ausgleich extrem.


Bézier und Hermite

Aufbau und Bedienung der Hermite-Studie ähneln der beschriebenen Bézier-Studie

  • In der Studie kann zum Kurvenvergleich zwischen beiden Algorithmen umgeschaltet werden; lediglich die Anfasser unterscheiden sich!
  • Der Vollständigkeit halber besteht die Möglichkeit eine "echte" Bézier-Kurve aus denselben Kontrollpunkten zu bilden. In allen 3 Analysen bleiben die Schieberwerte konstant, die Grafik zeigt die transformierten Anfasser entsprechend ihrer Wirkung.


Hinweis

  • Die Schieber können Werte erzeugen, deren Koordinaten außerhalb des Diagramms liegen. Ein Excel®-Diagramm paßt sich standardmäßig den max-Koordinaten an. Diese Funktion ist abgeschaltet, da eine permanente Maßstab Veränderung ausgesprochen störend ist. Mit den Buttons "AutoScala/AutoScala linear" wird der Maßstab gezielt aktualisiert.

Weblinks

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

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

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


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


NLB


LiFePO4 Speicher Test