DE112021001440T5 - Dreidimensionales Messgerät, das aus einem von mehreren Kameras aufgenommenen Bild Positionsinformationen für eine Objektoberfläche erzeugt - Google Patents

Dreidimensionales Messgerät, das aus einem von mehreren Kameras aufgenommenen Bild Positionsinformationen für eine Objektoberfläche erzeugt Download PDF

Info

Publication number
DE112021001440T5
DE112021001440T5 DE112021001440.4T DE112021001440T DE112021001440T5 DE 112021001440 T5 DE112021001440 T5 DE 112021001440T5 DE 112021001440 T DE112021001440 T DE 112021001440T DE 112021001440 T5 DE112021001440 T5 DE 112021001440T5
Authority
DE
Germany
Prior art keywords
image
block
pixel
contour
selection
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
DE112021001440.4T
Other languages
English (en)
Inventor
Kouta I
Junichirou Yoshida
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 DE112021001440T5 publication Critical patent/DE112021001440T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B21/00Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant
    • G01B21/02Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant for measuring length, width, or thickness
    • G01B21/04Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant for measuring length, width, or thickness by measuring coordinates of points
    • G01B21/047Accessories, e.g. for positioning, for tool-setting, for measuring probes
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B5/00Measuring arrangements characterised by the use of mechanical techniques
    • G01B5/004Measuring arrangements characterised by the use of mechanical techniques for measuring coordinates of points
    • G01B5/008Measuring arrangements characterised by the use of mechanical techniques for measuring coordinates of points using coordinate measuring machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • 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
    • 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/761Proximity, similarity or dissimilarity measures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

