DE102020111139A1 - Verfeinerung nach Erfassung basierend auf Kanten und mehrdimensionalen Ecken - Google Patents

Verfeinerung nach Erfassung basierend auf Kanten und mehrdimensionalen Ecken Download PDF

Info

Publication number
DE102020111139A1
DE102020111139A1 DE102020111139.8A DE102020111139A DE102020111139A1 DE 102020111139 A1 DE102020111139 A1 DE 102020111139A1 DE 102020111139 A DE102020111139 A DE 102020111139A DE 102020111139 A1 DE102020111139 A1 DE 102020111139A1
Authority
DE
Germany
Prior art keywords
edge
edges
image
detected
location
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
DE102020111139.8A
Other languages
English (en)
Inventor
Jinze Yu
Jose Jeronimo Moreira Rodrigues
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.)
Mujin Inc
Original Assignee
Mujin Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mujin Inc filed Critical Mujin Inc
Publication of DE102020111139A1 publication Critical patent/DE102020111139A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1687Assembly, peg and hole, palletising, straight line, weaving pattern movement
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G61/00Use of pick-up or transfer devices or of manipulators for stacking or de-stacking articles not otherwise provided for
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0014Image feed-back for automatic industrial control, e.g. robot with camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/174Segmentation; Edge detection involving the use of two or more images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • 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/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • 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/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • 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/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/457Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by analysing connectivity, e.g. edge linking, connected component analysis or slices
    • 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/98Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/52Surveillance or monitoring of activities, e.g. for recognising suspicious objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/647Three-dimensional objects by matching two-dimensional images to three-dimensional objects
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G2201/00Indexing codes relating to handling devices, e.g. conveyors, characterised by the type of product or load being conveyed or handled
    • B65G2201/02Articles
    • B65G2201/0235Containers
    • B65G2201/025Boxes
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G2203/00Indexing code relating to control or detection of the articles or the load carriers during conveying
    • B65G2203/02Control or detection
    • B65G2203/0208Control or detection relating to the transported articles
    • B65G2203/0233Position of the article
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G2203/00Indexing code relating to control or detection of the articles or the load carriers during conveying
    • B65G2203/04Detection means
    • B65G2203/041Camera
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G57/00Stacking of articles
    • B65G57/02Stacking of articles by adding to the top of the stack
    • B65G57/03Stacking of articles by adding to the top of the stack from above
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40006Placing, palletize, un palletize, paper roll placing, box stacking
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45056Handling cases, boxes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/06Recognition of objects for industrial automation

Landscapes

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

Abstract

