Willkommen! Anmelden Ein neues Profil erzeugen

Erweiterte Suche

Least-squares Delta Auto-Calibration mit OctoPrint und Repetier

geschrieben von ponschab 
Least-squares Delta Auto-Calibration mit OctoPrint und Repetier
26. February 2017 19:06
Hallo zusammen,

mich treibt schon länger das Thema Autokalibration um. Nachdem ich mir letzte Woche drei FSRs gekauft habe, und die auch halbwegs tun was sie sollen, wurde die Sache aktuell.

Es gibt ja einige Ansätze die versuchen das Problem zu lösen.

Am vielversprechendsten erscheint mit die Least-Square Auto-Calibration von David Crocker (dc42), die in der RepRap Firmware implementiert und als auch als Webanwendung verfügbar ist. Hier im deutschen Forum ist Least-Square Auto-Calibration seltsamerweise kein Thema, mir sind nur ein paar (begeisterte) Kommentare von Glatzemann begegnet.

Für's erste will ich bei RADDS und Repetier bleiben, und das mit der Webanwendung ist schon etwas mühsam und schreit nach Automatisierung. Deshalb, und auch weil ich sowieso OctoPrint als Host verwende, habe ich überlegt das Ganze in ein OctoPrint Plugin zu packen. Als fauler Mensch habe ich gegoogelt und OctoPrint-Delta-Calibration gefunden. Leider ist das speziell für SeeMeCNC Drucker mit einer speziellen Variante des SeeMeCNC-Repetier Forks geschrieben.

Die Anpassungen, damit es mit Stock Repetier läuft, waren dann einfacher als gedacht. cool smiley

Das Ergebnis gibt es hier: OctoPrint-Delta-Calibration Branch: stock-repetier

Details zur Verwendung, was man braucht, wie man das installiert usw. stehen im README.

Zur Funktionsweise: Zuerst wird die bestehende Konfiguration aus dem EEPROM ausgelesen, dann mit G30 an zehn Stellen die Z-Höhe vermessen und an den Algorithmus verfüttert. Als Ergebnis werden neue Werte für "Z max length", "Tower X/Y/Z Endstop offset", "Horizontal rod radius at 0,0", und "Alpha A/B/C" in das EEPROM geschrieben.

Das Ergebnis der Kalibration ist wirklich beeindruckend! thumbs up

Es würde mich sehr freuen, wenn das jemand ausprobiert. Aber Achtung, da kann alles möglich schief gehen! Das Plugin wurde auf genau einem Drucker ausprobiert. Es schickt irgendwelche G-Codes an den Drucker. Wenn die Kalibrierung durchgelaufen ist, werden die geänderten Werte ohne Rückfrage in das EEPROM geschrieben. Die gesamte Implementierung ist noch ziemlich rudimentär.

Also, bitte, probiert das nur aus, wenn Ihr ganz sicher seid was das bedeutet und auch damit klarkommt, wenn das Ding nicht das macht was es soll. Im schlimmsten Fall fährt der Druckkopf Vollgas ins Druckbett und/oder das EEPROM ist vermurkst. Irgendwas explodiert, die Katze stirbt oder was-weiß-ich. Eine Hand am Resetknopf und in der anderen ein Zettel mit den bestehenden EEPROM-Werten kann bestimmt nicht schaden.

TL;DR: Wenn etwas schief geht ist das Dein Problem!

Ansonsten freue ich mich über Feedback, entweder hier oder als Issue auf Github.

Teaser:



Viele Grüße,
Marc

1-mal bearbeitet. Zuletzt am 26.02.17 19:09.
Re: Least-squares Delta Auto-Calibration mit OctoPrint und Repetier
27. February 2017 02:02
Hallo Marc,

leider jetzt wenig kontruktiv: Da ich kein OctoPrint benutze, sondern den Repetier-Server, kann ich es leider nicht ausprobieren, so gern ich es gerade testen würde! ;-) Gibt's eine Möglichkeit dies ohne wahnsinngen Aufwand in den Repetier-Server zu implementieren?

Gruß
Sven
Re: Least-squares Delta Auto-Calibration mit OctoPrint und Repetier
27. February 2017 05:09
Hi Sven,
so ein großer Aufwand, wenn man ein ca. 300-400 mm langen Stab zur Hand hat ist es eigentlich nicht :-).
Denke auch darüber nach, wie man das mit "Z-min" Endstops automatisieren kann :-)

Nimm dir bitte die 6,38 Minuten Zeit für das Video hier:
[www.youtube.com]

Repetier-Firmware hat ja die Möglichkeit mit G33 ohne Raumwinkelverzug zu Kalibrieren.
Mit der Einrichtungsprozedur, siehe Video, wird nix mehr "oval" oder ähnliches :-)
Eine "grade" Heizplatte wär da natürlich von Vorteil.

