Traitement en cours

Veuillez attendre...

Paramétrages

Paramétrages

Aller à Demande

1. DE102014202145 - Verfahren zum Programmieren eines Industrieroboters und zugehörigerIndustrieroboter

Note: Texte fondé sur des processus automatiques de reconnaissance optique de caractères. Seule la version PDF a une valeur juridique

[ DE ]
Beschreibung  

[0001]  Die Erfindung betrifft ein Verfahren zum Programmieren eines Industrieroboters durch manuell geführtes Bewegen eines Manipulatorarms des Industrieroboters in wenigstens eine Pose, in der wenigstens eine in ein Roboterprogramm aufzunehmende Steuerungsgröße durch eine Steuervorrichtung des Industrieroboters erfasst und als Parameter eines zugeordneten Programmbefehls in dem Roboterprogramm gespeichert wird. Die Erfindung betrifft außerdem einen Industrieroboter, aufweisend eine Robotersteuerung, die ausgebildet und/oder eingerichtet ist, ein solches Verfahren durchzuführen.

[0002]  Aus der WO 2010/069429 A1 ist ein Verfahren zur Befehlseingabe in eine Steuerung eines Manipulators, insbesondere eines Roboters bekannt, mit den Schritten des Erfassens einer ersten Kraft, die auf den Manipulator in einer ersten Richtung wirkt; des Vergleichens der erfassten ersten Kraft mit gespeicherten Kräften, denen je ein Befehl zugeordnet ist; und des Ausgebens des dieser gespeicherten Kraft zugeordneten Befehls an die Steuerung des Manipulators, falls die erfasste erste Kraft mit einer gespeicherten Kraft übereinstimmt.

[0003]  Aufgabe der Erfindung ist es, ein Verfahren zum Programmieren eines Industrieroboters bereitzustellen, mit dem der Industrieroboter durch manuell geführtes Bewegen des Manipulatorarms auf einfache und genaue Weise programmiert werden kann.

[0004]  Die Aufgabe der Erfindung wird gelöst durch ein Verfahren zum Programmieren eines Industrieroboters durch manuell geführtes Bewegen eines Manipulatorarms des Industrieroboters in wenigstens eine Pose, in der wenigstens eine in ein Roboterprogramm aufzunehmende Steuerungsgröße durch eine Steuervorrichtung des Industrieroboters erfasst und als Parameter eines zugeordneten Programmbefehls in dem Roboterprogramm gespeichert wird, aufweisend die Schritte:

– Auswählen einer Programmbefehlsart, zu der zugeordnete Parameter gespeichert werden sollen,

– fortlaufendes Erfassen und Zwischenspeichern der wenigstens einen aufzunehmenden Steuerungsgröße in vorbestimmten Zeitschritten während eines manuell geführten Handhabens des Manipulatorarms,

– fortlaufendes Erfassen wenigstens einer stellungs- und/oder bewegungsbezogenen Größe der jeweils momentanen Pose des Manipulatorarms, in vorbestimmten Zeitschritten während des manuell geführten Handhabens des Manipulatorarms,

– Vergleichen der in vorbestimmten Zeitschritten erfassten stellungs- und/oder bewegungsbezogenen Größen mit vorbestimmten, ein Abbruchkriterium darstellenden stellungs- und/oder bewegungsbezogenen Größen,

– Speichern einer der Steuerungsgrößen als Parameter des ausgewählten Programmbefehls in dem Roboterprogramm, wenn einer der fortlaufend erfassten stellungs- und/oder bewegungsbezogenen Größen das Abbruchkriterium erfüllt.

[0005]  Manipulatorarme mit zugehörigen Robotersteuerungen, insbesondere Industrieroboter sind Arbeitsmaschinen, die zur automatischen Handhabung und/oder Bearbeitung von Objekten mit Werkzeugen ausgerüstet werden können und in mehreren Bewegungsachsen beispielsweise hinsichtlich Orientierung, Position und Arbeitsablauf programmierbar sind. Industrieroboter weisen üblicherweise einen Manipulatorarm mit mehreren über Gelenke verbundene Glieder und programmierbare Robotersteuerungen (Steuervorrichtungen) auf, die während des Betriebs die Bewegungsabläufe des Manipulatorarms automatisch steuern bzw. regeln. Die Glieder werden über Antriebe, insbesondere elektrische Antriebe, die von der Robotersteuerung angesteuert werden, insbesondere bezüglich der Bewegungsachsen des Industrieroboters, welche die Bewegungsfreiheitsgrade der Gelenke repräsentieren, bewegt.

[0006]  Manipulatorarme können beispielsweise ein Gestell und ein relativ zum Gestell mittels eines Gelenks drehbar gelagertes Karussell umfassen, an dem eine Schwinge mittels eines anderen Gelenks schwenkbar gelagert ist. An der Schwinge kann dabei ihrerseits ein Armausleger mittels eines weiteren Gelenks schwenkbar gelagert sein. Der Armausleger trägt dabei eine Roboterhand, wobei insoweit der Armausleger und/oder die Roboterhand mehrere weitere Gelenke aufweisen können. Ein mehrere über Gelenke verbundene Glieder aufweisende Manipulatorarm kann als ein Knickarmroboter mit mehreren seriell nacheinander angeordneten Gliedern und Gelenken konfiguriert sein, insbesondere kann der Manipulatorarm als ein Sechsachs-Knickarmroboter ausgebildet sein.

