-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung betrifft eine Programmerzeugungsvorrichtung und ein Programmerzeugungsverfahren.
-
STAND DER TECHNIK
-
Herkömmlich ist bei einer Programmerzeugungsvorrichtung ein Verfahren bekannt, das eine tatsächliche Gratlinie des Entgratens durch einen visuellen Sensor in einem Bearbeitungsentgratungsschritt detektiert, der durch einen Roboter durchgeführt wird, und ein Routenprogramm erstellt, das der Gratlinie entspricht (japanische Offenlegungsschrift, Veröffentlichung Nr. 2015009324). Ferner ist ein Verfahren bekannt, das einen Weg eines Endeffektors durch einen visuellen Sensor auch in einem Polierschritt detektiert und ein Routenprogramm erstellt, das dem Weg entspricht.
-
Im Bearbeitungsentgratungsschritt und im Polierschritt führt der Roboter einen Alarm-Stopp durch, wenn er einen singulären Punkt, eine Grenze jeder Achse, eine festgelegte Verbotszone oder dergleichen erreicht oder in der Nähe vorbeifährt. Um dies zu vermeiden, wird normalerweise ein Bewegungsweg derart eingelernt/festgelegt, dass er nicht in der Nähe des singulären Punkts, der Grenze und der festgelegten Verbotszone vorbeiführt.
-
Ferner kann beim automatischen Erstellen eines Routenprogramms gemäß der tatsächlichen Gratlinie oder des tatsächlichen Weges auch dann, wenn es mit einem bestimmten Werkstück kein Problem gibt, der singuläre Punkt oder die Grenze aufgrund eines Unterschiedes bezüglich einer festen Position oder eines Unterschiedes bei der Größe oder Form des Werkstücks selbst zu einem Alarm bei einem anderen Werkstück werden.
-
Patentschrift 1 Japanische Offenlegungsschrift, Veröffentlichung Nr. 2015-009324
-
OFFENBARUNG DER ERFINDUNG
-
Durch die Erfindung zu lösende Probleme
-
In einem System, das das oben beschriebene Routenprogramm verwendet, wird bei vorgegebener Werkstückbearbeitung, wie beispielsweise etwa in einem Entgratungsschritt, eine Kraft des Roboters zum Anpressen eines Werkzeugs gegen das Werkstück erzeugt. Somit kommt in einem Zustand, in dem ein Arm des Roboters ausgelenkt wird, eine Spitze des Roboters (Endeffektor/Werkzeugmaschine) in eine Position, in der sie leicht in das Werkstück beißt.
-
Jedoch wird ein solcher Auslenkungsbetrag im Routenprogramm, das eine Bewegungsroute des Spitzenteils des Roboters steuert, nicht berücksichtigt, so dass es eine Fehlausrichtung gibt, die bezüglich der tatsächlichen Position erzeugt wird, wenn ein Entgratungsroboter das Werkzeug gegen das Werkstück presst. Es wird daher darauf hingewiesen, dass es sein kann, dass nicht korrekt bestimmt wird, ob es den singulären Punkt, die Grenze jeder Achse, die festgelegte Verbotszone oder dergleichen erreicht hat, und dass das Werkstück selbst oder der Endeffektor (Spitze des Arms des Roboters)/ das Bearbeitungswerkzeug beschädigt ist. Bei einem solchen Routenprogramm ist es wünschenswert, dass der Auslenkungsbetrag des Spitzenteils des Roboters, wenn die Spitze gegen das Werkstück anliegt, berücksichtigt wird.
-
Mittel zur Lösung des Problems
-
Eine Programmerzeugungsvorrichtung nach der vorliegenden Offenbarung umfasst: eine Erfassungseinheit, die Routendaten erfasst, die eine Route anzeigen, der durch eine Spitze eines Roboters in Bezug auf ein Ziel gefolgt werden soll; eine Detektionseinheit, die eine Anpresskraft zum Anpressen der Spitze des Roboters gegen das Ziel detektiert; eine Berechnungseinheit, die einen Fehlausrichtungsbetrag der Route, der gefolgt werden soll, der aufgrund der Auslenkung der Spitze des Roboters verursacht wird, basierend auf der Anpresskraft, die durch die Detektionseinheit detektiert wird, und einer vorgegebenen Konstante berechnet; und eine Erzeugungseinheit, die automatisch ein Routenprogramm zum Steuern einer Bewegungsroute der Spitze des Roboters basierend auf den Routendaten, die durch die Erfassungseinheit erfasst werden, und dem Fehlausrichtungsbetrag erzeugt, der durch die Berechnungseinheit berechnet wird.
-
Wirkungen der Erfindung
-
Nach einem Aspekt ist es möglich, automatisch das Routenprogramm zu erzeugen, das den Auslenkungsbetrag, wenn das Spitzenteil gegen das Werkstück anliegt, berücksichtigt.
-
Figurenliste
-
- 1 ist ein Blockdiagramm zum Beschreiben einer Beschaffenheit einer Robotervorrichtung, das die vorliegende Ausführungsform verdeutlicht;
- 2 ist ein Diagramm, das Positionskoordinaten von Abtastpunkten zum Messen des Auslenkungsbetrags durch eine Berechnungseinheit darstellt, die in 1 gezeigt wird;
- 3 ist ein Ablaufdiagramm zum Beschreiben einer Steuerprozedur einer Programmerzeugungsvorrichtung, das die vorliegende Ausführungsform verdeutlicht;
- 4 ist eine schematische Draufsicht, die eine Gratlinienroute verdeutlicht, die auf einem Routenprogramm basiert, das durch eine in 1 gezeigte Programmerzeugungseinheit erzeugt wurde;
- 5 ist ein Blockdiagramm zum Beschreiben einer Beschaffenheit der Programmerzeugungsvorrichtung, das die vorliegende Ausführungsform verdeutlicht;
- 6 ist eine schematische Ansicht zum Beschreiben eines Entgratungsschritts, der durch einen Roboter durchgeführt wird, die die vorliegende Ausführungsform verdeutlicht;
- 7 ist eine schematische Ansicht zum Beschreiben des Entgratungsschritts, der durch einen Roboter durchgeführt wird, die die vorliegende Ausführungsform verdeutlicht;
- 8 ist eine schematische Ansicht zum Beschreiben des Entgratungsschritts, der durch einen Roboter durchgeführt wird, die die vorliegende Ausführungsform verdeutlicht;
- 9 ist ein Ablaufdiagramm zum Beschreiben einer Steuerprozedur der Programmerzeugungsvorrichtung, das die vorliegende Ausführungsform verdeutlicht;
- 10 ist eine schematische Ansicht zum Beschreiben eines Entgratungsschritts, der durch einen Roboter durchgeführt wird, die die vorliegende Ausführungsform verdeutlicht;
- 11 ist ein Ablaufdiagramm zum Beschreiben einer Steuerprozedur der Programmerzeugungsvorrichtung, das die vorliegende Ausführungsform verdeutlicht; und
- 12 ist eine schematische Ansicht zum Beschreiben eines Polierschritts, der durch den Roboter durchgeführt wird, die die vorliegende Ausführungsform verdeutlicht.
-
BEVORZUGTE AUSFÜHRUNGSWEISE DER ERFINDUNG
-
Hiernach werden Ausführungsformen der vorliegenden Offenbarung beschrieben.
-
Erste Ausführungsform
-
1 ist ein Blockdiagramm zum Beschreiben einer Beschaffenheit einer Robotervorrichtung, das eine erste Ausführungsform verdeutlicht. Hiernach werden eine Programmerzeugungsvorrichtung und ein Programmierverfahren zum Erzeugen eines Routenprogramms, das auf eine Robotervorrichtung 1 angewendet wird, detailliert beschrieben. Dieses Beispiel verdeutlicht einen Fall, in dem ein vorgegebenes Werkzeug beispielsweise ein Entgratungswerkzeug ist.
-
Die in der vorliegenden Ausführungsform besprochene Robotervorrichtung umfasst die Robotervorrichtung 1, eine Steuereinrichtung 2 der Robotervorrichtung 1, ein Roboterhandgelenk (Endeffektor) 3, einen Kraftsensor 4 und ein Entgratungswerkzeug 5. Das Entgratungswerkzeug 5 führt eine Bearbeitung an einem Werkstück 7, das in 6 dargestellt wird, und dergleichen aus, die später beschrieben werden soll. Was die Werkstücke 7 angeht, gibt es Positionierungsfehler, und es gibt ebenfalls Schwankungen bezüglich deren Formen und Größen. Ferner ist die Steuereinrichtung 2 mit einer Kraftsteuereinheit 21, einer Speichereinheit 22, einer Berechnungseinheit 23, einer Erfassungseinheit 24, einer Programmerzeugungseinheit 25 und einer Programmausführungseinheit 26 ausgebildet.
-
Man beachte, dass die Steuereinrichtung 2 eine Eingabeeinheit 11 und eine Anzeigeeinheit 12 über eine nicht gezeigte Schnittstelle umfasst. Die Robotervorrichtung 1 umfasst eine Antriebseinheit 1A, und die Bearbeitungsverarbeitung des Entgratungswerkzeugs 5 wird gemäß einer Anweisung von der Kraftsteuereinheit 21 ausgeführt. Die Eingabeeinheit 11 gibt den Auslenkungsbetrag des Roboterhandgelenks (des Endeffektors) 3 ein, der durch eine Bedienperson gemessen wird.
-
Die Speichereinheit 22 speichert in einer aktualisierbaren Weise ein Entgratungsprogramm und ein Polierprogramm, die durch die Programmerzeugungseinheit 25 erstellt wurden, wie auch Parameter (Form, Größe, Material) jedes Werkstücks, die für jedes solcher Bearbeitungsprogramme benötigt werden.
-
Die Erfassungseinheit 24 kommuniziert mit einem vorgegebenen, nicht gezeigten CAD-System, um Routendaten des Endeffektors 3 zu erfassen, der sich bei der Durchführung einer Bearbeitung an einem Ziel (Werkstück W) bewegt, und speichert sie in der Speichereinheit 22. Die Berechnungseinheit 23 berechnet den Auslenkungsbetrag für die durch den Kraftsensor 4 detektierte Anpresskraft unter Verwendung einer Federkonstante, die in einer wie später beschriebenen Weise gespeichert ist. Die Programmerzeugungseinheit 25 erzeugt ein Routenprogramm, das erhalten wird, indem die in der Speichereinheit 22 gespeicherte Bearbeitungsroutendaten basierend auf dem Auslenkungsbetrag kompensiert werden. Die Programmausführungseinheit 26 führt das kompensierte Routenprogramm aus, um die Kraftsteuereinheit 21 und die Antriebseinheit 1A zu steuern, um die Bewegungsroute des Spitzenteils der Robotervorrichtung 1 zu steuern, an der ein vorgegebenes Werkzeug befestigt ist.
-
Im Falle der in 1 dargestellten Robotervorrichtung berechnet die Berechnungseinheit 23 den Auslenkungsbetrag basierend auf der Federkonstante k, die in der Speichereinheit 22 gespeichert ist, in einer Weise, die später beschrieben wird, und auf dem Anpressbetrag, der durch den Kraftsensor 4 detektiert wurde. Dann erzeugt die Programmerzeugungseinheit 25 ein Routenprogramm, indem sie den Auslenkungsbetrag berücksichtigt, basierend auf den in der Speichereinheit 22 gespeicherten Routendaten (CAD-Daten) und dem berechneten Auslenkungsbetrag.
-
Man beachte, dass die durch die Erfassungseinheit 24 erfassten CAD-Daten erstellt werden können, indem beispielsweise Formdaten oder Bilddaten zur Bearbeitung des Werkstücks verarbeitet werden und die Route zum Anpressen des Werkzeugs nachverfolgt wird, indem ein Nachverfolgungsbefehl oder dergleichen verwendet wird, oder automatisch durch Raster/Vektorumwandlungsverarbeitung erstellt werden können. Bei der vorliegenden Ausführungsform wird die Gratlinie des Ziels (des Werkstücks W) als die Routendaten herangezogen, denen der Endeffektor als Spitzenteil der Robotervorrichtung 1 folgt, oder es wird die gerade Route, die sich linear auf der Ebene des Ziels bewegt, als die CAD-Daten herangezogen.
-
Dies macht es möglich, das Routenprogramm zu erzeugen, das für den Auslenkungsbetrag beider Fälle angepasst ist, ob nun das an dem Endeffektor 3 befestigte Werkzeug ein Entgratungswerkzeug oder ein Polierwerkzeug ist.
-
Die Programmerzeugungseinheit 25 erzeugt als eine Erzeugungseinheit automatisch das Routenprogramm, das den Weg steuert, entlang dessen sich der Endeffektor 3 der Robotervorrichtung 1 bewegt, basierend auf den Routendaten, die in der Speichereinheit 22 gespeichert sind und denen der Endeffektor 3 der Robotervorrichtung 1 folgt, und speichert es in der Speichereinheit 22.
-
Der Kraftsensor 4 als eine Detektionseinheit detektiert die Anpresskraft, die das vorgegebene Werkzeug, das an dem Endeffektor der später zu beschreibenden Robotervorrichtung 1 befestigt ist, gegen das Werkstück W drückt, und gibt sie an die Kraftsteuereinheit 21 und die Berechnungseinheit 23 aus. In einem Fall, in dem die Daten des Kraftsensors 4 ein analoger Betrag sind, wird der Auslenkungsbetrag als digitale Daten über einen nicht dargestellten A/D-Wandler ausgegeben.
-
Die Berechnungseinheit 23 berechnet, basierend auf der durch den Kraftsensor 4 detektierten Anpresskraft und der vorgegebenen Konstante (Federkonstante), einen Fehlausrichtungsbetrag der Route, der gefolgt werden soll, der aufgrund der Auslenkung des Arms der Robotervorrichtung 1 verursacht wird, und speichert das Berechnungsergebnis in der Speichereinheit 22. Man beachte, dass Details der Berechnung des Fehlausrichtungsbetrags später beschrieben werden.
-
Die Programmerzeugungseinheit 25 liest den Auslenkungsbetrag jedes Werkstücks aus, der in der Speichereinheit 22 gespeichert ist, und erzeugt ein Routenprogramm, das erhalten wird, indem die Bearbeitungsroutendaten basierend auf einem im Vorhinein in der Speichereinheit 22 gespeicherten Entgratungsschritt kompensiert werden, und speichert es in der Speichereinheit 22.
-
Die Kraftsteuereinheit 21 gibt Antriebssteuerungsinformation zum Durchführen des dreidimensionalen Entgratens an die Antriebseinheit 1A der Robotervorrichtung 1 gemäß dem kompensierten Routenprogramm aus, das in der Speichereinheit 22 gespeichert ist. Die Antriebseinheit 1A der Robotervorrichtung 1 führt eine dreidimensionale Bewegung des Roboterarms und den Antrieb eines vorgegebenen Werkzeugs, wie beispielsweise des Entgratungswerkzeugs 5, basierend auf der Antriebssteuerungsinformation, die von der Kraftsteuereinheit 21 ausgegeben wird, und der Bearbeitungssteuerungsinformation des visuellen Sensors 8, des Kraftsensors 4 und dergleichen aus.
-
Erstes Berechnungsbeispiel für die Federkonstante
-
Hiernach wird eine Federkonstantenberechnungsverarbeitung, die durch die Berechnungseinheit 23 durchgeführt, die in 1 gezeigt wird, detailliert besprochen. Die Berechnungseinheit 23 misst den Auslenkungsbetrag für die Anpresskraft in den X-, Y- und Z-Richtungen in typischen Positionen und Haltungen der Robotervorrichtung 1 (beispielsweise alle „0“ in J1 bis J6). Man beachte hier, dass die Anpresskraft aus der Ausgabe des Kraftsensors 4 erhalten wird. Unter der Annahme, dass die Anpresskraft F und der Auslenkungsbetrag L in einer proportionalen Beziehung stehen, berechnet die Berechnungseinheit 23 die Federkonstante (k=F/L) gemäß L=F/k (Federkonstante).
-
In diesem Beispiel wird der Wert der Federkonstante k, die einem vorgegebenen Werkzeug entspricht, aus der Anpresskraft F, die durch den Kraftsensor 4 abgetastet wird, und dem gemessenen Auslenkungsbetrag L berechnet. Wenn angenommen wird, dass sie nicht in einer proportionalen Beziehung steht, wird eine Funktion F erhalten. Die Programmerzeugungseinheit 25 nutzt die Federkonstante k oder die Funktion F für alle Positionen und Haltungen.
-
Ferner speichert die Berechnungseinheit 23 die berechnete Federkonstante k, die dem vorgegebenen Werkzeug entspricht, in der Speichereinheit 22 als eine Federkonstantentabelle gemäß Information zur Identifizierung der Robotervorrichtung 1 und jedes Werkzeugs.
-
Zweites Berechnungsbeispiel für die Federkonstante
-
2 ist ein Diagramm, das Positionskoordinaten von Abtastpunkten zum Messen des Auslenkungsbetrags durch die Berechnungseinheit 23 darstellt, die in 1 gezeigt wird. Schwarze Kreise im Diagramm repräsentieren die Abtastpunkte, an denen der Auslenkungsbetrag gemessen wird.
-
In dem in 2 dargestellten Beispiel legt die Berechnungseinheit 23 viele Punkte innerhalb eines Bewegungsbereichs der Robotervorrichtung 1 fest, wie beispielsweise viele Gitterpunkten in äquivalenten Abständen in den XYZ-Achsenrichtungen. Die Bedienperson führt tatsächliche Messungen des Auslenkungsbetrags für die Anpresskraft in den XYZ-Richtungen in der Position/Haltung der Robotervorrichtung 1 an jedem Abtastpunkt durch. Die Berechnungseinheit 23 berechnet die Federkonstante kxyz oder die Funktion fxyz, die dem vorgegebenen Werkzeug an dem Abtastpunkt entspricht, durch die gleiche Berechnung wie bei dem ersten Berechnungsbeispiel für den Auslenkungsbetrag, und speichert das Berechnungsergebnis in der Speichereinheit 22.
-
Man beachte, dass sie auch durch Simulation berechnet werden kann, ohne tatsächlich den Auslenkungsbetrag wie im oben beschriebenen Berechnungsbeispiel zu messen. Der Auslenkungsbetrag variiert normalerweise für jedes Modell der Roboter, so dass eine Simulation für jedes der Modelle der Roboter, die verwendet werden sollen, durchgeführt wird. Genauer wird ein physikalisches Modell erstellt, das die Charakteristiken wie etwa die Gliederlänge des Roboters, die Masse/Trägheit jedes Teils und das Untersetzungsgetriebe jeder Achse berücksichtigt, und der Auslenkungsbetrag für die Anpresskraft, die auf die Spitze des Roboters oder des Endeffektors ausgeübt wird, wird durch Simulation berechnet. Es wird hier angenommen, dass die Federkonstante tatsächlich gemessen wird.
-
3 ist ein Ablaufdiagramm zum Beschreiben einer Steuerprozedur der Programmerzeugungsvorrichtung, das die vorliegende Ausführungsform verdeutlicht. Man beachte, dass ST1 bis ST5 jeweils Schritte bezeichnen, und jeder der Schritte umgesetzt wird, wenn eine nicht dargestellte CPU ein Steuerprogramm, das in einem ROM oder dergleichen gespeichert ist, in ein RAM lädt und ausführt. Dieses Beispiel entspricht einer Programmerzeugungsverarbeitung bei der Bearbeitung, während das Werkzeug gegen das Werkstück gepresst wird.
-
Nachdem sie die Routendaten, die einem vorgegebenen Werkzeug entsprechen, wie beispielsweise die Routendaten, die einer Gratroute folgen, oder die Routendaten, die einer geraden Route folgen, aus der Speichereinheit 22 ausgelesen hat, erstellt die Programmerzeugungseinheit 25 zunächst ein Routenprogramm gemäß den Routendaten und hält es zeitweise in der Speichereinheit 22 (ST1). Man beachte, dass die Routendaten im Voraus durch ein nicht dargestelltes CAD-System erstellt werden, und angenommen wird, dass sie durch die Erfassungseinheit 24 erfasst und in der Speichereinheit 22 gespeichert wurden. Ferner sind die Routendaten Daten, in denen der Auslenkungsbetrag im Spitzenteil nicht berücksichtigt wird.
-
Dann greift die Berechnungseinheit 23 zurück auf eine Federkonstantentabelle für ein vorgegebenes Werkzeug, die in der Speichereinheit 22 gespeichert ist, basierend auf der Identifikationsinformation der Robotervorrichtung 1 und der Größe, dem Material und dergleichen des Werkstücks W, und berechnet den Auslenkungsbetrag, der verursacht wird, wenn das vorgegebene Werkzeug gegen das Werkstück W gepresst wird, indem sie eine Berechnungsverarbeitung durchführt, wobei sie die ausgelesene Federkonstante k, die dem vorgegebenen Werkzeug entspricht, und die Anpresskraft des vorgegebenen Werkzeugs verwendet, die durch den Kraftsensor 4 detektiert wurde (ST2).
-
Basierend auf dem berechneten Auslenkungsbetrag erstellt die Programmerzeugungseinheit 25 ein neues Routenprogramm, das erhalten wird, indem sie die Routendaten des Routenprogramms für das vorgegebene Werkzeug, das im Voraus in der Speichereinheit 22 gespeichert wurde, kompensiert (ST3).
-
Dann analysiert die Programmerzeugungseinheit 25 das neu erstellte Routenprogramm, um zu bestimmen, ob es irgendeinen Abschnitt gibt, der sich dem singulären Punkt der Robotervorrichtung 1, dem Grenzwert jeder Antriebsachse oder einer weiteren Verbotszone nähert (ST4). Wenn die Programmerzeugungseinheit 25 hierbei bestimmt, dass es einen Abschnitt gibt, der sich dem singulären Punkt der Robotervorrichtung 1, dem Grenzwert jeder Antriebsachse oder einer weiteren Verbotszone nähert, wird die Verarbeitung zu ST5 vorgerückt.
-
Dann erstellt die Programmerzeugungseinheit 25 ein Routenprogramm, das den in ST4 angegebenen Ort als den Endpunkt übernimmt und sich davon über eine designierte Route zurückzieht (ST5), und beendet die Verarbeitung. Man beachte, dass das erstellte endgültige Routenprogramm in der Speichereinheit 22 gespeichert wird.
-
Wenn indes die Programmerzeugungseinheit 25 in Schritt ST4 bestimmt, dass es keinen Abschnitt gibt, der sich dem singulären Punkt der Robotervorrichtung 1, dem Grenzwert jeder Antriebsachse oder einer weiteren Verbotszone nähert, wird die Verarbeitung beendet.
-
4 ist eine schematische Draufsicht, die eine Gratlinienroute verdeutlicht, die auf dem Routenprogramm basiert, das durch die in 1 gezeigte Programmerzeugungseinheit 25 erzeugt wurde. Was die schwarzen Kreispunkte in der Zeichnung angeht, ist die äußere Seite der Punkt auf einem Weg, der eine Auslenkung nicht berücksichtigt, während die innere Seite der Punkt auf einem Weg ist, der die Auslenkung berücksichtigt. Die unterbrochene Linie zeigt einen Weg an, der durch Verbinden der Spitzenpositionen unter Berücksichtigung der Auslenkung des Entgratungswerkzeugs 5 gebildet wird.
-
Dadurch wird der Auslenkungsbetrag, der verursacht wird, wenn das an der Robotervorrichtung 1 befestigte Entgratungswerkzeug 5 gegen das Werkstück W anliegt, berücksichtigt, so dass es möglich ist, ein Entgraten des Werkstücks W mit hoher Genauigkeit durchzuführen, ohne eine Fehlausrichtung zu haben.
-
Wirkung der ersten Ausführungsform
-
Nach der vorliegenden Ausführungsform ist es möglich, das Routenprogramm automatisch zu erzeugen, das gemäß dem Auslenkungsbetrag kompensiert wird, der aufgrund der Auslenkung des Arms des Roboters verursacht wird, wenn das an dem Roboter befestigte vorgegebene Werkzeug tatsächlich gegen das Werkstück gepresst wird.
-
Zweite Ausführungsform
-
Die obige Ausführungsform wird beschrieben, indem auf einen Fall Bezug genommen wird, in dem das Routenprogramm erzeugt wird, indem gemäß dem Auslenkungsbetrag des Arms der Robotervorrichtung 1 die Routendaten für das vorgegebene Werkzeug kompensiert werden, das gegen das Werkstück gepresst ist, die durch die Erfassungseinheit 24 von dem CAD-System erfasst und gespeichert werden. Hiernach wird eine Ausführungsform zum Erzeugen eines Routenprogramms basierend auf den Routendaten des Werkzeugs detailliert beschrieben, die durch Verwendung eines visuellen Sensors 8 und dem durch Berechnung erhaltenen Auslenkungsbetrag des Arms der Robotervorrichtung 1 erhalten werden. Hiernach wird ein Beispiel beschrieben, in dem die Route, entlang derer sich das Entgratungswerkzeug 5 in einem Entgratungsschritt bewegt, eine Route ist, die sich entlang der Gratlinie an dem Werkstück W bewegt.
-
Routenprogrammerzeugungsverarbeitung für den Entgratungsschritt als Beispiel
-
5 ist ein Blockdiagramm zum Beschreiben einer Beschaffenheit der Programmerzeugungsvorrichtung, das die vorliegende Ausführungsform verdeutlicht. Man beachte, dass die gleichen Bezugszeichen den gleichen Komponenten wie denen aus 1 zugewiesen werden, und doppelte Erläuterungen davon vermieden werden. Der visuelle Sensor 8 ist oberhalb des Werkstücks W so vorgesehen, dass er dreidimensional beweglich ist, und detektiert eine Entgratungsgratlinie des Ziels (Werkstück W) durch Aufnehmen eines Bildes einer Gratlinienroute, der der Endeffektor als Spitzenteil der Robotervorrichtung 1 folgt.
-
Bei der vorliegenden Ausführungsform berechnet die Berechnungseinheit 23 im Voraus den Auslenkungsbetrag basierend auf der Anpresskraft gegen das Werkstück, die durch den Kraftsensor 4 detektiert wird, und der gespeicherten Federkonstante für das Entgratungswerkzeug 5. Die Programmerzeugungseinheit 25 erstellt ein Routenprogramm, und speichert es in der Speichereinheit 22, das auf den Routendaten basiert, die erfasst werden, indem tatsächlich ein Bild eines vorgegebenen Schritts, wie beispielsweise des Entgratungsschritts, durch den visuellen Sensor 8 aufgenommen wird. Danach erstellt die Programmerzeugungseinheit 25 ein neues Routenprogramm, das auf dem in der Speichereinheit 22 gespeicherten Routenprogramm und dem Auslenkungsbetrag basiert.
-
Wenn sie die durch den visuellen Sensor 8 detektierten Entgratungsgratliniendaten analysiert und automatisch das Routenprogramm erstellt, das auf den Gratliniendaten basiert, erstellt die Programmerzeugungseinheit 25 das Routenprogramm, das bei Annäherung an den singulären Punkt, den Grenzwert jeder Achse oder eine andere festgelegte Verbotszone den Ort als Endpunkt nimmt, und sich danach davon über eine designierte Route zurückzieht.
-
In ähnlicher Weise erstellt die Programmerzeugungseinheit 25 ein Routenprogramm, mit dem das Werkzeug dem Zurückziehweg einmal folgt und erneut zu dem Weg zurückkehrt, der durch den visuellen Sensor 8 detektiert wurde, nachdem es sich von dem singulären Punkt, dem Grenzwert jeder Achse oder anderen festgelegten Verbotszonen um einen vorgegebenen Abstand wegbewegt hat. Ferner wird während des Entgratens eine Anpresskraft durch die Robotervorrichtung 1 erzeugt, so dass der Arm der Robotervorrichtung 1 ausgelenkt wird.
-
Somit ist es in der vorliegenden Ausführungsform wünschenswert, den singulären Punkt und die Grenze an der Position zu bestimmen, an der der Auslenkungsbetrag kompensiert wird. Hiernach wird der Auslenkungsbetrag des Roboters in der Position/Haltung im Voraus erfasst oder durch die oben beschriebene Funktion berechnet. Hiernach wird ein Entgratungsschritt, der durch die Robotervorrichtung 1 ausgeführt wird, auf die die vorliegende Ausführungsform angewendet wird, unter Bezugnahme auf die Zeichnungen beschrieben.
-
Die 6 bis 8 sind schematische Ansichten zum Beschreiben des Entgratungsschritts, der durch den Roboter durchgeführt wird, die die vorliegende Ausführungsform verdeutlichen, bei denen 6 einen Zustand verdeutlicht, in dem sich das Entgratungswerkzeug dem Startpunkt des Entgratungswegs annähert, 7 einen Zustand verdeutlicht, in dem der automatisch erzeugte Weg nahe dem singulären Punkt vorbei verläuft, und 8 den Weg (unterbrochene Linie) zum Zurückziehen zur Bewegung weg von dem singulären Punkt verdeutlicht. Was die Robotervorrichtung 1 dieses Beispiels angeht, werden die Bearbeitungsschritte und die Programmerzeugungsverarbeitung umfassend durch die Steuereinrichtung 2 gesteuert, die über eine vorgegebene Schnittstelle angeschlossen ist.
-
Eine Entgratungsvorrichtung umfasst die Robotervorrichtung 1, die Steuereinrichtung 2 der Robotervorrichtung 1, das Roboterhandgelenk (den Endeffektor) 3, den Kraftsensor 4, das Entgratungswerkzeug 5, das Werkstück 7 und den visuellen Sensor 8. Was die Werkstücke 7 angeht, so gibt es Positionierungsfehler und auch Schwankungen bei deren Formen und Größen. Man beachte, dass ein Entgratungsteil 6 einem Teil (einer Gratlinie) entspricht, die durch das Entgratungswerkzeug 5 unter Verwendung des Werkstücks 7 bearbeitet wird.
-
Die Robotervorrichtung 1 ist mit einem mit Gelenken versehenen Roboter ausgebildet, der eine Mehrzahl von Armen umfasst. Der Kraftsensor 4 ist an dem Roboterhandgelenk 3 vorgesehen, das sich an der Spitze des Arms der Robotervorrichtung 1 befindet, und das Entgratungswerkzeug 5 ist an dem Kraftsensor 4 befestigt. Die Robotervorrichtung 1 kann verschiedene Positionen und Haltungen einnehmen, indem sie Elektromotoren (Servomotoren), die an jedem der Gelenke vorgesehen sind, gemäß Steuersignalen dreht, die von der Steuereinrichtung 2 ausgegeben werden. Die Robotervorrichtung 1 ist nicht auf die beschränkt, die in den Zeichnungen dargestellt werden, sondern es können jedwede Roboter angewendet werden, die vorbekannte Formen aufweisen.
-
Das Entgratungswerkzeug 5 ist ein Werkzeug, das allgemein zum Entfernen von Graten des Werkstücks W verwendet wird, und ist nicht auf irgendeine spezifische Form beschränkt. Beispiele für das Werkzeug umfassen eine Schneidevorrichtung, eine Schleifvorrichtung und dergleichen. Das Entgratungswerkzeug 5 ist an dem Roboterhandgelenk 3 der Robotervorrichtung 1 fixiert und bewegt sich zusammen mit dem Roboterhandgelenk 3 gemäß der Bewegung der Robotervorrichtung 1.
-
Man beachte, dass die Steuereinrichtung 2 die Eingabeeinheit 11 und die Anzeigeeinheit 12 über eine nicht gezeigte Schnittstelle umfasst. Die Robotervorrichtung 1 umfasst die Antriebseinheit 1A, und wenn eine Bearbeitungsstartanweisung von der Eingabeeinheit 11 empfangen wird, wird die Bearbeitungsverarbeitung des Entgratungswerkzeugs 5 gemäß einer Anweisung von der Kraftsteuereinheit 21 ausgeführt.
-
Die Speichereinheit 22 speichert in einer aktualisierbaren Weise ein Routenprogramm zum Entgraten und ein Routenprogramm zum Polieren, die durch die Programmerzeugungseinheit 25 erstellt wurden, wie auch Parameter (Form, Größe, Material) jedes Werkstücks, die für jedes solcher Bearbeitungsprogramme benötigt werden.
-
Man beachte, dass die Programmerzeugungseinheit 25 die Entgratungsgratliniendaten (Routendaten) analysiert, die durch den visuellen Sensor 8 aufgenommen und detektiert werden, und automatisch ein Routenprogramm erstellt, mit dem das Roboterhandgelenk (der Endeffektor) 3 den Gratliniendaten folgt. Zu diesem Zeitpunkt erstellt die Programmerzeugungseinheit 25 das Routenprogramm, das den Koordinatenwert davon als den Endpunkt übernimmt, wenn sich der Endeffektor 3 dem singulären Punkt, dem Grenzwert jeder Achse oder einer anderen festgelegten Verbotszone annähert, und danach den Endeffektor 3 über eine designierte Route zurückzieht.
-
Das heißt, die Programmerzeugungsvorrichtung 25 erzeugt das Routenprogramm, das den Koordinatenwert als Endpunkt übernimmt, wenn die Route, die durch Kompensieren der Route, der der Endeffektor folgt, mit dem berechneten Fehlausrichtungsbetrag erhalten wird, sich dem singulären Punkt der Robotervorrichtung 1, dem Grenzwert jeder Antriebsachse oder der festgelegten Verbotszone nähert, und den Endeffektor 3 von dem Endpunkt über die designierte Route zurückzieht.
-
In ähnlicher Weise erstellt die Programmerzeugungseinheit 25 ein Routenprogramm, mit dem der Endeffektor 3 dem Weg zum einmaligen Zurückziehen vom Werkstück W folgt und erneut zu dem Weg zurückkehrt, der durch den visuellen Sensor 8 detektiert wurde, nachdem es sich von dem singulären Punkt, dem Grenzwert jeder Achse oder der anderen festgelegten Verbotszone um einen vorgegebenen Abstand wegbewegt hat.
-
Ferner wird während des Entgratens eine Anpresskraft durch die Robotervorrichtung 1 erzeugt, so dass der Arm der Robotervorrichtung 1 ausgelenkt wird. Somit ist es in der vorliegenden Ausführungsform wünschenswert, den singulären Punkt und die Grenze an der Position zu bestimmen, an der der Auslenkungsbetrag kompensiert wird.
-
9 ist ein Ablaufdiagramm zum Beschreiben einer Steuerprozedur der Programmerzeugungsvorrichtung, das die vorliegende Ausführungsform verdeutlicht. Man beachte, dass ST11 bis ST15 jeweils Schritte bezeichnen, und jeder der Schritte umgesetzt wird, wenn eine nicht dargestellte CPU ein Steuerprogramm, das in einem ROM oder dergleichen gespeichert ist, in ein RAM lädt und ausführt. Dieses Beispiel entspricht einer Programmerzeugungsverarbeitung beim Entgraten.
-
Zunächst nimmt der visuelle Sensor 8 ein Bild auf dem Werkstück W auf, um eine Route abzutasten, die der Gratlinie des Werkstücks W folgt, und gibt sie an die Programmerzeugungseinheit 25 aus. Die Programmerzeugungseinheit 25 analysiert die Routendaten des Werkstücks W, die von dem visuellen Sensor 8 ausgegeben werden, um das Routenprogramm zu erstellen, und hält es zeitweise in der Speichereinheit 22 (ST11).
-
Dann greift die Berechnungseinheit 23 zurück auf eine Federkonstantentabelle für das Entgratungswerkzeug 5, die in der Speichereinheit 22 gespeichert ist, basierend auf der Identifikationsinformation der Robotervorrichtung 1 und der Größe, dem Material und dergleichen des Werkstücks W, und berechnet den Auslenkungsbetrag, der verursacht wird, wenn das Entgratungswerkzeug 5 gegen das Werkstück W gepresst wird, durch eine Berechnungsverarbeitung, wobei sie die ausgelesene Federkonstante k, die dem Entgratungswerkzeug 5 entspricht, und die Anpresskraft des Entgratungswerkzeugs 5 verwendet, die durch den Kraftsensor 4 detektiert wurde (ST12).
-
Basierend auf dem berechneten Auslenkungsbetrag erstellt die Programmerzeugungseinheit 25 ein neues Entgratungsroutenprogramm, das erhalten wird, indem sie die Routendaten des Routenprogramms für das Entgratungswerkzeug, das im Voraus in der Speichereinheit 22 gespeichert wurde, kompensiert (ST13).
-
Dann analysiert die Programmerzeugungseinheit 25 das neu erstellte Entgratungsroutenprogramm, um zu bestimmen, ob es irgendeinen Abschnitt gibt, der sich dem singulären Punkt der Robotervorrichtung 1, dem Grenzwert jeder Antriebsachse oder einer weiteren Verbotszone nähert (ST14).
-
Wenn die Programmerzeugungseinheit 25 hierbei bestimmt, dass es einen Abschnitt gibt, der sich dem singulären Punkt der Robotervorrichtung 1, dem Grenzwert jeder Antriebsachse oder einer weiteren Verbotszone nähert, wird die Verarbeitung zu ST15 vorgerückt. Dann erstellt die Programmerzeugungseinheit 25 ein Routenprogramm, das den in ST14 angegebenen Ort als den Endpunkt übernimmt und sich davon über eine designierte Route zurückzieht (ST15), und beendet die Verarbeitung. Man beachte, dass das erstellte endgültige Routenprogramm in der Speichereinheit 22 gespeichert wird.
-
Wenn indes die Programmerzeugungseinheit 25 in Schritt ST14 bestimmt, dass es keinen Abschnitt gibt, der sich dem singulären Punkt der Robotervorrichtung 1, dem Grenzwert jeder Antriebsachse oder einer weiteren Verbotszone nähert, wird die Verarbeitung beendet.
-
10 ist eine schematische Ansicht zum Beschreiben des Entgratungsschritts, der durch die Robotervorrichtung 1 durchgeführt wird, die die vorliegende Ausführungsform verdeutlicht. Dieses Beispiel verdeutlicht den Entgratungsschritt, der an dem umfänglichen Teil des Werkstücks W gemäß dem kreisförmigen Weg in einem Zustand durchgeführt wird, in dem an der Robotervorrichtung 1 das Entgratungswerkzeug 5 befestigt ist. Ein virtueller Weg 10 ist ein Weg an der inneren Seite des Werkstücks W, der ein virtuell dargestellter Weg der Auslenkung ist, die durch die Anpresskraft verursacht wird. Die Programmerzeugungseinheit 25 erzeugt das Routenprogramm so, dass es eine Entgratungsroute ist, bei der die Auslenkung, die durch den virtuellen Weg 10 (dargestellt durch eine unterbrochene Linie) angezeigt wird, kompensiert wird.
-
Wirkung der zweiten Ausführungsform
-
Nach der vorliegenden Ausführungsform ist es mit dem Entgratungsroutenprogramm möglich, das Entgraten mit hoher Genauigkeit basierend auf der Gratlinienroute durchzuführen, die den Auslenkungsbetrag des Arms der Robotervorrichtung 1 berücksichtigt.
-
Dritte Ausführungsform
-
Während die obige Ausführungsform mit Bezug auf die Programmerzeugungsverarbeitung beschrieben wird, die auf der Kompensation der Auslenkung beim Entgratungsschritt basiert, tritt ein ähnliches Auslenkungsphänomen auch in einem Fall auf, in dem die Robotervorrichtung 1 einen Polierschritt durchführt, wenn das Werkzeug der Robotervorrichtung 1 gegen das Werkstück W anliegt. Es wird ein Fall einer geraden Route beschrieben, entlang derer sich das Polierwerkzeug auf einer Geraden auf der Oberfläche des Werkstücks W im Polierschritt bewegt.
-
Anstatt des Entgratens nach der zweiten Ausführungsform kann somit der Anpressbetrag der Robotervorrichtung 1 in einer spezifischen Position/Haltung im Polierschritt gemessen werden, um ein Routenprogramm für den Polierschritt zu erzeugen, das mit dem Auslenkungsbetrag kompensiert wird.
-
Wenn sie in der vorliegenden Ausführungsform ein Routenprogramm zum Polieren automatisch erzeugt, indem sie die Form und die Oberfläche des Werkstücks als Ziel des Polierens durch das Polierwerkzeug detektiert, das durch den visuellen Sensor 8 aufgenommen und detektiert wird, erstellt die Programmerzeugungseinheit 25 das Routenprogramm, das den Koordinatenwert als den Endpunkt übernimmt, wenn sich der Endeffektor 3 dem singulären Punkt, dem Grenzwert jeder Achse oder einer anderen festgelegte Verbotszone annähert, und danach den Endeffektor 3 über eine designierte Route zurückzieht. Das heißt, die Programmerzeugungsvorrichtung 25 erzeugt das Routenprogramm, das den Koordinatenwert als Endpunkt übernimmt, wenn die Route, die durch Kompensieren der Route, der der Endeffektor 3 folgt, mit dem berechneten Fehlausrichtungsbetrag erhalten wird, sich dem singulären Punkt, an dem der Endeffektor 3 der Robotervorrichtung 1 vorbeiläuft, dem Grenzwert jeder Antriebsachse oder einer weiteren festgelegten Verbotszone nähert, und das Polierwerkzeug von dem Endpunkt über die designierte Route zurückzieht.
-
In ähnlicher Weise erstellt die Programmerzeugungseinheit 25 ein Routenprogramm, mit dem der Endeffektor 3 dem Weg zum einmaligen Zurückziehen vom Werkstück W folgt und erneut zu dem Weg zurückkehrt, der durch den visuellen Sensor 8 abgetastet wurde, nachdem sich der Endeffektor 3 von dem singulären Punkt, dem Grenzwert jeder Achse oder einer anderen festgelegten Verbotszone um einen vorgegebenen Abstand wegbewegt.
-
Während des Polierens wird eine Anpresskraft durch die Robotervorrichtung 1 erzeugt, so dass der Arm der Robotervorrichtung 1 ausgelenkt wird. Somit ist es in der vorliegenden Ausführungsform wünschenswert, den singulären Punkt und die Grenze an der Position zu bestimmen, an der der Auslenkungsbetrag kompensiert wird.
-
Routenprogrammerzeugungsverarbeitung für den Polierschritt als Beispiel
-
11 ist ein Ablaufdiagramm zum Beschreiben einer Steuerprozedur der Programmerzeugungsvorrichtung, das die vorliegende Ausführungsform verdeutlicht. Man beachte, dass ST21 bis ST25 jeweils Schritte bezeichnen, und jeder der Schritte umgesetzt wird, wenn eine nicht dargestellte CPU ein Steuerprogramm, das in einem ROM oder dergleichen gespeichert ist, in ein RAM lädt und ausführt. Dieses Beispiel entspricht einer Programmerzeugungsverarbeitung beim Polieren.
-
Zunächst nimmt der visuelle Sensor 8 ein Bild auf dem Werkstück W auf, und gibt Routendaten, die einem geraden Weg entlang der Form und der Oberfläche des Werkstücks Wfolgen, an die Programmerzeugungseinheit 25 aus. Die Programmerzeugungseinheit 25 analysiert die detektierten Routendaten, die von dem visuellen Sensor 8 ausgegeben werden, um das Routenprogramm zu erstellen, und hält es zeitweise in der Speichereinheit 22 (ST21).
-
Dann greift die Berechnungseinheit 23 zurück auf eine Federkonstantentabelle für das Polierwerkzeug, die in der Speichereinheit 22 gespeichert ist, basierend auf der Identifikationsinformation der Robotervorrichtung 1 und der Größe, dem Material und dergleichen des Werkstücks W, und berechnet den Auslenkungsbetrag, der verursacht wird, wenn das Polierwerkzeug gegen das Werkstück W gepresst wird, durch eine Berechnungsverarbeitung, wobei sie die ausgelesene Federkonstante k, die dem Polierwerkzeug entspricht, und die Anpresskraft des Polierwerkzeugs verwendet, die durch den Kraftsensor 4 detektiert wurde (ST22).
-
Basierend auf dem berechneten Auslenkungsbetrag erstellt die Programmerzeugungseinheit 25 ein neues Polierroutenprogramm, das erhalten wird, indem sie die Routendaten des Polierroutenprogramms, das im Voraus in der Speichereinheit 22 gespeichert wurde, kompensiert (ST23).
-
Dann analysiert die Programmerzeugungseinheit 25 das neu erstellte Polierroutenprogramm, um zu bestimmen, ob es irgendeinen Abschnitt gibt, der sich dem singulären Punkt der Robotervorrichtung 1, dem Grenzwert jeder Antriebsachse oder einer weiteren Verbotszone nähert (ST24).
-
Wenn die Programmerzeugungseinheit 25 hierbei bestimmt, dass es einen Abschnitt gibt, der sich dem singulären Punkt der Robotervorrichtung 1, dem Grenzwert jeder Antriebsachse oder einer weiteren Verbotszone nähert, wird die Verarbeitung zu ST25 vorgerückt. Dann erstellt die Programmerzeugungseinheit 25 ein Routenprogramm, das den in ST24 angegebenen Ort als einen Endpunkt übernimmt und sich davon über eine designierte Route zurückzieht (ST25), und beendet die Verarbeitung. Man beachte, dass das erstellte endgültige Routenprogramm in der Speichereinheit 22 gespeichert wird.
-
Wenn indes die Programmerzeugungseinheit 25 in Schritt ST24 bestimmt, dass es keinen Abschnitt gibt, der sich dem singulären Punkt der Robotervorrichtung 1, dem Grenzwert jeder Antriebsachse oder einer weiteren Verbotszone nähert, wird die Verarbeitung beendet.
-
12 ist eine schematische Ansicht zum Beschreiben des Polierschritts, der durch die Robotervorrichtung 1 durchgeführt wird, die die vorliegende Ausführungsform verdeutlicht. Dieses Beispiel verdeutlicht einen Schritt, bei dem die Robotervorrichtung 1 mit dem daran befestigten Polierwerkzeug kontinuierlich die obere Oberfläche des Werkstücks W gemäß einer Polierroute 11A poliert, indem sie die Bewegung in der Richtung nach links und rechts auf einer geraden Route und die Bewegung in der Richtung nach oben und nach unten auf einer geraden Route kombiniert. Eine virtueller Route 12A ist ein Weg an der inneren Seite des Werkstücks W, der eine virtuelle dargestellte Route der Auslenkung ist, die durch die Anpresskraft verursacht wird. Die Programmerzeugungseinheit 25 erzeugt das Routenprogramm so, dass es die Polierroute 11A ist, bei der die Auslenkung, die durch die virtuelle Route 12A angezeigt wird, kompensiert wird.
-
Wirkung der dritten Ausführungsform
-
Nach der vorliegenden Ausführungsform ist es mit dem Polierroutenprogramm möglich, das Polieren mit hoher Genauigkeit basierend auf dem Bearbeitungsweg durchzuführen, der den Auslenkungsbetrag des Arms der Robotervorrichtung 1 berücksichtigt. Während der Fall der Erzeugung des Routenprogramms durch die Steuereinrichtung 2 in jeder der obigen Ausführungsformen beschrieben wird, kann sie auch durch ein Programm umgesetzt werden, das durch ein Betriebssystem verwaltet wird, das in einer Datenverarbeitungsvorrichtung installiert ist, wie etwa dem sogenannten Personal Computer, der mit der Steuereinrichtung 2 über eine vorgegebene Schnittstelle verbunden ist.
-
Während des Weiteren die obigen Ausführungsformen durch Bezugnahme auf die Fälle, in denen die Routenprogramme für den Entgratungsschritt oder den Polierschritt erzeugt werden, als Beispiele beschrieben werden, können die Ausführungsformen auch auf andere Schritte angewendet werden, solange es sich um einen Schritt handelt, bei dem irgendeine Art Werkzeug gegen ein Werkstück gepresst wird.
-
Während der Fall in den obigen Ausführungsformen beschrieben wird, in dem der Auslenkungsbetrag durch eine Berechnungsformel berechnet wird, nachdem der Anpressbetrag tatsächlich gemessen wird, ist es ferner auch möglich, das Routenprogramm auf einem Simulator (PC) zu erstellen und zu validieren, der die Routendaten, den Auslenkungsbetrag und dergleichen, die in den Ausführungsformen angezeigt werden, speichert und den Auslenkungszustand simuliert. Ferner ist die vorliegende Offenbarung nicht durch die obigen Ausführungsformen beschränkt, und Veränderungen (Programm, Speichermedium) und Abwandlungen innerhalb des Umfangs, die in der Lage sind, die Aufgabe der vorliegenden Offenbarung zu lösen, sind davon umfasst.
-
Bezugszeichenliste
-
- 1
- Roboter
- 2
- Steuereinrichtung (Steuereinheit)
- 3
- Roboterhandgelenk (Endeffektor)
- 4
- Kraftsensor (Detektionseinheit)
- 5
- Entgratungswerkzeug
- 7
- Werkstück (Ziel)
- 8
- Visueller Sensor (Abtasteinheit)
- 21
- Kraftsteuereinheit
- 22
- Speichereinheit
- 23
- Berechnungseinheit
- 24
- Kommunikationseinheit (Erfassungseinheit)
- 25
- Programmerzeugungseinheit (Erzeugungseinheit)
Übersetzung der ursprünglich eingereichten PCT-Ansprüche