-
Die
vorliegende Erfindung betrifft eine Roboter-Steuervorrichtung zum
Steuern eines Arbeitsroboters, und insbesondere eine Roboter-Steuervorrichtung
mit einer Fehlbewegungserfassungsfunktion.
-
Roboter,
die in Fabriken und dergleichen verwendet werden, machen aufgrund
eines Fehlers einer Hardware-Komponente oder eines Software-Defektes
gelegentlich eine anormale Bewegung; beispielsweise bewegt sich
ein Roboter manchmal mit einer Geschwindigkeit, die über einem
Wert liegt, welcher von einem Programm oder manuell von einem Nutzer
festgelegt wird, oder er bewegt sich zu einer unerwarteten Position.
-
Auf
den Robotern befinden sich Not-Aus-Schalter, aber da auf den neueren
Robotern Hochleistungs-Servomotoren befestigt sind, kann man einen
Roboter, der sich anormal bewegt, schwerlich sofort anhalten, indem
man bloß den Not-Aus-Schalter drückt. Zudem
neigt ein Operator dazu, den Not-Aus-Schalter zu spät zu drücken.
-
Vor
diesem Hintergrund wurde ein Verfahren vorgeschlagen, bei dem ein
Bewegungsbetrag von jeder Achse eines Roboters regelmäßig durch
eine Roboter-Steuervorrichtung überwacht
wird, und wenn der Bewegungsbetrag einen festgelegten Grenzwert übersteigt,
wird der Roboter unabhängig vom
Not-Aus-Schalter
automatisch angehalten. Dieses Verfahren birgt jedoch die folgenden
Probleme.
-
Bei
der Durchführung
einer Wegsteuerung auf einer geraden Linie oder auf einem Kreisbogen unterscheiden
sich die Geschwindigkeiten der Achsen natürlich stark voneinander, und
insbesondere bei einer Steuerung für einen Weg, der nahe einem einzelnen
Punkt vorbeigeht, ist oft die maximale Geschwindigkeit vonnöten, damit
eine Handgelenksachse usw. eine festgelegte Orientierung des Roboters
beibehält.
Daher ist es nicht geeignet, einen unteren Grenzwert für die Erfassung
anormaler Bewegungen einzustellen, damit eine Fehlerfassung anormaler
Bewegungen umgangen wird. Selbst wenn eine unerwartete Bewegung
tatsächlich
erfolgt, kann mithin eine solche Bewegung gelegentlich nicht als anormal
eingestuft werden, und der Roboter kann nicht automatisch gestoppt
werden.
-
Tritt
bezüglich
einer Position eines in Bewegung befindlichen Roboters eine Anomalie
auf, beispielsweise wenn die Roboterposition von einem einprogrammierten
Weg oder einer manuellen Vorschub-(Handvorschub)-Richtung erheblich
abweicht, kann eine solche Anomalie mit dem vorstehenden Verfahren
zudem nicht erfasst werden, damit der Roboter automatisch angehalten
wird, so lange die Geschwindigkeiten der jeweiligen Achsen nicht
anormal sind.
-
Somit
kann die herkömmliche
Technik nicht hinreichend sofort und sicher auf die Roboterbewegungen
(anormaler Zustand der Bewegung oder anormale Position in der Bewegung)
reagieren, so dass Probleme bei der Gewährleistung der Sicherheit für den Operator
und der Schutz der Außenausrichtung
aufkommen.
-
Eine
weitere Roboter-Steuervorrichtung wie sie im vorcharakterisierenden
Teil des beigefügten Anspruchs
1 hervorgehoben ist, ist in
JP-A-04
340 196 offenbart. Wiederum ist der Arbeitsvorgang dieser
Roboter-Steuervorrichtung nachteilig eingeschränkt.
-
Eine
Aufgabe der vorliegenden Erfindung ist die Bereitstellung einer
Roboter-Steuervorrichtung, die
sofort und automatisch eine Anomalie erfassen und einen Roboter
anhalten kann, so dass eine Gefahr umgangen wird, wenn sich der
Roboterendeffektor mit einer anormalen Geschwindigkeit, einer anormalen
Beschleunigung oder auf einem anormalen Bewegungsweg im Raum bewegt,
wenn der Roboter in einem Programm-Playback-Betriebsmodus oder in einem
manuellen Betriebsmodus, wie einem Handvorschub arbeitet.
-
Gemäß der vorliegenden
Erfindung wird eine Roboter-Steuervorrichtung bereitgestellt zur
Steuerung eines Roboters, der gemäß einem Bewegungsprogramm über eine
Anzahl von Roboterachsen an getrieben wird, wobei jede Roboterachse
einen Positionsdetektor aufweist, umfassend: eine Fehlbewegungserfassungsindex-Erzeugungsvorrichtung
zur Erzeugung eines Fehlbewegungserfassungsindexes zum Erfassen
einer anormalen Bewegung eines Punktes, der eine Position des Roboters
im Raum anzeigt, auf der Basis aktueller Positionsdaten der Roboterachsen,
die von Ausgaben der Positionsdetektoren für die Roboterachsen erhalten
werden, während
sich der Roboter bewegt; und Bestimmungseinrichtungen zum Vergleich
des Fehlbewegungserfassungsindexes mit einer festgelegten Fehlbewegungserfassungsreferenz
und zum Erfassen einer anormalen Bewegung, wenn der Fehlbewegungserfassungsindex
größer ist
als die festgelegte Fehlbewegungserfassungsreferenz; wobei die Roboter-Steuervorrichtung
gekennzeichnet ist durch:
eine Vorrichtung zur Bestimmung des
Bewegungstyps, mit der bestimmt wird, ob ein durch das Bewegungsprogramm
vorgeschriebener Bewegungstyp eine Weg-Steuerbewegung ist, die eine Wegsteuerung
eines am Roboter befestigten Endeffektors benötigt, oder eine entsprechende
Achsenbewegung, die keine Wegsteuerung des Endeffektors benötigt;
eine
Vorrichtung zum Einstellen der Fehlbewegungserfassungsreferenz,
mit der die festgelegte Fehlbewegungserfassungsreferenz für den Endeffektor,
für den
durch die Vorrichtung zur Bestimmung des Bewegungstyps bestimmten
Bewegungstyp, auf der Basis der Daten im Bewegungsprogramm eingestellt wird;
wobei:
die
Vorrichtung zum Erzeugen eines Fehlbewegungserfassungsindexes so
angeordnet ist, dass sie einen Fehlbewegungserfassungsindex erzeugt,
mit dem eine anormale Bewegung des Endeffektors für den durch
die Vorrichtung zur Bestimmung des Bewegungstyps bestimmten Bewegungstyp
erfasst wird;
die Vorrichtung zum Bestimmen einer anormalen
Bewegung so angeordnet ist, dass der erzeugte Fehlbewegungserfassungsindex
des Endeffektors mit der festgelegten Fehlbewegungserfassungsreferenz
für den
Endeffektor verglichen wird, und eine anormale Bewegung des Endeffektors
bestimmt wird, wenn dessen Fehlbewegungserfassungsindex größer ist als
die eingestellte festgelegte Fehlbewegungserfassungsreferenz für den Endeeffektor;
und
eine Anhaltevorrichtung zum sofortigen Anhalten der Bewegung
des Roboters, wenn eine anormale Bewegung des Endeffektors durch
die Fehlbewegungserfassungsvorrichtung erfasst wird.
-
Eine
anormale Bewegung, die mit der erfindungsgemäßen Roboter-Steuervorrichtung erfasst werden kann,
ist die anormale Bewegung des Endeffektors während eines Programm-Playbacks
oder eines manuellen Vorschub-(Handvorschub)-Betriebs, und
die anormalen Bewegungen werden in die nachstehend aufgeführten Bewegungsanomalie-Typen unterteilt.
Die Anomalien 1 bis 4 können
gemeinsam als "Bewegungsanomalie" bezeichnet werden
und die Anomalie 5 als "Positionsanomalie". Der in dieser Patentbeschreibung
verwendete Begriff "Punkt,
der die Roboterposition veranschaulicht" veranschaulicht einen Punkt, der in
einer festen Beziehung zu den Endeffektoren, wie einer Roboterhand,
einem Schweißbrenner
oder dergleichen, eingestellt ist.
-
Der
Punkt, der die Roboterposition veranschaulicht, ist gewöhnlich der
Ursprung (Werkzeugmittelpunkt) eines Koordinatensystems, das in
Bezug auf einen zu befestigenden Endeffektor eingestellt wird, oder
der Ursprung eines Bildschirm-Koordinatensystems,
das in Bezug auf eine Werkzeugbefestigungsfläche eingestellt wird. In der
folgenden Beschreibung wird der Punkt, der die Roboterposition veranschaulicht,
der Einfachheit halber am Werkzeugmittelpunkt (TOP) eingestellt,
jedoch kann er an einer anderen Stelle des Endeffektors eingestellt werden.
-
(Anomalie
1) Anomalie der Bewegungsgeschwindigkeit des Werkzeugmittelpunktes:
Der Werkzeugmittelpunkt bewegt sich mit einer Geschwindigkeit, die
eine Grenzgeschwindigkeit übersteigt.
-
(Anomalie
2) Anomalie der Beschleunigung des Werkzeugmittelpunktes: Der Werkzeugmittelpunkt
bewegt sich mit einer Geschwindigkeit, die eine Grenzbeschleunigung übersteigt.
-
(Anomalie
3) Anomalie der Winkelgeschwindigkeit der Handgelenksachse: Die
Handgelenksachse bewegt sich mit einer Winkelgeschwindigkeit, die eine
Grenzwinkelgeschwindigkeit übersteigt.
Dies ist beispielsweise ein Zustand, bei dem sich die Endachse eines
6-Achsenroboters mit einer anormal hohen Geschwindigkeit dreht.
-
(Anomalie
4) Anomalie der Bewegungsrichtung des Werkzeugmittelpunktes: Während der
Wegsteuerung bewegt sich der Werkzeugmittelpunkt über eine
Grenze in einer Richtung weg von einer Richtung eines Bewegungsablaufs,
der von den Positionsdaten in dem Programm berechnet wird.
-
(Anomalie
5) Anomalie der bewegten Position des Werkzeugsmittelpunktes: Während der
Wegsteuerung bewegt sich der Werkzeugmittelpunkt über eine
Grenze zu einer Position abseits von dem Bewegungsablauf, der von
den Positionsdaten in dem Programm berechnet wird.
-
In
einer bevorzugten Ausführungsform
der vorliegenden Erfindung können
all diese Bewegungsanomalien erfasst werden, aber einige der Anomalien
allein können
je nach den Umständen
erfasst werden. Es können
beispielsweise nur die Anomalien 1 und 5 erfasst werden, und sogar
in diesem Fall können
viele anormale Roboterbewegungen erfasst werden.
-
Der
Fehlbewegungserfassungsindex wird in der Steuervorrichtung erzeugt,
damit die zu erfassende anormale Bewegung abgeglichen wird, und
wird mit einem entsprechenden Fehlbewegungserfassungskriterium verglichen,
und wenn eine anormale Bewegung erfasst wird, wird ein Verfahren
zum Anhalten des Roboters ausgeführt.
Das Fehlbewegungserfassungskriterium wird vorzugsweise automatisch
in der Steuervorrichtung gemäß den Daten
in einem eingelernten Bewegungsprogramm oder manuellen Vorschubbedingungen
erzeugt.
-
Kurze Beschreibung der Zeichnungen
-
Es
zeigt:
-
1,
ein Blockschema, beispielhaft die Konfiguration prinzipieller Teile
eines Robotersystems, einschließlich
einer Roboter-Steuervorrichtung, bei der die Erfindung angewendet
wird;
-
2,
ein Fließschema,
einen Überblick über ein
Verfahren I, das in einer Roboter-Steuervorrichtung gemäß einer
erfindungsgemäßen Ausführungsform
ausgeführt
werden soll;
-
3,
ein Fließschema,
einen Überblick über ein
Verfahren II, das in einer Roboter-Steuervorrichtung gemäß einer
erfindungsgemäßen Ausführungsform
ausgeführt
werden soll;
-
4,
ein Fließschema,
einen Überblick über ein
Verfahren III, das in einer Roboter-Steuervorrichtung gemäß einer
erfindungsgemäßen Ausführungsform
ausgeführt
werden soll;
-
5,
ein Fließschema,
einen Überblick über ein
Verfahren IV, das in einer Roboter-Steuervorrichtung gemäß einer
erfindungsgemäßen Ausführungsform
ausgeführt
werden soll;
-
6,
ein Fließschema,
einen Überblick über ein
Verfahren V, das in einer Roboter-Steuervorrichtung gemäß einer
erfindungsgemäßen Ausführungsform
ausgeführt
werden soll;
-
7 ein
Schaubild bezüglich
Verfahren III; und
-
8 ein
Schaubild bezüglich
Verfahren IV.
-
Die 1 ist
ein Blockschema, das die Hardware-Konfiguration prinzipieller Teile
eines Robotersystems veranschaulicht, einschließlich einer Roboter-Steuervorrichtung,
bei der die vorliegende Erfindung angewendet wird. Wie in der 1 gezeigt, steuert
eine Roboter-Steuervorrichtung 30 einen Roboter RB mit
einer Hand 10 als Endeffektor, der an einem distalen Endabschnitt
1 seines Arms befestigt ist. Ein Werkzeugmittelpunkt TOP, der ein
Punkt ist, der die Position des Endeffektors (Hand 10)
veranschaulicht, wird in der Mitte von Hand 10 eingestellt.
-
Die
Roboter-Steuervorrichtung 30 umfasst eine Wirts-CPU 31,
einen Shared RAM 32, eine Servo-CPU 33, Servoverstärker 34,
einen Speicher 35, eine Schnittstelle 36 für eine Programmierkonsole, und
Eingabe/Ausgabe-Geräte 38 für allgemeine
externe Geräte.
Der Speicher 35 umfasst ROM-Speichersystemprogramme, einen RAM zum
vorübergehenden
Speichern von Daten und einen nicht-flüchtigen Speicher, der verschiedene
Programmdaten speichert, die Systemvorgänge (Bewegungen des Roboters
RB) definieren.
-
Eine
Programmierkonsole 37, die mit der Programmierkonsolen-Schnittstelle 36 verbunden
ist, wird zur Eingabe, Modifikation und Registrierung von Programmdaten
und zur manuellen Eingabe eines manuellen Vorschub-(Handvorschub-)Befehls,
eines Playback-Betriebsbefehls, usw. verwendet. An die Eingabe-
bzw. Ausgabe-Geräte 38 für die externen Geräte sind
eine mechanische Bremse für
den Roboter RB, sowie verschiedene externe Geräte (beispielsweise Schweiß-Stromversorgungseinheit)
angeschlossen, die verschiedene vorgesehene Anwendungen abgleichen.
-
Während der
Ausführung
des Playbackbetriebs oder des manuellen Vorschub-(Handvorschub)-Betriebs erzeugt die
Wirts-CPU 31 Bewegungsbefehle für die Servomotoren SM, die
mit den jeweiligen Achsen des Roboters RB assoziiert sind, und gibt
die Befehle an den Shared RAM 32 aus. Die Servo-CPU 33 liest
die Befehle in kurzen Zeitintervallen aus, und führt auf der Basis der Positionssignale (Feedbacksignale),
die von den Positionsdetektoren (Impulscodierer-PCs) der jeweiligen
Roboterachsen zugeführt
werden, eine Servoverarbeitung aus und gibt aktuelle Befehle an
die Servoverstärker 34 der jeweiligen
Achsen aus, damit die Servomotoren der jeweiligen Roboterachsen
angetrieben werden. Auf der Basis der Positionssignale (Feedbacksignale), die
von den Impulscodierer-PCs der jeweiligen Roboterachsen zugeführt werden,
schreibt die Servo-CPU 33 regelmäßig die aktuellen Positionen
der jeweiligen Roboterachsen in den Shared RAM 32. Der
Servoverstärker 34,
der Servomotor SM und der Impulscodierer-PC, die in der 1 gezeigt
sind, sind bloß mit einer
Roboterachse assoziiert, und diejenigen mit den anderen Achsen sind
in der Figur weggelassen.
-
Die
oben beschriebene Konfiguration und Funktionen unterscheiden sich
nicht besonders von denen eines gewöhnlichen Robotersystems. Diese Ausführungsform
unterscheidet sich von herkömmlichen
Systemen insofern, als der Speicher 35 darin Programmdaten
speichert, die ein Verfahren zum Erfassen einer anormalen Bewegung
des Roboters und Anhalten des Roboters erfassen und zugehörige Stellwerte.
-
Die 2 bis 6 sind
Fließschemata,
die die Verarbeitungen zusammenfassen, welche von der Roboter-Steuervorrichtung 30 ausgeführt werden,
auf die die vorliegende Erfindung angewendet wird. Im Folgenden
werden einzelne Verfahren anhand der 2 bis 6 sowie 7 und 8 diesbezüglich beschrieben.
-
[Verfahren I (2)]
-
Dieses
Verfahren erzeugt intern Kriterien für eine Fehlbewegungserfassung
gemäß Daten
in einem einprogrammierten Bewegungsprogramm und festgelegten Override-Bedingungen,
und die Zusammenhänge
der einzelnen Schritte des Verfahrens sind nachstehend erläutert. Das
Verfahren I dieser Ausführungsform
wird jedes Mal dann ausgeführt, wenn
eine Bewegungsanweisungsfeststellung in dem Bewegungsprogramm nach
einem Playback-Betriebsstartbefehl ausgelesen wird. Wird jedoch
ein Bewegungsprogramm festgelegt, kann eine Fehlbewegungserfassung,
die dieses festgelegte Bewegungsprogramm abgleicht, vorher erzeugt
werden, außer
einem Playback-Betriebsstartbefehl.
-
(S4):
Ein Datenblock wird aus dem Bewegungsprogramm ausgelesen.
-
(S2):
Wenn der festgelegte Bewegungstyp eine entsprechende Achsenbewegung
ist, wird der Fluss bei Schritt 3 fortgesetzt; wenn nicht, wird
der Fluss bei Schritt 4 fortgesetzt.
-
(S3):
Gemäß der in
dem Bewegungsprogramm festgelegten Geschwindigkeit und einem eingestellten
Override-Wert wird eine zulässige
Geschwindigkeit Vaj für
jede Achse (jte Achse) berechnet und eingestellt. Die zulässige Geschwindigkeit Vaj
kann gemeinsam für
einige oder alle Achsen eingestellt werden. Vorausgesetzt die einprogramierte Geschwindigkeit
ist Vpr und der Override-Wert ist α, so wird die zulässige Geschwindigkeit
Vaj beispielsweise erhalten durch Multiplizieren von Vbj mit einem Koeffizient
k1, der größer als "1" (beispielsweise "1,2")
ist, wobei Vbj ein Maximalwert der Achsengeschwindigkeit ist, berechnet
auf der Basis von αVPR.
-
(S4):
Wenn der angegebene Bewegungstyp kreisbogenförmig ist, wird der Fluss bei
Schritt S5 fortgesetzt; wenn nicht, wird der Fluss bei Schritt S8 fortgesetzt.
-
(S5):
Gemäß der in
dem Bewegungsprogramm angegebenen Geschwindigkeit und einem eingestellten
Override-Wert, wird eine zulässige
Geschwindigkeit Va1 für
den Endeffektor berechnet und eingestellt. Vorausgesetzt, die programmierte
Geschwindigkeit ist Vpr und der Override-Wert ist α, wird die
zulässige
Geschwindigkeit Va1 beispielsweise erhalten durch Multiplikation
von Vc1 mit einem Koeffizient k2, der größer als "1" (beispielsweise "1,2") ist, wobei Vc1
eine Maximalgeschwindigkeit des Endeffektors ist, berechnet auf
der Basis von αVPR.
-
(S6):
Eine zulässige
Beschleunigung Aa1 für den
Endeffektor wird aus den voreingestellten Parametern gelesen und
eingestellt.
-
(S7):
Eine zulässige
Geschwindigkeit Vaj für jede
Achse (jte Achse) wird berechnet und eingestellt. Die zulässige Geschwindigkeit
wird berechnet auf der Basis der aktuellen Positionsdaten jeder
Achse (die aus dem Shared RAM 32 gelesen werden) und Jacobi-Daten.
Im Stand der Technik weiß man, dass
die Jacobi-Daten zur Berechnung einer inversen Transformation zum
Erzeugen von Bewegungsbefehlen für
die jeweiligen Achsen des Roboters wesentlich sind und vor der Roboter-Steuervorrichtung gelehrt
werden.
-
(S8):
Gemäß der in
dem Bewegungsprogramm festgelegten Geschwindigkeit und einem eingestellten
Override-Wert wird eine zulässige
Geschwindigkeit Va1 für
den Endeeffektor berechnet und eingestellt. Vorausgesetzt, die programmierte Geschwindigkeit
ist Vpr und der Override-Wert ist α, wird die zulässige Geschwindigkeit
Va1 beispielsweise erhalten durch Multiplikation von Vd1 mit einem Koeffizient
k3, der größer als "1" (beispielsweise "1,2")
ist, wobei Vd1 ein Endeffektorgeschwindigkeits-Wert, berechnet auf
der Basis von αVPr
ist.
-
(S9):
Eine zulässige
Beschleunigung Aal für den
Endeffektor wird aus voreingestellten Parametern ausgelesen und
eingestellt.
-
(S10):
Eine zulässige
Geschwindigkeit Vaj für
jede Achse (jte Achse) wird berechnet und eingestellt. Die zulässige Geschwindigkeit
Vaj wird berechnet auf der Basis der aktuellen Positionsdaten jeder Achse
(ausgelesen aus dem Shared RAM 32) und den Jacobi-Daten,
wie in Schritt S7.
-
(S11):
Ein Geschwindigkeitsvektor-Fehlerwinkel-Grenzwert Kav für den Endeffektor
wird aus vorgegebenen Parametern gelesen und eingestellt.
-
(S12):
Ein zulässiger
Abstandsgrenzwert D1 für
den Endeffektor wird aus den vorgegebenen Parametern gelesen und
eingestellt. Der zulässige
Abstandsgrenzwert D1 ist ein Grenzwert für den Betrag der Abweichung
der Position des Endeffektors (Position des Werkzeugmittelpunktes)
von einem einprogrammierten Wert.
-
(S13):
Es wird zwischen einem einprogrammierten Weg eines aktuellen Zyklus
und einem einprogrammierten Weg eines unmittelbar vorangehenden
Zyklus verglichen, so dass man bestimmt, ob die aktuelle Position
an einer Ecke ist oder nicht. Ist der Schnittwinkel der beiden einprogrammierten
Wege größer als
ein vorgegebener Schwellenwinkel (beispielsweise 30°), wird beispielsweise
bestimmt, dass die aktuelle Position auf einer Ecke ist. Da sich
zwei oder mehrere Bewegungen an einer Ecke überlappen, kann alternativ
ein Überlappen
von zwei oder mehreren Bewegungen auf Software-Basis erfasst werden,
damit eine Ecke erfasst wird. Nur wenn es bestimmt wird, dass sich
die aktuelle Position auf einer Ecke befindet, wird Schritt S14
ausgeführt.
-
(S14):
Ein zulässiger
Abstandsgrenzwert Dcorner und ein Geschwindigkeitsvektor-Fehlergrenzwert
Kcorner für
die Ecke werden eingestellt. Im Allgemeinen wird Dcorner als Inkrement
zu D1 eingestellt, und Kcorner wird als Inkrement zu Kav eingestellt.
-
Die
Werte von Dcorner und Kcorner können entweder
variabel von Bedingungen, wie Geschwindigkeit, Eckwinkel, usw. abhängen oder
fest sein, damit das Volumen der Berechnung reduziert wird.
-
In
dem vorstehend beschriebenen Verfahren I werden Kriterien zum Erfassen
verschiedener anormaler Bewegungen des Roboters gemäß dem Bewegungstyp
eingestellt, der in einem betroffenen Programmierintervall festgelegt
wird. Der Zustand, in dem solche Einstellungen beendet werden, wird
als Zustand A bezeichnet. Man beachte, dass das Verfahren I ausgeführt wird,
während
der Roboter in Bewegung ist (in der Nähe des Endes eines vorher programmierten
Wegs) außer
bei Start des Roboters. Berücksichtigt
man dies, werden die Verfahren II bis IV zur Erfassung der Anomalie
in Bewegung beschrieben.
-
[Verfahren II (3)]
-
Dieses
Verfahren ist Teil eines Verfahrens zum Erfassen einer anormalen
Bewegung durch Verwendung der Fehlbewegungserfassungskriterien,
die in dem Verfahren I erzeugt werden. Die Schritte in dem Fließschema
sind unter Berücksichtigung
der Verfahrensabfolge bei Start des Roboters nummeriert, und der
Inhalt davon ist hier in Übereinstimmung mit
der Verfahrensabfolge erläutert.
-
(T1):
Auf der Basis der Differenz zwischen Positionsdaten, die aus dem
Shared Speicher RAM 32 bei dem vorhergehenden Zyklus gelesen
werden, und den Positionsdaten, die aus dem Shared RAM 32 im
aktuellen Zyklus gelesen werden, wird eine aktuelle Bewegungsgeschwindigkeit
V1 des Endeffektors berechnet.
-
(T2):
Wenn der festgelegte Bewegungstyp die jeweilige Achsenbewegung ist,
wird der Fluss bei einem Verarbeitungszyklus (später beschrieben) fortgesetzt,
der mit B bezeichnet ist; wenn nicht, wird der Fluss bei Schritt
T3 fortgesetzt.
-
(T3):
Die aktuelle Geschwindigkeit V1 des Endeffektors wird mit der zulässigen Geschwindigkeit (Grenzwert)
Va1 verglichen, die in Verfahren I eingestellt wird. Ist die Erstere
größer als
die Letztere, wird der Fluss bei einem Verfahren (Roboteranhalteverfahren,
wie später
beschrieben) fortgesetzt, das mit D markiert ist; wenn nicht, wird
der Fluss bei Schritt T4 fortgesetzt.
-
(T4):
Auf der Basis der Differenz zwischen einer Bewegungsgeschwindigkeit
des Endeffektors, die im vorhergehenden Zyklus berechnet wird, und derjenigen,
die im aktuellen Zyklus berechnet wird, wird eine aktuelle Beschleunigung
A1 des Endeffektors berechnet.
-
(T5):
Die aktuelle Beschleunigung A1 des Endeffektors wird mit der zulässigen Beschleunigung (Grenzwert)
Aal verglichen, die in Verfahren I eingestellt wird. Ist die Erstere
größer als
die Letztere, wird der Fluss bei dem Verfahren (Roboteranhalteverfahren,
das später
beschrieben wird) fortgesetzt, das mit D bezeichnet wird; wenn nicht,
wird der Fluss bei dem Verfahrenszykus (später beschrieben) fortgesetzt,
der mit B bezeichnet wird.
-
(T6):
In diesem Schritt, der nach dem Eintritt in ein mit E bezeichnetes
(später
beschrieben) Stadium startet, wird ein Zeitraum ΔT, äquivalent zu einem ITP (Berechnungszeitraum),
gemessen, und dann wird der Fluss bei Schritt T7 fortgesetzt.
-
(T7):
Ist der Roboter in Bewegung, wird der Fluss bei Schritt T8 fortgesetzt.
Ist der Roboter nicht in Bewegung, kehrt der Fluss zurück zu Schritt
T6, und wartet auf einen weiteren Berechnungszeitraum.
-
(T8):
Die Positionsdaten der jeweiligen Achsen der Motoren werden aus
dem Shared RAM 32 gelesen, und auf der Basis der gelesenen
Daten wird die Position (einschließlich der Orientierung) L1
des Endeffektors aus einer Roboterreferenzposition berechnet. Die
Roboterreferenzposition ist beispielsweise der Ursprung eines Basiskoordinatensystems, das
in Bezug auf den Roboter eingestellt wird. L1 kann erhalten werden
durch Berechnungen der Vorwärts-Transformationen
in Bezug auf die jeweiligen Achsenpositionen und auf der Basis der
eingestellten Daten eines Werkzeugkoordinatensystems.
-
(T9):
Positionsdaten des Endeffektors; Winkeldaten der jeweiligen Achsen
des Roboters und Beschleunigungsdaten des Endeffektors, die jeweils im
Speicher in dem vorhergehenden Zyklus gespeichert sind, werden jeweils
aus dem Speicher gelesen, und der Fluss wird bei Schritt T1 fortgesetzt. Schritt
T1 und die nachfolgenden Schritte, die dem Schritt T9 folgen, werden
diesmal auf der Basis der letzten Ergebnisse ausgeführt, die
in dem Verfahren I erhalten werden.
-
[Verfahren III (4 & 7)]
-
Dieses
Verfahren ist ein Verfahrenszyklus, der von einem Zustand B in dem
Verfahren II gestartet wird. Der Schritt M10 zum Anhalten des Roboters kann
jedoch auf dem Weg mit der Bezeichnung D begonnen werden.
-
(M1):
Auf der Basis der Differenz zwischen den Positionsdaten von jeder
Achse, die aus dem Shared RAM 32 im vorhergehenden Zyklus
ausgelesen werden, und denjenigen, die aus dem Shared RAM 32 in
dem aktuellen Zyklus ausgelesen werden, wird eine aktuelle Geschwindigkeit
Vj jeder Achse berechnet.
-
(M2):
Bei jeder der Achsen wird die aktuelle Geschwindigkeit Vj mit der
zulässigen
Achsengeschwindigkeit (Grenzwert) Vaj verglichen, die in Verfahren
I eingestellt wird. Ist die Erstere größer als die Letztere, wird
der Fluss bei Schritt M10 fortgesetzt, so dass der Roboter angehalten
wird; wenn nicht, wird der Fluss bei Schritt M3 fortgesetzt.
-
(M3):
Ist der spezifizierte Bewegungstyp eine geradlinige Bewegung, wird
der Fluss bei Schritt M4 fortgesetzt; wenn nicht, wird der Fluss
bei einem Verarbeitungszyklus (der später beschrieben wird) fortgesetzt,
der mit C bezeichnet wird.
-
(M4):
Auf der Basis der Positionsdaten der Start- und Endpunkte A und
B, die in der programmierten Bewegungsanweisung festgelegt sind,
wird ein Referenzgeschwindigkeitsvektor Ha (standardisiert als Einheitsvektor)
vom Startpunkt zum Endpunkt, wie in der 7 gezeigt,
berechnet.
-
(M5):
Auf der Basis der Differenz zwischen der Endeffektorposition, berechnet
aus den Positionsdaten der jeweiligen Achsen, die aus dem Shared RAM 32 im
vorhergehenden Zyklus ausgelesen werden und derjenigen, die aus
den Positionsdaten der jeweiligen Achsen berechnet wird, die aus
dem gemeinsamen RAM 32 im aktuellen Zyklus ausgelesen werden,
wird ein aktueller Geschwindigkeitsvektor Hv (standardisiert als
Einheitsvektor), wie in der 7 gezeigt,
berechnet.
-
(M6):
Auf der Basis des äußeren Produkts der
Vektoren Ha und Hv, wird ein Winkel Kv zwischen den Vektoren Ha
und Hv berechnet, wie in 7 gezeigt.
-
(M7):
Es wird bestimmt, ob der Roboter aktuell eine Ecke (in der Nähe einer
Ecke) passiert. Ist beispielsweise der Abstand von der Position,
bei der die aktuelle Position auf einer Ecke in Schritt S13 in Verfahren
I bestimmt wurde, kleiner gleich einem festgelegten kleinen Wert,
wird bestimmt, dass der Roboter aktuell eine Ecke passiert. Passiert
der Roboter Bestimmungen zufolge eine Ecke, wird der Fluss bei Schritt
M8 fortgesetzt; wenn nicht wird der Fluss bei Schritt M9 fortgesetzt.
-
(M8):
Der Grenzwinkel Kav wird durch Hinzuaddieren von Kcorner, das in
dem Verfahren I eingestellt wird, aktualisiert.
-
(M9):
Der aktuelle Wert Kv wird mit dem Grenzwinkel Kav verglichen. Wenn
der Vorherige größer ist
als der Letztere wird der Fluss bei Schritt M10 fortgesetzt, damit
der Roboter angehalten wird; wenn nicht wird der Fluss bei dem mit
C markierten Verfahren fortgesetzt.
-
(M10):
Dieses Verfahren wird ausgeführt, wenn
eine anormale Bewegung des Roboters erfasst wird, wobei ein Alarmsignal
ausgegeben wird, die mechanische Bremse in Betrieb gesetzt wird
und die Servostromzufuhr abgeschaltet wird.
-
[Verfahren IV (5 & 8)]
-
Dieses
Verfahren ist ein Verarbeitungszyklus und beginnt bei einem Zustand
C in Verfahren III.
-
(F1):
Wenn der Bewegungstyp eine geradlinige Bewegung ist, wird der Fluss
bei Schritt F2 fortgesetzt, und wenn nicht (d. h. bei einer kreisbogenförmigen Bewegung)
wird der Fluss bei Schritt F7 fortgesetzt.
-
(F2):
Positionsdaten der Start- und Endpunkte A und B, die in der programmierten
Bewegungsanweisung festgelegt werden, werden ausgelesen.
-
(F3):
Wie in der 8 gezeigt, wird ein Liniensegment
Lac vom Startpunkt A und der aktuellen Position C erhalten; ein
Liniensegment Lbc wird vom Endpunkt B und der aktuellen Position
C erhalten, und auf der Basis der so erhaltenen Liniensegmente wird
ein Liniensegment Lditt, senkrecht zum Liniensegment AB erhalten.
-
(F4):
Es wird bestimmt, ob der Roboter aktuell eine Ecke passiert (in
der Nähe
einer Ecke), und zwar auf eine Weise, ähnlich dem Schritt M7 im Verfahren
III: Wenn der Roboter aktuell eine Ecke (in der Nähe einer
Ecke) passiert, wird der Fluss bei Schritt F5 fortgesetzt; wenn
nicht wird der Fluss bei Schritt F6 fortgesetzt.
-
(F5):
Der Grenzabstand D1 wird aktualisiert durch Hinzuaddieren von Dcorner,
das in Verfahren I eingestellt wird.
-
(F6):
Die aktuelle Länge
von Lditt wird mit dem Grenzabstand D1 verglichen. Ist die Erstere
länger
als die Letztere, wird der Fluss bei Schritt M10 fortgesetzt, so
dass der Roboter angehalten wird; wenn nicht, wird der Fluss bei
Schritt F7 fortgesetzt.
-
(F7):
Die aktuellen Positionsdaten L1 des distalen Endes des Roboters
(erhalten in Schritt T8 im Verfahren II), die Winkeldaten Vj der
jeweiligen Achsen, die aktuelle Geschwindigkeit V1, und die aktuelle
Beschleunigung A1 werden in dem Speicher (der mit F markiert ist)
gespeichert, und der Fluss wird bei Stufe mit der Bezeichnung E
fortgesetzt. Wie oben erwähnt,
verläuft
der Fluss von der Stufe mit der Bezeichnung E weiter zu Schritt
T6 in Verfahren II.
-
Das
Vorhergehende beschreibt die Verfahren, die in der Roboter-Steuervorrichtung
während eines
Programm-Playbackbetriebs ausgeführt
werden. In dem Ereignis, dass einer der vorstehend genannten verschiedenen
Typen von Fehlbewegungen auftreten, wird eine solche Anomalie sofort
von den oben beschriebenen Verfahren erfasst, und der Roboter hält an, so
dass die Sicherheit gewährleistet
ist.
-
Bei
einem manuellen Vorschubbetrieb kann ein Verfahren V, das im Fließschema
von 6 veranschaulicht ist, als Verfahren ausgeführt werden, das äquivalent
zu Verfahren I ist. Man beachte, dass im Allgemeinen der manuelle
Vorschubbetrieb keine Kreisbogenbewegung vorsieht (Das Ergebnis
der Bestimmung gemäß einer
geraden Linie oder jeweilige Achsen wird im Bewegungstyp-Bestimmungsschritt
ausgegeben).
-
[Verfahren V (6)]
-
Das
Verfahren dient der internen Erzeugung von Fehlbewegungserfassungskriterien
für manuellen
Betrieb gemäß manuellen
Vorschubbedingungen (zugehörige
eingestellte Bedingungen einschließlich manuellem Betriebsmodus,
wie geradliniger Vorschub oder jeweilige Achsenvorschub und manuelle Vorschubgeschwindigkeit,
die durch die Programmierkonsole festgelegt werden, und Override
für die manuelle
Vorschubgeschwindigkeit, usw.), und der Inhalt ihrer einzelnen Schritte
wird nachstehend erläutert.
-
(G1):
Manuelle Vorschubbedingungen werden ausgelesen.
-
(G2):
Wenn die festgelegte Bewegungstypbedingung die jeweilige Achsenbewegung
ist, wird der Fluss bei Schritt G3 fortgesetzt; wenn nicht, wird der
Fluss bei Schritt G4 fortgesetzt.
-
(G3):
Auf der Basis zugehöriger
eingestellter Bedingungen, wie der eingestellten manuellen Vorschubgeschwindigkeit
und einem Override-Wert zur manuellen Vorschubgeschwindigkeit wird
eine zulässige
Geschwindigkeit Vaj für
jede Achse (jte Achse) berechnet und eingestellt. Die zulässige Geschwindigkeit
Vaj kann für
einige oder alle Achsen gemeinsam eingestellt werden. Vorausgesetzt,
die eingestellte manuelle Vorschubgeschwindigkeit ist Vmn und der
Override-Wert ist β,
wird beispielsweise die zulässige
Geschwindigkeit Vaj erhalten durch Multiplikation von Vfj mit einem
Koeffizient k3, der größer als "1" (beispielsweise "1,2")
ist, wobei Vfj ein Maximalwert der Achsengeschwindigkeit ist, berechnet auf
der Basis von βVmn.
-
(G4):
Auf der Basis der zugehörigen
eingestellten Bedingungen, wie der festgelegten manuellen Vorschubgeschwindigkeit
und einem Override-Wert zur manuellen Vorschubgeschwindigkeit wird
eine zulässige
Geschwindigkeit Va1 für
den Endeffektor berechnet und eingestellt. Vorausgesetzt die eingestellte
manuelle Vorschubgeschwindigkeit ist Vmq und der Override-Wert ist γ, wird die
zulässige Geschwindigkeit
Va1 erhalten durch Multiplikation eines Geschwindigkeitswertes,
der berechnet wird auf der Basis von γVmq, mit einem Koeffizient k4,
der größer als "1" (beispielsweise "1,2")
ist.
-
(G5):
Eine zulässige
Beschleunigung Aal für den
Endeffektor wird aus den voreingestellten Parametern gelesen und
eingestellt.
-
(G6):
Eine zulässige
Geschwindigkeit Vaj für jede
Achse (jte Achse) wird berechnet und eingestellt, und zwar auf eine
Weise ähnlich
zu Schritt S10 in dem Verfahren I.
-
(G7):
Ein Geschwindigkeitsvektor-Fehlergrenzwert Kav für den Endeffektor (Wert, eingestellt für den manuellen
Vorschubbetrieb) wird aus den vorgegebenen Parametern ausgelesen
und eingestellt.
-
(G8):
Ein zulässiger
Abstandsgrenzwert D1 für
den Endeffektor (Wert, eingestellt für den manuellen Vorschubbetrieb)
wird aus den vorgegebenen Parametern ausgelesen und eingestellt.
-
Gemäß dem vorstehend
beschriebenen Verfahren V werden Kriterien zum Erfassen verschiedener
anormaler Bedingungen des Roboters gemäß der aktuellen manuellen Vorschubbedingungen
eingestellt. Der Zustand, bei dem diese Einstellungen beendet wurden,
wird als der vorstehend genannte Zustand A angesehen, und die Verfahren
II bis IV werden dann ausgeführt,
wodurch bei dem Fall, dass jeder der vorstehend genannten verschiedenen
Typen von anormalen Bewegungen während
des Handbetriebs erfolgt, eine solche Anomalie sofort erfasst wird
und der Roboter anhält,
so dass Sicherheit gewährleistet
wird.
-
Wenn
erfindungsgemäß der Roboterendeffektor,
der im Programm-Playbackmodus
oder Handbetriebsmodus Bewegungen ausübt, eine anormale Geschwindigkeit,
eine anormale Beschleunigung, eine anormale Orientierungsänderung
oder einen anormalen Bewegungsweg im Raum ausführt, kann eine solche Anomalie
rasch und automatisch erfasst werden, und der Roboter wird angehalten,
so dass eine Gefahr umgangen wird.