DE102020000964A1 - Objekterkennungsvorrichtung, Steuervorrichtung und Objekterkennungscomputerprogramm - Google Patents

Objekterkennungsvorrichtung, Steuervorrichtung und Objekterkennungscomputerprogramm Download PDF

Info

Publication number
DE102020000964A1
DE102020000964A1 DE102020000964.6A DE102020000964A DE102020000964A1 DE 102020000964 A1 DE102020000964 A1 DE 102020000964A1 DE 102020000964 A DE102020000964 A DE 102020000964A DE 102020000964 A1 DE102020000964 A1 DE 102020000964A1
Authority
DE
Germany
Prior art keywords
target object
image
workpiece
unit
positional relationship
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
DE102020000964.6A
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 DE102020000964A1 publication Critical patent/DE102020000964A1/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
    • 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/04Viewing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • 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/02Programme-controlled manipulators characterised by movement of the arms, e.g. cartesian coordinate type
    • B25J9/04Programme-controlled manipulators characterised by movement of the arms, e.g. cartesian coordinate type by rotating at least one arm, excluding the head movement itself, e.g. cylindrical coordinate type or polar coordinate type
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • 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/40564Recognize shape, contour of object, extract position and orientation
    • 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/40613Camera, laser scanner on end effector, hand eye manipulator, local

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Molecular Biology (AREA)
  • Databases & Information Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Image Analysis (AREA)
  • Manipulator (AREA)

Abstract

