DE3210675A1 - Vorrichtung zum dynamischen steuern des werkzeugmittelpunkts eines roboterarms abseits einer vorbestimmten bahn - Google Patents

Vorrichtung zum dynamischen steuern des werkzeugmittelpunkts eines roboterarms abseits einer vorbestimmten bahn

Info

Publication number
DE3210675A1
DE3210675A1 DE19823210675 DE3210675A DE3210675A1 DE 3210675 A1 DE3210675 A1 DE 3210675A1 DE 19823210675 DE19823210675 DE 19823210675 DE 3210675 A DE3210675 A DE 3210675A DE 3210675 A1 DE3210675 A1 DE 3210675A1
Authority
DE
Germany
Prior art keywords
deviation
signals
point
tool center
path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19823210675
Other languages
English (en)
Other versions
DE3210675C2 (de
Inventor
John Gerald 45230 Cincinnati Ohio Holmes
Brian John 45213 Cincinnati Ohio Resnick
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.)
Milacron Inc
Original Assignee
Cincinnati Milacron Inc 45209 Cincinnati Ohio
Milacron Inc
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 Cincinnati Milacron Inc 45209 Cincinnati Ohio, Milacron Inc filed Critical Cincinnati Milacron Inc 45209 Cincinnati Ohio
Publication of DE3210675A1 publication Critical patent/DE3210675A1/de
Application granted granted Critical
Publication of DE3210675C2 publication Critical patent/DE3210675C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36417Programmed coarse position, fine position by alignment, follow line, path adaptive
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45135Welding
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45187Printer
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50167Adapting to copying

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Description

