DE112021004097T5 - Vorrichtung zum erfassen einer positionsbeziehung zwischen roboter und arbeitsmaschine, steuervorrichtung, system, verfahren und computerprogramm - Google Patents

Vorrichtung zum erfassen einer positionsbeziehung zwischen roboter und arbeitsmaschine, steuervorrichtung, system, verfahren und computerprogramm Download PDF

Info

Publication number
DE112021004097T5
DE112021004097T5 DE112021004097.9T DE112021004097T DE112021004097T5 DE 112021004097 T5 DE112021004097 T5 DE 112021004097T5 DE 112021004097 T DE112021004097 T DE 112021004097T DE 112021004097 T5 DE112021004097 T5 DE 112021004097T5
Authority
DE
Germany
Prior art keywords
robot
coordinate system
work machine
orientation
tip portion
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.)
Pending
Application number
DE112021004097.9T
Other languages
English (en)
Inventor
Toshiro Watanabe
Masahiro Morioka
Kenichiro Abe
Seigo Kato
Hiroyuki Uchida
Zheng TONG
Masanori Itou
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.)
Fanuc Corp
Original Assignee
Fanuc Corp
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 Fanuc Corp filed Critical Fanuc Corp
Publication of DE112021004097T5 publication Critical patent/DE112021004097T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • 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/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • 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/425Teaching successive positions by numerical control, i.e. commands being entered to control the positioning servo of the tool head or end effector
    • 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/37Measurements
    • G05B2219/37284Capacitive 3-D proximity sensor
    • 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/40582Force sensor in robot fixture, base
    • 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/405866-DOF force sensor
    • 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/40599Force, torque sensor integrated in joint

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

