-
QUERVERWEIS AUF VERWANDTE ANMELDUNG(EN)
-
Diese Anmeldung beansprucht die Priorität der vorläufigen US-Patentanmeldung mit der Seriennummer 62/752,756, eingereicht am 30. Oktober 2018, die in ihrer Gesamtheit durch Verweis in die vorliegende Schrift aufgenommen ist. Diese Anmeldung beansprucht zudem die Priorität der vorläufigen
US-Patentanmeldung mit der Seriennummer 62/852,963 , eingereicht am 24. Mai 2019, die in ihrer Gesamtheit durch Verweis in die vorliegende Schrift aufgenommen ist. Diese Anmeldung steht zudem in Zusammenhang mit der
US-Patentanmeldung mit der Seriennummer 16/290,741 , eingereicht am 1. März 2019, mittlerweile
US-Patent Nr. 10,369,701 , und ist in ihrer Gesamtheit durch Verweis aufgenommen.
-
Diese Anmeldung enthält einen Gegenstand im Zusammenhang mit einer zeitgleich eingereichten US-Patentanmeldung von Jinze Yu, Jose Jeronimo Moreira Rodrigues und Rose Nikolaev Diankov, mit dem Titel „A ROBOTIC SYSTEM WITH AUTOMATED PACKAGE REGISTRATION MECHANISM AND MINIMUM VIABLE REGION DETECTION.“ Die verwandte Anmeldung ist Mujin, Inc., zugeordnet und mit dem Aktenzeichen 131837-8003.US40 versehen. Der Gegenstand dieser Anmeldung ist durch Verweis darauf in die vorliegende Schrift aufgenommen.
-
TECHNISCHES GEBIET
-
Die vorliegende Technologie bezieht sich im Allgemeinen auf Robotersysteme und insbesondere auf Systeme, Prozesse und Techniken für das Registrieren von Objekten.
-
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 depalettiert werden. Pakete können von menschlichen Arbeitern depalettiert werden, was ressourcenintensiv sein und das Verletzungsrisiko für die menschlichen Arbeiter erhöhen kann. In industriellen Anordnungen können Depalettiervorgä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 Bildgebungsvorrichtung verwendet werden, um ein Bild eines Paketstapels zu erfassen, der auf die Palette geladen wurde. Ein System kann das Bild verarbeiten, um sicherzustellen, dass das Paket durch den Roboterarm effizient umgeschlagen wird, wie etwa durch Vergleichen des erfassten Bildes mit einem registrierten Bild, das in einer Registrierungsdatenquelle gespeichert ist.
-
Gelegentlich kann das erfasste Bild eines Pakets mit einem registrierten Bild übereinstimmen. Folglich können physische Eigenschaften (zum Beispiel Messungen der Abmessungen eines Pakets, seines Gewichts und/oder Massenmittelpunkts) der abgebildeten Objekte unbekannt sein. 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 behandelt 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, wobei gleiche Bezugsziffern ähnliche Elemente anzeigen können.
- 1 veranschaulicht eine beispielhafte Umgebung, in der ein Robotersystem arbeiten kann.
- 2 veranschaulicht das Robotersystem gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
- 3A veranschaulicht einen beispielhaften Objektstapel, der durch das Robotersystem gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie verarbeitet wird.
- 3B veranschaulicht eine Oberseite des beispielhaften Stapels gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
- 3C veranschaulicht Sensordaten, die der Oberseite gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie entsprechen.
- 4A veranschaulicht Sensordaten, die einer Oberseite entsprechen, im Anschluss an einen ersten Satz Vorgänge gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
- 4B veranschaulicht einen Abschnitt der in 4A veranschaulichen Sensordaten gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
- 5 veranschaulicht eine Draufsicht auf eine Reihe von palettierten Paketen gemäß einigen Ausführungsformen der vorliegenden Technologie.
- 6 veranschaulicht eine grafische Darstellung einer exponierten Außenecke gemäß einigen Ausführungsformen der vorliegenden Technologie.
- 7 ist ein Blockdiagramm eines Satzes von palettierten Paketen gemäß einigen Ausführungsformen der vorliegenden Technologie.
- 8 veranschaulicht ein Beispiel für einen vereinigten MVR-Bereich gemäß einigen Ausführungsformen der vorliegenden Technologie.
- 9 ist ein Ablaufdiagramm eines Objekterkennungsverfahrens gemäß einigen Ausführungsformen der vorliegenden Technologie.
- 10 ist ein Blockdiagramm eines Verfahrens zum Betreiben des Robotersystems aus 1 gemäß einigen Ausführungsformen der vorliegenden Technologie.
- 11 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 automatisierten Paketregistrierungsmechanismen sind in der vorliegenden Schrift beschrieben. Ein Robotersystem (zum Beispiel ein integriertes System von Vorrichtungen, das eine oder mehrere festgelegte Aufgaben ausführt), das gemäß einigen Ausführungsformen konfiguriert ist, stellt eine verbesserte Anwendbarkeit und Flexibilität durch Manipulieren und/oder autonomes/automatisches (zum Beispiel mit geringfügigen oder keinen Eingaben durch den menschlichen Bediener) Registrieren von vorher unbekannten oder unerkannten Objekten bereit (zum Beispiel Pakete, Kartons, Verpackungen usw.).
-
Um zu ermitteln, ob Objekte erkannt werden, kann das Robotersystem Daten im Hinblick auf Objekte an einer Startposition (zum Beispiel 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 (zum Beispiel ein Abschnitt des verglichenen Bildes) mit Registrierungsdaten (z.B. eines der registrierten Oberflächenbilder) für eines der Objekte übereinstimmen. Das Robotersystem kann ein Objekt als nicht registriert ermitteln, wenn die verglichenen Daten nicht mit den Registrierungsdaten von bekannten oder erwarteten Objekten übereinstimmen.
-
Das Robotersystem kann die unerkannten Objekte entsprechend einer oder mehrerer Schätzungen manipulieren und zusätzliche Informationen (zum Beispiel ein Oberflächenbild und/oder physische Abmessungen) über die unerkannten Objekte ermitteln. Beispielsweise kann das Robotersystem exponierte Kanten und/oder exponierte Außenecken der unerkannten Objekte erkennen, die von anderen Objekten getrennt sind oder nicht an diese angrenzen.
-
Zu der Schätzung kann das Erzeugen von geeigneten Mindestbereichen (Minimum Viable Regions - MVR) gehören, die Mindest- und/oder optimale Flächen darstellen, die erforderlich sind, um die jeweiligen unerkannten Objekte zu greifen und anzuheben. Jeder der MVR kann zudem eine Schätzung einer Oberfläche (zum Beispiel periphere Grenzen davon) von einem einzelnen unerkannten Objekt darstellen. Beim Erzeugen der MVR können exponierte Außenecken und exponierte Kanten durch Überprüfen zweidimensionaler (2D) und/oder dreidimensionaler (3D) Bildgebungsdaten erkannt werden. Auf Grundlage der erkannten exponierten Außenecke und exponierten Kanten kann ein anfänglicher MVR durch Erkennen von Kanten erzeugt werden, die den exponierten Kanten gegenüberliegen. Der anfängliche MVR kann weiter verarbeitet werden, wie etwa durch Bestimmen und Testen vergrößerter und/oder verkleinerter Bereiche, um einen verifizierten MVR zu erzeugen. Der anfängliche MVR kann zudem entsprechend der Sicherheit der Ermittlung des MVR verarbeitet werden (zum Beispiel ein Zustand oder ein Niveau, der/das eine Genauigkeit für den anfänglichen MVR darstellt). Beispielsweise kann das Robotersystem den anfänglichen MVR als einen sicheren MVR erkennen (zum Beispiel eine wahrscheinlich genaue Instanz des verifizierten MVR), wenn der anfängliche MVR drei oder mehr exponierte Ecken enthält und/oder unter Verwendung von drei oder mehr exponierten Ecken abgeleitet ist. Andernfalls (zum Beispiel, wenn der anfängliche MVR zwei oder weniger exponierte Ecken enthält und/oder unter Verwendung von zwei oder weniger exponierten Ecken abgeleitet ist) kann das Robotersystem den anfänglichen MVR als einen unsicheren MVR erkennen (zum Beispiel eine weniger wahrscheinlich genaue Instanz des verifizierten MVR).
-
Das Robotersystem kann den verifizierten MVR verwenden, um das unerkannte Objekt zu registrieren, wie etwa durch Speichern des verifizierten MVR und/oder anderer Verarbeitungsergebnisse, die unter Verwendung des verifizierten MVR abgeleitet wurden. Beispielsweise kann das Robotersystem die sicheren MVR verwenden, um mit dem Registrieren der jeweiligen unerkannten Objekte zu beginnen. Das Robotersystem kann zudem die sicheren MVR-Objekte manipulieren (beispielsweise durch Greifen und Übertragen zum Durchführen von Aufgaben) und dadurch die Wahrscheinlichkeit erhöhen, dass zusätzliche Ecken von Objekten exponiert werden, die in der Startposition verbleiben. Das Robotersystem kann die Erkennung und Analyse nach dem Übertragen der Objekte wiederholen, um vorher unsichere MVR als sichere MVR auf Grundlage der neu exponierten Ecken besser erkennen zu können.
-
Dementsprechend bieten die in der vorliegenden Schrift beschriebenen Ausführungsformen eine höhere Wahrscheinlichkeit für das genaue Erzeugen der MVR für die unerkannten Objekte. Die höhere Genauigkeit kann zu weniger Fehlern führen, wie etwa fallengelassene Pakete und/oder Kollisionen, die sich aus ungenauen Daten zu dem übertragenen Objekt ergeben. Zudem kann die höhere Genauigkeit in dem MVR zu genauen Registrierungsdaten führen, was zu einer höheren Effizienz durch positives Erkennen der nachfolgenden Verarbeitung derselben Art von Objekt führen kann. Daneben können die in der vorliegenden Schrift beschrieben Ausführungsformen verwendet werden, um Stammdaten (zum Beispiel eine Sammlung der Registrierungsdaten) ohne jedwede ursprüngliche Daten autonom zu initiieren und auszufüllen. Anders ausgedrückt, kann das Robotersystem die Objekte autonom registrieren, ohne jedwede vorhandene Registrierungsdaten und ohne Eingreifen/Eingaben eines menschlichen Bedieners.
-
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 beziehungsweise 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 (zum Beispiel 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 arbeiten kann. Das Robotersystem 100 kann eine oder mehrere Einheiten (zum Beispiel Roboter) umfassen und/oder mit diesen kommunizieren, die konfiguriert sind, eine oder mehrere Aufgaben auszuführen. Aspekte des Packmechanismus 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 (zum Beispiel einen Palettierungsroboter und/oder einen Stückaufnahmeroboter), eine Transporteinheit 106, eine Ladeeinheit 108 oder eine Kombination davon in einem Lager oder einem Verteil-Nersandzentrum 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 einer Zielposition (zum Beispiel 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 (zum Beispiel Platzierungspositionen/- 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, um eine Sequenz von Handlungen (zum Beispiel Betreiben einer oder mehrerer Komponenten darin) entsprechend einem oder mehreren der abgeleiteten Pläne auszuführen, um eine Aufgabe auszuführen.
-
In einigen Ausführungsformen kann die Aufgabe das Steuern (zum Beispiel das Bewegen und/oder Neuausrichten) eines Zielobjektes 112 (zum Beispiel eines von den Paketen, Kisten, Behältern, Körben, Paletten usw., die der auszuführenden Aufgabe entsprechen) von einer Startposition 114 in eine Aufgabenposition 116 umfassen. Beispielsweise kann die Entladeeinheit 102 (zum Beispiel ein Containerentladeroboter) konfiguriert sein, das Zielobjekt 112 von einer Position auf einem Träger (zum Beispiel einem Lastkraftwagen) zu einer Position auf einem Förderband zu übertragen. Außerdem kann die Übertragungseinheit 104 konfiguriert sein, das Zielobjekt 112 von einer Position (zum Beispiel dem Förderband, einer Palette oder einer Tonne) zu einer anderen Position (zum Beispiel einer Palette, einer Tonne usw.) zu übertragen. In einem anderen Beispiel kann die Übertragungseinheit 104 (zum Beispiel ein Palettierungsroboter) konfiguriert sein, das Zielobjekt 112 von einer Startposition (zum Beispiel 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 (zum Beispiel durch Bewegen der Palette, die das Zielobjekt 112 trägt) von der Übertragungseinheit 104 zu einer Lagerposition (zum Beispiel einer Position auf den Regalen) übertragen. Einzelheiten bezüglich der Aufgabe und der assoziierten Handlungen 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 Depalettierungseinheit für das Übertragen der Objekte von Korbwagen oder Paletten auf Förderbänder 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 mehreren Eigenschaften davon, eine Stückaufnahmeeinheit für das unterschiedliche Steuern (zum Beispiel 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 (zum Beispiel Robotersteuerarme) umfassen, die zur Bewegung an Gelenken verbunden sind (zum Beispiel Rotations- und/oder Translationsverschiebungen). Die strukturellen Elemente und die Gelenke können eine kinetische Kette bilden, die konfiguriert ist, um einen Endeffektor (zum Beispiel den Greifer) zu steuern, der konfiguriert ist, um eine oder mehrere Aufgaben (zum Beispiel 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 (zum Beispiel 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 (zum Beispiel 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, um 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 (zum Beispiel einen Zustand, eine Bedingung und/oder eine Position 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 (zum Beispiel visuelle und/oder Infrarotkameras, zweidimensionale (2D) und/oder dreidimensionale (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 (zum Beispiel 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, die Startposition 114, die Aufgabenposition 116, eine Stellung des Zielobjekts 112, ein Konfidenzmaß bezüglich der Startposition 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 (zum Beispiel einer Aufnahmeposition, wie etwa innerhalb des Lastkraftwagens oder auf dem Förderband) erfassen und analysieren, um das Zielobjekt 112 und die Startposition 114 davon zu erkennen. Gleichermaßen kann das Robotersystem 100 ein Bild eines anderen festgelegten Bereichs (zum Beispiel einer Ablageposition zum Platzieren von Objekten auf dem Förderband, einer Position zum Platzieren von Objekten innerhalb des Containers oder einer Position auf der Palette zum Stapeln) erfassen und analysieren, um die Aufgabenposition 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 (zum Beispiel Ablagebereichs) zu erzeugen, umfassen. Auf Grundlage der erfassten Bilder, wie nachstehend beschrieben, kann das Robotersystem 100 die Startposition 114, die Aufgabenposition 116, die assoziierten Stellungen, einen Pack-/Platzierungsplan, eine Übertragungs-/Packsequenz und/oder andere Verarbeitungsergebnisse ermitteln.
-
In einigen Ausführungsformen können zu den Sensoren beispielsweise Positionssensoren (zum Beispiel Positionscodierer, Potentiometer usw.) gehören, die konfiguriert sind, um Positionen von strukturellen Elementen (zum Beispiel den Roboterarmen und/oder den Endeffektoren) und/oder entsprechenden Gelenken des Robotersystems 100 zu erkennen. Das Robotersystem 100 kann die Positionssensoren verwenden, um Positionen und/oder Ausrichtungen der strukturellen Elemente und/oder der Gelenke während der Ausführung der Aufgabe zu verfolgen.
-
Übertragung und Registrierung von Objekten mit einem zielortbasierten Sensor
-
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 (zum Beispiel eine Instanz der Übertragungseinheit 104 aus 1), zu dem ein Endeffektor 204 (zum Beispiel ein Greifer) gehören kann. Der Roboterarm 202 kann konfiguriert sein, um das Zielobjekt 112 zwischen der Startposition 114 aus 1 und der Aufgabenposition 116 aus 1 zu übertragen. Wie in 2 veranschaulicht, kann die Startposition 114 eine Palette 208 mit einem Zielstapel 210 (zum Beispiel einer Gruppierung von Objekten) darauf aufweisen. Die Aufgabenposition 116 für den Roboterarm 202 kann eine Absetzposition (zum Beispiel ein Ausgangspunkt) auf einem Förderband 206 sein (zum Beispiel eine Instanz der Transporteinheit 106 aus 1). Beispielsweise kann der Roboterarm 202 konfiguriert sein, um die Objekte von dem Zielstapel 210 aufzunehmen und diese auf das Förderband 206 zu legen, damit ein Transport zu einem anderen Ziel/einer anderen Aufgabe erfolgen kann.
-
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 die Startposition 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 die Aufgabenposition 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 einem bekannten Standort über und in Richtung der Startposition 114 befinden. Der erste Bildgebungssensor 212 kann Bildgebungsdaten (zum Beispiel 3D-Punktwolken und/oder visuelle oder 2D-Bilder) erzeugen, die einer oder mehreren Draufsichten auf die Startposition 114 entsprechen, wie etwa eine Draufsicht auf den Zielstapel 210. Wie nachstehend näher beschrieben, kann das Robotersystem 100 die Bildgebungsdaten von dem ersten Bildgebungssensor 212 verwenden, um einen geeigneten Mindestbereich (MVR) für unerkannte (zum Beispiel nicht registrierte) Objekte in dem Zielstapel 210 abzuleiten. Das Robotersystem 100 kann den MVR verwenden, um die unerkannten Objekte zu greifen (beispielsweise über den Endeffektor 204) und zu manipulieren (beispielsweise über den Roboterarm 202), wie etwa beim Bewegen der unerkannten Objekte von der Startposition 114 in die Aufgabenposition 116. Zudem können zu dem zweiten Bildgebungssensor 214 ein/e oder mehrere Kameras und/oder Tiefensensoren gehören, die an einem oder mehreren bekannten Standorten über/seitlich neben und in Richtung der Aufgabenposition 116 oder einem assoziierten Raum angeordnet sind. Dementsprechend kann der zweite Bildgebungssensor 214 Bildgebungsdaten erzeugen, die einer oder mehreren Drauf- und/oder Seitenansichten des Zielobjektes 112 bei oder innerhalb eines Schwellenabstands von der Aufgabenposition 116 entsprechen.
-
Objekterkennung
-
3A ist eine Veranschaulichung eines beispielhaften Objektstapels (zum Beispiel der Zielstapel 210 aus 2), der durch das Robotersystem 100 aus 1 verarbeitet wird; 3B ist eine Veranschaulichung einer Oberseite des beispielhaften Stapels (zum Beispiel eine eigentliche Draufsicht 310 auf den Zielstapel 210); und 3C ist eine Veranschaulichung von Sensordaten (zum Beispiel Draufsichtdaten 320), die der Oberseite entsprechen, allesamt gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. Unter Bezugnahme auf die 3A, 3B und 3C gemeinsam, kann das Robotersystem 100 konfiguriert sein, um die Objekte in dem Zielstapel 210 an eine andere Position zu übertragen, wie etwa die Aufgabenposition 116 aus 1 (zum Beispiel das Förderband 206 aus 2), wie vorstehend beschrieben. Zum Übertragen der Objekte kann das Robotersystem 100 Bilddaten (zum Beispiel die Draufsichtdaten 320) von dem ersten Bildgebungssensor 212 aus 2 verwenden, der über dem Zielstapel 210 angeordnet ist. Beispielsweise können zu den Draufsichtdaten 320 ein oder mehrere visuelle Bilder und/oder eine oder mehrere Tiefenkarten gehören, die die eigentliche Draufsicht 310 zeigen oder darstellen. Zudem kann das Robotersystem 100 die Draufsichtdaten 320 auswerten, um Kanten zu erkennen, die Objektgrenzen entsprechen können. Beispielsweise kann das Robotersystem 100 Kanten und/oder fortlaufende Oberflächen, die in den Bilddaten dargestellt sind, auf Grundlage der Differenzen hinsichtlich der Tiefenmessungen und/oder Bildeigenschaften erkennen (zum Beispiel andere Farben, lineare Muster, Schatten, Unterschiede hinsichtlich der Übersichtlichkeit usw.). Das Robotersystem 100 kann exponierte Kanten 322 erkennen (zum Beispiel Kanten von Objektoberseiten, die nicht horizontal an ein anderes Objekt/an eine andere Oberfläche mit im Wesentlichen derselben Höhe angrenzen), wie etwa auf Grundlage von Differenzen in den Tiefenmessungen.
-
Der Zielstapel 210 kann Objekte enthalten, die in den Stammdaten registriert sind, die Registrierungseinträge für erwartete oder bereits verarbeitete Objekte und/oder unerwartete Objekte umfassen, die nicht in den Stammdaten registriert sind. Somit kann das Robotersystem 100 die Bilddaten von Objektoberflächen 316 verwenden, um die Objekte zu erkennen oder zu identifizieren, die sich in dem Zielstapel 210 befinden. In einigen Ausführungsformen kann das Robotersystem 100 die Bilddaten oder einen oder mehrere Teile darin mit den Stammdaten abgleichen, um die Objekte in dem Zielstapel 210 zu erkennen. Beispielsweise kann das Robotersystem 100 die bekannten Objekte (zum Beispiel erkannte Objekte 312) in dem Zielstapel 210 erkennen, wenn ein Teil der Draufsichtdaten 320 mit einem oder mehreren Bildern der Objektoberflächen 316 in den Registrierungsdaten übereinstimmt. Die restlichen Teile der eigentlichen Draufsicht 310 (zum Beispiel Teile, die nicht mit den Registrierungsdaten übereinstimmen) können unerkannten Objekten 314 entsprechen. Die Kanten der unerkannten Objekte 314 sind durch gestrichelte Linien in 3C dargestellt.
-
Auf Grundlage von dem Abgleichen der Bilddaten kann das Robotersystem 100 die erkannten Objekte 312 in den jeweiligen Bilddaten finden, die weiter in echte Positionen in der realen Welt für den Zielstapel 210 übersetzt werden können (beispielsweise durch eine vorkalibrierte Tabelle und/oder Gleichungen, die Pixelpositionen auf einem Koordinatensystem abbilden). Zudem kann das Robotersystem 100 Positionen von nicht exponierten Kanten der erkannten Objekte 312 auf Grundlage des Abgleichs schätzen. Beispielsweise kann das Robotersystem 100 Abmessungen der erkannten Objekte 312 aus den Stammdaten abrufen. Das Robotersystem 100 kann Teile der Bilddaten messen, die durch die bekannten Abmessungen von den exponierten Kanten 322 der erkannten Objekte 312 getrennt sind. Entsprechend der Abbildung kann das Robotersystem 100 eine oder mehrere auf der Registrierung basierende Kanten 324 für die erkannten Objekte 312 ermitteln und/oder gleichermaßen die auf der Registrierung basierenden Kanten 324 auf echte Positionen in der realen Welt abbilden, ähnlich wie vorstehend beschrieben.
-
In einigen Ausführungsformen kann das Robotersystem 100 exponierte Außenecken 326 des Zielstapels 210 erkennen, wie diese in den Bilddaten (zum Beispiel die Punktwolkendaten) dargestellt sind. Beispielsweise kann das Robotersystem 100 die exponierten Außenecken 326 auf Grundlage des Erkennens von Schnittpunkten/Kreuzungen zwischen einem Satz aus zwei oder mehreren der exponierten Kanten 322 (zum Beispiel Kanten, die in 3D-Bilddaten erkannt wurden, auch bezeichnet als 3D-Kanten) mit verschiedenen Ausrichtungen erkennen (zum Beispiel in verschiedenen Winkeln verlaufend). In einer oder mehreren Ausführungsformen kann das Robotersystem 100 die exponierten Außenecken 326 erkennen, wenn die exponierten Kanten 322 einen Winkel bilden, der in einem vorbestimmten Bereich (auch bezeichnet als ein Winkelbereich) liegt, wie etwa für einen Schwelleneckwinkel von mehr als und/oder weniger als 90°. Wie nachstehend näher beschrieben, kann das Robotersystem 100 die exponierten Außenecken 326 und die jeweiligen exponierten Kanten 322 verwenden, um die unerkannten Objekte 314 zu verarbeiten und/oder zu manipulieren.
-
Verarbeiten von unerkannten Objekten
-
In einigen Ausführungsformen kann das Robotersystem 100 aus 1 die Objekte entsprechend dem Erkennungsstatus und/oder den relativen Positionen der Objekte in dem Zielstapel 210 aus 2 verarbeiten (zum Beispiel erkennen und/oder übertragen). Beispielsweise kann das Robotersystem 100 die erkannten Objekte zunächst aufnehmen und übertragen und anschließend einen weiteren Satz Bilddaten von den Sensoren erzeugen (zum Beispiel von dem ersten Bildgebungssensor 212 aus 2). 4A ist eine Veranschaulichung von Sensordaten 401, die einer Oberseite entsprechen, im Anschluss an einen anfänglichen Satz Vorgänge (zum Beispiel Aufnehmen und Übertragen der erkannten Objekte 312), gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. Die schattierten Flächen in 4A entsprechen Veränderungen der Tiefenmaße im Anschluss an das Entfernen der erkannten Objekte 312, die in den 3B und 3C gezeigt sind.
-
Wenn das Robotersystem 100 keine der erkannten Objekte 312 in den Bilddaten (zum Beispiel die 2D-Bilddaten und/oder die 3D-Punktwolke) erkennt, kann das Robotersystem 100 die Bilddaten verarbeiten, um beliebige exponierte Ecken 326 und/oder die exponierten Kanten 322 zu erkennen, um die unerkannten Objekte 314 aus 3A zu lokalisieren. Beispielsweise kann das Robotersystem 100 die Sensordaten 401 (zum Beispiel die 3D-Punktwolke) ähnlich der vorstehenden Beschreibung verarbeiten, um die exponierten Außenecken 326 und/oder die exponierten Kanten 322 zu erkennen. Dementsprechend kann das Robotersystem 100 zudem beliebige Ecken/Kanten erkennen und/oder finden, die nach dem Entfernen der erkannten Objekte 312 exponiert sind. In einigen Ausführungsformen kann das Robotersystem 100 zudem exponierte Innenecken 402 als Schnittpunkte/Kreuzungen zwischen zwei oder mehreren der exponierten Kanten 322 entsprechend einem jeweiligen Schwellenwert erkennen. Beispielsweise kann das Robotersystem 100 die exponierten Innenecken 402 als Schnittstellen zwischen zwei oder mehreren der exponierten Kanten 322 erkennen, die einen Winkel von 180° in Relation zu den jeweiligen fortlaufenden Oberflächen überschreiten. In einigen Ausführungsformen kann das Robotersystem 100 die exponierten Innenecken 402 erkennen, wenn die exponierten Kanten 322 einen Winkel bilden, der in einem Schwellenwinkelbereich von größer und/oder kleiner als 270° liegt.
-
In einigen Ausführungsformen, wenn keines der erkannten Objekte 312 übrig bleibt, kann das Robotersystem 100 Registrierungsziele 406 in dem Zielstapel 210 (zum Beispiel unter den unerkannten Objekten 314) auf Grundlage der exponierten Ecken und/oder exponierten Kanten erkennen. Beispielsweise kann das Robotersystem 100 die exponierten Ecken/Kanten entsprechend einem Satz Präferenzen und/oder einem Bewertungsmechanismus bewerten. In einigen Ausführungsformen kann das Robotersystem 100 konfiguriert sein, um die exponierten Außenecken 326 auszuwählen, die am nächsten zu dem Roboterarm 202 aus 2 sind. Das Robotersystem 100 kann den jeweiligen Bereich der Sensordaten 401 und das jeweilige unerkannte Objekt 314 auswählen, das mit den ausgewählten exponierten Außenecken 326 assoziiert ist. Anders ausgedrückt, kann nach dem Verarbeiten der erkannten Objekte 312 das Robotersystem 100 die unerkannten Objekte 314 verarbeiten, die die exponierten Außenecken 326 des Zielstapels 210 bilden/ausmachen. Auf Grundlage von dem Auswerten der jeweiligen Abschnitte der Sensordaten 401 (beispielsweise über das Ableiten des MVR) kann das Robotersystem 100 die unerkannten Objekte 314 greifen, das gegriffene Objekt anheben und/oder horizontal übertragen und/oder das gegriffene Objekt zum Zwecke der Registrierung abbilden. Daneben kann das Robotersystem 100 nach dem Abbilden des gegriffenen Objektes das gegriffene Objekt zu einem Ziel bewegen (zum Beispiel das Förderband 206 aus 2).
-
Zum weiteren Beschreiben der Auswertung der Sensordaten ist 4B eine detaillierte Veranschaulichung eines Abschnittes 4B der Sensordaten 401 aus 4A gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. Das Robotersystem 100 kann die Sensordaten 401 analysieren, um einen MVR 412 abzuleiten. Der MVR 412 kann eine Fläche mit einer Mindestgröße darstellen, die verwendet wird, um Objekte zu berühren, zu greifen und/oder anzuheben. Zudem kann der MVR 412 eine Schätzung einer Oberfläche und/oder peripherer Grenzen eines einzelnen unerkannten Objektes darstellen. Beispielsweise kann der MVR 412 mit einer Grundfläche des Endeffektors 204 oder einer größeren Fläche mit zusätzlichen/Pufferbereichen assoziiert sein, die die Grundfläche umgeben. Zudem kann der MVR 412 beispielsweise mit geschätzten Positionen von horizontalen Grenzen/Kanten eines unerkannten Objektes assoziiert sein (zum Beispiel das ausgewählte Registrierungsziel). In einigen Ausführungsformen kann der MVR 412 einer möglichen Mindest- und/oder Maximalgröße entsprechen, die physischen Abmessungen (zum Beispiel Längen, Breiten, Höhen, Durchmessern, Umfängen usw.) für die kleinst- beziehungsweise größtmögliche Instanz der in dem Zielstapel 210 erwarteten Objekte entsprechen kann. Anders ausgedrückt, kann das Robotersystem 100 ermitteln, dass keines der Objekte in dem Zielstapel 210 Abmessungen aufweisen wird, die unter der möglichen Mindestgröße und über der möglichen Maximalgröße liegen. Die möglichen Mindest- und Maximalgrößen können vorbestimmte Werte sein (das heißt Werte, die vor dem Verarbeiten des Zielstapels 210 bereitgestellt wurden oder bekannt waren). Einzelheiten bezüglich der Ableitung der MVR 412 sind nachstehend beschrieben.
-
Das Robotersystem 100 kann den MVR 412 verwenden, um eine Greifposition 420 zu ermitteln. Die Greifposition 420 kann einer Fläche an dem Objekt/Stapel entsprechen, die sich während der anfänglichen Manipulation direkt unter dem Endeffektor 204 befindet und/oder diesen berührt. Anders ausgedrückt, kann das Robotersystem 100 den Greifer über der Greifposition 420 anordnen, um das jeweilige Objekt für anschließende Manipulationen zu greifen (zum Beispiel Anheben, horizontale Übertragung und/oder Datenerfassungsprozesse zur Registrierung). In einigen Ausführungsformen kann das Robotersystem 100 die Greifposition 420 aus der Reihe von potentiellen Greifpositionen auswählen. Beispielsweise kann das Robotersystem 100 aus der Reihe entsprechend einer relativen Ausrichtung des Arms auswählen (zum Beispiel unter Bevorzugung des Roboterarms, der über die exponierten Kanten 322 verläuft und nicht mit anderen Teilen überlappt).
-
In einigen Ausführungsformen kann das Robotersystem 100 den MVR 412 auf Grundlage von geschätzten Kanten 424 ableiten. Beispielsweise kann das Robotersystem 100 eine Instanz der exponierten Außenecke 326 (zum Beispiel eine 3D-Ecke) für eine obere Schicht des Zielstapels 210 auswählen oder erkennen. Das Robotersystem 100 kann sich von der ausgewählten exponierten Außenecke 326 entlang der assoziierten exponierten Kanten 322 weg bewegen (zum Beispiel 3D zusammenlaufend bei/Bildung der ausgewählten Ecke). Beim Bewegen entlang der Kanten kann das Robotersystem 100 die geschätzten Kanten 424 auf Grundlage von Unterschieden hinsichtlich der 3D-Tiefenmessungen und/oder 2D-Bildeigenschaften (zum Beispiel Helligkeit, Farbe usw.) in den Sensordaten 401 erkennen. Das Robotersystem 100 kann Kanten oder Linien in 2D/3D-Bilddaten erkennen, die sich mit einer gekreuzten Kante schneiden und/oder innerhalb eines Schwellentrennabstandes von dieser befinden. Das Robotersystem 100 kann die erkannten Kanten im Rahmen der Ermittlung der geschätzten Kanten 424 testen. Das Robotersystem 100 kann die geschätzten Kanten 424 auf Grundlage eines Vergleichs der Ausrichtung der erkannten Kanten mit der Ausrichtung der exponierten Kanten 322 testen/verifizieren. Beispielsweise kann das Robotersystem 100 eine erkannte Kante als die geschätzte Kante 424 verifizieren, wenn diese parallel zu einer der exponierten Kanten 322 ist. In einigen Ausführungsformen kann das Robotersystem 100 die parallelen Ausrichtungen auf Grundlage der Überprüfung gleicher Abstände zwischen zwei oder mehreren jeweiligen Punkten an dem getesteten Paar Kanten testen (zum Beispiel die erkannte Kante und die nicht gekreuzte Instanz der exponierten Kanten 322). In einigen Ausführungsformen kann das Robotersystem 100 die parallelen Ausrichtungen erkennen, wenn das getestete Paar Kanten und/oder Verlängerungen davon eine gemeinsame Kante in demselben Winkeln schneiden, wie etwa, wenn beide Kanten und/oder Verlängerungen davon die gekreuzte Instanz der exponierten Kanten 322 in einem Winkel zwischen 80°-100° schneiden.
-
Dementsprechend kann das Robotersystem 100 die Greifposition 420 ableiten, die erkannte Linien (zum Beispiel 2D-Kanten und/oder unvollständige Kanten) und/oder die geschätzten Kanten 424 nicht überlappt. Das Robotersystem 100 kann die Greifposition 420 auf Grundlage von dem Ausgleichen eines Verhältnisses zwischen Abständen zwischen Kanten des MVR 412 und den nächsten erkannten Linien und/oder den geschätzten Kanten 424 ableiten. Da das Robotersystem 100 das Objekt bei oder um eine Ecke auf Grundlage des MVR 412 greift, kann das Robotersystem 100 die Greifposition 420 ableiten, die das höchstmögliche Drehmoment entlang einer beliebigen bestimmten Richtung auf Grundlage von dem Ausgleichen des Verhältnisses verringert. Zudem kann das Robotersystem 100 zusätzlich den MVR 412 ableiten oder anpassen, damit dieser mit den geschätzten Kanten 424 zusammenfällt oder bis zu diesen verläuft.
-
Das Robotersystem 100 kann die abgeleitete Greifposition 420 verwenden, um den Roboterarm 202 aus 2 und den Endeffektor 204 zu bewegen. Das Robotersystem 100 kann das Objekt greifen (zum Beispiel das Registrierungsziel 406), das sich an der Ecke des Stapels in der Greifposition 420 befindet. In einigen Ausführungsformen kann das Robotersystem 100 das gegriffene Objekt anheben und/oder horizontal übertragen, um die vorher nicht exponierten Kanten eindeutig unterscheiden zu können. Beispielsweise kann das Robotersystem 100 das Objekt um eine vorbestimmte Höhe, die einem Mindestabstand entspricht, anheben und/oder horizontal übertragen, um die Kanten genau unterscheiden zu können. Zudem kann das Robotersystem 100 das Objekt beispielsweise während dem Überwachen und/oder Auswerten der Änderungen der Höhe und/oder eines Kippens in dem Endeffektor anheben und/oder horizontal übertragen, so dass zusätzliche Kanten, die den exponierten Kanten 322 gegenüberliegen, erkennbar werden. Das Robotersystem 100 kann Daten während und/oder nach dem anfänglichen Anheben abrufen und verarbeiten, um die unerkannten Objekte 314 weiter zu beschreiben.
-
Überblick MVR-Erkennung
-
Die vorliegenden Ausführungsformen können das Erzeugen von genauen geeigneten Mindestbereichen (MVR) eines Objektes betreffen. Eine exponierte Außenecke und exponierte Kanten können durch Prüfen von 2D- und/oder 3D-Bildgebungsdaten erkannt werden (zum Beispiel Punktwolkendaten). Auf Grundlage der erkannten exponierten Außenecke und exponierten Kanten kann ein anfänglicher MVR durch Erkennen von Kanten erzeugt werden, die den exponierten Kanten gegenüberliegen. In einigen Ausführungsformen kann das Robotersystem 100 den MVR auf Grundlage von dem Erkennen von gegenüberliegenden Kanten erzeugen (zum Beispiel die geschätzten Kanten 424 aus 4B), die exponierten Kanten entsprechen (zum Beispiel parallel dazu sind). Der anfängliche MVR kann von der exponierten Außenecke entlang der exponierten Kanten zu den gegenüberliegenden Kanten verlaufen.
-
Nach dem Ermitteln des anfänglichen MVR können potentielle MVR-Bereiche, die von dem anfänglichen MVR zu einem Ende einer Oberfläche oder Schicht (zum Beispiel ein Satz seitlich benachbarter Positionen mit Tiefenmaßen in einem Schwellenbereich zueinander) verlaufen, die durch die Punktwolke definiert ist, erkannt werden. Ein zusammengeführter MVR des Objektes kann den anfänglichen MVR und die potentiellen MVR umfassen. Ein verifizierter MVR kann durch Prüfen/Testen des zusammengeführten MVR erzeugt werden. Der verifizierte MVR kann einen genauen Bereich darstellen, die das unerkannte Objekt umfasst. Auf Grundlage des verifizierten MVR kann das Robotersystem 100, wie in der vorliegenden Schrift beschrieben, das Objekt registrieren und eine Aufgabe im Hinblick auf das Objekt ausführen, wie etwa das Objekt greifen und/oder bewegen.
-
In vielen Fällen kann eine Kante (zum Beispiel eine Außen- oder exponierte Kante) des Objektes erkannt werden. Beispielsweise können Außenkanten von Objekten, die sich entlang der Peripherie des Zielstapels 210 aus 2 (zum Beispiel die exponierten Kanten 322 aus 3C) befinden, fehlen und/oder von jedweden umgebenden Objekten getrennt sein. Dementsprechend können zu dem Bildgebungsergebnis (zum Beispiel die 3D-Punktwolke) abrupte Änderungen der dargestellten Werte (zum Beispiel Höhenmaße und/oder Bildwerte, wie etwa Farben oder Helligkeit) gehören, die die Außenkanten darstellen. In vielen Fällen sind die anderen Kanten unter Umständen jedoch nicht sichtbar oder lassen sich schwer genau definieren (zum Beispiel auf Grundlage von einem Schwellenkonfidenzwert). Beispielsweise können Oberflächengestaltungen/Bilder auf einem Karton dazu führen, dass die Kanten an dem Objekt falsch erkannt werden. Dementsprechend kann es aufgrund der unvollständigen Kanten schwierig sein, Teile in den 2D-/3D-Bildgebungsdaten genau zu trennen.
-
Das Robotersystem 100 kann die exponierten Außenecken 326 und/oder exponierten Kanten 322 eines Objektes durch Prüfen der Bilddaten (zum Beispiel eine Punktwolke und/oder ein 2D-Bild) und Bestimmen einer oder mehrerer Schichten erkennen. Beispielsweise kann das Robotersystem 100 eine obere Schicht von Objekt(en) (zum Beispiel die unerkannten Objekte 314 aus 3B) in dem Zielstapel 210 auf Grundlage des Bildgebungsergebnisses erkennen. In der oberen Schicht kann das Robotersystem 100 ein Objekt und/oder einen Teil einer Oberfläche (zum Beispiel ein Bereich mit Höhenwerten in einem Schwellenkontinuitätsbereich zueinander) für eine MVR-Ableitung auswählen. Das Robotersystem 100 kann schätzen, dass die exponierten Kanten, die die Oberfläche (zum Beispiel eine der Schichten oder einen Teil darin) bilden/definieren, seitlichen/peripheren Grenzen der Oberfläche und/oder des jeweiligen Objektes entsprechen. Ein anfänglicher MVR kann durch Erkennen von gegenüberliegenden Kanten erzeugt werden, die den exponierten Kanten gegenüberliegen, wobei der anfängliche MVR von der exponierten Außenecke (zum Beispiel ein Schnittpunkt, der durch einen Satz der exponierten Kanten und/oder die peripheren Grenzen gebildet wird) entlang der exponierten Kanten zu gegenüberliegenden Kanten verlaufen kann.
-
Das Robotersystem 100 kann zudem den anfänglichen MVR durch Erweitern und/oder Schrumpfen der anfänglichen Schätzung auf Grundlage von Kennzeichnungen (zum Beispiel unvollständige Kanten) in den Bildgebungsdaten verarbeiten (zum Beispiel anpassen). Der angepasste MVR kann überprüft werden, um einen finalen MVR zu ermitteln, die verwendet wird, um die Greifposition 420 zu ermitteln und/oder das unerkannte Objekt zu registrieren.
-
5 veranschaulicht eine Draufsicht auf eine Reihe von palettierten Paketen 500 (zum Beispiel der Zielstapel 210 aus 2) gemäß einigen Ausführungsformen der vorliegenden Technologie. Wie in 5 gezeigt, können zu einem ersten Objekt 510 die Kanten 512a-d gehören. Eine Kante kann eine Grenze des Objektes entsprechend der Ansicht aus einer bestimmten Perspektive darstellen (zum Beispiel eine Draufsicht). In bestimmten Situationen kann mindestens ein Teil der Kanten 512a-d (zum Beispiel Kanten 512c-d) geschlossen sein und an andere benachbarte Objekte/Kanten anstoßen. Im umgekehrten Fall können einige der Kanten (zum Beispiel die Kanten 512a-b) offen sein und den exponierten Kanten 322 aus 3C entsprechen.
-
Der erste Karton 510 kann eine oder mehrere exponierte Außenecken 514 umfassen, die von horizontal benachbarten Objekten getrennt sind oder keine horizontal getrennten Objekte aufweisen. Die exponierten Außenecken 514 können den exponierten Außenecken 326 aus 3 des Stapels entsprechen. Wie nachstehend erörtert, können die Bilddaten (zum Beispiel eine Punktwolke und/oder ein 2D-Bild) überprüft werden, um exponierte Kanten und eine exponierte Außenecke eines Pakets zu erkennen.
-
Punktwolkensegm entierung
-
6 veranschaulicht eine grafische Darstellung 600 einer exponierten Außenecke gemäß einigen Ausführungsformen der vorliegenden Technologie. Wie in 6 gezeigt, kann eine Punktwolke (zum Beispiel die grafische Darstellung 600) verarbeitet werden, um eine exponierte Außenecke 614 zu erkennen (zum Beispiel eine der exponierten Außenecken 326 aus 3). Beispielsweise kann die Punktwolke einer Draufsicht, die durch eine 3D-Kamera erzeugt wurde, des ersten Objektes 510 aus 5 oder eines Teils davon entsprechen. Die Punktwolke kann eine dreidimensionale Punktwolke mit mehreren Schichten umfassen, die für die Tiefe stehen. Jede Schicht und/oder eine Oberfläche kann einem Satz horizontal benachbarter Tiefenwerte entsprechen, die in einem Schwellenkontinuitätsbereich zueinander liegen. Beispielsweise kann der Schwellenkontinuitätsbereich erfordern, dass horizontal benachbarte Positionen Tiefenmaße aufweisen, die in einem Schwellenabstand (zum Beispiel weniger als 1 Zentimeter) zueinander oder in einem Schwellenabstand entsprechend einer Neigung liegen. Zudem kann der Schwellenkontinuitätsbereich einen Boden und/oder eine Neigung relativ zu einer Bezugshöhe definieren (zum Beispiel ein höchster/nächstgelegener Punkt in dem Zielstapel 310). Der Schwellenkontinuitätsbereich kann gleichermaßen Grenzen für 2D-Bildeigenschaften definieren (zum Beispiel Farbe und/oder Helligkeit), um eine Kontinuität über einen Satz horizontal benachbarter Positionen zu erkennen. Eine Tiefe einer Schicht der Punktwolke kann einer Trennung entlang einer Richtung entsprechen, die normal ist zu einer Oberfläche eines jeweiligen Objektes (zum Beispiel vertikale Trennung).
-
Dementsprechend kann die Punktwolke analysiert und verarbeitet werden, um die Schichten zu trennen und/oder offene 3D-Kanten/Ecken zu erkennen. In einigen Ausführungsformen kann das Robotersystem 100 (zum Beispiel ein oder mehrere Prozessoren darin) Schichten auf Grundlage der Gruppierung von Tiefenwerten in der Punktwolke entsprechend einer oder mehreren vorbestimmten Kontinuitätsregeln/- schwelle erkennen. Beispielsweise kann das Robotersystem 100 eine Reihe horizontal benachbarter/verbundener Tiefenwerte gruppieren, wenn die Tiefenwerte in dem Schwellenkontinuitätsbereich zueinander liegen und/oder wenn die Tiefenwerte einer konstanten Neigung folgen, die eine flache und durchgehende Oberfläche darstellt. Das Robotersystem 100 kann exponierte Kanten (zum Beispiel die exponierten Kanten 512a und 512b aus 5) als Grenzen der erkannten Schichten erkennen. Anders ausgedrückt, kann das Robotersystem 100 die exponierten Kanten 512a und 512b als horizontale periphere Positionen der Schicht/Oberfläche erkennen, wenn eine geeignete Änderung der Tiefe auftritt. Im Allgemeinen können die Tiefenmaße für Objekte/Kanten, die eine obere Schicht des Zielstapels 210 bilden, eine geringere Größe (zum Beispiel darstellend einen geringeren Abstand zu der ersten Bildgebungsvorrichtung 312) aufweisen als Objekte/Kanten, die eine niedrigere Schicht unter der oberen Schicht bilden.
-
In einigen Ausführungsformen kann das Robotersystem 100 die exponierten Kanten auf Grundlage von dem Erkennen von visuellen Linien in visuellen 2D-Bildern ermitteln. Beispielsweise können Paletten und/oder Böden einer bekannten Farbe, Helligkeit usw. entsprechen. Dementsprechend kann das Robotersystem 100 Linien erkennen, die an derartige bekannte Muster als exponierte Kanten des/der Objekt(e) angrenzen. Zudem kann das Robotersystem 100 die 2D-Analyse verwenden, um die 3D-Erkennung der exponierten Kanten zu verifizieren.
-
Auf Grundlage der exponierten Kanten kann das Robotersystem 100 offene 3D-Ecken erkennen (zum Beispiel die exponierte Außenecke 514). Beispielsweise kann das Robotersystem 100 Formen/Winkel erkennen, die mit den exponierten Kanten assoziiert sind. Das Robotersystem 100 kann konfiguriert sein, um die exponierte Außenecke 514 als Position in der Punktwolke zu ermitteln, bei der die exponierten Kanten (zum Beispiel Kanten 512a-b) sich schneiden/einen Winkel in einem Schwellenwinkelbereich (zum Beispiel 80° - 100°) bilden.
-
Als ein veranschaulichendes Beispiel kann das Robotersystem 100 die offene 3D-Ecke 614 durch Erkennen eines ersten Bereichs 612 und benachbarter Bereiche 616a-c erkennen. Das Robotersystem 100 kann den ersten Bereich 612 erkennen, wenn eine Reihe benachbarter horizontaler Positionen in dem abgetasteten Bereich der Schicht Tiefenwerte aufweist, die in dem Schwellenkontinuitätsbereich zueinander liegen. Das Robotersystem 100 kann die benachbarten Bereiche 616a-c als andere horizontale Positionen mit Tiefenwerten erkennen, die nicht in dem Schwellenkontinuitätsbereich von den Tiefenwerten in dem ersten Bereich 612 liegen. In einigen Ausführungsformen kann das Robotersystem 100 Kanten des ersten Bereichs 612 und/oder den Beginn der benachbarten Bereiche 616a-c erkennen, wenn sich Tiefenwerte so ändern, dass sie nicht mehr in dem Schwellenkontinuitätsbereich liegen, und/oder wenn die Positionen der Änderungen der Tiefenwerte einer Formvorlage entsprechen (zum Beispiel eine gerade Linie und/oder eine Mindesttrennweite zwischen Objekten). Insbesondere können die benachbarten Bereiche 616a-c die Tiefenwerte aufweisen, die Abstände darstellen, die weiter von dem ersten Bildgebungssensor 212 entfernt sind als die Tiefenwerte für die Oberfläche des Zielstapels 210 (d. h. der erste Bereich 612). Die resultierenden Kanten zwischen dem ersten Bereich 612 und den benachbarten Bereichen 616a und 616c können den exponierten Kanten entsprechen. In einigen Ausführungsformen kann zu dem Erkennen der offenen 3D-Ecke 614 das Verifizieren gehören, dass der erste Bereich 612 einen Quadranten bildet, während die benachbarten Bereiche 616a-c übrigen Quadranten und/oder leeren Räumen entsprechen, wie etwa für Positionen außerhalb des Objektstapels. Ein leerer Raum kann auf einen Raum hindeuten, der mit einer sehr dünn besetzten Punktwolke erkannt wurde, was als Punktwolkenrauschen betrachtet werden kann.
-
Andere 3D-Ecken können unter Verwendung der 3D-Punktwolke ermittelt werden. In einigen Ausführungsformen kann die exponierte Außenecke eine Konturform haben und eine ‚L‘-förmige Ecke kann keine valide Ecke umfassen. Dementsprechend kann das Robotersystem 100 Kantensegmente erkennen, die eine oder mehrere Anforderungen erfüllen (zum Beispiel eine minimale gerade durchgehende Länge), [sowie auf Grundlage von dem Verlängern derartiger Kantensegmente um eine vorbestimmte Länge][A1]. Wenn die verlängerten Kantensegmente andere Segmente oder verlängerte Segmente in einem Winkel schneiden, kann das Robotersystem 100 einen Punkt auf der Konturform (zum Beispiel ein Mittelpunkt des Bogens zwischen den sich schneidenden Kantensegmenten) als die exponierte Außenecke erkennen.
-
In einigen Ausführungsformen können die 3D-Ecken in eine Rangfolge gebracht sein. Beispielsweise können 3D-Ecken, die von einem leeren Raum umgeben sind (zum Beispiel für Objekte, die sich an der Ecke einer oberen Schicht in dem Stapel befinden), einen höheren Rang aufweisen als andere Objekte. Die offene 3D-Ecke 614 kann auf Grundlage von anderen Faktoren in eine Rangfolge gebracht werden, wie etwa eine Größe des ersten Bereichs 612, die Position der offenen 3D-Ecke 614 in Relation zu einer Form des ersten Bereichs 612, eine Differenz der Tiefenwerte zwischen umgebenden Bereichen (zum Beispiel zwischen dem ersten Bereich 612 und den benachbarten Bereichen 616a und 616c) und/oder ein horizontaler Abstand zwischen dem ersten Bereich 612 und einem anderen Bereich (zum Beispiel eine andere Oberfläche/ein anderes Objekt) mit Tiefenwerten in dem Schwellenkontinuitätsbereich von denjenigen in dem ersten Bereich 616a.
-
In einigen Ausführungsformen kann das Robotersystem 100 eine unvollständige Kante erkennen. Die unvollständigen Kanten können Kanten sein, die im Rahmen der 2D- und/oder 3D-Analyse erkannt wurden und bei denen es sich um tatsächliche Kanten handeln kann oder auch nicht. Einige der unvollständigen Kanten können tatsächlichen Kanten von Kartons/Lücken zwischen Kartons entsprechen, die aufgrund der Rauschüberlagerung von anderen Objekten und/oder der Fähigkeit/Position einer Bildgebungsvorrichtung (zum Beispiel Kamera) unter Umständen nicht zu erkennen sind. Die unvollständigen Kanten können zudem visuelle Muster oder Kennzeichnungen an den Objektoberflächen sein, die im Rahmen der 2D-Bildanalyse erkannt wurden, wie etwa Oberflächenzeichnungen oder Kennzeichnungen oder eine Teilung/Naht zwischen Klappen eines Kartons, die zusammengeklebt sind. Im umgekehrten Fall weisen Kartons ohne Muster unter Umständen keine 2D-Linien auf, die als die unvollständigen Kanten erkannt werden können. Das Robotersystem 100 kann die unvollständigen Kanten an Positionen in den Sensorausgaben erkennen, die Rauschvarianzen überschreiten, Regeln/Schwellenwerte für das Erkennen von Kanten jedoch nicht vollständig erfüllen. In einigen Ausführungsformen kann das Robotersystem 100 die exponierten Außenkanten (zum Beispiel periphere Kanten des ersten Bereichs 612) unter Verwendung der 3D-Sensorausgaben und die unvollständigen Kanten unter Verwendung der 2D-Sensorausgaben erkennen. Zudem kann das Robotersystem 100 die unvollständigen Kanten als 2D- oder 3D-Kanten erkennen, die andere Kanten nicht in einem Winkel schneiden, der in dem Winkelschwellenbereich liegt. Einzelheiten hinsichtlich der unvollständigen Kanten sind nachstehend näher beschrieben.
-
Erzeugen eines anfänglichen MVR
-
7 veranschaulicht eine Draufsicht auf eine Reihe von palettierten Paketen gemäß einigen Ausführungsformen der vorliegenden Technologie. 7 veranschaulicht zudem einen anfänglichen MVR 710 in Relation zu der Draufsicht (zum Beispiel 3D- und/oder 2D-Sensorbild des Zielstapels 210 aus 2). Der anfängliche MVR 710 kann eine anfängliche Schätzung der Grenzen eines MVR und/oder Kanten eines jeweiligen Objektes darstellen. Anders ausgedrückt, kann der anfängliche MVR 710 eine anfängliche Schätzung einer Oberfläche für ein unerkanntes Objekt darstellen. Das Robotersystem 100 kann die offene 3D-Ecke und/oder exponierten Kanten verwenden, um den anfänglichen MVR 710 abzuleiten. Zu dem Ableiten des anfänglichen MVR 710 kann das Prüfen jeder der Schichten gehören, die anhand der Punktwolke erkannt wurden, um Objekte, Kanten, Ecken usw. zu erkennen. Beispielsweise kann das Robotersystem 100 den anfänglichen MVR 710 als einen Bereich in den Punktwolkendaten (zum Beispiel 3D-Sensorausgabe) mit Tiefenwerten in dem Schwellenkontinuitätsbereich [zueinander ableiten][A2](zum Beispiel der erste Bereich 612 aus 6). Anders ausgedrückt, kann das Robotersystem 100 den anfänglichen MVR als die Gruppierung von horizontal benachbarten Positionen ableiten, die ausreichend identische oder linear gemusterte Tiefenwerte aufweisen, die einer durchgehenden Oberfläche entsprechen. Dementsprechend kann das Robotersystem 100 den anfänglichen MVR als eine Fläche ableiten, die mindestens teilweise durch die exponierten Außenecken 514 (zum Beispiel eine erste Ecke 714a und/oder eine zweite Ecke 714b) und jeweiligen exponierten Kanten begrenzt ist. Beispielsweise kann der anfängliche MVR 710 von der ersten Ecke 714a entlang der exponierten Kanten 722 und 726 zu den gegenüberliegenden Kanten 724 und 728 verlaufen. In einigen Ausführungsformen kann das Robotersystem 100 den anfänglichen MVR 710 beginnend an einer offenen 3D-Ecke (zum Beispiel die erste Ecke 714a) und den exponierten Kanten folgend (zum Beispiel weg von der offenen 3D-Ecke) ableiten. Der anfängliche MVR 710 kann verlängert werden, bis die verfolgten exponierten Kanten geschnitten werden oder anderen exponierten Kanten gegenüberstehen (zum Beispiel Kanten, die der nicht nachverfolgten Kante gegenüberliegen und/oder mit dieser parallel sind, wie etwa die gegenüberliegenden Kanten 724 und/oder 728).
-
In einigen Instanzen kann der anfängliche MVR 710 aus verschiedenen Gründen (zum Beispiel Raumaufteilung zwischen Objekten, Granularität des Sensors usw.) Oberflächen von mehreren Objekten entsprechen. Dementsprechend kann das Robotersystem 100 eine oder mehrere Abmessungen des abgeleiteten anfänglichen MVR 710 überprüfen. Das Robotersystem 100 kann verifizieren, dass die eine oder die mehreren Abmessungen des MVR 710 größer sind als eine mögliche Mindestgröße und kleiner sind als eine mögliche Maximalgröße. Die Schwellenabmessung kann eine kleinste und/oder eine größte Abmessung für Objekte darstellen, die durch das Robotersystem 100 empfangen werden können/erwartet werden. Zudem kann die Schwellenabmessung eine horizontale Grundfläche des Endeffektors 204 aus 2 darstellen, wie etwa zum Darstellung einer Mindestgröße für den Greif-/Kontaktbereich.
-
Wenn eine oder mehrere Abmessungen des anfänglichen MVR 710 nicht mehr in den Schwellenwerten liegen (beispielsweise durch Überschreiten der maximalen Abmessung oder Unterschreiten der Mindestabmessung), kann das Robotersystem 100 den anfänglichen MVR 710 anpassen, wie etwa durch Durchführen einer weiteren Segmentierung des anfänglichen MVR 710 (zum Beispiel eine oberste Schicht) entsprechend der unvollständigen Kanten 712 (zum Beispiel 2D-/3D-Kanten, die an einer oder mehreren Seiten nicht mit einer anderen Kante übereinstimmen oder sich mit dieser schneiden). Anders ausgedrückt, kann das Robotersystem 100 den anfänglichen MVR entsprechend der unvollständigen Kanten 712 anpassen/verkleinern und ein jeweiliges Ergebnis testen. In einigen Ausführungsformen kann das Robotersystem 100 die unvollständige Kante 712 als 2D-Kanten und/oder 3D-Kanten ermitteln, die eine exponierte Kante an einem oder mehreren Enden nicht schneiden. Zudem kann das Robotersystem 100 die unvollständige Kante 712 als 2D- und/oder 3D-Kanten ermitteln, die parallel zu einer der exponierten Kanten sind. In einigen Ausführungsformen kann das Robotersystem 100 Konfidenzwerte berechnen, die mit den unvollständigen Kanten 712 assoziiert sind. Die Konfidenzwerte können eine Wahrscheinlichkeit darstellen, dass die unvollständigen Kanten 712 Oberflächenkanten und/oder Trennungen zwischen benachbarten Objekten entsprechen. Als ein Beispiel kann das Robotersystem 100 die Konfidenzwerte auf Grundlage einer Gesamtlänge der unvollständigen Kanten 712, einer Form der unvollständigen Kanten 712 und/oder einer Differenz zwischen den unvollständigen Kanten 712 und Teilen berechnen, die die unvollständigen Kanten 712 umgeben (zum Beispiel nach Tiefe, Farbe, Helligkeit usw.).
-
Wie nachstehend näher beschrieben, kann das Robotersystem 100 einen verifizierten MVR 720 auf Grundlage von dem Verringern des anfänglichen MVR 710 entsprechend der oder bis auf die unvollständigen Kanten 712 ableiten. Anders ausgedrückt, kann das Robotersystem 100 einen verkleinerten möglichen MVR als eine Fläche in dem anfänglichen MVR 710 erkennen, die durch eine oder mehrere der unvollständigen Kanten 712 begrenzt ist, anstelle von gegenüberliegenden parallelen Kanten 724 und/oder 728. Das Robotersystem 100 kann den anfänglichen MVR 710 durch Nachverfolgen einer gegenüberliegenden parallelen Kante (zum Beispiel gegenüberliegende parallele Kanten 724, 728, bei denen es sich um 2D- und/oder 3D-Kanten handeln kann, wie die geschätzten Kanten 424 aus 4B) in Richtung einer jeweiligen exponierten Kante verkleinern (zum Beispiel die jeweiligen exponierten Kanten 722 beziehungsweise 726), bis die unvollständige Kante 712 erreicht ist. Anders ausgedrückt, kann das Robotersystem 100 die zweite Ecke 714b, die mit der anfänglichen MVR 710 assoziiert ist, erkennen und sich anschließend von der zweiten Ecke 714 weg entlang der assoziierten Kanten bewegen (zum Beispiel die gegenüberliegenden parallelen Kanten 724 und/oder 728), während es nach anderen Kanten sucht (zum Beispiel schneidende und/oder parallele Kanten, wie etwa die unvollständigen Kanten 712). Das Robotersystem 100 kann eine Ausrichtung der erkannten Kanten entsprechend der vorstehenden Beschreibung testen. Beispielsweise kann das Robotersystem 100 die erkannten Kanten erkennen, wenn ein Winkel zwischen der gekreuzten Kante und der erkannten Kante in einem Schwellenwinkelbereich liegt (zum Beispiel 80° bis 100° und/oder andere Bereiche, die einem rechten Winkel entsprechen). Zudem kann das Robotersystem 100 prüfen, dass die erkannten Kanten parallel zu jeweiligen exponierten Kanten sind, wie etwa, wenn eine Reihe von Abständen zwischen mehreren Reihen jeweiliger Punkte entlang der erkannten und der nicht gekreuzten exponierten Kante in einem Schwellenbereich zueinander liegen. Dies kann iterativ oder inkrementell erfolgen. Wenn der MVR nicht weiter verkleinert werden kann, kann das Robotersystem 100 die resultierende Fläche als den verifizierten MVR-Bereich 720 annehmen.
-
Das Robotersystem 100 kann den verkleinerten möglichen MVR auf Grundlage eines Vergleichs der verkleinerten Abmessung mit den Schwellenwerten entsprechend der vorstehenden Beschreibung verifizieren. Beispielsweise kann das Robotersystem 100 den verkleinerten möglichen MVR als den verifizierten MVR 720 ableiten, wenn die verkleinerte Fläche, die durch die unvollständige Kante 712 definiert wird, den Ober-/Untergrenzen entspricht. Zudem kann das Robotersystem 100 den verkleinerten möglichen MVR verifizieren, wenn die unvollständigen Kanten 712 Konfidenzwerten entsprechen, die einen vorbestimmten Schwellenwert überschreiten. Zudem kann das Robotersystem 100 die unvollständigen Kanten 712 um einen Schwellenabstand in eine oder mehrere Richtungen verlängern. Beispielsweise kann das Robotersystem 100 den verkleinerten möglichen MVR verifizieren, wenn die verlängerten unvollständigen Kanten andere Kanten unter Bildung eines Winkels schneiden, der einem Schwellenwinkelbereich entspricht.
-
Als ein Beispiel für das Vergrößern des anfänglichen MVR 710 veranschaulicht 8 einen beispielhaften zusammengeführte MVR-Bereich gemäß einigen Ausführungsformen der vorliegenden Technologie. In einigen Fällen können mehrere benachbarte Oberflächen im Wesentlichen dieselbe Höhe und eine Kante/horizontale Trennung zwischen den Oberflächen aufweisen. Als ein veranschaulichendes Beispiel kann das in der Punktwolke dargestellte Objekt eine Oberseite eines Kartons sein, die zwei getrennte rechteckige Klappen/Segmente aufweist, die durch einen Klebestreifen miteinander verbunden sind. Aufgrund einer oder mehrerer vorstehend erörterter Einschränkungen kann das Robotersystem 100 den anfänglichen MVR 710 so ableiten, dass eine Klappe eingeschlossen ist und diese bis zu einer Kante verläuft, die dem Klebeband oder der Trennung zwischen den Klappen/Segmenten entspricht. Für derartige Fälle kann das Robotersystem 100 zusätzliche Bereiche ableiten und diese mit dem anfänglichen MVR 710 im Rahmen der Ableitung eines verifizierten MVR 820 zusammenführen/testen.
-
Wie in 8 gezeigt, können zusätzliche plausible MVR-Bereiche 812a-b auf Grundlage von dem anfänglichen MVR 710 ermittelt werden. Die zusätzlichen plausiblen MVR-Bereiche 812a-b können Bereiche umfassen, die mit dem anfänglichen MVR 710 korreliert sind. Beispielsweise kann das Robotersystem 100 die zusätzlichen plausiblen MVR-Bereiche 812a-b auf Grundlage der Analyse von Teilen der 2D- und/oder 3D-Bilder ermitteln. Das Robotersystem 100 kann die zusätzlichen plausiblen MVR-Bereiche 812a-b als Positionen ermitteln, die eine übereinstimmende visuelle Eigenschaft (zum Beispiel Farbe, Helligkeit und/oder Bildmuster) und/oder übereinstimmende Tiefenwerte aufweisen, die in dem Schwellenkontinuitätsbereich liegen, jeweils in Relation zu dem anfänglichen MVR 710. Das Robotersystem 100 kann mögliche Flächen als Teile der Bilder ableiten, für die festgestellt wurde, dass sie mit dem anfänglichen MVR 710 assoziiert sind.
-
Als ein veranschaulichendes Beispiel kann das Robotersystem 100 die MVR (zum Beispiel anfängliche und erweiterte MVR) auf Grundlage von dem Nachverfolgen der ersten und der zweiten exponierten Kante 722 und 726 (zum Beispiel Kanten, die in den 3D-Bilddaten dargestellt sind) weg von der exponierten Außenecke 714a verarbeiten. Das Robotersystem 100 kann einen anfänglichen Satz gegenüberliegender Kanten erkennen, zu denen eine erste anfängliche gegenüberliegende Kante 822 und eine zweite anfängliche gegenüberliegende Kante 826 gehören. Das Robotersystem 100 kann den anfänglichen Satz gegenüberliegender Kanten verifizieren, wenn die erste exponierte Kante 722 parallel zu der ersten anfänglichen gegenüberliegenden Kante 822 und/oder die zweite exponierte Kante 726 parallel zu der zweiten gegenüberliegenden Kante 826 ist. Das Robotersystem 100 kann die verifizierten gegenüberliegenden Kanten verwenden, um den anfänglichen MVR 710 abzuleiten.
-
Das Robotersystem 100 kann zudem die zusätzlichen plausiblen MVR-Bereiche 812a-b auf Grundlage von dem Nachverfolgen der ersten und der zweiten exponierten Kante 722 und 726 über den anfänglichen Satz gegenüberliegender Kanten hinaus ermitteln (zum Beispiel weg von der exponierten Außenecke 714a). Das Robotersystem 100 kann eine oder mehrere weitere gegenüberliegende Kanten (zum Beispiel eine erste Kante 832 und/oder eine zweite Kante 836) erkennen, die einander schneiden oder in einem Schwellentrennungsabstand von der nachverfolgten Kante liegen (zum Beispiel die erste exponierte Kante 722 und/oder die zweite exponierte Kante 726). Das Robotersystem 100 kann die weiteren gegenüberliegenden Kanten ähnlich der vorstehenden Beschreibung verifizieren, wie etwa, wenn die erste Kante 832 parallel zu der ersten exponierten Kante 722 und/oder der ersten anfänglichen gegenüberliegenden Kante 822 und/oder wenn die zweite Kante 836 parallel zu der zweiten exponierten Kante 726 und/oder der zweiten anfänglichen gegenüberliegenden Kante 826 ist.
-
Wenn die eine oder die mehreren weiteren gegenüberliegenden Kanten verifiziert sind, kann das Robotersystem 100 die zusätzlichen plausiblen MVR-Bereiche erkennen. Beispielsweise kann das Robotersystem 100 einen ersten zusätzlichen plausiblen MVR-Bereich 812a als eine Fläche zwischen der ersten anfänglichen gegenüberliegenden Kante 822 und eine erste der weiteren gegenüberliegenden Kante erkennen (zum Beispiel die erste Kante 832). Zudem kann das Robotersystem 100 einen zweiten zusätzlichen plausiblen MVR-Bereich 812b als eine Fläche zwischen der zweiten anfänglichen gegenüberliegenden Kante 826 und einer zweiten der weiteren gegenüberliegenden Kante erkennen (zum Beispiel die zweite Kante 836).
-
Das Robotersystem 100 kann die zusätzlichen plausiblen MVR-Bereiche 812a-b auf Grundlage von dem Verifizieren/Testen der möglichen Flächen ermitteln (zum Beispiel Kombinationen des anfänglichen MVR 710 und des ersten zusätzlichen plausiblen MVR-Bereichs 812a und/oder des zweiten zusätzlichen plausiblen MVR-Bereichs 812b). Beispielsweise kann das Robotersystem 100 verifizieren, dass die Trennabstände zwischen möglichen Flächen (zum Beispiel Teile der Bilder, die als mit dem anfänglichen MVR 710 assoziiert ermittelt wurden) und dem anfänglichen MVR 710 unter einem vorbestimmten Schwellenwert liegen. Das Robotersystem 100 kann zudem die möglichen Flächen durch Vergleichen einer oder mehrerer Abmessungen davon mit Unter-/Obergrenzen für die Abmessung testen, die vorstehend beschrieben sind. Das Robotersystem 100 kann die möglichen Flächen als die zusätzlichen plausiblen MVR-Bereiche 812a-b ermitteln, wenn die möglichen Flächen unter einer Untergrenze liegen (zum Beispiel Abmessungen einer möglichen Mindestgröße). In einigen Ausführungsformen kann das Robotersystem 100 den Größenvergleich, den Trennabstand und/oder die Assoziation/Ähnlichkeit zwischen den möglichen Flächen und dem anfänglichen MVR 710 verwenden, um ein Konfidenzniveau zu berechnen. Das Konfidenzniveau kann eine Wahrscheinlichkeit darstellen, dass die möglichen Flächen demselben Objekt entsprechen wie die Teile, die dem anfänglichen MVR 710 entsprechen. Das Robotersystem 100 kann das Konfidenzniveau mit einem vorbestimmten Schwellenwert vergleichen, um zu ermitteln, ob die möglichen Flächen als die zusätzlichen plausiblen MVR-Bereiche 812a-b oder eine neue Instanz des anfänglichen MVR 710 eingestuft werden sollten (die beispielsweise einem separaten Objekt entspricht).
-
Erzeugen eines verifizierten MVR
-
Das Robotersystem 100 kann den verifizierten MVR 820 auf Grundlage von dem Kombinieren des anfänglichen MVR 710 und des zusätzlichen plausiblen MVR 812a-b ableiten. Dementsprechend kann das Robotersystem 100 einen möglichen MVR durch Vergrößern des anfänglichen MVR 710 dahingehend ableiten, dass diese andere in der Nähe gelegene Bereiche umfasst. Dementsprechend kann das Robotersystem 100 die Wahrscheinlichkeit einer genauen Schätzung einer vollständigen Oberfläche des nicht registrierten Objektes über den verifizierten MVR 820 erhöhen.
-
In einigen Ausführungsformen kann das Robotersystem 100 sowohl den verifizierten MVR 820 als auch den verifizierten MVR 720 ableiten (zum Beispiel ein Ergebnis der Verkleinerung des anfänglichen MVR 710). Entsprechend einem oder mehreren vorbestimmten Verfahren/einer oder mehreren vorbestimmten Gleichungen kann das Robotersystem 100 Konfidenzwerte für jeden der verifizierten MVR unter Verwendung von einem oder mehreren der vorstehend beschriebenen Verarbeitungsparameter berechnen. Das Robotersystem 100 kann den verifizierten MVR mit dem höheren Konfidenzwert als finalen MVR auswählen.
-
Alternativ kann das Robotersystem 100 den anfänglichen MVR 710 als den finalen MVR ableiten, wenn Tests auf kleinere und/oder größere mögliche Flächen nicht erfolgreich sind. Wenn der zusammengeführte MVR beispielsweise größer ist als eine mögliche Maximalgröße, kann der zusammengeführte MVR abgelehnt werden und der verifizierte MVR 820 kann den anfänglichen MVR 710 ohne jedwede der zusätzlichen plausiblen MVR umfassen. Zudem, wenn der verkleinerte MVR, die in 7 beschrieben ist, unter einer möglichen Mindestgröße liegt, kann der verifizierte MVR 710 den anfänglichen MVR 710 umfassen. In einigen Ausführungsformen kann das Robotersystem 100 den vergrößerten MVR zunächst durch Vergrößern des anfänglichen MVR 710 ableiten. Das Robotersystem 100 kann anschließend den vergrößerten MVR entsprechend der vorstehenden Beschreibung iterativ verkleinern, um den finalen MVR abzuleiten. Das Robotersystem 100 kann den finalen verifizierten MVR verwenden, um das nicht registrierte Objekt entsprechend der vorstehenden Beschreibung zu registrieren und/oder zu manipulieren.
-
Erzeugen eines geeigneten Mindestbereichs (MVR) mit automatischer Registrierungsleitung.
-
9 veranschaulicht ein Ablaufdiagramm eines Objekterkennungsverfahrens 900 zum Erkennen von Objekten gemäß einigen Ausführungsformen der vorliegenden Technologie. Das Verfahren kann auf Informationen beruhen, die dem Robotersystem 100 aus 1 zugänglich sind und/oder an diesem empfangen wurden. Beispielsweise kann das Robotersystem 100 2D- und/oder 3D-Bilddaten empfangen/darauf zugreifen (beispielsweise über den ersten Bildgebungssensor 212 aus 2), die den Zielstapel 210 aus 2 und/oder die Objekte darin darstellen (zum Beispiel die registrierten Objekte und/oder die unerkannten Objekte). Das Robotersystem 100 kann zudem auf vorbestimmte und gespeicherte Daten zugreifen, wie etwa mögliche Mindestabmessungen der Pakete 112 aus 1 (auch bezeichnet als die mögliche Mindestgröße), mögliche Maximalabmessungen der Pakete 112 (auch bezeichnet als die mögliche Maximalgröße) oder eine Kombination daraus. Das Robotersystem 100 kann zudem auf die Stammdaten (auch bezeichnet als ein Objektsatz) zugreifen und diese verwenden, zu denen bekannte oder vorbestimmte Daten/Beschreibungen im Hinblick auf empfangbare oder erwartete Objekte gehören. Beispielsweise kann der Objektsatz Beschreibungen von Eigenschaften umfassen, die mit verschiedenen Objekten assoziiert sind, wie etwa Abmessungen, Oberflächenbilder/Aussehen, Muster, Farbe usw. von Objekten. Im Vergleich dazu können die Abmessungen von einzelnen Objekten in dem Zielstapel 210 (d. h. wie etwa das Paket 112) dem Robotersystem 100 bekannt sein oder nicht bekannt sein.
-
Das Objekterkennungsverfahren 900 kann ein schlagwortbasiertes Erkennungsverfahren umfassen (Block 902). In einigen Ausführungsformen kann zu dem schlagwortbasierten Erkennungsverfahren eine visuelle Analyse oder eine Computervisionsanalyse der 2D-Bilddaten gehören. Auf Grundlage der visuellen Analyse kann eine Erkennungsschätzung auf Grundlage des Objektsatzes erzeugt werden (Block 904). Die Erkennungsschätzung kann eine Hypothese umfassen, dass ein Teil in den Bilddaten (zum Beispiel die 2D-Bilddaten) mit einem Objekt übereinstimmt oder diesem entspricht, das in dem Objektsatz dargestellt ist. Beispielsweise kann das Robotersystem 100 die Erkennungsschätzung auf Grundlage von übereinstimmenden Bildteilen/Merkmalen, Schlagworten und/oder anderen aussehenbezogenen Daten zwischen dem Objektsatz und den 2D-Bilddaten erzeugen.
-
Das schlagwortbasierte Erkennungsverfahren kann das Überprüfen der Hypothese umfassen (Block 906). Anders ausgedrückt, kann das Robotersystem 100 die Erkennungsschätzung verifizieren, wie etwa auf Grundlage von Eigenschaften der registrierten Objekte in dem Objektsatz und/oder anderen Sensordaten (zum Beispiel 3D-Bilddaten, wie etwa Punktwolkendaten). Das Robotersystem 100 kann die Hypothese durch Prüfen/Abgleichen anderer Merkmale, lokaler Merkmalschlagworte und/oder der 3D-Bilddaten von einem 3D-Tiefensensor verifizieren. Beispielsweise kann das Robotersystem 100 die Hypothese auf Grundlage von dem Abgleichen eines Satzes wichtiger visueller Merkmale (zum Beispiel Logos, Namen, größte/hellste Merkmale usw.) mit dem Objektsatz erzeugen und die Hypothese auf Grundlage von dem Vergleichen anderer übriger visueller Merkmale mit dem Objektsatz verifizieren. Zudem kann das Robotersystem 100 die Hypothese auf Grundlage von dem Erkennen von Positionen in den 2D-Bilddaten verifizieren (d. h. Grenzen/Kanten davon), die einer Oberfläche entsprechen, die der Hypothese entspricht. Beispielsweise kann das Robotersystem 100 Eigenschaften von assoziierten 2D-Kanten (zum Beispiel Abmessungen und Positionen von Kanten) berechnen, die dem erkannten Teil der 2D-Bilddaten entsprechen. Das Robotersystem 100 kann die Hypothese auf Grundlage von dem Vergleichen der Positionen/Längen der 2D-Kanten für den angenommenen Teil der 2D-Bilddaten mit denjenigen verifizieren, die in den 3D-Bilddaten (zum Beispiel in der Punktwolke) dargestellt sind. Das Robotersystem 100 kann die Hypothese verifizieren, wenn die Eigenschaften der 3D-Kanten (zum Beispiel Längen), die der angenommenen Fläche entsprechen, mit denen des angenommenen Objektes übereinstimmen, das in dem Objektsatz dargestellt ist. Anders ausgedrückt, kann das Robotersystem 100 verifizieren, dass der angenommene Teil der 2D-Bilddaten mit einem Objekt übereinstimmt, das in dem Objektsatz dargestellt ist, wenn zusätzliche Aspekte, wie etwa Position/Längen der jeweiligen 3D-Kanten, des angenommenen Teils mit denen der Objekte übereinstimmen, die in dem Objektsatz dargestellt sind.
-
Das Objektregistrierungsverfahren 900 kann eine Punktwolkenerkennung umfassen (Block 908). In einigen Ausführungsformen kann zu dem Punktwolkenerkennungsverfahren eine 3D-Analyse der 3D-Bildgebungsdaten von einem 3D-Tiefensensor gehören. Zu der Punktwolkenerkennung kann das Trennen der Punktwolkendaten gehören, um Kanten und/oder Merkmale einzelner Schichten zu erkennen (Block 910). Beispielsweise kann das Robotersystem 100 die Punktwolkendaten entsprechend Tiefenmaßen trennen. Wie vorstehend beschrieben, kann das Robotersystem 100 Gruppierungen von benachbarten Positionen erkennen, deren Tiefenmaße in einem Schwellenbereich voneinander liegen. Dementsprechend kann das Robotersystem 100 die Gruppierungen erkennen, die den Schichten und/oder den Oberflächen des Zielstapels 210 entsprechen. In einigen Ausführungsformen kann das Robotersystem 100 Kanten/Grenzen, Oberflächenausrichtungen und/oder Unterbrechungen anhand der 3D-Bilddaten erkennen. Das Robotersystem 100 kann die erkannten Kanten/Grenzen, Oberflächenausrichtungen und/oder Unterbrechungen verwenden, um die Schichten zu erkennen, die durch die Kanten begrenzt sind, dieselbe Oberflächenausrichtung aufweisen und/oder sich an gegenüberliegenden Seiten der Unterbrechungen befinden. Zusätzlich oder alternativ kann das Robotersystem 100 in den 2D-Bilddaten erkannte Kanten verwenden, um die Kanten zu erkennen und/oder die 3D-Kanten zu validieren.
-
Eine Erkennungsschätzung kann auf Grundlage von gemessenen Abmessungen erzeugt werden (Block 912). Die Erkennungsschätzung kann eine Hypothese umfassen, dass ein Teil in den 3D-Bilddaten mit einem Objekt übereinstimmt oder zu diesem gehört, das in dem Objektsatz dargestellt ist. Beispielsweise kann das Robotersystem 100 die Erkennungsschätzung auf Grundlage von gemessenen Abmessungen von jeder einzelnen Schicht erzeugen. Das Robotersystem 100 kann annehmen, dass die erkannte/n Kante/Grenzen der Schichten/Oberflächen peripheren Kanten von einem oder mehreren Objekten entsprechen, die in dem Objektsatz dargestellt sind. Beispielsweise kann das Robotersystem 100 Längen der Kanten entsprechend der vorstehenden Beschreibung messen oder berechnen. Das Robotersystem 100 kann die Erkennungsschätzung erzeugen, zu der ein Teil des Bildes und/oder den jeweiligen Bereich an dem Zielstapel 210 gehört, die einem bekannten/registrierten Objekt in dem Objektsatz entspricht oder mit diesem übereinstimmt.
-
Das Robotersystem 100 kann die Erkennungsschätzung verifizieren (Block 914). Das Robotersystem 100 kann die Hypothese durch Vergleichen anderer Eigenschaften der angenommenen Fläche mit denjenigen der registrierten Objekte in dem Objektsatz verifizieren. Wenn beispielsweise die gemessenen Abmessungen der Kanten, die die Schichten bilden, mit jeweiligen Abmessungen für eines der registrierten Objekte übereinstimmen, kann das Robotersystem 100 verifizieren, dass das durch die verglichenen Kanten begrenzte Objekt wahrscheinlich das übereinstimmende registrierte Objekt ist. Alternativ oder zusätzlich kann das Robotersystem 100 die Hypothese auf Grundlage der Analyse eines Teils der 2D-Bilddaten verifizieren, der dem angenommenen Teil in den 3D-Bilddaten entspricht. Beispielsweise kann das Robotersystem 100 Koordinaten/Positionen für Punkte der erkannten 3D-Kanten ermitteln, die für die Längenvergleiche verwendet wurden. Das Robotersystem 100 kann die jeweiligen Positionen/den jeweiligen Teil in den 2D-Bilddaten des Zielstapels 210 ermitteln. Das Robotersystem 100 kann die Hypothese durch Vergleichen des erkannten Teils der 2D-Bilddaten mit den jeweiligen Darstellungen der Oberflächen verifizieren (zu denen Oberflächenbilder gehören können), die in dem Objektsatz gespeichert sind. Wenn 2D-Eigenschaften (zum Beispiel Aussehen, wie etwa Muster in der Helligkeit, Farbe usw.) des erkannten Teils des 2D-Bildes mit der Darstellung der Oberfläche des angenommenen registrierten Objektes übereinstimmen, kann das Robotersystem 100 die Hypothese verifizieren und erkennen, dass das jeweilige Objekt an der Position in dem Zielstapel 210 vorhanden ist. Dementsprechend kann das Robotersystem 100 die bekannten Objekte (zum Beispiel die erkannten Objekte 312 aus 3B) in dem Zielstapel 210 erkennen.
-
Das Objekterkennungsverfahren 900 kann mit einem nicht leeren Objektsatz initiiert werden. In einigen Ausführungsformen kann das Objekterkennungsverfahren 900 mit einer beliebigen der schlagwortbasierten Erkennung und/oder punktwolkenbasierten Erkennung beginnen, wie beschrieben unter Bezugnahme auf 9 oben. Alternativ oder zusätzlich kann das Objekterkennungsverfahren 900 entweder die schlagwortbasierte Erkennung oder die Punktwolkenerkennung ohne die jeweils andere durchführen oder die verschiedenen Erkennungsverfahren zusammenführen.
-
10 ist ein Blockdiagramm eines Verfahrens 1000 zum Betreiben des Robotersystems 100 aus 1 gemäß einigen Ausführungsformen der vorliegenden Technologie. Das Robotersystem 100 kann das Verfahren 1000 ausführen, um die 2D-/3D-Bildgebungsdaten zu verarbeiten, die von dem ersten Bildgebungssensor 212 aus 2 erzeugt und/oder empfangen wurden. Beispielsweise kann das Robotersystem 100 das Verfahren 1000 durch Ausführen von Prozessoranweisungen, die auf Speichervorrichtungen gespeichert sind, unter Verwendung eines oder mehrerer Prozessoren ausführen. Dementsprechend können der eine oder die mehreren Prozessoren das/die in der vorliegenden Schrift beschriebene/n Verfahren ausführen. Der eine oder die mehreren Prozessoren können Daten empfangen, Daten analysieren, Ergebnisse/Befehle/Einstellungen erzeugen und/oder die Befehle/Einstellungen kommunizieren, um eine oder mehrere Robotereinheiten zu betreiben.
-
Zu dem Verfahren 1000 kann das Erkennen der bekannten/registrierten Objekte (zum Beispiel die erkannten Objekte 312 aus 3B) in dem Zielstapel 210 aus 2 gehören. Entsprechend dem Verfahren 1000 kann das Robotersystem 100 zudem die unerkannten Objekte 314 aus 3B verarbeiten und registrieren, die den nicht erklärten Bereichen in den Bilddaten entsprechen. Dementsprechend kann zu dem Verfahren 1000 das Objekterkennungsverfahren 900 aus 9 gehören.
-
Das Robotersystem 100 kann erkennen, dass nach dem Objekterkennungsverfahren 900 ein oder mehrere nicht erklärte Bereiche in den Bilddaten (Block 1002) verbleiben. Das Robotersystem 100 kann die nicht erklärten Bereiche als beliebige Teile der Bilddaten der Startposition 112 aus 1 erkennen (zum Beispiel in horizontalen Grenzen einer Palette, eines Wagens, eines Behälters usw.), die keine übereinstimmenden Objekte ergeben (oder diesen entsprechen), die in dem Objektsatz dargestellt sind (zum Beispiel Registrierungsdaten in den Stammdaten). Das Robotersystem 100 kann ermitteln, dass der/die nicht erklärte/n Bereich/e einem oder mehreren unerkannten Objekten 314 aus 3B entspricht/entsprechen.
-
Das Robotersystem 100 kann den/die nicht erklärte/n Bereich/e testen (Block 1004). Das Robotersystem 100 kann den nicht erklärten Bereich entsprechend seiner Form und/oder seiner Abmessungen testen. Dementsprechend kann das Robotersystem 100 Kanten in den Bilddaten erkennen (zum Beispiel das visuelle 2D-Bild und/oder die 3D-Punktwolke) (Block 1020). Beispielsweise kann das Robotersystem 100 die Schichten/Oberflächen in dem/den nicht erklärten Bereich/e der Bilddaten (zum Beispiel das 2D-Bild und/oder die 3D-Punktwolke) auf Grundlage von dem Erkennen benachbarter Positionen mit Tiefenmaßen erkennen, die in einem Schwellenbereich zueinander liegen. Das Robotersystem 100 kann die exponierten Kanten als die Grenzen der erkannten Schichten erkennen, in denen die Tiefenmaße nicht mehr in dem Schwellenbereich über horizontal benachbarte Positionen liegen. Zudem kann das Robotersystem 100 die Kanten auf Grundlage von dem Analysieren der 2D-Bilder auf Änderungen hinsichtlich der Helligkeit, Farben usw. erkennen. In einigen Ausführungsformen kann das Robotersystem 100 Sobel-Filter verwenden, um die Kanten zu erkennen.
-
Das Robotersystem 100 kann den/die nicht erklärte/n Bereiche/e durch Vergleichen der erkannten Kanten der nicht erklärten Bereiche mit vorbestimmten Formvorlagen und/oder Längen testen. Beispielsweise kann das Robotersystem 100 die Form der nicht erklärten Bereiche (das heißt entsprechend der Definition durch einen Satz verbundener Kanten) mit den Formvorlagen vergleichen, die erwartete Objekte darstellen (zum Beispiel Kasten- und/oder Zylinderformen). Das Robotersystem 100 kann die Abmessungen der Formvorlagen zum Testen der Formen der nicht erklärten Bereiche anpassen. Zusätzlich oder alternativ kann das Robotersystem 100 die Längen der erkannten Kanten (zum Beispiel Kanten, die in den 2D- und/oder 3D-Bilddaten dargestellt sind) berechnen und diese mit vorbestimmten Unter-/Obergrenzen abgleichen.
-
Wenn die Form und/oder die Längen die vorbestimmten Schwellenwerte/Bedingungen erfüllen, kann das Robotersystem 100 die Objekterkennung unter Verwendung einer MVR-Analyse entsprechend der vorstehenden Beschreibung durchführen und MVR erzeugen (Block 1006). Das Robotersystem 100 kann die anfänglichen MVR unter Verwendung der erkannten Kanten/Ecken (Block 1022) ableiten. Beispielsweise kann das Robotersystem 100 eine der offenen Ecken auswählen und den jeweiligen offenen Kanten folgen, um andere geeignete 2D-/3D-Kanten zu finden (zum Beispiel die geschätzten Kanten 424 aus 4B und/oder die gegenüberliegenden parallelen Kanten 724, 728 aus 7). Das Robotersystem 100 kann die anfänglichen MVR ableiten, wenn die offenen Kanten und die anderen geeigneten Kanten eine vorbestimmte Bedingung/einen vorbestimmten Schwellenwert erfüllen (zum Beispiel Anforderungen zur Mindest-/Maximalgröße).
-
In einigen Ausführungsformen kann das Robotersystem 100 zudem die anfänglichen MVR verarbeiten, wie etwa durch Vergrößern (Block 1024) und/oder Verkleinern (Block 1026) der anfänglichen MVR. Das Robotersystem 100 kann die anfänglichen MVR auf Grundlage von dem Bestimmen der zusätzlichen plausiblen MVR-Bereiche 812a-b aus 8 wie vorstehend beschrieben vergrößern. Das Robotersystem 100 kann die MVR (zum Beispiel den anfänglichen MVR und/oder den vergrößerten MVR) beginnend in einer anderen Ecke (zum Beispiel eine Ecke, die der ursprünglich ausgewählten Ecke diagonal gegenüberliegt) verkleinern, um Kanten zu finden. Beispielsweise kann das Robotersystem 100 andere Kanten (zum Beispiel die unvollständigen Kanten 712 aus 7 und/oder andere 2D-/3D-Kanten) in Betracht ziehen, um die MVR zu verkleinern.
-
Das Robotersystem 100 kann angepasste und/oder anfängliche MVR verifizieren (Block 1028). Das Robotersystem 100 kann den verifizierten MVR 820 aus 8 als eine Kombination des anfänglichen MVR und den plausiblen MVR-Bereichen ableiten, wenn die plausiblen MVR-Bereiche und/oder die Kombinationen eine vorbestimmte Bedingung/einen vorbestimmten Schwellenwert erfüllen (zum Beispiel entsprechende Anforderungen an die Mindest-/Maximalgröße). Das Robotersystem 100 kann den verifizierten MVR 720 aus 7 ableiten, wenn die durch die in Betracht gezogene/n Kante/n begrenzte Fläche eine vorbestimmte Bedingung/einen vorbestimmten Schwellenwert erfüllt (zum Beispiel entsprechende Anforderungen an die Mindest-/Maximalgröße). Wenn die in Betracht gezogenen Kanten die vorbestimmten Bedingungen/Schwellenwerte nicht erfüllen, kann das Robotersystem 100 den verifizierten MVR auf Grundlage von dem letzten validen Ergebnis ableiten. Beispielsweise kann das Robotersystem 100 den anfänglichen MVR als den verifizierten MVR setzen, wenn erweiterte Ergebnisse und reduzierte Ergebnisse die Testbedingungen nicht erfüllen. Zudem kann das Robotersystem 100 den verifizierten MVR 820 erzeugen, wenn eine anschließende Verkleinerung die Testbedingungen nicht erfüllt. In einigen Ausführungsformen kann das Robotersystem 100 den MVR zunächst verkleinern und anschließend vergrößern. Dementsprechend kann das Robotersystem 100 den verifizierten MVR 720 erzeugen, wenn die anschließende Vergrößerung die Testbedingungen nicht erfüllt.
-
Jede der verifizierten MVR kann eine Schätzung einer Oberfläche (zum Beispiel eine Oberseite) von einem der unerkannten Objekte 314 in dem nicht erklärten Bereich darstellen. Anders ausgedrückt, kann jeder verifizierte MVR eine geschätzte Erkennung darstellen, die ein Objekt in den nicht erklärten Bereichen darstellt.
-
Das Robotersystem 100 kann zudem die MVR analysieren, um zu ermitteln, ob diese sicher oder unsicher sind (Block 1008). Beispielsweise kann das Robotersystem 100 eine Reihe offener Ecken (zum Beispiel 3D-Ecken) ermitteln, die in den MVR vorhanden sind und verwendet werden, um die MVR abzuleiten, und die MVR entsprechend klassifizieren. Das Robotersystem 100 kann die MVR auf Grundlage von dem Vergleichen der Anzahl der assoziierten offenen Ecken mit einem vorbestimmten Schwellenwert klassifizieren/eine Klassifikation ermitteln. Als ein veranschaulichendes Beispiel kann das Robotersystem 100 unsichere MVR als die anfänglichen und/oder verifizierten MVR ermitteln, die zwei oder weniger offene 3D-Ecken umfassen oder unter Verwendung von zwei oder weniger offenen 3D-Ecken abgeleitet sind. Zudem kann das Robotersystem 100 sichere MVR als anfängliche und/oder verifizierte MVR ermitteln, die drei oder mehr offene 3D-Ecken umfassen oder unter Verwendung von drei oder mehr offenen 3D-Ecken abgeleitet sind.
-
In einigen Ausführungsformen kann das Robotersystem 100 die Unsicherheit des anfänglichen MVR ermitteln (zum Beispiel vor den Blöcken 1024-1028). Wenn der anfängliche MVR ein sicherer MVR ist, kann das Robotersystem 100 die vorstehend für die Blöcke 1024-1028 beschriebenen Vorgänge überspringen. Das Robotersystem 100 kann die vorstehend für die Blöcke 1024-1028 beschriebenen Vorgänge ausführen, wenn der anfängliche MVR der unsichere MVR ist. In anderen Ausführungsformen kann das Robotersystem 100 die Unsicherheit des verifizierten MVR nach dem Vergrößern, Verkleinern und/oder Verifizieren der verarbeiteten MVR ermitteln.
-
Das Robotersystem 100 kann den Objektsatz aktualisieren, wenn der MVR sicher ist (Block 1030). In einigen Ausführungsformen kann das Robotersystem den Objektsatz mit dem MVR entsprechend der Klassifizierung für den MVR aktualisieren. Beispielsweise kann unter Verwendung der sicheren MVR das Robotersystem 100 ein Objekt erkennen, wie etwa durch Bestimmen/Schlussfolgern, dass die sicheren MVR jeweils einem einzelnen erkannten Objekt entsprechen (zum Beispiel eine Instanz der unerkannten Objekte 314). Dementsprechend kann das Robotersystem 100 den sicheren MVR direkt erkennen und/oder registrieren (zum Beispiel ohne den MVR weiter anzupassen, zu testen und/oder zu verifizieren), wie etwa durch Speichern des sicheren MVR (zum Beispiel das visuelle Bild und/oder die jeweiligen Abmessungen) in dem Objektsatz. Unter Verwendung des aktualisierten Objektsatzes (d. h. der mit dem sicheren MVR aktualisierte Objektsatz) kann das Robotersystem 100 das Objekterkennungsverfahren 900 entsprechend der Darstellung durch die Feedback-Schleife erneut ausführen.
-
Wenn der MVR unsicher ist, kann das Robotersystem 100 eine Aufgabe entsprechend dem verifizierten MVR ausführen (Block 1010). Das Robotersystem 100 kann den verifizierten MVR verwenden, um die Greifposition 420 aus 4B abzuleiten. Beispielsweise kann das Robotersystem 100 ableiten, dass die Greifposition 420 mit der exponierten Ecke des verifizierten MVR ausgerichtet ist oder an diese anstößt. Zudem kann das Robotersystem 100 ableiten, dass die Greifposition 420 einen mittleren Teil des verifizierten MVR überlappt. Auf Grundlage der Greifposition 420 kann das Robotersystem 100 Befehle, Einstellungen und/oder Bewegungspläne zum Betreiben des Roboterarms 202 aus 2 und/oder des Endeffektors 204 aus 2 ableiten, um das Objekt zu greifen und zu übertragen. Für die Aufgabe kann das Robotersystem 100 das Objekt in die Aufgabenposition 116 aus 1 übertragen. Zudem kann das Robotersystem 100 weiterhin das Objekt in einer oder mehreren festgelegten Positionen abstellen, wie etwa, um das Objekt einem oder mehreren Sensoren vorzulegen und/oder das Objekt um eine oder mehrere Linien/Ebenen anzuordnen, während der Übertragung.
-
Das Robotersystem 100 kann zusätzliche Daten über das Objekt während seiner Übertragung abrufen (Block 1032). Beispielsweise kann das Robotersystem 100 das Objekt greifen und eine anfängliche Verschiebung durchführen (zum Beispiel Anheben und/oder um einen vorbestimmten Abstand horizontal verschieben). Das Robotersystem 100 kann eine oder mehrere aktualisierte 2D/3D-Bilddaten (beispielsweise über den ersten Bildsensor 212) im Anschluss an die anfängliche Verschiebung erzeugen. Auf Grundlage der erhöhten Trennung zwischen dem gegriffenen Objekt und den umgebenden Objekten kann das Robotersystem 100 die aktualisierten 2D-/3D-Bilddaten analysieren, um die Kanten, den MVR und/oder die Objektabmessungen erneut abzuleiten. Zudem kann das Robotersystem 100 eine Höhe des Objektes entsprechend einem oder mehreren kreuzenden Sensoren (nicht gezeigt) berechnen. Das Robotersystem 100 kann die Höhe des Endeffektors 204 ermitteln, wenn ein unterer Teil des übertragenen Objektes in eine seitlich ausgerichtete Erfassungslinie/-ebene eintritt beziehungsweise aus dieser austritt, die mit den kreuzenden Sensoren assoziiert ist (zum Beispiel Sensoren, die konfiguriert sind, um Unterbrechungen eines optischen Signals zu erkennen). Das Robotersystem 100 kann die Höhe auf Grundlage der Höhe des Endeffektors und einer bekannten Höhe der Erfassungslinie/-ebene berechnen. Zudem kann das Robotersystem 100 periphere Bilder, Kennzeichnungswerte/Positionen, das Gewicht und/oder andere physikalische Beschreibungen des Objektes während der Übertragung abrufen.
-
Das Robotersystem 100 kann das übertragene unerkannte Objekt registrieren (Block 1034). Das Robotersystem 100 kann das Objekt auf Grundlage von dem Speichern der zusätzlichen Daten und/oder des verifizierten MVR in dem Objektsatz entsprechend der vorstehenden Beschreibung registrieren. Das Robotersystem 100 kann den aktualisierten Objektsatz verwenden, um andere Objekte weiter zu erkennen, wie durch die Feedback-Schleife zu dem Objekterkennungsverfahren 900 veranschaulicht.
-
Im Rahmen der Ausführung der Verfahren, die Block 1010 entsprechen, kann das Robotersystem 100 die unsicheren MVRs an ein Planungsmodul (nicht gezeigt) zurückgeben, zusammen mit den erkannten Objekten (zum Beispiel Ergebnisse aus dem Objekterkennungsverfahren 900) und/oder den neu registrierten erkannten Objekten (zum Beispiel die sicheren MVR). Das Planungsmodul kann Bewegungspläne ableiten, um die erkannten Objekte, die ermittelten Objekte (zum Beispiel die unerkannten Objekte, die den sicheren MVR entsprechen) und/oder andere unerkannte Objekte zu manipulieren/übertragen. Das Robotersystem 100 kann zudem die zusätzlichen Informationen (zum Beispiel Objekthöhen, Kennzeichnungsdaten, Profilbilder usw.) während der Übertragung der unerkannten Objekte abrufen und die abgerufenen zusätzlichen Informationen verwenden, um die Registrierungsdaten in dem Objektsatz zu aktualisieren. Das Robotersystem 100 kann die abgerufenen zusätzlichen Informationen verwenden, um die unerkannten Objekte zu registrieren und/oder die finalen verifizierten MVR abzuleiten.
-
In einigen Ausführungsformen kann das Robotersystem 100 die nicht erklärten Bereiche verarbeiten und alle anfänglichen/verifizierten MVR darin erzeugen. Entsprechend einer iterativen Umsetzung des Verfahrens 1000 kann das Robotersystem 100 die nicht erklärten Bereiche mit dem Objektsatz abgleichen, um die sicheren MVR zunächst unter den erzeugten MVR zu ermitteln. Unter Verwendung des aktualisierten Objektsatzes (zum Beispiel die sicheren MVR) kann das Robotersystem 100 das Objekterkennungsverfahren 900 erneut ausführen und Objekte in dem nicht erklärten Bereich erkennen, die den sicheren MVR entsprechen. Das Robotersystem 100 kann den nicht erklärten Bereich aktualisieren, indem es Bereiche darin erkennt, die mit den sicheren MVR übereinstimmen, die verwendet werden, um den Objektsatz zu aktualisieren, wodurch jeweilige Objekte erkannt werden. Das Robotersystem 100 kann das Aktualisieren des nicht erklärten Bereichs beenden, indem es die Teile, die den sicheren MVR entsprechen/mit diesen übereinstimmen, aus dem nicht erklärten Bereich entfernt. Das Robotersystem 100 kann dieses iterative Verfahren wiederholen, bis die resultierenden nicht erklärten Bereiche keine sicheren MVR mehr enthalten. Für die unsicheren MVR kann das Robotersystem 100 die jeweiligen verifizierten MVR von dem nicht erklärten Bereich verwenden/ableiten, um die unerkannten Objekte darin zu manipulieren. Das Robotersystem 100 kann zudem die zusätzlichen Informationen während der Manipulation der unerkannten Objekte entsprechend der vorstehenden Beschreibung abrufen. Das Robotersystem 100 kann den Objektsatz mit den verifizierten MVR und/oder den zusätzlichen Informationen aktualisieren und das Objekterkennungsverfahren 900 fortführen, um andere Objekte zu erkennen, die mit den übertragenen Objekten übereinstimmen, und das iterative Verfahren wiederholen. Das Robotersystem 100 kann den nicht erklärten Bereich durch Erkennen von Bereichen darin aktualisieren, die mit den verifizierten MVR für die übertragenen Objekte übereinstimmen, wodurch die jeweiligen Objekte erkannt werden. Das Robotersystem 100 kann das Aktualisieren des nicht erklärten Bereichs dadurch beenden, dass Teile aus dem nicht erklärten Bereich entfernt werden, die mit den verifizierten MVR für die übertragenen Objekte übereinstimmen. Das Robotersystem 100 kann den aktualisierten nicht erklärten Bereich verarbeiten, um einen anschließenden MVR abzuleiten und zu verifizieren, der einem anschließenden Typ/einer anschließenden Instanz der unerkannten Objekte entspricht.
-
Zusätzlich oder alternativ kann das Robotersystem 100 die erkannten Objekte ermitteln und alle MVR ableiten und anschließend die Übertragung der Objekte planen. In anderen Ausführungsformen kann das Robotersystem 100 die MVR auf Grundlage von dem anfänglichen Übertragen der erkannten Objekte und/oder der Objekte, die sicheren MVR entsprechen, ableiten oder aktualisieren. Dementsprechend kann das Robotersystem 100 die Wahrscheinlichkeit erhöhen, dass zusätzliche 3D-Kanten/Ecken der unerkannten Objekte exponiert werden. Die höhere Wahrscheinlichkeit der Exposition der zusätzlichen 3D-Kanten/Ecken kann die Wahrscheinlichkeit erhöhen, dass die sicheren MVR erkannt werden, was eine höhere Genauigkeit bei dem Erkennen der Objekte und der abgeleiteten MVR bieten kann. Zudem kann die höhere Genauigkeit eine höhere Effizienz durch Verringern/Beseitigen von Verarbeitungsschritten und/oder durch Verringern von Verlustteilen und/oder Kollisionen bereitstellen, die durch eine ungenaue Objekterkennung verursacht wurden.
-
Das Robotersystem 100 kann die in der vorliegenden Schrift beschriebenen Ausführungsformen verwenden, um den Objektsatz autonom auszufüllen. Anders ausgedrückt, kann das Robotersystem 100 mit einem leeren Satz des Objektsatzes beginnen, der keine Registrierungsdaten enthält. Unter derartigen Bedingungen kann das Robotersystem 100 das Verfahren 1000 ausgehend von Block 1002 ausführen und die Gesamtheit der empfangenen Bilddaten als einen nicht erklärten Bereich erkennen. Da keine Registrierungsdaten vorliegen, kann das Robotersystem 100 die Objekte entsprechend ihrer Verarbeitung registrieren (zum Beispiel Übertragen von der Startposition 114 in die Aufgabenposition 116), wobei wenig bis kein menschliches Eingreifen erforderlich ist. Dementsprechend kann das Robotersystem 100 mit dem Ableiten von den MVR beginnen, ohne das Objekterkennungsverfahren 900 auszuführen, und eine Teilmenge der abgeleiteten MVR (zum Beispiel die sicheren MVR) in dem Objektsatz speichern. Das Robotersystem 100 kann das Verfahren 1000 entsprechend der vorstehenden Beschreibung iterativ ausführen, um die Objekte zu registrieren. Beispielsweise kann das Robotersystem 100 einen ersten Satz Objekte, der in dem nicht erklärten Bereich dargestellt ist, auf Grundlage von dem Vergleichen von jeweiligen Teilen darin mit der Teilmenge der abgeleiteten MVR, die in dem Objektsatz gespeichert sind, erkennen. Das Robotersystem 100 kann die übereinstimmenden Teile aus dem nicht erklärten Bereich entfernen und diese dadurch entsprechend der Erkennung des ersten Satzes Objekte aktualisieren. Das Robotersystem 100 kann den aktualisierten nicht erklärten Bereich verarbeiten, um einen neuen/nachfolgenden Satz MVR abzuleiten (zum Beispiel ein anderer Satz der sicheren MVR und/oder andere verifizierte MVR), um andere Objekte in dem aktualisierten nicht erklärten Bereich zu registrieren.
-
Beispielhaftes Verarbeitungssystem
-
11 ist ein Blockdiagramm, das ein beispielhaftes Verarbeitungssystem 1100 veranschaulicht, in dem mindestens einige der in der vorliegenden Schrift beschriebenen Vorgänge ausgeführt werden können. Wie in 11 gezeigt, können zu dem Verarbeitungssystem 1100 eine oder mehrere zentrale Recheneinheiten („Prozessoren“) 1102, ein Hauptspeicher 1106, ein nichtflüchtiger Speicher 1110, ein Netzwerkadapter 1112 (zum Beispiel Netzwerkschnittstellen), eine Videoanzeige 1118, Eingabe-/Ausgabevorrichtungen 1120, eine Steuerung 1122 (zum Beispiel Tastatur und Zeigevorrichtungen), eine Festplatteneinheit 1124, einschließlich ein Speichermedium 1126, und eine Signalerzeugungsvorrichtung 1130 gehören, die kommunikativ mit einem Bus 1116 verbunden sind. Der Bus 1116 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 1116 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(12C)-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 1100 als Teil einer Benutzervorrichtung, wenngleich das Verarbeitungssystem 1100 auch mit der Benutzervorrichtung verbunden sein kann (zum Beispiel drahtgebunden oder drahtlos). In einer vernetzten Anwendung kann das Verarbeitungssystem 1100 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 1100 kann ein Servercomputer, ein Client-Computer, ein PC, ein Tablet, ein Laptop-Computer, ein PDA (Personal Digital Assistant), 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 (sequentiell oder anderweitig), die durch das Verarbeitungssystem 1100 zu ergreifende Maßnahmen vorgeben.
-
Während der Hauptspeicher 1106, der nichtflüchtige Speicher 1110 und das Speichermedium 1126 (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 (zum Beispiel eine zentrale oder verteilte Datenbank und/oder assoziierte Caches und Server), die einen oder mehrere Sätze Anweisungen 1128 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 zur Implementierung der Ausführungsformen der Offenbarung ausgeführt werden, 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, implementiert werden. Die Computerprogramme umfassen in der Regel eine oder mehrere Anweisungen (zum Beispiel Anweisungen 1104, 1108, 1128) 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 1102 ausgelesen und ausgeführt werden, das Verarbeitungssystem 1100 veranlassen, Vorgänge auszuführen, um Elemente auszuführen, die die verschiedenen Aspekte der Offenbarung einbeziehen.
-
Zudem wird der Fachmann erkennen, wenngleich Ausführungsformen im Zusammenhang mit vollständig funktionsfähigen Computern und Computersystemen beschrieben wurden, , dass die verschiedenen Ausführungsformen als ein Programmprodukt in einer Vielzahl von Formen verteilt sein können und dass die Offenbarung gleichwohl anwendbar ist ungeachtet der konkreten Art der maschinen- oder computerlesbaren Medien, 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-Computing-Diensten 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 1110, Floppy- und andere herausnehmbare Disketten, Festplattenlaufwerke, optische Datenträger (zum Beispiel Compact Disk Read-Only Memory (CD ROM), Digital Versatile Disks (DVDs)), und Übertragungsmedien, wie etwa digitale und analoge Kommunikationsverbindungen.
-
Der Netzwerkadapter 1112 erlaubt dem Verarbeitungssystem 1100 ein Vermitteln von Daten in einem Netzwerk 1114 mit einer Einheit, die zu dem Verarbeitungssystem 1100 extern ist, unter Anwendung beliebiger bekannter und/oder praktischer Kommunikationsprotokolle, die durch das Verarbeitungssystem 1100 und die externe Einheit unterstützt werden. Zu dem Netzwerkadapter 1112 können eine oder mehrere der folgenden gehören: eine Netzwerkadapterkarte, eine drahtlose Netzwerkschnittstellenkarte, ein Router, ein Zugangspunkt, ein drahtloser Router, ein Switch, ein [Multilayer-Switch][A3], ein Protokollkonverter, ein Gateway, eine Brücke, ein Brückenrouter, ein Hub, ein digitaler Medienreceiver und/oder ein Repeater.
-
Zu dem Netzwerkadapter 1112 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 Verkehrsfluss 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.
-
Beispiele
-
In einigen Ausführungsformen kann ein Verfahren zum Betreiben eines Robotersystems Folgendes umfassen: Empfangen von zweidimensionalen (2D) Bilddaten und dreidimensionalen (3D) Bilddaten, die einen Zielstapel darstellen, der ein oder mehrere unerkannte Objekte enthält; Erkennen eines nicht erklärten Bereichs der 2D- und/oder der 3D-Bilddaten auf Grundlage von einem Vergleich mit einem Objektsatz, der einen oder mehrere physikalische Aspekte der registrierten Objekte darstellt; Erkennen von einer oder mehreren Schichten in dem nicht erklärten Bereich der 2D-Bilddaten und/oder der 3D-Bilddaten, wobei jede Schicht einen Satz seitlich benachbarter Punkte mit Tiefenmaßen in einem Schwellenbereich zueinander in den 3D-Bilddaten umfasst; Erkennen von exponierten Kanten in dem nicht erklärten Bereich, wobei die exponierten Kanten Grenzen der einen oder mehreren Schichten darstellen, an denen die Tiefenmaße nicht mehr in dem Schwellenbereich über horizontal benachbarte Positionen liegen; Erkennen einer oder mehrerer exponierter Ecken auf Grundlage der exponierten Kanten, wobei jede der exponierten Ecken einem Schnittpunkt zwischen einem Satz der exponierten Kanten entspricht; Ableiten eines geeigneten Mindestbereichs (MVR) auf Grundlage der erkannten exponierten Kanten und der exponierten Ecken, wobei der MVR eine Schätzung einer Oberfläche für ein nicht registriertes Objekt darstellt, das in dem nicht erklärten Bereich dargestellt ist; Bestimmen einer Anzahl der exponierten Ecken, die mit dem abgeleiteten MVR assoziiert sind; Erkennen eines unerkannten Objektes entsprechend dem MVR und der Anzahl der exponierten Ecken; und Registrieren des unerkannten Objektes auf Grundlage von dem Aktualisieren des Objektsatzes, damit dieser den MVR und/oder ein Verarbeitungsergebnis davon als Darstellungen des unerkannten Objektes enthält. Das Verfahren kann zudem das iterative Aktualisieren und Analysieren des nicht erklärten Bereichs entsprechend dem aktualisierten Objektsatz auf Grundlage von Folgendem umfassen: Vergleichen des nicht erklärten Bereichs mit dem aktualisierten Objektsatz; Erkennen eines Teils in dem nicht erklärten Bereich, der mit dem MVR und/oder dem Verarbeitungsergebnis davon übereinstimmt, das verwendet wurde, um den Objektsatz zu aktualisieren; Erkennen eines Objektes entsprechend des Teils, der mit dem MVR und/oder dem Verarbeitungsergebnis übereinstimmt; und Aktualisieren des nicht erklärten Bereichs durch Entfernen des Teils, der mit dem MVR und/oder dem Verarbeitungsergebnis davon übereinstimmt. Der Objektsatz kann ein leerer Satz für eine anfängliche Iteration sein und der nicht erklärte Bereich kann die 2D-Bilddaten, die 3D-Bilddaten, einen Teil davon oder eine Kombination daraus für die anfängliche Iteration umfassen. Für die anfängliche Iteration kann zu dem Registrieren des unerkannten Objektes das autonome Ausfüllen des Objektsatzes beim Ausführen von Aufgaben gehören, an denen die unerkannten Objekte in dem Zielstapel beteiligt sind.
-
In einigen Ausführungsformen kann zu dem Erkennen des unerkannten Objektes das direkte Erkennen des unerkannten Objektes gehören, wenn die Anzahl der exponierten Ecken einen vorbestimmten Schwellenwert überschreitet; und zu dem Registrieren des erkannten Objektes kann das Speichern des MVR in dem Objektsatz direkt dann gehören, wenn die exponierten Ecken den vorbestimmten Schwellenwert überschreiten. In einigen Ausführungsformen kann der vorbestimmte Schwellenwert zwei sein.
-
In einigen Ausführungsformen kann ein Robotersystem Folgendes umfassen: mindestens einen Prozessor; und mindestens eine Speichervorrichtung, die mit dem mindestens einem Prozessor verbunden ist und auf der von dem Prozessor ausführbare Anweisungen gespeichert sind, um: eine oder mehrere Bilddaten zu empfangen, die ein oder mehrere unerkannte Objekte in einer Startposition darstellen; einen geeigneten Mindestbereich (MVR) auf Grundlage von dem Erkennen von einer oder mehreren exponierten Ecken in den einen oder mehreren Bilddaten abzuleiten, wobei jede der exponierten Ecken einen Schnittpunkt zwischen exponierten Kanten darstellt, die nicht horizontal zu einer anderen Oberfläche oder einem anderen Objekt benachbart sind; einen Objektsatz mit dem MVR und/oder einem Verarbeitungsergebnis davon auf Grundlage von einer Anzahl der exponierten Ecken zu aktualisieren, die mit dem MVR assoziiert sind, wobei: der Objektsatz einen oder mehrere physikalische Aspekte von vorher registrierten Objekten darstellt, und der MVR und/oder das Verarbeitungsergebnis davon ein oder mehrere physikalische Attribute von einem der unerkannte Objekte in der Startposition darstellt; und ein anderes Objekt in der Startposition auf Grundlage des aktualisierten Objektsatzes zu erkennen. Die mindestens eine Speichervorrichtung kann Folgendes umfassen: Anweisungen zum Bestimmen des MVR als einen sicheren MVR auf Grundlage von dem Vergleichen der Anzahl der exponierten Ecken mit einem vorbestimmte Schwellenwert, wie etwa, wenn der MVR mit drei oder mehr der exponierten Ecken assoziiert ist; und/oder Anweisungen zum Aktualisieren des Objektsatzes mit dem MVR und/oder einem Verarbeitungsergebnis davon direkt auf Grundlage von dem Ermitteln des MVR als den sicheren MVR und ohne weiteres Aktualisieren oder Anpassen des MVR. Die mindestens eine Speichervorrichtung kann zudem Anweisungen umfassen, um: einen nicht erklärten Bereich der Bilddaten zu erkennen, der keine Übereinstimmung mit Objekten zurückgibt, die in dem Objektsatz dargestellt sind; der MVR auf Grundlage von dem nicht erklärten Bereich abzuleiten, wobei der sichere MVR in dem nicht erklärten Bereich liegt; und einen Teil des nicht erklärten Bereichs zu entfernen, der mit dem sicheren MVR übereinstimmt, um das Objekt weiter zu erkennen und/oder zu manipulieren. In einer oder mehreren Ausführungsformen kann die mindestens eine Speichervorrichtung zudem Anweisungen umfassen, um: Vorgänge zum Übertragen eines unerkannten Objektes, das dem sicheren MVR entspricht, aus der Startposition; einen anschließenden MVR auf Grundlage von einem aktualisierten nicht erklärten Bereich abzuleiten, nachdem die Vorgänge zum Übertragen des unerkannten Objektes ausgeführt wurden, wobei der anschließende MVR ein weiteres unerkanntes Objekt in der Startposition darstellt und in dem aktualisierten nicht erklärten Bereich dargestellt ist; und den Objektsatz mit dem zweiten MVR und/oder einem Verarbeitungsergebnis davon zu aktualisieren.
-
In einigen Ausführungsformen kann zu dem Robotersystem die mindestens eine Speichervorrichtung gehören, die Anweisungen umfasst, um: den MVR als einen unsicheren MVR zu bestimmen, wenn der MVR mit zwei oder weniger der exponierten Ecken assoziiert ist; und den Objektsatz mit dem MVR und/oder einem Verarbeitungsergebnis davon auf Grundlage von dem weiteren Analysieren des unsicheren MVR und/oder dem Manipulieren von einem oder mehreren der unerkannten Objekte in der Startposition zu aktualisieren. Die mindestens eine Speichervorrichtung kann Anweisungen umfassen, um: ein oder mehrere erkannte Objekte auf Grundlage von dem Vergleichen der Bilddaten mit dem Objektsatz zu erkennen; einen nicht erklärten Bereich der Bilddaten zu erkennen, die keine Übereinstimmung mit dem Objektsatz zurückgibt; und den MVR mit dem nicht erklärten Bereich auf Grundlage von dem Erkennen der einen oder mehreren exponierten Ecken in dem nicht erklärten Bereich der Bilddaten abzuleiten, wobei der MVR eine Schätzung einer Oberfläche von einem der unerkannten Objekte in der Startposition darstellt. Die mindestens eine Speichervorrichtung kann zudem Anweisungen umfassen, um: Vorgänge zum Übertragen des einen oder der mehreren erkannten Objekte aus der Startposition auszuführen; den MVR nach dem Ausführen des Vorgangs zum Übertragen des einen oder der mehreren erkannten Objekte zu aktualisieren; und den Objektsatz mit dem aktualisierten MVR und/oder einem Verarbeitungsergebnis davon zu aktualisieren.
-
In einigen Ausführungsformen kann ein materielles, nichtflüchtiges computerlesbares Medium, auf dem Prozessoranweisungen gespeichert sind, die bei Ausführung durch einen Prozessor den Prozessor dazu veranlassen, ein Verfahren auszuführen, das Verfahren umfassend: das iterative Analysieren einer oder mehrerer empfangener Bilddaten, die registrierte und/oder unerkannte Objekte in einer Startposition darstellen, durch -- Ableiten eines oder mehrerer geeigneter Mindestbereiche (MVR) auf Grundlage von dem Erkennen einer oder mehrerer exponierter Ecken in den empfangenen Bilddaten, wobei jede der exponierten Ecken einen Schnittpunkt zwischen exponierten Kanten darstellt, die nicht horizontal zu einer anderen Oberfläche oder einem anderen Objekt benachbart sind; Bestimmen einer Klassifikation für jeden der MVR auf Grundlage von einer Anzahl der exponierten Ecken, die mit dem jeweiligen MVR assoziiert sind; Aktualisieren eines Objektsatzes mit den MVR und/oder einem Verarbeitungsergebnis davon entsprechend der jeweiligen Klassifizierung, wobei: der Objektsatz einen oder mehrere physikalische Aspekte von vorher registrierten Objekten darstellt, und jeder der MVR und/oder das Verarbeitungsergebnis davon ein oder mehrere physikalische Attribute eines der unerkannten Objekte in der Startposition darstellt; und Erkennen anderer Objekte in der Startposition unter Verwendung des aktualisierten Objektsatzes. In einigen Ausführungsformen umfassen die einen oder mehreren empfangenen Bilddaten zweidimensionale (2D) Bilddaten und dreidimensionale (3D) Bilddaten, die jeweils den Zielstapel aus einer Bildgebungsposition darstellen; und das Verfahren kann zudem umfassen: das Erzeugen einer Erkennungsschätzung auf Grundlage von dem Vergleichen der 2D-Bilddaten mit dem Objektsatz; und das Verifizieren der Erkennungsschätzung auf Grundlage der 3D-Bilddaten. Zu dem Erzeugen der Erkennungsschätzung kann zudem das Erzeugen der Erkennungsschätzung auf Grundlage des Vergleichs eines Teils der 2D-Bilddaten mit einem Oberflächenbild eines Objektes, das in dem Objektsatz dargestellt ist, gehören; und zu dem Verifizieren der Erkennungsschätzung kann zudem das Verifizieren der Erkennungsschätzung auf Grundlage von Folgendem gehören: Erkennen eines Teils in den 3D-Bilddaten, der der Erkennungsschätzung entspricht; Berechnen von Längen für 3D-Kanten in dem erkannten Teil der 3D-Bilddaten; und Verifizieren der Erkennungsschätzung, wenn die Längen der 3D-Kanten mit denen des Objektes übereinstimmen, das in dem Objektsatz dargestellt ist.
-
In einigen Ausführungsformen kann zu dem nichtflüchtigen computerlesbaren Medium das Verfahren gehören, wobei: die einen oder mehreren empfangenen Bilddaten zweidimensionale (2D) Bilddaten und dreidimensionale (3D) Bilddaten umfassen, die jeweils den Zielstapel aus einer Bildgebungsposition darstellen; und das Verfahren kann zudem umfassen: das Erzeugen einer Erkennungsschätzung auf Grundlage von dem Vergleichen der 3D-Bilddaten mit dem Objektsatz; und das Verifizieren der Erkennungsschätzung auf Grundlage der 2D-Bilddaten. Zu dem Erzeugen der Erkennungsschätzung kann das Erzeugen der Erkennungsschätzung auf Grundlage von Folgendem gehören: Erkennen einer Schicht in den 3D-Bilddaten, wobei die Schicht einen Satz horizontal benachbarter Positionen mit Tiefenmaßen umfasst, die in einem Schwellenbereich zueinander liegen, Erkennen von Kanten der Schicht, wobei die Kanten Positionen darstellen, an denen die Tiefenmaße außerhalb des Schwellenbereichs über horizontal benachbarten Positionen abweichen, Berechnen der Längen der Kanten, und Abgleichen der Kantenlängen mit Abmessungen eines Objektes, das in dem Objektsatz dargestellt ist; und zu dem Verifizieren der Erkennungsschätzung kann das Verifizieren der Erkennungsschätzung auf Grundlage von Folgendem gehören: Erkennen eines Teils in den 2D-Bilddaten, der der Erkennungsschätzung entspricht, Erkennen von 2D-Eigenschaften in dem erkannten Teil der 2D-Bilddaten, und Verifizieren der Erkennungsschätzung, wenn die 2D-Eigenschaften mit den jeweiligen Eigenschaften eines Bildes von einem der registrierten Objekte übereinstimmen, das in dem Objektsatz dargestellt ist. In einigen Ausführungsformen kann das nichtflüchtigen computerlesbare Medium das Verfahren umfassen, zu dem das iterative Aufbauen des Objektsatzes aus einem leeren Satz auf Grundlage von dem Analysieren der einen oder mehreren empfangenen Bilddaten durch Folgendes gehört: Erkennen der einen oder mehreren empfangenen Bilddaten oder eines Teils davon als einen nicht erklärten Bereich, wenn der Objektsatz keine Registrierungsdaten von beliebigen Objekten enthält; Ableiten des einen oder mehreren MVR aus dem nicht erklärten Bereich; Speichern von mindestens einer Teilmenge des einen oder mehreren MVR in dem Objektsatz entsprechend den jeweiligen Klassifikationen; Erkennen eines ersten Satzes Objekte, die in den empfangenen Bilddaten dargestellt sind, auf Grundlage von dem Abgleichen von Teilen der empfangenen Bilddaten mit dem einen oder den mehreren MVR, die in dem Objektsatz gespeichert sind; Aktualisieren des nicht erklärten Bereichs durch Entfernen der abgeglichenen Teile; und Ableiten eines neuen Satzes MVR auf Grundlage des aktualisierten nicht erklärten Bereichs, um einen zweiten Satz Objekte zu registrieren, die in den empfangenen Bilddaten dargestellt sind.
-
Wie vorstehend angedeutet, können die in der vorliegenden Schrift vorgestellten Techniken beispielsweise durch programmierbare Schaltungen (zum Beispiel einen oder mehrere Mikroprozessoren), programmiert mit Software und/oder Firmware, insgesamt in festverdrahteten (das heißt 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.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 62/852963 [0001]
- US 16/290741 [0001]
- US 10369701 [0001]