Es wird eine dreidimensionale Messvorrichtung bereitgestellt, die die Genauigkeit der Positionsinformationen für eine Oberfläche eines Objekts verbessert. Eine Steuervorrichtung 2 enthält eine Verarbeitungseinheit 51 zur Verarbeitung eines ersten Bildes, das von einer ersten Kamera 31 aufgenommen wurde, und eines zweiten Bildes, das von einer zweiten Kamera 32 aufgenommen wurde. Die Verarbeitungseinheit 51 führt eine Steuerung unter Verwendung eines Blockabgleichs durch. Ein erster Bestimmungswert für einen Blockvergleich und ein zweiter Bestimmungswert, der größer als der erste Bestimmungswert ist, werden im Voraus bestimmt. Die Verarbeitungseinheit 51 erzeugt ein erstes Abstandsbild unter Verwendung des ersten Bestimmungswertes und ein zweites Abstandsbild unter Verwendung des zweiten Bestimmungswertes. Die Verarbeitungseinheit 51 übernimmt Abstandsinformationen für ein im ersten Abstandsbild enthaltenes Pixel für einen Bereich, der der Kontur eines Werkstücks entspricht, und Abstandsinformationen für ein im zweiten Abstandsbild enthaltenes Pixel für einen anderen Bereich als den Bereich, der der Kontur entspricht, um ein synthetisiertes Abstandsbild zu erzeugen.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung bezieht sich auf eine dreidimensionale Messvorrichtung, die Positionsinformationen einer Oberfläche eines Objekts auf der Grundlage von Bildern erzeugt, die von einer Vielzahl von Kameras aufgenommen wurden.
  • HINTERGRUNDKUNST
  • Aus dem Stand der Technik ist eine dreidimensionale Messvorrichtung bekannt, die ein Bild mit einem Bildsensor aufnimmt und auf der Grundlage des erhaltenen Bildes Positionsinformationen über die Oberfläche eines Objekts ermittelt. Als Bildsensor, der eine dreidimensionale Position erfasst, ist eine Stereokamera mit zwei zweidimensionalen Kameras bekannt. Bei der Verarbeitung des von der Stereokamera aufgenommenen Bildes wird ein Abstand von der Stereokamera zum Objekt auf der Grundlage der Parallaxe zwischen den Positionen des Objekts in einem von einer Kamera aufgenommenen Bild und einem von der anderen Kamera aufgenommenen Bild berechnet. Darüber hinaus können die dreidimensionalen Positionen von Messpunkten auf der Oberfläche des Objekts auf der Grundlage des Abstands zum Objekt und der Positionen der beiden Kameras berechnet werden.
  • Bei der Verarbeitung des Bildes der Stereokamera muss die Position des Objekts in dem von der anderen Kamera aufgenommenen Bild ermittelt werden, damit sie mit der Position des Objekts in dem von der einen Kamera aufgenommenen Bild übereinstimmt. Zu diesem Zweck ist eine Steuerung bekannt, bei der ein Block mit einer vorbestimmten Größe in einem Bild festgelegt wird und eine diesem Block entsprechende Position in einem anderen Bild gesucht wird (z. B. Japanische Ungeprüfte Patentveröffentlichung Nr. 2001-82927 A). Da die Suche für jeden Block durchgeführt wird, wird ein solches Verfahren als Blockabgleich bezeichnet.
  • [ZITIERLISTE]
  • [PATENTLITERATUR]
  • [PTL 1] Ungeprüfte japanische Patentveröffentlichung Nr. 2001-82927 A
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • [TECHNISCHES PROBLEM]
  • Wenn der Blockabgleich bei der Verarbeitung des Bildes der Stereokamera durchgeführt wird, wird ein erstes Bild von einer Kamera und ein zweites Bild von der anderen Kamera aufgenommen. Es wird festgestellt, ob ein im ersten Bild ausgewählter Block mit einem im zweiten Bild ausgewählten Block übereinstimmt. Die Blöcke umfassen eine Vielzahl von Pixeln. Wenn der Block, der dem Block im ersten Bild entspricht, im zweiten Bild vorhanden ist, wird die Parallaxe der in den Blöcken enthaltenen Pixel berechnet.
  • Bei einer Steuerung, die Positionsinformationen einer Oberfläche, wie z. B. ein Abstandsbild, mit Hilfe von Blockabgleich berechnet, kann es vorkommen, dass die genaue Messung von Konturen, wie z. B. ein kleiner Schrittunterschied eines Objekts, ein geringer Abstand zwischen Objekten und eine feine Form eines Objekts, schwierig ist. Wenn das Entfernungsbild z. B. von der Stereokamera erzeugt wird, verschwindet in einigen Fällen eine kleine Schrittdifferenz eines Objekts oder eine Lücke zwischen Objekten. Oder es gibt einen Fall, in dem genaue Abstandsinformationen nicht erhalten werden können, z. B. bei einem kleinen Schrittabstand eines Objekts oder einer Lücke zwischen Objekten. Auf diese Weise hatte die Stereokamera das Problem, dass die genaue Erfassung der Positionsinformationen der Oberfläche des Objekts in einem Bereich schwierig war, in dem sich die Form im Bild nur geringfügig änderte.
  • (LÖSUNG DES PROBLEMS)
  • Eine dreidimensionale Messvorrichtung eines ersten Aspekts der vorliegenden Offenbarung umfasst einen Bildsensor, der eine erste Kamera, die so konfiguriert ist, dass sie ein erstes Bild erfasst, und eine zweite Kamera, die so konfiguriert ist, dass sie ein zweites Bild erfasst, sowie einen Konturerfassungssensor umfasst, der so konfiguriert ist, dass er eine Kontur eines Objekts erfasst. Die dreidimensionale Messvorrichtung umfasst eine Verarbeitungseinheit, die so konfiguriert ist, dass sie Positionsinformationen einer Oberfläche des Objekts auf der Grundlage des ersten Bildes und des zweiten Bildes erfasst. Die Verarbeitungseinheit umfasst eine Konturerfassungseinheit, die so konfiguriert ist, dass sie die Kontur des Objekts auf der Grundlage einer Ausgabe des Konturerfassungssensors erfasst. Die Verarbeitungseinheit enthält eine Blocksucheinheit, die so konfiguriert ist, dass sie einen aus einer Vielzahl von Pixeln gebildeten Auswahlblock festlegt, der ein im ersten Bild ausgewähltes Auswahlpixel enthält, wobei die Blocksucheinheit so konfiguriert ist, dass sie nach einem bestimmten Block sucht, der dem Auswahlblock im zweiten Bild entspricht. Die Verarbeitungseinheit enthält eine Berechnungseinheit, die so konfiguriert ist, dass sie Abstandsinformationen eines Pixels auf der Grundlage einer Parallaxe zwischen einer Position des Auswahlpixels in dem Auswahlblock und einer Position eines spezifischen Pixels, das dem Auswahlpixel in dem spezifischen Block entspricht, berechnet. Die Verarbeitungseinheit umfasst eine Erzeugungseinheit, die so konfiguriert ist, dass sie die Positionsinformationen der Oberfläche des Objekts einschließlich der Abstandsinformationen einer Vielzahl der Pixel erzeugt. Die Verarbeitungseinheit umfasst eine Syntheseeinheit, die so konfiguriert ist, dass sie die Positionsinformationen der Oberfläche des Objekts synthetisiert, die unter voneinander verschiedenen Bedingungen erzeugt wurden. Die Blocksucheinheit ist so konfiguriert, dass sie einen integrierten Wert berechnet, indem sie die Größen der Differenzen zwischen den Werten der im Auswahlblock enthaltenen Pixel und den Werten der im spezifischen Block enthaltenen Pixel oder die quadratischen Werte der Differenzen integriert. Die Blocksucheinheit ist so konfiguriert, dass sie feststellt, dass das in dem spezifischen Block enthaltene Pixel dem in dem Auswahlblock enthaltenen Pixel entspricht, wenn der integrierte Wert kleiner als ein vorbestimmter Bestimmungswert ist. Die Blocksucheinheit ist so konfiguriert, dass sie Informationen, die ein ungültiges Pixel anzeigen, als Abstandsinformationen des Auswahlpixels setzt, wenn der integrierte Wert den vorbestimmten Bestimmungswert überschreitet oder der spezifische Block, der dem Auswahlblock entspricht, nicht erkannt wird. Ein erster Bestimmungswert in Bezug auf den integrierten Wert und ein zweiter Bestimmungswert in Bezug auf den integrierten Wert, der größer als der erste Bestimmungswert ist, werden vorgegeben. Die Blocksucheinheit, die Berechnungseinheit und die Erzeugungseinheit sind so konfiguriert, dass sie erste Positionsinformationen der Oberfläche unter Verwendung des ersten Bildes, des zweiten Bildes und des ersten Bestimmungswertes und zweite Positionsinformationen der Oberfläche unter Verwendung des ersten Bildes, des zweiten Bildes und des zweiten Bestimmungswertes erzeugen. Die Syntheseeinheit ist so konfiguriert, dass sie einen der Kontur entsprechenden Bereich auf der Grundlage der von der Konturerfassungseinheit erfassten Kontur festlegt, Abstandsinformationen eines in den ersten Positionsinformationen der Oberfläche enthaltenen Pixels für ein Pixel verwendet, das in dem der Kontur entsprechenden Bereich enthalten ist, Abstandsinformationen eines in den zweiten Positionsinformationen der Oberfläche enthaltenen Pixels für ein Pixel verwendet, das in einem anderen Bereich als dem der Kontur entsprechenden Bereich enthalten ist, und dadurch Positionsinformationen einer Oberfläche erzeugt, die durch Synthetisieren der ersten Positionsinformationen der Oberfläche und der zweiten Positionsinformationen der Oberfläche erhalten werden.
  • Eine dreidimensionale Messvorrichtung eines zweiten Aspekts der vorliegenden Offenbarung umfasst einen Bildsensor, der eine erste Kamera, die so konfiguriert ist, dass sie ein erstes Bild erfasst, und eine zweite Kamera, die so konfiguriert ist, dass sie ein zweites Bild erfasst, sowie einen Konturerfassungssensor umfasst, der so konfiguriert ist, dass er eine Kontur eines Objekts erfasst. Die dreidimensionale Messvorrichtung umfasst eine Verarbeitungseinheit, die so konfiguriert ist, dass sie Positionsinformationen einer Oberfläche des Objekts auf der Grundlage des ersten Bildes und des zweiten Bildes erfasst. Die Verarbeitungseinheit umfasst eine Konturerfassungseinheit, die so konfiguriert ist, dass sie die Kontur des Objekts auf der Grundlage einer Ausgabe des Konturerfassungssensors erfasst. Die Verarbeitungseinheit enthält eine Blocksucheinheit, die so konfiguriert ist, dass sie einen aus einer Vielzahl von Pixeln gebildeten Auswahlblock festlegt, der ein im ersten Bild ausgewähltes Auswahlpixel enthält, wobei die Blocksucheinheit so konfiguriert ist, dass sie nach einem bestimmten Block sucht, der dem Auswahlblock im zweiten Bild entspricht. Die Verarbeitungseinheit enthält eine Berechnungseinheit, die so konfiguriert ist, dass sie Abstandsinformationen eines Pixels auf der Grundlage einer Parallaxe zwischen einer Position des Auswahlpixels in dem Auswahlblock und einer Position eines spezifischen Pixels, das dem Auswahlpixel in dem spezifischen Block entspricht, erzeugt. Die Verarbeitungseinheit umfasst eine Erzeugungseinheit, die so konfiguriert ist, dass sie die Positionsinformationen der Oberfläche des Objekts einschließlich der Abstandsinformationen einer Vielzahl der Pixel erzeugt. Die Verarbeitungseinheit umfasst eine Syntheseeinheit, die so konfiguriert ist, dass sie die Positionsinformationen der Oberfläche des Objekts synthetisiert, die unter voneinander verschiedenen Bedingungen erzeugt wurden. Ein erster Auswahlblock und ein zweiter Auswahlblock, der mehr Pixel als Pixel des ersten Auswahlblocks enthält, sind vorgegeben. Die Blocksucheinheit, die Berechnungseinheit und die Erzeugungseinheit sind so konfiguriert, dass sie erste Positionsinformationen der Oberfläche unter Verwendung des ersten Bildes, des zweiten Bildes und des ersten Auswahlblocks und zweite Positionsinformationen der Oberfläche unter Verwendung des ersten Bildes, des zweiten Bildes und des zweiten Auswahlblocks erzeugen. Die Syntheseeinheit ist so konfiguriert, dass sie einen der Kontur entsprechenden Bereich auf der Grundlage der von der Konturerfassungseinheit erfassten Kontur festlegt, Abstandsinformationen eines in den ersten Positionsinformationen der Oberfläche enthaltenen Pixels für ein Pixel festlegt, das in dem der Kontur entsprechenden Bereich enthalten ist, Abstandsinformationen eines in den zweiten Positionsinformationen der Oberfläche enthaltenen Pixels für ein Pixel festlegt, das in einem anderen Bereich als dem der Kontur entsprechenden Bereich enthalten ist, und dadurch Positionsinformationen einer Oberfläche erzeugt, die durch Synthetisieren der ersten Positionsinformationen der Oberfläche und der zweiten Positionsinformationen der Oberfläche erhalten werden.
  • [VORTEILHAFTE WIRKUNGEN DER ERFINDUNG]
  • Gemäß den Aspekten der vorliegenden Offenbarung kann eine dreidimensionale Messvorrichtung bereitgestellt werden, die die Genauigkeit der Positionsinformationen einer Oberfläche eines Objekts verbessert.
  • Figurenliste
    • 1 ist eine perspektivische Ansicht einer Robotervorrichtung in einer Ausführungsform.
    • 2 ist ein Blockdiagramm der Robotervorrichtung.
    • 3 ist eine schematische Darstellung eines Bildsensors in dieser Ausführungsform.
    • 4 ist ein Diagramm eines Auswahlblocks in einem ersten Bild und eines Suchbereichs und eines Suchblocks in einem zweiten Bild.
    • 5 ist ein Diagramm des Auswahlblocks und des Suchbereichs, das einen ersten Schritt einer Steuerung zum Suchen eines bestimmten Blocks beschreibt, der dem Auswahlblock entspricht.
    • 6 ist ein Diagramm des Auswahlblocks und des Suchbereichs, das einen zweiten Schritt der Steuerung zum Suchen des spezifischen Blocks beschreibt, der dem Auswahlblock entspricht.
    • 7 ist eine perspektivische Ansicht des Bildsensors und eines Werkstücks, die ein Beispiel für die Erfassung des Werkstücks durch den Bildsensor beschreibt.
    • 8 ist ein Beispiel für ein Abstandsbild, das durch Erfassen des Werkstücks erhalten wurde.
    • 9 ist ein zweidimensionales Bild, das von einer ersten Kamera in der Robotervorrichtung aufgenommen wurde.
    • 10 ist ein Flussdiagramm eines Verfahrens zum Einstellen eines Schwellenwerts für den Kontrast zur Erkennung einer Kontur in einem zweidimensionalen Bild.
    • 11 ist ein Flussdiagramm einer ersten Steuerung in dieser Ausführungsform.
    • 12 ist eine vergrößerte Ansicht eines Bildes, das einen der Kontur entsprechenden Bereich beschreibt.
    • 13 ist ein Flussdiagramm einer Steuerung, die ein synthetisches Abstandsbild erzeugt.
    • 14 ist ein Entfernungsbild, das bei der ersten Kontrolle erzeugt wurde.
    • 15 ist ein Entfernungsbild, das bei der Kontrolle eines Vergleichsbeispiels erzeugt wurde.
    • 16 ist ein Flussdiagramm eines Verfahrens zur Festlegung eines Bestimmungswertes für eine erste Punktzahl.
    • 17 ist ein Flussdiagramm einer zweiten Steuerung in dieser Ausführungsform.
    • 18 ist ein Flussdiagramm eines Verfahrens zur Einstellung einer Blockgröße eines ersten Auswahlblocks.
    • 19 zeigt das Entfernungsbild, das bei der zweiten Kontrolle erzeugt wurde.
  • BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Eine dreidimensionale Messvorrichtung in einer Ausführungsform wird unter Bezugnahme auf 1 bis 19 beschrieben. Die dreidimensionale Messvorrichtung gemäß der vorliegenden Ausführungsform umfasst einen Bildsensor, der eine erste Kamera zum Erfassen eines ersten Bildes und eine zweite Kamera zum Erfassen eines zweiten Bildes umfasst. Die dreidimensionale Messvorrichtung erzeugt Positionsinformationen einer Oberfläche eines Objekts auf der Grundlage des ersten Bildes und des zweiten Bildes. Insbesondere werden die Positionsinformationen, die Informationen über einen dreidimensionalen Messpunkt enthalten, der auf die Oberfläche des Objekts gesetzt wurde, erzeugt.
  • 1 ist eine perspektivische Ansicht einer Robotervorrichtung der vorliegenden Ausführungsform. 2 ist ein Blockdiagramm der Robotervorrichtung der vorliegenden Ausführungsform. Unter Bezugnahme auf 1 und 2 umfasst eine Robotervorrichtung 3 eine Hand 5, die das Werkstück 61, 62 greift, und einen Roboter 1, der die Hand 5 bewegt. Die Robotervorrichtung 3 umfasst eine Steuerung 2, die die Robotervorrichtung 3 steuert. Die Robotervorrichtung 3 umfasst einen Bild-Sensor 30 zur Erzeugung der Positionsinformationen des dreidimensionalen Messpunkts, der den Oberflächen der Werkstücke 61, 62 als Objekte entspricht.
  • Bei den Werkstücken 61, 62 der vorliegenden Ausführungsform handelt es sich um Wellpappschachteln mit rechteckiger Parallelepipedform. Die Hand 5 ist ein Endeffektor, der das Werkstück 61, 62 ergreift und freigibt. Die Hand 5 der vorliegenden Ausführungsform ist eine Saughand, die die Oberfläche des Werkstücks 61, 62 durch Saugen ergreift. Der am Roboter 1 angebrachte Endeffektor ist nicht auf diese Konfiguration beschränkt. Jedes beliebige Arbeitswerkzeug kann entsprechend einer von der Robotervorrichtung 3 durchgeführten Operation verwendet werden. Als Endeffektor kann zum Beispiel ein Werkzeug zum Schweißen oder ein Werkzeug zum Auftragen eines Dichtungsmaterials auf die Oberfläche des Werkstücks verwendet werden. Das heißt, die dreidimensionale Messvorrichtung der vorliegenden Ausführungsform kann bei einer Robotervorrichtung eingesetzt werden, die einen beliebigen Vorgang durchführt.
  • Der Roboter 1 der vorliegenden Ausführungsform ist ein Gelenkroboter mit einer Vielzahl von Gelenken 18. Der Roboter 1 umfasst einen oberen Arm 11 und einen unteren Arm 12. Der untere Arm 12 wird von einer Drehbasis 13 getragen. Die Drehbasis 13 wird von einem Sockel 14 getragen. Der Roboter 1 umfasst ein Handgelenk 15, das mit einem Endabschnitt des oberen Arms 11 verbunden ist. Das Handgelenk 15 umfasst einen Flansch 16, an dem die Hand 5 befestigt ist. Ein Bestandteil des Roboters 1 ist so ausgebildet, dass er sich um eine vorgegebene Antriebsachse dreht. Der Roboter ist nicht auf diese Konfiguration beschränkt. Es kann jeder Roboter eingesetzt werden, der das bewegen kann.
  • 3 zeigt ein schematisches Diagramm einer Kamera in der vorliegenden Ausführungsform. Der Bildsensor 30 der vorliegenden Ausführungsform ist eine Stereokamera mit einer ersten Kamera 31 und einer zweiten Kamera 32. Die Kameras 31, 32 sind zweidimensionale Kameras, die zweidimensionale Bilder aufnehmen können. Als Kamera 31, 32 kann jede Kamera mit einem Bildsensor verwendet werden, wie z. B. ein CCD-Sensor (Charge-Coupled Device) oder ein CMOS-Sensor (Complementary Metal-Oxide Semiconductor). Die beiden Kameras 31, 32 sind mit Abstand zueinander angeordnet. Die relativen Positionen der beiden Kameras 31, 32 werden im Voraus festgelegt. Die beiden Kameras 31, 32 der vorliegenden Ausführungsform sind so angeordnet, dass die optischen Achsen der jeweiligen Kameras 31, 32 parallel zueinander sind. Der Bildsensor 30 der vorliegenden Ausführungsform umfasst einen Projektor 33, der Licht in einem Muster, beispielsweise einem Streifenmuster, auf die Werkstücke 61, 62 projiziert. Die Kameras 31, 32 und der Projektor 33 sind innerhalb eines Gehäuses 34 angeordnet.
  • Wie in 1 und 2 gezeigt, wird der Bildsensor 30 von einem Stützelement 66 getragen. Die Position des Bildsensors 30 ist bei der vorliegenden Ausführungsform fest. Der Bildsensor 30 ist an einer Position angeordnet, an der der Bildsensor 30 die Bilder der Werkstücke 61, 62 erfassen kann.
  • Das dreidimensionale Messgerät verarbeitet die vom Bild-Sensor 30 aufgenommenen Bilder. So kann die dreidimensionale Messeinrichtung die Positionsinformationen der Oberfläche des Objekts in Form eines Abstandsbildes oder einer dreidimensionalen Karte erzeugen. Das Entfernungsbild stellt die Positionsinformationen der Oberfläche des Objekts in Form eines Bildes dar. Das Abstandsbild stellt die Position der Oberfläche des Objekts oder den Abstand zum Bild-Sensor 30 durch die Tiefe oder die Farbe jedes Pixels dar. Andererseits stellt die dreidimensionale Karte die Positionsinformationen der Oberfläche des Objekts durch einen Satz von Koordinatenwerten (x, y, z) am Messpunkt der Oberfläche des Objekts dar, der dem Pixel entspricht. In der Konfiguration der vorliegenden Ausführungsform wird die Positionsinformation der Oberfläche des Objekts am Beispiel des Abstandsbildes beschrieben.
  • Der Roboter 1 der vorliegenden Ausführungsform umfasst eine Roboterantriebsvorrichtung 21, die Bestandteile, wie den oberen Arm 11, antreibt. Die Roboterantriebsvorrichtung 21 umfasst eine Vielzahl von Antriebsmotoren zum Antrieb des Oberarms 11, des Unterarms 12, der Drehbasis 13 und des Handgelenks 15. Die Hand 5 umfasst eine Handantriebsvorrichtung 22, die die Hand 5 antreibt. Die Handantriebsvorrichtung 22 der vorliegenden Ausführungsform treibt die Hand 5 durch Luftdruck an. Die Handantriebsvorrichtung 22 umfasst beispielsweise eine Pumpe und ein elektromagnetisches Ventil zum Dekomprimieren eines Innenraums eines Sauggreifers.
  • Die Steuerung 2 steuert den Roboter 1 und die Hand 5. Die Steuerung 2 hat eine Recheneinheit (Computer), die eine CPU (Central Processing Unit) als Prozessor enthält. Die arithmetische Verarbeitungsvorrichtung hat einen RAM (Random Access Memory), einen ROM (Read Only Memory) oder ähnliches, die über einen Bus mit der CPU verbunden sind. Die Robotervorrichtung 3 der vorliegenden Ausführungsform transportiert die Werkstücke 61, 62 automatisch auf der Grundlage eines Betriebsprogramms 41. Die Roboterantriebsvorrichtung 21 und die Handantriebsvorrichtung 22 werden von der Steuerung 2 gesteuert.
  • Die Steuerung 2 umfasst eine Speichereinheit 42 zum Speichern von Informationen, die sich auf die Steuerung der Robotervorrichtung 3 beziehen. Die Speichereinheit 42 kann aus einem Speichermedium bestehen, das in der Lage ist, Informationen zu speichern, z. B. einem flüchtigen Speicher, einem nichtflüchtigen Speicher, einer Festplatte oder dergleichen. Das im Voraus erstellte Betriebsprogramm 41 für den Betrieb des Roboters 1 wird in die Steuerung 2 eingegeben. Das Betriebsprogramm 41 wird in der Speichereinheit 42 gespeichert.
  • Die Steuerung 2 umfasst eine Betriebssteuereinheit 43 zur Übertragung eines Betriebsbefehls. Die Betriebssteuereinheit 43 überträgt auf der Grundlage des Betriebsprogramms 41 einen Betriebsbefehl zum Antrieb des Roboters 1 an ein Roboterantriebsteil 44. Der Roboterantriebsteil 44 umfasst einen elektrischen Schaltkreis, der die Antriebsmotoren antreibt. Der Roboterantriebsteil 44 versorgt die Roboterantriebsvorrichtung 21 auf der Grundlage des Betriebsbefehls mit Strom. Die Betriebssteuereinheit 43 überträgt einen Betriebsbefehl zum Antrieb der Handantriebsvorrichtung 22 an ein Handantriebsteil 45. Der Handantriebsteil 45 enthält einen elektrischen Schaltkreis, der beispielsweise eine Pumpe antreibt. Der Handantriebsteil 45 versorgt z. B. die Pumpe auf der Grundlage des Betriebsbefehls mit Strom.
  • Die Betriebssteuereinheit 43 entspricht einem Prozessor, der gemäß dem Betriebsprogramm 41 gesteuert wird. Der Prozessor liest das Betriebsprogramm 41 und fungiert als Betriebssteuereinheit 43, indem er die im Betriebsprogramm 41 definierte Steuerung durchführt.
  • Der Roboter 1 enthält einen Zustandsdetektor zur Erfassung einer Position und einer Ausrichtung des Roboters 1. Der Zustandsdetektor der vorliegenden Ausführungsform umfasst einen Positionsdetektor 23, der an jeder Antriebswelle der Antriebsmotoren in der Roboterantriebsvorrichtung 21 angebracht ist. Durch die Ausgabe des Positionsdetektors 23 werden eine Position und eine Ausrichtung des Roboters 1 erfasst. Der Zustandsdetektor ist nicht auf den am Antriebsmotor angebrachten Positionsdetektor beschränkt, und jeder Detektor, der die Erfassung der Position und der Ausrichtung des Roboters 1 ermöglicht, kann verwendet werden.
  • Die Steuerung 2 umfasst ein Handbediengerät 49 als Bedienfeld für die manuelle Bedienung des Robotervorrichtung 3 durch einen Bediener. Das Handbediengerät 49 enthält ein Eingabeteil 49a zur Eingabe von Informationen über den Roboter 1, die Hand 5 und den Bild-Sensor 30. Der Eingabeteil 49a ist mit einem Element, wie z. B. einer Tastatur und einem Drehknopf, ausgestattet. Das Programmiergerät 49 umfasst ein Anzeigeteil 49b, das Informationen über die Steuerung des Robotervorrichtung 3 anzeigt. Der Anzeigeteil 49b ist mit einer Anzeigetafel, z. B. einer Flüssigkristallanzeigetafel, ausgestattet.
  • Ein Weltkoordinatensystem 71, das unbeweglich ist, wenn sich die Position und die Ausrichtung des Roboters 1 ändern, wird für die Robotervorrichtung 3 der vorliegenden Ausführungsform festgelegt. In dem in 1 dargestellten Beispiel befindet sich der Ursprung des Weltkoordinatensystems 71 an den Sockel 14 des Roboters 1. Das Weltkoordinatensystem 71 wird auch als Referenzkoordinatensystem bezeichnet. Im Weltkoordinatensystem 71 ist die Position des Ursprungs fest und die Richtungen der Koordinatenachsen sind fest. Selbst wenn sich die Position und die Ausrichtung des Roboters 1 ändern, ändern sich die Position und die Ausrichtung des Weltkoordinatensystems 71 nicht.
  • Außerdem wird in der Robotervorrichtung 3 ein Werkzeugkoordinatensystem 72 mit einem Ursprung an einer beliebigen Position des Arbeitswerkzeugs eingerichtet. Die Position und die Ausrichtung des Werkzeugkoordinatensystems 72 ändern sich zusammen mit der Hand 5. Der Ursprung des Werkzeugkoordinatensystems 72 wird gemäß der vorliegenden Ausführungsform an einem Werkzeugspitzenpunkt festgelegt. Darüber hinaus ist in der Robotervorrichtung 3 ein Kamerakoordinatensystem 73 auf den Bild-Sensor 30 eingestellt. Das Kamerakoordinatensystem 73 ist ein Koordinatensystem, bei dem der Ursprung auf den Bildsensor 30 festgelegt ist.
  • Wenn sich die Position und die Ausrichtung des Roboters 1 ändern, ändern sich auch die Position des Ursprungs und die Ausrichtung des Werkzeugkoordinatensystems 72. Zum Beispiel entspricht die Position des Roboters 1 einer Position des Werkzeugspitzenpunkts (der Position des Ursprungs des Werkzeugkoordinatensystems 72). Außerdem entspricht die Ausrichtung des Roboters 1 der Ausrichtung des Werkzeugkoordinatensystems 72 in Bezug auf das Weltkoordinatensystem 71.
  • Die Robotervorrichtung 3 der vorliegenden Ausführungsform umfasst eine dreidimensionale Messvorrichtung zur Erfassung der Werkstücke 61, 62. In der vorliegenden Ausführungsform fungiert die Steuerung 2 als dreidimensionale Messvorrichtung. Die dreidimensionale Messvorrichtung umfasst den Bildsensor 30, einen Konturerfassungssensor zum Erfassen der Konturen der Werkstücke 61, 62 und eine Verarbeitungseinheit 51 zum Erfassen der Positionsinformationen der Oberflächen der Werkstücke 61, 62 auf der Grundlage des ersten Bildes, das von der ersten Kamera 31 erfasst wurde, und des zweiten Bildes, das von der zweiten Kamera 32 erfasst wurde.
  • Als Konturerfassungssensor kann jeder Sensor verwendet werden, der eine Kontur, wie z. B. einen Stufenunterschied, eine Vertiefung, einen Vorsprung und eine Au-ßenkante eines Objekts, in einem zweidimensionalen Bild erfassen kann. In der vorliegenden Ausführungsform fungiert die erste Kamera 31 des Bildsensors 30 als Konturerfassungssensor. Die Konturen der Oberflächen der Werkstücke 61, 62 werden auf der Grundlage des von der ersten Kamera 31 aufgenommenen zweidimensionalen ersten Bildes erkannt. Durch diese Konfiguration entfällt die Notwendigkeit, zusätzlich zum Bild-Sensor 30 einen Konturerfassungssensor vorzusehen, und die Konfiguration der dreidimensionalen Messvorrichtung kann vereinfacht werden. Es ist zu beachten, dass die zweite Kamera 32 als Konturerfassungssensor verwendet werden kann. Alternativ kann z. B. eine andere zweidimensionale Kamera als der Bild-Sensor 30 in der Robotervorrichtung als Konturerfassungssensor angeordnet werden.
  • Die Verarbeitungseinheit 51 enthält eine Konturerfassungseinheit 52 zur Erfassung der Kontur des Objekts auf der Grundlage der Ausgabe des Konturerfassungssensors. Die Verarbeitungseinheit 51 umfasst eine Blocksucheinheit 53, die einen Auswahlblock festlegt, der durch eine Vielzahl von Pixeln im ersten Bild konfiguriert ist, und nach einem spezifischen Block sucht, der dem Auswahlblock im zweiten Bild entspricht. Die Verarbeitungseinheit 51 umfasst eine Berechnungseinheit 54, die Abstandsinformationen des Pixels auf der Grundlage der Parallaxe zwischen der Position des Auswahlpixels in dem Auswahlblock und einer Position eines spezifischen Pixels, das dem Auswahlpixel in dem spezifischen Block entspricht, berechnet. Die Verarbeitungseinheit 51 umfasst eine Erzeugungseinheit 55, die die Positionsinformationen der Oberfläche des Objekts einschließlich der Abstandsinformationen der Vielzahl von Pixeln erzeugt. Die Verarbeitungseinheit 51 umfasst eine Syntheseeinheit 56, die die Positionsinformationen der Oberfläche des Objekts synthetisiert, die unter voneinander verschiedenen Bedingungen erzeugt wurden.
  • Die Verarbeitungseinheit 51 enthält eine Bildaufnahme-Steuereinheit 57, die einen Befehl zur Aufnahme eines Bildes an den Bildsensor 30 übermittelt. Die Verarbeitungseinheit 51 umfasst eine Betriebsbefehlseinheit 58, die den Betriebsbefehl zum Fahren des Roboters 1 auf der Grundlage der Positionsinformationen der Oberfläche des Objekts nach der Synthese erzeugt.
  • Die oben beschriebene Verarbeitungseinheit 51 entspricht dem Prozessor, der in Übereinstimmung mit dem Betriebsprogramm 41 gesteuert wird. Insbesondere ist jede Einheit der Konturerfassungseinheit 52, der Blocksucheinheit 53, der Berechnungseinheit 54, der Erzeugungseinheit 55 und der Syntheseeinheit 56 äquivalent zu dem Prozessor, der gemäß dem Betriebsprogramm 41 gesteuert wird. Die Bildaufnahme- Steuereinheit 57 und die Betriebsbefehlseinheit 58 entsprechen den Prozessoren, die gemäß dem Betriebsprogramm 41 gesteuert werden. Der Prozessor funktioniert als jede Einheit, indem er das Betriebsprogramm 41 liest und die Steuerung durchführt, die durch das Betriebsprogramm 41 definiert ist.
  • Die Robotervorrichtung 3 der vorliegenden Ausführungsform erzeugt das Abstandsbild des Werkstücks 61, 62 auf der Grundlage der Ausgabe des Bildsensors 30, bevor die Hand 5 das Werkstück 61, 62 ergreift. Die Bildaufnahme-Steuereinheit 57 überträgt einen Befehl zur Aufnahme eines Bildes an den Bildsensor 30. Die Verarbeitungseinheit 51 erzeugt die Positionsinformationen der Oberfläche des Werkstücks 61, 62 auf der Grundlage der von der ersten Kamera 31 und der zweiten Kamera 32 des Bildsensors 30 aufgenommenen Bilder. Die Positionsinformation der Oberfläche wird z.B. im Kamerakoordinatensystem 73 erzeugt. Die Verarbeitungseinheit 51 kann die im Kamerakoordinatensystem 73 dargestellte Positionsinformation der Oberfläche in die im Weltkoordinatensystem 71 dargestellte Positionsinformation der Oberfläche auf der Grundlage der Position und der Orientierung des Kamerakoordinatensystems 73 in Bezug auf das Weltkoordinatensystem 71 umwandeln.
  • Die Betriebsbefehlseinheit 58 in der Verarbeitungseinheit 51 erkennt die Form und die Position der Oberfläche des Werkstücks 61 auf der Grundlage der Positionsinformationen der Oberfläche des Werkstücks 61. Die Betriebsbefehlseinheit 58 überträgt den Betriebsbefehl des Roboters 1 an die Betriebssteuereinheit 43, so dass die Hand 5 die Oberfläche des Werkstücks 61 ergreifen kann. Die Betriebssteuereinheit 43 ändert die Position und die Ausrichtung des Roboters 1 auf der Grundlage des Betriebsbefehls und ergreift dann das Werkstück 61 mit der Hand 5. Der Roboter 1 befördert das Werkstück 61 auf der Grundlage des Betriebsprogramms 41 zu einer Zielposition. Anschließend befördert die Robotervorrichtung 3 das Werkstück 62 nach dem Ergreifen des Werkstücks 62 auf der Grundlage der Positionsinformationen der Oberfläche des Werkstücks 62. Auf diese Weise kann die Robotervorrichtung 3 die Positionen der Werkstücke 61, 62 erkennen und die Werkstücke 61, 62 befördern.
  • Als nächstes wird eine Steuerung zur Erzeugung des Abstandsbildes durch die dreidimensionale Messvorrichtung der vorliegenden Ausführungsform beschrieben. Die dreidimensionale Messvorrichtung der vorliegenden Ausführungsform erzeugt die Abstandsbilder unter einer Vielzahl von Bedingungen, die sich voneinander unterscheiden, und erzeugt ein synthetisches Abstandsbild, das durch Kombinieren einer Vielzahl der Abstandsbilder erhalten wird.
  • 4 zeigt das erste Bild, das von der ersten Kamera aufgenommen wurde, und das zweite Bild, das von der zweiten Kamera aufgenommen wurde. Der Bild-Sensor 30 nimmt ein erstes Bild 77 mit der ersten Kamera 31 auf. Der Bildverarbeitungssensor 30 erfasst ein zweites Bild 78 mit der zweiten Kamera 32. Das erste Bild 77 und das zweite Bild 78 sind zweidimensionale Bilder. Jedes der Bilder 77 und 78 besteht aus einer Vielzahl von Pixeln. In jedem der Bilder 77 und 78 ist ein Bildschirmkoordinatensystem 74 mit einem vorbestimmten Punkt im Bild als Ursprung festgelegt. Die Position im Bild, die im Bildschirmkoordinatensystem 74 dargestellt ist, entspricht der Position im Bildsensor, der in jeder der Kameras 31, 32 angeordnet ist.
  • 5 zeigt ein Diagramm des Auswahlblocks und des Suchblocks, das einen ersten Schritt bei der Durchführung des Blockabgleichs beschreibt. 5 zeigt eine vergrößerte Ansicht eines Auswahlblocks 81, der im ersten Bild 77 gesetzt ist, und eines Suchbereichs 84, der im zweiten Bild 78 gesetzt ist. Unter Bezugnahme auf 2, 4 und 5 wählt die Blocksucheinheit 53 in der Verarbeitungseinheit 51 ein Pixel als Auswahlpixel 85a unter den im ersten Bild 77 enthaltenen Pixeln 85 aus. Die Blocksucheinheit 53 setzt den Auswahlblock 81 mit dem Auswahlpixel 85a und den Pixeln 85 um das Auswahlpixel 85a.
  • Im Auswahlblock 81 der vorliegenden Ausführungsform wird die Mehrzahl der Pixel 85 so eingestellt, dass sie das Auswahlpixel 85a umgeben. In dem in 5 dargestellten Auswahlblock 81 werden die drei Pixel 85 in horizontaler Richtung des ersten Bildes 77 (Y-Achsenrichtung des Bildschirmkoordinatensystems 74) und die drei Pixel 85 in vertikaler Richtung ausgewählt. Die Blockgröße als Größe des Auswahlblocks 81 ist nicht auf diese Konfiguration beschränkt, und es kann eine beliebige Anzahl von Pixeln einbezogen werden. Darüber hinaus ist in der vorliegenden Ausführungsform das Auswahlpixel 85a in der Mitte des Auswahlblocks 81 angeordnet, aber die Ausführungsform ist nicht darauf beschränkt, und das Auswahlpixel 85a kann an einer beliebigen Position im Auswahlblock 81 angeordnet werden.
  • Die Blocksucheinheit 53 steuert den Blockabgleich, der nach einem bestimmten Block 82 sucht, der dem Auswahlblock 81 im zweiten Bild 78 entspricht. Jedem der Pixel 85 wird ein Pixelwert zugeordnet, der z. B. durch Quantifizierung der Dichte, der Leuchtdichte oder der Farbinformationen ermittelt wird. Die Blocksucheinheit 53 sucht im zweiten Bild 78 nach dem Block, in dem die Werte dieser Pixel gut übereinstimmen. Dann legt die Blocksucheinheit 53 diesen Block als den spezifischen Block 82 fest.
  • Die Blocksucheinheit 53 legt den Suchbereich 84 im zweiten Bild 78 fest, um den spezifischen Block 82 zu erkennen, der dem Auswahlblock 81 entspricht. Als Suchbereich 84 kann z. B. ein Bereich festgelegt werden, der durch dieselbe Position wie der Auswahlblock 81 und parallel zu einer Epipolarlinie verläuft. Die Höhe des Suchbereichs 84 kann die gleiche sein wie die Höhe des Auswahlblocks 81. In der vorliegenden Ausführungsform ist der Suchbereich 84 im zweiten Bild 78 so eingestellt, dass er sich in Richtung der Y-Achse des Bildschirmkoordinatensystems 74 erstreckt. Die Blocksucheinheit 53 wählt einen Suchblock 83 im Suchbereich 84 aus. Die Form und die Größe des Suchblocks 83 können so eingestellt werden, dass sie mit der Größe und der Form des Auswahlblocks 81 übereinstimmen.
  • In dem in 5 dargestellten Beispiel wird ein Suchblock 83a in den Suchbereich 84 gesetzt. Die Blocksucheinheit 53 führt in der vorliegenden Ausführungsform den Blockabgleich nach der Methode der Summe der absoluten Differenzen (SAD) durch. Die Blocksucheinheit 53 berechnet eine Punktzahl SC1 auf der Grundlage der Werte der im Suchblock 83a enthaltenen Pixel 86 und der Werte der im Auswahlblock 81 enthaltenen Pixel 85. Die Punktzahl ist ein integrierter Wert, der durch Integration der Größenunterschiede der Werte der einander entsprechenden Pixel in den jeweiligen Blöcken 81, 83a erhalten wird. Dieser Wert wird auch als Übereinstimmungswert bezeichnet. In dem in 5 dargestellten Beispiel wird die Punktzahl SC1 nach der folgenden Gleichung (1) berechnet.
  • SC1 = | 5 4 | + | 3 3 | + | 4 4 | + | 5 5 | + | 6 7 | + | 5 3 | + | 6 6 | + | 8 8 | + | 8 7 | = 5
    Figure DE112021001440T5_0001
  • Als Nächstes verschiebt die Blocksucheinheit 53, wie durch einen Pfeil 101 angezeigt, die Position des Suchblocks 83 entlang des Suchbereichs 84. In der vorliegenden Ausführungsform wird der Suchblock 83 um den Abstand der Breite eines Pixels 86 verschoben. Der Abstand, um den der Suchblock 83 verschoben wird, ist nicht darauf beschränkt, sondern kann auch zwei oder mehr Pixel betragen.
  • 6 zeigt ein Diagramm des Auswahlblocks und des Suchblocks, das einen zweiten Schritt beschreibt, wenn ein Blockabgleich durchgeführt wird. Unter Bezugnahme auf 5 und 6 wird ein Suchblock 83b durch Verschieben des Suchblocks 83 durch die Blocksucheinheit 53 gesetzt. Die Blocksucheinheit 53 berechnet eine Punktzahl SC2 auf der Grundlage der Werte der im Auswahlblock 81 enthaltenen Pixel 85 und der Werte der im Suchblock 83b enthaltenen Pixel 86. In dem in 6 dargestellten Beispiel wird die Punktzahl SC2 nach der folgenden Gleichung (2) berechnet.
  • SC2 = | 5 3 | + | 3 4 | + | 4 8 | + | 5 7 | + | 6 3 | + | 5 9 | + | 6 8 | + | 8 7 | + | 8   10 | = 21
    Figure DE112021001440T5_0002
  • Auf diese Weise berechnet die Blocksucheinheit 53 die Punktzahl, während sie die Position des Suchblocks 83 entlang des Suchbereichs 84 verschiebt. Die Blocksucheinheit 53 verschiebt den Suchblock 83 von einem Ende zum anderen Ende des Suchbereichs 84. Die Blocksucheinheit 53 berechnet die Punktzahl an jeder der Positionen des Suchblocks 83, während sie die Position des Suchblocks 83 leicht verschiebt. In der vorliegenden Ausführungsform wird festgestellt, dass der Suchblock 83 umso besser mit dem Auswahlblock 81 übereinstimmt, je kleiner die Punktzahl ist. Im oben beschriebenen Beispiel wird festgestellt, dass der in 5 dargestellte Suchblock 83a besser mit dem Auswahlblock 81 übereinstimmt als der in 6 dargestellte Suchblock 83b.
  • Die Blocksucheinheit 53 setzt den Suchblock 83 an der Position mit dem niedrigsten Wert als den spezifischen Block 82, der dem Auswahlblock 81 entspricht, unter den jeweiligen Positionen im Suchblock 83. Auf diese Weise kann die Blocksucheinheit 53 den Suchblock 83 mit einem Wert nahe dem des im Auswahlblock 81 enthaltenen Pixels 85 als spezifischen Block 82 festlegen.
  • Beachten Sie, dass die Blocksucheinheit einen integrierten Wert berechnen kann, indem sie die quadratischen Werte der Differenzen zwischen den Werten der im Auswahlblock enthaltenen Pixel und den Werten der im Suchblock enthaltenen Pixel als Punktzahl integriert. Diese Methode wird als SSD-Methode (Summe der quadrierten Differenzen) bezeichnet. Auch bei dieser Methode lässt sich feststellen, dass die beiden Blöcke umso besser übereinstimmen, je kleiner der Score-Wert ist.
  • Auf diese Weise führt die Blocksucheinheit 53 den Blockabgleich durch und gewährleistet so die Suche nach dem spezifischen Block 82, der dem Auswahlblock 81 am besten entspricht. Als nächstes vergleicht die Blocksucheinheit 53 die aus dem Auswahlblock 81 und dem spezifischen Block 82 berechnete Punktzahl mit einem vorgegebenen Bestimmungswert. In der vorliegenden Ausführungsform ist der Bestimmungswert für die Punktzahl vorgegeben. Wenn die Punktzahl kleiner als der Bestimmungswert ist, bestimmt die Blocksucheinheit 53, dass das im spezifischen Block 82 enthaltene Pixel 86 dem im Auswahlblock 81 enthaltenen Pixel 85 entspricht. Die Blocksucheinheit 53 wählt das spezifische Pixel aus, das dem Auswahlpixel 85a in dem spezifischen Block 82 entspricht. Wenn der in 5 dargestellte Suchblock 83a als spezifischer Block 82 festgelegt wird, wird das in der Mitte des Suchblocks 83a angeordnete Pixel zum spezifischen Pixel.
  • Andererseits, wenn die Punktzahl den Bestimmungswert oder mehr erreicht, bestimmt die Blocksucheinheit 53, dass der spezifische Block 82 nicht ausreichend mit dem Auswahlblock 81 übereinstimmt. Die Blocksucheinheit 53 setzt Informationen, die auf ein ungültiges Pixel hinweisen, als die Abstandsinformationen des Auswahlpixels 85a. Der ungültige Bildpunkt ist ein Bildpunkt, der keine Informationen enthält, wie z. B. eine konkrete Entfernung und eine konkrete Position eines Messpunkts. Wenn der spezifische Block, der dem Auswahlblock entspricht, nicht erkannt wird, setzt die Blocksucheinheit 53 außerdem Informationen, die das ungültige Pixel als Abstandsinformation des Auswahlpixels angeben.
  • Die Blocksucheinheit 53 kann alle im ersten Bild 77 enthaltenen Pixel als Auswahlpixel auswählen und die Steuerung ähnlich wie die oben beschriebene Steuerung durchführen. Der spezifische Block 82 und das spezifische Pixel werden in Bezug auf die im ersten Bild 77 enthaltenen Pixel 85 festgelegt. Alternativ dazu wird das Pixel 85 als ungültiges Pixel festgelegt. Beachten Sie, dass die Blocksucheinheit 53 die Steuerung ähnlich der oben beschriebenen Steuerung an den Pixeln durchführen kann, die in dem vorbestimmten Bereich des ersten Bildes 77 angeordnet sind.
  • Als nächstes berechnet die Berechnungseinheit 54 die Parallaxe zwischen der Position des Auswahlpixels 85a im Auswahlblock 81 und der Position des spezifischen Pixels im spezifischen Block 82. Anhand dieser Parallaxe berechnet die Berechnungseinheit 54 den Abstand zwischen dem Bild Sensor 30 und der Oberfläche des Objekts. Insbesondere berechnet die Berechnungseinheit 54 die Abstände zu den Messpunkten auf der Oberfläche des Objekts, die dem Auswahlpixel 85a und dem spezifischen Pixel entsprechen. Die Berechnungseinheit 54 kann die Position des Messpunkts auf der Oberfläche des Objekts auf der Grundlage des berechneten Abstands berechnen. Die Position des Messpunkts kann im Kamerakoordinatensystem 73 berechnet werden.
  • Die Berechnungseinheit 54 legt die Abstandsinformation des Pixels für jedes der Pixel 85 im ersten Bild 77 fest. Die Abstandsinformation des Pixels ist zum Beispiel der Abstand vom Bildsensor 30 zum Messpunkt oder die Information über die Position des Messpunkts. Wie oben beschrieben, umfasst die Abstandsinformation des Pixels auch die Information, die das ungültige Pixel angibt. Da die Abstandsinformation des Pixels die Information über die Position des Messpunktes ist, ist die Abstandsinformation äquivalent zur Abstandsinformation des Messpunktes.
  • Die Erzeugungseinheit 55 erzeugt die Positionsinformationen der Oberfläche des Objekts einschließlich der Abstandsinformationen der Vielzahl von Pixeln durch Verwendung der Abstandsinformationen der jeweiligen Pixel. Im vorliegenden Beispiel stellt die Erzeugungseinheit 55 die Farbdichte des Pixels entsprechend dem Abstand zwischen dem Bildsensor 30 und dem Objekt ein. Das Abstandsbild kann durch Einstellen des Bildes mit der Dichte entsprechend dem Abstand zu jedem Pixel erzeugt werden.
  • 7 zeigt eine perspektivische Ansicht des Bildverarbeitungssensors und eines Werkstücks, die ein Beispiel für ein Abstandsbild beschreibt. In diesem Beispiel ist ein Werkstück 63 auf einer Oberfläche einer Plattform 67 angeordnet. Das Werkstück 63 ist so angeordnet, dass es gegenüber der Oberfläche der Plattform 67 geneigt ist. Die Oberfläche der Plattform 67 erstreckt sich senkrecht zu den optischen Achsen der Kameras 31, 32 des Bild-Sensors 30. Durch die Verarbeitung der von den Kameras 31, 32 des Bild-Sensors 30 aufgenommenen Bilder, wie durch die Pfeile 102, 103 angedeutet, können die Abstandsinformationen der auf der Oberfläche des Werkstücks 63 gesetzten Messpunkte erfasst werden.
  • 8 zeigt ein Entfernungsbild, das durch den Bild-Sensor von 7 erhalten wurde. Unter Bezugnahme auf 7 und 8 wird in diesem Beispiel ein Abstandsbild 91 erzeugt, bei dem die Farbe umso tiefer ist, je weiter der Abstand zum Bild-Sensor 30 ist. Die Oberfläche des Werkstücks 63 weist in Richtung des Bild-Sensors 30 eine abnehmende Farbe auf. Da sich die Oberfläche der Plattform 67 in einer entfernten Position befindet, wird die tiefste Farbe auf die Pixel gesetzt.
  • In dem Bereich, der der Außenkante des Werkstücks 63 entspricht, werden Informationen, die die ungültigen Pixel anzeigen, als Abstandsinformationen der Pixel festgelegt. Ein Bereich mit ungültigen Pixeln 97 wird durch die ungültigen Pixel gebildet. Im vorliegenden Beispiel wird das Abstandsbild 91 so erzeugt, dass die ungültigen Pixel farblos werden. Außerdem wird der Bereich der ungültigen Pixel 97 auch in dem Bereich außerhalb der Plattform 67 gebildet.
  • Bei dem von der Blocksucheinheit 53 durchgeführten Blockabgleich verbleiben, wenn der Bestimmungswert für die Punktzahl groß ist, viele spezifische Blöcke, in denen die ungültigen Pixel nicht gesetzt sind. Dies führt zu einem Anstieg der Anzahl von Pixeln, die Informationen, wie z. B. einen bestimmten Abstand, enthalten. Die Pixel mit Informationen, wie z. B. dem spezifischen Abstand, werden jedoch auch in einem Bereich gesetzt, in dem die Zuverlässigkeit des Blockabgleichs gering ist, wie z. B. in einem Stufendifferenzbereich oder einer Außenkante eines Werkstücks. Dies führt zu einer Verringerung der Zuverlässigkeit des Abstandsbildes. Ein Abstandsbild mit einer verschwundenen Kontur kann zum Beispiel an der Außenkante, dem Vorsprung, der Aussparung oder dem Stufenunterschiedsbereich des Werkstücks erzeugt werden.
  • Andererseits, wenn der Bestimmungswert für die Punktzahl klein ist, wird das Auswahlpixel als ungültiges Pixel festgelegt, es sei denn, die Werte der Vielzahl von Pixeln im Auswahlblock liegen nahe an den Werten der Vielzahl von Pixeln im spezifischen Block. Mit anderen Worten, der Bereich, in dem die Zuverlässigkeit der Block-übereinstimmung gering ist, wird als ungültiges Pixel festgelegt. Der Bereich, wie z. B. der Schrittdifferenzbereich oder die Außenkante des Werkstücks, ist ein Bereich, in dem die Zuverlässigkeit gering ist, und wird als ungültiger Pixel festgelegt. Der Bereich mit den ungültigen Pixeln wird durch die ungültigen Pixel erzeugt, und eine feine Kontur, wie z. B. die Außenkante oder der Stufendifferenzbereich des Werkstücks, kann erkannt werden. Wenn jedoch der Blockabgleich durchgeführt wird, während der Bestimmungswert für die Punktzahl über das gesamte Bild hinweg auf einen kleinen Wert eingestellt wird, verringert sich die Anzahl der Pixel, die Informationen wie den spezifischen Abstand enthalten. Es besteht zum Beispiel das Problem, dass die Anzahl der Messpunkte zur Erfassung der Position der Oberfläche des Objekts abnimmt.
  • Bei der ersten Steuerung in der vorliegenden Ausführungsform werden ein erster Bestimmungswert bezüglich der Punktzahl und ein zweiter Bestimmungswert, der größer als der erste Bestimmungswert ist, vorgegeben. Unter Verwendung des ersten Bestimmungswerts wird ein erstes Abstandsbild und unter Verwendung des zweiten Bestimmungswerts ein zweites Bestimmungsbild erzeugt. Das erste Abstandsbild entspricht einer ersten Positionsinformation der Oberfläche und das zweite Abstandsbild entspricht einer zweiten Positionsinformation der Oberfläche. Die Kontur des Objekts wird im Voraus auf der Grundlage des Bildes der ersten Kamera als Konturerkennungssensor erkannt. Dann wird die Abstandsinformation des Pixels, das in dem ersten Abstandsbild enthalten ist, für das Pixel verwendet, das in dem Bereich enthalten ist, der der Kontur des Objekts entspricht. Die Abstandsinformation des Pixels, das im zweiten Abstandsbild enthalten ist, wird für das Pixel verwendet, das in dem Bereich enthalten ist, der nicht dem Bereich entspricht, der der Kontur entspricht. Auf diese Weise wird ein synthetisches Abstandsbild erzeugt, in dem das erste Abstandsbild mit dem zweiten Abstandsbild synthetisiert wird.
  • Hier wird eine Steuerung beschrieben, mit der die Konturerfassungseinheit 52 die Konturen der Werkstücke 61, 62 erfasst. 9 zeigt ein zweidimensionales Bild, das von der ersten Kamera 31 in der Robotervorrichtung 3 der vorliegenden Ausführungsform aufgenommen wurde. Bei der Kontrolle der Erfassung der Konturen der Werkstücke 61, 62 wird ein zweidimensionales Bild 96 ohne Verwendung des Projektors 33 aufgenommen. Das heißt, dass das Muster, wie z. B. das Streifenmuster, das durch den Projektor 33 erzeugt wird, nicht auf der Oberfläche des Werkstücks 61, 62 erzeugt wird. Das Bild 96 umfasst das Bild des Werkstücks 61 und das Bild des Werkstücks 62. Zwischen dem Werkstück 61 und dem Werkstück 62 befindet sich ein kleiner Spalt. Der Teil dieses Spalts ist dunkel. Die Konturerfassungseinheit 52 in der Verarbeitungseinheit 51 erfasst die Konturen der Werkstücke 61, 62 unter Verwendung des Bildes 96. Genauer gesagt, die Konturerfassungseinheit 52 erfasst die Positionen der Pixel der Konturen im Bild 96.
  • Die Konturenerkennungseinheit 52 führt in der vorliegenden Ausführungsform zunächst eine Verarbeitung jedes Pixels im Bild 96 unter Verwendung eines Sobel-Filters durch. Aus dem mit dem Sobel-Filter verarbeiteten Bild werden die beiden aneinander angrenzenden Pixel ausgewählt. Dann wird ein Leuchtdichtegradient zwischen den beiden Pixeln berechnet. Das heißt, es wird ein Kontrast zwischen den beiden Pixeln berechnet. Wenn der Kontrast einen vorgegebenen Schwellenwert für den Kontrast überschreitet, wird das Pixel als Kontur des Objekts bestimmt.
  • 10 zeigt ein Flussdiagramm eines Verfahrens zur Einstellung des Schwellenwerts für den Kontrast zur Erkennung der Kontur des Objekts. Der Bediener kann den Schwellenwert für den Kontrast einstellen, indem er den Schwellenwert für den Kontrast ändert und das tatsächlich erzeugte Bild der Kontur betrachtet.
  • In Schritt 111 setzt der Bediener den Schwellenwert für den Kontrast auf einen beliebigen Wert. Der Schwellenwert für den Kontrast wird zum Beispiel auf der Grundlage einer empirischen Regel festgelegt. In Schritt 112 betätigt der Bediener dann das Programmierhandgerät 49 zur Aufnahme des zweidimensionalen Bildes mit der ersten Kamera 31.
  • In Schritt 113 führt die Konturerfassungseinheit 52 eine Verarbeitung des Bildes mit dem Sobel-Filter durch. Die Konturerfassungseinheit 52 erfasst die Pixel, die die Kontur bilden, basierend auf dem Schwellenwert für den Kontrast. Die Konturerfassungseinheit 52 erzeugt zum Beispiel ein Bild, in dem die Pixel, die die Kontur bilden, mit einer anderen Farbe als Schwarz gefärbt sind. In Schritt 114 überlagert der Anzeigeteil 49b des Programmiergeräts 49 das Bild der Kontur mit dem Bild 96 und zeigt es an. In Schritt 115 betrachtet der Bediener das Bild der Kontur und stellt fest, ob die gewünschte Kontur enthalten ist. Wird in Schritt 115 nicht die gewünschte Kontur gefunden, kehrt der Schritt zu Schritt 111 zurück.
  • In Schritt 111 legt der Bediener einen neuen Schwellenwert für den Kontrast fest. Wenn beispielsweise der Schwellenwert für den Kontrast groß ist, wird die Kontur nicht erkannt, es sei denn, der Leuchtdichtegradient an den benachbarten Pixeln ist groß. Wenn im Bild der Kontur keine klare Kontur angezeigt wird, kann der Bediener den Schwellenwert für den Kontrast verringern. Wenn die Kontur beispielsweise nicht so dargestellt wird, dass der Abstand zwischen den Werkstücken 61, 62 deutlich ist, kann der Bediener den Schwellenwert für den Kontrast verringern. Wenn dagegen zu viele Konturen zu sehen sind, kann der Bediener den Schwellenwert für den Kontrast erhöhen. Anschließend werden die Schritte von Schritt 112 bis Schritt 115 wiederholt.
  • In Schritt 115, wenn die gewünschte Kontur erreicht ist, kann der Bediener den Schwellenwert für den Kontrast zu diesem Zeitpunkt verwenden. Auf diese Weise kann der Bediener den Schwellenwert für den Kontrast einstellen.
  • Es ist zu beachten, dass die Erkennung der Kontur im zweidimensionalen Bild nicht auf diese Ausführungsform beschränkt ist und mit jeder beliebigen Methode durchgeführt werden kann. Zum Beispiel kann die Kontur durch Binarisierung des von der zweidimensionalen Kamera aufgenommenen Bildes erkannt werden.
  • 11 zeigt ein Flussdiagramm einer ersten Steuerung in der vorliegenden Ausführungsform. Unter Bezugnahme auf 2 und 11 nimmt die Bildaufnahme-Steuereinheit 57 in der Verarbeitungseinheit 51 das erste Bild mit der ersten Kamera 31 in Schritt 131 auf. Die Bildaufnahmesteuereinheit 57 nimmt das zweite Bild mit der zweiten Kamera 32 auf.
  • Als Nächstes, in Schritt 132, erkennt die Konturerfassungseinheit 52 die Kontur des Objekts anhand des ersten Bildes, das von der ersten Kamera 31 aufgenommen wurde. In der vorliegenden Ausführungsform wird die Kontur des Objekts unter Verwendung des ersten Bildes erfasst, aber die Ausführungsform ist nicht darauf beschränkt, und die Kontur kann unter Verwendung des zweiten Bildes erfasst werden.
  • Außerdem stellt der Bediener einen Bestimmungswert für die erste Punktzahl und einen Bestimmungswert für die zweite Punktzahl ein und speichert sie in der Speichereinheit 42. Der Bestimmungswert für die zweite Punktzahl wird größer eingestellt als der Bestimmungswert für die erste Punktzahl.
  • In Schritt 133 erzeugt die Verarbeitungseinheit 51 das erste Abstandsbild, indem sie den vorbestimmten Bestimmungswert für die erste Punktzahl, das erste Bild und das zweite Bild verwendet. Genauer gesagt, legt die Blocksucheinheit 53 den Auswahlblock im ersten Bild fest. Die Blocksucheinheit 53 erkennt den spezifischen Block, der dem Auswahlblock am meisten entspricht, im zweiten Bild. Wenn die Punktzahl den Bestimmungswert für die erste Punktzahl oder mehr erreicht, setzt die Blocksucheinheit 53 Informationen, die das ungültige Pixel angeben, als Abstandsinformationen des Auswahlpixels im Auswahlblock. Die Berechnungseinheit 54 berechnet die Abstandsinformationen des Pixels, das dem Messpunkt auf der Oberfläche des Werkstücks entspricht, für die anderen Pixel als das ungültige Pixel. Die Erzeugungseinheit 55 erzeugt das erste Abstandsbild durch Integration der Abstandsinformationen der Vielzahl von Pixeln. In Schritt 134, ähnlich wie in Schritt 133, erzeugt die Verarbeitungseinheit 51 das zweite Abstandsbild unter Verwendung des Bestimmungswertes für den zweiten Punktwert, das erste Bild und das zweite Bild.
  • In Schritt 135 legt die Syntheseeinheit 56 einen Bereich fest, der der Kontur entspricht, basierend auf den Konturen der Werkstücke 61, 62, die von der Konturerfassungseinheit 52 erfasst wurden. Genauer gesagt, erfasst die Syntheseeinheit 56 die Pixel, die zur Kontur werden, und legt den Bereich, der der Kontur entspricht, um die Pixel herum fest, die die Kontur werden. Dann identifiziert die Syntheseeinheit 56 die Pixel, die in den Bereichen enthalten sind, die den Konturen der Werkstücke 61, 62 entsprechen, und die Pixel, die in dem Bereich enthalten sind, der nicht den Bereichen entspricht, die den Konturen entsprechen.
  • 12 ist eine vergrößerte Ansicht eines Bildes, in dem die der Kontur entsprechenden Pixel angezeigt werden. Das in 12 dargestellte Bild ist eine vergrößerte Ansicht des Bildes, das z. B. von der ersten Kamera 31 aufgenommen wurde. Das Bild enthält eine Vielzahl von Pixeln 87. Die Konturerfassungseinheit 52 erfasst die Positionen der Pixel 87a, die die Kontur bilden. Im vorliegenden Beispiel sind die Pixel 87a linear ausgerichtet. Eine Linie 89, die durch einen Mittelpunkt 87aa verläuft, der ein Schwerpunkt der Form des Pixels 87a ist, entspricht der Konturlinie des Objekts. Die Syntheseeinheit 56 legt einen Bereich der Breite d in Bezug auf die Linie 89 als den Bereich fest, der der Kontur entspricht. Der Bediener kann die Breiten d vorgeben. So kann beispielsweise die Länge mehrerer Pixel als Breite d festgelegt werden.
  • Die Syntheseeinheit 56 identifiziert Pixel 87b, die in dem Bereich enthalten sind, der der Kontur entspricht, und Pixel 87c, die in dem Bereich enthalten sind, der nicht dem Bereich entspricht, der der Kontur entspricht. Zu diesem Zeitpunkt kann ein Pixel 87d, das teilweise in dem Bereich angeordnet ist, der der Kontur entspricht, als in dem Bereich angeordnet bestimmt werden, der der Kontur entspricht. Alternativ kann das Pixel 87d, das teilweise in dem der Kontur entsprechenden Bereich angeordnet ist, als in dem anderen als dem der Kontur entsprechenden Bereich angeordnet bestimmt werden.
  • In dem in 12 dargestellten Beispiel sind die Pixel 87, die zur Kontur werden, linear entlang der Richtung ausgerichtet, in der die Vielzahl von Pixeln 87 ausgerichtet ist, aber die Ausführungsform ist nicht darauf beschränkt. Die Pixel, die zur Kontur werden, sind in einigen Fällen in einer Richtung ausgerichtet, die in Bezug auf die Richtung, in der die Vielzahl der Pixel ausgerichtet ist, geneigt ist. Alternativ werden die Pixel, die die Kontur bilden, in einigen Fällen in einer gekrümmten Form ausgerichtet. Auch in diesem Fall kann der Bereich, der der Kontur entspricht, durch ein beliebiges Verfahren auf der Grundlage der Pixel, die die Kontur bilden, festgelegt werden. Zum Beispiel wird eine gerade Linie berechnet, die die Mittelpunkte der Pixel verbindet, die zur Kontur werden und aneinander angrenzen. Dann wird der Bereich mit der Breite d in einer Richtung senkrecht zur Verbindungsgeraden der Mittelpunkte festgelegt. Durch diese Kontrolle der jeweiligen Pixel, die zur Kontur werden, kann der der Kontur entsprechende Bereich festgelegt werden. Alternativ dazu wird der Bereich der Breite d von den Mittelpunkten der jeweiligen Pixel, die zur Kontur werden, in einer vorbestimmten Richtung festgelegt. Außerdem wird der Bereich der Breite d von den Mittelpunkten aus in der Richtung senkrecht zu der vorgegebenen Richtung festgelegt. Durch die Durchführung dieser Steuerung auf den jeweiligen Pixeln, die zur Kontur werden, kann der der Kontur entsprechende Bereich festgelegt werden.
  • In Bezug auf 11 erzeugt die Syntheseeinheit 56 in Schritt 136 das synthetische Abstandsbild auf der Grundlage des ersten Abstandsbildes, des zweiten Abstandsbildes und des der Kontur entsprechenden Bereichs.
  • 13 zeigt ein Flussdiagramm einer Steuerung, die das synthetische Abstandsbild durch die Syntheseeinheit erzeugt. In Schritt 141 wählt die Syntheseeinheit 56 ein Pixel aus, das in dem ersten Bild enthalten ist, das zum Beispiel von der ersten Kamera 31 aufgenommen wurde. In Schritt 142 bestimmt die Syntheseeinheit 56, ob ein Pixel innerhalb des Bereichs angeordnet ist, der der Kontur entspricht. Wenn in Schritt 142 ein Pixel innerhalb des Bereichs angeordnet ist, der der Kontur entspricht, geht die Steuerung zu Schritt 143 über.
  • In Schritt 143 verwendet die Syntheseeinheit 56 die Abstandsinformationen dest Pixels, das in dem ersten Abstandsbild enthalten ist, für das Pixel, das in dem Bereich enthalten ist, der der Kontur entspricht. Das heißt, die Syntheseeinheit 56 erkennt das Pixel, das einem Pixel in dem ersten Abstandsbild entspricht. Die Syntheseeinheit 56 setzt die Abstandsinformation des einen Pixels auf die Abstandsinformation des Pixels im ersten Abstandsbild. Wenn die Information zeigt, dass die Abstandsinformation des Pixels im ersten Abstandsbild das ungültige Pixel ist, wird ein Pixel als ungültiges Pixel gesetzt.
  • In Schritt 142, wenn ein Pixel außerhalb des der Kontur entsprechenden Bereichs angeordnet ist, geht die Steuerung zu Schritt 144 über. In Schritt 144 verwendet die Syntheseeinheit 56 die Abstandsinformationen der Pixel in dem zweiten Abstandsbild für die Pixel, die in dem Bereich angeordnet sind, der nicht dem Bereich entspricht, der der Kontur entspricht. Wenn die Information zeigt, dass die Abstandsinformation des Pixels in dem zweiten Abstandsbild das ungültige Pixel ist, wird ein Pixel als ungültiges Pixel gesetzt.
  • Als nächstes bestimmt die Syntheseeinheit 56 in Schritt 145, ob die Abstandsinformationen auf alle Pixel gesetzt wurden. Wenn die Abstandsinformation in Schritt 145 nicht auf mindestens ein Pixel eingestellt ist, geht die Steuerung zu Schritt 141 über. Dann wird in Schritt 141 ein anderes Pixel ausgewählt, und die Steuerung wird von Schritt 142 bis Schritt 145 wiederholt. Auf diese Weise wird die Abstandsinformation auf alle Pixel eingestellt.
  • In Schritt 145, wenn die Abstandsinformation auf alle Pixel eingestellt ist, geht die Steuerung zu Schritt 146 über. In Schritt 146 erzeugt die Syntheseeinheit 56 das synthetische Abstandsbild, das durch Integration der Abstandsinformationen der jeweiligen Pixel gebildet wird.
  • zeigt ein Beispiel für ein synthetisches Abstandsbild, das bei der ersten Kontrolle erzeugt wird. In einem Abstandsbild 92 wird die Abstandsinformation der Pixel durch die Farbtiefe ausgedrückt. Außerdem sind die ungültigen Pixel farblos. Der Bereich der ungültigen Pixel 97, der durch die ungültigen Pixel gebildet wird, wird in einem Spalt zwischen dem Werkstück 61 und dem Werkstück 62 erzeugt. Darüber hinaus gibt es in anderen Bereichen als dem Randbereich der oberen Oberfläche jedes Werkstücks 61, 62 eine kleine Anzahl ungültiger Pixel, und die Abstandsinformationen jedes Pixels enthalten Informationen über den spezifischen Abstand oder die Position. Mit anderen Worten, viele Messpunkte werden in den Bereichen außerhalb der Randbereiche der oberen Oberflächen der Werkstücke 61, 62 erfasst.
  • 15 zeigt ein Beispiel für ein Abstandsbild eines Vergleichsbeispiels. In einem Entfernungsbild 93 des Vergleichsbeispiels wird ein Bestimmungswert für eine Punktzahl, wenn ein Blockabgleich durchgeführt wird, für alle Pixel auf groß gesetzt. Das Abstandsbild 93 ist beispielsweise ein zweites Abstandsbild, das unter Verwendung eines Bestimmungswertes für die zweite Punktzahl erzeugt wird. In diesem Beispiel wird die Abstandsinformation, die Informationen über den spezifischen Abstand oder die Position enthält, auf viele Pixel eingestellt. Das heißt, es werden viele Messpunkte erfasst. Aber auch in der Lücke zwischen dem Werkstück 61 und dem Werkstück 62 wird die Abstandsinformation einschließlich der Information über den spezifischen Abstand oder die spezifische Position eingestellt. Somit verschwindet der Spalt zwischen dem Werkstück 61 und dem Werkstück 62 im Abstandsbild 93. Wie oben beschrieben, ist die Zuverlässigkeit der Abstandsinformationen der Pixel in den Bereichen, wie den Außenkanten der Werkstücke 61, 62, gering.
  • Im Gegensatz dazu entwickelt sich bei der ersten Steuerung der vorliegenden Ausführungsform (siehe 14), da der Bestimmungswert für die Punktzahl in dem Bereich, der der Kontur entspricht, klein eingestellt ist, der Bereich der ungültigen Pixel 97, der aus den ungültigen Pixeln besteht, in dem Bereich, der den äußeren Kanten der Werkstücke 61, 62 entspricht. Der Spalt zwischen dem ersten Werkstück 61 und dem zweiten Werkstück 62 wird deutlich dargestellt. Auf diese Weise können das erste Werkstück 61 und das zweite Werkstück 62 klar voneinander getrennt werden.
  • Die Betriebssteuereinheit 58 in der Verarbeitungseinheit 51 kann erkennen, dass die beiden Werkstücke 61, 62 vorhanden sind. Zusätzlich werden viele Messpunkte im Bereich abseits der Außenkanten der Oberseiten der jeweiligen Werkstücke 61, 62 erfasst. Dies ermöglicht es der Betriebssteuereinheit 58, den Roboter 1 auf der Grundlage der Abstandsinformationen vieler Messpunkte zu steuern. Beispielsweise kann die Betriebssteuereinheit 58 den Roboter 1 so steuern, dass sich die Hand 5 an der Position des Schwerpunkts auf der Oberseite des Werkstücks 61 befindet.
  • Auf diese Weise wird bei der ersten Kontrolle bestimmt, ob jedes Pixel in dem Bereich enthalten ist, der der Kontur entspricht, und die Abstandsinformation des Pixels im ersten Abstandsbild oder die Abstandsinformation des Pixels im zweiten Abstandsbild wird für jedes Pixel festgelegt. So kann in dem Bereich, in dem die Kontur vorhanden ist, das Abstandsbild, in dem die weitere feine Form deutlich ist, mit den ungültigen Pixeln erhalten werden. Andererseits können in dem Bereich, in dem die Kontur nicht vorhanden ist, viele Messpunkte erhalten werden, da die Abstandsinformation in dem Abstandsbild mit dem großen Bestimmungswert für die Punktzahl verwendet wird. Das dreidimensionale Messgerät mit der verbesserten Genauigkeit der Positionsinformation der Oberfläche des Objekts kann bereitgestellt werden.
  • Ein Verfahren zur Einstellung des Bestimmungswertes für die erste Punktzahl in der vorliegenden Ausführungsform wird in 16 beschrieben. Der Bediener kann den Bestimmungswert für die erste Punktzahl und den Bestimmungswert für die zweite Punktzahl einstellen, während er das tatsächlich erzeugte Abstandsbild betrachtet. Zum Beispiel kann der Bediener die Bestimmungswerte für die Punktzahlen einstellen, indem er das Abstandsbild des Werkstücks erzeugt, an dem der eigentliche Vorgang durchgeführt wird.
  • In Schritt 121 legt der Bediener den Bestimmungswert für die erste Punktzahl fest. Beispielsweise legt der Bediener einen beliebigen Bestimmungswert für den ersten Wert auf der Grundlage der empirischen Regel fest. In Schritt 122 betätigt der Bediener das Programmiergerät 49 zur Aufnahme der Bilder durch die erste Kamera 31 und die zweite Kamera 32.
  • In Schritt 123 erzeugt die Verarbeitungseinheit 51 das Entfernungsbild basierend auf dem Bestimmungswert für die erste Punktzahl, das erste Bild und das zweite Bild. In Schritt 124 zeigt der Anzeigeteil 49b des Programmiergeräts 49 das Abstandsbild an. Zum Beispiel wird das in 15 dargestellte Abstandsbild angezeigt.
  • In Schritt 125 stellt der Bediener fest, ob das gewünschte Abstandsbild erhalten wird. Dabei wird zur Einstellung des Bestimmungswertes für die erste Punktzahl ermittelt, ob sich zwischen den Werkstücken 61, 62 der ungültige Pixelbereich 97 bildet. Der zu große Bestimmungswert für die Punktzahl reduziert die ungültigen Pixelbereiche 97 oder lässt die ungültigen Pixelbereiche 97 verschwinden. Andererseits erzeugt ein zu kleiner Bestimmungswert für die Punktzahl die vielen ungültigen Pixelbereiche 97 auch in dem Bereich, der nicht der Bereich der Außenkante des Werkstücks 61, 62 ist. Dies führt dazu, dass die Anzahl der Bildpunkte mit Informationen, wie z.B. den spezifischen Abständen, die den Oberflächen der Werkstücke 61, 62 entsprechen, abnimmt. Das heißt, die Anzahl der Messpunkte, die auf den Oberseiten der Werkstücke 61, 62 liegen, nimmt ab.
  • In Schritt 125, wenn das gewünschte Abstandsbild nicht erreicht wird, kehrt der Schritt zu Schritt 121 zurück. Dann stellt der Bediener einen anderen Bestimmungswert für die erste Punktzahl ein. Der Bediener betrachtet das Abstandsbild und ändert den Bestimmungswert für die erste Punktzahl so, dass die ungültigen Pixelbereiche 97 in den Konturen, wie den Außenkanten und den Schrittdifferenzabschnitten der Werkstücke, erzeugt werden. Wenn zum Beispiel die ungültigen Pixelbereiche 97 nicht zwischen den Werkstücken 61, 62 erzeugt werden, stellt der Bediener den kleinen Bestimmungswert für die erste Punktzahl ein. Wenn viele ungültige Pixelbereiche 97 gebildet werden, stellt der Bediener den großen Bestimmungswert für die erste Punktzahl ein. Dann wiederholt der Bediener die Schritte von Schritt 122 bis Schritt 125. Wenn das gewünschte Abstandsbild in Schritt 125 erzeugt wird, kann der Bestimmungswert für die erste Punktzahl zu diesem Zeitpunkt verwendet werden.
  • Der Bestimmungswert für die zweite Punktzahl kann auch in dem Verfahren ähnlich wie in 16 eingestellt werden. In Schritt 125 stellt der Bediener fest, ob in den Bereichen, die den Oberseiten der Werkstücke 61, 62 im Abstandsbild entsprechen, viele Pixel vorhanden sind, auf die die Information, wie z.B. der spezifische Abstand, eingestellt ist. In dem mit dem Bestimmungswert für die zweite Wertung erzeugten Abstandsbild müssen die ungültigen Pixelbereiche nicht zwischen den Werkstücken 61, 62 entstehen. Der Bestimmungswert für die zweite Punktzahl wird größer eingestellt als der Bestimmungswert für die erste Punktzahl. Die Verarbeitungseinheit 51 kann das synthetische Abstandsbild unter Verwendung der so eingestellten ersten Punktzahl und der zweiten Punktzahl erzeugen.
  • Als nächstes wird die zweite Steuerung in der vorliegenden Ausführungsform beschrieben. Bei der zweiten Steuerung wird statt der Änderung der Bestimmungswerte für die Punktzahlen und der Aufnahme einer Vielzahl von Abstandsbildern die Blockgröße geändert und eine Vielzahl von Abstandsbildern aufgenommen. Dann wird die Vielzahl der Abstandsbilder, die so gebildet werden, dass sich die Blockgrößen voneinander unterscheiden, synthetisiert, wodurch das synthetische Abstandsbild erzeugt wird.
  • Wenn die Blockgrößen so vergrößert werden, dass der Auswahlblock 81 und der Suchblock 83 bei der Durchführung des Blockabgleichs viele Pixel enthalten, nimmt die Genauigkeit der Parallaxenberechnung ab, da die Unterschiede zwischen vielen Pixeln integriert werden (siehe 4 und 5). Außerdem kann es in einem Fall, in dem die Blockgrößen reduziert werden, vorkommen, dass die Durchführung des Blockabgleichs in einem Bereich, in dem sich die Pixelwerte allmählich ändern, schwierig ist. So kann es beispielsweise vorkommen, dass viele Suchblöcke mit demselben Wert erkannt werden.
  • Bei der zweiten Steuerung definiert der Bediener einen ersten Auswahlblock und einen zweiten Auswahlblock, der mehr Pixel als der erste Auswahlblock enthält, im Voraus. Das heißt, der Bediener definiert die Auswahlblöcke, die sich in der Blockgrö-ße voneinander unterscheiden. Die Blockgröße des ersten Auswahlblocks ist kleiner als die des zweiten Auswahlblocks. Als erster Auswahlblock kann zum Beispiel ein Block aus drei Zeilen und drei Spalten verwendet werden. Als zweiter Auswahlblock kann auch ein Block mit neun Zeilen und neun Spalten verwendet werden.
  • 17 zeigt ein Flussdiagramm der zweiten Steuerung. Mit Bezug auf 2 und 17 sind die Schritte 131 und 132 ähnlich denen der Steuerung in der ersten Steuerung (siehe 11). In Schritt 153 erzeugen die Blocksucheinheit 53, die Berechnungseinheit 54 und die Erzeugungseinheit 55 das erste Abstandsbild unter Verwendung des ersten Bildes, des zweiten Bildes und des ersten Auswahlblocks. Die Blocksucheinheit 53 führt die Steuerung des Blockabgleichs unter Verwendung des ersten Auswahlblocks und des Suchblocks mit der gleichen Blockgröße wie der des ersten Auswahlblocks durch.
  • In Schritt 154 erzeugen die Blocksucheinheit 53, die Berechnungseinheit 54 und die Erzeugungseinheit 55 das zweite Abstandsbild unter Verwendung des ersten Bildes, des zweiten Bildes und des zweiten Auswahlblocks. Die Blocksucheinheit 53 führt die Steuerung des Blockabgleichs unter Verwendung des zweiten Auswahlblocks und des Suchblocks mit der gleichen Blockgröße wie der des zweiten Auswahlblocks durch.
  • Im nächsten Schritt 135 erfasst die Syntheseeinheit 56, ähnlich wie bei der ersten Steuerung, die Pixel, die zu den Konturen der Werkstücke 61, 62 werden, die von der Konturerfassungseinheit 52 erfasst wurden. Die Syntheseeinheit 56 legt den Bereich fest, der der Kontur entspricht, basierend auf den Pixeln, die zur Kontur werden. Die Syntheseeinheit 56 identifiziert die Pixel, die in dem Bereich enthalten sind, der der Kontur entspricht, und die Pixel, die in dem Bereich enthalten sind, der nicht dem Bereich entspricht, der der Kontur entspricht (siehe 11 und 12).
  • In Schritt 156 erzeugt die Syntheseeinheit 56 das synthetische Abstandsbild. Die Syntheseeinheit 56 setzt dem Pixel, das in dem Bereich enthalten ist, der der Kontur entspricht, die Abstandsinformation des Pixels, das in dem ersten Abstandsbild enthalten ist, das durch den ersten Auswahlblock erzeugt wurde. Andererseits wird die Abstandsinformation des Pixels, das in dem zweiten Abstandsbild enthalten ist, das durch den zweiten Auswahlblock erzeugt wird, auf das Pixel gesetzt, das in dem Bereich enthalten ist, der nicht dem Bereich entspricht, der der Kontur entspricht. Auf diese Weise kann das synthetische Abstandsbild erzeugt werden, indem für jedes der Pixel die Abstandsinformation des Pixels, das in dem ersten Abstandsbild enthalten ist, oder die Abstandsinformation des Pixels, das in dem zweiten Abstandsbild enthalten ist, eingestellt wird.
  • 18 zeigt ein Flussdiagramm eines Verfahrens zur Einstellung der Blockgröße des ersten Auswahlblocks. Der Bediener kann die Blockgröße des ersten Auswahlblocks einstellen, während er das aktuell erzeugte Entfernungsbild betrachtet. In Schritt 161 stellt der Bediener den ersten Auswahlblock ein. Der Bediener stellt den ersten Auswahlblock auf eine beliebige Blockgröße ein, die z.B. auf Erfahrungswerten beruht. In Schritt 162 betätigt der Bediener das Programmierhandgerät 49 zur Aufnahme der Bilder durch die erste Kamera 31 und die zweite Kamera 32. In Schritt 163 erzeugt die Verarbeitungseinheit 51 das Abstandsbild unter Verwendung des ersten Auswahlblocks. Der Anzeigeteil 49b im Programmierhandgerät 49 zeigt das Abstandsbild an.
  • In Schritt 165 bestimmt der Bediener, ob das gewünschte Abstandsbild erhalten wird. Im ersten Abstandsbild, das durch den ersten Auswahlblock erzeugt wird, wird die Kontur, wie z. B. die Außenkante oder der Stufenunterschiedsbereich des Werkstücks, vorzugsweise deutlich dargestellt. Durch die Vergrößerung des Blocks verschwimmen beispielsweise die Konturen der Werkstücke 61, 62. Außerdem verschwindet möglicherweise der Spalt zwischen den Werkstücken 61, 62. Andererseits wird durch die zu kleine Blockgröße möglicherweise eine andere als die gewünschte Kontur erkannt.
  • In Schritt 165, wenn das gewünschte Abstandsbild nicht erreicht wird, wird zu Schritt 161 übergegangen. In Schritt 161 stellt der Bediener den ersten Auswahlblock ein, dessen Blockgröße geändert wurde. Wenn zum Beispiel der Abstand zwischen den Werkstücken 61, 62 unklar ist, kann der erste Auswahlblock mit der reduzierten Blockgröße eingestellt werden. Dann wiederholt der Bediener den Vorgang von Schritt 162 bis Schritt 165. In Schritt 165, wenn das gewünschte Abstandsbild erhalten wird, kann der erste Auswahlblock mit der zu diesem Zeitpunkt geltenden Blockgröße verwendet werden.
  • Die Blockgröße des zweiten Auswahlblocks kann auch durch ein ähnliches Verfahren wie in 18 eingestellt werden. Zum Beispiel kann der Bediener die Blockgröße des zweiten Auswahlblocks so einstellen, dass die Kontur des Spalts zwischen den Werkstücken 61, 62 in den Schritten 161, 165 unklar wird.
  • 19 zeigt das Abstandsbild, das bei der zweiten Kontrolle aufgenommen wurde. In den Bereichen, in denen die Außenkanten der Werkstücke 61, 62 vorhanden sind, wird die Abstandsinformation der Pixel des ersten Abstandsbildes, das durch den ersten Auswahlblock mit der kleinen Blockgröße erzeugt wurde, verwendet. Zum Beispiel werden in dem Bereich, in dem der Spalt zwischen dem Werkstück 61 und dem Werkstück 62 vorhanden ist, die Abstandsinformationen der Pixel des ersten Abstandsbildes verwendet. So werden in einem Abstandsbild 94 die Außenkante des Werkstücks 61 und die Außenkante des Werkstücks 62 deutlich dargestellt. Insbesondere wird der Spalt zwischen dem Werkstück 61 und dem Werkstück 62 durch den Tiefenunterschied der Pixel deutlich dargestellt.
  • Andererseits wird in dem Bereich, der nicht die Kontur des Werkstücks 61, 62 ist, die Abstandsinformation der Pixel in dem zweiten Abstandsbild verwendet, das mit der zweiten Blockgröße erzeugt wurde, die die große Blockgröße hat. Im mittleren Bereich der Oberseiten der Werkstücke 61, 62 wird die Abstandsinformation der Pixel im zweiten Abstandsbild verwendet. Auf diese Weise werden viele Messpunkte gesetzt, an denen die Abstandsinformationen genau sind. Außerdem können die genauen Positionsinformationen der Oberflächen der Werkstücke 61, 62 auch in einem Bereich erfasst werden, in dem der Gradient der Pixelwerte, wie z. B. der Leuchtdichte oder einer Dichte, in dem zweidimensionalen Bild klein ist.
  • Die anderen Kontrollen ähneln denen der ersten Kontrolle, so dass sie hier nicht weiter beschrieben werden.
  • Der Bildverarbeitungssensor 30 der vorliegenden Ausführungsform ist an dem Trägerelement 66 befestigt, aber die Ausführungsform ist nicht darauf beschränkt. Der Bildsensor kann so angeordnet werden, dass das Bild des Werkstücks erfasst werden kann. Beispielsweise kann der Bildsensor am Handgelenk befestigt werden, so dass er sich zusammen mit dem Handgelenk des Roboters bewegt. In diesem Fall kann die Position des Kamerakoordinatensystems im Roboter im Voraus berechnet werden. Dann kann die im Kamerakoordinatensystem erzeugte Positionsinformation der Oberfläche des Objekts auf der Grundlage der Position und der Ausrichtung des Roboters in das Weltkoordinatensystem umgerechnet werden.
  • Der Bildsensor 30 der vorliegenden Ausführungsform umfasst zwei zweidimensionale Kameras, aber die Ausführungsform ist nicht darauf beschränkt. Der Bild-Sensor kann auch drei oder mehr zweidimensionale Kameras umfassen. Bei dieser Konfiguration, bei der der dreidimensionale Sensor drei oder mehr Kameras umfasst, kann die Positionsinformation der Oberfläche des Objekts auf der Grundlage der von den anderen Kameras aufgenommenen Bilder generiert werden, selbst wenn ein Teil des Bildes unklar ist, z. B. aufgrund von Lichthofbildung. Ferner umfasst der Bild-Sensor gemäß der vorliegenden Ausführungsform den Projektor, aber die Ausführungsform ist nicht darauf beschränkt. Der Bild-Sensor muss den Projektor nicht enthalten.
  • In der vorliegenden Ausführungsform fungiert die Steuereinheit, die den Roboter steuert, als Verarbeitungseinheit für die Verarbeitung des Bildes des Bild-Sensors, aber die Ausführungsform ist nicht darauf beschränkt. Die Verarbeitungseinheit kann durch eine Recheneinheit (einen Computer) konfiguriert werden, die sich von der den Roboter steuernden Steuerung unterscheidet. So kann beispielsweise ein Tablet-Terminal, das als Verarbeitungseinheit fungiert, an die Steuerung des Roboters angeschlossen werden.
  • Die dreidimensionale Messvorrichtung der vorliegenden Ausführungsform ist in einer Robotervorrichtung angeordnet, aber die Ausführungsform ist nicht darauf beschränkt. Die dreidimensionale Messvorrichtung kann in einem beliebigen Gerät untergebracht werden.
  • Bei jeder der oben beschriebenen Kontrollen kann die Reihenfolge der Schritte beliebig geändert werden, solange die Funktion und die Wirkung nicht verändert werden.
  • Die obige Ausführungsform kann nach Bedarf geändert werden. In jeder der oben beschriebenen Zeichnungen sind die gleichen oder gleichwertige Teile durch die gleichen Bezugszeichen bezeichnet. Es sollte beachtet werden, dass die oben beschriebene Ausführungsform ein Beispiel ist und die Erfindung nicht einschränkt. Darüber hinaus umfasst die Ausführungsform Modifikationen der in den Ansprüchen beschriebenen Ausführungsform.
  • Bezugszeichenliste
  • 2
    Controller
    23
    Positionsmelder
    30
    Bild-Sensor
    31
    erste Kamera
    32
    zweite Kamera
    51
    Verarbeitungseinheit
    52
    Konturerfassungseinheit
    53
    Blocksucheinheit
    54
    Berechnungseinheit
    55
    Erzeugungseinheit
    56
    Synthesegerät
    61, 62, 63
    Werkstück
    77
    erstes Bild
    78
    zweites Bild
    81
    Auswahlblock
    82
    spezifischer Block
    85, 86, 87
    Pixel
    85a
    Auswahl Pixel
    87a, 87b, 87c
    Pixel
    91, 92, 93, 94
    Abstandsbild
    96
    Bild
    97
    ungültiger Pixelbereich

