DE112016000582T5 - Lehreinrichtung, lehrverfahren und robotersystem - Google Patents

Lehreinrichtung, lehrverfahren und robotersystem Download PDF

Info

Publication number
DE112016000582T5
DE112016000582T5 DE112016000582.2T DE112016000582T DE112016000582T5 DE 112016000582 T5 DE112016000582 T5 DE 112016000582T5 DE 112016000582 T DE112016000582 T DE 112016000582T DE 112016000582 T5 DE112016000582 T5 DE 112016000582T5
Authority
DE
Germany
Prior art keywords
robot
model
path
teaching
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112016000582.2T
Other languages
English (en)
Other versions
DE112016000582B4 (de
Inventor
Hisashi Matsumoto
Yasusato Fujieda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Publication of DE112016000582T5 publication Critical patent/DE112016000582T5/de
Application granted granted Critical
Publication of DE112016000582B4 publication Critical patent/DE112016000582B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0081Programme-controlled manipulators with master teach-in means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4069Simulating machining process on screen
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • G05B19/4202Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine preparation of the programme medium using a drawing, a model
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39014Match virtual world with real world
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40317For collision avoidance and detection

Abstract

Eine Lehreinrichtung konstruiert in einem virtuellen Raum ein virtuelles Robotersystem, in dem ein virtuelles 3D-Modell eines Roboters und ein virtuelles 3D-Modell einer peripheren Struktur des Roboters angeordnet sind, und lehrt einen Bewegungspfad des Roboters. Die Lehreinrichtung umfasst eine Beschaffungseinheit, die dazu konfiguriert ist, Informationen über einen geometrischen Fehler zwischen den virtuellen 3D-Modellen zu beschaffen, und eine Korrektureinheit, die dazu konfiguriert ist, den Bewegungspfad des Roboters gemäß den Informationen, die durch die Beschaffungseinheit beschafft werden, zu korrigieren.

Description

  • [Technisches Gebiet]
  • Die vorliegende Erfindung betrifft eine Lehreinrichtung, die Operationen eines Roboters offline lehrt, ein Lehrverfahren und ein Robotersystem.
  • [Hintergrund]
  • Eine Lehreinrichtung konstruiert ein virtuelles Robotersystem, das durch einen Roboter und eine periphere Struktur des Roboters in einem virtuellen Raum gebildet ist, erzeugt ein Operationsprogramm des Roboters und lehrt die Operation des Roboters offline. Üblicherweise existiert zwischen einem virtuellen Robotersystem und einem realen Robotersystem ein Fehler, und wenn ein Operationsprogramm eines Roboters, das durch eine Lehreinrichtung erzeugt wird, dem realen Robotersystem zugeführt wird, ist es möglich, dass eine Interferenz oder Ähnliches zwischen dem Roboter und der peripheren Struktur auftritt.
  • PTL 1 offenbart eine Technik als eine Lehreinrichtung unter Berücksichtigung des vorstehend beschriebenen Fehlers. Diese Technik dient zum Vermeiden einer Interferenz zwischen einem Roboter und einer peripheren Struktur durch Erfassen eines Fehlers in einer angeordneten Position zwischen einer Struktur eines realen Robotersystems und eines virtuellen Robotersystems durch Messen der angeordneten Position einer Struktur des realen Robotersystems unter Verwendung eines zweidimensionalen visuellen Sensors, eines dreidimensionalen visuellen Sensors, eines Entfernungssensors und Ähnlichem, und Verschieben von Lehrpunktkoordinaten um den Betrag des Fehlers.
  • [Liste des Standes der Technik]
  • [Patentliteratur]
    • [PTL1] Japanische Patentoffenlegungsschrift Nr. 2003-150219
  • [Kurzfassung der Erfindung]
  • [Technisches Problem]
  • In einer Lehreinrichtung werden dreidimensionale Modelle eines Roboters oder einer peripheren Struktur vorbereitet und in einem virtuellen Raum angeordnet, um ein virtuelles Robotersystem zu konstruieren. Eine Lehrarbeit wird durch Einstellen von Operationen des Roboters und von Lehrpunktkoordinaten unter Verwendung dieser 3D-Modelle durchgeführt. Während einer Konstruktion des virtuellen Robotersystems könnte das 3D-Modell, das durch einen Hersteller des Roboters vorbereitet wird, für den Roboter verwendet werden, wohingegen in vielen Fällen kein 3D-Modell für die periphere Struktur vorbereitet wird. In diesem Fall wird das 3D-Modell der peripheren Struktur durch ein einfaches geometrisches Modell, das im Wesentlichen die gleichen Außenabmessungen aufweist, ersetzt. Deshalb kann in einer Modellgeometrie einer Struktur zwischen dem virtuellen Robotersystem und dem realen Robotersystem eine Differenz bzw. ein Unterschied auftreten.
  • Die in der PTL 1 offenbarte Technologie korrigiert lediglich Fehler in angeordneten Positionen des virtuellen Robotersystems und des realen Robotersystems und ist nicht dazu in der Lage, einen Fehler in einer Modellgeometrie der Struktur zu korrigieren. Deshalb ist es in der in der PTL 1 offenbarten Technik möglich, dass eine Interferenz zwischen dem Roboter und der Struktur in dem realen Robotersystem aufgrund einer Differenz in einer Modellgeometrie auftritt. Der kürzeste Pfad zu einem Arbeitspunkt kann geändert werden, wenn eine Differenz in einer Modellgeometrie vorhanden ist. Beim Verschieben der Lehrpunktkoordinaten um den Betrag des Fehlers bezüglich der angeordneten Positionen, wie in der in der PTL 1 offenbarten Technik, kann ein Bewegungspfad des Roboters nicht auf den kürzesten Pfad korrigiert werden.
  • [Lösung des Problems]
  • Dann erzeugt die vorliegende Erfindung geeignete Offline-Lehrdaten, auch wenn eine geometrische Differenz zwischen einer Struktur eines virtuellen Robotersystems und einer Struktur eines realen Robotersystems auftritt.
  • Gemäß einem Aspekt der vorliegenden Erfindung umfasst eine Lehreinrichtung, die in einem virtuellen Raum ein virtuelles Robotersystem konstruiert, in dem ein virtuelles 3D-Modell eines Roboters und ein virtuelles 3D-Modell einer peripheren Struktur des Roboters angeordnet sind, und die einen Bewegungspfad des Roboters lehrt: eine Beschaffungseinheit, die dazu konfiguriert ist, Informationen über einen geometrischen Fehler zwischen den virtuellen 3D-Modellen zu beschaffen; und eine Korrektureinheit, die dazu konfiguriert ist, den Bewegungspfad des Roboters gemäß den Informationen, die durch die Beschaffungseinheit beschafft werden, zu korrigieren. Gemäß der vorliegenden Erfindung können geeignete Offline-Lehrdaten erzeugt werden, auch wenn eine geometrische Differenz zwischen einer Struktur eines virtuellen Robotersystems und einer Struktur eines realen Robotersystems auftritt.
  • Weitere Merkmale der vorliegenden Erfindung werden aus der folgenden Beschreibung von beisplelhaften Ausführungsbeispielen mit Bezug auf die anhängigen Zeichnungen ersichtlich.
  • [Kurze Beschreibung der Zeichnungen]
  • 1 ist ein Konfigurationsdiagramm, das ein beispielhaftes Robotersystem der vorliegenden Erfindung darstellt.
  • 2 ist ein Diagramm, das eine beispielhafte Hardwarekonfiguration einer Lehreinrichtung darstellt.
  • 3 ist ein Ablaufdiagramm, das eine beispielhafte Prozedur eines vorhergehenden Analyseprozesses darstellt.
  • 4 ist ein Diagramm, das Details einer Systemkonstruktionseinheit darstellt.
  • 5 ist ein Diagramm, das Details von Bildschirmkonfigurationselementdaten darstellt.
  • 6 ist ein Diagramm, das beispielhafte Lehrpunkte und einen beispielhaften Bewegungspfad darstellt.
  • 7 ist ein Ablaufdiagramm, das eine beispielhafte Prozedur eines Pfadkorrekturprozesses darstellt.
  • 8 ist ein Diagramm, das ein Verfahren zum Messen einer Komponente darstellt.
  • 9A ist ein Diagramm, das ein beispielhaftes Geometriedifferenzmuster eines 3D-Modells darstellt.
  • 9B ist ein Diagramm, das ein beispielhaftes Geometriedifferenzmuster eines 3D-Modells darstellt.
  • 9C ist ein Diagramm, das ein beispielhaftes Geometriedifferenzmuster eines 3D-Modells darstellt.
  • 9D ist ein Diagramm, das ein beispielhaftes Geometriedifferenzmuster eines 3D-Modells darstellt.
  • 10A ist ein Diagramm, das ein Verfahren zum Vergleichen von Modellen darstellt.
  • 10B ist ein Diagramm, das ein Verfahren zum Vergleichen von Modellen darstellt.
  • 11 ist ein Diagramm, das ein Pfadkorrekturbestimmungsverfahren (Korrektur eines kürzesten Pfads) darstellt.
  • 12 ist ein Diagramm, das eine beispielhafte Bestimmung einer Korrektur eines kürzesten Pfads darstellt.
  • 13 ist ein Diagramm, das eine beispielhafte Bestimmung einer Korrektur eines kürzesten Pfads darstellt.
  • 14 ist ein Diagramm, das eine beispielhafte Bestimmung einer Korrektur eines kürzesten Pfads darstellt.
  • 15 ist ein Diagramm, das eine beispielhafte Form eines Endeffektors darstellt.
  • 16 ist ein Diagramm, das ein Beispiel darstellt, in dem eine Korrektur eines kürzesten Pfads durchzuführen ist.
  • 17 ist ein Diagramm, das ein Beispiel darstellt in dem eine Korrektur eines kürzesten Pfads durchzuführen ist.
  • 18 ist ein Diagramm, das ein Pfadkorrekturbestimmungsverfahren (Interferenzvermeidungspfadkorrektur) darstellt.
  • 19 ist ein Diagramm, das ein Beispiel darstellt, in dem eine Interferenzvermeidungspfadkorrektur durchzuführen ist.
  • 20 ist ein Diagramm, das ein Verfahren einer Korrektur eines kürzesten Pfads darstellt.
  • 21 ist ein Diagramm, das ein Verfahren zum Einstellen eines Startpunkts und eines Endpunkts einer Korrektur eines kürzesten Pfads darstellt.
  • 22 ist ein Diagramm, das ein Pfadsuchverfahren darstellt.
  • 23 ist ein Diagramm, das ein Pfadsuchverfahren darstellt.
  • 24 ist ein Diagramm, das ein Pfadsuchverfahren darstellt.
  • 25 ist ein Diagramm, das ein Pfadsuchverfahren darstellt.
  • 26 ist ein Diagramm, das ein Ergebnis einer Korrektur eines kürzesten Pfads darstellt.
  • 27 ist ein Diagramm, das ein Ergebnis einer Interferenzvermeidungspfadkorrektur darstellt.
  • [Beschreibung von Ausführungsbeispielen]
  • Nachstehend werden Ausführungsbeispiele zum Implementieren der vorliegenden Erfindung mit Bezug auf die anhängigen Zeichnungen beschrieben. Die nachstehend beschriebenen Ausführungsbeispiele sind eine beispielhafte Implementierung der vorliegenden Erfindung und sollten in Abhängigkeit von Konfigurationen und verschiedenen Bedingungen der Vorrichtung, auf die die vorliegende Erfindung angewendet wird, angemessen modifiziert oder geändert werden. Die vorliegende Erfindung ist nicht auf die folgenden Ausführungsbeispiele beschränkt.
  • [Erstes Ausführungsbeispiel]
  • 1 ist ein Diagramm, das eine beispielhafte Konfiguration eines Robotersystems 100, das mit einer Lehreinrichtung bereitgestellt ist, in dem vorliegenden Ausführungsbeispiel darstellt. Das Robotersystem 100 umfasst einen Roboter 10 und eine Lehreinrichtung 20. Der Roboter 10 ist zum Beispiel ein Knickarmroboter („articulated robot”) und besitzt einen Sensorabschnitt 11, der an einem Endabschnitt (einer Hand) eines Arms angebracht ist. Der Sensorabschnitt 11 misst ein Objekt, das sich in der Nähe der Hand des Roboters 10 befindet, und gibt ein Messergebnis an die Lehreinrichtung 20 aus. Der Sensorabschnitt 11 kann zum Beispiel ein visueller Sensor oder ein Entfernungssensor sein.
  • Der Sensorabschnitt 11 muss nicht notwendigerweise an dem Roboter 10 angebracht sein, sondern kann zum Beispiel an einer anderen Operationsmaschine angebracht sein, oder kann an einer Position über einem vorbestimmten Raum, der zu fotografieren ist, befestigt sein. Der Roboter 10 umfasst einen Positions- und Haltungsänderungsmechanismus 12, der dazu in der Lage ist, die Position und Haltung der Hand des Roboters 10 zu ändern. Der Positions- und Haltungsänderungsmechanismus 12 ändert die Position und Haltung der Hand des Roboters 10 durch Ändern eines Winkels eines jeden Gelenks des Roboters 10. Der Positions- und Haltungsänderungsmechanismus 12 kann durch einen Elektromotor angetrieben werden, oder kann durch ein Stellglied, das durch Fluiddruck, wie etwa Öldruck oder Luftdruck, betätigt wird, angetrieben werden. Der Positions- und Haltungsänderungsmechanismus 12 wird gemäß Lehrdaten, die einen Bewegungspfad und Ähnliches des Roboters 10 angeben, der durch die Lehreinrichtung 20 erzeugt wird, angetrieben bzw. angesteuert.
  • Ein Endeffektor 13 ist an der Hand des Roboters 10 angebracht. Der Endeffektor 13 ist ein Werkzeug, um Operationen gemäß Arten von Arbeiten des Roboters 10 durchzuführen, und ist zum Beispiel eine Roboterhand. Die Roboterhand kann zum Beispiel eine Hand mit einem motorangetriebenen Spannfutter, das dazu in der Lage ist, ein Objekt zu greifen, oder eine Hand, die eine Adsorptionsfläche einsetzt, die ein Objekt mit Luftdruck adsorbiert, sein. Der Endeffektor 13 ist abnehmbar an dem Arm angebracht und wird in Abhängigkeit der Art der Arbeit ersetzt. Der Roboter 10 ist nicht auf einen Knickarmroboter beschränkt, sondern kann eine numerisch steuerbare (NC, ”numerically controllable”) bewegliche Maschine sein.
  • Die Lehreinrichtung 20 erzeugt Lehrdaten für den Roboter (zum Beispiel einen Bewegungspfad des Roboters) in einem virtuellen Raum und führt ein Offline-Lehren (Offline-Lehren) durch, um den realen Roboter mit den erzeugten Lehrdaten zu versorgen. Speziell führt die Lehreinrichtung 20 einen vorhergehenden Analyseprozess aus, in dem 3D-Modelle eines virtuellen Roboters, eines Werkzeugs, das an dem virtuellen Roboter angebracht ist (der Endeffektor), eines Werkstücks, das ein Arbeitsobjekt ist, von peripheren Strukturen, und Ähnlichem in dem virtuellen Raum angeordnet werden, um ein virtuelles Robotersystem zu konstruieren, und Lehrdaten durch das virtuelle Robotersystem erzeugt werden. Die Lehreinrichtung 20 führt einen Pfadkorrekturprozess aus, um die Lehrdaten, die in dem vorhergehenden Analyseprozess erzeugt werden, zu korrigieren, gemäß der Geometrie des 3D-Modells der Komponente, die nach der Konstruktion des realen Robotersystems beschafft wird.
  • Nachstehend wird jeder Teil der Lehreinrichtung 20 detailliert beschrieben. Die Lehreinrichtung 20 ist zum Beispiel durch einen Personal Computer (PC) konfiguriert, und, wie in 1 dargestellt ist, umfasst eine Systemkonstruktionseinheit 201, eine Roboterpfaderzeugungseinheit 202, eine Operationsbestätigungseinheit 203, eine Mess- und Modellerzeugungseinheit 204, eine Geometriedifferenzbestimmungseinheit 205, eine Pfadkorrektureinheit 206, eine externe Schnittstelleneinheit 207 und eine Eingabe-/Ausgabe-Steuerungseinheit 208. Die Systemkonstruktionseinheit 201 konstruiert ein virtuelles Robotersystem in einem virtuellen Raum. Die Roboterpfaderzeugungseinheit 202 ist ein virtuelles Robotersystem, das durch die Systemkonstruktionseinheit 201 konstruiert ist, und erzeugt einen Bewegungspfad des Roboters als Lehrdaten. Die Operationsbestätigungseinheit 203 führt eine Simulation des Roboterpfads, der durch die Roboterpfaderzeugungseinheit 202 erzeugt wird, durch eine Animation durch.
  • Die Mess- und Modellerzeugungseinheit 204 misst Informationen, die eine Geometrie der Komponente des realen Robotersystems angeben, durch Steuern des Sensorabschnitts 11, und erzeugt ein 3D-Modell (ein gemessenes 3D-Modell) der gemessenen Komponente. Die Geometriedifferenzbestimmungseinheit 205 bestimmt, ob eine geometrische Differenz bzw. Geometriedifferenz bzw. ein Geometrieunterschied zwischen dem gemessenen 3D-Modell, das durch die Mess- und Modellerzeugungseinheit 204 erzeugt wird, und einem existierenden 3D-Modell (ein virtuelles 3D-Modell), das in dem virtuellen Raum entsprechend dem gemessenen 3D-Modell existiert, vorhanden ist, und beschafft Informationen über einen Geometriefehler des existierenden 3D-Modells. Wenn bestimmt ist, dass die Differenz vorhanden ist, bestimmt die Geometriedifferenzbestimmungseinheit 205, ob die Differenz den Roboterpfad, der in dem vorhergehenden Analyseprozess erzeugt wird, beeinträchtigen könnte, das heißt, ob der Roboterpfad, der in dem vorhergehenden Analyseprozess erzeugt wurde, korrigiert werden muss.
  • Die Pfadkorrektureinheit 206 korrigiert den Roboterpfad, der in dem vorhergehenden Analyseprozess erzeugt wird, gemäß dem Bestimmungsergebnis der Geometriedifferenzbestimmungseinheit 205. Wenn bestimmt ist, dass die Geometriedifferenz den Roboterpfad beeinträchtigen könnte (das heißt der Roboterpfad muss korrigiert werden), korrigiert die Geometriedifferenzbestimmungseinheit 205 den Roboterpfad. Die externe Schnittstelleneinheit 207 überträgt Lehrdaten, die durch die Roboterpfaderzeugungseinheit 202 und die Pfadkorrektureinheit 206 erzeugt werden, an den Roboter 10. Die externe Schnittstelleneinheit 207 empfängt die Messergebnisse von dem Sensorabschnitt 11 und überträgt die empfangenen Messergebnisse an die Mess- und Modellerzeugungseinheit 204. Die Eingabe-/Ausgabe-Steuerungseinheit 208 ist eine Einrichtung, in die ein Benutzer Operationen eingibt, die über einen Monitor unter Verwendung von Zeigereinrichtungen, wie etwa eine Tastatur und eine Maus, durchgeführt werden, oder Simulationsergebnisse werden auf dem Monitor angezeigt.
  • [Hardwarekonfiguration der Offline-Lehreinrichtung 20]
  • 2 stellt eine beispielhafte Hardwarekonfiguration der Lehreinrichtung 20 dar. Die Lehreinrichtung 20 umfasst eine CPU 21, einen ROM 22, einen RAM 23, einen externen Speicher 24, eine Eingabeeinheit 25, eine Anzeigeeinheit 26, eine Kommunikationsschnittstelle 27 und einen Systembus 28. Die CPU 21 steuert insgesamt Operationen in der Lehreinrichtung 20 und steuert jede der Konstruktionseinheiten (22 bis 27) über den Systembus 28. Der ROM 22 ist ein nichtflüchtiger Speicher, in dem Steuerungsprogramme und Ähnliches, die die CPU 21 zum Ausführen von Prozessen benötigt, gespeichert sind. Die Programme können in dem externen Speicher 24 oder einem (nicht dargestellten) entfernbaren Speichermedium gespeichert werden. Der RAM 23 dient als ein Hauptspeicher, ein Arbeitsbereich oder Ähnliches der CPU 21. Die CPU 21 lädt notwendige Programme oder Ähnliches von dem ROM 22 in den RAM 23 für die Ausführung von Prozessen und führt die Programme und Ähnliches aus, um verschiedene Arten von funktionalen Operationen zu implementieren.
  • Der externe Speicher 24 speichert verschiedene Arten von Daten, verschiedene Arten von Informationen und Ähnliches, die die CPU 21 benötigt, um Prozesse unter Verwendung der Programme durchzuführen. Verschiedene Arten von Daten, verschiedene Arten von Informationen und Ähnliches, die erhalten werden, wenn die CPU 21 die Prozesse unter Verwendung der Programme durchführt, werden ebenso in dem externen Speicher 24 gespeichert. Die Eingabeeinheit 25 wird durch eine Tastatur, eine Maus und Ähnliches gebildet. Ein Operator ist dazu in der Lage, Anweisungen an die Lehreinrichtung 20 über die Eingabeeinheit 25 bereitzustellen. Die Anzeigeeinheit 26 wird durch einen Monitor mit zum Beispiel einer Flüssigkristallanzeige (LCD) gebildet. Die Kommunikationsschnittstelle 27 ist eine Schnittstelle zur Kommunikation mit einer externen Einrichtung. Der Systembus 28 verbindet die CPU 21, den ROM 22, den RAM 23, den externen Speicher 24, die Eingabeeinheit 25, die Anzeigeeinheit 26 und die Kommunikationsschnittstelle 27, um miteinander zu kommunizieren.
  • Die Funktion von jedem Teil der Lehreinrichtung 20 wird implementiert, wenn die CPU 21 das Programm, das in dem ROM 22 oder in dem externen Speicher 24 gespeichert ist, ausführt. Die Prozesse, die durch die Lehreinrichtung 20 ausgeführt werden, werden nachstehend detailliert beschrieben.
  • [Vorhergehender Analyseprozess]
  • 3 ist ein Ablaufdiagramm, das die vorhergehende Analyseprozedur, die durch die Lehreinrichtung 20 ausgeführt wird, darstellt. Der vorhergehende Analyseprozess ist ein Prozess zum Durchführen einer vorhergehenden Analyse durch eine Simulation in dem virtuellen Raum vor einem Konstruieren des realen Robotersystems. In Schritt S1 konstruiert die Lehreinrichtung 20 das virtuelle Robotersystem in dem virtuellen Raum. Die Systemkonstruktionseinheit 201 konstruiert das virtuelle Robotersystem. Die Systemkonstruktionseinheit 201 importiert ein 3D-Modell von jeder Komponente des Robotersystems und ordnet das 3D-Modell in dem virtuellen Raum an, um das virtuelle Robotersystem zu konstruieren. Wie in 4 dargestellt ist, wird bezüglich einer Struktur, in der das 3D-Modell in einer externen CAD-Einrichtung 210 vorbereitet wird, das 3D-Modell von der CAD-Einrichtung 210 importiert, und bezüglich einer Struktur, in der das 3D-Modell nicht in der CAD-Einrichtung 210 vorbereitet wird, importiert ein Benutzer ein einfaches 3D-Modell, das auf einem Bildschirm erzeugt wird, über die Eingabe-/Ausgabe-Steuerungseinheit 208. Die CAD-Einrichtung 210 kann an der Lehreinrichtung 20 angebracht sein.
  • Wenn das 3D-Modell importiert wird, speichert die Systemkonstruktionseinheit 201 die Bildschirmkonfigurationselementdaten 211 in einem Speicher und Ähnlichem. Die Bildschirmkonfigurationselementdaten 211 werden durch die in 5 dargestellten Felder gebildet. Und zwar sind ein Name 211a des 3D-Modells, Koordinaten 211b, an denen das 3D-Modell angeordnet ist, Informationen 211c über die Geometrie des 3D-Modells, eine CAD 211d eines Referenzziels des 3D-Modells und ein Geometriekorrekturimplementierungsmarker 211e mit jeder der Komponenten korreliert.
  • Wenn kein 3D-Modell in der CAD-Einrichtung 210 vorhanden ist und das 3D-Modell, das durch den Benutzer erzeugt wird, importiert wird, ist in dem Feld des CAD 211d des Referenzziels nichts beschrieben. Der Geometriekorrekturimplementierungsmarker 211e ist ein Marker, der angibt, ob es möglich ist, dass eine Geometriedifferenz zwischen dem virtuellen System und dem realen System aufgetreten ist, und ist äquivalent zu Zuordnungsinformationen, die eine Zuverlässigkeit der Modellgeometrie angeben. In dem Feld des Geometriekorrekturimplementierungsmarkers 211e ist zum Beispiel ein Marker beschrieben, der angibt, dass kein 3D-Modell in der CAD-Einrichtung 210 vorhanden ist, und dass es möglich ist, dass eine Geometriedifferenz zwischen der Struktur des einfachen Geometriemodells, das durch den Benutzer erzeugt und importiert wird, und dem realen Robotersystem aufgetreten ist. Der Geometriekorrekturimplementierungsmarker 211e wird verwendet, um zu bestimmen, ob eine Pfadkorrektur in einem später beschriebenen Pfadkorrekturprozess notwendig ist. Zurück zu 3 erzeugt die Lehreinrichtung 20 nach einem Konstruieren eines virtuellen Robotersystems in Schritt S1 Lehrpunkte des Roboters und einen Bewegungspfad des Roboters, der durch lineare Interpolation dieser Lehrpunkte erhalten wird, in Schritt S2. Die Lehrpunkte und der Roboterpfad werden erzeugt, so dass eine Arbeitszeit kürzer wird, und so dass der Roboterpfad keine periphere Ausrüstung beeinträchtigt.
  • Als Nächstes wird in Schritt S3 eine Simulation in dem virtuellen Raum basierend auf den Lehrpunkten und dem Pfad, der in Schritt S2 erzeugt wird, durchgeführt. 6 stellt einen beispielhaft erhaltenen Roboterpfad dar, der durch das Simulationsergebnis erhalten wird. Punkte 401 sind Lehrpunkte. Ein Roboterpfad 402 ist eine Linie, die die Lehrpunkte in der Reihenfolge von a, b, c, d, e und f verbindet. Auf diese Weise werden die Lehrpunkte 401 und der Roboterpfad erzeugt, um die periphere Ausrüstung 301 nicht zu beeinträchtigen. In 3 wird der Prozess von Schritt S1 durch die Systemkonstruktionseinheit 201 wie vorstehend beschrieben ausgeführt, wird der Prozess von Schritt S2 durch die Roboterpfaderzeugungseinheit 202 ausgeführt und wird der Prozess von Schritt S3 durch die Operationsbestätigungseinheit 203 ausgeführt.
  • [Pfadkorrekturprozess]
  • Als Nächstes wird der Pfadkorrekturprozess, der durch die Lehreinrichtung 20 ausgeführt wird, detailliert beschrieben. 7 ist ein Ablaufdiagramm, das eine Prozedur des Pfadkorrekturprozesses darstellt. Der Pfadkorrekturprozess ist ein Prozess, um den Roboterpfad, der in dem vorstehend beschriebenen vorhergehenden Analyseprozess erzeugt ist, nach Bedarf zu korrigieren, und wird ausgeführt, nachdem der vorhergehende Analyseprozess ausgeführt ist und das reale Robotersystem konstruiert ist. In Schritt S11 misst die Lehreinrichtung 20 Komponenten des realen Robotersystems an dem Sensorabschnitt 11. Die zu messenden Komponenten werden basierend auf den Bildschirmkonfigurationselementdaten 211, die während der Konstruktion des virtuellen Robotersystems erzeugt werden, bestimmt.
  • Als Erstes nimmt die Lehreinrichtung 20 Bezug auf das Feld des Geometriekorrekturimplementierungsmarkers 211e der Bildschirmkonfigurationselementdaten 211, die in 5 dargestellt sind, und unterscheidet bzw. bestimmt eine Komponente, an der eine Geometriedifferenz mit dem realen Robotersystem auftreten kann. Als Nächstes nimmt die Lehreinrichtung 20 Bezug auf das Feld der Anordnung 211b der Bildschirmkonfigurationselementdaten 211, die in 5 dargestellt sind, und beschafft eine Position in dem virtuellen Raum der Komponente, an der die Geometriedifferenz auftreten kann. Auf diese Weise wird die mit dem Sensor durch das reale Robotersystem zu messende Komponente bestimmt.
  • Wenn die Komponente durch den Sensorabschnitt 11 gemessen wird, wird die zu messende Komponente von einer Vielzahl von Richtungen zu einem Ausmaß, dass ein 3D-Modell erzeugt werden kann, gemessen. Die Richtung zum Messen wird zum Beispiel basierend auf den Feldinformationen der Geometrie 211c der Komponente, wie in 8 dargestellt ist, von irgendeiner der X-Richtung (das heißt der Breitenrichtung der Struktur 310), der Y-Richtung (der Tiefenrichtung der Struktur 310) und der Z-Richtung (der Höhenrichtung der Struktur 310) bestimmt. Wenn die zu messende Komponente somit bestimmt ist, gibt die Lehreinrichtung 20 eine Messanweisung an den Sensorabschnitt 11 über die externe Schnittstelleneinheit 207 aus und beschafft ein Messergebnis des Sensorabschnitts 11. Die Lehreinrichtung 20 erzeugt ein 3D-Modell (ein gemessenes 3D-Modell) der Komponente basierend auf dem beschafften Messergebnis und der Prozess geht über zu Schritt S12.
  • In Schritt S12 vergleicht die Lehreinrichtung 20 das gemessene 3D-Modell, das in Schritt S11 erzeugt wird, mit einem existierenden 3D-Modell in dem virtuellen Raum entsprechend dem gemessenen 3D-Modell. Wenn das existierende 3D-Modell ein einfaches geometrisches Modell ist, das die gleichen Außenabmessungen wie die der tatsächlichen Komponente aufweist, wie ein 3D-Modell 301, das in 9A dargestellt ist, gibt es einen Fall, in dem das gemessene 3D-Modell im Wesentlichen die gleichen Außenabmessungen wie das existierende 3D-Modell 301 aufweist, aber eine unterschiedliche Form wie das existierende 3D-Modell 301 aufweist (wie 3D-Modelle 311 bis 313, die entsprechend in 9B bis 9D dargestellt sind). Dann, wie zum Beispiel in 10A und 10B dargestellt ist, werden das existierende 3D-Modell 301 und das gemessene 3D-Modell 311 in Voxeln bzw. Volumenelementen dargestellt und hinsichtlich der Form verglichen. Eine geometrische Differenz zwischen dem existierenden 3D-Modell 301 und dem gemessenen 3D-Modell 311 wird zum Beispiel durch Extrahieren des Fourier-Spektrums der Form, die in den Volumenelementen dargestellt ist, extrahiert.
  • Als Nächstes bestimmt die Lehreinrichtung 20 in Schritt S13, ob die geometrische Differenz den Roboterpfad, der in dem vorhergehenden Analyseprozess erzeugt ist, beeinträchtigen könnte, basierend auf den Informationen über die Komponente, von der in Schritt S12 bestimmt ist, dass sie die geometrische Differenz aufweist. Hier, wenn der in dem vorhergehenden Analyseprozess erzeugte Roboterpfad auf den kürzesten Pfad mit einer kürzeren Arbeitszeit aufgrund der geometrischen Differenz korrigierbar ist, wird bestimmt, dass die geometrische Differenz den Roboterpfad beeinträchtigt. Da eine Interferenz zwischen dem Roboterpfad, der in dem vorhergehenden Analyseprozess erzeugt ist, und der realen Komponente auftritt, wird bestimmt, dass die geometrische Differenz den Roboterpfad ebenso beeinträchtigen könnte, wenn der Roboterpfad auf einem Pfad korrigiert werden muss, um die Interferenz zu vermeiden.
  • Als Erstes wird ein Verfahren des Bestimmens, ob eine Korrektur zu dem kürzesten Pfad möglich ist, beschrieben. Wie in 11 dargestellt ist, werden der Roboter 11 und das 3D-Modell 310 der realen Struktur von beiden Seiten in der X-Richtung aus gesehen. Die Größe des existierenden 3D-Modells in die Höhenrichtung (die Z-Richtung) auf der Oberfläche, die dem Roboter 10 entgegensteht), die Größe des gemessenen 3D-Modells in die Höhenrichtung (die Z-Richtung) auf der Oberfläche, die dem Roboter 10 entgegensteht, und die Größen des Endeffektors 13 des Roboters 10 in die Höhenrichtung (die Z-Richtung) und in die Tiefenrichtung (Y-Richtung) werden fokussiert. Wenn zum Beispiel das gemessene 3D-Modell das 3D-Modell 311 ist, das in 9B dargestellt ist, wie in 12 dargestellt ist, wird die Größe H1 bezüglich des existierenden 3D-Modells 301 fokussiert. Die Größen H2 und H3 werden bezüglich des gemessenen 3D-Modells 311 fokussiert.
  • Wenn das gemessene 3D-Modell das 3D-Modell 312 ist, das in 9C dargestellt ist, wie in 13 dargestellt ist, wird die Größe H1 bezüglich des existierenden 3D-Modells 301 auf die gleiche Weise wie in 12 fokussiert. Die Größe H4 wird bezüglich des gemessenen 3D-Modells 312 fokussiert. Ähnlich wird, wenn das gemessene 3D-Modell das 3D-Modell 313 ist, das in 9D dargestellt ist, wie in 14 dargestellt ist, die Größe H1 bezüglich des existierenden 3D-Modells 301 fokussiert. Die Größe H5 (= H1) wird bezüglich des gemessenen 3D-Modells 313 fokussiert.
  • Dann wird basierend auf den vorstehend beschriebenen fokussierten Größen bestimmt, ob die geometrische Differenz zwischen dem existierenden 3D-Modell und dem gemessenen 3D-Modell den Roboterpfad, der in dem vorhergehenden Analyseprozess erzeugt ist, beeinträchtigen könnte. In dem vorliegenden Ausführungsbeispiel wird in einem Fall, in dem der Endeffektor 13 des Roboters 10 die Größe H, die Breite W und die Tiefe D aufweist, wie in 15 dargestellt ist, wenn der Wert, der durch Subtrahieren der Gesamtsumme der Größe des gemessenen 3D-Modells in die Höhenrichtung auf der Oberfläche, die dem Roboter 10 entgegensteht, von der Größe des existierenden 3D-Modells in die Höhenrichtung auf der Oberfläche, die dem Roboter 10 entgegensteht, erhalten wird, größer ist als die Höhe H oder die Breite W des Endeffektors 13, bestimmt, dass die geometrische Differenz den Roboterpfad beeinträchtigen könnte. In einem in 12 dargestellten Beispiel, wenn H1 – (H2 + H3) > H oder H1 – (H2 + H3) > D ist, wie in 16 dargestellt ist, ist es möglich, dass der Endeffektor 13 des Roboters 10 einen vertieften Abschnitt, der der Differenzabschnitt mit dem existierenden 3D-Modell 301 ist, passiert, bzw. durch den vertieften Abschnitt passt. Deshalb wird bestimmt, dass der kürzeste Pfad neu gefunden werden könnte, und in diesem Fall wird bestimmt, dass der existierende Roboterpfad beeinträchtigt sein könnte.
  • In dem Fall, der zum Beispiel in 13 dargestellt ist, wenn H1 – H4 > H oder H1 – H4 > D ist, wie in 17 dargestellt ist, ist es möglich, dass der Endeffektor 13 des Roboters 10 einen vertieften Abschnitt passiert, der der Differenzabschnitt mit dem existierenden 3D-Modell 301 ist. Ebenso wird in diesem Fall bestimmt, dass der existierende Roboterpfad beeinträchtigt sein könnte (eine Korrektur zu dem kürzesten Pfad möglich ist). Im Gegensatz dazu, in dem Beispiel, das in 14 dargestellt ist, in dem H1 – H5 = 0 gilt, und die vorstehend beschriebene Bedingung nicht erfüllt ist, wird bestimmt, dass der existierende Roboterpfad nicht beeinträchtigt ist (eine Korrektur zu dem kürzesten Pfad unmöglich ist).
  • Somit kann bestimmt werden, ob eine Korrektur zu dem kürzesten Pfad möglich ist. Diese Bestimmung wird hinsichtlich beider Seiten in die X-Richtung von 11 vorgenommen.
  • Als Nächstes wird ein Verfahren zum Bestimmen, ob eine Korrektur zu dem Interferenzvermeidungspfad notwendig ist, beschrieben. 18 ist ein Diagramm, das einen beispielhaften Roboterpfad darstellt, der in dem vorhergehenden Analyseprozess erzeugt wird. Dieser Roboterpfad 403 ist ein Pfad, entlang dem sich der Roboter 10 in der Nähe des vorhandenen 3D-Modells 301 in der Reihenfolge der Lehrpunkte von a, b, c, d, e und f in dem virtuellen Raum bewegt. Ob eine Korrektur zu dem Interferenzvermeidungspfad notwendig ist, wird basierend auf der positionellen Beziehung zwischen dem existierenden Roboterpfad 403 und dem gemessenen 3D-Modell 314 nach einem Ersetzen des existierenden 3D-Modells 301 in 18 mit dem gemessenen 3D-Modell 314, wie in 19 dargestellt ist, bestimmt.
  • In dem in 19 dargestellten Beispiel stellt sich heraus, dass aufgrund der geometrischen Differenz eine Interferenz auf dem Pfad, der durch die Lehrpunkte b, c und d verläuft, auftritt. Das heißt, der Pfad, der durch die Lehrpunkte b, c und d verläuft, ist ein Pfad, der eine Korrektur zu dem Interferenzvermeidungspfad erfordert. Ob eine Korrektur zu dem Interferenzvermeidungspfad möglich ist, kann somit bestimmt werden. Wenn in Schritt S13 von 7 bestimmt ist, dass die geometrische Differenz den existierenden Roboterpfad beeinträchtigen könnte, bestimmt die Lehreinrichtung 20, den Roboterpfad zu korrigieren, und der Prozess geht über zu Schritt S14. Wenn bestimmt, dass der existierende Roboterpfad nicht beeinträchtigt ist, bestimmt die Lehreinrichtung 20, den Roboterpfad nicht zu korrigieren, und geht über zu einem später beschriebenen Schritt S16. In Schritt S14 korrigiert die Lehreinrichtung 20 den Roboterpfad. Hier korrigiert die Lehreinrichtung 20 teilweise den Roboterpfad, der in dem vorhergehenden Analyseprozess erzeugt wird, an dem Abschnitt, der die Korrektur erfordert.
  • Als Erstes wird ein Verfahren zum Korrigieren zu dem kürzesten Pfad beschrieben. 20 ist ein Diagramm, das einen beispielhaften Roboterpfad darstellt, der in dem vorhergehenden Analyseprozess erzeugt ist. Der Roboterpfad 403 ist ein Pfad, entlang dem sich der Roboter 10 in der Nähe des existierenden 3D-Modells 301 in der Reihenfolge der Lehrpunkte a, b, c, d, e und f in dem virtuellen Raum bewegt. Der Roboterpfad 404 ist ein Pfad, entlang dem sich der Roboter 10 in der Nähe des existierenden 3D-Modells 301 in der Reihenfolge der Lehrpunkte x, y und z in dem virtuellen Raum bewegt. Wenn nach dem kürzesten Pfad gesucht wird, wie in 21 dargestellt ist, wird das existierende 3D-Modell 301 in 20 zuerst mit dem gemessenen 3D-Modell 311 ersetzt.
  • Als Nächstes wird ein Umgebungsbereich 501, der sich in einer bestimmten Entfernung von dem gemessenen 3D-Modell 311 befindet, eingestellt und die Lehrpunkte, die sich in dem Umgebungsbereich 501 befinden, werden gesucht. In dem in 21 dargestellten Beispiel befinden sich die Lehrpunkte b, c, d, e und y in dem Umgebungsbereich 501. Obwohl der Umgebungsbereich 501 hier ein rechteckiger parallelflacher Raum ist, ist es nur notwendig, dass der Umgebungsbereich 501 einen Bereich in der Nähe des gemessenen 3D-Modells definiert, und kann zum Beispiel eine sphärische Form aufweisen. Weiterhin wird ein Pfad zu den Lehrpunkten in dem Umgebungsbereich 501 (das heißt ein Pfad, der von außerhalb des Umgebungsbereichs 501 in den Umgebungsbereich 501 eindringt) von außerhalb des Umgebungsbereichs 501 gesucht. In dem in 21 dargestellten Beispiel wird ein Pfad 411 von a zu b und ein Pfad 412 von x zu y gesucht. Auf ähnliche Weise wird ein Pfad von dem Inneren des Umgebungsbereichs 501 nach außerhalb des Umgebungsbereichs 501 gesucht. In dem in 21 dargestellten Beispiel wird ein Pfad 413 von e zu f und ein Pfad 414 von y zu z gesucht.
  • Als Nächstes werden Lehrpunkte gesucht, von denen ein Endpunkt des Pfads, der von außerhalb des Umgebungsbereichs 501 in den Umgebungsbereich 501 eintritt (der Pfad 411 und der Pfad 412 in 21), und der Startpunkt des Pfads, der sich von dem Umgebungsberiech 501 aus dem Umgebungsbereich 501 herausbewegt (der Pfad 413 und der Pfad 414 in 21), nicht die gleichen Koordinaten sind. In dem in 21 dargestellten Beispiel werden der Lehrpunkt b und der Lehrpunkt e gesucht. In 21 weist der Lehrpunkt y bezüglich des Pfads in der Reihenfolge der Lehrpunkte x, y und z beide Funktionen des Startpunkts und des Endpunkts auf, und es kann bestimmt werden, dass der Endeffektor 13 in den Umgebungsberiech 501 nur für einen Moment eindringt und er keine Beziehung mit dem Endeffektor aufweist, der durch den vertieften Abschnitt des 3D-Modells 311 läuft. Deshalb stellt sich heraus, dass es nur notwendig ist, den kürzesten Pfad mit dem Lehrpunkt b als Startpunkt und dem Lehrpunkt e als Endpunkt zu suchen.
  • Ein Suchbaumverfahren kann zum Beispiel für die Suche nach dem kürzesten Pfad verwendet werden. 22 ist ein Diagramm, das ein Verfahren zum Suchen nach einem Pfad durch eine Graphsuche darstellt. Es wird ein Fall betrachtet, in dem der kürzeste Pfad von einem Startpunkt 601 zu einem Zielpunkt 602 in einem Raum 600 zu suchen ist, wie in 22 dargestellt ist. Hindernisse, das heißt nichtdurchlässige Bereiche 603, sind hier in dem Raum 600 vorhanden. Obwohl in 22 ein 2D-Raum dargestellt ist, ist das vorliegende Ausführungsbeispiel ebenso auf einen 3D-Raum anwendbar.
  • Zuerst wird der Raum 600 als Netz-(Raster-)Strukturen gerendert, wie in 22 dargestellt ist. Als Nächstes, wie in 23 dargestellt ist, werden eine Bewegung von dem Startpunkt 601 zu einem benachbarten Raster und eine Bewegung von dem Zielpunkt 602 zu einem benachbarten Raster betrachtet. Wenn die Hindernisse 603 in den benachbarten Rastern vorhanden sind, bewegen sich die Punkte nicht zu diesen Rastern. Bezüglich des Startpunkts 601 in 23 zum Beispiel, da das Hindernis 603 in die Richtungen von C und D unter den acht Richtungen von A bis H vorhanden ist, bewegt sich der Startpunkt 601 nicht in die Richtungen von C und D. Bezüglich des Zielpunkts 602, da kein Hindernis 603 in irgendeinem benachbarten Raster vorhanden ist, kann sich der Zielpunkt 602 in irgendeine von Richtungen A bis H bewegen.
  • Ähnlich, wie in 24 dargestellt ist, bewegt sich der Pfad zu benachbarten Rastern, in denen kein Hindernis vorhanden ist (zum Beispiel Raster 604 und 605), von dem Raster, zu dem diese sich bewegt haben. Dieser Prozess wird sowohl an dem Startpunkt 601 als auch dem Zielpunkt 602 wiederholt und der Pfad, entlang dem die Punkte von dem Startpunkt 601 und von dem Zielpunkt 602 am schnellsten in das gleiche Raster eindringen, ist der kürzeste Pfad. In diesem Beispiel ist der Pfad 610 der kürzeste Pfad, wie in 25 dargestellt ist. Der kürzeste Pfad, der in dem vorstehend beschriebenen Verfahren mit dem Lehrpunkt b in 21 als der Startpunkt und dem Lehrpunkt e in 21 als der Endpunkt gesucht wird, ist der Pfad 415 in 26. Der existierende Roboterpfad kann somit auf den kürzesten Pfad korrigiert werden.
  • Da das vorstehend beschriebene Verfahren für den Pfadsuchalgorithmus verwendet wird, wird, wenn der Umgebungsbereich 501 groß eingestellt ist, die Pfadkorrektur in der großen Entfernung möglich und kann der korrigierte Pfad geglättet bzw. geebnet werden. In diesem Fall jedoch kann einfach geschätzt werden, dass die Prozesszeit lang wird. Deshalb kann der Umgebungsbereich 501 in Abhängigkeit davon eingestellt werden, ob eine Priorität auf die Bearbeitungszeit gelegt wird oder eine Priorität auf die Glättung des Pfads gelegt wird. Obwohl vorstehend der Fall beschrieben wurde, in dem der kürzeste Pfad durch eine Graphsuche gesucht wurde, können ebenso andere Algorithmen (zum Beispiel Stichproben basierte Suche, wie etwa RRT und PRM) verwendet werden.
  • Als Nächstes wird ein Verfahren zum Korrigieren zu dem Interferenzvermeidungspfad beschrieben. Zuerst werden der Startpunkt und der Endpunkt des Interferenzvermeidungspfads gesucht. In dem in 19 dargestellten Beispiel, wie vorstehend beschrieben, ist der Pfad, der durch die Lehrpunkte b, c und d verläuft, ein Pfad, der eine Korrektur auf den Interferenzvermeidungspfad erfordert. Deshalb wird in diesem Fall der Interferenzvermeidungspfad mit dem Lehrpunkt b als Startpunkt und dem Lehrpunkt d als Endpunkt gesucht. Eine Suche des Interferenzvermeidungspfads wird auf die gleiche Weise durchgeführt wie die Suche des kürzesten Pfads, die vorstehend beschrieben wurde. Auf diese Weise, wie in 27 dargestellt ist, wird ein korrigierter Pfad 416 erhalten, bei dem der Lehrpunkt b der Startpunkt ist und der Lehrpunkt d der Endpunkt ist und bei dem eine Interferenz mit dem gemessenen 3D-Modell 314 vermieden wird. Der korrigierte Pfad 416 durchläuft zum Beispiel die Lehrpunkte g und h, die in der Pfadsuche neu eingestellt sind. Wie vorstehend beschrieben, nachdem der Pfad korrigiert ist, um den kürzesten Pfad zu durchlaufen oder um eine Interferenz zu vermeiden, setzt die Lehreinrichtung 20 den Prozess bei Schritt S15 von 7 fort und aktualisiert das virtuelle Robotersystem. Das heißt, die Lehreinrichtung 20 ersetzt das 3D-Modell in dem virtuellen Raum mit dem gemessenen 3D-Modell und aktualisiert das Robotersystem in dem virtuellen Raum.
  • Als Nächstes überträgt die Lehreinrichtung 20 in Schritt S16 die korrigierten Roboterpfaddaten an das reale Robotersystem. Eine Operationsbestätigung durch das reale Robotersystem wird somit durchgeführt. Wie vorstehend beschrieben wird in dem vorliegenden Ausführungsbeispiel der Bewegungspfad des Roboters, der durch das virtuelle Robotersystem in dem virtuellen Raum für die vorhergehende Analyse gelehrt wird, in Abhängigkeit des geometrischen Fehlers des virtuellen 3D-Modells, das das virtuelle Robotersystem konfiguriert, korrigiert. In einem Fall, in dem eine geometrische Differenz in der Struktur des Robotersystems zwischen dem virtuellen Robotersystem und dem realen Robotersystem existiert, wenn der Roboter veranlasst wird, auf dem Operationsprogramm zu arbeiten, das bezüglich des virtuellen Robotersystems erzeugt ist, kann eine Interferenz zwischen dem Roboter und der peripheren Ausrüstung in dem realen Robotersystem auftreten oder es könnte unmöglich sein, eine gewünschte Arbeitszeit zu erreichen.
  • Deshalb wird bei einer Offline-Lehreinrichtung gemäß dem Stand der Technik ein erzeugtes Operationsprogramm an das reale Robotersystem übertragen, wird eine Anpassung in dem realen Robotersystem durchgeführt und wird das Operationsprogramm korrigiert. Wenn das Operationsprogramm, das in dem realen Robotersystem korrigiert ist, an die Lehreinrichtung zurückgegeben wird, kann zwischen dem Roboter und der peripheren Ausrüstung in einer Simulation auf der Lehreinrichtung eine Interferenz oder Ähnliches auftreten. Deshalb wird das Robotersystem in dem virtuellen Raum erneut konstruiert, um das gleiche zu sein, wie das reale Robotersystem, und eine erneute Lehroperation wird durchgeführt.
  • Im Gegensatz dazu, in dem vorliegenden Ausführungsbeispiel, wenn ein geometrischer Fehler in dem virtuellen 3D-Modell aufgetreten ist, wird das Operationsprogramm, das auf dem virtuellen Robotersystem erzeugt wird, automatisch korrigiert und an das reale Robotersystem übertragen. Deshalb ist eine On-site-Anpassung oder eine erneute Lehroperation unter Verwendung des realen Robotersystems unnötig. Somit wird eine angemessene Offline-Lehre erreicht, auch wenn eine geometrische Differenz in einer Struktur zwischen dem System in dem virtuellen Raum und dem realen Robotersystem aufgetreten ist. Ob die geometrische Differenz des 3D-Modells den Roboterpfad, der in dem vorhergehenden Analyseprozess erzeugt wird, beeinträchtigen könnte, das heißt, ob eine Korrektur des Roboterpfads notwendig ist, wird bestimmt, und wenn bestimmt ist, dass eine Korrektur notwendig ist, wird der Roboterpfad korrigiert. Deshalb kann der Korrekturprozess effizient ausgeführt werden.
  • Ob ein geometrischer Fehler in dem virtuellen 3D-Modell aufgetreten ist, wird durch Messen der Form der Struktur des realen Robotersystems unter Verwendung eines visuellen Sensors, eines Entfernungssensors und Ähnlichem bestimmt. Speziell wird ein gemessenes 3D-Modell der Struktur gemäß dem Messergebnis des Sensors erzeugt, werden das erzeugte gemessene 3D-Modell und das virtuelle 3D-Modell verglichen und wird ein geometrischer Fehler des virtuellen 3D-Modells berechnet. Da die geometrische Differenz gemäß dem Messergebnis bestimmt wird, kann ein Vorhandensein der geometrische Differenz in der Struktur des Robotersystems zwischen dem virtuellen Robotersystem und dem realen Robotersystem zuverlässig gekannt werden.
  • Die Geometriemessung durch den Sensor wird nur bezüglich der Struktur des realen Robotersystems entsprechend dem virtuellen 3D-Modell durchgeführt, von dem bestimmt ist, dass ein geometrischer Fehler vorhanden sein könnte. Ob ein geometrischer Fehler vorhanden sein könnte, wird hier in Abhängigkeit davon bestimmt, ob zum Beispiel das virtuelle 3D-Modell ein einfaches Geometriemodell ist, das durch den Benutzer erzeugt ist. Die 3D-Daten, die durch einen Hersteller des Roboters vorbereitet werden, können für den Roboter verwendet werden, wohingegen für die periphere Ausrüstung in manchen Fällen kein 3D-Modell vorbereitet ist, obwohl 2D-Zeichnungen vorhanden sind, da die Anzahl von Teilen, wie etwa Werkzeugen, groß ist. Speziell, da die periphere Ausrüstung an einer Produktionsstätte zugeführt wird, ist ein neues Erzeugen eines 3D-Modells eine signifikant zeitaufwändige Arbeit für einen Operator an der Produktionsstätte, der kein Entwerfen unter Verwendung einer 3D-CAD-Einrichtung durchführt. Deshalb wird in vielen Fällen bezüglich der peripheren Ausrüstung ein einfaches Geometriemodell mit im Wesentlichen gleichen Außenabmessungen wie denen des 3D-Modells erzeugt und als ein Ersatz verwendet. Deshalb existieren verschiedene Arten von Daten, die bezüglich einer Modellgeometrie eine unterschiedliche Zuverlässigkeit aufweisen, in dem virtuellen 3D-Modell, das das virtuelle Robotersystem bildet.
  • In dem vorliegenden Ausführungsbeispiel, wenn das virtuelle Robotersystem konstruiert wird, werden Zuordnungsinformationen (der Geometriekorrekturimplementierungsmarker 211e), die angeben, ob das Modell Daten mit einer hohen Zuverlässigkeit sind, die durch einen Hersteller vorbereitet sind, und Ähnliches, oder ob das Modell Daten mit einer niedrigen Zuverlässigkeit sind, die einfach durch den Benutzer erzeugt werden, zu jedem virtuellen 3D-Modell hinzugefügt. Mit Bezug auf die Zuordnungsinformationen wird ein virtuelles 3D-Modell, in dem ein geometrischer Fehler vorhanden sein kann, unterschieden bzw. bestimmt. Deshalb kann eine Struktur, die eine Geometriemessung erfordert, unter Verwendung des Sensors relativ einfach und angemessen unterschieden bzw. bestimmt werden.
  • Im Vergleich zwischen dem gemessenen 3D-Modell und dem virtuellen 3D-Modell werden diese 3D-Modelle durch Volumenelementdaten ausgedrückt und eine geometrische Differenz zwischen diesen wird bestimmt. Deshalb kann ein geometrischer Vergleich angemessen durchgeführt werden. Ob die geometrische Differenz des 3D-Modells den Roboterpfad, der in dem vorhergehenden Analyseprozess erzeugt ist, beeinträchtigen könnte, das heißt, ob der Roboterpfad korrigiert werden muss, wird in Abhängigkeit davon bestimmt, ob der Roboterpfad auf den kürzesten Bewegungspfad korrigierbar ist, oder ob der Roboterpfad ein Pfad ist, entlang dem eine Interferenz auftreten kann.
  • In dem vorhergehenden Analyseprozess wird eine Offline-Lehre durchgeführt, so dass keine Interferenz zwischen dem Roboter und der peripheren Ausrüstung auf dem virtuellen Robotersystem auftritt und die Arbeitszeit die kürzeste wird, und das Operationsprogramm wird erzeugt. Wenn es jedoch eine geometrische Differenz zwischen dem virtuellen 3D-Modell und der realen Struktur gibt, könnte der kürzeste Pfad zu dem Arbeitspunkt geändert werden (das heißt, der kürzere Pfad könnte gefunden werden). In dem vorliegenden Ausführungsbeispiel, wenn bestimmt ist, dass der Roboterpfad zu dem kürzesten Bewegungspfad korrigierbar ist, aufgrund der geometrische Differenz des 3D-Modells, ist dieser Roboterpfad auf den kürzesten Bewegungspfad korrigierbar. Deshalb kann der kürzeste Pfad zu dem Arbeitspunkt angemessen gelehrt werden, und ein weiteres Verkürzen der Arbeitszeit kann erreicht werden.
  • Zu dieser Zeit wird in Abhängigkeit der Geometrie des virtuellen 3D-Modells, der Geometrie des gemessenen 3D-Modells und der Geometrie des 3D-Modells des Endeffektors des Roboters bestimmt, ob der Roboterpfad auf den kürzesten Bewegungspfad korrigierbar ist. Speziell, wenn die Länge, die durch Subtrahieren der Länge von einer Seite des gemessenen 3D-Modells in die Höhenrichtung auf der Oberfläche, die dem Roboter entgegensteht, von der Länge einer Seite des virtuellen 3D-Modells in die Höhenrichtung auf der Oberfläche, die dem Roboter entgegensteht, erhalten wird, länger ist als die Länge entsprechend dem 3D-Modell des Endeffektors in die Höhenrichtung, wird bestimmt, dass der Roboterpfad auf den kürzesten Bewegungspfad korrigierbar ist. Deshalb, wenn die Struktur des realen Robotersystems einen vertieften Abschnitt aufweist und dessen Größenordnung groß genug ist, damit der Endeffektor diesen durchlaufen kann, wird bestimmt, dass der Pfad, entlang dem der Endeffektor den vertieften Abschnitt durchläuft, der kürzeste Bewegungspfad ist, und der Roboterpfad kann korrigiert werden.
  • Weiterhin, in dem vorliegenden Ausführungsbeispiel, wenn bestimmt ist, dass der Roboterpfad der Pfad ist, entlang dem eine Interferenz in dem realen Robotersystem auftritt, aufgrund der geometrische Differenz des 3D-Modells, wird der Roboterpfad auf einen Interferenzvermeidungspfad korrigiert. Deshalb wird eine Anpassung nach einem Übertragen des Operationsprogramms an das reale Robotersystem unnötig. Zu dieser Zeit wird bestimmt, ob der Roboterpfad ein Pfad ist, entlang dem eine Interferenz aufgrund der Geometrie des gemessenen 3D-Modells und des Roboterpfads auftreten könnte. Wie vorstehend beschrieben ist, kann einfach von der positionellen Beziehung zwischen dem gemessenen 3D-Modell und dem Roboterpfad bestimmt werden, ob eine Interferenz auftreten könnte. Wenn der Pfad auf den kürzesten Bewegungspfad oder den Interferenzvermeidungspfad korrigiert wird, wird der Bewegungspfad des Roboterpfads, der in dem vorhergehenden Analyseprozess erzeugt wird, der in der Nähe des virtuellen 3D-Modells korrigiert werden muss, teilweise korrigiert. Deshalb kann die Korrekturprozesszeit verkürzt werden.
  • Wenn der Pfad auf den kürzesten Bewegungspfad korrigiert wird, wird das virtuelle 3D-Modell durch das gemessene 3D-Modell ersetzt, und ein Umgebungsbereich, der sich an einer vorbestimmten Entfernung von dem gemessenen 3D-Modell befindet, wird in dem virtuellen Raum eingestellt. Dann werden ein Starpunkt und den Endpunkt eines teilweise zu korrigierenden Bewegungspfads von den Lehrpunkten, die in dem Umgebungsbereich vorhanden sind, ausgewählt, und der kürzeste Bewegungspfad, der die ausgewählten Lehrpunkte verbindet, wird gesucht. Der Lehrpunkt, der ein Endpunkt des Bewegungspfads wird, der sich von einem Lehrpunkt außerhalb des Umgebungsbereichs zu dem Lehrpunkt innerhalb des Umgebungsbereichs bewegt, wird als ein Startpunkt ausgewählt, und der Lehrpunkt, der ein Startpunkt des Bewegungspfads wird, der sich von einem Lehrpunkt innerhalb des Umgebungsbereichs zu dem Lehrpunkt außerhalb des Bewegungsbereichs bewegt, wird als ein Endpunkt ausgewählt. Da der Startpunkt und der Endpunkt des Bewegungspfads, der teilweise zu korrigieren ist, somit ausgewählt werden und eine Pfadsuche durchgeführt wird, kann nach einem Pfad gesucht werden, entlang dem der Endeffektor den vertieften Abschnitt des 3D-Modells durchläuft. Deshalb kann nach einem Pfad gesucht werden, um sich kürzer zu dem Arbeitspunkt zu bewegen, als auf dem Roboterpfad, der in dem vorhergehenden Analyseprozess erzeugt ist.
  • Wenn der Pfad zu dem Interferenzvermeidungspfad korrigiert wird, werden der Lehrpunkt als der Startpunkt und der Lehrpunkt als der Endpunkt des Bewegungspfads, entlang dem eine Interferenz aufgetreten ist, als der Startpunkt und der Endpunkt des Bewegungspfads, der teilweise zu korrigieren ist, entsprechend ausgewählt, und ein Interferenzvermeidungspfad, der die ausgewählten Lehrpunkte verbindet, wird gesucht. Deshalb kann der Roboterpfad, entlang dem keine Interferenz auftritt, in dem realen Robotersystem angemessen gelehrt werden. Wie vorstehend beschrieben kann der Roboterpfad, der mit dem Robotersystemmodell, das unter Verwendung des 3D-Modells der Komponente in dem virtuellen Raum für die vorhergehende Analyse konstruiert ist, gelehrt ist, nach Bedarf automatisch korrigiert werden, in Abhängigkeit der Geometrie des 3D-Modells der Komponente, die nach der Konstruktion des realen Robotersystems gemessen wird, so dass der Roboter den kürzesten Pfad durchläuft oder der Roboter den Pfad durchläuft, bei dem eine Interferenz vermieden wird. Deshalb, auch wenn eine geometrische Differenz zwischen der Struktur eines virtuellen Robotersystems und einer Struktur eines realen Robotersystems auftritt, können geeignete Offline-Lehrdaten erzeugt werden und ein Aufwand und eine Zeit für eine erneute Anweisung können eingespart werden.
  • [Modifikation]
  • Die Geometrie der peripheren Struktur des Roboters 10 wird unter Verwendung des Sensorabschnitts 11 in dem vorstehend beschriebenen Ausführungsbeispiel gemessen, aber die Geometrie des Endeffektors 13 des Roboters 10 könnte unter Verwendung des Sensorabschnitts 11 gemessen werden. In diesem Fall können gemessene Werte als die Werte der Höhe H oder der Breite B des Endeffektors 13, die für die Bestimmung verwendet werden, ob eine geometrische Differenz zwischen dem existierenden 3D-Modell und dem gemessenen 3D-Modell den Roboterpfad, der in dem vorhergehenden Analyseprozess erzeugt ist, beeinträchtigen könnte, verwendet werden. Deshalb kann eine noch präzisere Bestimmung durchgeführt werden.
  • In dem vorstehend beschriebenen Ausführungsbeispiel wird die Geometrie der Struktur des realen Robotersystems unter Verwendung des Sensorabschnitts 11 gemessen und eine Differenz in einer Modellgeometrie wird durch Vergleichen des gemessenen 3D-Modells, das gemäß dem Messergebnis erzeugt wird, mit dem existierenden 3D-Modell bestätigt, aber dies ist nicht restriktiv. Zum Beispiel können Informationen über einen geometrischen Fehler des existierenden 3D-Modells (eine geometrische Differenz mit einer entsprechenden Struktur des realen Robotersystems) direkt von außerhalb durch zum Beispiel einen Benutzer eingegeben werden. In diesem Fall werden die Prozesse von Schritten S11 und S12 von 7 unnötig.
  • [Andere Ausführungsbeispiele]
  • Die vorliegende Erfindung ist ebenso auf einen Prozess anwendbar, in dem ein Programm, das eine oder mehrere Funktionen der vorstehend beschriebenen Ausführungsbeispiele durchführt, einem System oder einer Vorrichtung über ein Netzwerk oder ein Speichermedium zugeführt wird, und einer oder mehrere Prozessoren in einem Computer des Systems oder der Vorrichtung das Programm auslesen und ausführen. Weiterhin ist die vorliegende Erfindung in einer Schaltung mit einer oder mehreren Funktionen (zum Beispiel ASIC) implementierbar.
  • Ausführungsbeispiele der vorliegenden Erfindung können ebenso durch einen Computer eines Systems oder einer Vorrichtung, der computerausführbare Anweisungen (zum Beispiel eines oder mehrere Programme), die auf einem Speichermedium (welches vollständiger ebenso als ein ”nichtflüchtiges computerlesbares Speichermedium” bezeichnet wird) aufgezeichnet sind, ausliest und ausführt, um die Funktionen von einem oder mehreren der vorstehend beschriebenen Ausführungsbeispiele durchzuführen, und/oder, der eine oder mehrere Schaltungen (zum Beispiel anwendungsspezifische integrierte Schaltung (ASIC)) zum Durchführen der Funktionen von einem oder mehreren der vorstehend beschriebenen Ausführungsbeispiele aufweist, und durch ein Verfahren, das durch den Computer des Systems oder der Vorrichtung durch zum Beispiel Auslesen und Ausführen der computerausführbaren Anweisungen von dem Speichermedium durchgeführt wird, um die Funktionen von einem oder mehreren der vorstehend beschriebenen Ausführungsbeispiele durchzuführen, und/oder Steuern der einen oder mehreren Schaltungen, um die Funktionen von einem oder mehreren der vorstehend beschriebenen Ausführungsbeispiele durchzuführen, realisiert werden. Der Computer kann einen oder mehrere Prozessoren (zum Beispiel zentrale Verarbeitungseinheit (CPU), Mikroverarbeitungseinheit (MPU)) umfassen und kann ein Netzwerk von separaten Computern oder separaten Prozessoren aufweisen, um die computerausführbaren Anweisungen auszulesen und auszuführen. Die computerausführbaren Anweisungen können dem Computer zum Beispiel von einem Netzwerk oder dem Speichermedium bereitgestellt werden. Das Speichermedium kann zum Beispiel eines oder mehrere einer Festplatte, eines Direktzugriffspeichers (RAM), eines Festwertspeichers (ROM), eines Speichers von verteilten Rechnersystemen, einer optischen Platte (wie etwa eine Compact-Disk (CD), eine ”Digital Versatile Disk” (DVD), oder Blu-ray Disk (BD)TM), einer Flashspeichereinrichtung, einer Speicherkarte und Ähnliches umfassen.
  • Während die vorliegende Erfindung mit Bezug auf beispielhafte Ausführungsbeispiele beschrieben wurde, ist zu verstehen, dass die Erfindung nicht auf die offenbarten beispielhaften Ausführungsbeispiele beschränkt ist. Dem Umfang der folgenden Ansprüche ist die breiteste Interpretation zuzugestehen, so dass all solchen Modifikationen und äquivalenten Strukturen und Funktionen mitumfasst sind.
  • Diese Anmeldung beansprucht der Vorteil der japanischen Patentanmeldung Nr. 2015-019641 , eingereicht am 3. Februar 2015, die hierin in ihrer Gesamtheit durch Bezugnahme miteingeschlossen ist.

