Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYNCHRONIZATION OF MULTIPLE ROBOTS
Document Type and Number:
WIPO Patent Application WO/2017/063887
Kind Code:
A1
Abstract:
The invention relates to a method for the synchronization of the movement sequences of at least two robots. According to one example of the invention, the method comprises the following: during the operation of a robot cell with at least two robots, a path parameter is regularly calculated for each of the at least two robots based on a current position of the respective robot and a previously determined robot path of the respective robot. The path parameter thereby represents the current position of the respective robot. Subsequently, a run-ahead limit is calculated for each robot based on the path parameters determined for the respective other robots. Based on the respectively calculated run-ahead limit, adjustments may be made for the path speed of each robot.

Inventors:
SCHIERZ BERNHARD (AT)
STÖCHER WOLFGANG (AT)
UMGEHER GERALD (AT)
Application Number:
PCT/EP2016/073119
Publication Date:
April 20, 2017
Filing Date:
September 28, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ATENSOR ENG AND TECH SYSTEMS GMBH (AT)
CONVERGENT INFORMATION TECH GMBH (AT)
International Classes:
B25J9/16
Foreign References:
US20040068348A12004-04-08
US20110066282A12011-03-17
US20120215351A12012-08-23
Other References:
PAUL BOSSCHER ET AL: "Real-time collision avoidance algorithm for robotic manipulators", TECHNOLOGIES FOR PRACTICAL ROBOT APPLICATIONS, 2009. TEPRA 2009. IEEE INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 9 November 2009 (2009-11-09), pages 113 - 122, XP031570405, ISBN: 978-1-4244-4991-0
Attorney, Agent or Firm:
WESTPHAL, MUSSGNUG & PARTNER MBB (DE)
Download PDF:
Claims:
PATENTANSPRÜCHE

1. Verfahren zum Synchronisieren der Bewegungsabläufe von mindestens zwei Robotern, deren Arbeitsbereiche sich zeitlich und räumlich überschneiden; das Verfahren weist auf: während der Bewegung der Roboter:

regelmäßiges Ermitteln eines Bahnparameters (tj) für jeden Roboter {Rj) der mindestens zwei Roboter, basierend auf einer aktuellen Position {qj) des jeweiligen Roboters {Rj) und einer vorab festgelegten Roboterbahn {Bj) des jeweiligen Roboters {Rj), der Bahnparameter {tj) repräsentiert die aktuelle Position {Bj(tjj) des jeweiligen Roboters;

für jeden Roboter {Rj):

Berechnen eines Vorauseillimits {tvj(t)) basierend auf den für die jeweils anderen Roboter ermittelten Bahnparametern {tj);

für jeden Roboter {Rj):

Anpassen einer Bahngeschwindigkeit des Roboters {Rj) basierend auf dem jeweils berechneten Vorauseillimit {tvj(t)).

2. Verfahren gemäß Anspruch 1, das weiter aufweist;

Bereitstellen der festgelegten Roboterbahnen {Bj(t)) in parametrischer Darstellung für jeden der mindestens zwei Roboter, wobei für jeden Roboter der Bahnparameter eine Roboterposition {Bj) auf der festgelegten Roboterbahn {Bj(tj) bezeichnet.

3. Verfahren gemäß Anspruch 1 oder 2, das weiter aufweist:

für jedes geordnete Roboterpaar {Rj, Rj) der mindestens zwei Roboter: Berechnen - mittels Simulation der vorab festgelegten Roboterbahnen und für unterschiedliche Bahnparameterwerte - einer maximalen Vorauseilzeit {vji(t)), welche jene Zeit ist, die der erste Roboter {Rj) des Roboterpaars dem zweiten Roboter {Rj) des Roboterpaars vorauseilen darf, ohne eine Kollision zu verursachen.

4. Verfahren gemäß Anspruch 3, das weiter aufweist:

für jedes geordnete Roboterpaar {Rj, Rj) der mindestens zwei Roboter und einem bestimmten Bahnparameter {to): Berechnen einer vorausschauenden maximalen Vo- rauseilzeit (wij(to)) basierend auf der maximalen Vorauseilzeit (ν ο)) für den bestimmten Bahnparameter (to) und nachfolgende Bahnparameter (t>to).

5. Verfahren gemäß Anspruch 4, wobei für jeden Roboter (Rj) das Vorauseillimit (tv,j(t)) basierend auf den vorausschauenden maximalen Vorauseilzeiten (wij(ti)) für die ermittelten Bahnparameter (ti) der jeweils anderen Roboter (Ri, i?f) ermittelt wird.

6. Verfahren gemäß einem der Ansprüche 1 bis 5, bei dem das Ermitteln des Bahnparameters (tj) eines Roboters (Rj) mittels Interpolation zwischen zwei Positionen (Bi(Tij), Bi(Ti(j+i))), die ein Segment der vorab festgelegten Roboterbahn des jeweiligen Roboters (Rj) definieren, erfolgt.

7. System umfassend mindestens zwei Roboter, die jeweils von einer Robotersteuerung gesteuert werden; die Robotersteuerungen sind dazu ausgebildet während des Betriebs der Roboter:

für den jeweiligen Roboter regelmäßig einen die aktuelle Position (Bj(tj)) des jeweiligen Roboters (Rj) repräsentierenden Bahnparameter (tj) zu ermitteln, basierend auf einer aktuellen Position (qj) des jeweiligen Roboters (Rj) und einer vorab festgelegten Roboterbahn (Bj) des jeweiligen Roboters (Rj);

für den jeweiligen Roboter ein Vorauseillimit (tvj(t)) basierend auf den für die jeweils anderen Roboter ermittelten Bahnparametern (ti) zu berechnen; und

basierend auf dem für den jeweiligen Roboter (Rj) berechneten Vorauseillimit (tvj(t)) eine Bahngeschwindigkeit des Roboters (Rj) anzupassen.

8. System gemäß Anspruch 7, das weiter aufweist:

einen Robotersimulator, der dazu ausgebildet ist - mittels Simulation vorab festgelegter Roboterbahnen - für jedes geordnete Roboterpaar (Rj, Ri) der mindestens zwei Roboter für unterschiedliche Bahnparameterwerte eine maximale Vorauseilzeit (vji(t)) zu ermitteln, welche jene Zeit ist, die der erste Roboter (Rj) des Roboterpaars dem zweiten Roboter (Ri) des Roboterpaars vorauseilen darf, ohne eine Kollision zu verursachen.

9. System gemäß Anspruch 8, bei dem der Robotersimulator weiter dazu ausgebildet ist, für jedes geordnete Roboterpaar (Rj, Ri) der mindestens zwei Roboter und einen bestimm- ten Bahnparameter (to) eine vorausschauende maximale Vorauseilzeit (wij(to)) zu berechnen basierend auf der maximalen Vorauseilzeit (vi to)) für den bestimmten Bahnparameter (to) und nachfolgende Bahnparameter (t>to).