Claims (3)

  1. Eine dreidimensionale Messvorrichtung, die Folgendes umfasst: einen Bildsensor, der eine erste Kamera zur Erfassung eines ersten Bildes und eine zweite Kamera zur Erfassung eines zweiten Bildes umfasst; einen Konturerfassungssensor, der so konfiguriert ist, dass er eine Kontur eines Objekts erfasst; und eine Verarbeitungseinheit, die so konfiguriert ist, dass sie Positionsinformationen einer Oberfläche des Objekts auf der Grundlage des ersten Bildes und des zweiten Bildes erfasst, wobei die Verarbeitungseinheit umfasst: eine Konturerfassungseinheit, die so konfiguriert ist, dass sie die Kontur des Objekts auf der Grundlage einer Ausgabe des Konturerfassungssensors erfasst; eine Blocksucheinheit, die so konfiguriert ist, dass sie einen aus einer Vielzahl von Pixeln gebildeten Auswahlblock festlegt, der ein im ersten Bild ausgewähltes Auswahlpixel enthält, wobei die Blocksucheinheit so konfiguriert ist, dass sie nach einem bestimmten Block sucht, der dem Auswahlblock im zweiten Bild entspricht; eine Berechnungseinheit, die so konfiguriert ist, dass sie Abstandsinformationen eines Pixels auf der Grundlage einer Parallaxe zwischen einer Position des Auswahlpixels in dem Auswahlblock und einer Position eines spezifischen Pixels, das dem Auswahlpixel in dem spezifischen Block entspricht, berechnet; eine Erzeugungseinheit, die so konfiguriert ist, dass sie die Positionsinformationen der Oberfläche des Objekts einschließlich der Abstandsinformationen einer Vielzahl der Pixel erzeugt; und eine Syntheseeinheit, die so konfiguriert ist, dass sie die Positionsinformationen der Oberfläche des Objekts synthetisiert, die unter voneinander verschiedenen Bedingungen erzeugt wurden, die Blocksucheinheit so konfiguriert ist, dass sie einen integrierten Wert berechnet, indem sie Größen von Differenzen zwischen Werten von Pixeln, die in dem Auswahlblock enthalten sind, und Werten von Pixeln, die in dem spezifischen Block enthalten sind, oder quadratische Werte der Differenzen integriert, bestimmt, dass das in dem spezifischen Block enthaltene Pixel dem in dem Auswahlblock enthaltenen Pixel entspricht, wenn der integrierte Wert kleiner als ein vorbestimmter Bestimmungswert ist, und Informationen, die ein ungültiges Pixel anzeigen, als Abstandsinformationen des Auswahlpixels setzt, wenn der integrierte Wert den vorbestimmten Bestimmungswert überschreitet oder der spezifische Block, der dem Auswahlblock entspricht, nicht erkannt wird, ein erster Bestimmungswert bezüglich des integrierten Wertes und ein zweiter Bestimmungswert bezüglich des integrierten Wertes, der größer als der erste Bestimmungswert ist, vorgegeben werden, die Blocksucheinheit, die Berechnungseinheit und die Erzeugungseinheit konfiguriert sind, um eine erste Positionsinformation der Oberfläche unter Verwendung des ersten Bildes, des zweiten Bildes und des ersten Bestimmungswertes und eine zweite Positionsinformation der Oberfläche unter Verwendung des ersten Bildes, des zweiten Bildes und des zweiten Bestimmungswertes zu erzeugen, und die Syntheseeinheit so konfiguriert ist, dass sie einen der Kontur entsprechenden Bereich auf der Grundlage der von der Konturerfassungseinheit erfassten Kontur festlegt, Abstandsinformationen eines in den ersten Positionsinformationen der Oberfläche enthaltenen Pixels für ein Pixel verwendet, das in dem der Kontur entsprechenden Bereich enthalten ist, Abstandsinformationen eines in den zweiten Positionsinformationen der Oberfläche enthaltenen Pixels für ein Pixel verwendet, das in einem anderen Bereich als dem der Kontur entsprechenden Bereich enthalten ist, und dadurch Positionsinformationen einer Oberfläche erzeugt, die durch Synthetisieren der ersten Positionsinformationen der Oberfläche und der zweiten Positionsinformationen der Oberfläche erhalten werden.
  2. Eine dreidimensionale Messvorrichtung, die Folgendes umfasst: einen Bildsensor, der eine erste Kamera zur Erfassung eines ersten Bildes und eine zweite Kamera zur Erfassung eines zweiten Bildes umfasst; einen Konturerfassungssensor, der so konfiguriert ist, dass er eine Kontur eines Objekts erfasst; und eine Verarbeitungseinheit, die so konfiguriert ist, dass sie Positionsinformationen einer Oberfläche des Objekts auf der Grundlage des ersten Bildes und des zweiten Bildes erfasst, wobei die Verarbeitungseinheit umfasst: eine Konturerfassungseinheit, die so konfiguriert ist, dass sie die Kontur des Objekts auf der Grundlage einer Ausgabe des Konturerfassungssensors erfasst; eine Blocksucheinheit, die so konfiguriert ist, dass sie einen aus einer Vielzahl von Pixeln gebildeten Auswahlblock festlegt, der ein im ersten Bild ausgewähltes Auswahlpixel enthält, wobei die Blocksucheinheit so konfiguriert ist, dass sie nach einem bestimmten Block sucht, der dem Auswahlblock im zweiten Bild entspricht; eine Berechnungseinheit, die so konfiguriert ist, dass sie Abstandsinformationen eines Pixels auf der Grundlage einer Parallaxe zwischen einer Position des Auswahlpixels in dem Auswahlblock und einer Position eines spezifischen Pixels erzeugt, das dem Auswahlpixel in dem spezifischen Block entspricht; eine Erzeugungseinheit, die so konfiguriert ist, dass sie die Positionsinformationen der Oberfläche des Objekts einschließlich der Abstandsinformationen einer Vielzahl der Pixel erzeugt; und eine Syntheseeinheit, die so konfiguriert ist, dass sie die Positionsinformationen der Oberfläche des Objekts synthetisiert, die unter voneinander verschiedenen Bedingungen erzeugt wurden, ein erster Auswahlblock und ein zweiter Auswahlblock, der mehr Pixel als Pixel des ersten Auswahlblocks enthält, vorgegeben sind, die Blocksucheinheit, die Berechnungseinheit und die Erzeugungseinheit so konfiguriert sind, dass sie erste Positionsinformationen der Oberfläche unter Verwendung des ersten Bildes, des zweiten Bildes und des ersten Auswahlblocks und zweite Positionsinformationen der Oberfläche unter Verwendung des ersten Bildes, des zweiten Bildes und des zweiten Auswahlblocks erzeugen, und die Syntheseeinheit so konfiguriert ist, dass sie einen der Kontur entsprechenden Bereich auf der Grundlage der von der Konturerfassungseinheit erfassten Kontur festlegt, Abstandsinformationen eines in den ersten Positionsinformationen der Oberfläche enthaltenen Pixels für ein Pixel festlegt, das in dem der Kontur entsprechenden Bereich enthalten ist, Abstandsinformationen eines in den zweiten Positionsinformationen der Oberfläche enthaltenen Pixels für ein Pixel festlegt, das in einem anderen Bereich als dem der Kontur entsprechenden Bereich enthalten ist, und dadurch Positionsinformationen einer Oberfläche erzeugt, die durch Synthetisieren der ersten Positionsinformationen der Oberfläche und der zweiten Positionsinformationen der Oberfläche erhalten werden.
  3. Dreidimensionale Messvorrichtung nach Anspruch 1 oder 2, wobei der Konturerfassungssensor die erste Kamera oder die zweite Kamera ist.