[0007]  Manipulatorarme mit zugehörigen Robotersteuerungen, wie Industrieroboter können aber insbesondere auch so genannte Leichtbauroboter sein, die sich zunächst von üblichen Industrierobotern dadurch unterscheiden, dass sie eine für die Mensch-Maschine-Kooperation günstige Baugröße aufweisen und dabei eine zu ihrem Eigengewicht relativ hohe Tragfähigkeit aufweisen. Daneben können Leichtbauroboter insbesondere kraft- und/oder momentengeregelt, beispielsweise in einer Nachgiebigkeitsregelung betrieben werden, statt positionsgeregelt betrieben werden, was beispielsweise ein manuelles Verstellen der Pose des Manipulatorarmes vereinfacht. Außerdem kann dadurch eine sichere Mensch-Maschine-Kooperation erreicht werden, da beispielsweise unbeabsichtigte Kollisionen des Manipulatorarmes mit Personen entweder verhindert oder zumindest derart abgeschwächt werden können, so dass den Personen kein Schaden entsteht. Ein solcher Manipulatorarm bzw. ein solcher Leichtbauroboter kann mehr als sechs Freiheitsgrade aufweisen, so dass insoweit ein überbestimmtes System geschaffen wird, wodurch derselbe Punkt im Raum in gleicher Orientierung in mehreren verschiedenen Posen des Manipulatorarms erreicht werden kann. Der Leichtbauroboter kann auf externe Krafteinwirkungen in geeigneten Weisen reagieren. Zur Kraftmessung können Kraftsensoren verwendet werden, die in allen drei Raumrichtungen Kräfte und Drehmomente messen können. Alternativ oder ergänzend können die externen Kräfte auch ohne spezielle Sensoren, beispielsweise anhand der gemessenen Motorströme der Antriebe an den Gelenken des Leichtbauroboters abgeschätzt werden. Als Regelungskonzepte kann beispielsweise eine indirekte Kraftregelung durch Modellierung des Leichtbauroboters als mechanischer Widerstand (Impedanz) oder eine direkte Kraftregelung verwendet werden.

[0008]  Unter einem manuell geführten Bewegen des Manipulatorarms wird insbesondere verstanden, dass die momentanen Gelenksstellungen des Manipulatorarms dadurch verändert werden, dass ein Bediener des Industrieroboters den Manipulatorarm an einem oder mehreren seiner Glieder anfasst und beispielsweise durch Drücken, Ziehen und/oder Drehen des gegriffenen Gliedes oder der gegriffenen Glieder die Pose des Manipulatorarms verändert, d.h. verstellt. In einem grundlegenden Ausführungsbeispiel kann an dem in der kinematischen Kette letzten Glied des Manipulatorarms, d.h. am Handflansch des Manipulatorarms beispielsweise ein Griff befestigt oder zumindest ein Griffabschnitt vorgesehen sein, insbesondere starr befestigt sein, über den eine Führungskraft in die mechanische Struktur des Manipulatorarms eingeleitet werden kann. Eine solche vom Bediener des Industrieroboters auf den Manipulatorarm aufgebrachte Führungskraft kann beispielsweise durch speziell dazu ausgebildete und eingerichtete Sensoren, insbesondere Kraftsensoren unmittelbar gemessen werden, oder aus Messwerten an bereits vorhandenen Gelenkssensoren, insbesondere Kraft-/Momentsensoren des Manipulatorarms mittelbar errechnet oder indirekt aus Motorströmen der Antriebe des Gelenke des Industrieroboters bestimmt werden. Unter einem manuell geführten Bewegen des Manipulatorarms fällt erfindungsgemäß auch ein bloßes Festhalten des Manipulatorarms im Raum, so dass er seine momentane Pose unverändert beibehält. Insoweit wird unter einem Bewegen des Manipulatorarms generell ein Handhaben des Manipulatorarms verstanden, dass auch ein solches Festhalten in unveränderter Pose mit umfasst.

[0009]  Unter der Pose des Manipulatorarms wird ganz allgemein die Summe aller Gelenkstellungen von Gelenken des Manipulatorarms verstanden, welche die einzelnen Glieder des Manipulatorarms verstellbar verbinden. Im engeren Sinne kann bei einem eindeutig bestimmten System unter Pose beispielsweise auch schon die Position und die Orientierung eines Bezugspunktes, wie beispielsweise eines Werkzeugbezugspunktes (Tool-Center-Points / TCP) des Manipulatorarms verstanden werden. Der Werkzeugbezugspunkt kann beispielsweise durch einen geeigneten Punkt an einem Handflansch des Manipulatorarms gebildet werden, an dem ein Greifer, ein Werkzeug oder eine sonstige Vorrichtung befestigt ist, um diese durch Verstellen der Pose des Manipulatorarms im Raum bewegen zu können. Ganz allgemein kann der Werkzeugbezugspunkt ein virtueller Raumpunkt auch außerhalb des Manipulatorarms sein, der jedoch geometrisch starr mit einem der Glieder des Manipulatorarms, insbesondere dem Handflansch des Manipulatorarms verbunden ist.

[0010]  Ein Roboterprogramm bildet eine Steuerungsvorschrift, auf welche Art und Weise die Steuerungsvorrichtung den Manipulatorarm bzw. dessen Gelenke automatisch ansteuern soll, um die gewünschten Bewegungen und Aktionen des Manipulatorarms automatisch ausführen zu lassen. Ein Roboterprogramm enthält dazu Programmbefehle, welche beispielsweise bestimmte Bewegungsarten darstellen. Ein Programmbefehl kann aber auch nur das Einstellen eines Zustandes oder einer Eigenschaft des Manipulatorarms betreffen. Jedem Programmbefehl kann wenigstens ein Parameter zugeordnet sein. Im Falle eines Positionsbefehls kann der wenigstens eine Parameter beispielsweise durch die X-, Y- und Z-Positionswerte eines Werkzeugbezugspunktes im kartesischen Raum gebildet werden. In anderen Fällen kann der Parameter beispielsweise eine Geschwindigkeit, eine maximale Beschleunigung oder ein Nachgiebigkeitswert bzw. Steifigkeitswert sein, der insoweit eine Eigenschaft des Manipulatorarms darstellt und der Manipulatorarm programmgesteuert diese Eigenschaft, insbesondere auch über mehrere Stützpunkte hinweg, automatisch annehmen kann.