10. System gemäß einem der Ansprüche 7 bis 9, bei dem die Robotersteuerungen dazu ausgebildet sind,

den die aktuelle Position des jeweiligen Roboters (Rj) repräsentierenden Bahnparameter (tj) mittels Interpolation zwischen zwei Positionen (Bi(Tij), Bi(Ti(j+i))) und zwei zugehörigen Parameterwerten, die ein Segment der vorab festgelegten Roboterbahn des jeweiligen Roboters (Rj) definieren, zu ermitteln.

Description:
SYNCHRONISIERUNG MEHRERER ROBOTER

TECHNISCHES GEBIET

[0001] Die vorliegende Beschreibung betrifft allgemein das Gebiet der Industrieroboter, insbesondere die Steuerung von mehreren kooperierenden Industrierobotern.

HINTERGRUND

[0002] Bei der robotergestützten Fertigung, z.B. in der Automobilindustrie, arbeiten häufig mehrere Industrieroboter gleichzeitig in einer Roboterzelle. Beispielsweise bearbeiten mehrere Roboter gleichzeitig ein Werkstück, befestigen daran andere Bauteile oder führen an dem Werkstück Mess- oder Prüfaufgaben durch. Dabei können sich die Arbeitsbereiche der einzelnen Roboter überlappen, weshalb die Roboter nicht unabhängig voneinander gesteuert werden können. Des Weiteren können die von den einzelnen Robotern zu erledigenden Teilaufgaben voneinander abhängen. Das heißt, dass ein Roboter mit der Fortsetzung seiner Tätigkeit unter Umständen warten muss, bis ein anderer Roboter eine bestimmte Teilaufgabe erledigt hat. Folglich können die Robotersteuerungen die Bewegungen der einzelnen Roboter nicht unabhängig voneinander steuern, sondern die Bewegungsabläufe der einzelnen Roboter müssen koordiniert werden.

[0003] Die Bewegungsabläufe (motion sequences) von Robotern können heutzutage entweder online eingelernt („Teach-In"- Verfahren bzw.„Playback"- Verfahren) oder offline mit Hilfe von Software-Tools zur Bahnplanung vorab detailliert geplant werden. In beiden Fällen entstehen Roboterprogramme, die die Bewegung eines Roboters (Pfade und Geschwindigkeiten) exakt steuern. Des Weiteren existieren Software-Tools zur Simulation der programmierten Bewegungsabläufe (Robotersimulator). Diese Robotersimulatoren sind in der Lage, die geplanten Bewegungsabläufe mehrerer Roboter in einer„virtuellen Roboterzelle" zu simulieren. Mit Hilfe der Simulation kann geprüft werden, ob der geplante Bewegungsablauf kollisionsfrei durchgeführt werden kann.

