Bau eines 3D-FFF-Druckers mit Hilfe des Delta-Roboters Omron/Adept Quattro

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen


Der Omron-Adept Quattro s650H 3D-Drucker

← Hauptseite für Robotik
← Hauptseite des Praktikums Produktionstechnik

← Delta-Roboter Omron/Adept Quattro s650 und s650H
← Ansteuerung der Delta-Roboter Omron/Adept Quattro s650 und s650H

Ansteuerung des 3D-Druckers (veraltet) →
Entwicklung der Druckbett-Temperierung (veraltet) →
Entwicklung der Roboterzelle →

Das durch den Omron-Adept Quattro s650H 3D-Drucker gefertigte Modell „3DBenchy“

Übersicht

Der „Omron-Adept Quattro s650H 3D-Drucker“ ist eine seit 2019 an der Hochschule Hamm-Lippstadt von Student*Innen projektierte Anlage zur Prototypenfertigung mittels der „FFF“ (Fused Filament Fabrication).
Eine Besonderheit des Systems ist ein, in dem Bauraum hängender, vierachsiger Parallel-Roboter mit dem Namen „Omron-Adept Quattro s650H“, welcher von dem Unternehmen „Kuchenmeister GmbH“ an die Hochschule gestiftet wurde und den Aktuator der Anlage darstellt. Wegen seiner hohen Beschleunigung gibt er dem System das Potential, Kunstsoffteile in kurzer Zeit zu fertigen. Die relativ hohe Reichweite des Roboters ermöglicht außerdem die Herstellung von Werkstücken mit einer kreisrunden Grundfläche von bis zu 0,5 m². Weil der Endeffektor des Roboters über zwei Extruder verfügt, kann er zwei Kunststoffe gleichzeitig auf das Werkstück, beziehungsweise auf die Glasplatte des Heizbetts auftragen. Damit der Kunststoff gut auf dem Druckbett haftet, ist es mithilfe von neun Stellschrauben nivellierbar und temperaturregelbar. Für eine akzeptable optische Fertigungsqualität der Anlage sorgen auf den Extrudern montierte Lüfter, welche den aufgeschmolzenen Kunststoff sofort abkühlen, nachdem dieser aufgetragen wurde.
Ein weiteres Alleinstellungsmerkmal der Anlage ist ihr elektrotechnischer Aufbau. Statt eines einzigen Mikrocontrollers, welcher alle 3D-Druck-spezifischen Funktionen ausführt, verfügt das System über einen Steuerungscomputer, einen Bewegungscontroller und einen 3D-Druck-Controller. Die Koordination zwischen diesen drei Einheiten steuert ein, speziell für dieses Projekt entwickeltes „GUI“ (Graphical User Interface), welches auf dem Steuerungscomputer ausgeführt wird. Es kommuniziert mit dem selbstentwickelten Bewegungsprogramm auf dem Bewegungscontroller des Roboters und dem konfigurierten 3D-Druck-System „Marlin“ auf dem 3D-Druck-Controller mit dem Namen „RAMPS 1.4“.

Der systemtechnische Aufbau

Die Funktionsübersicht des Omron-Adept Quattro s650H 3D-Druckers

Die Interaktion zwischen einem/einer Benutzer*In und dem 3D-Druck-System findet durch den Steuerungscomputer und die Bedieneinheit des Bewegungscontrollers statt. Auf dem Steuerungscomputer kann das Roboter-Kontroll-Programm „ACE“ genutzt werden, um ein Bewegungsprogramm zu laden oder den Bewegungcontroller zu konfigurieren. Die Hauptfunktionen des 3D-Druckers werden jedoch über das GUI auf dem Steuerungscomputer bereitgestellt. Dazu gehört die Ausführung eines bereits vorbereiteten G-Code-Programms.
Mithilfe des TCP/IP-Protokolls sendet das GUI Programmzeilen an das Bewegungsprogramm auf dem Bewegungscontroller oder auf dem lokalen Roboter-Emulator. Über eine USB-Verbindung verschickt es außerdem Programmzeilen an das 3D-Druck-Programm auf dem 3D-Druck-Controller. Weil der Bewegungscontroller hauptsächlich für Roboterbewegungen verantwortlich ist und der 3D-Druck-Controller meist Extrusionen steuert, muss das GUI eine unter ihnen synchrone Arbeitsweise ermöglichen. Diese gewärleistet das GUI dadurch, dass es einen G-Code-Befehl zeitgleich an beide Controller vermittelt, sobald beide diesen angefordert haben.

