-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft eine Informationsverarbeitungsvorrichtung, die bestimmt, ob bei einem Greifen eines Werkstücks eine Beeinträchtigung auftritt.
-
Beschreibung des Standes der Technik
-
In den letzten Jahren wurde eine Technik zum Aufnehmen eines einzelnen Werkstückes von einem Haufen von Werkstücken entwickelt, die ein Bildverarbeitungssystem verwendet, um ein einzelnes Werkstück von einem Haufen von Werkstücken zu identifizieren und die dreidimensionale Position und Ausrichtung des Werkstückes zu erkennen, um das Werkstück mit einer Hand eines Roboters, zum Beispiel an einem Fließband einer Fabrik, zu greifen. Um beim Greifen des Werkstückes, das durch die Technik erkannt wird, zu verhindern, dass die Hand mit dem Container der Werkstücke oder mit einem peripheren Objekt wie etwa irgendeinem anderen Werkstück außer dem zu greifenden Werkstück kollidiert, ist es notwendig, eine Verarbeitung durchzuführen, um im Voraus zu bestimmen, ob solch eine Kollision auftritt.
-
In einem Verfahren zum Beispiel, das in der
japanischen Patentanmeldungs-Offenlegungsschrift Nr.: 2010-207989 diskutiert wird, wird eine Entfernung von einem Sensor, der über einem Zielwerkstück angebracht ist, zu dem Zielwerkstück in einem Bildformat erhalten, um die Position und Ausrichtung des Werkstücks von den erhaltenen Entfernungsinformationen (Bereichsinformationen) zu erkennen, und dann wird im Voraus eine Beeinträchtigungsbestimmung basierend auf der Form, Position und Ausrichtung einer Hand zum Greifen des Werkstückes und den erhaltenen Entfernungsinformationen vorgenommen. Genauer wird die Hand virtuell bis zu einer Referenzhöhenposition in der Z-Richtung des erkannten Werkstückes virtuell bewegt. Dann wird die Hand in der Z-Richtung von der Referenzhöhenposition zu einer Position zum Greifen des Werkstücks virtuell gesenkt. Nachdem die Hand gesenkt wurde, werden der erste und zweite Finger an der Greifposition leicht geöffnet und eine virtuelle flache Platte, die für die Beeinträchtigungsbestimmung zu verwenden ist, wird virtuell derart eingestellt, das sie eine angemessene Toleranz Δ von jeder der Fingerspitzen der Finger zu dem unteren Teil in der Z-Richtung aufweist, und ebenso eine angemessene Toleranz Δ zwischen jeder der Fingerspitzen und dem Werkstück aufweist. Wenn in den Entfernungsinformationen in dem Bildformat, das durch den Sensor erhalten wird, ein Objekt, das einen Z-Wert aufweist, der größer als der der virtuellen flachen Platte in einem Entfernungswert eines Pixels, das die virtuelle flache Platte überlappt, vorhanden ist, wird bestimmt, dass eine Beeinträchtigung auftreten wird. Somit kann mit einer hohen Geschwindigkeit und im Voraus bestimmt werden, ob eine Beeinträchtigung mit einem peripheren Objekt auftreten wird, wenn die Hand das erkannte Werkstück greift.
-
In dem in der
japanischen Patentanmeldungs-Offenlegungsschrift Nr.: 2010-207989 diskutierten Verfahren sind jedoch ebenso Entfernungsinformationen, die die Form des zu greifenden Zielwerkstücks darstellen, in den erhaltenen Entfernungsinformationen in dem Bildformat enthalten. In dem in der japanischen Patentanmeldungs-Offenlegungsschrift Nr.: 2010-207989 offenbarten Verfahren ist jeder der Finger durch eine angemessene Toleranz Δ von dem Werkstück getrennt, um eine fehlerhafte Bestimmung zu vermeiden, dass es eine Beeinträchtigung mit dem Zielwerkstück selbst gibt. Aus diesem Grund kann beim Greifen des Zielwerkstücks bestimmt werden, dass eine Beeinträchtigung mit einem peripheren Objekt auftritt, das die Hand eigentlich nicht beeinträchtigt.
-
Die Druckschrift
US 2012/0158180 A1 beschreibt ein Bestimmen einer Vielzahl von Kandidatenobjekten von gestapelten Werkstücken und ein Bestimmen eines Kandidatenobjekts an einer höchsten Position in eine z-Achsen-Richtung unter der Vielzahl von Kandidatenobjekten als ein zu haltendes Objekt.
-
Weitere Verfahren zur Erkennung von zu greifenden Zielobjekten sind in den folgenden Druckschriften offenbart:
US 2012/0098961 A1 ;
US 2011/0222995 A1 ;
US 2006/0104788 A1 ;
EP 1 422 848 A2 ;
JP 2010-120 141 A .
-
KURZFASSUNG DER ERFINDUNG
-
Es ist eine Aufgabe der vorliegenden Erfindung, eine Informationsverarbeitungsvorrichtung bereitzustellen, die dazu in der Lage ist, zuverlässig zu bestimmen, ob eine Beeinträchtigung zwischen einer Greifeinheit und einer Peripherie eines zu greifenden Zielobjekts auftritt.
-
Um diese Aufgabe zu erreichen ist gemäß einem Aspekt der vorliegenden Erfindung eine Informationsverarbeitungsvorrichtung gemäß Patentanspruch 1 bereitgestellt.
-
Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist eine Informationsverarbeitungsvorrichtung gemäß Patentanspruch 2 bereitgestellt.
-
Gemäß weiteren Aspekten der vorliegenden Erfindung sind Informationsverarbeitungsverfahren gemäß Patentansprüchen 12 und 13, ein computerlesbares Speichermedium gemäß Patentanspruch 14, und ein System gemäß Patentanspruch 15 bereitgestellt.
-
Weitere Aspekte und Merkmale der vorliegenden Erfindung sind in den Unteransprüchen ausgeführt.
-
Gemäß beispielhaften Ausführungsbeispielen der vorliegenden Erfindung ist es möglich, im Voraus korrekt zu bestimmen, ob eine Beeinträchtigung zwischen einem Objekt außer einem zu greifenden Zielwerkstück und einer Hand auftritt.
-
Weitere Merkmale der vorliegenden Erfindung werden aus der folgenden Beschreibung von beispielhaften Ausführungsbeispielen mit Bezug auf die anhängigen Zeichnungen ersichtlich.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 stellt eine Konfiguration eines Systems zum Aufnehmen eines Werkstückes von einem Haufen von Werkstücken (nachstehend als Werkstückaufnahmesystem bezeichnet) gemäß einem ersten beispielhaften Ausführungsbeispiel der vorliegenden Erfindung dar.
-
2 ist ein Blockdiagramm, das ein Beispiel einer Konfiguration einer Informationsverarbeitungsvorrichtung gemäß dem ersten beispielhaften Ausführungsbeispiel der vorliegenden Erfindung darstellt.
-
3 ist ein Ablaufdiagramm, das eine Aufnahmeverarbeitung durch das Werkstückaufnahmesystem, das die Informationsverarbeitungsvorrichtung umfasst, gemäß dem ersten beispielhaften Ausführungsbeispiel der vorliegenden Erfindung darstellt.
-
4A, 4B, 4C und 4D sind schematische Diagramme, die eine Bestimmung darstellen, ob Objekte um ein zu greifendes Zielwerkstück herum eine Hand beeinträchtigen, gemäß einem ersten beispielhaften Ausführungsbeispiel der vorliegenden Erfindung.
-
5A, 5B, und 5C stellen schematische Diagramme dar, die eine Bestimmung darstellen, ob Objekte um ein zu greifendes Zielwerkstück herum eine Hand beeinträchtigen, gemäß einem zweiten beispielhaften Ausführungsbeispiel der vorliegenden Erfindung.
-
6 ist ein Blockdiagramm, das eine Hardwarekonfiguration der Informationsverarbeitungsvorrichtung gemäß einem beispielhaften Ausführungsbeispiel der vorliegenden Erfindung darstellt.
-
BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELE
-
Vor einem Beschreiben von beispielhaften Ausführungsbeispielen der vorliegenden Erfindung, wird eine Konfiguration von Hardware, die in der Informationsverarbeitungsvorrichtung gemäß dem beispielhaften Ausführungsbeispiel umfasst ist, nachstehend mit Bezug auf 6 beschrieben.
-
6 stellt eine Hardwarekonfiguration der Informationsverarbeitungsvorrichtung gemäß einem beispielhaften Ausführungsbeispiel dar. In 6 steuert eine zentrale Verarbeitungseinheit (CPU) 1010 umfassend jede Einrichtung, die mit dieser über einem Bus 1000 verbunden ist. Die CPU 1010 liest Verarbeitungsschritte und ein Programm, das in einem Festwertspeicher (ROM) 1020 gespeichert ist, aus und führt diese bzw. dieses aus. Ein Betriebssystem (OS), jedes Verarbeitungsprogramm gemäß einem beispielhaften Ausführungsbeispiel, und ein Einrichtungstreiber bzw. Gerätetreiber sind in dem ROM 1020 gespeichert, und werden vorübergehend in einem Direktzugriffspeicher (RAM) 1030 gespeichert, um durch die CPU 1010 nach Bedarf ausgeführt zu werden. Eine Eingabeschnittstelle (I/F) 1040 gibt ein Eingabesignal, dass durch die Informationsverarbeitungsvorrichtung ausgeführt werden kann, von einer externen Vorrichtung (wie etwa einem Entfernungssensor oder einer Operationseinrichtung) ein. Eine Ausgabeschnittstelle (I/F) 1050 gibt ein Ausgabesignal, das durch eine externe Vorrichtung verarbeitet werden kann, (wie etwa eine Anzeigeeinrichtung oder eine Robotersteuerung) an die externe Vorrichtung aus.
-
Die CPU 1010 lädt ein Programm, das in dem ROM 1020 gespeichert ist, in den RAM 1030 und führt eine Verarbeitung gemäß jedem der nachstehend beschriebenen Ablaufdiagramme aus, um die vorstehenden Funktionseinheiten zu realisieren. Wenn zum Beispiel Hardware als ein Ersatz einer Softwareverarbeitung unter Verwendung der CPU 1010 konfiguriert wird, muss nur eine Berechnungseinheit oder eine Schaltung entsprechend jeder Funktionseinheit, die hierin beschrieben werden, konfiguriert werden.
-
Ein erstes beispielhaftes Ausführungsbeispiel stellt ein Verfahren bereit, bei dem, wenn ein erfasstes Werkstück zu greifen ist, der Bereich des Zielwerkstücks, das zu greifen ist, auf einem zweidimensionalen Bild unter Verwendung der Position und Ausrichtung des Zielwerkstücks identifiziert wird, so dass im Voraus bestimmt wird, ob eine Hand mit einem peripheren Objekt interferiert.
-
Speziell wird zuerst basierend auf der Position und Ausrichtung des erfassten Werkstücks ein dreidimensionales Formenmodell des Werkstücks auf eine Bildebene, die durch eine virtuelle Kamera mit ähnlichen Kameraparametern wie denen einer Messvorrichtung beobachtet wird, projiziert. Dann werden dreidimensionale Punkte auf dem Entfernungsbild entsprechend Pixeln, auf die das Werkstück projiziert wird, als der Bereich des Zielwerkstücks, das zu greifen ist, bestimmt. Weiterhin werden Daten einer dreidimensionalen Form exklusive den dreidimensionalen Punkten, die als der Bereich des Zielwerkstücks bestimmt sind, und ein Handmodell verwendet, um eine dreidimensionale räumliche Überlappung zu erfassen, um zu bestimmen, ob eine Beeinträchtigung auftritt.
-
Dadurch ist es auch für eine Greifoperation der Hand in unmittelbarer Nähe zu dem zu greifenden Zielwerkstück möglich, korrekt zu bestimmen, ob eine Beeinträchtigung zwischen einem peripheren (umgebenden) Objekt und einer Hand auftritt, ohne eine fehlerhafte Erfassung aufgrund eines Messpunkts des Zielwerkstücks.
-
1 stellt eine Konfiguration eines Werkstückaufnahmesystems 10 inklusive einer Informationsverarbeitungsvorrichtung 1 gemäß dem vorliegenden beispielhaften Ausführungsbeispiel dar. Das Werkstückaufnahmesystem 10 umfasst die Informationsverarbeitungsvorrichtung 1, eine Robotersteuerung 3, und einen Roboterarm 21 mit einer Hand 20, die zum Greifen eines Zielwerkstücks 22 in der Lage ist. Das Werkstückaufnahmesystem 10 ermöglicht, das unter den Zielwerkstücken 22, die in einem Werkstückcontainer 23 enthalten sind, ein Zielwerkstück 22, das keine Beeinträchtigung verursacht, identifiziert und dann mit der Hand 20 gegriffen wird.
-
Die Robotersteuerung 3 umfasst eine Roboterarbeitsanweisungseinheit 18 und eine Steuerungseinheit 19.
-
Basierend auf einem Ausgabeergebnis der Informationsverarbeitungsvorrichtung 1 weist die Roboterarbeitsanweisungseinheit 18 die Robotersteuerungseinheit 19 an, das Zielwerkstück 22, von dem bestimmt ist, dass es keine Beeinträchtigungen zwischen der Hand 20 und einem peripheren Objekt bei einer Greifoperation verursacht, zu greifen.
-
Die Robotersteuerungseinheit 19 empfängt Anweisungsinformationen von der Roboterarbeitsanweisungseinheit 18 und steuert die Operation des Roboterarms 21 und der Hand 20, um das Zielwerkstück 22 zu greifen und zu transportieren.
-
Die Hand (Greifeinheit) 20 ist ein Greiforgan, dass an einem Ausleger an der Spitze des Roboterarms 21 angebracht ist und eine Greifoperation des Zielwerkstücks 22 gemäß der Operationssteuerung der Robotersteuerungseinheit 19 durchführt. Die Hand 20 kann eine Hand einer Magnetart oder einer Anziehungsart sein, die das Zielwerkstück 22 dadurch greift, dass sie sich selbst gegen einen flachen Abschnitt des Zielwerkstücks 22 drückt, oder eine Hand einer Greifart sein, die eine Vielzahl von Fingern (zwei oder drei Fingern) öffnet und schließt, um ein Objekt von innen oder außen zu halten und zu greifen. Außer denen ist jegliche Hand verfügbar, vorausgesetzt, dass es ein Greiforgan mit einem Greifmechanismus ist und an den Roboterarm 21 angebracht werden kann.
-
Der Roboterarm 21 ist ein Roboter mit mehreren Freiheitsgraden, der die Hand 20 zu der Position und Ausrichtung bewegen kann, in der die Hand 20 das Zielwerkstück 22 greifen kann, gemäß der Operationssteuerung der Robotersteuerungseinheit 19.
-
Ein Entfernungssensor (Bereichssensor) 2 ist ein Sensor, der zum Beschaffen eines Entfernungsbildes (Bereichsbildes), das Tiefeninformationen in jedem Pixel speichert, verwendet wird. Als der Entfernungssensor 2 ist ein aktiver Entfernungssensor verfügbar, bei dem reflektiertes Licht von zum Beispiel Laserlicht, Schlitzlicht, oder Zufallspunktmusterlicht, mit dem ein Zielobjekt bestrahlt wird, durch eine Kamera aufgenommen wird, um eine Entfernung durch Triangulation zu messen. Der Entfernungssensor 2 ist nicht auf den Vorstehenden beschränkt und kann ein „time of flight”- bzw. Laufzeitverfahren unter Verwendung einer Laufzeit von Licht verwenden. Alternativ kann ein passives Verfahren verwendet werden, das die Tiefe von jedem Pixel durch Triangulation von einem Bild, das durch eine Stereokamera aufgenommen wird, berechnet. Außer diesen beeinträchtigt kein Verfahren das Wesentliche des vorliegenden beispielhaften Ausführungsbeispiels, vorausgesetzt, dass das Verfahren die dreidimensionale Position der Oberfläche des Zielobjekts von dem Bereichsbild erhalten kann.
-
Eine Konfiguration der Informationsverarbeitungsvorrichtung 1 wird nachstehend mit Bezug auf 2 beschrieben. 2 ist ein Blockdiagramm, das ein Beispiel einer funktionalen Konfiguration der Informationsverarbeitungsvorrichtung 1 darstellt.
-
Die Informationsverarbeitungsvorrichtung 1 umfasst eine Einheit zum Beschaffen bzw. Erhalten von Daten über eine dreidimensionale Form 11, eine Werkstückpositions- und Ausrichtungsherleitungseinheit 12, eine Werkstückmodellspeichereinheit 13, eine Zielbereichidentifikationseinheit 14, eine Handpositions- und Ausrichtungsherleitungseinheit 15, eine Handmodellspeichereinheit 15, und eine Interferenz- bzw. Beeinträchtigungsbestimmungseinheit 17. Jede der Einheiten wird nachstehend beschrieben.
-
Die Einheit zum Beschaffen bzw. Erhalten von Daten über eine dreidimensionale Form 11 beschafft bzw. erhält Daten über eine dreidimensionale Form bzw. dreidimensionale Formdaten, die die Form der Oberfläche eines Haufens der Zielwerkstücke 22 darstellt. Genauer wird ein Bereichsbild durch den Entfernungssensor 2 aufgenommen und dann wird eine Gruppe von dreidimensionalen Punkten bzw. eine dreidimensionale Punktgruppe, die durch Berechnen von dreidimensionalen Koordinaten von den Koordinaten und dem Tiefenwert von jedem Pixel erhalten wird, als die dreidimensionalen Formdaten beschafft.
-
Die Messinformationen, die durch die Einheit zum Beschaffen von Daten über eine dreidimensionale Form 11 erhalten werden, werden in die Werkstücksposition- und Ausrichtungsherleitungseinheit 12 eingegeben. Nachstehend wird das Koordinatensystem, das bezüglich der Werkstückpositions- und Ausrichtungsherleitungseinheit 12 eingestellt ist, als ein Sensorkoordinatensystem bezeichnet. In dem vorliegenden beispielhaften Ausführungsbeispiel wird angenommen, dass eine geometrische Beziehung zwischen dem Entfernungssensor 2 und dem Roboter fest ist und eine relative Position und Ausrichtung zwischen diesen durch vorhergehendes Durchführen einer Robotervisionskalibrierung zum Ermitteln der relativen Position und Orientierung bekannt ist. In dem vorliegenden beispielhaften Ausführungsbeispiel wurde eine Beschreibung unter der Annahme vorgenommen, dass der Entfernungssensor 2 über dem Werkstückcontainer 23 befestigt ist. Der Entfernungssensor 2 kann jedoch an dem Roboterarm 21 befestigt sein.
-
Die Werkstückspositions- und Ausrichtungsherleitungseinheit 12 erfasst ein einzelnes Werkstück 22, das innerhalb des Werkstückcontainer 23 vorhanden ist, basierend auf den Informationen, die durch die Einheit zum Ermitteln von Daten einer dreidimensionalen Form 11 eingegeben werden, und berechnet sechs Parameter, die die Position und Ausrichtung des erfassten Werkstückes 22 in dem Sensorkoordinatensystem angeben.
-
In dem vorliegenden beispielhaften Ausführungsbeispiel sind Elemente von Bereichsbildinformationen, die durch Beobachten des Werkstückes aus einer großen Anzahl von Positionen und Ausrichtungen erhalten werden, in einer Datenbank als Muster im Voraus gespeichert und das Bereichsbild, das durch eine Messung unter Verwendung des Entfernungssensors 2 erhalten wird, wird mit den Mustern abgeglichen, um ein einzelnes Werkstück 22 zu erfassen, so dass eine ungefähre Position und Ausrichtung des Werkstücks 22 berechnet werden. Dann wird die Position und Ausrichtung des Werkstückes 22 wiederholt basierend auf der ungefähren Position und Ausrichtung berechnet. Die Gruppe von dreidimensionalen Punkten, von der erwartet wird, dass diese beobachtet wird, wenn das Werkstück 22 als das Bereichsbild erhalten wird, wurde im Voraus von dem dreidimensionalen Formenmodell des Werkstücks 22 extrahiert, das in der nachfolgenden Verarbeitung zu verwenden ist. Eine entsprechende Beziehung zwischen dieser Gruppe von dreidimensionalen Punkten und der Gruppe von dreidimensionalen Punkten, die von dem Bereichsbild hergeleitet wird, das durch den Entfernungssensor 2 erhalten wird, wird erhalten, und die Position und Ausrichtung des Werkstückes 22 werden berechnet, so dass beide der Gruppen von dreidimensionalen Punkten zusammenpassen. Jedes andere Verfahren als das vorstehend beschriebene Verfahren kann verwendet werden, solange das Verfahren das Bereichsbild, das durch die Einheit zum Beschaffen von Daten über eine dreidimensionale Form 11 erhalten wird, verwenden kann, um ein einzelnes Werkstück 22, das von einem Haufen von Werkstücken zu greifen ist, zu erfassen, und dann dessen dreidimensionale Position und Orientierung herzuleiten.
-
Die Arbeitsmodellspeichereinheit 13 speichert das dreidimensionale Formenmodell des Zielwerkstücks 22, das von einem Haufen zu greifen ist. Als das dreidimensionale Formenmodell (dreidimensionale Modellinformationen) kann zum Beispiel ein Polygonmodell, das ungefähr die dreidimensionale Form des Werkstücks 22 darstellt, verwendet werden. Das Polygonmodell ist durch die dreidimensionalen Koordinaten der Oberflächenpunkte der Zielwerkstückform und durch Verbindungsinformationen zwischen diesen zum Konfigurieren von Dreiecksflächen (Polygonen), die die Form annähern, konfiguriert. Ein Polygon wird allgemein durch ein Dreieck gebildet. Es kann jedoch ebenso durch ein Quadrat oder ein Pentagon geformt werden. Jedes Polygonmodell kann verwendet werden, solange es ungefähr die Form des Werkstückes 22 basierend auf den Koordinaten der Oberflächenpunkte und deren Verbindungsinformationen darstellen kann. Das dreidimensionale Formenmodell ist jedoch nicht auf das Polygonmodell beschränkt. Das dreidimensionale Formenmodell kann ein Modell sein, das die Form mit einem Satz von durch segmentierte Parameter gekrümmte Oberflächen darstellt, was als eine Abgrenzungsrepräsentation („boundary representation”) (B-Rep) bezeichnet wird, wie etwa Daten eines „Computer Aided Design” (CAD-Daten) (CAD-Modell). Außer den vorstehenden kann jedes dreidimensionale Formenmodell des Werkstückes 22 verwendet werden, solange es dazu in der Lage ist, eine Oberflächenform darzustellen. Das dreidimensionale Formenmodell wird verwendet, wenn die dreidimensionalen Punkte entsprechend dem Bereich des Zielwerkstücks 22 von der Gruppe von dreidimensionalen Punkten, die durch das Bereichsbild erhalten wird, identifiziert werden.
-
Die Zielbereichsidentifikationseinheit 14 identifiziert einen Bereich außer dem Bereich des Zielwerkstücks 22 von den dreidimensionalen Formendaten des Raums, der das Zielwerkstück 22 enthält, die durch die Einheit zum Erhalten von Daten über eine dreidimensionale Form 11 erhalten werden. Die Zielbereichsidentifikationseinheit 14 gibt dann Informationen über den identifizierten Bereich an die Beeinträchtigungsbestimmungseinheit 17 aus.
-
Die Handpositions- und Ausrichtungsherleitungseinheit 15 leitet die Position und Ausrichtung der Hand 20 zum Greifen des Zielwerkstücks 22 basierend auf der Position und Ausrichtung des Werkstücks 22, die durch die Werkstückpositions- und Ausrichtungsherleitungseinheit 12 hergeleitet wird, her. Eine spezifische Verarbeitung wird nachstehend beschrieben. Die Handpositions- und Ausrichtungsherleitungseinheit 15 gibt Informationen über die hergeleitete Position und Ausrichtung der Hand 20 an die Beeinträchtigungsbestimmungseinheit 17 aus.
-
Die Handmodellspeichereinheit 16 speichert das dreidimensionale Formenmodell der Hand 20 zum Greifen des Zielwerkstücks 22. Das dreidimensionale Formenmodell der Hand 20 ist ähnlich dem dreidimensionalen Formenmodell des Werkstücks 22 und somit wird die Beschreibung von diesem hier weggelassen. Die Handmodellspeichereinheit 16 gibt das gespeicherte dreidimensionale Formenmodell der Hand 20 an die Handpositions- und Ausrichtungsherleitungseinheit 15 und die Beeinträchtigungsbestimmungseinheit 17 aus.
-
Die Beeinträchtigungsbestimmungseinheit 17 führt eine Beeinträchtigungsbestimmung für den Bereich außer dem Bereich des Zielwerkstücks 22 durch, der durch die Zielbereichsidentifikationseinheit 14 identifiziert wird, in den dreidimensionalen Formendaten, die durch die Einheit zum Beschaffen von Daten über eine dreidimensionale Form erhalten werden. Bei der Beeinträchtigungsbestimmung bestimmt die Beeinträchtigungsbestimmungseinheit 17, ob eine Beeinträchtigung zwischen dem Handmodell in der Position und Ausrichtung der Hand 20, die durch die Handmodellspeichereinheit 16 hergeleitet wird, und einem Objekt um das Zielwerkstück 22 herum auftritt. Für die Beeinträchtigungsbestimmung verwendet die Beeinträchtigungsbestimmungseinheit 17 eine Kollisionsbestimmungstechnik, die allgemein zum Beispiel in einer Spieleprogrammierung verwendet wird, während ein Polygonmodell verwendet wird, das die dreidimensionale Form der Hand 20 darstellt, die in der Handmodellspeichereinheit 16 gespeichert ist. Speziell wird erfasst, ob die Beeinträchtigung auftritt, durch Erfassen einer Überlappung in einem dreidimensionalen Raum zwischen den dreidimensionalen Formendaten, die von dem Bereichsbild erhalten werden, das unter Verwendung eines Visionssystems zum Aufnehmen eines Bildes eines Haufens von Werkstücken erhalten wird, und der Form der Hand 20 in der Position und Ausrichtung zum Greifen des erfassten Werkstücks 22. Die Beeinträchtigungsbestimmungseinheit 17 führt die vorstehend beschriebene Beeinträchtigungsbestimmungsverarbeitung durch. Wenn die Beeinträchtigungsbestimmungseinheit 17 bestimmt, dass keine Beeinträchtigung auftritt, gibt die Beeinträchtigungsbestimmungseinheit 17 Informationen über das Zielwerkstück 22 an die Roboterarbeitsanweisungseinheit 18 aus. Auch wenn die Beeinträchtigungsbestimmungseinheit 17 bestimmt, dass die Beeinträchtigung auftritt, kann die Beeinträchtigungsbestimmungseinheit 17 das Ergebnis der Beeinträchtigungsbestimmung ausgeben. Alternativ kann die Beeinträchtigungsbestimmungseinheit 17 das Ergebnis der Beeinträchtigungsbestimmungen an eine Anzeigeeinrichtung ausgeben, um die Anzeigeeinrichtung zu veranlassen, das Ergebnis der Beeinträchtigungsbestimmung anzuzeigen, anstatt das Ergebnis von dieser direkt an die Roboterarbeitsanweisungseinheit 18 auszugeben.
-
3 ist ein Ablaufdiagramm, das eine Verarbeitung zum Aufnehmen eines Werkstückes von einem Haufen von Werkstücken darstellt, durch vorheriges Bestimmen, ob eine Beeinträchtigung in der Greifoperation auftritt, was unter Verwendung der Informationsverarbeitungsvorrichtung 1 gemäß dem vorliegenden beispielhaften Ausführungsbeispiel durchgeführt wird.
-
In Schritt S201 gibt die Werkstückmodellspeichereinheit 13 das dreidimensionale Formenmodell des Werkstücks 22, das darin gespeichert ist, in die Werkstückspositions- und Ausrichtungsherleitungseinheit 12 und die Beeinträchtigungsbestimmungseinheit 17 ein.
-
In Schritt S202 gibt die Handmodellspeichereinheit 16 das Modell, das die dreidimensionale Form der Hand 20 darstellt, das darin gespeichert ist, an die Handpositions- und Ausrichtungsherleitungseinheit 15 und die Beeinträchtigungsbestimmungseinheit 17 aus. Es wird hier angenommen, dass ein Polygonmodell, das die dreidimensionale Form mit einem Satz von Polygonen annähert, eingegeben wird.
-
In Schritt S203 nimmt die Einheit zum Beschaffen von Daten über eine dreidimensionale Form 11 ein Bereichsbild eines Haufens von Zielwerkstücken 22 auf, berechnet die Koordinatendaten der Gruppe von dreidimensionalen Punkten von ihren Koordinaten und der Tiefe von jedem Pixel und gibt dann die berechneten Koordinatendaten in die Werkstückpositions- und Ausrichtungsherleitungseinheit 12 ein. Die Gesamtzahl von Punkten in der Gruppe von dreidimensionalen Punkten wird als N angenommen. Es sei angenommen, dass die Koordinaten von jedem Punkt der erhaltenen Gruppe von dreidimensionalen Punkten durch ein Referenzkoordinatensystem dargestellt werden. Nachstehend wird jedem Punkt der Gruppe von dreidimensionalen Punkten, der durch das Referenzkoordinatensystem dargestellt ist, eine Identifikation (ID) gegeben, und der i-te dreidimensionale Punkt wird als kc_i bezeichnet. Verbindungsinformationen werden in den Koordinaten von jedem dreidimensionalen Punkt, der in diesem Schritt erzeugt wird, und den Koordinaten von jedem entsprechenden Pixel des Bereichsbildes zum Zweck eines Querverweises aufgezeichnet.
-
In Schritt S204 erfasst die Werkstückpositions- und Ausrichtungsherleitungseinheit
12 ein einzelnes individuelles Werkstück
22, das zu greifen ist, aus dem Haufen von Werkstücken und berechnet sechs Parameter, die die Position und Ausrichtung des erfassten Werkstücks
22 darstellen, in dem Sensorkoordinatensystem. Verschiedene Verfahren können zum Erfassen des individuellen Werkstücks
22 und zum Berechnen der Position und Ausrichtung von diesem verwendet werden. Wie vorstehend beschrieben werden in diesem Schritt das Muster von jedem Bereichsbild, das durch Beobachten des Werkstückes von einer großen Anzahl von Positionen und Ausrichtungen erhalten wird, mit dem in Schritt S203 erhaltenen Bereichsbild abgeglichen und die beobachtete Position und Ausrichtung entsprechend den Daten mit der höchsten Punktzahl wird als eine ungefähre Position und Ausrichtung des Zielwerkstücks
22, das zu greifen ist, erhalten. Speziell wird die ungefähre Position und Ausrichtung unter Verwendung eines Verfahrens berechnet, das in der japanischen Patentanmeldungs-Offenlegungsschrift Nr.
JP 2001-143 072 A diskutiert ist, bei dem eine positionelle Beziehung zwischen Merkmalspunkten auf dem Bereichsbild mit einer positionellen Beziehung zwischen Merkmalspunkten in jeder beobachteten Position und Ausrichtung, die in einer Datenbank vorhanden ist, verglichen wird, und die Merkmalspunktgruppen, die am Besten miteinander übereinstimmen, werden ausgewählt. Mit der berechneten ungefähren Position und Ausrichtung als ein Startwert, wird unter Verwendung eines Verfahrens, das ”Iterative Closest Point”-Verfahren (ICP-Verfahren) genannt wird, eine Position und Ausrichtung, bei der das dreidimensionale Formenmodell des Werkstücks
22 mit der Gruppe von dreidimensionalen Punkten, die von dem Bereichsbild in dem dreidimensionalen Raum erhalten werden, übereinstimmen kann, berechnet.
-
Die Punktgruppe, die von der Oberfläche des dreidimensionalen Formenmodells des Werkstückes 22 extrahiert wird, wird als P genommen. P = {pm_1, pm_2, ..., pm_N} (1)
-
Die Gruppe von dreidimensionalen Punkten, die von dem Bereichsbild erhalten wird, wird als K genommen. K = {km_1, km_2, ... km_N} (2)
-
Eine Punktgruppe P, die von der Oberfläche des dreidimensionalen Formenmodells abgetastet ist, wird umgewandelt, und Positions- und Ausrichtungsparameter, damit die Punktgruppe P der Gruppe von dreidimensionalen Punkten K, die von dem Bereichsbild erhalten wird, entspricht, wird berechnet. Wenn jeder Punkt p1 der Punktgruppe P in das Sensorkoordinatensystem umgewandelt ist, basierend auf der ungefähren Position und Orientierung, wird der Punkt mit der kürzesten Entfernung in der Punktgruppe K als bi ∊ K, genommen, und eine Fehlerfunktion kann durch die folgende Gleichung (3) definiert werden. In dieser sind R und t entsprechend ein Ausrichtungsparameter und ein zu erhaltener Bewegungsvektor.
-
-
R und t, die die Fehlerfunktion E reduzieren, werden erhalten, um sechs Parameter zu berechnen, die die Position und Ausrichtung darstellen. Ein Verfahren zum Ermitteln von R und t, die die Fehlerfunktion E reduzieren, wird in dem folgenden Dokument diskutiert: K. S. Arun, T. S. Huang, und S. D. Blosteln, ”Least-Squares Fitting of Two 3-D Point Sets”, PAMI, Vol. 9, Nr. 5, 1987. In diesem Schritt, anstelle des direkten Erhaltens von R und t, wie vorstehend beschrieben, können R und t durch wiederholen der Korrektur der Positions- und Ausrichtungsparameter des Werkstücks 22 unter Verwendung eines nicht linearen Optimierungsverfahrens wie etwa dem Gauss-Newton-Verfahren berechnet werden. Jedes Verfahren kann verwendet werden, solange es ein einzelnes individuelles Werkstück 22 von einem Haufen von Werkstücken erfassen kann und sechs Parameter berechnen kann, die die Position und Ausrichtung des Werkstückes 22 in dem Sensorkoordinatensystem darstellen.
-
In Schritt S205 identifiziert die Zielbereichsidentifikationseinheit 14 basierend auf der Position und Ausrichtung des Zielwerkstücks 22, die in Schritt S204 hergeleitet werden, die dreidimensionalen Punkte außer dem Zielwerkstück 22 auf den Daten über eine dreidimensionale Form. Die Verarbeitung in diesem Schritt wird mit Bezug auf 4A bis 4D beschrieben.
-
4A stellt ein Bereichsbild, das durch Aufnehmen eines Haufens von Werkstücken in einem Container erhalten wird, und das Zielwerkstück 22 dar, das erfasst wird und dessen Position und Ausrichtung von dem Bereichsbild im Schritt S204 berechnet wird. Hier werden Daten einer dreidimensionalen Form exklusive dem Zielwerkstück 22 durch das folgende Verfahren unter Verwendung des dreidimensionalen Formenmodells des Werkstücks, das in der Werkstückmodellspeichereinheit 13 gespeichert ist, und der Position und Ausrichtung des Zielwerkstücks 22 identifiziert.
-
Als Erstes wird eine Bildebene, die durch eine virtuelle Kamera beobachtet wird, vorbereit. Auf der beobachteten Bildebene wird das dreidimensionale Formenmodell des Werkstückes basierend auf der berechneten Position und Ausrichtung gerendert. Für Kameraparameter der virtuellen Kamera wird es empfohlen, die gleichen Kameraparameter wie die einer Abbildungsvorrichtung, die tatsächlich durch die Einheit zum Beschaffen von Daten einer dreidimensionalen Form 11 verwendet wird, zu ermitteln und zu verwenden. Ein Verwenden der gleichen Kameraparameter verursacht, dass jedes Pixel (x, y) des Bereichsbild, das durch die Einheit zum Beschaffen von Daten über eine dreidimensionale Form 11 aufgenommen wird, (x, y) auf der beobachteten Bildebene der virtuellen Kamera entspricht. Wenn eine entsprechende Beziehung in dem Pixel zwischen dem aufgenommenen Bereichsbild und der beobachteten Bildebene der virtuellen Kamera identifiziert werden kann, müssen jedoch nicht notwendiger Weise die gleichen Kameraparameter verwendet werden. Vor der Renderverarbeitung wird die gesamte Bildebene mit einer Farbe wie etwa (R, G, B) = (0, 0, 0) initialisiert.
-
Um die Pixel zu identifizieren, auf denen das Werkstück 22 gerendert wird, wird eine spezifische Farbe außer der Farbe, die zur Initialisierung verwendet wird, jeder Oberfläche, die das dreidimensionale Formenmodell bildet, zugewiesen und jede Oberfläche wird in der zugewiesenen Farbe gerendert. Wenn zum Beispiel ein Polygon Modell verwendet wird, wird eine Farbe von (R, G, B) = (255, 0, 0) allen Polygonen zugewiesen, die das Polygonmodell formen, um ein Rendern durchzuführen. Wenn ein B-Rep-Modell mit durch segmentierte Parameter gekrümmten Oberflächen verwendet wird, wird jeder der gekrümmten Oberflächen eine spezifische Farbe zugewiesen, um ein Rendern durchzuführen. Solange die Pixel des Bereichs, in denen das Werkstück 22 gerendert wird, identifiziert werden können, kann ein Farbbild oder ein Graustufenbild verwendet werden, oder kann jeder Oberfläche eine unterschiedliche oder die gleiche Farbe zugewiesen werden. Alternativ kann ein Binärbild verwendet werden. 4B stellt ein Bild dar, das durch Durchführen der vorstehend beschriebenen Verarbeitung bezüglich des Zielwerkstücks 22, das in 4A dargestellt ist, erzeugt wird.
-
Die Luminanzwerte (R, G, B) der Pixel auf der beobachteten Bildebene, die den Pixeln (x, y) auf dem Bereichsbild entsprechen, werden sequentiell referenziert, um sequentiell zu bestimmen, ob die dreidimensionalen Punkte, die aus den Pixeln berechnet werden, der Bereich entsprechend dem Zielwerkstück 22 sind. Zum Beispiel wird angenommen, dass der Luminanzwert eines Pixels auf der beobachteten Bildebene, das einem Zielpixel (x, y) des Bereichsbilds entspricht, gleich (R, G, B) = (255, 0, 0) ist. In diesem Fall wird bestimmt, dass der dreidimensionale Punkt, der von dem Pixel berechnet wird, die Daten sind, die die Form entsprechend des Zielwerkstücks 22 darstellen, und ein Wert von 0 wird in Verknüpfung mit dem Pixel aufgezeichnet. Alternativ wird angenommen, dass der Luminanzwert eines Pixels auf der beobachteten Bildebene, das dem Zielpixel (x, y) des Bereichsbilds entspricht, (R, G, B) = (0, 0, 0) ist. In diesem Fall wird bestimmt, dass der dreidimensionale Punkt, der von dem Pixel berechnet wird, die Daten sind, die die Form eines peripheren Objekts, wie etwa dem Werkstückcontainer 23 oder irgendeinem anderen Werkstück außer dem Zielwerkstück 22 darstellen, und ein Wert von 1 wird in Verknüpfung mit dem Pixel aufgezeichnet. Ein Durchführen dieser Verarbeitung bezüglich aller Pixel kann identifizieren, ob der dreidimensionale Punkt, der von jedem der Pixel berechnet wird, entweder den Daten entsprechend der Form des Zielwerkstücks 22 oder den Daten entsprechend der Form eines peripheren Objekts außer dem Zielwerkstück 22 entspricht.
-
Hier wird auf den Luminanzwert eines Farbpuffers in einem Rahmenpuffer, der das sich ergebende Bild des Renderns speichert, Bezug genommen, um den Bereich des Zielwerkstücks 22 zu identifizieren. Anstelle des Farbpuffers kann jedoch auch auf den Wert eines Tiefenpuffers oder eines Schablonenpuffers Bezug genommen werden, um die Identifikation durchzuführen. Alternativ kann anstelle des Renderns ein virtueller Lichtstrahl, der von dem Ursprung eines virtuellen Kamerakoordinatensystems zu jedem Pixel verläuft, berechnet werden, um zu bestimmen, ob der Lichtstrahl das Zielwerkstück 22 schneidet, so dass der Bereich des Zielwerkstücks 22 bestimmt wird.
-
4C stellt einen Querschnitt dar, der entlang der dicken Linie auf dem in 4A dargestellten Bereichsbild vorgenommen wird. Dreidimensionale Punkte, die von dem Bereichsbild berechnet werden, das durch die Einheit zum Erhalten von Daten über eine dreidimensionale Form 11 erhalten wird, sind durch kleine, schwarze Kreise angegeben. Die dreidimensionalen Punkte, die dem Zielwerkstück 22 unter den schwarzen Kreisen in der vorstehenden Verarbeitung entsprechen, sind durch gestrichelte Linien angegeben. Eine Beeinträchtigungsbestimmung wird durch Ausschließen der dreidimensionalen Punkte, die dem Zielwerkstück 22 entsprechen, die durch gestrichelte Linien angegeben sind, und durch Verwenden der dreidimensionalen Punkte, die durch leere Kreise angegeben sind, vorgenommen, so dass bestimmt werden kann, ob eine Beeinträchtigung mit einem Objekt außer dem Zielwerkstück 22 auftritt.
-
Der Bereich des Zielwerkstücks 22 kann ebenso durch das folgende Verfahren bestimmt werden. Wenn zum Beispiel eine Art eines Werkstücks 22 von Werkstücken von unterschiedlichen Arten gegriffen wird, die in verschiedenen Farben gemischt und gestapelt sind, kann ein Luminanzbild, das dazu in der Lage ist, eine Entsprechung mit dem Bereichsbild zu identifizieren, erhalten werden, um den Bereich des Zielwerkstücks 22 basierend auf Pixelfarbinformationen des Luminanzbildes zu identifizieren. Genauer, wenn das Zielwerkstück 22 rot gefärbt ist, ermöglicht ein Bereitstellen von Informationen, in denen der Messpunkt eines Pixels auf dem Bereichsbild, der einem roten Pixel auf dem Luminanzbild entspricht, ungültig ist, und der Messpunkt auf dem Bereichsbild, der einem Pixel außer dem roten Pixel entspricht, gültig ist, eine Verarbeitung zum Identifizieren des Zielwerkstücks 22.
-
In Schritt S206 leitet die Handpositions- und Ausrichtungsherleitungseinheit 15 basierend auf der Position und Ausrichtung des Werkstücks 22, die in Schritt S204 hergeleitet wird, die Position und Ausrichtung der Hand 20 zum Durchführen einer Greifoperation des Werkstücks 22 in dem Sensorkoordinatensystem her. Speziell wird eine relative Position und Ausrichtung zwischen dem Werkstück 22 und der Hand 20 in der Greifoperation im Voraus als Information zum Lehren der Greifoperation aufgezeichnet. Die relative Position und Ausrichtung zwischen dem Werkstück 22 und der Hand 20 werden durch Handhaben der Modelle des Werkstücks 22 und der Hand 20 in einer virtuellen Umgebung eingestellt. Alternativ kann die Hand 20, die ein Erhalten einer relativen Position und Ausrichtung zwischen dem Entfernungssensor 2 und der Hand 20 ermöglicht, zu der Position und Ausrichtung bewegt werden, an der die Hand 20 das Werkstück, dessen Position und Ausrichtung in dem Sensorkoordinatensystem basierend auf den Daten, die durch den Entfernungssensor 2 gemessen wurden, ermittelt wurden, bewegt werden, so dass die Position und Ausrichtung der Hand 20 von der Position und Ausrichtung zwischen dem Werkstück 22 und der Hand 20 berechnet werden kann. Eine Koordinatentransformationsmatrix entsprechend der berechneten Position und Ausrichtung des Werkstücks 22 wird mit einer Koordinatentransformationsmatrix entsprechend der relativen Position und Ausrichtung zwischen dem Werkstück 22 und der Hand 20 basierend auf den aufgezeichneten Lehrinformationen multipliziert, um die Koordinatentransformationsmatrix der Hand 20 in dem Sensorkoordinatensystem zu erhalten und die Position und Ausrichtung zwischen dem Werkstück 22 und der Hand 20 zu berechnen.
-
4D stellt einen Zustand dar, in dem die Hand 20 zum Greifen des Zielwerkstücks 22, das in 4C dargestellt ist, nach einem Herleiten der Position und Ausrichtung von dieser in diesem Schritt angeordnet ist. Die dreidimensionalen Punkte, die in Schritt S205 als dem Zielwerkstück 22 entsprechend bestimmt wurden, sind entfernt.
-
In Schritt S207 bestimmt die Zielbereichsidentifikationseinheit 14, ob die Daten über eine dreidimensionale Form außer dem Zielwerkstück 22, die in Schritt S205 identifiziert werden, mit der Hand 20 in der Position und Ausrichtung, die in Schritt S206 berechnet wird, interferiert.
-
Ein Polygonmodell, das die Form der Hand 20 darstellt, ist an der Position und Ausrichtung, die in Schritt S206 hergeleitet wird, angeordnet. Weiterhin ist eine sehr kleine Kugel mit einem Radius r an einer Position von jedem der dreidimensionalen Punkte der dreidimensionalen Formendaten außer dem Werkstück 22 angeordnet. Eine dreidimensionale räumliche Überlappung zwischen jedem Polygon und der Kugel wird erfasst, um eine Beeinträchtigungsbestimmung durchzuführen. Wenn die Kugel und das Polygon sich gegenseitig überlappen, wird bestimmt, dass eine Beeinträchtigung auftritt. Wenn die Kugel und das Polygon sich nicht gegenseitig überlappen, wird bestimmt, dass keine Beeinträchtigung auftritt. Ein Verfahren, das in ”Christer Ericson, A Realtime-Collision Determination for Game Programming, Born Digital, 2005” diskutiert wird, kann als ein Verfahren zum Verarbeiten von Informationen zwischen den Polygonen und der Kugel verwendet werden. In 4D sind unter den dreidimensionalen Punkten außer dem Zielwerkstück 22 diejenigen, von denen als ein Ergebnis der Beeinträchtigungsbestimmung zwischen der Kugel und dem Polygon bestimmt ist, dass sie mit der Hand 20 interferieren, durch schwarze Punkte angegeben.
-
Die Beeinträchtigungsbestimmung kann unter Verwendung von anderen Verfahren durchgeführt werden. Zum Beispiel werden die dreidimensionalen Punkte zwischen benachbarten Pixeln auf dem Bereichsbild verbunden, um Polygone zu erzeugen, die die Daten über eine dreidimensionale Form eines Haufens von Werkstücken darstellen, und ein Überschneidung mit einem Polygon des Polygonmodells der Hand 20 in der Greifposition und Ausrichtung wird erfasst, um die Beeinträchtigungsbestimmung durchzuführen. In diesem Fall, wenn die Überschneidung zwischen den Polygonen vorhanden ist, wird bestimmt, dass eine Beeinträchtigung auftritt. Wenn die Überschneidung zwischen den Polygonen nicht vorhanden ist, wird bestimmt, dass keine Beeinträchtigung auftritt und das Ergebnis wird ausgegeben. Ein Verfahren, dass in ”Tomas Moller, A Fast Triangle-Triangle Intersection Test, 1997” diskutiert ist, kann als ein Verfahren zum Verarbeiten von Informationen zwischen den Polygonen verwendet werden. Ein Polygonmodell wird hier als das Formenmodell der Hand 20 verwendet. Jedoch kann ein Modell, das die dreidimensionale Form durch eine Kombination von einfachen geometrischen Formen, wie etwa einem Zylinder, einer Kugel oder einem rechteckigen Parallelepiped darstellt, verwendet werden. Außer denen kann jedes Verfahren verwendet werden, solange das Verfahren eine dreidimensionale räumliche Überlappung zwischen den Daten über eine dreidimensionale Form eines Haufens von Werkstücken und dem Formenmodell der Hand 20 zum Greifen des Zielwerkstücks 22 erfassen kann. Das Formenmodell der Hand 20 kann in die Richtung entgegengesetzt zu den Zielwerkstück 22 vergrößert werden. Eine Beeinträchtigungsbestimmung unter Verwendung des vergrößerten Formenmodells der Hand 20 kann eine Erlaubnis für die tatsächlich durchgeführte Greifoperation bereitstellen.
-
Als ein Ergebnis der Verarbeitung Schritt S207, wenn in Schritt S208 bestimmt wird, dass keine Beeinträchtigung auftritt, geht die Verarbeitung über zu Schritt S209. Wenn bestimmt ist, dass eine Beeinträchtigung auftritt, geht die Verarbeitung über zu Schritt S202 und ein anderes individuelles Werkstück 22 wird erfasst und die Position und Ausrichtung von diesem wird berechnet.
-
In Schritt S209 überträgt die Roboterarbeitsanweisungseinheit 18 ein Operationssignal an die Robotersteuerungseinheit 19. Die Robotersteuerungseinheit 19 betätigt den Roboterarm 21, um die Hand 20 zu der Position und Ausrichtung zu bewegen, an der das Zielwerkstück 22 gegriffen werden kann, und veranlasst die Hand 20, das Werkstück 22 zu greifen und zu einer vorbestimmten Position zu bewegen.
-
In Schritt S210 bestimmt die Handpositions- und Ausrichtungsherleitungseinheit 18, ob der Werkstückcontainer 23 leer ist. Wenn der Werkstückcontainer 23 nicht leer ist (NEIN in Schritt S210), geht die Verarbeitung über zu Schritt S203. Wenn der Werkstückcontainer 23 leer ist (JA in Schritt S210), endet die Verarbeitung.
-
Unter Verwendung des vorstehend beschriebenen Verfahrens wird im Voraus unter Verwendung der Informationsverarbeitungsvorrichtung 1 bestimmt, ob eine Beeinträchtigung während einer Greifoperation auftritt, und das Zielwerkstück 22, von dem bestimmt ist, dass es keine Beeinträchtigung verursacht, wird aufgenommen (gegriffen).
-
In dem ersten beispielhaften Ausführungsbeispiel wurde das Verfahren beschrieben, in dem, wenn ein erfasstes Werkstück zu greifen ist, im Voraus bestimmt wird, ob eine Interferenz zwischen einem peripheren Objekt und einer Hand auftritt, unter Verwendung der Position und Ausrichtung des Zielwerkstücks, um den Bereich des Werkstückes auf einem zweidimensionalen Bild zu identifizieren. Genauer wird basierend auf der Position und Ausrichtung des erfassten Werkstückes das dreidimensionale Formenmodell des Werkstücks auf die beobachtete Bildebene der virtuellen Kamera, die die gleichen Kameraparameter wie die einer Messvorrichtung aufweist, projiziert und die dreidimensionalen Punkte, die den Pixeln entsprechen, auf die das Werkstück projiziert wird, werden aus dem Bereich des zu greifenden Werkstücks bestimmt. Dann wird eine dreidimensionale räumliche Überlappung unter Verwendung der Daten über eine dreidimensionale Form außer den dreidimensionalen Punkten, die als der Bereich des Zielwerkstücks bestimmt sind, und dem Handmodell erfasst, um zu bestimmen, ob die Beeinträchtigung auftritt. Dadurch kann eine Beeinträchtigung zwischen einem peripheren Objekt und einer Hand korrekt bestimmt werden, ohne eine fehlerhafte Erfassung aufgrund eines Messpunkts in dem Bereich des Zielwerkstücks, auch bei einer Greifoperation der Hand sehr nahe an dem Zielwerkstück. Das Verfahren ist hauptsächlich effektiv, wenn ein Werkstückerfassungsverfahren die Charakteristik des Erfassens eines individuellen Werkstückes in der Oberflächenschicht eines Haufens von Werkstücken, das nicht durch andere individuelle Werkstücke verdeckt ist, aufweist.
-
In dem vorliegenden beispielhaften Ausführungsbeispiel wurde das Verfahren zum Bestimmen, ob eine Beeinträchtigung mit einer Hand auftritt, beschrieben, bei dem die dreidimensionalen Punkte, die als das Zielwerkstück bestimmt sind, von den dreidimensionalen Punkten, die von dem Bereichsbild erhalten werden (in dem die dreidimensionalen Punkte außer dem Zielwerkstück identifiziert sind) ausgeschlossen sind. Als ein anderes Verfahren kann bestimmt werden, ob eine Beeinträchtigung mit einer Hand auftritt, unter Verwendung aller dreidimensionalen Punkte des Bereichsbildes, und wenn alle Bereiche, von denen bestimmt ist, dass sie die Beeinträchtigung verursachen, mit dem Zielwerkstück übereinstimmen, kann ein Ergebnis, das kein Auftreten einer Beeinträchtigung angibt, ausgegeben werden, und ansonsten kann ein Ergebnis, das ein Auftreten einer Beeinträchtigung angibt, ausgegeben werden.
-
In dem vorliegenden beispielhaften Ausführungsbeispiel ist nur ein Element der Lehrinformationen aufgezeichnet, um die Greifposition und Ausrichtung der Hand zu berechnen. Jedoch kann eine Vielzahl von relativen Positionen und Ausrichtungen, bei denen die Hand ein Zielwerkstück greifen kann, im Voraus aufgezeichnet sein, um die Position und Ausrichtung der Hand durch Auswählen von einem von Elementen der Lehrinformationen gemäß der Ausrichtung des Werkstückes zu berechnen. Alternativ können einer Vielzahl von Elementen der Lehrinformationen Prioritäten zugewiesen werden, um die Position und Ausrichtung der Hand durch Auswählen eines Elements der Lehrinformationen mit einer höheren Priorität zu berechnen. Wenn eine Vielzahl von Elementen der Lehrinformationen aufgezeichnet ist und wenn in der Beeinträchtigungsbestimmungsverarbeitung bestimmt ist, dass die Beeinträchtigung auftritt, werden die Position und Ausrichtung der Hand durch Auswählen der Greifoperation basierend auf den Lehrinformationen mit der nächst höheren Priorität berechnet, so dass die Beeinträchtigungsbestimmung wiederholt ausgeführt wird.
-
In einem zweiten beispielhaften Ausführungsbeispiel (nachstehend als das vorliegende beispielhafte Ausführungsbeispiel bezeichnet), wird ein Verfahren beschrieben, in dem, wenn ein erfasstes Werkstück zu greifen ist, im Voraus bestimmt wird, ob eine Beeinträchtigung zwischen einem peripheren Objekt und einer Hand auftritt, unter Verwendung der Position und Ausrichtung des Zielwerkstücks, um den Bereich des Zielwerkstücks auf einem dreidimensionalen Bild zu identifizieren. In dem vorliegenden beispielhaften Ausführungsbeispiel wird basierend auf einer Entfernung zwischen dem dreidimensionalen Formenmodell des Zielwerkstücks in der berechneten Position und Ausrichtung und den dreidimensionalen Punkten, die die dreidimensionalen Daten bilden, ein dreidimensionaler Punkt mit einer kleineren Entfernung als einem Zielwerkstück entsprechend bestimmt, um die Gruppe von dreidimensionalen Punkten entsprechend einem peripheren Objekt zu identifizieren. Dies ermöglicht auch in einem Fall, in dem ein einzelnes Werkstück, das durch ein anderes einzelnes Werkstück verdeckt ist, erfasst wird, korrekt zu bestimmen, ob eine Beeinträchtigung zwischen einem peripheren Objekt und einer Hand auftritt, ohne eine fehlerhafte Erfassung aufgrund eines Messpunkts in dem Bereich des Zielwerkstücks.
-
Die Konfiguration einer Informationsverarbeitungsvorrichtung und die Verarbeitung von jeder der Verarbeitungseinheiten von dieser in dem vorliegenden beispielhaften Ausführungsbeispiel ist grundsätzlich die gleiche, wie die der Informationsverarbeitungsvorrichtung 1, die in 2 dargestellt ist, gemäß dem ersten beispielhaften Ausführungsbeispiel, und deshalb wird eine Beschreibung von dieser weggelassen. Verarbeitungsschritte zum Aufnehmen eines Werkstückes von einem Haufen von Werkstücken durch vorhergehendes Bestimmen, ob eine Beeinträchtigung in einer Greifoperation auftritt, sind ebenso grundsätzlich die gleichen wie in dem Ablaufdiagramm, das in 2 dargestellt ist, gemäß dem ersten beispielhaften Ausführungsbeispiel und deshalb wird die Beschreibung von diesen hier weggelassen. Die Verarbeitung in Schritten S205, S206, S207 in dem vorliegenden beispielhaften Ausführungsbeispiel ist jedoch von der in dem ersten beispielhaften Ausführungsbeispiel verschieden. Somit wird eine Beschreibung der anderen Schritte S201, S202, S203, S204, S208, S209 und S210 weggelassen und nachstehend werden nur die Schritte S205, S206 und S207 beschrieben.
-
In Schritt S205 identifiziert die Zielbereichsidentifikationseinheit 14 basierend auf der Position und Ausrichtung des Zielwerkstücks 22, die in Schritt S204 berechnet werden, die dreidimensionalen Punkte außer dem Zielwerkstück 22 auf den Daten über eine dreidimensionale Form. Die Verarbeitung in diesem Schritt wird mit Bezug auf die 5A bis 5C beschrieben.
-
5A stellt ein Bereichsbild, auf dem ein Haufen von Werkstücken in einem Container aufgenommen ist, und das Zielwerkstück 22 dar, das erfasst wird und dessen Position und Ausrichtung von dem Bereichsbild in Schritt S204 berechnet werden. Auf dem Bereichsbild, das durch den Entfernungssensor 2 erhalten wird, wird erwartet, dass die Entfernung der dreidimensionalen Punkte auf der Oberfläche des Zielwerkstücks 22, das beobachtet wird, das nicht durch ein anderes einzelnes Werkstück verdeckt ist, mit der Oberfläche des Zielwerkstücks 22, das basierend auf der berechneten Position und Ausrichtung angeordnet ist, ausreichend klein ist. Somit sind die Daten über eine dreidimensionale Form außer dem Zielwerkstück 22 durch das folgende Verfahren unter Verwendung des dreidimensionalen Formenmodells des Werkstücks, das in der Werkstückmodellspeichereinheit 13 gespeichert ist, und der Position und Ausrichtung des Zielwerkstücks 22, zu identifizieren.
-
Als Erstes wird eine Entfernung di zwischen jedem der dreidimensionalen Punkte kc_1 (i = 1 bis N) und dem dreidimensionalen Modell des Werkstücks in der berechneten Position und Ausrichtung berechnet. Speziell wird ein Sichtlinienvektor von dem Ursprung des Sensorkoordinatensystems zu dem Pixel auf dem Bereichsbild entsprechend dem dreidimensionalen Punkt kc_1 erhalten und ein Punkt, an dem sich das dreidimensionale Modell des Werkstückes in der berechneten Position und Ausrichtung mit dem Sichtlinienvektor an der kürzesten Entfernung schneidet, wird erhalten. Eine Entfernung zwischen diesem Schnittpunkt und dem dreidimensionalen Punkt kc_1 wird als di genommen und die Entfernung di wird in Verknüpfung mit dem dreidimensionalen Punkt aufgezeichnet. Wenn es keinen Schnittpunkt gibt, wird ein Wert, der mit Bezug auf einen angenommenen Entfernungswert extrem groß ist, als der Entfernungswert aufgezeichnet. Wenn zum Beispiel di < 10 angenommen werden kann, wird di = 1000000 aufgezeichnet, wenn es keinen Schnittpunkt gibt. 5B stellt einen Querschnitt des in 5A dargestellten Bildes dar. In 5B zeigen gerade Linien, die durch gestrichelte Linien angegeben sind, Sichtlinienvektoren. Die geraden Linien, die durch dicke Linien angegeben sind, zeigen eine Entfernung zwischen dem erhaltenen Schnittpunkt und dem dreidimensionalen Punkt kc_1. Als Nächstes ist zu bestimmen, ob der dreidimensionale Punkt kc_1 dem Zielwerkstück 22 entspricht, mit Bezug auf die aufgezeichnete Entfernung di. Speziell wird ein Schwellenwert θ zum Bestimmen eines kleinen Entfernungswerts bestimmt. Wenn di < = θ ist, wird bestimmt, dass der dreidimensionale Punkt kc_1 dem Zielwerkstück 22 entspricht. Wenn θ ≤ di ist, wird bestimmt, dass der dreidimensionale Punkt kc_1 irgendeinem anderen Objekt außer dem Zielwerkstück 22 entspricht. Unter Verwendung dieser Verarbeitung werden leere Kreise, die durch gestrichelte Linien, die in 5B gezeichnet sind, angegeben sind, als die dreidimensionalen Punkte entsprechend dem Zielwerkstück 22 bestimmt, weil der Wert der Entfernung di zu dem dreidimensionalen Modell des Werkstücks klein ist.
-
In Schritt S206 werden die Position und Ausrichtung der Hand zum Greifen des Werkstücks 22 basierend auf der Position und Ausrichtung des Werkstücks 22, die in Schritt S205 hergeleitet werden, berechnet. Genauer sind eine relative Position und Ausrichtung zwischen dem Werkstück 22 und der Hand 20 bei der Greifoperation im Voraus als Informationen zum Lehren der Greifoperation aufgezeichnet. Eine Koordinatentransformationsmatrix, die die hergeleitete Position und Ausrichtung des Werkstücks 22 darstellt, wird mit einer Koordinatentransformationsmatrix multipliziert, die die relative Position und Ausrichtung zwischen dem Werkstück 22 und der Hand 20 basierend auf den aufgezeichneten Lehrinformationen darstellt, um die Koordinatentransformationsmatrix der Hand 20 in dem Sensorkoordinatensystem zu erhalten und die Position und Ausrichtung zwischen dem Werkstück 22 und der Hand 20 zu berechnen.
-
5C stellt einen Zustand dar, in dem die Hand 20 zum Greifen des Werkstücks 22, das in 56 dargestellt ist, angeordnet ist, durch Berechnen der Position und Ausrichtung der Hand 20 in diesem Schritt. Die dreidimensionalen Punkte, die in Schritt S205 als dem Zielwerkstück 22 entsprechend bestimmt wurden, sind entfernt.
-
In Schritt S207 wird bestimmt, ob eine Beeinträchtigung zwischen den dreidimensionalen Formendaten außer dem Zielwerkstück 22, das in Schritt S205 identifiziert wird, und der Hand 20 in der Position und Ausrichtung, die in Schritt S206 hergeleitet wird, auftritt. Ein Verfahren, dass dem gemäß dem ersten beispielhaften Ausführungsbeispiel ähnlich ist, kann verwendet werden, um die Beeinträchtigungsbestimmung durchzuführen. In 5C sind dreidimensionale Punkte, von denen bestimmt ist, dass sie mit der Hand 20 interferieren, unter den dreidimensionalen Punkten außer dem Zielwerkstück 22, durch schwarze Punkte angegeben.
-
In dem zweiten beispielhaften Ausführungsbeispiel wurde das Verfahren beschrieben, in dem, wenn ein erfasstes Werkstück zu greifen ist, im Voraus unter Verwendung der Position und Ausrichtung des zu greifenden Werkstücks, um den Bereich des Werkstücks auf einem dreidimensionalen Bild zu identifizieren, bestimmt wird, ob eine Interferenz zwischen einer Hand und einem peripheren Objekt auftritt. Genauer wird basierend auf einer Entfernung zwischen dem dreidimensionalen Formenmodell des Zielwerkstücks in der berechneten Position und Ausrichtung und jedem der dreidimensionalen Punkte, die die dreidimensionalen Daten bilden, bestimmt, dass ein dreidimensionaler Punkt mit einer kleinen Entfernung dem Zielwerkstück entspricht, so dass eine Gruppe von dreidimensionalen Punkten entsprechend einem peripheren Objekt identifiziert wird. Dies ermöglicht es, auch wenn ein einzelnes Werkstück erfasst wird, das hinter anderen einzelnen Werkstücken versteckt ist, korrekt zu erfassen, ob eine Beeinträchtigung zwischen einem peripheren Objekt und einer Hand auftritt, ohne eine fehlerhafte Erfassung aufgrund eines Messpunktes in dem Bereich des Zielwerkstücks. Das Verfahren ist hauptsächlich effektiv, wenn ein Werkstückerfassungsverfahren die Charakteristik des Erfassens eines einzelnen Werkstücks aufweist, das teilweise durch andere einzelne Werkstücke verdeckt ist.
-
In dem vorliegenden Ausführungsbeispiel wird der Schnittpunkt eines Sichtlinienvektors, der zu den Pixeln auf dem Bereichsbild entsprechend jedem der dreidimensionalen Punkte verläuft, und dem dreidimensionalen Formenmodell erhalten, um eine Entfernung zu dem dreidimensionalen Punkt zu berechnen. Jedoch kann ein anderes Verfahren für das Verfahren zum Berechnen einer Entfernung zwischen dem dreidimensionalen Formenmodell des Werkstücks und jedem der dreidimensionalen Punkte verwendet werden. Zum Beispiel wird die kürzeste Entfernung zu der Oberfläche des dreidimensionalen Formenmodells des Werkstücks in der berechneten Position und Ausrichtung erhalten und der Wert kann stattdessen verwendet werden.
-
Ein drittes beispielhaftes Ausführungsbeispiel wird nachstehend beschrieben.
-
Die Einheiten der Informationsverarbeitungsvorrichtung 1, die in 2 dargestellt ist, können durch Hardware konfiguriert werden.
-
Weiterhin kann die Arbeitsmodellspeichereinheit 13 durch einen Speicher konfiguriert werden und können die anderen Einheiten durch Computerprogramme konfiguriert werden.
-
In diesem Fall kann ein allgemeiner Personalcomputer (PC) auf die Informationsverarbeitungsvorrichtung 1 angewendet werden. Zum Beispiel ist die Arbeitsmodellspeichereinheit 13 in einer Festplatte enthalten und ein Computerprogramm zum Veranlassen einer CPU, die Funktionen der Einheiten außer der Arbeitsmodellspeichereinheit 13 auszuführen, ist auf der Festplatte gespeichert. Die CPU des PC lädt ein Computerprogramm oder Daten, die auf der Festplatte gespeichert sind, in den RAM und führt eine Verarbeitung unter Verwendung des geladenen Computerprogramms oder der Daten aus. Somit dient der PC als die Informationsverarbeitungsvorrichtung 1. Die vorstehenden beispielhaften Ausführungsbeispiele und Modifikationsbeispiele können nach Bedarf kombiniert verwendet werden.
-
Ausführungsbeispiele der vorliegenden Erfindung können ebenso durch einen Computer eines Systems oder einer Vorrichtung, das computerausführbare Anweisungen, die auf einem Speichermedium aufgezeichnet sind (zum Beispiel ein nichtflüchtiges computerlesbares Speichermedium), ausliest und ausführt, um die Funktionen von einem oder mehreren der vorstehend beschriebenen Ausführungsbeispiele der vorliegenden Erfindung durchzuführen, und durch ein Verfahren, das durch den Computer des Systems oder der Vorrichtung durch zum Beispiel Auslesen und Ausführen der computerausführbaren Anweisungen von dem Speichermedium, um die Funktionen von einem oder mehreren der vorstehend beschriebenen Ausführungsbeispiele durchzuführen, realisiert werden. Der Computer kann eines oder mehrere einer zentralen Verarbeitungseinheit (CPU), einer Mikroverarbeitungseinheit (MPU), oder andere Schaltkreise aufweisen und kann ein Netzwerk von separaten Computern oder separaten Computerprozessoren aufweisen. Die computerausführbaren Anweisungen können dem Computer zum Beispiel von einem Netzwerk oder dem Speichermedium bereitgestellt werden. Das Speichermedium kann zum Beispiel einen oder mehrere einer Festplatte, eines Direktzugriffspeichers (RAM), eines Festwertspeichers (ROM), eines Speichers von verteilten Computersystemen, einer optischen Platte (wie etwa eine Kompaktdisk (CD), einer ”Digital Versatile Disc” (DVD) oder einer Blu-ray Disk (BD)TM), einer Flashspeichereinrichtung, einer Speicherkarte und ähnliches umfassen.
-
Während die vorliegende Erfindung mit Bezug auf beispielhafte Ausführungsbeispiele beschrieben wurde, ist zu verstehen, dass die Erfindung nicht auf die offenbarten beispielhaften Ausführungsbeispiele beschränkt ist. Dem Umfang der folgenden Ansprüche ist die breiteste Interpretation zuzugestehen, um alle solchen Modifikationen und äquivalenten Strukturen und Funktionen mit zu umfassen.
-
Eine Informationsverarbeitungsvorrichtung der vorliegenden Erfindung bestimmt korrekt im Voraus, ob eine Beeinträchtigung zwischen einem Objekt um ein zu greifendes Zielwerkstück herum, und einer Hand auftritt. Die Informationsverarbeitungsvorrichtung umfasst eine Beschaffungseinheit, die dazu konfiguriert ist, ein Bereichsbild eines Raums, der einer Vielzahl von Werkstücken enthält, zu erhalten, eine Identifikationseinheit, die dazu konfiguriert ist, von dem erhaltenen Bereichbild einen Bereich des zu greifenden Zielwerkstücks unter der Vielzahl von Werkstücken zu identifizieren, eine Beeinträchtigungsbestimmungseinheit, die dazu konfiguriert ist, zu bestimmen, ob eine Beeinträchtigung zwischen einem Bereich, der in dem Bereichsbild enthalten ist, und einer Greifeinheit, die dazu konfiguriert ist, das Zielwerkstück zu greifen, auftritt, und eine Ausgabeeinheit, die dazu konfiguriert ist, basierend auf einem Ergebnis der Beeinträchtigungsbestimmung durch die Beeinträchtigungsbestimmungseinheit ein Ergebnis der Bestimmung auszugeben, ob eine Beeinträchtigung zwischen einem Bereich außer dem Bereich des Zielwerkstücks und der Greifeinheit auftritt.