Eine Technik zum leichteren Erfassen von Daten, die eine Positionsbeziehung zwischen einem Roboterkoordinatensystem und einem Arbeitsmaschinenkoordinatensystem angeben, ist erforderlich. Vorrichtung 60 zum Erfassen einer Positionsbeziehung zwischen einem Roboterkoordinatensystem, das in einem Roboter 12 eingestellt ist, und einem Arbeitsmaschinenkoordinatensystem, das in einer Arbeitsmaschine eingestellt ist, die außerhalb des Roboters 12 installiert ist, umfasst eine Positionsdatenerfassungseinheit 62, die, wenn ein Fingerteil des Roboters 12 in einer vorbestimmten Position und Haltung in Bezug auf die Arbeitsmaschine platziert ist, erste Positionsdaten, die die Position und Haltung des Fingerteils in Bezug auf das Roboterkoordinatensystem angeben, und zweite Positionsdaten, die die Position und die Haltung des Fingerteils in Bezug auf das Arbeitsmaschinenkoordinatensystem angeben, erfasst; und eine Positionsbeziehungserfassungseinheit 64, die dritte Positionsdaten, die die Positionsbeziehung angeben, unter Verwendung der ersten Positionsdaten und der zweiten Positionsdaten erfasst.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft eine Vorrichtung, eine Steuervorrichtung, ein System, ein Verfahren und ein Computerprogramm zum Erfassen einer Positionsbeziehung zwischen einem Roboter und einer Arbeitsmaschine.
  • STAND DER TECHNIK
  • Bei einer bekannten Technik berührt ein Roboter eine Mehrzahl von Punkten, die auf eine Arbeitsmaschine eingestellt sind, die ein Werkstück hält, um eine relative Position zwischen der Arbeitsmaschine und dem Roboter zu erfassen (z. B. Patentliteratur 1).
  • [ZITIERUNGSLISTE]
  • [PATENTLITERATUR]
  • Patentliteratur 1: JP 2010-76054 A
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • [TECHNISCHE AUFGABE]
  • Es besteht ein Bedarf an einer Technik, die es ermöglicht, Daten, die die Positionsbeziehung zwischen einem Roboter und einer Arbeitsmaschine angeben, leichter zu erfassen.
  • [LÖSUNG DER AUFGABE]
  • Gemäß einem Aspekt der vorliegenden Offenbarung umfasst eine Vorrichtung, die konfiguriert ist, um eine Positionsbeziehung zwischen einem Roboterkoordinatensystem, das für einen Roboter eingestellt ist, und einem Arbeitsmaschinenkoordinatensystem, das für eine Arbeitsmaschine eingestellt ist, die außerhalb des Roboters angeordnet ist, zu erfassen, einen Positionsdatenerfassungsabschnitt, der konfiguriert ist, um erste Positionsdaten, die eine Position und Ausrichtung eines Handspitzenabschnitts des Roboters in Bezug auf das Roboterkoordinatensystem angeben, und zweite Positionsdaten, die eine Position und Ausrichtung des Handspitzenabschnitts in Bezug auf das Arbeitsmaschinenkoordinatensystem angeben, zu erfassen, wenn der Handspitzenabschnitt in einer vorbestimmten Position und Ausrichtung in Bezug auf die Arbeitsmaschine angeordnet ist, und einen Positionsbeziehungserfassungsabschnitt, der konfiguriert ist, um die Positionsbeziehung basierend auf den ersten Positionsdaten und den zweiten Positionsdaten zu erfassen.
  • Gemäß einem weiteren Aspekt der vorliegenden Offenbarung ist eine Vorrichtung, die konfiguriert ist, um eine Positionsbeziehung zwischen einem Roboter und einer Arbeitsmaschine zu erfassen, konfiguriert, um die Positionsbeziehung basierend auf einer Position und Ausrichtung des Roboters in Bezug auf die Arbeitsmaschine zu erfassen, wenn der Roboter mit einem Kontaktabschnitt in Kontakt kommt, der in einer bekannten Position in Bezug auf die Arbeitsmaschine bereitgestellt ist.
  • Gemäß noch einem weiteren Aspekt der vorliegenden Offenbarung umfasst ein Verfahren zum Erfassen einer Positionsbeziehung zwischen einem Roboterkoordinatensystem, das für einen Roboter eingestellt ist, und einem Arbeitsmaschinenkoordinatensystem, das für eine Arbeitsmaschine eingestellt ist, die außerhalb des Roboters angeordnet ist, das Erfassen erster Positionsdaten, die eine Position und Ausrichtung eines Handspitzenabschnitts des Roboters in Bezug auf das Roboterkoordinatensystem angeben, und zweiter Positionsdaten, die eine Position und Ausrichtung des Handspitzenabschnitts in Bezug auf das Arbeitsmaschinenkoordinatensystem angeben, wenn der Handspitzenabschnitt in einer vorbestimmten Position und Ausrichtung in Bezug auf die Arbeitsmaschine angeordnet ist, und das Erfassen der Positionsbeziehung basierend auf den ersten Positionsdaten und den zweiten Positionsdaten.
  • Gemäß noch einem weiteren Aspekt der vorliegenden Offenbarung umfasst ein Verfahren zum Erfassen einer Positionsbeziehung zwischen einem Roboter und einer Arbeitsmaschine das Erfassen der Positionsbeziehung basierend auf einer Position und Ausrichtung des Roboters in Bezug auf die Arbeitsmaschine, wenn der Roboter mit einem Kontaktabschnitt in Kontakt kommt, der in einer bekannten Position in Bezug auf die Arbeitsmaschine bereitgestellt ist.
  • Gemäß noch einem weiteren Aspekt der vorliegenden Offenbarung umfasst ein Computerprogramm, das konfiguriert ist, um, um eine Positionsbeziehung zwischen einem Roboterkoordinatensystem, das für einen Roboter eingestellt ist, und einem Arbeitsmaschinenkoordinatensystem, das für eine Arbeitsmaschine eingestellt ist, die außerhalb des Roboters angeordnet ist, zu erfassen, einen Prozessor zu veranlassen, als ein Positionsdatenerfassungsabschnitt zu fungieren, der konfiguriert ist, um erste Positionsdaten, die eine Position und Ausrichtung eines Handspitzenabschnitts des Roboters in Bezug auf das Roboterkoordinatensystem angeben, und zweite Positionsdaten, die eine Position und Ausrichtung des Handspitzenabschnitts in Bezug auf das Arbeitsmaschinenkoordinatensystem angeben, zu erfassen, wenn der Handspitzenabschnitt in einer vorbestimmten Position und Ausrichtung in Bezug auf die Arbeitsmaschine angeordnet ist, und einen Positionsbeziehungserfassungsabschnitt, der konfiguriert ist, um die Positionsbeziehung basierend auf den ersten Positionsdaten und den zweiten Positionsdaten zu erfassen.
  • [VORTEILHAFTE WIRKUNG DER ERFINDUNG]
  • Gemäß der vorliegenden Offenbarung können dritte Positionsdaten, die eine Positionsbeziehung zwischen einem Roboterkoordinatensystem (d. h. einem Roboter) und einem Arbeitsmaschinenkoordinatensystem (d. h. einer Arbeitsmaschine) angeben, erfasst werden, wobei ein Handspitzenabschnitt des Roboters in einer Position und in einer Ausrichtung angeordnet ist. Somit kann der Prozess des Erhaltens der Positionsbeziehung zwischen dem Roboterkoordinatensystem und dem Arbeitsmaschinenkoordinatensystem weitgehend vereinfacht werden.
  • Figurenliste
    • 1 ist eine perspektivische Ansicht eines Systems gemäß einer Ausführungsform.
    • 2 ist ein Blockdiagramm des in 1 veranschaulichten Systems.
    • 3 ist eine vergrößerte Ansicht eines Handspitzenabschnitts eines in 1 veranschaulichten Roboters.
    • 4 ist eine vergrößerte Ansicht eines in 1 veranschaulichten Kontaktabschnitts.
    • 5 ist eine vergrößerte Ansicht eines Hauptabschnitts von 1.
    • 6 veranschaulicht einen Zustand, in dem der Handspitzenabschnitt des Roboters in Kontakt mit dem in 4 veranschaulichten Kontaktabschnitt ist.
    • 7 ist eine perspektivische Ansicht eines Systems gemäß einer weiteren Ausführungsform.
    • 8 ist ein Blockdiagramm des in 7 veranschaulichten Systems.
    • 9 ist ein Blockdiagramm eines Systems gemäß noch einer weiteren Ausführungsform.
    • 10 ist ein Blockdiagramm eines Systems gemäß noch einer weiteren Ausführungsform.
    • 11 veranschaulicht einen Kontaktdetektionssensor gemäß einer Ausführungsform.
    • 12 ist ein Ablaufdiagramm, das ein Beispiel eines Betriebsablaufs des in 10 veranschaulichten Systems veranschaulicht.
    • 13 ist ein Blockdiagramm eines Systems gemäß noch einer weiteren Ausführungsform.
    • 14 ist ein Blockdiagramm eines Systems gemäß noch einer weiteren Ausführungsform.
    • 15 ist ein Blockdiagramm eines Systems gemäß noch einer weiteren Ausführungsform.
    • 16 veranschaulicht einen Positionsdetektionssensor gemäß einer Ausführungsform.
    • 17 ist eine perspektivische Ansicht eines Systems gemäß noch einer weiteren Ausführungsform.
    • 18 ist ein Blockdiagramm des in 17 veranschaulichten Systems.
    • 19 ist eine vergrößerte Ansicht eines Hauptabschnitts von 17.
    • 20 ist eine vergrößerte perspektivische Ansicht eines in 17 veranschaulichten Werkstücks.
    • 21 ist eine Querschnittsansicht des Hauptabschnitts von 17.
    • 22 ist eine Vorderansicht eines Werkstückhaltemechanismus und eines in 17 veranschaulichten Kontaktabschnitts.
    • 23 ist eine Querschnittsansicht, die einen Zustand veranschaulicht, in dem ein Werkstück gemäß einer weiteren Ausführungsform durch eine Roboterhand gegriffen und durch den in 17 veranschaulichten Werkstückhaltemechanismus gehalten wird.
    • 24 ist eine vergrößerte perspektivische Ansicht des in 23 veranschaulichten Werkstücks und der Roboterhand, die das Werkstück greift.
  • BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
  • Im Folgenden werden Ausführungsformen der vorliegenden Offenbarung unter Bezugnahme auf die Zeichnungen ausführlich beschrieben. In verschiedenen nachstehend beschriebenen Ausführungsformen werden die gleichen Elemente durch die gleichen Bezugszeichen bezeichnet, und eine redundante Beschreibung wird weggelassen. Zunächst wird ein System 10 gemäß einer Ausführungsform unter Bezugnahme auf 1 und 2 beschrieben. Das System 10 beinhaltet einen Roboter 12, eine Arbeitsmaschine 14 und eine Steuervorrichtung 16.
  • In der vorliegenden Ausführungsform ist der Roboter 12 ein vertikaler Gelenkroboter (z. B. ein Sechsachsenroboter) und beinhaltet eine Roboterbasis 18, einen Schwenkkörper 20, einen Roboterarm 22, ein Handgelenk 24 und einen Endeffektor 26. Die Roboterbasis 18 ist an einem Stützmechanismus 28 befestigt. Der Stützmechanismus 28 kann zum Beispiel eine Plattform, die an einem Boden einer Arbeitszelle befestigt ist, eine Fahrvorrichtung, die innerhalb der Arbeitszelle selbstangetrieben wird, oder ein Handwagen, der durch einen Bediener manuell bewegt wird, sein.
  • Der Schwenkkörper 20 ist an der Roboterbasis 18 montiert, um um eine vertikale Achse schwenkbar zu sein. Der Roboterarm 22 beinhaltet einen unteren Arm 30, der an dem Schwenkkörper 20 bereitgestellt ist, um um eine horizontale Achse drehbar zu sein, und einen oberen Arm 32, der an einem vorderen Endabschnitt des unteren Arms 30 drehbar bereitgestellt ist. Das Handgelenk 24 ist an einem vorderen Endabschnitt des oberen Arms 32 drehbar bereitgestellt und dreht den Endeffektor 26 um eine Handgelenkachse A1.
  • Wie in 3 veranschaulicht, ist der Endeffektor 26 in der vorliegenden Ausführungsform eine Roboterhand, die ein Werkstück WP1 greifen kann. Insbesondere beinhaltet der Endeffektor 26 eine Basis 34, eine Mehrzahl von Klauenteilen 36, die an der Basis 34 befestigt sind, um geöffnet und geschlossen werden zu können, und einen Klauenteiltreiber (nicht veranschaulicht), der die Klauenteile 36 antreibt.
  • Die Basis 34 ist lösbar an dem vorderen Endabschnitt (was als ein Handgelenkflansch bekannt ist) des Handgelenks 24 befestigt. Die Klauenteile 36 sind an der Basis 34 bereitgestellt, um in Richtungen aufeinander zu und voneinander weg bewegbar zu sein. Jedes der Klauenteile 36 beinhaltet auf der Innenseite eine Greiffläche 36a und eine Eingriffsfläche 36b. Die Greiffläche 36a ist eine im Wesentlichen flache Fläche. Die Eingriffsfläche 36b ist eine flache Fläche, die im Wesentlichen orthogonal zu der Greiffläche 36a ist und sich von einer apikalen Kante der Eingriffsfläche 36b nach innen erstreckt. Der Klauenteiltreiber ist beispielsweise ein Luftzylinder oder ein Motor und öffnet und schließt die Klauenteile 36 als Reaktion auf einen Befehl von der Steuervorrichtung 16, und somit kann der Endeffektor 26 das Werkstück WP1 greifen und freigeben.
  • In der vorliegenden Ausführungsform ist das Werkstück WP1 ein im Wesentlichen rechteckiges Parallelepipedelement, das eine untere Fläche B1, eine obere Fläche B2, Seitenflächen B3, B4 und B5 beinhaltet. Die untere Fläche B 1 und die obere Fläche B2 sind flache Flächen, die im Wesentlichen parallel zueinander sind. Die Seitenflächen B3 und B4 sind flache Flächen, die so angeordnet sind, dass sie einander zugewandt sind, während sie im Wesentlichen parallel zueinander sind, und orthogonal zu der unteren Fläche B 1 und der oberen Fläche B2 sind. Die Seitenfläche B5 ist eine flache Fläche, die orthogonal zu der unteren Fläche B 1, der oberen Fläche B2 und den Seitenflächen B3 und B4 ist.
  • Der Endeffektor 26 greift das Werkstück WP1 an einer vorbestimmten Greifposition. Wenn der Endeffektor 26 das Werkstück WP1 greift, liegen die Greifflächen 36a des Paars von Klauenteilen 36 an den Seitenflächen B3 und B4 an jeweiligen vorbestimmten Positionen in den Seitenflächen B3 und B4 des Werkstücks WP1 an, während die Eingriffsflächen 36b des Paars von Klauenteilen 36 mit der oberen Fläche B2 an jeweiligen vorbestimmten Positionen in der oberen Fläche B2 des Werkstücks WP1 in Eingriff stehen.
  • Das Werkstück WP1, das von dem Endeffektor 26 an der vorbestimmten Greifposition gegriffen wird, kann als mit dem Endeffektor 26 integriert betrachtet werden, d. h. als Teil des Endeffektors 26. In der vorliegenden Ausführungsform werden der vordere Endabschnitt (Handgelenkflansch) des Handgelenks 24, der Endeffektor 26 und das Werkstück WP1, das von dem Endeffektor 26 an der vorbestimmten Greifposition gegriffen wird, als ein Handspitzenabschnitt 40 des Roboters 12 bezeichnet.
  • Eine Mehrzahl von Servomotoren 38 (2) ist in jeweiligen Komponenten (der Roboterbasis 18, dem Schwenkkörper 20, dem unteren Arm 30, dem oberen Arm 32 und dem Handgelenk 24) des Roboters 12 integriert. Diese Servomotoren 38 drehen jeweilige bewegliche Elemente (den Schwenkkörper 20, den unteren Arm 30, den oberen Arm 32 und das Handgelenk 24) des Roboters 12 um eine Antriebswelle als Reaktion auf einen Befehl von der Steuervorrichtung 16.
  • Die Arbeitsmaschine 14 ist außerhalb des Roboters 12 angeordnet. Die Arbeitsmaschine 14 ist beispielsweise eine Werkstückhaltebasis, eine Arbeitstischvorrichtung oder eine Werkzeugmaschine. Die Werkstückhaltebasis ist an der Arbeitszelle befestigt. Das Werkstück ist während der Arbeit an der Werkstückhaltebasis befestigt. Die Arbeitstischvorrichtung beinhaltet einen Arbeitstisch, an dem das Werkstück befestigt ist, und einen Bewegungsmechanismus (wie etwa einen Kugelgewindemechanismus), der den Arbeitstisch bewegt.
  • Die Werkzeugmaschine ist eine Drehmaschine, eine Fräsmaschine, ein Bearbeitungszentrum, das eine Mehrzahl von Arten von Prozessen ausführen kann, oder dergleichen, und beinhaltet einen Werkstückhaltemechanismus (wie etwa eine Spannvorrichtung, einen Arbeitstisch oder einen Spannmechanismus) zum Befestigen eines Werkstücks, ein Werkzeug, das das an dem Werkstückhaltemechanismus befestigte Werkstück bearbeitet, und einen Bewegungsmechanismus (wie etwa einen Kugelgewindemechanismus), der eine Relativbewegung zwischen dem Werkstückhaltemechanismus und dem Werkzeug bewirkt.
  • Ein Kontaktabschnitt 44 ist an einer Oberfläche 42 der Arbeitsmaschine 14 befestigt und steht von der Oberfläche 42 nach außen vor. Wie in 4 veranschaulicht, beinhaltet der Kontaktabschnitt 44 einen ersten Abschnitt 46 und einen zweiten Abschnitt 48. Der erste Abschnitt 46 erstreckt sich linear in eine Richtung und beinhaltet eine Innenfläche 46a, die im Wesentlichen orthogonal zu der Oberfläche 42 ist. Andererseits erstreckt sich der zweite Abschnitt 48 linear von einem Ende des ersten Abschnitts 46, um orthogonal zu dem ersten Abschnitt 46 zu sein, und beinhaltet eine Innenfläche 48a, die im Wesentlichen orthogonal zu der Innenfläche 46a des ersten Abschnitts 46 und der Oberfläche 42 ist.
  • Unter Bezugnahme auf 2 steuert die Steuervorrichtung 16 die Vorgänge des Roboters 12. Insbesondere ist die Steuervorrichtung 16 ein Computer, der einen Prozessor 50, einen Speicher 52 und eine E/A-Schnittstelle 54 beinhaltet. Der Prozessor 50 beinhaltet eine CPU, eine GPU oder dergleichen und ist über einen Bus 56 kommunikativ mit dem Speicher 52 und der E/A-Schnittstelle 54 verbunden. Der Prozessor 50 führt eine arithmetische Verarbeitung zum Implementieren verschiedener nachfolgend beschriebener Funktionen durch, während er mit dem Speicher 52 und der E/A-Schnittstelle 54 kommuniziert.
  • Der Speicher 52 beinhaltet einen RAM, einen ROM oder dergleichen und speichert verschiedene Arten von Daten vorübergehend oder dauerhaft. Die E/A-Schnittstelle 54 beinhaltet zum Beispiel einen Ethernet(Handelsname)-Port, einen USB-Port, einen Glasfaserverbinder oder einen HDMI(Handelsname)-Anschluss und führt eine drahtgebundene oder drahtlose Datenkommunikation mit einer externen Vorrichtung unter einem Befehl von dem Prozessor 50 durch. Der vorstehend beschriebene Servomotor 38 ist auf drahtgebundene oder drahtlose Kommunikationsweise kommunikativ mit der E/A-Schnittstelle 54 verbunden.
  • Ein Roboterkoordinatensystem C1 ist für den Roboter 12 eingestellt, wie in 1 veranschaulicht. Das Roboterkoordinatensystem C1 ist ein Koordinatensystem zum automatischen Steuern des Betriebs jedes beweglichen Elements des Roboters 12 und ist in Bezug auf die Roboterbasis 18 (oder den Stützmechanismus 28) fest eingestellt. In der vorliegenden Ausführungsform ist das Roboterkoordinatensystem C1 in Bezug auf den Roboter 12 eingestellt, wobei sein Ursprung in der Mitte der Roboterbasis 18 angeordnet ist und seine z-Achse mit der Schwenkachse des Schwenkkörpers 20 übereinstimmt.
  • Andererseits ist, wie in 3 veranschaulicht, ein Koordinatensystem C2 der mechanischen Schnittstelle (MIF) in Bezug auf den Handspitzenabschnitt 40 eingestellt. Das MIF-Koordinatensystem C2 ist ein Koordinatensystem, das eine Position und Ausrichtung des Handspitzenabschnitts 40 (insbesondere des Endeffektors 26) in dem Roboterkoordinatensystem C1 definiert. In der vorliegenden Ausführungsform ist das MIF-Koordinatensystem C2 in Bezug auf den Handspitzenabschnitt 40 eingestellt, wobei sein Ursprung in der Mitte des vorderen Endabschnitts des Handgelenks 24 angeordnet ist und seine z-Achse mit der Handgelenkachse A1 übereinstimmt.
  • Wenn der Handspitzenabschnitt 40 (Endeffektor 26) bewegt wird, steuert der Prozessor 50 jeden der Servomotoren 38 des Roboters 12, um das MIF-Koordinatensystem C2 auf das Roboterkoordinatensystem C1 einzustellen und den Handspitzenabschnitt 40 an der Position und Ausrichtung anzuordnen, die durch das so eingestellte MIF-Koordinatensystem C2 dargestellt werden. Somit kann der Prozessor 50 den Handspitzenabschnitt 40 so anordnen, dass er sich an einer beliebigen Position und in einer beliebigen Ausrichtung in dem Roboterkoordinatensystem C1 befindet. Somit ist die Positionsbeziehung (d. h. die Ursprungsposition und die Richtung jeder Achse) des MIF-Koordinatensystems C2 in Bezug auf das Roboterkoordinatensystem C1 bekannt.
  • Andererseits ist ein Benutzerkoordinatensystem C3 in Bezug auf das Werkstück WP1 eingestellt, das von dem Endeffektor 26 an der vorbestimmten Greifposition gegriffen wird. In der vorliegenden Ausführungsform ist das Benutzerkoordinatensystem C3 in Bezug auf das Werkstück WP1 eingestellt, wobei sein Ursprung an einem Scheitelpunkt F angeordnet ist, der durch die Bodenfläche B1 und die Seitenflächen B4 und B5 des von dem Endeffektor 26 gegriffenen Werkstücks WP1 gebildet wird, wobei seine x-z-Ebene parallel zu der Seitenfläche B5 des von dem Endeffektor 26 gegriffenen Werkstücks WP1 ist und wobei seine y-z-Ebene parallel zu den Seitenflächen B3 und B4 des von dem Endeffektor 26 gegriffenen Werkstücks WP1 (oder den Greifflächen 36a des Endeffektors 26) ist.
  • Wie oben beschrieben, kann das Werkstück WP1, das von dem Endeffektor 26 an der vorbestimmten Greifposition gegriffen wird, als mit dem Endeffektor 26 integriert betrachtet werden (d. h. als Teil des Endeffektors 26). Somit ist, wenn die Form und die Greifposition des Werkstücks WP1 bekannt sind, die Positionsbeziehung (die Ursprungsposition und die Richtung jeder Achse) in Bezug auf das MIF-Koordinatensystem C2 des Benutzerkoordinatensystems C3, das für das von dem Endeffektor 26 an der vorbestimmten Greifposition gegriffene Werkstück WP1 eingestellt ist, bekannt.
  • Somit ist die Positionsbeziehung des Benutzerkoordinatensystems C3 in Bezug auf das Roboterkoordinatensystem C1 durch das MIF-Koordinatensystem C2 bekannt. Insbesondere kann die Positionsbeziehung des Benutzerkoordinatensystems C3 in Bezug auf das Roboterkoordinatensystem C1 unter Verwendung von Koordinaten D(X, Y, Z, W, P, R) des Roboterkoordinatensystems C1 dargestellt werden.
  • Hier stellen die Koordinaten D(X, Y, Z) die Koordinaten des Ursprungs des Benutzerkoordinatensystems C3 im Roboterkoordinatensystem C1 dar. Andererseits stellen die Koordinaten D(W, P, R) die Neigung (was als Gieren, Nicken, Rollen bekannt ist) der x-Achse, y-Achse und z-Achse des Benutzerkoordinatensystems C3 in Bezug auf die x-Achse, y-Achse und z-Achse des Roboterkoordinatensystems C1 dar. Eine Koordinatentransformationsmatrix M13 vom Roboterkoordinatensystem C1 zum Benutzerkoordinatensystem C3 ist eine bekannte homogene Transformationsmatrix. Jeder Parameter der Koordinatentransformationsmatrix M13 ist durch die Koordinaten D(X, Y, Z, W, P, R) definiert.
  • Wie in 1 veranschaulicht, ist ein Arbeitsmaschinenkoordinatensystem C4 für die Arbeitsmaschine 14 eingestellt. Das Arbeitsmaschinenkoordinatensystem C4 definiert die Position und Ausrichtung jeder Komponente der Arbeitsmaschine 14. Jede Komponente der Arbeitsmaschine 14 ist durch Koordinaten im Arbeitsmaschinenkoordinatensystem C4 dargestellt. In der vorliegenden Ausführungsform ist das Arbeitsmaschinenkoordinatensystem C4 in Bezug auf die Arbeitsmaschine 14 fest eingestellt, wobei sein Ursprung an einem Endpunkt auf der Bodenfläche der Arbeitsmaschine 14 angeordnet ist und seine z-Achsenrichtung parallel zu einer Höhenrichtung (z. B. vertikalen Richtung) der Arbeitsmaschine 14 ist.
  • Die Oberfläche 42 und der Kontaktabschnitt 44 der Arbeitsmaschine 14 sind an bekannten Positionen im Arbeitsmaschinenkoordinatensystem C4 angeordnet. In der vorliegenden Ausführungsform sind sie an bekannten Positionen im Arbeitsmaschinenkoordinatensystem C4 angeordnet, wobei die Oberfläche 42 der Arbeitsmaschine 14 parallel zu der x-y-Ebene des Arbeitsmaschinenkoordinatensystems C4 ist, wobei die Innenfläche 46a des Kontaktabschnitts 44 parallel zu der x-z-Ebene des Arbeitsmaschinenkoordinatensystems C4 ist und die Innenfläche 48a des Kontaktabschnitts 44 parallel zu der y-z-Ebene des Arbeitsmaschinenkoordinatensystems C4 ist. Somit ist ein Scheitelpunkt G, der durch die Oberfläche 42, die Innenfläche 46a und die Innenfläche 48a gebildet wird, durch bekannte Koordinaten im Arbeitsmaschinenkoordinatensystem C4 dargestellt.
  • In diesem Zusammenhang ist in der vorliegenden Ausführungsform die Positionsbeziehung zwischen dem Roboterkoordinatensystem C1 (d. h. dem Roboter 12) und dem Arbeitsmaschinenkoordinatensystem C4 (d. h. der Arbeitsmaschine 14) unbekannt. Der Prozessor 50 fungiert als eine Vorrichtung 60, die die Positionsbeziehung zwischen dem Roboterkoordinatensystem C1 und dem Arbeitsmaschinenkoordinatensystem C4 erfasst. Die Funktionen der Vorrichtung 60 werden nachstehend beschrieben.
  • Zunächst bringt der Roboter 12 das Werkstück WP1, das von dem Endeffektor 26 an der vorbestimmten Greifposition gegriffen wird, in Kontakt mit dem Kontaktabschnitt 44, wie in 1, 5 und 6 veranschaulicht. In diesem Zustand ist die untere Oberfläche B1 des Werkstücks WP1 in Oberflächenkontakt mit der Oberfläche 42 der Arbeitsmaschine 14, die Seitenoberfläche B5 des Werkstücks WP1 ist in Oberflächenkontakt mit der inneren Oberfläche 46a des Kontaktabschnitts 44 und die Seitenoberfläche B4 des Werkstücks WP1 ist in Oberflächenkontakt mit der inneren Oberfläche 48a des Kontaktabschnitts 44. Somit ist der Handspitzenabschnitt 40 stationär an einer vorbestimmten Position PS1 und Ausrichtung OR1 relativ zu der Arbeitsmaschine 14 angeordnet.
  • Die Positionsbeziehung des Benutzerkoordinatensystems C3 relativ zu dem Arbeitsmaschinenkoordinatensystem C4 in diesem Zustand ist bekannt. Insbesondere kann betrachtet werden, dass der Ursprung des Benutzerkoordinatensystems C3 mit der Position des Scheitelpunkts G übereinstimmt, die oben beschrieben ist, die x-y-Ebene des Benutzerkoordinatensystems C3 ist parallel zu der Oberfläche 42 der Arbeitsmaschine 14, die x-z-Ebene des Benutzerkoordinatensystems C3 ist parallel zu der inneren Oberfläche 46a des Kontaktabschnitts 44 und die y-z-Ebene des Benutzerkoordinatensystems C3 ist parallel zu der inneren Oberfläche 48a des Kontaktabschnitts 44.
  • Somit können die Koordinaten des Benutzerkoordinatensystems C3 im Arbeitsmaschinenkoordinatensystem C4 in diesem Zustand als bekannte Koordinaten E1(x1, y1, z1, w1, p1, r1) dargestellt werden. Die Koordinaten E1(x1, y1, z1) stellen die Koordinaten des Ursprungs des Benutzerkoordinatensystems C3 (d. h. des Scheitelpunkts G) im Arbeitsmaschinenkoordinatensystem C4 dar. Andererseits stellen die Koordinaten E1(w1, p1, r1) die Neigung (was als Gieren, Nicken, Rollen bekannt ist) in Bezug auf die x-Achse, y-Achse und z-Achse des Benutzerkoordinatensystems C3 in Bezug auf die x-Achse, y-Achse und z-Achse des Arbeitsmaschinenkoordinatensystems C4 dar.
  • Ferner ist eine Koordinatentransformationsmatrix M43_1 vom Arbeitsmaschinenkoordinatensystem C4 zum Benutzerkoordinatensystem C3 eine bekannte homogene Transformationsmatrix, und jeder Parameter der Koordinatentransformationsmatrix M43_1 kann aus den Koordinaten E1(x1, y1, z1, w1, p1, r1) erhalten werden. Somit kann die Positionsbeziehung zwischen dem Arbeitsmaschinenkoordinatensystem C4 und dem Benutzerkoordinatensystem C3 bekannt sein.
  • Wenn der Handspitzenabschnitt 40 (insbesondere das Werkstück WP1) somit in Kontakt mit dem Kontaktabschnitt 44 ist, ist der Handspitzenabschnitt 40 stationär an der vorbestimmten Position PS1 und in der Ausrichtung OR1 relativ zu der Arbeitsmaschine 14 angeordnet. Diese Position PS1 und Ausrichtung OR1 des Handspitzenabschnitts 40 relativ zu dem Arbeitsmaschinenkoordinatensystem C4 werden durch die Koordinaten E1(x1, y1, z1, w1, p1, r1) des Benutzerkoordinatensystems C3 dargestellt. Somit dient der Kontaktabschnitt 44 als ein Element zum Darstellen der Position PS1 und Ausrichtung OR1 des Handspitzenabschnitts 40 in dem Arbeitsmaschinenkoordinatensystem C4.
  • Der Prozessor 50 erfasst zweite Positionsdaten β1, die die Position PS1 und Ausrichtung OR1 relativ zu dem Arbeitsmaschinenkoordinatensystem C4 angeben, wenn der Handspitzenabschnitt 40 an der Position PS1 und in der Ausrichtung OR1 angeordnet ist. Als ein Beispiel erfasst der Prozessor 50 als die zweiten Positionsdaten β1 die Koordinaten E1(x1, y1, z1, w1, p1, r1) oder die oben beschriebene Koordinatentransformationsmatrix M43_1.
  • Als ein anderes Beispiel kann der Prozessor 50 als die zweiten Positionsdaten β1 eine Koordinatentransformationsmatrix M34_1 von dem Benutzerkoordinatensystem C3 zu dem Arbeitsmaschinenkoordinatensystem C4 erfassen, wenn der Handspitzenabschnitt 40 an der Position PS1 und in der Ausrichtung OR1 angeordnet ist. Diese Koordinatentransformationsmatrix M34_1 wird als eine inverse Transformationsmatrix: inv(M43_1) der oben beschriebenen Koordinatentransformationsmatrix M43_1 erhalten.
  • Als ein anderes Beispiel kann der Prozessor 50 als die zweiten Positionsdaten β1 Koordinaten E1'(x1', y1', z1', w1', p1', r1') des Arbeitsmaschinenkoordinatensystems C4 in dem Benutzerkoordinatensystem C3 erfassen, wenn der Handspitzenabschnitt 40 an der Position PS1 und in der Ausrichtung OR1 angeordnet ist. Die Koordinaten E1' können aus der Koordinatentransformationsmatrix M34_1 (= inv(M43_1)) erhalten werden.
  • In der vorliegenden Ausführungsform, wie oben beschrieben, umfassen die zweiten Positionsdaten β1 die Koordinaten E1(x1, y1, z1, w1, p1, r1), die Koordinaten E1'(x1', y1', z1', w1', p1', r1'), die Koordinatentransformationsmatrix M43_1 und die Koordinatentransformationsmatrix M34_1, und der Prozessor 50 fungiert als ein Positionsdatenerfassungsabschnitt 62 (2), der die zweiten Positionsdaten β1 erfasst.
  • Andererseits erfasst der Prozessor 50 erste Positionsdaten α1, die die Position PS1 und Ausrichtung OR1 relativ zu dem Roboterkoordinatensystem C1 angeben, wenn der Handspitzenabschnitt 40 an der Position PS1 und in der Ausrichtung OR1 angeordnet ist. Die Koordinaten des Benutzerkoordinatensystems C3 in dem Roboterkoordinatensystem C1, wenn der Handspitzenabschnitt 40 an der Position PS1 und in der Ausrichtung OR1 angeordnet ist, werden durch bekannte Koordinaten D1(X1, Y1, Z1, W1, P1, R1) dargestellt. Jeder Parameter der Koordinatentransformationsmatrix M13_1 vom Roboterkoordinatensystem C1 zum Benutzerkoordinatensystem C3 wird aus den Koordinaten D1(X1, Y1, Z1, W1, P1, R1) erhalten.
  • Als ein Beispiel erfasst der Prozessor 50 als die ersten Positionsdaten α1 die Koordinaten D1(X1, Y1, Z1, W1, P1, R1) oder die oben beschriebene Koordinatentransformationsmatrix M13_1. Als ein anderes Beispiel kann der Prozessor 50 als die ersten Positionsdaten α1 eine Koordinatentransformationsmatrix M31_1 vom Benutzerkoordinatensystem C3 zum Roboterkoordinatensystem C1 erfassen, wenn der Handspitzenabschnitt 40 an der Position PS1 und in der Ausrichtung OR1 angeordnet ist. Diese Koordinatentransformationsmatrix M31_1 wird als eine inverse Transformationsmatrix: inv(M13_1) der oben beschriebenen Koordinatentransformationsmatrix M13_1 erhalten.
  • Als ein anderes Beispiel kann der Prozessor 50 als die ersten Positionsdaten α1 Koordinaten D1'(X1', Y1', Z1', W1', P1', R1') des Roboterkoordinatensystems C1 in dem Benutzerkoordinatensystem C3 erfassen, wenn der Handspitzenabschnitt 40 an der Position PS1 und in der Ausrichtung OR1 angeordnet ist. Die Koordinaten D1' können aus der Koordinatentransformationsmatrix M31_1 (= inv(M13_1)) erhalten werden.
  • In der vorliegenden Ausführungsform, wie oben beschrieben, umfassen die ersten Positionsdaten α1 die Koordinaten D1(X1, Y1, Z1, W1, P1, R1), die Koordinaten D1'(X1', Y1', Z1', W1', P1', R1'), die Koordinatentransformationsmatrix M13_1 und die Koordinatentransformationsmatrix M31_1, und der Prozessor 50 fungiert als der Positionsdatenerfassungsabschnitt 62 (2) und erfasst die ersten Positionsdaten α1.
  • Als nächstes erfasst der Prozessor 50 unter Verwendung der ersten Positionsdaten α1 und der erfassten zweiten Positionsdaten β1 dritte Positionsdaten γ1, die die Positionsbeziehung zwischen dem Roboterkoordinatensystem C1 und dem Arbeitsmaschinenkoordinatensystem C4 angeben. Als ein Beispiel erfasst der Prozessor 50 als die dritten Positionsdaten γ1 eine Koordinatentransformationsmatrix M14_1 vom Roboterkoordinatensystem C1 zum Arbeitsmaschinenkoordinatensystem C4. Insbesondere kann der Prozessor 50 unter Verwendung der Koordinatentransformationsmatrix M13_1 als die ersten Positionsdaten α1, der Koordinatentransformationsmatrix M34_1 (oder M43_1) als die zweiten Positionsdaten β1 zur Berechnung durch eine arithmetische Verarbeitung die Koordinatentransformationsmatrix M14_1 aus einer Formel M14_1 = M13_1 · M34_1 = M13_1 · inv(M34_1) erhalten.
  • Als ein anderes Beispiel kann der Prozessor 50 als die dritten Positionsdaten γ1 Koordinaten D2(X2, Y2, Z2, W2, P2, R2) des Arbeitsmaschinenkoordinatensystems C4 im Roboterkoordinatensystem C1 erfassen. Die Koordinaten D2(X2, Y2, Z2, W2, P2, R2) können aus jedem Parameter der Koordinatentransformationsmatrix M14_1 erhalten werden, der bekannt ist.
  • Als ein weiteres Beispiel kann der Prozessor 50 als die dritten Positionsdaten γ1 eine Koordinatentransformationsmatrix M41_1 vom Arbeitsmaschinenkoordinatensystem C4 zum Roboterkoordinatensystem C1 erfassen. Diese Koordinatentransformationsmatrix M41_1 kann als eine inverse Transformationsmatrix: inv(M14_1) der oben beschriebenen Koordinatentransformationsmatrix M14_1 erhalten werden. Alternativ kann die Koordinatentransformationsmatrix M41_1 aus einer Formel M41_1 = M43_1 ·M31_1 = M43_1 · inv(M13_1) unter Verwendung der Koordinatentransformationsmatrix M31_1 (oder M13_1) als die ersten Positionsdaten α1 und der Koordinatentransformationsmatrix M43_1 als die zweiten Positionsdaten β1 erhalten werden.
  • Als noch ein weiteres Beispiel kann der Prozessor 50 als die dritten Positionsdaten γ1 Koordinaten E2(x2, y2, z2, w2, p2, r2) des Roboterkoordinatensystems C1 im Arbeitsmaschinenkoordinatensystem C4 erfassen. Die Koordinaten E2 können aus jedem Parameter der oben beschriebenen Koordinatentransformationsmatrix M41_1 erhalten werden.
  • Somit fungiert in der vorliegenden Ausführungsform der Prozessor 50 als ein Positionsbeziehungserfassungsabschnitt 64 (2), der die dritten Positionsdaten γ1 (die Koordinatentransformationsmatrix M14_1, die Koordinatentransformationsmatrix M41_1, die Koordinaten D2 oder die Koordinaten E2) unter Verwendung der ersten Positionsdaten α1 und der zweiten Positionsdaten β1 erfasst.
  • Wie oben beschrieben, fungiert der Prozessor 50 als die Vorrichtung 60, die den Positionsdatenerfassungsabschnitt 62 und den Positionsbeziehungserfassungsabschnitt 64 beinhaltet, und erfasst die dritten Positionsdaten γ1, die die Positionsbeziehung zwischen dem Roboterkoordinatensystem C1 und dem Arbeitsmaschinenkoordinatensystem C4 angeben, aus den ersten Positionsdaten α1 und den zweiten Positionsdaten β1. Mit dieser Konfiguration können die dritten Positionsdaten γ1 durch Anordnen des Handspitzenabschnitts 40 an einer Position PS1 und in einer Ausrichtung OR1 erfasst werden, ohne einen Prozess des Berührens einer Mehrzahl von Punkten, die auf die Arbeitsmaschine 14 eingestellt sind, unter Verwendung des Handspitzenabschnitts 40 auszuführen. Somit kann der Prozess des Erhaltens der Positionsbeziehung zwischen dem Roboterkoordinatensystem C1 und dem Arbeitsmaschinenkoordinatensystem C4 weitgehend vereinfacht werden.
  • In der vorliegenden Ausführungsform kommt der Handspitzenabschnitt 40 in Kontakt mit dem Kontaktabschnitt 44, der zum Darstellen der Position PS1 und Ausrichtung OR1 des Handspitzenabschnitts 40 in dem Arbeitsmaschinenkoordinatensystem C4 bereitgestellt ist, und der Handspitzenabschnitt 40 ist an der PS1 und in der Ausrichtung OR1 angeordnet. Mit dieser Konfiguration können die Position PS1 und Ausrichtung OR1 des Handspitzenabschnitts 40 relativ zu dem Arbeitsmaschinenkoordinatensystem C4 (insbesondere die Positionsbeziehung des Benutzerkoordinatensystems C3) bekannt sein, indem der Handspitzenabschnitt 40 einfach in Kontakt mit dem Kontaktabschnitt 44 gebracht wird. Somit können die zweiten Positionsdaten β1 leicht und genau erfasst werden.
  • In der vorliegenden Ausführungsform ist die Vorrichtung 60 konfiguriert, um die Positionsbeziehung zwischen dem Roboter 12 und der Arbeitsmaschine 14 (insbesondere die dritten Positionsdaten γ1) basierend auf der Position und Ausrichtung des Roboters 12 relativ zu der Arbeitsmaschine 14 (insbesondere die zweiten Positionsdaten β1) zu erfassen, wenn der Roboter 12 (insbesondere der Handspitzenabschnitt 40) in Kontakt mit dem Kontaktabschnitt 44 kommt. Mit dieser Konfiguration kann die Positionsbeziehung zwischen dem Roboter 12 und der Arbeitsmaschine 14 (dritte Positionsdaten γ1) erfasst werden, indem der Roboter 12 einfach in Kontakt mit dem Kontaktabschnitt 44 gebracht wird.
  • Es sei angemerkt, dass der Kontaktabschnitt 44 nicht auf den in 4 veranschaulichten Modus beschränkt ist und zum Beispiel eine beliebige Struktur wie etwa ein Loch, eine Aussparung oder ein Vorsprung, der in der Arbeitsmaschine 14 oder dem Werkstückhaltemechanismus (Spannmechanismus, Spannvorrichtung) oder dergleichen, der das Werkstück WP1 befestigt, gebildet ist, aufweisen kann, solange die Position PS1 und Ausrichtung OR1 des Handspitzenabschnitts 40 (Positionsbeziehung des Benutzerkoordinatensystem C3) relativ zu dem Arbeitsmaschinenkoordinatensystem C4 bekannt sein kann, indem der Handspitzenabschnitt 40 (z. B. das Werkstück WP1) in Kontakt mit dem Kontaktabschnitt 44 gebracht wird und der Handspitzenabschnitt 40 stationär angeordnet wird.
  • Als Nächstes wird ein System 70 gemäß einer anderen Ausführungsform unter Bezugnahme auf 7 und 8 beschrieben. Das System 70 unterscheidet sich von dem vorstehend beschriebenen System 10 darin, dass es ferner eine Lehrvorrichtung 72 beinhaltet. Die Lehrvorrichtung 72 ist ein Computer, wie etwa ein sogenannter Lehranhänger oder eine Tablet-Endgerätevorrichtung, und ist auf drahtgebundene oder drahtlose Kommunikationsweise kommunikativ mit der E/A-Schnittstelle 54 der Steuervorrichtung 16 verbunden.
  • Die Lehrvorrichtung 72 beinhaltet einen Prozessor (nicht veranschaulicht), einen Speicher (nicht veranschaulicht), eine Anzeigevorrichtung 74 und eine Eingabevorrichtung 76. Die Anzeigevorrichtung 74 beinhaltet eine Flüssigkristallanzeige, eine organische EL-Anzeige oder dergleichen und zeigt verschiedene Arten von Daten an. Die Eingabevorrichtung 76 beinhaltet eine Drucktaste, ein Touchpanel oder dergleichen und empfängt einen Eingabevorgang von einem Bediener.
  • In dem System 70 betreibt der Bediener die Lehrvorrichtung 72, um den Roboter 12 über einen Vorgang zum Anordnen des Handspitzenabschnitts 40 des Roboters 12 an der Position PS1 und in der Ausrichtung OR1 zu lehren. Insbesondere betreibt der Bediener die Eingabevorrichtung 76, während er auf der Anzeigevorrichtung 74 angezeigte Daten betrachtet, und gibt somit Eingabedaten in die Eingabevorrichtung 76 ein, um einen Jog-Vorgang des Handspitzenabschnitts 40 des Roboters 12 im Roboterkoordinatensystem C1 zu bewirken.
  • Die Lehrvorrichtung 72 erzeugt einen Lehrbefehl TC zum Bewirken des Jog-Vorgangs des Roboters 12 gemäß den Eingabedaten in die Eingabevorrichtung 76 und überträgt den Lehrbefehl TC an die E/A-Schnittstelle 54 der Steuervorrichtung 16. Der Prozessor 50 der Steuervorrichtung 16 empfängt den Lehrbefehl TC über die E/A-Schnittstelle 54.
  • Somit fungiert der Prozessor 50 in der vorliegenden Ausführungsform als ein Lehrbefehlsempfangsabschnitt 78 (8), der den Lehrbefehl TC empfängt. Als Reaktion auf den empfangenen Lehrbefehl TC erzeugt der Prozessor 50 einen Befehl an jeden der Servomotoren 38 des Roboters 12, um den Jog-Vorgang des Handspitzenabschnitts 40 des Roboters 12 zu bewirken.
  • Bis das von dem Endeffektor 26 an der vorbestimmten Greifposition gegriffene Werkstück WP1 mit dem Kontaktabschnitt 44 in Kontakt kommt, betreibt der Bediener die Eingabevorrichtung 76 der Lehrvorrichtung 72 und der Prozessor 50 bewirkt den Jog-Vorgang des Handspitzenabschnitts 40 des Roboters 12 als Reaktion auf den Lehrbefehl TC von der Lehrvorrichtung 72.
  • Infolgedessen kommt der Handspitzenabschnitt 40 (das Werkstück WP1) mit dem Kontaktabschnitt 44 in Kontakt, um an der Position PS1 und in der Ausrichtung OR1 angeordnet zu werden, wobei die Bodenfläche B1 des Werkstücks WP1 in Oberflächenkontakt mit der Oberfläche 42 der Arbeitsmaschine 14 ist, die Seitenfläche B5 des Werkstücks WP1 in Oberflächenkontakt mit der Innenfläche 46a des Kontaktabschnitts 44 ist und die Seitenfläche B4 des Werkstücks WP1 in Oberflächenkontakt mit der Innenfläche 48a des Kontaktabschnitts 44 ist. Auf diese Weise fungiert der Prozessor 50 als ein Robotersteuerungsabschnitt 79 (8), der den Roboter 12 betreibt, indem er den Handspitzenabschnitt 40 (insbesondere das Werkstück WP1) in Kontakt mit dem Kontaktabschnitt 44 bringt, um den Handspitzenabschnitt 40 an der Position PS1 und in der Ausrichtung OR1 anzuordnen.
  • Wie oben beschrieben, beinhaltet die Vorrichtung 60 in der vorliegenden Ausführungsform den Positionsdatenerfassungsabschnitt 62, den Positionsbeziehungserfassungsabschnitt 64, den Lehrbefehlsempfangsabschnitt 78 und den Robotersteuerungsabschnitt 79, und der Prozessor 50 fungiert als der Positionsdatenerfassungsabschnitt 62, der Positionsbeziehungserfassungsabschnitt 64, der Lehrbefehlsempfangsabschnitt 78 und der Robotersteuerungsabschnitt 79 der Vorrichtung 60.
  • Gemäß der vorliegenden Ausführungsform kann der Bediener den Handspitzenabschnitt 40 an der Position PS1 und der Ausrichtung OR1 anordnen, indem er die Lehrvorrichtung 72 betreibt, um den Roboter 12 zu lehren, während er die tatsächliche Anordnung des Handspitzenabschnitts 40 und des Kontaktabschnitts 44 überprüft. Somit kann eine Zeit, die für einen Vorgang zum Anordnen des Handspitzenabschnitts 40 an der Position PS1 und in der Ausrichtung OR1 erforderlich ist, reduziert werden.
  • Als Nächstes wird ein System 80 gemäß noch einer anderen Ausführungsform unter Bezugnahme auf 9 beschrieben. Das System 80 unterscheidet sich von dem vorstehend beschriebenen System 70 darin, dass es einen Kraftsensor 82 anstelle der Lehrvorrichtung 72 beinhaltet. Als ein Beispiel beinhaltet der Kraftsensor 82 eine Mehrzahl von Drehmomentsensoren, die den jeweiligen Servomotoren 38 des Roboters 12 bereitgestellt sind. In diesem Fall detektiert der Kraftsensor 82 als Detektionsdaten DF ein Drehmoment T, das auf eine Antriebswelle jedes der Servomotoren 38 wirkt.
  • Als ein anderes Beispiel beinhaltet der Kraftsensor 82 einen Sechsachsenkraftsensor, der der Roboterbasis 18, dem Schwenkkörper 20, dem unteren Arm 30, dem oberen Arm 32 oder dem Handgelenk 24 des Roboters 12 bereitgestellt ist und eine Mehrzahl von Dehnungsmessstreifen beinhaltet. In diesem Fall detektiert der Kraftsensor 82 eine Kraft F, die auf den Roboter 12 wirkt, als die Detektionsdaten DF. Der Kraftsensor 82 kann eine beliebige Art von Kraftsensor sein, wie etwa ein Kraftsensor einer Drehmomentdetektionsart unter Verwendung eines Sekundärcodierers oder ein Kraftsensor einer Kapazitätsart.
  • Der Prozessor 50 identifiziert die Größe und Richtung einer externen Kraft EF, die auf den Roboter 12 ausgeübt wird, basierend auf den Detektionsdaten DF (d. h. dem Drehmoment T oder der Kraft F) des Kraftsensors 82 und einem Abschnitt des Roboters 12, auf den die externe Kraft EF ausgeübt wird (der Schwenkkörper 20, der untere Arm 30, der obere Arm 32, das Handgelenk 24 oder der Handspitzenabschnitt 40).
  • Dann bewegt der Prozessor 50 als Reaktion auf die externe Kraft EF, die auf einen beliebigen Abschnitt des Roboters 12 ausgeübt wird, den Abschnitt des Roboters 12 in der Richtung der externen Kraft EF. Unter Verwendung dieser Funktion lehrt der Bediener den Roboter 12 über einen Vorgang, um den Handspitzenabschnitt 40 des Roboters 12 in Kontakt mit dem Kontaktabschnitt 44 zu bringen und den Handspitzenabschnitt 40 an der Position PS1 und in der Ausrichtung OR1 anzuordnen (was als direktes Lehren bekannt ist).
  • Insbesondere schaltet der Bediener einen Betriebsmodus des Roboters 12 durch die Steuervorrichtung 16 in einen Lehrmodus und übt dann die externe Kraft EFT für das Lehren auf einen beliebigen Abschnitt (z. B. den Handspitzenabschnitt 40) des Roboters 12 aus. Dann detektiert der Kraftsensor 82 die externe Kraft EFT als die Detektionsdaten DFT und liefert die Daten an den Prozessor 50.
  • Basierend auf den Detektionsdaten DFT, die durch den Kraftsensor 82 nach dem Umschalten in den Lehrmodus detektiert werden, identifiziert der Prozessor 50 den Abschnitt des Roboters 12 (Handspitzenabschnitt 40), auf den die externe Kraft EFT ausgeübt wird, und identifiziert die Größe und die Richtung der externen Kraft EFT. Dann bewirkt der Prozessor 50 einen Jog-Vorgang in der Richtung der identifizierten externen Kraft EFT des Abschnitts (Handspitzenabschnitt 40) des Roboters 12, der als der Abschnitt identifiziert wird, auf den die externe Kraft EFT ausgeübt wird.
  • Auf diese Weise lehrt der Bediener dem Roboter 12 einen Vorgang, um den Handspitzenabschnitt 40 in Kontakt mit dem Kontaktabschnitt 44 zu bringen und den Handspitzenabschnitt 40 an der Position PS1 und in der Ausrichtung OR1 anzuordnen, durch den Jog-Vorgang des Roboters 12 gemäß der externen Kraft EFT, die auf einen beliebigen Abschnitt des Roboters 12 ausgeübt wird. Somit bewirkt der Prozessor 50 in der vorliegenden Ausführungsform den Jog-Vorgang des Roboters 12 gemäß den Detektionsdaten DFT unter Verwendung als den Lehrbefehl, wobei die Detektionsdaten DFT durch den Kraftsensor 82 detektiert wurden, wenn die externe Kraft EFT ausgeübt wird.
  • Somit bilden die Detektionsdaten DFT den Lehrbefehl (insbesondere einen direkten Lehrbefehl zum Bewegen des Handspitzenabschnitts 40 als Reaktion auf die externe Kraft EFT). Der Prozessor 50 fungiert als der Lehrbefehlsempfangsabschnitt 78, der diesen Lehrbefehl (Detektionsdaten DFT) empfängt, und der Robotersteuerabschnitt 79, der den Roboter 12 betreibt. Unter dem Lehrmodus kann der Prozessor 50 eine Bewegungsdistanz oder Bewegungsgeschwindigkeit des Jog-Vorgangs des Abschnitts des Roboters 12 gemäß der Größe der externen Kraft EFT, die aus den Detektionsdaten DFT identifiziert wird, ändern (z. B. proportional zu der Größe der externen Kraft EFT erhöhen).
  • Es ist zu beachten, dass das vorstehend beschriebene direkte Lehren ein Lehren beinhaltet, das nicht unter Verwendung des Kraftsensors 82 durchgeführt wird, indem ein Betriebsbefehl für den Servomotor 38 bereitgestellt wird, zum Beispiel durch einen Betrieb an einer Betriebseinheit (wie etwa einem Joystick). In diesem Fall bildet ein Betriebsbefehl an den Servomotor 38 den Lehrbefehl (direkter Lehrbefehl). Alternativ kann der Bediener das direkte Lehren ausführen, indem er die externe Kraft EFT auf einen Abschnitt (z. B. den unteren Arm 30, den oberen Arm 32 oder den Handspitzenabschnitt 40) des Roboters 12 ausübt, der in einem Zustand gehalten wurde, in dem er kein Drehmoment auf jeder Welle des Roboters 12 empfängt, um den Abschnitt mit der externen Kraft EFT manuell zu bewegen.
  • Als Nächstes wird ein System 90 gemäß noch einer anderen Ausführungsform unter Bezugnahme auf 10 und 11 beschrieben. Das System 90 unterscheidet sich von dem oben beschriebenen System 10 dadurch, dass es ferner einen Kontaktdetektionssensor 92 beinhaltet. Der Kontaktdetektionssensor 92 detektiert, dass der Handspitzenabschnitt 40 in Kontakt mit dem Kontaktabschnitt 44 ist.
  • Insbesondere beinhaltet der Kontaktdetektionssensor 92 ein erstes Sensorelement 94, ein zweites Sensorelement 96 und ein drittes Sensorelement 98. Jedes des ersten Sensorelements 94, des zweiten Sensorelements 96 und des dritten Sensorelements 98 ist zum Beispiel ein Näherungssensor (wie etwa ein kapazitiver Näherungssensor oder ein Näherungsschalter), ein Entfernungssensor, ein Drucksensor, ein piezoelektrisches Element, ein Dehnungsmessstreifen oder dergleichen, der eine Annäherung oder einen Kontakt durch ein Objekt detektiert. Das erste Sensorelement 94 ist auf der Oberfläche 42 der Arbeitsmaschine 14 bereitgestellt. Das zweite Sensorelement 96 ist auf der Innenfläche 46a des Kontaktabschnitts 44 bereitgestellt, wohingegen das dritte Sensorelement 98 auf der Innenfläche 48a des Kontaktabschnitts 44 bereitgestellt ist.
  • Wie in 6 veranschaulicht, wenn der Handspitzenabschnitt 40 mit dem Kontaktabschnitt 44 in Kontakt kommt und an der vorbestimmten Position PS1 und Ausrichtung OR1 angeordnet ist, erhält das erste Sensorelement 94 als Detektionsdaten DA einen Wert DA0, der einen Oberflächenkontakt zwischen der Bodenfläche B1 des Werkstücks WP1 und der Oberfläche 42 angibt, das zweite Sensorelement 96 erhält als Detektionsdaten DB einen Wert DB0, der einen Oberflächenkontakt zwischen der Seitenfläche B5 des Werkstücks WP1 und der Innenfläche 46a des Kontaktabschnitts 44 angibt, und das dritte Sensorelement 98 erhält als Detektionsdaten DC einen Wert DC0, der einen Oberflächenkontakt zwischen der Seitenfläche B4 des Werkstücks WP1 und der Innenfläche 48a des Kontaktabschnitts 44 angibt.
  • Mit anderen Worten kann betrachtet werden, dass der Handspitzenabschnitt 40 mit dem Kontaktabschnitt 44 in Kontakt ist und an der Position PS1 und in der Ausrichtung OR1 angeordnet ist, wenn das erste Sensorelement 94 die Detektionsdaten DA0 detektiert, das zweite Sensorelement 96 die Detektionsdaten DB0 detektiert und das dritte Sensorelement 98 die Detektionsdaten DC0 detektiert.
  • Als Nächstes wird eine Funktion des Systems 90 unter Bezugnahme auf 12 beschrieben. Ein in 12 veranschaulichter Ablauf beginnt, wenn der Prozessor 50 einen Positionsbeziehungserfassungsbefehl von dem Bediener, einer Host-Steuerung oder einem Computerprogramm empfängt. Wenn der in 12 veranschaulichte Ablauf beginnt, greift der Handspitzenabschnitt 40 des Roboters 12 das Werkstück WP1 an der vorbestimmten Greifposition.
  • In Schritt S 1 fungiert der Prozessor 50 als der Robotersteuerabschnitt 79 und betreibt den Roboter 12, um den Handspitzenabschnitt 40 an einer Anfangsposition PS0 und in einer im Voraus bestimmten Anfangsausrichtung OR0 anzuordnen. Zum Beispiel kann die Anfangsposition PS0 durch den Bediener als eine Position zum Anordnen des Werkstücks WP1 in dem Handspitzenabschnitt 40 in der Nähe des Kontaktabschnitts 44 bestimmt werden.
  • Die Anfangsausrichtung OR0 kann durch den Bediener mit Konstruktionsabmessungen (CAD-Daten) oder dergleichen des Roboters 12 und der Arbeitsmaschine 14 als eine Ausrichtung bestimmt werden, mit der erwartet wird, dass die z-Achsenrichtung des Benutzerkoordinatensystems C3 im Wesentlichen orthogonal zu der Oberfläche 42 der Arbeitsmaschine 14 ist, erwartet wird, dass die y-Achsenrichtung des Benutzerkoordinatensystems C3 im Wesentlichen orthogonal zu der Innenfläche 46a des Kontaktabschnitts 44 ist und erwartet wird, dass die x-Achsenrichtung des Benutzerkoordinatensystems C3 im Wesentlichen orthogonal zu der Innenfläche 48a des Kontaktabschnitts 44 ist. Die Anfangsposition PS0 und die Anfangsausrichtung OR0 können durch Lehren des Roboters 12 über den Vorgang zum Anordnen des Werkstücks WP1 in der Nähe des Kontaktabschnitts 44 bestimmt werden.
  • In Schritt S2 betreibt der Prozessor 50 den Roboter 12, um den Handspitzenabschnitt 40 entlang einer ersten Achse zu bewegen. Zum Beispiel bewegt der Prozessor 50 den Handspitzenabschnitt 40 in der z-Achsenrichtung des Benutzerkoordinatensystems C3 (d. h. einer Richtung, von der erwartet wird, dass sie orthogonal zu der Oberfläche 42 ist) von der Anfangsposition PS0 und der Anfangsausrichtung OR0.
  • In Schritt S3 bestimmt der Prozessor 50, ob die Detektionsdaten DA, die durch das erste Sensorelement 94 an diesem Punkt detektiert werden, innerhalb eines tolerierbaren Bereichs [DAth1, DAth2] liegen, der im Voraus bestimmt wird. Der Bediener kann im Voraus Schwellenwerte DAth1 und DAth2 bestimmen, die diesen tolerierbaren Bereich [DAth1, DAth2] definieren, unter Verwendung des Werts DA0, der oben beschrieben ist, als eine Referenz (z. B. um den Wert DA0 zu beinhalten).
  • Die Bestimmung durch den Prozessor 50 ist JA, wenn die Detektionsdaten DA innerhalb des tolerierbaren Bereichs liegen (d. h. wenn DAth1 ≤ DA ≤ DAth2 gilt) und die Verarbeitung mit Schritt S4 fortfährt, wohingegen die Bestimmung durch den Prozessor 50 NEIN ist, wenn die Detektionsdaten DA außerhalb des tolerierbaren Bereichs liegen (d. h. wenn DA < DAth1 oder DA > DAth2 gilt) und die Verarbeitung zu Schritt S2 zurückkehrt.
  • Somit schleift die Verarbeitung zwischen Schritt S2 und Schritt S3, bis der Prozessor 50 in Schritt S3 JA bestimmt. Wenn die Bestimmung in Schritt S3 JA ist, kann berücksichtigt werden, dass die untere Oberfläche B1 des Werkstücks WP1 und die Oberfläche 42 in Oberflächenkontakt stehen. Jedes Mal, wenn Schritt S2 ausgeführt wird, kann der Prozessor 50 eine Richtung der Bewegung des Handspitzenabschnitts 40 in diesem Schritt S2 aus einer positiven Richtung der z-Achse und einer negativen Richtung der z-Achse des Benutzerkoordinatensystem C3 als eine Richtung bestimmen, in der sich die Detektionsdaten DA dem tolerierbaren Bereich nähern können.
  • Wenn zum Beispiel Detektionsdaten DAn, die in Schritt S3 für die n-te Zeit verwendet werden, im Vergleich zu Detektionsdaten DAn-1, die in Schritt S3 für die n-1-te Zeit erfasst werden, weiter kleiner als der Schwellenwert DAth1 werden oder weiter größer als der Schwellenwert DAth2 sind, kann eine Richtung der Bewegung des Handspitzenabschnitts 40 in Schritt S2, die für die n+1-te Zeit ausgeführt werden soll, von der Richtung der Bewegung des Handspitzenabschnitts 40, die in dem n-ten Schritt S2 ausgeführt wird, umgekehrt werden. Mit dieser Konfiguration ist es möglich, die Detektionsdaten DA schneller innerhalb des tolerierbaren Bereichs einzustellen.
  • Es sei angemerkt, dass der Prozessor 50 in Schritt S2 die Ausrichtung des Handspitzenabschnitts 40 gemäß den zuletzt erfassten Detektionsdaten DA ändern kann. Zum Beispiel kann der Prozessor 50 die Ausrichtung des Handspitzenabschnitts 40 durch Drehen des Handspitzenabschnitts 40 in der Richtung um die x-Achse, y-Achse oder z-Achse des Benutzerkoordinatensystems C3 ändern.
  • In diesem Fall kann der Prozessor 50 als die Richtung, in der sich die Detektionsdaten DA dem tolerierbaren Bereich nähern können (z. B. die Richtung, mit der die Bodenfläche B1 des Werkstücks WP1 parallel zur Oberfläche 42 wird), die Bewegungsrichtung des Handspitzenabschnitts 40 aus einer Richtung um die x-Achse, die y-Achse oder die z-Achse des Benutzerkoordinatensystems C3 bestimmen.
  • In Schritt S4 betreibt der Prozessor 50 den Roboter 12, um den Handspitzenabschnitt 40 entlang einer zweiten Achse zu bewegen. Zum Beispiel bewegt der Prozessor 50 den Handspitzenabschnitt 40 in der y-Achsenrichtung (d. h. einer Richtung, von der erwartet wird, dass sie orthogonal zur Innenfläche 46a ist) des Benutzerkoordinatensystems C3 von der Position und Ausrichtung an dem Punkt, an dem JA in Schritt S3 bestimmt wird.
  • In Schritt S5 bestimmt der Prozessor 50, ob die Detektionsdaten DB, die durch das zweite Sensorelement 96 an diesem Punkt detektiert werden, innerhalb eines tolerierbaren Bereichs [DAth1, DAth2] liegen, der im Voraus bestimmt wird. Der Bediener kann im Voraus Schwellenwerte DAth1 und DAth2 bestimmen, die diesen tolerierbaren Bereich [DAth1, DAth2] definieren, unter Verwendung des Werts DB0, der oben beschrieben ist, als eine Referenz (z. B. um den Wert DB0 zu beinhalten).
  • Die Bestimmung durch den Prozessor 50 ist JA, wenn die Detektionsdaten DB innerhalb des tolerierbaren Bereichs liegen (d. h. wenn DBth1 ≤ DB ≤ DBth2 gilt) und die Verarbeitung mit Schritt S6 fortfährt, wohingegen die Bestimmung durch den Prozessor 50 NEIN ist, wenn die Detektionsdaten DB außerhalb des tolerierbaren Bereichs liegen (d. h. wenn DB < DBth1 oder DB > DBth2 gilt) und die Verarbeitung zu Schritt S4 zurückkehrt.
  • Somit schleift die Verarbeitung zwischen Schritt S4 und Schritt S5, bis der Prozessor 50 in Schritt S5 JA bestimmt. Wenn die Bestimmung in Schritt S5 JA ist, kann berücksichtigt werden, dass die Seitenoberfläche B5 des Werkstücks WP1 und die Innenoberfläche 46a in Oberflächenkontakt stehen. Jedes Mal, wenn Schritt S4 ausgeführt wird, kann der Prozessor 50 eine Richtung der Bewegung des Handspitzenabschnitts 40 in diesem Schritt S4 aus einer positiven Richtung der y-Achse und einer negativen Richtung der y-Achse des Benutzerkoordinatensystem C3 als eine Richtung bestimmen, in der sich die Detektionsdaten DB dem tolerierbaren Bereich nähern können.
  • Es sei angemerkt, dass der Prozessor 50 in Schritt S4 die Ausrichtung des Handspitzenabschnitts 40 gemäß den zuletzt erfassten Detektionsdaten DB ändern kann. In diesem Fall kann der Prozessor 50 als die Richtung, in der sich die Detektionsdaten DB dem tolerierbaren Bereich nähern können (z. B. die Richtung, mit der die Seitenoberfläche B5 des Werkstücks WP1 parallel zur Innenoberfläche 46a des Kontaktabschnitts 44 wird), die Bewegungsrichtung des Handspitzenabschnitts 40 aus einer Richtung um die x-Achse, die y-Achse oder die z-Achse des Benutzerkoordinatensystems C3 bestimmen.
  • In Schritt S6 betreibt der Prozessor 50 den Roboter 12, um den Handspitzenabschnitt 40 entlang einer dritten Achse zu bewegen. Zum Beispiel bewegt der Prozessor 50 den Handspitzenabschnitt 40 in der x-Achsenrichtung (d. h. einer Richtung, von der erwartet wird, dass sie orthogonal zur Innenfläche 48a ist) des Benutzerkoordinatensystems C3 von der Position und Ausrichtung an dem Punkt, an dem JA in Schritt S5 bestimmt wird.
  • In Schritt S7 bestimmt der Prozessor 50, ob die Detektionsdaten DC, die durch das dritte Sensorelement 98 an diesem Punkt detektiert werden, innerhalb eines tolerierbaren Bereichs [DCth1, DCth2] liegen, der im Voraus bestimmt wird. Der Bediener kann im Voraus Schwellenwerte DCth1 und DCth2 bestimmen, die diesen tolerierbaren Bereich [DCth1, DCth2] definieren, unter Verwendung des Werts DC0, der oben beschrieben ist, als eine Referenz (z. B. um den Wert DC0 zu beinhalten).
  • Die Bestimmung durch den Prozessor 50 ist JA, wenn die Detektionsdaten DC innerhalb des tolerierbaren Bereichs liegen (d. h. wenn DCth1 ≤ DC ≤ DCth2 gilt) und die Verarbeitung mit Schritt S8 fortfährt, wohingegen die Bestimmung durch den Prozessor 50 NEIN ist, wenn die Detektionsdaten DB außerhalb des tolerierbaren Bereichs liegen (d. h. wenn DC < DCth1 oder DC > DCth2 gilt) und die Verarbeitung zu Schritt S6 zurückkehrt. Somit schleift die Verarbeitung zwischen Schritt S6 und Schritt S7, bis der Prozessor 50 in Schritt S7 JA bestimmt.
  • Wenn die Bestimmung in Schritt S7 JA ist, kann berücksichtigt werden, dass die Seitenoberfläche B4 des Werkstücks WP1 und die Innenoberfläche 48a des Kontaktabschnitts 44 in Oberflächenkontakt stehen. Jedes Mal, wenn Schritt S6 ausgeführt wird, kann der Prozessor 50 eine Richtung der Bewegung des Handspitzenabschnitts 40 in diesem Schritt S6 aus einer positiven Richtung der x-Achse und einer negativen Richtung der x-Achse des Benutzerkoordinatensystem C3 als eine Richtung bestimmen, in der sich die Detektionsdaten DC dem tolerierbaren Bereich nähern können.
  • Es sei angemerkt, dass der Prozessor 50 in Schritt S6 die Ausrichtung des Handspitzenabschnitts 40 gemäß den zuletzt erfassten Detektionsdaten DC ändern kann. In diesem Fall kann der Prozessor 50 als die Richtung, in der sich die Detektionsdaten DC dem tolerierbaren Bereich nähern können (z. B. die Richtung, mit der die Seitenoberfläche B4 des Werkstücks WP1 parallel zur Innenoberfläche 48a des Kontaktabschnitts 44 wird), die Bewegungsrichtung des Handspitzenabschnitts 40 aus einer Richtung um die x-Achse, die y-Achse oder die z-Achse des Benutzerkoordinatensystems C3 bestimmen.
  • Wie oben beschrieben, führt der Prozessor 50 die Schritte S2 bis S7 basierend auf den Detektionsdaten DA, DB und DC aus, die durch den Kontaktdetektionssensor 92 erhalten werden, und kann somit automatisch den Betrieb durchführen, um den Handspitzenabschnitt 40 in Kontakt mit dem Kontaktabschnitt 44 zu bringen und den Handspitzenabschnitt 40 an der Position PS1 und Ausrichtung OR1 anzuordnen, wie in 6 veranschaulicht.
  • In Schritt S8 fungiert der Prozessor 50 als der Positionsdatenerfassungsabschnitt 62 und erfasst die ersten Positionsdaten α1 und die zweiten Positionsdaten β1 wie in der oben beschriebenen Ausführungsform. Dann fungiert der Prozessor 50 in Schritt S9 als der Positionsbeziehungserfassungsabschnitt 64, um die dritten Positionsdaten γ1 zu erfassen, wie in der oben beschriebenen Ausführungsform.
  • Wie oben beschrieben, fungiert der Prozessor 50 in der vorliegenden Ausführungsform als der Robotersteuerungsabschnitt 79 und führt automatisch den Betrieb aus, um den Handspitzenabschnitt 40 in Kontakt mit dem Kontaktabschnitt 44 zu bringen und den Handspitzenabschnitt 40 an der Position PS1 und in der Ausrichtung OR1 anzuordnen. Mit dieser Konfiguration kann der Prozess des Erfassens der dritten Positionsdaten γ1 automatisch durchgeführt werden und kann somit leichter und schneller durchgeführt werden.
  • Zusätzlich beinhaltet das System 90 in der vorliegenden Ausführungsform den Kontaktdetektionssensor 92, der detektiert, dass der Handspitzenabschnitt 40 in Kontakt mit dem Kontaktabschnitt 44 ist. Mit dieser Konfiguration kann ein geeigneter Kontakt zwischen dem Handspitzenabschnitt 40 und dem Kontaktabschnitt 44 automatisch und genau detektiert werden, und somit kann der Betrieb zum Anordnen des Handspitzenabschnitts 40 an der Position PS1 und in der Ausrichtung OR1 automatisch und genau ausgeführt werden. Der in 12 veranschaulichte Ablauf kann mit einem relativ einfachen Algorithmus automatisiert werden.
  • Es sei angemerkt, dass der Kontaktdetektionssensor 92 dem Roboter 12 bereitgestellt werden kann. Beispielsweise kann das erste Sensorelement 94 auf der Bodenfläche B1 des Werkstücks WP1 bereitgestellt sein, das einen Teil des Handspitzenabschnitts 40 bildet, das zweite Sensorelement 96 kann auf der Seitenfläche B5 des Werkstücks WP1 bereitgestellt sein und das dritte Sensorelement 98 kann auf der Seitenfläche B4 des Werkstücks WP1 bereitgestellt sein. Auch in diesem Fall kann der Prozessor 50 durch Ausführen der Schritte S1 bis S7 in 12 den Handspitzenabschnitt 40 geeignet in Kontakt mit dem Kontaktabschnitt 44 bringen und den Handspitzenabschnitt 40 an der Position PS1 und in der Ausrichtung OR1 anordnen.
  • Alternativ kann der Kontaktdetektionssensor 92 den vorstehend beschriebenen Kraftsensor 82 beinhalten. Insbesondere erhält der Prozessor 50 aus den Detektionsdaten DFS2, die durch den Kraftsensor 82 detektiert werden, eine Größe |EFS2| der externen Kraft EFS2, die von der Oberfläche 42 der Arbeitsmaschine 14 auf den Handspitzenabschnitt 40 ausgeübt wird, wenn Schritt S2 in 12 ausgeführt wird.
  • Dann bestimmt der Prozessor 50 in Schritt S3, ob |EFS2| innerhalb eines tolerierbaren Bereichs [EFS2_th1, FS2_th2] liegt, der im Voraus bestimmt wird. Der tolerierbare Bereich [EFS2th1, FS2_th2] kann unter Verwendung der Größe der externen Kraft EFS2, die durch den Kraftsensor 82 detektiert wird, als eine Referenz bestimmt werden, wenn die untere Oberfläche B1 des Werkstücks WP1 und die Oberfläche 42 in geeignetem Oberflächenkontakt sind.
  • Gleichermaßen kann der Prozessor 50 aus den Detektionsdaten DFS4, die durch den Kraftsensor 82 detektiert werden, eine Größe |EFS4| der externen Kraft EFS4 erhalten, die von der inneren Oberfläche 46a des Kontaktabschnitts 44 auf den Handspitzenabschnitt 40 ausgeübt wird, wenn Schritt S4 in 12 ausgeführt wird. Dann bestimmt der Prozessor 50 in Schritt S5, ob |EFS4| innerhalb eines tolerierbaren Bereichs [EFS4th1, FS4 th2] liegt, der im Voraus bestimmt wird.
  • Der Prozessor 50 kann aus den Detektionsdaten DFS6, die durch den Kraftsensor 82 detektiert werden, eine Größe |EFS6| der externen Kraft EFS6 erhalten, die von der inneren Oberfläche 46a des Kontaktabschnitts 44 auf den Handspitzenabschnitt 40 ausgeübt wird, wenn Schritt S6 in 12 ausgeführt wird. Dann bestimmt der Prozessor 50 in Schritt S5, ob |EFS6| innerhalb eines tolerierbaren Bereichs [EFS6_th1, FS6_th2] liegt, der im Voraus bestimmt wird. Gemäß diesem Modus fungiert der Kraftsensor 82, der dem Roboter 12 bereitgestellt wird, als der Kontaktdetektionssensor 92, der detektiert, dass der Handspitzenabschnitt 40 in Kontakt mit dem Kontaktabschnitt 44 ist.
  • Als Nächstes wird ein System 100 gemäß noch einer anderen Ausführungsform unter Bezugnahme auf 13 beschrieben. Das System 100 unterscheidet sich von dem vorstehend beschriebenen System 10 darin, dass es ferner eine Entwurfsstützvorrichtung 102 beinhaltet. Die Entwurfsstützvorrichtung 102 beinhaltet eine CAD-Vorrichtung 104 und eine CAM-Vorrichtung 106. Als Reaktion auf eine Eingabe von dem Bediener erzeugt die CAD-Vorrichtung 104 Zeichnungsdaten (dreidimensionale CAD-Daten) eines Robotermodells 102M, das durch Modellieren des in 1 veranschaulichten Roboters 12 erhalten wird, und eines Arbeitsmaschinenmodells 14M, das durch Modellieren der Arbeitsmaschine 14 erhalten wird.
  • Es sei angemerkt, dass in der folgenden Beschreibung ein Modell einer Komponente im realen Raum mit einem Elementnamen „XX“ als „XX-Modell“ bezeichnet wird. Somit beinhaltet das Robotermodell 102M ein Roboterbasismodell 18M, ein Schwenkkörpermodell 20M, ein Roboterarmmodell 22M (ein unteres Armmodell 30M, ein oberes Armmodell 32M), ein Handgelenkmodell 24M und ein Endeffektormodell 26M.
  • Die CAM-Vorrichtung 106 erzeugt ein Betriebsprogramm OP für den Roboter 12 oder die Arbeitsmaschine 14 basierend auf den von der CAD-Vorrichtung 104 erzeugten Zeichnungsdaten. Insbesondere ordnet die CAM-Vorrichtung 106 das Robotermodell 102M und das Arbeitsmaschinenmodell 14M in einem virtuellen Raum zusammen mit dem Roboterkoordinatensystem C1 und dem Arbeitsmaschinenkoordinatensystem C4 als Reaktion auf eine Eingabe von dem Bediener an. In diesem Fall sind das Robotermodell 102M und das Arbeitsmaschinenmodell 14M an einer relativen Position RP1 in den Entwurfsdimensionen in dem virtuellen Raum angeordnet.
  • Dann führt die CAM-Vorrichtung 106 durch Simulation in dem virtuellen Raum einen Betrieb aus, um ein Werkstückmodell WM, das von dem Endeffektormodell 26M an einer vorbestimmten Greifposition gegriffen wird, in Kontakt mit einem Kontaktabschnittsmodell 44M zu bringen, das für das Arbeitsmaschinenmodell 14M bereitgestellt wird, und ein Handspitzenabschnittsmodell 40M an einer vorbestimmten Position PS1_V und Ausrichtung OR1_V durch den Betrieb des Robotermodells 102M anzuordnen. Koordinaten D1_V(X1_V, Y1_V, Z1_V, W1_V, P1_V, R1_V) des Benutzerkoordinatensystems C3 in dem Roboterkoordinatensystem C1, wenn das Handspitzenabschnittsmodell 40M an der Position PS1_V und in der Ausrichtung OR1_V simuliert angeordnet ist, können durch Simulation bekannt sein.
  • Durch diese Simulation erzeugt die CAM-Vorrichtung 106 ein Betriebsprogramm OP1 zum Ausführen des Betriebs zum Anordnen des Handspitzenabschnittsmodells 40M an der Position PS1_V und in der Ausrichtung OR1_V. Das Betriebsprogramm OP1 beinhaltet eine Mehrzahl von Lehrpunkten TPn (n = 1, 2, 3, ..., nMAX), die Durchgangspunkte des Handspitzenabschnittsmodells 40M (insbesondere der Ursprung des MIF-Koordinatensystems C2) zum Bewegen des Handspitzenabschnittsmodells 40M sind, um an der Position PS1_V und in der Ausrichtung OR1_V zu sein, und einen Bewegungspfad zwischen zwei Lehrpunkten TPn und TPn+1.
  • Der letzte Lehrpunkt TPnMAX unter der Mehrzahl von Lehrpunkten TPn kann die Position des Handspitzenabschnittsmodells 40M (den Ursprung des MIF-Koordinatensystems C2) zum Positionieren des Handspitzenabschnittsmodells 40M an der Position PS1_V und in der Ausrichtung OR1_V definieren. Das erzeugte Betriebsprogramm OP1 wird im Speicher 52 gespeichert.
  • Wenn das System 100 mit dem Roboter 12 und der Arbeitsmaschine 14 konstruiert ist, die in dem realen Raum angeordnet sind, um der entworfenen relativen Position RP1 zu entsprechen, kann es eine Differenz zwischen der entworfenen relativen Position RP1 und einer relativen Position RP2 des Roboters 12 und der Arbeitsmaschine 14 in dem realen Raum geben (mit anderen Worten kann eine Änderung von der relativen Position RP1 zu der relativen Position RP2 auftreten). In diesem Fall kann ein Betrieb des Roboters 12 in dem realen Raum gemäß dem durch Simulation erzeugten Betriebsprogramm OP1 den Handspitzenabschnitt 40 nicht geeignet in Kontakt mit dem Kontaktabschnitt 44 bringen und den Handspitzenabschnitt 40 genau an der Position PS1 und der Ausrichtung OR1 anordnen.
  • Somit erfasst der Prozessor 50 in der vorliegenden Ausführungsform Verschiebungsdaten, die die Differenz zwischen der relativen Position RP1 und der relativen Position RP2 angeben, und korrigiert das Betriebsprogramm OP1 unter Verwendung der Verschiebungsdaten. Insbesondere fungiert der Prozessor 50 nach dem Konstruieren des Systems 100 in dem realen Raum als der Positionsdatenerfassungsabschnitt 62, um die ersten Positionsdaten α1 an der relativen Position RP2 zu erfassen, wie in der oben beschriebenen Ausführungsform. Zum Beispiel erfasst der Prozessor 50 die Koordinaten D1(X1, Y1, Z1, W1, P1, R1) als die ersten Positionsdaten α1.
  • Andererseits erfasst der Prozessor 50 die Koordinaten D1_V(X1_V, Y1_V, Z1_V, W1_V, P1_V, R1_V), die mit der relativen Position RP1 in der obigen Simulation erhalten wurden. Dann erfasst der Prozessor 50 eine Differenz ΔD1 = D1 - D1_V zwischen den Koordinaten D1_Vund den Koordinaten D1_V als Verschiebungsdaten ΔD1, die eine Differenz zwischen der relativen Position RP1 und der relativen Position RP2 angeben. Wie oben beschrieben, fungiert der Prozessor 50 in der vorliegenden Ausführungsform als ein Verschiebungsdatenerfassungsabschnitt 108, der die Verschiebungsdaten ΔD1 basierend auf den ersten Positionsdaten α1 (den Koordinaten D1, D1_V) erfasst, die vor (d. h. mit der relativen Position RP1) und nach (d. h. mit der relativen Position RP2) der Änderung der relativen Position RP erfasst wurden.
  • Als Nächstes korrigiert der Prozessor 50 das Betriebsprogramm OP1 unter Verwendung der erfassten Verschiebungsdaten ΔD1. Beispielsweise erzeugt der Prozessor 50 ein neues Betriebsprogramm OP2 durch Korrigieren des im Betriebsprogramm OP1 definierten Lehrpunkts TPn (z. B. des letzten Lehrpunkts TPDMAX) unter Verwendung der Verschiebungsdaten ΔD1.
  • Somit fungiert der Prozessor 50 in der vorliegenden Ausführungsform als ein Korrekturabschnitt 110, der das Betriebsprogramm OP1 unter Verwendung der Verschiebungsdaten ΔD1 korrigiert. Dann fungiert der Prozessor 50 als der Positionsdatenerfassungsabschnitt 62, um die zweiten Positionsdaten β1 zu erfassen, und fungiert als der Positionsbeziehungserfassungsabschnitt 64, um die dritten Positionsdaten γ1 zu erfassen, wie in der oben beschriebenen Ausführungsform.
  • Wie oben beschrieben, beinhaltet die Vorrichtung 60 in der vorliegenden Ausführungsform den Positionsdatenerfassungsabschnitt 62, den Positionsbeziehungserfassungsabschnitt 64, den Verschiebungsdatenerfassungsabschnitt 108 und den Korrekturabschnitt 110, und der Prozessor 50 fungiert als der Positionsdatenerfassungsabschnitt 62, der Positionsbeziehungserfassungsabschnitt 64, der Verschiebungsdatenerfassungsabschnitt 108 und der Korrekturabschnitt 110 der Vorrichtung 60.
  • Gemäß der vorliegenden Ausführungsform kann das Betriebsprogramm OP2 erzeugt werden, um den Roboter 12 zu veranlassen, den Betrieb zum Anordnen des Handspitzenabschnitts 40 an der Position PS1 und in der Ausrichtung OR1 in dem realen Raum auszuführen, während ein Teil (z. B. der Lehrpunkt TPn) der durch die Simulation erzeugten Daten des Betriebsprogramms OP1 korrigiert wird und der verbleibende Teil der Daten des Betriebsprogramms OP1 verwendet wird. Somit kann die Arbeit zum Erzeugen des Betriebsprogramms OP2 für den realen Raum weitgehend reduziert werden.
  • In dem System 100 kann der Prozessor 50 auch die Verschiebungsdaten unter Verwendung der zweiten Positionsdaten β1 erfassen. Insbesondere erfasst der Prozessor 50 die Koordinaten E1_V(x1_V, y1_V, z1_V, w1_V, p1_V, r1_V ) des Benutzerkoordinatensystems C3 in dem Arbeitskoordinatensystem C4, wenn das Handspitzenabschnittsmodell 40M an der Position PS1_V und in der Ausrichtung OR1_V in der oben beschriebenen Simulation simuliert angeordnet ist.
  • Nach dem Konstruieren des Systems 100 in dem realen Raum fungiert der Prozessor 50 als der Positionsdatenerfassungsabschnitt 62, um die oben beschriebenen Koordinaten E1(x1, y1, z1, w1, p1, r1) zu erfassen, die als die zweiten Positionsdaten β1 dienen, wie in der oben beschriebenen Ausführungsform. Dann fungiert der Prozessor 50 als der Verschiebungsdatenerfassungsabschnitt 108, um eine Differenz ΔE1 = E1 - E1_V zwischen den Koordinaten E1 und den Koordinaten E1_V als die Verschiebungsdaten zu erfassen, die eine Differenz zwischen der relativen Position RP1 und der relativen Position RP2 angeben. Dann fungiert der Prozessor 50 als der Korrekturabschnitt 110, um das Betriebsprogramm OP1 unter Verwendung der Verschiebungsdaten ΔE1 zu korrigieren.
  • In dem System 100 kann der Prozessor 50 auch die Verschiebungsdaten unter Verwendung der dritten Positionsdaten γ1 erfassen. Insbesondere erfasst der Prozessor 50 die Koordinaten D2_V(X2_V, Y2_V, Z2_V, W2_V, P2_V, R2_V) des Arbeitsmaschinenkoordinatensystems C4 in dem Roboterkoordinatensystem C1, das in dem virtuellen Raum durch die CAM-Vorrichtung 106 zur Simulation angeordnet ist.
  • Nach dem Konstruieren des Systems 100 in dem realen Raum fungiert der Prozessor 50 als der Positionsbeziehungserfassungsabschnitt 64, um die oben beschriebenen Koordinaten D2(X2, Y2, Z2, W2, P2, R2) zu erfassen, die als die dritten Positionsdaten γ1 dienen, wie in der oben beschriebenen Ausführungsform. Dann fungiert der Prozessor 50 als der Verschiebungsdatenerfassungsabschnitt 108, um die Differenz ΔD2 = D2 - D2_V zwischen den Koordinaten D2 und den Koordinaten D2_V als die Verschiebungsdaten zu erfassen. Dann fungiert der Prozessor 50 als der Korrekturabschnitt 110, um das Betriebsprogramm OP1 unter Verwendung der Verschiebungsdaten ΔD2 zu korrigieren.
  • Gleichermaßen kann der Prozessor 50 die Verschiebungsdaten ΔE2 = E2 - E2_V aus den oben beschriebenen Koordinaten E2(X2, Y2, Z2, W2, P2, R2), die als die dritten Positionsdaten γ1 dienen, und den Koordinaten E2_V(x2_V, y2_V, z2_V, w2_V, p2_V, r2_V) des Roboterkoordinatensystems C1 in dem Arbeitsmaschinenkoordinatensystem C4, das in dem virtuellen Raum angeordnet ist, erfassen und kann das Betriebsprogramm OP1 unter Verwendung der Verschiebungsdaten ΔE2 korrigieren.
  • Der Verschiebungsdatenerfassungsabschnitt 108 und der Korrekturabschnitt 110 können auf das oben beschriebene System 70 angewendet werden. Ein solcher Modus ist in 7 und 14 veranschaulicht. In einem in 7 und 14 veranschaulichten System 70' beinhaltet die Vorrichtung 60 den Positionsdatenerfassungsabschnitt 62, den Positionsbeziehungserfassungsabschnitt 64, den Lehrbefehlsempfangsabschnitt 78, den Robotersteuerungsabschnitt 79, den Verschiebungsdatenerfassungsabschnitt 108 und den Korrekturabschnitt 110.
  • Die Funktion des Systems 70' wird nachstehend beschrieben. Zunächst konstruiert der Bediener das System 70', in dem der Roboter 12 und die Arbeitsmaschine 14 an einer relativen Position RP3 in dem realen Raum angeordnet sind. Mit der relativen Position RP3 betreibt der Bediener die Lehrvorrichtung 72, um den Roboter 12 über den Vorgang zu lehren, um den Handspitzenabschnitt 40 des Roboters 12 in Kontakt mit dem Kontaktabschnitt 44 zu bringen und den Handspitzenabschnitt 40 an einer Position PS1_3 und in einer Ausrichtung OR1_3 anzuordnen.
  • Der Prozessor 50 fungiert als der Lehrbefehlsempfangsabschnitt 78, um den Lehrbefehl TC von der Lehrvorrichtung 72 zu empfangen, fungiert als der Robotersteuerabschnitt 79, um den Roboter 12 als Reaktion auf den Lehrbefehl TC zu betreiben, und ordnet den Handspitzenabschnitt 40 an der Position PS1 und in der Ausrichtung OR1_3 an. Durch diesen Lehrvorgang erzeugt die Lehrvorrichtung 72 (oder der Prozessor 50) ein Betriebsprogramm OP3 zum Ausführen eines Vorgangs zum Anordnen des Handspitzenabschnitts 40 an der Position PS1 und in der Ausrichtung OR1_3. Das Betriebsprogramm OP3 beinhaltet Lehrpunkte TPn (n = 1, 2, 3, ..., nMAX) des Handspitzenabschnitts 40 (oder den Ursprung des MIF-Koordinatensystems C2) zum Bewegen des Handspitzenabschnitts 40, um an der Position PS1 und in der Ausrichtung OR1_3 zu sein, und einen Bewegungspfad zwischen zwei Lehrpunkten TPn und TPn + 1.
  • Als nächstes fungiert der Prozessor 50 als der Positionsdatenerfassungsabschnitt 62, um als erste Positionsdaten α1_3 Koordinaten D1_3(X1_3, Y1_3, Z1_3, W1_3, P1_3, R1_3) des Benutzerkoordinatensystems C3 in dem Roboterkoordinatensystem C1 zu erfassen, wenn der Handspitzenabschnitt 40 an der Position PS1 und in der Ausrichtung OR1_3 angeordnet ist. Der Prozessor 50 fungiert als der Positionsdatenerfassungsabschnitt 62, um die zweiten Positionsdaten β1_3 zu erfassen, und fungiert als der Positionsbeziehungserfassungsabschnitt 64, um die dritten Positionsdaten γ1_3 zu erfassen, die die Positionsbeziehung zwischen dem Roboterkoordinatensystem C1 und dem Arbeitsmaschinenkoordinatensystem C4 in der relativen Position RP3 angeben.
  • Hier kann das System 70' zu einer anderen Fertigungslinie verlagert werden oder mindestens einer von dem Roboter 12 und der Arbeitsmaschine 14 kann in dem System 70' ersetzt werden. In diesem Fall kann in dem System 70' die relative Position des Roboters 12 und der Arbeitsmaschine 14 von der relativen Position RP3 vor dem Verlagern oder Ersetzen zu der relativen Position RP4 nach dem Verlagern oder Ersetzen wechseln. Infolgedessen kann, selbst wenn der Roboter 12 gemäß dem Betriebsprogramm OP3 mit der relativen Position RP4 betrieben wird, der Handspitzenabschnitt 40 nicht geeignet in Kontakt mit dem Kontaktabschnitt 44 kommen.
  • Somit betreibt der Bediener mit der relativen Position RP4 nach dem Verlagern oder Ersetzen die Lehrvorrichtung 72 erneut, um den Roboter 12 über den Vorgang zu lehren, um den Handspitzenabschnitt 40 des Roboters 12 in Kontakt mit dem Kontaktabschnitt 44 zu bringen und den Handspitzenabschnitt 40 an einer Position PS1_4 und in einer Ausrichtung OR1_4 anzuordnen. Als nächstes fungiert der Prozessor 50 als der Positionsdatenerfassungsabschnitt 62, um als erste Positionsdaten α1 Koordinaten D1_4 (X1_4, Y1_4, Z1_4, W1_4, P1_4, R1_4) des Benutzerkoordinatensystems C3 in dem Roboterkoordinatensystem C1 zu erfassen, wenn der Handspitzenabschnitt 40 an der Position PS1_4 und in der Ausrichtung OR1_4 angeordnet ist.
  • Als nächstes fungiert der Prozessor 50 als der Verschiebungsdatenerfassungsabschnitt 108, um eine Differenz ΔD1 = D1_V- D1_V3 zwischen den mit der relativen Position RP3 erfassten Koordinaten D1_V3 und den mit der relativen Position RP4 erfassten Koordinaten D1_V4 als Verschiebungsdaten ΔD1 zu erfassen, die eine Differenz zwischen der relativen Position RP3 und der relativen Position RP4 angeben. Dann fungiert der Prozessor 50 als der Korrekturabschnitt 110, um das Betriebsprogramm OP3 unter Verwendung der erfassten Verschiebungsdaten ΔD1 zu korrigieren. Beispielsweise erzeugt der Prozessor 50 ein neues Betriebsprogramm OP4 durch Korrigieren des im Betriebsprogramm OP3 definierten Lehrpunkts TPn (z. B. des letzten Lehrpunkts TPDMAX) unter Verwendung der Verschiebungsdaten ΔD1.
  • Gemäß der vorliegenden Ausführungsform kann das Betriebsprogramm OP4 zum Betreiben des Roboters 12 mit der relativen Position RP4 erzeugt werden, während ein Teil (z. B. der Lehrpunkt TPn) der mit der relativen Position RP3 erzeugten Daten des Betriebsprogramms OP3 korrigiert wird und der verbleibende Teil der Daten des Betriebsprogramms OP3 verwendet wird. Somit kann die Arbeit zum Erzeugen des Betriebsprogramms OP4 weitgehend reduziert werden.
  • Es versteht sich, dass in dem System 70' der Prozessor 50 nicht nur die Verschiebungsdaten ΔD1, die Verschiebungsdaten ΔE1 basierend auf den zweiten Positionsdaten β1 erfassen kann oder die Verschiebungsdaten ΔD2 oder ΔE2 basierend auf den dritten Positionsdaten γ1 unter Verwendung des unter Bezugnahme auf das vorstehend beschriebene System 100 beschriebenen Verfahrens erfassen kann und das Betriebsprogramm OP3 unter Verwendung der Verschiebungsdaten ΔE1, ΔD2 oder ΔE2 korrigieren kann.
  • Ferner kann in dem System 70' der Kraftsensor 82 des vorstehend beschriebenen Systems 80 anstelle der Lehrvorrichtung 72 verwendet werden, und unter Verwendung desselben Verfahrens wie das System 80 kann der Bediener den Roboter 12 gemäß der externen Kraft EFT betreiben, die auf den Roboter 12 ausgeübt wird, wodurch der Roboter 12 über den Vorgang zum Inkontaktbringen des Handspitzenabschnitts 40 mit dem Kontaktabschnitt 44 für das Anordnen gelehrt wird.
  • Als Nächstes wird ein System 120 gemäß noch einer anderen Ausführungsform unter Bezugnahme auf 15 und 16 beschrieben. Das System 120 unterscheidet sich von dem vorstehend beschriebenen System 10 in der folgenden Konfiguration. Insbesondere beinhaltet das System 120 ferner einen Positionsdetektionssensor 122. Der Positionsdetektionssensor 122 detektiert die Position des Handspitzenabschnitts 40 in dem Arbeitsmaschinenkoordinatensystem C4, wenn der Handspitzenabschnitt 40 an einer vorbestimmten Position PS2 und Ausrichtung OR2 angeordnet ist. In der vorliegenden Ausführungsform beinhaltet der Positionsdetektionssensor 122 eine Berührungssonde, die ein Objekt mit einem Detektionspunkt 122a detektiert, der am vorderen Ende der Berührungssonde in Kontakt mit dem Objekt bereitgestellt ist.
  • Andererseits beinhaltet die Arbeitsmaschine 14 einen Hauptkörper 124 (16), einen beweglichen Abschnitt 126 und einen Bewegungsmechanismus 128. Der bewegliche Abschnitt 126 ist beispielsweise ein Arbeitstisch, ein Werkstückhaltemechanismus (ein Spannmechanismus oder dergleichen) oder eine Spindelachse einer Werkzeugmaschine und ist beweglich in dem Hauptkörper 124 bereitgestellt. Der oben beschriebene Positionsdetektionssensor 122 ist an dem beweglichen Abschnitt 126 befestigt, um sich linear in eine Richtung von dem beweglichen Abschnitt 126 zu erstrecken.
  • Der Bewegungsmechanismus 128 beinhaltet beispielsweise einen Kugelgewindemechanismus und einen Servomotor, der den Kugelgewindemechanismus (beide nicht veranschaulicht) antreibt und den beweglichen Abschnitt 126 in der x-Achse, der y-Achse und der z-Achsen-Richtung des Arbeitsmaschinenkoordinatensystems C4 unter einem Befehl von der Steuervorrichtung 16 bewegt. Ein Bewegungskoordinatensystem C5 ist für den beweglichen Abschnitt 126 (oder den Positionsdetektionssensor 122) eingestellt. Das Bewegungskoordinatensystem C5 dient zum Steuern der Position des beweglichen Abschnitts 126 in dem Arbeitsmaschinenkoordinatensystem C4 und bewegt sich zusammen mit dem beweglichen Abschnitt 126 in dem Arbeitsmaschinenkoordinatensystem C4.
  • Insbesondere stellt der Prozessor 50, wenn er den beweglichen Abschnitt 126 bewegt, das Bewegungskoordinatensystem C5 in dem Arbeitsmaschinenkoordinatensystem C4 ein und erzeugt einen Befehl an den Bewegungsmechanismus 128, um den beweglichen Abschnitt 126 an einer Position anzuordnen, die durch das so eingestellte Bewegungskoordinatensystem C5 definiert ist. Somit kann der Prozessor 50 den beweglichen Abschnitt 126 so anordnen, dass er sich an einer beliebigen Position in dem Arbeitsmaschinenkoordinatensystem C4 befindet. Somit ist die Positionsbeziehung (d. h. die Ursprungsposition und die Richtung jeder Achse) des Bewegungskoordinatensystems C5 in Bezug auf das Arbeitsmaschinenkoordinatensystem C4 bekannt.
  • Andererseits ist ein Detektionspunkt 122a des Positionsdetektionssensors 122 an einer bekannten Position in dem Bewegungskoordinatensystem C5 angeordnet. Somit ist die Position (insbesondere Koordinaten) des Detektionspunkts 122a des Positionsdetektionssensors 122 in dem Arbeitsmaschinenkoordinatensystem C4 durch das Bewegungskoordinatensystem C5 bekannt.
  • Die Funktion des Systems 120 wird nachstehend beschrieben. Zunächst betreibt der Prozessor 50 den Roboter 12, um den Handspitzenabschnitt 40 an einer vorbestimmten Position PS2 und Ausrichtung OR2 anzuordnen. Die Position PS2 wird im Voraus durch den Bediener derart bestimmt, dass, wenn der Handspitzenabschnitt 40 an der Position PS2 angeordnet ist, mindestens ein Teil des Handspitzenabschnitts 40 (z. B. das Werkstück WP1, das durch den Endeffektor 26 gegriffen wird) in einem Bewegungsbereich des Detektionspunkts 122a durch den Bewegungsmechanismus 128 beinhaltet ist.
  • Als Nächstes betreibt der Prozessor 50 den Bewegungsmechanismus 128, um den Positionsdetektionssensor 122 zu bewegen, um zu bewirken, dass der Detektionspunkt 122a des Positionsdetektionssensors 122 eine Mehrzahl von Positionen des Handspitzenabschnitts 40 berührt (kontaktiert). Insbesondere betreibt der Prozessor 50 den Bewegungsmechanismus 128, um unter Verwendung des Detektionspunkts 122a nacheinander drei Punkte PT1, PT2 und PT3 auf der Seitenoberfläche B4 des Werkstücks WP1, das durch den Endeffektor 26 gegriffen wird, zu berühren. Die drei Punkte PT1, PT2 und PT3 sind Punkte, die auf der Seitenoberfläche B4 verteilt angeordnet sind, ohne auf einer geraden Linie ausgerichtet zu sein.
  • Wenn der Detektionspunkt 122a jeden der Punkte PT1, PT2 und PT3 berührt, überträgt der Positionsdetektionssensor 122 jeweilige Detektionsdaten DP1, DP2 und DP3 an den Prozessor 50. Der Prozessor 50 erfasst jeweilige Positionen (Koordinaten) H1, H2 und H3 des Detektionspunkts 122a in dem Arbeitsmaschinenkoordinatensystem C4 zu der Zeit, wenn die jeweiligen Detektionsdaten DP1, DP2 und DP3 empfangen werden. Aus diesen Positionen H1, H2 und H3 kann der Prozessor 50 die Position der Seitenoberfläche B4 in dem Arbeitsmaschinenkoordinatensystem C4 identifizieren.
  • Als Nächstes betreibt der Prozessor 50 den Bewegungsmechanismus 128, um den Positionsdetektionssensor 122 zu bewegen und zu bewirken, dass der Detektionspunkt 122a des Positionsdetektionssensors 122 nacheinander zwei Punkte PT4 und PT5 auf der Seitenoberfläche B5 des Werkstücks WP1 orthogonal zu der Seitenoberfläche B4 berührt, auf der die drei Punkte berührt wurden. Wenn der Detektionspunkt 122a jeden der Punkte PT4 und PT5 berührt, überträgt der Positionsdetektionssensor 122 jeweilige Detektionsdaten DP4 und DP5 an den Prozessor 50.
  • Der Prozessor 50 erfasst jeweilige Positionen (Koordinaten) H4 und H5 des Detektionspunkts 122a in dem Arbeitsmaschinenkoordinatensystem C4 zu der Zeit, wenn die jeweiligen Detektionsdaten DP4 und DP5 empfangen werden. Aus diesen Positionen H4 und H3 kann der Prozessor 50 die Position der Seitenoberfläche B5 in dem Arbeitsmaschinenkoordinatensystem C4 identifizieren.
  • Als Nächstes betreibt der Prozessor 50 den Bewegungsmechanismus 128, um den Positionsdetektionssensor 122 zu bewegen und zu bewirken, dass der Detektionspunkt 122a einen Punkt PT6 auf der unteren Oberfläche B1 des Werkstücks WP1 orthogonal zu der Seitenoberfläche B4 berührt, auf der die drei Punkte berührt wurden, und zu der Seitenoberfläche B5, auf der die zwei Punkte berührt wurden. Wenn der Detektionspunkt 122a den Punkt PT6 berührt, überträgt der Positionsdetektionssensor 122 Detektionsdaten DP6 an den Prozessor 50. Der Prozessor 50 erfasst eine Position (Koordinaten) H6 des Detektionspunkts 122a in dem Arbeitsmaschinenkoordinatensystem C4 zu der Zeit, wenn die Detektionsdaten DP6 empfangen werden. Aus dieser Position H6 kann der Prozessor 50 die Position der unteren Oberfläche B 1 in dem Arbeitsmaschinenkoordinatensystem C4 identifizieren.
  • Auf diese Weise kann der Prozessor 50 die Positionen der Seitenoberflächen B4 und B5 und der unteren Oberfläche B 1 in dem Arbeitsmaschinenkoordinatensystem C4 basierend auf den Detektionsdaten DP1 bis DP6 identifizieren und kann somit die Position und Ausrichtung (d. h. die Ursprungsposition und die Richtung jeder Achse des Benutzerkoordinatensystems C3) des Werkstücks WP1 (Handspitzenabschnitt 40) in dem Arbeitsmaschinenkoordinatensystem C4 identifizieren.
  • Die Koordinaten des Benutzerkoordinatensystems C3 in dem Arbeitsmaschinenkoordinatensystem C4 in diesem Zustand können als bekannte Koordinaten E3(x3, y3, z3, w3, p3, r3) dargestellt werden. Ferner ist die Koordinatentransformationsmatrix M43_2 vom Arbeitsmaschinenkoordinatensystem C4 zum Benutzerkoordinatensystem C3 eine bekannte homogene Transformationsmatrix, und jeder Parameter der Koordinatentransformationsmatrix M43_2 kann aus den Koordinaten E3(x3, y3, z3, w3, p3, r3) erhalten werden. Somit ist die Positionsbeziehung zwischen dem Arbeitsmaschinenkoordinatensystem C4 und dem Benutzerkoordinatensystem C3 bekannt.
  • Dann fungiert der Prozessor 50 als der Positionsdatenerfassungsabschnitt 62, um die zweiten Positionsdaten β2 zu erfassen, die die Position PS2 und Ausrichtung OR2 in dem Arbeitsmaschinenkoordinatensystem C4 angeben, wenn der Handspitzenabschnitt 40 an der Position PS2 und in der Ausrichtung OR2 angeordnet ist. Zum Beispiel erfasst der Prozessor 50 die oben beschriebene Koordinatentransformationsmatrix M43_2 als die zweiten Positionsdaten β2.
  • Andererseits erfasst der Prozessor 50 erste Positionsdaten α2, die die Position PS2 und Ausrichtung OR2 in dem Roboterkoordinatensystem C1 angeben, wenn der Handspitzenabschnitt 40 an der Position PS2 und in der Ausrichtung OR2 angeordnet ist. Die Koordinaten des Benutzerkoordinatensystems C3 in dem Roboterkoordinatensystem C1, wenn der Handspitzenabschnitt 40 an der Position PS2 und in der Ausrichtung OR2 angeordnet ist, werden durch bekannte Koordinaten D3(X3, Y3, Z3, W3, P3, R3) dargestellt. Jeder Parameter einer Koordinatentransformationsmatrix M13_2 vom Roboterkoordinatensystem C1 zum Benutzerkoordinatensystem C3 wird aus den Koordinaten D3(X3, Y3, Z3, W3, P3, R3) erhalten. Zum Beispiel erfasst der Prozessor 50 die Koordinatentransformationsmatrix M13_2 als die ersten Positionsdaten α2.
  • Als Nächstes erfasst der Prozessor 50 unter Verwendung der ersten Positionsdaten α2 und der zweiten Positionsdaten β2, die erfasst wurden, dritte Positionsdaten γ2, die die Positionsbeziehung zwischen dem Roboterkoordinatensystem C1 und dem Arbeitsmaschinenkoordinatensystem C4 angeben. Zum Beispiel erfasst der Prozessor 50 als die dritten Positionsdaten γ2 eine Koordinatentransformationsmatrix M14_2 vom Roboterkoordinatensystem C1 zum Arbeitsmaschinenkoordinatensystem C4. Insbesondere kann der Prozessor 50 unter Verwendung der Koordinatentransformationsmatrix M13 _2 als die ersten Positionsdaten α2, der Koordinatentransformationsmatrix M43 _2 als die zweiten Positionsdaten β2 zur Berechnung durch eine arithmetische Verarbeitung die Koordinatentransformationsmatrix M14_2 aus einer Formel M14_2 = M13 _2 ·inv(M43_2) erhalten.
  • Wie oben beschrieben, erfasst der Prozessor 50 in der vorliegenden Ausführungsform die zweiten Positionsdaten β2 basierend auf den Detektionsdaten DP1 bis DP6 des Positionsdetektionssensors 122, der die Position des Handspitzenabschnitts 40 (insbesondere des Werkstücks WP1) in dem Arbeitsmaschinenkoordinatensystem C detektiert. Mit dieser Konfiguration können die Position und Ausrichtung des Handspitzenabschnitts 40 (d. h. die Positionsbeziehung des Benutzerkoordinatensystems C3) relativ zum Arbeitsmaschinenkoordinatensystem C4 ohne Verwendung des oben beschriebenen Kontaktabschnitts 44 bekannt sein.
  • In der vorliegenden Ausführungsform beinhaltet der Positionsdetektionssensor 122 eine Berührungssonde und wird durch den Bewegungsmechanismus 128 bewegt, um in Kontakt mit dem Handspitzenabschnitt 40 (Werkstück WP1) zu kommen, der an der vorbestimmten Position PS2 und Ausrichtung OR2 angeordnet ist, um die Position des Handspitzenabschnitts 40 in dem Arbeitsmaschinenkoordinatensystem C4 zu detektieren.
  • Mit dieser Konfiguration kann in einem Fall, in dem die Arbeitsmaschine 14 den Bewegungsmechanismus 128 mit hoher Anordnungsgenauigkeit beinhaltet, die Position des Handspitzenabschnitts 40 mit hoher Genauigkeit durch den Positionsdetektionssensor 122 detektiert werden, wodurch die Genauigkeit der zweiten Positionsdaten β2 erhöht werden kann. Ferner kann der Prozess des Erfassens der zweiten Positionsdaten β2 automatisiert werden.
  • In der vorliegenden Ausführungsform wird ein Fall beschrieben, in dem der Prozessor 50 bewirkt, dass der Positionsdetektionssensor 122 die Seitenoberfläche B4, die Seitenoberfläche B5 und die untere Oberfläche B1 des Werkstücks W berührt. Dies sollte jedoch nicht in einem einschränkenden Sinne ausgelegt werden, und der Prozessor 50 kann bewirken, dass der Positionsdetektionssensor 122 eine beliebige der Oberflächen (z. B. drei Oberflächen der Klauenteile 36 orthogonal zueinander) des Handspitzenabschnitts 40 berührt.
  • Der Positionsdetektionssensor 122 kann einen Sichtsensor (einen dreidimensionalen Sichtsensor oder eine zweidimensionale Kamera) beinhalten, der Bilddaten des Handspitzenabschnitts 40 (Werkstück WP1) anstelle (oder zusätzlich zu) der vorstehend beschriebenen Berührungssonde erfasst. Wenn die Position und Ausrichtung des Sichtsensors in dem Arbeitsmaschinenkoordinatensystem C4 bekannt sind, kann der Prozessor 50 die Position und Ausrichtung des Handspitzenabschnitts 40 (Werkstück WP1) in dem Arbeitsmaschinenkoordinatensystem C4 (d. h. die Ursprungsposition und die Richtung jeder Achse des Benutzerkoordinatensystems C3) basierend auf den durch den Sichtsensor erfassten Bilddaten (Detektionsdaten) identifizieren.
  • In dem System 120 kann der Prozessor 50, wie in dem vorstehend beschriebenen System 10, als die ersten Positionsdaten α2 die vorstehend beschriebenen Koordinaten D3(X3, Y3, Z3, W3, P3, R3), die Koordinatentransformationsmatrix M31_2 von dem Benutzerkoordinatensystem C3 zu dem Roboterkoordinatensystem C1, wenn der Handspitzenabschnitt 40 an der Position PS2 und in der Ausrichtung OR2 angeordnet ist, oder Koordinaten D3'(X3', Y3', Z3', W3', P3', R3') des Roboterkoordinatensystems C1 in dem Benutzerkoordinatensystem C3 erfassen.
  • Wie in dem vorstehend beschriebenen System 10 kann der Prozessor 50 als die zweiten Positionsdaten β2 die vorstehend beschriebenen Koordinaten E3(x3, y3, z3, w3, p3, r3), die Koordinatentransformationsmatrix M34_2 von dem Benutzerkoordinatensystem C3 zu dem Arbeitsmaschinenkoordinatensystem C4, wenn der Handspitzenabschnitt 40 an der Position PS2 und in der Ausrichtung OR2 angeordnet ist, oder Koordinaten E3'(x3', y3', z3', w3', p3', r3') des Arbeitsmaschinenkoordinatensystems C4 in dem Benutzerkoordinatensystem C3 erfassen.
  • Wie in dem vorstehend beschriebenen System 10 kann der Prozessor 50 als die dritten Positionsdaten γ2 Koordinaten D4(x4, y4, z4, w4, p4, r4) des Arbeitsmaschinenkoordinatensystems C4 in dem Roboterkoordinatensystem C1, eine Koordinatentransformationsmatrix M41_2 von dem Arbeitsmaschinenkoordinatensystem C4 zu dem Roboterkoordinatensystem C1 oder Koordinaten E4(x4, y4, z4, w4, p4, r4) des Roboterkoordinatensystems C1 in dem Arbeitsmaschinenkoordinatensystem C4 erfassen.
  • Die in 7 veranschaulichte Lehrvorrichtung 72 oder der in 9 veranschaulichte Kraftsensor 82 kann auf das System 120 angewendet werden, und der Bediener kann den Roboter 12 über den Vorgang zum Anordnen des Handspitzenabschnitts 40 an der vorbestimmten Position PS2 und Ausrichtung OR2 lehren. In diesem Fall fungiert der Prozessor 50 des Systems 120 als der vorstehend beschriebene Lehrbefehlsempfangsabschnitt 78 und fungiert als der Robotersteuerabschnitt 79, der den Roboter 12 betreibt, um den Handspitzenabschnitt 40 an der Position PS2 und in der Ausrichtung OR2 anzuordnen.
  • Als Nächstes wird ein System 130 gemäß noch einer anderen Ausführungsform unter Bezugnahme auf 17 bis 22 beschrieben. Das System 130 beinhaltet einen Roboter 132, eine Arbeitsmaschine 134 und die Steuervorrichtung 16. Die Steuervorrichtung 16 steuert die Vorgänge des Roboters 132 und der Arbeitsmaschine 134. Wie in den vorstehend beschriebenen Ausführungsformen sind das Roboterkoordinatensystem C1 und das Arbeitsmaschinenkoordinatensystem C4 jeweils für den Roboter 132 und die Arbeitsmaschine 134 eingestellt.
  • Der Roboter 132 unterscheidet sich von dem vorstehend beschriebenen Roboter 12 in einem Endeffektor 136. Der Endeffektor 136 ist eine Roboterhand, die ein Werkstück WP2 greifen kann, und ist lösbar an dem vorderen Endabschnitt (Handgelenkflansch) des Handgelenks 24 befestigt. Als ein Beispiel beinhaltet der Endeffektor 136 eine Mehrzahl von Klauenteilen, die geöffnet und geschlossen werden können, und einen Klauenteiltreiber, der die Klauenteile (beide nicht veranschaulicht) antreibt. Als ein anderes Beispiel kann der Endeffektor 136 einen Adsorptionsabschnitt (eine Unterdruckerzeugungsvorrichtung, einen Elektromagneten, einen Saugnapf oder dergleichen) beinhalten, der das Werkstück WP2 adsorbieren kann, und der Endeffektor 136 kann das Werkstück WP2 adsorbieren und greifen.
  • Wie in 20 veranschaulicht, weist das Werkstück WP2 in der vorliegenden Ausführungsform einen säulenförmigen (oder zylindrischen) Hauptkörper WA und einen viereckigen prismenförmigen Vorsprung WB auf, der von dem Hauptkörper WA vorsteht. Insbesondere beinhaltet der Hauptkörper WA ein Paar von Endflächen J1 und J2, die jeweils eine im Wesentlichen flache Fläche sind, und eine zylindrische Außenumfangsfläche J3, die sich zwischen den Endflächen J1 und J2 erstreckt.
  • Der Vorsprung WB ist an der Endfläche J2 des Hauptkörpers WA ausgebildet. Insbesondere beinhaltet der Vorsprung WB eine untere Fläche B6 und Seitenflächen B7, B8, B9 und B10, die jeweils eine im Wesentlichen flache Fläche sind. Die Seitenflächen B7 und B8 sind so angeordnet, dass sie einander zugewandt sind, während sie parallel zueinander sind, und orthogonal zu der unteren Fläche B6 sind. Die Seitenflächen B9 und B10 sind so angeordnet, dass sie einander zugewandt sind, während sie parallel zueinander sind, und orthogonal zu der unteren Fläche B6 und den Seitenflächen B7 und B8 sind.
  • Der Endeffektor 136 greift das Werkstück WP2 an einer vorbestimmten Greifposition durch Greifen einer Position des Hauptkörpers WA, die im Voraus bestimmt wird. Wie in 17, 19 und 22 veranschaulicht, kann das Werkstück WP2, das von dem Endeffektor 136 an der vorbestimmten Greifposition gegriffen wird, als mit dem Endeffektor 136 integriert betrachtet werden, d. h. als Teil des Endeffektors 136. Somit bilden der vordere Endabschnitt (Handgelenkflansch) des Handgelenks 24, der Endeffektor 136 und das Werkstück WP2, das von dem Endeffektor 136 an der vorbestimmten Greifposition gegriffen wird, einen Handspitzenabschnitt 140 des Roboters 132.
  • Das Benutzerkoordinatensystem C3 ist in Bezug auf das Werkstück WP2 eingestellt, das von dem Endeffektor 136 an der vorbestimmten Greifposition gegriffen wird. In der vorliegenden Ausführungsform ist das Benutzerkoordinatensystem C3 in Bezug auf das Werkstück WP2 eingestellt, wobei sein Ursprung an dem Mittelpunkt der Bodenfläche B6 ( 20) des Werkstücks WP2 angeordnet ist, das von dem Endeffektor 26 gegriffen wird, wobei seine x-z-Ebene parallel zu der Bodenfläche B6 des Werkstücks WP2 ist, das von dem Endeffektor 26 gegriffen wird, und wobei seine y-z-Ebene parallel zu den Seitenflächen B7 und B8 des Werkstücks WP2 ist, das von dem Endeffektor 26 gegriffen wird.
  • Wie oben beschrieben, kann das Werkstück WP2, das von dem Endeffektor 136 an der vorbestimmten Greifposition gegriffen wird, als mit dem Endeffektor 136 integriert betrachtet werden (d. h. als Teil des Endeffektors 136). Somit ist, wenn die Greifposition und die Form des Werkstücks WP2 bekannt sind, die Positionsbeziehung (die Ursprungsposition und die Richtung jeder Achse) des Benutzerkoordinatensystems C3, das für das von dem Endeffektor 136 gegriffene Werkstück WP2 eingestellt ist, in Bezug auf das MIF-Koordinatensystem C2 bekannt.
  • Somit ist die Positionsbeziehung des Benutzerkoordinatensystems C3 in Bezug auf das Roboterkoordinatensystem C1 durch das MIF-Koordinatensystem C2 bekannt. Somit ist, wie in der oben beschriebenen Ausführungsform, die Positionsbeziehung des Benutzerkoordinatensystems C3 in Bezug auf das Roboterkoordinatensystem C1 als die Koordinaten D(X, Y, Z, W, P, R) des Roboterkoordinatensystems C1 dargestellt, und die Koordinatentransformationsmatrix M13 (und die inverse Transformationsmatrix M31 davon) vom Roboterkoordinatensystem C1 zum Benutzerkoordinatensystem C3 ist eine bekannte homogene Transformationsmatrix.
  • Die Arbeitsmaschine 134 ist beispielsweise eine Werkzeugmaschine und beinhaltet einen Hauptkörper 142, einen Werkstückhaltemechanismus 144 und einen Bewegungsmechanismus 146. Der Werkstückhaltemechanismus 144 ist beweglich an einer Fläche 148 des Hauptkörpers 142 bereitgestellt. In der vorliegenden Ausführungsform ist der Werkstückhaltemechanismus 144 ein Spannmechanismus. Insbesondere, wie in 19, 21 und 22 veranschaulicht, beinhaltet der Werkstückhaltemechanismus 144 eine Spannbasis 150, eine Mehrzahl von Spannklauen 152, die an der Spannbasis 150 bereitgestellt sind, um geöffnet und geschlossen werden zu können, und einen Spanntreiber (nicht veranschaulicht), der die Spannklauen 152 antreibt.
  • Die Spannbasis 150 ist ein säulenförmiges Element mit einer Mittelachse A2 und beinhaltet eine im Wesentlichen flache Haltefläche 150a, die der Außenseite zugewandt ist. Die Spannklauen 152 sind an der Spannbasis 150 bereitgestellt, um auf die Achse A2 zu und von dieser weg bewegbar zu sein. In der vorliegenden Ausführungsform sind insgesamt drei Spannklauen 152 in einem im Wesentlichen gleichen Abstand um die Achse A2 angeordnet. Der Spanntreiber ist beispielsweise ein pneumatischer oder hydraulischer Zylinder oder ist ein Motor und öffnet und schließt die Spannklauen 152 unter einem Befehl von der Steuervorrichtung 16. Ein durch die Spannklauen 152 gegriffenes Objekt wird koaxial mit der Achse A2 gehalten.
  • Wie in 21 und 22 veranschaulicht, wird in der vorliegenden Ausführungsform ein Kontaktabschnitt 154 im Voraus durch die Spannklauen 152 gegriffen. Der Kontaktabschnitt 154 ist ein zylindrisches Element, das ein Paar von Endflächen 156 und 158 beinhaltet, die jeweils eine im Wesentlichen flache Fläche sind, eine Außenumfangsfläche 160, die eine zylindrische Fläche ist, die sich zwischen den Endflächen 156 und 158 erstreckt, und ein Durchgangsloch 162, das durch den Kontaktabschnitt 154 in der axialen Richtung gebildet ist.
  • Das Durchgangsloch 162 weist die gleiche Außenform wie der Vorsprung WB des Werkstücks WP2 auf und nimmt den Vorsprung WB verschiebbar auf, wie nachstehend beschrieben. Insbesondere ist das Durchgangsloch 162 durch Innenflächen 162a, 162b, 162c und 162d definiert, die jeweils eine im Wesentlichen flache Fläche sind. Die Innenflächen 162a und 162b sind so angeordnet, dass sie einander zugewandt sind, während sie parallel zueinander sind. Die Innenflächen 162c und 162d sind so angeordnet, dass sie einander zugewandt sind, während sie orthogonal zu den Innenflächen 162a und 162b sind und parallel zueinander sind.
  • Der Bewegungsmechanismus 146 beinhaltet beispielsweise einen Kugelgewindemechanismus und einen Servomotor, der den Kugelgewindemechanismus (beide nicht veranschaulicht) antreibt und den Werkstückhaltemechanismus 144 in der x-Achse, der y-Achse und der z-Achsen-Richtung des Arbeitsmaschinenkoordinatensystems C4 unter einem Befehl von der Steuervorrichtung 16 bewegt. Das Bewegungskoordinatensystem C5 ist für den Werkstückhaltemechanismus 144 eingestellt.
  • Das Bewegungskoordinatensystem C5 dient zum Steuern der Position des Werkstückhaltemechanismus 144 in dem Arbeitsmaschinenkoordinatensystem C4 und bewegt sich zusammen mit dem Werkstückhaltemechanismus 144 in dem Arbeitsmaschinenkoordinatensystem C4. In der vorliegenden Ausführungsform ist das Bewegungskoordinatensystem C5 in Bezug auf den Werkstückhaltemechanismus 144 eingestellt, wobei sein Ursprung an einem Schnittpunkt zwischen der Achse A2 und der Haltefläche 150a (d. h. dem Mittelpunkt der Haltefläche 150a) angeordnet ist und seine y-Achse orthogonal zu der Haltefläche 150a ist.
  • In der vorliegenden Ausführungsform wird der Kontaktabschnitt 154 durch die Spannklauen 152 gegriffen, während er mit seinen Innenflächen 162a und 162b parallel zu der y-z-Ebene des Bewegungskoordinatensystems C5 ausgerichtet ist und mit seinen Innenflächen 162c und 162d parallel zu der x-y-Ebene des Bewegungskoordinatensystems C5. Infolgedessen bewegt sich der Kontaktabschnitt 154 integral mit dem Werkstückhaltemechanismus 144, während er durch den Werkstückhaltemechanismus 144 koaxial mit der Achse A2 gehalten wird.
  • Insbesondere stellt der Prozessor 50, wenn er den Werkstückhaltemechanismus 144 bewegt, das Bewegungskoordinatensystem C5 in dem Arbeitsmaschinenkoordinatensystem C4 ein und steuert den Bewegungsmechanismus 146, um den Werkstückhaltemechanismus 144 an einer Position anzuordnen, die durch das so eingestellte Bewegungskoordinatensystem C5 definiert ist. Somit kann der Prozessor 50 den Werkstückhaltemechanismus 144 so anordnen, dass er sich an einer beliebigen Position in dem Arbeitsmaschinenkoordinatensystem C4 befindet.
  • Die Positionsbeziehung des Bewegungskoordinatensystems C5 in Bezug auf das Arbeitsmaschinenkoordinatensystem C4 (d. h. die Ursprungsposition und die Richtung jeder Achse) ist bekannt, und das Bewegungskoordinatensystem C5 wird durch die Koordinaten E(x, y, z, w, p, r) des Arbeitsmaschinenkoordinatensystems C4 dargestellt. Die Positionen des Werkstückhaltemechanismus 144 und des Kontaktabschnitts 154 in Bezug auf das Bewegungskoordinatensystem C5 sind bekannt. Somit sind die Positionen des Werkstückhaltemechanismus 144 und des Kontaktabschnitts 154 in dem Arbeitsmaschinenkoordinatensystem C4 durch das Bewegungskoordinatensystem C5 bekannt.
  • Die Funktion des Systems 130 wird nachstehend beschrieben. Zunächst betreibt die Arbeitsmaschine 134 den Bewegungsmechanismus 146, um den Werkstückhaltemechanismus 144 (d. h. den Kontaktabschnitt 154) an einer vorbestimmten Position PSw anzuordnen. Die Positionsbeziehung zwischen dem Arbeitsmaschinenkoordinatensystem C4 und dem Bewegungskoordinatensystem C5 in diesem Zustand ist wie oben beschrieben bekannt, und die Koordinaten des Bewegungskoordinatensystems C5 im Arbeitsmaschinenkoordinatensystem C4 sind als Koordinaten E5(x5, y5, z5, w5, p5, r5) dargestellt. Ferner ist die Koordinatentransformationsmatrix M45_3 vom Arbeitsmaschinenkoordinatensystem C4 zum Bewegungskoordinatensystem C5 eine bekannte homogene Transformationsmatrix, und jeder Parameter der Koordinatentransformationsmatrix M45_3 kann aus den Koordinaten E5(x5, y5, z5, w5, p5, r5) erhalten werden.
  • Als nächstes bringt der Roboter 132 das Werkstück WP2, das von dem Endeffektor 136 an der vorbestimmten Greifposition gegriffen wird, in Kontakt mit dem Kontaktabschnitt 154, wie in 17, 19 und 21 veranschaulicht. Infolgedessen passt der Vorsprung WB des Werkstücks WP2 in das Durchgangsloch 162 des Kontaktabschnitts 154, wobei die untere Fläche B6 des Vorsprungs WB in Oberflächenkontakt mit der Haltefläche 150a ist, die Seitenflächen B7 und B8 des Vorsprungs WB jeweils in Oberflächenkontakt mit den Innenflächen 162a und 162b des Kontaktabschnitts 154 sind und die Seitenflächen B9 und B10 des Vorsprungs WB jeweils in Oberflächenkontakt mit den Innenflächen 162c und 162d des Kontaktabschnitts 154 sind.
  • Somit ist der Handspitzenabschnitt 140 stationär an einer vorbestimmten Position PS3 und Ausrichtung OR3 relativ zu der Arbeitsmaschine 134 angeordnet. In diesem Zustand können das Benutzerkoordinatensystem C3 und das Bewegungskoordinatensystem C5 als miteinander übereinstimmend betrachtet werden. Anders ausgedrückt können das Benutzerkoordinatensystem C3 und das Bewegungskoordinatensystem C5 als die Ursprungspositionen und die Richtungen der x-Achse, y-Achse und z-Achsen-Richtungen als miteinander übereinstimmend betrachtet werden.
  • Somit ist die Positionsbeziehung des Benutzerkoordinatensystems C3 in Bezug auf das Arbeitsmaschinenkoordinatensystem C4 in diesem Zustand bekannt, und die Koordinaten des Benutzerkoordinatensystems C3 im Arbeitsmaschinenkoordinatensystem C4 sind durch die oben beschriebenen Koordinaten E5(x5, y5, z5, w5, p5, r5) dargestellt, und die Koordinatentransformationsmatrix M43_3 vom Arbeitsmaschinenkoordinatensystem C4 zum Benutzerkoordinatensystem C3 ist gleich der oben beschriebenen Koordinatentransformationsmatrix M45_3.
  • Wenn der Handspitzenabschnitt 140 (insbesondere das Werkstück WP2) somit mit dem Kontaktabschnitt 154 in Kontakt kommt, ist der Handspitzenabschnitt 140 stationär an der vorbestimmten Position PS3 und Ausrichtung OR3 relativ zu der Arbeitsmaschine 134 angeordnet. Die Positionsbeziehung des Benutzerkoordinatensystems C3 relativ zu dem Arbeitsmaschinenkoordinatensystem C4 (d. h. die Position PS3 und Ausrichtung OR3 des Handspitzenabschnitts 140) in diesem Zustand ist bekannt. Somit dient der Kontaktabschnitt 154 als ein Element zum Darstellen der Position PS3 und Ausrichtung OR3 des Handspitzenabschnitts 140 in dem Arbeitsmaschinenkoordinatensystem C4.
  • Dann fungiert der Prozessor 50 als der Positionsdatenerfassungsabschnitt 62, um zweite Positionsdaten β3 zu erfassen, die die Position PS3 und Ausrichtung OR3 in dem Arbeitsmaschinenkoordinatensystem C4 angeben, wenn der Handspitzenabschnitt 140 an der Position PS3 und in der Ausrichtung OR3 angeordnet ist. Als ein Beispiel erfasst der Prozessor 50 als die zweiten Positionsdaten β3 die Koordinaten E5(x5, y5, z5, w5, p5, r5) oder die oben beschriebene Koordinatentransformationsmatrix M43_3.
  • Als ein anderes Beispiel kann der Prozessor 50 als die zweiten Positionsdaten β3 eine Koordinatentransformationsmatrix M34_3 = inv(M43_3) von dem Benutzerkoordinatensystem C3 zu dem Arbeitsmaschinenkoordinatensystem C4 oder Koordinaten E5'(x5', y5', z5', w5', p5', r5') des Arbeitsmaschinenkoordinatensystems C4 in dem Benutzerkoordinatensystem C3 erfassen, wenn der Handspitzenabschnitt 140 an der Position PS3 und in der Ausrichtung OR3 angeordnet ist.
  • Andererseits erfasst der Prozessor 50 erste Positionsdaten α3, die die Position PS3 und Ausrichtung OR3 in dem Roboterkoordinatensystem C1 angeben, wenn der Handspitzenabschnitt 140 an der Position PS3 und in der Ausrichtung OR3 angeordnet ist. Als ein Beispiel erfasst der Prozessor 50 als die ersten Positionsdaten α3 Koordinaten D5(X5, Y5, Z5, W5, P5, R5) des Benutzerkoordinatensystems C3 in dem Roboterkoordinatensystem C1 oder eine Koordinatentransformationsmatrix M13_3 von dem Roboterkoordinatensystem C1 zu dem Benutzerkoordinatensystem C3, wenn der Handspitzenabschnitt 140 an der Position PS3 und in der Ausrichtung OR3 angeordnet ist.
  • Als ein anderes Beispiel kann der Prozessor 50 als die ersten Positionsdaten α3 Koordinaten D5'(X5', Y5', Z5', W5', P5', R5') des Roboterkoordinatensystems C1 in dem Benutzerkoordinatensystem C3 oder eine Koordinatentransformationsmatrix M31_3 von dem Benutzerkoordinatensystem C3 zu dem Roboterkoordinatensystem C1 erfassen, wenn der Handspitzenabschnitt 140 an der Position PS3 und in der Ausrichtung OR3 angeordnet ist.
  • Als nächstes fungiert der Prozessor 50 unter Verwendung der ersten Positionsdaten α3 und der zweiten Positionsdaten β3, die erfasst wurden, als der Positionsbeziehungserfassungsabschnitt 64, um dritte Positionsdaten γ3 zu erfassen, die die Positionsbeziehung zwischen dem Roboterkoordinatensystem C1 und dem Arbeitsmaschinenkoordinatensystem C4 angeben. Als ein Beispiel erhält der Prozessor 50 durch eine arithmetische Verarbeitung als die dritten Positionsdaten γ3 eine Koordinatentransformationsmatrix M14_3 von dem Roboterkoordinatensystem C1 zu dem Arbeitsmaschinenkoordinatensystem C4 aus einer Formel M14_3 = M13_3 · M34_3 = M13_3 · inv(M43_3).
  • Als ein weiteres Beispiel kann der Prozessor 50 als die dritten Positionsdaten γ3 eine Koordinatentransformationsmatrix M41_3 (= inv(M14_3)) vom Arbeitsmaschinenkoordinatensystem C4 zum Roboterkoordinatensystem C1, Koordinaten D6(X6, Y6, Z6, W6, P6, R6) des Arbeitsmaschinenkoordinatensystems C4 in dem Roboterkoordinatensystem C1 oder Koordinaten E6(x6, y6, z6, w6, p6, r6) des Roboterkoordinatensystems C1 in dem Arbei tsmaschinenkoordinatensystem C4 erfassen.
  • Wie oben beschrieben, kann der Prozessor 50 gemäß der vorliegenden Ausführungsform die dritten Positionsdaten γ3 durch Anordnen des Handspitzenabschnitts 140 an einer Position PS3 und in einer Ausrichtung OR3 erfassen, ohne einen Prozess des Berührens einer Mehrzahl von Punkten, die auf die Arbeitsmaschine 134 eingestellt sind, unter Verwendung des Handspitzenabschnitts 140 auszuführen. Somit kann der Prozess des Erhaltens der Positionsbeziehung zwischen dem Roboterkoordinatensystem C1 und dem Arbeitsmaschinenkoordinatensystem C4 weitgehend vereinfacht werden.
  • Es sei angemerkt, dass der vorstehend beschriebene Kontaktdetektionssensor 92 auf das System 130 angewendet werden kann. Beispielsweise ist das erste Sensorelement 94 des Kontaktdetektionssensors 92 im Mittelabschnitt der Halteoberfläche 150a (oder der unteren Oberfläche B6 des Werkstücks WP2) des Werkstückhaltemechanismus 144 bereitgestellt, das zweite Sensorelement 96 ist auf der inneren Oberfläche 162a oder 162b des Kontaktabschnitts 154 (oder der Seitenoberfläche B7 oder B8 des Werkstücks WP2) bereitgestellt und das dritte Sensorelement 98 ist auf der inneren Oberfläche 162c oder 162d des Kontaktabschnitts 154 (oder der Seitenoberfläche B9 oder B10 des Werkstücks WP2) bereitgestellt.
  • In diesem Fall kann der Prozessor 50 den in 12 veranschaulichten Ablauf ausführen. Beispielsweise kann der Prozessor 50 in Schritt S1 die Anfangsposition PS0 und die Anfangsausrichtung OR0 so anordnen, dass mindestens ein Teil des Vorsprungs WB des Werkstücks WP2 in das Durchgangsloch 162 des Kontaktabschnitts 154 eingepasst ist. In Schritt S2 kann der Prozessor 50 den Handspitzenabschnitt 140 in der y-Achsenrichtung (d. h. der Richtung, von der erwartet wird, dass sie orthogonal zur Haltefläche 150a ist) des Benutzerkoordinatensystems C3 an diesem Punkt bewegen.
  • In Schritt S4 kann der Prozessor 50 den Handspitzenabschnitt 140 in der x-Achsenrichtung (d. h. der Richtung, von der erwartet wird, dass sie orthogonal zur Innenfläche 162a oder 162b ist) des Benutzerkoordinatensystems C3 an diesem Punkt bewegen. In Schritt S6 kann der Prozessor 50 den Handspitzenabschnitt 140 in der z-Achsenrichtung (d. h. der Richtung, von der erwartet wird, dass sie orthogonal zur Innenfläche 162c oder 162d ist) des Benutzerkoordinatensystems C3 an diesem Punkt bewegen. Auf diese Weise kann der Prozessor 50 automatisch den Betrieb ausführen, um den Handspitzenabschnitt 140 in Kontakt mit dem Kontaktabschnitt 154 zu bringen und den Handspitzenabschnitt 140 in der vorbestimmten Position PS3 und Ausrichtung OR3 anzuordnen, indem er den in 12 veranschaulichten Ablauf ausführt.
  • Der Verschiebungsdatenerfassungsabschnitt 108 und der vorstehend beschriebene Korrekturabschnitt 110 können auf das System 130 angewendet werden. Zum Beispiel erfasst der Prozessor 50 die ersten Positionsdaten α3 (z. B. Koordinaten D5) oder die zweiten Positionsdaten β3 (z. B. die Koordinaten E5) vor und nach dem Verlagern des Systems 130 oder dem Ersetzen des Roboters 132 oder der Arbeitsmaschine 134 (oder wenn die Simulation auf die tatsächliche Maschine angewendet wird).
  • Dann kann der Prozessor 50 als der Verschiebungsdatenerfassungsabschnitt 108 fungieren, um eine Differenz zwischen zwei Teilen von Positionsdaten, die vor und nach dem Verlagern oder Ersetzen erfasst wurden, unter Verwendung des Verfahrens zu berechnen, das das gleiche ist wie das, das in dem vorstehend beschriebenen System 100 verwendet wird, um die Verschiebungsdaten Δ zu erfassen, die eine Differenz zwischen einer relativen Position RP5 vor dem Verlagern oder Ersetzen und einer relativen Position RP6 nach dem Verlagern oder Ersetzen angeben. Dann kann der Prozessor 50 als der Korrekturabschnitt 110 fungieren, um das vor dem Verlagern oder Ersetzen erzeugte Betriebsprogramm OP unter Verwendung der erfassten Verschiebungsdaten Δ zu korrigieren.
  • Der vorstehend beschriebene Positionsdetektionssensor 122 (Berührungssonde) kann auf das System 130 angewendet werden. Insbesondere ist der Positionsdetektionssensor 122 an dem Werkstückhaltemechanismus 144 der Arbeitsmaschine 134 befestigt (z. B. durch die Spannklauen 152 gegriffen). Dann ordnet der Prozessor 50 den Handspitzenabschnitt 140 an einer vorbestimmten Position PS4 und Ausrichtung OR4 an.
  • Als Nächstes betreibt der Prozessor 50 den Bewegungsmechanismus 146, um den Positionsdetektionssensor 122 zu bewegen und zu bewirken, dass der Detektionspunkt 122a des Positionsdetektionssensors 122 eine Mehrzahl von Positionen des Handspitzenabschnitts 140 (Werkstück WP2) berührt (kontaktiert). Zum Beispiel betreibt der Prozessor 50 den Bewegungsmechanismus 146, um unter Verwendung des Detektionspunkts 122a nacheinander drei Punkte PT1, PT2 und PT3 auf der Seitenoberfläche B7 (oder B8) des Werkstücks WP2, das durch den Endeffektor 136 gegriffen wird, zu berühren.
  • Als Nächstes betreibt der Prozessor 50 den Bewegungsmechanismus 146, um unter Verwendung des Detektionspunkts 122a nacheinander zwei Punkte PT4 und PT5 auf der Seitenoberfläche B9 (oder B10) des Werkstücks WP2, das durch den Endeffektor 136 gegriffen wird, zu berühren. Als Nächstes betreibt der Prozessor 50 den Bewegungsmechanismus 146, um unter Verwendung des Detektionspunkts 122a einen Punkt P6 auf der unteren Oberfläche B6 des Werkstücks WP2, das durch den Endeffektor 136 gegriffen wird, zu berühren.
  • Dann kann der Prozessor 50 die Position und Ausrichtung (d. h. die Ursprungsposition und die Richtung jeder Achse des Benutzerkoordinatensystems C3) des Werkstücks WP2 (Handspitzenabschnitt 140) in dem Arbeitsmaschinenkoordinatensystem C4 basierend auf den Detektionsdaten DP1 bis DP6, die von dem Positionsdetektionssensor 122 empfangen werden, wenn der Detektionspunkt 122a die sechs jeweiligen Punkte PT1 bis PT6 berührt, wie bei dem vorstehend beschriebenen System 120 identifizieren und somit die zweiten Positionsdaten β4 erfassen.
  • Wenn der Positionsdetektionssensor 122 auf diese Weise auf das System 130 angewendet wird, kann der Prozessor 50 die zweiten Positionsdaten β4 (z. B. die Koordinaten E des Benutzerkoordinatensystems C3 in dem Arbeitsmaschinenkoordinatensystem C4) unter Verwendung des Positionsdetektionssensors 122 erfassen, bevor und nachdem das System 130 verlagert wird oder der Roboter 132 oder die Arbeitsmaschine 134 ersetzt wird (oder wenn die Simulation auf die tatsächliche Maschine angewendet wird).
  • Dann kann der Prozessor 50 unter Verwendung eines Verfahrens, das dem in dem vorstehend beschriebenen System 100 ähnlich ist, als der Verschiebungsdatenerfassungsabschnitt 108 fungieren, um eine Differenz zwischen den zwei Teilen von zweiten Positionsdaten β4 zu berechnen, die vor und nach dem Verlagern oder dem Ersetzen erfasst wurden (oder wenn die Simulation auf die tatsächliche Maschine angewendet wird), wodurch Verschiebungsdaten ΔE3 (oder ΔE1), die eine Differenz zwischen der relativen Position RP5 vor dem Verlagern oder dem Ersetzen (oder der relativen Position RP1 zum Zeitpunkt der Ausführung der Simulation) und der relativen Position RP6 nach dem Verlagern oder dem Ersetzen (oder der relativen Position RP2, nachdem das System 130 in dem realen Raum konstruiert ist) angeben, erfasst werden können.
  • Zum Beispiel erfasst der Prozessor 50 Koordinaten E7(x7, y7, z7, w7, p7, r7) des Benutzerkoordinatensystems C3 in dem Arbeitsmaschinenkoordinatensystem C4 als die zweiten Positionsdaten β4 mit der relativen Position RP5 vor dem Verlagern oder dem Ersetzen (oder zum Zeitpunkt der Ausführung der Simulation) und erfasst Koordinaten E5(x5, y8, z8, w8, p8, r8) des Benutzerkoordinatensystems C3 in dem Arbeitsmaschinenkoordinatensystem C4 als die zweiten Positionsdaten β4 mit der relativen Position RP6 nach dem Verlagern oder dem Ersetzen (oder nachdem das System 130 in dem realen Raum konstruiert ist).
  • Dann fungiert der Prozessor 50 als der Verschiebungsdatenerfassungsabschnitt 108, um eine Differenz ΔE3 = E8 - E7 zwischen den Koordinaten E7 und den Koordinaten Es als die Verschiebungsdaten ΔE3 zu erfassen. Der Prozessor 50 kann als der Korrekturabschnitt 110 fungieren, um ein vor dem Verlagern oder dem Ersetzen (oder zum Zeitpunkt der Ausführung der Simulation) erzeugtes Betriebsprogramm OP5 der Arbeitsmaschine 134 unter Verwendung der erfassten Verschiebungsdaten ΔE3 (= E8 - E7) zu korrigieren. Insbesondere kann der Prozessor 50 unter Verwendung der erfassten Verschiebungsdaten Δ den im Betriebsprogramm OP5 der Arbeitsmaschine 134 definierten Lehrpunkt der vorstehend beschriebenen Position PSw korrigieren, um ein neues Betriebsprogramm OP6 zu erzeugen.
  • Es sei angemerkt, dass die Position PS3 und Ausrichtung OR3 zum Anordnen des Handspitzenabschnitts 140 in dem System 130 eine Zielposition und Ausrichtung für den Roboter 132 sein kann, um eine vorbestimmte Arbeit (wie etwa das Handhaben eines Werkstücks) an der Arbeitsmaschine 134 in einem tatsächlichen Fertigungsprozess durchzuführen. Zum Beispiel betreibt der Prozessor 50 in dem tatsächlichen Fertigungsprozess den Bewegungsmechanismus 146 der Arbeitsmaschine 134, um den Werkstückhaltemechanismus 144 an der vorbestimmten Position PSw anzuordnen.
  • Dann betreibt der Prozessor 50 den Roboter 132, um zu bewirken, dass die an der Position PSw angeordneten Spannklauen 152 des Werkstückhaltemechanismus 144 das durch den Endeffektor 136 gegriffene Werkstück an der vorbestimmten Greifposition greifen, um das Werkstück an den Werkstückhaltemechanismus 144 zu übergeben. Als Nächstes betreibt der Prozessor 50 die Arbeitsmaschine 134, um das Werkstück unter Verwendung eines Werkzeugs zu bearbeiten, während das durch den Werkstückhaltemechanismus 144 gehaltene Werkstück durch den Bewegungsmechanismus 146 bewegt wird.
  • Nachdem das Werkstück bearbeitet wurde, betreibt der Prozessor 50 den Bewegungsmechanismus 146 der Arbeitsmaschine 134, um den Werkstückhaltemechanismus 144 erneut an der Position PSW anzuordnen, und betreibt den Roboter 132, um unter Verwendung des Endeffektors 136 das durch den Werkstückhaltemechanismus 144 gehaltene bearbeitete Werkstück zu empfangen.
  • In einer derartigen Reihe von Fertigungsprozessen können die oben beschriebene vorbestimmte Position PS3 und Ausrichtung OR3 derart eingestellt sein, dass die Zielposition und Ausrichtung für den Roboter 132, um die Arbeit des Handhabens eines Werkstücks für die Arbeitsmaschine 134 durchzuführen (d. h. das Übergeben des Werkstücks an den Werkstückhaltemechanismus 144 und das Empfangen des Werkstücks von dem Werkstückhaltemechanismus 144), mit der vorbestimmten Position PS3 und Ausrichtung OR3 übereinstimmen. Der Prozessor 50 kann ein Betriebsprogramm OP7 erzeugen, um den Roboter 132 und die Arbeitsmaschine 134 zusammenzuarbeiten, um eine Reihe von Fertigungsprozessen unter Verwendung der Positionsdaten über die vorbestimmte Position PS3 und Ausrichtung OR3 und der erfassten dritten Positionsdaten γ3 auszuführen.
  • Mit dieser Konfiguration können die dritten Positionsdaten γ3 in einem Zustand erfasst werden, in dem der Handspitzenabschnitt 140 (Endeffektor 136) an der Zielposition und Ausrichtung angeordnet ist. Somit kann der Roboter 132 in dem tatsächlichen Fertigungsprozess Arbeit an der Arbeitsmaschine 134 (wie etwa das Handhaben eines Werkstücks) mit hoher Genauigkeit ausführen. Es sei angemerkt, dass die vorbestimmte Position PS1 und Ausrichtung OR1 in dem oben beschriebenen System 10 oder die vorbestimmte Position PS2 und Ausrichtung OR2 in dem System 120 gleichermaßen als die Zielposition und Ausrichtung für den Roboter 12 eingestellt sein können, um einen vorbestimmten Vorgang an der Arbeitsmaschine 14 durchzuführen.
  • Es sei angemerkt, dass in dem System 130 der Bewegungsmechanismus 146 weggelassen werden kann und der Werkstückhaltemechanismus 144 an einer bekannten Position PSw in dem Arbeitsmaschinenkoordinatensystem C4 fixiert sein kann. In diesem Fall kann die Positionsbeziehung des Benutzerkoordinatensystems C3 relativ zu dem Arbeitsmaschinenkoordinatensystem C4, wenn das Werkstück WP2 in dem Handspitzenabschnitt 140 mit dem Kontaktabschnitt 154 in Kontakt kommt, als die in 21 veranschaulichte Positionsbeziehung bekannt sein.
  • In einem Fall, in dem der Bewegungsmechanismus 146 aus dem System 130 weggelassen wird, kann die Arbeitsmaschine 134 ferner ein Werkzeug, das das durch den Werkstückhaltemechanismus 144 gehaltene Werkstück bearbeitet, und einen Bewegungsmechanismus (beide nicht veranschaulicht) beinhalten, der das Werkzeug relativ zu dem Werkstückhaltemechanismus 144 bewegt, und der Bewegungsmechanismus kann den vorstehend beschriebenen Positionsdetektionssensor 122 (Berührungssonde) bewegen, wobei der Positionsdetektionssensor 122 an dem Werkzeug befestigt ist.
  • In diesem Fall kann der Prozessor 50 die zweiten Positionsdaten β4 erfassen, indem er bewirkt, dass der Bewegungsmechanismus den Positionsdetektionssensor 122 in einem Zustand bewegt, in dem der Handspitzenabschnitt 140 des Roboters 132 an der vorbestimmten Position PS3 und Ausrichtung OR3 angeordnet ist, um beliebige Punkte PT1 bis PT6 des Handspitzenabschnitts 140 unter Verwendung des Detektionspunkts 122a zu berühren. Die Position PS3 und Ausrichtung OR3, an und in der der Handspitzenabschnitt 140 angeordnet ist, können die vorstehend beschriebene Zielposition und Ausrichtung sein.
  • In dem System 130 können der Kontaktabschnitt 154 und das Werkstück WP2 derart konfiguriert sein, dass eine Anordnung des Kontaktabschnitts 154 und des Werkstücks WP2, die aneinander passen, wie in 21 veranschaulicht, die gleiche Form (Dimensionen) wie ein Werkstück WP3 aufweist, das ein Ziel der Arbeit in dem tatsächlichen Fertigungsprozess sein soll. Die dritten Positionsdaten γ3, die mit dieser Konfiguration erfasst werden, sind äquivalent zu denen, die unter Verwendung des Werkstücks WP3 erfasst werden, das in dem tatsächlichen Fertigungsprozess verwendet wird. Somit kann die Genauigkeit der Handhabung des Werkstücks durch den Roboter 132 in dem tatsächlichen Fertigungsprozess weiter verbessert werden.
  • In dem System 130 können die dritten Positionsdaten γ3 unter Verwendung des Werkstücks WP3, das das Ziel der Arbeit in dem tatsächlichen Fertigungsprozess ist, anstelle des Kontaktabschnitts 154 und des Werkstücks WP2 erfasst werden. Diese Funktion wird nachstehend unter Bezugnahme auf 23 und 24 beschrieben. Das Werkstück WP3 ist ein säulenförmiges Element und beinhaltet ein Paar von Endflächen K1 und K2 und eine Außenumfangsfläche K3.
  • Der Endeffektor 136 greift das Werkstück WP3 an einer vorbestimmten Greifposition durch Greifen einer Position des Werkstücks WP3, die im Voraus bestimmt wird. In diesem Fall bilden der vordere Endabschnitt (Handgelenkflansch) des Handgelenks 24, der Endeffektor 136 und das Werkstück WP3, das von dem Endeffektor 136 an der vorbestimmten Greifposition gegriffen wird, einen Handspitzenabschnitt 140' des Roboters 132.
  • Das Benutzerkoordinatensystem C3 ist in Bezug auf das Werkstück WP3 eingestellt, das von dem Endeffektor 136 an der vorbestimmten Greifposition gegriffen wird. In der vorliegenden Ausführungsform ist das Benutzerkoordinatensystem C3 in Bezug auf das Werkstück WP3 eingestellt, wobei sein Ursprung an dem Mittelpunkt einer Endfläche K2 des Werkstücks WP3 angeordnet ist, das von dem Endeffektor 26 gegriffen wird, und wobei seine x-z-Ebene parallel zu der Endfläche K2 des Werkstücks WP3 ist, das von dem Endeffektor 26 gegriffen wird.
  • Der Prozessor 50 betreibt den Roboter 132, um die Endfläche K2 des Werkstücks WP3 in Kontakt mit der Haltefläche 150a des Werkstückhaltemechanismus 144 zu bringen, und betreibt den Spanntreiber, um das Werkstück WP3 mit den Spannklauen 152 zu greifen. Infolgedessen wird der Handspitzenabschnitt 140' durch den Werkstückhaltemechanismus 144 stationär an der vorbestimmten Position PS3 und Ausrichtung OR3 angeordnet gehalten.
  • In diesem Zustand ist der Ursprung des Benutzerkoordinatensystems C3 an dem Mittelpunkt der Haltefläche 150a (d. h. dem Ursprung des Bewegungskoordinatensystems C5) angeordnet und die y-Achse des Benutzerkoordinatensystems C3 ist in einer Richtung orthogonal zu der Haltefläche 150a. Hier behält der Prozessor 50 in der vorliegenden Ausführungsform die Ausrichtung des Handspitzenabschnitts 140', wenn die Endfläche K2 des Werkstücks WP3 in Kontakt mit der Haltefläche 150a kommt, in einer bekannten Ausrichtung im Arbeitskoordinatensystem C4 bei.
  • Beispielsweise behält der Prozessor 50 die Ausrichtung des Handspitzenabschnitts 140', wenn das Werkstück WP3 in Kontakt mit der Haltefläche 150a kommt, in einer Ausrichtung bei, bei der die positive z-Achsen-Richtung des Benutzerkoordinatensystems C3 mit der vertikalen Aufwärtsrichtung übereinstimmt. In diesem Fall, wenn das Werkstück WP3 durch die Spannklauen 152 gegriffen wird und der Handspitzenabschnitt 140' an der Position PS3 und in der Ausrichtung OR3 angeordnet ist, wird die Ausrichtung des Handspitzenabschnitts 140' in einer Ausrichtung beibehalten, bei der die positive z-Achsen-Richtung des Benutzerkoordinatensystems C3 mit der vertikalen Aufwärtsrichtung übereinstimmt.
  • Andererseits kann in dem Arbeitskoordinatensystem C4 die vertikale Aufwärtsrichtung (z. B. die positive z-Achsen-Richtung des Arbeitskoordinatensystems C4) identifiziert werden. Somit ist es möglich, die z-Achsen-Richtung des Benutzerkoordinatensystems C3 in dem Arbeitskoordinatensystem C4 zu identifizieren, wenn der Handspitzenabschnitt 140' an der Position PS3 und in der Ausrichtung OR3 angeordnet ist. Somit können die Ursprungsposition, die y-Achsen-Richtung und die z-Achsen-Richtung des Benutzerkoordinatensystems C3 in dem Arbeitskoordinatensystem C4 identifiziert werden. Somit kann die Positionsbeziehung des Benutzerkoordinatensystems C3 relativ zu dem Arbeitskoordinatensystem C4 (d. h. die Position und Ausrichtung des Handspitzenabschnitts 140') bekannt sein.
  • Gemäß der vorliegenden Ausführungsform ist die Ausrichtung des Handspitzenabschnitts 140', wenn der Handspitzenabschnitt 140' an der Position PS3 und in der Ausrichtung OR3 angeordnet ist, auf eine bekannte Ausrichtung in dem Arbeitskoordinatensystem C4 eingestellt. Somit können die zweiten Positionsdaten β3, die die Position und Ausrichtung des Handspitzenabschnitts 140' in dem Arbeitskoordinatensystem C4 angeben, ohne Verwendung des Kontaktabschnitts 154 und des in 21 veranschaulichten Werkstücks WP2 erfasst werden.
  • Es sei angemerkt, dass der Prozessor 50 die Ausrichtung des Handspitzenabschnitts 140', wenn das Werkstück WP3 in Kontakt mit der Haltefläche 150a kommt, in einer Ausrichtung, bei der die positive z-Achsen-Richtung des Benutzerkoordinatensystems C3 mit der im Arbeitskoordinatensystem C4 bekannten vertikalen Abwärtsrichtung übereinstimmt, oder in einer Ausrichtung, bei der die positive x-Achsen-Richtung des Benutzerkoordinatensystems C3 mit einer im Arbeitskoordinatensystem C4 bekannten horizontal linken (oder rechten) Richtung übereinstimmt, beibehalten kann.
  • Es sei angemerkt, dass in einem in 23 veranschaulichten Zustand die Außenumfangsfläche K3 des Werkstücks WP3 in Kontakt mit den Spannklauen 152 ist und die Endfläche K2 des Werkstücks WP3 in Kontakt mit der Haltefläche 150a ist und somit der Handspitzenabschnitt 140' stationär an der Position PS3 und in der Ausrichtung OR3 angeordnet ist, wodurch die Position und Ausrichtung des Handspitzenabschnitts 140' in dem Arbeitskoordinatensystem C4 bekannt sind. Somit fungieren in der vorliegenden Ausführungsform die Spannklauen 152 und die Haltefläche 150a des Werkstückhaltemechanismus 144 als der Kontaktabschnitt.
  • Die in 7 veranschaulichte Lehrvorrichtung 72 oder der in 9 veranschaulichte Kraftsensor 82 kann auf das System 130 angewendet werden, und der Bediener kann den Roboter 132 über einen Vorgang zum Inkontaktbringen des Handspitzenabschnitts 140 (oder 140') mit dem Kontaktabschnitt 154 (oder dem Werkstückhaltemechanismus 144) und Anordnen des Handspitzenabschnitts 140 (oder 140') an der vorbestimmten Position PS3 und Ausrichtung OR3 lehren. In diesem Fall fungiert der Prozessor 50 des Systems 130 als der oben beschriebene Lehrbefehlsempfangsabschnitt 78 und der Robotersteuerabschnitt 79.
  • Das System 130 kann eine erste Steuervorrichtung 16A, die den Roboter 132 steuert, und eine zweite Steuervorrichtung 16B beinhalten, die kommunikativ mit der ersten Steuervorrichtung 16A verbunden ist und die Arbeitsmaschine 134 steuert. In diesem Fall kann der Prozessor 50 einer beliebigen der Steuervorrichtungen 16A und 16B als der Positionsdatenerfassungsabschnitt 62 und der Positionsbeziehungserfassungsabschnitt 64 fungieren. Alternativ kann der Prozessor 50 der ersten Steuervorrichtung 16A als einer des Positionsdatenerfassungsabschnitts 62 und des Positionsbeziehungserfassungsabschnitts 64 fungieren und der Prozessor 50 der zweiten Steuervorrichtung 16B kann als der andere des Positionsdatenerfassungsabschnitts 62 und des Positionsbeziehungserfassungsabschnitts 64 fungieren.
  • Es sei angemerkt, dass in dem vorstehend beschriebenen System 10, 70, 70', 80, 90, 100, 120 oder 130 der Prozessor 50 den Prozess des Erfassens der ersten Positionsdaten α, der zweiten Positionsdaten β und der dritten Positionsdaten γ gemäß einem Computerprogramm automatisch ausführen kann. In diesem Fall bewirkt das Computerprogramm, dass der Prozessor 50 als der Positionsdatenerfassungsabschnitt 62 und der Positionsbeziehungserfassungsabschnitt 64 fungiert.
  • In den vorstehend beschriebenen Ausführungsformen wird ein Fall beschrieben, in dem die Endeffektoren 26 und 136 Roboterhände sind, die ein Werkstück greifen können. Dies sollte jedoch nicht in einem einschränkenden Sinne ausgelegt werden, und der Endeffektor 26 oder 136 kann eine beliebige Art von Endeffektor sein, der eine vorbestimmte Arbeit (z. B. Bearbeitung, Schweißen, Lackieren oder dergleichen) ausführen kann.
  • In den vorstehend beschriebenen Ausführungsformen wird ein Fall beschrieben, in dem der vordere Endabschnitt des Handgelenks 24, der Endeffektor 26, 136 und das Werkstück WP1, WP2, WP3, das von dem Endeffektor 26, 136 gegriffen wird, den Handspitzenabschnitt 40, 140, 140' bilden. Der Endeffektor 26, 136 muss jedoch nicht notwendigerweise die Werkstücke WP1, WP2, WP3 greifen. In diesem Fall bilden der vordere Endabschnitt des Handgelenks 24 und der Endeffektor 26, 136 den Handspitzenabschnitt 40B, 140B.
  • In Bezug auf den Handspitzenabschnitt 40B kann in dem in 3 veranschaulichten Endeffektor 26 beispielsweise das Benutzerkoordinatensystem C3 in Bezug auf den Endeffektor 26 eingestellt sein, wobei sein Ursprung an einem Scheitelpunkt einer Greiffläche 36a angeordnet ist und wobei seine y-z-Ebene parallel zu der einen Greiffläche 36a ist. In diesem Fall können die Klauenteile 36 des Endeffektors 26 mit dem Kontaktabschnitt 44 in Kontakt kommen, um den Handspitzenabschnitt 40B an einer vorbestimmten Position und Ausrichtung anzuordnen. Auch in diesem Fall kann die Positionsbeziehung (Position und Ausrichtung des Handspitzenabschnitts 40B) des Benutzerkoordinatensystems C3 relativ zu dem Arbeitsmaschinenkoordinatensystem C4 unter Verwendung des gleichen Prinzips wie die oben beschriebene Ausführungsform bekannt sein.
  • In Bezug auf den Handspitzenabschnitt 140B kann in dem in 19 veranschaulichten Endeffektor 136 beispielsweise das Benutzerkoordinatensystem C3 in Bezug auf den Endeffektor 136 eingestellt sein, wobei sein Ursprung an einer Objektgreifposition (z. B. einer Position zwischen einer Mehrzahl von Fingern oder der Mitte einer Adsorptionsfläche eines Adsorptionsabschnitts) angeordnet ist und wobei seine z-Achse parallel (insbesondere übereinstimmend) zu der Handgelenkachse A1 (1) ist.
  • In diesem Fall kann der Handspitzenabschnitt 140B an der vorbestimmten Position und Ausrichtung angeordnet sein, wobei ein beliebiger Abschnitt (Finger oder Adsorptionsabschnitt) des Endeffektors 136 in Kontakt mit dem Werkstückhaltemechanismus 144 als der Kontaktabschnitt dient und durch den Werkstückhaltemechanismus 144 gehalten wird. Auch in diesem Fall kann die Positionsbeziehung (Position und Ausrichtung des Handspitzenabschnitts 140B) des Benutzerkoordinatensystems C3 relativ zu dem Arbeitsmaschinenkoordinatensystem C4 unter Verwendung des gleichen Prinzips wie die oben beschriebene Ausführungsform bekannt sein.
  • Hinsichtlich des Handspitzenabschnitts 40B, 140B kann das oben beschriebene Sensorelement 94, 96, 98 an dem vorderen Endabschnitt des Handgelenks 24 oder dem Endeffektor 26, 136 bereitgestellt sein, und der Handspitzenabschnitt 40B, 140B kann mit dem Kontaktabschnitt 44, 154 in Kontakt kommen und an der vorbestimmten Position und Ausrichtung angeordnet sein. Der Handspitzenabschnitt 40, 140, 140' kann beispielsweise nur durch den vorderen Endabschnitt des Handgelenks 24 (Handgelenkflansch) gebildet sein oder kann als ein beliebiger Abschnitt des Roboters 12 definiert sein.
  • Der oben beschriebene Kontaktabschnitt 44, 154 ist ein Beispiel, das verwendet wird, um die Position PS und Ausrichtung OR des Handspitzenabschnitts 40, 40B, 140, 140B des Roboters 12 in Bezug auf das Arbeitsmaschinenkoordinatensystem C4 bekannt zu machen, und der Kontaktabschnitt kann eine beliebige Form aufweisen, solange er verwendet werden kann, um die Position PS und Ausrichtung OR des Handspitzenabschnitts 40, 40B, 140, 140B des Roboters 12 in Bezug auf das Arbeitsmaschinenkoordinatensystem C4 bekannt zu machen.
  • Der Handspitzenabschnitt 40, 40B, 140, 140B kann anstelle des Kontaktabschnitts 44, 154 mit einem beliebigen Abschnitt (einem Loch, einer Aussparung oder einem Vorsprung) des Roboters 12 oder der Arbeitsmaschine 14 in Kontakt gebracht werden, dessen Position in dem Arbeitsmaschinenkoordinatensystem C4 bekannt ist, wodurch das Anordnen an der vorbestimmten Position PS und Ausrichtung OR durchgeführt werden kann.
  • Das Benutzerkoordinatensystem C3 ist nicht auf die oben beschriebenen Ausführungsformen beschränkt und kann auf eine beliebige Position eingestellt werden, deren Positionsbeziehung in Bezug auf das MIF-Koordinatensystem C2 bekannt ist. Zum Beispiel kann in dem in 3 veranschaulichten Modus der Ursprung des Benutzerkoordinatensystems C3 auf einen anderen Scheitelpunkt des Werkstücks WP1 als den Scheitelpunkt F oder auf den Mittelpunkt der unteren Fläche B1 oder der oberen Fläche B2 eingestellt werden.
  • In den vorstehend beschriebenen Ausführungsformen wird ein Fall beschrieben, in dem der Prozessor 50 Daten, die die Positionsbeziehung des Benutzerkoordinatensystems C3 in Bezug auf das Arbeitsmaschinenkoordinatensystem C4 angeben, als die zweiten Positionsdaten β erfasst. Dies sollte jedoch nicht in einem einschränkenden Sinne ausgelegt werden, und der Prozessor 50 kann Daten, die die Positionsbeziehung des MIF-Koordinatensystems C3 in Bezug auf das Arbeitsmaschinenkoordinatensystem C4 angeben, als die zweiten Positionsdaten β erfassen. Unter Verwendung des vorstehend beschriebenen Verfahrens kann die Positionsbeziehung des MIF-Koordinatensystems C3 in Bezug auf das Arbeitsmaschinenkoordinatensystem C4 bekannt sein, wenn die Form des Werkstücks WP1, WP2, WP3 und die Position, an der der Endeffektor 26, 136 das Werkstück WP1, WP2, WP3 greift, bekannt sind.
  • Obwohl die vorliegende Offenbarung vorstehend durch die Ausführungsformen beschrieben wird, schränken die vorstehend beschriebenen Ausführungsformen die Erfindung gemäß den Ansprüchen nicht ein.
  • Bezugszeichenliste
  • 10, 70, 70', 80, 90, 100, 120, 130
    System
    12, 132
    Roboter
    14, 134
    Arbeitsmaschine
    16
    Steuervorrichtung
    40, 140, 140'
    Handspitzenabschnitt
    44, 154
    Kontaktabschnitt
    60
    Vorrichtung
    62
    Positionsdatenerfassungsabschnitt
    64
    Positionsbeziehungserfassungsabschnitt
    78
    Lehrbefehlsempfangsabschnitt
    79
    Robotersteuerabschnitt
    92
    Kontaktdetektionssensor
    108
    Verschiebungsdatenerfassungsabschnitt
    110
    Korrekturabschnitt
    122
    Positionsdetektionssensor
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • JP 2010076054 A [0003]

