-
Die vorliegende Erfindung betrifft ein Verfahren und ein System zum Betreiben eines Roboters sowie ein Computerprogramm bzw. Computerprogrammprodukt zur Durchführung des Verfahrens.
-
Die
DE 10 2020 201 398 B3 betrifft ein Verfahren zum Betreiben einer Applikation eines Robotersystems umfassend die Schritte: Auswählen eines ersten Robotersystem-Situationsmoduls aus einer Situationsmodulbibliothek mit mehreren vorgegebenen applikationsunabhängigen Robotersystem-Situationsmodulen für das Robotersystem, die jeweils wenigstens ein Eingangssignal auf wenigstens ein Ausgangssignal abbilden; Verknüpfen dieses ersten Robotersystem-Situationsmoduls mit wenigstens einem weiteren ausgewählten Robotersystem-Situationsmodul aus der Situationsmodulbibliothek; und/oder wenigstens einem applikationsklassenspezifischen Applikationsklassen-Situationsmodul, das für eine Klasse von mehreren Applikationen vorgegeben ist und wenigstens ein Eingangssignal auf wenigstens ein Ausgangssignal abbildet; und/oder wenigstens einem applikationsspezifischen Applikations-Situationsmodul, das wenigstens ein Eingangssignal auf wenigstens ein Ausgangssignal abbildet, zu einem ersten Applikations-Situationsmodul, das Eingangssignale seiner verknüpften Situationsmodule auf wenigstens ein Ausgangssignal abbildet; und Betreiben der Applikation auf Basis des ersten Applikations-Situationsmoduls.
-
Die
DE 10 2019 121 628 B3 betrifft ein Verfahren zum Betreiben eines Robotermanipulators, aufweisend die Schritte: Ermitteln eines Kraftwinders oder Gelenkmomentenvektors auf Basis einer Gewichtskraft und/oder einer Trägheitskraft der Masse einer Last, Ermitteln eines maximal zulässigen Arbeitsraumes und/oder einer maximal zulässigen kinematischen Größe jeweils auf Basis des Kraftwinders oder Gelenkmomentenvektors, sodass der der Kraftwinder oder der Gelenkmomentenvektor innerhalb des Arbeitsraumes eine vorgegebene Metrik nicht übersteigt, und Ansteuern des Robotermanipulators zum Ausführen einer Aufgabe unter Berücksichtigung der maximal zulässigen kinematischen Größe und so, dass der Endeffektor oder wahlweise die Last am Endeffektor innerhalb des maximal zulässigen Arbeitsraums verbleibt, wenn zu Beginn der Ausführung der Aufgabe sich der Endeffektor oder wahlweise die Last am Endeffektor innerhalb des maximal zulässigen Arbeitsraums befindet.
-
Die
DE 10 2018 218 081 A1 betrifft eine Vorrichtung und ein Verfahren zur Ansteuerung eines Robotersystem, wobei eine Komponente des Robotersystems abhängig von einem Bewegungsplan angesteuert wird, wobei eine Roboterunabhängige Beschreibung von Teilaufgaben Information über Posen umfasst, wobei die Information über die Posen durch eine Zuordnung einer Reihenfolge von Konfigurationen für die Komponente in dem Bewegungsplan zugeordnet ist, und wobei in einem kombinatorischen Suchvorgang eine Zuweisung der Teilaufgaben zu wenigstens einer Komponente des Robotersystems und die Reihenfolge der für diese Teilaufgaben anzusteuernden Konfigurationen abhängig von Information über durch die wenigstens eine Komponente einnehmbaren Konfigurationen, der Information über die Posen, der Zuordnung und abhängig von wenigstens einer Bedingung für wenigstens einen Teil der Roboterunabhängigen Beschreibung der Teilaufgabe bestimmt wird.
-
Die
DE 10 2018 128 175 A1 betrifft ein Verfahren sowie eine Vorrichtung zur Ermittlung von Verlagerungen mindestens eines Werkzeugmittelpunktes eines Werkzeuges, das von einem Industrie-Roboter zur Bearbeitung eines Werkstücks genutzt wird, wobei in einer ersten Schrittfolge anhand von diskreten Orientierungswinkeln, welche die Werkzeugorientierungen des Werkzeugs beschreiben, alle möglichen Winkel-Kombinationen gebildet werden und dann eine Auswahl davon erfolgt, so dass jede Werkzeugorientierung nur durch jeweils eine Winkel-Kombination repräsentiert wird.
-
Die
DE 10 2016 212 958 A1 betrifft ein Verfahren zum Steuern eines redundanten Manipulators, wobei der Manipulator mehrere Bewegungsachsen aufweist und das Verfahren die folgenden Schritte umfasst: Bestimmen einer primären Aufgabe zum Steuern des Manipulators, wobei die primäre Aufgabe das Abfahren einer Bewegungsbahn des Manipulators umfasst; Bestimmen zumindest einer sekundären Aufgabe zum Steuern des Manipulators, wobei die sekundäre Aufgabe eine Reduzierung der effektiven Masse und/oder der effektiven Trägheit umfasst; Berechnen von n Alternativen möglicher Achswinkeln der Bewegungsachsen des Manipulators zur Erfüllung der primären Aufgabe, und Berechnen der Achswinkelgeschwindigkeiten für die n Alternativen; und Steuern des Manipulators unter Berücksichtigung der n Alternativen und der sekundären Aufgabe.
-
Die
DE 10 2008 001 664 B4 betrifft ein Verfahren zur Erfüllung der Performanceanforderung eines medizinischen Roboters, aufweisend folgende Verfahrensschritte: Befestigen eines medizinischen Werkzeugs an einer Befestigungsvorrichtung eines mehrere Achsen und eine Steuerungsvorrichtung aufweisenden Roboters, Ermitteln von wenigstens einem Lastparameter des am Roboter befestigten Werkzeugs durch den Roboter, um die Performanceanforderung an das Werkzeug zu ermitteln, durch Bewegen des Werkzeugs mittels des Roboters in unterschiedliche Positionen und Ermitteln von auf die Achsen des Roboters wirkenden Drehmomenten oder von Antrieben des Roboters aufgebrachten Drehmomenten oder durch Bewegen des Werkzeugs mittels des Roboters in unterschiedliche Positionen und Ermitteln von auf die Befestigungsvorrichtung des Roboters wirkenden Kräfte und/oder Drehmomenten, und Anpassen des Arbeitsbereichs des Roboters durch die Steuerungsvorrichtung derart, dass der Roboter die Performanceanforderung der mit dem medizinischen Werkzeug durchzuführenden Applikation erfüllt.
-
Aufgabe der vorliegenden Erfindung ist es, den Betrieb eines Roboters zu verbessern.
-
Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst. Ansprüche 9, 10 stellen ein System bzw. Computerprogramm bzw. Computerprogrammprodukt zur Durchführung eines hier beschriebenen Verfahrens unter Schutz. Die Unteransprüche betreffen vorteilhafte Weiterbildungen.
-
Nach einer Ausführung der vorliegenden Erfindung ist, in einer Weiterbildung wird, zum Betreiben eines Roboters für eine roboterfeste Referenz des Roboters eine Menge von Verknüpfungen abgespeichert, die jeweils Achsstellungen des Roboters und eine diesen zugeordnete bzw. mit diesen verknüpfte Pose der roboterfesten Referenz aufweisen.
-
Der Roboter weist in einer Ausführung wenigstens drei, insbesondere wenigstens sechs, (Bewegungs)Achsen bzw. Gelenke, in einer Ausführung lineare und/oder Drehachsen bzw. -gelenke, sowie Aktuatoren zum Verstellen dieser Achsen bzw. Gelenke und eine Steuerung zum Kommandieren dieser Aktuatoren auf.
-
Die roboterfeste Referenz ist in einer Ausführung eine endflanschseitige bzw. -feste Referenz, in einer Ausführung ein Endeffektor oder Endflansch oder ein TCP des Roboters.
-
Eine Achsstellung qi der Achsstellungen q = [q1, q2, ..., qf] des f-achsigen Roboters hängt in einer Ausführung von einer Verstellung (in) der i-ten Achse und/oder des diese verstellenden Aktuators ab, gibt diese in einer Ausführung an. Sie kann entsprechend insbesondere die Winkelstellung einer Drehachse bzw. eines Drehgelenks bzw. des diese(s) verstellenden Aktuators oder die Schubstellung einer linearen Achse bzw. eines linearen Gelenks bzw. des diese(s) verstellenden Aktuators sein bzw. diese angeben bzw. von dieser abhängen.
-
Eine Pose x umfasst in einer Ausführung eine ein-, zwei- oder dreidimensionale Position und/oder eine ein-, zwei- oder dreidimensionale Orientierung.
-
Somit kann die Menge der Verknüpfungen in einer Ausführung durch {(q1, x1), (q2, x2), ..., (qn, xn)} = {(q, x)i}, i = 1,...,n beschrieben, in einer Ausführung abgespeichert, sein. Natürlich sind auch andere Beschreibungen bzw. Speicherformen möglich, diese Beschreibung dient insbesondere zur kompakteren Erläuterung der Erfindung.
-
In einer Ausführung weisen die abgespeicherten Verknüpfungen jeweils zusätzlich Lastparameterwerte t, in einer Ausführung eine Masse und/oder eine, insbesondere ein-, zwei- oder dreidimensionale, Schwerpunktposition einer robotergeführten Last, insbesondere eines Werkzeugs und/oder einer Nutzlast, des Roboters auf, vorzugsweise verschiedene Lastparameterwerte tj für dieselben und/oder verschiedene Achswerte bzw. Posen ({(q1, x1, t1), ..., (qk, xk, tm ≥ 1)} = {(q, x, t)i}, i = 1,...,n).
-
In einer Ausführung sind, in einer Weiterbildung werden, die abgespeicherten Verknüpfungen auf Basis der Posen der roboterfesten Referenz bei den Achsstellungen des Roboters, denen diese zugeordnet, in einer Ausführung bei den Lastparameterwerten bzw. dem Roboter mit der entsprechenden Last, ermittelt. Dabei werden in einer Ausführung die Posen mithilfe einer (roboter)externen Messvorrichtung und/oder berührungslos, vorzugsweise optisch, in einer Ausführung mithilfe wenigstens eines Lasertrackers, gemessen, die Achsstellungen sind in einer Ausführung sensorisch erfasste oder kommandierte Achsstellungen.
-
Bevorzugt werden dabei verschiedene Achsstellungen angefahren und in diesen jeweils die Pose der roboterfesten Referenz gemessen, wobei vorzugsweise die Achsstellungen und/oder Posen innerhalb eines möglichst großen Bereichs der möglichen Achsstellungen bzw. Posen verteilt, insbesondere verteilt vorgegeben, sind bzw. werden. In einer Ausführung werden zwei oder mehr dieser Achsstellungen bzw. Posen, in einer Ausführung dieselben Achsstellungen bzw. Posen nacheinander, mit unterschiedlichen robotergeführten Lasten angefahren und jeweils die Pose der roboterfesten Referenz gemessen und zusammen mit den gemessenen oder kommandierten Achsstellungen und Lastparametern der jeweiligen robotergeführten Last abgespeichert.
-
Nach einer Ausführung der vorliegenden Erfindung weist das Verfahren die Schritte auf:
- - Vorgeben einer Applikation des Roboters;
- - Gewichten der abgespeicherten Verknüpfungen relativ zueinander, in einer Ausführung Auswählen einer Teilmenge der abgespeicherten Verknüpfungen, auf Basis dieser Applikation;
- - Ermitteln eines applikationsspezifischen Modells des Roboters auf Basis dieser gewichteten, insbesondere ausgewählten, Verknüpfungen; und
- - Durchführen der vorgegebenen Applikation, wobei der Roboter auf Basis, insbesondere mithilfe, dieses ermittelten applikationsspezifischen Modells betrieben, insbesondere gesteuert und/oder überwacht, wird.
-
Das Modell weist in einer Ausführung ein mathematisches bzw. numerisches und/oder kinematisches oder dynamisches Modell, in einer Ausführung eine Transformation zwischen Achsstellungen und einer Pose einer, vorzugsweise der, roboterfesten Referenz auf, in einer Ausführung eine Vorwärtstransformation (x = V(q)) und/oder eine Rückwärtstransformation (q = R(x)).
-
Einer Ausführung der vorliegenden Erfindung liegt folgende Idee zugrunde:
- Ein Modell, insbesondere ein solches Modell, kann in einer Ausführung auf Basis bekannter, insbesondere gemessener, Posen bei bekannten, insbesondere gemessenen oder kommandierten, Achsstellungen und gegebenenfalls bekannten, insbesondere vorgegebenen oder, vorzugsweise mit dem Roboter, gemessenen Lastparametern ermittelt werden.
-
So können insbesondere Parameter p des Modells (x = V(q, p) bzw. q = R(x, p) bzw. x = V(q, t, p) bzw. q = R(x, t, p)) mithilfe einer Optimierung derart bzw. mit der Maßgabe ermittelt, dass eine Norm der Abweichungen zwischen gemessenen und modellgestützt ermittelten bzw. prognostizierten Werten minimal wird, beispielsweise also
- Ermittle p so, dass
- G(||a1 - M(b1, p)||, ||a2 - M(b2, p)||,..., ||an - M(bn, p)||) optimal, insbesondere minimal
wobei ||·|| eine Norm, beispielsweise einen Betrag, G ein ein- oder mehrdimensionales Gütekriterium, beispielsweise die Summe ||·||1 + ||·||2 + ... + ||·||n, und - ai=xi, bi=qi oder (q, t)i, M=V oder
- ai=qi, bi=xi oder (x, t)i, M=R
bezeichnen.
-
Indem alle (in obiger Notation n) zur Verfügung stehenden bzw. gemessenen bzw. abgespeicherten Achsstellungen und Posen und gegebenenfalls Lastparameter verwendet werden, kann zwar vorteilhaft ein möglichst allgemeingültiges Modell ermittelt werden, dass für unterschiedliche Achsstellungen bzw. Posen und gegebenenfalls Lastparameter gültig ist und dabei insbesondere unterschiedlichen Verformungen des Roboters, insbesondere seiner Strukturglieder und/oder Getriebe, infolge unterschiedlicher Achsstellungen bzw. Posen und gegebenenfalls Lastparameter Rechnung trägt.
-
Allerdings geht diese Allgemeingültigkeit zulasten der Genauigkeit des Modells: würde das Modell beispielsweise nur für eine einzige Pose bzw. robotergeführte Last ermittelt, wäre es für diese Pose bzw. Last präziser.
-
Daher wird in einer Ausführung eine applikationsspezifische Gewichtung, insbesondere Auswahl, (aus) der (Menge der) abgespeicherten Verknüpfungen durchgeführt und dann ein applikationsspezifisches Modell auf Basis der gewichteten bzw. ausgewählten Verknüpfungen ermittelt, in obigem Beispiel in einer Ausführung :
- Ermittle p so, dass
- G(α1·||a1 - M(b1, p)||, α2·||a2 - M(b2, p)||, ..., αn·||an - M(bn, p)||) optimal, insbesondere minimal
insbesondere - Ermittle p so, dass
- G(α1·||a1 - M(b1,p)||, α2·||a2 - M(b2, p)||, ..., αv·||av- M(bv, p)||,
- 0·||av+1 - M(bv+1, p)||, 0·||av+2 - M(bv+2, p)||,..., 0·||an - M(bn, p)||) optimal, insbesondere minimal,
- α1,...,αv≠0
bzw. - Ermittle p so, dass
- G(α1·||a1 - M(b1, p)||, α2·||a2 - M(b2, p)||, ..., αv·||av - M(bv, p)||) optimal, insbesondere minimal, v < n
-
Dadurch kann in einer Ausführung für die jeweilige Applikation jeweils ein optimales Modell ermittelt und zum Betreiben verwendet werden. Indem dabei zunächst die Menge aller abgespeicherten Verknüpfungen zur Verfügung steht bzw. gestellt wird und dann jeweils applikationsspezifisch gewichtet bzw. ausgewählt und daraus ein applikationsspezifisches Modell ermittelt wird, kann in einer Ausführung vorteilhaft auf die Bereitstellung mehrerer Modelle und Auswahl aus diesen verzichtet und so der Aufwand reduziert und/oder der modellbasierte Betrieb verbessert werden. Zusätzlich oder alternativ kann durch die Ermittlung des applikationsspezifischen Modells auf Basis einer Gewichtung bzw. Auswahl der Menge aller abgespeicherten Verknüpfungen in einer Ausführung ein vorteilhaftes Modell verwendet und dadurch der Betrieb des Roboters verbessert werden.
-
In einer Ausführung wird auf Basis der Applikation ein Teilraum eines Arbeitsraums des Roboters vorgegeben und die abgespeicherten Verknüpfungen werden auf Basis dieses Teilraums gewichtet, insbesondere ausgewählt.
-
Dem liegt die Konkretisierung der vorstehend erläuterten Idee zugrunde, anstelle eines für einen größeren, insbesondere den gesamten, Arbeitsraum gültigen Modells applikationsspezifisch ein Modell zu ermitteln und zum Betreiben des Roboters zu verwenden, dass für einen applikationsspezifischen Teilraum des Arbeitsraums ermittelt und für diesen entsprechend vorteilhaft(er), in einer Ausführung präziser, ist.
-
Der Arbeitsraum und/oder der Teilraum kann in einer Ausführung ein Raum der Achsstellungen oder ein Raum der Posen der roboterfesten Referenz sein bzw. diese aufweisen bzw. beschreiben. In einer Ausführung ist der Teilraum kleiner als der Arbeitsraum bzw. ein echter Teilraum und/oder ist derjenige Teil des Arbeitsraums des Roboters, in dem dieser sich bei Durchführung der vorgegebenen Applikation (maximal) bewegt bzw. bewegen kann und/oder darf bzw. den der Roboter bei bzw. zur Durchführung der Applikation (maximal) nutzt bzw. nutzen kann und/oder darf oder auch nur ein Teil dieses Teils des Arbeitsraums oder auch größer als dieser Teil des Arbeitsraums (aber gleichwohl kleiner als der Arbeitsraum). Der Arbeitsraum, dessen Teilraum nach dieser Ausführung vorgegeben ist bzw. wird, umfasst in einer Ausführung alle Achsstellungen und/oder Posen der Menge von abgespeicherten Verknüpfungen, in einer Ausführung ist er der maximale Arbeitsraum des Roboters. Der Teilraum umfasst in einer Ausführung wenigstens eine der Achsstellungen und/oder Posen der Menge von abgespeicherten Verknüpfungen nicht.
-
In einer Ausführung kann dies durch den Arbeitsraum A ⊇ {xi} oder {qi}, i = 1,...,v, v+1, v+2, ... n, den Teilraum B ⊂ A bzw. B ⊂ {xi} oder {qi} und/oder α1,,..., αv ≠ 0, αv+1 = αv+2 = αn = 0 symbolisiert werden.
-
Zusätzlich oder alternativ zu einer raumspezifischen Gewichtung, insbesondere Auswahl, werden in einer Ausführung, in der die abgespeicherten Verknüpfungen jeweils Lastparameterwerte, insbesondere eine Masse und/oder Schwerpunktposition einer robotergeführten Last, des Roboters aufweisen, die abgespeicherten Verknüpfungen auf Basis einer applikationsspezifischen Last des Roboters, insbesondere eines robotergeführten Werkzeugs und/oder einer robotergeführten Nutzlast des Roboters, gewichtet, insbesondere ausgewählt.
-
Dem liegt die Konkretisierung der vorstehend erläuterten Idee zugrunde, anstelle eines für verschiedene Lasten gültigen Modells applikationsspezifisch ein Modell zu ermitteln und zum Betreiben des Roboters zu verwenden, dass für eine applikationsspezifische Last ermittelt und für diese entsprechend vorteilhaft(er), in einer Ausführung präziser, ist. In einer Ausführung werden dabei abgespeicherte Verknüpfungen in Abhängigkeit davon gewichtet bzw. ausgewählt, wie ähnlich ihre Lastparametern denen der applikationsspezifischen Last sind, insbesondere Verknüpfungen bei der Ermittlung des Modells stark bzw. stärker bzw. hoch bzw. höher gewichtet, insbesondere ausgewählt, wenn ihre Lastparametern denen der applikationsspezifischen Last ähnlich(er) sind, und schwach bzw. schwächer bzw. niedrig(er) gewichtet, insbesondere nicht ausgewählt, wenn ihre Lastparametern denen der applikationsspezifischen Last unähnlich(er) sind. Beispielsweise können diejenige(n) Verknüpfung(en) ausgewählt werden, die der applikationsspezifischen Last am ähnlichsten ist/sind, oder die vorstehend erläuterte Gewichtung α1,..., αu in Abhängigkeit von der Ähnlichkeit vorgegeben werden (αi = αi(||ti - ts||), zum Beispiel αi = ||ti - ts||/||t - ts||max) mit den Lastparametern ts der applikationsspezifischen Last). Natürlich sind auch andere Arten bzw. Implementierungen von Gewichtungen möglich, insbesondere Gewichtungen auf Basis der applikationsspezifischen Last.
-
In einer Ausführung wird das applikationsspezifische Modell auf Basis der gewichteten, insbesondere ausgewählten, Verknüpfungen mithilfe einer Optimierung ermittelt.
-
Hierfür ist die vorliegende Erfindung besonders geeignet, da durch eine Optimierung einerseits ein vorteilhaftes, insbesondere präzise(re)s und/oder zuverlässig(ere)s Modell ermittelt werden kann und andererseits eine Optimierung von einer Auswahl bzw. Gewichtung der dabei berücksichtigten Verknüpfungen besonders profitieren kann, insbesondere hinsichtlich einer Konvergenz, Präzision und/oder Rechengeschwindigkeit.
-
In einer Ausführung wird das applikationsspezifische Modell auf Basis der gewichteten, insbesondere ausgewählten, Verknüpfungen bei oder nach Konfiguration, in einer Weiterbildung während der Laufzeit, der Applikation ermittelt.
-
Dadurch kann in einer Ausführung vorteilhaft auf die Vorabbereitstellung mehrerer Modelle und Auswahl aus diesen verzichtet und so der Aufwand reduziert und/oder der modellbasierte Betrieb verbessert werden.
-
In einer Ausführung wird die Applikation erst bei, insbesondere vor Ort bzw. am Arbeitsplatz, in einer Ausführung einer Roboterzelle, Fertigungsstraße oder dergleichen, installiertem Roboter vorgegeben. Zusätzlich oder alternativ werden in einer Ausführung die Verknüpfungen beim Roboterhersteller abgespeichert und/oder am Arbeitsplatz des Roboters zur Verfügung gestellt, insbesondere zusammen mit dem Roboter bzw. seiner Steuerung ausgeliefert und/oder dort heruntergeladen oder von dort auf sie zugegriffen.
-
Hierdurch können in einer Ausführung vorteilhaft Mehrzweckroboter gebaut und ausgeliefert und erst vor Ort bzw. in situ für die jeweilige(n) spezifische(n) Applikation(en) durch Ermitteln des Modells optimiert bzw. werden.
-
In einer Ausführung ist, in einer Weiterbildung wird, ein Grundmodell des Roboters abgespeichert.
-
In einer Weiterbildung wird das applikationsspezifische Modell dann auf Basis dieses abgespeicherten Grundmodells und der gewichteten, insbesondere ausgewählten, Verknüpfungen ermittelt.
-
Dadurch kann das applikationsspezifische Modell in einer Ausführung vorteilhaft, insbesondere schnell(er) und/oder zuverlässig(er), ermittelt werden.
-
In einer Ausführung wird das applikationsspezifische Modell auf Basis der gewichteten, insbesondere ausgewählten, Verknüpfungen mithilfe einer bzw. der Optimierung ermittelt, (wobei) deren Start auf Basis dieses abgespeicherten Grundmodells vorgegeben wird.
-
Dadurch kann das applikationsspezifische Modell in einer Ausführung besonders vorteilhaft, insbesondere (noch) schnell(er) und/oder zuverlässig(er), ermittelt werden.
-
Zusätzlich oder alternativ wird in einer Ausführung die vorgegebene Applikation wenigstens ein weiteres Mal oder eine andere Applikation durchgeführt, wobei - in einer Weiterbildung eingabeabhängig bzw. infolge einer entsprechenden Eingabe, insbesondere durch einen Benutzer - der Roboter auf Basis, insbesondere mithilfe, des abgespeicherten Grundmodells betrieben wird.
-
In einer Weiterbildung ist, in einer Ausführung wird, das Grundmodell, in einer Ausführung mithilfe einer Optimierung, auf Basis der Verknüpfungen, insbesondere gesamten Menge der, insbesondere gleichermaßen für mehrere Applikationen bzw. allgemeingültig bzw. nicht applikationsspezifisch gewichteten, Verknüpfungen ermittelt.
-
Somit wird in einer Ausführung vorgeschlagen, ein, vorzugsweise allgemeingültige(re)s Grundmodell zur Verfügung zu stellen, in einer Ausführung als Default vorzugeben, und so den Roboter auch ohne Vorgeben einer Applikation oder in einer anderen Applikation oder auch in der vorgegebenen Applikation alternativ statt mit dem hierfür spezifisch ermittelten Modell modellbasiert und damit vorteilhaft betreiben zu können.
-
In einer Ausführung wird das auf Basis der gewichteten, insbesondere ausgewählten, Verknüpfungen ermittele applikationsspezifische Modell mithilfe abgespeicherter Testverknüpfungen verifiziert und die vorgegebene Applikation durchgeführt, wobei der Roboter auf Basis des ermittelten und verifizierten applikationsspezifischen Modells betrieben wird. Insbesondere kann geprüft werden, ob mittels des applikationsspezifischen Modells für Achsstellungen bzw. Posen und gegebenenfalls Lastparameter der Testverknüpfungen ermittelte Werte mit denen der Testverknüpfungen ausreichend übereinstimmen und nur bei ausreichender Übereinstimmung das applikationsspezifische Modell als verifiziert zum Betreiben des Roboters verwendet werden.
-
Hierdurch kann in einer Ausführung die Betriebssicherheit erhöht werden.
-
In einer Ausführung weist das Verfahren die Schritte auf:
- - Vorgeben einer ersten Applikation des Roboters;
- - Gewichten der abgespeicherten Verknüpfungen relativ zueinander, insbesondere Auswählen einer Teilmenge der abgespeicherten Verknüpfungen, auf Basis dieser ersten Applikation;
- - Ermitteln eines für diese erste Applikation spezifischen bzw. erste(applikationsspezifische)n Modells des Roboters auf Basis dieser gewichteten, insbesondere ausgewählten, Verknüpfungen;
- - Durchführen der ersten Applikation, wobei der Roboter auf Basis dieses erste(applikationsspezifische)n Modells betrieben wird;
- - Vorgeben wenigstens einer weiteren Applikation des Roboters;
- - anderes Gewichten der abgespeicherten Verknüpfungen relativ zueinander, insbesondere Auswählen einer anderen Teilmenge der abgespeicherten Verknüpfungen, auf Basis dieser weiteren Applikation;
- - Ermitteln eines für diese weitere Applikation spezifischen bzw.
weitere(applikationsspezifische)n Modells des Roboters auf Basis dieser gewichteten, insbesondere ausgewählten, Verknüpfungen; und
- - Durchführen der weiteren Applikation, wobei der Roboter auf Basis dieses weitere(applikationsspezifische)n Modells betrieben wird.
-
In einer Ausführung werden dabei:
- auf Basis der ersten Applikation ein erster Teilraum eines Arbeitsraums des Roboters vorgegeben, die abgespeicherten Verknüpfungen auf Basis dieses ersten Teilraums gewichtet, insbesondere ausgewählt, und das erste(applikationsspezifische) Modell auf Basis dieser gewichteten, insbesondere ausgewählten, Verknüpfungen ermittelt; und
- auf Basis der weiteren Applikation ein anderer Teilraum des Arbeitsraums des Roboters vorgegeben, die abgespeicherten Verknüpfungen auf Basis dieses anderen Teilraums gewichtet, insbesondere ausgewählt, und das
- weiter(eapplikationsspezifisch)e Modell auf Basis dieser gewichteten, insbesondere ausgewählten, Verknüpfungen ermittelt.
-
Zusätzlich oder alternativ werden in einer Ausführung die abgespeicherten Verknüpfungen auf Basis einer für die erste Applikation spezifischen bzw. erste(applikationsspezifische)n Last des Roboters gewichtet, insbesondere ausgewählt, und das erste(applikationsspezifische) Modell auf Basis dieser gewichteten, insbesondere ausgewählten, Verknüpfungen ermittelt; und die abgespeicherten Verknüpfungen auf Basis einer anderen, für die weitere Applikation spezifischen bzw. weiter(eapplikationsspezifisch)e Last des Roboters gewichtet, insbesondere ausgewählt, und das weiter(eapplikationsspezifisch)e Modell auf Basis dieser gewichteten, insbesondere ausgewählten, Verknüpfungen ermittelt.
-
In einer Ausführung werden das erst(eapplikationsspezifisch)e und/oder das weiter(eapplikationsspezifisch)e Modell (jeweils) auf Basis der (entsprechenden) gewichteten, insbesondere ausgewählten, Verknüpfungen mithilfe einer Optimierung und/oder bei oder nach Konfiguration, insbesondere während der Laufzeit, der (ersten bzw. weiteren) Applikation ermittelt.
-
Zusätzlich oder alternativ werden in einer Ausführung das erst(eapplikationsspezifisch)e und/oder das weiter(eapplikationsspezifisch)e Modell (jeweils) auf Basis des abgespeicherten Grundmodells ermittelt, insbesondere mithilfe einer Optimierung ermittelt, deren Start auf Basis dieses abgespeicherten Grundmodells vorgegeben wird.
-
Zusätzlich oder alternativ wird in einer Ausführung die vorgegebene erste und/oder weitere Applikation wenigstens ein weiteres Mal oder eine andere Applikation durchgeführt wird, wobei, insbesondere eingabeabhängig, der Roboter auf Basis des abgespeicherten Grundmodells betrieben wird.
-
Zusätzlich oder alternativ werden in einer Ausführung das erst(eapplikationsspezifisch)e und/oder das weiter(eapplikationsspezifisch)e Modell (jeweils) mithilfe abgespeicherter Testverknüpfungen verifiziert.
-
Nach einer Ausführung der vorliegenden Erfindung ist ein System, insbesondere hard- und/oder software-, insbesondere programmtechnisch, zur Durchführung eines hier beschriebenen Verfahrens eingerichtet.
-
Nach einer Ausführung der vorliegenden Erfindung weist ein System - wobei für eine roboterfeste Referenz des Roboters eine Menge von Verknüpfungen abgespeichert ist, die jeweils Achsstellungen des Roboters und eine diesen zugeordnete Pose der roboterfesten Referenz aufweisen - auf:
- - Mittel zum Vorgeben einer Applikation des Roboters;
- - Mittel zum Gewichten der abgespeicherten Verknüpfungen relativ zueinander, insbesondere Auswählen einer Teilmenge der abgespeicherten Verknüpfungen, auf Basis dieser Applikation;
- - Mittel zum Ermitteln eines applikationsspezifischen Modells des Roboters auf Basis dieser gewichteten, insbesondere ausgewählten, Verknüpfungen; und
- - Mittel zum Durchführen der vorgegebenen Applikation, wobei der Roboter auf Basis dieses ermittelten applikationsspezifischen Modells betrieben wird.
-
In einer Ausführung weist das System bzw. sein(e) Mittel auf:
- - Mittel zum Vorgeben eines Teilraums eines Arbeitsraums des Roboters auf Basis der Applikation und Gewichten, insbesondere Auswählen, der abgespeicherten Verknüpfungen auf Basis dieses Teilraums; und/oder
- - Mittel zum Gewichten, insbesondere Auswählen, der abgespeicherten Verknüpfungen auf Basis einer applikationsspezifischen Last des Roboters; und/oder
- - Mittel zum Ermitteln des applikationsspezifischen Modells mithilfe einer Optimierung und/oder bei oder nach Konfiguration, insbesondere während der Laufzeit, der Applikation; und/oder
- - ein abgespeichertes Grundmodell; und/oder
- - Mittel zum Ermitteln des applikationsspezifischen Modells auf Basis dieses abgespeicherten Grundmodells; und/oder
- - Mittel zum Durchführen der vorgegebenen Applikation wenigstens ein weiteres Mal oder einer andere Applikation, wobei, insbesondere eingabeabhängig, der Roboter auf Basis des abgespeicherten Grundmodells betrieben wird; und/oder
- - Mittel zum Verifizieren des auf Basis der gewichteten, insbesondere ausgewählten, Verknüpfungen ermittelten applikationsspezifischen Modells mithilfe abgespeicherter Testverknüpfungen.
-
Ein System und/oder ein Mittel im Sinne der vorliegenden Erfindung kann hard- und/oder softwaretechnisch ausgebildet sein, insbesondere wenigstens eine, vorzugsweise mit einem Speicher- und/oder Bussystem daten- bzw. signalverbundene, insbesondere digitale, Verarbeitungs-, insbesondere Mikroprozessoreinheit (CPU), Graphikkarte (GPU) oder dergleichen, und/oder ein oder mehrere Programme oder Programmmodule aufweisen. Die Verarbeitungseinheit kann dazu ausgebildet sein, Befehle, die als ein in einem Speichersystem abgelegtes Programm implementiert sind, abzuarbeiten, Eingangssignale von einem Datenbus zu erfassen und/oder Ausgangssignale an einen Datenbus abzugeben. Ein Speichersystem kann ein oder mehrere, insbesondere verschiedene, Speichermedien, insbesondere optische, magnetische, Festkörper- und/oder andere nicht-flüchtige Medien aufweisen. Das Programm kann derart beschaffen sein, dass es die hier beschriebenen Verfahren verkörpert bzw. auszuführen imstande ist, sodass die Verarbeitungseinheit die Schritte solcher Verfahren ausführen kann und damit insbesondere den Roboter betreiben kann. Ein Computerprogrammprodukt kann in einer Ausführung ein, insbesondere computerlesbares und/oder nicht-flüchtiges, Speichermedium zum Speichern eines Programms bzw. von Anweisungen bzw. mit einem darauf gespeicherten Programm bzw. mit darauf gespeicherten Anweisungen aufweisen, insbesondere sein. In einer Ausführung veranlasst ein Ausführen dieses Programms bzw. dieser Anweisungen durch ein System bzw. eine Steuerung, insbesondere einen Computer oder eine Anordnung von mehreren Computern, das System bzw. die Steuerung, insbesondere den bzw. die Computer, dazu, ein hier beschriebenes Verfahren bzw. einen oder mehrere seiner Schritte auszuführen, bzw. sind das Programm bzw. die Anweisungen hierzu eingerichtet.
-
In einer Ausführung werden ein oder mehrere, insbesondere alle, Schritte des Verfahrens vollständig oder teilweise automatisiert durchgeführt, insbesondere durch das System bzw. sein(e) Mittel.
-
In einer Ausführung weist das System den Roboter auf.
-
Weitere Vorteile und Merkmale ergeben sich aus den Unteransprüchen und den Ausführungsbeispielen. Hierzu zeigt, teilweise schematisiert:
- 1: ein System nach einer Ausführung der vorliegenden Erfindung; und
- 2: ein Verfahren nach einer Ausführung der vorliegenden Erfindung.
-
1 zeigt ein System nach einer Ausführung der vorliegenden Erfindung mit einem Roboter 1, der an seinem Endflansch 3 ein Werkzeug 4 führt, und einer Steuerung 2 zum Steuern des Roboters 1 und Durchführen eines Verfahrens nach einer Ausführung der vorliegenden Erfindung, das in 2 dargestellt ist.
-
In einem Schritt S10 werden zunächst mit dem Roboter 1 verschiedene Achsstellungen qj angefahren und dabei die jeweils die Pose xj seines TCPs vermessen und zusammen mit den Achsstellungen abgespeichert. In einer Ausführung wird dies mit mehreren verschiedenen Lasten, beispielsweise anderen Werkzeugen, wiederholt, deren Lastparameter tp dann mit abgespeichert werden ({(q, x, t)i}, i = 1,...,n).
-
Auf Basis dieser gespeicherten Verknüpfungen wird in Schritt S20 mithilfe einer Optimierung ein allgemein- bzw. für all diese Achsstellungen, Posen und gegebenenfalls Lastparameter gültiges Grundmodell ermittelt, exemplarisch eine Vorwärtstransformation (x = V(q)).
-
Dann wird eine Applikation des Roboters 1 vorgegeben, beispielsweise ein Fügen, ein Nutzlasttransfer oder dergleichen (2: Schritt S30).
-
Ein Anwender kann durch entsprechende Eingabe an die Steuerung 2 entscheiden, ob das Grundmodell oder ein applikationsspezifisches Modell verwendet werden soll.
-
Entscheidet er sich für das applikationsspezifische Modell (S40: „Y“), werden in einem Schritt S50 aus den n abgespeicherten Verknüpfungen diejenigen ausgewählt, deren Achsstellungen bzw. Posen in dem Teilraum des durch die n abgespeicherten Verknüpfungen aufgespannten Arbeitsraums liegen, in dem die Applikation durchgeführt wird. Diese ausgewählten Verknüpfungen werden dann in Abhängigkeit von der applikationsspezifischen Last des Roboters 1 gewichtet, wobei Verknüpfungen, deren Lastparameter tp der applikationsspezifischen Last ähnlich(er) sind, stark bzw. stärker gewichtet, in einer Ausführung ausgewählt, und Verknüpfungen, deren Lastparameter tp der applikationsspezifischen Last wenig(er) ähnlich sind, schwach bzw. schwächer gewichtet, in einer Ausführung ignoriert bzw. nicht berücksichtigt, werden (S60).
-
Auf Basis dieser ausgewählten, gewichteten Verknüpfungen wird dann in gleicher Weise wie in Schritt S20 ein applikationsspezifisches Modell mithilfe einer Optimierung ermittelt, deren Startwert nun vorzugsweise das Grundmodell bildet ( 2: Schritt S70).
-
Dieses applikationsspezifische Modell wird dann mithilfe abgespeicherter Testverknüpfungen verifiziert (2: Schritt S80).
-
Anschließend wird die vorgegebene Applikation durchgeführt, wobei der Roboter 1 auf Basis des ermittelten applikationsspezifischen Modells betrieben wird (2: Schritt S90).
-
Falls der durch entsprechende Eingabe an die Steuerung 2 entscheidet, dass das Grundmodell werden soll (S40: „N“), wird die vorgegebene Applikation durchgeführt, wobei der Roboter 1 auf Basis des Grundmodells betrieben wird (2: Schritt S100).
-
Obwohl in der vorhergehenden Beschreibung exemplarische Ausführungen erläutert wurden, sei darauf hingewiesen, dass eine Vielzahl von Abwandlungen möglich ist.
-
So wurde insbesondere eine Auswahl der abgespeicherten Verknüpfungen auf Basis des auf Basis der Applikation vorgegebenen Teilraums und eine Gewichtung auf Basis einer applikationsspezifischen Last gemeinsam und in zwei Stufen erläutert, wobei eine der beiden Varianten im Ausführungsbeispiel auch entfallen oder beides in einem Schritt erfolgen kann, zum Beispiel, indem die applikationsspezifische Gewichtung αi in Abhängigkeit von Teilraum und Last vorgegeben wird.
-
Bezugszeichenliste
-
- 1
- Roboter
- 2
- Steuerung
- 3
- Endflansch
- 4
- Endeffektor/Werkzeug