Das GUI

Das GUI des Omron-Adept Quattro s650H 3D-Druckers

Das GUI ist mithilfe der Programmierumgebung „Matlab“ programmiert und ist unter https://svn.hshl.de/svn/MTR_GPE_Praktikum/trunk/Fachthemen/Delta_Roboter_Adept_als_3DDrucker/05_Entwicklung/GUI/GUI.exe zu finden.
Unter dem Abschnitt „TCP/IP“-Verbindung kann die IP-Adresse gewählt werden, unter welcher das Bewegungsprogramm ausgeführt wird. Wählt man die Adresse „172.16.102.198“, erwartet das GUI, dass das Bewegungsprogramm bereits auf dem Bewegungscontroller des Roboters ausgeführt wird. Die Auswahl der Adresse „127.0.0.1“ setzt voraus, dass über das Programm „ACE“ ein Roboter-Emulator aufgesetzt ist, welcher das Bewegungsprogramm ausführt. Mit einem Kick auf die Schaltfläche „Verbinden/Trennen“ wird eine Verbindung mit der selektierte Adresse aufgebaut.
Ähnliches gilt für den Bereich „USB-Verbindung“. In diesem Fall muss der ausgewählte USB-Port jedoch derselbe sein, andem der 3D-Druck-Controller angeschlossen ist.
Sobald eine TCP/IP-Verbindung besteht, werden die Schaltflächen des Bereichs „Druckbett-Nivellierung“ freigeschaltet. Klickt man auf eine der Schaltflächen, fährt der Roboter auf eine Kalibrierungsposition.
In dem Abschnitt „Druckvorgang“ kann mithilfe die Schaltfläche „Datei suchen“ eine G-Code-Datei geladen werden. Das GUI übernimmt den in der Datei enthaltenen G-Code und verwirft alle Kommentare und ermittelt, über welchen Teilen des Druckbetts Extrusionen stattfinden. Von dieser Erkenntnis leitet es ab, welche der vier Druckbett-Quadranten beheizt werden müssen.
War dieser Vorgang erfolgreich, lässt sich die Schaltfläche „Vorschau erstellen“ anklicken. In der darunter sichtbaren Ansicht werden dann verschiedene Bewegungen und Extrusionen in verschiedenen Farben eingezeichnet. Außerdem werden alle verwendeten Heizbett-Quadranten dargestellt.
Sobald ein G-Code-Programm geladen und mindestens ein Controller verbunden ist, lässt sich die Druckfläche „Drucken“ ankicken. Tut man dies, wird der spezifizierte G-Code wird ausgeführt.
Alle Vorgänge lönnen über die Statusanzeige, welche sich unten links im Fenster befindet, überwacht werden. Rechts daneben wird der Fortschritt des jeweiligen Vorgangs in Prozent ausgegeben.

Das Bewegungsprogramm

Das Bewegungsprogramm wurde mit der Programmierumgebung „ACE“ programmiert und ist unter https://svn.hshl.de/svn/MTR_GPE_Praktikum/trunk/Fachthemen/Delta_Roboter_Adept_als_3DDrucker/05_Entwicklung/Bewegungsprogramm/Bewegungsprogramm.awp zu finden. Es reagiert auf die G-Code-Befehle „M204“, „M205“, „G0“ und „G1“. Damit lassen sich alle notwendigen kinematischen Parameter, also eine Mindestgeschwindigkeit, eine Maximalgeschwindigkeit, eine Beschleunigung und eine Zielposition einer Einzelbewegung festlegen. Das Programm wird sofort angehalten, sobald sich eine Tür der Anlage öffnet.

