-
Die
Erfindung betrifft ein System zum Steuern eines ersten Roboters
und mindestens eines anderen Roboters mit einer Einrichtung zum
Kalibrieren mindestens des anderen Roboters in Bezug auf den ersten
Roboter durch Bestimmen einer Koordinatentransformation des ersten
Roboters in Bezug auf den anderen Roboter und einen Speicher in
der Steuereinheit des anderen Roboters zum Speichern dieser Transformation.
Dabei wird in Bezug auf den ersten Roboter ein anderer Roboter durch
Bestimmen einer Koordinatentransformation des ersten Roboters in Bezug
auf den anderen Roboter kalibriert, wobei diese Transformation in
einer Steuereinheit des anderen Roboters gespeichert wird.
-
Die
US 6 330 493 B1 betrifft
den koordinierten oder zusammenwirkenden Betrieb einer Vielzahl von
Robotern. In einem solchen Betrieb arbeitet einer der Roboter als
Masterroboter und der andere als Slaveroboter. Deshalb wird durch
Kalibrierung eine Transformationsmatrix zwischen den Robotern bestimmt,
in der zum Beispiel in dem Weltkoordinatensystem eines ersten Roboters
die Position eines anderen Roboters bestimmt wird. Gemäß dieser
Schrift ist die Transformation, die die Position des ersten Roboters
in dem Weltkoordinatensystem des zweiten Roboters bestimmt, die
anfangs genannte Umkehrtransformation, so dass die Transformation
nur einmal bestimmt werden muss, beispielsweise kann die des anderen
Roboters in dem System des ersten Roboters und die Umkehrtransformation
zum Bestimmen des ersten Roboters in dem System des zweiten Roboters
benutzt werden, ohne dass eine weitere Bestimmung notwendig ist.
Diese wissenschaftliche Näherung
impliziert ebenso, dass bei drei Robotern der dritte Roboter nur
in dem Koordinatensystem von einem der beiden Roboter bestimmt werden
muss, zum Beispiel kann der zweite Roboter und all die anderen Koordinatentransformationen
mathematisch aus der festgelegten Transformation erhalten werden.
-
Aufgrund
der Roboterkinematik ist diese wissenschaftliche Näherung falsch,
weil die Transformation eines Roboters in Bezug auf andere nicht
einfach invertiert werden kann, um eine genaue Transformation des
anderen Roboters in Bezug auf den ersten Roboter zu bestimmen. Dieses
trifft insbesondere zu, wenn Roboter mit einer Last arbeiten, weil
es dann eine wesentliche Durchbiegung von bis zu 10 mm bei bestimmten
Robotern gibt, was auch abhängig
vom Platz eines Roboters innerhalb des Arbeitsbereiches ist.
-
Außerdem findet
die Kalibrierung eines Roboters in dem System des anderen Roboters
normalerweise derart statt, dass sich die Roboter auf bis zu drei
Positionen in einem Bereich bewegen, die nicht auf einer Linie liegen,
und dass die Positionen in den gegebenen Koordinatensystemen der
Roboter bestimmt werden und anschließend aus den Daten der drei
Positionen die Transformation von einem Roboter in Bezug auf den
anderen berechnet wird.
-
Wenn
zu Kalibrierungszwecken eine vierte Position von jedem Roboter benutzt
wird, findet eine Überbestimmung
statt, wodurch folglich durch schrittweise Optimierung die Wurzel
der Quadrate (L2 Normierung) der gegebenen 12 Vektoren (3 Koordinaten von
4 Punkten), die die Differenz zwischen der Lage der Komponenten
des Koordinatensystems des einen Roboters und der transformierten
Koordinatenkomponenten der vier Punkte der anderen Roboter implizieren,
reduziert wird. Dies liefert eine nichtlineare Gleichung mit mehreren
Minima, so dass in diesem Fall die Transformation von einem ersten
Roboter zu einem anderen Roboter nicht notwendig die Umkehrung der
Transformation von dem anderen Roboter zu dem ersten ist.
-
Die
Aufgabe der Erfindung liegt darin, ein System zu liefern, mit dem
die Steuerung von zusammenwirkenden Robotern verbessert und für alle Teilregionen
ihrer gemeinsamen Betriebsbereiche optimiert werden kann.
-
Gemäß der Erfindung
wird die Aufgabe durch ein System zum Steuern von Robotern gelöst, das
eine Bestimmungseinheit zum Kalibrieren des ersten Roboters in Bezug
auf den anderen Roboter durch die Bestimmung von mindestens einer
unabhängigen
Koordinatentransformation von mindestens einem anderen Roboter in
Bezug auf den ersten Roboter und durch einen Speicher in einer Steuereinheit des
ersten Roboters zum Speichern von mindestens einer unabhängigen Transformation
umfasst. Auch der erste Roboter wird so erfindungsgemäß in Bezug auf
den anderen Roboter durch Bestimmung von mindestens einer unabhängigen Koordinatentransformation
kalibriert, wobei mindestens diese unabhängige Transformation in einer
Steuereinheit des ersten Roboters gespeichert wird.
-
Gemäß einer
bevorzugten Ausführungsform der
Erfindung wird im Falle von mindestens drei Robotern jeder Roboter
in Bezug auf die anderen durch mindestens eine unabhängige Bestimmung
von Koordinatentransformationen kalibriert, wobei mindestens diese
Kalibrierungstransformation von jedem Roboter in einer Steuereinheit
gespeichert wird, oder im Falle von mindestens drei Robotern hat
jeder Roboter in seiner Steuereinheit ein Mittel zur Kalibrierung
seinerseits in Bezug auf jeden anderen Roboter durch Bestimmung
von mindestens einer Koordiantentransformation bezüglich jeden
anderen Roboter sowie auch einen Speicher zum Speichern von jeweils
mindestens einer Koordiantentransformation.
-
In
einer bevorzugten Weiterbildung werden für jeden Roboter mehrere Kalibrierungen
jeweils in unterschiedlichen Positionen durchgeführt und die auf diese Weise
erhaltenen Transformationen gespeichert. Dieses impliziert, dass
die Kalibrierung von einem Roboter in Bezug auf die anderen Roboter an
einer anderen, unterschiedlichen Position stattfindet wie die Kalibrierung
des anderen Roboters in Bezug auf den ersten Roboter. Dieses impliziert
auch, dass jeweils individuelle Kalibrierungen oder Bestimmungen
der Koordinatentransformationen für unterschiedliche Positionen
und daher unterschiedliche Betriebsbereiche für jeden Roboter durchgeführt werden
kann.
-
In
einer weiteren bevorzugten Weiterbildung werden im Fall des zusammenwirkenden
Betriebs von mindestens zwei Robotern die Koordinaten des unabhängigen Roboters
und die transformierten Koordinaten in Bezug auf den unabhängigen Roboter oder
auf die unabhängigen
Roboter verwendet und insbesondere werden die Koordinaten von einem
Roboter und die in Bezug auf einen oder mehrere Roboter Koordinaten
in bereichsabhängiger
Betriebsweise verwendet. Wohingegen im Prinzip beide Systeme in dem
Koordinatensystem des unabhängigen
Ro boters und folglich der unabhängige
Roboter oder die unabhängigen
Roboter in dem aus dem Koordinatensystem des unabhängigen Roboters
erhaltenen transformierten Koordinatensystem arbeiten, wobei es
in einer bereichsabhängigen
Betriebsweise auch möglich
ist, trotz Aufrechterhaltens des Merkmals, wie zum Beispiel eines
unabhängigen
Roboters, dass ein unabhängig
arbeitender Roboter mit dem aus der Transformation des Koordinatensystems
eines abhängig
arbeitenden Roboters erhaltenen Koordinatensystem arbeiten kann,
wobei der entsprechende, abhängig
arbeitende Roboter in seinem Ursprungskoordinatensystem arbeitet – ebenso
wie weitere zusätzliche
abhängig
arbeitende Roboter in ihrem aus dem Ursprungskoordinaten des abhängigen Roboters
erhaltenen transformierten Koordinatensystem.
-
In
einer weiteren bevorzugten Weiterbildung kann im Fall eines zusammenwirkenden
Betriebs von vorzugsweise mindestens zwei Robotern einer der Roboter
als unabhängiger
Roboter und der andere Roboter als abhängiger Roboter eingesetzt werden, wobei
insbesondere die Charakteristiken der Roboter als unabhängige oder
abhängige
Roboter während eines
Arbeitsprozesses verändert
werden.
-
In
einer bevorzugten Ausführungsform
des erfindungsgemäßen Systems
werden für
die Leistungsfähigkeit
des oben genannten Verfahrens Varianten realisiert.
-
Die
Erfindung ermöglicht
im Falle eines zusammenwirkenden Betriebs von Robotern nicht nur den
Roboter als unabhängigen
Roboter und mindestens den anderen als abhängigen Roboter zu benutzen,
sondern auch ein geeignetes Koordinatensystem zu benutzen, wobei
die Zuordnung, welcher Roboter der unabhängige Roboter und welcher entsprechend
der Abhängige
ist, auch von den Arbeitsbereichen abhängt, in denen die aus technischen
Gründen resultierenden
Positionsunter schiede reduziert werden und die Benutzung von verschiedenen
Positionen aus mathematischen Gründen
vermieden wird. Die Erfindung ermöglicht folgendes: Wenn zwei
oder mehr Roboter zusammenwirken, kann ein Roboter A unabhängig von
einem anderen Roboter B sein, der von Roboter A abhängt. In
diesem Fall benutzt Roboter B eine durch seine Kalibrierung zu Roboter
A erhaltene Transformation. Wenn Roboter B der Unabhängige wird
und Roboter A dann von Roboter B abhängt, benutzt Roboter A eine
durch seine Kalibrierung zu Roboter B erhaltene Transformation.
Einige Transformationen sind genauer, weil sie den physikalischen
Arbeitsbereich berücksichtigen,
in dem die Roboter zusammenwirken.
-
Es
ist auch im ersten Fall möglich,
in bestimmten Arbeitsbereichen mit den Koordinatensystemen des zweiten
Roboters und auch in dem durch die Kalibrierung des ersten Roboters
erhaltenen transformierten System des zweiten Roboters zu arbeiten,
weil die damit bestimmten Positionen in diesen Einzelbereichen genauer
sind als durch einen Betrieb in dem Weltkoordinatensystem des ersten Roboters
und durch die Transformation zu dem zweiten Roboter.
-
Das
Gleiche trifft für
einen zusammenwirkenden Betrieb von mehr als zwei Robotern zu, in
dem jeder als unabhängiger
Roboter benutzt werden kann, wobei für bestimmte Einzelbereiche
der Zusammenwirkung der Roboter es möglich ist, ein geeignetes Weltkoordinatensystem
von einem der zusammenwirkenden Robotern vorzugeben.
-
Aufgrund
der Tatsache, dass die Kalibrierung von jedem Roboter in Bezug auf
jeden anderen Roboter stattfindet und in der Steuereinheit der entsprechend
kalibrierten Roboter gespeichert werden, werden erfindungsgemäß unabhängig bestimmte
Transformationen gespeichert, die zu den jeweiligen Umkehrtransformationen
unterschiedlich sind.
-
Auf
diese Weise kann jeder Roboter seine Messungen aus verschiedenen
Positionen erhalten. Mehrere lokale Bereiche können für jedes Paar von zwei Robotern
in jede Richtung kalibriert werden.
-
Die
Erfindung wird im Folgenden in Bezug auf Ausführungsformen in der Zeichnung
erläutert.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 zeigt
eine einfache schematische Darstellung von zwei zusammenwirkenden
Robotern.
-
2 zeigt
eine Ansicht von zwei Robotern, die in drei Bereichen kalibriert
werden.
-
3 bis 5 zeigt
eine Ansicht von zwei Robotern, die ein Objekt in drei Bereichen
handhaben.
-
6a bis 6c zeigt
Flussdiagramme der Roboterbewegung beim Greifen und Befördern eines Objekts.
-
Jeder
zusammenwirkende Roboter A, B hat eine Steuereinheit A.1 oder B.1,
die eine Einrichtung A.2, B.2 zum Kalibrieren eines Roboters (A,
B) in dem Koordinatensystem des anderen Roboters (A, B) und zum
Bestimmen der entsprechenden Koordinatentransformationen robot B.regioni.transform,
robot A.regioni.transform in Bereiche i=1, 2 ... (dargestellt in
Form von durchgehenden Linienpfeilen) und einen Speicher A.3, B.3
zum Speichern der entsprechenden Koordinatentransformationen robot
B.regioni.transform, robot A.regioni.transform (veranschaulicht
durch gestrichelte Linienpfeile) impliziert.
-
In 1 stellt
der Punkt P1 den Arbeitspunkt des an den Roboter 2 übermittelten
Hilfsmittelpunkt dar und P1P stellt den gleichen Punkt entsprechend zu
Roboter 1 dar, der aber aufgrund der Roboterkinematik, Lastbedingungen,
usw., nicht genau mit Punkt P1 übereinstimmt,
sondern leicht davon abweicht.
-
2 zeigt
zwei Roboter, Roboter A und Roboter B, die jeweils aufeinander in
drei Bereichen s, Bereich 1, Bereich 2, Bereich 3, kalibriert werden,
die lokale Entitäten
sind. Die Verwendung ist durch das Programm vorgeschrieben. Einer
von beiden Robotern kann von dem anderen abhängig sein, so dass in jedem
Arbeitsbereich jeder Roboter auf den anderen einmal kalibriert werden
muss. Es sind insgesamt sechs Kalibrierungen.
-
Bekannte
Kalibrierungsgeräte
A.4, B.4 werden auf die Vorderplatten jedes Roboters befestigt.
-
Der
erste Roboter A wird im Bereich 1 in Bezug auf Roboter B kalibriert.
In einem ersten Schritt wird die Kalibrierung von Roboter A vorgenommen. Dann
wird Roboter A in den Bereich 1 gebracht. Roboter A wird so dahin
gebracht, dass seine Kalibrierungsgerätspitze die Kalibrierungsgerätspitze
des Roboters B berührt.
Die aktuelle Position von Roboter A wird gespeichert und die aktuelle
Position von Roboter B wird an Roboter A gesendet. Dieses Verfahren
wird für
drei andere Positionen im Bereich 1 wiederholt. Normierte Algorithmen
werden verwendet, um die Umformung von Roboter A zu Roboter B zu
berechnen. Der vierte Punkt wird für die schrittweise Optimierung
benutzt. Die Umformung wird in der Steuerung für Roboter A als robot B.regioni1.transform={x,
y, z, a, b, c} gespeichert.
-
Folglich
werden andere Kalibrierungen mit dem gleichen Verfahren des Roboters
A in Bezug auf Roboter B in den Bereichen 2 und 3 durchgeführt, die zu
Umformungen robot B.region2.transform und robot B.region3.transform
führen,
wobei für
Roboter B in Bezug auf Roboter A in den Bereichen 1 bis 3 Kalibrierungen
durchgeführt
werden, die zu Umformungen robotA.region1.transform, robotA.region2.transform
und robotA.region3.transform führen.
-
Wenn
Roboter A in Bezug auf Roboter B im Bereich 1 kalibriert wird und
Roboter B in Bezug auf A im Bereich 1 kalibriert wird, können verschiedene Kalibrierungspunkte
benutzt werden, weil jede Kalibrierung separat durchgeführt wird.
-
Nachdem
die Roboter aufeinander kalibriert sind, werden Referenzrahmen in
Bezug auf den entgegengesetzten Roboter geschaffen, so dass die
Roboter räumlich
zusammenwirken oder verbunden werden können. Hierbei ist ein Rahmen
eine Umformung. In 3 wird ein Rahmen-Teilgreifer-1
gezeigt. Dieser Rahmen stellt den Abschnitt dar, wie dieser in dem
Greifer A.5 durch Roboter A gehalten wird. Der Rahmen ist die Umformung
auf dem Abschnitt von der Vorderplatte des Roboters zu einem Referenzpunkt.
Der Rahmen ist festgelegt, so dass der Ausgangsrahmen Roboter A
im Bereich 1 ist. Diese Information wird mit den Rahmendaten festgehalten.
Der Greifer des anderen Roboters B ist als B.5 gekennzeichnet. 7 zeigt den selben Rahmen im Bereich 2.
Dieser Rahmen-Teilgreifer-2
ist tatsächlich
eine unterschiedliche Rahmeninformation und wird getrennt vom Teilgreifer-1
gespeichert. Teilgreifer-2 ist relativ zu Roboter A im Bereich 2. 8 zeigt einen Teilgreifer -3-Rahmen relativ
zu Roboter A im Bereich 3. Positionen sind relativ zu den Rahmen.
Wenn eine Position relativ zu einem festen Rahmen steht, ist die
Position immer an der gleichen Stelle. Wenn die Position relativ
zu einem Rahmen steht, das relativ zu der Vorderplatte eines Roboters
steht, bewegt sich die Position mit dem Rahmen. Der Rahmen bewegt
sich mit dem Roboter. Dieses wird in der Patentanmeldung auf Seite
9, Paragraph 3 näher
erläutert.
-
Programmierte
Positionen werden in Bezug auf Rahmen festgelegt. Eine festgelegte
Position in Bezug auf den Weltrahmen stellt eine Ortsbestimmung
und Orientierung dar, die bezüglich
der Roboterbasis befestigt werden. Eine in Bezug auf einen anderen
Teilgreifer-Rahmen festgelegte Position steht in Bezug auf die Position
des Roboters A. Wie der Roboter, bewegt sich auch der Rahmen und
die Position.
-
Die
durchgeführten
Kalibrierungen werden mit zusammenwirkenden Robotern wie folgt benutzt:
Roboter
A startet als unabhängiger
Roboter und bewegt sich von Bereich 1 über Region 2 zu Region 3. Roboter
B ist abhängig
von Roboter A und wird Roboter A in alle drei Bereiche folgen. Die
programmierte Bewegung schreibt den Bereich vor. Der erste Roboter
A hebt ein Teil auf und bringt es in Bereich 1 (Schritt A in 6a),
wobei Roboter B sich in eine Aufsetzposition in der Nähe von Roboter
A (Schritt Ba) bewegt. Die Programme auf Roboter A und Roboter B
treffen aufeinander "Bereit
zum Verbinden" (Ab,
Bb). Das bedeutet, dass A eine Nachricht an B sendet, dass er zum
Verbinden bereit ist und Roboter A wartet dann auf eine Nachricht
von B, dass er zum Verbinden bereit ist. Roboter B sendet asynchron eine
Nachricht an A, dass er zum Verbinden bereit ist. Dann werden beide
Programme fortgesetzt. Das Aufeinandertreffen wird durch einen Einsatz
einer Programmsynchronisation erfüllt, wie zum Beispiel in der angehängten Patentanmeldung "Verfahren und Vorrichtung
für die
synchrone Steuerung eines Manipulators" von Stefan Graf, Andreas Ha genauer,
Michael Chaffee und Kenneth Stoddard, veröffentlicht am 14. Mai 2003,
beschrieben wird.
-
Roboter
B fährt
in eine programmierte Position in Bezug auf den Teilgreifer -1 -Rahmen.
Für diese Bewegung
muss die Steuerung bestimmen, welcher Teilgreifer -1-Rahmen in Bezug
auf (Bb1) steht. Während
der Einstellung wurde dieser Rahmen so festgelegt, dass es relativ
zu robotA.region1 steht. Dies verursacht, dass B mit A verbunden
wird, so dass eine Abhängigkeit
zu Roboter A geschaffen wird, wie in der angehängten US-Patentanmeldung Ser.No. 10/406,521
vom 03. April 2003 "Verfahren
und Steuersystem zum Steuern einer Vielzahl von Robotern" von Kenneth A. Stoddard
et. al. beschrieben wird. Der eigentliche Verbindungsprozess beinhaltet
Kommunikationen zwischen den Robotern. Die Programme der beiden
Roboter treffen bei "verbunden" (Ac, Bc) aufeinander.
Roboter A bewegt sich innerhalb Bereich 1. Roboter B folgt (Ad,
Bd). Die Programme der beiden Roboter treffen aufeinander, um anzuzeigen,
dass sie zur Trennung bereit sind (Ae, Be). Roboter B fährt schließlich in
eine Position in Bezug auf seinen eigenen Weltrahmen (Be1). Die
Verbindung wird durch diesen Bewegungsbefehl abgebrochen, wie in
der oben genannten Anmeldung 10/406,521 beschrieben ist, in der
ein Roboter B nicht länger
von Roboter A abhängt
(Af, Bf). Die Programme der beiden Roboter treffen bei Trennung
aufeinander. Das Programm wird genau in gleicher Weise für die beiden
anderen Bereiche fortgesetzt außer
der Kalibrierung, die für
jeden Bereich auf den benutzten Teilgreifer-Rahmen basiert. Der
Teilgreifer-2-Rahmen steht relativ zu einem Roboter A im Bereich
2, so dass die Kalibrierungsdaten RobotA.Region2.Transform verwendet
werden, wenn eine Verbindung im Bereich 2 durchgeführt wird – ebenso
für Bereich
3. Dieses ist in den Flussdiagrammen in 6b und 6c dargestellt.
-
Das
ganze Szenario kann mit Roboter B als unabhängiger Roboter und Roboter
A als von Roboter B abhängiger
Roboter wiederholt werden, indem die Rollen der unabhängigen und
abhängigen
Roboter getauscht sind. In diesem Fall wären die verwendeten Kalibrierungsdaten
RobotB.Region.Transform.
-
Da
eine Last basierend auf die Position des Roboters einen unterschiedlichen
Verbiegungsgrad verursachen kann, wobei die Kalibrierung dieses
berücksichtigen
soll, muss der Kalibrierungsvorgang mit der Last an Ort und Stelle
vorgenommen werden. So beinhaltet im Fall einer eintretenden Verbiegung die
Kalibrierung diese Verbiegung.