22. März 1982
Re/hö Case 8106F
Anmeldern: CINCINNATI MILACRON INC., 4701 Marburg Avenue,
Cincinnati, Ohio 45209/USA
Vorrichtung zum dynamischen Steuern des Werkzeugmittelpunkts eines Roboterarms abseits einer vorbestimmten Bahn.
BESCHREIBUNG
Bei bahngesteuerten computerbetriebenen Roboterarmen
wird die Bahn des mit dem Ende des Roboterarms zusammenhängenden gesteuerten Punktes, beispielsweise des Werkzeugmittelpunktes typischerweise während der Eingabeoder Programmier-Betriebsart bestimmt. Beim Eingabemodus wird eine Anzahl von vorbestimmten Punkten definiert und gespeichert; und während des automatischen Betriebsmodus erzeugt die Robotersteuerung eine vorbestimmte Bahn zwischen den programmierten Punkten. Sobald diese programmierte Bahn einmal definiert ist, ist sie
während des automatischen Betriebsmodus festgelegt und 30
unabänderbar. Es gibt jedoch viele Situationen, in denen es der jeweils vorliegende Prozeß erforderlich macht, daß die Beziehung zwischen dem Roboterarm und dem Werkstück unterschiedlich ist von der Beziehung, die eingegeben worden ist.
S
Beispielsweise beim Nahtschweißen wird die jeweils tatsächliche Nahtstelle von einem Werkstück zum anderen unterschiedlich sein; und die programmierte Bahn wird unpassend sein, um den Werkzeugmittelpunkt entlang der Naht zu steuern, wenn das gleiche Programm zum Schweißen einer Anzahl von Werkstücken verwendet wird. Daraus folgt, daß ein Bedürfnis besteht, daß die programmierte Bahn während der automatischen Betriebsweise modifizierbar ist, d.h. die Beziehung zwischen dem Werkzeugmittelpunkt und dem Werkstück soll zwischen den vorbestimmten Punkten dynamisch eingestellt werden können. Obwohl es zur Lösung dieses Problems viele Techniken gibt, werden im folgenden zwei Variationen offenbart.
Erstens kann die Bedienungsperson mit einem Steuerknüppel ausgerüstet sein, der Vorwärts-, Rückwärts-, Links- und Rechtsbewegungen zuläßt, die entsprechende Abweichungen von der programmierten Bahn nach oben, nach unten, nach links und nach rechts darstellen. Während der automatischen Betriebsweise beobachtet die Bedienungsperson die Beziehung zwischen dem Werkzeugmittelpunkt und der Naht und bewegt den Steuerknüppel, um die erforderlichen Abweichungen von der programmierten Bahn zur Aufrechterhaltung der korrekten Beziehung zwischen dem Werkzeugmittelpunkt und der Naht einzugeben. Die Bewegung des Steuerknüppels erregt Kontakte, die mit der Robotersteuerung verbunden sind. Die Robotersteuerung erfaßt die Kontakt-Eingangssignale und führt eine angemessene Modfizierung der Bahn durch.
In einer anderen Ausführungsform kann eine der Naht folgende Einrichtung am Ende des Roboterarms befestigt sein, der sich entlang der programmierten Bahn bewegt. Sobald diese Einrichtung Abweichungen der Naht von der programmierten Bahn entdeckt, betätigt sie Kontakte,
welche gegenüber der Robotersteuerung die Richtung der Abweichung festlegen. Die Steuerung ändert dann die Bahn so ab, daß sie den nachgewiesenen Abweichungen entspricht. Es bestehen andere Anwendungen, bei denen es wünschenswert sein kann, die relative Lage des Werkzeugmittelpunktes gegenüber dem Werkstück in Abänderung von der programmierten Beziehung zu ändern. Beispielsweise kann es erforderlich sein, daß der Roboter der Kontur einer Kante des Werkstückes zwecks Entgratung oder Entfernung eines Oberzugs folgt. In diesen Situationen kann die Kontur der Kante von einem Werkstück zum anderen variieren.
Es ist daher ein Ziel der vorliegenden Erfindung, eine Einrichtung zu schaffen, mit der die Betriebsperson Änderungen in der Bewegung eines einem Funktionselement eines Roboterarms zugeordneten Werkzeugmittelpunktes während einer automatischen Betriebsweise bewirken kann.
Es ist weiterhin ein Ziel der vorliegenden Erfindung, Änderungen der Bewegung von einer vorbestimmten Bahn zwischen zwei vorprogrammierten Punkten während einer automatischen Betriebsweise zu bewirken.
Es ist ein weiteres Ziel der vorliegenden Erfindung, Bewegungsänderungen von einer vorbestimmten Bahn in Abhängigkeit von Abweichungssignalen, die selbsttätig während einer automatischen Betriebsweise durch eine auf die Werkstückbearbeitung bezogene Vorrichtung erzeugt werden.
Es ist ein weiteres Ziel der vorliegenden Erfindung, in Abhängigkeit von entweder manuell oder selbsttätig erzeugten Abweichungssignalen Abweichungsbahnen zu erzeugen, die von den vorbestimmten Bahnen versetzt sind.
Ί ο
Gemäß einer Ausführungsform der Erfindung wird eine Vorrichtung zum Steuern eines Roboterarms und zum Modifizieren der Bewegung eines Werkzeugmittelpunktes von einer vorbestimmten Bahn zwischen zwei programmierten vorbestimmten Punkten beansprucht. Die vorbestimmten Punkte sind durch gespeicherte Eingangssignale.definiert, die zwei Positionen und eine dazwischenliegende Bahngeschwindigkeit relativ zu einem rechtwinkligen
1^ Koordinatensystem definieren. Der Roboterarm umfaßt ein Unterteil und einen oberen Arm, dessen eines Ende in . mechanischer Verbindung mit dem Unterteil steht und der bezüglich des Unterteils um zwei rechtwinklige Rotationsachsen bewegbar ist. Ein unterer Arm steht mit einem Ende mit dem Werkzeugmittelpunkt in Verbindung und ist mit seinem anderen Ende mit dem anderen Ende des oberen Armes über eine dritte Rotationsachse schwenkbar verbunden. Mit jeder der Drehachsen ist eine Vielzahl von Betätigungsorganen verbunden, und die Drehachsen und " die oberen und unteren Arme definieren ein verallgemeinertes Koordinatensystem, welches von dem rechtwinkligen Koordinatensystem unabhängig ist. Weiterhin ist eine Einrichtung vorgesehen zum Erzeugen eines Abweichungssignals in Abhängigkeit des Nachweises von gewünschten Abweichungen in der Position des Werkzeugmittelpunktes. Die Abweichungssignale befehligen eine Änderung in der Position des Werkzeugmittelpunktes abseits der vorbestimmten Bahn. Eine Robotersteuerung mit einer Einrichtung zum Speichern der Eingangssignale und mit einer servomechanischen Anlage, die mit den Betätigungsorganen zum Bewegen des Werkzeugmittelpunktes
entlang ,der. vorbestimmten Bahn zwischen den beiden vorverbunden ist, .
bestimmten Punkten' führt einen Steuerungsprozeß durch. Zunächst erzeugt die Steuerung in Antwort auf die Eingangssignale einen Satz von intermediären Signalen, die die intermediären Koordinatenwerte, die sich auf
das rechtwinklige Koordinatensystem beziehen, eines intermediären Punktes entlang der vorbestimmten Bahn darstellen. Der Satz von intermediären Signalen wird in Abhängigkeit von dem Abweichungssignal modifiziert, um einen modifizierten Satz von intermediären Signalen zu erzeugen, die einen von der vorbestimmten Bahn entfernten Abweichungspunkt darstellen. Als nächstes erzeugt die Steuerung in Abhängigkeit von den modifizierten intermediären Signalen einen Satz von individuellen Steuersignalen, die verallgemeinerte Koordinatenwerte darstellen, die sich auf das verallgemeinerte Koordinatensystem des Abweichungspunktes beziehen. Die individuellen Steuersignale werden der servomechanisehen Anlage zugeführt, um die Betätigungsorgane in einer koordinierten Art und Weise zu betätigen, so daß der Werkzeugmittelpunkt zu dem Abweichungspunkt bewegt wird. Der Steuerprozeß wiederholt sich, um zu veranlassen, daß sich der Werkzeugmittelpunkt durch eine Serie von von der vorbestimmten Bahn entfernten Abweichungspunkten bewegt.
In der Zeichnung zeigen:
Fig. 1 eine Gesamtansicht des Roboterarms, welche
seine allgemeine Beziehung zu dem Roboter-Steuersystem illustriert,
Fig. 2 ein detailliertes Blöckdiagramm eines Roboter-
Steuersystems zum Steuern des Betriebes des Roboterarmsj diese Figur illustriert das allgemeine Gebiet, auf dem die Erfindung gebraucht werden kann,
Fig. 3 die Beziehung der Abweichungspunkte zu der vorbestimmten Bahn zwischen zwei programmierten vorbestimmten Punkten,
Fig. 4 ein FIußdiagramm, welches die allgemeine Verfahrensweise zum Steuern des Roboterarms illustriert,
Fig. 5a, 5b, 5c und 5d ein detailliertes Flußdiagramm eines Maschinenprogramms für die Verwendung der offenbarten Erfindung zum Erzeugen von von der vorbestimmten Bahn entfernten Punkten,
Fig. 6a, 6b, 6c und 6d ein detailliertes Flußdiagramm eines Maschinenprogramms, welches die spezifischen eßstufen zum Bestimmten von Abweichungs· punkten entsprechend einer ersten alternativen Lösung illustriert,
Fig. 7a und 7b die Drehung eines Werkstückes von der
erwarteten Position und die entsprechenden Bahn-2^ änderungen,
Fig. 8 die geometrischen Beziehungen von Punkten entlang der programmierten vorbestimmten Bahn und der modifizierten vorbestimmten Bahn der zweiten alternativen Lösung und
Fig. 9a, 9b, 9c, 9d und 9e ein detailliertes Flußdiagramm eines Maschinenprogramms zur Durchführung
der zweiten alternativen Lösung.
30
Fig. 1 zeigt die allgemeine Konfiguration eines kommerziell erhältlichen Roboterarms,und Fig. 1 umfaßt ferner ein allgemeines Blockdiagramm einer Robotersteuerung
mit einem Roboterarm. Im hier gemeinten Sinne umfaßt
35
der Ausdruck Roboterarm jede beliebige Maschine, die
Gegenstand des beanspruchten Erfindung sein kann.
321U676
Der dargestellte Roboterarm 10 umfaßt ausschließlich Achsen für eine Drehbewegung. Ein Unterteil 12 umfaßt ein Betätigungsorgan 14, welches über eine Kupplung 16 mit einer drehbar gelagerten Platte 18 verbunden ist. Auf der Platte 18 ist ein Betätigungsorgan 20 unbeweglich befestigt, welches eine zweite Drehachse bildet. Ein oberer Arm 22 ist an einem Arbeitsglied des Betätigungsorgans 20 befestigt. Ein Betätigungsorgan 24 ist am oberen Arm 22 befestigt und sorgt für eine Rotation des unteren Armelementes 26 um das obere Armelement Die Betätigungsorgane 14, 20 und 24 sind ausreichend, um den Werkzeugmittelpunkt zu jedem beliebigen Punkt im Raum seiner Reichweite zu bewegen. Ein Gelenk 27 umfaßt drehbare Betätigungsorgane 28, 30 und 32 und ist mit dem Funktionselement 34 verbunden. Es wird angemerkt, daß die exakte Bauweise der Betätigungsorgane im vorliegenden Zusammenhang nicht bedeutsam ist. Steuerungen für die Betätigungsorgane gemäß dem Stand der Technik sind anwendbar, und zwar unabhängig davon, ob das Betätigungsorgan elektrisch, hydraulisch oder pneumatisch ist.
Die vorbestimmte Bahn ist durch den den Werkzeugmittelpunkt des Funktionselementes in Abhängigkeit von einem Programm durch den Raum bewegenden Roboterarm bestimmt. Der exakte Ort des Werkzeugmittelpunkts wird eine Funktion der Werkzeugausrüstung sein, welche das Funktionselement definiert. Beispielsweise kann der Werkzeug- * mittelpunkt derjenige .Punkt sei, bei dem die Greiferzungen zusammenkommen, beispielsweise Punkt 76, ein Punkt am Ende eines Schneidwerkzeugs, der Punkt, bei dem Punktschweißköpfe zusammenkommen, ein Punkt im Zentrum eines Spritzgebläses aus einer Spritzpistole, der Brennpunkt eines optischen Zeichenkopfes usw. Es wird angemerkt, daß das Funktionselement 34 ein kleines (nicht dargestelltes) Betätigungsorgan zum Erzeugen der
gewünschten Funktion, z.B. des Greifens, aufweist.
Zum Zwecke der Illustration zeigt Fig. 1 als Funktionselement 34 die Kombination einer Lichtbogenschweißdüse 47 mit einem Zuführmechanismus 43 für Lichtbogenschweißdraht und eines Naht-Folge-Sensors 49 zusammen mit einer Sensor-Sendeinheit 51. Wie im folgenden noch näher erklärt werden wird, wird die aus dem Sensor 49 abgeleitete und über die Sendeeinheit 51 der Robotersteuerung
35 übermittelte Information gebraucht (bzw. sie kann dafür gebraucht werden), um die Bewegung des Werkzeugmittelpunktes Abweichunoen der erwarteten Bahn anzupassen.
Innerhalb der Robotersteuerung 35 ist eine Bedieneinheit
36 als Verbindungsglied zu dem Roboterarm vorgesehen. Die Bedieneinheit umfaßt allgemeine Steuerfunktionen und Eingangsgeräte zum Erzeugen von Eingangssignalen, um einen vorbestimmten Arbeitszyklus zu ermöglichen.
Die Bedieneinheit umfaßt Bedienelemente, einen Arbeitszyklus für den Roboterarm zu programmieren oder einzugeben. Die Steuereinheit 38 benutzt Programme und Eingangssignale, um hieraus eine vorbestimmte Bahn zu erzeugen
und erzeugt Steuersignale für eine servomechanische Antriebseinheit 42. Die Antriebseinheit 42 befiehlt den Betätigungsorganen auf dem Roboterarm, den Werkzeugmittelpunkt auf dem Funktionselement entlang der vorbestimmten 3Q Bahn zu bewegen.
Ein Roboterarm und eine Steuerung, wie hier beschrieben,
entspricht dem T industrial robot and control, der von
Cincinnati Milacron Inc. im Handel erhältlich ist.
Weiterhin ist die detaillierte Betriebsweise des Roboterarms in seiner automatisch gesteuerten Betriebsweise im US-Patent Nr. 3 909 600 beschrieben, und ein
JZ I Ub /Ö
Verfahren und eine Vorrichtung, die zur Eingabe eines Programmes für den Roboterarm benutzt werden, sind im US-Patent Nr. 3 920 972 beschrieben.
Fig. 2 ist ein detailliertes Blockdiagramm, welches die grundlegenden Komponenten der im Handel erhältlichen Robotersteuerung, auf die oben Bezug genommen wurde, zeigt. Ein programmierter Computer 40 umfaßt eine Speichereinheit 41, eine Eingabe/Ausgabe-Interface-Einheit 44 und eine zentrale Prozeßeinheit (Zentraleinheit) 46. Diese drei Hauptelemente sind untereinander über eine interne Vielfachleitung 48 verbunden. Steuer-
1(- signale werden über eine externe Vielfachleitung 50, die mit einer Anzahl von peripheren Geräten verbunden ist, zu dem Computer 40 hin und von diesem weggeführt. Zunächst ist ein Lehr-Pendant 52 ein entferntes Programmierwerkzeug, welches von dem Operator benutzt wird, um
2Q das Ende des Roboterarms zu einer Anzahl von gewünschten Positionen während des Lehrprozeßes zu bewegen. Als nächstes bezeichnet die Steuerung I/O 54 eine Anzahl verschiedenartiger Maschinenwerkzeugsignale, die für den Betrieb des Roboterarms notwendig sind. Der ON-LINE-Block 58 für externe Datenübertragung stellt eine Einrichtung dar, die es erlaubt, daß Daten in den Computer 40 von einem externen Datenspeicher auf einer Realzeit-Basis eingegeben werden können, d.h. während der Roboterarm einen Arbeitszyklus durchführt. Eine OFF-LINE-Daten-Speichereinheit 60 ist vorgesehen, um zu ermögliche, daß Programme in den Computer mittels solcher Einrichtungen wie Lochkartenleser, Kassettenleser und dgl. eingegeben werden können. Die CRT 62 und das Tastenfeld 64 bilden Einrichtungen, durch die der Roboterarm und seine Steuerung in die Lage versetzt werden, mit dem Operator Botschaften auszutauschen.
Die Achsen-Antriebsei.nheit 66 nimmt Datenblöcke vom Computer auf einer periodischen Basis an. Jeder Datenblock repräsentiert inkremental Bewegung?größen der 5
Roboterarm-Betätigungsorgane während jedes periodischen Intervalls. Weiterhin stellt die Größe der Bewegung während einer jeden festgelegten Zeitdauer von Natur aus eine Definition der gewünschten Geschwindigkeit des Roboterarms dar. Die Achsenantriebseinheit 66 nimmt die Daten in digitaler Form an und führt eine Digital-Analog-Umwandlung durch, wobei sie der Einheit 68 (Achsenkompensation und Servoverstärker) ein analoges Signal zuführt. Die kompensierten analogen Signale werden dann als Eingangssignal
für ein Betätigungsorgan 70 verwendet, welches das hieran mechanisch befestigte Roboterelement 7t antreibt. Eine Rückkopplungseinrichtung 72 ist mit dem Betätigungsorgan mechanisch verbunden und erzeugt ein Rückkopplungssignal, welches die momentane Bewegung des angetriebenen Elements des Roboterarms darstellt. Es sollte angemerkt werden, daß, obwohl es mehrere Konfigurationen zur Steuerung der servomechanischen Schleife für jedes Element des Roboterarms gibt, in der bevorzugten Ausführungsform der Achsenantrieb 66, Servoverstärker 68, Betätigungsorgan 70 und Rückkopplungselement 72 in einer Anzahl verwendet werden, die gleich ist der Anzahl der gesteuerten Achsen des Roboterarms.
Der Speicher 4t innerhalb des Computers 40 umfaßt im wesentlichen zwei grundlegende Komponenten. Die erste hiervon ist der Datenspeicher 74, welcher alle numerischen Dateninformationen speichert, und der Rest des Speichers ist als das Betriebssystem des Roboterarms definiert. Das Betriebssystem kann als·Steuerprogramm charakterisiert werden, welches festlegt, wie die Daten erzeugt und während des Betriebs des Roboterarms verwendet werden müssen.
ό Z I U b / b
Die erste Sektion des Betriebssystems ist eine I/O-Sektion 76. Die ϊ/0-Programme schließen ein Daten-I/0-Programm 78, Lehr-Pendant-I/O-Programm 80, ein CRT und Tastenfeld-I/O-Programm 82, ein Steuer-I/O-Programm 84, ein Achsenantrieb-I/O-Programm 85, ein Programm 86 für externe Datenübertragung, und das Benutzer-I/O-Programm 88 ein. Es wird festgestellt, daß ein I/O-Programm entsprechend jedes unterschiedlichen Typs von mit dem Steuersystem zusammenwirkendem Peripheriegerät vorgesehen ist. Jedes I/O-Programm ist einzig ansprechbar auf diejenigen Daten, die durch das jeweilige periphere Gerät erzeugt werden, und ist zum Steuern des Signalflusses von den peripheren Geräten in den und aus dem Computer wirksam.
Das Betriebssystem enthält auch ein Betriebsart-Steuer-Programm 90, welches die Gesamtkontrolle über das Be-
2Q triebssystem ausübt. Das Betriebsart-Steuer-Programm 90 schaltet die Steuerung des Computers zwischen den unterschiedlichen Betriebsweisen, beispielsweise manueller Betrieb, Lehrbetrieb, automatischer Betrieb usw. Da jedoch für die hier offenbarte Erfindung nur die automatische Betriebsweise erforderlich ist, wird nur diese Betriebsweise in ihren Einzelheiten diskutiert. Innerhalb des Lehr-Betrieb-Systems 92 befindet sich ein Daten-Editor-Programm 96 und ein Lehrbetriebsfunktions-Programm 98. Diese beiden Programme steuern den Betrieb des Roboterarms während des Lehr-Betriebes, und die Einzelheiten dieser Programme sind entweder im US-Patent Nr. 3 920 972 beschrieben oder von Cincinnati Milacron Inc. erhältlich. Das System 94 für automatischen Betrieb umfaßt ein Datenabrufprogramm 102, ein Bahnberechnungsprogramm 104, ein Transformationsprogramm 106, ein Achsenantriebsprogramm 108, ein Funktionssteuerprogramm 110 und ein peripheres Serviceprogramm 111. Die Einzelheiten
dieser Programme sind entweder speziell in der US-Patentschrift Nr. 3 909 600 beschrieben oder von Cincinnati Milacron Inc. erhältlich.
Das System 94 für automatischen Betrieb umfaßt auch ein Bahn-Abänderungsprogramm 112, welches der Gegenstand der vorliegenden Erfindung ist. Wie früher beschrieben, werden Abweichungssignale entweder durch eine am Ende des Roboterarms befestigte Vorrichtung oder durch ein entferntes Gerät unter der Kontrolle des Operators erzeugt, um eine gewünschte Abweichung
Bahn,
von einer vorbestimmten/zu befehligen. Die Kontakte 116 bis 122 repräsentieren Abweichungen von der programmierten Bahn nach oben, nach unten, nach links bzw. nach rechts. Die Kontakte 115 und 123 repräsentieren Rückstel!befehle, welche bewirken, daß der Werkzeugmittelpunkt auf die vorbestimmte Bahn zurückkehrt. Diese Kontakte sind repräsentativ für die Ausgänge von einem Gerät zum Befehligen einer Änderung der vorbestimmten Bahn. Das Schließen dieser Kontakte erzeugt Abweichungssignale, welche Eingangssignale
für den Benutzer I/O 56 sind.
25
Fig. 3 ist eine Darstellung der Beziehung der Abweichungspunkte zu der vorbestimmten Bahn und den programmierten Punkten. Die Achsen X, Y und Z definieren ein rechtwinkliaes Koordinatensystem 124, in dem die
X-Y-Ebene horizontal liegt und Z vertikal ist. PQ und
P1 sind vorprogrammierte Punkte, die in der X-Y-Ebene liegen, und die während des Lehr-Prozesses definiert werden. Eingangssignale, die die rechtwinkligen Koordinatenwerte relativ zu einem rechtwinkligen Koordinaten· 35
system 124 der programmierten Punkte PQ und P. repräsentieren, werden für den Gebrauch durch die Robotersteuerung gespeichert. Während der automatischen Be-
IUb /D
triebswei.se erzeugt die Robotersteuerung einen Satz von intermediären Signalen, die rechtwinklige Koordinatenwerte von intermediären Punkten, P. typischerweise bei K
126 gezeigt, darstellen, die durch die Iterationsgeschwindigkeit der Antriebs-Steuersignale und die programmierte Geschwindigkeit definiert sind. Die intermediären Punkte haben Koordinaten der allgemeinen Form (X., Y. , Z.). Wie im folgenden näher beschrieben, er-
KKK
laubt die bevorzugte Ausführungsform gemäß der Erfindung nicht die Abweichungsveränderung von allen intermediären Punkten, vielmehr können Inkremente der Verlagerung bei intermediären Punkten bewirkt werden, die bei integralen Intervallen von einem ersten modifizierbaren intermediä-
ren Punkt auftreten. Die innerhalb dieser Intervalle liegenden intermediären Punkte werden durch die sich netto angesammelten Verlagerungen modifiziert. Die modifizierbaren intermediären Punkte sind in Fig. 3 mit P, bezeichnet und die Abweichungspunkte, die sich aus der Modifikation solcher Punktkoordinaten ergeben, sind mit OP bezeichnet. Dadurch, daß der Werkzeugmittelpunkt veranlaßt wird, sich zu jedem der intermediären Punkte zu bewegen, bewirkt die Steuerung 35 eine Bewegung oc durch eine vorbestimmte Bahn von Pn zu P-, welche als
AO U 1
gerade Linie 128 in der X-Y-Ebene unter einem Winkel θ mit der X-Achse liegt. Die durch die Abweichungspunkte gefolgte Bahn ist als gestrichelte Linie gezeigt.
Da sich der Werkzeugmittelpunkt entlang der Bahn 128 bewegt und es wünschenswert ist, daß der Werkzeugmittelpunkt in der X-Y-Ebene entlang einer Normalen nach links vom Pfad bewegt wird, wird der Kontakt 120 geschlossen, wobei ein Abweichungssignal erzeugt wird. Die Robotersteuerung wird ein Signal zur horizontalen inkrementalen Versetzung entsprechend 131 erzeugen, welches dazu verwendet wird, Koordinaten-Komponenten-Signale zu erzeugen, die Koordinaten-Komponenten 130 und 132 der inkrementalen
Versetzung parallel zu den X- bzw. Y-Achsen repräsentieren. Die Koordinaten-Komponenten werden ver/endet, um die Koordinatenwerte des Punktes 134, mit P. bezeichnet, zu modifizieren, wobei sie hierbei einen modifizierten Satz von intermediären Signalen erzeugen, welche den WerkzeugmitteTpunkt veranlassen, sich zu dem Abweichungspunkt OP zu bewegen. Weitere Versetzungen nach links oder nach rechts werden auf gleiche Weise bewirkt, durch Addieren oder Subtrahieren von inkrementalen Versetzungen 131. entlang den Normalen von modifizierbaren intermediären Punkten. Unter Verwendung der zum Bewegen des Werkzeugmittelpunktes nach OP1 errechneten Abweichung wird der
Ib I
durch die gestrichelte Linie nach Fig. 3 angezeigte Weg wirksam sein, um sofort den intermediären Punkten 126 zu folgen, für die die Steuerung keine weitere Modifikation durch inkrementale Versetzungen 131 zuläßt. Sollte die Bewegung des Werkzeuges nach rechts von den Abweichungspunkten gewünscht werden, so wird sich der rechte Kontakt |22 schließen oder der Operator kann den Rückstellkonta-kt 115 schließen. In beiden Fällen wird die nächste inkrementale Abweichung wirksam sein, um die mit dem intermediären Punkt Pk+1a zusammenhängenden Koordinatendaten zu ändern. Nachdem, wenn keine weitere Versetzung gewünscht wird, die Koordinaten des Punktes Pl + -I0 modifiziert werden würden durch die vorhergehenden, für eine Modifizierung der intermediären Punkte, beginnend mit P^,.wirksamen Abweichinkremente, ist es zum Wiederherstellen der Koordinaten des intermediären Punktes in seine ursprünglichen Koordinaten entlang der Bahn 128 erforderlich, daß entweder eine Rücksetzung der Abweichung oder eine Abweichung nach rechts vollzogen wird. In ähnlicher Weise werden/die Kontakte 116 oder 118 schließen, wenn eine Abweichung des Werkzeugmittelpunktes in vertikaler Richtung gewünscht wird. Unter der Annahme, daß der Kontakt 116 schließt, wird der nächste
modifizierbare intermediäre Punkt P. » durch das vertikale Abweichungsinkrement 136 modifiziert, wodurch der Werkzeugmittelpunkt wiederum veranlaßt wird, entlang deren gestrichelten Bahnlinie zum Abweichungspunkt OP4 zu wandern. Der nächste modifizierbare intermediäre Punkt ist Ρυ+3α· Wenn eine Zurückkehr zu der programmierten Bahn gewünscht wird, konnte dies durch Schließen des Kontaktes 118 oder des Rücksetzkontaktes 115 bewirkt werden. In beiden Fällen würde der Werkzeugmittelpunkt der durch die gestrichelte Linie angedeuteten Bahn von OP6 naci) Pk+3q folgen.
Fig. 4 zeigt ein Flußdiagramm, welches die zur Durchführung des automatischen Betriebsmodus erforderlichen Prozeßschritte definiert. Der Prozeßblock 140 ruft die Werte der rechtwinkligen Koordinaten von zwei programmierten Punkten sowie die vorbestimmte Bahngeschwindigkeit vom Speicher ab. Der Prozeßschritt 142 berechnet die Riclitungswerte. Jeder Richtungswert hat die Bedeutung, daß er die Richtung der Bewegung und eine Größe proportional einer rechtwinkligen Koordinatenkomponente der Bahn zwischen den programmierten Punkten darstellt. Der Prozeßschritt 144 berechnet die Abstandsparameter entlang der Bahn zwischen den programmierten Punkten. Der Prozeßschritt 146 berechnet die Änderung im Abstand entlang der Bahn während jeder Iteration der Antriebskreis-Steuersignale. Als nächstes wird durch den Prozeß-
schritt 148 ein Satz intermediärer Signale erzeugt, die
die rechtwinkligen Koordinatenwerte darstellen, welche einen intermediären Punkt für jede Änderung im Abstand definieren. Dies wird durch Verwendung der Richtungswerte erreicht. Daher erfordert die Berechnung der 35
Koordinatenwerte eines intermediären Punktes entlang der Bahn während jeder Iteration die durch die Prozeßschritte 142, T44, 146 und 148 ausgeführten Operationen.
Der Prozeßschritt 152 modifiziert die Koordinatenwerte für den intermediären Punkt durch vorbestimmte Inkremente in Einklang mit dem Schließen von Kontakten, das aufgrund von gewünschten Abweichungen von der vorbestimmten Bahn vorliegen könnte. Als nächstes erzeugt aar Operationsschritt 150 die individuellen Steuersignale, die verallgemeinerte Koordinatenwerte darstellen, die mit modi-
IQ fizierten, im Prozeßschritt 152 berechneten Koordinatenwerden korrespondieren. Die Einzelheiten der Prozeßschritte Ϊ50 können im US-Patent Nr. 3 909 600 gefunden werden, welches in dem hier erforderlichen Ausmaße bezüglich der Offenbarung jener Details zum Gegenstand der vorliegenden Anmeldung gemacht wird. Aus diesem Grunde werden die Details bezüglich Schritt 150 hier nicht diskutiert. Schließlich berechnet der Prozeßschritt 154 die Änderungen in den generalisierten Koordinatenwerten vom vorliegenden Punkt zu dem intermediären Punkt und speichert diesen Satz von veränderlichen generalisierten Koordinatenwerten in einem Pufferspeicher, auf eine Unterbrechung von der servomechanischen Antriebseinheit 42 wartend. Eine Anzahl von Sätzen von unterschiedlichen generalisierten Koordinatenwerten können sich im Pufferspeicher zur selben Zeit in Warteschlange befinden.
Wie es dem Fachmann ohne weiteres deutlich ist, arbeitet der hier beschriebene Prozeß asynchron mit der servomechanischen Antriebseinrichtung 42. Die Einrichtung 42 arbeitet aufgrund eines Sampling-Systems mit fester Zeitbasis; in anderen Worten fordert der Servomechanismus vom Computer neue Informationen unter festen vorbestimmten Zeitintervallen. Durch Betreiben des Servomechanismus mit einer festgelegten Geschwindigkeit der Abtastung von Signalwerten ergibt sich ein Computer mit
mehreren Vorteilen. Beispielsweise ist der Computer bei Kenntnis der Lange der programmierten Bahn, der vorbestimmten Bahngeschwindigkeit und der festgesetzten Länge der Abtastzeit (sample time) in der Lage, im Prozeßschritt 144 die Anzahl der zur Durchführung der programmierten Bahn erforderlichen Iterationen zu berechnen. Folglich kann der Computer mit dieser Information dann die Änderung im Abstand entlang der programmierten Bahn während jeder Iteration, berechnen. Der Fachmann wird des weiteren schätzen, daß die Verwendung einer festgelegten Abtastzeit-Geschwindigkeit es dem Computer erlaubt, viele andere Funktionen zusätzlich zur Erzeugung der vorbestimmten Bahn durchzuführen. Nachdem der Computer wesentlich schneller als die hieran angeschlossenen peripheren Geräte ist, wird ein Vorrat von hieraus auszugebender Information erzeugt. Folglich wird ein System von Unterbrechungen mit jeweils einer speziellen Priorität benutzt.
Der Zweck der Servounterbrechungs-Routine, gekennzeichnet in Block 156, besteht darin, Daten aus dem Pufferspeicher in Abhängigkeit von einer Unterbrechung von der servomechanischen Antriebseinheit 42 zu übertragen. Die Unterbrechung kann zu jeder beliebigen Zeit während des Betriebes auftreten. Wenn die Unterbrechung auftritt, wird die Steuerung des Prozesses von dem Hauptprogramm zu der Servounterbrechungs-Routine 156 übertragen. Innerhalb
der Servounterbrechungs-Routine 156 überträgt der Prozeß-Block 158 einen der in der Warteschlange befindlichen Sätze von di.f ferentiel len generalisierten Koordinatenwerten aus dem Pufferspeicher in die servomechanische
Antriebseinheit 42. Als nächstes testet der Entscheidungs-35
schritt 160, ob die Bahn zwischen den beiden programmierten Punkten abgeschlossen ist. Wenn die Bahn nicht abqe-
schlossen ist, so führt die Servounterbrechungs-Routine die Prozeßsteuerung zurück zu dem Hauptprcramm, und zwar zu demjenigen Punkt, wo die Unterbrechung auftrat; und der Prozeß wird weitergeführt. Wenn die Spanne abgeschlossen ist, vollführt der Prozeßschritt 164 eine vorbestimmte Funktion, nach welcher der Prozeß zum Prozeßschritt 140 zurückkehrt, um die nächste programmierte Bahn zu beginnen.
Die Zeit, während der die generalisierten Koordinatensignale im Puffer gespeichert werden, kann sich über die Zeitdauer von mehreren Iterationen der Erzeugung von intermediären Punkten erstrecken. Wenn eine Änderung der generalisierten Koordinaten für vier Iterationen gespeichert wird, so wird es folglich diese Zeitspanne dauern, bevor der Werkzeugmittelpunkt tatsächlich auf
die für einen intermediären Punkt erzeugten rechtwinklig
!igen Koordinatenwerte reagiert. Diese Zeitverzögerung im Pufferspeicher ist für den Betrieb der zum Nachweis einer gewünschten Abweichung gebrauchten Vorrichtung nachteilig. Wenn beispielsweise diese Vorrichtung eine gewünschte Abweichung nachweist und befehligt, daß der intermediäre Punkt von der vorbestimmten Bahn wegbewegt werden soll, so wird der Befehl erkannt, und ein neuer modifizierter intermediärer Punkt wird bestimmt. Während der Dauer, in der die Änderung.der generalisierten Koordinatenwerte, die diesen intermediären Punkt repräsentieren, im Pufferspeicher gespeichert ist,fährt die Nachweiseinrichtung jedoch fort, die Tatsache nachzuweisen, daß der Werkzeugmittelpunkt von der vorbestimmten Bahn versetzt werden muß, und sie fährt fort, Befehle zu erzeugen, einen modifizierten intermediären Punkt zu schaffen. Nachdem die Pufferspeicherzeit vergangen ist,
O C I UU /
beginnt der Werkzeugmittelpunkt augenblicklich seine Versetzung von der vorbestimmten Bahn. Dieser Prozeß geht weiter, bis der Werkzeugmittelpunkt sich an dem gewünschten versetzten Platz befindet. Zu diesem Zeitpunkt hört die Nachweiseinrichtung auf, Befehle zu erzeugen, die Position des intermediären Punktes zu modifizieren. Wenn der Prozeß der intermediären Punktmodifikation solange, wie die Nachweiseinrichtung eine gewünschte Abweichung nachweist, für die Berechnung eines jeden intermediären Punktes Verschiebungsinkremente anhäufen würde, dann würden die modifizierten intermediären Punkte eine anwachsende Versetzung wiederspiegeln. Wenn diese Versetzung augenblicklich durchgeführt wird, dann könnte die Nachweiseinrichtung eine gewünschte entgegengesetzte Abweichung nachweisen. Folglich wird der Effekt darin bestehen, daß der Werkzeugmittelpunkt kontinuierlich um die jeweilige gewünschte 20
Position, wie sie von der Nachweiseinrichtung bestimmt ist, oszilliert oder pendelt.
Um das vorgenannte Problem zu lösen, ist es erforderlich, daß der Prozeß zum Modifizieren der angehäuften Versetzungen nur einmal während derjenigen Zeitdauer auftritt, während der der Satz von differentiellen generalisierten Koordinatenwerten im Pufferspeicher gespeichert wird. Auf diese Weise wird, wenn die Nachweiseinrichtung
eine Änderung in der Position des Werkz.eugmittelpunktes 30
befehligt, durch die Vorrichtung eine Modifikation gemacht und ausgeführt werden, bevor eine weitere Modifikation gemacht wird. Dies folgt aus der schrittweisen Abweichungsbahn in Zusammenhang mit den unter Bezugnahme QC- auf Fig. 3 beschriebenen modifizierbaren intermediären Punkten.
Die Fig. 5a, 5b, 5c und 5d umfassen ein detailliertes Flußdiagramm des anhand von Fig. 4 diskutierten Prozeßes. Die Umwandlung des Flußdiagramms gemäß Fig. 5 in ein kodiertes Computerprogramm kann auf einfache Weise durch eine Person vollzogen werden, die in der Programmierung in Computersprachen, die mit einem allgemeinen Steuercomputer compatibel sind, durchschnittliche
IQ Kenntnisse aufweist. Beim Studium der Fig. 5a und beim Vergleich dieser Figur mit dem Flußdiagramm gemäß Fig. wird man entdecken, daß die Mehrheit der dargestellten Operationen unter den Prozeßschritt des Berechnens der Abstandsparameter, wie in Prozeßschritt 146 der Fig. 4 dargestellt, klassifiziert werden kann. Der Grund hierfür ist das Problem der Bestimmung der Große der Spannen der Geschwindigkeitsänderungen.
Im allgemeinen kann die Bahn zwischen zwei vorbestimmten Punkten in drei getrennte Spannen eingeteilt werden. Eine erste Spanne kann eine Beschleunigung oder Verzögerung in Abhängigkeit von der Geschwindigkeit beim Eintritt in die Spanne und der programmierten Bahngeschwindigkeit erfordern. Eine zweite Spanne kann eine Phase der konstanten Geschwindigkeit umfassen, und eine dritte Spanne kann auftreten, wenn eine Verzögerung erforderlich ist. Durch Prüfung der Geschwindigkeiten an den Endpunkten der programmierten Bahn ist daher der Computer in der Lage, zu bestimmten, ob zwei oder drei geschwindigkeitsabhängige Spannen erforderlich sind. Wenn diese Bestimmung einmal gemacht worden ist, existiert ein weiteres Problem. Wenn sowohl die erforderlichen Geschwindigkeiten als auch die erlaubbaren Geschwindigkeitsänderungen bekannt sind, so kann die Länge einer jeden geschwindigkeitsabhängigen Spanne berechnet werden. Es kann jedoch die Situation auftreten, in der die Summe der uneigentlichen geschwindigkeitsabhängigen Spannen die
Länge der Bahn zwischen den programmierten Punkten übersteigt. Diese speziellen Fälle müssen auf einer indivi-
_. duellen Basis nachgewiesen und gehandhabt werden. FoIg-5
licherweise stellt die Berechnung der Abstandsparameter für alle möglichen Situationen ein Hauptproblem dar. In der zur Durchführung der notwendigen Lösungen erforderlichen Prozeßzeit ist ein weiteres Problem zu sehen.
In Fig. 5a ruft der Prozeßschritt 166 die Koordinatenwerte (Xq, Yq, Zq) ab, welche die Position des vorliegenden oder des ersten programmierten Punktes PQ definieren, sowie die Koordinatenwerte (X,., Y., Z-) des nächsten oder zweiten programmierten Punktes P. sowie die programmierte Bahngeschwindigkeit (V) zwischen diesen Punkten. Der Prozeßschritt 168 rechnet die Länge (S) der vorbestimmten Bahn aus. Nachdem durch den Prozeßschritt 170 die Richtungswerte (U1, Up, U3) bestimmt worden sind, rechnet der Prozeßschritt 172 die Länge der anfänglichen Spanne (S.) der Geschwindigkeitsänderung unter Verwendung der Anfangsgeschwindigkeit (V-),der programmierten Geschwindigkeit (V) und einer vorbestimmten Beschleunigungsrate (a) aus. Der Prozeßblock 174 ist dazu da, zu bestimmen, ob die Geschwindigkeit bei P, gleich Null ist oder nicht. In anderen Worten wird die Frage gestellt, ob es zwischen der Ausführung von aufeinanderfolgenden programmierten Bahnen einen Stop gibt oder/die aufeinanderfolgenden programmierten Bahnen in einer kontinuierlichen Art und Weise ausgeführt werden. Wenn die Endgeschwindigkeit Null ist, prüft der Prozeß über den Entscheidungsblock 176, ob die Anfangsgeschwindigkeit Null ist. Wenn die Anfangsgeschwindigkeit und die Endgeschwindigkeit beide Null sind, dann setzt der Operationsblock 178 die Länge der Endspanne (S3) der Geschwindigkeitsänderung gleich der Länge Anfangsspanne (S.) der Geschwindigkeitsänderung, die im Prozeßblock 172 berechnet wurde. Wenn die Endgeschwindig-
keit Null ist, jedoch die Anfangsgeschwindigkeit nicht Null ist, so wird der Prozeßblock 180 zum Berechnen der Länge der Endspanne der Geschwindigkeitsänderung unter Verwendung der programmierten Geschwindigkeit (V) und der Beschleunigungsrate (a) wirksam. An diesem Punkt macht der Entscheidungsblock 182 eine überprüfung, um zu bestimmen, ob die bisher berechnete Summe der Spannen der Geschwindigkeitsänderung kleiner ist als die Länge der programmierten Bahn. Wenn die Summe der Längen der Spannen der Geschwindigkeitsänderung kleiner ist als die Länge der programmierten Bahn, so fährt der Prozeß mit dem Flußdiagramm gemäß Fig. 5b über die Übergangsstelle B2 fort. Es sollte an dieser Stelle angemerkt
werden, daß die Länge der Spanne der konstanten Geschwindigkeit gleich ist der Differenz zwischen der Länge der gesamten Bahn und der Länge der Summe der Anfangs- und Endspannen der Geschwindigkeitsänderungen.
Nachdem die Länge einer jeden der die programmierte Bahn 20
umfassenden Spannen und die feste Zeitbasis des Sampling-Systems bekannt sind, ist es nun möglich, die Anzahl der zur Ausführung jeder der Spannen erforderlichen Iterationen zu berechnen. Diese Berechnungen werden durch die
Prozeßblöcke 184, 186 und 188 durchgeführt. Die nächsten 25
Blocke 192 und 194 werden dazu eingesetzt, um Konstanten zu berechnen, die im folgenden im Prozeß benutzt werden.
Zurückkommend auf den Entscheidungsblock 174 in Fig. 5a wird darauf hingewiesen, daß die Bestimmung, daß die
Endgeschwindigkeit nicht Null ist, bedeutet, daß sich die Bahn kontinuierlich zwischen aufeinanderfolgenden Programmspannen bewegt. Wenn man die Dynamik des Roboters selbst in Betracht zieht, so kann dies physikalisch möglieh sein oder auch nicht, was von der Richtungsänderung oder dem zwischen aufeinanderfolgenden Bahnen eingeschlossenen Winkel abhängt. Die Antnelderin hat willkürlich
einen Einsclilußwi nkel (y) von 120 Grad gewählt, welcher im Entscheidungsblock 196 überwacht wird. Wenn der Einschlußwinkei (JT] zwischen aufeinanderfolgenden Bahnen größer als f20 Grad ist, so werden aufeinanderfolgende Bahnen auf einer kontinuierlichen Basis ausgeführt. Wenn jedoch der Einschlußwinkel (3D geringer als 120 Grad ist, so führt der Prozeß automatisch einen Stop-Punkt ein, und die aufeinanderfolgenden Bahnen werden in einer diskontinuierlichen Art und Weise ausgeführt. Das Kosinus-Gesetz wird verwendet, um zu bestimmen, ob der eingeschlossene Winkel großer oder kleiner als 120 Grad ist. Dies macht es erforderlich, daß die Länge der gegenwärtigen vorbestimmten Bahn (S) und die Länge der nächsten vorbestimmten Bahn (S ) verwendet werden. Das Quadrat des Abstandes (Sj) von dem ersten programmierten Punkt (P0) zu dem Endpunkt (P2) der nächsten vorbestimmten Bahn läßt sich aus dem Kosinus-Gesetz auf folgende Weise bestimmen, wenn der eingeschlossene Winkel zwischen den beiden Bahnen 120 Grad beträgt:
4(120) " s2+ Sn + S(V
Das Quadrat des Abstandes von dem ersten programmierten Punkt zu dem Endpunkt P2 kann auch ohne den eingeschlossenen Winkel berechnet werden, bei. Kenntnis der Koordinate (X , Y , ZQ) des ersten programmierten Punktes Pn und den Koordinaten (X9, Y9, Z9) des Endpunktes P9, υ c c c c
und zwar aufgrund der folgenden Gleichung:
ST = (χ2~Χ0)2 + (VY0)2 + (Z2"Z0)2
Daher kann auf einen größeren eingeschlossenen Winkel 35
(O als 120 Grad geschlossen werden, wenn
T(120)
Der nächste Entscheidungsblock 198 bestimmt, ob die Länge der Anfangsspanne der Geschwindigkeitsänderung kleiner ist als die Länge der programmierten Bahn. Wenn (S1) nicht kleiner ist als die programmierte Bahn, so setzt der Prozeßblock 200 die Länge der Anfangsspanne der Geschwindigkeitsänderung willkürlich auf den halben Wert der Länge der programmierten Bahn.
Weiterhin wird im Prozeßblock 300 ein neuer Wert für die Geschwindigkeit V berechnet. Es sollte an diesem Punkt angemerkt werden, daß es definitionsgemäß keine Endspannen der Geschwindigkeitsänderung (S3) gibt, wenn aufeinanderfolgende Programmbahnen kontinuierlich ausgeführt werden sollen. Weiterhin ist definitionsgemäß die Anzahl der zur Durchführung der Endspanne der Geschwindigkeitsänderung erforderlichen Iterationen gleich Null. Wenn die Länge der Anfangsspanne der Geschwindigkeitsänderung geringer als die programmierte Bahn ist, so wird die Anzahl der zur Durchführung der Anfangsspanne der Geschwindigkeitsänderung erforderlichen Iterationen im Operationsblock 302 berechnet. Die Übergangsstelle C1 wird in Fig. 5c weitergeführt. In den Prozeßblocken 304, 306 und 308 werden Konstanten berechnet, die später im Prozeß verwendet werden und die daher an dieser Stelle nicht diskutiert werden.
Unter Bezugnahme auf die Fig. 5a wird angemerkt, daß die Bedeutung der Berechnung der Abstandsparameter dem Fachmann auf dem hier in Rede stehenden Gebiet ohne weiteres deutlich ist. Ein spezieller Fall wurde bisher noch nicht im einzelnen diskutiert. Dieser Fall tritt bezüglich Entscheidungsblock 182 auf, wenn die Summe der Längen der Anfangsspannen und der Endspannen der Geschwindigkeitsänderung nicht kleiner ist als die Länge der gesamten Bahn. In diesem Fall führt uns die
Übergangsstelle Bi zu Fig. 5b. Die Blocke 3t0 bis 330 definieren einen anderen Spezialfall, welcher bezüglich seiner Losung ähnlich den anderen Spezialfällen, die im Vorstehenden im einzelnen beschrieben wurden, ist. Daher wird der Prozeß an dieser Stelle nicht in allen Einzelheiten beschrieben und der in den Blocken 310 bis 330 IO
beinhaltete Offenbarungsgehalt wird als ausreichend angesehen. Nach seiner Durchführung geht dieser Abschnitt des Prozesses weiter über Übergangsstelle B zu dem Block 190. Der Prozeß folgt dann der Übergangsstelle C2 zur
,_ Fig. 5c. Wiederum definieren die Prozeßblöcke 332 bis 15
338 Konstanten, die später im Prozeß Verwendung finden.
Der Prozeß geht weiter in Fig. 5d. Die Entscheidungsstufe 195 testet, ob die Anfangsspanne der Geschwindigkeitsänderung abgeschlossen ist. Falls nicht, initiiert der Prozeßschritt 197 die erste Iteration. Im allgemeinen ist die Änderung des Abstandes entlang der Bahn für eine laufende Iteration gleich der Änderung des Abstandes entlang der Bahn während der vorherigen Iteration zusätzlieh einiger vorher berechneter Konstanten. Es taucht das Problem auf, die Änderung des Abstandes während der ersten Iteration zu berechnen. Dies stellt eine Spezialsituation dar, die entsprechend dem Prozeßschritt 199 behandelt wird. Die Länge der Abstandsänderung entlang der Bahn während der ersten Iteration ist gleich einer speziellen Konstante, welche früher berechnet wurde. Nachdem die erste Iteration durchgeführt wurde, werden alle nachfolgenden Iterationen während der ersten Spanne durch den Prozeßschritt 201 bestimmt, bis die Anzahl der Iterationen (K) gleich ist der Iterationszahl (m,), die für die Anfangsspanne der Geschwindigkeitsänderung (S1) berechnet wurde. Entsprechend dem Prozeßschritt 102 werden
die rechtwinkligen Koordinatenwerte (Χι.» Y^. Z. ), die intermediäre Punkte definieren, für jede Abstandsänderung entlang der Bahn, d.h. für jede Iteration berechnet. Der Prozeßschritt 203 führt einen Prozeß durch, der die rechtwinkligen Koordinatenwerte modifiziert. Es wurden zwei Modifikationsschemata der vorbestimmten Bahn von der Anmelderin ersonnen, welche sich in der am -Ende einer vorbestimmten Bahn zu ergreifenden Maßnahme unterscheiden. Fig. 6, die als nächstes diskutiert werden soll, beschreibt ein erstes alternatives Schema, in dem der Werkzeugmi.ttelpunkt vor dem Erreichen des nächsten programmierten Punktes P1 zu der vorbestimmten Bahn zurückgebracht wird. Fig. 9, die im Anschluß daran diskutiert werden soll, beschreibt ein zweites alternatives Schema, in dem der Werkzeugmittelpunkt zu einem modifizierten nächsten Punkt P1. . abseits der
Id
vorbestimmten Bahn gefahren wird. Sobald die Koordinaten
des intermediären Punktes durch eine dieser alternativen Schemen modifiziert worden sind, geht die Durchführung des Prozesses mit Block 204 gemäß Fig. 5d weiter.
Der Prozeßschritt 204 transformiert diese rechtwinkligen 25
Koordinatenwerte in entsprechende generalisierte Koordinatenwerte, die durch individuelle Steuersignale dargestellt werden, welche die absolute Position des intermediären Punktes relativ zu dem generalisierten Koordi-
natensystem definieren. Der Prozeßschritt 206 berechnet 30
die Änderungen in den generalisierten Koordinatenwerten, die erforderlich sind, um den Werkzeugmittelpunkt von seiner jeweiligen, laufenden Position zu dem intermediären Punkt zu bewegen, und dieser Satz an Änderungen in Form von generalisierten Koordinatenwerten wird im
Pufferspeicher in Warteschlange gespeichert, und ist bestimmt für eine Unterbrechung von der servomechani-
sehen Antriebseinheit 42. Die Servo-Unterbrechungs-Routine wurde unter Bezugnahme auf Fig. 4 diskutiert, und weitere Diskussion ist zu diesem Zeitpunkt nicht erforderlich.
Wenn die Anzahl der Iterationen (K) gleich ist der Anzahl der Iterationen, m,, berechnet für die Anfangsspanne der Geschwindigkeitsänderung, (S*), so geht der Prozeß weiter zum Entscheidungsblock 208, der bestimmt, ob die Spanne der konstanten Geschwindigkeit abgeschlossen ist. Wenn die Spanne der konstanten Geschwindigkeit nicht abgeschlossen ist, so führt der Prozeß die Schritte 210, 212 und 214 aus, um die rechtwinkligen Koordinatenwerte des nächsten intermediären Punktes zu berechnen. Hiernach kann der Prozeßschritt 216 diese Koordinatenwerte modifizieren, um den Werkzeugmittelpunkt abseits der vorbestimmten Bahn zu bewegen.
Der Koordinaten-Modifikation folgend werden die Koordinaten des intermediären Punktes, so wie sie modifiziert wurden, durch den Schritt 218 in die generalisierte Koordinatenform transformiert. Dann berechnet der Schritt 220 die Änderungen in den generalisierten Koordinaten und speichert diese Inkremen'te im Puffer ab.
Wenn die Anzahl der Iterationen (K) gleich ist dem Wert
K~, der die Gesamtzahl der Iterationen der ersten beiden Spannen repräsentiert, so geht der Prozeß weiter zum Entscheidungsschritt 222. Dieser Schritt ist der erste Schritt der Programmverzweigung dieses Flußdiagramms, der sich mit der Ausführung der Verzögerungsspanne (S-) J
befaßt. Wie es für die zwei vorhergehenden Spannen der
Fall war, berechnen die Schritte 221 bis 230 die rechtwinkligen Koordinaten der intermediären Punkte entlang der vorbestimmten Bahn, modifizieren diese Koordinaten wie erforderlich, transformieren sie in eine generalisierte Koordinatenform und berechnen und speichern Inkremente der generalisierten Koordinaten.
Ein erster Modificationsprozeß ist im einzelnen in den Figuren 6a bis 6d offenbart. Der Entscheidungsschritt 240 bestimmt, ob eine Rücksetz-Funktion erforderlich geworden ist (siehe Fig. 6a). Die Rücksetz-Funktion kann durch den Operator oder durch einen
anderen Schritt im Prozeß initiiert worden sein und bewirkt die Bewegung des Werkzeugmittelpunktes zurück auf die vorbestimmte Bahn. Wenn die Rücksetz-Funktion nicht aktiv ist, so testet der Prozeßschritt 244, ob die Rücksetz-Fehleranzeige (reset flag) gesetzt ist.
Wenn die Rücksetz-Fehleranzeige nicht gesetzt ist, so testet der Prozeßschritt 246, ob die Anfangsspanne der Geschwindigkeitsänderung abgeschlossen ist. Wenn diese Spanne nicht abgeschlossen ist, so kehrt der Prozeß unverzüglich zu Schritt 204 in Fig. 5d zurück. So ist eine Modifikation der vorbestimmten Bahn während der Anfangsspanne der Geschwindigkeitsänderung nicht erlaubt. Tatsächlich ist die Länge dieser Spanne relativ kurz, beispielsweise annäherungsweise 0,1 inch, und daher wurden jedwede Änderungen dieser Spanne relativ
uneffektiv sein. Folglich hat der Prozeßschritt 203 keinen Einfluß auf die durch den Prozeßschritt 202 bestimmten rechtwinkligen Koordinatenwerte des intermediären Punktes. Da dieser erste Modifikationsprozeß es erforderlich macht, daß der Werkzeugmittelpunkt immer auf 35
die vorbestimmte Bahn zurückgebracht werden muß, bevor er den zweiten programmierten Punkt erreicht, wird ver-
standen werden, daß die Bewegung entlang jeder beliebigen vorbestimmten Bahn an enem ersten programmierten Punkt initiiert wird. Deshalb ist es in der Regel nicht erforderlich, ein Reset am Beginn einer vorbestimmten Bahn zu verlangen. Wenn jedoch ein Reset verlangt werden würde, so würde der Prozeß, wie es im folgenden noch im einzelnen erklärt werden wird, darauf "hinauslaufen, daß Werte von Null für die erste Iteration der Beschleunigungsspanne (S,.) modifiziert werden wurden, und es würde den Werkzeugmittelpunkt effektiv dazu veranlassen, einer nicht-modifizierten Baftn zu folgen, bis eine Bahnmodifizierung ungleich Null bewirkt wird.
Daher wird selbst dann, wenn es während der Ausführung des Schrittes 244 bestimmt wurde, daß die Rücksetz-Anzeige gesetzt wurde, nichts desto weniger dieser erste alternative Prozeß nicht eine Modifizierung der intermediären Punkte während der ersten Unterspanne (S,..) zur Folge haben.
Die Prozeßschritte 248 bis 254 bestimmten die Beziehung der laufenden Iteration zu der Gesamtanzahl der Iterationen in der Spanne der konstanten Geschwindigkeit. Wenn die gegenwärtige Iteration innerhalb von fünf Iterationen des Endes der Spanne der konstanten Geschwindigkeit liegt, so erzwingt der Entscheidungsschritt 249 die Rückkehr des Werkzeugmittelpunktes zu der programmierten Bahn durch Rückführung des Prozesses zum Schritt 242.
Nehmen wir einmal an, daß dies nicht der Fall ist, dann werden die Schritte 250 bis 254 dazu verwendet, zu überwachen, ob oder ob nicht die vorliegende Iteration eine solche ist, für die eine inkrementale Änderung der Abweichungsverschiebung erlaubt ist, wie dies im Zusammenhang mit Figuren 3 und 4 diskutiert wurde.
Während der ersten Iteration durch den,Prozeß gemäß Fig. 6 a wird ein vorbestimmter Zähler (Iterations-Warteschlangen-Zähler, "iteration queue counter") oder Speicherplatz den Wert Null haben, und der Prozeßschritt 250 wird den Wert auf unter Null abnehmen lassen, Der Prozeßschritt 252 weist einen Wert unterhalb Null auf und führt den Prozeß zu dem Schritt 254, der eine vorbestimmte Zahl zurück in den Zähler setzt. Wie weiter oben diskutiert, repräsentiert die vorbestimmte Zahl die Anzahl der Iterationen, die der Zeitdauer, während der die Änderung der generalisierten Koordinatenwerte im Pufferspeicher warteschlangenmäßig gespeichert wer-
!5 den, entspricht. Beispielsweise wird angenommen, daß die differential!en generalisierten Koordinatenwerte warteschlangenmäßig während drei Iterationen gespeichert werden,und daß daher die in den Iterations-Warteschlangen-Zähler durch den Prozeßschritt 254 gesetzte Zahl drei ist. Während der ersten Iteration durch diesen Prozeß werden die Kontakte 116 bis 122 überwacht, und, falls ein entsprechender Befehl vorliegt, wird eine Modifizierung des intermediären Punktes durchgeführt. Der Prozeßschritt 218 gemäß Fig. 5d wird die rechtwinkligen Koordinatenwerte des modifizierten intermediären Punktes in generalisierte Koordinatenwerte transformieren, und der Prozeßschritt 220 wird die Änderung der generalisierten Koordinaten berechnen und diese Änderungen im Pufferspeicher warteschlangenmäßig abspeichern. Während der nächsten Iteration wird sich der Prozeß durch die in 6a definierten Stufen hindurchbewegen und der Prozeßschritt 250 wird den Iterations-Warteschlangen-Zähler herabsetzen und ihn hierbei auf einen Wert von zwei herabsetzen. Die Prozeßstufe 152 wird feststellen, daß der Iterations-Warteschlangen-Zähier keinen Wert kleiner als Null hat, und den Prozeß zu Block 280 der Fig. 6d leiten. Dieser
9 β V
ProzeJ3schri.tt wird dahingehend wirksam sein, daß er die rechtwinkligen Koordinatenwerte des intermediären Punktes durch die während der letzten Iteration bestimmten Abweichungswerte modifiziert, und diese modifizierten Werte werden transformiert und gespeichert werden. Dieser Prozeß wiederholt sich selbst während der nächsten beiden Iterationen, wobei an diesem Punkt die warteschlangenmäßig gespeicherte Änderung der generalisierten Koordinaten dem Roboterarm ausgegeben werden, und der Werkzeugmittelpunkt wird jetzt zu dem modifizierten intermediären Punkt bewegt. Weiterhin weisen die differentiellen generalisierten Koordinatenwerte, die laufend warteschlangen-
!5 mäßig gespeichert werden, die gleichen, mit ihnen verbundenen Modifikationen auf. Die Nachweiseinrichtung hat die Möglichkeit des Oberwachens der Wirkung ihres ursprünglichen Befehls und wird die Zustände der Kontakte 116 bis 122 entsprechend ändern. Während der fünften Iteration durch den Prozeß wird die Stufe 250 (Verminderung der Iterati.ons-Warteschlange) den Warteschlangen-Zähler dazu veranlassen, einen Zustand unterhalb von Null einzunehmen, und nachdem der Prozeßschritt 252 den Prozeßschritt 254 dazu veranlaßt hat, den Iterations-
2^ Warteschlangen-Zähler zurückzusetzen, kann eine weitere Modifikation durchgeführt werden. Genau die gleiche Verfahrensweise zum Steuern der zu modifizierenden intermediären Punkte wird gemäß dem zweiten alternativen Schema verwendet.
Der Prozeß bewegt sich dann zu Fig. 6b, wo der Prozeßschritt 256 den Zustand des linken Kontaktes 120 gemäß Fig. 2 testet. Wenn der Kontakt 120 geschlossen ist, setzt der Prozeßschritt 258 einen neuen Wert für das akkumulierte horizontale Abweichungssignal (AXY).
Die Größe AXY repräsentiert die Größe der akkumulierten horizontalen Abweichung entlang einer Normalen zu der g vorbestimmten Bahn. Der Prozeß der Anmelderin definiert die Richtung der Abweichung in Bezugnahme auf die Richtung <Ser Bewegung entlang der vorbestimmten Bahn. Wenn die Bahnabänderung auf der linken Seite auftritt, so ist die Abweichung durch ein negatives Vorzeichen definiert, und wenn die Abänderung auf der rechten Seite der vorbestimmten Bahn auftritt, so ist die Abweichung durch ein positives Vorzeichen definiert. Nachdem der linke Kontakt geschlossen ist, wird der Prozeßschritt 258 einen mehr negativen Abweichungswert definieren.
Folglich wird der neu akkumulierte Abweichungswert bestimmt durch Subtraktion einer vorbestimmten horizontalen inkrementaien Größe (INC) von der Größe des laufend akkumulierten Abweichungswertes. Dieses Inkrement ist in Fig. 3 als Linie 131 gezeigt. Der Prozeßschritt 260 stellt fest, ob der Wert des akkumulierten horizontalen Abweichungssignales geringer ist als der Wert der linken Grenze. Der Wert der linken Grenze ist eine negative Zahl, die in Abhängigkeit von der jeweiligen Anwendung beliebig gesetzt werden kann. Wenn der Wert des akkumulierten horizontalen Abweichungssignals geringer ist als die linke Grenze, dann setzt der Prozeßschritt 261 den Abweichungssignalwert gleich der linken Grenze, und der Prozeß geht mit der begrenzten Bahnmodifikation weiter. Wenn der Wert des akkumulierten horizontalen Abweichungssignals nicht geringer ist als die linke Grenze, so wird es der Prozeß erlauben j daß der intermediäre Punkt zu einem vollen horizontalen Versetzungsinkrement entlang der Normalen nach links von der vorbestimmten Bahn bewegt wird.
Es wird zu dem Prozeßschritt 256 zurückgekehrt. Wenn der linke Kontakt nicht geschlossen ist, so testet der Prozeßschritt 262 den Zustand des rechten/Kontaktes 122. Wenn der rechte Kontakt geschlossen ist, stellt der Prozeßschritt 264 eine neue Gr15ße des akkumulierten horizontalen Abweichungssignals auf durch Vermehrung des laufenden Wertes des akkumulierten Abweichungssignals durch das vorbestimmte horizontale Inkrement (INC). Der neue Wert des akkumulierten horizontalen Verschiebungssignals repräsentiert eine inkrementale Versetzung in Richtung nach rechts von der vorbestimmten Bahn entlang einer Normalen in einer horizontalen Ebene. Als nächstes testet der Prozeßschritt 266, ob
*5 der neu akkumulierte horizontale Abweichungssignalwert größer als der Wert der rechten Grenze ist. Die rechte Grenze ist eine positive Zahl, die auf ähnliche Weise wie die linke Grenze gebildet ist. Wenn das akkumulierte horizontale Abweichungssignal einen größeren Wert als der Wert der rechten Grenze aufweist, so setzt der Prozeßschritt 267 den Wert des Abweichungssignals gleich der rechten Grenze, und es kann keine größere Bahnmodifikation auftreten. Wenn der akkumulierte horizontale Abweichungssignalwert geringer als die rechte Grenze ist, so wird das neue akkumulierte horizontale Abweichungssignal wirksam sein, die Position des intermediären Punktes durch ein volles horizontales Inkrement zu modifizieren.
Der Prozeßschritt 268 testet, ob der untere Kontakt
(also der Kontakt für die Unten-Bewegung) geschlossen ist, Wenn der Kontakt geschlossen ist, so stellt der Prozeßschritt 270 einen neuen Wert für das akkumulierte vertikale Abweichungssignal (AZ) entlang der vertikalen Achse 3B
durch Substrakti.on eines vorbestimmten vertikalen Inkrements (INCZ) von dem laufenden Wert des akkumulierten
vertikalen Abweichungssignals auf.. Das vertikale Inkrement ist In Fig. 3 als Linie 136 als ein* nach oben gerichtete Versetzung dargestellt. Bahnmodifikationen entlang der vertikalen Achse unterhalb der vorbestimmten Bahn "haben ein negatives Vorzeichen, und Bahnmodifikationen entlang der vertikalen Achse oberhalb der vorbestimmten Bahn haben ein positives Vorzeichen. Der Prozeßschritt 272 testet, ob die akkumulierte vertikale Abweic"hungssignalgröße geringer ist als der Wert der unteren Grenze. Die untere Grenze ist eine vorbestimmte negative Zahl, und wenn die Große des Abweichungssignals geringer ist als die untere Grenze, so setzt der Prozeßschritt 237 den akkumulierten vertikalen Abweichungssignaiwert gleich der unteren Grenze, wobei das Ausmaß der Modifikation der Ba?in begrenzt wird. Wenn der Wert des akkumulierten vertikalen Abweichungssignals nicht geringer ist als die untere Grenze, so ist das vertikale AbweicTiungssignal dahingehend wirksam, daß die Position des intermediären Punktes um die volle vertikale inkremental e Große modifiziert wird.
Die Prozeßstufe 274 überprüft den Zustand des oberen 25
Kontaktes 116. Wenn der obere Kontakt geschlossen ist,
so erstellt der Prozeßschritt 276 einen neuen Wert für das akkumulierte vertikale Abweichungssignal, welcher gleich ist dem gegenwärtigen Wert zuzüglich einer vorbestimmten vertikalen inkrementalen Größe (INCZ). Der 30
Prozeßschritt 278 testet den Wert des akkumulierten vertikalen Abweichungssignals gegen eine obere Grenze. Wenn der Wert des akkumulierten vertikalen Abweichungssignals größer ist als die obere Grenze, so setzt der Prozeßschritt 279 den Abweichungssignalwert gleich der ,
oberen Grenze, wodurch das Ausmaß der Bahnmodifikation in die nach oben gerichtete Richtung begrenzt wird.
Wenn der Wert des akkumulierten vertikalen Abweichungssignals nicht größer ist als die obere Grenze, so ist das Abweichungssignal dahingehend wirksam, daß die Position des intermediären Punktes über die volle vertikale inkrementale Große modifiziert wird.
Der Prozeß geht dann zum Schritt 280 weiter, welcher dazu da ist, die rechtwinkligen Koordinatenwerte der intermediären Punkte, definiert im Schritt 214 von Fig. 5d, zu modifizieren. Die Modifizierung kann entlang einer Normalen in einer horizontalen Ebene nach links oder nach rechts von der vorbestimmten Bahn auftreten. Gemäß der bevorzugten Ausflihrungsförm ist die 15
horizontale Ebene definiert durch die X-und Y-Koordinatenachsen des rechtwinkligen Koordinatensystems des Roboters. Daher ist es erforderlich, die Position des Abweichungspunktes entlang der Normalen in F6rm von X-und Y-Koordinatenwerten zu definieren. Wenn wiederum auf Fig. 3 Bezug genommen wird und der Abweichungspunkt OPj betrachtet wird, so müssen die Koordinatenkomponente 130 entlang der X-Achse und die Koordinatenkomponente 132 entlang der Y-Achse bestimmt werden durch das gegebene Inkrement
der Versetzung 131 im rechten Winkel zu der Bahn. Erste 25
und zweite axiale Abweichungssignale, die die rechtwinkligen Koordinatenkomponenten repräsentieren, können durch Multiplizierung der Größe entlang der Normalen (J AXYI) mit dem jeweiligen/Kosinus in den X- bzw. Y-Achsen g0 erzeugt werden. Dies resultiert aus der Beziehung des Winkels θ der vorbestimmten Bahn 128, gemessen bezüglich der X-Achse, und dem Winkel cc der Normalen 131, gemessen in Bezug auf die X-Achse; d.h., OC^ = 90 Grad - Θ. Daraus folgt:
cos to = sinG =
sin «o = cos θ =
worin Sxy = /(X1-X0)2 + (Y1-Y0)2 10
Daher ist die X-Achsen-Komponente der Normalen gleich dem Produkt aus dem Richtungswert U8 und der Größe der akkumulierten horizontalen Abweichung (AXY), und die Y-Achsen-Komponente ist gleich dem Produkt aus dem Richtungswert U7
if- '
und der Größe der akkumulierten horizontalen Abweichung (AXY). Aus der Vereinbarung bezüglich der Vorzeichen für die akkumulierte Abweichung folgt,daß die Y-Achsen-Komponente unter Verwendung des negativen Richtwertes U7 verwendet wird. Unter Bezugnahme auf die Gleichungen, die mit
den Prozeßschritten 280 bis 283 gemäß Fig. 6d verknüpft sind, kann daher ein modifizierter Satz von intermediären Signalen (X_, A., Z_) durch Modifizierung der Komponenten-
u α α.
werte der rechtwinkligen Koordinaten des intermediären Punktes durch die Abweichungssignale erzeugt werden. Die Koordinatenkomponenten der akkumulierten horizontalen Abweichungen werden durch die Schritte 280 und 281 berechnet und die Koordinaten des modifizierten intermediären Punktes werden durch den Schritt 283 berechnet. Ein erstes Koordinaten-Komponentensignal (Z.), welches den Z-Koordi-κ
natenwert darstellt, wird allgebraisch summiert mit dem vertikalen Abweichungssignal (AZ). Ein zweites Koordinaten-Komponentensi.gnal (Xj.) > welches den X-Koordi.natenwert darstellt, wird allgebraisch summiert mit dem ersten axialen
__ Abweichungssignal (XR) und das dritte Koordi.naten-Kompo-D
nentensignal (Yk)» welches den Y-Koordinatenwert darstellt, wird allgebraisch summiert mit dem zweiten axialen Abweichungssignal (Yß).
JZ I UO /D
Es wird wieder auf Fig. 5d Bezug genommen. Nachdem die rechtwinkiigen Koordinatenwerte des intermediären Punktes durch den Prozeßschritt 216 modifiziert worden sind, transformiert der Prozeßschritt 218 diese Koordinaten-
werte in entsprechende generalisierte Koordinatenwerte, die durch die geometrische Konfiguration des Roboterarms definiert sind. Der Prozeßschritt 220 berechnet die inkrementale Änderung der generalisierten Koordinatenwerte, die erforderlich ist, um den Werkzeugmittelpunkt von seiner laufenden Position zu dem modifizierten intermediären Punkt zu bewegen, und ein Satz von differentiellen generalisierten Koordinatenwerten wird, wie weiter ob-en beschrieben, in einem Pufferspeicher warteschlangenmäßig abgespeichert.
Der Prozeß kehrt zurück zu Schritt 208, der testet, ob die Spanne für konstante Geschwindigkeit abgeschlossen ist; wenn nicht, so wird der in den Schritten 208 bis beschriebene Prozeß auf einer iterativen Basis weitergeführt.
Obwohl der Werkzeugmittelpunkt von der vorbestimmten Bahn während der Spanne der konstanten Geschwindigkeit versetzt werden kann, ist es in diesem ersten alternativen Prozeß erforderlich, daß der Werkzeugmittelpunkt zu der vorbestimmten Bahn zurückkehrt, um den vorbestimmten Endpunkt P1 gemäß Fig. 3 zu erreichen. Daher ignoriert der Prozeß am Ende der Spanne der konstanten Geschwindigkeit und während der Endspanne deren Geschwindigkeitsänderung den Zustand der Kontakte 1.16 bis 122 und ändert die Werte der X-, Y- und Z-Koordinaten automatisch um einen inkrementalen Betrag bei jeder Iteration, um den Werkzeugmittelpunkt auf den vorbestimmten Pfad zurückzuführen. Wie weiter oben beschrieben, initiiert der Prozeß diese Rückführung eigenmächtig, beginnend
fünf Iterationen vor dem Ende der Spanne der konstanten Geschwindigkeit. Dieser Punkt des Prozesses wird durch Prozeßschritt 248 nachgewiesen. Solang, wi'· die Anzahl der laufenden Iteration plus fünf kleiner ist als K2. was gleich ist der Summe tn,. plus m2» d.h. die Anzahl der Iterationen in der Anfangsspanne der Geschwindigkeitsänderung und der Spanne der konstanten Geschwindigke.it, solange ist der Bahnmodifikationsprozeß aktiv.
Sobald jedoch die Anzahl der laufenden Iteration plus fünf die Gesamtzahl der Iterationen, K^, übersteigt, geht der Prozeß zum Schritt 242 über, der die Rücksetz-Anzeige (reset flag) setzt und eine Rückkehr des Werkzeugmittelpunktes zu der vorbestimmten Bahn initiiert. Der Prozeßschritt 244 bestimmt, ob die Rücksetz-Anzeige gesetzt 1st. Angenommen, sie ist gesetzt, so geht der Prozeß über zum Prozeßschritt 282, gemäß Fig. 6c, welcher ermittelt, ob der akkumulierte horizontale Abweichungswert entlang der Normalen gleich Null ist. Wenn der Normalen-Wert gleich Null ist, so wird der Werkezugmittelpunkt in der horizontalen Ebene nicht versetzt, und es ist keine horizontale Rückkehr erforderlich. Wenn der Wert entlang der Normalen nicht Null ist, so bestimmt der Prozeßschritt 284, ob der Wert kleiner als Null ist oder nicht. Wenn der Wert nicht kleiner als Null ist, so besteht eine Abweichung nach rechts von der vorbestimmten Bahn, und der Prozeßschritt 286 ist dahingehend wirksam, daß er einen neuen Abweichungswert erstellt, welcher gleich ist dem laufenden Abweichungswert minus dem vorbestimmten horizontalen Inkrement (INC). Der Prozeßschritt 288 bestimmt, ob die neue Abweichungsgröße größer als Null ist. Wenn ja, setzt der Prozeßschritt 290 die Abweichungsgroße gleich Null.
Wenn der Prozeßschritt 284 festgestellt hat, daß die Abweidiungsgröße kleiner als Null war, dann besteht eine Versetzung entlang der Normalen nach links von der vorbestimmten Bahn. In diesem Fall erstellt der Prozeßschritt 292 einen neuen Abweichungswert, der gleich ist dem laufenden Abweichungsert plus einem horizontalen Inkrement. Im Falle des Ausführungsbeispiels werden die gleichen Inkremente verwendet, die zur Erzeugung der Abweichungsversetzungen verwendet werden. Prozeßschritt 294 bestimmt, ob die neue Abweichungsgröße größer als Null ist; wenn ja, setzt der Prozeßschritt 292 die Abweichungsgröße auf Null. In einer ähnlichen Art und
Weise testen die Prozeßschritte 296 bis 307 die Größe 15
der Abweichung entlang der vertikalen Achse; und wenn · eine Abweichung in die negative Z-Richtung besteht, werden vertikale Inkremente zu der Abweichung hinzuaddiert. Wenn eine Abweichung in die positive Z-Richtung besteht, so werden vertikale Rückkehrinkremente von dem Abweichungssignal subtrahiert. Der Prozeßschritt 309 stellt fest, ob die horizontalen und vertikalen Abweichungssignalgrößen Null sind; wenn ja, so löscht der Prozeßschritt 311 die Rücksetz-Anzeige. Wenn noch eine Abweichungsgröße besteht, so geht der Prozeß weiter zu
Schritt 280 gemäß Fig. 6d und dann zu den Schritten und 283, die dahingehend wirksam sind, die X-, Y- und Z-Koordinaten in einer solchen Weise zu modifizieren, daß der Werkzeugmittelpunkt sich zurück in Richtung vor-O0 bestimmte Bahn bewegt.
Es wird wiederum auf Fig. 5d Bezug genommen. Während der letzten fünf Iterationen der Spanne mit konstanter Geschwindigkeit ist der Prozeß gemäß den Schritten bis 220 dahingehend wirksam, daß er eine Rückkehr des Werkzeugmittelpunktes zu der programmierten Bahn initiiert. Am Ende der Spanne der konstanten Geschwindigkeit
bewegt sich der Prozeß zum Schritt 222, der feststellt, ob die zweite Spanne der Geschwindigkeitsänderung abgeschlossen ist. Wenn nicht, produzieren die Prozeßschritte 221 bis 225 rechtwinklige Koordinatenwerte eines intermediären Punktes. Wenn der Werkzeugmittelpunkt abseits der vorbestimmten Bahn ist, verursacht der Prozeßschritt 226 eine inkrementaie Modifizierung der Koordinatenwerte, um darin fortzufahren, den Werkzeugmittelpunkt zurück auf die Bahn zu bringen. Die Prozeßschritte 228 und 230 bestimmen die Änderungen in den generalisierten Koordinatenwerten, die den intermediären Punkt repräsentieren, und diese differentiellen Koordinatenwerte werden zwischengespeichert. Der Prozeß gemäß den Schritten 222 bis 230 geht weiter, bis die Anzahl der Iterationen gleich ist Kg> das die Summe m. + nu + m- darstellt. An diesem Punkt wird der Werkzeugmittelpunkt an dem zweiten programmierten Punkt P. plaziert sein, und die Steuerung des Prozesses wird zum Schritt 166 gemäß Fig. 5a verschoben.
Während der im Vorstehenden beschriebene Prozeß der Bahnmodifikation, der den Werkzeugmittelpunkt zu der vorbestimmten Bahn zurückführt, bei einer Anzahl von Anwendüngen annehmbar ist, gibt es andere Situationen, die es erforderlich machen, daß der Werkzeugmittelpunkt in einer von dem programmierten Endpunkt versetzten Position gelassen wird. Unter Bezugnahme auf Fig. 7 wird nun
eine solche Situation beschrieben. 30
Fig. 7a ist eine schematische Darstellung einer Platte 400, welche innerhalb einer Vertiefung, welche durch die Außen!inie 401 dargestellt ist, geschweißt werden soll. Die tatsächliche Orientierung der Platte, die durch die gestrichelten Linien angedeutet ist, ist, wie man sieht, um einen Winkel β von deren gewünschten Orientierung gedreht, während die Position einer der Ecken sich am er-
warteten Platz befindet. Wie im folgenden ausführlicher beschrieben werden wird, ist auch eine Anpassung an eine Translation des Ortes des Teiles möglich. Zum Zwecke der Illustration ist die Größe der Rotation um den Winkel ß übertrieben.
Die Größe von ß ist als eine Funktion des akzeptierbaren Unterschiedes zwischen der tatsächlichen Bahngeschwindigkeit und der programmierten Bahngeschwindigkeit begrenzt, was aus dem Folgen einer Bahnabweichung von der vorbestimmten Bahn durch eine stetig anwachsende Versetzung folgt.
Fig. 7b zeigt die vorbestimmten Bahnen, denen vom Werkzeugmittelpunkt zum Schweißen von zwei Seiten des Umfanges der Platte 400 in der Ausnehmung 401 gefolgt werden muß. Die Bahnen sind durch programmierte Punkte PQ, P. und P2 definiert und umfassen die ausgezogenen Linien 406 und
408. Die gestrichelte Linie in Fig. 7b zeigt die tatsächliche Position der Platte 400. Wie man ohne weiteres feststellen kann, würde im Falle der Verwendung des im Vorstehenden beschriebenen ersten alternativen Prozesses zur Bahnmodifizierung in der vorliegenden Situation der Werkz.eugmittelpunkt über die Platte 400 gehen, wenn er zu dem programmierten Punkt P zurückgeführt werden würde. Deshalb ist es notwendig, den Werkzeugmittelpunkt zu einer Abweichungsposition P, . zu bewegen, welche der programmierten Position P1 entspricht. Hiernach müssen
weitere Modifikationen bewirkt werden, sonst würde der Werkzeugmittelpunkt vom Punkt Pld zu Punkt P2 geführt werden. Wenn der Werkzeugmittelpunkt einer Bahn parallel der Bahn 408 folgen müßte und den programmierten Abstand von Punkt P1 zu Punkt P0 wandern müßte, so würde hieraus 12
eine Bahn folgen, die im Punkt P2d endet. Wie man sieht,
ist der gewünschte Endpunkt für diese zweite vorbestimmte Bahn der Punkt
Wenn bezüglich der Bahn 406 die Abweichmodifikation entlang einer Normalen, wie beim ersten alternativen Prozeß beschrieben, benutzt werden würde, um einen Abweichungspunkt relativ zum Punkt P. zu erhalten, so würde der Werkzeugmittelpunkt am Punkt P1Jn anhalten und sich bei
1^ einer Abweichungsposition entlang einer Normalen vom Punkt P, befinden. Hieraus folgt jedoch, daß die Bahnlänge ^n^idn ^än9er lst a1s die vorbestimmte Bahn PqP.. Es ist daher notwendig, die Koordinaten des Punktes P1d zu finden, bevor die Iteration für den programmierten Endpunkt P,. erreicht wird.
Es wird nun auf Fig. 8 Bezug genommen, um auf geometrische Weise den Prozeß zum Festlegen des Punktes zu erklären, bei dem der Ort des Abweichungspunktes dem Punkt P. . gemaß Fig. 7b entspricht. In Fig. 8 sind die programmierten Punkte PQ und P1 als in der X-Y-Ebene liegend dargestellt. Der Punkt P. . ist der Schnittpunkt der Normalen von P,. mit der Abweichungsbahn 410. Der Punkt P. . ist der gewünschte Anhaltepunkt entlang der Bahn ΡηΡι^η· Der Abstand von PunktPQ zu Punkt P.. ist der gleiche wie der Abstand von PQ zu P-. Wie man erkennt, ist die vorbestimmte Bahn 406, vonPQ zu P., um einen Winkel ß gedreht, um die Abweichbahn oder modifizierte Bahn 410 von PQ zu P,d zu erzeugen. Der Punkt P , ist der intermediäre Punkt entlang der vorbestimmten Bahn 406, von dem aus die Normale die Abweichungsbahn 410 bei dem gewünschten Anhaltpunkt P,jd schneidet. Der Punkt Pk stellt einen intermediären Punkt entlang der vorbestimmten Bahn 410 und der Punkt P^ den Schnittpunkt zwischen der Normalen zur Bahn 406 im Punkt P^ und der Abweichungsbahn 410 dar.
Nachdem das erfindungsgemäße Verfahren zum Ausführen einer Bewegung zwischen dem derzeitigen Punkt und dem nächsten Punkt es erforderlich macht, daß die Spannenlänge in eine berechnete Zahl von Iterationen von inkrementaler Bewegung entlang der vorbestimmten Bahn geteilt wird, ist es wünschenswert, die Anzahl der Iterationen, die durch den Abstand von P- zu P. dargestellt wird, zu bestimmen, d.h. den Betrag, um den die vorbestimmte Bahn reduziert werden muß. Bei Kenntnis dieses Wertes wird es dann möglich sein, den dem Punkt P- entsprechenden Iterationswert (K) zu bestimmen. Unter Bezugnahme wiederum auf Fig. 8 kann gesehen werden, daß es zur Bestimmung der Anzahl der zur Durchführung der Spanne von Pn. zu P1
P'l
erforderlichen Anzahl von Iterationen notwendig ist, die Länge von P- zu P- zu bestimmen. Die mathematischen Gleichungen für die Berechnung dieses Abstandes (S.) sind die folgenden:
P0P1 * P1P1d = S
Pρ 1 P1. = P0P1 " P0Ppl
= P0P1 * P0P1d (COS ß)
= S - S (cos ß)
= S (1- cos ß)
(cos ß) =
P0P1 P0Pk
VTdn rOrkd
S1 = Pp1P1 = S (1-R)
wobei PqP^(J eine gerade Linie ist.
Wenn man sich in Erinnerung ruft, daß eine inkremental Modifikation der intermediären Punktkoordinaten nicht c für alle intermediären Punkte erlaubt ist, so wird man feststellen, daß die tatsächlichen Abweichungspunkte nicht genau eine gerade Linie beschreiben,und die berechnete Länge entlang der Abweichungsbahn 410 wird beeinflußt sowohl durch diese erlaubten schrittweisen Modi-
2Q fikationen als auch durch die inkrementalen Änderungen des Wertes der akkumulierten horizontalen Abweichung. Um die Fehler in dem berechneten Wert von R auf einem Minimum zu halten, die anderenfalls durch diese Variationen eingeführt werden wurden, wird ein Durchschnittswert Qr verwendet, der eher das Verhältnis der Abstände entlang der vorbestimmten Bahn und der Abweichungsbahn als einen einzelnen Wert von R wiederspiegelt. Dieser Durchschnittswert wird berechnet, indem die Werte der Bahnlängenverhältnisse R von intermediären Punkten und ihren zugeordneten Abweichungspunkten akkumuliert werden und durch die Anzahl der akkumulierten Werte dividiert werden. Die Verhältniszahl R wird bei jeder Iteration berechnet, der Durchschnittswert wird nur einmal berechnet. Die Gleichungen für diese Berechnung sind wie folgt:
Akkumulierte Verhältniszahl AR = AR + R
AR
durchschnittliche Verhältniszahl (T = K
!r KT + 1
wobei KT = ein beliebiger Iterationswert zwischen K.. und Kgj für den der Durchschnittswert berechnet wird, mit der Substitution
SL = S (t-Qr), wo Po pkd sich einer geraden Linie annähert.
35
Wenn man den Abstand SL einmal kennt, so kann die entsprechende Anzahl der Iterationen M^, die notwendig sind,
um den Werkzeugmittelpunkt über diesen Abstand hinweg mit der programmierten Geschwindigkeit vorwärts zu bringen, aus der folgenden Gleichung berechnet werden:
MT =
wobei V = programmierte Geschwindigkeit At = Iterationszeit
Pp1Pt - 5L
Mj = Anzahl der Iterationen.
1^ Wie im folgenden beschrieben wird, wird der Wert von M-j. verwendet, um die Iterationswerte der Unterspannen Sp und S3 der vorbestimmten Bahn zu modifizieren.
Es wird Bezug auf Fig. 7b genommen. Beim Erreichen des Punktes Ρ, . durch den Werkzeugmittelpunkt könnte, wenn keine zusätzliche Bahnmodifikation zum Bewegen des Werkzeugmittelpunktes während der Ausführung der nächsten Spanne entsprechend der vorbestimmten Bahn 408 gewünscht werden wurde, die Bahnmodifikationseinrichtung unwirksam gemacht werden und der Werkzeugmittelpunkt würde der Bahn zwischen Punkt P,d und Punkt P^. folgen, vorausgesetzt, daß die Koordinatenkomponenten der intermediären Punkte der Bahn 408 alle durch die Abweichungswerte modifiziert worden sind, die die Modifikation des interme-
diären Punktes P- der Bahn 406 bewirken. D.h., es würde einer Bahn parallel zu der vorbestimmten Bahn 408 zwischen den programmierten Punkten P1 und P2 gefolgt werden, mit der Bahnlänge P,. - Pp und beginnend bei Punkt P^j. Um das
erste alternative Verfahren zur Bahnmodifikation während 35
der Durchführung der Spanne von Punkt P|d zu Punkt P2d zu verwenden, so daß der Werkezugmittelpunkt zu Punkt Ppnfj
geführt werden kann, ist es notwendig, zunächst alle intermediären Punkte unter Verwendung der akkumulierten, bei Punkt P ,.^ wirksamen Abweichungen als Kudi fi kationswerte zu modifizieren und dann weiterhin die intermediären Punkte unter Verwendung der akkumulierten, in Abhängigkeit von Abweichungssignalen erzeugten Abweichungswerten zu modifizieren.
Es wird bemerkt werden, daß hierdurch ein zweireihiger Prozeß der kontinuierlichen Bahnmodifikation vorgeschlagen wird, in dem Abweichungsreferenzwerte auf alle Punkte einer vorbestimmten Bahn als eine erste Modifikation angewendet werden und in dem akkumulierte Abweichungswerte auf ausgewählte Punkte als weitere Modifikation angewendet werden, was er- i°n fl'bliangVgkeit von wahrgenommenen Abweichungen von der Bahn, bewirkt durch die erste Modifikation. ,Durch einen solchen zweireihigen Prozeß, d.h. durch das zweite alternative Verfahren der Anmelderin, müssen die Bahnen zwischen den Punkten P«, P,d und P2ncj gemäß Fig. 7b erzeugt werden.
Dieses zweireihige Verfahren zum Weiterführen der Bahnmodifikation wird unter Bezugnahme auf die Flußdiagramme gemäß Fig. 9 beschrieben. Eine kursorische Oberprüfung der Flußdiagramme der Figuren 9b und 9c enthüllt, daß diese mit den Flußdiagrammen der Fig. 6b und 6c identisch sind; aus diesem Grunde wird hier eine detaillierte Be-3^ Schreibung der hierin enthaltenen Prozeßschritte, d.h. der Schritte 442 bis einschließlich 504, nicht gegeben. Das Flußdiagramm gemäß Fig. 9d zeigt den Prozeß,durch den die Abweichungsreferenzwerte auf Null zurückgeführt werden. Das FTußdiagramm gemäß Fig. 9e gibt die Prozeßschritte zur Berechnung der Koordinatenkomponentenwerte der Abweictiungspunkte an.
Wenn der Koordinaten-Berechnungs-Prozeß zum Block 203 gemäß Fig. 5b fortgeschritten ist, so geht der Prozeß
weiter mit dem Gebrauch der Prozeßschritte der Fig. 9a, 5
beginnend mit dem Entscheidungsschritt 420. Der Schritt 420 ermittelt, ob die gegenwärtige Iteration die erste Iteration der gegenwärtigen vorbestimmten Bahn ist oder nicht. Wenn ja, so werden die Bahnmodifikationsvariablen
auf ihre Anfangswerte gesetzt, und zwar im Schritt 422. IO
Wenn nicht, geht der Prozeß weiter zum Entscheidungsschritt 424. Wie weiter oben diskutiert, müssen die Abweichungsreferenzwerte verwendet werden, um alle Punkte der gegenwärtigen vorbestimmten Bahn zu modifizieren.
Daher sind die Anfangswerte der Abweichungsreferenz-15
signale gleich den Koordinatenkomponenten der Versetzung zwischen der jeweils tatsächlich vorliegenden Position des Werkzeugmittelpunktes und dem ersten programmierten Punkt. Die Koordinaten der tatsächlichen Position haben die (X , Y , Z,). Die Anfangswerte der akkumulierten a a a
horizontalen und vertikalen Abweichungen sind für die gegenwärtige vorbestimmte Bahn gleich Null. Das akkumulierte Verhältnis (AR), welches bei der Berechnung des durchschnittlichen Längenverhältnisses(Qr), wie weiter oben beschrieben, verwendet wird, wird mit einem Anfangswert von 1 versehen. Der Anfangswert (KT), welcher verwendet wird, um das durchschnittliche Längenverhältnis (Qr) zu berechnen, wird 80 % der Iterationen der Unterspanne der konstanten Geschwindigkeit gleichgesetzt.
Entscheidungsschritt 424 bestimmt, ob die übersteuerungs-
Referenz-Abweichung zurückgesetzt werden muß oder nicht. Dieses Reset wird durch Schließen des Kontaktes 123 in Fig. 2 bewirkt. Wenn ja, so fährt der Prozeß fort, mit g5 dem Flußdiagramm der Fig. 9d, welches anschließend beschrieben wird. Wenn nicht, dann geht der Prozeß weiter zum Entscheidungsschritt 425, um zu bestimmen, ob der Bahnmodifikationsprozeß für die vorliegende vorbestimmte
Bahn freigegeben ist oder nicht. Der Bahnmodifikationsprozeß wird freigegeben durch eine programmierte Funktion. Wenn ja, dann fährt der Prozeß mit dem Entscheidungsschritt 426 fort. Wenn nein, dann fährt der Prozeß mit dem Flußdiagramm gemäß Fig. 9e fort, welches weiter unten beschrieben wird. Beim Entscheidungsschritt 426 wird der Zustand des Rücksetz-Kontaktes 115 (reset) getestet. Wenn der Rücksetz-Kontakt 115 geschlossen ist, dann wird die Rücksetz-Anzeige (reset flag) durch den Prozeßschritt 428 gesetzt. Wenn nicht, dann springt der Prozeß über auf den Prozeßschritt 430, wo der Zustand der Rücksetz-Anzeige getestet wird. Wenn die Rücksetz-Anzeige gesetzt ist, geht der Prozeß weiter mit dem Flußdiagramm gemäß Fig. 9c, bei dem bereits festgestellt worden ist, daß es mit demjenigen der Fig. 6c identisch ist und daher nicht näher beschrieben wird. Wenn die Rücksetz-Anzeige nicht gesetzt worden ist, dann fährt der Prozeß weiter mit der Verarbeitung der Iterations-Warteschlangen der Schritte 432 bis 436. Diese Schritte arbeiten in der gleichen Art und Weise wie die Schritte 250 bis 254 gemäß Fig. 6a, um nachzuprüfen, weiche intermediären Punkte mit inkrementalen Änderungen der akkumulierten Abweichungswerte versehen werden müssen. Wenn
der Iterations-Warteschlangen-Prozeß eine Änderung der akkumulierten Abweichungswerte erlaubt, geht der Prozeß im Flußdiagramm der Fig. 9b weiter, bezüglich dem bereits festgestellt worden ist, daß es sich um ein Duplikat des
Flußdiagramms der Fig. 6b handelt. Wenn der Iterations-30
Warteschlangen-Prozeß keine Änderung der akkumulierten Abweichungswerte erlaubt, geht der Prozeß weiter mit dem Flußdiagramm gemäß Fig. 9e.
Bevor der Vorgang der Modifizierung der intermediären 35
Punktkoordinaten beschrieben wird, wird der Prozeß und die Wirkungsweise des Flußdiagramms gemäß Fig. 9d beschrieben. Es wird auch Bezug genommen auf Fig. 7b und
insbesondere auf den Abweichungspunkt P. ., die Abweichungsbahn p^dP2d un(* die vorbestimmte Wenn alle Punkte der vorbestimmten Bahn P.P2 durch die auf den Punkt P1 zum Erzeugen der Koordinaten des Punktes Ρ,.^ anwendbaren Abweichungswerte modifiziert werden würden, dann würde die Bahn Pi^Pd von dem Werkzeugmittelpunkt gefolgt werden. Unter der Annahme jedoch, daß beim Beginn der Bahn P-iH^pd ^e Abweichungsreferenzwerte zurückgesetzt werden müssen, würde der Werkzeugmittelpunkt von seiner augenblicklichen Position P. . zum Punkt P2 bewegt werden. Das Flußdiagramm gern'äß Fig. 9d ist dahingehend wirksam, daß es die zur Erzeugung dieser Bewegung notwendigen Änderungen in den Abweichungsreferenzwerten erzeugt. Ein kurzer Vergleich des Flußdiagramms gemäß Fig. 9d mit demjenigen gemäß Fig. 9c zeigt, daß die hierin enthaltenen Verfahren gleich sind. Da es wünschenswert ist, den Werkzeugmittelpunkt zu der vorbestimmten Bahn zwischen dem ersten und dem zweiten programmierten Punkt zurückzuführen, müssen die Abweichungsreferenzwerte auf Null reduziert werden. Dies wird auf die gleiche inkrementale Weise getan, in der die akkumulierten Abweichungswerte auf Null reduziert wurden. D.h., die Größen der Abweichungsreferenzwerte werden während jeder Iteration durch die Größe der anwendbaren inkrementalen Versetzung reduziert.
Es wird nun auf Fig. 9d Bezug genommen. Man sieht, daß der Entscheidungsschritt 510 feststellt, ob der Abweichungs referenzwert Xref» der auf die X-Achsen-Koordinaten-Komponente anwendbar ist, ungleich Null ist. Wenn ja, so stellt der Schritt 512 fest, ob er einen negativen Wert hat. Wenn ja, wird seine· Größe um diejenige der 3^ inkrementalen Versetzung vermindert durch Addition beim Schritt 514 und wenn er positiv ist, dann wird diese
Verminderung der Größe begleitet durch eine Substraktion beim Schritt 518. Das Resultat jeder der beiden Schritte wird getestet, um herauszufinden, ob die Verminderung das Vorzeichen des Abweichungsreferenzwertes geändert hat, und wenn ja, setzt der Schirtt 522 den Wert gleich Null. In einer ähnlichen Art und Weise sind die Schritte 524 bis 536 wirksam, um eine Größe des Abweichungsreferenzwertes der Y-Achsen-Koordinatenkomponente ungleich Null zu vermindern. Ebenso sind die Schritte 538 bis 550 dahingehend wirksam, daß sie einen Abwei.ctiungsreferenzwert einer Z-Achsen-Koordinatenkomponente ungleich Null vermindern. Der Entscheidungsschritt
552 stellt fest, ob alle Abweichungsreferenzwerte gleich Null sind oder nicht, und, wenn ja, setzt die Abweichungs-Referenz-Rlicksetz-Anzeige (offset reference reset flag), die im Entscheidungsschritt 424 der Fig. 9a getestet wurde.zurück.
Ob der Prozeß nun über die Flußdiagramme der Fig. 9b, 9c oder 9d weitergegangen iste,s/wird letztlich das Flußdiagramm gemäß Fig.9e erreichen, worin die Berechnungen durchgeführt werden, die die vorbestimmten Bahnpunkte ver-25
setzen und die ermitteln, welcher intermediäre Punkt der Schlußpunkt sein soll.
Bei der Beschreibung der Berechnungsschritte des Flußg0 diagramms der Fig. 9e wird auch Bezug genommen auf die geometrischen Darstellungen der Fig. 7b und 8. Der Prozeßschritt 556 berechnet den Abstand zwischen dem vorliegenden Punkt P0 zu dem intermediären Punkt P. der Iteration K entlang der vorbestimmten Bahn von dem programmierten Punkt P0 zu dem programmierten Punkt P.. Der Prozeßschritt 558 berechnet die Richtungskosinusse \}y und Ug. Der Prozeßschritt 560 berechnet die Koordi-
„ * α β 4
natenwerte der Koordinatenachsenkomponenten der akkumulierten horizontalen Abweichung, erzeugt in Abhängigkeit von Abweichungssignalen während der Durchführung der laufenden Bahn. Diese Werte wurden willkürlich mit Xß und Y„ bezeichnet. Die Berechnung folgt der gleichen mathematischen Analyse, die zur Berechnung der Koordinatenachsenkomponenten für die akkumulierten Abweichungswerte des ersten alternativen Systems der Übersteuerung der vorbestimmten Bahn gebraucht wurde. Der Prozeßschritt 562 vollführt eine Translation der intermediären Punktkoordinaten in Koordinaten des Abwei.chungspunktes entlang der Bahn von PQ zu P1dn· Die umgerechneten Koordinaten stellen die augenblickliche Position des Werkezugmittelpunktes dar und weisen die Form X„, Y,, Z,
α α a
auf. Die Werte von Xref> Vef ur)(* Zref sind diejenigen, die während der Durchführung des Prozeßschrittes 424 gemäß FIg. 9a oder des Prozesses von Fig. 9d bestimmt wurden und sie stellen die Werte der Koordinatenkomponente der Abweichungen dar, die wirksam sind, alle intermediären Punkte der laufenden Bahn zu modifizieren. Modifizierte Koordinatenkomponenten des ersten programmierten Punktes PQ werden durch den Schritt 562 ebenfalls berechnet unter der Verwendung der Referenz-Abweichungs-Koordinatenkomponenten zur Erzeugung der Koordinaten des Anfangspunktes PQ. der Abweichungsbahn, der in Fig. als mit PQ zusammenfallend dargestellt ist. Der Punkt P. . von Fig. 7b ist ein Beispiel eines Anfangspunktes einer Abweichungsbahn, welcher von einem programmierten. Punkt versetzt ist. Weiterhin wird man jetzt erkennen, daß, falls in Fig. 7a die Platte 400 so verschoben worden wäre, daß keine ihrer Ecken an dem erwarteten Platz gewesen wäre, durch Zuweisung geeigneter Werte zu den für den ersten programmierten Punkt P« wirksamen Abweichungsreferenzwerten der Translation der Platte für alle nachfolgenden programmierten Punkte Rechnung getragen worden wäre.
Per Prozeß geht dann weiter zum Schritt 564, wo der Abstand entlang der Abwei.chungsbahn 410 von Pn. zu dem intermediären Abweichungspunkt P. . berechnet wird. Der Prozeßschritt 566 berechnet die akkumulierte Verhältniszahl AR des Abstandes entlang der programmierten vorbestimmten Bahn zu dem Abstand entlang der versetzten vorbestimmten Bahn. Der Entscheidungsschritt 568 testet
den Wert der Iterationszahl (K), um zu bestimmen, ob IO
er gleich ist dem Wert der Iterationszahl KT der Endpunkt-Vorhersage. Wenn nicht, dann geht der Prozeß weiter, indem er zu der angemessenen Stelle in dem Transformationsprozeß der Fig. 5d zurückkehrt. Wenn jedoch der Iterationswert gleich ist dem berechneten
Wert, dann geht der Prozeß weiter mit dem Berechnungsschritt 570. Der Schritt 570 führt die weiter oben in Hinblick auf Fig. 8 diskutierten Rechnungen durch, nämlich erstens, Bestimmung der Länge der Spanne vom Punkt Pp1 zum Punkt P1 (d.h. das Spannlängendifferential Si), zweitens Bestimmung der Anzahl der Iterationen (Mt), die erforderlich sind zur Durchführung dieser Spanne, und drittens Reduzieren der Iterationswerte (K«, K3) der Spannenenden für die Unterspannen der konstanten Geschwindigkeit und der Verzögerung durch die berechnete Anzahl der Iterationen (Mt). Hiernach geht der Prozeß weiter, indem er zu der angemessenen Stelle des Flußdiagramms gemäß Fig. 5d zurückkehrt.
Es wird bemerkt werden, daß während jeder Iteration durch die Schritte 556 bis 566 Abwei.chungspunktkoordinaten und Längenverhältnisse, die für die Berechnungen bezüglich der Voraussage für den Endpunkt notwendig sind, erzeugt werden. Sowie der Werkzeugmittelpunkt entlang der Abweichungsbahn zum Punkt P.. gelangt, wird der Wert von K auf den neuesten Stand gebracht, um zu reflektieren, welche Iteration gerade verarbeitet wird.
321Ü675
w t» β · ·
Wenn K gleich ist dem Wert von KT, dann ist der Werkzeugmitte'lpunkt ungefähr 80 % durch die Unterspanne S2
der konstanten Geschwindigkeit hindurch. An diesem Punkt 5
stellt der Durchschnittswert der Längenverhältnisse eine gute Annäherung des Kosinus des Drehwinkels dar, so daß der benötigte Endpunkt mit ausreichender Genauigkeit
vorhergesagt werden kann. Um vom Punkt P, . zu Punkt POnrI fortzufahren, ., .. . . Λ , Jd n . 2n? /werden die Abweichungsreferenzwerte gegebene Anfangswerte sein, die den Koordinatenkomponenten der Versetzung zwischen P* und P,. entsprechen. Wie weiter oben festgestellt, werden diese Werte die Bahn von P.d zu P_. erzeugen. Um den Werkzeugmittelpunkt nach PonH zu bewegen, müssen die akkumulierten Abweichungswerte, die mit der ersten Iteration dieser Bahn auf Null initialisiert werden wurden, noch einmal durch Abweichung der Signale inkremental geändert werden, um die Rotation um den Winkel ß der Bahn PinP2d zu bewirken·
Während die Erfindung entsprechend den bevorzugten Ausführungsformen gemäß den beigefügten Zeichnungen im Detail dargelegt wurde und während die bevorzugten Ausführungsbeispiele im Detail beschrieben wurden, ist es nicht die Absicht, hierdurch die Erfindung auf diese Details/zu beschränken. Im Gegenteil ist es beabsichtigt, alle Modifikationen, Abänderungen und Äquivalente, die unter den Geist und den Umfang der beigefügten Ansprüche fallen, zu umfassen.
Sämtliche aus der Beschreibung, den Ansprüchen und Zeichnungen hervorgehende Merkmale und Vorteile der Erfindung, einschließlich konstruktiver Einzelheiten und räumlicher Anordnungen, können sowohl für sich als auch in beliebi.ger Kombination erfindungswesentlich sein.

Claims (10)

B4TENT/iNI4^ILTE ^"BROSED Ka BROSE D-6023 MDnchen-Pullach. Wiener Str. 2; Tel. (083) 7 ?3 30.71; Telex £21214-7 bros'd; Cpblef·: -Patentibus» München Anmelderin: CINCINNATI MILACRON li.C, 4701 Marburg Avenue, Cincinnati, Ohio 45209/USA Ihr Zeichen: - Tag: 22. März 1982 Yourref: Case 8tO6F Date: Re/hö PATENTANSPRÜCHE My Vorrichtung zum Modifizieren der Bewegung eines auf ein Funktionselement bezogenen Werkzeugmittelpunktes, wobei, die Bewegung entlang vorbestimmter Bahnen zwischen programmierten Punkten stattfindet und durch Eingangssignale definiert ist, die Positionen und Bahngeschwindigkeiten relativ zu einem rechtwinkligen Koordinatensystem darstellen, wobei die Vorrichtung folgendes umfaßt: a) Einen Roboterarm mit einer mit dem Werkzeugmittelpunkt verknüpften Einrichtung zur Schaffung einer Vielzahl von Bewegungsachsen, um den Werkzeugmittelpunkt entlang vorbestimmter Bahnen zu bewegen, wobei die Vielzahl der Bewegungsachsen ein generalisiertes Koordinatensystem definieren, b) eine Einrichtung zum Erzeugen eines Abweichungssignals zum Befehligen einer Positionsänderung der Werkzeugmittelpunktes abseits der vorbestimmten Bahn, und c) eine Steuerung mit einer Einrichtung zum Speichern . der Eingangssignale und einer servomechanischem Schaltung, die mit den Betätigungsorganen zur Bewegung des Werkzeugmittelpunktes entlang der vorbestimmten Bahnen verbunden sind, wobei die Steuerung die folgenden Schritte durchführt:
1. Abrufen erster Eingangssignale, die erste und zweite programmierte Punkte und eine zwischen diesen liegende Bahηgeschwind!gkeit darstellen,
2. in Abhängigkeit der ersten Eingangssignale einen Satz von intermediären Signalen Erzeugen, die intermediäre Koordinatenwerte darstellen, die abhängen von den rechtwinkl igen/Koordinatenachsen eines intermediären Punktes, der um einen inkrementalen Abstand entfernt von dem ersten programmierten Punkt entlang der vorbestimmten Bahn angeordnet ist,
3.Modifizieren des Satzes der intermediären Signale in Abhängigkeit von den Abweichungssignalen, um modifizierte intermediäre Signale zu erzeugen, die einen gegenüber dem intermediären Punkt versetzten Abweichungspunkt darstellen,
4. in Abhängigkeit von dem modifizierten Satz von intermediären Signalen Erzeugen eines Satzes von individuellen Steuersignalen, die generalisierte Koordinatenwerte darstellen, die abhängen von dem generalisierten Koordinatensystem des Abweichungspunktes,
5. Zuführen der individuellen Steuersignale zu der servomechanischen Schaltung zum Betreiben der Betätigungsorgane in einer koordinierten Art und Weise, um den Werkzeugmittelpunkt zu dem Abweichungspunkt zu bewegen,
6. Wiederholen der Schritte 2 bis 5, um den Werkzeugmittelpunkt zu veranlassen, sich durch eine
Serie von Abweichungspunkten zu bewegen, die
gegenüber einer Serie von gleichmäßig beabstandeten intermediären Punkten entlang der vorbestimmten Bahn versetzt sind,
7. Wiederholen der Schritte 1 bis 6, um den Werkzeugmittelpunkt dazu zu veranlassen, sich entlang Abweichungsbahnen zu bewegen, die gegenüber den vorbestimmten Bahnen versetzt sind.
2. Vorrichtung nach Anspruch 1, wobei die Einrichtung zum Erzeugen eines Abweichungssignals weiterhin folgendes umfaßt:
2Q a) Eine Einrichtung zum Erzeugen von horizontalen Abweichungssignalen, die Änderungen der horizontalen Lage in entgegengesetzten Richtungen senkrecht zu der vorbestimmten Bahn darstellen,
b) eine Einrichtung zum Erzeugen vertikaler Abweichungssignale, die Änderungen der vertikalen Lage in entgegengesetzten Richtungen parallel zu einer vertikalen Achse darstellen, und
c) eine Einrichtung zum Erzeugen eines Abweichungs-Rücksetz-Signals, welches Änderungen der horizontalen und der vertikalen Lagen zum Zurückführen des Werkzeugmittelpunktes zu der vorbestimmten Bahn darstellt.
3. Vorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß der Schritt des Modifizierens eines Satzes von intermediären Signalen weiterhin folgende Schritte umfaßt: 5
a) Erzeugen eines Satzes von Abweichungsreferenzsignalen, die Versetzungen relativ zu den rechtwinkligen Koordinatenachsen darstellen und die dahingehend wirksam sind, alle Sätze von intermediären Signalen einer
vorbestimmten Bahn zu modifizieren,
b) Erzeugen eines Satzes von akkumulierten Abweichungssignalen, die Versetzungen relativ zu den rechtwinkligen Koordinatenachsen darstellen, zum Modifizieren
ausgewählter Sätze von intermediären Signalen der vorbestimmten Bahn in Abhängigkeit vom Auftreten eines Abweichungssignals, und
c) Modifizieren des Satzes von intermediären Signalen in 20
Abhängigkeit des Satzes der Abweichungsreferenzsignale
und des Satzes der akkumulierten Abweichungssignale zum Erzeugen modifizierter intermediärer Signale, die einen von dem intermediären Punkt um die Netto-Veroc Setzungen relativ zu den rechtwinkligen Koordinatenachsen versetzten Punkt darstellen, die durch den Satz der Abweichungsreferenzsignale und den Satz der akkumulierten Abweichungssignale bewirkt sind.
QQ 4. Vorrichtung zum Modifizieren der Bewegung eines auf ein Funktionselement bezogenen Werkzeugmittelpunktes, wobei die Bewegung entlang vorbestimmter Bahnen zwischen programmierten Punkten stattfindet und durch Eingangssignale definiert ist, die Positionen und Bahngeschwin- digkeiten relativ zu einem rechtwinkligen Koordinatensystem darstellen, wobei die Vorrichtung folgendes umfaßt:
* et ο
a) Einen Roboterarm mit
1. einem Unterteil,
2. einem oberen Arm, dessen eines Ende in mechanischer Verbindung mit dem Unterteil steht und der bezüglich des Unterteils um zwei aufeinander senkrecht stehende Rotationsachsen bewegbar ist,
3. einen unteren Arm, dessen eines Ende dem Funktionselement zugeordnet ist und dessen anderes Ende mit dem anderen Ende des oberen Armes über eine dritte Drehachse schwenkbar verbunden ist, und
4. eine Mehrzahl von Betätigungsorganen, von denen ein jedes unabhängig eine der Rotationsachsen steuert, wobei diese Rotationsachsen und der obere und der untere Arm ein generalisiertes Koordinatensystem definieren, welches unabhängig vom rechtwinkligen Koordinatensystem ist, und
b) Mittel zum Erzeugen eines Abweichungssignals zum Befehligen einer Lageänderung des Werkzeugmittelpunktes abseits der vorbestimmten Bahn,und
c) eine Steuerung mit einer Einrichtung zum Speichern der Eingangssignale und einer servomechanischen Schaltung, die mit den Betätigungsorganen zur Bewegung des Werkzeugmittelpunktes entlang den vorbestimmten Bahnen verbunden ist, wobei die Steuerung folgende Schritte
durchführt:
30
1. Abrufen erster Eingangssignale, die erste und zweite programmierte Punkte und eine zwischen diesen liegende Bahngeschwindigkeit darstellen,
2. in Abhängigkeit der ersten Eingangssignale einen
Satz von intermediären Signalen Erzeugen, die intermediäre Koordinatenwerte darstellen relativ zu den rechtwinkligen Koordinatenachsen eines intermediären
Punktes, der um einen i nkremental.en Abstand entfernt von dem ersten programmierten Punkt entlang
der vorbestimmten Bahn angeordnet ist, 5
3. Modifizieren des Satzesder intermediären Signale
in Abhängigkeit von den Abweichungssignalen, um modifizierte intermediäre Signale zu erzeugen, die einen gegenüber dem intermediären Punkt versetzten Abweichungspunkt darstellen,
4. in Abhängigkeit von dem modifizierten Satz von intermediären Signalen Erzeugen eines Satzes von individuellen Steuersignalen, die general i.sierte Koordinatenwerte darstellen, die abhängen von dem generalisierten Koordinatensystem des Abweichungspunktes ,
5. Zuführen der individuellen Steuersignale zu der servomechanischen Schaltung zum Betreiben der Betätigungsorgane in einer koordinierten Art und Weise,
2Q um den Werkzeugmittelpunkt zu dem Abweichungspunkt zu bewegen,
6. Wiederholen der Schritte 2 bis 5, um den Werkzeugmittelpunkt zu veranlassen, sich durch eine Serie von Abweichungspunkten zu bewegen, die gegenüber einer Serie von gleichmäßig beabstandeten intermediären Punkten entlang der vorbestimmten Bahn versetzt sind,
7. Wiederholen der Schritte 1 bis 6, um den Werkzeugmittelpunkt dazu zu veranlassen, sich entlang Abweichungsbahnen zu bewegen, die gegenüber den vorbestimmten Bahnen versetzt sind.
5. Vorrichtung nach Anspruch 4, dadurch gekennzeichnet, daß die Einrichtung zum Erzeugen eines Abweichungssignales weiterhin folgendes umfaßt:
a) Eine Einrichtung zum Erzeugen von horizontalen Abweichungssignalen, die Änderungen der horizontalen Lage in entgegengesetzten Richtungen senkrecht zu der vorbestimmten Baiin darstellen,
b) eine Einrichtung zum Erzeugen vertikaler Abweichungssignale, die Änderungen der vertikalen Lage in entgegengesetzten Richtungen parallel zu einer vertikalen Achse darstellen, und
c) eine Einrichtung zum Erzeugen eines Abweichungs-Rücksetz-Signals, welches Änderungen der horizontalen und der vertikalen Lagen zum Zurückführen des Werkzeugmittelpunktes zu der vorbestimmten Bahn darstellt.
6. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, daß der Schritt des Modifizierens eines Satzes von intermediären Signalen weiterhin folgende Schritte umfaßt:
a) Erzeugen eines Satzes von Abweichungs-Referenzsignalen,
die Versetzungen relativ zu den rechtwinkligen Koordinatenachsen darstellen und dahingehend wirksam sind, alle Sätze von intermediären Signalen einer vorbestimmten Bahn zu modifizieren,
b) Erzeugen eines Satzes von akkumulierten Abweichungssignalen, die Versetzungen relativ zu den rechtwinkligen Koordinatenachsen darstellen, zum Modifizieren ausgewählter Sätze von intermediären Signalen der vorbestimmten Bahn in Abhängigkeit vom Auftreten eines Abweichungssignals und
c) Modifizieren des Satzes von intermediären Signalen in Abhängigkeit des Satzes der Abweichungs-Referenz-Signale und des Satzes der akkumulierten Abweichungssignale zum Erzeugen modifizierter intermediärer Signale, die einen von dem intermediären Punkt um die
Netto-Versetzungen relativ zu den rechtwinkligen Koordinatenachsen versetzten Punkt darstellen, die durch den Satz der Abweichungs-Referenzsignale und den Satz der akkumulierten Abweichungssignale bewirkt sind.
7. Vorrichtung zum Modifizieren der Bewegung eines auf ein Funktionselement bezogenen Werkzeugmittelpunktes, wobei die Bewegung entlang einer vorbestimmten Bahn zwischen zwei programmierten Punkten stattfindet und durch Eingangssignale definiert ist, die Positionen und eine dazwischenliegende Bahngeschwindigkeit relativ zu einem rechtwinkligen Koordinatensystem darstellen, wobei die Vorrichtung folgendes umfaßt:
a) Einen Roboterarm mit
1. einem Untertei1
2. einem oberen Arm, dessen eines Ende in mechanischer ori Verbindung mit dem Unterteil steht und der bezüglich des Unterteils um zwei aufeinander senkrecht stehende Rotationsachsen bewegbar ist,
3. einen unteren Arm, dessen eines Ende dem Funktionselement zugeordnet ist und dessen anderes Ende mit dem anderen Ende des oberen Armes über eine dritte Drehachse schwenkbar verbunden ist, und
4. eine Mehrzahl von Betätigungsorganen, von denen ein jedes unabhängig eine der Rotationsachsen steuert, wobei diese Rotationsachsen und der obere und der untere Arm ein generalisiertes Koordinatensystem definieren, welches unabhängig von dem rechtwinkligen Koordinatensystem ist, und
b) eine Einrichtung zum Erzeugen eines Abweichungssignals zum Befehligen einer Lageänderung des Werkzeugmittelpunktes abseits der vorbestimmten Bahn,
c) eine Steuerung mit einer Einrichtung zum Speichern der Eingangssignale und einer servomechanischen Schaltung, die mit den Betätigungsorganen zum Bewegen des Werkzeugmittelpunktes entlang einer vor bestimmten Bahn verbunden ist, wobei die Steuerung folgende Schritte durchführt:
1. Abrufen erster Eingangssignale, die erste und zweite programmierte Punkte und eine zwischen diesen liegende Bahngeschwindigkeit darstellen,
2. in Abhängigkeit von den ersten Eingangssignalen einen Satz von intermediären Signalen erzeugen, die Koordinatenwerte darstellen, relativ zu den rechtwinkligen Koordinatenachsen eines intermediären Punktes, der um einen inkrementalen Abstand entfernt von dem ersten programmierten Punkt entlang der vorbestimmten Bahn angeordnet ist,
3. Modifizieren des Satzes der intermediären Signale in Abhängigkeit von den Abweichungssignalen, um modifizierte intermediäre Signale zu erzeugen, die einen gegenüber dem intermediären Punkt versetzten Abweichungspunkt darstellen,
4. in Abhängigkeit von dem modifizierten Satz von intermediären Signalen Erzeugen eines Satzes von individuellen Steuersignalen, die generalisierte Koordinatenwerte darstellen, die abhängen von dem generalisierten Koordinatensystem des Abweichungs punktes,
5. Zuführen der individuellen Steuersignale zu der servomechanischen Schaltung zum Betreiben der Betätigungsorgane in einer koordinierten Art und Weise, um den Werkzeugmittelpunkt zu dem Ab weichungspunkt zu bewegen, und
6. Wiederholen der Schritte 2 bis 5, um den Werkzeugmittelpunkt zu veranlassen, sich durch eine
Serie von Abweichungspunkten zu bewegen, die gegenüber der vorbestimmten Bahn zwischen den ersten und
zweiten programmierten Punkten versetzt sind. 5
8. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, daß die Einrichtung zum Erzeugen eines Abweichungssignals weiterhin folgendes umfaßt:
a) Eine Einrichtung zum Erzeugen von horizontalen Abweichungssignalen, die Änderungen der horizontalen Lage in entgegengesetzten Richtungen senkrecht zu der vorbestimmten Bahn darstellen,
b) eine Einrichtung zum Erzeugen vertikaler Abweichungssignale, die Änderungen der vertikalen Lage in entgegengesetzten Richtungen parallel zu einer vertikalen Achse darstellen, und
c) eine Einrichtung zum Erzeugen eines Abweichungs-Rück-
setz-Signals, welches Änderungen der horizontalen und der vertikalen Lagen zum Zurückführen des Werkzeugmittelpunktes zu der vorbestimmten Bahn darstellt.
9. Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, daß das Abweichungssignal eine Änderung der Lage des Werkzeugmittelpunktes parallel zu einer vertikalen Achse befehligt, und daß der Schritt des Modifizierens eines Satzes von intermediären Signalen weiterhin folgende Schritte umfaßt:
a) Erzeugen eines akkumulierten vertikalen Abweichungssignals, welches eine vertikale Versetzung von dem intermediären Punkt parallel zu der vertikalen Achse darstellt,
b) Modifizieren des ersten intermediären Signals in Abhängigkeit von dem vertikalen Abweichungssignal zum Erzeugen modifizierter intermediärer Signale, welche
die Koordinatenwerte relativ zu dem rechtwinkligen 5
Koordinatensystem eines vom intermediären Punkt um
die vertikale Versetzung versetzten Punktes.
10.Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, daß das Abweichungssignal eine Positionsänderung zu einem Punkt entlang einer Normalen zu der vorbestimmten Bahn befehligt, wobei die Normale in einer horizontalen Ebene 1iegt, /wobei der Schritt des Modifizierens der intermediären Signale weiterhin folgende Schritte umfaßt:
Ib
a) Erzeugen eines akkumulierten horizontalen Abweichungssignals, welches eine horizontale Versetzung entlang der Normalen in der horizontalen Ebene darstellt,
b) Modifizieren der ersten intermediären Signale zur
Darstellung der Koordinatenwerte bezüglich des rechtwinkligen Koordinatensystems eines von dem intermediären Punkt um die horizontale Versetzung versetzten Punktes.
DE19823210675 1981-04-03 1982-03-23 Vorrichtung zum dynamischen steuern des werkzeugmittelpunkts eines roboterarms abseits einer vorbestimmten bahn Granted DE3210675A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/250,908 US4403281A (en) 1981-04-03 1981-04-03 Apparatus for dynamically controlling the tool centerpoint of a robot arm off a predetermined path

