-
Hintergrund der Erfindung
-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft ein Robotersystem, das einen Roboter anhand von Positionsinformationen eines Werkstücks ansteuert, die von einem optischen Sensor, im Folgenden auch visueller Sensor genannt, erfasst werden.
-
Beschreibung der verwandten Technik
-
Zur Ausführung von Arbeitsgängen wie Handhaben und Bearbeiten eines Werkstücks mittels eines Roboters müssen eine Position, in der sich das Werkstück befindet, und eine Greifabweichung des vom Roboter gegriffenen Werkstücks genau erkannt werden. Aus diesem Grund wird seit einigen Jahren ein visueller Sensor verwendet, um die Werkstückposition und die Greifabweichung des Werkstücks visuell zu erkennen.
-
Wenn eine Kamera am vorderen Ende eines Roboterarms angebracht ist und die Position des auf einem Tisch und dgl. angeordneten Werkstücks erfasst wird, wird die Werkstückposition erkannt. Wenn außerdem die Position des vom Roboter gegriffenen Werkstücks von einer stationären Kamera gemessen wird, wird die Greifabweichung erkannt.
-
Wenn entweder die Kamera oder das Werkstück durch den Betrieb des Roboters wie oben beschrieben bewegt wird, sind zur Berechnung der Werkstückposition Positionsinformationen des Roboters im Moment der Bildaufnahme erforderlich. Der Grund dafür ist, dass selbst dann, wenn sich das Werkstück bei der Abbildung an derselben Position befindet, sich die Position im Bild mit der Änderung der Position des Roboters, an dem die Kamera angebracht ist, oder des das Werkstück greifenden Roboters ändert.
-
Die
JP 2 889 011 B2 offenbart ein Verfahren zum Berechnen der Position eines Werkstücks in einem Bild, indem Positionsinformationen eines Roboters zum Zeitpunkt der Bildaufnahme verwendet werden. Wenn jedoch die in der
JP 2 889 011 B2 offenbarte Technik tatsächlich angewendet wird, muss der Roboter während der Aufnahme des Bildes des Werkstücks vorübergehend angehalten werden, um genaue Positionsinformationen des Roboters im Moment der Bildaufnahme zu erhalten.
-
Wenn der Roboter während der Bildaufnahme des Werkstücks vorübergehend angehalten wird, ergibt sich das Problem der Zeitverlängerung, da eine Verzögerungszeit, eine Haltezeit zur Bildaufnahme und Erfassung der Roboterposition, eine Zeit zur erneuten Beschleunigung und dgl. des Roboters notwendig sind. Um dieses Problem zu lösen, ist es wünschenswert, das Bild des Werkstücks ohne Anhalten des Roboters aufzunehmen und die Roboterposition im Moment der Bildaufnahme des Werkstücks zu erhalten.
-
In diesem Zusammenhang kann eine Abweichung zwischen dem Zeitpunkt der Bildaufnahme und dem Zeitpunkt der Erfassung der Roboterposition ein Problem darstellen. Wenn sich der Roboter z. B. mit 2000 mm/sec bewegt und der Zeitpunkt der Bildaufnahme vom Zeitpunkt der Erfassung der Roboterposition um 1 msec abweicht, bewegt sich der Roboter zwischen diesen beiden Zeitpunkten um 2 mm. Folglich verursachen Positionsinformationen des Werkstücks im Bild des Werkstücks aufgrund der oben beschriebenen Roboterbewegung einen Fehler.
-
Wenn ferner ein Abstand zwischen der Kamera und dem Werkstück von 1 m angenommen wird, tritt außerdem ein Messfehler von 1000 mm x tan (0,1) = 1,75 mm auf, wenn sich die Ausrichtung des Roboters um 0,1° in 1 msec zwischen der Zeit der Bildaufnahme und der Zeit der Erfassung der Roboterposition ändert. Dieser Messfehler geht dann auch in die Positionsinformationen des Werkstücks ein.
-
Typischerweise liest ein Robotersteuergerät Winkelinformationen eines Codierers eines Servomotors und dgl. in regelmäßigen Zyklen, z. B. in Steuerzyklen des Servomotors, um die Positionsinformationen des Roboters zu erkennen. Demzufolge hängt die Genauigkeit der Positionsinformationen des vom visuellen Sensor gemessenen Werkstücks von diesen Aktualisierungszyklen ab.
-
Die
WO 2009/077118 A1 offenbart ein System zur Aufnahme eines Bildes eines Werkstücks während der Bewegung eines Roboters durch eine am Roboter angebrachte Kamera und zur Korrektur der Werkstückposition. Die
WO 2009/077118 A1 offenbart jedoch kein konkretes Verfahren zum Erhalt der Roboterposition im Moment der Bildaufnahme.
-
Des Weiteren offenbart die
JP H04 - 174 342 A ein Verfahren zur Aufnahme eines Bildes eines Werkstücks, wenn ein Roboter das Werkstück umsetzt, und zur Korrektur eines Greiffehlers. Ein Fehler der Roboterposition aufgrund eines Aktualisierungszyklus der Roboterposition wird jedoch nicht behandelt.
-
US 2005 / 0 166 413 A1 offenbart einen Roboter mit einem Roboterarm und einer Nachführeinrichtung, die dazu eingerichtet ist, eine relative Bewegung zwischen dem Roboter und einem zu ergreifenden Objekt zu messen. Hierbei findet eine Zeitsynchronisation zwischen der Nachführeinrichtung und dem Roboterarm statt, wobei eine Interpolation der Zeitwerte stattfinden kann, wenn die Zeitmessungen zwischen der Nachführeinrichtung und dem Roboter differieren.
-
Die
JP 2008-183 690 A offenbart ein Verfahren zum Senden eines Ansteuersignals im Moment der Bildaufnahme an ein Steuersystem eines Servomotors, das die Positionsinformationen des Roboters in kürzeren Zyklen aktualisiert, und zum Erhalten der Positionsinformationen des Roboters, die im Steuer-system vorliegen. Selbst in diesem Fall hängt die Genauigkeit der Roboter-Positionsinformationen von einem Steuerzyklus des Steuersystems des Servomotors ab. Ferner ist das in der
JP 2008-183 690 A offenbarte Verfahren mit dem Problem behaftet, dass dieses Verfahren eine eigene Ansteuersignalleitung und einen Ansteuerungseingangs-/-ausgangs-Abschnitt erfordert.
-
Die vorliegende Erfindung wurde im Hinblick auf diese Gegebenheiten erarbeitet, und es ist eine Aufgabe der vorliegenden Erfindung, ein Robotersystem bereitzustellen, das eine genaue Roboterposition im Moment der Bildaufnahme erhalten kann, ohne den Roboter vorübergehend anzuhalten und ohne eine spezielle Hardware zu verwenden.
-
Zusammenfassung der Erfindung
-
Gemäß der Erfindung wird ein Robotersystem gemäß dem unabhängigen Anspruch vorgesehen. Entwicklungen sind in den abhängigen Ansprüchen vorgesehen.
-
Vorzugsweise wird ein Robotersystem nach einem ersten Beispiel bereitgestellt mit: einem Roboter; einem Roboter-Steuerabschnitt zum Steuern des Roboters; und einem visuellen Sensor zum visuellen Vermessen eines Werkstücks, wobei entweder das Werkstück oder der visuelle Sensor, das bzw. der vom vorderen Ende eines Arms des Roboters gegriffen wird bzw. daran befestigt ist, durch die Betätigung eines Arms des Roboters bewegt werden kann, und das bzw. der andere des Werkstücks oder des visuellen Sensors an einer roboterfernen Position angeordnet ist, wobei der visuelle Sensor das Werkstück vermisst, während sich das vordere Armende des Roboters bewegt, wobei vorher Kalibrierdaten zum Umwandeln eines Ergebnisses einer Bildverarbeitung in ein Roboter-Koordinatensystem in Bezug auf den visuellen Sensor bestimmt werden, wobei das Robotersystem aufweist: einen Bildverarbeitungsabschnitt des visuellen Sensors, der den visuellen Sensor steuert und auf Basis des Bildes des vom visuellen Sensor vermessenen Werkstücks Positionsinformationen des Werkstücks anhand des Bildes berechnet; einen Zeitgeber, auf den der Roboter-Steuerabschnitt und der Bildverarbeitungsabschnitt des visuellen Sensors zugreifen, um eine aktuelle Zeit abzufragen; einen Speicherabschnitt für die Roboterposition und die Zeit, der sequentiell erste Zeiten in regelmäßigen oder unregelmäßigen Zyklen zusammen mit Positionsinformationsdaten des vorderen Endes des Arms zu den jeweiligen ersten Zeiten speichert; einen Speicherabschnitt für die Bildaufnahmezeit, der eine von der ersten Zeit abweichende zweite Zeit speichert, zu der der visuelle Sensor ein Bild des Werkstücks aufnimmt; einen Berechnungsabschnitt für die Position des vorderen Armendes, der Positionsinformationen des vorderen Armendes zu der zweiten Zeit berechnet, wenn der visuelle Sensor das Bild des Werkstücks auf Basis der im Speicherabschnitt für die Bildaufnahmezeit gespeicherten zweiten Zeit aufnimmt, wobei mindestens zwei der ersten Zeiten vor und nach der zweiten Zeit von den im Speicherabschnitt für die Roboterposition und die Zeit gespeicherten ersten Zeiten und die Positionsinformationsdaten des vorderen Armendes den jeweiligen ersten Zeiten entsprechen; und einen Werkstückpositions-Berechnungsabschnitt, der Positionsinformationen des gegriffenen Werkstücks bezüglich des vorderen Armendes oder Positionsinformationen des Werkstücks, das an der roboterfernen Position bezüglich des Roboters angeordnet ist, auf Basis der Kalibrierungsdaten, der Positionsinformationen des vorderen Armendes zu der zweiten Zeit, die vom Berechnungsabschnitt für die Position des vorderen Armendes berechnet werden, und der Positionsinformationen des Werkstücks anhand des Bildes zu der zweiten Zeit, die vom Bildverarbeitungsabschnitt des visuellen Sensors berechnet werden, berechnet.
-
Gemäß einem zweiten Beispiel vermisst der visuelle Sensor vorzugsweise das Werkstück nach dem ersten Aspekt, während sich das vordere Armende des Roboters bewegt.
-
Gemäß einem dritten Beispiel weist das Robotersystem nach dem ersten oder zweiten Beispiel vorzugsweise ferner einen Korrekturabschnitt auf, der den Betrieb des Roboters auf Basis der Positionsinformationen des gegriffenen Werkstücks bezüglich des vorderen Armendes des Roboters oder der Positionsinformationen des Werkstücks korrigiert, das an einer bezüglich des Roboters roboterfernen Position angeordnet ist, die vom Werk-stückpositions-Berechnungsabschnitt berechnet werden.
-
Gemäß einem vierten Beispiel kann nach dem ersten Beispiel vorzugsweise entweder das Werkstück oder der visuelle Sensor, das bzw. der vom vorderen Armende des Roboter gegriffen wird bzw. daran befestigt ist, durch die Betätigung eines Arms des Roboters bewegt werden, wobei der visuelle Sensor eine Stereomessung ausführt, indem zu einer Mehrzahl von Zeitpunkten Bilder des Werkstücks aufgenommen werden, wenn sich das vordere Armende während der Bewegung des vorderen Armendes des Roboters an von-einander verschiedenen Positionen befindet, und auf Basis eines Ergebnisses der Stereomessung des visuellen Sensors berechnet der Werkstückpositions-Berechnungsabschnitt eine dreidimensionale Position des gegriffenen Werkstücks bezüglich des vorderen Armendes oder eine dreidimensionale Position des an der bezüglich des Roboters roboterfernen Position angeordneten Werkstücks.
-
Gemäß einem fünften Beispiel weist nach dem ersten Beispiel vorzugsweise das Robotersystem ferner einen Laserschlitz-Projektor auf, der am visuellen Sensor angebracht ist, wobei der visuelle Sensor eine dreidimensionale Position eines vom Laser beleuchteten Abschnitts zu einer Mehrzahl von Zeitpunkten an verschiedenen Positionen während der Bewegung des vorderen Armendes des Roboters erfasst, und wobei der Werkstückpositions-Berechnungsabschnitt auf Basis einer Mehrzahl der dreidimensionalen Positionen der vom Laser beleuchteten Abschnitte eine dreidimensionale Form oder/und eine dreidimensionale Position des Werkstücks berechnet.
-
Diese und weitere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung erschließen sich aus der detaillierten Beschreibung von Ausführungsbeispielen, die in den Zeichnungen dargestellt sind.
-
Figurenliste
-
- 1 ist ein Diagramm einer Gesamtkonfiguration eines Robotersystems einer ersten Ausführungsform der vorliegenden Erfindung;
- 2 ist ein Diagramm einer Gesamtkonfiguration eines Robotersystems einer zweiten Ausführungsform der vorliegenden Erfindung;
- 3 ist ein Funktionsblockdiagramm des Robotersystems der ersten Ausführungsform;
- 4 ist ein Flussdiagramm der Operationen eines Roboter-Steuerabschnitts und eines Bildverarbeitungsabschnitts im Robotersystem der vorliegenden Erfindung;
- 5 ist ein Diagramm einer Gesamtkonfiguration eines Robotersystems in einer Ausführungsform, die eine Stereo-Messung ausführt;
- 6 ist ein Diagramm einer Gesamtkonfiguration eines Robotersystems in einer Ausführungsform, die einen Laserstrahlteilungs-Projektor aufweist;
- 7 ist ein Funktionsblockdiagramm des Robotersystems einer anderen Ausführungsform; und
- 8 ist ein Funktionsblockdiagramm des Robotersystems einer weiteren Ausführungsform.
-
Detaillierte Beschreibung
-
Im Folgenden werden Ausführungsformen der vorliegenden Erfindung unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben. In sämtlichen der einzelnen Ansichten sind gleiche Elemente mit identischen Bezugszeichen gekennzeichnet. Zum besseren Verständnis sind die Maßstäbe dieser Zeichnungen geeignet geändert.
-
1 ist ein Diagramm einer Gesamtkonfiguration eines Robotersystems in einer ersten Ausführungsform der vorliegenden Erfindung. Ein in 1 dargestelltes Robotersystem 10 umfasst hauptsächlich einen Roboter 11 und ein Robotersteuergerät 12 zum Steuern dieses Roboters 11. Eine Hand 14 ist am vorderen Ende eines Arms des Roboters 11 angebracht und diese Hand 14 greift ein Werkstück 15 auf einem Tisch 16. In diesem Fall ist das auf dem Tisch 16 angebrachte Werkstück 15 nicht positioniert, und die Position des Werkstücks 15 ist unbestimmt.
-
Wie in 1 dargestellt ist eine Kamera 13 am vorderen Armende des Roboters 11 mittels einer Halterung 18 angebracht. Die Position W1 des auf dem Tisch 16 angebrachten Werkstücks 15 wird mittels der Kamera 13 als visueller Sensor erfasst bzw. gemessen. Auf Basis der gemessenen Positionsinformationen des Werkstücks 15 bewegt sich der Roboter 11 in eine Position, in der das Werkstück 15 zu greifen ist.
-
Der Roboter 11 ist ein hinreichend bekannter typischer Robotermanipulator (im Folgenden als Roboter bezeichnet) und sein Mechanismus ist nicht auf einen bestimmten beschränkt, sofern er die Position und Ausrichtung zum Ausführen einer Operation erreichen kann. Die am vorderen Armende des Roboters 11 angebrachte Hand 14 wird in Abhängigkeit von Form, Material, Gewicht und dgl. gewählt. Die Hand 14 kann also vom Saugtyp oder vom Spanntyp sein. In 1 ist eine Hand 14 des Spanntyps beispielhaft dargestellt.
-
Wie durch den Pfeil X1 in 1 angedeutet ist der Roboter 11 so programmiert, dass er sich aus einer Betriebs-Startposition P1 über eine Bildaufnahmeposition Q1 in eine Werkstück-Greifposition P2 bewegt und das Werkstück 15 in der Werkstück-Greifposition P2 greift. Da die Position W1 des Werkstücks 15 wie oben beschrieben unbestimmt ist, bewegt sich der Roboter 11 auf Basis einer Position W1' des Werkstücks 15, die durch Verwenden der Kamera 13 bestimmt wird, in eine Werkstück-Greifposition P2' nach Maßgabe der Position W1' und greift das Werkstück 15 in der Werkstück-Greifposition P2'.
-
Dabei besteht eine Beziehung zwischen den Positionen W1, W1' des Werkstücks
15 und den Werkstück-Greifpositionen P2, P2' des Roboters
11, die mit der folgenden Gleichung (1) ausgedrückt wird. Die die Positionen wie W1 und P1 usw. repräsentierenden Symbole, die in dieser Patentbeschreibung verwendet werden, sind homogene 4 × 4-Transformationsmatrizen.
-
Der Roboter 11 kann vorübergehend in der Bildaufnahmeposition Q1 auf dem Pfeil X1 anhalten. Bei der ersten Ausführungsform wird jedoch ein Fall beschrieben, bei dem sich der Roboter 11 ohne vorübergehendes Anhalten auf einem durch den Pfeil X1 repräsentierten Weg bewegt.
-
Mit einem vom Roboter 11 gelernten Programm wird versucht, ein Bild in der Aufnahmeposition Q1 aufzunehmen. Im Fall softwarebedingter Verzögerungen und dgl. wird das Bild jedoch in einer Bildaufnahmeposition Q1' aufgenommen, die etwas von der Bildaufnahmeposition Q1 abweicht. Die Bildaufnahmeposition Q1' muss nicht perfekt mit der ursprünglichen Aufnahmeposition Q1 übereinstimmen. Jedoch muss das Werkstück 15 in beiden Bildaufnahmepositionen Q1 und Q1' im Bildfeld der Kamera 13 liegen. Der Grund dafür ist, dass selbst dann, wenn die Bildaufnahmeposition Q1 von der Bildaufnahmeposition Q1' abweicht, die Positionsinformationen Q1' des Roboters 11 im Moment der Bildaufnahme mit der nachstehend beschriebenen Technik bestimmt werden können und auf Basis der Positionsinformationen Q1' die Position W1' des Werkstücks 15 genau bestimmt werden kann.
-
Es wird davon ausgegangen, dass Kalibrierdaten zum Wandeln der Erkennungsdaten, die durch eine Bildverarbeitung bestimmt werden, in ein Roboter-Koordinatensystem im Voraus durch eine Kalibrierung in der Aufnahmeposition Q1 bestimmt und im Roboter-Steuergerät 12 gespeichert werden. Folglich kann auf Basis des in der Aufnahmeposition Q1' aufgenommenen Bildes und der Positionsinformationen der Aufnahmeposition Q1' ein Werkstückpositions-Berechnungsabschnitt 42 (wird nachstehend beschrieben) die Position W1' des Werkstücks im Roboter-Koordinatensystem berechnen.
-
Diese Berechnungstechnik ist in der
JP 2 889 011 B2 offenbart und allgemein bekannt. Auf eine ausführliche Beschreibung dieser Berechnungstechnik wird deshalb verzichtet. Zuerst wird eine vorgegebene Bildverarbeitung mit dem in der Aufnahmeposition Q1' aufgenommenen Bild ausgeführt, um das Werkstück
15 im
-
Bild zu erkennen und seine Erkennungsdaten zu bestimmen. Dann wird auf Basis der bestimmten Erkennungsdaten und der im Voraus bestimmten Kalibrierdaten eine vorläufige Position des Werkstücks bestimmt. Danach wird auf Basis der vorläufigen Position des Werkstücks und eines Bewegungsbetrags des visuellen Sensors 13, mit anderen Worten, eines Bewegungsbetrags von der Position Q1, in der die Kalibrierung erfolgt, zur Position Q1', in der das Bild aufgenommen wird, die genaue Position W1' des Werkstücks 15 bestimmt.
-
Dann wird die Werkstück-Greifposition P2', in der der Roboter
11 das Werkstück greifen soll, gemäß der folgenden Gleichung (2) bestimmt.
-
3 ist ein Funktionsblockdiagramm des Robotersystems in der ersten Ausführungsform. Das Roboter-Steuergerät 12 ist ein digitaler Computer, der einen Roboter-Steuerabschnitt 31, einen Bildverarbeitungsabschnitt 32, einen Speicherabschnitt 33 für die Roboterposition und die Zeit, einen Bildaufnahmezeit-Speicherabschnitt 34 und einen Zeitgeber (Uhr) 35 aufweist, die alle miteinander über einen Bus verbunden sind. Wie in 3 dargestellt ist ferner der Roboter-Steuerabschnitt 31 mit dem Roboter 11 und der Bildverarbeitungsabschnitt 32 mit der Kamera 13 verbunden.
-
Sowohl der Roboter-Steuerabschnitt 31 als auch der Bildverarbeitungsabschnitt 32 können auf den Zeitgeber 35 zugreifen, um die Zeit abzufragen. Der Speicherabschnitt 33 für die Roboterposition und die Zeit speichert sequentiell in einem Roboterpositions-Aktualisierungszyklus die Positionen des Roboters 11 zusammen mit den Zeiten, die von dem Zeitgeber 35 erhalten werden, wenn die jeweiligen Positionen erreicht sind. Ferner speichert der Bildaufnahmezeit-Speicherabschnitt 34 eine Zeit in dem Moment, in dem die Kamera 13 ein Bild aufnimmt, zusammen mit dem Bild zu diesem Zeitpunkt. Der Speicherabschnitt 33 für die Roboterposition und die Zeit und der Bildaufnahmezeit-Speicherabschnitt 34 können so konfiguriert werden, dass sie nur die neueste Mehrzahl an Informationssätzen speichern, oder so, dass sämtliche Informationssätze während des Betriebs des Roboters 11 gespeichert werden.
-
Wie weiter in 3 dargestellt ist, weist der Roboter-Steuerabschnitt 31 ferner einen Berechnungsabschnitt 41 für die Position des vorderen Armendes auf, der die Positionsinformationen des vorderen Armendes berechnet, wenn die Kamera 13 das Bild des Werkstücks 15 auf Basis mindestens einer Zeit vor und nach der im Bildaufnahmezeit-Speicherabschnitt 34 gespeicherten Zeit unter den im Speicherabschnitt 33 für die Roboterposition und die Zeit und die Positionen des vorderen Armendes des Roboters 11 gespeicherten Zeiten entsprechend jeder dieser Zeiten aufnimmt.
-
Des Weiteren enthält der Roboter-Steuerabschnitt 31 einen Werkstückpositions-Berechnungsabschnitt 42 zum Berechnen der Positionsinformationen des gegriffenen Werkstücks 15 bezüglich des vorderen Armendes oder der Positionsinformationen des Werkstücks 15, das an einer vom Roboter 11 bezüglich des Roboters 11 fernen Position angeordnet ist, auf Basis der vom Berechnungsabschnitt 41 für die Position des vorderen Armendes berechneten Positionsinformationen des vorderen Armendes und der vom Bildverarbeitungsabschnitt 32 berechneten Positionsinformationen des Werkstücks 15.
-
Ferner korrigiert ein Korrekturabschnitt 43 im Roboter-Steuerabschnitt 31 den Betrieb des Roboters 11 auf Basis der Positionsinformationen des gegriffenen Werkstücks 15 bezüglich des vorderen Armendes des Roboters 11 oder der Positionsinformationen des Werkstücks 15, das an einer vom Roboter 11 bezüglich des Roboters 11 fernen Position angeordnet ist, die vom Werkstückpositions-Berechnungsabschnitt 42 berechnet werden. Zu diesem Zweck kann der Korrekturabschnitt 43 das Programm des Roboters 11 auf Basis der oben beschriebenen Positionsinformationen korrigieren.
-
4 ist ein Flussdiagramm, das die Operationen des Roboter-Steuerabschnitts 31 und des Bildverarbeitungsabschnitts 32 im Robotersystem der vorliegenden Erfindung darstellt. Im Folgenden wird anhand der 3 und 4 ein Verfahren zum Bestimmen einer Position Q1' des Roboters im Moment der Bildaufnahme beschrieben.
-
In Schritt S1 speichert der Roboter-Steuerabschnitt 31 zuerst sequentiell in einem Roboterpositions-Aktualisierungszyklus die von dem Zeitgeber 35 erhaltenen Zeiten zusammen mit den Positionen des vorderen Armendes des Roboters 11, die den jeweiligen Zeiten im Speicherabschnitt 33 für die Roboterposition und für die Zeit entsprechen. Die Position des vorderen Armendes des Roboters 11 kann einfach als die „Roboterposition“ bezeichnet werden.
-
Wenn der Roboter 11 z. B. ein 6-Achsen-Vertikal-Knickarmroboter (Gelenkroboter) ist, können die Winkel (J1 bis J6) der Achsen des Roboters als die Roboterpositionsinformationen gespeichert werden. Im Folgenden werden zur Vereinfachung der Beschreibung die gespeicherte Zeit und Roboterposition als Tx bzw. Px = (Jx1 bis Jx6) angenommen. Der Roboterpositions-Aktualisierungszyklus kann entweder regelmäßig oder unregelmäßig sein.
-
In Schritt S2 prüft dann der Roboter-Steuerabschnitt 31, ob der Roboter 11 eine im Voraus in sein Operationsprogramm geschriebene Aufnahmeposition Q1 erreicht hat oder nicht. Wenn der Roboter 11 sie erreicht hat, geht der Prozess zu Schritt S3 weiter. Wenn der Roboter 11 sie noch nicht erreicht hat, wartet der Prozess eine vorgegebene Zeitspanne, kehrt dann zu Schritt S1 zurück und wiederholt sich, bis der Roboter 11 die Aufnahmeposition Q1 erreicht.
-
In der in 4 dargestellten Ausführungsform wird geprüft, ob der Roboter 11 die Aufnahmeposition Q1 erreicht hat oder nicht, indem die Position des Roboters 11 vom Roboter-Steuerabschnitt 31 überwacht wird. Ob der Roboter 11 die Aufnahmeposition Q1 erreicht hat oder nicht, kann jedoch auch bestimmt werden, indem die erforderliche Zeit ab dem Start des Betriebs des Roboter 11 bis der Roboter 11 die Aufnahmeposition Q1 erreicht hat, im Voraus gemessen und die erforderliche Zeit mit der abgelaufenen Zeit nach Beginn des Betriebs des Roboters 11 (von der Uhr 35 zu erhalten) verglichen wird. Wenn die oben beschriebene erforderliche Zeit nach Beginn des Betriebs des Roboters 11 abgelaufen ist, kann alternativ der Prozess automatisch zu Schritt S3 weitergehen.
-
In Schritt S3 gibt der Roboter-Steuerabschnitt 31 einen Bildverarbeitungs-Startbefehl an den Bildverarbeitungsabschnitt 32 aus. Wenn der Bildverarbeitungs-Startbefehl ausgegeben wird, beginnt der Bildverarbeitungsabschnitt 32 die Verarbeitung.
-
In Schritt S4 sendet der Bildverarbeitungsabschnitt 32 einen Aufnahmebefehl an die Kamera 13 und speichert die von dem Zeitgeber 35 erhaltene Zeit als Aufnahmezeit Ts im Bildaufnahmezeit-Speicherabschnitt 34. Nachdem die Beendigung der Aufnahme eines Bildes des Werkstücks 15 durch die Kamera 13 abgewartet wurde, wird in Schritt S5 das aufgenommene Bild zusammen mit der bereits in Schritt S4 gespeicherten Aufnahmezeit Ts im Bildaufnahmezeit-Speicherabschnitt 34 gespeichert.
-
In Schritt S6 führt dann der Bildverarbeitungsabschnitt 32 eine vorgegebene Bildverarbeitung des in Schritt S5 aufgenommenen Bildes aus, um das abgebildete Werkstück 15 zu erkennen und bestimmt dessen Erkennungsdaten und bestimmt ferner auf Basis der bestimmten Erkennungsdaten und der im Voraus bestimmten Kalibrierdaten die vorläufigen Positionsinformationen des Werkstücks.
-
Nach Beendigung von Schritt S3 geht der Roboter-Steuerabschnitt 31 zu Schritt S7 weiter. In Schritt S7 speichert der Roboter-Steuerabschnitt 31 im nächsten Roboterpositions-Aktualisierungszyklus auf ähnliche Weise eine neue Zeit zusammen mit einer neuen Roboterposition im Speicherabschnitt 33 für die Roboterposition und die Zeit. Zur Vereinfachung der Beschreibung werden die in Schritt S7 gespeicherte Zeit und Roboterposition als Ty bzw. Py = (Jy1 bis Jy6) angenommen.
-
In Schritt S8 prüft der Roboter-Steuerabschnitt 31 dann, ob die Aufnahmezeit im Bildaufnahmezeit-Speicherabschnitt 34 gespeichert ist oder nicht. Wenn die Aufnahmezeit gespeichert ist, geht der Prozess zu Schritt S9 weiter. Wenn die Aufnahmezeit noch nicht gespeichert ist, wartet der Prozess eine vorgegebene Zeitspanne und geht dann zu Schritt S7 zurück; der Prüfprozess wird wiederholt, bis die Aufnahmezeit gespeichert ist.
-
In Schritt S9 berechnet dann der Berechnungsabschnitt 41 für die Position des vorderen Armendes des Roboter-Steuerabschnitts 31 eine Roboterposition Q1' = (Js1 bis Js6) im Moment der Bildaufnahme auf Basis der im Bildaufnahmezeit-Speicherabschnitt 34 gespeicherten Aufnahmezeit Ts und der Kombination der im Speicherabschnitt 33 für die Roboterposition und die Zeit gespeicherten Roboterpositionen und Zeiten Tx, Px und Ty, Py. Es ist zu beachten, dass Tx vor Ts und Ty nach Ts liegt.
-
Der Berechnungsabschnitt
41 für die Position des vorderen Armendes berechnet die Roboterposition Q1' im Moment der Bildaufnahme nach der folgenden Gleichung (3) mittels z. B. linearer Interpolation.
-
Die Roboterposition Q1' = (Js1 bis Js6) im Moment der Bildaufnahme ist die Position jeder Achse. Durch Vorwärtstransformation kann jedoch eine orthogonale Position bestimmt werden.
-
Bei der ersten Ausführungsform wird die Roboterposition Q1' im Moment der Bildaufnahme durch lineare Interpolation der Position jeder Roboterachse berechnet. Die Roboterposition Q1' kann jedoch auch durch andere Techniken berechnet werden. So kann sie z. B. durch Extrapolation berechnet werden. Ferner kann, wie oben beschrieben, die Position jeder Achse des Roboters 11 entweder direkt interpoliert oder zuerst in die orthogonale Position umgewandelt und dann interpoliert werden. Wenn die lineare Interpolation verwendet wird, wie bei der ersten Ausführungsform, sind zwei Sätze der Roboterpositionen und der Zeiten ausreichend.
-
Die zu verwendende Interpolationsformel kann entsprechend den Eigenschaften des Steuersystems des Roboters 11 gewählt werden. Indem z. B. eine quadratische Interpolation angewendet wird, kann ein Näherungsfehler verkleinert werden, selbst wenn sich die Geschwindigkeit des Roboters 11 ändert. Bei Anwenden der quadratischen Interpolation sind jedoch drei Sätze der Roboterpositionen und Zeiten erforderlich. In diesem Fall können zwei Tx vor der Aufnahmezeit Ts und ein Ty nach der Aufnahmezeit Ts oder ein Tx vor der Aufnahmezeit Ts und zwei Ty nach der Aufnahmezeit Ts verwendet werden.
-
Wie oben beschrieben berechnet danach der Werkstückpositions-Berechnungsabschnitt 42 auf Basis der vom Berechnungsabschnitt 41 für die Position des vorderen Armendes berechneten Positionsinformationen und der vom Bildverarbeitungsabschnitt 32 wie oben beschrieben berechneten vorläufigen Positionsinformationen des Werkstücks 15 die Positionsinformationen des Werkstücks 15, das an einer bezüglich des Robers 11 fernen Position des Roboters 11 angeordnet ist.
-
2 ist ein Diagramm, das eine Gesamtkonfiguration eines Robotersystems einer zweiten Ausführungsform der vorliegenden Erfindung zeigt. In 2 ist die Kamera 13 an einer vorgegebenen Position zwischen zwei Tischen 16 und 17 fest angeordnet. Mit anderen Worten, die Kamera 13 ist an einer Position, die weit vom Roboter 11 entfernt ist, angeordnet. Bei der zweiten Ausführungsform setzt der Roboter 11 das Werkstück 15 von dem einen Tisch 16 zum anderen Tisch 17 um.
-
Da die Position des Werkstücks 15 auf dem Tisch 16 unbestimmt ist, wie oben beschrieben, kann der Roboter 11 das Werkstück 15 mit einer Abweichung greifen. Bei der zweiten Ausführungsform dient die Kamera 13 zum Messen der Greifabweichung, während das Werkstück 15 umgesetzt wird.
-
Wie durch den Pfeil X2 in 2 angedeutet, ist der Roboter 11 so programmiert, dass er das Werkstück 15 in der Betriebs-Startposition P1 auf dem Tisch 16 greift, über eine Bildaufnahmeposition Q1 zur Position P2 auf dem Tisch 17 bewegt und das Werkstück 15 auf dem Tisch 17 ablegt. Wie oben beschrieben, versucht das vom Roboter 11 gelernte Programm, ein Bild in der Aufnahmeposition Q1 aufzunehmen. Im Fall softwarebedingter Verzögerungen und dgl. wird das Bild jedoch in einer Bildaufnahmeposition Q1' aufgenommen, die etwas von der Bildaufnahmeposition Q1 abweicht.
-
Um bei der zweiten Ausführungsform die Greifabweichung des Werkstücks
15 der Hand
14 zu korrigieren, wird eine relative Position des Werkstücks
15 bezüglich des vorderen Armendes des Roboters
11 gemessen. Bei Annahme, dass eine Position des Werkstücks
15 in einem Weltkoordinatensystem, die gemessen wird, wenn sich der Roboter
11 in der Position Q1' befindet, W1' ist, berechnet der Werkstückpositions-Berechnungsabschnitt
42 die relative Position V1' des Werkstücks
15 bezüglich des vorderen Armendes des Roboters
11 gemäß der folgenden Gleichung (4).
-
Dann berechnet der Werkstückpositions-Berechnungsabschnitt
42 eine Position P2', in der das in der Position Q1' abgebildete Werkstück
15 freizugeben ist, bezüglich des Werkstücks
15, das gegriffen wird, wenn die Position P2 gelernt ist, wobei angenommen wird, dass die relative Position des Werkstücks
15 bezüglich des vorderen Armendes des Roboters
11 V1 ist, gemäß der folgenden Gleichung (5).
-
Bei den oben beschriebenen Ausführungsformen wird eine zweidimensionale Kamera 13 als der visuelle Sensor verwendet. Bei Verwenden eines dreidimensionalen Sensors kann jedoch eine dreidimensionale Position und Ausrichtung des Werkstücks 15 bestimmt werden. Der dreidimensionale Sensor oder eine den dreidimensionalen Sensor bildende Kamera kann entweder eine Farbkamera oder eine monochrome Kamera sein. Im Folgenden werden Ausführungsformen beschrieben, bei denen der dreidimensionale Sensor als der visuelle Sensor verwendet wird.
-
Bei einer Ausführungsform kann ein dreidimensionaler visueller Sensor eines Stereosystems mit einer einzelnen Kamera oder einer Mehrzahl Kameras 13 verwendet werden. 5 ist ein Diagramm, das die Gesamtkonfiguration eines Robotersystems bei einer Ausführungsform zeigt, bei der eine Stereomessung vorgenommen wird. Wenn die Technik zur Bestimmung der Roboterposition im Moment der Bildaufnahme während des Betriebs des Roboters 11 wie in 5 dargestellt angewendet wird, kann die Stereomessung auf Basis einer Mehrzahl Bilder des Werkstücks 15 erfolgen, die aus verschiedenen Positionen (Q1, ..., Qn) aufgenommen werden und erhalten werden, indem das Werkstück 15 während des Betriebs des Roboters 11 von einer einzelnen Kamera 13 nacheinander abgebildet wird. Wenn die Messung wie in 5 dargestellt ausgeführt wird, kann eine dreidimensionale Position des gegriffenen Werkstücks 15 bezüglich des vorderen Armendes des Roboters 11 bestimmt werden. Ferner kann - obwohl nicht dargestellt - bei der Konfiguration von 1 durch Ausführen der Stereomessung eine dreidimensionale Position des Werkstücks 15 bezüglich des Roboters 11 auf Basis einer Vielzahl Bilder des Werkstücks 15, die aus verschiedenen Positionen (Q1, ..., Qn) bestimmt werden.
-
6 ist ein Diagramm, das die Gesamtkonfiguration eines Robotersystems in einer Ausführungsform zeigt, die einen Laserstrahlteilungs-Projektor aufweist. In 6 wird ein dreidimensionaler visueller Sensor verwendet, der aus einer Kamera 13 und einem über einen Arm 18 an der Kamera 13 angebrachten Laserstrahlteilungs-Projektor bzw. Laserschlitz-Projektor 19 besteht. Dieser dreidimensionale visuelle Sensor kann eine dreidimensionale Position von Punkten, die mit einem Laser bestrahlt werden, und außerdem eine Position und Ausrichtung des Werkstücks mit einer geometrisch definierten Form messen. Der oben beschriebene dreidimensionale visuelle Sensor ist hinreichend bekannt und wird deshalb nicht im Einzelnen erörtert. Zur Durchführung der Messung mit diesem Sensor müssen sowohl typische Kamerabilder als auch Laserbilder erhalten werden. Wenn ferner eine Mehrzahl Bilder während des Roboterbetriebs erhalten werden, unterscheiden sich die Roboterpositionen, an denen die Bilder aufgenommen werden, voneinander und deshalb müssen diese Roboterpositionen bei der Berechnung berücksichtigt werden.
-
Dreidimensionale Positionen von durch einen Laser beleuchteten Punkten können nacheinander bestimmt und eine Vielzahl der erhaltenen dreidimensionalen Positionsinformationen in einer so genannten Tiefenabbildung integriert werden. Auf Basis der Tiefenabbildung kann dann eine dreidimensionale Form des Werkstücks 15 erhalten werden. Durch Anwenden dieser oben beschriebenen Technik werden auch in diesem Fall die dreidimensionalen Positionsinformationen anhand der Roboterposition im Moment der Bildaufnahme des vom Laser beleuchteten Punktes berechnet. Aus der so erhaltenen dreidimensionalen Form des Werkstücks 15 können eine dreidimensionale Position und Ausrichtung des Werkstücks 15 bestimmt werden.
-
7 ist ein Funktionsblockdiagramm eines Robotersystems in einer anderen Ausführungsform. In 7 sind hauptsächlich ein mit dem Roboter 11 verbundenes Roboter-Steuergerät 12a und ein mit der Kamera 13 (visueller Sensor) verbundener Bildprozessor 12b dargestellt. Wie aus 7 ersichtlich ist, weist das Roboter-Steuergerät 12a den Roboter-Steuerabschnitt 31, den Speicherabschnitt 33 für die Roboterposition und die Zeit und eine Uhr 35a auf, die miteinander verbunden sind.
-
In ähnlicher Weise weist ein Bildprozessor 12b den Bildverarbeitungsabschnitt 32, den Bildaufnahmezeit-Speicherabschnitt 34 und einen Zeitgeber 35b auf, die miteinander verbunden sind. Es sei darauf hingewiesen, dass diese Zeitgeber 35a und 35b miteinander synchronisiert arbeiten. Folglich sind die Zeiten, die vom Roboter-Steuergerät 12a und vom Bildprozessor 12b von dem Zeitgeber 35a bzw. 35b unabhängig erhalten werden, einander gleich.
-
Wie in der Figur dargestellt ist, sind das Roboter-Steuergerät 12a und der Bildprozessor 12b über eine Kommunikationsschnittstelle 36, wie z. B. ein drahtgebundenes LAN oder ein drahtloses LAN, miteinander verbunden. Dabei kann eine Verzögerung in einem Prozess der Kommunikationsschnittstelle 36 auftreten. Da jedoch der Bildaufnahmezeit-Speicherabschnitt 34 das Bild zusammen mit der Zeit speichern kann, können zwei oder mehr Zeitpunkte, die nahe der im Bildaufnahmezeit-Speicherabschnitt 34 gespeicherten Zeit liegen, aus dem Speicherabschnitt 33 für die Roboterposition und die Zeit abgerufen und auf Basis dieser Zeiten eine erforderliche Roboterposition bestimmt werden.
-
8 ist ein Funktionsblockdiagramm eines Robotersystems in einer weiteren Ausführungsform. In 8 sind hauptsächlich das mit dem Roboter 11 verbundene Roboter-Steuergerät 12 und die Kamera 13 mit dem Bildverarbeitungsabschnitt 32 dargestellt. Wie in 8 dargestellt weist das Roboter-Steuergerät 12 den Roboter-Steuerabschnitt 31, den Speicherabschnitt 33 für die Roboterposition und die Zeit und den Zeitgeber 35a auf, die miteinander verbunden sind.
-
Die Kamera 13 weist den Bildverarbeitungsabschnitt 32, den Bildaufnahmezeit-Speicherabschnitt 34 und den Zeitgeber 35b auf, die miteinander verbunden sind. Ähnlich wie bei der unmittelbar vorherigen Ausführungsform sind die Zeitgeber 35a und 35b miteinander synchronisiert und das Roboter-Steuergerät 12 sowie die Kamera 13 sind miteinander über die Kommunikationsschnittstelle 36 verbunden. Auch bei den in den 5 bis 8 dargestellten Ausführungsformen ist ersichtlich, dass ähnliche Wirkungen wie die oben beschriebenen erzielt werden können.
-
Wirkungen der Erfindung
-
Gemäß dem ersten Aspekt wird also die Werkstückposition anhand der Positionen des vorderen Armendes in Zeitpunkten vor und nach der Aufnahmezeit berechnet. Deshalb können die Positionsinformationen des Roboters in dem Moment, in dem der visuelle Sensor das Bild aufnimmt, mit einer höheren Genauigkeit als die Positionsinformationen des vorderen Armendes, die in regelmäßigen oder unregelmäßigen Zyklen erkannt werden, erhalten werden. Als Ergebnis kann die Position des Werkstücks mit einer höheren Genauigkeit als mit der herkömmlichen Technik berechnet werden. Dies ist besonders vorteilhaft, wenn der Roboter gemäß dem zweiten Aspekt arbeitet.
-
Ferner steuert das Roboter-Steuergerät die Servomotoren selbst dann, wenn der Roboter im Stillstand ist, und deshalb ändern sich Position und Ausrichtung des vorderen Armendes des Roboters geringfügig. Aus diesem Grund können die Positionsinformationen des Roboters genauer erhalten werden als mit der herkömmlichen Technik und die Genauigkeit der Messung der Werkstückposition durch den visuellen Sensor kann verbessert werden, auch wenn der visuelle Sensor die Bilder des Werkstücks, während der Roboter im Stillstand ist, aufnimmt.
-
Außerdem können im ersten Aspekt die Roboterpositionsinformationen im Moment der Bildaufnahme erhalten werden, ohne dass eine spezielle Ansteuersignalleitung oder ein Ansteuerungs-Eingangs-/Ausgangsabschnitt erforderlich ist. Somit fallen keine Kosten für die zusätzliche spezielle Ansteuersignalleitung oder den Ansteuerungs-Eingangs-/Ausgangsabschnitt an und es besteht kein Ausfallrisiko dieser Elemente. Ferner wird dem Nutzer ein komfortabel zu bedienendes System bereitgestellt.
-
Gemäß dem dritten Aspekt kann sich der Roboter in eine bessere Zielposition entsprechend der vom visuellen Sensor erkannten Werkstückposition bewegen.
-
Gemäß dem vierten Aspekt kann aufgrund der Stereomessung die dreidimensionale Position des vom Roboter gegriffenen Werkstücks bezüglich des vorderen Armendes eines solchen Roboters oder die dreidimensionale Position des Werkstücks, das an einer bezüglich eines solchen Roboters roboterfernen Position angeordnet ist, genauer bestimmt werden.
-
Gemäß dem fünften Aspekt kann die dreidimensionale Form oder/und die dreidimensionale Position des Werkstücks mittels der Tiefenabbildung genauer bestimmt werden.
-
Obwohl die Erfindung anhand von Ausführungsbeispielen dargestellt und beschrieben worden ist, versteht es sich für den Fachmann, dass die obigen und verschiedene andere Änderungen, Weglassungen und Hinzufügungen daran vorgenommen werden können, ohne von Grundgedanken und Anwendungsbereich der vorliegenden Erfindung abzuweichen.