DE102015001527A1 - Robotersystem, das visuelle Rückmeldung verwendet - Google Patents

Robotersystem, das visuelle Rückmeldung verwendet Download PDF

Info

Publication number
DE102015001527A1
DE102015001527A1 DE102015001527.3A DE102015001527A DE102015001527A1 DE 102015001527 A1 DE102015001527 A1 DE 102015001527A1 DE 102015001527 A DE102015001527 A DE 102015001527A DE 102015001527 A1 DE102015001527 A1 DE 102015001527A1
Authority
DE
Germany
Prior art keywords
robot
arm end
camera
movement
coordinate system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102015001527.3A
Other languages
English (en)
Other versions
DE102015001527B4 (de
Inventor
Keisuke Watanabe
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Original Assignee
Fanuc Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fanuc Corp filed Critical Fanuc Corp
Publication of DE102015001527A1 publication Critical patent/DE102015001527A1/de
Application granted granted Critical
Publication of DE102015001527B4 publication Critical patent/DE102015001527B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/1607Calculation of inertia, jacobian matrixes and inverses
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/408Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by data handling or data format, e.g. reading, buffering or conversion of data
    • G05B19/4083Adapting programme, configuration
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39397Map image error directly to robot movement, position with relation to world, base not needed, image based visual servoing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40003Move end effector so that image center is shifted to desired position
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/02Arm motion controller
    • Y10S901/09Closed loop, sensor feedback controls arm movement

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

Das Robotersystem umfasst: einen Roboter, um an einem an einer ersten Gegenstandsposition abgesetzten Gegenstand vorbestimmte Arbeitsvorgänge auszuführen; eine erste Roboterpositionsspeichereinheit, die dazu ausgebildet ist, als erste Roboterposition die Position eines Armendes zu speichern, das in einer vorbestimmten Positionsbeziehung relativ zur ersten Gegenstandsposition angeordnet ist; eine Solleingangszustandsdatenspeicher, der dazu ausgebildet ist, Merkmalsgrößen des Gegenstands auf dem Bild der Kamera zu speichern; einen Roboterbewegungsbetragsrechner, der dazu ausgebildet ist, den Betrag der Bewegung zu berechnen, um die Merkmalsgrößen des Gegenstands an einer zweiten Gegenstandsposition mit den entsprechenden Merkmalsgrößen der Solleingangszustandsdaten übereinstimmen zu lassen; und einen Korrekturdatenrechner, der dazu ausgebildet ist, die Korrekturdaten basierend auf der Differenz zwischen der zweiten Roboterposition, wenn das Armende basierend auf dem Bewegungsbetrag bewegt wurde, und der ersten Roboterposition zu berechnen.

Description

  • 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 (u0, v0, s0) angenommen werden und die bei Schritt S202 erhaltenen Merkmalsgrößen als (u1, v1, s1) angenommen werden, können die Differenzen der Merkmalsgrößen durch die folgenden Gleichungen angegeben werden:
    Figure DE102015001527A1_0002
  • 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:
    Figure DE102015001527A1_0003
  • 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:
    Figure DE102015001527A1_0004
    Figure DE102015001527A1_0005
  • Werden diese in Gleichung (1) eingesetzt, kann die Jacobi-Matrix wie folgt erhalten werden:
    Figure DE102015001527A1_0006
  • 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.
  • Figure DE102015001527A1_0007
  • Hieraus wird der Normalenvektor n durch das Verfahren der kleinsten Quadrate bestimmt.
  • Wenn
    Figure DE102015001527A1_0008
    dann kann die folgende Gleichung abgeleitet werden.
  • Figure DE102015001527A1_0009
  • 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, Vx und Vy werden durch die folgenden Ausdrücke gegeben:
    Figure DE102015001527A1_0010
    wobei k durch den folgenden Ausdruck gegeben wird:
    Figure DE102015001527A1_0011
  • 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 R1 positioniert ist, dann wird, wenn der Koordinatenursprung durch (x0, y0, z0) bezeichnet wird, die Position und die Lage Tb des Werkzeugkoordinatensystems Σt, aus der Sicht des Roboterkoordinatensystems Σb gesehen, durch den folgenden Ausdruck gegeben:
    Figure DE102015001527A1_0012
  • 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.
  • Figure DE102015001527A1_0013
  • 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.
  • Figure DE102015001527A1_0014
  • 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:
    Figure DE102015001527A1_0015
  • Somit kann die folgende Gleichung erhalten werden.
  • Figure DE102015001527A1_0016
  • 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 (u1, v1) auf dem Bild der Kamera 3 an zwei im Winkel zueinander unterschiedlichen Roboterpositionen erscheint, gilt die folgende Gleichung: P = R(ϕ)·P + Δt (2) wobei
    Figure DE102015001527A1_0017
  • Durch Erweitern der Gleichung (2) kann die folgende Gleichung erhalten werden:
    Figure DE102015001527A1_0018
  • Wird die obenstehende Gleichung nach P aufgelöst, kann die folgende Lösung erhalten werden:
    Figure DE102015001527A1_0019
  • 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]