Publications (2)

Publication Number Publication Date
DE3210675A1 true DE3210675A1 (de) 1982-10-28
DE3210675C2 DE3210675C2 (de) 1989-04-27

Family

ID=22949659

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19823210675 Granted DE3210675A1 (de) 1981-04-03 1982-03-23 Vorrichtung zum dynamischen steuern des werkzeugmittelpunkts eines roboterarms abseits einer vorbestimmten bahn

Country Status (7)

Country Link
US (1) US4403281A (de)
JP (1) JPS57178689A (de)
CA (1) CA1167143A (de)
DE (1) DE3210675A1 (de)
FR (1) FR2503010B1 (de)
GB (1) GB2096362B (de)
SE (1) SE455846C (de)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0114362A1 (de) * 1982-12-22 1984-08-01 Hitachi, Ltd. Verfahren und System zur Steuerung industrieller Roboter
DE3406255A1 (de) * 1983-02-21 1984-09-27 Mitsubishi Denki K.K., Tokio/Tokyo Robotersteuerapparat
DE3422107A1 (de) * 1983-06-14 1984-12-20 Mitsubishi Denki K.K., Tokio/Tokyo Roboter-steuereinrichtung
EP0268495A2 (de) * 1986-11-20 1988-05-25 Unimation Inc. Modules Kontrollsystem für einen Roboter
EP0268491A2 (de) * 1986-11-20 1988-05-25 Unimation Inc. Vielachsenroboter mit Bewegungskontrolle
EP0269372A2 (de) * 1986-11-20 1988-06-01 Unimation Inc. Roboter mit mikroprozessorgestützter Digitalkontrolle
EP0269374A2 (de) * 1986-11-20 1988-06-01 Unimation Inc. Modules Kontrollsystem für einen Roboter
EP2075098A3 (de) * 2007-12-21 2017-12-13 KUKA Roboter GmbH Industrieroboter und Verfahren zum Steuern eines Industrieroboters

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4380696A (en) * 1980-11-12 1983-04-19 Unimation, Inc. Method and apparatus for manipulator welding apparatus with vision correction for workpiece sensing
JPS57113115A (en) * 1980-12-30 1982-07-14 Fanuc Ltd Robot control system
JPS57113116A (en) * 1980-12-30 1982-07-14 Fanuc Ltd Robot control system
JPS5858607A (ja) * 1981-10-05 1983-04-07 Sankyo Seiki Mfg Co Ltd プリセツト式ロボツトにおけるポイント測定方式
JPS5877775A (ja) * 1981-10-07 1983-05-11 Yaskawa Electric Mfg Co Ltd 溶接ロボツトの制御方式
FR2519690A1 (fr) * 1982-01-11 1983-07-18 Montabert Ets Dispositif d'asservissement electro-hydraulique de bras-support articule pour glissiere d'appareil de foration
US4486843A (en) * 1982-03-03 1984-12-04 Nordson Corporation Transitional command position modification for a controller
US4481591A (en) * 1982-03-03 1984-11-06 Nordson Corporation Method and apparatus for modifying a prerecorded sequence of ON/OFF commands for controlling a bistable device operating in conjunction with a moving robot under program control
US4484294A (en) * 1982-03-03 1984-11-20 Nordson Corporation Method and apparatus for modification of a prerecorded programmed sequence of motions during execution thereof by a robot
DE3244307A1 (de) * 1982-11-30 1984-05-30 Siemens AG, 1000 Berlin und 8000 München Robotersteuerung
US4484120A (en) * 1983-04-13 1984-11-20 Nordson Corporation Auxiliary function command presequencing for a robot controller
US4562391A (en) * 1983-06-08 1985-12-31 Inoue-Japax Research Incorporated Robotic positioning system
SE8304100L (sv) * 1983-07-22 1985-01-23 Ibm Svenska Ab System for automatisk kalibrering av rymdkoordinaterna hos en robotgripper i sex frihetsgrader
DE3332749A1 (de) * 1983-09-10 1985-03-28 Ibau Hamburg Ingenieurgesellschaft Industriebau Mbh, 2000 Hamburg Verfahren zum befuellen von kesselfahrzeugen, insbesondere mit schuettgut wie zement
EP0142072A3 (de) * 1983-11-15 1986-12-30 Aida Engineering Ltd. Schleifroboter
JPS6115209A (ja) * 1984-06-29 1986-01-23 Sumitomo Metal Ind Ltd 溶接線倣い方法
JP2628297B2 (ja) * 1984-07-03 1997-07-09 新明和工業株式会社 ロボット制御方法およびその装置
JPS6115207A (ja) * 1984-06-29 1986-01-23 Shin Meiwa Ind Co Ltd ロボツト制御方法およびその装置
JPS61157903A (ja) * 1984-12-28 1986-07-17 Yaskawa Electric Mfg Co Ltd ロボツトの制御方法
JPS61163404A (ja) * 1985-01-12 1986-07-24 Fanuc Ltd サ−ボコントロ−ラのインタフエイス方式
JPH0789286B2 (ja) * 1986-02-28 1995-09-27 株式会社日立製作所 多関節マニピユレ−タの作業原点決定方法
JPS63288658A (ja) * 1987-05-21 1988-11-25 Mitsubishi Electric Corp バリ取り用ロボット装置
JP2511072B2 (ja) * 1987-10-23 1996-06-26 三菱重工業株式会社 ロボットにおける教示デ―タの記録・再生方法
EP0328887A1 (de) * 1988-02-18 1989-08-23 Siemens Aktiengesellschaft Anordnung zum Beeinflussen von automatisierten Prozessen mit Industrierobotern, zum Beispiel beim Abdecken von elektronischen Bauteilen auf Hybridschaltungen
US4969108A (en) * 1988-04-08 1990-11-06 Cincinnati Milacron Inc. Vision seam tracking method and apparatus for a manipulator
US5014183A (en) * 1988-10-31 1991-05-07 Cincinnati Milacron, Inc. Method and means for path offsets memorization and recall in a manipulator
US5102280A (en) * 1989-03-07 1992-04-07 Ade Corporation Robot prealigner
US5197846A (en) * 1989-12-22 1993-03-30 Hitachi, Ltd. Six-degree-of-freedom articulated robot mechanism and assembling and working apparatus using same
WO1992002871A1 (en) * 1990-08-08 1992-02-20 Digital Arts Film & Television Pty. Ltd. Motion control system for cinematography
CA2082790A1 (en) * 1991-12-02 1993-06-03 R. David Hemmerle Automated maintenance system for computer numerically controlled machines
JP2812920B2 (ja) * 1996-05-30 1998-10-22 川崎重工業株式会社 ロボットの動作指令作成方法
US6560513B2 (en) * 1999-11-19 2003-05-06 Fanuc Robotics North America Robotic system with teach pendant
US6313595B2 (en) 1999-12-10 2001-11-06 Fanuc Robotics North America, Inc. Method of controlling an intelligent assist device in a plurality of distinct workspaces
US6204620B1 (en) 1999-12-10 2001-03-20 Fanuc Robotics North America Method of controlling an intelligent assist device
SE0001312D0 (sv) * 2000-04-10 2000-04-10 Abb Ab Industrirobot
US6455800B1 (en) * 2001-01-04 2002-09-24 Festo Corporation Servo-pneumatic modular weld gun
US8219246B2 (en) * 2001-06-13 2012-07-10 Oliver Crispin Robotics Limited System and method for controlling a robotic arm
US20050220582A1 (en) * 2002-09-13 2005-10-06 Tokyo Electron Limited Teaching method and processing system
JP2006099260A (ja) * 2004-09-28 2006-04-13 Fanuc Ltd ロボットプログラム作成装置
US20070142966A1 (en) * 2005-12-20 2007-06-21 Khalid Mirza Process for moving a robot
JP4443614B2 (ja) * 2008-02-27 2010-03-31 トヨタ自動車株式会社 パワーアシスト装置及びその制御方法
JP2011108044A (ja) * 2009-11-18 2011-06-02 Fanuc Ltd N個のロボットを同時に制御するロボット制御装置
JP6008121B2 (ja) * 2013-01-28 2016-10-19 セイコーエプソン株式会社 ロボットおよびロボット制御装置
DE102014226933B3 (de) * 2014-12-23 2016-03-24 Kuka Roboter Gmbh Vorrichtung und Verfahren zum Aufnehmen von Positionen
CN106003083B (zh) * 2016-06-28 2018-02-13 宁波优学智能科技有限公司 一种视频监控机器人
DE102016217118A1 (de) 2016-09-08 2018-03-08 Siemens Aktiengesellschaft Manipulator und Verfahren zur Regelung einer Bewegung eines Manipulators
CN108081255B (zh) * 2016-11-23 2019-10-15 广汽乘用车有限公司 一种机器人零点校准方法及装置
DE102018117244B3 (de) * 2018-07-17 2019-10-31 Lti Motion Gmbh Verfahren zum Ermitteln einer Grobbahn aus einer vorgegebenen Kontur
US11707843B2 (en) * 2020-04-03 2023-07-25 Fanuc Corporation Initial reference generation for robot optimization motion planning
JP7276359B2 (ja) * 2021-01-07 2023-05-18 株式会社安川電機 動作指令生成装置、機構制御システム、コンピュータプログラム、動作指令生成方法及び機構制御方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2625933A1 (de) * 1975-06-16 1976-12-30 Asea Ab Industrie-roboter
DE2709335A1 (de) * 1976-03-03 1977-09-15 Unimation Inc Programmierbarer manipulator

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3770947A (en) * 1971-08-20 1973-11-06 City Nat Bank Of Detroit Tool control
US3909600A (en) * 1972-06-26 1975-09-30 Cincinnati Milacron Inc Method and apparatus for controlling an automation along a predetermined path
US3866179A (en) * 1972-09-22 1975-02-11 Giddings & Lewis Numerical control with envelope offset and automatic path segment transitions
US4035706A (en) * 1973-07-26 1977-07-12 Hymie Cutler Offset path generating system particularly useful for numerical control machines
JPS5132587B2 (de) * 1973-09-17 1976-09-13
US3888361A (en) * 1974-05-15 1975-06-10 Unimation Inc Programmed manipulator arrangement for continuously moving conveyor
JPS50159445A (de) * 1974-06-14 1975-12-24
US3920972A (en) * 1974-07-16 1975-11-18 Cincinnati Milacron Inc Method and apparatus for programming a computer operated robot arm
US4025838A (en) * 1974-12-26 1977-05-24 Kawasaki Heavy Industries, Ltd. Signal modification device for memory controlled manipulator apparatus
US4011437A (en) * 1975-09-12 1977-03-08 Cincinnati Milacron, Inc. Method and apparatus for compensating for unprogrammed changes in relative position between a machine and workpiece
SE402540B (sv) * 1976-08-13 1978-07-10 Asea Ab Forfarande och anordning for att vid en givarstyrd industrirobot astadkomma en approximativ transformation mellan givarens och robotarmens olika koordinatsystem for styrning av roboten inom ett forutbestemt ...
US4086522A (en) * 1976-09-08 1978-04-25 Unimation, Inc. Computer assisted teaching arrangement for conveyor line operation
US4162527A (en) * 1977-07-29 1979-07-24 Hamill Company, Inc. Numerically controlled machine tool system with programmable tool offset
US4178632A (en) * 1978-03-06 1979-12-11 Cincinnati Milacron Inc. Method for controlling the operation of a computer operated robot arm
JPS5858682B2 (ja) * 1978-04-26 1983-12-27 ファナック株式会社 産業用ロボツトの制御方式
US4356554A (en) * 1980-09-12 1982-10-26 Thermwood Corporation Method and apparatus for compensating for system error in an industrial robot control

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2625933A1 (de) * 1975-06-16 1976-12-30 Asea Ab Industrie-roboter
DE2709335A1 (de) * 1976-03-03 1977-09-15 Unimation Inc Programmierbarer manipulator

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AUER, B.H.: "Industrieroboter und ihr prakti- scher Einsatz" Lexika-Verlag, Grafenau 1979, S.100 u. 101 *
BLUME, C., DILLMANN, R.: "Struktur und Pro- grammierung von Industrierobotern" in VDI-Z 122 (1980) Nr.5, S.159-165 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0114362A1 (de) * 1982-12-22 1984-08-01 Hitachi, Ltd. Verfahren und System zur Steuerung industrieller Roboter
DE3406255A1 (de) * 1983-02-21 1984-09-27 Mitsubishi Denki K.K., Tokio/Tokyo Robotersteuerapparat
US4594670A (en) * 1983-02-21 1986-06-10 Mitsubishi Denki Kabushiki Kaisha Robot control apparatus
DE3422107A1 (de) * 1983-06-14 1984-12-20 Mitsubishi Denki K.K., Tokio/Tokyo Roboter-steuereinrichtung
EP0269372A2 (de) * 1986-11-20 1988-06-01 Unimation Inc. Roboter mit mikroprozessorgestützter Digitalkontrolle
EP0268491A2 (de) * 1986-11-20 1988-05-25 Unimation Inc. Vielachsenroboter mit Bewegungskontrolle
EP0268495A2 (de) * 1986-11-20 1988-05-25 Unimation Inc. Modules Kontrollsystem für einen Roboter
EP0269374A2 (de) * 1986-11-20 1988-06-01 Unimation Inc. Modules Kontrollsystem für einen Roboter
EP0268491A3 (de) * 1986-11-20 1988-08-03 Unimation Inc. Vielachsenroboter mit Bewegungskontrolle
EP0269372A3 (de) * 1986-11-20 1988-08-17 Unimation Inc. Roboter mit mikroprozessorgestützter Digitalkontrolle
EP0268495A3 (de) * 1986-11-20 1988-08-24 Unimation Inc. Modules Kontrollsystem für einen Roboter
EP0269374A3 (de) * 1986-11-20 1988-08-24 Unimation Inc. Modules Kontrollsystem für einen Roboter
EP2075098A3 (de) * 2007-12-21 2017-12-13 KUKA Roboter GmbH Industrieroboter und Verfahren zum Steuern eines Industrieroboters