Die Laufwagen müssen zuerst parallel und gleich eigentlich zur Heizbett-Ebene laufen !
Mit einer Lehre müssen die Laufwagen der drei Achsen erst einmal den gleichen Abstand zum Heizbett erhalten .
Quelle:
[www.repetier.com]

"Tower X/Y/Z Endstop offset"
Wäre also somit keine so gute Idee .

Bzw. Reine Glückssache mit G30 ...

Um Ehrlich zu sein, mach ich das einfach per Hand, einem großen Anschlagwinkel und einem Blatt Papier und fahre 4 Punkte an.
Geht schnell, Sicher ist Sicher

Gruss
Angelo

1-mal bearbeitet. Zuletzt am 27.02.17 06:58.


Mein Club: [hackerspace-ffm.de]
RADDS-Shield -> Commercial [max3dshop.org]
Re: Least-squares Delta Auto-Calibration mit OctoPrint und Repetier
27. February 2017 15:17
Hi Sven,

das könnte man theoretisch auch in Repetier-Server implementieren. Allerdings kann das nur Repetier selbst machen, der letzte Commit der Open Source Variante ist von 2014.

Ich vermute aber, dass mittelfristig Repetier selbst eine ähnliche Implementierung bringen wird. Wohl eher in Repetier Host, oder, was ich persönlich den besten Weg fände, in der Firmware. Siehe z. B. seine Kommentare hier: [forum.repetier.com]. Wenn in Firmware, wäre das wohl wegen der Ressourcen auf die 32-Bit Controller beschränkt. Ist aber egal, 32 Bit machen für einen Delta sowieso mehr Sinn.

Wenn es Dich wirklich interessiert, kannst Du Dir auch nur für diesen Zweck OctoPrint installieren. Es muss kein Raspberry Pi sein, ich lasse OctoPrint auf dem Desktop Rechner laufen. OctoPrint läuft auf Linux, Mac und Windows. Anleitungen sind hier verlinkt: [octoprint.org]

Viele Grüße,
Marc
Re: Least-squares Delta Auto-Calibration mit OctoPrint und Repetier
27. February 2017 15:52
Hi Angelo,

die Kalibration mit Stock kannst Du nicht wirklich mit der Least-Squares Callibration vergleichen. Genauso wenig die Distorsion Correction, die G33 macht.

Da vergleichst Du jeweils Äpfel mit Birnen.

Die Least-Squares Callibration versucht, durch Vermessen der Z-Höhe über das Druckbett verteilt, mechanische Abweichungen der Delta Kinematik so zu korrigieren, dass eine möglichst optimale Z-Ebene entsteht. Und das macht sie, zumindest meinem Eindruck nach, ziemlich gut. Das bekommst Du mit Stock nicht hin, oder? Vielleicht ist Dein Drucker auch 100%ig mechanisch exakt, dann schon, aber mal ehrlich, geht das wirklich?

Die Distorsion Correction (G33) ist (wenn ich es richtig verstehe) dazu gedacht, Unebenheiten des Druckbetts zu korrigieren. Wahrscheinlich gleicht sie mechanische Abweichungen der Delta Kinematik zum Teil auch aus, aber dann nur kosmetisch. Ich glaube nicht dass das im Sinne des Erfinders ist.
G33 würde ich erst ausführen, wenn ansonsten das Gerät maximal gut kalibriert ist.

Ich glaube hier sind sich alle einig, dass man seinen Delta so exakt wie möglich mechanisch aufbauen, vermessen und korrigieren sollte. Es ist aber auch eine Tatsache, dass das immer nur in begrenztem Maße möglich ist. Besonders für die Zielgruppe hier, die, der eine mehr, der andere weniger perfekte Bauteile, Materialien und vor allem Messwerkzeug zur Verfügung hat. Was mit dem Schreinerwinkel gerade wirkt, ist trotzdem krumm. Ein Zehntel oder Hundertstel ist beim 3D Druck u. U. schon verdammt viel. Letztendlich beißt sich die Katze in den Schwanz, weil, wenn ich jetzt den Aufwand treibe vielleicht aufs Tausendstel genau zu bauen, dann will ich doch auch aus der Kiste das Maximum herausholen und gefälligst einen sauberen 0.01 mm Firstlayer drucken grinning smiley
Davon bin ich weit entfernt, will aber aus meinem Drucker herauskitzeln was geht. Mechanisch und auch mit Software. Unser Spielzeug braucht ja sowieso beides winking smiley

Viele Grüße,
Marc
Re: Least-squares Delta Auto-Calibration mit OctoPrint und Repetier
27. February 2017 15:54
Hi Angelo,

was meinst Du denn damit?:

Quote
angelo
"Tower X/Y/Z Endstop offset"
Wäre also somit keine so gute Idee .

Bzw. Reine Glückssache mit G30 ...

Viele Grüße,
Marc
In diesem Forum dürfen leider nur registrierte Teilnehmer schreiben.

Klicke hier, um Dich einzuloggen