Claims (17)

  1. Vorrichtung, die konfiguriert ist, um eine Positionsbeziehung zwischen einem Roboterkoordinatensystem, das für einen Roboter eingestellt ist, und einem Arbeitsmaschinenkoordinatensystem, das für eine Arbeitsmaschine eingestellt ist, die außerhalb des Roboters angeordnet ist, zu erfassen, wobei die Vorrichtung umfasst: einen Positionsdatenerfassungsabschnitt, der konfiguriert ist, um erste Positionsdaten, die eine Position und Ausrichtung eines Handspitzenabschnitts des Roboters in Bezug auf das Roboterkoordinatensystem angeben, und zweite Positionsdaten, die eine Position und Ausrichtung des Handspitzenabschnitts in Bezug auf das Arbeitsmaschinenkoordinatensystem angeben, zu erfassen, wenn der Handspitzenabschnitt in einer vorbestimmten Position und Ausrichtung in Bezug auf die Arbeitsmaschine angeordnet ist; und einen Positionsbeziehungserfassungsabschnitt, der konfiguriert ist, um die Positionsbeziehung basierend auf den ersten Positionsdaten und den zweiten Positionsdaten zu erfassen.
  2. Vorrichtung nach Anspruch 1, ferner umfassend einen Robotersteuerabschnitt, der konfiguriert ist, um den Roboter zu betreiben, um den Handspitzenabschnitt in Kontakt mit einem Kontaktabschnitt zu bringen, der an einer bekannten Position im Arbeitsmaschinenkoordinatensystem bereitgestellt ist, um den Handspitzenabschnitt an der vorbestimmten Position und Ausrichtung anzuordnen, wobei der Kontaktabschnitt zum Darstellen der vorbestimmten Position und Ausrichtung im Arbeitsmaschinenkoordinatensystem bereitgestellt ist.
  3. Vorrichtung nach Anspruch 2, wobei der Roboter oder die Arbeitsmaschine einen Kontaktdetektionssensor beinhaltet, der konfiguriert ist, um zu detektieren, dass der Handspitzenabschnitt in Kontakt mit dem Kontaktabschnitt ist, und wobei der Robotersteuerabschnitt einen Betrieb ausführt, um den Handspitzenabschnitt an der vorbestimmten Position und Ausrichtung anzuordnen, basierend auf Detektionsdaten von dem Kontaktdetektionssensor.
  4. Vorrichtung nach Anspruch 1, wobei der Positionsdatenerfassungsabschnitt die zweiten Positionsdaten basierend auf Detektionsdaten von einem Positionsdetektionssensor erfasst, der konfiguriert ist, um die Position des Handspitzenabschnitts im Arbeitsmaschinenkoordinatensystem zu detektieren.
  5. Vorrichtung nach Anspruch 4, wobei die Arbeitsmaschine einen Bewegungsmechanismus beinhaltet, und wobei der Positionsdetektionssensor eine Berührungssonde beinhaltet, die konfiguriert ist, um die Position des Handspitzenabschnitts in dem Arbeitsmaschinenkoordinatensystem zu detektieren, indem sie durch den Bewegungsmechanismus bewegt wird, um in Kontakt mit dem Handspitzenabschnitt zu kommen, der an der vorbestimmten Position und Ausrichtung angeordnet ist.
  6. Vorrichtung nach einem der Ansprüche 1 bis 5, ferner umfassend einen Lehrbefehlsempfangsabschnitt, der konfiguriert ist, um einen Lehrbefehl zum Anordnen des Handspitzenabschnitts an der vorbestimmten Position und Ausrichtung zu empfangen.
  7. Vorrichtung nach Anspruch 6, wobei der Lehrbefehl einen direkten Lehrbefehl zum Bewegen des Handspitzenabschnitts als Reaktion auf eine externe Kraft beinhaltet, die auf den Roboter ausgeübt wird.
  8. Vorrichtung nach einem der Ansprüche 1 bis 7, wobei die vorbestimmte Position und Ausrichtung eine Zielposition und Ausrichtung sind, wenn der Roboter eine vorbestimmte Arbeit an der Arbeitsmaschine durchführt.
  9. Vorrichtung nach einem der Ansprüche 1 bis 8, ferner umfassend einen Verschiebungsdatenerfassungsabschnitt, der konfiguriert ist, um basierend auf den ersten Positionsdaten oder den zweiten Positionsdaten, die durch den Positionsdatenerfassungsabschnitt erfasst werden, bevor und nachdem eine Änderung der relativen Position des Roboters und der Arbeitsmaschine auftritt, Verschiebungsdaten zu erfassen, die eine Differenz zwischen der relativen Position vor der Änderung und der relativen Position nach der Änderung angeben.
  10. Vorrichtung nach Anspruch 9, ferner umfassend einen Korrekturabschnitt, der konfiguriert ist, um ein Betriebsprogramm zu korrigieren, um den Roboter oder die Arbeitsmaschine zu veranlassen, einen vorbestimmten Betrieb an der relativen Position vor der Änderung unter Verwendung der Verschiebungsdaten, die durch den Verschiebungsdatenerfassungsabschnitt erfasst werden, auszuführen.
  11. Vorrichtung, die konfiguriert ist, um eine Positionsbeziehung zwischen einem Roboter und einer Arbeitsmaschine zu erfassen, wobei die Vorrichtung konfiguriert ist, um die Positionsbeziehung basierend auf einer Position und Ausrichtung des Roboters in Bezug auf die Arbeitsmaschine zu erfassen, wenn der Roboter mit einem Kontaktabschnitt in Kontakt kommt, der in einer bekannten Position in Bezug auf die Arbeitsmaschine bereitgestellt ist.
  12. Steuervorrichtung für einen Roboter oder eine Arbeitsmaschine, wobei die Steuervorrichtung die Vorrichtung nach einem der Ansprüche 1 bis 11 umfasst.
  13. System, umfassend: einen Roboter; eine Arbeitsmaschine, die außerhalb des Roboters angeordnet ist; und die Steuervorrichtung nach Anspruch 12.
  14. Verfahren zum Erfassen einer Positionsbeziehung zwischen einem Roboterkoordinatensystem, das für einen Roboter eingestellt ist, und einem Arbeitsmaschinenkoordinatensystem, das für eine Arbeitsmaschine eingestellt ist, die außerhalb des Roboters angeordnet ist, wobei das Verfahren umfasst: Erfassen erster Positionsdaten, die eine Position und Ausrichtung eines Handspitzenabschnitts des Roboters in Bezug auf das Roboterkoordinatensystem angeben, und zweiter Positionsdaten, die eine Position und Ausrichtung des Handspitzenabschnitts in Bezug auf das Arbeitsmaschinenkoordinatensystem angeben, wenn der Handspitzenabschnitt in einer vorbestimmten Position und Ausrichtung in Bezug auf die Arbeitsmaschine angeordnet ist; und Erfassen der Positionsbeziehung basierend auf den ersten Positionsdaten und den zweiten Positionsdaten, die erfasst werden.
  15. Verfahren zum Erfassen einer Positionsbeziehung zwischen einem Roboter und einer Arbeitsmaschine, wobei das Verfahren das Erfassen der Positionsbeziehung basierend auf einer Position und Ausrichtung des Roboters in Bezug auf die Arbeitsmaschine umfasst, wenn der Roboter mit einem Kontaktabschnitt in Kontakt kommt, der an einer bekannten Position in Bezug auf die Arbeitsmaschine bereitgestellt ist.
  16. Computerprogramm, das konfiguriert ist, um, um eine Positionsbeziehung zwischen einem Roboterkoordinatensystem, das für einen Roboter eingestellt ist, und einem Arbeitsmaschinenkoordinatensystem, das für eine Arbeitsmaschine eingestellt ist, die außerhalb des Roboters angeordnet ist, zu erfassen, einen Prozessor zu veranlassen, zu funktionieren als: einen Positionsdatenerfassungsabschnitt, der konfiguriert ist, um erste Positionsdaten, die eine Position und Ausrichtung eines Handspitzenabschnitts des Roboters in Bezug auf das Roboterkoordinatensystem angeben, und zweite Positionsdaten, die eine Position und Ausrichtung des Handspitzenabschnitts in Bezug auf das Arbeitsmaschinenkoordinatensystem angeben, zu erfassen, wenn der Handspitzenabschnitt in einer vorbestimmten Position und Ausrichtung in Bezug auf die Arbeitsmaschine angeordnet ist; und einen Positionsbeziehungserfassungsabschnitt, der konfiguriert ist, um die Positionsbeziehung basierend auf den ersten Positionsdaten und den zweiten Positionsdaten zu erfassen.
  17. Computerprogramm, das konfiguriert ist, um einen Prozessor zu veranlassen, das Verfahren nach Anspruch 15 auszuführen.
DE112021004097.9T 2020-09-30 2021-09-28 Vorrichtung zum erfassen einer positionsbeziehung zwischen roboter und arbeitsmaschine, steuervorrichtung, system, verfahren und computerprogramm Pending DE112021004097T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2020-165446 2020-09-30
JP2020165446 2020-09-30
PCT/JP2021/035679 WO2022071333A1 (ja) 2020-09-30 2021-09-28 ロボットと作業機器との位置関係を取得する装置、制御装置、システム、方法、及びコンピュータプログラム

Publications (1)

Publication Number Publication Date
DE112021004097T5 true DE112021004097T5 (de) 2023-07-20

Family

ID=80950435

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021004097.9T Pending DE112021004097T5 (de) 2020-09-30 2021-09-28 Vorrichtung zum erfassen einer positionsbeziehung zwischen roboter und arbeitsmaschine, steuervorrichtung, system, verfahren und computerprogramm

Country Status (5)

Country Link
US (1) US20230373083A1 (de)
JP (1) JPWO2022071333A1 (de)
CN (1) CN116419826A (de)
DE (1) DE112021004097T5 (de)
WO (1) WO2022071333A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010076054A (ja) 2008-09-26 2010-04-08 Ihi Corp ロボット装置及びロボット装置の制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05111897A (ja) * 1991-10-21 1993-05-07 Fanuc Ltd 複数台のロボツトの相対位置関係取得方式
JP2014176940A (ja) * 2013-03-15 2014-09-25 Yaskawa Electric Corp ロボットシステム、ロボット制御方法及び被加工物の製造方法
JP6126183B2 (ja) * 2015-10-05 2017-05-10 ファナック株式会社 ターゲットマークを撮像するカメラを備えたロボットシステム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010076054A (ja) 2008-09-26 2010-04-08 Ihi Corp ロボット装置及びロボット装置の制御方法