Also Published As

Publication number Publication date
FR2503010A1 (fr) 1982-10-08
SE8202088L (sv) 1982-10-04
SE455846C (sv) 1989-11-27
SE455846B (sv) 1988-08-15
GB2096362A (en) 1982-10-13
DE3210675C2 (de) 1989-04-27
FR2503010B1 (fr) 1986-03-07
GB2096362B (en) 1985-02-06
JPH0439086B2 (de) 1992-06-26
CA1167143A (en) 1984-05-08
US4403281A (en) 1983-09-06
JPS57178689A (en) 1982-11-02

Similar Documents

Publication Publication Date Title
DE3210675A1 (de) Vorrichtung zum dynamischen steuern des werkzeugmittelpunkts eines roboterarms abseits einer vorbestimmten bahn
DE3317263C2 (de)
DE2639774C2 (de)
DE2330054C2 (de) Vorrichtung zur Steuerung der Bewegung eines Arbeitselementes eines Roboterarmes
DE112016004725B4 (de) Verfahren zum Teach-ln eines Roboters und Roboterarmsteuervorrichtung
DE2526504C3 (de) Verfahren zur Erstellung eines Programms für die rechnergeführte Steuerung der Arbeitsfunktionen und der Bewegung eines Roboterarmes und Vorrichtung zur Durchführung des Verfahrens
DE102019001948B4 (de) Steuerung und maschinelle Lernvorrichtung
DE4314731C2 (de) Verfahren zur Steuerung eines Kraftfahrzeug-Fahrroboters
DE3236320A1 (de) Vorrichtung zum bewegen eines werkzeugmittelpunktes eines funktionselementes, insbesondere eines roboterarms
DE68926739T2 (de) Lernverfahren und steuergerät für ein roboter
WO1993012475A1 (de) Verfahren zur optimierung von steuerparametern für ein system, das in abhängigkeit der steuerparameter ein ist-verhalten aufweist
DE3406255A1 (de) Robotersteuerapparat
DE3208435C2 (de) Steuerungsvorrichtung zum Führen eines Lichtbogenschweißautomaten
DE102014103370B4 (de) Verfahren und Vorrichtung zur zeitdiskreten Steuerung eines Manipulators
DE112016005365T5 (de) Direktes Lehrverfahren eines Roboters
DE2735632A1 (de) Verfahren und anordnung zum steuern eines industrie-roboters
DE102004026813A1 (de) Verfahren und Vorrichtung zum Steuern von Handhabungsgeräten
DE102014224193B9 (de) Verfahren und Vorrichtung zur Fehlerhandhabung eines Roboters
DE4200870A1 (de) Verfahren zum steuern eines fahrroboters fuer ein automobil
DE102011108282A1 (de) Numerische Steuerung für eine Mehrachsenmaschine zum Bearbeiten einer geneigten Bearbeitungsebene
DE102020121561B3 (de) Steuerungsverfahren für ein bilaterales Teleoperationssystem, Controller, Teleoperationssystem und Verwendung des Controllers und/oder des Teleoperationssystems
DE3806966A1 (de) Steuersystem
EP0167080A1 (de) Rechnersteuerung für einen Mehrachsen-Industrieroboter
DE69610284T2 (de) Verfahren zur robotersteuerung
DE102020126209A1 (de) Roboter

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G05B 19/02

8126 Change of the secondary classification

Ipc: ENTFAELLT

8127 New person/name/address of the applicant

Owner name: CINCINNATI MILACRON INDUSTRIES, INC., CINCINNATI,

8128 New person/name/address of the agent

Representative=s name: BROSE, D., DIPL.-ING., PAT.-ANW., 8023 PULLACH

8127 New person/name/address of the applicant

Owner name: CINCINNATI MILACRON INC. (EINE GES. N.D. GESETZEN

8128 New person/name/address of the agent

Representative=s name: BROSE, D., DIPL.-ING. RESCH, M., DIPL.-PHYS., PAT.

8128 New person/name/address of the agent

Representative=s name: BROSE, D., DIPL.-ING.DIPL.-WIRTSCH.-ING., PAT.-ANW

D2 Grant after examination
8364 No opposition during term of opposition