-
Hintergrund der Erfindung
-
Gebiet der Erfindung
-
Die Erfindung betrifft eine Roboterprogrammiervorrichtung, die eingesetzt wird zum Instruieren eines Roboters für eine geforderte Tätigkeit.
-
Zum Stand der Technik
-
Bei einem bekannten Robotersystem führt ein Roboter mit einem Werkzeug an einem Werkstück eine vorgegebene Bearbeitung aus. Bei einem solchen Robotersystem muss der Roboter für eine bestimmte Tätigkeit instruiert (eingelernt) werden und ein solches sogenanntes Lehrverfahren ist im Allgemeinen schwierig und aufwendig. Die japanischen offengelegten Patentanmeldungen JP H06- 59 720 und JP 2013- 248 677 A beschreiben Techniken zur Erzeugung eines Bearbeitungsprogrammes offline.
-
Die offengelegte japanische Patentanmeldung JP H06- 59 720 A beschreibt ein Verfahren zum Erzeugen eines Roboterprogrammes zum Entgraten, um einen mit einem Entgratungswerkzeug ausgerüsteten Roboter zu veranlassen, an einem Produkt eine Entgratung vorzunehmen. Bei dieser Technik werden ein Linearelement und ein Kreisbogenelement einer graphischen Darstellung aus den graphischen Daten eines Objektes extrahiert, welches mit einer computergestützten Konstruktion (CAD) erzeugt ist und eine Stellung eines Werkzeuges wird entsprechend einem Winkel zwischen einem Endpunkt des Linearelementes oder einem Mittelpunkt des Kreisbogenelementes und der Ebene der Graphik berechnet.
-
Die offengelegte japanische Patentanmeldung JP 2013- 248 677 A beschreibt eine Roboterprogrammiervorrichtung, welche ein Roboterprogramm erzeugt zur Bearbeitung eines Werkstückes unter Verwendung eines mit einem Werkzeug ausgerüsteten Roboters. Bei diesem Stand der Technik wird ein bestimmtes Arbeitsmuster des Werkzeuges auf eine Oberfläche eines Werkstückmodells in einem virtuellen Raum projiziert, um einen Bearbeitungsweg zu erzeugen und es werden auch eine Position und eine Stellung des Werkzeuges ermittelt auf Basis des Bearbeitungsweges und der Richtung einer Linie, die sich senkrecht zur Oberfläche des Werkstückmodells erstreckt.
-
Die obigen Techniken haben insofern Vorteile, als das Roboterprogramm automatisch erzeugt werden kann. Wird aber das Offline (d.h. unabhängig von einem Netzwerk) erzeugte Programm tatsächlich ausgeführt, kann es zu einem (unerwünschten) Eingriff des Werkzeuges mit dem Werkstück kommen. In einem solchen Fall muss das Programm korrigiert werden und dies mindert die Effizienz des Lehrverfahrens.
-
Die
DE 10 2013 008 755 A1 betrifft ein Offline-Programmiersystem, das eine dreidimensionale-Form- Anordnungseinheit umfasst, die eine gewölbte Oberfläche oder eine aufeinanderfolgende Mehrzahl von ebenen Oberflächen einer ausgewählten dreidimensionalen Form mit ausgewählten Betriebsmustern ausfüllt und eine dreidimensionale Form in einem virtuellen Raum anordnet, sodass die Betriebsmuster auf Oberflächen auf dem Werkstückmodell projizierbar sind. Eine Arbeitspfaderstellungseinheit projiziert Betriebsmuster auf die Oberflächen des Werkstückmodells, um einen Arbeitspfad des Werkzeugs zu erstellen, und eine Werkzeugpositions- /Lagebestimmungseinheit verwendet den erstellten Arbeitspfad und eine Normalenrichtung der Oberfläche des Werkstückmodells als Basis zum automatischen Bestimmen der Position oder der Position/Lage des Werkzeugmodells.
-
Die
DE 10 2012 021 374 A1 betrifft eine Roboterprogrammiervorrichtung. Dabei bestimmt eine Bearbeitungslinien- Bestimmungseinheit eine Bearbeitungslinie, und eine Betriebsmodus-Bestimmungseinheit bestimmt einen Betriebsmodus eines Lernpunktes. Eine Programmerzeugungseinheit erzeugt ein Betriebsprogramm für den Roboter, basierend auf der Bearbeitungslinie und dem Betriebsmodus. Eine Beeinträchtigungsziel-Bestimmungseinheit bestimmt einen nicht bearbeitenden Werkzeuganteil als ein Beeinträchtigungsziel. Eine Beeinträchtigungs-Ermittlungseinheit ermittelt eine Beeinträchtigung zwischen dem Roboter oder dem nicht bearbeitenden Werkzeuganteil an einem Lernpunkt. Eine Nicht-Beeinträchtigungspositions-Sucheinheit sucht nach einer Nicht-Beeinträchtigungsposition, und eine Korrektureinheit korrigiert eine Position des Lernpunkts basierend auf einem Suchresultat.
-
Es besteht deshalb ein Bedarf an einer Roboterprogrammiervorrichtung, die ein Roboterprogramm erzeugen kann, bei dem ein unerwünschter Eingriff zwischen Werkzeug und Werkstück vermieden sind.
-
Kurzbeschreibung der Erfindung
-
Gemäß einer ersten Merkmalskombination der Erfindung wird eine Roboterprogrammiereinrichtung mit den Merkmalen des Anspruchs 1 bereitgestellt.
-
Gemäß einer zweiten Variante der Erfindung ist bei einer Roboterprogrammiervorrichtung gemäß der ersten Variante die Positions- und Stellungskorrektureinheit eingerichtet, die Position und/oder die Stellung des Werkzeuges durch Korrektur des Lehrinhaltes für den Roboter zu ändern.
-
Gemäß einer dritten Variante der Erfindung ist bei der Roboterprogrammiervorrichtung gemäß der ersten Variante die Positions- und Stellungskorrektureinheit eingerichtet, die Position und/oder die Stellung des Werkzeuges durch Änderung eines Koordinatensystems zu ändern, welches in Verbindung mit dem Werkzeug definiert ist.
-
Gemäß einer vierten Variante der Erfindung wird bei einer Roboterprogrammiervorrichtung gemäß einer der ersten bis dritten Varianten der Bearbeitungspunkt des Werkzeuges im Voraus eingestellt.
-
Entsprechend einer fünften Variante der Erfindung weist bei einer Roboterprogrammiervorrichtung gemäß einer der ersten bis vierten Varianten die Bearbeitungsweg-Erzeugungseinheit weiterhin auf: eine Scheitelpunkt-Identifizierungseinheit, die eingerichtet ist, bei Projektion des Arbeitsmusters auf zumindest eine Oberfläche des Werkstückmodells einen Scheitelpunkt des Arbeitsmusters zu identifizieren, der nicht auf zumindest eine Fläche projiziert ist; und eine Scheitelpunkt-Austauscheinheit, die eingerichtet ist, den Scheitelpunkt des mit der Scheitelpunkt-Identifizierungseinheit identifizierten Arbeitsmusters durch einen Punkt zu ersetzen, welcher auf der zumindest einen Oberfläche des Werkstückmodells liegt und dem Scheitelpunkt am nächsten liegt.
-
Gemäß einer sechsten Variante der Erfindung weist die Roboterprogrammiervorrichtung gemäß einer der ersten bis fünften Varianten weiterhin Folgendes auf: eine Arbeitsmuster-Speichereinheit, die eingerichtet ist, eine Mehrzahl verschiedener Arbeitsmuster des Werkzeuges zur Bearbeitung des Werkstückes abzuspeichern; und eine Arbeitsmuster-Auswahleinheit, die eingerichtet ist, aus der Mehrzahl verschiedener Arbeitsmuster eines auszuwählen, welches auf dem Projektionsziel vorgesehen ist.
-
Obige sowie weitere Ziele, Merkmale und Vorteile der Erfindung werden noch deutlicher aus der nachfolgenden Beschreibung von Ausführungsbeispielen mit Blick auf die Figuren.
-
Figurenliste
-
- 1 zeigt beispielhaft den Aufbau eines Robotersystems.
- 2 zeigt beispielhaft eine Anzeigevorrichtung.
- 3 zeigt ein funktionales Blockdiagramm einer Roboterprogrammiervorrichtung.
- 4 ist ein Flussdiagramm zur Erläuterung von Verfahren zum Erzeugen eines Roboterprogramms gemäß einem Ausführungsbeispiel.
- 5 zeigt ein Robotermodell, ein Werkzeugmodell, und ein Werkstückmodell im virtuellen Raum.
- 6 zeigt Beispiele für Arbeitsmuster.
- 7A zeigt das Verfahren, wenn ein Arbeitsmuster auf ein Werkstückmodell projiziert wird.
- 7B zeigt ein Verfahren, wenn ein Arbeitsmuster auf ein Werkstückmodell projiziert wird.
- 8 zeigt ein Verfahren zur Bestimmung einer Position oder einer Stellung eines Werkzeuges.
- 9 ist ein Flussdiagramm zur Erläuterung von Verfahren zum Ändern der Position oder der Stellung eines Werkzeuges.
- 10A zeigt ein Verfahren zum Ändern einer Position und einer Stellung eines Werkzeuges.
- 10B zeigt ein Verfahren zum Ändern einer Position und einer Stellung eines Werkzeuges.
- 10C zeigt ein Verfahren zum Ändern einer Position und einer Stellung eines Werkzeuges.
- 11 zeigt ein Verfahren zum Ändern einer Position und einer Stellung eines Werkzeuges.
- 12 zeigt ein Verfahren zum Ändern einer Position und einer Stellung eines Werkzeuges.
- 13 ist ein funktionales Blockdiagramm einer Bearbeitungsweg-Erzeugungseinheit einer Roboterprogrammiervorrichtung gemäß einer Variante.
- 14 zeigt ein Verfahren zum Erzeugen eines Bearbeitungsweges gemäß der Variante.
- 15 zeigt ein Beispiel für einen Bearbeitungspunkt, der mit Bezug auf ein Werkzeug definiert ist.
-
Beschreibung im Einzelnen
-
Die Ausführungsbeispiele der Erfindung werden nun mit Blick auf die Figuren näher erläutert. Die Maßstäbe bei den dargestellten Komponenten können zur Erleichterung des Verständnisses angepasst sein. Gleiche oder funktionsähnliche Komponenten tragen die gleichen Bezugszeichen.
-
1 zeigt beispielhaft den Aufbau eines Robotersystems, bei dem die vorliegende Erfindung einsetzbar ist. Ein Robotersystem 100 hat einen Roboter 130, eine Robotersteuervorrichtung 120, welche den Roboter 130 steuert, und eine Roboterprogrammiervorrichtung 10, welche offline ein Roboterprogramm erzeugt, welches den Roboter 130 veranlasst, eine bestimmte Tätigkeit auszuführen.
-
Der Roboter 130 ist beispielsweise ein vertikal gelenkiger Roboter und eingerichtet, ein Werkzeug 140 an einem Gelenk 132 zu halten, welches am Ende eines Armes angeordnet ist. Das Werkzeug 140 kann beispielsweise ein Schneidgerät, ein Schleifgerät oder ein Bohrer sein, jedoch ist die Erfindung hierauf nicht eingeschränkt. Der Roboter 130 ist eingerichtet, seine Position (Ort) und Stellung in Bezug auf ein Werkstück 150 zu ändern, welches in einem Arbeitsbereich (Arbeitsraum) des Roboters 130 angeordnet ist, so dass das Werkzeug 140 und das Werkstück 150 relativ zueinander bewegbar sind. Beim dargestellten Aufbau ist das Werkstück 150 auf einem Tisch 160 angeordnet, jedoch ist die Erfindung nicht auf ein solches Beispiel eingeschränkt.
-
Die Robotersteuervorrichtung 120 gibt einen Steuerbefehl an einen Servomotor (nicht dargestellt), welcher eine angelenkte Achse des Roboters 130 gemäß einem vorgegebenen Roboterprogramm antreibt. Die Robotersteuervorrichtung 120 ist über bekannte Übertragungsmittel, wie ein Kabel 102, mit der Roboterprogrammiervorrichtung 10 verbunden, so dass zwischen diesen Einheiten Daten austauschbar sind.
-
Die Roboterprogrammiervorrichtung 10 ist ein Rechner mit bekanntem Aufbau einschließlich einem zentralen Rechner (CPU), einem Festwertspeicher (ROM), einem Schreib-Lese-Speicher (RAM) etc. Die Roboterprogrammiervorrichtung 10 ist mit einer Anzeigevorrichtung 110 über eine als solches bekannte Schnittstelle verbunden und eingerichtet offline gewonnene Rechenergebnisse visuell darzustellen.
-
Die Roboterprogrammiervorrichtung 10 wird eingesetzt für einen virtuellen Betrieb des Roboters 130 in einem virtuellen Raum und um ein Roboterprogramm zu erzeugen und zu editieren auf Basis der Ergebnisse des virtuellen Betriebs. Beispielsweise wird die Roboterprogrammiervorrichtung 10 eingesetzt zur Erzeugung eines Roboterprogrammes zur Bearbeitung eines Werkstückes 150 im Arbeitsbereich unter Verwendung des Roboters 130, der mit dem Werkzeug 140 ausgerüstet ist.
-
2 zeigt beispielhaft eine Anzeige auf der Anzeigevorrichtung 110 im Einsatz mit der Roboterprogrammiervorrichtung 10. 2 zeigt ein Robotermodell 30, ein Werkzeugmodell 40 und ein Werkstückmodell 50 in drei Dimensionen des virtuellen Raumes, wobei also der Roboter 130, das Werkzeug 140 und das Werkstück 150 gemäß 1 jeweils dargestellt sind. Der Einfachheit halber ist in 2 nur eine zweidimensionale Darstellung vorgesehen. Eine Bedienungsperson kann aber frei einen Blickwinkel einstellen durch Betätigung bekannter Einrichtungen, wie einer Maus oder einer Tastatur. Dementsprechend kann die Bedienungsperson visuell eine Positionsbeziehung bezüglich jeder Komponente im drei-dimensionalen Raum prüfen.
-
3 ist ein funktionales Blockdiagramm einer Roboterprogrammiervorrichtung 10 gemäß einem Ausführungsbeispiel. Die Roboterprogrammiervorrichtung 10 hat eine Erzeugungseinheit 11 für einen virtuellen Raum, eine Modell-Anordnungseinheit 12, eine Arbeitsmuster-Speichereinheit 13, eine Arbeitsmuster-Auswahleinheit 14, eine Einheit 15 zum Anordnen eines Projektionszieles, eine Bearbeitungsweg-Erzeugungseinheit 16, eine Positions- und Stellungsbestimmungseinheit 17, eine Bestimmungseinheit 18 und eine Positions- und Stellungskorrektureinheit 19.
-
Die Erzeugungseinheit 11 für einen virtuellen Raum erzeugt einen virtuellen Raum, welcher drei-dimensional den Arbeitsbereich des Roboters 130 repräsentiert. Der mit der Erzeugungseinheit 11 erzeugte virtuelle Raum wird auf einem Bildschirm der Anzeigevorrichtung 110 dargestellt.
-
Die Modell-Anordnungseinheit 12 ordnet ein Modell an, welches im virtuellen Raum eine Komponente drei-dimensional darstellt, welche bei Erzeugung des Roboterprogrammes zu berücksichtigen ist. Ein Modell jeder Komponente wird im Voraus z.B. mit CAD (rechnergestützter Entwurf) erzeugt und im ROM der Roboterprogrammiervorrichtung 10 abgespeichert. Gemäß einem Ausführungsbeispiel werden das Robotermodell 30, das Werkzeugmodell 40 und das Werkstückmodell 50 entsprechend ihrer Positionsbeziehung im tatsächlichen Arbeitsraum (2) angeordnet. Muss ein Hindernis im Bereich des Werkstückes 150 oder des Roboters 130 ebenfalls berücksichtigt werden, ordnet die Modell-Anordnungseinheit 12 ein weiteres Modell entsprechend dem Hindernis im virtuellen Raum an.
-
Die Arbeitsmuster-Speichereinheit 13 speichert mehrere verschiedene Arbeitsmuster des Werkzeuges 140 bei Bearbeitung des Werkstückes 150 ab. 6 zeigt verschiedene Beispiele für anwendbare Arbeitsmuster. Wie gezeigt, kann das Arbeitsmuster z.B. V-förmig, U-förmig, N-förmig oder spiralförmig sein, jedoch sind die Muster nicht auf diese Beispiele beschränkt.
-
Die Arbeitsmuster-Auswahleinheit 14 wählt aus den verschiedenen, in der Arbeitsmuster-Speichereinheit 13 abgespeicherten Arbeitsmustern eines aus, welches auf einem unten näher beschriebenen Projektionsziel ausgeführt wird.
-
Die Projektionsziel-Anordnungseinheit 15 ordnet im virtuellen Raum ein Projektionsziel an mit einer Oberfläche, auf welcher das durch die Arbeitsmuster-Auswahleinheit 14 ausgewählte Arbeitsmuster eingesetzt wird. Die Form und die Abmessungen des Projektionszieles werden im Voraus im ROM der Roboterprogrammiervorrichtung 10 abgespeichert.
-
Die Bearbeitungsweg-Erzeugungseinheit 16 projiziert das auf dem Projektionsziel vorgesehene Arbeitsmuster auf das Werkstückmodell 50 und erzeugt einen Bearbeitungsweg, den ein Arbeitspunkt des Werkzeuges 140 durchläuft.
-
Die Positions- und Stellungsbestimmungseinheit 17 bestimmt die Position und Stellung des Werkzeuges 140 bei Bearbeitung des Werkstückes 150 auf Basis der Richtung einer Normalen auf der Oberfläche des Werkstückmodells 50 und des mit der Bearbeitungsweg-Erzeugungseinheit 16 erzeugten Bearbeitungsweges.
-
Die Bestimmungseinheit 18 bestimmt, ob das Werkstück 150 und das Werkzeug 140 an irgendeiner Stelle miteinander in unerwünschten Eingriff (Kollision) kommen, wobei die Stelle nicht einem Arbeitspunkt des Werkzeuges 140 entspricht, und diese Bestimmung erfolgt auf Basis der Position und Stellung des Werkzeuges 140, wie durch die Positions- und Stellungsbestimmungseinheit 17 bestimmt ist.
-
Die Positions- und Stellungskorrektureinheit 19 korrigiert dann, wenn die Bestimmungseinheit 18 feststellt, dass ein Eingriff (im obigen Sinne) auftritt, die Position und/oder die Stellung des Werkzeuges 140 so, dass Werkstück 150 und Werkzeug 140 nicht mehr an irgendeiner Stelle miteinander in Eingriff (Kollision) kommen, die nicht einem Arbeitspunkt des Werkzeuges 140 entspricht.
-
4 ist ein Flussdiagramm zur Erläuterung des mit einer Roboterprogrammiervorrichtung 10 gemäß diesem Ausführungsbeispiel ausgeführten Verfahrens. In Schritt S401 erzeugt die Erzeugungseinheit 11 den virtuellen Raum, welcher drei-dimensional den Arbeitsbereich des Roboters 130 wiedergibt. In Schritt S402 ordnet die Modell-Anordnungseinheit 12 ein Robotermodell 30, ein Werkzeugmodell 40 und ein Werkstückmodell 50 im virtuellen Raum entsprechend 5 an.
-
Die Anordnung jedes Modells entspricht einer Positionsbeziehung der einzelnen Komponenten im tatsächlichen Arbeitsbereich.
-
In Schritt S403 wählt die Arbeitsmuster-Auswahleinheit 14 aus der Mehrzahl verschiedener, in der Arbeitsmuster-Speichereinheit 13 abgespeicherten Arbeitsmuster eines aus. In Schritt S404 arrangiert die Projektionsziel-Anordnungseinheit 15 ein Projektionsziel im virtuellen Raum. 7A zeigt ein Werkstückmodell 50 und ein Projektionsziel 60, welche jeweils im virtuellen Raum angeordnet sind. Beim dargestellten Beispiel ist das Projektionsziel 60 eine Ebene, auf der ein V-förmiges Arbeitsmuster 62 vorgesehen (erstellt) ist. Das Projektionsziel 60 kann auch andere Formen haben, z.B. kann es drei-dimensionale Form haben aus der Kombination von zwei oder mehreren Ebenen oder auch eine drei-dimensionale Form mit zumindest einer gekrümmten Oberfläche. Wie 7A zeigt, ist das Projektionsziel 60 in einer bestimmten Positionsbeziehung relativ zum Werkstück 50 angeordnet. Insbesondere ist also das Projektionsziel 60 so angeordnet, dass das Arbeitsmuster 62 auf eine Oberfläche 52 des Werkstückmodells 50 projiziert werden kann.
-
In Schritt S405 projiziert die Bearbeitungsweg-Erzeugungseinheit 16 das auf dem Projektionsziel 60 vorgesehene Arbeitsmuster 62 auf die Oberfläche 52 des Werkstückmodells 50 und erzeugt einen Bearbeitungsweg 54 auf der Oberfläche 52 des Werkstückmodells 50 entsprechend 7B.
-
In Schritt S406 werden Position und Stellung des Werkzeuges 140, welches sich entlang dem Bearbeitungsweg 54 bewegt, bestimmt auf Basis des in Schritt S405 gewonnenen Bearbeitungsweges 54 und einer vorgegebenen Positionsbeziehung zwischen Werkstück 150 und Werkzeug 140. Die Stellung des Werkzeuges 140 wird so bestimmt, dass das Werkzeug 40 gemäß einem vorgegebenen Winkel in Bezug auf das Werkstück 150 angeordnet ist, beispielsweise unter einem rechten Winkel in Bezug auf die Tangentialebene des Werkstückes 150. In 8 ist eine Normale 58 in Bezug auf eine Tangentialebene 56 am Werkstückmodell 50 dargestellt, welche durch den Bearbeitungsweg 54 verläuft. Gemäß einem Ausführungsbeispiel sind Position und Stellung (Orientierung) des Werkzeuges 140 so festgelegt, dass die Stellung (Orientierung) des Werkzeugmodelles 40 der Normalen 58 entspricht. Dementsprechend wird mit der Roboterprogrammiervorrichtung 10 ein Roboterprogramm erzeugt zum Steuern des Roboters 130 zur Ausführung einer bestimmten Bearbeitung.
-
Wird das oben mit Bezug auf 4 beschriebene Ausführungsbeispiel eines Roboterprogrammes ausgeführt, kann es vorkommen, dass das Werkzeug 140 mit einem Werkstück 150 (unerwünscht) in Eingriff kommt (kollidiert). In einem solchen Fall muss das Programm korrigiert werden. Wenn bei diesem Ausführungsbeispiel die Bestimmungseinheit 18 der Roboterprogrammiervorrichtung 10 feststellt, dass das Werkzeug 140 und das Werkstück 150 in Eingriff kommen (dies bedeutet hier: in unerwünschter Weise in Eingriff kommen), wird das Roboterprogramm mit dem nachfolgend beschriebenen Verfahren korrigiert.
-
10A zeigt die Bewegung des Werkzeugmodells 40 entlang der Oberfläche 52 des Werkstückmodells 50 gemäß einem Roboterprogramm. Schwarze Punkte P1 bis P3 sind Kontaktpunkte zwischen dem Werkzeugmodell 40 und dem Werkstückmodell 50 (d.h. Bearbeitungspunkte). Wie aus 10A ersichtlich, tritt bei Kontakt des Werkzeugmodells 40 mit dem Werkstückmodell 50 an den Kontaktpunkten P1 oder P3 kein (unerwünschter) Eingriff zwischen dem Werkzeugmodell 40 und dem Werkstückmodell 50 auf. Am Kontaktpunkt P2 aber kommt das Werkzeugmodell 40 mit dem Werkstückmodell 50 an einem Punkt in Kontakt, der verschieden ist vom Kontaktpunkt P2 und deshalb tritt der Eingriff auf.
-
9 ist ein Flussdiagramm zur Erläuterung des Verfahrens zum Ändern der Position oder der Stellung (Orientierung) des Werkzeuges 140 derart, dass der unerwünschte Eingriff zwischen Werkzeug 140 und Werkstück 150 nicht auftritt.
-
In Schritt S901 ändert die Positions- und Stellungskorrektureinheit 19 zumindest einen der Parameter „Position“ und „Stellung“ des Werkzeuges 140. Beispielsweise wird die Position des Werkzeuges 140 um einen bestimmten Versatzbetrag α in X-Achsenrichtung des in Bezug auf das Werkzeug 140 definierten Werkzeugkoordinatensystems verschoben. Im Einzelnen: ein dem Roboter 130 instruierter Lehrpunkt wird um den Versatzbetrag α in X-Achsenrichtung des Werkzeugkoordinatensystems so verschoben, dass die Position des Werkzeuges sich ändert. Gemäß einem anderen Beispiel wird eine instruierte Stellung bezüglich des Gelenkes 132 des Roboters 130 um einen Versatzbetrag β (Winkelmaß) um die X-Achse des Werkzeugkoordinatensystems gedreht, um so die Stellung des Werkzeuges 140 zu ändern.
-
In Schritt S902 gemäß 9 wird das in Schritt S901 geänderte Roboterprogramm offline ausgeführt. In Schritt S903 ermittelt die Bestimmungseinheit 18, ob das Werkzeug 140 mit dem Werkstück 150 kollidiert (in Eingriff kommt) oder nicht. Wird in Schritt S903 festgestellt, dass ein solcher Eingriff auftritt, geht das Verfahren zurück zum Schritt S901, indem die Positions- und Stellungskorrektureinheit 19 wiederum einen der Parameter „Position“ und „Stellung“ des Werkzeuges 140 ändert. Wird dann in Schritt S903 festgestellt, dass kein Eingriff auftritt, ist das Korrekturverfahren bezüglich des Roboterprogrammes beendet.
-
10B zeigt ein Beispiel, bei dem die Position des Werkzeuges 140 durch den oben beschriebenen Korrekturprozess gemäß 9 geändert ist. Im Vergleich zu 10A ergibt sich aus 10B, dass der Bearbeitungspunkt des Werkzeugmodells 40 (ein Punkt, an dem das Werkzeugmodell 40 mit dem Werkstückmodell 50 in Kontakt kommt) im Ergebnis der korrigierten Position des Werkzeuges 140 geändert ist. An jedem der Kontaktpunkte P1 bis P3 kommen das Werkzeugmodell 40 und das Werkstückmodell 50 miteinander nicht an irgendeinem Punkt in Kontakt, außer dem Bearbeitungspunkt. Mit anderen Worten: mit dem korrigierten Roboterprogramm kann der Bearbeitungsvorgang ausgeführt werden ohne unerwünschte Eingriffe (Kontakte) zwischen dem Werkzeug 140 und dem Werkstück 150.
-
Gemäß 10B wird die Position des Werkzeugmodells 40 auch an den Kontaktpunkten P1 und P3 geändert, wo festgestellt wurde, dass kein unerwünschter Eingriff auftritt (vgl. 10A). Mit anderen Worten: die Position wird über den gesamten Bearbeitungsweg 54 geändert. Bei einem anderen Ausführungsbeispiel aber kann die Positions- und Stellungskorrektureinheit 19 eingerichtet sein, die Position (oder Stellung) des Werkzeuges 140 nur an einer solchen Stelle zu ändern, wo der unerwünschte Eingriff auftritt, d.h. im obigen Fall nur im Kontaktpunkt P2. 10C zeigt ein Beispiel, bei dem die Position des Werkzeuges 140 nicht an den Kontaktpunkten P1 und P3 korrigiert wird, jedoch die Position des Werkzeuges 140 am Kontaktpunkt P2 korrigiert wird (d.h. es wird nur die Position des Werkzeugmodells 40 geändert).
-
Bei diesem Ausführungsbeispiel wird der Bearbeitungsweg 54 gemäß einem vorgegebenen Arbeitsmuster 62 erzeugt, welches auf dem Projektionsziel 60 vorgesehen ist und Position und Stellung des Werkzeuges 140 werden automatisch entlang dem Bearbeitungsweg 54 festgelegt. Kommen Werkstück 150 und Werkzeug 140 in unerwünschten Eingriff, wird zumindest einer der Parameter „Position“ oder „Stellung“ des Werkzeuges 140 automatisch korrigiert. Dementsprechend wird automatisch das Roboterprogramm erzeugt, bei welchem kein unerwünschter Eingriff zwischen Werkstück 150 und Werkzeug 140 auftritt, so dass der Lehrvorgang für den Roboter 130 in kurzer Zeit ausführbar ist und es kann das dem Werkzeug 140 zugeordnete Werkzeugkoordinatensystem geändert werden, um zumindest einen der Parameter „Position“ und „Stellung“ des Werkzeuges 140 zu ändern.
-
Wird beispielsweise das Koordinatensystem um einen Versatzbetrag δ in X-Achsenrichtung verschoben, wird auch das Werkzeug 140 um den Versatzbetrag δ bewegt. Die 11 und 12 zeigen das Werkzeug 140 von der Seite des Bearbeitungspunktes 142 her. In einem Zustand vor der Korrektur gemäß 11 ist der Ursprung des Werkzeugkoordinatensystems definiert als die Mittelachse des Werkzeuges 140. In einem Zustand nach der Korrektur gemäß 12 hingegen ist der Ursprung des Werkzeugkoordinatensystems um den Versatzbetrag δ in der Figur nach links verschoben. Wenn beispielsweise andererseits das Koordinatensystem um einen Versatzbetrag δ' Grad um die X-Achse gedreht wird, wird auch die Stellung (Orientierung) des Werkzeuges 140 um den Versatzbetrag δ' Grad gedreht.
-
13 erläutert eine Modifikation des obigen Ausführungsbeispieles. Entsprechend dieser Modifikation enthält die Bearbeitungsweg-Erzeugungseinheit 16 weiterhin eine Scheitelpunkt-Identifizierungseinheit 20 und eine Scheitelpunkt-Ersatzeinheit 21.
-
Die Scheitelpunkt-Identifizierungseinheit 20 identifiziert einen Scheitelpunkt des Arbeitsmusters 62, welcher bei Projektion des Arbeitsmusters 62 auf das Werkstück 50 nicht auf das Werkstückmodell 50 projiziert wird.
-
Die Scheitelpunkt-Austauscheinheit 21 ersetzt den Scheitelpunkt im Arbeitsmuster 62, welcher durch die Scheitelpunkt-Identifizierungseinheit 20 ermittelt worden ist, durch einen Punkt, der auf der Oberfläche 52 des Werkstückmodelles 50 liegt und welcher dem festgestellten Scheitelpunkt am nächsten liegt. Liegen gemäß 14 beispielsweise die Scheitelpunkte 64 und 66 (mit schwarzen Punkten gekennzeichnet) des Arbeitsmusters 62 außerhalb des Bereiches des Werkstückmodells 50, wird der Bearbeitungsweg 54 unter Verwendung der Punkte 68 und 70 (durch Kreise gekennzeichnet) gebildet, welche auf der Oberfläche 52 des Werkstückmodells 50 liegen und welche den Scheitelpunkten 64 bzw. 66 am nächsten liegen.
-
Mit dieser Erweiterung erzeugt die Bearbeitungsweg-Erzeugungseinheit 16 einen Bearbeitungsweg 54 auf Basis von Punkten, die eingesetzt werden durch die Scheitelpunkt-Ersatzeinheit 21, wie erforderlich. Da dieser Prozess zur Erzeugung des Bearbeitungsweges 54 automatisiert ist, erfolgt der Lehrvorgang mit hoher Effizienz.
-
Gemäß einem Ausführungsbeispiel kann der Bearbeitungspunkt des Werkzeuges 140 im Voraus festgelegt werden. Bei diesem Ausführungsbeispiel bestimmt die Positions- und Stellungsbestimmungseinheit 17 die Position und Stellung des Werkzeuges 140 so, dass beispielsweise ein Bearbeitungspunkt in einem Bereich 144 eingestellt wird, welcher definiert ist durch eine gerade Linie, welche die Mittelachse des Werkzeuges 140 senkrecht schneidet, wie in 15 dargestellt ist. Die Positions- und Stellungskorrektureinheit 19 ist eingerichtet, die Position und Stellung des Werkzeuges 140 so zu korrigieren, dass der korrigierte Bearbeitungspunkt des Werkzeuges 140 im oben beschriebenen Bereich 144 liegt.
-
Gemäß dem entsprechend 15 beschriebenen Ausführungsbeispiel wird die Bearbeitung des Werkstückes 150 an einem passenden Bearbeitungspunkt des Werkzeuges 140 ausgeführt. Dies verhindert, dass das Werkstück 150 an einem unerwünschten Punkt bearbeitet wird.
-
Wirkungen der Erfindung
-
Die Roboterprogrammiervorrichtung gemäß der Erfindung stellt automatisch fest, ob ein Werkzeug, welches sich entlang einem Bearbeitungsweg bewegt, welcher erzeugt wird durch Projektion eines Arbeitsmusters auf ein Werkstückmodell in einem virtuellen Raum, mit einem Werkstück in einen unerwünschten Eingriff kommt. Wird festgestellt, dass ein solcher Eingriff auftritt, wird die Position und/oder die Stellung des Werkzeuges geändert, um das Roboterprogramm zu korrigieren und so den unerwünschten Eingriff zu vermeiden. Damit kann der Lehrvorgang für den Roboter in kurzer Zeit und mit hoher Effizienz ausgeführt werden.
-
Oben wurden verschiedene Ausführungsbeispiele und Varianten der Erfindung beschrieben, jedoch versteht eine Fachperson, dass die angestrebten Funktionen und Wirkungen auch mit anderen Ausführungsbeispielen und Varianten erreicht werden können. Insbesondere ist es möglich, einzelne Komponenten der Ausführungsbeispiele und Varianten wegzulassen oder zu ersetzen oder zusätzliche, bekannte Komponenten hinzuzufügen, ohne den Bereich der Erfindung zu verlassen. Auch versteht eine Fachperson, dass die Erfindung verwirklicht werden kann durch eine jegliche Kombination von Merkmalen der Ausführungsbeispiele, ganz gleich, ob dies ausdrücklich oder implizite offenbart ist.