DE2330054C2 - Vorrichtung zur Steuerung der Bewegung eines Arbeitselementes eines Roboterarmes - Google Patents
Vorrichtung zur Steuerung der Bewegung eines Arbeitselementes eines RoboterarmesInfo
- Publication number
- DE2330054C2 DE2330054C2 DE2330054A DE2330054A DE2330054C2 DE 2330054 C2 DE2330054 C2 DE 2330054C2 DE 2330054 A DE2330054 A DE 2330054A DE 2330054 A DE2330054 A DE 2330054A DE 2330054 C2 DE2330054 C2 DE 2330054C2
- Authority
- DE
- Germany
- Prior art keywords
- signals
- path
- coordinate system
- coordinate
- robot arm
- 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.)
- Expired
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/1651—Programme controls characterised by the control loop acceleration, rate control
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/416—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control of velocity, acceleration or deceleration
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33099—Computer numerical control [CNC]; Software control [SWC]
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/35—Nc in input of data, input till input file format
- G05B2219/35354—Polar coordinates, turntable
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/35—Nc in input of data, input till input file format
- G05B2219/35543—Cartesian to polar and vice versa
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/41—Servomotor, servo controller till figures
- G05B2219/41477—Servo loop with analog position sensor for continuous path control
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/43—Speed, acceleration, deceleration control ADC
- G05B2219/43006—Acceleration, deceleration control
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/45—Nc applications
- G05B2219/45051—Transfer line
Landscapes
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Mechanical Engineering (AREA)
- Physics & Mathematics (AREA)
- Robotics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Manufacturing & Machinery (AREA)
- Human Computer Interaction (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Numerical Control (AREA)
- Toilet Supplies (AREA)
- Electrochromic Elements, Electrophoresis, Or Variable Reflection Or Absorption Elements (AREA)
- Pinball Game Machines (AREA)
- Control Of Position Or Direction (AREA)
Description
Die Erfindung bezieht sieh auf eine Vorrichtung zur Steuerung der Bewegung eines Arbeitselements eines
Roboterarmes längs einer vorbestimmten, geradlinigen Bahn, wobei der Roboterarm mehrere Bewegungsachsen
aufweist, die ein erstes Koordinatensystem definieren, wobei für jede Bewegungsachse ein Arbeitselement
vorgesehen ist und wobei mindestens eine dieser Bewegungsachsen eine Drehbewegungsachse ist, mit
einem Speicher, der Signale enthält, die Bahnpunkten und Bahngeschwindigkeiten entsprechen, mit einem
Bedienpult zur Eingabe der Signale in den Speicher, wobei die Signale die Bahnpunkte in einem zweiten,
vom Roboterarm unabhängigen Koordinatensystem bezeichnen, und mit einer Koordinatentransformationseinrichtung,
mit der die Signale des zweiten Koordinatensystems in Signale des ersten Koordinatensystems
umgewandelt werden.
Roboterarme, die auch als programmierbare Bedienungsgeräte oder Handgeber bezeichnet werden,
werden in industriellen Arbeitsprozessen eingesetzt. Ihre Arbeitselemente sind hierbei ein Greifer, ein
Werkzeughalter usw., die das Werkstück ergreifen oder
bestimmte Tätigkeiten an verschiedenen Orten durchführen können.
Solche Roboterarme haben normalerweise drei Freiheitsgrade oder drei gesteuerte Bewegungsachsen,
um die Stellung des Arbeitselementes bezüglich eines Punktes im Raum zu steuern. Zusätzlich hierzu kann es
wünschenswert sein, die Ausrichtung oder Orientierung des Arbeitselements während oder nach der Bewegung
des Arbeitselements zu dem gewählten Raumpunkt zu steuern. Daher benötigt das Arbeitselement, je nach
Verwendungszweck zwei oder drei weitere Freiheitsgrade, unabhängig von den obengenannten Bewegungsachsen.
Um beispielsweise die Orientierung des Arbeitselements längs eines Vektors durch einen
Raumpunkt zu steuern, benötigt man mindestens fünf Freiheitsgrade. Wenn das Element planare Eigenschaften
aufweist, so sind sechs Freiheitsgrade erforderlich. Der bei der vorliegenden Erfindung zur Anwendung
kommende Roboterarm besitzt drei gesteuerte Bewegungsachsen, mit denen die Stellung des Arbeitselements
im Räume gesteuert wird. Es sind zwei weitere gesteuerte Bewegungsachsen vorgesehen, um die
Orientierung des Arbeitselements einzustellen. Schließlich ist noch eine Schaltachse für die Betätigung des
Arbeitselements vorgesehen.
In der Praxis muß ein Roboterann in einer auf den Menschen zugeschnittenen Umwelt arbeiten. Diese
Umwelt wird gemäß dem angelernten menschlichen Vorstellungsvermögen am günstigsten durch vertikale
und horizontale Ebenen beschrieben. Daher ist die naheliegende Ausführung eines Roboterarmes dergestalt,
daß die Freiheitsgrade für die Steuerung seiner Position ein rechtwinkliges Koordinatensystem definieren.
Ein derartiger Roboterarm ist beispielsweise aus der US-PS 36 61 051 bekannt. Jedem Freiheitsgrad ist
ein Antrieb zugeordnet, der eine Bewegung in beliebigen horizontalen oder vertikalen Ebenen erlaubt.
Trotz dieser offensichtlichen Vorteile weist ein Roboterarm, der auf ein rechtwinkliges Koordinatensystem
ausgerichtet ist, verschiedene Nachteile auf. Zunächst können die entsprechenden geradlinigen Antriebssysteme
relativ komplex und teuer sein. Zweitens ist ein solcher Roboterarm notwendigerweise massig und
sperrig und beansprucht Platz. Schließlich ist auch der Betriebsbereich auf ein rechtwinkliges Volumen eingeschränkt,
wodurch die Flexibilität hinsichtlich der Anwendungsmöglichkten eingeschränkt wird. Beispielsweise
kann ein solcher Roboterarm keine Gegenstände hintergreifen.
Zur Vermeidung dieser Nachteile wurden Roboterarme geschaffen, bei denen eine oder mehrere Achsen für
eine lineare Bewegung durch Achsen für eine Drehbewegung ersetzt wurden. Der Roboterarm kann
dann in einem zylindrischen oder kugelförmigen
Volumen arbeiten. Ein weiterer Vorteil eines solchen Roboterarmes liegt darin, daß Antriebseinrichtungen
für Rotationsbewegungen im allgemeinen einfacher sind und damit mit geringerem Kostenaufwand herstellbar
sind, da keine Umsetzung einer Drehbewegung in eine lineare Bewegung erforderlich ist Auch wird durch die
Verwendung von Drehgelenken die Gesamtgröße und der Platzbedarf reduziert Allerdings bringt ein solcher
Roboterarm auch einen wesentlichen Nachteil mit sich. Wenn die Roiationsbewegungsachsen entweder alleine
oder in Kombination mit linearen Bewegungsachsen verwendet werden, so entstehen beachtliche Schwierigkeiten
bei der Koordinierung der Bewegungsachsen für die Definition einer Bahn, der der Roboterarm folgen
soll. Bei diesem Problem setzt die vorliegende Erfindung an.
Wie oben erläutert, entspricht eine Bewegung in horizontalen und vertikalen Ebenen, d. h. entsprechend
den Achsen eines kartesischen Koordinatensystems am besten dem menschlichen Vorstellungsvermögen. Weiterhin
ist es vorteilhaft, wenn ein Punkt an dem Arbeitselement des Roboterarmes auf einer geradlinigen
Bahn zwischen zwei bestimmten Punkten im Raum bewegt wird, wobei das Arbeitselement hierbei eine
bestimmte Orientierung beibehalten soll. Natürlich können in bestimmten Anwendungsfällen auch andere,
nicht geradlinige Bahnen vorteilhaft sein, wenn z. B. Hindernisse umfahren werden sollen. Normalerweise ist
jedoch der geradlinige Bahnverlauf von Vorteil, da man zu seiner Definition lediglich zwei Punkte benötigt,
wodurch die Programmierung des Roboterarmes wesentlich erleichtert werden kann. Weiterhin können
auch geeignete Änderungen der Geschwindigkeit unmittelbar berücksichtigt werden, um einen weichen
Start und ein weiches Anhalten des Arbeitselements bei seiner Bewegung längs der vorbestimmten Bahn
sicherzustellen. Da ein Punkt des Arbeitselements sich entlang einer geraden Linie bewegt, so wird auch ein
von dem Arbeitselement gehaltener Gegenstand keinen Trägheitskräften ausgesetzt, die quer zur Bahn wirken,
was bei Roboterarmen m;,t Drehbewegungsachsen ansonsten zu erwarten wäre. Besonders wenn ein
schwererer Gegenstand bewegt wird kann dieses Merkmal eine große Bedeutung erlangen.
Ein Ansatz für einen Roboterarm mit Drehbewegungsachsen, der über ein entsprechend kartesischen
Koordinaten bewegbares Teil programmierbar ist, und bei dem das Arbeitselement längs einer geradlinigen
Bahn bewegbar ist, ist der US-PS 35 43 910 zu entnehmen. Dort ist ein Roboterarm gezeigt, der gemäß
den eingangs angegebenen Merkmalen bewegt wird. Während Her »Lehrphase« (Programmierung) wird ein
Bedienhebel manuell in einem kartesischen Koordinatensystem bewegt, wodurch über mechanische bzw.
elektrische Kopplung die Antriebsglieder den Roboterarm und damit sein Arbeitselement proportional zur
Bewegung des Bedienhebels bewegen. An den einzelnen Teilen des Armes sind Kodierer angebracht, die
entsprechend der Stellung der einzelnen Teile Signale erzeugen, welche dann für jeden Freiheitsgrad der
Bewegung einzeln gespeichert werden. Bei der automatischen Phase werden diese gespeicherten Signale
abgerufen und den Antrieben zugeführt, wodurch bewirkt wird, daß die Antriebe de.i Roboterarm und
damit sein Arbeitselement entlang der zuvor »programmierten« Bahn bewegen. Diese Techpik wird allgemein
auch als »Playback-Technik« bezeichnet. Nachteilig hieran ist, daß die Programmierung über die fest
vorgegebene Kopplung zwischen Bedienhebel und Roboterarm an die räumliche Konfiguration des
Roboterarmes gebunden ist. Weiterhin folgt Jas Arbeitselement des Roboterarmes bei der automatischen
Phase genau der Bahnkurve, die bei der Programmierung durchlaufen wurde. Ein ungewolltes
Abweichen von der geradlinigen Bahn während der Programmierphase wird damit ständig wiederholt Da
die Geschwindigkeit des Roboterarmes bei der automatischen Phase der Geschwindigkeit der Programmierung
entspricht oder ihr proportional ist. wird auch ein ungünstiger Geschwindigkeitsverlauf, der z. B.
durch einen ungeschickten Programmierer bei diffizileren Bewegungen verursacht wurde, ebenfalls ständig
wiederholt Schließlich kann das Programm nur dadurch geändert werden, daß der zu ändernde Teil der Bahn
vollständig neu programmiert wird.
Aus der DE-OS 19 48 490 ist eine numerische Steuerung für ein Arbeitselement einer Werkzeugmaschine
bekanntgeworden, deren Arbeitselement längs Bewegungsachsen eines rechtwinkligen Koordinatensystems
mittels j°. eines Antriebes pro iiiewegungsachse
verschiebbar ist. Von einem Lochstreifen o. ä. werden der Steuerung Signale eingegeben, die Koordinatenwerten von programmierten Bahnpunkten der von dem
Arbeiiselement zu durchlaufenden Bahn entsprechen. Hieraus werden in von einem Taktgeber fest vorgegebenen,
gleichen und relativ großen Zeitintervallen sogenannte Makro-Posuionszahlen von Zwischenbahnpunkten
errechnet, die auf einer zwei programmierte Bahnpunkte verbindenden, geraden Linie liegen. In
ebenfalls von dem Taktgeber fest vorgegebenen, gleichen und relativ kurzen Zeitintervallen werden
sogenannte Mikro-Positionszahlen von kleineren Wegstücken errechnet, die, vekloriell addiert, die Makro-Positionen
verbinden. Mit dieser Steuerung soll erreicht werden, daß eine feste Zeitbasis für die Erzeugung von
Steuerungssigp.aien für die Antriebe zur Verfügung steht, so daß es möglich ist, die einzelnen Rechenbausteine
im Zeitmultiplexbetrieb zur Durchführung mehrerer Rechenaufgaben einzusetzen. Da das Zeitintervall,
das zur Berechnung der Makro-Positionszahlen zur Verfügung steht, relativ groß ist, können beispielsweise
die Makrc-Positionszahlen für die einzelnen Koordinatenachsen in einem Rechenbaustein ze;(Iich nacheinander
innerhalb des vorgegebenen Zeitintervalles berechnet werden.
Diese Vorrichtung arbeitet jedoch ausschließlich in einem rechtwinkligen Koordinatensystem. Will man
stattdessen die programmierten Bahnpunkte in einem Koordinatensystem eingeben, das von dem Koordinatensystem
der Bewegungsachsen eines Roboterarmes abweicht, so müßten ciie Makro-Positionszahlen oder
die iVtiicro-Positionszahlen einer Koordinatentransformation
unterworfen werden. Transformiert man die Makro-Positionszahlen in ein anderes Koordinatensystem,
so müßten die Mikropositionszahlen dann anschließend in dem transformierten Koordinatensystem
ermittelt werden, was einen großen baulichen Aufwand mit sich bringt. Will man dagegen die
Mikropositionszahlen in das andere Koordinatensystem transformieren, so steht hierfür nur das relativ kleine
Zeitintervall zur Verfügung, an dessen Ende bereits wieder neue Mikro-Positionszahlen transformiert werden
müssen. Eine *<oordinatentransformationseinrichtung für die Mikro-Positionszahlen müßte daher sehr
schnell arbeiten, was wiederum einen hohen technischen Aufwand mit sich br'ngt und daher den Vorteil, bei der
Ermittlung der Makro-Positionszahlen im Zeitmultiplexbetrieb arbeiten zu können, zunichte macht.
Eine Vorrichtung zum Steuern der Bewegung eines Arbeitselements eines Roboterarmes, bei dem die
Bewegung geradlinig erfolgt, ist bekannt.
Demgegenüber ist es Aufgabe der votliegenden Erfindung eine Vorrichtung der im Oberbegriff des
Patentanspruches 1 genannten Art dahingehend zu verbessern, daß möglichst wenig externe Werte bei der
Bedienung der Vorrichtung eingegeben werden müssen.
Diese Aufgabe wird durch die im Kennzeichenteil des Patentanspruches 1 angegebenen Merkmale gelost.
Ein wesentlicher Vorteil der Erfindung liegt darin, daß
die Programmierung unabhängig von dem speziellen Aufbau des verwendeten Roboierarmes in einem
beliebigen Koordinatensystem und damit auch einem kartesischen Koordinatensystem durchgeführt werden
kann. Ein weiterer Vorteil liegt darin, daß das Arbeitselement des Roboterarmes bei der autnmatimkfin Pkqco ci^k clAlc "'if oirior crnr lAWn't π nr% DiUn
bewegt, unabhängig von der bei der Programmierung durchlaufenen Bahn. Weiterhin kann die Bahngeschwin
digkeit in einfacher Weise vorgegeben werden, wobei diese ebenfalls von der bei der Programmierung
ausgeführten Bahngeschwindigkeit unabhängig ist.
Im folgenden wird die Erfindung anhand eines Ausführungsbeispiels in Zusammenhang mit der Zeichnung
ausführlicher erläutert. Es zeigt:
F i g. I eine Gesamtansicht eines Roboterarmes mit
einem allgemeinen Blockschaltbild einer Stcuervorrich
tung hierfür.
F i g. 2 eine schematische Darstellung eines Roboterarmes
bei der die Beziehung zwischen einem rechtwinkligen Koordinatensystem und einem auf den Roboterarm
bezogenen Koordinatensystem dargestellt ist.
Fig. 3 ein detailliertes Blockschaltbild einer Steuereinrichtung
für den Roboterarm.
Fig. 4 ein Flußdiagramm zur Darstellung der Arbeitsschritte des Verfahrens der Erfindung.
F i g. 5a. 5b. 5c und 5d ein detailliertes Flußdiagramm der Arbeitsschritte des Verfahrens der Erfindung.
F i g. 6 ein detailliertes Flußdiagramm der Arbeitsschritte
für die Transformation von Werten in einem kartesischen Koordinatensystem in Werte eines auf den
Roboterarm bezogenen Koordinatensystems: und
Fig. 7 ein detailliertes Flußdiagramm der Arbeitsschritte, mit denen Signale erzeugt werden, die von
einer Antriebs-Schaltung erzeugt werden.
In Fig. 1 ist der Roboterarm allgemein mit dem Bezugszeichen 10 bezeichnet. Der detaillierte Aufbau
des Roboterarmes ist für die vorliegende Erfindung nicht bedeutungsvoll, sofern nur mindestens eine
Drehbewegungsachse vorgesehen ist. Zum besseren Verständnis wurde ein Roboterarm gewählt der
ausschließlich Rotationsbewegungsachsen aufweist Eine Basis 12 weist eine Betätigungsvorrichtung 14 auf,
die mit Hilfe einer Kupplung 16 mit einer drehbar angeordneten Platte 18 verbunden ist Die Betätigungsvorrichtung
kann hierbei elektrisch, hydraulisch, pneumatisch oder sonstwie betätigt werden. Mit der Platte 18
ist eine Betätigungsvorrichtung 20 fest verbunden, wodurch eine zweite Rotationsachse erhalten wird. An
ein arbeitendes Teil der Betätigungsvorrichtung 20 ist ein oberer Arm 22 befestigt Die mechanische
Verbindung zwischen dem oberen Arm 22 und der Betätigungsvorrichtung 20 wird im folgenden als
Schultergeienk 23 bezeichnet An dem oberen Arm 22 ist eine Betätigungsvorrichtung 24 befestigt die für eine
Drehung eines unteren Armelements 26 um den oberen Arm 22 sorgt. Die mechanische Gelenkverbindung, die
den oberen Arm 22 mit dem unteren Armelement 26 verbindet, wird im folgenden als Ellbogengelenk 25
bezeichnet.
Die Betätigungsvorrichtungen 14, 20 und 24 sind ausreichend, um das Ende des unteren Armelements zu
irgendeinem Punkt im Raum innerhalb des möglichen Arbeitsbereiches des Roboterarmes zu bewegen. Wenn
im folgenden die Position des Roboterarmes angesprochen wird, so wird diese durch die beschriebenen drei
Drehbewegungsachsen eingestellt. Um eine bestimmte Bahn des Arbeitselements festzulegen, müssen daher
auch diese drei Drehachsen gesteuert werden.
Eine Hand 27 besitzt Drehbetätigungseinrichtiingen
28, 30 und 32 und ein Arbeitselement 34. das beispielsweise eine Greifvorrichtung ist. Ober die drei
Drehbetätigungsvorrichtungen 28, 30 und 32 kann die Orientierung des Arbeitselements eingestellt werden.
Position und Orientierung, wie sie oben ausgeführt wurden, nicht absolut sind. Es ist zu erkennen, daß. wenn
die Orientierung verändert werden soll, auch die Betätigungsvorrichtungen 14, 20 und 24 in Einsatz
kommen müssen. Umgekehrt müssen auch die Betätigungsvorrichtungen 28, 30 und 32 aktiviert werden,
wenn die Orientierung aufrechterhalten werden soll, die Position des Arbeitselementes jedoch geändert werden
soll. Be' dem in F i g. I gezeigten Beispiel eines Roboterarmes bestimmen nur die Betätigungsvorrichtungen
28 und 30 die Lage bzw. die Orientierung des Funktionselements. Die Betätigungsvorrichtung 32
dient für eine Bewegung des Arbeitselements. indem sie das Arbeitselement dreht. Der primäre Zweck ist dabei,
einen Gegenstand in dem Arbeitselement umdrehen zu können. Schließlich besitzt das Arbeitselement 34 auch
eine (nicht gezeigte) Betätigungsvorrichtung für eine Arbeitsfunktion, wie z. B. einen Greifvorgang. Die
letztgenannte Funktion ist für die vorliegende Erfindung nicht von Bedeutung.
Als Kommunikationsglied zwischen Mensch und Roboterarm ist ein Steuerpult 36 vorgesehen. Dieses
Steuerpult kann allgemeine Steuerfunktionen enthalten und ebenso Eingabevorrichtungen, mit denen eine
Eingangsgröße erzeugt werden kann, um dadurch einen bestimmten Betriebszyklus zu ermöglichen. Es können
weitere Steuereinheiten vorgesehen sein, um den Roboterarm einen Betriebszyklus oder eine andere
Programmiertechnik zu lehren. Ein Computer 38 verwendet ein Programm aus einem Programmspeicher
40 und weiterhin Eingangssignale, die aus dem Steuerpult 36 stammen, um daraus eine bestimmte .Jahn
abzuleiten und um elektrische Signale für eine Treiberschaltung 42 zu erzeugen. Die Treiberschaltung
42 steuert die Betätigungsvorrichtungen an dem Roboterarm, wodurch das Arbeitselement mit einer
bestimmten Geschwindigkeit entlang der bestimmten Bahn zwischen zwei Punkten, die durch die Eingangssignale bestimmt sind, bewegt wird Die Treiberschaltung
42 ist hierbei von üblicher Art, wie sie bei numerisch gesteuerten Werkzeugmaschinen verwendet wird. Sie
braucht daher hier nicht detailliert beschrieben zu werden. Zweckmäßig ist bei der vorliegenden Anwendung die Verwendung einer Servotreiberschaltung die
phasenmoduliert arbeitet Für jede Koordinatenachse des Roboterarmes wird ein Ausgangssignal von dem
Computer 38 zu einem Register oder einem sonstigen Speicher übertragen. Für jede Koordinatenachse wird
ein Befehlssignal erzeugt, das eine Phasenverschiebung
aufweist, die proportional zur Größe des entsprechenden Ausgangssignals ist. Die Phasenverschiebung für
jede Koordinatenachse führt zur Erzeugung eines Treibersignals für die entsprechenden Betätigungsvorrichtungen. Die Betätigungsvorrichtungen veranlassen
den Automaten sich zu bewegen, wobei Rückkopplungssijnale erzeugt werden, die durch an den
Betätigungsvorrichtungen gekoppelte Rückkopplungsvorrichtungen erzeugt werden. Wenn die Rückkopplungssignale sich in Phase mit den Befehlssignalen
befinden, so wird das Treibersignal zu Null und die Betätigungsvorrichtungen halten an. Demzufolge hat
sich der Roboterarm um eine bestimmte Strecke im Raum entsprechend der Größe der Ausgangssignale
bewegt. Demnach folgt der Roboterarm einer bestimmten Bahn im Raum zwischen zwei bestimmten Punkten
mit einer vorbestimmten Geschwindigkeit.
In t- i g. 2 ist ein auf den Roboterarm bezogenes
Koordinatensystem innerhalb eines rechtwinkligen Koordinatensystems dargestellt. Der Ursprung 11 des
rechtwinkligen Koordinatensystems ist am Schnittpunkt der Drehachse der Basis mit der Drehachse des
Schultergelenkes gelegen. Ein Liniensegment 13 entspricht dem oberen Arm 22, ein Schnittpunkt 15 dem
Ellbogengelenk 25 und ein Liniensegment 17 dem unteren Arm 26. Die Betätigungsvorrichtung 28 und 30
sind durch Schnittpunkte 19 und 21 wiedergegeben. Ein Liniensegment 23 stellt den Abstand zwischen den
Betätigungsvorrichtungen 28 und 30 dar und ein Linicsegment 25 stellt den Abstand zwischen einen
Arbeitspunkt 76 in Fig. 1 und der Betätigungsvorrichtung 30 dar. Die Position des Arbeitspunktes 76 kann
unmittelbar durch x. /und z-Koordinatenwerte definiert werden. Weiterhin kann die Orientierung des Arbeitselements, die in bezug auf das Liniensegment 25 definiert
ist, durch die Winkelkoordinaten m und η bestimmt
werden. Der Winkel m ist zwischen dem Segment 25 und einem Segment 33, das parallel zur z-Achse verläuft,
gelegen. Der Winkel η liegt zwischen dem Segment 29, das eine Projektion des Segmentes 25 auf die jry-Ebene
ist und einem Segment 31, das eine Linie parallel zur x-Achse ist Folglich definieren die rechtwinkligen
Koordinaten x, y und ζ die Position des Arbeitspunktes 76 im Raum und die Werte der Winkelkoordinaten m
und π die Orientierung des Segmentes 25 im Raum.
Es ist nun zu erkennen, daß die Drehbewegungsachsen des Roboterarmes nicht direkt durch das Koordinatensystem mit den Koordinaten x,y,z,m und π definiert
werden können. Vielmehr muß man auf ein vom Roboterarm abhängiges Koordinatensystem zurückgreifen, dessen Koordinaten eine Funktion seiner
geometrischen Form sind. Im vorliegenden Beispiel sind die Koordinaten des Roboterarmes diejenigen Wmkelkoordinaten, die durch die Drehachsen a, b, c, rf und e
definiert sind. Weitere Parameter dieses Systems sind die linearen Segmente, die sich zwischen den Drehachsen befinden.
Fig. 3 zeigt ein detailliertes Blockschaltbild einer
Steuereinrichtung für den Roboterann. Das Steuerpult 36 aus F i g. 1 besteht aus einer Steuer-Eingabe-Ausgabevorrichtung 44 und aus einer Lehr-Eingabe-Ausgabevorrichtung 46. Die Vorrichtung 44 enthält die
erforderlichen Steuergrößen und Darstellungsgrößen, die den Programmierer in die Lage versetzen, den
Roboterarm allgemein zu betreiben. Die Vorrichtung 46 enthält diejenigen Steuergrößen und Darstelhmgsgrö-Ben, um den Programmierer in die Lage zu versetzen,
den Roboterarm für einen Betriebszyklus zu programmieren. Gemäß der vorliegenden Erfindung müssen bei
der Programmierung nur die Koordinatenwerte x, y, z, m und η an den Endpunkten sowie die Geschwindigkeit
> eingegeben werden, wobei diese Werte als Eingangssignale in einem Datenspeicher 47 gespeichert werden. Es
ist offensichtlich, daß auch andere als rechtwinklige Koordinatensysteme verwendet werden können. Eine
Eingabe-Ausgabevorrichtung 48 arbeitet in Verbindung
in mit einer Zentraleinheit 52 bei der Steuerung des
Roboterarmes. Die Eingabe-Ausgabevorrichtung 48 ist primär hinsichtlich der maschinenorientierten Funktion
ausgelegt, wie sie bei dem jeweils verwendeten Roboterarm verwendet werden. Schließlich wird noch
r. eine Prozeß-Eingabe-Ausgabevorrichtung 49 verwendet, um den Roboterarm in den Prozeß zu integrieren,
von dem er selbst einen Teil darstellt. Wenn der Roboterarm beispielsweise mit bestehenden Maschinen
arbeiten soll, müssen Kommunikationsglieder zwischen
>n dem Roboterarm und den Maschinen vorhanden sein.
Diese Kommunikationsglieder werden durch die Prozeß-Eingabe-Ausgabevorrichtung 49 vorgesehen. Eine
Schnittstellenkopplungselektronik 50 spricht auf die Eingabe-Ausgabevorrichtungen an und stellt ein Kom-
r> munikationsglied zwischen den Eingabe-Ausgabevorrichtungen und der Zentraleinheit 52 vor. Typische
Eingabe-Ausgabevorrichtungen und deren entsprechende Schnittstellenelektronik sind gut bekannt und
brauchen hier nicht weiter erläutert zu werden.
in Nach dem Empfang der Eingangsinformationen
arbeitet die Zentraleinheit 52 mit den in dem Programmspeicher 54 gespeicherten Programmen um
den Betrieb eines Betätigungsmechanismus 56 an dem allgemein mit »Automat« 58 bezeichneten Roboterarm
ii zu steuern. Der Programmspeicher 54 speichert alle für
den Betrieb des Roboterarmes erforderlichen Programme. Wie in Fig.3 angedeutet ist nur ein Teil des
Programmspeichers 54 gezeigt, und es sind nur solche
Programme dargestellt, die mit der vorliegenden
Erfindung zusammenhängen. Der Programmspeicher 54
und auch der Datenspeicher 47 können aus Lochkarten, Kernspeichern, Magnetbändern, Scheiben oder
Speichertrommeln oder sonstigen Speichermedien bestehen, die im Stand der Technik zur Verfügung
4-, stehen. Die programmierten Speicher sind einheitliche Elemente, die Instruktionssätze enthalten, die in den
Flußdiagrammen gemäß Fig.4—7 gezeigt sind. Die
Zentraleinheit 52 arbeitet in Verbindung mit einem ersten Programm 60 und mit den Eingangssignalen, und
so liefert eine Vielzahl von Signalen, die Koordinatenwerte
einer Anzahl von Punkten wiedergeben, deren geometrischer Ort eine bestimmte Bahn zwischen den
Endpunkten, die zuvor durch den Programmierer festgelegt wurde, definiert. Die Zentraleinheit 52
arbeitet mit einem zweiten Programm 62 und den ersten Signalsätzen zusammen, um eine Vielzahl zweiter
Signalsätze vorzusehen, die ein zweites, auf den Roboterarm bezogenes Koordinatensystem der zuvorerläuterten Koordinatenwerte wiedergeben. Schließlich
spricht eine Servormechanismustreiber- und Kopplungsschaltung 64 auf die zweiten Signalsätze und auf
Rückkopplungssignale an, die von Rückkopphingsvorrichtimgen 65 erzeugt wurden. Diese Rückkopplungsvorrichtungen liegen an dem Roboterarm selbst
Jeweils das erste und das zweite Programm 60 bzw. 62 kann in eine Anzahl von allgemeinen Unterprogrammen oder Datenprogrammen aufgeteilt werden. Das
erste Haupt-Untporamm des ersten Programms 60
ist ein Richtungszahl-Programm 66. Die Zentraleinheit spricht in Kombination mit dem Richtungszahlprogramm 66 auf die Eingangssignale an, die die
programmierten Endpunkte definieren, um Richtungszahlsignale zu erzeugen, deren Vorzeichen die Richtung
der gewünschten Bewegung des Roboterarmes wiedergibt und deren Größe proportional zu einer Koordinatenkomponente der gesamten Bahn zwischen den
programmierten Bndpunkten ist Als nächstes arbeitet die Zentraleinheit 52 mit einem inkrementell Verschiebungsprogramm 68 und spricht auf die Signale an,
die die Endpunkte und die vorherbestimmte Geschwindigkeit definieren, um eine Vielzahl von Signalen zu
erzeugen, die die inkrementellen Verschiebungen entlang der bestimmten Bahn wiedergeben. Dies wird in
zwei Teilen erreicht Erstens wird eine Anzahl von Abstandsparametern berechnet beispielsweise für ein
festen Zeitinkrement, die Anzahl der Iterationen, die für die Definition der Bahn zwischen den programmierten
Verschiebung entlang der Bahn während jeder Iteration berechnet Es werden dann die Signale, die Änderungen
im Abstand entlang der Bahn definieren, mit einem Koordinatenprogramm 70, den Richtungszahl-Signalen
und der Zentraleinheit 52 verwendet um eine erste Anzahl von Signalsätzen zu erzeugen, die Koordinatenwerte von Zwischenpunkten wiedergeben, die die
inkrementell Verschiebung während jeder Iteration definieren. Ein erstes Datenprogramm 72 (Routine) in
dem zweiten Programm 62 wird von der Zentraleinheit 52 verwendet und zwar als Antwort auf die erste
Vielzahl der Signalsätze oder Signalfolgen, um eine zweite Vielzahl von Signalfolgen zu erzeugen, die die
entsprechenden Koordinatenwerte im zweiten, auf den Roboterarm bezogenen Koordinatensystem wiedergeben. Als nächstes spricht der Datenprogrammspeicher
74 (Routine) auf die zweite Vielzahl der Signalfolgen an und arbeitet mit der Zentraleinheit 52 zusammen, um die
Änderung der Werte im zweiten Koordinatensystem während jeder Iteration zu berechnen. Diese Änderung
in den Werten des zweiten Koordinatensystems wird dann in einem Pufferspeicher gespeichert Eine Servounterbrechungs-Programmspeichereinrichtung 75
spricht auf ein Unterbrechungssignal aus dem Servomechanismus-Antrieb und der elektronischen Kopplungsschaltung 64 an und arbeitet mit der Zentraleinheit 52
zusammen, um Signale zu erzeugen, die die Änderung in den Werten des zweiten Koordinatensystems für den
Servomechanismusantrieb und die elektronische Kopplungsschaltung 64 erzeugen. Die Schaltung 64 spricht
auf die Signale aus der Zentraleinheit 52 an und erzeugt Ausgangssignale für die Betätigungsvorrichtungen,
wodurch der Roboterarm veranlaßt wird, sich entlang der vorherbestimmten Bahn zwischen den zwei
programmierten Punkten zu bewegen. Es sei hervorgehoben, daß die verallgemeinerte Form der Elemente in
F i g. 3, die aus der Eingabe-Ausgabekopplungselektronik und den jeweiligen Treiberschaltungen 50 und 64,
den Speichern 47 und 54 und der Zentraleinheit 52 bestehen, die typischen Elemente in einem allgemeinen
Prozeßsteuercomputer darstellen.
F i g. 4 veranschaulicht nun die Schritte des vorliegenden Verfahrens. Der Prozeßblock 80 zeigt daß die
Koordinatenwerte an den bestimmten Punkten und die vorherbestinunte Geschwindigkeit aus dem Speicher
abgerufen werden. Als nächstes werden, wie Block 92 zeigt Richtungszahlen berechnet. Jede Richtungszahl
besitzt einen Richtungssinn, der die Bewegungsrichtung
kennzeichnet und eine Größe, die proportional zu einer Koordinatenkomponente der Bahn zwischen den
programmierten Punkten ist Das Vorzeichen der Richtungszahl zeigt die Richtung der Änderung entlang
, dieser Achse al«.
Im Block 94 werden die Abstandsparameter berechnet die für die Berechnung der Bahn zwischen den
programmierten Punkten erforderlich sind. Der Prozeßblock 96 zeigt die Berechnung der Änderung im
ίο Abstand entlang der Bahn während jeder Iteration. Als
nächstes werden die Koordinatenwerte, die die Position und die Orientierung an einem Zwischenpunkt definieren, für jede Änderung im Abstand berechnet, und zwar
im Prozeßblock 98. Dies wird durch Verwendung der
ι -, Richtungszahlen erreicht. Demnach macht die Berechnung der Koordinatenwerte eines Zwischenpunktes
längs der Bahn während jeder Iteration die in den Prozeßblöcken 92, 94, 96 und 9« definierten Operationen erforderlich. Als nächstes zeigt der Block 100 die
in Rererhnung dor Koordinatenwerte im zweiten Koordinatensystem, die den Koordinatenwerten entsprechen,
die in dem Operationsblock 98 berechnet wurden. Schließlich wird im Block 102 die Änderung in den
Koordinatenwerten des zweiten Koordinatensystems
>-> vom vorhandenen Punkt zum nächsten Punkt berechnet
und diese Änderungen in einem Pufferspeicher gespeichert. Dann wird auf eine Unterbrechung von der
Servomechanismustreiberstufe und der Kopplungsschaltung 64 gewartet.
κι Wie der Fachmann nunmehr erkennen kann, verläuft
der zuvor geschilderte Prozeß asynchron mit dem Servomechanismusantrieb und der Kopplungsschaltung
64. Die Schaltung 64 arbeitet als Probeentnahmesystem mit fester zeitlicher Grundlage. Mit anderen Worten
-, fragt der Servomechanismus in festgelegten bestimmten Zeitintervallen beim Computer nach neuen Informationen an. Wenn man den Servomechanismus in einer
festen Probeentnahme-Folge betreibt ergeben sich für den Computer verschiedene Vorteile. Wenn man
4n beispielsweise die Länge der programmierten Bahn, die
vorherbestimmte Geschwindigkeit und die feste Länge einer Probeentnahmezeit kennt, ist der Computer dazu
imstande, im Prozeßblock 94 die Zahl der Iterationen zu berechnen, die erforderlich sind, um die programmierte
4-, Bahn zu durchfahren. Demzufolge kann der Computer
mit diesen Informationen die Abstandsänderung entlang der programmierten Bahn während jeder Iteration
berechnen. Darüber hinaus ermöglicht die Verwendung einer festen Probeentnahme-Folge, daß der Computer
jr. viele andere Funktionen, zusätzlich zur Erzeugung der
vorherbestimmten Bahn, ausführen kann. Da der Computer wesentlich schneller arbeitet als die an ihn
angeschlossenen Vorrichtungen, ist er oft in einem Informationsrückstand. Es wird daher ein System von
Unterbrechungen verwendet von denen jedes eine bestimmte Priorität besitzt
Der Zwack des Servo-Unterbrechungsprogramms,
das in dem Block 82 gezeigt ist besteht darin, Daten aus dem Pufferspeicher zu übertragen in Abhängigkeit von
einer Unterbrechung der Servomechanismustreiberstufe und der Kopplungsschaltung 64. Die Unterbrechung
kann zu irgendeinem Zeitpunkt während der Verarbeitung auftreten.
Wenn eine Unterbrechung auftritt, so wird die
Steuerung des Prozesses von der Hauptprogrammstufe
zur Servo-Unterbrechungsprogrammstufe 82 übertragen. In der Servo-Unterbrechungsprogrammstufe 82
erfordert der Prozeßblock 84, daß die Änderung der
Koordtaiatenwerte in dem zweiten Koordinatensystem
aus dein Pufferspeicher zur Servomechanismus-Treiberstufc
und zur Kopplungsschaltung 64 übertragen wird. Als nächstes wird in dem Entscheidungsblock 88
eine Prüfung vorgenommen, um festzustellen, ob die Bahn zwischen den zwei programmierten Endpunkten
vollständig ist. Wenn die Bahn nicht vollständig ist, so übergibt der Servo-Unterbrechungsprogrammabschnitt
die Steuerung des Prozesses zurück an den Hauptprogrammabschnitt an der Stelle, bei der die Unterbrechung
aufgetreten ist Dann wird der Prozeß fortgeführt Wenn die programmierte Bahn vollständig
durchlaufen ist, so erfordert der Prozeßblock 90, daß eine vorherbestimmte Funktion ausgeführt wird, woraufhin
der Prozeß zum Block 80 zurückkehrt, um mit der nächsten programmierten Bahn zu beginnen.
Die Fig.5a, 5b, 5c und 5d zeigen detaillierte
Flußdiagramme des in Verbindung mit Fig.4 erläuterten
Verfahrens. Eine Umsetzung des Flußdiagramms in F i g. 5 in ein codiertes Computerprogramm kann
unmittelbar von einer Person, die mit der Programmiersprache in Verbindung mit einem allgemeinen Prozeßsteuercomputer
vertraut ist, durchgeführt werden. Nach einer Prüfung von F i g. 5 und einem Vergleich mit dem
allgemeinen Flußdiagramm in Fig. 4, kann man feststellen, daß die wesentlichen Schritte der F i g. 5a bis
5c unter den allgemeinen Prozeßschritt der Berechnung der Abstandsparameter, die in dem Block 94 der F i g. 4
gezeigt sind, eingestuft werden können. Der Grund hierfür liegt in dem Problem zu bestimmen, ob eine
Änderung in der Geschwindigkeit erforderlich ist oder nicht; und weiterhin in der Bestimmung der Größe der
Änderung in der Geschwindigkeit.
Allgemein kann die Bahn zwischen zwei programmierten Punkten in drei getrennte Strecken aufgeteilt
werden. In einer ersten Strecke Si kann eine Beschleunigung oder Verzögerung erforderlich sein,
was von der Geschwindigkeit nach dem Eintreten in diese Strecke und von der programmierten Geschwindigkeit
abhängt Eine zweite Strecke S2 kann aus einer konstanten Geschwindigkeitsphase bestehen, und eine
dritte Strecke Si kann auftreten, wenn eine Verzögerung
bis zu einem Anhalten erforderlich ist. Durch Überprüfung der Geschwindigkeiten an den Endpunkten
der programmierten Bahn ist der Computer dazu in der Lage, zu bestimmen, ob zwei oder drei solcher
geschwindigkeitsabhängiger Strecken Si — S3 erforderlich
sind oder nicht Wenn einmal diese Bestimmung gemacht wurde, entsteht ein weiteres Problem. Wenn
man die erforderlichen Geschwindigkeiten als auch die zulässigen Änderungen der Geschwindigkeit kennt,
muß die Länge jeder dieser Strecken berechnet werden.
Es kann jedoch der Fall auftreten, daß die Summe der idealen Strecken 5t—S3 die Länge der Bahn zwischen
den programmiertei. Punkten überschreitet Diese besonderen Fälle müssen erkannt und besonders
behandelt werden. Es läßt sich demzufolge erkennen, daß der Berechnung der Entfernungsparameter eine
besondere Beachtung beizumessen ist Ein Problem liegt hierbei in der erforderlichen Prozeßzeit Die hier
vorgeschlagene Lösung der Berechnung der Abstandsparameter ist willkürlich und wird im folgenden
erläutert, um eine vollständige Lehre zum technischen
Handeln zu vermitteln.
In Fig.5a besteht der erste Schritt darin, die
Koordinatenwerte abzurufen, die die Position und die Orientierung an dem gegenwärtigen Punkt definieren,
ebenso die Koordinatenwerte für den nächsten programmierten Punkt und dessen Geschwindigkeit.
Als nächstes wird im Prozeßblock 104 die Länge der gesamten Bahn berechnet. Nach der Berechnung der
Richtungszahlen in dem Prozeßblock 106, wird die Länge der Strecke Si berechnet Der Prozeßblock 109
muß bestimmen, ob die Geschwindigkeit beim Endpunkt P\ Null ist oder nicht. Mit anderen Worten muß
festgestellt werden, ob ein Anhalten zwischen der Ausführung der aufeinanderfolgend programmierten
in Bahnen stattgefunden hat oder ob die aufeinanderfolgend programmierten Bahnen gleichförmig durchlaufen
werden sollen. Wenn die Endgeschwindigkeit Null ist, wird geprüft, ob die Anfangsgeschwindigkeit Null ist,
was in dem Entscheidungsblock 110 erfolgt. Wenn die ι -. Anfangsgeschwindigkeit und die Endgeschwindigkeit
beide Null sind, so macht der Block 112 die Länge der Strecke Sj gleich der Länge der Strecke Si, die in dem
Prozeßblock 108 berechnet wurde. Wenn die Endgeschwindigkeit Null ist, jedoch die Anfangsgeschwindig-
:<) keit nicht Null ist. so wird in dem Block 114 die Länge
der Strecke S) berechnet. Zu diesem Zeitpunkt führt der
Entscheidungsblock 116 eine Prüfung durch, um festzustellen, ob die Summe der Änderung in den
Strecken Si —Sj, die soweit berechnet wurden, kleiner
r. ist als die Länge der programmierten Bahn. Ist dies der
Fall, jo geht das Verfahren gemäß Punkt A (Fig.5b)
weiter. Es sei an dieser Stelle hervorgehoben, daß die Länge der Strecke S, gleich der Differenz zwischen der
Länge der gesamten Bahn und der Länge der Summe j'i der Strecken Si und S3 ist. Kennt man nun die Längen
von jeder der Strecken, die die programmierte Bahn ausmachen und die feste Zeitbasis des Probeentnahmesystems,
so ist es nun möglich, die Zahl der Iterationen zu berechnen, die erforderlich sind, um jede der
ι-, Strecken zu durchfahren. Diese Berechnungen werden in den Blöcken 118, 120 und 122 durchgeführt. Als
nächstes werden in den Blöcken 124, 126 und 128 die Konstanten berechnet, die anschließend in dem
Verfahren verwendet werden.
4.1 Um wieder auf den Entscheidungsblock 109 in
F i g. 5a zurückzukommen, so bedeutet die Feststellung, daß die Endgeschwindigkeit nicht Null ist, daß sich die
Bahn gleichmäßig zwischen aufeinanderfolgenden Programmstrecken bewegt. Betrachtet man die dynamij-,
sehen Eigenschaften des Roboterannes selbst, *o kann
dies möglich sein oder physikalisch nicht möglich sein, was von der Änderung in der Richtung oder dem
zwischen aufeinanderfolgenden Bahnen eingeschlossenen Winkel abhängig ist. Bei dem Ausführungsbeispiel
,ι wurde willkürlich ein eingeschlossener Winkel von 120°
gewählt, der in dem Entscheidungsblock 130 überprüft wird. Wenn der eingeschlossene Winkel zwischen
aufeinanderfolgenden Bahnen größer als 120° ist, so werden die aufeinanderfolgenden Bahnen gleichförmig
kontinuierlich durchfahren. Wenn jedoch der eingeschlossene Winkel kleiner als 120° ist, so schiebt der
Prozeß automatisch einen Anhaltspunkt ein; und dann werden die aufeinanderfolgenden Bahnen diskontinuierlich
durchfahren. Es wird der Kosinussatz dazu verwendet, zu bestimmen, ob der eingeschlossene
Winkel größer oder kleiner als 120° ist Als nächstes wird in dem Entscheidungsblock 132 bestimmt ob die
Länge der Strecke Si kleiner ist als die Länge der programmierten Bahn. Wenn Si nicht kleiner ist als die
programmierte Bahn, so stellt der Entscheidungsbiock 134 willkürlich die Länge der Strecke Si gleich auf ein
Halb der Länge der programmierten Bahn ein. Es wird
dann in dem Prozeßblock 136 eine neue Geschwindig-
keit errechnet Es sei an dieser Stelle hervorgehoben,
daß, wenn aufeinanderfolgende Programmbahnen gleichmaßig durchfahren werden sollen, die Strecke S3
gleich Null ist. Weiter ist gemäß der Definition die Anzahl der Iterationen, die zum Durchfahren der
Strecke S3 erforderlich ist, gleich NuIL Wenn die Länge
der Strecke Si kleiner ist als die programmierte Bahn, so
wird die Anzahl der Iterationen in dem Operationsblock 138 berechnet, die für das Durchfahren der Strecke Si
erforderlich sind. In den Blöcken 140, 142 und 144 werden Konstante berechnet, die an späterer Stelle
verwendet werden; sie sollen daher hier noch nicht erläutert werden.
Aus Fig.5a geht nunmehr die Bedeutung der
Berechnung der Abstandsparameter hervor. Ein spezieller Fall wurde jedoch noch nicht erläutert Dieser Fall
entsteht ic Verbindung mit dem Entscheidungsblock 116, wenn die Summe der Längen der Strecken S\ und S3
nicht kleiner ist als die Länge der gesamten Bahn. In
diesem Fall führt der Punkt Czu F i g. 5b. Die Blöcke 146 bis 166 definieren einen weiteren speziellen Fall, dessen
Lösung ähnlich wie bei den anderen an früherer Stelle im einzelnen beschriebenen speziellen Fällen a'-ssieht
Der Prozeß soll daher an dieser Stelle nicht im einzelnen beschrieben werden und die Hinweise in den Blöcken
146 bis 166 sind somit ausreichend. Nach der Durchführung setzt sich dieser Abschnitt des Verfahrens über den Punkt E zum Block 124 fort Das
Verfahren verläuft weiter über den Punkt F zu F i g. 5c.
Auch hier definieren die Blöcke 168 bis 174 Konstante, die an späterer Stelle verwendet werden.
Ober Punkt D wird das Verfahren in Fig.Sd
fortgesetzt Der Entscheidungsblock 176 entscheidet ob
die Strecke S1 vollständig ist oder nicht Wenn sie es nicht ist so wird das Verfahren an dem Block 17S
fortgesetzt der die erste Iteration einleitet Die Abstandsänderung entlang der programmierten Bahn
für jede Iteration in der ersten Strecke S\ wird durch die Formel bestimmt die dem Operationsblock 182
zugeordnet ist Allgemein zeigt die Formel an, daß eine Entfernungsänderung entlang der Bahn für eine
vorhandene Iteration gleich ist der Abstandsänderung entlang der Bahn während der vorangegangenen
Iteration plus einer Konstanten (die früher berechnet wurde). Es entsteht dabei ein Problem bei der
Berechnung der Entfernungsänderung entlang der ersten Strecke Si während der ersten Iteration. Dies ist
eine spezielle Situation, die entsprechend der Formel gehandhabt wird, die in dem Block 180 angegeben ist
Wie die Formel anzeigt ist die Länge der Abstandsänderung entlang der Bahn während der ersten Iteration
gleich einer der Konstanten, die an früherer Stelle berechnet wurde. Nach der Durchführung der ersten
Iteration werden alle darauffolgenden Iterationen durch den Prozeßblock 182 gehandhabt, bis die Zahl der
Iterationen gleich ist der Zahl der Iterationen, die für die Strecke St berechnet wurde. Gemäß dem Block 184
werden die Koordinatenwerte x, y, z, m und η für jede
Abstandsänderung entlang der Bahn berechnet oder mit anderen Worten für jede Iteration berechnet
Weiterhin erfordert der Prozeßblock 186, daß diese Koordinatenwerte in entsprechende Koordinatenwerte
des zweiten Koordinatensystems transformiert werden. In dem Block 188 werden die Änderungen dieser
Koordinatenwerte entlang der programmierten Bahn
berechnet und gespeichert, um für eine Unterbrechung
durch die Servomechanismustreiberstufe und die Kopplungsscbaltung 64 bereit zu stehen. Die Servo-Unterbrechungsprogrammemrichtung wurde in Verbin-
dung mit Fig.4 erläutert, so daß eine weitere
Erläuterung hier nicht mehr erforderlich ist
Wenn die Zahl der Iterationen gleich ist der Zahl der für die Strecke S1 berechneten Iterationen, so schreitet
das Verfahren zum Entscheidungsblock 190 weiter, der
ι α feststellt ob die Strecke S2 vollständig ist Ist diese nicht
vollständig, so durchläuft das Verfahren iterativ die Blöcke 192 bis 200, bis die Zahl der Iterationen gleich ist
der Summe der Iterationen, die für die Durchführung der Strecken Sj und Sz erforderlich sind. Wenn dies
auftritt schreitet das Verfahren weiter zum Entscheidungsblock 202, wo dann bestimmt wird, ob die Strecke
S3 vollständig ist oder nicht Bei einer gleichförmigen Bewegung zwischen aufeinanderfolgend programmierten Bahnen, ist keine Strecke S3 vorhanden, und daher
ist Jt2 gleich fo. In diesem FaIL wenn die Strecke Si
vollständig ist geht das Verfahren zum Punkt G. Wenn jedoch die Bewegung zwischen aufeinanderfolgenden
Programmbahnen nicht kontinuierlich ist so muß die Strecke S3 iterativ ähnlich den anderen Strecken Si, S2
berechnet werden. Man kann nun sehen, wie das Verfahren von einem gegenwärtigen Punkt zu einem
darauffolgenden programmierten Punkt iterativ fortschreitet mit all den geeigneten Geschwindigkeitsparametern und GcÄchwindigkeitsänderungsparametern.
jo Wenn die Strecke S3 vollständig ist so geht das
vom Roboterarm unabhängigen Koordinatensystems in
Werte des zweiten, auf den Roboterarm bezogenen Koordinatensystems. Hierfür gibt es verschiedene
Lösungsmöglichkeiten. Eine Möglichkeit besteht darin, Gleichungen für die Koordinatenwerte im zweiten
Koordinatensystem in Ausdrücken von Werten des
ersten Koordinatensystems aufzustellen. Mit Hilfe ein«
geeigneten Vorrichtung lassen sich diese Gleichungen lösen und damit die Transformationen durchführen
Unglücklicherweise bringen diese Ausdrücke jedoch inverse trigonometrische Funktionen mit sich, die nui
aufwendig zu lösen sind. Es wurde daher ein anderer unc neuer Weg gewählt Hierbei werden die inverser
Transformationsgleichungen abgeleitet Mit anderer Worten sind die Ausdrücke die die Werte im erster
Koordinatensystem definieren in Größen des zweiter
Koordinatensystems ausgedrückt Diese Gleichunger
werden dann mit Hilfe eines Verfahrens der sukzessiver Annäherung gelöst wobei das allgemeine Newton
Raphson-Verfahren zur Lösung von nicht-linearer Gleichungen verwendet wird. Es sei darauf hingewiesen
daß auch andere Verfahren zur Lösung nicht-linearei
Gleichungen verwendet werden können.
Bei der vorliegenden Erfindung sind die Werte de!
rechtwinkligen Koordinatensystems und des zweitei Koordinatensystems durch die nachfolgend angegebe
Mt nen Transformationsgleichungen (1), (2) und (3
miteinander in Beziehung gebracht und die Einschrän kungsgleichungen (4), (5) und (6) geben die Orientie
rungseinschränkungen für das Arbeitselement 3-wieder. Die Gleichungen lauten:
(D
cos (rf) [I1 sin (a) + I2 sin (ο + *) + I3 sin {a + b + c)]
+ /4 fcos (rf) cos (e) sin (a + b + c) - sin (rf) sin (e)]
(2)
y = sin (rf) [/| sin (a) + I1 sin (a+b) + I3 sin (a+b+c)]
+ /4 [sin (rf) cos (<■) sin (a + b+c) + cos (rf) sin (e)]
(3)
2 = /| cos (a) + I2 cos (ο + ώ) + I3 cos (a + 6 + c) + /j cos (e) cos (a-rfi + c)
und
(4) /4 cos (n) sin (#w) = /4 [cos (rf) cos (e) sin (σ+ύ +c) - sin (rf) sin (e)]
(5) /4 sin (n) sin (m) = /4 [sin (rf) cos (e) sin (β + ό +c) + cos (rf) sin (e)]
(6)
/4 cos (nt) = /4 cos [e) cos (a + fi + <·)
Aus den Gleichungen (1) bis (6) läßt sich entnehmen,
daß für fünf Unbekannte sechs Gleichungen vorhanden sind. Diese Gleichungen werden wie folgt gelöst:
Sind die Koordinatenwerte für einen bestimmten Punkt (index k) im ersten Koordinatensystem gegeben
(xkykZkmiciik), was der Fall ist, wenn die Koordinaten des
Punktes 19 (F i g. 2) gegenüber dem Ursprung bestimmt werden können, so lassen sich die ersten zwei
Ausdrücke der Gleichungen (1), (2) und (3), die die Koordinatentransformationen des Punktes 19 wiedergeben,
gleichzeitig so lösen, daß auch die Koordinatenwerte im zweiten Koordinatensystem (atbkdk) bestimmt
werden können. Als nächstes lassen sich unter Verwendung der zuvor aufgeführten Lösung die Werte
des Punktes 21, bezogen auf den Punkt 19, im rechtwinkligen Koordinatensystem bestimmen sowie
der dritte Ausdruck der Gleichung (1), (2) und (3), d. h. die Koordinate o, bestimmen. Schließlich läßt sich unter
Verwendung der Lösung für die Koordinaten at, 6*. et
und dk und der Gleichungen (4), (5) und (6) die Koordinate e*bestimmen.
Daher lassen sich, wie dies in dem Block 204 angezeigt ist, durch Substitution der berechneten Werte
irik und π* für die Werte von w und n. die Koordinaten
des Punktes 76 bezogen auf den Punkte 21 bestimmen. Als nächstes werden, wie im Block 206 gezeigt, die
Koordinatenwerte des Punktes 21 bestimmt. Wie im Block 207 gezeigt, werden dann die Koordinatenwerte
des Punktes 19 bestimmt. Dies wird dadurch erreicht, daß man die Koordinatenwerte des Punktes 21, bezogen
auf den Punkt 19. von den Koordinatenwerten des Punktes 21 abzieht. Die Werte des Punkies 21, bezogen
auf den Punkt 19 (im ersten Koordinatensystem), werden durch die Multiplikation dei Länge des
Elementes h zwischen diesen Punkten mit Konstanten bestimmt, die den Richtungskosinus des Elements A
darstellen.
Ein Problem besteht nun darin, wie man eine Lösung
für die Werte des zweiten Koordinatensystems in den ersten zwei Ausdrücken der ersten drei Transformationsgleichungen
findet. Wie oben erwähnt, wird dies durch das Newton-Raphson-Vcrfahren durchgeführt.
Wie durch den Block 208 angezeigt, wurden Hilfsfunktionen
Hu H; und lh eingeführt, die den ersten zwei
Ausdrücken der Gleichungen (I), (2) und (.3) entsprechen
und die die Koordinateniransformationen des Punktes 19 wiedergeben. Weiterhin wurde eine Fchlcrfunktion
eingeführt, die die Differenz zwischen den bekannten Ausdrücken *i<
>. y\<> und ?i« und den unbekannten
Ausdrücken Hu lh und H1 wiedergibt. Allgemein
besteht der erste Schrill zur Lösung darin, einen Wen
für die Hilfsfunktion anzunehmen und dann die Fehlerfunktion zu lösen. Der Wert der Fcnlerfunktion
und die angenommenen Werte der Hilfsfunktionen werden dazu verwendet, einen neuen Wert für die
Werte im zweiten Koordinatensystem zu finden. Als nächstes wird unter Verwendung dieser neuen Werte
eine neue Fehlcrfunktion errechnet. Wenn eine Lösung
der neuen Fehlerfunktion gleich Null ist, oder kleiner als eine vorbestimmta Toleranzgröße, so kann man
annehmen, daß die berechneten Werte im zweiten Koordinatensystem richtig sind. Wenn sich der Wert
der neuen Fehlerfunktion nicht innerhalb der Toleranzgröße befindet, so wird die Newton-Raphson-Lösung
erneut dazu verwendet, einen weiteren Satz von Werten im zweiten Koordinatensystem zu bestimmen, aus
denen dann ein weiterer Wert für die Fehlerfunktion bestimmt wird. Das Verfahren wird so lange fortgesetzt,
bis die Fehlerfunktion kleiner ist als die vorbestimmte Toleranzgröße.
Wie durch die Bezeichnung in dem Block 208 angezeigt ist, werden die Werte im zweiten Koordinatensystem
des vorausgegangenen Punktes als erste angenommene Größe in der Lösung des Wertes der
unbekannten Ausdrücke bei den Funktionen Hu W? und
Hi verwendet. Als nächstes wird nach dem Rückstellen
eines Schaltregisters auf Null, wie dies im Block 210 gezeigt ist, der Block 212 eine neue Berechnung eines
neuen Satzes von Werten im zweiten Koordinatensystem durchführen, und zwar unter Verwendung der im
Block 208 berechneten Fehlerfunktion.
Dieses Verfahren wird fortgesetzt, bis der Entscheidungsblock 216 feststellt, djß die Fehlerfunktion
innerhalb der Tolerantgröße liegt. Wenn dies auftritt, so
werden die zuletzt berechneten Werte im zweiten Koordinatensystem als Winkel at. bk und d» definiert, die
die Position des Punktes 19 definieren, die in Wertendes
ersten Koordinatensystems im Block 207 berechnet wurden. Die Größen der Winkel a». f>* und c/* stellen
einen ersten Satz von Koordinatenwerten dar. die den Ort des Arbeitselements im Raum beschreiben.
Danach wird im Block 218 die Koordinate i\
berechnet. Auch hier wird das Newton-Raphson-Verfahrcn angewandt. Es sei daher hervorgehoben, daß der
Block 218 die Schritte der Newton-Raphson-Lösung 'mfaßt. wie sie üben unter Hinweis auf die Blöcke 208
b;s 21h beschrieben wurde. Eine Fehlcrfunktion O ist
definiert als die Differenz zwischen den Werten (im ersten Kooordinatcnsysipm) des Punktes 21. bezogen
auf den Punkt 19. und den entsprechenden Koordinatentriinsformationen.
die durch den dritten Ausdruck der Gleichungen (I). (2) und (?) wiedergegeben sind. Bei
dieser Lösung muß ein weiterer Punkt beachtet werden.
Obwohl nur eine Unbekannte bestimmt werden muß, sind drei Fehlergleichungen erforderlich. Während des
Iteratjonsprozesses der Newton-Raphson-Lösung können
die Sinuswerte und Kosinuswerte zu Null werden; der Computer kann daher den Befehl erhalten, durch
Null zu teilen. Dieses Problem wird dadurch beseitigt,
daß man die Fehlerfunktionen einem Test unterzieht, um eine Fehlerfunktion auszuwählen, deren Ableitung
sich nich t Null nähert.
Wie im Block 219 gezeigt, wird die endgültige Koordinate e* bestimmt Auch hier wird das Newton-Raphson-Verfahren
der Lösung angewendet; und daher enthält auch der Block 219 alle Schritte der Lösung, wie
sie in Verbindung mit den Blöcken 208 bis 216 beschrieben wurde. Eine weitere Fehlerfunktion / stellt
die Differenz zwischen den Werten (im ersten Koordinatensystem) des Punktes 76, bezogen auf den
Punkt 21, und die entsprechenden Koordinatentransformationen dar, die durch den letzten Ausdruck der
Gleichungen (IJ.. (2) und (3) dargestellt sind. Wie bereits beschrieben wurde, werden diese Fehierfunktionen
getestet; es wird eine ausgewählt, deren Ableitung nicht
zu einem Wert von Null führt Nachdem die Werte der Koordinaten at, bb c*. cfc und e* bestimmt wurden,
werden sie gespeichert und als die angenommenen Koordinatenwerte für die Transformation des nächsten
Satzes der berechneten Werte im ersten Koordinatensystem verwendet
In Fig.7 wird, nachdem die Koordinatenwerte im
zweiten Koordinatensystem berechnet wurden, wie dies unter Hinweis auf Fig,6 beschrieben wurde, jeder
Koordinatenwert in dem Block 220 geprüft, um festzustellen, ob dieser einen bestimmten maximalen
ι oder minimalen Wert überschreitet Wenn sich der Koordinatenwert nicht innerhalb der bestimmten
Grenze befindet, so fordert der Block 222, daß der Koordinatenwert gleich dem Grenzwert gemacht wird.
Gemäß Block 224 wird als nächstes die Änderung des Winkels der Koordinate des zweiten Koordinatensystems
berechnet Dies wird durch Abziehen des neuen Koordinatenwertes von dem vorausgegangenen Koordinatenwert
erreicht Die Änderung der Koordinatenwerte wird dann gespeichert, wie dies im Block 226
gezeigt ist Der Block 228 bestimmt, ob alle die neuen K-Oordinatenwertänderungen berechnet und gespeichert
wurden. Wenn nicht, so kehrt das Verfahren zum Block 220 zurück und beginnt von neuem. Nachdem alle
Koordinatenwertänderungen (im zweiten Kooruinatensystem) berechnet und gespeichert wurden, bestimmt
der Block 230, ob diese neuen Werte in einen Pufferspeicher übertrager, werden können. Wie unter
Hinweis auf F i g. 4 beschrieben, werden beim Auftreten einer Unterbrechung die Daten aus dem Pufferspeicher
'ι zur Servomechanismus-Treiberstufe und Kopplungsschaltung 64 übertragen; nach einer Unterbrechung ist
dann gemäß dem Block 232 erforderlich, daß die Änderung der Werte in den Pufferspeicher übertragen
werden.
Hierzu 11 Blatt Zcichnunuen
Claims (1)
- Patentanspruch:Vorrichtung zur Steuerung der Bewegung eines Arbeitselementes eines Roboterarmes längs einer vorbestimmten, geradlinigen Bahn, wobei der Roboterarm mehrere Bewegungsachsen aufweist, die ein erstes Koordinatensystem definieren, wobei für jede Bewegungsachse ein Antriebselement vorgesehen ist und wobei mindestens eine dieser Bewegungsachsen eine Drehbewegungsachse ist, mit einem Speicher, der Signale enthält, die Bahnpunkten und Bahngeschwindigkeiten entsprechen, mit einem Bedienpult zur Eingabe der Signale in den Speicher, wobei die Signale die Bahnpunkte in einem zweiten, vom Roboterarm unabhängigen Koordinatensystem bezeichnen, und mit einer Koordinatentransformationseinrichtung, mit der die Signale des zweiten Koordinatensystems in Signale des ersten Koordinatensystems umgewandelt werden, dadiiich gekennzeichnet, daß im Speicher (47) als die die Bahnpunkte bezeichnenden Signale ausschließlich Signale gespeichert sind, die den Anfangs- und den Endpunkt der Bahn bezeichnen,daß eine Zwischenpunktrecheneinrichtung (52, 60) vorgesehen ist, die aus den gespeicherten Signalen der Anfangs- und Endpunkte der Bahn Zwischenpunktsignale erzeugt, die Zwischenpunkte bezeichnen, die auf der geraden Verbindungslinie zwischen dem Anfangs- und dem Endpunkt liegen, wobei die Zwischenpu.iktrecheneinrichtung (52, 60) folgendes enthält:eine Richtungszahlrecheneinrichtung (52,66), die mit dem Speicher (47) verbunden is! jnd Signale erzeugt, die hinsichtlich Vorzeichen und Größe den Abstand der Anfangs- und Endpunkte im zweiten Koordinatensystem bezeichnen,eine Inkrementverschiebungsrecheneinrichtung (52, 68), die mit dem Speicher (47) verbunden ist und Signale erzeugt, die inkrementelle Verschiebungen längs der geradlinigen Bahn im zweiten Koordinatensystem bezeichnen undeine Zwischenpunktkoordinatenrecheneinrichtung (52, 70), die mit den Richtungszahl- und der Inkrementverschiebungsrecheneinrichtung (52, 66; 52, 60) verbunden ist und Signale erzeugt, die im zweiten Koordinatensystem einen Zwischenpunkt auf der geradlinigen Bahn bezeichnen, der gegenüber dem Anfangspunkt um die inkrementelle Verschiebung versetzt ist, wobei die Zwischenpunktsignale als neue Anfangspunktsignale der Richtungszahl- und der Inkrementverschiebungsrecheneinrichtung (52, 66; 52, 60) und über die Koordinatentransformationseinrichtung (52,62) den Antriebselementen (56) zuführbar sind.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US26598472A | 1972-06-26 | 1972-06-26 | |
US364381A US3909600A (en) | 1972-06-26 | 1973-05-31 | Method and apparatus for controlling an automation along a predetermined path |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2330054A1 DE2330054A1 (de) | 1974-01-17 |
DE2330054C2 true DE2330054C2 (de) | 1982-05-13 |
Family
ID=26951534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2330054A Expired DE2330054C2 (de) | 1972-06-26 | 1973-06-13 | Vorrichtung zur Steuerung der Bewegung eines Arbeitselementes eines Roboterarmes |
Country Status (6)
Country | Link |
---|---|
US (1) | US3909600A (de) |
JP (1) | JPS612964B2 (de) |
CA (1) | CA992652A (de) |
DE (1) | DE2330054C2 (de) |
GB (1) | GB1408666A (de) |
NO (1) | NO149366C (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102008061153A1 (de) * | 2008-12-09 | 2010-06-17 | Renate Grünfeld | Verfahren zur mehrdimensionalen automatischen, elektromotorischen Bewegung einer kartesisch geführten Sonde zu einem Objekt |
Families Citing this family (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3920972A (en) * | 1974-07-16 | 1975-11-18 | Cincinnati Milacron Inc | Method and apparatus for programming a computer operated robot arm |
IT1043940B (it) * | 1974-12-20 | 1980-02-29 | Fiat Spa | Apparecchaitura per il controllo di una macchina operatrice del tipo robot |
US3986007A (en) * | 1975-08-20 | 1976-10-12 | The Bendix Corporation | Method and apparatus for calibrating mechanical-visual part manipulating system |
IT1047161B (it) * | 1975-09-03 | 1980-09-10 | Olivetti & Co Spa | Centro di lavorazione per automazione programmabile con dispositivo tattile autoadattivo |
US4163183A (en) * | 1975-10-28 | 1979-07-31 | Unimation, Inc. | Programmable automatic assembly system |
US4115858A (en) * | 1976-01-12 | 1978-09-19 | Houdaille Industries, Inc. | Machine tool controller employing microprocessor system for controlling Z axis |
SE401637B (sv) * | 1976-03-29 | 1978-05-22 | Asea Ab | Forfarande och anordning for att bringa en industrirobot att utfora en komplex rorelse |
DE2656433C3 (de) * | 1976-12-14 | 1983-11-17 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V., 8000 Muenchen | Verfahren und Anordnung zur Regelung von Manipulatoen und industriellen Robotern |
DE2745404A1 (de) * | 1977-10-08 | 1979-06-13 | Grisebach Hans Theodor | Handhabungsgeraet |
EP0003025B1 (de) * | 1977-12-08 | 1984-04-18 | Siemens Aktiengesellschaft | Regelung für Drehwerks- oder Hubwerksantriebe eines Krans |
US4178632A (en) * | 1978-03-06 | 1979-12-11 | Cincinnati Milacron Inc. | Method for controlling the operation of a computer operated robot arm |
US4338672A (en) * | 1978-04-20 | 1982-07-06 | Unimation, Inc. | Off-line teach assist apparatus and on-line control apparatus |
JPS5840761B2 (ja) * | 1978-12-20 | 1983-09-07 | 工業技術院長 | 人間腕形マニピュレ−タの制御装置 |
US4258425A (en) * | 1979-03-08 | 1981-03-24 | A. O. Smith Corporation | Self-programmed mechanical working apparatus |
JPS5621794A (en) * | 1979-07-30 | 1981-02-28 | Fujitsu Fanuc Ltd | Controlling system for industrial robot |
US4420812A (en) * | 1979-09-14 | 1983-12-13 | Tokico, Ltd. | Teaching- playback robot |
US4509143A (en) * | 1980-01-14 | 1985-04-02 | Mitsubishi Denki Kabushiki Kaisha | Computer control system for selecting a desired control program from a plurality of control programs |
US4445184A (en) * | 1980-07-19 | 1984-04-24 | Shin Meiwa Industry Co., Ltd. | Articulated robot |
US4356554A (en) * | 1980-09-12 | 1982-10-26 | Thermwood Corporation | Method and apparatus for compensating for system error in an industrial robot control |
DE3038436C2 (de) * | 1980-10-11 | 1985-08-29 | Jungheinrich Unternehmensverwaltung Kg, 2000 Hamburg | Positionierregelkreis für Manipulatoren |
JPS5773402A (en) * | 1980-10-23 | 1982-05-08 | Fanuc Ltd | Numerical control system |
US4379335A (en) * | 1980-10-28 | 1983-04-05 | Auto-Place, Inc. | Electronic controller and portable programmer system for a pneumatically-powered point-to-point robot |
JPS57501948A (de) * | 1980-12-18 | 1982-11-04 | ||
JPS57113111A (en) * | 1980-12-30 | 1982-07-14 | Fanuc Ltd | Robot control system |
JPS57113114A (en) * | 1980-12-30 | 1982-07-14 | Fanuc Ltd | Robot control system |
JPS584377A (ja) * | 1981-03-18 | 1983-01-11 | 株式会社安川電機 | 関節形産業用ロボツトの制御装置 |
US4403281A (en) * | 1981-04-03 | 1983-09-06 | Cincinnati Milacron Industries, Inc. | Apparatus for dynamically controlling the tool centerpoint of a robot arm off a predetermined path |
JPS57175692A (en) * | 1981-04-21 | 1982-10-28 | Takenaka Komuten Co | Crane having automatic positioning controlling function |
IT1144707B (it) * | 1981-05-15 | 1986-10-29 | Dea Spa | Unita a braccio operativo controllata da un sistema a calcolatore |
EP0075792B1 (de) * | 1981-09-24 | 1987-08-26 | Hitachi, Ltd. | Steuerungssystem für Roboterhand |
JPS5856003A (ja) * | 1981-09-30 | 1983-04-02 | Hitachi Ltd | 工業用ロボツトの制御方法 |
JPH0695294B2 (ja) * | 1981-10-05 | 1994-11-24 | 株式会社日立製作所 | 産業用ロボットの軌跡補間方法 |
US4486840A (en) * | 1981-10-14 | 1984-12-04 | Houdaille Industries, Inc. | Computer numeric control for metal forming |
US4488241A (en) * | 1981-12-08 | 1984-12-11 | Zymark Corporation | Robot system with interchangeable hands |
JPS58143981A (ja) * | 1982-02-19 | 1983-08-26 | 株式会社日立製作所 | 産業用ロボツトの制御方法 |
JPS58155148A (ja) * | 1982-03-05 | 1983-09-14 | Okuma Mach Works Ltd | 工作機械における刃物台刃先の軌跡監視方法 |
JPS58177289A (ja) * | 1982-04-12 | 1983-10-17 | 株式会社三協精機製作所 | 工業用ロボツトの動作制御装置 |
US4453221A (en) * | 1982-05-13 | 1984-06-05 | Cincinnati Milacron Inc. | Manipulator with adaptive velocity controlled path motion |
US4506335A (en) * | 1982-06-10 | 1985-03-19 | Cincinnati Milacron Inc. | Manipulator with controlled path motion |
SE452719B (sv) * | 1982-06-29 | 1987-12-14 | Asea Ab | Industrirobot |
EP0108511A3 (de) * | 1982-11-04 | 1985-12-18 | EMI Limited | Roboter-Steuerungssysteme |
JPS59107884A (ja) * | 1982-12-10 | 1984-06-22 | 株式会社日立製作所 | ロボツトの制御方式 |
JPS59114609A (ja) * | 1982-12-22 | 1984-07-02 | Hitachi Ltd | ロボットの制御装置 |
JPS59189415A (ja) * | 1983-04-13 | 1984-10-27 | Hitachi Ltd | 工業用ロボツトの動作教示方法および装置 |
JPS59218513A (ja) * | 1983-05-26 | 1984-12-08 | Fanuc Ltd | 工業用ロボツトの円弧制御法 |
US4547858A (en) * | 1983-06-13 | 1985-10-15 | Allied Corporation | Dynamic control for manipulator |
US4661039A (en) * | 1983-10-20 | 1987-04-28 | Donaldson Company | Flexible-frame robot |
JPS60175108A (ja) * | 1984-02-20 | 1985-09-09 | Fanuc Ltd | 等速制御方法 |
US4734866A (en) * | 1984-07-05 | 1988-03-29 | Siemens Aktiengesellschaft | Computer controller for an industrial multiaxis robot |
US4598380A (en) * | 1984-08-13 | 1986-07-01 | Cincinnati Milacron Inc. | Method and apparatus for controlling manipulator and workpiece positioner |
JPS61110204A (ja) * | 1984-11-02 | 1986-05-28 | Hitachi Ltd | 自動化装置の制御方法 |
US4718078A (en) * | 1985-08-19 | 1988-01-05 | Siemens Aktiengesellschaft | System for controlling motion of a robot |
US5022952A (en) * | 1985-12-13 | 1991-06-11 | Cincinnati Milacron Inc. | Fiber placement machine |
DE3666678D1 (en) * | 1986-02-25 | 1989-12-07 | Trallfa Robot As | Method and robot installation for programmed control of a working tool |
JPH0789286B2 (ja) * | 1986-02-28 | 1995-09-27 | 株式会社日立製作所 | 多関節マニピユレ−タの作業原点決定方法 |
JP2506760B2 (ja) * | 1986-05-12 | 1996-06-12 | 松下電器産業株式会社 | ロボットの制御装置 |
JPH0781455B2 (ja) * | 1987-07-07 | 1995-08-30 | 東京エレクトロン東北株式会社 | 熱処理炉のスカベンジャードア |
US4835710A (en) * | 1987-07-17 | 1989-05-30 | Cincinnati Milacron Inc. | Method of moving and orienting a tool along a curved path |
JP2511072B2 (ja) * | 1987-10-23 | 1996-06-26 | 三菱重工業株式会社 | ロボットにおける教示デ―タの記録・再生方法 |
US5062755A (en) * | 1988-02-23 | 1991-11-05 | Macmillan Bloedel Limited | Articulated arm control |
JP2664205B2 (ja) * | 1988-06-10 | 1997-10-15 | 株式会社日立製作所 | マニピュレータ制御システム |
JP2824588B2 (ja) * | 1989-08-24 | 1998-11-11 | 株式会社エスジー | サーボモータ同期制御方式 |
US5110395A (en) * | 1989-12-04 | 1992-05-05 | Cincinnati Milacron Inc. | Fiber placement head |
DE4291619T1 (de) * | 1991-06-04 | 1994-11-10 | Anca Pty Ltd | Verbesserte Steuerung von CNC-Werkzeugmaschinen |
US5410638A (en) * | 1993-05-03 | 1995-04-25 | Northwestern University | System for positioning a medical instrument within a biotic structure using a micromanipulator |
SE501867C2 (sv) * | 1993-11-15 | 1995-06-12 | Asea Brown Boveri | Förfarande och system för kalibrering av en industrirobot utnyttjande en sfärisk kalibreringskropp |
US5584646A (en) * | 1994-08-31 | 1996-12-17 | Wiseda Ltd. | Handling apparatus |
JP2000066706A (ja) * | 1998-08-21 | 2000-03-03 | Matsushita Electric Ind Co Ltd | ロボット制御装置とその制御方法 |
US7097540B1 (en) | 2005-05-26 | 2006-08-29 | General Electric Company | Methods and apparatus for machining formed parts to obtain a desired profile |
US20080058990A1 (en) * | 2006-08-31 | 2008-03-06 | General Electric Company | Robotic programming control using multiple binary input |
CN110815225B (zh) * | 2019-11-15 | 2020-12-25 | 江南大学 | 电机驱动单机械臂系统的点对点迭代学习优化控制方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3123657A (en) * | 1964-03-03 | Automatic control apparatus | ||
US3128374A (en) * | 1960-12-08 | 1964-04-07 | Bendix Corp | Control system |
US3543910A (en) * | 1968-07-30 | 1970-12-01 | George C Devol | Work-head automatic motions controls |
US3656124A (en) * | 1968-09-26 | 1972-04-11 | Giddings & Lewis | Linear and circular interpolation contouring control using repeated computation |
US3618742A (en) * | 1970-05-18 | 1971-11-09 | Stanley J Blanchard | Automatic object adjustment |
US3699317A (en) * | 1970-05-22 | 1972-10-17 | Westinghouse Electric Corp | Sampled data numerical contouring machine controller apparatus and method providable with on line capability for contour cornering deceleration and acceleration |
DE2155267C3 (de) * | 1971-11-06 | 1980-01-31 | Indramat Gesellschaft Fuer Industrie- Rationalisierung Und Automatisierung Mbh, 8770 Lohr | Funktionsgenerator, insbesondere für ein stetiges Nachformsystem mit Auswertung des Betrages der Fühlerauslenkung |
US3843875A (en) * | 1973-03-07 | 1974-10-22 | Remington Arms Co Inc | Numerical control checkering system |
-
1973
- 1973-05-31 US US364381A patent/US3909600A/en not_active Expired - Lifetime
- 1973-06-13 DE DE2330054A patent/DE2330054C2/de not_active Expired
- 1973-06-15 NO NO2493/73A patent/NO149366C/no unknown
- 1973-06-25 CA CA174,860A patent/CA992652A/en not_active Expired
- 1973-06-26 JP JP48071377A patent/JPS612964B2/ja not_active Expired
- 1973-06-26 GB GB3028573A patent/GB1408666A/en not_active Expired
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102008061153A1 (de) * | 2008-12-09 | 2010-06-17 | Renate Grünfeld | Verfahren zur mehrdimensionalen automatischen, elektromotorischen Bewegung einer kartesisch geführten Sonde zu einem Objekt |
Also Published As
Publication number | Publication date |
---|---|
NO149366B (no) | 1983-12-27 |
JPS4950376A (de) | 1974-05-16 |
GB1408666A (en) | 1975-10-01 |
DE2330054A1 (de) | 1974-01-17 |
JPS612964B2 (de) | 1986-01-29 |
NO149366C (no) | 1984-04-04 |
US3909600A (en) | 1975-09-30 |
CA992652A (en) | 1976-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2330054C2 (de) | Vorrichtung zur Steuerung der Bewegung eines Arbeitselementes eines Roboterarmes | |
DE102011108282B4 (de) | Numerische Steuerung für eine Mehrachsenmaschine zum Bearbeiten einer geneigten Bearbeitungsebene | |
DE2639774C2 (de) | ||
DE2636148C2 (de) | Verfahren zur Bahnsteuerung eines Elementes mittels linearer oder zirkularer Interpolation | |
DE2526504B2 (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 | |
DE3317263A1 (de) | Manipulator mit adaptiver geschwindigkeitsgesteuerter bahnbewegung | |
DE2712169C2 (de) | Verfahren zur Ausführung einer komplexen Bewegung durch einen Industrieroboter | |
DE112016004725T5 (de) | Verfahren zum Teach-ln eines Roboters und Roboterarmsteuervorrichtung | |
DE112016005365T5 (de) | Direktes Lehrverfahren eines Roboters | |
DE4411426B4 (de) | Multitask-Steuersystem | |
DE3236320A1 (de) | Vorrichtung zum bewegen eines werkzeugmittelpunktes eines funktionselementes, insbesondere eines roboterarms | |
DE102004026813A1 (de) | Verfahren und Vorrichtung zum Steuern von Handhabungsgeräten | |
DE102004026814A1 (de) | Verfahren und Vorrichtung zum Verbessern der Positioniergenauigkeit eines Handhabungsgeräts | |
DE2656433B2 (de) | Verfahren zur Regelung der Bewegungsgrößen, z.B. der Rotations- und Translationsbewegungen, eines Manipulators oder industriellen Handhabungsgerätes | |
DE102020121561B3 (de) | Steuerungsverfahren für ein bilaterales Teleoperationssystem, Controller, Teleoperationssystem und Verwendung des Controllers und/oder des Teleoperationssystems | |
DE102019003286A1 (de) | Numerische Steuerung | |
DE10393527T5 (de) | Systeme und Verfahren zur Darstellung komplexer n-Kurven für die Direktsteuerung einer Werkzeugbewegung | |
EP3225366B1 (de) | Positionsüberwachung einer kinematik | |
EP3356894B1 (de) | Verfahren zur automatischen konfiguration eines externen steuerungssystems zur steuerung und/oder regelung eines robotersystems | |
EP1152212A2 (de) | Vorrichtung und Verfahren zur Kalibrierung eines Betätigungsarmes eines Roboters | |
DE2338880A1 (de) | Verfahren und vorrichtungen zur steuerung der beweglichen teile einer werkzeugmaschine durch ein numerisches umriss- oder punkt-fuer-punkt-steuerungssystem, wobei zwei teile der maschine unabhaengig voneinander entlang einer gemeinsamen achse bewegt werden koennen | |
DE19800552C2 (de) | Verfahren zur Kommandosteuerung eines Manipulators | |
DE102020200165B4 (de) | Robotersteuereinrichtung und Verfahren zum Steuern eines Roboters | |
EP0184075A1 (de) | Einrichtung und Verfahren zum Regeln eines Industrieroboters | |
DE10296995T5 (de) | Verfahren zum Abstimmen und Synchronisieren der Bewegung von Servounterstützten Achsen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
D2 | Grant after examination | ||
8363 | Opposition against the patent | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: CINCINNATI MILACRON INDUSTRIES, INC., CINCINNATI, |
|
8328 | Change in the person/name/address of the agent |
Free format text: BROSE, D., DIPL.-ING., PAT.-ANW., 8023 PULLACH |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: CINCINNATI MILACRON INC. (EINE GES. N.D. GESETZEN |
|
8328 | Change in the person/name/address of the agent |
Free format text: BROSE, D., DIPL.-ING. RESCH, M., DIPL.-PHYS., PAT.-ANW., 8023 PULLACH |
|
8331 | Complete revocation |