DE112021001440.4T 2020-03-05 2021-02-26 Dreidimensionales Messgerät, das aus einem von mehreren Kameras aufgenommenen Bild Positionsinformationen für eine Objektoberfläche erzeugt Pending DE112021001440T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2020-038173 2020-03-05
JP2020038173 2020-03-05
PCT/JP2021/007347 WO2021177163A1 (ja) 2020-03-05 2021-02-26 複数のカメラにて撮像された画像に基づいて物体の表面の位置情報を生成する三次元測定装置

Publications (1)

Publication Number Publication Date
DE112021001440T5 true DE112021001440T5 (de) 2023-02-09

Family

ID=77613040

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021001440.4T Pending DE112021001440T5 (de) 2020-03-05 2021-02-26 Dreidimensionales Messgerät, das aus einem von mehreren Kameras aufgenommenen Bild Positionsinformationen für eine Objektoberfläche erzeugt

Country Status (5)

Country Link
US (1) US20230129785A1 (de)
JP (1) JP7448633B2 (de)
CN (1) CN115280096A (de)
DE (1) DE112021001440T5 (de)
WO (1) WO2021177163A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021140873A1 (ja) * 2020-01-09 2021-07-15 ソニーグループ株式会社 画像処理装置と画像処理方法および撮像装置
US20230419523A1 (en) * 2022-06-28 2023-12-28 Zebra Technologies Corporation Method, System and Apparatus for Photometric Stereo Reconstruction of a Surface

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3513219B2 (ja) * 1994-07-12 2004-03-31 キヤノン株式会社 対応点マッチング方法および装置
JP3524826B2 (ja) 1999-09-16 2004-05-10 日本電信電話株式会社 三次元画像処理方法、装置、および三次元画像処理プログラムを記録した記録媒体
JP5071866B2 (ja) 2008-06-03 2012-11-14 富士フイルム株式会社 距離測定装置および方法並びにプログラム
JP5782766B2 (ja) 2011-03-18 2015-09-24 株式会社リコー 画像処理装置、画像処理方法、及び画像処理プログラム
JP5955291B2 (ja) 2013-09-30 2016-07-20 富士重工業株式会社 フィルタリング装置および環境認識システム

