DE102020124356A1 - Steuerung einer Robotervorrichtung zum Einstellen der Position eines vom Roboter gestützten Gegenstandes - Google Patents

Steuerung einer Robotervorrichtung zum Einstellen der Position eines vom Roboter gestützten Gegenstandes Download PDF

Info

Publication number
DE102020124356A1
DE102020124356A1 DE102020124356.1A DE102020124356A DE102020124356A1 DE 102020124356 A1 DE102020124356 A1 DE 102020124356A1 DE 102020124356 A DE102020124356 A DE 102020124356A DE 102020124356 A1 DE102020124356 A1 DE 102020124356A1
Authority
DE
Germany
Prior art keywords
control
workpiece
robot
amount
orientation
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
DE102020124356.1A
Other languages
English (en)
Inventor
Masafumi OOBA
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 DE102020124356A1 publication Critical patent/DE102020124356A1/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/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0093Programme-controlled manipulators co-operating with conveyor means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/1607Calculation of inertia, jacobian matrixes and inverses
    • 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/1687Assembly, peg and hole, palletising, straight line, weaving pattern movement
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0014Image feed-back for automatic industrial control, e.g. robot with camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39149To assemble two objects, objects manipulation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39319Force control, force as reference, active compliance
    • 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/40031Dual peg in hole
    • 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/40032Peg and hole insertion, mating and joining, remote center compliance
    • 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/40111For assembly
    • 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/40269Naturally compliant robot arm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Manufacturing & Machinery (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Manipulator (AREA)

Abstract

Eine Steuerung einer Robotervorrichtung führt eine Annäherungssteuerung aus zum Annähern eines zweiten Werkstückes an ein erstes Werkstück und eine Positionseinstellungssteuerung zum Einstellen der Position des zweiten Werkstückes in Bezug auf die Position des ersten Werkstückes. Die Annäherungssteuerung enthält eine Steuerung zum Berechnen einer Bewegungsrichtung und eines Bewegungsbetrages der Position des Roboters auf Basis eines mit einer ersten Kamera aufgenommenen Bildes und eine Annäherung des zweiten Werkstückes an das erste Werkstück. Die Positionseinstellungssteuerung enthält eine Steuerung zum Berechnen einer Bewegungsrichtung und eines Bewegungsbetrages der Position des Roboters auf Basis eines mit der ersten Kamera aufgenommenen Bildes und eines mit der zweiten Kamera aufgenommenen Bildes und eine präzise Einstellung der Position des ersten Werkstückes in Bezug auf das zweite Werkstück.

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft eine Steuerung für eine Robotervorrichtung, welche die Position eines Gegenstandes einstellt, der durch einen Roboter abgestützt ist.
  • Zum Stand der Technik
  • In einer mit einem Roboter versehenen Robotervorrichtung kann eine gewünschte Aufgabe erfüllt werden durch Anbringung eines Arbeitswerkzeuges entsprechend der Aufgabe am Roboter. Beispielsweise kann durch Anbringen einer Hand als Arbeitswerkzeug am Roboter, welche ein Werkstück ergreift, die Robotervorrichtung das Werkstück in eine gewünschte Position bringen.
  • Im Stand der Technik ist bekannt, dass eine Position eines Roboters gesteuert wird unter Einsatz eines mit einer Kamera aufgenommenen Bildes, wenn ein Werkstück an einem anderen Werkstück angebracht werden soll. Auch ist bekannt, dass die Position eines Roboters gesteuert wird durch Detektion einer Kraft, die am Roboter einwirkt (beispielsweise veröffentlichte japanische Patentanmeldung 2018-83284 ). Wird die Position eines Roboters auf Basis eines mit einer Kamera aufgenommenen Bildes eingestellt, kann im Voraus ein Zielbild des Werkstückes angefertigt werden. Auch bekannt ist eine Steuerung, bei der die Position des Roboters eingestellt wird auf Basis einer Differenz zwischen einem Bild des gegebenen Werkstückes und dem Zielbild (siehe beispielsweise veröffentlichte japanische Patentanmeldung 2015 - 214022 und veröffentlichte japanische Patentanmeldung 2013-180380 ).
  • Bekannt ist auch eine Steuerung, bei der ein Vision-Sensor-Koordinatensystem im Voraus in Bezug auf ein Roboterkoordinatensystem kalibriert wird und eine dreidimensionale Position eines Werkstückes berechnet wird auf Basis der Position des Werkstückes in dem Vision-Sensor-Koordinatensystem.
  • Andererseits kann auch im Voraus eine Jacobi-Matrix erzeugt werden, die eine Position und eine Größe eines charakteristischen Bereichs in dem Bild betrifft. Bekannt ist eine Steuerung, bei der die Position eines Roboters korrigiert wird auf Basis einer Position eines charakteristischen Abschnittes in einem mit einer Kamera aufgenommenen Bild, der Position des charakteristischen Abschnittes in einem Zielbereich, und einer Jacobi-Matrix (siehe beispielsweise veröffentlichte japanische Patentanmeldung 2017-170599 und das im Internet veröffentlichte Dokument „Visual sense and Control“ (Autor: Hashimoto Koichi, URL: http://www.k2.t.u-tokyo.ac.jp/~koichi/Lecture/Pattern/2001/vs1.pdf, Abrufdatum im Internet: 26. Juli 2019).
  • Ergreift ein Roboter ein Werkstück, kann sich die Position des Werkstückes in der Hand verschieben. In einer derartigen Situation ist es bekannt, ein Bild des mit der Hand ergriffenen Werkstückes mit einer Kamera aufzunehmen und eine Position und Orientierung des Werkstückes in Bezug auf den Roboter zu detektieren. In der Steuerung wird eine Position und Orientierung der Hand entsprechend der Positionierung und Orientierung des Werkstückes angepasst (siehe beispielsweise veröffentlichte japanische Patentanmeldung 2011-131300 ).
  • KURZBESCHREIBUNG DER ERFINDUNG
  • Führt ein Roboter eine Aufgabe aus, kann diese darin bestehen, einen Gegenstand, der durch den Roboter abgestützt wird, in seiner Position in Bezug auf einen anderen Gegenstand auszurichten. Bei der Steuerung der Position und Orientierung eines Roboters kann beispielsweise ein durch die Robotervorrichtung gegriffenes Werkstück an einem anderen Werkstück angebracht werden oder es kann in einem anderen Werkstück platziert werden.
  • Wenn bei Ausführung einer Aufgabe durch eine Robotervorrichtung die Position eines durch den Roboter abgestützten Gegenstandes nicht mit hoher Genauigkeit gesteuert wird, besteht eine Gefahr, dass die Robotervorrichtung die Aufgabe nicht erfüllt. Aus diesem Grunde ist anzustreben, dass die Robotervorrichtung die Steuerung mit einer hohen Genauigkeit hinsichtlich der Ausrichtung durchführt. Insbesondere ist es schwierig, die Steuerung mit genauer Ausrichtung eines Bauteils bezüglich der Position auszuführen, nachdem das Bauteil bewegt worden ist durch Änderung von Position und Orientierung des Roboters.
  • Eine Ausführung der vorliegenden Beschreibung betrifft eine Steuerung einer Robotervorrichtung, welche die Relativposition eines zweiten Gegenstandes in Bezug auf einen ersten Gegenstand einstellt durch Bewegung des zweiten Gegenstandes mit einem Roboter. Die Steuerung enthält einen ersten Vision-Sensor, welcher ein Bild des ersten Gegenstandes aufnimmt, und einen zweiten Vision-Sensor, welcher ein Bild des ersten Gegenstandes und des zweiten Gegenstandes aus einer Richtung aufnimmt, die verschieden ist von der des ersten Vision-Sensors. Die Steuerung enthält eine arithmetische Prozessoreinheit, die einen Bewegungsbefehl für den Roboter erzeugt, und eine Betriebssteuerungseinheit, welche den Roboter entsprechend dem Bewegungsbefehl antreibt. Die Steuervorrichtung ist eingerichtet, eine Annäherungssteuerung auszuführen, damit sich der zunächst entfernt vom ersten Gegenstand angeordnete zweite Gegenstand dem ersten Gegenstand nähert, und für eine Positionseinstellungssteuerung zum Einstellen der Position des zweiten Gegenstandes in Bezug auf die Position des ersten Gegenstandes nach der Annäherung des zweiten Gegenstandes an den ersten Gegenstand. Die Annäherungssteuerung enthält eine Steuerung, bei der die arithmetische Prozessoreinheit eine Bewegungsrichtung und einen Bewegungsbetrag bezüglich der Position des Roboters berechnet auf Basis eines mit dem ersten Vision-Sensor aufgenommenen Bildes und einen ersten Bewegungsbefehl erzeugt zum Annähern des zweiten Gegenstandes an den ersten Gegenstand. Die Annäherungssteuerung enthält eine Steuerung, bei der die Betriebssteuerungseinheit eine Position des Roboters auf Basis des ersten Bewegungsbefehls ändert. Die Positionseinstellungssteuerung enthält eine Steuerung, bei der die arithmetische Prozessoreinheit eine Bewegungsrichtung und einen Bewegungsbetrag des Roboters berechnet auf Basis eines mit dem ersten Vision-Sensor aufgenommenen Bildes und eines mit dem zweiten Vision-Sensor aufgenommenen Bildes und einen zweiten Bewegungsbefehl erzeugt zum Einstellen einer Position des ersten Gegenstandes in Bezug auf den zweiten Gegenstand. Die Positionseinstellungssteuerung enthält eine Steuerung, bei der die Betriebssteuerungseinheit eine Position des Roboters ändert auf Basis des zweiten Bewegungsbefehls.
  • Figurenliste
    • 1 ist eine schematische Ansicht einer Robotervorrichtung gemäß einem Ausführungsbeispiel.
    • 2 ist eine vergrößerte perspektivische Ansicht eines ersten Werkstückes, eines zweiten Werkstückes und einer Hand in der Robotervorrichtung.
    • 3 ist ein Blockdiagramm der Robotervorrichtung.
    • 4 ist ein Flussdiagramm für die Greifsteuerung, die Fehleinstellungsdetektionssteuerung und eine Annäherungssteuerung gemäß dem Ausführungsbeispiel.
    • 5 ist eine vergrößerte perspektivische Darstellung der Hand und des zweiten Werkstückes bei Ausführung der Greifsteuerung.
    • 6 ist eine vergrößerte perspektivische Darstellung des ersten Werkstückes, der Hand und einer fixierten Kamera bei Ausführung der Fehleinstellungsdetektionssteuerung.
    • 7 ist eine vergrößerte perspektivische Darstellung des ersten Werkstückes, des zweiten Werkstückes und der Hand bei Ausführung der Annäherungssteuerung.
    • 8 ist ein Flussdiagramm einer Steuerung, die in der Annäherungssteuerung enthalten ist.
    • 9 zeigt ein Bild, das mit einer ersten Kamera aufgenommen ist bei Ausführung der Annäherungssteuerung.
    • 10 zeigt ein weiteres Bild, das mit der ersten Kamera aufgenommen ist bei Ausführung der Annäherungssteuerung.
    • 11 ist ein Flussdiagramm der Orientierungsdetektionssteuerung, der Orientierungskorrektursteuerung, der Fehleinstellungskorrektursteuerung, der Positionseinstellungssteuerung und der Anbringungssteuerung gemäß einem Ausführungsbeispiel.
    • 12 ist eine vergrößerte perspektivische Darstellung des ersten Werkstückes, des zweiten Werkstückes und der Hand bei Annäherung des zweiten Werkstückes an das erste Werkstück.
    • 13 ist ein Flussdiagramm einer Steuerung, die in der Positionseinstellungssteuerung enthalten ist.
    • 14 zeigt ein Bild, das mit der ersten Kamera in der Positionseinstellungssteuerung aufgenommen ist.
    • 15 zeigt ein Referenzbild für ein Bild, welches mit der ersten Kamera bei der Positionseinstellungssteuerung aufzunehmen ist.
    • 16 zeigt ein Bild, das mit einer zweiten Kamera bei der Positionseinstellungssteuerung aufgenommen ist.
    • 17 zeigt ein Referenzbild für ein Bild, das mit der zweiten Kamera bei der Positionseinstellungssteuerung aufzunehmen ist.
    • 18 ist eine vergrößerte perspektivische Darstellung des ersten Werkstückes, des zweiten Werkstückes und der Hand bei Abschluss der Positionseinstellungssteuerung.
    • 19 ist eine vergrößerte perspektivische Darstellung des ersten Werkstückes, des zweiten Werkstückes und der Hand am Ende der Anbringungssteuerung.
  • BESCHREIBUNG VON EINZELHEITEN
  • Eine Steuerung für eine Robotervorrichtung gemäß einem Ausführungsbeispiel wird mit Bezug auf die 1 bis 19 beschrieben. Mit dem vorliegenden Ausführungsbeispiel wird eine Robotervorrichtung als ein Beispiel näher beschrieben, welche die Aufgabe des Zusammenbaus eines Produktes ausführt.
  • 1 ist eine schematische Ansicht einer Robotervorrichtung gemäß dem vorliegenden Ausführungsbeispiel. 2 ist eine perspektivische Darstellung in vergrößertem Maßstab eines ersten Werkstückes, eines zweiten Werkstückes und einer Hand in der Robotervorrichtung. Entsprechend den 1 und 2 enthält eine Robotervorrichtung 5 eine Hand 2 als Arbeitswerkzeug (Greiforgan/Effektor) und einen Roboter 1, welcher die Hand 2 bewegt. Die Robotervorrichtung 5 führt die Aufgabe des Anbringens eines zweiten Werkstückes 91 als zweitem Gegenstand an ein erstes Werkstück 81 als erstem Gegenstand aus.
  • Der Roboter 1 ist ein Schwenk-Roboter mit einer Mehrzahl von Gelenken. Der Roboter 1 hat ein Grundgestell 14 und eine Drehbasis 13, die vom Grundgestell 14 abgestützt ist. Das Grundgestell 14 ist auf einer Installationsoberfläche fixiert. Die Drehbasis 13 kann relativ zum Grundgestell 14 drehen. Der Roboter 1 hat einen oberen Arm 11 und einen unteren Arm 12. Der untere Arm 12 ist drehbar über ein Gelenk auf der Drehbasis 13 abgestützt. Der obere Arm 11 ist drehbar über ein Gelenk durch den unteren Arm 12 abgestützt. Weiterhin dreht der obere Arm 11 um eine Drehachse, die sich parallel zur Erstreckungsrichtung des oberen Armes 11 erstreckt.
  • Der Roboter 1 hat ein Gelenk 15, welches an das Ende des oberen Armes 11 angekoppelt ist. Das Gelenk 15 ist drehbar über das Verbindungsgelenk am oberen Arm 11 gehalten. Das Gelenk 15 hat einen Flansch 16, der drehbar ist. Die Hand 2 ist an dem Flansch 16 fixiert. Der Roboter 1 dieses Ausführungsbeispiels hat sechs Antriebsachsen, jedoch liegt insoweit keine Einschränkung vor. Es kann jeder Roboter hier eingesetzt werden, der das Arbeitswerkzeug bewegt.
  • Die Hand 2 ist ein Arbeitswerkzeug, welches das Werkstück 91 ergreifen und freigeben kann. Die Hand 2 hat mehrere Greifer 3. Die Hand 2 ist so ausgebildet, dass die Greifer 3 zu öffnen und zu schließen sind. Das Werkstück 91 wird ergriffen durch Klemmen des Werkstückes 91 mit den Greifern 3. Das Arbeitswerkzeug der Robotervorrichtung 5 ist hier die Hand 2 mit den Greifern 3, jedoch ist dieses Ausführungsbeispiel nicht einschränkend. Als Arbeitswerkzeug kann jede Einrichtung eingesetzt werden, die eingerichtet ist zum Fassen eines Werkstückes. Beispielsweise kann das Arbeitswerkzeug das Werkstück fassen durch Ansaugen mittels Luftdruck, ein Arbeitswerkzeug kann eingerichtet sein, Positionen von Greifern der Hand mit einem Motor einzustellen, oder ein Arbeitswerkzeug kann ein Werkstück mit Magnetkraft fassen.
  • Die Robotervorrichtung 5 gemäß dem vorliegenden Ausführungsbeispiel hat einen Förderer 75 als Transportmaschine zum Fördern des ersten Werkstückes 81. Die Transportmaschine ist am Roboter 1 angeordnet. Der Förderer 75 ist so gestaltet, dass er das Werkstück 81 in eine vorgegebene Position fördert. Der Förderer 75 ist so gestaltet, dass er das Werkstück 81 mit einer vorgegebenen Bewegungsgeschwindigkeit fördert. Bei dem in 1 dargestellten Beispiel wird das Werkstück 81 in einer Richtung senkrecht zur Papierebene gefördert.
  • Mit der Robotervorrichtung 5 dieses Ausführungsbeispiels bringt der Roboter 1 das Werkstück 91 am Werkstück 81 an, während der Förderer 75 fortfährt, das Werkstück 81 zu fördern. Das heißt: in der Zeitspanne, in welcher die Aufgabe des Anbringens des Werkstückes 91 ausgeführt wird, wird das Werkstück 81 durch den Förderer 75 bewegt. Der Roboter 1 bringt das Werkstück 91 am Werkstück 81 an, während die Position und Orientierung des Werkstückes geändert werden, um dem Werkstück 81 zu folgen.
  • Das zweite Werkstück 91 hat ein Greifteil 94, welches von einer Oberfläche des Werkstückes vorsteht. Das zweite Werkstück 91 wird von der Hand 2 gegriffen durch Ergreifen des Greifteils 94 mit den Greifern 3. Das erste Werkstück 81 hat vorstehende Teile 82 und 83, die von einer Oberfläche des ersten Werkstückes vorstehen. Das vorstehende Teil 82 und das vorstehende Teil 83 sind unter Abstand zueinander angeordnet. Löcher 82a und 83a sind in den oberen Flächen der vorstehenden Teile 82 und 83 ausgeformt. Das zweite Werkstück 91 hat vorstehende Teile 92 und 93, welche von der Oberfläche des zweiten Werkstückes vorstehen. Stifte 92a und 93a sind an den vorstehenden Teilen 92 bzw. 93 angebracht. Der Stift 92a und der Stift 93a sind so angeordnet, dass sie zueinander in gerader Linie ausgerichtet sind. Die Robotervorrichtung 5 führt die Aufgabe aus, dass der Stift 92a in das Loch 82a und der Stift 93a in das Loch 83a eingeführt werden nach Annäherung des zweiten Werkstückes 91 an das erste Werkstück 81, wie durch den Pfeil 101 angedeutet ist.
  • Die Robotervorrichtung 5 hat eine erste Kamera 25 als ersten Vision-Sensor, welcher ein Bild des ersten Werkstückes 81 aufnimmt, und eine zweite Kamera als zweiten Vision-Sensor, welcher ein Bild des ersten Werkstückes 81 und des zweiten Werkstückes 91 aufnimmt. Die zweite Kamera 26 nimmt ein Bild auf aus einer Richtung, die verschieden ist von der der ersten Kamera 25. Die Kameras 25 und 26 gemäß dem vorliegenden Ausführungsbeispiel sind zweidimensional. Die Kameras 25 und 26 sind über eine Stütze 17 abgestützt. Die Stütze 17 hat ein streifenförmiges Teil 17a, welches sich nach unten erstreckt, und ein streifenförmiges Teil 17b, welches sich nach oben erstreckt. Die erste Kamera 25 ist am streifenförmigen Teil 17a, welches sich nach unten erstreckt, angebracht. Die zweite Kamera 26 ist an dem streifenförmigen Teil 17b angebracht, welches sich nach oben erstreckt.
  • Die Positionen und Orientierungen der Kameras 25 und 26 werden zusammen mit der Hand geändert. Die Kamera 25 nimmt ein Bild des ersten Werkstückes 81 in einer Zeitspanne auf, in der sich das zweite Werkstück 91 dem ersten Werkstück 81 nähert. Das heißt: die Kamera 25 nimmt Bilder auf in einer Zeitspanne, an deren Anfang das zweite Werkstück 91 noch vom ersten Werkstück 81 entfernt ist bis zu einem Zeitpunkt, zu dem das zweite Werkstück 91 nahe am ersten Werkstück 81 positioniert ist. Weiterhin nimmt die Kamera 25 ein Bild auf, wenn das zweite Werkstück 91 nahe dem ersten Werkstück 81 ist. Die Kamera 25 gemäß dem vorliegenden Ausführungsbeispiel ist so angeordnet, dass eine optische Achse im Wesentlichen parallel verläuft zu der Richtung, in welcher das zweite Werkstück 91 dem ersten Werkstück 81 gegenüberliegt, ihm zugekehrt ist.
  • Die Kamera 26 nimmt ein Bild auf, wenn sich das zweite Werkstück 91 dem ersten Werkstück 81 nähert. Das heißt: die Kamera 26 nimmt ein Bild auf, wenn das zweite Werkstück 91 nahe dem ersten Werkstück 81 positioniert ist. Die Kamera 26 gemäß dem vorliegenden Ausführungsbeispiel ist so ausgerichtet, dass eine optische Achse im Wesentlichen parallel verläuft zu einer vertikalen Richtung.
  • Die Robotervorrichtung 5 enthält einen Hilfssensor zum Detektieren eines Betrages einer Greif-Fehlausrichtung des zweiten Werkstückes 91, welches von der Hand 2 gegriffen ist. Der Hilfssensor gemäß dem vorliegenden Ausführungsbeispiel ist gebildet durch eine fixierte Kamera 27, die hier als Vision-Sensor dient. Die fixierte Kamera 27 gemäß dem vorliegenden Ausführungsbeispiel ist eine zweidimensionale Kamera. Die fixierte Kamera 27 ist auf der Installationsfläche mit einem Gestell 71 fixiert. Die fixierte Kamera 27 ist in einer Position angeordnet, wo ein Bild des zweiten Werkstückes 91 aufgenommen werden kann durch Änderung von Position und Orientierung des Roboters 1.
  • Ein Referenzkoordinatensystem 51 ist in der Robotervorrichtung 5 eingestellt. Beim in 1 gezeigten Beispiel ist der Ursprung des Referenzkoordinatensystems 51 in das Gestell 14 des Roboters 1 gelegt. Das Referenzkoordinatensystem 51 kann auch als sogenanntes Welt-Koordinatensystem bezeichnet werden. Das Referenzkoordinatensystem 51 ist ein Koordinatensystem, in dem die Position des Ursprungs festliegt und weiterhin Richtungen des Koordinatensystems ebenfalls festliegen. Auch wenn sich also Position und Richtung des Roboters 1 ändern, ändern sich Position und Richtungen des Referenzkoordinatensystems 51 nicht. Das Referenzkoordinatensystem 51 hat eine X-Achse, eine Y-Achse und eine Z-Achse, die zueinander rechtwinklig stehen. Weiterhin ist eine W-Achse um die X-Achse eingesetzt. Eine P-Achse um die Y-Achse und eine R-Achse um die Z-Achse, jeweils als Drehachse.
  • Ein Werkzeugkoordinatensystem 52 bewegt sich zusammen mit der Hand 2 und ist in der Robotervorrichtung 5 eingestellt. Der Ursprung des Werkzeugkoordinatensystems 52 gemäß dem vorliegenden Ausführungsbeispiel ist in den Werkzeug-Spitzenpunkt gelegt. Das Werkzeugkoordinatensystem 52 hat eine X-Achse, eine Y-Achse und eine Z-Achse, die zueinander senkrecht stehen. Weiterhin hat das Werkzeugkoordinatensystem 52 eine W-Achse um die X-Achse, eine P-Achse um die Y-Achse und eine R-Achse um die Z-Achse, jeweils als Drehachse. Die Position des Roboters 1 kann jeweils dargestellt werden als eine Position des Ursprungs des Werkzeugkoordinatensystems 52. Weiterhin kann eine Orientierung des Roboters 1 dargestellt werden durch Richtungen des Werkzeugkoordinatensystems 52 mit Bezug auf das Referenzkoordinatensystem 51.
  • 3 zeigt ein Blockdiagramm einer Robotervorrichtung gemäß dem vorliegenden Ausführungsbeispiel. Entsprechend den 1 bis 3 hat der Roboter 1 eine Roboterantriebseinrichtung, welche Position und Orientierung des Roboters 1 ändert. Die Roboterantriebseinrichtung enthält eine Mehrzahl von Roboterantriebsmotoren 22 zum Bewegen von Komponenten, wie einem Arm oder einem Gelenk. Der Antrieb durch den Roboterantriebsmotor 22 ändert eine Richtung der jeweiligen Komponenten.
  • Die Hand 2 hat eine Handantriebseinrichtung, welche die Hand 2 antreibt. Die Handantriebseinrichtung gemäß dem vorliegenden Ausführungsbeispiel enthält einen Handantriebsmotor 21, welcher die Greifer 3 der Hand 2 antreibt. Die Greifer 3 der Hand 2 werden geöffnet oder geschlossen durch Betätigung des Handantriebsmotors 21. Die Greifer können auch eingerichtet sein für einen Antrieb mit Luftdruck. In diesem Fall kann die Handantriebsvorrichtung Einrichtungen aufweisen, welche die Greifer mittels Luftdruck betätigen, also beispielsweise eine Luftpumpe und einen Zylinder.
  • Die Steuerung 7 der Robotervorrichtung 5 enthält eine Robotersteuerung 4, welche den Roboter 1 und die Hand 2 steuert. Die Robotersteuerung 4 enthält eine arithmetische Prozessoreinrichtung (Computer) mit einer zentralen Prozessoreinheit (CPU) als Prozessor. Die arithmetische Prozessoreinrichtung enthält einen Speicher mit wahlfreiem Zugriff (RAM), einen Lesespeicher (ROM) und dergleichen, die über einen Bus an die CPU angeschlossen sind. In die Robotersteuerung 4 ist ein Betriebsprogramm 41 eingegeben, welches im Voraus erzeugt ist, um den Roboter 1, die Hand 2 und den Förderer 75 zu steuern. Der Roboter 1 und die Hand 2 fördern das zweite Werkstück 91 entsprechend dem Betriebsprogramm 41. Der Förderer 75 fördert das erste Werkstück 81 auf Basis des Betriebsprogramms 41.
  • Die arithmetische Prozessoreinrichtung der Robotersteuerung 4 enthält einen Speicher 42, welcher vorgegebene Informationen speichert. Der Speicher 42 speichert Informationen, die relevant sind für die Steuerung des Roboters 1, der Hand 2 und des Förderers 75. Der Speicher 42 kann gebildet sein durch ein Speichermedium, welches Informationen speichern kann, wie einen flüchtigen Speicher, einen nichtflüchtigen Speicher oder eine Festplatte. Das Betriebsprogramm 41 ist in dem Speicher 42 abgelegt. Die Robotersteuerung 4 enthält eine Anzeigeeinrichtung 46, welche Informationen anzeigen kann, die relevant sind bezüglich der Robotervorrichtung 5. Die Anzeigeeinrichtung 46 enthält beispielsweise ein Flüssigkristall-Anzeigefeld.
  • Die arithmetische Prozessoreinrichtung der Robotersteuerung 4 enthält eine Betriebssteuerungseinheit 43, welche Betriebsbefehle für den Roboter 1 und die Hand 2 abgibt. Die Betriebssteuerungseinheit 43 entspricht dem Prozessor, der entsprechend dem Betriebsprogramm 41 arbeitet. Die Betriebssteuerungseinheit 43 ist eingerichtet, Informationen auszulesen, die in dem Speicher 42 abgelegt sind. Der Prozessor liest das Betriebsprogramm 41 und arbeitet als Betriebssteuerungseinheit 43 durch Ausführung der Steuerung, die durch das Betriebsprogramm 41 festgelegt ist.
  • Die Betriebssteuerungseinheit 43 sendet auf Basis des Betriebsprogramms 41 Betriebsbefehle zum Antrieb des Roboters 1 an den Roboterantrieb 45. Der Roboterantrieb 45 enthält eine elektrische Schaltung, welche den Roboterantriebsmotor 22 steuert. Der Roboterantrieb 45 versorgt den Roboterantriebsmotor 22 entsprechend einem Betriebsbefehl mit Strom. Die Betriebssteuerungseinheit 43 sendet einen Betriebsbefehl zum Antrieb der Hand 2 an den Handantrieb 44 entsprechend dem Betriebsprogramm 41. Der Handantrieb 44 enthält eine elektrische Schaltung, welche den Handantriebsmotor 21 steuert. Der Handantrieb 44 versorgt den Handantriebsmotor 21 auf Basis des Betriebsbefehls mit Strom. Weiterhin sendet die Betriebssteuerungseinheit 43 einen Befehl für eine Bildaufnahme an die Kameras 25 und 26 und die fixierte Kamera 27 entsprechend dem Betriebsprogramm 41.
  • Die arithmetische Prozessoreinrichtung der Robotersteuerung 4 enthält eine arithmetische Prozessoreinheit 31, welche Datenausgaben der Kamera 25 und der fixierten Kamera 27 verarbeitet. Die arithmetische Prozessoreinheit 31 enthält eine Kenngrößendetektionseinheit 32, welche eine Kenngröße detektiert, die relevant ist bezüglich einer Position eines kennzeichnenden Teils, d.h. eines vorgegebenen Unterscheidungsmerkmals in durch die Kameras 25 und 26 und die fixierte Kamera 27 aufgenommenen Bildern. Die Prozessoreinheit 31 enthält eine Fehleinstellungsdetektionseinheit 33, welche den Betrag einer Positionsfehleinstellung (Fehlausrichtung) beim Greifen des zweiten Werkstückes 91 in der Hand 2 detektiert entsprechend dem Ausgang der fixierten Kamera 27. Die arithmetische Prozessoreinheit 31 enthält eine Orientierungsdetektionseinheit 34, welche den Betrag einer Orientierungsabweichung des ersten Werkstückes 81 auf Basis eines Bildes, welches von der ersten Kamera 25 und/oder der zweiten Kamera 26 aufgenommen ist, detektiert. Weiterhin beinhaltet die arithmetische Prozessoreinheit 31 eine Befehlserzeugungseinheit 35, welche Bewegungsbefehle erzeugt, gemäß denen der Roboter 1 arbeitet.
  • Die arithmetische Prozessoreinheit 31 entspricht dem Prozessor, der entsprechend dem Betriebsprogramm 41 arbeitet. Insbesondere entsprechen die Kenngrößendetektionseinheit 32, die Fehleinstellungsdetektionseinheit 33, die Orientierungsdetektionseinheit 34 und die Befehlserzeugungseinheit 35 jeweils einen Prozessor, der entsprechend dem Betriebsprogramm 41 arbeitet. Der Prozessor wirkt entsprechend der jeweiligen Einheit durch Auslesen des Betriebsprogramms 41 und durch Ausführung der Steuerung, wie sie in dem Betriebsprogramm 41 festgelegt ist.
  • Die Robotervorrichtung 5 enthält einen Zustandsdetektor zum Detektieren des Betriebszustandes der Robotervorrichtung 5. Der Zustandsdetektor gemäß dem vorliegenden Ausführungsbeispiel enthält einen Positionsdetektor 23, welcher die Position und Orientierung des Roboters 1 detektiert. Der Positionsdetektor 23 ist an dem Roboterantriebsmotor 22 angebracht entsprechend jeweils der Antriebsachse einer Komponente, wie eines Arms. Beispielsweise detektiert der Positionsdetektor 23 einen Drehwinkel, wenn der Roboterantriebsmotor 22 läuft. Auf Basis der Ausgabe seitens des Positionsdetektors 23 werden eine Position und eine Orientierung des Roboters 1 detektiert.
  • Die Steuerung 7 der Robotervorrichtung 5 enthält eine Förderersteuerung 76, welche den Betrieb des Förderers 75 steuert. Die Förderersteuerung 76 enthält eine arithmetische Prozessoreinrichtung (Computer), welche eine CPU, einen RAM und dergleichen enthält. Die Förderersteuerung 76 ist so eingerichtet, dass sie wechselseitig mit der Robotersteuerung 4 kommunizieren kann. Die Betriebssteuerung 43 sendet einen Betriebsbefehl zum Antrieb der Steuerung 75 an die Förderersteuerung 76 auf Basis des Betriebsprogramms 41. Die Förderersteuerung 76 empfängt den Betriebsbefehl von der Robotersteuerung 4 und treibt den Förderer 75 entsprechend an.
  • Die Steuerung 7 der Robotervorrichtung 5 gemäß dem vorliegenden Ausführungsbeispiel enthält die Robotersteuerung 4, welche den Roboter 1 und die Hand 2 steuert, und die Förderersteuerung 76, welche den Förderer 75 steuert; jedoch liegt insoweit durch dieses Ausführungsbeispiel keine Einschränkung vor. Die Robotervorrichtung 5 kann auch derart gebildet sein, dass eine Steuerung den Roboter 1, die Hand 2 und den Förderer 75 steuert.
  • Weiterhin enthält in der Steuerung 7 der Robotervorrichtung 5 gemäß dem vorliegenden Ausführungsbeispiel die Robotersteuerung 4 und die arithmetische Prozessoreinheit 31, welche eine Funktion hat zum Verarbeiten der Ausgangssignale der Kameras 25 und 26 sowie der fixierten Kamera 27, jedoch liegt insoweit durch das Ausführungsbeispiel keine Einschränkung vor. Die Steuerung der Robotervorrichtung kann auch mit einer arithmetischen Prozessoreinrichtung (Computer) versehen sein, welche die Funktionen der arithmetischen Prozessoreinheit 31 übernimmt, getrennt von der Robotersteuerung. Der Prozessor der arithmetischen Prozessoreinrichtung wirkt als die Kenngrößendetektionseinheit, die Fehleinstellungsdetektionseinheit, die Orientierungsdetektionseinheit und als die Befehlserzeugungseinheit entsprechend dem Betriebsprogramm. Die arithmetische Prozessoreinrichtung, die als die arithmetische Prozessoreinheit 31 arbeitet, kann so ausgebildet sein, dass sie wechselseitig mit der Robotersteuerung kommunizieren kann.
  • Die Steuerung 7 der Robotervorrichtung 5 gemäß dem vorliegenden Ausführungsbeispiel führt die Greifsteuerung zum Greifen des zweiten Werkstückes 91 aus. Die Steuerung 7 der Robotervorrichtung 5 führt die Annäherungssteuerung aus um zu bewirken, dass sich das zweite Werkstück 91, welches sich zunächst vom ersten Werkstück 81 entfernt befindet, dem ersten Werkstück 81 nähert. Die Steuerung 7 der Robotersteuerung 5 führt die Fehleinstellungsdetektionssteuerung aus zum Detektieren eines Betrages der Positionsfehleinstellung in Bezug auf die Hand 2 beim Greifen des zweiten Werkstückes 91 und eine Fehleinstellungskorrektursteuerung zum Korrigieren der Position des Roboters 1 derart, dass der Betrag der GreifFehleinstellung kompensiert wird.
  • Die Steuerung der Robotervorrichtung 5 führt eine Orientierungsdetektionssteuerung aus zum Detektieren eines Betrages der Orientierungsabweichung des ersten Werkstückes 81 und eine Orientierungskorrektursteuerung zum Korrigieren der Orientierung des Roboters 1 derart, dass die Orientierung des zweiten Werkstückes 91 in Bezug auf das erste Werkstück 81 einer vorgegebenen Orientierung entspricht unter Kompensation des Betrages der Orientierungsabweichung, wie sie durch die Orientierungsabweichungssteuerung detektiert ist. Sodann, nachdem das zweite Werkstück 91 an das erste Werkstück 81 angenähert ist, führt die Steuerung 7 der Robotervorrichtung 5 eine Positionseinstellungssteuerung aus zum Einstellen der Position des zweiten Werkstückes 91 in Bezug auf das erste Werkstück 81, wobei die Einstellung präziser erfolgt als bei der Annäherungssteuerung. Weiterhin führt die Steuerung 7 der Robotersteuerungsvorrichtung 4 eine Anbringungssteuerung aus zum Einschieben der Stifte 92a und 93a des zweiten Werkstückes in die Löcher 82a und 83a des ersten Werkstückes 81.
  • 4 zeigt ein Flussdiagramm für die Greifsteuerung, die Fehleinstellungsdetektionssteuerung und die Annäherungssteuerung beim vorliegenden Ausführungsbeispiel. Zunächst führt in Schritt 111 und in Schritt 112 die Robotervorrichtung 5 die Greifsteuerung aus zum Greifen des zweiten Werkstückes 91. Beispielsweise greift die Robotervorrichtung 5 das zweite Werkstück 91, wenn es in einem Arbeitsbereich platziert ist.
  • 5 zeigt in perspektivischer Ansicht das zweite Werkstück und die Hand beim Ergreifen. Entsprechend den 4 und 5 nimmt in Schritt 111 die Kamera 25 ein Bild des zweiten Werkstückes 91 auf. Beim hier gezeigten Beispiel ist das Greifteil 94 des Werkstückes 91 als der kennzeichnende Teil gesetzt, um das Werkstück 91 zu greifen. Position und Orientierung des Roboters 1, wo die Kamera 95 ein Bild des Greifteils 94 aufnimmt, werden vorgegeben. Die Betriebssteuerungseinheit 43 ändert die Position und die Orientierung des Roboters 1 und nimmt ein Bild des Greifteils 94 mit der Kamera 25 auf.
  • In Schritt 112 detektiert die Kenngrößendetektionseinheit 32 der arithmetischen Prozessoreinheit 31 das Greifteil 94 im mit der Kamera 25 aufgenommenen Bild. Ein Ausgangsbild des Greifteils 94 wurde im Voraus angefertigt, wobei das Bild aus einer vorgegebenen Richtung aufgenommen wurde. Durch Verwendung des mit der Kamera 25 aufgenommenen Bildes und des Ausgangsbildes wird das Greifteil 94 im mit der Kamera 25 aufgenommenen Bild mit dem Schablonenvergleichsverfahren detektiert. Beim vorliegenden Ausführungsbeispiel wird ein Bildschirmkoordinatensystem in den mit den Kameras 25 und 26 aufgenommenen Bildern eingestellt. Die Kenngrößendetektionseinheit 32 detektiert eine Position des Greifteils 94 in dem Bildschirmkoordinatensystem.
  • Die Position des Werkstückes 91 in dem Bildschirmkoordinatensystem in Bezug auf die momentane Position des Werkstückes in dem Werkzeugkoordinatensystem 52 wurde zuvor kalibriert. Deshalb kann die Kenngrößendetektionseinheit 32 die Position des Greifteils 94 im Werkzeugkoordinatensystem berechnen auf Basis des mit der Kamera 25 aufgenommenen Bildes. Die Befehlserzeugungseinheit 35 erzeugt einen Bewegungsbefehl zum Ändern der Position und der Orientierung des Roboters 1 auf Basis der Position des Greifteils 94. Der Roboter 1 ändert seine Position und Orientierung und greift das Greifteil mit der Hand 2.
  • Die Greifsteuerung zum Greifen eines Werkstückes kann mit jeglichem geeigneten Verfahren ausgeführt werden. Beispielsweise können eine Jacobi-Matrix und ein Referenzbild bezüglich einer Position eines charakteristischen Bereichs in einem Bild im Voraus erzeugt werden. Die Jacobi-Matrix kann berechnet werden auf Basis einer Positionsfehleinstellung in dem Vision-Sensor-Koordinatensystem, wenn die Position des Roboters geringfügig geändert wird. Die Position des Roboters kann geändert werden auf Basis der Position des charakteristischen Bereichs in dem mit der Kamera aufgenommenen Bild, der Position des charakteristischen Bereichs in dem Referenzbild und der Jacobi-Matrix.
  • Sodann greift die Robotervorrichtung 5 das Werkstück 91, wobei eine Fehleinstellung beim Greifen auftreten kann (Fehlpositionierung). Sodann wird in Schritt 113 und in Schritt 114 die Fehleinstellungsdetektionssteuerung zum Detektieren des Betrages der Positionsfehleinstellung beim Greifen des zweiten Werkstückes 91 in Bezug auf die Hand 2 ausgeführt.
  • 6 zeigt eine perspektivische Ansicht des zweiten Werkstückes, der Hand und der festen Kamera bei Ausführung der Fehleinstellungsdetektionssteuerung. Beim in 6 gezeigten Beispiel ist das zweite Werkstück 91 in Bezug auf die Greifer 3 der Hand 2 nach unten fehl platziert, wie durch den Pfeil 106 angedeutet ist. Dementsprechend wird beim vorliegenden Ausführungsbeispiel eine Korrektursteuerung bezüglich der Griff-Fehleinstellung des zweiten Werkstückes 91 ausgeführt.
  • In Schritt 113 wird entsprechend den 4 und 6 von der festen Kamera 27 ein Bild des zweiten Werkstückes 91 aufgenommen. Beim gegebenen Ausführungsbeispiel sind die Stifte 92a und 93a des Werkstückes 91 als kennzeichnende Teile definiert, um den Betrag des Fehlers beim Greifen des Werkstückes 91 zu detektieren. Die Betriebssteuerungseinheit 43 ändert die Position und die Orientierung des Roboters 1 derart, dass die Position und die Orientierung des Roboters 1 der Position und Orientierung entsprechen, die durch das Betriebsprogramm 41 vorgegeben sind, um ein Bild des Werkstückes 91 aufzunehmen. Durch Änderung von Position und Orientierung des Roboters 1 werden die Stifte 92a und 93a des Werkstückes 91 im Bildaufnahmebereich 37a der festen Kamera 27 positioniert. Sodann nimmt die feste Kamera 27 ein Bild der Stifte 92a, 93a des Werkstückes 91 auf.
  • In Schritt 114 detektiert die Kenngrößendetektionseinheit 32 der arithmetischen Prozessoreinheit 31 die Stifte 92a und 93a im von der festen Kamera 27 aufgenommenen Bild. Ein Ausgangsbild (Vergleichsbild) der Stifte 92a und 93a, aufgenommen aus einer vorgegebenen Richtung, wurde im Voraus erzeugt. Mit dem durch die feste Kamera 27 aufgenommenen Bild und dem Ausgangsbild werden die Stifte 92a und 93a in dem mit der festen Kamera 27 aufgenommenen Bild detektiert mittels des Schablonen-Vergleichsverfahrens. Sodann detektiert die Kenngrößendetektionseinheit 32 die Positionen der Stifte 92 und 93a in dem Bildschirm-Koordinatensystem. Die Positionen der Stifte 92a und 93a entsprechen der Position des Werkstückes 91.
  • Die Position des Werkstückes 91 in dem Bildschirm-Koordinatensystem 53 in Bezug auf eine momentane Position des Werkstückes 91 im Werkzeugkoordinatensystem 52 wurde kalibriert. Dementsprechend kann die Fehleinstellungsdetektionseinheit 33 die Positionen der Stifte 92a und 93a im Werkzeugkoordinatensystem 52 auf Basis des mit der festen Kamera 27 aufgenommenen Bildes ermitteln. Mit anderen Worten: die Fehleinstellungsdetektionseinheit 33 kann die Position des Werkstückes 91 im Werkzeugkoordinatensystem 52 berechnen.
  • Die Fehleinstellungsdetektionseinheit 33 berechnet den Betrag des Greiffehlers bezüglich des zweiten Werkstückes 91 in der Hand 2. Eine Referenzposition des Werkstückes 91 im Werkzeugkoordinatensystem 52 ohne Greiffehler bezüglich des Werkstückes 91 ist vorgegeben. Auf Basis dieser Referenzposition und der Position des Werkstückes 91, wie sie aus dem mit der festen Kamera 27 aufgenommenen Bild detektiert ist, kann der Betrag der Positionsfehleinstellung des Werkstückes 91 in der Hand 2 im Werkzeugkoordinatensystem 52 berechnet werden. Der Speicher 42 speichert den Betrag der Positionsfehleinstellung des Werkstückes 91 in der Hand 2. Die Positionsfehleinstellung des Werkstückes 91 in der Hand 2 wird durch die anschließende Steuerung korrigiert.
  • Die Fehleinstellungsdetektionssteuerung zum Detektieren des Betrages der Positionsfehleinstellung des Werkstückes 91 in der Hand 2 ist nicht auf die oben beschriebene Konfiguration beschränkt und kann mit jeglicher Steuerung ausgeführt werden. Beispielsweise kann der Betrag der Positionsfehleinstellung des Werkstückes 91 in der Hand 2 mit dem Referenzbild, welches im Voraus erzeugt worden ist, und der Jacobi-Matrix detektiert werden.
  • Anschließend wird in den Schritten 115 bis 117 die Annäherungssteuerung zum Annähern des zweiten Werkstückes 91 an das erste Werkstück 81 ausgeführt. Beim vorliegenden Ausführungsbeispiel wird eine konstante Geschwindigkeit für die Bewegungsgeschwindigkeit, mit der sich das Werkstück 91 in Richtung auf das zweite Werkstück 81 bewegt, angesetzt. Beim in 1 gezeigten Beispiel ist die konstante Geschwindigkeit die Geschwindigkeit, mit welcher sich die Position des Roboters 1 in X-Achsen-Richtung des Referenzkoordinatensystems 51 bewegt. Bei der Annäherungssteuerung wird die Position des Werkstückes 91 in der Y-Achsen-Richtung und der Z-Achsen-Richtung des Referenzkoordinatensystems 51 eingestellt.
  • 7 zeigt in vergrößerter perspektivischer Darstellung Abschnitte des ersten Werkstückes, des zweiten Werkstückes und der Hand bei Ausführung der Annäherungssteuerung. Bei der Annäherungssteuerung nähern sich die vorstehenden Teile 92 und 93 des zweiten Werkstückes 91 den vorstehenden Teilen 82 und 83 des ersten Werkstückes 81, wie durch den Pfeil 101 angezeigt ist. Der Roboter 1 ändert Position und Orientierung derart, dass das vorstehende Teil 83 im Inneren des Bildaufnahmebereichs 25a der Kamera 25 entsprechend dem Betriebsprogramm 41 liegt.
  • Eine Bedienungsperson erzeugt ein Referenzbild des ersten Werkstückes 81 als eine vorbereitende Maßnahme für die Ausführung der Annäherungssteuerung. Das Referenzbild ist ein mit der Kamera 25 aufgenommenes Bild, bei dem das zweite Werkstück 91 in einer Zielposition in Bezug auf das erste Werkstück 81 positioniert ist. Weiterhin ist das Referenzbild ein Bild in einem Zustand, in dem das zweite Werkstück 91 in einer vorgegebenen Position mit der Hand 2 gegriffen ist. Mit anderen Worten: das Referenzbild ist ein Bild auf Basis eines Zustandes, in dem keine Greiffehleinstellung bezüglich des zweiten Werkstückes 91 gegeben ist. Das Referenzbild kann seitens der Bedienungsperson im Voraus erzeugt sein und in dem Speicher 42 abgelegt sein.
  • Das Referenzbild gemäß dem vorliegenden Ausführungsbeispiel ist ein mit der Kamera tatsächlich aufgenommenes Bild, jedoch liegt insoweit keine Einschränkung vor. Für das Referenzbild kann beispielsweise eine computergestützte Konstruktion (CAD) oder dergleichen herangezogen werden, es können dreidimensionale Daten der Robotervorrichtung 5 und der Werkstücke 81 und 91 erzeugt werden. Die dreidimensionalen Daten können erzeugt werden, wenn das Werkstück 91 in Bezug auf das Werkstück 81 in einer Zielposition positioniert ist. Das Referenzbild kann erzeugt werden durch Projektion der dreidimensionalen Daten auf eine Ebene entlang einer Richtung entsprechend der Ausrichtung der Kamera.
  • Beim vorliegenden Ausführungsbeispiel ist ein kennzeichnendes Teil zum Detektieren einer Position des ersten Werkstückes 81 vorab bestimmt. Das kennzeichnende Teil ist ein Teil, mit dem eine Form bei Analyse des Bildes gut detektierbar ist. Als kennzeichnendes Teil können ein Teil des Werkstückes, ein auf der Oberfläche des Werkstückes ausgeformtes Muster, eine Linie oder eine auf der Oberfläche des Werkstückes gegebene Figur oder dergleichen herangezogen werden. Bei der Annäherungssteuerung ist eine Seitenfläche 83b des vorstehenden Teiles 83 als kennzeichnendes Teil definiert.
  • Bezüglich des ersten Werkstückes 81 ist ein gesetzter Punkt P11 auf der Seitenfläche 83b des vorstehenden Teils 83 als kennzeichnendes Teil gesetzt. Der gesetzte Punkt P11 ist an einer Ecke der Seitenfläche 83b des vorstehenden Teils 83 gelegen. Die Position des gesetzten Punktes P11 entspricht der Position des Werkstückes 81. Der gesetzte Punkt P11 liegt an einer Stelle, die im mit der Kamera 25 aufgenommenen Bild liegt.
  • Entsprechend 4 und 7 nimmt in Schritt 115 die erste Kamera 25 ein Bild der Seitenfläche 83b des vorstehenden Teils 83 auf, welches ein kennzeichnendes Teil des ersten Werkstückes 81 bildet. Sodann erfolgt in Schritt 116 eine Steuerung zur Änderung der Position des Roboters 1 derart, dass sich das zweite Werkstück 91 dem ersten Werkstück 81 nähert entsprechend dem mit der ersten Kamera 25 aufgenommenen Bild.
  • 8 zeigt ein Flussdiagramm für die Steuerung der Annäherung des zweiten Werkstückes an das erste Werkstück. Die Steuerung gemäß 8 entspricht der Steuerung in Schritt 116 gemäß 4. 9 zeigt ein mit der ersten Kamera bei der Annäherungssteuerung aufgenommenes Bild. 9 zeigt mit durchgezogenen Linien ein mit der Kamera 25 aufgenommenes Bild 61. Zu Zwecken des Vergleichs ist mit gestrichelten Linien ein Referenzbild gezeigt. Das Bild 61, welches mit der Kamera 25 aufgenommen ist, ist in Bezug auf das Referenzbild fehleingestellt (fehljustiert). Bei der Annäherungssteuerung wird die Position des Roboters derart geändert, dass das mit der Kamera 25 aufgenommene Bild mit dem Referenzbild zusammenfällt.
  • Entsprechend den 7 bis 9 detektiert in Schritt 131 die Kenngrößendetektionseinheit 32 der arithmetischen Prozessoreinheit 31 den kennzeichnenden Teil im Bild 61, welches mit der Kamera 25 aufgenommen ist. Für das Verfahren des Detektierens des kennzeichnenden Teils kann ein Ausgangsbild des Werkstückes 81 als Referenz im Voraus angefertigt werden. Andererseits kann auch das Referenzbild als Ausgangsbild verwendet werden. Durch Verwendung des Ausgangsbildes und eines mit der Kamera 25 aufgenommenen Bildes kann in dem mit der Kamera 25 aufgenommenen Bild das kennzeichnende Teil detektiert werden, beispielsweise mit dem Verfahren der Schablonenanpassung (template matching). Beim vorliegenden Ausführungsbeispiel wird die Seitenfläche 83b des vorstehenden Teils 83 detektiert. Die Orientierung des ersten Werkstückes 81 kann gegenüber der gewünschten Orientierung abgewinkelt sein. Ist die Orientierungsabweichung des ersten Werkstückes 81 groß, können im Voraus mehrere Referenzbilder erzeugt werden, bei denen das erste Werkstück 81 jeweils unter vorgegebenen Winkeln geneigt ist.
  • In Schritt 132 detektiert die Kenngrößendetektionseinheit 32 einen Kenngrößenbetrag bezüglich der Kennzeichenposition. Beim vorliegenden Ausführungsbeispiel wird das Bildschirm-Koordinatensystem 53 in das mit der Kamera 25 aufgenommene Bild 61 gelegt. Das Bildschirm-Koordinatensystem 53 ist ein Koordinatensystem, bei dem ein Punkt in einem Bild als Ursprung gesetzt ist. Das Bildschirm-Koordinatensystem 53 hat eine u-Achse und eine v-Achse, die senkrecht zueinander stehen. Das Bildschirm-Koordinatensystem 53 entspricht dem Vision-Sensor-Koordinatensystem der Kamera 25.
  • Der Kenngrößenbetrag bezüglich einer Position gemäß dem vorliegenden Ausführungsbeispiel ist ein Koordinatenwert auf der u-Achse und ein Koordinatenwert auf der v-Achse in dem Bildschirm-Koordinatensystem 53 in dem Bild. Die Kenngrößendetektionseinheit 32 detektiert die Position des gesetzten Punktes P11, der als kennzeichnendes Teil gesetzt ist, auf Basis des Kenngrößenbetrages, wie er in dem Bild 61, welches mit der Kamera 25 aufgenommen ist, detektiert wird. Mit anderen Worten: die Kenngrößendetektionseinheit 32 detektiert Koordinatenwerte (u1m, v1m) des gesetzten Punktes P11 in dem Bildschirm-Koordinatensystem 53 als den Kenngrößenbetrag bezüglich der Position des kennzeichnenden Teils.
  • In Schritt 133 berechnet die Befehlserzeugungseinheit 35 einen relativen Positionsbetrag als eine relative Positionsdifferenz zwischen der Position des gesetzten Punktes P11 in dem mit der Kamera 25 aufgenommenen Bild 61 und der Position des gesetzten Punktes P11 in dem Referenzbild. Als ein erster ReferenzKenngrößenbetrag im Referenzbild sind Koordinatenwerte (u1b, v1b) des gesetzten Punktes P11 im Bildschirm-Koordinatensystem 53 vorgegeben.
  • Die Befehlserzeugungseinheit 35 berechnet für jede Koordinatenachse den relativen Positionsbetrag, der gewonnen wird durch Subtraktion der Koordinatenwerte des gesetzten Punktes P11 im Referenzbild von den Koordinatenwerten des gesetzten Punktes P11 im mit der Kamera 25 aufgenommenen Bild. Der relative Positionsbetrag kann bezüglich der u-Achse und der v-Achse mit [(u1m-u1b), (v1m-v1b)] ausgedrückt werden. Auf diese Weise werden für das vorliegende Ausführungsbeispiel jeweils ein relativer Positionsbetrag bezüglich der u-Achse und ein relativer Positionsbetrag bezüglich der v-Achse berechnet.
  • In Schritt 134 stellt die Befehlserzeugungseinheit 35 ein Antriebsverfahren für den Roboter 1 entsprechend dem relativen Positionsbetrag ein. Die Befehlserzeugungseinheit 35 erzeugt einen ersten Bewegungsbefehl, welcher eine Bewegungsrichtung und einen Bewegungsbetrag für die Position des Roboters 1 im Referenzkoordinatensystem 51 enthält. Beim vorliegenden Ausführungsbeispiel ist eine Bewegungsrichtung für die Position des Roboters in Bezug auf einen relativen Positionsbetrag vorgegeben. Eine Bewegungsrichtung für die Position des Roboters 1 in Bezug auf einen positiven Wert oder einen negativen Wert der u-Achse im Bildschirm-Koordinatensystem 53 ist im Referenzkoordinatensystem 51 definiert.
  • Weiterhin ist ein Verfahren vorgegeben zum Berechnen eines Bewegungsbetrages für die Position des Roboters 1 in Bezug auf den relativen Positionsbetrag. Beispielsweise kann als Bewegungsbetrag für die Position des Roboters 1 in Richtung entsprechend der u-Achse ein Wert angesetzt werden, der gewonnen wird durch Multiplikation des Wertes (u1m-u1b) bezüglich der u-Achse mit einem vorgegebenen Koeffizienten. Weiterhin kann als Bewegungsbetrag der Position des Roboters 1 in Richtung entsprechend der v-Achse ein Wert angesetzt werden, der gewonnen wird durch Multiplikation des Wertes (v1m-v1b) bezüglich der v-Achse mit einem vorgegebenen Koeffizienten. Auf diese Weise kann der Bewegungsbetrag der Position des Roboters 1 in den Richtungen entsprechend den Koordinatenachsen im Bildschirm-Koordinatensystem 53 berechnet werden.
  • Beim vorliegenden Ausführungsbeispiel wird eine Steuerung ausgeführt, gemäß der sich das Werkstück 91 allmählich abgestuft dem Werkstück 81 nähert. Deshalb können die oben beschriebenen Koeffizienten geändert werden entsprechend dem jeweiligen Bewegungsbetrag der Position des Roboters 1 in der Richtung, in welcher sich das Werkstück 91 dem Werkstück 81 nähert.
  • Beim gegebenen Ausführungsbeispiel können ein Bewegungsbetrag in X-Achsen-Richtung, ein Bewegungsbetrag in Y-Achsen-Richtung und ein Bewegungsbetrag in Z-Achsen-Richtung im Referenzkoordinatensystem 51 berechnet werden auf Basis des relativen Bewegungsbetrages bezüglich der u-Achse. Weiterhin können ein Bewegungsbetrag in der X-Achsen-Richtung, ein Bewegungsbetrag in der Y-Achsen-Richtung und ein Bewegungsbetrag in der Z-Achsen-Richtung im Referenzkoordinatensystem 51 berechnet werden auf Basis des relativen Bewegungsbetrages bezüglich der v-Achse. Deshalb können im Referenzkoordinatensystem 51 zwei Bewegungsbeträge für eine Koordinatenachse (ein Bewegungsbetrag bezüglich der u-Achse und ein Bewegungsbetrag bezüglich der v-Achse) berechnet werden. In diesem Falle kann die Position des Roboters 1 nicht in einer Koordinatenachsenrichtung bewegt werden, für welche die zwei Bewegungsbeträge berechnet sind. Andererseits kann ein endgültiger Bewegungsbetrag berechnet werden durch Multiplikation der jeweiligen Bewegungsbeträge mit Koeffizienten. Auch können andere Bewegungsbeträge eingesetzt werden.
  • Sodann wird in Schritt 135 der Roboter 1 angetrieben auf Basis der Bewegungsrichtung und des Bewegungsbetrages, die für den Roboter 1 berechnet sind. Die Befehlserzeugungseinheit 35 erzeugt einen ersten Bewegungsbefehl zum Antrieb des Roboters 1 entsprechend der Bewegungsrichtung und des Bewegungsbetrages für die Position des Roboters 1. Die Befehlserzeugungseinheit 35 sendet den ersten Bewegungsbefehl zur Betriebssteuerungseinheit 43. Die Betriebssteuerungseinheit 43 ändert die Position des Roboters 1 entsprechend dem Bewegungsbefehl.
  • Auf diese Weise kann die Befehlserzeugungseinheit 35 die Steuerung ausführen, mit der die Position des Roboters 1 geändert wird derart, dass der Kenngrößenbetrag gemäß Detektion durch die Kenngrößendetektionseinheit 32 sich dem Kenngrößenbetrag des Referenzbildes annähert entsprechend dem Kenngrößenbetrag im mit der Kamera 25 aufgenommenen Bild und dem Referenzkenngrößenbetrag.
  • Entsprechend Schritt 117 gemäß 4 wird ermittelt, ob sich das Werkstück 91 dem Werkstück 81 nähert oder nicht. Dabei wird geprüft, ob der Bewegungsbetrag der Position des Roboters 1 einen vorgegebenen Bestimmungswert überschreitet oder nicht. Beim vorliegenden Ausführungsbeispiel wird ermittelt, ob die Position des Roboters 1 um eine vorgegebene Distanz in Richtung, in welcher sich das Werkstück 91 dem Werkstück 81 nähert, bewegt ist. Beim in 1 gezeigten Beispiel wird also ermittelt, ob der Werkzeugspitzenpunkt um eine vorgegebene Distanz in Richtung der X-Achse des Referenzkoordinatensystems 51 bewegt worden ist oder nicht.
  • Gemäß Schritt 117 endet die Steuerung, wenn der Bewegungsbetrag der Position des Roboters 1 den vorgegebenen Bestimmungswert überschreitet. Wenn der Bewegungsbetrag der Position des Roboters 1 kleiner ist oder gleich als der vorgegebene Bestimmungswert, geht in Schritt 117 die Steuerung zurück zu Schritt 115. Sodann wird die Steuerung vom Schritt 115 zum Schritt 117 wiederholt. Auf diese Weise wird die Annäherungssteuerung wiederholt, bis das zweite Werkstück 91 nahe dem ersten Werkstück 81 ist.
  • Wenn der Bewegungsbetrag der Position des Roboters 1 den vorgegebenen Bestimmungswert überschreitet, wenn also das vorstehende Teil 93 des zweiten Werkstückes 91 nicht hinreichend nahe am vorstehenden Teil 83 des ersten Werkstückes 81 ist, kann in Schritt 117 die Befehlserzeugungseinheit 35 feststellen, dass die Position anormal ist. Weicht beispielsweise der relative Positionsbetrag von einem vorgegebenen Bestimmungsbereich ab, kann die Befehlserzeugungseinheit 35 eine Steuerung zum Stoppen des Roboters 1 ausführen.
  • Beim vorliegenden Ausführungsbeispiel führt die Steuerung eine allmähliche Annäherung des Werkstückes 91 an das Werkstück 81 aus. Die Größe des kennzeichnenden Teils in den mit der Kamera 25 aufgenommenen Bildern wächst stufenweise allmählich an. Deshalb kann die Bedienungsperson eine Mehrzahl von Referenzbildern erzeugen entsprechend dem Bewegungsbetrag der Position des Roboters 1 in Richtung der Annäherung des Werkstückes 91 an das Werkstück 81. Die Kenngrößendetektionseinheit 32 kann die Steuerung so ausführen, dass die Referenzbilder geschaltet werden entsprechend dem Bewegungsbetrag der Position des Roboters 1 in Richtung der Annäherung des Werkstückes 91 an das Werkstück 81. Andererseits kann auch ein annehmbarer Bereich definiert werden bezüglich der Größe des kennzeichnenden Teils in dem mit der Kamera 25 aufgenommenen Bild in Bezug auf die Größe des kennzeichnenden Teils im Referenzbild. Damit kann dann die Steuerung so ausgeführt werden, dass das Referenzbild umgeschaltet wird, wenn die Größe des kennzeichnenden Teils den annehmbaren Bereich überschreitet.
  • 10 zeigt ein weiteres Bild, welches mit der ersten Kamera bei der Annäherungssteuerung aufgenommen wird. Nimmt die Kamera 25 ein Bild des Werkstückes 81 auf, kann ein Schatten 65 in einem Bild 64 auftreten in Abhängigkeit von dem Licht, welches die Robotervorrichtung 5 beleuchtet. Beispielsweise kann der Schatten 65 einer Komponente der Robotervorrichtung 5 oder eines im Bereich des Roboters angeordneten Gegenstandes in dem Bild auftreten. Insbesondere kann der Schatten 65 erzeugt werden durch einen Arm, wie den oberen Arm 11 oder den unteren Arm 12 des Roboters 1, oder durch eine Umzäunung oder dergleichen um die Robotervorrichtung 5 herum.
  • In dem mit der Kamera 25 aufgenommenen Bild kann der Schatten 65 auftreten oder nicht. Hat beispielsweise der Raum, in dem die Robotervorrichtung 5 angeordnet ist, ein Fenster, so kann in Abhängigkeit von der Tageszeit mehr oder weniger Sonnenlicht durch das Fenster eintreten. Auch kann die Position des Schattens 65 in dem mit der Kamera 25 aufgenommenen Bild variieren. Ändert sich beispielsweise der Winkel, unter dem Sonnenlicht durch das Fenster eintritt, dann ändert sich auch die Position des Schattens 65 in dem Bild 64.
  • Andererseits variieren beim vorliegenden Ausführungsbeispiel Position und Orientierung des Roboters 1 in Abhängigkeit von der Position des Werkstückes 81, welches durch den Förderer 75 transportiert wird. Wird unterstützendes Licht von der Seite auf die Robotervorrichtung 5 eingestrahlt, durch eine Lampe oder dergleichen, kann der Schatten 65 in dem Bild 64 auftreten oder nicht in Abhängigkeit von der Position des Werkstückes 81, welches durch den Förderer 75 transportiert wird. Auch kann entsprechend die Position des Schattens 65 in dem Bild 64 variieren.
  • Gemäß Schritt 131 gemäß 8 kann die Kenngrößendetektionseinheit 32 der arithmetischen Prozessoreinheit 31 in der Lage sein, das kennzeichnende Teil im mit der Kamera 25 aufgenommenen Bild 64 zu detektieren oder auch nicht zu detektieren aufgrund der Änderung in der Position des Schattens 65. Auch kann der Schatten 65 einen Teil des kennzeichnenden Teils verdunkeln, so dass die Kenngrößendetektionseinheit 32 nicht in der Lage ist, das kennzeichnende Teil in dem Bild 64 zu detektieren.
  • Deshalb kann die Bedienungsperson eine Mehrzahl von Ausgangsbildern oder Referenzbildern im Voraus anfertigen entsprechend den verschiedenen Belichtungszuständen der Robotervorrichtung 5. Nachfolgend werden beispielhaft Referenzbilder diesbezüglich beschrieben. Beispielsweise kann die Bedienungsperson vorab eine Mehrzahl von Referenzbildern erzeugen unter verschiedenen Einfallswinkeln von durch ein Fenster in den Raum eintretendem Tageslicht. Andererseits kann die Bedienungsperson auch bei Beleuchtung der Robotervorrichtung von der Seite mit Kunstlicht vorab eine Mehrzahl von Referenzbildern erzeugen, bei denen sich die Position des Werkstückes 81 aufgrund des Transportes mit dem Förderer 75 allmählich ändert.
  • Die Bedienungsperson kann eine Mehrzahl von Referenzbildern erzeugen, bei denen sich der Zustand des auf die Robotervorrichtung 5 eingestrahlten Lichtes ändert oder auch sich die Position des Werkstückes 81 allmählich ändert, wobei Relativpositionen und Relativorientierungen des Roboters 1 in Bezug auf das Werkstück 81 vorgegeben werden. Die Bedienungsperson erzeugt also eine Mehrzahl von Referenzbildern, bei denen sich der Zustand des Schattens ändert. In der Mehrzahl von Referenzbildern kann der Schatten 65 aufgenommen sein oder nicht aufgenommen sein. Auch kann sich in der Mehrzahl von Referenzbildern die Position des Schattens 65 allmählich ändern. Die Mehrzahl von Referenzbildern kann in dem Speicher 42 abgelegt werden.
  • Die Kenngrößendetektionseinheit 32 wählt unter der Mehrzahl von Referenzbildern ein Referenzbild aus. Zum Auswählen eines Referenzbildes unter der Mehrzahl von Referenzbildern kann das Auswahlkriterium vorgegeben werden. Die Kenngrößendetektionseinheit 32 prüft, ob das kennzeichnende Teil in dem Bild 64, welches mit der Kamera 25 aufgenommen ist, detektiert werden kann oder nicht. Stellt die Kenngrößendetektionseinheit 32 fest, dass das kennzeichnende Teil in dem Bild 64 detektiert werden kann, setzt die Kenngrößendetektionseinheit 32 das aus dem Referenzbild detektierte kennzeichnende Teil ein. Stellt die Kenngrößendetektionseinheit 32 fest, dass das kennzeichnende Teil in dem Bild 64 nicht detektiert werden kann, wählt die Kenngrößendetektionseinheit 32 das nächste Referenzbild aus und prüft, ob das kennzeichnende Teil in dem mit der Kamera 25 aufgenommenen Bild 64 detektiert werden kann oder nicht. Auf diese Weise kann die Kenngrößendetektionseinheit 32 die Steuerung ausführen mit Änderung des Referenzbildes bis das kennzeichnende Teil in dem Bild 64 detektiert werden kann.
  • Ein jegliches Steuerungsverfahren kann eingesetzt werden für die Prüfung, ob das kennzeichnende Teil detektiert ist oder nicht. Beispielsweise kann die Kenngrößendetektionseinheit das Ausmaß der Ähnlichkeit berechnen zwischen einem mit der Kamera aufgenommenen Bild und einem Referenzbild. Beim vorliegenden Ausführungsbeispiel wird die Detektion des kennzeichnenden Teils ausgeführt mit dem Verfahren der Schablonenanpassung (template matching). Unter allmählicher Änderung der Position eines Referenzbildes in Bezug auf das mit der Kamera aufgenommene Bild berechnet die Kenngrößendetektionseinheit die Quadratsumme der Abweichungen bezüglich der Leuchtkraft (Pixelwerte) in den beiden Bildern. Die Quadratsumme kann eingesetzt werden für die Bestimmung des Ausmaßes der Ähnlichkeit zwischen den Bildern. Je kleiner die Summe der Quadrate ist, umso ähnlicher sind sich die beiden Bilder.
  • Andererseits kann das Ausmaß der Ähnlichkeit der beiden Bilder auch berechnet werden auf Basis einer normierten Kreuzkorrelationsfunktion bezüglich der beiden Bilder. In diesem Fall sind die Bilder umso ähnlicher, umso mehr sich der Wert der Funktion 1 nähert. Die Kenngrößendetektionseinheit kann feststellen, dass das kennzeichnende Teil detektiert werden kann, wenn der Grad der Übereinstimmung zwischen den beiden Bildern sich in einem vorgegebenen Bestimmungsbereich befindet. Andererseits kann die Kenngrößendetektionseinheit auch den Grad der Verschiedenheit berechnen, welcher den Unterschied zwischen den Bildern darstellt, anstelle des Grades der Übereinstimmung.
  • Die Kenngrößendetektionseinheit 32 kann einen Kenngrößenbetrag detektieren auf Basis des kennzeichnenden Teils in dem Bild 64, wenn das kennzeichnende Teil in dem Bild 64 detektiert werden kann. Auf diese Weise kann das kennzeichnende Teil detektiert werden, auch wenn das mit der Kamera 25 aufgenommene Bild 64 einen Schatten 65 aufweist. Das kennzeichnende Teil kann auch detektiert werden, wenn sich die Beleuchtung der Robotervorrichtung 5 ändert.
  • Kann die Kenngrößendetektionseinheit 32 das kennzeichnende Teil in allen Referenzbildern nicht detektieren, kann die Befehlserzeugungseinheit 35 die Steuerung so ausführen, dass die Robotervorrichtung 5 stoppt. Andererseits kann die Kenngrößendetektionseinheit 32 das ähnlichste Referenzbild unter der Mehrzahl von Referenzbildern auswählen und den Kenngrößenbetrag detektieren.
  • Beim vorstehend beschriebenen Ausführungsbeispiel werden die mehreren Referenzbilder erzeugt unter Berücksichtigung des Einflusses von Schatten bei der Annäherungssteuerung, jedoch wird die Ausführung hierdurch nicht eingeschränkt. Eine Steuerung, bei der mehrere Referenzbilder oder Ausgangsbilder mit Schatten eingesetzt werden, wie oben beschrieben, kann auch eingesetzt werden für eine jegliche Steuerung, welche ein kennzeichnendes Teil in dem mit der Kamera aufgenommenen Bild detektiert. Beispielsweise kann die Steuerung, bei der mehrere Referenzbilder oder Ausgangsbilder mit Schatten eingesetzt werden, eingesetzt werden für die Griffsteuerung, die Fehleinstellungsdetektionssteuerung und die Positionseinstellungssteuerung, welche weiter unten beschrieben sind.
  • Nunmehr wird die Steuerung nach Annäherung des zweiten Werkstückes an das erste Werkstück näher beschrieben. 11 zeigt ein Flussdiagramm für die Orientierungsdetektionssteuerung, die Orientierungskorrektursteuerung, die Fehleinstellungskorrektursteuerung, die Positionseinstellungssteuerung und die Anbringungssteuerung gemäß dem vorliegenden Ausführungsbeispiel. 12 zeigt mit vergrößertem Maßstab eine perspektivische Ansicht des ersten Werkstückes, des zweiten Werkstückes und der Hand am Ende der Annäherungssteuerung gemäß dem vorliegenden Ausführungsbeispiel. Durch die Ausführung der Annäherungssteuerung befinden sich die Stifte 92a und 93a des zweiten Werkstückes 91 nahe an den Löchern 82a und 83a des ersten Werkstückes 81.
  • Entsprechend den 11 und 12 korrigiert in den Schritten 121 bis 123 die Steuerung 7 die Robotervorrichtung 5 bezüglich der Orientierung des Roboters 1 derart, dass die Orientierung des zweiten Werkstückes 91 in Bezug auf das erste Werkstück 81 einer vorgegebenen Orientierung entspricht. Das erste Werkstück 81 ist vorzugsweise derart am Förderer 75 angeordnet, dass die Orientierung des Werkstückes der vorgegebenen Orientierung entspricht. Beispielsweise ist das erste Werkstück 81 vorzugsweise so am Förderer fixiert, dass das Loch 82a und das Loch 83a vertikal auf Linie sind. Allerdings kann die Orientierung des ersten Werkstückes 81 von der gewünschten Orientierung abweichen. Deshalb wird beim vorliegenden Ausführungsbeispiel eine Einstellung der Orientierung des zweiten Werkstückes 91 in Bezug auf die Orientierung des ersten Werkstückes 81 ausgeführt.
  • In den Schritten 121 und 122 erfolgt die Orientierungsdetektionssteuerung zum Detektieren eines Betrages der Orientierungsabweichung des ersten Werkstückes 81. In Schritt 121 werden mit der ersten Kamera 25 und der zweiten Kamera 26 Bilder des ersten Werkstückes 81 aufgenommen. Kennzeichnende Teile zum Detektieren der Orientierung des ersten Werkstückes 81 sind in Bezug auf das erste Werkstück 81 im Voraus vorgegeben. Die Seitenfläche 83b des vorstehenden Teils 83 ist hier als kennzeichnendes Teil im mit der Kamera 25 aufzunehmenden Bild gesetzt. Die obere Fläche 82b des vorstehenden Teils 82 ist als kennzeichnendes Teil in dem Bild gesetzt, welches mit der Kamera 26 aufgenommen wird. Die Kameras 25 und 26 nehmen Bilder der jeweiligen kennzeichnenden Teile auf.
  • In Schritt 122 detektiert die Orientierungsdetektionseinheit 34 die Orientierung des ersten Werkstückes 81. Beim vorliegenden Ausführungsbeispiel wird im Voraus ein Ausgangsbild des kennzeichnenden Teils, welches relevant ist für das Bild, mit der Kamera aufgenommen. Weiterhin werden eine Mehrzahl von Ausgangsbildern aufgenommen mit Änderung der Orientierung des ersten Werkstückes 81 für jeweils kleine Winkeländerungen. Jedes Ausgangsbild wird in dem Speicher 42 zusammen mit der Orientierung des ersten Werkstückes 81 entsprechend dem Ausgangsbild abgelegt. Das heißt: die Orientierung des ersten Werkstückes 81 wird in Verknüpfung mit dem Ausgangsbild gespeichert.
  • Die Orientierungsdetektionseinheit 34 gewinnt das mit der ersten Kamera 25 aufgenommene Bild. Die Orientierungsdetektionseinheit 34 wählt das Ausgangsbild, welches das höchste Ausmaß an Übereinstimmung aufweist mit dem Bild der Seitenfläche 83b des vorstehenden Teils 83 in dem mit der Kamera 25 aufgenommenen Bild, wobei das Ausmaß der Übereinstimmung mit dem Schablonenübereinstimmungsverfahren ausgeführt wird. Da die jeweilige Orientierung des ersten Werkstückes 81 in Verknüpfung mit dem Ausgangsbild abgespeichert ist, kann die Orientierungsdetektionseinheit 34 die Orientierung des ersten Werkstückes 81 detektieren. Diese Orientierung des ersten Werkstückes 81 kann detektiert werden unter Einsatz der Koordinatenwerte im Referenzkoordinatensystem 51.
  • Für die mit der zweiten Kamera 26 aufzunehmenden Bilder werden im Voraus mehrere Ausgangsbilder erzeugt, welche die obere Fläche 82b des vorstehenden Teils 82 enthalten, wobei die Orientierung des ersten Werkstückes 81 geändert wird. Die Orientierungsdetektionseinheit 34 kann die Orientierung des ersten Werkstückes 81 detektieren durch Verarbeitungen, die ähnlich sind wie die beschriebenen Verarbeitungen der mit der ersten Kamera 25 aufgenommenen Bilder.
  • Die Orientierungsdetektionseinheit 34 detektiert die endgültige Orientierung des ersten Werkstückes 81 auf Basis der Orientierung, die aus dem mit der Kamera 25 aufgenommenen Bild gewonnen wird und der Orientierung, die gewonnen wird aus dem mit der Kamera 26 gewonnenen Bild. Die Orientierung des ersten Werkstückes 81, wie sie aus den Bildern der Kameras 25 und 26 detektiert wird, kann beispielsweise dargestellt werden durch einen Koordinatenwert der W-Achse, einen Koordinatenwert der P-Achse und einen Koordinatenwert der R-Achse im Referenzkoordinatensystem 51. Die Orientierungsdetektionseinheit 34 kann einen Koordinatenwert, wie er aus dem Bild der Kamera 25 berechnet ist, und einen Koordinatenwert, der aus dem Bild der Kamera 26 detektiert ist, multiplizieren mit Koeffizienten und sodann die multiplizierten Werte für jede Koordinatenachse hinzufügen. Andererseits kann auch für jeden Koordinatenwert der W-Achse, der P-Achse und der R-Achse ein Koordinatenwert eingesetzt werden, der aus Bildern einer der Kameras gewonnen wird.
  • Bei der Orientierungsdetektionssteuerung gemäß dem vorliegenden Ausführungsbeispiel wird die Orientierung des ersten Werkstückes 81 auf Basis von mit mehreren Kameras 25 und 26 erzeugten Bildern detektiert. Damit kann die Orientierung des Werkstückes genauer festgestellt werden im Vergleich mit einer Steuerung, bei der die Orientierung des Werkstückes auf Basis des Bildes nur einer Kamera detektiert wird.
  • Sodann wird in Schritt 123 die Orientierungskorrektursteuerung ausgeführt zum Korrigieren der Orientierung des Roboters 1. Die Befehlserzeugungseinheit 35 korrigiert die Orientierung des Roboters 1 auf Basis der Orientierung des ersten Werkstückes 81, wie sie aus Bildern der Kameras 25 und 26 berechnet ist. Bei der Orientierungskorrektursteuerung wird die Orientierung des Roboters 1 so korrigiert, dass die Orientierung des zweiten Werkstückes 91 in Bezug auf das erste Werkstück 81 einer vorgegebenen Orientierung entspricht. Die Befehlserzeugungseinheit 35 erzeugt einen Bewegungsbefehl zum Korrigieren der Orientierung des Roboters 1 derart, dass die Richtung, in welcher die Stifte 92a und 93a ausgerichtet sind, parallel ist zur Richtung, in welcher die Löcher 82a und 83a ausgerichtet sind. Da die Orientierung des Roboters 1 bei der Annäherungssteuerung vorgegeben ist, ist die Orientierung des zweiten Werkstückes 91 vorgegeben. Die Befehlserzeugungseinheit 35 erzeugt den Bewegungsbefehl für die Korrektur der Orientierung des Roboters 1 auf Basis der Orientierung des ersten Werkstückes 81. Die Betriebssteuerungseinheit 43 korrigiert die Orientierung des Roboters entsprechend dem Bewegungsbefehl von der Befehlserzeugungseinheit 35.
  • Durch Ausführung der Orientierungskorrektursteuerung kann die Orientierung des zweiten Werkstückes 91 in Bezug auf das erste Werkstück 81 korrigiert werden, auch wenn das erste Werkstück 81 in Bezug auf die gewünschte Orientierung zunächst geneigt ist. Die Orientierungskorrektursteuerung gemäß dem vorliegenden Ausführungsbeispiel kann nach der Annäherungssteuerung ausgeführt werden. Die Orientierungskorrektursteuerung kann auch vor der Positionseinstellungssteuerung ausgeführt werden.
  • Die Orientierungsdetektionssteuerung und die Orientierungskorrektursteuerung können ausgeführt werden auf Basis des mit einer der Kameras 25 und 26 aufgenommenen Bildes. Andererseits kann dann, wenn das erste Werkstück 81 so eingestellt ist, dass es der gewünschten Orientierung entspricht, die Orientierungskorrektursteuerung weggelassen werden. Wenn die Orientierungskorrektursteuerung nicht ausgeführt wird, bevor die Positionseinstellungssteuerung ausgeführt ist, kann auf Basis des Betrages der Orientierungsabweichung gemäß Detektion durch die Orientierungsdetektionssteuerung geprüft werden, ob die Orientierung des zweiten Werkstückes in Bezug auf das erste Werkstück innerhalb eines vorgegebenen brauchbaren Bereiches liegt. Liegt die Orientierung des zweiten Werkstückes in Bezug auf das erste Werkstück nicht in dem vorgegebenen brauchbaren Bereich, kann die arithmetische Prozessoreinheit 31 feststellen, dass die Orientierung fehlerhaft ist und es kann die Robotervorrichtung 5 gestoppt werden. Wird das erste Werkstück 81 so eingestellt, dass es die gewünschte Orientierung hat und wird weiterhin nicht ermittelt, ob die Orientierung des zweiten Werkstückes 91 in Bezug auf das erste Werkstück 81 in dem vorgegebenen annehmbaren Bereich liegt, brauchen die Orientierungsdetektionssteuerung und die Orientierungskorrektursteuerung nicht ausgeführt zu werden.
  • Sodann führt in den Schritten 124 und 125 die Steuerung 7 der Robotervorrichtung 5 die Fehleinstellungskorrektursteuerung aus, welche die Greiffehleinstellung beim Greifen des zweiten Werkstückes 91 korrigiert. In Schritt 124 gewinnt die Befehlserzeugungseinheit 35 den Betrag der Fehleinstellung gemäß Detektion durch die Fehleinstellungsdetektionssteuerung in Schritt 113 und Schritt 114 gemäß 4 aus dem Speicher 42.
  • In Schritt 125 erzeugt die Befehlserzeugungseinheit 35 einen Bewegungsbefehl zum Korrigieren der Position des Roboters 1 derart, dass der Betrag der Greiffehleinstellung kompensiert ist. Die Befehlserzeugungseinheit 35 erzeugt den Bewegungsbefehl, so dass die Hand 2 in einer Richtung bewegt wird, die entgegengesetzt ist zu der Richtung, in welcher das zweite Werkstück 91 in Bezug auf die Hand 2 fehleingestellt ist. Beim in 12 gezeigten Beispiel erzeugt die Befehlserzeugungseinheit 35 einen Bewegungsbefehl, gemäß dem die Hand 2 sich nach oben bewegt, wie durch den Pfeil 102 angedeutet ist. Ein Bewegungsbetrag für den Roboter 1 kann entsprechend dem Betrag der Fehleinstellung berechnet werden. Sodann korrigiert die Betriebssteuerungseinheit 34 die Position des Roboters 1 entsprechend dem Bewegungsbefehl von der Befehlserzeugungseinheit 35.
  • Durch Ausführung der Fehleinstellungskorrektursteuerung kann eine Fehleinstellung korrigiert werden, die auftritt, wenn das zweite Werkstück 91 mit der Hand 2 gegriffen wird. Die Fehleinstellungskorrektursteuerung kann nach der Annäherungssteuerung ausgeführt werden. Die Fehleinstellungskorrektursteuerung kann auch vor der Positionseinstellungssteuerung ausgeführt werden.
  • Beim Ergreifen des zweiten Werkstückes mit der Hand brauchen die Fehleinstellungsdetektionssteuerung und die Fehleinstellungskorrektursteuerung nicht ausgeführt werden, wenn das zweite Werkstück an der vorgegebenen Position von der Hand gegriffen wird. Werden die Fehleinstellungsdetektionssteuerung und die Fehleinstellungskorrektursteuerung nicht ausgeführt, braucht von der Positionseinstellungssteuerung nicht geprüft werden, ob die Position des zweiten Werkstückes in Bezug auf das erste Werkstück in dem vorgegebenen annehmbaren Bereich liegt.
  • Weicht die Position des zweiten Werkstückes in Bezug auf das erste Werkstück von dem vorgegebenen annehmbaren Bereich ab, kann die arithmetische Prozessoreinheit 31 feststellen, dass die Position fehlerhaft ist und es kann der Betrieb der Robotervorrichtung 5 gestoppt werden.
  • Sodann wird in den Schritten 126 bis 128 die Positionseinstellungssteuerung zum Einstellen der Position des zweiten Werkstückes 91 in Bezug auf die Position des ersten Werkstückes 81 ausgeführt. Die Positionseinstellungssteuerung wird ausgeführt nach Annäherung des zweiten Werkstückes 91 an das erste Werkstück 81. Bei der Positionseinstellungssteuerung wird die Position des zweiten Werkstückes 91 in Bezug auf das erste Werkstück 81 eingestellt entsprechend dem mit der ersten Kamera 25 aufgenommenen Bild und dem mit der zweiten Kamera 26 aufgenommenen Bild. Bei der Positionseinstellungssteuerung wird das zweite Werkstück 91 positionsmäßig ausgerichtet in Bezug auf das erste Werkstück 81, und zwar mit höherer Genauigkeit als bei der Annäherungssteuerung.
  • Am Ende der Annäherungssteuerung befindet sich das vorstehende Teil 83 des ersten Werkstückes 81 nahe am vorstehenden Teil 93 des zweiten Werkstückes 91. Weiterhin liegt das vorstehende Teil 92 des zweiten Werkstückes 91 nahe am vorstehenden Teil 82 des ersten Werkstückes 81. Somit kann mit der Kamera 26 ein Bild des vorstehenden Teils 82 und des vorstehenden Teils 92 aufgenommen werden.
  • Bezüglich des mit der Kamera 25 aufzunehmenden Bildes ist die Seitenfläche 83b des vorstehenden Teils 83 als das erste kennzeichnende Teil des ersten Werkstückes 81 definiert. Weiterhin ist die Seitenfläche 93b des vorstehenden Teils 93 definiert als das zweite kennzeichnende Teil des zweiten Werkstückes 91 für die Positionseinstellungssteuerung. Die Seitenfläche 83b und die Seitenfläche 93b liegen im Bildaufnahmebereich 25a der Kamera 25. Bezüglich des mit der Kamera 26 aufzunehmenden Bildes ist die obere Fläche 82b des vorstehenden Teils 82 definiert als ein drittes kennzeichnendes Teil des ersten Werkstückes 81 für die Positionseinstellungssteuerung. Weiterhin ist die obere Fläche 92b des vorstehenden Teils 92 definiert als ein viertes kennzeichnendes Teil des zweiten Werkstückes 91 für die Positionseinstellungssteuerung. Die obere Fläche 82b und die obere Fläche 92b liegen im Bildaufnahmebereich 26a der Kamera 26.
  • Bei der Positionseinstellungssteuerung sind also die kennzeichnenden Teile für beide Werkstücke 81 und 91 gesetzt. Bei der Positionseinstellungssteuerung gemäß dem vorliegenden Ausführungsbeispiel wird die Position des Werkstückes 91 in Bezug auf das Werkstück 81 auf Basis der mehreren kennzeichnenden Teile, wie sie in dem Bild enthalten sind, eingestellt.
  • In Schritt 126 nimmt die erste Kamera 25 ein Bild der Seitenfläche 83b des vorstehenden Teils 83 und der Seitenfläche 93b des vorstehenden Teils 93 auf. Die zweite Kamera 26 nimmt Bilder der oberen Fläche 82b des vorstehenden Teils 82 und der oberen Fläche 92b des vorstehenden Teils 92 auf.
  • Sodann erfolgt in Schritt 127 die Steuerung für die präzise Einstellung der Position des zweiten Werkstückes 91 in Bezug auf das erste Werkstück 81. 13 zeigt ein Flussdiagramm für die Präzisionssteuerung der Einstellung der Position des zweiten Werkstückes in Bezug auf das erste Werkstück. Die in 13 dargestellte Steuerung entspricht der Steuerung in Schritt 127 gemäß 11.
  • 14 zeigt ein Bild, wie es mit der ersten Kamera bei der Positionseinstellungssteuerung aufgenommen wird. Entsprechend den 12 bis 14 detektiert in Schritt 141 die Kenngrößendetektionseinheit 32 das erste kennzeichnende Teil des ersten Werkstückes 81 in dem Bild 62. Dabei detektiert die Kenngrößendetektionseinheit 32 die Seitenfläche 83b des vorstehenden Teils 83 durch das Verfahren der Schablonenanpassung (Vorlagenabgleich).
  • In Schritt 142 detektiert die Kenngrößendetektionseinheit 32 einen ersten Kenngrößenbetrag der ersten Kenngröße. Ein Einstellpunkt P12 wird auf der Seitenfläche 83b des vorstehenden Teils 83 gesetzt. Die Kenngrößendetektionseinheit 32 detektiert den Einstellpunkt P12. Die Kenngrößendetektionseinheit 32 detektiert als den ersten Kenngrößenbetrag Koordinatenwerte (u12m, v12m) des Einstellpunktes P12 im Bildschirm-Koordinatensystem 53.
  • In Schritt 143 detektiert die Kenngrößendetektionseinheit 32 das zweite kennzeichnende Teil des zweiten Werkstückes 91 in dem Bild 92. Dabei detektiert die Kenngrößendetektionseinheit 32 die Seitenfläche 93b des vorstehenden Teils 93 mit dem Verfahren der Schablonenanpassung (Vorlagenabgleich). Ein Einstellpunkt P22 ist auf der Seitenfläche 93b des vorstehenden Teils 93 gesetzt. In Schritt 144 detektiert die Kenngrößendetektionseinheit 32 als zweiten Kenngrößenbetrag Koordinatenwerte (u22m, v22m) des Einstellpunktes P22 im Bildschirm-Koordinatensystem 53.
  • In den Schritten 145 bis 147 berechnet die Befehlserzeugungseinheit 35 eine Bewegungsrichtung und einen Bewegungsbetrag für die Position des Roboters 1 entsprechend dem ersten Kenngrößenbetrag und dem zweiten Kenngrößenbetrag. Die Befehlserzeugungseinheit 35 berechnet die Bewegungsrichtung und den Bewegungsbetrag der Position des Roboters 1 derart, dass der Stift 93a direkt über dem Loch 83a positioniert ist. In Schritt 145 berechnet die Befehlserzeugungseinheit 35 eine Differenz zwischen dem ersten Kenngrößenbetrag und dem zweiten Kenngrößenbetrag als einen relativen Positionsbetrag. Der relative Positionsbetrag in dem Bild 62, wie es mit der Kamera 25 aufgenommen ist, ist die Differenz zwischen den Koordinatenwerten des ersten Kenngrößenbetrages und den Koordinatenwerten des zweiten Kenngrößenbetrages (u12m-u22m, v12m-v22m). Die Befehlserzeugungseinheit 35 berechnet den relativen Positionsbetrag des ersten Kenngrößenbetrages in Bezug auf den zweiten Kenngrößenbetrag.
  • 15 zeigt eine Darstellung des Referenzbildes entsprechend einem mit der ersten Kamera bei der Positionseinstellungssteuerung aufgenommenen Bild. Ein Referenzbild 66 kann im Voraus erzeugt werden. In dem Referenzbild 66 ist der Stift 93a direkt über dem Loch 83a positioniert. Ein relativer Positionsbetrag für den ersten Kenngrößenbetrag in Bezug auf den zweiten Kenngrößenbetrag im Referenzbild 66 wird im Voraus berechnet. Andererseits kann die Befehlserzeugungseinheit 35 den relativen Positionsbetrag des ersten Kenngrößenbetrages in Bezug auf den zweiten Kenngrößenbetrag auch berechnen auf Basis des Referenzbildes 66. Die Differenz zwischen den Koordinatenwerten des ersten Kenngrößenbetrages und den Koordinatenwerten des zweiten Kenngrößenbetrages kann dargestellt werden mit (u12b-u22b, v12b-v22b) unter Verwendung der Koordinatenwerte des Einstellpunktes P12 und des Einstellpunktes P22 in dem Bildschirm-Koordinatensystem 53.
  • Sodann berechnet in Schritt 146 die Befehlserzeugungseinheit 35 die Differenz bezüglich der relativen Positionsbeträge, das heißt, die Differenz zwischen dem relativen Positionsbetrag in den mit der Kamera 25 aufgenommenen Bildern 62 und dem relativen Positionsbetrag in den Referenzbildern 66. Beim vorliegenden Ausführungsbeispiel berechnet die Befehlserzeugungseinheit 35 die Differenz bezüglich des relativen Positionsbetrages, die gewonnen wird durch Subtraktion des relativen Positionsbetrages im Referenzbild 66 von dem relativen Positionsbetrag in dem mit der Kamera 25 aufgenommenen Bild 62. Die Differenz bezüglich des relativen Positionsbetrages kann ausgedrückt werden mit folgenden Werten [(u12m-u22m) - (u12b-u22b), (v12m-v22m) - (v12b-v22b)], jeweils in Bezug auf die u-Achse bzw. die v-Achse. In dieser Weise wird beim vorliegenden Ausführungsbeispiel die Differenz in den relativen Positionsbeträgen bezüglich der u-Achse und die Differenz in den relativen Positionsbeträgen bezüglich der v-Achse berechnet.
  • Sodann stellt in Schritt 147 die Befehlserzeugungseinheit 35 ein Antriebsverfahren ein für den Roboter 1 auf Basis der Differenz in den relativen Positionsbeträgen. Die Befehlserzeugungseinheit 35 stellt die Bewegungsrichtung und den Bewegungsbetrag der Position des Roboters 1 im Referenzkoordinatensystem 51 ein. Beim vorliegenden Ausführungsbeispiel ist eine Bewegungsrichtung für die Position des Roboters in Bezug auf die Differenz im relativen Positionsbetrag vorgegeben. Eine Bewegungsrichtung der Position des Roboters 1 in Bezug auf einen positiven Wert oder einen negativen Wert gemäß der u-Achse in dem Bildschirm-Koordinatensystem 53 ist definiert im Referenzkoordinatensystem 51.
  • Ein Verfahren zum Berechnen eines Bewegungsbetrages der Position des Roboters 1 in Bezug auf die Differenz im relativen Positionsbetrag ist vorgegeben. Beispielsweise wird als Bewegungsbetrag der Position des Roboters 1 in Richtung entsprechend der u-Achse ein Wert gewonnen durch Multiplikation des Wertes ((u12m-u22m) - (u12b-u22b)) bezüglich der u-Achse mit einem vorgegebenen Koeffizienten. Als Bewegungsbetrag für die Position des Roboters 1 in Richtung entsprechend der v-Achse kann ein Wert angesetzt werden, der gewonnen wird durch Multiplikation des Wertes ((v12m-v22m) - (v12b-v22b)) bezüglich der v-Achse mit einem vorgegebenen Koeffizienten. Auf diese Weise kann der Bewegungsbetrag für die Position des Roboters 1 in Richtung jeder Achse des Bildschirm-Koordinatensystems 53 berechnet werden.
  • Beim vorliegenden Ausführungsbeispiel werden ein Bewegungsbetrag in Richtung der X-Achse, ein Bewegungsbetrag in Richtung der Y-Achse und ein Bewegungsbetrag in Richtung der Z-Achse im Referenzkoordinatensystem 51 berechnet auf Basis der Differenz in den relativen Positionsbeträgen bezüglich der u-Achse. Ein Bewegungsbetrag in Richtung der X-Achse, ein Bewegungsbetrag in Richtung der Y-Achse und ein Bewegungsbetrag in Richtung der Z-Achse im Referenzkoordinatensystem 51 werden berechnet auf Basis der Differenzen in den relativen Positionsbeträgen bezüglich der v-Achse. Somit können im Referenzkoordinatensystem 51 zwei Bewegungsbeträge (der Bewegungsbetrag bezüglich der u-Achse und der Bewegungsbetrag bezüglich der v-Achse) für eine Achse berechnet werden. In diesem Falle braucht die Position des Roboters 1 nicht bewegt zu werden in der Richtung entsprechend der Achse, bezüglich der zwei Bewegungsbeträge berechnet sind. Andererseits kann auch ein endgültiger Bewegungsbetrag berechnet werden durch Multiplikation der jeweiligen Bewegungsbeträge mit den Koeffizienten. Ein jeglicher der Bewegungsbeträge kann eingesetzt werden. Auf diese Weise werden auf Basis des mit der ersten Kamera 25 aufgenommenen Bildes die Bewegungsrichtung und der Bewegungsbetrag für die Position des Roboters berechnet.
  • Sodann kann in den Schritten 148 bis 154 das mit der zweiten Kamera 26 aufgenommene Bild in ähnlicher Weise verarbeitet werden wie das mit der ersten Kamera 25 aufgenommene Bild.
  • 16 zeigt ein Bild, welches mit der zweiten Kamera bei der Positionseinstellungssteuerung aufgenommen ist. Ein Einstellpunkt P13 ist auf der oberen Fläche 82b des vorstehenden Teils 82 als kennzeichnendes Teil für das erste Werkstück 81 gesetzt. Ein Einstellpunkt P23 ist auf der oberen Fläche 92b des vorstehenden Teils 92 als viertes kennzeichnendes Teil für das zweite Werkstück 91 gesetzt.
  • In Schritt 148 detektiert die Kenngrößendetektionseinheit 32 die obere Fläche 82b des vorstehenden Teils 82, also das dritte kennzeichnende Teil des ersten Werkstückes 81. In Schritt 149 detektiert die Kenngrößendetektionseinheit 32 Koordinatenwerte des Einstellpunktes P13 im Bildschirm-Koordinatensystem 53 als einen dritten Kenngrößenbetrag bezüglich des dritten kennzeichnenden Teils. In Schritt 150 detektiert die Kenngrößendetektionseinheit 32 die obere Fläche 92b des vorstehenden Teils 92, welche das vierte kennzeichnende Teil des zweiten Werkstückes 91 ist. In Schritt 151 detektiert die Kenngrößendetektionseinheit 32 Koordinatenwerte des Einstellpunktes P23 im Bildschirm-Koordinatensystem 53 als einen vierten Kenngrößenbetrag bezüglich des vierten kennzeichnenden Teils.
  • 17 zeigt ein Referenzbild entsprechend einem mit der zweiten Kamera bei der Positionseinstellungssteuerung aufgenommenen Bild. In einem Referenzbild 67 ist der Stift 92a direkt über dem Loch 82a positioniert. In den Schritten 152 bis 154 berechnet die Befehlserzeugungseinheit 35 eine Bewegungsrichtung und einen Bewegungsbetrag der Position des Roboters 1 auf Basis des dritten Kenngrößenbetrages und des vierten Kenngrößenbetrages.
  • In Schritt 152 berechnet die Befehlserzeugungseinheit 35 einen relativen Positionsbetrag des dritten Kenngrößenbetrages in Bezug auf den vierten Kenngrößenbetrag. In Schritt 153 berechnet die Befehlserzeugungseinheit 35 eine Differenz im relativen Positionsbetrag bezüglich des Referenzbildes 67 und des mit der zweiten Kamera 26 aufgenommenen Bildes. In Schritt 154 werden die Bewegungsrichtung und der Bewegungsbetrag der Position des Roboters berechnet auf Basis der Differenz in den relativen Positionsbeträgen.
  • Sodann stellt in Schritt 155 die Befehlserzeugungseinheit 35 die endgültige Bewegungsrichtung und den Bewegungsbetrag der Position des Roboters 1 ein, und zwar auf Basis der Bewegungsrichtung und des Bewegungsbetrages der Position des Roboters 1 entsprechend dem Bild 62 der ersten Kamera 25 und der Bewegungsrichtung und dem Bewegungsbetrag der Position des Roboters 1 entsprechend dem Bild 63 der zweiten Kamera 26. Die Bewegungsrichtung und der Bewegungsbetrag der Position des Roboters 1 können berechnet werden unter Verwendung des Referenzkoordinatensystems 51.
  • Mit dem mit der ersten Kamera 25 aufgenommenen Bild 62 können eine Position in der Richtung der Y-Achse und in Richtung der Z-Achse im Referenzkoordinatensystem 51 eingestellt werden. Mit dem seitens der zweiten Kamera 26 aufgenommenen Bild 63 können eine Position in Richtung der X-Achse und in Richtung der Y-Achse im Referenzkoordinatensystem 51 eingestellt werden. Dementsprechend wird bezüglich der Bewegung in Richtung der Z-Achse der Position des Roboters 1 der Bewegungsbetrag, wie er mit dem Bild 62 der ersten Kamera 25 gewonnen ist, verwendet. Für die Bewegung der Position des Roboters 1 in Richtung der X-Achse kann der Bewegungsbetrag, wie er aus dem Bild 63, welches mit der zweiten Kamera 26 aufgenommen wurde, verwendet werden. Für die Bewegung der Position des Roboters 1 in Richtung der Y-Achse können der Bewegungsbetrag entsprechend dem Bild der ersten Kamera 25 und der Bewegungsbetrag entsprechend dem Bild der zweiten Kamera 26 jeweils mit Koeffizienten multipliziert und aufsummiert verwendet werden. Beispielsweise können der Bewegungsbetrag, wie er aus dem Bild der Kamera 25 gewonnen wird, und der Bewegungsbetrag, wie er aus dem Bild der Kamera 26 gewonnen wird, einer Mittelwertbildung unterzogen werden. Auf diese Weise kann der endgültige Antrieb für den Roboter eingestellt werden.
  • Sodann kann in Schritt 156 die Befehlserzeugungseinheit 35 einen zweiten Bewegungsbefehl erzeugen entsprechend der endgültigen Bewegungsrichtung und des Bewegungsbetrages des Roboters. Die Betriebssteuerungseinheit 53 ändert Position und Orientierung des Roboters auf Basis des zweiten Bewegungsbefehls. In der vorstehend beschriebenen Positionseinstellungssteuerung erfolgt die Positionseinstellung auf Basis des mit der ersten Kamera aufgenommenen Bildes und des mit der zweiten Kamera aufgenommenen Bildes, jedoch ist die Ausführung nicht hierauf eingeschränkt. Die Positionseinstellungssteuerung kann auch präzise erfolgen auf Basis eines mit einer Kamera aufgenommenen Bildes ohne Verwendung von Bildern mehrerer Kameras. Beispielsweise kann der Roboter angetrieben werden auf Basis der Differenz bezüglich des relativen Positionsbetrages, die berechnet wird aus einem Bild der ersten Kamera.
  • Bei der oben beschriebenen Positionseinstellungssteuerung wird der Bewegungsbetrag des Roboters berechnet auf Basis der Differenz bezüglich des relativen Positionsbetrages zwischen dem Referenzbild und dem jeweils mit einer der Kameras aufgenommenen Bild, jedoch ist die Ausführung nicht hierauf eingeschränkt. Eine jede Steuerung kann eingesetzt werden auf Basis des Bildes der ersten Kamera und des Bildes der zweiten Kamera. Beispielsweise kann durch ein Verfahren, bei dem eine Kalibrierung im Voraus erfolgt, eine dreidimensionale Position eines kennzeichnenden Teils detektiert werden, welches in einem Bild enthalten ist, welches von der jeweiligen Kamera aufgenommen ist. Dann können die Bewegungsrichtung und der Bewegungsbetrag des Roboters derart berechnet werden, dass das kennzeichnende Teil des zweiten Werkstückes an der gewünschten Position in Bezug auf das kennzeichnende Teil des ersten Werkstückes positioniert wird.
  • Sodann wird entsprechend 11 in Schritt 128 geprüft, ob die Position des zweiten Werkstückes 91 in Bezug auf die Position des ersten Werkstückes 81 in einem vorgegebenen Bereich liegt oder nicht. Die Bestimmung gemäß dieser Steuerung kann durch eine jede Steuervorrichtung ausgeführt werden. Beispielsweise nimmt die Kamera 25 ein Bild des ersten kennzeichnenden Teils und des zweiten kennzeichnenden Teils auf. Die Kenngrößendetektionseinheit 32 detektiert den ersten Kenngrößenbetrag und den zweiten Kenngrößenbetrag. Sodann berechnet die arithmetische Prozessoreinheit 31 einen relativen Positionsbetrag, also die Differenz zwischen dem ersten Kenngrößenbetrag und dem zweiten Kenngrößenbetrag. Der relative Positionsbetrag kann für jede Koordinatenachse des Bildschirm-Koordinatensystems 53 berechnet werden. Die arithmetische Prozessoreinheit 31 ermittelt, ob jeder relative Positionsbetrag innerhalb eines vorgegebenen Bestimmungswertbereiches liegt oder nicht. In ähnlicher Weise nimmt die Kamera 26 Bilder des dritten kennzeichnenden Teils und des vierten kennzeichnenden Teils auf und der dritte Kenngrößenbetrag und der vierte Kenngrößenbetrag werden bestimmt. Sodann prüft die arithmetische Prozessoreinheit 31, ob der relative Positionsbetrag, also die Differenz zwischen dem dritten Kenngrößenbetrag und dem vierten Kenngrößenbetrag, innerhalb eines vorgegebenen Bestimmungsbereiches liegt.
  • Sind der relative Positionsbetrag im Bild der Kamera 25 und der relative Positionsbetrag im Bild der Kamera 26 innerhalb des Bestimmungsbereiches, ist es möglich, zu bestimmen, dass die Position des zweiten Werkstückes 91 in Bezug auf die Position des ersten Werkstückes 81 innerhalb des Bestimmungsbereiches liegt.
  • Wenn die Position des zweiten Werkstückes in Bezug auf die Position des ersten Werkstückes vom Bestimmungsbereich abweicht (im Schritt 128), geht die Steuerung zurück zu Schritt 126. Durch Wiederholung der Steuerung von Schritt 126 zu Schritt 128 kann eine präzise Positionseinstellung des zweiten Werkstückes 91 in Bezug auf das erste Werkstück 81 durchgeführt werden. Auch kann bei der Positionseinstellungs-steuerung gemäß dem vorliegenden Ausführungsbeispiel die Differenz im relativen Positionsbetrag auf Basis der Bilder durch die jeweiligen Kameras berechnet werden. Die arithmetische Prozessoreinheit kann prüfen, ob die Differenz im relativen Positionsbetrag innerhalb des vorgegebenen Bestimmungswertbereiches liegt, wenn die Steuerung für die präzise Einstellung der Position in Schritt 127 ausgeführt wird (siehe 13). Der Roboter kann angetrieben werden, wenn die Differenz im relativen Positionsbetrag von dem vorgegebenen Bestimmungswertbereich abweicht.
  • 18 zeigt eine vergrößerte perspektivische Ansicht des ersten Werkstückes, des zweiten Werkstückes und der Hand am Ende der Positionseinstellungssteuerung. Durch die Ausführung der Positionseinstellungssteuerung kann der Stift 92a direkt über dem Loch 82a positioniert werden. Auch kann der Stift 93a direkt über dem Loch 83a positioniert werden.
  • Entsprechend 11, Schritt 128, wird dann, wenn die Position des zweiten Werkstückes 91 in Bezug auf die Position des ersten Werkstückes 81 in dem Bestimmungsbereich liegt, die Steuerung zu Schritt 129 umgeschaltet. In Schritt 129 wird die Anbringungssteuerung zum Anbringen des zweiten Werkstückes 91 am ersten Werkstück 81 durchgeführt.
  • Entsprechend 18 wird bei der Anbringungssteuerung eine Bewegung des zweiten Werkstückes 91 nach unten in Bezug auf das erste Werkstück 81 ausgeführt, wie durch den Pfeil 105 angezeigt ist. Bei diesem Beispiel sendet die Befehlserzeugungseinheit 35 einen Bewegungsbefehl zum Bewegen der Position des Roboters 1 in vertikaler Richtung nach unten (in eine Richtung, in welcher der Stift 92 und der Stift 83 auf Linie sind) an die Betriebssteuerungseinheit 43. Die Betriebssteuerungseinheit 43 treibt den Roboter 1 an, um das zweite Werkstück 91 nach unten zu bewegen.
  • Bei der Anbringungssteuerung kann die Kraft oder das Drehmoment, welches am Roboter oder an der Hand anliegt, detektiert werden und die Stifte 92a und 93a können eingeschoben werden. Beispielsweise kann ein Kraftsensor zwischen dem Flansch 16 und der Hand 2 des Roboters 1 angeordnet werden. Die Kraft und das Moment, welches an der Hand anliegt, können mit dem Kraftsensor detektiert werden. Die Steuerung zum Einstellen einer Position und Orientierung des Roboters 1 kann so ausgeführt werden, dass die Kraft und das Moment, welche an der Hand anliegen, reduziert sind.
  • 19 zeigt in vergrößertem Maßstab eine perspektivische Ansicht des ersten Werkstückes, des zweiten Werkstückes und der Hand am Ende der Anbringungssteuerung. Entsprechend den 18 und 19 sind die Stifte 92a und 93a des zweiten Werkstückes 91 in die Löcher 82a bzw. 83a des ersten Werkstückes 81 eingeführt. Auf diese Weise kann die Steuerung für die Anbringung des zweiten Werkstückes 91 am ersten Werkstück 81 ausgeführt werden.
  • Bei der Annäherungssteuerung gemäß dem vorliegenden Ausführungsbeispiel wird die Position des zweiten Gegenstandes grob eingestellt auf Basis eines mit dem ersten Vision-Sensor aufgenommenen Bildes. Bei der Positionseinstellungssteuerung wird die Position des zweiten Gegenstandes präzise eingestellt auf Basis eines mit dem ersten Vision-Sensor aufgenommenen Bildes und eines mit dem zweiten Vision-Sensor aufgenommenen Bildes. Dementsprechend kann die Position des zweiten Gegenstandes in sehr kurzer Zeit eingestellt werden. Auch kann die Position des zweiten Gegenstandes präzise eingestellt werden.
  • Der erste Vision-Sensor und der zweite Vision-Sensor gemäß dem vorliegenden Ausführungsbeispiel sind zweidimensionale Kameras. Aus diesem Grund kann die Position eines Werkstückes mit einer einfachen Konfiguration eingestellt werden im Vergleich zu dem Einsatz einer dreidimensionalen Kamera. Eine zweidimensionale Kamera kann nicht in der Lage sein, den Fokus automatisch einzustellen. In diesem Fall ist es bei der Positionseinstellungssteuerung vorzuziehen, die zweidimensionalen Kameras fokussierend einzustellen.
  • Beim vorliegenden Ausführungsbeispiel trägt der Förderer 75 das erste Werkstück 81. Die Position des zweiten Werkstückes 91 in Bezug auf das erste Werkstück 81 kann eingestellt werden, während das zweite Werkstück 91 dem ersten Werkstück 81 folgt durch wiederholte Ausführung der Annäherungssteuerung oder der Positionseinstellungssteuerung über eine Zeitspanne, in welcher das erste Werkstück 81 durch den Förderer 75 gefördert wird.
  • Weiterhin werden beim vorliegenden Ausführungsbeispiel eine Bewegungsrichtung und eine Bewegungsgeschwindigkeit des ersten Werkstückes 81 durch den Förderer 75 vorgegeben. Die Robotersteuerung 4 kann eine Vorwärtskopplung (feedforward) ausführen zum Ändern der Position des Roboters 1 gemäß der Bewegung des Werkstückes 81 durch den Förderer 75. Beim vorliegenden Ausführungsbeispiel bewegt sich das Werkstück 81 mit einer festen Bewegungsgeschwindigkeit. Die Bewegungsrichtung und die Bewegungsgeschwindigkeit des ersten Werkstückes durch den Förderer müssen nicht vorgegeben sein. In diesem Fall kann die Befehlserzeugungseinheit die zukünftige Bewegungsrichtung und Bewegungsgeschwindigkeit aus der zuletzt gegebenen Bewegungsrichtung und Bewegungsgeschwindigkeit des ersten Werkstückes abschätzen und kann weiterhin die zukünftige Bewegungsrichtung und Bewegungsgeschwindigkeit abschätzen auf Basis eines Musters bezüglich der Änderung in der Bewegungsrichtung und der Bewegungsgeschwindigkeit, welches im Voraus beispielsweise erlernt worden ist.
  • Die Befehlserzeugungseinheit 35 berechnet eine Bewegungsrichtung und einen Bewegungsbetrag der Position des Roboters 1 entsprechend der Bewegungsrichtung und der Bewegungsgeschwindigkeit des Werkstückes 81 durch den Förderer 75. Die Befehlserzeugungseinheit 35 berechnet die Bewegungsrichtung und die Bewegungsgeschwindigkeit der Position des Roboters 1 derart, dass die Position des Roboters 1 der Position des ersten Werkstückes 81 folgt, welches durch den Förderer 75 bewegt wird. Beispielsweise berechnet die Befehlserzeugungseinheit 35 die Bewegungsrichtung derart, dass sich der Werkzeugspitzenpunkt des Roboters 1 in der Bewegungsrichtung des Werkstückes 81 bewegt. Die Befehlserzeugungseinheit 35 berechnet den Bewegungsbetrag derart, dass der Werkzeugspitzenpunkt des Roboters 1 sich in der gleichen Richtung bewegt wie das Werkstück 81 und mit der gleichen Bewegungsgeschwindigkeit wie das Werkstück 81. Zusätzlich zur Steuerung von Bewegungsrichtung und Bewegungsbetrag bezüglich der Position des Roboters 1 entsprechend der Förderung durch den Förderer 75 kann die Befehlserzeugungseinheit 35 die Steuerung zum Ändern der Position und Orientierung des Roboters 1, wie oben beschrieben, ausführen. Beispielsweise kann die Vorwärtskopplung ausgeführt werden bei der Annäherungssteuerung, bei der Orientierungsdetektionssteuerung, der Orientierungskorrektursteuerung, der Fehleinstellungskorrektursteuerung, der Positionseinstellungssteuerung und der Anbringungssteuerung, wie sie oben beschrieben sind.
  • Durch Ausführung dieser Steuerung können Änderungen der Position und der Orientierung des Roboters 1 für die Bewegung des ersten Werkstückes 81 mit dem Förderer 75 ausgeführt werden durch die Vorwärtskopplung. Bei der Anbringungssteuerung oder dergleichen reicht es aus, die relative Positionsfehleinstellung und die Orientierungsabweichung des zweiten Werkstückes 91 in Bezug auf das erste Werkstück 81 zu korrigieren, wobei es möglich ist, die Position und die Orientierung des zweiten Werkstückes 91 in Bezug auf das erste Werkstück 81 genau zu korrigieren.
  • Beim oben beschriebenen Ausführungsbeispiel wird der erste Gegenstand, den die Positionseinstellung betrifft, durch den Förderer transportiert. Mit anderen Worten: die Positionseinstellung des zweiten Gegenstandes wird so ausgeführt, dass er dem ersten Gegenstand folgt, welcher durch den Förderer bewegt wird, jedoch ist die Ausführung nicht auf dieses Beispiel beschränkt. Der erste Gegenstand kann stationär sein. Wenn beispielsweise die Position des zweiten Werkstückes in Bezug auf das erste Werkstück, welches auf einer Werkbank fixiert ist, eingestellt wird, kann die Steuerung gemäß dem vorliegenden Ausführungsbeispiel ausgeführt werden.
  • Ist der erste Gegenstand stationär, muss die oben beschriebene Vorwärtskopplungssteuerung nicht ausgeführt werden. Bezüglich der Zeitfolge zum Beenden der Annäherungssteuerung kann ein Bestimmungswert vorgegeben werden bezüglich des Bewegungsbetrages des Roboters bei der Annäherung des zweiten Gegenstandes an den ersten Gegenstand. Die Annäherungssteuerung kann beendet werden, wenn der Bewegungsbetrag des Roboters den Bestimmungswert überschreitet. Andererseits kann auch ermittelt werden, ob der zweite Gegenstand den ersten Gegenstand entsprechend einer vorgegebenen Distanz erreicht hat und die Annäherungssteuerung kann beendet werden, wenn der zweite Gegenstand sich dem ersten Gegenstand auf die vorgegebene Distanz angenähert hat.
  • Beim oben beschriebenen Ausführungsbeispiel werden der erste Vision-Sensor und die Kamera 26 als der zweite Vision-Sensor durch die Hand 2 abgestützt, jedoch ist die Ausführung nicht auf dieses Beispiel beschränkt. Der erste Vision-Sensor kann durch den Roboter abgestützt sein. Der zweite Vision-Sensor kann auch durch den Roboter abgestützt sein. Beispielsweise können der erste Vision-Sensor und der zweite Vision-Sensor durch den Flansch des Roboters abgestützt sein und so gestaltet sein, dass die Positionen und Orientierungen zusammen mit der Hand geändert werden können.
  • Der Hilfssensor gemäß dem vorliegenden Ausführungsbeispiel, welcher die Greiffehleinstellung detektiert, ist eine zweidimensionale Kamera, jedoch ist die Ausführung nicht auf dieses Beispiel beschränkt. Der Betrag der Greiffehleinstellung des zweiten Werkstückes 91 kann mit jeglichem geeigneten Verfahren detektiert werden. Beispielsweise kann der Hilfssensor eine dreidimensionale Kamera sein. Durch Einsatz der dreidimensionalen Kamera können die Position der Hand und die Position des zweiten Werkstückes detektiert werden. Weiterhin kann der Betrag der Greiffehleinstellung bezüglich des zweiten Werkstückes detektiert werden auf Basis der Position der Hand und der Position des zweiten Werkstückes.
  • Das oben beschriebene Ausführungsbeispiel beinhaltet eine Robotervorrichtung zum Zusammenbau eines Produktes, jedoch ist die Ausführung nicht auf dieses Beispiel beschränkt. Die Steuerung gemäß dem vorliegenden Ausführungsbeispiel kann eingesetzt werden bei jeglicher Robotervorrichtung, welche einen Gegenstand fördert. Der erste Gegenstand gemäß dem vorliegenden Ausführungsbeispiel ist ein Werkstück, jedoch ist die Ausführung nicht auf dieses Beispiel beschränkt. Als erster Gegenstand kommt jeglicher Gegenstand in Betracht, mit dem die Robotervorrichtung eine Aufgabe ausführt. Beispielsweise kann die Robotervorrichtung die Aufgabe ausführen zum Unterbringen eines Werkstückes, welches mit der Hand ergriffen ist, in einer vorgegebenen Position in einem Gehäuse. In diesem Fall entspricht der erste Gegenstand dem Gehäuse, welches das Werkstück aufnimmt. Der zweite Gegenstand gemäß dem vorliegenden Ausführungsbeispiel ist ein Werkstück, jedoch ist die Ausführung nicht auf dieses Beispiel beschränkt. Als zweiter Gegenstand kommt jeder Gegenstand in Betracht. Beispielsweise kann es sich bei dem zweiten Gegenstand um eine Einrichtung handeln, welche eine Aufgabe bezüglich des ersten Gegenstandes ausführt, oder ähnliches.
  • Das oben beschriebene Ausführungsbeispiel kann dem Einsatz entsprechend kombiniert werden. Auch kann bei den oben beschriebenen Steuerungen die Reihenfolge der Schritte passend geändert werden, solange die Funktion und die Wirkung nicht geändert wird.
  • Gemäß einer Ausführung der vorliegenden Beschreibung ist es möglich, eine Steuerung für eine Robotervorrichtung bereitzustellen, die eine Positionseinstellung genau ausführt, nachdem der Roboter einen Gegenstand gefördert hat.
  • In den genannten Figuren sind gleiche oder einander entsprechende Komponenten mit den gleichen Bezugszeichen versehen. Das oben beschriebene Ausführungsbeispiel ist nur beispielhaft und grenzt die Erfindung nicht ab. Auch sind Ausführungsbeispiele mit Abwandlungen des obigen Ausführungsbeispiels in den Ansprüchen enthalten.
  • 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 2018083284 [0003]
    • JP 2015 [0003]
    • JP 214022 [0003]
    • JP 2013180380 [0003]
    • JP 2017170599 [0005]
    • JP 2011131300 [0006]

Claims (6)

  1. Steuerung (7) einer Robotervorrichtung (5), die eingerichtet ist zum Einstellen einer Relativposition eines zweiten Gegenstandes (91) in Bezug auf einen ersten Gegenstand (81) durch Bewegen des zweiten Gegenstandes mit einem Roboter (1), wobei die Steuerung aufweist: einen ersten Vision-Sensor (25), der eingerichtet ist zum Aufnehmen eines Bildes des ersten Gegenstandes; einen zweiten Vision-Sensor (26), der eingerichtet ist zum Aufnehmen eines Bildes des ersten Gegenstandes und des zweiten Gegenstandes aus einer Richtung, die verschieden ist von der Richtung des ersten Vision-Sensors; eine arithmetische Prozessoreinheit (31), die eingerichtet ist zum Erzeugen eines Bewegungsbefehls für den Roboter; und eine Betriebssteuerungseinheit (43), die eingerichtet ist zum Betreiben des Roboters auf Basis des Bewegungsbefehls; wobei die Steuerung so eingerichtet ist, dass eine Annäherungssteuerung ausgeführt wird, bei der sich der zweite, vom ersten Gegenstand entfernte Gegenstand dem ersten Gegenstand annähert, und eine Positionseinstellungssteuerung ausgeführt wird, zum Einstellen der Position des zweiten Gegenstandes in Bezug auf die Position des ersten Gegenstandes nach der Annäherung des zweiten Gegenstandes an den ersten Gegenstand, die Annäherungssteuerung eine Steuerung beinhaltet, bei der die arithmetische Prozessoreinheit eine Bewegungsrichtung und einen Bewegungsbetrag für die Position des Roboters auf Basis eines mit dem ersten Vision-Sensor aufgenommenen Bildes berechnet und einen ersten Bewegungsbefehl erzeugt, welcher ermöglicht, dass der zweite Gegenstand sich dem ersten Gegenstand nähert, und eine Steuerung, bei der die Betriebssteuerungseinheit die Position des Roboters auf Basis des ersten Bewegungsbefehls ändert, und die Positionseinstellungssteuerung eine Steuerung beinhaltet, bei der die arithmetische Prozessoreinheit eine Bewegungsrichtung und einen Bewegungsbetrag für die Position des Roboters berechnet auf Basis eines mit dem ersten Vision-Sensor aufgenommenen Bildes und eines mit dem zweiten Vision-Sensor aufgenommenen Bildes und einen zweiten Bewegungsbefehl erzeugt, der ermöglicht, dass die Position des ersten Gegenstandes in Bezug auf den zweiten Gegenstand eingestellt wird, und eine Steuerung, bei der die Betriebssteuerungseinheit die Position des Roboters auf Basis des zweiten Bewegungsbefehls ändert.
  2. Steuerung gemäß Anspruch 1, weiterhin einen Hilfssensor (27) aufweisend, der eingerichtet ist zum Aufnehmen eines Bildes des zweiten Gegenstandes, wobei der zweite Gegenstand mit einem Werkzeug (2) zu ergreifen ist, welches an dem Roboter angebracht ist, die Steuerung eingerichtet ist, vor der Annäherungssteuerung eine Greifsteuerung auszuführen zum Steuern des Roboters und des Werkzeuges und zum Greifen des zweiten Gegenstandes, und eine Fehleinstellungsdetektionssteuerung auszuführen zum Detektieren eines Betrages einer Positionsfehleinstellung beim Greifen des zweiten Gegenstandes in Bezug auf das Werkzeug auf Basis eines mit dem Hilfssensor aufgenommenen Bildes, und wobei auf Basis des Betrages der Positionsfehleinstellung beim Greifen gemäß der Detektion bei der Fehleinstellungsdetektionssteuerung vor der Positionseinstellungssteuerung eine Fehleinstellungskorrektursteuerung ausgeführt wird zum Korrigieren der Position des Roboters derart, dass der Betrag der Positionsfehleinstellung beim Greifen kompensiert wird.
  3. Steuerung gemäß einem der Ansprüche 1 oder 2, wobei die Steuerung eine Orientierungsdetektionssteuerung ausführt zum Detektieren eines Betrages der Orientierungsabweichung des ersten Gegenstandes auf Basis eines Bildes, welches mit dem ersten Vision-Sensor und/oder dem zweiten Vision-Sensor aufgenommen ist.
  4. Steuerung gemäß Anspruch 3, wobei die Steuerung eingerichtet ist für eine Orientierungskorrektursteuerung zum Korrigieren einer Orientierung des Roboters derart, dass eine Orientierung des zweiten Gegenstandes in Bezug auf den ersten Gegenstand einer vorgegebenen Orientierung entspricht auf Basis des Betrages der Orientierungsabweichung, die durch die Orientierungsdetektionssteuerung detektiert ist, und die Orientierungskorrektursteuerung ausgeführt wird in einer Zeitspanne im Anschluss an die Annäherungssteuerung bis zu der Positionseinstellungssteuerung.
  5. Steuerung gemäß einem der Ansprüche 1 bis 4, wobei die Robotervorrichtung eine Transporteinrichtung (75) aufweist, die eingerichtet ist zum Fördern des ersten Gegenstandes, und wobei die Steuerung die Annäherungssteuerung oder die Positionseinstellungssteuerung wiederholt ausführt über eine Zeitspanne, in der die Transporteinrichtung den ersten Gegenstand fördert.
  6. Steuerung gemäß Anspruch 5, wobei die arithmetische Prozessoreinheit eine Bewegungsrichtung und einen Bewegungsbetrag für die Position des Roboters berechnet, wenn die Position des Roboters der Position des ersten Gegenstandes folgt, der durch die Transporteinrichtung entsprechend einer Bewegungsrichtung und einer Bewegungsgeschwindigkeit des ersten Gegenstandes bewegt wird, und die Position und Orientierung des Roboters ändert entsprechend der Bewegungsrichtung und dem Bewegungsbetrag des Roboters, wenn die Position des Roboters der Position des ersten Gegenstandes folgt bei der Ausführung der Annäherungssteuerung oder der Positionseinstellungssteuerung.
DE102020124356.1A 2019-09-25 2020-09-18 Steuerung einer Robotervorrichtung zum Einstellen der Position eines vom Roboter gestützten Gegenstandes Pending DE102020124356A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019174341A JP7306937B2 (ja) 2019-09-25 2019-09-25 ロボットに支持された部材の位置を調整するロボット装置の制御装置
JP2019-174341 2019-09-25

Publications (1)

Publication Number Publication Date
DE102020124356A1 true DE102020124356A1 (de) 2021-03-25

Family

ID=74846054

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020124356.1A Pending DE102020124356A1 (de) 2019-09-25 2020-09-18 Steuerung einer Robotervorrichtung zum Einstellen der Position eines vom Roboter gestützten Gegenstandes

Country Status (4)

Country Link
US (1) US11565422B2 (de)
JP (2) JP7306937B2 (de)
CN (1) CN112549052A (de)
DE (1) DE102020124356A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200368918A1 (en) * 2017-08-25 2020-11-26 Fanuc Corporation Robot system
DE102021130535B3 (de) 2021-11-22 2023-05-17 Helmut Gutzmann System und Verfahren zur Positionierung einer bewegbaren Manipulatoreinheit

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210138653A1 (en) * 2019-11-12 2021-05-13 Bright Machines, Inc. Module Insertion System For Robotic Assembly
JP2022181522A (ja) * 2021-05-26 2022-12-08 サーパス工業株式会社 液体供給装置および液体供給方法
JP2023020204A (ja) * 2021-07-30 2023-02-09 サーパス工業株式会社 液体供給装置および液体供給装置の制御方法
WO2023170680A1 (en) 2022-03-08 2023-09-14 Equashield Medical Ltd Fluid transfer station in a robotic pharmaceutical preparation system

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04146091A (ja) * 1990-10-08 1992-05-20 Nec Corp マニピュレータシステム
DK174621B1 (da) 1998-11-20 2003-07-28 Coloplast As Urinkateterindretning med integreret kateterapplikator
JP5528095B2 (ja) 2009-12-22 2014-06-25 キヤノン株式会社 ロボットシステム、その制御装置及び方法
JP5744587B2 (ja) * 2011-03-24 2015-07-08 キヤノン株式会社 ロボット制御装置、ロボット制御方法、プログラム及び記録媒体
JP5915214B2 (ja) * 2012-02-01 2016-05-11 セイコーエプソン株式会社 ロボット装置、組立て方法、及び組立てプログラム
US20150309762A1 (en) * 2012-02-09 2015-10-29 Stwrap, Llc Content rendering device
JP5904635B2 (ja) 2012-03-02 2016-04-13 セイコーエプソン株式会社 制御装置、制御方法及びロボット装置
EP2963513B1 (de) * 2014-07-01 2022-08-24 Seiko Epson Corporation Lehrvorrichtung und robotersystem
JP6630050B2 (ja) * 2015-03-13 2020-01-15 川崎重工業株式会社 ロボット、ロボットの制御方法、ワークの取付方法及びワークの搬送方法
JP2017035754A (ja) * 2015-08-10 2017-02-16 ファナック株式会社 視覚センサおよび複数のロボットを備えるロボットシステム
JP2015214022A (ja) 2015-09-02 2015-12-03 セイコーエプソン株式会社 ロボット
JP6430986B2 (ja) 2016-03-25 2018-11-28 ファナック株式会社 ロボットを用いた位置決め装置
DE102016212694A1 (de) * 2016-05-31 2017-11-30 Siemens Aktiengesellschaft Verfahren zur Orientierung eines Industrieroboters und Industrieroboter
JP7314475B2 (ja) 2016-11-11 2023-07-26 セイコーエプソン株式会社 ロボット制御装置、及び、ロボット制御方法
JP6806036B2 (ja) * 2017-11-08 2021-01-06 新東工業株式会社 主型と中子の嵌合装置、及び、主型と中子の嵌合方法
JP7185640B2 (ja) * 2017-11-28 2022-12-07 川崎重工業株式会社 技能伝承機械装置
JP6734253B2 (ja) * 2017-12-20 2020-08-05 ファナック株式会社 ワークを撮像する視覚センサを備える撮像装置
JP6748126B2 (ja) * 2018-02-08 2020-08-26 ファナック株式会社 作業ロボットシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200368918A1 (en) * 2017-08-25 2020-11-26 Fanuc Corporation Robot system
US11565427B2 (en) * 2017-08-25 2023-01-31 Fanuc Corporation Robot system
DE102021130535B3 (de) 2021-11-22 2023-05-17 Helmut Gutzmann System und Verfahren zur Positionierung einer bewegbaren Manipulatoreinheit

Also Published As

Publication number Publication date
JP7306937B2 (ja) 2023-07-11
JP2021049607A (ja) 2021-04-01
US11565422B2 (en) 2023-01-31
US20210086366A1 (en) 2021-03-25
CN112549052A (zh) 2021-03-26
JP2023108062A (ja) 2023-08-03

Similar Documents

Publication Publication Date Title
DE102020124356A1 (de) Steuerung einer Robotervorrichtung zum Einstellen der Position eines vom Roboter gestützten Gegenstandes
DE102017002608B4 (de) Positioniersystem unter Verwendung eines Roboters
DE102016115987B4 (de) Koordinatensystemeinstellungsverfahren, Koordinatensystemeinstellungsvorrichtung und Robotersystem mit Koordinatensystemeinstellungsvorrichtung
DE102019007720B4 (de) Robotervorrichtung
DE102015001527B4 (de) Robotersystem, das visuelle Rückmeldung verwendet
DE112011103794B4 (de) Aufnehmervorrichtung für Werkstücke
DE102018009815B4 (de) Bildgebungsvorrichtung umfassend einen Sichtsensor zum Erfassen des Bildes eines Werkstücks
EP2227356B1 (de) Verfahren und system zum hochpräzisen positionieren mindestens eines objekts in eine endlage im raum
EP1503874B1 (de) Fertigungseinrichtung mit einer biegepresse, und verfahren zum betrieb der fertigungseinrichtung
DE102016009438A1 (de) Robotersystem mit Sichtsensor und einer Vielzahl von Robotern
DE102015000587B4 (de) Roboterprogrammiervorrichtung zum Erstellen eines Roboterprogramms zum Aufnehmen eines Bilds eines Werkstücks
DE19930087C5 (de) Verfahren und Vorrichtung zur Regelung der Vorhalteposition eines Manipulators eines Handhabungsgeräts
DE102015107436B4 (de) Lernfähige Bahnsteuerung
DE102017117928A1 (de) Robotersteuereinheit für einen Montageroboter
DE102014015364A1 (de) Befestigungsvorrichtung, robotersystem und befestigungsverfahren zum befestigen mehrerer befestigungsteile
DE102014117346B4 (de) Roboter, Robotersteuerungsverfahren und Robotersteuerungsprogramm zur Werkstückkorrektur
DE102020116342A1 (de) Vorrichtung und verfahren zum erfassen des abweichungsausmasses der arbeitsposition eines werkzeugs
EP3160219B1 (de) Verfahren und vorrichtung zur platzierung elektronischer bauteile
DE102020119704A1 (de) Steuervorrichtung einer robotervorrichtung, die die position eines roboters steuert
DE102019131284B4 (de) Robotersystem und Koordinatenumwandlungsverfahren
DE10351669B4 (de) Verfahren und Vorrichtung zum Steuern eines Handhabungsgeräts relativ zu einem Objekt
DE102018009836B4 (de) Objektprüfsystem und Objektprüfverfahren
DE102015104582A1 (de) Verfahren zum Kalibrieren eines Roboters an einem Arbeitsbereich und System zum Durchführen des Verfahrens
DE102020107385B4 (de) Betriebseinstellvorrichtung zum einstellen des betriebs einer robotervorrichtung
DE102021109332A1 (de) Vorrichtung und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle

Legal Events

Date Code Title Description
R012 Request for examination validly filed