Claims (6)

  1. Robotersystem, Folgendes umfassend: 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 abgesetzt ist, mittels einer an einem Armende des Roboters befestigten Vorrichtung vorbestimmte Arbeitsvorgänge auszuführen; eine Kamera (3), die an dem Armende befestigt ist, um Bilder des Gegenstands aufzunehmen; eine erste Roboterpositionsspeichereinheit (12a), die dazu ausgebildet ist, als erste Roboterposition die Position des Armendes zu speichern, das in einer vorbestimmten Positionsbeziehung relativ zur ersten Gegenstandsposition angeordnet ist; eine Solleingangszustandsdaten-Speichereinheit (12b), die dazu ausgebildet ist, als Solleingangszustandsdaten mindestens eine Merkmalsgröße aus Position, Lage und Größe des Gegenstands auf dem Bild der Kamera in einem Solleingangszustand zu speichern, in dem der Gegenstand an der ersten Gegenstandsposition abgesetzt ist, während das Armende an der ersten Roboterposition positioniert ist; einen Roboterbewegungsbetragsrechner (11b), der dazu ausgebildet ist, den Betrag der Bewegung von einer beliebigen Ausgangsposition des Armendes zu berechnen, 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 dazu ausgebildet ist, die Korrekturdaten zu berechnen, um das Programm basierend auf der Differenz 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.
  2. Robotersystem nach Anspruch 1, wobei, wenn die Differenz zwischen mindestens einer Merkmalsgröße aus Position, Lage und Größe des an der zweiten Gegenstandsposition abgesetzten Gegenstands (4) auf dem durch die Kamera (3) bei an der zweiten Roboterposition positioniertem Armende des Roboters (1) aufgenommenen Bild und der entsprechenden Merkmalsgröße der in der Solleingangszustandsdaten-Speichereinheit (12b) gespeicherten Solleingangszustandsdaten größer als ein vorbestimmter Wert ist, der Roboterbewegungsbetragsrechner (11b) den Betrag der Bewegung unter Berücksichtigung der zweiten Roboterposition als eine korrigierte Ausgangsposition berechnet, und die Position des Armendes, nachdem der Arm basierend auf dem berechneten Betrag der Bewegung bewegt wurde, als eine korrigierte zweite Roboterposition festgelegt wird.
  3. Robotersystem nach Anspruch 1, wobei bei dem an der zweiten Roboterposition positionierten Armende des Roboters, der Roboterbewegungsbetragsrechner (11b) den Betrag der Bewegung unter Berücksichtigung der zweiten Roboterposition als eine korrigierte Ausgangsposition berechnet, 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.
  4. Robotersystem nach Anspruch 1, ferner umfassend: unter der Bedingung, dass mehrere, mindestens drei, voneinander unterschiedliche zweite Gegenstandspositionen bereitgestellt werden, eine zweite Roboterpositionsspeichereinheit, die dazu ausgebildet ist, mehrere zweite Roboterpositionen zu speichern, die jeweils entsprechend durch Absetzen des Gegenstands an einer der zweiten Gegenstandspositionen erhalten werden; und einen Normalenvektorrechner, der dazu ausgebildet ist, einen Normalenvektor auf die Ebene, auf der der Gegenstand abgesetzt ist, basierend auf den in der zweiten Roboterpositionsspeichereinheit gespeicherten Roboterpositionen zu berechnen, wobei der Roboterbewegungsbetragsrechner (11b) nur die Translationsbewegung innerhalb einer zum Normalenvektor rechtwinkligen Ebene und die Drehbewegung um die zum Normalenvektor parallelen Achse als den Betrag der Bewegung berechnet.
  5. Robotersystem nach Anspruch 4, wobei eine der voneinander unterschiedlichen zweiten Gegenstandspositionen identisch mit der ersten Gegenstandsposition ist und eine der zweiten Roboterpositionen die erste Roboterposition ist.
  6. Robotersystem nach Anspruch 4 oder 5, wobei der Roboterbewegungsbetragsrechner (11b) 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, definiert, und die Drehbewegung ausgeführt wird, indem die definierte relative Gerade zu dem Armende als die Drehachse verwendet wird.