[0011]  Besonders die Programmierung von Robotermontageaufgaben erfordert neben dem Einlernen (teach-in) von Posen als Steuerungsgrößen, auch in großem Umfang das Einlernen von anderen Steuerungsgrößen, wie Richtung, Kraft, Moment, Rotationsachse, des Weiteren auch Sensorsignale.

[0012]  Es ist prinzipiell bekannt, dass Steuerungsgrößen dadurch gelernt werden können, d.h. die Steuerungsgrößen in ein zu erstellendes Roboterprogramm dadurch übernommen werden können, dass der Manipulatorarm manuell geführt wird. Beispielsweise zum Erlernen eines später durch einen Werkzeugbezugspunkt des Manipulatorarms automatisch anzufahrenden Punktes im Raum, wird der Manipulatorarm beispielsweise in einer Gravitationskompensationsregelung per Hand so eingestellt, dass der Werkzeugbezugspunkt in dem gewünschten, d.h. in dem in das Roboterprogramm abzuspeichernden Punkt im Raum zu liegen kommt. Um den gewünschten Punkt nun in das Roboterprogramm abspeichern zu können, ist im Allgemeinen eine Bestätigungstaste zu betätigen, welche die Steuerungsvorrichtung anweist, die momentan eingestellte Position des Werkzeugbezugspunktes als einen Parameter eines zugeordneten Programmbefehls in dem Roboterprogramm abzuspeichern.

[0013]  In einer Steifigkeitsregelung oder Nachgiebigkeitsregelung des Industrieroboters können Kräfte, Momente, Posen und Richtungen gelernt werden. Da in diesem Modus der Manipulatorarm durch eine angesteuerte Federwirkung an einen Bezugspunkt zurückgezogen wird, muss der Manipulatorarm im gewünschten, d.h. zu programmierenden Auslenkungspunkt festgehalten werden, solange bis durch manuelles Betätigen der Bestätigungstaste die momentan eingestellte Steuerungsgröße als ein Parameter eines zugeordneten Programmbefehls in dem Roboterprogramm abgespeichert ist. Ein Festhalten des Manipulatorarms an dem gewünschten Auslenkungspunkt ist für eine ausreichende Genauigkeit bei der Aufnahme der abzuspeichernden Steuerungsgröße jedoch oft nur dann gewährleistet, wenn der Manipulatorarm mit zwei Händen festgehalten wird.

[0014]  In einer Gravitationskompensationsregelung verbleibt der Manipulatorarm ohne äußere Krafteinwirkung an der Pose, in der er durch den Anwender positioniert wurde. In diesem Modus können Posen und Richtungen, welche durch zwei verschiedene Posen definiert werden können, gelernt werden. In der Praxis können jedoch Modellfehler, wie beispielsweise falsche Lastdaten, auch dazu führen, dass der Manipulatorarm aus seiner gewünschten Position in unerwünschter Weise herausdriftet. Auch in einem solchen Falle muss zur Aufnahme, d.h. zum Programmieren, insbesondere Speichern eines Punktes der Manipulatorarm in der gewünschten Pose festgehalten werden. Um eine gewisse Präzision bei der Positionierung zu erzielen, sind auch hierbei zwei Hände des Anwenders erforderlich.

[0015]  Sowohl in einer Gravitationskompensationsregelung, als auch in einer Steifigkeitsregelung sind zum Lernen der oben aufgeführten Größen beide Hände einer Person erforderlich. Es fehlt insoweit die dritte Hand, um eine Bestätigungstaste manuell zu betätigen, d.h. der Steuerungsvorrichtung das Signal mitzuteilen, nun die gewünschten Steuerungsgrößen der aktuellen Situation, beispielsweise die Pose, eine Kraft- und/oder Momenten-Einwirkung oder weitere Sensorsignale in das Roboterprogramm zu speichern.

[0016]  Eine auf Bewegung basierte Gestenerkennung, wie beispielsweise in der WO 2010/069429 A1 beschrieben, ist in diesem Fall nicht möglich, da ja eine bestimmte Pose, Kraft oder Moment erlernt, d.h. in das Roboterprogramm gespeichert werden soll und der Manipulatorarm insoweit nicht mehr bewegt werden darf bzw. soll.

[0017]  Grundgedanke der Erfindung ist es deshalb, dass die Steuervorrichtung schon während des Handhabens des Manipulatorarms, also schon vor einem gewünschten Aufnehmen (touchup) bzw. Speichern der aufzunehmenden Steuerungsgröße, diese Steuerungsgröße fortlaufend überwacht und insoweit vorläufig mitprotokolliert, bis ein repräsentatives Ereignis eintritt, welches eine charakteristische Bewegung des Manipulatorarms oder ein charakteristisches Stillstehen des Manipulatorarms sein kann, welches automatisch von der Steuervorrichtung als ein Signal erkannt wird, die gewünschte Steuerungsgröße nun aufzunehmen. Das repräsentative Ereignis, insbesondere die charakteristische Bewegung des Manipulatorarms oder das charakteristische Stillstehen des Manipulatorarms wird insoweit als eine Zustimmaktion interpretiert, welche die Steuerungsvorrichtung automatisch veranlasst, die gewünschte Steuerungsgröße als ein Parameter eines zuvor ausgewählten Programmbefehls in dem Roboterprogramm zu speichern.

[0018]  Am Anfang eines solchen erfindungsgemäßen Programmierverfahrens steht zunächst ein Auswählen einer Programmbefehlsart, zu der zugeordnete Parameter gespeichert werden sollen. Eine solche Auswahl kann beispielsweise vor dem manuell geführten Bewegen des Manipulatorarms zur durch einen Benutzer, d.h. durch den Roboterprogrammierer erfolgen, beispielsweise indem er an einem der Steuervorrichtung des Industrieroboters zugeordneten Handeingabegerät mittels Tasten, einem Menü und/oder einem Display eine gewünschte Programmbefehlsart auswählt. Die auszuwählende Programmbefehlsart kann aber auch automatisch durch die Steuerungsvorrichtung ausgewählt werden, beispielsweise auf Grundlage einer bereits vor Beginn des erfindungsgemäßen Programmierverfahrens in dem Roboterprogramm vorhandenen, interpretierten Programmzeile. Die auszuwählende Programmbefehlsart kann ein Bewegungsbefehl, insbesondere ein Punkt-zu-Punkt-Befehl, ein Linear-Befehl oder ein Spline-Befehl sein und/oder ein Parametrierungsbefehl, insbesondere der Nachgiebigkeit oder der Steifigkeit, einer die Steuerungsvorrichtung ansteuernden Roboterprogrammiersprache sein.