Eine Objekterkennungsvorrichtung, die ein Objekt als Erkennungsziel erkennen kann, selbst dann, wenn sich eine relative Positionsbeziehung des Objekts in Bezug auf eine das Objekt aufnehmende Bildaufnahmeeinheit ändert. Die Objekterkennungsvorrichtung weist eine Robusterkennungseinheit 41 auf, die, wenn eine Bildaufnahmeeinheit 4, die ein ein Zielobjekt 10 darstellendes Bild erzeugt, und das Zielobjekt 10 eine vorgegebene Positionsbeziehung nicht erfüllen, eine Position des Zielobjekts 10 auf dem Bild erkennt, indem sie das Bild in einen Klassifikator eingibt, und eine Präzisionserkennungseinheit 42, die, wenn die Bildaufnahmeeinheit 4 und das Zielobjekt 10 die vorgegebene Positionsbeziehung erfüllen, eine Position des Zielobjekts 10 auf dem Bild erkennt, indem sie mit dem Bild eine Schablone vergleicht, die ein Merkmal eines Erscheinungsbildes des Zielobjekts 10 darstellt, wenn das Zielobjekt 10 aus einer vorgegebenen Richtung betrachtet wird.

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich beispielsweise auf eine Objekterkennungsvorrichtung und ein Objekterkennungscomputerprogramm, die ein auf einem Bild dargestelltes Objekt erkennen, und auf eine Steuervorrichtung, die eine automatische Maschine einschließlich eines beweglichen Elements unter Verwendung eines Erkennungsergebnisses des auf dem Bild dargestellten Objekts steuert.
  • Beschreibung der verwandten Technik
  • Bei einer automatischen Maschine, wie z.B. einem Roboter oder einer Werkzeugmaschine, die ein bewegliches Element, wie z.B. einen durch Verwendung eines Servomotors angetriebenen Arm enthält, wurden Techniken zur Verwendung eines Bildes vorgeschlagen, das ein Objekt als Arbeitsziel einer automatischen Maschine zeigt und von einer Kamera aufgenommen wird, um die automatische Maschine in Abhängigkeit von einer relativen Positionsbeziehung zwischen dem beweglichen Element und dem Objekt als Arbeitsziel zu steuern. Als eine dieser Techniken wurde eine Technik zum Erkennen eines Objekts aus einem Bild unter Verwendung eines Mustervergleichs (Pattern Matching) vorgeschlagen (siehe z.B. die japanische Patentanmeldungs-Offenlegungsschrift (Kokai) Nr. 2018-158439). Ferner wurde als eine weitere dieser Techniken eine Technik zum Gewinnen von Steuerungsinformationen vorgeschlagen, um eine automatische Maschine zu veranlassen, eine vorgegebene Operation auszuführen, indem ein Bild, das ein Objekt als Arbeitsziel zeigt, in einen Klassifikator eingegeben wird, der durch eine maschinelles Lernverfahren, wie z.B. ein neuronales Netz, erhalten wird (siehe z.B. das japanische Patent Nr. 6376296 , die japanische Patentanmeldungs-Offenlegungsschrift (Kokai) Nr. 2009-83095, die japanische Patentanmeldungs-Offenlegungsschrift (Kokai) Nr. 2018-126799 und die japanische Patentanmeldungs-Offenlegungsschrift (Kokai) Nr. 2018-205929).
  • ÜBERSICHT ÜBER DIE ERFINDUNG
  • Wie beispielsweise in einem Fall, in dem ein Objekt als Arbeitsziel mit einem Förderband oder dergleichen transportiert wird, kann das Objekt kann in einigen Fällen bewegt werden. In einem solchen Fall ändern sich eine Position, eine Lage und eine Größe des auf einem Bild dargestellten Objekts abhängig von einer Änderung der Positionsbeziehung zwischen einer Kamera und dem Objekt. So kann ein Merkmal des Objekts, das für den Mustervergleich verwendet wird, z.B. ein Teil einer Oberfläche oder eine Kontur des Objekts, wenn es aus einer bestimmten Richtung betrachtet wird, verdeckt sein und es kann dadurch schwierig werden, eine Position und eine Lage des Objekts beim Mustervergleich genau zu erkennen. Das führt dazu, dass während des Verfolgens des Objekts, eine Steuervorrichtung einer automatischen Maschine das Verfolgen des Objekts auf der Grundlage eines Objekt-Erkennungsergebnisses aus einer Zeitreihe von Bildern nicht fortsetzen kann und manchmal ein bewegliches Element nicht in eine Position bewegen kann, in der Arbeiten an dem Objekt ausgeführt werden. Da sich außerdem eine Position, eine Lage und eine Größe eines auf einem Bild dargestellten Objekts als Arbeitsziel ändern, kann eine Position des Bereichs, in dem das Objekt auf dem Bild dargestellt wird, unbekannt sein. In so einem Fall muss der Mustervergleich auf dem gesamten Bild ausgeführt werden, um das Objekt zu erkennen, und der Zeitaufwand bis zur Erkennung des Objekts kann zu groß werden. In einem solchen Fall wird es für das bewegliche Element schwierig, einer Positionsänderung des Objekts zu folgen.
  • Wenn andererseits eine Position und eine Lage eines auf einem Bild dargestellten Objekts als Arbeitsziel durch Verwendung eines Klassifikators nach einem maschinellen Lernverfahren erkannt werden, so kann eine Steuervorrichtung einer automatischen Maschine das Objekt aus dem Bild erkennen, unabhängig von der Position und der Lage des Objekts in Bezug auf eine Kamera. In diesem Fall kann es jedoch sein, dass die Erkennungsgenauigkeit der Position und der Lage des Objekts nicht zwangsläufig ausreichend ist, und aus diesem Grund vermag die Steuereinrichtung manchmal ein bewegliches Element nicht genau in eine Position zu bewegen, in der das bewegliche Element auf der Grundlage der vom Klassifikator erkannten Position des Objekts Arbeiten an dem Objekt ausführen kann.
  • Gemäß einem Aspekt besteht die Aufgabe darin, eine Objekterkennungsvorrichtung bereitzustellen, die ein Objekt als Erkennungsziel zu erkennen vermag, selbst dann, wenn sich eine relative Positionsbeziehung des Objekts in Bezug auf eine das Objekt aufnehmende Bildaufnahmeeinheit ändert.
  • Gemäß einer Ausführungsform wird eine Objekterkennungsvorrichtung bereitgestellt. Die Objekterkennungsvorrichtung weist eine Speichereinrichtung (33) auf, die eine Schablone speichert, die ein Merkmal eines Erscheinungsbildes eines Zielobjekts (10) darstellt, wenn das Zielobjekt (10) aus einer vorgegebenen Richtung betrachtet wird; eine Einheit zum robusten Erkennen (41) (Robusterkennungseinheit), die, wenn eine Bildaufnahmeeinheit (4), die das Zielobjekt (10) aufnimmt und ein das Zielobjekt (10) darstellendes Bild erzeugt, und das Zielobjekt (10) eine vorgegebene Positionsbeziehung nicht erfüllen, eine Position des Zielobjekts (10) auf dem Bild erkennt, indem sie das Bild in einen Klassifikator eingibt, der zuvor so trainiert wurde, dass er das Zielobjekt (10) aus dem Bild erkennt; und eine Einheit zum präzisen Erkennen (42) (Präzisionserkennungseinheit), die, wenn die Bildaufnahmeeinheit (4) und das Zielobjekt (10) die vorgegebene Positionsbeziehung erfüllen, eine Position des Zielobjekts (10) auf dem Bild erkennt, indem sie das Bild mit der Schablone vergleicht.
  • Gemäß einer weiteren Ausführungsform ist eine Steuervorrichtung einer automatischen Maschine (2), die mindestens ein bewegliches Element (12 bis 16) enthält, vorgesehen. Die Steuervorrichtung weist eine Speichereinrichtung (33) auf, die eine Schablone speichert, die ein Merkmal eines Erscheinungsbildes eines Zielobjekts (10) als Arbeitsziel der automatischen Maschine (2) darstellt, wenn das Zielobjekt (10) aus einer vorgegebenen Richtung betrachtet wird; eine Robusterkennungseinheit (41), die, wenn eine an dem beweglichen Element (12 bis 16) angebrachte, das Zielobjekt (10) aufnehmende und ein das Zielobjekt (10) darstellendes Bild erzeugende Bildaufnahmeeinheit (4) und das Zielobjekt (10) eine vorgegebene Positionsbeziehung nicht erfüllen, eine Position des Zielobjekts (10) auf dem Bild erkennt, indem sie das Bild in einen Klassifikator eingibt, der zuvor so trainiert wurde, dass er das Zielobjekt (10) aus dem Bild erkennt, und eine Position des Zielobjekts (10) in einem realen Raum erkennt, auf der Grundlage der Position des Zielobjekts (10) auf dem Bild; eine Präzisionserkennungseinheit (42), die, wenn die Bildaufnahmeeinheit (4) und das Zielobjekt (10) die vorgegebene Positionsbeziehung erfüllen, eine Position des Zielobjekts (10) auf dem Bild erkennt, indem sie das Bild mit der Schablone vergleicht, eine Position des Zielobjekts (10) in einem realen Raum erkennt, auf der Grundlage der Position des Zielobjekts (10) auf dem Bild, oder eine Position des Zielobjekts (10) in einem realen Raum erkennt, auf der Grundlage von Positionsinformationen, die von einer Positionsinformationsgewinnungseinheit gewonnen werden, die die eine relative Position in Bezug auf das Zielobjekt (10) angebenden Positionsinformationen gewinnt; eine Annäherungssteuereinheit (44), die das bewegliche Element (12 bis 16) derart steuert, dass die Bildaufnahmeeinheit und das Zielobjekt (10) die vorgegebene Positionsbeziehung erfüllen, auf der Grundlage der Position des Zielobjekts (10) in einem realen Raum, die von der Robusterkennungseinheit (41) erkannt wird, wenn die Bildaufnahmeeinheit (4) und das Zielobjekt (10) die vorgegebene Positionsbeziehung nicht erfüllen; und eine Arbeitssteuereinheit (45), die das bewegliche Element (12 bis 16) so steuert, dass das bewegliche Element (12 bis 16) in eine Position bewegt wird, in der die automatische Maschine (2) vorgegebene Arbeiten an dem Zielobjekt (10) ausführen kann, auf der Grundlage der Position des Zielobjekts (10) in einem realen Raum, die von der Präzisionserkennungseinheit (42) erkannt wird, wenn die Bildaufnahmeeinheit (4) und das Zielobjekt (10) die vorgegebene Positionsbeziehung erfüllen.
  • Gemäß noch einer weiteren Ausführungsform ist ein Objekterkennungscomputerprogramm vorgesehen. Das Objekterkennungscomputerprogramm veranlasst einen Computer die folgenden Schritte auszuführen: Erkennen, wenn eine ein Zielobjekt (10) aufnehmende und ein das Zielobjekt (10) darstellendes Bild erzeugende Bildaufnahmeeinheit (4) und das Zielobjekt (10) eine vorgegebene Positionsbeziehung nicht erfüllen, einer Position des Zielobjekts (10) auf dem Bild, indem das Bild in einen Klassifikator eingegeben wird, der zuvor so angelernt wurde, dass er das Zielobjekt (10) aus dem Bild erkennt; und Erkennen, wenn die Bildaufnahmeeinheit (4) und das Zielobjekt (10) die vorgegebene Positionsbeziehung erfüllen, einer Position des Zielobjekts (10) auf dem Bild, indem mit dem Bild eine Schablone verglichen wird, die ein Merkmal eines Erscheinungsbildes des Zielobjekts (10) darstellt, wenn das Zielobjekt (10) aus einer vorgegebenen Richtung betrachtet wird.
  • Gemäß einem Aspekt kann, selbst dann, wenn sich eine relative Positionsbeziehung eines Objekts als Erkennungsziel in Bezug auf eine das Objekt aufnehmende Bildaufnahmeeinheit ändert, das Objekt erkannt werden.
  • Figurenliste
    • 1 ist eine schematische Konfigurationsdarstellung eines Robotersystems gemäß einer Ausführungsform.
    • 2 ist eine schematische Konfigurationsdarstellung einer Steuervorrichtung.
    • 3 ist ein Funktionsblockschaltbild eines in der Steuervorrichtung enthaltenen Prozessors in Bezug auf die Verarbeitung der Steuerung der beweglichen Elemente einschließlich der Verarbeitung der Objekterkennung.
    • 4 ist ein Diagramm, das einen Überblick über die Verarbeitung der Steuerung der beweglichen Elemente einschließlich der Verarbeitung der Objekterkennung zeigt.
    • 5 ist ein Betriebsablaufdiagramm der Verarbeitung der Steuerung der beweglichen Elemente einschließlich der Verarbeitung der Objekterkennung
    • 6 ist eine schematische Konfigurationszeichnung eines Robotersystems gemäß einem modifizierten Beispiel.
    • 7 ist eine schematische Konfigurationszeichnung einer Objekterkennungsvorrichtung.
  • BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Eine Objekterkennungsvorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung wird im Folgenden unter Bezugnahme auf die Zeichnungen beschrieben. Die Objekterkennungsvorrichtung erkennt beispielsweise ein Objekt als Arbeitsziel (im Folgenden einfach als Zielobjekt bezeichnet) einer automatischen Maschine, die ein bewegliches Element, wie z.B. einen Arm aufweist, aus einer Reihe von Bildern, die von einer an dem beweglichen Element der automatischen Maschine angebrachten Bildaufnahmeeinheit aufgenommen wurden, und erkennt eine Position des Zielobjekts in einem realen Raum. Die Objekterkennungsvorrichtung erkennt zu diesem Zeitpunkt eine Position des Zielobjekts auf einem Bild in einer robusten Weise, indem sie das Bild in einen Klassifikator eingibt, der zuvor so trainiert wurde, dass er das Zielobjekt aus dem Bild erkennt, bis die Bildaufnahmeeinheit und das Zielobjekt eine vorgegebene Positionsbeziehung erfüllen, und erkennt eine Position des Zielobjekts im realen Raum auf der Grundlage des Erkennungsergebnisses. Wenn andererseits die Bildaufnahmeeinheit und das Zielobjekt die vorgegebene Positionsbeziehung erfüllen, so erkennt die Objekterkennungsvorrichtung eine Position und eine Lage des Zielobjekts auf einem Bild mit hoher Genauigkeit, indem sie eine zuvor erstellte Schablone, die ein Merkmal eines Erscheinungsbildes des Zielobjekts darstellt, wenn das Zielobjekt aus einer vorgegebenen Richtung betrachtet wird, mit dem Bild vergleicht, und erkennt eine Position und eine Lage des Zielobjekts im realen Raum auf der Grundlage des Erkennungsergebnisses. Des Weiteren ist die Objekterkennungsvorrichtung in eine Steuervorrichtung der automatischen Maschine eingebunden und steuert das bewegliche Element der automatischen Maschine derart, dass die automatische Maschine auf der Grundlage der erkannten Position des Zielobjekts oder der erkannten Position und der erkannten Lage des Zielobjekts Arbeiten am Zielobjekt ausführen kann.
  • 1 ist eine schematische Konfigurationsdarstellung eines Robotersystems 1, auf dem eine Objekterkennungsvorrichtung entsprechend einer Ausführungsform angebracht ist. Das Robotersystem 1 weist einen Roboter 2, eine Steuervorrichtung 3, die den Roboter 2 steuert, und eine Kamera 4 auf, die an einem beweglichen Element des Roboters 2 befestigt ist und zum Aufnehmen eines Werkstücks 10, das ein Beispiel für ein Zielobjekt ist, verwendet wird. Das Robotersystem 1 ist ein Beispiel für eine automatische Maschine.
  • Der Roboter 2 umfasst eine Basis 11, einen Drehtisch 12, einen ersten Arm 13, einen zweiten Arm 14, ein Handgelenk 15 und ein Werkzeug 16. Der Drehtisch 12, der erste Arm 13, der zweite Arm 14, das Handgelenk 15 und das Werkzeug 16 stellen jeweils ein Beispiel für das bewegliche Element dar. Der Drehtisch 12, der erste Arm 13, der zweite Arm 14 und das Handgelenk 15 werden jeweils von einer in einem Gelenk vorgesehenen Welle getragen, wobei der Drehtisch 12, der erste Arm 13, der zweite Arm 14 und das Handgelenk 15 an dem jeweiligen Gelenk befestigt sind und von einem die Welle antreibenden Servomotor betrieben werden. Des Weiteren wird das Werkstück 10 beispielsweise durch ein Förderband transportiert, und der Roboter 2 führt vorgegebene Arbeiten an dem Werkstück 10 aus, während sich das Werkstück 10 innerhalb eines vorgegebenen Bereichs befindet.
  • Der Sockel 11 ist ein Element, das als Standfuß dient, wenn der Roboter 2 auf einem Boden aufgestellt ist. Der Drehtisch 12 ist drehbar an einer Oberseite des Sockels 11 an einem Gelenk 22 angebracht, und zwar mit Hilfe einer Welle (nicht abgebildet), die als Drehzentrum dient und senkrecht zur Oberseite des Sockels 11 vorgesehen ist.
  • Der erste Arm 13 ist an einem seiner Enden am Drehtisch 12 angebracht, und zwar an einem an dem Drehtisch 12 vorgesehenen Gelenk 22. Bei der vorliegenden Ausführungsform, wie in 1 dargestellt, ist der erste Arm 13 um eine Welle (nicht abgebildet) drehbar, die parallel zur Oberfläche des Sockels 11, an dem der Drehtisch 12 angebracht ist, in dem Gelenk 22 vorgesehen ist.
  • Der zweite Arm 14 ist an einer seiner Stirnseiten am ersten Arm 13 angebracht, und zwar an einem Gelenk 23, das an der anderen Stirnseite des ersten Arms 13 dem Gelenk 22 gegenüberliegend vorgesehen ist. Bei der vorliegenden Ausführungsform, wie in 1 dargestellt, ist der zweite Arm 14 um eine Welle (nicht abgebildet) drehbar, die parallel zur Oberfläche des Sockels 11, an dem der Drehtisch 12 angebracht ist, in dem Gelenk 23 vorgesehen ist.
  • Das Handgelenk 15 ist über ein Gelenk 24 an einer Spitze des zweiten Arms 14 dem Gelenk 23 gegenüberliegend angebracht. Das Handgelenk 15 weist ein Gelenk 25 auf und kann mit einer als Rotationszentrum dienenden Welle (nicht abgebildet), die im Gelenk 25 parallel zur Welle des Gelenks 22 und zur Welle des Gelenks 23 vorgesehen ist, abgewinkelt werden. Darüber hinaus kann das Handgelenk 15 in einer Fläche orthogonal zu einer Längsrichtung des zweiten Arms 14 drehbar sein, mit einer Welle (nicht abgebildet) als Rotationszentrum, die sich parallel zur Längsrichtung des zweiten Arms 14 erstreckt.
  • Das Werkzeug 16 ist an einer Spitze des Handgelenks 15 dem Gelenk 24 gegenüberliegend angebracht. Das Werkzeug 16 weist einen Mechanismus oder eine Vorrichtung zur Durchführung von Arbeiten am Werkstück 10 auf. Zum Beispiel kann das Werkzeug 16 einen Laser zur Bearbeitung des Werkstücks 10 oder eine Servozange zum Schweißen des Werkstücks 10 aufweisen. Alternativ kann das Werkzeug 16 einen Handmechanismus zum Halten des Werkstücks 10 oder eines an dem Werkstück 10 montierten Teils aufweisen.
  • Die Kamera 4 ist ein Beispiel für eine Bildaufnahmeeinheit und ist beispielsweise an dem Werkzeug 16 angebracht. Zu beachten ist, dass die Kamera 4 an einem anderen beweglichen Element, wie z.B. dem Handgelenk 15 oder dem zweiten Arm 14, angebracht sein kann. Wenn der Roboter 2 Arbeiten an dem Werkstück 10 ausführt oder wenn sich das Werkzeug 16 dem Werkstück 10 nähert, wird die Kamera 4 so ausgerichtet, dass das Werkstück 10 in einen Bildaufnahmebereich der Kamera 4 einbezogen wird. Dann erzeugt die Kamera 4 ein Bild, auf dem das Werkstück 10 dargestellt ist, indem sie den Bildaufnahmebereich einschließlich des Werkstücks 10 in jedem vorgegebenen Bildaufnahmezeitraum aufnimmt. Jedes Mal, wenn die Kamera 4 ein Bild erzeugt, gibt die Kamera 4 das erzeugte Bild über eine Kommunikationsleitung 5 an die Steuervorrichtung 3 aus.
  • Zu beachten ist, dass eine automatische Maschine, die ein Steuerungsziel der Steuervorrichtung 3 ist, nicht auf den in 1 dargestellten Roboter 2 beschränkt ist und mindestens ein bewegliches Element aufweisen kann.
  • Die Steuervorrichtung 3 ist über die Kommunikationsleitung 5 mit dem Roboter 2 verbunden und empfängt über die Kommunikationsleitung 5 von dem Roboter 2 Informationen, die einen Betriebszustand des die in jedem der Gelenke des Roboters 2 vorgesehene Welle antreibenden Servomotors anzeigen, ein Bild von der Kamera 4 und dergleichen. Daraufhin steuert das Steuergerät 3 den Servomotor auf der Grundlage der empfangenen Informationen, des empfangenen Bildes und eines Betriebs des Roboters 2, der von einem Host-Steuergerät (nicht abgebildet) empfangen wird oder zuvor eingestellt wurde, und steuert so eine Position und eine Lage jedes der beweglichen Elemente des Roboters 2.
  • 2 ist eine schematische Konfigurationsdarstellung der Steuervorrichtung 3. Die Steuervorrichtung 3 weist eine Kommunikationsschnittstelle 31, einen Antriebsschaltkreis 32, einen Speicher 33 und einen Prozessor 34 auf. Des Weiteren kann die Steuervorrichtung 3 eine Benutzerschnittstelle (nicht abgebildet), wie z.B. ein Touchpanel, aufweisen.
  • Die Kommunikationsschnittstelle 31 weist zum Beispiel eine Kommunikationsschnittstelle zum Verbinden der Steuervorrichtung 3 mit der Kommunikationsleitung 5, eine Schaltung zum Ausführen der Verarbeitung in Bezug auf die Übertragung und den Empfang eines Signals über die Kommunikationsleitung 5 und ähnliches auf. Dann empfängt die Kommunikationsschnittstelle 31 von dem Roboter 2 über die Kommunikationsleitung 5 Informationen, die einen Betriebsstatus eines ein Beispiel für eine Antriebseinheit darstellenden Servomotors 35 anzeigen, wie z.B. einen Messwert eines Drehbetrags von einem Encoder zum Erfassen eines Drehbetrags des Servomotors 35, und leitet die Informationen an den Prozessor 34 weiter. Zu beachten ist, dass 2 einen Servomotor 35 stellvertretend darstellt, der Roboter 2 jedoch für jedes Gelenk einen Servomotor aufweisen kann, der eine Welle des Gelenks antreibt. Außerdem empfängt die Kommunikationsschnittstelle 31 ein Bild von der Kamera 4 und leitet das empfangene Bild an den Prozessor 34 weiter.
  • Der Antriebsschaltkreis 32 ist über ein Stromversorgungskabel mit dem Servomotor 35 verbunden und liefert elektrischen Strom entsprechend dem vom Servomotor 35 erzeugten Drehmoment, einer Drehrichtung oder einer Drehzahl des Servomotors 35 in Übereinstimmung mit der Steuerung durch den Prozessor 34.
  • Der Speicher 33 ist ein Beispiel für eine Speichereinheit und weist beispielsweise einen lesbaren und beschreibbaren Halbleiterspeicher und einen Festwert-Halbleiterspeicher auf. Außerdem kann der Speicher 33 ein Speichermedium, wie z.B. eine Halbleiter-Speicherkarte, eine Festplatte oder ein optisches Speichermedium, aufweisen, sowie eine Vorrichtung, die auf das Speichermedium zugreift.
  • Der Speicher 33 speichert verschiedene Computerprogramme zum Steuern des Roboters 2, die im Prozessor 34 der Steuervorrichtung 3 ausgeführt werden, und ähnliches. Außerdem speichert der Speicher 33 Informationen zum Steuern eines Betriebs des Roboters 2, wenn der Roboter 2 betrieben wird. Des Weiteren speichert der Speicher 33 einen Betriebsstatus des Servomotors 35 anzeigende Informationen, die vom Roboter 2 während des Betriebs des Roboters 2 erhalten werden. Außerdem speichert der Speicher 33 verschiedene Daten, die bei der Verarbeitung der Objekterkennung verwendet werden. Zu diesen Daten gehören beispielsweise ein Parametersatz zur Definition eines Klassifikators, eine Schablone, die ein Merkmal eines Erscheinungsbildes des Werkstücks 10 bei Betrachtung aus einer vorgegebenen Richtung (z.B. vertikal von oben) des Werkstücks 10 darstellt, das zum Erkennen des Werkstücks 10 verwendet wird, ein Kameraparameter, der sich auf die Kamera 4 beziehende Informationen angibt, wie z.B. eine Brennweite, eine Anbringungsposition und eine Ausrichtung der Kamera 4, und ein von der Kamera 4 erhaltenes Bild.
  • Der Prozessor 34 stellt ein Beispiel für eine Steuereinheit dar und weist zum Beispiel eine Zentraleinheit (CPU) und eine Peripherieschaltung der CPU auf. Außerdem kann der Prozessor 34 einen Prozessor für eine Rechenoperation aufweisen. Der Prozessor 34 steuert dann das Robotersystem 1 in seiner Gesamtheit. Des Weiteren führt der Prozessor 34 die Verarbeitung der Steuerung der beweglichen Elemente einschließlich der Verarbeitung der Objekterkennung aus.
  • 3 ist ein Funktionsblockschaltbild des Prozessors 34 in Bezug auf die Verarbeitung der Steuerung der beweglichen Elemente einschließlich der Verarbeitung der Objekterkennung. Der Prozessor 34 weist eine Robusterkennungseinheit 41, eine Präzisionserkennungseinheit 42, eine Bestimmungseinheit 43, eine Annäherungssteuereinheit 44 und eine Arbeitssteuereinheit 45 auf. Jede dieser Einheiten des Prozessors 34 ist beispielsweise ein Funktionsmodul, das durch ein auf dem Prozessor 34 ausgeführtes Computerprogramm realisiert wird. Alternativ kann jede dieser Einheiten als eine zweckbestimmte Rechenschaltung realisiert werden, die auf einem Teil des Prozessors 34 angebracht ist. Weiterhin umfasst die Objekterkennungsverarbeitung eine Verarbeitung durch die Robusterkennungseinheit 41, die Präzisionserkennungseinheit 42 und die Bestimmungseinheit 43 unter den Einheiten des Prozessors 34.
  • Die Robusterkennungseinheit 41 erkennt, indem es jedes einer Zeitreihe von Bildern, die von der Kamera 4 aufgenommen wurden, in den Klassifikator eingibt, eine Position des Werkstücks 10 auf dem Bild, d.h. eine Position eines Zielobjekts, wenn die Kamera 4 und das Werkstück 10 eine vorgegebene Positionsbeziehung nicht erfüllen. Daraufhin erkennt die Robusterkennungseinheit 41 eine Position des Werkstücks 10 in einem realen Raum auf der Grundlage der auf dem Bild erkannten Position des Werkstücks 10. Da die Robusterkennungseinheit 41 eine Position des Werkstücks 10 unter Verwendung des Klassifikators erkennt, kann die Robusterkennungseinheit 41 eine Position des Werkstücks 10 auf eine robustere Weise erkennen als die Präzisionserkennungseinheit 42. Da die Robusterkennungseinheit 41 die gleiche Verarbeitung auf jedem Bild ausführen kann, wird im Folgenden die Verarbeitung auf einem Bild beschrieben. Des Weiteren wird die vorgegebene Positionsbeziehung mit der Bestimmungseinheit 43 im Detail beschrieben.
  • Der Klassifikator wurde so trainiert, dass er das auf einem Bild dargestellte Werkstück 10 erkennt. So kann beispielsweise die Robusterkennungseinheit 41 als Klassifikator ein faltendes neuronales Netz (CNN) verwenden, das zuvor so trainiert wurde, dass es ein auf einem Bild dargestelltes Objekt erkennt und einen Bereich anzeigt, in dem das erkannte Objekt dargestellt ist, wie z.B. ein VGG oder einen Single-Shot-Multibox-Detektor (SSD). In diesem Fall kann die Robusterkennungseinheit 41 ein umschriebenes Rechteck (d.h. einen Begrenzungsrahmen) des auf dem Bild dargestellten Werkstücks 10 erhalten, indem sie ein Bild von Interesse in den Klassifikator eingibt.
  • Alternativ kann die Robusterkennungseinheit 41 als Klassifikator einen Klassifikator verwenden, der zuvor gemäß einem anderen maschinellen Lernverfahren, wie z.B. einer Support Vector Machine oder AdaBoost, trainiert wurde. In diesem Fall setzt die Robusterkennungseinheit 41 eine Mehrzahl von sich voneinander unterscheidenden Fenstern für ein Bild von Interesse und extrahiert aus jedem der Fenster eine Merkmalsmenge, wie z.B. Histogramme orientierter Gradienten (HOG) oder ein Haar-ähnliches Merkmal. Zu beachten ist, dass, wenn eine Position des Werkstücks 10 in einem in der Vergangenheit aufgenommenen Bild erkannt wird, die Robusterkennungseinheit 41 eine Mehrzahl von Fenstern setzen kann, die in der Nähe der erkannten Position begrenzt sind. Dann gibt die Robusterkennungseinheit 41 die aus dem Fenster extrahierte Merkmalsmenge für jedes der Fenster in den Klassifikator ein. Wenn die Merkmalsmenge eingegeben wird, so gibt der Klassifikator ein Bestimmungsergebnis aus, ob das Werkstück 10 im Fenster dargestellt ist oder nicht. Daher kann die Robusterkennungseinheit 41 bestimmen, dass das Werkstück 10 in dem Fenster dargestellt ist, dessen Bestimmungsergebnis, dass das Werkstück 10 dargestellt ist, vom Klassifikator ausgegeben wird.
  • Wie oben beschrieben, setzt die Robusterkennungseinheit 41, wenn ein Bereich, in dem das Werkstück 10 auf dem Bild dargestellt ist, erkannt wird, eine vorgegebene Position in dem Bereich, z.B. den Schwerpunkt des Bereichs, als Position des Werkstücks 10 auf dem Bild fest.
  • Wenn die Position des Werkstücks 10 auf dem Bild erhalten wird, so erkennt die Robusterkennungseinheit 41 eine Position des Werkstücks 10 in einem realen Raum auf der Grundlage der Position.
  • Dabei entspricht die Position jedes Pixels auf dem Bild eins zu eins einer Peilung von der Kamera 4 aus betrachtet. So kann die Robusterkennungseinheit 41 zum Beispiel eine Peilung, die dem Schwerpunkt des Bereichs, in dem das Werkstück 10 auf dem Bild dargestellt ist, zugeordnet ist, als Peilung von der Kamera 4 zum Werkstück 10 bestimmen. Des Weiteren kann die Robusterkennungseinheit 41 einen geschätzten Abstand von der Kamera 4 zum Werkstück 10 berechnen, indem sie einen vorgegebenen Referenzabstand multipliziert mit dem Verhältnis einer Fläche des Werkstücks 10 auf dem Bild, wenn ein Abstand von der Kamera 4 zum Werkstück 10 der Referenzabstand ist, zu einer Fläche des Bereichs, in dem das Werkstück 10 auf dem Bild dargestellt ist. Daher kann die Robusterkennungseinheit 41 eine Position des Werkstücks 10 in einem Kamerakoordinatensystem in Bezug auf eine Position der Kamera 4 auf Grundlage der Peilung von der Kamera 4 zum Werkstück 10 und der geschätzten Entfernung erkennen. Dann gibt die Robusterkennungseinheit 41 die erkannte Position des Werkstücks 10 an die Bestimmungseinheit 43 und die Annäherungssteuereinheit 44 aus.
  • Gemäß einem modifizierten Beispiel kann die Robusterkennungseinheit 41 nicht nur eine Position des Werkstücks 10, sondern auch eine Lage des Werkstücks 10 erkennen. In diesem Fall kann die Robusterkennungseinheit 41 als Klassifikator ein CNN verwenden, das zuvor so trainiert wurde, dass es einen Bereich, in dem ein Objekt auf einem Bild dargestellt ist, und eine Lage des Objekts erkennt (siehe z.B. B. Tekin und andere, „Real-Time Seamless Single Shot 6D Object Pose Prediction“, CVPR2018). Die Robusterkennungseinheit 41 kann nicht nur eine Position des Werkstücks 10 auf einem Bild erkennen, sondern auch eine Lage des Werkstücks 10, wenn es von der Kamera 4 aus betrachtet wird, d.h. im Kamerakoordinatensystem angezeigt wird, indem das Bild in einen solchen Klassifikator eingegeben wird. Die erkannte Lage des Werkstücks 10 wird z.B. durch eine Kombination aus einem Roll-, Nick- und Gierwinkel angezeigt.
  • In diesem Fall kann die Robusterkennungseinheit 41 die erkannte Position und die erkannte Lage des Werkstücks 10 an die Bestimmungseinheit 43 und die Annäherungssteuereinheit 44 ausgeben.
  • Wenn die Kamera 4 und das Werkstück 10 die vorgegebene Positionsbeziehung erfüllen, so erkennt die Präzisionserkennungseinheit 42, durch Vergleich jedes Bilds einer mit der Kamera 4 aufgenommenen Zeitreihe von Bildern mit einer Schablone, eine Position und eine Lage des Werkstücks 10 auf dem Bild mit höherer Genauigkeit als die Robusterkennungseinheit 41. Sodann erkennt die Präzisionserkennungseinheit 42 eine Position und eine Lage des Werkstücks 10 in einem realen Raum auf der Grundlage der erkannten Position und der erkannten Lage des Werkstücks 10 auf dem Bild. Da die Präzisionserkennungseinheit 42 bei jedem Bild die gleiche Verarbeitung durchführen kann, wird die Verarbeitung bei einem Bild im Folgenden beschrieben. Zum Beispiel liest die Präzisionserkennungseinheit 42 eine Schablone aus dem Speicher 33 aus und vergleicht die Schablone mit einem Bild von Interesse, um einen Bereich zu erkennen, in dem das Werkstück 10 auf dem Bild dargestellt ist. Die Schablone kann beispielsweise ein Bild des Werkstücks 10, aus einer vorgegebenen Richtung betrachtet, darstellen. In diesem Fall berechnet die Präzisionserkennungseinheit 42 einen Wert, der einen Ähnlichkeitsgrad zwischen der Schablone und dem Bild darstellt, wie z.B. einen Kreuzkorrelationswert zwischen der Schablone und dem Bild, während eine relative Position und eine relative Ausrichtung der Schablone in Bezug auf das Bild innerhalb eines Übereinstimmungsbereichs auf dem Bild geändert wird, und bestimmt, dass das Werkstück 10 in einem Bereich dargestellt wird, der einer Position der Schablone entspricht, wenn der Ähnlichkeitsgrad gleich oder größer als ein vorgegebener Schwellenwert ist. Des Weiteren kann die Präzisionserkennungseinheit 42 einen tatsächlichen Rotationsbetrag des Werkstücks 10 in Bezug auf eine Ausrichtung des auf der Schablone dargestellten Werkstücks 10 bei Betrachtung aus einer vorgegebenen Richtung auf der Grundlage einer Ausrichtung der Schablone, wenn der Ähnlichkeitsgrad gleich oder größer als der vorgegebene Schwellenwert ist, berechnen. Auf diese Weise kann die Präzisionserkennungseinheit 42 eine Lage des Werkstücks 10 auf der Grundlage des Rotationsbetrags erhalten. Zu beachten ist, dass die Präzisionserkennungseinheit 42 als Übereinstimmungsbereich z.B. einen vorgegebenen Bereich um eine vorhergesagte Position des Werkstücks 10 auf einem Bild von Interesse festlegen kann, der berechnet wird, durch Anwendung eines Vorhersagefilters, wie z.B. eines Kalman-Filters, auf eine Position des Werkstücks 10 (z.B. den Schwerpunkt eines Bereichs, in dem das Werkstück 10 dargestellt ist), die in jedem einer Reihe von Bildern erkannt wird, die vor dem Bild von Interesse aufgenommen wurden.
  • Des Weiteren kann die Schablone eine Vielzahl von Merkmalspunkten des Werkstücks 10 darstellen, bei Betrachtung aus der vorgegebenen Richtung, z.B. eine Mehrzahl von Punkten auf einer Kontur des Werkstücks 10. In diesem Fall kann die Präzisionserkennungseinheit 42 die Mehrzahl von Merkmalspunkten erkennen, indem sie auf den Übereinstimmungsbereich auf dem Bild einen Kantenerkennungsfilter, wie z.B. einen Sobel-Filter, oder einen Eckenerkennungsfilter, wie z.B. einen Harris-Filter, oder einen anderen Merkmalspunkt-Erkennungsfilter, wie z.B. einen SIFT (skaleninvariante Merkmalstransformation) anwendet. Dann kann die Präzisionserkennungseinheit 42 als Ähnlichkeitsgrad ein Verhältnis der Anzahl von Merkmalspunkten auf der Schablone, die mit Merkmalspunkten auf dem Bild übereinstimmen, zur Anzahl der Merkmalspunkte auf der Schablone für jede Position der Schablone berechnen, während eine relative Position und eine relative Ausrichtung der Schablone in Bezug auf das Bild innerhalb des Übereinstimmungsbereichs geändert wird. Auch in diesem Fall kann die Präzisionserkennungseinheit 42 bestimmen, dass das Werkstück 10 in einem Bereich dargestellt ist, der einer Position der Schablone entspricht, wenn der Ähnlichkeitsgrad gleich oder größer als der vorgegebene Schwellenwert ist.
  • Alternativ dazu kann die Präzisionserkennungseinheit 42, wenn ein großer Unterschied zwischen der Helligkeit des Werkstücks 10 und der Helligkeit eines das Werkstück 10 umgebenden Hintergrunds besteht, einen Bereich erkennen, in dem das Werkstück 10 dargestellt wird, indem jedes Pixel eines Bildes auf der Grundlage eines Leuchtdichtewertes des Pixels binarisiert wird. Wenn, zum Beispiel, das Werkstück 10 heller als die Umgebung ist, so kann die Präzisionserkennungseinheit 42 ein Pixel mit einem Leuchtdichtewert erkennen, der höher als ein vorgegebener Leuchtdichteschwellenwert ist, und als Bereich, in dem das Werkstück 10 dargestellt wird, einen Bereich festlegen, der aus einem Satz der erkannten Pixel besteht. In diesem Fall kann die Präzisionserkennungseinheit 42 beispielsweise für jede Lage des Werkstücks 10 eine für die Lage vorbereitete Schablone mit dem Bereich, in dem das Werkstück 10 dargestellt ist, vergleichen und als tatsächliche Lage des Werkstücks 10 die Lage bestimmen, die der Schablone entspricht, deren Form dem Bereich, in dem das Werkstück 10 dargestellt ist, am ähnlichsten ist. Zu beachten ist, dass in diesem Fall die Schablone auch zu einem Binärbild gemacht werden kann, bei dem der Bereich, der das Werkstück darstellt, und ein anderer Bereich unterschiedliche Werte haben.
  • Wenn eine Position des Bereichs, in dem das Werkstück 10 auf dem Bild dargestellt ist, bestimmt wird, so kann die Präzisionserkennungseinheit 42 eine im Kamerakoordinatensystem angegebene Position des Werkstücks 10 bestimmen, ähnlich wie die Robusterkennungseinheit 41. Ferner kann die Präzisionserkennungseinheit 42 eine in dem Kamerakoordinatensystem angezeigte Lage des Werkstücks 10 bestimmen, indem sie die Lage des Werkstücks 10 auf dem Bild dreht, und zwar um eine Differenz zwischen einer für die Schablone definierten vorgegebenen Richtung und einer Peilung von der Kamera 4, die dem Schwerpunkt des Bereichs entspricht, in dem das Werkstück 10 dargestellt ist.
  • Zu beachten ist, dass eine Mehrzahl von Schablonen im Voraus vorbereitet werden kann. In diesem Fall kann jede der Schablonen bei einer Kombination aus einer Richtung, in der das Werkstück 10 betrachtet wird, und einer Größe des Werkstücks 10 auf der Schablone variieren. In diesem Fall berechnet die Präzisionserkennungseinheit 42 für jede der Mehrzahl von Schablonen einen Ähnlichkeitsgrad für jede Position der Schablone, während, ähnlich wie oben beschrieben, eine relative Position und eine relative Ausrichtung der Schablone in Bezug auf das Bild innerhalb des Übereinstimmungsbereichs geändert wird. Sodann kann die Präzisionserkennungseinheit 42 bestimmen, dass das Werkstück 10, aus einer Richtung betrachtet, die auf der den größten Ähnlichkeitsgrad aufweisenden Schablone angegeben ist, in einem Bereich dargestellt ist, der einer Position der Schablone entspricht. Ferner entspricht eine Größe des auf der Schablone dargestellten Werkstücks 10 einem Abstand von der Kamera 4 zum Werkstück 10. Somit kann die Präzisionserkennungseinheit 42 als Abstand von der Kamera 4 zum Werkstück 10 einen Abstand bestimmen, der einer Größe des Werkstücks 10 entspricht, das auf der den größten Ähnlichkeitsgrad aufweisenden Schablone dargestellt ist.
  • Die Präzisionserkennungseinheit 42 kann eine Position des Werkstücks 10 in einem realen Raum mit einer anderen Technik erkennen. Beispielsweise kann die Präzisionserkennungseinheit 42 eine absolute Position (d.h. eine in einem Weltkoordinatensystem angegebene Position) jedes der beweglichen Elemente des Roboters 2 erkennen, und zwar auf der Grundlage des Drehbetrags des Servomotors 35 von einer Position aus, in der der Roboter 2 eine Referenzlage einnimmt, und kann eine Position und eine Ausrichtung der Kamera 4 im Weltkoordinatensystem erkennen, und zwar auf der Grundlage einer Beziehung zwischen der erkannten absoluten Position und einer Anbringungsposition der Kamera 4 und einer Ausrichtung der Kamera 4. Sodann kann die Präzisionserkennungseinheit 42 eine Peilung von der Kamera 4 in Richtung des Werkstücks 10 im Weltkoordinatensystem bestimmen, und zwar auf der Grundlage des Schwerpunkts des Bereichs, in dem das Werkstück 10 auf dem Bild dargestellt ist. Außerdem kann, wenn eine Position eines das Werkstück 10 transportierenden Förderbandes im Weltkoordinatensystem und eine Dicke des Werkstücks 10 bekannt sind (diese Werte werden z.B. vorher im Speicher 33 abgespeichert), die Präzisionserkennungseinheit 42 eine Position der Kamera 4 im Weltkoordinatensystem bestimmen und so einen Abstand von der Kamera 4 zum das Werkstück 10 transportierenden Förderband in der Peilung von der Kamera 4 zum Werkstück 10 berechnen. Die Präzisionserkennungseinheit 42 kann sodann als Abstand von der Kamera 4 zum Werkstück 10 einen Wert erhalten, der durch Subtraktion der Dicke des Werkstücks 10 von dem berechneten Abstand berechnet wird. Die Präzisionserkennungseinheit 42 kann eine Position des Werkstücks 10 in einem realen Raum von der Peilung von der Kamera 4 in Richtung des Werkstücks 10 und dem Abstand zum Werkstück 10, die auf diese Weise erhalten werden, erkennen.
  • Die Präzisionserkennungseinheit 42 gibt die erkannte Position und die erkannte Lage des Werkstücks 10 an die Bestimmungseinheit 43 und die Arbeitssteuereinheit 45 aus.
  • Die Bestimmungseinheit 43 bestimmt, jedes Mal, wenn ein Bild von der Kamer 4 erhalten wird, ob die Kamera 4 und das Werkstück 10 eine vorgegebene Positionsbeziehung erfüllen oder nicht. Die vorgegebene Positionsbeziehung kann so festgelegt werden, dass beispielsweise ein Abstand zwischen der Kamera 4 und dem Werkstück 10 gleich oder kleiner als ein vorgegebener Abstand ist. Zum Beispiel kann der vorgegebene Abstand ein Abstand zwischen der Kamera 4 und dem Werkstück 10 sein, der einer Größe des Werkstücks 10 entspricht, das auf einer von der Präzisionserkennungseinheit 42 verwendeten Schablone dargestellt ist. Wenn beispielsweise die Robusterkennungseinheit 41 eine Position des Werkstücks 10 für das neueste Bild erkannt hat, so vergleicht die Bestimmungseinheit 43 einen geschätzten Abstand von der Kamera 4 zum Werkstück 10, der von der Robusterkennungseinheit 41 berechnet wurde, mit dem vorgegebenen Abstand. Wenn dann der geschätzte Abstand gleich oder kleiner als der vorgegebene Abstand ist, so bestimmt die Bestimmungseinheit 43, dass die Kamera 4 und das Werkstück 10 die vorgegebene Positionsbeziehung erfüllen. Dann weist die Bestimmungseinheit 43 die Präzisionserkennungseinheit 42 an, eine Position und eine Lage des Werkstücks 10 für ein als nächstes aufzunehmendes Bild zu erkennen. Wenn andererseits der geschätzte Abstand größer als der vorgegebene Abstand ist, so bestimmt die Bestimmungseinheit 43, dass die Kamera 4 und das Werkstück 10 die vorgegebene Positionsbeziehung nicht erfüllen. Dann weist die Bestimmungseinheit 43 die Robusterkennungseinheit 41 an, eine Position des Werkstücks 10 für ein als nächstes aufzunehmendes Bild zu erkennen.
  • Zu beachten ist, dass in einem Fall, in dem ein Koordinatensystem des Roboters 2 auf der Grundlage eines Bewegungsbetrags des Werkstücks 10 bewegt wird und ein Betriebsprogramm des Roboters 2 so programmiert ist, dass der Roboter 2 auf dem Koordinatensystem arbeitet, die Bestimmungseinheit 43 von der Robusterkennungseinheit 41 auf die Präzisionserkennungseinheit 42 umschalten kann, wenn der Roboter 2 eine vorgegebene Position auf dem Koordinatensystem erreicht.
  • In ähnlicher Weise vergleicht, wenn die Präzisionserkennungseinheit 42 eine Position des Werkstücks 10 für das neueste Bild erkannt hat, die Bestimmungseinheit 43 eine Entfernung von der Kamera 4 zum Werkstück 10, die von der Präzisionserkennungseinheit 42 berechnet wurde, mit der vorgegebenen Entfernung. Wenn dann der Abstand gleich oder kleiner als der vorgegebene Abstand ist, so bestimmt die Bestimmungseinheit 43, dass die Kamera 4 und das Werkstück 10 die vorgegebene Positionsbeziehung erfüllen. Dann weist die Bestimmungseinheit 43 die Präzisionserkennungseinheit 42 an, eine Position und eine Lage des Werkstücks 10 für ein als nächstes aufzunehmendes Bild zu erkennen. Ist der Abstand hingegen größer als der vorgegebene Abstand, so bestimmt die Bestimmungseinheit 43, dass die Kamera 4 und das Werkstück 10 die vorgegebenen Positionsbeziehung nicht erfüllen. Dann weist die Bestimmungseinheit 43 die Robusterkennungseinheit 41 an, eine Position des Werkstücks 10 für ein als nächstes aufzunehmendes Bild zu erkennen.
  • Alternativ kann die vorgegebene Positionsbeziehung so festgelegt werden, dass ein Abstand zwischen der Kamera 4 und dem Werkstück 10 gleich oder kleiner als ein vorgegebener Abstand ist und das Werkstück 10 eine vorgegebene Lage in Bezug auf die Kamera 4 einnimmt. Die vorgegebene Lage kann beispielsweise eine Lage sein, bei der die Kamera 4 sich innerhalb eines vorgegebenen Winkelbereichs von einer Normalen einer vorgegebenen Oberfläche des Werkstücks 10 befindet. Die vorgegebene Oberfläche kann z.B. eine Oberfläche des Werkstücks 10 sein, das auf einer von der Präzisionserkennungseinheit 42 verwendeten Schablone dargestellt ist. In diesem Fall kann, wenn die Robusterkennungseinheit 41 eine Position und eine Lage des Werkstücks 10 für das neueste Bild erkannt hat, die Bestimmungseinheit 43 bestimmen, ob die erkannte Lage eine vorgegebene Lage ist oder nicht. Wenn dann ein geschätzter Abstand von der Kamera 4 zum Werkstück 10, der von der Robusterkennungseinheit 41 berechnet wurde, gleich oder kleiner als der vorgegebene Abstand ist und die Lage des Werkstücks 10 die vorgegebene Lage ist, so bestimmt die Bestimmungseinheit 43, dass die Kamera 4 und das Werkstück 10 die vorgegebene Positionsbeziehung erfüllen. Dann weist die Bestimmungseinheit 43 die Präzisionserkennungseinheit 42 an, eine Position und eine Lage des Werkstücks 10 für ein als nächstes aufzunehmendes Bild zu erkennen. Wenn andererseits der geschätzte Abstand größer als der vorgegebene Abstand ist oder die Lage des Werkstücks 10 nicht die vorgegebene Lage ist, so bestimmt die Bestimmungseinheit 43, dass die Kamera 4 und das Werkstück 10 die vorgegebene Positionsbeziehung nicht erfüllen. Dann weist die Bestimmungseinheit 43 die Robusterkennungseinheit 41 an, eine Position des Werkstücks 10 für ein als nächstes aufzunehmendes Bild zu erkennen.
  • In ähnlicher Weise bestimmt, wenn die Präzisionserkennungseinheit 42 eine Position und eine Lage des Werkstücks 10 für das neueste Bild erkannt hat, die Bestimmungseinheit 43, dass die Kamera 4 und das Werkstück 10 die vorgegebene Positionsbeziehung in einem Fall erfüllen, in dem ein Abstand von der Kamera 4 zum Werkstück 10, der von der Präzisionserkennungseinheit 42 berechnet wurde, gleich oder kleiner als der vorgegebene Abstand ist und die Lage des Werkstücks 10 die vorgegebene Lage ist. Dann weist die Bestimmungseinheit 43 die Präzisionserkennungseinheit 42 an, eine Position und eine Lage des Werkstücks 10 für ein als nächstes aufzunehmendes Bild zu erkennen. Wenn andererseits der Abstand größer als der vorgegebene Abstand ist oder die Lage des Werkstücks 10 nicht die vorgegebene Lage ist, so bestimmt die Bestimmungseinheit 43, dass die Kamera 4 und das Werkstück 10 die vorgegebene Positionsbeziehung nicht erfüllen. Dann weist die Bestimmungseinheit 43 die Robusterkennungseinheit 41 an, eine Position des Werkstücks 10 für ein als nächstes aufzunehmendes Bild zu erkennen.
  • Die Annäherungssteuereinheit 44 steuert das bewegliche Element des Roboters 2 derart, dass die Kamera 4 und das Werkstück 10 die vorgegebene Positionsbeziehung erfüllen, und zwar auf der Grundlage der Position des Werkstücks 10, die von der Robusterkennungseinheit 41 erkannt wird, wenn die Kamera 4 und das Werkstück 10 die vorgegebene Positionsbeziehung nicht erfüllen. Zum Beispiel sagt die Annäherungssteuereinheit 44 eine Position des Werkstücks 10 im Weltkoordinatensystem zu dem Zeitpunkt voraus, an dem ein nächstes Bild erzeugt wird, durch Anwendung eines Vorhersagefilters, wie z.B. eines Kalman-Filters, auf eine Position des Werkstücks 10 in einem realen Raum, die beispielsweise für jedes einer Reihe von Bildern im letzten Zeitraum erkannt wurde. Sodann legt die Annäherungssteuereinheit 44 eine Zielposition fest, bei der die Kamera 4 die vorgegebene Positionsbeziehung von der vorhergesagten Position des Werkstücks 10 aus erfüllt. Die Annäherungssteuereinheit 44 kann den Drehbetrag und eine Drehrichtung des Servomotors 35 so festlegen, dass das bewegliche Element des Roboters 2, an dem die Kamera 4 angebracht ist, betätigt wird, um die Kamera 4 an die Zielposition zu bewegen.
  • Zu diesem Zeitpunkt berechnet die Annäherungssteuereinheit 44 für jedes der Bilder des letzten Zeitraums eine Umrechnungsgleichung vom Kamerakoordinatensystem in das Weltkoordinatensystem, wenn das Bild beispielsweise aus einer Position und einer Ausrichtung der Kamera 4 im Weltkoordinatensystem erzeugt wurde. So kann die Annäherungssteuereinheit 44 beispielsweise für jedes Bild eine absolute Position jedes der beweglichen Elemente des Roboters 2 erkennen, und zwar auf der Grundlage des Betrags der Drehung des Servomotors 35 zum Zeitpunkt der Bilderzeugung aus einer Position jedes der beweglichen Elemente, wenn der Roboter 2 eine Referenzlage einnimmt. Des Weiteren kann die Annäherungssteuereinheit 44 für jedes Bild eine Position und eine Ausrichtung der Kamera 4 im Weltkoordinatensystem erkennen, und zwar auf der Grundlage einer Beziehung zwischen der erkannten absoluten Position und einer Anbringungsposition der Kamera 4 und einer Ausrichtung der Kamera 4, und auf der Grundlage des Erkennungsergebnisses eine Umrechnungsgleichung vom Kamerakoordinatensystem in das Weltkoordinatensystem berechnen. Dann erkennt die Annäherungssteuereinheit 44 für jedes Bild eine im Weltkoordinatensystem angegebene Position des Werkstücks 10, indem sie die Umrechnungsgleichung auf eine zum Zeitpunkt der Bilderzeugung im Kamerakoordinatensystem angegebene Position des Werkstücks 10 anwendet. Sodann kann, wie oben beschrieben, die Annäherungssteuereinheit 44 eine vorgegebene Position des Werkstücks 10 im Weltkoordinatensystem zum Zeitpunkt der Erzeugung eines nächsten Bildes berechnen, durch Anwendung eines Vorhersagefilters auf die erkannte Position des Werkstücks 10 im Weltkoordinatensystem zum Zeitpunkt der Erzeugung eines jeden Bildes.
  • Wenn die vorhergesagte Position des Werkstücks 10 im Weltkoordinatensystem berechnet wird und ein Abstand zwischen der Kamera 4 und dem Werkstück 10 gleich oder kleiner als ein vorgegebener Abstand in der vorgegebene Positionsbeziehung ist, so kann die Annäherungssteuereinheit 44 eine Position mit dem vorgegebenen Abstand von der vorhergesagten Position als Zielposition feststellen. Dann kann die Annäherungssteuereinheit 44 einen Soll-Drehbetrag und eine Soll-Drehrichtung des Servomotors 35 bestimmen, um die Kamera 4 in die Zielposition zu bewegen.
  • Des Weiteren wird angenommen, dass die vorgegebene Positionsbeziehung so festgelegt wird, dass ein Abstand zwischen der Kamera 4 und dem Werkstück 10 gleich oder kleiner als ein vorgegebener Abstand ist, das Werkstück 10 eine vorgegebene Lage in Bezug auf die Kamera 4 einnimmt und eine Position und eine Lage des Werkstücks 10 in einem realen Raum von der Robusterkennungseinheit 41 erkannt werden. In diesem Fall kann die Annäherungssteuereinheit 44 eine Lage des Werkstücks 10 zum Zeitpunkt der Erzeugung eines nächsten Bildes vorhersagen, und zwar auf der Grundlage einer Lage des Werkstücks 10 zum Zeitpunkt der Erzeugung eines jeden Bildes im letzten Zeitraum. Auch in diesem Fall kann die Annäherungssteuereinheit 44 eine Lage des Werkstücks 10 im Weltkoordinatensystem zum Zeitpunkt der Erzeugung eines nächsten Bildes vorhersagen, indem sie einen Vorhersagefilter auf eine Lage des Werkstücks 10 im Weltkoordinatensystem anwendet, wobei die Berechnung stattfindet durch Anwendung der Umrechnungsgleichung vom Kamerakoordinatensystem zum Weltkoordinatensystem auf eine Lage des Werkstücks 10, die im Kamerakoordinatensystem zum Zeitpunkt der Erzeugung eines jeden Bildes im letzten Zeitraum angegeben ist, ähnlich wie oben beschrieben. Sodann kann die Annäherungssteuereinheit 44 eine Zielposition und eine Ziellage der Kamera 4 so berechnen, dass ein Abstand zwischen der Kamera 4 und dem Werkstück 10 gleich oder kleiner als der vorgegebene Abstand ist und das Werkstück 10 die vorgegebene Lage in Bezug auf die Kamera 4 einnimmt, und zwar auf der Grundlage der vorhergesagten Position und der vorhergesagten Lage des Werkstücks 10. Die Annäherungssteuereinheit 44 kann einen Soll-Drehbetrag und eine Soll-Drehrichtung des Servomotors 35 so bestimmen, dass die Kamera 4 in die Zielposition bewegt wird und die Kamera 4 die Ziellage einnimmt.
  • Zu beachten ist, dass die Annäherungssteuereinheit 44 bei stillstehendem Werkstück 10 eine Zielposition und eine Ziellage bestimmen kann, indem sie eine erkannte Position und eine erkannte Lage des Werkstücks 10 zum Zeitpunkt der Erzeugung der neuesten Bilder als die oben beschriebene vorhergesagte Position und die vorhergesagte Lage festlegt, und einen Soll-Drehbetrag und eine Soll-Drehrichtung des Servomotors 35 bestimmen kann.
  • Wenn die Annäherungssteuereinheit 44 den Soll-Drehbetrag und die Soll-Drehrichtung des Servomotors 35 bestimmt, so kann die Annäherungssteuereinheit 44 den Servomotor 35 steuern, wie z.B. in der japanischen Patentanmeldungs-Offenlegungsschrift (Kokai) Nr. 2006-172149 beschrieben. Mit anderen Worten berechnet die Annäherungssteuereinheit 44, bei der Steuerung eines Betriebs des Roboters 2, einen Geschwindigkeitsbefehl, der eine Drehgeschwindigkeit des Servomotors 35 anweist, und zwar auf der Grundlage des Soll-Drehbetrags, der Soll-Drehrichtung, eines Ist-Drehbetrags des Servomotors 35 und ähnlichem. Die Annäherungssteuereinheit 44 führt eine Geschwindigkeitsschleifenregelung durch, und zwar auf der Grundlage des Geschwindigkeitsbefehls und eines Geschwindigkeitsfeedbacks, das durch Differenzierung des Ist-Drehbetrags des Servomotors 35 berechnet wird, um einen Drehmomentbefehl zu berechnen, der einen dem Servomotor 35 zugeführten Strombetrag angibt. Sodann führt die Annäherungssteuereinheit 44 eine Schleifenregelung für einen dem Servomotor 35 zugeführten Strom durch, und zwar auf der Grundlage des Drehmomentbefehls und eines Stromfeedbacks, das von einem in dem Antriebsschaltkreis 32 vorgesehenen Stromdetektor (nicht abgebildet) rückgemeldet wird, um den Servomotor 35 anzutreiben.
  • Die Arbeitssteuereinheit 45 steuert jedes der beweglichen Elemente des Roboters 2 derart, dass sich das Werkzeug 16 des Roboters 2 in eine Position bewegt, in der das Werkzeug 16 Arbeiten an dem Werkstück 10 ausführen kann, und zwar auf der Grundlage einer Position und einer Lage des Werkstücks 10, die von der Präzisionserkennungseinheit 42 erkannt werden, wenn die Kamera 4 und das Werkstück 10 die vorgegebene Positionsbeziehung erfüllen. Zu diesem Zeitpunkt kann die Arbeitssteuereinheit 45, ähnlich wie die Annäherungssteuereinheit 44, eine vorhergesagte Position und eine vorhergesagte Lage des Werkstücks 10 zum Zeitpunkt der Erzeugung eines nächsten Bildes berechnen, durch Anwendung eines Vorhersagefilters, wie z.B. eines Kalman-Filters, auf eine Position des Werkstücks 10 und eine Lage des Werkstücks 10 im Weltkoordinatensystem, die für jedes einer Reihe von Bildern im letzten Zeitraum erkannt wurden. Sodann kann die Arbeitssteuereinheit 45 den Drehbetrag und eine Drehrichtung des Servomotors 35 bestimmen, indem sie eine Zielposition und eine Zielausrichtung des Werkzeugs 16 auf der Grundlage der vorhergesagten Position und der vorhergesagten Lage festlegt.
  • Alternativ kann die Arbeitssteuereinheit 45 jedes der beweglichen Elemente des Roboters 2 dadurch steuern, dass das Werkstück 10 in einem von der Kamera 4 erzeugten Bild an einer vorgegebenen Position und mit einer vorgegebenen Größe dargestellt wird, die einer Position entspricht, in der das Werkzeug 16 Arbeiten an dem Werkstück 10 ausführt. In diesem Fall kann die Arbeitssteuereinheit 45 jedes der beweglichen Elemente des Roboters 2 gemäß einer Technik zur Steuerung eines Roboters auf der Grundlage eines von einer Kamera aufgenommenen Bildes eines Zielobjekts steuern, wie z.B. einem positions- oder merkmalsbasierten Verfahren (siehe beispielsweise Hashimoto, „Vision and Control“, The Society of Instrument and Control Engineers Control Division Convention Workshop, Kyoto, S. 37 bis 68, 2001).
  • Wie oben beschrieben, steuert die Arbeitssteuereinheit 45 das bewegliche Element des Roboters 2 auf der Grundlage einer relativen Position und einer relativen Lage des Werkstücks 10 in Bezug auf die Kamera 4, die mit hoher Genauigkeit erkannt werden, und daher kann die Arbeitssteuereinheit 45 den Roboter 2 so steuern, dass Arbeiten an dem Werkstück 10 angemessen ausgeführt werden.
  • 4 ist ein Diagramm, das einen Überblick über die Verarbeitung der Steuerung der beweglichen Elemente einschließlich der Verarbeitung der Objekterkennung zeigt. In diesem Beispiel wird angenommen, dass eine vorgegebene Positionsbeziehung festgelegt ist, bei der ein Abstand zwischen der Kamera 4 und dem Werkstück 10 gleich oder kleiner als ein vorgegebener Abstand Lth ist. Wie in 4 dargestellt, ist, wenn die Kamera 4 die Position P1 einnimmt, ein Abstand d1 zwischen der Kamera 4 und dem Werkstück 10 größer als der vorgegebene Abstand Lth, und somit erkennt die Robusterkennungseinheit 41 eine Position (oder eine Position und eine Lage) des Werkstücks 10, indem sie einen Klassifikator verwendet. Sodann steuert die Annäherungssteuereinheit 44 das bewegliche Element des Roboters 2 auf der Grundlage des Erkennungsergebnisses und bringt die Kamera 4 nahe an das Werkstück 10 heran. Wenn die Kamera 4 jedoch die Position P2 einnimmt, so ist ein Abstand d2 zwischen der Kamera 4 und dem Werkstück 10 kleiner als der vorgegebene Abstand Lth, und somit erkennt die Präzisionserkennungseinheit 42 eine Position und eine Lage des Werkstücks 10, indem sie eine Schablone verwendet. Sodann steuert die Arbeitssteuereinheit 45 das bewegliche Element des Roboters 2 auf der Grundlage des Erkennungsergebnisses und bewegt das Werkzeug 16, an dem die Kamera 4 angebracht ist, in eine Position, in der das Werkzeug 16 Arbeiten am Werkstück 10 ausführen kann.
  • 5 ist ein Betriebsablaufdiagramm der Verarbeitung der Steuerung der beweglichen Elemente einschließlich der Verarbeitung der Objekterkennung. Der Prozessor 34 führt die Verarbeitung der Steuerung der beweglichen Elemente jedes Mal, wenn ein Bild von der Kamera 4 erhalten wird, gemäß dem unten beschriebenen Betriebsablaufdiagramm aus. Zu beachten ist, dass die Verarbeitung in den Schritten S101 bis 5102 und S104 im folgenden Betriebsablaufdiagramm in die Objekterkennungsverarbeitung miteinbezogen ist.
  • Die Bestimmungseinheit 43 bestimmt, ob die Kamera 4 und das Werkstück 10 eine vorgegebene Positionsbeziehung erfüllen oder nicht, und zwar auf der Grundlage eines Erkennungsergebnis einer Position und einer Lage des Werkstücks 10 zum Zeitpunkt der Erzeugung eines vorhergehenden Bildes (Schritt S101). Wenn die Kamera 4 und das Werkstück 10 die vorgegebene Positionsbeziehung nicht erfüllen (Nein in Schritt S101), so weist die Bestimmungseinheit 43 die Robusterkennungseinheit 41 an, eine Position des Werkstücks 10 zu erkennen. Sodann erkennt die Robusterkennungseinheit 41, durch Eingabe des neuesten Bildes in einen Klassifikator, eine Position des Werkstücks 10 auf dem Bild und erkennt eine Position des Werkstücks 10 in einem realen Raum auf der Grundlage des Erkennungsergebnisses (Schritt S102). Ferner steuert die Annäherungssteuereinheit 44 auf der Grundlage der erkannten Position des Werkstücks 10 das bewegliche Element des Roboters 2 derart, dass die Kamera 4 und das Werkstück 10 die vorgegebene Positionsbeziehung erfüllen (Schritt S103).
  • Wenn andererseits die Kamera 4 und das Werkstück 10 die vorgegebene Positionsbeziehung erfüllen (Ja in Schritt S101), so weist die Bestimmungseinheit 43 die Präzisionserkennungseinheit 42 an, eine Position und eine Lage des Werkstücks 10 zu erkennen. Sodann erkennt die Präzisionserkennungseinheit 42, durch Vergleich des neuesten Bildes mit einer Schablone, eine Position und eine Lage des Werkstücks 10 auf dem Bild und erkennt, auf der Grundlage des Erkennungsergebnisses, eine Position und eine Lage des Werkstücks 10 in einem realen Raum (Schritt S104). Des Weiteren steuert die Arbeitssteuereinheit 45, auf der Grundlage der erkannten Position und der erkannten Lage des Werkstücks 10, das bewegliche Element des Roboters 2 derart, dass das Werkzeug 16 sich in eine Position bewegt, in der das Werkzeug 16 Arbeiten am Werkstück 10 ausführen kann (Schritt S105).
  • Nach dem Schritt S103 oder S105 beendet der Prozessor 34 die Verarbeitung der Steuerung des beweglichen Elements.
  • Wenn, wie oben beschrieben, eine Bildaufnahmeeinheit und ein Zielobjekt eine vorgegebene Positionsbeziehung nicht erfüllen, so erkennt die Objekterkennungsvorrichtung eine Position des Zielobjekts auf robuste Weise, indem sie einen nach einem maschinellen Lernverfahren trainierten Klassifikator verwendet. Wenn andererseits die Bildaufnahmeeinheit und das Zielobjekt die vorgegebene Positionsbeziehung erfüllen, so erkennt die Objekterkennungsvorrichtung eine Position und eine Lage des Zielobjekts auf einem Bild mit hoher Genauigkeit, indem sie mit dem Bild eine im Voraus erhaltene Schablone vergleicht, die ein Merkmal des Erscheinungsbildes des Zielobjekts bei Betrachtung aus einer vorgegebenen Richtung darstellt. So kann die Objekterkennungsvorrichtung das Zielobjekt selbst dann erkennen, wenn sich eine relative Positionsbeziehung des Zielobjekts in Bezug auf die Bildaufnahmeeinheit ändert. Des Weiteren kann die Objekterkennungsvorrichtung eine Position des Zielobjekts in einem realen Raum durch Verwendung nur einer Bildaufnahmeeinheit erkennen, ohne eine Stereoverfahren zur Aufnahme einer Position eines Zielobjekts in einem realen Raum durch Verwendung einer Mehrzahl von Kameras zu verwenden. Des Weiteren steuert, wenn die Bildaufnahmeeinheit und das Zielobjekt die vorgegebene Positionsbeziehung nicht erfüllen, eine Steuervorrichtung eines Roboters, der die Objekterkennungsvorrichtung enthält, ein bewegliches Element des Roboters in der Weise, dass die Bildaufnahmeeinheit und das Zielobjekt die vorgegebene Positionsbeziehung erfüllen, und zwar auf der Grundlage einer unter Verwendung des Klassifikators erkannten Position des Zielobjekts. Wenn andererseits die Bildaufnahmeeinheit und das Zielobjekt die vorgegebene Positionsbeziehung erfüllen, so steuert die Steuervorrichtung das bewegliche Element des Roboters derart, dass am Zielobjekt Arbeiten ausgeführt werden können, und zwar auf der Grundlage einer Position und einer Lage des Zielobjekts, die als Ergebnis eines Schablonenabgleichs (Template Matching) erkannt werden. So kann, selbst dann, wenn sich eine relative Positionsbeziehung zwischen der Bildaufnahmeeinheit und dem Zielobjekt ändert, die Steuervorrichtung das Zielobjekt weiterhin verfolgen und das bewegliche Element des Roboters entsprechend der Positionsbeziehung angemessen steuern.
  • Zu beachten ist, dass, wenn sich eine Form auch durch Drehung um eine zentrale Achse nicht ändert, wie in einem Fall, in dem das Werkstück 10 eine zylindrische Form aufweist, die Präzisionserkennungseinheit 42 möglicherweise, wenn das Werkstück 10 in einer bestimmten Lage oder dergleichen angeordnet ist, eine Lage des Werkstücks 10 auf einem Bild und in einem realen Raum nicht erkennt.
  • Gemäß einem modifizierten Beispiel kann, getrennt von der Kamera 4, eine Positionsinformationsgewinnungseinheit vorgesehen sein, die eine relative Position in Bezug auf das Werkstück 10 angebende Positionsinformationen gewinnt, die zum Erkennen einer Position und einer Lage des Werkstücks 10 durch die Präzisionserkennungseinheit 42 verwendet werden. Beispielsweise können ein oder mehrere Drucksensoren an einer Spitze des Werkzeugs 16 angebracht werden. Der Drucksensor ist ein Beispiel für die Positionsinformationsgewinnungseinheit. In diesem Fall kann die Präzisionserkennungseinheit 42 sich auf eine Referenztabelle beziehen, die eine Beziehung zwischen dem von dem Drucksensor erfassten Druck und einem Abstand zwischen einem vorgegebene Abschnitt des Werkzeugs 16 und dem Werkstück 10 anzeigt, und den Abstand zwischen dem vorgegebene Abschnitt des Werkzeugs 16 und dem Werkstück 10 entsprechend dem erfassten Druck erkennen. Zu beachten ist, dass eine solche Referenztabelle im Speicher 33 beispielsweise im Voraus gespeichert wird. Wie bei der oben beschriebenen Ausführungsform steuert die Arbeitssteuereinheit 45 das bewegliche Element des Roboters 2 auf der Grundlage eines von der Kamera 4 aufgenommenen Bildes, um das Werkzeug 16 in eine Position zu bewegen, in der der Drucksensor in Kontakt mit dem Werkstück 10 treten kann. Anschließend kann die Arbeitssteuereinheit 45 das bewegliche Element des Roboters 2 so steuern, dass vom Drucksensor erfasster Druck einen vorgegebenen Wert hat. In diesem Fall ist der vom Drucksensor erfasste Druck ein Beispiel für die Positionsinformationen.
  • Alternativ kann eine weitere, von der Kamera 4 separate Kamera am bewegliche Element des Roboters 2 angebracht sein, und die Präzisionserkennungseinheit 42 kann eine Position und eine Lage des Werkstücks 10 erkennen, indem sie eine ähnliche Verarbeitung wie bei der oben beschriebenen Ausführungsform auf einem von der separaten Kamera erzeugten Bild ausführt. Alternativ kann ein Abstandssensor, wie z.B. eine Tiefenkamera, an dem beweglichen Element des Roboters 2 angebracht sein. Dann kann die Präzisionserkennungseinheit 42 eine Position und eine Lage des Werkstücks 10 in Bezug auf den Abstandssensor erkennen, und zwar auf der Grundlage eines Messwerts eines Abstands zu jedem Abschnitt des Werkstücks 10, der vom Abstandssensor erfasst wird. Zu beachten ist, dass die separate Kamera und der Abstandssensor ein weiteres Beispiel für die Positionsinformationsgewinnungseinheit sind, und dass ein von der separaten Kamera erzeugtes Bild und ein von dem Abstandssensor gemessener Abstandsmesswert ein weiteres Beispiel für die Positionsinformationen sind.
  • Gemäß einer weiteren Ausführungsform kann die Kamera 4 getrennt vom beweglichen Element des Roboters 2 fest angebracht sein. Beispielsweise kann die Kamera 4 in einem Raum, in dem der Roboter 2 installiert ist, derart an der Decke angebracht sein, dass sie nach unten gerichtet ist. In diesem Fall kann für jedes Pixel eines von der Kamera 4 aufgenommenen Bildes im Voraus im Speicher 33 eine Entfernungstabelle gespeichert werden, die einen Abstand zwischen der Kamera 4 und dem Werkstück 10 angibt, wenn sich das Werkstück 10, von der Kamera 4 aus gesehen, in einer Peilung befindet, die dem Pixel entspricht. Bei der Erkennung eines Bereichs, in dem das Werkstück 10 auf dem Bild dargestellt ist, können die Robusterkennungseinheit 41 und Präzisionserkennungseinheit 42 eine Position des Werkstücks 10 in einem realen Raum erkennen, indem sie auf die Entfernungstabelle Bezug nehmen und eine Entfernung, die einem Pixel entspricht, in dem sich der Schwerpunkt des Bereichs befindet, als Abstand von der Kamera 4 zum Werkstück 10 abschätzen. Da sich eine Position der Kamera 4 nicht ändert, können in diesem Fall die Robusterkennungseinheit 41 und die Präzisionserkennungseinheit 42 außerdem leicht eine Position und eine Lage des Werkstücks 10 im Weltkoordinatensystem erkennen, indem sie die Umrechnungsgleichung vom Kamerakoordinatensystem in Bezug auf die Position der Kamera 4 zum Weltkoordinatensystem auf eine im Kamerakoordinatensystem angegebene Position und Lage des Werkstücks 10 anwenden. Dann können die Annäherungssteuereinheit 44 und die Arbeitssteuereinheit 45 das bewegliche Element des Roboters 2 ähnlich wie bei der oben beschriebenen Ausführungsform auf der Grundlage der im Weltkoordinatensystem angegebenen Position und Lage des Werkstücks 10 steuern.
  • Gemäß noch einer weiteren Ausführungsform kann die Objekterkennungsvorrichtung getrennt von der Steuervorrichtung des Roboters 2 vorgesehen sein.
  • 6 ist eine schematische Konfigurationszeichnung eines Robotersystems 100 nach dem modifizierten Beispiel. Das Robotersystem 100 umfasst einen Roboter 2, eine Steuervorrichtung 3, die den Roboter 2 steuert, eine Kamera 4, die an einem beweglichen Element des Roboters 2 angebracht ist und zum Aufnehmen eines ein Beispiel für ein Zielobjekt darstellenden Werkstücks 10 verwendet wird, und eine Objekterkennungsvorrichtung 6. Der Roboter 2 und das Steuergerät 3 sind über eine Kommunikationsleitung 5 in Kommunikationsverbindung. Ferner sind die Kamera 4 und die Objekterkennungsvorrichtung 6 über eine Kommunikationsleitung 7 in Kommunikationsverbindung und die Steuervorrichtung 3 und die Objekterkennungsvorrichtung 6 sind über eine Kommunikationsleitung 8 in Kommunikationsverbindung. Zu beachten ist, dass die Kamera 4, die Steuervorrichtung 3 und die Objekterkennungsvorrichtung 6 über ein Kommunikationsnetzwerk in Übereinstimmung mit einem vorgegebenen Kommunikationsstandard in Kommunikationsverbindung miteinander sein können.
  • Das Robotersystem 100 unterscheidet sich von dem in 1 dargestellten Robotersystem 1 dadurch, dass die Objekterkennungsvorrichtung 6 getrennt von der Steuervorrichtung 3 vorgesehen ist. Daher werden im Folgenden die Objekterkennungsvorrichtung 6 und ein dazu zugehöriger Teil beschrieben.
  • 7 ist eine schematische Konfigurationszeichnung der Objekterkennungsvorrichtung 6. Die Objekterkennungsvorrichtung 6 enthält eine Kommunikationsschnittstelle 61, einen Speicher 62 und einen Prozessor 63. Des Weiteren kann die Objekterkennungsvorrichtung 6 eine Benutzerschnittstelle (nicht abgebildet), wie z.B. ein Touchpanel, enthalten.
  • Die Kommunikationsschnittstelle 61 enthält beispielsweise eine Kommunikationsschnittstelle, um die Objekterkennungsvorrichtung 6 an die Kommunikationsleitung 7 und die Kommunikationsleitung 8 anzuschließen, einen Schaltkreis zum Ausführen von Verarbeitungen im Zusammenhang mit der Übertragung und dem Empfang eines Signals über die Kommunikationsleitung 7 und die Kommunikationsleitung 8, und dergleichen. Dann empfängt die Kommunikationsschnittstelle 61 beispielsweise ein Bild von der Kamera 4 über die Kommunikationsleitung 7 und übermittelt das empfangene Bild an den Prozessor 63. Ferner empfängt die Kommunikationsschnittstelle 61 von der Steuervorrichtung 3 Informationen, die eine Position und eine Ausrichtung der Kamera 4 angeben, die auf der Grundlage einer absoluten Position jedes beweglichen Elements zum Zeitpunkt der Erzeugung jedes Bildes bestimmt wurden, und übermittelt die empfangenen Informationen an den Prozessor 63. Außerdem empfängt die Kommunikationsschnittstelle 61 vom Prozessor 63 Informationen, die eine erkannte Position und eine erkannte Lage des Werkstücks 10 anzeigen, und gibt die empfangenen Informationen über die Kommunikationsleitung 8 an die Steuervorrichtung 3 aus.
  • Der Speicher 62 ist ein weiteres Beispiel für eine Speichereinheit und enthält beispielsweise einen lesbaren und beschreibbaren Halbleiterspeicher und einen Festwert-Halbleiterspeicher. Außerdem kann der Speicher 62 ein Speichermedium, wie z.B. eine Halbleiter-Speicherkarte, eine Festplatte oder ein optisches Speichermedium, aufweisen, sowie eine Vorrichtung, die auf das Speichermedium zugreift.
  • Der Speicher 62 speichert verschiedene Informationen, die bei der durch den Prozessor 63 der Objekterkennungsvorrichtung 6 ausgeführten Verarbeitung der Objekterkennung verwendet werden, wie z.B. einen Parametersatz, der einen Klassifikator definiert, eine Schablone, die zum Erkennen des Werkstücks 10 verwendet wird, einen Kameraparameter und ein von der Kamera 4 empfangenes Bild. Des Weiteren speichert der Speicher 62 Informationen, die eine Position und eine Lage des Werkstücks 10 anzeigen, die als Ergebnis der Objekterkennungsverarbeitung erkannt wurden.
  • Der Prozessor 63 stellt ein Beispiel für eine Steuereinheit dar und weist zum Beispiel eine Zentraleinheit (CPU) und eine Peripherieschaltung der CPU auf. Außerdem kann der Prozessor 63 einen Prozessor für eine Rechenoperation aufweisen. Der Prozessor 63 führt dann die Objekterkennungsverarbeitung aus. Mit anderen Worten, jedes Mal wenn der Prozessor 63 ein Bild von der Kamera 4 empfängt, kann der Prozessor 63 die Verarbeitung der Robusterkennungseinheit 41, der Präzisionserkennungseinheit 42 und der Bestimmungseinheit 43 unter den Einheiten des Prozessors 34 der in 3 dargestellten Steuervorrichtung 3 ausführen. Sodann gibt der Prozessor 63 über die Kommunikationsschnittstelle 61 und die Kommunikationsleitung 8 Informationen, die eine erkannte Position und eine erkannte Lage des Werkstücks 10 anzeigen, an die Steuervorrichtung 3 aus. Zu beachten ist, dass der Prozessor 63 Informationen, die ein Bestimmungsergebnis anzeigen, ob die Kamera 4 und das Werkstück 10 eine vorgegebene Positionsbeziehung erfüllen oder nicht, in die Informationen aufnehmen kann, die die erkannte Position und die erkannte Lage des Werkstücks 10 anzeigen. Der Prozessor 34 der Steuervorrichtung 3 kann die Verarbeitung der Annäherungssteuereinheit 44 und der Arbeitssteuereinheit 45 auf der Grundlage der empfangenen Position und der empfangenen Lage des Werkstücks 10 ausführen.
  • Gemäß dem modifizierten Beispiel werden die Verarbeitung der Objekterkennung und die Steuerung des Roboters durch getrennte Vorrichtungen ausgeführt, wodurch eine Rechenbelastung des Prozessors der Steuervorrichtung des Roboters verringert wird.
  • Eine Robusterkennungseinheit 41 des Prozessors 63 kann nur eine Position des Werkstücks 10 auf jedem von der Kamera 4 empfangenen Bild oder eine Position und eine Lage des Werkstücks 10 auf jedem Bild erkennen, und kann eine Position und eine Lage des Werkstücks 10 in einem realen Raum nicht erkennen. Ebenso kann eine Präzisionserkennungseinheit 42 des Prozessors 63 nur eine Position des Werkstücks 10 auf jedem von der Kamera 4 empfangenen Bild oder eine Position und eine Lage des Werkstücks 10 auf jedem Bild erkennen, und kann eine Position und eine Lage des Werkstücks 10 im realen Raum nicht erkennen. In diesem Fall kann der Prozessor 63 die Position und die Lage des Werkstücks 10 auf dem Bild über die Kommunikationsschnittstelle 61 und die Kommunikationsleitung 8 an die Steuervorrichtung 3 ausgeben. Sodann kann der Prozessor 34 der Steuervorrichtung 3 die Verarbeitung des Erkennens der Position und der Lage des Werkstücks 10 im realen Raum ausführen, und zwar auf der Grundlage der Position und der Lage des Werkstücks 10 auf dem Bild in der Robusterkennungseinheit 41 und der Präzisionserkennungseinheit 42.
  • Gemäß noch einem weiteren modifizierten Beispiel können eine Mehrzahl von Servern, in denen die Kamera 4 und das Steuergerät 3 in Kommunikationsverbindung miteinander stehen, die Verarbeitung der Objekterkennung ausführen. In diesem Fall kann beispielsweise ein beliebiger der Mehrzahl von Servern die Verarbeitung der Robusterkennungseinheit 41, ein anderer der Mehrzahl von Servern die Verarbeitung der Präzisionserkennungseinheit 42 und noch ein weiterer der Mehrzahl von Servern die Verarbeitung der Bestimmungseinheit 43 ausführen.
  • Außerdem kann ein Computerprogramm zum Ausführen der Verarbeitung jeder Einheit des Prozessors 34 der Steuervorrichtung 3 in Form einer Aufzeichnung auf einem computerlesbaren tragbaren Aufzeichnungsmedium, wie z.B. einem Halbleiterspeicher, einem magnetischen Aufzeichnungsmedium oder einem optischen Aufzeichnungsmedium, vorliegen.
  • Sämtliche Beispiele und die hier aufgeführten Bedingungsbegriffe dienen dem Zweck des Lehrens, um dem Leser die vom Erfinder zu dieser Erfindung beigetragenen Konzepte leichter verständlich zu machen und den Stand der Technik voranzubringen, und sind so auszulegen, dass sie nicht auf diese spezifisch genannten Beispiele und Bedingungen beschränkt sind. Außerdem bezieht sich die Organisation solcher Beispiele in der Beschreibung nicht auf die Darstellung der Über- und Unterlegenheit der Erfindung. Obwohl die Ausführungsform der vorliegenden Erfindung ausführlich beschrieben ist, versteht es sich, dass verschiedene Änderungen, Ersetzungen und Abwandlungen daran vorgenommen werden können, ohne vom Geist und vom Umfang der Erfindung abzuweichen.
  • 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 6376296 [0002]