Die vorliegende Offenbarung betrifft das Verifizieren einer anfänglichen Objektschätzung eines Objekts. Ein zweidimensionales (2D) Bild, das eine Umgebung einschließlich eines oder mehrerer Objekte darstellt, kann erlangt werden. Das 2D-Bild kann inspiziert werden, um Kanten eines Objekts zu erfassen. Die Kanten können verarbeitet werden, um eine anfängliche Objektschätzung zu verifizieren oder zu aktualisieren, um die Genauigkeit eines Objekterfassungsergebnisses zu erhöhen.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG(EN)
  • Diese Anmeldung beansprucht die Priorität der vorläufigen US-Patentanmeldung mit der Seriennummer 62/879,359, eingereicht am 26. Juli 2019, die in ihrer Gesamtheit durch Verweis in die vorliegende Schrift aufgenommen ist.
  • TECHNISCHES GEBIET
  • Die vorliegende Technologie bezieht sich im Allgemeinen auf Robotersysteme und insbesondere auf Systeme, Prozesse und Techniken für das Verfeinern von Erfassungsergebnissen.
  • ALLGEMEINER STAND DER TECHNIK
  • In vielen Fällen sind Pakete auf Paletten angeordnet (oder „palettiert“), um an einen Zielort gesendet zu werden, wobei die Pakete anschließend an dem Zielort von der Palette genommen werden. Pakete können von menschlichen Arbeitern entpalettiert werden, was ressourcenintensiv sein und das Verletzungsrisiko für die menschlichen Arbeiter erhöhen kann. In industriellen Anordnungen können Entpalettiervorgänge durch Industrieroboter durchgeführt werden, wie etwa durch einen Roboterarm, der das Paket greift, anhebt, transportiert und an einem Absetzpunkt ablegt. Zudem kann eine bildgebende Vorrichtung dazu verwendet werden, ein Bild eines Paketstapels, der auf die Palette geladen wurde, aufzunehmen. Ein System kann das Bild verarbeiten, um sicherzustellen, dass das Paket durch den Roboterarm effizient umgeschlagen wird, wie etwa durch Vergleichen des aufgenommenen Bildes mit einem registrierten Bild, das in einer Registrierungsdatenquelle gespeichert ist.
  • Gelegentlich kann das aufgenommene Bild eines Pakets mit einem registrierten Bild übereinstimmen. Folglich können physische Eigenschaften (z. B. Abmessungen eines Pakets, Gewicht und/oder Massenmittelpunkt) der bildlich dargestellten Objekte unbekannt falsch dargestellt sein und/oder den vorbestimmten Daten oder Vorlagedaten nicht entsprechen. Werden die physischen Eigenschaften nicht ordnungsgemäß erkannt, können sich daraus eine Reihe unerwünschter Ergebnisse ergeben. Beispielsweise könnte eine derartige Situation zu einem Stillstand führen, was eine manuelle Registrierung des Pakets nach sich ziehen könnte. Zudem könnte eine derartige Situation dazu führen, dass das Paket falsch umgeschlagen wird, insbesondere, wenn das Paket relativ schwer und/oder ungleichgewichtig ist.
  • Figurenliste
  • Verschiedene Merkmale und Eigenschaften der Technologie werden dem Fachmann durch eine genaue Lektüre der Detaillierten Beschreibung in Verbindung mit den Zeichnungen ersichtlicher. Ausführungsformen der Technologie sind beispielhaft und ohne Einschränkung in den Zeichnungen dargestellt, in denen ähnliche Bezugszeichen ähnliche Elemente anzeigen können.
    • 1 ist eine Veranschaulichung einer beispielhaften Umgebung, in der ein Robotersystem mit einem Registrierungssystem für eine Verfeinerung nach Erfassung arbeiten kann.
    • 2 ist eine Veranschaulichung des Robotersystems gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
    • 3 ist eine Veranschaulichung einer Szene mit mehreren erkennbaren Objekten gemäß einigen Ausführungsformen der vorliegenden Technologie.
    • 4 ist eine Veranschaulichung eines Abschnitts einer Szene, die ein Objekt gemäß einigen Ausführungsformen der vorliegenden Technologie darstellt.
    • 5 ist eine Veranschaulichung einer kantenbasierten Objekterfassung gemäß einigen Ausführungsformen der vorliegenden Technologie.
    • 6 ist eine Veranschaulichung einer Szene mit erkannten Kanten und anfänglichen Objektschätzungen gemäß einigen Ausführungsformen der vorliegenden Technologie.
    • 7 ist eine Veranschaulichung einer aktualisierten Objektschätzung gemäß einigen Ausführungsformen der vorliegenden Technologie.
    • 8 ist ein Blockdiagramm eines Verfahrens zum Betreiben des Robotersystems aus 1 gemäß einigen Ausführungsformen der vorliegenden Technologie.
    • 9 ist ein Blockdiagramm, das ein beispielhaftes Verarbeitungssystem veranschaulicht, in dem mindestens einige der in der vorliegenden Schrift beschriebenen Vorgänge ausgeführt werden können.
  • Die Zeichnungen zeigen verschiedene Ausführungsformen lediglich zum Zwecke der Veranschaulichung. Der Fachmann wird erkennen, dass alternative Ausführungsformen verwendet werden können, ohne von den Prinzipien der Technologie abzuweichen. Dementsprechend ist, wenngleich in den Zeichnungen konkrete Ausführungsformen dargestellt sind, die Technologie offen für verschiedene Modifikationen.
  • DETAILLIERTE BESCHREIBUNG
  • Systeme und Verfahren für Robotersysteme mit Verfeinerungsmechanismen nach Erfassung sind in der vorliegenden Schrift beschrieben. Ein Robotersystem (z. B. ein integriertes System von Vorrichtungen, das eine oder mehrere festgelegte Aufgaben ausführt), das gemäß einiger Ausführungsformen konfiguriert ist, stellt eine verbesserte Nutzbarkeit und Flexibilität durch Verfeinern oder Einstellen von Objekterfassungsergebnissen basierend auf Eigenschaften bereit, die in zweidimensionalen (2D) und/oder dreidimensionalen (3D) Bilddaten erfasst sind, wie etwa Kanten oder Ecken.
  • Um zu ermitteln, ob Objekte erkannt werden, kann das Robotersystem die Bilddaten im Hinblick auf Objekte an einem Startstandort (z. B. ein oder mehrere Bilder von exponierten Oberflächen der Objekte) abrufen und mit Registrierungsdaten für bekannte oder erwartete Objekte vergleichen. Das Robotersystem kann ein Objekt als erkannt ermitteln, wenn die verglichenen Daten (z. B. ein Abschnitt des verglichenen Bildes) mit Registrierungsdaten (z. B. eines der registrierten Oberflächenbilder) für eines der Objekte übereinstimmen. Das Robotersystem kann das Objekt durch Schlussfolgern, dass ein erkanntes Objekt an einem bestimmten Standort innerhalb des abgebildeten Bereichs existiert, erfassen. Dementsprechend kann das Robotersystem Erfassungsergebnisse erzeugen, die die erkannten Objekte und/oder Standorte der erkannten Objekte darstellen.
  • In vielen Fällen kann das Bestimmen einer Position/Ausrichtung eines Objekts (z. B. einer Box, die auf einer Palette angeordnet ist) ein Verwenden von vorbestimmten/gespeicherten Objektvorlagen (z. B. visuellen Bildern der Objektoberfläche) mit Oberflächenmarkierung/- designs beinhalten. Ein Verlassen auf derartige vorbestimmte/gespeicherte Objektvorlagen zur Identifizierung von Objekten kann jedoch zu ungenauen Ergebnissen für die tatsächliche Position/den tatsächlichen Standort der Objekte in der realen Welt führen.
  • Zum Beispiel kann/können die tatsächliche(n) Oberflächenmarkierung/-designs auf einem Objekt/einer Box gegenüber denen in den vordefinierten/gespeicherten Objektvorlagen versetzt sein, verzerrt sein oder in einer anderen Ausrichtung vorliegen. Mit anderen Worten können die aufgenommenen Bilder aufgrund von Computersichtfehlern ungenaue Darstellungen der Oberflächenmarkierungen/-designs aufweisen und/oder die verarbeiteten Objekte können solche Oberflächenmarkierungen/-designs aufweisen, die versetzt sind oder die sich von dem beabsichtigten Bild oder dem Vorlagenbild unterscheiden, wie etwa aufgrund von Herstellungsfehlern.
  • Die verschiedenen Arten von Fehlern in Bezug auf das aufgenommene Erscheinungsbild der Oberfläche können zu der Bestimmung führen, dass das Objekt in einer Position/Ausrichtung vorliegt, die sich von seiner tatsächlichen Position/Ausrichtung in der realen Welt unterscheidet (z. B. an einem Lagerort/auf einer Palette). Die ungenaue Bestimmung von Position/Standort eines Objekts kann ferner zu Fehlern oder einem Versagen bei der Handhabung des Objekts in einer nachfolgenden Aktion führen, wie etwa aufgrund von Greifen des Objekts außerhalb des Standorts des Massenmittelpunkts (MMP) beim Weitergeben des Objekts.
  • Dementsprechend können die vorliegenden Ausführungsformen eine paarweise Kantenanalyse umsetzen, um Versatz/Ausrichtungsfehler zwischen einer anfänglichen Objektschätzung und erfassten Merkmalen des Objekts zu identifizieren. Basierend auf einem beliebigen erfassten Versatz-/Ausrichtungsfehler kann die anfängliche Objektschätzung beim Abschließen der Objekterfassung aktualisiert oder verifiziert werden. Die Verifizierung und/oder das Aktualisieren der anfänglichen Objektschätzung kann die Genauigkeit der Position/des Standorts des Objekts erhöhen.
  • In der nachstehenden Beschreibung sind zahlreiche spezifische Details dargelegt, um ein tiefgreifendes Verständnis der vorliegend offenbarten Technologie zu gewährleisten. In anderen Ausführungsformen können die hier eingeführten Techniken ohne diese spezifischen Details in die Praxis umgesetzt werden. In anderen Fällen werden hinreichend bekannte Merkmale, wie etwa spezifische Funktionen oder Routinen, nicht ausführlich beschrieben, um die vorliegende Offenbarung nicht unnötig undeutlich zu machen. Bezugnahmen in dieser Beschreibung auf „eine Ausführungsform“ oder dergleichen bedeuten, dass ein/e bestimmte/s Merkmal, Struktur, Material oder Charakteristik, das bzw. die beschrieben ist, in mindestens einer Ausführungsform der vorliegenden Offenbarung enthalten ist. Somit beziehen sich derartige Formulierungen in dieser Beschreibung nicht notwendigerweise allesamt auf die gleiche Ausführungsform. Andererseits schließen sich derartige Verweise auch nicht notwendigerweise gegenseitig aus. Zudem können die konkreten Merkmale, Strukturen, Materialien oder Eigenschaften in einer oder mehreren Ausführungsformen auf eine beliebige geeignete Weise kombiniert werden. Es versteht sich, dass die in den Figuren gezeigten verschiedenen Ausführungsformen lediglich veranschaulichende Darstellungen und nicht unbedingt maßstabsgetreu sind.
  • Mehrere Details, die Strukturen oder Prozesse beschreiben, die hinreichend bekannt und oftmals mit Robotersystemen und -teilsystemen assoziiert sind, die jedoch einige signifikante Aspekte der offenbarten Techniken unnötig undeutlich machen können, sind der Einfachheit halber in der folgenden Beschreibung nicht dargelegt. Wenngleich die folgende Offenbarung mehrere Ausführungsformen verschiedener Aspekte der vorliegenden Technologie darlegt, können darüber hinaus mehrere andere Ausführungsformen andere Konfigurationen oder andere Komponenten als die in diesem Abschnitt beschriebenen aufweisen. Dementsprechend können die offenbarten Techniken andere Ausführungsformen mit zusätzlichen Elementen oder ohne mehrere der Elemente, die nachfolgend beschrieben sind, aufweisen.
  • Viele Ausführungsformen oder Aspekte der vorliegenden Offenbarung, die nachfolgend beschrieben sind, können die Form von computer- oder prozessorausführbaren Anweisungen annehmen, einschließlich Routinen, die von einem programmierbaren Computer oder Prozessor ausgeführt werden. Der Fachmann erkennt, dass die offenbarten Techniken auf anderen Computer- oder Prozessorsystemen als den nachfolgend gezeigten und beschriebenen umgesetzt werden können. Die in der vorliegenden Schrift beschriebenen Techniken können in einem Spezialcomputer oder einem Datenprozessor ausgeführt werden, der spezifisch programmiert, konfiguriert oder konstruiert ist, eine oder mehrere der nachfolgend beschriebenen computerausführbaren Anweisungen auszuführen. Dementsprechend beziehen sich die Begriffe „Computer“ und „Prozessor“, wie in der vorliegenden Schrift im Allgemeinen verwendet, auf einen beliebigen Datenprozessor und können Internetgeräte und tragbare Vorrichtungen umfassen (darunter Palmtop-Computer, tragbare Computer, Mobiltelefone, Mehrprozessorsysteme, prozessorbasierte oder programmierbare Unterhaltungselektronik, Netzwerkcomputer, Minicomputer und dergleichen). Informationen, die von diesen Computern und Prozessoren verarbeitet werden, können auf einem beliebigen geeigneten Anzeigemedium, einschließlich einer Flüssigkristallanzeige (liquid crystal display - LCD), dargestellt werden. Anweisungen zum Ausführen von computer- oder prozessorausführbaren Aufgaben können in oder auf einem beliebigen geeigneten computerlesbaren Medium, einschließlich Hardware, Firmware oder einer Kombination aus Hardware und Firmware, gespeichert sein. Anweisungen können in einer beliebigen geeigneten Speichervorrichtung enthalten sein, einschließlich beispielsweise eines Flash-Laufwerks und/oder eines anderen geeigneten Mediums.
  • Die Begriffe „gekoppelt“ und „verbunden“ samt deren Ableitungen können in der vorliegenden Schrift verwendet werden, um strukturelle Beziehungen zwischen den Komponenten zu beschreiben. Es versteht sich, dass diese Begriffe nicht als Synonyme füreinander bestimmt sind. Vielmehr kann „verbunden“ in bestimmten Ausführungsformen verwendet werden, um anzugeben, dass zwei oder mehr Elemente in direktem Kontakt miteinander stehen. Sofern aus dem Kontext nicht anderweitig ersichtlich, kann der Begriff „gekoppelt“ verwendet werden, um anzugeben, dass zwei oder mehr Elemente entweder in direktem oder in indirektem Kontakt miteinander (mit anderen Zwischenelementen dazwischen) stehen oder dass die zwei oder mehr Elemente miteinander wirken oder interagieren (z. B. als eine Ursache-Wirkungs-Beziehung, wie etwa für die Signalübertragung/den Signalempfang oder für Funktionsaufrufe) oder beides.
  • Geeignete Umgebungen
  • 1 ist eine Veranschaulichung einer beispielhaften Umgebung, in der ein Robotersystem 100 mit einem Verfeinerungsmechanismus nach Erfassung arbeiten kann. Das Robotersystem 100 kann eine oder mehrere Einheiten (z. B. Roboter) umfassen und/oder mit diesen kommunizieren, die konfiguriert sind, eine oder mehrere Aufgaben auszuführen. Aspekte des Verfeinerungsmechanismus nach Erfassung können von den verschiedenen Einheiten praktiziert oder umgesetzt werden.
  • Für das in 1 veranschaulichte Beispiel kann das Robotersystem 100 eine Entladeeinheit 102, eine Übertragungseinheit 104 (z. B. einen Palettierungsroboter und/oder einen Stückaufnahmeroboter), eine Transporteinheit 106, eine Ladeeinheit 108 oder eine Kombination davon in einem Lager oder einem Verteil- /Versandzentrum umfassen. Jede der Einheiten in dem Robotersystem 100 kann dazu konfiguriert sein, eine oder mehrere Aufgaben auszuführen. Die Aufgaben können nacheinander kombiniert werden, um einen Vorgang durchzuführen, der ein Ziel erreicht, wie etwa das Entladen von Objekten von einem Lastkraftwagen oder einem Lieferwagen und das Lagern dieser in einem Lager oder das Entladen von Objekten aus Lagerbereichen und Vorbereiten dieser für den Versand. In einem anderen Beispiel kann die Aufgabe das Platzieren der Objekte an einem Zielstandort (z. B. oben auf einer Palette und/oder innerhalb einer Tonne/eines Korbs/einer Kiste/eines Behälters) umfassen. Wie nachfolgend beschrieben, kann das Robotersystem Pläne (z. B. Platzierungsstandorte/-ausrichtungen, Sequenz für das Übertragen der Objekte und/oder entsprechende Bewegungspläne) für das Platzieren und/oder Stapeln der Objekte ableiten. Jede der Einheiten kann konfiguriert sein, eine Sequenz von Handlungen (z. B. Betreiben einer oder mehrerer Komponenten darin) auszuführen, um eine Aufgabe auszuführen.
  • In einigen Ausführungsformen kann die Aufgabe das Steuern (z. B. das Bewegen und/oder Neuausrichten) eines Zielobjekts 112 (z. B. eines von den Paketen, Kisten, Behältern, Körben, Paletten usw., die der auszuführenden Aufgabe entsprechen) von einem Startstandort 114 zu einem Aufgabenstandort 116 umfassen. Beispielsweise kann die Entladeeinheit 102 (z. B. ein Containerentladeroboter) dazu konfiguriert sein, das Zielobjekt 112 von einem Standort auf einem Träger (z. B. einem Lastkraftwagen) zu einem Standort auf einer Fördervorrichtung zu übertragen. Außerdem kann die Übertragungseinheit 104 dazu konfiguriert sein, das Zielobjekt 112 von einem Standort (z. B. der Fördervorrichtung, einer Palette oder einem Gefäß) zu einem anderen Standort (z. B. einer Palette, einem Gefäß usw.) zu übertragen. In einem anderen Beispiel kann die Übertragungseinheit 104 (z. B. ein Palettierungsroboter) dazu konfiguriert sein, das Zielobjekt 112 von einem Startstandort (z. B. einer Palette, einem Aufnahmebereich und/oder einer Fördervorrichtung) zu einer Zielpalette zu übertragen. Beim Abschließen des Vorgangs kann die Transporteinheit 106 das Zielobjekt 112 von einem Bereich, der mit der Übertragungseinheit 104 assoziiert ist, zu einem Bereich, der mit der Ladeeinheit 108 assoziiert ist, übertragen, und die Ladeeinheit 108 kann das Zielobjekt 112 (z. B. durch Bewegen der Palette, die das Zielobjekt 112 trägt) von der Übertragungseinheit 104 zu einem Lagerstandort (z. B. einem Standort auf den Regalen) übertragen. Einzelheiten bezüglich der Aufgabe und der assoziierten Datenverarbeitung sind nachfolgend beschrieben.
  • Zum Zwecke der Veranschaulichung ist das Robotersystem 100 im Kontext eines Versandzentrums beschrieben; jedoch versteht es sich, dass das Robotersystem 100 konfiguriert sein kann, um Aufgaben in anderen Umgebungen/zu anderen Zwecken auszuführen, wie etwa für die Herstellung, den Zusammenbau, das Verpacken, die Gesundheitspflege und/oder andere Arten von Automatisierung. Es versteht sich zudem, dass das Robotersystem 100 andere Einheiten umfassen kann, wie etwa Handhabungsvorrichtungen, Serviceroboter, modulare Roboter usw., die in 1 nicht gezeigt sind. In einigen Ausführungsformen kann das Robotersystem 100 beispielsweise eine Entpalettierungseinheit für das Übertragen der Objekte von Korbwagen oder Paletten auf Fördervorrichtungen oder andere Paletten, eine Containerwechseleinheit für das Übertragen der Objekte von einem Container auf einen anderen, eine Verpackungseinheit für das Einwickeln der Objekte, eine Sortiereinheit für das Gruppieren von Objekten gemäß einer oder mehrerer Eigenschaften davon, eine Stückaufnahmeeinheit für das unterschiedliche Steuern (z. B. Sortieren, Gruppieren und/oder Übertragen) der Objekte gemäß einer oder mehreren Eigenschaften davon oder eine Kombination davon umfassen.
  • Das Robotersystem 100 kann physische oder strukturelle Elemente (z. B. Robotersteuerarme) umfassen, die zur Bewegung an Gelenken verbunden sind (z. B. Rotations- und/oder Translationsverschiebungen). Die strukturellen Elemente und die Gelenke können eine kinetische Kette bilden, die konfiguriert ist, um einen Endeffektor (z. B. den Greifer) zu steuern, der konfiguriert ist, um eine oder mehrere Aufgaben (z. B. Greifen, Drehen, Schweißen usw.) in Abhängigkeit von der Verwendung/dem Betrieb des Robotersystems 100 auszuführen. Das Robotersystem 100 kann die Betätigungsvorrichtungen (z. B. Motoren, Aktoren, Drähte, künstliche Muskeln, elektroaktive Polymere usw.) umfassen, die konfiguriert sind, um die strukturellen Elemente um ein entsprechendes Gelenk oder daran anzutreiben oder zu steuern (z. B. zu verschieben und/oder neu auszurichten). In einigen Ausführungsformen kann das Robotersystem 100 Transportmotoren umfassen, die konfiguriert sind, um die entsprechenden Einheiten/Gehäuse von Ort zu Ort zu transportieren.
  • Das Robotersystem 100 kann Sensoren umfassen, die dazu konfiguriert sind, Informationen zu erhalten, die dazu verwendet werden, die Objekte zu erfassen und/oder die Aufgaben umzusetzen, wie etwa zum Steuern der strukturellen Elemente und/oder zum Transportieren der Robotereinheiten. Die Sensoren können Vorrichtungen umfassen, die konfiguriert sind, um eine oder mehrere physikalische Eigenschaften des Robotersystems 100 (z. B. einen Zustand, eine Bedingung und/oder einen Standort von einem oder mehreren strukturellen Elementen/Gelenken davon) und/oder einer unmittelbaren Umgebung zu erkennen oder zu messen. Einige Beispiele der Sensoren können Beschleunigungsmesser, Gyroskope, Kraftsensoren, Dehnungsmesser, Berührungssensoren, Drehmomentsensoren, Positionscodierer usw. umfassen.
  • In einigen Ausführungsformen können die Sensoren beispielsweise eine oder mehrere Bildgebungsvorrichtungen (z. B. visuelle und/oder Infrarotkameras, 2D- und/oder 3D-Bildaufnahmekameras, Abstandsmessvorrichtungen, wie etwa Lidar oder Radar, usw.) umfassen, die konfiguriert sind, um die unmittelbare Umgebung zu erkennen. Die Bildgebungsvorrichtungen können Darstellungen der erkannten Umgebung erzeugen, wie etwa digitale Bilder und/oder Punktwolken, die durch Maschinen-/Computervision verarbeitet werden können (z. B. zur automatischen Inspektion, Roboterführung oder für andere Roboteranwendungen). Wie nachstehend näher beschrieben, kann das Robotersystem 100 das digitale Bild und/oder die Punktwolke verarbeiten, um das Zielobjekt 112, den Startstandort 114, den Aufgabenstandort 116, eine Stellung des Zielobjekts 112, ein Konfidenzmaß bezüglich des Startstandorts 114 und/oder der Stellung oder eine Kombination davon zu erkennen.
  • Zur Steuerung des Zielobjekts 112 kann das Robotersystem 100 ein Bild eines festgelegten Bereichs (z. B. einem Aufnahmestandort, wie etwa innerhalb des Lastkraftwagens oder auf der Fördervorrichtung) aufnehmen und auswerten, um das Zielobjekt 112 und den Startstandort 114 davon zu erkennen. Gleichermaßen kann das Robotersystem 100 ein Bild eines anderen festgelegten Bereichs (z. B. eines Ablagestandorts zum Anordnen von Objekten auf der Fördervorrichtung, einem Standort zum Anordnen von Objekten innerhalb des Containers oder einem Standort auf der Palette zum Stapeln) aufnehmen und auswerten, um den Aufgabenstandort 116 zu erkennen. Beispielsweise können die Bildgebungsvorrichtungen eine oder mehrere Kameras, die konfiguriert sind, um Bilder des Aufnahmebereichs zu erzeugen, und/oder eine oder mehrere Kameras, die konfiguriert sind, um Bilder des Aufgabenbereichs (z. B. Ablagebereichs) zu erzeugen, umfassen. Auf Grundlage der aufgenommenen Bilder, wie nachstehend detailliert beschrieben, kann das Robotersystem 100 die Objekte an dem Startstandort 114 und/oder dem Aufgabenstandort 116 erfassen und die Erfassungsergebnisse verfeinern.
  • In einigen Ausführungsformen können zu den Sensoren beispielsweise Positionssensoren (z. B. Positionscodierer, Potentiometer usw.) gehören, die konfiguriert sind, um Positionen von strukturellen Elementen (z. B. den Roboterarmen und/oder den Endeffektoren) und/oder entsprechenden Gelenken des Robotersystems 100 zu erkennen. Das Robotersystem 100 kann die Positionssensoren verwenden, um Standorte und/oder Ausrichtungen der strukturellen Elemente und/oder der Gelenke während der Ausführung der Aufgabe zu verfolgen.
  • Beispielhafte Vorrichtungskonfiguration für Objekterfassung und Verfeinerung nach Erfassung
  • 2 ist eine Veranschaulichung des Robotersystems 100 aus 1 gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. Zu dem Robotersystem 100 kann ein Roboterarm 202 gehören (z. B. eine Instanz der Übertragungseinheit 104 aus 1), zu dem ein Endeffektor 204 (z. B. ein Greifer) gehören kann. Der Roboterarm 202 kann dazu konfiguriert sein, das Zielobjekt 112 zwischen dem Startstandort 114 aus 1 und dem Aufgabenstandort 116 aus 1 zu übertragen. Wie in 2 veranschaulicht, kann der Startstandort 114 eine Palette 208 mit einem Zielstapel 210 (z. B. einer Gruppierung von Objekten) darauf aufweisen. Der Aufgabenstandort 116 für den Roboterarm 202 kann einen Absetzstandort (z. B. ein Ausgangspunkt) auf einem Förderband 206 sein (z. B. eine Instanz der Transporteinheit 106 aus 1).
  • Das Robotersystem 100 kann im Rahmen der Durchführung des Übertragungsschrittes mit dem Roboterarm 202 einen oder mehrere Sensoren verwenden. In einigen Ausführungsformen können zu dem Robotersystem 100 ein erster Bildgebungssensor 212 und/oder ein zweiter Bildgebungssensor 214 gehören. Der erste Bildgebungssensor 212 kann einen oder mehrere 2D- und/oder 3D-Sensoren umfassen, wie etwa Kameras und/oder Tiefensensoren, die konfiguriert sind, um den Startstandort 114 bildlich darzustellen und/oder zu analysieren. Der zweite Bildgebungssensor 214 kann einen oder mehrere 2D- und/oder 3D-Sensoren umfassen, wie etwa Kameras und/oder Tiefensensoren, die konfiguriert sind, um den Aufgabenstandort 116 bildlich darzustellen und/oder zu analysieren. Beispielsweise können zu dem ersten Bildgebungssensor 212 ein/e oder mehrere Kameras und/oder Tiefensensoren gehören, die sich an einer bekannten Stelle über und in Richtung des Startstandorts 114 befinden. Der erste Bildgebungssensor 212 kann Bildgebungsdaten (z. B. 3D-Punktwolken und/oder visuelle oder 2D-Bilder) erzeugen, die einer oder mehreren Draufsichten auf den Startstandort 114 entsprechen, wie etwa eine Draufsicht auf den Zielstapel 210.
  • Das Robotersystem 100 kann die Bildgebungsdaten von dem ersten Bildgebungssensor 212 dazu verwenden, die Objekte in dem Zielstapel 210 zu erkennen oder zu erfassen. Durch das Erfassen der Objekte kann das Robotersystem 100 eine anfängliche Erfassungshypothese auf Grundlage eines Abgleichens von Abschnitten der Bilddaten (z. B. des 2D-Bildes) oder Abschnitten davon mit den Stammdaten (z. B. vorbestimmte Oberflächenbilder von erwarteten/registrierten Objekten) erzeugen. Das Robotersystem 100 kann ferner die Bilddaten (z. B. das 3D-Bild) verarbeiten, um die anfängliche Erfassungshypothese zu verfeinern. Zum Beispiel kann das Robotersystem 100 parallele Kantenpaare und entsprechende Schnittpunkte identifizieren, um physische Umrisse oder Umfänge der Objekte abzuleiten. Die abgeleiteten Umrisse können verarbeitet werden, um die anfängliche Erfassungshypothese anzupassen oder zu verifizieren. Details in Bezug auf die Erfassung und die Verfeinerung sind nachfolgend erörtert.
  • Objektkantendetektion
  • Wie vorstehend angemerkt, kann eine anfängliche Objektschätzung eines Objekts oder einer Reihe von Objekten mit zusätzlich bestimmten Merkmalen des Objekts verglichen werden, um einen Standort/eine Position des Objekts aus der anfänglichen Objektschätzung zu verifizieren und/oder zu aktualisieren. 3 veranschaulicht einer Szene 300 mit mehreren erfassbaren Objekten 302, 304 gemäß einigen Ausführungsformen der vorliegenden Technologie.
  • Wie in 3 gezeigt, kann die Szene 300 Bildgebungsdaten (z. B. ein visuelles 2D-Bild) von dem ersten Bildgebungssensor 212 aus 2 sein. Die Szene 300 kann mehrere erfassbare Objekte 302 und 304 (z. B. palettierte Boxen) an dem Startstandort 114 abbilden. Das Robotersystem 100 aus 1 kann die Bildgebungsdaten analysieren, um eine anfängliche Objektschätzung für die Objekte 302 und/oder 304 abzuleiten. Zum Beispiel kann das Robotersystem 100 die Szene 300 oder Abschnitte davon mit Oberflächenbildern von registrierten Objekten in den Stammdaten vergleichen. Unter Verwendung von Computersicht und/oder anderen Bildanalysemechanismen kann das Robotersystem 100 bestimmen, dass die Regionen in der Szene 300, die den Objekten 302 und 304 entsprechen, mit einem oder mehreren Oberflächenbildern in den Stammdaten übereinstimmen.
  • Für jede Übereinstimmung kann das Robotersystem 100 die anfängliche Objektschätzung als eine Kennung für ein entsprechendes registriertes Objekt, einen Standort des erfassten Objekts, eine Größe des erfassten Objekts, eine Stellung des erfassten Objekts und/oder andere physische Attribute, die mit dem erfassten Objekt assoziiert sind, ableiten. Zum Beispiel kann das Robotersystem 100 eine ausreichende Anzahl von Merkmalen (z. B. wie durch einen Konfidenzwert und/oder eine Schwellenanzahl/-größe von übereinstimmenden Merkmalen definiert) für einen ersten und einen zweiten Abschnitt der Szene 300, die jeweils mit registrierten Bildern der Objekte 302 und 304 übereinstimmen, bestimmen. Dementsprechend kann das Robotersystem 100 schätzen, dass sich die Objekte 302 und 304 (z B. Kandidatenobjekte) an dem Startstandort 112 befinden. Auf Grundlage der Übereinstimmung kann das Robotersystem 100 vorbestimmte Abmessungen und/oder Kantenstandorte relativ zu Merkmalen in den registrierten Bildern für die Objekte 302 und 304 identifizieren. Das Robotersystem 100 kann die Abmessungen und/oder die relativen Kantenstandorte auf die übereinstimmenden Merkmale in der Szene 300 abbilden, um die Stellungen und/oder die Standorte der Objekte 302 und 304 abzuleiten oder zu schätzen. Das Robotersystem 100 kann ferner die Objekte auf Grundlage eines Übertragens der Standorte in dem Bild (z. B. Pixelpositionen) auf Standorte in der realen Welt auf Grundlage vorbestimmter Koordinatensysteme und/oder Abbildungsprozesse lokalisieren.
  • Wie nachfolgend detaillierter erörtert, kann eine paarweise Kantenanalyse beim Verifizieren/Aktualisieren der anfänglichen Objektschätzung genutzt werden. In einigen Fällen, wie etwa, wenn die erfassten Objekte ähnliche visuelle Merkmale und/oder Abmessungen aufweisen, kann die paarweise Kantenanalyse ferner dazu verwendet werden, die Identität der Objekte 302, 304 zu unterscheiden und/oder Abmessungen der Objekte, die in der anfänglichen Objektschätzung dargestellt sind, zu verifizieren.
  • 4 ist eine Veranschaulichung eines Abschnitts eines Bildgebungsausgangs (z. B. 2D/3D-Bildgebungsdaten), der ein Objekt 402 gemäß einigen Ausführungsformen der vorliegenden Technologie darstellt. Eine Bildgebungsvorrichtung (z. B. der erste Bildgebungssensor 212, der zweite Bildgebungssensor 214) kann ein Bild/Bilder von Objekten (z. B. palettierte Boxen) aufnehmen. Ein durch die Bildgebungsvorrichtung aufgenommenes Bild kann eine Umgebung (oder eine „Szene“) mit einem oder mehreren erfassbaren Objekten veranschaulichen. Zum Beispiel kann das Bild eine Draufsicht von mehreren palettierten Boxen, die sich an dem Startstandort 114 aus 1 befinden, veranschaulichen. Die in einem Bild aufgenommene Szene kann ein Sichtfeld bereitstellen, das den Bereich abdeckt, in dem sich Zielobjekte (beinhaltend z. B. das Objekt 402) befinden.
  • Die Kanten 404a und/oder 404b des Objekts 402 können durch Inspizieren des/der aufgenommenen Bildes/Bilder des Objekts 402 erfasst werden. Zum Beispiel kann das Robotersystem 100 aus 1 Kantendetektionsmechanismen wie etwa einen Sobel-Filter und/oder andere Kantendetektionsmechanismen verwenden, um die abgebildeten Kanten zu erfassen. Wie nachfolgend detaillierter erörtert, können die Bilddaten (z. B. die 3D-Punktwolke) und/oder die erfassten Kanten dazu verwendet werden, eine 3D-Ecke eines Objekts zu bestimmen, die dazu verwendet werden kann, einen Versatz zwischen den bestimmten Merkmalen des Objekts und der anfänglichen Objektschätzung zu bestimmen.
  • Für jede der erfassten Kanten kann das Robotersystem 100 eine Kantenausrichtung 408 ableiten. Die Kantenausrichtung 408 kann eine Richtung/Ausrichtung einer erfassbaren Kante eines Objekts beinhalten. Zum Beispiel kann die Kantenausrichtung 408 eine Orientierung oder eine Neigung einer Kante relativ zu einem Referenzkoordinatensystem (z. B. kartesische 2D- oder 3D-Koordinaten in einem Euklidischen Raum) für die durch das Bild dargestellte Szene beinhalten. In einigen Ausführungsformen kann die Kantenausrichtung 408 durch einen Kantenvektor dargestellt sein, der sowohl eine Richtung als auch eine Größe einer erfassten Kante beinhaltet.
  • Das Objekt 402 (z. B. eine Box) kann mehrere parallele Kanten beinhalten. Zum Beispiel kann das aufgenommene Bild eine Kante 404a' parallel zu der Kante 404a abbilden. Gleichermaßen kann das aufgenommene Bild eine Kante 404b' parallel zu der Kante 404b abbilden.
  • Das Robotersystem 100 kann auf Grundlage des Berechnens und Vergleichens der Ausrichtungen 408 bestimmen, dass ein Satz von Kanten parallel ist. Als ein veranschaulichendes Beispiel kann das Robotersystem 100 die parallelen Kanten auf Grundlage eines Ableitens von Clustern der erfassten Kanten identifizieren. Das Robotersystem 100 kann den Kantencluster auf Grundlage eines Vergleichens der erfassten Kanten gemäß einem Skalarprodukt von V1 und V2 ableiten, wobei V1 und V2 Vektordarstellungen einer eindeutigen Kante sind. Die Winkel und Ausrichtungen der Kanten können der Richtungskomponente der Vektoren entsprechen. Das Robotersystem 100 kann bestimmen, dass die zwei Vektoren parallel sind, wenn der Winkel des Skalarprodukts kleiner als ein Winkelschwellenwert ist.
  • In einigen Ausführungsformen kann das Robotersystem 100 den Kantencluster auf Grundlage eines Vergleichens der erfassten Kanten mit einem Schwellenwert für einen Bereich/Abstand von einer abgezielten Kante ableiten. Zum Beispiel kann der Schwellenwert für den Bereich/Abstand Abmessungen eines größten registrierten Objekts entsprechen. Das Robotersystem 100 kann auch die Kantencluster auf Grundlage der erfassten Kanten bei oder innerhalb von Schwellenwerten für Abstände von Kanten der anfänglichen Objektschätzungen ableiten. Zum Beispiel kann das Robotersystem 100 Analysebereiche identifizieren, die jenseits der Grenzen der anfänglichen Objektschätzungen verlaufen. In anderen Worten kann das Robotersystem 100 Analysebereiche identifizieren, die jeweils eine Instanz der anfänglichen Objektschätzung und unmittelbar daran angrenzende Regionen umgeben oder beinhalten. Das Robotersystem 100 kann die Kantencluster innerhalb jeder der anfänglichen Objektschätzungen bestimmen. Gleichermaßen kann das Robotersystem 100 auch die Kantencluster auf Grundlage eines Vergleichens der erfassten Kanten ableiten, die sich in Bereichen befinden, die einem physischen Merkmal (z. B. einer 3D-Ecke oder einer 3D-Kante), einer minimalen/maximalen Objektgröße, einem Bereich, der übereinstimmende 3D-Punktwolkenwerte aufweist (z. B. eine durchgehende Oberfläche), einem Bereich innerhalb einer Analyseplattform (z. B. eine Palette) oder einer Kombination davon entsprechen oder dadurch definiert sind (z. B. gemäß einer vorbestimmten Vorlage).
  • Das Robotersystem 100 kann die Kantencluster dazu verwenden, Regionen in den Bilddaten zu identifizieren. Zum Beispiel kann das Robotersystem 100 Schnittpunkte (z. B. Ecken) von erfassten Kanten mit unterschiedlichen Ausrichtungen identifizieren. Das Robotersystem 100 kann erfassen, dass ein Objekt existiert, wenn ein Satz (z. B. ein erstes Paar) von geclusterten oder parallelen Kanten einen anderen Satz (einen zweiten Satz) von geclusterten oder parallelen Kanten schneidet, um eine vorbestimmte Anzahl von Ecken (z. B. vier Ecken) zu bilden. Das Robotersystem 100 kann bestimmen, dass die entsprechenden Kantensätze und der darin begrenzte Bereich das erfasste Objekt darstellen. Dementsprechend kann das Robotersystem 100 ein Objekt auf Grundlage der Kanten und getrennt von den anfänglichen Objektschätzungen erfassen. Einzelheiten bezüglich der kantenbasierten Objekterfassung sind nachfolgend beschrieben.
  • Das Robotersystem 100 kann einen erfassbaren Kantenabstand 406 zwischen parallelen Kanten (z. B. Kanten 404b, 404b') erfassen. Der erfassbare Kantenabstand 406 kann einen Abstand zwischen parallelen Kanten (z. B. Kanten 404a, 404a' oder Kanten 404b, 404b'), die koplanar sind und/oder sich innerhalb eines Schwellenwertes eines Bereichs/Abstands zueinander befinden, beinhalten. Der erfassbare Kantenabstand 706 kann eine Länge oder eine Breite des Objekts 402 darstellen. Wie nachfolgend detaillierter beschrieben, kann der erfassbare Kantenabstand 406 beim Bestimmen davon genutzt werden, ob die Abmessungen eines Objekts den Abmessungen entsprechen, die in einer anfänglichen Objektschätzung für ein Objekt beinhaltet sind.
  • Objektkantenschnittpunkterfassung
  • Die erfassten parallelen Kantensätze eines Objekts können beim Identifizieren einer Reihe von Schnittpunkten (oder „3D-Ecken“) der erfassten Kanten verwendet werden. Die identifizierten Schnittpunkte können dazu verwendet werden, ein Objekt gemäß den erfassten Kanten zu erfassen. 5 ist eine Veranschaulichung einer kantenbasierten Objekterfassung gemäß einigen Ausführungsformen der vorliegenden Technologie. Wie in 5 gezeigt, kann eine Szene 500 (z. B. 2D-Bildgebungsausgang von dem ersten Bildgebungssensor 212 aus 2) einen ersten erfassten Kantensatz 502 entsprechend einem ersten Objekt (A) und einen zweiten erfassten Kantensatz 504 entsprechend einem zweiten Objekt (B) veranschaulichen.
  • Wie vorstehend beschrieben, kann das Robotersystem 100 die Kantencluster auf Grundlage der erfassten Kantensätze 502 und 504 ableiten. Als ein veranschaulichendes Beispiel kann das Robotersystem 100 einen ersten Cluster auf Grundlage einer ersten Kante 512 mit einer ersten Ausrichtung ableiten. Wie vorstehend beschrieben, kann das Robotersystem 100 die erfassten Kanten innerhalb eines Bereichs, der der ersten Kante 512 entspricht, analysieren. Auf Grundlage der Analyse kann das Robotersystem 100 einen Kantencluster (z. B. einen Satz oder ein Paar von parallelen Kanten) ableiten, der die erste Kante 512 und eine erste entsprechende Kante 522, die als parallel zu der ersten Kante 512 bestimmt ist, beinhaltet. Gleichermaßen kann das Robotersystem 100 einen zweiten Cluster auf Grundlage einer zweiten Kante 514 mit einer zweiten Ausrichtung, und/oder die die erste Kante 512 schneidet, ableiten. Der zweite Cluster kann die zweite Kante 514 und einen zweite entsprechende Kante 524, die als parallel zu der zweiten Kante 514 bestimmt ist, beinhalten.
  • Das Robotersystem 100 kann ferner die Kantencluster verarbeiten, um erfasste Ecken 506 zu identifizieren, an denen sich ein Satz von Kanten mit unterschiedlichen Ausrichtungen schneidet. Das Robotersystem 100 kann die erfassten Kanten von einem Ende hin zu dem anderen Ende nachverfolgen, um zu bestimmen, ob sich die Kanten mit einer anderen Kante schneiden. Wenn sich Sätze oder Paare von Kanten aus unterschiedlichen Clustern schneiden, kann das Robotersystem 100 bestimmen, dass die Kanten Grenzen bilden, die einen Bereich umschließen. Wie in 5 veranschaulicht, kann das Robotersystem 100 bestimmen, dass das erste Paar von parallelen Kanten 512 und 522 das zweite Paar von parallelen Kanten 514 und 524 schneidet. Dementsprechend kann das Robotersystem 100 bestimmen, dass die Kanten 512, 514, 522 und 524 einem erfassten Objekt (z. B. Objekt A) entsprechen oder dieses definieren. Gleichermaßen kann das Robotersystem 100 andere erfasste Kanten in der Szene analysieren, um andere Schnittpunkte und danach andere Objekte, die in der Szene abgebildet sind, zu bestimmen.
  • Kantenbewertung
  • Es kann eine Kantenbewertung abgeleitet sein, die ein Maß zum Quantifizieren einer Genauigkeit/Präzision von erfassten Kanten, erfassten parallelen Kantenpaaren und/oder Kantenschnittpunkten bereitstellt. Die Kantenbewertung kann beim Bestimmen einer Genauigkeit einer erfassten Kante und zur Verfeinerung nach Erfassung und Validierung (z. B. Aktualisieren/Validieren einer anfänglichen Objektschätzung) verwendet werden. Die Kantenbewertung kann einen dynamischen/kumulativen Wert beinhalten, der eine Genauigkeit beliebiger erfasster Merkmale eines Objekts darstellt. In einigen Fällen kann die Kantenbewertung eine Genauigkeit des erfassten Objekts relativ zu dem Kandidatenobjekt, das in der anfänglichen Objektschätzung beinhaltet ist, angeben.
  • Eine Kantenbewertung kann auf Grundlage von verschiedenen Faktoren abgeleitet werden. Zum Beispiel kann eine Kantenbewertung auf einem Maß von Kontinuität basieren (z B. Angabe, ob die Kante Diskontinuitäten oder unregelmäßige Änderungen in gemessenen/dargestellten Werten beinhaltet) . Als ein weiteres Beispiel kann die Kantenbewertung auf einem Linearitätsgrad einer erfassten Kante basieren. Das Robotersystem 100 kann die Kantenform mit einer vorbestimmten Vorlage oder einem vorbestimmten Muster vergleichen, um den Linearitätsgrad zu bestimmen.
  • Die Kantenbewertung kann auch auf Grundlage eines Maßes von Ähnlichkeit zwischen erfassten parallelen Kantenpaaren und/oder dem Kandidatenobjekt entsprechend der anfänglichen Objektschätzung berechnet oder angepasst werden. Beispielsweise kann das Maß von Ähnlichkeit gemäß Längen, Dicken, Farbe und/oder Ausrichtungen der erfassten Kanten innerhalb jedes Clusters und/oder den sich schneidenden Clustern berechnet werden. Die Kantenbewertung kann auch auf einem Grad von Überlappung zwischen den erfassbaren Kanten, die in dem 2D-Bild identifiziert sind, und den Kantenpunkten in der 3D-Punktwolke basieren. Zum Beispiel kann das Robotersystem 100 die Punkte in dem 2D-Bild auf Punkte in dem 3D-Bild und/oder in der realen Welt gemäß einem vorbestimmten Gitter-/Koordinatensystem und/oder einer Abbildungsfunktion (z. B. einer oder mehreren Gleichungen und/oder Nachschlagetabellen) abbilden. Bei der gemeinsamen standortbezogenen Abbildung kann das Robotersystem 100 die erfassten Kanten in den 2D-Bildern mit erfassten Kanten in den 3D-Bildern vergleichen. Das Robotersystem 100 kann die Kantenbewertung auf Grundlage der Nähe zwischen entsprechenden Kanten in dem 2D- und dem 3D-Bild berechnen. Dementsprechend können Kanten, die sowohl in dem 2D- als auch in dem 3D-Bild an dem gleichen Standort erfasst werden, höhere Kantenbewertungen aufweisen. Die Kantenbewertungen können abnehmen, wenn entsprechende Kanten in dem 2D- und dem 3D-Bild weiter voneinander entfernt sind.
  • In einigen Ausführungsformen kann die Kantenbewertung auf erfassten Kantenschnittpunkten (z. B. Ecken) basieren. Zum Beispiel können die Standorte der identifizierten Ecken (z. B. 2D-Ecken) mit den Standorten der 3D-Ecken verglichen werden. Die Kantenbewertungen der erfassten Kanten, die die Ecke bilden, können auf Grundlage des Grades an Überlappung oder Zusammenlegung, wie vorstehend für die Kantenvergleiche beschrieben, berechnet werden. Die Kantenbewertungen für die erfassten Kanten, die die Ecke bilden, können auch auf Grundlage des Eckwinkels berechnet werden. In einigen Ausführungsformen können die Kantenbewertungen zunehmen, wenn der Eckwinkel am nächsten bei 90° liegt.
  • Die Kantenbewertung kann nach Identifizierung/Extrahierung von erfassbaren Kanten oder identifizierenden Kantenclustern, wie hierin beschrieben, bestimmt werden. In einigen Ausführungsformen kann die Kantenbewertung nach einem beliebigen von Identifizierung der parallelen Kantenpaare, Bestimmen eines parallelen Kantensatzes, Projizieren der erfassten parallelen Kantenpaare auf eine 3D-Kantenprojektion und/oder Identifizieren von Kantenschnittpunkten bestimmt werden.
  • In einigen Ausführungsformen kann das Robotersystem die erfassten Kanten auf Grundlage eines Kantenpunktwertes zurückweisen (z B. wenn der Kantenpunktwert unter einem Kantendetektionsschwellenwert liegt). Als ein weiteres Beispiel kann das Robotersystem 100 während des oder vor dem Verfeinerungs-/Verifizierungsprozess entscheiden, ob die erfassten Kantenschnittpunkte dazu verwendet werden sollen, die anfängliche Objektschätzung zu verfeinern und/oder zu verifizieren.
  • Verfeinerung/Verifizierung der anfänglichen Objektschätzung
  • 6 ist eine Veranschaulichung einer Szene 600 mit erfasst Kanten 602a und 602b, wie durch die gestrichelten Linien dargestellt, und anfänglichen Objektschätzungen 604a und 604b, wie durch die durchgehenden Linien dargestellt, gemäß einigen Ausführungsformen der vorliegenden Technologie. Die erfassten Kanten 602a können einem ersten Objekt (z. B. dem Objekt 302 aus 3) entsprechen, und die erfassten Kanten 602b können einem zweiten Objekt (z. B. dem Objekt 304 aus 3) entsprechen. Gleichermaßen kann die anfängliche Objektschätzung 604a dem ersten Objekt entsprechen und die anfängliche Objektschätzung 604b kann dem zweiten Objekt entsprechen.
  • Wie in 6 gezeigt, können die erfassten Kanten nicht mit Grenzen/Kanten der anfänglichen Objektschätzungen ausgerichtet sein. Die Unterschiede können durch das Robotersystem 100 verursacht sein, wie etwa während der Bildverarbeitung und bei Ableitung der anfänglichen Objektschätzungen. Die Unterschiede können auch durch Inkonsistenzen des Objekts verursacht sein. Zum Beispiel kann das tatsächliche Objekt visuelle Merkmale (z. B. Logos, Designs und/oder andere sichtbare Markierungen) aufweisen, die sich aufgrund von Herstellungs-, Druck- und/oder Verpackungsfehlern von dem registrierten Bild unterscheiden oder sich in Bezug auf das registrierte Bild an unerwarteten Stellen befinden.
  • Wie nachfolgend detailliert beschrieben, kann das Robotersystem 100 die erfassten Kanten dazu verwenden, die anfänglichen Objektschätzungen zu aktualisieren und/oder zu verifizieren. Dementsprechend kann das Robotersystem 100 Fehler, die durch ungenaue Objekterfassung verursacht werden, reduzieren oder entfernen. In anderen Worten kann das Robotersystem 100 die erfassten Kanten dazu verwenden, die sichtbare merkmalsbasierte Objekterfassung zu bekräftigen.
  • Wie vorstehend angemerkt, kann eine anfängliche Objektschätzung auf Grundlage der erfassten Merkmale eines Objekts aktualisiert und/oder verifiziert werden. 7 ist eine Veranschaulichung einer aktualisierten Objektschätzung gemäß einigen Ausführungsformen der vorliegenden Technologie. Wie vorstehend beschrieben, kann das Robotersystem 100 aus 1 eine Szene 708 oder einen Abschnitt davon mit einer Objektvorlage 700 (z. B. einem vorbestimmten Oberflächenbild oder Merkmalen, die für ein registriertes Objekt eingestellt sind) vergleichen, um eine anfängliche Objektschätzung 722 abzuleiten.
  • Das Robotersystem 100 kann eine potentielle Übereinstimmung erfassen, wenn ein Abschnitt der Szene 708 mit der Objektvorlage 700 übereinstimmt. Wie in 7 gezeigt, kann die Objektvorlage 700 Merkmale 702, 704, 706 beinhalten. Beispielhafte Merkmale 702, 704, 706 können sichtbare Merkmale beinhalten, wie etwa Oberflächendesigns, Buchstaben, Zahlen, Symbole, Kanten usw. Für das Übereinstimmungsszenario kann der Abschnitt der Szene 708 Merkmale 710, 712, 714 beinhalten, die jeweils mit Merkmalen 702, 704, 706 übereinstimmen. Dementsprechend kann das Robotersystem 100 die anfängliche Objektschätzung 722 auf Grundlage eines Identifizierens eines Umrisses um die Merkmale 710, 712 und 714 ableiten. Der Umriss kann gemäß einem oder mehreren Referenzstandorten 716 (z. B. Standorten, die durch entsprechende vorbestimmte Abstände/Richtungen getrennt sind) in Bezug auf eines oder mehrere der übereinstimmenden Merkmale identifiziert sein. Wie in 7 veranschaulicht, kann einer der Referenzstandorte 716 eine Ecke eines Umrisses sein, die um einen vorbestimmten Abstand von dem abgebildeten Merkmal (z. B. dem Merkmal 710), das mit dem Merkmal 702 übereinstimmt, getrennt ist. Das Robotersystem 100 kann den Umriss als die geschätzten Kanten des entsprechenden Objekts identifizieren.
  • In einigen Ausführungsformen kann das Verfeinern oder Aktualisieren der anfänglichen Objektschätzung 722 ein Vergleichen der erfassten Kanten und/oder der Schnittpunkte der erfassten Kanten (z. B. Ecken) mit erfassten 2D-/3D-Ecken beinhalten. Zum Beispiel kann das Robotersystem 100 einen Objektkantensatz 732 aus den 2D- und/oder 3D-Bildern identifizieren. Der Objektkantensatz 732 kann ein Ergebnis aus der vorstehend beschriebenen kantenbasierten Objekterfassung sein und sich schneidende Sätze von parallelen Kanten beinhalten, für die bestimmt ist, dass sie einen Bereich zumindest teilweise umschließen. In einigen Ausführungsformen kann das Robotersystem 100 einen Satz der erfassten Kanten 732 identifizieren, die einen Bereich umschließen, der sich zumindest teilweise mit der anfänglichen Objektschätzung 722 überlappt. Das Robotersystem 100 kann die entsprechenden Standorte der Kanten/Ecken zwischen der anfänglichen Objektschätzung 722 und den 2D-/3D-Ecken vergleichen. Wenn die verglichenen Kanten/Ecken nicht in Einklang stehen, kann das Robotersystem 100 einen oder mehrere Verschiebungsabstände 734 zwischen den Kanten/Ecken der anfänglichen Objektschätzung 722 und den erfassten Kanten 732 berechnen. Das Robotersystem 100 kann die Verschiebungsabstände 734 entlang einer oder mehrerer vorbestimmter Richtungen (z. B. entlang einer x-Achse und einer y-Achse) und/oder als einen Vektor zwischen übereinstimmenden Standorten berechnen.
  • Wenn die Verschiebungsabstände 734 größer als ein vorbestimmter Verschiebungsschwellenwert sind, kann das Robotersystem 100 die anfängliche Objektschätzung 722 aktualisieren. Zum Beispiel kann das Robotersystem 100 die anfängliche Objektschätzung 722 um die Verschiebungsabstände 734 verschieben, so dass die Objektschätzung mit den erfassten Kanten 732, die die übereinstimmenden Merkmale (z. B. die Merkmale 710, 712 und 714) beinhalten, zusammenfällt. In einigen Ausführungsformen kann das Robotersystem 100 die anfängliche Objektschätzung 722 durch Kombinieren (z. B. Mitteln) der Trennungen zwischen der anfänglichen Objektschätzung 722, den 2D-Objekterkennungsergebnissen und/oder den 3D-Objekterkennungsergebnissen verschieben. Wenn die Objekterkennungsergebnisse aus den 2D- und 3D-Bildern nicht in Einklang stehen, kann das Robotersystem 100 die 3D-Bildgebungsergebnisse gegenüber den 2D-Bildgebungsergebnissen priorisieren (z. B. durch Auswählen eines davon und Verwerfen der anderen oder durch Platzieren einer größeren Verarbeitungsgewichtung darauf). Gleichermaßen kann das Robotersystem 100 die 2D-Kantendetektionsergebnisse gegenüber der anfänglichen Objektschätzung 722, die aus dem Abgleichen von Merkmalen resultiert, priorisieren.
  • In einigen Ausführungsformen kann das Robotersystem 100 die 2D-Merkmale dazu verwenden, die anfängliche Objektschätzung 722 zu erzeugen, und die 2D-Kantenverarbeitung dazu, die Objektschätzung 722 anfänglich zu verifizieren oder anzupassen. Das Robotersystem 100 kann ferner die 3D-Kanten/Ecken oder die Standorte davon dazu verwenden, die Objektschätzung weiter anzupassen oder zu validieren. Das Validieren der Objektschätzung kann ein Bestimmen davon beinhalten, ob zwischen den Kanten/Ecken der Objektschätzung und entsprechenden Kanten/Ecken in der 3D-Tiefenkarte Abweichungen bestehen. In anderen Worten kann das Robotersystem 100 bestimmen, ob die 3D-Tiefenkarte Kanten/Ecken (z. B. Abfallen oder Änderungen von Tiefenmaßbildung oder entlang einer oder mehrerer Linien) an Standorten entsprechend der Objektschätzung beinhaltet oder nicht. Wenn das Robotersystem 100 Abweichungen in den verglichenen Daten erfasst, kann das Robotersystem 100 die Objektschätzung zurückweisen und/oder die Objektschätzung weiter anpassen, wie vorstehend beschrieben.
  • 8 ist ein Blockdiagramm eines Verfahrens 800 zum Betreiben des Robotersystems 100 aus 1 gemäß einigen Ausführungsformen der vorliegenden Technologie. Das Verfahren 800 kann ein Erlangen eines oder mehrerer Bildgebungsergebnisse (z. B. 2D- und/oder 3D-Bildgebungsdaten), die eine Umgebung mit einem oder mehreren Objekten darin darstellen, beinhalten (Block 802). Die Bilder können durch eine oder mehrere Bildgebungsvorrichtungen, wie etwa den ersten Bildsensor 212 oder den zweiten Bildsensor 214, die beide in 2 gezeigt sind, aufgenommen werden. Zum Beispiel können die 2D- und/oder die 3D-Bilder Draufsichtabbildungen von palettierten Boxen sein.
  • Das Verfahren 800 kann ein Erzeugen einer anfänglichen Objektschätzung auf Grundlage des 2D-Bildes beinhalten (Block 804). Die anfängliche Objektschätzung kann eine geschätzte Identifizierung und/oder einen geschätzten Standort eines Objekts, das sich in der Umgebung befindet, beinhalten. Wie vorstehend beschrieben, kann das Robotersystem 100 die anfängliche Objektschätzung auf Grundlage eines Analysierens/Vergleichens visueller Merkmale, die in den 2D-Bilden abgebildet sind, mit den Stammdaten erzeugen. Zum Beispiel kann das Robotersystem 100 das 2D-Bild oder einen Abschnitt davon mit den Oberflächenbildern in den Stammdaten, die Oberflächen von registrierten Objekten darstellen, vergleichen. Das Robotersystem 100 kann die anfängliche Objektschätzung erzeugen, wenn ein oder mehrere Merkmale in dem 2D-Bild mit einem Oberflächenbild eines der registrierten Objekte übereinstimmen. Das Robotersystem 100 kann eine Kennung (z. B. einen Objektnamen und/oder einen Identifizierungscode) des übereinstimmenden registrierten Objekts als die geschätzte Identifizierung bestimmen. Das Robotersystem 100 kann die übereinstimmenden Merkmale dazu verwenden, das übereinstimmende Bild auf das 2D-Bild abzubilden oder zu projizieren. Das Robotersystem 100 kann ferner die entsprechenden Standorte in dem 2D-Bild auf Standorte in der realen Welt abbilden, wodurch der geschätzte Objektstandort bestimmt wird. Zum Beispiel kann das Robotersystem 100 Standorte von peripheren Kanten und/oder Ecken des geschätzten Objekts schätzen.
  • Das Verfahren 800 kann ein Durchführen einer kantenbasierten Objekterfassung beinhalten (Block 806). Die kantenbasierte Objekterkennung kann ein Identifizieren mehrerer sich schneidender Sätze/Paare von Kanten, die in dem 2D-Bild erfasst sind, beinhalten. Somit kann das Robotersystem 100 die kantenbasierte Erfassung durch Inspizieren des 2D-Bildes, um darin abgebildete Kanten zu erfassen, beginnen (Block 808). Wie vorstehend angemerkt, kann eine Reihe von Kanten des Zielobjekts unter Verwendung einer geeigneten Kantendetektionstechnik (z. B. Canny-Kantendetektion und der Sobel-Filter) erfasst werden.
  • Die kantenbasierte Objekterfassung kann ein Ableiten von Kantenclustern beinhalten, die jeweils eine Gruppierung von erfassten Kanten beinhalten (Block 810). Beispielsweise kann ein Kantencluster zumindest zwei erfasste Kanten innerhalb einer vordefinierten Region, wie vorstehend beschrieben, beinhalten. Das Robotersystem 100 kann eine Kantenausrichtung bestimmen, die eine Richtung der erfassten Kanten angibt. Das Robotersystem 100 kann die erfassten Kanten gemäß bestimmten Kantenausrichtungen der erfassten Kanten gruppieren.
  • Die kantenbasierte Objekterfassung kann ein Erfassen von parallelen Kantensätzen/-paaren auf Grundlage des Kantenclusters beinhalten (Block 812). In einigen Ausführungsformen können die parallelen Kantensätze jeweils zwei erfasste Kanten beinhalten, die Ausrichtungen aufweisen, für die bestimmt ist, dass sie parallel zueinander sind. Wie vorstehend beschrieben, kann das Robotersystem 100 die parallelen Kantensätze auf Grundlage eines Analysierens von Kanten innerhalb eines Analysebereichs erfassen. In einigen Ausführungsformen kann das Robotersystem 100 die parallelen Kantensätze auf Grundlage eines Bestimmens, dass sich die Untermenge von erfassbaren Kanten, die in dem Kantencluster enthalten ist, in einem Winkel innerhalb eines Schwellenwinkels schneidet, erfassen. Das Robotersystem 100 kann die parallelen Kantensätze auf Grundlage einer qualifizierenden Bedingung, wie etwa durch Vergleichen des erfassbaren Kantenabstands 406 aus 4 mit vorbestimmten Abmessungen des registrierten Objekts, das mit der anfänglichen Objektschätzung assoziiert ist, erfassen. Das Robotersystem 100 kann die parallelen Kantensätze auf Grundlage eines Auswählens von Kanten in dem Kantencluster mit dem erfassbaren Kantenabstand 406, der mit den registrierten Abmessungen übereinstimmt (z. B. innerhalb eines Trennungsschwellenwerts liegt) erfassen.
  • Das Verfahren 800 kann ein Identifizieren eines Objektkantensatzes, der mehrere erfasste sich schneidende parallele Kantenpaare beinhaltet, beinhalten (Block 814). Der Objektkantensatz kann mehrere parallele Kantenpaare beinhalten, die unterschiedliche Ausrichtungen aufweisen und/oder einander schneiden. Zum Beispiel kann das Robotersystem 100 den Objektkantensatz als ein erstes paralleles Kantenpaar mit einer ersten Ausrichtung und ein zweites paralleles Kantenpaar mit einer zweiten Ausrichtung, das das erste parallele Kantenpaar schneidet, identifizieren. Dementsprechend kann das Robotersystem 100 den Objektkantensatz als die vier Kanten identifizieren, die miteinander verbunden sind und einen Bereich umschließen.
  • Das Verfahren 800 kann ein Projizieren des Objektkantensatzes auf eine Region des 3D-Bildes (z. B. Punktwolke), das die Umgebung mit dem einen oder den mehreren Objekten darin darstellt, beinhalten (Block 816); In einigen Ausführungsformen kann das Robotersystem 100 Punkte in dem 2D-Bild und dem 3D-Bild gegenseitig und/oder entsprechend Standorten in der realen Welt abbilden. Das Robotersystem 100 kann die Punkte unter Verwendung von vorbestimmten Prozessen, Koordinatensystemen, Nachschlagetabellen und/oder Gleichungen, die festen/bekannten Standorten und Ausrichtungen der Bildgebungsvorrichtungen entsprechen, projizieren. Dementsprechend kann das Robotersystem 100 Abschnitte/Standorte in dem 3D-Bild bestimmen, die den Kanten in dem Objektkantensatz entsprechen.
  • Das Verfahren 800 kann ein Identifizieren eines 3D-Eckenstandorts innerhalb der 3D-Bilddaten beinhalten (Block 818). Die 3D-Ecke kann, wie etwa durch das Robotersystem 100, dazu verwendet werden, einen Bereich zu analysieren, der eine vorbestimmte Form/Größe aufweist und einen Standort einer Ecke, die mit dem Objektkantensatz assoziiert ist, beinhaltet. Die 3D-Ecke kann dazu verwendet werden, nach einem Schnittpunkt zwischen 3D-Kanten (z. B. Sätzen von benachbarten Standorten, an denen sich das Tiefenmaß ändert) innerhalb des Analysebereichs zu suchen.
  • Das Verfahren 800 kann ein Berechnen eines Versatzes zwischen dem 3D-Eckenstandort und dem entsprechenden Eckenstandort der anfänglichen Objektschätzung beinhalten (Block 820). Der Versatz kann einen Unterschied in der Position, wie etwa durch einen Abstand und/oder eine Ausrichtung, zwischen einem 3D-Eckenstandort einer projizierten 3D-Punktwolke und einem Eckenstandort der anfänglichen Objektschätzung darstellen. In einigen Ausführungsformen kann das Robotersystem 100 2D- und 3D-Kanten vergleichen, um die Versätze zu berechnen, so wie vorstehend beschrieben.
  • Das Verfahren 800 kann den Versatz bewerten (Entscheidungsblock 822). In anderen Worten kann das Robotersystem 100 bestimmen, ob die anfängliche Objektschätzung (z. B. ein Standort des geschätzten Objekts) gemäß den 3D-Sensordaten genau ist. Das Robotersystem 100 kann auf Grundlage eines Vergleichens des berechneten Versatzes (z. B. eines Abstands zwischen der Ecke/Kante der anfänglichen Objektschätzung und dem 2D/3D-Standort der Ecke/Kante) und/oder der Kantenbewertung mit einem oder mehreren vorbestimmten Schwellenwerten bewerten. In einigen Ausführungsformen kann ein erfasster Kantenschnittpunkt auf Grundlage eines Bestimmens, dass der Versatzabstand größer als ein Schwellentrennungsabstand ist, zurückgewiesen werden. In einigen Ausführungsformen wird die erfassbare Kante auf Grundlage eines Bestimmens, dass die Kantenbewertung unter einem Schwellenniveau liegt, zurückgewiesen.
  • Das Verfahren 800 kann ein Erzeugen eines Objekterfassungsergebnisses auf Grundlage des Versatzes und der anfänglichen Objektschätzung beinhalten (Block 828). Das Erzeugen des Objekterfassungsergebnisses kann ein Aktualisieren der anfänglichen Objektschätzung auf Grundlage des Versatzes beinhalten (Block 824). Wenn zum Beispiel der berechnete Versatz größer als der Schwellentrennungsabstand ist, kann die anfängliche Objektschätzung aktualisiert werden, um den Versatz zu berücksichtigen. In anderen Worten kann das Robotersystem 100 die anfängliche Objektschätzung entlang der Richtung der Verschiebung um einen Abstand, der der Größe des berechneten Versatzes entspricht, verschieben. In einigen Ausführungsformen kann das Robotersystem 100 die anfängliche Objektschätzung anpassen, um mit der 2D/3D-Ecke oder -Kante in Einklang zu stehen, wodurch die anfängliche Objektschätzung gemäß dem berechneten Versatz verschoben wird. In anderen Ausführungsformen kann das Robotersystem 100 die anfängliche Objektschätzung um einen Bruchteil der Größe des berechneten Versatzes verschieben.
  • Das Erzeugen des Objekterfassungsergebnisses kann ein Verifizieren der anfänglichen Objektschätzung auf Grundlage des berechneten Versatzes beinhalten (Block 826). Wenn der Versatz nicht größer als der Schwellenwert ist und die anfängliche Objektschätzung im Wesentlichen mit der 2D/3D-Ecke oder -Kante in Einklang steht, kann das Robotersystem 100 die anfängliche Objektschätzung verifizieren. In einigen Ausführungsformen kann das Robotersystem 100 die anfängliche Objektschätzung gemäß der 2D-Ecke/Kante und dann gemäß der 3D-Ecke/Kante verifizieren/aktualisieren. Zum Beispiel kann das Robotersystem 100 zuerst die anfängliche Objektschätzung auf Grundlage eines Vergleichens einer oder mehrerer Kanten/Ecken davon mit Standorten von Ecken/Kanten, die getrennt aus dem 2D-Bild erfasst sind, verifizieren. Das Robotersystem 100 kann dementsprechend verifizieren oder anpassen. Dann kann das Robotersystem 100 gleichermaßen die Kanten/Ecken des verifizierten/angepassten Ergebnisses mit den Standorten der Kanten/Ecken in dem 3D-Bild vergleichen.
  • Das Robotersystem 100 kann die erzeugten Objekterfassungsergebnisse dazu verwenden, das erfasste Objekt handzuhaben. Zum Beispiel kann das Robotersystem 100 die Objekterfassungsergebnisse dazu verwenden, das erfasste Objekt zu lokalisieren. Dementsprechend kann das Robotersystem 100 einen Bewegungsplan (z. B. einen Satz von Befehlen und/oder Einstellungen zum Betreiben einer Robotereinheit) ableiten und umsetzen, um das Objekt zu greifen, anzuheben, horizontal zu bewegen, abzusenken und/oder freizugeben.
  • In einigen Ausführungsformen kann das Verfahren 800 ein Erzeugen der Kantenbewertung unter Angabe einer Genauigkeit des Objektkantensatzes beinhalten. Die Kantenbewertung kann beim Verifizieren oder Aktualisieren der anfänglichen Objektschätzung genutzt werden. Als ein Beispiel kann das Erzeugen der Kantenbewertung auf einem beliebigen der Folgenden basieren: eine Kontinuität der erfassten Kanten, die in dem Objektkantensatz beinhaltet sind; eine Ausrichtung der erfassten Kanten, die in dem Objektkantensatz beinhaltet sind; eine Ähnlichkeit zwischen jeder der erfassten Kanten, die in dem Objektkantensatz beinhaltet sind, und einer entsprechenden Kante in den vorbestimmten Objektabmessungsschätzungsinformationen; und eine Überlappung zwischen erfassbaren Kanten in dem Bild und der dreidimensionalen Punktwolke. In einem anderen Beispiel kann das Erzeugen der Kantenbewertung auf einem Abgleich zwischen erfassten parallelen Kantenpaaren in dem parallelen Kantensatz und einem Abgleich des erfassten Kantenschnittpunkts in Bezug auf eine erfasste dreidimensionale Ecke in der anfänglichen Objektschätzung basieren. In einigen Ausführungsformen kann das Robotersystem 100 die Kantenbewertungen als Teil des Inspizierens des einen oder der mehreren Bilder, um die Kanten zu erfassen, erzeugen. Das Robotersystem 100 kann die erfassten Kanten gemäß den Kantenbewertungen verifizieren, wie etwa durch Vergleichen der Kantenbewertungen jeder der Kandidatenkanten mit einem Kantenverifizierungsschwellenwert. Das Robotersystem 100 kann die verifizierten Kandidatenkanten als die erfassten Kanten verwenden und die erfassten Kanten, die nicht den Kantenverifizierungsschwellenwert erfüllen, verwerfen. Dementsprechend kann das Robotersystem 100 ferner die Genauigkeit der resultierenden Objekterfassung erhöhen.
  • Die Validierung und/oder Aktualisierung der anfänglichen merkmalsbasierten Objektschätzung unter Verwendung erfasster 2D/3D-Kanten oder -Ecken kann reduzierte Objektverarbeitungsfehler bereitstellen. Die Validierung und Aktualisierung kann Computersicht- oder Bildverarbeitungsfehler, Sensorfehler und/oder Defekte auf den Oberflächen der Objekte berücksichtigen, wodurch die Genauigkeit der Objekterfassung/des Objektstandorts verbessert wird. Die verbesserte Genauigkeit der Objekterfassung/des Objektstandorts kann es dem Robotersystem 100 ermöglichen, das Objekt für die Aufgabe genau handzuhaben. Zum Beispiel kann das Robotersystem 100 die Wahrscheinlichkeit des Greifens des Objekts an oder über dem MMP verbessern, was Kollisionen und/oder Greiffehler aufgrund eines Ungleichgewichts während der Objektbewegung reduzieren kann.
  • Ferner stellt das Analysieren der Kanten innerhalb eines Analysebereichs um die anfängliche Objektschätzung eine erhöhte Verarbeitungseffizienz bereit. Das Robotersystem 100 kann die Menge von analysierten Merkmalen durch Ableiten und Analysieren innerhalb des Analysebereichs begrenzen. In anderen Worten kann das Robotersystem 100 Abschnitte der 2D/3D-Bilder analysieren, um Kanten zu erfassen, Cluster anzuleiten, den Objektkantensatz zu identifizieren usw., anstatt die Bilder in deren Gesamtheit zu verarbeiten. Dementsprechend kann das Robotersystem 100 die Verarbeitungszeit und/oder Ressourcen reduzieren, um die Objektschätzungen zu verifizieren und/oder zu aktualisieren.
  • Zusätzlich stellen das Erfassen der Kanten, Ableiten der Kantencluster, Erfassen von parallelen Kantensätzen und Identifizieren des Objektkantensatzes (z. B. kantenbasierte Objekterfassung) eine genaue und effiziente Möglichkeit bereit, Objekte zu erfassen. Zum Beispiel kann das Robotersystem 100 falsch-positive Ergebnisse (z. B. Erfassen von Leerräumen, die durch parallele Kanten von getrennten Objekten begrenzt sind, als Objekte), die aufgrund eines Erfassens nur auf Grundlage von Kantenpaarungen resultieren können, entfernen oder reduzieren. Ferner kann das Robotersystem 100 mit der 3D-Verifizierungskomponente ferner falsch-positive Ergebnisse entfernen oder reduzieren. Das Ableiten von Clustern, das Erfassen von Paaren darin und das nachfolgende Identifizieren des Satzes von Kanten, die miteinander verbunden sind, kann es dem Robotersystem 100 auch ermöglichen, die kantenbasierte Objekterfassung ohne Testen von mehreren unterschiedlichen Szenarien für jede Kante effizient durchzuführen.
  • Beispielhaftes Verarbeitungssystem
  • 9 ist ein Blockdiagramm, das ein beispielhaftes Verarbeitungssystem 900 veranschaulicht, in dem mindestens einige der in der vorliegenden Schrift beschriebenen Vorgänge ausgeführt werden können. Wie in 9 gezeigt, können zu dem Verarbeitungssystem 900 eine oder mehrere zentrale Recheneinheiten („Prozessoren“) 902, ein Hauptspeicher 906, ein nichtflünichtflüchtiger Speicher 910, ein Netzwerkadapter 912 (z. B. Netzwerkschnittstellen), eine Videoanzeige 918, Eingabe-/Ausgabevorrichtungen 920, eine Steuerung 922 (z. B. Tastatur und Zeigevorrichtungen), eine Festplatteneinheit 924, einschließlich eines Speichermediums 926, und eine Signalerzeugungsvorrichtung 930 gehören, die kommunikativ mit einem Bus 916 verbunden sind. Der Bus 916 ist als eine Abstraktion veranschaulicht, die eine oder mehrere separate beliebige physische Busse, Punkt-zu-Punkt-Verbindungen oder beide verbunden durch entsprechende Brücken, Adapter oder Steuerungen darstellt. Zu dem Bus 916 können dementsprechend beispielsweise ein Systembus, ein Peripheral-Component-Interconnect(PCI)-Bus oder PCI-Express-Bus, ein HyperTransport- oder Industry-Standard-Architecture(ISA)-Bus, ein Small-Computer-System-Interface(SCSI)-Bus, ein Universal-Serial-Bus (USB), ein IIC(I2C)-Bus oder ein Institute-of-Electrical-and-Electronics-Engineers(IEEE)-Standard-1394-Bus, auch als „Firewire“ bezeichnet, gehören.
  • In verschiedenen Ausführungsformen arbeitet das Verarbeitungssystem 900 als Teil einer Benutzervorrichtung, wenngleich das Verarbeitungssystem 900 auch mit der Benutzervorrichtung verbunden sein kann (z. B. drahtgebunden oder drahtlos). In einer vernetzten Anwendung kann das Verarbeitungssystem 900 in der Funktion eines Servers oder einer Client-Maschine in einer Client-Server-Netzwerkumgebung oder als Peer-Maschine in einer Peer-to-Peer-Netzwerkumgebung (oder verteilten Netzwerkumgebung) arbeiten.
  • Das Verarbeitungssystem 900 kann ein Servercomputer, ein Client-Computer, ein PC, ein Tablet, ein Laptop-Computer, ein PDA, ein Mobiltelefon, ein Prozessor, eine Webanwendung, ein Netzwerkrouter, -Switch oder eine Netzwerkbrücke, eine Konsole, eine Handkonsole, eine Spielevorrichtung, eine Vorrichtung zum Wiedergeben von Musik, („intelligente“) Fernseher mit Internetanschluss, mit dem Fernseher verbundene Vorrichtungen, oder eine beliebige tragbare Vorrichtung oder Maschine sein, die in der Lage ist, eine Reihe von Anweisungen auszuführen (der Reihe nach oder anderweitig), die durch das Verarbeitungssystem 900 zu ergreifende Maßnahmen vorgeben.
  • Während der Hauptspeicher 906, der nichtflünichtflüchtige Speicher 910 und das Speichermedium 926 (auch als „maschinenlesbares Medium“ bezeichnet) laut Darstellung ein einzelnes Medium sind, sind die Begriffe „maschinenlesbares Medium“ und „Speichermedium“ so auszulegen, dass sie ein einzelnes Medium oder mehrere Medien umfassen (z. B. eine zentrale oder verteilte Datenbank und/oder assoziierte Caches und Server), die einen oder mehrere Sätze Anweisungen 928 speichern. Die Begriffe „maschinenlesbares Medium“ und „Speichermedium“ sind zudem so auszulegen, dass sie ein beliebiges Medium umfassen, das einen Satz Anweisungen zur Ausführung durch das Rechensystem speichern, codieren oder tragen kann und das Rechensystem veranlasst, eine beliebige oder mehrere der Methodiken der vorstehend offenbarten Ausführungsformen durchzuführen.
  • Im Allgemeinen können die Routinen, die ausgeführt werden, um die Ausführungsformen der Offenbarung umzusetzen, als Teil eines Betriebssystems oder einer konkreten Anwendung, einer konkreten Komponente, eines konkreten Programms, eines konkreten Objekts, eines konkreten Moduls oder einer konkreten Anweisungsfolge, als „Computerprogramme“ bezeichnet, umgesetz sein. Die Computerprogramme umfassen in der Regel eine oder mehrere Anweisungen (z. B. Anweisungen 904, 908, 928) die sich zu verschiedenen Zeitpunkten in verschiedenen Arbeitsspeicher- und Datenspeichervorrichtungen in einem Computer befinden und die, wenn sie durch eine oder mehrere Recheneinheiten oder Prozessoren 902 ausgelesen und ausgeführt werden, das Verarbeitungssystem 900 veranlassen, Vorgänge auszuführen, um Elemente auszuführen, die die verschiedenen Aspekte der Offenbarung einbeziehen.
  • Zudem wird, wenngleich Ausführungsformen im Zusammenhang mit vollständig funktionsfähigen Computern und Computersystemen beschrieben wurden, der Fachmann erkennen, dass die verschiedenen Ausführungsformen als ein Programmprodukt in einer Vielzahl von Formen verteilt sein können und dass die Offenbarung ungeachtet der konkreten Art der maschinen- oder computerlesbaren Medien gleichwohl anwendbar ist, die verwendet werden, um die Verteilung tatsächlich zu bewirken. Beispielsweise könnte die in der vorliegenden Schrift beschriebene Technologie unter Verwendung virtueller Maschinen oder von Cloud-Rechendiensten umgesetzt sein.
  • Weitere Beispiele für maschinenlesbare Speichermedien, maschinenlesbare Medien oder computerlesbare (Speicher-)Medien sind unter anderem beschreibbare Medien, wie etwa flüchtige und nichtflüchtige Speichervorrichtungen 910, Floppy- und andere herausnehmbare Disketten, Festplattenlaufwerke, optische Datenträger (z. B. Compact Disk Read-Only Memory (CD ROM), Digital Versatile Disks (DVDs)), und Übertragungsmedien, wie etwa digitale und analoge Kommunikationsverbindungen.
  • Der Netzwerkadapter 912 erlaubt dem Verarbeitungssystem 900 ein Vermitteln von Daten in einem Netzwerk 914 mit einer Einheit, die zu dem Verarbeitungssystem 900 extern ist, unter Anwendung beliebiger bekannter und/oder praktischer Kommunikationsprotokolle, die durch das Verarbeitungssystem 900 und die externe Einheit unterstützt werden. Zu dem Netzwerkadapter 912 können eine oder mehrere der folgenden gehören: eine Netzwerkadapterkarte, eine drahtlose Netzwerkschnittstellenkarte, ein Router, ein Zugangspunkt, ein drahtloser Router, ein Switch, ein mehrere Schichten umfassender Switch, ein Protokollkonverter, ein Gateway, eine Brücke, ein Brückenrouter, ein Hub, ein digitaler Medienreceiver und/oder ein Repeater.
  • Zu dem Netzwerkadapter 912 kann eine Firewall gehören, die in einigen Ausführungsformen die Genehmigung zum Zugreifen/Weitergeben auf/von Daten in einem Computernetzwerk regeln und/oder verwalten und verschiedene Vertrauensebenen zwischen verschiedenen Maschinen und/oder Anwendungen nachverfolgen kann. Die Firewall kann eine beliebige Anzahl von Modulen umfassen, die eine beliebige Kombination von Hardware- und/oder Softwarekomponenten umfassen, die in der Lage sind, einen vorbestimmten Satz Zugriffsrechte zwischen einem konkreten Satz Maschinen und Anwendungen, Maschinen und Maschinen und/oder Anwendungen und Anwendungen durchzusetzen, um beispielsweise den Fluss von Traffic und das Teilen von Ressourcen zwischen diesen verschiedenen Einheiten zu regulieren. Die Firewall kann daneben eine Zugangskontrollliste verwalten und/oder Zugriff darauf haben, aus der Berechtigungen hervorgehen, einschließlich beispielsweise die Zugriffs- und Betriebsrechte eines Objektes durch ein Individuum, eine Maschine und/oder eine Anwendung, und die Umstände, unter denen diese Berechtigungen stehen.
  • Wie vorstehend angedeutet, können die in der vorliegenden Schrift vorgestellten Techniken beispielsweise durch programmierbare Schaltungen (z. B. einen oder mehrere Mikroprozessoren), programmiert mit Software und/oder Firmware, insgesamt in festverdrahteten (d. h. nicht programmierbaren) Spezialschaltungen oder in einer Kombination derartiger Formen umgesetzt sein. Spezialschaltungen können beispielsweise in Form von einem/einer oder mehreren anwendungsspezifischen integrierten Schaltkreisen (ASIC), programmierbaren Logikvorrichtungen (PLD), Universalschaltkreisen (FPGA) usw. vorliegen.
  • In Anbetracht der vorstehenden Informationen versteht es sich, dass konkrete Ausführungsformen der Erfindung in der vorliegenden Schrift zum Zwecke der Veranschaulichung beschrieben sind, jedoch verschiedene Modifikationen durchgeführt werden können, ohne von dem Geltungsbereich der Erfindung abzuweichen. Dementsprechend wird die Erfindung ausschließlich durch die beigefügten Patentansprüche beschränkt.

Claims (20)

  1. Verfahren zum Betreiben eines Robotersystems, wobei das Verfahren Folgendes umfasst: Erlangen eines zweidimensionalen (2D) Bildes und eines dreidimensionalen (3D) Bildes, die eine Umgebung darstellen; Erzeugen einer anfänglichen Objektschätzung auf Grundlage von einem oder mehreren visuellen Merkmalen, die in dem 2D-Bild abgebildet sind, wobei die anfängliche Objektschätzung eine geschätzte Identifizierung und/oder einen geschätzten Standort eines Objekts, das sich in der Umgebung befindet, darstellt; Erfassen von Kanten auf Grundlage eines Analysierens des 2D-Bildes; Ableiten von Kantenclustern, wobei jeder Kantencluster eine Gruppierung von zumindest zwei der erfassten Kanten beinhaltet; Erfassen paralleler Kantensätze auf Grundlage der Kantencluster, wobei jedes parallele Kantenpaar ein Paar von erfassten Kanten mit einer parallelen Ausrichtung beinhaltet; Identifizieren eines Objektkantensatzes, beinhaltend zumindest ein erstes paralleles Paar und ein zweites paralleles Paar von erfassten Kanten, wobei zumindest eine Kante in dem ersten parallelen Paar zumindest eine Kante in dem zweiten parallelen Paar schneidet; Projizieren des Objektkantensatzes auf eine Region des 3D-Bildes; Identifizieren eines 3D-Merkmalsstandortes auf Grundlage des projizierten Objektkantensatzes, wobei der 3D-Merkmalsstandort einen Standort einer Ecke oder einen Standort einer 3D-Kante in dem 3D-Bild darstellt, der dem projizierten Objektkantensatz entspricht; Berechnen eines Versatzes zwischen dem 3D-Merkmalsstandort und einem entsprechenden Standort der anfänglichen Objektschätzung; und Erzeugen eines Objekterfassungsergebnisses auf Grundlage der anfänglichen Objektschätzung und des Versatzes.
  2. Verfahren nach Anspruch 1, zudem umfassend: Bestimmen einer Kantenausrichtung für jede erfasste Kante der erfassten Kanten; und wobei: das Ableiten der Kantencluster ein Gruppieren der erfassten Kanten gemäß Kantenausrichtungen beinhaltet, wobei jede Gruppierung parallele Instanzen der erfassten Kanten, die eine übereinstimmende Kantenausrichtung aufweisen oder bei denen die Kantenausrichtungen innerhalb eines Winkelschwellenwertes zueinander liegen, beinhaltet.
  3. Verfahren nach Anspruch 2, wobei das Gruppieren der erfassten Kanten Folgendes beinhaltet: Berechnen eines Vektors für jede der erfassten Kanten; Berechnen eines Winkels eines Skalarprodukts eines ersten Vektors und eines zweiten Vektors, wobei der erste Vektor eine erste erfasste Kante darstellt und der zweite Vektor eine zweite erfasste Kante darstellt; Vergleichen des Winkels des Skalarprodukts mit einem Winkelschwellenwert; und Gruppieren der ersten erfassten Kante und der zweiten erfassten Kante, wenn der Winkel des Skalarprodukts kleiner als der Winkelschwellenwert ist.
  4. Verfahren nach Anspruch 1, wobei das Ableiten der Kantencluster Folgendes beinhaltet: Bestimmen eines Analyseabschnitts innerhalb des 2D-Bildes; und Identifizieren der erfassten Kanten, die innerhalb des Analyseabschnitts liegen.
  5. Verfahren nach Anspruch 4, wobei der Analyseabschnitt zumindest einen Abschnitt der anfänglichen Objektschätzung beinhaltet.
  6. Verfahren nach Anspruch 4, wobei das Erzeugen der anfänglichen Objektschätzung Folgendes beinhaltet: Vergleichen zumindest eines Abschnitts des 2D-Bildes, das das eine oder die mehreren visuellen Merkmale beinhaltet, mit Stammdaten, die Darstellungen von Oberflächen von registrierten Objekten beinhalten; wenn das eine oder die mehreren visuellen Merkmale des 2D-Bildes mit einem der Bilder in den Stammdaten übereinstimmen, Bestimmen einer geschätzten Identifizierung, die für ein registriertes Objekt steht, das mit dem übereinstimmenden Bild assoziiert ist; und Bestimmen eines geschätzten Objektstandorts auf Grundlage des einen oder der mehreren visuellen Merkmale und des übereinstimmenden Bildes in den Stammdaten.
  7. Verfahren nach Anspruch 1, wobei das Erfassen der parallelen Kantensätze Folgendes beinhaltet: Berechnen eines erfassbaren Kantenabstands zwischen jedem Paar der erfassten Kanten in jedem der Kantencluster; Vergleichen der resultierenden erfassbaren Kantenabstände mit Abmessungen in den Stammdaten, die für ein registriertes Objekt stehen, das mit der anfänglichen Objektschätzung assoziiert ist; und Auswählen eines Paares von Kanten für einen parallelen Kantensatz, wobei das Paar von Kanten dem erfassbaren Kantenabstand entspricht, der mit einer der Abmessungen in den Stammdaten übereinstimmt.
  8. Verfahren nach Anspruch 1, ferner umfassend: Erzeugen einer Kantenbewertung für jede erfasste Kante; und wobei: die erfassten Kanten in dem Objektkantensatz die Kantenbewertung aufweisen, die einen Kantendetektionsschwellenwert übersteigt.
  9. Verfahren nach Anspruch 8, wobei das Erzeugen der Kantenbewertung ein Berechnen der Kantenbewertung auf Grundlage eines beliebigen der Folgenden beinhaltet: (1) ein Kontinuitätsmaß einer Kante, das durch die Kantenbewertung dargestellt ist, (2) eine Ausrichtung der dargestellten Kante, (3) ein Ähnlichkeitsmaß zwischen der dargestellten Kante und anderen Kanten in dem Objektkantensatz und (4) ein Überlappungsmaß zwischen der dargestellten Kante und der 3D-Kante, die in dem 3D-Bild dargestellt ist.
  10. Verfahren nach Anspruch 8, wobei das Erzeugen der Kantenbewertung ein Berechnen der Kantenbewertung auf Grundlage eines Abgleichs zwischen den erfassten parallelen Kantenpaaren und eines Abgleichs einer erfassten Ecke und einer 3D-Ecke in dem 3D-Bild beinhaltet.
  11. Verfahren nach Anspruch 8, wobei das Erfassen der Kanten Folgendes beinhaltet: Zurückweisen einer erfassbaren Kante, deren Kantenbewertung unter dem Kantendetektionsschwellenwert liegt.
  12. Verfahren nach Anspruch 1, wobei das Erzeugen des Objekterfassungsergebnisses ein Aktualisieren der anfänglichen Objektschätzung beinhaltet, wenn der Versatz einen Trennungsabstandsschwellenwert übersteigt.
  13. Verfahren nach Anspruch 12, wobei das Aktualisieren der anfänglichen Objektschätzung ein Verschieben eines geschätzten Objektstandorts der anfänglichen Objektschätzung gemäß dem Versatz beinhaltet.
  14. Verfahren nach Anspruch 1, wobei das Erzeugen des Objekterfassungsergebnisses ein Verifizieren der anfänglichen Objektschätzung beinhaltet, wenn der Versatz kleiner als ein Trennungsabstandsschwellenwert ist.
  15. Materielles, nichtflüchtiges computerlesbares Medium mit darauf gespeicherten Anweisungen, die bei Ausführung durch einen Prozessor den Prozessor dazu veranlassen, ein Verfahren durchzuführen, wobei das Verfahren Folgendes umfasst: Erlangen eines Bildes, das eine Umgebung darstellt; Erzeugen einer anfänglichen Objektschätzung auf Grundlage des Bildes, wobei die anfängliche Objektschätzung eine geschätzte Identifizierung und/oder einen geschätzten Standort eines Objekts, das sich in der Umgebung befindet, darstellt; Erfassen von Kanten in dem Bild; Erfassen von einem oder mehreren Sätzen der erfassten Kanten, die der anfänglichen Objektschätzung entsprechen; Identifizieren eines dreidimensionalen (3D) Standorts einer Kante oder eines Abschnitts davon in einem oder mehreren Sätzen der erfassten Kanten auf Grundlage eines Projizierens der Sätze der erfassten Kanten in einen 3D-Raum, der die Umgebung darstellt; und Erzeugen eines Objekterfassungsergebnisses auf Grundlage der anfänglichen Objektschätzung und des 3D-Standorts.
  16. Materielles, nichtflüchtiges computerlesbares Medium nach Anspruch 15, wobei das Verfahren ferner Folgendes umfasst: Bestimmen einer Kantenausrichtung für jede erfasste Kante; Gruppieren der erfassten Kanten gemäß der Kantenausrichtung, um einen oder mehrere Kantencluster abzuleiten, wobei jeder Kantencluster zumindest zwei der erfassten Kanten mit parallelen Kantenausrichtungen beinhaltet; und wobei das Erfassen jedes von dem einen oder den mehreren Sätzen von erfassten Kanten ein Auswählen eines Satzes von erfassten Kanten innerhalb eines der Kantencluster gemäß einer qualifizierenden Bedingung beinhaltet.
  17. Materielles, nichtflüchtiges computerlesbares Medium nach Anspruch 15, wobei das Verfahren ferner Folgendes umfasst: Bestimmen eines Analyseabschnitts innerhalb des 2D-Bildes gemäß der anfänglichen Objektschätzung; und wobei: das Erfassen des einen oder der mehreren Sätze der erfassten Kanten ein Analysieren der erfassten Kanten in dem Analyseabschnitt beinhaltet, während Abschnitte des 2D-Bildes außerhalb des Analyseabschnitts ignoriert werden.
  18. Materielles, nichtflüchtiges computerlesbares Medium nach Anspruch 15, wobei: das Erlangen des Bildes ein Erlangen einer zweidimensionalen (2D) Darstellung und einer 3D-Darstellung der Umgebung beinhaltet; das Erfassen der Kanten ein Erfassen der in der 2D-Darstellung abgebildeten Kanten beinhaltet; das Objekterfassungsergebnis auf Grundlage eines Versatzes zwischen entsprechenden Merkmalen in der 2D- und der 3D-Darstellung erzeugt wird; wobei das Verfahren ferner Folgendes umfasst: Identifizieren einer 3D-Kante oder eines Abschnitts davon, der der Kante oder dem Abschnitt davon in dem einen oder den mehreren Sätzen der erfassten Kanten entspricht; und Berechnen des Versatzes zwischen dem 3D-Standort, der aus der 2D-Darstellung abgeleitet ist, und einem Standort der 3D-Kante, die in der 3D-Darstellung abgebildet ist.
  19. Materielles, nichtflüchtiges computerlesbares Medium nach Anspruch 18, wobei das Erzeugen des Objekterfassungsergebnisses ein Verschieben des geschätzten Standorts gemäß dem Versatz beinhaltet, wenn der Versatz einen Trennungsabstandsschwellenwert übersteigt.
  20. Robotersystem umfassend: eine Kommunikationsschaltung, die dazu konfiguriert ist, computerlesbare Daten mit einem zweidimensionalen (2D) Bildgebungssensor und einer oder mehreren Robotereinheiten auszutauschen; zumindest einen Prozessor, der mit der Kommunikationsschaltung gekoppelt ist; und zumindest eine Speichervorrichtung, die mit dem zumindest einen Prozessor gekoppelt ist, wobei in dem zumindest einen Speicher Anweisungen gespeichert sind, die bei Ausführung durch den Prozessor den Prozessor zu Folgendem veranlassen: ein 2D-Bild von dem 2D-Bildgebungssensor zu erlangen, wobei das 2D-Bild eine Umgebung darstellt; eine anfängliche Objektschätzung auf Grundlage des 2D-Bildes zu erzeugen, wobei diese eine geschätzte Identifizierung und/oder einen Standort eines Objekts, das sich in der Umgebung befindet, darstellt; Kanten in dem 2D-Bild zu erfassen; eine oder mehrere Paarungen von erfassten Kanten mit parallelen Kantenausrichtungen und die der anfänglichen Objektschätzung entsprechen zu erfassen; einen dreidimensionalen (3D) Standort durch Projizieren der einen oder der mehreren Kantenpaarungen von erfassten Kanten in einen 3D-Raum zu identifizieren; einen Versatz zwischen dem 3D-Standort und einem Eckenstandort der anfänglichen Objektschätzung zu berechnen; ein Objekterfassungsergebnis, beinhaltend einen Standort des Objekts, auf Grundlage der anfänglichen Objektschätzung und des Versatzes zu erzeugen; einen Plan gemäß dem Objekterfassungsergebnis zum Betreiben der einen oder der mehreren Robotereinheiten abzuleiten und umzusetzen, um das in der Umgebung befindliche Objekt handzuhaben.
DE102020111139.8A 2019-07-26 2020-04-23 Verfeinerung nach Erfassung basierend auf Kanten und mehrdimensionalen Ecken Pending DE102020111139A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962879359P 2019-07-26 2019-07-26
US62/879,359 2019-07-26
US16/824,680 2020-03-19
US16/824,680 US11389965B2 (en) 2019-07-26 2020-03-19 Post-detection refinement based on edges and multi-dimensional corners

Publications (1)

Publication Number Publication Date
DE102020111139A1 true DE102020111139A1 (de) 2021-01-28

Family

ID=72276712

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020111139.8A Pending DE102020111139A1 (de) 2019-07-26 2020-04-23 Verfeinerung nach Erfassung basierend auf Kanten und mehrdimensionalen Ecken

Country Status (4)

Country Link
US (2) US11389965B2 (de)
JP (2) JP6749034B1 (de)
CN (1) CN112307870A (de)
DE (1) DE102020111139A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021202340A1 (de) 2021-03-10 2022-09-15 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum steuern eines roboters zum aufnehmen und inspizieren eines objekts und robotersteuereinrichtung

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9393686B1 (en) * 2013-03-15 2016-07-19 Industrial Perception, Inc. Moveable apparatuses having robotic manipulators and conveyors to facilitate object movement
US11389965B2 (en) * 2019-07-26 2022-07-19 Mujin, Inc. Post-detection refinement based on edges and multi-dimensional corners
JP7314871B2 (ja) * 2020-07-09 2023-07-26 新東工業株式会社 強度計測装置及び強度計測方法
JP7303231B2 (ja) 2021-02-16 2023-07-04 プライムプラネットエナジー&ソリューションズ株式会社 電池
CN112935703B (zh) * 2021-03-19 2022-09-27 山东大学 识别动态托盘终端的移动机器人位姿校正方法及系统
CN115375912A (zh) 2021-05-04 2022-11-22 牧今科技 用于执行物体检测的方法和计算系统
WO2022245842A1 (en) * 2021-05-18 2022-11-24 Mujin, Inc A robotic system for object size measurement
US20230027984A1 (en) 2021-07-21 2023-01-26 Mujin, Inc. Robotic system with depth-based processing mechanism and methods for operating the same
US20230191608A1 (en) * 2021-12-22 2023-06-22 AMP Robotics Corporation Using machine learning to recognize variant objects

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000057129A1 (fr) 1999-03-19 2000-09-28 Matsushita Electric Works, Ltd. Procede de reconnaissance d'objet tridimensionnel et systeme de collecte de broches a l'aide de ce procede
US7065242B2 (en) 2000-03-28 2006-06-20 Viewpoint Corporation System and method of three-dimensional image capture and modeling
JP3482938B2 (ja) 2000-05-02 2004-01-06 株式会社ダイフク 物品位置認識装置
JP3849514B2 (ja) 2001-12-10 2006-11-22 株式会社ダイフク 物品位置認識装置
US7522163B2 (en) * 2004-08-28 2009-04-21 David Holmes Method and apparatus for determining offsets of a part from a digital image
US20090091566A1 (en) * 2007-10-05 2009-04-09 Turney Stephen G System and methods for thick specimen imaging using a microscope based tissue sectioning device
CN102128589B (zh) 2010-01-20 2013-03-13 中国科学院自动化研究所 一种在轴孔装配中零件内孔方位误差的校正方法
JP5746477B2 (ja) * 2010-02-26 2015-07-08 キヤノン株式会社 モデル生成装置、3次元計測装置、それらの制御方法及びプログラム
CN101907459B (zh) 2010-07-12 2012-01-04 清华大学 基于单目视频的实时三维刚体目标姿态估计与测距方法
US9355305B2 (en) 2010-10-08 2016-05-31 Panasonic Corporation Posture estimation device and posture estimation method
JP5839929B2 (ja) 2010-11-19 2016-01-06 キヤノン株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム
CN102890823B (zh) 2011-07-19 2016-04-27 株式会社东芝 运动对象轮廓提取及左心室图像分割方法和装置
JP2013101045A (ja) 2011-11-08 2013-05-23 Fanuc Ltd 物品の3次元位置姿勢の認識装置及び認識方法
US9030470B2 (en) 2012-08-14 2015-05-12 Hong Kong Applied Science and Technology Research Institute Company Limited Method and system for rapid three-dimensional shape measurement
US9488492B2 (en) * 2014-03-18 2016-11-08 Sri International Real-time system for multi-modal 3D geospatial mapping, object recognition, scene annotation and analytics
US9393686B1 (en) * 2013-03-15 2016-07-19 Industrial Perception, Inc. Moveable apparatuses having robotic manipulators and conveyors to facilitate object movement
US9424461B1 (en) * 2013-06-27 2016-08-23 Amazon Technologies, Inc. Object recognition for three-dimensional bodies
CN104424475B (zh) 2013-09-10 2018-05-01 阿里巴巴集团控股有限公司 图像中的条纹区域的识别方法及装置
US9233469B2 (en) 2014-02-13 2016-01-12 GM Global Technology Operations LLC Robotic system with 3D box location functionality
CN104075659B (zh) 2014-06-24 2016-08-17 华南理工大学 一种基于rgb结构光源的三维成像识别方法
CN107111739B (zh) * 2014-08-08 2020-12-04 机器人视觉科技股份有限公司 物品特征的检测与跟踪
JP6075888B2 (ja) * 2014-10-16 2017-02-08 キヤノン株式会社 画像処理方法、ロボットの制御方法
JP6573354B2 (ja) 2014-11-28 2019-09-11 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
CN104841593B (zh) 2015-05-29 2017-04-19 希美埃(芜湖)机器人技术有限公司 一种机器人自动喷涂系统的控制方法
CN105654465B (zh) 2015-12-21 2018-06-26 宁波大学 一种采用视差补偿视点间滤波的立体图像质量评价方法
US9904867B2 (en) * 2016-01-29 2018-02-27 Pointivo, Inc. Systems and methods for extracting information about objects from scene information
CN106056598A (zh) 2016-05-27 2016-10-26 哈尔滨工业大学 基于线段检测和图像分割融合的卫星高分图像建筑物轮廓提取方法
CN107729893B (zh) 2017-10-12 2020-06-30 清华大学 一种合模机的视觉定位方法、系统和存储介质
EP3474230B1 (de) 2017-10-18 2020-07-22 Tata Consultancy Services Limited Systeme und verfahren für monokularen visuellen slam auf basis von kantenpunkten
US11504853B2 (en) * 2017-11-16 2022-11-22 General Electric Company Robotic system architecture and control processes
CN108920996A (zh) 2018-04-10 2018-11-30 泰州职业技术学院 一种基于机器人视觉的小目标检测方法
CN108724190A (zh) 2018-06-27 2018-11-02 西安交通大学 一种工业机器人数字孪生系统仿真方法及装置
JP7031540B2 (ja) * 2018-09-07 2022-03-08 オムロン株式会社 対象物認識装置、マニピュレータ、および移動ロボット
DE112019000125B4 (de) * 2018-10-30 2021-07-01 Mujin, Inc. Systeme, vorrichtungen und verfahren zur automatisierten verpackungsregistrierung
US10369701B1 (en) * 2018-10-30 2019-08-06 Mujin, Inc. Automated package registration systems, devices, and methods
CN109559324B (zh) 2018-11-22 2020-06-05 北京理工大学 一种线阵图像中的目标轮廓检测方法
US11023763B2 (en) * 2019-03-19 2021-06-01 Boston Dynamics, Inc. Detecting boxes
CN110243308A (zh) 2019-05-31 2019-09-17 湖北大学 基于区域定位的实时相位测量轮廓术
US11389965B2 (en) * 2019-07-26 2022-07-19 Mujin, Inc. Post-detection refinement based on edges and multi-dimensional corners

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021202340A1 (de) 2021-03-10 2022-09-15 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum steuern eines roboters zum aufnehmen und inspizieren eines objekts und robotersteuereinrichtung

Also Published As

Publication number Publication date
CN112307870A (zh) 2021-02-02
JP2021022364A (ja) 2021-02-18
US20220297305A1 (en) 2022-09-22
US11850760B2 (en) 2023-12-26
US11389965B2 (en) 2022-07-19
JP6749034B1 (ja) 2020-09-02
US20210023717A1 (en) 2021-01-28
JP2021022383A (ja) 2021-02-18

Similar Documents

Publication Publication Date Title
DE112019000217B4 (de) Ein Robotersystem mit automatisiertem Paketregistrierungsmechanismus und Leitung zur automatischen Erkennung
DE102020111139A1 (de) Verfeinerung nach Erfassung basierend auf Kanten und mehrdimensionalen Ecken
DE102019009189B4 (de) Robotersytem mit Fehlererkennung und dynamischem Packmechanismus
DE102019130046B4 (de) Robotersytem mit verbessertem Abtastmechanismus
DE102019130902B4 (de) Ein Robotersytem mit dynamischem Packmechanismus
DE102020127473A1 (de) Robotersystem mit wandbasiertem packmechanismus und verfahren zum betreiben dieses systems
DE102019130048B4 (de) Ein Robotersystem mit Srückverlustverwaltungsmechanismus
DE112020000067T5 (de) Roboter-mehrfachgreiferbaugruppen und -verfahren zum greifen und halten von objekten
DE102019130635A1 (de) Ein robotersystem mit packmechanismus
DE102020116803A1 (de) System und verfahren zur objekterkennung auf der grundlage von bilddaten
DE102020101767B4 (de) Steuerverfahren und steuerung für ein robotersystem
DE102020112099A1 (de) Ein robotersystem mit einem koordinierten übertragungsmechanismus
CN111783529B (zh) 基于边缘和多维拐角的检测后改善
US20240157566A1 (en) Post-detection refinement based on edges and multi-dimensional corners

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE