DE60035651T2 - Steuerungssystem zum synchronen kooperativen Betreiben einer Mehrzahl von Robotern - Google Patents

Steuerungssystem zum synchronen kooperativen Betreiben einer Mehrzahl von Robotern Download PDF

Info

Publication number
DE60035651T2
DE60035651T2 DE60035651T DE60035651T DE60035651T2 DE 60035651 T2 DE60035651 T2 DE 60035651T2 DE 60035651 T DE60035651 T DE 60035651T DE 60035651 T DE60035651 T DE 60035651T DE 60035651 T2 DE60035651 T2 DE 60035651T2
Authority
DE
Germany
Prior art keywords
robot
slave
master
program
control device
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 - Lifetime
Application number
DE60035651T
Other languages
English (en)
Other versions
DE60035651D1 (de
Inventor
Hiromitsu Minamitsuru-gun TAKAHASHI
Tetsuya Minamitsuru-gun KOSAKA
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Original Assignee
Fanuc Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fanuc Corp filed Critical Fanuc Corp
Application granted granted Critical
Publication of DE60035651D1 publication Critical patent/DE60035651D1/de
Publication of DE60035651T2 publication Critical patent/DE60035651T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • 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/34Director, elements to supervisory
    • G05B2219/34399Switch between synchronous and asynchronous mode of controllers
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39109Dual arm, multiarm manipulation, object handled in cooperation
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39139Produce program of slave from path of master and desired relative position
    • 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40307Two, dual arm robot, arm used synchronously, or each separately, asynchronously

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Description

  • Die Erfindung betrifft ein Steuersystem zum Steuern einer Anzahl Arbeitsroboter, und insbesondere ein Steuersystem zum Durchführen eines gemeinsamen Synchronbetriebs mit der Anzahl Roboter.
  • Zuvor gab es kein praktisches Steuersystem zum Durchführen eines gemeinsamen Synchronbetriebs mit einer Anzahl Roboter, die jeweils durch Roboter-Steuervorrichtungen gesteuert werden, welche über eine Kommunikationsleitung aneinander angeschlossen sind. Bei dem herkömmlichen System für den gemeinsamen Synchronbetrieb der Roboter wird ein Wechsel zwischen dem gemeinsamen Synchronbetrieb und einem normalen unabhängigen Betrieb der Roboter zum Zeitpunkt der Konstruktion des Systems eingestellt, und man muss eine Grundeinstellung des Systems zum Wechseln der Wechseleinstellung für den gemeinsamen Synchronbetrieb ändern.
  • Eine Kombination von Robotern, die im Synchronbetrieb betrieben werden sollen, wurde fest zu einem Zeitpunkt der Systemkonstruktion eingestellt. Hat das System vier Roboter, die jeweils durch vier über Kommunikationsleitungen aneinander angeschlossene Roboter-Steuervorrichtungen gesteuert werden, gibt es beispielsweise bei dem herkömmlichen System ein Verfahren, bei dem alle vier Roboter in gemeinsamem Synchronbetrieb durch diese Steuervorrichtungen betrieben werden.
  • Bei praktischer Verwendung gibt es gemäß dem Inhalt eines Betriebs einen Fall, bei dem man möchte, dass alle vier Roboter in dem vorstehend beschriebenen Beispiel in gemeinsamem Synchronbetrieb arbeiten, einen Fall, bei dem man möchte, dass jeder Roboter einzeln arbeitet, einen Fall, bei dem man möchte, dass nur 2 oder nur 3 der 4 Roboter in gemeinsamem Synchronbetrieb arbeiten und die restlichen Roboter einzeln arbeiten, und zudem einen Fall, bei dem man möchte, dass 2 der 4 Roboter und die restlichen beiden Roboter jeweils in gemeinsamem Synchronbetrieb arbeiten. Bei dem herkömmlichen gemeinsamen Synchronbetriebssystem können Roboter, die in gemeinsamem Synchronbetrieb betrieben werden sollen, nicht gemäß dem durchzuführenden Betrieb ausgewählt werden. Ein solches System ist insofern ungeeignet, als sämtliche Roboter entweder in gemeinsamem Synchronbetrieb oder einzeln betrieben werden, so dass der gemeinsame Synchronbetrieb der gewünschten Roboter, die aus den Robotern gemäß der Art des Betriebs ausgewählt werden, nicht durchgeführt werden kann.
  • Bei einem gemeinsamen Synchronbetrieb muss darüber hinaus ein Roboteroperator auf die Bewegung des Master-Roboters und des Slave-Roboters achten, da der Slave-Roboter entsprechend dem Master-Roboter arbeitet. Der Operator kann jedoch den Status des gemeinsamen Synchronbetriebs der Roboter aus der Bewegung der Roboter schwierig erkennen.
  • US-A-5,254,923 offenbart ein Steuersystem zur Durchführung eines gemeinsamen Synchronbetriebs mit einer Anzahl Roboter. Eine Slave-Roboter-Steuervorrichtung steuert einen Slave-Roboter so, dass dieser einen gemeinsamen Synchronbetrieb mit einem Master-Roboter auf der Basis der Synchronsations-AN/AUS-Daten durchführt, die von der Master-Roboter-Steuervorrichtung erhalten werden. Die Bewegungszeiten der Master- und Slave-Roboter werden dadurch aneinander angeglichen, so dass man die Synchronsteuerung der beiden Roboter erzielen kann. Mit anderen Worten werden Master- und Slave-Roboter veranlasst, sich in der gleichen Zeit zu bewegen, die durch die gleiche Uhr angezeigt wird, so dass sie genau synchronisiert werden können.
  • Erfindungsgemäß wird ein Steuersystem nach Anspruch 1 bereitgestellt. Jede der Anzahl Roboter-Steuervorrichtungen kann eine Reihe von Betriebsprogrammen als Kombination eines Masterprogramms zum Betreiben des gesteuerten Roboters als Master-Roboter, ein Slave-Programm zum Betreiben des gesteuerten Roboters als Slave-Roboter und ein normales Programm zum Betreiben des gesteuerten Roboters unabhängig von den anderen Robotern speichern.
  • Der gemeinsame Synchronbetrieb des Master-Roboters und der Slave-Roboter kann durch einen Programmbefehl in einem in der Master-Roboter-Steuervorrichtung gespeicherten Betriebsprogramm gestartet und beendet werden.
  • Master-Steuervorrichtung und Slave-Steuervorrichtungen können jeweils ein Betriebsprogramm speichern mit einer Eigenschaft für den gemeinsamen Synchronbetrieb, und der gemeinsame Synchronbetrieb von Master-Roboter und Slave-Roboter kann beginnen, wenn die Master-Roboter-Steuervorrichtung und die Slave-Roboter-Steuervorrichtung die Ausführung der Betriebsprogramme beginnen, die die Eigenschaften des gemeinsamen Synchronbetriebs haben, und endet mit der Beendigung der Betriebsprogramme, die diese Eigenschaften haben.
  • Die Master-Roboter-Steuervorrichtung und die Slave-Roboter-Steuervorrichtungen können Signale ausgeben, die das Fortschreiten oder die Bereitschaft des gemeinsamen Synchronbetriebs anzeigen, wenn der Master-Roboter und der Slave-Roboter im Verlauf eines gemeinsamen Synchronbetriebs sind oder wenn sie bereit dafür sind.
  • Die Master-Roboter-Steuervorrichtung und die Slave-Roboter-Steuervorrichtung können Signale ausgeben, die die Mitte oder die Bereitschaft des gemeinsamen Synchronbetriebs anzeigen, wenn der Master-Roboter und die Slave-Roboter inmitten des Synchronbetriebs oder bereit dafür sind. Somit kann ein Operator der Roboter-Steuervorrichtung den Status des gemeinsamen Synchronbetriebs bestätigen.
  • Für ein besseres Verständnis der Erfindung und für einen Nachweis, wie diese umgesetzt werden kann, wird nun beispielsweise auf die beigefügten Zeichnungen Bezug genommen. Es zeigt:
  • 1 ein Blockschema eines wesentlichen Teils einer Roboter-Steuervorrichtung zum Steuern eines zugehörigen Roboters zur Durchführung eines gemeinsamen Betriebs einer Anzahl Roboter gemäß einer erfindungsgemäßen Ausführungsform;
  • 2, eine schematische Darstellung, ein Beispiel für ein Netzwerk von Roboter-Steuervorrichtungen zeigt, die über Kommunikationsleitungen miteinander verbunden sind;
  • 3, eine schematische Ansicht, ein weiteres Beispiel für ein Netzwerk von Roboter-Steuervorrichtungen, die über Kommunikationsleitungen miteinander verbunden sind;
  • 4 eine Tabelle eines Stellbeispiels von Kombinationen von Robotern zur Durchführung eines gemeinsamen Betriebs;
  • 5 eine Tabelle eines Anschlussmusters, das in einem Roboter Nr. 1 als Master-Roboter eingestellt ist, in dem Beispiel der Kombinationen von Robotern, wie sie in der 5 gezeigt sind;
  • 6 eine Tabelle eines Anschlussmusters, das in einem Roboter Nr. 3 eingestellt ist als Master-Roboter in dem Beispiel von Kombinationen von Robotern, wie sie in der 5 gezeigt sind;
  • 7 ein Schaubild, das die Betriebsabfolge der Roboter in dem Beispiel der Kombinationen von Robotern zeigt, wie sie in der 5 gezeigt sind;
  • 8 ein Schaubild einer Programmabfolge, wie sie in jedem Roboter in einem Beispiel der Betriebssequenz gespeichert ist, wie sie in der 7 gezeigt ist;
  • 9 ein partielles Fließschema der Verarbeitung, die von dem Prozessor der Roboter-Steuervorrichtung von jedem Roboter ausgeführt wird, wie in der 1 gezeigt, wobei es sich hauptsächlich um ein Fließschema der Verarbeitung handelt, die von der Roboter-Steuervorrichtung durchgeführt werden soll, damit der Roboter unabhängig arbeitet (Ausführung eines normalen Programms);
  • 10 eine Fortsetzung des Fließschemas von 9, welches derjenige Teil ist, der von der Steuervorrichtung einer Master-Roboter-Steuervorrichtung ausgeführt werden soll (Ausführung eines Master-Programms);
  • 11 eine Fortsetzung des Fließschemas von 10, das durch den Prozessor der Master-Roboter-Steuervorrichtung ausgeführt werden soll (Ausführung des Master-Programms);
  • 12 eine Fortsetzung des Fließschemas von 10, welches derjenige Teil ist, der von einer Slave-Roboter-Steuervorrichtung ausgeführt werden soll (Ausführung eines Slave-Programms);
  • 13 eine Fortsetzung des Fließschemas von 12, das von der Slave-Roboter-Steuervorrichtung ausgeführt werden soll (Ausführung des Slave-Programms);
  • 14 eine Fortsetzung des Fließschemas von 13, das vom Slave-Roboter ausgeführt werden soll (Ausführung des Slave-Programms); und
  • 15 eine schematische Ansicht eines Verfahrens zur Bestimmung der Interpolationspositionsdaten eines Slave-Roboters, an dem das Bewegungsausmaß eines Roboters wiedergegeben wird.
  • Die 1 zeigt eine Roboter-Steuervorrichtung zum Steuern jedes Roboters zum synchronen Durchführen eines gemeinsamen Betriebs einer Anzahl Roboter. In der 1 hat eine Roboter-Steuervorrichtung 1 einen Prozessor 10 zum allgemeinen Steuern eines Robotermechanismus 2 und Roboter-Steuervorrichtung 1. Der Prozessor 10 ist über einen Bus 18 an einen ROM 11, einen RAM 12, einen nichtflüchtigen Speicher 13, einen Roboterachsensteuerabschnitt 14, ein Kommunikationsmodul 15, eine Programmierkonsolen-Schnittstelle 16 usw. angeschlossen. Der ROM 11 speichert ein Systemprogramm, das von dem Prozessor 10 ausgeführt werden soll, und der nichtflüchtige Speicher 13 speichert Sollwerte verschiedener Parameter und ein eingespeichertes Programm für einen Betrieb, der von dem Robotermechanismus 2 durchgeführt werden soll. Der RAM 12 wird zur vorübergehenden Speicherung von Daten verwendet. Der Roboterachsensteuerabschnitt 14 führt Feedbacksteuerungen von Position, Geschwindigkeit und Drehmoment (Strom) jedes Motors für jede Achse durch die digitale Servosteuerung mit einem Prozessor auf der Basis der Bewegungsbefehle für jede Achse durch, so dass der Servomotor für jede Achse des Robotermechanismusabschnitt 2 über einen Servoverstärker 17 angetrieben wird. Das Kommunikationsmodul 15 ist über einen Kommunikationsweg an eine weitere Roboter-Steuervorrichtung angeschlossen. Die Schnittstelle für die Programmierbetriebskonsole 16 ist an eine Programmierbetriebskonsole 3 angeschlossen.
  • Die vorstehende Basiskonfiguration jeder Roboter-Steuervorrichtung ist genauso wie bei der herkömmlichen, und die Roboter-Steuervorrichtungen einer solchen Konfiguration sind über einen Signalweg der Kommunikationsleitungen aneinander angeschlossen, so dass sie ein Steuersystem für einen gemeinsamen Synchronbetrieb einer Anzahl Roboter ausmachen.
  • Nachstehend wird ein Roboter-Steuersystem zum Steuern von vier Robotern beschrieben, durch die Roboter-Steuervorrichtungen, die über den Signalweg zum jeweiligen Steuern der entsprechenden Roboter angeschlossen sind, so dass einzelne Arbeitsgänge und ein gemeinsamer Synchronbetrieb der Roboter in einer willkürlichen Kombination nacheinander durchgeführt werden.
  • Die 2 und 3 zeigen Beispiele des Anschlusses der vier Roboter-Steuervorrichtungen, die über ein Kommunikations-Netzwerk von Ethernet miteinander verbunden sind. Jedes andere Netzwerk als Ethernet kann verwendet werden. In einem Beispiel von 2 sind die Roboter-Steuervorrichtungen Nr. 1 bis Nr. 4 über die Signalleitungen L miteinander verbunden, so dass ein Signalweg erhalten wird. In dem Beispiel von 3 sind die Roboter-Steuervorrichtungen Nr. 1 bis 4 mittels Hub aneinander angeschlossen. Zur Identifikation jedes Roboters, der durch die Kommunikationsleitungen L angeschlossen ist, wird jedem Roboter eine Roboternummer zugeordnet, und in dem nichtflüchtigen Speicher eines jeden Roboters wird die diesem Roboter zugeordnete Roboternummer eingestellt und gespeichert. In den in den 2 und 3 gezeigten Beispielen wird die Nummer von Nr. 1 bis Nr. 4 eingestellt und gespeichert. In der folgenden Beschreibung werden die Nr. 1 bis Nr. 4 für die Roboter Nr. 1 bis Nr. 4 und die Roboter-Steuervorrichtungen Nr. 1 bis Nr. 4 verwendet. Es werden auch die Roboter Nr. 1 bis Nr. 4 verwendet.
  • Es wird zudem eine Transformationsmatrix von einem beliebigen Roboter zu einem anderen Roboter durch Kalibrieren der Installationsposition zwischen den Robotern eingestellt. Wird beispielsweise der Roboter Nr. 2 aus Sicht von Roboter Nr. 1 betrachtet, muss man eine Position in einem Weltkoordinatensystem von Roboter Nr. 1 bestimmen, in dem ein Weltkoordinatensystem von Roboter Nr. 2 liegt. Zu diesem Zweck wird beispielsweise eine Transformationsmatrix T2-1 von dem Weltkoordinatensystem des Roboters Nr. 1 zum Weltkoordinatensystem von Roboter Nr. 2 bestimmt. Dies erfolgt für alle Muster. Da jedoch die inverse Matrix der Transformationsmatrix T2-1 von Nr. 1 zu Nr. 2 die Transformationsmatrix von Nr. 2 zu Nr. 1 ist, wenn die Transformationsmatrix von Nr. 1 zu Nr. 2 bestimmt wird, muss man die Transformationsmatrix von Nr. 2 zu Nr. 1 nicht bestimmen. Die so bestimmte Transformationsmatrix wird in dem nichtflüchtigen Speicher 13 jeder Roboter-Steuervorrichtung gespeichert. Die Transformationsmatrix T1-2 von Nr. 2 zu Nr. 1 wird in der Steuervorrichtung des Roboters Nr. 2 gespeichert. Entsprechend wird jede Transformationsmatrix im nichtflüchtigen Speicher 13 jeder Roboter-Steuervorrichtung gespeichert, beispielsweise die Transformationsmatrix T1-3 von Nr. 3 zu Nr. 1 wird in der Roboter-Steuervorrichtung Nr. 3 gespeichert, die Transformationsmatrix T1-4 von Nr. 4 zu Nr. 1 wird in der Roboter-Steuervorrichtung Nr. 4 gespeichert und die Transformationsmatrix T2-3 wird in der Roboter-Steuervorrichtung Nr. 3 gespeichert.
  • Bei dem bisher durchgeführten Kalibrierungsverfahren wird ein Kalibrierungsstab an den Handgelenken von zwei zu kalibrierenden Robotern befestigt, und sein distales Ende wird als TOP (Werkzeugmittelpunkt) eingestellt. Dann werden die distalen Enden der Kalibrierungsstäbe an drei Punkten (es entsteht ein Dreieck, wobei die drei Punkte die Scheitelpunkte sind) in einem Raum positioniert, die nicht auf der gleichen Geraden liegen, und die Positionen werden durch das jeweilige Weltkoordinatensystem bestimmt. Danach wird die Transformationsmatrix T2-1 von Roboter Nr. 1 zu Roboter Nr. 2 aus den bestimmten drei Positionsdaten auf dem Weltkoordinatensystem von Roboter 1 und drei Positionsdaten auf dem Weltkoordinatensystem von Nr. 2 berechnet. Entsprechend wird jede Transformationsmatrix bestimmt und im nichtflüchtigen Speicher einer jeden Roboter-Steuervorrichtung gespeichert.
  • Anschließend werden die Kombinationen von Robotern, die für den gemeinsamen Betrieb synchron betrieben werden sollen, bestimmt, und ein Master-Roboter und ein oder mehrere Slave-Roboter in der Kombination werden bestimmt. Die 4 zeigt ein Beispiel für die Kombinationen. In der ersten Kombination arbeiten sämtliche vier Roboter synchron zu Roboter 1, der als Master-Roboter verwendet wird, und andere Roboter, die als Slave-Roboter verwendet werden. In der zweiten Kombination arbeiten Roboter Nr. 1 und Roboter Nr. 2 synchron zu Roboter Nr. 1 als Master-Roboter und Roboter Nr. 2 als Slave-Roboter. In der dritten Kombination wird ein gemeinsamer Synchronbetrieb in der Kombination von Roboter Nr. 3 als Master-Roboter und Roboter Nr. 4 als Slave-Roboter durchgeführt. In der vierten Kombination wird ein gemeinsamer Synchronbetrieb durchgeführt durch die Kombination von Roboter Nr. 1 als Master-Roboter und Roboter Nr. 3 als Slave-Roboter.
  • Die Roboter, die nicht als Master-Roboter oder Slave-Roboter angegeben sind, können als normale Roboter verwendet werden, d.h. sie lassen sich unabhängig betreiben, wohingegen der Master-Roboter und der Slave-Roboter jeder Kombination den gemeinsamen Synchronbetrieb durchführen. In der zweiten Kombination können beispielsweise die Roboter Nr. 3 und Nr. 4 als normale Roboter verwendet werden, und in der dritten Kombination können die Roboter Nr. 1 und Nr. 2 als normale Roboter verwendet werden. In der vierten Kombination können die Roboter Nr. 2 und Nr. 4 als normale Roboter verwendet werden.
  • In jeder Kombination der Roboter, die in gemeinsamem Synchronbetrieb betrieben werden sollen, wird ein Roboter als Master-Roboter ausgewählt, und ein oder mehrere Roboter werden aus dem Rest der Roboter, die über die Kommunikationsleitung angeschlossen sind, als Slave-Roboter ausgewählt.
  • Nach Bestimmung einer Kombination, in der ein gemeinsamer Synchronbetrieb durchgeführt wird, wird ein Kombinationsmuter eingestellt. In diesem Beispiel wird das Kombinationsmuster in der Master-Roboter-Steuervorrichtung eingestellt. Das Kombinationsmuster kann in der Slave-Roboter-Steuervorrichtung eingestellt werden. In den vorstehend beschriebenen Kombinationen, da der Roboter Nr. 1 der Master-Roboter in Kombination mit den Nummern 1, 2 und 4 ist, wird der Roboter Nr. 1 als Master-Roboter gespeichert, und die Roboter Nr. 2, Nr. 3 und Nr. 4 werden als Slave-Roboter als Anschlussmuster 1 im nicht-flüchtigen Speicher 13 der Roboter-Steuervorrichtung Nr. 1 gespeichert, wie es in der 5 gezeigt ist. Als Anschlussmuster 2 wird der Roboter Nr. 1 als Master-Roboter, und der Roboter Nr. 2 wird als Slave-Roboter gespeichert. Zudem wird als Anschlussmuster 2 der Roboter Nr. 1 als Master-Roboter gespeichert und der Roboter Nr. 3 wird als Slave-Roboter gespeichert.
  • Entsprechend wird in der Roboter-Steuervorrichtung Nr. 3, wie in der 6 gezeigt, gemäß der dritten Kombination der Roboter Nr. 3 als Master-Roboter gespeichert, und der Roboter Nr. 4 wird als Slave-Roboter als Anschlussmuster 1 gespeichert. Die Steuervorrichtung für den angegebenen Master-Roboter wird als Master-Roboter-Steuervorrichtung bezeichnet, und die Steuervorrichtung für den angegebenen Slave-Roboter wird als Slave-Roboter-Steuervorrichtung bezeichnet.
  • Ein Programm gemäß der Betriebsabfolge wird für die Steuervorrichtung eines jeden Roboters eingestellt. Wie in der 7 gezeigt, wird zuerst jeder der Roboter Nr. 1 bis Nr. 4 unabhängig betrieben, und dann werden alle Roboter Nr. 1 bis 4 in gemeinsamem Synchronbetrieb durch die erste Kombination betrieben. Nach Beendigung dieses Betriebs werden die Roboter Nr. 1 und Nr. 2 in gemeinsamem Synchronbetrieb gemäß der zweiten Kombination betrieben, und gleichzeitig werden die Roboter Nr. 3 und 4 in gemeinsamem Synchronbetrieb gemäß der dritten Kombination betrieben. Schließlich werden die Roboter Nr. 1 und Nr. 3 in gemeinsamem Synchronbetrieb gemäß der dritten Kombination betrieben, und die Roboter Nr. 2 und Nr. 4 werden unabhängig betrieben.
  • Zur Erzielung der vorstehenden Betriebsabfolge werden die Betriebsprogramme im nichtflüchtigen Speicher 13 jeder Roboter-Steuervorrichtung in der in der 8 gezeigten Reihenfolge eingestellt und gespeichert. In der folgenden Beschreibung wird ein Programm zum unabhängigen Betreiben eines Roboters als normales Programm bezeichnet, ein Programm für einen Master-Roboter zum Durchführen eines gemeinsamen Synchronbetriebs wird als Masterprogramm bezeichnet, und ein Programm, das von einem Slave-Roboter durchgeführt werden soll, wird als Slave-Programm bezeichnet.
  • Die in der Roboter-Steuervorrichtung Nr. 1 einzustellende und zu speichernde Programmabfolge ist in der Reihenfolge von normalem Programm, Masterprogramm für den synchronen Betrieb gemäß der ersten Kombination (Anschlussmuster 1), Masterprogramm zum gemeinsamen Synchronbetrieb gemäß der zweiten Kombination (Anschlussmuster 2) und Masterprogramm zum gemeinsamen Synchronbetrieb gemäß der vierten Kombination (Anschlussmuster 3).
  • Die Programmabfolge, die in der Roboter-Steuervorrichtung Nr. 2 eingestellt und gespeichert werden soll, ist in der Reihenfolge von normalem Programm, Slave-Programm für den gemeinsamen Synchronbetrieb gemäß der ersten Kombination (Anschlussmuster 1), Slaveprogramm zum gemeinsamen Synchronbetrieb gemäß der zweiten Kombination (Anschlussmuster 2), und normalem Programm.
  • In der Roboter-Steuervorrichtung Nr. 3 werden die Programme in der Reihenfolge von normalem Programm, Slave-Programm für den gemeinsamen Synchronbetrieb gemäß der ersten Kombination, Masterprogramm für den gemeinsamen Synchronbetrieb gemäß der dritten Kombination, und Slave-Programm zum gemeinsamen Synchronbetrieb gemäß der vierten Kombination eingestellt. In der Roboter-Steuervorrichtung Nr. 4 werden die Programme in der Reihenfolge von normalem Programm, Slave-Programm für den gemeinsamen Synchronbetrieb gemäß der ersten Kombination, Slave-Programm für den gemeinsamen Synchronbetrieb der dritten Kombination (Anschlussmuster 1, eingestellt in der Roboter-Steuervorrichtung Nr. 3) und normalem Programm eingestellt und gespeichert.
  • Im normalen Programm, Masterprogramm, und Slave-Programm sind jeweils Informationen darüber, welches Programm ein normales Programm, Masterprogramm, oder Slave-Programm ist, als Eigenschafts- oder Programmbefehl an dessen Anfang gespeichert.
  • Somit wird nach dem Speichern eines jeden Programms im nicht-flüchtigen Speicher jeder Roboter-Steuervorrichtung das auszuführende Programm gestartet. Dann startet der Prozessor 10 jeder Roboter-Steuervorrichtung 1 die in einem Fließschema der 9 bis 14 gezeigte Verarbeitung.
  • Zuerst wird das gespeicherte Programm gelesen (Schritt S1), und es wird bestimmt, ob das gelesene Programm ein normales Programm ist oder nicht (Schritt S2). Da wie in der 8 gezeigt jeder Roboter ein normales Programm liest, schreitet in dem vorstehend beschriebenen Beispiel das Verfahren weiter zu Schritt S3, wobei die nächste Programmzeile gelesen wird, und es dann bestimmt wird, ob die Zeile vorhanden ist oder nicht (Schritt S4). Ist die Zeile vorhanden, wird die Bewegungsstartposition (aktuelle Position) auf dieser Linie von der Lernzielposition (TOP) hergeleitet, die auf dieser Zeile programmiert ist, so dass ein Bewegungsabstand bestimmt wird, und dieser wird weiter durch die Betriebsgeschwindigkeit geteilt, bei der der Bewegungsabstand einprogrammiert wird, so dass er eine Bewegungszeit bestimmt. Die Bewegungszeit wird zudem durch den Berechnungszyklus zur Interpolation dividiert, so dass die Anzahl Interpolationspunkte bestimmt wird (Schritt S5).
  • Anschließend wird ein Index i als "0" eingestellt, und es wird bestimmt, ob der Index i kleiner als die Anzahl der in Schritt S5 (Schritt S7) bestimmten Interpolationspunkte ist. Ist der Index i kleiner als die Anzahl der Interpolationspunkte, wird ein Wert, erhalten durch Multiplikation eines Wertes (i + 1), der erhalten wird durch Addition von "1" zum Index i, mit einem Wert, erhalten durch Teilen des in Schritt S5 bestimmten Bewegungsabstandes, durch die Anzahl der Interpolationspunkte, zu der Bewegungsstartposition auf dieser Zeile addiert, durch die die Interpolationspositionsdaten bestimmt werden (Schritt S8).
  • Ein Bewegungsausmaß (ansteigende Menge) jeder Achse wird bestimmt auf der Basis dieser Interpolationsdaten (Schritt S9), das Bewegungsausmaß jeder Achse wird einer Beschleunigungs-Abbremsverarbeitung unterworfen (Schritt S10), und ein Befehl wird einem Motor erteilt (Schritt S11). Insbesondere ein Bewegungsbefehlswert jeder Achse, die einer Beschleunigungs-Abbremsverarbeitung unterworfen wurde, wird an den Achsensteuerabschnitt 14 des Roboters ausgegeben, es erfolgt eine Schleifensteuerung für Position, Geschwindigkeit Strom, usw., und ein Servomotor für jede Achse des Robotermechanismusabschnitts 2 wird über den Servoverstärker 17 angetrieben.
  • Anschließend wird der Index i um "1" erhöht (Schritt S12), und die Steuerung kehrt zu Schritt 57 zurück, so dass die Verarbeitung in den Schritten S7 bis S12 wiederholt ausgeführt wird, bis der Index i die Anzahl der Interpolationspunkte erreicht. Hat der Index i die Anzahl Interpolationspunkte erreicht, verläuft die Steuerung von Schritt S7 zu Schritt S3, wobei die nächste Programmzeile gelesen wird. Die Verarbeitung in Schritt S3 und die nachfolgenden Schritte werden wiederholt ausgeführt, bis die gelesene Zeile verschwindet. Verschwindet die Zeile, wird die Verarbeitung dieses normalen Programms beendet.
  • Dann wird das nächste Programm gelesen, und es wird bestimmt, ob das Programm ein normales Programm ist oder nicht (Schritte S1 und S2). In dem in 8 gezeigten Beispiel wird das Programm für den Roboter Nr. 1 gelesen, und das Slave-Programm wird für andere Roboter gelesen. Daher geht die Steuerung von Schritt S2 zu Schritt S13, wo es bestimmt wird, ob das gelesene Programm ein Master-Programm ist oder nicht. Da das Masterprogramm gelesen wird, wird für den Roboter Nr. 1, der ein Master-Roboter ist, die Verarbeitung in den Schritten S15 bis S34 begonnen. Für andere Roboter, bei denen es sich um Slave-Roboter handelt, verläuft die Steuerung von Schritt S13 bis Schritt S37, wo es bestimmt wird, ob eine Nachricht bezüglich der Ausführung der Startvorbereitungsbeendigung vom Master-Roboter erreicht wurde oder nicht.
  • Der Prozessor 10 der Steuervorrichtung (als Master-Roboter-Steuervorrichtung) von Roboter Nr. 1 als Master-Roboter gibt ein Signal zum Benachrichtigen eines Operators des Roboter-Steuersystems über die Ausführung des Masterprogramms aus (Schritt S14), und liest eine Anschlussmusterinformation aus der Anschlussmusternummer, die in dem Programm eingestellt ist (Schritt S15). In dem vorstehend beschriebenen Beispiel wird das Anschlussmuster 1 gelesen. Die Benachrichtigung bezüglich der Ausführungsstartvorbereitungsbeendigung des Masterprogramms wird dem Slave-Roboter, der in dem Anschlussmuster gespeichert ist, das der gelesenen Anschlussmusterinformation entspricht, über die Kommunikationsleitung erteilt (Schritt S16), und es wird bestimmt, ob Nachrichten über die Ausführungsstartvorbereitungsbeendigung von sämtlichen benachrichtigten Slave-Robotern erhalten wurden (Schritt S17). Die Verarbeitung in den Schritten S16 und S17 wird wiederholt ausgeführt, bis die Nachrichten erhalten wurden.
  • Der Prozessor der Slave-Roboter-Steuervorrichtung gibt dagegen ein Signal zur Benachrichtigung des Operators des Roboter-Steuersystems über die Ausführung des Slave-Programms aus (Schritt S36), und bestimmt, ob eine Nachricht über die Ausführungsstartvorbereitungsbeendigung von dem Master-Roboter erhalten wurde oder nicht (Schritt S37). Wurde die Nachricht erhalten, wird die Nummer des Master-Roboters, der diese Nachricht von der Ausführungsstartvorbereitungsbeendigung erhalten hat, in dem nichtflüchtigen Speicher 13 gespeichert (Schritt S38), und eine Nachricht der Ausführungsstartvorbereitungsbeendigung des Slave-Roboters wird dem gespeicherten Master-Roboter über die Signalleitung erteilt (Schritt S39). Die Verarbeitung in den Schritten S39 und S40 wird wiederholt ausgeführt, bis ein Ausführungsstartbefehl von dem gespeicherten Master-Roboter erhalten wird.
  • Insbesondere wird die Nachricht über die Ausführungsstartvorbereitungsbeendigung zwischen dem Master-Roboter und dem Slave-Roboter ausgetauscht. Nachdem der Master-Roboter die Nachricht über die Ausführungsstartvorbereitungsbeendigung von allen Slave-Robotern erhalten hat (Schritt S17) wird der Ausführungsstartbefehl an alle Slave-Roboter erteilt (Schritt S17).
  • Wird der normale und unabhängige Betrieb jedes Roboters zuerst durchgeführt und wird dann der gemeinsame Synchronbetrieb mit allen Robotern wie in der 8 gezeigt durchgeführt, selbst wenn der Master-Roboter die Ausführung des normalen Programms beendet und das nächste Master-Programm einliest, wird der gemeinsame Synchronbetrieb nicht gestartet, bis die Nachrichten über die Ausführungsstartvorbereitungsbeendigung von allen Slave-Robotern erhalten werden. Auch wenn nicht der Slave-Roboter die Ausführung des normalen Programms beendet, der ein vorhergehender unabhängiger Betrieb ist, führt der Roboter keine Verarbeitung in Schritt S37 durch und natürlich gibt er keine Nachricht über die Ausführungsstartvorbereitungsbeendigung in Schritt S39. Daher wird der nächste gemeinsame Synchronbetrieb nicht ausgeführt, bis sämtliche Roboter die Verarbeitung des unabhängigen und normalen Programms beenden.
  • Selbst wenn dagegen die Verarbeitung des normalen Programms des Master-Roboters auf den neuesten Stand aktualisiert wird, wird die Nachricht über die Ausführungsstartvorbereitungsbeendigung nicht von dem Master-Roboter zu jedem der Slave-Roboter gesendet, so dass der nächste gemeinsame Synchronbetrieb nicht ausgeführt wird, bis der Master-Roboter die Verarbeitung des normalen Programms beendet und der normale Betrieb sämtlicher Roboter beendet wird.
  • Werden für die Roboter in dem Anschlussmuster, in dem der gemeinsame Synchronbetrieb ausgeführt wird, die Vorgänge sämtlicher Roboter, die vor der Ausführung des gemeinsamen Synchronbetriebs durchgeführt wurden, beendet, und hat der Master-Roboter die Nachricht über die Ausführungsstartvorbereitungsbeendigung von allen Slave-Robotern (in diesem Fall die Roboter Nr. 2 bis Nr. 4) in dem Anschlussmuster in Schritt S17 erhalten, erteilt der Prozessor des Master-Roboters den Slave-Robotern in dem Anschlussmuster den Ausführungsstartbefehl (Schritt S17). Der Prozessor des Master-Roboters speichert die aktuelle Position zu diesem Zeitpunkt in dem nichtflüchtigen Speicher 13 als gemeinsame Synchronbetriebsstartposition (Schritt S19). Dann wird die nächste Programmzeile gelesen, und es erfolgt die Verarbeitung in den Schritten S20 bis S24, die die gleiche ist wie bei der vorstehend beschriebenen Verarbeitung in den Schritten S3 bis S7. Ist insbesondere eine programmierte Zeile zugegen, werden Bewegungsabstand, Bewegungszeit, und die Anzahl der Interpolationspunkte bestimmt, und der Index i wird auf "0" eingestellt. Ist der Index i kleiner als die Anzahl der Interpolationspunkte, wird die Verarbeitung in Schritt S25, die die gleiche ist wie die vorstehend beschriebene Verarbeitung in Schritt S8, ausgeführt, so dass die Interpolationspositionsdaten bestimmt werden. Die Interpolationspositionsdaten werden somit durch die folgende Berechnung bestimmt. Interpolationspositionsdaten = Bewegungsstartposition dieser Zeile + (Bewegungsabstand : Anzahl der Interpolationspunkte) × (i +1)
  • Der Prozessor des Master-Roboters sendet die gespeicherte gemeinsame Synchronbetriebsstartposition des Master-Roboters und die in Schritt S25 bestimmten Interpolationspositionsdaten an alle Slave-Roboter in dem Anschlussmuster über die Kommunikationsleitungen (Schritt S26), bestimmt das Bewegungsausmaß auf jeder Achse auf der Basis der in Schritt S25 bestimmten Interpolationspositionsdaten, die die gleiche Verarbeitung ist wie in den Schritten S9, S10 und S11, und führt die Beschleunigungs-Abbremsverarbeitung durch, so dass dem Motor ein Befehl erteilt wird (Schritte S27, S28 und S29). Anschließend wartet der Master-Roboter, bis eine Nachricht von der Interpolationspositionsdaten-Empfangsbeendigung von allen Slave-Robotern in dem Anschlussmuster gesendet wird (Schritt S30).
  • Wenn dagegen der Slave-Roboter in Schritt S40 den Ausführungsstartbefehl empfängt, der vom Prozessor des Master-Roboters in der Verarbeitung von Schritt S17 erteilt wird, führt der Prozessor des Slave-Roboters die gleiche Verarbeitung aus wie in den Schritten S20 bis S24. Insbesondere wird die nächste Zeile des Slave-Programms gelesen, und wenn die Zeile vorhanden ist, wird der Bewegungsabstand, die Bewegungszeit und die Anzahl der Interpolationspunkte durch diese Zeile bestimmt, der Index i wird auf "0" eingestellt, und es wird bestimmt, ob der Index i kleiner ist als die Anzahl der Interpolationspunkte oder nicht (Schritte S41 bis S45). Ist der Index i kleiner als die Anzahl der Interpolationspunkte, wird die gleiche Verarbeitung wie die vorstehend beschriebene Verarbeitung in den Schritten S8 und S25 durchgeführt. Speziell wird ein Wert, erhalten durch Multiplikation eines Wertes, erhalten durch Addition von 1 zum Index i, mit einem Wert, erhalten durch Teilen des in Schritt S43 bestimmten Bewegungsabstandes, durch die Anzahl der Interpolationspunkte, zu dem Bewegungsstartpunkt auf dieser Zeile addiert, wodurch die Interpolationspositionsdaten erhalten werden (Schritt S46).
  • Dann wartet der Slave-Roboter, bis die Interpolationspositionsdaten und die Positionsdaten des gemeinsamen Synchronbetriebs aus dem Master-Roboter, die in Schritt S38 gespeichert sind, empfangen werden (Schritt S47). Wenn die empfangenen Interpolationspositionsdaten nicht die Daten aus dem gespeicherten Master-Roboter sind (Schritt S48), gibt der Roboter einen Alarm und hält an (Schritt S49). Werden dagegen die durch den gespeicherten Master-Roboter in Schritt S26 erteilten Interpolationspositionsdaten und gemeinsamen Synchronbetriebsstartpositionsdaten empfangen, bestimmt der Prozessor des Slave-Roboters eine Transformationsmatrix zum Bewegungsausmaß des Slave-Roboters, entsprechend dem Bewegungsausmaß des Master-Roboters aus den empfangenen gemeinsamen Synchronbetriebsstartpositionsdaten und Interpolationspositionsdaten (Schritt S50) und bestimmt die korrigierten Interpolationspositionsdaten des Slave-Roboters, zu dem das Bewegungsausmaß des Master-Roboters addiert wird, auf der Basis der bestimmten Transformationsmatrix und den in Schritt S46 bestimmten Interpolationspositionsdaten des Slave-Roboters (Schritt S51).
  • Ein Verfahren zur Bestimmung der korrigierten Interpolationspositionsdaten des Slave-Roboters, zu dem das Bewegungsausmaß des Master-Roboters addiert wird, wird anhand von 15 beschrieben.
  • P0:
    Eine willkürliche Position im Raum
    P1:
    eine willkürliche Position im Raum, die sich von P0 unterscheidet
    P0s:
    eine Position, bei der P0 vom Weltkoordinatensystem des Slave-Roboters betrachtet wird.
    P1s:
    eine Position, bei der P1 vom Weltkoordinatensystem des Slave-Roboters betrachtet wird
    P0m:
    eine Position, bei der P0 vom Weltkoordinatensystem des Master-Roboters betrachtet wird
    P1m:
    eine Position, bei der P1 vom Weltkoordinatensystem des Master-Roboters betrachtet wird
    Tm-s:
    eine Transformationsmatrix in dem Fall, bei dem das Weltkoordinatensystem des Master-Roboters vom Weltkoordinatensystem des Slave-Roboters betrachtet wird
    T0s-1s:
    eine Transformationsmatrix von P0s zu P1s in dem Weltkoordinatensystem des Slave-Roboters bei Ansicht von einem Slave-Roboter
    P1s = T0s-1s|P0s (1) P1s = Tm-s/P1m (2) P0s = Tm-s|P0m (3)
  • Aus den Gleichungen (1), (2) und (3) ergibt sich Tm-s|P1m = T0s-1s|Tm-s|P0m (4)
  • Daher gilt: T0s-1s = Tm-s|P1m|Inv(Tm-s|P0m) (5),wobei INV für eine Inversmatrix steht.
  • In der Gleichung (5) ist Tm-s eine Transformationsmatrix in dem Fall, wenn das Weltkoordinatensystem des Master-Roboters vom Weltkoordinatensystem des Slave-Roboters aus betrachtet wird (in dem Fall, wenn der Master-Roboter der Roboter Nr. 1 ist und der Slave-Roboter der Roboter Nr. 2 ist, ist diese Transformationsmatrix T1-2), und es wird eingestellt und im nicht-flüchtigen Speicher des Slave-Roboters durch zuerst gemachte Kalibrierung gespeichert. Ebenfalls durch Berechnen in Gleichung (5) mit P0m als gemeinsame Synchronbetriebsstartposition, die von dem Master-Roboter gesendet wird, und P1m als Master-Roboter-Interpolationsposition, die von dem Master-Roboter gesendet wird, kann die Transformationsmatrix Tos-1s zum Bestimmen des Bewegungsausmaßes im Weltkoordinatensystem des Slave-Roboters entsprechend dem Bewegungsausmaß des Master-Roboters bestimmt werden.
  • Wie in der folgenden Gleichung gezeigt können durch Multiplikation der bestimmten Transformationsmatrix T0s-1s mit den Interpolationspositionsdaten des in Schritt S46 bestimmten Slave-Roboters die Interpolationspositionsdaten des Slave-Roboters, auf die das Bewegungsausmaß des Master-Roboters reflektiert (dazu addiert) ist, erhalten werden. Interpolationspositionsdaten des Slave-Roboters, auf den das Bewegungsausmaß des Master-Roboters reflektiert ist = T0s-1s|Interpolationspositionsdaten des Slave-Roboters
  • Auf der Basis der so korrigierten Interpolationspositionsdaten wird das Bewegungsausmaß an jeder Achse bestimmt (Schritt S52), die Beschleunigungs-Abbremsverarbeitung wird durchgeführt (Schritt S53), und dem Motor wird ein Befehl erteilt (Schritt S54). Dann wird dem gespeicherten Master-Roboter eine Nachricht über den Empfang der Interpolationspositionsdaten übermittelt (Schritt S55), der Index i wird um "1" erhöht (Schritt S56), und die Steuerung kehrt zurück zu Schritt S45.
  • Die Verarbeitung in den Schritten S45 bis S56 wird wiederholt ausgeführt, bis der Index i die Anzahl der Interpolationspunkte erreicht.
  • Bestimmt der Roboter dagegen in Schritt S30, dass der Master-Roboter die Nachricht des Empfangs der Interpolationspositionsdaten empfangen hat, die vom Prozessor jedes Slave-Roboters in der Verarbeitung in Schritt S55 von allen Slave-Robotern erteilt wurden, wird der Index i um "1" erhöht (Schritt S31), und die Steuerung kehrt zu Schritt S24 zurück. Die Verarbeitung in den Schritten S24 bis S31 wird wiederholt ausgeführt, bis der Index i die Anzahl der Interpolationspunkte erreicht hat.
  • Erreicht der Index i die Anzahl der Interpolationspunkte, schreitet die Steuerung von Schritt S24 zu Schritt S20, und die Verarbeitung in Schritt S20 und in den folgenden Schritten werden ausgeführt.
  • Die Steuervorrichtungen des Slave-Roboters führen auch die Verarbeitung in den Schritten S45 bis S56 wiederholt durch. Erreicht der Index i die Anzahl der Interpolationspunkte, verläuft die Steuerung von Schritt S45 bis Schritt S41, und die Verarbeitung in Schritt S41 und die folgenden Schritte werden ausgeführt.
  • Somit führen die Steuervorrichtungen von Master-Roboter und Slave-Roboter die vorstehend beschriebene Verarbeitung wiederholt durch, bis die Zeile vom Master- und Slave-Programm gelesen wird. Verschwindet eine zu lesende Zeile, läuft das Verfahren für den Master-Roboter von der Verarbeitung in den Schritten S21 zur Verarbeitung in Schritt S32 weiter. Das Verfahren für den Slave-Roboter läuft auch von der Verarbeitung in den Schritten S42 zur Verarbeitung in Schritt S57 fort.
  • Man nimmt an, dass die aus dem Masterprogramm zu lesende Zeile für den Master-Roboter früher verschwindet als für den Slave-Roboter, und das Verfahren des Prozessors des Master-Roboters läuft früher zu Schritt S32 als das des Slave-Roboters. In diesem Fall sendet der Prozessor des Master-Roboters die in Schritt S25 bestimmten und in einem Register gespeicherten neuesten Positionsinterpolationsdaten sowie die gespeicherten Synchron- oder gemeinsamen Betriebsstart-Positionsdaten zum Slave-Roboter über die Kommunikationsleitung (Schritt S32) und bestimmt, ob eine Nachricht bezüglich der Beendigung von allen Robotern gesendet wurde oder nicht (Schritt S33). Der Prozessor des Master-Roboters führt die Verarbeitung in den Schritten S32 und S33 wiederholt aus, bis die Nachricht der Beendigung von allen Slave-Robotern gesendet wurde, und sendet weiterhin die letztlich gesendeten Positionsdaten und gemeinsamen Synchronbetriebsstartpositionsdaten. Der Betrieb des Master-Roboters stoppt zwar insbesondere, aber die letztlich gesendeten Interpolationspositionsdaten und gemeinsamen Synchronbetriebsstartpositionsdaten werden weiter zum Slave-Roboter gesendet.
  • Der Slave-Roboter führt zwar dagegen die Verarbeitung in den Schritten S41 bis S56 aus, solange eine Befehlszeile aus dem Slave-Programm gelesen wird. Da die in Schritt S47 empfangenen Daten die Interpolationspositionsdaten und die letztlich vom Master-Roboter gesendeten gemeinsamen Synchronbetriebsstartpositionsdaten sind, ist in diesem Fall die durch die Verarbeitung in Schritt S50 bestimmte Transformationsmatrix die gleiche.
  • Nach der Beendigung des Betriebs des Master-Roboters führt der Slave-Roboter eine gewisse Korrektur (Betrag) (Schritt S51) aus, und wird auf der Basis des Slave-Programms angetrieben. Wenn eine zu befehlende Zeile in dem Slave-Programm verschwindet, schreitet das Verfahren für den Slave-Roboter weiter zu Schritt S57, wo die Nachricht der Beendigung an den Master-Roboter über die Kommunikationsleitung übertragen wird, und bestimmt dann, ob ein Beendigungsbefehl vom Master-Roboter gesendet wurde oder nicht (Schritt S58). Wird ein Beendigungsbefehl nicht gesendet, wird der Bewegungsabstand der in Schritt S43 bestimmten letzten Zeile durch die Anzahl der Interpolationspunkte dividiert, der resultierende Wert wird mit der Anzahl der Interpolationspunkte, angegeben durch den Index i, multipliziert, und der erhaltene Wert wird zu der Bewegungsstartposition der letzten Zeile addiert, so dass die Interpolationspositionsdaten bestimmt werden (Schritt S59). Diese Interpolationspositionsdaten sind die endgültige Position und werden schließlich durch die Verarbeitung in Schritt S46 der letzten Zeile bestimmt. Diese Daten sind die gleichen wie die im Register gespeicherten Interpolationspositionsdaten, so dass sie nicht durch Durchführen neuerlicher Berechnungen bestimmt werden müssen, und sie können bloß durch Ablesen des in dem Register gespeicherten Wertes erhalten werden.
  • Dann wird die Verarbeitung in den Schritten S60 bis S67 ausgeführt, die derjenigen in den Schritten S47 bis S55 entspricht. Die in Schritt S59 bestimmten Interpolationspositionsdaten entsprechen den Interpolationspositionsdaten in Schritt S46 in der letzten Zeile, und für die in Schritt S63 bestimmte Transformationsmatrix werden die gemeinsamen Synchronbetriebsstartpositionsdaten und die Interpolationspositionsdaten, die vom Master-Roboter gesendet wurden, nicht geändert. Daher ist diese Korrektur (Betrag) die gleiche wie die Korrektur (Betrag), die schließlich in der letzten Zeile bestimmt wird. Demnach sind die in Schritt S64 bestimmten korrigierten Interpolationspositionsdaten die gleichen wie die in der letzten Zeile in Schritt S51 bestimmten letzten Interpolationspositionsdaten. Demzufolge wird der Bewegungsbetrag (ansteigender Betrag) an jeder Achse gleich "0", und es wird kein Befehl an den Motor erteilt, so dass der Roboter in einen gestoppten Zustand gerät. Die Verarbeitung in den Schritten S57 bis S67 wird wiederholt ausgeführt, bis der Beendigungsbefehl vom Master-Roboter gesendet wird. Wird der Beendigungsbefehl vom Master-Roboter gesendet, endet die Verarbeitung dieses Slave-Programms.
  • Wird die Nachricht über die Beendigung von allen Slave-Robotern (Schritt S33) empfangen, erteilt der Prozessor des Master-Roboters den Beendigungsbefehl an alle Salve-Roboter (Schritt S33), und schaltet das ausgegebene Signal zur Information bezüglich der Beendigung des Master-Programms an den Operator ab (Schritt S35). Bei Erhalt dieses Beendigungsbefehls stoppt der Slave-Roboter seinen Betrieb, und diese Verarbeitung für den gemeinsamen Synchronbetrieb endet.
  • Im Gegensatz zum Vorstehenden, wenn der Slave-Roboter die Verarbeitung des Slave-Programms früher als der Master-Roboter beendet, führt der Prozessor des Master-Roboters die Verarbeitung in den Schritten S20 bis S31 wiederholt aus, und sendet weiterhin die gemeinsamen Synchronbetriebsstartpositions- und Interpolationspositionsdaten zum Slave-Roboter in Schritt S26. Das Verfahren für den Slave-Roboter schreitet von Schritt S42 zu Schritt S57 voran, und die Verarbeitung in den Schritten S57 bis S67 wird wiederholt ausgeführt. In diesem Fall sind die in Schritt S59 bestimmten Interpolationspositionsdaten wie oben beschrieben, die letzten Interpolationspositionsdaten in der letzten Zeile des Slave-Programms und die letzte Befehlsposition. Für diese Interpolationspositionsdaten durch die gemeinsamen Synchronbetriebsstartpositionsdaten und Interpolationspositionsdaten, die vom Master-Roboter gesendet wurden, werden die Interpolationspositionsdaten, korrigiert durch Verwendung der in Schritt S63 bestimmten Transformationsmatrix, bestimmt, und zudem wird der Bewegungsbetrag auf jeder Achse bestimmt, die Beschleunigungs-Abbremsverarbeitung wird durchgeführt, und der Motor für jede Achse wird angetrieben (Schritte S64 bis S67).
  • Dann wird die Ausführung des Masterprogramms ebenfalls beendet und das Verfahren schreitet weiter von Schritt S21 zu Schritt S32 fort. Empfängt der Master-Roboter die Nachricht von der Beendigung von allen Slave-Roboter-Steuervorrichtungen (Schritt S33), erteilt er die Nachricht bezüglich der Beendigung an alle Slave-Roboter-Steuervorrichtungen (Schritt S34), schaltet das ausgegebene Signal zur Information bezüglich der Beendigung des Masterporgramms an den Operator (Schritt S35) und stoppt den Betrieb des Master-Roboters. Bei Erhalt dieses Beendigungsbefehls (Schritt S59), stoppt der Slave-Roboter auch seinen Betrieb.
  • Dann werden in dem Fall bei dem die Programme in jedem Roboter gespeichert sind, wie in der 8 gezeigt ist, wird das Master-Programm in die Roboter- Steuervorrichtung Nr. 1 gelesen, und das Slave-Programm wird in die Roboter-Steuervorrichtung Nr. 2 gemäß der zweiten Kombination gelesen, so dass die vorstehend beschriebene Verarbeitung zum gemeinsamen Synchronbetrieb mit dem Roboter Nr. 1 als Master-Roboter und Roboter Nr. 2 als Slave-Roboter ausgeführt wird. Demnach werden die Roboter Nr. 1 und Nr. 2 in Synchronbetrieb betrieben. Parallel zum Vorstehenden wird das Master-Programm in der Roboter-Steuervorrichtung Nr. 3 gelesen, und das Slave-Programm wird gemäß der dritten Kombination in der Roboter-Steuervorrichtung Nr. 4 gelesen, so dass die vorstehend beschriebene Verarbeitung für einen gemeinsamen Synchronbetrieb mit dem Roboter Nr. 3 als Master-Roboter und dem Roboter Nr. 4 als Slave-Roboter im Wesentlichen zeitgleich mit dem gemeinsamen Synchronbetrieb der Roboter Nr. 1 und 2 ausgeführt wird.
  • Werden zudem die gemeinsamen Synchronbetriebe der Roboter Nr. 1 und Nr. 2 und der Roboter Nr. 3 und Nr. 4 beendet, in dem in 8 gezeigten Beispiel führen die Roboter Nr. 1 und Nr. 3 den gemeinsamen Synchronbetrieb aus, und die Roboter Nr. 2 und Nr. 3 führen den normalen und unabhängigen Betrieb durch die jeweiligen normalen Programme aus.
  • In der vorstehend beschriebenen Ausführungsform wird die Kombination der in gemeinsamen Synchronbetrieb arbeitenden Roboter in dem Master-Roboter als Anschlussmusterzahl eingestellt, und das Programm zum Durchführen des gemeinsamen Synchronbetriebs wird in jedem Roboter eingestellt. Die Konfiguration kann jedoch derart sein, dass das Master-Programm und die Roboterzahl, die dieses Master-Programm und jedes Slave-Programm ausführt, und die Roboterzahl, die das Slave-Programm ausführt, vorher programmiert wurden, dieses Programm wird in jede Roboter-Steuervorrichtung eingegeben, durch diese Roboter-Steuervorrichtung wird das Master-Programm zur Steuervorrichtung eines bestimmten Roboters gesendet, und jedes Slave-Programm wird zur Steuervorrichtung jedes angegebenen Roboters über eine Kommunikationsleitung gesendet, und zu dem Zeitpunkt, wenn das Senden beendet ist, erfolgt der Start, durch die die in 9 bis 14 gezeigte Verarbeitung durch jede Roboter-Steuervorrichtung begonnen wird.
  • Gemäß der vorliegenden Beschreibung kann ein gemeinsamer Synchronbetrieb zwischen Robotern ausgeführt werden, ausgewählt aus einer Anzahl von Robotern, die über Kommunikationsleitungen aneinander angeschlossen sind, und andere Roboter, die keinen gemeinsamen Synchronbetrieb ausführen, können einen unabhängigen Betrieb ausführen. Daher kann eine hocheffiziente Arbeit durchgeführt werden. Zudem kann die Kombination der Roboter gemäß dem zu bearbeitenden Gegenstand geändert werden, so dass ein gemeinsamer Synchronbetrieb durchgeführt wird, und sich so viele verschiedene Gegenstände bearbeiten lassen und es eine optimale und effiziente Arbeit durchgeführt werden kann.

Claims (5)

  1. Steuersystem zur Durchführung eines gemeinsamen Synchronbetriebs mit Hilfe einer Anzahl Roboter, umfassend: eine Anzahl Roboter-Steuervorrichtungen (1, 2, 3, 4), die über mindestens eine Kommunikationsleitung (L) aneinander angeschlossen sind und die jeweils die Anzahl Roboter steuern, wobei: jede Roboter-Steuervorrichtung (1) eine Reihe von Betriebsprogrammen speichert als Kombination aus einem Masterprogramm, das seinen zugehörigen gesteuerten Roboter als Master-Roboter betreibt, einem Slave-Programm, das seinen zugehörigen gesteuerten Roboter als Slave-Roboter betreibt, und einem Normalprogramm, das seinen zugehörigen gesteuerten Roboter unabhängig von dem oder den anderen Robotern betreibt, so dass sich jede Roboter-Steuervorrichtung betreiben lässt als Master-Roboter-Steuervorrichtung (1), die ihren zugehörigen Roboter als Master-Roboter steuert und sie Daten über den Betrieb des Master-Roboters zu jeder der einen oder mehreren anderen Roboter-Steuervorrichtungen, die sich jeweils als Slave-Roboter-Steuervorrichtung (2, 3, 4) zum Steuern von einer bzw. mehreren Slave-Robotern eignen, über mindestens eine Kommunikationsleitung (L) sendet, so dass sich die oder jede Slave-Roboter-Steuervorrichtung (2, 3, 4) so betreiben lässt, dass sie ihren Slave-Roboter so steuert, dass er den gemeinsamen Synchronbetrieb mit dem Master-Roboter auf der Basis der Daten durchführt, die von der Master-Steuervorrichtung (1) erhalten werden sollen; die von einer Slave-Roboter-Steuervorrichtung (2, 3, 4) zu empfangenden Daten von der Master-Roboter-Steuervorrichtung (1) Daten bezüglich Positionen von eingelernten Punkten und Interpolationspunkten für den zugehörigen Master-Roboter umfassen sollen und die Slave-Roboter-Steuervorrichtung (2, 3, 4) so betrieben wird, dass die Positionen der eingelernten Punkte und der Interpolationspunkte für den Master-Roboter in der Steuerung des Slave-Roboters bei jeder Interpolation zusammen mit den berechneten Interpolationspositionsdaten des Slave-Roboters, berechnet durch ein Slave-Programm in der Slave-Roboter-Steuervorrichtung, eingesetzt werden, damit die korrigierten Interpolationspositionsdaten des Slave-Roboters, in denen das Bewegungsausmaß des Master-Roboters zu den berechneten Positionsdaten des Slave-Roboters addiert wird, bestimmt werden; und wenn eine Roboter-Steuervorrichtung auf der Basis ihres gespeicherten Masterprogramms oder Normalprogramms betrieben wird, die Bewegung ihres zugehörigen Roboters nur durch das Master- oder Normalprogramm definiert ist.
  2. Steuersystem für eine Anzahl Roboter nach Anspruch 1, wobei die Roboter-Steuervorrichtungen (1, 2, 3, 4) jeweils so ausgelegt sind, dass sie die Zusammenarbeit des Master-Roboters und des oder jedes Slave-Roboters gemäß einem eingestellten Programm, das eine Betriebsabfolge definiert, durchführen.
  3. Steuersystem für eine Anzahl Roboter nach einem vorhergehenden Anspruch, wobei der gemeinsame Synchronbetrieb des Master-Roboters und des oder jedes Slave-Roboters von einem Programmbefehl in einem Betriebsprogramm gestartet und beendet werden soll, das in der Master-Roboter-Steuervorrichtung (1) gespeichert ist.
  4. Steuersystem für eine Anzahl Roboter nach einem der Ansprüche 1 bis 3, wobei die Master-Roboter-Steuervorrichtung (1) und die Slave-Roboter-Steuervorrichtung oder -Steuervorrichtungen (2, 3, 4) jeweils ein Betriebsprogramm speichern, mit einer Eigenschaft für den gemeinsamen Synchronbetrieb, so dass der gemeinsame Synchronbetrieb des Master-Roboters und des oder jedes Slave-Roboters gestartet werden soll, wenn die Master-Roboter-Steuervorrichtung (1) und die Slave-Roboter-Steuervorrichtung oder -Steuervorrichtungen (2, 3, 4) die Ausführung von dem oder jedem Betriebsprogramm beginnen, das die Eigenschaft des gemeinsamen Synchronbetriebs hat, und mit der Beendigung von dem oder jedem Betriebsprogramm mit der Eigenschaft enden.
  5. Steuersystem für eine Anzahl Roboter nach einem vorhergehenden Anspruch, wobei die Master-Roboter-Steuervorrichtung (1) und die oder jede Slave-Roboter-Steuervorrichtung (2, 3, 4) so ausgelegt sind, dass Ausgangssignale ausgegeben werden, die das Fortschreiten von oder die Bereitschaft für den gemeinsamen Synchronbetrieb anzeigen, wenn der Master-Roboter und der oder jeder Slave-Roboter im Verlauf des gemeinsamen Synchronbetriebs oder bereit dafür sind.
DE60035651T 1999-09-16 2000-09-15 Steuerungssystem zum synchronen kooperativen Betreiben einer Mehrzahl von Robotern Expired - Lifetime DE60035651T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP26278699 1999-09-16
JP26278699 1999-09-16

Publications (2)

Publication Number Publication Date
DE60035651D1 DE60035651D1 (de) 2007-09-06
DE60035651T2 true DE60035651T2 (de) 2008-05-21

Family

ID=17380592

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60035651T Expired - Lifetime DE60035651T2 (de) 1999-09-16 2000-09-15 Steuerungssystem zum synchronen kooperativen Betreiben einer Mehrzahl von Robotern

Country Status (3)

Country Link
US (1) US6330493B1 (de)
EP (1) EP1090722B1 (de)
DE (1) DE60035651T2 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014112639A1 (de) * 2014-09-02 2016-03-03 Cavos Bagatelle Verwaltungs Gmbh & Co. Kg System zum Erstellen von Steuerungsdatensätzen für Roboter
DE112016007254B4 (de) * 2016-09-23 2020-12-10 Yamaha Hatsudoki Kabushiki Kaisha Robotersystem, Robotersteuerung bzw. -regelung, Robotersteuer- bzw. -regelverfahren und Roboterprogramm
DE102018202820B4 (de) 2017-03-02 2022-02-17 Fanuc Corporation System zur einstellung von daten für einen roboter, verfahren zur einstellung von daten und programm

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6577906B1 (en) * 1999-08-05 2003-06-10 Sandia Corporation Distributed optimization system and method
DE60035651T2 (de) * 1999-09-16 2008-05-21 Fanuc Ltd. Steuerungssystem zum synchronen kooperativen Betreiben einer Mehrzahl von Robotern
US6507771B2 (en) * 2000-07-10 2003-01-14 Hrl Laboratories Method and apparatus for controlling the movement of a plurality of agents
JP3504222B2 (ja) * 2000-09-04 2004-03-08 ファナック株式会社 ロボット制御装置
JP2002342759A (ja) * 2001-01-30 2002-11-29 Nec Corp 情報提供システム、情報提供方法、およびそのプログラム
JP3577028B2 (ja) * 2001-11-07 2004-10-13 川崎重工業株式会社 ロボットの協調制御システム
US6925357B2 (en) 2002-07-25 2005-08-02 Intouch Health, Inc. Medical tele-robotic system
US20040162637A1 (en) 2002-07-25 2004-08-19 Yulun Wang Medical tele-robotic system with a master remote station with an arbitrator
US7593030B2 (en) 2002-07-25 2009-09-22 Intouch Technologies, Inc. Tele-robotic videoconferencing in a corporate environment
DE10235943A1 (de) 2002-08-06 2004-02-19 Kuka Roboter Gmbh Verfahren und Vorrichtung zum synchronen Steuern von Handhabungsgeräten
JPWO2004048049A1 (ja) * 2002-11-27 2006-03-23 株式会社安川電機 自動機械の制御装置及び制御方法
JP2004199433A (ja) * 2002-12-19 2004-07-15 Fanuc Ltd 同期制御装置
US7295893B2 (en) * 2003-03-31 2007-11-13 Kabushiki Kaisha Toshiba Manipulator and its control apparatus and method
US6804580B1 (en) * 2003-04-03 2004-10-12 Kuka Roboter Gmbh Method and control system for controlling a plurality of robots
CN1846181A (zh) * 2003-06-20 2006-10-11 美国发那科机器人有限公司 多个机械手的跟踪和镜像微动
US7010390B2 (en) * 2003-07-17 2006-03-07 Kuka Roboter Gmbh Method and system for controlling robots
US7813836B2 (en) 2003-12-09 2010-10-12 Intouch Technologies, Inc. Protocol for a remotely controlled videoconferencing robot
SE0303384D0 (sv) * 2003-12-15 2003-12-15 Abb Ab Control system, method and computer program
SE0400091D0 (sv) 2004-01-16 2004-01-16 Abb Ab Control system, method and computer program
WO2005069092A1 (en) * 2004-01-16 2005-07-28 Abb Ab Control system, method and computer program for controlling coordinate movements of several mechanicals units.
US20050204438A1 (en) 2004-02-26 2005-09-15 Yulun Wang Graphical interface for a remote presence system
EP1763421A1 (de) * 2004-03-16 2007-03-21 Abb Ab Manipulatorensystem und verfahren zur steuerung eines solchen systems
DE102004021388A1 (de) * 2004-04-30 2005-12-01 Daimlerchrysler Ag Positionier- und Bearbeitungssystem und geeignetes Verfahren zum Positionieren und Bearbeiten mindestens eines Bauteils
DE102004026813A1 (de) * 2004-06-02 2005-12-29 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Steuern von Handhabungsgeräten
US8077963B2 (en) 2004-07-13 2011-12-13 Yulun Wang Mobile robot with a head-based movement mapping scheme
CA2513202C (en) * 2004-07-23 2015-03-31 Mehran Anvari Multi-purpose robotic operating system and method
SE0402098D0 (sv) * 2004-08-30 2004-08-30 Abb Ab A control system
DE602005006749D1 (de) * 2005-04-19 2008-06-26 Comau Spa Verfahren zur Steuerung von industriellen Robotern und entsprechend gesteuerte Roboter, Robotersysteme und Computerprogramme
US7860609B2 (en) 2005-05-06 2010-12-28 Fanuc Robotics America, Inc. Robot multi-arm control system
US9198728B2 (en) 2005-09-30 2015-12-01 Intouch Technologies, Inc. Multi-camera mobile teleconferencing platform
JP3971773B2 (ja) * 2005-10-12 2007-09-05 ファナック株式会社 ロボットのオフライン教示装置
US8036776B2 (en) * 2005-11-16 2011-10-11 Abb Ab Method and device for controlling motion of an industrial robot with a position switch
ATE441885T1 (de) * 2005-12-07 2009-09-15 Sap Ag Verfahren und system zum automatischen organisieren und ausführen einer vordefinierten aufgabe durch roboterfunktionalitäten
US8849679B2 (en) 2006-06-15 2014-09-30 Intouch Technologies, Inc. Remote controlled robot system that provides medical images
US8265793B2 (en) 2007-03-20 2012-09-11 Irobot Corporation Mobile robot for telecommunication
US9160783B2 (en) 2007-05-09 2015-10-13 Intouch Technologies, Inc. Robot system that operates through a network firewall
US8116910B2 (en) 2007-08-23 2012-02-14 Intouch Technologies, Inc. Telepresence robot with a printer
KR100945884B1 (ko) * 2007-11-14 2010-03-05 삼성중공업 주식회사 내장형 로봇 제어 시스템
US10875182B2 (en) 2008-03-20 2020-12-29 Teladoc Health, Inc. Remote presence system mounted to operating room hardware
US8179418B2 (en) 2008-04-14 2012-05-15 Intouch Technologies, Inc. Robotic based health care system
US8170241B2 (en) 2008-04-17 2012-05-01 Intouch Technologies, Inc. Mobile tele-presence system with a microphone system
US9193065B2 (en) 2008-07-10 2015-11-24 Intouch Technologies, Inc. Docking system for a tele-presence robot
US9842192B2 (en) 2008-07-11 2017-12-12 Intouch Technologies, Inc. Tele-presence robot system with multi-cast features
US8340819B2 (en) 2008-09-18 2012-12-25 Intouch Technologies, Inc. Mobile videoconferencing robot system with network adaptive driving
US8996165B2 (en) 2008-10-21 2015-03-31 Intouch Technologies, Inc. Telepresence robot with a camera boom
US8463435B2 (en) 2008-11-25 2013-06-11 Intouch Technologies, Inc. Server connectivity control for tele-presence robot
US9138891B2 (en) 2008-11-25 2015-09-22 Intouch Technologies, Inc. Server connectivity control for tele-presence robot
US20100180711A1 (en) 2009-01-19 2010-07-22 Comau, Inc. Robotic end effector system and method
US8849680B2 (en) 2009-01-29 2014-09-30 Intouch Technologies, Inc. Documentation through a remote presence robot
CA2755446A1 (en) * 2009-03-17 2010-09-23 Comau, Inc. Industrial communication system and method
US8897920B2 (en) 2009-04-17 2014-11-25 Intouch Technologies, Inc. Tele-presence robot system with software modularity, projector and laser pointer
US11399153B2 (en) 2009-08-26 2022-07-26 Teladoc Health, Inc. Portable telepresence apparatus
US8384755B2 (en) 2009-08-26 2013-02-26 Intouch Technologies, Inc. Portable remote presence robot
KR100968944B1 (ko) * 2009-12-14 2010-07-14 (주) 아이알로봇 로봇 동기화 장치 및 그 방법
CA2785558C (en) * 2010-01-12 2016-05-10 Comau, Inc. Distributed control system
US11154981B2 (en) 2010-02-04 2021-10-26 Teladoc Health, Inc. Robot user interface for telepresence robot system
US8670017B2 (en) 2010-03-04 2014-03-11 Intouch Technologies, Inc. Remote presence system including a cart that supports a robot face and an overhead camera
US9014848B2 (en) 2010-05-20 2015-04-21 Irobot Corporation Mobile robot system
US8935005B2 (en) 2010-05-20 2015-01-13 Irobot Corporation Operating a mobile robot
US8918213B2 (en) 2010-05-20 2014-12-23 Irobot Corporation Mobile human interface robot
US10343283B2 (en) 2010-05-24 2019-07-09 Intouch Technologies, Inc. Telepresence robot system that can be accessed by a cellular phone
US10808882B2 (en) 2010-05-26 2020-10-20 Intouch Technologies, Inc. Tele-robotic system with a robot face placed on a chair
US8731714B2 (en) * 2010-09-22 2014-05-20 GM Global Technology Operations LLC Concurrent path planning with one or more humanoid robots
US9264664B2 (en) 2010-12-03 2016-02-16 Intouch Technologies, Inc. Systems and methods for dynamic bandwidth allocation
US8930019B2 (en) 2010-12-30 2015-01-06 Irobot Corporation Mobile human interface robot
US9323250B2 (en) 2011-01-28 2016-04-26 Intouch Technologies, Inc. Time-dependent navigation of telepresence robots
WO2012103525A2 (en) 2011-01-28 2012-08-02 Intouch Technologies, Inc. Interfacing with a mobile telepresence robot
US10769739B2 (en) 2011-04-25 2020-09-08 Intouch Technologies, Inc. Systems and methods for management of information among medical providers and facilities
US9098611B2 (en) 2012-11-26 2015-08-04 Intouch Technologies, Inc. Enhanced video interaction for a user interface of a telepresence network
US20140139616A1 (en) 2012-01-27 2014-05-22 Intouch Technologies, Inc. Enhanced Diagnostics for a Telepresence Robot
US8836751B2 (en) 2011-11-08 2014-09-16 Intouch Technologies, Inc. Tele-presence system with a user interface that displays different communication links
US8902278B2 (en) 2012-04-11 2014-12-02 Intouch Technologies, Inc. Systems and methods for visualizing and managing telepresence devices in healthcare networks
US9251313B2 (en) 2012-04-11 2016-02-02 Intouch Technologies, Inc. Systems and methods for visualizing and managing telepresence devices in healthcare networks
US9361021B2 (en) 2012-05-22 2016-06-07 Irobot Corporation Graphical user interfaces including touchpad driving interfaces for telemedicine devices
WO2013176762A1 (en) 2012-05-22 2013-11-28 Intouch Technologies, Inc. Social behavior rules for a medical telepresence robot
JP5774223B2 (ja) * 2012-06-29 2015-09-09 三菱電機株式会社 ロボット制御装置およびロボット制御方法
JP5768829B2 (ja) * 2013-03-15 2015-08-26 株式会社安川電機 ロボットシステム、ロボット制御方法及び被加工物の製造方法
JP6010776B2 (ja) * 2013-03-19 2016-10-19 パナソニックIpマネジメント株式会社 ロボットシステムの制御方法およびロボットシステム
CN104468685B (zh) * 2014-09-09 2018-04-17 杭州德宝威智能科技有限公司 机器人数据共享方法和系统
JP6524631B2 (ja) * 2014-09-30 2019-06-05 セイコーエプソン株式会社 ロボット、制御装置およびロボットシステム
SI3012695T1 (en) 2014-10-23 2018-01-31 Comau S.P.A. System for monitoring and control of an industrial plant
DE102015008188B3 (de) * 2015-06-25 2016-06-16 Kuka Roboter Gmbh Abfahren einer vorgegebenen Bahn mit einem Roboter
KR20180038480A (ko) * 2015-08-25 2018-04-16 카와사키 주코교 카부시키 카이샤 원격 조작 로봇 시스템
US10268177B2 (en) * 2016-05-19 2019-04-23 The Boeing Company Method and apparatus of coordinating independent automated systems
PT3366409T (pt) 2017-02-23 2019-10-25 Comau Spa Robô articulado que transporta uma cabeça de soldadura de resistência elétrica com elétrodos localizados no mesmo lado; método correspondente de soldadura elétrica de resistência num componente a ser soldado
US11862302B2 (en) 2017-04-24 2024-01-02 Teladoc Health, Inc. Automated transcription and documentation of tele-health encounters
US10802453B2 (en) 2017-06-02 2020-10-13 Bank Of America Corporation Robotics process automation macro bot
US10483007B2 (en) 2017-07-25 2019-11-19 Intouch Technologies, Inc. Modular telehealth cart with thermal imaging and touch screen user interface
US11636944B2 (en) 2017-08-25 2023-04-25 Teladoc Health, Inc. Connectivity infrastructure for a telehealth platform
JP6965785B2 (ja) * 2018-02-15 2021-11-10 オムロン株式会社 制御システム、スレーブ装置制御部、制御方法およびプログラム
US10617299B2 (en) 2018-04-27 2020-04-14 Intouch Technologies, Inc. Telehealth cart that supports a removable tablet with seamless audio/video switching
IT201800005091A1 (it) 2018-05-04 2019-11-04 "Procedimento per monitorare lo stato di funzionamento di una stazione di lavorazione, relativo sistema di monitoraggio e prodotto informatico"
DE102019102427B4 (de) * 2019-01-31 2022-02-10 Franka Emika Gmbh Koordination von Bahnen zweier Robotermanipulatoren
JP2020179453A (ja) * 2019-04-25 2020-11-05 セイコーエプソン株式会社 ロボットシステムの制御方法およびロボットシステム
JP7437910B2 (ja) * 2019-10-29 2024-02-26 株式会社東芝 制御システム、制御方法、ロボットシステム、プログラム、及び記憶媒体
CN110936375A (zh) * 2019-12-04 2020-03-31 路邦科技授权有限公司 一种机器人的同步多联连接系统及其同步多联连接方法
TW202321847A (zh) * 2021-11-01 2023-06-01 美商靈巧公司 控制多個機器人協同執行任務的機器人系統

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5038089A (en) * 1988-03-23 1991-08-06 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Synchronized computational architecture for generalized bilateral control of robot arms
US5117544A (en) * 1988-04-19 1992-06-02 Nakamura-Tome Precision Ind. Co., Ltd. Two-spindle opposed type cnc lathe
DE69216167T2 (de) * 1991-07-06 1997-07-10 Daihen Corp Gerät zur Steuerung eines Industrieroboters zur Durchführung koordinierter Arbeitsvorgänge unter Verwendung eines Playbackteachingverfahrens und dies-bezügliches Verfahren
JP2880590B2 (ja) * 1991-07-24 1999-04-12 株式会社不二越 産業用ロボットの同期制御方法
US6131097A (en) * 1992-12-02 2000-10-10 Immersion Corporation Haptic authoring
US5629594A (en) * 1992-12-02 1997-05-13 Cybernet Systems Corporation Force feedback system
US5485644A (en) * 1993-03-18 1996-01-23 Dainippon Screen Mfg. Co., Ltd. Substrate treating apparatus
KR100376638B1 (ko) * 1994-03-23 2003-07-18 가부시키가이샤 야스가와덴끼 작업기계의제어장치
US5784542A (en) * 1995-09-07 1998-07-21 California Institute Of Technology Decoupled six degree-of-freedom teleoperated robot system
JPH09244730A (ja) * 1996-03-11 1997-09-19 Komatsu Ltd ロボットシステムおよびロボットの制御装置
DE60035651T2 (de) * 1999-09-16 2008-05-21 Fanuc Ltd. Steuerungssystem zum synchronen kooperativen Betreiben einer Mehrzahl von Robotern

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014112639A1 (de) * 2014-09-02 2016-03-03 Cavos Bagatelle Verwaltungs Gmbh & Co. Kg System zum Erstellen von Steuerungsdatensätzen für Roboter
DE102014112639B4 (de) * 2014-09-02 2018-02-08 Cavos Bagatelle Verwaltungs Gmbh & Co. Kg System zum Erstellen von Steuerungsdatensätzen für Roboter
US10493625B2 (en) 2014-09-02 2019-12-03 Cavos Bagatelle Verwaltungs Gmbh & Co. Kg System for generating sets of control data for robots
DE102014112639C5 (de) * 2014-09-02 2020-07-02 Cavos Bagatelle Verwaltungs Gmbh & Co. Kg System zum Erstellen von Steuerungsdatensätzen für Roboter
DE112016007254B4 (de) * 2016-09-23 2020-12-10 Yamaha Hatsudoki Kabushiki Kaisha Robotersystem, Robotersteuerung bzw. -regelung, Robotersteuer- bzw. -regelverfahren und Roboterprogramm
US11173612B2 (en) 2016-09-23 2021-11-16 Yamaha Hatsudoki Kabushiki Kaisha Robot system, robot controller, robot control method, and robot program
DE102018202820B4 (de) 2017-03-02 2022-02-17 Fanuc Corporation System zur einstellung von daten für einen roboter, verfahren zur einstellung von daten und programm

Also Published As

Publication number Publication date
US6330493B1 (en) 2001-12-11
EP1090722B1 (de) 2007-07-25
DE60035651D1 (de) 2007-09-06
EP1090722A3 (de) 2001-12-12
EP1090722A2 (de) 2001-04-11

Similar Documents

Publication Publication Date Title
DE60035651T2 (de) Steuerungssystem zum synchronen kooperativen Betreiben einer Mehrzahl von Robotern
DE60127908T2 (de) Robotersteuerung
DE3587034T3 (de) Verfahren und Einrichtung zur Steuerung automatischer Geräte.
DE60012815T2 (de) Numerisches Steuersystem
DE3317263A1 (de) Manipulator mit adaptiver geschwindigkeitsgesteuerter bahnbewegung
DE2936913C2 (de) Anordnung zur Steuerung von Eingabe und Ausgabe bei einer programmierbaren Logiksteuerung
DE2712169A1 (de) Verfahren und durchfuehrungsanordnung zur ausfuehrung einer komplexen bewegung durch einen industrieroboter
DE112013006576B4 (de) Synchronsteuerungsvorrichtung
DE3218612C2 (de) Werkzeugmaschine mit Verschiebefehlerkompensation
DE3223827A1 (de) Programmierbare logische steuereinrichtung
WO2017050895A1 (de) Robotersteuerung
DE69628125T2 (de) Stanzvorrichtung und steuerverfahren dafür
DE69219032T2 (de) Verfahren zum steuern einer motorgetriebenen spritzgiessmaschine
DE69420170T2 (de) Verfahren und Vorrichtung für eine numerisch gesteuerte Industriemaschine
DE3889981T2 (de) Roboterregelanordnung.
DE19616855B4 (de) Verfahren zur Datenverarbeitung in einer numerisch gesteuerten Antriebseinheit
DE3404206A1 (de) Verfahren zum bereitstellen von tabelleninformationen fuer eine digitalventilsteuereinrichtung
DE60102130T2 (de) Verfahren und Vorrichtung zur synchronen Regelung
EP0543034B1 (de) Verfahren zum Betrieb einer numerisch gesteuerten Werkzeugmaschine und Werkzeugmaschine zur Ausübung des Verfahrens
EP1692579B1 (de) Verfahren und vorrichtung zum betreiben zusammenarbeitender, unterschiedlicher geräte
DE69218525T2 (de) Verfahren zur steuerung des druckverlaufes beim spritzgiessen und spritzgiessmaschine
DE3722084A1 (de) Numerisch gesteuerte einrichtung
EP1020777B1 (de) Koordinatenmessgerät
DE19883000B4 (de) Servosystem-Steuereinrichtung
DE2034373A1 (de) Steuereinrichtung zum Steuern der Geschwindigkeit des Vorschubs eines Werk zeugs

Legal Events

Date Code Title Description
8364 No opposition during term of opposition