[0004] Bei der erwähnten Simulation wird üblicherweise von einem Idealzustand ausgegangen. Bei der tatsächlichen Ausführung der geplanten Bewegungsabläufe kann es jedoch zu nicht geplanten (oder nicht planbaren) Abweichungen von diesem Idealzustand kom- men. Beispielsweise können die Verweilzeiten der einzelnen Roboter an bestimmten Stellen (z.B. bei der Durchführung einer Messung an dem Werkstück) von den vorab geplanten Verweilzeiten abweichen. Solche Abweichungen können unterschiedlichste Ursachen haben. Beispielsweise kann die Robotersimulation aufgrund ungenauer Modellannahmen (z.B. ungenaue Beschleunigungslimits der Roboterachsen) von der Realität abweichen. Bei der Durchführung von Messungen kann die Dauer der Messung variieren (z.B. aufgrund variierender (weil von der Farbe des Werkstücks abhängiger) Belichtungszeiten bei optischer Inspektion). Bei manuellem Eingriff durch Bedienpersonen kann die Bewegung eines einzelnen Roboters verzögert oder gestoppt werden. Des Weiteren können durch Un- genauigkeiten in der Positionierung des Werkstücks Anpassungen der Bewegungsbahnen notwendig werden, die auch Einfluss auf das Timing der Bewegungsabläufe haben. Ganz allgemein ist die Arbeit der Roboter in einer Zelle nicht rein zeitgesteuert, sondern teilweise auch gesteuert durch Ereignisse (z.B. die Fertigstellung einer Oberflächenbearbeitung mit anschließender Ergebnisprüfung), welche nicht exakt vorab geplant werden können.

[0005] Aufgrund der oben erwähnten Abweichungen von der Simulation ist in der Praxis immer ein Sicherheitsmechanismus nötig, mit dessen Hilfe Kollisionen zweier Roboter verhindert werden können. Eine (im Hinblick auf die nötige Rechenleistung) sehr aufwändige Option besteht darin, während des Betriebs der Roboter (online) mit einem Simulator die tatsächlichen Bewegungen der Roboter zu extrapolieren und, basierend auf dem der Simulation zugrunde liegenden 3D-Modell eine Kollisionsprüfung durchzuführen. Eine Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren zur Steuerung mehrerer Roboter zur Verfügung zu stellen, das es ermöglicht, die Bewegungsabläufe der Roboter innerhalb gewisser Grenzen zu synchronisieren und Kollisionen zu vermeiden.

ZUSAMMENFASSUNG

[0006] Die genannte Aufgabe wird durch das Verfahren gemäß Anspruch 1 sowie durch das System gemäß Anspruch 7 gelöst. Unterschiedliche Ausführungsbeispiele und Weiterentwicklungen sind Gegenstand der abhängigen Ansprüche.

[0007] Im Folgenden wird ein Verfahren zum Synchronisieren der Bewegungsabläufe von mindestens zwei Robotern beschrieben, deren Arbeitsbereiche sich zeitlich und räumlich überschneiden. Gemäß einem Beispiel der Erfindung weist das Verfahren folgendes auf: Während des Betriebs einer Roboterzelle mit mindestens zwei Robotern wird für jeden der mindestens zwei Roboter regelmäßig ein Bahnparameter berechnet basierend auf einer aktuellen Position des jeweiligen Roboters und einer vorab festgelegten Roboterbahn des jeweiligen Roboters. Der Bahnparameter repräsentiert dabei die aktuelle Position des jeweiligen Roboters. Anschließend wird für jeden Roboter ein Vorauseillimit berechnet basierend auf den für die jeweils anderen Roboter ermittelten Bahnparametern. Basierend auf dem jeweils berechneten Vorauseillimit kann für jeden Roboter dessen Bahngeschwindigkeit angepasst werden.

[0008] Des Weiteren wird ein System mit mindestens zwei Roboter beschrieben, die jeweils von einer Robotersteuerung gesteuert werden. Gemäß einem Beispiel der Erfindung sind die Robotersteuerungen dazu ausgebildet, während des Betriebs der Roboter für den jeweiligen Roboter regelmäßig einen die aktuelle Position des jeweiligen Roboters repräsentierenden Bahnparameter zu ermitteln. Diese Ermittlung des Bahnparameters erfolgt basierend auf einer aktuellen Position des jeweiligen Roboters und einer vorab festgelegten Roboterbahn des jeweiligen Roboters. Die Robotersteuerungen sind des Weiteren dazu ausgebildet, für den jeweiligen Roboter ein Vorauseillimit basierend auf den (dem) für die (den) jeweils anderen Roboter ermittelten Bahnparametern (Bahnparameter) zu berechnen. Basierend auf dem für den jeweiligen Roboter berechneten Vorauseillimit kann eine Bahngeschwindigkeit des Roboters angepasst werden.

KURZE BESCHREIBUNG DER ABBILDUNGEN

[0009] Die Erfindung wird nachfolgend anhand von den in den Abbildungen dargestellten Beispielen näher erläutert. Die Darstellungen sind nicht zwangsläufig maß Stabs getreu und die Erfindung beschränkt sich nicht nur auf die dargestellten Aspekte. Vielmehr wird Wert darauf gelegt, die der Erfindung zugrunde liegenden Prinzipien darzustellen. In den Abbildungen zeigt:

[0010] Figur 1 zeigt eine Roboterzelle mit mehreren Robotern.

[0011] Figur 2 illustriert anhand einer schematischen Skizze das Konzept der Vorauseilzeit eines Roboters in Bezug auf einen anderen Roboter. [0012] Figur 3 illustriert anhand eines Flussdiagramms ein Beispiel des erfindungsgemäßen Verfahrens.

[0013] Figur 4 illustriert anhand eines Flussdiagramms ein mögliches Beispiel der Berechnung des Bahnparameters einer Roboterbahn, welcher die aktuelle Position repräsentiert.

DETAILLIERTE BESCHREIBUNG

[0014] Figur 1 zeigt ein Beispiel einer Roboterzelle mit mehreren kooperierenden Robotern, wobei„kooperierend" hier bedeuten soll, dass die in der Roboterzelle angeordneten Roboter ihre Tätigkeiten so ausüben, dass sich die Arbeitsbereiche der Roboter zeitlich und räumlich überschneiden und dass sie ihre Bahngeschwindigkeiten während des Ablaufs anpassen, um Kollisionen zu vermeiden. Im vorliegenden Beispiel sind in einer Roboterzelle 1 drei Industrieroboter 11, 12 und 13 im Einsatz, welche unterschiedliche Tätigkeiten an dem Werkstück 14 (hier eine Karosserie eines Automobils) durchführen. Diese Tätigkeiten können eine mechanische Bearbeitung umfassen (z.B. Schleifen, Polieren, Lackieren), das Handhaben von Komponenten sowie deren Einbau in oder deren Anbau an das Werkstück, das Durchführen von Messungen, etc. In der Massenfertigung von Automobilen ist der Einsatz von Industrierobotern sehr verbreitet, jedoch ist die vorliegende Erfindung nicht beschränkt auf die Fertigung von Automobilen, sondern kann in beliebigen anderen Bereichen eingesetzt werden, in denen mehrere Roboter in irgendeiner Weise kooperieren, um eine oder mehrere Aufgaben zu bewerkstelligen.

[0015] Wie eingangs erwähnt steht am Anfang eines von Robotern zu verrichtenden Arbeitsvorganges (Prozess) die Programmierung der Bewegungsabläufe (Festlegung der Roboterbahn und Bahngeschwindigkeit online oder offline) der einzelnen Roboter und der jeweiligen Arbeits schritte. Diese programmierten Bahnen können anschließend mit Hilfe eines Robotersimulators (virtuelle Roboterzelle) validiert werden. Dabei wird insbesondere geprüft, ob und unter welchen Umständen Kollisionen oder andere Probleme auftreten können. Nach erfolgreicher Simulation (Validierung) der Bewegungsabläufe, können diese automatisiert in Roboterprogramme umgesetzt werden, die von den Steuerungen der einzelnen Roboter ausgeführt werden. [0016] Eine Roboterbahn kann mathematisch als Abbildung Bi eines Zeitintervalls [0, T], in welchem ein Roboter Ri die Bahn durchläuft, auf eine Konfigurationsposition Bi(t) im Konfigurationsraum lL ni dargestellt werden, d.h.

Bf. [0, T] -> R ni , t H» für i = 1, ... , k, (1)

wobei die Anzahl der Roboter in der betrachteten Roboterzelle bezeichnet und m die Anzahl der Freiheitsgrate des i-ten Roboters R ; . Der die Konfigurationsposition Bi(t) repräsentierende Vektor enthält üblicherweise die Gelenkwinkel und definiert damit die Position des Roboters Ri eindeutig. In dem Beispiel aus Fig. 1 wäre k =3 und ηι=η 2 =η3=6 im Falle von Standard- Industrierobotern mit sechs Freiheitsgraden. Die Zeit t im Intervall [0, T] ist ein Bahnparameter, der eine bestimmte Konfigurationsposition Bi(t) im Konfigurationsraum lL ni (Achskonfiguration des Roboters Ri) eindeutig identifiziert. Bei der Simulation einer Roboterbahn Bi wird dieser Bahnparameter auch als„Simulationszeit" bezeichnet. Der Begriff„Simulationszeit" beinhaltet zwar eine Assoziation mit der physikalischen Größe„Zeit", sagt jedoch nichts darüber aus, wann während der Ausführung eines Roboterprogramms eine bestimmte Konfigurationsposition Bi tatsächlich erreicht wird. Folglich ist die Simulationszeit als abstrakter, eine Konfigurationsposition Bi repräsentierender Bahnparameter zu verstehen und nicht als Zeit im klassischen Sinn.

[0017] Um eine Kollision zu vermeiden, werden im Rahmen einer Kollisionsprüfung die von den Robotern Ri : (i=l, ..., k) beanspruchten Volumina im dreidimensionalen Raum R 3 betrachtet. Das von dem Roboter Ri für eine Konfigurationsposition (Achskonfiguration) beanspruchte Volumen (bzw. die Hüllfläche des Roboters) kann als Abbildung Pi der Konfigurationsposition Bi(t) im Konfigurationsraum lL ni in den dreidimensionalen Raum IL 3 betrachtet werden,

