NLB (Diskussion | Beiträge) K |
NLB (Diskussion | Beiträge) |
||
(151 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | Hier | + | 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. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | =Vorwort Teil 1= | ||
+ | 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 und mich intensiv mit der | ||
+ | * Bezier, Hermite & Spline Interpolation | ||
+ | auseinandergesetzt. Hierzu mußte ich lernen "wie das geht": Nahezu alles was ich hier zu Papier gebracht habe, habe ich (viel zu lange) im Internet recherchiert aber nichts zusammenhängendes zum Thema, sondern nur Fragmente oder "professorale Ergüsse" gefunden. Hier habe ich versucht meine Erkenntnisse in einem Tutorial praxisorientiert und ohne höhere Mathematik darzustellen. | ||
+ | == Link zu Teil 2== | ||
+ | '''Der Artikel besteht aus 2 Teilen''' | ||
+ | weil er sonst zu groß würde (meint ein freundlicher ''Lektor'' im Hintergrund) !!! | ||
+ | *hier ein Link zu Teil 2 [[Excel® Studie Bézier-Cascade & Hermite]] | ||
− | |||
− | |||
=Spline-Interpolation= | =Spline-Interpolation= | ||
Zeile 27: | Zeile 25: | ||
Das Geheimnis ist gelüftet: Will man mehrere Punkte (für den Rumpf eines Schiffes) elegant verbinden, so kommt die Straklatte seit einigen 100 Jahren zum Einsatz. Auf den Werften der Welt wurde sie auf dem Dach-Boden "1 zu 1" ausgelegt, geformt, mit Hammer & Nagel fixiert, gezeichnet und danach die Spanten geschnitten. Wird die Latte an nur wenigen Punkten fixiert, so tritt eine innere Spannung auf, die sie in eine weiche, stetige "elegante" Verformung führt. Was die Schiffbauer schon lange konnten, konnte nur kein Mensch berechnen. | Das Geheimnis ist gelüftet: Will man mehrere Punkte (für den Rumpf eines Schiffes) elegant verbinden, so kommt die Straklatte seit einigen 100 Jahren zum Einsatz. Auf den Werften der Welt wurde sie auf dem Dach-Boden "1 zu 1" ausgelegt, geformt, mit Hammer & Nagel fixiert, gezeichnet und danach die Spanten geschnitten. Wird die Latte an nur wenigen Punkten fixiert, so tritt eine innere Spannung auf, die sie in eine weiche, stetige "elegante" Verformung führt. Was die Schiffbauer schon lange konnten, konnte nur kein Mensch berechnen. | ||
− | Inzwischen überhäufen sich mathematische Lösungs-Ansätze hierzu, deren | + | Inzwischen überhäufen sich mathematische Lösungs-Ansätze hierzu, deren Verständnis mehrerer Semester höherer Mathematik bedarf. Als ich das studiert habe, gab es die Dinger noch nicht – bzw. die Mathematik stand auf dem Index militärischer Staatsgeheimnisse – konnte man hiermit doch "Frei-Formen" berechnen und fertigen, die eine geräuschlose U-Boot Fahrt ermöglichte! |
{{FarbigerRahmen| | {{FarbigerRahmen| | ||
− | + | * Ich gebe unumwunden zu, die Mathematik hierfür nicht nachvollziehen geschweige denn aufstellen zu können. Aber Einsetzen kann ich sie. Diese Ausarbeitung fokussiert daher auf Kurvendiskussion und angewandte Mathematik in Hinblick auf die Steuerung von Robotern und hochachsigen CNC Bearbeitungscentren. | |
− | + | * In Teil 2 dieser Ausarbeitung finden Sie den Zugang zu einer praxisorientierten Excel®-Studie. Vieles von dem, was ich hier schreibe habe ich mit dieser Studie erarbeitet! | |
}} | }} | ||
===Interpolation=== | ===Interpolation=== | ||
− | beschreibt die Aufgabe einen oder mehrere nicht bekannte Punkte zwischen | + | beschreibt die Aufgabe einen oder mehrere nicht bekannte Punkte zwischen bekannten zu bestimmen, dies kann sehr einfach sein, wenn wir wissen, welcher Funktion die bekannten Punkte folgen: Es ist kein Problem einen beliebigen Sinuswert oder Parabelpunkt zu interpolieren – denn wir kennen die Funktion die die Ortskurve beschreibt. Haben wir jedoch eine Vielzahl von Punkten – aber keine Ahnung, wie sie entstanden sind – dann wird die Sache interessant. |
− | Letztendlich können wir unendlich viele Kurven durch diese Punkte legen | + | Letztendlich können wir unendlich viele Kurven durch diese Punkte legen - welche die richtige ist, wissen die Götter. Wir können die Aufgabe etwas eingrenzen, indem wir die Verbindung der Punkte mit Geraden (lineare Interpolation) ausschließen und wir können evtl. sagen, die Verbindungslinie solle nicht allzu wellig sein. Eine wachsweiche Definition – die dem Spline recht nahe kommt. |
===Spline und Polynom=== | ===Spline und Polynom=== | ||
− | Das klassische Polynom verbindet eine beliebige Anzahl von Stützpunkten (K) mit einem Kurvenzug der Ordnung (K-1). 5 Stützstellen erfordern also eine Kurve 4-ter Ordnung, die exakt diese Stützstellen verbinden wird. Allerdings schwingt diese | + | Das klassische Polynom verbindet eine beliebige Anzahl von Stützpunkten (K) mit einem Kurvenzug der Ordnung (K-1). 5 Stützstellen erfordern also eine Kurve 4-ter Ordnung, die exakt diese Stützstellen verbinden wird. Allerdings schwingt diese Kurve zwischen den Stützstellen erheblich (oszilliert), so daß der Polynomzug extrem wellig wird. Verantwortlich hierfür ist, daß die Kurve mit einer einzigen Funktion beschrieben wird. Im Gegenteil hierzu verbindet ein Spline die Punkte mit mehreren Kurvenabschnitten, die nicht einer einheitlichen mathematischen Funktion folgen, sondern aus "polynomen Bruchstücken" zusammengesetzt werden. |
Die Spline-Kurve verbindet alle Punkte – nicht etwa linear durch Geraden, sondern Parabeln. Grundelemente sind kubische Parabeln (hoch 3), quadratische Parabeln (hoch 2) und lineare Glieder, die mit geeigneten Koeffizienten gestreckt, gestaucht und verschoben werden. Das Ergebnis nennt sich in seiner Grundform "Kubischer Spline". Mehrere dieser Parabeln bilden Teilstücke des Splines, wobei die Übergän-ge an den Knotenstellen die gleiche Tangente aufweisen – dies macht den weichen Übergang. Im mathematischen Sinne handelt es sich um "glatte Kurven": | Die Spline-Kurve verbindet alle Punkte – nicht etwa linear durch Geraden, sondern Parabeln. Grundelemente sind kubische Parabeln (hoch 3), quadratische Parabeln (hoch 2) und lineare Glieder, die mit geeigneten Koeffizienten gestreckt, gestaucht und verschoben werden. Das Ergebnis nennt sich in seiner Grundform "Kubischer Spline". Mehrere dieser Parabeln bilden Teilstücke des Splines, wobei die Übergän-ge an den Knotenstellen die gleiche Tangente aufweisen – dies macht den weichen Übergang. Im mathematischen Sinne handelt es sich um "glatte Kurven": | ||
− | Zitat: | + | *Zitat: |
− | :"Glatte Kurve" bedeutet dabei im mathematischen Sinne, daß die Kurve zweimal stetig differenzierbar sein soll. Alle gegebenen Punkte stellen als Stützstellen der Kurve sozusagen auch | + | ::"Glatte Kurve" bedeutet dabei im mathematischen Sinne, daß die Kurve zweimal stetig differenzierbar sein soll. Alle gegebenen Punkte stellen als Stützstellen der Kurve sozusagen auch Nahtstellen zwischen den Teilkurven dar, in denen jeweils beide Funktionswerte, beide erste und auch zweite Ableitungen der zusammentreffenden Teilkurven übereinstimmen. Diese Naht- oder Stützstellen werden auch Knoten genannt. http://www.arndt-bruenner.de/mathe/scripts/kubspline.htm |
+ | |||
+ | *Begriffsdefinition: | ||
+ | ::''Glatte Kurve / Ableitung / zweimal stetig differenzierbar'' vgl. Anhang Teil 2 | ||
Aber bitte glauben Sie nicht, daß diese Splines nicht schwingen würden, Vielleicht nicht ganz so extrem wie ein Polynom, trotzdem: Ich habe es in der Analyse geschafft, die Scheitelpunkte eines Splines um das 25.000-fache über seine y-Stützwerte hinauszutreiben! | Aber bitte glauben Sie nicht, daß diese Splines nicht schwingen würden, Vielleicht nicht ganz so extrem wie ein Polynom, trotzdem: Ich habe es in der Analyse geschafft, die Scheitelpunkte eines Splines um das 25.000-fache über seine y-Stützwerte hinauszutreiben! | ||
− | + | Wesentliche Charakteristika dieser Kurven: | |
− | + | *Sie verbinden die Punkte, aber nicht auf dem kürzesten Weg (das wäre eine Gerade), sondern schwingen vor und hinter den Stützstellen ein bzw. (mehr oder weniger) über, sie oszillieren. | |
− | *Sie verbinden die Punkte, aber nicht auf dem kürzesten Weg (das wäre eine Gerade), sondern schwingen vor und hinter den Stützstellen ein bzw. (mehr oder weniger) über, sie oszillieren. Je näher sich die x-Werte kommen, je weiter die Y–Werte auseinander liegen, je stärker wird die Neigung zum Oszillieren. | + | *Je näher sich die x-Werte kommen, je weiter die Y–Werte auseinander liegen, je stärker wird die Neigung zum Oszillieren. |
+ | |||
+ | ===Kubischer Spline und xy-Koordinaten=== | ||
*Verschiebt man einen Stützpunkt auf der y-Achse, so folgt der Spline, | *Verschiebt man einen Stützpunkt auf der y-Achse, so folgt der Spline, | ||
− | verschiebt man ihn auf der x-Achse so folgt der Spline, solange sich der | + | *verschiebt man ihn auf der x-Achse so folgt der Spline, solange sich der Stützpunkt zwischen 2 anderen Stützstellen befindet. |
+ | *Verschiebt man einen Stützpunkt über einen anderen hinaus, so tauschen die Stützpunkte ihre x-Achsen Wertigkeit – und der Spline ggf. seine y-Ausrichtung! | ||
Interpoliert man eine zeitlich kontinuierlich forschreitende Meßreihe so ist dies unproblematisch. Findet man eine Vielzahl von Punkten, die es zu verbinden gilt, so wird man diese in einem Koordinaten System erfassen. Nach Murphys Gesetz der größten Gemeinheit hängt die Schwingneigung davon ab, wie das xy-Koordinaten System die Punkte erfaßt: | Interpoliert man eine zeitlich kontinuierlich forschreitende Meßreihe so ist dies unproblematisch. Findet man eine Vielzahl von Punkten, die es zu verbinden gilt, so wird man diese in einem Koordinaten System erfassen. Nach Murphys Gesetz der größten Gemeinheit hängt die Schwingneigung davon ab, wie das xy-Koordinaten System die Punkte erfaßt: | ||
− | Denk-Experiment | + | |
− | + | '''Denk-Experiment''' | |
− | + | ||
− | + | Man nehme die Eckpunkte einer symmetrischen Trapez-Kurve: | |
− | + | *Liegt die Kurve parallel zur x-Achse, so wird der Spline Sinus-ähnlich überschwingen. | |
+ | *Dreht man die Kurve im Koordinatensystem, so verändern sich die x-Achsen Abstände. | ||
:- Paarweise verkürzt sich der Abstand, paarweise verlängert er sich. | :- Paarweise verkürzt sich der Abstand, paarweise verlängert er sich. | ||
:- Der Spline oszilliert extrem unsymmetrisch, | :- Der Spline oszilliert extrem unsymmetrisch, | ||
Zeile 74: | Zeile 79: | ||
Wer also glaubt, zur Steuerung von Robotern und CNC Systemen könne man "ein paar Eckpunkte" einfach per Spline-Interpolation verbinden, kann Überraschungen erleben! | Wer also glaubt, zur Steuerung von Robotern und CNC Systemen könne man "ein paar Eckpunkte" einfach per Spline-Interpolation verbinden, kann Überraschungen erleben! | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | Die Spline-Mathematik schaut bei jeder Interpolation des Kurvenverlaufes nach links und rechts, also wo die Kurve herkommt (vorheriger Stützpunkt) und wo sie hin soll, wenn der Stützpunkt verlassen wird (nächster Stützpunkt). Im mittleren | + | '''Aus all dem geht hervor''': |
+ | |||
+ | *Der Kubische Spline ist eine stetig fortschreitende Kurve, sie kann stetige Veränderungen recht gut interpolieren, Sprung-Funktionen provozieren hingegen starkes Überschwingen. | ||
+ | *Der Kubische Spline kann nicht geschlossen werden. | ||
+ | :Um die Verwirrung etwas voran zutreiben, kann man natürlich mit einem, nein zwei Kubischen-Splines schon etwas kreisförmiges bewirken. Ähnlich wie die stetig fortschreitende sin/cos Überlagerung in der klassischen CNC einen Kreis plottet, können stetig fortschreitende Splines aus der Überlagerung natürlich ebenfalls "das Werkzeug zurückführen". | ||
+ | |||
+ | Die Spline-Mathematik schaut bei jeder Interpolation des Kurvenverlaufes nach links und rechts, also wo die Kurve herkommt (vorheriger Stützpunkt) und wo sie hin soll, wenn der Stützpunkt verlassen wird (nächster Stützpunkt). Im mittleren Kurverbereich ist dies unproblematisch, für die Start- und Endpunkte schon – denn es gibt keine Stützpunkte außerhalb der Kurve. | ||
===Natürlicher Splin=== | ===Natürlicher Splin=== | ||
− | Per Definition stellt "natürlich" einen Spline dar, der außerhalb seines mathematisch definierten Kurverbereiches gradlinig verläuft – ob dies bei einer echten Kurve | + | Per Definition stellt "natürlich" einen Spline dar, der außerhalb seines mathematisch definierten Kurverbereiches gradlinig verläuft – ob dies bei einer echten Kurve natürlich ist, sei dahingestellt. Für die Robotik ist dies optimal, verbindet ein natürlicher Spline doch Geraden miteinander "ohne Knick". |
− | Als Pendent zu den Natürlichen Splines mit linearem Verlauf außerhalb der Kurve werden Splines definiert, die an Stelle des linearen Verlaufes "glauben", in eine | + | Als Pendent zu den Natürlichen Splines mit linearem Verlauf außerhalb der Kurve werden Splines definiert, die an Stelle des linearen Verlaufes "glauben", in eine Parabel überzugehen. |
Noch mal zum mittleren Kurvenbereich: Hier schaut der Spline nach links und rechts, das ist nicht unproblematisch: Denn die Änderung eines einzelnen Spline Stützpunktes hat globale Auswirkungen auf die Kurve weit über andere Stützpunktbereiche hinaus. | Noch mal zum mittleren Kurvenbereich: Hier schaut der Spline nach links und rechts, das ist nicht unproblematisch: Denn die Änderung eines einzelnen Spline Stützpunktes hat globale Auswirkungen auf die Kurve weit über andere Stützpunktbereiche hinaus. | ||
Zeile 92: | Zeile 98: | ||
===B-Spline=== | ===B-Spline=== | ||
− | Anders verhalten sich die B-Splines, hier hat die Änderung eines Stützpunktes kaum globale Auswirkung, sondern schwerpunktmäßig lokalen Einfluß auf die Kurvenform. Allerdings geht der B-Spline im mittleren Bereich nicht mehr durch die Stützpunkte, sondern an ihnen vorbei. Die Kurve wird von den Stützpunkten "gewichtet | + | Anders verhalten sich die B-Splines, hier hat die Änderung eines Stützpunktes kaum globale Auswirkung, sondern schwerpunktmäßig lokalen Einfluß auf die Kurvenform. Allerdings geht der B-Spline im mittleren Bereich nicht mehr durch die Stützpunkte, sondern an ihnen vorbei. Die Kurve wird von den Stützpunkten "gewichtet beeinflußt", lediglich Start- und Zielpunkt des B-Spliens liegt auf der jeweiligen Stützstelle. |
Anders als der Kubische Spline kann der B-Spline zu einer geschlossenen Kurve geformt werden; bei einem Kreis ähnlichen B-Spline liegen die mittleren Stützstellen außerhalb der Kurve – aber in deren Nähe! | Anders als der Kubische Spline kann der B-Spline zu einer geschlossenen Kurve geformt werden; bei einem Kreis ähnlichen B-Spline liegen die mittleren Stützstellen außerhalb der Kurve – aber in deren Nähe! | ||
Zeile 99: | Zeile 105: | ||
===Constrained Cubic Spline=== | ===Constrained Cubic Spline=== | ||
Ist ein Spline, der nicht überschwingt! | Ist ein Spline, der nicht überschwingt! | ||
− | Der "gebändigte" Spline kommt der Straklatte recht nahe. Per Definition spannen jeweils 2 benachbarte Knotenpunkte ein Rechteck parallel zur xy-Achse und | + | Der "gebändigte" Spline kommt der Straklatte recht nahe. Per Definition spannen jeweils 2 benachbarte Knotenpunkte ein Rechteck parallel zur xy-Achse und begrenzen, "bändigen" den Spline. |
− | + | *Stetige Kurven laufen "diagonal weich" durch die Rechtecke, ohne die Begrenzung zu berühren. | |
− | + | *Sprung-Funktionen "schlagen an", manchmal wirkt er im Knotenbereich etwas "eckig". | |
− | In unserem Trapezbeispiel läuft der Constrained Spline bei x-Achsen paralleler | + | In unserem Trapezbeispiel läuft der Constrained Spline bei x-Achsen paralleler Ausrichtung horizontal als Gerade, die Schrägen werden verrundet. Dreht man die symmetrische Trapez-Kurve im Koordinatensystem, so ergibt sich ein unsymmetrischer, ggf. eckiger Spline. |
− | Überschwingen, was ist das? | + | '''Überschwingen, was ist das?''' |
− | + | ||
Vielleicht mehr philosophisch: Auch Überschwingen ist eine Frage der Definition und des Meßaufbaus. | Vielleicht mehr philosophisch: Auch Überschwingen ist eine Frage der Definition und des Meßaufbaus. | ||
Nehmen wir einen ganz normalen Kreis im xy-Koordinatensystem. | Nehmen wir einen ganz normalen Kreis im xy-Koordinatensystem. | ||
− | + | *Fallen die Mittelpunkte von Kreis und Koordinatensystem zusammen, so wird kein Mensch auf die Idee des Überschwingens kommen. | |
− | + | *Legen wir den Kreis so, daß er x- und y- Achse tangiert, so werden wir die Punkte im Bereich von 0 bis 90 Grad, 90 bis 180 etc. ebenfalls nicht als überschwingend erachten. Liegen die zu verbindenden Punkte bei 0 und 180 Grad, so kann man vortrefflich streiten, ob es sich um einen Überschwinger gegenüber der doch parallel zur x-Achse laufenden Sehne handelt! | |
Zeile 118: | Zeile 123: | ||
Während in der Mitte des letzten Jahrhunderts einigen Wissenschaftlern gewiß die Grundlagen der Spline-Mathematik bekannt waren (Schönberg soll hieran bereits 1945 geforscht haben), gab es hierfür zunächst keine Anwendung; Impulse setzte die Automobil und Flugzeugindustrie in den 1960-igern. Nunmehr überschlagen sich die Entwicklungen mit dem "Nachnamen" Spline; Hermitischer Spline / Catmull-Rom Spline / Cardinal Spline / Kochanek-Bartels Spline etc. | Während in der Mitte des letzten Jahrhunderts einigen Wissenschaftlern gewiß die Grundlagen der Spline-Mathematik bekannt waren (Schönberg soll hieran bereits 1945 geforscht haben), gab es hierfür zunächst keine Anwendung; Impulse setzte die Automobil und Flugzeugindustrie in den 1960-igern. Nunmehr überschlagen sich die Entwicklungen mit dem "Nachnamen" Spline; Hermitischer Spline / Catmull-Rom Spline / Cardinal Spline / Kochanek-Bartels Spline etc. | ||
− | Mehr oder minder sind diese Splines miteinander verwandt, gemeinsam ist ihnen, daß eine Einflußmöglichkeit auf die Kurvenform zwischen den Knotenpunkten | + | Mehr oder minder sind diese Splines miteinander verwandt, gemeinsam ist ihnen, daß eine Einflußmöglichkeit auf die Kurvenform zwischen den Knotenpunkten besteht. Ein Überschwingen wie beim "Natürlichen, kubischen Spline" oder Anschlagen wie beim "Constrained Spline" ist so vermeidbar. Die Problematik der Kurvenform-Änderung in Abhängigkeit der relativen Lage im Koordinatensystem (vgl. "Denk-Experiment") besteht nicht. |
− | Urvater dieser Spline-Familie ist der Hermitische Spline, genannt nach Charles | + | Urvater dieser Spline-Familie ist der Hermitische Spline, genannt nach Charles Hermite - der ihn aber nicht kannte! Zwei französische Mathematiker müssen wohl als Pionier der angewandten Mathematik gesehen werden; die Spline-Inflation folgte und ist leichter zu verstehen, wenn wir uns zunächst dieser Pionierarbeit zuwenden: |
=Bézier- und Casteljau= | =Bézier- und Casteljau= | ||
− | Recht ähnlich in ihrem Aussehen – in ihrem Verhalten jedoch völlig anders als "Natürliche, kubische Splines" – sind Bézier- und Casteljau-Kurven. Beide Herren haben in den frühen 60igern des vorigen Jahrhunderts von einander (vermutlich) | + | Recht ähnlich in ihrem Aussehen – in ihrem Verhalten jedoch völlig anders als "Natürliche, kubische Splines" – sind Bézier- und Casteljau-Kurven. Beide Herren haben in den frühen 60igern des vorigen Jahrhunderts von einander (vermutlich) unabhängig – weil für die Konkurrenzfirmen Citroen und Renault tätig, eine deckungsgleiche Kurve entwickelt. Bézier suchte den Ansatz in der numerischen Mathematik mit Computern der späten 50iger (bitte mal in Erinnerung rufen; es gab keine Computer-Grafik, sondern IBM-Kettendrucker & Co; was der Mann leistete ist phänomenal; so entwickelte er eigens eins der ersten CAD Systeme, UNISURF). |
− | Casteljau suchte den Ansatz in der darstellenden Geometrie und technischen | + | Casteljau suchte den Ansatz in der darstellenden Geometrie und technischen Mechanik. Seine Lösung baut auf Getriebelehre auf. Vorteil dieser Lösung: Modelle / Werkzeuge konnten - ohne Umweg über eine Zeichnung - direkt "aus dem Vollen geschnitzt" werden (auch CNC-Fräsen waren noch nicht erfunden). |
Ob nun Bézier oder Casteljau: Die Kurve und ihre Konstruktion kann man (nachdem man's weiß) verhältnismäßig leicht nachempfinden: | Ob nun Bézier oder Casteljau: Die Kurve und ihre Konstruktion kann man (nachdem man's weiß) verhältnismäßig leicht nachempfinden: | ||
− | Man nehme: 2 stabile (unverwindbare) Tragschienen, am Ende jeder Tragschiene niete man eine (nicht allzu steife) Straklatte an. Und zwar so, daß die Straklatte an der Tragschiene parallel zurück läuft – und das bei beiden Tragschienen. Die | + | Man nehme: 2 stabile (unverwindbare) Tragschienen, am Ende jeder Tragschiene niete man eine (nicht allzu steife) Straklatte an. Und zwar so, daß die Straklatte an der Tragschiene parallel zurück läuft – und das bei beiden Tragschienen. Die Tragschienen sind also Tangente. Im Ergebnis sieht dies wie der Buchstabe "M" aus, wobei die Mitte des "M" nicht spitz zuläuft, sondern sich U-förmig formt - weil die Straklatte das so will !!! |
Verschiebt man jetzt die beiden Tragschienen winklig oder parallel gegeneinander, so formt sich die Straklatte. | Verschiebt man jetzt die beiden Tragschienen winklig oder parallel gegeneinander, so formt sich die Straklatte. | ||
− | Bei den echten Bézier Kurven kommt hinzu, daß der Abstand der "Niet-Punkte" sowie die Länge der Tragschienen Einfluß auf die Länge der Kurve haben. Da dies so ist, wird bei Bézier und Casteljau die Kurve nie außerhalb des durch die 4 Punkte gebildeten Gevierts liegen | + | Bei den echten Bézier Kurven kommt hinzu, daß der Abstand der "Niet-Punkte" sowie die Länge der Tragschienen Einfluß auf die Länge der Kurve haben. Da dies so ist, wird bei Bézier und Casteljau die Kurve nie außerhalb des durch die 4 Punkte gebildeten Gevierts liegen - wird auf dieses Geviert bezogen nie überschwingen! |
+ | |||
Unterschieden werden Bézier- und Casteljau-Kurven 1ten, 2ten und höheren Grades. | Unterschieden werden Bézier- und Casteljau-Kurven 1ten, 2ten und höheren Grades. | ||
Zeile 140: | Zeile 146: | ||
==Die Kurve 1ten Grades== | ==Die Kurve 1ten Grades== | ||
ist eine Gerade mit 2 Kontrollpunkten (wie jede andere Gerade auch). | ist eine Gerade mit 2 Kontrollpunkten (wie jede andere Gerade auch). | ||
+ | |||
==Die Kurve 2ten Grades== | ==Die Kurve 2ten Grades== | ||
Zeile 146: | Zeile 153: | ||
hat 3 Kontrollpunkte. Man kann sich das so vorstellen, daß unsere beiden Tragschienen in deren freiem Ende auf einen Punkt fallen. | hat 3 Kontrollpunkte. Man kann sich das so vorstellen, daß unsere beiden Tragschienen in deren freiem Ende auf einen Punkt fallen. | ||
Anders ausgedrückt: Sie formen einen offenen Winkel und die darin eingespannte Straklatte eine Parabel. | Anders ausgedrückt: Sie formen einen offenen Winkel und die darin eingespannte Straklatte eine Parabel. | ||
− | Der Scheitelpunkt jeder Bézier Kurve 2ten Grades liegt auf halber Lot-Höhe des äußeren Kontrollpunktes zu der die | + | Der Scheitelpunkt jeder Bézier Kurve 2ten Grades liegt auf halber Lot-Höhe des äußeren Kontrollpunktes zu der die Start- und Ziel-Punkte verbindenden Sehne. |
+ | |||
==Die Kurve 3ten Grades== | ==Die Kurve 3ten Grades== | ||
Zeile 152: | Zeile 160: | ||
arbeitet mit 4 Kontrollpunkten und hat wohl die wesentliche Bedeutung. | arbeitet mit 4 Kontrollpunkten und hat wohl die wesentliche Bedeutung. | ||
− | 2 Kontrollpunkte liegen auf der Kurve ( | + | 2 Kontrollpunkte liegen auf der Kurve (Start/Ziel), die beiden anderen bestimmen die Kurvenform (dies ist unser Tragschienen-Beispiel). |
Das eigentliche Ergebnis, die Form liegt innerhalb dieser 4 Kontrollpunkte, | Das eigentliche Ergebnis, die Form liegt innerhalb dieser 4 Kontrollpunkte, | ||
− | - aber das Ergebnis ist meist eher zufällig, wenngleich exakt reproduzierbar, | + | :- aber das Ergebnis ist meist eher zufällig, wenngleich exakt reproduzierbar, |
− | - schließen läßt sich die Kurve 3ten Grades nicht! | + | :- schließen läßt sich die Kurve 3ten Grades nicht! |
− | + | ||
− | + | Der Scheitelpunkt einer Bézier Kurve 3ten Grades liegt auf 3/4 Höhe der äußeren Kontrollpunkte, so beide die selbe Lot-Höhe zur (Start/Ziel) Sehne haben. Bei unterschiedlicher Lot-Höhe wächst die Scheitelpunkt-Höhe auf max. 88,9% der beiden arithmetisch gemittelten Lot-Höhen. | |
− | Nennen wir die Kontrollpunkte auf der einen Tragschiene 0 und 1, die auf der | + | |
+ | ===Kubische Bézier-Kurve=== | ||
+ | Nennen wir die Kontrollpunkte auf der einen Tragschiene 0 und 1, die auf der anderen 2 und 3 (die Straklatte sei zwischen 0 und 3 angenietet). Bewegen wir 0 und 3 aufeinander zu, 1 und 2 voneinander fort, so lassen sich schöne , hufeisenähnliche asymmetrische "Freiformen" erzeugen, solange die Punkte 0 bis 3 nicht auf einer Geraden liegen. Ist dies der Fall, so wird auch die Freiform zur Geraden! | ||
Vollständig schließen läßt sich eine einzelne Bézier Kurve 3ten Grades noch nicht, jedoch können mehrere Kurven (zu einem Bézier-Spline) cascadiert werden. Der Punkt 0 der folgenden Kurve fällt dann auf den Punkt 3 des Vorgängers, die Punkte 2 und 1 bilden eine gemeinsame Tangenten-Gerade. Die beiden Bézier Abschnitte lassen sich dann zu zwei hufeisenähnlichen Halbkreisen schließen. | Vollständig schließen läßt sich eine einzelne Bézier Kurve 3ten Grades noch nicht, jedoch können mehrere Kurven (zu einem Bézier-Spline) cascadiert werden. Der Punkt 0 der folgenden Kurve fällt dann auf den Punkt 3 des Vorgängers, die Punkte 2 und 1 bilden eine gemeinsame Tangenten-Gerade. Die beiden Bézier Abschnitte lassen sich dann zu zwei hufeisenähnlichen Halbkreisen schließen. | ||
− | Wesentlicher Unterschied: Beim B-Spline liegen die mittleren Stützpunkte in der | + | Wesentlicher Unterschied: Beim B-Spline liegen die mittleren Stützpunkte in der Nähe der Kurve, bei Bézier- und Casteljau-Kurven gibt es per Definition keine Stützpunkte, sondern Kontrollpunkte. Zwei dieser Kontrollpunkte (0 und 3) können als Stützstelle erachtet werden, die beiden anderen (1 und 2) liegen bei Bézier-Kurven (auch denen höherer Ordnung) völlig außerhalb der Kurve. |
− | Der im deutschen gebräuchliche Begriff "Kontrollpunkt" geht wohl auf eine | + | Der im deutschen gebräuchliche Begriff "Kontrollpunkt" geht wohl auf eine Fehlübersetzung zurück. Die englische Begrifflichkeit "control" steht eher für steuern als für kontrollieren. "Steuerpunkt" wäre wohl besser gewesen. Etwas anschaulich werden die Punkte 1 und 2 auch als "Handgriff" bezeichnet. Es bedarf einiger Übung, mit diesen Handgriffen / Steuerpunkten die gewünschte Kurve zu erzeugen. |
− | Wechselt die Position 2 und 3 gegenseitig (die Tragschiene wird umgedreht), so | + | Wechselt die Position 2 und 3 gegenseitig (die Tragschiene wird umgedreht), so entsteht eine S-förmige Bézier- bzw. Casteljau-Kurve. |
− | Es mag eine gewisse Tragik sein, daß Paul de Faget de Casteljau die Kurve und deren Konstruktion einige Jahre vor Pierre Bézier entdeckte. Citroen hielt die | + | Es mag eine gewisse Tragik sein, daß Paul de Faget de Casteljau die Kurve und deren Konstruktion einige Jahre vor Pierre Bézier entdeckte. Citroen hielt die Entdeckung lange, sehr lange geheim, Bézier durfte eher veröffentlichen – die Kurve trägt seinen Namen. |
− | Einen exzellenten Zusammenhang zeigt http://en.wikipedia.org/wiki/B%C3%A9zier_curve | + | * Einen exzellenten Zusammenhang zeigt http://en.wikipedia.org/wiki/B%C3%A9zier_curve |
− | |||
− | + | {{FarbigerRahmen| | |
+ | In der Bézier Mathematik wird die (kubische) Kurve mit zwei Stützpunkten und 2 Steuerpunkten vollständig beschrieben. Die Genialität Pierre Béziers greift dabei auf das Bernsteinpolynom zurück, das Sergei Natanovich Bernstein 1911 für den Näherungsbeweis der Weierstraß'schen Approximationstheorie entwickelte. | ||
− | + | '''Grundsätzlich gilt:''' | |
− | + | :Ein Polynom besteht aus mehreren Einzelfunktionen, die jeweils einen eigenen Grafen beschreiben. Die Anzahl der Einzelfunktionen ist gleich der ''polynomen Ordnungszahl plus 1'', bei Bézier also gleich der Anzahl der Kontrollpunkte. | |
− | Das | + | '''Bernsteinpolynom''' |
+ | :Das Polynom zeigt einen Fensterausschnitt der Einzelfunktionen im Bereich der xy-Koordinaten 0 bis 1; es ist achsensymmetrisch zum Mittelwert x gleich 0,5. Die beiden jeweils äußersten Einzelfunktionen folgen einer "einfachen" Parabel gem. Ordnungszahl. Die Summe aller Einzelfunktionen beträgt stets 1! | ||
− | + | *Vom Ansatz multipliziert Bézier "die xy-Koordinaten seiner 4 Kontrollpunkte" mit den 4 Grafen des Bernsteinpolynoms 3ten Grades "matrixförmig" und addiert die jeweils 4 Produkte je Kurvenpunkt zu dessen X bzw. Y Wert. | |
− | + | ||
− | Bézier- | + | |
− | + | *Die Berechnung erfolgt parametriert von 't gleich 0' bis 't gleich 1', wobei diese extrem-Werte zugleich die Tangenten-Vektoren der Handgriffe repräsentieren. | |
− | + | ||
− | Die | + | |
− | + | ''Das hört sich kompliziert an und ist es auch;'' | |
− | + | *hilfreich zum Verständnis ist die Excel® Studie (s.u.). Vieles von dem, was ich hier schreibe habe ich mit dieser Studie erarbeitet! | |
− | + | }} | |
− | + | ||
+ | |||
+ | Das Geniale ist, daß die einmal berechneten Bernsteinpolynome als Festwert-Tabelle (ähnlich der Logarithmentafel) hinterlegt werden können und die eigentliche Berechnung der Bézier Kurven sich auf simple Multiplikation und Addition beschränkt. Was naturgemäß wenig Rechenaufwand erfordert. | ||
− | |||
− | |||
− | |||
− | |||
− | + | '''Noch einmal:''' | |
+ | Bézier- & Casteljau-Kurven sind schön –wie die Autos der 50iger und 60iger, sie können Punkt-symmetrisch, Achsen-symmetrisch oder unsymmetrisch sein. Zwei Geraden verbinden sie wunderbar, einen oder mehrere dazwischen liegende Punkte interpolieren sie hingegen eher zufällig; es sei denn, man cascadiert. | ||
− | + | Hier wird es interessant: | |
+ | *Wird lediglich die Kurve (z.B. für eine Zeichnung) benötigt, so besteht lediglich die Forderung, daß beide Kurvensegmente im Knotenpunkt eine gemeinsame Tangente aufweisen müssen; | ||
+ | *kommen, wie bei CNC- und Roboter- Steuerungen Dynamikanforderungen hinzu, so gilt: ''Die sich aus der Cascadierung ergebende Kurve selbst, also ihre Funktion sowie deren 1te und 2te Ableitung müssen in den Knotenpunkten (t = 0 bzw. t =1) stetig sein, um den "weichen Übergang" zu gewährleisten.'' | ||
− | + | Wir kommen mehrfach auf das Thema zurück! | |
===Bézier und die Handgriffe=== | ===Bézier und die Handgriffe=== | ||
− | Es gibt eine Vielzahl von Applets zu diesem Thema im Internet. Man kann die | + | Es gibt eine Vielzahl von Applets zu diesem Thema im Internet. Man kann die Handgriffe / Anfasser mit der Maus verschieben und sich freuen; verstanden habe ich die Mechanik, will sagen, Mathematik mit diesen Applets nicht. Hilfreich war hingegen eine Arbeit von Klaus Kühnlein, auf deren Basis ich eine Experimental-Studie entwickelt habe. |
− | Excel® Studie Bézier-Cascade & Hermite | + | '''Excel® Studie Bézier-Cascade & Hermite''' (''Sie finden die Studie im Download-Bereich meiner Web-Site.'') |
− | Sie finden die Studie im Download-Bereich meiner Web-Site. | + | |
− | Um Bézier & Hermite zu untersuchen werden in einem Excel® Sheet diverse 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. 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. | + | :*Um Bézier & Hermite zu untersuchen werden in einem Excel® Sheet diverse 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. 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 | + | :*Die Studie untersucht für Bezier die Nachbildung eines Kreissegmentes sowie einen Spline aus 3 Bézier- bzw. Hermite Kurven. Diese sind "koppelbar" oder auch nicht. Sie können hiermit die wildesten Splines erzeugen. |
− | + | :*Ergänzend untersucht die Excel-Studie Hermite im Vergleich zu Bézier. Wesentliche Erkenntnis: Bezier und Hermite können gegenseitig ineinander abgebildet werden. Vorteil: Die Bezier-Anfasser sind kürzer und in ihrer Wirkung besser vorhersehbar. | |
− | + | ||
− | |||
− | |||
− | |||
− | + | :'''Bahnkurve & 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. | ||
− | + | ||
− | + | :'''Für Bezier macht die Studie 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! Und diese bezieht sich unter CNC und Roboter-Gesichtspunkten nicht nur auf die Form der Bahnkurve, sondern deren Dynamik! Hier analysiert die Studie (Teil 2) überraschende Zusammenhänge! | |
− | + | Zunächst die Bézier Betrachtungen, danach Erkenntnisse zu Hermite. Vieles hiervon ist theoretisch, abstrakt. Die Studie gibt Erkenntnisse aus der Praxis für die Praxis. | |
− | + | ||
− | + | ||
+ | ===Bézier und der Kreisbogen=== | ||
+ | Einigkeit besteht in den Veröffentlichungen, daß man mit Bézier einen Viertel-Kreis recht gut approximieren könne. Angegeben und auch bewiesen wird für das 90-Grad Kreissegment ein Faktor | ||
+ | * K = 4/3*[ (sqrt(2)-1] = 0,5522847498 | ||
+ | :Der Radius eines Viertel-Kreises multipliziert mit diesem Faktor, (meist "Kappa" genannt) ergibt die Länge des Anfassers; um eine Ellipse zu bilden wird die Länge der beiden Halb-Achsen jeweils als Radius gesetzt. | ||
− | + | :Beim 90-Grad Kreissegment weicht die Bézier-Kurve mit diesem Näherungs-Wert im 1/10 Promillebereich "nach außen" ab. Diese hervorragende Näherung ist sogar noch zu verbessern, wenn sich die Kurve von "innen und außen" an das Kreissegment anschmiegt. | |
− | + | Zu anderen Winkeln war meine Recherche ergebnislos; mit o.g. Experimental-Studie habe ich Näherungen für Tangentenwinkel im Bereich 0 bis 180 Grad ermittelt. Definiert ist der Tangentenöffnungswinkel als der, der einen Kreis tangential von außen berührt, (der Winkel des korrespondierenden Kreissegmentes ergibt sich aus "180 - Tangentenöffnungswinkel). Die Faktoren für die Stützstellen 0 bis 180 Grad wurden im 30er Raster iterativ genähert, die Zwischenwerte im 1,8 Grad Raster aus dem arithmetischem Mittel von kubischem- und constrained Spline interpoliert. | |
− | + | Die angegebenen Näherungs-Faktoren liegen im Bereich "0" (für einen Tangentenöffnungswinkel von 180 Grad, das ist ein Punkt) bis ca. "1,32" für einen Tangentenöffnungswinkel von 0-Grad (die Tangenten liegen dann parallel) - wegen des Näherungsfehlers jedoch nur bedingt verwendbar. | |
− | |||
====Der Näherungsfehler "Bézier zu Kreis"==== | ====Der Näherungsfehler "Bézier zu Kreis"==== | ||
Zeile 260: | Zeile 264: | ||
− | ==Kurven 4-ten und höheren Grades== | + | ==Bézier-Kurven 4-ten und höheren Grades== |
ermöglichen extrem komplexe & elegante Formgebung. | ermöglichen extrem komplexe & elegante Formgebung. | ||
− | Das mit 5 und mehr Kontrollpunkten erreichbare Ergebnis ist (ohne PC-Grafik) kaum intuitiv vorherzubestimmen. Bézier- Kurven 4ten Grades lassen sich bereits schließen. | + | Das mit 5 und mehr Kontrollpunkten erreichbare Ergebnis ist (ohne PC-Grafik) kaum intuitiv vorherzubestimmen. |
− | + | *Bézier-Kurven 4ten Grades lassen sich bereits schließen. | |
+ | *Eine Kurve "höheren Grades" läßt sich immer auf mehrere Kurven "niederen Grades" zurückführen, die dann entsprechend "cascadiert" werden. | ||
=Der Hermitische Spline= | =Der Hermitische Spline= | ||
− | unterscheidet sich bereits auf den ersten Blick in den Anfassern. Bei Hermite startet die Kurve wie bei Bézier von Kontrollpunkt 0 in Richtung 1, jedoch liegt der | + | unterscheidet sich bereits auf den ersten Blick in den Anfassern. Bei Hermite startet die Kurve wie bei Bézier von Kontrollpunkt 0 in Richtung 1, jedoch liegt der Kontrollpunkt 2 in der gedachten Verlängerung der Kurve (bei Bézier hatten wir diesen Ziel-Punkt P3 genannt). Auf den zweiten Blick wird man feststellen, daß die Kurve gegenüber Bézier "weitgehend" außerhalb des Kontrollpunkt-Gevierts liegt. |
− | Hermite reagiert auf die Bewegung der Anfasser deutlich komplexer. Während der Start-Anfasser zu einer recht Bézier ähnlichen Verformung führt, stellt der Ziel-Anfasser alle Erwartungen auf den Kopf: Zieht man ihn (bei unverändertem Winkel), so weicht die Kurve entgegen der Zug-Richtung nach hinten aus. Meist nimmt sie eine "S-förmige" Kontur an. Der Anfasser ist Flucht-Tangente im Ziel-Punkt. | + | *Hermite reagiert auf die Bewegung der Anfasser deutlich komplexer. Während der Start-Anfasser zu einer recht Bézier ähnlichen Verformung führt, stellt der Ziel-Anfasser alle Erwartungen auf den Kopf: Zieht man ihn (bei unverändertem Winkel), so weicht die Kurve entgegen der Zug-Richtung nach hinten aus. Meist nimmt sie eine "S-förmige" Kontur an. Der Anfasser ist Flucht-Tangente im Ziel-Punkt. |
− | Der Hermitische Spline läßt sich wie Bézier ebenfalls cascadieren. Um die Glattheit im Knotenpunkt zu garantieren ist per Definition der Start-Anfasser der Folge-Stufe gleich dem Ziel-Anfasser der Vor-Stufe. Bewegt man also diesen Kombi-Anfasser, so reagiert das Ganze recht eigenwillig und unvorhersehbar - mit Kanten, Schlingen und Schleifen. Auffällig ist, daß gegenüber Bézier wesentlich längere Anfasser | + | *Der Hermitische Spline läßt sich wie Bézier ebenfalls cascadieren. Um die Glattheit im Knotenpunkt zu garantieren ist per Definition der Start-Anfasser der Folge-Stufe gleich dem Ziel-Anfasser der Vor-Stufe. Bewegt man also diesen Kombi-Anfasser, so reagiert das Ganze recht eigenwillig und unvorhersehbar - mit Kanten, Schlingen und Schleifen. Auffällig ist, daß gegenüber Bézier wesentlich längere Anfasser erforderlich werden, um die Kurve zu formen. Oftmals liegen sie weit außerhalb der eigentlichen Kurve – und außerhalb des Bildschirmes! All dies macht die (interaktive) Handhabung des Hermitischen Splines deutlich ungelenker als Bézier. |
− | |||
− | |||
− | + | ==Die Hermite-Mathematik== | |
− | + | erläutert Teil 2 dieses Tutorials gemeinsam mit der hier im Focus stehenden | |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=Excel® Studie Bézier-Cascade & Hermite= | =Excel® Studie Bézier-Cascade & Hermite= | ||
− | + | * Sie erhalten die [http://www.cnc-mac.de/html/download.html Studie Bézier-Cascade & Hermite] direkt von meiner WebSite. | |
− | + | ||
− | + | ||
− | |||
− | + | =Catmull-Rom Spline / Cardinal Spline / Kochanek-Bartels Spline etc. = | |
+ | gehen auf den Hermitischen Spline zurück. Die Namensgeber entwickelten Algorithmen, den Winkel und die Länge der Anfasser zu berechnen, um markante Kontrollpunkte per Cascadierung automatisch zu interpolieren. Der Bogen schließt sich zum Kubischen Spline, der genau dies tut. | ||
− | |||
− | |||
− | + | *In Teil 2 dieses Tutorials finden Sie Erkenntnisse aus der Hermite-Mathematik, einige "Bedien-Hinweise" zur Studie - und die Auflösung der Bézier-Überraschung! | |
+ | :*dazu nach [[Excel® Studie Bézier-Cascade & Hermite]] wechseln, | ||
+ | :*weil dieser Artikel sonst zu groß würde (meint ein freundlicher ''Lektor'' im Hintergrund) !!! | ||
− | |||
− | + | =Bézier und die Kettenlinie= | |
− | + | Auf der Suche nach einem besonders harmonischen Übergang zweier Geraden unter beliebigem Winkel bin ich auf die Kettenlinie gestoßen. Die Klassische Kettenlinie hängt "nach unten" durch; wird Ihre Form mit Bezier Kurven approximiert, so müßte jede beliebige Lage einer Kettenlinie möglich werden. Untersucht wird das Thema unter | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | die | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | :*[[Bézier und die Kettenlinie]] | |
− | + | =Inverse Kinematik= | |
+ | Die hier besprochene Mathematik beschreibt eine "''Koordinaten-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= | ||
+ | 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 | ||
+ | * [http://www.cnc-mac.de/html/hardware.html RoBo-mac] | ||
− | |||
− | + | NLB | |
+ | [[Category:Robotikeinstieg]] | ||
+ | [[Category:Praxis]] | ||
+ | [[Category:Grundlagen]] | ||
+ | [[Category:Motoren]] | ||
+ | [[Kategorie:Microcontroller]] | ||
+ | [[Category:Elektronik]] | ||
+ | [[Category:Software]] |
Aktuelle Version vom 19. Juni 2017, 12:44 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.
Inhaltsverzeichnis
Vorwort Teil 1
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 und mich intensiv mit der
- Bezier, Hermite & Spline Interpolation
auseinandergesetzt. Hierzu mußte ich lernen "wie das geht": Nahezu alles was ich hier zu Papier gebracht habe, habe ich (viel zu lange) im Internet recherchiert aber nichts zusammenhängendes zum Thema, sondern nur Fragmente oder "professorale Ergüsse" gefunden. Hier habe ich versucht meine Erkenntnisse in einem Tutorial praxisorientiert und ohne höhere Mathematik darzustellen.
Link zu Teil 2
Der Artikel besteht aus 2 Teilen weil er sonst zu groß würde (meint ein freundlicher Lektor im Hintergrund) !!!
- hier ein Link zu Teil 2 Excel® Studie Bézier-Cascade & Hermite
Spline-Interpolation
Die Spline-Interpolation ist ein Begriff, der in den letzten Jahren zunehmend an Bedeutung gewinnt – und vor 30 bis 40 Jahren noch weitgehend unbekannt war. Und dies obwohl sie schon seit 100erten von Jahren genutzt wird. Paradox?
Zunächst einmal, der Begriff "Spline" kommt aus dem englischen, er bedeutet zu deutsch "Straklatte", was sicher auch nicht unbedingt für jedermann eingänglich ist; trotzdem: Sie hatten so was wahrscheinlich aber schon mal in der Hand!!!
Ich spreche von einem federnden etwas, das sich biegt aber nicht bricht und gerne in seine Ausgangsform zurückkehrt, z. B. ein Lineal. Unter Einwirkung einer äußeren Kraft läßt sich das Lineal im kleinen, die Straklatte im großen, oftmals sehr großen Maß verbiegen: Dem Schiffbau bis hin zur Titanic!
Das Geheimnis ist gelüftet: Will man mehrere Punkte (für den Rumpf eines Schiffes) elegant verbinden, so kommt die Straklatte seit einigen 100 Jahren zum Einsatz. Auf den Werften der Welt wurde sie auf dem Dach-Boden "1 zu 1" ausgelegt, geformt, mit Hammer & Nagel fixiert, gezeichnet und danach die Spanten geschnitten. Wird die Latte an nur wenigen Punkten fixiert, so tritt eine innere Spannung auf, die sie in eine weiche, stetige "elegante" Verformung führt. Was die Schiffbauer schon lange konnten, konnte nur kein Mensch berechnen.
Inzwischen überhäufen sich mathematische Lösungs-Ansätze hierzu, deren Verständnis mehrerer Semester höherer Mathematik bedarf. Als ich das studiert habe, gab es die Dinger noch nicht – bzw. die Mathematik stand auf dem Index militärischer Staatsgeheimnisse – konnte man hiermit doch "Frei-Formen" berechnen und fertigen, die eine geräuschlose U-Boot Fahrt ermöglichte!
- Ich gebe unumwunden zu, die Mathematik hierfür nicht nachvollziehen geschweige denn aufstellen zu können. Aber Einsetzen kann ich sie. Diese Ausarbeitung fokussiert daher auf Kurvendiskussion und angewandte Mathematik in Hinblick auf die Steuerung von Robotern und hochachsigen CNC Bearbeitungscentren.
- In Teil 2 dieser Ausarbeitung finden Sie den Zugang zu einer praxisorientierten Excel®-Studie. Vieles von dem, was ich hier schreibe habe ich mit dieser Studie erarbeitet!
Interpolation
beschreibt die Aufgabe einen oder mehrere nicht bekannte Punkte zwischen bekannten zu bestimmen, dies kann sehr einfach sein, wenn wir wissen, welcher Funktion die bekannten Punkte folgen: Es ist kein Problem einen beliebigen Sinuswert oder Parabelpunkt zu interpolieren – denn wir kennen die Funktion die die Ortskurve beschreibt. Haben wir jedoch eine Vielzahl von Punkten – aber keine Ahnung, wie sie entstanden sind – dann wird die Sache interessant.
Letztendlich können wir unendlich viele Kurven durch diese Punkte legen - welche die richtige ist, wissen die Götter. Wir können die Aufgabe etwas eingrenzen, indem wir die Verbindung der Punkte mit Geraden (lineare Interpolation) ausschließen und wir können evtl. sagen, die Verbindungslinie solle nicht allzu wellig sein. Eine wachsweiche Definition – die dem Spline recht nahe kommt.
Spline und Polynom
Das klassische Polynom verbindet eine beliebige Anzahl von Stützpunkten (K) mit einem Kurvenzug der Ordnung (K-1). 5 Stützstellen erfordern also eine Kurve 4-ter Ordnung, die exakt diese Stützstellen verbinden wird. Allerdings schwingt diese Kurve zwischen den Stützstellen erheblich (oszilliert), so daß der Polynomzug extrem wellig wird. Verantwortlich hierfür ist, daß die Kurve mit einer einzigen Funktion beschrieben wird. Im Gegenteil hierzu verbindet ein Spline die Punkte mit mehreren Kurvenabschnitten, die nicht einer einheitlichen mathematischen Funktion folgen, sondern aus "polynomen Bruchstücken" zusammengesetzt werden.
Die Spline-Kurve verbindet alle Punkte – nicht etwa linear durch Geraden, sondern Parabeln. Grundelemente sind kubische Parabeln (hoch 3), quadratische Parabeln (hoch 2) und lineare Glieder, die mit geeigneten Koeffizienten gestreckt, gestaucht und verschoben werden. Das Ergebnis nennt sich in seiner Grundform "Kubischer Spline". Mehrere dieser Parabeln bilden Teilstücke des Splines, wobei die Übergän-ge an den Knotenstellen die gleiche Tangente aufweisen – dies macht den weichen Übergang. Im mathematischen Sinne handelt es sich um "glatte Kurven":
- Zitat:
- "Glatte Kurve" bedeutet dabei im mathematischen Sinne, daß die Kurve zweimal stetig differenzierbar sein soll. Alle gegebenen Punkte stellen als Stützstellen der Kurve sozusagen auch Nahtstellen zwischen den Teilkurven dar, in denen jeweils beide Funktionswerte, beide erste und auch zweite Ableitungen der zusammentreffenden Teilkurven übereinstimmen. Diese Naht- oder Stützstellen werden auch Knoten genannt. http://www.arndt-bruenner.de/mathe/scripts/kubspline.htm
- Begriffsdefinition:
- Glatte Kurve / Ableitung / zweimal stetig differenzierbar vgl. Anhang Teil 2
Aber bitte glauben Sie nicht, daß diese Splines nicht schwingen würden, Vielleicht nicht ganz so extrem wie ein Polynom, trotzdem: Ich habe es in der Analyse geschafft, die Scheitelpunkte eines Splines um das 25.000-fache über seine y-Stützwerte hinauszutreiben!
Wesentliche Charakteristika dieser Kurven:
- Sie verbinden die Punkte, aber nicht auf dem kürzesten Weg (das wäre eine Gerade), sondern schwingen vor und hinter den Stützstellen ein bzw. (mehr oder weniger) über, sie oszillieren.
- Je näher sich die x-Werte kommen, je weiter die Y–Werte auseinander liegen, je stärker wird die Neigung zum Oszillieren.
Kubischer Spline und xy-Koordinaten
- Verschiebt man einen Stützpunkt auf der y-Achse, so folgt der Spline,
- verschiebt man ihn auf der x-Achse so folgt der Spline, solange sich der Stützpunkt zwischen 2 anderen Stützstellen befindet.
- Verschiebt man einen Stützpunkt über einen anderen hinaus, so tauschen die Stützpunkte ihre x-Achsen Wertigkeit – und der Spline ggf. seine y-Ausrichtung!
Interpoliert man eine zeitlich kontinuierlich forschreitende Meßreihe so ist dies unproblematisch. Findet man eine Vielzahl von Punkten, die es zu verbinden gilt, so wird man diese in einem Koordinaten System erfassen. Nach Murphys Gesetz der größten Gemeinheit hängt die Schwingneigung davon ab, wie das xy-Koordinaten System die Punkte erfaßt:
Denk-Experiment
Man nehme die Eckpunkte einer symmetrischen Trapez-Kurve:
- Liegt die Kurve parallel zur x-Achse, so wird der Spline Sinus-ähnlich überschwingen.
- Dreht man die Kurve im Koordinatensystem, so verändern sich die x-Achsen Abstände.
- - Paarweise verkürzt sich der Abstand, paarweise verlängert er sich.
- - Der Spline oszilliert extrem unsymmetrisch,
- - parasitäre Schwingungen mit zusätzlichen min/max Punkten kommen hinzu.
- - Ich habe so den 25.000-fachen Überschwinger erzeugt!
Wer also glaubt, zur Steuerung von Robotern und CNC Systemen könne man "ein paar Eckpunkte" einfach per Spline-Interpolation verbinden, kann Überraschungen erleben!
Aus all dem geht hervor:
- Der Kubische Spline ist eine stetig fortschreitende Kurve, sie kann stetige Veränderungen recht gut interpolieren, Sprung-Funktionen provozieren hingegen starkes Überschwingen.
- Der Kubische Spline kann nicht geschlossen werden.
- Um die Verwirrung etwas voran zutreiben, kann man natürlich mit einem, nein zwei Kubischen-Splines schon etwas kreisförmiges bewirken. Ähnlich wie die stetig fortschreitende sin/cos Überlagerung in der klassischen CNC einen Kreis plottet, können stetig fortschreitende Splines aus der Überlagerung natürlich ebenfalls "das Werkzeug zurückführen".
Die Spline-Mathematik schaut bei jeder Interpolation des Kurvenverlaufes nach links und rechts, also wo die Kurve herkommt (vorheriger Stützpunkt) und wo sie hin soll, wenn der Stützpunkt verlassen wird (nächster Stützpunkt). Im mittleren Kurverbereich ist dies unproblematisch, für die Start- und Endpunkte schon – denn es gibt keine Stützpunkte außerhalb der Kurve.
Natürlicher Splin
Per Definition stellt "natürlich" einen Spline dar, der außerhalb seines mathematisch definierten Kurverbereiches gradlinig verläuft – ob dies bei einer echten Kurve natürlich ist, sei dahingestellt. Für die Robotik ist dies optimal, verbindet ein natürlicher Spline doch Geraden miteinander "ohne Knick".
Als Pendent zu den Natürlichen Splines mit linearem Verlauf außerhalb der Kurve werden Splines definiert, die an Stelle des linearen Verlaufes "glauben", in eine Parabel überzugehen.
Noch mal zum mittleren Kurvenbereich: Hier schaut der Spline nach links und rechts, das ist nicht unproblematisch: Denn die Änderung eines einzelnen Spline Stützpunktes hat globale Auswirkungen auf die Kurve weit über andere Stützpunktbereiche hinaus.
B-Spline
Anders verhalten sich die B-Splines, hier hat die Änderung eines Stützpunktes kaum globale Auswirkung, sondern schwerpunktmäßig lokalen Einfluß auf die Kurvenform. Allerdings geht der B-Spline im mittleren Bereich nicht mehr durch die Stützpunkte, sondern an ihnen vorbei. Die Kurve wird von den Stützpunkten "gewichtet beeinflußt", lediglich Start- und Zielpunkt des B-Spliens liegt auf der jeweiligen Stützstelle.
Anders als der Kubische Spline kann der B-Spline zu einer geschlossenen Kurve geformt werden; bei einem Kreis ähnlichen B-Spline liegen die mittleren Stützstellen außerhalb der Kurve – aber in deren Nähe!
Constrained Cubic Spline
Ist ein Spline, der nicht überschwingt! Der "gebändigte" Spline kommt der Straklatte recht nahe. Per Definition spannen jeweils 2 benachbarte Knotenpunkte ein Rechteck parallel zur xy-Achse und begrenzen, "bändigen" den Spline.
- Stetige Kurven laufen "diagonal weich" durch die Rechtecke, ohne die Begrenzung zu berühren.
- Sprung-Funktionen "schlagen an", manchmal wirkt er im Knotenbereich etwas "eckig".
In unserem Trapezbeispiel läuft der Constrained Spline bei x-Achsen paralleler Ausrichtung horizontal als Gerade, die Schrägen werden verrundet. Dreht man die symmetrische Trapez-Kurve im Koordinatensystem, so ergibt sich ein unsymmetrischer, ggf. eckiger Spline.
Überschwingen, was ist das?
Vielleicht mehr philosophisch: Auch Überschwingen ist eine Frage der Definition und des Meßaufbaus.
Nehmen wir einen ganz normalen Kreis im xy-Koordinatensystem.
- Fallen die Mittelpunkte von Kreis und Koordinatensystem zusammen, so wird kein Mensch auf die Idee des Überschwingens kommen.
- Legen wir den Kreis so, daß er x- und y- Achse tangiert, so werden wir die Punkte im Bereich von 0 bis 90 Grad, 90 bis 180 etc. ebenfalls nicht als überschwingend erachten. Liegen die zu verbindenden Punkte bei 0 und 180 Grad, so kann man vortrefflich streiten, ob es sich um einen Überschwinger gegenüber der doch parallel zur x-Achse laufenden Sehne handelt!
Die Spline-Inflation
Während in der Mitte des letzten Jahrhunderts einigen Wissenschaftlern gewiß die Grundlagen der Spline-Mathematik bekannt waren (Schönberg soll hieran bereits 1945 geforscht haben), gab es hierfür zunächst keine Anwendung; Impulse setzte die Automobil und Flugzeugindustrie in den 1960-igern. Nunmehr überschlagen sich die Entwicklungen mit dem "Nachnamen" Spline; Hermitischer Spline / Catmull-Rom Spline / Cardinal Spline / Kochanek-Bartels Spline etc.
Mehr oder minder sind diese Splines miteinander verwandt, gemeinsam ist ihnen, daß eine Einflußmöglichkeit auf die Kurvenform zwischen den Knotenpunkten besteht. Ein Überschwingen wie beim "Natürlichen, kubischen Spline" oder Anschlagen wie beim "Constrained Spline" ist so vermeidbar. Die Problematik der Kurvenform-Änderung in Abhängigkeit der relativen Lage im Koordinatensystem (vgl. "Denk-Experiment") besteht nicht.
Urvater dieser Spline-Familie ist der Hermitische Spline, genannt nach Charles Hermite - der ihn aber nicht kannte! Zwei französische Mathematiker müssen wohl als Pionier der angewandten Mathematik gesehen werden; die Spline-Inflation folgte und ist leichter zu verstehen, wenn wir uns zunächst dieser Pionierarbeit zuwenden:
Bézier- und Casteljau
Recht ähnlich in ihrem Aussehen – in ihrem Verhalten jedoch völlig anders als "Natürliche, kubische Splines" – sind Bézier- und Casteljau-Kurven. Beide Herren haben in den frühen 60igern des vorigen Jahrhunderts von einander (vermutlich) unabhängig – weil für die Konkurrenzfirmen Citroen und Renault tätig, eine deckungsgleiche Kurve entwickelt. Bézier suchte den Ansatz in der numerischen Mathematik mit Computern der späten 50iger (bitte mal in Erinnerung rufen; es gab keine Computer-Grafik, sondern IBM-Kettendrucker & Co; was der Mann leistete ist phänomenal; so entwickelte er eigens eins der ersten CAD Systeme, UNISURF).
Casteljau suchte den Ansatz in der darstellenden Geometrie und technischen Mechanik. Seine Lösung baut auf Getriebelehre auf. Vorteil dieser Lösung: Modelle / Werkzeuge konnten - ohne Umweg über eine Zeichnung - direkt "aus dem Vollen geschnitzt" werden (auch CNC-Fräsen waren noch nicht erfunden).
Ob nun Bézier oder Casteljau: Die Kurve und ihre Konstruktion kann man (nachdem man's weiß) verhältnismäßig leicht nachempfinden:
Man nehme: 2 stabile (unverwindbare) Tragschienen, am Ende jeder Tragschiene niete man eine (nicht allzu steife) Straklatte an. Und zwar so, daß die Straklatte an der Tragschiene parallel zurück läuft – und das bei beiden Tragschienen. Die Tragschienen sind also Tangente. Im Ergebnis sieht dies wie der Buchstabe "M" aus, wobei die Mitte des "M" nicht spitz zuläuft, sondern sich U-förmig formt - weil die Straklatte das so will !!!
Verschiebt man jetzt die beiden Tragschienen winklig oder parallel gegeneinander, so formt sich die Straklatte.
Bei den echten Bézier Kurven kommt hinzu, daß der Abstand der "Niet-Punkte" sowie die Länge der Tragschienen Einfluß auf die Länge der Kurve haben. Da dies so ist, wird bei Bézier und Casteljau die Kurve nie außerhalb des durch die 4 Punkte gebildeten Gevierts liegen - wird auf dieses Geviert bezogen nie überschwingen!
Unterschieden werden Bézier- und Casteljau-Kurven 1ten, 2ten und höheren Grades.
Die Kurve 1ten Grades
ist eine Gerade mit 2 Kontrollpunkten (wie jede andere Gerade auch).
Die Kurve 2ten Grades
(quadratische Bézier-Kurve)
hat 3 Kontrollpunkte. Man kann sich das so vorstellen, daß unsere beiden Tragschienen in deren freiem Ende auf einen Punkt fallen. Anders ausgedrückt: Sie formen einen offenen Winkel und die darin eingespannte Straklatte eine Parabel. Der Scheitelpunkt jeder Bézier Kurve 2ten Grades liegt auf halber Lot-Höhe des äußeren Kontrollpunktes zu der die Start- und Ziel-Punkte verbindenden Sehne.
Die Kurve 3ten Grades
(kubische Bézier-Kurve)
arbeitet mit 4 Kontrollpunkten und hat wohl die wesentliche Bedeutung. 2 Kontrollpunkte liegen auf der Kurve (Start/Ziel), die beiden anderen bestimmen die Kurvenform (dies ist unser Tragschienen-Beispiel).
Das eigentliche Ergebnis, die Form liegt innerhalb dieser 4 Kontrollpunkte,
- - aber das Ergebnis ist meist eher zufällig, wenngleich exakt reproduzierbar,
- - schließen läßt sich die Kurve 3ten Grades nicht!
Der Scheitelpunkt einer Bézier Kurve 3ten Grades liegt auf 3/4 Höhe der äußeren Kontrollpunkte, so beide die selbe Lot-Höhe zur (Start/Ziel) Sehne haben. Bei unterschiedlicher Lot-Höhe wächst die Scheitelpunkt-Höhe auf max. 88,9% der beiden arithmetisch gemittelten Lot-Höhen.
Kubische Bézier-Kurve
Nennen wir die Kontrollpunkte auf der einen Tragschiene 0 und 1, die auf der anderen 2 und 3 (die Straklatte sei zwischen 0 und 3 angenietet). Bewegen wir 0 und 3 aufeinander zu, 1 und 2 voneinander fort, so lassen sich schöne , hufeisenähnliche asymmetrische "Freiformen" erzeugen, solange die Punkte 0 bis 3 nicht auf einer Geraden liegen. Ist dies der Fall, so wird auch die Freiform zur Geraden!
Vollständig schließen läßt sich eine einzelne Bézier Kurve 3ten Grades noch nicht, jedoch können mehrere Kurven (zu einem Bézier-Spline) cascadiert werden. Der Punkt 0 der folgenden Kurve fällt dann auf den Punkt 3 des Vorgängers, die Punkte 2 und 1 bilden eine gemeinsame Tangenten-Gerade. Die beiden Bézier Abschnitte lassen sich dann zu zwei hufeisenähnlichen Halbkreisen schließen.
Wesentlicher Unterschied: Beim B-Spline liegen die mittleren Stützpunkte in der Nähe der Kurve, bei Bézier- und Casteljau-Kurven gibt es per Definition keine Stützpunkte, sondern Kontrollpunkte. Zwei dieser Kontrollpunkte (0 und 3) können als Stützstelle erachtet werden, die beiden anderen (1 und 2) liegen bei Bézier-Kurven (auch denen höherer Ordnung) völlig außerhalb der Kurve.
Der im deutschen gebräuchliche Begriff "Kontrollpunkt" geht wohl auf eine Fehlübersetzung zurück. Die englische Begrifflichkeit "control" steht eher für steuern als für kontrollieren. "Steuerpunkt" wäre wohl besser gewesen. Etwas anschaulich werden die Punkte 1 und 2 auch als "Handgriff" bezeichnet. Es bedarf einiger Übung, mit diesen Handgriffen / Steuerpunkten die gewünschte Kurve zu erzeugen.
Wechselt die Position 2 und 3 gegenseitig (die Tragschiene wird umgedreht), so entsteht eine S-förmige Bézier- bzw. Casteljau-Kurve.
Es mag eine gewisse Tragik sein, daß Paul de Faget de Casteljau die Kurve und deren Konstruktion einige Jahre vor Pierre Bézier entdeckte. Citroen hielt die Entdeckung lange, sehr lange geheim, Bézier durfte eher veröffentlichen – die Kurve trägt seinen Namen.
- Einen exzellenten Zusammenhang zeigt http://en.wikipedia.org/wiki/B%C3%A9zier_curve
In der Bézier Mathematik wird die (kubische) Kurve mit zwei Stützpunkten und 2 Steuerpunkten vollständig beschrieben. Die Genialität Pierre Béziers greift dabei auf das Bernsteinpolynom zurück, das Sergei Natanovich Bernstein 1911 für den Näherungsbeweis der Weierstraß'schen Approximationstheorie entwickelte.
Grundsätzlich gilt:
- Ein Polynom besteht aus mehreren Einzelfunktionen, die jeweils einen eigenen Grafen beschreiben. Die Anzahl der Einzelfunktionen ist gleich der polynomen Ordnungszahl plus 1, bei Bézier also gleich der Anzahl der Kontrollpunkte.
Bernsteinpolynom
- Das Polynom zeigt einen Fensterausschnitt der Einzelfunktionen im Bereich der xy-Koordinaten 0 bis 1; es ist achsensymmetrisch zum Mittelwert x gleich 0,5. Die beiden jeweils äußersten Einzelfunktionen folgen einer "einfachen" Parabel gem. Ordnungszahl. Die Summe aller Einzelfunktionen beträgt stets 1!
- Vom Ansatz multipliziert Bézier "die xy-Koordinaten seiner 4 Kontrollpunkte" mit den 4 Grafen des Bernsteinpolynoms 3ten Grades "matrixförmig" und addiert die jeweils 4 Produkte je Kurvenpunkt zu dessen X bzw. Y Wert.
- Die Berechnung erfolgt parametriert von 't gleich 0' bis 't gleich 1', wobei diese extrem-Werte zugleich die Tangenten-Vektoren der Handgriffe repräsentieren.
Das hört sich kompliziert an und ist es auch;
- hilfreich zum Verständnis ist die Excel® Studie (s.u.). Vieles von dem, was ich hier schreibe habe ich mit dieser Studie erarbeitet!
Das Geniale ist, daß die einmal berechneten Bernsteinpolynome als Festwert-Tabelle (ähnlich der Logarithmentafel) hinterlegt werden können und die eigentliche Berechnung der Bézier Kurven sich auf simple Multiplikation und Addition beschränkt. Was naturgemäß wenig Rechenaufwand erfordert.
Noch einmal:
Bézier- & Casteljau-Kurven sind schön –wie die Autos der 50iger und 60iger, sie können Punkt-symmetrisch, Achsen-symmetrisch oder unsymmetrisch sein. Zwei Geraden verbinden sie wunderbar, einen oder mehrere dazwischen liegende Punkte interpolieren sie hingegen eher zufällig; es sei denn, man cascadiert.
Hier wird es interessant:
- Wird lediglich die Kurve (z.B. für eine Zeichnung) benötigt, so besteht lediglich die Forderung, daß beide Kurvensegmente im Knotenpunkt eine gemeinsame Tangente aufweisen müssen;
- kommen, wie bei CNC- und Roboter- Steuerungen Dynamikanforderungen hinzu, so gilt: Die sich aus der Cascadierung ergebende Kurve selbst, also ihre Funktion sowie deren 1te und 2te Ableitung müssen in den Knotenpunkten (t = 0 bzw. t =1) stetig sein, um den "weichen Übergang" zu gewährleisten.
Wir kommen mehrfach auf das Thema zurück!
Bézier und die Handgriffe
Es gibt eine Vielzahl von Applets zu diesem Thema im Internet. Man kann die Handgriffe / Anfasser mit der Maus verschieben und sich freuen; verstanden habe ich die Mechanik, will sagen, Mathematik mit diesen Applets nicht. Hilfreich war hingegen eine Arbeit von Klaus Kühnlein, auf deren Basis ich eine Experimental-Studie entwickelt habe.
Excel® Studie Bézier-Cascade & Hermite (Sie finden die Studie im Download-Bereich meiner Web-Site.)
- Um Bézier & Hermite zu untersuchen werden in einem Excel® Sheet diverse 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. 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 untersucht für Bezier die Nachbildung eines Kreissegmentes sowie einen Spline aus 3 Bézier- bzw. Hermite Kurven. Diese sind "koppelbar" oder auch nicht. Sie können hiermit die wildesten Splines erzeugen.
- Ergänzend untersucht die Excel-Studie Hermite im Vergleich zu Bézier. Wesentliche Erkenntnis: Bezier und Hermite können gegenseitig ineinander abgebildet werden. Vorteil: Die Bezier-Anfasser sind kürzer und in ihrer Wirkung besser vorhersehbar.
- Bahnkurve & 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.
- Für Bezier macht die Studie 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! Und diese bezieht sich unter CNC und Roboter-Gesichtspunkten nicht nur auf die Form der Bahnkurve, sondern deren Dynamik! Hier analysiert die Studie (Teil 2) überraschende Zusammenhänge!
Zunächst die Bézier Betrachtungen, danach Erkenntnisse zu Hermite. Vieles hiervon ist theoretisch, abstrakt. Die Studie gibt Erkenntnisse aus der Praxis für die Praxis.
Bézier und der Kreisbogen
Einigkeit besteht in den Veröffentlichungen, daß man mit Bézier einen Viertel-Kreis recht gut approximieren könne. Angegeben und auch bewiesen wird für das 90-Grad Kreissegment ein Faktor
- K = 4/3*[ (sqrt(2)-1] = 0,5522847498
- Der Radius eines Viertel-Kreises multipliziert mit diesem Faktor, (meist "Kappa" genannt) ergibt die Länge des Anfassers; um eine Ellipse zu bilden wird die Länge der beiden Halb-Achsen jeweils als Radius gesetzt.
- Beim 90-Grad Kreissegment weicht die Bézier-Kurve mit diesem Näherungs-Wert im 1/10 Promillebereich "nach außen" ab. Diese hervorragende Näherung ist sogar noch zu verbessern, wenn sich die Kurve von "innen und außen" an das Kreissegment anschmiegt.
Zu anderen Winkeln war meine Recherche ergebnislos; mit o.g. Experimental-Studie habe ich Näherungen für Tangentenwinkel im Bereich 0 bis 180 Grad ermittelt. Definiert ist der Tangentenöffnungswinkel als der, der einen Kreis tangential von außen berührt, (der Winkel des korrespondierenden Kreissegmentes ergibt sich aus "180 - Tangentenöffnungswinkel). Die Faktoren für die Stützstellen 0 bis 180 Grad wurden im 30er Raster iterativ genähert, die Zwischenwerte im 1,8 Grad Raster aus dem arithmetischem Mittel von kubischem- und constrained Spline interpoliert.
Die angegebenen Näherungs-Faktoren liegen im Bereich "0" (für einen Tangentenöffnungswinkel von 180 Grad, das ist ein Punkt) bis ca. "1,32" für einen Tangentenöffnungswinkel von 0-Grad (die Tangenten liegen dann parallel) - wegen des Näherungsfehlers jedoch nur bedingt verwendbar.
Der Näherungsfehler "Bézier zu Kreis"
liegt für Tangentenöffnungswinkel zwischen 180 bis 90 Grad im 1/10 Promillebereich, im Bereich 60 bis 30 Grad im einstelligen Promillebereich, danach nimmt er deutlich bis in den Prozentbereich zu!
In der Studie sind Radiusschwankung und Näherungsfehler nach Mittelwert, min/max sowie Standardabweichung ausgewiesen. Der Näherungsalgorithmus bewertet die Anschmiegung als geometrisches Mittel aus Ziel-Radius und Standardabweichung. Im Ergebnis touchiert die Bézier-Kurve das Kreissegment durchgängig von 0 bis 180 Grad "innen und außen". Für das 90-Grad Kreissegment ermittelt die Studie einen Kappa-Faktor von 0.551784859. Dies verbessert (zumindest rein rechnerisch) die mit dem Klassiker ohnehin schon hervorragende Näherung.
Die Analyse macht deutlich: Die "richtige" Näherung gibt es nicht, da die Werte nicht korrelieren. Je nach Wichtung führt der Algorithmus zu Ergebnissen, die sich ab der 4ten Kommastelle unterscheiden. Der Näherungsalgorithmus wichtet (empirisch ermittelt) unter Berücksichtigung des Öffnungswinkels.
Bézier-Kurven 4-ten und höheren Grades
ermöglichen extrem komplexe & elegante Formgebung. Das mit 5 und mehr Kontrollpunkten erreichbare Ergebnis ist (ohne PC-Grafik) kaum intuitiv vorherzubestimmen.
- Bézier-Kurven 4ten Grades lassen sich bereits schließen.
- Eine Kurve "höheren Grades" läßt sich immer auf mehrere Kurven "niederen Grades" zurückführen, die dann entsprechend "cascadiert" werden.
Der Hermitische Spline
unterscheidet sich bereits auf den ersten Blick in den Anfassern. Bei Hermite startet die Kurve wie bei Bézier von Kontrollpunkt 0 in Richtung 1, jedoch liegt der Kontrollpunkt 2 in der gedachten Verlängerung der Kurve (bei Bézier hatten wir diesen Ziel-Punkt P3 genannt). Auf den zweiten Blick wird man feststellen, daß die Kurve gegenüber Bézier "weitgehend" außerhalb des Kontrollpunkt-Gevierts liegt.
- Hermite reagiert auf die Bewegung der Anfasser deutlich komplexer. Während der Start-Anfasser zu einer recht Bézier ähnlichen Verformung führt, stellt der Ziel-Anfasser alle Erwartungen auf den Kopf: Zieht man ihn (bei unverändertem Winkel), so weicht die Kurve entgegen der Zug-Richtung nach hinten aus. Meist nimmt sie eine "S-förmige" Kontur an. Der Anfasser ist Flucht-Tangente im Ziel-Punkt.
- Der Hermitische Spline läßt sich wie Bézier ebenfalls cascadieren. Um die Glattheit im Knotenpunkt zu garantieren ist per Definition der Start-Anfasser der Folge-Stufe gleich dem Ziel-Anfasser der Vor-Stufe. Bewegt man also diesen Kombi-Anfasser, so reagiert das Ganze recht eigenwillig und unvorhersehbar - mit Kanten, Schlingen und Schleifen. Auffällig ist, daß gegenüber Bézier wesentlich längere Anfasser erforderlich werden, um die Kurve zu formen. Oftmals liegen sie weit außerhalb der eigentlichen Kurve – und außerhalb des Bildschirmes! All dies macht die (interaktive) Handhabung des Hermitischen Splines deutlich ungelenker als Bézier.
Die Hermite-Mathematik
erläutert Teil 2 dieses Tutorials gemeinsam mit der hier im Focus stehenden
Excel® Studie Bézier-Cascade & Hermite
- Sie erhalten die Studie Bézier-Cascade & Hermite direkt von meiner WebSite.
Catmull-Rom Spline / Cardinal Spline / Kochanek-Bartels Spline etc.
gehen auf den Hermitischen Spline zurück. Die Namensgeber entwickelten Algorithmen, den Winkel und die Länge der Anfasser zu berechnen, um markante Kontrollpunkte per Cascadierung automatisch zu interpolieren. Der Bogen schließt sich zum Kubischen Spline, der genau dies tut.
- In Teil 2 dieses Tutorials finden Sie Erkenntnisse aus der Hermite-Mathematik, einige "Bedien-Hinweise" zur Studie - und die Auflösung der Bézier-Überraschung!
- dazu nach Excel® Studie Bézier-Cascade & Hermite wechseln,
- weil dieser Artikel sonst zu groß würde (meint ein freundlicher Lektor im Hintergrund) !!!
Bézier und die Kettenlinie
Auf der Suche nach einem besonders harmonischen Übergang zweier Geraden unter beliebigem Winkel bin ich auf die Kettenlinie gestoßen. Die Klassische Kettenlinie hängt "nach unten" durch; wird Ihre Form mit Bezier Kurven approximiert, so müßte jede beliebige Lage einer Kettenlinie möglich werden. Untersucht wird das Thema unter
Inverse Kinematik
Die hier besprochene Mathematik beschreibt eine "Koordinaten-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