[0019]  Nachdem eine Programmbefehlsart ausgewählt ist, beginnt das fortlaufende Erfassen und Zwischenspeichern der wenigstens einen aufzunehmenden Steuerungsgröße in vorbestimmten Zeitschritten. Die Zeitschritte können beispielsweise die von der Steuervorrichtung an sich bereits verwendeten und als solche bekannten Interpolationstakte sein. Währenddessen wird der Manipulatorarm manuell geführt gehandhabt und entsprechend durch die Steuervorrichtung angesteuert, um sich zu bewegen.

[0020]  Parallel dazu erfolgt erfindungsgemäß ein fortlaufendes Erfassen wenigstens einer stellungs- und/oder bewegungsbezogenen Größe der jeweils momentanen Pose des Manipulatorarms, in vorbestimmten Zeitschritten während des manuell geführten Handhabens des Manipulatorarms. Auch hierbei können die Zeitschritte beispielsweise die von der Steuervorrichtung an sich bereits verwendeten und als solche bekannten Interpolationstakte sein. Durch ein fortlaufendes Erfassen wenigstens einer stellungs- und/oder bewegungsbezogenen Größe kann die Steuerungsvorrichtung ein repräsentatives Ereignis automatisch erkennen, welches eine charakteristische Bewegung des Manipulatorarms oder ein charakteristisches Stillstehen des Manipulatorarms sein kann, welches automatisch von der Steuervorrichtung als ein Signal interpretiert wird, die gewünschte Steuerungsgröße nun aufzunehmen.

[0021]  Ein automatisches Erkennen des repräsentativen Ereignisses erfolgt erfindungsgemäß dadurch, dass ein Vergleichen der in vorbestimmten Zeitschritten erfassten stellungs- und/oder bewegungsbezogenen Größen mit vorbestimmten, ein Abbruchkriterium darstellenden stellungs- und/oder bewegungsbezogenen Größen von der Steuervorrichtung automatisch durchgeführt wird. Das Abbruchkriterium kann beispielsweise ein Stillstehen des Manipulatorarms über einen gewissen Zeitraum hinweg darstellen.

[0022]  Sobald das repräsentative Ereignis von der Steuervorrichtung automatisch erkannt ist, erfolgt das Speichern der Steuerungsgröße als Parameter des ausgewählten Programmbefehls in dem Roboterprogramm, wenn einer der fortlaufend erfassten stellungs- und/oder bewegungsbezogenen Größen das Abbruchkriterium erfüllt.

[0023]  In einer ersten Variante des Verfahrens können als weitere Schritte vorgesehen sein, dass

– der Manipulatorarm durch die Steuervorrichtung in einer aktiven Nachgiebigkeitsregelung betrieben wird,

– das fortlaufende Erfassen und Zwischenspeichern der wenigstens einen aufzunehmenden Steuerungsgröße mittels der Steuervorrichtung erfolgt, wenn der Manipulatorarm manuell aus einer Grundpose heraus in eine Erfassungspose hineinbewegt ist und

– das Speichern der Steuerungsgröße als Parameter des ausgewählten Programmbefehls in dem Roboterprogramm erfolgt, wenn durch das Vergleichen der erfassten stellungs- und/oder bewegungsbezogenen Größen mit den vorbestimmten stellungs- und/oder bewegungsbezogenen Größen, ein aufgrund der Nachgiebigkeitsregelung erfolgendes Zurückbewegen des Manipulatorarms aus der Erfassungspose in die Grundpose durch die Steuervorrichtung automatisch erkannt wird.

[0024]  In dieser ersten Variante des Verfahrens kann die Steuerungsvorrichtung ein repräsentatives Ereignis automatisch erkennen, welches eine charakteristische Bewegung des Manipulatorarms ist.

[0025]  Das repräsentative Ereignis kann insoweit ein Loslass-Ereignis sein.

[0026]  Beispielsweise bei einer aktiven Nachgiebigkeits- oder Steifigkeitsregelung kann der Manipulatorarm aus einer Grundpose heraus ausgelenkt werden, um eine Steuerungsgröße, beispielsweise eine Pose, eine Richtung, eine Kraft oder ein Moment zu lernen, d.h. in das Roboterprogramm aufzunehmen. Wenn die gewünschte Steuerungsgröße in einer aus der Grundpose herausgelenkten, insoweit federvorgespannten Pose des Manipulatorarms eingestellt ist, wird der Manipulatorarm losgelassen. Aufgrund der Nachgiebigkeits- oder Steifigkeitsregelung schwenkt der Manipulatorarm unmittelbar nach dem Loslassen wieder in die Grundpose zurück. Dieses Ereignis des Loslassens des ausgelenkten Manipulatorarms, identifiziert beispielsweise durch abrupte Änderung der gemessenen Gelenkmomente oder Gelenkwinkelwerte des Manipulatorarms, wird als eine stellungs- und/oder bewegungsbezogene Größe verwendet, um in diesem Moment die gewünschte Steuerungsgröße zu erfassen. Es ist dabei möglich, dass nach Aktivierung der Nachgiebigkeits- oder Steifigkeitsregelung zyklisch die gewünschte Steuerungsgröße erfasst wird und bei Eintritt des Loslass-Ereignisses zeitlich vor dem detektierten Ereignis ein Zeitabschnitt, in dem die Änderung der zu messenden Größe unter einer bestimmten Schwelle lag gesucht wird, beispielsweise nach einer Ruhepause gesucht wird, und anschließend über mehrere der fortlaufend bereits in der Ruhepause erfassten Steuerungsgrößen der Mittelwert gebildet wird.

