DE2330054C2 - Vorrichtung zur Steuerung der Bewegung eines Arbeitselementes eines Roboterarmes - Google Patents

Vorrichtung zur Steuerung der Bewegung eines Arbeitselementes eines Roboterarmes

Info

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
Application number
DE2330054A
Other languages
English (en)
Other versions
DE2330054A1 (de
Inventor
Richard E. Cincinnati Ohio Hohn
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 DE2330054A1 publication Critical patent/DE2330054A1/de
Application granted granted Critical
Publication of DE2330054C2 publication Critical patent/DE2330054C2/de
Expired legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/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/1628Programme controls characterised by the control loop
    • B25J9/1651Programme controls characterised by the control loop acceleration, rate control
    • 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/18Numerical 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/416Numerical 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
    • 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/33Director till display
    • G05B2219/33099Computer numerical control [CNC]; Software control [SWC]
    • 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/35Nc in input of data, input till input file format
    • G05B2219/35354Polar coordinates, turntable
    • 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/35Nc in input of data, input till input file format
    • G05B2219/35543Cartesian to polar and vice versa
    • 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/41Servomotor, servo controller till figures
    • G05B2219/41477Servo loop with analog position sensor for continuous path control
    • 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/43Speed, acceleration, deceleration control ADC
    • G05B2219/43006Acceleration, deceleration control
    • 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/45051Transfer 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
Cn/iniintlAn ttrfnr^ttrlioK oifwi AIc n&s*hctAC vuirrt rtip
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
Verfahren über den Punkt G zum Block 103 der F i g. 5a. Fig.6 zeigt ein detailliertes Flußdiagramm eines Verfahrens zum Transformieren von Werten des ersten,
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)

  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 und
    eine 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.
DE2330054A 1972-06-26 1973-06-13 Vorrichtung zur Steuerung der Bewegung eines Arbeitselementes eines Roboterarmes Expired DE2330054C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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