Claims (17)

  1. Lehreinrichtung, die in einem virtuellen Raum ein virtuelles Robotersystem konstruiert, in dem ein virtuelles 3D-Modell eines Roboters und ein virtuelles 3D-Modell einer peripheren Struktur des Roboters angeordnet sind, und einen Bewegungspfad des Roboters lehrt, wobei die Einrichtung aufweist: eine Beschaffungseinheit, die dazu konfiguriert ist, Informationen über einen geometrischen Fehler zwischen den virtuellen 3D-Modellen zu beschaffen; und eine Korrektureinheit, die dazu konfiguriert ist, den Bewegungspfad des Roboters gemäß den Informationen, die durch die Beschaffungseinheit beschafft werden, zu korrigieren.
  2. Lehreinrichtung gemäß Anspruch 1, weiterhin mit einer Bestimmungseinheit, die dazu konfiguriert ist, die Notwendigkeit einer Korrektur des Bewegungspfads des Roboters gemäß den Informationen, die durch die Beschaffungseinheit beschafft werden, zu bestimmen, wobei, wenn durch die Bestimmungseinheit bestimmt ist, dass eine Korrektur notwendig ist, die Korrektureinheit den Bewegungspfad des Roboters korrigiert.
  3. Lehreinrichtung gemäß Anspruch 1 oder 2, wobei die Beschaffungseinheit aufweist eine Messeinheit, die dazu konfiguriert ist, eine Geometrie einer Struktur auf einem realen Robotersystem entsprechend dem virtuellen Robotersystem zu messen, eine Erzeugungseinheit, die dazu konfiguriert ist, ein gemessenes 3D-Modell der Struktur gemäß einem Messergebnis der Messeinheit zu erzeugen, und eine Berechnungseinheit, die dazu konfiguriert ist, das gemessene 3D-Modell, das durch die Erzeugungseinheit erzeugt wird, mit dem virtuellen 3D-Modell zu vergleichen und Informationen über einen geometrischen Fehler in dem virtuellen 3D-Modell zu berechnen.
  4. Lehreinrichtung gemäß Anspruch 3, weiterhin mit einer Unterscheidungseinheit, die dazu konfiguriert ist, das virtuelle 3D-Modell, in dem der geometrische Fehler existieren könnte, zu unterscheiden, wobei die Messeinheit eine Geometrie der Struktur auf dem realen Robotersystem entsprechend dem virtuellen 3D-Modell, für das durch die Unterscheidungseinheit unterschieden ist, dass der Geometriefehler vorhanden sein könnte, misst.
  5. Lehreinrichtung gemäß Anspruch 4, wobei das virtuelle 3D-Modell ein 3D-Modell ist, zu dem Zuordnungsinformationen, die eine Zuverlässigkeit einer Modellgeometrie angeben, hinzugefügt sind, und die Unterscheidungseinheit gemäß den Zuordnungsinformationen, die zu dem virtuellen 3D-Modell hinzugefügt sind, unterscheidet, ob der geometrische Fehler aufgetreten ist.
  6. Lehreinrichtung gemäß einem der Ansprüche 3 bis 5, wobei die Berechnungseinheit Volumenelementdaten des gemessenen 3D-Modells mit Volumenelementdaten des virtuellen 3D-Modells vergleicht und Informationen über einen geometrischen Fehler des virtuellen 3D-Modells berechnet.
  7. Lehreinrichtung gemäß einem der Ansprüche 3 bis 6, wobei, wenn basierend auf den Informationen, die durch die Beschaffungseinheit beschafft werden, bestimmt ist, dass der Bewegungspfad des Roboters auf den kürzesten Bewegungspfad korrigierbar ist, oder der Bewegungspfad des Roboters ein Pfad ist, entlang dem eine Interferenz zwischen dem Roboter und der peripheren Struktur in dem realen Robotersystem auftreten kann, bestimmt die Bestimmungseinheit, dass der Bewegungspfad des Roboters korrigiert werden muss.
  8. Lehreinrichtung gemäß Anspruch 7, wobei die Bestimmungseinheit bestimmt, ob der Bewegungspfad des Roboters auf den kürzesten Bewegungspfad korrigierbar ist, basierend auf der Geometrie des virtuellen 3D-Modells, der Geometrie des gemessenen 3D-Modells und der Geometrie des 3D-Modells des Endeffektors des Roboters.
  9. Lehreinrichtung gemäß Anspruch 8, wobei die Bestimmungseinheit bestimmt, dass der Bewegungspfad des Roboters auf den kürzesten Bewegungspfad korrigierbar ist, wenn die Länge, die durch Subtrahieren der Länge einer Seite des gemessenen 3D-Modells in die Höhenrichtung auf der Oberfläche, die dem Roboter entgegensteht, von der Länge einer Seite des virtuellen 3D-Modells in die Höhenrichtung auf der Oberfläche, die dem Roboter entgegensteht, länger ist als die Länge entsprechend dem 3D-Modell des Endeffektors in die Höhenrichtung.
  10. Lehreinrichtung gemäß Anspruch 7, wobei die Bestimmungseinheit bestimmt, ob der Bewegungspfad des Roboters ein Pfad ist, entlang dem eine Interferenz auftreten kann, in Abhängigkeit der Geometrie des gemessenen 3D-Modells und des Bewegungspfads des Roboters.
  11. Lehreinrichtung gemäß einem der Ansprüche 7 bis 10, wobei die Korrektureinheit den Bewegungspfad in der Nähe des virtuellen 3D-Modells des Bewegungspfads des Roboters partiell korrigiert.
  12. Lehreinrichtung gemäß Anspruch 11, wobei die Korrektureinheit aufweist eine Einstellungseinheit, die dazu konfiguriert ist, das virtuelle 3D-Modell in das gemessene 3D-Modell umzuwandeln und einen Umgebungsbereich einzustellen, der sich an einer vorbestimmten Entfernung von dem gemessenen 3D-Modell in dem virtuellen Raum befindet, wenn bestimmt ist, dass der Bewegungspfad des Roboters auf den kürzesten Bewegungspfad durch die Bestimmungseinheit korrigierbar ist, eine erste Auswahleinheit, die dazu konfiguriert ist, einen Startpunkt und einen Endpunkt des Bewegungspfads, der teilweise zu korrigieren ist, unter Lehrpunkten auszuwählen, die in dem Umgebungsbereich, der durch die Einstelleinheit eingestellt ist, vorhanden sind, und eine erste Sucheinheit, die dazu konfiguriert ist, den kürzesten Bewegungspfad zu suchen, der die Lehrpunkte, die durch die erste Auswahleinheit ausgewählt werden, verbindet.
  13. Lehreinrichtung gemäß Anspruch 12, wobei die erste Auswahleinheit als den Startpunkt den Lehrpunkt auswählt, der ein Endpunkt des Bewegungspfads wird, der sich von einem Lehrpunkt außerhalb des Umgebungsbereichs zu dem Lehrpunkt innerhalb des Umgebungsbereichs bewegt, und als den Endpunkt den Lehrpunkt auswählt, der ein Startpunkt des Bewegungspfads wird, der sich von einem Lehrpunkt innerhalb des Umgebungsbereichs zu dem Lehrpunkt außerhalb des Umgebungsbereichs bewegt.
  14. Lehreinrichtung gemäß Anspruch 11, wobei die Korrektureinheit aufweist eine zweite Auswahleinheit, die dazu konfiguriert ist, den Lehrpunkt als den Startpunkt und den Lehrpunkt als den Endpunkt des Bewegungspfads, entlang dem eine Interferenz aufgetreten ist, als den Startpunkt und den Endpunkt des Bewegungspfads, der teilweise zu korrigieren ist, entsprechend auszuwählen, wenn durch die Bestimmungseinheit bestimmt ist, dass der Bewegungspfad des Roboters ein Pfad ist, entlang dem die Interferenz auftreten kann, und eine zweite Sucheinheit, die dazu konfiguriert ist, einen Interferenzvermeidungspfad zu suchen, der die Lehrpunkte, die durch die zweite Auswahleinheit ausgewählt werden, verbindet.
  15. Lehrverfahren, mit: Konstruieren, in einem virtuellen Raum, eines virtuellen Robotersystems, in dem ein virtuelles 3D-Modell eines Roboters und ein virtuelles 3D-Modell einer peripheren Struktur des Roboters angeordnet sind; Beschaffen, wenn der Bewegungspfad des Roboters gelehrt wird, von Informationen über einen geometrischen Fehler des virtuellen 3D-Modells; und Korrigieren des Bewegungspfads des Roboters gemäß den beschafften Informationen.
  16. Robotersystem, mit: einem Roboter; der Lehreinrichtung gemäß einem der Ansprüche 1 bis 14; und einer Steuerungseinrichtung, die dazu konfiguriert ist, den Roboter gemäß einem Bewegungspfad des Roboters, der durch die Lehreinrichtung gelehrt wird, zu betreiben.
  17. Programm, das dazu konfiguriert ist, einen Computer zu veranlassen, als jede Einheit der Lehreinrichtung gemäß einem der Ansprüche 1 bis 14 zu funktionieren.
