-
Querverweis auf verwandte Anwendung(en)
-
Die vorliegende Anmeldung beansprucht die Rechtsvorteile der vorläufigen US-Anmeldung Nr.
62/985,336 mit dem Titel
„A ROBOTIC SYSTEM WITH OBJECT RECOGNITION MECHANISM", eingereicht am 5. März 2020, deren gesamter Inhalt hierin durch Bezugnahme aufgenommen wird.
-
Gebiet der Erfindung
-
Die vorliegende Offenbarung betrifft Computersysteme und Verfahren zur Behälterdetektion und Objektdetektion.
-
Hintergrund der Erfindung
-
Mit zunehmender Automatisierung werden Roboter in mehr Umgebungen, wie beispielsweise in Lagerhaltungs- und Einzelhandelsumgebungen, verwendet. Roboter können beispielsweise zur Interaktion mit Waren oder anderen Objekten in einem Warenlager eingesetzt werden. Die Bewegung des Roboters kann fest vorgegeben sein oder auf einer Eingabe, wie beispielsweise auf Informationen, die durch einen Sensor in dem Warenlager erzeugt werden, basieren.
-
Kurzdarstellung
-
Ein Aspekt der vorliegenden Offenbarung betrifft ein Computersystem, ein Verfahren und/oder ein nicht flüchtiges computerlesbares Medium mit Befehlen zur Ausführung von Obj ektdetektion. Das Computersystem kann eine Kommunikationsschnittstelle umfassen, die dazu konfiguriert ist, mit einem Roboter zu kommunizieren, der einen Roboterarm aufweist, welcher eine Raumstrukturerfassungskamera aufweist, die an dem Roboterarm angeordnet ist, wobei die Raumstrukturerfassungskamera ein Kamerasichtfeld aufweist. Die mindestens eine Verarbeitungsschaltung kann dazu konfiguriert sein, das Verfahren auszuführen, wenn sich ein Objekt innerhalb eines Behälters im Kamerasichtfeld befindet oder befunden hat, während sich der Behälter in einer geöffneten Position befindet. Das Verfahren kann das Empfangen von Raumstrukturinformationen, die Tiefeninformationen für eine Umgebung in dem Kamerasichtfeld umfassen, wobei die Raumstrukturinformationen von der Raumstrukturerfassungskamera erzeugt werden, und das Bestimmen einer Behälterpose basierend auf den Raumstrukturinformationen beinhalten, wobei die Behälterpose zum Beschreiben von mindestens einem von einer Ausrichtung für den Behälter oder einem Tiefenwert für mindestens einen Teil des Behälters dient. Das Verfahren kann ferner das Bestimmen einer Objektpose basierend auf der Behälterpose beinhalten, wobei die Objektpose zum Beschreiben von mindestens einem von einer Ausrichtung für das Objekt oder einem Tiefenwert für mindestens einen Teil des Objekts dient, und das Ausgeben eines Bewegungsbefehls zum Bewirken einer Roboterinteraktion mit dem Objekt, wobei der Bewegungsbefehl basierend auf der Objektpose erzeugt wird.
-
Figurenliste
-
- Die 1A bis IE veranschaulichen ein Computersystem, das für das Empfangen und Verarbeiten von Raumstrukturinformationen und/oder erfassten Objektkennungsinformationen konfiguriert ist, die mit Ausführungsformen hiervon konsistent sind.
- Die 2A bis 2C stellen Blockdiagramme bereit, die ein Computersystem veranschaulichen, das für das Empfangen und Verarbeiten von Raumstrukturinformationen und/oder erfassten Objektkennungsinformationen konfiguriert ist, die mit Ausführungsformen hiervon konsistent sind.
- Die 3A bis 3D veranschaulichen eine Umgebung mit mehreren Behältern (z. B. Schubfächer) und einen Roboter zur Interaktion mit den Behältern basierend auf Raumstrukturinformationen, die von einer Raumstrukturerfassungskamera erzeugt werden, gemäß einer Ausführungsform hiervon.
- 4 stellt ein Flussdiagramm bereit, das ein Verfahren zur Bestimmung von Informationen über ein in einem Behälter angeordnetes Objekt veranschaulicht, gemäß einer Ausführungsform hiervon.
- Die 5A bis 5C veranschaulichen einen Behälter und Objekte innerhalb des Behälters gemäß einer Ausführungsform hiervon.
- Die 6A bis 6C veranschaulichen Raumstrukturinformationen, die einen Behälter oder Objekte, die in dem Behälter angeordnet sind, beschreiben, gemäß einer Ausführungsform hiervon.
- 6D veranschaulicht einen Behälter und darin angeordnete Objekte gemäß einer Ausführungsform hiervon.
- 6E veranschaulicht Raumstrukturinformationen, die einen Behälter oder Objekte, die in dem Behälter angeordnet sind, beschreiben, gemäß einer Ausführungsform hiervon.
- 6F veranschaulicht eine Beziehung zwischen einer Behälterfläche und einem Behälterrand gemäß einer Ausführungsform hiervon.
- 7A stellt eine Umgebung dar, die sowohl eine Raumstrukturerfassungskamera als auch eine Objektkennungserfassungsvorrichtung, oder insbesondere eine Barcodeerfassungsvorrichtung aufweist, gemäß einer Ausführungsform hiervon.
- Die 7B und 7C veranschaulichen das Bestimmen eines Barcodeorts, der zur Bestimmung einer oder mehrerer Objektorte verwendet wird, gemäß einer Ausführungsform hiervon.
- 8 veranschaulicht Barcodes, die sich neben einem Objekt befinden, das zum Bestimmen eines Orts für das Objekt verwendet wird, gemäß einer Ausführungsform hiervon.
- 9 veranschaulicht Raumstrukturinformationen und/oder erfasste Objektkennungsinformationen oder insbesondere erfasste Barcodeinformationen, die nur einen Teil eines Behälters abdecken, gemäß einer Ausführungsform hiervon.
- 10 veranschaulicht eine Segmentierung, die verschiedene Regionen des Behälters mit verschiedenen Segmenten verbindet, gemäß einer Ausführungsform hiervon.
- Die 11A bis 11C veranschaulichen die Bewegung eines Behälters von einer geschlossenen Position in eine geöffnete Position gemäß einer Ausführungsform hiervon.
-
Detaillierte Beschreibung der Figuren
-
Ein Aspekt der vorliegenden Offenbarung betrifft das Erleichtern von Roboterinteraktion mit dem Inhalt eines Schubfachs oder eines anderen Behälters, wie beispielsweise Waren oder irgendwelchen anderen Objekten, die in dem Behälter angeordnet sind (der Begriff „oder“ kann hierin verwendet sein, um sich auf „und/oder“ zu beziehen). Die Roboterinteraktion kann z. B. umfassen, dass eine Roboterhand ein in dem Behälter angeordnetes Objekt greift oder auf andere Weise aufnimmt. Die Roboterinteraktion kann z. B. in einem Warenlager, einem Verkaufsraum oder einer anderen Umgebung erfolgen. In einigen Fällen beinhaltet das Erleichtern der Roboterinteraktion das Bestimmen einer Pose des Objekts innerhalb des Behälters, wobei sich die Pose auf mindestens eines von einer Ausrichtung oder Tiefe des Objekts relativ zu einer Kamera oder einem anderen Bezugspunkt beziehen kann, sodass die Roboterhand geeignet bewegt werden kann, um das Objekt zu entnehmen oder anderweitig aufzunehmen.
-
Verschiedene Ausführungsformen betreffen das Bestimmen der Pose eines Objekts (auch als Objektpose bezeichnet) durch Ausführen einer Detektion eines offenen Behälters, bei der Informationen über einen geöffneten Behälter bestimmt werden, wobei das Objekt innerhalb des Behälters angeordnet sein kann. Diese Ausführungsformen können eine Art und Weise des Bestimmens der Objektpose bereitstellen, die z. B. robuster und toleranter gegenüber Bildrauschen oder anderen Messfehlerquellen ist. Das Bildrauschen kann z. B. eine Punktwolke oder andere Raumstrukturinformationen beeinflussen, die zur Messung des Objekts verwendet werden. Der in die Punktwolke eingeführte Messfehler kann eine fehlerhafte Bestimmung von z. B. der Ausrichtung und/oder Tiefe des Objekts bewirken. In einigen Fällen kann ein Fehler von sogar wenigen Millimetern oder Graden die Roboterinteraktion beeinflussen, die unter gewissen Umständen auf einer Genauigkeit im Millimeterbereich oder besser in Bezug auf das Bestimmen eines relativen Orts zwischen der Roboterhand und dem Objekt beruhen kann. Da ein Messfehler für das Objekt eine solche Genauigkeit verhindern oder erschweren kann, betrifft ein Aspekt der vorliegenden Offenbarung die Verwendung von Messungen bezüglich des Behälters, in dem das Objekt angeordnet ist, und die Verwendung solcher Messungen zum Ableiten oder anderweitigen Bestimmen einer Pose oder anderer Informationen bezüglich des Objekts.
-
In einigen Fällen kann das Bildrauschen auch das direkte Messen eines Teils des Behälters, wie beispielsweise einer Fläche, auf der das Objekt angeordnet ist (die Fläche kann auch als Behälterfläche bezeichnet werden), beeinflussen. Ein Aspekt der vorliegenden Offenbarung betrifft das Kompensieren von Messfehlern, die sich auf die Behälterfläche auswirken, durch Ausführen von Messungen an einem anderen Teil des Behälters, wie beispielsweise einem Rand des Behälters (auch als Behälterrand bezeichnet). In diesen Fällen kann der Behälterrand einen Raum einnehmen, der durch das Bildrauschen weniger beeinflusst wird und daher zuverlässigere oder vertrauenswürdigere Messungen liefern kann. Die Messungen bezüglich des Behälterrands können verwendet werden, um auf eine Pose oder andere Informationen bezüglich der Behälterfläche zu schließen oder diese anderweitig zu bestimmen. Eine solche Bestimmung kann z. B. auf einem bekannten Abstand, der die Behälterfläche und den Behälterrand trennt, beruhen.
-
In einigen Fällen können die in Bezug auf den Behälter vorgenommenen Messungen zur Bewegungsplanung verwendet werden, wie beispielsweise für eine Bewegungsplanung für die Entnahme eines Objekts aus dem Behälter. Beispielsweise können die Messungen in Bezug auf den Behälterrand Informationen darüber bereitstellen, wo sich eine Seitenwand des Behälters befindet. Wenn ein Roboter das Objekt aus dem Behälter entnimmt, kann ein Objektbewegungspfad geplant werden, um eine Kollision zwischen der Seitenwand des Behälters und dem Roboter oder dem Objekt zu vermeiden. In einigen Fällen können Messungen bezüglich des Behälters verwendet werden, um den Behälter virtuell in verschiedene Segmente zu unterteilen, wie es nachstehend ausführlicher erörtert wird.
-
In einigen Fällen kann das Erleichtern der Roboterinteraktion mit einem Objekt darauf beruhen, dass Informationen über eine Objektkennung (falls vorhanden), die auf dem Objekt angeordnet ist, verwendet werden. Die Objektkennung kann eine visuelle Markierung, wie beispielsweise einen Barcode, ein Logo oder Symbol (z. B. ein alphanumerisches Symbol) oder ein anderes visuelles Muster umfassen, welches das Objekt identifiziert. In einigen Fällen kann die Obj ektkennung auf eine Fläche des Objekts gedruckt sein. In einigen Fällen kann die Objektkennung auf einen Aufkleber oder eine andere Materialschicht gedruckt sein, die an dem Objekt angehaftet oder anderweitig an dem Objekt angebracht ist. Wenn das Objekt eine Kiste ist, die einen oder mehrere Artikel enthält, kann die Objektkennung den einen oder die mehreren Artikel oder allgemeiner einen Inhalt der Kiste identifizieren. Die Informationen bezüglich der Objektkennung, die zur Erleichterung der Roboterinteraktion verwendet werden, können z. B. ein Ort der Objektkennung (auch als Objektkennungsort bezeichnet) oder in die Objektkennung codierte Informationen, wie beispielsweise in einen Barcode codierte Informationen, umfassen. In einigen Fällen kann der Objektkennungsort verwendet werden, um einzugrenzen, welcher Teil einer Punktwolke oder anderer Raumstrukturinformationen durchsucht werden soll, um ein bestimmtes Objekt zu detektieren. Wenn die Objektkennung beispielsweise ein Barcodeort ist, kann eine solche Suche auf einen Teil der Punktwolke beschränkt werden, der einer Region um den Barcodeort herum entspricht. Eine solche Ausführungsform kann eine gezieltere und effizientere Suche nach dem Objekt erleichtern. Wenn in einigen Fällen eine Objektgröße in den Barcode oder eine andere Objektkennung codiert ist, können diese Informationen verwendet werden, um das Objekt anhand der Punktwolke oder anderer Raumstrukturinformationen zu suchen oder um zu planen, wie der Roboter es greifen oder anderweitig damit interagieren kann.
-
1A veranschaulicht ein System 100 zum Verarbeiten von Raumstrukturinformationen zur Objektdetektion, wie es nachstehend ausführlicher erörtert wird. Bei der Ausführungsform von 1A kann das System 100 ein Computersystem 101 und eine Raumstrukturerfassungskamera 151 (auch als Raumstrukturerfassungsvorrichtung 151 bezeichnet) umfassen. In diesem Beispiel kann die Raumstrukturerfassungsvorrichtung 151 dazu konfiguriert sein, Raumstrukturinformationen (auch als Rauminformationen oder Raumstrukturdaten bezeichnet) zu erzeugen, die Tiefeninformationen über eine Umgebung umfassen, in der sich die Raumstrukturerfassungskamera 151 befindet, oder insbesondere über eine Umgebung im Sichtfeld der Kamera 151 (auch als Kamerasichtfeld bezeichnet). Das Computersystem 101 in 1A kann dazu konfiguriert sein, die Raumstrukturinformationen zu empfangen und zu verarbeiten. Beispielsweise kann das Computersystem 101 dazu konfiguriert sein, die Tiefeninformationen in den Raumstrukturinformationen zum Unterscheiden zwischen verschiedenen Strukturen in dem Kamerasichtfeld oder allgemeiner zum Identifizieren einer oder mehrerer Strukturen in dem Kamerasichtfeld zu verwenden. Die Tiefeninformationen in diesem Beispiel können verwendet werden, um eine Schätzung zu bestimmen, wie die eine oder die mehreren Strukturen räumlich in dem dreidimensionalen (3D) Raum angeordnet sind.
-
In einem Beispiel kann sich die Raumstrukturerfassungskamera 151, in einem Warenlager, einem Verkaufsraum (z. B. einem Laden) oder in anderen Räumlichkeiten befinden. In einem solchen Beispiel kann der Lager- oder Verkaufsraum verschiedene Waren oder andere Objekte umfassen. Die Raumstrukturerfassungskamera 151 kann verwendet werden, um Informationen über die Objekte und/oder Strukturen, welche die Objekte enthalten, wie beispielsweise Schubfächer oder andere Arten von Behältern, zu erfassen. Wie vorstehend angegeben, kann die Raumstrukturerfassungskamera 151 dazu konfiguriert sein, Raumstrukturinformationen zu erzeugen, die z. B. beschreiben können, wie eine Struktur für eine Ware und/oder wie eine Struktur eines Behälters in dem 3D-Raum angeordnet ist/sind. Das Computersystem 101 in einem solchen Beispiel kann dazu konfiguriert sein, die Raumstrukturinformationen von der Raumstrukturerfassungskamera 151 zu empfangen und zu verarbeiten. Das Computersystem 101 kann sich in den gleichen Räumlichkeiten oder entfernt davon befinden. Das Computersystem 101 kann beispielsweise Teil einer Cloud-Computing-Plattform sein, die in einem Datenzentrum gehostet wird, das sich entfernt von dem Warenlager oder dem Verkaufsraum befindet, und kann über eine Netzwerkverbindung mit der Raumstrukturerfassungskamera 151 kommunizieren.
-
Bei einer Ausführungsform kann das System 100 ein Roboterbetriebssystem zum Interagieren mit verschiedenen Objekten in einer Umgebung der Raumstrukturerfassungskamera 151 sein. 1B veranschaulicht zum Beispiel ein Roboterbetriebssystem 100A, das eine Ausführungsform des Systems 100 von 1A sein kann. Das Roboterbetriebssystem 100A kann das Computersystem 101, die Raumstrukturerfassungskamera 151 und einen Roboter 161 umfassen. Bei einer Ausführungsform kann der Roboter 161 verwendet werden, um mit einem oder mehreren Objekten in der Umgebung der Raumstrukturerfassungskamera 151 zu interagieren, wie beispielsweise mit Waren oder anderen Objekten in einem Warenlager. Der Roboter 161 kann beispielsweise dazu konfiguriert sein, die Waren aus einem Schubfach oder einem anderen Behälter aufzunehmen und die Waren aus dem Behälter an einen anderen Ort (z. B. ein Förderband außerhalb des Schubfachs) zu bewegen.
-
Bei einer Ausführungsform kann das Computersystem 101 der 1A und 1B ein Robotersteuersystem (auch als Robotersteuerung bezeichnet) bilden oder ein Teil davon sein, das Teil des Roboterbetriebssystems 100A ist. Das Robotersteuersystem kann ein System sein, das dazu konfiguriert ist, beispielsweise Bewegungsbefehle oder andere Befehle für den Roboter 161 zu erzeugen. Bei einer solchen Ausführungsform kann das Computersystem 101 dazu konfiguriert sein, solche Befehle z. B. basierend auf Raumstrukturinformationen zu erzeugen, die von der Raumstrukturerfassungskamera 151 erzeugt werden. Bei einer solchen Ausführungsform kann das Computersystem 101 ein Bildverarbeitungssystem bilden oder Teil davon sein. Das Bildverarbeitungssystem kann ein System sein, das z. B. Bildverarbeitungsinformationen erzeugt, die eine Umgebung beschreiben, in der sich der Roboter 161 befindet, oder insbesondere eine Umgebung beschreiben, in der sich die Raumstrukturerfassungskamera 151 befindet. Die Bildverarbeitungsinformationen können die Raumstrukturinformationen umfassen, die auch als 3D-Informationen oder 3D-Bildinformationen bezeichnet werden können, da sie angeben können, wie eine Struktur in einem 3D-Raum angelegt oder anderweitig angeordnet ist. In einigen Fällen kann der Roboter 161 einen Roboterarm umfassen, der eine Roboterhand oder einen anderen Endeffektor aufweist, der ein Ende des Roboterarms bildet, und die Raumstrukturinformationen können von dem Computersystem 101 verwendet werden, um die Platzierung der Roboterhand zu steuern. Wenn in einigen Fällen das Computersystem 101 ein Bildverarbeitungssystem bildet, kann das Bildverarbeitungssystem Teil des vorstehend erörterten Robotersteuersystems sein oder von dem Robotersteuersystem getrennt sein. Wenn das Bildverarbeitungssystem von dem Robotersteuersystem getrennt ist, kann es dazu konfiguriert sein, Informationen über die Umgebung, in der sich der Roboter 161 befindet, auszugeben. Das Robotersteuersystem kann in einem solchen Beispiel solche Informationen empfangen und eine Bewegung des Roboters 161 basierend auf diesen Informationen steuern.
-
Bei einer Ausführungsform kann das System 100 eine Objektkennungserfassungsvorrichtung 152 umfassen, wie beispielsweise eine Barcodeerfassungsvorrichtung (auch als Barcodeleser bezeichnet). Insbesondere stellt 1C ein System 100B (das eine Ausführungsform des Systems 100/100A ist) dar, welches das Computersystem 101, die Raumstrukturerfassungskamera 151, den Roboter 161 und ferner die Objektkennungserfassungsvorrichtung 152 umfasst. In einigen Fällen kann die Objektkennungserfassungsvorrichtung 152 dazu konfiguriert sein, eine Objektkennung zu detektieren, die auf oder neben einem Objekt angeordnet ist. Wie vorstehend angegeben, kann die Objektkennung eine visuelle Markierung sein, die das Objekt identifiziert. Wenn das Objekt eine Kiste oder ein anderes Objekt zur Aufnahme von Waren oder irgendeinem anderen Artikel ist, kann die Objektkennung bei einer Ausführungsform den Artikel oder einen anderen Inhalt der Kiste identifizieren. Wie ebenfalls vorstehend angegeben, kann die Objektkennung in einigen Beispielen ein Barcode sein. In einigen Fällen kann der Barcode ein Raummuster aufweisen, wie beispielsweise eine Reihe von dunklen Streifen oder eine Anordnung von dunklen Quadraten (z. B. ein QR-Code) oder irgendeinen anderen Barcode in einem Sichtfeld der Objektkennungserfassungsvorrichtung 152 (z. B. Barcodeerfassungsvorrichtung). Der Barcode kann beispielsweise auf einer Ware oder einem anderen Objekt in einem Warenlager angebracht sein. Die Objektkennungserfassungsvorrichtung 152 kann dazu konfiguriert sein, Informationen über die Objektkennung zu erfassen. Diese Informationen (die auch als erfasste Objektkennungsinformationen bezeichnet werden können) können Informationen, die in die Objektkennung codiert sind, einen Ort der Objektkennung (auch als Objektkennungsort bezeichnet) oder irgendwelche anderen Informationen bezüglich der Objektkennung umfassen. Wenn die Objektkennung ein Barcode ist, können die in den Barcode codierten Informationen z. B. einen Artikelnummer- (SKU) -Code oder einen universellen Produktcode (UPC) umfassen.
-
Bei einer Ausführungsform kann die Objektkennungserfassungsvorrichtung 152 und/oder die Raumstrukturerfassungskamera 151 an einem stationären Befestigungspunkt angebracht sein, wie beispielsweise an einem Befestigungspunkt, der innerhalb eines Warenlagers oder eines Verkaufsraums stationär ist. Bei einer Ausführungsform kann die Raumstrukturerfassungskamera 151 und/oder die Objektkennungserfassungsvorrichtung 152 an einem Roboterarm des Roboters 161 angebracht sein. In einem spezifischeren Beispiel kann die Objektkennungserfassungsvorrichtung 152 und/oder die Raumstrukturerfassungskamera 151 an einer Roboterhand oder einem anderen Endeffektor, der ein Ende des Roboterarms bildet, befestigt oder darauf (oder nahe daran) angeordnet sein. In einem solchen Beispiel kann die Objektkennungserfassungsvorrichtung 152 und die Raumstrukturerfassungskamera 151 entsprechend als eine an der Hand befindliche Objektkennungserfassungsvorrichtung (z. B. ein verfügbarer Barcodeleser) und eine an der Hand befindliche Raumstrukturerfassungskamera bezeichnet werden. In einigen Fällen kann das Computersystem 101 dazu konfiguriert sein, den Roboter 161 derart zu steuern, dass er die an der Hand befindliche Raumstrukturerfassungskamera und/oder die an der Hand befindliche Objektkennungserfassungsvorrichtung zur Erfassung einer Umgebung des Roboters 161 an einen optimalen Ort bewegt, wie es nachstehend ausführlicher erörtert wird.
-
Bei einer Ausführungsform, wenn das Computersystem 101 Teil eines Robotersteuersystems ist, kann das Computersystem 101 dazu konfiguriert sein, einen oder mehrere Bewegungsbefehle zum Steuern der Bewegung des Roboters 161 zu erzeugen, wie es nachstehend ausführlicher erörtert wird. Diese Bewegungsbefehle können z. B. Objektbewegungsbefehle, Sensorbewegungsbefehle und Behälterbewegungsbefehle umfassen. Ein Sensorbewegungsbefehl kann verwendet werden, um die Raumstrukturerfassungskamera 151 und/oder die Objektkennungserfassungsvorrichtung 152 zu bewegen. Ein Behälterbewegungsbefehl kann verwendet werden, um einen Behälter zu bewegen, der eine Ware oder ein anderes Objekt enthält, wie beispielsweise ein Bewegungsbefehl zum Öffnen oder Schließen des Behälters. Ein Objektbewegungsbefehl kann verwendet werden, um Waren oder ein anderes Objekt in einem Warenlager oder anderen Räumlichkeiten oder insbesondere ein Objekt, das in dem Behälter angeordnet ist, zu bewegen.
-
Bei einer Ausführungsform können die Komponenten des Systems 100 dazu konfiguriert sein, über ein Netzwerk und/oder eine Speichervorrichtung zu kommunizieren. Insbesondere stellt 1D ein System 100C dar, das eine Ausführungsform des Systems 100/100A/100B der 1A bis 1C darstellt. Das System 100C umfasst das Computersystem 101, die Raumstrukturerfassungskamera 151, den Roboter 161, die Objektkennungserfassungsvorrichtung 152 und ferner ein Netzwerk 199 und eine von dem Computersystem 101 getrennte Datenspeichervorrichtung 198 (oder jede andere Art eines nicht-flüchtigen computerlesbaren Mediums). In einigen Fällen kann die Speichervorrichtung 198 dazu konfiguriert sein, um Informationen zu speichern, die von der Objektkennungserfassungsvorrichtung 152, der Raumstrukturerfassungskamera 151 und/oder dem Roboter 161 erzeugt werden, und um die gespeicherten Informationen dem Computersystem 101 verfügbar zu machen. In einem solchen Beispiel kann das Computersystem 101 dazu konfiguriert sein, auf die gespeicherten Informationen durch Abrufen (oder allgemeiner Empfangen) der Informationen von der Datenspeichervorrichtung 198 zuzugreifen.
-
In 1D kann die Speichervorrichtung 198 jede Art von nicht-flüchtigem computerlesbaren Medium (oder Medien) umfassen, das auch als nicht-flüchtige computerlesbare Speichervorrichtung bezeichnet werden kann. Ein solches nicht flüchtiges computerlesbares Medium oder eine solche Speichervorrichtung kann dazu konfiguriert sein, gespeicherte Informationen (auch als gespeicherte Daten bezeichnet) zu speichern und den Zugriff darauf bereitzustellen. Beispiele für das nicht flüchtige computerlesbare Medium oder die Speichervorrichtung können beispielsweise eine elektronische Speichervorrichtung, eine magnetische Speichervorrichtung, eine optische Speichervorrichtung, eine elektromagnetische Speichervorrichtung, eine Halbleiterspeichervorrichtung oder eine geeignete Kombination davon, wie beispielsweise eine Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren programmierbaren Festwertspeicher (EPROM oder Flash-Speicher), ein Festkörperlaufwerk, einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Festwertspeicher (CD-ROM), eine Digital Versatile Disk (DVD) und/oder einen Speicherstick umfassen, sind aber nicht darauf beschränkt.
-
Bei einer Ausführungsform kann das Netzwerk 199 die Kommunikation zwischen dem Computersystem 101, der Raumstrukturerfassungskamera 151, der Objektkennungserfassungsvorrichtung 152 und/oder dem Roboter 161 erleichtern. Zum Beispiel können das Computersystem 101 und/oder die Speichervorrichtung 198 Informationen, die von der Raumstrukturerfassungskamera 151 und/oder der Objektkennungserfassungsvorrichtung 152 erzeugt werden (z. B. Raumstrukturinformationen oder erfasste Objektkennungsinformationen), über das Netzwerk 199 empfangen. In einem solchen Beispiel kann das Computersystem 101 dazu konfiguriert sein, einen oder mehrere Befehle (z. B. Bewegungsbefehle) an den Roboter 161 über das Netzwerk 199 bereitzustellen. Das Netzwerk 199 kann eine einzelne Netzwerkverbindung oder eine Reihe von Netzwerkverbindungen bereitstellen, damit das Computersystem 101 in Übereinstimmung mit den Ausführungsformen hiervon Informationen empfangen und/oder einen Befehl ausgeben kann.
-
In 1D kann das Netzwerk 199 über drahtgebundene oder drahtlose Verbindungen verbunden sein. Drahtgebundene Verbindungen können Digital Subscriber Line (DSL), Koaxialkabel- oder Glasfaserleitungen umfassen. Drahtlose Verbindungen können Bluetooth®, Bluetooth Low Energy (BLE), ANT/ANT+, ZigBee, Z-Wave, Thread, Wi-Fi®, Worldwide Interoperability for Microwave Access (WiMAX®), Mobile WiMAX®, WiMAX®-Advanced, NFC, SigFox, LoRa, Random Phase Multiple Access (RPMA), Weightless-N/P/W, ein Infrarotkanal oder ein Satellitenband umfassen. Die drahtlosen Verbindungen können auch alle zellularen Netzwerkstandards zur Kommunikation zwischen mobilen Vorrichtungen umfassen, einschließlich Standards, die als 2G, 3G, 4G oder 5G qualifizieren. Drahtlose Standards können verschiedene Kanalzugriffsverfahren verwenden, wie beispielsweise FDMA, TDMA, CDMA, OFDM oder SDMA. Bei einigen Ausführungsformen können verschiedene Arten von Informationen über verschiedene Verbindungen und Standards übertragen werden. Bei anderen Ausführungsformen können die gleichen Arten von Informationen über verschiedene Verbindungen und Standards übertragen werden. Die Netzwerkkommunikation kann über jedes geeignete Protokoll erfolgen, einschließlich z. B. http, tcp/ip, UDP, Ethernet, ATM usw.
-
Das Netzwerk 199 kann jede Art und/oder Form von Netzwerk sein. Der geografische Umfang des Netzwerks kann sehr unterschiedlich sein, und das Netzwerk 199 kann ein Körpernetzwerk (BAN), ein Personal Area Network (PAN), ein Local Area Network (LAN), z. B. Intranet, ein Metropolitan Area Network (MAN), ein Wide Area Network (WAN) oder das Internet sein. Die Topologie des Netzwerks 199 kann in irgendeiner Form vorliegen und z. B. eine der folgenden umfassen: Punkt-zu-Punkt, Bus, Stern, Ring, Netz oder Baum. Das Netzwerk 199 kann eine beliebige Netzwerktopologie aufweisen, die einem Durchschnittsfachmann bekannt und in der Lage ist, die hierin beschriebenen Betriebsweisen zu unterstützen. Das Netzwerk 199 kann verschiedene Techniken und Schichten oder Protokollstapel verwenden, einschließlich z. B. das Ethernet-Protokoll, die Internetprotokollfamilie (TCP/IP), die ATM- (Asynchronous Transfer Mode) -Technik, das SONET-(Synchronous Optical Networking) -Protokoll oder das SDH- (Synchronous Digital Hierarchy) -Protokoll. Die Internetprotokollfamilie TCP/IP kann die Anwendungsschicht, Transportschicht, Internetschicht (einschließlich z. B. IPv4 und IPv4) oder die Verbindungsschicht umfassen. Das Netzwerk 199 kann eine Art von Rundfunknetzwerk, ein Telekommunikationsnetzwerk, ein Datenkommunikationsnetzwerk oder ein Computernetzwerk sein.
-
Bei einer Ausführungsform können das Computersystem 101, die Raumstrukturerfassungskamera 151, die Objektkennungserfassungsvorrichtung 152 und/oder der Roboter 161 in der Lage sein, miteinander über eine direkte Verbindung anstatt über eine Netzwerkverbindung zu kommunizieren. Das Computersystem 101 kann beispielsweise bei einer solchen Ausführungsform dazu konfiguriert sein, Informationen von der Raumstrukturerfassungskamera 151 und/oder der Objektkennungserfassungsvorrichtung 152 über eine dedizierte drahtgebundene Kommunikationsschnittstelle, wie beispielsweise eine RS-232-Schnittstelle, eine Universal Serial Bus- (USB) -Schnittstelle und/oder über einen lokalen Computerbus, wie beispielsweise einen Peripheral Component Interconnect (PCI) - Bus, zu empfangen.
-
Bei einer Ausführungsform können sich die von der Raumstrukturerfassungskamera 151 erzeugten Raumstrukturinformationen auf jede Art von Informationen beziehen, die beschreiben, wie eine Struktur im Raum, wie beispielsweise einem dreidimensionalen (3D) Raum, ausgelegt oder anderweitig angeordnet ist. Insbesondere können die Raumstrukturinformationen ein 3D-Layout der Struktur oder eine 3D-Pose oder - Anordnung der Struktur in einem 3D-Raum beschreiben. Die Struktur kann z. B. zu einem Behälter in einer Umgebung oder einem Sichtfeld der Raumstrukturerfassungskamera 151 oder zu einem innerhalb des Behälters angeordneten Objekt gehören. In einigen Fällen können die Raumstrukturinformationen angeben, wie die Struktur in einem 3D-Raum ausgerichtet ist. In einigen Fällen können die Raumstrukturinformationen Tiefeninformationen umfassen, die einen oder mehrere entsprechende Tiefenwerte für einen oder mehrere Orte auf der Struktur oder insbesondere auf einer oder mehreren Flächen der Struktur angeben. Der Tiefenwert für einen bestimmten Ort kann relativ zu der Raumstrukturerfassungskamera 151 oder relativ zu einem anderen Bezugsrahmen (z. B. einer Decke oder einer Wand des Warenlagers oder Verkaufsraums) sein. In einigen Fällen können die Tiefenwerte entlang einer Achse gemessen werden, die orthogonal zu einer imaginären Ebene verläuft, auf der sich die Raumstrukturerfassungskamera 151 befindet. Wenn die Raumstrukturerfassungskamera 151 beispielsweise einen Bildsensor aufweist, kann die imaginäre Ebene eine durch den Bildsensor definierte Bildebene sein. Bei einer Ausführungsform können die Raumstrukturinformationen verwendet werden, um eine Kontur oder allgemeiner eine Grenze einer Struktur zu bestimmen. Die Kontur kann z. B. die eines Behälters oder eines Teils des Behälters oder eines Objekts in dem Behälter sein. Die Raumstrukturinformationen können beispielsweise verwendet werden, um einen oder mehrere Orte zu detektieren, an denen eine starke Diskontinuität in Tiefenwerten besteht, wobei solche Orte eine Grenze (z. B. Kante) einer Struktur angeben können. In einigen Fällen kann die Grenze der Struktur verwendet werden, um ihre Form oder Größe zu bestimmen.
-
In einigen Fällen können die Raumstrukturinformationen eine Tiefenkarte umfassen oder bilden. Die Tiefenkarte kann eine Bitmap mit mehreren Pixeln sein, die verschiedene Orte im Kamerasichtfeld darstellen oder anderweitig diesen entsprechen, wie beispielsweise Orte auf einer oder mehreren Strukturen in dem Kamerasichtfeld. In solchen Fällen können einige oder alle Pixel jeweils einen entsprechenden Tiefenwert aufweisen, der eine Tiefe eines entsprechenden Orts angibt, der durch dieses Pixel dargestellt wird oder diesem anderweitig entspricht. In einigen Fällen kann die Tiefenkarte 2D-Bildinformationen umfassen, die ein 2D-Erscheinungsbild der einen oder der mehreren Strukturen im Kamerasichtfeld beschreiben. Die Tiefenkarte kann beispielsweise ein 2D-Bild umfassen. In einem solchen Beispiel kann jedes der Pixel der Tiefenkarte ferner einen Farbintensitätswert oder Graustufenintensitätswert umfassen, der eine Menge sichtbaren Lichts angibt, das von dem durch das Pixel dargestellten oder diesem anderweitig entsprechenden Ort reflektiert wird.
-
Bei einer Ausführungsform können die Raumstrukturinformationen eine Punktwolke sein oder umfassen. Die Punktwolke kann mehrere Orte identifizieren, die eine oder mehrere Strukturen beschreiben, wie beispielsweise eine Struktur eines Behälters und/oder eine Struktur eines Objekts in dem Behälter. In einigen Fällen können die mehreren Punkte entsprechende Orte auf einer oder mehreren Flächen der einen oder der mehreren Strukturen sein. In einigen Fällen kann die Punktwolke eine Vielzahl von Koordinaten (z. B. 3D-Koordinaten) umfassen, welche die mehreren Punkte identifizieren oder anderweitig beschreiben. Die Punktwolke kann beispielsweise eine Reihe von kartesischen oder polaren Koordinaten (oder andere Datenwerte) umfassen, die entsprechende Orte oder andere Merkmale der einen oder der mehreren Strukturen spezifizieren. Die entsprechenden Koordinaten können in Bezug auf einen Bezugsrahmen (z. B. Koordinatensystem) der Raumstrukturerfassungskamera 151 oder in Bezug auf einen anderen Bezugsrahmen ausgedrückt werden. In einigen Fällen sind die entsprechenden Koordinaten diskret und voneinander beabstandet, können aber als für eine oder mehrere zusammenhängende Flächen der einen oder der mehreren Strukturen repräsentativ verstanden werden. Bei einer Ausführungsform kann die Punktwolke aus einer Tiefenkarte oder anderen Informationen erzeugt werden (z. B. durch das Computersystem 101).
-
Bei einigen Ausführungsformen können die Raumstrukturinformationen ferner in irgendeinem geeigneten Format gespeichert werden, wie beispielsweise Polygon- oder Dreiecksnetzmodelle, Non-Uniform Rational Basis Spline-Modelle, CAD-Modelle, Parametrierung von Primitiven (z. B. kann ein Rechteck gemäß einem Zentrum und Erweiterungen in x-, y- und z-Richtung definiert werden, ein Zylinder kann durch ein Zentrum, eine Höhe, einen oberen und einen unteren Radius definiert werden usw.) usw.
-
Wie vorstehend angegeben, werden die Raumstrukturinformationen über die Raumstrukturerfassungskamera 151 erfasst oder anderweitig erzeugt. Bei einer Ausführungsform kann die Raumstrukturerfassungskamera 151 eine 3D-Kamera oder irgendeine andere 3D-Bilderfassungsvorrichtung sein oder diese umfassen. Die 3D-Kamera kann eine Tiefenmessungskamera sein, wie beispielsweise eine Time of Flight- (TOF) -Kamera oder eine Strukturlichtkamera oder jede andere Art von 3D-Kamera. In einigen Fällen kann die 3D-Kamera einen Bildsensor umfassen, wie beispielsweise einen ladungsgekoppelte Bauelemente- (CCDs) -Sensor und/oder einen komplementäre Metalloxidhalbleiter- (CMOS) -Sensor. Bei einer Ausführungsform kann die Raumstrukturerfassungskamera 151 Laser, eine LIDAR-Vorrichtung, eine Infrarotvorrichtung, einen Hell/Dunkel-Sensor, einen Bewegungssensor, einen Mikrowellendetektor, einen Ultraschalldetektor, einen RADAR-Detektor oder jede andere Vorrichtung umfassen, die zur Erfassung von Raumstrukturinformationen konfiguriert ist.
-
Wie vorstehend angegeben, kann die Objektkennungserfassungsvorrichtung 152 dazu konfiguriert sein, eine Objektkennung zu erfassen und erfasste Objektkennungsinformationen zu erzeugen, wie beispielsweise erfasste Barcodeinformationen, die einen Barcode beschreiben. Die erfassten Objektkennungsinformationen können z. B. einen Ort der Objektkennung (z. B. einen Barcodeort), in die Objektkennung codierte Informationen oder einige andere Objektkennungsinformationen beschreiben. Wenn die Objektkennungserfassungsvorrichtung 152 eine Barcodeerfassungsvorrichtung ist, kann die Barcodeerfassungsvorrichtung in einigen Fällen einen Laser oder eine Fotodiode umfassen, der bzw. die dazu konfiguriert ist, Licht oder ein anderes Signal in Richtung einer Region des Barcodes auszusenden, wie beispielsweise eine Region, die von einem dunklen Streifen oder einem dunklen Quadrat des Barcodes eingenommen wird, und sie kann einen Sensor umfassen, der dazu konfiguriert ist, eine von der Region reflektierte Lichtmenge oder ein anderes Signal zu messen. In einigen Fällen kann die Objektkennungserfassungsvorrichtung 152 wie in 1E dargestellt eine 2D-Kamera 153 umfassen. Die 2D-Kamera 153 kann z. B. eine Graustufenkamera oder eine Farbkamera umfassen. Die 2D-Kamera 153 kann dazu konfiguriert sein, 2D-Bildinformationen zu erfassen oder anderweitig zu erzeugen, die ein visuelles Erscheinungsbild einer Umgebung in einem Sichtfeld der 2D-Kamera 153 beschreiben oder anderweitig darstellen, einschließlich des Erscheinens eines Barcodes oder einer anderen Objektkennung (falls vorhanden) auf einem Objekt in dem Sichtfeld. Eine solche 2D-Kamera 153 kann z. B. auch einen Bildsensor umfassen, wie beispielsweise einen ladungsgekoppelte Bauelemente- (CCDs) -Sensor und/oder einen komplementäre Metalloxidhalbleiter- (CMOS) -Sensor. In einigen Fällen können die 2D-Bildinformationen mehrere Pixel umfassen, die ein 2D-Bild bilden. Jedes Pixel der 2D-Bildinformationen kann z. B. eine Intensität oder eine andere Eigenschaft von Licht darstellen, das von einem dem Pixel entsprechenden Ort reflektiert wird. In einigen Fällen kann die 2D-Kamera 153 eine Verarbeitungsschaltung umfassen, die dazu konfiguriert ist, den Barcode oder eine andere Objektkennung innerhalb des 2D-Bildes zu detektieren und basierend auf der Objektkennung erfasste Objektkennungsinformationen zu erzeugen. Wenn in einigen Fällen die Raumstrukturinformationen eine Tiefenkarte umfassen, die 2D-Bildinformationen aufweist, können die 2D-Bildinformationen von der 2D-Kamera 153 erzeugt sein.
-
Bei einer Ausführungsform können die Raumstrukturerfassungskamera 151 und die Objektkennungserfassungsvorrichtung 152 in eine einzelne Vorrichtung integriert sein. Sie können z. B. von einem einzelnen Gehäuse umschlossen sein und einen festen relativen Ort und eine relative Ausrichtung aufweisen. In einigen Fällen können sie eine einzelne Kommunikationsschnittstelle und/oder eine einzelne Stromversorgung teilen. Bei einer Ausführungsform können die Raumstrukturerfassungskamera 151 und die Objektkennungserfassungsvorrichtung 152 zwei getrennte Vorrichtungen sein, die am Roboter 161 angebracht oder anderweitig befestigt sind, wie beispielsweise an einem Roboterarm des Roboters 161, wie es nachstehend ausführlicher erörtert wird.
-
Wie vorstehend angegeben, können die Raumstrukturinformationen und/oder die erfassten Objektkennungsinformationen durch das Computersystem 101 verarbeitet werden. Das Computersystem 101 kann bei einer Ausführungsform einen Server (z. B. mit einem oder mehreren Server-Blades, Prozessoren usw.), einen Personal-Computer (z. B. einen Desktop-Computer, einen Laptop-Computer usw.), ein Smartphone, eine Tablet-Computervorrichtung und/oder ein anderes Computersystem umfassen oder als solches konfiguriert sein. Bei einer Ausführungsform kann ein Teil oder die gesamte Funktionalität des Computersystems 101 als Teil einer Cloud Computing-Plattform ausgeführt werden. Das Computersystem 101 kann eine einzelne Computervorrichtung (z. B. ein Desktop-Computer) sein oder mehrere Computervorrichtungen umfassen.
-
2A stellt ein Blockdiagramm bereit, das eine Ausführungsform des Computersystems 101 veranschaulicht. Das Computersystem 101 umfasst mindestens eine Verarbeitungsschaltung 110 und ein nicht-flüchtiges computerlesbares Medium (oder Medien) 120. Bei einer Ausführungsform umfasst die Verarbeitungsschaltung 110 einen oder mehrere Prozessoren, einen oder mehrere Verarbeitungskerne, eine programmierbare logische Steuerung („PLC“), eine anwendungsspezifische integrierte Schaltung („ASIC“), ein programmierbares Gate-Array („PGA“), ein feldprogrammierbares Gate-Array („FPGA“), eine beliebige Kombination davon oder irgendeine andere Verarbeitungsschaltung. Bei einer Ausführungsform kann das nicht flüchtige computerlesbare Medium 120 eine Speichervorrichtung sein, wie beispielsweise eine elektronische Speichervorrichtung, eine magnetische Speichervorrichtung, eine optische Speichervorrichtung, eine elektromagnetische Speichervorrichtung, eine Halbleiterspeichervorrichtung oder eine beliebige geeignete Kombination davon, z. B. eine Computerdiskette, eine Festplatte, ein Festkörperlaufwerk (SSD), einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren programmierbaren Festwertspeicher (EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Compact Disc-Festwertspeicher (CD-ROM), eine Digital Versatile Disk (DVD), einen Speicherstick, eine beliebige Kombination davon oder eine andere Speichervorrichtung. In einigen Fällen kann das nicht flüchtige computerlesbare Medium mehrere Speichervorrichtungen umfassen. In bestimmten Fällen ist das nicht-flüchtige computerlesbare Medium 120 dazu konfiguriert, Raumstrukturinformationen, die von der Raumstrukturerfassungskamera 151 erzeugt werden, und/oder erfasste Objektkennungsinformationen, die von der Objektkennungserfassungsvorrichtung 152 erzeugt werden, zu speichern. In bestimmten Fällen speichert das nicht flüchtige computerlesbare Medium 120 ferner computerlesbare Programmbefehle, die, wenn sie von der Verarbeitungsschaltung 110 ausgeführt werden, die Verarbeitungsschaltung 110 dazu veranlassen, eine oder mehrere hier beschriebene Methodiken auszuführen, wie beispielsweise die in 4 beschriebene Operation.
-
2B zeigt ein Computersystem 101A, das eine Ausführungsform des Computersystems 101 ist und eine Kommunikationsschnittstelle 130 umfasst. Die Kommunikationsschnittstelle 130 kann dazu konfiguriert sein, z. B. Raumstrukturinformationen, die von der Raumstrukturerfassungskamera 151 erzeugt werden, und/oder erfasste Objektkennungsinformationen (z. B. erfasste Barcodeinformationen) zu empfangen, die von der Objektkennungserfassungsvorrichtung 152 erzeugt werden, wie beispielsweise über die Speichervorrichtung 198 und/oder das Netzwerk 199 von 1D oder über eine direktere Verbindung von der Raumstrukturerfassungskamera 151 oder von der Objektkennungserfassungsvorrichtung 152. Bei einer Ausführungsform kann die Kommunikationsschnittstelle 130 dazu konfiguriert sein, mit dem Roboter 161 von 1B zu kommunizieren. Wenn das Computersystem 101 nicht Teil eines Robotersteuersystems ist, kann die Kommunikationsschnittstelle 130 des Computersystems 101 dazu konfiguriert sein, mit dem Robotersteuersystem zu kommunizieren. Die Kommunikationsschnittstelle 130 kann z.B. eine Kommunikationsschaltung umfassen, die dazu konfiguriert ist, die Kommunikation über ein verdrahtetes oder drahtloses Protokoll auszuführen. Die Kommunikationsschaltung kann als Beispiel einen RS-232-Port-Controller, einen USB-Controller, einen Ethernet-Controller, einen Bluetooth®-Controller, einen PCI-Bus-Controller, jede andere Kommunikationsschaltung oder eine Kombination davon umfassen.
-
Bei einer Ausführungsform kann die Verarbeitungsschaltung 110 durch einen oder mehrere computerlesbare Programmbefehle programmiert sein, die auf dem nicht-flüchtigen computerlesbaren Medium 120 gespeichert sind. 2C veranschaulicht beispielsweise ein Computersystem 101B, das eine Ausführungsform des Computersystems 101/101A ist, in dem die Verarbeitungsschaltung 110 durch ein oder mehrere Module einschließlich eines Behälterdetektionsmoduls, eines Objektdetektionsmoduls 204 und/oder eines Bewegungsplanungsmoduls 206 programmiert ist, die nachstehend ausführlicher erörtert werden.
-
Bei einer Ausführungsform kann das Behälterdetektionsmodul 202 dazu konfiguriert sein, einen Behälter, wie beispielsweise ein Schubfach, zu detektieren oder insbesondere Informationen darüber zu bestimmen, wie das Schubfach in einem 3D-Raum angeordnet ist, wie beispielsweise seine Ausrichtung und/oder Tiefe. Wie nachstehend ausführlicher erörtert, kann das Behälterdetektionsmodul 202 dazu konfiguriert sein, eine solche Bestimmung zumindest unter Verwendung der Raumstrukturinformationen vorzunehmen. In einigen Fällen kann das Behälterdetektionsmodul 202 bestimmen, wie ein bestimmter Teil des Schubfachs, wie beispielsweise seine untere Innenfläche, in einem 3D-Raum angeordnet ist. Bei einigen Implementierungen kann das Behälterdetektionsmodul 202 dazu konfiguriert sein, zu bestimmen, wie die untere Innenfläche in einem 3D-Raum angeordnet ist, basierend darauf, wie ein anderer Teil des Schubfachs, wie beispielsweise sein Rand, in einem 3D-Raum angeordnet ist.
-
Bei einer Ausführungsform kann das Objektdetektionsmodul 204 dazu konfiguriert sein, ein Objekt zu detektieren, das sich innerhalb des Behälters befindet, wie beispielsweise eine Ware, die sich auf der unteren Innenfläche des Schubfachs befindet, oder insbesondere zu bestimmen, wie das Objekt in einem 3D-Raum angeordnet ist, wie beispielsweise eine Ausrichtung und/oder Tiefe des Objekts. In einigen Fällen kann das Objektdetektionsmodul 204 eine solche Bestimmung basierend auf von dem Behälterdetektionsmodul 202 erzeugten Informationen bezüglich dem, wie das Schubfach oder ein anderer Behälter in einem 3D-Raum angeordnet ist, vornehmen. In einigen Fällen kann das Objektdetektionsmodul 204 dazu konfiguriert sein, erfasste Objektkennungsinformationen (z. B. erfasste Barcodeinformationen) zu verwenden, um das Objekt und/oder eine Größe des Objekts zu identifizieren, wie es nachstehend näher erörtert wird.
-
Bei einer Ausführungsform kann das Bewegungsplanungsmodul 206 dazu konfiguriert sein, eine Roboterbewegung zum Interagieren mit einem Behälter, zum Interagieren mit einem Objekt innerhalb des Behälters und/oder zum Bewegen der Raumstrukturerfassungskamera 151 und/oder der Objektkennungserfassungsvorrichtung 152 zu bestimmen. Die Roboterbewegung kann beispielsweise Teil eines Roboterbetriebs sein, um das Objekt zu greifen oder anderweitig aus dem Behälter aufzunehmen und das Objekt an einen anderen Ort zu bewegen. Die Roboterbewegung kann basierend auf Informationen bestimmt werden, die z. B. durch das Objektdetektionsmodul 204 bezüglich dem, wie das Objekt in einem 3D-Raum angeordnet ist, und/oder durch das Behälterdetektionsmodul 202 bezüglich dem, wie der Behälter in einem 3D-Raum angeordnet ist, erzeugt werden. Es versteht sich, dass die Funktionalität der Module, wie sie hierin erörtert sind, repräsentativ und nicht einschränkend ist.
-
Bei verschiedenen Ausführungsformen werden die Begriffe „computerlesbare Befehle“ und „computerlesbare Programmbefehle“ verwendet, um Softwarebefehle oder Computercode zu beschreiben, die bzw. der zur Ausführung verschiedener Aufgaben und Operationen konfiguriert sind/ist. Bei verschiedenen Ausführungsformen bezieht sich der Begriff „Modul“ allgemein auf eine Sammlung von Softwarebefehlen oder Code, die bzw. der dazu konfiguriert ist, die Verarbeitungsschaltung 110 dazu zu veranlassen, eine oder mehrere Funktionsaufgaben auszuführen. Die Module und computerlesbaren Befehle können derart beschrieben werden, dass sie verschiedene Operationen oder Aufgaben ausführen, wenn eine Verarbeitungsschaltung oder eine andere Hardwarekomponente die Module oder computerlesbaren Befehle ausführt. In einigen Fällen können die Module und computerlesbaren Befehle ein Verfahren zur Ausführung von Behälterdetektion implementieren und eine Roboterinteraktion basierend auf der Behälterdetektion planen.
-
Die 3A bis 3C veranschaulichen eine Umgebung, in der ein Verfahren zur Behälterdetektion und/oder Roboterinteraktion erfolgen kann. Insbesondere stellt 3A ein System 300 dar (das eine Ausführungsform des Systems 100/100A/100B/100C der 1A bis 1E sein kann), welches das Computersystem 101, einen Roboter 361 und eine Raumstrukturerfassungskamera 351 (die eine Ausführungsform der Raumstrukturerfassungskamera 151 sein kann) umfasst. Bei einer Ausführungsform kann der Roboter 361 eine Basis 362 und einen Roboterarm 363 umfassen. Die Basis 362 kann zum Anbringen des Roboters 361 verwendet werden, während der Roboterarm 363 zur Interaktion mit der Umgebung des Roboters 361 verwendet werden kann. Bei einer Ausführungsform kann der Roboterarm 363 mehrere Armabschnitte umfassen, die relativ zueinander beweglich sind. Zum Beispiel veranschaulicht 3A die Armabschnitte 363A, 363B, 363C und 363D, die relativ zueinander drehbar und/oder ausfahrbar sind. Der Roboterarm 363 kann beispielsweise einen oder mehrere Motoren oder andere Aktoren umfassen, die dazu konfiguriert sind, den Armabschnitt 363A relativ zur Basis 362, den Armabschnitt 363B relativ zu dem Armabschnitt 363A und den Armabschnitt 363C relativ zu dem Armabschnitt 363B zu drehen. In diesem Beispiel können die Armabschnitte 363A, 363B und 363C Glieder des Roboterarms 363 sein, während der Armabschnitt 363D ein Endeffektor, wie beispielsweise eine Roboterhand, sein kann. In einigen Fällen kann die Roboterhand einen Greifer umfassen, der dazu konfiguriert ist, ein Objekt zu greifen oder anderweitig aufzunehmen, sodass der Roboterarm 363 mit Objekten interagieren kann.
-
Bei der Ausführungsform von 3A kann die Raumstrukturerfassungskamera 351 am Roboter 361 oder insbesondere am Roboterarm 363 des Roboters 361 an einem Ort angebracht oder anderweitig befestigt sein, der Teil des Endeffektors 363D ist oder sich nahe an diesem befindet. Die Raumstrukturerfassungskamera 351 kann Teil eines Bildgebungssystems sein. In einigen Szenarien kann das Bildgebungssystem außerdem eine Objektkennungserfassungsvorrichtung umfassen, die nachstehend in Bezug auf 7A erörtert wird. In einigen Fällen kann die Objektkennungserfassungsvorrichtung auch am Roboterarm 363 angebracht sein, wie beispielsweise an einem Ort an oder nahe bei dem Endeffektor 363D.
-
Wie in 3A dargestellt, kann das System 300 ferner einen oder mehrere Behälter 384 umfassen, wie beispielsweise die Behälter 384A bis 384L. In einigen Szenarien können sich die Behälter 384A bis 384L in einem Warenlager oder in einem Verkaufsraum befinden und zur Aufnahme von Artikeln wie Waren oder anderen Objekten verwendet werden. In dem Beispiel von 3A können die Behälter 384A bis 384L in einem Schrank 380 untergebracht sein, der ein Gehäuse 381 bereitstellen kann, das die Behälter 384A bis 384L in einem Stapel anordnet. In diesem Beispiel können die Behälter 384A bis 384L jeweils ein Schubfach sein, das zwischen einer geschlossenen und einer geöffneten Position beweglich ist. Jeder der Behälter 384A bis 384L kann über eines oder mehrere Verbindungselemente an dem Schrank 380 befestigt sein. 3A veranschaulicht beispielsweise ein Paar Schienen 382A, 383A, die an einer inneren Fläche des Gehäuses 381 angebracht sind und die es ermöglichen, dass der Behälter 382A zwischen einer offenen und einer geschlossenen Position gleitet. In einigen Situationen kann mindestens einer der Behälter 384A bis 384L ein oder mehrere Objekte enthalten. Zum Beispiel kann der Behälter 384A die Objekte 371, 373 umfassen, die Waren in dem Warenlager oder Verkaufsraum sein können. Als Beispiel können die Objekte 371, 373 jeweils eine Kiste sein, die Artikel, wie beispielsweise zu versendende oder zu verkaufende Waren, ist oder enthält.
-
Wie vorstehend angegeben, kann die Raumstrukturerfassungskamera 351 (und/oder die Objektkennungserfassungsvorrichtung) eine an der Hand befindliche Kameravorrichtung sein, die am Roboterarm 363 angebracht oder anderweitig daran angeordnet ist. Diese Platzierung kann Flexibilität bezüglich des Orts und/oder der Ausrichtung der Raumstrukturerfassungskamera 351 (und/oder der Objektkennungserfassungsvorrichtung) ermöglichen. Anstatt die Raumstrukturerfassungskamera 351 (und/oder die Objektkennungserfassungsvorrichtung) an einem stationären Befestigungspunkt anzubringen, veranschaulichen die 3A bis 3C insbesondere eine Ausführungsform, bei welcher der Roboterarm 363 die Raumstrukturerfassungskamera 351 (und/oder die Objektkennungserfassungsvorrichtung) an verschiedene Orte und/oder Ausrichtungen bewegen kann. Eine solche Ausführungsform ermöglicht es beispielsweise, dass der Roboterarm 363 den Abstand zwischen einem Objekt, das erfasst wird, und der Raumstrukturerfassungskamera 351 (und/oder der Objektkennungserfassungsvorrichtung) anpasst, um einen Fokus- und/oder Auflösungsgrad der resultierenden Raumstrukturinformationen (und/oder der erfassten Objektkennungsinformationen) anzupassen.
-
3B veranschaulicht ferner eine Situation, in der sich die Behälter 384A bis 384L von 3A, wie beispielsweise der Behälter 384A, jeweils in einer geschlossenen Position befinden. Wenn sich der Behälter 384A in der geschlossenen Position befindet, kann sein Inhalt (z. B. die Objekte 371, 373) für den Roboter 361 oder insbesondere für den Roboterarm 363 unzugänglich sein. Eine innere Fläche (z. B. die untere Innenfläche) des Behälters 384A kann beispielsweise im Wesentlichen einer Umgebung außerhalb des Gehäuses 381 des Schranks 380 nicht ausgesetzt sein, wenn sich der Behälter 384A in der geschlossenen Position befindet. Ferner kann der Inhalt des Behälters 384A (z. B. die Objekte 371, 373) uneinsehbar sein. Insbesondere können sie gegenüber einem Kamerasichtfeld 353 der Raumstrukturerfassungskamera 351 (und/oder einem Sichtfeld der Objektkennungserfassungsvorrichtung) verdeckt sein. In einem solchen Beispiel kann sich ein äußerer Teil eines oder mehrerer Behälter, wie beispielsweise ein Griff des Behälters 384A, innerhalb des Kamerasichtfelds 353 befinden. Wie nachstehend ausführlicher erörtert, kann der Roboterarm 363 bei einigen Ausführungsformen dazu konfiguriert sein, den Griff von beispielsweise dem Behälter 384A zu greifen und zu ziehen, um den Behälter 384A (z. B. über die Schienen 382A, 383A von 3A) in eine geöffnete Position zu schieben.
-
3C stellt den Behälter 384A in einer geöffneten Position (auch als offene Position bezeichnet) dar. Wenn sich der Behälter 384A in der geöffneten Position befindet, ist sein Inhalt für den Roboter 361 oder insbesondere den Roboterarm 363 zugänglich. Zum Beispiel kann der Behälter 384A über die Schienen 382A, 383A an einen Ort geschoben werden, an dem ein Teil oder die Gesamtheit einer unteren Innenfläche des Behälters 382A einer Umgebung außerhalb des Gehäuses 381 des Schranks 380 ausgesetzt ist. In einer solchen Situation kann sich mindestens ein Teil der unteren Innenfläche in einem Kamerasichtfeld 353 der Raumstrukturerfassungskamera 351 (und/oder in einem Sichtfeld der Objektkennungserfassungsvorrichtung) befinden. Ferner kann sich der Inhalt des Behälters 384A, wie beispielsweise die auf der unteren Innenfläche des Behälters 384A angeordneten Objekte 371, 373, ebenfalls innerhalb des Kamerasichtfelds 353 befinden, wenn sich der Behälter 384A in der geöffneten Position befindet. Wie vorstehend angegeben, kann die Raumstrukturerfassungskamera 351 dazu konfiguriert sein, Raumstrukturinformationen zu erzeugen, die den Behälter 384A und/oder die darin enthaltenen Objekte 371, 373 beschreiben. Die Raumstrukturinformationen können verwendet werden, um eine Pose der Objekte 371, 373 zu detektieren und die Interaktion zwischen dem Roboterarm 363 und den Objekten 371, 373 zu erleichtern, wie beispielsweise eine Interaktion, bei welcher der Endeffektor 363D des Roboterarms 363 die Objekte 371, 373 aufnimmt und sie von dem Behälter 384A wegbewegt.
-
3D stellt eine Ansicht des Behälters 384A der 3A bis 3C bereit. Wie in 3D veranschaulicht, kann der Behälter 384A bei einer Ausführungsform eine Fläche 384A-1 (auch als Behälterfläche 384A-1 bezeichnet) aufweisen, auf der ein oder mehrere Objekte, wie beispielsweise die Objekte 371, 373, innerhalb des Behälters 384A angeordnet sind. Die Behälterfläche 384A-1 kann beispielsweise eine untere Innenfläche des Behälters 384A sein. Bei einer Ausführungsform kann der Behälter 384A einen Rand 384A-2 (auch als Behälterrand 384A-2 bezeichnet) aufweisen, der zu der Behälterfläche 384A-1 versetzt ist. Der Behälterrand 384A-2 kann durch eine oder mehrere Seitenwände 384A-3, 384A-4 und 384A-5 gebildet sein, die jeweils eine gemeinsame Höhe h (wie in 3D dargestellt) oder unterschiedliche entsprechende Höhen aufweisen können. In diesem Beispiel kann der Behälterrand 384A-2 eine obere Fläche der einen oder der mehreren Seitenwände 384A-3, 384A-4 und 384A-5 umfassen. Der Behälterrand 384A-2 und die Behälterfläche 384A-1 können durch einen Abstand getrennt sein, der gleich der Höhe h ist oder darauf basiert, was ein bekannter Wert sein kann, den zu empfangen oder zu bestimmen das Computersystem 101 konfiguriert ist. In einigen Fällen kann das Computersystem 101 der 3A bis 3C Informationen bestimmen, welche die Behälterfläche 384A-1 und/oder den Behälterrand 384A-2 beschreiben, und diese Informationen verwenden, um zusätzliche Informationen zu bestimmen, die ein oder mehrere Objekte (z. B. 371, 373) beschreiben, die innerhalb des Behälters 384A angeordnet sind, wie es nachstehend ausführlicher erörtert wird. Wie in 3D ferner dargestellt, kann der Behälter 384A in einigen Fällen einen Griff 384A-6 umfassen. Das Computersystem 101 kann bei einigen Ausführungsformen dazu konfiguriert sein, den Roboterarm 363 (der 3A bis 3C) dazu zu veranlassen, den Behälter 384A durch Ziehen an dem Griff 384A-6 oder durch anderweitiges Interagieren damit in eine geöffnete Position zu bewegen.
-
4 zeigt ein Flussdiagramm für ein Verfahren 400 zur Erleichterung einer Roboterinteraktion mit einem Objekt, das in einem Behälter enthalten ist. Das Verfahren 400 kann das Bestimmen von Informationen beinhalten, die beschreiben, wie das Objekt im Raum angeordnet ist, sodass ein Roboter sich in geeigneter Weise bewegen kann, um das Objekt beispielsweise zu greifen. In einem Beispiel können die Informationen eine Pose des Objekts (auch als Objektpose bezeichnet) beschreiben, die mindestens eines von einem Ausrichtungs- oder Tiefenwert für das Objekt (z. B. relativ zu der Raumstrukturerfassungskamera 351 der 3A bis 3C) beschreiben können. Wie nachstehend ausführlicher erörtert, kann das Verfahren 400 basierend auf Informationen, die beschreiben, wie der Behälter (z. B. 384A) im Raum angeordnet ist, bestimmen, wie das Objekt im Raum angeordnet ist. Bei einer Ausführungsform kann das Verfahren 400 von dem Computersystem 101 oder insbesondere von der Verarbeitungsschaltung 110 ausgeführt werden. In einigen Fällen kann das Verfahren 400 ausgeführt werden, wenn die Verarbeitungsschaltung 110 Befehle ausführt, die auf dem nicht-flüchtigen computerlesbaren Medium 120 der 2A bis 2C gespeichert sind.
-
Bei einer Ausführungsform kann das Verfahren 400 in einem Szenario beginnen, in dem sich ein Behälter (z. B. 384A) in einer geschlossenen Position befindet, und es kann beinhalten, dass das Computersystem 101 einen Roboter (z. B. 361) steuert, um den Behälter in eine geöffnete Position zu bewegen, wie es nachstehend ausführlicher erörtert wird. Eine solche Bewegung kann beispielsweise beinhalten, dass der Behälter 384A auf den Schienen 382A, 383A verschoben wird, die in den 3A und 3C veranschaulicht sind. Wie unter Bezugnahme auf die 3A und 3C erörtert, können die Schienen 382A, 383A bei einer Ausführungsform an einer inneren Seitenfläche des Gehäuses 381, in dem der Behälter 384A untergebracht ist, befestigt sein und sie können es ermöglichen, dass der Behälter 384A in das Gehäuse 381 hinein und daraus heraus gleitet.
-
Bei einer Ausführungsform kann das Verfahren 400 in einem Szenario beginnen, in dem sich der Behälter (z. B. 384A) in einer geöffneten Position befindet oder bereits in einer geöffneten Position befand, wie es in den 3C und 5A veranschaulicht ist. Ähnlich dem Beispiel in 3C enthält der Behälter 384A in 5A die Objekte 371 und 373, die innerhalb des Behälters 384A angeordnet sind, und insbesondere auf einer Behälterfläche 384A-1 des Behälters 384A angeordnet sind. Da sich der Behälter 384A in der geöffneten Position befindet, können sich die Objekte 371, 373 innerhalb des Behälters 384A innerhalb des Kamerasichtfelds 353 der Raumstrukturerfassungskamera 351 befinden.
-
Bei einer Ausführungsform kann das Verfahren 400 einen Schritt 402 umfassen, in dem das Computersystem 101 von einer Raumstrukturerfassungskamera (z. B. 351 von 5A) erzeugte Raumstrukturinformationen empfängt. Die Raumstrukturinformationen können Tiefeninformationen für eine Umgebung in dem Kamerasichtfeld 353 umfassen. Insbesondere können die Raumstrukturinformationen beschreiben, wie verschiedene Strukturen in dem Kamerasichtfeld 353 räumlich angeordnet sind (d. h., wie sie im Raum angeordnet sind). Die verschiedenen Strukturen können beispielsweise den Behälter 384A und die innerhalb des Behälters 384A angeordneten Objekte 371, 373 umfassen.
-
Bei einer Ausführungsform können die Raumstrukturinformationen verwendet werden, um die Neigung von einer oder mehreren Strukturen oder insbesondere einen Neigungsgrad und/oder eine Neigungsausrichtung zu detektieren. Insbesondere kann der Behälter 384A ein oder mehrere Verbindungselemente aufweisen, wie beispielsweise die Schienen 382A, 383A, die den Behälter 384A an einem Gehäuse 381 befestigen. Während der Behälter 384A in die geöffnete Position bewegt wird, kann er relativ zu dem einen oder den mehreren Gliedern und relativ zu dem Gehäuse 381 nach unten geneigt werden. Während der Behälter 384A entlang der Schienen 382A, 383A in 5A von einer geschlossenen Position in eine geöffnete Position gleitet, kann das Gewicht des Behälters 384A bewirken, dass er relativ zu den Schienen 382A, 383A nach unten geneigt wird. Ein Beispiel für das Neigen ist in 5B veranschaulicht. Insbesondere stellt 5B eine Achse 582 dar, die eine Ausrichtung der Schienen 383A, 383A von 5A darstellt und insbesondere parallel zu den Schienen 382A, 383A verläuft. Die Figur stellt ferner eine weitere Achse 582P dar, die senkrecht zu der Achse 582 verläuft. In einigen Fällen kann die Achse 582P parallel zu einer vertikalen Wand eines Gehäuses 381 für den Schrank 380 sein. 5B stellt ferner eine Achse 584 und eine Achse 584P dar, die beide eine Ausrichtung des Behälters 384A darstellen können. Insbesondere kann die Achse 584 parallel zu dem Behälter 384A oder insbesondere parallel zu der Behälterfläche 384A-1 sein. Die Achse 584P kann eine Hochachse für die Behälterfläche 384A-1 sein und kann senkrecht zu der Achse 584 sein. Wenn sich der Behälter 384A in der geschlossenen Position befindet, kann die mit dem Behälter 384 verbundene Achse 584 parallel zu der Achse 582 sein, die mit den Schienen 382A, 383A verbunden ist. Ferner kann die Achse 584P parallel zu der Achse 582P sein. Wie vorstehend erörtert, kann der Behälter 384A, wenn der Behälter 384A von der geschlossenen in die geöffnete Position gleitet, sich nach unten neigen, was bewirkt, dass die mit dem Behälter 384A verbundene Achse 584 von der Achse 582 abweicht und die Hochachse 584P von der Achse 582P abweicht, wie es in 5B dargestellt ist. Die Achse 584 kann mit anderen Worten schräg zur Achse 582 werden, und die Achse 584P kann schräg zur Achse 582P werden.
-
Bei einer Ausführungsform kann das Neigen des Behälters 384A bewirken, dass der Behälter 384A und jedes Objekt (z. B. Objekt 371 oder 373) innerhalb des Behälters 384A in der Tiefe und/oder Ausrichtung relativ zu beispielsweise dem Roboterarm 363 und/oder der Raumstrukturerfassungskamera 351 der 3A bis 3C verschoben werden. Wenn der Behälter 384 in der geöffneten Position beispielsweise nicht nach unten geneigt ist, können die Objekte 371, 373 einen ersten Tiefenwert und eine erste Ausrichtung relativ zu der Raumstrukturerfassungskamera 351 und/oder dem Roboterarm 363 aufweisen. Das Neigen des Behälters 384A kann bewirken, dass die Objekte 371, 373 einen zweiten Tiefenwert und eine zweite Ausrichtung relativ zu der Raumstrukturerfassungskamera 351 und/oder dem Roboterarm 363 aufweisen. In einigen Fällen kann der zweite Tiefenwert um nur einige Millimeter größer sein als der erste Tiefenwert und die zweite Ausrichtung kann sich von der ersten Ausrichtung nur um einige Grad oder einen Bruchteil eines Grads unterscheiden, aber ein solcher Unterschied kann ausreichend sein, um eine Fähigkeit des Roboterarms 363, die Objekte 371, 373 zu greifen oder anderweitig damit in einer genauen Weise zu interagieren, zu beeinflussen, insbesondere wenn das Computersystem 101 annimmt, dass die Objekte 371, 373 entsprechend dem ersten Tiefenwert oder der ersten Ausrichtung im Raum angeordnet sind. Ferner muss das Computersystem 101 möglicherweise mit einer Genauigkeit im Millimeterbereich oder besser bestimmen, wie die Objekte 371, 373 im Raum angeordnet sind, um eine korrekte Interaktion zwischen dem Roboter 361 der 3A bis 3C und den Objekten 371, 373 zu sicherzustellen.
-
In einigen Fällen kann es schwierig sein, einen Betrag oder eine Auswirkung der Neigung mit einer Genauigkeit im Millimeterbereich vorherzusagen, da es mehrere Freiheitsgrade für den Behälter (z. B. 384A) geben kann, während er sich von der geschlossenen Position in die geöffnete Position bewegt. Daher betrifft ein Aspekt der vorliegenden Anmeldung die Verwendung von Raumstrukturinformationen, wie diejenigen, die in Schritt 402 von Verfahren 400 empfangen werden, um zu bestimmen, wie ein Objekt (z. B. 371/373) im Raum angeordnet ist, um eine Fähigkeit zu unterstützen, den Roboterarm 363 derart zu steuern, dass er mit dem Objekt (z. B. 371/373) korrekt interagiert.
-
Wie vorstehend angegeben, können die Raumstrukturinformationen von Schritt 402 Tiefeninformationen für die Umgebung im Kamerasichtfeld (z. B. 353) umfassen. Die Tiefeninformationen können einen oder mehrere Tiefenwerte umfassen, von denen jeder eine Tiefe eines bestimmten Orts in dem Kamerasichtfeld 353 relativ zur Raumstrukturerfassungskamera (z. B. 351) oder relativ zu einem anderen Bezugspunkt oder Bezugsrahmen angeben kann. In einigen Fällen kann der mit dem Tiefenwert verbundene Ort ein Ort auf einer Fläche einer Struktur in dem Kamerasichtfeld 353 sein. 5C veranschaulicht beispielsweise Tiefeninformationen, welche die Tiefenwerte dObjektA, Ort1; dRand, Ort1; dFiäche, Ort1; und dBoden, Ort1 umfassen. In diesem Beispiel kann der Tiefenwert dObjektA, Ort1 einen Tiefenwert für einen Ort an dem Objekt 371 relativ zu der Raumstrukturerfassungskamera 351 oder insbesondere relativ zu einer Bildebene 354 angeben, die von einem Bildsensor oder einem anderen Sensor der Raumstrukturerfassungskamera 351 gebildet wird. Insbesondere kann der Tiefenwert dObjektA, Ort1 einen Abstand zwischen dem Ort an dem Objekt 371 (z. B. auf einer Fläche des Objekts 371) und der Bildebene 354 angeben. Dieser Abstand kann entlang einer Achse senkrecht zur Bildebene 354 gemessen werden. Bei einer Ausführungsform können die Tiefeninformationen einen oder mehrere entsprechende Tiefenwerte für einen oder mehrere Teile des Behälters umfassen, wie beispielsweise die Behälterfläche 384A-1 und den Behälterrand 384A-2. Der Tiefenwert dFläche, Ort1 kann beispielsweise einen Tiefenwert für die Behälterfläche 384A-1 oder insbesondere für einen Ort auf der Behälterfläche 384A-1 angeben. Der Tiefenwert dRand, Ort1 kann einen Tiefenwert für den Behälterrand 384A-2 relativ zu der Bildebene 354 oder insbesondere für einen Ort an dem Behälterrand 384A-2 angeben. Zusätzlich kann der Tiefenwert dBoden, Ort1 einen Tiefenwert für einen Boden oder eine andere Fläche, auf der das Gehäuse 381 des Schranks 380 angeordnet ist, oder insbesondere für einen Ort auf dem Boden angeben.
-
6A stellt eine Darstellung der in Schritt 402 erhaltenen Raumstrukturinformationen dar. In diesem Beispiel können die Raumstrukturinformationen entsprechend mehrere Tiefenwerte für mehrere Orte in einem Kamerasichtfeld (z. B. 353) umfassen oder identifizieren. Insbesondere veranschaulicht die Figur verschiedene Sätze 610-660 von Orten (auch als Punkte bezeichnet), für welche die Raumstrukturinformationen entsprechende Tiefenwerte identifizieren. Der Satz 610 von Orten (als gestreifte Sechsecke gekennzeichnet) kann einem Boden oder einer anderen Fläche entsprechen, auf der das Gehäuse 381 von 5C angeordnet ist. Der Satz 610 kann beispielsweise die Position 6101 umfassen, die dem Tiefenwert dBoden, Ort1 von 5C entsprechen kann. Der Satz 620 von Orten (als weiße Kreise gekennzeichnet) kann zu der Fläche 384A-1 des Behälters 384A (z. B. untere Innenfläche) gehören. Zum Beispiel kann der Satz 620 den Ort 6201 umfassen, der dem Tiefenwert dFläche, Ort1 von 5C entsprechen kann. Der Satz 630 von Orten (als dunkle Kreise gekennzeichnet) kann zum Behälterrand 384A-2 gehören. Zum Beispiel kann der Satz 630 den Ort 6301 umfassen, der dem Tiefenwert dRand, Ort1 von 5C entsprechen kann. Der Satz 640 von Orten (als dunkle Ellipsen gekennzeichnet) kann zu dem Griff 384A-6 des Behälters 384A gehören. Ferner kann der Satz 650 von Orten (als schattierte Rechtecke gekennzeichnet) zu dem Objekt 371 von 5C gehören. Zum Beispiel kann der Satz 650 den Ort 6501 umfassen, der dem Tiefenwert dObjektA, Ort1 von 5C entsprechen kann. Zusätzlich kann der Satz 660 von Orten (als weiße Rechtecke gekennzeichnet) zu dem Objekt 373 von 5C gehören.
-
Bei einer Ausführungsform können die Raumstrukturinformationen eine Tiefenkarte und/oder eine Punktwolke umfassen. Die Punktwolke kann z. B. entsprechende Koordinaten von Orten auf einer oder mehreren Strukturen im Kamerasichtfeld (z. B. 353) der Raumstrukturerfassungskamera (z. B. 351) umfassen. Die Punktwolke kann beispielsweise 3D-Koordinaten umfassen, wie beispielsweise [x y z]-Koordinaten in einem Bezugsrahmen (z. B. Koordinatensystem) der Raumstrukturerfassungskamera oder einem anderen Bezugsrahmen. In einem solchen Beispiel kann eine Koordinate für einen Ort einen Tiefenwert für diesen Ort angeben. Der Tiefenwert für den Ort kann beispielsweise gleich einer z-Komponente der Koordinate sein oder darauf basieren.
-
Bei einer Ausführungsform können die Raumstrukturinformationen durch Messfehler oder andere Fehler beeinflusst werden oder diese umfassen. Der Ort 6501 kann beispielsweise einen Tiefenwert aufweisen, der gleich dObjektA, Ort1 ist, aber die Punktwolke oder andere Raumstrukturinformationen können angeben, dass der Ort 6501 an Objekt 371 eine [x y z]-Koordinate aufweist, wobei z = dObjektA, Ort1+ εObjektA, Ort1ist, wobei sich εObjektA, Ort1 auf einen Fehler bezieht, der mit dem Ort 6501 verbunden ist. In dieser Situation können die Raumstrukturinformationen fälschlicherweise angeben, dass der Ort 6501 den Tiefenwert dObjektA, Ort1 + εObjektA, Ort1 aufweist. Der Fehler kann z. B. auf Bildrauschen oder eine andere Fehlerquelle zurückzuführen sein. Der Fehler kann auf einer Vielzahl von Faktoren basieren. In einigen Fällen kann das Objekt 371 oder eine andere Struktur eine Form aufweisen, die eine Wirkungsweise der Raumstrukturerfassungskamera (z. B. 351) stört. In einigen Fällen kann das Objekt 371 aus einem Material (z. B. transparentes oder durchscheinendes Material) gebildet sein, das die Wirkungsweise der Raumstrukturerfassungskamera stört. In einigen Fällen kann Licht oder können andere Signale von einem anderen Objekt 373 (von 5C) oder einer Innenfläche des Behälters 384A reflektiert werden, und ein solches von dem anderen Objekt 373 reflektiertes Signal kann als Bildrauschen wirken, das eine Fähigkeit der Raumstrukturerfassungskamera (z. B. 351) stört, einen Tiefenwert für das Objekt 371 genau zu messen.
-
6B stellt Beispiele für Orte (dargestellt durch schattierte Dreiecke) bereit, die einem Teil der Raumstrukturinformationen entsprechen, die im Wesentlichen durch Rauschen oder andere Fehlerquellen beeinflusst werden. Im Beispiel von 6B können die Orte 6202 bis 6205 des Satzes 620 von Orten (die der Behälterfläche 384A-1 entsprechen) im Wesentlichen durch Rauschen beeinflusst werden, und die diesen Orten entsprechenden Raumstrukturinformationen können eine erhebliche Menge an Fehlern umfassen. Ferner können die Orte 6501 bis 6503 des Satzes 650 von Orten (die dem Objekt 371 entsprechen) und die Orte 6601 bis 6603 des Satzes 660 von Orten (die dem Objekt 373 entsprechen) im Wesentlichen durch Rauschen beeinflusst werden und die diesen Orten entsprechenden Raumstrukturinformationen können ebenfalls eine erhebliche Menge an Fehlern umfassen. In einem solchen Beispiel kann das Bestimmen, wie das Objekt 371 oder das Objekt 373 im Raum angeordnet sind, durch direktes Verwenden der Raumstrukturinformation für den Satz 650 von Orten oder den Satz 660 von Orten zu einem ungenauen oder anderweitig unzuverlässigen Ergebnis führen, da ein wesentlicher Prozentsatz dieser Orte durch Lärm oder andere Fehlerquellen beeinflusst sein kann. Daher betrifft ein Aspekt der vorliegenden Offenbarung das Bestimmen, wie der Behälter (z. B. 384A) im Raum angeordnet ist, und das Bestimmen, wie ein Objekt (z. B. 371/373) innerhalb des Behälters (z. B. 384A) im Raum angeordnet ist, basierend darauf, wie der Behälter im Raum angeordnet ist.
-
Unter erneuter Bezugnahme auf 4 kann das Verfahren 400 bei einer Ausführungsform einen Schritt 404 umfassen, in dem das Computersystem 101 eine Behälterpose basierend auf den Raumstrukturinformationen bestimmt. Bei einigen Implementierungen kann Schritt 404 durch das Behälterdetektionsmodul 202 von 2C ausgeführt werden. Bei einer Ausführungsform kann sich die Behälterpose auf eine Pose eines Behälters, wie beispielsweise des Behälters 384A, beziehen und kann verwendet werden, um mindestens eines von einer Ausrichtung des Behälters (z. B. 384A) oder einem Tiefenwert für mindestens einen Teil des Behälters (z. B. 384A) zu beschreiben. In einigen Fällen kann sich der Teil des Behälters (z. B. 384A) auf eine Komponente des Behälters beziehen, wie beispielsweise den Behälterrand (z. B. 384A-2) oder die Behälterfläche (z. B. 384A-1). In einigen Fällen kann sich der Teil des Behälters (z. B. 384A) auf eine Region an dem Behälter oder allgemeiner auf einen Ort (z. B. 6201 oder 6301 von 6A) auf einer Behälterfläche beziehen, wie beispielsweise die Behälterfläche (z. B. 384A-1), auf welcher der Behälterinhalt abgelegt wird, oder eine Fläche des Behälterrands (z. B. 384A-2).
-
In einigen Fällen kann die Behälterpose eine Position oder Anordnung des Behälters (z. B. 384A) oder allgemeiner, wie der Behälter (z. B. 384A) in einem 3D-Raum angeordnet ist, beschreiben. Beispielsweise kann die Behälterpose eine Ausrichtung des Behälters (z. B. 384A) beschreiben, die einen Betrag (falls vorhanden) beschreiben kann, um den sich der Behälter (z. B. 384) oder ein Teil davon nach unten neigt. Wie vorstehend angegeben, kann die Behälterpose einen Tiefenwert beschreiben, der z. B. angeben kann, wie weit der Behälter (z. B. 384A) oder ein Teil davon von der Raumstrukturerfassungskamera (z. B. 351 der 3A bis 3C) oder von einem Roboterarm (z. B. 363) oder einem anderen Teil eines Roboters (z. B. 361) entfernt ist.
-
In einigen Fällen kann die Behälterpose sowohl eine Ausrichtung des Behälters als auch einen Tiefenwert für einen Ort (z. B. 6201 oder 6301 ) an dem Behälter (z. B. 384A) beschreiben. Der Tiefenwert kann beispielsweise gleich einer Komponente einer 3D-Koordinate für diesen Ort sein oder diese angeben. Die 3D-Koordinate kann beispielsweise eine [x y z]-Koordinate sein, die eine 2D-Komponente oder eine 2D-Koordinate (z. B. eine [x y]-Koordinate) und eine Tiefenkomponente (z. B. eine z-Komponente oder eine z-Koordinate) umfasst. Die z-Komponente oder z-Koordinate kann gleich dem Tiefenwert für diesen Ort sein oder darauf basieren relativ zu der Raumstrukturerfassungskamera (z. B. 351) oder einem anderen Bezugsrahmen. In einem solchen Beispiel kann die Behälterpose sowohl eine Ausrichtung des Behälters als auch eine 3D-Koordinate für einen Ort an dem Behälter beschreiben.
-
Bei einer Ausführungsform kann die in Schritt 404 bestimmte Behälterpose eine Behälterflächenpose sein, die eine Pose einer Behälterfläche (z. B. 384A-1) sein kann. Die Behälterfläche kann z. B. eine untere Innenfläche oder eine andere Fläche sein, auf der ein Objekt oder ein anderer Inhalt des Behälters (z. B. 384A) innerhalb des Behälters angeordnet ist. Die Behälterflächenpose kann z. B. mindestens eines beschreiben von: einer Ausrichtung der Behälterfläche (z. B. 384A-1) oder einem Tiefenwert für mindestens einen Ort (z. B. 6201 ) von oder an der Behälterfläche (z. B. 384A-1).
-
Bei einer Ausführungsform kann das Bestimmen der Behälterflächenpose das direkte Verwenden eines Teils der Raumstrukturinformationen beinhalten, die Orten auf der Behälterfläche (z. B. 384A-1) entsprechen. Das Computersystem 101 kann beispielsweise bei einer Ausführungsform die Behälterflächenpose direkt basierend auf Raumstrukturinformationen bestimmen, die dem Satz 620 von Orten von 6B entsprechen, welche die Orte 6201 bis 620n umfassen können. Die entsprechenden Raumstrukturinformationen können z.B. entsprechende Tiefenwerte für die Orte 6201 bis 620n umfassen. In einigen Fällen kann das Computersystem 101 dazu konfiguriert sein, die Orte 6201 bis 620n als zu der Behälterfläche (z. B. 384A-1) gehörend oder allgemeiner als zu einer gemeinsamen Schicht gehörend zu identifizieren, um diese Orte von den Orten zu unterscheiden, die andere Schichten in einem Kamerasichtfeld (z. B. 353) darstellen. Das Computersystem 101 kann beispielsweise dazu konfiguriert sein, die Orte 6201 bis 620n als Orte mit entsprechenden Tiefenwerten zu identifizieren, die im Wesentlichen kontinuierlich sind und keine starke Diskontinuität untereinander aufweisen. In einigen Fällen kann das Computersystem 101 bei dieser Ausführungsform die Behälterflächenpose bestimmen, indem es eine Ebene bestimmt, die am besten durch alle oder einige der Orte 6201 bis 620n passt. Das Computersystem 101 kann eine Ausrichtung für die Behälterfläche (z. B. 384A-1) als gleich einer oder basierend auf einer Eigenschaft der Ebene bestimmen, wie beispielsweise ihre Neigung oder ihr Normalenvektor. In einigen Fällen kann das Computersystem 101 einen Tiefenwert für einen Ort auf der Behälterfläche (z. B. 384A-1) direkt basierend auf den Raumstrukturinformationen abschätzen oder anderweitig bestimmen. Wenn die Raumstrukturinformationen beispielsweise eine 3D-Koordinate für diesen Ort bereitstellen, wie beispielsweise eine [x y z]-Koordinate, kann der Tiefenwert gleich einer z-Komponente der 3D-Koordinate sein oder darauf basieren. In einigen Fällen kann das Computersystem 101 die Ebene verwenden, um einen Tiefenwert für einen Ort auf der Behälterfläche (z. B. 384A-1) abzuschätzen, da dieser Ort auf die Ebene fallen oder sich im Wesentlichen nahe an der Ebene befinden kann. Wenn das Computersystem 101 beispielsweise eine 2D-Komponente (z. B. eine [x y]-Komponente) für einen Ort auf der Behälterfläche (z. B. 384A-1) empfängt, kann es dazu konfiguriert sein, eine 3D-Koordinate zu bestimmen, die zu der Ebene gehört, die auch die 2D-Komponente aufweist. In einem solchen Beispiel kann die 3D-Koordinate auf der Ebene den Ort auf der Behälterfläche (z. B. 384A-1) angeben oder annähern. Daher kann eine z-Komponente der 3D-Koordinate auf der Ebene einem Tiefenwert für den Ort auf der Behälterfläche (z. B. 384A-1) entsprechen oder diesen annähern.
-
Bei einer Ausführungsform kann das Bestimmen der Behälterflächenpose das indirekte Verwenden von Raumstrukturinformationen, die einem anderen Teil des Behälters entsprechen (z. B. 384A), wie beispielsweise Raumstrukturinformationen, die dem Behälterrand (z. B. 384A-2) entsprechen, beinhalten. Insbesondere kann eine Ausführungsform von Schritt 404 das Bestimmen einer Behälterrandpose und das Bestimmen der Behälterflächenpose basierend auf der Behälterrandpose beinhalten. Die Behälterrandpose kann mindestens eines beschreiben von einer Ausrichtung des Behälterrands (z. B. 384A-2) oder einen Tiefenwert für mindestens einen Ort (z. B. 6301 ) auf dem Behälterrand (z. B. 384A-2).
-
In einigen Fällen kann das Bestimmen der Behälterflächenpose basierend auf der Behälterrandpose eine Bestimmung bereitstellen, die robuster gegenüber Rauschen oder anderen Fehlerquellen ist. Insbesondere kann Rauschen nicht nur Orte (z. B. 6501 bis 6503 ) an einem Objekt (z. B. 371), das in einem Behälter (z. B. 384) angeordnet ist, sondern auch Orte auf der Behälterfläche (z. B. 384A-1), auf der das Objekt angeordnet ist, beeinflussen. Daher können Tiefeninformationen oder andere Raumstrukturinformationen, die diesen Orten entsprechen, unzuverlässig sein. Zum Beispiel veranschaulicht 6C ein Szenario, in dem die Orte 6202 , 6203 , 6204 , 6205 , 6206 , 6207 , 6208 , 6209 , 62010 , ... 620k auf der Behälterfläche 384A-1 (die ein Teilsatz aller durch die Raumstrukturinformationen identifizierten Orte 6201 bis 620n sein können) durch Bildrauschen beeinflusst werden, was Fehler in einen entsprechenden Teil der Raumstrukturinformationen für diese Orte und insbesondere Fehler in die Tiefeninformationen für diese Orte einführen kann. Während 6B auch ein Beispiel mit Rauschen (an den Orten 6202 bis 6206 ) veranschaulicht, veranschaulicht 6C ein Beispiel für eine wesentlich geräuschvollere Umgebung an der Behälterfläche 384A-1. Im Beispiel von 6C können die von Rauschen beeinflussten Orte (6202 bis 620k ) ein großer Prozentsatz aller Orte (6201 bis 620n ) sein, für die Raumstrukturinformationen verfügbar sind. Das Rauschen kann z. B. durch das Vorhandensein von Signalen entstehen, die von der Behälterfläche (z. B. 384A-1) oder von einem Objekt (z. B. 371/373) auf der Behälterfläche (z. B. 384A-1) reflektiert werden, wobei sich die reflektierten Signale gegenseitig stören und die direkte Messung von Tiefenwerten für Orte auf der Behälterfläche (z. B. 384A-1) stören können.
-
In einigen Fällen kann auch ein überfüllter Behälter (d. h., ein Behälter, der eine Anzahl an Objekten umfasst, welche die Behälterfläche verdecken können) die direkte Messung von Tiefenwerten für Orte auf der Behälterfläche (z. B. 384A-1) stören. 6D stellt beispielsweise ein Szenario dar, in dem viele Objekte, wie beispielsweise die Objekte 371 bis 375, auf der Behälterfläche 384A-1 angeordnet sind. Die Objekte 371 bis 375 können einen großen Teil der Behälterfläche 384A-1 abdecken. Insbesondere veranschaulicht 6E Raumstrukturinformationen für das in 6D dargestellte Beispiel. Wie in 6E dargestellt, können die Objekte 371 bis 375 die Regionen 652 bis 692 auf der Behälterfläche 384A-1 abdecken oder anderweitig einnehmen. Obwohl einige Teile der Behälterfläche 384A-1 nicht von den Objekten 371 bis 375 abgedeckt sind, können diese Teile dennoch durch Rauschen beeinflusst werden, wodurch die Möglichkeit eingeschränkt wird, die Raumstrukturerfassungskamera 371 zu verwenden, um direkt genaue Tiefenmessungen für die Behälterfläche 384A-1 durchzuführen.
-
Daher betrifft ein Aspekt der vorliegenden Offenbarung die Verwendung von Raumstrukturinformationen, die einem anderen Teil des Behälters entsprechen, wie beispielsweise dem Behälterrand (z. B. 384A-2), um indirekt Informationen über die Behälterfläche (z. B. 384A-1) zu bestimmen. Bei einer Ausführungsform kann das Computersystem 101 wie vorstehend angegeben eine Behälterrandpose bestimmen und die Behälterrandpose zum Bestimmen der Behälterflächenpose verwenden. Der Behälterrand (z. B. 384A-2) kann in einigen Fällen weniger durch Rauschen oder Messfehlerquellen beeinflusst sein. Das heißt, diese Messfehlerquellen können die direkte Messung der Behälterfläche (z. B. 384A-1) oder von auf der Behälterfläche angeordneten Objekten (z. B. 384A-1) beeinflussen. Der Behälterrand (z. B. 384A-2) kann jedoch von der Behälterfläche (z. B. 384A-1) um eine oder mehrere Seitenwände des Behälters (z. B. die Seitenwände 384A-3 bis 384A-5 in 3D) versetzt sein, die eine Höhe h aufweisen können, die bewirkt, dass sich der Behälterrand (z. B. 384A-2) vollständig über den Objekten (z. B. 371, 373) befindet. Daher kann der Behälterrand (z. B. 384A-2) wesentlich weniger von den Messfehlerquellen beeinflusst sein und die direkte Tiefenmessung des Behälterrands (z. B. 384A-2) kann beträchtlich genauer sein als die direkte Tiefenmessung der Behälterfläche (z. B. 384A-1).
-
Bei einer Ausführungsform kann die direkte Messung des Behälterrands (z. B. 384A-2) Raumstrukturinformationen umfassen, die Orte an dem Behälterrand (z. B. 384A-2) entsprechen, und die Behälterrandpose kann basierend auf diesen Raumstrukturinformationen bestimmt werden. Wie in 6C dargestellt, können die Raumstrukturinformationen beispielsweise Tiefeninformationen umfassen, die entsprechende Tiefenwerte für die Orte 6301 , 6302 , 6303 , 6304 ,... 630n an dem Behälterrand (z. B. 384A-2) angeben. In einigen Fällen kann das Computersystem 101 dazu konfiguriert sein, diese Orte 6301 bis 630n von Orten, die eine andere Komponente des Behälters darstellen (z. B. von 6201 bis 620n ) zu unterscheiden, indem die Orte 6301 bis 630n als keine starke Diskontinuität in der Tiefe untereinander aufweisend identifiziert werden und daher zu einer gemeinsamen Schicht gehören, die von anderen Schichten im Kamerasichtfeld (z. B. 353) getrennt ist. Bei einer Ausführungsform kann das Computersystem 101 dazu konfiguriert sein, die Orte 6301 bis 630n als zum Behälterrand (z. B. 384A-2) gehörig zu identifizieren, indem es eine abgeschätzte Region bestimmt, in welcher der Behälterrand (z. B. 384A-2) sich befinden sollte, und nach den Orten (z. B. 6301 bis 630n ) in der abgeschätzten Region zu suchen. Das Computersystem 101 kann beispielsweise Zugang zu definierten oder anderweitig bekannten Informationen über eine Struktur des Behälters (z. B. 384A) und eine Struktur eines Schranks (z. B. 380) oder Gehäuses (z. B. 381), in dem sich der Behälter (z. B. 384A) befindet, aufweisen. Die Informationen können z. B. eine Größe (z. B. Abmessungen), die physische Konfiguration, die Form und/oder die Geometrie des Behälters (z. B. 384A) oder des Schranks (z. B. 380) identifizieren. Das Computersystem 101 kann dazu konfiguriert sein, die abgeschätzte Region basierend auf diesen Informationen zu bestimmen. Zum Beispiel kann das Computersystem abschätzen, dass der Behälterrand (z. B. 384A-2) einen Tiefenwert von ungefähr 600 mm mit einer Fehlermarge von ungefähr 10 mm aufweisen sollte. Das Computersystem 101 kann dann nach dem Behälterrand (z. B. 384A-2) in einer abgeschätzten Region suchen, die einen Raum einnimmt, der einen Tiefenwert im Bereich von 590 mm und 610 mm aufweist.
-
Wie vorstehend angegeben, kann die Behälterrandpose mindestens eines von einer Ausrichtung des Behälterrands (z. B. 384A-2) oder einem Tiefenwert für mindestens einen Ort an dem Behälterrand (z. B. 482A-2) angeben. Bei einer Ausführungsform kann das Computersystem 101 eine Ausrichtung für die Behälterrandpose bestimmen, indem es eine Differenz (falls vorhanden) zwischen entsprechenden Tiefenwerten für einige oder alle Orte (z. B. 6301 bis 630n ) am Behälterrand (z. B. 384A-2) bestimmt. Wenn die entsprechenden Tiefenwerte für die Orte 6301 bis 630n beispielsweise gleich oder im Wesentlichen gleich sind, kann das Computersystem 101 bestimmen, dass der Behälterrand 384A-2 eine Ausrichtung aufweist, die relativ zu der Raumstrukturerfassungskamera 351 oder einem anderen Bezugsrahmen im Wesentlichen flach ist. Wenn sich die entsprechenden Tiefenwerte als Funktion des Orts ändern, kann das Computersystem 101 eine Steigung bestimmen, die diese Änderung darstellt. Die Ausrichtung für die Behälterrandpose kann gleich der Steigung sein oder darauf basieren.
-
Bei einer Ausführungsform kann das Computersystem 101 die Behälterrandpose durch Bestimmen einer Ebene bestimmen, die im Wesentlichen durch einige oder alle Orte (z. B. 6301 bis 630n ) am Behälterrand (z. B. 384A-2) passt, für die Raumstrukturinformationen bereitgestellt werden. Das Computersystem 101 kann beispielsweise eine 3D-Koordinate (z. B. [xn yn zn]) für jeden der Orte (z. B. 6301 bis 630n ) oder einen Teilsatz der Orte bestimmen, wobei die 3D-Koordinate eine von den Raumstrukturinformationen abgeleitete Tiefenkomponente (z. B. zn) umfassen kann. Das Computersystem 101 kann eine Ebene bestimmen, die am besten durch die entsprechenden 3D-Koordinaten passt. Die Ebene kann beispielsweise durch die Gleichung a(x-x0) + b(y-y0) + c(z±z0) = 0 dargestellt werden, wobei [xo, yo, zo] eine 3D-Koordinate für einen der Orte (z. B. 6301 ) an dem Behälterrand (z. B. 384A-2) sein kann, und [x y z] kann eine 3D-Koordinate für einige oder alle der übrigen Orte (z. B. 6302 bis 630n ) an dem Behälterrand (z. B. 384A-2) sein. Das Computersystem 101 kann basierend auf den vorstehenden Koordinaten einen Satz simultaner Gleichungen erzeugen und diese für die Koeffizienten a, b, c lösen, welche die simultanen Gleichungen am besten erfüllen. In einem solchen Beispiel kann das Computersystem 101 eine Ausrichtung für die Behälterrandpose als gleich einer Eigenschaft der Ebene oder darauf basierend bestimmen, wie beispielsweise ihre Neigung oder ihren Normalenvektor (z. B. ein Vektor parallel zu <a b c>).
-
Wie vorstehend angegeben, kann das Computersystem 101 die Behälterflächenpose basierend auf der Behälterrandpose bestimmen. In einigen Fällen kann eine solche Bestimmung auf einem definierten Abstand zwischen dem Behälterrand (z. B. 384A-2) und der Behälterfläche (z. B. 384A-1) basieren. Der definierte Abstand kann z. B. eine Höhe h einer oder mehrerer Seitenwände (z. B. 384A-3 bis 384A-3 von 3D) sein, die den Behälterrand (z. B. 384A-2) bilden. In einigen Fällen kann der definierte Abstand ein bekannter Wert sein, der auf einem nicht-flüchtigen computerlesbaren Medium (z. B. 120) gespeichert ist, worauf das Computersystem 101 zugreifen kann.
-
Wie vorstehend weiter ausgeführt, kann die Behälterflächenpose mindestens eines von einer Ausrichtung der Behälterfläche (z. B. 384A-1) oder einem Tiefenwert für einen Ort auf der Behälterfläche (z. B. 384A-1) beschreiben. In einigen Fällen kann das Computersystem 101 die Ausrichtung für die Behälterflächenpose basierend auf einer Ausrichtung für die Behälterrandpose bestimmen. Insbesondere kann das Computersystem 101 eine Ausrichtung für die Behälterfläche (z. B. 384A-1) als gleich einer Ausrichtung für den Behälterrand (z. B. 384A-2) oder darauf basierend bestimmen. Eine solche Bestimmung kann auf einer Annahme basieren, dass der Behälterrand (z. B. 384A-2) parallel zur Behälterfläche (z. B. 384A-1) ist.
-
Als Beispiel kann das Computersystem 101 eine erste Ebene bestimmen, die eine Ausrichtung für die Behälterrandpose definiert, wie es vorstehend erörtert ist, und kann die erste Ebene verwenden, um eine zweite Ebene zu bestimmen, die eine Ausrichtung für die Behälterflächenpose definiert. 6F veranschaulicht beispielsweise eine erste Ebene 684A-2, die basierend auf den Raumstrukturinformationen für Orte (z. B. 6301 bis 630n ) an dem Behälterrand 384A-2 bestimmt werden kann und die eine Ausrichtung für den Behälterrand 384A-2 definieren kann. Das Computersystem 101 kann dazu konfiguriert sein, eine zweite Ebene 684A-1 basierend auf der ersten Ebene 684A-2 zu bestimmen, wobei die zweite Ebene 684A-1 eine Ausrichtung für die Behälterfläche 384A-1 definieren kann. In einigen Fällen können die erste Ebene 684A-2 und die zweite Ebene 684A-1 parallel zueinander und um den definierten Abstand h versetzt sein. Wenn die erste Ebene 684A-2, wie vorstehend erörtert, beispielsweise durch die Gleichung a(x-xo) + b(y-yo) + c(z-zo) = 0 definiert ist, kann das Computersystem 101 die zweite Ebene 684A-1 bestimmen, die durch die Gleichung a(x-xo) + b(y-yo) + c(z-zo-h) = 0 definiert wird.
-
Bei einer Ausführungsform kann das Computersystem 101 die zweite Ebene 684A-1 verwenden, um entsprechende Tiefenwerte für Orte auf der Fläche 384A-1 des Behälters zu bestimmen oder darzustellen, da Orte auf der Behälterfläche 384A-1 auf die Ebene 684A-1 fallen oder sich im Wesentlichen nahe daran befinden können. Wenn das Computersystem 101 beispielsweise eine 2D-Komponente oder eine 2D-Koordinate (z. B. [x y]-Koordinate) für einen Ort auf der Behälterfläche 384A-1 empfängt, kann es dazu konfiguriert sein, eine 3D-Koordinate auf der Ebene 684A-1 zu bestimmen, die dieser 2D-Komponente entspricht, und den Tiefenwert für diesen Ort basierend auf einer Tiefenkomponente (z. B. z-Komponente) der 3D-Koordinate zu bestimmen. Insbesondere kann das Computersystem 101 eine 3D-Koordinate [x y z] bestimmen, welche die Gleichung a(x-xo) + b(y-yo) + c(z-zo-h) = 0 erfüllt, wobei x und y zu der empfangenen 2D-Komponente gehören können, und wobei z die Tiefenkomponente der 3D-Koordinate sein kann. Daher können die von dem Behälterrand 384A-2 bestimmten Informationen verwendet werden, um eine zuverlässige Bestimmung hinsichtlich einer Ausrichtung und/oder Tiefe für die Behälterfläche 384A-1 durchzuführen.
-
Unter erneuter Bezugnahme auf 4 kann das Verfahren 400 bei einer Ausführungsform einen Schritt 406 umfassen, in dem das Computersystem 101 eine Objektpose basierend auf der Behälterpose bestimmt. Dieser Schritt kann z. B. durch das Objektkennungsdetektionsmodul 204 von 2C ausgeführt werden. Bei dieser Ausführungsform kann die Objektpose mindestens eines von einer Ausrichtung für ein Objekt (z. B. 371/373 der 3A bis 3C), das sich innerhalb des Behälters (z. B. 384A) befindet, oder einem Tiefenwert für mindestens einen Teil des Objekts beschreiben. In einigen Fällen kann das Objekt ein Zielobjekt sein, für das eine Roboterinteraktion erwünscht ist. Der Teil des Objekts kann sich z. B. auf einen Ort auf einer Fläche (z. B. der oberen Fläche) des Objekts und/oder ein physisches Merkmal des Objekts, wie beispielsweise eine Ecke oder Kante der oberen Fläche, beziehen.
-
Bei einer Ausführungsform kann die zum Bestimmen der Objektpose verwendete Behälterpose eine Behälterflächenpose sein. Das Computersystem 101 kann beispielsweise eine Ausrichtung für die Objektpose als gleich oder auf einer Ausrichtung für die Behälterflächenpose basierend bestimmen. Insbesondere kann das Computersystem 101 bestimmen, dass eine Ausrichtung für das Objekt (z. B. 371) gleich einer Ausrichtung für die Behälterfläche (z. B. 384A-1) ist.
-
In einigen Fällen kann das Computersystem 101 die Ausrichtung für das Objekt (z. B. 371/373) als basierend auf der Ausrichtung der Behälterfläche (z. B. 384A-1) bestimmen. Das Computersystem 101 kann beispielsweise bestimmen, dass die Ausrichtung für das Objekt (z. B. 371/373) gleich der Ausrichtung für die Behälterfläche (z. B. 384A-1) ist, auf welcher der Gegenstand angeordnet ist. Eine solche Bestimmung kann auf einer Annahme basieren, dass das Objekt, wie beispielsweise eine Warenkiste, bündig auf der Behälterfläche (z. B. 384A-1) aufsitzt.
-
In einigen Fällen kann das Computersystem 101 einen Tiefenwert für einen Ort an dem Objekt (auch als Objektort bezeichnet) basierend auf einem Tiefenwert für einen entsprechenden Ort auf der Behälterfläche (z. B. 384A-1) bestimmen. Der entsprechende Ort kann ein Ort auf der Behälterfläche (z. B. 384A-1) sein, auf der das Objekt aufsitzt, oder der genereller die gleiche 2D-Komponente oder 2D-Koordinate wie der Objektort aufweist. In einigen Fällen kann das Bestimmen auf einer definierten Größe für das Objekt (z. B. 371) basieren, wie beispielsweise einer definierten Höhe hObjekt, die in einem nicht-flüchtigen computerlesbaren Medium (z. B. 120) gespeichert sein kann, auf welches das Computersystem 101 zugreifen kann. Befindet sich der Objektort auf einer oberen Fläche des Objekts (z. B. 371), kann das Computersystem 101 den Ort des Objekts als von dem Ort auf der Behälterfläche (z. B. 384A-1) durch die definierte Höhe hObjekt getrennt bestimmen. Wenn der Ort auf der Behälterfläche (z. B. 384A-1) beispielsweise die 3D-Koordinate [x y zFl̈äche] aufweist, kann das Computersystem 101 bestimmen, dass der Objektort eine 3D-Koordinate [x y zFläche ± hObjekt] aufweist. In einem solchen Beispiel kann das Computersystem 101 anfänglich die 2D-Komponente für den Objektort bestimmen und die 2D-Komponente zum Bestimmen der 3D-Koordinate [x y zFläche] verwenden, die z. B. basierend auf dem Lösen der Gleichung für die Ebene 684A-1 oder allgemeiner basierend auf der Behälterflächenpose wie vorstehend erörtert bestimmt werden kann. Das Computersystem 101 kann dann einen Tiefenwert für den Objektort als gleich oder basierend auf zFläche ± hObjekt bestimmen. Eine solche Technik stellt selbst in einer Umgebung mit erheblichem Bildrauschen eine robuste Möglichkeit zum genauen Bestimmen eines Ausrichtungs- und/oder Tiefenwerts für das Objekt (z. B. 371) bereit. Ein solches Bildrauschen kann verhindern, dass die Raumstrukturerfassungskamera (z. B. 351) die Tiefe für das Objekt direkt und in einer genauen Weise misst. Das Computersystem 101 kann jedoch eine indirekte Messung vornehmen, indem es Raumstrukturinformationen für den Behälter verwendet, um eine Behälterflächenpose zu bestimmen und einen Tiefenwert für einen entsprechenden Ort auf der Behälterfläche zu bestimmen. Der Tiefenwert für das Objekt kann dann basierend auf dem Tiefenwert für den entsprechenden Ort auf der Behälterfläche extrapoliert werden.
-
In einigen Fällen kann Schritt 406 in einer Umgebung ausgeführt werden, die eine Objektkennungserfassungsvorrichtung, wie beispielsweise die Barcodeerfassungsvorrichtung 352 von 7A, umfasst. Die Barcodeerfassungsvorrichtung 352 (die eine Ausführungsform der Objektkennungserfassungsvorrichtung 152 sein kann) kann an einem Roboterarm (z. B. 363) oder an einem stationären Befestigungspunkt angebracht sein. Die Barcodeerfassungsvorrichtung 352 kann ein Sichtfeld 355 (auch als Lesevorrichtungssichtfeld bezeichnet) aufweisen und dazu konfiguriert sein, einen Barcode oder eine andere Objektkennung (falls vorhanden), die auf einem Objekt (z. B. 371/373) angeordnet ist, das in einem Behälter (z. B. 384A) angeordnet ist, zu erfassen. 7B stellt beispielsweise ein Beispiel bereit, in dem ein Barcode 711 an dem Objekt 371 und ein Barcode 713 an dem Objekt 373 angeordnet ist. Wie vorstehend angegeben, können Objektkennungsinformationen dazu konfiguriert sein, erfasste Objektkennungsinformationen zu erzeugen. Im Beispiel von 7B kann die Barcodeerfassungsvorrichtung 352 dazu konfiguriert sein, erfasste Barcodeinformationen zu erzeugen, die einen Ort des Barcodes 711/713, Informationen, die in den Barcode 711/713 codiert sind, oder irgendwelche andere Informationen über den Barcode 711/713 beschreiben können. Die in den Barcode 711/713 codierten Informationen können ein Objekt 371/373 beschreiben, an dem der Barcode angeordnet ist, wie beispielsweise eine Identität des Objekts 711/713 oder eine Größe des Objekts 711/713.
-
In einigen Fällen kann das Computersystem 101 dazu konfiguriert sein, zu bestimmen, ob in einen Barcode (z. B. 711/713) oder eine andere Objektkennung codierte Informationen mit den vom Computersystem 101 empfangenen Objektkennungsinformationen übereinstimmen. Das Computersystem 101 kann beispielsweise Obj ektkennungsinformationen wie eine Artikelnummer (SKU-Nummer) und/oder einen universellen Produktcode (UPC) empfangen, die einen bestimmten Artikel, wie beispielsweise eine Ware, für die Entnahme durch einen Roboter (z. B. 361) identifizieren. In einem solchen Fall kann das Computersystem 101 dazu konfiguriert sein, zu bestimmen, ob irgendein Objekt in dem Behälter (z. B. 384A) einen Barcode (z. B. 711/713) oder eine andere darauf angebrachte Objektkennung aufweist, die mit den Objektkennungsinformationen übereinstimmt, oder insbesondere, ob die in den Barcode (z. B. 711) oder eine andere Objektkennung codierten Informationen mit den Objektkennungsinformationen übereinstimmen. Wenn es einen Barcode (z. B. 711) oder eine andere Objektkennung gibt, deren codierte Informationen mit den Objektkennungsinformationen übereinstimmen, kann das Computersystem 101 den Barcode verwenden, um z. B. eine 2D-Komponente für einen oder mehrere mit dem Objekt (z. B. 371) verbundene Orte zu bestimmen, an denen der Barcode (z. B. 711) oder eine andere Objektkennung angebracht ist.
-
Bei einer Ausführungsform kann das Computersystem 101 dazu konfiguriert sein, einen Objektkennungsort, wie beispielsweise einen Barcodeort, zu bestimmen. Der Barcodeort kann einen 2D-Ort eines Barcodes (z. B. 711/713) beschreiben, wie beispielsweise einen Barcode, der mit den Objektkennungsinformationen übereinstimmt. In einigen Fällen kann der 2D-Ort der Objektkennung durch eine 2D-Koordinate (auch als 2D-Objektkennungskoordinate bezeichnet) dargestellt werden. Wenn die Objektkennung ein Barcode ist, kann die 2D-Objektkennungskoordinate eine 2D-Barcodekoordinate sein. Das Computersystem 101 kann beispielsweise dazu konfiguriert sein, eine 2D-Barcodekoordinate [xBarcodeA, yBarcodeA] zu bestimmen, die eine Position des Barcodes 711 in 7B darstellt, und eine 2D-Barcodekoordinate [xBarcodeB, yBarcodeB] zu bestimmen, die einen Ort für den Barcode 713 darstellt. In einigen Fällen kann die 2D-Barcodekoordinate durch die Barcodeerfassungsvorrichtung 352 von 7A oder durch eine andere Objektkennungserfassungsvorrichtung erzeugt werden. Wie vorstehend angegeben, kann der Barcodeort für einen Barcode bestimmt werden, der mit den vorstehend erörterten Objektkennungsinformationen übereinstimmt. Wenn das Computersystem 101 beispielsweise bestimmt, dass die in den Barcode 711 an Objekt 371 codierten Informationen mit einer empfangenen SKU-Nummer übereinstimmen, kann das Computersystem 101 eine 2D-Barcodekoordinate [xObjektA,Barcode, yObjektA,Barcode] für einen Ort des Barcodes 711 bestimmen.
-
Bei einer Ausführungsform kann das Computersystem 101 in einen Barcode (z. B. 711) oder eine andere Objektkennung codierte Informationen verwenden, um eine Größe oder andere Informationen über ein Objekt (z. B. 371) zu bestimmen, auf dem der Barcode angeordnet ist. Der Barcode 711 oder die andere Objektkennung kann beispielsweise die Höhe des vorstehend erörterten Objekts 371 hObjekt, eine Länge oder Breite des Objekts 371 oder jegliche anderen Informationen bezüglich einer Größe des Objekts 371 (auch als Objektgröße bezeichnet) codieren. Die Höhe hObjekt kann verwendet werden, um einen Tiefenwert für einen Ort an dem Objekt 371 zu bestimmen, wie es ebenfalls vorstehend erörtert ist.
-
Bei einer Ausführungsform kann das Computersystem 101 dazu konfiguriert sein, die erfassten Objektkennungsinformationen, die mit einer Objektkennung verbunden sind, (z. B. erfasste Barcodeinformationen, die mit dem Barcode 711 verbunden sind) zu verwenden, um einen oder mehrere 2D-Orte für ein Objekt (z. B. 371) zu bestimmen, an dem/denen die Objektkennung angeordnet ist, oder insbesondere, um eine oder mehrere 2D-Koordinaten für einen oder mehrere entsprechende Orte an dem Objekt (z. B. 371) zu bestimmen. Die 2D-Objektkoordinaten können mit den vorstehend erörterten Tiefenwerten kombiniert werden, um eine Roboterinteraktion mit dem Objekt zu planen (auch als 2D-Objektkoordinaten bezeichnet). In einigen Fällen können die 2D-Objektkoordinaten eine Kontur des Objekts (z. B. 371) annähern, wie beispielsweise eine 2D-Grenze einer oberen Fläche des Objekts.
-
Bei einer Ausführungsform können die 2D-Objektkoordinaten für die Objektorte basierend auf den Raumstrukturinformationen bestimmt werden. Die Raumstrukturinformationen können beispielsweise eine Punktwolke sein, die mehrere Orte auf einer oder mehreren Flächen darstellt, die von einer Umgebung in dem Kamerasichtfeld (z.B. 353) erfasst werden. Die durch die Punktwolke dargestellten Orte können beispielsweise die in den 6A bis 6C und 7C veranschaulichten Orte sein, wie beispielsweise die verschiedenen Sätze 610 bis 660 von Orten auf der Behälterfläche (z. B. 384A-1), einer Fläche von Objekten (z. B. 371, 373) und einer Fläche eines Behälterrands (z. B. 384A-2). Bei einer solchen Ausführungsform kann das Computersystem 101 dazu konfiguriert sein, erfasste Objektkennungsinformationen, wie beispielsweise erfasste Barcodeinformationen, zu verwenden, um die Punktwolke zu durchsuchen und mindestens einen Satz von einer oder mehreren 2D-Objektkoordinaten zu bestimmen. Die 2D-Objektkoordinaten können z. B. [x y]-Koordinaten sein, welche entsprechende Objektorte darstellen. Beispielsweise können die 2D-Objektkoordinaten entsprechende 2D-Koordinaten sein, die einige oder alle der Objektorte 6501 bis 6504 an Objekt 371 in 7C oder einige oder alle der Objektorte 6601 bis 6605 an Objekt 373 darstellen. Die 2D-Objektkoordinaten können mit entsprechenden Tiefenwerten oder der Ausrichtung eines Objekts kombiniert werden, um einen Bewegungsbefehl zur Interaktion mit dem Objekt (z. B. 371/373) zu erzeugen, wie es nachstehend ausführlicher erörtert wird.
-
Bei einer Ausführungsform können die 2D-Objektkoordinaten für die Objektorte basierend auf den Raumstrukturinformationen und basierend auf dem Ort einer Objektkennung oder insbesondere seiner 2D-Objektkennungskoordinate, bestimmt werden. Wenn die Objektkennung ein Barcode ist, können die 2D-Objektkoordinaten basierend auf den Raumstrukturinformationen und dem Ort des Barcodes bestimmt werden. Insbesondere kann der Ort des Barcodes (z. B. die 2D-Barcodekoordinate) verwendet werden, um einzugrenzen, in welchem Teil der Raumstrukturinformationen nach den 2D-Objektkoordinaten gesucht werden soll. Insbesondere kann die Suche auf einen Teil der Raumstrukturinformationen beschränkt werden, der einer Region entspricht, die den Ort der Objektkennung oder insbesondere den Ort des Barcodes umgibt. Um beispielsweise nach 2D-Orten an dem Objekt 371 zu suchen, kann das Computersystem 101 eine Region 721 von 7C bestimmen, die einen Barcodeort für den Barcode 711 von 7B umgibt. Das heißt, dass die Region 721 die 2D-Barcodekoordinate [xObjektA,Barcode, yObjektA,Barcode] umgibt. In einigen Fällen kann die Region 721 eine 2D-Region oder eine 3D-Region sein.
-
Bei einer Ausführungsform kann das Computersystem 101 dazu konfiguriert sein, einen Teil der Raumstrukturinformationen zu durchsuchen, die der Region 721 entsprechen, um Objektorte zu identifizieren, die dem Objekt 711 entsprechen, oder insbesondere, um nach Orten zu suchen, die auf das Objekt 711 fallen. Anstatt alle Orte zu durchsuchen, die durch die in 7C dargestellten Raumstrukturinformationen dargestellt werden, kann das Computersystem 101 auch einen Teilsatz der Orte durchsuchen, die durch die Raumstrukturinformationen dargestellt werden. Insbesondere kann der Teilsatz von Orten diejenigen in der Region 721 sein. Das Computersystem 101 kann dazu konfiguriert sein, nach Orten an dem Objekt 371 zu suchen, indem es z. B. Orte identifiziert, die einen ausreichend starken Tiefenunterschied gegenüber umliegenden Orten, die sich an der Fläche 384A-1 des Behälters befinden, aufweisen. In einigen Fällen kann das Computersystem 101 2D-Objektkoordinaten für Orte an dem Objekt bestimmen. Wenn die Raumstrukturinformationen beispielsweise eine [x y z]-Koordinate für den Ort 6501 bereitstellen, der auf das Objekt 371 fällt, kann das Computersystem 101 [x y] als 2D-Objektkoordinate für diesen Objektort bestimmen. Obwohl die Raumstrukturinformationen in diesem Beispiel auch eine z-Komponente für diesen Ort bereitstellen können, kann die z-Komponente wie vorstehend erörtert aufgrund von Rauschen unzuverlässig sein. Insbesondere kann die z-Komponente eine ausreichende Genauigkeit für das Computersystem 101 aufweisen, um zwischen Orten an dem Objekt 371 und Orten an einer umgebenden Behälterfläche 384A-1 zu unterscheiden, es kann ihr aber an ausreichender Genauigkeit mangeln, um eine Roboterinteraktion mit dem Objekt 371 zu planen. Daher kann das Computersystem 101, wie vorstehend weiter erörtert, die Behälterpose verwenden, um einen entsprechenden Tiefenwert für den Objektort 6501 oder allgemeiner für einen Objektort, der die 2D-Objektkoordinate oder 2D-Komponente [x y] aufweist, zu bestimmen. In einigen Fällen kann die 2D-Objektkoordinate für z. B. den Objektort 6501 und der entsprechende Tiefenwert für diesen Ort kombiniert werden, um eine vertrauenswürdigere 3D-Koordinate für diesen Objektort zu bilden.
-
7C stellt ferner eine Region 723 dar, die eine 2D-Objektkennungskoordinate oder insbesondere die 2D-Barcodekoordinate [xObjektB,Barcode, yObjektB,Barcode] für den Barcode 713 umgibt. Das Computersystem 101 kann dazu konfiguriert sein, die Region 723 zu durchsuchen, um Objektorte für das Objekt 373 zu bestimmen. Bei einer Ausführungsform kann die Region 721/723 eine definierte feste Größe aufweisen. Bei einer Ausführungsform kann die Region 721/723 eine Größe aufweisen, die auf einer Objektgröße des Objekts 371/373 basiert.
-
Bei einer Ausführungsform können die Objektorte für ein Objekt (z. B. 371) basierend auf seiner Objektgröße bestimmt werden, die z. B. in einen Barcode (z. B. 711) oder eine andere an dem Objekt angeordnete Objektkennung codiert sein kann. Die Objektgröße kann beispielsweise die Länge und Breite des Objekts (z. B. 371) angeben. Das Computersystem 101 kann dazu konfiguriert sein, 2D-Koordinaten, die z. B. eine Kante oder eine andere Grenze des Objekts (z. B. 371) darstellen, basierend auf der Objektgröße abzuschätzen. Das Computersystem 101 kann beispielsweise basierend auf der Länge oder Breite des Objekts abschätzen, dass sich eine bestimmte Kante des Objekts einen bestimmten Abstand von dem Barcodeort oder einem anderen Objektkennungsort entfernt befindet. Das Computersystem 101 kann diesen Abstand verwenden, um eine 2D-Koordinate zu bestimmen, die angibt, wo sich diese bestimmte Kante befindet.
-
Bei einer Ausführungsform kann eine 2D-Objektkennungskoordinate, wie beispielsweise die 2D-Barcodekoordinate für den Barcodeort, basierend auf Informationen bestimmt werden, die von der Objektkennungserfassungsvorrichtung (z. B. der Barcodeerfassungsvorrichtung 352 von 7A) erfasst werden. Die Barcodeerfassungsvorrichtung (z. B. 352) kann beispielsweise eine [x y]-Koordinate als 2D-Barcodekoordinate erzeugen und die [x y]-Koordinate zu dem Computersystem 101 kommunizieren. Das Computersystem 101 kann falls erforderlich dazu konfiguriert sein, die [x y]-Koordinate von der Darstellung in einem Koordinatensystem der Objektkennungserfassungsvorrichtung (z. B. der Barcodeerfassungsvorrichtung 352) in ein anderes Koordinatensystem, wie das der Raumstrukturerfassungskamera (z. B. 351) umzuwandeln. Wie vorstehend angegeben, kann die Objektkennungserfassungsvorrichtung (z. B. die Barcodeerfassungsvorrichtung 352) in einigen Fällen eine 2D-Kamera (z. B. 153 von 1E) umfassen. In solchen Fällen kann die Objektkennungserfassungsvorrichtung (z. B. die Barcodeerfassungsvorrichtung 352) dazu konfiguriert sein, ein 2D-Bild zu erfassen. Zum Beispiel kann 7B ein 2D-Bild darstellen, das ein Sichtfeld (z. B. 355) der Barcodeerfassungsvorrichtung 352 darstellt. Die Objektkennungserfassungsvorrichtung (z. B. die Barcodeerfassungsvorrichtung 352) und/oder das Computersystem 101 können dazu konfiguriert sein, einen Barcode (z. B. 711/713) oder eine andere Objektkennung von dem 2D-Bild zu detektieren und die 2D-Objektkennungskoordinate basierend darauf, wo die Objektkennung (z. B. Barcode 711/713) in dem 2D-Bild erscheint, bestimmen.
-
Wenn bei einer Ausführungsform ein 2D-Bild erzeugt wird, kann es zum Bestimmen der 2D-Objektkoordinaten verwendet werden. Wenn zum Beispiel das Computersystem 101 das 2D-Bild empfängt, kann es dazu konfiguriert sein, eine Kante oder eine andere Grenze eines Objekts (z. B. 371), das in dem 2D-Bild erscheint, zu detektieren und eine 2D-Objektkoordinate, die das Objekt dargestellt, basierend darauf, wo die Kante im 2D-Bild erscheint, zu bestimmen. In einigen Fällen kann das Computersystem 101 dazu konfiguriert sein, seine Suche nach der Kante oder einer anderen Grenze auf einen Teil des 2D-Bilds zu begrenzen. In solchen Fällen kann der Teil des 2D-Bilds, in dem die Suche ausgeführt wird, auf einem Objektkennungsort basieren, wie beispielsweise einem Barcodeort für einen Barcode (z. B. 711), der an dem Objekt angeordnet ist, oder darauf, wo der Barcode in dem 2D-Bild erscheint.
-
Bei einer Ausführungsform kann das Computersystem 101 dazu konfiguriert sein, eine 2D-Position für ein Objekt basierend auf Objektkennungsorten, wie beispielsweise Barcodeorten benachbarter Barcodes, abzuschätzen. Die benachbarten Barcodes sind nicht an dem Objekt angeordnet und können an benachbarten Objekten angeordnet sein. 8 veranschaulicht beispielsweise ein Szenario, in dem ein Objekt 377 innerhalb des Behälters 384A angeordnet ist, auf dem sich kein Barcode befindet. In diesem Beispiel kann das Computersystem 101 dazu konfiguriert sein, 2D-Barcodeorte der Barcodes 711, 713, 716, die auf benachbarten Objekten 371, 373 bzw. 376 angeordnet sind, zu verwenden, um einen 2D-Ort für das Objekt 377 zu triangulieren oder anderweitig zu bestimmen. Das Computersystem 101 kann beispielsweise dazu konfiguriert sein, eine Region zu bestimmen, deren Grenze durch 2D-Barcodekoordinaten [xObjektA,Barcode, yObjektA,Barcode], [xObjektB,Barcode, yObjektB,Barcode], [xObjektC,Barcode, yObiektC,Barcode] entsprechend für die Barcodes 711, 713 und 716 definiert ist, und diese Region nach dem Objekt 377 zu durchsuchen. Insbesondere kann das Computersystem 101 einen Teil der Raumstrukturinformationen, die dieser Region entsprechen, nach Orten durchsuchen, die auf das Objekt 377 fallen.
-
Wenn bei einer Ausführungsform die Barcodeerfassungsvorrichtung (oder eine andere Objektkennungserfassungsvorrichtung) und/oder die Raumstrukturerfassungskamera an einem Roboterarm (z. B. 353 von 3A) angebracht ist, kann das Computersystem 101 dazu konfiguriert sein, die Platzierung der Vorrichtung/der Kamera (z. B. 352/351) durch Bewegen des Roboterarms zu steuern. Das Computersystem 101 kann beispielsweise dazu konfiguriert sein, einen Sensorbewegungsbefehl zu erzeugen und auszugeben, der den Roboterarm 363 veranlasst, die Objektkennungserfassungsvorrichtung (z. B. die Barcodeerfassungsvorrichtung 352) und/oder die Raumstrukturerfassungskamera (z. B. 351) an einen gewünschten Ort und/oder in eine gewünschte Ausrichtung zu bewegen. Der Bewegungsbefehl des Sensors kann z. B. bewirken, dass die Vorrichtungen (z. B. 352/351) an einen Ort bewegt werden, der sich innerhalb eines definierten Annäherungsgrads befindet. In einigen Fällen kann der definierte Annäherungsgrad auf einer Brennweite der Objektkennungserfassungsvorrichtung basieren. Insbesondere kann der Sensorbewegungsbefehl bewirken, dass die Objektkennungserfassungsvorrichtung ausreichend nahe an Objekte im Behälter (z. B. 354A) bewegt wird, sodass sich jeglicher Barcode (z. B. 711) an den Objekten innerhalb der Brennweite der Objektkennungserfassungsvorrichtung befindet. Bei einer Ausführungsform können die in Schritt 402 empfangenen Raumstrukturinformationen und die erfassten Barcodeinformationen oder andere Objektkennungsinformationen erzeugt werden, nachdem die Vorrichtungen (z. B. 352/351) als Ergebnis des Sensorbewegungsbefehls bewegt wurden.
-
Bei einer Ausführungsform kann der Sensorbewegungsbefehl bewirken, dass die Raumstrukturinformationen und/oder die Barcodeerfassungsvorrichtung (oder jede andere Objektkennungserfassungsvorrichtung) innerhalb eines Annäherungsbereichs bewegt werden, sodass die Raumstrukturinformationen und/oder erfassten Barcodeinformationen nur einen Teil der Behälterfläche (z. B. 384A-1) darstellen oder abdecken. 9 veranschaulicht beispielsweise eine Situation, in der nur ein Teil der Behälterfläche (z. B. 384A-1) oder allgemeiner eine Seite des Behälters (z. B. 384A) von der Raumstrukturerfassungskamera 351 und/oder der Barcodeerfassungsvorrichtung 352 erfasst wird. Das heißt, dass sich bei solch einem Annäherungsgrad nur ein Teil der Behälterfläche (z. B. 384A-1) im Kamerasichtfeld (z. B. 353) oder Lesevorrichtungssichtfeld (z. B. 355) befinden kann. Es kann sein, dass es nicht notwendig ist, Informationen für eine gesamte Behälterfläche (z. B. 384A-1) oder einen gesamten Behälter (z. B. 384A) zu erfassen. Vielmehr kann es das Erfassen nur eines Teils des Behälters (z. B. 384A) dem Computersystem 101 ermöglichen, sich auf einen bestimmten Teil des Behälters (z. B. 384), wie beispielsweise seine rechte Hälfte, und insbesondere auf das Detektieren von Objekten in diesem Teil zu konzentrieren. In einigen Fällen kann das Computersystem 101 begrenzen, wie oft die Raumstrukturerfassungskamera (z. B. 351) und/oder die Objektkennungserfassungsvorrichtung (z. B. die Barcodeerfassungsvorrichtung 352) bewegt wird oder an wie viele Orte die Kamera/Vorrichtung (z. B. 351/352) bewegt wird, um Informationen über einen bestimmten Behälter (z. B. 384A) zu erfassen. Die Kamera/Vorrichtung (z. B. 351/352) kann beispielsweise nur einmal an einen einzelnen Ort bewegt werden, um eine Momentaufnahme eines bestimmten Behälters zu erfassen.
-
Bei einer Ausführungsform kann das Computersystem 101 dazu konfiguriert sein, das Segmentieren eines bestimmten Behälters (z. B. 384A) durch Zuordnen verschiedener Regionen auf der Behälterfläche (z. B. 384A-1) zu verschiedenen Segmenten auszuführen. 10 stellt beispielsweise eine Situation dar, in der die Behälterfläche 384A-1 virtuell in die Segmente 1001 bis 1006 unterteilt sein kann. In diesem Szenario kann das Computersystem 101 dazu konfiguriert sein, eine Behältersegmentkennung, die mit einem Objekt verbunden ist, zu empfangen. In einem Beispiel kann das Computersystem 101 eine Behältersegmentkennung empfangen, die das Segment 1006 identifiziert oder spezifischer angibt, dass für ein Objekt (z. B. 371), das innerhalb von Segment 1006 angeordnet ist, eine Roboterinteraktion erwünscht ist. Bei einer Ausführungsform kann das Computersystem 101 dazu konfiguriert sein, Orte auf der Behälterfläche (z. B. 384A-1) zu bestimmen, die mit der Behältersegmentkennung verbunden sind. In einigen Fällen kann das Bestimmen dieser Orte das Bestimmen ihrer Tiefenwerte umfassen, was das Verwenden von mindestens einem von der Behälterrandpose oder der Behälterflächenpose beinhalten kann, wie es vorstehend erörtert wurde.
-
Bei einer Ausführungsform kann das Verfahren 400 einen Schritt 408 umfassen, in dem das Computersystem 101 einen Bewegungsbefehl ausgibt, um eine Roboterinteraktion mit dem Objekt (z. B. 371/373) zu bewirken, wie beispielsweise das Greifen oder anderweitige Aufnehmen des Objekts durch den Roboterarm (z. B. 363). Ein solcher Bewegungsbefehl kann auch als Objektbewegungsbefehl bezeichnet werden. In einigen Fällen kann Schritt 408 durch das Bewegungsplanungsmodul 206 von 2C ausgeführt werden, das dazu konfiguriert sein kann, beispielsweise Objektbewegungsbefehle, die vorstehend erörterten Sensorbewegungsbefehle und Behälterbewegungsbefehle (die nachstehend erörtert werden) zu erzeugen. Der Objektbewegungsbefehl kann von dem Computersystem 101 z. B. basierend auf der in Schritt 406 bestimmten Objektpose, wie beispielsweise der Ausrichtung oder dem Tiefenwert für das Objekt (z. B. 371), erzeugt werden. Der Objektbewegungsbefehl kann beispielsweise derart bestimmt werden, dass eine Roboterhand oder ein anderer Endeffektor am Roboterarm (z. B. 363) bewegt wird, sodass er sich zum Manipulieren oder anderweitigen Interagieren mit dem Objekt (z. B. 371) in Reichweite befindet, und in eine Ausrichtung, die mit einer Ausrichtung für das Objekt (z. B. 371) übereinstimmt. Bei einer Ausführungsform kann der Bewegungsbefehl z. B. eine Drehung oder eine andere Betätigung bewirken, die den Endeffektor an solch einem Ort und/oder solch einer Ausrichtung platziert. In einigen Fällen kann der Bewegungsbefehl basierend auf den vorstehend erörterten 2D-Objektkoordinaten und deren entsprechenden Tiefenwerten, die durch die Objektpose bereitgestellt werden können, erzeugt werden. Der Objektbewegungsbefehl kann beispielsweise derart erzeugt werden, dass der Endeffektor sich den 2D-Objektkoordinaten bis zu einem definierten Annäherungsgrad nähert, der es dem Endeffektor ermöglicht, das Objekt (z. B. 371) zu manipulieren oder anderweitig damit zu interagieren.
-
Bei einer Ausführungsform kann der Objektbewegungsbefehl derart bestimmt werden, dass ein Kollisionsereignis vermieden wird. Das Kollisionsereignis kann eine Kollision zwischen einem Objekt, das bewegt wird (z. B. 371), und z. B. einer Behälterseitenwand (z. B. 384A-5 von 3D) oder einer anderen Behältergrenze, die den Behälterrand (z. B. 384A-2) bildet, darstellen. In einigen Fällen kann das Computersystem 101 dazu konfiguriert sein, einen Objektbewegungspfad zu bestimmen, der ein solches Kollisionsereignis vermeidet. Der Objektbewegungspfad kann ein Bewegungspfad für das Objekt (z. B. 371), das bewegt wird, sein. Der Objektbewegungsbefehl kann basierend auf dem Objektbewegungspfad erzeugt werden. In einigen Fällen kann die genaue Bestimmung der Objektpose in Schritt 406 eine solche Kollisionsvermeidung erleichtern.
-
Wie vorstehend erörtert, kann das Verfahren 400 bei einigen Ausführungsformen in einem Szenario beginnen, in dem sich der Behälter (z. B. 384A) bereits in einer geöffneten Position, wie der in 3C veranschaulichten, befindet. Bei einer Ausführungsform kann das Verfahren 400 in einem Szenario beginnen, in dem sich der Behälter (z. B. 384A) in einer geschlossenen Position befindet, wie beispielsweise derjenigen, die in 3A und 11A veranschaulicht ist. Bei einer solchen Ausführungsform kann das Verfahren 400 einen Schritt umfassen, in dem das Computersystem 101 den Roboterarm (z. B. 363) steuert, um den Behälter (z. B. 384A) in eine geöffnete Position zu bewegen. Ein solcher Behälteröffnungsschritt kann erfolgen, bevor in Schritt 402 Raumstrukturinformationen empfangen werden.
-
Zum Beispiel stellen die 11A und 11B eine Situation dar, in der sich der Behälter 384A in einer geschlossenen Position befindet. In einer solchen Situation kann die Raumstrukturerfassungskamera 351 dazu konfiguriert sein, Raumstrukturinformationen zu erzeugen, die eine äußere Fläche 384A-7 des Behälters 384A beschreiben oder insbesondere Orte auf der äußeren Fläche 384A-7 beschreiben. Die Raumstrukturinformationen in diesem Beispiel können sich von den Raumstrukturinformationen von Schritt 402 unterscheiden, der eine geöffnete Behältersituation beinhaltet. Das Computersystem 101 kann dazu konfiguriert sein, einen oder mehrere Orte, die den Griff 384A-6 des Behälters 384A darstellen, basierend auf den Raumstrukturinformationen, welche die äußere Fläche 384A-7 beschreiben, zu bestimmen. Ferner kann das Computersystem 101 dazu konfiguriert sein, einen Behälterbewegungsbefehl zu erzeugen und auszugeben, um den Roboterarm 363 dazu zu veranlassen, den Behälter 384A von der geschlossenen Position in die geöffnete Position zu bewegen. Der Behälterbewegungsbefehl kann basierend auf dem einen oder den mehreren Orten, die den Griff 384A-6 darstellen (auch als Behältergriffpositionen bezeichnet), erzeugt werden. Insbesondere kann, wie in den 11B und 11C veranschaulicht, der Behälterbewegungsbefehl bewirken, dass die Roboterhand 363D oder ein anderer Endeffektor des Roboterarms 363 an dem Griff 384A-6 zieht, um den Behälter 384A in die geöffnete Position zu schieben. Nachdem sich der Behälter 384A in der geöffneten Position befindet, kann die Raumstrukturerfassungskamera 351 in einigen Szenarien an einen anderen Ort bewegt werden (z. B. über einen Sensorbewegungsbefehl), um Raumstrukturinformationen einer Behälterfläche und darauf angeordneter Objekte zu erfassen, wonach eine Objektpose bestimmt werden kann und ein Objekt basierend auf der Objektpose (z. B. mittels eines Objektbewegungsbefehls) bewegt werden kann.
-
Zusätzliche Erörterung verschiedener Ausführungsformen:
-
Ausführungsform 1 betrifft ein Computersystem, das eine Kommunikationsschnittstelle und mindestens eine Verarbeitungsschaltung umfasst. Die Kommunikationsschnittstelle ist dazu konfiguriert, mit einem Roboter zu kommunizieren, der einen Roboterarm aufweist, welcher eine Raumstrukturerfassungskamera aufweist, die an dem Roboterarm angeordnet ist, wobei die Raumstrukturerfassungskamera ein Kamerasichtfeld aufweist. Die mindestens eine Verarbeitungsschaltung ist dazu konfiguriert, das folgende Verfahren auszuführen, wenn sich ein Objekt innerhalb eines Behälters im Kamerasichtfeld befindet oder befunden hat, während sich der Behälter in einer geöffneten Position befindet: Empfangen von Raumstrukturinformationen, die Tiefeninformationen für eine Umgebung im Kamerasichtfeld umfasst, wobei die Raumstrukturinformationen von der Raumstrukturerfassungskamera erzeugt werden; Bestimmen einer Behälterpose basierend auf den Raumstrukturinformationen, wobei die Behälterpose dazu dient, mindestens eines von einer Ausrichtung für den Behälter oder einem Tiefenwert für mindestens einen Teil des Behälters zu beschreiben; Bestimmen einer Objektpose basierend auf der Behälterpose, wobei die Objektpose dazu dient, mindestens eines von einer Ausrichtung für das Objekt oder einem Tiefenwert für mindestens einen Teil des Objekts zu beschreiben; Ausgeben eines Bewegungsbefehls zum Bewirken einer Roboterinteraktion mit dem Objekt, wobei der Bewegungsbefehl basierend auf der Objektpose erzeugt wird.
-
Ausführungsform 2 umfasst das Computersystem von Ausführungsform 1. Bei dieser Ausführungsform ist die mindestens eine Verarbeitungsschaltung dazu konfiguriert, die Behälterpose als eine Behälterflächenpose zu bestimmen, um mindestens eines zu beschreiben von: einer Ausrichtung für eine Behälterfläche, auf der das Objekt angeordnet ist, oder einem Tiefenwert für mindestens einen Ort auf der Behälterfläche.
-
Ausführungsform 3 umfasst das Computersystem von Ausführungsform 2, wobei die mindestens eine Verarbeitungsschaltung dazu konfiguriert ist, wenn der Behälter ein Schubfach mit einem Behälterrand ist, der zu der Behälterfläche versetzt ist, eine Behälterrandpose zu bestimmen, um mindestens eines zu beschreiben von: einer Ausrichtung für den Behälterrand oder einem Tiefenwert für mindestens einen Ort an dem Behälterrand, wobei die Behälterrandpose basierend auf den Raumstrukturinformationen bestimmt wird. Ferner wird die Behälterflächenpose basierend auf der Behälterrandpose und basierend auf einem definierten Abstand zwischen dem Behälterrand und der Behälterfläche bestimmt.
-
Ausführungsform 4 umfasst das Computersystem von Ausführungsform 2 oder 3. Bei dieser Ausführungsform ist die mindestens eine Verarbeitungsschaltung konfiguriert zum: Empfangen einer Behältersegmentkennung, die mit dem Objekt verbunden ist, wobei die Behältersegmentkennung zum Identifizieren eines Segments der Behälterfläche dient, und zum Bestimmen von mit der Behältersegmentkennung verbundenen Orten, wobei das Bestimmen auf der Behälterflächenpose basiert.
-
Ausführungsform 5 umfasst das Computersystem von Ausführungsform 3 oder 4. Bei dieser Ausführungsform ist die mindestens eine Verarbeitungsschaltung dazu konfiguriert, einen Objektbewegungspfad zu bestimmen, der ein Kollisionsereignis vermeidet, wobei das Kollisionsereignis eine Kollision zwischen dem Objekt und einer den Behälterrand bildenden Behältergrenze darstellt, und wobei der Bewegungsbefehl basierend auf dem Objektbewegungspfad erzeugt wird.
-
Ausführungsform 6 umfasst das Computersystem von einer der Ausführungsformen 1 bis 5. Bei dieser Ausführungsform ist die mindestens eine Verarbeitungsschaltung, wenn eine Objektkennung an dem Objekt angeordnet ist, konfiguriert zum: Bestimmen eines Objektkennungsorts zum Beschreiben eines 2D-Orts der Objektkennung; und Bestimmen eines Satzes von einem oder mehreren Objektorten, die ein oder mehrere Orte sind, die das Objekt repräsentieren, basierend auf dem Objektkennungsort und den Raumstrukturinformationen, wobei der Bewegungsbefehl basierend auf dem Satz von einem oder mehreren Objektorten erzeugt wird.
-
Ausführungsform 7 umfasst das Computersystem von Ausführungsform 6. Bei dieser Ausführungsform ist die mindestens eine Verarbeitungsschaltung dazu konfiguriert, eine Region zu bestimmen, die den Objektkennungsort umgibt, und den Satz von einem oder mehreren Objektorten zu bestimmen, indem ein Teil der Raumstrukturinformationen durchsucht wird, welcher der bestimmten Region entspricht, die den Objektkennungsort umgibt.
-
Ausführungsform 8 umfasst das Computersystem von Ausführungsform 7. Bei dieser Ausführungsform umfassen die Raumstrukturinformationen eine Punktwolke, die mehrere Orte auf einer oder mehreren Flächen darstellt, die von der Umgebung im Kamerasichtfeld erfasst werden, wobei der Teil der Raumstrukturinformationen, von dem aus der Satz von einem oder mehreren Objektorten gesucht wird, einen Teilsatz der mehreren Orte umfasst, die sich innerhalb der bestimmten Region befinden, die den Objektkennungsort umgibt.
-
Ausführungsform 9 umfasst das Computersystem von einer der Ausführungsformen 6 bis 8. Bei dieser Ausführungsform ist die mindestens eine Verarbeitungsschaltung konfiguriert zum: Bestimmen von mindestens einer 2D-Objektkennungskoordinate, die eine 2D-Koordinate zum Darstellen des Orts der Objektkennung ist, und zum Bestimmen von mindestens einem Satz von einer oder mehreren 2D-Objektkoordinaten basierend auf der 2D-Objektkennungskoordinate, wobei die eine oder die mehreren 2D-Objektkoordinaten eine oder mehrere entsprechende 2D-Koordinaten zum Darstellen des einen oder der mehreren Objektorte sind, wobei der Bewegungsbefehl basierend auf dem Satz von einer oder mehreren 2D-Objektkoordinaten und basierend auf einem Ausrichtungs- und Tiefenwert für das Objekt erzeugt wird.
-
Ausführungsform 10 umfasst das Computersystem von einer der Ausführungsformen 6 bis 9. Bei dieser Ausführungsform ist die mindestens eine Verarbeitungsschaltung dazu konfiguriert, eine Objektgröße basierend auf Informationen zu bestimmen, die in die Objektkennung codiert sind, wobei der eine oder die mehreren Objektorte eine Grenze für das Objekt darstellen und basierend auf der Objektgröße bestimmt werden.
-
Ausführungsform 11 umfasst das Computersystem von einer der Ausführungsformen 6 bis 10. Bei dieser Ausführungsform ist die mindestens eine Verarbeitungsschaltung dazu konfiguriert, Objektkennungsinformationen zu empfangen, die mit dem Objekt verbunden sind, und zu bestimmen, ob die in die Objektkennung codierten Informationen mit den Objektkennungsinformationen übereinstimmen.
-
Ausführungsform 12 umfasst das Computersystem von einer der Ausführungsformen 6 bis 11. Bei dieser Ausführungsform ist die mindestens eine Verarbeitungsschaltung dazu konfiguriert, wenn eine Objektkennungserfassungsvorrichtung an dem Roboterarm angeordnet ist, den Objektkennungsort basierend auf den von der Objektkennungserfassungsvorrichtung erfassten Information zu bestimmen.
-
Ausführungsform 13 umfasst das Computersystem von Ausführungsform 12. Bei dieser Ausführungsform ist der Bewegungsbefehl ein Objektbewegungsbefehl, um den Roboter dazu zu veranlassen, das Objekt zu bewegen, wobei die mindestens eine Verarbeitungsschaltung dazu konfiguriert ist, einen Sensorbewegungsbefehl auszugeben, um den Roboterarm dazu zu veranlassen, die Objektkennungserfassungsvorrichtung derart zu bewegen, dass sie sich innerhalb eines definierten Annäherungsgrads zum Behälter befindet, und wobei der Objektkennungsort nach der Ausgabe des Sensorbewegungsbefehls bestimmt wird.
-
Ausführungsform 14 umfasst das Computersystem von Ausführungsform 13. Bei dieser Ausführungsform dient der Sensorbewegungsbefehl auch dazu, den Roboterarm dazu zu veranlassen, die Raumstrukturerfassungskamera derart zu bewegen, dass sie sich innerhalb des definierten Annäherungsgrads zum Behälter befindet, wobei die Raumstrukturinformationen erzeugt werden, wenn sich die Raumstrukturerfassungskamera innerhalb des definierten Annäherungsgrads zum Behälter befindet, und einen Teil einer Behälterfläche darstellen, auf der das Objekt angeordnet ist.
-
Ausführungsform 15 umfasst das Computersystem von Ausführungsform 13 oder 14. Bei dieser Ausführungsform ist die mindestens eine Verarbeitungsschaltung, wenn sich der Behälter in einer geschlossenen Position befindet und einen Griff umfasst, konfiguriert zum: Empfangen zusätzlicher Raumstrukturinformationen zum Beschreiben von Orten auf einer äußeren Fläche für den Behälter, Bestimmen, basierend auf den zusätzlichen Raumstrukturinformationen, von einem oder mehreren Grifforten zum Darstellen des Griffs, und Ausgeben eines Behälterbewegungsbefehls, um den Roboterarm dazu zu veranlassen, den Behälter von der geschlossenen Position in die geöffnete Position zu bewegen, wobei der Behälterbewegungsbefehl basierend auf dem einen oder den mehreren Grifforten erzeugt wird, und wobei der Sensorbewegungsbefehl und der Objektbewegungsbefehl nach dem Behälterbewegungsbefehl ausgegeben werden.
-
Es wird einem Durchschnittsfachmann offensichtlich sein, dass andere geeignete Modifikationen und Anpassungen an den hierin beschriebenen Verfahren und Anwendungen vorgenommen werden können, ohne vom Umfang einer der Ausführungsformen abzuweichen. Die vorstehend beschriebenen Ausführungsformen sind veranschaulichende Beispiele, und es sollte nicht der Schluss gezogen werden, dass die vorliegende Erfindung auf diese besonderen Ausführungsformen beschränkt ist. Es versteht sich, dass verschiedene Ausführungsformen, die hierin offenbart werden, in anderen Kombinationen kombiniert werden können, als die speziell in der Beschreibung und den begleitenden Zeichnungen dargestellten Kombinationen. Es versteht sich auch, dass abhängig vom Beispiel bestimmte Handlungen oder Ereignisse eines der hierin beschriebenen Prozesse oder Verfahren in einer anderen Reihenfolge ausgeführt, hinzugefügt, zusammengefügt oder ganz ausgelassen werden können (z. B. können nicht alle beschriebenen Handlungen oder Ereignisse zur Ausführung der Verfahren oder Prozesse erforderlich sein). Des Weiteren werden zwar bestimmte Merkmale von Ausführungsformen aus Gründen der Klarheit als von einer einzelnen Komponente, einem einzelnen Modul oder einer einzelnen Einheit ausgeführt beschrieben, jedoch versteht es sich, dass die hierin beschriebenen Merkmale und Funktionen von jeder beliebigen Kombination von Komponenten, Einheiten oder Modulen ausgeführt werden können. Daher können verschiedene Änderungen und Modifikationen von einem Fachmann vorgenommen werden, ohne vom Sinn oder Umfang der Erfindung, wie er in den beigefügten Ansprüchen definiert ist, abzuweichen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
-
Zitierte Nicht-Patentliteratur
-
- „A ROBOTIC SYSTEM WITH OBJECT RECOGNITION MECHANISM”, eingereicht am 5. März 2020 [0001]