Also Published As

Publication number Publication date
JPWO2022071333A1 (de) 2022-04-07
US20230373083A1 (en) 2023-11-23
CN116419826A (zh) 2023-07-11
WO2022071333A1 (ja) 2022-04-07

Similar Documents

Publication Publication Date Title
DE102017128652B4 (de) Robotersystem mit einer mehrzahl von robotern, robotersteuerung und robotersteuerverfahren
DE102009014074B4 (de) Roboter und Verfahren zum Steuern einer kooperativen Arbeit des Roboters
EP2987592B1 (de) Verfahren zum programmieren eines industrieroboters und zugehöriger industrieroboter
DE102015015094B4 (de) Kooperationssystem mit Werkzeugmaschine und Roboter
DE102015208584B4 (de) Greifvorrichtung und Greifverfahren
DE102015001527B4 (de) Robotersystem, das visuelle Rückmeldung verwendet
DE102015004483B4 (de) Robotersteuerung und Robotersystem zum Bewegen eines Roboters als Reaktion auf eine Kraft
DE112018000026B4 (de) Hilfsbiegeroboter zum Biegen großformatiger Blechtafeln
DE102018202322B4 (de) Robotersystem, Robotersteuervorrichtung und Robotersteuerverfahren
EP1604789A3 (de) Verfahren und Vorrichtung zum Verbessern der Positioniergenauigkeit eines Handhabungsgeräts
DE102018107864B4 (de) Offline-Programmiervorrichtung und -verfahren mit der Funktion zur Erzeugung eines Programms zur Detektion einer Werkstückposition mittels eines Kontaktsensors
DE102015105687A1 (de) Roboter
DE102008060052A1 (de) Verfahren und Vorrichtung zur Kompensation einer kinematischen Abweichung
DE112018000590T5 (de) Übertragungssystem und Verfahren zum Betreiben desselben
DE102018117829A1 (de) Steuereinheit für Gelenkroboter
EP3812106B1 (de) Roboteranordnung, verfahren zum betreiben der roboteranordnung, computerprogramm sowie maschinenlesbares speichermedium
DE102018114445B4 (de) Vorrichtung und Verfahren zur Einschätzung einer Position des Schwerpunkts eines Roboters
DE102018007525A1 (de) Bearbeitungssystem und Verfahren zum Steuern einer Bearbeitungsmaschine
DE102021109332A1 (de) Vorrichtung und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle
DE112017003706T5 (de) Verfahren zur Bedienung eines Roboters, Computerprogramm und Robotersystem
DE102019134665B3 (de) Kalibrieren eines virtuellen Kraftsensors eines Robotermanipulators
DE112021004097T5 (de) Vorrichtung zum erfassen einer positionsbeziehung zwischen roboter und arbeitsmaschine, steuervorrichtung, system, verfahren und computerprogramm
DE102017128332B4 (de) Mit einer Formungsmaschine und einer Formproduktentnahmevorrichtung versehenes Formungssystem
DE102018124671B4 (de) Verfahren und Vorrichtung zur Erstellung eines Robotersteuerprogramms
DE112017007903B4 (de) Haltepositions- und Orientierungslehreinrichtung, Haltepositions- und Orientierungslehrverfahren und Robotersystem