-
Allgemeiner Stand der Technik
-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft die Technik der Steuerung von Robotern, und betrifft insbesondere eine Offline-Programmiervorrichtung und ein -verfahren mit der Funktion zur Erzeugung eines Programms zur Detektion einer Werkstückposition mittels eines Kontaktsensors
-
Allgemeiner Stand der Technik
-
Es gibt ein Verfahren, bei dem ein an einem Spitzenende eines Roboters angeordneter Kontaktsensor mit einem Werkstück als Schweißobjekt in Kontakt gebracht wird, aus der Position des Roboters zu dieser Zeit die Position des Werkstücks detektiert wird, und die Lehrposition eines Schweißprogramms zur Vornahme eines Schweißens gemäß der detektierten Position des Werkstücks korrigiert wird. Als Technik zur Erzeugung der Erfassungsbetriebsdaten für die Detektion der Position des Werkstücks wurde zum Beispiel die Patentoffenlegungsschrift
JP 2001 - 170 522 A offenbart. In diesem Literaturbeispiel wird ein Verfahren vorgeschlagen, bei dem in einer Erfassungslage, in der ein Kontaktsensor eines Arbeitsmanipulators mit einer Kontaktfläche eines Werkstücks in Kontakt steht, die Kontaktfläche des Werkstücks, mit der der Kontaktsensor in Kontakt steht, extrahiert wird und eine Kante, die die Kontaktfläche bildet, gewählt wird, und die Erfassungslage des Arbeitsmanipulators so neu eingerichtet wird, dass die Position der gewählten einen Kante und eine Position, für die eine an der Basisendseite des Kontaktsensors eingerichtete Einstellposition auf die Kontaktfläche projiziert wurde, miteinander übereinstimmen, und Erfassungsbetriebsdaten des Arbeitsmanipulators so erzeugt werden, dass sie die neu eingerichtete Erfassungslage enthalten.
-
Als einschlägiger Stand der Technik werden hiermit genannt die
DE 10 2012 021 374 A1 , die eine Roboterprogrammiervorrichtung offenbart; die
US 2004 / 0 138 779 A1 , die ein Einstellverfahren und eine Einstellvorrichtung für einen Gelenkroboter offenbart; die US 2008 / 0 125 893 A1, die eine Anordnung und ein Verfahren zur Realisierung automatischer Herstellungsprozesse offenbart; die
US 2005 / 0 224 479 A1 , die eine Offline-Programmiereinrichtung beschreibt; die
DE 10 2015 012 763 A1 , die eine Roboterlehrvorrichtung zum Offline-Einlernen eines Roboters offenbart; die
DE 10 2015 015 093 A1 , die eine Roboterprogrammiervorrichtung zum Instruieren eines Roboters für eine Bearbeitung offenbart, sowie die
EP 1 145 804 B1 , die eine Robotersteuerung offenbart.
-
Kurzdarstellung der Erfindung
-
Bei dem Betrieb zur Detektion der Position eines Werkstücks auf Basis eines an einem Roboterspitzenende angeordneten Kontaktsensors ist es nötig, mehrere Kontaktpunkte, an denen der Kontaktsensor das Werkstück berührt, zu bestimmen, doch ist es schwierig, die Detektionstätigkeit so vorzunehmen, dass das Werkstück und der Roboter auf einem Bewegungsweg des Roboters, der sich bei mehreren Roboterbewegungen zur Detektion jedes Punkts der mehreren Kontaktpunkte zwischen mehreren Detektionsanfangspunkten bewegt, nicht miteinander kollidieren. Außerdem besteht die Gefahr eines großen Schadens für den Benutzer, wenn die Detektionstätigkeit durch den Roboter einer tatsächlichen Maschine vorgenommen wird und der Roboter tatsächlich mit einem Werkstück kollidiert.
-
Daher wird eine Technik zur Erzeugung eines Werkstückpositionsdetektionsprogramms verlangt, wodurch ein Werkstück und ein Roboter auch auf einem Bewegungsweg des Roboters, der sich zwischen mehreren Detektionsanfangspunkten bewegt, nicht miteinander kollidieren.
-
Eine Ausführung der vorliegenden Offenbarung stellt eine Offline-Programmiervorrichtung bereit, die auf Basis von Bearbeitungslinien oder Bearbeitungspunkten, die auf einem dreidimensionalen Modell eines durch einen Roboter bearbeiteten Werkstücks bestimmt wurden, automatisch ein Bearbeitungsprogramm erzeugt, und automatisch ein Werkstückpositionsdetektionsprogramm, das die Position des Werkstücks detektiert, um das Bearbeitungsprogramm gemäß der Position des Werkstücks, die auf Basis eines an einem Spitzenende des Roboters angeordneten Kontaktsensors detektiert wird, zu korrigieren, erzeugt, und die eine Speichereinheit, die das dreidimensionale Modell des Werkstücks in der Speichereinheit speichert; eine Kontaktpunktbestimmungseinheit, wodurch auf dem dreidimensionalen Modell des Werkstücks mehrere Kontaktpunkte, an denen der Kontaktsensor mit dem Werkstück in Kontakt tritt, bestimmt werden; eine Detektionsanfangspunktergänzungseinheit, die mehrere Detektionsanfangspunkte bei mehreren Roboterbewegungen zur Annäherung an jeden der mehreren Kontaktpunkte in den Bewegungsrichtungen entlang der Koordinatenachsen eines Basiskoordinatensystems, das die Basis für die Roboterbewegung zur Detektion der Position des Werkstücks bildet, in einem virtuellen Raum automatisch an mehreren Positionen, an denen der Roboter und das Werkstück nicht miteinander kollidieren, ergänzt; eine Kollisionsvermeidungspunktergänzungseinheit, die das Vorliegen oder Nichtvorliegen einer Kollision zwischen dem Roboter und dem Werkstück auf einem Bewegungsweg des Roboters, der sich zwischen mehreren Detektionsanfangspunkten bewegt, detektiert, und bei Vorliegen einer Kollision in dem virtuellen Raum automatisch einen Kollisionsvermeidungspunkt, durch den die Kollision vermieden wird, ergänzt; und eine Werkstückpositionsdetektionsprogrammerzeugungseinheit, die automatisch ein Werkstückpositionsdetektionsprogramm erzeugt, das die Roboterbewegung zur Bewegung in den Bewegungsrichtungen entlang der Koordinatenachsen des Basiskoordinatensystems zwischen Detektionsanfangspunkten und Kontaktpunkten, und zur Bewegung von einem Detektionsanfangspunkt über einen Kollisionsvermeidungspunkt, falls ein Kollisionsvermeidungspunkt vorhanden ist, zu einem anderen Detektionsanfangspunkt wiederholt, umfasst.
-
Eine andere Ausführung der vorliegenden Offenbarung stellt ein Offline-Programmierverfahren bereit, das auf Basis von Bearbeitungslinien oder Bearbeitungspunkten, die auf einem dreidimensionalen Modell eines durch einen Roboter bearbeiteten Werkstücks bestimmt wurden, automatisch ein Bearbeitungsprogramm erzeugt, und automatisch ein Werkstückpositionsdetektionsprogramm, das die Position des Werkstücks detektiert, um das Bearbeitungsprogramm gemäß der Position des Werkstücks, die auf Basis eines an einem Spitzenende des Roboters angeordneten Kontaktsensors detektiert wird, zu korrigieren, erzeugt, und das einen Schritt, bei dem ein dreidimensionales Modell eines Werkstücks in einer Speichereinheit gespeichert wird; einen Schritt, bei dem auf dem dreidimensionalen Modell des Werkstücks mehrere Kontaktpunkte, an denen der Kontaktsensor mit dem Werkstück in Kontakt tritt, bestimmt werden; einen Schritt, bei dem mehrere Detektionsanfangspunkte bei mehreren Roboterbewegungen zur Annäherung an jeden der mehreren Kontaktpunkte in den Bewegungsrichtungen entlang der Koordinatenachsen eines Basiskoordinatensystems, das die Basis für die Roboterbewegung zur Detektion der Position des Werkstücks bildet, in einem virtuellen Raum automatisch an mehreren Positionen, an denen der Roboter und das Werkstück nicht miteinander kollidieren, ergänzt werden; einen Schritt, bei dem das Vorliegen oder Nichtvorliegen einer Kollision zwischen dem Roboter und dem Werkstück auf einem Bewegungsweg des Roboters, der sich zwischen mehreren Detektionsanfangspunkten bewegt, detektiert wird, und bei Vorliegen einer Kollision in dem virtuellen Raum automatisch ein Kollisionsvermeidungspunkt, durch den die Kollision vermieden wird, ergänzt wird; und einen Schritt, bei dem automatisch ein Werkstückpositionsdetektionsprogramm erzeugt wird, das die Roboterbewegung zur Bewegung in den Bewegungsrichtungen entlang der Koordinatenachsen des Basiskoordinatensystems zwischen Detektionsanfangspunkten und Kontaktpunkten, und zur Bewegung von einem Detektionsanfangspunkt über einen Kollisionsvermeidungspunkt, falls ein Kollisionsvermeidungspunkt vorhanden ist, zu einem anderen Detektionsanfangspunkt wiederholt, umfasst.
-
Figurenliste
-
- 1 ist eine schematische Ansicht einer Offline-Programmiervorrichtung nach einer Ausführungsform, einer Steuervorrichtung, die einen Roboter steuert, und eines Roboters.
- 2 ist ein Blockdiagramm der Offline-Programmiervorrichtung nach der Ausführungsform.
- 3 ist ein Ablaufdiagramm, das den Betrieb der Offline-Programmiervorrichtung nach der Ausführungsform zeigt.
- 4A ist eine Ansicht, die eine Benutzerschnittstelle zur Erzeugung eines Bearbeitungsprogramms und eines Werkstückpositionsdetektionsprogramms nach der Ausführungsform zeigt.
- 4B ist eine Ansicht, die die Benutzerschnittstelle zur Erzeugung des Bearbeitungsprogramms und des Werkstückpositionsdetektionsprogramms nach der Ausführungsform zeigt.
- 4C ist eine Ansicht, die die Benutzerschnittstelle zur Erzeugung des Bearbeitungsprogramms und des Werkstückpositionsdetektionsprogramms nach der Ausführungsform zeigt.
- 4D ist eine Ansicht, die die Benutzerschnittstelle zur Erzeugung des Bearbeitungsprogramms und des Werkstückpositionsdetektionsprogramms nach der Ausführungsform zeigt.
- 4E ist eine Ansicht, die die Benutzerschnittstelle zur Erzeugung des Bearbeitungsprogramms und des Werkstückpositionsdetektionsprogramms nach der Ausführungsform zeigt.
- 5A ist eine Ansicht, die die Benutzerschnittstelle zeigt, die das Werkstückpositionsdetektionsprogramm und das Bearbeitungsprogramm nach der Ausführungsform simuliert.
- 5B ist eine Ansicht, die die Benutzerschnittstelle zeigt, die das Werkstückpositionsdetektionsprogramm und das Bearbeitungsprogramm nach der Ausführungsform simuliert.
-
Ausführliche Erklärung
-
Nachstehend werden anhand der beiliegenden Zeichnungen Ausführungsformen der vorliegenden Offenbarung ausführlich erklärt. In den einzelnen Zeichnungen sind gleichen oder ähnlichen Aufbauelementen gleiche oder ähnliche Bezugszeichen verliehen. Die nachstehend beschriebenen Ausführungsformen stellen keine Beschränkung des in den Patentansprüchen angegebenen technischen Inhalts der Erfindung und der Bedeutung der Terminologie dar.
-
1 ist eine schematische Ansicht einer Offline-Programmiervorrichtung 10 nach einer vorliegenden Ausführungsform, einer Steuervorrichtung 11, die einen Roboter steuert, und eines Roboters 12. Die Offline-Programmiervorrichtung 10 kann über ein Kabel 13 mit der Steuervorrichtung 11 kommunizieren, und die Steuervorrichtung 11 kann über ein Kabel 14 mit dem Roboter 12 kommunizieren. Bei einer anderen Ausführungsform kann die Offline-Programmiervorrichtung 10 auch kabellos mit der Steuervorrichtung 11 kommunizieren. Die Offline-Programmiervorrichtung 10 erzeugt offline ein Bearbeitungsprogramm, wodurch der Roboter 12 eine Bearbeitung wie Schweißen, Bohren, Schneiden, Lackieren oder dergleichen an einem Werkstück W vornimmt, und ein Werkstückpositionsdetektionsprogramm, wodurch die Position des Werkstücks W detektiert wird, um das Bearbeitungsprogramm gemäß der Position des Werkstücks W, die auf Basis eines an einem Roboterspitzenende 15 angeordneten Kontaktsensors 16 detektiert wird, zu korrigieren. Das Werkstückpositionsdetektionsprogramm und das Bearbeitungsprogramm, die durch die Offline-Programmiervorrichtung 10 erzeugt wurden, werden an die Steuereinheit 11 gesendet, und die Steuereinheit 11 befiehlt dem Roboter 12 die Detektionstätigkeit, um die Position des Werkstücks W gemäß dem Werkstückpositionsdetektionsprogramm zu detektieren. Wenn bei der Detektionstätigkeit der an dem Roboterspitzenende 15 angeordnete Kontaktsensor 16 mit dem Werkstück W in Kontakt gelangt, wird aus der Roboterposition zu dieser Zeit die Position des Werkstücks W detektiert. Die Positionsinformationen des Bearbeitungsprogramms werden gemäß der detektierten Position des Werkstücks W korrigiert, und die Steuervorrichtung 11 befiehlt dem Roboter 12 die Bearbeitungstätigkeit, um das Werkstück W gemäß dem korrigierten Bearbeitungsprogramm zu bearbeiten.
-
Der Roboter 12 ist durch einen allgemein bekannten Robotermanipulator gebildet und umfasst sechs Gelenksachsen J1 bis J6, die Servomotoren (nicht dargestellt) oder dergleichen aufweisen. Für den Roboter 12 sind ein im Raum festgelegtes globales Koordinatensystem C1 und ein an der Position eines Flanschs 17 festgelegtes Koordinatensystem C2 einer mechanischen Schnittstelle definiert. Die Steuervorrichtung 11 ist so ausgeführt, dass sie die auf Basis des Kontaktsensors 16 detektierte Position des Werkstücks W unter Verwendung eines allgemein bekannten Verfahrens zwischen dem globalen Koordinatensystem C1 und dem Koordinatensystem C2 der mechanischen Schnittstelle umwandeln kann.
-
2 ist ein Blockdiagramm der Offline-Programmiervorrichtung 10 nach der vorliegenden Ausführungsform. Die Offline-Programmiervorrichtung 10 ist so ausgeführt, dass sie ein Bearbeitungsprogramm 20 und ein Werkstückpositionsdetektionsprogramm 21 offline erzeugt und das Bearbeitungsprogramm 20 und das Werkstückpositionsdetektionsprogramm 21 offline simuliert. Die Offline-Programmiervorrichtung 10 ist durch einen allgemein bekannten Computer gebildet und umfasst eine CPU 22, die verschiedene Rechensteuerungen vornimmt, eine Speichereinheit 23, die verschiedene Daten speichert, eine Anzeigeeinheit 24, die verschiedene Daten anzeigt, und eine Kommunikationssteuereinheit 25, die mit einer externen Vorrichtung kommunizieren kann. Die Offline-Programmiervorrichtung 10 umfasst ferner Software (nicht dargestellt), um die Komponenten der in 2 gezeigten CPU 22 auszuführen, doch können diese Komponenten auch als Hardware in der CPU 22 ausgeführt werden.
-
Zur Erzeugung des Bearbeitungsprogramms umfasst die CPU 22 eine Bearbeitungslinien- oder Bearbeitungspunktbestimmungseinheit 27 und eine Bearbeitungsprogrammerzeugungseinheit 28. Die Bearbeitungslinien- oder Bearbeitungspunktbestimmungseinheit 27 zeigt ein in der Speichereinheit 23 gespeichertes Basismodell 27 eines Werkstücks an der Anzeigeeinheit 24 an und lässt den Betreiber durch eine Maus oder dergleichen einen oder mehrere Bearbeitungslinien oder Bearbeitungspunkte auf dem angezeigten Basismodell 26 des Werkstücks bestimmen. Als Basismodell 26 des Werkstücks kann ein durch CAD-Daten oder dergleichen erstelltes dreidimensionales Modell des Werkstücks benutzt werden. Die Bearbeitungsprogrammerzeugungseinheit 28 erzeugt auf Basis der bestimmten Bearbeitungslinien oder Bearbeitungspunkte das Bearbeitungsprogramm 20. Das durch die Bearbeitungsprogrammerzeugungseinheit 28 erzeugte Bearbeitungsprogramm 20 wird in der Speichereinheit 23 gespeichert. Die CPU 22 kann optional auch eine Bearbeitungslinienaufteilungseinheit 29 umfassen, die die bestimmten Bearbeitungslinien in mehrere Bearbeitungslinien aufteilt.
-
Zur Erzeugung des Werkstückpositionsdetektionsprogramms 21 umfasst die CPU 22 eine Kontaktpunktbestimmungseinheit 30, eine Detektionsanfangspunktergänzungseinheit 31, eine Kollisionsvermeidungspunktergänzungseinheit 32 und eine Werkstückpositionsdetektionsprogrammerzeugungseinheit 33. Die Kontaktpunktbestimmungseinheit 30 lässt den Betreiber durch die Maus oder dergleichen mehrere Kontaktpunkte, an denen der Kontaktsensor mit dem Werkstück in Kontakt tritt, auf dem Basismodell 26 des Werkstücks bestimmen. Die durch die Kontaktpunktbestimmungseinheit 30 bestimmten mehreren Kontaktpunkte 50 werden in der Speichereinheit 23 gespeichert. Die Detektionsanfangspunktergänzungseinheit 31 ergänzt in einem virtuellen Raum mehrere Detektionsanfangspunkte bei mehreren Roboterbewegungen zur Annäherung an jeden der mehreren Kontaktpunkte in den Bewegungsrichtungen entlang der Koordinatenachsen eines Basiskoordinatensystems, das die Basis für die Roboterbewegung zur Detektion der Position des Werkstücks bildet, automatisch an mehreren Positionen, an denen der Roboter und das Werkstück nicht miteinander kollidieren. Die durch die Detektionsanfangspunktergänzungseinheit 31 ergänzten mehreren Detektionsanfangspunkte 51 werden in der Speichereinheit 23 gespeichert. Als Basiskoordinatensystem kann auch das oben genannte globale Koordinatensystem C1 benutzt werden. Die Kollisionsvermeidungspunktergänzungseinheit 32 detektiert das Vorliegen oder Nichtvorliegen einer Kollision zwischen dem Roboter und dem Werkstück auf einem Bewegungsweg des Roboters, der sich zwischen mehreren Detektionsanfangspunkten bewegt, und ergänzt in dem virtuellen Raum bei Vorliegen einer Kollision automatisch einen Kollisionsvermeidungspunkt, durch den die Kollision vermieden wird. Der durch die Kollisionsvermeidungspunktergänzungseinheit 32 ergänzte Kollisionsvermeidungspunkt 52 wird in der Speichereinheit 23 gespeichert. Die Werkstückpositionsdetektionsprogrammerzeugungseinheit 33 erzeugt automatisch das Werkstückpositionsdetektionsprogramm 21, das die Roboterbewegung zur Bewegung in den Bewegungsrichtungen entlang der Koordinatenachsen des Basiskoordinatensystems zwischen Detektionsanfangspunkten 51 und Kontaktpunkten 50, und zur Bewegung von einem Detektionsanfangspunkt 51 über einen Kollisionsvermeidungspunkt 52, falls ein Kollisionsvermeidungspunkt vorhanden ist, zu einem anderen Detektionsanfangspunkt 51 wiederholt. Das durch die Werkstückdetektionsprogrammerzeugungseinheit 33 erzeugte Werkstückpositionsdetektionsprogramm 21 wird in der Speichereinheit 23 gespeichert.
-
Optional kann die CPU 22 zur Erzeugung des Werkstückpositionsdetektionsprogramms 21 auch eine Basiskoordinatensystemfestlegeeinheit 34 und eine Kontaktlagenberechnungseinheit 35 umfassen. Die Basiskoordinatensystemfestlegeeinheit 34 lässt den Betreiber durch die Maus oder dergleichen ein Basiskoordinatensystem, das die Basis für die Roboterbewegungen zur Detektion der Position des Werkstücks bildet, festlegen. Da durch die Basiskoordinatensystemfestlegeeinheit 34 automatisch ein Basiskoordinatensystem in Bezug auf das in dem virtuellen Raum angeordnete Werkstück festgelegt werden kann, ohne sich an ein allgemein bekanntes Koordinatensystem (globales Koordinatensystem, Koordinatensystem der mechanischen Schnittstelle oder dergleichen) zu binden, wird die Benutzerfreundlichkeit gesteigert. Die Kontaktlagenberechnungseinheit 35 berechnet die Kontaktlage, wenn der Kontaktsensor mit dem Werkstück in Kontakt tritt, automatisch so, dass der Roboter und das Werkstück nicht kollidieren. Wenn die Kontaktlage des Roboters klar nicht mit dem Werkstück kollidiert, braucht die Kontaktlagenberechnungseinheit 35 nicht verwendet zu werden.
-
Die CPU 22 umfasst ferner eine Simulationseinheit 36, die das Bearbeitungsprogramm 20 und das Werkstückpositionsdetektionsprogramm 21 in Bezug auf einen in dem virtuellen Raum angeordneten virtuellen Roboter simuliert. Die Simulationseinheit 36 zeigt ein in der Speichereinheit 23 gespeichertes neues Modell 37 des Werkstücks an der Anzeigeeinheit 24 an und führt zur Detektion der Position des in dem virtuellen Raum angeordneten neuen Modell 37 des Werkstücks das Werkstückpositionsdetektionsprogramm 21 in Bezug auf den in dem virtuellen Raum angeordneten virtuellen Roboter aus. Das neue Modell 37 des Werkstücks ist vorzugsweise ein dreidimensionales Modell des Werkstücks, das eine andere Position oder Lage als das Basismodell 26 aufweist. Dadurch kann offline verifiziert werden, dass der Roboter, der die Detektionstätigkeit gemäß dem Werkstückpositionsdetektionsprogramm 21 vornimmt, nicht mit dem Werkstück kollidiert. Die Simulationseinheit 36 detektiert ferner aus der Roboterposition zur Zeit des Kontakts eines an dem Spitzenende des Roboters angeordneten virtuellen Kontaktsensors mit dem neuen Modell 37 des Werkstücks die Position des neuen Modells 37 des Werkstücks, korrigiert das Bearbeitungsprogramm 20 gemäß der detektierten Position des neuen Modells 37 des Werkstücks, und führt das korrigierte Bearbeitungsprogramm 20 in Bezug auf den in dem virtuellen Raum angeordneten virtuellen Roboter aus.
-
3 ist ein Ablaufdiagramm, das den Betrieb der Offline-Programmiervorrichtung nach der vorliegenden Ausführungsform zeigt. 4A bis 4E sind Ansichten, die die Benutzerschnittstelle zur Erzeugung des Bearbeitungsprogramms und des Werkstückpositionsdetektionsprogramms nach der vorliegenden Ausführungsform zeigen. In 3 sind die Schritte S10 und S11 Schritte zur Erzeugung des Bearbeitungsprogramms und die Schritte S12 bis S18 Schritte zur Erzeugung des Werkstückpositionsdetektionsprogramms. Wenn die Erzeugung des Bearbeitungsprogramms und des Werkstückpositionsdetektionsprogramms begonnen wird, wird wie in 4A gezeigt das Basismodell 26 des Werkstücks aus der Speichereinheit gelesen und an der Anzeigeeinheit 24 dargestellt. In Schritt S10 wird wie in 4B gezeigt durch den Bediener mittels der Maus oder dergleichen eine Bearbeitungslinie L auf dem Basismodell 26 des Werkstücks bestimmt. Hier kann auch ein Bearbeitungspunkt bestimmt werden, können auch mehrere Bearbeitungslinien oder Bearbeitungspunkte bestimmt werden, und können auch mehrere Bearbeitungslinien aufgeteilt werden. In Schritt S11 wird auf Basis der bestimmten Bearbeitungslinie L automatisch ein Bearbeitungsprogramm erzeugt.
-
Optional wird in Schritt S12 wie in 4C gezeigt ein Basiskoordinatensystem X3, das die Basis für die Roboterbewegung zur Detektion des Werkstücks bildet, festgelegt. In Schritt S13 werden wie in 4D gezeigt durch den Bediener mittels der Maus oder dergleichen mehrere Kontaktpunkte P1 bis P6, an denen der Kontaktsensor mit dem Werkstück in Kontakt tritt, auf dem Basismodell 26 des Werkstücks bestimmt. Dabei ist es günstig, sechs Kontaktpunkte zu bestimmen, damit entlang jeder der Koordinatenachsen des Basiskoordinatensystems C3 wenigstens zwei Detektionstätigkeiten vorgenommen werden. Dadurch können Abweichungen der Position und der Lage des Werkstücks in Bezug auf das Basiskoordinatensystem C3 leicht bestimmt werden. Optional wird in Schritt S14 die Kontaktlage, wenn der Kontaktsensor mit dem Werkstück in Kontakt tritt, automatisch so berechnet, dass der Roboter und das Werkstück nicht kollidieren. In Schritt S15 werden wie in 4E gezeigt in dem virtuellen Raum automatisch mehrere Detektionsanfangspunkte D1 bis D6 bei mehreren Roboterbewegungen zur Annäherung an jeden der mehreren Kontaktpunkte P1 bis P6 in den Bewegungsrichtungen (negative X-Richtung, negative Y-Richtung, negative Z-Richtung) entlang der Koordinatenachsen des Basiskoordinatensystems C3 ergänzt. Dabei werden die Detektionsanfangspunkte D1, D2 durch Addieren von +Z zu der Z-Koordinate der Kontaktpunkte P1, P2 ermittelt, werden die Detektionsanfangspunkte D3, D4 durch Addieren von +X zu der X-Koordinate der Kontaktpunkte P3, P4 ermittelt, und werden die Detektionsanfangspunkte D5, D6 durch Addieren von +Y zu der Y-Koordinate der Kontaktpunkte P5, P6 ermittelt.
-
In Schritt S16 wird das Vorliegen oder Nichtvorliegen einer Kollision des Roboters und des Werkstücks auf einem Bewegungsweg des Roboters, der sich zwischen den mehreren Detektionsanfangspunkten D1 bis D6 bewegt, detektiert. Da der Roboter und das Werkstück wie in 4E gezeigt auf den Bewegungswegen des Roboters, der sich zwischen den Detektionsanfangspunkten D2 und D3 und den Detektionsanfangspunkten D4 und D5 bewegt, kollidieren (JA in Schritt S16), wird in Schritt S17 zwischen den Detektionsanfangspunkten D2 und D3 und zwischen den Detektionsanfangspunkten D4 und D5 automatisch jeweils ein Kollisionsvermeidungspunkt E1, E2 in dem virtuellen Raum ergänzt. Da der Roboter und das Werkstück andererseits auf den Bewegungswegen des Roboters, der sich zwischen den Detektionsanfangspunkten D1 und D2, zwischen den Detektionsanfangspunkten D3 und D4, und zwischen den Detektionsanfangspunkten D5 und D6 bewegt, nicht kollidieren (NEIN in Schritt S16), wird zu Schritt S18 übergegangen.
-
In Schritt S18 wird automatisch das Werkstückpositionsdetektionsprogramm erzeugt, das die Roboterbewegung zur Bewegung in den Bewegungsrichtungen (negative X-Richtung, negative Y-Richtung, negative Z-Richtung) entlang der Koordinatenachsen des Basiskoordinatensystems C3 zwischen den Detektionsanfangspunkten D1 bis D6 und den Kontaktpunkten P1 bis P6, und zur Bewegung von einem Detektionsanfangspunkt über den Kollisionsvermeidungspunkt E1, E2, falls der Kollisionsvermeidungspunkt vorhanden ist, zu einem anderen Detektionsanfangspunkt wiederholt. Dann endet die Erzeugung des Bearbeitungsprogramms und des Werkstückpositionsdetektionsprogramms.
-
5A und 5B sind Ansichten, die die Benutzerschnittstelle zeigen, die das Werkstückpositionsdetektionsprogramm und das Bearbeitungsprogramm nach der vorliegenden Ausführungsform simuliert. Wie in 5A gezeigt wird das neue Modell 37 des Werkstücks (das dreidimensionale Modell des Werkstücks, das eine andere Position oder Lage als das Basismodell 26 aufweist) aus der Speichereinheit gelesen und an der Anzeigeeinheit 24 dargestellt. Dann wird das Werkstückpositionsdetektionsprogramm in Bezug auf einen in dem virtuellen Raum angeordneten virtuellen Roboter 40 ausgeführt. Der virtuelle Roboter 40 nähert sich dem neuen Modell 37 des Werkstücks in der Bewegungsrichtung (der negativen Y-Richtung) entlang einer Koordinatenachse (der Y-Achse) des Basiskoordinatensystems C3 von Detektionsanfangspunkten (D5, D6) her und detektiert aus der Position des Roboters zur Zeit des Kontakts mit dem neuen Modell 37 des Werkstücks die Position des neuen Modells 37 des Werkstücks. Nun werden Abweichungen der Position oder der Lage des neuen Modells 37 des Werkstücks in Bezug auf das Basiskoordinatensystem C3 berechnet. Wie in 5B gezeigt wird das Basiskoordinatensystem C3 zu dem Basiskoordinatensystem C3' geändert, damit die Position oder die Lage des neuen Modells 37 des Werkstücks mit der Position oder der Lage des Basismodells 26 des Werkstücks übereinstimmt. Statt dessen kann auch die Position oder die Lage des neuen Modells 37 des Werkstücks geändert werden, damit die Position oder die Lage des neuen Modells 37 des Werkstücks mit der Position oder der Lage des Basismodells 26 des Werkstücks übereinstimmt. Da dadurch die Position und die Lage des neuen Modells 37 des Werkstücks mit der Position und der Lage des Basismodells 26 des Werkstücks übereinstimmen, kann das Positionsdetektionsprogramm auch in Bezug auf das neue Modell 37 des Werkstücks so ausgeführt werden, dass der Roboter und das Werkstück nicht kollidieren. Obwohl dies in 5A und 5B nicht dargestellt ist, wird die Regulierung der Positionsbeziehung zwischen dem Werkstück und dem Basiskoordinatensystem auch für die X-Achse und die Z-Achse vorgenommen. Die Offline-Programmiervorrichtung nimmt nach der Ausführung der Simulation des Positionsdetektionsprogramms auch eine Simulation des Bearbeitungsprogramms vor. Auf diese Weise kann der Bediener vorab verifizieren, dass der Roboter und das Werkstück nicht kollidieren, ohne dass es nötig ist, das Positionsdetektionsprogramm und das Bearbeitungsprogramm durch den Roboter der tatsächlichen Maschine auszuführen.
-
Da durch die Offline-Programmiervorrichtung 10 nach der vorliegenden Ausführungsform die Roboterbewegung zur Bewegung in den Bewegungsrichtungen (negative X-Richtung, negative Y-Richtung, negative Z-Richtung) entlang der Koordinatenachsen des Basiskoordinatensystems C3 zwischen Detektionsanfangspunkten D1 bis D6 und Kontaktpunkten P1 bis P6, und zur Bewegung von einem Detektionsanfangspunkt über einen Kollisionsvermeidungspunkt E1, E2, falls ein Kollisionsvermeidungspunkt vorhanden ist, zu einem anderen Detektionsanfangspunkt wiederholt wird, kann ein Werkstückpositionsdetektionsprogramm erzeugt werden, bei dem das Werkstück und der Roboter auch auf mehreren Bewegungswegen des Roboters, der sich zwischen mehreren Detektionsanfangspunkten bewegt, nicht kollidieren
-
Die Software bei der oben beschriebenen Ausführungsform kann auf ein computerlesbares nichtflüchtiges Aufzeichnungsmedium, eine CD-ROM oder dergleichen aufgezeichnet bereitgestellt werden. In der vorliegenden Beschreibung wurden verschiedene Ausführungsformen erklärt, doch sollte sich verstehen, dass die vorliegende Erfindung nicht auf die verschiedenen beschriebenen Ausführungsformen beschränkt ist und innerhalb des Umfangs, der in den nachstehenden Ansprüchen angeben ist, verschiedene Änderungen vorgenommen werden können.