DE102017127995A1 - Robotersteuervorrichtung zum Steuern eines Roboters und Verfahren zum Schätzen eines auf den Roboter ausgeübten Störwerts - Google Patents

Robotersteuervorrichtung zum Steuern eines Roboters und Verfahren zum Schätzen eines auf den Roboter ausgeübten Störwerts Download PDF

Info

Publication number
DE102017127995A1
DE102017127995A1 DE102017127995.4A DE102017127995A DE102017127995A1 DE 102017127995 A1 DE102017127995 A1 DE 102017127995A1 DE 102017127995 A DE102017127995 A DE 102017127995A DE 102017127995 A1 DE102017127995 A1 DE 102017127995A1
Authority
DE
Germany
Prior art keywords
robot
workpiece
force
disturbance
cpu
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
DE102017127995.4A
Other languages
English (en)
Other versions
DE102017127995B4 (de
Inventor
Kenichiro Oguri
Soichi Arita
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 DE102017127995A1 publication Critical patent/DE102017127995A1/de
Application granted granted Critical
Publication of DE102017127995B4 publication Critical patent/DE102017127995B4/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/1628Programme controls characterised by the control loop
    • B25J9/1638Programme controls characterised by the control loop compensation for arm bending/inertia, pay load weight/inertia
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/085Force or torque sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/06Safety devices
    • B25J19/063Safety devices working only upon contact with an outside object
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
    • 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
    • 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
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16PSAFETY DEVICES IN GENERAL; SAFETY DEVICES FOR PRESSES
    • F16P3/00Safety devices acting in conjunction with the control or operation of a machine; Control arrangements requiring the simultaneous use of two or more parts of the body
    • F16P3/008Devices for directly stopping or interrupting the drive or gear in case of danger to the machine, e.g. devices with clutches
    • 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/37Measurements
    • G05B2219/37537Virtual sensor
    • 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/39326Model compensates positions as function of position to compensate force deformations

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manipulator (AREA)

Abstract

Es handelt sich um eine Robotersteuervorrichtung, die in der Lage ist, eine externe Kraft, die auf eine sich zeitabhängig verändernde Weise von einem Werkstück auf einen Roboter ausgeübt wird, genau zu schätzen. Die Robotersteuervorrichtung weist einen Stützkraftdatenerlangungsabschnitt, der Messdaten einer Werkstückstützkraft durch die Umgebung erlangt, wobei sich die Werkstückstützkraft verändert, während der Roboter das Werkstück anhebt; einen Störungsschätzabschnitt, der unter Verwendung einer Zustandsinformation des Roboters einen auf den Roboter ausgeübten Störwert schätzt; und einen Korrekturabschnitt, der den durch den Störungsschätzabschnitt geschätzten Störwert oder die in den Störungsschätzabschnitt eingegebene Zustandsinformation unter Verwendung der durch den Stützkraftdatenerlangungsabschnitt erlangten Messdaten korrigiert, auf.

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Gebiet der Erfindung
  • Die Erfindung betrifft eine Robotersteuervorrichtung zum Steuern eines Roboters und ein Verfahren zum Schätzen eines auf den Roboter ausgeübten Störwerts.
  • Beschreibung der verwandten Technik
  • Eine Technik, um eine auf einen Roboter ausgeübte externe Kraft zu schätzen, ist bekannt (z.B. die Japanische Patentoffenlegungsschrift (Kokai) Nr. 2002-355782).
  • Wenn ein Werkstück von einem Roboter angehoben wird, ändert sich während des Prozesses von einem Zustand, in dem das Werkstück mit einer oberen Fläche einer Spannvorrichtung in Kontakt steht, bis zu einem Zustand, in dem das Werkstück von der oberen Fläche getrennt wird, eine externe Kraft, die von dem Werkstück auf den Roboter ausgeübt wird, zeitabhängig. Daher wird eine Technik zum genauen Schätzen der externen Kraft, die von dem Werkstück auf den Roboter ausgeübt wird und sich zeitabhängig ändert, gewünscht.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Nach einem Gesichtspunkt der Erfindung weist eine Robotersteuervorrichtung, die dazu ausgebildet ist, einen Roboter, der ein durch eine Umgebung getragenes Werkstück anhebt, zu steuern, einen Stützkraftdatenerlangungsabschnitt, der dazu ausgebildet ist, Messdaten einer Werkstückstützkraft durch die Umgebung zu erlangen, die sich während des Anhebens des Werkstücks durch den Roboter verändert; und einen Störungsschätzabschnitt, der dazu ausgebildet ist, unter Verwendung einer Zustandsinformation des Roboters einen auf den Roboter ausgeübten Störwert zu schätzen, auf.
  • Die Robotersteuervorrichtung weist einen Korrekturabschnitt auf, der dazu ausgebildet ist, den Störwert, der durch den Störungsschätzabschnitt geschätzt wird, oder die in den Störungsschätzabschnitt eingegebene Zustandsinformation unter Verwendung der Messdaten zu korrigieren, die durch den Stützkraftdatenerlangungsabschnitt erlangt werden.
  • Der Korrekturabschnitt kann dazu ausgebildet sein, eine sich verändernde Werkstücklast zu erhalten, indem die Messdaten von einer auf das Werkstück ausgeübten Gravitationskraft subtrahiert werden, und den Störwert zu korrigieren, indem die sich verändernde Werkstücklast von dem Störwert subtrahiert wird.
  • Der Störungsschätzabschnitt kann den Störwert unter Verwendung von Messdaten eines Kraftsensors als Zustandsinformation schätzen, der dazu ausgebildet ist, eine auf den Roboter ausgeübte Kraft zu messen. Der Korrekturabschnitt kann dazu ausgebildet sein, eine Komponente der durch die sich verändernde Werkstücklast auf den Roboter ausgeübten Kraft zu erhalten, die in den Messdaten des Kraftsensors enthalten ist, und den Störwert durch Subtrahieren der Komponente von dem Störwert zu korrigieren.
  • Der Korrekturabschnitt kann dazu ausgebildet sein, eine sich verändernde Werkstücklast zu erhalten, indem die Messdaten von einer auf das Werkstück ausgeübten Gravitationskraft subtrahiert werden, und die Zustandsinformation auf Basis einer Zustandsveränderung aufgrund der sich verändernden Werkstücklast zu korrigieren. Der Störungsschätzabschnitt kann den Störwert unter Verwendung der durch den Korrekturabschnitt korrigierten Zustandsinformation schätzen.
  • Der Roboter kann eine Roboterhand aufweisen, die in der Lage ist, das Werkstück zu ergreifen. Der Korrekturabschnitt kann die Zustandsinformation korrigieren, indem eine Komponente aufgrund der sich verändernden Werkstücklast von Messdaten eines Kraftsensors (92) subtrahiert wird, der dazu ausgebildet ist, eine auf die Roboterhand ausgeübte Kraft als Zustandsinformation zu messen.
  • Die Robotersteuervorrichtung kann ferner einen Folgebefehlsabschnitt aufweisen, der dazu ausgebildet ist, einen Befehl zum Betreiben des Roboters gemäß dem Störwert zu erzeugen, wenn der durch den Störungsschätzabschnitt geschätzte Störwert einen vorherbestimmten Schwellenwert übersteigt.
  • Die Robotersteuervorrichtung kann ferner einen Betriebsbefehlsabschnitt aufweisen, der dazu ausgebildet ist, einen Befehl zum Anhalten oder Zurückziehen des Roboters zu erzeugen, wenn der Störwert, der durch den Korrekturabschnitt korrigiert wurde oder durch den Störungsschätzabschnitt unter Verwendung der Zustandsinformation geschätzt wurde, die durch den Korrekturabschnitt korrigiert wurde, einen vorherbestimmten Schwellenwert übersteigt.
  • Nach einem anderen Gesichtspunkt der Erfindung weist ein Verfahren zum Schätzen eines Störwerts, der auf einen Roboter, welcher ein durch eine Umgebung getragenes Werkstück anhebt, ausgeübt wird, das Erlangen von Messdaten einer Werkstückstützkraft, die sich während des Anhebens des Werkstücks durch den Roboter verändert; das Schätzen eines auf den Roboter ausgeübten Störwerts unter Verwendung einer Zustandsinformation des Roboters; und das Korrigieren des geschätzten Störwerts oder der Zustandsinformation unter Verwendung der erlangten Messdaten auf.
  • Figurenliste
    • 1 ist ein Diagramm eines Robotersystems nach einer Ausführungsform;
    • 2 ist ein Blockdiagramm des in 1 dargestellten Robotersystems;
    • 3 ist ein Ablaufdiagramm, das ein Beispiel für einen Betriebsablauf des in 1 dargestellten Robotersystems veranschaulicht;
    • 4 ist ein Ablaufdiagramm, das ein anderes Beispiel für den Betriebsablauf des in 1 dargestellten Robotersystems veranschaulicht;
    • 5 ist ein Diagramm eines Robotersystems nach einer anderen Ausführungsform;
    • 6 ist ein Blockdiagramm des in 5 dargestellten Robotersystems;
    • 7 ist ein Diagramm eines Robotersystems nach noch einer anderen Ausführungsform;
    • 8 ist ein Blockdiagramm des in 7 dargestellten Robotersystems;
    • 9 ist ein Ablaufdiagramm, das ein Beispiel für einen Betriebsablauf des in 7 dargestellten Robotersystems veranschaulicht; und
    • 10 ist ein Diagramm eines Robotersystems nach noch einer anderen Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Nachstehend werden Ausführungsformen der Erfindung unter Bezugnahme auf die Zeichnungen ausführlich beschrieben werden. Es ist zu beachten, dass bei den verschiedenen Ausführungsformen, die nachstehend beschrieben werden, gleichen Elemente die gleichen Bezugszeichen zugewiesen sind und auf ihre ausführliche Beschreibung verzichtet werden wird. Zunächst wird unter Bezugnahme auf 1 und 2 ein Robotersystem 10 nach einer Ausführungsform beschrieben werden.
  • Das Robotersystem 10 ist ein System, um ein Werkstück W, das auf einer Umgebung 40 angeordnet ist, anzuheben und zu transportieren. Bei dieser Ausführungsform ist das Werkstück W ein langes biegsames röhrenförmiges Element
  • Das Robotersystem 10 weist einen Roboter 12, einen Kraftsensor 14 und eine Robotersteuervorrichtung 50 auf. Der Roboter 12 ist ein vertikaler Knickarmroboter und weist eine Roboterbasis 18, einen Drehrumpf 20, einen Roboterarm 22, ein Handgelenk 24 und eine Roboterhand 26 auf. Die Roboterbasis 18 ist an einem Boden A einer Arbeitszelle fixiert.
  • Der Drehrumpf 20 ist so an der Roboterbasis 18 vorgesehen, dass er um eine senkrechte Achse drehbar ist. Der Roboterarm 22 weist einen Oberarm 28, der drehbar an dem Drehrumpf 20 angebracht ist, und einen Vorderarm 30, der drehbar an einem distalen Ende des Oberarms 28 angebracht ist, auf. Das Handgelenk 24 ist an einem distalen Ende des Vorderarms 30 bereitgestellt und hält die Roboterhand 26 so, dass diese um drei Achsen drehbar ist.
  • Die Roboterhand 26 weist eine Handbasis 32, die mit dem Handgelenk 24 verbunden ist, mehrere Finger 34, die so an der Handbasis 32 bereitgestellt sind, dass sie geöffnet und geschlossen werden können, und einen Fingerantriebsabschnitt (nicht dargestellt), der zum Antrieb der Finger 34 ausgebildet ist, auf.
  • Der Fingerantriebsabschnitt weist z.B. einen Luftzylinder auf und öffnet und schließt die Finger 34 gemäß einem Befehl von der Robotersteuervorrichtung 50. Daher ist die Roboterhand 26 in der Lage, das Werkstück W durch Öffnen und Schließen der Finger 34 zu ergreifen und freizugeben.
  • Der Roboter 12 weist mehrere Servomotoren 38 ( 2) auf. Die Servomotoren 38 sind jeweils in den Drehrumpf 20, den Roboterarm 22 und das Handgelenk 24 eingebaut und drehen diese Elemente gemäß Befehlen von der Robotersteuervorrichtung 50 um Drehachsen.
  • Jeder Servomotor 38 weist einen Momentsensor oder einen Codierer (nicht dargestellt) auf und gibt eine Rückmeldeinformation wie etwa ein auf den Servomotor 38 ausgeübtes Lastmoment oder eine Umdrehungsgeschwindigkeit des Servomotors 38 an die Robotersteuervorrichtung 50 aus.
  • Der Kraftsensor 14 ist an der Umgebung 40, auf der das Werkstück angeordnet ist, vorgesehen und misst eine Last L, die von dem Werkstück W auf die Umgebung 40 ausgeübt wird. Bei dieser Ausführungsform besteht der Kraftsensor 14 z.B. aus einem Dehnmessstreifen oder einer Gewichtsmessvorrichtung, und ist er in der Lage, eine senkrecht nach unten wirkende Kraft zu detektieren. Der Kraftsensor 14 sendet Messdaten der gemessenen Last an die Robotersteuervorrichtung 50.
  • Die Robotersteuervorrichtung 50 steuert jeden Bestandteil des Roboters 12. Insbesondere weist die Robotersteuervorrichtung 50 wie in 2 dargestellt eine CPU 52, einen Systemspeicher 54, einen Arbeitsspeicher 56, eine Ein/Ausgabe-Schnittstelle (E/A-Schnittstelle) 58 und einen Antriebsabschnitt 60 auf.
  • Die CPU 52 ist über einen Bus 62 kommunikationsfähig mit dem Systemspeicher 54, dem Arbeitsspeicher 56 und der E/A-Schnittstelle 58 verbunden und führt verschiedene später beschriebene Prozesse aus, während sie mit diesen Bestandteilen kommuniziert.
  • Der Systemspeicher 54 ist ein elektrisch löschbarer/beschreibbarer nichtflüchtiger Speicher und besteht z.B. aus einem EEPROM (eingetragenes Warenzeichen). Der Systemspeicher 54 zeichnet Konstante, Variable, Einstellwerte, Programme und dergleichen, die die CPU 52 zur Ausführung verschiedener Prozesse benötigt, so auf, dass sie nicht verloren gehen, während das Robotersystem 10 abgeschaltet ist.
  • Der Arbeitsspeicher 56 speichert vorübergehend Daten, die die CPU 52 zur Ausführung verschiedener Prozesse benötigt. Ferner werden die Konstanten, Variablen, Einstellwerte, Parameter, Programme und dergleichen, die in dem Systemspeicher 54 gespeichert sind, passend in den Arbeitsspeicher 56 geladen und verwendet die CPU 52 Daten, die in den Arbeitsspeicher 56 geladen sind, um verschiedene Prozesse auszuführen.
  • Die E/A-Schnittstelle 58 ist kommunikationsfähig mit dem Kraftsensor 14 verbunden und erhält gemäß einem Befehl von der CPU 52 die Messdaten von dem Kraftsensor 14. Ferner erhält die E/A-Schnittstelle 58 die von jedem Servomotor 38 gesendete Rückmeldeinformation. Zudem ist die E/A-Schnittstelle 58 kommunikationsfähig mit einer externen Vorrichtung wie etwa einer Anzeige, einem Lautspreeher oder einer Host-Steuereinheit verbunden und kommuniziert sie gemäß einem Befehl von der CPU 52 mit dieser externen Vorrichtung.
  • Die E/A-Schnittstelle 58 besteht z.B. aus einem Ethernet-Anschluss oder einem USB-Anschluss und kann auf eine verdrahtete Weise mit dem Kraftsensor 14, jedem Servomotor 38 und der externen Vorrichtung kommunizieren. Alternativ kann die E/A-Schnittstelle 58 auf eine drahtlose Weise, über Wi-Fi oder ein anderes drahtloses LAN mit dem Kraftsensor 14, jedem Servomotor 38 und der externen Vorrichtung kommunizieren.
  • Der Antriebsabschnitt 60 treibt jeden Servomotor 38, der in den Roboter 12 eingebaut ist, gemäß einem Befehl von der CPU 52 an. Insbesondere weist der Antriebsabschnitt 60 z.B. einen Inverter oder einen Servoverstärker auf und sendet einen Befehl (z.B. einen Geschwindigkeitsbefehl oder einen Drehmomentbefehl) an jeden Servomotor 38, um die Servomotoren 38 anzutreiben.
  • Als nächstes wird unter Bezugnahme auf 3 ein Beispiel für einen Betrieb des Robotersystems 10 beschrieben werden. Der in 3 dargestellte Ablauf wird begonnen, wenn die CPU 52 von einem Betreiber, der Host-Steuervorrichtung, einem Roboterprogramm oder dergleichen einen Befehl zum Transportieren des Werkstücks W erhält.
  • Bei Schritt S1 führt die CPU 52 ein Werkstücktransportschema aus. Insbesondere erzeugt die CPU 52 gemäß einem Roboterprogramm einen Befehl an jeden Servomotor 38 und sendet diesen durch den Antriebsabschnitt 60 an jeden Servomotor 38. Dadurch betreibt die CPU 52 den Roboter 12 so, dass ein Ende B des Werkstücks W mit der Roboterhand 26 ergriffen wird, um eine Reihe von Betriebsschemata zum Transport des Werkstücks W auszuführen.
  • Bei Schritt S2 erlangt die CPU 52 eine Kraft, mit der das Werkstück W durch die Umgebung 40 getragen wird (d.h., eine Werkstückstützkraft). Insbesondere sendet die CPU 52 einen Messbefehl an den Kraftsensor 14. Wenn er den Messbefehl von der CPU 52 erhält, misst der Kraftsensor L die Last L, die von dem Werkstück W auf die Umgebung 40 ausgeübt wird. Die Last L stimmt mit der Werkstückstützkraft überein.
  • Während der Roboter 12 das Ende des Werkstücks W wie in 1 veranschaulicht anhebt und das Werkstück transportiert, verändert sich die Last L, die von dem Werkstück W auf die Umgebung 40 ausgeübt wird, mit der Zeit. Der Kraftsensor 14 misst die Last L (d.h., die Werkstückstützkraft) zu dem Zeitpunkt des Erhalts des Messbefehls und sendet Messdaten an die E/A-Schnittstelle 58.
  • Die E/A-Schnittstelle 58 erlangt die Messdaten von dem Kraftsensor 14 und die CPU 52 zeichnet die durch die E/A-Schnittstelle 58 erlangten Messdaten in dem Arbeitsspeicher 56 auf. Somit wirkt die E/A-Schnittstelle 58 bei dieser Ausführungsform als Stützkraftdatenerlangungsabschnitt, der dazu ausgebildet ist, die Messdaten der Werkstückstützkraft von dem Kraftsensor 14 zu erlangen.
  • Bei Schritt S3 schätzt die CPU 52 einen auf den Roboter 12 ausgeübten Störwert DT1. Insbesondere erhält die E/A-Schnittstelle 58 eine von jedem Servomotor 38 gesendete Rückmeldeinformation. Die CPU 52 zeichnet die durch die E/A-Schnittstelle 58 erhaltene Rückmeldeinformation als Zustandsinformation des Roboters 12 in dem Arbeitsspeicher 56 auf.
  • Die CPU 52 berechnet auf Basis der erlangten Rückmeldeinformation und eines dynamischen Parameters des Roboters 12 (z.B. einer Position und einer Lage, einer Masse, eines Massenzentrums, einer Betriebsgeschwindigkeit und/oder einer Trägheitsmatrix jedes Bestandteils des Roboters 12) eine resultierende Kraft aller auf den Roboter 12 wirkenden Kräfte.
  • Andererseits berechnet die CPU 52 eine Kraft (nachstehend als „interne Kraft“ bezeichnet), die aufgrund der Masse jedes Bestandteils des Roboters 12, einer Masse eines anderen Elements (z.B. eines Vision-Sensors), das an dem Roboter 12 angebracht ist, und einer durch die Bewegung des Roboters 12 verursachten Trägheitskraft auf den Roboter 12 ausgeübt wird. Die interne Kraft kann durch Einsetzen des dynamischen Parameters des Roboters 12 in eine bekannte Bewegungsgleichung berechnet werden.
  • Die CPU 52 schätzt den Störwert DT1, der eine auf den Roboter 12 ausgeübte externe Kraft ist, durch Subtrahieren der internen Kraft von der resultierenden Kraft, die aus der von jedem Servomotor 38 erhaltenen Rückmeldeinformation erhalten wird. Somit wirkt die CPU 52 bei dieser Ausführungsform als Störungsschätzabschnitt 64 ( 2), der dazu ausgebildet ist, den auf den Roboter 12 ausgeübten Störwert DT1 zu schätzen.
  • Der Störwert DT1 enthält einen Werkstückstörwert DW1, der einer Kraft entspricht, die aufgrund einer Gravitationskraft des Werkstücks W von dem Werkstück W auf die Roboterhand 26 ausgeübt wird, und einen Kontaktstörwert DC1, der einer Kraft entspricht, die von einem umgebenden Objekt (z.B. einem Betreiber oder einem Hindernis) um den Roboter 12 durch einen Kontakt zwischen dem Objekt und dem Roboter 12 (oder dem Werkstück W) auf den Roboter 12 ausgeübt wird.
  • Bei Schritt S4 korrigiert die CPU 52 den Störwert DT1. Insbesondere subtrahiert die CPU 52 die Last L, die in den bei Schritt S2 erlangten Messdaten erhalten ist, von der auf das Werkstück ausgeübten Gravitationskraft G, um eine sich verändernde Werkstücklast LW (= G - L) zu erhalten. Die sich verändernde Werkstücklast LW kann als der Werkstückstörwert DW1 angesehen werden, der zu dem Zeitpunkt des Beginns von Schritt S2 von dem Werkstück W auf die Roboterhand 26 ausgeübt wird.
  • Dann korrigiert die CPU 52 den bei Schritt S3 geschätzten Störwert DT1 durch Subtrahieren der sich verändernden Werkstücklast LW von dem Störwert DT1, um einen korrigierten Störwert E1 (= DT1 - LW) zu erhalten. Der korrigierte Störwert E1 kann als der oben genannte Kontaktstörwert DC1 angesehen werden.
  • Somit wirkt die CPU 52 bei dieser Ausführungsform als Korrekturabschnitt 66 (2), der dazu ausgebildet ist, den Störwert DT1 zu korrigieren.
  • Bei Schritt S5 bestimmt die CPU 52, ob der korrigierte Störwert E1 gleich oder größer als ein vorherbestimmter Schwellenwert α ist (d.h., |E1| ≥ α) oder nicht. Der Schwellenwert α ist für den korrigierten Störwert E1 vorherbestimmt und in dem Systemspeicher 54 gespeichert.
  • Wenn die CPU 52 bestimmt, dass der korrigierte Störwert E1 gleich oder größer als der vorherbestimmte Schwellenwert α ist (d.h., JA bestimmt), geht sie zu Schritt S8 über. Wenn die CPU 52 andererseits bestimmt, dass der korrigierte Schwellenwert E1 kleiner als der vorherbestimmte Schwellenwert α ist (d.h., NEIN bestimmt), geht sie zu Schritt S6 über.
  • Bei Schritt S6 bestimmt die CPU 52, ob das bei Schritt S1 ausgeführte Werkstücktransportschema passend abgeschlossen ist oder nicht. Wenn die CPU 52 bestimmt, dass das Werkstücktransportschema passend abgeschlossen ist (d.h., JA bestimmt), geht sie zu Schritt S7 über. Wenn die CPU 52 andererseits bestimmt, dass das Werkstücktransportschema nicht abgeschlossen ist (d.h. NEIN bestimmt), kehrt sie zu Schritt S2 zurück.
  • Bei Schritt S7 hält die CPU 52 den Betrieb des Roboters 12 an. Insbesondere erzeugt die CPU 52 einen Befehl, um jeden Servomotor 38 anzuhalten, und sendet sie ihn an jeden Servomotor 38, wodurch der Roboter 12 angehalten wird. Nach der Ausführung von Schritt S7 beendet die CPU 52 den in 3 veranschaulichten Ablauf.
  • Wenn die CPU 52 andererseits bei Schritt S5 JA bestimmt, nimmt die CPU 52 bei Schritt S8 ein Anhalten oder Zurückziehen des Roboters 12 vor. Insbesondere erzeugt die CPU 52 einen Befehl, um jeden Servomotor 38 anzuhalten, und sendet sie ihn durch den Antriebsabschnitt 60 an jeden Servomotor 38, wodurch der Roboter 12 angehalten wird.
  • Alternativ sendet die CPU 52 durch den Antriebsabschnitt 60 einen Befehl an jeden Servomotor 38, um den Bestandteil (z.B. den Roboterarm 22 oder die Roboterhand 26) des Roboters 12 in eine Richtung des korrigierten Störwerts E1 zu bewegen. Dadurch kann der Bestandteil des Roboters 12 in eine Richtung der Kraft, die durch den Kontakt zwischen einem umgebenden Objekt und dem Roboter 12 auf den Roboter 12 ausgeübt wird, zurückgezogen werden.
  • Somit wirkt die CPU 52 bei dieser Ausführungsform als Betriebsbefehlsabschnitt 68 (2), der dazu ausgebildet ist, einen Befehl zum Anhalten oder Zurückziehen des Roboters 12 zu erzeugen.
  • Bei Schritt S9 erzeugt die CPU 52 einen Alarm. Zum Beispiel erzeugt die CPU 52 Bild- oder Audiodaten, die einen Alarm anzeigen, dass „der Roboter mit einem umgebenden Objekt in Kontakt steht“.
  • Dann sendet die CPU 52 die erzeugten Bild- oder Audiodaten über die E/A-Schnittstelle 58 an die Anzeige oder den Lautsprecher, um einen Betreiber durch die Anzeige oder den Lautsprecher zu benachrichtigen.
  • Nach Schritt S9 beendet die CPU 52 den in 3 veranschaulichten Ablauf. Die CPU 52 führt die Schritte S2 bis S6 mit einer Periode T (z.B. einer Sekunde) wiederholt aus, bis sie bei Schritt S5 oder S6 JA bestimmt.
  • Wie oben beschrieben erhält die CPU 52 bei dieser Ausführungsform den Werkstückstörwert DW1 (d.h., die sich verändernde Werkstücklast LW), der der Kraft entspricht, die durch die Gravitationskraft des Werkstücks W von dem Werkstück W auf die Roboterhand 26 ausgeübt wird, auf Basis der durch den Kraftsensor 14 gemessenen Last L (der Werkstückstützkraft).
  • Dann korrigiert die CPU 52 den Störwert DT1, um den Werkstückstörwert DW1 aus dem Störwert DT1 zu beseitigen, wodurch sie den Kontaktstörwert DC1 (d.h., einen korrigierten Störwert E1) erhält. Gemäß dieser Ausführung ist es selbst dann, wenn sich die Last L (der Werkstückstörwert DW1) durch das Werkstück W mit der Zeit verändert, möglich, den Kontaktstörwert DC1 mit einer hohen Genauigkeit zu schätzen. Entsprechend ist es möglich, den Kontakt zwischen einem umgebenden Objekt und dem Roboter 12 (oder dem Werkstück W) mit einer hohen Genauigkeit zu detektieren.
  • Hier kann es dann, wenn eine externe Kraft von einem externen Objekt oder einem Betreiber auf das Werkstück W ausgeübt wird (zum Beispiel, wenn ein Betreiber eine externe Kraft auf einen Teil des Werkstücks W, das mit der Umgebung 40 in Kontakt steht, ausübt), sein, dass die externe Kraft nicht über das Werkstück W zu der Roboterhand 26 übertragen wird.
  • Eine solche externe Kraft (nachstehend als „nicht übertragende externe Kraft“ bezeichnet) ist nicht in dem auf den Roboter 12 ausgeübten Störwert DT1 enthalten, obwohl sie in der durch den Kraftsensor 14 detektierten Last L enthalten ist.
  • Wie oben beschrieben erhält die CPU 52 bei dieser Ausführungsform die sich verändernde Werkstücklast LW (= G - L), und erhält sie dann bei dem oben genannten Schritt S4 unter Verwendung der sich verändernden Werkstücklast den korrigierten Störwert E1.
  • Da entsprechend in dem korrigierten Störwert E1 eine Komponente der nicht übertragenen externen Kraft enthalten ist, ist es möglich, durch Ausführen von Schritt S5 konsequent eine solche nicht übertragene externe Kraft zu detektieren, selbst wenn die nicht übertragene externe Kraft bei Schritt S1 auf das Werkstück W ausgeübt wird. Somit ist es nach dieser Ausführungsform möglich, nicht nur den auf den Roboter 12 ausgeübten Kontaktstörwert DC1, sondern auch die nicht übertragende externe Kraft zu detektieren.
  • Als nächstes wird unter Bezugnahme auf 4 ein anderes Beispiel für den Betrieb des Robotersystems 10 beschrieben werden. Es ist zu beachten, dass in dem Ablauf, der in 4 dargestellt ist, Prozessen, die jenen in 3 gleich sind, die gleichen Bezugszeichen zugeteilt sind und auf ihre ausführliche Beschreibung verzichtet werden wird.
  • Nachdem der in 4 veranschaulichte Ablauf begonnen wurde, führt die CPU 52 so wie bei dem Ablauf, der in 3 dargestellt ist, der Reihe nach die Schritte 1 und 2 aus.
  • Nach Schritt S2 erlangt die CPU 52 bei Schritt S11 die Zustandsinformation des Roboters 12. Insbesondere erlangt die CPU 52 die Rückmeldeinformation von jedem Servomotor 38 durch die E/A-Schnittstelle 58 und zeichnet die Rückmeldeinformation in dem Arbeitsspeicher 56 als Zustandsinformation des Roboters 12 auf.
  • Bei Schritt S12 korrigiert die CPU 52 die Zustandsinformation. Insbesondere berechnet die CPU 52 die oben genannte sich verändernde Werkstücklast LW (= G - L). Dann korrigiert die CPU 52 die Zustandsinformation auf Basis einer Zustandsveränderung des Roboters 12 aufgrund der sich verändernden Werkstücklast LW.
  • Wenn die sich verändernde Werkstücklast LW (d.h., der Werkstückstörwert) auf die Roboterhand 26 ausgeübt wird, verändert sich der Zustand (ein auf jeden Bestandteil ausgeübtes Lastmoment oder eine Position und eine Lage jedes Bestandteils) jedes Bestandteils (des Drehrumpfs 20, des Roboterarms 22, des Handgelenks 24 und der Roboterhand 26) des Roboters 12.
  • Durch diese Zustandsveränderung wird auf jeden in den Roboter 12 eingebauten Servomotor 38 ein Störmoment ausgeübt und verändert sich die Umdrehungsgeschwindigkeit jedes Servomotors 38. Ein solches Störmoment oder ein Ausmaß der Veränderung der Umdrehungsgeschwindigkeit kann aus der sich verändernden Werkstücklast LW berechnet werden.
  • Entsprechend korrigiert die CPU 52 die Rückmeldeinformation durch Beseitigen einer Komponente aufgrund der sich verändernden Werkstücklast LW aus der bei Schritt S11 erlangten Rückmeldeinformation der Servomotoren 38.
  • Zum Beispiel subtrahiert die CPU 52 das Störmoment von dem in der Rückmeldeinformation enthaltenen Lastmoment oder subtrahiert sie das Ausmaß der Veränderung der Umdrehungsgeschwindigkeit aufgrund der sich verändernden Werkstücklast LW von der in der Rückmeldeinformation enthaltenen Umdrehungsgeschwindigkeit. Somit wirkt die CPU 52 als Korrekturabschnitt (1), der dazu ausgebildet ist, die Zustandsinformation des Roboters 12 zu korrigieren.
  • Bei Schritt S13 schätzt die CPU 52 den Störwert E1. Insbesondere berechnet die CPU 52 aus der bei Schritt S12 erlangten Zustandsinformation eine resultierende Kraft der auf den Roboter 12 ausgeübten Kräfte.
  • Die so berechnete resultierende Kraft ist eine resultierende Kraft der internen Kraft, die auf den Roboter 12 ausgeübt wird, und der Kraft, die durch den Kontakt zwischen einem umgebenden Objekt und dem Roboter 12 (oder dem Werkstück W) von dem umgebenden Objekt auf den Roboter 12 ausgeübt wird, während sie die von dem Werkstück W aufgrund der Gravitationskraft des Werkstücks W auf die Roboterhand 26 ausgeübte Kraft nicht enthält. Dann subtrahiert die CPU 52 die interne Kraft von der berechneten resultierenden Kraft, wodurch sie den auf den Roboter 12 ausgeübten Störwert E1 berechnet.
  • Der so geschätzte Störwert E1 enthält den Werkstückstörwert DW1 nicht, und ist daher ein Wert, der mit dem Kontaktstörwert DC1 übereinstimmt. Somit wirkt die CPU 52 bei dieser Ausführungsform als Störungsschätzabschnitt 64 (2), der dazu ausgebildet ist, den auf den Roboter 12 ausgeübten Störwert E1 zu schätzen.
  • Bei Schritt S14 bestimmt die CPU 52, ob der bei Schritt S13 geschätzte Störwert E1 gleich oder größer als der vorherbestimmte Schwellenwert α ist (d.h., |E1| ≥ α) oder nicht. Der Schwellenwert α ist für den Störwert E1 vorherbestimmt und in dem Systemspeicher 54 gespeichert.
  • Wenn die CPU 52 bestimmt, dass der Störwert E1 gleich oder größer als der vorherbestimmte Schwellenwert α ist (d.h., JA bestimmt), geht sie zu Schritt S8 über. Wenn die CPU 52 andererseits bestimmt, dass der korrigierte Störwert E1 kleiner als der vorherbestimmte Schwellenwert E1 ist, (d.h., NEIN bestimmt), geht sie zu Schritt S6 über.
  • Nach Schritt S14 führt die CPU 52 so wie bei dem in 3 dargestellte Ablauf der Reihe nach Schritt S6 und S7 oder Schritt S8 und S9 aus.
  • Wie oben beschrieben korrigiert die CPU 52 bei dieser Ausführungsform die Rückmeldeinformation der Servomotoren 38, indem sie daraus eine Komponente des Werkstückstörwerts DW1 beseitigt, und schätzt sie auf Basis der korrigierten Rückmeldeinformation den Störwert E1, der mit dem Kontaktstörwert DC1 übereinstimmt.
  • Nach dieser Ausführung ist es selbst dann, wenn sich die Last L (der Werkstückstörwert DW1) durch das Werkstück W mit der Zeit verändert, möglich, den Kontaktstörwert DC1 mit einer hohen Genauigkeit zu schätzen. Entsprechend ist es möglich, den Kontakt zwischen einem umgebenden Objekt und dem Roboter 12 (oder dem Werkstück W) mit einer hohen Genauigkeit zu detektieren. Ferner kann nicht nur der auf den Roboter 12 ausgeübte Kontaktstörwert DC1 detektiert werden, sondern kann auch die oben beschriebene nicht übertragene externe Kraft detektiert werden.
  • Als nächstes wird unter Bezugnahme auf 5 und 6 ein Robotersystem 70 nach einer anderen Ausführungsform beschrieben werden. Das Robotersystem 70 weist den Roboter 12, den ersten Kraftsensor 14, einen zweiten Kraftsensor 72 und eine Robotersteuervorrichtung 80 auf.
  • Der zweite Kraftsensor 72 ist an der Roboterbasis 18 bereitgestellt. Der zweite Kraftsensor 72 besteht z.B. aus einem Sechsachsen-Kraftsensor, der mehrere Dehnmessstreifen aufweist, und sendet der Robotersteuervorrichtung 80 als Reaktion auf eine Verdehnung, die an dem zweiten Kraftsensor 72 erzeugt wird, ein Ausgangssignal.
  • Wie in 6 veranschaulicht weist die Robotersteuervorrichtung 80 eine CPU 82, den Systemspeicher 54, den Arbeitsspeicher 56, die E/A-Schnittstelle 58 und den Antriebsabschnitt 60 auf. Die E/A-Schnittstelle 58 ist kommunikationsfähig mit dem zweiten Kraftsensor 72 verbunden und erhält gemäß einem Befehl von der CPU 82 das Ausgangssignal von dem zweiten Kraftsensor 72.
  • Als nächstes wird unter Bezugnahme auf 3 ein Beispiel für einen Betrieb des Robotersystems 70 beschrieben werden. Bei Schritt S1 führt die CPU 82 so wie bei der Ausführungsform das Werkstücktransportschema aus.
  • Bei Schritt S2 erlangt die CPU 82 so wie bei den oben angeführten Ausführungsformen die Werkstückstützkraft. Insbesondere sendet die CPU 82 den Messbefehl an den ersten Kraftsensor 14. Wenn er den Messbefehl von der CPU 82 erhält, misst der erste Kraftsensor die Last L, die von dem Werkstück W auf die Umgebung 40 ausgeübt wird. Die Last L stimmt mit der Werkstückstützkraft überein.
  • Der erste Kraftsensor 14 misst die Last L (d.h., die Werkstückstützkraft) zur Zeit des Erhalts des Messbefehls und sendet die Messdaten an die E/A-Schnittstelle 58. Die E/A-Schnittstelle 58 wirkt als der Stützkraftdatenerlangungsabschnitt und erlangt die Messdaten von dem ersten Kraftsensor 14. Die CPU 82 zeichnet die durch die E/A-Schnittstelle 58 erlangten Messdaten in dem Arbeitsspeicher 56 auf.
  • Bei Schritt S3 schätzt die CPU 82 einen auf den Roboter 12 ausgeübten Störwert DT2. Insbesondere erhält die CPU 82 über die E/A-Schnittstelle 58 ein Ausgangssignal von dem zweiten Kraftsensor 72.
  • Die CPU 82 filtert das von dem zweiten Kraftsensor 72 erhaltene Ausgangssignal so, dass eine Rauschkomponente aus dem Ausgangssignal beseitigt wird. Zum Beispiel beseitigt die CPU 82 die Rauschkomponente durch Ausführen einer bekannten Signalverarbeitung wie etwa einer Tiefpassfilterung, eines arithmetischen Mittelwerts, eines gewichteten Mittelwerts, einer Finite-Impulse-Response(FIR)-Filterung oder einer Infinite-Impulse-Response(IIR)-Filterung an dem Ausgangssignal von dem zweiten Kraftsensor aus dem Ausgangssignal.
  • Andererseits legt die CPU 82 ein Sensorkoordinatensystem CS1 für den zweiten Kraftsensor 72 fest, wie durch ein orthogonales Koordinatensystem in 5 veranschaulicht ist. Aus dem von dem zweiten Kraftsensor 72 erhaltenen Ausgangssignal berechnet die CPU 82 jeweils Kräfte FT in der x-Achsen-, der y-Achsen- und der z-Achsen-Richtung des Sensorkoordinatensystems CS1 und Momente MT um die x-Achsen-, die y-Achsen- und die z-Achsen-Richtung des Sensorkoordinatensystems CS1.
  • Unter Verwendung der Kräfte FT und der Momente MT detektiert die CPU 82 eine resultierende Kraft aller auf den Roboter 12 (d.h., die Roboterbasis 18, den Drehrumpf 20, den Roboterarm 22, das Handgelenk 24 und die Roboterhand 26) ausgeübten Kräfte als auf den zweiten Kraftsensor 72 ausgeübte Kraft.
  • Andererseits berechnet die CPU 52 die auf den zweiten Kraftsensor 72 ausgeübte interne Kraft. Die interne Kraft kann durch Einsetzen einer Masse jedes Bestandteils des Roboters 12, einer Lage des Roboters 12 und einer Betriebsgeschwindigkeit jedes Bestandteils des Roboters 12 in eine bekannte Bewegungsgleichung berechnet werden.
  • Dann subtrahiert die CPU 82 die interne Kraft von der erhaltenen resultierenden Kraft, wodurch sie den Störwert DT2, der durch eine auf einen Teil (die Roboterbasis 18, den Drehrumpf 20, den Roboterarm 22, das Handgelenk 24 und die Roboterhand 26) des Roboters 12 ausgeübte externe Kraft auf den zweiten Kraftsensor 72 ausgeübt wird, schätzt.
  • Somit schätzt die CPU 82 bei dieser Ausführungsform den Störwert DT2 unter Verwendung der Kräfte FT und der Momente MT, die aus dem Ausgangssignal von dem zweiten Kraftsensor 72 erhalten werden. Daher bilden das Ausgangssignal von dem zweiten Kraftsensor 72 und die aus dem Ausgangssignal erhaltenen Kräfte FT und Momente MT die Zustandsinformation des Roboters 12.
  • Der Störwert DT2 enthält einen Werkstückstörwert DW2 und einen Kontaktstörwert DC2. Der Werkstückstörwert DW2 entspricht einer Kraft, die dadurch verursacht wird, dass sich die sich verändernde Werkstücklast LW, die auf den Roboterarm 22 ausgeübt wird, so durch das Handgelenk 24, den Roboterarm 22, den Drehrumpf 20 und die Roboterbasis 18 zu dem zweiten Kraftsensor 72 überträgt, dass sie auf den zweiten Kraftsensor 72 ausgeübt wird.
  • Der Kontaktstörwert DC2 entspricht einer Kraft, die aufgrund einer Kraft, welche durch den Kontakt zwischen einem Objekt und dem Roboter 12 (oder dem Werkstück W) von dem umgebenden Objekt auf den Roboter 12 ausgeübt wird, auf den zweiten Kraftsensor 72 ausgeübt wird. Somit wirkt die CPU 82 bei dieser Ausführungsform als Störungsschätzabschnitt 84 (2), der dazu ausgebildet ist, den auf den Roboter 12 ausgeübten Störwert DT2 zu schätzen.
  • Bei Schritt S4 korrigiert die CPU 82 den Störwert DT2. Insbesondere berechnet die CPU 82 so wie bei den oben angeführten Ausführungsformen die sich verändernde Werkstücklast LW (= G - L). Dann multipliziert die CPU 82 die sich verändernde Werkstücklast LW mit einer Kraftumwandlungsmatrix J, wodurch sie den Werkstückstörwert DW2 (= J*LW) berechnet.
  • Die Kraftumwandlungsmatrix J ist eine Matrix (insbesondere eine Jacobimatrix) zum Umwandeln der sich verändernden Werkstücklast LW, die auf die Roboterhand 26 ausgeübt wird, in eine auf den zweiten Kraftsensor 72 ausgeübte Kraft.
  • Dann korrigiert die CPU 82 den Störwert DT2 durch Subtrahieren des berechneten Werkstückstörwerts DW2 von dem bei Schritt S3 geschätzten Störwert DT2, um einen korrigierten Störwert E2 (= DT2 - DW2 = DT2 - J*Lw) zu erhalten. Der korrigierte Störwert E2 kann als der Kontaktstörwert DC2 angesehen werden. Somit wirkt die CPU 82 bei dieser Ausführungsform als Korrekturabschnitt (2), der dazu ausgebildet ist, den Störwert DT2 zu korrigieren.
  • Bei Schritt S5 bestimmt die CPU 82, ob der korrigierte Störwert E2 gleich oder größer als ein vorherbestimmter Schwellenwert β ist (i.e., |E2| ≥ β) oder nicht. Der Schwellenwert β ist für den korrigierten Störwert E2 vorherbestimmt und in dem Systemspeicher 52 gespeichert.
  • Wenn die CPU 82 bestimmt, dass der korrigierte Störwert E2 gleich oder größer als der vorherbestimmte Schwellenwert β ist (d.h., JA bestimmt), geht sie zu Schritt S8 über. Wenn die CPU 82 andererseits bestimmt, dass der korrigierte Störwert E2 kleiner als der vorherbestimmte Schwellenwert β ist (d.h., NEIN bestimmt), geht sie zu Schritt S6 über.
  • Nach Schritt S5 führt die CPU 82 so wie bei den oben angeführten Ausführungsformen der Reihe nach Schritt S6 und S7 oder Schritt S8 und S9 aus. Auf diese Weise führt die CPU 82 die Schritte S2 bis 6 mit einer Periode T (z.B. einer Sekunde) wiederholt aus, bis sie bei Schritt S5 oder Schritt S6 JA bestimmt.
  • Wie oben beschrieben erhält die CPU 82 bei dieser Ausführungsform aus der durch den ersten Kraftsensor 14 gemessenen Last L (der Werkstückstützkraft) die sich verändernde Werkstücklast LW und erhält sie aus der sich verändernden Werkstücklast Lw den Werkstückstörwert DW2. Dann korrigiert die CP 82 den Störwert DT, indem sie daraus den Werkstückstörwert DW2 beseitigt, um den korrigierten Störwert E2, der mit dem Kontaktstörwert DC2 übereinstimmt, zu erhalten.
  • Nach dieser Ausführung ist es möglich, den Kontaktstörwert DC2 selbst dann mit einer hohen Genauigkeit zu schätzen, wenn sich die Last L (der Werkstückstörwert DW) durch das Werkstück W mit der Zeit verändert. Entsprechend ist es möglich, den Kontakt zwischen einem umgebenden Objekt und dem Roboter 12 (oder dem Werkstück W) mit einer hohen Genauigkeit zu detektieren. Ferner kann nicht nur der auf den Roboter 12 ausgeübte Kontaktstörwert DC2, sondern auch die oben genannte nicht übertragene externe Kraft detektiert werden.
  • Als nächstes wird unter Bezugnahme auf 4 ein anderes Beispiel für den Betrieb des Robotersystems 70 beschrieben werden. Nachdem der in 4 dargestellte Ablauf begonnen wurde, führt die CPU 82 so wie bei dem in 3 dargestellten Ablauf der Reihe nach Schritt S1 und S2 aus.
  • Nach Schritt S2 erlangt die CPU 82 bei Schritt S11 die Zustandsinformation des Roboters 12. Als ein Beispiel erlangt die CPU 82 über die E/A-Schnittstelle 58 ein Ausgangssignal (ein Signal als Reaktion auf eine Verdehnung) von dem zweiten Kraftsensor 72 und zeichnet dieses als die Zustandsinformation des Roboters 12 in dem Arbeitsspeicher 56 auf.
  • Als anderes Beispiel berechnet die CPU 82 auf Basis eines Ausgangssignals von dem zweiten Kraftsensor 72 die Kräfte FT in der x-Achsen-, der y-Achsen- und der z-Achsen-Richtung des Sensorkoordinatensystems CS1 und die Momente MT um die x-Achsen-, die y-Achsen- und die z-Achsen-Richtung des Sensorkoordinatensystems CS1 und zeichnet sie als die Zustandsinformation des Roboters 12 in dem Arbeitsspeicher 56 auf.
  • Bei Schritt S12 korrigiert die CPU 82 die Zustandsinformation. Insbesondere berechnet die CPU 82 die oben genannte sich verändernde Werkstücklast LW (= G - L). Dann korrigiert die CPU 82 die Zustandsinformation auf Basis einer Zustandsänderung des Roboters 12 aufgrund der sich verändernden Werkstücklast LW.
  • Wenn die sich verändernde Werkstücklast LW auf die Roboterhand 26 ausgeübt wird, ändert sich ein Zustand (die Position und die Lage) jedes Bestandteils (d.h., des Drehrumpfs 20, des Roboterarms 22, des Handgelenks 24 und der Roboterhand 26) des Roboters 12.
  • Die auf die Roboterhand 26 ausgeübte sich verändernde Werkstücklast LW überträgt sich so durch das Handgelenk 24, den Roboterarm 22, den Drehrumpf 20 und die Roboterbasis 18, dass sie auf den zweiten Kraftsensor 72 ausgeübt wird.
  • Als Ergebnis ist in der Zustandsinformation (d.h., dem Ausgangssignal des zweiten Kraftsensors oder den Kräften FT und den Momenten MT), die durch den zweiten Kraftsensor 72 erhalten wird, eine Komponente der sich verändernden Werkstücklast LW enthalten.
  • Bei diesem Schritt S12 korrigiert die CPU 82 die Zustandsinformation so, dass die Komponente der sich verändernden Werkstücklast LW aus der Zustandsinformation beseitigt wird.
  • Als ein Beispiel subtrahiert die CPU 82 die Komponente der sich verändernden Werkstücklast LW von dem Ausgangssignal, das von dem zweiten Kraftsensor 72 erhalten wird, um dadurch einen Signalkorrekturwert H1 zu erhalten. Die in dem Ausgangssignal von dem zweiten Kraftsensor 72 enthaltene Komponente der sich verändernden Werkstücklast LW kann aus der sich verändernden Werkstücklast LW und einer bekannten theoretischen Formel erhalten werden.
  • Als anderes Beispiel berechnet die CPU 82 jeweils von der Last stammende Kräfte FL und von der Last stammende Momente ML, die aufgrund der sich verändernden Werkstücklast LW in der x-Achsen-, der y-Achsen und der z-Achsen-Richtung des Sensorkoordinatensystems CS1 ausgeübt werden bzw. um die x-Achsen-, die y-Achsen- und die z-Achsen-Richtung des Sensorkoordinatensystems CS1 ausgeübt werden.
  • Dann subtrahiert die CPU 82 die von der Last stammenden Kräfte FL und die von der Last stammenden Momente ML jeweils von den Kräften FT und den Momenten MT als Zustandsinformation, um einen Kraftkorrekturwert H2 und einen Momentkorrekturwert H3 zu erhalten.
  • Somit wirkt die CPU 82 als der Korrekturabschnitt 86 (6), der dazu ausgebildet ist, die Zustandsinformation (das Ausgangssignal des zweiten Kraftsensors 72 oder die Kräfte FT und Momente MT) des Roboters 12 zu korrigieren.
  • Bei Schritt S13 schätzt die CPU 82 den Störwert E2. Insbesondere berechnet die CPU 82 unter Verwendung des Signalkorrekturwerts H2 und des Momentkorrekturwerts H3, die bei Schritt S12 erlangt wurden, eine resultierende Kraft der auf den Roboter 12 ausgeübten Kräfte als Kraft, die auf den zweiten Kraftsensor 72 ausgeübt wird.
  • Die resultierende Kraft ist eine resultierende Kraft der internen Kraft, die auf den zweiten Kraftsensor 72 ausgeübt wird, und der Kraft, die aufgrund des Kontakts zwischen einem umgebenden Objekt und dem Roboter 12 (oder dem Werkstück W) auf den Kraftsensor 72 ausgeübt wird, und enthält nicht die Kraft, die aufgrund der Gravitationskraft des Werkstücks W auf den zweiten Kraftsensor 72 ausgeübt wird.
  • Die CPU 82 schätzt den auf den zweiten Kraftsensor 72 ausgeübten Störwert E2 durch Subtrahieren der internen Kraft von der berechneten resultierenden Kraft. Dieser Störwert E2 enthält den Werkstückstörwert DW2 nicht und kann daher als der Kontaktstörwert DC2 angesehen werden.
  • Nach Schritt S13 führt die CPU 82 so wie bei dem in 3 dargestellten Ablauf Schritt S14 aus, und führt dann der Reihe nach Schritt S6 und S7 oder Schritt S8 und S9 aus.
  • Wie oben beschrieben korrigiert die CPU 82 bei dieser Ausführungsform die Zustandsinformation (das Ausgangssignal von dem zweiten Kraftsensor 72 oder die Kräfte FT und Momente MT) des Roboters, um daraus die Komponente des Werkstückstörwerts DW2 zu beseitigen, und schätzt auf Basis der korrigierten Zustandsinformation den Störwert E2, der mit dem Kontaktstörwert DC2 übereinstimmt.
  • Nach dieser Ausführung ist es möglich, den Kontaktstörwert DC2 selbst dann mit einer hohen Genauigkeit zu schätzen, wenn sich die Last L (der Werkstückstörwert DW2) durch das Werkstück W mit der Zeit ändert. Entsprechend ist es möglich, den Kontakt zwischen einem umgebenden Objekt und dem Roboter 12 (oder dem Werkstück W) mit einer hohen Genauigkeit zu detektieren. Ferner kann nicht nur der auf den Roboter 12 ausgeübte Kontaktstörwert DC2, sondern auch die oben genannte nicht übertragene externe Kraft detektiert werden.
  • Als nächstes wird unter Bezugnahme auf 7 und 8 ein Robotersystem 90 nach noch einer anderen Ausführungsform beschrieben werden. Das Robotersystem 90 weist den Roboter 12, den ersten Kraftsensor 14, einen zweiten Kraftsensor 92 und eine Robotersteuervorrichtung 100 auf.
  • Der zweite Kraftsensor 92 ist an dem Finger 34 der Roboterhand 26 bereitgestellt. Der zweite Kraftsensor 92 besteht z.B. aus einem Sechsachsen-Kraftsensor, der mehrere Dehnmessstreifen enthält. Der zweite Kraftsensor 92 erhält eine auf den Finger 34 ausgeübte Kraft und sendet als Reaktion auf eine Verdehnung, die durch die Kraft an dem zweiten Kraftsensor 92 erzeugt wird, ein Ausgangssignal an die Robotersteuervorrichtung 100.
  • Die Robotersteuervorrichtung 100 weist eine CPU 10, den Systemspeicher 54, den Arbeitsspeicher 56, die E/A-Schnittstelle 58 und den Antriebsabschnitt 60 auf. Die E/A-Schnittstelle 58 ist kommunikationsfähig mit dem zweiten Kraftsensor 92 verbunden und erhält gemäß einem Befehl von der CPU 102 das Ausgangssignal von dem zweiten Kraftsensor 92.
  • Wie durch ein orthogonales Koordinatensystem in 7 veranschaulicht legt die CPU 102 ein Sensorkoordinatensystem CS2 für den zweiten Kraftsensor 92 fest. Eine Position (eine Ursprungsposition) und eine Lage (x-Achsen-, y-Achsen- und z-Achsen-Richtung) des Sensorkoordinatensystems CS2 ändern sich mit der Position und der Lage der Roboterhand 26. Entsprechend aktualisiert die CPU 102 die Position und die Lage des Sensorkoordinatensystems CS2 jedes Mal, wenn die CPU 102 die Position und die Lage der Roboterhand 26 ändert, während sie Schritt S1 ausführt.
  • Auf Basis des von dem zweiten Kraftsensor 92 erhaltenen Ausgangssignals berechnet die CPU 102 Kräfte in der x-Achsen-, der y-Achsen- und der z-Achsenrichtung des Sensorkoordinatensystems CS2 und Momente um die x-Achsen-, die y-Achsen- und die z-Achsen-Richtung des Sensorkoordinatensystems CS2.
  • Als nächstes wird unter Bezugnahme auf 9 ein Beispiel für einen Betrieb des Robotersystems 90 beschrieben werden. Nachdem der in 9 dargestellte Ablauf begonnen wurde, führt die CPU 102 so wie bei den oben beschriebenen Ausführungsformen der Reihe nach Schritt S1 und S2 aus.
  • Nach Schritt S2 erlangt die CPU 102 bei Schritt S21 die Zustandsinformation des Roboters 12. Als ein Beispiel erlangt die CPU 102 über die E/A-Schnittstelle 58 ein Ausgangssignal von dem zweiten Kraftsensor 92 und zeichnet dieses als die Zustandsinformation des Roboters 12 in dem Arbeitsspeicher 56 auf.
  • Als anderes Beispiel berechnet die CPU 102 auf Basis des Ausgangssignals von dem zweiten Kraftsensor 92 Kräfte FT2 in der x-Achsen-, der y-Achsen- und der z-Achsen-Richtung des Sensorkoordinatensystems CS2 und Momente MT2 um die x-Achsen-, die y-Achsen- und die z-Achsen-Richtung des Sensorkoordinatensystems CS2 und zeichnet diese als die Zustandsinformation des Roboters 12 in dem Arbeitsspeicher 56 auf.
  • Bei Schritt S22 korrigiert die CPU 102 die Zustandsinformation. Insbesondere berechnet die CPU 102 die oben genannte sich verändernde Werkstücklast LW (= G - L). Dann korrigiert die CPU 102 die Zustandsinformation auf Basis einer Zustandsänderung des Roboters 12 aufgrund der sich verändernden Werkstücklast LW.
  • Wenn die sich verändernde Werkstücklast LW auf die Roboterhand 26 ausgeübt wird, ändert sich ein Zustand (z.B. eine Position der Finger 34) der Roboterhand 26 und ist als Ergebnis davon eine Komponente der sich verändernden Werkstücklast LW in der durch den zweiten Kraftsensor 92 erhaltenen Zustandsinformation (d.h., dem Ausgangssignal des zweiten Kraftsensors 92, oder den Kräften FT2 und den Momenten MT2) enthalten.
  • Bei diesem Schritt S22 korrigiert die CPU 102 die Zustandsinformation so, dass die Komponente der sich verändernden Werkstücklast LW aus der Zustandsinformation beseitigt wird.
  • Als ein Beispiel subtrahiert die CPU 102 die Komponente der sich verändernden Werkstücklast LW von dem Ausgangssignal, das von dem zweiten Kraftsensor 92 erhalten wird, um einen Signalkorrekturwert H4 zu erhalten. Die Komponente der sich verändernden Werkstücklast LW, die in dem Ausgangssignal von dem zweiten Kraftsensor 92 enthalten ist, kann aus der sich verändernden Werkstücklast LW und einer bekannten theoretischen Formel erhalten werden.
  • Als anderes Beispiel berechnet die CPU 102 jeweils von der Last stammende Kräfte FL2 und von der Last stammende Momente ML2, die aufgrund der sich verändernden Werkstücklast LW in der x-Achsen-, der y-Achsen und der z-Achsen-Richtung des Sensorkoordinatensystems CS2 ausgeübt werden bzw. um die x-Achsen-, die y-Achsen- und die z-Achsen-Richtung des Sensorkoordinatensystems CS2 ausgeübt werden.
  • Dann subtrahiert die CPU 102 die von der Last stammenden Kräfte FL2 und die von der Last stammenden Momente ML2 jeweils von den Kräften FT2 und Momenten MT2 als Zustandsinformation, um einen Kraftkorrekturwert H5 und einen Momentkorrekturwert H6 zu erhalten.
  • Wenn das Sensorkoordinatensystem CS2 zum Beispiel so festgelegt ist, dass die positive z-Achsen-Richtung des Sensorkoordinatensystems CS2 wie in 7 veranschaulicht mit der senkrecht abwärts verlaufenden Richtung übereinstimmt, stimmt die von der Last stammende Kraft FL2 in der z-Achsen-Richtung mit der sich verändernden Werkstücklast LW überein. Entsprechend ist in einem solchen Fall der Kraftkorrekturwert H5 in der z-Achsen-Richtung ein Wert, der durch Subtrahieren der sich verändernden Werkstücklast LW von der in Schritt S21 erhaltenen von der Last stammenden Kraft FT2 in der z-Achsen-Richtung erhalten wird.
  • Somit wirkt die CPU 102 als Korrekturabschnitt 106 (8), der dazu ausgebildet ist, die Zustandsinformation (das Ausgangssignal des zweiten Kraftsensors 92, oder die Kräfte FT2 und die Momente MT2) des Roboters 12 zu korrigieren.
  • Bei Schritt S23 schätzt die CPU 102 einen Störwert E3. Insbesondere schätzte die CPU 102 unter Verwendung des Signalkorrekturwerts H4 oder des Kraftkorrekturwerts H5 und des Momentkorrekturwerts H6, die bei Schritt S12 erlangt wurden, eine Kraft (d.h., den Störwert E3), die auf den zweiten Kraftsensor 92 ausgeübt wird.
  • Der Störwert E3 enthält den Werkstückstörwert, der aufgrund der Gravitationskraft des Werkstücks W auf den zweiten Kraftsensor 92 ausgeübt wird, nicht und kann als Kontaktstörwert, der aufgrund des Kontakts zwischen einem umgebenden Objekt (z.B. einem Betreiber) und dem Werkstück W auf den zweiten Kraftsensor 92 ausgeübt wird, angesehen werden. Somit wirkt die CPU 102 bei dieser Ausführungsform als Störungsschätzabschnitt 104 (8), der dazu ausgebildet ist, den Störwert E3 zu schätzen.
  • Bei Schritt S24 bestimmt die CPU 102, ob der bei Schritt S23 geschätzte Störwert E3 gleich oder größer als ein vorherbestimmter Schwellenwert γ ist (d.h., |E3| ≥ γ) oder nicht. Der Schwellenwert γ ist für den Störwert E3 vorherbestimmt und in dem Systemspeicher 56 gespeichert.
  • Wenn die CPU 102 bestimmt, dass der Störwert E3 gleich oder größer als der vorherbestimmte Schwellenwert γ ist (d.h., JA bestimmt), geht sie zu Schritt S25 über. Wenn die CPU 102 andererseits bestimmt, dass der Störwert E3 kleiner als der Schwellenwert γ ist (d.h., NEIN bestimmt), geht sie zu Schritt S6 über. Nach dem Bestimmen von NEIN bei Schritt S24 führt die CPU 102 so wie bei dem in 3 dargestellten Ablauf der Reihe nach die Schritte S6 und S7 aus.
  • Wenn sie allerdings bei Schritt S24 JA bestimmt, führt die CPU 102 bei Schritt S25 einen Folgebetrieb aus. Hier wird ein Fall angenommen, bei dem ein Betreiber einen Teil P (7) des Werkstücks W hält und den Teil P mit einer Kraft FW zieht. In diesem Fall stimmt der bei dem jüngsten Schritt S23 geschätzte Störwert E3 im Wesentlichen mit der Kraft FW überein.
  • Bei dieser Ausführungsform erzeugt die CPU 102 einen Folgebetriebsbefehl, um den Roboter 12 gemäß Kräften in der x-Achsen-, der y-Achsen und der z-Achsen-Richtung des Sensorkoordinatensystems CS2 und Momenten um die x-Achsen-, die y-Achsen- und die z-Achsen-Richtung in dem Sensorkoordinatensystem CS2, die den bei dem jüngsten Schritt S23 geschätzten Störwert E3 (d.h., die Kraft FW) bilden, zu betreiben.
  • Dann sendet die CPU 102 den erzeugten Folgebetriebsbefehl an jeden Servomotor 38, um die Roboterhand 26 in die Richtung des Störwerts E3 zu bewegen. Als Ergebnis arbeitet der Roboter 12 so, dass er der Kraft FW, die durch einen Betreiber auf das Werkstück W ausgeübt wird, folgt.
  • Somit wirkt die CPU 102 bei dieser Ausführungsform als Folgebefehlsabschnitt 102 (8), der dazu ausgebildet ist, den Befehl zum Betreiben des Roboters 12 in der Richtung des Störwerts E3 zu erzeugen. Nach der Ausführung von Schritt S25 kehrt die CPU 102 zu Schritt S24 zurück.
  • Wie oben beschrieben korrigiert die CPU 102 bei dieser Ausführungsform die Zustandsinformation (das Ausgangssignal von dem zweiten Kraftsensor 92, oder die Kräfte FT2 und die Momente MT2) des Roboters 12 so, dass daraus die Komponente des Werkstückstörwerts beseitigt wird, und schätzt sie auf Basis der korrigierten Zustandsinformation den Störwert E3, der mit diesem Kontaktstörwert übereinstimmt.
  • Nach dieser Ausführung ist es möglich, den Kontaktstörwert selbst dann mit einer hohen Genauigkeit zu schätzen, wenn sich die Last L (der Werkstückstörwert DW) durch das Werkstück W mit der Zeit verändert. Entsprechend ist es möglich, den Kontakt zwischen einem umgebenden Objekt und dem Werkstück W mit einer hohen Genauigkeit zu detektieren.
  • Ferner führt die CPU 102 bei dieser Ausführungsform dann, wenn die CPU 102 bei Schritt S24 JA bestimmt, den Folgebetrieb gemäß dem Störwert E3, der einer auf das Werkstück W ausgeübten externen Kraft entspricht, aus.
  • Nach dieser Ausführung kann ein Betreiber die Komponente (z.B. die Roboterhand 26) des Roboters 12 durch Ziehen des Teils P des Werkstücks W mit der Kraft FW in eine gewünschte Richtung ziehen (eine sogenannte Handführungstätigkeit vornehmen).
  • Es ist zu beachten, dass der Kraftsensor (der erste Kraftsensor) 14 bei den oben beschriebenen Ausführungsformen eine Kraft in der senkrecht abwärts verlaufenden Richtung detektiert. Doch der Kraftsensor 14 kann in der Lage sein, Kräfte in mehreren Richtungen zu detektieren.
  • Eine solche Ausführungsform wird unter Bezugnahme auf 10 beschrieben werden. Ein in 10 veranschaulichtes Robotersystem 10' ist eine Abwandlung des oben genannten Robotersystems 10 und unterscheidet sich von dem Robotersystem 10 darin, dass das Robotersystem 10' einen Kraftsensor 14' aufweist.
  • Der Kraftsensor 14' besteht z.B. aus einem Kraftsensor, der mehrere Dehnmessstreifen aufweist, und kann Kräfte in einer x-Achsen-, einer y-Achsen- und einer z-Achsen-Richtung eines Sensorkoordinatensystems CS3 detektieren. Bei dieser Ausführungsform ist das Sensorkoordinatensystem CS3 so festgelegt, dass die x-Achse und die y-Achse des Sensorkoordinatensystems CS3 parallel zu einer horizontalen Ebene verlaufen und die positive z-Achsen-Richtung mit der senkrecht abwärts verlaufenden Richtung übereinstimmt.
  • Hier wird ein Fall angenommen, bei dem der Roboter 12 das Werkstück W hält und in der waagerechten Richtung bewegt. In diesem Fall wird das Werkstück W so bewegt, dass es auf der Umgebung 40 gleitet, wobei die von dem Werkstück W auf die Umgebung 40 ausgeübte Last L eine Lastkomponente Lg in der Gravitationsrichtung und eine Lastkomponente Lh in der waagerechten Richtung enthält.
  • Die Lastkomponente Lh in der waagerechten Richtung ist eine Kraft, die einer von der Gravitationskraft G des Werkstücks W abhängenden Reibungskraft entspricht. Der Kraftsensor 14' kann die Lastkomponente Lg und die Lastkomponente Lh detektieren.
  • Als nächstes wird unter Bezugnahme auf 3 ein Betrieb des Robotersystems 10' beschrieben werden. Nachdem der in 3 dargestellte Ablauf begonnen wurde, führt die CPU 52 des Robotersystems 10' so wie bei den oben beschriebenen Ausführungsformen den Schritt S1 aus.
  • Bei Schritt S2 erlangt die CPU 52 eine Kraft, mit der das Werkstück W durch die Umgebung 40 getragen wird (d.h., die Werkstückstützkraft). Insbesondere sendet die CPU 52 einen Messbefehl an den Kraftsensor 14'.
  • Wenn er den Messbefehl von der CPU 52 erhält, misst der Kraftsensor 14' die Lastkomponenten Lg und Lh der Last L, die von dem Werkstück W auf die Umgebung 40 ausgeübt wird. Die Last L, die die Lastkomponenten Lg und Lh enthält, stimmt mit der oben genannten Werkstückstützkraft überein.
  • Der Kraftsensor 14' misst die Lastkomponenten Lg und Lh der Last L zur Zeit des Erhalts des Messbefehls und sendet Messdaten an die E/A-Schnittstelle 58. Die CPU 52 zeichnet die durch die E/A-Schnittstelle 58 erlangten Messdaten in dem Arbeitsspeicher 56 auf.
  • Bei Schritt S3 schätzt die CPU 52 so wie bei den oben beschriebenen Ausführungsformen den Störwert DT1 auf Basis der Rückmeldeinformation von jedem Servomotor 38.
  • Bei Schritt S4 korrigiert die CPU 52 den bei Schritt S3 geschätzten Störwert DT1. Insbesondere subtrahiert die CPU 52 die bei Schritt S2 erlangte Lastkomponente Lg der Last L von der auf das Werkstück W wirkenden Gravitationskraft G, um eine sich verändernde Werkstücklastkomponente LWg (= G - Lg) zu erhalten.
  • Dann addiert die CPU 52 eine Kraftkomponente Lh‘ ( 10), die durch Umkehren der Richtung der bei Schritt S2 erlangten Lastkomponente Lh der Last L erhalten wurde, zu der berechneten sich verändernden Werkstücklastkomponente LWg, und berechnet sie eine sich verändernde Werkstücklastkomponente LW2 (= LWg + Lh‘).
  • Die so berechnete sich verändernde Werkstücklastkomponente LW2 kann als ein Werkstückstörwert DW1‘ angesehen werden, der einer Kraft entspricht, die durch die Gravitationskraft des Werkstücks W am Beginn von Schritt S2 auf die Roboterhand 26 ausgeübt wird.
  • Dann korrigiert die CPU 52 den bei Schritt S3 geschätzten Störwert DT1 durch Subtrahieren der sich verändernden Werkstücklast LW2 von dem Störwert DT1, um einen korrigierten Störwert E4 (= DT1 - LW2) zu erhalten. Der korrigierte Störwert E4 kann als der Kontaktstörwert DC1 angesehen werden.
  • Bei Schritt S5 bestimmt die CPU 52, ob der korrigierte Störwert E4 gleich oder größer als ein vorherbestimmter Schwellenwert δ ist (d.h., E4 ≥ δ) oder nicht. Der Schwellenwert δ ist für den korrigierten Störwert E4 vorherbestimmt und in dem Systemspeicher 54 gespeichert.
  • Wenn die CPU 52 bestimmt, dass der korrigierte Störwert E4 gleich oder größer als der vorherbestimmte Schwellenwert δ ist (d.h. JA bestimmt), geht sie zu Schritt S8 über. Wenn die CPU 52 andererseits bestimmt, dass der korrigierte Störwert E4 kleiner als der vorherbestimmte Schwellenwert δ ist (d.h., NEIN bestimmt), geht sie zu Schritt S6 über.
  • Nach Schritt S5 führt die CPU 52 so wie bei den oben beschriebenen Ausführungsformen die Schritte S6 und S7 oder die Schritte S8 und S9 aus.
  • Nach dieser Ausführungsform kann der Kontaktstörwert DC1 unter Berücksichtigung einer Reibungskraft, die durch das auf der Umgebung 40 gleitende Werkstück W erzeugt wird, genauer geschätzt werden.
  • Es ist zu beachten, dass einem Fachmann offensichtlich sein wird, dass in dem Robotersystem 70 oder 90 der Kraftsensor 14' anstelle des ersten Kraftsensors 14 eingesetzt werden kann. In diesem Fall führt die CPU 52, 82 oder 102 den in 2 oder 3 dargestellten Ablauf aus, wobei die sich verändernde Werkstücklast LW2 = LWg + Lh‘ ist.
  • Es ist zu beachten, dass die Rückmeldeinformation von den Servomotoren 38 nicht auf das Lastmoment oder die Umdrehungsgeschwindigkeit, die oben beschrieben wurden, beschränkt ist, sondern dass jede beliebige Information verwendet werden kann, die einen Ausgang von einer Detektionsvorrichtung, welche zum Erhalt von Informationen, die die Schätzung eines Störwerts ermöglichen, in der Lage ist, darstellt.
  • Ferner kann eine auf den Roboter 12 ausgeübte Kraft, die aus der Kraft FT (FT2) und dem Moment MT (MT2), die bzw. das durch den zweiten Kraftsensor 72 (92) gemessen wird, zu erhalten ist, als die oben genannte Zustandsinformation verwendet werden.
  • Ferner kann eine obere Fläche der Umgebung 40, auf der das Werkstück W angeordnet ist, eine schräge Ebene sein, die in Bezug auf die waagerechte Richtung geneigt ist, oder eine senkrechte Ebene sein, die parallel zu der senkrechten Richtung verläuft. In diesem Fall kann der Kraftsensor 14, 14' so ausgebildet sein, dass er eine Kastenform aufweist und eine Last, die von dem Werkstück W auf die Umgebung 40 ausgeübt wird, misst.
  • Obwohl die Erfindung anhand von Ausführungsformen der Erfindung beschrieben wurde, beschränken die oben beschriebenen Ausführungsformen die Erfindung nach den Ansprüchen nicht. Und obwohl in dem technischen Umfang der Erfindung auch eine Ausführungsweise enthalten sein kann, bei der die bei den Ausführungsformen der Erfindung beschriebenen Merkmale kombiniert sind, sind für das „Mittel zur Lösung“ der Erfindung nicht immer alle Kombinationen dieser Merkmale wesentlich. Ferner wird Fachleuten auch offensichtlich sein, dass den obigen Ausführungsformen verschiedene Abwandlungen oder Verbesserungen hinzugefügt werden können.
  • Es sollte angemerkt werden, dass im Hinblick auf die Ausführungsreihenfolge jeder Verarbeitung wie etwa einer Tätigkeit, eines Vorgangs, eines Schritts, eines Prozesses, eines Stadiums und dergleichen bei der Vorrichtung, dem System, dem Programm und dem Verfahren, die bzw. das in den Ansprüchen der Beschreibung und den Zeichnungen angegeben ist, jede Verarbeitung in einer optionalen Reihenfolge ausgeführt werden kann, sofern nicht ausdrücklich eine Beschreibung wie insbesondere „vor“ und „bevor“ erfolgt und ein Ausgang einer vorhergehenden Verarbeitung bei einer anschließenden Verarbeitung verwendet wird. Auch wenn im Hinblick auf den Betriebsablauf in den Ansprüchen, der Beschreibung und den Zeichnungen zur Bequemlichkeit eine Beschreibung unter Verwendung von „zuerst“, „als nächstes“, „dann“ und dergleichen vorgenommen wurde, soll dies nicht bedeuten, dass die Ausführung in dieser Reihenfolge wesentlich ist.

Claims (8)

  1. Robotersteuervorrichtung (50), die dazu ausgebildet ist, einen Roboter (12), der ein durch eine Umgebung (40) getragenes Werkstück (W) anhebt, zu steuern, wobei die Robotersteuervorrichtung umfasst: einen Stützkraftdatenerlangungsabschnitt (58), der dazu ausgebildet ist, Messdaten einer sich während des Anhebens des Werkstücks durch den Roboter verändernden Werkstückstützkraft durch die Umgebung zu erlangen; einen Störungsschätzabschnitt (64), der dazu ausgebildet ist, unter Verwendung einer Zustandsinformation des Roboters einen auf den Roboter ausgeübten Störwert zu schätzen; und einen Korrekturabschnitt (66), der dazu ausgebildet ist, den durch den Störungsschätzabschnitt geschätzten Störwert oder die in den Störungsschätzabschnitt eingegebene Zustandsinformation unter Verwendung der durch den Stützkraftdatenerlangungsabschnitt erlangten Messdaten zu korrigieren.
  2. Robotersteuervorrichtung nach Anspruch 1, wobei der Korrekturabschnitt dazu ausgebildet ist, durch Subtrahieren der Messdaten von einer auf das Werkstück ausgeübten Gravitationskraft eine sich verändernde Werkstücklast zu erhalten; und den Störwert durch Subtrahieren der sich verändernden Werkstücklast von dem Störwert zu korrigieren.
  3. Robotersteuervorrichtung (80) nach Anspruch 2, wobei der Störungsschätzabschnitt (84) den Störwert unter Verwendung von Messdaten eines Kraftsensors (72) als Zustandsinformation schätzt, der dazu ausgebildet ist, eine auf den Roboter ausgeübte Kraft zu messen, wobei der Korrekturabschnitt (86) dazu ausgebildet ist, eine Komponente der Kraft, die durch die sich verändernde Werkstücklast auf den Roboter ausgeübt wird, zu erhalten, die in den Messdaten des Kraftsensors enthalten ist; und den Störwert durch Subtrahieren der Komponente von dem Störwert zu korrigieren.
  4. Robotersteuervorrichtung nach Anspruch 1, wobei der Korrekturabschnitt dazu ausgebildet ist, durch Subtrahieren der Messdaten von einer auf das Werkstück ausgeübten Gravitationskraft eine sich verändernde Werkstücklast zu erhalten; und die Zustandsinformation auf Basis einer Zustandsveränderung aufgrund der sich verändernden Werkstücklast zu korrigieren, wobei der Störungsschätzabschnitt den Störwert unter Verwendung der durch den Korrekturabschnitt korrigierten Zustandsinformation schätzt.
  5. Robotersteuervorrichtung (100) nach Anspruch 4, wobei der Roboter eine Roboterhand (26) aufweist, die in der Lage ist, das Werkstück zu ergreifen, wobei der Korrekturabschnitt (106) die Zustandsinformation durch Subtrahieren einer Komponente, die auf die sich verändernde Werkstücklast zurückgeht, von Messdaten eines Kraftsensors (92), der dazu ausgebildet ist, eine auf die Roboterhand ausgeübte Kraft als Zustandsinformation zu messen, korrigiert.
  6. Robotersteuervorrichtung nach Anspruch 5, ferner umfassend einen Folgebefehlsabschnitt (108), der dazu ausgebildet ist, einen Befehl zum Betreiben des Roboters gemäß dem Störwert zu erzeugen, wenn der durch den Störungsschätzabschnitt geschätzte Störwert einen vorherbestimmten Schwellenwert übersteigt.
  7. Robotersteuervorrichtung nach einem der Ansprüche 1 bis 6, ferner umfassend einen Betriebsbefehlsabschnitt (68), der dazu ausgebildet ist, einen Befehl zum Anhalten oder Zurückziehen des Roboters zu erzeugen, wenn der Störwert, der durch den Korrekturabschnitt korrigiert wird oder durch den Störungsschätzabschnitt unter Verwendung der von dem Korrekturabschnitt korrigierten Zustandsinformation geschätzt wird, einen vorherbestimmten Schwellenwert übersteigt.
  8. Verfahren zum Schätzen eines Störwerts, der auf einen Roboter (12) ausgeübt wird, welcher ein durch eine Umgebung (40) getragenes Werkstück (W) anhebt, wobei das Verfahren umfasst: das Erlangen von Messdaten einer sich während des Anhebens des Werkstücks durch den Roboter verändernden Werkstückstützkraft; das Schätzen eines auf den Roboter ausgeübten Störwerts unter Verwendung einer Zustandsinformation des Roboters; und das Korrigieren des geschätzten Störwerts oder der Zustandsinformation unter Verwendung der erlangten Messdaten.
DE102017127995.4A 2016-12-02 2017-11-27 Robotersteuervorrichtung zum Steuern eines Roboters und Verfahren zum Schätzen eines auf den Roboter ausgeübten Störwerts Active DE102017127995B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-235103 2016-12-02
JP2016235103A JP6420298B2 (ja) 2016-12-02 2016-12-02 ロボットを制御するロボット制御装置、およびロボットに加わる外乱値を推定する方法

Publications (2)

Publication Number Publication Date
DE102017127995A1 true DE102017127995A1 (de) 2018-06-07
DE102017127995B4 DE102017127995B4 (de) 2019-11-28

Family

ID=62163753

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017127995.4A Active DE102017127995B4 (de) 2016-12-02 2017-11-27 Robotersteuervorrichtung zum Steuern eines Roboters und Verfahren zum Schätzen eines auf den Roboter ausgeübten Störwerts

Country Status (4)

Country Link
US (1) US10493632B2 (de)
JP (1) JP6420298B2 (de)
CN (1) CN108145728B (de)
DE (1) DE102017127995B4 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10449676B2 (en) * 2015-03-23 2019-10-22 National Research Council Of Canada Multi-jointed robot deviation under load determination
JP6392910B2 (ja) * 2017-01-13 2018-09-19 ファナック株式会社 ロボットの安全確保動作機能を備えた人間協働ロボットシステム
EP4002053A4 (de) * 2019-07-18 2023-12-13 Kabushiki Kaisha Yaskawa Denki Steuersystem, steuervorrichtung und steuerverfahren
US11480871B2 (en) 2020-03-30 2022-10-25 Canon Kabushiki Kaisha Apparatus and method for improving accuracy of imprint force application in imprint lithography
CN113771039B (zh) * 2020-05-07 2022-08-02 牧今科技 用于估计机器人操作参数的方法和计算系统
US11691285B2 (en) 2020-05-07 2023-07-04 Mujin, Inc. Method and computing system for estimating parameter for robot operation
US11776833B2 (en) 2020-12-22 2023-10-03 Canon Kabushiki Kaisha Method for improving accuracy of imprint force application in imprint lithography
CN116079746B (zh) * 2023-03-29 2023-06-23 纳博特南京科技有限公司 一种柔性抓取方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09216185A (ja) * 1996-02-13 1997-08-19 Nippon Telegr & Teleph Corp <Ntt> ロボット制御方法及びロボットシステム
JP3188953B2 (ja) * 1999-10-13 2001-07-16 経済産業省産業技術総合研究所長 パワーアシスト装置およびその制御方法
US6575317B2 (en) * 2000-10-18 2003-06-10 Gorbel, Inc. Pendant-responsive crane control
JP2002355782A (ja) 2001-05-31 2002-12-10 Yaskawa Electric Corp ロボット先端の作用力推定装置および作用力推定方法
JP2010247309A (ja) * 2009-04-20 2010-11-04 Toyota Motor Corp ロボットアーム、及びその制御方法
JP5383760B2 (ja) 2011-09-09 2014-01-08 ファナック株式会社 ワーク質量測定機能を備えたロボット
WO2013175777A1 (ja) * 2012-05-23 2013-11-28 パナソニック株式会社 ロボット、ロボットの制御装置、制御方法、及び制御プログラム
CN103507070B (zh) 2012-06-25 2015-11-18 发那科株式会社 使用三轴力传感器进行力控制的机器人控制装置
JP6007636B2 (ja) * 2012-07-20 2016-10-12 セイコーエプソン株式会社 ロボット制御システム及びロボット制御装置
JP5820013B1 (ja) * 2014-04-30 2015-11-24 ファナック株式会社 ワークを把持して搬送するロボットの安全監視装置
JP2015217451A (ja) 2014-05-14 2015-12-07 ファナック株式会社 外力監視機能を有するワーク搬送方法システム
JP5893684B2 (ja) 2014-07-09 2016-03-23 ファナック株式会社 衝突判定部による誤判定を防止するロボット制御装置
JP5927284B1 (ja) * 2014-12-22 2016-06-01 ファナック株式会社 人との接触力を検出してロボットを停止させるロボット制御装置
JP6055002B2 (ja) 2015-02-20 2016-12-27 ファナック株式会社 ロボットを退避動作させる人間協調ロボットシステム
US10363164B2 (en) * 2015-08-11 2019-07-30 The Johns Hopkins University Tool and tool system having independent axial and transverse force sensing

Also Published As

Publication number Publication date
JP6420298B2 (ja) 2018-11-07
DE102017127995B4 (de) 2019-11-28
CN108145728B (zh) 2019-10-29
CN108145728A (zh) 2018-06-12
US20180154526A1 (en) 2018-06-07
JP2018089744A (ja) 2018-06-14
US10493632B2 (en) 2019-12-03

Similar Documents

Publication Publication Date Title
DE102017127995B4 (de) Robotersteuervorrichtung zum Steuern eines Roboters und Verfahren zum Schätzen eines auf den Roboter ausgeübten Störwerts
DE102017003000B4 (de) Mit Menschen kooperierendes Robotersystem
DE102017117928B4 (de) Robotersteuereinheit für einen Montageroboter
DE112013003209B4 (de) Robotersteuerungsvorrichtung und Robotersteuerungsverfahren
DE102018000445B4 (de) Steuersystem mit Lernsteuerfunktionen und Steuerverfahren
DE102007060682B4 (de) Verfahren und Vorrichtung zur modellbasierten Regelung eines Manipulators
DE102012106771B4 (de) Controller für elektromotor, umfassend eine funktion zum simultanen schätzen von trägheit, reibung und federkonstante
DE102017128652B4 (de) Robotersystem mit einer mehrzahl von robotern, robotersteuerung und robotersteuerverfahren
DE102018001026A1 (de) Robotersystem mit einer lernenden steuerungsfunktion und lernendes steuerungsverfahren
EP2853354B1 (de) Lageregelung mit Kollisionsvermeidung und Anpassung eines Maschinenmodells an die reale Maschine
DE102014202145A1 (de) Verfahren zum Programmieren eines Industrieroboters und zugehörigerIndustrieroboter
DE102016000352A1 (de) Robotersteuervorrichtung, die den roboter basierend auf einer auf den roboter ausgeübten externen kraft steuert, sowie robotersystem
DE112016002013T5 (de) Systeme und Verfahren zur Steuerung einer Robotermanipulation
DE102018114445B4 (de) Vorrichtung und Verfahren zur Einschätzung einer Position des Schwerpunkts eines Roboters
WO2019243394A1 (de) Manueller anlernvorgang an einem robotermanipulator mit kraft-/momentenvorgabe
DE102020107385B4 (de) Betriebseinstellvorrichtung zum einstellen des betriebs einer robotervorrichtung
DE102018007525B4 (de) Bearbeitungssystem und Verfahren zum Steuern einer Bearbeitungsmaschine
DE102019134665B3 (de) Kalibrieren eines virtuellen Kraftsensors eines Robotermanipulators
DE102018112370B4 (de) Richtungsabhängige Kollisionsdetektion für einen Robotermanipulator
DE102019122416B4 (de) Roboter
DE102019134666B4 (de) Kalibrieren eines virtuellen Kraftsensors eines Robotermanipulators
EP3328595A2 (de) Verfahren und system zum steuern eines roboters
DE102017012348B3 (de) Mit einer Formungsmaschine und einer Formproduktentnahmevorrichtung versehenes Formungssystem
DE102016013083B4 (de) Kalibrieren eines Modells eines Prozess-Roboters und Betreiben eines Prozess-Roboters
DE102017215432B4 (de) Verfahren und Vorrichtung zur Charakterisierung eines Kontinuumgelenks

Legal Events

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