Moritz Kunze Master Seminar SS 2014 Mehrkopf 3D-Druck Algorithmen und Hardware
1Das Problem 2von 21 Moritz Kunze | Mehrkopf 3D-Druck D-Druck ist „langsam“ Objekte werden in Ebenen unterteilt Ebenen werden mit schmalen Linien gefüllt Schon simple Objekte benötigen Stunden Geschwindigkeit durch Technologie und Material eingeschränkt
2Inhalt 3 B Tools und Visualisierung (Christian Nienhaus) Im Anschluss von 21 Moritz Kunze | Mehrkopf 3D-Druck A Hardware und Algorithmen (Moritz Kunze) Grundlagen Erweiterung vorhandene Hardware Algorithmen für die Parallelisierung
3Der FDM 3D-Druck I 4von 21 Moritz Kunze | Mehrkopf 3D-Druck Fused Deposition Modeling (Schmelzschichtung) Schichtweiser Aufbau ABS-Kunststoff oder organisches PLA Extruder verflüssigt das Material und trägt es auf
4Der FDM 3D-Druck II 5von 21 Moritz Kunze | Mehrkopf 3D-Druck Drucker variieren in Größe und Genauigkeit 3-Achsen Bewegung µC als Steuereinheit Schrittmotoren Dateneingabe über SD-Karte Temperaturregelung für Extruder Filament 4. Achse
5Der G-Code 6von 21 Moritz Kunze | Mehrkopf 3D-Druck D-Drucker sind prinzipiell CNC-Maschinen mit 4-Achsen + Heizung Anweisungsliste Zeit indirekt enthalten durch Geschwindigkeitsdefinition Befehle für Konfiguration (Einheiten, Nullpunkt, Heizungstemperatur) Befehle für Bewegungen (Linien, Kreise, relativ und absolut) Beispiele: F2000 Feedrate auf 2000 Einheiten pro Minute G1 X1.0 Y10.0 Z0.0 E0.0 Der Kopf fährt zu den Koordinaten X=1 Y=10 Z=0 und E=0 F350 Feedrate auf 350 E/Min für Druckvorgang G1 X1.0 Y12.0 Z0.0 E1.0 Bewegen auf der Y-Achse +2 und Material +1 G1 X1.0 Y12.0 Z1.0 E1.0 Wechsel auf eine höhere Ebene Z=1 G1 X1.0 Y10.0 Z1.0 E2.0 Wie Schritt 4 (nur rückwärts)
6Geschwindigkeit 7von 21 Moritz Kunze | Mehrkopf 3D-Druck Gedruckte Linien „Reisen“ zwischen einzelnen Linien Zeit = (LinienLänge * LinienGeschwindigkeit) + (ReiseLänge * ReiseGeschwindigkeit) Slicer optimiert den Ablauf
7Parallelen zur Halbleitertechnologie 8von 21 Moritz Kunze | Mehrkopf 3D-Druck Halbleitertechnologie Taktraten werden durch die Physik eingeschränkt Parallelisierung von Architektur und Aufgaben Ressourcenmanagement nötig (Kollisionen, Deadlocks) 3D Druck Der einzelne Druckvorgang kann nicht beschleunigt werden Eine Mehrzahl von gleichzeitig aktiven Druckköpfen möglich? Parallelisierung der Anweisungsliste durchführbar? Kollisionen verhindern
8Einschränkungen 9von 21 Moritz Kunze | Mehrkopf 3D-Druck Mechanisch Keine beliebig hohe Anzahl von Köpfen möglich Köpfe können kollidieren Kalibrierung und Z-Versatz 2 Druckköpfe zunächst sinnvoll Material Strukturschwächung bei schlechter Teilung „Auslaufen” der Extruder in Pausen Außenlinien ungleichmäßig durch häufige Unterbrechung Die Parallelisierung muss angepasst sein
9Vorhandene Lösungen 10von 21 Moritz Kunze | Mehrkopf 3D-Druck Multiple Farben Duplizierende Technologien
10Vorhandene Hardware und Erweiterung 11von 21 Moritz Kunze | Mehrkopf 3D-Druck RepRap X400 Z-Achse mit Plattform realisiert Y-Achse als Traverse X-Achse Kopf auf Traverse Z-Achse nicht erweiterbar Y-Achse erweiterbar mit Traverse X-Achse erweiterbar mit 2. Kopf 2. Traverse verfügbar im Labor
11Parallelisierungsansätze 12von 21 Moritz Kunze | Mehrkopf 3D-Druck Köpfe auf einer Traverse Gemeinsame Y-Achse Sinnvoll für 2 identische Objekte 2 Traversen Gemeinsame Z-Achse Unterschiedliche Wege möglich Räumliche Trennung der Aufgaben notwendig Beschreibung für Kollisionsvermeidung Sperrbereiche für Köpfe als Hitboxen Prüfung über bewährte Algorithmen und Transformationen Generelle Beschreibung schwierig
12Workflow 13von 21 Moritz Kunze | Mehrkopf 3D-Druck STL- Objekt Slicer GCode Printer STL- Objekt Slicer GCode Printer 1 Scheduler GCode Printer 2 STL- Objekt Slicer GCode Printer 1 GCode Printer 2 Scheduler Smart Slicer
13Brute Force? 14von 21 Moritz Kunze | Mehrkopf 3D-Druck Sammlung von allen möglichen Bewegungskombinationen Entfernen von Lösungen mit Kollisionen Auswahl der Lösung mit dem besten Zeitverhalten Ebene mit 43 Linien Anzahl der Bewegungskombinationen bei einem Kopf: 43! 43! ~ Problem des Handelsreisenden Der Slicer liefert ein optimiertes Ergebnis Proof of Concept für Arbeitsteilung: Umverteilung Java, Einfacher Gcode-Parser/Generator Neuzuweisung von einzelnen Anweisungen
14Arbeitsteilung I 15von 21 Moritz Kunze | Mehrkopf 3D-Druck Getrennte Aufgabengebiete Ebene analysieren, Statistiken über Bewegungen erstellen 1. virtuelle Mittellinie ziehen 2. Arbeit aufteilen Linien unterhalb der Mittellinie an Kopf 1 Linien oberhalb der Mittellinie an Kopf 2 3. Linien, welche die Mittellinie schneiden an Kopf 1
15Arbeitsteilung II 16von 21 Moritz Kunze | Mehrkopf 3D-Druck Gleitende Aufgabengebiete Zeitabhängig Synchronisierung Bessere Arbeitsteilung
16Objektgröße und Eigenschaften I 17von 21 Moritz Kunze | Mehrkopf 3D-Druck Ergebnis ist extrem abhängig von der Vorarbeit des Slicers Linien parallel zu der Y-Achse lassen sich schlecht parallelisieren Kleine Objekte bieten wenig Raum für Zusammenarbeit Beispiel 1: Gordischer Knoten total dist total time 4.029s layers: 147 Solving.... 1: total dist total time 2.718s 2: total dist total time 1.426s approx speedup without travel: 1,48 Loadbalance H1/H2: 1,80 Scale 1 total dist total time s layers: 433 Solving.... 1: total dist total time s 2: total dist total time s approx speedup without travel: 1,63 Loadbalance H1/H2: 1,48 Scale 2.5
17Objektgröße und Eigenschaften III 18von 21 Moritz Kunze | Mehrkopf 3D-Druck Räumlich auseinanderwachsende Objekte profitieren Beispiel 2: Eiffelturm (Teil) total dist total time s layers: 312 Solving.... 1: total dist total time s 2: total dist total time s approx speedup without travel: 1,80 Loadbalance H1/H2: 1,24 Echter Speedup: 539s / 275s = 1,96
18 Ausblick 19von 21 Moritz Kunze | Mehrkopf 3D-Druck Speedup über Faktor 2 hinaus möglich Kalibrierung mit Kontaktpunkten Problem der mechanischen Präzison verbleibt Angepasster Slicer Bessere Aufgabenplanung im Vorfeld Vorhandene Slicer in Python und Java Umfeld STL- Objekt Slicer GCode Printer 1 GCode Printer 2 Smart Slicer
19Zusammenfassung 20von 21 Moritz Kunze | Mehrkopf 3D-Druck Hardwareerweiterung ist möglich Parallelisierung von identischen Objekten erprobt Aufgabenplanung für kooperative Zusammenarbeit muss weiter erarbeitet werden Kollisionserkennung und -vermeidung im Vorfeld notwendig Algorithmen und Objekteigenschaften bestimmen den Speedup Kollisionserkennung zur Laufzeit notwendig Kalibrierung und präzise Konstruktion erforderlich
21von 21 Moritz Kunze | Mehrkopf 3D-Druck Danke für Ihre Aufmerksamkeit