[0027]  In diesen Ausführungen kann das Ansteuern der Antriebe des Industrieroboters mittels Impedanzregelung oder Admittanzregelung erfolgen. Die Steuervorrichtung kann insoweit eingerichtet sein, die Nachgiebigkeits- oder Steifigkeitsregelung des Manipulators mittels Impedanzregelung oder Admittanzregelung zu erzeugen.

[0028]  Eine Impedanzregelung basiert im Gegensatz zu einer Admittanzregelung auf einer vorhandenen Drehmomentenregelung auf Gelenkebene. Es werden die Abweichung der tatsächlichen Lage von einer definierten Solllage gemessen und entsprechend des gewünschten dynamischen Verhaltens eine gewünschte verallgemeinerte Kraft, bzw. Kräfte und Momente, bestimmt. Diese Kraft kann über die bekannte Kinematik des Manipulators auf entsprechende Gelenkdrehmomente abgebildet werden. Die Drehmomente können schließlich über die unterlagerte Drehmomentenregelung eingestellt werden.

[0029]  Eine Admittanzregelung basiert auf einer vorhandenen Positionsregelung des Manipulators auf Gelenkebene. Hier müssen die von außen auf den Manipulator einwirkenden verallgemeinerten Kräften gemessen werden. Ausgehend von diesen Kräften wird eine, dem gewünschten dynamischen Verhalten entsprechende, Bewegung des Manipulators bestimmt, die über eine inverse Kinematik und die unterlagerte Positionsregelung an den Manipulator kommandiert wird.

[0030]  In einer alternativen oder ergänzenden zweiten Variante des Verfahrens können als weitere Schritte vorgesehen sein, dass

– der Manipulatorarm durch die Steuervorrichtung in einer aktiven Nachgiebigkeitsregelung oder in einer Gravitationskompensationsregelung betrieben wird,

– durch das fortlaufende Erfassen der wenigstens einen stellungs- und/oder bewegungsbezogenen Größe der jeweils momentanen Pose des Manipulatorarms ein Stillstehen des Manipulatorarms von der Steuervorrichtung automatisch erkannt wird, und

– durch das Vergleichen der in vorbestimmten Zeitschritten erfassten stellungs- und/oder bewegungsbezogenen Größen mit einer vorbestimmten, das Abbruchkriterium darstellenden Mindeststillstandsdauer des Manipulatorarms bei Erreichen der Mindeststillstandsdauer das Speichern der Steuerungsgröße als Parameter des ausgewählten Programmbefehls in dem Roboterprogramm automatisch durch die Steuervorrichtung durchgeführt wird.

[0031]  In dieser zweiten Variante des Verfahrens kann die Steuerungsvorrichtung ein repräsentatives Ereignis automatisch erkennen, welches ein charakteristisches Stillstehen des Manipulatorarms ist.

[0032]  Das repräsentative Ereignis kann insoweit ein Ruhe-Ereignis, d.h. ein Stillstands-Ereignis sein.

[0033]  Bei aktiver Nachgiebigkeits- oder Steifigkeitsregelung oder in einer Gravitationskompensationsregelung wird der Manipulatorarm ausgelenkt, um beispielsweise eine Pose zu lernen.

[0034]  Sobald der Manipulatorarm für eine definierbare Zeit nicht mehr bewegt wird, also in Ruhe ist, d.h. die Gelenk-Istwinkel sich nur noch in einem parametrierbaren Winkelbereich ändern, wird dies als ein Ereignis zur Erfassung von Steuerungsgrößen, wie Pose, Kräfte, Momente, Sensorsignale usw. erkannt.

[0035]  Das Ereignis selbst und ein Zeitraum kurz davor kann dem Anwender mit verschiedenen Methoden signalisiert werden. Beispielsweise mittels eines akustischen Signals, eines optischen Signals, wie einer LED, oder mittels Vibration. Durch Signalisierung des Zeitraums kurz vor Eintreten des Ereignisses kann dem Anwender die Möglichkeit gegeben werden, durch das Bewegen des Manipulatorarms das Speichern der aktuellen Steuerungsgröße zu verhindern, falls der gewünschte Zustand noch nicht erreicht wurde.

[0036]  Beispielsweise wenn der Beginn einer Ruhe erkannt wird, könnte ein akustisches Signal in einer bestimmten Pulsfrequenz ertönen. Die Pulsfrequenz steigt bei weiterem Stillhalten des Manipulatorarms bis zum Dauerton an, dann wird die eingestellte Steuerungsgröße übernommen, d.h. gespeichert.

[0037]  Von der zu erfassenden Steuerungsgröße kann auch hier ein Mittelwert über die Zeit errechnet werden, in der der Manipulatorarm in Ruhe war.

[0038]  Wenn die Funktionalität nicht abgeschaltet wird und der Manipulatorarm anschließend wieder bewegt wird, kann beispielsweise die Ereignis-Überwachung erneut aktiviert werden. Dies kann beispielsweise verwendet werden, um eine aufgenommene Steuerungsgröße neu aufzunehmen, also zu überschreiben, oder um an einer anderen Stelle eine weitere Steuerungsgröße aufzunehmen, also beispielsweise eine ganze Reihe mehrerer anzufahrender Punkte aufzunehmen.

[0039]  Mit den beschriebenen erfindungsgemäßen Verfahren lassen sich beim manuell geführten Programmieren eines Industrieroboters viele Bedienaktionen einsparen, was insbesondere dann von Vorteil ist, wenn beide Hände am Manipulatorarm oder dessen Flanschwerkzeug für eine präzise Positions- oder Kraft-/Momenten-Vorgabe erforderlich sind.