Pf. R nt -> -> S für i = 1, ... , k, (2)

wobei Si eine Teilmenge des dreidimensionalen Raums IL 3 ist (Si er IL 3 ) und das von dem Roboter Ri für eine gegebene Achskonfiguration (a l 5 ..., a n ) beanspruchte Volumen bezeichnet ( (M 3 )bezeichnet die Potenzmenge von IL 3 ). Zwei Konfigurationspositionen Bi(t) und Bj(t) sind kollisionsfrei, wenn die Schnittmenge der zugehörigen Volumina Pi(Bi(t)) und Pj(Bj(t)) leer ist, d.h. Pi (Bi (t ) Π Pj (ß, (t)) = {}, für i j. (3)

Eine sogenannte 3D-Kollisionsprüfung kann dadurch erfolgen, indem die Bedingung gemäß Gleichung 3 für zwei Konfigurationspositionen Bi(t) und Bj(t) zweier Roboter Ri und Rj ausgewertet wird. Ist die Schnittmenge nicht leer, kollidieren die Roboter.

[0018] Wie oben erwähnt ist eine Kollisionsprüfung„offline" mit Hilfe einer Robotersimulation alleine nicht ausreichend, weil "online", d.h. während die Roboter ihre Bewegungsabläufe ausführen, das Zeitverhalten von in der Simulation nicht vorhersehbaren Einflüssen abhängt. Es ist daher wünschenswert oder sogar notwendig, auch während der Laufzeit der Roboter eine Kollisionsprüfung durchzuführen, d.h. Kollisionen vorherzube- rechnen, damit rechtzeitig Gegenmaßnahmen (z.B. Bremsen, Nothalt, etc.) getroffen werden können. Bei der Simulation/Validierung der geplanten Roboterbahnen wird„offline" eine 3D-Kollisionsprüfung durchgeführt, was vergleichsweise aufwändig ist (im Hinblick auf Rechenleistung). Während der Laufzeit der Roboter würde eine kontinuierliche SD- Kollisionsprüfung große Mengen an 3D-Daten zur Abbildung der involvierten Objekte und massiv Rechenleistung benötigen, und es besteht daher Bedarf an alternativen Ansätzen.

[0019] Mit Hilfe des hier beschriebenen Verfahrens ist es möglich,„online" eine Kollisionsprüfung auf einfache Weise durchzuführen. Es wird dabei für jedes Roboterpaar Rj, Rj zu jedem Zeitpunkt t nur ein einziger Parameter benötigt, der als maximale Vorauseilzeit bezeichnet wird, welche mit Hilfe einer Simulation der Roboterbahnen in einer virtuellen Roboterzelle ermittelt werden kann. Unter der Annahme, dass der Roboter Ri zu einem beliebigen Zeitpunkt t (wobei t e [0, 7]) sich (im Konfigurationsraum ]R ni ) an seiner zuvor geplanten Sollposition Bi(to) befindet, kann eine Vorauseilzeit At definiert werden als jener zeitliche Abstand zwischen der tatsächlichen (messbaren bzw. der Robotersteuerung bekannten) Konfigurationsposition Bj(to+At) des Roboters R, und dessen zuvor geplanten und in der Simulation validierten Sollposition Bj(to). Die maximale Vorauseilzeit Vij(t) ist also jene Vorauseilzeit At, die der Roboter Rj dem Roboter Rj höchstens vorauseilen darf, ohne dass eine Kollision auftritt. Mathematisch kann die maximale Vorauseilzeit Vij(t) als Abbildung

Vi . [0, T] -> [0, T], t » max {At | Ρ 4 4 (ί)) n Pj (ß, (t + At)) = {}}, (4) definiert werden. Die maximale Vorauseilzeit Vij(t) kann„offline" (mittels Simulation in einer virtuellen Roboterzelle) für jedes Roboterpaar Ri, Rj und jedem (simulierten) Zeitpunkt ermittelt und gespeichert werden. Während der Laufzeit der Roboter werden von den Robotersteuerungen nur mehr die mit Hilfe des Simulators vorab ermittelten maximalen Vorauseilzeiten Vij(t) in hinreichend genauer zeitlicher Auflösung benötigt, sodass die maximal mögliche Bewegung zwischen den berechneten Zeitpunkten keine Verletzung der vorgesehenen Sicherheitsabstände verursachen kann. Eine aufwändige SD- Kollisionsprüfung kann entfallen. Für Zeitpunkte innerhalb eines Intervalls zwischen zwei aufeinanderfolgenden berechneten Zeitpunkten kann das Minimum der beiden berechneten maximalen Vorauseilzeiten angenommen werden.