DE112016000582.2T 2015-02-03 2016-01-27 Lehreinrichtung, Lehrverfahren und Robotersystem Active DE112016000582B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2015019641A JP6497953B2 (ja) 2015-02-03 2015-02-03 オフライン教示装置、オフライン教示方法及びロボットシステム
JP2015-019641 2015-02-03
PCT/JP2016/000415 WO2016125464A1 (en) 2015-02-03 2016-01-27 Teaching device, teaching method, and robot system

Publications (2)

Publication Number Publication Date
DE112016000582T5 true DE112016000582T5 (de) 2018-01-04
DE112016000582B4 DE112016000582B4 (de) 2021-08-26

Family

ID=56563819

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016000582.2T Active DE112016000582B4 (de) 2015-02-03 2016-01-27 Lehreinrichtung, Lehrverfahren und Robotersystem

Country Status (5)

Country Link
US (3) US10556342B2 (de)
JP (1) JP6497953B2 (de)
CN (2) CN107206594B (de)
DE (1) DE112016000582B4 (de)
WO (1) WO2016125464A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019001252A1 (de) 2018-03-08 2019-09-12 Sew-Eurodrive Gmbh & Co Kg Verfahren zum Betreiben eines Systems und System zur Durchführung des Verfahrens

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6497953B2 (ja) * 2015-02-03 2019-04-10 キヤノン株式会社 オフライン教示装置、オフライン教示方法及びロボットシステム
JP7009051B2 (ja) * 2016-08-04 2022-01-25 キヤノン株式会社 レイアウト設定方法、制御プログラム、記録媒体、制御装置、部品の製造方法、ロボットシステム、ロボット制御装置、情報処理方法、情報処理装置
JP2018047509A (ja) * 2016-09-20 2018-03-29 ファナック株式会社 ロボットシミュレーション装置
EP3338969A3 (de) * 2016-12-22 2018-07-25 Seiko Epson Corporation Steuerungssystem, roboter und robotersystem
JP6469162B2 (ja) * 2017-04-17 2019-02-13 ファナック株式会社 ロボットのオフライン教示装置
FR3067957B1 (fr) 2017-06-26 2020-10-23 Capsix Dispositif de gestion des deplacements d'un robot et robot de soin associe
JP7066357B2 (ja) 2017-08-31 2022-05-13 川崎重工業株式会社 ロボットシステム及びその運転方法
JP7199073B2 (ja) * 2017-10-20 2023-01-05 株式会社キーレックス 垂直多関節ロボットの教示データ作成システム
JP6942199B2 (ja) * 2017-12-28 2021-09-29 株式会社Fuji 情報提供装置、情報提供方法及びプログラム
CN108573631A (zh) * 2018-06-26 2018-09-25 江苏汇博机器人技术股份有限公司 机器人虚拟实操平台
JP6767436B2 (ja) * 2018-07-06 2020-10-14 ファナック株式会社 自動機械及び制御装置
US20210268646A1 (en) * 2018-07-30 2021-09-02 Sony Corporation Robot, method for controlling robot, and computer program
WO2020037496A1 (zh) * 2018-08-21 2020-02-27 西门子股份公司 离线编程程序的校正方法、装置、系统、介质和终端
JP7125745B2 (ja) * 2018-09-14 2022-08-25 学校法人早稲田大学 自律型作業支援ロボットの環境適応性強化システム、動作シミュレーション装置及びそのプログラム
US10776949B2 (en) 2018-10-30 2020-09-15 Liberty Reach Inc. Machine vision-based method and system for measuring 3D pose of a part or subassembly of parts
JP2021058972A (ja) * 2019-10-08 2021-04-15 ファナック株式会社 ロボットシステム
JP7359657B2 (ja) 2019-11-07 2023-10-11 ファナック株式会社 ロボットの位置または姿勢の修正方法を判定する制御装置
CN111046597B (zh) * 2020-01-20 2023-07-21 兰州理工大学 基于数字孪生三维模型3d打印机建模方法及模型系统
WO2021166842A1 (ja) * 2020-02-21 2021-08-26 ファナック株式会社 バリ取り装置、及び制御システム
US11498213B2 (en) 2020-09-23 2022-11-15 Applied Materials, Inc. Robot joint space graph path planning and move execution
CN113172602A (zh) * 2021-01-28 2021-07-27 朱少强 一种基于vr技术的佩戴式仿生机械手
JP2022137797A (ja) * 2021-03-09 2022-09-22 オムロン株式会社 安全検証装置、安全検証方法、およびプログラム
JP2022180964A (ja) * 2021-05-25 2022-12-07 株式会社ビジュアルジャパン 情報処理装置
JP7256932B1 (ja) * 2022-08-24 2023-04-12 ファナック株式会社 教示装置
CN116197918B (zh) * 2023-05-05 2023-07-21 北京华晟经世信息技术股份有限公司 基于动作记录分析的机械手控制系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02148307A (ja) * 1988-11-30 1990-06-07 Kobe Steel Ltd 工業用ロボットの教示データ作成装置
JPH03113512A (ja) * 1989-09-27 1991-05-14 Komatsu Ltd 産業用ロボットの教示方法
JPH0519840A (ja) * 1991-07-12 1993-01-29 Fanuc Ltd オフライン検証方式
JPH05119824A (ja) * 1991-10-28 1993-05-18 Toshiba Corp ロボツトタスクプランニング装置
JPH10128684A (ja) * 1996-10-30 1998-05-19 Asahi Sanac Kk ロボットの動作プログラム作成方法及びその作成装置
JP2003114706A (ja) 2001-10-05 2003-04-18 Matsuura Tekkosho:Kk 多関節汎用ロボットモデルの表示システム
JP2003150219A (ja) 2001-11-12 2003-05-23 Fanuc Ltd 作業機械のシミュレーション装置
JP2006048244A (ja) * 2004-08-02 2006-02-16 Fanuc Ltd 加工プログラム作成装置
JP2007280251A (ja) 2006-04-11 2007-10-25 Yaskawa Electric Corp 移動ロボット
JP5137537B2 (ja) * 2007-11-28 2013-02-06 三菱電機株式会社 ロボットの作業動作最適化装置
JP5173958B2 (ja) * 2009-07-29 2013-04-03 株式会社東芝 移動体姿勢生成方法および移動体姿勢生成装置
JP5715809B2 (ja) * 2010-03-29 2015-05-13 株式会社ダイヘン ロボットの作業プログラム作成方法、ロボットの作業プログラム作成装置、及びロボット制御システム
SE1050763A1 (sv) 2010-07-08 2010-07-12 Abb Research Ltd En metod för att kalibrera en mobil robot
WO2013057192A1 (de) * 2011-10-21 2013-04-25 Siemens Aktiengesellschaft Verfahren zur vermessung und visualisierung der räumlichen verhältnisse einer fertigungsstätte
JP5845212B2 (ja) * 2013-06-28 2016-01-20 ファナック株式会社 視覚センサ及び力センサを備えたバリ取り装置
JP2015019641A (ja) 2013-07-23 2015-02-02 ユーハ味覚糖株式会社 果実又は野菜、及びそれを含有する食品
CN103835719B (zh) * 2014-02-27 2015-12-30 中国矿业大学 一种基于虚拟轨迹控制的采煤机自适应截割方法
JP6497953B2 (ja) 2015-02-03 2019-04-10 キヤノン株式会社 オフライン教示装置、オフライン教示方法及びロボットシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019001252A1 (de) 2018-03-08 2019-09-12 Sew-Eurodrive Gmbh & Co Kg Verfahren zum Betreiben eines Systems und System zur Durchführung des Verfahrens