[0040]  In allen Ausführungen des Verfahrens kann die wenigstens eine stellungs- und/oder bewegungsbezogene Größe des Manipulatorarms ein kartesischer oder gelenksspezifischer Positions- und/oder Lagewert des Manipulatorarms sein.

[0041]  In allen Ausführungen des Verfahrens kann die wenigstens eine stellungs- und/oder bewegungsbezogene Größe des Manipulatorarms ein aus einem kartesischen oder gelenksspezifischen Positions- und/oder Lagewert des Manipulatorarms abgeleiteter Geschwindigkeits- und/oder Beschleunigungswert sein.

[0042]  Alternativ oder ergänzend kann die wenigstens eine stellungs- und/oder bewegungsbezogene Größe des Manipulatorarms ein an dem Manipulatorarm gemessener Geschwindigkeits- und/oder Beschleunigungswert sein.

[0043]  Generell kann aus den fortlaufend erfassten und zwischengespeicherten Steuerungsgrößen eine Steuerungsgröße als Parameter des ausgewählten Programmbefehls in dem Roboterprogramm gespeichert werden, die zeitlich eine vorbestimmt Anzahl von Zeitschritten vor dem Zeitpunkt liegt, zu dem das Abbruchkriterium erfüllt ist.

[0044]  Jeder Art von Programmbefehl kann eine eigene bestimmte Anzahl von Zeitschritten zugeordnet sein und aufgrund des Auswählens der Programmbefehlsart, die diesem Programmbefehl zugeordnete Anzahl von Zeitschritten herangezogen werden, um die als Parameter zu speichernde Steuerungsgröße aus den fortlaufend erfassten und zwischengespeicherten Steuerungsgrößen herauszuselektieren.

[0045]  Die aufzunehmende Steuerungsgröße kann eine Position, eine Orientierung, eine Geschwindigkeit, eine Beschleunigung und/oder eine Trajektorie eines Werkzeugbezugspunktes oder wenigstens eines Gelenks des Manipulatorarms, oder eine einwirkende Kraft, ein einwirkendes Moment, eine Nachgiebigkeit und/oder eine Steifigkeit des Manipulatorarms oder eine Größe eines externen Sensors, wie beispielsweise die Größe eines einen Abstand messenden Sensors sein.

[0046]  Die auszuwählende Programmbefehlsart kann ein Bewegungsbefehl, insbesondere ein Punkt-zu-Punkt-Befehl, ein Linear-Befehl, ein Spline-Befehl oder ein höherwertiger Befehl, wie beispielsweise „Fahre bis Kontakt“, „Füge Stift in Loch“ sein, und/oder ein Parametrierungsbefehl, insbesondere der Nachgiebigkeit oder der Steifigkeit, einer die Steuerungsvorrichtung ansteuernden Roboterprogrammiersprache sein. Unter einem höherwertigen Befehl kann insoweit generell eine Befehlsart einer Roboterprogrammiersprache verstanden werden, die als ein hochsprachiger Befehl betrachtet werden kann, der einen über die grundlegenden Befehlsarten der jeweiligen Roboterprogrammiersprache hinausgehenden Befehlsinhalt aufweist.

[0047]  Die Aufgabe der Erfindung wird außerdem gelöst durch einen Industrieroboter aufweisend eine Robotersteuerung, die ausgebildet und/oder eingerichtet ist, ein Roboterprogramm auszuführen, sowie aufweisend einen Manipulatorarm mit wenigstens drei Gelenken, die gemäß des Roboterprogramms automatisiert und/oder in einem Handfahrbetrieb automatisch verstellbar sind, wobei die Robotersteuerung ausgebildet und/oder eingerichtet ist, ein Verfahren wie beschrieben durchzuführen.

[0048]  Ein konkretes Ausführungsbeispiel eines gemäß dem erfindungsgemäßen Verfahren betreibbaren Industrieroboters ist in der nachfolgenden Beschreibung unter Bezugnahme auf die beigefügten Figuren näher erläutert. Konkrete Merkmale dieses Ausführungsbeispiels können unabhängig davon, in welchem konkreten Zusammenhang sie erwähnt sind, gegebenenfalls auch einzeln oder in Kombination betrachtet, allgemeine Merkmale der Erfindung darstellen.

[0049]  Es zeigen:

[0050]  Fig. 1 eine schematische Darstellung eines Industrieroboters in der Bauart eines Leichtbauroboters mit einer schematisch dargestellten Robotersteuerung und einem Manipulatorarm in einer Grundpose,

[0051]  Fig. 2 eine schematische Darstellung des Industrieroboters gemäß Fig. 1 mit der schematisch dargestellten Robotersteuerung und dem Manipulatorarm in einer manuell ausgelenkten Erfassungspose,

[0052]  Fig. 3 eine schematische Darstellung des Manipulatorarms in einer Grundpose aus der eine beispielhafte Bewegungsrichtung gelernt werden soll,

[0053]  Fig. 4 eine schematische Darstellung des Manipulatorarms gemäß Fig. 3 in einer manuell ausgelenkten Erfassungspose, welche in Verbindung mit der Grundpose eine Bewegungsrichtung definiert,

[0054]  Fig. 5 eine schematische Darstellung des Manipulatorarms nach einem Loslassen wieder in die Grundpose automatisch zurückgestellt, in der die Bewegungsrichtung gelernt ist, und

[0055]  Fig. 6 ein schematisches Ablaufdiagramm eines erfindungsgemäßen Verfahrens mit den Verfahrensschritten S1 bis S5.

[0056]  Die Fig. 1 und Fig. 2 zeigt einen Industrieroboter 1 in einer beispielhaften Ausführung als ein so genannter Leichtbauroboter, der einen Manipulatorarm 2 und eine Robotersteuerung 3 aufweist. Der Manipulatorarm 2 umfasst im Falle des vorliegenden Ausführungsbeispiels mehrere, nacheinander angeordnete und mittels Gelenke 4 drehbar miteinander verbundene Glieder 5 bis 12.

