Roboterbearbeitung/CNC Fertigung ist ein Prozess, bei dem ein Rohmaterial durch kontrolliertes Materialentfernen, unter Verwendung eines Roboterarms, in eine gewünschte endgültige Form und Größe geschnitten wird. Die Bearbeitung umfasst Techniken wie Fräsen, Bohren, Anfasen und Entgraten. Diese werden typischerweise von automatisierten Werkzeugmaschinen (CNC) durchgeführt. Industrieroboter können mit RoboDK wie eine Werkzeugmaschine (3-Achs oder 5-Achs-CNC) eingesetzt werden.
Um dieselben oder bessere Ergebnisse wie bei CNC-Maschinen zu erzielen, benötigen Industrieroboter fortschrittliche Offline-Programmiersoftware wie RoboDK, um CNC-Maschinenprogramme in Roboterprogramme umzuwandeln.
Die Teiledimensionen werden unter Verwendung von Computer-Aided-Design (CAD)-Software definiert und dann in Herstellungsprogramme (wie G-Code) durch Computer-Aided-Manufacturing (CAM)-Software übersetzt. Die Fertigungsprogramme können dann mithilfe der Offline-Programmiertools von RoboDK in Roboterprogramme umgewandelt werden.
Zusätzliche Achsen wie ein Drehtisch oder auch eine Linearachse können mit dem Roboter synchronisiert werden, um den Arbeitsbereich zu erweitern.
In diesem Kapitel wird erklärt, wie Sie eine simple RoboDK-Station für die Roboterbearbeitung offline vorbereiten. Eine RoboDK-Station enthält alle Roboter, Werkzeuge, Referenzrahmen, Objekte, sowie sämtliche Einstellungen. Weitere Informationen zum Erstellen einer RoboDK-Station finden Sie im Abschnitt Erste Schritte.
Es ist erforderlich, einen Roboter mit einem Werkzeug für die maschinelle Bearbeitung einzurichten. Das 3D Objekt muss dabei in einem eigenen Bezugssystem sein:
1-Wählen Sie einen Roboter:
a.Wählen Sie Datei➔ Online Bibliothek öffnen
b.Verwenden Sie Filter um Ihren Roboter nach Marke, Nutzlast, ... zu suchen und zu finden
Wählen Sie zum Beispiel den ABB IRB 2600-20 / 1.65 (20 kg Nutzlast, 1,65 m Reichweite).
c.Wählen Sie Download. Der Roboter erscheint automatisch auf dem Hauptbildschirm.
2-Wählen Sie ein Werkzeug:
a.Ebenfalls aus der Online Bibliothek; filtern Sie nach Typ➔Tool
b.Laden Sie das Spindel Werkzeug herunter
c.Das Werkzeug sollte automatisch am Roboter angebracht werden
Sobald das Werkzeug geladen ist, kann die Online-Bibliothek geschlossen werden
3-Fügen Sie ein Bezugssystem hinzu
a.Wählen Sie Programm➔ Bezugssystem hinzufügen
b.Wählen Sie das neue Bezugssystem in der Baumstruktur und verwenden Sie F2, um ihn in Fräsreferenz umzubenennen
4-Fügen Sie ein Objekt hinzu:
a.Wählen Sie Datei➔ Öffnen
b.Wählen Sie das Objekt mit dem Namen Object wooden bowl.sld
c.Ziehen Sie das Objekt per Drag & Drop auf die Fräsrenferenz (im Stationsbaum)
Befolgen Sie diese Schritte, um ein neues Roboter Fertigungsprogramm für die maschinelle Bearbeitung einzurichten. Diese Schritte gelten, wenn eine NC-Datei mit einer CAM-Software (z. B. G-Code oder APT) erstellt wurde:
1.Wählen Sie Dienstprogramme➔ Roboter Fertigungs Projekt(Ctrl+M).
Ein neues Fenster wird angezeigt, wie im Bild gezeigt.
2.Wählen Sie im Abschnitt Pfadeingabe eine NC Datei auswählen
3.Geben Sie eine NC-Datei ein, z. B. eine aus der RoboDK-Standardbibliothek:
C:/RoboDK/Library/Milling Bowl 3x.nc
Wählen Sie den Roboter, das Bezugssystem und das Werkzeug im oberen linken Bereich des Menüs, wie in der folgenden Abbildung gezeigt:
Die Werkzeugbahn wird in Grün angezeigt, die Pfadnormalen werden als weiße Vektoren angezeigt. Deaktivieren Sie den sichtbaren Werkzeugweg, um diesen auszublenden
Die Pfadeingabe ermöglicht die Auswahl verschiedener Arten, den Werkzeugweg zu erhalten. Der Werkzeugweg kann definiert werden durch:
●NC-Datei auswählen: Als eine NC-Datei (von der CAM-Software erhalten), wie in diesem Abschnitt beschrieben.
●Kurve auswählen: Als eine oder mehrere Kurven, wie im Abschnitt Kurvenverfolgungbeschrieben.
Es ist möglich, Kurven als eine Liste von Koordinaten in RoboDK zu importieren.
●Punkte auswählen: Einen oder mehrere Punkte, wie im Abschnitt Punktverfolgungbeschrieben.
Es ist möglich, Punkte als eine Liste von Koordinaten in RoboDK zu importieren.
●3D Druck Objekte: Als Objekt für 3D-Druck. Ein Slicer wird verwendet, um die Geometrie in eine Werkzeugbahn zu konvertieren.
Die Anfahrt/Rückzug Bewegungen, werden im Menü oben rechts zur Verfügung gestellt.
Wählen Sie Hinzufügen, um eine zusätzliche Bewegung hinzuzufügen. Der grüne Pfad wird entsprechend aktualisiert. Es kann zwischen einer normalen Bewegung (entlang der weißen Normalen), einer Tangente (entlang des Grünen Pfads) oder entlang bestimmter Achsen in Bezug auf den Teil gewählt werden
Doppelklicken Sie auf einen Wert, um die Länge zu ändern, oder wählen Sie Entfernen, um eine bestimmte Bewegung zu entfernen
Der Werkzeug – Bahn Abstand ermöglicht das Ändern der bevorzugten Ausrichtung des Werkzeugs entlang der Werkzeugbahn. Diese Option wird hauptsächlich verwendet, um das Werkzeug um die Z-Achse des TCP zu drehen.
Standardmäßig zeigt der Werkzeug – Bahn Abstand eine rotz(0) Transformation an. Dieser Wert kann geändert werden, um die bevorzugte Ausrichtung des Werkzeugs festzulegen. Dabei wird die Ausrichtung um die Z-Achse des TCP oder in Kombination mit anderen Achsen geändert. Die bevorzugte Ausrichtung ist die Ausrichtung, die der Roboter zu halten versucht, während er dem Werkzeugweg folgt.
RoboDK verwendet standardmäßig den Algorithmus der minimalen Änderung der Werkzeugorientierung. Dies bedeutet, dass die Ausrichtung des Werkzeugs entlang des Werkzeugweges so konstant wie möglich gehalten wird. Im Allgemeinen ist diese Option für Fräsoperationen geeignet, da sie die Robotergelenkbewegungen minimiert. Alternativ stehen andere Algorithmen / Methoden zur Verfügung, z. B. die Werkzeugausrichtung anhand der Werkzeugbahn (nützlich für Schneidanwendungen) oder Roboter hält Objekt, wenn die Werkzeugbahn mit dem Roboterwerkzeug verknüpft werden muss (z. B. zum Dosieren oder Polieren).
Bei einer bevorzugten Ausrichtung kann der Roboter eine gewisse Restfreiheit haben, innerhalb welcher er um die Z-Achse des Werkzeugs drehen kann. Dies ermöglicht es dem Roboter, das Programm auszuführen, wobei Robotersingularitäten und Achsenbeschränkungen vermieden werden. Standardmäßig lässt RoboDK das Werkzeug um bis zu +/- 180 Grad um die TCP-Achse in Schritten von 20 Grad rotieren.
Es wird empfohlen, diese Drehung abhängig von der Anwendung zu beschränken. Zum Beispiel ist es möglich, +/- 90 Grad einzugeben, um die zulässige Drehung um die Hälfte zu beschränken.
Wenn einige Punkte des Pfades nicht erreichbar sind, empfiehlt es sich, das Bezugssystem zu verschieben oder mit der Z-Drehung des Werkzeugs toleranter zu sein. Das Bezugssystem kann mit der Alt-Taste bewegt werden.
Wählen Sie aktualisieren, um das Programm gemäß den bereitgestellten Einstellungen zu erhalten. Ein grünes Häkchen wird angezeigt, wenn das Programm erfolgreich erstellt werden kann. Sie werden anschließend ein neues Programm in der Station sehen.
Doppelklicken Sie auf das erstellte Programm oder wählen Sie Simulieren, um die Robotersimulation zu starten.
Klicken Sie mit der rechten Maustaste auf das Programm und wählen Sie Roboterprogramm erstellen (F6), um das Programm zu erhalten. Weitere Informationen zur Programmgenerierung finden Sie im Abschnitt Programm.
RoboDK wählt automatisch die Startkonfiguration, die nah an den bevorzugten Startachswinkeln liegt (Bevorzugte Achswinkel für den Startpunkt). Von diesem Punkt aus wird der Roboter linearen Bewegungen folgen, so dass sich die Roboterkonfiguration nicht ändert.
Ein Dropdown-Menü zeigt alle möglichen Lösungen zum Starten des Programms an. Wählen Sie bei Bedarf eine bevorzugte Konfiguration und wählen Sie Aktualisieren, um das Programm neu zu berechnen
Es ist möglich, die Orientierung des Werkzeugs entlang der Bahn konstant zu halten. Dieses Verhalten ist zum Beispiel beim Fräsen oder Schweißen von Nutzen.
Wählen Sie Werkzeugausrichtung folgt Pfad im Dropdown-Menü Algorithmus auswählen, um den bevorzugten Werkzeugpfad neu zu berechnen. Die anderen Einstellungen sind dieselben wie bei einem Bearbeitungsprojektmit konstanter Werkzeugausrichtung.
Es ist möglich, einen Roboter so zu programmieren, dass er eine Objekt/Werkzeubahn mit dem Werkzeug während des Herstellungsvorgangs hält. Dies ist zum Beispiel für Polieranwendungen oder beim Auftragen von Klebstoff nützlich.
Wählen Sie Roboter hält Objekt in der Dropdown-Liste Algorithmus auswählen, um den Werkzeugweg ordnungsgemäß auf das TCP Bezugssystem zu platzieren. Die restlichen Einstellungen sind dieselben wie bei einem Bearbeitungsprojekt mit einer konstanten Werkzeugausrichtung.
Mit RoboDK kann ein Roboter Kurven im 3D-Raum abfahren. Kurven in RoboDK können aus Objektkanten ausgewählt oder als Liste von Punkten in CSV-Dateien importiertwerden. Diese Option ist beispielsweise für Roboterschweißanwendungen nützlich.
Wählen Sie Dienstprogramme➔Kurvenverfolgung Projekt, um die Einstellungen für die Kurvenverfolgung zu öffnen. Diese Einstellungen sind mit denen eines Roboter Bearbeitungsprojekts identisch. Der einzige Unterschied besteht darin, dass die Pfadeingabe auf Kurve auswählen eingestellt ist.
Wählen Sie Kurve auswählen, um die Kurve(n) auf dem Bildschirm auszuwählen.
Wählen Sie die Kurven mit der linken Maustaste aus. Durch zweimaliges Auswählen derselben Kurve wird die Bewegungsrichtung umgeschaltet. Wenn Sie mit der rechten Maustaste auf eine zuvor ausgewählte Kurve klicken, können Sie auch die Richtung wechseln oder eine zuvor ausgewählte Kurve abwählen
Klicken Sie mit der rechten Maustaste auf den Bildschirm und wählen Sie Fertig oder drücken Sie die Esc-Taste, um zum Einstellungsmenü zurückzukehren. Der grüne Pfad zeigt die Roboterbewegung in Bezug auf das Objekt an.
Einige zusätzliche Optionen sind oben rechts in den Einstellungen verfügbar, z. B. die Werkzeuggeschwindigkeit und ob die Anfahrts-/Rückzugsbewegungen für jede Kurve angewendet werden müssen. Die Standardeinstellungen werden im nächsten Bild angezeigt:
Kurven können in RoboDK aus einer CSV-Datei oder einer Textdatei importiert werden, indem Sie Dienstprogramme➔Kurven importieren auswählen. In der Station wird ein neuer Gegenstand angezeigt, der die Kurve als Objekt anzeigt.
Die verwendete Datei kann eine Textdatei mit den 3D-Koordinaten jedes Punktes der Kurve sein. Optional kann die Orientierung der Z-Achse des Werkzeugs als ein i, j, k-Vektor bereitgestellt werden.
Optional können bestehende Kurven eines Objekts als CSV-Datei exportiert werden (Rechtsklick auf eine Kurve, dann Kurve exportieren), modifiziert und wieder in RoboDK importiert werden.
Es ist möglich, dass ein Roboter mit Hilfe von RoboDK Punkten im 3D-Raum folgt. Punkte in RoboDK können aus Objekten und Kurven extrahiert oder als Liste von Punkten in CSV-Dateien importiert werden. Diese Option ist zum Beispiel für Punktschweiß- oder Bohranwendungen nützlich. Das folgende Video zeigt ein Beispiel zum Einrichten einer Punktschweißanwendung: Video anschauen.
Wählen Sie Dienstprogramme➔Punktverfolgung Projekt, um die Punktfolgeeinstellungen zu öffnen. Diese Einstellungen entsprechen denen einer Roboterbearbeitung. Der einzige Unterschied besteht darin, dass der Pfad Eingang auf Punkte auswählen eingestellt ist.
Wählen Sie Punkte auswählen, um Punkte auf dem Bildschirm auszuwählen.
Wählen Sie die Punkte mit der linken Maustaste aus. Wenn Sie denselben Punkt zweimal auswählen, wird die Richtung umgeschaltet. Wenn Sie mit der rechten Maustaste auf einen Punkt klicken, können Sie auch die folgenden Punkte auswählen, indem Sie nächstes Auswählen verwenden.
Klicken Sie mit der rechten Maustaste auf den Bildschirm und wählen Sie Fertig oder drücken Sie die Esc-Taste, um zum Einstellungsmenü zurückzukehren. Der grüne Pfad zeigt die Roboterbewegung in Bezug auf das Objekt an.
Einige zusätzliche Optionen sind oben rechts in den Einstellungen verfügbar, z. B. die Werkzeuggeschwindigkeit oder die Annäherungsentfernung. Die Standardeinstellungen werden im nächsten Bild angezeigt:
Eine Liste von Punkten kann aus einer Textdatei oder einer CSV-Datei importiert werden, indem Sie Dienstprogramme➔Punkte importieren auswählen. In der Station erscheint ein neuer Gegenstand, der die Punkte als Objekt zeigt.
Die Datei kann eine Textdatei mit den 3D-Koordinaten jedes Punktes der Kurve sein. Optional kann die Orientierung der Z-Achse des Werkzeugs als ein i, j, k-Vektor bereitgestellt werden.
Optional können vorhandene Kurven eines Objekts in Punkte konvertiert werden, indem Sie mit der rechten Maustaste auf eine Kurve klicken und dann Kurvenpunkte extrahieren auswählen.
Der 3D-Druck oder die additive Fertigung ist der Herstellungsprozess dreidimensionaler fester Objekte aus einer digitalen Datei. Industrieroboterarme können hierzu als 3-Achs-3D-Drucker oder als 5-Achs-3D-Drucker mit RoboDK verwendet werden. Das folgende Video zeigt eine Übersicht über das Einrichten des 3D-Drucks mit RoboDK offline: Video anschauen.
3D-Druck mit Robotern ist auf eine der folgenden Arten möglich:
●Konvertieren Sie G-Code-Programme (NC-Datei) direkt in Roboterprogramme mit Hilfe von RoboDK. Dies wurde im Projekt Roboter maschinelle Bearbeitunggezeigt. Die Materialflussrate (Extruder-Anweisung E) wird bei jeder Bewegung richtig berücksichtigt und kann als Programm Ereignis in das generierte Programm integriert werden. G-Code ist eine Art von NC-Datei, die von RoboDK unterstützt wird und auch von vielen 3D-Druckern unterstützt wird. Die meisten Slicer Programme können ebenfalls G-Code mit einer STL-Datei erzeugen.
●Wählen Sie Dienstprogramme➔3D Projekt drucken, um die 3D-Druckeinstellungen zu öffnen. Diese Einstellungen sind mit denen eines Roboter maschinelle Bearbeitung identisch. Der einzige Unterschied besteht darin, dass die Pfad Eingabe als 3D-Druckobjekt voreingestellt ist. Wählen Sie Objekt auswählen, um das Objekt auf dem Hauptbildschirm auszuwählen und automatisch den Werkzeugweg zu erhalten. Wählen Sie 3D-Druckoptionen, um Slic3r zu öffnen.
Standardmäßig übersetzt RoboDK die E-Direktive als Programmaufruf in ein Programm namens Extruder und übergibt den E-Wert als Parameter. Wählen Sie Programm-Ereignisse, um dieses Verhalten zu ändern.
Der Extruder-Wert (E) gibt an, wie viel Material vor jeder Bewegung extrudiert werden muss. Dieser Wert kann verwendet werden, um die Extruderzufuhr vom Roboter, abhängig von Robotergeschwindigkeit und Abstand der Punkte, zu steuern.
Alternativ ist es möglich, die Beschickung des Extruders mit einem Postprozessor zu berechnen und entsprechend Code zu generieren. Der folgende Abschnitt enthält ein Beispiel.
Dieser Abschnitt beschreibt, wie ein Roboter Postprozessor bearbeitet werden muss, um die Zufuhr des Extruders, vor der jeweiligen Bewegung, zu berechnen. Alternativ können diese Berechnungen auch auf dem Roboter Controller gemacht werden.
Der erste Schritt besteht darin, die Extruder-Aufrufe abzufangen und die neuen Extruder-Werte (E-Werte) aus dem RunCode-Abschnitt im Postprozessor zu lesen:
def RunCode(self, code, is_function_call = False):
if is_function_call:
if code.startswith("Extruder("):
# Intercept the extruder command.
# if the program call is Extruder(123.56)
# we extract the number as a string
# and convert it to a number
self.NEW_E_LENGTH = float(code[9:-1])
# Skip the program call generation
return
else:
self.addline(code + "()")
else:
# Output program code
self.addline(code)
Der Extruder-Wert wird als NEW_E_LENGTH-Variable gespeichert. Anschließend muss man ein neues Verfahren definieren, das Extruder-Vorschubbefehle entsprechend dem Abstand zwischen den Bewegungen, der Robotergeschwindigkeit und der Roboterbeschleunigung erzeugt. Dies setzt voraus, dass die Extruderzufuhr durch eine spezifische analoge Ausgabe von der Robotersteuerung (in diesem Beispiel den analogen Ausgang Nummer 5) angetrieben wird
def new_move(self, pose1, pose2):
if pose1 isNone:
return
def Calculate_Time(Dist, Vmax, Amax):
'''Calculate the time to move Dist with Amax acceleration and Vmax speed'''
tacc = Vmax/Amax;
Xacc = 0.5*Amax*tacc*tacc;
if Dist <=2*Xacc:
# Vmax is not reached
tacc = sqrt(Dist/Amax)
Ttot = tacc*2
else:
# Vmax is reached
Xvmax = Dist -2*Xacc
Tvmax = Xvmax/Vmax
Ttot = 2*tacc + Tvmax
return Ttot
add_material = self.NEW_E_LENGTH - self.LAST_E_LENGTH
self.LAST_E_LENGTH = self.NEW_E_LENGTH
if add_material >0:
distance_mm = norm(subs3(pose1.Pos(), pose2.Pos()))
# calculate movement time in seconds
time_s = Calculate_Time(distance_mm, self.SPEED_MMS, self.ACCEL_MMSS)
# add material
self.setDO(5, (add_material/time_s))
else:
# DO not add material
self.setDO(5,0)
Schließlich müssen wir den Befehl new_move mit jeder neuen Bewegungsinstruktion ausführen. Wir können diesen Aufruf am Anfang des MoveL-Befehls hinzufügen:
def MoveL(self, pose, joints, conf_RLF=None):
"""Add a linear movement"""
self.new_move(self.LAST_POSE, pose) # used for 3D printing