Claims (9)

  1. Objekterkennungsvorrichtung, die aufweist: eine Speichereinrichtung (33), die eine Schablone speichert, die ein Merkmal eines Erscheinungsbildes eines Zielobjekts (10) darstellt, wenn das Zielobjekt (10) aus einer vorgegebenen Richtung betrachtet wird; eine Robusterkennungseinheit (41), die, wenn eine Bildaufnahmeeinheit (4), die das Zielobjekt (10) aufnimmt und ein das Zielobjekt (10) darstellendes Bild erzeugt, und das Zielobjekt (10) eine vorgegebene Positionsbeziehung nicht erfüllen, eine Position des Zielobjekts (10) auf dem Bild erkennt, indem sie das Bild in einen Klassifikator eingibt, der zuvor so trainiert wurde, dass er das Zielobjekt (10) aus dem Bild erkennt; und eine Präzisionserkennungseinheit (42), die, wenn die Bildaufnahmeeinheit (4) und das Zielobjekt (10) die vorgegebene Positionsbeziehung erfüllen, eine Position des Zielobjekts (10) auf dem Bild erkennt, indem sie das Bild mit der Schablone vergleicht.
  2. Objekterkennungsvorrichtung nach Anspruch 1, bei der die Robusterkennungseinheit (41) auf der Grundlage der erkannten Position des Zielobjekts (10) auf dem Bild eine Lage des Zielobjekts (10) in einem realen Raum erkennt, und die Präzisionserkennungseinheit (42) auf der Grundlage der erkannten Position des Zielobjekts (10) auf dem Bild eine Position des Zielobjekts (10) in einem realen Raum erkennt.
  3. Objekterkennungsvorrichtung nach Anspruch 2, bei der die Präzisionserkennungseinheit (42) eine Position und eine Lage des Zielobjekts (10) auf dem Bild gemäß einer relativen Positionsbeziehung der Schablone in Bezug auf das Bild erkennt, wenn das Bild und die Schablone den höchsten Grad an Übereinstimmung aufweisen, und eine Position und eine Lage des Zielobjekts (10) in einem realen Raum erkennt, auf der Grundlage der Position und der Lage des Zielobjekts (10) auf dem Bild.
  4. Objekterkennungsvorrichtung nach Anspruch 2 oder 3, bei der weiterhin der Klassifikator so trainiert wurde, dass er eine Lage des auf dem Bild dargestellten Zielobjekts (10) erkennt, und die Robusterkennungseinheit (41) eine Position und eine Lage des Zielobjekts (10) auf dem Bild erkennt, indem sie das Bild in den Klassifikator eingibt, und eine Position und eine Lage des Zielobjekts (10) in einem realen Raum erkennt, auf der Grundlage der Position und der Lage des Zielobjekts (10) auf dem Bild.
  5. Objekterkennungsvorrichtung nach einem der Ansprüche 2 bis 4, die ferner aufweist eine Bestimmungseinheit (43), die, auf der Grundlage einer Position des Zielobjekts (10) und einer Position der Bildaufnahmeeinheit (4) im realen Raum, bestimmt, ob die Bildaufnahmeeinheit (4) und das Zielobjekt (10) die vorgegebene Positionsbeziehung erfüllen oder nicht, die Robusterkennungseinheit (41) veranlasst, eine Position des Zielobjekts (10) auf dem Bild zu erkennen, wenn die Bildaufnahmeeinheit (4) und das Zielobjekt (10) die vorgegebene Positionsbeziehung nicht erfüllen, und andererseits die Präzisionserkennungseinheit (42) veranlasst, eine Position des Zielobjekts (10) auf dem Bild zu erkennen, wenn die Bildaufnahmeeinheit (4) und das Zielobjekt (10) die vorgegebene Positionsbeziehung erfüllen.
  6. Steuervorrichtung einer automatischen Maschine (2), die mindestens ein bewegliches Element (12 bis 16) enthält, wobei die Steuervorrichtung aufweist: eine Speichereinrichtung (33), die eine Schablone speichert, die ein Merkmal eines Erscheinungsbildes eines Zielobjekts (10) als Arbeitsziel der automatischen Maschine (2) darstellt, wenn das Zielobjekt (10) aus einer vorgegebenen Richtung betrachtet wird; eine Robusterkennungseinheit (41), die, wenn eine an dem beweglichen Element (12 bis 16) angebrachte, das Zielobjekt (10) aufnehmende und ein das Zielobjekt (10) darstellendes Bild erzeugende Bildaufnahmeeinheit (4) und das Zielobjekt (10) eine vorgegebene Positionsbeziehung nicht erfüllen, eine Position des Zielobjekts (10) auf dem Bild erkennt, indem sie das Bild in einen Klassifikator eingibt, der zuvor so trainiert wurde, dass er das Zielobjekt (10) aus dem Bild erkennt, und eine Position des Zielobjekts (10) in einem realen Raum erkennt, auf der Grundlage der Position des Zielobjekts (10) auf dem Bild; eine Präzisionserkennungseinheit (42), die, wenn die Bildaufnahmeeinheit (4) und das Zielobjekt (10) die vorgegebene Positionsbeziehung erfüllen, eine Position des Zielobjekts (10) auf dem Bild erkennt, indem sie das Bild mit der Schabtone vergleicht, eine Position des Zielobjekts (10) in einem realen Raum erkennt, auf der Grundlage des Zielobjekts (10) auf dem Bild, oder eine Position des Zielobjekts (10) in einem realen Raum erkennt, auf der Grundlage von Positionsinformationen, die eine relative Position in Bezug auf das Zielobjekt (10) angeben und von einer Positionsinformationsgewinnungseinheit gewonnen werden, die die Positionsinformationen gewinnt; eine Annäherungssteuereinheit (44), die das bewegliche Element (12 bis 16) derart steuert, dass die Bildaufnahmeeinheit und das Zielobjekt (10) die vorgegebene Positionsbeziehung erfüllen, auf der Grundlage der Position des Zielobjekts (10) in einem realen Raum, die von der Robusterkennungseinheit (41) erkannt wird, wenn die Bildaufnahmeeinheit (4) und das Zielobjekt (10) die vorgegebene Positionsbeziehung nicht erfüllen; und eine Arbeitssteuereinheit (45), die das bewegliche Element (12 bis 16) so steuert, dass das bewegliche Element (12 bis 16) in eine Position bewegt wird, in der die automatische Maschine (2) vorgegebene Arbeiten an dem Zielobjekt (10) ausführen kann, auf der Grundlage der Position des Zielobjekts (10) in einem realen Raum, die von der Präzisionserkennungseinheit (42) erkannt wird, wenn die Bildaufnahmeeinheit (4) und das Zielobjekt (10) die vorgegebene Positionsbeziehung erfüllen.
  7. Steuervorrichtung nach Anspruch 6, bei der die vorgegebene Positionsbeziehung so festgelegt wird, dass ein Abstand zwischen der Bildaufnahmeeinheit (4) und dem Zielobjekt (10) gleich oder kleiner als ein vorgegebener Abstand ist.
  8. Steuervorrichtung nach Anspruch 6, bei der die vorgegebene Positionsbeziehung so festgelegt wird, dass ein Abstand zwischen der Bildaufnahmeeinheit (4) und dem Zielobjekt (10) gleich oder kleiner als ein vorgegebener Abstand ist, und das Zielobjekt (10) eine vorgegebene Lage in Bezug auf die Bildaufnahmeeinheit (4) einnimmt, der Klassifikator weiterhin so trainiert wurde, dass er eine Lage des auf dem Bild dargestellten Zielobjekts (10) erkennt, und die Robusterkennungseinheit (41) eine Position und eine Lage des Zielobjekts (10) auf dem Bild erkennt, indem sie das Bild in den Klassifikator eingibt, und eine Position und eine Lage des Zielobjekts (10) in einem realen Raum erkennt, auf der Grundlage der Position und der Lage des Zielobjekts (10) auf dem Bild, und die Annäherungssteuereinheit (44) das bewegliche Element (12 bis 16) derart steuert, dass ein Abstand zwischen der Bildaufnahmeeinheit (4) und dem Zielobjekt (10) gleich oder kleiner als der vorgegebene Abstand ist, und das Zielobjekt (10) die vorgegebene Lage in Bezug auf die Bildaufnahmeeinheit einnimmt, auf der Grundlage der von der Robusterkennungseinheit (41) erkannten Position und Lage des Zielobjekts (10) in einem realen Raum.
  9. Objekterkennungscomputerprogramm, das einen Computer veranlasst die folgenden Schritte auszuführen: Erkennen, wenn eine ein Zielobjekt (10) aufnehmende und ein das Zielobjekt (10) darstellendes Bild erzeugende Bildaufnahmeeinheit (4) und das Zielobjekt (10) eine vorgegebene Positionsbeziehung nicht erfüllen, einer Position des Zielobjekts (10) auf dem Bild, indem das Bild in einen Klassifikator eingegeben wird, der zuvor so angelernt wurde, dass er das Zielobjekt (10) aus dem Bild erkennt; und Erkennen, wenn die Bildaufnahmeeinheit (4) und das Zielobjekt (10) die vorgegebene Positionsbeziehung erfüllen, einer Position des Zielobjekts (10) auf dem Bild, indem mit dem Bild eine Schablone verglichen wird, die ein Merkmal eines Erscheinungsbildes des Zielobjekts (10) darstellt, wenn das Zielobjekt (10) aus einer vorgegebenen Richtung betrachtet wird.