Also Published As

Publication number Publication date
WO2021177163A1 (ja) 2021-09-10
JPWO2021177163A1 (de) 2021-09-10
JP7448633B2 (ja) 2024-03-12
US20230129785A1 (en) 2023-04-27
CN115280096A (zh) 2022-11-01

Similar Documents

Publication Publication Date Title
DE102015011914B4 (de) Konturlinienmessvorrichtung und Robotersystem
DE69428686T2 (de) Bildaufnahmevorrichtung und verfahren zur bestimmung von fokusinformationen
DE102018200155B4 (de) Kalibrationsvorrichtung, Kalibrationsverfahren und Programm für einen visuellen Sensor
DE102015002760B4 (de) Robotersimulationssystem, das den Prozess des Entnehmens von Werkstücken simuliert
DE102015101710B4 (de) Verfahren zum Kalibrieren eines beweglichen Greiforgans unter Verwendung einer entfernten Digitalkamera
DE69826753T2 (de) Optischer Profilsensor
DE112010004767B4 (de) Punktwolkedaten-Verarbeitungsvorrichtung, Punktwolkedaten-Verarbeitungsverfahren und Punktwolkedaten-Verarbeitungsprogramm
DE19509884C2 (de) Verfahren zum Ausrichten von Zuschnittsegmenten
DE102018109774B4 (de) Bildverarbeitungssystem, Bildverarbeitungsvorrichtung und Bildverarbeitungsprogramm
DE602006000627T2 (de) Dreidimensionales Messverfahren und dreidimensionale Messvorrichtung
DE102006055758B4 (de) Verfahren zur Kalibrierung von Kameras und Projektoren
DE112013004103B4 (de) Verfahren und Vorrichtung zum Erzeugen einer Disparitätskarte
DE69330550T2 (de) Verfahren und System zum Lokalisieren von Objekten mit einer Unterpixelpräzision
DE19937265A1 (de) Verfahren und Vorrichtung zur Positionierung eines Meßkopfes auf einer kontaktfreien dreidimensionalen Meßmaschine
DE102015016530B4 (de) Roboter-Identifizierungssystem
DE112017006976B4 (de) Überlagerungspositionskorrektureinrichtung und überlagerungspositionskorrekturverfahren
DE112021001440T5 (de) Dreidimensionales Messgerät, das aus einem von mehreren Kameras aufgenommenen Bild Positionsinformationen für eine Objektoberfläche erzeugt
DE102018113589A1 (de) Vorrichtung und Programm zur Positionserfassung
DE19525561C2 (de) 3D-Meßvorrichtung
DE102019124810A1 (de) Bildverarbeitungsgerät und Bildverarbeitungsverfahren
DE102020118635A1 (de) 3D-Datenerzeugungsvorrichtung und Robotersteuersystem
DE202019105838U1 (de) Anordnung mit einem Koordinatenmessgerät oder Mikroskop
DE69124189T2 (de) Vorrichtung zur messung der blattlänge
EP1098268A2 (de) Verfahren zur dreidimensionalen optischen Vermessung von Objektoberflächen
DE102020121396A1 (de) Objektdetektionsvorrichtung und Objektdetektionscomputerprogramrn

Legal Events

Date Code Title Description
R012 Request for examination validly filed