DE102015004475B4 - Robotersteuervorrichtung zum Steuern eines Roboters, der gemäß einer aufgebrachten Kraft bewegt wird - Google Patents

Robotersteuervorrichtung zum Steuern eines Roboters, der gemäß einer aufgebrachten Kraft bewegt wird Download PDF

Info

Publication number
DE102015004475B4
DE102015004475B4 DE102015004475.3A DE102015004475A DE102015004475B4 DE 102015004475 B4 DE102015004475 B4 DE 102015004475B4 DE 102015004475 A DE102015004475 A DE 102015004475A DE 102015004475 B4 DE102015004475 B4 DE 102015004475B4
Authority
DE
Germany
Prior art keywords
force
axis
robot
axes
operating
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.)
Active
Application number
DE102015004475.3A
Other languages
English (en)
Other versions
DE102015004475A1 (de
Inventor
c/o FANUC CORPORATION Iwatake Takahiro
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 DE102015004475A1 publication Critical patent/DE102015004475A1/de
Application granted granted Critical
Publication of DE102015004475B4 publication Critical patent/DE102015004475B4/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/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • 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
    • B25J9/00Programme-controlled manipulators
    • B25J9/0081Programme-controlled manipulators with master teach-in means
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Manipulator (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Algebra (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)

Abstract

Robotersteuervorrichtung (10) eines Robotersystems (11), die einen Roboter (50) auf der Grundlage einer auf den Roboter, der eine Mehrzahl von Achsen umfasst, aufgebrachten Kraft bewegt, wobei die Robotersteuervorrichtung umfasst:eine Kraftmesseinheit (21), die die auf eine Spitze des Roboters aufgebrachte Kraft misst;eine erste Kraftberechnungseinheit (22), die eine Betätigungskraft zum Ausführen eines Bewegungsvorgangs von mindestens einer von einer Position und einer Haltung der Spitze des Roboters auf der Grundlage der von der Kraftmesseinheit gemessenen Kraft berechnet;eine zweite Kraftberechnungseinheit (23), die eine Betätigungskraft zum Ausführen eines Bewegungsvorgangs einer Position jeder der Mehrzahl von Achsen des Roboters auf der Grundlage der von der Kraftmesseinheit gemessenen Kraft berechnet;eine Betätigungsbefehlseinheit (24), die einen Betätigungsbefehl zum Bewegen des Roboters auf der Grundlage der von der Kraftmesseinheit gemessenen Kraft ausgibt und auf Grundlage der Wahl eines ersten oder zweiten Steuermodi;eine Einheit (27) zur Bestimmung der Nähe zu einer singulären Konfiguration, die bestimmt, ob der Roboter sich in der Nähe einer singulären Konfiguration befindet oder nicht; undeine Betätigungsachseneinstelleinheit (25), die gemäß einer gegenwärtigen Position jeder der Achsen, wenn die Einheit zur Bestimmung der Nähe zu einer singulären Konfiguration bestimmt, dass der Roboter sich in der Nähe der singulären Konfiguration befindet, eine oder mehrere vorbestimmte Achsen, die eine Achse umfassen, die als ein Faktor für die Nähe zu der singulären Konfiguration dient, oder eine Achse, die dazu veranlasst wird, durch die Nähe zu der singulären Konfiguration zu verlaufen, als eine oder mehrere Betätigungsachsen einstellt, die gemäß der Kraft bewegt werden, und eine gemäß einer Richtung der Kraft bestimmten Bewegungsrichtung der einen oder mehreren Betätigungsachsen einstellt,wobei die Betätigungsbefehlseinheit den ersten Steuermodus umfasst, der, wenn die Einheit zur Bestimmung der Nähe zu einer singulären Konfiguration bestimmt, dass der Roboter sich nicht in der Nähe der singulären Konfiguration befindet, einen Betätigungsbefehl zum Bewegen der mindestens einen von der Position und der Haltung der Spitze des Roboters auf der Grundlage der von der ersten Kraftberechnungseinheit berechneten Betätigungskraft ausgibt, und den zweiten Steuermodus umfasst, der, wenn die Einheit zur Bestimmung der Nähe zu einer singulären Konfiguration bestimmt, dass der Roboter sich in der Nähe der singulären Konfiguration befindet, einen Betätigungsbefehl zum Bewegen einer Position der einen oder mehreren von der Betätigungsachseneinstelleinheit eingestellten Betätigungsachsen auf der Grundlage der von der zweiten Kraftberechnungseinheit berechneten Betätigungskraft und der von der Betätigungsachseneinstelleinheit eingestellten Bewegungsrichtung ausgibt.

Description

  • Hintergrund der Erfindung
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft eine Robotersteuervorrichtung zum Steuern eines gemäß einer auf den Roboter aufgebrachten Kraft bewegten Roboters. Genauer betrifft die Erfindung eine Robotersteuervorrichtung eines Robotersystems, das einen Roboter auf der Grundlage einer auf den Roboter, der eine Mehrzahl von Achsen umfasst, aufgebrachten Kraft bewegt.
  • Beschreibung des Standes der Technik
  • Direct-Teaching ist als ein Roboterbetätigungsverfahren zum Bewegen eines Roboters durch Aufbringen einer Kraft auf den Roboter oder ein Verfahren zum Lehren einer Position durch Bewegen des Roboters bekannt. In solch einem Fall wird Kraft in eine Richtung aufgebracht, in die der Roboter bewegt werden soll, um den Roboter direkt zu führen, wodurch der Roboter in eine erwünschte Position und/oder eine erwünschte Haltung in einem orthogonalen Koordinatensystem bewegt werden kann.
  • Die japanische offengelegte Patentveröffentlichung Nr. JP S56- 85 106 A offenbart ein Verfahren zum Bewegen einer Position und einer Haltung einer Spitze eines Roboterarms auf der Grundlage eines Signals, das von einem Kraftdetektor beim Betätigen einer manuellen Betätigungseinheit des an der Spitze des Roboterarms angebrachten Kraftdetektors erzeugt wird.
  • Die japanische offengelegte Patentveröffentlichung Nr. JP H06- 250 728 A offenbart eine Direct-Teaching-Vorrichtung. In dieser Vorrichtung detektiert ein an einem Roboter angebrachter Kraftsensor eine künstlich aufgebrachte Kraft und es werden unter Verwendung eines Signals der Kraft eine Position und eine Haltung des Roboters bewegt, während ein Roboterarm nur in einer bestimmten Richtung in einem kartesischen Koordinatensystem bewegt wird.
  • Die japanische offengelegte Patentveröffentlichung Nr. JP H11- 239 988 A offenbart ein Verfahren zum Vermeiden von singulären Punkten beim Direct-Teaching. In diesem Verfahren wird beim Bewegen des Roboters beim Direct-Teaching eine Geschwindigkeitskomponente, die eine Spitze des Roboterarms an einem singulären Punkt nicht erreichen kann, durch eine im Voraus definierte Korrekturformel verringert, wenn die Spitze davon sich dem singulären Punkt annähert. Der singuläre Punkt ist ein Zustand, in dem der Roboter sich in einer singulären Konfiguration befindet.
  • Eine singuläre Konfiguration ist eine Haltung, die zu einem Zustand führt, in dem eine Position und/oder eine Haltung der Spitze des Roboterarms in einem orthogonalen Koordinatensystem nicht eindeutig invers in eine Position jeder Achse umgewandelt werden kann, eine Haltung, die zu einem Zustand führt, in dem die Position und/oder die Haltung der Spitze des Roboterarms in dem orthogonalen Koordinatensystem nicht in eine gewisse Richtung bewegt werden kann, und eine Haltung, die zu einem Zustand führt, in dem eine Jacobi-Matrix, die eine Beziehung zwischen einer Geschwindigkeit der Spitze des Roboterarms und der Gelenkgeschwindigkeit darstellt, kein voller Rang ist. In der Position und/oder der Haltung der Spitze davon in der Nähe einer solch singulären Konfiguration ist es tendenziell schwierig, die Position und/oder die Haltung davon in dem orthogonalen Koordinatensystem zu ändern; es kann eine Achse geben, die sich mit einer übermäßigen Geschwindigkeit bewegt, oder eine Bewegungsoperation des Roboters ist in der Positionssteuerung tendenziell instabil. Unter solchen Umständen kann eine Bedienungsperson beim Direct-Teaching in Gefahr geraten. Um eine solche Gefahr zu vermeiden, beziehen sich die herkömmlichen Techniken auf ein Verfahren zum Verlangsamen/Anhalten eines Roboters beim Direct-Teaching, ein Verfahren zum Verlagern der Bewegungsbahn, um eine singuläre Konfiguration zu vermeiden, und Ähnliches.
  • In der japanischen offengelegten Patentveröffentlichung Nr. JP S56- 85 106 A werden die Position und/oder die Haltung der Spitze des Roboterarms in dem orthogonalen Koordinatensystem gemäß Kraft bewegt. Dadurch kann in dem Verfahren der japanischen offengelegten Patentveröffentlichung Nr. JP S56- 85 106 A die Spitze des Roboterarms nicht in die Nähe einer singulären Konfiguration bewegt werden. Außerdem kann in der japanischen offengelegten Patentveröffentlichung Nr. JP S56- 85 106 A die Position jeder erwünschten Achse während des Direct-Teachings nicht bewegt werden.
  • In der japanischen offengelegten Patentveröffentlichung Nr. JP H06- 250 728 A wird beim Bewegen des Roboters durch Direct-Teaching die Bewegungsrichtung des Roboters auf die spezifische Richtung beschränkt, um die Bedienbarkeit zu verbessern. Die spezifische Richtung ist eine der Position und/oder der Haltung der Spitze des Roboterarms in dem kartesischen Koordinatensystem zugeordnete Richtung. Dementsprechend schlägt die japanische offengelegte Patentveröffentlichung Nr. JP H06- 250 728 A keine Beschränkung auf eine zu steuernde Achse und Ähnliches, wie z.B. das Schalten auf Steuerung jeder Achse und das Treiben nur einer bestimmten erwünschten Achse beim Direct-Teaching vor.
  • In der japanischen offengelegten Patentveröffentlichung Nr. JP H11- 239 988 A wird die Bewegungsbahn durch Einstellen der Geschwindigkeitskomponente, die an dem singulären Punkt nicht erreicht werden kann, auf Null geändert, so dass die Spitze des Roboterarms nicht durch den singulären Punkt verläuft. Folglich kann in der japanischen offengelegten Patentveröffentlichung Nr. JP H11- 239 988 A die Bewegungsbahn in eine andere Richtung als die Richtung der auf den Roboter aufgebrachten Kraft verlagert werden, wodurch der Roboter in eine Position bewegt werden kann, die von der Bedienungsperson nicht beabsichtigt ist. Außerdem erfordert eine gewisse Aufgabe die Bewegung des Roboters in eine Position in der Nähe zu einer singulären Konfiguration. Jedoch kann in der japanischen offengelegten Patentveröffentlichung Nr. JP H11- 239 988 A sogar in solch einem Fall der Roboter nicht zu oder in die Nähe der singulären Konfiguration bewegt werden.
  • Die vorliegende Erfindung ist in Anbetracht solcher Umstände geschaffen worden. Es ist eine Aufgabe der Erfindung, eine Robotersteuervorrichtung bereitzustellen, die beim Bewegen einer Position und/oder einer Haltung einer Spitze eines Roboters in einem orthogonalen Koordinatensystem durch Bewegen des Roboters durch Aufbringung einer Kraft auf die Spitze des Roboterarms ermöglicht, dass die Spitze davon in eine Position bewegt wird, in die es schwierig oder unmöglich ist, die Spitze davon zu bewegen. Außerdem wird während der Bewegung der Position und/oder der Haltung der Spitze des Roboterarms in dem orthogonalen Koordinatensystem durch Aufbringen einer Kraft auf die Spitze davon angestrebt, dass ein Roboterbewegungsmodus ohne Verwendung einer bestimmten Eingabevorrichtung oder Ähnlichem und ohne Ausführen irgendeiner eingegebenen Aufgabe oder Ähnlichem für den Wechsel des Bewegungsmodus gewechselt wird. Ferner wird angestrebt, dass der Roboter während des Direct-Teachings sogar in der Nähe zu einer singulären Konfiguration stabil bewegt wird.
  • Das Dokument US 5 880 956 A offenbart ein Roboter-Lernprogrammiersystem, bei dem ein Endeffektor entlang einer Reihe von vorgegebenen Wegpunkten zu einer Arbeitsstation führbar ist. An ausgewählten Wegpunkten werden dabei Daten bezüglich der Position und Orientierung des Endeffektors gespeichert und basierend auf diesen Daten wird eine Simulation durchgeführt.
  • Das Dokument DE 10 2012 009 010 A1 offenbart ein Roboter-Lernverfahren durch manuelles Bewegen, bei dem an vorgegebenen Positionen ausgeübte Kräfte und/oder Drehmomente gespeichert und den jeweiligen Positionen zugeordnet werden.
  • Das Dokument DE 10 2009 018 403 A1 offenbart ein Verfahren zur Regelung eines mehrachsigen Manipulators, insbesondere eines Roboters, bei dem eine Führungsachse nachgiebig und eine weitere Achse steif geregelt wird, wobei ein Soll-Wert der weiteren Achse auf Basis eines Ist-Wertes der nachgiebig geregelten Führungsachse bestimmt wird.
  • Das Dokument DE 10 2007 062 108 A1 offenbart ein Verfahren zum Programmieren eines Industrieroboters, für das der Industrieroboter zu einer virtuellen Fläche im Raum manuell geführt wird und bei Erreichen dieser Fläche sich nicht weiter manuell führen lässt. Anschließend wird diejenige Kraft und/oder das Drehmoment ermittelt und gespeichert, die bzw. das auf den Industrieroboter wirkt, wenn trotz Erreichens der virtuellen Fläche versucht wird, den Industrieroboter weiter manuell zu führen.
  • Kurzzusammenfassung der Erfindung
  • Um die oben beschriebene Aufgabe zu erreichen, wird gemäß einem ersten Aspekt der Erfindung eine Robotersteuervorrichtung eines Robotersystems bereitgestellt, die einen Roboter auf der Grundlage einer auf den Roboter, der eine Mehrzahl von Achsen umfasst, aufgebrachten Kraft bewegt, wobei die Robotersteuervorrichtung umfasst: eine Kraftmesseinheit, die die auf die Spitze des Roboters aufgebrachte Kraft misst; eine erste Kraftberechnungseinheit, die eine Betätigungskraft zum Ausführen einer Bewegungsoperation von mindestens einer von einer Position und einer Haltung der Spitze des Roboters auf der Grundlage der von der Kraftmesseinheit gemessenen Kraft berechnet; eine zweite Kraftberechnungseinheit, die eine Betätigungskraft zum Ausführen einer Bewegungsoperation einer Position jeder der Mehrzahl von Achsen des Roboters auf der Grundlage der von der Kraftmesseinheit gemessenen Kraft berechnet; eine Betätigungsbefehlseinheit, die einen Betätigungsbefehl zum Bewegen des Roboters auf der Grundlage der von der Kraftmesseinheit gemessenen Kraft ausgibt und auf Grundlage der Wahl eines ersten oder zweiten Steuermodi; eine Einheit zur Bestimmung der Nähe zu einer singulären Konfiguration, die bestimmt, ob sich der Roboter in der Nähe einer singulären Konfiguration befindet oder nicht; und eine Betätigungsachseneinstelleinheit, die gemäß einer gegenwärtigen Position jeder der Achsen zu einem Zeitpunkt, wenn die Einheit zur Bestimmung der Nähe zu einer singulären Konfiguration bestimmt, dass der Roboter sich in der Nähe der singulären Konfiguration befindet, eine oder mehrere vorbestimmte Achsen, die eine Achse, die als ein Faktor dafür dient, sich in der Nähe zu der singulären Konfiguration zu befinden, oder eine Achse, die dazu veranlasst wird, in der Nähe zu der singulären Konfiguration zu verlaufen, enthalten, als eine oder mehrere Betätigungsachsen, die gemäß der Kraft bewegt werden, einstellt und eine Bewegungsrichtung der einen oder mehreren Betätigungsachsen einstellt, die gemäß einer Richtung der Kraft bestimmt wird, wobei die Betätigungsbefehlseinheit den ersten Steuermodus, der, wenn die Einheit zur Bestimmung der Nähe zu einer singulären Konfiguration bestimmt, dass sich der Roboter nicht in der Nähe der singulären Konfiguration befindet, einen Betätigungsbefehl zum Bewegen der mindestens einen von der Position und der Haltung der Spitze des Roboters auf der Grundlage der von der ersten Kraftberechnungseinheit berechneten Betätigungskraft ausgibt, und den zweiten Steuermodus, der, wenn die Einheit zur Bestimmung der Nähe zu einer singulären Konfiguration bestimmt, dass der Roboter sich in der Nähe der singulären Konfiguration befindet, einen Betätigungsbefehl zum Bewegen einer Position der einen oder mehreren von der Bedienungsachseneinstelleinheit eingestellten Betätigungsachsen auf der Grundlage der von der zweiten Kraftberechnungseinheit berechneten Betätigungskraft und der von der Betätigungsachseneinstelleinheit eingestellten Bewegungsrichtung ausgibt, umfasst.
  • Gemäß einem zweiten Aspekt der Erfindung wird eine Robotersteuervorrichtung eines Robotersystems bereitgestellt, die einen Roboter auf der Grundlage einer auf den Roboter, der eine Mehrzahl von Achsen umfasst, aufgebrachten Kraft bewegt, wobei die Robotersteuervorrichtung umfasst: eine Kraftmesseinheit, die die auf die Spitze des Roboters aufgebrachte Kraft misst; eine erste Kraftberechnungseinheit, die eine Betätigungskraft zum Ausführen einer Bewegungsoperation mindestens einer von einer Position und einer Haltung der Spitze des Roboters auf der Grundlage der von der Kraftmesseinheit gemessenen Kraft berechnet; eine zweite Kraftberechnungseinheit, die eine Betätigungskraft zum Ausführen einer Bewegungsoperation einer Position jeder der Mehrzahl von Achsen des Roboters auf der Grundlage der von der Kraftmesseinheit gemessenen Kraft berechnet; eine Betätigungsbefehleinheit, die einen Betätigungsbefehl zum Bewegen des Roboters auf der Grundlage der von der Kraftmesseinheit gemessenen Kraft ausgibt und auf Grundlage der Wahl eines ersten oder zweiten Steuermodi; eine Achsenpositionszustandsbestimmungseinheit, die bestimmt, ob eine Position einer oder mehrerer vorbestimmter Achsen eine Position eines Zustands ist, der eine vorbestimmte Positionsbeziehungsbedingung erfüllt, in welche der Roboter normalerweise nicht aus einer gewissen Position bewegt wird; und eine Betätigungsachseneinstelleinheit, die gemäß einer gegenwärtigen Position jeder der Achsen des Roboters zu einem Zeitpunkt, wenn die Achsenpositionszustandsbestimmungseinheit bestimmt, dass sich die eine oder mehreren vorbestimmten Achsen in der Position dieses Zustands befinden, eine oder mehrere vorbestimmte Achsen, die eine Achse, die als ein Faktor dafür dient, in der Position des Zustands zu sein, oder eine Achse, die dazu veranlasst wird, durch die Position des Zustands zu verlaufen, umfassen, als eine oder mehrere Betätigungsachsen einstellt, die gemäß der Kraft bewegt werden, und eine Bewegungsrichtung der einen oder mehreren Betätigungsachsen einstellt, die gemäß einer Richtung der Kraft bestimmt wird, wobei die Betätigungsbefehleinheit den ersten Steuermodus, der, wenn die Achsenpositionszustandsbestimmungseinheit bestimmt, dass die eine oder mehreren vorbestimmten Achsen sich nicht in der Position des Zustands befinden, einen Betätigungsbefehl zum Bewegen der mindestens einen der Position und der Haltung der Spitze des Roboters auf der Grundlage der von der ersten Kraftberechnungseinheit berechneten Betätigungskraft ausgibt, und den zweiten Steuermodus, der, wenn die Achsenpositionszustandsbestimmungseinheit bestimmt, dass die eine oder mehreren vorbestimmten Achsen sich in der Position des Zustands befinden, einen Betätigungsbefehl zum Bewegen einer Position der einen oder mehreren von der Betätigungsachseneinstelleinheit eingestellten Betätigungsachsen auf der Grundlage der von der zweiten Kraftberechnungseinheit berechneten Betätigungskraft und der von der Betätigungsachseneinstelleinheit eingestellten Bewegungsrichtung ausgibt, umfasst.
  • Gemäß einem dritten Aspekt der Erfindung stellt in dem ersten oder dem zweiten Aspekt die Betätigungsachseneinstelleinheit die Bewegungsrichtung, die gemäß einer Richtung einer auf die eine oder mehreren Betätigungsachsen aufgebrachten Kraft bestimmt wird, auf der Grundlage der Richtung der auf die eine oder mehreren Betätigungsachsen aufgebrachten Kraft und der Bewegungsrichtung der einen oder mehreren Betätigungsachsen unmittelbar, bevor in den zweiten Steuermodus gewechselt wird, oder zu der Zeit, wenn in den zweiten Steuermodus gewechselt wird, ein.
  • Gemäß einem vierten Aspekt der Erfindung bewegt in einem des ersten bis dritten Aspekts in dem zweiten Steuermodus die Betätigungsbefehlseinheit eine Position eines Ursprungs einer Betätigungsachse der einen oder mehreren Betätigungsachsen, der in eine Richtung bewegt wird, die der Richtung entgegengesetzt ist, in die die Kraft auf die Achse aufgebracht wird, in eine Richtung, die eine Komponente einer Richtung umfasst, die einer Richtung entgegengesetzt ist, in die die Position der Spitze des Roboters durch Bewegung der einen oder mehreren Betätigungsachsen bewegt wird, oder in eine Richtung, die eine Komponente der Richtung der auf die eine oder mehreren Betätigungsachsen aufgebrachten Kraft umfasst.
  • Gemäß einem fünften Aspekt der Erfindung wechselt in einem des ersten bis vierten Aspekts, wenn die Betätigungsbefehlseinheit zwischen den zwei Steuermodi: dem ersten Steuermodus und dem zweiten Steuermodus von einem der Steuermodi in den anderen der Steuermodi wechselt, die Betätigungsbefehlseinheit nach dem Verlangsamen/Anhalten aller Achsen oder der Verringerung einer Geschwindigkeit aller Achsen auf weniger als einen vorbestimmten Schwellenwert.
  • Gemäß einem sechsten Aspekt der Erfindung verlangsamt/stoppt in einem des ersten bis fünften Aspekts, wenn die Betätigungsbefehlseinheit zwischen den zwei Steuermodi: dem ersten Steuermodus und dem zweiten Steuermodus von dem ersten Steuermodus in den zweiten Steuermodus wechselt, die Betätigungsbefehleinheit Andere Achsen als die Achsen, die in dem zweiten Steuermodus betätigt werden.
  • Gemäß einem siebten Aspekt der Erfindung umfasst in einem des ersten bis sechsten Aspekts die Robotersteuervorrichtung ferner eine Anzeigeausgabeeinheit, die eine Anzeigeausgabe ausführt, ob der erste Steuermodus oder der zweite Steuermodus eingestellt ist, und in dem zweiten Steuermodus eine Anzeige der einen oder mehreren von der Betätigungsachseneinstelleinheit eingestellten Betätigungsachsen und der gemäß der Richtung der auf die oder mehrere Betätigungsachsen aufgebrachten Kraft bestimmten Bewegungsrichtung ausgibt.
  • Die vorhergehenden und andere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden durch die folgende ausführliche Beschreibung von typischen Ausführungsformen der in den begleitenden Zeichnungen erläuterten Erfindung offensichtlicher.
  • Figurenliste
    • 1 ist ein Diagramm, das eine schematische Struktur eines Robotersystems darstellt, das mit einem von einer Robotersteuervorrichtung gemäß einer ersten Ausführungsform der vorliegenden Erfindung gesteuerten Roboter versehen ist;
    • 2 ist ein Diagramm, das funktionell eine Struktur einer Robotersteuervorrichtung gemäß der ersten Ausführungsform der Erfindung darstellt;
    • 3 ist ein Diagramm, das eine erste singuläre Konfiguration darstellt;
    • 4 ist ein Diagramm, das eine zweite singuläre Konfiguration darstellt;
    • 5 ist ein Diagramm, das eine dritte singuläre Konfiguration darstellt;
    • 6 ist ein Ablaufdiagramm, das einen Verarbeitungsprozess der Robotersteuervorrichtung gemäß der ersten Ausführungsform der Erfindung darstellt;
    • 7 ist ein weiteres Ablaufdiagramm, das einen Verarbeitungsprozess der Robotersteuervorrichtung gemäß der ersten Ausführungsform der Erfindung darstellt;
    • 8 ist ein weiteres Ablaufdiagramm, das einen Verarbeitungsprozess der Robotersteuervorrichtung gemäß der ersten Ausführungsform der Erfindung darstellt;
    • 9 ist ein Diagramm, das einen Zustand darstellt, in dem eine Kraft Fs auf eine Spitze des Roboterarms aufgebracht wird;
    • 10 ist ein Diagramm zur Darstellung eines Verfahrens zum Berechnen einer Betätigungskraft bezüglich einer in 9 gezeigten Betätigungsachse;
    • 11 ist ein Diagramm, das ein Beispiel für ein Verfahren zum Berechnen einer Kraft Fp darstellt;
    • 12 ist ein Diagramm, das ein weiteres Beispiel für ein Verfahren zum Berechnen einer Kraft Fp darstellt;
    • 13 ist ein Diagramm zum Darstellen eines Verfahrens zum Berechnen einer Betätigungskraft bezüglich der Betätigungsachse;
    • 14 ist ein Diagramm zum Darstellen eines weiteren Verfahrens zum Berechnen einer Betätigungskraft bezüglich der Betätigungsachse;
    • 15 ist ein Diagramm, das ein Beispiel für ein Verfahren zum Drehen einer Richtung der Kraft Fp darstellt;
    • 16 ist ein Diagramm zum Darstellen eines weiteren Verfahrens zum Berechnen einer Betätigungskraft bezüglich der Betätigungsachse;
    • 17 ist ein Diagramm zum Darstellen eines weiteren Verfahrens zum Berechnen einer Betätigungskraft bezüglich der Betätigungsachse;
    • 18 ist ein Diagramm, das funktionell eine Struktur einer Robotersteuervorrichtung gemäß einer zweiten Ausführungsform der Ausführungsform darstellt;
    • 19 ist ein Ablaufdiagramm, das einen Verarbeitungsprozess der Robotersteuervorrichtung gemäß der zweiten Ausführungsform der Erfindung darstellt;
    • 20 ist ein Diagramm, das ein Beispiel für eine Position zum Anbringen einer Anzeigeeinheit darstellt, an die eine Anzeigeausgabeeinheit in einem Robotersystem, das mit einem Roboter versehen ist, der von einer Robotersteuervorrichtung gemäß einer anderen Ausführungsform der Erfindung gesteuert wird, eine Ausgabe ausgibt;
    • 21 ist ein Diagramm, das ein Beispiel für eine Position zum Anbringen einer Anzeigeeinheit darstellt, an die eine Anzeigeausgabeeinheit in einem Robotersystem, das mit einem Roboter versehen ist, der von einer Robotersteuervorrichtung gemäß noch einer anderen Ausführungsform der Erfindung gesteuert wird, eine Ausgabe ausgibt;
    • 22A ist ein teilweise vergrößertes Diagramm des Roboters;
    • 22B ist ein teilweise vergrößertes Diagramm des Roboters;
    • 22C ist ein teilweise vergrößertes Diagramm des Roboters;
    • 22D ist ein teilweise vergrößertes Diagramm des Roboters;
    • 23A ist ein weiteres teilweise vergrößertes Diagramm des Roboters;
    • 23B ist ein weiteres teilweise vergrößertes Diagramm des Roboters;
    • 23C ist ein weiteres teilweise vergrößertes Diagramm des Roboters;
    • 23D ist ein weiteres teilweise vergrößertes Diagramm des Roboters;
    • 24A ist ein weiteres teilweise vergrößertes Diagramm des Roboters;
    • 24B ist ein weiteres teilweise vergrößertes Diagramm des Roboters;
    • 24C ist ein weiteres teilweise vergrößertes Diagramm des Roboters;
    • 24D ist ein weiteres teilweise vergrößertes Diagramm des Roboters;
    • 25 ist ein teilweise vergrößertes Diagramm des Roboters;
    • 26A ist ein weiteres teilweise vergrößertes Diagramm des Roboters;
    • 26B ist ein weiteres teilweise vergrößertes Diagramm des Roboters;
    • 26C ist ein weiteres teilweise vergrößertes Diagramm des Roboters; und
    • 26D ist ein weiteres teilweise vergrößertes Diagramm des Roboters.
  • Ausführliche Beschreibung
  • Nachstehend werden beispielhafte Ausführungsformen der vorliegenden Erfindung mit Bezug auf die begleitenden Zeichnungen beschrieben. In den Zeichnungen werden die gleichen Elemente mit den gleichen Bezugszahlen bezeichnet. Zum leichteren Verständnis sind die Maßstäbe der Zeichnungen geeignet geändert.
  • Nachstehend wird angenommen, dass der Ausdruck „Kraft“ eine Translationskomponente einer Kraft und eine Momentkomponente der Kraft umfasst. Außerdem wird angenommen, dass der Ausdruck „Position und/oder Haltung“ Position oder Haltung oder Position und Haltung bedeutet.
  • Außerdem stellt der Ausdruck „Achse“ nachstehend einen Gelenkteil dar, der Verbindungen miteinander verbindet, die einen Roboter bilden, und wird als Teil betrachtet, der eine Positionsbeziehung und eine Winkelbeziehung zwischen den Verbindungen ändert. Das Ändern einer Position einer Achse (d.h. Ändern eines Winkels einer Drehachse) ermöglicht das Ändern der Positionsbeziehung zwischen den Verbindungen, weshalb die Position und/oder die Haltung einer Spitze des Roboterarms geändert werden können. Es kann ein Aktor zum Bewegen einer Achsenposition an einem anderen Teil als einem Achsenteil angeordnet sein.
  • Außerdem wird angenommen, dass eine Kraft, die um eine Drehmittellinie einer Achse des Roboters aufgebracht wird, eine Kraft, die um die Drehmittellinie der Achse des Roboters wirkt, oder eine Kraft, die auf eine Betätigungsachse wirkt, wenn die Betätigungsachse eine Drehachse ist - wenn die Achse des Roboters eine Drehachse ist und ein Koordinatensystem bezüglich der Achse des Roboters derart eingestellt ist, dass eine Achse des Koordinatensystems mit der Drehmittellinie der Achse des Roboters übereinstimmt - eine Kraft in eine Translationsrichtung oder ein Moment einer Kraft ist, die auf die Drehmittellinie der Achse des Roboters aufgebracht wird, die in einer Ebene existiert, die zur Drehmittellinie der Achse des Roboters in dem Koordinatensystem orthogonal ist, dessen Ursprung ein Schnittpunkt der Drehmittellinie der Achse des Roboters und der Ebene ist.
  • Außerdem bedeutet in der vorliegenden Erfindung Kraftsteuerungsverstärkung ein Koeffizient zum Erlangen eines Maßes der Bewegung der Position und/oder der Haltung der Spitze des Roboterarms, einer Position jeder Achse des Roboters und Ähnliches in einem orthogonalen Koordinatensystem in jedem Steuerzyklus auf der Grundlage einer Größe einer aufgebrachten Kraft in einer Kraftsteuerung zum Bewegen des Roboters gemäß der aufgebrachten Kraft.
  • 1 ist ein schematisches Diagramm, das ein strukturelles Beispiel für ein Robotersystem 11 darstellt, das mit einem von einer Robotersteuervorrichtung 10 gemäß einer Ausführungsform der Erfindung gesteuerten Roboter 50 versehen ist. Das Robotersystem 11 ist mit der Robotersteuervorrichtung 10 und dem Roboter 50 versehen, wobei eine Position jeder Achse in jedem Steuerzyklus von der Robotersteuervorrichtung 10 gesteuert wird.
  • In dem Robotersystem 11 steuert, wenn eine Bedienungsperson 60 eine Kraft auf eine Spitze 58 des Roboters 50 aufbringt, die Robotersteuervorrichtung 10 einen Aktor zum Bewegen jeder Achse des Roboters 50 auf der Grundlage der von einer Kraftmesseinheit gemessenen auf die Spitze 58 des Roboters 50 aufgebrachten Kraft, Einstellungsdaten, Positionsdaten des Roboters 50 und Ähnlichem. Auf diese Weise werden Positionen der Achsen, die den Roboter 50 bilden, geändert, wodurch der Roboter 50 bewegt werden kann.
  • Die Robotersteuervorrichtung 10 hat eine Hardwarestruktur, die eine Berechnungsverarbeitungseinheit, einen ROM und einen RAM umfasst und verschiedene Funktionen ausführt, die später beschrieben werden.
  • Der in 1 gezeigte Roboter 50 umfasst sechs Achsen. Von diesen sechs Achsen wird angenommen, dass sie, in der Reihenfolge von einer Seite des Roboters 50 näher zu einer Basis davon, folgendermaßen eingestellt sind: eine erste Achse ist J1 Achse 51; eine zweite Achse ist J2 Achse 52; eine dritte Achse ist J3 Achse 53; eine vierte Achse ist J4 Achse 54; eine fünfte Achse ist J5 Achse 55; und eine sechste Achse ist J6 Achse 56.
  • Wie auf der rechten Seite der 1 gezeigt, sind die J1 Achse 51, die J4 Achse 54 und die J6 Achse 56 als Drehachsen R1 gebildet, die sich um Verbindungen drehen, die die Achsen miteinander verbinden. Außerdem sind die J2 Achse 52, die J3 Achse 53 und die J5 Achse 55 als Drehachsen R2 gebildet, die sich um eine zu den Verbindungen, die die Achsen miteinander verbinden, orthogonale Richtung drehen.
  • 1 ist eine einfache illustrative Ansicht zum Darstellen einer Struktur der Achsen des Roboters 50. Außerdem wird, wenn angenommen wird, dass ein Ursprung jeder Achse ein Ursprung eines Koordinatensystems, das an jeder Achse eingestellt ist, und auch ein Punkt, an dem die Verbindungen miteinander verbunden sind, ist, angenommen, dass eine Position des Ursprungs jeder Achse als eine Position davon in einem in einem Raum eingestellten Koordinatensystem dargestellt ist. Nachstehend wird angenommen, dass das in dem Raum eingestellte Koordinatensystem ein Bezugskoordinatensystem ist. Es wird angenommen, dass axiale Ursprünge der J1 Achse 51 und der J2 Achse 52 in der gleichen Position sind, dass Ursprünge der J3 Achse 53 und der J4 Achse 54 in der gleichen Position sind und, dass Ursprünge der J5 Achse 55 und der J6 Achse 56 in der gleichen Position sind.
  • In dem vorliegenden praktischen Beispiel wird, wenn bezüglich einer als eine Drehachse eingestellten Achse beschrieben ist, dass die Position der Achse bewegt wird, angenommen, dass die Position der Achse einen Winkel der Drehachse bedeutet und wird angenommen, dass das Bewegen der Position der Achse das Drehen der Drehachse bedeutet, um deren Position zu ändern. Außerdem wird, wenn Bezug auf die Position des Ursprungs einer Achse genommen wird, angenommen, dass diese eine Position des Ursprungs des Koordinatensystems darstellt, das in dem an jeder Achse in dem Raum eingestellten Koordinatensystem dargestellt ist. Ferner wird angenommen, dass das bezüglich des Raums eingestellte Koordinatensystem ein Koordinatensystem zum Darstellen von Positionen und/oder Haltungen der Spitze 58 des Roboters 50, von einem zum Anbringen der Spitze 58 an dem Roboter 50 verwendeten Flansch 57 von dem an jeder Achse eingestellten Koordinatensystem und Ähnlichem in einem bezüglich des Raums festgelegten orthogonalen Koordinatensystem ist.
  • Außerdem wird angenommen, dass ein Koordinatensystem, das bezüglich des Roboters 50 eingestellt ist, um eine Position und/oder eine Haltung des Roboters 50 in dem bezüglich des Raums eingestellten Bezugskoordinatensystem darzustellen, ein Werkzeugkoordinatensystem ist. Es wird angenommen, dass der Ursprung des Werkzeugkoordinatensystems, der ein Punkt ist, der translational bewegt wird oder ein Mittelpunkt der Drehbewegung ist, ein Steuerpunkt ist. Es wird angenommen, dass ein Koordinatensystem, in dem ein zu dem Bezugskoordinatensystem paralleles Koordinatensystem an dem Steuerpunkt eingestellt ist, ein Steuerkoordinatensystem ist. Die Position des Steuerpunkts kann eine beliebige Position sein, solange sie eine bezüglich des Roboters 50 eingestellte Position ist.
  • In dem vorliegenden praktischen Beispiel wird angenommen, dass alle sechs Achsen des Roboters 50 Drehachsen sind. Jedoch kann der Roboter 50 eine lineare Bewegungsachse enthalten. Außerdem kann, obwohl der Roboter 50 ein vertikaler Mehrfachgelenkroboter mit sechs Achsen ist, der Roboter 50 ein beliebiger bekannter Roboter sein, der eine andere Konfiguration hat, solange es ein Roboter ist, der die Steuerung der Position jeder Achse und die Steuerung orthogonaler Position ermöglicht.
  • Die Spitze 58 des Roboters 50 ist ein Teil mit einem Objekt, das an dem Flansch 57 des Roboters 50 angebracht ist. Ein Sechs-Achsenkraftsensor ist an der Spitze 58 des Roboters 50 angebracht, wenn auch nicht in der Zeichnung dargestellt. Die Robotersteuervorrichtung 10 bewirkt, dass eine Kraftmesseinheit 21, die später beschrieben wird, eine von der Bedienungsperson 60 auf die Spitze 58 des Roboters 50 aufgebrachte Kraft auf der Grundlage einer in jedem vorbestimmten Zeitintervall detektierten Ausgabe des Kraftsensors misst.
  • Die Kraftmesseinheit 21 stellt ein Koordinatensystem mit dem Ursprung an einem Punkt ein, wo die Kraft an der Spitze 58 des Roboters 50 gemessen wird. Dann misst die Kraftmesseinheit 21, wenn die Kraft auf die Spitze 58 des Roboters 50 aufgebracht wird, eine Translationskomponente F der Kraft und eine Momentkomponente M der Kraft in dem Koordinatensystem. Nachstehend wird angenommen, dass das Koordinatensystem ein Kraftmesskoordinatensystem ist, und es wird angenommen, dass der Ursprung des Koordinatensystems ein Kraftmesspunkt ist. In diesem Fall werden Translationskomponenten der Kraft auf einer X-Achse, einer Y-Achse beziehungsweise einer Z-Achse des an der Spitze 58 des Roboters 50 eingestellten Koordinatensystem als Fx, Fy beziehungsweise Fz dargestellt und werden Momentkomponenten der um die X-Achse, die Y-Achse beziehungsweise die Z-Achse detektierten Kraft als Mx, MY beziehungsweise Mz dargestellt.
  • Der Kraftmesspunkt kann ein Kraftangriffspunkt, an dem die Bedienungsperson eine Kraft aufbringt, der Ursprung eines an dem Kraftsensor eingestellten Sensorkoordinatensystems, ein Achsenpunkt des Sensorkoordinatensystems oder Ähnliches sein.
  • In dem vorliegenden praktischen Beispiel werden sechs Komponenten der Kraft gemessen. Jedoch kann auch nur die Translationskomponente F der Kraft oder nur die Momentkomponente M der Kraft gemessen werden. Außerdem kann eine Kraftsensorbefestigungsposition eine beliebige Position sein, solange eine auf die Spitze 58 des Roboters 50 aufgebrachte Kraft gemessen werden kann. Außerdem kann die Messeinheit zum Messen der auf die Spitze 58 des Roboters 50 aufgebrachten Kraft ein Kraftsensor mit drei Achsen anstatt eines Kraftsensors mit sechs Achsen sein.
  • Außerdem kann die Kraftmesseinheit 21 die auf die Spitze 58 des Roboters 50 aufgebrachte Kraft auf der Grundlage eines elektrischen Stromwerts, wobei der Aktor zum Bewegen jeder der Achsen, die den Roboter 50 bilden, ein Motor ist, einer Abweichung zwischen einer befohlenen Position jeder Achse und einer tatsächlichen Position davon, einer Ausgabe eines an jeder Achse angebrachten Drehmomentsensors oder Ähnlichem schätzen.
  • An der Spitze 58 des Roboters 50 sind ein Werkzeug zum Ausführen von Aufgaben, die die Verarbeitung eines Werkstücks und Tragen des Werkstücks umfassen, eine Manövriervorrichtung zum Ausführen einer Bewegungsoperation gemäß der Kraft und Ähnliches angebracht.
  • Das Werkzeug und die Manövriervorrichtung können an dem an dem Roboter 50 angebrachten Kraftsensor angebracht sein. Alternativ kann der Kraftsensor an dem an dem Roboter 50 angebrachten Werkzeug angebracht sein und kann die Manövriervorrichtung an einer Spitzenseite des Kraftsensors angebracht sein.
  • Beim Aufbringen einer Kraft auf die Spitze 58 des Roboters 50 kann die Kraft auf das an dem Kraftsensor angebrachte Werkzeug aufgebracht werden, ohne die Manövriervorrichtung zu verwenden. Alternativ kann die Kraft auf die an dem Kraftsensor angebrachte Manövriervorrichtung aufgebracht werden.
  • Wenn eine Bedienungsperson den Roboter 50 durch Aufbringen einer Kraft auf das Werkzeug oder die Manövriervorrichtung bewegt, die an dem Kraftsensor angebracht sind, kompensiert die Kraftmesseinheit 21 nach Bedarf einen Einfluss des Werkzeugs oder der Manövriervorrichtung, die an dem Kraftsensor angebracht sind, oder eines gegriffenen Objekts, wie z.B. eines Werkstücks, auf eine von dem Kraftsensor detektierte Kraft aufgrund von Schwerkraft, Trägheitskraft (die Coriolis-Kraft und Kreiselpräzession umfasst) oder Ähnlichem. Auf diese Weise kann die Kraftmesseinheit 21 eine von der Bedienungsperson auf die Spitze 58 des Roboters 50 aufgebrachte Nettokraft messen.
  • Wenn eine Vorrichtung als eine Kombination des Kraftsensors und der Manövriervorrichtung an dem an der Spitze 58 des Roboters 50 angebrachten Werkzeugs angebracht ist, wird der Einfluss eines an dem Kraftsensor angebrachten Objekts auf den Kraftsensor aufgrund von Schwerkraft und Trägheitskraft klein. Dementsprechend wird ein Fehler beim Erlangen der Nettokraft in diesem Fall auch klein.
  • Außerdem kann die Vorrichtung als die Kombination des Kraftsensors und der Manövriervorrichtung durch Verwendung einer Feder, eines Magneten oder von Ähnlichem an dem Werkzeug angebracht werden. In diesem Fall kann solch eine Vorrichtung leicht entfernt werden. Es ist auch möglich, solch eine Vorrichtung erst zu dem Zeitpunkt anzubringen, wenn der Roboter 50 durch Aufbringung einer Kraft bewegt wird. Dies ermöglicht, dass die Vorrichtung entfernt wird, wenn ein Lehrvorgang unnötig ist, oder dass solch eine Vorrichtung bei Bedarf in einem anderen Robotersystem verwendet wird.
  • 2 ist ein Diagramm, das funktionell eine Struktur einer Robotersteuervorrichtung 10a gemäß einer ersten Ausführungsform der vorliegenden Erfindung darstellt. Wie in der Zeichnung dargestellt, umfasst die Robotersteuervorrichtung 10a die später beschriebene Kraftmesseinheit 21, eine erste Kraftberechnungseinheit 22, eine zweite Kraftberechnungseinheit 23, eine Betätigungsbefehlseinheit 24, eine Betätigungsachseneinstelleinheit 25, eine Speichereinheit 26, eine Einheit 27 zur Bestimmung von Nähe zu einer singulären Konfiguration und eine Anzeigeausgabeeinheit 71.
  • Die Kraftmesseinheit 21 misst eine von der Bedienungsperson 60 auf die Spitze 58 des Roboters 50 aufgebrachte Nettokraft. Wie vorstehend beschrieben, kompensiert die Kraftmesseinheit 21 bei Bedarf den Einfluss des Werkzeugs oder der Manövriervorrichtung, die an der Spitze 58 des Roboters 50 angebracht sind, oder eines gegriffenen Objekts, wie z.B. eines Werkstücks, aufgrund von Schwerkraft, Trägheitskraft (die Coriolis-Kraft und Kreiselpräzession umfasst) und von Ähnlichem.
  • Der Einfluss der Schwerkraft und der Trägheitskraft, die von dem an dem Kraftsensor angebrachten Objekt bewirkt werden, wird für durch ein bekanntes Verfahren folgendermaßen kompensiert. Bevor die Bedienungsperson eine Kraft auf das an dem Kraftsensor angebrachte Objekt aufbringt, werden eine Masse und ein Schwerpunkt des Objekts im Voraus berechnet. Dann wird Bezug auf die berechnete Masse und den berechneten Schwerpunkt und eine Bewegung des Roboters genommen und wird ein bekanntes Verfahren, wie z.B. eine in dem japanischen Patent Nr. 4267027 offenbarte Technik, zur Berechnung verwendet.
  • Die erste Kraftberechnungseinheit 22 berechnet eine Betätigungskraft zum Bewegen einer Position und/oder einer Haltung der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem auf der Grundlage einer Kraft, die eine Translationskomponente und/oder eine Momentkomponente der von der Kraftmesseinheit 21 gemessenen auf die Spitze 58 des Roboters 50 aufgebrachten Kraft umfasst.
  • Die erste Kraftberechnungseinheit 22 berechnet die Betätigungskraft zum Beispiel auf folgende Art. Die von der Kraftmesseinheit 21 gemessene Kraft wird in eine Kraft in dem Steuerkoordinatensystem umgewandelt, um die Betätigungskraft zu berechnen. Zu dieser Zeit können eine Richtung und eine Größe der Betätigungskraft nach Bedarf eingestellt werden, wobei eine Bewegungsrichtung, eine Bewegungsgeschwindigkeit und Ähnliches des Roboters im Betrieb berücksichtigt wird. Dies kann die Bedienbarkeit bei der Bewegung des Roboters gemäß der Kraft verbessern.
  • Die zweite Kraftberechnungseinheit 23 berechnet eine Betätigungskraft zum Bewegen der Position jeder Achse des Roboters 50 auf der Grundlage der Kraft, die die Translationskomponente und/oder die Momentkomponente der von der Kraftmesseinheit 21 gemessenen auf die Spitze 58 des Roboters 50 aufgebrachten Kraft umfasst.
  • Die zweite Kraftberechnungseinheit 23 berechnet die Betätigungskraft zum Beispiel auf die folgende Art, wenn die zu bewegende Achse eine Drehachse ist, wie in dem vorliegenden praktischen Beispiel.
  • Die zweite Kraftberechnungseinheit 23 berechnet die Betätigungskraft auf der Grundlage einer von der Kraftmesseinheit 21 gemessenen tatsächlichen auf die Spitze 58 des Roboters 50 aufgebrachten Kraft. Alternativ berechnet die zweite Kraftberechnungseinheit 23 als eine Betätigungskraft eine virtuelle Kraft als eine Kraft, von der angenommen wird, dass sie virtuell auf eine zu bewegende Achse aufgebracht wird, auf der Grundlage der auf die Spitze 58 des Roboters 50 aufgebrachten Kraft.
  • Genau wird die Betätigungskraft folgendermaßen berechnet.
  • Wenn eine auf die Spitze 58 des Roboters 50 aufgebrachte Translationskraft auf eine zu einer Drehmittellinie einer zu bewegenden Achse orthogonale Ebene projiziert wird, wird die Richtung einer Betätigungskraft zum Bewegen der Achse abhängig davon bestimmt, ob die Kraft in eine positive Drehrichtung oder eine negative Drehrichtung bezüglich der Achse ausgerichtet ist, d.h. auf der Grundlage der Richtung der Translationskraft um die Drehmittellinie der Achse. Eine Größe der Betätigungskraft wird auf der Grundlage einer Größe der von der Kraftmesseinheit 21 gemessenen Translationskraft, einer Größe der projizierten Kraft oder einer Größe einer Komponente der projizierten Kraft, die zu einem Positionsvektor von der Drehmittellinie zu einem Punkt der Aufbringung der projizierten Kraft orthogonal ist, erlangt. Außerdem kann die Betätigungskraft durch Berechnen eines Moments der Kraft um die Drehmittellinie der zu bewegenden Achse auf der Grundlage der von der Kraftmesseinheit 21 gemessenen auf die Spitze 58 des Roboters 50 aufgebrachten Kraft erlangt werden.
  • Außerdem kann beim Berechnen des Moments der um die Drehmittellinie der zu bewegenden Achse aufgebrachten Kraft auf der Grundlage der von der Kraftmesseinheit 21 gemessenen auf die Spitze 58 des Roboters 50 aufgebrachten Kraft das Moment durch Erarbeiten von Verfahren zum Berechnen eines Kraftvektors und eines Positionsvektors berechnet werden, die geeignet sind, um die Bedienbarkeit zu verbessern und dadurch die Betätigungskraft zu erlangen.
  • Außerdem kann die Richtung der Betätigungskraft zum Bewegen der Achse abhängig davon, ob das Vorzeichen des Moments der aufgebrachten Kraft bezüglich der zu bewegenden Achse um die Drehmittellinie der Achse positiv oder negativ ist, bestimmt werden, und kann die Größe der für den Betrieb angemessenen Betätigungskraft auf der Grundlage der Größe der von der Kraftmesseinheit 21 gemessenen Kraft erlangt werden.
  • Die Richtung der Betätigungskraft kann irgendeine sein, solange sie eine Richtung ist, die eine Bewegungsrichtung für die zu bewegende Achse bestimmen kann, die eine Richtung ist, die eine Vorwärtsrichtung oder eine Rückwärtsrichtung bestimmt, wie z.B. ein positives/negatives Vorzeichen.
  • Außerdem wird, um die Bedienbarkeit des Roboters beim Bewegen einer Achse gemäß Kraft zu verbessern, die Betätigungskraft vorzugsweise unter Berücksichtigung einer Bewegungsrichtung, einer Bewegungsgeschwindigkeit und von Ähnlichem des Roboters während des Betriebs nach Bedarf eingestellt.
  • Das vorliegende praktische Beispiel hat den Fall gezeigt, in dem die Drehachse die zu bewegende Achse ist. Wenn die zu betätigende Achse jedoch eine lineare Bewegungsachse ist, wird eine Translationskomponente der Kraft in die Richtung der Achse berechnet.
  • Die Einheit 27 zur Bestimmung der Nähe zu einer singulären Konfiguration bestimmt, ob der Roboter 50 sich in der Nähe einer singulären Konfiguration befindet oder nicht. Es gibt einige Verfahren zum Bestimmen, ob sich der Roboter 50 in der Nähe einer singulären Konfiguration befindet. Zuerst gibt es ein Verfahren basierend auf einer Jacobi-Matrix, das eine Beziehung zwischen der Geschwindigkeit der Spitze 58 des Roboters 50 und der Gelenkgeschwindigkeit darstellt. Wenn die Jacobi-Matrix in einer gegenwärtigen Position jeder Achse des Roboters 50 kein voller Rang ist, oder wenn ein Wert einer Matrixformel der Jacobi-Matrix kleiner ist als ein vorbestimmter Schwellenwert, kann bestimmt werden, dass sich die Haltung des Roboters 50 in der Nähe der singulären Konfiguration befindet. Auf diese Weise kann bestimmt werden, ob sich die gegenwärtige Position jeder Achse des Roboters 50 in der singulären Konfiguration befindet.
  • Wenn durch das Bestimmungsverfahren bestimmt wird, dass sich der Roboter 50 in der Nähe einer singulären Konfiguration befindet, bestimmt die Einheit 27 zur Bestimmung der Nähe zu einer singulären Konfiguration den Zustand der Nachbarschaft der singulären Konfiguration auf der Grundlage der gegenwärtigen Position jeder Achse des Roboters 50 durch Verwenden eines später detaillierter beschriebenen Verfahrens. Dann wird bewirkt, dass die später beschriebene Betätigungsachseneinstelleinheit 25 eine Achse, die als Faktor dafür dient, sich in der Nähe einer singulären Konfiguration zu befinden, oder eine Achse, die dazu veranlasst wird, in der Nähe zu der singulären Konfiguration zu verlaufen, einstellt.
  • Außerdem kann, abhängig davon, ob die Position jeder Achse des Roboters eine vorbestimmte Positionsbeziehungsbedingung erfüllt, bestimmt werden, ob die gegenwärtige Position jeder Achse des Roboters sich in der Nähe der singulären Konfiguration befindet. Mit diesem Verfahren wird bestimmt, ob der Roboter sich in der Nähe der singulären Konfiguration befindet, und wird auch bestimmt, zu welchem später beschriebenen Typ die singuläre Konfiguration gehört. Dann kann bewirkt werden, dass die später beschriebene Betätigungsachseneinstelleinheit 25 die Achse, die als der Faktor dafür dient, sich in der Nähe zu der singulären Konfiguration zu befinden, oder die Achse, die dazu veranlasst wird, in der Nähe zu der singulären Konfiguration zu verlaufen, einstellt. Dieses Verfahren wird nachstehend beschrieben.
  • Eine singuläre Konfiguration kann in mehrere Zustände eingeteilt werden. Abhängig von der Position jeder Achse des Roboters 50 kann die singuläre Konfiguration zu einer Mehrzahl von Typen gehören. Auf der Grundlage eines Ergebnisses der Bestimmung, in welchem der Zustände der singulären Konfiguration sich die singuläre Konfiguration befindet, stellt die später beschriebene Betätigungsachseneinstelleinheit 25 eine zu betätigende Achse ein.
  • Im Folgenden wird beschrieben, wie bestimmt werden kann, ob sich der Roboter 50 in einer singulären Konfiguration befindet oder nicht, und zu welchem Typ die singuläre Konfiguration gehört. Genau wird für jeden Zustand der singulären Konfiguration, d.h. für jeden Typ von singulärer Konfiguration, bezüglich einer oder mehrerer Achsen, die Faktoren sind, die anzeigen, dass der Roboter 50 sich in der Nähe der singulären Konfiguration befindet, bestimmt, ob die Position jeder Achse eine vorbestimmte Positionsbeziehungsbedingung erfüllt, d.h. ob die Position jeder Achse innerhalb eines Bereichs eines Schwellenwerts von einer für jede Achse eingestellten vorbestimmten Position liegt. Alternativ wird abhängig von der Positionsbeziehung zwischen der Mehrzahl von Achsen bestimmt, ob der Roboter 50 sich in einer singulären Konfiguration befindet oder nicht, und zu welchem Typ die singuläre Konfiguration gehört, indem bestimmt wird, ob die Position des Ursprungs einer gewissen Achse in dem Bezugskoordinatensystem die vorbestimmte Positionsbeziehungsbedingung erfüllt.
  • Zu dieser Zeit kann der von der Einheit 27 zur Bestimmung der Nähe zu einer singulären Konfiguration verwendete Schwellenwert vergrößert werden, um einen als in der Nähe der singulären Konfiguration bestimmten Bereich zu vergrößern. In diesem Fall kann die Instabilität des Betriebs in einem später beschriebenen ersten Steuermodus sicherer und früher detektiert werden, um das Wechseln auf einen zweiten Steuermodus zu ermöglichen. Zum Detektieren, dass der Roboter sich in der Nähe der singulären Konfiguration befindet, wo der erste Steuermodus instabil ist, kann eine Matrixformel einer Jacobi-Matrix oder Ähnliches verwendet werden, wie vorstehend beschrieben. Sogar in diesem Fall ermöglicht das geeignete Einstellen des Schwellenwerts eine Früherkennung von Instabilität des Betriebs in dem ersten Steuermodus.
  • In dem zweiten Steuermodus wird der Betrieb selten aufgrund der Position des Roboters instabil, sogar wenn der Roboter sich in der Nähe der singulären Konfiguration befindet. Dementsprechend ermöglicht, wenn der Roboter 50 sich in der Nähe der singulären Konfiguration befindet, das Wechseln in den zweiten Steuermodus, dass die Bewegungsoperation des Roboters 50 gemäß der Kraft besser stabilisiert und sicherer ausgeführt wird. Jedoch wird, wenn der als sich in der Nähe der singulären Konfiguration befindende bestimmte Bereich übertrieben vergrößert wird, ein Bereich für Bewegung in dem ersten Steuermodus reduziert. Dementsprechend wird der als sich in der Nähe zu der singulären Konfiguration befindende bestimmte Bereich vorzugsweise innerhalb eines entsprechenden Bereichs gehalten.
  • Als Nächstes wird die Klassifizierung von singulären Konfigurationen beschrieben.
  • Ferner wird eine Achse beschrieben, die als Faktor für die Nähe zu einer singulären Konfiguration dient, oder eine Achse, die dazu veranlasst wird, in der Nähe zu der singulären Konfiguration zu verlaufen, was berücksichtigt wird, wenn die später beschriebene Betätigungsachseneinstelleinheit 25 eine Betätigungsachse einstellt.
  • In dem vorliegenden praktischen Beispiel werden singuläre Konfigurationen in drei Typen unterteilt: eine erste in 3 dargestellte singuläre Konfiguration, eine zweite in 4 dargestellte singuläre Konfiguration und eine dritte in 5 dargestellte singuläre Konfiguration.
  • In der ersten in 3 dargestellten singulären Konfiguration befindet sich der Ursprung der J5 Achse 55 auf einer Drehmittellinie der J1 Achse 51 des Roboters 50. Es kann davon abhängig, ob eine vorbestimmte Positionsbeziehungsbedingung erfüllt ist, d.h. ob eine in einer Vorwärtswandlung der Achsen von der J1 Achse bis zur J5 Achse erlangte Position des Ursprungs der J5 Achse 55 sich auf der Drehmittellinie der J1 Achse 51 oder in deren Nähe in einem in dem Raum eingestellten Bezugskoordinatensystem befindet, bestimmt werden, dass der Roboter 50 sich in der Nähe der ersten singulären Konfiguration befindet. In diesem Fall ist die Achse, die als Faktor für die Nähe zu der ersten singulären Konfiguration dient, oder die Achse, die dazu veranlasst wird, in der Nähe zu der ersten singulären Konfiguration zu verlaufen, die J2 Achse 52 oder die J3 Achse 53.
  • In der zweiten in 4 dargestellten singulären Konfiguration befinden sich der Ursprung der J2 Achse 52, der Ursprung der J3 Achse 53 und der Ursprung der J5 Achse 55 des Roboters 50 auf einer Geraden. Es kann davon abhängig, ob die Position eines von der J2 Achse 52 und der J3 Achse 53 gebildeten Winkels eine vorbestimmte Positionsbeziehungsbedingung erfüllt, bestimmt werden, dass der Roboter 50 sich in der Nähe der zweiten singulären Konfiguration befindet. Genauer kann davon abhängig, ob eine vorbestimmte Positionsbeziehungsbedingung erfüllt ist, d.h. ob der Ursprung der J2 Achse 52, der Ursprung der J3 Achse 53 und der Ursprung der J5 Achse 55 in einer Positionsbeziehung sind, die sich auf der Geraden und in deren Nähe befindet, bestimmt werden, dass der Roboter 50 sich in der Nähe der zweiten singulären Konfiguration befindet. In diesem Fall ist die Achse, die als Faktor für die Nähe zu der zweiten singulären Konfiguration dient, oder die Achse, die dazu veranlasst wird, n der Nähe der zweiten singulären Konfiguration zu verlaufen, die J3 Achse 53.
  • In der dritten in 5 dargestellten singulären Konfiguration befinden sich der Ursprung der J3 Achse 53, der Ursprung der J5 Achse 55 und ein Ursprung des Flansches 57 des Roboters 50 auf einer Geraden. Es kann davon abhängig, ob die Position eines Winkels der J5 Achse 55 eine vorbestimmte Positionsbeziehungsbedingung erfüllt, bestimmt werden, dass der Roboter 50 sich in der Nähe zu der dritten singulären Konfiguration befindet. Genauer kann davon abhängig, ob eine vorbestimmte Positionsbeziehungsbedingung erfüllt ist, d.h. ob der Ursprung der J3 Achse 53, der Ursprung der J5 Achse 55 und der Ursprung des Flansches 57 in der Positionsbeziehung sind, die sich auf der Geraden und in deren Nähe befindet, bestimmt werden, dass der Roboter 50 sich in der Nähe zu der dritten singulären Konfiguration befindet. In diesem Fall ist die Achse, die als Faktor für die Nähe zu der zweiten singulären Konfiguration dient, oder die Achse, die dazu veranlasst wird, n der Nähe der zweiten singulären Konfiguration zu verlaufen, die J5 Achse 55.
  • Auf diese Weise wird auf der Grundlage der gegenwärtigen Position jeder Achse des Roboters bestimmt, ob der Roboter 50 sich in der Nähe zu einer singulären Konfiguration befindet, und zu welchem Typ die singuläre Konfiguration gehört. Dann kann eine Bestimmung bezüglich derjenigen Achse, die als Faktor für singuläre Konfiguration dient, oder der Achse, die dazu veranlasst wird, in der Nähe der singulären Konfiguration zu verlaufen, gemacht werden.
  • Wenn bestimmt wird, dass der Roboter 50 sich in der Nähe einer singulären Konfiguration befindet, stellt die Betätigungsachseneinstelleinheit 25 als eine gemäß Kraft zu bewegende Betätigungsachse eine oder mehrere vorbestimmte Achsen, die eine Achse, die als Faktor für die Nähe zu der singulären Konfiguration dient, oder eine Achse, die dazu veranlasst wird, in der Nähe der singulären Konfiguration zu verlaufen, umfassen, auf der Grundlage der gegenwärtigen Position jeder Achse des Roboters 50 ein. Außerdem stellt die Betätigungsachseneinstelleinheit 25 auch eine gemäß Kraft bestimmten Bewegungsrichtung der Betätigungsachse ein.
  • Zu dieser Zeit wird die gemäß der Richtung der Kraft bestimmte Bewegungsrichtung der Betätigungsachse auf der Grundlage eines vorbestimmten Werts oder auf der Grundlage der Bewegungsrichtung der Betätigungsachse und einer Richtung der Kraft, die auf die Betätigungsachse aufgebracht wird, wenn der Roboter sich in der Nähe der singulären Konfiguration befindet, eingestellt.
  • Wenn die Betätigungsachse durch Auswählen einer oder mehrerer der Achsen aus der Mehrzahl von Achsen eingestellt wird, wird die Achse, die als der Faktor für die Nähe zu der singulären Konfiguration dient, oder die Achse, die dazu veranlasst wird, in der Nähe der singulären Konfiguration zu verlaufen, auf der Grundlage des Typs der singulären Konfiguration bestimmt, der von der gegenwärtigen Position jeder Achse bestimmt wird, wenn der Roboter 50 sich in der Nähe der singulären Konfiguration befindet. Dann werden eine oder mehrere vorbestimmte Achsen, die die oben erwähnten Achsen umfassen, abhängig von dem Typ der singulären Konfiguration als eine oder mehrere Betätigungsachsen eingestellt. Wenn die Haltung des Roboters 50 einer Mehrzahl von Typen von singulären Konfigurationen entspricht, werden eine oder mehrere Betätigungsachsen auf der Grundlage des Typs einer singulären Konfiguration eingestellt, der gemäß einer vorbestimmten Prioritätsrangfolge höhere Priorität hat. Dann sollen die eine oder mehreren Betätigungsachsen eine Achse, die als der Faktor für die singuläre Konfiguration dient, oder eine Achse, die dazu veranlasst wird, in der Nähe der singulären Konfiguration zu verlaufen, umfassen.
  • Zu dieser Zeit werden unter den Achsen außer der Achse, die als der Faktor der singulären Konfiguration dient, oder der Achse, die dazu veranlasst wird, in der Nähe der singulären Konfiguration zu verlaufen, eine oder mehrere vorbestimmte Achsen als eine oder mehrere Betätigungsachsen auf der Grundlage der Position jeder Achse des Roboters 50 zu dieser Zeit ausgewählt.
  • In der ersten in 3 dargestellten singulären Konfiguration ist die Achse, die als der Faktor für die Nähe zu der singulären Konfiguration dient, oder die Achse, die dazu veranlasst wird, in der Nähe der singulären Konfiguration zu verlaufen, die J2 Achse 52 oder die J3 Achse 53. Entweder wird die J2 Achse 52 oder die J3 Achse 53 als die gemäß Kraft zu bewegende Betätigungsachse eingestellt und bewegt. Dies ermöglicht, dass der Roboter 50 sich durch die Nähe zu der ersten singulären Konfiguration bewegt.
  • Es wird angenommen, dass die Drehmittellinien der J2 Achse 52 und der J3 Achse 53 des Roboters 50 parallel und in der gleichen Richtung ausgerichtet sind. Zu dieser Zeit werden, wenn sowohl die J2 Achse 52 als auch die J3 Achse 53 als Betätigungsachsen bewegt werden, diese Achsen um ihre Drehmittellinien in der gleichen Drehrichtung bewegt, wodurch der Roboter 50 sich schneller durch die Nähe zu der ersten singulären Konfiguration bewegen kann, als wenn nur eine der Achsen bewegt wird. Außerdem ermöglicht in diesem Fall, sogar wenn sowohl die J2 Achse 52 als auch die J3 Achse 53 um ihre Drehmittellinien in verschiedene Drehrichtungen bewegt werden, das Bewegen jeder der Achsen mit einer entsprechenden Geschwindigkeit, dass der Roboter 50 sich durch die Nähe zu der ersten singulären Konfiguration bewegt. Bezüglich der oben beschriebenen Beschreibung kann die Mehrzahl von Achsen, wenn die Drehmittellinien der Mehrzahl von Achsen im Bewegungsvorgang jeder der Mehrzahl von Achsen parallel sind, durch eine Drehbewegung der Achsen in die gleiche Richtung schneller in eine gewisse Richtung bewegt werden.
  • Beim Bewegen jeder Achse in der Nähe zu der singulären Konfiguration kann eine Achse, die eine zur Drehmittellinie der J2 Achse 52 oder der J3 Achse 53 orthogonale Drehmittellinie hat, als die Betätigungsachse beweglich gemacht werden. In diesem Fall kann die Achse unabhängig von der J2 Achse 52 und der J3 Achse 53 bewegt werden.
  • Außerdem kann es, wenn die J2 Achse 52 oder die J3 Achse 53 als die Betätigungsachse eingestellt werden, eine Achse geben, die sich abhängig von der Richtung der auf die Spitze 58 des Roboters 50 aufgebrachten Kraft unabhängig von der J2 Achse 52 oder der J3 Achse 53 bewegt oder gleichzeitig mit der J2 Achse 52 oder der J3 Achse 53 bewegt. Die Achse ist vorzugsweise eine Achse, die unabhängig von der J2 Achse 52 oder der J3 Achse 53 bewegt werden kann. Jedoch kann, sogar wenn sich die Achse gleichzeitig mit der J2 Achse 52 oder der J3 Achse 53 bewegt, abhängig von der Richtung der auf die Spitze 58 des Roboters 50 aufgebrachten Kraft die Achse als Betätigungsachse eingestellt werden, solange es kein Problem aufgrund der Bewegung gibt. Zu dieser Zeit kann eine bezüglich der Achse berechnete Betätigungskraft klein gemacht werden, oder bei Bewegung auf der Grundlage von Betätigungskraft und Kraftsteuerungsverstärkung, der Wert der Kraftsteuerungsverstärkung klein gemacht werden.
  • Wenn der Roboter 50 sich in der Nähe zu der ersten singulären Konfiguration befindet, wird angenommen, dass die J2 Achse 52 und die J3 Achse 53 zusammen mit der J1 Achse 51 diejenigen Betätigungsachsen sind, deren Positionen gemäß Kraft bewegt werden sollen. Bezüglich der J2 Achse 52 und der J3 Achse 53 wird angenommen, dass die gemäß der Richtung der Kraft bestimmte Bewegungsrichtung der Betätigungsachsen die gleiche ist wie die Richtung der Kraft.
  • Dies ermöglicht, dass der Roboter sich durch Aufbringen einer Kraft auf die Spitze 58 des Roboters 50 schnell durch die Nähe zu der ersten singulären Konfiguration bewegt, um die Positionen sowohl der J2 Achse 52 als auch der J3 Achse 53 um die Drehmittellinie in der gleichen Richtung wie vorstehend beschrieben zu bewegen.
  • Außerdem kann beim Bewegen der Betätigungsachsen durch Verwendung der um die Drehmittellinien der Betätigungsachsen aufgebrachten Kraft als Betätigungskraft die J1 Achse 51 bewegt werden, indem die Richtung der auf die Spitze 58 des Roboters 50 aufgebrachten Kraft zu den Drehmittellinien der J2 Achse 52 und der J3 Achse 53 parallel oder fast parallel ausgerichtet wird. In diesem Fall kann die J1 Achse 51 bewegt werden, während Bewegungsmaße der J2 Achse 52 und der J3 Achse 53 klein gemacht werden.
  • Außerdem können beim Bewegen der Achsen durch Verwenden der um die Drehmittellinien der Betätigungsachsen aufgebrachten Kraft als eine Betätigungskraft die J2 Achse 52 und die J3 Achse 53 bewegt werden, indem die Richtung der Aufbringung der Betätigungskraft parallel oder fast parallel zur Drehmittellinie der J1 Achse 51 ausgerichtet wird. In diesem Fall kann ein Bewegungsmaß der J1 Achse 51 klein gemacht werden. Außerdem kann die Richtung der Betätigungskraft durch den Vergleich mit einer vorbestimmten Richtung oder Ähnlichem auf der Grundlage der Richtung einer auf die Spitze 58 des Roboters 50 aufgebrachten Kraft erlangt werden, so dass Achsen außer einer erwünschten Achse nicht bewegt werden.
  • Wenn der Roboter 50 sich zur Zeit des Auswählens einer als Betätigungsachse eingestellten Achse aus der Mehrzahl von Achsen in der Nähe der ersten singulären Konfiguration befindet, können die J2 Achse 52 oder die J3 Achse 53 und eine erwünschte Achse als Betätigungsachsen eingestellt werden.
  • Wenn sich sowohl die J2 Achse 52 als auch die J3 Achse 53 als Betätigungsachsen bewegen, kann es, abhängig von der Einstellung der Betätigungsachseneinstelleinheit 25, der Richtung der auf die Spitze 58 des Roboters 50 aufgebrachten Kraft oder der Position der Spitze 58 des Roboters 50 eine Zeit dauern, zu veranlassen, dass die Achsen in der Nähe der singulären Konfiguration verlaufen, da beide Achsen bewegt werden. In solch einem Fall kann auf der Grundlage einer vergangenen Zeit und eines Bewegungsmaßes der Achsen eine der J2 Achse 52 und der J3 Achse 53 möglicherweise nicht als eine Betätigungsachse eingestellt werden und nicht bewegt werden oder kann die Bewegungsrichtung einer oder mehrerer gemäß der Richtung der Kraft bestimmten Betätigungsachsen geändert werden.
  • Wenn sowohl die J2 Achse 52 als auch die J3 Achse 53 als Betätigungsachsen bewegt werden, können sich diese Betätigungsachsen abhängig von der Richtung der Aufbringung der Kraft in Richtungen bewegen, die voneinander verschieden sind. Dementsprechend ist es beim Erlangen einer Betätigungskraft zum Bewegen der Betätigungsachsen vorzuziehen, die Richtung der Aufbringung der Betätigungskraft derart zu erlangen, dass sich beide Achsen in die gleiche Richtung bewegen.
  • In der zweiten in 4 dargestellten singulären Konfiguration ist die Achse, die als der Faktor für die Nähe zu der singulären Konfiguration dient, oder die Achse, die dazu veranlasst wird, in der Nähe der singulären Konfiguration zu verlaufen, die J3 Achse 53. Die J3 Achse 53 wird als die gemäß Kraft zu bewegende Betätigungsachse eingestellt und bewegt. Dies ermöglicht, dass der Roboter 50 sich durch die Nähe zu der zweiten singulären Konfiguration bewegt.
  • Wenn die Drehmittellinien sowohl der J2 Achse 52 als auch der J3 Achse 53 des Roboters 50 beim Bewegen sowohl der J2 Achse 52 als auch der J3 Achse 53 als Betätigungsachsen parallel und in der gleichen Richtung ausgerichtet sind, werden die Achsen in verschiedene Drehrichtungen um ihre Drehmittellinien bewegt. Auf diese Weise wird die J3 Achse 53 so bewegt, dass es ermöglicht wird, dass der Roboter 50 sich durch die Nähe zu der zweiten singulären Konfiguration bewegt, und wird auch die J2 Achse 52 in eine entgegengesetzten Richtung bewegt, um zu ermöglichen, dass die Bewegungsmaße der Position des Ursprungs der J5 Achse 55 und der Position der Spitze 58 des Roboters 50 in dem Bezugskoordinatensystem klein sind. Als Ergebnis kann die Bedienbarkeit des Roboters 50 verbessert werden.
  • Wenn jede Achse in der Nähe zu der singulären Konfiguration bewegt wird, kann eine Achse mit einer zur Drehmittellinie der J2 Achse 52 oder der J3 Achse 53 orthogonalen Drehmittellinie dafür ausgebildet sein, als eine Betätigungsachse beweglich zu sein. In diesem Fall kann die Achse unabhängig von der J2 Achse 52 und der J3 Achse 53 bewegt werden.
  • Wenn angenommen wird, dass die J2 Achse 52 oder die J3 Achse 53 die Betätigungsachse ist, kann es eine Achse geben, die sich, abhängig von der Richtung der auf die Spitze 58 des Roboters 50 aufgebrachten Kraft unabhängig von der J2 Achse 52 oder der J3 Achse 53 bewegt oder sich gleichzeitig mit der J2 Achse 52 oder der J3 Achse 53 bewegt. Die Achse ist vorzugsweise eine Achse, die unabhängig von der J2 Achse 52 oder der J3 Achse 53 bewegt werden kann. Jedoch kann, sogar wenn sich die Achse gleichzeitig mit der J2 Achse 52 oder der J3 Achse 53 bewegt, abhängig von der Richtung der auf die Spitze 58 des Roboters 50 aufgebrachten Kraft die Achse als die Betätigungsachse eingestellt werden, solange es kein Problem aufgrund der Bewegung gibt. Zu dieser Zeit kann eine bezüglich der Achse berechnete Betätigungskraft oder Kraftsteuerungsverstärkung klein gemacht werden, oder können, wenn sie auf der Grundlage der Betriebskraft oder der Kraftsteuerungsverstärkung bewegt wird, die Betätigungskraft und der Wert der Kraftsteuerungsverstärkung klein gemacht werden.
  • Wenn der Roboter 50 sich in der Nähe der zweiten singulären Konfiguration befindet, wird angenommen, dass die J2 Achse 52 und die J3 Achse 53 zusammen mit der J1 Achse 51 Betätigungsachsen sind, deren Positionen gemäß Kraft bewegt werden sollen. Bezüglich der gemäß der Richtung der Kraft bestimmten Bewegungsrichtungen der Betätigungsachsen wird angenommen, dass die Bewegungsrichtung der J1 Achse 52 eine der Richtung der Kraft entgegengesetzte Richtung ist, während angenommen wird, dass die Bewegungsrichtung der J3 Achse 53 die gleiche wie die Richtung der Kraft ist. Außerdem kann die Einstellung der gemäß der Richtung der Kraft bestimmten Bewegungsrichtung der J2 Achse 52 geeignet geändert werden, so dass die J2 Achse 52 in die Richtung bewegt wird, die der Bewegungsrichtung der J3 Achse 53 entgegengesetzt ist.
  • Außerdem kann beim Bewegen der Betätigungsachsen durch Verwendung der um die Drehmittellinien der Betätigungsachsen aufgebrachten Kraft als eine Betriebskraft die J1 Achse 51 bewegt werden, während die Richtung der auf die Spitze 58 des Roboters 50 aufgebrachten Kraft parallel oder fast parallel zu den Drehmittellinien der J2 Achse 52 und der J3 Achse 53 ausgerichtet wird. In diesem Fall kann die J1 Achse 51 bewegt werden, während die Bewegungsmaße der J2 Achse 52 und der J3 Achse 53 klein gemacht werden.
  • Außerdem können beim Bewegen der Betätigungsachsen durch Verwenden der um die Drehmittellinien der Betätigungsachsen aufgebrachten Kraft als eine Betätigungskraft die J2 Achse 52 und die J3 Achse 53 bewegt werden, während die Richtung der Aufbringung der Betätigungskraft parallel oder fast parallel zur Drehmittellinie der J1 Achse 51 ausgerichtet wird. In diesem Fall kann das Bewegungsmaß der J1 Achse 51 klein gemacht werden. Außerdem kann die Richtung der Betätigungskraft durch den Vergleich mit einer vorbestimmten Richtung oder Ähnlichem auf der Grundlage der Richtung der auf die Spitze 58 das Roboter 50 aufgebrachten Kraft erlangt werden, so dass keinerlei Achsen außer einer erwünschten Achse bewegt werden. Außerdem können, wenn der Roboter 50 sich zur Zeit des Auswählens einer Achse als eine Betätigungsachse aus der Mehrzahl von Achsen in der Nähe der ersten singulären Konfiguration befindet, die J3 Achse 53 und eine erwünschte Achse als Betätigungsachsen eingestellt werden.
  • In der dritten in 5 dargestellten singulären Konfiguration ist die Achse, die als der Faktor für die Nähe zu der singulären Konfiguration dient, oder die Achse, die dazu veranlasst wird, in der Nähe der singulären Konfiguration zu verlaufen, die J5 Achse 55. Die J5 Achse 55 wird als die gemäß Kraft zu bewegende Betätigungsachse eingestellt und bewegt. Dies ermöglicht, dass der Roboter 50 sich durch die Nähe zu der dritten singulären Konfiguration bewegt.
  • Wenn die J5 Achse 55 als Betätigungsachse eingestellt ist, kann es eine Achse geben, die sich abhängig von der Richtung der auf die Spitze 58 des Roboters 50 aufgebrachten Kraft unabhängig von der J5 Achse 55 bewegt oder gleichzeitig mit der J5 Achse 55 bewegt. Die Achse ist vorzugsweise eine Achse, die unabhängig von der J5 Achse 55 bewegt werden kann. Jedoch kann die Achse, sogar wenn sich die Achse gleichzeitig mit der J5 Achse 55 bewegt, abhängig von der Richtung der Kraft auf die Spitze 58 des Roboters 50 aufgebrachten Kraft als die Betätigungsachse eingestellt werden, solange es kein Problem aufgrund der Bewegung gibt. Zu dieser Zeit kann eine bezüglich der Achse berechnete Betätigungskraft klein gemacht werden oder bei Bewegung auf der Grundlage von Betriebskraft und Kraftsteuerungsverstärkung der Wert der Kraftsteuerungsverstärkung klein gemacht werden.
  • Wenn der Roboter 50 sich in der Nähe der dritten singulären Konfiguration befindet, wird angenommen, dass die J4 Achse 54 und die J5 Achse 55 Betätigungsachsen sind, deren Positionen gemäß Kraft bewegt werden sollen. Bezüglich der gemäß der Richtung der Kraft bestimmten Bewegungsrichtungen der Betätigungsachsen wird angenommen, dass die Bewegungsrichtung der J4 Achse 52 die gleiche wie die Richtung der Kraft ist.
  • Die gemäß der Richtung der Kraft der J5 Achse 55 bestimmte Bewegungsrichtung der Betätigungsachse wird auf der Grundlage der Bewegungsrichtung der J5 Achse 55 und der Richtung der vor oder zu der Zeit, wenn der Roboter 50 sich in der Nähe zu der singulären Konfiguration befindet, auf die J5 Achse 55 aufgebrachte Kraft eingestellt. Alternativ kann, wenn ein Bewegungsvorgang in dem orthogonalen Koordinatensystem ausgeführt wird, bevor der Roboter 50 sich in der Nähe der singulären Konfiguration befindet, und wo der Bewegungsvorgang ein Translationsvorgang ist, die Bewegungsrichtung der Betätigungsachse in eine der Richtung der Kraft entgegengesetzte Richtung eingestellt werden. Wenn der Bewegungsvorgang ein Drehvorgang ist, wird die Bewegungsrichtung der Betätigungsachse in die gleiche Richtung wie die der Kraft eingestellt. Auf diese Weise kann die Richtung des Bewegungsvorgangs in dem orthogonalen Koordinatensystem, bevor der Roboter 50 sich in der Nähe zu der singulären Konfiguration befindet, gleich gemacht werden wie die gemäß der Richtung der Kraft bestimmte Bewegungsrichtung der Betätigungsachse, so dass die Bedienbarkeit des Roboters 50 verbessert werden kann.
  • Außerdem können, wenn der Roboter 50 sich zur Zeit des Auswählens einer Achse als eine Betätigungsachse aus der Mehrzahl von Achsen in der Nähe der dritten singulären Konfiguration befindet, die J5 Achse 55 und eine erwünschte Achse als Betätigungsachsen eingestellt werden.
  • Die in 2 dargestellte Betätigungsbefehlseinheit 24 gibt einen Betätigungsbefehl zum Bewegen des Roboters 50 durch Verwenden einer von der ersten Kraftberechnungseinheit 22 oder der zweiten Kraftberechnungseinheit 23 auf der Grundlage der von der Kraftmesseinheit 21 gemessenen Kraft berechneten Betätigungskraft aus, so dass der Roboter 50 auf der Grundlage der auf die Spitze 58 des Roboters 50 aufgebrachten Kraft bewegt wird.
  • Die Betätigungsbefehlseinheit 24 umfasst einen ersten Steuermodus und einen zweiten Steuermodus zum Bewegen des Roboters 50. Wenn die Einheit 27 zur Bestimmung der Nähe zu einer singulären Konfiguration bestimmt, dass der Roboter 50 sich nicht in der Nähe irgendeiner singulären Konfiguration befindet, stellt die Betätigungsbefehlseinheit 24 den Steuermodus auf den ersten Steuermodus ein und bewegt den Roboter 50 auf der Grundlage des ersten Steuermodus. In der Zwischenzeit stellt, wenn die Einheit 27 zur Bestimmung der Nähe zu einer singulären Konfiguration bestimmt, dass sich der Roboter 50 in der Nähe einer singulären Konfiguration befindet, die Betätigungsbefehlseinheit 24 den Steuermodus auf den zweiten Steuermodus ein und bewegt den Roboter 50 auf der Grundlage des zweiten Steuermodus.
  • Im ersten Steuermodus bewirkt die Betätigungsbefehlseinheit 24, dass das Werkzeugkoordinatensystem translational bewegt wird und drehend um einen Steuerpunkt als einen Drehmittelpunkt auf der Grundlage einer von der ersten Kraftberechnungseinheit 22 berechneten Betätigungskraft bewegt wird, um eine Bewegungsrichtung und eine Bewegungsgeschwindigkeit der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem zu erlangen. Dann gibt die Betätigungsbefehlseinheit 24 einen Betätigungsbefehl zum Bewegen der Position und/oder der Haltung der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem in jedem Steuerzyklus aus. Zu dieser Zeit wird der Befehl der Position und/oder der Haltung der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem in einen Befehl der Position jeder Achse umgewandelt und dann ausgegeben. Außerdem kann die Bewegungsgeschwindigkeit bezüglich der Betätigungskraft zu dieser Zeit durch eine Kraftsteuerungsverstärkung bestimmt werden. Außerdem wird die Bewegungsgeschwindigkeit vorzugsweise nach Bedarf durch Reduzieren der Ansprechempfindlichkeit auf die Betätigungskraft und Erhöhen oder Reduzieren der Geschwindigkeit abhängig von der Situation in dem Bewegungsvorgang eingestellt.
  • In dem zweiten Steuermodus erlangt die Betätigungsbefehlseinheit 24 die Bewegungsrichtung und die Bewegungsgeschwindigkeit der Betätigungsachse auf der Grundlage der von der Betätigungsachseneinstelleinheit 25 eingestellten Betätigungsachse, der gemäß der Richtung der Kraft bestimmten Bewegungsrichtung der Betätigungsachse und der von der zweiten Kraftberechnungseinheit 23 berechneten Betätigungskraft bezüglich der Betätigungsachse und gibt dann einen Betätigungsbefehl zum Bewegen der Betätigungsachse in jedem Steuerzyklus aus. Beim Erzeugen des Betätigungsbefehls auf der Grundlage der Betätigungskraft kann die Bewegungsgeschwindigkeit bezüglich der Betätigungskraft durch eine Kraftsteuerungsverstärkung bestimmt werden. Außerdem wird die Bewegungsgeschwindigkeit vorzugsweise nach Bedarf durch Reduzieren der Ansprechempfindlichkeit auf die Betätigungskraft und Erhöhen oder Reduzieren der Geschwindigkeit abhängig von der Situation in dem Bewegungsvorgang eingestellt.
  • Die Speichereinheit 26 speichert Parameter, die für verschiedene Berechnungen und Berechnungsergebnisse notwendig sind, wie z.B. einen Parameter, den die Kraftmesseinheit 21 benötigt, um eine Kraft zu berechnen, einen Parameter, den jede der ersten Kraftberechnungseinheit 22 und der zweiten Kraftberechnungseinheit 23 benötigt, um eine Betätigungskraft zu berechnen, einen Parameter, den die Betätigungsachseneinstelleinheit 25 benötigt, um eine Betätigungsachse und ein Einstellungsergebnis einzustellen, und einen Parameter, den die Einheit 27 zur Bestimmung der Nähe zu einer singulären Konfiguration oder die Achsenpositionszustandsbestimmungseinheit 28 benötigt, um eine Bestimmung und ein Bestimmungsergebnis auszuführen.
  • Die Anzeigeausgabeeinheit 71 führt eine Anzeigeausgabe aus, ob der erste Steuermodus oder der zweite Steuermodus als der Steuermodus eingestellt ist. Außerdem führt, wenn der Steuermodus der zweite Steuermodus ist, die Anzeigeausgabeeinheit 71 eine Anzeigeausgabe einer von der Betätigungsachseneinstelleinheit 25 eingestellten Betätigungsachse, eine gemäß der Richtung der Kraft der Betätigungsachse bestimmte Bewegungsrichtung und Ähnliches aus.
  • Ferner umfasst, wenn auch nicht in der Zeichnung dargestellt, die Robotersteuervorrichtung 10a eine Berechnungseinheit zum Berechnen der Position jeder Achse des Roboters 50, der Position und/oder der Haltung der Spitze 58 des Roboters 50, der Geschwindigkeit und der Beschleunigung auf der Grundlage von Information von einer Positionsdetektionsvorrichtung, wie z.B. einem an jeder Achse des Roboters 50 angebrachten Kodierer.
  • Ferner umfasst, wenn auch nicht in der Zeichnung dargestellt, die Robotersteuervorrichtung 10a eine Eingabeeinheit, die Eingabedaten empfängt und verarbeitet, wie z.B. Daten, die durch Anschließen einer Eingabevorrichtung, die dazu in der Lage ist, verschiedene Einstellungen in die Robotersteuervorrichtung 10a einzugeben, übertragen werden, und Daten von Einstellungen, die von einer anderen Steuervorrichtung oder einen Computer eingegeben und an die Robotersteuervorrichtung 10a über ein Netz übertragen werden.
  • Mit Bezug auf jede der 6, 7 und 8 wird als Nächstes ein Beispiel für einen Verarbeitungsprozess der Robotersteuervorrichtung 10a gemäß der ersten Ausführungsform beschrieben, wenn die Bedienungsperson 60 den Roboter 50 durch Aufbringen einer Kraft auf die Spitze 58 des Roboters 50 bewegt. 6, 7 und 8 sind Ablaufdiagramme, von denen jedes ein Beispiel für den Verarbeitungsprozess der Robotersteuervorrichtung 10a darstellt. Nachstehend wird mit Bezug auf die Ablaufdiagramme von 6, 7 und 8 und die relevanten Zeichnungen die Ausführung der Verarbeitung durch die Robotersteuervorrichtung 10a beim Bewegen des Roboters 50 durch Aufbringen einer Kraft auf die Spitze 58 des Roboters 50 beschrieben. Es ist anzumerken, dass eine hierin beschriebene Verarbeitungsreihe lediglich ein Beispiel ist und die vorliegende Erfindung nicht auf das spezielle Beispiel beschränkt ist.
  • 6 ist ein Diagramm, das ein Beispiel der Verarbeitung zum Einstellen des Steuermodus darstellt. Wenn die Verarbeitung zum Bewegen des Roboters 50 beginnt, bestimmt die Einheit 27 zur Bestimmung der Nähe einer singulären Konfiguration, ob der Roboter 50 sich in der Nähe zu einer singulären Konfiguration befindet (Schritt S1). Die Einheit 27 zur Bestimmung der Nähe zu einer singulären Konfiguration bestimmt, ob in jedem Steuerzyklus die Position und/oder die Haltung der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem zu steuern ist (erster Steuermodus) oder in jedem Steuerzyklus die Position jeder erwünschten Achse zu steuern ist (zweiter Steuermodus).
  • Wenn die Einheit 27 zur Bestimmung der Nähe zu einer singulären Konfiguration bestimmt, dass der Roboter 50 sich nicht in der Nähe einer singulären Konfiguration befindet, wird der Steuermodus auf den ersten Steuermodus eingestellt (Schritt S2). Ferner wird, wenn die Einheit 27 zur Bestimmung der Nähe zu einer singulären Konfiguration bestimmt, dass der Roboter 50 sich in der Nähe der singulären Konfiguration befindet, der Steuermodus auf den zweiten Steuermodus eingestellt (Schritt S3).
  • Auf diese Weise ermöglicht die Verwendung der Einheit 27 zur Bestimmung der Nähe zu einer singulären Konfiguration das Wechseln zwischen dem ersten Steuermodus, der die Position und/oder die Haltung der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem auf der Grundlage der Position jeder Achse des Roboters 50 bewegt, und dem zweiten Steuermodus, der die Position jeder Achse bewegt und auch die Kennzeichnung einer Achse beim Betätigen jeder Achse ermöglicht. Dementsprechend kann, während die Spitze 58 des Roboters 50 durch Aufbringung einer Kraft bewegt wird, der Steuermodus ohne Durchführen jeglicher mittels einer getrennt bereitgestellten Eingabevorrichtung eingegebenen Aufgabe gewechselt werden.
  • Außerdem kann beim Ausführen eines Vorgangs des Aufbringens einer Kraft auf die Spitze 58 des Roboters 50 die Position und/oder die Haltung der Spitze 58 davon in dem orthogonalen Koordinatensystem bewegt werden oder kann jede erwünschte Achse bewegt werden. Zum Beispiel kann beim Bewegen der Position und/oder der Haltung der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem durch Aufbringen einer Kraft auf die Spitze 58 davon jede erwünschte Achse bewegt werden, während die Kraft auf die Spitze 58 des Roboters 50 aufgebracht wird, um den Roboter 50 zu veranlassen, sich durch eine Position zu bewegen, in die er nicht durch eine übliche Bewegung in dem orthogonalen Koordinatensystem bewegt werden kann, und dann eine Position zu erreichen, in der er normalerweise nicht aus einer gewissen Position bewegt werden kann. Danach kann zum Beispiel wieder Bewegung in dem orthogonalen Koordinatensystem ausgeführt werden.
  • Auf diese Art ist es unnötig, getrennt eine Lehrvorrichtung bereitzustellen, durch die die Bedienungsperson die Einstellung wechselt und einen Eingabevorgang zum Wechseln der Einstellung ausführt. Dementsprechend können die Kosten für das Robotersystem gesenkt werden und kann bei dem Bewegungsvorgang die Bewegung in eine beliebige Position und/oder eine beliebige Haltung in dem orthogonalen Koordinatensystem und in eine beliebige Achsenposition leicht ausgeführt werden und kann auch der Bewegungsvorgang gleichmäßiger, kontinuierlicher und bequemer ausgeführt werden.
  • Die vorliegende Erfindung ermöglicht, dass der Roboter 50 sich durch die Nähe zu einer singulären Konfiguration bewegt, wo es unmöglich oder schwierig ist, einen Bewegungsvorgang der Position und/oder der Haltung der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem durchzuführen, oder wo der Bewegungsvorgang instabil wird, was den Bewegungsvorgang in solch einem Zustand erleichtert. Ferner kann der Roboter 50 auch stabil und sicher durch frühzeitiges Detektieren einer Nachbarschaft zu der singulären Konfiguration, wo der Bewegungsvorgang der Position und/oder der Haltung der Spitze 58 davon in dem orthogonalen Koordinatensystem dazu tendiert, instabil zu werden, bewegt werden und jede erwünschte Achse bewegt werden.
  • Danach wird der Betätigungsbefehl zum Bewegen des Roboters 50 gemäß dem Steuermodus geändert. 7 ist ein Diagramm, das ein Beispiel für die Verarbeitungsausführung darstellt, wenn der Steuermodus der erste Steuermodus ist. Nachstehend wird die Verarbeitungsausführung beschrieben, wenn der Steuermodus der erste Steuermodus ist.
  • Zuerst misst die Kraftmesseinheit 21 eine auf die Spitze 58 des Roboters 50 aufgebrachte Kraft (Schritt S11). Auf der Grundlage der von der Kraftmesseinheit 21 gemessenen auf die Spitze 58 des Roboters 50 aufgebrachten Kraft berechnet als Nächstes die erste Kraftberechnungseinheit 22 eine Betätigungskraft zum Bewegen der Position und/oder der Haltung der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem (Schritt S12).
  • Danach erzeugt die Betätigungsbefehlseinheit 24 einen Betätigungsbefehl zum Bewegen der Position und/oder der Haltung der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem auf der Grundlage der von der ersten Kraftberechnungseinheit 22 berechneten Betätigungskraft und gibt den Betätigungsbefehl aus (Schritt S13).
  • 8 ist ein Diagramm, das ein Beispiel für die Verarbeitungsausführung darstellt, wenn der Steuermodus der zweite Steuermodus ist. Nachstehend wird die Verarbeitungsausführung beschrieben, wenn der Steuermodus der zweite Steuermodus ist. Zuerst misst die Kraftmesseinheit 21 eine von der Bedienungsperson 60 auf die Spitze 58 des Roboters 50 aufgebrachte Kraft (Schritt S21). Als Nächstes stellt die Betätigungsachseneinstelleinheit 25 eine Betätigungsachse ein, die gemäß Kraft zu bewegen ist, und stellt auch eine gemäß der Richtung der Kraft bestimmte Bewegungsrichtung der Betätigungsachse ein (Schritt S22).
  • Dann berechnet die zweite Kraftberechnungseinheit 23 auf der Grundlage der von der Kraftmesseinheit 21 gemessenen auf die Spitze 58 des Roboters 50 aufgebrachten Kraft eine Betätigungskraft zum Bewegen der Position der von der Betätigungsachseneinstelleinheit 25 eingestellten Betätigungsachse (Schritt S23). Danach erzeugt die Betätigungsbefehlseinheit 24 einen Betätigungsbefehl zum Bewegen der Position der Betätigungsachse auf der Grundlage der von der zweiten Kraftberechnungseinheit 23 berechneten Betätigungskraft und der Einstellung der Betätigungsachseneinstelleinheit 25 und gibt den Betätigungsbefehl aus (Schritt S24).
  • Nachstehend wird ein weiteres praktisches Beispiel der Verarbeitung zum Bewegen der Position jeder Achse beschrieben, die ausgeführt wird, wenn der Steuermodus der zweite Steuermodus ist. In Schritt S23 stellt die Betätigungsachseneinstelleinheit 25 die J2 Achse 52, die J3 Achse 53 und die J1 Achse 51 als Betätigungsachsen auf der Grundlage einer gegenwärtigen Position jeder Achse ein. Dann wird angenommen, dass die Betätigungsachseneinstelleinheit 25 die gemäß der Richtung der Kraft bestimmte Bewegungsrichtung der Betätigungsachse für sowohl die J2 Achse 52 als auch die J3 Achse 53 in die gleiche Richtung wie die der Kraft einstellt.
  • Bezüglich solch eines Falls wird nachstehend ein Verfahren zum Berechnen einer Betätigungskraft zum Bewegen der Position der Betätigungsachse durch die zweite Kraftberechnungseinheit 23 in Schritt S23 und ein Verfahren zum Erzeugen des Betätigungsbefehls zum Bewegen der Position der Betätigungsachse durch die Betätigungsbefehlseinheit 24 in Schritt S24 im Detail beschrieben.
  • Das Verfahren zum Berechnen einer Betätigungskraft bezüglich einer Betätigungsachse durch die zweite Kraftberechnungseinheit 23, wenn der Roboter 50 sich in der Nähe der in 9 dargestellten ersten singulären Konfiguration befindet, wird beschrieben. Das Berechnungsverfahren kann, wenn die als die Betätigungsachse eingestellte Achse eine andere ist, und abhängig von der Situation des Bewegungsvorgangs geändert werden.
  • 9 ist ein Diagramm, das zeigt, dass eine auf die Spitze 58 des Roboters 50 aufgebrachte Kraft Fs von der Kraftmesseinheit 21 gemessen wurde. Es wird angenommen, dass Fs eine Translationskomponente F der Kraft und eine Momentkomponente M der Kraft umfasst und eine Kraft ist, die die Translationskomponenten Fx, Fy und Fx von Kraft und Momentkomponenten Mx, My und Mz von Kraft umfasst.
  • Beim Einstellen eines Koordinatensystems bezüglich einer Betätigungsachse wird das Koordinatensystem auf solch eine Art eingestellt, dass eine Drehmittellinie der Betätigungsachse mit einer Z-Achse des Koordinatensystems übereinstimmt. Die Betätigungskraft kann ein Moment einer Kraft um die Z-Achse in einer durch Koordinaten-Umwandeln der von der Kraftmesseinheit 21 gemessenen Kraft Fs in eine Kraft in dem auf der Betätigungsachse eingestellten Koordinatensystem berechneten Kraft sein.
  • Alternativ kann die Betätigungskraft wie nachstehend beschrieben erlangt werden.
  • 10 ist ein Diagramm zum Darstellen eines Verfahrens zum Berechnen einer Betätigungskraft bezüglich einer Betätigungsachse 31 auf der Grundlage der Betätigungsachse 31 und der von der in 9 dargestellten Kraftmesseinheit 21 gemessenen Kraft Fs.
  • Ein Koordinatensystem, das einen Punkt P1, eine X-Achse Ax, eine Y-Achse Ay und eine Z-Achse Az umfasst, wird bezüglich der Betätigungsachse 31 so eingestellt, dass P1, der eine Position der Betätigungsachse 31 in einem Bezugskoordinatensystem darstellt, der Ursprung des Koordinatensystems ist; die Z-Achse Az mit einer Drehmittellinie der Betätigungsachse 31 übereinstimmt; und eine von der X-Achse Ax und der Y-Achse Ay gebildete Ebene eine zur Drehmittellinie der Betätigungsachse 31 orthogonale Ebene ist. Eine Ebene C ist die von der X-Achse und von der Y-Achse Ay in dem bezüglich der Betätigungsachse 31 eingestellten Koordinatensystem gebildete Ebene und es wird angenommen, dass sie eine X-Y-Ebene ist. Außerdem kann die Ebene C eine zur Drehmittellinie der Betätigungsachse 31 orthogonale Ebene sein. In diesem Fall ist der Punkt P1 ein Schnittpunkt der Ebene und der Drehmittellinie. Außerdem wird angenommen, dass ein Punkt P2 ein Punkt ist, wo ein Kraftmesspunkt als der Ursprung eines Kraftmesskoordinatensystems, das beim Messen einer auf die Spitze 58 des Roboters 50 aufgebrachten Kraft verwendet wird, in der Ebene C projiziert wird.
  • Es wird angenommen, dass ein Moment der Kraft, das durch Koordinaten-Umwandeln der Momentkomponentenkraft M (Mx, My, Mz) der von der Kraftmesseinheit 21 gemessenen Kraft Fs in ein Moment der Kraft in der Ebene C erlangt wird, ein Moment M21 der Kraft ist. Alternativ kann das Moment M21 der Kraft ein Moment der Kraft um die Z-Achse Az sein, die durch Koordinaten-Umwandeln der Momentkomponentenkraft M davon in ein Moment der Kraft in dem an der Betätigungsachse 31 eingestellten Koordinatensystem erlangt wird.
  • Ein Positionsvektor Pv ist ein Positionsvektor von dem P1 zum Punkt P2 in der Ebene C. Eine Größe des Positionsvektors Pv ist in diesem Fall eine kürzeste Entfernung zwischen der Drehmittellinie der Betätigungsachse 31 und dem Kraftmesspunkt.
  • Eine Kraft Fp ist eine Translationskraft, die als eine um die Drehmittellinie der Betätigungsachse 31 in der Ebene C aufgebrachte Kraft auf der Grundlage der Translationskomponentenkraft F (Fx, Fy, Fz) der von der Kraftmesseinheit 21 gemessenen Kraft Fs erlangt wird. Es kann angenommen werden, dass die durch Projizieren der Translationskomponentenkraft F in der Ebene C erlangte Translationskraft die Kraft Fp ist. Außerdem kann beim Erlangen der Kraft Fp auf der Grundlage der Translationskomponente F der Kraft Fs die Kraft Fp auf der Grundlage einer Richtung, in die die Translationskomponentenkraft F der Kraft Fs aufgebracht wird, und eines Drehvorgangs der Richtung in eine vorbestimmte Richtung berechnet werden.
  • Jetzt wird mit Bezugnahme auf 11 ein Beispiel eines Verfahrens zum Berechnen der Kraft Fp zur Reduzierung von Schwankungen der Größe der von der Kraft F erlangten Kraft Fp aufgrund von Schwankungen in der Richtung der Kraft F der Translationalkomponente der Kraft Fs beschrieben. Es wird angenommen, dass in dem Koordinatensystem an der Betätigungsachse 31 eine Kraft, die durch paralleles Bewegen einer auf einen Kraftmesspunkt P3 aufgebrachten Kraft F, um an dem Punkt P2 in der Ebene C aufgebracht zu werden, wo ein Wert des Kraftmesspunkts P3 in Richtung der Z-Achse Az auf Null eingestellt wird, erlangt wird, die Kraft Fsp ist. Wenn ein von der Kraft Fsp und der Ebene C gebildeter Winkel kleiner ist als ein vorbestimmter Schwellenwert, wird die Kraft Fsp um den Punkt P2 als ein Drehmittelpunkt in einer Richtung gedreht, die der Ebene C am nächsten ist, um als eine Kraft in der Ebene C verwendet zu werden, wodurch eine Kraft Fp erlangt wird.
  • Wenn der von der Kraft Fsp und der Ebene C gebildete Winkel groß ist und die Richtung der Kraft Fsp in der Nähe einer zu der Ebene C orthogonalen Richtung ist, macht das oben beschriebene Verfahren die Kraft ungeeignet groß und wird somit nicht ausgeführt. Wenn der von der Kraft Fsp und der Ebene C gebildete Winkel gleich oder größer ist als der vorbestimmte Schwellenwert, wird die Kraft F der Übergangskomponente der Kraft Fs oder der Kraft Fsp in der Ebene C projiziert, um die Kraft Fp zu erlangen, oder alternativ wird angenommen, dass die Größe der Kraft Fp 0 ist und jegliche Betätigungskraft von der Kraft F der Übergangskomponente der Kraft Fs nicht aufgebracht wird.
  • Außerdem kann, wenn ein von der Kraft F der Übergangskomponente der Kraft Fs und einer zu der Ebene C parallelen Ebene gebildeter Winkel kleiner ist als ein vorbestimmter Schwellenwert, angenommen werden, dass ein Vektor, der durch Projizieren der Kraft F in der Ebene C und außerdem das Ausführen von Expansions-/Kontraktionseinstellung eines Vektors der Projektion, so dass eine Größe des Vektors eine Größe der Kraft F wird, erlangt wird, die Kraft Fp ist.
  • Ferner kann, wenn der von der Kraft F der Übergangskomponente der Kraft Fs und der zu der Ebene C parallelen Ebene gebildete Winkel gleich oder größer als der vorbestimmte Schwellenwert ist, die Kraft F in der Ebene C projiziert werden, um die Kraft Fp zu erlangen, oder kann alternativ angenommen werden, dass die Größe der Kraft Fp 0 ist und jegliche Betätigungskraft der Kraft F der Übergangskomponente der Kraft Fs nicht aufgebracht wird.
  • Wie oben beschrieben, ist es möglich, Schwankungen in der Größe der Kraft Fp auf der Grundlage von Schwankungen in der Richtung der Kraft F zu reduzieren oder die Größe der Kraft Fp durch Erlangen der Kraft Fp in der Ebene C auf der Grundlage der Richtung, in die die Kraft F der Translationskomponente der Kraft Fs aufgebracht wird, und des Drehvorgangs der Richtung in eine vorbestimmte Richtung, einzustellen, im Vergleich dazu, wenn nur die Kraft F in der Ebene C projiziert wird.
  • Außerdem wird mit Bezugnahme auf 12 ein weiteres Beispiel für das Verfahren zum Berechnen der Kraft Fp zum Reduzieren von Schwankungen der Größe der von der Kraft F erlangten Kraft Fp aufgrund von Schwankungen in der Richtung der Kraft F der Translationsrichtungskomponente der Kraft Fs beschrieben.
  • Eine in 12 dargestellte Ebene zeigt eine Ebene, die einen Vektor umfasst, der erlangt wird, wenn eine Kraft F einer Translationsrichtungskomponente der Fs in der Ebene C, orthogonal zu der Ebene C, projiziert wird und eine Achse Az2 umfasst. Es wird angenommen, dass die Achse Az2 eine zur Z-Achse Az parallele Achse ist. Es wird angenommen, dass die Kraft Fsp eine Kraft ist, die in dem bezüglich der Betätigungsachse 31 eingestellten Koordinatensystem parallel bewegt wird, so dass die an dem Kraftmesspunkt P3 aufgebrachte Kraft F an dem Punkt P2 in der Ebene C aufgebracht wird, wo der Wert des Kraftmesspunkts P3 in Richtung der Z-Achse Az 0 ist. Ein von der Kraft Fsp und der Ebene C gebildeter Winkel wird mit vorbestimmten Bereichen Rp1, Rp2 und Rp3 verglichen, die durch einen vorbestimmten Winkel in der Reihenfolge bestimmt werden, um zu erfahren, welcher der vorbestimmten Bereiche die Richtung der Kraft Fsp umfasst. Auf der Grundlage des Bereichs, der die Richtung der Kraft Fsp umfasst, wird ein in jedem vorbestimmten Bereich eingestellter vorbestimmter Winkel erlangt, um eine Richtung zu erlangen, die den Winkel bezüglich der Ebene C bildet. Mit anderen Worten wird eine gemäß der Richtung der Kraft bestimmte repräsentative Richtung erlangt.
  • Dann wird Fsp um den Punkt P2 als den Drehmittelpunkt gedreht, so dass die Richtung der Kraft die erlangte Richtung wird. Die somit erlangte Kraft wird in der Ebene C projiziert und es wird angenommen, dass der berechnete Vektor eine Kraft Fp ist.
  • Zum Beispiel wird, wenn die Richtung der Kraft Fsp innerhalb des Bereichs Rp1 ist, angenommen, dass eine Richtung, in die die Kraft Fsp drehend bewegt wird, eine Richtung ist, in die der von der Kraft Fsp und der Ebene C gebildete Winkel 0 Grad ist. Wenn die Richtung der Kraft Fsp innerhalb des Bereichs Rp3 ist, ist die Richtung der Kraft Fsp nahe an einer zu der Ebene C orthogonalen Richtung. In solch einem Fall wird angenommen, dass die Richtung, in die die Kraft Fsp drehend bewegt wird, eine zu der Ebene C orthogonale Richtung ist. Alternativ wird angenommen, dass die Größe der Kraft Fp 0 ist und jegliche Betätigungskraft durch die Kraft F der Translationsrichtungskomponente der Kraft Fs nicht aufgebracht wird.
  • Beim Wechseln der Richtung der Kraft Fsp abhängig von dem vorbestimmten Bereich, wie vorstehend erwähnt, ist es vorzuziehen, die Richtung der Kraft Fsp oder die Größe der Kraft Fp, die durch Projizieren der Kraft Fsp erlangt wird, durch Projizieren der Kraft Fsp gleichmäßig zu ändern, so dass die Betätigungskraft sich nicht wesentlich ändert.
  • Bezüglich der somit in der Ebene C erlangten Kraft Fp kann angenommen werden, dass eine Kraft Fn, wie später beschrieben, die auf der Grundlage eines Drehvorgangs der Richtung in eine vorbestimmte Richtung, eines Vorgangs einer parallelen Bewegung, eines Vorgang des Änderns der Größe der Kraft Fp und Ähnlichem erlangt wird, eine neue Kraft Fp ist.
  • Dann wird eine Betätigungskraft auf der Grundlage eines Moments M11 der Kraft erlangt, das durch eine Berechnung des äußeren Produktes der Kraft Fp in der Ebene C und des Positionsvektors Pv und eines Moments M21 der Kraft erlangt wird.
  • Wenn die Größe des Positionsvektors Pv kleiner als ein vorbestimmter Wert ist, wird angenommen, dass das Moment M21 der Kraft eine Betätigungskraft ist. Dies hat folgende Wirkung. Wenn der Punkt P2 sich in der Nähe des Punkts P1 befindet, und, abhängig von einem Fehler des Punkts P2, der Punkt P2 in einer anderen Position als der tatsächlichen Position davon ist oder die Position davon schwankt, kann das Vorzeichen des Moments der Kraft entgegengesetzt sein. In solch einem Fall kann, wenn der Wert einer Kraftsteuerungsverstärkung bezüglich der Betätigungskraft groß ist oder wenn ein Moment der Kraft durch Multiplizieren jedes des Moments M11 der Kraft und des Moments M21 der Kraft mit einem Koeffizienten und deren Addition berechnet wird, und wenn der Koeffizient, mit dem das Moment M11 der Kraft multipliziert wird, groß ist, kann verhindert werden, dass die Betätigungsachse in eine unbeabsichtigte Richtung bewegt wird.
  • Wenn die Größe des Positionsvektors Pv gleich oder größer ist als der vorbestimmte Wert, wird ein Moment der Kraft von der Berechnung des äußeren Produktes des Positionsvektors Pv und der Kraft Fp berechnet und wird angenommen, dass das berechnete Moment M11 der Kraft eine Betätigungskraft ist. Alternativ wird angenommen, dass ein Moment der Kraft, das durch Addieren des berechneten Moments M11 der Kraft und des Moments M21 der Kraft erlangt wird, eine Betätigungskraft ist. Ferner können Werte, die durch Multiplizieren jedes der Momente M11 und M21 der Kraft mit einem Koeffizienten erlangt werden, um die Größe davon zu ändern, um einen Einfluss jedes Moments der Kraft einzustellen, addiert werden. In diesem Fall kann der Koeffizient auf der Grundlage der Größe des Positionsvektors Pv, der Größe der Kraft Fp und Ähnlichem eingestellt werden.
  • Wenn es wünschenswert ist, den Einfluss der Kraft M der Momentkomponente der Kraft der von der Kraftmesseinheit 21 gemessenen Kraft Fs zu entfernen, oder es wünschenswert ist, die Betätigungsachse nur durch die Translationskraft der Kraft Fs zu bewegen, wird vorzugsweise angenommen, dass nur das Moment M11 der Kraft die Betätigungskraft ist, ohne das Moment M21 der Kraft zu berücksichtigen.
  • Außerdem variiert, selbst wenn die Größe der Kraft Fp die gleiche ist, die Größe des berechneten Moments M11 der Kraft abhängig von der Größe des Positionsvektors Pv. Deshalb schwankt im Gegensatz zu dem Moment M21 der Kraft die Größe des Moments M11 der Kraft abhängig von der positionellen Bewegung der Spitze 58 des Roboters 50, und schwankt somit die Betätigungskraft.
  • Dementsprechend kann, wenn die Größe des Positionsvektors Pv gleich oder größer ist als der vorbestimmte Schwellenwert und die Größe der Kraft Fp kleiner ist als ein vorbestimmter Schwellenwert, vorzugsweise angenommen werden, dass nur das Moment M21 der Kraft die Betätigungskraft ist. Die vorstehende Beschreibung bezüglich des Moments M21 der Kraft wird ähnlich auf andere Fälle angewendet, wenn das Moment M21 der Kraft berücksichtigt wird.
  • Beim Berechnen eines Moments der Kraft, wie vorstehend beschrieben, besteht, selbst wenn die Größe der Kraft Fp die gleiche ist, ein Problem, das sich aus der Änderung der Größe des berechneten Moments M11 der Kraft, die abhängig von der Größe des Positionsvektors Pv bewirkt wird, ergibt. Ein Verfahren zum Lösen des Problems wird mit Bezugnahme auf 13 beschrieben.
  • 13 ist ein Diagramm zum Darstellen eines weiteren Verfahrens zum Berechnen einer Betätigungskraft bezüglich der Betätigungsachse 31 auf der Grundlage der von der Kraftmesseinheit 21 gemessenen Kraft Fs, wie vorstehend beschrieben. Es wird angenommen, dass eine Gerade Lw eine in der Ebene C vorhandene Gerade ist, die den Punkt P1 und den Punkt P2 umfasst. Ein Positionsvektor Pn wird durch eine Expansions-/Kontraktionsanpassung der Größe des Positionsvektors Pv an einen vorbestimmten Wert Cpn auf der Grundlage des Positionsvektors Pv berechnet, wo die Kraft Fp, die eine Translationskraft in der Ebene C umfasst, aufgebracht wird. Es wird angenommen, dass eine Kraft die durch paralleles Bewegen der Kraft Fp, um an einer Position P4 als ein Endpunkt des Positionsvektors Pn aufgebracht zu werden, erlangt wird, eine Kraft Fn ist.
  • Ein Moment der Kraft wird durch eine Berechnung des äußeren Produktes des Positionsvektors Pn und der somit erlangten Kraft Fn berechnet und es wird angenommen, dass das berechnete Moment M12 der Kraft die Betätigungskraft ist.
  • Wie vorstehend beschrieben, ermöglicht beim Erlangen eines Moments der Kraft die Expansions-/Kontraktionsanpassung des Positionsvektors die Reduktion von Schwankungen in dem Moment der Kraft aufgrund von Schwankungen in der Position des Punkts P2, so dass kleine Schwankungen, radikale Änderungen und Ähnliches in der Betätigungskraft verhindert werden können. Auf diese Art kann der Roboter 50 stabil bewegt und die Bedienbarkeit somit verbessert werden.
  • Außerdem wird beim Erlangen einer Bewegungsgeschwindigkeit der Betätigungsachse auf der Grundlage einer Betätigungskraft und einer Kraftsteuerungsverstärkung verhindert, dass die Bewegungsgeschwindigkeit der Betätigungsachse, selbst wenn die gleiche Kraft aufgebracht wird, abhängig von der Position der Spitze 58 des Roboters 50 unbeabsichtigt schwankt.
  • Außerdem kann in 13 der vorbestimmte Wert Cpn, der zum Einstellen der Größe des Positionsvektors Pv auf eine vorbestimmte Größe verwendet wird, auf der Grundlage der Größe des Positionsvektors Pv geändert werden. Genau wird der vorbestimmte Wert Cpn bezüglich der Größe des Positionsvektors Pv in jedem vorbestimmten Bereich in Stufen geändert. In diesem Fall ist es beim Ändern des Werts in Stufen vorzuziehen, den vorbestimmten Wert Cpn gleichmäßig zu ändern oder das berechnete Moment M12 der Kraft auf solch eine Art gleichmäßig zu ändern, dass die Betätigungskraft sich nicht wesentlich ändert.
  • Wie vorstehend beschrieben, kann, da der vorbestimmte Wert Cpn in jedem vorbestimmten Bereich in Stufen geändert wird, verhindert werden, dass das Moment der Kraft aufgrund kleiner positionellen Schwankungen innerhalb des vorbestimmten Bereichs schwankt. Dies ermöglicht, dass sich das Moment M12 der Kraft gemäß der Größe des Positionsvektors Pv ändert, sogar wenn die Größe der Kraft Fn die gleiche ist. Ferner können Schwankungen in der Betätigungskraft reduziert werden, was ermöglicht, dass der Roboter 50 stabiler und sicherer bewegt wird, wodurch die Bedienbarkeit verbessert wird.
  • Alternativ kann, wenn die Größe des Positionsvektors Pv größer wird, der vorbestimmte Wert Cpn kleiner gemacht werden. In diesem Fall wird der vorbestimmte Wert Cpn, wenn die Größe des Positionsvektors Pv zunimmt, in jedem vorbestimmten Bereich in Stufen oder gemäß einer vorbestimmten Funktion in Stufen reduziert. Zu dieser Zeit ist es beim Ändern des vorbestimmten Werts Cpn in Stufen vorzuziehen, den Wert des vorbestimmten Werts Cpn auf solch eine Art gleichmäßig zu ändern, dass sich die Betätigungskraft nicht wesentlich ändert.
  • Wie vorstehend beschrieben, ermöglicht das kleiner Machen des vorbestimmten Werts Cpn zusammen mit der Vergrößerung des Positionsvektors Pv, dass die Größe des Moments M12 der Kraft sogar klein gemacht wird, wenn die Größe der Kraft Fn die gleiche ist, wodurch die Betätigungskraft klein gemacht werden kann. Auf diese Weise kann beim Erlangen der Bewegungsgeschwindigkeit der Betätigungsachse auf der Grundlage von Betätigungskraft und Kraftsteuerungsverstärkung die Bewegungsgeschwindigkeit der Betätigungsachse klein gemacht werden, wenn die Größe der Kraft Fp die gleiche ist, aber die Spitze 58 des Roboters 50 bezüglich der Betätigungsachse distal ist. Die Bedienungsperson kann den Roboter 50 durch Bewegen der Spitze 58 des Roboters 50 in einen Zustand, in dem die Bewegungsgeschwindigkeit, d.h. eine Drehgeschwindigkeit der Achse klein gemacht wird, sicherer bewegen.
  • Ferner kann, wie in der vorstehenden Beschreibung mit Bezugnahme auf 10, das Moment M21 der Kraft zur Verwendung berechnet werden. Mit anderen Worten wird angenommen, dass, wenn die Größe des Positionsvektors Pv kleiner ist als der vorbestimmte Wert, das Moment M21 der Kraft die Betätigungskraft ist. Außerdem wird angenommen, dass, wenn die Größe des Positionsvektors Pv gleich oder größer als der vorbestimmte Wert ist, das Moment M12 der Kraft oder ein Moment der Kraft, das durch Addieren des Moments M12 der Kraft und des Moments M21 der Kraft erlangt wird, die Betätigungskraft ist. Ferner kann ein Einfluss jedes der Momente M12 und M21 der Kraft durch Multiplizieren jedes des Moments M12 der Kraft und des Moments M21 der Kraft mit einem Koeffizienten, um die Größe davon zu ändern, eingestellt werden und können dann durch die Anpassung der Einflüsse erlangte Werte addiert werden. In diesem Fall kann der Koeffizient auf der Grundlage der Größe des Positionsvektors Pv, der Größe der Kraft Fp und Ähnlichem eingestellt werden.
  • Außerdem besteht beim Berechnen eines Moments der Kraft, wie vorstehend beschrieben, ein Problem, das sich aus der Änderung der Größe des abhängig von der Richtung der bewirkten Kraft Fp berechneten Moments der Kraft ergibt, sogar wenn die Größe der Kraft Fp die gleiche ist. Ein Verfahren zum Lösen des Problems wird mit Bezugnahme auf 14 beschrieben.
  • 14 ist ein Diagramm zum Darstellen eines weiteren Verfahrens zum Berechnen einer Betätigungskraft bezüglich der Betätigungsachse 31 auf der Grundlage der von der Kraftmesseinheit 21 gemessenen Kraft Fs, wie vorstehend beschrieben. In 14 wird eine Kraft, die eine Translationskraft umfasst, die um die Drehmittellinie der Betätigungsachse 31 aufgebracht wird, auf der Grundlage einer Richtung, in die eine Kraft F einer Translationskomponente einer Kraft Fs aufgebracht wird, und eines Drehvorgangs einer Richtung in eine vorbestimmte Richtung erlangt.
  • Zuerst wird, wie vorstehend beschrieben, auf der Grundlage der Kraft F der Translationskomponente der Kraft Fs eine Kraft Fp, die eine Translationskraft in der Ebene C umfasst, berechnet. Auf der Grundlage einer Richtung der berechneten Kraft Fp wird ein von der Kraft Fp und der Geraden Lw gebildeter Winkel erlangt. Der berechnete Winkel wird mit einem vorbestimmten Winkelbereich Rp verglichen. Wenn bestimmt wird, dass die Richtung der Kraft Fp sich innerhalb des vorbestimmten Winkelbereichs Rp befindet, wird die Kraft Fp um den Punkt P2 als Drehmittelpunkt gedreht, so dass die Richtung der Kraft Fp eine vorbestimmte Richtung Dn (in der Zeichnung nicht gezeigt) als eine repräsentative Richtung ist, wodurch eine Kraft Fn berechnet wird. Die Richtung der Kraft Fn wird vorzugsweise auf eine zum Positionsvektor Pv orthogonale Richtung eingestellt. Ein Moment der Kraft wird von einer Berechnung des äußeren Produktes des Positionsvektors Pn und der somit erlangten Kraft Fn berechnet, und es wird angenommen, dass das berechnete Moment M13 der Kraft die Betätigungskraft ist.
  • Wie oben beschrieben, kann beim Erlangen eines Moments der Kraft das Einstellen der Richtung der um die Drehmittellinie der Betätigungsachse 31 aufgebrachten Kraft in eine gemäß der Richtung bestimmte repräsentative Richtung die Schwankungen in dem Moment der Kraft Fp aufgrund von Schwankungen der Richtung der Kraft Fp reduzieren, so dass Schwankungen und radikale Änderungen der Betätigungskraft und Ähnlichem verhindert werden. Auf diese Art kann der Roboter 50 stabil bewegt werden, was eine Verbesserung der Bedienbarkeit ermöglicht.
  • Außerdem kann beim Erlangern der Bewegungsgeschwindigkeit der Betätigungsachse auf der Grundlage von Betätigungskraft und Kraftsteuerungsverstärkung verhindert werden, dass selbst, wenn die gleiche Kraft aufgebracht wird, die Bewegungsgeschwindigkeit der Betätigungsachse abhängig von der Richtung der Kraft Fp unabsichtlich schwankt.
  • Außerdem kann die vorbestimmte Richtung Dn, die zum Drehen der Richtung der Kraft Fp verwendet wird, gemäß der Richtung der Kraft Fp geändert werden. Ein Beispiel eines Verfahrens zum Drehen der Richtung der Kraft Fp durch Ändern der vorbestimmten Richtung Dn gemäß der Richtung der Kraft Fp wird mit Bezugnahme auf 15 beschrieben.
  • Wie in 15 dargestellt, werden Bereiche von unterschiedlichem Rang, wie z.B. Bereiche Rp1, Rp2 und Rp3, als vorbestimmte Winkelbereiche eingestellt. Auf der Grundlage eines von der Kraft Fp und der Geraden Lw gebildeten Winkels wird bestimmt, welcher der Winkelbereiche Rp1, Rp2, und Rp3 die Richtung der Kraft Fp umfasst. Auf der Grundlage der vorbestimmten Richtung Dn, die im Voraus in jeden Bereich eingestellt wird, wird die Richtung der Kraft Fp um den Punkt P2 als den Drehmittelpunkt gedreht.
  • Zum Beispiel wird angenommen, dass, wenn die Richtung der Kraft Fp innerhalb des Bereichs Rp1 ist, eine Kraft Fn1, die durch Drehen der Kraft Fp in der vorbestimmten Richtung Dn erlangt wird, die Kraft Fn ist. Wenn die Richtung der Kraft Fp innerhalb des Bereichs Rp2 ist, wird angenommen, dass eine Kraft Fn2, die durch Drehen der Kraft Fp in eine andere vorbestimmte Richtung Dn erlangt wird, die Kraft Fn ist. Ferner wird, wenn die Richtung der Kraft Fp innerhalb des Bereichs Rp3 ist, angenommen, dass eine Kraft Fn3, die durch Drehen der Kraft Fp in noch eine andere vorbestimmte Richtung Dn erlangt wird, die Kraft Fn ist. Beim Ändern der vorbestimmten Richtung Dn in Stufen in jedem Bereich, wie vorstehend beschrieben, ist es vorzuziehen, die Richtung der Kraft Fp gleichmäßig zu ändern oder das berechnete Moment M13 der Kraft gleichmäßig zu ändern, so dass die Betätigungskraft sich nicht wesentlich ändert.
  • Auf diese Weise ermöglicht das Ändern der vorbestimmten Richtung Dn, die zum Drehen der Richtung der Kraft Fp in jedem vorbestimmten Bereich in Stufen auf der Grundlage der Richtung der Kraft Fp verwendet wird, das Ändern des Moments M13 der Kraft unter Berücksichtigung der Richtung der Kraft Fp so sehr wie möglich. Ferner ist es in diesem Fall möglich, kleine Schwankungen in dem Moment M13 der Kraft aufgrund von Schwankungen in der Richtung der Kraft Fp zu verhindern, die auftreten, wenn die Richtung der Kraft Fp sich innerhalb eines der vorbestimmten Bereiche befindet. Dies kann Schwankungen in der Betätigungskraft reduzieren, so dass der Roboter 50 stabiler und sicherer bewegt werden kann, was eine Verbesserung der Bedienbarkeit ermöglicht.
  • Außerdem kann, wenn die Größe des Positionsvektors Pv größer wird, die vorbestimmte Richtung Dn in eine Richtung geändert werden, in die der von der vorbestimmten Richtung Dn und dem Positionsvektor Pv gebildete Winkel kleiner wird. In diesem Fall wird, zusammen mit der Vergrößerung des Positionsvektors Pv, die vorbestimmte Richtung Dn in die Richtung geändert, in die der von der vorbestimmten Richtung Dn und dem Positionsvektor Pv gebildete Winkel bezüglich der Größe des Positionsvektors Pv in jedem vorbestimmten Bereich in Stufen oder gemäß einer vorbestimmten Funktion in Stufen kleiner wird.
  • Beim Ändern der vorbestimmten Richtung Dn in jedem Bereich in Stufen ist es vorzuziehen, die Richtung der Kraft Fp gleichmäßig zu ändern oder das berechnete Moment M13 der Kraft gleichmäßig zu ändern, so dass eine Betätigungskraft sich nicht wesentlich ändert.
  • Auf diese Art kann die Betätigungskraft durch Reduzieren der Größe des Moments M13 der Kraft, sogar wenn die Größe der Kraft Fn die gleiche ist, durch Ändern der vorbestimmten Richtung Dn in die Richtung, in die der von der vorbestimmten Richtung Dn und dem Positionsvektor Pv gebildete Winkel kleiner wird, wenn die Größe des Positionsvektors Pv größer wird, klein gemacht werden.
  • Dementsprechend kann beim Erlangen der Bewegungsgeschwindigkeit der Betätigungsachse auf der Grundlage von Betätigungskraft und Kraftsteuerungsverstärkung die Bewegungsgeschwindigkeit der Betätigungsachse klein gemacht werden, wenn die Spitze 58 des Roboters 50 bezüglich der Betätigungsachse distal ist, obwohl die Größe der Kraft Fp die gleiche ist. Durch Bewegen der Spitze 58 des Roboters 50 in den Zustand, wo die Bewegungsgeschwindigkeit, d.h. die Drehgeschwindigkeit der Achse, klein gemacht wird, kann die Bedienungsperson den Roboter 50 sicherer bewegen.
  • Ferner kann, wie in der vorstehenden Beschreibung mit Bezugnahme auf 10, das Moment M21 der Kraft zur Verwendung berechnet werden. Mit anderen Worten wird, wenn die Größe des Positionsvektors Pv kleiner als ein vorbestimmter Wert ist, angenommen, dass das Moment M21 der Kraft die Betätigungskraft ist. Außerdem wird, wenn die Größe des Positionsvektors Pv gleich oder größer als der vorbestimmte Wert ist, angenommen, dass das Moment M13 der Kraft oder ein Moment der Kraft, der durch Addieren des Moments M13 der Kraft und des Moments M21 der Kraft erlangt wird, die Betätigungskraft ist. Ferner kann ein Einfluss jedes des Moments M13 der Kraft und des Moments M21 der Kraft durch Multiplizieren jedes Moments der Kraft mit einem Koeffizienten, um die Größe davon zu ändern, angepasst werden und können durch die Anpassung des Einflusses erlangte Werte addiert werden. In diesem Fall kann der Koeffizient auf der Grundlage der Größe des Positionsvektors Pv, der Größe der Kraft Fp und Ähnlichem eingestellt werden.
  • Außerdem kann ein Moment der Kraft auf der Grundlage des Vorgangs des Einstellens von Expansion/Kontraktion des Positionsvektors, wo die Kraft Fp in der Ebene C aufgebracht wird, der nach der Berechnung des Moments von Kraft M12 ausgeführt wird, und der Drehvorgänge in die Richtung der Kraft F der Translationskomponente der Kraft Fs und die vorbestimmte Richtung, die nach der Berechnung des Moments von Kraft M12 ausgeführt werden, berechnet werden.
  • Ein praktisches Beispiel des Berechnungsverfahrens wird jetzt mit Bezugnahme auf 16 beschrieben.
  • 16 ist ein Diagramm zum Darstellen eines Verfahrens zum Berechnen einer Betätigungskraft bezüglich der Betätigungsachse 31 auf der Grundlage der von der Kraftmesseinheit 21 gemessenen Kraft Fs, wie in 10, 13, 14 und 15, und Ähnlichem.
  • Ähnlich wie in der vorstehenden Beschreibung ist der Punkt P1 der Ursprung, der die Position der Betätigungsachse 31 in dem Bezugskoordinatensystem darstellt. Es wird angenommen, dass die Ebene C eine X-Y-Ebene ist, die eine von der X-Achse Ax und der Y-Achse Ay in einem an der Betätigungsachse 31 eingestellten Koordinatensystem gebildete Ebene ist, so dass der Ursprung an dem Punkt P1 positioniert ist, die Z-Achse Az mit der Drehmittellinie der Betätigungsachse 31 übereinstimmt und die von der X-Achse Ax und der Y-Achse Ay gebildete Ebene eine zur Drehmittellinie der Betätigungsachse 31 orthogonale Ebene ist. Es wird angenommen, dass der Punkt P2 ein Punkt ist, wo ein Kraftmesspunkt als Ursprung eines Kraftmesskoordinatensystems beim Messen einer auf die Spitze 58 des Roboters 50 aufgebrachten Kraft in der Ebene C projiziert wird. Es wird angenommen, dass der Positionsvektor Pv ein Positionsvektor von dem Punkt P1 zum Punkt p2 in der Ebene C ist. Es wird angenommen, dass die Kraft Fp eine Translationskraft ist, die als eine um die Drehmittellinie der Betätigungsachse 31 in der Ebene C aufgebrachte Kraft, wie vorstehend beschrieben, auf der Grundlage der Kraft F der Translationskomponente der Kraft Fs erlangt wird. Es wird angenommen, dass das Bezugszeichen Lw eine in der Ebene C, die Punkte P1 und P2 umfasst, vorhandene Gerade ist.
  • In diesem Fall wird auf der Grundlage des Positionsvektors Pv, wo die Kraft Fp, die die Translationskraft umfasst, aufgebracht wird, ein Positionsvektor Pn durch eine Expansions-/Kontraktionsanpassung der Größe des Positionsvektors Pv an einen vorbestimmten Werts Cpn berechnet. Es wird angenommen, dass eine durch paralleles Bewegen der Kraft Fp, so dass ein Punkt, wo die Kraft Fp, die die Translationskraft umfasst, aufgebracht wird, in die Position P4 als Endpunkt des Positionsvektor Pn bewegt wird, erlangte Kraft, eine Kraft Fnp ist.
  • Auf der Grundlage der Richtung der durch paralleles Bewegen der Kraft Fp in der Ebene C erlangten Kraft Fnp, wird ein von der Kraft Fnp und der Geraden Lw gebildeter Winkel berechnet. Der berechnete Winkel wird mit dem durch einen vorbestimmten Winkel gegebenen vorbestimmten Winkelbereich Rp verglichen. Wenn bestimmt wird, dass die Richtung der Kraft Fp innerhalb des vorbestimmten Winkelbereichs Rp ist, wird die Kraft Fn, die durch Drehen der Richtung der Kraft Fp in eine vorbestimmte Richtung erlangt wird, berechnet.
  • Ein Moment der Kraft wird von einer Berechnung des äußeren Produkts des Positionsvektors Pn und der somit erlangten Kraft Fn berechnet und es wird angenommen, dass das berechnete Moment der Kraft M14 die Betätigungskraft ist. Jedoch wird, wenn die Größe des Positionsvektors Pv kleiner als ein vorbestimmter Wert ist, angenommen, dass das Moment M21 der Kraft die Betätigungskraft ist, wie in der vorstehenden Beschreibung.
  • Wie vorstehend beschrieben, wird die Richtung der Kraft Fp, die um die Drehmittellinie der Betätigungsachse 31 aufgebracht wird, auf eine gemäß der Richtung bestimmte repräsentative Richtung eingestellt. Außerdem wird die Größe des Positionsvektors, wo die Kraft aufgebracht wird, auf eine vorbestimmte Größe eingestellt. Dies kann Schwankungen in dem Moment der Kraft aufgrund von Schwankungen in der Position des Punkts P2 und Schwankungen in der Richtung der Kraft Fp beim Erlangen eines Moments der Kraft reduzieren. Auf diese Art können kleine Schwankungen, radikale Änderungen und Ähnliches in der Betätigungskraft verhindert werden. Dementsprechend kann der Roboter 50 stabil bewegt werden, was die Verbesserung der Bedienbarkeit ermöglicht.
  • Außerdem kann beim Erlangen der Bewegungsgeschwindigkeit der Betätigungsachse auf der Grundlage von Betätigungskraft und Kraftsteuerungsverstärkung sogar mit Aufbringung einer Kraft mit der gleichen Größe verhindert werden, dass die Bewegungsgeschwindigkeit der Betätigungsachse sich abhängig von der Richtung der Kraft Fp unabsichtlich ändert.
  • Außerdem sind die Änderung der Richtung der Kraft Fp, ein anderes praktisches Beispiel für ein Verfahren zum Einstellen der Größe des Positionsvektors, wo die Kraft Fp auf einen vorbestimmten Wert aufgebracht wird, ein Verfahren zum Berücksichtigen des Moments M21 der Kraft und Ähnliches gleich wie in der vorstehenden Beschreibung. Die Verwendung dieser Verfahren ermöglicht die Verbesserung der Bedienbarkeit zum Bewegen des Roboters 50 durch Aufbringen einer Kraft und ermöglicht eine sicherere Bewegung des Roboters 50.
  • Ein anderes praktisches Beispiel für das Betätigungskraftberechnungsverfahren wird nachstehend beschrieben.
  • Auf der Grundlage der Kraft F der Translationskomponente der von der Kraftmesseinheit 21 gemessenen Kraft Fs wird die Kraft Fp erlangt, die eine Translationskraft umfasst, die um die Drehmittellinie der Betätigungsachse 31 aufgebracht wird, und auf der Grundlage einer Richtung der Kraft Fp, die die Translationskraft umfasst, wird die Richtung der Betätigungskraft erlangt. Alternativ kann die Größe der Betätigungskraft auf der Grundlage der Größe der Kraft F der Translationskomponente der von der Kraftmesseinheit 21 gemessenen Kraft Fs oder der Größe der um die Drehmittellinie der Betätigungsachse 31 aufgebrachten Kraft Fp erlangt werden.
  • Das vorstehend beschriebene praktische Beispiel wird ferner mit Bezugnahme auf 17 beschrieben.
  • Ähnlich wie bei dem vorstehend beschrieben praktischen Beispiel wird angenommen, dass der Punkt P1 der Ursprung ist, der die Position der Betätigungsachse 31 in dem Bezugskoordinatensystem darstellt. Es wird angenommen, dass die Ebene C eine X-Y-Ebene ist, die eine von der X-Achse Ax und der Y-Achse Ay in dem an der Betätigungsachse 31 eingestellten Koordinatensystem gebildete Ebene ist, so dass der Ursprung an dem Punkt P1 positioniert ist, die Z-Achse Az mit der Drehmittellinie der Betätigungsachse 31 übereinstimmt und die von der X-Achse Ax und der Y-Achse Ay gebildete Ebene eine zur Drehmittellinie der Betätigungsachse 31 orthogonale Ebene ist. Es wird angenommen, dass der Punkt P2 ein Punkt ist, wo ein Kraftmesspunkt als Ursprung eines Kraftmesskoordinatensystems beim Messen einer auf die Spitze 58 des Roboters 50 aufgebrachten Kraft in der Ebene C projiziert wird. Es wird angenommen, dass der Positionsvektor Pv ein Positionsvektor von dem Punkt P1 zum Punkt P2 in der Ebene C ist. Es wird angenommen, dass die Kraft Fp eine Translationskraft ist, die als eine um die Drehmittellinie der Betätigungsachse 31 in der Ebene C aufgebrachte Kraft, wie vorstehend beschrieben, auf der Grundlage der Kraft F der Translationskomponente der Kraft Fs erlangt wird. Es wird angenommen, dass Bezugszeichen Lw eine in der Ebene C, die Punkte P1 und P2 umfasst, vorhandene Gerade ist.
  • Wenn die Größe des Positionsvektors Pv kleiner als ein vorbestimmter Wert ist, wird angenommen, dass die Betätigungskraft nicht aufgebracht wird. Dann wird, wenn die Größe des Positionsvektors Pv gleich oder größer als der vorbestimmte Wert ist, die Verarbeitung folgendermaßen ausgeführt.
  • Zuerst wird auf der Grundlage der Kraft Fp eine virtuelle Kraft, von der angenommen wird, dass sie virtuell auf die Betätigungsachse 31 aufgebracht wird, folgendermaßen erlangt. Zum Beispiel wird durch Erlangen eines inneren Produktes eines Vektors der Kraft Fp und des Positionsvektors Pv eine Richtung der virtuellen Kraft erlangt, um ein Vorzeichen der virtuellen Kraft zu bestimmen, davon abhängig, ob die Richtung der Kraft Fp eine zur Geraden Lw orthogonale positive Richtung (eine +Rq Richtung) oder eine zur Geraden Lw orthogonal negative Richtung (eine -Rq Richtung) ist. In dem in 17 dargestellten Fall wird erlangt, dass die Richtung der Kraft Fp die zur Geraden Lw orthogonale positive Richtung (+Rq Richtung) ist. Dementsprechend wird auf der Grundlage der erlangten Richtung angenommen, dass die Richtung der virtuellen Kraft die positive Richtung ist, und wird angenommen, dass das Vorzeichen der virtuellen Kraft positiv ist.
  • Ferner wird auf der Grundlage der Größe der Kraft Fp oder der Größe der Kraft F der Translationskomponente der Kraft Fs angenommen, dass sie die Größe der virtuellen Kraft ist. Alternativ kann angenommen werden, dass eine Größe einer zum Positionsvektor Pv orthogonalen Komponente der Kraft Fp die Größe der virtuellen Kraft ist. Es wird angenommen, dass eine virtuelle Kraft Fk, die auf diese Art erlangt wird, die Betätigungskraft ist.
  • Ferner kann das Moment M21 der Kraft, das auf der Grundlage der Kraft M der Momentkomponente der von der Kraftmesseinheit gemessenen 21 Kraft Fs erlangt wird, zur Verwendung berechnet werden. Wenn die Größe des Positionsvektors Pv kleiner als der vorbestimmte Wert ist, wird angenommen, dass das Moment M21 der Kraft die Betätigungskraft ist.
  • Außerdem wird angenommen, dass, wenn die Größe des Positionsvektors Pv gleich oder größer als der vorbestimmte Wert ist, ein Wert, der durch Multiplizieren der virtuellen Kraft Fk mit einem vorbestimmten Wert oder eines Moments der Kraft erlangt wird, der wird durch Addieren des durch Multiplizieren der virtuellen Kraft Fk mit dem vorbestimmten Wert erlangten Werts und dem Moment M21 der Kraft erlangt wird, die Betätigungskraft ist. Ferner kann jeder des Werts, der durch Multiplizieren der virtuellen Kraft Fk mit dem vorbestimmten Wert und dem Moment M21 der Kraft erlangt wird, mit einem Koeffizienten multipliziert werden, um die Größen davon zu ändern, um einen Einfluss von jedem davon anzupassen. Dann können durch die Anpassung erlangte Werte addiert werden. In diesem Fall kann der Koeffizient auf der Grundlage der Größe des Positionsvektors Pv, der Größe der Kraft Fp und Ähnlichem eingestellt werden.
  • Wie in der vorstehenden Beschreibung wird, wenn es wünschenswert ist, den Einfluss der Kraft M einer Momentkomponente der von der Kraftmesseinheit 21 gemessenen Kraft Fs zu entfernen, oder es wünschenswert ist, die Betätigungsachse nur durch die Translationskraft der Kraft Fs zu bewegen, vorzugsweise angenommen, dass eine Kraft, die auf der virtuellen Kraft Fk basiert, die Betätigungskraft ist, ohne das Moment M21 der Kraft zu berücksichtigen.
  • Die Betätigungsbefehlseinheit 24 bewegt die Betätigungsachse auf der Grundlage der wie vorstehend beschrieben erlangten Betätigungskraft und der gemäß der Richtung der von der Betätigungsachseneinstelleinheit 25 eingestellten Kraft bestimmten Bewegungsrichtung. Zu dieser Zeit bestimmt die Betätigungsbefehlseinheit 24 eine Sollbewegungsrichtung der Betätigungsachse (eine Drehrichtung, wenn die Betätigungsachse eine Drehachse ist) auf der Grundlage einer Bewegungsrichtung der gemäß dem Vorzeichen der Betätigungskraft bestimmten Betätigungskraft und der Richtung der von der Betätigungsachseneinstelleinheit 25 eingestellten Kraft, die hier gemäß dem Zeichen der Betätigungskraft bestimmt wird, und berechnet eine Sollbewegungsgeschwindigkeit der Betätigungsachse auf der Grundlage der Größe der Betätigu ngskraft.
  • In diesem Fall ist es vorzuziehen, die Sollbewegungsgeschwindigkeit der Betätigungsachse durch Ausführen einer Kraftsteuerung, die durch Multiplizieren der Größe der Betätigungskraft mit einer Kraftsteuerungsverstärkung erlangt wird, zu berechnen, um eine Bewegungsansprechempfindlichkeit auf die Kraft zu bestimmen. Außerdem kann der Kraftsteuerungsverstärkung gemäß einer kürzesten Entfernung von der Drehmittellinie der Betätigungsachse zu der Spitze 58 des Roboters 50 geändert werden.
  • Zu dieser Zeit wird die Kraftsteuerungsverstärkung auf der Grundlage der kürzesten Entfernung von der Drehmittellinie der Betätigungsachse zur Spitze 58 des Roboters 50 in jedem vorbestimmten Bereich in Stufen, gemäß einer vorbestimmten Funktion in Stufen oder gemäß der vorbestimmten Funktion kontinuierlich geändert. Beim Ändern der Kraftsteuerungsverstärkung in Stufen ist es vorzuziehen, die Bewegungsgeschwindigkeit gleichmäßig zu ändern, so dass sich die Bewegungsgeschwindigkeit des Roboters 50 nicht plötzlich und wesentlich ändert.
  • Auf diese Weise kann die Ansprechempfindlichkeit auf die Betätigungskraft abhängig von der Position der Spitze 58 des Roboters 50 geändert werden, wodurch die Bewegungsgeschwindigkeit des Roboters 50 in jedem Bereich in dem Raum eingestellt werden kann.
  • Jetzt wird die Bewegung der Betätigungsachse mit einer gleichen Winkelgeschwindigkeit bezüglich einer gleichen Betätigungskraft in Situationen betrachtet, wo die kürzeste Entfernung von der Drehmittellinie der Betätigungsachse zur Spitze 58 des Roboters 50 groß ist und wo sie klein ist. Wenn die kürzeste Entfernung groß ist, wird die Translationsgeschwindigkeit der Spitze 58 des Roboters 50 größer, als wenn die kürzeste Entfernung klein ist.
  • Dann ist es, wenn die Position der Spitze 58 des Roboters 50 bezüglich der Betätigungsachse distal ist, sicherer und leichter im Betrieb, die Winkelgeschwindigkeit der Betätigungsachse bezüglich der Betätigungskraft kleiner zu machen, als wenn sich die Position der Spitze 58 davon in der Nähe der Betätigungsachse befindet. Dementsprechend kann, wenn die kürzeste Entfernung von der Drehmittellinie der Betätigungsachse zur Spitze 58 des Roboters 50 größer wird, die Kraftsteuerungsverstärkung verkleinert werden.
  • Auf diese Weise kann, selbst wenn die Größe der Betätigungskraft die gleiche ist, die Geschwindigkeit der Spitze 58 des Roboters 50 verringert werden, wenn die Position der Spitze 58 des Roboters 50 entfernter von der Betätigungsachse wird. Infolgedessen kann die Sicherheit des Roboters 50 erhöht werden und die Bedienbarkeit verbessert werden.
  • Außerdem wird beim Ändern der Sollbewegungsgeschwindigkeit der Betätigungsachse gemäß der Größe der Betätigungskraft, selbst wenn die Größe der Betätigungskraft die gleiche ist, eine Tangentialgeschwindigkeit der Spitze 58 des Roboters 50 größer, wenn die Spitze 58 des Roboters 50 entfernter von der Betätigungsachse wird.
  • Dann erlangt, wenn die Betätigungsbefehlseinheit 24 die Betätigungsachse auf der Grundlage der Betätigungskraft, die wie vorstehend beschrieben erlangt wird, und der gemäß der Richtung der von der Betätigungsachseneinstelleinheit 25 eingestellten Kraft bestimmten Bewegungsrichtung bewegt, die Betätigungsbefehlseinheit 24 auf der Grundlage der Betätigungskraft eine Sollbewegungsrichtung und eine Solltangentialgeschwindigkeit der Spitze 58 des Roboters 50 um die Drehmittellinie der Betätigungsachse. Dann kann die Betätigungsbefehlseinheit 24 eine Sollbewegungsrichtung und eine Sollbewegungsgeschwindigkeit der Betätigungsachse auf der Grundlage der Sollbewegungsrichtung und der Solltangentialgeschwindigkeit der Spitze 58 des Roboters 50 erlangen, um die Betätigungsachse zu bewegen.
  • Auf diese Weise kann, wenn die Größe der Betätigungskraft die gleiche ist, die Tangentialgeschwindigkeit der Spitze 58 des Roboters 50 ungeachtet der Position der Spitze 58 davon gleich gemacht werden. In diesem Fall wird, selbst wenn die Größe der Betätigungskraft die gleiche ist, die Drehgeschwindigkeit der Betätigungsachse kleiner, wenn die Spitze 58 des Roboters 50 entfernter von der Betätigungsachse wird.
  • Außerdem kann, um solch eine Wirkung zu erzielen, beim Berechnen der Sollbewegungsgeschwindigkeit der Betätigungsachse auf der Grundlage der Größe der Betätigungskraft die Kraftsteuerungsverstärkung verkleinert werden, wenn die kürzeste Entfernung von der Drehmittellinie der Betätigungsachse zur Spitze 58 des Roboters 50 größer wird, wie vorstehend beschrieben. Außerdem kann zum Erzielen der vorstehend beschriebenen Wirkung eine Reduktionsberechnung durch Verwendung der kürzesten Entfernung von der Drehmittellinie der Betätigungsachse zur Spitze 58 des Roboters 50 ausgeführt werden, so dass die erlangte Betätigungskraft klein sein kann.
  • Außerdem kann, wenn die Sollbewegungsrichtung und die Sollbewegungsgeschwindigkeit der Betätigungsachse nach dem Erlangen der Bewegungsrichtung und der Tangentialgeschwindigkeit der Spitze 58 des Roboters 50 um die Drehmittellinie der Betätigungsachse auf der Grundlage der Betätigungskraft erlangt werden, die Solltangentialgeschwindigkeit der Spitze 58 des Roboters 50 durch eine durch Multiplizieren der Größe der Betätigungskraft mit einer Kraftsteuerungsverstärkung erlangte Kraftsteuerung berechnet werden, um eine Bewegungsansprechempfindlichkeit auf Kraft zu bestimmen. Selbst in diesem Fall kann der Wert der Kraftsteuerungsverstärkung gemäß der kürzesten Entfernung von der Drehmittellinie der Betätigungsachse zur Spitze 58 des Roboters 50 geändert werden.
  • In solch einem Fall wird die Kraftsteuerungsverstärkung auf der Grundlage der kürzesten Entfernung von der Drehmittellinie der Betätigungsachse zur Spitze 58 des Roboters 50 in jedem vorbestimmten Bereich in Stufen gemäß einer vorbestimmten Funktion in Stufen oder gemäß der vorbestimmten Funktion kontinuierlich geändert. Beim Ändern der Kraftsteuerungsverstärkung in Stufen ist es vorzuziehen, die Bewegungsgeschwindigkeit gleichmäßig zu ändern, so dass sich die Bewegungsgeschwindigkeit des Roboters 50 nicht plötzlich und wesentlich ändert.
  • Außerdem kann in dem vorstehend beschriebenen Fall die Kraftsteuerungsverstärkung verkleinert werden, wenn die kürzeste Entfernung von der Drehmittellinie der Betätigungsachse zur Spitze 58 des Roboters 50 größer wird. Auf diese Weise kann, wenn die Position der Spitze 58 des Roboters 50 entfernter von der Drehmittellinie der Betätigungsachse wird, die Tangentialgeschwindigkeit der Spitze 58 des Roboters 50 um die Drehmittellinie der Betätigungsachse verkleinert werden, wodurch der Roboter 50 sicherer betätigt werden kann.
  • Somit gibt die Betätigungsbefehlseinheit 24 einen Befehl zum Bewegen einer als die Betätigungsachse des Roboters 50 eingestellten erwünschten Achse auf der Grundlage der Einstellung der Betätigungsachseneinstelleinheit 25 und von der ersten Betätigungskrafterfassungseinheit 22 und/oder der zweiten Betätigungskrafterfassungseinheit 23 berechneten Betätigungskraft(kräften) aus.
  • In der Robotersteuervorrichtung 10a, die die Robotersteuervorrichtung 10 gemäß der ersten Ausführungsform der vorliegenden Erfindung umsetzt, wird, wenn der Roboter 50 durch Aufbringen einer Kraft auf die Spitze 58 des Roboters 50 bewegt wird, die Position jeder Achse des Roboters 50 in die Nähe zu einer singulären Konfiguration bewegt, wo die Position und/oder die Haltung der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem bewegt werden. Außerdem wird die Einheit 27 zur Bestimmung der Nähe zu einer singulären Konfiguration verwendet, um zu bestimmen, ob in jedem Steuerzyklus eine Steuerung der Position und/oder der Haltung der Spitze 58 des Roboters 50 ausgeführt werden soll, oder ob in jedem Steuerzyklus eine Steuerung der Position jeder erwünschten Achse des Roboters 50 ausgeführt werden soll, um den Steuermodus zu wechseln. Infolgedessen schafft die Erfindung folgende vorteilhafte Wirkungen.
  • Wenn der Roboter 50 sich in der Nähe einer singulären Konfiguration befindet, existiert der folgende Zustand: ein Zustand, in dem der Roboter 50 nicht durch eine übliche Operation in dem orthogonalen Koordinatensystem bewegt werden kann, ein Zustand, in dem die Steuerungsleistung des Roboters 50 in dem orthogonalen Koordinatensystem sich verschlechtert, oder ein Zustand, in dem der Roboter 50 nicht mehr gesteuert werden kann. Die vorliegende Erfindung ermöglicht die Detektion solch eines Zustands und das Wechseln der Operation des Steuerns der Position jeder Achse gemäß der Betätigungskraft, so dass der Roboter 50 sich stabil durch die Nähe zu der singulären Konfiguration bewegen kann.
  • Dann ermöglicht gemäß einer auf die Spitze 58 des Roboters 50 aufgebrachten Kraft die Erfindung die Bewegung jeder Achse in eine Position, in die die Achse nicht durch den Vorgang des Bewegens der Position und/oder der Haltung der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem bewegt werden kann.
  • Außerdem ermöglicht die Erfindung einen Bewegungsvorgang für vorbestimmte oder jede erwünschte Achse in der Nähe einer singulären Konfiguration sowie auch eine weitere Vereinfachung des Bewegungsvorgangs für jede Achse durch Auswählen mindestens einer geeigneten Achse als eine Betätigungsachse.
  • Außerdem ist die Nachbarschaft einer singulären Konfiguration auch eine Stelle, wo eine Konfiguration, die die Position jeder Achse des Roboters 50 bestimmt, sich ändert. Dementsprechend ermöglicht das Bewegen jeder Achse in der Nähe zu der singulären Konfiguration, dass der Roboter 50 sich durch eine Position bewegt, in die der Roboter 50 nicht durch Bewegen der Position und/oder der Haltung der Spitze 58 davon in dem orthogonalen Koordinatensystem bewegt werden kann, und in eine andere Konfiguration bewegt. Von der hier erwähnten „Konfiguration“ des Roboters wird angenommen wird, dass sie eine Konfiguration ist, die einen Zustand jeder Achse bezüglich der Art der Einstellung der Position jeder Achse bestimmt, die nicht eindeutig bestimmt wird, wenn die Spitze des Roboterarms in eine gewisse Position und eine gewisse Haltung bewegt wird. Dann wird beim Bewegen der Position und/oder der Haltung der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem durch Aufbringen einer Kraft auf die Spitze 58 davon der Roboter 50 einmal in die Nachbarschaft der singulären Konfiguration bewegt, und wird jede Achse bewegt was die Ausführung eines Bewegungsvorgangs in dem orthogonalen Koordinatensystem in eine andere Konfiguration ermöglicht.
  • Außerdem kann in der Nähe einer oder vor jeglicher singulären Konfiguration selbst eine geringfügige Bewegung der Position in dem orthogonalen Koordinatensystem bewirken, dass die Drehachse unabsichtlich wesentlich gedreht wird. Zu dieser Zeit kann jede unabsichtlich bewegte Achse durch Wechseln zu dem Bewegungsvorgang jeder Achse in der Nähe zu der singulären Konfiguration zurück in eine erwünschte Anfangsposition bewegt werden.
  • Der gleiche Vorgang des Aufbringens einer Kraft auf die Spitze 58 des Roboters 50 wechselt zwischen dem Bewegungsvorgang in dem orthogonalen Koordinatensystem und dem Bewegungsvorgang der Bewegung jeder Achse. Dies erleichtert die Bewegung der Haltung des Roboters 50 in eine beliebige Haltung.
  • Außerdem erleichtert das Einstellen einer Achse, die als Faktor für die Nähe zu einer singulären Konfiguration dient, oder einer Achse, die dazu veranlasst wird, in der Nähe zu der singulären Konfiguration zu verlaufen, als die Betätigungsachse durch die Betätigungsachseneinstelleinheit 25 den Wechsel von dem Steuermodus zum Ausführen der Steuerung jeder Achse in den Steuermodus zum Ausführen der Steuerung der Position und/oder der Haltung der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem.
  • Die vorliegende Erfindung verwendet den Zustand, sich in der Nähe einer singulären Konfiguration zu befinden, um den Steuermodus zu wechseln. Dementsprechend können der Zustand jeder Achse des Roboters 50 und eine Zeitsteuerung zum Wechseln zwischen dem Steuermodus zum Ausführen der Steuerung in dem orthogonalen Koordinatensystem und dem Steuermodus zum Bewegen der Position jeder Achse leicht erkannt werden, was den Vorgang des Wechselns zwischen den Steuermodi erleichtert.
  • 18 ist ein Diagramm, das funktionell eine Struktur einer Robotersteuervorrichtung 10b gemäß einer zweiten Ausführungsform der vorliegenden Erfindung darstellt. Wie in der Zeichnung dargestellt, umfasst die Robotersteuervorrichtung 10b eine Kraftmesseinheit 21, eine erste Kraftberechnungseinheit 22, eine zweite Kraftberechnungseinheit 23, eine Betätigungsbefehlseinheit 24, eine Betätigungsachseneinstelleinheit 25, eine Speichereinheit 26, eine Achsenpositionszustandsbestimmungseinheit 28 und eine Anzeigeausgabeeinheit 71.
  • Die Robotersteuervorrichtung 10b ist dafür ausgebildet, die Achsenpositionszustandsbestimmungseinheit 28 als eine Alternative zu der Einheit 27 zur Bestimmung der Nähe zu einer singulären Konfiguration der Robotersteuervorrichtung 10a zu verwenden, um zwischen dem ersten Steuermodus zum Steuern der Position und/oder der Haltung der Spitze 58 des Roboters 50 und dem zweiten Steuermodus zum Steuern der Position jeder Achse des Roboters 50 zu wechseln.
  • Außerdem sind die Betätigungsachseneinstelleinheit 25 und die Betätigungsbefehlseinheit 24 dazu ausgebildet, die Achsenpositionszustandsbestimmungseinheit 28 statt der Einheit 27 zur Bestimmung der Nähe zu einer singulären Konfiguration zu verwenden. Eine Beschreibung der gleichen Strukturelemente und der Funktionen der Robotersteuervorrichtung 10b wie die in der Ausführungsform bezüglich der Robotersteuervorrichtung 10a mit Bezug auf 2 beschriebenen, wie auch der Robotersteuervorrichtung 10 gemäß der ersten Ausführungsform der Erfindung wird weggelassen.
  • Die Achsenpositionszustandsbestimmungseinheit 28 bestimmt, ob Positionen einer oder mehrerer vorbestimmten Achsen der Mehrzahl von Achsen des Roboters 50 sich in einer Position eines Zustands befinden, der eine vorbestimmte Positionsbeziehungsbedingung erfüllt. Zum Beispiel bestimmt bezüglich der einen oder mehreren Achsen des Roboters 50 die Achsenpositionszustandsbestimmungseinheit 28, ob die Position jeder Achse eine vorbestimmte Positionsbeziehungsbedingung erfüllt, d.h. ob die Position jeder Achse innerhalb eines Bereichs eines Schwellenwerts von einer für die Achse eingestellten vorbestimmten Position ist. Alternativ bestimmt die Achsenpositionszustandsbestimmungseinheit 28 abhängig von einer Positionsbeziehung zwischen der Mehrzahl von Achsen, ob die Position des Ursprungs einer gewissen Achse in dem Bezugskoordinatensystem die vorbestimmte Positionsbeziehungsbedingung erfüllt. Mit der Verwendung der somit als Einheit 27 zur Bestimmung der Nähe zu einer singulären Konfiguration gebildeten Achsenpositionszustandsbestimmungseinheit 28 kann durch Bestimmen des Zustands der Position jeder Achse bestimmt werden, ob der Roboter 50 sich in der Nähe einer singulären Konfiguration befindet.
  • Das praktische Beispiel für diesen Fall ist das gleiche wie das für die Einheit 27 zur Bestimmung der Nähe zu einer singulären Konfiguration beschriebene praktische Beispiel. Mit anderen Worten wird für jeden Zustand und jeden Typen von singulärer Konfiguration bestimmt, ob die Position jeder Achse die vorbestimmte Positionsbeziehungsbedingung erfüllt, d.h. ob die Position jeder Achse innerhalb des Bereichs eines Schwellenwerts von der für jede Achse eingestellten vorbestimmten Position ist. Alternativ wird abhängig von der Positionsbeziehung zwischen der Mehrzahl von Achsen bestimmt, ob die Position des Ursprungs einer gewissen Achse in dem Bezugskoordinatensystem die vorbestimmte Positionsbeziehungsbedingung erfüllt, wodurch bestimmt wird, ob die Position der einen oder mehreren vorbestimmten Achsen des Roboters 50 sich in dem vorbestimmten Zustand befindet.
  • Selbst wenn die Position der einen oder mehreren vorbestimmten Achsen des Roboters 50 sich nicht in dem vorbestimmten Zustand, wie in dem Zustand der Nähe zu einer singulären Konfiguration befindet, kann die Achsenpositionszustandsbestimmungseinheit 28 beim Steuern der Haltung und/oder der Haltung der Spitze 58 des Roboters 50 bestimmen, ob die Position der Spitze 58 des Roboters 50 sich in einem Zustand befindet, in den die Position davon normalerweise nicht bewegt wird oder selten bewegt wird.
  • Die Achsenpositionszustandsbestimmungseinheit 28 detektiert, dass die Positionen der vorbestimmten Achsen sich in solch einem Zustand befinden. In diesem Fall kann, wie später beschrieben, die Betätigungsbefehlseinheit 24 während der Bewegungsoperation des Roboters 50 leicht zwischen dem ersten Steuermodus zum Steuern der Position und/oder der Haltung der Spitze 58 des Roboters 50 und dem zweiten Steuermodus zum Steuern der Positionen der Achsen des Roboters 50 wechseln.
  • Wenn die Achsenpositionszustandsbestimmungseinheit 28 bestimmt, dass die Position der einen oder mehreren vorbestimmten Achsen sich in dem Zustand befindet, der die vorbestimmte Positionsbeziehungsbedingung erfüllt, stellt die Betätigungsachseneinstelleinheit 25 auf der Grundlage einer gegenwärtigen Position jeder Achse des Roboters 50 als eine oder mehrere Betätigungsachsen, die gemäß Kraft bewegt werden sollen, eine oder mehrere vorbestimmte Achsen ein, die eine Achse umfassen, die als ein Faktor dafür dient, sich in der Position des Zustands zu befinden, der die vorbestimmte Positionsbeziehungsbedingung erfüllt, oder einer Achse, die dazu veranlasst wird, durch die Position des Zustands zu verlaufen, der die vorbestimmte Positionsbeziehungsbedingung erfüllt. Außerdem stellt die Betätigungsachseneinstelleinheit 25 die Bewegungsrichtung der einen oder mehreren gemäß der Richtung der Kraft bestimmten Betätigungsachsen ein.
  • Zu dieser Zeit wird die Bewegungsrichtung der einen oder mehreren gemäß der Richtung der Kraft bestimmten Betätigungsachsen auf der Grundlage eines vorbestimmten Werts oder auf der Grundlage der Bewegungsrichtung der Betätigungsachsen und der Richtung der zu der Zeit, wenn der Roboter 50 sich in der Nähe einer singulären Konfiguration befindet, auf die Betätigungsachsen aufgebrachten Kraft eingestellt.
  • Beim Einstellen der einen oder mehreren Betätigungsachsen wird durch Auswählen einer oder mehrerer Achsen aus der Mehrzahl von Achsen bezüglich jeglicher Achse außer der Achse, die als der Faktor dafür dient, welche Position der einen oder mehreren vorbestimmten Achsen die Position des Zustands ist, der die vorbestimmte Positionsbeziehungsbedingung erfüllt, oder der Achse, die dazu veranlasst wird, durch die Position des Zustands zu verlaufen, eine vorbestimmte Achse als eine Betätigungsachse auf der Grundlage der Position jeder Achse des Roboters 50 zu dieser Zeit ausgewählt.
  • Die Betätigungsbefehlseinheit 24 gibt einen Betätigungsbefehl zum Bewegen des Roboters 50 durch Verwenden einer von der ersten Kraftberechnungseinheit 22 oder der zweiten Kraftberechnungseinheit 23 berechneten Betätigungskraft auf der Grundlage der von der Kraftmesseinheit 21 gemessenen Kraft aus, so dass der Roboter 50 gemäß der auf die Spitze 58 des Roboters 50 aufgebrachten Kraft bewegt wird.
  • Die Betätigungsbefehlseinheit 24 umfasst einen ersten Steuermodus und einen zweiten Steuermodus zum Bewegen des Roboters 50 als Modi zum Steuern des Roboters 50. Wenn die Achsenpositionszustandsbestimmungseinheit 28 bestimmt, dass die Position der einen oder mehreren vorbestimmten Achsen keine Position des Zustands ist, der die vorbestimmte Positionsbeziehungsbedingung erfüllt, stellt die Betätigungsbefehlseinheit 24 den Steuermodus zum Bewegen des Roboters 50 auf den ersten Steuermodus ein. Währenddessen stellt, wenn die Achsenpositionszustandsbestimmungseinheit 28 bestimmt, dass die Position der einen oder mehreren vorbestimmten Achsen die Position des Zustands ist, der die vorbestimmte Positionsbeziehungsbedingung erfüllt, die Betätigungsbefehlseinheit 24 den Steuermodus zum Bewegen des Roboters 50 auf den zweiten Steuermodus ein. Dann bewirkt die Betätigungsbefehlseinheit 24, dass der Roboter 50 auf der Grundlage des eingestellten Steuermodus bewegt wird.
  • Mit Bezugnahme auf 19 wird als Nächstes ein Beispiel für den Prozess der von der Robotersteuervorrichtung 10b ausgeführten Verarbeitung gemäß der zweiten Ausführungsform der Erfindung beschrieben, wenn die Bedienungsperson 60 den Roboter 50 durch Aufbringen einer Kraft auf die Spitze 58 des Roboters 50 bewegt. 19 ist ein Ablaufdiagramm, das ein Beispiel des Verarbeitungsprozesses der Robotersteuervorrichtung 10b zeigt.
  • Nachstehend wird die Ausführung der Verarbeitung zum Wechseln zwischen den Steuermodi durch die Robotersteuervorrichtung 10b, wenn der Roboter 50 durch Aufbringen einer Kraft auf die Spitze 58 des Roboters 50 bewegt wird, mit Bezugnahme auf das Ablaufdiagramm der 19 und eine relevante Zeichnung und die Ausführung der Verarbeitung durch die Robotersteuervorrichtung 10b, wenn der Steuermodus der zweite Steuermodus ist, mit Bezugnahme auf ein Ablaufdiagramm aus 8 und eine relevante Zeichnung beschrieben.
  • Es ist anzumerken, dass die Serie der Verarbeitung, die hier beschrieben wird, lediglich ein Beispiel ist und die vorliegende Erfindung nicht auf das bestimmte Beispiel beschränkt ist. 19 ist ein Diagramm, das ein Beispiel für die Verarbeitung zum Einstellen der Steuermodi darstellt.
  • Wenn die Verarbeitung der Bewegung des Roboters 50 beginnt, bestimmt die Achsenpositionszustandsbestimmungseinheit 28, ob die Position der einen oder mehreren Achsen die Position des Zustands ist, der die vorbestimmte Positionsbeziehungsbedingung erfüllt (Schritt SA1). Dann wird die Achsenpositionszustandsbestimmungseinheit 28 verwendet, um zu bestimmen, ob in jedem Steuerzyklus die Steuerung der Position und/oder der Haltung der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem ausgeführt werden soll oder in jedem Steuerzyklus die Steuerung der Position jeder erwünschten Achse ausgeführt werden soll.
  • Wenn die Achsenpositionszustandsbestimmungseinheit 28 bestimmt, dass die Position der einen oder mehreren vorbestimmten Achsen nicht die Position des Zustands ist, der die vorbestimmte Positionsbeziehungsbedingung erfüllt, wird der Steuermodus auf den ersten Steuermodus eingestellt (Schritt SA2).
  • Wenn die Achsenpositionszustandsbestimmungseinheit 28 bestimmt, dass die Position der einen oder mehreren vorbestimmten Achsen die Position des Zustands ist, der die vorbestimmte Positionsbeziehungsbedingung erfüllt, wird der Steuermodus auf den zweiten Steuermodus eingestellt (Schritt SA3).
  • Als Nächstes wird gemäß dem Steuermodus der Betätigungsbefehl zum Bewegen des Roboters 50 geändert. Dieses Verfahren ist das gleiche wie die mit Bezugnahme auf 7 beschriebene Verarbeitung bezüglich der Verarbeitung, die ausgeführt wird, wenn der Steuermodus der erste Steuermodus ist, und wie die mit Bezugnahme auf 8 beschriebene Verarbeitung bezüglich der Verarbeitung, die ausgeführt wird, wenn der Steuermodus der zweite Modus ist, wie vorstehend beschrieben.
  • Auf diese Weise ermöglicht die Verwendung der Achsenpositionszustandsbestimmungseinheit 28 das Wechseln zwischen dem ersten Steuermodus zum Bewegen der Position und/oder der Haltung der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem und dem zweiten Steuermodus zum Bewegen der Position jeder Achse des Roboters 50 auf der Grundlage der Achsen des Roboters 50 und ermöglicht auch die Kennzeichnung einer Achse beim Betätigen jeder Achse. Auf diese Art kann, während der Roboter 50 durch Aufbringen einer Kraft auf die Spitze 58 davon bewegt wird, der Steuermodus gewechselt werden, ohne eine mittels einer getrennt bereitgestellten Eingabevorrichtung eingegebenen Aufgabe auszuführen.
  • Außerdem kann während des Ausführens des Vorgangs, die Kraft auf die Spitze 58 des Roboters 50 aufzubringen, die Position und/oder die Haltung der Spitze 58 davon in dem orthogonalen Koordinatensystem bewegt werden oder kann jede erwünschte Achse bewegt werden. Zum Beispiel kann, wenn die Position und/oder die Haltung der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem bewegt wird, indem eine Kraft auf die Spitze 58 davon aufgebracht wird, jede erwünschte Achse während des Aufbringens der Kraft auf die Spitze 58 davon bewegt werden, um zu ermöglichen, dass die Spitze 58 des Roboters 50 durch eine Position verläuft, in die die Spitze 58 davon nicht durch jede übliche Bewegung in dem orthogonalen Koordinatensystem bewegt werden kann, und dann eine Position erreicht, in die sie normalerweise nicht aus einer gewissen Position bewegt werden kann. Danach kann zum Beispiel eine Bewegung in dem orthogonalen Koordinatensystem wieder ausgeführt werden.
  • Dementsprechend ist es unnötig, dass die Bedienungsperson getrennt eine Lehrvorrichtung zum Wechseln der Einstellung bereitstellt oder einen Eingabevorgang zum Wechseln der Einstellung ausführt. Auf diese Art können die Kosten für das Robotersystem gesenkt werden und beim Bewegungsvorgang die Bewegung in eine beliebige Position und eine beliebige Haltung in dem orthogonalen Koordinatensystem und in eine beliebige Achsenposition leicht eingestellt werden und kann auch der Bewegungsvorgang gleichmäßiger, kontinuierlicher und bequemer ausgeführt werden.
  • Ferner wird ein praktisches Beispiel für die Verarbeitung für das Bewegen der Position jeder Achse beschrieben, die ausgeführt wird, wenn der Steuermodus der zweite Steuermodus ist. Im Folgenden wird ein Verfahren beschrieben, in dem, wenn die Achsenpositionszustandsbestimmungseinheit 28 bestimmt, dass die Position einer oder mehrerer vorbestimmter Achsen die Position des Zustands ist, der die vorbestimmte Positionsbeziehungsbedingung erfüllt, die Betätigungsachseneinstelleinheit 25 in Schritt S22 aus 8 eine Betätigungsachse und eine Bewegungsrichtung der Betätigungsachse einstellt, die gemäß der Richtung der Kraft auf der Grundlage einer gegenwärtigen Position jeder Achse bestimmt werden. Dann wird bezüglich des gleichen Falls wie vorstehend beschrieben außerdem ein Verfahren zum Berechnen einer Betätigungskraft zum Bewegen einer Betätigungsachse von der zweiten Kraftberechnungseinheit 23 in Schritt S23 aus 8 und ein Verfahren zum Erzeugen eines Betätigungsbefehls zum Bewegen der Betätigungsachse von der Betätigungsbefehlseinheit 24 in Schritt S24 aus 8 beschrieben.
  • Zuerst wird die Achsenpositionszustandsbestimmungseinheit 28 dazu veranlasst, zu bestimmen, ob die Position der als vorbestimmte Achse eingestellten J5 Achse 55 innerhalb eines vorbestimmten Schwellenwerts ist. Der vorbestimmte Schwellenwert ist ein Wert, der normalerweise keine Bewegung der Position und/oder der Haltung der Spitze 58 des Roboters 50 erlaubt. Zum Beispiel wird in 1 angenommen, dass der Wert eine Position eines Zustands ist, in dem die Spitze 58 und der Flansch 57 des Roboters 50 in die Nähe einer Verbindung kommen, die die J4 Achse 54 und die J5 Achse 55 verbindet, eine Position, in die die Spitze 58 und der Flansch 57 normalerweise nicht bewegt werden, oder eine Position eines Zustands, wo der Ursprung der J3 Achse 53 der Ursprung der J5 Achse 55 und der Ursprung des Flansches 57 sich auf einer Geraden oder in deren Nähe befinden (hier in dieser Position wird von der J5 Achse 55 angenommen, dass sie bei 0 Grad positioniert ist). In diesem Fall wird bestimmt, ob die J5 Achse 55 innerhalb eines Bereichs eines Schwellenwerts von 0 Grad positioniert ist. Wenn bestimmt wird, dass die J5 Achse 55 innerhalb des Schwellenwerts positioniert ist, wird angenommen, dass die Position der J5 Achse 55 in dem Zustand ist, der die vorbestimmte Positionsbeziehungsbedingung erfüllt.
  • Die Betätigungsachseneinstelleinheit 25 stellt eine oder mehrere Betätigungsachsen wie folgt ein, wenn die Position der J5 Achse 55 in dem Zustand ist, der die vorbestimmte Positionsbeziehungsbedingung erfüllt, d.h., wenn die Position davon innerhalb des Bereichs des Schwellenwerts von 0 Grad ist. Die Betätigungsachseneinstelleinheit 25 stellt eine oder mehrere Betätigungsachsen durch Auswählen einer oder mehreren Achsen aus der Mehrzahl von Achsen ein, so dass sie die J5 Achse 55 umfassen, die eine Achse ist, die als Faktor dafür dient, in dem Zustand positioniert zu sein, der die vorbestimmte Positionsbeziehungsbedingung erfüllt, oder eine Achse ist, die dazu veranlasst wird, durch die Position des Zustands zu verlaufen, der die vorbestimmte Positionsbeziehungsbedingung erfüllt.
  • Außerdem stellt bezüglich der einen oder mehreren als Betätigungsachsen eingestellten Achsen die Betätigungsachseneinstelleinheit 25 auch eine andere Achse als die Achse, die als Faktor für die Positionierung in dem Zustand, der die vorbestimmte Positionsbeziehungsbedingung erfüllt, oder der Achse, die dazu veranlasst wird, durch die Position des Zustands zu verlaufen, der die vorbestimmte Positionsbeziehungsbedingung erfüllt, ein. In diesem Beispiel stellt die Betätigungsachseneinstelleinheit 25 gemäß der Position der J4 Achse 54 auch jegliche Achse außer der J5 Achse 55 als eine Betätigungsachse ein.
  • Dies hat folgenden Grund. Beim Erlangen einer Betätigungskraft auf der Grundlage einer um die Drehmittellinie der J5 Achse 55 aufgebrachten Translationskraft wird, wenn die Richtung der auf die Spitze 58 des Roboters 50 aufgebrachten Translationskraft zu der Drehmittellinie der J5 Achse 55 parallel ist, im Wesentlichen keine Betätigungskraft aufgebracht.
  • Dementsprechend wird die J5 Achse 55 dazu veranlasst, bewegt zu werden, wenn eine Translationskraft in der Nähe einer zur Drehmittellinie der J5 Achse 55 orthogonalen Richtung aufgebracht wird. Dann wird, wenn die Richtung der Translationskraft irgendeine andere Richtung als diese, eine andere Achse zur Bewegung veranlasst.
  • Wenn sich die Position der J4 Achse 54 ändert, ändern sich ein von der Drehmittellinie der J5 Achse 55 und der Drehmittellinie der J1 Achse 51 gebildeter Winkel, ein von der Drehmittellinie der J5 Achse 55 und der Drehmittellinie der J2 Achse 52 gebildeter Winkel und ein von der Drehmittellinie der J5 Achse 55 und der Drehmittellinie der J3 Achse 53 gebildeter Winkel. Gemäß diesem Zustand bestimmt die Betätigungsachseneinstelleinheit 25, um eine als Betätigungsachse eingestellte Achse von der J1 Achse 51, der J2 Achse 52 und der J3 Achse 53 zu wechseln, eine als eine als Betätigungsachse einzustellende Achse durch Verwenden der Position der J4 Achse 54.
  • Wenn die Position der J4 Achse 54 eine Position ist, wo der von der Drehmittellinie der J5 Achse 55 und der Drehmittellinie der J1 Achse 51 gebildete Winkel innerhalb eines Bereichs des Schwellenwerts von 90 Grad ist, wird die J1 Achse 51 als eine andere Betätigungsachse als die J5 Achse 55 eingestellt.
  • Wenn die Position der J4 Achse 54 eine Position ist, wo der von der Drehmittellinie der J5 Achse 55 und der Drehmittellinie der J2 Achse 52 gebildete Winkel innerhalb des Schwellenwerts von 90 Grad ist, wird die J2 Achse 52 als eine andere Betätigungsachse als die J5 Achse 55 eingestellt. Wenn die Position der J4 Achse 54 eine Position ist, wo der von der Drehmittellinie der J5 Achse 55 und der Drehmittellinie der J3 Achse 53 gebildete Winkel innerhalb eines Bereichs des Schwellenwerts von 90 Grad ist, in eine der Richtung, die der Richtung in dem Fall der J2 Achse 52 entgegengesetzt ist, wird die J3 Achse 53 als eine andere Betätigungsachse als die J5 Achse 55 eingestellt.
  • Wenn die Position der J4 Achse 54 eine Position ist, die die vorstehend beschriebene Bedingung nicht erfüllt, wird die J4 Achse 54 als eine andere Betätigungsachse als die J5 Achse 55 eingestellt. Auf diese Weise kann die Position der J4 Achse 54 in die oben erwähnte Position bewegt werden, wo jede der J1 Achse 51, der J2 Achse 52, und die J3 Achse 53 als Betätigungsachse eingestellt wird.
  • In diesem Fall wird, wenn sich eine Position, auf die Kraft aufgebracht wird, auf der Drehmittellinie der J4 Achse 54 befindet, die J4 Achse 54 von einem Moment der Kraft als die Betätigungskraft bewegt. Wenn sich die Position, auf die die Kraft aufgebracht wird, nicht auf der Drehmittellinie der J4 Achse 54 befindet, wird die J4 Achse 54 sowohl von einer Translationskraft als auch von einem Moment der Kraft als die Betätigungskraft bewegt.
  • In dem vorstehend beschriebenen Fall kann, wenn die J4 Achse 54 in einer Position ist, in der der von der Drehmittellinie der J5 Achse 55 und der Drehmittellinie der J1 Achse 51 gebildete Winkel innerhalb eines Bereichs des Schwellenwerts von 90 Grad ist, in eine Richtung, die der Richtung in dem oben erwähnten Fall entgegengesetzt ist, eine andere Achse als eine andere Betätigungsachse als die J5 Achse 55, zum Beispiel die J4 Achse 54, als eine Betätigungsachse eingestellt werden.
  • Auf diese Weise werden, wenn die Position einer oder mehrerer vorbestimmter Achsen in dem Zustand ist, der die vorbestimmte Positionsbeziehungsbedingung erfüllt, eine Mehrzahl von Achsen als Betätigungsachsen eingestellt, die eine Achse, die als Faktor dafür dient, sich in der Position des Zustands zu befinden, der die vorbestimmte Positionsbeziehungsbedingung erfüllt, oder einer Achse, die dazu veranlasst wird, durch die Position des Zustands zu verlaufen, der die vorbestimmte Positionsbeziehungsbedingung erfüllt, umfassen. Solch ein Verfahren kann auf ein Verfahren zur Umsetzung der Robotersteuervorrichtung 10a angewendet werden.
  • Die eine oder mehreren Betätigungsachsen werden auf die vorstehend beschriebene Art ausgewählt und es wird angenommen, dass eine gemäß der Richtung der Kraft in jeder Betätigungsachse bestimmte Bewegungsrichtung die gleiche wie die Richtung der Kraft ist. In Schritt S23 wird angenommen, dass das Verfahren, mit dem die zweite Kraftberechnungseinheit 23 eine Betätigungskraft für die eine oder mehrere der von der Betätigungsachseneinstelleinheit 25 eingestellten Betätigungsachsen berechnet, das gleiche wie das Verfahren in der Robotersteuervorrichtung 10a.
  • In Schritt S24 erzeugt die Betätigungsbefehlseinheit 24 einen Betätigungsbefehl zum Bewegen der Position der einen oder mehreren von der Betätigungsachseneinstelleinheit 25 eingestellten Betätigungsachsen auf der Grundlage der von der zweiten Kraftberechnungseinheit 23 berechneten Betätigungskraft und der Bewegungsrichtung, die gemäß der Richtung der von der Betätigungsachseneinstelleinheit 25 eingestellten Kraft bestimmt wird, ähnlich wie in dem Verfahren in der Robotersteuervorrichtung 10a.
  • In einer Robotersteuervorrichtung 10 gemäß einer dritten Ausführungsform der vorliegenden Erfindung stellt die Betätigungsachseneinstelleinheit 25 ferner vorzugsweise eine Bewegungsrichtung einer oder mehrerer Betätigungsachsen, die gemäß der Richtung einer auf die eine oder mehreren Betätigungsachsen aufgebrachten Kraft, auf der Grundlage der Richtung der Kraft, die auf die Achsen, als die eine oder mehreren Betätigungsachsen aufgebracht wird und der Bewegungsrichtung der Achsen als die eine oder mehreren Betätigungsachsen bestimmt wird, unmittelbar vor dem Wechseln oder beim Wechseln von dem ersten Steuermodus zum Bewegen der Position und/oder die Haltung in dem orthogonalen Koordinatensystem in den zweiten Steuermodus zum Bewegen der Position jeder Achse ein.
  • Wenn eine Bewegung vor dem Übergang von dem ersten Steuermodus in den zweiten Steuermodus nicht berücksichtigt wird, können ein Gefühl des Unbehagens, ein Gefühl der Bedrängnis und Schwierigkeiten bei der Betätigung entstehen. Außerdem werden abhängig von dem Bewegungsvorgang der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem den Steuermodi zugehörige Zustände an einer Grenze zwischen der Position in dem zweiten Steuermodus und der Position in dem ersten Steuermodus wiederholt gewechselt, wodurch eine instabile Bewegung veranlasst wird.
  • Jetzt wird ein Fall einer gewissen Betätigungsachse betrachtet, in dem der erste Steuermodus eines Zustands, in dem die Richtung einer auf die Betätigungsachse aufgebrachten Kraft der Bewegungsrichtung des Roboters 50, entgegengesetzt ist, in den zweiten Steuermodus gewechselt wird. In diesem Fall kann beim Wechseln von dem ersten Steuermodus in den zweiten Steuermodus, außer wenn die Beziehung zwischen der Richtung der Kraft und der Bewegungsrichtung gleich dem Zustand unmittelbar vor dem Wechseln gemacht wird, der Steuermodus in den ersten Steuermodus zurückkehren, sobald der Roboter 50 in dem zweiten Steuermodus bewegt wird.
  • Um solche Umstände beim Wechseln von dem ersten Steuermodus in den zweiten Steuermodus zu vermeiden, es ist vorzuziehen, eine gemäß der Richtung der Kraft der Betätigungsachse bestimmte Bewegungsrichtung der Betätigungsachse auf der Grundlage der Bewegung, der Bewegungsrichtung der Achse als die Betätigungsachse und der Richtung der auf die Achse als die Betätigungsachse aufgebrachten Kraft zu der Zeit des oder unmittelbar vor dem Wechseln in den zweiten Steuermodus einzustellen. Auf diese Weise kann der Roboter kontinuierlich ohne ein Gefühl des Unbehagens, ein Gefühl der Bedrängnis und Schwierigkeiten bei der Betätigung bewegt werden, wenn der Roboter von dem Zustand des ersten Steuermodus in den Zustand des zweiten Steuermodus bewegt wird, um dazu veranlasst zu werden, die Grenze zwischen den Steuermodi zu passieren.
  • Bei dem Roboter mit der in 1 beschriebenen Struktur kann die oben erwähnte Situation auftreten, wenn der Ursprung der J3 Achse 53, der Ursprung der J5 Achse 55 und der Ursprung des Flansches 57 in einen Zustand gebracht werden, sich auf der Geraden und in der Nähe davon zu befinden, während die Position der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem translational bewegt wird.
  • Zu dieser Zeit wird die gemäß der Richtung der Kraft bestimmte Bewegungsrichtung der Betätigungsachse auf der Grundlage der Bewegungsrichtung der J5 Achse 55 und der Richtung der Kraft ,die auf die J5 Achse 55 aufgebracht wird, bevor deren Ursprünge in den vorstehend beschriebenen Zustand gebracht werden, oder zu der Zeit, wenn deren Ursprünge sich in der Nähe des vorstehend beschriebenen Zustands befindet, eingestellt.
  • Alternativ wird, wenn der Bewegungsvorgang der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem ausgeführt wurde, bevor der vorstehend beschriebene Zustand auftritt, die Bewegungsrichtung der Betätigungsachse auf eine der Richtung der Kraft entgegengesetzte Richtung eingestellt, wenn der Bewegungsvorgang ein Translationsvorgang ist. Umgekehrt kann, wenn der Bewegungsvorgang ein Drehvorgang ist, die Bewegungsrichtung der Betätigungsachse gleich wie die Richtung der Kraft eingestellt werden. Auf diese Weise kann die Richtung des Bewegungsvorgangs in dem orthogonalen Koordinatensystem, der vor dem Gelangen in die Nähe des vorstehend beschriebenen Zustands ausgeführt wird, gleich der Bewegungsrichtung der Betätigungsachse gemäß der Kraft eingestellt werden, wodurch die Bedienbarkeit verbessert werden kann.
  • Auf diese Art kann ein Bewegungsvorgang durch Berücksichtigen des vorbestimmten Zustands und der Bewegung vor der Bewegung in die Nachbarschaft einer singulären Konfiguration gleichmäßig ohne ein Gefühl des Unbehagens, ein Gefühl der Bedrängnis und Schwierigkeiten bei der Betätigung während des Wechsels in den vorstehend beschriebenen Zustand und Durchgang ausgeführt werden.
  • In einer Robotersteuervorrichtung 10 gemäß einer vierten Ausführungsform der vorliegenden Erfindung bewegt ferner vorzugsweise in dem zweiten Modus die Betätigungsbefehlseinheit 24 die Position des Ursprungs einer Betätigungsachse der einen oder mehreren Betätigungsachsen, die in eine Richtung bewegt wird, die der Richtung einer auf die Achse der aufgebrachten entgegengesetzt Kraft ist, in eine Richtung, die eine Komponente einer Richtung umfasst, die der Richtung, in die die Position der Spitze 58 des Roboters 50 durch die Bewegung der Betätigungsachse bewegt wird, entgegengesetzt ist, oder in eine Richtung, die eine Komponente der Richtung der auf die Betätigungsachse aufgebrachten Kraft umfasst.
  • Ein praktisches Beispiel für solch einen Bewegungsvorgang wird beschrieben. In dem Roboter 50 mit der in 1 dargestellten Struktur, wird, wenn der Ursprung der J3 Achse 53, der Ursprung der J5 Achse 55 und der Ursprung des Flansches 57 in dem vorbestimmten Zustand positioniert sind, sich auf der Geraden und in der Nähe davon in der Translationsbewegung der Position der Spitze 58 des Roboters 50 in dem orthogonalen Koordinatensystem zu befinden, der Steuermodus in den zweiten Steuermodus gewechselt und wird die J5 Achse 55, die als die Betätigungsachse eingestellt wird, in eine der Richtung der auf die Betätigungsachse aufgebrachten Kraft entgegengesetzten Richtung bewegt.
  • Zu dieser Zeit bewegt sich, wenn nur die J5 Achse 55 bewegt wird, ein mit Kraft beaufschlagter Teil der Spitze 58 des Roboters 50 in eine der Richtung, in die die Kraft aufgebracht wird, entgegengesetzte Richtung. Dies kann dazu führen, dass die Bedienungsperson sich unbequem oder unangenehm fühlt und/oder Schwierigkeiten bei der Betätigung hat. Um solch ein unangenehmes Gefühl zu reduzieren, werden zu der Zeit der Bewegung der J5 Achse 55 die J1 Achse 51, die J2 Achse 52 und die J3 Achse 53 gleichzeitig als Betätigungsachsen bewegt. Zu dieser Zeit wird durch Bewegen der J1 Achse 51, der J2 Achse 52 und der J3 Achse 53 der Ursprung der J5 Achse 55 in eine Richtung bewegt, die eine Komponente einer Richtung umfasst, die der Richtung in die die Spitze 58 des Roboters 50 durch die Bewegung der J5 Achse 55 bewegt wird, entgegengesetzt ist. Alternativ wird durch Bewegen der J1 Achse 51, der J2 Achse 52 und der J3 Achse 53 der Ursprung der J5 Achse 55 in eine Richtung bewegt, die eine Komponente der Richtung der auf die J5 Achse 55 aufgebrachten Kraft umfasst. Infolgedessen wird die Position des Ursprungs der J5 Achse 55 in die Richtung bewegt, in die die Kraft aufgebracht wird, was auf diese Art ein Bewegungsmaß der Spitze 58 des Roboters 50 in die Richtung, die der Richtung entgegengesetzt ist, in die die Kraft aufgebracht wird, reduzieren kann. Außerdem kann die Spitze 58 des Roboters 50 in eine Richtung in der Nähe der Richtung bewegt werden, in die die Kraft aufgebracht wird.
  • Jedoch wird, wenn das Bewegungsmaß der Position des Ursprungs der als die Betätigungsachse eingestellte J5 Achse 55, der in die der Richtung der Aufbringung der Kraft entgegengesetzte Richtung bewegt wird, groß ist, selbst wenn die Position jeder Achse bezüglich der J5 Achse 55 bewegt wird, ein Änderungsausmaß in einem von Verbindungen mit dem J5 Achse 55 Teil dazwischen gebildeten Winkel zusammen mit der Bewegung des Ursprungs der J5 Achse 55 kleiner. Folglich benötigt das Durchlaufen der Ursprünge der J3 Achse 53, des Ursprungs der J5 Achse 55 und des Ursprungs des Flansches 57 durch die Positionen des vorbestimmten Zustands, in dem sich die Ursprünge der Achsen auf der Geraden und in der Nähe davon befinden, Zeit. In einigen Fällen mag es den Ursprüngen davon nicht möglich sein, diese zu durchlaufen. Um solch eine Situation zu vermeiden, kann das Bewegungsmaß der Position des Ursprungs der als die Betätigungsachse eingestellten J5 Achse 55, die in die der Richtung der auf die Achse aufgebrachten Kraft entgegengesetzte Richtung bewegt wird, auf im Wesentlichen einen Wert eingestellt werden, der ein Maß der Position der Spitze 58 des Roboters 50, die durch Drehbewegung der J5 Achse 55 mit einen Wert eines vorbestimmten Koeffizienten bewegt wird, und ein Maß, das durch Multiplizieren des Maßes der Bewegung mit einem vorbestimmten Koeffizientenwert erlangt wird, umfasst. Alternativ wird das Bewegungsmaß der Position des Ursprungs der J5 Achse 55 vorzugsweise auf einen Wert eingestellt, der durch Multiplizieren des Bewegungsmaßes der Position der Spitze 58 des Roboters 50 durch die Bewegung der J5 Achse 55 mit dem vorbestimmten Koeffizienten erlangt wird.
  • Außerdem wird ein weiteres praktisches Beispiel zum Reduzieren der Gefühle des Unbehagens oder Bedrängnis und Schwierigkeiten bei der Betätigung, die durch die Bewegung einer Betätigungsachse in eine der Richtung einer aufgebrachten Kraft entgegengesetzte Richtung bewirkt werden, in dem zweiten Steuermodus beschrieben. Es wird angenommen, dass die Drehmittellinien sowohl der J2 Achse 52 als auch der J3 Achse 53 parallel und in der gleichen Richtung ausgerichtet sind. In diesem Fall kann, wenn die J2 Achse 52 als eine Betätigungsachse eingestellt wird, die in eine zur der Richtung der aufgebrachten Kraft entgegengesetzte Richtung bewegt wird, die J3 Achse 53 als eine Betätigungsachse bewegt werden, die in die gleiche Richtung wie die Richtung der Kraft bewegt wird. Durch gleichzeitiges Bewegen der J3 Achse 53 und der J2 Achse 52 kann die Position des Ursprungs der J2 Achse 52, die in die Richtung bewegt wird, die der Richtung der aufgebrachten Kraft entgegengesetzt ist, in eine Richtung bewegt werden, die eine Komponente einer Richtung, umfasst, die einer Richtung, in die die Spitze 58 des Roboters 50 durch die Bewegung der J2 Achse 52 bewegt wird, entgegengesetzt ist, oder in eine Richtung bewegt werden, die eine Komponente der Richtung der auf die J2 Achse 52 aufgebrachten Kraft umfasst. Alternativ kann, wenn die J3 Achse 53 als eine Betätigungsachse eingestellt wird, die in die der Richtung der aufgebrachten Kraft entgegengesetzte Richtung bewegt wird, die J2 Achse 52 als eine Betätigungsachse bewegt werden, die in die gleiche Richtung wie die Richtung der Kraft bewegt wird. Durch gleichzeitiges Bewegen der J2 Achse 52 und der J3 Achse 53 kann die Position des Ursprungs der J3 Achse 53, die in die Richtung, die der Richtung der aufgebrachten Kraft entgegengesetzt ist, bewegt wird, in eine Richtung bewegt werden, die eine Komponente einer Richtung umfasst, die einer Richtung, in der die Spitze 58 des Roboters 50 durch die Bewegung der J3 Achse 53 bewegt wird, entgegengesetzt ist, oder in eine Richtung bewegt werden, die eine Komponente der Richtung der auf die J3 Achse 53 aufgebrachten Kraft umfasst. Dies kann das Bewegungsmaß der Spitze 58 des Roboters 50 in die der Richtung der Kraft entgegengesetzten Richtung klein machen oder kann die Spitze 58 des Roboters 50 in der gleichen Richtung wie die Richtung der Kraft bewegen. Auf diese Art können die Gefühle von Unbehagen und Bedrängnis und die Schwierigkeiten bei der Betätigung reduziert werden. Durch das Ausführen des vorstehend beschriebenen Vorgangs kann die Bedienbarkeit beim Bewegen der Betätigungsachse in dem zweiten Steuermodus verbessert werden.
  • 22A bis 22D sind teilweise vergrößerte Diagramme des Roboters 50. In den Zeichnungen bewegt die Bedienungsperson 60 den Roboter 50 durch Aufbringen einer Kraft F1 auf die Spitze 58 des Roboters 50 in eine Pfeilrichtung. In diesem Fall wird die Spitze 58 des Roboters 50 sich drehend um die J5 Achse 55 in einer Richtung im Uhrzeigersinn bewegt. Details über die Bewegung sind nachstehend beschrieben.
  • In 22A wird die Spitze 58 des Roboters 50 in dem ersten Steuermodus zum Ausführen der Bewegung der Position und/oder der Haltung in dem orthogonalen Koordinatensystem gemäß der aufgebrachten Kraft drehend um die J5 Achse 55 bewegt. In diesem Fall wird, da die Spitze 58 des Roboters 50 drehend um die J5 Achse 55 bewegt wird, nur die J5 Achse 55 bewegt. Mit solch einer Drehbewegung nähern sich eine Verbindung 82 (eine Verbindung, die die J3 Achse 53 und die J4 Achse 54 mit der J5 Achse 55 verbindet) und eine Verbindung 83 (eine Verbindung, die mit dem Flansch 57 von der J5 Achse 55 und die J6 Achse 56 verbunden ist) aneinander an, um eine Gerade zu bilden, wie in 22B dargestellt.
  • In der vorliegenden Erfindung wird in dem in 22B beschriebenen Zustand zu der Zeit, wenn die Verbindungen 82 und 83 sich einander annähern, um die Gerade zu bilden, vom ersten Steuermodus in den zweiten Steuermodus gewechselt. Der Grund dafür besteht darin, dass, wenn der vorstehend beschriebene Teil mit der J5 Achse 55 in die Nähe der Geraden in dem Roboter 50 gemäß den Ausführungsformen der Erfindung kommt, der Roboter 50 sich in der Nähe einer singulären Konfiguration befindet und die Bewegung in dem ersten Steuermodus somit nicht ausgeführt werden kann.
  • Auf der Grundlage einer von der zweiten Kraftberechnungseinheit 23 berechneten Kraft in einer zu betätigenden Achse und einer Bewegungsrichtung jeder Achse zu der Zeit unmittelbar vor dem zweiten Steuermodus stellt die Betätigungsachseneinstelleinheit 25 in dem zweiten Steuermodus eine gemäß der Richtung der Kraft bestimmte Bewegungsrichtung ein. Wie aus 22A zu ersehen ist, ist in diesem Fall die Richtung eines Moments der Kraft um die J5 Achse 55 der gleiche wie die Bewegungsrichtung der J5 Achse 55.
  • Dann wird, wie in 22C dargestellt, wenn sich die Verbindungen 82 und 83 auf der Geraden oder in deren Nähe befinden, der zweite Steuermodus beibehalten. Danach wird, wie in 22D dargestellt, wenn die Drehbewegung weitergeht und die Verbindungen 82 und 83 in einen Zustand übergehen, in dem sie die Gerade nicht bilden, von dem zweiten Steuermodus in den ersten Steuermodus gewechselt.
  • Wie vorstehend beschrieben, wird in den in 22A bis 22D beschriebenen Zuständen, wenn die Bedienungsperson 60 die Spitze 58 des Roboters 50 durch Aufbringen von F1 auf die Spitze 58 davon bewegt, von dem ersten Steuermodus in den zweiten Steuermodus gewechselt, der dann wieder in den ersten Steuermodus zurückgeht. Während dieser Bewegung ist die Richtung der Kraft F1 die gleiche wie die Richtung der Drehbewegung der J5 Achse 55. Mit anderen Worten kann, wenn sich die J5 Achse 55 in die Richtung bewegt, in die die Kraft F1 aufgebracht wird, der Roboter 50 gleichmäßig den Zustand des zweiten Steuermodus durchlaufen.
  • In 23A bis 23D bewegt die Bedienungsperson 60 die Spitze 58 des Roboters 50 drehend um die J5 Achse 55 in eine Richtung gegen den Uhrzeigersinn durch Aufbringen einer Kraft F2 auf die Spitze 58 des Roboters 50 in eine Pfeilrichtung. In diesem Fall wird die Spitze 58 des Roboters 50 in dem ersten Steuermodus in 23A, in dem zweiten Steuermodus in 23B und 23C, und in dem ersten Steuermodus in 23D bewegt. Selbst in diesem Fall wird es offensichtlich sein, dass die gleiche Wirkung wie die in 23A bis 23D beschriebe erlangt werden kann.
  • 24A bis 24D sind teilweise vergrößerte Diagramme des Roboters 50. In den Zeichnungen bewegt die Bedienungsperson 60 den Roboter 50 durch Aufbringen einer Kraft F3 auf die Spitze 58 des Roboters 50 in eine Pfeilrichtung. In diesem Fall wird die Spitze 58 des Roboters 50 drehend um die J5 Achse 55 in einer Richtung gegen den Uhrzeigersinn bewegt. Details über die Bewegung werden nachstehend beschrieben.
  • In 24A wird die Spitze 58 des Roboters 50 translational in eine Abwärtsrichtung in dem ersten Steuermodus zum Bewegen der Position und/oder der Haltung der Spitze 58 davon in dem orthogonalen Koordinatensystem gemäß der aufgebrachten Kraft bewegt. Im Gegensatz zu dem in 22A beschriebenen Zustand werden, da die Spitze 58 des Roboters 50 translational in die Abwärtsrichtung bewegt wird, nicht nur die J5 Achse 55, sondern auch andere Achsen des Roboters 50, wie die J2 Achse 52 und die J3 Achse 53, bewegt. Dies kommt durch die Aufrechterhaltung der Haltung der Spitze 58 des Roboters 50. Dementsprechend wird, im Gegensatz zu der in 22A beschriebenen Situation, die Spitze 58 des Roboters 50 um die J5 Achse 55 in die Richtung gegen den Uhrzeigersinn bewegt. Mit solch einer Translationsbewegung nähern sich die Verbindungen 82 und 83 einander an, um eine Gerade zu bilden, wie in 24B dargestellt.
  • In der vorliegenden Erfindung wird in dem in 24B beschriebenen Zustand zu der Zeit, wenn die Verbindungen 82 und 83 sich einander annähern, um die Gerade zu bilden, der Wechsel von dem ersten Steuermodus in den zweiten Steuermodus ausgeführt. Der Grund dafür ist der gleiche wie der oben beschriebene.
  • Auf der Grundlage einer von der zweiten Kraftberechnungseinheit 23 berechneten Kraft in einer zu betätigenden Achse und einer Bewegungsrichtung jeder Achse zu der Zeit oder unmittelbar vor dem zweiten Steuermodus stellt die Betätigungsachseneinstelleinheit 25 in dem zweiten Steuermodus eine gemäß der Richtung der Kraft bestimmte Bewegungsrichtung ein. Wie aus 24B zu ersehen ist, ist in diesem Fall die Richtung eines Moments der Kraft um die J5 Achse 55 der Bewegungsrichtung der J5 Achse 55 entgegengesetzt.
  • Dann wird, wie in 24C dargestellt, wenn sich die Verbindungen 82 und 83 auf der Geraden oder in deren Nähe befinden, der zweite Steuermodus beibehalten. Danach wird, wie in 24D dargestellt, wenn die Drehbewegung der J5 Achse 55 fortfährt und die Verbindungen 82 und 83 in den Zustand übergehen, in dem sie die Gerade nicht bilden, von dem zweiten Steuermodus in den ersten Steuermodus gewechselt.
  • Wie vorstehend beschrieben, wird in den in 24A bis 24D beschriebenen Zuständen, wenn die Bedienungsperson 60 die Spitze 58 des Roboters 50 durch Aufbringen von F3 auf die Spitze 58 davon bewegt, von dem ersten Steuermodus in den zweiten Steuermodus gewechselt, der dann wieder in den ersten Steuermodus zurückkehrt. Während dieser Bewegung ist die Richtung der Drehbewegung der J5 Achse 55 weiterhin die gleiche, so dass der Roboter 50 gleichmäßig den Zustand des zweiten Steuermodus durchlaufen kann.
  • In 24B, in der vom zweiten Steuermodus in den ersten Steuermodus gewechselt wird, werden, wenn die Spitze 58 des Roboters 50 so eingestellt wird, dass sie bewegt wird, indem die Richtung der Kraft F3 gleiche der Richtung der Drehbewegung der J5 Achse 55 als eine gemäß der Richtung der Kraft bestimmte Bewegungsrichtung eingestellt wird, der erste Steuermodus und der zweite Steuermodus an einer Grenze dazwischen wiederholt gewechselt, wodurch die Spitze 58 des Roboters 50 in dem zweiten Steuermodus nicht vorteilhaft bewegt wird.
  • Außerdem bleibt die Richtung der Drehbewegung der J5 Achse 55 während der vorstehend beschriebenen Bewegung in dem ersten und dem zweiten Steuermodus die gleiche. Dies ermöglicht, dass der Roboter 50 gleichmäßig den Zustand des zweiten Steuermodus durchläuft, um in einen anderen Zustand des ersten Steuermodus bewegt zu werden.
  • Außerdem wird beim Bewegen in dem in 24A dargestellten ersten Steuermodus, wenn die Spitze 58 des Roboters 50 translational in dem orthogonalen Koordinatensystem durch Aufbringen der Kraft in der Abwärtsrichtung bewegt wird, dessen Spitze 58 in der gleichen Abwärtsrichtung wie die Richtung der Kraft bewegt, so dass sich die Bedienungsperson 60 nicht beunruhigt fühlt. Beim Bewegen der Spitze 58 des Roboters 50 in die Abwärtsrichtung nähern sich die Verbindungen 82 und 83 aus dem Zustand der 24A einander an, um eine Gerade zu bilden. Zu dieser Zeit sind die Richtung der Kraft F3 und die Richtung der Bewegung der J5 Achse 55 einander entgegengesetzt.
  • Dann wird bei der Bewegung in dem zweiten in 24B und 24C dargestellten Steuermodus die J5 Achse 55 in die der Richtung der Kraft F3 entgegengesetzte Richtung bewegt, so dass der Roboter 50 den Zustand des zweiten Steuermodus durchläuft. Jedoch bewegt sich in diesen Fall, wenn nur die J5 Achse 55 bewegt wird, die Spitze 58 des Roboters 50 in die der Richtung der aufgebrachten Kraft entgegengesetzte Richtung. Infolgedessen kann die Bedienungsperson 60 Unbehagen oder Schwierigkeiten bei der Betätigung empfinden, als ob sie von der Spitze 58 des Roboters 50 zurück gedrückt und hochgehoben würde.
  • Um solch ein Gefühl des Unbehagens oder Schwierigkeiten bei der Betätigung zu reduzieren, wird die Position des Ursprungs der J5 Achse 55 bei der Bewegung in dem zweiten in 24B und 24C beschriebenen Steuermodus vorzugsweise durch Verwenden der J1 Achse 51, der J2 Achse 52 und der J3 Achse 53 in die Abwärtsrichtung bewegt. Zu dieser Zeit wird die Richtung, in die sich die Position der Spitze 58 des Roboters 50 bewegt, von einem Maß, in dem die Spitze 58 des Roboters 50 von der J5 Achse 55 bewegt wird, und einem Bewegungsmaß der Position des Ursprungs der J5 Achse 55 bestimmt. Außerdem wird die Position des Ursprungs der J5 Achse 55 von der Bewegung der J1 Achse 51, der J2 Achse 52 und der J3 Achse 53 bestimmt. Die J1 Achse 51, die J2 Achse 52 und die J3 Achse 53 werden derart bewegt, dass das Bewegungsmaß reduziert wird, um das die Position der Spitze 58 des Roboters 50 in die Richtung bewegt wird, die der Richtung der Kraft der Drehbewegung der J5 Achse 55 entgegengesetzt ist. Dies kann das Gefühl reduzieren, von dem Roboter 50 zurückgedrückt zu werden, das die Bedienungsperson 60 hat. In dem in dem vorliegenden praktischen Beispiel beschriebenen Roboter 50 wird die Position des Ursprungs der J5 Achse 55 von den Positionen der J1 Achse 51, der J2 Achse 52 und der J3 Achse 53 bestimmt. Dementsprechend kann die Position des Ursprungs der J5 Achse 55 in eine erwünschte Richtung durch Bewegen der J1 Achse 51, der J2 Achse 52 und der J3 Achse 53 als Betätigungsachsen bewegt werden, wie vorstehend beschrieben. Außerdem führt in der Achsenstruktur des Roboters 50 das Bewegen nur der J1 Achse 51, der J2 Achse 52 und der J3 Achse 53 zur Bewegung des Ursprungs der J5 Achse 55, wodurch die Spitze 58 des Roboters 50 auch translational in die gleiche Richtung bewegt wird.
  • Wie vorstehend beschrieben, ist es wünschenswert, sich von dem Zustand des in 24C und 24D dargestellten zweiten Steuermodus in den in 24 dargestellten Zustand zu bewegen, um in den ersten Steuermodus zu wechseln. In diesem Fall ändert sich, wie in 25 dargestellt, wenn das Maß der Bewegung der Position des Ursprungs der J5 Achse 55 und der Position der Spitze 58 des Roboters 50 durch Bewegen der J1 Achse 51, der J2 Achse 52 und der J3 Achse 53 als Betätigungsachsen in die Abwärtsrichtung groß ist, die Haltung der mit der J5 Achse 55 verbundenen Verbindung 82. In diesem Fall ist, obwohl die J5 Achse 55 sich in die in der Zeichnung dargestellte Bewegungsrichtung bewegt, ein Maß an Änderung in dem von den Verbindungen 82 und 83 mit der J5 Achse 55 dazwischen gebildeten Winkel klein. Dementsprechend benötigt das Versetzen der Beziehung des von den Verbindungen 82 und 83 mit der J5 Achse 55 dazwischen gebildeten Winkels in den in 24D beschriebenen Zustand Zeit oder es kann Fälle geben, in denen die Beziehung davon solch einen Zustand nicht erreicht. Dadurch wird das Bewegungsmaß der Position des Ursprungs der J5 Achse 55 und der Position der Spitze 58 des Roboters 50, die in die Abwärtsrichtung bewegt werden, vorzugsweise durch Bewegen jeglicher Achse außer einer Betätigungsachse, die in die der Richtung der Kraft entgegengesetzte Richtung bewegt wird, innerhalb eines vorbestimmten Werts gehalten.
  • In 26A bis 26D bringt die Bedienungsperson 60 eine Kraft F4 auf die Spitze 58 des Roboters 50 in eine Pfeilrichtung auf, um dessen Spitze 58 in dem ersten und dem zweiten Steuermodus drehend in die gleiche Richtung um die J5 Achse 55 zu bewegen, deren Drehbewegungsrichtung eine Richtung im Uhrzeigersinn ist. In diesem Fall wird die Spitze 58 des Roboters 50 in dem ersten Steuermodus in den in 26A beschrieben Zustand, in dem zweiten Steuermodus in 26B und 26C und in dem ersten Steuermodus in 26D bewegt. Selbst in solch einem Fall wird es offensichtlich sein, dass die gleiche Wirkung wie die in 24A zu 24D beschriebene erlangt werden kann.
  • In einer Robotersteuervorrichtung 10 gemäß einer fünften Ausführungsform der vorliegenden Erfindung ist die Betätigungsbefehlseinheit 24 vorzugsweise ferner dazu ausgebildet, beim Wechseln von einem der zwei Steuermodi: dem ersten und dem zweiten Steuermodus in den jeweils anderen nach dem Verlangsamen/Anhalten aller Achsen oder der Verringerung einer Geschwindigkeit aller Achsen unter einen vorbestimmten Schwellenwert zu wechseln.
  • Dadurch wird der Steuermodus nach dem Verlangsamen aller Achsen, die den Roboter 50 bilden, zu einer sicheren Geschwindigkeit oder zu einem Verlangsamen/Stoppen aller Achsen gewechselt. Dies ermöglicht, dass eine Zeitsteuerung zum Wechseln zwischen den Steuermodi für die Bedienungsperson erkennbar ist und die Bedienungsperson den Roboter 50 gemäß der Kraft sicherer bedienen kann.
  • In einer Robotersteuervorrichtung 10 gemäß einer sechsten Ausführungsform der vorliegenden Erfindung verlangsamt/stoppt die Betätigungsbefehlseinheit 24 ferner beim Wechseln von dem ersten Steuermodus in den zweiten Steuermodus zwischen den zwei Steuermodi: dem ersten Steuermodus und dem zweiten Steuermodus, vorzugsweise andere Achsen als die Achsen, die in dem zweiten Steuermodus betätigt werden.
  • Dadurch werden beim Wechseln des Steuermodus von dem ersten Steuermodus in den zweiten Steuermodus nur nicht in dem zweiten Steuermodus betätigte Achsen verlangsamt/gestoppt, während eine oder mehrere Achsen, die in dem zweiten Steuermodus betätigt werden, weiter bewegt werden. Somit kann der Bewegungsvorgang weiterhin ausgeführt werden und kann eine schnelle Bewegung in eine angestrebte Position unter Aufrechterhaltung der Sicherheit ausgeführt werden, was eine Verbesserung der Bedienbarkeit ermöglicht.
  • Eine Robotersteuervorrichtung 10 gemäß einer siebten Ausführungsform der vorliegenden Erfindung umfasst ferner vorzugsweise eine Anzeigeausgabeeinheit 71, die den Steuermodus: den ersten Steuermodus oder den zweiten Steuermodus anzeigt und in dem zweiten Steuermodus eine Anzeigeausgabe einer oder mehrerer der von der Betätigungsachseneinstelleinheit 25 eingestellten Betätigungsachsen ausführt und eine Bewegungsrichtung gemäß der Richtung einer auf die eine oder mehreren Betätigungsachsen aufgebrachten Kraft bestimmt.
  • Wie in 20 dargestellt, ist in einem Robotersystem 11, das mit dem von einer Robotersteuervorrichtung 10 gemäß einer anderen Ausführungsform der vorliegenden Erfindung gesteuerten Roboter 50 versehen ist, eine Anzeigeeinheit 70 vorzugsweise mit der Robotersteuervorrichtung 10 verbunden und führt eine Anzeigeausgabe von verschiedenen Zuständen bezüglich der Bewegungsoperation des Roboters 50 auf der Grundlage der von der Anzeigeausgabeeinheit 71 der Robotersteuervorrichtung 10 ausgegebenen Anzeige aus.
  • Außerdem kann, damit die Bedienungsperson 60 die Anzeigevorrichtung 10 nicht halten muss, wenn sie die verschiedenen Zustände bestätigt, die Anzeigevorrichtung 70 als Anzeige, Anzeigelampe oder Ähnliches an einer geeigneten Stelle an dem Roboter 50, wie zum Beispiel der Spitze 58 des Roboters 50, wie in 21 dargestellt, oder an irgendwelchen der Verbindungen, die die Achsen miteinander verbinden, die den Roboter 50 bilden, angebracht sein. Außerdem kann die Anzeigevorrichtung 70 eine auch als Eingabevorrichtung verwendete Vorrichtung sein und kann eine Vorrichtung zum Eingeben verschiedener Einstellungen sein und zu Eingabeoperationen zum Bewegen und Anhalten des Roboters 50 fähig sein.
  • Die in 2 und 18 dargestellte Anzeigeausgabeeinheit 71 zeigt an, ob der Roboter 50 sich in einem Zustand, in dem er gemäß einer Kraft bewegt wird, oder in einem Zustand, in dem er von einer Lehrvorrichtung oder Ähnlichem bewegt wird, befindet und ob der Roboter 50 sich in einem beweglichen Zustand befindet. Vorzugsweise zeigt die Anzeigeausgabeeinheit 71 bezüglich der Anzeige, ob der Roboter 50 sich in dem Zustand befindet, in dem er gemäß einer Kraft bewegt wird, auch an, ob die Kraftmesseinheit 21 sich in einem Zustand befindet, in dem sie in der Lage ist, die Kraft genau zu messen, und zeigt, um zu ermöglichen, dass die Kraftmesseinheit 21 eine von der Bedienungsperson auf die Spitze 58 des Roboters 50 aufgebrachte Nettokraft misst, zum Beispiel auch an, ob notwendige Information über eine Masse, einen Schwerpunkt und Ähnliches eines an dem Kraftsensor angebrachten Objekts genau erfasst wurden, ob die Aktoren zum Bewegen der Achsen des Roboters 50 betriebsbereit sind, und Ähnliches.
  • Außerdem führt, wenn der Roboter 50 sich in dem Zustand befindet, in dem er gemäß einer Kraft beweglich ist, und wenn der Roboter 50 gemäß der Kraft bewegt wird, die Anzeigevorrichtung 70 eine Anzeigeausgabe aus, ob der Steuermodus der erste Steuermodus oder der zweite Steuermodus ist. Außerdem zeigt, wenn der Steuermodus der zweite Steuermodus ist, die Anzeigevorrichtung 70 auch eine oder mehrere von der Betätigungsachseneinstelleinheit 25 eingestellte Betätigungsachsen und eine gemäß der Kraft der einen oder mehreren Betätigungsachsen bestimmte Bewegungsrichtung an.
  • In diesem Fall führt in dem strukturellen Beispiel für die in 2 dargestellte Robotersteuervorrichtung 10a die Anzeigeausgabeeinheit 71 ferner eine Anzeigeausgabe eines Zustands, sich in einer singulären Konfiguration zu befinden, die Art der singulären Konfiguration, eine Achse, die als Faktor für die Nähe zu der singulären Konfiguration dient, eine Achse, die dazu veranlasst wird, in der Nähe zu der singulären Konfiguration zu verlaufen, und Ähnliches aus.
  • Außerdem führt in dem strukturellen Beispiel für die in 18 dargestellte Robotersteuervorrichtung 10b die Anzeigeausgabeeinheit 71 ferner eine Anzeigeausgabe aus, ob eine Position einer vorbestimmten Achse sich in einem Zustand befindet, der eine vorbestimmte Positionsbeziehungsbedingung erfüllt, welche vorbestimmte Positionsbeziehungsbedingung von der Position der vorbestimmten Achse erfüllt wird, eine Achse, die als Faktor dafür dient, sich in der Position des vorstehend beschriebenen Zustands zu befinden, eine Achse, die dazu veranlasst wird, durch die Position des vorstehend beschriebenen Zustands zu verlaufen, und Ähnliches. Dies kann die Bedienbarkeit verbessern.
  • Vorteilhafte Wirkungen der Erfindung
  • Gemäß dem ersten Aspekt werden eine oder mehrere zu betätigende Achsen auf der Grundlage einer gegenwärtigen Position jeder Achse des Roboters ausgewählt, wodurch jede erwünschte Achse und eine Achse, die dazu veranlasst wird, die singuläre Konfiguration des Roboters zu durchlaufen, gemäß einer auf die Spitze des Roboters aufgebrachten Kraft bewegt werden können.
  • Außerdem können der erste Steuermodus zum Bewegen der Position und/oder der Haltung der Spitze des Roboters in dem orthogonalen Koordinatensystem auf der Grundlage der Position jeder Achse des Roboters und der zweite Steuermodus zum Bewegen der Position jeder Achse gewechselt werden und kann auch die Kennzeichnung einer Achse beim Betätigen jeder Achse ausgeführt werden. Dementsprechend kann, während der Roboter durch Aufbringen einer Kraft auf die Spitze des Roboters bewegt wird, der Steuermodus ohne das Ausführen jeglicher mittels einer getrennt bereitgestellten Eingabevorrichtung eingegebenen Aufgabe, gewechselt werden.
  • Außerdem kann während des Ausführens des Vorgangs des Aufbringens einer Kraft auf die Spitze des Roboters die Position und/oder die Haltung der Spitze des Roboters in dem orthogonalen Koordinatensystem bewegt werden und kann jede erwünschte Achse bewegt werden. Zum Beispiel kann, wenn die Position und/oder die Haltung der Spitze des Roboters in dem orthogonalen Koordinatensystem durch Aufbringen einer Kraft auf die Spitze davon bewegt wird, jede erwünschte Achse bewegt werden, während eine Kraft auf die Spitze des Roboters aufgebracht wird, wodurch es dem Roboter ermöglicht wird, sich durch eine Position zu bewegen, in die er nicht durch eine übliche Bewegung in dem orthogonalen Koordinatensystem bewegt werden kann, und dann ermöglicht wird, eine Position zu erreichen, in die er normalerweise nicht aus einer gewissen Position bewegt werden kann. Danach kann eine Bewegung in dem orthogonalen Koordinatensystem und Ähnliches wieder ausgeführt werden.
  • Dies hebt die Notwendigkeit auf, dass die Bedienungsperson getrennt eine Lehrvorrichtung zum Wechseln der Einstellung bereitstellen und einen Eingabevorgang zum Wechseln der Einstellung ausführen muss. Dementsprechend können die Kosten für das Robotersystem gesenkt werden und bei dem Bewegungsvorgang eine Bewegung in eine beliebige Position und/oder eine beliebige Haltung in dem orthogonalen Koordinatensystem und in eine beliebige Achsenposition leicht ausgeführt werden und kann solch ein Bewegungsvorgang auch gleichmäßiger, kontinuierlicher und bequemer ausgeführt werden.
  • Außerdem wird es dem Roboter ermöglicht, sich durch die Nähe zu einer singulären Konfiguration zu bewegen, wo es unmöglich oder schwierig ist, einen Bewegungsvorgang für die Position und/oder die Haltung der Spitze des Roboters in dem orthogonalen Koordinatensystem auszuführen, oder wo der Bewegungsvorgang instabil wird, und kann der Bewegungsvorgang in solch einem Zustand leicht ausgeführt werden. Ferner kann der Roboter durch frühes Detektieren einer Nachbarschaft zu der singulären Konfiguration, wo der Bewegungsvorgang für die Position und/oder die Haltung der Spitze in dem orthogonalen Koordinatensystem dazu tendiert, instabil zu sein, und Bewegen jeder erwünschten Achse stabil und sicher bewegt werden.
  • Außerdem kann eine Zeitsteuerung für das Wechseln zwischen den Steuermodi leicht durch Wechseln des Steuermodus für die Bewegung während eines Bewegungsvorgangs durch Verwenden einer Position, in die der Roboter nicht durch einen üblichen Bewegungsvorgang bewegt wird, für die Position und/oder die Haltung der Spitze davon in dem orthogonalen Koordinatensystem und dem Zustand, sich in der Nähe zu der singulären Konfiguration zu befinden, erkannt werden.
  • Außerdem ist bei der Verwendung der Nachbarschaft zur singulären Konfiguration als eine Position zum Wechseln zwischen den Steuermodi die Nachbarschaft der singulären Konfiguration auch eine Stelle, wo sich die Konfiguration, die die Positionen der Achsen des Roboters bestimmt, ändert. Dementsprechend kann der Roboter auf diese Weise in eine andere Konfiguration bewegt werden. Von der hier erwähnten „Konfiguration“ des Roboters wird angenommen wird, dass sie eine Konfiguration ist, die einen Zustand jeder Achse bezüglich der Art der Einstellung der Position jeder Achse bestimmt, die nicht eindeutig bestimmt wird, wenn die Spitze des Roboterarms in eine gewisse Position und eine gewisse Haltung bewegt wird. Mit anderen Worten wird beim Bewegen des Roboters in dem orthogonalen Koordinatensystem durch Aufbringen einer Kraft auf die Spitze des Roboters der Roboter einmal in die Nachbarschaft der singulären Konfiguration bewegt, und wird jede Achse durch die Aufbringung der Kraft auf die Spitze davon bewegt, um dem Roboter zu ermöglichen, eine Position zu durchlaufen, in die er nicht durch einen Bewegungsvorgang in dem orthogonalen Koordinatensystem bewegt werden kann, und in eine andere Konfiguration bewegt zu werden, was die Ausführung eines Bewegungsvorgangs in dem orthogonalen Koordinatensystem in eine andere Konfiguration ermöglicht.
  • Außerdem kann in der Nähe einer oder vor jeglicher singulären Konfiguration eine geringfügige Bewegung der Position in dem orthogonalen Koordinatensystem bewirken, dass die Drehachse unabsichtlich wesentlich gedreht wird. In diesem Fall kann jede unabsichtlich bewegte Achse durch Wechseln zu der Kraftsteuerung jeder Achse in der Nähe der singulären Konfiguration zurück in eine erwünschte Anfangsposition bewegt werden.
  • Außerdem wird beim Bewegen des Roboters in dem orthogonalen Koordinatensystem durch Aufbringen einer Kraft auf die Spitze davon die Position jeder Achse absichtlich in eine Position geändert, in die jede Achse nicht durch eine übliche Bewegung in dem orthogonalen Koordinatensystem bewegt wird. Dadurch kann jede Achse gemäß der auf die Spitze davon aufgebrachten Kraft durch den gleichen Vorgang des Aufbringens der Kraft darauf bewegt werden. Infolgedessen kann die Haltung des Roboters leicht in eine beliebige Haltung bewegt werden.
  • Gemäß dem zweiten Aspekt ermöglicht die Verwendung der Achsenpositionszustandsbestimmungseinheit das Wechseln zwischen dem ersten Steuermodus zum Bewegen der Position und/oder der Haltung der Spitze des Roboters in dem orthogonalen Koordinatensystem auf der Grundlage der Position jeder Achse des Roboters und dem zweiten Steuermodus zum Bewegen der Position jeder Achse des Roboters. Außerdem kann eine Kennzeichnung einer Achse beim Betätigen jeder Achse ausgeführt werden. Auf diese Art kann während des Bewegens des Roboters durch Aufbringen einer Kraft auf die Spitze davon ohne Ausführen jeglicher mittels einer getrennt bereitgestellten Eingabevorrichtung eingegebenen Aufgabe zwischen den Steuermodi gewechselt werden.
  • Außerdem kann während des Ausführens des Vorgangs des Aufbringens einer Kraft auf die Spitze des Roboters die Position und/oder die Haltung der Spitze des Roboters in dem orthogonalen System bewegt werden und kann jede erwünschte Achse bewegt werden. Zum Beispiel wird, wenn die Position und/oder die Haltung der Spitze des Roboters in dem orthogonalen Koordinatensystem durch Aufbringen einer Kraft auf die Spitze davon bewegt wird, jede erwünschte Achse während des Aufbringens der Kraft auf die Spitze davon bewegt, um zu ermöglichen, dass der Roboter sich durch eine Position bewegt, in die er nicht durch eine übliche Bewegung in dem orthogonalen Koordinatensystem bewegt werden kann, und dann eine Position erreicht, in die er normalerweise nicht aus einer gewissen Position bewegt werden kann. Danach kann Bewegung in dem orthogonalen Koordinatensystem und Ähnliches wieder ausgeführt werden.
  • Dies hebt die Notwendigkeit auf, dass die Bedienungsperson getrennt eine Lehrvorrichtung zum Wechseln der Einstellung bereitstellen und einen Eingabevorgang zum Wechseln der Einstellung ausführen muss. Dementsprechend können die Kosten in dem Robotersystem gesenkt werden und bei dem Bewegungsvorgang eine Bewegung in eine beliebige Position und/oder eine beliebige Haltung in dem orthogonalen Koordinatensystem und in eine beliebige Achsenposition leicht ausgeführt werden und kann solch ein Bewegungsvorgang auch gleichmäßiger, kontinuierlicher und bequemer ausgeführt werden.
  • Außerdem wird beim Bewegen des Roboters in dem orthogonalen Koordinatensystem durch Aufbringen einer Kraft auf die Spitze davon die Position jeder Achse absichtlich in eine Position geändert, in die jede Achse nicht durch eine übliche Bewegung in dem orthogonalen Koordinatensystem bewegt wird. Dadurch kann jede Achse gemäß der auf die Spitze davon aufgebrachten Kraft durch den gleichen Vorgang des Aufbringens der Kraft darauf bewegt werden. Infolgedessen kann die Haltung des Roboters leicht in eine beliebige Haltung bewegt werden.
  • Gemäß dem dritten Aspekt kann der Roboter kontinuierlich eine von der Bedienungsperson beabsichtigte Bewegung ausführen und kann die Bedienungsperson den Betrieb ohne ein Gefühl des Unbehagens fortsetzen.
  • Beim Bewegen der Position jeder Achse gemäß der Kraft kann, wenn die Betätigungsachse in eine der Richtung der auf die Betätigungsachse aufgebrachten Kraft entgegengesetzten Richtung bewegt wird, die Bedienungsperson sich aufgrund der Bewegung der Betätigungsachse in die der Richtung der aufgebrachten Kraft entgegengesetzte Richtung unbequem oder unangenehm fühlen und/oder Schwierigkeiten bei der Betätigung haben. Gemäß dem vierten Aspekt können solche Gefühle von Unbehagen, Bedrängnis und Schwierigkeiten, die von der Bedienungsperson beim Aufbringen einer Kraft empfunden werden können, reduziert werden, was die Verbesserung der Bedienbarkeit ermöglicht.
  • Gemäß dem fünften Aspekt kann sicher zwischen dem ersten Steuermodus und dem zweiten Steuermodus gewechselt werden.
  • Gemäß dem sechsten Aspekt kann beim Wechseln von dem ersten Steuermodus in den zweiten Steuermodus der Bewegungsvorgang kontinuierlich ausgeführt werden.
  • Gemäß dem siebten Aspekt kann der Bewegungsvorgang einfacher und leichter ausgeführt werden.
  • Während vorstehend verschiedene Ausführungsformen und Modifikationen der vorliegenden Erfindung beschrieben wurden, ist es für den Fachmann offensichtlich, dass die beabsichtigten Funktionswirkungen der Erfindung auch durch andere Ausführungsformen und Modifikationen erreicht werden können. Insbesondere ist es möglich, die Elemente der vorstehend beschriebenen Ausführungsformen und Modifikationen wegzulassen oder zu ersetzen, und ist es ferner möglich, eine weitere bekannte Einheit hinzuzufügen, ohne von dem Umfang der Erfindung abzuweichen. Außerdem ist es für den Fachmann auch offensichtlich, dass die Erfindung auch durch beliebiges Kombinieren der Merkmale der Mehrzahl von hierin implizit oder klar offenbarten Ausführungsformen umgesetzt werden kann. Mit anderen Worten sind andere Formen innerhalb des Bereichs der technischen Idee der Erfindung denkbar und auch in den Umfang der Erfindung einbezogen.

Claims (12)

  1. Robotersteuervorrichtung (10) eines Robotersystems (11), die einen Roboter (50) auf der Grundlage einer auf den Roboter, der eine Mehrzahl von Achsen umfasst, aufgebrachten Kraft bewegt, wobei die Robotersteuervorrichtung umfasst: eine Kraftmesseinheit (21), die die auf eine Spitze des Roboters aufgebrachte Kraft misst; eine erste Kraftberechnungseinheit (22), die eine Betätigungskraft zum Ausführen eines Bewegungsvorgangs von mindestens einer von einer Position und einer Haltung der Spitze des Roboters auf der Grundlage der von der Kraftmesseinheit gemessenen Kraft berechnet; eine zweite Kraftberechnungseinheit (23), die eine Betätigungskraft zum Ausführen eines Bewegungsvorgangs einer Position jeder der Mehrzahl von Achsen des Roboters auf der Grundlage der von der Kraftmesseinheit gemessenen Kraft berechnet; eine Betätigungsbefehlseinheit (24), die einen Betätigungsbefehl zum Bewegen des Roboters auf der Grundlage der von der Kraftmesseinheit gemessenen Kraft ausgibt und auf Grundlage der Wahl eines ersten oder zweiten Steuermodi; eine Einheit (27) zur Bestimmung der Nähe zu einer singulären Konfiguration, die bestimmt, ob der Roboter sich in der Nähe einer singulären Konfiguration befindet oder nicht; und eine Betätigungsachseneinstelleinheit (25), die gemäß einer gegenwärtigen Position jeder der Achsen, wenn die Einheit zur Bestimmung der Nähe zu einer singulären Konfiguration bestimmt, dass der Roboter sich in der Nähe der singulären Konfiguration befindet, eine oder mehrere vorbestimmte Achsen, die eine Achse umfassen, die als ein Faktor für die Nähe zu der singulären Konfiguration dient, oder eine Achse, die dazu veranlasst wird, durch die Nähe zu der singulären Konfiguration zu verlaufen, als eine oder mehrere Betätigungsachsen einstellt, die gemäß der Kraft bewegt werden, und eine gemäß einer Richtung der Kraft bestimmten Bewegungsrichtung der einen oder mehreren Betätigungsachsen einstellt, wobei die Betätigungsbefehlseinheit den ersten Steuermodus umfasst, der, wenn die Einheit zur Bestimmung der Nähe zu einer singulären Konfiguration bestimmt, dass der Roboter sich nicht in der Nähe der singulären Konfiguration befindet, einen Betätigungsbefehl zum Bewegen der mindestens einen von der Position und der Haltung der Spitze des Roboters auf der Grundlage der von der ersten Kraftberechnungseinheit berechneten Betätigungskraft ausgibt, und den zweiten Steuermodus umfasst, der, wenn die Einheit zur Bestimmung der Nähe zu einer singulären Konfiguration bestimmt, dass der Roboter sich in der Nähe der singulären Konfiguration befindet, einen Betätigungsbefehl zum Bewegen einer Position der einen oder mehreren von der Betätigungsachseneinstelleinheit eingestellten Betätigungsachsen auf der Grundlage der von der zweiten Kraftberechnungseinheit berechneten Betätigungskraft und der von der Betätigungsachseneinstelleinheit eingestellten Bewegungsrichtung ausgibt.
  2. Robotersteuervorrichtung nach Anspruch1, wobei die Betätigungsachseneinstelleinheit die Bewegungsrichtung, die gemäß einer Richtung einer auf die eine oder mehreren Betätigungsachsen aufgebrachten Kraft bestimmt wird, auf der Grundlage der Richtung der auf die eine oder mehreren Betätigungsachsen aufgebrachten Kraft und der Bewegungsrichtung der einen oder mehreren Betätigungsachsen unmittelbar vor dem Wechseln in den zweiten Steuermodus oder beim Wechseln in den zweiten Steuermodus einstellt.
  3. Robotersteuervorrichtung nach Anspruch1 oder 2, wobei in dem zweiten Steuermodus die Betätigungsbefehlseinheit eine Position eines Ursprungs einer Betätigungsachse der einen oder mehreren Betätigungsachsen, die in eine der Richtung der auf die Achse aufgebrachten Kraft entgegengesetzte Richtung bewegt wird, in eine Richtung, die eine Komponente einer Richtung umfasst, die einer Richtung entgegengesetzt ist, in die die Position der Spitze des Roboters von einer oder mehrerer Betätigungsachsen bewegt wird, oder in eine Richtung, die eine Komponente der Richtung der auf die eine oder mehreren Betätigungsachsen aufgebrachten Kraft umfasst, bewegt.
  4. Robotersteuervorrichtung nach einem der Ansprüche 1 bis 3, wobei die Betätigungsbefehlseinheit, wenn die Betätigungsbefehlseinheit zwischen den zwei Steuermodi: dem ersten Steuermodus und dem zweiten Steuermodus, von einem der Steuermodi in den anderen der Steuermodi wechselt, nach dem Verlangsamen/Anhalten aller Achsen oder der Verringerung einer Geschwindigkeit aller Achsen auf weniger als einen vorbestimmten Schwellenwert wechselt.
  5. Robotersteuervorrichtung nach einem der Ansprüche 1 bis 4, wobei die Betätigungsbefehlseinheit, wenn die Betätigungsbefehlseinheit zwischen den zwei Steuermodi: dem ersten Steuermodus und dem zweiten Steuermodus, von dem ersten Steuermodus in den zweiten Steuermodus wechselt, andere Achsen als die Achsen, die in dem zweiten Steuermodus betätigt werden, verlangsamt/anhält.
  6. Robotersteuervorrichtung nach einem der Ansprüche 1 bis 5, die ferner eine Anzeigeausgabeeinheit (71) umfasst, die eine Anzeigeausgabe darüber ausführt, ob der erste Steuermodus oder der zweite Steuermodus eingestellt ist, und in dem zweiten Steuermodus eine Anzeigeausgabe der einen oder mehreren von der Betätigungsachseneinstelleinheit eingestellten Betätigungsachsen und der gemäß der Richtung der auf die oder mehrere Betätigungsachsen aufgebrachten Kraft bestimmten Bewegungsrichtung ausführt.
  7. Robotersteuervorrichtung (10) eines Robotersystems (11), die einen Roboter (50) auf der Grundlage einer auf den Roboter, der eine Mehrzahl von Achsen umfasst, aufgebrachten Kraft bewegt, wobei die Robotersteuervorrichtung umfasst: eine Kraftmesseinheit (21), die die auf eine Spitze des Roboters aufgebrachte Kraft misst; eine erste Kraftberechnungseinheit (22), die eine Betätigungskraft zum Ausführen eines Bewegungsvorgangs von mindestens einem von einer Position und einer Haltung der Spitze des Roboters auf der Grundlage der von der Kraftmesseinheit gemessenen Kraft berechnet; eine zweite Kraftberechnungseinheit (23), die eine Betätigungskraft zum Ausführen eines Bewegungsvorgangs einer Position von jeder Achse der Mehrzahl von Achsen des Roboters auf der Grundlage der von der Kraftmesseinheit gemessenen Kraft berechnet; eine Betätigungsbefehlseinheit (24), die einen Betätigungsbefehl zum Bewegen des Roboters auf der Grundlage der von der Kraftmesseinheit gemessenen Kraft ausgibt und auf Grundlage der Wahl eines ersten oder zweiten Steuermodi; eine Achsenpositionszustandsbestimmungseinheit (28), die bestimmt, ob eine Position einer oder mehrerer vorbestimmter Achsen eine Position eines Zustands ist, der eine vorbestimmte Positionsbeziehungsbedingung erfüllt, in welche der Roboter normalerweise nicht aus einer gewissen Position bewegt wird, oder nicht; und eine Betätigungsachseneinstelleinheit (25), die gemäß einer gegenwärtigen Position jeder der Achsen des Roboters zu einer Zeit, wenn die Achsenpositionszustandsbestimmungseinheit bestimmt, dass die eine oder mehreren vorbestimmten Achsen sich in der Position des Zustands befinden, eine oder mehrere vorbestimmte Achsen, die eine Achse umfassen, die als Faktor dafür dient, sich in der Position des Zustands zu befinden, oder eine Achse, die dazu veranlasst wird, durch die Position des Zustands zu verlaufen, als eine oder mehrere Betätigungsachsen einstellt, die gemäß der Kraft bewegt werden, und eine gemäß einer Richtung der Kraft bestimmte Bewegungsrichtung der einen oder mehreren Betätigungsachsen einstellt, wobei die Betätigungsbefehlseinheit den ersten Steuermodus umfasst, der, wenn die Achsenpositionszustandsbestimmungseinheit bestimmt, dass die eine oder mehreren vorbestimmten Achsen sich nicht in der Position des Zustands befinden, einen Betätigungsbefehl zum Bewegen der mindestens einen von der Position und der Haltung der Spitze des Roboters auf der Grundlage der von der ersten Kraftberechnungseinheit berechneten Betätigungskraft ausgibt, und den zweiten Steuermodus umfasst, der, wenn die Achsenpositionszustandsbestimmungseinheit bestimmt, dass die eine oder mehreren vorbestimmten Achsen sich in der Position des Zustands befinden, einen Betätigungsbefehl zum Bewegen einer Position der einen oder mehreren von der Betätigungsachseneinstelleinheit eingestellten Betätigungsachsen auf der Grundlage der von der zweiten Kraftberechnungseinheit berechneten Betätigungskraft und der von der Betätigungsachseneinstelleinheit eingestellten Bewegungsrichtung ausgibt.
  8. Robotersteuervorrichtung nach Anspruch 7, wobei die Betätigungsachseneinstelleinheit die Bewegungsrichtung, die gemäß einer Richtung einer auf die eine oder mehreren Betätigungsachsen aufgebrachten Kraft bestimmt wird, auf der Grundlage der Richtung der auf die eine oder mehreren Betätigungsachsen aufgebrachten Kraft und der Bewegungsrichtung der einen oder mehreren Betätigungsachsen unmittelbar vor dem Wechsel in den zweiten Steuermodus oder beim Wechsel in den zweiten Steuermodus einstellt.
  9. Robotersteuervorrichtung nach Anspruch 7 oder 8, wobei in dem zweiten Steuermodus die Betätigungsbefehlseinheit eine Position eines Ursprungs einer Betätigungsachse der einen oder mehreren Betätigungsachsen, die in eine der Richtung der auf die Achse aufgebrachten Kraft entgegengesetzte Richtung bewegt wird, in eine Richtung, die eine Komponente einer Richtung umfasst, die einer Richtung, in die die Position der Spitze des Roboters durch Bewegung der einen oder mehrere Betätigungsachsen bewegt wird, entgegengesetzt ist, oder in eine Richtung, die eine Komponente der Richtung der auf die eine oder mehreren Betätigungsachsen aufgebrachten Kraft umfasst, bewegt.
  10. Robotersteuervorrichtung nach einem der Ansprüche 7 bis 9, wobei die Betätigungsbefehlseinheit, wenn die Betätigungsbefehlseinheit zwischen den zwei Steuermodi: dem ersten Steuermodus und dem zweite Steuermodus, von einem der Steuermodi auf den anderen der Steuermodi wechselt, nach dem Verlangsamen/Anhalten aller Achsen oder der Verringerung einer Geschwindigkeit aller Achsen auf weniger als einen vorbestimmten Schwellenwert wechselt.
  11. Robotersteuervorrichtung nach einem der Ansprüche 7 bis 10, wobei die Betätigungsbefehlseinheit, wenn die Betätigungsbefehlseinheit zwischen den zwei Steuermodi: dem ersten Steuermodus und dem zweiten Steuermodus, von dem ersten Steuermodus in den zweiten Steuermodus wechselt, andere Achsen als die Achsen, die in dem zweiten Steuermodus betätigt werden, verlangsamt/anhält.
  12. Robotersteuervorrichtung nach einem der Ansprüche 7 bis 11, ferner umfassend eine Anzeigeausgabeeinheit (71), die eine Anzeigeausgabe darüber ausführt, ob der erste Steuermodus oder der zweite Steuermodus eingestellt ist, und in dem zweiten Steuermodus eine Anzeigeausgabe der einen oder mehreren von der Betätigungsachseneinstelleinheit eingestellten Betätigungsachsen und der gemäß der Richtung der auf die eine oder mehreren Betätigungsachsen aufgebrachten Kraft bestimmten Bewegungsrichtung ausführt.
DE102015004475.3A 2014-04-14 2015-04-07 Robotersteuervorrichtung zum Steuern eines Roboters, der gemäß einer aufgebrachten Kraft bewegt wird Active DE102015004475B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014-082642 2014-04-14
JP2014082642A JP5893665B2 (ja) 2014-04-14 2014-04-14 作用された力に応じて移動されるロボットを制御するロボット制御装置

Publications (2)

Publication Number Publication Date
DE102015004475A1 DE102015004475A1 (de) 2015-10-15
DE102015004475B4 true DE102015004475B4 (de) 2021-01-28

Family

ID=54193323

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015004475.3A Active DE102015004475B4 (de) 2014-04-14 2015-04-07 Robotersteuervorrichtung zum Steuern eines Roboters, der gemäß einer aufgebrachten Kraft bewegt wird

Country Status (4)

Country Link
US (1) US9623567B2 (de)
JP (1) JP5893665B2 (de)
CN (1) CN104972466B (de)
DE (1) DE102015004475B4 (de)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5774223B2 (ja) * 2012-06-29 2015-09-09 三菱電機株式会社 ロボット制御装置およびロボット制御方法
JP6055002B2 (ja) * 2015-02-20 2016-12-27 ファナック株式会社 ロボットを退避動作させる人間協調ロボットシステム
JP6565752B2 (ja) * 2016-03-17 2019-08-28 株式会社安川電機 ロボット制御装置及びロボット制御方法
JP6733239B2 (ja) * 2016-03-18 2020-07-29 セイコーエプソン株式会社 制御装置及びロボットシステム
JP2018069361A (ja) * 2016-10-27 2018-05-10 セイコーエプソン株式会社 力制御座標軸設定装置、ロボットおよび力制御座標軸設定方法
WO2018149502A1 (en) * 2017-02-17 2018-08-23 Abb Schweiz Ag A method for controlling an industrial robot during lead-through programming of the robot and an industrial robot
CN106826776B (zh) * 2017-04-07 2024-03-26 河南科技大学 一种各向同性空间二自由度转动并联机构
CN110678157B (zh) * 2017-05-26 2023-06-13 墨尔本大学 机电机器人操作器装置
JP6844434B2 (ja) * 2017-06-15 2021-03-17 株式会社デンソーウェーブ ロボットの負荷重心位置推定装置及びロボットの負荷重心位置推定方法
CA2977489C (en) 2017-08-28 2019-11-26 Synaptive Medical (Barbados) Inc. Positioning arm for a surgical navigation system
JP6690626B2 (ja) * 2017-10-31 2020-04-28 株式会社安川電機 ロボットシステムおよびロボットの退避方法
JP7245603B2 (ja) * 2017-11-10 2023-03-24 株式会社安川電機 教示装置、ロボットシステムおよび教示方法
JP6964494B2 (ja) * 2017-11-27 2021-11-10 アズビル株式会社 ロボットの直接教示装置及びその方法
US11763170B2 (en) 2018-02-05 2023-09-19 Sony Group Corporation Method and system for predicting discrete sequences using deep context tree weighting
JP2019177436A (ja) * 2018-03-30 2019-10-17 日本電産株式会社 ロボット制御装置、ロボットの関節の角度を求める方法、プログラム
DE102018206947A1 (de) * 2018-05-04 2019-11-07 Kuka Deutschland Gmbh Verfahren und system zum programmieren eines roboterprozesses
JP7135437B2 (ja) * 2018-05-22 2022-09-13 セイコーエプソン株式会社 ロボットシステムの制御方法及びロボットシステム
JP7124439B2 (ja) * 2018-05-22 2022-08-24 セイコーエプソン株式会社 制御装置及びロボットシステム
JP7028092B2 (ja) * 2018-07-13 2022-03-02 オムロン株式会社 把持姿勢評価装置及び把持姿勢評価プログラム
US11443229B2 (en) 2018-08-31 2022-09-13 Sony Group Corporation Method and system for continual learning in an intelligent artificial agent
KR102543596B1 (ko) * 2018-08-31 2023-06-19 삼성전자주식회사 외력의 측정을 위한 적어도 하나의 파라미터를 산출하는 방법 및 이를 수행하는 전자 장치
JP7263724B2 (ja) * 2018-09-27 2023-04-25 株式会社デンソーウェーブ ロボットの制御方法
JP7092307B2 (ja) * 2019-02-01 2022-06-28 三菱電機株式会社 作業判別装置および作業判別方法
WO2020162619A1 (ja) * 2019-02-07 2020-08-13 学校法人慶應義塾 位置・力制御装置、位置・力制御方法及びプログラム
JP7238450B2 (ja) * 2019-02-14 2023-03-14 株式会社デンソーウェーブ ロボットの制御装置およびロボットの制御方法
JP2021062436A (ja) * 2019-10-11 2021-04-22 セイコーエプソン株式会社 教示方法
JP7294980B2 (ja) 2019-10-15 2023-06-20 ファナック株式会社 制御システム、制御装置、及びロボット
DE102020215904B3 (de) 2020-12-15 2022-03-31 Kuka Deutschland Gmbh Verfahren und System zum Betreiben eines Roboters
CN113927603B (zh) * 2021-11-15 2023-06-27 武汉联影智融医疗科技有限公司 机械臂拖动控制方法、装置、计算机设备以及存储介质
CN115946120B (zh) * 2023-01-09 2024-02-13 上海艾利特机器人有限公司 机械臂控制方法、装置、设备和介质
CN116945195B (zh) * 2023-09-19 2024-01-12 成都飞机工业(集团)有限责任公司 全向测量设备系统装置、配准方法、电子设备和存储介质
CN117047789B (zh) * 2023-10-13 2024-01-23 北京壹点灵动科技有限公司 机器人参数的标定方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5685106A (en) * 1979-12-14 1981-07-11 Hitachi Ltd Robot teaching method
JPH06250728A (ja) * 1993-02-26 1994-09-09 Hitachi Constr Mach Co Ltd ロボットの直接教示装置
US5880956A (en) * 1994-08-12 1999-03-09 Minnesota Mining And Manufacturing Company Lead-through robot programming system
JPH11239988A (ja) * 1998-02-24 1999-09-07 Sumitomo Heavy Ind Ltd 多関節ロボットのダイレクトティーチングにおける特異点回避方法
DE102007062108A1 (de) * 2007-12-21 2009-07-02 Kuka Roboter Gmbh Industrieroboter und Verfahren zum Programmieren eines Industrieroboters
DE102009018403A1 (de) * 2009-04-22 2010-10-28 Kuka Roboter Gmbh Verfahren und Vorrichtung zur Regelung eines Manipulators
DE102012009010A1 (de) * 2012-05-05 2012-12-13 Daimler Ag Verfahren zum Erzeugen einer Bewegung eines Roboters

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2897792B2 (ja) 1991-02-21 1999-05-31 株式会社デンソー 電磁継電器
US6181983B1 (en) * 1997-06-20 2001-01-30 Deutsches Zentrum f{umlaut over (u)}r Luft-und Raumfahrt e.v. Method of command control for a robot manipulator
EP2362285B1 (de) * 1997-09-19 2015-03-25 Massachusetts Institute of Technology Robotergerät
JP3923053B2 (ja) 2004-03-31 2007-05-30 ファナック株式会社 ロボット教示装置
JP4267027B2 (ja) * 2006-12-07 2009-05-27 ファナック株式会社 ロボット制御装置
WO2012101956A1 (ja) * 2011-01-27 2012-08-02 パナソニック株式会社 ロボットアームの制御装置及び制御方法、ロボット、ロボットアーム制御プログラム、並びに、集積電子回路
WO2013176212A1 (ja) * 2012-05-25 2013-11-28 学校法人立命館 ロボット制御装置、ロボット制御方法、プログラム、記録媒体、ロボットシステム
CN103600354B (zh) 2013-11-08 2016-10-05 北京卫星环境工程研究所 航天器机械臂柔性随动控制重力补偿方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5685106A (en) * 1979-12-14 1981-07-11 Hitachi Ltd Robot teaching method
JPH06250728A (ja) * 1993-02-26 1994-09-09 Hitachi Constr Mach Co Ltd ロボットの直接教示装置
US5880956A (en) * 1994-08-12 1999-03-09 Minnesota Mining And Manufacturing Company Lead-through robot programming system
JPH11239988A (ja) * 1998-02-24 1999-09-07 Sumitomo Heavy Ind Ltd 多関節ロボットのダイレクトティーチングにおける特異点回避方法
DE102007062108A1 (de) * 2007-12-21 2009-07-02 Kuka Roboter Gmbh Industrieroboter und Verfahren zum Programmieren eines Industrieroboters
DE102009018403A1 (de) * 2009-04-22 2010-10-28 Kuka Roboter Gmbh Verfahren und Vorrichtung zur Regelung eines Manipulators
DE102012009010A1 (de) * 2012-05-05 2012-12-13 Daimler Ag Verfahren zum Erzeugen einer Bewegung eines Roboters

Also Published As

Publication number Publication date
DE102015004475A1 (de) 2015-10-15
US20150290798A1 (en) 2015-10-15
CN104972466B (zh) 2017-04-12
CN104972466A (zh) 2015-10-14
JP2015202536A (ja) 2015-11-16
US9623567B2 (en) 2017-04-18
JP5893665B2 (ja) 2016-03-23

Similar Documents

Publication Publication Date Title
DE102015004475B4 (de) Robotersteuervorrichtung zum Steuern eines Roboters, der gemäß einer aufgebrachten Kraft bewegt wird
DE102015004481B4 (de) Robotersteuervorrichtung zum Steuern eines gemäß einer ausgeübten Kraft bewegten Roboters
DE102015004484B4 (de) Robotersteuerung und Robotersystem zum Bewegen eines Roboters in Erwiderung einer Kraft
EP2212753B1 (de) Verfahren zum abfahren einer vorgegebenen bahn durch einen manipulator, sowie steuervorrichtung zur durchführung eines solchen verfahrens
EP2868445B1 (de) Verfahren zum Programmieren von Bewegungsabläufen eines redundanten Industrieroboters und zugehöriger Industrieroboter
EP3323026B1 (de) Ermitteln eines eingabebefehls für einen roboter, der durch manuelles ausüben einer kraft auf den roboter eingegeben wird
EP2905111B1 (de) Verfahren zum Programmieren eines Industrieroboters und zugehöriger Industrieroboter
DE102015004483B4 (de) Robotersteuerung und Robotersystem zum Bewegen eines Roboters als Reaktion auf eine Kraft
DE102008027008B4 (de) Verfahren und Vorrichtung zum Steuern eines Manipulators
EP2243602B1 (de) Verfahren und Vorrichtung zur Regelung eines Manipulators
DE102008062622B4 (de) Verfahren und Vorrichtung zur Befehlseingabe in eine Steuerung eines Manipulators
DE102011011681B4 (de) Roboter mit einer Lernsteuerfunktion
DE102009058004B4 (de) Impedanzsteuerung im Betriebsraum mit mehreren Prioritäten
DE102018112360B3 (de) Bereichsabhängige Kollisionsdetektion für einen Robotermanipulator
DE3240251A1 (de) Verfahren zum programmieren von bewegungen und erforderlichenfalls von bearbeitungskraeften bzw. -momenten eines roboters oder manipulators und einrichtung zu dessen durchfuehrung
DE102006061752A1 (de) Roboter und Verfahren zum Programmieren eines Roboters
EP2218556B1 (de) Steuerung und Steuerungsverfahren für einen Manipulator
DE102018114445B4 (de) Vorrichtung und Verfahren zur Einschätzung einer Position des Schwerpunkts eines Roboters
EP3037905B1 (de) Vorrichtung und verfahren zum aufnehmen von positionen
DE102018112370B4 (de) Richtungsabhängige Kollisionsdetektion für einen Robotermanipulator
DE102009007181A1 (de) Verfahren zum Abfahren einer vorgegebenen Bahn durch einen Manipulator, sowie Steuervorrichtung zur Durchführung eines solchen Verfahrens
DE102019118260B3 (de) Taktile Rückmeldung eines Endeffektors eines Robotermanipulators über verschiedene Orientierungsbereiche
EP2082852B1 (de) Verfahren und Vorrichtung zur Überwachung eines Manipulators
DE102020209866B3 (de) Verfahren und System zum Betreiben eines Roboters
DE102022110140A1 (de) Konforme präsentation der nutzlast durch ein robotersystem mit koordinierten seriellen und parallelen robotern

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