DE102015001527.3A 2014-02-13 2015-02-06 Robotersystem, das visuelle Rückmeldung verwendet Active DE102015001527B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014-025600 2014-02-13
JP2014025600A JP5850962B2 (ja) 2014-02-13 2014-02-13 ビジュアルフィードバックを利用したロボットシステム

Publications (2)

Publication Number Publication Date
DE102015001527A1 true DE102015001527A1 (de) 2015-08-13
DE102015001527B4 DE102015001527B4 (de) 2019-02-28

Family

ID=53676954

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015001527.3A Active DE102015001527B4 (de) 2014-02-13 2015-02-06 Robotersystem, das visuelle Rückmeldung verwendet

Country Status (4)

Country Link
US (1) US9517563B2 (de)
JP (1) JP5850962B2 (de)
CN (1) CN104842352B (de)
DE (1) DE102015001527B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3345729A4 (de) * 2015-09-03 2019-07-03 FUJI Corporation Robotersystem

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9259838B1 (en) * 2014-07-24 2016-02-16 Google Inc. Systems and methods for ground plane estimation
JP6698268B2 (ja) * 2014-10-14 2020-05-27 蛇の目ミシン工業株式会社 ロボット
US10179407B2 (en) * 2014-11-16 2019-01-15 Robologics Ltd. Dynamic multi-sensor and multi-robot interface system
JP6294248B2 (ja) * 2015-01-28 2018-03-14 ファナック株式会社 ロボットを用いたキサゲ加工装置及びキサゲ加工方法
JP2016221645A (ja) * 2015-06-02 2016-12-28 セイコーエプソン株式会社 ロボット、ロボット制御装置およびロボットシステム
DE202015105595U1 (de) * 2015-10-21 2016-01-14 Fft Produktionssysteme Gmbh & Co. Kg Absolutes robotergestütztes Positionsverfahren
WO2017133756A1 (en) * 2016-02-02 2017-08-10 Abb Schweiz Ag Robot system calibration
JP6430986B2 (ja) 2016-03-25 2018-11-28 ファナック株式会社 ロボットを用いた位置決め装置
JP6854610B2 (ja) * 2016-09-16 2021-04-07 Juki株式会社 縫製システム
US10354371B2 (en) * 2016-10-06 2019-07-16 General Electric Company System, method and apparatus for locating the position of a component for use in a manufacturing operation
TWI614103B (zh) * 2016-10-21 2018-02-11 和碩聯合科技股份有限公司 機械手臂定位方法及應用其的系統
CN108000499B (zh) * 2016-10-27 2020-07-31 达明机器人股份有限公司 机器人视觉坐标的编程方法
EP3366433B1 (de) * 2017-02-09 2022-03-09 Canon Kabushiki Kaisha Verfahren zur steuerung eines roboters, verfahren zum lehren eines roboters und robotersystem
JP6860843B2 (ja) * 2017-02-20 2021-04-21 株式会社安川電機 ロボットシステム、ロボット制御装置、及びロボット制御方法
EP3379354A1 (de) * 2017-03-20 2018-09-26 Klingelnberg AG Verfahren und vorrichtung zur automatisierten bearbeitung von zahnrad-bauteilen
JP6680720B2 (ja) * 2017-04-10 2020-04-15 ファナック株式会社 ロボットの動作軌跡を自動で生成する装置、システム、および方法
US10766145B2 (en) * 2017-04-14 2020-09-08 Brown University Eye in-hand robot
JP6815924B2 (ja) * 2017-04-19 2021-01-20 トヨタ自動車株式会社 キャリブレーション装置
WO2018217431A1 (en) * 2017-05-25 2018-11-29 Covidien Lp Robotic surgical system with automated guidance
JP6795471B2 (ja) * 2017-08-25 2020-12-02 ファナック株式会社 ロボットシステム
US11584016B2 (en) 2018-04-24 2023-02-21 Fanuc Corporation Robot controller and system
WO2019234814A1 (ja) * 2018-06-05 2019-12-12 株式会社日立製作所 カメラ位置姿勢校正装置、カメラ位置姿勢校正方法並びにロボット
EP3581341B1 (de) * 2018-06-13 2020-12-23 Siemens Healthcare GmbH Verfahren zum betreiben eines roboters, datenspeicher mit einem entsprechenden programmcode, roboter und robotersystem
JP6767436B2 (ja) * 2018-07-06 2020-10-14 ファナック株式会社 自動機械及び制御装置
JP6939729B2 (ja) * 2018-07-23 2021-09-22 オムロン株式会社 制御システム、制御方法およびプログラム
JP7115096B2 (ja) * 2018-07-23 2022-08-09 オムロン株式会社 制御システム、制御方法およびプログラム
JP6904315B2 (ja) * 2018-07-31 2021-07-14 オムロン株式会社 情報処理装置、制御システム、情報処理方法およびプログラム
JP7065721B2 (ja) * 2018-07-31 2022-05-12 川崎重工業株式会社 ロボットシステム
US11636382B1 (en) * 2018-08-10 2023-04-25 Textron Innovations, Inc. Robotic self programming visual inspection
US11833681B2 (en) 2018-08-24 2023-12-05 Nvidia Corporation Robotic control system
DE102019122790B4 (de) * 2018-08-24 2021-03-25 Nvidia Corp. Robotersteuerungssystem
US11396101B2 (en) 2018-11-08 2022-07-26 Kabushiki Kaisha Toshiba Operating system, control device, and computer program product
US11911914B2 (en) 2019-01-28 2024-02-27 Cognex Corporation System and method for automatic hand-eye calibration of vision system for robot motion
JP7306871B2 (ja) * 2019-05-14 2023-07-11 ファナック株式会社 ロボット操作装置、ロボット、ロボット操作方法、プログラムおよびロボット制御装置
JP7290537B2 (ja) * 2019-10-09 2023-06-13 川崎重工業株式会社 補正システム、補正方法、ロボットシステム及び制御装置
JP7409852B2 (ja) 2019-12-10 2024-01-09 ファナック株式会社 ロボット制御装置
CN113001535B (zh) * 2019-12-18 2022-11-15 财团法人工业技术研究院 机器人工件坐标系自动校正系统与方法
CN112932669B (zh) * 2021-01-18 2024-03-15 广州市微眸医疗器械有限公司 一种执行视网膜层防渗漏隧道的机械臂控制方法
CN112894815B (zh) * 2021-01-25 2022-09-27 西安工业大学 视觉伺服机械臂物品抓取最佳位姿检测方法
JP2022115328A (ja) * 2021-01-28 2022-08-09 セイコーエプソン株式会社 ロボットシステムの制御方法およびロボットシステム
JP2022125537A (ja) * 2021-02-17 2022-08-29 セイコーエプソン株式会社 校正方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1049218A (ja) 1996-08-07 1998-02-20 Fanuc Ltd ロボットの位置教示のための移動制御方式
JP2003211381A (ja) 2002-01-16 2003-07-29 Denso Wave Inc ロボット制御装置
JP4265088B2 (ja) 2000-07-10 2009-05-20 株式会社豊田中央研究所 ロボット装置及びその制御方法
JP2010076054A (ja) 2008-09-26 2010-04-08 Ihi Corp ロボット装置及びロボット装置の制御方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5319443A (en) 1991-03-07 1994-06-07 Fanuc Ltd Detected position correcting method
US6256560B1 (en) 1999-02-25 2001-07-03 Samsung Electronics Co., Ltd. Method for correcting position of automated-guided vehicle and apparatus therefor
SE524818C2 (sv) * 2003-02-13 2004-10-05 Abb Ab En metod och ett system för att programmera en industrirobot att förflytta sig relativt definierade positioner på ett objekt
JP2005138223A (ja) 2003-11-06 2005-06-02 Fanuc Ltd ロボット用位置データ修正装置
JP3733364B2 (ja) 2003-11-18 2006-01-11 ファナック株式会社 教示位置修正方法
US7831337B2 (en) * 2004-09-23 2010-11-09 Michael Greenspan Method and apparatus for positional error correction in a robotic pool systems using a cue-aligned local camera
JP4266946B2 (ja) 2005-03-17 2009-05-27 ファナック株式会社 オフライン教示装置
JP3946753B2 (ja) 2005-07-25 2007-07-18 ファナック株式会社 ロボットプログラム評価・修正方法及びロボットプログラム評価・修正装置
JP4221014B2 (ja) * 2006-06-20 2009-02-12 ファナック株式会社 ロボット制御装置
JP2008132525A (ja) * 2006-11-29 2008-06-12 Nachi Fujikoshi Corp 溶接ロボット教示位置補正システム及び溶接ロボット教示位置補正方法
JP4347386B2 (ja) * 2008-01-23 2009-10-21 ファナック株式会社 加工用ロボットプラグラムの作成装置
JP5324397B2 (ja) * 2009-11-02 2013-10-23 本田技研工業株式会社 情報処理方法及び装置並びにプログラム
JP5517664B2 (ja) 2010-02-17 2014-06-11 株式会社神戸製鋼所 作業マニピュレータのセンシング動作生成方法、センシング動作生成装置及びセンシング動作生成プログラム
JP5561260B2 (ja) * 2011-09-15 2014-07-30 株式会社安川電機 ロボットシステム及び撮像方法
JP2014180720A (ja) * 2013-03-19 2014-09-29 Yaskawa Electric Corp ロボットシステム及びキャリブレーション方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1049218A (ja) 1996-08-07 1998-02-20 Fanuc Ltd ロボットの位置教示のための移動制御方式
JP4265088B2 (ja) 2000-07-10 2009-05-20 株式会社豊田中央研究所 ロボット装置及びその制御方法
JP2003211381A (ja) 2002-01-16 2003-07-29 Denso Wave Inc ロボット制御装置
JP2010076054A (ja) 2008-09-26 2010-04-08 Ihi Corp ロボット装置及びロボット装置の制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3345729A4 (de) * 2015-09-03 2019-07-03 FUJI Corporation Robotersystem

