-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung bezieht sich auf eine Optimierungsassistenzvorrichtung.
-
STAND DER TECHNIK
-
Bei der Erzeugung eines Roboterbewegungsprogramms werden orthogonale Koordinatenwerte oder Achsenwerte als Positionsdaten verwendet. Achsenwerte bezeichnen die Werte der einzelnen Achsen des Roboters. Orthogonale Koordinatenwerte hingegen bezeichnen die Koordinatenwerte (x, y, z) vom Ursprung der orthogonalen Koordinaten im Raum zum Ursprung des orthogonalen Koordinatensystems auf der Werkzeugseite und bezeichnen auch die Drehwinkel w, p, r des Werkzeugkoordinatensystems um die X-, Y- und Z-Achse des orthogonalen Koordinatensystems. Es gibt jedoch mehrere Formen (Haltungen des Roboterkörpers), die die Bedingungen der orthogonalen Koordinatenwerte (x, y, z, w, p, r) des Roboters erfüllen. Da die orthogonalen Koordinatenwerte (x, y, z, w, p, r) allein keine einzige Körperhaltung vorgeben können, ist es notwendig, die Achsenkonfiguration und die Rotationszahl jeder Achse zu bestimmen, um die Form zu ermitteln, was viel Aufwand bedeutet.
-
Einige Roboterbewegungsprogramme, die unter Verwendung des orthogonalen Koordinatensystems erzeugt wurden, können das Bewegungsprogramm ausführen und den Roboter an eine vorgegebene Position bewegen; da jedoch die Form nicht berücksichtigt wird, kann ein Bewegungsprogramm erstellt werden, das Raum für Verbesserungen lässt.
-
In dieser Hinsicht ist eine Technik bekannt gewesen, die eine Bewegungssimulation für alle Kombinationen einer Vielzahl von Kandidaten für die Endeffektor-Haltungen des Bedieners und des Roboters in allen Positionsdaten durchführt, in denen die Positionen und Haltungen des Bedieners und des Roboters festgelegt sind, die erforderliche Zeit für die Produktionsarbeit durch die Zusammenarbeit des Bedieners und des Roboters berechnet und die Kombination der Position des Bedieners und der Position des Roboters mit der kürzesten erforderlichen Zeit bestimmt, wodurch die Anlaufzeit des Produktionssystems durch die Zusammenarbeit des Bedieners und des Roboters verkürzt wird. Siehe zum Beispiel Patentdokument 1.
-
Zitateliste
-
Patentdokument
-
Patentdokument 1: Ungeprüfte japanische Patentanmeldung, Veröffentlichung Nr.
JP 2010-211726 A
-
OFFENBARUNG DER ERFINDUNG
-
Durch die Erfindung zu lösende Probleme
-
Das Patentdokument 1 führt eine Bewegungssimulation durch, um alle Kombinationen einer Vielzahl von Kandidaten für Endeffektorhaltungen in den einzelnen Positionsdaten abzudecken; die Kandidaten für Endeffektorhaltungen enthalten jedoch Endeffektorhaltungen, die vom Roboter nicht erreicht werden können. Daher enthält die Bewegungssimulation in Patentdokument 1 unbrauchbare Kandidaten für Endeffektorhaltungen, was ein Problem darstellt. Es wurde gewünscht, ein Bewegungsprogramm zu optimieren, indem geeignete Kandidaten für Endeffektorhaltungen ausgewählt und kombiniert werden, um eine Bewegungssimulation für ein Bewegungsprogramm durchzuführen, das bereits erstellt wurde und bis zum Ende ausgeführt werden kann, ohne die Anordnung oder die Positionskoordinaten des Roboters zu ändern.
-
Daher wurde bei der Ausführung der Bewegungssimulation der Wunsch geäußert, die Kandidaten für die Formen, die der Roboter für die jeweiligen Positionsdaten erreichen kann, einfach festzulegen, ohne die Anordnung oder die Positionskoordinaten des Roboters für ein bereits erstelltes und bis zum Ende ausführbares Bewegungsprogramm zu ändern, und das Bewegungsprogramm durch die Durchführung einer Bewegungssimulation zu optimieren.
-
Mittel zur Lösung der Probleme
-
Ein Aspekt der Optimierungsassistenzvorrichtung der vorliegenden Offenbarung ist eine Optimierungsassistenzvorrichtung, die ein Bewegungsprogramm eines Roboters unter Berücksichtigung einer Form des Roboters optimiert, wobei die Vorrichtung enthält: eine Positionsdatenerfassungseinheit, die so konfiguriert ist, dass sie eine Vielzahl von Positionsdaten von Koordinatenwerten in einem orthogonalen Koordinatensystem erfasst, das entlang eines Bewegungspfades des Roboters gelehrt wird, der in dem Bewegungsprogramm des Roboters verwendet wird; eine Haltungs-Versuchs-Bestimmungseinheit, die so konfiguriert ist, dass sie versuchsweise eine Vielzahl von Formen bestimmt, die von dem Roboter für jede der Vielzahl von Positionsdaten eingenommen werden können, und eine Form, die von dem Roboter nicht erreicht werden kann, aus der Vielzahl von versuchsweise bestimmten Formen ausschließt; eine Bewegungsprogramm-Erzeugungseinheit, die so konfiguriert ist, dass sie eine Vielzahl von Bewegungsprogrammen durch Kombinieren der verbleibenden Formen in jeder der Vielzahl von Positionsdaten erzeugt; und eine Bewegungsprogramm-Auswahleinheit, die so konfiguriert ist, dass sie jedes der Vielzahl von erzeugten Bewegungsprogrammen simuliert, Bewertungsindexwerte berechnet und ein Bewegungsprogramm mit dem kleinsten berechneten Bewertungsindexwert als ein optimales Bewegungsprogramm auswählt.
-
Wirkungen der Erfindung
-
Gemäß einer Ausführungsform ist es möglich, bei der Ausführung der Bewegungssimulation auf einfache Weise die Kandidaten für Formen festzulegen, die der Roboter für die jeweiligen Positionsdaten erzielen kann, ohne die Anordnung oder die Positionskoordinaten des Roboters für ein bereits erstelltes und bis zum Ende ausführbares Bewegungsprogramm zu ändern, und das Bewegungsprogramm durch die Durchführung einer Bewegungssimulation zu optimieren.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
- 1 ist ein funktionales Blockdiagramm, das ein Beispiel für die funktionale Konfiguration eines Robotersystems gemäß einer Ausführungsform illustriert;
- 2 ist ein Diagramm, das ein Beispiel für einen schematisierten Roboter illustriert;
- 3 ist ein funktionelles Blockdiagramm, das ein Beispiel für eine funktionelle Konfiguration einer Optimierungsassistenzvorrichtung illustriert;
- 4 ist ein Diagramm, das ein Beispiel für ein Bewegungsprogramm illustriert;
- 5 ist ein Diagramm, das ein Beispiel für Kandidaten für Positionsdaten mit verschiedenen Gelenkachsenkonfigurationen für eine Position illustriert;
- 6A ist ein Diagramm, das ein Beispiel für verschiedene Roboterformen mit denselben orthogonalen Koordinatenwerten illustriert;
- 6B ist ein Diagramm, das ein Beispiel für verschiedene Roboterformen mit denselben orthogonalen Koordinatenwerten illustriert;
- 7 ist ein Diagramm, das ein Beispiel für das Löschen von Positionsdaten illustriert;
- 8A ist ein Diagramm, das ein Beispiel für eine Singularität in Form eines Roboters illustriert;
- 8B ist ein Diagramm, das ein Beispiel für eine Singularität in der Roboterform illustriert;
- 9 ist ein Diagramm, das ein Beispiel für Kombinationen von Positionsdaten illustriert;
- 10 ist ein Diagramm, das ein Beispiel für ein Bewegungsprogramm vor und nach der Aktualisierung illustriert; und
- 11 ist ein Flussdiagramm zur Illustrierung der Optimierungsverarbeitung durch die Optimierungsassistenzvorrichtung.
-
BEVORZUGTE AUSFÜHRUNGSFORM DER ERFINDUNG
-
Nachfolgend wird eine Ausführungsform anhand von Zeichnungen beschrieben.
-
<Eine Ausführungsform>
-
1 ist ein funktionelles Blockdiagramm, das ein Beispiel für die funktionelle Konfiguration eines Robotersystems gemäß einer Ausführungsform illustriert.
-
Wie in 1 illustriert, umfasst ein Robotersystem 1 einen Roboter 10, eine Robotersteuerungsvorrichtung 20 und eine Optimierungsassistenzvorrichtung 30.
-
Der Roboter 10, die Robotersteuerungsvorrichtung 20 und die Optimierungsassistenzvorrichtung 30 können über eine Verbindungsschnittstelle (nicht dargestellt) direkt miteinander verbunden werden. Der Roboter 10, die Robotersteuerungsvorrichtung 20 und die Optimierungsassistenzvorrichtung 30 können über ein Netzwerk wie z.B. LAN (Local Area Network) miteinander verbunden sein. In diesem Fall können der Roboter 10, die Robotersteuerungsvorrichtung 20 und die Optimierungsassistenzvorrichtung 30 mit einer Kommunikationseinheit (nicht illustriert) ausgestattet sein, um über eine solche Verbindung miteinander zu kommunizieren.
-
Die Optimierungsassistenzvorrichtung 30 kann in der Robotersteuerungsvorrichtung 20 enthalten sein, wie später noch beschrieben wird.
-
<Robotersteuerungsvorrichtung 20>
-
Die Robotersteuerungsvorrichtung 20 ist eine Vorrichtung zur Steuerung einer Bewegung des Roboters 10 und ist dem Fachmann bekannt. Zum Beispiel gibt die Robotersteuerungsvorrichtung 20 ein Bewegungsprogramm, das auf der Grundlage jedes orthogonalen Koordinatenwertes (x, y, z, w, p, r) des Endpunktes des Roboters 10 im Weltkoordinatensystem (später beschrieben) erzeugt wird, das durch den Benutzer gelehrt wird, der ein in der Robotersteuerungsvorrichtung 20 enthaltenes Lehrbedienfeld (nicht illustriert) bedient, an die Optimierungsassistenzvorrichtung 30 (später beschrieben) aus. Dann erhält die Robotersteuerungsvorrichtung 20 ein optimiertes Bewegungsprogramm von der Optimierungsassistenzvorrichtung 30. Die Robotersteuerungsvorrichtung 20 erzeugt Steuersignale durch Ausführen des optimierten Bewegungsprogramms und gibt die erzeugten Steuersignale an den Roboter 10 aus, um den Roboter 10 zu betreiben.
-
<Roboter 10>
-
2 ist ein Diagramm, das ein Beispiel für einen schematisierten Roboter 10 illustriert.
-
Wie in 2 illustriert, ist der Roboter 10 beispielsweise ein sechsachsiger vertikaler Mehrgelenkroboter, der sechs Gelenke J1 bis J6 und eine Armeinheit 12 aufweist, die jedes der Gelenke J1 bis J6 verbindet. Der Roboter 10 treibt bewegliche Teile wie die Armeinheit 12 an, indem er Servomotoren (nicht illustriert) antreibt, die in jedem der Gelenke J1 bis J6 angeordnet sind, und zwar auf der Grundlage des Steuersignals von der Robotersteuerungsvorrichtung 20. Ein Endeffektor T, z.B. eine Greifhand, ist an der Spitze des beweglichen Elements des Roboters 10, z.B. an der Spitze des Gelenks J6, angebracht.
-
Wie in 2 illustriert, hat der Roboter 10 ein Weltkoordinatensystem Σw als dreidimensionales orthogonales Koordinatensystem, das im Raum fixiert ist, und ein Werkzeugkoordinatensystem Σt als dreidimensionale orthogonale Koordinaten, die am Flansch der Spitze des Gelenks J6 des Roboters 10 eingestellt sind. Die Robotersteuerungsvorrichtung 20 kann die Position der Spitze des Roboters 10, an der der Endeffektor T angebracht ist, unter Verwendung der im Weltkoordinatensystem Σw definierten Position (orthogonale Koordinatenwerte) steuern.
-
Obwohl der Roboter 10 als sechsachsiger vertikaler Mehrgelenkroboter beschrieben wird, kann der Roboter 10 ein vertikaler Mehrgelenkroboter mit einer anderen Anzahl von Achsen als sechs, ein horizontaler Mehrgelenkroboter, ein Parallelgelenkroboter oder Ähnliches sein.
-
<Optimierungsassistenzvorrichtung 30>
-
Die Optimierungsassistenzvorrichtung 30 ist eine dem Fachmann bekanntes Computervorrichtung.
-
3 ist ein funktionales Blockdiagramm, das ein Beispiel für eine funktionale Konfiguration der Optimierungsassistenzvorrichtung 30 illustriert.
-
Wie in 3 illustriert, umfasst die Optimierungsassistenzvorrichtung 30 eine Steuereinheit 31, eine Eingabeeinheit 32, eine Anzeigeeinheit 33 und eine Speichereinheit 34. Die Steuereinheit 31 umfasst eine Positionsdatenerfassungseinheit 310, eine Haltungs-Versuchs-Bestimmungseinheit 311, eine Einheit zur Erzeugung von Bewegungsprogrammen 312 und eine Bewegungsprogramm-Auswahleinheit 313.
-
<Eingabeeinheit 32>
-
Die Eingabeeinheit 32 ist z.B. eine Tastatur oder ein Touchpanel, das auf der später beschriebenen Anzeigeeinheit 33 angeordnet ist und vom Benutzer die Angabe von Bewertungskennwerten (wie z.B. Zykluszeit oder Stromverbrauch) erhält, die der Benutzer bei der Optimierung des Bewegungsprogramms des Roboters 10 optimieren möchte.
-
<Anzeigeeinheit 33>
-
Die Anzeigeeinheit 33 ist beispielsweise eine Flüssigkristallanzeige und zeigt ein Bewegungsprogramm und Positionsdaten, die von der Positionsdatenerfassungseinheit 310 (später beschrieben) erfasst wurden, eine Form (Haltung) des Roboters (nicht abgebildet), die von der Haltungs-Versuchs-Bestimmungseinheit 311 (später beschrieben) versuchsweise bestimmt wurde, und ein Bewegungsprogramm, das von der Bewegungsprogramm-Auswahleinheit 313 (später beschrieben) ausgewählt wurde, usw.
-
<Speichereinheit 34>
-
Die Speichereinheit 34 ist ein ROM (Read Only Memory) oder eine HDD (Hard Disk Drive) und kann Positionsdaten 341 zusammen mit verschiedenen Steuerprogrammen speichern.
-
Die Positionsdaten 341 speichern die orthogonalen Koordinatenwerte (x, y, z, w, p, r) der Position des Endpunkts des Roboters 10 im Weltkoordinatensystem Σw, die in dem von der Positionsdatenerfassungseinheit 310 (später beschrieben) erfassten Bewegungsprogramm festgelegt wurden, als Positionsdaten.
-
<Steuereinheit 31>
-
Die Steuereinheit 31 umfasst eine CPU (Zentraleinheit), ROM, RAM (Speicher mit wahlfreiem Zugriff), CMOS-Speicher (komplementärer Metall-Oxid-Halbleiter-Speicher) usw., die alle so konfiguriert sind, dass sie über einen Bus miteinander kommunizieren können, und die dem Fachmann bekannt sind.
-
Die CPU ist ein Prozessor, der die Optimierungsassistenzvorrichtung 30 vollständig steuert. Die CPU liest Systemprogramme und Anwendungsprogramme, die im ROM gespeichert sind, über den Bus und steuert die gesamte Optimierungsassistenzvorrichtung 30 in Übereinstimmung mit den Systemprogrammen und den Anwendungsprogrammen. Wie in 3 dargestellt, ist die Steuereinheit 31 so konfiguriert, dass sie die Funktionen der Positionsdatenerfassungseinheit 310, der Haltungs-Versuchs-Bestimmungseinheit 311, der Bewegungsprogramm-Erzeugungseinheit 312 und der Bewegungsprogramm-Auswahleinheit 313 ausführt. Verschiedene Daten wie temporäre Berechnungsdaten und Anzeigedaten werden im R_AM gespeichert. Der CMOS-Speicher wird durch eine Batterie (nicht abgebildet) gestützt und ist als nichtflüchtiger Speicher konfiguriert, der seinen Speicherzustand auch dann beibehält, wenn die Optimierungsassistenzvorrichtung 30 ausgeschaltet wird.
-
Positionsdatenerfassungseinheit 310
-
Die Positionsdatenerfassungseinheit 310 erfasst beispielsweise eine Vielzahl von Positionsdaten der im Bewegungsprogramm des Roboters 10 verwendeten Koordinatenwerte im orthogonalen Koordinatensystem (Weltkoordinatensystem Σw), die entlang der Bewegungsbahn des Roboters 10 eingelernt wurden.
-
Spezifisch erfasst die Positionsdatenerfassungseinheit 310 beispielsweise ein bereits erstelltes und bis zum Ende ausführbares Bewegungsprogramm von der Robotersteuerungsvorrichtung 20 und erfasst eine Vielzahl von Positionsdaten, die die im erfassten Bewegungsprogramm verwendeten Koordinatenwerte (x, y, z, w, p, r) im Weltkoordinatensystem Σw sind.
-
4 ist ein Diagramm, das ein Beispiel für ein Bewegungsprogramm illustriert.
-
Wie in 4 illustriert, enthält das Bewegungsprogramm Koordinatenwerte (x, y, z, w, p, r) im Weltkoordinatensystem Σw, die entlang der Bewegungsbahn des Roboters 10 eingelernt wurden, wie „Positionsdaten A“, „Positionsdaten B“, „Positionsdaten X“ usw. Die Positionsdatenerfassungseinheit 310 extrahiert und erfasst „Positionsdaten A“, „Positionsdaten B“, „Positionsdaten X“, usw. aus dem Bewegungsprogramm in 4. Die Positionsdatenerfassungseinheit 310 kann die Vielzahl der erfassten Positionsdaten in den Positionsdaten 341 speichern.
-
Die Positionsdatenerfassungseinheit 310 kann eine Vielzahl von Positionsdaten, d.h. die Koordinatenwerte (x, y, z, w, p, r) im Weltkoordinatensystem Σw, direkt von der Robotersteuerungsvorrichtung 20 erfassen.
-
< Haltungs-Versuchs-Bestimmungseinheit 311>
-
Die Haltungs-Versuchs-Bestimmungseinheit 311 bestimmt versuchsweise eine Vielzahl von Haltungen, die der Roboter 10 für jede der Vielzahl von Positionsdaten einnehmen kann, die von der Positionsdatenerfassungseinheit 310 erfasst wurden, und schließt Haltungen, die vom Roboter 10 nicht eingenommen werden können, aus der Vielzahl der versuchsweise bestimmten Haltungen aus.
-
Spezifisch berechnet die Haltungs-Versuchs-Bestimmungseinheit 311 die Formen (Haltungen) (Verschiebungen der Gelenke J1 bis J6) des Roboters 10, wenn der Endpunkt (Endeffektor T) des Roboters 10 zu den Koordinatenwerten (x, y, z, w, p, r) im Weltkoordinatensystem Σw der von der Positionsdatenerfassungseinheit 310 erfassten „Positionsdaten A“, „Positionsdaten B“, „Positionsdaten X“ usw. bewegt wird, aus bekannten Berechnungen der inversen Kinematik.
-
Es gibt jedoch unzählige Formen (Verschiebungen der Gelenke J1 bis J6) des Roboters 10, bei denen der Endpunkt (Endeffektor T) des Roboters 10 zu den Koordinatenwerten (x, y, z, w, p, r) wird, die durch die Berechnungen der inversen Kinematik erhalten werden. Es ist zum Beispiel bekannt, dass es acht Kombinationskandidaten von „Handgelenk nach oben und unten“, „Arm nach oben und unten“ und „Arm nach vorne und hinten“ für jede der „Positionsdaten A“, „Positionsdaten B“, „Positionsdaten X“ usw. gibt, nur mit den Achsenkonfigurationen der Gelenke J5, J3 und J1.
-
5 ist ein Diagramm, das ein Beispiel für Positionsdatenkandidaten A1 bis A8 mit unterschiedlichen Achsenkonfigurationen der Gelenke J5, J3, J1 für eine Position zeigt.
-
Die in 5 dargestellten Positionsdatenkandidaten A1 bis A8 sind beispielsweise Positionsdaten mit den Achsenkonfigurationen der Gelenke J5, J3, J1 (F, U, T), (F, U, B), (F, D, T), (F, D, B), (N, U, T), (N, U, B), (N, D, T), (N, D, B). „F“ bedeutet, dass das Handgelenk nach oben zeigt (Flip) und „N“, dass das Handgelenk nach unten zeigt (Noflip). „U“ bedeutet, dass der Arm nach oben gerichtet ist (Up), und „D“ bedeutet, dass der Arm nach unten gerichtet ist (Down). „T“ bedeutet, dass der Arm nach vorne zeigt (FronT), und „B“ bedeutet, dass der Arm nach hinten zeigt (Back).
-
Es ist zu beachten, dass die Achsenkonfiguration angibt, wo sich die Kontrollpunkte der Arme und Handgelenke des Roboters 10 in Bezug auf die Kontrollfläche jedes der Gelenke J1, J3, J5 befinden. In diesem Fall wird die Anzahl der Kandidaten für die Formen (oder Positionsdaten) beispielsweise mehr als acht, wenn man die Anzahl der Drehungen usw. der Gelenke J4, J5, J6 berücksichtigt.
-
6A und 6B sind Diagramme, die ein Beispiel für verschiedene Formen des Roboters 10 mit denselben orthogonalen Koordinatenwerten illustrieren. Es ist zu beachten, dass 6A die Form des Roboters 10 illustriert, wenn die Positionsdaten (N, U, T) sind, und 6B die Form des Roboters 10 illustriert, wenn die Positionsdaten (N, D, T) sind.
-
Als Nächstes bestimmt die Haltungs-Versuchs-Bestimmungseinheit 311 eine Vielzahl von (beispielsweise acht) Kandidaten für Formen (Körperhaltungen), die für jede der Vielzahl von Positionsdaten durch inverse kinematische Berechnung erhalten werden, vorläufig, und schließt ungültige Formen, die vom Roboter 10 nicht erreicht werden können, aus der Vielzahl der vorläufig bestimmten Kandidaten für Formen (Körperhaltungen) aus.
-
Spezifisch schließt die Haltungs-Versuchs-Bestimmungseinheit 311 Formen aus, die die Hubgrenze überschreiten, Formen, die mit Hindernissen kollidieren, Formen, die zu einer Singularität werden, usw. Zum Beispiel, wie in 7 dargestellt, schließt die Haltungs-Versuchs-Bestimmungseinheit 311 die Positionsdatenkandidaten A2, A4, A6 bis A8 aus den Positionsdatenkandidaten A1 bis A8 aus, die den in 5 dargestellten „Positionsdaten A“ entsprechen.
-
Es ist zu beachten, dass sich die Positionsdaten, die den Hubgrenzwert überschreiten, auf Positionsdaten beziehen, die den Hubgrenzwert überschreiten, und dass die Haltungs-Versuchs-Bestimmungseinheit 311 eine Beurteilung durch Vergleich mit dem für den Roboter 10 spezifischen Hubgrenzwert vornehmen kann.
-
Im Hinblick auf die Positionsdaten, die mit Hindernissen kollidieren, kann die Haltungs-Versuchs-Bestimmungseinheit 311 feststellen, ob die CAD des Roboters 10 mit anderen CAD-Daten von Peripherievorrichtungen und Werkstücken usw. kollidieren.
-
In Bezug auf die Positionsdaten, die zu einer Singularität werden, kann die Haltungs-Versuchs-Bestimmungseinheit 311 eine Beurteilung vornehmen, indem sie die vorläufig bestimmte Form mit der für den Roboter 10 spezifischen Singularität vergleicht.
-
8A und 8B sind Diagramme, die ein Beispiel für eine Singularität der Form des Roboters 10 illustrieren.
-
Die Form (Haltung) des Roboters 10 in 8A ist eine Singularität, wenn das Gelenk J1 und das Gelenk J6 in einer geraden Linie ausgerichtet sind. Andererseits ist die Form (Haltung) des Roboters 10 in 8B eine Singularität, wenn das Gelenk J4 und das Gelenk J6 in einer geraden Linie ausgerichtet sind.
-
<Bewegungsprogramm-Erzeugungseinheit 312>
-
Die Bewegungsprogramm-Erzeugungseinheit 312 erzeugt eine Vielzahl von Bewegungsprogrammen, indem sie Positionsdatenkandidaten für die Formen (Haltungen) kombiniert, die für jede der Vielzahl von Positionsdaten nicht ausgeschlossen werden.
-
Wie in 9 dargestellt, erzeugt die Bewegungsprogramm-Erzeugungseinheit 312 eine Vielzahl von Bewegungsprogrammen, indem sie die verbleibenden Kandidaten für Positionsdaten (Formen) in jedem der „Positionsdaten A“, „Positionsdaten B“, „Positionsdaten X“ usw. kombiniert, die nicht durch die Haltungs-Versuchs-Bestimmungseinheit 311 ausgeschlossen wurden.
-
<Bewegungsprogramm-Auswahleinheit 313>
-
Die Bewegungsprogramm-Auswahleinheit 313 simuliert jedes der erzeugten Bewegungsprogramme, berechnet den Bewertungsindexwert und wählt das Bewegungsprogramm mit dem kleinsten Bewertungsindexwert als das optimale Bewegungsprogramm aus.
-
Spezifisch führt die Bewegungsprogramm-Auswahleinheit 313 Simulationen für jedes der erzeugten Bewegungsprogramme durch, wobei sie bei Bedarf interpoliert. Wenn die Ausführung des Bewegungsprogramms in der Simulation nicht abgeschlossen ist, würde das Bewegungsprogramm, dessen Ausführung nicht abgeschlossen ist, die orthogonalen Koordinatenwerte durchlaufen, die zu ungültigen Positionsdaten werden, die vom Roboter 10 nicht erreicht werden können, d.h. Hubgrenze, Singularität und Interferenz mit Hindernissen; daher schließt die Bewegungsprogramm-Auswahleinheit 313 das Bewegungsprogramm aus und löscht es.
-
Dann simuliert die Bewegungsprogramm-Auswahleinheit 313 jedes der verbleibenden Bewegungsprogramme, um die Zykluszeit des Roboters 10 als Bewertungsindexwert zu berechnen. Die Bewegungsprogramm-Auswahleinheit 313 wählt das Bewegungsprogramm mit der kleinsten Zykluszeit als das optimale Bewegungsprogramm aus.
-
10 ist ein Diagramm, das ein Beispiel für das Bewegungsprogramm vor und nach der Aktualisierung illustriert.
-
Wie in 10 illustriert, wählt die Bewegungsprogramm-Auswahleinheit 313 aus den Bewegungsprogrammen, die aus den in 9 illustrierten Kombinationen der Positionsdaten erzeugt wurden, beispielsweise ein Bewegungsprogramm aus, das einen Positionsdatenkandidaten A1, einen Positionsdatenkandidaten B3, einen Positionsdatenkandidaten X3 usw. als das Fahrprogramm mit der kleinsten Zykluszeit kombiniert.
-
Die Bewegungsprogramm-Auswahleinheit 313 gibt das ausgewählte (optimierte) Bewegungsprogramm an die Robotersteuerungsvorrichtung 20 aus. Die Bewegungsprogramm-Auswahleinheit 313 kann das ausgewählte (optimierte) Bewegungsprogramm in der Speichereinheit 34 speichern.
-
Die Bewegungsprogramm-Auswahleinheit 313 berechnet die Zykluszeit des Roboters 10 als Bewertungsindexwert; dies ist jedoch nicht beschränkt. Die Bewegungsprogramm-Auswahleinheit 313 kann beispielsweise den Stromverbrauch des Roboters 10 für jedes Bewegungsprogramm berechnen, indem sie Simulationen für jedes Bewegungsprogramm durchführt, und diesen als Bewertungsindexwert verwenden. Die Bewegungsprogramm-Auswahleinheit 313 kann das Bewegungsprogramm mit dem geringsten Stromverbrauch als optimales Bewegungsprogramm auswählen.
-
<Optimierungsbearbeitung durch Optimierungsassistenzvorrichtung 30>
-
Als nächstes wird der Vorgang hinsichtlich der Optimierungsverarbeitung durch die Optimierungsassistenzvorrichtung 30 gemäß der vorliegenden Ausführungsform beschrieben.
-
11 ist ein Flussdiagramm, das die Optimierungsverarbeitung durch die Optimierungsassistenzvorrichtung 30 veranschaulicht. Dieser Ablauf wird jedes Mal ausgeführt, wenn der Benutzer einen Bewertungsindexwert angibt, den er zu optimieren wünscht.
-
In Schritt S11 erhält die Eingabeeinheit 32 die Angabe eines Bewertungsindexwertes, wie z.B. die Zykluszeit oder den Energieverbrauch, den der Benutzer optimieren möchte.
-
In Schritt S12 erfasst die Positionsdatenerfassungseinheit 310 ein zu optimierendes Bewegungsprogramm aus der Robotersteuerungsvorrichtung 20.
-
In Schritt S13 erfasst die Positionsdatenerfassungseinheit 310 eine Vielzahl von Positionsdaten der Koordinatenwerte (x, y, z, w, p, r) in dem Weltkoordinatensystem Zw, das in dem in Schritt S12 erfassten Bewegungsprogramm verwendet wird.
-
In Schritt S14 bestimmt die Haltungs-Versuchs-Bestimmungseinheit 311 vorläufig Kandidaten für eine Vielzahl von Formen (Positionsdaten), die der Roboter 10 für jede in Schritt S13 erfasste Position einnehmen kann.
-
In Schritt S15 schließt die Haltungs-Versuchs-Bestimmungseinheit 311 Formen (Positionsdaten), die vom Roboter 10 nicht erreicht werden können, aus der Vielzahl der vorläufig bestimmten Kandidaten für Formen (Positionsdaten) für alle Positionsdaten in Schritt S14 aus.
-
In Schritt S16 erzeugt die Bewegungsprogramm-Erzeugungseinheit 312 eine Vielzahl von Bewegungsprogrammen aus Kombinationen der verbleibenden Formularkandidaten (Positionsdaten).
-
In Schritt S17 führt die Bewegungsprogramm-Auswahleinheit 313 eine Simulation für jedes der mehreren in Schritt S16 erzeugten Bewegungsprogramme durch.
-
In Schritt S18 bestimmt die Bewegungsprogramm-Auswahleinheit 313, ob es ein Bewegungsprogramm gibt, das die Ausführung nicht beendet, wenn die Simulation des Bewegungsprogramms ausgeführt wird. Wenn es ein Bewegungsprogramm gibt, das die Ausführung nicht abschließt, wird die Verarbeitung mit Schritt S19 fortgesetzt. Wenn es andererseits keine Bewegungsprogramme gibt, die die Ausführung nicht abschließen, wird die Verarbeitung mit Schritt S20 fortgesetzt.
-
In Schritt S19 schließt die Fahrprogramm-Auswahleinheit 313 das Fahrprogramm, dessen Ausführung nicht abgeschlossen ist, aus und löscht es.
-
In Schritt S20 berechnet die Bewegungsprogramm-Auswahleinheit 313 die in Schritt S11 bezeichneten Bewertungsindexwerte, indem sie jedes Bewegungsprogramm für den Roboter 10 simuliert, und wählt das Bewegungsprogramm mit dem kleinsten Bewertungsindexwert unter den berechneten Bewertungsindexwerten als das optimale Bewegungsprogramm aus. Dann gibt die Bewegungsprogramm-Auswahleinheit 313 das ausgewählte (optimierte) Bewegungsprogramm an die Robotersteuerungsvorrichtung 20 aus.
-
Wie oben beschrieben, kann die Optimierungsassistenzvorrichtung 30 gemäß einer Ausführungsform bei der Ausführung der Bewegungssimulation auf einfache Weise die Kandidaten für Formen festlegen, die vom Roboter für die jeweiligen Positionsdaten erreicht werden können, ohne die Anordnung oder die Positionskoordinaten des Roboters für ein Bewegungsprogramm zu ändern, das bereits erstellt wurde und bis zum Ende ausgeführt werden kann, und das Bewegungsprogramm durch die Durchführung einer Bewegungssimulation optimieren.
-
Obwohl oben eine Ausführungsform beschrieben wird, ist die Optimierungsassistenzvorrichtung 30 nicht auf die beschriebene Ausführungsform beschränkt und kann Variationen und Verbesserungen enthalten, die ihre Ziele erreichen können.
-
Modifikationsbeispiel 1
-
In einer Ausführungsform übernimmt die Optimierungsassistenzvorrichtung 30 von der Robotersteuerungsvorrichtung 20 ein bereits erstelltes und ablauffähiges Bewegungsprogramm; dies ist jedoch nicht einschränkend. Anstelle des Bewegungsprogramms kann die Optimierungsassistenzvorrichtung 30 beispielsweise die orthogonalen Koordinatenwerte (x, y, z, w, p, r) der Position der Spitze des Roboters 10 im Weltkoordinatensystem Σw, die vom Benutzer, der das Lernbedienfeld (nicht dargestellt) der Robotersteuerungsvorrichtung 20 bedient, eingelernt werden, von der Robotersteuerungsvorrichtung 20 übernehmen.
-
Auf diese Weise kann die Robotersteuerungsvorrichtung 20 von Anfang an ein optimiertes Bewegungsprogramm von der Optimierungsassistenzvorrichtung 30 erhalten.
-
Modifikationsbeispiel 2
-
In der Ausführungsform wurden beispielsweise acht (= 23) Kombinationskandidaten für „Handgelenk nach oben und unten“, „Arm nach oben und unten“ und „Arm nach vorne und hinten“ aus der Achsenkonfiguration jedes der Gelenke J5, J3, J1 für eine Positionsangabe beschrieben; dies ist jedoch nicht einschränkend. Je nach Konfiguration des Roboters 10 kann ein Fachmann zum Beispiel auch andere Kandidaten als das obige Beispiel erstellen.
-
Modifikationsbeispiel 3
-
In der vorliegenden Ausführungsform ist die Optimierungsassistenzvorrichtung 30 beispielsweise als eine von der Robotersteuerungsvorrichtung 20 verschiedene Vorrichtung beschrieben worden; dies ist jedoch nicht einschränkend. Beispielsweise kann die Optimierungsassistenzvorrichtung 30 in der Robotersteuerungsvorrichtung 20 enthalten sein.
-
Modifikationsbeispiel 4
-
In der oben beschriebenen Ausführungsform löscht die Optimierungsassistenzvorrichtung 30 beispielsweise ein Bewegungsprogramm, das nicht vollständig ausgeführt wird; dies ist jedoch nicht einschränkend. Beispielsweise kann die Optimierungsassistenzvorrichtung 30 auch bei einem nicht vollständig ausgeführten Bewegungsprogramm ein optimales Programm generieren, das bis zum Ende ausgeführt werden kann, indem sie ungültige Positionsdaten, die vom Roboter 10 im Einsatz nicht erreicht werden können, durch Positionsdaten ersetzt, die funktionsfähig sind und die kürzeste Zykluszeit oder den geringsten Stromverbrauch aufweisen.
-
Jede Funktion, die in der Optimierungsassistenzvorrichtung 30 gemäß einer Ausführungsform enthalten ist, kann durch Hardware, Software oder eine Kombination davon implementiert werden. Hier bezieht sich die Implementierung durch Software auf die Implementierung durch einen Computer, der ein Programm liest und ausführt.
-
Jede in der Optimierungsassistenzvorrichtung 30 enthaltene Komponente kann durch Hardware, einschließlich elektronischer Schaltungen usw., Software oder eine Kombination davon implementiert werden.
-
Das Programm kann auf verschiedenen Arten von nichtübertragbaren, computerlesbaren Medien gespeichert und einem Computer zugeführt werden. Zu den nicht flüchtigen, computerlesbaren Medien gehören verschiedene Arten von materiellen Aufzeichnungsmedien. Beispiele für nicht transitorische computerlesbare Medien sind magnetische Aufzeichnungsmedien (z.B. flexible Platten, Magnetbänder, Festplattenlaufwerke), magneto-optische Aufzeichnungsmedien (z.B. magneto-optische Platten), CD-ROM (Read Only Memory), CD-R, CD-R/W, Halbleiterspeicher (z.B. Masken-ROM, PROM (Programmierbares ROM), EPROM (Löschbares PROM), Flash ROM, RAM). Das Programm kann dem Computer durch verschiedene Arten von transitorischen, computerlesbaren Medien zugeführt werden. Beispiele für flüchtige computerlesbare Medien sind elektrische Signale, optische Signale und elektromagnetische Wellen. Transitorische computerlesbare Medien können dem Computer das Programm über verdrahtete Kommunikationswege wie elektrische Drähte und optische Fasern oder über drahtlose Kommunikationswege zuführen.
-
Es ist zu beachten, dass die Schritte, die das auf dem Aufzeichnungsmedium aufgezeichnete Programm beschreiben, nicht nur die in chronologischer Reihenfolge durchgeführten Verarbeitungen umfassen, sondern auch Verarbeitungen, die nicht notwendigerweise chronologisch durchgeführt werden, sowie parallel oder einzeln durchgeführte Verarbeitungen.
-
Mit anderen Worten kann die Optimierungsassistenzvorrichtung der vorliegenden Offenbarung verschiedene Ausführungsformen mit folgenden Konfigurationen annehmen.
-
(1) Die Optimierungsassistenzvorrichtung 30 der vorliegenden Offenbarung ist eine Optimierungsassistenzvorrichtung, die ein Bewegungsprogramm eines Roboters 10 unter Berücksichtigung einer Form des Roboters 10 optimiert, wobei die Vorrichtung enthält: eine Positionsdatenerfassungseinheit 310, die so konfiguriert ist, dass sie eine Vielzahl von Positionsdaten von Koordinatenwerten in einem orthogonalen Koordinatensystem erfasst, die entlang eines Bewegungspfades des Roboters 10 gelehrt werden, der in dem Bewegungsprogramm des Roboters 10 verwendet wird; eine Haltungs-Versuchs-Bestimmungseinheit 311, die so konfiguriert ist, dass sie versuchsweise eine Vielzahl von Formen bestimmt, die von dem Roboter 10 für jede der Vielzahl von Positionsdaten eingenommen werden können, und eine Form, die von dem Roboter 10 nicht erreicht werden kann, aus der Vielzahl von versuchsweise bestimmten Formen ausschließt; eine Bewegungsprogramm-Erzeugungseinheit 312, die so konfiguriert ist, dass sie eine Vielzahl von Bewegungsprogrammen durch Kombinieren der verbleibenden Formen in jeder der Vielzahl von Positionsdaten erzeugt; und eine Bewegungsprogramm-Auswahleinheit 313, die so konfiguriert ist, dass sie jedes der Vielzahl von erzeugten Bewegungsprogrammen simuliert, Bewertungsindexwerte berechnet und ein Bewegungsprogramm mit dem kleinsten berechneten Bewertungsindexwert als ein optimales Bewegungsprogramm auswählt.
-
Bei der Ausführung der Bewegungssimulation kann die Optimierungsassistenzvorrichtung 30 auf einfache Weise die Kandidaten für Formen festlegen, die vom Roboter für die jeweiligen Positionsdaten erreicht werden können, ohne die Anordnung oder die Positionskoordinaten des Roboters für ein bereits erstelltes und bis zum Ende ausführbares Bewegungsprogramm zu ändern, und das Bewegungsprogramm durch Durchführung einer Bewegungssimulation optimieren.
-
(2) In der in (1) beschriebenen Optimierungsassistenzvorrichtung 30 kann der Bewertungsindexwert eine Zykluszeit des Roboters 10 sein.
-
Dadurch kann die Optimierungsassistenzvorrichtung 30 ein optimales Bewegungsprogramm mit der kürzesten Zykluszeit erzeugen.
-
(3) Bei der in (1) beschriebenen Optimierungsassistenzvorrichtung 30 kann der Bewertungsindexwert der Stromverbrauch des Roboters 10 sein.
-
Dadurch kann die Optimierungsassistenzvorrichtung 30 ein optimales Bewegungsprogramm mit minimalem Stromverbrauch erzeugen.
-
(4) In der in einem von (1) bis (3) beschriebenen Optimierungsassistenzvorrichtung 30 kann die Haltungs-Versuchs-Bestimmungseinheit 311 eine Form, die eine Hubgrenzenumgebung, eine Singularität oder eine Überschneidung mit einem Hindernis enthält, als eine Form ausschließen, die vom Roboter 10 nicht erreicht werden kann.
-
Dadurch kann die Optimierungsassistenzvorrichtung 30 Formen, die der Roboter 10 nicht erreichen kann, von vornherein ausschließen und so die Erstellung unnötiger Bewegungsprogramme und die Ausführung von Simulationen unnötiger Bewegungsprogramme vermeiden und die Bearbeitungszeit verkürzen.
-
(5) In der in einem der Punkte (1) bis (4) beschriebenen Optimierungsassistenzvorrichtung 30 kann die Bewegungsprogramm-Auswahleinheit 313 ein Bewegungsprogramm löschen, das bei der Simulation jedes der mehreren Bewegungsprogramme nicht vollständig ausgeführt wird.
-
Dadurch kann die Optimierungsassistenzvorrichtung 30 vermeiden, dass Bewegungsprogramme ausgewählt werden, die die Bewegung nicht zu Ende führen.
-
ERLÄUTERUNG DER BEZUGSZEICHEN
-
- 1
- Robotersystem
- 10
- Roboter
- 20
- Robotersteuerungsvorrichtung
- 30
- Optimierungsassistenzvorrichtung
- 31
- Steuergerät
- 310
- Positionsdatenerfassungseinheit
- 311
- Haltungs-Versuchs-Bestimmungseinheit
- 312
- Bewegungsprogramm-Erzeugungseinheit
- 313
- Bewegungsprogramm-Auswahleinheit
-
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
-