[0020] Fig. 2 ist eine schematische Skizze zur Illustration des oben eher mathematisch beschriebenen Konzepts der Vorauseilzeit. Die gestrichelten Linien repräsentieren die Roboterbahnen Bi und Bj der Roboter Ri bzw. Rj. Zu einem Zeitpunkt ti befindet sich der Roboter Ri an seiner geplanten (Soll-) Position Bi( ) in einem Bereich (Kollisionszone), in dem sich die Bahnen der beiden Roboter kreuzen (oder sich zumindest so nahe kommen, dass eine Kollision möglich ist). Gemäß der simulierten Roboterbahn soll sich der Roboter Rj zur Zeit tj an der Position Bj(tj) befinden. Sofern der Roboter Rj (aus welchen Gründen auch immer) dem Roboter Ri vorauseilt, kommt er dem Roboter Ri näher, je größer die Vorauseilzeit Atj ist. Die maximale Vorauseilzeit vy(ti) ist jene Vorauseilzeit, die der Roboter Rj - zum Zeitpunkt ti - in Bezug auf den Roboter Ri vorauseilen darf, sodass gerade noch keine Kollision auftritt. Die maximalen Vorauseilzeiten können vorab mit Hilfe eines Robotersimulators berechnet werden. Dabei wird in der Simulation geprüft, wie weit ein Roboter Rj zu einem simulierten Zeitpunkt tj entlang seiner festgelegten Bahn - zeitlich - verschoben werden kann, ohne dass eine Kollision auftritt. Die Kollisionsprüfung erfolgt dabei„offline" z.B. mittels einer 3D-Kollisionsprüfung. Die Berechnung der maximalen Vorauseilzeit erfolgt für verschiede Zeitpunkte in einem bestimmten Zeitraster und für jedes Roboterpaar Ri, Rj (fej).

[0021] Die mittels Simulation ermittelten maximalen Vorauseilzeiten Vij(t) sind variabel und hängen von dem Bahnparameter t (Simulationszeit) ab. Deshalb kann es vorkommen, dass für einen bestimmten Roboter Rj zu einem Zeitpunkt to (für einen Bahnparameter to) die maximale Vorauseilzeit sehr groß (z.B. unendlich) ist, zu einem späteren Zeitpunkt ti (für einen Bahnparameter ti) jedoch relativ klein (z.B. nahe null). Während also ein ver- gleichsweise weites Vorauseilen At zum Zeitpunkt to unproblematisch ist, kann dieses Vorauseilen At zum Zeitpunkt ti schon zu hoch sein und eine Kollision verursachen. Die Robotersteuerung muss die maximalen Vorauseilzeiten Vij(t) also„vorausschauend" berücksichtigen. Im erwähnten Beispiel darf also auch zum Zeitpunkt to die Vorauseilzeit At nicht beliebig groß werden (die Bedingung At<Vij(to) ist notwendig aber nicht hinreichend), sondern muss so gering gehaltenwerden, dass ein Einhalten der maximalen Vorauseilzeit Vij(ti) zum späteren Zeitpunkt ti überhaupt möglich ist. Das erwähnte„vorausschauende" Berücksichtigen der maximalen Vorauseilzeiten Vij(t) kann beispielsweise dadurch erreicht werden, dass die maximalen Vorauseilzeiten Vij(t) in„vorausschauende maximale Vorauseilzeiten" Wij(t) transformiert werden. Diese Transformation kann auf unterschiedliche Weise erfolgen (z.B. unter Berücksichtigung der maximal möglichen Bremsbeschleunigungen). Eine einfache und sichere Möglichkeit (im Sinne einer Worst-Case-Betrachtung) besteht darin, dass zu jedem Zeitpunkt t (in Simulationszeit) aus den maximalen Vorauseilzeiten Vij(t) im Zeitintervall [t, 7] (d.h. vom aktuellen Zeitpunkt bis zum Ende des geplanten Bewegungsablaufs) die geringste maximale Vorauseilzeit herangezogen wird. In diesem Fall kann die vorausschauende maximale Vorauseilzeit Wij(t) wie folgt berechnet werden:

Wij : [0, T] -» [0, T], t H> mm{vij (t + u) + u \ u E [0, T— t] }. (5) Das heißt, wenn für ein Roboterpaar R Rj zum Zeitpunkt t=0 die maximale Vorauseilzeit Vß(0) des Roboters Rj unendlich groß ist, und für einen Zeitpunkt t=ls die maximale Vorauseilzeit Vß(l) nur mehr 0,3s beträgt, dann ist zum Zeitpunkt to die vorausschauende maximale Vorauseilzeit Wß(0) eben nicht unendlich sondern maximal 1,3s. Die vorausschauende maximale Vorauseilzeit Wij(to) zu einem Zeitpunkt to berücksichtigt also auch die maximalen Vorauseilzeiten Vij(to) für spätere Zeitpunkte t>to (und t< T).