Das 3D-Druck-Programm

Das 3D-Druck-Programm wurde mithilfe der Programmiersprache „C++“ programmiert und durch die Programmierumgebung „Visual Studio Code“ konfiguriert und kompiliert. Es basiert auf dem Betriebssystem „Marlin 2.1.2.4“. Es nimmt die meisten, durch die Marlin-Dokumentation definierten G-Code-Befehle entgegen, solange diese sich auf die vorhandenen Aktoren oder Sensoren beziehen. Diese Komponenten umfassen sowohl die Temperatursensoren und Heizwiderstände der vier Heizbett-Quadranten und der zwei Extruder, als auch ihre Schrittmotoren.

Anleitungen

G-Code erstellen

Um einen G-Code für das 3D-Druck-System zu generieren, müssen folgende Schritte durchgeführt werden:

1. Sicherstellen, dass der korrekte Start-G-Code verwendet wird:

1.1. Das Programm „Ultimaker Cura 3.3.1“ starten.
1.2. Unter „Preferences“ auf „Configure Cura“ klicken.
1.3. Auf „Printers“ klicken.
1.4. Auf „Machine Settings“ klicken.
1.5. Sicherstellen, dass der „Start-G-Code“ unter „Printer“ dem G-Code in der Datei https://svn.hshl.de/svn/MTR_GPE_Praktikum/trunk/Fachthemen/Delta_Roboter_Adept_als_3DDrucker/05_Entwicklung/Cura/Start-G-Code.txt entspricht.

2. Den G-Code generieren:

2.1. Eine STL-Datei in das Cura-Fenster ziehen.
2.2. Auf „Prepare“ klicken.
2.3. Auf „Save to File“ klicken und den G-Code als *.gcode oder *.txt-Datei speichern.

Das Heizbett nivellieren

Um sicherzugehen, keine Kollision zwischen der Düse und dem Heizbett stattfindet und die erste extrudierte Schicht gut haftet, kann das Heizbett, wie folgt, nivelliert werden:

1. Unter „Starten eines FFF-Drucks“ die Schritte „1. Das 3D-Druck-Programm starten:“ und „2. Das Bewegungsprogramm starten:“ durchführen.
2. Die Datei https://svn.hshl.de/svn/MTR_GPE_Praktikum/trunk/Fachthemen/Delta_Roboter_Adept_als_3DDrucker/05_Entwicklung/GUI/GUI.exe ausführen.
3. Unter „Druckbett-Nivellierung“ auf einen Messpunkt klicken, um eine Position anzufahren.
4. Warten, bis die Bewegung des Roboters abgeschlossen ist.
5. Eine Tür der Anlage öffnen.
6. Die nächstgelegene Nivellierungsschraube des Heizbetts so drehen, dass sich eine 1mm-Fühlerlehre mit leichtem Widerstand zwischen der Düse und dem Heizbett bewegen lässt.
7. Die Tür schließen.
8. Das nun gestoppte Bewegungsprogramm ähnlich wie in „Starten eines FFF-Drucks“ beschrieben, wieder fortsetzen.
9. Mit Punkt 3 fortfahren, bis alle Messpunkte abgearbeitet sind.

Einen FFF-Druck starten

Um mit dem 3D-Druck eines Modells zu beginnen, müssen folgende Schritte durchgeführt werden:

1. Vorbereitung:

1.1. Sicherstellen, dass der Steuerungscomputer über ein Ethernet-Kabel mit dem Bewegungscontroller des Roboters verbunden ist.
1.2. Sicherstellen, dass der Steuerungscomputer über ein USB-Kabel mit dem 3D-Druck-Controller der Anlage verbunden ist.
1.3. Sicherstellen, dass der Schlüssel auf der Vorderseite des Schaltschranks auf die Position „Computer“ gedreht ist.
1.4. Sicherstellen, dass alle Türen der Anlage geschlossen sind.
1.5. Den Hauptstecker des Systems einstecken.
1.6. Den Hauptschalter des Systems um 90° drehen, um es einzuschalten.

2. Das Bewegungsprogramm starten:

2.1. Die Datei https://svn.hshl.de/svn/MTR_GPE_Praktikum/trunk/Fachthemen/Delta_Roboter_Adept_als_3DDrucker/05_Entwicklung/Bewegungsprogramm/Bewegungsprogramm.awp mit ACE 3.6 oder 3.8 öffnen. Die Option „Im Emulationsmodus öffnen“ sollte vorher deaktiviert werden.
2.2. In ACE auf „Controller verbinden“ klicken.
2.3. Sicherstellen, dass der „COMP“-Modus auf dem Handbediengerät des Roboters aktiviert ist.
2.3. In ACE auf „Antriebsleitung aktivieren“ klicken.
2.4. Im „Workspace Editor“ unter „SmartController 198 > V+ Benutzermodule > main“ auf „main()“ rechtsklicken und unter „Auf Task ausführen“ auf „Task 0“ klicken.

3. Das GUI starten:

3.1. Die Datei https://svn.hshl.de/svn/MTR_GPE_Praktikum/trunk/Fachthemen/Delta_Roboter_Adept_als_3DDrucker/05_Entwicklung/GUI/GUI.exe ausführen.
3.2. Unter „Druckvorgang“ auf „Datei suchen“ klicken und eine *.gcode oder *.txt-Datei auswählen.
3.3. Unter „TCP/IP-Verbindung“ die Adresse „172.16.102.198“ auswählen.
3.4. Unter „TCP/IP-Verbindung“ auf „Verbinden/Trennen“ klicken.
3.5. Den korrekten USB-Port unter „USB-Verbindung“ auswählen.
3.6. Unter „USB-Verbindung“ auf „Verbinden/Trennen“ klicken.
3.7. Auf „Drucken“ klicken.

Einen FFF-Druck beenden

Nachdem mit dem System gearbeitet wurde, müssen folgende Schritte durchgeführt werden:

1. Das USB-Kabel von dem Steuerungscomputer trennen.
2. Den Hauptschalter des Systems ausschalten.
3. Den Hauptstecker des Systems ausstecken.

Die Zukunft des Projekts (stand 08.01.2025)

Das 3D-Druck-System kann durch weitere studentische Projekte profitieren. Innerhalb zukünftiger Arbeiten könnten beispielsweise folgende Mängel behoben werden:

  • Die Schrittmotoren der Extruder geben wiederkehrende Laute von sich, welche auf Schrittverluste hinweisen.
  • Die Lüfter, welche sich auf den beiden Extrudern befinden, sind nicht auf das Werkstück ausgerichtet und kühlen es deshalb nicht optimal.
  • Während der Ausführung von G-Code hält das System zwischen Einzelbewegungen kurzzeitig an, weil das GUI die beiden Controller synchronisiert. Um eine synchrone Arbeitsweise beizubehalten, könnte das Bewegungsprogramm und das 3D-Druck-Programm so umprogrammiert werden, dass sie bei dem Eingang eines neuen G-Code-Befehls jede momenatene Aktion abbrechen und die neu erhaltene Instruktion sofort ausführen.
  • Der Bildschirm des 3D-Druck-Controllers, welcher die verschiedenen Temperaturen anzeigt, ist nicht sichtbar, da dieser nicht fest verbaut ist. Er könnte an dem Schaltschrank montiert werden oder durch eine weitere Anzeige auf dem GUI ersetzt werden.
  • Die gleichzeitige Nutzung von zwei Extrudern wurde noch nicht getestet.

Literaturverzeichnis