DE102020000964.6A 2019-02-22 2020-02-14 Objekterkennungsvorrichtung, Steuervorrichtung und Objekterkennungscomputerprogramm Pending DE102020000964A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019030506A JP6978454B2 (ja) 2019-02-22 2019-02-22 物体検出装置、制御装置及び物体検出用コンピュータプログラム
JP2019-030506 2019-02-22

Publications (1)

Publication Number Publication Date
DE102020000964A1 true DE102020000964A1 (de) 2020-08-27

Family

ID=72139035

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020000964.6A Pending DE102020000964A1 (de) 2019-02-22 2020-02-14 Objekterkennungsvorrichtung, Steuervorrichtung und Objekterkennungscomputerprogramm

Country Status (4)

Country Link
US (1) US11285624B2 (de)
JP (1) JP6978454B2 (de)
CN (1) CN111604942A (de)
DE (1) DE102020000964A1 (de)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021109334A1 (de) 2021-04-14 2022-10-20 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021109332A1 (de) 2021-04-14 2022-10-20 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle
DE102021109336A1 (de) 2021-04-14 2022-10-20 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021109333A1 (de) 2021-04-14 2022-10-20 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021130535B3 (de) 2021-11-22 2023-05-17 Helmut Gutzmann System und Verfahren zur Positionierung einer bewegbaren Manipulatoreinheit

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7122821B2 (ja) * 2017-12-15 2022-08-22 川崎重工業株式会社 ロボットシステム及びロボット制御方法
JP7135495B2 (ja) * 2018-06-26 2022-09-13 セイコーエプソン株式会社 三次元計測装置、制御装置およびロボットシステム
US11845616B1 (en) * 2020-08-11 2023-12-19 Amazon Technologies, Inc. Flattening and item orientation correction device
CN112720431A (zh) * 2021-01-13 2021-04-30 东南大学 一种六轴机械臂
JP2022138329A (ja) * 2021-03-10 2022-09-26 オムロン株式会社 認識装置、ロボット制御システム、認識方法、およびプログラム
CN116551701B (zh) * 2023-07-10 2023-10-10 珠海格力电器股份有限公司 机器人控制方法、装置、电子设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005056300A (ja) * 2003-08-07 2005-03-03 Yaskawa Electric Corp 視覚フィードバック装置及び方法
CN101396829A (zh) 2007-09-29 2009-04-01 株式会社Ihi 机器人装置的控制方法以及机器人装置
JP5800494B2 (ja) * 2010-11-19 2015-10-28 キヤノン株式会社 特定領域選択装置、特定領域選択方法及びプログラム
WO2015091015A2 (en) * 2013-12-19 2015-06-25 Koninklijke Philips N.V. Object tracking device
US9349076B1 (en) * 2013-12-20 2016-05-24 Amazon Technologies, Inc. Template-based target object detection in an image
US9424470B1 (en) * 2014-08-22 2016-08-23 Google Inc. Systems and methods for scale invariant 3D object detection leveraging processor architecture
JP2018126799A (ja) 2017-02-06 2018-08-16 セイコーエプソン株式会社 制御装置、ロボットおよびロボットシステム
US11440184B2 (en) * 2017-02-09 2022-09-13 Mitsubishi Electric Corporation Position control device and position control method
US11173613B2 (en) 2017-02-09 2021-11-16 Mitsubishi Electric Corporation Position control device and position control method
JP6542824B2 (ja) * 2017-03-13 2019-07-10 ファナック株式会社 入力画像から検出した対象物の像の尤度を計算する画像処理装置および画像処理方法
JP2018167334A (ja) * 2017-03-29 2018-11-01 セイコーエプソン株式会社 教示装置および教示方法
JP6546618B2 (ja) 2017-05-31 2019-07-17 株式会社Preferred Networks 学習装置、学習方法、学習モデル、検出装置及び把持システム
JP2018158439A (ja) 2018-03-15 2018-10-11 株式会社東芝 物体ハンドリング装置、制御装置、および較正方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021109334A1 (de) 2021-04-14 2022-10-20 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021109332A1 (de) 2021-04-14 2022-10-20 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle
DE102021109336A1 (de) 2021-04-14 2022-10-20 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021109333A1 (de) 2021-04-14 2022-10-20 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021109334B4 (de) 2021-04-14 2023-05-25 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021109336B4 (de) 2021-04-14 2023-06-01 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021109333B4 (de) 2021-04-14 2023-07-06 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021109332B4 (de) 2021-04-14 2023-07-06 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Steuern eines Roboters zum Einsetzen eines Objekts in eine Einsetzstelle
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
CN111604942A (zh) 2020-09-01
JP2020135623A (ja) 2020-08-31
US20200269448A1 (en) 2020-08-27
US11285624B2 (en) 2022-03-29
JP6978454B2 (ja) 2021-12-08

