#1 – Einleitung und Übersicht
Einleitung / Vorwort
Dieses Projekt ist sicher nicht alltäglich, es ist teuer, komplex und mit sehr viel Aufwand verbunden.
Es ist groß und daher in mehrere Abschnitte geteilt. Eine Zusammenfassung findet Ihr Hier.
Auch aus folgendem Textheraus, sind einzelne Abschnitte zu erreichen.
Es macht eben riesigen Spaß, einzelne Komponenten zu einer funktionsfähigen Zelle zusammen zu „basteln“.
Kernkomponenten dieses Projekts sind …
Schon seit geraumer Zeit hatte ich den Wunsch mir einen eigenen, professionellen, Roboter zu kaufen. Immer wieder habe ich diverse Portale durchforstet um ein geeignetes Modell zu finden. Die Priorität lag dabei auf ein Modell von Kawasaki. Warum? Kawasaki Roboter sind in meinen Augen die „einfachsten“, um schnelle Fortschritte zu sehen. Natürlich spielt hier auch die jahrelange Erfahrung mit diesen Modellen eine Rolle. Der Einstieg ist aber meiner Meinung nach auch für komplette Neulinge möglich. Da am Roboter selber nicht wirklich viel eingelernt werden muss.
Natürlich sind Industrie Roboter nicht gerade günstig. Wer sich einarbeiten will, hat dann aber eine Flexibilität die seinesgleichen sucht.
Ich bin dann zufällig auf ein Modell FS03N gestoßen. Dieser Roboter hat eine Reichweite von ~600mm. Da meine Platzverhältnisse reichlich beschränkt sind, war dieses kleine Modell eine gute Wahl. Wichtig ist, das die Robotersteuerung mindestens ein sog. D-Controller ist. Bei Kawasaki werden die Steuerungen mit Buchstaben deklariert. Wobei man im Laufe der Jahre von C und D, über E bei einem aktuellen F-Controller angekommen ist.
Wie gesagt, reicht für das Projekt ein D-Controller aus. Diese Roboter mit Steuerungen sind für „einige tausend Euro“ hin und wieder auf dem Gebrauchtmarkt zu finden. Die Laufleistung selbst spielt dabei kaum eine Rolle, da die Geräte sehr robust und für den Dauereinsatz absolut geeignet sind. Sollte man ernsthaft mit dem Gedanken spielen, dieses Projekt selbst zu verwirklichen, lohnt ein Blick in die einschlägigen Portale (Maschinensucher, eBay, eBay Kleinanzeigen, etc.)
Wie erwähnt ist das ganze natürlich in erster Instanz NICHT günstig.
Was bekommt man dafür?
Ein wahres Männerspielzeug – Einen Roboter!!!
Unheimliche Flexibilität – Die Möglichkeiten sind vielfältig, auch wenn zu Beginn sicher die Ideen fehlen.
Noch mehr Vorab ….
Ich wollte ursprüngich mit dem Roboter fräsen. Die Idee war, eine Einhand-Oberfräse an den Roboter zu montieren, was eigentlich problemlos möglich ist. Dennoch fiel meine Entscheidung dann auf ein Laser Modul. Das Thema Lasergravur wird immer „alltagstauglicher“, warum also nicht mit einem Roboter? Auf der Suche nach einem 24V Modul (Betriebsspannung des Roboters), bin ich auf die polnische Firme „Opt Lasers“ gestoßen (https://optlasers.com/). Im Shop findet sich zum Beispiel das 6 Watt Laser Modul PLH3D-6W-XF (https://optlasersgrav.com/plh3d-series/plh3d-6w-xf-laser-head) welches mit 24V Gleichspannung betrieben wird. Um Graustufen lasern zu können, stehen verschiedene Eingänge am Modul zur Verfügung. So kann man die Intensität der Gravur via PWM (PulsWeitenModulation), TTL (Transistor-Transistor-Logik) oder Analog (quasi wie ein Dimmer) ansteuern.
Die für mich einfachste Variante, es über ein BYTE zu verwirklichen, ist leider am Markt nicht zu finden. So habe ich mir noch von Murr Elektronik einen Digital zu Analog Wandler gekauft, welcher eben jenes BYTE in analoge Ausgangsspannung von 0-10 V umwandeln kann.
Das große Problem ist, wie „füttere“ ich den Roboter mit den Daten. Jeden Punkt einzeln einzulernen ist nicht nur zeitlich utopisch, sondern auch nervig und extrem aufwendig. Also folgte die Aufgabenstellung …
Bild-Datei in GCode Datei umwandeln
Bevor man überhaupt nur an den Einsatz des Roboters denken kann, muss der GCode erstmal erstellt werden. Hierzu gibt es unterschiedliche Tools, je nach Einsatzzweck. Ich nutze die kostenlose Software „LaserGRBL“ um aus einem Bild (Skizze oder ähnliches) eine GCode Datei zu generieren. (http://lasergrbl.com/)
Es sind einige Einstellungen zu setzen, dann ist die Weiterverarbeitung keine Hürder mehr.
Wie bringe ich den Kawasaki Roboter dazu, GCode zu verarbeiten???
Eine gezielte Eingabe in der Suchmaschine liefert hierzu erste brauchbare Ergebnisse. Allerdings wird man mit dem „Kawasaki G-Code Generator“ nur bedingt glücklich. Für die ersten Tests, reicht es aber. Das kleine Tool wandelt GCode Dateien in Kawasaki Programme um. Diese Datei muss dann auf den Roboter geladen werden und kann gestartet werden.
Eine Programmzeile des Roboters sieht dann beispielswiese so aus …
lmove shift(a by 6,0.1,0)
Im Detail bedeutet dies…
- lmove (Lineare Bewegung)
- shift (versetzen/verschieben)
- a (spezifiert den Punkt der verschoben werden soll – „a“ ist also eine gespeicherte (erste) Position mit Koordinaten in mm z.B. X -100, Y 330, Z 50)
- by (um welchen wert verschoben werden soll)
- 6 = Versatz in mm – X-Achse (Links/Rechts)
- 0.1 = Versatz in mm – Y-Achse (Vor/Zurück)
- 0 = Versatz in mm – Z-Achse (Rauf/Runter)
Der Roboter bewegt sich also von den ursprünglichen Koordinaten des Punkts „a“ X -100, Y 330, Z 50 zu folgenden Koordinaten -94, 330. 1,50
Das Problem am G-Code Generator ist, dass das kleine Tool auch wirklich nur Positionsdaten auslesen und umwandeln kann. Befehle zum schalten von Signalen oder ähnliches, unterstützt das Programm nicht. Was folgt ist Programm-KungFu …
GCode umwandeln in Industrie Roboter Sprache
Generell könnte man das Ganze auch mit einem Text-Editor, wie Notepad++, erreichen. Aber da GCodes gut und gerne mal, 6 oder gar 7 stellige Anzahl an Zeilen haben können, wird das ganze recht schnell nervig. Also automatisieren wir auch diesen Vorgang … und zwar mit Hilfe von Node-Red.
Node-Red ist ein geniales Tool auf Basis von Javascript. (https://nodered.org/)
Da Node-Red relativ flüssig auf einem Raspberry Pi zu betreiben ist, halten Sich in dieser Hinsicht auch die Kosten in Grenzen. Ein Pi 3 sollte es schon sein, ein aktuelles Raspbian und Node-Red als Paket installieren. (Es finden sich genug Tutorials dafür im WWW)
Meine Node-Red Instanz liest eine GCode Datei aus dem „/home/pi/“ Verzeichnis ein, und gibt eine „AS“ Datei, ins gleiche Verzeichnis, aus.
Die Dateien übertrage ich dabei mit dem SFTP Tool „Swish“, welches sich in den Windows Explorer einbettet und den Datenaustausch komfortabel werden lässt. (http://www.swish-sftp.org/).
Der Vorgang selbst ist in mehrere Teile gegliedert …
- GCode Datei mit Swish vom Windows PC auf den Pi (/home/pi/) übertragen
- Dateiname in Node-Red anpassen/angeben
- Umwandlung starten
- Die Eingabe Datei wird in einzelne Zeilen aufgeteilt und temporär in „Arrays“ gespeichert
- Folgend wird jede Zeile einzeln eingelesen und umgewandelt (Parsing)
- Bei großen Dateien, kann es durchaus lange dauern, bis die Umwandlung komplett abgeschlossen ist (Ja, auch Stunden! – aber eben kostenlos und Eigenbau)
- Die „fertige“ Datei dann via Swish vom Pi kopieren und wieder auf dem Windows PC sichern
Speichermangel und wie man damit umgehen kann….
Industrie Roboter der frühen 2000er, haben stellenweise sehr wenig Speicherkapazität. Und mit sehr wenig, meine ich, sehr wenig! Selbst für damalige Verhältnisse sind Kapazitäten von 512 kb oder 1 MB einfach sehr wenig. Auch aktuelle Modelle geizen an Speicher. Laut den Herstellern liegt dies an der Zugriffsgeschwindigkeit … nun ja. Lassen wir mal so stehen.
Wie auch immer, kann man davon ausgehen das GCode Dateien, bedeutend mehr Zeilen haben, als der Roboter aufnehmen kann. Es gibt mehrere Möglichkeiten dieses Problem zu umgehen.
- Punkt für Punkt über TCP/IP – vom PC live an den Roboter schicken (extrem unflexibel und komplex)
- Viele kleine Dateien erstellen und diese händisch auf den Roboter laden (dazu müsste der Tag locker doppelt so lange sein)
- Kawasaki KASLoad – diese Software splittet zu große Dateien automatisch und schickt diese über Netzwerk nach und nach an den Roboter (Top!)
Die Zelle als Solches und Upgrades, Upgrades, Upgrades …
Generell ist das Projekt funktionsfähig, aber gibt´s das auch in Hübsch? JA!
Auch hier kommt wieder Node-Red ins Spiel. Die Firma Kunbus (https://revolution.kunbus.com/) bietet mit dem „RevolutionPi“ eine industrielle Variante des Raspberry Pi an. Dieser hat, ebenso wie das Lasermodul, den Vorteil mit 24V betrieben zu werden. Des weiteren ist der RevPi enorm erweiterungsfähig. Mit dem RevPi und der Erweiterung DiO Modul, habe ich nun jeweils 14 Eingänge, sowie 14 Ausgänge vom/zum Roboter. Für Node-Red werden passende Nodes bereitgestellt, um direkt die Ein-/Ausgänge anzusprechen oder eben auszulesen.
Das bedeutet schlicht und einfach, das ich mir über das Node-Red Dashboard, eine grafische Oberfläche bauen kann, von welcher ich die Übersicht über das Gesamtsystem habe. Zudem kann ich einzelne Schritte etwas vereinfachen, z.B. die Angabe der Dateinamen für die Umwandlung.
Eine Liste der Bauteile findet ihr im Startpost.
Bis dahin, sind Kommentare gerne gesehen.
Pingback: [Projekt] Lasergravur mit 6W Opt Lasers Modul an einem Kawasaki Industrie Roboter – Roboterkunst.info