[0022] Um mehrere Roboter einer Roboterzelle unter Berücksichtigung der berechneten vorausschauenden maximalen Vorauseilzeiten Wß(t) zu synchronisieren, sodass Kollisionen vermieden werden, müssen der Robotersteuerung für den Roboter Rj sämtliche vorausschauenden maximalen Vorauseilzeiten Wß(t) (für alle fej) zur Verfügung stehen. Während der Laufzeit tauschen die Robotersteuerungen der einzelnen Roboter Ri : (i=l, ..., k) ihre „Fortschritte" beim Durchlaufen ihrer Roboterbahn, d.h. ihre tatsächlichen Positionen (im Konfigurationsraum), indirekt dadurch aus, dass die Bahnparameter ausgetauscht werden, welche jeweils Positionen auf den zuvor festgelegten Roboterbahnen bezeichnen. Für jeden Roboter Rj kann die zugehörige Robotersteuerung basierend auf den vorab mittels Simulation ermittelten vorausschauenden maximalen Vorauseilzeiten Wß(t) und den aktuellen Simulationszeiten (t) (Bahnparametern) der anderen Roboter Ri (fej), das eigene aktuelle Vorauseilzeitlimit t v j(t) ermitteln. Das aktuelle Vorauseilzeitlimit t v j(t) für den Roboter Rj ist das Minimum der vorausschauenden maximalen Vorauseilzeiten wji(ti) in Bezug auf die anderen Roboter Ri (für alle fej), das heißt:

[0, T] -» [0, T], t H> min{w y (ti(t)) | für alle (6)

[0023] Für jeden Roboter Rj =l, ..., k) kann die Bahngeschwindigkeit abhängig von dem aktuellen Vorauseilzeitlimit t v j(t) angepasst werden. Dazu kann beispielsweise - zu jedem Zeitpunkt t - die Robotersteuerung des jeweiligen Roboters Rj eine aktuelle Bremszeit tßj ermitteln. Diese Bremszeit tej ist in der Regel abhängig von den aktuellen Bahngeschwindigkeiten und den maximalen Bremsverzögerungen der Roboterachsen des Roboters Rj. Solange für den jeweiligen Roboter Rj die Bremszeit tej kleiner ist als das aktuelle Vorauseilzeitlimit t v j(t), d.h. solange die Ungleichung

erfüllt ist, kann die Bahngeschwindigkeit des Roboters Rj erhöht werden (bis zu einem definierbaren Maximalwert). In diesem Falle versucht der Roboter so weit wie möglich vorauszueilen, wodurch die übrigen Roboter„nachgezogen" werden. Sobald die aktuelle Bremszeit tej größer dem Vorauseilzeitlimit t v j(t) wird, muss die Bahngeschwindigkeit des Roboters Rj mindestens so weit reduziert werden, dass die Ungleichung 7 wieder erfüllt ist.

[0024] Das oben beschriebene Verfahren wird in der Folge kurz unter Bezugnahme auf das Flussdiagramm zusammengefasst. Während des Betriebs einer Roboterzelle mit mindestens zwei Robotern wird für jeden Roboter Rj basierend auf dessen aktueller Position Bj regelmäßig (periodisch oder von Zeit zu Zeit) ein Bahnparameter tj ermittelt (Fig. 3, Schritt 301). Wie oben erläutert, entspricht der Bahnparameter der oben erwähnten Simulationszeit tj eines bestimmten Roboters Rj, d.h. jenem hypothetischen Zeitpunkt t x , zu dem die Position Bj(t x ) auf der festgelegten Roboterbahn gleich bzw. möglichst nahe der aktuellen Position qj des Roboters Rj ist. Die Robotersteuerungen der einzelnen Roboter tauschen die ermittelten Bahnparameter/Simulationszeiten tj aus, sodass jede Robotersteuerung die aktuellen Bahnparameter/Simulationszeiten aller Roboter kennt. Basierend auf den ermittel- ten Bahnparametern/Simulationszeiten der jeweils anderen Roboter Ri kann anschließend für jeden Roboter Rj ein Vorauseillimit t v j(t) berechnet werden (Fig. 3, Schritt 302). Gemäß Gleichung 6 ist für einen Roboter Rj das Vorauseillimit t v ,/t) das Minimum der vorausschauenden maximalen Vorauseilzeiten wji(ti) in Relation zu den anderen Robotern Ri (i^j). Schließlich wird für jeden Roboter Rj dessen Bahngeschwindigkeit angepasst basierend auf dem berechneten Vorauseillimit t v j(t) (Fig. 3, Schritt 303). Beispielsweise kann die Bahngeschwindigkeit (wenn nötig bis auf null) reduziert werden, falls eine (von der aktuellen Bahngeschwindigkeit abhängige geschätzte Bremszeit) nicht kleiner ist als das Vorauseillimit t v ,j(t) für den jeweiligen Roboter.

