-
Die
Erfindung betrifft ein Verfahren zum Programmieren eines Roboters
und einen Roboter.
-
Roboter
sind Handhabungsmaschinen, die zur selbsttätigen Handhabung
von Objekten mit zweckdienlichen Werkzeugen ausgerüstet
und in mehreren Bewegungsachsen insbesondere hinsichtlich Orientierung,
Position und Arbeitsablauf programmierbar sind.
-
Unter
Verfahren zum Programmieren des Roboters (Programmierverfahren),
versteht man das planmäßige Vorgehen zur Erzeugung
von Anwenderprogrammen.
-
Ein
allgemein bekanntes Programmierverfahren ist die sogenannte Teach-In-Programmierung, bei
der eine Bewegungsinformation für den Roboter durch Anfahren
gewünschter Raumpunkte mit Hilfe einer geeigneten Vorrichtung,
beispielsweise eines Programmierhandgerätes oder eines
Bedienfeldes, und Übernahme dieser Raumpunkte in die Robotersteuerung
erstellt wird.
-
Eine
weitere Art der Programmierung ist das sogenannte Play-Back Verfahren,
bei dem die Programmierung eines Arbeitsvorgangs durch manuelles
Führen des Roboters entlang einer gewünschten Raumkurve
erfolgt. Dabei werden die Lage-Ist Werte, d. h. die Achsstellungen
oder die TCP-Position (Tool Center Point Position) des Roboters
in einem definierten Zeit- oder Wegraster in das Anwenderprogramm übernommen.
-
Die
EP 1 508 396 A1 offenbart
ein Verfahren zum Steuern der Andruckskraft einer mittels eines Roboters
geführten Schweißzange. Die auf die Schweißzange
wirkende Kraft wird während des Schweißens gemessen
und der Roboter derart ver stellt, dass die auf die Schweißzange
wirkende Kraft gleich. einer vorgegebenen Soll-Kraft ist.
-
Die
Aufgabe der Erfindung ist es, ein Verfahren zum Programmieren eines
Roboters anzugeben, welches es einer Bedienperson des Roboters erlaubt,
in relativ einfacher Weise den Roboter derart zu programmieren,
dass dieser beim Ausführen des entsprechenden Anwenderprogramms
ein vorbestimmtes Kraft- und/oder Momentenverhalten aufweist.
-
Eine
weitere Aufgabe der Erfindung ist es, einen entsprechenden Roboter
anzugeben.
-
Die
Aufgabe der Erfindung wird gelöst durch ein Verfahren zum
Programmieren eines Roboters, aufweisend folgende Verfahrensschritte:
- – manuelles Anfahren von wenigstens
einem Raumpunkt mit einem Roboter,
- – Ermitteln der Kräfte oder Drehmomente, die
der Roboter im angefahrenen Raumpunkt ausübt, und
- – Speichern der ausgeübten Kräfte
oder Drehmomente.
-
Erfindungsgemäß wird
demnach für die Programmierung des Roboters, insbesondere
für die Programmierung eines Bahnverlaufs eines Flansches
des Roboters, der Roboter manuell derart betätigt, dass
der Roboter wenigstens einen Raumpunkt, also genau einen Raumpunkt
oder eine Mehrzahl von Raumpunkten, anfährt. Das manuelle
Anfahren des wenigstens einen Raumpunktes kann insbesondere durch
ein manuelles Führen des Roboters oder mit Hilfe eines
manuell bedienbaren Eingabegerätes des Roboters durchgeführt
werden.
-
Für
das manuelle Führen des Roboters, z. B. durch Drücken
oder Ziehen an Roboterachsen bzw. an einem am Flansch des Roboters
angebrachten Kraft- oder Momentensensors, kann der Roboter gravitationskompensiert
arbeitet. Dann reichen für die manuelle Führung
des Roboters relativ kleine Kräfte aus, was wiederum eine
relativ einfache Führung des Roboters bewirkt.
-
Das
manuell bedienbare Eingabegerät ist beispielsweise ein
Handbediengerät, das über Verfahrtasten und andere
Interaktionselemente (z. B. Spacemouse oder Joystick) verfügen
kann. Am Handbediengerät können verschiedene Betriebsmodi
eingestellt werden, die es einer den Roboter manuell bewegenden
Person erleichtern, den Roboter zielgerichtet zu verfahren. Beispielsweise
kann die Person den Roboter wahlweise achsweise, in einem Werkzeug-(TOOL)
oder werkstückzentrierten (BASE) Koordinatensystem verfahren.
Dabei kann z. B. die Position bzw. Orientierung des Flansches oder
eines am Flansch befestigten Werkzeuges entlang bzw. um eine Achse
verändert werden. Das Speichern der Kräfte oder
Drehmomente kann mit einem Interaktionslement, z. B. einer Taste,
initiiert werden.
-
Aufgrund
des manuellen Anfahrens von insbesondere mehreren Raumpunkten ergibt
sich eine relativ einfache Art, einen gewünschten Bewegungsablauf
des Roboters zu programmieren.
-
Hat
der Roboter bzw. der Flansch oder ein am Flansch befestigtes Werkzeug
einen der Raumpunkte erreicht, dann wird erfindungsgemäß die
vom Roboter aufgebrachte Kraft oder das vom Roboter aufgebrachte
Drehmoment gespeichert. Dabei kann es vorgesehen sein, die ausgeübte
Kraft bzw. das ausgeübte Drehmoment durch das manuelle
Führen auf gewünschte Sollwerte einzustellen,
indem z. B. der Roboter bzw. dessen Flansch oder das am Flansch
befestigte Werkzeug durch das manuelle Anfahren gegen einen am entsprechenden
Raumpunkt befindlichen Gegenstand drückt.
-
Beim
Drücken gegen einen Gegenstand können die Kraft
am TCP bzw. die Momente in den Achsen nur dann ermittelt werden,
wenn die Antriebe den Roboterarm so verspannen, dass die gewünschten
Kräfte bzw. Momente auftreten. Diese Kräfte bzw. Momente
können dem Bediener beispielsweise über eine Anzeige
sichtbar gemacht, aber nicht vom ihm erfühlt oder durch
Führen vorgegeben werden.
-
Wird
der Roboter manuell geführt, dann wird die Kraft bzw. das
Drehmoment mit einem am Flansch befestigten Kraft- oder Drehmomentsensor ermittelt.
-
Nach
einer Variante des erfindungsgemäßen Verfahrens
werden die Soll-Kräften und/oder Soll-Drehmomenten durch
das manuelle Bewegen des Roboters ohne Kontakt zu einem Gegenstand bei
gleichzeitiger Positions- bzw. Posenregelung des Roboters eingestellt.
-
Um
jedoch die Aufgabenstellung zu lösen, eine Kraft am TCP
bzw. Momente in den Achsen durch einen Bediener durch manuelles
Führen vorgeben zu können, ist es für
diese Ausführungsform vorgesehen, dass der Roboter keine
geschlossene kinematische Kette mit der Umgebung bildet, sondern
diese offen gehalten wird, d. h. kein Gegenstand berührt
wird. Dazu wird der Roboter vom Bediener ungefähr in die
Pose gebracht, die für die gewünschte Aufgabe,
z. B. Polieren, erforderlich ist. Dazu kann der Roboter beispielsweise
einen halben Zentimeter oberhalb des Punktes/der Bahn/der Fläche
positioniert werden, an dem/an der ein Prozess auszuführen
ist. Vorausgesetzt, die Struktur des Roboters ist relativ, theoretisch
unendlich steif, dann kann der Bediener jetzt eine Verspannung des
Robotersystems dadurch herbeiführen, dass er versucht,
den Roboter durch Drücken und/oder Ziehen an Strukturteilen bzw.
am Flansch des Roboters zu bewegen, während der Roboter über
seine interne Achs- und/oder Positionsregelung dafür sorgt,
die gegenwärtige Pose oder Position beizubehalten. Auch
eine Positionsregelung auf Basis externer Sensorwerte ist denkbar. Die
Posen/Positionsregelung lässt den Bediener eine virtuelle
Gegenkraft spüren, vergleichbar mit der Kraft, die er spüren
würde, wenn er auf das Werkzeug auf das zu bearbeitende
Bauteil drücken würde (d. h. der Roboter steht
dabei quasi still). So ist es ihm möglich, die Kraft bzw.
die Momente zu teachen, die für den Prozess erforderlich
sind.
-
Eine
Variante des oben beschriebenen Verfahrens eignet sich für
die Aufzeichnung des Kraft-/Momentenverlaufs während des
manuellen Führens des Roboters (d. h. der Roboter steht
dabei nicht still). Dabei vollführt der Roboter kleine,
insbesondere vom Bediener kaum merkbare Testbewegungen, um herauszufinden,
in welchen Freiheitsgraden sich der Roboter noch bewegen kann. So
kann die Steifigkeit/Nachgiebigkeit während des Vormachens
eines Bearbeitungsprozesses erfasst werden.
-
Somit
ergibt sich ein Kräfte- oder Drehmomentprofil, das den
einzelnen Raumpunkten zugeordnete ist.
-
Für
das Ermitteln der Kräfte bzw. Drehmomente kann der Roboter
mit wenigstens einem Kraft- oder Drehmoment-Sensor versehen sein,
der die Kräfte bzw. Drehmomente misst. Der Kraft- oder Drehmomentsensor
kann insbesondere am Flansch des Roboters befestigt sein. Dann können
die vom Sensor abgegebenen Signale die aufgebrachten Kräfte
oder Drehmomente in kartesische Koordinatenwerten angeben. Diese
Werte können gegebenenfalls auch in achsweise Werte umgerechnet
werden.
-
Nach
einer Variante des erfindungsgemäßen Verfahrens
weist der Roboter eine Mehrzahl von Achsen auf, so dass für
wenigstens einen Raumpunkt die aufgebrachten Kräfte oder
Drehmo mente der Achsen gespeichert werden. Die aufgebrachten Kräfte
oder Drehmemoente in den Achsen können beispielsweise mit
in den Achsen des Roboters befestigten Kraft- oder Drehmomentsensoren
ermittelt werden. Von diesen Sensoren erzeugte Messwerte können
dann gegebenenfalls in kartesische Werte am Flansch oder am sogenannten
Tool Point Center des Roboters umgerechnet werden.
-
Umfasst
der Roboter elektrische Motoren für die Bewegung des Roboters,
dann können die vom Roboter ausgeübten Kräfte
bzw. Drehmomente auch über die elektrischen Ströme
der elektrischen Motoren ermittelt werden. Die elektrischen Ströme
ergeben insbesondere die von den Achsen aufgebrachten Kräfte
bzw. Drehmomente. Außerdem sind die elektrischen Ströme
je nach verwendetem Motorentyp proportional zu den aufgebrachten
Kräften bzw. Drehmomenten.
-
Die
Sollwerte für Kräfte und Drehmomente können
auch manuell eingetragen werden.
-
Nach
einer Ausführungsform des erfindungsgemäßen
Verfahrens ist die gespeicherte Kraft oder das gespeicherte Drehmoment
eine vom Roboter auszuübende obere Grenzkraft oder ein
vom Roboter auszuübendes oberes Grenzmoment.
-
Gemäß einer
weiteren Ausführungsform des erfindungsgemäßen
Verfahrens wird für wenigstens einen Raumpunkt zusätzlich
wenigstens die Stellung einer Achse gespeichert. Insbesondere können
die Stellungen aller Achsen gespeichert werden. Somit sind für
wenigstens einen Raumpunkt nicht nur die aufzubringenden Kräfte
oder Drehmomente, sondern auch eine für die Ansteuerung
der Raumpunkte mögliche Achsenstellung des Roboters abgespeichert.
-
Nach
einer weiteren Variante des erfindungsgemäßen
Verfahrens ist der Roboter bezüglich einer Mehrzahl von
Freiheitsgraden beweglich, und es werden für den wenigstens
einen Raumpunkt für einen ersten Teil der, Freiheitsgrade
des Roboters die ausgeübte Kraft oder das ausgeübte
Drehmoment und für einen vom ersten Teil der Freiheitsgrade
verschiedenen zweiten Teil der Freiheitsgrade die Ortskoordinaten
des Raumpunktes gespeichert, analog für die Achspositionen
und Achs-Kräfte und -Drehmomente.
-
Auf
der Steuervorrichtung läuft ein die Achsen des Roboters
steuerndes Rechnerprogramm. Die Ortskoordinaten bzw. die zum Zeitpunkt
der Speicherung augenblickliche Stellung der Antriebsachsen werden
z. B. im Programmquelltext oder in einer dem Rechnerprogramm zugeordneten
Datenliste gespeichert. Diese Stellung der Antriebsachsen kann in eine
kartesische Position und Orientierung des im Raum angefahrenen Raumpunktes,
ausgedrückt in der Lage des sogenannten Tool Center Point
des Roboters bezogen auf ein Basiskoordinatensystem, umgerechnet
werden. Diese kartesische Position (einschl. Zusatzinformationen
zur Auflösung von in der Regel mehreren möglichen
Achskonfigurationen, die alle dieselbe kartesische Position ergeben)
kann anstelle oder in Kombination mit den Achswinkeln abgelegt werden.
Dieser Tool Center Point kann sich beispielsweise am Flansch oder
einem anderen ausgewiesenen Punkt des Roboters, seines Werkzeuges (z.
B. Schweißspitze einer am Roboterflansch montierten Schweißzange)
oder Raumes (Schweißspitze einer im Raum befestigten Schweißzange)
befinden. Verschiedene Robotersteuerungen können sich beim Teachen
beispielsweise neben den Achsstellungen auch das verwendete Koordinatensystem,
das augenblicklich verwendete Werkzeug, die Position und die Orientierung
(Pose) des Tool Center Points merken.
-
Programmiert
die Person mit dem Handbedienungsgerät eine Folge von Raumpunkten,
können diese je nach Robotersteuerung auf unterschiedlichen
Bahnen erreicht werden. Bei PTP-Bahnen (Punkt-zu-Punkt Bahnen) bewegen
sich alle Achsen des Roboters dergestalt, dass die gewünschte
Pose auf einer Geraden im Achsraum erreicht wird. Bei allen übrigen
Bahnen folgt der Tool Center Point in erster Linie einem gewünschten
kartesischen Verlauf, also z. B. auf einer Geraden, Kreis- oder
Splinebahn im Raum. Auf dieser kartesischen Bahn kann auch ein Geschwindigkeitsverlauf,
z. B. zeitoptimal oder durch Angabe maximaler Geschwindigkeiten
und Beschleunigungen, programmiert werden.
-
Auch
können je nach verwendetem Werkzeug unterschiedliche Parameter
für dieses Werkzeug Punkt- bzw. bahnbezogen beispielsweise
zur Bearbeitung von Werkstücken gespeichert werden.
-
Nach
einer weiteren Ausführungsform des erfindungsgemäßen
Verfahrens werden zusätzlich folgende Verfahrensschritte
durchgeführt:
- – Festlegen
einer Bahn, auf der sich der Roboter nach seiner Programmierung
bewegen soll, und
- – Errechnen der vom Roboter auszuübenden Kraft
oder des vom Roboter auszuübenden Drehmoments während
der Bewegung entlang der Bahn aufgrund der für die Raumpunkte
ermittelten Kräfte oder Drehmomente.
-
Die
Aufgabe der Erfindung wird auch gelöst durch einen Roboter,
aufweisend
- – eine Mehrzahl von Antrieben,
- – eine Mehrzahl von von den Antrieben bewegbaren Achsen,
- – eine Vorrichtung zum Ermitteln einer vom Roboter
ausgeübten Kraft oder eines vom Roboter ausgeübten
Drehmoments und
- – eine zum Steuern der Antriebe vorgesehene Steuervorrichtung,
die aufgrund eines manuellen Anfahrens von wenigstens einem Raumpunkt
mit dem Roboter mittels der Vorrichtung zum Ermitteln der vom Roboter
ausgeübten Kraft oder des vom Roboter ausgeübten
Drehmoments beim Erreichen des Raumpunktes ermittelte Kräfte
oder Drehmomente speichert.
-
Der
erfindungsgemäße Roboter kann beispielsweise für
das Anfahren von wenigstens einem Raumpunkt manuell geführt
werden oder kann ein mit der Steuervorrichtung verbundenes manuelles Eingabegerät
aufweisen, mittels dessen der Roboter manuell bewegbar ist.
-
Die
Vorrichtung zum Ermitteln der vom Roboter ausgeübten Kraft
oder des vom Roboter ausgeübten Drehmoments ist beispielsweise
wenigstens ein Kraft- oder Drehmoment-Sensor, der z. B. am Flansch
oder in den Achsen des Roboters befestigt ist.
-
Weisen
nach einer Ausführungsform die Antriebe des erfindungsgemäßen
Roboters elektrische Motoren auf, kann die Vorrichtung zum Ermitteln
der vom Roboter ausgeübten Kraft oder des vom Roboter ausgeübten
Drehmoments derart eingerichtet sein, dass sie die Kraft oder das
Drehmoment mittels gemessener elektrischer Ströme der elektrischen Motoren
ermittelt.
-
Die
gespeicherte Kraft oder das gespeicherte Drehmoment kann eine vom
Roboter auszuübende obere Grenzkraft oder ein vom Roboter
auszuübendes oberes Grenzmoment sein.
-
Nach
einer Variante des erfindungsgemäßen Roboters
ist dessen Steuervorrichtung derart eingerichtet, dass sie für
wenigstens einen Raumpunkt zusätzlich die dazu gehörige
Stellung wenigstens einer Achse speichert. Die Steuervorrichtung
kann insbesondere derart eingerichtet sein, dass sie die Stellungen
aller Achsen speichert.
-
Der
erfindungsgemäße Roboter ist bezüglich einer
Mehrzahl von Freiheitsgraden, insbesondere bezüglich von
sechs Freiheitsgraden bewegbar und die Steuervorrichtung kann nach
einer Ausführungsform derart eingerichtet sein, dass sie
für den wenigstens einen Raumpunkt für einen ersten
Teil der Freiheitsgrade des Roboter die ausgeübte Kraft
oder das ausgeübte Drehmoment und für einen vom
ersten Teil der Freiheitsgrade verschiedenen zweiten Teil der Freiheitsgrade
die Ortskoordinaten des Raumpunktes speichert. Es ist auch möglich,
dass für den wenigstens einen Raumpunkt für einige
Freiheitsgrade die Position und die ausgeübte Kraft oder
das ausgeübte Drehmoment gespeichert wird.
-
Nach
einer weiteren Variante des erfindungsgemäßen
Roboters ist dessen Steuervorrichtung derart eingerichtet, dass
sie aufgrund einer festgelegten Bahn, auf der sich der Roboter nach
dem Anfahren von mehreren Raumpunkten bewegen soll, d. h. im Programmbetrieb,
vom Roboter auszuübende Kräfte oder Drehmomente
während der Bewegung entlang der Bahn aufgrund der für
die Raumpunkte ermittelten Kräfte oder Drehmomente errechnet.
-
Mit
dem erfindungsgemäßen Verfahren bzw. dem erfindungsgemäßen
Roboter ist es demnach möglich, neben oder anstelle von
insbesondere posenbezogenen Bahnverläufen, d. h. einem
Bahnverlauf des Tool Center Point des Roboters bezüglich dessen
Position und Orientierung im Raum, auch Kraft- und Drehmoment bezogene
Bahnverläufe in einem Roboterprogramm angeben zu können.
Dabei können die vom erfindungsgemäßen
Roboter im Programmbetrieb einzustellenden Kräfte und Momente gegebenenfalls
in sechs kartesischen bzw. allen achsspezifischen Freiheitsgraden
durch eine Person manuell in direkter Interaktion mit dem erfindungsgemäßen
Roboter vorgegeben werden. Die einzustellenden Kräfte und
Momente können auch durch Offline-Programmierung eingestellt
werden.
-
Analog
zur konventionellen reinen Posenvorgabe, d. h. einer Vorgabe der
Orientierung und Position im Raum des Tool Center Point mit keiner
weiteren Information, werden erfindungsgemäß für
bestimmte Raumpunkte Kräfte oder Momente durch das Anfahren
des Roboters vorgeben.
-
Die
Kräfte bzw. Drehmomente werden in der Steuerungsvorrichtung
des erfindungsgemäßen Roboters gespeichert. Die
Steuerungsvorrichtung kann derart ausgeführt sein, dass
sie für das Überführen des Roboters von
einem Punkt-/Kraft-Momentenprofil zum nächsten sorgt.
-
Zusätzlich
zum Kraft- oder Drehmomentprofil ist es weiterhin möglich,
einen zeitlichen Verlauf von Posen in Kombination mit Kräften
oder Momenten zu ermöglichen. Hierbei werden nicht nur
die Pose und Kräfte bzw. Momente am Tool Center Point an
den Achsen für die Raumpunkte einer Bewegung gespeichert,
sondern insbesondere auch für jeden Interpolationstakt.
Die Steuerungsvorrichtung sorgt dann für die Wiedergabe
einer so aufgezeichneten oder berechneten Bewegung.
-
Werden
die Kräfte bzw. Drehmomente achsenspezifisch gespeichert,
kann ein in der Steuerungsvorrichtung bereits hinterlegtes Koordinatensystem,
wie es bei einer lediglichen Speicherung der Koordinaten der Raumpunkte üblich
ist, verwendet werden. Eine der Achse des Koordinatensystems kann
insbeson dere mit der Drehachse zusammen fallen. Das Koordinatensystem
liefert dann zusätzlich den Drehsinn.
-
Bei
translatorischen Achsen kann die ausgeübte Kraft in Achsrichtung
z. B. mit der Konvention gespeichert werden, dass eine positive
Kraft die Achse in positive Richtung bewegt. Bei rotatorischen Achsen
kann das Drehmoment um die Achse z. B. mit der Konvention gespeichert
werden, dass ein positives Drehmoment eine Drehung der Achse im
mathematisch positiven Sinn bewirkt. Umfasst der Roboter mehrere
Achsen, können die Drehmomente der einzelnen Achsen mit τl,
..., τn bezeichnet werden.
-
In
Gelenken des Roboters wirkende Kräfte orthogonal zur Bewegungsrichtung
(bei translatorischen Achsen) bzw. Kippmomente (bei rotatorischen Achsen)
brauchen nicht notwendigerweise gespeichert oder können
auf Null gesetzt werden, weil die Übertragung von Kräften
bzw. Momenten in diesen Richtungen in der Regel nicht durch die
Achssteuerung beeinflusst werden kann.
-
Bei
einer Speicherung der Drehmomente oder Kräfte in kartesischen
Koordinaten kann ebenfalls ein Koordinatensystem definiert und die
Kräfte bzw. Drehmomente mit der Konvention abgelegt werden,
dass eine positive Kraft in Richtung der Achsen kartesischen Koordinatensystems
bzw. ein positives Drehmoment um eine Achse des kartesischen Koordinatensystems
eine Bewegung in positive Richtung bzw. eine Drehung in positiver
Richtung um diese Achse bewirkt. Mögliche Bezeichnungen
sind: fx, fy, fz, nx, ny, nz. Insbesondere können Drehmomente wie
in der Physik üblich den Achsen zugeordnet sein. Dies vermeidet
Singularitätsprobleme bei den in der Robotik gebräuchlichen
Orientierungsbeschreibungen.
-
Es
müssen nicht notwendigerweise alle Kraft- oder Drehmomentkomponenten
für die einzelnen Raumpunkte ermittelt oder gespeichert
werden. Es ist z. B. auch möglich, nur Kraft- oder Drehmomentkomponenten
in wenigstens einer vorbestimmten Richtung zu speichern. Beim Anfahren
eines solchen Raumpunktes kann dann für die Richtungen,
für die keine Kraft bzw. kein Drehmoment gespeichert wird,
die Position mit Standard-Lageregelung angefahren werden. Dies ist
z. B. vorteilhaft für Anwendungen, bei denen z. B. kraftabhängige
Bahnabweichungen in einigen Richtungen erforderlich sind, Abweichungen
in den orthogonalen Richtungen aber einen Fehlerzustand darstellen.
-
Die
Struktur zum Speichern der Kräfte oder Drehmomente kann
um Elemente ergänzt werden, die angeben, wann die gewünschten
Kräfte oder Drehmomente als erreicht gelten. Je nach Anwendung
kann dies bedeuten, dass die Kraft bzw. das Moment erstmals (betraglich) überschritten
wird, oder dass die Kraft bzw. das Moment mit einer einstellbaren
Toleranz für eine gewisse Zeit vorliegt.
-
Weiterhin
können Fehlerkorridore bzw. -bereiche bezogen auf die abgespeicherte
Position und/oder den gespeicherten Kräften bzw. Drehmomenten
angegeben werden. Dies kann beispielsweise dann erforderlich sein,
wenn der Roboter nicht unbedingt einen Ruhezustand erreichen kann
und beispielsweise versucht, an einem Punkt im Raum eine bestimmte
Kraft aufzubringen. Solange am Roboter kein Gleichgewicht bezogen
auf die Summe aller Kräfte und Momente herrscht, wird sich
der Roboter bewegen. Die anzugebenden maximalen Fehlerwerte können
als Schranke verwendet werden, um den Roboter daran zu hindern,
einen vorgegeben Bereich zu verlassen. Dieser Bereich kann beispielsweise
bezogen sein auf Position und/oder Orientierung des Tool Center
Point im Raum, auf Kräfte oder Momente in der Roboterstruktur
oder auf Richtung und Größe von extern auf den
Tool Center Point wirkenden Kräften oder Momente.
-
Eine
Möglichkeit, einen Fehlerkorridor oder -bereich vorzugeben,
ist beispielsweise für die Kräfte oder Drehmomente
eines bestimmten Raumpunktes nicht die genauen Ortskoordinaten dieses
Raumpunktes abzuspeichern, sondern einen geometrischen (dreidimensionalen)
Bereich z. B. in Form einer Kugel im dreidimensionalen Raum um den
relevanten Raumpunkt zu definieren. Dies erfolgt z. B. analog im
Orientierungsraum, im Raum der Kräfte in xyz-Richtung oder
Momente um xyz-Achsen, mit einem vom Benutzer zu definierenden Fehlerradius. Gerät
der Roboter beim Versuch, diesen Raumpunkt mit der gewünschten
Kraft anzufahren, außerhalb des vorgegebenen Fehlerbereichs,
dann kann der Roboter automatisch angehalten werden.
-
Weitere
Möglichkeiten, Fehlerbereiche vorzugeben, ergeben sich
aus der Beschreibung von werkzeugbezogenen Koordinatensystemen,
um die herum oder in deren Relation Fehlerbereiche in Form von geometrischen
Objekten, z. B. Linien, Flächen, wie Ebenen, Rechtecke,
Trapeze, oder Volumina, wie Kugeln, Zylinder oder Quader, definiert
werden.
-
Analog
zum Vorgeben eines Fehlerbereiches, bei dessen Überschreitung
der Roboter z. B. in einen Fehlerzustand wechselt, kann ein Aktionsbereich
definiert werden, innerhalb dessen der Roboter seine augenblickliche
Operation durchführt. Innerhalb dieses Aktionsbereiches
können verschiedene Zustände bezogen auf Positionen,
Orientierungen, Kräfte oder Momente definiert werden, deren
Erreichen dafür sorgt, dass die augenblickliche Operation beendet
und zur nächsten Programmzeile und damit zur nächsten
Aktion gewechselt wird.
-
So
ist es möglich, relativ komplexe Vorgänge zu teachen,
bei denen der Roboter zwischen verschiedenen Aktionsbereichen und
Zuständen wechselt.
-
Das
erfindungsgemäße Verfahren kann besonders vorteilhaft
genutzt werden, um haptische Eindrücke zu realisieren.
-
Um
eventuell die gewünschte Bahn zu erhalten, auf der sich
der Roboter im Programmbetrieb bewegen soll, können die
den Raumpunkten zugeordneten Kräfte bzw. Drehmomente überschliffen
werden. Dieses Überschleifen kann ähnlich einem Überschleifen
von ermittelten Raumpunkten zu einer Bahnkurve erfolgen. So ist
es möglich, die einzelnen Raumpunkte z. B. entsprechend
einer Linear-, Zirkular-, Spline- oder Punkt-zu-Punkt-Bewegung zu
verbinden und durch "Überschleifen" z. B. mit Polynomkurven
zu einer glatten Kontur zu verbinden.
-
Ausführungsbeispiele
der Erfindung sind exemplarisch in den beigefügten schematischen
Zeichnungen dargestellt. Es zeigen:
-
1A–1F mehrere
Stadien eines Roboters während einer Programmierung,
-
2 ein
Diagramm zur Veranschaulichung einer Berechnung eines Bewegungsablaufs
aufgrund einer Programmierung,
-
3 ein
das erfindungsgemäße Verfahren erläuterndes
Flussdiagramm und
-
4A–4C, 5 Szenarien
zur Veranschaulichung eines nachgiebigen Regelungsverfahren.
-
Die 1A–1F zeigen
mehrere Stadien eines 6-Achs-Knickarm Industrieroboters R während einer
Programmierung, während derer eine bestimmte Kraft und/oder
Drehmoment-Charakteristik für den Industrieroboter R festgelegt
wird, die dieser bei einer Anwendung aufweisen soll.
-
Der
in den 1A–1F dargestellte
Roboter R weist mehreren Achsen 1–6,
mehrere Hebeln 7–10 und einen Flansch
F auf, an dem ein Greifer 18 befestigt ist. Jede der Achsen 1–6 wird
im Falle des vorliegenden Ausführungsbeispiels mit einem
elektrischen Motor 11–16 bewegt, wobei
die Motoren 11–16 in nicht dargestellter
Weise mit einem Steuerrechner 17 elektrisch verbunden sind,
sodass der Steuerrechner 17 bzw. ein auf dem Steuerrechner 17 laufendes
Rechnerprogramm die Motoren 11–16 derart ansteuern
kann, sodass die Position und Orientierung des Flansches F und somit
des am Roboter R befestigten Greifers 18 im Wesentlichen
frei im Raum ausgerichtet werden kann.
-
Im
Falle des vorliegenden Ausführungsbeispiels ist der Roboter
R dafür vorgesehen, einen Kolben 19 in einen Spalt 21 eines
Metallblocks 20 zu fügen. Die Position des Metallblocks
ist nicht in jedem Prozesszyklus identisch, so dass kein rein positionsbasiertes
Teach-In erfolgen kann. Der Metallblock 20 kann beispielsweise
während späterer Fertigungsschritte für
die Fertigung eines Zylinders verwendet werden. Damit der im Betrieb
befindliche Roboter R den Kolben 19 fügen kann,
muss der Roboter R ein den Roboter R geeignetes steuerndes Steuerprogramm
aufweisen, das auf dem Steuerrechner 17 läuft.
-
Dieses
Steuerprogramm wird im Falle des vorliegenden Ausführungsbeispiels
mittels Teach-In Programmierung erstellt.
-
Während
der Teach-In Programmierung bewegt eine in den Figuren nicht näher
dargestellte Person zunächst den Roboter R mittels eines
mit dem Steuerrechner 17 verbundenen Eingabegeräts,
z. B. einer 6D-Maus, eines Joysticks oder eines in den 1A–1F dargestellten
Handhabungsgerätes 22 derart, dass die Position
und Orientierung des Greifers 18 mit gegriffenem Kolben 19 frei
im Raum angefahren werden können. Dies wird erreicht, indem
der Steuerrechner 17 bzw. ein auf dem Steuerrechner 17 laufendes
Rechnerprogramm aufgrund von Eingaben in das Handhabungsgerät 22 die
elektrischen Motoren 11–16 derart ansteuert,
so dass die Achsen 1–6 sich entsprechend
der gewünschten Position und Orientierung des Greifers 18 bewegen.
-
Im
Falle des vorliegenden Ausführungsbeispiels umfasst der
Roboter R einen am Flansch F befestigten Kraftsensor 23,
der auf den Flansch F bzw. Greifer 18 wirkende Kräfte
misst. Der Kraftsensor 23 ist in nicht dargestellter Weise
mit dem Steuerrechner 17 verbunden und überträgt
den gemessenen Kräften zugeordnete Signale an den Steuerrechner 17. Im
Falle des vorliegenden Ausführungsbeispiels misst der Kraftsensor 23 Kräfte
in und quer zur Längsachse des Kolbens 19.
-
Im
Falle des vorliegenden Ausführungsbeispiels bewegt die
das Handhabungsgerät 22 bedienende Person während
der Teach-In Programmierung den Greifer 18 in Richtung
des Metallblocks 20, bis der Kolben 19 eine Oberfläche 24 des
Metallblocks 20 berührt, wie dies in der 1B gezeigt
ist. Beim Auftreffen des Kolbens 19 auf den Metallblock 20 wirkt
auf den Kolben 19 und auf den Greifer 18 eine
Kraft in Bewegungsrichtung des Roboters R. Diese Kraft bzw. der
Kraftanstieg beim Auftreffen auf den Metallblock 20 wird
mit dem Kraftsensor 23 gemessen und der Person mittels
eines mit dem Steuerrechner 17 verbundenen Sichtgerät 25 angezeigt. Daraufhin
stoppt die Person mittels des Handhabungsgerätes 22 die
Bewegung des Roboters R und speichert die momentan auf den Kolben 18 bzw. Greifer 18 und
somit auf den Roboter R wirkende Kraft im Steuerrechner 17 durch
Betätigen einer in den Figuren nicht näher dargestellten
Eingabetaste des Handhabungsgerätes 22.
-
Anschließend
steuert die Person mittels des Handhabungsgerätes 22 den
Roboter R derart, dass dieser den Kolben 19 mit im Wesentlichen
konstanter Kraft in Richtung des Spalts 21 bewegt, wie
dies in den 1B und 1C dargestellt
ist. Trifft der Kolben 19 auf den Spalt 21, 1C,
dann ändert sich die auf den Kolben 19 und somit
auf den Roboter R wirkende Kraft bzw. Drehmoment, was wiederum mit dem
Kraftmesser 23 detektiert wird. Die Person kann diesen
Zustand eventuell auch an einem Nachgeben oder einer Orientierungsänderung
des Kolbens 19 erkennen.
-
Die
auf den Roboter R wirkende Kraft zum Zeitpunkt des in de 1C gezeigten
Zustands, d. h. bei Erreichen des Spalts 21, wird optional
der Person auf dem Sichtgerät 25 gezeigt. Daraufhin
betätigt die Person die Eingabetaste des Handhabungsgerätes 22,
wodurch die auf den Roboter R wirkende Kräfte bzw. Drehmomente
für den in der 1C gezeigten Zustand
im Steuerrechner 17 gespeichert werden.
-
Nach
dem Abspeichern des Kraft bzw. Momentendzustands des in der 1C dargestellten Zustands
steuert die Person den Roboter R mittels des Handhabungsgerätes 22 derart
an, dass sich der Kolben 19 aufrichtet, bis er im Wesentlichen
senkrecht zur Oberfläche 24 des Metallblocks 24 ausgerichtet
ist und in den Spalt 21 gedrückt werden kann. Für
diesen Zustand speichert die Person durch Drücken der Eingabetaste
des Handhabungsgerätes 22 wieder die auf den Roboter
R wirkenden Kräfte.
-
Anschließend
steuert die Person mittels des Handhabungsgerätes 22 den
Roboter R derart, dass dieser den Kolben 19 entlang eines
Kraftkorridors in den Spalt 21 drückt, wie dies
in der 1D gezeigt ist. Der Kraftkorridor
ist im Falle des vorliegenden Ausführungsbeispiels dadurch
gekennzeichnet, dass auf den Kolben 19 möglichst
geringe Kräfte wirken. Dieser Zustand wird wiederum mit
dem Steuerrechner 17 durch Drücken der Eingabetaste
des Handhabungsgerätes 22 gespeichert.
-
Der
Roboter R drückt den Kolben 19 solange in den
Spalt 21, bis der Kolben 19 die untere Begrenzung
des Spalts 21 erreicht, wie dies in de 1E veranschaulicht
ist. Dadurch ist der Kolben 19 im Metallblock 20 gefügt.
-
Das
Erreichen der unteren Begrenzung des Spalts 21 erkennt
die Person aufgrund der zurückgelegten Strecke des Kolbens
19 beim Fügen oder durch einen Anstieg der auf den Roboter
R wirkenden Kraft beim Auftreffen. Die für das Fügen
im Endzustand notwendige Kraft wird wiederum im Steuerrechner 17 durch
Drücken der Eingabetaste des Handhabungsgerätes 22 gespeichert.
-
Abschließend
wird der Greifer 18 geöffnet und vom Kolben 19 entfernt, 1F,
und die Teach-In Programmierung ist beendet. Bei einem späteren
Fügen weiterer Kolben in die Spalte eines Metallblocks
steuert das auf dem Steuerrechner 17 laufende Rechenprogramm
den Roboter R derart an, dass der Roboter R diese Kolben in ihre
Metallblöcke gemäß der während
der eben beschriebenen Teach-In Programmierung festgelegten Kraft
bzw. Momenten-Charakteristik bewegt.
-
Im
vorab beschriebenen Ausführungsbeispiel werden bei der
Teach-In Programmierung nur die Kräfte bzw. Momente abgespeichert.
Zusätzlich können bei der Teach-In Programmierung auch
die entsprechenden Stellungen des Roboters R abgespeichert werden,
indem beispielsweise für jeden Zustand die Achsenstellungen
der Achsen 1–6 ebenfalls abgespeichert
werden. Des Weiteren können Fehlerbereiche bzw. Toleranzbereich
bezüglich der Achsenstellungen festgelegt werden, wodurch
insbesondere nachgiebige Regelverfahren für die Regelung
des Roboters R verwendet werden können.
-
Im
beschriebenen Ausführungsbeispiel werden die Kräfte
und eventuell die kartesischen bzw. achsenspezifischen Positionen
der Achsen 1–6 zu diskreten Zuständen
abgespeichert.
-
2 veranschaulicht
ein Überschleifen eines während einer Teach-In
Programmierung gespeicherten Kraft-Momentenverlaufs. Die 3 zeigt ein
dazu entsprechendes Flussdiagramm.
-
Die
zu einzelnen Zeitpunkten ermittelten Kräfte bzw. Momente
während der Teach-In Programmierung könne durch
ein Überschleifen mit beispielsweise Polynomkurven zu einer
glatten Kontur verbunden werden.
-
Bei
dem in der 2 veranschaulichten Ausführungsbeispiels
soll ein Roboter, beispielsweise der in der 1 gezeigte
Roboter R, ein Bauteil B mit einem anstelle des Greifers 18 am
Roboter R befestigten Werkzeug bearbeiten. Im Falle des vorliegenden
Ausführungsbeispiels soll der Roboter R derart angesteuert
werden, dass sich das Werkzeug in den kartesischen Richtungen x,
y eines raumfesten Systems, z. B. einem Weltkoordinatensystem mit
den Koordinaten x und y, auf einer Kurve K, die durch Punkte P0,
P1a, P1b, P2a, P2b, P3a, P3b und P4 definiert ist, bewegt. Die Bewegung
beginnt am Punkt P0, an dem das Werkzeug auf das Bauteil B keine Kraft
ausüben soll. Beim Erreichen des Punktes P1b soll das Werkzeug
auf das Bauteil B in x-Richtung keine Kraft und in negativer y-Richtung
eine konstante Kraft ausüben. Eine solche Bewegung ist
z. B. geeignet beim Entgraten des Bauteils B mit dem Werkzeug.
-
Während
der Bewegung vom Punkt P1b zum Punkt P2a soll das Werkzeug auf das
Bauteil B in x-Richtung keine Kraft und in negativer y-Richtung die
konstante Kraft ausüben.
-
Zwischen
den Punkten P2a und P2b soll der Roboter R das Werkzeug auf einem
Kreissegment bewegen, wobei das Werkzeug auf das Bauteil B die konstante
Kraft in radialer Richtung ausüben soll. Die in radialer
Richtung wirkende konstante Kraft soll Komponenten in negativer
x- und negativer y-Richtung haben.
-
Zwischen
den Punkten P2b und P3a soll das Werkzeug auf das Bauteil B die
konstante Kraft in negativer x-Richtung und in y-Richtung keine
Kraft ausüben. Wenn das Bauteil den Punkt P4 erreicht,
soll auf das Bauteil keine Kraft mehr wirken.
-
Dieser
Kraft-Verlauf wird im Falle des vorliegenden Ausführungsbeispiels
mittels folgender Teach-In Programmierung im Steuerrechner 17 programmiert:
Der
Roboter R bzw. das mit dem Roboter R bewegte Werkzeug wird an den
Punkt P0 mittels des Handhabungsgerätes 22 herangefahren,
Schritt S1 des in der 3 gezeigten Flussdiagramms.
Am Punkt P0 wirkt auf das Werkzeug keine Kraft. Dies wird im Steuerrechner 17 gespeichert,
Schritte S2 und S3 des in der 2 gezeigten
Flussdiagramms.
-
Anschließend
wird das Werkzeug mit dem Roboter R und mit Hilfe des Handhabungsgerätes 22 an
einen Punkt P1 herangefahren, der horizontal mit den Punkten P1b
und P2b verbunden ist, Schritt S1 des in der 3 gezeigten
Flussdiagramms.
-
Am
Punkt P1 drückt der Roboter R das Werkzeug auf eine Fläche
derart, dass das Werkzeug die konstante Kraft in negativer y-Richtung
und keine Kraft in x-Richtung ausübt. Diese Information wird
im Steuerrechner 17 abgespeichert, Schritte S2 und S3 des
in der 3 gezeigten Flussdiagramms.
-
Anschließend
wird der Roboter R mit Hilfe des Handhabungsgerätes 22 derart
bewegt, dass das Werkzeug einen Punkt P2 erreicht, Schritt S1 des
in der 3 gezeigten Flussdiagramms. Der Punkt P2 befindet
sich auf einer Verbindungslinie zwischen den Punkten P1, P1b und
P2a und auf einer Verbindungslinie zwischen den Punkten P2b und P3a.
Am Punkt P2 drückt der Roboter R das Werkzeug auf eine
Fläche derart, dass das Werkzeug ebenfalls die konstante
Kraft in negativer y-Richtung und keine Kraft in x-Richtung ausübt.
Diese Information wird im Steuerrechner 17 abgespeichert,
Schritte S2 und S3 des in der 3 gezeigten
Flussdiagramms.
-
Danach
wird der Roboter R mit Hilfe des Handhabungsgerätes 22 derart
bewegt, dass das Werkzeug am Punkt P2 derart auf eine Fläche
drückt, dass das Werkzeug die konstante Kraft in negativer x-Richtung
und keine Kraft in y-Richtung ausübt. Diese Information
wird im Steuerrechner 17 abgespeichert, Schritte S2 und
S3 des in der 3 gezeigten Flussdiagramms.
-
Anschließend
wird der Roboter R mit Hilfe des Handhabungsgerätes 22 derart
bewegt, dass das Werkzeug einen Punkt P3 erreicht, Schritt S1 des
in der 3 gezeigten Flussdiagramms. Der Punkt P3 befindet
sich auf der Verbindungslinie zwischen den Punkten P2b und P3a und
auf einer horizontal ausgerichteten Verbindungslinie, die die Punkte
P3 und P4 verbindet. Am Punkt P3 drückt der Roboter R das
Werkzeug auf eine Fläche derart, dass das Werkzeug die
konstante Kraft in negativer x-Richtung und keine Kraft in y-Richtung
ausübt.
-
Diese
Information wird im Steuerrechner 17 abgespeichert, Schritte
S2 und S3 des in der 3 gezeigten Flussdiagramms.
-
Danach
wird der Roboter R mit Hilfe des Handhabungsgerätes 22 derart
bewegt, dass das Werkzeug den Punkt P4 erreicht, Schritt S1 des
in der 3 gezeigten Flussdiagramms. Am Punkt P4 übt
das Werkzeug keine Kraft aus. Dies wird im Steuerrechner 17 gespeichert,
Schritte S2 und S3 des in der 2 gezeigten
Flussdiagramms.
-
Um
aus den gespeicherten Kräften während der Teach-In
Programmierung bei den Punkten P0–P4 den gewünschten
Kräfte-Verlauf entlang der Kurve K zu erhalten, wird im
Steuerrechner 17 die durch die Punkte P0, P1a, P1b, P2a,
P2b, P1a, P3b und P4 definierte Kurve K festgelegt, P1a, P1b, P2a, P2b,
P1a, P3b dabei durch Überschleifen, Schritt S4 des in der 3 gezeigten
Flussdiagramms, und die auf das Bauteil B wirkenden Soll-Kräfte
aufgrund der zu den Punkten P0–P4 gespeicherten Kräfte
interpoliert bzw. überschliffen, Schritt S5 des in der 3 gezeigten
Flussdiagramms.
-
Aufgrund
dieses Überschleifens errechnet der Steuerrechner 17 bzw.
ein auf dem Steuerrechner 17 laufendes Rechnerprogramm,
dass das Werkzeug zwischen den Punkten P1b und P2a die konstante
Kraft in negativer Y-Richtung und zwischen den Punkten P2b und P1a
die konstante Kraft in negativer x-Richtung ausüben soll.
Aufgrund des Verlaufs der Kurve K zwischen den Punkten P2a und P2b
auf einem Kreissegment errechnet der Steuerrechner 17 das
auf das Bauteil wirkende Kraftprofil derart, dass auf das Werkzeug
die konstante Kraft radial zum Kreissegment ausübt, die
negative Kraftkomponente in x- und y-Richtung aufweist.
-
Zwischen
den Punkten P0, P1a und P1b errechnet das auf dem Steuerrechner 17 laufende Rechnerprogramm,
dass sich die auf das Bauteil B wirkende Kraft langsam aufbauen
soll, bis die Kraft am Punkt P1b derart aufgebaut ist, dass sie
die konstante Kraft in negativer y-Richtung aufweist.
-
Zwischen
den Punkten P3a und P4 errechnet das auf dem Steuerrechner 17 laufende
Rechnerprogramm, dass die auf das Bauteil B wirkende Kraft langsam
abnimmt, bis sie den Wert Null erreicht, wenn das Bauteil B am Punkt
P4 angekommen ist.
-
Zusätzlich
können noch die Achsenstellungen der Achsen 1–6 für
die Punkte P0, P1, P2, P3 und P4 im Steuerrechner 17 gespeichert
werden.
-
Im
Falle des vorliegenden Ausführungsbeispiels berechnet ferner
das auf dem Steuerrechner 17 laufende Rechnerprogramm die
Achsenstellungen der Achsen 1–6 derart,
dass das Werkzeug für die Kraftaufwendung geeigneten Orientierungen
und Positionen im Raum aufweist.
-
Beim Überschleifen
von Kräften in den kartesischen Richtungen des Weltkoordinatensystems kann
derselbe Überschleifalgorithmus für die in x-,
y- und z-Richtung wirkenden Kraftkomponenten verwendet werden, die
Kräfte werden aber immer auf die aktuelle Position des
Werkzeugkoordinatensystems bezogen.
-
Beim Überschleifen
von Momenten um kartesischen Richtungen z. B. des Weltkoordinatensystems
gibt der Überschleifalgorithmus der Steuerung für
jeden Zeitpunkt die Orientierung des Werkzeugs vor. Die Momente
in x-, y- und z-Richtung werden nach demselben Algorithmus überschliffen,
der für die Kraft- oder Orientierungskomponenten verwendet
wird. Diese Momentenverläufe werden dann im gewünschten
Koordinatensystem aufgebracht.
-
Beim Überschleifen
von achsspezifischen Kräften und Momenten können
für ein Überschleifen von achsspezifischen Bewegungen
bekannte Algorithmen als Grundlage verwendet werden.
-
Im
Falle des anhand der 2 und 3 obenstehend
beschriebenen Ausführungsbeispiels wird der Kraft-Verlauf
bestimmt, indem der Roboter R das Werkzeug während der
Teach-In Programmierung gegen eine Fläche drückt.
-
Gemäß einem
ebenfalls anhand der 2 und 3 nachfolgend
beschriebenen Ausführungsbeispiels wird der Kraft-Verlauf
mittels folgender Teach-In Programmierung im Steuerrechner 17 programmiert:
Der
Roboter R bzw. das mit dem Roboter R bewegte Werkzeug wird an den
Punkt P0 mittels des Handhabungsgerätes 22 oder
durch manuelles Führen des Roboters R, wie z. B. manuelles
Ziehen oder Drücken am Roboter R, herangefahren bzw. herangebracht,
ohne eine Fläche oder einen Gegenstand zu berühren,
Schritt S1 des in der 3 gezeigten Flussdiagramms.
Am Punkt P0 wirkt auf das Werkzeug keine Kraft. Dies wird im Steuerrechner 17 gespeichert,
Schritte S2 und S3 des in der 3 gezeigten
Flussdiagramms.
-
Anschließend
wird das Werkzeug mit dem Roboter R und mit Hilfe des Handhabungsgerätes 22 oder
durch manuelles Führen an den Punkt P1 herangefahren bzw.
herangebracht, ohne eine Fläche oder einen Gegenstand zu
berühren, Schritt S1 des Flussdiagramms. Am Punkt P1 wird
die gewünschte Pose des Roboters R festgelegt und anschließend am
Roboter R derart manuell gezogen oder gedrückt, dass das
Werkzeug bzw. der Roboter R die konstante Kraft in negativer y-Richtung
und kei ne Kraft in x-Richtung ausübt. Diese Information
wird im Steuerrechner 17 abgespeichert, Schritte S2 und
S3 des Flussdiagramms.
-
Anschließend
wird der Roboter R mit Hilfe des Handhabungsgerätes 22 oder
durch manuelles Führen des Roboters R derart bewegt, dass
das Werkzeug den Punkt P2 erreicht, ohne einen Gegenstand oder eine
Fläche zu berühren, Schritt S1 des Flussdiagramms.
Am Punkt P2 wird die gewünschte Pose des Roboters R eingestellt
und manuell am Roboter R gedrückt oder gezogen, dass das
Werkzeug bzw. der Roboter R ebenfalls die konstante Kraft in negativer
y-Richtung und keine Kraft in x-Richtung ausübt. Diese
Information wird im Steuerrechner 17 abgespeichert, Schritte
S2 und S3 des Flussdiagramms.
-
Danach
wird am Roboter manuell derart gezogen oder gedrückt, dass
der Roboter R am Punkt P2 eine Kraft ausübt, dass das Werkzeug
bzw. der Roboter R die konstante Kraft in negativer x-Richtung und
keine Kraft in y-Richtung ausübt. Diese Information wird
im Steuerrechner 17 abgespeichert, Schritte S2 und S3 des
Flussdiagramms.
-
Anschließend
wird der Roboter R mit Hilfe des Handhabungsgerätes 22 bzw.
durch manuelles Führen derart bewegt, dass das Werkzeug
den Punkt P3 erreicht, ohne einen Gegenstand zu berühren, Schritt
S1 des Flussdiagramms. Am Punkt P3 wird manuell derart am Roboter
R gezoden oder gedrückt, dass das Werkzeug bzw. der Roboter
R die konstante Kraft in negativer x-Richtung und keine Kraft in y-Richtung
ausübt. Diese Information wird im Steuerrechner 17 abgespeichert,
Schritte S2 und S3 des Flussdiagramms.
-
Danach
wird der Roboter R mit Hilfe des Handhabungsgerätes 22 bzw.
durch manuelles Führen derart bewegt, dass das Werkzeug
den Punkt P4 erreicht, Schritt S1 des Flussdiagramms.
-
Am
Punkt P4 übt das Werkzeug keine Kraft aus. Dies wird im
Steuerrechner 17 gespeichert, Schritte S2 und S3 des Flussdiagramms.
-
Um
aus den gespeicherten Kräften während der Teach-In
Programmierung bei den Punkten P0–P4 den gewünschten
Kräfte-Verlauf entlang der Kurve K zu erhalten, wird im
Steuerrechner 17 die durch die Punkte P0, P1a, P1b, P2a,
P2b, P3a, P3b und P4 definierte Kurve K festgelegt, P1a, P1b, P2a, P2b,
P3a, P3b dabei durch Überschleifen, Schritt S4 des Flussdiagramms,
und die auf das Bauteil B wirkenden Soll-Kräfte aufgrund
der zu den Punkten P0–P4 gespeicherten. Kräfte
interpoliert bzw. überschliffen, Schritt S5 des Flussdiagramms.
-
Im
Programmbetrieb, d. h. nach dem Abschluss der Programmierung des
Roboters R kann dieser insbesondere mit sogenannten nachgiebigen Regelungsverfahren,
wie z. B. Momentenbetrieb, Steifigkeitsregelung, Impedanzregelung
oder Admittanzregelung, betrieben werden. Diesen Regelungsverfahren
ist gemeinsam, dass im Gegensatz zu reinen Lageregelungen neben
einer Positionsvorgabe Grenzen für Kräfte und
Momente vorgegeben werden können, die zum Erreichen einer
Positionsvorgabe nicht überschritten werden dürfen.
Die 4A–4C veranschaulichen
einen solchen Betriebsmodus.
-
Die 4A–4C zeigen
jeweils ein am Flansch F des Roboters R befestigtes Werkzeug 41 mit
einer Spitze 42 und ein Bauteil 43 mit einer dem Werkzeug 41 zugewandten
Oberfläche 44.
-
Im
Falle des vorliegenden Ausführungsbeispiels wurde während
der Programmierung des Steuerrechners 17 der Roboter R
derart manuell eingestellt, dass die Spitze 42 des Werkzeugs 41 einen vorbestimmten
Raumpunkt mit einer bestimmten Kraft angefahren hat. Der Raumpunkt
wird im Falle des vorliegenden Ausführungsbeispiels in
kartesischen Kordnieten beschrieben und hat die Koordinaten x0, y0 und z0. Im Steuerrechner 17 wurden im
Falle des vorliegenden Ausführungsbeispiels die vom Roboter
R aufgebrachte Kraft und die Ortkoordinaten des angefahrenen Raumpunktes
gespeichert, wobei jedoch für die x-Koordinate ein Toleranzband
um die Soll-Koordinate x0 gelegt wurde.
-
Im
Programmbetrieb, d. h. nach Beendigung der Programmierung des Roboters
R, soll der Roboter R nacheinander mehrere Bauteile 43 mit
dem Werkzeug 41 bearbeiten. Zu diesem Zweck sollen die
Bauteile 43 jeweils derart positioniert werden, dass sie
gemäß dem vorab festgelegten Raumpunkt ausgerichtet
sind. Aufgrund von Toleranzen, bedingt z. B. durch unterschiedlichen
Dicken der Bauteile 43 oder einer relativ ungenauen Positionierung,
kann es sein, dass die Bauteile 43 nicht genau bezüglich
ihrer x- Koordinate positioniert sind. So zeigen die 4A und 4B das
Bauteil 43 leicht nach rechts versetzt bezüglich
ihrer Sollposition und der Zeichenebene. Die 4C zeigt
das Bauteil 43 exakt positioniert.
-
Wäre
der Roboter R ein konventioneller Roboter, d. h. wären
lediglich die Raumkoordinaten der anzufahrenden Sollposition in
der Steuervorrichtung 17 programmiert, dann würde
die Spitze 42 des Werkzeugs 41 das in der 4A gezeigte
Bauteil 43 überhaupt nicht erreichen und die Oberfläche 44 des in
der 4B gezeigten Bauteils 43 zwar erreichen, jedoch
nicht die notwendige Kraft auf das Bauteil 43 ausüben.
Nur das exakt positionierte und in der 4C gezeigte
Bauteil 43 wird von der Spitze 42 des Werkzeugs 41 derart
erreicht, dass das Werkzeug die erforderliche Kraft auf das Bauteil 43 ausübt.
Dieser konventionelle Betriebsmodus entspricht einer konventionellen
Lageregelung.
-
Im
Falle des vorliegenden Ausführungsbeispiels ist jedoch
die mit der Spitze 42 des Werkzeugs 41 anzufahrende
Position in x-Richtung mit dem Toleranzband um die x0 Koordinate
im Steuerrechner 17 abgelegt. Der Roboter R bewegt demnach
im Falle des vorliegenden Ausführungsbeispiels das Werkzeug 41 in
Richtung eines Pfeils 45 bis der Roboter R die während
der Programmierung gespeicherte Kraft in x-Richtung aufbringt, da
dann die Spitze 42 des Werkzeugs 41 die Oberfläche 44 mit
der abgespeicherten Kraft erreicht hat. Demnach erreicht die Spitze 42 die
Oberfläche 44 des Bauteils 43 und übt
auf dieses die abgespeicherte Kraft aus, auch wenn das Bauteil 42 ungenau
positioniert ist.
-
Erreicht
die Spitze 42 des Werkzeugs 41 das Bauteil 43,
dann übt das Werkzeug 41 die vorgegebene Kraft
auf das Bauteil 43 aus, das sich, wie in der 5 dargestellt,
leicht verformen kann.
-
Im
Falle des vorliegenden Ausführungsbeispiels wird kein Verlauf
der Sollkraft geplant, sondern der Roboter bewegt sich unter Berücksichtigung
programmierter Grenzen solange, bis die gewünschte Kraft
erreicht ist. Die Bewegung kann bevorzugt in Momentenbetrieb, Steifigkeitsregelung,
Impedanzregelung oder Admittanzregelung erfolgen, alternativ in Lageregelung,
bis der Kontakt mit dem Bauteil erkannt wird, und ab dann z. B.
in Kraftregelung.
-
Bei
den beschriebenen Ausführungsbeispielen werden die Kräfte
oder Momente mit dem Kraftsensor 23 gemessen. Die auf den
Roboter R wirkende bzw. ausgeübte Kräfte oder
Momente können auch mit anderen Mitteln ermittelt werden.
Eine Möglichkeit ist eine Herleitung über die
elektrischen Ströme der Motoren 11–16.
-
Der
Roboter R kann auch an die Raumpunkte P0–P4 manuell z.
B. durch Drücken und Ziehen an den Achsen 1–6 geführt
werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-