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

K
K
 
(74 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Teil 1 ist fast fertig, (diesen) Teil 2 formatiere ich jetzt!!!'''
 
 
...............
 
 
 
Hier ist ein Multi-Achs-Controller zur interpolierenden Bahn-Steuerung von (z.Z.) bis zu 8-Achsen entstanden, ich habe ihn RoBo-mac genannt.  
 
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.
 
Vom Roboternetz habe ich vieles gelernt, das in die Entwicklung eingeflossen ist; mit diesem Artikel möchte ich mich revanchieren.
   
+
 
 +
 
 +
Neu per
 +
07.02.2013
 +
* Auf dem Server Release 0.7
 +
:- Bernsteinpolynom in 1. und 2. Ableitung
 +
:- neu durchstrukturierte Algorithmen Kurve 1 & 2
 +
:- Kurve 3 approximiert Kreise
 +
 
 +
 
  
 
=Vorwort Teil 2=
 
=Vorwort Teil 2=
Zeile 27: Zeile 32:
  
 
=Bedien-Hinweise=
 
=Bedien-Hinweise=
*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 ei-ner 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.  
+
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.  
 
*Im Sinne einer Studie sind die verwendeten Formeln nicht gegen Fehleingaben geschützt; verwenden Sie für Ihre Experimente eine Kopie.  
Zeile 33: Zeile 40:
 
:*Ansprüche jeglicher Art aus der Nutzung sind ausgeschlossen.  
 
:*Ansprüche jeglicher Art aus der Nutzung sind ausgeschlossen.  
  
*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. Die eingestellten Schieberwerte werden nach Winkel und Betrag angezeigt.
+
 
 +
*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 ermöglicht es so, manuell Kurven zu ermitteln, deren 1. und 2. Ableitung stetig sind – sie zeigt jedoch auch, daß sich hierbei die Kurvenform ändert.
 +
 
 +
*Die Studie zeigt ergänzend 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=  
 
=Bézier=  
Hier zunächst die Bézier Betrachtungen.
+
'''Die Studie macht deutlich''':
Um die Bézier 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 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!
+
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==
 
==Bézier-Kreissegment==
 
 
Zur Theorie s. Teil 1 dieses Tutorials.  
 
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 ver-wendet diese Tabelle.  
+
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:==
 
==Bézier-cascadiert:==
 
 
Sie können aus 2 Makro-Familen kombinieren oder rein manuell untersuchen.  
 
Sie können aus 2 Makro-Familen kombinieren oder rein manuell untersuchen.  
  
===Makro "Copy_..."===
+
===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.  
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.  
+
  
 
===Makro "Auto_Spline_..."===
 
===Makro "Auto_Spline_..."===
+
Parallel hierzu läuft im Hintergrund ein Algorithmus, der für 6 unterschiedliche "Anfasser-Philosophien" mögliche Schieberwerte errechnet. Die Anfasser-Werte dieser 6 Philosophien werden unter den aktiven Schieberwerten angezeigt und per Makro "Auto_Spline_..." aktiviert; - die aktiven Werte sind per Schieber modifizierbar.
Parallel hierzu läuft im Hintergrund ein Algorithmus, der für 4 unterschiedliche "Anfasser-Philosophien" mögliche Schieberwerte errechnet. Die Anfasser-Werte dieser 4 Philosophien werden unter den aktiven Schieberwerten angezeigt und per Makro "Auto_Spline_..." aktiviert.
+
  
 
*Tangenten-Ellipse & Tangenten-Oval  
 
*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:  
+
: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:  
  
Beträgt der Öffnungswinkel 90 Grad und liegen die beiden Tangenten-Endpunkte gleichweit vom theoretischen Schnittpunkt entfernt, so bildet sich bei beiden Varianten ein deckungsgleiches, nahezu exaktes Kreisbogensegment.  
+
: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 Geraden unsymmetrisch, so wird an Stelle des Kreisbogens eine Ellipse bzw. ein Oval gebildet; das Ergebnis wird durch die Länge der Anfasser be-stimmt (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.  
+
: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).  
  
*Kurve1
+
: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.  
Die Punkte P0 und P3 jedes Anfassers bilden mit ihren beiden Nachbarpunkten je ein Dreieck, das in einen äußeren Kreis eingeschlossen ist. Der Winkel des Anfassers steht senkrecht auf der Geraden, die "seinen" Punkt mit dem Mittelpunkt "seines" Kreises verbindet. Im Diagramm sind diese Mittelpunkte markiert. Die Länge der Anfasser errechnet sich aus dem Öffnungswinkel der Kreissegmente.  
+
  
*Kurve2
+
*Tangenten-Flach/Spitzbogen
Für jeden Punkt P0/P3 werden die beiden Nachbarpunkte jeweils mit einer Sehne verbunden. Der Winkel des Anfassers entspricht dem der Sehne im Koordinaten-system, er liegt also der Sehne parallel. Die Länge errechnet sich (recht komplex) aus einem Netzwerk der gewichteten Sehnen.  
+
: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.  
  
*Für die Kurven 1&2 ist im Bereich der "Anfasser-Berechnung" ein "Bauch-Faktor" wählbar, der per Makro "Auto_Spline_...." aktiviert wird.  
+
*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. Die Länge der Anfasser berechnet sich aus der Winkel-Differenz von Anfasser und zugehöriger Sehne. ''Im Ergebnis ergibt dies "weiche, runde" Kurven mit wenigen Wendepunkten,'' - der Algorithmus ist deutlich aufwendiger.
 +
 
 +
*Kurve3(Ov)
 +
:berechnet die Winkellage der Anfasser analog zu Kurve2, die Länge aus dem Öffnungswinkel der Kreissegmente. ''Im Ergebnis ergibt dies "ovale" Kurven, '' - liegen die Mittelpunkte aufeinander, so formt sich ein approximierter Kreis.
 +
 
 +
 
 +
: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" werden ab Rel. 06 die Knotenpunkte per Winkel-Transformation jeweils auf "Winkellage Null" gedreht; die Algorithmen-Struktur wird so überschaubarer.
 +
 
 +
:Im Bereich der Winkel-Schieber befinden sich ergänzend 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 gezielt gesetzt! ''- Die "X-Kontur" wandelt sich z.B. vom "UFO" zur "Bretzel"!''
 +
 
 +
{{FarbigerRahmen|
 +
* Ich habe einige schlaflose Nächte und deutlich mehr Zeit in die Entwicklung der "Anfasser"- Algorithmen, insbesondere der Erkennung der Drehrichtung (CW / CCW) investiert als ursprünglich erwartet. Das hier vorgestellte Studien-Ergebnis ist deutlich einfacher als die mehrfach verworfenen Entwicklungsschritte; es basiert mathematisch betrachtet auf einer "nicht bewiesenen Vermutung", die nach bisherigen Erkenntnissen stabil arbeitet.
 +
 
 +
* Sollten Sie eine Kombination der Knotenpunkt-Koordinaten finden, die wider Erwarten in eine Schleife führen, so wäre ich für eine Rückmeldung dankbar. Die "gelben Felder", Relikt aus den Vorentwicklungen ermöglichen es, parasitäre Schleifen zu entwirren. * [http://www.cnc-mac.de/html/impressum.html NLB]
 +
}}
 +
 
 +
 
 +
*"Bauch-Faktor"
 +
:Für die Kurven 1 bis 3  ist im Bereich der "Anfasser-Berechnung" ein "Bauch-Faktor" wählbar.
 +
 
 +
 +
 
 +
==Weg-Zeit Diagramm der xy-Achsen ==
 +
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 1. Ableitung von Bézier-Kurven ist im Knotenpunkt stetig, wenn
 +
:- die Anfasser Winkel um (pi)  bzw. 180° gegeneinander versetzt und
 +
:- beide Anfasser gleich lang sind.
 +
 
 +
:Die Länge der beiden beteiligten Kurven bzw. der Abstand ihrer Koordinaten-Punkte P0/P3
 +
:- ist ohne Einfluß auf die Stetigkeit der 1. Ableitung.
 +
:- ist von erheblichem Einfluß auf die Stetigkeit der 2. Ableitung.
 +
 
 +
*Die 2. Ableitung von Bézier-Kurven ist nur selten stetig; dies insbesondere, falls ein Wendepunkt des Weg-Zeit Diagramms in den Knotenpunkt fällt!
  
Das Makro "Auto_Spline_...." überträgt lediglich die errechneten Schieberwerte in den "Parameter"-Bereich; ggf. werden Schlingen & Schleifen durch 180 Grad Kompensation der Anfasser entwirrt. Es wird so möglich, die errechneten Werte per MausClick mit den Schiebern manuell zu modifizieren.
 
  
 
Übung:
 
Ü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.  
 
*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.  
+
*Kopieren Sie "Quadrat" und rufen Sie Kurve3(Ov) auf. Ein ¾ Kreis erscheint.  
  
 +
:Betrachten wir die Ableitungen des ¾ Bézier-Kreises: 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!
  
==Bézier Ableitungen==
+
: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!
  
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 de-ren Beschleunigung/Verzögerung – also die erste und zweite Ableitung.
 
  
Die Ableitungen werden nicht als Differentialquotient, sondern als Differenzenquo-tient 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.
+
Übung:
 +
*Schauen Sie sich zunächst nochmals die Ableitungen des ¾ Kreises an,  
 +
:- die 1. Ableitung zeigt Knicke,  
 +
:- die 2. Ableitung (senkrechte) Sprünge; sie ist "fast stetig".
 +
*Wählen Sie sodann für alle Anfasser den Längen-Wert  "5" !
 +
*Die erste Ableitung ist nun ebenfalls sin-ähnlich,  
 +
*die Geraden der 2. Ableitung zeigen keine Sprünge,
 +
*aber der Kreis ist kein Kreis mehr!
  
==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=
 +
{{FarbigerRahmen|
 +
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!
  
 +
Während bei einer kontinuierlich durchfahrenen Kreisbahn die Winkelgeschwindigkeit konstant ist, verändert sich die Bahn-Geschwindigkeit zwischen P0/P3.
 +
*Für ¼ Kreissegmente liegt die Geschwindigkeit im Start- bzw. Ziel-Punkt etwa 8% über der des mittleren Kurvenbereichs (Standardabweichung ca. 2%). Für einen aus 120 Grad Segmenten approximierten Kreis verdoppeln sich diese Werte.
 +
 +
*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.
 +
 +
*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. Die Intensität des Rucks (2. bzw. 3. Ableitung) wird aus dem Verhältnis der Anfasserlänge zur Kurvenlänge bestimmt. 1/3 Segment-Bahnlänge ist ein guter Ausgangswert, den Ruck experimentell zu minimieren.
 +
}}
 +
 +
 +
=Bézier und Hermite=
 +
 +
Die Hermite-Mathematik ist der von Bézier ähnlich. 4 Anfasser werden mit 4 Polynomen parametrisch für 0<=t<=1 multipliziert. Dem in der Studie verwendeten Algorithmus beider Kurven (Bézier / Hermite) liegt dementsprechend der gleiche Matritzen-Ansatz zu Grunde; Excel® stellt hierfür die mächtige Formel "Summenprodukt" zur Verfügung. Es liegt nun nahe, einfach die Matrix des Bernstein-Polynoms gegen die Matrix des Hermite-Polynoms zu tauschen. Nur, so einfach ist das nicht!
 +
 +
*Das Bernstein-Polynom addiert für alle Parametrierungen 0<=t<=1 zu jeweils 1;
 +
*beim Hermite-Polynom gilt dies nur für die Parametrierungen t = 0 / t = 0,5 / t = 1.
 +
:Die Summe steigt in der Mitte der ersten Hälfte über 1 sie fällt in der 2. Hälfte unter 1. Dies führt zu einer Verzerrung der Kurvenform in Abhängigkeit ihrer xy-Koordinaten: Was nahe dem Koordinaten Nullpunkt noch glatt ist, wirft Schleifen je weiter es sich vom Nullpunkt entfernt; verantwortlich hierfür sind die Matritzenprodukte aus den Anfasserkoordinaten.
 +
 +
:Die Lösung:
 +
::Werden die Anfasserkoordinaten "1 zu 1" aus Bézier übernommen, so ergibt sich der beschriebene Fehler. Bei Hermite bezieht sich der Koordinatenwert der Anfasser nicht (wie bei Bézier) auf den Koordinaten-Nullpunkt, sondern ihren Offset zum eignen Tangentenpunkt. Von der Absolut-Koordinate des Anfassers ist also die Koordinate seines Tangentenpunktes (P0 bzw. P3) abzuziehen. Mit dieser Modifikation der Kontrollpunkte errechnet sich die Kurve wie zu erwarten aus der Matrizen-Multiplikation von Hermite-Polynom & Hermite-Kontrollpunkten.
 +
 +
{{FarbigerRahmen|
 +
Aus gleichen Koordinaten erzeugen Bézier und Hermite völlig unterschiedliche Kurven, da ist es gewiß erstaunlich, daß mit Bernstein eine zu Hermite deckungsgleiche Kurve gebildet werden kann.
 +
Die Endpunkte der Kurve sind identisch, die Anfasser stehen in einer schlichten Beziehung:
 +
*Um Hermite-Kurven mit Bézier zu erzeugen verkürzen sich die Anfasser auf 1/3. Für den Start-Anfasser wird dieses Drittel zum Start-Punkt addiert, für den Ziel-Anfasser vom Ziel-Punkt subtrahiert
 +
 +
:''- wie man in einigen Veröffentlichungen liest''.
 +
 +
:*Man erhält den bereits bekannten Fehler deckungsgleich: Verzerrung der Kurvenform in Abhängigkeit ihrer xy-Koordinaten.
 +
:*Auch hier gilt: Das Drittel bezieht sich nicht auf den XY-Absolutwert der Anfasserkoordinaten, sondern ihre relative Position zum eigenen Tangentenpunkt.
 +
}}
 +
 +
 +
'''Wesentliche Erkenntnis:'''
 +
Bezier und Hermite können gegenseitig ineinander abgebildet werden. Vorteil: Die Bezier-Anfasser sind kürzer, die Ziel-Anfasser in ihrer Wirkung besser vorhersehbar.
 +
 +
'''Hermite-Variante'''
 +
Der Vollständigkeit halber – im Moment ohne erkennbaren Vorteil – hier ein Lösungsansatz für eine recht Hermite-ähnliche Kurve:
 +
 +
*Der weiter oben beschriebene Fehler führte in eine Verzerrung der Kurvenform in Abhängigkeit ihrer xy-Koordinaten. Dividiert man die so erhaltenen, fehlerhaften xy-Koordinaten durch den parametrierten Summenwert aller 4 Hermite-Polynome für 0<=t<=1, so kompensiert dies die Verzerrung. Interessanter Weise gilt dies für die Berechnungen mit Bernstein- und Hermite-Polynom gleichermaßen, beide Kurven sind deckungsgleich.
 +
 +
*Qualitativ ähneln diese Kurven den "echten", sind hiermit jedoch nicht deckungsgleich. Erhebliche Unterschiede zeigt ein Vergleich der Ableitungen.
 +
 +
 +
==Hermite-Studie==
 +
Aufbau und Bedienung ähneln der beschriebenen Bézier-Studie
 +
 +
*Das Makro "H_Copy_..." kopiert beispielhafte Kurven-Koordinaten.
 
   
 
   
=Die Bézier Überraschung=
+
*In der Studie kann zum Kurvenvergleich zwischen den Algorithmen Bézier und Hermite umgeschaltet werden;
 +
:- wir erinnern uns: Bézier und Hermite können gegenseitig ineinander abgebildet werden, die Kurven sind also deckungsgleich - lediglich die Anfasser unterscheiden sich!
  
•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!
+
*Der Vollständigkeit halber besteht die Möglichkeit eine "echte" Bézier-Kurve aus denselben Kontrollpunkten zu bilden.
  
Werden beide Anfasser eines Knotenpunktes gleich lang, so werden die Ge-schwindigkeiten mit der der Knotenpunkt erreicht und wieder verlassen wird ebenfalls gleich, die Änderung der Beschleunigung / Verzögerung, der "Ruck" wird minimiert.
+
*In allen 3 Analysen bleiben die Schieberwerte konstant, die Grafik zeigt die transformierten Anfasser entsprechend ihrer Wirkung.  
  
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.
+
=ANHANG =
  
 +
==Approximierte, zusammengesetzte Kurven ==
 +
Wir hatten eingangs die Forderung, nach einer "glatten Kurve" mit der Definition:
 +
*Glatte Kurve bedeutet im mathematischen Sinne, daß die Funktionswerte beider Teilkurven im Knotenpunkt übereinstimmen und die Kurve zweimal stetig differenzierbar sein soll(te);
 +
:hier einige Begriffserläuterungen:
  
=Bezier und Hermite=
 
  
Aufbau und Bedienung der Hermite-Studie ähneln der beschriebenen Bézier Studie
+
'''Stetigkeit '''
* In der Studie kann zum Kurvenvergleich zwischen beiden Algorithmen umge-schaltet werden; lediglich die Anfasser unterscheiden sich!
+
*Der Graph einer stetigen Funktion hat keine Sprungstellen.
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.  
+
:Kurven werden als stetig erachtet, wenn sich ihr Funktions-Wert (y-Wert) bei kleinen Änderungen des Argument-Wertes (x-Wert) ebenfalls um nur kleine Werte ändert; eine stetige Funktion darf Knickstellen aufweisen.
 +
:Eine ''Sägezahnkurve'' gilt somit per Definition als ''stetig''! Gut nachvollziehbar, wenn man sie als Fourier-Reihe einer mit ihren Harmonischen überlagerten sin-Kurve betrachtet; sehr anschaulich: https://de.wikipedia.org/wiki/Kippschwingung.
 +
 
 +
*Führt eine kleine Änderung des x-Wertes in eine große (sprunghafte) Änderung des Funktionswertes so ist die Funktion "''unstetig''".
 +
 
 +
 
 +
'''Stetig differenzierbar '''
 +
*Jede Ableitung einer Funktion kann als (neue) eigenständige Funktion aufgefaßt werden.
 +
 
 +
*Eine reelle Funktion ist an beliebiger Stelle X dann ''stetig'' differenzierbar,
 +
:wenn ihre Ableitungsfunktion an dieser Stelle X ''stetig'' ist. Die Sägezahnkurve gilt als "''stückweise stetig''" differenzierbar.
 +
 
 +
 
 +
'''Ableitung '''
 +
*Eine Ableitung entsteht aus dem Differenzieren einer Funktion.
 +
 
 +
*Ist die Ableitung im Knotenpunkt stetig,
 +
:so treffen sich beide Ableitungskurven in einem gemeinsamen Ziel/Start-Punkt;
 +
 
 +
:Ableitungskurven werden als stetig erachtet, selbst wenn ein- und auslaufende Kurve im gemeinsamen Ziel/Start-Punkt keine gemeinsame Tangente, also einen Knick aufweisen.
 +
 
 +
 
 +
'''1. und 2. Ableitung'''
 +
*Die 2. Ableitung ist die Ableitung der 1. Ableitung.
 +
:Weist die 1. Ableitung einen Knick auf, so ist sie selbst zwar noch stetig, jedoch nicht mehr stetig differenzierbar, die 2. Ableitung führt dementsprechend in eine Sprungfunktion.
 +
 
 +
*Fast stetig sind Ableitungen,
 +
:die nur einen (im Verhältnis zur Ableitungsamplitude) geringen Sprung aufweisen.
 +
 
 +
 
 +
'''Die 1. Ableitung '''
 +
*gekennzeichnet durch: F-Strich f '
 +
:gibt die Änderung des Funktionswertes an, d.h. die Steigung des Funktionsgraphen an einer bestimmten Stelle (Knotenpunkt).
 +
 
 +
 
 +
'''Die 2. Ableitung '''
 +
*gekennzeichnet durch F-Doppel-Strich  f ' '
 +
:gibt die Änderung der Steigung an. Sie gibt also Auskunft über die Krümmung des Graphen.
 +
 
 +
*Zur 2. Ableitung eine tragische Berühmtheit: Die Todesspirale, Looping-Attraktion großer Achterbahnen zum Anfang des vorigen Jahrhunderts. Eine schräg abfallende Gerade geht in einen tangentialen Kreis mit Überschlag über und steigt danach in einer schrägen Gerade wieder an. Obwohl Gerade und Kreis tangential ineinander übergehen, kam es zu Genickbrüchen!
 +
 
 +
:Die Geschwindigkeit wird durch die Steigung des Graphen beschrieben, die Beschleunigung durch deren Änderung (2. Ableitung) und diese ist bei Übergang von Gerade in Kreis schlagartig - will heißen unendlich!
 +
 
 +
:Moderne Achterbahnen-Konstruktionen beachten dies und werden als Spline berechnet.
 +
 
 +
 
 +
Unter CNC- und Roboter- Gesichtspunkten sind sowohl die Funktion (also der Graf der Kurve) wie beide Ableitungen zu beurteilen.
 +
 
 +
 
 +
==Ableitungsalgorithmen ==
 +
Die Studie, Release 07 verfolgt 2 unterschiedliche Algorithmen:
 +
*Für Bézier wird die Ableitung aus dem Differentialquotienten gebildet, die 4 Bernstein-Grafen werden hierzu für die 1. und 2. Ableitung jeweils getrennt differenziert, dies ist fraglos der mathematisch einwandfreie Ansatz.
 +
 
 +
*Für Hermite werden die Ableitungen nicht als Differentialquotient, sondern als Differenzenquotient ermittelt. Der Vorteil dieses Verfahrens liegt darin, von der abzuleitenden Funktion unabhängig zu sein, so daß es für die Analyse-Umschaltung  ''Hermite vs. Bézier'' gleichermaßen einsetzbar ist. Dieser Universal-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! Die Grafik der Ableitungen ist etwas "tricky": Naturgemäß ist die Anzahl der Differenzen um 1 kleiner als die Anzahl ihrer Basiswerte; für "t = 0" und "t = 1" werden die Werte extrapoliert.  
 +
 
 +
Beide Verfahren führen zu "nahezu auf den Punkt" übereinstimmenden Ergebnissen, 
 +
beide zeigen bei gekoppelten Kurven ggf. vorhandene senkrechte Sprünge (d.h. Un-Stetigkeit) der Ableitungen. Nicht gekoppelte Kurven unterdrücken diese Sprünge.
 +
 
  
  
 
{{FarbigerRahmen|
 
{{FarbigerRahmen|
 
Hinweis
 
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 ausge-sprochen störend ist. Mit den Buttons "AutoScala/AutoScala linear" wird der Maßstab gezielt aktualisiert.
+
*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.
 
}}
 
}}
 +
 +
 +
=Inverse Kinematik=
 +
Die hier besprochene Mathematik beschreibt eine direkte (schritt-lineare) XYZ-Ansteuerung von Steppern und Servos. Soll das Werkzeug jedoch nicht linear im XYZ Koordinatensystem (CNC-Fräse), sondern von einem Roboterarm geführt werden, so wird dies ein ebenso spannendes Thema:
 +
 +
:*[[Inverse Kinematik 1 – Theorie (Tutorial)]]
 +
:*[[Inverse Kinematik 2 – Praxis ]]
 +
  
 
=Weblinks=
 
=Weblinks=

Aktuelle Version vom 26. Januar 2016, 19:32 Uhr

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 07.02.2013

  • Auf dem Server Release 0.7
- Bernsteinpolynom in 1. und 2. Ableitung
- neu durchstrukturierte Algorithmen Kurve 1 & 2
- Kurve 3 approximiert Kreise


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 ermöglicht es so, manuell Kurven zu ermitteln, deren 1. und 2. Ableitung stetig sind – sie zeigt jedoch auch, daß sich hierbei die Kurvenform ändert.
  • Die Studie zeigt ergänzend 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 6 unterschiedliche "Anfasser-Philosophien" mögliche Schieberwerte errechnet. Die Anfasser-Werte dieser 6 Philosophien werden unter den aktiven Schieberwerten angezeigt und per Makro "Auto_Spline_..." aktiviert; - die aktiven Werte sind per Schieber modifizierbar.

  • 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. Die Länge der Anfasser berechnet sich aus der Winkel-Differenz von Anfasser und zugehöriger Sehne. Im Ergebnis ergibt dies "weiche, runde" Kurven mit wenigen Wendepunkten, - der Algorithmus ist deutlich aufwendiger.
  • Kurve3(Ov)
berechnet die Winkellage der Anfasser analog zu Kurve2, die Länge aus dem Öffnungswinkel der Kreissegmente. Im Ergebnis ergibt dies "ovale" Kurven, - liegen die Mittelpunkte aufeinander, so formt sich ein approximierter Kreis.


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" werden ab Rel. 06 die Knotenpunkte per Winkel-Transformation jeweils auf "Winkellage Null" gedreht; die Algorithmen-Struktur wird so überschaubarer.
Im Bereich der Winkel-Schieber befinden sich ergänzend 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 gezielt gesetzt! - Die "X-Kontur" wandelt sich z.B. vom "UFO" zur "Bretzel"!
  • Ich habe einige schlaflose Nächte und deutlich mehr Zeit in die Entwicklung der "Anfasser"- Algorithmen, insbesondere der Erkennung der Drehrichtung (CW / CCW) investiert als ursprünglich erwartet. Das hier vorgestellte Studien-Ergebnis ist deutlich einfacher als die mehrfach verworfenen Entwicklungsschritte; es basiert mathematisch betrachtet auf einer "nicht bewiesenen Vermutung", die nach bisherigen Erkenntnissen stabil arbeitet.
  • Sollten Sie eine Kombination der Knotenpunkt-Koordinaten finden, die wider Erwarten in eine Schleife führen, so wäre ich für eine Rückmeldung dankbar. Die "gelben Felder", Relikt aus den Vorentwicklungen ermöglichen es, parasitäre Schleifen zu entwirren. * NLB


  • "Bauch-Faktor"
Für die Kurven 1 bis 3 ist im Bereich der "Anfasser-Berechnung" ein "Bauch-Faktor" wählbar.


Weg-Zeit Diagramm der xy-Achsen

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 1. Ableitung von Bézier-Kurven ist im Knotenpunkt stetig, wenn
- die Anfasser Winkel um (pi) bzw. 180° gegeneinander versetzt und
- beide Anfasser gleich lang sind.
Die Länge der beiden beteiligten Kurven bzw. der Abstand ihrer Koordinaten-Punkte P0/P3
- ist ohne Einfluß auf die Stetigkeit der 1. Ableitung.
- ist von erheblichem Einfluß auf die Stetigkeit der 2. Ableitung.
  • Die 2. Ableitung von Bézier-Kurven ist nur selten stetig; dies insbesondere, falls ein Wendepunkt des Weg-Zeit Diagramms in den Knotenpunkt fällt!


Ü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 Kurve3(Ov) auf. Ein ¾ Kreis erscheint.
Betrachten wir die Ableitungen des ¾ Bézier-Kreises: 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!


Übung:

  • Schauen Sie sich zunächst nochmals die Ableitungen des ¾ Kreises an,
- die 1. Ableitung zeigt Knicke,
- die 2. Ableitung (senkrechte) Sprünge; sie ist "fast stetig".
  • Wählen Sie sodann für alle Anfasser den Längen-Wert "5" !
  • Die erste Ableitung ist nun ebenfalls sin-ähnlich,
  • die Geraden der 2. Ableitung zeigen keine Sprünge,
  • aber der Kreis ist kein Kreis mehr!


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!

Während bei einer kontinuierlich durchfahrenen Kreisbahn die Winkelgeschwindigkeit konstant ist, verändert sich die Bahn-Geschwindigkeit zwischen P0/P3.

  • Für ¼ Kreissegmente liegt die Geschwindigkeit im Start- bzw. Ziel-Punkt etwa 8% über der des mittleren Kurvenbereichs (Standardabweichung ca. 2%). Für einen aus 120 Grad Segmenten approximierten Kreis verdoppeln sich diese Werte.
  • 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.
  • 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. Die Intensität des Rucks (2. bzw. 3. Ableitung) wird aus dem Verhältnis der Anfasserlänge zur Kurvenlänge bestimmt. 1/3 Segment-Bahnlänge ist ein guter Ausgangswert, den Ruck experimentell zu minimieren.


Bézier und Hermite

Die Hermite-Mathematik ist der von Bézier ähnlich. 4 Anfasser werden mit 4 Polynomen parametrisch für 0<=t<=1 multipliziert. Dem in der Studie verwendeten Algorithmus beider Kurven (Bézier / Hermite) liegt dementsprechend der gleiche Matritzen-Ansatz zu Grunde; Excel® stellt hierfür die mächtige Formel "Summenprodukt" zur Verfügung. Es liegt nun nahe, einfach die Matrix des Bernstein-Polynoms gegen die Matrix des Hermite-Polynoms zu tauschen. Nur, so einfach ist das nicht!

  • Das Bernstein-Polynom addiert für alle Parametrierungen 0<=t<=1 zu jeweils 1;
  • beim Hermite-Polynom gilt dies nur für die Parametrierungen t = 0 / t = 0,5 / t = 1.
Die Summe steigt in der Mitte der ersten Hälfte über 1 sie fällt in der 2. Hälfte unter 1. Dies führt zu einer Verzerrung der Kurvenform in Abhängigkeit ihrer xy-Koordinaten: Was nahe dem Koordinaten Nullpunkt noch glatt ist, wirft Schleifen je weiter es sich vom Nullpunkt entfernt; verantwortlich hierfür sind die Matritzenprodukte aus den Anfasserkoordinaten.
Die Lösung:
Werden die Anfasserkoordinaten "1 zu 1" aus Bézier übernommen, so ergibt sich der beschriebene Fehler. Bei Hermite bezieht sich der Koordinatenwert der Anfasser nicht (wie bei Bézier) auf den Koordinaten-Nullpunkt, sondern ihren Offset zum eignen Tangentenpunkt. Von der Absolut-Koordinate des Anfassers ist also die Koordinate seines Tangentenpunktes (P0 bzw. P3) abzuziehen. Mit dieser Modifikation der Kontrollpunkte errechnet sich die Kurve wie zu erwarten aus der Matrizen-Multiplikation von Hermite-Polynom & Hermite-Kontrollpunkten.

Aus gleichen Koordinaten erzeugen Bézier und Hermite völlig unterschiedliche Kurven, da ist es gewiß erstaunlich, daß mit Bernstein eine zu Hermite deckungsgleiche Kurve gebildet werden kann. Die Endpunkte der Kurve sind identisch, die Anfasser stehen in einer schlichten Beziehung:

  • Um Hermite-Kurven mit Bézier zu erzeugen verkürzen sich die Anfasser auf 1/3. Für den Start-Anfasser wird dieses Drittel zum Start-Punkt addiert, für den Ziel-Anfasser vom Ziel-Punkt subtrahiert
- wie man in einigen Veröffentlichungen liest.
  • Man erhält den bereits bekannten Fehler deckungsgleich: Verzerrung der Kurvenform in Abhängigkeit ihrer xy-Koordinaten.
  • Auch hier gilt: Das Drittel bezieht sich nicht auf den XY-Absolutwert der Anfasserkoordinaten, sondern ihre relative Position zum eigenen Tangentenpunkt.


Wesentliche Erkenntnis: Bezier und Hermite können gegenseitig ineinander abgebildet werden. Vorteil: Die Bezier-Anfasser sind kürzer, die Ziel-Anfasser in ihrer Wirkung besser vorhersehbar.

Hermite-Variante Der Vollständigkeit halber – im Moment ohne erkennbaren Vorteil – hier ein Lösungsansatz für eine recht Hermite-ähnliche Kurve:

  • Der weiter oben beschriebene Fehler führte in eine Verzerrung der Kurvenform in Abhängigkeit ihrer xy-Koordinaten. Dividiert man die so erhaltenen, fehlerhaften xy-Koordinaten durch den parametrierten Summenwert aller 4 Hermite-Polynome für 0<=t<=1, so kompensiert dies die Verzerrung. Interessanter Weise gilt dies für die Berechnungen mit Bernstein- und Hermite-Polynom gleichermaßen, beide Kurven sind deckungsgleich.
  • Qualitativ ähneln diese Kurven den "echten", sind hiermit jedoch nicht deckungsgleich. Erhebliche Unterschiede zeigt ein Vergleich der Ableitungen.


Hermite-Studie

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

  • Das Makro "H_Copy_..." kopiert beispielhafte Kurven-Koordinaten.
  • In der Studie kann zum Kurvenvergleich zwischen den Algorithmen Bézier und Hermite umgeschaltet werden;
- wir erinnern uns: Bézier und Hermite können gegenseitig ineinander abgebildet werden, die Kurven sind also deckungsgleich - 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.


ANHANG

Approximierte, zusammengesetzte Kurven

Wir hatten eingangs die Forderung, nach einer "glatten Kurve" mit der Definition:

  • Glatte Kurve bedeutet im mathematischen Sinne, daß die Funktionswerte beider Teilkurven im Knotenpunkt übereinstimmen und die Kurve zweimal stetig differenzierbar sein soll(te);
hier einige Begriffserläuterungen:


Stetigkeit

  • Der Graph einer stetigen Funktion hat keine Sprungstellen.
Kurven werden als stetig erachtet, wenn sich ihr Funktions-Wert (y-Wert) bei kleinen Änderungen des Argument-Wertes (x-Wert) ebenfalls um nur kleine Werte ändert; eine stetige Funktion darf Knickstellen aufweisen.
Eine Sägezahnkurve gilt somit per Definition als stetig! Gut nachvollziehbar, wenn man sie als Fourier-Reihe einer mit ihren Harmonischen überlagerten sin-Kurve betrachtet; sehr anschaulich: https://de.wikipedia.org/wiki/Kippschwingung.
  • Führt eine kleine Änderung des x-Wertes in eine große (sprunghafte) Änderung des Funktionswertes so ist die Funktion "unstetig".


Stetig differenzierbar

  • Jede Ableitung einer Funktion kann als (neue) eigenständige Funktion aufgefaßt werden.
  • Eine reelle Funktion ist an beliebiger Stelle X dann stetig differenzierbar,
wenn ihre Ableitungsfunktion an dieser Stelle X stetig ist. Die Sägezahnkurve gilt als "stückweise stetig" differenzierbar.


Ableitung

  • Eine Ableitung entsteht aus dem Differenzieren einer Funktion.
  • Ist die Ableitung im Knotenpunkt stetig,
so treffen sich beide Ableitungskurven in einem gemeinsamen Ziel/Start-Punkt;
Ableitungskurven werden als stetig erachtet, selbst wenn ein- und auslaufende Kurve im gemeinsamen Ziel/Start-Punkt keine gemeinsame Tangente, also einen Knick aufweisen.


1. und 2. Ableitung

  • Die 2. Ableitung ist die Ableitung der 1. Ableitung.
Weist die 1. Ableitung einen Knick auf, so ist sie selbst zwar noch stetig, jedoch nicht mehr stetig differenzierbar, die 2. Ableitung führt dementsprechend in eine Sprungfunktion.
  • Fast stetig sind Ableitungen,
die nur einen (im Verhältnis zur Ableitungsamplitude) geringen Sprung aufweisen.


Die 1. Ableitung

  • gekennzeichnet durch: F-Strich f '
gibt die Änderung des Funktionswertes an, d.h. die Steigung des Funktionsgraphen an einer bestimmten Stelle (Knotenpunkt).


Die 2. Ableitung

  • gekennzeichnet durch F-Doppel-Strich f ' '
gibt die Änderung der Steigung an. Sie gibt also Auskunft über die Krümmung des Graphen.
  • Zur 2. Ableitung eine tragische Berühmtheit: Die Todesspirale, Looping-Attraktion großer Achterbahnen zum Anfang des vorigen Jahrhunderts. Eine schräg abfallende Gerade geht in einen tangentialen Kreis mit Überschlag über und steigt danach in einer schrägen Gerade wieder an. Obwohl Gerade und Kreis tangential ineinander übergehen, kam es zu Genickbrüchen!
Die Geschwindigkeit wird durch die Steigung des Graphen beschrieben, die Beschleunigung durch deren Änderung (2. Ableitung) und diese ist bei Übergang von Gerade in Kreis schlagartig - will heißen unendlich!
Moderne Achterbahnen-Konstruktionen beachten dies und werden als Spline berechnet.


Unter CNC- und Roboter- Gesichtspunkten sind sowohl die Funktion (also der Graf der Kurve) wie beide Ableitungen zu beurteilen.


Ableitungsalgorithmen

Die Studie, Release 07 verfolgt 2 unterschiedliche Algorithmen:

  • Für Bézier wird die Ableitung aus dem Differentialquotienten gebildet, die 4 Bernstein-Grafen werden hierzu für die 1. und 2. Ableitung jeweils getrennt differenziert, dies ist fraglos der mathematisch einwandfreie Ansatz.
  • Für Hermite werden die Ableitungen nicht als Differentialquotient, sondern als Differenzenquotient ermittelt. Der Vorteil dieses Verfahrens liegt darin, von der abzuleitenden Funktion unabhängig zu sein, so daß es für die Analyse-Umschaltung Hermite vs. Bézier gleichermaßen einsetzbar ist. Dieser Universal-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! Die Grafik der Ableitungen ist etwas "tricky": Naturgemäß ist die Anzahl der Differenzen um 1 kleiner als die Anzahl ihrer Basiswerte; für "t = 0" und "t = 1" werden die Werte extrapoliert.

Beide Verfahren führen zu "nahezu auf den Punkt" übereinstimmenden Ergebnissen, beide zeigen bei gekoppelten Kurven ggf. vorhandene senkrechte Sprünge (d.h. Un-Stetigkeit) der Ableitungen. Nicht gekoppelte Kurven unterdrücken diese Sprünge.


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.


Inverse Kinematik

Die hier besprochene Mathematik beschreibt eine direkte (schritt-lineare) XYZ-Ansteuerung von Steppern und Servos. Soll das Werkzeug jedoch nicht linear im XYZ Koordinatensystem (CNC-Fräse), sondern von einem Roboterarm geführt werden, so wird dies ein ebenso spannendes Thema:


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