Also Published As

Publication number Publication date
US20180021952A1 (en) 2018-01-25
DE112016000582B4 (de) 2021-08-26
US20200139547A1 (en) 2020-05-07
JP2016140958A (ja) 2016-08-08
JP6497953B2 (ja) 2019-04-10
WO2016125464A1 (en) 2016-08-11
US10556342B2 (en) 2020-02-11
CN111844053A (zh) 2020-10-30
CN107206594B (zh) 2020-08-11
US20230060472A1 (en) 2023-03-02
CN107206594A (zh) 2017-09-26
US11498214B2 (en) 2022-11-15
CN111844053B (zh) 2023-11-17

Similar Documents

Publication Publication Date Title
DE112016000582B4 (de) Lehreinrichtung, Lehrverfahren und Robotersystem
DE102015107436B4 (de) Lernfähige Bahnsteuerung
DE102013021917B4 (de) Robotersystemanzeigevorrichtung
DE112011105151B4 (de) Roboterkontrollvorrichtung
DE102015010124B4 (de) Roboterprogramm-Erzeugungsvorrichtung, die Roboterprogramm zum Reduzieren von Stössen der Gelenke des Roboters erzeugt
EP3165978A1 (de) Absolutes robotergestütztes positionierungsverfahren
DE102015015093B4 (de) Roboterprogrammiervorrichtung zum Instruieren eines Roboters für eine Bearbeitung
DE102020110252B4 (de) Vibrationsanzeigeeinrichtung, Betriebsprogrammerstellungseinrichtung und System
DE102012202609A1 (de) Electronic system and method for compensating the dimensional accuracy of a 4-axis cnc machining system using global and local offsets
DE112014000700T5 (de) Interferenzprüfgerät
DE102017102260A1 (de) Roboterprogrammiervorrichtung zum Lehren eines Roboterprogramms
DE102018008370A1 (de) Lebensdauervorhersagegerät
DE102012024934B4 (de) Verfahren und Programmiersystem zur erstmaligen Erstellung eines auf einem Messroboter ausführbaren Messprogramms für die Messung eines neuen Messobjekts
DE102015009210A1 (de) Numerische Steuerung mit Unterstützung eines linkshändigen Koordinatensystems
EP1330686B1 (de) Verfahren zum generieren eines messprogrammes für ein koordinatenmessgerät
DE102012022190B4 (de) Inverse Kinematik
DE102016212911A1 (de) Verfahren und Vorrichtung zum Steuern einer Roboterbewegung eines Roboters anhand einer zweiten Trajektorie
DE102018205443A1 (de) Steuerungssystem einer Werkzeugmaschine
DE102005040714B4 (de) Verfahren und System zur Erstellung eines Bewegungsablaufes für einen Roboter
DE112019007750T5 (de) Umgebungskarten- Erzeugungsvorrichtung und -Verfahren, Vorrichtung zum Schätzen der lokalen Position, und autonomer beweglicher Körper
DE102019207489A1 (de) System zur Anzeige virtueller Objekte
DE102022130341A1 (de) Punktmengen-störungsprüfung
DE102007007574B3 (de) Verfahren zum Ermitteln von Messstellen
WO2016206796A1 (de) Verbesserung der temperaturdriftkompensation durch einlernen der restdrift
EP3310536A1 (de) Verbesserung der temperaturdriftkompensation durch kalibrierung am bauteil und einlernen der parametersätze

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final