[0057]  Die Robotersteuerung 3 des Industrieroboters 1 ist ausgebildet bzw. eingerichtet, ein Roboterprogramm auszuführen, durch welches die Gelenke 4 des Manipulatorarms 2 gemäß des Roboterprogramms automatisiert oder in einem Handfahrbetrieb automatisch verstellt bzw. drehbewegt werden können. Dazu ist die Robotersteuerung 3 mit ansteuerbaren elektrischen Antrieben verbunden, die ausgebildet sind, die Gelenke 4 des Industrieroboters 1 zu verstellen.

[0058]  Die Robotersteuerung 3 ist ausgebildet und/oder eingerichtet, ein Verfahren zum Programmieren des Industrieroboters 1 durch manuell geführtes Bewegen des Manipulatorarms 2, wie im Folgenden anhand konkreter Ausführungsbeispiele näher beschrieben, durchzuführen.

[0059]  In einer Steifigkeitsregelung oder Nachgiebigkeitsregelung des Industrieroboters 1 können Kräfte, Momente, Posen und Richtungen gelernt werden. Da in diesem Modus der Manipulatorarm 2 durch eine angesteuerte Federwirkung an einen Bezugspunkt (Grundpose G) zurückgezogen wird, muss der Manipulatorarm 2 im gewünschten, d.h. zu programmierenden Auslenkungspunkt (Erfassungspose E) mittels wenigstens einer Hand 13 eines Benutzers festgehalten werden. Die vorhandene Federwirkung in zwei Raumrichtungen ist in der Fig. 1 und Fig. 2 durch die schematisch dargestellten Feder-Dämpfer-Symbole 14 und 15 in der Ebene veranschaulicht.

[0060]  Gemäß Fig. 1 wird der Manipulatorarm 2 durch die Steuervorrichtung 3 zunächst in einer aktiven Nachgiebigkeitsregelung betrieben. Dabei erfolgt ein fortlaufendes Erfassen und Zwischenspeichern der wenigstens einen aufzunehmenden Steuerungsgröße, hier die Pose des Manipulatorarms 2 gemäß Fig. 2, mittels der Steuervorrichtung 3, wenn der Manipulatorarm 2, wie in Fig. 2 gezeigt, manuell mittels der Hand 13 aus einer Grundpose G heraus in eine Erfassungspose E hineinbewegt ist. Das Speichern der Steuerungsgröße, d.h. der Winkelwerte aller Gelenke 4 des Manipulatorarms 2 oder die aus den Winkelwerten transformierten kartesischen Positionswerte eines Werkzeugbezugspunktes 16 des Manipulatorarms 2, als Parameter des ausgewählten Programmbefehls in dem Roboterprogramm erfolgt, wenn durch das Vergleichen der erfassten stellungs- und/oder bewegungsbezogenen Größen mit den vorbestimmten stellungs- und/oder bewegungsbezogenen Größen, ein aufgrund der Nachgiebigkeitsregelung erfolgendes Zurückbewegen des Manipulatorarms 2 aus der Erfassungspose E in die Grundpose G durch die Steuervorrichtung 3 automatisch erkannt wird.

[0061]  In dieser ersten Variante des Verfahrens kann die Steuerungsvorrichtung 3 ein repräsentatives Ereignis automatisch erkennen, welches das Zurückbewegen des Manipulatorarms 2 aus der Erfassungspose E gemäß Fig. 2 zurück in die Grundpose G gemäß Fig. 1 ist.

[0062]  Das repräsentative Ereignis kann insoweit ein Loslass-Ereignis sein, wenn der Benutzer seine Hand 13 von dem Manipulatorarm 2 loslässt und der Manipulatorarm 2 aufgrund seiner Federeigenschaften (Feder-Dämpfer-Symbole 14 und 15) wieder in die Grundpose der Fig. 1 zurückkehrt.

[0063]  Beispielsweise bei einer aktiven Nachgiebigkeits- oder Steifigkeitsregelung kann der Manipulatorarm 2 aus der Grundpose G gemäß Fig. 1 heraus ausgelenkt werden, um eine Steuerungsgröße, beispielsweise eine Pose, eine Richtung, eine Kraft oder ein Moment zu lernen, d.h. in das Roboterprogramm aufzunehmen. Wenn die gewünschte Steuerungsgröße in einer aus der Grundpose G herausgelenkten, insoweit federvorgespannten Erfassungspose E des Manipulatorarms 2 gemäß Fig. 2 eingestellt ist, wird der Manipulatorarm 2 losgelassen. Aufgrund der Nachgiebigkeits- oder Steifigkeitsregelung schwenkt der Manipulatorarm 2 unmittelbar nach dem Loslassen wieder in die Grundpose G gemäß Fig. 1 zurück. Dieses Ereignis des Loslassens des ausgelenkten Manipulatorarms 2, identifiziert beispielsweise durch abrupte Änderung der gemessenen Gelenkmomente oder Gelenkwinkelwerte des Manipulatorarms 2, wird als eine stellungs- und/oder bewegungsbezogene Größe verwendet, um in diesem Moment die gewünschte Steuerungsgröße zu erfassen. Es ist dabei möglich, dass nach Aktivierung der Nachgiebigkeits- oder Steifigkeitsregelung zyklisch die gewünschte Steuerungsgröße erfasst wird und bei Eintritt des Loslass-Ereignisses zeitlich vor dem detektierten Ereignis ein Zeitabschnitt, in dem die Änderung der zu messenden Größe unter einer bestimmten Schwelle lag gesucht wird, beispielsweise nach einer Ruhepause gesucht wird, und anschließend über mehrere der fortlaufend bereits in der Ruhepause erfassten Steuerungsgrößen der Mittelwert gebildet wird.