[0025] Für die Berechnung der Vorauseillimits t v j(t) der einzelnen Roboter Rj werden zunächst die maximalen Vorauseilzeiten vji(t) und die vorausschauenden maximalen Vorauseilzeiten Wji(t) wie oben beschrieben ermittelt. Demnach wird für jedes geordnete Roboterpaar Rj, Ri - mittels Simulation der vorab festgelegten (parametrisierten) Roboterbahnen und für eine Folge von Bahnparameterwerten - eine maximale Vorauseilzeit vji(t) berechnet. Diese ist jene Zeit, die der erste Roboter Rj des Roboterpaar dem zweiten Roboter Ri des Roboterpaar vorauseilen darf, ohne eine Kollision zu verursachen (vgl. Gleichung 4). Die erwähnte Folge von Bahnparameterwerten entsteht durch Diskretisierung des Intervalls [0, T], in dem die jeweilige Roboterbahn Bj(t) definiert ist. Die maximale Vorauseilzeit vji(t) für einen bestimmten Bahnparameter t (Simulationszeit) allein ist nicht ausreichend, da die maximale Vorauseilzeit vji(t) kein konstanter Wert ist und sich ändern kann. Daher wird für jedes geordnete Roboterpaar Rj, Ri und einem bestimmten Bahnparameter to (der oben erwähnten Folge von Bahnparametern) eine sogenannte vorausschauende maximale Vorauseilzeit Wij(to) berechnet basierend auf der maximalen Vorauseilzeit Vij(to) für den bestimmten Bahnparameter to und den nachfolgenden Bahnparametern (t>to) der Folge von Bahnparametern (siehe Gleichung 5). Die Informationen über die maximalen Vorauseilzeiten erlauben jedem Roboter, von sich aus die höchste Geschwindigkeit anzustreben, ohne mit anderen Robotern zu kollidieren. Ein Regler für die Geschwindigkeit ist nicht notwendig. Insgesamt wird die Synchronisation mehrerer Roboter stark vereinfacht.

[0026] In der Folge wird anhand eines Beispiels beschrieben, wie aus einer gemessenen Roboterposition qj eines Roboters Ri der zugehörige Bahnparameter (hier: Simulationszeit) im Roboterprogramm ermittelt werden kann. Um Daten- und Rechenaufwand der Robotersteuerung klein zu halten, wird für die Ansteuerung des Roboters Ri die zugehörige Roboterbahn Bi(t) in mehrere Segmente Sij zerlegt (Segment Sij ist das j-te von si Segmenten der Bahn Bi(t) des Roboters Ri, j=l, .. . , Si):

Sij - [Tij, ίυ+ 1) ] -> R ni , t H» Bi t), wobei T i0 = 0 und T i(si+1) = T. (9)

Die Zeit 7# ist die Startzeit des j-ten Segments Sij der Bahn Bi(t) des Roboters Ri. Die Zeit Ti(j + i) ist die Endzeit des j-ten Segments Sij und gleichzeitig auch die Startzeit des (j+l)-ten Segments Si(j + i). Die gewünschten Bewegungsabläufe werden dem Roboter Ri von der Robotersteuerung mittels Bewegungs Sätzen (motion sets) übermittelt .Der j-te Bewegungssatz für den Roboter Ri ist gegeben durch

MOV i j = {B i {T ij ), B i {T iü+ 1) )} (10)

Während der Ausführung des durch einen Bewegungssatz MOVij definierten Bewegungsablaufes, kann in kurzen Zeitabständen die aktuelle Konfigurationsposition qi (z.B. Vektor der Gelenkwinkel, auch Achskonfiguration) des Roboters Ri gemessen werden. Die Simulationszeit kann nun mittels einer einfachen Interpolation zwischen Start- und Endpunkt des Bewegungssatzes MOVij und der gemessenen Konfigurationsposition qi ermittelt werden. Für die Simulationszeit gilt Bi( ) ~ qi.

[0027] Die oben beschriebene Vorgehensweise ist in dem Flussdiagram gemäß Fig. 4 zusammengefasst. In dem dargestellten Beispiel arbeitet die Steuerung eines Roboters Ri sequentiell Bewegungssätze MOVij ab, die jeweils durch einen Startpunkt Βϊ(Τ ) und einen Endpunkt Bi(Ti(j + i)) inklusive der zugehörigen Zeitparameter 7# und Ti(j + i) (Simulationszeit der Start- und der Endposition Bi(Tij) und Bi(Ti(j + i)) des j-ten Segments des Bewegungsablaufs des Roboters Ri) gegeben sind (Fig. 4, Schritt 401). Der Roboter bewegt sich folglich von der Startposition zur Endposition des jeweiligen Segments der festgelegten Roboterbahn. Die Endposition eines Segments j ist die Startposition des darauffolgenden Segments j+l . Die aktuelle (Konfigurations-) Position qi des Roboters Ri wird laufend gemessen (Fig. 4, Schritt 402) und ist der Robotersteuerung daher bekannt. Der die aktuelle Position qi repräsentierende Bahnparameter (d.h. die gesuchte Simulationszeit ) des festgelegten Bewegungsablaufs Bi(t) kann durch Interpolation zwischen Startpunkt Βί(Τ ) und einen Endpunkt Bi(Ti(j+i)) des aktuellen Bewegungssatzes MOVij ermittelt werden, sodass gilt: qi

= Bi(n).