-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung betrifft eine Abbildungsvorrichtung, die eine dreidimensionale Position auf der Grundlage eines von einem Bildsensor erfassten Bildes berechnet.
-
TECHNISCHER HINTERGRUND
-
Eine Vorrichtung, die eine dreidimensionale Position eines Werkstücks erkennt, indem sie ein Bild verarbeitet, das durch Aufnahme eines Bildes des Werkstücks mit einer Kamera erhalten wurde, ist im Stand der Technik bekannt. So ist beispielsweise eine Vorrichtung bekannt, die die Position eines Werkstücks aus Bildern erkennt, die von zwei in einer Stereokamera enthaltenen Kameras aufgenommen wurden, und die eine Operation auf der Grundlage der erkannten Position des Werkstücks durchführt (z. B. Japanische nicht angefochtene Patentveröffentlichung Nr. 2009-269110A).
-
Ein von einer Kamera aufgenommenes Bild kann je nach dem Zustand der Kamera bei der Aufnahme des Bildes beeinträchtigt werden. Wenn beispielsweise ein Fotograf ein Bild aufnimmt, während er eine Kamera hält, kann das Bild aufgrund von Verwacklungen verzerrt sein. Im Stand der Technik ist es bekannt, diesen Einfluss zu korrigieren, wenn ein Bild von einer Kamera aufgenommen wird (z. B. Japanische nicht angefochtene Patentveröffentlichung Nr.
11-44900 A und Japanische nicht angefochtene Patentveröffentlichung Nr.
2011-259314 A ).
-
[ZITIERLISTE]
-
[PATENTLITERATUR]
-
- [PTL 1] Ungeprüfte japanische Patentveröffentlichung Nr. 2009-269110 A
- [PTL 2] Ungeprüfte japanische Patentveröffentlichung Nr. 11-44900 A
- [PTL 3] Ungeprüfte japanische Patentveröffentlichung Nr. 2011-259314 A
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
[TECHNISCHES PROBLEM]
-
Es ist bekannt, die dreidimensionale Position eines Werkstücks unter Verwendung eines vorgegebenen Berechnungsmodells zu berechnen, wenn die dreidimensionale Position auf der Grundlage der Position in einem zweidimensionalen, von einer Kamera aufgenommenen Bild berechnet wird. Das Berechnungsmodell umfasst verschiedene Parameter, um eine dreidimensionale Position aus einer Position in einem zweidimensionalen Bild zu berechnen.
-
Die Kamera kann ein Werkstück in verschiedene Richtungen abbilden. Beispielsweise kann das Werkstück in einem Zustand abgebildet werden, in dem die optische Achse des Objektivs gegenüber der horizontalen Richtung geneigt ist. Ein Aktuator eines Roboters oder dergleichen kann die Position und Ausrichtung der Kamera verändern. Durch Anbringen einer Kamera an einem Gelenkroboter ist es beispielsweise möglich, Bilder eines Werkstücks in verschiedenen Richtungen aufzunehmen und die Position des Werkstücks zu ermitteln. Ein mit dem Roboter ausgestattetes Gerät kann dann auf der Grundlage der erkannten Position des Werkstücks verschiedene Arten von Operationen durchführen. So kann die Kamera bewegt werden, anstatt fest installiert zu sein, was die Anzahl der Einsatzmöglichkeiten der Kamera erhöht und den Wert der Kamera steigert.
-
Wenn der Aktuator oder dergleichen die Ausrichtung der Kamera ändert, ändert sich auch die Richtung der Sichtlinie der Kamera. Zu diesem Zeitpunkt kann die relative Positionsbeziehung zwischen dem Objektiv und einem Lichtempfangselement der Kamera aufgrund des Gewichts der Kamera oder des Objektivs leicht verschoben sein. Dies kann dazu führen, dass die dreidimensionale Position des Werkstücks falsch berechnet wird.
-
Die Ausrichtung der Kamera in Bezug auf ein Werkstück kann als Methode zur Verbesserung der Erfassungsgenauigkeit der dreidimensionalen Position des Werkstücks festgelegt werden. Ein Fehler in der dreidimensionalen Position kann durch die Einstellung von Parametern des Berechnungsmodells in der Nähe einer vorgegebenen Ausrichtung der Kamera reduziert werden. Mit anderen Worten, es ist möglich, eine Position und Ausrichtung der Kamera für die Abbildung eines Werkstücks zu bestimmen und Parameter zu verwenden, die der Position und Ausrichtung entsprechen.
-
Andererseits ist es schwierig, die dreidimensionale Position des Werkstücks genau zu erfassen, wenn die Parameter des Berechnungsmodells nicht auf der Grundlage der vorgegebenen Position und Ausrichtung der Kamera festgelegt werden. So kann beispielsweise die Ausrichtung der Kamera beliebig verändert werden, um die dreidimensionale Position des Werkstücks zu erfassen. Es ist notwendig, die Parameter des Berechnungsmodells entsprechend der jeweiligen Ausrichtung einzustellen. Es besteht jedoch das Problem, dass die notwendige Einstellung einer unendlichen Anzahl von Parametern die Einstellung der Parameter tatsächlich erschwert. Aus diesem Grund besteht ein Bedarf an einem Gerät, das die Position eines Werkstücks als Reaktion auf die Ausrichtung einer Kamera mit einfacher Steuerung genau erfassen kann.
-
(LÖSUNG DES PROBLEMS)
-
Eine Abbildungsvorrichtung gemäß einem Aspekt der vorliegenden Offenbarung umfasst einen Bildsensor, der so konfiguriert ist, dass er ein Werkstück abbildet. Die Abbildungsvorrichtung umfasst eine Einheit zur Erkennung der Schwerkraft-Richtung, die so konfiguriert ist, dass sie eine Schwerkraftrichtung erfasst, und eine Einheit zur Erkennung der Orientierung, die so konfiguriert ist, dass sie eine Ausrichtung des Bildsensors in Bezug auf die Schwerkraftrichtung erfasst. Die Abbildungsvorrichtung enthält eine Einheit zur Einstellung eines Parameters, die so konfiguriert ist, dass sie einen Parameter zum Berechnen einer dreidimensionalen Position entsprechend einer spezifischen Position in einem durch den Bildsensor erfassten Bild einstellt, und einen Speicherteil, der so konfiguriert ist, dass er Einstellinformationen zum Einstellen des Parameters entsprechend der Ausrichtung des Bildsensors speichert. Die Abbildungsvorrichtung umfasst eine Einheit zur Erkennung eines Merkmals, die so konfiguriert ist, dass sie einen vorbestimmten Merkmalsabschnitt in dem Bild des Werkstücks erfasst, und eine Einheit zur Berechnung der Merkmalsposition, die so konfiguriert ist, dass sie die dreidimensionale Position des Merkmalsabschnitts unter Verwendung des von der Einheit zur Einstellung eines Parameters eingestellten Parameters berechnet. Die Einheit zur Einstellung eines Parameters ist so konfiguriert, dass sie den Parameter auf der Grundlage der Richtung der Schwerkraft, der Ausrichtung des Bildsensors und der Einstellinformationen einstellt.
-
[VORTEILHAFTE WIRKUNG DER ERFINDUNG]
-
Gemäß einem Aspekt der vorliegenden Offenbarung ist es möglich, eine Abbildungsvorrichtung bereitzustellen, die eine dreidimensionale Position eines Werkstücks als Reaktion auf eine Ausrichtung eines Bildsensors genau erfasst.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
- 1 ist eine schematische Darstellung eines Roboter-Systems gemäß einer Ausführungsform.
- 2 ist ein Blockdiagramm des Roboter-Systems gemäß der Ausführungsform.
- 3 ist eine Draufsicht auf ein erstes Werkstück gemäß der Ausführungsform.
- 4 ist ein Beispiel für ein Bild, wenn das erste Werkstück abgebildet wird.
- 5 ist eine schematische Darstellung des Roboter-Systems, wenn ein zweites Werkstück abgebildet wird.
- 6 ist eine Draufsicht auf das zweite Werkstück gemäß der Ausführungsform.
- 7 ist ein Beispiel für ein Bild, wenn das zweite Werkstück abgebildet wird.
- 8 ist eine perspektivische Ansicht einer Kamera zur Erläuterung eines Kamera-Koordinatensystems und einer Richtung der Schwerkraft.
- 9 ist ein Flussdiagramm zur Erläuterung der Steuerung des Roboter-Systems.
-
BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
-
Eine Abbildungsvorrichtung gemäß einer Ausführungsform wird unter Bezugnahme auf die 1 bis 9 beschrieben. Die Abbildungsvorrichtung der vorliegenden Ausführungsform fungiert als dreidimensionale Positionserfassungsvorrichtung, die eine dreidimensionale Position einer bestimmten Position in einem Bild auf der Grundlage des von einem Bildsensor erfassten Bildes berechnet.
-
1 ist eine schematische Darstellung eines Roboter-Systems mit einer Abbildungsvorrichtung gemäß der vorliegenden Ausführungsform. 2 ist ein Blockdiagramm des Roboter-Systems gemäß der vorliegenden Ausführungsform. In Bezug auf 1 und 2 erkennt das Roboter-System 3 der vorliegenden Ausführungsform die Position eines ersten Werkstücks 38, das als Werkstück dient, und ergreift und transportiert das erste Werkstück 38. Das Roboter-System 3 erfasst auch die Position eines zweiten Werkstücks 39, das als Werkstück dient, und führt einen Vorgang zum Anordnen des ersten Werkstücks 38 in einem ausgesparten Abschnitt 39a des zweiten Werkstücks 39 durch.
-
Das Roboter-System 3 umfasst eine Hand 5, die als Arbeitswerkzeug dient und ein erstes Werkstück 38 ergreift, und einen Roboter 1, der die Hand 5 bewegt. Das Roboter-System 3 umfasst eine Steuerung 2, die das Roboter-System 3 steuert. Das Roboter-System 3 umfasst auch einen Sockel 95, auf dem das erste Werkstück 38 platziert wird, und einen Sockel 96, auf dem das zweite Werkstück 39 gelagert wird. Das zweite Werkstück 39 wird auf dem Sockel 96 von einem vorbestimmten Stützelement getragen.
-
Die Hand 5 der vorliegenden Ausführungsform ist ein Arbeitswerkzeug, das das Werkstück 38 greift und freigibt. Das am Roboter 1 angebrachte Arbeitsgerät ist nicht auf diese Form beschränkt, und es kann jedes Arbeitsgerät verwendet werden, das für einen vom Roboter-System 3 ausgeführten Vorgang geeignet ist. Zum Beispiel kann ein Schweißbrenner zum Schweißen als Arbeitsgerät verwendet werden.
-
Der Roboter 1 der vorliegenden Ausführungsform ist ein Gelenkroboter mit einer Vielzahl von Gelenken 18. Der Roboter 1 umfasst einen oberen Arm 11 und einen unteren Arm 12. Der untere Arm 12 wird von einem Schwenksockel 13 getragen. Die Schwenkbasis 13 wird von einem Sockel 14 getragen. Der Roboter 1 umfasst ein Handgelenk 15, das mit einem Endabschnitt des oberen Arms 11 verbunden ist. Das Handgelenk 15 weist einen Flansch 16 zur Befestigung der Hand 5 auf. Die Bauteile des Roboters 1 sind so ausgebildet, dass sie sich um eine vorgegebene Antriebsachse drehen. Der Roboter 1 ist nicht auf diese Form beschränkt, und jeder Roboter, der in der Lage ist, die Ausrichtung eines Arbeitswerkzeugs zu ändern, kann verwendet werden.
-
Der Roboter 1 der vorliegenden Ausführungsform umfasst eine Roboterantriebsvorrichtung 21 mit Antriebsmotoren zum Antrieb von Komponenten wie dem oberen Arm 11. Die Hand 5 umfasst eine Handantriebsvorrichtung 22, die die Hand 5 antreibt. Die Handantriebsvorrichtung 22 der vorliegenden Ausführungsform treibt die Hand 5 durch Luftdruck an. Die Handantriebsvorrichtung 22 umfasst eine Luftpumpe und ein Magnetventil zur Zuführung von Druckluft zu einem Zylinder.
-
Die Steuerung 2 besteht aus einem Gehäuse der Steuerung 40 und einem Handbediengerät 26, mit dem eine Bedienungsperson das Gehäuse der Steuerung 40 bedient. Das Gehäuse der Steuerung 40 enthält eine arithmetische Verarbeitungsvorrichtung (einen Computer), der eine zentrale Verarbeitungseinheit (CPU) enthält, die als Prozessor dient. Die arithmetische Verarbeitungsvorrichtung umfasst einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM) und dergleichen, die über einen Bus mit der CPU verbunden sind. Der Roboter 1 wird auf der Grundlage von Betriebsbefehlen von der Steuerung 2 gesteuert. Der Roboter 1 transportiert das erste Werkstück 38 automatisch auf der Grundlage eines Betriebsprogramms 61.
-
Das Gehäuse der Steuerung 40 enthält einen Speicherteil 42, der alle Informationen über das Roboter-System 3 speichert. Der Speicherteil 42 kann aus einem nicht temporären Speichermedium gebildet werden, das Informationen speichern kann. Beispielsweise kann der Speicherteil 42 ein Speichermedium wie einen flüchtigen Speicher, einen nichtflüchtigen Speicher, ein magnetisches Speichermedium oder ein optisches Speichermedium umfassen.
-
Das für den Betrieb des Roboters 1 im Voraus erstellte Betriebsprogramm 61 wird in die Steuerung 2 eingegeben. Alternativ kann der Bediener einen Einlernpunkt des Roboters 1 festlegen, indem er das Einlern-Handgerät 26 betätigt und den Roboter 1 fährt. Die Steuerung 2 kann das Betriebsprogramm 61 auf der Grundlage des Lernpunkts erstellen.
-
Das Betriebsprogramm 61 ist in dem Speicherteil 42 gespeichert. Die Betriebssteuerungseinheit 43 sendet auf der Grundlage des Betriebsprogramms 61 einen Betriebsbefehl für den Antrieb des Roboters 1 an den Roboterantriebsteil 44. Der Roboterantriebsteil 44 enthält eine elektrische Schaltung, die einen Antriebsmotor antreibt und die Roboterantriebsvorrichtung 21 auf der Grundlage des Betriebsbefehls mit Strom versorgt. Die Betriebssteuerungseinheit 43 sendet einen Betriebsbefehl zum Antrieb der Handantriebsvorrichtung 22 an den Handantriebsteil 45. Der Handantriebsteil 45 enthält einen elektrischen Schaltkreis zum Antrieb einer Luftpumpe oder dergleichen und versorgt die Luftpumpe oder dergleichen auf der Grundlage des Betriebsbefehls mit Strom.
-
Die Betriebssteuerungseinheit 43 entspricht einem Prozessor, der nach dem Betriebsprogramm 61 gesteuert wird. Der Prozessor ist so ausgebildet, dass er in der Lage ist, im Speicherteil 42 gespeicherte Informationen zu lesen. Der Prozessor fungiert als Betriebssteuerungseinheit 43, indem er das Betriebsprogramm 61 liest und die im Betriebsprogramm 61 definierte Steuerung durchführt.
-
Der Roboter 1 umfasst einen Zustandsdetektor zur Erfassung der Position und Ausrichtung des Roboters 1. Der Zustandsdetektor gemäß der vorliegenden Ausführungsform umfasst einen Positionsmelder 23, der an dem Antriebsmotor jeder Antriebsachse der Roboterantriebsvorrichtung 21 angebracht ist. Der Positionsmelder 23 kann z.B. aus einem Encoder bestehen, der die Drehposition der Abtriebswelle des Antriebsmotors erfasst. Die Position und die Ausrichtung des Roboters 1 werden anhand des Ausgangs jedes Positionsmelders 23 ermittelt.
-
Für das Roboter-System 3 wird ein Referenzkoordinatensystem 71 festgelegt, das sich nicht bewegt, wenn sich die Position und die Ausrichtung des Roboters 1 ändern. In dem in 1 dargestellten Beispiel liegt der Ursprung des Referenzkoordinatensystems 71 auf der Basis 14 des Roboters 1. Das Referenzkoordinatensystem 71 wird auch als Weltkoordinatensystem bezeichnet. Im Referenzkoordinatensystem 71 ist die Lage des Ursprungs fest und die Richtungen der Koordinatenachsen sind ebenfalls fest. Das Referenzkoordinatensystem 71 hat als Koordinatenachsen eine X-Achse, eine Y-Achse und eine Z-Achse, die orthogonal zueinander sind. Außerdem ist eine W-Achse als Koordinatenachse um die X-Achse festgelegt. Eine P-Achse wird als Koordinatenachse um die Y-Achse festgelegt. Eine R-Achse wird als Koordinatenachse um die Z-Achse festgelegt.
-
Das Einlern-Handgerät 26 ist über eine Kommunikationseinrichtung mit dem Gehäuse der Steuerung 40 verbunden. Das Einlern-Handgerät 26 enthält einen Eingabeteil 27 zur Eingabe von Informationen über den Roboter 1 und die Hand 5. Der Eingabeteil 27 besteht aus Eingabeelementen wie einer Tastatur und Drehknöpfen. Das Einlern-Handgerät 26 umfasst einen Anzeigeteil 28, der Informationen über den Roboter 1 und die Hand 5 anzeigt. Der Anzeigeteil 28 kann aus einem Anzeigefeld bestehen, das Informationen anzeigen kann, wie z. B. ein Flüssigkristallanzeigefeld oder ein organisches Elektrolumineszenz (EL)-Anzeigefeld. Wenn das Programmiergerät eine Anzeigetafel vom Typ Touchpanel enthält, fungiert die Anzeigetafel als Eingabeteil und Anzeigeteil.
-
Für das Roboter-System 3 wird ein Werkzeugkoordinatensystem 74 mit einem Ursprung an einer beliebigen Position des Arbeitswerkzeugs festgelegt. Das Werkzeug-Koordinatensystem 74 ändert seine Position und Ausrichtung zusammen mit dem Arbeitswerkzeug. In der vorliegenden Ausführungsform ist der Ursprung des Werkzeug-Koordinatensystems 74 auf den Werkzeugmittelpunkt der Hand 5 festgelegt. Die Position des Roboters 1 entspricht der Position des Werkzeugmittelpunkts (der Position des Ursprungs des Werkzeug-Koordinatensystems 74) im Referenzkoordinatensystem 71. Auch die Ausrichtung des Roboters 1 entspricht der Ausrichtung des Werkzeug-Koordinatensystems 74 in Bezug auf das Referenzkoordinatensystem 71.
-
Das Roboter-System 3 gemäß der vorliegenden Ausführungsform umfasst eine Abbildungsvorrichtung, die die Positionen der Werkstücke 38 und 39 erfasst. Die Abbildungsvorrichtung umfasst eine Kamera 6, die als Bildsensor dient und ein Bild des Werkstücks 38 aufnimmt. Bei der Kamera 6 der vorliegenden Ausführungsform handelt es sich um eine zweidimensionale Kamera, die ein zweidimensionales Bild einfängt. Die Kamera 6 wird von dem Roboter 1 getragen. Die Kamera 6 ist über ein Trägerelement an der Hand 5 befestigt. Die Kamera 6 verändert ihre Position und Ausrichtung zusammen mit der Hand 5.
-
Die Kamera 6 kann ein Bild in einem Sichtfeld 6a aufnehmen. Die Kamera 6 verfügt über einen Mechanismus zur Schärfeneinstellung 24 zum Einstellen des Fokus. Der Mechanismus zur Schärfeneinstellung 24 der vorliegenden Ausführungsform hat eine automatische Fokussierungsfunktion. Mit anderen Worten, die Kamera 6 hat eine Autofokusfunktion. Die Kamera 6 ist so ausgebildet, dass sie automatisch auf die Werkstücke 38 und 39 fokussiert und die Werkstücke 38 und 39 abbildet, wenn der Roboter 1 seine Position und Ausrichtung ändert. Ein Mechanismus zur Fokussierung durch willkürliche Steuerung, wie z. B. ein Kontrasterkennungsverfahren oder ein Phasendifferenzverfahren, kann als Mechanismus zur Fokuseinstellung verwendet werden.
-
Alternativ kann auch eine Kamera mit einer Flüssiglinse als Bildsensor eingesetzt werden. In diesem Fall kann ein Mechanismus zur Änderung der Form der Flüssiglinse als Mechanismus zur Schärfeneinstellung verwendet werden. Beispielsweise kann ein Mechanismus zum Ändern einer an die Flüssigkeitslinse angelegten Spannung oder ein Mechanismus zum Bewegen eines Halteelements der Flüssigkeitslinse zum Ändern eines an die Flüssigkeitslinse angelegten Wasserdrucks verwendet werden.
-
Im Roboter-System 3 ist für die Kamera 6 ein Kamera-Koordinatensystem 72 als Sensorkoordinatensystem eingestellt. Das Kamera-Koordinatensystem 72 ändert seine Position und Ausrichtung zusammen mit der Kamera 6. Der Ursprung des Kamera-Koordinatensystems 72 wird an einer vorbestimmten Position an oder in der Kamera 6 festgelegt, wie z. B. dem Objektivzentrum oder dem optischen Zentrum der Kamera 6. Das Kamera-Koordinatensystem 72 hat eine X-Achse, eine Y-Achse und eine Z-Achse, die orthogonal zueinander sind. Das Kamera-Koordinatensystem 72 der vorliegenden Ausführungsform ist so eingestellt, dass sich die Z-Achse in einer Richtung parallel zur optischen Achse des Objektivs der Kamera 6 erstreckt. Bei der vorliegenden Ausführungsform sind die Position und die Ausrichtung des Kamera-Koordinatensystems 72 in Bezug auf das Werkzeug-Koordinatensystem 74 konstant, da die Kamera 6 fest mit der Hand 5 verbunden ist.
-
Die Abbildungsvorrichtung der vorliegenden Ausführungsform umfasst eine Bewegungsvorrichtung, die die Kamera 6 bewegt. In dem Roboter-System 3 fungiert der Roboter 1 als Bewegungsvorrichtung. Wenn sich die Position und Ausrichtung des Roboters 1 ändern, ändern sich auch die Position und Ausrichtung der Kamera 6.
-
Die Abbildungsvorrichtung umfasst eine Bildverarbeitungsvorrichtung, die ein vom Bildsensor erfasstes Bild verarbeitet. In dem Roboter-System 3 der vorliegenden Ausführungsform fungiert das Gehäuse der Steuerung 40 als Bildverarbeitungsgerät. Das Gehäuse der Steuerung 40 umfasst eine Bildverarbeitungseinheit 50, die ein von der Kamera 6 aufgenommenes Bild verarbeitet. Die Bildverarbeitungseinheit 50 umfasst eine Bildsteuerungseinheit 58, die einen Bildaufnahmebefehl an die Kamera 6 sendet.
-
Die Bildverarbeitungseinheit 50 umfasst eine Einheit zur Erkennung der Schwerkraft-Richtung 51, die eine Richtung der Schwerkraft erfasst, und eine Einheit zur Erkennung der Orientierung 52, die die Ausrichtung der Kamera 6 in Bezug auf die Richtung der Schwerkraft erfasst. Die Bildverarbeitungseinheit 50 umfasst eine Einheit zur Einstellung eines Parameters 53, die Parameter zur Berechnung einer dreidimensionalen Position einstellt, die einer bestimmten Position in dem von der Kamera 6 aufgenommenen Bild entspricht.
-
Die Bildverarbeitungseinheit 50 enthält eine Einheit zur Erkennung eines Merkmals 54, die einen vorbestimmten Merkmalsabschnitt in dem Bild jedes der Werkstücke 38 und 39 erkennt. Die Bildverarbeitungseinheit 50 enthält eine Einheit zur Berechnung der Merkmalsposition 55, die eine dreidimensionale Position des Merkmalsteils unter Verwendung der von der Einheit zur Einstellung eines Parameters 53 eingestellten Parameter berechnet. Die Bildverarbeitungseinheit 50 enthält eine Einheit zur Erkennung der Beschleunigung 56, die die Beschleunigung des Bildsensors erfasst, wenn der Roboter gefahren wird. Die Bildverarbeitungseinheit 50 enthält eine Einheit zur Erzeugung eines Betriebsbefehls 59, die Betriebsbefehle für den Roboter 1 und die Hand 5 basierend auf dem Ergebnis der Bildverarbeitung erzeugt.
-
Die Bildverarbeitungseinheit 50 entspricht einem Prozessor, der gemäß dem Betriebsprogramm 61 gesteuert wird. Insbesondere entspricht jede der Einheit zur Erkennung der Schwerkraft-Richtung 51, der Einheit zur Erkennung der Orientierung 52, der Einheit zur Einstellung eines Parameters 53, der Einheit zur Erkennung eines Merkmals 54, der Einheit zur Berechnung der Merkmalsposition 55, der Einheit zur Erkennung der Beschleunigung 56, der Einheit zur Steuerung eines Bildes 58 und der Einheit zur Erzeugung eines Betriebsbefehls 59 einem Prozessor, der gemäß dem Betriebsprogramm 61 gesteuert wird. Der Prozessor arbeitet als jede der Einheiten, indem er das Betriebsprogramm 61 liest und die im Betriebsprogramm 61 definierte Steuerung durchführt.
-
Wie in 1 gezeigt, legt das Roboter-System 3 der vorliegenden Ausführungsform das Werkstück 38 auf der Oberfläche des Sockels 95 ab, indem es ein vorgegebenes Verfahren anwendet. Beispielsweise legt der Bediener oder ein anderes Roboter-System das Werkstück 38 an einer vorgegebenen Position auf der Oberfläche des Sockels 95 ab. Das Werkstück 39 wird ebenfalls nach einem ähnlichen Verfahren auf der Oberfläche des Sockels 96 platziert. Dann ändert der Roboter 1 seine Position und Ausrichtung und ergreift mit der Hand 5 das Werkstück 38, das auf der Oberseite des Sockels 95 liegt. Das Roboter-System 3 setzt das Werkstück 38 in den vertieften Teil 39a des Werkstücks 39 ein, indem es die Position und Ausrichtung des Roboters 1 ändert, wie durch einen Pfeil 101 angezeigt. Die Werkstücke 38 und 39 mit dem in dem vertieften Teil 39a platzierten Werkstück 38 werden nach einem vorgegebenen Verfahren transportiert. Zum Beispiel transportiert der Bediener oder ein anderes Robotersystem die Werkstücke 38 und 39 zu vorgegebenen Positionen.
-
Wenn das Werkstück 38 auf der Oberfläche des Sockels 95 abgelegt wird, kann sich übrigens die Position des Werkstücks 38 auf dem Sockel 95 verschieben. In dem in 1 gezeigten Beispiel wird beim Einlernen der Position und Ausrichtung des Roboters 1 eine Referenzposition des Werkstücks 38 bestimmt. Die Referenzposition ist eine Position, an der das Werkstück 38 abgelegt werden soll. Wenn das Werkstück 38 jedoch tatsächlich auf der Oberseite des Sockels 95 platziert wird, kann das Werkstück 38 in einer Position platziert werden, die von der Referenzposition abweicht. In ähnlicher Weise kann das Werkstück 39, wenn es auf der Oberfläche des Sockels 96 abgelegt wird, gegenüber einer in der Lehrarbeit ermittelten Referenzposition verschoben sein. Jedes der Werkstücke 38 und 39 weist auch Maßfehler auf. Das Roboter-System 3 der vorliegenden Ausführungsform erkennt die dreidimensionalen Positionen der Werkstücke 38 und 39 anhand der von der Kamera 6 aufgenommenen Bilder.
-
Im Roboter-System 3 der vorliegenden Ausführungsform nimmt die Kamera 6 beim Greifen des ersten Werkstücks 38 ein Bild des Werkstücks 38 auf. Die Bildverarbeitungseinheit 50 berechnet eine dreidimensionale Position des Werkstücks 38 basierend auf dem Bild des Werkstücks 38. Die Bildverarbeitungseinheit 50 steuert die Position und Ausrichtung des Roboters 1 so, dass sie der Position des Werkstücks 38 entspricht. Dann ändert die Bildverarbeitungseinheit 50 die Position und Ausrichtung des Roboters 1 und greift das Werkstück 38 mit der Hand 5.
-
Wenn das erste Werkstück 38 in den vertieften Teil 39a des zweiten Werkstücks 39 eingelegt wird, erfolgt die Steuerung zur Erfassung der dreidimensionalen Position des Werkstücks 39 auf die gleiche Weise wie die Steuerung zur Erfassung der dreidimensionalen Position des Werkstücks 38. Die Kamera 6 nimmt ein Bild des Werkstücks 39 auf. Die Bildverarbeitungseinheit 50 berechnet eine dreidimensionale Position des Werkstücks 39 auf der Grundlage des Bildes des Werkstücks 39. Die Bildverarbeitungseinheit 50 berechnet die Position und Ausrichtung des Roboters 1 zum Ablegen des Werkstücks 38 in den vertieften Teil 39a des Werkstücks 39. Die Bildverarbeitungseinheit 50 ändert die Position und Ausrichtung des Roboters 1 und legt das Werkstück 38 in den vertieften Teil 39a des Werkstücks 39 ein. Danach lässt die Hand 5 das Werkstück 38 los und der Roboter 1 kehrt in die Position und Ausrichtung zu Beginn des Vorgangs zurück.
-
3 zeigt eine Draufsicht auf das erste Werkstück gemäß der vorliegenden Ausführungsform. Wie aus 1 und 3 hervorgeht, umfasst das Werkstück 38 einen plattenförmigen Bereich 38a und einen auf dem plattenförmigen Bereich 38a gebildeten plattenförmigen Bereich 38b. Die plattenfömigen Bereiche 38a und 38b haben jeweils eine rechteckige, parallelepipedische Form. Der plattenförmige Bereich 38b hat einen Randbereich 38c am äußeren Umfang seiner oberen Oberfläche. Der Randbereich 38c ist ein Bereich, der einer im plattenförmigen Bereich 38b ausgebildeten Ecke entspricht. In der vorliegenden Ausführungsform ist der Randbereich 38c ein Merkmalsteil des Werkstücks 38.
-
Wie in 1 gezeigt, ist die Kamera 6 bei der vorliegenden Ausführungsform senkrecht über dem Werkstück 38 angeordnet, wenn das Werkstück 38 gegriffen wird. Zu diesem Zeitpunkt ist der Abstand von der Oberfläche des Werkstücks 38, auf der das Merkmalsteil gebildet wird, zur Kamera 6 vorgegeben. In diesem Beispiel werden die Position und die Ausrichtung des Roboters 1 so gesteuert, dass die Position der Oberseite des plattenförmigen Bereich 38b einen vorgegebenen Z-Achsenwert im Kamera-Koordinatensystem 72 hat. Außerdem wird die Ausrichtung der Kamera 6 so eingestellt, dass die optische Achse des Objektivs der Kamera 6 im Wesentlichen senkrecht zur Oberfläche des plattenförmigen Bereichs 38b mit dem Merkmalsteil des Werkstücks 38 verläuft.
-
4 zeigt ein Beispiel für ein von der Kamera aufgenommenes Bild des ersten Werkstücks. Die Kamera 6 führt eine Fokussierung durch und nimmt ein Bild 66 auf. Das Bild 66 enthält ein Bild 68 des ersten Werkstücks 38. Für das von der Kamera aufgenommene Bild 66 wird ein Bildkoordinatensystem 73 festgelegt. Die Einheit zur Erkennung eines Merkmals 54 der Bildverarbeitungseinheit 50 erkennt den Randbereich 38c als einen Merkmalsabschnitt des Werkstücks 38, indem sie einen Mustervergleich durchführt. Ein Referenzbild zur Erfassung der Position des Randbereichs 38c beim Mustervergleich wird im Voraus erstellt und im Speicherteil 42 gespeichert. Die Einheit zur Erkennung eines Merkmals 54 erkennt den Randbereich 38c, der als ein Merkmalsabschnitt in dem von der Kamera 6 aufgenommenen Bild dient, unter Verwendung des Referenzbildes.
-
Die Einheit zur Berechnung der Merkmalsposition 55 berechnet die Position des Merkmalsbereichs des Werkstücks 38 in dem von der Kamera 6 aufgenommenen Bild. Zum Beispiel wird die Position einer Ecke des Randbereichs 38c im Bild 68 unter Verwendung von Koordinatenwerten des Bildkoordinatensystems 73 ermittelt. Die Einheit zur Berechnung der Merkmalsposition 55 ermittelt die dreidimensionale Position des Merkmalsabschnitts unter Verwendung eines Berechnungsmodells auf der Grundlage der Position des Merkmalsabschnitts im Bild. Eine solche Position des Merkmalsabschnitts des Werkstücks 38 kann in dem Referenz-Koordinatensystem 71 berechnet werden. Ferner berechnet die Einheit zur Berechnung der Merkmalsposition 55 die Position des Werkstücks 38 auf der Grundlage der dreidimensionalen Position des Merkmalsabschnitts des Werkstücks 38. Die Position eines beliebigen Sollwerts, der für das Werkstück 38 festgelegt ist, kann als die Position des Werkstücks 38 berechnet werden. Die Position des Werkstücks 38 kann auch im Referenz-Koordinatensystem 71 berechnet werden.
-
Die Einheit zur Erzeugung von Arbeitsbefehlen 59 berechnet die Position und Ausrichtung des Roboters 1 auf der Grundlage der dreidimensionalen Position des Werkstücks 38, die von der Einheit 55 zur Berechnung der Merkmalsposition berechnet wurde. Dann werden die Position und die Ausrichtung des Roboters 1 zum Greifen des Werkstücks 38 an die Betriebssteuerungseinheit 43 gesendet. Die Betriebssteuerungseinheit 43 treibt den Roboter 1 und die Hand 5 an, um das Werkstück 38 auf der Grundlage eines von der Einheit zur Erzeugung eines Betriebsbefehls 59 empfangenen Betriebsbefehls zu greifen.
-
5 zeigt ein schematisches Diagramm, wenn das Roboter-System das erste Werkstück in den vertieften Teil des zweiten Werkstücks legt. Auch wenn das erste Werkstück 38 in den vertieften Teil 39a des zweiten Werkstücks 39 eingelegt wird, wird die gleiche Steuerung wie beim Greifen des ersten Werkstücks 38 durchgeführt. Die Betriebssteuerungseinheit 43 ändert die Position und Ausrichtung des Roboters 1 nach dem Ergreifen des ersten Werkstücks 38 mit der Hand 5. Der Roboter 1 bringt die Kamera 6 in eine Position und Ausrichtung, in der sie das zweite Werkstück 39 abbilden kann.
-
6 zeigt eine Draufsicht auf das zweite Werkstück gemäß der vorliegenden Ausführungsform. Wie aus 5 und 6 hervorgeht, hat das zweite Werkstück 39 eine rechteckige Parallelepipedform. Eine obere Fläche des Werkstücks 39 ist eben. Der vertiefte Teil 39a, der der Form des plattenförmigen Bereichs 38a des ersten Werkstücks 38 entspricht, ist an der Oberseite des Werkstücks 39 ausgebildet. Ein abgestufter Abschnitt des vertieften Teils 39a des zweiten Werkstücks 39 wird zu einem Merkmalabschnitt, wenn das Bild von der Kamera 6 aufgenommen wird.
-
7 zeigt ein Beispiel für ein von der Kamera aufgenommenes Bild des zweiten Werkstücks. Das Bild 67 enthält ein Bild 69 der oberen Oberfläche des zweiten Werkstücks 39. Unter Bezugnahme auf 5 bis 7 ist der Abstand von der oberen Oberfläche des Werkstücks 39, auf der der Merkmalsabschnitt ausgebildet ist, zur Kamera 6, wenn das zweite Werkstück 39 abgebildet wird, vorgegeben. Die Position der Z-Achse der oberen Oberfläche des Werkstücks 39 im Kamera-Koordinatensystem 72 ist vorgegeben. Außerdem wird die Ausrichtung der Kamera 6 so eingestellt, dass die optische Achse des Objektivs der Kamera 6 im Wesentlichen senkrecht zur oberen Oberfläche des Werkstücks 39 mit dem Merkmalsabschnitt verläuft. Eine solche Referenzposition und -ausrichtung des Roboters 1 ist vorgegeben.
-
Unter Bezugnahme auf 2, 5 und 7 erkennt die Einheit zur Erkennung eines Merkmals 54 der Bildverarbeitungseinheit 50 den vertieften Teil 39a, der als ein Merkmalsabschnitt des Werkstücks 39 dient, indem sie einen Mustervergleich durchführt. Ein Referenzbild zur Erfassung des vertieften Teils 39a wird im Voraus erstellt und im Speicherteil 42 gespeichert. Die Einheit zur Berechnung der Merkmalsposition 55 berechnet die dreidimensionale Position des Merkmalsabschnitts des Werkstücks 39 unter Verwendung eines Berechnungsmodells auf der Grundlage der Position des Merkmalsabschnitts in dem von der Kamera 6 aufgenommenen Bild 69. Zum Beispiel kann die Einheit zur Berechnung der Merkmalsposition 55 die dreidimensionale Position einer Ecke der ebenen Form des vertieften Teils 39a berechnen. Dann kann die Einheit zur Berechnung der Merkmalsposition 55 die dreidimensionale Position des Werkstücks 39 auf der Grundlage der dreidimensionalen Position des Merkmalsabschnitts berechnen.
-
Die Einheit zur Erzeugung eines Betriebsbefehls 59 berechnet die Position und die Ausrichtung des Roboters 1 auf der Grundlage der von der Einheit zur Berechnung der Merkmalsposition 55 berechneten Position des zweiten Werkstücks 39. Die Einheit zur Erzeugung eines Betriebsbefehls 59 berechnet die Position und die Ausrichtung des Roboters 1 zum Einsetzen des ersten Werkstücks 38 in den vertieften Teil 39a des zweiten Werkstücks 39. Dann überträgt die Einheit zur Erzeugung eines Betriebsbefehls 59 die Position und Ausrichtung des Roboters 1 zum Einsetzen des Werkstücks 38 in den vertieften Teil 39a des Werkstücks 39 an die Betriebssteuerungseinheit 43. Auf der Grundlage eines von der Einheit zur Erzeugung eines Betriebsbefehls 59 empfangenen Betriebsbefehls steuert die Betriebssteuerungseinheit 43 den Roboter 1 und die Hand 5 so an, dass das erste Werkstück 38 in dem vertieften Teil 39a des zweiten Werkstücks 39 platziert wird.
-
Bei der Steuerung für den Transport eines Werkstücks gemäß der vorliegenden Ausführungsform erfasst die Einheit zur Erkennung eines Merkmals 54 einen Merkmalsabschnitt, und die Einheit zur Berechnung der Merkmalsposition 55 berechnet genau die dreidimensionalen Positionen der Werkstücke 38 und 39 auf der Grundlage der Position des Merkmalsabschnitts. Auf diese Weise kann das Roboter-System 3 das Werkstück 38 genau greifen und das Werkstück 38 in dem vertieften Teil 39a des Werkstücks 39 ablegen. Das Robotersystem 3 kann das Werkstück 38 auch dann genau greifen, wenn die Position des Werkstücks 38 auf dem Sockel 95 gegenüber der Referenzposition verschoben ist oder das Werkstück 38 Maßfehler aufweist. Es ist auch möglich, das Werkstück 38 genau in den vertieften Teil 39a des Werkstücks 39 zu legen, selbst wenn die Position des Werkstücks 39 auf dem Sockel 96 von der Referenzposition verschoben ist oder das Werkstück 39 Maßfehler aufweist.
-
Die Einheit zur Berechnung der Merkmalsposition 55 der vorliegenden Ausführungsform berechnet eine dreidimensionale Position aus einer bestimmten Position in einem zweidimensionalen Bild unter Verwendung eines vorgegebenen Berechnungsmodells. Wenn sich die Ausrichtung der Kamera ändert, kann sich die relative Positionsbeziehung eines lichtempfangenden Elements der Kamera in Bezug auf das Objektiv aufgrund des Einflusses des auf die Kamera ausgeübten Eigengewichts und des Eigengewichts des Objektivs ändern. Im Falle einer Kamera mit einer Flüssiglinse kann sich auch die Form der Linse als Reaktion auf die Änderung der Ausrichtung der Kamera ändern. Infolgedessen kann sich die dreidimensionale Position für die spezifische Position in dem von der Kamera 6 aufgenommenen zweidimensionalen Bild ändern, und die dreidimensionale Position des Werkstücks wird möglicherweise nicht genau berechnet.
-
Die Bildverarbeitungseinheit 50 der vorliegenden Ausführungsform hat die Funktion, die dreidimensionale Position zu korrigieren, indem die Ausrichtung der Kamera 6 berücksichtigt wird. Einstellinformationen 63 zur Einstellung von Parametern, die der Ausrichtung der Kamera 6 entsprechen, sind vorgegeben. Die Einstellinformationen 63 sind in dem Speicherteil 42 gespeichert. Die Einheit zur Einstellung eines Parameters 53 berechnet Parameter eines Berechnungsmodells zum Berechnen der dreidimensionalen Position eines Merkmalsabschnitts aus der Position des Merkmalsabschnitts in einem von der Kamera 6 aufgenommenen Bild auf der Grundlage der Schwerkraftrichtung, der Ausrichtung der Kamera 6 und der Einstellinformationen 63. Die Einheit zur Berechnung der Merkmalsposition 55 berechnet die dreidimensionale Position des Merkmalsabschnitts auf der Oberfläche des Werkstücks unter Verwendung der entsprechend der Ausrichtung der Kamera 6 eingestellten Parameter. Wenn sich die Ausrichtung der Kamera 6 ändert, ändert die Einheit zur Einstellung eines Parameters 53 die Werte der Parameter in Abhängigkeit von der Ausrichtung der Kamera 6.
-
Nachfolgend wird ein Berechnungsmodell zur Berechnung einer dreidimensionalen Position im Raum anhand einer bestimmten Position in einem von einer Kamera aufgenommenen Bild beschrieben. Eine Position in einem von der Kamera aufgenommenen Bild, die einer beliebigen Position im Raum entspricht, wird im Allgemeinen durch die folgende Gleichung (1) unter Verwendung eines Lochkameramodells dargestellt.
[Formel 1]
-
In der vorliegenden Ausführungsform werden die Koordinatenwerte (X, Y, Z) der dreidimensionalen Position im Referenz-Koordinatensystem 71 ausgedrückt. Die Koordinatenwerte (u, v) der Position im Bild werden in dem Bildkoordinatensystem 73 ausgedrückt. Die extrinsische Parametermatrix ist eine Transformationsmatrix zur Umwandlung einer dreidimensionalen Position im Raum in Koordinatenwerte im Kamera-Koordinatensystem 72. Die intrinsische Parametermatrix ist eine Matrix zur Umwandlung von Koordinatenwerten im Kamera-Koordinatensystem 72 in Koordinatenwerte im Bildkoordinatensystem 73 im Bild. In diesem Fall ist der Z-Achsenwert der dreidimensionalen Position im Referenz-Koordinatensystem 71 oder der Z-Achsen-Koordinatenwert im Kamera-Koordinatensystem 72 vorgegeben, der dem Abstand der Kamera zum Werkstück entspricht.
-
Die obige Gleichung (1) ist ein ideales Beispiel, bei dem es keine Linsenverzerrung o. ä. gibt. In der Praxis werden Parameteränderungen aufgrund von Linsenverzerrungen o. Ä. berücksichtigt. Die Berechnung eines Teils der Gleichung (1), der der dreidimensionalen Position im Raum und der Matrix der extrinsischen Parameter entspricht, kann durch die folgende Gleichung (2) ausgedrückt werden.
[Formel 2]
-
Die im Referenz-Koordinatensystem 71 ausgedrückten Koordinatenwerte (X, Y, Z) können mit Hilfe von Gleichung (2) in die im Kamera-Koordinatensystem 72 ausgedrückten Koordinatenwerte (x, y, z) umgewandelt werden. Als nächstes werden eine Variable x' und eine Variable y' wie in der folgenden Gleichung (3) und Gleichung (4) dargestellt definiert, um die Linsenverzerrung der Kamera zu berücksichtigen. Ferner werden eine Variable x'' und eine Variable y'', die die Verzeichnung berücksichtigen, wie in Gleichung (5) und Gleichung (6) dargestellt, berechnet. In diesem Zusammenhang ist die Beziehung zwischen der Variablen x', der Variablen y' und einer Variablen r in Gleichung (7) dargestellt.
[Formel 3]
-
In Gleichung (5) und Gleichung (6) sind die Koeffizienten k
1 bis k
6 Koeffizienten, die sich auf die Linsenverzeichnung in radialer Richtung beziehen, und die Koeffizienten p
1 und p
2 sind Koeffizienten, die sich auf die Linsenverzeichnung in Umfangsrichtung beziehen. Die Variablen x'' und y'', die die Objektivverzeichnung berücksichtigen, werden verwendet, wobei die Koordinatenwerte (u, v) des Bildkoordinatensystems 73 im Bild wie in der folgenden Gleichung (8) und Gleichung (9) gezeigt berechnet werden können. Gleichung (8) und Gleichung (9) sind ein Teil, der einer Berechnung unter Verwendung der intrinsischen Parametermatrix in der obigen Gleichung (1) entspricht.
[Formel 4]
-
Die obige Beschreibung beschreibt ein Verfahren zur Berechnung einer Position in einem Bild aus einer dreidimensionalen Position im Raum. In der vorliegenden Ausführungsform wird jedoch auf der Grundlage der obigen Beziehung eine dreidimensionale Position (X, Y, Z) im Raum auf der Grundlage der Koordinatenwerte (u, v) der Position im Bild und des Abstands von der Kamera 6 zu jedem der Werkstücke 38 und 39 im Kamera-Koordinatensystem 72 (die Z-Achsenkoordinatenwerte im Kamera-Koordinatensystem 72) berechnet. Der Abstand von der Kamera 6 zum Werkstück 38 kann vorgegeben und im Speicherteil 42 gespeichert werden. Die Einheit zur Berechnung der Merkmalsposition 55 berechnet aus den Koordinatenwerten (u, v) einer bestimmten Position im Bild auf der Grundlage des Berechnungsmodells eine dreidimensionale Position (X, Y, Z) im Raum.
-
In diesem Zusammenhang und unter Bezugnahme auf Gleichung (2) bis Gleichung (9) erfordert das Berechnungsmodell zur Berechnung einer dreidimensionalen Position aus einer Position im Bild die Produkte fx und fy, bei denen es sich um Variablen f handelt, die dem Produkt aus Brennweite und effektiver Bildgröße entsprechen, ein Bildzentrum cx, cy, bei denen es sich um Variablen c handelt, die dem Bildzentrum entsprechen, sowie die Koeffizienten k1 bis k6 und p1 und p2, bei denen es sich um Variablen k und p handelt, die den Koeffizienten für die Verzeichnung entsprechen. Diese Parameter des Berechnungsmodells hängen von der Ausrichtung der Kamera 6 ab. Mit anderen Worten, die Parameter des Berechnungsmodells hängen von der Ausrichtung der Kamera in Bezug auf die Richtung der Schwerkraft ab. Alternativ dazu hängen die Parameter des Berechnungsmodells von einer auf die Kamera wirkenden Kraft (Beschleunigung) wie der Schwerkraft ab.
-
8 zeigt eine perspektivische Ansicht der Kamera zur Erläuterung der Ausrichtung des Kamera-Koordinatensystems in Bezug auf die Schwerkraftrichtung. In der vorliegenden Ausführungsform ist das Kamera-Koordinatensystem 72 so eingestellt, dass sich die Z-Achse des Kamera-Koordinatensystems 72 mit der optischen Achse 6b des Objektivs überschneidet. In der vorliegenden Ausführungsform wird die Ausrichtung des Kamera-Koordinatensystems 72 verwendet, um die Ausrichtung der Kamera in Bezug auf die Richtung der Schwerkraft auszudrücken. Eine durch einen Pfeil 102 angegebene Richtung ist die Richtung der Schwerkraft, und das Kamera-Koordinatensystem 72 ist in Bezug auf die Richtung der Schwerkraft geneigt.
-
Die Einheit zur Erkennung der Schwerkraft-Richtung 51 erfasst die Richtung der Schwerkraft. In der vorliegenden Ausführungsform werden Koordinatenwerte, die die Richtung der Schwerkraft im Referenz-Koordinatensystem 71 angeben, im Voraus im Speicherteil 42 gespeichert. Die Einheit zur Erkennung der Schwerkraft-Richtung 51 bezieht die Koordinatenwerte des Referenz-Koordinatensystems 71, die die Richtung der Schwerkraft angeben, aus dem Speicherteil 42. Alternativ kann ein Schwerkraftsensor am Handgelenk o.ä. des Roboters angeordnet sein, dessen Ausrichtung sich zusammen mit der Kamera ändert. Die Einheit zur Erkennung der Schwerkraft-Richtung 51 kann die Richtung der Schwerkraft auf der Grundlage einer Ausgabe des Schwerkraftsensors erfassen. Auch die Kamera kann einen Schwerkraftsensor enthalten. In diesem Fall kann die Einheit zur Erkennung der Schwerkraft-Richtung 51 die Richtung der Schwerkraft anhand des Schwerkraftsensors der Kamera erfassen.
-
Die Einheit zur Erkennung der Orientierung 52 erkennt die Ausrichtung der Kamera 6 in Bezug auf die Schwerkraft-Richtung anhand der Position und Ausrichtung des Roboters 1 und einer Position am Roboter 1, an der die Kamera 6 angebracht ist. In der vorliegenden Ausführungsform ist die Kamera 6 an der Hand 5 befestigt. Die Position der Kamera 6 am Roboter 1 und ihre Ausrichtung in Bezug auf die Hand 5 sind konstant. Daher berechnet die Einheit zur Erkennung der Orientierung 52 die Position und Orientierung des Kamera-Koordinatensystems 72 auf der Grundlage einer Ausgabe des Positionsmelders 23. Die Position und Orientierung des Kamera-Koordinatensystems 72 kann durch Verwendung von Koordinatenwerten des Referenz-Koordinatensystems 71 ausgedrückt werden. Alternativ dazu berechnet die Einheit zur Erkennung der Orientierung 52 die Position und Ausrichtung des Werkzeug-Koordinatensystems 74 unter Verwendung des Referenz-Koordinatensystems 71 auf der Grundlage der Ausgabe des Positionsmelders 23. Dann kann die Einheit zur Erkennung der Orientierung 52 die Position und Ausrichtung des Kamera-Koordinatensystems 72 aus der Position und Ausrichtung des Werkzeug-Koordinatensystems 74 berechnen.
-
Anschließend berechnet die Einheit zur Erkennung der Orientierung 52 die Ausrichtung des Kamera-Koordinatensystems 72 in Bezug auf die Schwerkraftrichtung. In der vorliegenden Ausführungsform wird die Richtung der Schwerkraft in Komponenten in den Richtungen der X-Achse, Y-Achse und Z-Achse des Kamera-Koordinatensystems 72 zerlegt. Mit anderen Worten, die Richtung der Schwerkraft wird durch den X-Achsen-Koordinatenwert, den Y-Achsen-Koordinatenwert und den Z-Achsen-Koordinatenwert ausgedrückt. Als Länge des Pfeils 102, der der Größe der Schwerkraft entspricht, kann eine beliebige Länge angenommen werden. In der vorliegenden Ausführungsform wird angenommen, dass die Schwerkraft 9,8 beträgt. In der vorliegenden Ausführungsform entsprechen die Koordinatenwerte (g
x, g
y , g
z) eines durch den Pfeil 102 angezeigten Vektors in Richtung der Schwerkraft der Ausrichtung des Kamera-Koordinatensystems 72 in Bezug auf die Richtung der Schwerkraft. Wenn die Größe des durch den Pfeil 102 angezeigten Vektors in Richtung der Schwerkraft durch eine Variable g dargestellt wird, gilt die folgende Beziehung (10).
[Formel 5]
-
Wenn beispielsweise die optische Achse 6b des Objektivs der Kamera 6 parallel zur vertikalen Richtung verläuft, entsprechen die Koordinatenwerte (0, 0, 9,8) des durch den Pfeil 102 angezeigten Vektors der Ausrichtung des Kamera-Koordinatensystems 72 in Bezug auf die Richtung der Schwerkraft. Als nächstes werden in der vorliegenden Ausführungsform Einstellinformationen 63 zum Einstellen von Parametern, die der Ausrichtung der Kamera 6 in Bezug auf die Richtung der Schwerkraft entsprechen, vorgegeben. Die Einheit zum Einstellen eines Parameters 53 stellt die Parameter des Berechnungsmodells unter Verwendung der Ausrichtung der Kamera 6 in Bezug auf die Richtung der Schwerkraft und der Einstellungsinformationen 63 ein. Tabelle 1 zeigt einen Teil einer Tabelle von Parameterwerten, die der Ausrichtung der Kamera 6 als Einstellungsinformation 63 entsprechen.
[Tabelle 1]
| gx | gy | gz | fx |
| 9.8 | 0.0 | 0.0 | fx1 |
| 9.0 | 3.9 | 0.0 | fx2 |
| 8.0 | 5.7 | 0.0 | fx3 |
| 7.0 | 6.9 | 0.0 | fx4 |
| 6.0 | 7.7 | 0.0 | fx5 |
| 5.0 | 8.4 | 0.0 | fx6 |
| 4.0 | 8.9 | 0.0 | fx7 |
| 3.0 | 9.3 | 0.0 | fx8 |
| 2.0 | 9.6 | 0.0 | fx9 |
| 1.0 | 9.7 | 0.0 | fx10 |
| 9.0 | 3.0 | 2.5 | fx11 |
| 9.0 | 2.0 | 3.3 | fx12 |
| 9.0 | 1.0 | 3.7 | fx13 |
-
In diesem Fall werden die Werte des Produkts fx aus der Brennweite und der effektiven Pixelgröße als Beispiel für einen Parameter angezeigt. In den Einstellungsinformationen 63 dieses Falles werden Werte der Produkte fx1 bis fx13, die Parameter sind, für Sätze von Koordinatenwerten (gx, gy , gz) vorgegeben, die Variablen sind, die eine Vielzahl von diskreten Ausrichtungen der Kamera 6 angeben.
-
Die Einheit zum Einstellen eines Parameters 53 stellt die Parameter des Berechnungsmodells auf der Grundlage der für jede Ausrichtung der Kamera 6 in Bezug auf die Schwerkraftrichtung ermittelten Parameterwerte ein. Beispielsweise ermittelt die Einheit zum Einstellen eines Parameters 53 die Produkte fx von zwei Sätzen von Koordinatenwerten (gx, gy, gz), die einem Satz von Koordinatenwerten am nächsten kommen, die sich auf die Ausrichtung der Kamera 6 beziehen, wenn die Kamera 6 ein Bild aufnimmt. Die Einheit zum Einstellen eines Parameters 53 kann den Parameter durch Interpolation der beiden Werte des Produkts fx mit dem Satz von Koordinatenwerten für die Ausrichtung der Kamera einstellen. Alternativ können die Parameter durch eine beliebige Methode eingestellt werden, indem eine Tabelle mit diskreten Parameterwerten verwendet wird. Beispielsweise kann ein Mittelwert der beiden Parameterwerte verwendet werden, die den beiden Gruppen von Koordinatenwerten entsprechen, oder es kann ein Parameterwert verwendet werden, der der engeren der Gruppen von Koordinatenwerten entspricht. Andere Parameter wie das Produkt fy, die Bildzentrumsvariablen c und die Verzerrungsvariablen k und p können auf ähnliche Weise eingestellt werden.
-
Durch die Verwendung von Einstellinformationen, die Parameterwerte für diskrete Ausrichtungen der Kamera enthalten, kann die Einheit zum Einstellen eines Parameters Parameter einstellen, die einer beliebigen Ausrichtung der Kamera entsprechen. Die Einheit zum Einstellen eines Parameters kann Parameter durch einfache Berechnung einstellen. Auch wenn es schwierig ist, die unten beschriebenen Funktionen einzustellen, können die Parameter alternativ in Abhängigkeit von der Ausrichtung der Kamera eingestellt werden.
-
Anschließend können Funktionen zur Berechnung von Parametern in Abhängigkeit von der Ausrichtung der Kamera als Einstellungsinformationen definiert werden. Die Parameter können durch mathematische Ausdrücke berechnet werden, die Variablen in Bezug auf die Ausrichtung der Kamera enthalten. Beispielsweise kann eine Funktion f(g
x, g
y , g
z) zur Berechnung einer Variablen f in Bezug auf die Variablen g
x, g
y und g
z, bei denen es sich um einen Satz von Koordinatenwerten in Bezug auf die Ausrichtung der Kamera handelt, wie in Gleichung (11) gezeigt, vorgegeben werden. Alternativ kann eine Funktion k(g
x, g
y , g
z) zur Berechnung der Verzerrungskoeffizienten k in Bezug auf die Variablen, die sich auf die Ausrichtung der Kamera beziehen, wie in Gleichung (12) gezeigt, vorgegeben werden.
[Formel 6]
-
Zum Beispiel können Gleichungen höheren Grades der Variablen gx, gy und gz, die sich auf die Ausrichtung der Kamera beziehen, als solche Funktionen übernommen werden. Die Einheit zum Einstellen eines Parameters 53 kann jeden Parameter mit Hilfe einer Funktion einstellen. Die Einheit zur Berechnung der Merkmalsposition 55 kann die dreidimensionale Position des Merkmalsteils auf der Grundlage der von der Einheit zum Einstellen eines Parameters 53 eingestellten Parameter berechnen.
-
Alternativ kann auch maschinelles Lernen zur Berechnung von Parametern in Abhängigkeit von der Ausrichtung der Kamera als Einstellinformation verwendet werden. Zum Beispiel erwirbt die Einheit zum Einstellen eines Parameters als Trainingsdaten (Labels) eine große Anzahl von Sätzen der Ausrichtung der Kamera in Bezug auf die Richtung der Schwerkraft und Parameterwerte, die der Ausrichtung der Kamera entsprechen. Die Einheit zum Einstellen eines Parameters erzeugt ein Lernmodell durch überwachtes Lernen. Dann kann die Einheit zum Einstellen eines Parameters Parameterwerte aus Variablen, die sich auf die Ausrichtung der Kamera beziehen, unter Verwendung des Lernmodells einstellen.
-
In der oben beschriebenen Ausführungsform wird der Vektor in Richtung der Schwerkraft in Komponenten in Richtung der X-Achse, der Y-Achse und der Z-Achse des Kamera-Koordinatensystems als Variablen zerlegt, die die Ausrichtung der Kamera in Bezug auf die Richtung der Schwerkraft angeben, aber die Variablen sind nicht auf diese Form beschränkt. Es kann jede beliebige Variable verwendet werden, solange sie die Ausrichtung der Kamera in Bezug auf die Schwerkraftrichtung angibt. Beispielsweise können die Koordinatenwerte der Ausrichtung des Kamera-Koordinatensystems, die durch die Koordinatenwerte des Referenz-Koordinatensystems 71 (Koordinatenwerte der W-Achse, P-Achse und R-Achse des Referenz-Koordinatensystems 71) ausgedrückt werden, als Variablen berechnet werden, die die Ausrichtung der Kamera in Bezug auf die Schwerkraftrichtung angeben.
-
9 zeigt ein Flussdiagramm der Steuerung gemäß der vorliegenden Ausführungsform. Unter Bezugnahme auf 1, 2 und 9 bestimmt der Bediener Einstellinformationen zur Einstellung der Parameter des Berechnungsmodells. Dann veranlasst der Bediener den Speicherteil 42, die Einstellinformationen 63 zu speichern. Zunächst wird die Steuerung des Greifens des Werkstücks 38 durch das Roboter-System 3 als Beispiel beschrieben.
-
In Schritt 81 fährt die Betriebssteuerungseinheit 43 die Kamera 6 in eine vorgegebene Abbildungsposition zur Abbildung des Werkstücks 38. In der vorliegenden Ausführungsform ist die Kamera 6 direkt über der Referenzposition des Werkstücks 38 angeordnet. Im nächsten Schritt 82 stellt der Fokuseinstellmechanismus 24 der Kamera 6 die Kamera 6 scharf. Der Mechanismus der Schärfeneinstellung 24 der vorliegenden Ausführungsform verfügt über eine Autofokusfunktion und führt somit eine Autofokussierung durch. Die Einheit zur Steuerung eines Bildes 58 nimmt ein Bild mit der Kamera 6 auf.
-
In Schritt 83 erfasst die Einheit zur Erkennung der Schwerkraft-Richtung 51 die Richtung der Schwerkraft. Beispielsweise erhält die Einheit zur Erkennung der Schwerkraft-Richtung 51 Koordinatenwerte, die die Richtung der Schwerkraft angeben, ausgedrückt durch Koordinatenwerte des Referenz-Koordinatensystems 71, vom Speicherteil 42. Die Einheit zur Erkennung der Orientierung 52 erfasst die Ausrichtung der Kamera 6 auf der Grundlage der Position und Ausrichtung des Roboters 1. Beispielsweise kann die Einheit zur Erkennung der Orientierung 52 die Ausrichtung des Kamera-Koordinatensystems 72 unter Verwendung der Koordinatenwerte des Referenz-Koordinatensystems 71 erfassen. Als Nächstes erfasst die Einheit zur Erkennung der Orientierung 52 die Ausrichtung der Kamera in Bezug auf die Schwerkraftrichtung, wenn die Kamera ein Bild aufgenommen hat.
-
In Schritt 84 stellt die Einheit zum Einstellen eines Parameters 53 Parameter eines Berechnungsmodells zur Berechnung der dreidimensionalen Position des Merkmalsabschnitts auf der Grundlage der Variablen bezüglich der Ausrichtung der Kamera 6 und der Einstellungsinformationen ein.
-
Als nächstes, in Schritt 85, erkennt die Einheit zur Erkennung eines Merkmals 54 einen Merkmalsabschnitt im Bild, indem sie einen Musterabgleich durchführt. In diesem Beispiel wird der Musterabgleich unter Verwendung eines Referenzbildes des Randbereichs 38c des plattenartigen Bereichs 38b durchgeführt, wodurch ein Randbereich 38c in dem Bild erfasst wird. Die Einheit zur Berechnung der Merkmalsposition 55 erfasst die Position des Merkmalsteils im Bild.
-
Als nächstes wird in der beispielhaften Steuerung der vorliegenden Ausführungsform eine Steuerung zur Änderung der Position der Kamera 6 in Bezug auf das Werkstück 38 und zur Aufnahme eines Bildes durchgeführt, wenn die Position des Merkmalsteils des Werkstücks nicht erkannt werden kann. Beispielsweise kann der Merkmalsbereich aufgrund der Reflexion des Lichts von der Beleuchtung weiß erscheinen, wodurch der Merkmalsbereich unklar wird. In einem solchen Fall kann es möglich sein, den Merkmalsbereich klar abzubilden, indem die Position der Kamera bewegt wird.
-
In Schritt 86 bestimmt die Bildverarbeitungseinheit 50, ob die Position des Merkmalsteils erkannt wurde oder nicht. Wenn die Einheit zur Berechnung der Merkmalsposition 55 die Position des Merkmalsteils nicht erkennen kann, wird zu Schritt 87 übergegangen.
-
In Schritt 87 erzeugt die Einheit zur Erzeugung eines Betriebsbefehls 59 einen Befehl zum Ändern der Position der Kamera 6. Zum Beispiel erzeugt die Einheit zur Erzeugung eines Betriebsbefehls 59 einen Befehl zum Verschieben der Kamera 6 in einer vorbestimmten Richtung um einen vorbestimmten Bewegungsbetrag. Die Einheit zur Erzeugung eines Betriebsbefehls 59 kann die Kamera 6 in einer Richtung senkrecht zur Z-Achse des Kamera-Koordinatensystems 72 verschieben. Unter Bezugnahme auf 1 erzeugt die Einheit zur Erzeugung eines Betriebsbefehls 59 beispielsweise einen Befehl zum Bewegen der Kamera 6 in Richtung der X-Achse des Kamera-Koordinatensystems 72.
-
Die Einheit zur Erzeugung eines Betriebsbefehls 59 sendet den Betriebsbefehl für den Roboter 1 an die Betriebssteuerungseinheit 43. Die Betriebssteuerungseinheit 43 ändert die Position und Ausrichtung des Roboters 1. Dann kehrt die Steuerung zu Schritt 82 zurück. Die Bildverarbeitungseinheit 50 wiederholt die Steuerung von Schritt 82 bis Schritt 86.
-
In Schritt 86, wenn die Einheit zur Berechnung der Merkmalsposition 55 die Position des Merkmalsteils erkannt hat, fährt die Steuerung mit Schritt 88 fort. Die Steuerung kann abgebrochen werden, wenn das Merkmalsteil auch nach mehrmaligem Ändern der Position und Ausrichtung des Roboters nicht erkannt werden kann.
-
In Schritt 88 berechnet die Einheit zur Berechnung der Merkmalsposition 55 die dreidimensionale Position des Merkmalsbereichs auf der Grundlage der Position des Merkmalsbereichs im Bild. Die Einheit zur Berechnung der Merkmalsposition 55 berechnet die Koordinatenwerte des Referenz-Koordinatensystems 71 auf der Grundlage der Koordinatenwerte des Bildkoordinatensystems 73 im Bild. Die Einheit zur Berechnung der Merkmalsposition 55 berechnet die Position des Werkstücks auf der Grundlage der dreidimensionalen Position des Merkmalsabschnitts. Die Position des Werkstücks kann z.B. im Referenz-Koordinatensystem 71 berechnet werden.
-
In Schritt 89 berechnet die Einheit zur Erzeugung eines Betriebsbefehls 59 die Position und Ausrichtung des Roboters 1 auf der Grundlage der Position des Werkstücks 38. Dann, in Schritt 90, sendet die Einheit zur Erzeugung eines Betriebsbefehls 59 Betriebsbefehle zum Fahren des Roboters 1 an die Betriebssteuerungseinheit 43. Die Betriebssteuerungseinheit 43 steuert den Roboter 1 und die Hand 5 basierend auf den Betriebsbefehlen.
-
Unter Bezugnahme auf 2, 5 und 9 kann die gleiche Steuerung wie die in 9 dargestellte durchgeführt werden, wenn das erste Werkstück 38 in den vertieften Teil 39a des zweiten Werkstücks 39 eingelegt wird. In Schritt 81 ordnet der Roboter 1 die Kamera 6 in einer Richtung senkrecht zur Oberfläche des Werkstücks 39 an. In Schritt 82 nimmt die Kamera 6 ein Bild von der Oberfläche des Werkstücks 39 auf. In Schritt 83 erfasst die Einheit zur Erkennung der Schwerkraft-Richtung 51 die Richtung der Schwerkraft. Die Einheit zur Erkennung der Orientierung 52 erfasst die Ausrichtung der Kamera in Bezug auf die Richtung der Schwerkraft. In Schritt 84 berechnet die Einheit zum Einstellen eines Parameters 53 Parameter eines Berechnungsmodells auf der Grundlage der Ausrichtung der Kamera 6 in Bezug auf die Richtung der Schwerkraft.
-
Als nächstes, in Schritt 85, erkennt die Einheit zur Erkennung eines Merkmals 54 einen Merkmalsabschnitt des Werkstücks in dem Bild. Zum Beispiel wird die Position einer Ecke des vertieften Teils 39a des Werkstücks 39 erfasst. Die Einheit zur Berechnung der Merkmalsposition 55 ermittelt die Position des Merkmalsteils im Bild.
-
In Schritt 86 bestimmt die Bildverarbeitungseinheit 50, ob die Position des Merkmalsteils erkannt werden kann oder nicht. Wenn die Position des Merkmalsteils nicht erkannt werden kann, ändert die Einheit zur Erzeugung eines Betriebsbefehls 59 in Schritt 87 die Position der Kamera 6. Zum Beispiel wird die Kamera 6 in eine Richtung senkrecht zur Z-Achse des Kamera-Koordinatensystems 72 verschoben. Die Steuerung von Schritt 82 bis Schritt 86 wird wiederholt, nachdem die Position der Kamera 6 geändert wurde.
-
Wenn die Position des Merkmalsteils in Schritt 86 erkannt werden kann, berechnet die Einheit zur Berechnung der Merkmalsposition 55 in Schritt 88 die Position des zweiten Werkstücks 39. Dann werden die Position und die Ausrichtung des Roboters 1, wenn das erste Werkstück 38 platziert wird, auf der Grundlage der Position des zweiten Werkstücks 39 berechnet. Mit anderen Worten werden die Position und die Ausrichtung des Roboters 1 berechnet, wenn das erste Werkstück 38 in den vertieften Teil 39a des zweiten Werkstücks 39 eingeführt wird. Dann wird der Roboter in Schritt 90 angetrieben. Die Betriebssteuerungseinheit 43 steuert den Roboter 1 und die Hand 5 auf der Grundlage der Betriebsbefehle. Die Hand 5 gibt das Werkstück 38 frei, nachdem das erste Werkstück 38 in den vertieften Teil 39a eingelegt wurde.
-
Die Abbildungsvorrichtung gemäß der vorliegenden Ausführungsform stellt Parameter eines Berechnungsmodells zur Berechnung einer dreidimensionalen Position ein, die einer bestimmten Position in einem vom Bildsensor erfassten Bild entspricht, und zwar in Abhängigkeit von der Ausrichtung der Kamera. Dann wird die dreidimensionale Position der spezifischen Position auf der Grundlage von Parametern berechnet, die der Ausrichtung des Bildsensors entsprechen. Durch diese Steuerung ist es möglich, die dreidimensionale Position des Merkmalsteils entsprechend der Ausrichtung der Kamera genau zu erfassen. Insbesondere muss die Ausrichtung der Kamera in Bezug auf das Werkstück nicht im Voraus festgelegt werden, und ein Bild kann bei jeder beliebigen Ausrichtung der Kamera entsprechend der Ausrichtung des Werkstücks aufgenommen und eine dreidimensionale Position mit einem kleinen Fehler berechnet werden. Die Abbildungsvorrichtung der vorliegenden Ausführungsform erweitert den Bereich, in dem der Roboter gefahren werden kann, und erhöht die Anzahl der Muster für den Antrieb des Roboters im Vergleich zu den Technologien des herkömmlichen Standes der Technik.
-
Wenn der Mechanismus zur Schärfeneinstellung des Bildsensors eine automatische Fokussierungsfunktion hat, erhöht sich das Gewicht. Da es einen Mechanismus zum Bewegen der Position des Objektivs gibt, nimmt auch das Klappern des Mechanismus im Inneren des Objektivs zu. Infolgedessen nimmt die Veränderung der relativen Position des Objektivs in Bezug auf das Lichtempfangselement der Kamera zu. Wenn die Kamera über eine automatische Fokussierungsfunktion verfügt, sind die Auswirkungen der Steuerung gemäß der vorliegenden Ausführungsform daher bemerkenswert.
-
Es ist zu beachten, dass der Bildverarbeitungssensor keine automatische Fokussierungsfunktion haben muss. Es kann zum Beispiel eine Kamera mit einem Objektiv verwendet werden, das manuell fokussiert wird. Alternativ kann auch eine Kamera mit einem Objektiv mit fester Fokusposition verwendet werden.
-
Das Roboter-System gemäß der vorliegenden Ausführungsform umfasst einen Roboter als Bewegungsvorrichtung, der den Bildsensor bewegt. Der Roboter kann die Ausrichtung der Kamera ändern. Selbst wenn der Roboter die Ausrichtung der Kamera ändert, kann die Abbildungsvorrichtung der vorliegenden Ausführungsform Parameter in Abhängigkeit von der Ausrichtung der Kamera einstellen und die dreidimensionale Position des Werkstücks genau erfassen.
-
Wie in 2 gezeigt, zeigt der Anzeigeteil 28 des Einlern-Handgeräts 26 der vorliegenden Ausführungsform die Werte der von der Einheit zum Einstellen eines Parameters 53 eingestellten Parameter an. Der Bediener kann die Werte der auf dem Anzeigeteil 28 des Einlern-Handgeräts 26 angezeigten Parameter überprüfen. Insbesondere dann, wenn die von der Einheit zur Berechnung der Merkmalsposition 55 berechnete dreidimensionale Position nicht korrekt ist, kann der Bediener die Werte der als Reaktion auf die Ausrichtung der Kamera 6 eingestellten Parameter überprüfen.
-
Außerdem ist die Einheit zum Einstellen eines Parameters 53 der vorliegenden Ausführungsform so ausgebildet, dass sie in der Lage ist, Parameter einzustellen, bei denen der Einfluss der Schwerkraft aufgehoben ist. Parameter, bei denen der Einfluss der Schwerkraft ausgeschaltet ist, können vorbestimmt und im Speicherteil 42 gespeichert werden. Die Einheit zum Einstellen eines Parameters 53 kann diese Parameter aus dem Speicherteil 42 abrufen.
-
Das Anzeigeteil 28 der vorliegenden Ausführungsform ist so ausgebildet, dass es die dreidimensionale Position des Merkmalsbereichs anzeigt, die unter Verwendung der Parameter berechnet wurde, die der Ausrichtung der Kamera in Bezug auf die Richtung der Schwerkraft entsprechen, sowie die dreidimensionale Position des Merkmalsbereichs, die unter Verwendung der Parameter berechnet wurde, bei denen der Einfluss der Schwerkraft ausgeschaltet ist. Mit dieser Konfiguration kann der Bediener die Größe der Positionsverschiebung aufgrund des Einflusses der Schwerkraft überprüfen. Der Bediener kann das Ausmaß des Einflusses der Schwerkraft auf das Bild überprüfen. Der Bediener kann auch das Ausmaß der Positionsverschiebung des Merkmalsteils im Bild oder das Ausmaß der dreidimensionalen Positionsverschiebung des Werkstücks überprüfen. Der Bediener kann die Genauigkeit der Bedienung des Robotersystems überprüfen.
-
In der oben beschriebenen Ausführungsform werden die Parameter für die Umwandlung einer Position in einem zweidimensionalen Bild in eine dreidimensionale Position auf der Grundlage der Ausrichtung der Kamera in Bezug auf die Richtung der Schwerkraft eingestellt, aber die Ausführungsform ist nicht darauf beschränkt. Die Einheit zum Einstellen eines Parameters 53 kann Parameter auf der Grundlage von Einstellinformationen einschließlich der Temperatur als Variable einstellen.
-
In 2 ist ein Temperaturmelder 31 zur Erfassung der Temperatur eines Körpers der Kamera 6 an der Kamera 6 im Roboter-System 3 der vorliegenden Ausführungsform angebracht. Die Temperatur ist nicht auf die Temperatur der Kamera 6 beschränkt, und jede Temperatur, die sich auf die Temperatur der Kamera 6 bezieht, kann angenommen werden. Zum Beispiel kann die Temperatur des Objektivs oder die Lufttemperatur um das Roboter-System 3 angenommen werden.
-
Wenn die Kamera über einen längeren Zeitraum betrieben wird, kann sich die Temperatur der elektronischen Teile in der Kamera erhöhen. Alternativ kann die Temperatur des Motors, der das Objektiv antreibt, ansteigen. Infolgedessen können sich die Temperatur des Kameragehäuses, die Temperatur des Objektivs und die Temperatur eines Trägerelements, das das Objektiv oder ähnliches trägt, ändern, und die Verzeichnung des Objektivs oder die relative Position des Sensors in Bezug auf das Objektiv kann sich ändern. Aus diesem Grund können sich die Parameter des Berechnungsmodells ändern, wenn sich die Temperatur ändert. Daher kann die Einheit zum Einstellen eines Parameters 53 die Parameter des Berechnungsmodells einstellen, indem sie zusätzlich zur Ausrichtung der Kamera in Bezug auf die Schwerkraftrichtung die Temperatur als Variable verwendet.
-
Bei einer Methode zur Einstellung solcher Parameter mit Temperatur als zusätzlicher Variable kann die Temperatur als zusätzliche Variable zu den Variablen für die Ausrichtung der Kamera in Bezug auf die Richtung der Schwerkraft hinzugefügt werden, wie in Tabelle 1 dargestellt. Mit anderen Worten, es ist möglich, eine Tabelle mit Parameterwerten zu erstellen, die die Temperatur t als Variable zusätzlich zu den Variablen g
x, g
y und g
z der Koordinatenwerte enthält, die die Richtung der Schwerkraft angeben. Alternativ können die Parameter mit Hilfe einer Funktion f(g
x, g
y , g
z, t) berechnet werden, die neben den Variablen g
x, g
y und g
z auch die Temperatur t als Variable enthält, wie in der folgenden Gleichung (13) dargestellt.
[Formel 7]
-
Durch diese Steuerung kann die dreidimensionale Position genau berechnet werden, wobei neben der Ausrichtung der Kamera in Bezug auf die Schwerkraftrichtung auch der Einfluss der Temperatur berücksichtigt wird. Insbesondere im Falle einer Kamera mit einer Flüssiglinse wird die Flüssiglinse stark von der Temperatur beeinflusst. Beispielsweise wird die Flüssigkeitslinse stark von der Temperatur der Flüssigkeit beeinflusst, da die Krümmung der Linse durch die Änderung der Oberflächenspannung verändert wird. Daher kann die dreidimensionale Position genau berechnet werden, indem die Parameter des Berechnungsmodells zusätzlich zur Ausrichtung der Kamera auf der Grundlage der Temperatur festgelegt werden.
-
In der oben beschriebenen Ausführungsform wird das Werkstück abgebildet, während die Kamera stationär ist, aber die Ausführungsform ist nicht darauf beschränkt. Das Werkstück kann auch abgebildet werden, während sich die Kamera bewegt. Beispielsweise kann anstelle des Sockels 95 ein Förderer für die horizontale Bewegung des Werkstücks 38 verwendet werden (siehe 1).
-
In diesem Fall kann die Position und Ausrichtung des Roboters 1 so gesteuert werden, dass die Kamera 6 der Bewegung des Werkstücks 38 folgt. Wenn das Werkstück 38 beispielsweise durch den Förderer in Richtung der Y-Achse des Referenz-Koordinatensystems 71 bewegt wird, nimmt die Kamera 6 ein Bild auf, während sie sich in Richtung der Y-Achse des Referenz-Koordinatensystems 71 bewegt. Dann kann das Werkstück 38 während einer Periode, in der sich das Werkstück 38 bewegt, gegriffen werden. In diesem Fall kann das Werkstück 38 während einer Zeitspanne, in der die Kamera 6 beschleunigt, oder während einer Zeitspanne, in der die Kamera 6 verlangsamt, abgebildet werden. Mit anderen Worten, ein Bild kann während eines Zeitraums aufgenommen werden, in dem die Kamera 6 beschleunigt wird.
-
Bezugnehmend auf 2 kann die Einheit zum Einstellen eines Parameters 53 der Bildverarbeitungseinheit 50 der vorliegenden Ausführungsform die Beschleunigung, die auf die Kamera 6 einwirkt, wenn ein Bild von der Kamera 6 aufgenommen wird, zur Gravitationsbeschleunigung addieren. Die Einheit zur Erkennung der Beschleunigung 56 berechnet die Position des Ursprungs des Kamera-Koordinatensystems 72 auf der Grundlage einer Ausgabe des Positionsmelders 23. Die Einheit zur Erkennung der Beschleunigung 56 berechnet die auf das Kamera-Koordinatensystem 72 wirkende Beschleunigung auf der Grundlage der Position des Ursprungs des Kamera-Koordinatensystems 72 und der Zeit. Mit anderen Worten, die Einheit zur Erkennung der Beschleunigung 56 berechnet die Größe der Beschleunigung und die Richtung der auf die Kamera 6 einwirkenden Beschleunigung.
-
Die Einheit zum Einstellen eines Parameters 53 kann die auf das Kamera-Koordinatensystem 72 wirkende Beschleunigung in eine Komponente a
x in Richtung der X-Achse, eine Komponente a
y in Richtung der Y-Achse und eine Komponente a
z in Richtung der Z-Achse des Kamera-Koordinatensystems 72 zerlegen. Die Koordinatenachsenkomponenten g'
x, g'
y und g'
z der auf das Kamera-Koordinatensystem 72 einwirkenden Beschleunigung, die die Beschleunigung aufgrund der Kamerabewegung und die Gravitationsbeschleunigung kombinieren, können durch die folgenden Gleichungen (14) bis (16) dargestellt werden.
[Formel 8]
-
Auf diese Weise kann für die Kamera 6 festgelegt werden, dass die Beschleunigung mit den Koordinatenwerten (g'x, g'y, g'z) im Kamera-Koordinatensystem 72 auf die Kamera 6 wirkt. Die Einheit zum Einstellen eines Parameters 53 kann die Werte der Variablen f', c', k' und p', bei denen es sich um Parameter handelt, auf der Grundlage der Variablen g'x, g'y und g'z und der in Tabelle 1 gezeigten Einstellinformationen einstellen. Alternativ kann die Einheit zum Einstellen eines Parameters 53 die Variablen f', c', k' und p', die Parameter des Berechnungsmodells sind, aus den Variablen g'x, g'y und g'z auf der Grundlage der in den Gleichungen (11) und (12) dargestellten Funktionen berechnen. Dann kann die Einheit zur Berechnung der Merkmalsposition 55 die dreidimensionale Position des Merkmalsteils auf der Grundlage der berechneten Parameter des Berechnungsmodells berechnen.
-
Durch eine Steuerung, bei der die auf die Kamera 6 ausgeübte Beschleunigung beim Fahren des Roboters 1 zur Schwerkraftbeschleunigung addiert wird, kann die dreidimensionale Position auch dann genau erfasst werden, wenn das Bild aufgenommen wird, während die Kamera beschleunigt oder verlangsamt wird.
-
In der oben beschriebenen Ausführungsform werden die Parameter eines Berechnungsmodells auf der Grundlage der Richtung der Schwerkraft berechnet, und eine Position in einem zweidimensionalen Bild, das von der Kamera aufgenommen wurde, wird unter Verwendung der berechneten Parameter in eine dreidimensionale Position umgewandelt, aber die Ausführungsform ist nicht darauf beschränkt. Die Variablen f', c', k' und p', bei denen es sich um Parameter handelt, können auf der Grundlage der von der Einheit zur Erkennung der Schwerkraftrichtung 51 erfassten Schwerkraftrichtung berechnet werden, und die Position im Bild, die im zweidimensionalen Bildkoordinatensystem 73 dargestellt ist, kann unter Verwendung dieser Parameter korrigiert werden. Dann kann die korrigierte Position in dem in dem zweidimensionalen Bildkoordinatensystem 73 dargestellten Bild in eine dreidimensionale Position umgewandelt werden, indem Parameter verwendet werden, bei denen der Einfluss der Schwerkraft eliminiert ist.
-
Beispielsweise können die Koordinatenwerte (u1, v1) einer beliebigen Position eines Merkmalsbereichs in einem zweidimensionalen Bild in Koordinatenwerte (u1', v1') einer korrigierten Position auf der Grundlage der Variablen f', c', k' und p' umgewandelt werden, bei denen es sich um Parameter handelt, die den Einfluss der Schwerkraft berücksichtigen. Mit anderen Worten, es kann in ein zweidimensionales Bild umgewandelt werden, das man erhält, wenn kein Einfluss der Schwerkraft vorhanden ist. Anschließend kann eine dreidimensionale Position auf der Grundlage der Koordinatenwerte (u1', v1') im Bild berechnet werden, indem die Parameter des Berechnungsmodells verwendet werden, bei dem der Einfluss der Schwerkraft ausgeschaltet ist. Auf diese Weise ist es möglich, eine Bildverarbeitung durchzuführen, um ein von einer Kamera aufgenommenes Bild in ein Bild umzuwandeln, bei dem der Einfluss der Schwerkraft eliminiert ist. Danach kann die dreidimensionale Position auf der Grundlage der Position im Bild unter Verwendung der Parameter berechnet werden, bei denen der Einfluss der Schwerkraft eliminiert ist. Durch die Anwendung dieser Methode ist es auch möglich, die dreidimensionale Position genau zu bestimmen.
-
Obwohl der Roboter 1 in der oben beschriebenen Ausführungsform die Ausrichtung der Kamera 6 ändert, ist die Ausführungsform nicht darauf beschränkt. Die Position und Ausrichtung der Kamera kann fest sein. Auch ist die Bewegungsvorrichtung, die die Ausrichtung der Kamera ändert, nicht auf einen Roboter beschränkt, und jede Vorrichtung, die die Ausrichtung der Kamera ändert, kann verwendet werden.
-
Bei jeder der oben beschriebenen Steuerungen kann die Reihenfolge der Schritte innerhalb eines Bereichs, in dem die Funktionen und Vorgänge nicht verändert werden, nach Belieben geändert werden. Die oben beschriebenen Ausführungsformen können beliebig miteinander kombiniert werden. In jeder der obigen Abbildungen sind gleiche oder gleichwertige Teile mit den gleichen Bezugsziffern versehen. Die oben beschriebenen Ausführungsformen sind Beispiele und schränken die Erfindung nicht ein. Die Ausführungsformen umfassen auch Modifikationen der in den Ansprüchen angegebenen Ausführungsformen.
-
REFERENZZEICHENLISTE
-
- 1
- Roboter
- 2
- Steuerung
- 3
- Roboter-System
- 6
- Kamera
- 6b
- optische Achse
- 23
- Positionsmelder
- 24
- Mechanismus zur Schärfeneinstellung
- 26
- Einlern-Handgerät
- 28
- Anzeigeteil
- 31
- Temperaturmelder
- 38, 39
- Werkstück
- 38c
- Randbereich
- 39a
- vertiefter Teil
- 40
- Gehäuse der Steuerung
- 42
- Lagerteil
- 50
- Bildverarbeitungseinheit
- 51
- Einheit zur Erkennung der Schwerkraft-Richtung
- 52
- Einheit zur Erkennung der Orientierung
- 53
- Einheit zum Einstellen eines Parameters
- 54
- Einheit zur Erkennung eines Merkmals
- 55
- Einheit zur Berechnung der Merkmalsposition
- 56
- Einheit zur Erkennung der Beschleunigung
- 63
- Einstellungsinformationen
- 66, 67
- Bild
- 68, 69
- Bild des Werkstücks
- 71
- Referenz-Koordinatensystem
- 72
- Kamera-Koordinatensystem
- 73
- Bildkoordinatensystem
- 74
- Werkzeug-Koordinatensystem
-
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
-
- JP 1144900 A [0003]
- JP 2011259314 A [0003]
- JP 2009269110 A [0003]