-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung betrifft eine Roboterprogrammiervorrichtung und ein Roboterprogrammierverfahren.
-
STAND DER TECHNIK
-
Zu bekannten Verfahren zum Einlernen verschiedener Roboter, darunter Industrieroboter, gehört eine sogenannte Offline-Programmierung, bei der ein Einlernen erfolgt, während ein Simulationsbetrieb von 3D-Modellen eines Roboters, eines Arbeitsstücks und dergleichen auf einem Computer ausgeführt wird (z. B. Patentschrift 1 und Patentschrift 2).
-
[Zitatliste]
-
[PATENTLITERATUR]
-
- Patentschrift 1: JP 2009-166172 A
- Patentschrift 2: JP 05-289730 A
-
KURZFASSUNG DER ERFINDUNG
-
[TECHNISCHES PROBLEM]
-
Falls das Einlernen durch Offline-Programmierung erfolgt, wird im Allgemeinen nicht eine Position jeder Achse verifiziert. Wenn ein Roboter tatsächlich gemäß einem durch die Offline-Programmierung erhaltenen Betriebsprogramm betrieben wird, kann somit unnatürliche Bewegung oder plötzliche Beschleunigung des Roboters verursacht werden. Es ist wünschenswert, das Auftreten einer solchen Situation beim Einlernen durch Offline-Programmierung zu verhindern.
-
[PROBLEMLÖSUNG]
-
Ein Aspekt der vorliegenden Offenbarung ist eine Roboter-Programmiervorrichtung, ausgelegt zum Einlernen eines Roboterprogramms, indem in einem virtuellen Raum, der einen Arbeitsraum dreidimensional repräsentiert, ein mit einem Werkzeugmodell bestücktes Robotermodell, ein Arbeitsstückmodell und ein Peripherievorrichtungsmodell angeordnet und auf einem Anzeigeschirm angezeigt werden. Die Roboterprogrammiervorrichtung umfasst einen Robotermodell-Bewegungsteil, ausgelegt zum Bewegen eines vorbestimmten beweglichen Teils eines Robotermodells von einer ersten Position zu einer zweiten Position gemäß einem Lerninhalt; einen Armumkehrungs-Detektionsteil, ausgelegt zum Detektieren, ob eine in dem Robotermodell enthaltene Achse sich in einem vorbestimmten Zustand befindet, in dem die Achse um 180° ± einem ersten vorbestimmten Wert von einem Referenzdrehwinkel gedreht ist, wenn der vorbestimmte bewegliche Teil des Robotermodells zu der zweiten Position bewegt wird; und einen Armumkehrungs-Korrekturteil, ausgelegt zum Korrigieren einer Orientierung des Robotermodells, wobei der vorbestimmte bewegliche Teil des Robotermodells sich an der zweiten Position befindet, so dass die Achse sich nicht mehr in dem vorbestimmten Zustand befindet, wenn detektiert wird, dass eine in dem Robotermodell enthaltene Achse sich in dem vorbestimmten Zustand befindet.
-
Ein anderer Aspekt der vorliegenden Offenbarung ist ein Roboter-Programmierverfahren, zum Einlernen eines Roboterprogramms, indem in einem virtuellen Raum, der einen Arbeitsraum dreidimensional repräsentiert, ein mit einem Werkzeugmodell bestücktes Robotermodell, ein Arbeitsstückmodell und ein Peripherievorrichtungsmodell angeordnet und auf einem Anzeigeschirm angezeigt werden. Das Roboter-Programmierverfahren umfasst Bewegen eines vorbestimmten beweglichen Teils eines Robotermodells von einer ersten Position zu einer zweiten Position gemäß einem Lerninhalt; Detektieren, ob eine in dem Robotermodell enthaltene Achse sich in einem vorbestimmten Zustand befindet, in dem die Achse um 180° ± einem ersten vorbestimmten Wert von einem Referenzdrehwinkel gedreht ist, wenn der vorbestimmte bewegliche Teil des Robotermodells zu der zweiten Position bewegt wird; und Korrigieren einer Orientierung des Robotermodells, wobei der vorbestimmte bewegliche Teil des Robotermodells sich an der zweiten Position befindet, so dass die Achse sich nicht mehr in dem vorbestimmten Zustand befindet, wenn detektiert wird, dass eine in dem Robotermodell enthaltene Achse sich in dem vorbestimmten Zustand befindet.
-
Ein noch weiterer Aspekt der vorliegenden Offenbarung ist ein Roboter-Programmierverfahren, zum Einlernen eines Roboterprogramms, indem in einem virtuellen Raum, der einen Arbeitsraum dreidimensional repräsentiert, ein mit einem Werkzeugmodell bestücktes Robotermodell, ein Arbeitsstückmodell und ein Peripherievorrichtungsmodell angeordnet und auf einem Anzeigeschirm angezeigt werden. Das Roboter-Programmierverfahren umfasst Ausführen einer Simulationsoperation des Robotermodells gemäß einem Betriebsprogramm; Anzeigen einer ersten Warnnachricht, wenn detektiert wird, dass eine in dem Robotermodell enthaltene Achse sich in einem vorbestimmten Zustand befindet, in dem die Achse um 180° ± einem ersten vorbestimmten Wert von einem Referenzdrehungswinkel während der Simulationsoperation gedreht ist; Anzeigen einer zweiten Warnnachricht, wenn während der Simulationsoperation detektiert wird, dass ein Drehungswinkel einer in dem Robotermodell enthaltenen Achse innerhalb eines zweiten vorbestimmten Werts von einer Obergrenze oder einer Untergrenze eines vorbestimmten Betriebsbereichs der Achse liegt; Anzeigen einer dritten Warnnachricht, wenn während der Simulationsoperation detektiert wird, dass ein Drehungsbetrag einer in dem Robotermodell enthaltenen Achse mit Bezug auf eine Drehungsposition des Robotermodells in einer Orientierung vor der Bewegung einen festgesetzten Drehungswinkel überschritten hat, der für die Achse vordefiniert ist; und Anzeigen einer vierten Warnnachricht, wenn während der Simulationsoperation eine Störung zwischen dem mit dem Werkzeugmodell bestückten Robotermodell, dem Arbeitsstückmodell und dem Peripherievorrichtungsmodell detektiert wird.
-
[EFFEKTE DER ERFINDUNG]
-
Gemäß der oben beschriebenen Ausgestaltung ist es möglich, das Auftreten von Situationen wie unnatürliche Bewegung eines Roboters, plötzliche Beschleunigung des Roboters, Einfluss auf eine Zykluszeit und Zunahme einer Last an einem an dem Roboter angebrachten Kabel zu verhindern.
-
Diese Aufgaben, Merkmale und Vorteile und andere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden in der ausführlichen Beschreibung typischer Ausführungsformen der vorliegenden Erfindung, die in den beigefügten Zeichnungen gezeigt sind, weiter erläutert.
-
Figurenliste
-
- 1 ist eine Funktionsblockdarstellung einer Roboter-Programmiervorrichtung gemäß einer Ausführungsform;
- 2 ist ein Flussdiagramm eines Offline-Einlernprozesses.
- 3 ist eine Darstellung eines Zustands, in dem ein Robotermodell, ein Arbeitsstückmodell und ein Peripherievorrichtungsmodell in einem virtuellen Raum (einem Anzeigeschirm) angeordnet und angezeigt sind.
- 4A ist eine Darstellung der Festlegung eines Bewegungsziels eines Roboters durch Ziehen mit einer Maus.
- 4B ist eine Darstellung der Festlegung eines Bewegungsziels eines Roboters durch Ziehen mit einer Maus.
- 5A ist eine Darstellung der Festlegung eines Bewegungsziels eines Roboters durch Klicken mit einer Maus.
- 5B ist eine Darstellung der Festlegung eines Bewegungsziels eines Roboters durch Klicken mit einer Maus.
- 6A ist eine Darstellung der Festlegung eines Bewegungsziels eines Roboters durch Klicken mit einer Maus (Festlegung einer Arbeitsstückposition).
- 6B ist eine Darstellung der Festlegung eines Bewegungsziels eines Roboters durch Klicken mit einer Maus (Festlegung einer Arbeitsstückposition).
- 6C ist eine Darstellung der Festlegung eines Bewegungsziels eines Roboters durch Klicken mit einer Maus (Festlegung einer Lagerregalposition).
- 7A ist eine Darstellung zur Erläuterung der Detektion und Korrektur eines Umkehrungszustands einer Achse.
- 7B ist eine Darstellung zur Erläuterung der Detektion und Korrektur eines Umkehrungszustands einer Achse.
- 8A ist eine Darstellung zur Erläuterung der Detektion und Korrektur eines Zustands, in dem eine Achse sich in der Umgebung einer Grenze eines Betriebsbereichs befindet.
- 8B ist eine Darstellung zur Erläuterung der Detektion und Korrektur eines Zustands, in dem eine Achse sich in der Umgebung einer Grenze eines Betriebsbereichs befindet.
- 9A ist eine Darstellung zur Erläuterung der Detektion und Korrektur eines Überdrehungszustands einer Achse.
- 9B ist eine Darstellung zur Erläuterung der Detektion und Korrektur eines Überdrehungszustands einer Achse.
- 10A ist eine Darstellung zur Erläuterung der Detektion und Korrektur eines Störungszustands.
- 10B ist eine Darstellung zur Erläuterung der Detektion und Korrektur eines Störungszustands.
- 11 ist ein Flussdiagramm einer Simulationsoperation durch einen Simulationsausführungsteil.
-
BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
-
Als Nächstes wird eine Ausführungsform der vorliegenden Offenbarung unter Bezugnahme auf die Zeichnungen beschrieben. In den Zeichnungen, auf die Bezug genommen wird, werden ähnliche Komponenten oder Funktionsteile mit denselben Bezugszahlen bezeichnet. Die Zeichnungen sind zum leichteren Verständnis geeignet skaliert. Eine in den Zeichnungen dargestellte Form ist ein Beispiel für das Ausführen der vorliegenden Erfindung, und die vorliegende Erfindung ist nicht auf die dargestellte Form beschränkt.
-
1 ist eine Funktionsblockdarstellung einer Roboter-Programmiervorrichtung 10 gemäß einer Ausführungsform. Die Roboter-Programmiervorrichtung 10 ist eine Programmiervorrichtung, die das Einlernen eines Roboters (eines Roboterprogramms) auf eine Offline-Weise durchführt, während simulativ 3D-Modelle eines Roboters, eines Arbeitsstücks und dergleichen betrieben werden. Wie in 1 dargestellt, umfasst die Roboter-Programmiervorrichtung 10 einen Virtueller-Raum-Erzeugungsteil 11, einen Modellanordnungsteil 12, einen Bewegungspositions-Festlegungsteil 13, einen Robotermodell-Bewegungsteil 14, einen Armumkehrungs-Detektionsteil 21, einen Armumkehrungs-Warnteil 22, einen Armumkehrungs-Korrekturteil 23, einen Betriebsbereichsgrenzen-Detektionsteil 31, einen Betriebsbereichsgrenzen-Warnteil 32, einen Betriebsbereichsgrenzen-Korrekturteil 33, einen Überdrehungs-Detektionsteil 41, einen Überdrehungs-Warnteil 42, einen Überdrehungs-Korrekturteil 43, einen Störungsdetektionsteil 51, einen Störungswarnteil 52, einen Störungsvermeidungsteil 53, einen Simulationsausführungsteil 54 und eine Anzeigevorrichtung 60. Die Roboter-Programmiervorrichtung 10 kann eine Ausgestaltung als allgemeiner Computer aufweisen, umfassend eine CPU, einen ROM, einen RAM, eine Speicherungsvorrichtung, einen Bedienungsteil (Tastatur, Maus), einen Anzeigeteil, eine Eingabe-/Ausgabeschnittstelle, eine Netzwerkschnittstelle und dergleichen. Die in 1 dargestellte Funktionsblockkonfiguration kann durch eine CPU der Roboter-Programmiervorrichtung 10 implementiert werden, die verschiedene Arten von in der Speicherungsvorrichtung gespeicherter Software ausführt, oder kann in einer Konfiguration implementiert werden, die hauptsächlich Hardware umfasst, wie etwa ein ASIC (anwendungsspezifisches integriertes IC).
-
Der Virtueller-Raum-Erzeugungsteil 11 erzeugt einen virtuellen Raum, der einen Arbeitsraum dreidimensional repräsentiert. Der Modellanordnungsteil 12 ordnet ein mit einem Werkzeugmodell 102 bestücktes Robotermodell 101, ein Arbeitsstückmodell W und Peripherievorrichtungsmodelle (103 und 104) im virtuellen Raum an und zeigt sie gleichzeitig auf einem Anzeigeschirm 61 der Anzeigevorrichtung 60 an. 3 zeigt einen Zustand, in dem das Robotermodell 101, woran das Werkzeugmodell 102 virtuell angebracht ist, das Arbeitsstückmodell W, ein Bewegliche-Plattform-Modell 103, woran ein Lagerrahmen für ein Arbeitsstück W angebracht ist, und ein Maschinenmodell 104, das durch den Modellanordnungsteil 12 in dem durch den Virtueller-Raum-Erzeugungsteil 11 erzeugten virtuellen Raum (dem Anzeigeschirm) angeordnet werden.
-
Das Robotermodell 101 ist bei der vorliegenden Ausführungsform ein Modell eines sechsachsigen Vertikal-Knickarmroboters, es können aber auch andere Arten von Robotermodellen verwendet werden. Die Ausgestaltung des Robotermodells 101 wird mit Bezug auf 4A beschrieben. Wie in 4A dargestellt, umfasst das Robotermodell 101 sechs Achsen, d.h. eine J1-Achse, eine J2-Achse, eine J3-Achse, eine J4-Achse, eine J5-Achse und eine J6-Achse in dieser Reihenfolge von der Basisseite aus. Die J1-Achse dreht eine erste Verbindung 121 um eine zu einer Installationsoberfläche senkrechte Achse. Die J2-Achse dreht eine zweite Verbindung 122. Die J3-Achse dreht eine dritte Verbindung 123. Die J4-Achse dreht eine vierte Verbindung 124. Die J5-Achse dreht eine fünfte Verbindung 125. Die J6-Achse dreht eine Spitze eines Handgelenks. Das Werkzeugmodell 102 ist an der Spitze des Handgelenks des Robotermodells 101 angebracht. Das Werkzeugmodell 102 ist bei der vorliegenden Ausführungsform eine Handvorrichtung mit zwei Einspannvorrichtungen, es können aber andere Arten von Werkzeugmodellen verwendet werden. Wie in 4A dargestellt, können Koordinatenachsen eines Werkzeug-Koordinatensystems 211 an einer Werkzeugspitzenposition P0 angezeigt werden.
-
Der Bewegungspositions-Festlegungsteil 13 empfängt Festlegung eines Bewegungsziels eines vorbestimmten beweglichen Teils (bei der vorliegenden Ausführungsform die Werkzeugspitzenposition) des Robotermodells 101 im virtuellen Raum. Der Robotermodell-Bewegungsteil 14 bewegt einen Werkzeugspitzenteil des Robotermodells 101 von einer Position vor Bewegung (einer ersten Position) zu einer Bewegungszielposition (einer zweiten Position) gemäß Lerninhalt. Der Lerninhalt umfasst hier ein im Voraus erstelltes Betriebsprogramm sowie eine Einlernposition, die durch einen Bediener über den Bewegungspositions-Festlegungsteil 13 festgelegt wird. Das heißt, der Robotermodell-Bewegungsteil 14 hat eine Funktion des Bewegens des Robotermodells 101 und dergleichen zu einer Einlernposition, die durch einen Bediener über den Bewegungspositions-Festlegungsteil 13 festgelegt wird, und eine Funktion des simulativen Betreibens des Robotermodells 101 und dergleichen gemäß einem im Voraus erstellten und in der Roboter-Programmiervorrichtung 10 gespeicherten Betriebsprogramm.
-
Der Armumkehrungs-Detektionsteil 21 detektiert, ob sich eine der in dem Robotermodell 101 enthaltenen Achsen in einem vorbestimmten Zustand befindet, in dem die Achse um 180° ± einem ersten vorbestimmten Wert von einem Referenzdrehungswinkel gedreht ist (im Folgenden als „umgekehrter Zustand“ bezeichnet), wenn der Werkzeugspitzenteil des Robotermodells 101 zu der Bewegungszielposition bewegt wird. Hier wird angenommen, dass der erste vorbestimmte Wert 10°, 20°, 30° oder dergleichen ist. Der erste vorbestimmte Wert kann jedoch im Voraus in der Roboter-Programmiervorrichtung 10 gesetzt werden oder die Roboter-Programmiervorrichtung 10 (der Armumkehrungs-Detektionsteil 21) kann so ausgelegt sein, dass ein Bediener den ersten vorbestimmten Wert eingeben und setzen kann. Der Armumkehrungs-Warnteil 22 zeigt eine Warnnachricht auf dem Anzeigeschirm 61 an, wenn eine der in dem Robotermodell 101 enthaltenen Achsen durch den Armumkehrungs-Detektionsteil 21 als sich in dem umgekehrten Zustand befindend detektiert wird. Wenn eine der in dem Robotermodell 101 enthaltenen Achsen als sich in dem umgekehrten Zustand befindend detektiert wird, korrigiert der Armumkehrungs-Korrekturteil 23 die Orientierung des Robotermodells 101 mit dem an der Bewegungszielposition befindlichen Werkzeugspitzenteil, so dass die Achse sich nicht mehr im umgekehrten Zustand befindet.
-
Wenn bewirkt wird, dass das Robotermodell 101 eine Orientierung an der Bewegungszielposition annimmt, detektiert der Betriebsbereichsgrenzen-Detektionsteil 31, ob ein Drehungswinkel irgendwelcher der in dem Robotermodell 101 enthaltenen Achsen innerhalb eines zweiten vorbestimmten Werts von einer Obergrenze oder einer Untergrenze eines vorbestimmten Betriebsbereichs der Achsen liegt. Der zweite vorbestimmte Wert ist hier ein Schwellenwert zum Bestimmen, dass man sich der Obergrenze oder der Untergrenze des Betriebsbereichs nähert, und es wird angenommen, dass er zum Beispiel 5°, 10° oder 15° ist. Der zweite vorbestimmte Wert kann jedoch im Voraus in der Roboter-Programmiervorrichtung 10 gesetzt werden, oder die Roboter-Programmiervorrichtung 10 (der Bewegungsbereichsgrenzen-Detektionsteil 31), kann so ausgelegt sein, dass ein Bediener den zweiten vorbestimmten Wert eingeben und setzen kann.
-
Wenn detektiert wird, dass ein Drehungswinkel irgendwelcher der in dem Robotermodell 101 enthaltenen Achsen innerhalb des zweiten vorbestimmten Werts von der Obergrenze oder der Untergrenze des vorbestimmten Betriebsbereichs der Achse liegt, zeigt der Bewegungsbereichsgrenzen-Warnteil 32 eine Warnnachricht auf dem Anzeigeschirm 61 an. Wenn detektiert wird, dass ein Drehungswinkel irgendwelcher der in dem Robotermodell 101 enthaltenen Achsen innerhalb des zweiten vorbestimmten Werts von der Obergrenze oder der Untergrenze des vorbestimmten Betriebsbereichs der Achse liegt, korrigiert der Bewegungsbereichsgrenzen-Korrekturteil 33 die Orientierung des Robotermodells 101 so, dass der Drehungswinkel der Achse nicht mehr innerhalb des zweiten vorbestimmten Werts von der Obergrenze oder der Untergrenze des vorbestimmten Betriebsbereichs liegt.
-
Wenn bewirkt wird, dass das Robotermodell 101 eine Orientierung an der Bewegungszielposition annimmt, detektiert der Überdrehungs-Detektionsteil 41, ob ein Drehungsbetrag irgendwelcher der in dem Robotermodell 101 enthaltenen Achsen mit Bezug auf eine Drehungsposition des Robotermodells 101 in einer Orientierung vor Bewegung einen für die Achse vordefinierten festgesetzten Drehungswinkel überschreitet. Der festgesetzte Drehungswinkel für jede Achse kann durch einen Bediener in die Roboter-Programmiervorrichtung 10 eingegeben und gesetzt werden. Falls zum Beispiel ein Bediener wünscht, dass sich der Roboter nicht so sehr bewegt, kann der festgesetzte Drehungswinkel auf einen relativ kleinen Wert gesetzt werden.
-
Wenn detektiert wird, dass ein Drehungsbetrag irgendwelcher der in dem Robotermodell 101 enthaltenen Achsen mit Bezug auf eine Drehungsposition des Robotermodells 101 in einer Orientierung vor der Bewegung einen für die Achse vordefinierten festgesetzten Drehungswinkel überschritten hat, zeigt der Überdrehungs-Warnteil 42 eine Warnnachricht auf dem Anzeigeschirm 61 an. Wenn detektiert wird, dass ein Drehungsbetrag irgendwelcher der in dem Robotermodell 101 enthaltenen Achsen mit Bezug auf eine Drehungsposition des Robotermodells 101 in einer Orientierung vor der Bewegung einen für die Achse vordefinierten festgesetzten Drehungswinkel überschritten hat, korrigiert der Überdrehungs-Korrekturteil 43 die Orientierung des Robotermodells 101 so, dass der Drehungswinkel der Achse den festgesetzten Drehungswinkel nicht mehr überschreitet.
-
Wenn bewirkt wird, dass das Robotermodell 101 eine Orientierung an der Bewegungszielposition annimmt, detektiert der Störungsdetektionsteil 51, ob zwischen dem mit dem Werkzeugmodell 102 bestückten Robotermodell 101, dem Arbeitsstückmodell W und den Peripherievorrichtungsmodellen (103 und 104) eine Störung auftritt. Wenn die Störung detektiert wird, zeigt der Störungswarnteil 52 eine Warnnachricht auf dem Anzeigeschirm 61 an. Wenn die Störung detektiert wird, korrigiert der Störungsvermeidungsteil 53 die Orientierung des Robotermodells 101 so, dass die Störung nicht mehr auftritt.
-
2 ist ein Flussdiagramm eines Offline-Einlernprozesses (Roboter-Programmierungsverfahrens), der unter der Kontrolle einer CPU der Roboter-Programmiervorrichtung 10 ausgeführt wird. Der Einlernprozess wird nachfolgend mit Bezug auf das Flussdiagramm von 2 und in 3 und nachfolgenden Figuren gezeigte Simulationsschirmbeispiele beschrieben. Beim Start des Einlernprozesses erzeugt zuerst der Virtueller-Raum-Erzeugungsteil 11 einen virtuellen Raum, der einen Arbeitsraum dreidimensional repräsentiert (Schritt S1). Als Nächstes ordnet der Modellanordnungsteil 12 das mit dem Werkzeugmodell 102 bestückte Robotermodell 101, das Arbeitsstückmodell W und die Peripherievorrichtungsmodelle im virtuellen Raum an (Schritt S2). Hier werden, wie in 3 dargestellt, das mit dem Werkzeugmodell 102 bestückte Robotermodell 101, das Arbeitsstückmodell W, das Bewegliche-Plattform-Modell 103 und das Maschinenmodell 104 gleichzeitig im virtuellen Raum angezeigt.
-
Als Nächstes wird die Operation des Festlegens einer Bewegungszielposition eines Werkzeugspitzenteils des Robotermodells 101 über den Bewegungspositions-Festlegungsteil 13 empfangen (Schritt S3). Es werden Beispiele für das Empfangen der Operation des Festlegens des Bewegungsziels des Werkzeugspitzenteils des Robotermodells 101 beschrieben. Das erste Beispiel für die Operation des Festlegens des Bewegungsziels des Robotermodells 101 ist eine Mausziehoperation. In diesem Fall bewegt ein Bediener einen Mauscursor 201 zu der Werkzeugspitzenposition des Robotermodells 101 und betätigt dann eine Taste der Maus, wie in 4A dargestellt. Dann bewegt der Benutzer den Mauscursor 201 zu einer gewünschten Bewegungszielposition, während die Maus gezogen wird, wie in 4B dargestellt. In dem Beispiel von 4B bewegt der Bediener den Werkzeugspitzenteil des Robotermodells 101 in die Umgebung des Lagerrahmens für das Arbeitsstück. Während die Maus gezogen wird, führt der Robotermodell-Bewegungsteil 14 auf der Basis einer Werkzeugspitzenposition eine Invers-Kinematikberechnung aus, um das Robotermodell 101 zu bewegen, um so der Bewegung des Mauscursors 201 zu folgen (Schritt S4).
-
Das zweite Beispiel für die Operation des Festlegens des Bewegungsziels des Robotermodells 101 ist ein Beispiel, in dem das Bewegungsziel des Werkzeugspitzenteils durch eine Mausklickoperation festgelegt wird. Wie zum Beispiel in 5A dargestellt, bewegt der Bediener den Mauscursor 201 zu einer gewünschten Position, zu der der Werkzeugspitzenteil bewegt werden soll, und klickt dann die Maus. In diesem Fall führt der Robotermodell-Bewegungsteil 14 auf der Basis der durch Klicken der Maus festgelegten Bewegungszielposition eine Invers-Kinematikberechnung aus, um den Werkzeugspitzenteil des Robotermodells 101 zu der Bewegungszielposition zu bewegen, wie in 5B dargestellt (Schritt S5).
-
Als Nächstes werden mit Bezug auf 6A bis 6C Beispiele für die Operation des Bewegens des Robotermodells 101 durch Festlegen eines zu haltenden Arbeitsstücks beschrieben. Wie in 6A dargestellt, legt ein Bediener zum Beispiel durch eine Mausklickoperation eine Position P1 des Arbeitsstückmodells W in dem Maschinenmodell 104 angeordnet fest. Als Reaktion auf die obige Operation bewegt der Robotermodell-Bewegungsteil 14 den Werkzeugspitzenteil des Robotermodells 101 zu der festgelegten Position P1 (6B). Als Alternative bewegt, falls ein Bediener eine Position des Lagerrahmens 103A für das Arbeitsstück W als das Bewegungsziel für den Werkzeugspitzenteil des Robotermodells 101 festlegt, der Robotermodell-Bewegungsteil 14 den Werkzeugspitzenteil des Robotermodells 101 zu der festgelegten Position (6C).
-
Als Nächstes detektiert, wenn das Robotermodell 101 zu der über den Bewegungspositions-Festlegungsteil 13 festgelegten Bewegungszielposition bewegt wird, der Armumkehrungs-Detektionsteil 21, ob irgendwelche der in dem Robotermodell 101 enthaltenen Achsen sich mit Bezug auf einen Referenzarm-Drehungswinkel in dem umgekehrten Zustand befindet (Schritt S5). Der Referenzdrehungswinkel kann hier zum Beispiel 0° oder eine Position vor der Bewegung sein, oder ein durch einen Bediener definierter festgesetzter Winkel.
-
7A zeigt einen Zustand, in dem der Werkzeugspitzenteil des Robotermodells 101 zu einer festgelegten Position bewegt und dadurch die J4-Achse (die vierte Verbindung 124) mit Bezug auf eine Orientierung in einem Referenzdrehungswinkel von 0° umgekehrt (um 180° gedreht) ist. In diesem Fall (S5: JA) zeigt der Armumkehrungs-Warnteil 22 auf dem Anzeigeschirm 61 eine Warnnachricht 301 an, die angibt, dass die J4-Achse umgekehrt ist (Schritt S6), wie in 7A dargestellt. Der Armumkehrungs-Warnteil 22 kann ferner eine die umgekehrte Achse (Verbindung) umgebende Markierung A anzeigen, so dass der Bediener schnell die Achse (Verbindung) wahrnehmen kann, die sich im umgekehrten Zustand befindet. Wenn kein umgekehrter Zustand detektiert wird (S5: NEIN) schreitet der Prozess zu Schritt S8.
-
Wenn eine solche Umkehrung detektiert wird, korrigiert der Armumkehrungs-Korrekturteil 23 die Orientierung des Robotermodells 101 an der Bewegungszielposition des Armspitzenteils, so dass die als umgekehrt detektierte J4-Achse nicht mehr umgekehrt ist, wie in 7B dargestellt (Schritt S7). Beim Korrigieren der Orientierung des Robotermodells 101 wird die Korrektur so durchgeführt, dass sich die Werkzeugspitzenposition soweit wie möglich nicht ändert. Die Korrektur der Orientierung des Robotermodells 101 an der Bewegungszielposition kann gemäß den folgenden Regeln durchgeführt werden:
- (a1) die Werkzeugspitzenposition soll so weit wie möglich nicht bewegt werden;
- (a2) im Prinzip soll nur ein Achsenwinkel korrigiert werden;
- (a3) wenn das oben beschriebene (a1) und (a2) nicht erfüllt werden kann, soll die Werkzeugspitze durch Parallelverschiebung oder dergleichen bewegt werden, um die Orientierung zu korrigieren.
-
Die Berechnung gemäß diesen Regeln kann durch geeignetes Anwenden einer Kinematikberechnung oder einer Invers-Kinematikberechnung durchgeführt werden.
-
In dem Beispiel von 7B wird, da das Robotermodell 101 dieselbe Orientierung behalten kann, selbst wenn die J4-Achse um 180° gedreht wird, der Drehungswinkel der J4-Achse auf 0° korrigiert, während die Position des Werkzeugspitzenteils aufrechterhalten wird. Der Armumkehrungs-Korrekturteil 23 kann dafür ausgelegt sein, Korrektur gemäß einer vorbestimmten Korrekturbedingung durchzuführen, so dass sich die Orientierung des Robotermodells 101 vor und nach der Korrektur nicht wesentlich ändert. Zum Beispiel können Korrekturwinkelbereiche von -30° bis +30° für die J4-Achse, -30° bis +30° für die J5-Achse und -360° bis +360° für die J6-Achse gesetzt werden. Diese Korrekturbedingungen können durch einen Bediener eingegeben und für die Roboter-Programmiervorrichtung 10 (den Armumkehrungs-Korrekturteil 23) festgesetzt werden.
-
Durch Sicherstellen, dass die Umkehrung der Achsen (d.h. jeweiliger in dem Arm enthaltener Verbindungen) nicht auftritt, wie oben beschrieben, ist es möglich, das Auftreten von Situationen wie unnatürliche Bewegung eines Roboters, plötzliche Beschleunigung des Roboters, Einfluss auf eine Zykluszeit und Zunahme einer Last an einem an dem Roboter angebrachten Kabel zu verhindern.
-
Als Nächstes detektiert, wenn das Robotermodell 101 zu der über den Bewegungspositions-Festlegungsteil 13 festgelegten Bewegungszielposition bewegt wird, der Betriebsbereichsgrenzen-Detektionsteil 31, ob sich eine der in dem Robotermodell 101 enthaltenen Achsen in der Umgebung einer Grenze eines vorbestimmten Betriebsbereichs befindet (Schritt S8). Hier detektiert der Betriebsbereichsgrenzen-Detektionsteil 31, ob sich die Achse in der Umgebung des vorbestimmten Betriebsbereichs befindet oder nicht, durch Detektieren, ob der Winkel der Achse innerhalb eines zweiten vorbestimmten Werts von einer Obergrenze oder einer Untergrenze des vorbestimmten Betriebsbereichs liegt oder nicht.
-
Zum Beispiel wird angenommen, dass der Betriebsbereich der J6-Achse von -360° bis +360° reicht und der zweite vorbestimmte Wert 10° ist. 8A zeigt die Orientierung des Robotermodells 101 am Bewegungsziel, und eine Angabebox 402, die die Orientierung (Winkel der j eweiligen Achsen) des Robotermodells 101 an der Bewegungszielposition angibt, wird auf dem Bildschirm angezeigt, wie in 8A gezeigt. Da der Drehungswinkel der J6 in dieser Orientierung 355° ist, bestimmt der Betriebsbereichsgrenzen-Detektionsteil 31, dass sich die J6-Achse in der Umgebung der Grenze des Betriebsbereichs befindet (S8: JA) und zeigt eine Warnnachricht 302 auf dem Anzeigeschirm an, die den Umstand angibt (Schritt S9).
-
Als Nächstes korrigiert der Bewegungsbereichsgrenzen-Korrekturteil 33 die Orientierung des Robotermodells 101 so, dass sich der Winkel der Achse, der als in der Umgebung der Grenze des Betriebsbereichs detektiert wurde, nicht mehr in der Umgebung der Grenze des Betriebsbereichs befindet (Schritt S10). Die Korrektur kann in diesem Fall auch gemäß den obigen Regeln (a1) bis (a3) durchgeführt werden. In 8B wird der Drehungswinkel der J6 von der Orientierung aus, in der die J6 ungefähr eine Umdrehung durchgeführt hat, wie in 8A dargestellt, auf 0° korrigiert, so dass die Position und die Orientierung des Robotermodells 101 sich vor und nach der Korrektur nicht ändern (siehe eine Anzeigebox 403). Als Korrekturbedingung kann für jede der Achsen ein Korrekturbereich durch den Betriebsbereichsgrenzen-Korrekturteil 33 gesetzt werden, so dass die Orientierung des Robotermodells 101 sich vor und nach der Korrektur nicht signifikant ändert. Zum Beispiel können Korrekturwinkelbereiche von -30° bis +30° für die J4-Achse, -30° bis +30° für die J5-Achse und -360° bis +360° für die J6-Achse gesetzt werden. Da sich die Position und die Orientierung des Robotermodells 101 nicht ändern können, selbst wenn die J6-Achse eine Umdrehung durchführt, ist der Korrekturbereich von ±360° erlaubt. Diese Korrekturbedingungen können durch einen Bediener eingegeben und für die Roboter-Programmiervorrichtung 10 (den Bewegungsbereichsgrenzen-Korrekturteil 33) gesetzt werden. Wenn keiner der Drehungswinkel der Achsen, die in dem Robotermodell 101 enthalten sind, in Schritt S8 als in der Umgebung der Grenze des vorbestimmten Betriebsbereichs detektiert werden (S8: NEIN), schreitet der Prozess zu Schritt S11.
-
Durch Sicherstellen, dass sich die Achsen nicht in der Umgebung der Grenze des Betriebsbereichs befinden, wie oben beschrieben, ist es möglich, eine unnatürliche Bewegung des Roboters, eine plötzliche Beschleunigung des Roboters und dergleichen zu verhindern.
-
Als Nächstes detektiert, wenn das Robotermodell 101 zu der über den Bewegungspositions-Festlegungsteil 13 festgelegten Bewegungszielposition bewegt wird, der Überdrehungs-Detektionsteil 41, ob ein Drehungsbetrag irgendwelcher der in dem Robotermodell 101 enthaltenen Achsen mit Bezug auf eine Drehungsposition des Robotermodells 101 in einer Orientierung vor der Bewegung einen für die Achse definierten festgesetzten Drehungswinkel überschritten hat (Schritt S11). Das heißt, es wird detektiert, ob sich irgendwelche der Achsen zu sehr gedreht haben oder nicht. 9A zeigt die Orientierung des Robotermodells 101, das sich zu dem Bewegungsziel bewegt hat, und oben rechts im Anzeigeschirm eine Angabebox 404, die einen relativen Änderungsbetrag der Position jeder der Achsen von der Orientierung vor der Bewegung zu der aktuellen Orientierung des Robotermodells 101 angibt.
-
Hier wird zum Beispiel angenommen, dass die gesetzten Drehungswinkel für die J4-Achse -30° bis +30°, für die J5-Achse -30° bis +30° und für die J6-Achse -90° bis +90° sind. In diesem Fall detektiert, da der relative Drehungswinkel der J6-Achse (95,786°) den festgesetzten Drehungswinkel überschreitet, der Überdrehungs-Detektionsteil 41, dass sich die J6-Achse zu sehr gedreht hat (S11: JA). Dann zeigt der Überdrehungs-Warnteil 42 eine Warnnachricht 303 auf dem Anzeigeschirm 61 an, die angibt, dass sich die J6-Achse zu sehr gedreht hat (Schritt S12). Als Nächstes korrigiert der Überdrehungs-Korrekturteil 43 die Orientierung des Robotermodells 101 so, dass die Achse, deren relativer Drehungswinkel den festgesetzten Drehungswinkel überschritten hat, den festgesetzten Drehungswinkel nicht mehr überschreitet (Schritt S13).
-
Ein Korrekturbereich für jede der Achsen kann durch den Überdrehungs-Korrekturteil 43 so gesetzt werden, dass die Orientierung des Robotermodells 101 vor und nach der Korrektur sich nicht signifikant ändert. Zum Beispiel können Korrekturwinkelbereiche von -30° bis +30° für die J4-Achse, -30° bis +30° für die J5-Achse und -90° bis +90° für die J6-Achse gesetzt werden. Die Korrektur kann in diesem Fall auch gemäß den obigen Regeln (a1) bis (a3) durchgeführt werden. Diese Korrekturbedingungen können durch einen Bediener eingegeben und für die Roboter-Programmiervorrichtung 10 (den Überdrehungs-Korrekturteil 43) gesetzt werden. Wie in einer Angabebox 405 in 9B angegeben, wird der Winkel der J6-Achse um - 90° korrigiert, um so den Drehungswinkel der J6 auf 5,786° zu korrigieren, was in den festgesetzten Drehungswinkel fällt. Wenn in Schritt S11 keine der Drehungsbeträge der Achsen, die in dem Robotermodell 101 enthalten sind, mit Bezug auf eine Drehungsposition des Robotermodells 101 in einer Orientierung vor der Bewegung als die für die Achsen vordefinierten festgesetzten Drehungswinkel überschreitend detektiert werden (S11: NEIN), schreitet der Prozess zu Schritt S14.
-
Durch Vermeidung von übermäßiger Drehung der Achsen von den vorherigen Orientierungen wie oben beschrieben, ist es möglich, das Auftreten von Situationen wie unnatürliche Bewegung eines Roboters, plötzliche Beschleunigung des Roboters, Einfluss auf eine Zykluszeit und Zunahme einer Last an einem an dem Roboter angebrachten Kabel zu verhindern.
-
Als Nächstes detektiert, wenn das Robotermodell 101 zu der über den Bewegungspositions-Festlegungsteil 13 festgelegten Bewegungszielposition bewegt wird, der Störungsdetektionsteil 51, ob zwischen dem mit dem Werkzeugmodell 102 bestückten Robotermodell 101, dem Arbeitsstückmodell W und den Peripherievorrichtungsmodellen (103 und 14) eine Störung auftritt oder nicht (Schritt S14). 10A zeigt die Orientierung des Robotermodells 101, das sich zum Bewegungsziel bewegt hat. Hier wird an der durch einen Kreis B angegebenen Position eine Störung zwischen dem Werkzeugmodell 102 dem Maschinenmodell 104 detektiert. Wenn wie oben beschrieben die Störung detektiert wird (S14: JA), zeigt der Störungswarnteil 52 eine Warnnachricht 304 an, die angibt, dass die Störung aufgetreten ist (Schritt S15). Der Störungswarnteil 52 kann ferner eine Markierung B an der Position anzeigen, an der die Störung aufgetreten ist, so dass ein Bediener schnell die Position wahrnehmen kann, an der die Störung aufgetreten ist.
-
Wenn wie oben beschrieben die Störung detektiert wird, korrigiert der Störungsvermeidungsteil 53 die Position des Robotermodells 101, um so die Störung zu vermeiden (Schritt S 16). 10B zeigt ein Betriebsbeispiel, in dem die Position des Robotermodells 101 korrigiert wird, ohne die Werkzeugspitzenposition zu ändern, indem das Werkzeugmodell 102 um eine X-Achse eines an einer Werkzeugspitze festgesetzten Werkzeugkoordinatensystems von dem in 10A dargestellten Zustand aus gedreht wird, und dadurch wird die Störung vermieden. Wenn in Schritt S14 keine Störung detektiert wird (S 14: NEIN), wird der Einlernprozess beendet.
-
Auf diese Weise kann das Auftreten von Störung zwischen dem mit dem Werkzeugmodell 102 bestückten Robotermodell 101, dem Arbeitsstückmodell W und den Peripherievorrichtungsmodellen (103 und 104) vermieden werden. Wie in dem Flussdiagramm von 2 dargestellt, kann die Detektion und Korrektur von Störungen (S14 bis S16) in einem Zustand durchgeführt werden, in dem die Detektion und Korrektur einer umgekehrten Achse (S5 bis S7), die Detektion und Korrektur einer Achse, die sich in der Nähe einer Betriebsgrenze befindet (S8 bis S10) und die Detektion und Korrektur einer zu sehr gedrehten Achse (S11 bis S13) durchgeführt wurden.
-
Als Nächstes werden Operationen beschrieben, die durch den Simulationsausführungsteil 54 ausgeführt werden. Der Simulationsausführungsteil 54 führt eine Simulation aus, in der 3D-Modelle eines Roboters, eines Arbeitsstücks und dergleichen simulativ gemäß einem im Voraus erstellten Betriebsprogramm betrieben werden, während auf einen umgekehrten Zustand, eine Grenze eines Betriebsbereichs, Drehung über einen festgesetzten Winkel oder Störungen wie jeweils oben beschrieben geprüft und eine Warnnachricht angezeigt wird, wenn einer dieser Zustände auftritt. Der Simulationsausführungsteil 54 führt diese Simulationsoperationen in Kooperation mit den Virtueller-Raum-Erzeugungsteil 11, dem Modellanordnungsteil 12, dem Armumkehrungs-Detektionsteil, dem Armumkehrungs-Warnteil 22, dem Betriebsbereichsgrenzen-Detektionsteil 31, dem Betriebsbereichsgrenzen-Warnteil 32, dem Überdrehungs-Detektionsteil 41, dem Überdrehungs-Warnteil 42, dem Störungsdetektionsteil 51 und dem Störungswarnteil 52 aus. 11 ist ein Flussdiagramm einer durch den Simulationsausführungsteil 54 ausgeführten Simulationsoperation (eines Roboterprogrammierungsverfahrens).
-
As Erstes wird in Schritt 101 das Robotermodell 101 simulativ gemäß einem Betriebsprogramm betrieben. Als Nächstes wird in Schritt S102, wenn während der Simulationsoperation eine der in dem Robotermodell 101 enthaltenen Achsen als sich in dem umgekehrten Zustand befindend detektiert wird, in dem die Achse um 180° ± dem ersten vorbestimmten Wert von einem Referenzdrehungswinkel gedreht ist, eine Warnnachricht (erste Warnnachricht) auf dem Anzeigeschirm 61 angezeigt, die diesen Umstand angibt. Das heißt, es wird detektiert, ob während Bewegung von einem Einlernpunkt zu einem nächsten Einlernpunkt, der im Betriebsprogramm festgelegt ist, der umgekehrte Zustand auftritt oder nicht.
-
Als Nächstes wird in Schritt S103, wenn während der Simulationsoperation ein Drehwinkel einer der in dem Robotermodell 101 enthaltenen Achsen als sich innerhalb des zweiten vorbestimmten Werts von der Obergrenze oder der Untergrenze des vorbestimmten Betriebsbereichs der Achse befindend detektiert wird, eine Warnnachricht (zweite Warnnachricht) auf dem Anzeigeschirm 61 angezeigt, die diesen Umstand angibt. Das heißt, es wird detektiert, ob während Bewegung von einem Einlernpunkt zu einem nächsten Einlernpunkt, der in dem Betriebsprogramm festgelegt wird, jede der Achsen in die Umgebung des Betriebsbereichs kommt oder nicht. Als Nächstes wird in Schritt S104, wenn während der Simulationsoperation detektiert wird, dass ein Drehungsbetrag einer der in dem Robotermodell 101 enthaltenen Achsen mit Bezug auf eine Drehungsposition des Robotermodells 101 in einer Orientierung vor der Bewegung einen für die Achse vordefinierten festgesetzten Drehungswinkel überschritten hat, eine Warnnachricht (dritte Warnnachricht) auf dem Anzeigeschirm 61 angezeigt, die diesen Umstand angibt. Das heißt, es wird detektiert, ob während Bewegung von einem Einlernpunkt zu einem nächsten Einlernpunkt, der in dem Betriebsprogramm festgelegt wird, der Drehungswinkel jeder der Achsen zu groß wird.
-
Als Nächstes wird in Schritt S104, wenn während der Simulationsoperation eine Störung zwischen dem mit dem Werkzeugmodell 102 bestückten Robotermodell 101, dem Arbeitsstückmodell W und den Peripherievorrichtungsmodellen (103 und 104) eine Störung detektiert wird, eine Warnnachricht (vierte Warnnachricht) auf dem Anzeigeschirm angezeigt, die diesen Umstand angibt.
-
Im Verlauf des Ausführens der in 11 dargestellten Simulationsoperation kann der Simulationsausführungsteil 54 einen Verlauf von Warnnachrichten (einen Verlauf, der angibt, welche Warnnachricht für welchen Einlernpunkt aufgetreten ist) aufzeichnen. Durch Ausführen der in 11 dargestellten Simulationsoperation kann ein Bediener bewirken, dass das Betriebsprogramm vollständig vom Anfang bis zum Ende ausgeführt wird, und das Auftreten des umgekehrten Zustands und dergleichen wahrnehmen. Auf der Basis des Simulationsergebnisses kann der Bediener Einlernpunkte korrigieren.
-
Obwohl die vorliegende Erfindung oben unter Verwendung typischer Ausführungsformen beschrieben wurde, versteht sich, dass Fachleute Änderungen, verschiedene andere Modifikationen, Auslassungen und Zusätze an jeder der obigen Ausführungsformen vornehmen können, ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen.
-
Es müssen nicht alle Funktionsblöcke der in 1 dargestellten Roboter-Programmiervorrichtung bereitgestellt werden. Zum Beispiel kann die Roboter-Programmiervorrichtung aus dem Virtueller-Raum-Erzeugungsteil 11, dem Modellanordnungsteil 12, dem Bewegungspositions-Festlegungsteil 13, dem Robotermodell-Bewegungsteil 14, dem Armumkehrungs-Detektionsteil 21 und dem Armumkehrungs-Korrekturteil 23 zusammengesetzt sein. In diesem Fall korrigiert, wenn eine Achse als sich in dem umgekehrten Zustand befindend detektiert wird, die Roboter-Programmiervorrichtung die Orientierung des Robotermodells so, dass die Achse sich nicht mehr im umgekehrten Zustand befindet.
-
Es müssen nicht alle in 2 dargestellten Prozessschritte in dem Einlernprozess enthalten sein. Zum Beispiel kann auch ein Einlernprozess implementiert werden, der die Schritte S1 bis S5 und S7 umfasst (ein Einlernprozess zum Detektieren eines umgekehrten Zustands).
-
Die Programme zum Ausführen verschiedener Arten von Verarbeitung, wie etwa des Einlernprozesses, der Simulationsoperation und dergleichen gemäß der oben beschriebenen Ausführungsform (2 und 11) können in verschiedenen Arten von computerlesbaren Aufzeichnungsmedien (z. B. Halbleiterspeichern wie einem ROM, einem EEPROM und einem Flash-Speicher, einem magnetischen Aufzeichnungsmedium, optischen Datenträgern wie einer CD-ROM und einer DVD-ROM oder dergleichen) aufgezeichnet werden.
-
Bezugszeichenliste
-
- 10
- Roboter-Programmiervorrichtung
- 11
- Virtueller-Raum-Erzeugungsteil
- 12
- Modellanordnungsteil
- 13
- Bewegungspositions-Festlegungsteil
- 14
- Robotermodell-Bewegungsteil
- 21
- Armumkehrungs-Detektionsteil
- 22
- Armumkehrungs-Warnteil
- 23
- Armumkehrungs-Korrekturteil
- 31
- Betriebsbereichsgrenzen-Detektionsteil
- 32
- Bewegungsbereichsgrenzen-Warnteil
- 33
- Bewegungsbereichsgrenzen-Korrekturteil
- 41
- Überdrehungs-Detektionsteil
- 42
- Überdrehungs-Warnteil
- 43
- Überdrehungs-Korrekturteil
- 51
- Störungsdetektionsteil
- 52
- Störungswarnteil
- 53
- Störungsvermeidungsteil
- 54
- Simulationsausführungsteil
- 60
- Anzeigevorrichtung
- 61
- Anzeigeschirm
- 101
- Robotermodell
- 102
- Werkzeugmodell
- 103
- Bewegliche-Plattform-Modell
- 104
- Maschinenmodell
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- JP 2009166172 A [0002]
- JP 05289730 A [0002]