-
GEBIET DER ERFINDUNG
-
Die vorliegende Erfindung betrifft ein Robotersystem, das den Arbeitsvorgang eines Roboters mittels einer Kamera korrigiert, und betrifft insbesondere ein Robotersystem, das visuelle Rückmeldung verwendet, um die Notwendigkeit, eine Zuordnung (Positionsabstimmung) zwischen dem Roboterkoordinatensystem und dem Kamerakoordinatensystem durchführen zu müssen, entfallen zu lassen.
-
ALLGEMEINER STAND DER TECHNIK
-
Viele Industrieroboter werden basierend auf einem Funktionsschema betrieben, das als Lern-Wiedergabe bezeichnet wird. Das heißt, die Bewegungen und Arbeitsvorgänge, die der Bediener den Roboter ausführen lassen möchte, wurden vorab als ein Programm gelehrt, um den Roboter durch Wiedergabe des Programms die gewünschten Arbeitsvorgänge ausführen zu lassen. Der Roboter ist in der Lage, die programmierte Bewegung und die Arbeitsvorgänge präzise zu wiederholen. Sobald jedoch der Gegenstand an einer anderen Position als der durch das Programm gelehrten Position abgesetzt wird, kann der Roboter keine korrekten Arbeitsvorgänge an dem Gegenstand ausführen.
-
Um dies zu behandeln gibt es eine bekannte Technologie, bei der die Position des Gegenstands durch Einsatz eines Bildsensors, wie eine Kamera usw., erkannt wird, so dass der Arbeitsvorgang des Roboters basierend auf den durch den Bildsensor erkannten Positionsinformationen des Gegenstands korrigiert wird. Dieses Verfahren ermöglicht, exakte Arbeitsvorgänge an dem Gegenstand selbst dann auszuführen, wenn der Gegenstand an einer anderen Position als der durch das Programm gelehrten Position platziert wird.
-
Die durch den Bildsensor festgestellte Position des Gegenstands wird in einem Koordinatensystem (nachfolgend als „das Bildkoordinatensystem” bezeichnet) dargestellt, auf dessen Basis die Messung des Bildsensors ausgeführt wird. Um den Arbeitsvorgang des Roboters basierend auf den durch den Bildsensor festgestellten Positionsinformationen zu korrigieren, müssen die in dem Bildkoordinatensystem dargestellten Positionsinformationen in Positionsinformationen in dem Koordinatensystem (nachfolgend als das „Roboterkoordinatensystem” bezeichnet), auf dessen Basis der Arbeitsvorgang des Roboters gesteuert wird, umgewandelt werden. Die Daten zum Umwandeln der in dem Bildkoordinatensystem dargestellten Positionsinformationen in Positionsinformationen, die in dem Roboterkoordinatensystem dargestellt werden, werden als „Kamerakalibrierdaten” bezeichnet, und die Tätigkeit des Erfassens der Kamerakalibrierdaten wird als „Kamerakalibrierung” bezeichnet (z. B., ungeprüfte japanische Patentanmeldung Nr.
JP-A-10-49218 ).
-
Andererseits gibt es eine als visuelle Rückmeldung bekannte Technik als ein Verfahren, das die Korrektur der Position des Roboters mittels eines Bildsensors ermöglicht, ohne eine Kamerakalibrierung durchzuführen (z. B., ungeprüfte japanische Patentanmeldung
JP-A-2003-211381 , nachfolgend als „Patentdokument 2” bezeichnet). Der Roboter wird beispielsweise an eine Position bewegt, um den Gegenstand zu ergreifen und wird dazu veranlasst, durch eine an dem Roboter angebrachte Kamera ein Bild von dem Gegenstand aufzunehmen und das Erscheinungsbild des Gegenstands als Solldaten abzuspeichern. Im momentanen Arbeitsvorgang wird jedes Mal, wenn der Roboter bewegt wird, durch die Kamera ein Bild aufgenommen, und es wird dann die Position und die Lage des Roboters gesteuert, so dass das Erscheinungsbild des Gegenstands mit den Solldaten übereinstimmt. Dieser Prozess wird wiederholt. Wenn der Fehler gegen Null läuft, wird ein Greifen mit der Hand durchgeführt.
-
In dem im Patentdokument 2 beschriebenen Verfahren greift der Roboter den Gegenstand mit einer Hand an einer Position, an der der Fehler Null wurde. Das heißt, dass das Erscheinungsbild des Gegenstands auf der Kamera, wenn der Roboter an einer Stelle positioniert ist, an der der Gegenstand gegriffen wird, als die Solldaten gespeichert werden muss. Diese Forderung beschränkt die Positionsbeziehung zwischen der Kamera und der Hand, die am Ende des Roboterarms befestigt ist, und beschränkt somit eine freie Gestaltung.
-
Da dieses Verfahren dem Roboter ermöglicht Arbeitsvorgänge an dem Gegenstand nur an Positionen auszuführen, an denen der Fehler Null ist, ist der Arbeitsvorgang problemfrei, wenn der Roboter eine einfache Aufgabe, wie das Ergreifen des Gegenstands, ausführen soll. Dieses Verfahren kann jedoch nicht verwendet werden, wenn gefordert wird, dass der Roboter eine Tätigkeit ausführen soll, die einen komplizierten Bewegungsverlauf erfordert, wie beispielsweise das Auftragen eines Klebstoffs an dem Gegenstand durch einen vorbestimmten Verlauf.
-
Es gibt ein weiteres vorgeschlagenes Verfahren, bei dem der Unterschied zwischen der Position des Roboters, in der die Solldaten relativ zu einem Referenzgegenstand konfiguriert wurden und der Position des Roboters, in der der Roboter einen Greifvorgang an dem Referenzgegenstand ausführt, als eine Positionstransformationsmatrix gespeichert wurde, und der Roboter betrieben wird, um den Fehler auf Null zu bringen und dann der gespeicherten Positionstransformationsmatrix folgend bewegt wird, um einen Greifvorgang auszuführen (z. B. japanische Patentschrift Nr.
JP-B-4265088 ). Bei dieser Erfindung wird im Vergleich zu dem im Patentdokument 2 offenbarten Verfahren die Beschränkung der Positionsbeziehung zwischen der Kamera und der am Ende des Roboterarms befestigten Hand eliminiert. Dieses Verfahren bietet jedoch keine Lösung zu dem Problem, dass das Verfahren nicht eingesetzt werden kann, wenn der Roboter eine Tätigkeit ausführen soll, die komplizierte Bewegungsverläufe erfordert.
-
Wenn der Gegenstand auf einen flachen Untersatz, wie einem Tisch oder dergleichen, gesetzt wird, um die Position und die Lage die Roboters zu steuern, so dass das Erscheinungsbild des Gegenstands mit den Solldaten übereinstimmt, ist es im Übrigen bevorzugt, dass der Roboter so gesteuert wird, dass der Abstand zwischen der am Ende des Roboterarms befestigten Kamera und dem Tisch, auf dem der Gegenstand aufgesetzt ist, unverändert bleibt. Wenn sich die Orientierung des Gegenstands ändert ist es ferner erforderlich, den Roboter so zu steuern, dass die relative Richtung des Gegenstands zur Kamera unverändert ist. Zu diesem Zweck ist es bevorzugt, dass die Kamera so gesteuert wird, dass sie sich auf einer Achse dreht, die rechtwinklig zur Tischoberfläche ist, so dass sich die Neigung der Kamera relativ zum Tisch nicht ändern wird.
-
Bei der allgemeinen visuellen Rückmeldung ist jedoch weder sichergestellt, dass sich der Abstand zwischen der Kamera und dem Tisch nicht ändert, noch dass die relative Neigung zwischen der Kamera und dem Tisch unverändert bleibt. Daher gibt es Fälle, bei denen das Steuern des Roboters derart, dass das Erscheinungsbild des Gegenstands mit den Solldaten übereinstimmt, mehr Zeit in Anspruch nimmt als notwendig.
-
Um dieses Problem zu vermeiden kann und sollte ein Koordinatensystem, das parallel zur Tischoberfläche ist, in dem Roboter so konfiguriert werden, dass die Kamera basierend auf diesem Koordinatensystem bewegt werden kann. Es ist beispielsweise möglich, ein Roboterkoordinatensystem auf der Tischoberfläche zu konfigurieren, indem ein beliebiger Punkt auf der Hand des Roboters als TCP (Werkzeugmittelpunkt) definiert wird, der TCP veranlasst wird, drei Punkte auf der Tischoberfläche zu berühren, jedoch nicht auf einer Linie, um die Koordinatenwerte des TCP an jedem Punkt aus der Sicht des Roboterkoordinatensystems gesehen zu lesen (z. B. ungeprüfte japanische Patentanmeldung Nr.
JP-A-2010-076054 ).
-
Der Arbeitsvorgang zum Einstellen des Koordinatensystems mit diesem Verfahren bringt jedoch das Problem, dass das Fach können des Bedieners einen Unterschied beim Einstellen der Genauigkeit macht, und das Risiko mit sich bringt, dass die Hand und der Tisch durch fehlerhafte Arbeitsvorgänge beschädigt werden können, da die Hand des Roboters in physischen Kontakt mit dem Tisch gebracht wird.
-
Es ist eine Aufgabe der vorliegenden Erfindung ein System zum Korrigieren des Arbeitsvorgangs eines Roboters unter Verwendung von visueller Rückmeldung bereitzustellen, welches Arbeitsvorgänge an einem Gegenstand ermöglicht, die komplizierte Verläufe mit sich bringen, und der Kamera ermöglicht, sich parallel zur Tischoberfläche zu bewegen und sich um eine zur Tischoberfläche senkrechte Achse zu drehen, ohne dass der Bediener Kenntnis von dem Roboterkoordinatensystem hat, um dadurch die Kamera effizient an eine vorbestimmte Position zu bewegen.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Ein Robotersystem gemäß einer Ausführungsform der vorliegenden Erfindung umfasst: einen Roboter, der durch ein Programm gesteuert wird, das Betriebsanweisungen enthält, um an einem Gegenstand, der an einer ersten Gegenstandsposition auf einer Ebene sitzt, durch den Einsatz einer an einem Armende des Roboters befestigten Vorrichtung vorbestimmte Arbeitsvorgänge auszuführen; eine Kamera, die an dem Armende befestigt ist, um Bilder des Gegenstands aufzunehmen; eine erste Roboterpositionsspeichereinheit, die als erste Roboterposition die Position des Armendes speichert, das in einer vorbestimmten Positionsbeziehung relativ zur ersten Gegenstandsposition angeordnet ist; eine Solleingangszustandsdaten-Speichereinheit, die als Solleingangszustandsdaten mindestens eine Merkmalsgröße aus Position, Lage und Größe des Gegenstands auf dem Bild der Kamera in einem Solleingangszustand speichert, in dem der Gegenstand an der ersten Gegenstandsposition abgesetzt ist, während das Armende an der ersten Roboterposition positioniert ist; einen Roboterbewegungsbetragsrechner, der den Bewegungsbetrag von einer beliebigen Ausgangsposition des Armendes berechnet, um mindestens eine Merkmalsgröße aus Position, Lage und Größe auf dem Kamerabild des Gegenstands, wenn der an einer zweiten Gegenstandsposition auf der Ebene abgesetzte Gegenstand bei an der beliebigen Ausgangsposition positioniertem Armende von der Kamera aufgenommen wurde, mit der entsprechenden Merkmalsgröße der Solleingangszustandsdaten übereinstimmen zu lassen; und einen Korrekturdatenrechner, der die Korrekturdaten berechnet, um das Programm basierend auf dem Unterschied zwischen der zweiten Roboterposition oder der Position des Armendes, wenn das Armende basierend auf dem berechneten Bewegungsbetrag bewegt wurde, und der ersten Roboterposition zu korrigieren.
-
BESCHREIBUNG DER ZEICHNUNGEN
-
Diese und andere Merkmale und Vorteile der vorliegenden Erfindung werden besser verständlich, wenn die folgende ausführliche Beschreibung in Verbindung den Zeichnungen gelesen wird, wobei:
-
1 ein Schaubild ist, das die Gesamtanordnung eines Robotersystems in der ersten Ausführungsform der vorliegenden Erfindung zeigt;
-
2 ein Blockschaltbild ist, das ein in der vorliegenden Erfindung verwendetes Robotersteuerungsgerät zeigt;
-
3 ein Ablaufdiagramm ist, um den Ablauf zu erläutern, wenn das Robotersystem der vorliegenden Erfindung hochgefahren wird;
-
4 ein Ablaufdiagramm ist, um den Prozess zu erläutern, wenn eine Tätigkeit im Robotersystem der vorliegenden Erfindung durchgeführt wird;
-
5 eine Draufsicht ist, die einen an der ersten und der zweiten Position abgesetzten Gegenstand zeigt;
-
6 ein Schaubild ist, das ein verschobenes virtuelles Roboterkoordinatensystem zeigt;
-
7 ein Schaubild ist, um die Definition eines Werkzeugkoordinatensystems zu erläutern;
-
8 ein Schaubild ist, das die Positionsbeziehung zwischen einem Werkzeugkoordinatensystem und einer Kamera zeigt;
-
9 ein Schaubild ist, das die Positionsbeziehung zwischen einem Werkzeugkoordinatensystem und einem zweiten Werkzeugkoordinatensystem zeigt; und
-
10 ein Schaubild ist, das zeigt, wie ein Werkzeugkoordinatensystem um die Z-Achse gedreht wird.
-
AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
Das Robotersystem gemäß der vorliegenden Erfindung wird mit Bezug auf die Zeichnungen beschrieben. Es sollte angemerkt werden, dass der technische Umfang der vorliegenden Erfindung nicht auf deren Ausführungsformen beschränkt ist, sondern die im Umfang der Ansprüche definierte Erfindung und deren Äquivalente umfasst.
-
1 ist ein Schaubild, das die Gesamtanordnung eines Robotersystems in der Ausführungsform der vorliegenden Erfindung zeigt. Das Robotersystem gemäß der Ausführungsform der vorliegenden Erfindung umfasst: einen Roboter 1, der durch ein Programm gesteuert wird, das Betriebsanweisungen enthält, um an einem Gegenstand 4, der an einer ersten Gegenstandsposition auf einer Ebene 5 abgesetzt ist, durch den Einsatz eines Werkzeugs 30, das als Vorrichtung an einer in einem Armende des Roboters 1 bereitgestellten mechanischen Schnittstelleneinheit 32 befestigt ist, vorbestimmte Arbeitsvorgänge auszuführen; eine Kamera 3, die an der mechanischen Schnittstelleneinheit 32 befestigt ist, um das Bild des Gegenstands 4 aufzunehmen; eine erste Roboterpositionsspeichereinheit (nachfolgend auch einfach als „Roboterpositionsspeicher” bezeichnet) 12a (2), die als erste Roboterposition die Position der mechanischen Schnittstelleneinheit 32 speichert, die in einer vorbestimmten Positionsbeziehung relativ zur ersten Gegenstandsposition angeordnet ist; eine Solleingangszustandsdaten-Speichereinheit 12b, die als Solleingangszustandsdaten mindestens eine Merkmalsgröße aus Position, Lage und Größe des Gegenstands 4 auf dem Bild der Kamera 3 in einem Solleingangszustand speichert, in dem der Gegenstand 4 an der ersten Gegenstandsposition abgesetzt ist, während die mechanische Schnittstelleneinheit 32 an der ersten Roboterposition positioniert ist; einen Roboterbewegungsbetragsrechner 11b, der den Betrag der Bewegung von einer beliebigen Ausgangsposition der mechanischen Schnittstelleneinheit 32 berechnet, um mindestens eine Merkmalsgröße aus Position, Lage und Größe auf dem Kamerabild des Gegenstands, wenn der an einer zweiten Gegenstandsposition auf der Ebene abgesetzte Gegenstand bei an der beliebigen Ausgangsposition positioniertem Armende von der Kamera aufgenommen wurde, mit der entsprechenden Merkmalsgröße der Solleingangszustandsdaten übereinstimmen zu lassen; und einen Korrekturdatenrechner 11c, der die Korrekturdaten berechnet, um das Programm basierend auf dem Unterschied zwischen der zweiten Roboterposition oder der Position der mechanischen Schnittstelleneinheit 32, wenn die mechanische Schnittstelleneinheit 32 basierend auf dem Bewegungsbetrag bewegt wurde, und der ersten Roboterposition zu korrigieren.
-
Der Roboter 1 ist ein bekannter typischer Roboter, beispielsweise ein sechsachsiger Mehrgelenksroboter. Der Roboter 1 umfasst eine Armeinheit 1a und eine Basiseinheit 1b und ist mit einer Robotersteuerungsvorrichtung 2 zum Steuern des Roboters 1 verbunden.
-
Die an dem Armende der Armeinheit 1a angeordnete mechanische Schnittstelleneinheit 32 ist mit einem Werkzeug 30 ausgerüstet. Das in 1 dargestellte Werkzeug 30 ist ein Mechanismus zum Ausführen eines Arbeitsvorgangs an dem Gegenstand, wie beispielsweise eine Düse 31 zum Auftragen von Klebstoff. Die mechanische Schnittstelleneinheit 32 ist ferner mit einer Kamera 3 zum Aufnehmen des Bildes des Gegenstands 4 ausgerüstet.
-
Am Roboter 1 sind ein an der Basiseinheit 1b fixiertes Roboterkoordinatensystem Σb und ein an der mechanischen Schnittstelleneinheit 32 fixiertes Koordinatensystem Σf der mechanischen Schnittstelle definiert. Die Robotersteuerungsvorrichtung 2 steuert die Position und die Lage R des Koordinatensystems Σf der mechanischen Schnittstelle aus der Sicht des Roboterkoordinatensystems Σb betrachtet als die momentane Position des Roboters. Hierbei ist R eine 4×4 homogene Transformationsmatrix. Sofern nicht anders angegeben ist nachfolgend die „Roboterposition” die Position und die Lage R des Koordinatensystems Σf der mechanischen Schnittstelle vom Roboterkoordinatensystem Σb aus betrachtet.
-
Die Kamera 3 ist beispielsweise eine CCD-Kamera zur industriellen Verwendung und eine bekannte Lichtempfangsvorrichtung mit Bildaufnahmefunktion. In der vorliegenden Ausführungsform wird die Robotersteuerungsvorrichtung 2 mit einer Bildverarbeitungsfunktion vorgestellt, und die Kamera 3 ist mit der Robotersteuerungsvorrichtung 2 verbunden. Die Erfindung sollte jedoch nicht auf dieses Beispiel beschränkt werden, sondern kann durch Bereitstellen einer Vorrichtung zur Bildverarbeitung, wie einem PC oder dergleichen, Verbinden der Kamera 3 mit der Bildverarbeitungsvorrichtung und Verbinden der Bildverarbeitungsvorrichtung und der Robotersteuerungsvorrichtung 2 mit einem Kommunikationskabel verwirklicht werden.
-
Der Gegenstand 4 wird auf einen flachen Tisch 5 gesetzt. Der Roboter 1 kann bewegt werden, um den Gegenstand 4 in das Sichtfeld der Kamera 3 einzupassen, um dabei das Bild des Gegenstands 4 durch die Kamera 3 aufzunehmen.
-
2 ist ein Blockschaltbild, das eine in der vorliegenden Erfindung verwendete Robotersteuerungsvorrichtung darstellt. Die Robotersteuerungsvorrichtung 2 umfasst einen Hauptprozessor CPU (nachfolgend einfach als „CPU” bezeichnet) 11.
-
Der CPU 11 umfasst: einen Bildverarbeiter 11a zum Berechnen der Merkmalsgrößen, wie die Position, Lage, Größe und dergleichen, des Gegenstands 4, der in dem durch die Kamera 3 aufgenommen Bild erscheint; einen Roboterbewegungsbetragsrechner 11b zum Bestimmen des Betrags der Bewegung des Roboters basierend auf den berechneten Merkmalsgrößen und den gespeicherten Solleingangszustandsdaten; einen Korrekturdatenrechner 11c zum Berechnen der Korrekturdaten zum Korrigieren des Arbeitsvorgangs des Roboters basierend auf der ersten Roboterposition und der zweiten Roboterposition; und einen Normalenvektorrechner 11d zum Bestimmen des Normalenvektors auf der Oberfläche des Tischs 5, auf dem der Gegenstand 4 abgesetzt wird, basierend auf mehreren zweiten Roboterpositionen.
-
Mit einem vom CPU 11 ausgehenden Bus 17 sind ein Speicher 12, der RAM, ROM, nichtflüchtige Speicher usw. aufweist, eine Lehrbedienpultschnittstelle 13, eine Kameraschnittstelle 14, eine Servosteuereinheit 15 und eine externe E/A-Schnittstelle 16 für eine externe Vorrichtung verbunden.
-
Ein Lehrbedienpult 18 ist mit der Lehrbedienpultschnittstelle 13 verbunden. Durch Bedienen des Lehrbedienpults 18 kann der Bediener das Roboterprogramm erstellen, modifizieren und registrieren und kann verschiedene Parameter des Programms einstellen und kann außerdem das gelehrte Roboterprogramm wiedergeben, eine manuelle Steuerung an der Roboterposition ausführen und kann andere Dinge ausführen. In der vorliegenden Ausführungsform hat die Robotersteuerungsvorrichtung 2 ferner eine Bildverarbeitungsfunktion, so dass der Bediener durch Bedienen des Lehrbedienpults 18 das Bildverarbeitungsprogramm erstellen, modifizieren und registrieren kann sowie verschiedene Parameter des Programms einstellen kann und außerdem das gelehrte Bildverarbeitungsprogramm wiedergeben, Erkennungsprüfungen ausführen und andere Dinge ausführen kann.
-
Die Systemsoftware zum Steuern des Roboters 1 und die Systemsoftware zum Ausführen der Bildverarbeitung sind im ROM des Speichers 12 gespeichert. Das Roboterprogramm, dem der Aufgabeninhalt des Roboters entsprechend der Anwendung gelehrt wird, und die zugehörigen Daten von Einstellungen werden im nichtflüchtigen Speicher des Speichers 12 gespeichert. Der RAM des Speichers 12 wird für den Speicherbereich zum vorübergehenden Speichern der Daten in verschiedenen durch den CPU 11 ausgeführten arithmetischen Bearbeitungen verwendet. Der Speicher 12 enthält den Roboterpositionsspeicher 12a zum Speicher der Roboterposition und den Solleingangszustandsdatenspeicher 12b zum Speichern der durch den Bildverarbeiter 11b berechneten Solleingangszustandsdaten.
-
Die Servosteuereinheit 15 enthält die Servosteuerungen #1 bis #n (n ist die Gesamtzahl von Achsen des Roboters, wobei hier n = 6 angenommen wird) und empfängt Betriebsbefehle vom CPU 11 und gibt einen Drehmomentbefehl A1 bis An zusammen mit dem von dem an jeder Achse befestigten Impulscodierer (nicht dargestellt) empfangenen Rückmeldesignal an jeden der Servoverstärker aus. Jeder Servoverstärker A1 bis An liefert elektrischen Strom an die Servomotoren M1 bis Mn für jede Achse, um die Motoren basierend auf dem entsprechenden Drehmomentbefehl anzutreiben.
-
Die Bilderfassungsvorrichtung, d. h. eine Kamera 3, ist mit der Kameraschnittstelle 14 verbunden. Wird ein Bildaufnahmebefehl vom CPU 11 über die Kameraschnittstelle 14 ausgesendet, dann führt die Kamera 3 durch die elektronische Verschlussfunktion eine Bildaufnahme aus, so dass das Bildsignal über die Kameraschnittstelle 14 in Form von Graustufensignalen im Speicher 12 gespeichert wird.
-
Im Robotersystem der vorliegenden Anwendung wurde das Roboterprogramm zum Ausführen vorbestimmter Arbeitsvorgänge am Gegenstand 4 gelehrt, während sich der Gegenstand 4 an einer beliebigen Position auf dem Tisch 5 befand. Diese Position wird als „die Referenzposition” bezeichnet. Wenn der Gegenstand 4 an die Referenzposition gesetzt wird, wird dem Roboter 1 ermöglicht, entsprechende Arbeitsvorgänge an dem Gegenstand 4 auszuführen, indem lediglich das Roboterprogramm gestartet wird.
-
Wenn unter solchen Umständen der Gegenstand 4 an eine von der Referenzposition unterschiedliche Position gesetzt wird, werden Korrekturdaten mittels des in der vorliegenden Erfindung offenbarten nachfolgenden Verfahrens berechnet, so dass das Roboterprogramm abläuft, während es basierend auf den Korrekturdaten korrigiert wird, um dadurch dem Roboter 1 zu ermöglichen, entsprechende Arbeitsvorgänge an dem Gegenstand 4 auszuführen, der sich an einer anderen Position als der Referenzposition befindet.
-
3 ist ein Ablaufdiagramm zur Erläuterung des Ablaufs, wenn das Robotersystem der vorliegenden Erfindung eingerichtet ist. Nachfolgend werden die Einrichtvorgänge des Robotersystems mit Bezug auf 3 beschrieben.
-
Zunächst wird ein Gegenstand 4 an die Referenzposition auf dem Tisch 5 gesetzt (die nachfolgend als „die erste Gegenstandsposition” bezeichnet wird) (S101).
-
Als Nächstes wird der Roboter 1 an die erste Roboterposition bewegt, so dass der an die erste Gegenstandsposition gesetzte Gegenstand 4 im Sichtfeld der Kamera 3 erscheint (S102). Die erste Roboterposition wird vorzugsweise so eingestellt, dass die optische Achse der Kamera 3 ungefähr rechtwinklig zur Ebene des Tischs 5 wird; sie ist jedoch nicht auf diese Anforderung beschränkt. Es besteht beispielsweise kein Problem, wenn die optische Achse der Kamera 3 gegenüber der Ebene des Tisches 5 leicht geneigt ist. Um den Einfluss von Linsenverzeichnungen und anderen Dingen an dem aufgenommen Bild des Gegenstands 4 zu minimieren, wird ferner die erste Roboterposition vorzugsweise so eingestellt, dass der Gegenstand 4 ungefähr in der Mitte des Sichtfelds der Kamera erscheinen wird.
-
Als Nächstes wird das Bild des Gegenstands 4 durch die Kamera 3 aufgenommen, und das Bild des Gegenstands 4 wird als die Modelldaten gelehrt (S103). Welche Art von Informationen hier als Modelldaten gespeichert werden sollten, hängt von dem Algorithmus der Bildverarbeitung ab, der verwendet wird, um den Gegenstand 4 anhand des Bildes zu erfassen. In der vorliegenden Erfindung kann ein beliebiger Bildverarbeitungsalgorithmus verwendet werden. Beispielsweise sind Vorlagenübereinstimmung auf der Basis von normalisierter Korrelation, die generalisierte Hough-Transformation unter Verwendung von Kanteninformation und andere Techniken bekannt und können verwendet werden. Wenn Vorlagenübereinstimmung auf der Basis von normalisierter Korrelation verwendet wird, entspricht die Vorlage den Modelldaten.
-
Als Nächstes werden die gelehrten Modelldaten verwendet, um den Gegenstand 4 anhand des Bildes zu erfassen. Die Merkmalsgrößen wie die Position, Lage, Größe und dergleichen auf dem Bild des erfassten Gegenstands 4 werden als Solleingangszustand im Solleingangszustandsdatenspeicher 12b gespeichert, während die erste Roboterposition im Roboterpositionsspeicher 12a gespeichert wird (S104). Wenn beispielsweise die Vorlagenübereinstimmung als Bildverarbeitungsalgorithmus angenommen wird, können die Mittenposition, der Drehwinkel, das Vergrößerungs-/Verkleinerungsverhältnis der Vorlage, die den größten Grad an Übereinstimmung aufweist, als die Merkmalsgrößen für die Position, die Lage und die Größe abgetastet werden.
-
Abschließend wird das Roboterprogramm gelehrt, das bewirkt, dass der Roboter 1 vorbestimmte Arbeitsvorgänge an dem auf die erste Gegenstandsposition gesetzten Gegenstand 4 ausführt (S105).
-
4 ist ein Ablaufdiagramm, um den Prozess zu erläutern, wenn das Robotersystem der vorliegenden Erfindung Arbeitsvorgänge ausführt. Der Arbeitsvorgang des Robotersystems der vorliegenden Erfindung wird mit Bezug auf 4 beschrieben.
-
Zunächst wird der Roboter zur Ausgangsposition bewegt (S201). Üblicherweise kann die Ausgangsposition des Roboters an die erste Roboterposition gesetzt werden. Solange der Gegenstand 4 in dem Sichtfeld der Kamera 3 erscheint während der Roboter dieselbe Lage einnehmen kann, wie die der ersten Roboterposition, kann jedoch der Roboter an eine unterschiedliche Ausgangsposition gesetzt werden. Wenn beispielsweise der Tisch 5 so breit ist, dass der gesamte Bereich des Tisches 5 nicht in das Sichtfeld der Kamera 3 passt, ist es möglich Messungen durchzuführen, indem der gesamte Bereich des Tisches 5 durch Ändern der Ausgangspositionen in mehrere Sichtfelder aufgeteilt wird.
-
Als Nächstes wird durch die Kamera 3 das Bild des Gegenstands 4 aufgenommen, um die Erfassung des Gegenstands 4 durch eine Bildverarbeitung durchzuführen (S202). Der Bildverarbeitungsalgorithmus kann dieselbe Technik wie die obengenannte von S104 verwenden, so dass Informationen zu den Merkmalsgrößen (die Position, Lage und Größe des Bildes) erhalten werden.
-
Als Nächstes wird der Betrag der Roboterbewegung berechnet (S203), der notwendig ist, um den Roboter an eine solche Position zu bewegen, dass die bei S202 erfassten Merkmalsgrößen mit den gespeicherten Solleingangszustandsdaten übereinstimmen. Es gibt bereits verschiedene Techniken zum Berechnen des Betrags der Roboterbewegung auf der Basis der auf dem Bild abgetasteten Merkmalsgrößen. In der vorliegenden Erfindung wird die zu verwendende Technik nicht eingeschränkt, es wird jedoch später ein Beispiel beschrieben werden.
-
Als Nächstes wird bestimmt, ob die momentane Roboterposition im Solleingangszustand ist (S204). Diese Bestimmung kann gemacht werden, indem die bei S203 berechnete Größe des Betrags der Roboterbewegung mit dem zuvor eingestellten Schwellenwert verglichen wird. Wenn beispielsweise bei einem Schwellenwert von 0,5 mm der berechnete Betrag der Roboterbewegung weniger als 0,5 mm ist, dann ist es möglich zu bestimmen, dass der Roboter im Solleingangszustand ist. Das Bewertungskriterium bei S204 kann einen Wert verwenden, der erhalten wird, indem die Differenz zwischen einer der bei S202 erhaltenen Merkmalsgrößen und der entsprechenden Merkmalsgröße der gespeicherten Solleingangszustandsdaten mit dem vorab eingestellten Schwellenwert verglichen wird. Wenn beispielsweise der Schwellenwert ein Pixel ist, ist es möglich zu bestimmen, dass die Roboterposition im Solleingangszustand ist, wenn die Differenz der berechneten Position kleiner als ein Pixel ist.
-
Wenn die Roboterposition nicht im Solleingangszustand ist, wird der Roboter basierend auf dem bei S203 berechneten Betrag der Roboterbewegung bewegt (S205). Obwohl es möglich ist, direkt zum nächsten Schritt (S206) zu gehen, wenn man annimmt, dass eine einzige Bewegung des Roboters ausreichend ist, um den Solleingangszustand zu erreichen, ist im Ablaufdiagramm in 4 die Steuerung dazu ausgeführt, zu S202 zurückzukehren, um erneut zu bestätigen, dass die Roboterposition die Solleingangsbedingungen bei S204 erfüllt.
-
Wenn bestimmt wird, dass der Roboter im Solleingangszustand ist, wird die Roboterposition als die zweite Roboterposition registriert und gleichzeitig werden die Korrekturdaten zum Ausführen von Arbeitsvorgängen an dem erkannten Gegenstand 4 basierend auf der gespeicherten ersten Roboterposition und der zweiten Roboterposition berechnet.
-
Das Prinzip der Korrektur des Roboterprogramms und das Berechnungsverfahren der Korrekturdaten werden wie folgt beschrieben.
-
Wie oben beschrieben kann die Roboterposition als die Position und Lage R des Koordinatensystems Σf der mechanischen Schnittstelle aus der Sicht des Roboterkoordinatensystems Σb gesehen dargestellt werden. Hierbei ist R eine 4×4 homogene Transformationsmatrix. Da das Roboterprogramm den Roboter 1 nacheinander an mehrere Roboterpositionen bewegt, ist es möglich, das Programm als einen Satz von mehreren Roboterpositionen zu betrachten. Wenn die i-te Roboterposition als Ri bezeichnet wird, können die zu bestimmenden Korrekturdaten als eine 4×4 homogene Transformationsmatrix X betrachtet werden, die die folgende Gleichung erfüllt: Ri' = X·Ri
-
Mit anderen Worten, Korrekturen am Roboter können durchgeführt werden, indem das Programm ausgeführt wird, während die in dem Roboterprogramm gelehrte Roboterposition Ri durch Verwendung der obenstehenden Gleichung basierend auf den Korrekturdaten X in Ri' umgewandelt wird. Da die Transformationsmatrix X bewirkt, dass das Roboterprogramm ausgeführt wird, indem das Roboterkoordinatensystem Σb gewissermaßen durch X verschoben wird, ist es möglich das Roboterprogramm in geeigneter Weise zu korrigieren, um für die Position und Orientierung des Gegenstands 4 selbst dann geeignet zu sein, wenn die Tätigkeit komplizierte Verläufe mit sich bringt.
-
Wenn die gespeicherte erste Roboterposition durch R1 und die zweite Roboterposition durch R2 dargestellt wird, können in der vorliegenden Erfindung die Korrekturdaten X basierend auf R1 und R2 durch die folgende Gleichung berechnet werden: X = R2·R1 –1
-
Abschließend wird das gelehrte Roboterprogramm ausgeführt, während es basierend auf den berechneten Korrekturdaten korrigiert wird (S207).
-
Nachfolgend wird als ein Beispiel des Berechnungsverfahrens bei S203 zum Berechnen der Roboterbewegung, um die Roboterposition mit dem Solleingangszustand basierend auf den von dem Bild erfassten Merkmalsgrößen übereinstimmen zu lassen, ein Verfahren beschrieben, das Jacobi-Matrizes verwendet.
-
Zuerst wird der Betrag der Roboterbewegung für die Übereinstimmung mit dem Solleingangszustand basierend auf der Differenz zwischen den erfassten Merkmalsgrößen des Gegenstands und den als Solleingangszustandsdaten gespeicherten Merkmalsgrößen berechnet. 5 ist eine Draufsicht, die den an die erste und die zweite Gegenstandsposition gesetzten Gegenstand darstellt. In 5 wird beispielsweise das Bild des an der ersten Gegenstandsposition befindlichen Gegenstands 4 durch die gestrichelte Linie dargestellt und der an der zweiten Gegenstandsposition befindliche Gegenstand 4 wird durch eine durchgezogene Linie dargestellt. Wenn die Position in dem Bildkoordinatensystem durch (u, v) bezeichnet wird, ist Δu die Differenz in der vertikalen Position des Bildes und Δv ist die Differenz in der horizontalen Richtung des Bildes.
-
Die Merkmalsgröße der sichtbaren Größe auf dem Bild wird durch s bezeichnet. Im Falle der Vorlagenübereinstimmung ist es beispielsweise möglich, diese Merkmalsgröße mit einem Wert größer als 1,0 darzustellen, wenn der Gegenstand größer als die Vorlage erscheint, und mit einem Wert kleiner als 1,0 darzustellen, wenn der Gegenstand kleiner als die Vorlage erscheint, wobei die Größe der Vorlage 100% = 1,0 ist.
-
Wenn die in den Solleingangsdaten gespeicherten Merkmalsgrößen als (u
0, v
0, s
0) angenommen werden und die bei Schritt S202 erhaltenen Merkmalsgrößen als (u
1, v
1, s
1) angenommen werden, können die Differenzen der Merkmalsgrößen durch die folgenden Gleichungen angegeben werden:
-
Da die Merkmalsgröße s der sichtbaren Größe auf dem Bild umgekehrt proportional zum Abstand der Kamera 3 von der Tischoberfläche 5 ist, auf der der Gegenstand aufgesetzt ist, wird der Kehrwert, der ein zum Abstand proportionaler Wert ist, anstatt des Verhältnisses selbst verwendet.
-
Wenn der Betrag der zu bestimmenden Roboterbewegung durch (Δx, Δy, Δz) bezeichnet wird, kann eine Jacobi-Matrix durch die folgende Gleichung definiert werden:
-
Der Betrag der Roboterbewegung (Δx, Δy, Δz) kann in jedem Koordinatensystem dargestellt werden. Wenn man berücksichtigt, dass die relative Positionsbeziehung zwischen der Kamera 3 und dem Koordinatensystem Σf der mechanischen Schnittstelle fest ist, wird jedoch die Roboterbewegung vorzugsweise im Koordinatensystem Σf der mechanischen Schnittstelle dargestellt. Das heißt, in der vorliegenden Ausführungsform werden (Δx, Δy, Δz) als die Beträge definiert, um welche der Roboter 1 in der X-Achsen-, Y-Achsen- und Z-Achsenrichtung des Koordinatensystems Σf der mechanischen Schnittstelle bewegt werden sollte.
-
Als Nächstes wird das Verfahren zum Bestimmen der Jacobi-Matrix J beschrieben.
-
Zunächst wird davon ausgegangen, dass sich der Roboter an der ursprünglichen Position befindet, an der der Gegenstand 4 ungefähr in der Mitte des Bildes erscheint. Wenn der Roboter 1 an der ursprünglichen Position positioniert ist, wird der Gegenstand 4 anhand des von der Kamera 3 aufgenommenen Bildes erfasst, um Merkmalsgrößen wie (u0, v0, s0) zu erhalten. Dann wird der Roboter 1 von der ursprünglichen Position um einen Abstand m in der X-Achsenrichtung des Koordinatensystems Σf bewegt, um den Gegenstand 4 anhand des von der Kamera 3 an der Position aufgenommen Bildes zu erfassen und die Merkmalsgrößen als (ux, vx sx) zu erhalten. In gleicher Weise wird an den Positionen, an die der Roboter von der ursprünglichen Position um einen Abstand m in der Y-Achsenrichtung und um einen Abstand m in der Z-Achsenrichtung des Koordinatensystems Σf der mechanischen Schnittstelle bewegt wird, der Gegenstand 4 erfasst, um die Merkmalsgrößen als (uy, vy, zy) beziehungsweise (zu, vz, sz) zu erhalten.
-
Aus den Erfassungsergebnissen des Gegenstands, wenn der Roboter in der Richtung der X-, Y- und Z-Achsen bewegt wurde, und den Erfassungsergebnissen des Gegenstands an der ursprünglichen Position werden Δu, Δv und Δs wie folgt bestimmt:
-
Werden diese in Gleichung (1) eingesetzt, kann die Jacobi-Matrix wie folgt erhalten werden:
-
Nachdem die Jacobi-Matrix bestimmt ist, ist es möglich den Betrag der Roboterbewegung (Δx, Δy, Δz) zu bestimmen, um den Roboter 1 in den Solleingangszustand zu bringen, indem die Merkmalsgrößen (u, v, s) eines beliebigen Gegenstands 4 in die Gleichung (1) eingesetzt werden.
-
Der oben beschriebene Prozess ermöglicht dem Roboter 1 Arbeitsvorgänge an dem an einer beliebigen Position auf dem Tisch 5 abgesetzten Gegenstand 4 auszuführen, während das Roboterprogramm korrigiert wird. Der bestimmte Betrag der Roboterbewegung (Δx, Δy, Δz) birgt jedoch die Möglichkeit einer Bewegung in sich, die den Abstand zwischen der Kamera 3 und dem Tisch 5 ändert, und somit die Effizienz mangelhaft ist trotz der Tatsache, dass dieses Verfahren letztendlich den Solleingangszustand erreichen kann.
-
Aus diesem Grund gilt die nächste Beschreibung dem durch die Erfindung offenbarten Verfahren der Berechnung des Betrags der Roboterbewegung, die den Abstand zwischen dem Roboter 1 und dem Tisch 5 nicht ändern wird, indem die Normale auf die Tischoberfläche 5, auf die der Gegenstand 4 gesetzt wird, berechnet wird und indem der Roboter parallel zur Tischoberfläche 5 bewegt wird und der Roboter um eine zur Normalen auf die Tischoberfläche 5 parallelen Achse gedreht wird.
-
Zunächst wird angenommen, dass die oben erwähnte Jacobi-Matrix bereits bestimmt wurde und der Roboter 1 bereit ist, Arbeitsvorgänge an dem an eine beliebige Position auf dem Tisch 5 gesetzten Gegenstand 4 entsprechend der Vorgänge von S201 bis S207 zu beginnen.
-
Es ist allgemein bekannt, dass drei nichtidentische auf einer Ebene befindliche Punkte bekannt sein sollten, um eine beliebige Ebene in drei Dimensionen zu bestimmen.
-
Durch Berücksichtigung der Positionskomponenten (x, y, z) der oben beschriebenen bei S206 gespeicherten zweiten Roboterposition ergibt (x, y, z) die Position des Ursprungspunkts des Koordinatensystems Σf der mechanischen Schnittstelle aus der Sicht des Roboterkoordinatensystems Σb gesehen, wenn der Roboter 1 an der zweiten Roboterposition positioniert wird.
-
Die Positionskomponenten (x, y, z) der zweiten Roboterposition bezeichnen keinen Punkt auf der Ebene des Tisches 5. Wenn jedoch die Positionskomponenten (xi, yi, zi) an mehreren zweiten Roboterpositionen bekannt waren, müssen sich diese Punkte praktisch auf einer Ebene befinden. Ferner muss die durch die mehreren Koordinatenpunkte (xi, yi, zi) definierte Ebene parallel zur Ebene des Tisches 5 sein. Folglich ist es möglich, die Normale auf die Ebene des Tisches 5 zu berechnen, indem die Normale auf die durch (xi, yi, zi) gebildete Ebene berechnet wird.
-
Im Allgemeinen kann eine beliebige Ebene in drei Dimensionen durch die folgende Gleichung dargestellt werden: ax + by + cz = d
-
Hier ist ein Vektor n = (a, b, c) ein Normalenvektor auf die Ebene, und der Skalarwert d stellt die Länge der rechtwinkligen Line vom Koordinatenursprungspunkt zur Ebene dar. Wenn es mehrere durch (xi, yi, zi), vorgegebene zweite Roboterpositionen gibt, können und sollten (a, b, c), die die die folgende Beziehung erfüllen, aus dem Obenstehenden bestimmt werden.
-
-
Hieraus wird der Normalenvektor n durch das Verfahren der kleinsten Quadrate bestimmt.
-
Wenn
dann kann die folgende Gleichung abgeleitet werden.
-
-
Durch Normalisieren dieses Vektors (a/d, b/d, c/d) ist es möglich, den Normalenvektor auf die durch die mehreren zweiten Roboterpositionen geschaffene Ebene zu berechnen, oder den Normalenvektor n auf die Ebene des Tisches 5 zu berechnen.
-
Die erste Roboterposition kann dazu verwendet werden, um eine der zweiten Roboterpositionen zu ersetzen.
-
Da diese Ausführungsform die Form annimmt, den Normalenvektor n zu berechnen, während der Roboter 1 veranlasst wird, die vorbestimmten Arbeitsvorgänge auszuführen, wird der Schritt S207 zur gleichen Zeit ausgeführt. Wenn jedoch erwünscht ist, zunächst nur den Normalenvektor n zu berechnen, ohne dabei den Roboter 1 arbeiten zu lassen, wird der Schritt S207 zurückgestellt, bis der Normalenvektor n berechnet ist.
-
Abschließend wird das Verfahren beschrieben, bei dem, basierend auf dem berechneten Normalenvektor n, der bei Schritt S203 berechnete Betrag der Roboterbewegung nur eine translatorische Bewegung parallel zu der Ebene des Tisches 5 enthält.
-
Hierzu wird als ein neues Koordinatensystem ein Werkzeugkoordinaten Σt eingeführt. Das Werkzeugkoordinatensystem Σt ist ein Koordinatensystem, das so definiert ist, dass es relativ zum Koordinatensystem Σf der mechanischen Schnittstelle fixiert ist und sich somit bewegt, wenn der Roboter 1 bewegt wird, während es seine relative Positionsbeziehung zum Koordinatensystem Σf der mechanischen Schnittstelle beibehält.
-
Wie in 7 gezeigt kann das Werkzeugkoordinaten Σt beispielsweise als ein Koordinatensystem definiert werden, das denselben Koordinatenursprung hat wie das Koordinatensystem Σf der mechanischen Schnittstelle und dessen Z-Achse parallel zum Normalenvektor n auf die Tischoberfläche 5 verläuft, wenn der Roboter 1 an der ersten Roboterposition positioniert ist. Die X- und Y-Achsen des Werkzeugkoordinatensystems Σt können in einer beliebigen Richtung orientiert sein, solange sie orthogonal zur Z-Achse und orthogonal zueinander verlaufen.
-
Das Definieren des Werkzeugkoordinatensystems ist gleichbedeutend mit dem Bestimmen einer Position und Lage T des Werkzeugkoordinatensystems Σt aus der Sicht des Koordinatensystems Σf der mechanischen Schnittstelle gesehen. T ist eine 4×4 homogene Transformationsmatrix.
-
Zunächst wird unter der Voraussetzung, dass der Roboter 1 an der ersten Roboterposition positioniert ist, die Position und Lage Tb des Werkzeugkoordinatensystems Σt, aus der Sicht des Roboterkoordinatensystems Σb gesehen, entsprechend der folgenden Abläufe bestimmt.
-
Wenn die Richtungsvektoren der X-Achse, Y-Achse und Z-Achse des Werkzeugkoordinatensystems, aus der Sicht des Roboterkoordinatensystems Σb gesehen, durch Vx, Vy beziehungsweise Vz bezeichnet werden, kann Vz durch die folgende Gleichung ausgedrückt werden, da die Z-Achse in dieselbe Richtung gerichtet ist wie der Normalenvektor n. V2 = n →
-
Da die X-Achse und die Y-Achse in einer beliebigen Richtung orientiert sein können, kann die X-Achse so definiert werden, dass sie von der ersten der zweiten Roboterpositionen zu der zweiten der zweiten Roboterpositionen gerichtet ist, während die Y-Achse so definiert werden kann, dass sie rechtwinklig zur X-Achse als auch zur Y-Achse gelegt ist. Das heißt, V
x und V
y werden durch die folgenden Ausdrücke gegeben:
wobei k durch den folgenden Ausdruck gegeben wird:
-
Da der Koordinatenursprung des Werkzeugkoordinatensystems Σt dieselben Koordinatenwerte einnimmt wie diejenigen des Koordinatenursprungs von Σf, aus der Sicht des Roboterkoordinatensystems Σb gesehen, wenn der Roboter
1 an der ersten Roboterposition R
1 positioniert ist, dann wird, wenn der Koordinatenursprung durch (x
0, y
0, z
0) bezeichnet wird, die Position und die Lage T
b des Werkzeugkoordinatensystems Σt, aus der Sicht des Roboterkoordinatensystems Σb gesehen, durch den folgenden Ausdruck gegeben:
-
Weiterhin, da der Roboter 1 an der ersten Roboterposition R1 positioniert ist, gilt die folgende Gleichung. Tb = R1·T
-
Dementsprechend kann die Position und Lage T des Werkzeugkoordinatensystems Σt, aus Sicht des Koordinatensystems Σf der mechanischen Schnittstelle gesehen, durch die folgende Gleichung berechnet werden. T = R1 –1·Tb
-
Da die Position und Lage T des Koordinatensystems Σt, aus der Sicht des Koordinatensystems Σf der mechanischen Schnittstelle gesehen, bestimmt wurde, kann der im Koordinatensystem Σf der mechanischen Schnittstelle dargestellte Betrag der Roboterbewegung (Δx, Δy, Δz) in den Betrag der Roboterbewegung (Δx', Δy', Δz'), aus Sicht des Werkzeugkoordinatensystems Σt gesehen, mittels der folgenden Gleichung umgewandelt werden.
-
-
Da T eine 4×4 homogene Transformationsmatrix ist, wird in obenstehender Gleichung der Roboterbewegungsbetragsvektor auch in vier Dimensionen ausgedehnt. Die Rotationskomponenten von T können jedoch als 3×3 Rotationsmatrix M definiert werden, mit der die Gleichung als die folgende Gleichung ausgedrückt werden kann.
-
-
In Bezug auf das so Bestimmte, dem Betrag der Roboterbewegung (Δx', Δy', Δz') in der Darstellung im Werkzeugkoordinatensystem Σt, sollte Δz' idealerweise Null sein aufgrund der Tatsache, dass die Z-Achse des Werkzeugkoordinatensystems Σt rechtwinklig zur Tischoberfläche 5 ist und dass der Gegenstand 4 auf dem Tisch 5 abgesetzt ist. Aufgrund von verschiedenen Faktoren, wie Erfassungsfehler, Rechenfehler und anderen Fehlern wird der Betrag der Roboterbewegung jedoch nicht exakt Null werden. Als Folge davon wird sich der Roboter, wenn der Roboter entsprechend des berechneten Bewegungsbetrags des Roboters bewegt wird, dem Tisch 5 in einigen Fällen etwas enger annähern und in anderen Fällen etwas weiter entfernt bleiben. Wenn in diesem Fall Δz' durch 0 ersetzt wird, so dass der Betrag der Roboterbewegung (Δx', Δy', 0) wird, ist es möglich, den Roboter zu bewegen, während der exakte Abstand vom Tisch 5 gehalten wird.
-
Die obenstehende Gleichung (1) ergibt sich wie folgt:
-
Somit kann die folgende Gleichung erhalten werden.
-
-
Demzufolge kann J' durch die folgende Gleichung berechnet werden. J' = M–1·J
-
Wenn J', die vorab gemäß der obenstehenden Gleichung berechnet wurde, bei Schritt S203 anstatt der Jacobi-Matrix J verwendet wird, kann der in dem Werkzeugkoordinatensystem Σt dargestellte Betrag der Roboterbewegung (Δx', Δy', Δz') direkt aus (Δu, Δv, Δs) berechnet werden.
-
Was Δθ betrifft, d. h., die sichtbare Orientierungsänderung des Gegenstands 4 im Bild, kann der Roboter 1 um Δθ um die Z-Achse des Werkzeugkoordinatensystems gedreht werden, da die Z-Achse des Werkzeugkoordinatensystems Σt rechtwinklig zur Oberfläche des Tisches 5 ist.
-
Wie in 8 gezeigt besteht jedoch in diesem Fall die Möglichkeit, dass je nach Positionsbeziehung zwischen dem Werkzeugkoordinatensystem Σt und der Kamera 3, der Gegenstand 4 aus dem Sichtfeld der Kamera 3 gerät, indem sich der Roboter 1 drehend um die Z-Achse des Werkzeugkoordinatensystems bewegt.
-
Wenn man sich damit, wie in 9 gezeigt, befasst, ist es möglich, das Problem, dass der Gegenstand 4 außerhalb des Sichtfelds der Kamera 3 gerät, zu lösen indem ein zweites Werkzeugkoordinatensystem Σt' berechnet wird, das erzeugt wird indem der Ursprung des Werkzeugkoordinatensystems Σt so verschoben wird, dessen Ursprung auf der Achse liegt, die durch die Mitte des Gegenstands 4 läuft und parallel zum Normalenvektor n ausgerichtet ist, wenn der Gegenstand 4 auf die erste Gegenstandsposition gesetzt ist, während der Roboter 1 an der ersten Roboterposition positioniert ist, und indem eine Drehung um Δθ um die Z-Achse des zweiten Werkzeugkoordinatensystems Σt' ausgeführt wird. Nun wird das Berechnungsverfahren des zweiten Werkzeugkoordinatensystems Σt' beschrieben.
-
Da das Werkzeugkoordinatensystem Σt und das zweite Werkzeugkoordinatensystem Σt' parallel zu einander sind, wobei sich lediglich deren Koordinatenursprünge voneinander unterscheiden, dann sei P der Vektor, der vom Ursprung des Werkzeugkoordinatensystems Σt zum Ursprung des Werkzeugkoordinatensystems Σt' reicht, dargestellt auf der Basis des Koordinatensystems Σt.
-
In dem Zustand, in dem ein Gegenstand 4 an einer entsprechenden Position auf den Tisch 5 gesetzt ist, beispielsweise an der ersten Gegenstandsposition, und der Roboter 1 beispielsweise an der ersten Roboterposition positioniert ist, wird der Gegenstand 4 anhand des Bildes der Kamera 3 erfasst, indem eine Bildverarbeitung durchgeführt wird. Die Position und Lage des Werkzeugkoordinatensystems Σt wird, aus der Sicht des Roboterkoordinatensystems Σb gesehen, als Tb angegeben, die Koordinatenwerte des Ursprungs des Werkzeugkoordinatensystems Σt werden, aus der Sicht des Roboterkoordinatensystems Σb gesehen, als (x1, y1, z1) angegeben, und die Koordinatenwerte des erfassten Gegenstands 4 im Bildkoordinatensystem werden als (ui, v1) angegeben.
-
Als Nächstes wird, während der Gegenstand 4 an derselben Position gehalten wird, der Roboter 1 drehend um einen genauen Winkel ϕ um die Z-Achse des Werkzeugkoordinatensystems Σt bewegt, und es wird eine visuelle Rückmeldung mittels des oben erwähnten Verfahrens angewendet, so dass die Merkmalsgrößen des im Bild der Kamera 3 erscheinenden Gegenstands 4 mit den oben erwähnten (u1, v1) übereinstimmen. An der Roboter-Konvergenzposition werden die Koordinatenwerte des Ursprungs des Werkzeugkoordinatensystems Σt, aus der Sicht des Roboterkoordinatensystems Σb gesehen, durch (x2, y2, z2) angegeben.
-
10 ist ein Schaubild, das diese Situation aus einer Draufsicht darstellt. Da der Gegenstand
4 am selben Koordinatenwert (u
1, v
1) auf dem Bild der Kamera
3 an zwei im Winkel zueinander unterschiedlichen Roboterpositionen erscheint, gilt die folgende Gleichung:
P = R(ϕ)·P + Δt (2) wobei
-
Durch Erweitern der Gleichung (2) kann die folgende Gleichung erhalten werden:
-
Wird die obenstehende Gleichung nach P aufgelöst, kann die folgende Lösung erhalten werden:
-
Da die Transformation vom Werkzeugkoordinatensystem Σt in das zweite Werkzeugkoordinatensystem Σt' keine Rotationstransformation einbezieht, kann der Ursprung des zweiten Werkzeugkoordinatensystems Σt' bestimmt werden, indem der Ursprung des Werkzeugkoordinatensystems Σt um den Vektor verschoben wird.
-
Durch den obengenannten Prozess kann die Verschiebung auf nur eine parallele Bewegung innerhalb einer zu der bestimmten Normalen senkrechten Ebene und einer Drehbewegung um eine zu der bestimmten Normalen parallelen Achse beschränkt werden. Folglich kann die Richtung der Translation und die für die Konvergenz erforderliche Drehachse beschränkt werden, so dass es möglich ist, die Zeit für die Konvergenz zu reduzieren. Da es insbesondere keinen Arbeitsvorgang für Konvergenz in der Höhenrichtung gibt, wenn der Gegenstand an die Sollposition auf dem Bild bewegt wird, so dass die Größe des Gegenstands auf dem Bild unverändert ist, ist es nicht mehr notwendig, Berechnungen zur Größenabweichung und Konvergenzentscheidung bei der Konvergenzbestimmung durchzuführen. Folglich kann die Verarbeitungszeit und somit die Konvergenzzeit verkürzt werden.
-
Durch Steuern des Roboters derart, dass die Merkmalsgrößen des auf dem von der Kamera 3 aufgenommenen Bild erscheinenden Gegenstands mit den Solleingangszustandsdaten übereinstimmen, kann erwartet werden, dass die relative Positionsbeziehung zwischen dem an der zweiten Gegenstandsposition abgesetzten Gegenstand und der zweiten Roboterposition gleichbedeutend mit der relativen Positionsbeziehung zwischen dem an der ersten Gegenstandsposition abgesetzten Gegenstand und der ersten Roboterposition ist. Dementsprechend ist es möglich, das Programm, das gelehrt wurde, um Arbeitsvorgänge an dem an der ersten Gegenstandsposition abgesetzten Gegenstand basierend auf dem Unterschied zwischen der ersten Roboterposition und der zweiten Roboterposition zu korrigieren, und das korrigierte Programm auszuführen, um dadurch die Arbeitsvorgänge an dem an der zweiten Gegenstandsposition abgesetzten Gegenstand auszuführen. Dies bedeutet, dass die gewünschten Arbeitsvorgänge für den an der zweiten Gegenstandsposition abgesetzten Gegenstand selbst dann ausgeführt werden können, wenn die in dem Programm gelehrten Arbeitsvorgänge des Roboters komplizierte Verläufe enthalten.
-
Das Robotersystem gemäß einer weiteren Ausführungsform der vorliegenden Erfindung ist dadurch gekennzeichnet, dass wenn die Differenz zwischen mindestens einer Merkmalsgröße aus Position, Lage und Größe des an der zweiten Gegenstandsposition abgesetzten Gegenstands auf dem durch die Kamera bei an der zweiten Roboterposition positioniertem Armende des Roboters aufgenommenen Bild und der entsprechenden Merkmalsgröße der in der Solleingangszustandsdaten-Speichereinheit gespeicherten Solleingangszustandsdaten größer als ein vorbestimmter Wert ist, der Roboterbewegungsbetragsrechner den Betrag der Bewegung durch Berücksichtigung der zweiten Roboterposition als eine korrigierte Ausgangsposition berechnet, und die Position des Armendes, nachdem der Arm basierend auf dem berechneten Bewegungsbetrag bewegt wurde, als eine korrigierte zweite Roboterposition festgelegt wird.
-
Es wurde eine Anzahl von Verfahren als das Verfahren zur Bestimmung der Betrags der Roboterbewegung, der den Roboter mit dem Solleingangszustand zur Übereinstimmung bringt, vorgeschlagen. Die vorliegende Erfindung beschränkt die Art und Weise der Bestimmung des Betrags der Roboterbewegung nicht. Wenn jedoch ein einfaches Verfahren verwendet wird, gibt es Fälle, in denen eine einzige Bewegung des Roboters auf der Basis des zum ersten Mal bestimmten Betrags der Bewegung den Roboter nicht in den Solleingangszustand bringen kann. In einem solchen Fall ist es möglich, dieselben Vorgänge zu wiederholen, indem die zweite Roboterposition als eine korrigierte Ausgangsposition verwendet wird, um den Roboter allmählich dem Solleingangszustand anzunähern.
-
Das Robotersystem gemäß einer weiteren Ausführungsform der vorliegenden Erfindung ist dadurch gekennzeichnet, dass bei an der zweiten Roboterposition positioniertem Armende des Roboters der Roboterbewegungsbetragsrechner den Betrag der Bewegung unter Berücksichtigung der zweiten Roboterposition als eine korrigierte Ausgangsposition berechnet wird, und wenn der berechnete Betrag der Bewegung größer als ein vorbestimmter Wert ist, die Position des Armendes, nachdem das Armende basierend auf dem berechneten Betrag der Bewegung bewegt wurde, als eine korrigierte zweite Roboterposition festgelegt wird.
-
Das Robotersystem gemäß noch einer weiteren Ausführungsform der vorliegenden Erfindung umfasst ferner: unter der Bedingung, dass mehrere, mindestens drei, voneinander unterschiedliche zweite Gegenstandspositionen bereitgestellt werden, eine zweite Roboterpositionsspeichereinheit, die mehrere zweite Roboterpositionen speichert, die jeweils entsprechend durch Absetzen des Gegenstands an einer der zweiten Gegenstandspositionen erhalten werden; und einen Normalenvektorrechner, der einen Normalenvektor auf die Ebene, auf der der Gegenstand abgesetzt ist, basierend auf den in der zweiten Roboterpositionsspeichereinheit gespeicherten Roboterpositionen berechnet und dadurch gekennzeichnet ist, dass der Roboterbewegungsbetragsrechner nur die Translationsbewegung innerhalb einer zum Normalenvektor rechtwinkligen Ebene und die Drehbewegung um die zum Normalenvektor parallelen Achse als den Betrag der Bewegung berechnet.
-
Das Robotersystem gemäß noch einer weiteren Ausführungsform der vorliegenden Erfindung ist dadurch gekennzeichnet, dass eine der voneinander unterschiedlichen zweiten Gegenstandspositionen identisch mit der ersten Gegenstandsposition ist und eine der zweiten Roboterpositionen die erste Roboterposition ist.
-
Der Richtungsvektor (Normalenvektor) einer zur Tischoberfläche, auf welcher der Gegenstand aufgesetzt ist, rechtwinkligen Achse kann berechnet werden, wenn die erste Roboterposition und zwei zweite Roboterpositionen oder drei zweite Roboterpositionen bekannt sind. Beispielsweise kann der Normalenvektor bestimmt werden, indem das Kreuzprodukt des Vektors von der ersten Roboterposition zu der ersten der zweiten Roboterpositionen und des Vektors von der ersten Roboterposition zu der zweiten der zweiten der zweiten Roboterpositionen berechnet wird. Wenn drei oder mehr zweite Roboterpositionen erhalten wurden kann alternativ der Normalenvektor mittels des Verfahrens der kleinsten Quadrate oder dergleichen berechnet werden.
-
Da eine Ebene nicht bestimmt werden kann, wenn sich alle für die Berechnung zu verwendenden zweiten Roboterpositionen auf einer Geraden befinden, kann und sollte in diesem Fall die Platzierung der zweiten Gegenstandspositionen derart angeordnet sein, dass die erste Roboterposition und zwei zweite Roboterpositionen oder drei zweite Roboterpositionen beispielsweise ein gleichseitiges Dreieck bilden. Es besteht ebenfalls ein Risiko, dass der Normalenvektor nicht korrekt bestimmt werden kann, wenn sich drei zweite Roboterpositionen in unmittelbarer Nähe zueinander befinden. Deshalb wird die in dem zweiten Roboterpositionsspeicher zu speichernde zweite Roboterposition vorzugsweise gespeichert, nachdem überprüft wurde, dass die besagte zweite Roboterposition mehr als eine bestimmte Entfernung von den bereits gespeicherten zweiten Roboterpositionen beabstandet ist.
-
Der Roboterbewegungsbetragsrechner kann eine Gerade, die durch die Mitte des an der ersten Gegenstandsposition abgesetzten Gegenstands läuft und parallel zum Normalenvektor ist, als eine relative Gerade für das Roboterarmende, wenn der Roboter an der ersten Roboterposition positioniert ist, definieren, und die auf dem Roboterbewegungsbetragsrechner basierende Drehbewegung kann ausgeführt werden, indem die definierte relative Gerade zu dem Armende als die Drehachse verwendet wird.
-
Die Drehachse zum Bewegen des Roboter derart, dass die Merkmalsgrößen des auf dem Kamerabild erscheinenden Gegenstands gleichbedeutend mit den Solleingangszustandsdaten werden, wird als eine Achse bestimmt, die parallel zu dem Normalenvektor durch die Mitte des Gegenstands läuft und ist definiert als eine relative Gerade zum Roboterarmende, wenn der Gegenstand an der ersten Gegenstandsposition abgesetzt ist und der Roboter an der ersten Roboterposition positioniert ist. Diese Konfiguration eliminiert das Risiko, dass der Gegenstand außerhalb des Bildes gerät, wenn der Roboter drehend bewegt wird.
-
Wie gemäß dem Robotersystem der Ausführungsform der vorliegenden Erfindung bisher beschrieben wurde, ist es mit dem Robotersystem zum Steuern eines Roboters, um vorbestimmte Arbeitsvorgänge durch Erkennen der Position und Lage des zu handhabenden Gegenstands mittels einer Kamera möglich, die Einschränkung zu eliminieren, dass eine visuelle Rückmeldung nicht bei einem System angewendet werden kann, das Arbeitsvorgänge mit komplizierten Verläufen ausführt, während der Vorteil der visuellen Rückmeldung, der bedeutet, dass eine Kamerakalibrierung nicht notwendig ist, beibehalten wird.
-
Ferner ist es möglich, das Problem, dass der Roboter dazu neigt, sich an die Tischoberfläche, auf der der zu handhabende Gegenstand abgesetzt ist, manchmal enger oder manchmal weiter entfernt anzunähern oder gegenüber der Tischoberfläche geneigt wird und den Solleingangszustand nicht effizient erreichen kann, zu eliminieren, so dass es möglich ist, den Solleingangszustand ständig und zuverlässig in kurzer Zeit zu verwirklichen.
-
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 10-49218 A [0004]
- JP 2003-211381 A [0005]
- JP 4265088 B [0008]
- JP 2010-076054 A [0011]