[0064]  Die Fig. 3 bis Fig. 5 zeigen eine ergänzende zweite Variante des Verfahrens. In der Fig. 3 befindet sich der Manipulatorarm 2 wieder in der Grundpose G. Der Manipulatorarm 2 wird durch die Steuervorrichtung 3 in einer aktiven Nachgiebigkeitsregelung oder in einer Gravitationskompensationsregelung betrieben. Durch das fortlaufende Erfassen der wenigstens einen stellungs- und/oder bewegungsbezogenen Größe der jeweils momentanen Pose des Manipulatorarms 2 wird ein Stillstehen des Manipulatorarms 2 in der ausgelenkten Erfassungspose E gemäß Fig. 4 von der Steuervorrichtung 3 automatisch erkannt. Durch das Vergleichen der in vorbestimmten Zeitschritten erfassten stellungs- und/oder bewegungsbezogenen Größen mit einer vorbestimmten, das Abbruchkriterium darstellenden Mindeststillstandsdauer des Manipulatorarms bei Erreichen der Mindeststillstandsdauer, wird das Speichern der Steuerungsgröße als Parameter des ausgewählten Programmbefehls in dem Roboterprogramm automatisch durch die Steuervorrichtung 3 durchgeführt.

[0065]  In dieser Variante des Verfahrens kann die Steuerungsvorrichtung 3 ein repräsentatives Ereignis automatisch erkennen, welches ein charakteristisches Stillstehen des Manipulatorarms 2 ist. Das repräsentative Ereignis kann insoweit ein Ruhe-Ereignis, d.h. ein Stillstands-Ereignis sein.

[0066]  Bei aktiver Nachgiebigkeits- oder Steifigkeitsregelung oder in einer Gravitationskompensationsregelung wird der Manipulatorarm 2 gemäß Fig. 4 ausgelenkt, um eine Richtung zu lernen.

[0067]  Sobald der Manipulatorarm für eine definierbare Zeit nicht mehr bewegt wird, also in Ruhe ist, d.h. die Gelenk-Istwinkel sich nur noch in einem parametrierbaren Winkelbereich ändern, wird dies als ein Ereignis zur Erfassung der Erfassungspose E erkannt. In dieser Variante soll jedoch kein Raumpunkt erlernt werden, sondern eine Bewegungsrichtung B. Ausgehend von der Grundpose G gemäß Fig. 3 wird deshalb der Manipulatorarm 2 von einem Benutzer mittels seiner Hand 13 in eine gewünschte Bewegungsrichtung B aus der Grundpose G gemäß Fig. 3 heraus in die sich dadurch ergebende Erfassungspose E gemäß Fig. 4 hineinbewegt. Nach einem Loslassen des Manipulatorarms 2 bewegt sich der Manipulatorarm 2, wie in Fig. 5 dargestellt, wieder in seine Grundpose gemäß Fig. 3 zurück. Ein solches automatisches Zurückziehen in die Ausgangsstellung über eine derartige Federwirkung findet im Falle des vorliegenden Ausführungsbeispiels nur bei einer aktiven Steifigkeitsregelung statt, nicht aber in einer Gravitationskompensation.

[0068]  Das Lernen einer Bewegungsrichtung kann erforderlich sein, um später im automatischen Programmbetrieb beispielsweise eine Bewegung oder Kraft in diese Richtung auszuüben.

[0069]  Im Moment des Loslassens des Manipulatorarms 2 entspannt sich seine Federeigenschaft, wie in Fig. 5 dargestellt, und sofort wird dieses Loslass-Ereignis von der Steuervorrichtung 3 automatisch erkannt und die Loslass-Pose gemäß Fig. 4 erfasst. Zusammen mit dem Ausgangspunkt in der Grundpose G ist der Richtungsvektor der Bewegungsrichtung B definiert. Der Manipulatorarm 2 kehrt zur vorherigen Grundpose der Fig. 3 durch Federwirkung zurück und der Steifigkeitsmodus kann abgeschaltet werden.

[0070]  Die Fig. 6 zeigt schematisch einen Ablauf des erfindungsgemäßen Grundverfahrens zum Programmieren des Industrieroboters 1 durch manuell geführtes Bewegen des Manipulatorarms 2 des Industrieroboters 1 in wenigstens eine Pose, in der wenigstens eine in ein Roboterprogramm aufzunehmende Steuerungsgröße durch eine Steuervorrichtung 3 des Industrieroboters 1 erfasst und als Parameter eines zugeordneten Programmbefehls in dem Roboterprogramm gespeichert wird.

[0071]  Im Verfahrensschritt S1 erfolgt ein Auswählen einer Programmbefehlsart, zu der zugeordnete Parameter gespeichert werden sollen.

[0072]  Im Verfahrensschritt S2 erfolgt ein fortlaufendes Erfassen und Zwischenspeichern der wenigstens einen aufzunehmenden Steuerungsgröße in vorbestimmten Zeitschritten während eines manuell geführten Handhabens des Manipulatorarms.

[0073]  Im Verfahrensschritt S3 erfolgt ein fortlaufendes Erfassen wenigstens einer stellungs- und/oder bewegungsbezogenen Größe der jeweils momentanen Pose des Manipulatorarms, in vorbestimmten Zeitschritten während des manuell geführten Handhabens des Manipulatorarms.

[0074]  Im Verfahrensschritt S4 erfolgt ein Vergleichen der in vorbestimmten Zeitschritten erfassten stellungs- und/oder bewegungsbezogenen Größen mit vorbestimmten, ein Abbruchkriterium darstellenden stellungs- und/oder bewegungsbezogenen Größen.

[0075]  Im Verfahrensschritt S5 erfolgt ein Speichern einer der Steuerungsgrößen als Parameter des ausgewählten Programmbefehls in dem Roboterprogramm, wenn einer der fortlaufend erfassten stellungs- und/oder bewegungsbezogenen Größen das Abbruchkriterium erfüllt.

ZITATE ENTHALTEN IN DER BESCHREIBUNG 

[0076]  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 

[0077] 

WO 2010/069429 A1 [0002, 0016]