Similar Documents

Publication Publication Date Title
DE102020000964A1 (de) Objekterkennungsvorrichtung, Steuervorrichtung und Objekterkennungscomputerprogramm
DE102018200155B4 (de) Kalibrationsvorrichtung, Kalibrationsverfahren und Programm für einen visuellen Sensor
DE102017123877B4 (de) Robotersystem
DE102015101710B4 (de) Verfahren zum Kalibrieren eines beweglichen Greiforgans unter Verwendung einer entfernten Digitalkamera
DE60127644T2 (de) Lehrvorrichtung für einen Roboter
DE102010045752B4 (de) Visuelles Wahrnehmungssystem und -verfahren für einen humanoiden Roboter
DE102017128543B4 (de) Störbereich-einstellvorrichtung für einen mobilen roboter
DE102021103726B4 (de) Messparameter-Optimierungsverfahren und -vorrichtung sowie Computersteuerprogramm
DE102019131284B4 (de) Robotersystem und Koordinatenumwandlungsverfahren
DE102018121481A1 (de) Entfernungsmesssystem und Entfernungsmessverfahren
WO2022101178A1 (de) Vorrichtung und verfahren zur vermessung, inspektion oder bearbeitung von objekten
DE102019215237A1 (de) Steuersystem
DE102022130652A1 (de) Anlernen eines roboters durch vorführen mit visualservoing
EP3543901B1 (de) Vorrichtung und verfahren zur robusten ermittlung der position, ausrichtung, identität und ausgewählter zustandsinformationen von objekten
DE102020121396A1 (de) Objektdetektionsvorrichtung und Objektdetektionscomputerprogramrn
DE102020209080A1 (de) Bildverarbeitungssystem
EP3872587A1 (de) Kollisionsvermeidung im arbeitsraum eines koordinatenmessgeräts
EP3582140B1 (de) System zur automatischen erkennung von laborarbeitsgegenständen sowie verfahren zum betrieb eines systems zur automatischen erkennung von laborgegenständen
DE112021001048T5 (de) Steuervorrichtung und steuerverfahren für einen roboter, robotersystem sowie vorrichtung und verfahren zum erzeugen eines betriebsprogramms eines roboters
DE102021212860B4 (de) Verfahren zum Aufnehmen eines Objekts mittels eines Roboters
DE102021002363B3 (de) Gerät für eine lageunabhängige optische Oberflächeninspektion
DE102022119057A1 (de) System zum Ermitteln des Abstands eines Objekts
DE202022104312U1 (de) System zum Ermitteln des Abstands eines Objekts
WO2007048674A1 (de) System und verfahren für ein kamerabasiertes tracking
DE112021005072T5 (de) Vorrichtung und Verfahren zur Justierung von Bildgebungsbedingung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06K0009000000

Ipc: G06V0010000000