-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung betrifft ein Robotersystem mit Funktionalität zur Ortsbestimmung einer dreidimensionalen Kiste (3D-Kiste).
-
HINTERGRUND
-
Roboter sind elektromechanische Vorrichtungen, die zum Ausführen komplizierter oder sich wiederholender Aufgabe auf automatische Weise in der Lage sind. Ein typischer Roboter bewegt sich in Ansprechen auf Aufgabenanweisungen und sensorische Rückmeldungen auf mehreren Achsen. Ein Roboter kann beispielsweise verschiedene Näherungssensoren, taktile Sensoren, Schalter, Kraftmessdosen, Messfühler und dergleichen verwenden, um die ihn umgebende Umwelt bei der Ausführung einer gegebenen Arbeitsaufgabe zu bewerten. Der Roboter kann mit Hilfe eines oder mehrerer Greiforgane auf ein Objekt einwirken, das sich innerhalb seiner Umgebung befindet.
-
Im Speziellen können Materialhandhabungsroboter programmiert sein, um in einer automatisierten Arbeitsumgebung Objekte zu lokalisieren, auszuwählen und zu bewegen. Beispielsweise können derartige Roboter in einer typischen Produktionsanlage verwendet werden, um sich wiederholende Verpackungsoperationen auszuführen, bei denen Komponenten in Kisten verpackt werden. Daher muss ein Roboter bei einer Verpackungsoperation zuerst eine Zielkiste lokalisieren, ein Teil oder eine Komponente, das bzw. die sich innerhalb der Kiste befindet, identifizieren und dann eine Greiforgansteuerungssequenz ausführen, um auf die identifizierte Komponente in einer gegebenen Weise einzuwirken.
-
ZUSAMMENFASSUNG
-
Es wird hier ein Robotersystem offenbart, das einen Roboter, beispielsweise einen Materialhandhabungsroboter mit einem Greiforgan, umfasst. Das Robotersystem enthält außerdem eine oder mehrere dreidimensionale Punktwolkenkameras (3D-Punktwolkenkameras), die auch als Rot-, Grün-, Blau-Tiefenkameras (RGB-D-Kameras) bezeichnet werden, und einen Controller in Verbindung mit dem Roboter und der einen oder den mehreren Kameras. Jede Kamera bildet ein Zielobjekt mit Hilfe einer Aufnahme aus einer 3D-Punktwolke mit Tiefeninformationen und zweidimensionalen (2D) Rot-, Grün-, Blau-Farbdaten (RGB-Farbdaten) ab und gibt eine automatisch synchronisierte Datendatei mit den 2D-Farbdaten und den 3D-Tiefendaten aus. Der Controller, der als eine Computervorrichtung mit einem Prozessor und einem konkreten nicht vorübergehenden Speicher ausgeführt sein kann, ist so programmiert oder anderweitig ausgestaltet, dass er die 2D- und 3D-Informationen von der Kamera automatisch zusammenführt, und dass er danach Ebenen und Linien in den zusammengeführten Informationen bei verschiedenen Bildtiefen segmentiert, um eine mögliche Kiste/eine Kandidaten-Kiste im Arbeitsraum des Roboters zu lokalisieren und um deren Position und Orientierung zu identifizieren. Wenn die Kandidatenkiste mit bekannten Parametern der Zielkiste übereinstimmt, d. h. einer Kiste mit bekannten Abmessungen und/oder Farbeigenschaften, führt der Controller eine Steuerungsaktion mit Bezug auf die Zielkiste aus. Beispielhafte Steuerungsaktionen können umfassen, dass ein Ergreifen und/oder Bewegen der Zielkiste und/oder einer Komponente, die sich darin befindet, durch ein Greiforgan des Roboters mit Hilfe von Steuerungsbefehlen, die an den Roboter übertragen werden, befohlen wird.
-
Bei einer speziellen Ausführungsform enthält ein Robotersystem einen Roboter mit einem Greiforgan, eine dreidimensionale Punktwolkenkamera (3D-Punktwolkenkamera) und einen Controller. Die Kamera kann betrieben werden, um eine Datendatei mit zweidimensionalen Farbdaten (2D-Farbdaten) und 3D-Punktwolken-Tiefendaten aufzunehmen und auszugeben. Der Controller, der mit der 3D-Punktwolkenkamera und dem Roboter in Verbindung steht, enthält einen Prozessor und einen Speicher, in dem Anweisungen zum Lokalisieren einer Zielkiste aufgezeichnet sind. Die Ausführung der Anweisungen durch den Prozessor veranlasst, dass der Controller die Datendatei von der 3D-Punktwolkenkamera und außerdem einen Satz von Eingabekriterien empfängt. Der Controller detektiert mehrere 2D-Liniensegmente und mehrere 3D-Liniensegmente in der empfangenen Datendatei und erzeugt einen Satz von 3D-Linien, was umfasst, dass zumindest einige der 2D-Liniensegmente auf mindestens einige der mehreren 3D-Liniensegmente zurückprojiziert werden. Außerdem gruppiert der Controller den erzeugten Satz von 3D-Linien in Gruppen mit sich schneidenden Linien, führt eine Normalvektor-Gruppierungsfunktion (NVG-Funktion) an den Gruppen der sich schneidenden Linien aus, um dadurch einen Satz möglicher Ebenen/Kandidaten-Ebenen zu identifizieren und identifiziert Sätze von sich schneidenden Ebenen aus dem Satz von Kandidaten-Ebenen. Mögliche Kisten/Kandidaten-Kisten werden dann aus den Sätzen von sich schneidenden Ebenen identifiziert und der Controller lokalisiert eine Zielkiste mit Hilfe der empfangenen Eingabekriterien aus den identifizierten Kandidaten-Kisten. Der Controller ist außerdem ausgestaltet, um die Ausführung einer Steuerungsaktion an der Zielkiste durch das Greiforgan des Roboters zu befehlen.
-
Ein Verfahren zur Verwendung mit dem Robotersystem umfasst, dass mit Hilfe eines Controllers des Robotersystems ein Satz von Eingabekriterien empfangen wird und dass mit Hilfe des Controllers eine Bilddatendatei von einer Punktwolkenkamera des Robotersystems empfangen wird. Die Bilddatendatei enthält 2D-Farbdaten, die typischerweise als Rot-, Grün-, Blau-Daten (RGB-Daten) beschrieben sind, und 3D-Tiefendaten. Das Verfahren umfasst außerdem, dass mehrere 2D-Liniensegmente und mehrere 3D-Liniensegmente in der empfangenen Datendatei detektiert werden, dass ein Satz von 3D-Linien erzeugt wird, was umfasst, dass zumindest einige der 2D-Liniensegmente auf mindestens einige der 3D-Liniensegmente zurückprojiziert werden, und dass der erzeugte Satz von 3D-Linien in Gruppen von sich schneidenden Linien gruppiert wird. Zusätzlich umfasst das Verfahren, dass eine NVG-Funktion an den Gruppen von sich schneidenden Linien ausgeführt wird, um einen Satz von Kandidaten-Ebenen zu identifizieren, dass Sätze von sich schneidenden Ebenen aus dem Satz von Kandidaten-Ebenen identifiziert werden, und dass Kandidaten-Kisten aus den Sätzen von sich schneidenden Ebenen identifiziert werden. Anschließend fährt das Verfahren fort, indem mit Hilfe der Eingabekriterien eine Zielkiste aus den identifizierten Kandidaten-Kisten lokalisiert wird, und es umfasst, dass mit Hilfe des Controllers eine Ausführung einer Steuerungsaktion an der Zielkiste durch ein Greiforgan eines Roboters des Robotersystems befohlen wird.
-
Bei einer anderen Ausführungsform enthält das Robotersystem einen Materialhandhabungsroboter mit einem Greiforgan in der Form eines mehrfingrigen Greifers, eine 3D-Punktwolkenkamera, die betrieben werden kann, um eine Datendatei mit 2D-Daten in der Form von RGB-Farbbilddaten und 3D-Punktwolken-Tiefendaten aufzunehmen und auszugeben, und einen Controller in Verbindung mit der Punktwolkenkamera und dem Roboter. Der Controller enthält einen Prozessor und einen Speicher, in dem Anweisungen zum Lokalisieren einer Zielkiste aufgezeichnet sind. Die Ausführung der Anweisungen durch den Prozessor bewirkt, dass der Controller die Datendatei von der 3D-Punktwolkenkamera empfängt, dass er einen Satz von Eingabekriterien empfängt, welche eine Länge, eine Breite, eine Höhe und/oder eine Farbe der Zielkiste enthalten, und dass er mehrere 2D-Liniensegmente und mehrere 3D-Liniensegmente in der empfangenen Datendatei detektiert. Außerdem führt der Controller in dieser Ausführungsform eine Vorverarbeitung der empfangenen Bilddatendatei mit Hilfe eines Tiefpassfilters aus, um Signalrauschen aus der Datendatei zu entfernen, bevor er die 2D- und 3D-Liniensegmenge detektiert, und er erzeugt einen Satz von 3D-Linien, was umfasst, dass er mindestens einige der 2D-Liniensegmente zurück auf mindestens einige der 3D-Liniensegmente mit Hilfe eines statistischen Ausgleichsprozesses projiziert.
-
Bei dieser Ausführungsform ist der Controller außerdem ausgestaltet, um den erzeugten Satz von 3D-Linien in Gruppen von sich schneidenden Linien zu gruppieren, um eine NVG-Funktion an den Gruppen von sich schneidenden Linien auszuführen, um einen Satz von Kandidaten-Ebenen zu identifizieren, um Sätze von sich schneidenden Ebenen aus dem Satz von Kandidaten-Ebenen zu identifizieren, und um Kandidaten-Kisten aus den Sätzen von sich schneidenden Ebenen zu identifizieren. Anschließend lokalisiert der Controller eine Ziel-Kiste mit Hilfe der Eingabekriterien aus den identifizierten Kandidaten-Kisten und befiehlt ein Ergreifen der lokalisierten Zielkiste durch den Greifer des Roboters.
-
Die vorstehenden Merkmale und Vorteile und andere Merkmale und Vorteile der vorliegenden Erfindung ergeben sich leicht aus der folgenden genauen Beschreibung der besten Arten, um die Erfindung auszuführen, wenn sie in Verbindung mit den beiliegenden Zeichnungen gelesen wird.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist eine schematische Veranschaulichung einer beispielhaften Ausführungsform eines Robotersystems mit einer Funktionalität zur Ortsbestimmung einer dreidimensionalen Kiste (3D-Kiste), die hier offengelegt wird.
-
2 ist ein Flussdiagramm, das ein Verfahren zum Lokalisieren und Identifizieren einer Zielkiste mit Hilfe des in 1 gezeigten Robotersystems beschreibt.
-
3 ist eine schematische Darstellung einer 3D-Linien-Zusammenführungsaufgabe, welche 2D- und 3D-Liniensegmente als Teil des in 2 gezeigten Verfahrens zusammenführt oder korreliert.
-
4 ist eine schematische Darstellung einer Liniengruppierungsaufgabe des Verfahrens von 2.
-
5 ist eine schematische Darstellung einer unzureichenden Ebenengruppierungsaufgabe des in 2 gezeigten Verfahrens.
-
6 ist eine schematische Darstellung von möglichen Kistenkonstruktionsentscheidungen des in 1 gezeigten Controllers.
-
GENAUE BESCHREIBUNG
-
Mit Bezug auf die Zeichnungen, bei denen gleiche Bezugszeichen in den mehreren Ansichten gleiche oder ähnliche Komponenten bezeichnen, und mit 1 beginnend, ist ein Robotersystem 10 gezeigt, das eine oder mehrere dreidimensionale Punktwolkenkameras (3D-Punktwolkenkameras) 12, die auch als Rot-, Grün-, Blau-Tiefenkameras (RGB-D-Kameras) bezeichnet werden, einen Roboter 14 mit Gelenken 15 und einem Greiforgan 16, und einen Controller (C) 20 aufweist. Der Controller 20, der mit dem Roboter 14 und der einen oder den mehreren Kameras 12 in Verbindung steht, ist so programmiert, dass er ein 3D-Zielobjekt in der Form einer Kiste 18 mit Hilfe der Ausführung von Anweisungen, die ein Verfahren 100 verkörpern, wobei ein Beispiel dafür nachstehend mit Bezug auf 2 beschrieben wird, automatisch lokalisiert und identifiziert. Das Robotersystem 10 kann verschiedene andere Sensoren beim Ausführen der ihm zugewiesenen Arbeitsaufgaben verwenden. Obwohl sie der Einfachheit halber in 1 weggelassen sind, können beispielhafte Sensoren Endschalter, Näherungssensoren, Kraft- oder Lastsensoren, taktile Sensoren und dergleichen umfassen.
-
Im Umfang der vorliegenden Erfindung kann die Kiste 18 von 1 eine beliebige rechteckige Kiste des Typs sein, der verwendet wird, um Komponenten oder Teile im Lager vorzuhalten, oder um derartige Komponenten in einer Produktionsanlage oder Lagerhallenanlage zu transportieren. Das heißt, dass die Kiste 18 durch lineare Kanten 21 in jeder ihrer Längen(L)-, Breiten(W)- und Hohen(H)-Abmessungen definiert ist. Diese herkömmlichen Kisten 18 können gestapelt, zusammengestellt oder gruppiert sein oder sie können einzeln überall in einer gegebenen Anlage angeordnet sein. Um zu ermöglichen, dass der Roboter 14 eine gewünschte Steuerungsaktion an der Kiste 18 ausführt, etwa das Ergreifen und/oder Bewegen der Kiste 18 und/oder eines beliebigen ihrer Inhalte mit Hilfe des Greiforgans 16, muss der Roboter 14 zunächst in der Lage sein, die Kiste 18 aus dem potentiellen Signalrauschen zu lokalisieren und zu identifizieren, das durch Arbeiter, Maschinen und Gerätschaften in einer typischen Anlage bereitgestellt wird.
-
Typische Sichtsysteme und hochauflösende Bildgebungsvorrichtungen können verwendet werden, um Objekte in einer Anlage zu lokalisieren. Aufgrund der relativ hohen Kosten der Hardware, der Komplexität der Bildverarbeitung und der Notwendigkeit, die Sichtsysteme mit einer umfangreichen Bibliothek aus Trainingsbildern zu trainieren, können derartige Vorgehensweisen jedoch unerwünscht sein. Die vorliegende Erfindung zielt darauf ab, ein explizites Training des Sichtsystems zu vermeiden, indem nur Abmessungen und/oder die Farbe einer Zielkiste angegeben wird, die durch den Roboter 14 lokalisiert werden soll. Die Zielkisten können in einer Echtzeitanwendung auf robuste Weise lokalisiert werden, indem 2D- und 3D-Informationen von den 3D-Punktwolkenkameras 12 zusammengeführt werden. Die vorliegende Herangehensweise nutzt zu ihrem Vorteil die relativen Stärken von beiden Bildtypen, wie nachstehend offengelegt wird. Um die Kosten weiter zu reduzieren, können die 3D-Punktwolkenkameras 12 als relativ kostengünstige Gaming-Kameras des Typs, der in der Technik bekannt ist, ausgeführt sein, und daher können die Kosten zur Implementierung der vorliegenden Herangehensweise im Vergleich mit existierenden Maschinenlerntechniken, etwa neuronalen Netzen, Stützvektormaschinen [engl.: Support-Vector-Machines] und dergleichen attraktiv sein.
-
Der Roboter 14 von 1 kann als Materialhandhabungsroboter ausgeführt sein, der als Greiforgan 16 einen betätigbaren Greifer aufweist, der geeignet ist, um die Kiste 18 zu ergreifen oder anzuheben, sobald die Kiste 18 lokalisiert und korrekt als Zielkiste identifiziert wurde. Als Beispiel kann der Roboter 14 als ein typischer sechsachsiger Industrieroboter aufgebaut sein, der auf einen Satz von Eingabebefehlen (Pfeil 11) von dem Controller 20 anspricht. Die Eingabebefehle (Pfeil 11) können als Kraft-, Impedanz- und/oder Positionsbefehle oder beliebige andere geeignete Befehle ausgeführt sein, welche letztlich das Greiforgan 16 in die Nähe der und in Kontakt mit der Kiste 18 manövrieren. Obwohl es der Einfachheit halber weggelassen wurde, kann jedes Gelenk 15 des Roboters 14 durch ein oder mehrere Gelenkaktoren angetrieben werden, z. B. Kugelgewinde-Gelenkmotoren, lineare Aktoren, rotatorische Aktoren oder dergleichen, wie in der Technik gut verstanden wird.
-
Der Controller 20 von 1 kann als eine oder mehrere Computervorrichtungen mit einem Prozessor (P) 22 und einem konkreten, nicht vorübergehenden Speicher (M) 24, in dem Anweisungen zum Ausführen des Verfahrens 100 aufgezeichnet sind, ausgeführt sein. Der Speicher 24 kann einen magnetischen oder optischen Speicher, einen elektrisch löschbaren programmierbaren Festwertspeicher (EEPROM) und dergleichen umfassen. Nach Bedarf kann zusätzlicher vorübergehender Speicher enthalten sein, z. B. Speicher mit wahlfreiem Zugriff (RAM), Speicher für interne Signalpuffer usw. Andere Hardware des Controllers 20 kann einen Hochgeschwindigkeits-Taktgeber, Analog/Digital-Schaltungen (A/D-Schaltungen), Digital/Analog-Schaltungen (D/A-Schaltungen) und beliebige notwendige Eingabe/Ausgabe-Schaltungen und -Vorrichtungen (I/O) sowie Signalaufbereitungs- und Pufferelektronik umfassen. Einzelne Steuerungsalgorithmen, die im Controller 20 vorhanden sind oder für den Controller 20 leicht zugänglich sind, können im Speicher 24 und/oder einem anderen geeigneten Speicher gespeichert sein und mit Hilfe des Prozessors 22 automatisch ausgeführt werden, um die erforderliche Steuerungsfunktionalität bereitzustellen.
-
Immer noch mit Bezug auf 1, können die 3D-Punktwolkenkameras 12 betrieben werden, um die Kiste 18 immer dann abzubilden, wenn die Kiste 18 in einem Sichtfeld 17 der Kameras 12 positioniert ist, und um aufgenommene Wolkendaten (Pfeil 19) der Kiste 18 zur Verarbeitung in Übereinstimmung mit dem Verfahren 100 zurück an den Controller 20 zu übertragen. Wie in der Technik bekannt ist, ist eine 3D-Punktwolke ein Satz von Datenpunkten in einem 3D-Koordinatensystem, etwa dem Kartesischen X-, Y-, Z-Koordinatensystem. Diese Kameras sind in der Lage, eine beliebige Anzahl von Datenpunkten aufzunehmen, welche die Oberflächenkontur eines Zielobjekts beschreiben, und um die aufgenommenen Punktwolkendaten (Pfeil 19) als eine Tiefendatendatei mit synchronisierten Farbdaten auszugeben. Der Controller 20 kann vorbestimmte Zielinformationen (Pfeil 13) empfangen, welche die bekannte Größe, Form, Farbe und/oder andere beschreibende Parameter der speziellen Zielkiste definieren, die durch den Roboter 14 lokalisiert werden soll.
-
Folglich werden dem in 1 gezeigten Controller 20 die Abmessungen, die Farbe und/oder andere Identifizierungsmerkmale der Zielkiste, die er zu lokalisieren versucht, bekannt gegeben, bevor die von der bzw. den 3D-Punktwolkenkameras 12 aufgenommenen Punktwolkendaten (Pfeil 19) verarbeitet werden. Obwohl in 1 zur Einfachheit der Veranschaulichung zwei 3D-Punktwolkenkameras 12 gezeigt sind, kann das vorliegende Verfahren 100 mit nur einer 3D-Punktwolkenkamera 12 oder mit einer beliebigen anderen Anzahl von 3D-Punktwolkenkameras 12 arbeiten. Beispielhafte 3D-Punktwolkenkameras 12 können ohne Einschränkung eine beispielhafte 2D-Auflösung von 640 × 480 Pixeln für bis zu 30 Bilder pro Sekunde oder eine Auflösung von 1280 × 960 für bis zu 12 Bilder pro Sekunde aufweisen. Die 3D-Punktwolkenkameras 12 können eine beispielhafte 3D-Punktgenauigkeit und Tiefenerfassungsauflösung von etwa 0,3 mm bei einem Abstand von 1 m vom Zielobjekt aufweisen, und sie können von dem abgebildeten Zielobjekt etwa 0,5 bis etwa 1,5 m entfernt positioniert sein. Andere Kamerakonfigurationen können verwendet werden, ohne von dem beabsichtigten erfinderischen Umfang abzuweichen, sofern die aufgenommenen Punktwolkendaten (Pfeil 19) 2D-Farbbilddaten und 3D-Tiefendaten enthalten und diese automatisch synchronisiert werden. Wie in der Technik bekannt ist, bezeichnet der Begriff ”automatisch synchronisieren” die zeitliche Synchronisation der aufgenommenen 2D-Daten mit den 3D-Daten, die in die gleichen Punktwolkendaten (Pfeil 19 von 1) aufgenommen wurden.
-
Mit Bezug auf 2 beginnt eine beispielhafte Ausführungsform des Verfahrens 100 mit Schritt 102, bei dem die aufgenommenen Punktwolkendaten (Pfeil 19 von 1) empfangen und vorverarbeitet werden. Die Punktwolkendaten enthalten sowohl 2D-Farbdaten (RGB-Daten) als auch 3D-Positionsdaten, wobei beispielsweise jeder Datenpunkt in der Punktwolke X-, Y- und Z-Koordinaten aufweist. Die Punktwolkenkameras 12 sind automatisch synchronisiert, was, wie in der Technik bekannt ist, die zeitliche Synchronisation der aufgenommenen 2D-Daten mit den 3D-Daten, die in die gleichen Punktwolkendaten (Pfeil 19 von 1) aufgenommen wurden, bezeichnet. Der Begriff ”Vorverarbeitung” bezeichnet bekannte Bildverarbeitungstechniken wie etwa eine Bildglättung und Kantenverbesserung. Die Glättung und Verbesserung kann das Unterdrücken von hoch- und/oder niederfrequentem Rauschen in einem aufgenommenen Bild umfassen, indem etwa ein spezielles Frequenzband unter Verwendung eines Bandpassfilters und dergleichen ausgefiltert wird.
-
Bei Schritt 104 führt der Controller 20 als Nächstes eine 2D/3D-Liniendetektionssequenz aus den vorverarbeiteten Bildern von Schritt 102 aus. In der Technik sind verschiedene Verfahren bekannt, um lineare Merkmale in einem Bild zu detektieren. Derartige Herangehensweisen werden typischerweise bei der Computerbilderfassung, der Bildsegmentierung und der Mustererkennung verwendet. Beispielhafte Liniendetektionsprozesse umfassen ohne Einschränkung die Hough-Transformation oder die Schnelle Hough-Transformation.
-
Bei Schritt 106 führt der Controller 20 von 1 die zuvor bei Schritt 104 detektierten 2D- und 3D-Linien zusammen. Wie vorstehend erwähnt wurde, sind die Kameratypen, die für die Punktwolkenkameras 12 von 1 verwendet werden, 3D-Punktwolkenkameras, Vorrichtungen, die 2D-Daten als RGB-Bild und zugehörige 3D-Punkte ausgibt, welche XYZ- oder andere 3D-Positionen im freien Raum beschreiben. Im Vergleich mit 3D-Daten sind 2D-Daten präziser, aber bei 2D-Daten weiß man nicht genau, wo sich ein aufgenommener 2D-Datenpunkt im freien Raum befindet. Andererseits liefern 3D-Daten die fehlenden Ortsbestimmungsinformationen, aber diese zusätzlichen Informationen sind im Vergleich mit den 2D-Daten weniger genau. Schritt 106 umfasst daher, dass diese verschiedenen Datenteile für das gleiche Ziel zusammengeführt werden.
-
Kurz mit Bezug auf 3 umfasst ein beispielhafter Satz von Linien 40, die von Schritt 104 ausgegeben wurden, 2D-Liniensegmente 42, welche die detektierten 2D-Linien repräsentieren, und 3D-Liniensegmente 44, welche die 3D-Punktwolkendaten aus der gleichen automatisch synchronisierten Bilddatendatei von den 3D-Punktwolkenkameras 12 von 1 repräsentieren. Schritt 106 von 2 kann umfassen, dass die 2D-Daten zurück in den 3D-Raum projiziert werden, wie durch Pfeile A angezeigt ist. Im Vergleich mit 2D-Daten sind 3D-Daten allgemein verrauscht und weniger genau, und sie sind daher unstetig. Das bedeutet, dass nach dem Stattfinden der Liniendetektion bei Schritt 104 in den 3D-Daten immer noch Lücken existieren können, wie durch die Abstände zwischen den separaten 3D-Segmenten 44 dargestellt ist. Die Daten von den 2D-Liniensegmenten 42 können durch den Controller 20 von 1 zurück in den 3D-Raum projiziert werden, um die Lücken in den 3D-Liniensegmenten 44 auszufüllen, beispielsweise unter Verwendung eines statistischen Ausgleichsansatzes. Schritt 106 erzeugt einen Satz von neuen 3D-Linien, welche zuvor segmentierte 3D-Liniensegmente verbinden können, die mit einem oder mehreren 2D-Liniensegmenten korrelieren. Nachdem dies stattgefunden hat, können die 2D-Linieninformationen von Schritt 104 verworfen werden. Das Verfahren 100 geht dann zu Schritt 108 weiter.
-
Schritt 108 von 2 kann umfassen, dass mit Hilfe des Controllers 20 von 1 eine Liniengruppierungsfunktion ausgeführt wird, um festzustellen, wie oder ob sich die neuen 3D-Linien von Schritt 106 schneiden. Wenn sich die Linien bei einem Punkt P schneiden, werden die Linien als potentielle Kandidaten-Liniengruppen gruppiert, d. h. LG = (L1, L2, P), wobei LG eine gegebene Kandidaten-Liniengruppe repräsentiert, L1 eine Linie in der Kandidatengruppe repräsentiert, L2 eine Schnittlinie in der gleichen Gruppe ist und P ein Schnittpunkt im 3D-Raum der Linien L1 und L2 ist.
-
Kurz mit Bezug auf 4 kann der Controller 20 von 1 einen Normalvektor (n) für jedes sich schneidende Linienpaar (L1, L2, P) berechnen, um Schritt 108 auszuführen. Andere Kandidaten-Linien sind als LC repräsentiert. Nach Bedarf können alle Liniensegmente verlängert werden, um den Schnittpunkt P herauszufinden. Der Normalvektor (n) kann als das Kreuzprodukt der Linien L1 und L2 berechnet werden, d. h. n = L1 × L2, wie in der Technik gut bekannt ist. Folglich ist die Ausgabe von Schritt 108 ein Satz von Normalvektoren (n).
-
Schritt 110 von 2 umfasst das Durchführen eines Normalvektorgruppierungsprozesses (NVG-Prozesses). Bekannte NVG-Prozesse beruhen auf der Tatsache, dass 3D-Punkte, die sich auf einer gemeinsamen Ebene befinden, ähnliche Normalvektoren (n) aufweisen werden. Daher verwendet NVG den IJK-Raum, welcher, wie in der Technik bekannt ist, ein weiterer 3D-Koordinatenraum ist, der rechtwinklig zu dem XYZ-Raum ist, um festzustellen, welche Normalvektoren (n) von Schritt 108 in die gleiche Richtung zeigen. Je besser eine Ansammlung von Normalvektoren konzentriert ist, desto wahrscheinlicher ist es, dass die Vektoren an der gleichen ebenen oder planaren interessierenden Oberfläche entspringen.
-
Eine derartige Oberfläche kann eine rechteckige Oberfläche der Zielkiste sein, die der Roboter 14 von 1 als Teil des Verfahrens 100 zu lokalisieren versucht. Daher gibt Schritt 110 einen Satz von Kandidaten-Ebenen aus, indem er einen Satz von Vektoren Ni von k sich schneidenden Paaren gruppiert, d. h. Ni = {(L1, L2, P)k}. Sobald der Satz von Kandidaten-Ebenen bestimmt worden ist, geht das Verfahren 100 zu Schritt 112 weiter.
-
Mit Bezug auf 5 gruppiert der Controller bei Schritt 112 als Nächstes Ebenen aus den Kandidaten-Ebenen von Schritt 110 in eine Ebenengruppierung (PG) oder eine unzureichende Ebenengruppierung (DPG). In der Ebenengruppierung wird die Gruppe als PG = (L1, L2, L3, L4, n) beschrieben. Wenn zwei orthogonale Sätze mit dem gleichen Normalvektor (n) und der gleichen Phase identifiziert werden, beschreiben diese eine einzige Ebene. Bei der unzureichenden Ebenengruppierung kann die Gruppe als DPG = (L4, L5, L6, n) beschrieben werden, d. h. weniger als vier Linien sind für eine mögliche Seite (F) vorhanden. Daher wird etwas beschrieben, das weniger als eine vollständige Ebene ist, in diesem speziellen Fall durch sich schneidende Liniensegmente (L5, L6) und ein Liniensegment L4, welche alle tatsächlich in der gleichen Ebene liegen können oder auch nicht. Diese möglichen Ebenen/Kandidaten-Ebenen können dennoch brauchbar und gültig sein und können daher von dem Controller 20 von 1 als ergänzende Informationen, die zum Identifizieren einer gegebenen Zielkiste beitragen, betrachtet werden.
-
Schritt 114 umfasst, dass aus den Kandidaten-Ebenen, die bei Schritt 112 bestimmt wurden, Kisten konstruiert werden. Der Controller 20 kann aus den Ebenen-Gruppierungen (PG) von Schritt 112 feststellen, ob drei Ebenen (P1, P2, P3) wie in 6 gezeigt, identifiziert wurden, die in rechten Winkeln zueinander angeordnet sind, d. h. in der Form einer typischen rechteckigen Kiste. Schritt 114 kann umfassen, dass Ebenen zu verschiedenen Kandidaten-Kisten mit drei Ebenen, zwei Ebenen und einer Ebene gruppiert werden. Nach dieser Gruppierung geht das Verfahren 100 zu Schritt 116 weiter.
-
Bei Schritt 116 von 2 trifft der Controller 20 von 1 als Nächstes eine Entscheidung bezüglich der Kisten von Schritt 114. In 6 ist eine Kandidaten-Kiste (BC) mit drei Ebenen (P1, P2, P3) gezeigt. Eine derartige Kandidaten-Kiste (BC) weist eine große Wahrscheinlichkeit auf, dass sie eine tatsächliche rechteckige Kiste ist. Auch wenn es nur zwei Ebenen gibt, die in rechten Winkeln zueinander angeordnet sind, beispielsweise die Ebenen P1 und P2, können diese Informationen dennoch eine wahrscheinliche Kandidaten-Kiste nahelegen, da einige zusätzliche Abmessungsdaten in der Form der Tiefe bereitgestellt werden. Wenn nur eine Ebene (P1, P2 oder P3) identifiziert wird, ist dies im Vergleich mit einer Kandidaten-Kiste, die zwei oder drei Ebenen aufweist, eine schlechte Kandidaten-Kiste, da Tiefeninformationen mit Hilfe einer einzigen Ebene nicht bereitgestellt werden. Jedoch kann die Identifikation einer einzigen Ebene dennoch für den Controller 20 von 1 nützlich sein, beispielsweise, indem bekannte Abstände zwischen Scheitelpunkten mit vorbestimmten Größenkriterien für die spezielle Zielkiste, die gerade lokalisiert wird, abgeglichen werden.
-
Als Teil von Schritt 116 kann der Controller 20 von 1 eine Zielkiste aus den identifizierten Kandidaten-Kisten mit Hilfe von Eingabekriterien wie etwa den vorbestimmten Zielinformationen (Pfeil 13 von 1) lokalisieren. Wenn beispielsweise die vorbestimmten Zielinformationen eine Kiste beschreiben, die Abmessungen von 0,5 m auf jeder Seite aufweist, kann der Controller 20 die Abmessungen der Kandidaten-Kiste (BC) mit diesen Informationen vergleichen, um festzustellen, ob die Abmessungen in ausreichender Weise übereinstimmen. Farbe ist ein weiterer möglicher Vergleichsstandard.
-
Wenn eine Übereinstimmung detektiert wird, kann der Controller 20 die Ausführung einer Steuerungsaktion an der Zielkiste, z. B. der Kiste 18 von 1, durch das Greiforgan 16 des Roboters 14, der in 1 gezeigt ist, befehlen. Beispielhafte Steuerungsaktionen können umfassen, dass dem Roboter 14 mit Hilfe der Übertragung der Eingabebefehle (Pfeile 11 von 1) an die Aktoren der Gelenke 15, die in der gleichen Figur gezeigt sind, befohlen wird, das Greiforgan 16 an der Kiste 18 festzuklemmen. Auf diese Weise kann von dem Roboter 14 auf die Kiste 18 eingewirkt werden, sobald sie unter Verwendung des vorstehend beschriebenen Verfahrens korrekt als eine Zielkiste identifiziert wurde.
-
Obwohl die besten Arten zum Ausführen der Erfindung im Detail beschrieben wurden, wird der Fachmann auf dem Gebiet, das diese Erfindung betrifft, verschiedene alternative Konstruktionen und Ausführungsformen erkennen, um die Erfindung im Umfang der beigefügten Ansprüche in die Praxis umzusetzen.