Also Published As

Publication number Publication date
DE102015001527B4 (de) 2019-02-28
US9517563B2 (en) 2016-12-13
CN104842352A (zh) 2015-08-19
CN104842352B (zh) 2017-04-12
JP5850962B2 (ja) 2016-02-03
US20150224649A1 (en) 2015-08-13
JP2015150636A (ja) 2015-08-24

Similar Documents

Publication Publication Date Title
DE102015001527B4 (de) Robotersystem, das visuelle Rückmeldung verwendet
DE102010032840B4 (de) Vorrichtung und Verfahren zum Messen der Position eines Werkzeugmittelpunktes eines Roboters
DE102016116702B4 (de) Messsystem zum Kalibrieren der mechanischen Parameter eines Roboters
DE69103871T2 (de) Eichsystem für einen optischen sensor.
DE102013021917B4 (de) Robotersystemanzeigevorrichtung
DE102013014873B4 (de) Aufnahmevorrichtung, die die Halteposition und -orientierung eines Roboters auf der Grundlage einer Auswahlbedingung bestimmt
DE102014102943B4 (de) Robotersystem mit Funktionalität zur Ortsbestimmung einer 3D- Kiste
DE69223127T2 (de) Automatische kalibriereinrichtung
DE102017002608A1 (de) Positioniersystem unter Verwendung eines Roboters
DE102015000587B4 (de) Roboterprogrammiervorrichtung zum Erstellen eines Roboterprogramms zum Aufnehmen eines Bilds eines Werkstücks
DE102018213985A1 (de) Robotersystem
DE112016002797T5 (de) Kalibriervorrichtung und robotersystem, das eine solche verwendet
DE102017128543A1 (de) Störbereich-einstellvorrichtung für einen mobilen roboter
DE102017222057B4 (de) Robotersystem
EP1604789A2 (de) Verfahren und Vorrichtung zum Verbessern der Positioniergenauigkeit eines Handhabungsgeräts
DE102016122678A1 (de) Werkstückpositions-/-Stellungsberechnungssystem und Handhabungssystem
DE102014117346B4 (de) Roboter, Robotersteuerungsverfahren und Robotersteuerungsprogramm zur Werkstückkorrektur
DE102015000589A1 (de) Datenerzeugungsvorrichtung für einen visuellen Sensor und ein Erfassungssimulationssystem
DE102015104582A1 (de) Verfahren zum Kalibrieren eines Roboters an einem Arbeitsbereich und System zum Durchführen des Verfahrens
DE102021103726B4 (de) Messparameter-Optimierungsverfahren und -vorrichtung sowie Computersteuerprogramm
DE102020124356A1 (de) Steuerung einer Robotervorrichtung zum Einstellen der Position eines vom Roboter gestützten Gegenstandes
DE112021004779T5 (de) Vorrichtung zum Einstellen eines Parameters, Robotersystem, Verfahren und Computerprogramm
DE102015104587B4 (de) Verfahren zum Kalibrieren eines Roboters an einem Arbeitsbereich und System zum Durchführen des Verfahrens
DE112021002301T5 (de) Vorrichtung zum erhalten einer position eines visuellen sensors im steuerkoordinatensystem eines roboters, robotersystem, verfahren und computerprogramms
DE102019006748A1 (de) Roboterlehrvorrichtung, roboterlehrverfahren und verfahren zumspeichern einer betriebsanweisung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final