-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft ein Robotersystem, das mit einer Kamera ausgestattet ist, die ein Bild einer Zielmarke aufnimmt.
-
Allgemeiner Stand der Technik
-
Ein Roboter wird manchmal zusammen mit einer Werkzeugmaschine zum Handhaben eines Werkstücks verwendet. Um den manuellen Betrieb des Roboters zu ermöglichen oder um den Roboter unter Verwendung eines Controllers der Werkzeugmaschine fernzusteuern, ist es ferner wichtig, die Positionsbeziehung zwischen dem Koordinatensystem der Werkzeugmaschine und dem Koordinatensystem des Roboters zu bestimmen.
-
Um die Positionsbeziehung zwischen dem Koordinatensystem einer Werkzeugmaschine und einem Roboterkoordinatensystem zu bestimmen, werden mindestens drei Punkte benötigt, an denen die Position der Werkzeugmaschine und die Position in dem Roboterkoordinatensystem bekannt sind. Ein Nacharbeitungsprozess, der den Werkzeugmittelpunkt (TCP) des Roboters in räumlichen Kontakt mit einem vorbestimmten Punkt bringt und die 3D-Position dieses Punktes misst, ist bekannt. Ferner ist ein Verfahren zum Verwenden eines 3D-Sensors, der an einer Hand eines Roboters angebracht ist, um die 3D-Position eines vorbestimmten Punktes durch ein kontaktloses Mittel zu messen, bekannt.
-
Die
japanische Patentschrift Nr. 2011-048467A offenbart die Verwendung einer bekannten Positionsbeziehung zwischen einem Robotersteuerpunkt und einem eingestellten Punkt, um die Positionsbeziehung zwischen einem Roboterkoordinatensystem und einem Koordinatensystem einer Werkzeugmaschine zu finden. Die
japanische Patentschrift Nr. 2005-201824A und die
japanische Patentschrift Nr. 2010-117223A offenbaren die Verwendung einer Kamera, um Bilder einer Vielzahl von Positionen aufzunehmen, um die 3D-Position eines Objekts zu messen.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Bei dem zuvor erwähnten Stand der Technik müssen jedoch spezielle Vorrichtungen oder teure 3D-Sensoren verwendet werden. Alternativ ist es bei der Messung notwendig, den Roboter über einen breiten Bereich mindestens einer seiner Positionen und Haltungen zu bewegen. Manchmal ist es schwierig, Messungen in einem beschränkten Raum vorzunehmen. Daher wurde ein Robotersystem gesucht, das kostengünstig ist und eine einfache Messung der Position eines Zielpunktes ermöglicht.
-
Gemäß der vorliegenden Erfindung wird ein Robotersystem bereitgestellt, das einen Roboter, eine Kamera, die an einem Armende des Roboters angebracht ist, und eine Zielmarke, deren Bild von der Kamera aufgenommen wird, umfasst, wobei das Robotersystem einen Teil zum Speichern von Referenzdaten, der eine Position und eine Größe der Zielmarke, die in einem Bild der Kamera enthalten ist, als Referenzdaten speichert und eine erste Zielmarkenposition für das Armende als eine Position eines Werkzeugmittelpunktes speichert, wenn die Zielmarke in einer vorbestimmten ersten Zielmarkenposition in einem Roboterkoordinatensystem angeordnet ist, das die Grundlage für die Steuerung des Roboters bildet, und das Armende in einer ersten Roboterposition positioniert ist, und einen Teil zum Berechnen von Zielmarkenpositionen, der bewirkt, dass sich das Armende bewegt, so dass eine Position und eine Größe eines Bildes der Zielmarke, die in einem Bild der Kamera enthalten ist, wenn die Zielmarke in einer zweiten Zielmarkenposition angeordnet ist, mit einer Position und einer Größe des Bildes der Zielmarke, die als Referenzdaten gespeichert sind, übereinstimmen, und der eine zweite Roboterposition, die der Position des Armendes nach der Bewegung entspricht, und die Position des Werkzeugmittelpunktes als Grundlage verwendet, um die zweite Zielmarkenposition in dem Roboterkoordinatensystem zu berechnen, umfasst.
-
Bei einer bevorzugten Ausführungsform ist das Robotersystem mit einer Werkzeugmaschine versehen, wobei, wenn ein Maschinenkoordinatensystem, das die Grundlage für die Steuerung der Werkzeugmaschine bildet, im Voraus bestimmt wird, und die Zielmarke mindestens in drei Zielmarkenpositionen nicht auf der gleichen Geraden angeordnet ist, der Teil zum Berechnen von Zielmarkenpositionen konfiguriert ist, um die mindestens drei Zielmarkenpositionen in dem Roboterkoordinatensystem zu berechnen, und das Robotersystem ferner einen Teil zum Berechnen eines Maschinenkoordinatensystems umfasst, der die mindestens drei Zielmarkenpositionen in dem Maschinenkoordinatensystem und die mindestens drei Zielmarkenpositionen in dem Roboterkoordinatensystem als Grundlage verwendet, um die Position des Maschinenkoordinatensystems mit Bezug auf das Roboterkoordinatensystem zu berechnen.
-
Bei einer bevorzugten Ausführungsform umfasst die Werkzeugmaschine einen bedienbaren beweglichen Teil, die Zielmarke wird in dem beweglichen Teil eingestellt, und die Werkzeugmaschine ist konfiguriert, um zu bewirken, dass der bewegliche Teil funktioniert, um zu bewirken, dass sich die Zielmarke in die mindestens drei Zielmarkenpositionen bewegt.
-
Wenn bei einer bevorzugten Ausführungsform eine Position in dem Roboterkoordinatensystem unbekannt ist und die Zielmarke in mindestens drei Zielmarkenpositionen nicht auf der gleichen Geraden angeordnet ist, ist der Teil zum Berechnen von Zielmarkenpositionen konfiguriert, um die mindestens drei Zielmarkenpositionen in dem Roboterkoordinatensystem zu berechnen, und das Robotersystem umfasst ferner einen Teil zum Berechnen von Arbeitskoordinaten, der die mindestens drei Zielmarkenpositionen in dem Roboterkoordinatensystem als Grundlage verwendet, um ein Arbeitskoordinatensystem des Roboters zu berechnen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Diese und andere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden mit Bezug auf die ausführliche Beschreibung erläuternder Ausführungsformen der in den beiliegenden Zeichnungen gezeigten vorliegenden Erfindung besser hervorgehen. Es zeigen:
-
1 eine Ansicht, die ein Robotersystem gemäß einer Ausführungsform zeigt.
-
2 ein Ablaufschema, das einen Ablauf der Verarbeitung zeigt, die gemäß einer Ausführungsform ausgeführt wird.
-
3 eine Ansicht, die ein Koordinatensystem zeigt, das mit Bezug auf ein Bild eingerichtet ist.
-
4 eine Ansicht, die eine Positionsbeziehung zwischen einem Roboterkoordinatensystem und einem Handgelenk-Koordinatensystem zeigt.
-
5 eine Ansicht, die eine Zielmarke zeigt, die in einer ersten Zielmarkenposition eingerichtet ist.
-
6 ein Ablaufschema, das einen Ablauf der Verarbeitung zeigt, die gemäß einer Ausführungsform ausgeführt wird.
-
7 eine Ansicht, die eine Zielmarke zeigt, die in einer zweiten Zielmarkenposition eingerichtet ist.
-
8 eine Ansicht, die eine Positionsbeziehung und eine Differenz der Merkmalsgrößen eines Bildes zeigt.
-
9 eine Ansicht, die eine Zielmarke zeigt, die in einer zweiten Zielmarkenposition eingerichtet ist.
-
10 eine Ansicht, die ein Robotersystem gemäß einer anderen Ausführungsform zeigt.
-
11 ein Ablaufschema, das einen Ablauf der Verarbeitung zeigt, die gemäß einer Ausführungsform ausgeführt wird.
-
12 ein Ablaufschema, das einen Ablauf einer Verarbeitung zeigt, die gemäß einer Ausführungsform ausgeführt wird.
-
13 eine Ansicht, die ein Robotersystem gemäß noch einer anderen Ausführungsform zeigt.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Nachstehend werden Ausführungsformen der vorliegenden Erfindung mit Bezug auf die beiliegenden Zeichnungen erklärt. Die Bestandteile der abgebildeten Ausführungsformen werden entsprechend vom Maßstab her geändert, um zum Verständnis der vorliegenden Erfindung beizutragen. Ferner verwenden die gleichen oder entsprechende Bestandteile die gleichen Bezugszeichen.
-
1 zeigt ein Robotersystem 1 gemäß einer Ausführungsform. Das Robotersystem 1 umfasst einen Roboter 2, einen Roboter-Controller 3, der den Roboter 2 steuert, eine Kamera 4, die an dem Roboter 2 angebracht ist, und ein Bildverarbeitungsgerät 5. Der Roboter 2 ist nicht auf einen sechsachsigen Knickarmroboter, wie in 1 gezeigt, eingeschränkt und ist ein Roboter, der eine beliebige andere bekannte Konfiguration aufweist.
-
Der Roboter 2 umfasst einen Sockel 21 und einen Arm 22, der sich von dem Sockel 21 aus erstreckt. An dem Armende 23 des Roboters 2 ist die Kamera 4 über eine Halterung 24 angebracht. Dadurch werden die Position und die Haltung der Kamera 4 in Verbindung mit dem Armende 23 des Roboters 2 geändert.
-
Der Roboter-Controller 3 ist ein digitaler Computer, der eine CPU, einen Speicher und eine Schnittstelle, die an eine äußere Vorrichtung angeschlossen ist, umfasst. Der Roboter-Controller 3 erteilt Befehle, um Vorrichtungen anzusteuern, welche die verschiedenen Wellen des Roboters 2 antreiben, beispielsweise Servomotoren, um dadurch den Roboter 2 gemäß einem Betriebsprogramm zu steuern, das in dem nicht flüchtigen Speicher gespeichert ist. Der Roboter-Controller 3 ist konfiguriert, um die Position einer Hand des Roboters 2 in dem Roboterkoordinatensystem, das die Grundlage für die Steuerung des Roboters 2 bildet, erfassen zu können.
-
In der Betriebsregion des Roboters 2 oder in seiner Nähe wird eine Zielmarke 6 eingerichtet. Die Zielmarke 6 wird in einer Position befestigt, in der ihr Bild von einer Kamera 4 aufgenommen werden kann, die sich zusammen mit dem Roboter 2 bewegt.
-
Die Zielmarke 6 erhält ein typisches Muster, so dass die Position und die Größe des Bildes der Zielmarke 6 durch Bildverarbeitung bestimmt werden können. Beispielsweise erhält die Zielmarke 6 ein dreieckiges Muster.
-
Die Kamera 4 ist eine Lichtempfangsvorrichtung, welche die Funktion des Erfassens eines Bildes eines Objekts erfüllt. Die Kamera 4 ist an das Bildverarbeitungsgerät 5 angeschlossen. Die Bilddaten, die von der Kamera 4 aufgenommen werden, werden an das Bildverarbeitungsgerät 5 gesendet.
-
Das Bildverarbeitungsgerät 5 ist ein digitaler Computer, der eine CPU, einen Speicher und eine Schnittstelle, die an eine externe Vorrichtung angeschlossen ist, umfasst. Das Bildverarbeitungsgerät 5 ist konfiguriert, um die Zielmarke 6 in einem Bild zu erkennen, das von der Kamera 4 aufgenommen wird, und um die Position und die Größe der Zielmarke 6 in dem Bild aus dem Muster der Zielmarke 6 zu berechnen.
-
Das Bildverarbeitungsgerät 5 ist über ein Kommunikationskabel oder eine drahtlose Verknüpfung mit dem Roboter-Controller 3 verbunden und kann Befehle von dem Roboter-Controller 3 empfangen oder dem Roboter-Controller 3 Ergebnisse der Bildverarbeitung senden. Bei einer anderen Ausführungsform ist das Bildverarbeitungsgerät 5 in den Roboter-Controller 3 eingebaut.
-
Unten in 1 wird ein Funktionsblockdiagramm des Roboter-Controllers 3 gezeigt. Der Roboter-Controller 3 ist mit einem Teil 31 zum Speichern von Referenzdaten und einem Teil 32 zum Berechnen einer Zielmarkenposition versehen.
-
Der Teil 31 zum Speichern von Referenzdaten speichert die Position und die Größe des Bildes der Zielmarke 6, die in dem Bild der Kamera 4 enthalten ist, wenn die Zielmarke 6 in einer vorbestimmten ersten Zielmarkenposition in dem Roboterkoordinatensystem, das die Grundlage für die Steuerung des Roboters 2 bildet, angeordnet ist und das Armende 23 in der ersten Roboterposition positioniert ist, als Referenzdaten und speichert die erste Zielmarkenposition für das Armende 23 als Position des Werkzeugmittelpunktes.
-
Der Teil zum Berechnen von Zielmarkenpositionen 32 bewirkt, dass sich das Armende 23 bewegt, so dass wenn die Zielmarke 6 in einer zweiten Zielmarkenposition angeordnet ist, die Position und die Größe des Bildes der Zielmarke 6, die in dem Bild der Kamera 4 enthalten ist, mit der Position und der Größe des Bildes der Zielmarke 6, die als Referenzdaten gespeichert sind, übereinstimmen, und verwendet die zweite Roboterposition, die der Position des Armendes 23 nach der Bewegung entspricht, und die Position des Werkzeugmittelpunktes als Grundlage, um die zweite Zielmarkenposition in dem Roboterkoordinatensystem zu berechnen.
-
Mit Bezug auf 2 wird die Initialisierung erklärt, die in dem Robotersystem 1 gemäß einer Ausführungsform ausgeführt wird. Die Initialisierung wird nur einmal ausgeführt, wenn die Kamera 4 an dem Armende 23 des Roboters 2 angebracht wird.
-
In Schritt S101 wird die Kamera 4 an dem Armende 23 des Roboters 2 angebracht. Die Ausrichtung der Kamera 4 im Verhältnis zum Armende 23 ist nicht besonders eingeschränkt, doch die Kamera 4 ist über die Halterung 24 derart angebracht, dass sich die Positionsbeziehung zwischen der Kamera 4 und dem Armende 23 nicht ändert.
-
In Schritt S102 wird die Zielmarke 6 in der ersten Zielmarkenposition angeordnet. Die erste Zielmarkenposition kann eine beliebige Position sein, solange die Kamera 4, die an dem Armende 23 angebracht ist, ein Bild der Zielmarke 6 aufnehmen kann.
-
In Schritt S103 wird bewirkt, dass sich der Roboter 2 in eine Position bewegt, in der das Bild der Zielmarke 6, die in der ersten Zielmarkenposition angeordnet ist, aufgenommen werden kann (erste Roboterposition). Der Roboter 2 kann durch manuelle Betätigung durch den Bediener bewegt werden, oder es kann bewirkt werden, dass sich der Roboter 2 automatisch bis in eine vorbestimmte erste Roboterposition bewegt. Die erste Roboterposition ist bevorzugt eine Position, in der die Lichtachse der Kamera 4 und die Oberfläche der Zielmarke 6, in der das Muster gebildet ist, senkrecht zueinander sind, doch die Erfindung ist nicht darauf eingeschränkt.
-
In Schritt S104 wird ein Bild der Zielmarke 6 von der Kamera 4 aufgenommen, und das Muster der Zielmarke 6 wird als Modell für die Erkennung aufgezeichnet. Das interne Datenformat der Modell, das in Schritt S104 aufgezeichnet wird (nachstehend manchmal einfach als „aufgezeichnetes Modell” bezeichnet), wird gemäß dem Bildverarbeitungsalgorithmus bestimmt, der in dem Bildverarbeitungsgerät 5 verwendet wird. Beispielsweise können ein Vorlagenabgleich, der eine normierte Korrelation verwendet, eine verallgemeinerte Hough-Transformation, die Kanteninformationen verwendet, und andere Bildverarbeitungsalgorithmen verwendet werden, doch ist die Erfindung nicht darauf eingeschränkt.
-
In Schritt S105 wird das aufgezeichnete Modell verwendet, um die Zielmarke 6 aus dem Bild zu erkennen, das von der Kamera 4 aufgenommen wurde, und um die Merkmalsgrößen in dem Bild zu berechnen. Bei der vorliegenden Ausführungsform sind die Merkmalsgrößen die Position und die Größe des Musters der Zielmarke 6 in dem Bild.
-
Wenn beispielsweise ein Vorlagenabgleich verwendet wird, der eine normierte Korrelation verwendet, werden die Position der Vorlage und das Verhältnis von Ausdehnung/Kontraktion der Vorlage, wenn das Ausmaß des Abgleichs des aufgezeichneten Modells und der Vorlage am größten ist, als Merkmalsgrößen bezüglich der Position und der Größe berechnet.
-
Die Merkmalsgrößen der Position und der Größe in einem Bild sind Zahlenwerte, die in dem Bildkoordinatensystem ausgedrückt sind. Das Bildkoordinatensystem wird mit Bezug auf das Bild, das von der Kamera 4 aufgenommen wird, eingerichtet. Wie beispielsweise in 3 gezeigt, ist das Bildkoordinatensystem ein Koordinatensystem, das den Endpunkt des Bildes oben links als Ursprung aufweist, das die Richtung nach unten in dem Bild als u-Achse aufweist, und das die Richtung nach rechts in dem Bild als v-Achse aufweist. In diesem Fall wird die Merkmalsgröße der Position in dem Bild als Ursprungsposition des aufgezeichneten Modells in dem Bildkoordinatensystem ausgedrückt. Die Einheit der Merkmalsgröße der Position ist das Pixel. Die Ursprungsposition des Modells kann frei bestimmt werden, ist jedem einem Modell eigen.
-
Die Merkmalsgröße „s” der Größe wird beispielsweise als ein Verhältnis mit Bezug auf die Größe des aufgezeichneten Modells mit 1,0 (100%) berechnet. D. h. wenn die Größe des erkannten Modells größer als das aufgezeichnete Modell ist, ist die Merkmalsgröße „s” größer als 1,0, wohingegen umgekehrt, wenn sie kleiner als das aufgezeichnete Modell ist, die Merkmalsgröße „s” kleiner als 1,0 ist.
-
Zurück zu 2 wird in Schritt S106 die 3D-Position der ersten Zielmarkenposition im Verhältnis zum Armende 23 des Roboters 2 als Werkzeugmittelpunkt (TCP) berechnet. Um die Positionen des Armendes 23, der Zielmarke 6 und des Werkzeugmittelpunktes zu erklären, werden jeweils das Roboterkoordinatensystem Σr und das Handgelenk-Koordinatensystem Σf definiert.
-
Das Roboterkoordinatensystem Σr ist ein Koordinatensystem, das auf dem Sockel 21 des Roboters 2 beruht und die Grundlage für die Steuerung des Roboters 2 bildet. Das Handgelenk-Koordinatensystem Σf ist ein Koordinatensystem, das auf dem Armende 23 beruht und mit dem Armende 23 verbunden ist (siehe 4). Die Position des Armendes 23 wird als Position des Koordinatensystems des Handgelenks Σf in dem Roboterkoordinatensystem Σr ausgedrückt.
-
In der nachstehenden Erklärung bedeutet die „Position des Werkzeugmittelpunktes”, soweit nicht anders angegeben, eine Position in dem Handgelenk-Koordinatensystem Σf. Die Position T des Werkzeugmittelpunktes wird durch die nachstehende Formel (1) gefunden. Es sei zu beachten, dass „R1” die Position des Handgelenk-Koordinatensystems Σf in dem Roboterkoordinatensystem Σr ist, während „P1” die erste Zielmarkenposition in dem Roboterkoordinatensystem Σr ist (siehe 5). [ T / 1] = R1–1·[ P1 / 1] Formel (1)
-
Es sei zu beachten, dass „R1” eine homogene 4×4-Transformationsmatrix ist, während „T” und „PI” die 3×1-Vektoren (x, y, z)T sind.
-
Zurück zu 2 wird in Schritt S107 der Datensatz, der die Merkmalsgröße (u, v) der Position und die Merkmalsgröße „s” der Größe, die in Schritt S105 berechnet wurden, und die Position T des Werkzeugmittelpunktes, die in Schritt S106 berechnet wurde, umfasst, als Referenzdaten gespeichert.
-
In Schritt S106 wurde die 3D-Position P1 der ersten Zielmarkenposition in dem Roboterkoordinatensystem Σr als bekannte Information erklärt, doch bei einer anderen Ausführungsform kann die 3D-Position P1 durch ein beliebiges Verfahren gemessen werden. Beispielsweise ist es auch möglich, die 3D-Position P1 unter Verwendung einer Kamera gemäß dem Verfahren, das in der
japanischen Patentschrift Nr. 2011-048467A beschrieben wird, zu messen.
-
Mit Bezug auf 6 wird das Verfahren zum Messen der 3D-Position der Zielmarke 6, die in einer beliebigen Position angeordnet ist, erklärt.
-
In Schritt S201 wird die Zielmarke 6 in der zweiten Zielmarkenposition der zu messenden Position angeordnet (siehe 7).
-
In Schritt S202 wird bewirkt, dass sich das Armende 23 in die zweite Roboterposition bewegt, wo die Zielmarke 6 in dem Feld der Kamera 4 enthalten ist. Es kann bewirkt werden, dass der Roboter 2 durch eine manuelle Betätigung durch den Bediener bewegt wird, oder der Roboter 2 kann sich automatisch in eine vorbestimmte zweite Roboterposition bewegen. In der zweiten Roboterposition muss die relative Positionsbeziehung zwischen der Zielmarke 6 und der Kamera 4 nicht so genau sein, solange die Zielmarke 6, die in der zweiten Zielmarkenposition angeordnet ist, von der Kamera 4 aufgenommen werden kann.
-
In Schritt S203 wird die Zielmarke 6 aus dem Bild erkannt, das von der Kamera 4 aufgenommen wurde, und die Merkmalsgrößen bezüglich der Position und der Größe in dem Bild werden berechnet. In Schritt S203 kann ein Bildverarbeitungsalgorithmus ähnlich wie in dem zuvor erwähnten Schritt S105 verwendet werden.
-
In Schritt S204 wird beurteilt, ob die berechneten Merkmalsgrößen und die Merkmalsgrößen, die den Referenzdaten entsprechen, die in dem zuvor erwähnten Schritt S107 gespeichert wurden, übereinstimmen. In Schritt S204 wird die Differenz der beiden Merkmalsgrößen (Δu, Δv, Δs) durch die folgende Formel (2) gefunden. Es sei zu beachten, dass „(u0, v0, s0)” die Merkmalsgrößen sind, die als Referenzdaten gespeichert werden, während „(u1, v1, s1)” die Merkmalsgrößen sind, die in Schritt S203 berechnet wurden.
-
-
8 zeigt die Positionsbeziehung des Bildes und die Differenz der Merkmalsgrößen (Δu, Δv). Die Zielmarke 6 in dem Bild, wenn ein Bild der Zielmarke 6, die in der ersten Zielmarkenposition angeordnet ist, aus der ersten Roboterposition von der Kamera 4 aufgenommen wird, wird mit einer gestrichelten Linie gezeigt. Die Zielmarke 6 in dem Bild, wenn ein Bild der Zielmarke 6, die in der zweiten Zielmarkenposition angeordnet ist, aus der zweiten Roboterposition von der Kamera 4 aufgenommen wird, wird mit einer durchgezogenen Linie gezeigt.
-
Die Merkmalsgröße „s” bezüglich der Größe der Zielmarke 6 ist umgekehrt proportional zu dem Abstand zwischen der Zielmarke 6 und der Kamera 4. Daher wird in der Formel (2) der Kehrwert der Merkmalsgröße „s” verwendet.
-
Wenn der Schwellenwert, der zur Beurteilung der Position verwendet wird, gleich 0,1 Pixel ist, falls die Länge von (Δu, Δv) kleiner als 0,1 Pixel ist, wird beurteilt, dass die beiden Zielmarken 6 in der gleichen Position in dem Bild angeordnet sind. Wenn der Schwellenwert, der für die Beurteilung der Größe verwendet wird, gleich 0,1 Pixel ist, falls Δs in dem Bereich von –0,1 bis 0,1 liegt, sind die beiden Zielmarken 6 in dem Bild gleich groß.
-
Falls das Ergebnis der Beurteilung in Schritt S204 NEIN ist (mindestens entweder die Position oder die Größe stimmt nicht überein), fährt die Routine mit Schritt S205 fort, wo bewirkt wird, dass sich der Roboter 2 bewegt, so dass sich die Differenz der Merkmalsgrößen (Δu, Δv, Δs) verringert. Das Verfahren zum Berechnen des Bewegungsbetrags des Roboters 2 aus der Differenz der Merkmalsgrößen (Δu, Δv, Δs) ist nicht besonders eingeschränkt, doch ein Beispiel wird später noch erklärt.
-
Falls das Ergebnis der Beurteilung in Schritt S204 JA ist, fährt die Routine mit Schritt S206 fort, wo die 3D-Position der zweiten Zielmarkenposition in dem Roboterkoordinatensystem Σr berechnet wird. Gemäß der vorliegenden Ausführungsform wird in Schritt S204 bestätigt, dass die Merkmalsgrößen, die aus dem Bild erkannt wurden, mit den Merkmalsgrößen in den Referenzdaten übereinstimmen. Aus diesem Grund ist die Positionsbeziehung zwischen der Position des Armendes 23 des Roboters 2 und der zweiten Zielmarkenposition die gleiche wie die Positionsbeziehung zwischen der Position des Armendes 23, wenn das Armende 23 in der ersten Roboterposition positioniert ist und die erste Zielmarkenposition die gleiche ist.
-
Daher wird die 3D-Position P2 der zweiten Zielmarkenposition in dem Roboterkoordinatensystem Σr durch die nächste Formel (3) ausgedrückt. „R2” ist die Position des Handgelenk-Koordinatensystems Σf in dem Roboterkoordinatensystem Σr, wenn das Armende 23 in der zweiten Roboterposition positioniert ist. „T” ist der Wert des Werkzeugmittelpunktes (TCP), der als Referenzdaten gespeichert wird (siehe 9).
-
-
„R2” ist eine homogene 4×4-Transformationsmatrix, während „T” und „P2” die 3×1-Vektoren (x, y, z)T sind.
-
Bei dem in 6 gezeigten Beispiel wird zur Verbesserung der Präzision nach der Verarbeitung von Schritt S205 die Verarbeitung von Schritt S203 und Schritt S204 erneut ausgeführt. Bei einer anderen Ausführungsform wird jedoch bewirkt, dass sich der Roboter 2 genau um den Bewegungsbetrag des Roboters 2 bewegt, der aus der Differenz der Merkmalsgrößen (Δu, Δv, Δs) berechnet wird, und dann kann die Routine, ohne zu Schritt S203 zurückzukehren, direkt mit Schritt S206 fortfahren.
-
In Schritt S205 wird als Beispiel der Berechnung des Bewegungsbetrags des Roboters 2 das Verfahren der Verwendung einer Jacobi-Matrix erklärt.
-
Zuerst wird die Beziehung zwischen der Differenz der Merkmalsgrößen (Δu, Δv, Δs) und dem Bewegungsbetrag (Ax, Ay, Az) des Roboters 2 unter Verwendung der Jacobi-Matrix J durch die folgende Formel (4) definiert. Die Jacobi-Matrix J ist eine quadratische Matrix der Größe 3×3.
-
-
Falls daher die Jacobi-Matrix J bekannt ist, ist es möglich, den Bewegungsbetrag (Ax, Ay, Az) des Roboters 2 aus der Differenz der Merkmalsgrößen (Δu, Δv, Δs) zu berechnen.
-
Als Nächstes wird das Verfahren zum Finden der Jacobi-Matrix J erklärt. Der Prozess zum Finden der Jacobi-Matrix muss nur einmal bei der Initialisierung ausgeführt werden, nachdem die Kamera 4 an dem Armende 23 des Roboters 2 angebracht wurde.
-
Die Zielmarke 6 wird in einer beliebigen Position angeordnet, und die Position des Roboters 2, in der die Zielmarke 6 in der Nähe der Bildmitte positioniert ist, wird zur Ursprungsposition gemacht. Wenn die Zielmarke 6 beispielsweise in der ersten Zielmarkenposition angeordnet ist, kann die erste Roboterposition zur Ursprungsposition gemacht werden.
-
In dem Zustand, in dem das Armende 23 in der Ursprungsposition positioniert ist, wird die Zielmarke 6 aus dem Bild erkannt, das von der Kamera 4 aufgenommen wurde, und die Merkmalsgrößen (ui, vi, si) werden berechnet.
-
Als Nächstes wird bewirkt, dass sich das Armende 23 genau um den Abstand „m” in der X-Achsenrichtung des Handgelenk-Koordinatensystems Σf bewegt. Die Zielmarke 6 wird aus dem Bild erkannt, das von der Kamera 4 in der Position nach der Bewegung aufgenommen wurde, und die Merkmalsgrößen (ux, vx, sx) werden berechnet.
-
Ähnlich werden die Merkmalsgrößen (uy, vy, sy) und (uz, vZ, sZ) aus dem Bild berechnet, das aufgenommen wurde, nachdem bewirkt wurde, dass sich das Armende 23 von der ursprünglichen Position in der Y-Achsenrichtung und der Z-Achsenrichtung des Handgelenk-Koordinatensystems Σf genau um den Abstand „m” bewegt.
-
Die Ergebnisse der Erkennung der Zielmarke
6, wenn bewirkt wird, dass sich der Roboter
2 in der X-Achsenrichtung, der Y-Achsenrichtung und der Z-Achsenrichtung bewegt, und die Ergebnisse der Erkennung der Zielmarke
6 in der ursprünglichen Position werden als Grundlage verwendet, um die Differenz der Merkmalsgrößen gemäß den nachstehenden Formeln (5) bis (7) zu berechnen:
-
Wenn die Formeln (5) bis (7) in die Formel (4) eingesetzt werden, kann man die Jacobi-Matrix J aus der folgenden Formel (8) finden:
-
Als Nächstes wird das Messverfahren gemäß der zuvor erwähnten Ausführungsform verwendet, um das Verfahren des Einrichtens des Koordinatensystems einer Werkzeugmaschine zu erklären. Das Robotersystem 1 gemäß dieser Ausführungsform umfasst ferner zusätzlich zu der in 1 gezeigten Konfiguration eine Werkzeugmaschine 7 und einen Werkzeugmaschinen-Controller 71 (siehe 10).
-
Ferner sind, wie in 10 gezeigt, drei Zielmarken 6 auf einem Tisch 72 der Werkzeugmaschine 7 angeordnet.
-
Ebenso wie bei der zuvor erwähnten Ausführungsform werden jeweils das Roboterkoordinatensystem Σr und das Handgelenk-Koordinatensystem Σf definiert. Ferner wird bei der vorliegenden Ausführungsform, wie in 10 gezeigt, das Maschinenkoordinatensystem Σm, das die Grundlage für die Steuerung der Werkzeugmaschine 7 bildet, definiert.
-
Bei der vorliegenden Ausführungsform umfasst der Roboter-Controller 3 ferner einen Teil 33 zum Berechnen eines Maschinenkoordinatensystems. Der Teil 33 zum Berechnen eines Maschinenkoordinatensystems verwendet die mindestens drei Zielmarkenpositionen in dem Maschinenkoordinatensystem Σm und die mindestens drei Zielmarkenpositionen in dem Roboterkoordinatensystem Σr als Grundlage, um die Position des Maschinenkoordinatensystems Σm im Verhältnis zu dem Roboterkoordinatensystem Σr zu berechnen.
-
Der Tisch 72 der Werkzeugmaschine 7 ist konfiguriert, damit die drei Zielmarken 6 in Positionen angeordnet werden können, deren 3D-Positionen in dem Maschinenkoordinatensystem Σm bekannt sind. Beispielsweise werden die Zielmarken 6 in vorbestimmten Positionen durch Positionierungsstifte angeordnet. Falls es möglich ist, die Anordnung der Zielmarken 6 wiederzugeben, wenn zusätzliche Roboter verwendet werden, oder wenn Roboter ausgetauscht werden, besteht der Vorteil, dass die Neueinrichtung einfacher zu gestalten ist. Es sei zu beachten, dass die drei Zielmarken 6 bevorzugt derart positioniert werden, dass sie nicht auf einer Geraden angeordnet sind.
-
Der Werkzeugmaschinen-Controller 71 ist an den Roboter-Controller 3 angeschlossen. Die Positionen der Zielmarken 6 in dem Maschinenkoordinatensystem Σm werden je nach Bedarf an den Roboter-Controller 3 übertragen.
-
Mit Bezug auf 11 wird der Prozess des Einrichtens eines Koordinatensystems, das mit dem Maschinenkoordinatensystem Σm an dem Roboter 2 übereinstimmt, erklärt. Es sei zu beachten, dass die zuvor erwähnte Initialisierung als beendet angesehen wird.
-
In Schritt S301 werden die drei Zielmarken in den dritten, vierten und fünften Zielmarkenpositionen angeordnet. Die dritten, vierten und fünften Zielmarkenpositionen Q3, Q4 und Q5 in dem Maschinenkoordinatensystem Σm sind bekannt.
-
In Schritt S302 wird die dritte Zielmarkenposition P3 in dem Roboterkoordinatensystem Σr gemäß der Verarbeitung von Schritt S202 bis S206, die mit Bezug auf 6 erklärt wurde, gemessen.
-
In Schritt S303 wird die vierte Zielmarkenposition P4 in dem Roboterkoordinatensystem Σr gemäß der Verarbeitung von Schritt S202 bis S206, die mit Bezug auf 6 erklärt wurde, gemessen.
-
In Schritt S304 wird die fünfte Zielmarkenposition P5 in dem Roboterkoordinatensystem Σr gemäß der Verarbeitung von Schritt S202 bis S206, die mit Bezug auf 6 erklärt wurde, gemessen.
-
In Schritt S305 werden die dritten, vierten und fünften Zielmarkenpositionen Q3, Q4, Q5 in dem Maschinenkoordinatensystem Σm und die dritten, vierten und fünften Zielmarkenpositionen P3, P4, P5 in dem Roboterkoordinatensystem Σr als Grundlage verwendet, um die Position des Koordinatensystems der Maschine Σm in dem Roboterkoordinatensystem Σr zu berechnen.
-
Ein Beispiel des Verfahrens der Berechnung, die in Schritt S305 ausgeführt wird, wird erklärt. In der nachstehenden Erklärung wird die Position des Koordinatensystems der Maschine Σm in dem Roboterkoordinatensystem Σr mit „M” bezeichnet. „M” ist eine homogene 4×4-Transformationsmatrix.
-
Ein Zielmarken-Koordinatensystem Σt wird für eine Ebene definiert, welche die dritten, vierten und fünften Zielmarkenpositionen umfasst. Das Zielmarken-Koordinatensystem Σt wird eingerichtet, so dass die dritte Zielmarkenposition sein Ursprung ist, die Richtung von der dritten Zielmarkenposition zu der vierten Zielmarkenposition die „X-Achsenrichtung” ist, und die Ebene, welche die dritten, vierten und fünften Zielmarkenpositionen umfasst, die „XY-Ebene” ist.
-
Falls die Position des Zielmarken-Koordinatensystems Σt in dem Koordinatensystem des Roboters „Σr” zu „Tr” gemacht wird, wird der Wert „Tr” der homogenen 4×4-Transformationsmatrix aus der folgenden Formel (9) berechnet.
-
-
Wenn die Position des Zielmarken-Koordinatensystems Σt in dem Maschinenkoordinatensystem Σm zu „Tm” gemacht wird, kann der Wert „Tm” der homogenen 4×4-Transformationsmatrix aus der folgenden Formel (10) berechnet werden.
-
-
Dabei gilt Tr = M × Tm, so dass M = Tr × Tm–1.
-
Wenn sich der Tisch 72 der Werkzeugmaschine 7 translationsmäßig in zwei Achsenrichtungen bewegen kann und sich um eine Achse herum drehen kann, kann der Tisch 72 betätigt werden, um zu bewirken, dass sich eine Zielmarke 6 in jeweils drei verschiedene Positionen bewegt, um dadurch die zuvor erwähnten dritten, vierten und fünften Zielmarkenpositionen zu erfassen. Wenn in diesem Fall die Position der Zielmarke 6 im Verhältnis zum Tisch 72 eine Position ist, die einzigartig durch die Spezifikationen der Werkzeugmaschine 7 bestimmt wird, kann die Position der Zielmarke 6 in dem Maschinenkoordinatensystem Σm aus der Position des Tisches 72 berechnet werden. Alternativ kann eine Berührungssonde usw. verwendet werden, um die Position der Zielmarke 6 in dem Maschinenkoordinatensystem Σm zu messen.
-
Als Nächstes wird mit Bezug auf 12 und 13 ein Verfahren zum Einrichten eines neuen Koordinatensystems in dem Roboter 2 erklärt. Das neue Koordinatensystem wird als Arbeitskoordinatensystem Σc bei einer vorbestimmten Arbeit, die von dem Roboter 2 ausgeführt wird, verwendet. Das Robotersystem 1, das in diesem Fall verwendet wird, ist ähnlich konfiguriert wie dasjenige, das in 1 gezeigt wird, es werden jedoch drei Zielmarken 6 verwendet, und der Roboter-Controller 3 umfasst ferner einen Teil 34 zum Berechnen eines Arbeitskoordinatensystems (siehe 13).
-
Der Teil 34 zum Berechnen eines Arbeitskoordinatensystems verwendet mindestens drei Zielmarkenpositionen in dem Roboterkoordinatensystem Σr als Grundlage, um ein Arbeitskoordinatensystem Σc des Roboters 2 zu berechnen.
-
Wie in 12 gezeigt, wird in Schritt S401 die Zielmarke 6 in den sechsten, siebten und achten Zielmarkenpositionen eingerichtet, die den Positionen entsprechen, in denen es erwünscht ist, das Arbeitskoordinatensystem Σc einzurichten.
-
In Schritt S402 wird die sechste Zielmarkenposition P6 in dem Roboterkoordinatensystem Σr gemäß der Verarbeitung von Schritt S202 bis S206, die mit Bezug auf 6 erklärt wurde, gemessen.
-
In Schritt S403 wird die siebte Zielmarkenposition P7 in dem Roboterkoordinatensystem Σr gemäß der Verarbeitung von Schritt S202 bis S206, die mit Bezug auf 6 erklärt wurde, gemessen.
-
In Schritt S404 wird die achte Zielmarkenposition P8 in dem Roboterkoordinatensystem Σr gemäß der Verarbeitung von Schritt S202 bis S206, die mit Bezug auf 6 erklärt wurde, gemessen.
-
In Schritt S405 werden die sechsten, siebten und achten Zielmarkenpositionen P6, P7 und P8 in dem Roboterkoordinatensystem Σr als Grundlage verwendet, um die Position C des neu eingerichteten Arbeitskoordinatensystems Σc zu berechnen.
-
Ein Beispiel des Verfahrens zum Berechnen der Position C des Arbeitskoordinatensystems Σc in Schritt S405 wird erklärt.
-
Das Arbeitskoordinatensystem Σc wird mit Bezug auf die Ebene, welche die sechsten, siebten und achten Zielmarkenpositionen umfasst, eingerichtet. Das Arbeitskoordinatensystem Σc weist die sechste Zielmarkenposition als Ursprung auf, weist die Richtung von der sechsten Zielmarkenposition zu der siebten Zielmarkenposition als X-Achsenrichtung auf, und weist die Ebene, welche die sechsten, siebten und achten Zielmarkenpositionen umfasst, als XY-Ebene auf. In diesem Fall kann eine Position C des Arbeitskoordinatensystems Σc aus der folgenden Formel (11) berechnet werden. Es sei zu beachten, dass die Position C eine homogene 4×4-Transformationmatrix ist.
-
-
Es sei zu beachten, dass die Kamera 4 und die Zielmarke 6 zeitweilig verwendet werden können, wenn die Verarbeitung der zuvor erwähnten Ausführungsform ausgeführt wird, und je nach Bedarf abgenommen werden können, nachdem die Verarbeitung beendet ist.
-
Mit dem Robotersystem 1 gemäß der vorliegenden Ausführungsform können die folgenden vorteilhaften Wirkungen geboten werden:
- (1) Es ist nicht notwendig, die Kamera 4 im Voraus zu kalibrieren. Daher kann die Arbeitseffizienz verbessert werden.
- (2) Die Kamera 4, die bei der vorliegenden Ausführungsform verwendet wird, kann eine einzige 2D-Kamera sein. D. h. es ist möglich, die 3D-Position der Zielmarke 6 zu messen, ohne eine Stereomessung zu benötigen, so dass ein kostengünstiges Robotersystem 1 bereitgestellt werden kann.
- (3) Es ist möglich, die 3D-Position der Zielmarke 6 zu messen, selbst wenn die Betriebsregion des Roboters 2 eingeschränkt ist, wie etwa bei der Verwendung zusammen mit der Werkzeugmaschine 7.
- (4) Ein Koordinatensystem, das dem Maschinenkoordinatensystem Σm entspricht, das für die Werkzeugmaschine 7 eingerichtet wird, wird in dem Roboter 2 eingerichtet, so dass die Positionsinformationen von der Werkzeugmaschine 7 und dem Roboter 2 gemeinsam genutzt werden.
-
Zuvor wurden diverse Ausführungsformen der vorliegenden Erfindung erklärt, doch der Fachmann wird erkennen, dass auch andere Ausführungsformen verwendet werden können, um die Aktionen und Wirkungen, die von der vorliegenden Erfindung beabsichtigt werden, auszubilden. Insbesondere können die Bestandteile der zuvor erklärten Ausführungsformen entfallen oder ersetzt werden, ohne den Umfang der vorliegenden Erfindung zu verlassen, und ferner können bekannte Mittel hinzugefügt werden. Ferner ist die Tatsache, dass die Merkmale der Vielzahl von Ausführungsformen, die in der vorliegenden Beschreibung explizit oder implizit offenbart werden, auch frei kombiniert werden können, um die vorliegende Erfindung auszubilden, für den Fachmann offensichtlich.
-
Bei dem Robotersystem gemäß der vorliegenden Erfindung ist es nicht notwendig, die Kamera im Voraus zu kalibrieren. Ferner ist es möglich, eine kostengünstige 2D-Kamera zu verwenden, um eine 3D-Position einer Zielmarke zu messen. Dadurch ist es möglich, die Positionsbeziehung zwischen dem Roboterkoordinatensystem und dem Koordinatensystem einer Werkzeugmaschine kostengünstig und durch ein einfaches Verfahren zu bestimmen.
-
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 2011-048467 A [0004, 0050]
- JP 2005-201824 A [0004]
- JP 2010-117223 A [0004]