DE10161470A1 - Roboter-Programmierung - Google Patents
Roboter-ProgrammierungInfo
- Publication number
- DE10161470A1 DE10161470A1 DE2001161470 DE10161470A DE10161470A1 DE 10161470 A1 DE10161470 A1 DE 10161470A1 DE 2001161470 DE2001161470 DE 2001161470 DE 10161470 A DE10161470 A DE 10161470A DE 10161470 A1 DE10161470 A1 DE 10161470A1
- Authority
- DE
- Germany
- Prior art keywords
- robot
- trajectory
- points
- interpolation
- path
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40416—Planning for variable length tool, laser beam as tool
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40519—Motion, trajectory planning
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/42—Servomotor, servo controller kind till VSS
- G05B2219/42201—Deriving speed from commanded position
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/45—Nc applications
- G05B2219/45138—Laser welding
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
Die Erfindung betrifft ein Verfahren zur Programmierung zumindest eines Roboters in roboterbasierten Laseranwendungen, insbesondere Laserschweißen und Laserschneiden. Eine kostengünstige, komfortable, benutzerfreundliche und zeitsparende Möglichkeit zur Koordination eines Roboters ergibt sich durch: Programmieren von Wegpunkten P¶x¶ eines Arbeitsweges des Roboters, getaktetes Erfassen von Interpolationspunkten P¶n¶, P¶n+1¶ entlang des programmierten Arbeitsweges des Roboters, Ermitteln einer Bahnkurve B durch Interpolation zwischen den Interpolationspunkten P¶n¶, P¶n+1¶, Verschieben der programmierten Wegpunkte P¶x¶ auf die Bahnkurve B, Erstellen eines Geschwindigkeitsprofils G anhand der Bahnkurve B, wobei die Geschwindigkeiten der programmierten Wegpunkte P¶x¶ errechnet werden, Editieren des Geschwindigkeitsprofils G mit Hilfe der programmierten Wegpunkte P¶x¶ und Erzeugen von Referenzpunkten R¶n¶, R¶n+1¶ auf der Bahnkurve B in Abhängigkeit vom editierten Geschwindigkeitsprofil G.
Description
- Die Erfindung betrifft ein Verfahren zur Programmierung zumindest eines Roboters in roboterbasierten Laseranwendungen, insbesondere Laserschweißen und Laserschneiden, bei dem Wegpunkte eines Arbeitsweges des Roboters programmiert werden. Des weiteren betrifft die Erfindung die Verwendung eines solchen Verfahrens in der Kraftfahrzeugproduktion.
- Heutzutage werden zunehmend Roboter in Laseranwendungen eingesetzt. Dazu gehört vor allem das Schweißen von Stepnähten zur Verbindung von Blechteilen. Für den Einsatz eines Roboters muss dieser zunächst programmiert werden. Dabei werden Wegpunkte einer Bahngeometrie mit Hilfe des Roboters direkt am Bauteil oder auch mit Unterstützung von computergesteuerten Steuereinheiten aufgezeichnet. Über ein Programmierhandpult werden numerisch, das heißt durch die Eingabe der jeweiligen Werte, die Roboterpositionen in allen Freiheitsgraden, Geschwindigkeiten, Beschleunigungen sowie das Setzen und Rücksetzen von digitalen und analogen Signalen eingegeben. Neben der Bahngeometrie sind somit eine Vielzahl von Zusatzinformationen einzugeben, was einen erheblichen Programmieraufwand bedeutet.
- Ein Umschalten von Laserquellen wird heutzutage ebenfalls vorgesehen, um Hochleistungslaser effizient einsetzen zu können. Aus der WO 98/48975 ist beispielsweise ein Verfahren bekannt, mit dessen Hilfe ein Umschalten eines Lasers auf verschiedene programmierbare Maschinen möglich ist. Mit Hilfe des beschriebenen Verfahrens ist es möglich, programmierte Maschinen zu den programmierten Zeitpunkten mit einer ausgewählten Laserquelle über flexible Strahlführungssystem zu verbinden. Die Robotersteuerung der einzelnen Maschinen erfolgt hierbei manuell.
- Bei einer geringfügigen Änderung eines Wegpunktes in der Bahngeometrie muss unter Umständen die gesamte Robotersteuerung manuell umprogrammiert werden. Auswirkungen von Veränderungen auf das zeitliche Verhalten der Robotersteuerung sind durch den Programmierer nicht direkt erkennbar und lassen sich heutzutage ausschließlich durch Ausprobieren überprüfen. Dies ist vor allem dann von Nachteil, wenn mehrere Roboter zusammen arbeiten müssen und eine Koordination dieser Roboter notwendig ist. Dann lässt sich mit einer manuellen Programmierung kaum ein hinreichend gutes Ergebnis erzielen.
- Nachteilig an dem beschriebenen Verfahren ist daher die geringe Flexibilität sowie der hohe zeitliche Aufwand für eine exakte Programmierung des Roboters.
- Somit liegt der Erfindung die Aufgabe zugrunde, ein Verfahren anzugeben, mit dessen Hilfe eine benutzerfreundliche, zeitsparende und übersichtliche Roboterprogrammierung möglich ist. Eine weitere Aufgabe der Erfindung besteht darin, eine zeitliche Koordination des Roboters entlang seines Arbeitsweges zu ermöglichen.
- Die zuvor hergeleitete und aus dem Stand der Technik bekannte Aufgabe wird erfindungsgemäß durch folgende Schritte gelöst:
Programmieren von Wegpunkten eines Arbeitsweges des Roboters, getaktetes Erfassen von Interpolationspunkten entlang des programmierten Arbeitsweges des Roboters, Ermitteln einer Bahnkurve durch Interpolation zwischen den Interpolationspunkten, Verschieben der programmierten Wegpunkte auf die Bahnkurve, Erstellen eines Geschwindigkeitsprofils anhand der Bahnkurve, wobei die Geschwindigkeiten der programmierten Wegpunkte errechnet werden, Editieren des Geschwindigkeitsprofils mit Hilfe der programmierten Wegpunkte und Erzeugen von Referenzpunkten auf der Bahnkurve in Abhängigkeit vom editierten Geschwindigkeitsprofil. - Nachdem ein günstiger Arbeitsweg einprogrammiert worden ist, wird der einprogrammierte Arbeitsweg abgefahren und eine Datenaufzeichnung durchgeführt. Bei dieser Datenaufzeichnung werden zu definierten Zeitpunkten Positionen des Roboters als Interpolationspunkte erfasst. Der Erfassungstakt kann dabei variiert werden. Im Anschluss daran wird zwischen den Interpolationspunkten eine neue Bahnkurve errechnet, wobei ein Polygonzug durch die Interpolationspunkte gebildet wird.
- Das kann dazu führen, dass die programmierten Punkte nicht mehr auf dem Polygonzug liegen. In diesem Fall wird ein programmierter Punkt im nächsten Schritt auf kürzestem Weg auf die Bahnkurve verschoben. Dabei gilt für die Verschiebung λ eines programmierten Punktes Px auf einen Punkt Px' entlang der Bahnkurve zwischen zwei Interpolationspunkten Pn, Pn+1, wenn der Abstand zwischen Interpolationspunkt Pn und programmiertem Punkt Px gleich I1 ist und der Abstand zwischen Interpolationspunkt Pn+1, und programmiertem Punkt Px gleich I2 ist sowie der Abstand zwischen den Interpolationspunkten Pn, Pn+1, gleich s ist:
- Durch die Verschiebung der programmierten Punkte auf die errechnete Bahnkurve lässt sich in einem nächsten Schritt ein Geschwindigkeitsprofil für die programmierten Wegpunkte anhand der Bahnkurve berechnen, wobei zunächst der Abstand zwischen zwei benachbarten Punkten berechnet wird. Die Geschwindigkeit des Roboters in den programmierten Wegpunkten ergibt sich näherungsweise durch Division des Abstandes der Interpolationspunkte, zwischen denen der programmierte Wegpunkt eingefügt wurde und dem durch den Interpolationstakt konstant vorgegebenen zeitlichen Abstand der Interpolationspunkte. Nachdem das Geschwindigkeitsprofil errechnet wurde, lässt sich dieses editieren.
- Beim Editieren des Geschwindigkeitsprofils kann automatisch entlang bestimmter Streckenabschnitte eine Geschwindigkeit eingestellt werden. Solche Streckenabschnitte können beispielsweise die Abschnitte sein, in denen der Laser aktiv ist.
- Neben dem Geschwindigkeitsprofil lassen sich auch die Flanken von digitalen sowie die Verläufe von analogen Steuersignalen editieren, um entsprechend der Aufgabenstellung eine bestmögliche räumliche und zeitliche Zuordnung zu den Roboterbahnen zu erreichen.
- Im Anschluss daran werden in Abhängigkeit des editierten Geschwindigkeitsprofils Referenzpunkte auf der Bahnkurve erzeugt. Die ursprüngliche Bahnkurve bleibt erhalten und das editierte Geschwindigkeitsprofil wird auf diese Bahnkurve übertragen. Dabei wird gewährleistet, dass zwischen den Referenzpunkten gleiche Zeitabschnitte verstreichen. Das bedeutet, dass zu den einzelnen Referenzpunkten bekannt ist, zu welchen Zeiten diese erreicht werden. Die erzeugten Referenzpunkte sind entkoppelt von den ursprünglich programmierten Wegpunkten.
- Das Positionsdaten und digitale sowie analoge Steuersignale im Interpolationstakt der Robotersteuerung bei Ablauf eines beliebigen Roboterprogrammes aufgezeichnet und in geeigneter Form in einer Datei abspeichert werden, sowie eine Datei gleichen Formates bestehend aus Positionsdaten und digitalen sowie analogen Steuersignalen im Interpolationstakt abgefahren und die Steuersignale ausgeben werden, ist ebenfalls vorgesehen. Voraussetzung dafür ist, dass die Positionsdaten im Interpolationstakt einen Bahnverlauf ergeben, der die physikalischen Eigenschaften des eingesetzten Roboters berücksichtigt.
- Es ist häufig notwendig, dass zumindest zwei Roboter koordiniert zueinander arbeiten. Daher wird vorgeschlagen, dass für zumindest zwei Roboter Bahnkurven ermittelt werden und dass zeitlich korrespondierende Referenzpunkte auf den jeweiligen Bahnkurven erzeugt werden. Hierbei werden Wegpunkte für jeden Roboter einzeln einprogrammiert. Mit Hilfe des erfindungsgemäßen Verfahrens werden die Geschwindigkeitsprofile der erzeugten Bahnkurven editiert und zeitlich korrespondierende Referenzpunkte auf den Bahnkurven erzeugt. Das hat zur Folge, dass zu bestimmten Zeitpunkten die Roboterpositionen klar bestimmbar sind. Dies ist besonders vorteilhaft bei Laseranwendungen, bei denen zwei oder mehr Roboter abwechselnd durch Umschaltung der Lichtwege mit einer Laserquelle versorgt werden. Beispielsweise muss bei einer angenommenen Roboterbahngeschwindigkeit von ca. 100 mm/s und Lasersteps in der Größenordnung von 20 mm Länge und Abständen von 40 mm zwischen den Lasersteps eine Umschaltung der Laserquelle alle 300 ms erfolgen. Aufgrund dieser hohen Schaltfrequenz müssen die zumindest zwei Roboter exakt zeitlich und örtlich koordiniert werden. Diese Koordination lässt sich mit Hilfe des Verfahrens nach Anspruch 2 durchführen.
- Eine Laserquelle lässt sich besonders effizient dann einsetzen, wenn diese zwischen den zumindest zwei Robotern hin- und hergeschaltet wird, wobei die Schaltpunkte abhängig von den Roboterpositionen sind. Durch die Erzeugung der zeitlich korrespondierenden Referenzpunkte ist eine Umschaltung der Laserquelle auch bei hohen Schaltfrequenzen möglich.
- Insbesondere für den Fall, dass eine automatische Synchronisation der Referenzpunke auf den jeweiligen Bahnkurven durchgeführt wird, kann das Umschalten der Laserquelle optimiert werden. In diesem Fall werden die Referenzpunkte auf den jeweiligen Bahnkurven zu den gleichen Zeiten gesetzt.
- Da bei der Robotersteuerung neben dem eigentlichen Arbeitsweg eine Vielzahl weiterer Daten eingegeben werden können, wird vorgeschlagen, dass bei der Programmierung des Arbeitsweges und/oder Erfassung der Interpolationspunkte die Position und Lage des Roboters, der Zustand von Eingangs-/Ausgangssignalen, die Bahngeschwindigkeiten und/oder Beschleunigungen aufgezeichnet werden. Bei der Aufzeichnung der Position und Lage des Roboters können alle Freiheitsgrade des Roboters erfasst werden. Für die Erfassung kann festgelegt werden, welche Eingänge bzw. Ausgänge sowohl analoge, als auch digitale erfasst werden. Bezüglich der programmierten Punkte kann sowohl die Bahngeschwindigkeit, als auch die Beschleunigung aufgezeichnet werden.
- Vorteilhaft lässt sich das Geschwindigkeitsprofil und/oder die Bahnkurve editieren, wenn die Bahnkurve und/oder das Geschwindigkeitsprofil an eine grafische Benutzeroberfläche übermittelt wird, wenn mit Hilfe der grafischen Benutzeroberfläche das Geschwindigkeitsprofil und/oder die Bahnkurve grafisch dargestellt wird und wenn das Geschwindigkeitsprofil grafisch editierbar ist. Dazu werden zunächst Datensätze in Tabellen angelegt, in denen die erfassten Interpolationspunkte bezüglich ihrer Koordinaten und Abstände sowie Geschwindigkeiten und Zeitverläufe gespeichert werden. Mit Hilfe der erstellten Tabellen lassen sich sowohl Geschwindigkeitsprofil, als auch Bahnkurve grafisch darstellen. In einem Geschwindigkeits-Zeitdiagramm, dem Geschwindigkeitsprofil, werden alle notwendigen Daten dargestellt. Es lassen sich Punkte im Geschwindigkeitsprofil entfernen, als auch hinzufügen. Die Geschwindigkeiten der Punkte können sowohl automatisch, als auch manuell verändert werden. Durch eine Variation der Geschwindigkeiten in den einzelnen Punkten kann Einfluss auf beispielsweise die Schweißqualität genommen werden. Die Editieroperationen lassen sich mit Hilfe von geeigneten Eingabegeräten durchführen. Auch lassen sich Abfolgen von Editieroperationen mit Hilfe von Editier-Makros abspeichern. Um das grafische Editieren zu vereinfachen, wird vorgeschlagen, dass einzelne Streckenabschnitte des Geschwindigkeitsprofils farblich hervorgehoben werden. Die Farbe zwischen zwei Punkten kann dabei beispielsweise frei gewählt werden. Auch ist es möglich, einzelne Punkte farblich zu kennzeichnen, wobei beispielsweise zwischen einem Nahtanfang, einem Nahtende und einem Nahthilfspunkt farblich unterschieden werden kann. Zu den einzelnen Punkten lassen sich Zusatzinformationen ablegen, die beispielsweise die Ansteuerung des Lasers beinhalten. Beispielsweise kann festgelegt werden, dass ein Laser bereits kurze Zeit vor Erreichen des jeweiligen Punktes angesteuert wird, so dass die volle Laserenergie bei Erreichen des jeweiligen Punktes durch den Roboter zur Verfügung steht. Diese Zusatzdaten lassen sich ebenfalls farblich im Geschwindigkeitsprofil darstellen.
- Bei einer Variation der Geschwindigkeit ist darauf zu achten, dass der Roboter sich nur innerhalb vorgegebener Geschwindigkeits- und Beschleunigungsgrenzen bewegen kann. Diese Grenzen können auf der grafischen Benutzeroberfläche farblich hervorgehoben werden. Beim Überschreiten der Grenzwerte kann beispielsweise der entsprechende Punkt farblich hervorgehoben werden.
- Ebenfalls vorteilhaft ist die Glättung des Geschwindigkeitsverlaufes mit Hilfe einer Überlagerung des durch die Wegpunkte gebildeten Polygonzuges des Geschwindigkeitsprofil mit einer Sinuswelle. Dadurch können Anforderungen an maximal mögliche Beschleunigungen der Roboter erfüllt werden.
- Ein weiterer Gegenstand der Erfindung betrifft die Verwendung eines Verfahrens nach einem der vorherbeschriebenen Ansprüche in der Kraftfahrzeugproduktion.
- Die Erfindung wird im folgenden anhand einer ein Ausführungsbeispiel zeigenden Zeichnung näher erläutert. In der Zeichnung zeigen:
- Fig. 1 eine Bahnkurve;
- Fig. 2 eine Verschiebung eines Wegpunktes auf eine Bahnkurve;
- Fig. 3 ein Geschwindigkeitsprofil;
- Fig. 4 eine Streckenlänge einer Bahnkurve über der Zeit In Fig. 1 ist eine Bahnkurve B dargestellt, die sich aus einem Polygonzug zusammensetzt, der zwischen Interpolationspunkten Pn aufgespannt ist. Die Bahnkurve erstreckt sich in drei Dimensionen x, y, z, wobei bei der Erfassung der Interpolationspunkte Pn neben den kartesischen Koordinaten des Roboters eine Vielzahl weiterer Parameter erfasst werden. Zur Aufzeichnung der Bahnkurve B durchläuft der Roboter den programmierten Arbeitsweg, und in getakteten Abständen werden die Koordinaten des Roboters erfasst und als Interpolationspunkte Pn abgespeichert. Die einzelnen Verfahrensschritte sind: Programmierung von Wegpunkten in der Robotersteuerung und Erfassen und Aufzeichnen von Interpolationspunkten Pn sowie digitalen und analogen Signalen entlang des programmierten Arbeitsweges der Roboterbahn im Interpolationstakt der Robotersteuerung. (Damit liegt die Roboterbahn fest und wird auch in den folgenden Schritten nicht geändert.). Dabei wird die mit den Interpolationspunkten Pn aufgezeichnete Bahnkurve B zwischen den Interpolationspunkten Pn als linear angenommen.
- Bei der Erstellung der Bahnkurve kann es dazu kommen, dass einzelne Wegpunkte Px nicht auf dem interpolierten Polygonzug liegen. In einem solchen Fall muss ein Wegpunkt auf die Bahnkurve verschoben werden.
- Eine solche Verschiebung eines Wegpunktes Px auf einen verschobenen Wegpunkt Px ' entlang der Bahnkurve B ist in Fig. 2 dargestellt. Der programmierte Wegpunkt Px liegt, wie dargestellt, nicht auf der Bahnkurve B zwischen den Interpolationspunkten Pn, Pn+1. Der Abstand zwischen Interpolationspunkt Pn und Wegpunkt Px beträgt I1, der Abstand zwischen Interpolationspunkt Pn+1, und Wegpunkt Px beträgt I2, und der Abstand zwischen Interpolationspunkt Pn und Interpolationspunkt Pn+1, beträgt s. Zur Verschiebung des Wegpunktes Px auf den Wegpunkt Px' muss ein Verschiebungsvektor λ berechnet werden, der sich ergibt zu
wodurch sich der verschobene Wegpunkt Px' ergibt zu Px' = Pn + λ(Pn+1 - Pn). Aus der ermittelten Bahnkurve wird mit Hilfe der programmierten und/oder verschobenen Wegpunkte ein Geschwindigkeitsprofil errechnet. - Die Geschwindigkeit in einem Wegpunkt Px ergibt sich aus dem Abstand zwischen den benachbarten Interpolationspunkten Pn, Pn+1 und der Zeit, die zum Durchlaufen des Abstandes zwischen den Interpolationspunkten benötigt wird. Diese Zeit ist der Interpolationstakt T. Es wird angenommen, dass ein linearer Geschwindigkeitsverlauf zwischen zwei Interpolationspunkten Pn vorliegt. Die so ermittelten Geschwindigkeiten der einzelnen Wegpunkte Px ist in Fig. 3 dargestellt.
- Der Geschwindigkeitsverlauf lässt sich nunmehr so editieren, dass die Geschwindigkeit der einzelnen Punkte Px variiert werden kann oder auch automatisch angepasst wird. Zur weiteren Bearbeitung im Editor werden nur noch die auf den Polygonzug geschobenen Wegpunkte Px betrachtet. Der Abstand zwischen zwei Wegpunkten Px wird durch Aufsummierung der einzelnen Abschnitte der Bahnkurve B ermittelt und ist im Geschwindigkeits-Zeitdiagramm die Fläche unter dem Geschwindigkeitsverlauf G. Im Editor können die Geschwindigkeiten in den Wegpunkten Px grafisch editiert werden. Es können Wegpunkte Px eingefügt und gelöscht werden. Ihre Lage auf dem Polygonzug wird nur über den Abstand zum vorherigen und nächsten Punkt definiert.
- Im dargestellten Geschwindigkeitsprofil G werden einzelne Streckenabschnitte zwischen zwei Punkten grafisch bzw. farblich unterschiedlich dargestellt. Beispielsweise lässt sich eine Schweißnaht in einer anderen Farbe darstellen als eine Fahrstrecke des Roboters. Es lassen sich einzelne Punkte Px hinzufügen oder entfernen. Auch lassen sich die einzelnen Wegpunkte Px unterschiedlich kennzeichnen, so wird beispielsweise ein Nahtanfang rot, eine Naht-Hilfspunkt gelb und ein Nahtendpunkt blau dargestellt. Durch die Variation des Geschwindigkeitsprofils lässt sich genau festlegen, zu welchem Zeitpunkt sich welcher Roboter an exakt welchem Ort befindet. Dabei wird die Bahnkurve B nicht verändert. Nachdem der Geschwindigkeitsverlauf G editiert worden ist, muss dieser auf die Bahnkurve übertragen werden, wobei neue Referenzpunkte Rn auf der Bahnkurve B bestimmt werden müssen.
- Der Geschwindigkeitsverlauf im Editor ist aus Gründen der Einfachheit zunächst durch lineare Verläufe gekennzeichnet (Rampenprofile). Das bedeutet, dass in jedem Wegpunkt ein Knick im Geschwindigkeitsprofil G auftreten kann. Physikalisch bedeutet das einen Sprung im Beschleunigungsverlauf. Bei der Ansteuerung von Roboterachsen mit Rampenprofilen kommt es zur ungewollten Anregung der Robotermechanik. Als Abhilfe ist es deshalb möglich, die Geschwindigkeit mit Kurven höheren Grades zu planen um letztlich auch bei der Beschleunigung glatte Kurven zu erhalten. Es ist deshalb ebenfalls möglich, die Rampenprofile im grafischen Editor vor Rückwandlung in neue Abfolge von Referenzpunkt Rn zu glätten.
- Eine Geschwindigkeitsänderung von v1 vor Punkt P1 auf v2 im Punkt P2 im Zeitabschnitt von t1 bis t2 kann durch Überlagerung einer Sinuswelle die gewünschte Eigenschaft der stetigen Differenzierbarkeit in den Geschwindigkeitsübergängen erhalten. Es gilt somit allgemein folgender Ansatz:
v(t) = v1 + a1(t - t1) + b1sin(2π(t - t1)/Δt); t1 ≤ t ≤ t2;
mit: Δt = t2 - t1; a1 = Δv/Δt; Δv = v2 - v1
- Der Wert b1 als Amplitude ist so zu wählen, dass die Beschleunigung in den Zeitpunkten t1 und t2 zu 0 wird.
v'(t) = a1 - 2πb1/Δt.cos(2π(t - t1)/Δt;
mit v'(t1) = 0 = a1 - 2πb1/Δt
folgt b1 = Δv/2π
- Durch die Überlagerung der Sinuswelle entsteht eine neue maximale Beschleunigung zum Zeitpunkt t1 + Δt/2.
v'(t1 + Δt/2) = 2a1
- Wenn diese Beschleunigung größer als eine erlaubte Beschleunigung amax ist, kann eine Parameterwahl folgendermaßen geschehen:
wenn 2a1 > amax → b1 = (amax - a1)Δt/2π
- Damit ist dann sichergestellt, dass die maximal zulässige Bahnbeschleunigung nicht überschritten wird. Allerdings tritt jetzt im Beschleunigungsverlauf wieder ein Sprung auf, jedoch entsprechend kleiner als ohne Glättung.
- Dargestellt in Fig. 4 ist der Parameterwert s (Streckenlänge) der Bahnkurve B über der Zeit. Dabei ist der ursprüngliche Interpolationspunkt mit Pn dargestellt. Die Punkte Px bezeichnen die neuen Interpolationspunkte, deren Lage auf dem ursprünglichen Polygonzug über den Streckenparameter s aus dem neuen Geschwindigkeitsprofil G definiert ist. Diese Punkte Px ergeben dann die zeitlich äquidistanten Referenzpunkte Rn für die Bahnkurve B mit dem neuen Geschwindigkeitsprofil G.
- Auf der Bahnkurve B befinden sich sowohl editierte Wegpunkte Px als auch Interpolationspunkte Pn. Nach dem grafischen Editieren müssen entsprechend dem neuen Geschwindigkeitsprofil G wieder Referenzpunkte Rn erzeugt werden. Diese Referenzpunkte Rn müssen zeitlich äquidistant entsprechend dem Geschwindigkeitsprofil auf dem Polygonzug B liegen. Damit liegt also der Zeitpunkt für jeden neuen Referenzpunkt Rn und über die Flächenberechnung im Geschwindigkeitsdiagramm G auch die Position als Streckenparameter auf dem Polygonzug B vor. Die dazugehörigen Positionskoordinaten können dann mit Hilfe der ursprünglichen Interpolationspunkte Px und der Festlegung des linearen Verlaufes zwischen den Interpolationspunkten Px exakt ermittelt werden. Das bedeutet, dass die Wegpunkte Px zu exakt definierten Zeitpunkten erreicht werden, ohne dass die Bahngeometrie der Bahnkurve B verändert werden muss.
- Bei der Erstellung der Bahnkurve B gemäß Fig. 4 wird einem bestimmten Punkt Px der Bahn, parametrisiert durch den Laufparameter s, ein neuer Zeitpunkt zugewiesen wird (Verschiebung auf t-Achse bei gleichbleibendem Parameter s).
- Erfindungsgemäß lässt sich damit der Arbeitsweg eines Roboters zeitlich koordinieren, was dazu führt, dass beispielsweise mehrere Roboter untereinander gut koordiniert werden können. Dies ist insbesondere im Fall von Laseranwendungen notwendig, bei denen der Laser zwischen den zumindest zwei Robotern hin- und hergeschaltet werden muss. BEZUGSZEICHENLISTE Pn Interpolationspunkte
Px Wegpunkt
Px' verschobener Wegpunkt
P1-12 Wegpunkt
B Bahnkurve
G Geschwindigkeitsprofil
Rn Referenzpunkte
T Interpolationstakt
λ Verschiebung
s Abstand zwischen Pn, Pn+1
Claims (10)
1. Verfahren zur Programmierung zumindest eines Roboters in roboterbasierten
Laseranwendungen, insbesondere Laserschweißen und Laserschneiden, mit
den Schritten:
- Programmieren von Wegpunkten (Px) eines Arbeitsweges des Roboters,
- getaktetes Erfassen von Interpolationspunkten (Pn, Pn+1) entlang des
programmierten Arbeitsweges des Roboters,
- Ermitteln einer Bahnkurve (B) durch Interpolation zwischen den
Interpolationspunkten (Pn, Pn+1),
- Verschieben der programmierten Wegpunkte (Px) auf die Bahnkurve (B),
- Erstellen eines Geschwindigkeitsprofils (G) anhand der Bahnkurve (B), wobei
die Geschwindigkeiten der programmierten Wegpunkte (Px, Px') errechnet
werden,
- Editieren des Geschwindigkeitsprofils (G) mit Hilfe der programmierten
Wegpunkte (Px, Px'), und
- Erzeugen von Referenzpunkten (Rn, Rn+1) auf der Bahnkurve (B) in
Abhängigkeit vom editierten Geschwindigkeitsprofil (G).
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass für zumindest
zwei Roboter Bahnkurven (B) ermittelt werden, und dass zeitlich
korrespondierende Referenzpunkte (Rn, Rn+1) auf den jeweiligen Bahnkurven
erzeugt werden.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass zumindest eine
Laserquelle zwischen den zumindest zwei Robotern hin- und hergeschaltet
wird, wobei die Schaltpunkte abhängig von der Roboterposition sind.
4. Verfahren nach einem der Ansprüche 2 oder 3, dadurch gekennzeichnet,
dass eine automatische Synchronisation der Referenzpunkte (Rn, Rn+1) auf
den jeweiligen Bahnkurven (B) durchgeführt wird.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet,
dass bei der Programmierung des Arbeitsweges und/oder Erfassung der
Interpolationspunkte (Pn, Pn+1) die Position und Lage des Roboters, der
Zustand von Eingangs-/Ausgangssignalen, die Bahngeschwindigkeiten
und/oder Beschleunigungen aufgezeichnet werden.
6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet,
dass die Bahnkurve (B) und/oder das Geschwindigkeitsprofil (G) an eine
graphische Benutzeroberfläche übermittelt wird und dass mit Hilfe der
graphischen Benutzeroberfläche das Geschwindigkeitsprofil (G) und/oder die
Bahnkurve (B) graphisch dargestellt wird, wobei das Geschwindigkeitsprofil
graphisch editierbar ist.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass einzelne
Streckenabschnitte des Geschwindigkeitsprofils (G) farblich hervorgehoben
werden.
8. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass
Geschwindigkeitsgrenzwerte graphisch dargestellt werden.
9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet,
dass in Geschwindigkeitsübergängen zwischen zwei Wegpunkten (Px, Px')
eine stetige Differenzierbarkeit erhalten wird.
10. Verwendung eines Verfahrens nach einem der Ansprüche 1 bis 9 in der
Kraftfahrzeugproduktion.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2001161470 DE10161470A1 (de) | 2001-12-13 | 2001-12-13 | Roboter-Programmierung |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2001161470 DE10161470A1 (de) | 2001-12-13 | 2001-12-13 | Roboter-Programmierung |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10161470A1 true DE10161470A1 (de) | 2003-06-26 |
Family
ID=7709200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2001161470 Ceased DE10161470A1 (de) | 2001-12-13 | 2001-12-13 | Roboter-Programmierung |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE10161470A1 (de) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010040493A1 (de) * | 2008-10-06 | 2010-04-15 | Kuka Roboter Gmbh | Industrieroboter und bahnplanungsverfahren zum steuern der bewegung eines industrieroboters |
EP1698438A3 (de) * | 2005-03-01 | 2010-12-08 | Kawasaki Jukogyo Kabushiki Kaisha | Robotersteuerung und Verfahren zum Steuern eines Roboters |
CN102566570A (zh) * | 2010-10-29 | 2012-07-11 | 株式会社安川电机 | 机器人控制装置、机器人控制方法以及机器人系统 |
WO2014019706A1 (de) * | 2012-08-02 | 2014-02-06 | Kuka Roboter Gmbh | Verfahren und programmiermittel zur modifikation einer roboterbahn |
EP3037219A3 (de) * | 2014-12-22 | 2016-09-28 | KUKA Roboter GmbH | Sicherer roboter mit bahnfortschrittsvariablen |
CN108972554A (zh) * | 2018-08-06 | 2018-12-11 | 中汽研汽车检验中心(武汉)有限公司 | 一种基于拟合曲线曲率特征的复杂曲面机器人路径点提取方法 |
US10684299B2 (en) | 2016-02-25 | 2020-06-16 | Roche Diabetes Care, Inc. | Method and system for quality evaluation of a handheld analytical device |
CN111923039A (zh) * | 2020-07-14 | 2020-11-13 | 西北工业大学 | 一种基于强化学习的冗余机械臂路径规划方法 |
CN113867265A (zh) * | 2021-09-28 | 2021-12-31 | 江南造船(集团)有限责任公司 | 激光束热源中心坐标的追踪方法 |
-
2001
- 2001-12-13 DE DE2001161470 patent/DE10161470A1/de not_active Ceased
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1698438A3 (de) * | 2005-03-01 | 2010-12-08 | Kawasaki Jukogyo Kabushiki Kaisha | Robotersteuerung und Verfahren zum Steuern eines Roboters |
WO2010040493A1 (de) * | 2008-10-06 | 2010-04-15 | Kuka Roboter Gmbh | Industrieroboter und bahnplanungsverfahren zum steuern der bewegung eines industrieroboters |
CN102566570A (zh) * | 2010-10-29 | 2012-07-11 | 株式会社安川电机 | 机器人控制装置、机器人控制方法以及机器人系统 |
US9592607B2 (en) | 2012-08-02 | 2017-03-14 | Kuka Roboter Gmbh | Method and programming means for modification of a robot path |
CN104684695A (zh) * | 2012-08-02 | 2015-06-03 | 库卡罗伯特有限公司 | 用于修改机器人轨迹的方法和编程装置 |
WO2014019706A1 (de) * | 2012-08-02 | 2014-02-06 | Kuka Roboter Gmbh | Verfahren und programmiermittel zur modifikation einer roboterbahn |
CN104684695B (zh) * | 2012-08-02 | 2017-07-04 | 库卡罗伯特有限公司 | 用于修改机器人轨迹的方法和编程装置 |
EP3037219A3 (de) * | 2014-12-22 | 2016-09-28 | KUKA Roboter GmbH | Sicherer roboter mit bahnfortschrittsvariablen |
US9815200B2 (en) | 2014-12-22 | 2017-11-14 | Kuka Roboter Gmbh | Safe robot with trajectory progress variables |
US10684299B2 (en) | 2016-02-25 | 2020-06-16 | Roche Diabetes Care, Inc. | Method and system for quality evaluation of a handheld analytical device |
US11346852B2 (en) | 2016-02-25 | 2022-05-31 | Roche Diabetes Care, Inc. | Method and system for quality evaluation of a handheld analytical device |
CN108972554A (zh) * | 2018-08-06 | 2018-12-11 | 中汽研汽车检验中心(武汉)有限公司 | 一种基于拟合曲线曲率特征的复杂曲面机器人路径点提取方法 |
CN111923039A (zh) * | 2020-07-14 | 2020-11-13 | 西北工业大学 | 一种基于强化学习的冗余机械臂路径规划方法 |
CN111923039B (zh) * | 2020-07-14 | 2022-07-05 | 西北工业大学 | 一种基于强化学习的冗余机械臂路径规划方法 |
CN113867265A (zh) * | 2021-09-28 | 2021-12-31 | 江南造船(集团)有限责任公司 | 激光束热源中心坐标的追踪方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3202611B1 (de) | Verfahren zum steuern der bewegung einer transporteinheit | |
EP2255931B2 (de) | Verfahren und Vorrichtung zur Steuerung eines Manipulators | |
DE102009048252B4 (de) | In eine numerisch gesteuerte Maschine eingebaute Kollisionsverhinderungsvorrichtung | |
EP0254884B1 (de) | Verfahren zum Bestimmen von die Steuerung eines Roboters leitenden Raumpunkten | |
EP1424613A1 (de) | Verfahren und Vorrichtung zum Bearbeiten eines Werkstücks | |
EP1956452B1 (de) | Verfahren zum Betreiben von gesteuerten Maschinen | |
DE102015116086A1 (de) | Robotersteuerung | |
DE102009023648A1 (de) | Steuerungssystem | |
DE112009002602T5 (de) | Planung von Strecken mit mehreren Anfahrpunkten von Schweissrobotern mit automatischer Ablaufsteuerung | |
WO2001076799A1 (de) | Verfahren zum fortlaufenden regeln bzw. nachführen einer position eines schweissbrenners bzw. eines schweisskopfes | |
DE10161470A1 (de) | Roboter-Programmierung | |
WO2019166229A1 (de) | Verfahren zum automatischen erzeugen einer bewegungstrajektorie und zugehöriges computerprogrammprodukt | |
DE4336863C2 (de) | Verfahren zur Steuerung von Koordinatenmeßgeräten | |
WO2020053065A1 (de) | Zeitoptimierte bewegungsführung zwischen bahnabschnitten | |
EP0706103B1 (de) | Verfahren und Vorrichtung zur numerischen Bahnsteuerung von Werkzeugmaschinen oder Robotern | |
DE2338880A1 (de) | Verfahren und vorrichtungen zur steuerung der beweglichen teile einer werkzeugmaschine durch ein numerisches umriss- oder punkt-fuer-punkt-steuerungssystem, wobei zwei teile der maschine unabhaengig voneinander entlang einer gemeinsamen achse bewegt werden koennen | |
EP1758781B1 (de) | Verfahren zur planung von fahrstrassen für stellwerke | |
EP0368088B1 (de) | Verfahren zum Betrieb eines Industrieroboters | |
DE1563594C3 (de) | Numerisch arbeitende Programmsteuerungsanordnung zur Stetigbahnsteuerung von Arbeitsmaschinen, insbesondere Werkzeugmaschinen | |
EP2932339B1 (de) | Verfahren zum computergestützten nachbilden einer produktionsanlage, verfahren zur inbetriebnahme einer produktionsanlage, konfigurationseinrichtung und produktionsanlage | |
DE19532540A1 (de) | Verfahren zur Steuerung einer Modellautoanlage sowie Vorrichtung zur Durchführung dieses Verfahrens | |
EP1468341B1 (de) | Verfahren und anordnung sowie computerprogramm mit programmcode-mitteln und computerprogramm-produkt zur planung von jeweils aus teilbahnen zusammengesetzten bahnen für eine mobile einheit in einer gesamtfläche | |
DE3144155C2 (de) | ||
EP3468752B1 (de) | Verfahren zum steuern eines manipulatorsystems | |
DE19614130C2 (de) | Verfahren und Vorrichtung zur Steuerung einer Werkzeugmaschine, insbesondere einer Funkenerosionsmaschine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8120 | Willingness to grant licenses paragraph 23 | ||
R082 | Change of representative | ||
R002 | Refusal decision in examination/registration proceedings | ||
R003 | Refusal decision now final |
Effective date: 20140425 |