-
Die Erfindung betrifft ein Verfahren zum Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator sowie eine Steuereinheit zum Erzeugen und Optimieren eines Steuerprogramms für den Robotermanipulator.
-
Aufgabe der Erfindung ist es, das Erzeugen eines Steuerprogramms und das Optimieren des Steuerprogramms für einen Robotermanipulator zu verbessern.
-
Im Stand der Technik sind verschiedenste Verfahren zur Ermittlung eines Steuerprogramms für einen Robotermanipulator bekannt.
-
So betrifft die
DE 10 2018 204 740 A1 eine Aktionsinformations-Lernvorrichtung, umfassend: eine Zustandsinformation-Erfassungseinheit zum Erfassen von Zustandsformation eines Roboters in einem Fall, bei dem der Roboter ein Werkstück, das aus einem Werkstücklagerplatz erfasst wird, an einen Bediener, innerhalb eines Werkstückübergabebereichs, welches ein Bereich ist, in welchem das Werkstück zu übergeben ist, übergibt; eine Aktionsinformations-Ausgabeeinheit zum Ausgeben von Aktionsinformation, die Justierinformation für die Zustandsinformation ist; eine Vergütungsrecheneinheit zum Erfassen von Bestimmungsinformation, die Information zu einer Übergabezeit ist, welche sich auf die Übergabe des Werkstücks bezieht, und Berechnen eines Vergütungswertes beim Verstärkungslernen, basierend auf der so erfassten Bestimmungsinformation; und eine Wertefunktions-Aktualisierungseinheit zum Aktualisieren einer Wertefunktion mittels des Durchführens des Verstärkungslernens, basierend auf einem Vergütungswert, welcher durch die Vergütungsrecheneinheit berechnet wird, der Zustandsinformation und der Aktionsinformation.
-
Die
DE 10 2016 010 945 B3 betrifft ein Optimierungsverfahren zur Berechnung einer optimierten Bewegungsbahn eines Beschichtungsroboters, der ein Applikationsgerät über eine zu beschichtende Bauteiloberfläche führt, mit den folgenden Schritten: a) Definition von aufeinander folgenden Bahnpunkten der Bewegungsbahn durch Bahnpunktdaten, wobei die Bahnpunktdaten für den jeweiligen Bahnpunkt a1) zum einen die räumliche Position eines Referenzpunkts des Applikationsgeräts an dem jeweiligen Bahnpunkt mindestens teilweise definieren, insbesondere eines Farbauftreffpunkts, und a2) zum anderen die räumliche Ausrichtung des Applikationsgeräts an dem jeweiligen Bahnpunkt mindestens teilweise definieren, und b) Berechnung möglicher Roboterkonfigurationen für die einzelnen Bahnpunkte der Bewegungsbahn, b1) wobei jede Roboterkonfiguration jeweils alle Achsstellungen aller Roboterachsen umfasst und b2) zumindest einige der Bahnpunkte jeweils wahlweise durch mehrere verschiedene Roboterkonfigurationen erreichbar sind, gekennzeichnet durch folgenden Schritt: c) Berechnung eines bahnpunktbezogenen Qualitätswerts jeweils einzeln für die verschiedenen möglichen Roboterkonfigurationen der einzelnen Bahnpunkte, so dass jeder Roboterkonfiguration jeweils ein Qualitätswert zugeordnet ist, und d) Auswahl einer der möglichen Roboterkonfigurationen für die einzelnen Bahnpunkte in Abhängigkeit von dem bahnpunktbezogenen Qualitätswert der verschiedenen möglichen Roboterkonfigurationen.
-
Die
DE 10 2015 204 641 A1 betrifft ein Verfahren zur Programmierung eines Roboters, insbesondere eines Roboters umfassend einen Roboterarm, wobei, vorzugsweise in einem Roboterprogramm, mit einer vordefinierten Bewegungsschablone eine auszuführende Roboterbewegung eingerichtet wird, wobei die Bewegungsschablone aus einer mehrere Bewegungsschablonen umfassenden Datenbank selektiert wird, wobei die Bewegungsschablone ein oder mehrere parametrierbare Ausführungsmodule und mindestens ein Lernmodul umfasst, wobei das Ausführungsmodul bzw. die Ausführungsmodule zur Planung und/oder Durchführung der Roboterbewegung oder einer Teilbewegung der Roboterbewegung verwendet wird bzw. werden, wobei das Lernmodul in einem Initialisierungsprozess, insbesondere in Form eines Teach-Prozesses, eine oder mehrere Konfigurationen des Roboters aufzeichnet, und wobei das Lernmodul basierend auf den aufgezeichneten Konfigurationen, vorzugsweise unter Verwendung eines maschinellen Lernverfahrens, Parameter für das Ausführungsmodul bzw. die Ausführungsmodule berechnet.
-
Die
DE 10 2014 112 639 B4 betrifft ein System zum Erstellen von Steuerungsdatensätzen für vernetzte Roboter, aufweisend mehrere Roboter Ri, mit i = 1, 2, 3,..., n, und n ≥ 2, einen Optimierer OE und eine Datenbank DB, die über ein Datennetz miteinander vernetzt sind, wobei - jeder Roboter Ri zumindest aufweist: eine Steuereinheit SEi zur Steuerung und oder Regelung des Roboters Ri; eine Speichereinheit SPEi zur Speicherung von Steuerungsdatensätzen SDi, die jeweils die Steuerung des Roboters Ri entsprechend einer vorgegebenen Aufgabe Ak ermöglichen, mit k = 0, 1, 2,..., m; eine Einheit EEi zur Vorgabe einer neuen Aufgabe Am+1 für den Roboter Ri, wobei gilt Am+1 ≠ Ak; eine Einheit EHi zur Ermittlung eines Steuerungsdatensatzes SDi zur Ausführung der Aufgabe Am+1 durch den Roboter Ri, eine Bewertungseinheit BEi, die den von der Einheit EHi ermittelten Steuerungsdatensatz SDi hinsichtlich zumindest eines Parameters P1 mit der Kennzahl KP1) bewertet, und eine Kommunikationseinheit KEi zur Kommunikation mit dem Optimierer OE und/oder der Datenbank DB und/oder anderen Robotern Rji≠i, - der Optimierer OE, dazu ausgeführt und eingerichtet ist, nach Anforderung durch einen Roboter Ri zumindest hinsichtlich eines vorgegebenen Parameters P2 einen optimierten Steuerungsdatensatz SDi,P2 zu ermitteln, wobei die Anforderung durch den Roboter Ri dann erfolgt, sofern die Kennzahl KP1) einer vorgegebenen Bedingung nicht genügt, und - die Datenbank DB, die den vom Optimierer OE optimierten Steuerungsdatensatz SDi,P2 speichert und zur Ausführung der Aufgabe Am+1 an den Roboter Ri bereitstellt.
-
Die
DE 10 2011 082 800 B4 betrifft ein Verfahren zum automatisierten, computergestützten Erzeugen von Arbeitsablaufplänen für die Behandlung oder Bearbeitung eines Werkstücks mit einem Werkzeug durch einen Industrieroboter das Verfahren umfasst: Bereitstellen eines Ausgangsplanes umfassend eine Vielzahl von Werkzeugbahnen für ein Werkstück in einer bestimmten Soll-Lage und für bestimmte, die Behandlung bzw. Bearbeitung beeinflussende Prozessparameter, wobei eine Werkzeugbahn die Soll-Bewegung des Werkzeugs entlang des Werkstücks festlegt; Definieren eines Zustandsraumes, der variable, die Behandlung bzw. Bearbeitung beeinflussende Parameterwerte beschreibt, wobei jeder Punkt des Raumes eine konkrete Kombination von möglichen Parameterwerten darstellt; Diskretisieren des Raumes in einzelne Zustände; Simulieren der Behandlung bzw. Bearbeitung des Werkstücks unter Verwendung des Ausgangsplanes für einen oder mehrere diskrete Zustände und Bewerten des simulierten Bearbeitungs- bzw. Behandlungsergebnisses entsprechend einem vorgebbaren Kriterium; Iteratives Modifizieren des Ausgangsplanes, anschließendes Simulieren der Behandlung bzw. Bearbeitung des Werkstücks unter Verwendung des modifizierten Planes für mindestens einen diskreten Zustand und Bewerten des simulierten Bearbeitungs- bzw. Behandlungsergebnisses entsprechend einer vorgebbaren Kostenfunktion; Durchführen der Iteration solange bis die Kostenfunktion ein Minimum erreicht oder einen Schwellwert unterschreitet und somit ein optimierter Plan für den jeweiligen Zustand gefunden ist.
-
Die
DE 10 2010 012 598 A1 betrifft eine Prozessmodulbibliothek zur Programmierung eines Manipulatorprozesses, insbesondere eines Montageprozesses, mit einer Mehrzahl von parametrierbaren Prozessmodulen“, „peg_in_hole“, „gear“, „screw“) zur Durchführung je eines, insbesondere für verschiedene Manipulatorprozesse gemeinsamen, Teilprozesses, wobei die Prozessmodule jeweils eine Mehrzahl von Basisbefehlen eines gemeinsamen Basisbefehlssatzes zur Durchführung einer, insbesondere atomaren oder molekularen, Basisoperation umfassen, wobei ein Prozessmodul mit einem weiteren Prozessmodul und/oder einem Basisbefehl, insbesondere mathematisch, verknüpfbar ist.
-
Die Erfindung ergibt sich aus den Merkmalen der unabhängigen Ansprüche. Vorteilhafte Weiterbildungen und Ausgestaltungen sind Gegenstand der abhängigen Ansprüche.
-
Ein erster Aspekt der Erfindung betrifft ein Verfahren zum Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator, aufweisend die Schritte:
- - Auswählen von strukturell vorgegebenen Programmabschnitten und Zusammensetzen der ausgewählten Programmabschnitte zur strukturellen Definition des Steuerprogramms durch eine Steuereinheit des Robotermanipulators,
- - Vorgeben eines initialen Satzes von Werten von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte, wobei die ausgewählten und zusammengesetzten Programmabschnitte mit ihren Parametern das Steuerprogramm bilden,
- - automatisches, wiederholtes Ausführen des Steuerprogramms unter Variationen von Werten von zumindest einem Teil der Parameter durch die Steuereinheit,
- - Ermitteln einer Qualität eines jeweiligen Ergebnisses der jeweiligen Ausführung des Steuerprogramms, und
- - Abspeichern von ausgewählten variierten Werten des zumindest einen Teils der Parameter in der Steuereinheit, wobei die abzuspeichernden Werte des Teils der Parameter gemäß der ermittelten Qualität nach einem vorgegebenen Gütekriterium ausgewählt werden.
-
Die strukturell vorgegebenen Programmabschnitte bestimmen einen strukturellen Ablauf des Steuerprogramms für den Robotermanipulator, ohne jedoch Werte für Parameter zu beinhalten. Die Parameter sind daher in den strukturell vorgegebenen Programmabschnitten noch nicht enthalten, da diese für die jeweilige individuelle Aufgabe anzupassen sind. Der prinzipielle Aufbau des Steuerprogramms wird jedoch durch die strukturell vorgegebenen Programmabschnitte im Sinne einer Folge von logischen Programmabschnitten definiert.
-
In dem ersten Schritt des Verfahrens werden daher aus einer Vielzahl von strukturell vorgegebenen Programmabschnitten bestimmte ausgewählt. Dies erfolgt bevorzugt durch das Auswählen eines Anwenders, der den prinzipiellen Ablauf des Steuerprogramms damit definiert. Die vorgegebenen Programmabschnitte sind insbesondere modular ausgestaltet und weisen gegebenenfalls Schnittstellen auf, sodass sie seriell hintereinander schaltbar sind. Dies entspricht dem Zusammensetzen der ausgewählten Programmabschnitte, sodass durch die Gesamtheit aller ausgewählten Programmabschnitte ein insgesamt ausführbarer Ablauf des Steuerprogramms entsteht.
-
Beispiele für die vorgegebenen Programmabschnitte sind das Schließen eines Greifers, das Bewegen eines Endeffektors von einem vorgegebenen Startpunkt zu einem vorgegebenen Zielpunkt, das Zurückfahren des Robotermanipulators in seine Ausgangspose, das Anfahren von vorgegebenen Orten in einer Umgebung des Robotermanipulators, das Wiederholen einer oder mehrerer vorangegangener Programmabschnitte, das Aufbringen einer vorgegebenen Kraft oder eines vorgegebenen Moments auf eine Umgebung des Robotermanipulators, das Umschalten in einen anderen Regelungsmodus, beispielsweise von einer Kraftregelung in eine Impedanzregelung oder eine Positionsregelung oder jeweils umgekehrt, oder Ähnliches.
-
Wird beispielsweise als Steuerprogramm das Verfahren des Robotermanipulators zu einem Objekt, mit dem anschließenden Greifen des Objekts, und mit dem Transportieren des Objekts zu einem vorgegebenen Zielpunkt vorgegeben, so können die einzelnen Schritte als strukturell vorgegebene Programmabschnitte zunächst definiert werden, dabei ist jedoch noch nicht festgelegt, mit welcher Geschwindigkeit das Transportieren erfolgen soll, mit welcher Kraft das Greifen erfolgen soll, etc.. Dies wird durch die Werte der Parameter für solche ausgewählte und zusammengesetzte Programmabschnitte festgelegt, wobei die Parameter dann die Beschleunigungen, Geschwindigkeiten, Kräfte, etc. darstellen.
-
Dabei wird ein initialer Satz von Werten für die Parameter der ausgewählten und zusammengesetzten Programmabschnitte vorgegeben. Ist die Struktur des Steuerprogramms durch die zusammengesetzten strukturell vorgegebenen Programmabschnitte definiert, und sind anschließend für diesen Satz der Programmabschnitte auch entsprechende Parameter mit Werten konkret definiert, liegt ein ausführbares Steuerprogramm vor. Dieses Steuerprogramm wird automatisch durch die Steuereinheit wiederholt ausgeführt, wobei zumindest ein Teil der Parameter des so erzeugten Steuerprogramms in jeder der wiederholten Ausführungen variiert wird.
-
Es ergibt sich damit ein automatisiertes Suchverfahren zur Verbesserung der initial vorgegebenen Werte der Parameter. Es müssen dabei nicht notwendigerweise sämtliche der vorgegebenen Werte von Parameter variiert werden; unter Umständen ist es gewünscht, dass vom Anwender vorgegebene Parameter gerade nicht variiert werden. Im obigen Beispiel können Parameter, die nicht variiert werden sollen, die Transportgeschwindigkeit des gegriffenen Objekts sein, während die Greifkraft zum Halten des Objekts variiert wird, um die minimal nötige Kraft zum Halten des Objekts zu finden, ohne es dabei unnötig zu quetschen.
-
Ferner erfolgt nach jedem Durchgang des wiederholt ausgeführten Steuerprogramms eine automatische Ermittlung einer Qualität eines jeweiligen Ergebnisses. Die Qualität beinhaltet insbesondere, ob die mit dem Steuerprogramm assoziierte Aufgabe überhaupt abgeschlossen wurde, und wenn die Aufgabe abgeschlossen wurde, mit welchen für eine qualitative Einordnung relevanten Werten von Prozessdaten das Steuerprogramm durchgeführt wurde. Ob die Aufgabe erfolgreich abgeschlossen wurde, wird dabei bevorzugt vom Anwender vorgegeben. Die Prozessdaten betreffen insbesondere ein Schadensmaß oder ein Maß für eine Abnutzung, die bei der Ausführung des Steuerprogramms am Robotermanipulator und/oder am Objekt aus der Umgebung des Robotermanipulators entsteht. Ein weiterer Faktor für die Qualität der Ausführung des Steuerprogramms betrifft die für die Ausführung benötigte Zeit, da es grundsätzlich wünschenswert ist, die durch ein Steuerprogramm zu lösende Aufgabe in möglichst kurzer Zeit zu bewerkstelligen.
-
Während dieser automatischen Suche nach verbesserten Werten für die Parameter der zusammengesetzten Programmabschnitte in Zusammenschau mit der jeweiligen ermittelten Qualität der von den Werten des parameterabhängigen Ergebnisses der jeweiligen Ausführung des Steuerprogramms erfolgt daher eine begründete und eine auf empirische Analyse basierende Auswahl von Werten der variierten Parameter, mit denen die Qualität des jeweiligen Ergebnisses bei der Durchführung des Steuerprogramms optimiert wird. Dies erfolgt insbesondere durch einen Vergleich der jeweiligen ermittelten Qualität nach einem vorgegebenen Kriterium, bevorzugt einem Grenzwert für einen numerisch ausgedrückten Kennwert der Qualität. Die Qualität wird daher insbesondere durch eine Kostenfunktion oder invers dazu durch eine Gütefunktion ausgedrückt. Je nachdem, welche Formulierung für die Qualität des jeweiligen Ergebnisses verwendet wird, richtet sich das Vorzeichen bzw. die Definition des Grenzwertes oder der anderweitig verwendeten Metrik als Gütekriterium.
-
Es ist daher eine vorteilhafte Wirkung der Erfindung, dass die Steuereinheit, insbesondere eine Steuereinheit des Robotermanipulators selbst, selbst dazu in der Lage ist, ein strukturell vorgegebenes Steuerprogramm mit initialen Werten von Parametern des Steuerprogramms empirisch zu optimieren, sodass diese Aufgabe des optimierende Steuerprogramms dem Anwender zumindest zu einem Teil abgenommen wird. Das Erzeugen und Optimieren eines Steuerprogramms erfolgt daher vorteilhaft sehr schnell und zuverlässig mit der Tendenz zu einer schnellen Konvergenz zu global optimalen Werten der Parameter des Steuerprogramms.
-
Gemäß einer vorteilhaften Ausführungsform erfolgt das Auswählen der strukturell vorgegebenen Programmabschnitte für das Steuerprogramm durch Ziehen und Loslassen von grafischen Elementen durch einen Anwender, wobei die grafischen Elemente auf einem Bildschirm dargestellt werden und jedes der grafischen Elemente einem der strukturell vorgegebenen Programmabschnitte zugeordnet ist, wobei das automatisch wiederholte Ausführen des Steuerprogramms auf eine Eingabe des Anwenders hin, insbesondere durch Aktivieren eines am Bildschirm angezeigten grafischen Wiederholungselements, erfolgt. Der Bildschirm ist bevorzugt ein berührempfindlicher Bildschirm, da hier vorteilhaft das Ziehen und Loslassen der grafischen Elemente besonders intuitiv erfolgen kann. Durch die Aneinanderreihung der grafischen Elemente auf dem Bildschirm ergibt sich damit insbesondere direkt die Reihenfolge der strukturell vorgegebenen Programmabschnitte, die durch das Ziehen aus einer Liste mit einer Vielzahl möglicher auswählbarer Programmabschnitte ausgewählt werden. Bevorzugt werden die grafischen Elemente auch in derjenigen Reihenfolge ausgeführt, wie sie vom Anwender auf dem Bildschirm angeordnet werden. Jedes der grafischen Elemente repräsentiert eines der strukturell vorgegebenen Programmabschnitte, für die ein prinzipieller Programmablauf in der Steuereinheit abgespeichert ist. Insbesondere weisen die grafischen Elemente eine entsprechende farbliche, bildliche, oder auch schriftliche Kennzeichnung auf, sodass es für den Anwender besonders einfach ist, die strukturell vorgegebenen Programmabschnitte zu finden und ihm einen entsprechenden Sinngehalt zuzuordnen. Das grafische Wiederholungselement ist dabei insbesondere ein am Bildschirm angeordneter Funktionsknopf, oder ein Bildelement (auch genannt „Icon“). Beim Aktivieren dieses Wiederholungselements, das insbesondere durch Antippen des Wiederholungselements auf einen berührungsempfindlichen Bildschirm oder das Anklicken andernfalls erfolgt, wird insbesondere das wiederholte Ausführen des Steuerprogramms zusammen mit der automatisierten Variation der Werte des zumindest einen Teils der Parameter gestartet. Vorteilhaft steht damit dem Anwender eine besonders intuitive und einfache Möglichkeit zur Verfügung, den prinzipiellen Ablauf durch das Zusammenfügen der vorgegebenen Programmabschnitte zu bestimmen, sowie das automatisierte Verfahren zum Verbessern der Werte der Parameter zu initiieren.
-
Gemäß einer weiteren vorteilhaften Ausführungsform weist das Verfahren weiterhin den Schritt auf:
- - Ausführen des Steuerprogramms mit den abgespeicherten Werten der Parameter.
-
Gemäß einer weiteren vorteilhaften Ausführungsform ist jedes der grafischen Elemente einem der strukturell vorgegebenen Programmabschnitte und einer vordefinierten rückwärtigen Ausführung des jeweiligen Programmabschnitts zugeordnet, wobei von der Steuereinheit aus der Kombination der ausgewählten grafischen Elemente und mittels der den grafischen Elementen zugeordneten rückwärtigen Ausführungen eine Umkehrung des Steuerprogramms ermittelt wird, wobei die Umkehrung des Steuerprogramms strukturell derart ermittelt wird, dass sich der Robotermanipulator nach Ausführung des Steuerprogramms und anschließender Ausführung der Umkehrung des Steuerprogramms in seinem Anfangszustand wie vor Ausführung des Steuerprogramms befindet. Insbesondere dadurch, dass das Steuerprogramm automatisch wiederholt ausgeführt wird, ist ein wiederholter Start von einem Ausgangspunkt notwendig. Es wird unter Rücksichtnahme dieser Notwendigkeit vorteilhaft zunächst eine rückwärtige Ausführung des jeweiligen Programmabschnitts definiert. Weiterhin ermittelt die Steuereinheit aus der Gesamtheit der jeweiligen rückwärtigen Ausführungen der jeweiligen Programmabschnitte eine vollständige Umkehrung des Steuerprogramms. Die vollständige Umkehrung des Steuerprogramms entspricht daher nicht notwendigerweise nur der Aneinanderreihung der rückwärtigen Ausführungen der jeweiligen Programmabschnitte, vielmehr betrachtet die Steuereinheit zusätzlich insbesondere die Schnittstellen zwischen den rückwärtigen Ausführungen der jeweiligen Programmabschnitte, und daher insbesondere die Kompatibilität zwischen den rückwärtigen Ausführungen zueinander. Vorteilhaft wird dadurch sichergestellt, dass jede Wiederholung der Ausführung des Steuerprogramms durch vollständig zurückgeführte Zustände des Robotermanipulator erfolgt, sodass vorteilhaft nicht die einzelnen Ausführungen des Steuerprogramms miteinander wechselwirken und das Ergebnis bei der Überprüfung der Qualität der jeweiligen Ausführung des Steuerprogramms verfälschen.
-
Gemäß einer weiteren vorteilhaften Ausführungsform wird die ermittelte Qualität des jeweiligen Ergebnisses der jeweiligen Ausführung des Steuerprogramms zusammen mit dem Steuerprogramm und/oder zusammen mit bei der Ausführung des Steuerprogramms erfassten Prozessdaten an eine zentrale Recheneinheit übermittelt, wobei von der zentralen Recheneinheit zumindest eine aus den folgenden Funktionen bzw. Werte überprüft wird:
- - die absoluten Werte der ermittelten Qualität,
- - der Zusammenhang zwischen einem absoluten Wert der ermittelten Qualität und den Werten der Parameter der Programmabschnitte,
- - die Sensitivität zwischen einer Änderung der Werte der Parameter der Programmabschnitte und der Änderung der ermittelten Qualität,
- - während der Ausführung des Steuerprogramms als Prozessdaten erfassten Kräfte und/oder Momente zwischen dem Robotermanipulator und der Umgebung des Robotermanipulators,
und wobei bei einer festgestellten Anomalie in den überprüften Funktionen bzw. Werten eine Warnung an eine Ausgabeeinheit des Robotermanipulators für den Anwender übermittelt wird und an der Ausgabeeinheit des Robotermanipulators ausgegeben wird. Die zentrale Recheneinheit ist insbesondere ein beim Hersteller des Robotermanipulators angeordneter Server, sodass die zentrale Recheneinheit insbesondere für eine Vielzahl von Steuereinheiten einer Vielzahl von Robotermanipulatoren die durch diese ausgeführten Steuerprogramme auf Anomalien überprüft. Vorteilhaft liefert dabei auch die zentrale Recheneinheit den initialen Satz von Werten der Parameter für die Programmabschnitte, sodass dieser initiale Satz von Werten der Parameter an in der Vergangenheit festgestellte Anomalien angepasst werden kann. Dies erhöht vorteilhaft die Effizienz bei der Optimierung der Werte der Parameter des Steuerprogramms, indem verbesserte Startwerte als besserer Ausgangspunkt zum Finden eines globalen Optimums der Werte des Steuerprogramms verwendet werden können.
-
Gemäß einer weiteren vorteilhaften Ausführungsform sind die ausgewählten variierten Werte der Parameter aktuelle Werte nach einem Abbruch der wiederholten Ausführungen des Steuerprogramms, wobei die wiederholten Ausführungen des Steuerprogramms abgebrochen werden, wenn die aktuell ermittelte Qualität des Ergebnisses der aktuellen Ausführung dem vorgegebenen Gütekriterium entspricht. Gemäß dieser Ausführungsform wird die ermittelte Qualität des Ergebnisses laufend im Verhältnis gegenüber dem vorgegebenen Gütekriterium bewertet. Entspricht nach einer Vielzahl von Änderungen der Werte der Parameter des Steuerprogramms das aktuelle Ergebnis bei der Ausführung des Steuerprogramms erstmalig dem vorgegebenen Gütekriterium, so wird vorteilhaft gemäß dieser Ausführungsform die wiederholte Ausführung des Steuerprogramms abgebrochen und die aktuell verwendeten Werte der Parameter des Steuerprogramms übernommen und abgespeichert.
-
Gemäß einer weiteren vorteilhaften Ausführungsform erfolgt das Vorgeben des initialen Satzes von Werten von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte durch Erfassen einer Vorgabe oder einer Eingabe eines Anwenders an der Steuereinheit. Insbesondere erfolgt die Vorgabe der initialen Werte von Parametern durch Eingabe von numerischen Werten an einem entsprechenden Eingabeelement der Steuereinheit. Die Eingabe des Anwenders unmittelbar an der Steuereinheit erfolgt dagegen bevorzugt durch manuelles Führen des Robotermanipulators, wobei hier insbesondere Parameterwerte wie eine Geschwindigkeit, eine Beschleunigung oder eine Pose des Robotermanipulators vorgegeben werden können. Vorteilhaft entspricht gemäß dieser Ausführungsform der initiale Satz von Werten der Parameter direkt den Vorstellungen des Anwenders, ohne auch dafür weiter weg liegende Standardwerte zurückgreifen zu müssen.
-
Gemäß einer weiteren vorteilhaften Ausführungsform erfolgt das Vorgeben des initialen Satzes von Werten von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte durch Erfassen einer Vorgabe der zentralen Recheneinheit an der Steuereinheit. Die zentrale Recheneinheit ist bevorzugt mit einer zentralen Steuereinheit eines Experimentalrobotermanipulators verbunden. Dieser zentrale Experimentalroboter führt vorteilhaft eine Vielzahl von Aufgaben aus, für die entsprechende Programmabschnitte verwendet werden. Für diese verwendeten Programmabschnitte werden bevorzugt durch den Experimentalrobotermanipulator durch die zentrale Recheneinheit initiale Werte der Parameter bereits empirisch ausgelegt, sodass mit hoher Wahrscheinlichkeit am verwendeten Robotermanipulator gute Startwerte für die Parameter der einzelnen Programmabschnitte verwendet werden. Die zentrale Recheneinheit übermittelt dabei die vom Experimentalroboter ermittelten Werte für die einzelnen Programmabschnitte und übermittelt sie an die Steuereinheit des jeweiligen verwendeten Robotermanipulators, wo sie als Initialsatz von Werten für die Parameter der ausgewählten und zusammengesetzten Programmabschnitte verwendet werden.
-
Gemäß einer weiteren vorteilhaften Ausführungsform weist das Verfahren weiterhin den Schritt auf:
- - Ermitteln von Grenzwerten bezüglich Prozessdaten, wobei die Grenzwerte zum Ermitteln von Fehlerfällen bei der späteren Ausführungen im späteren Betrieb des Robotermanipulators dienen und Abspeichern der ermittelten Grenzwerte in der Steuereinheit.
-
Prozessdaten sind insbesondere durch Sensoren selbst oder auf Basis von Sensorsignalen ermittelte Werte, die beim aktuellen und späteren Ausführen des Steuerprogramms erfasst werden können. Dies betrifft insbesondere Geschwindigkeiten, Beschleunigungen, Gelenkwinkelmomente, oder andere Daten über den Robotermanipulator selbst während der Ausführung der Aufgabe durch Ausführen des Steuerprogramms, sowie insbesondere Kräfte und/oder Momente, die zwischen einem Teil des Robotermanipulators und einem Objekt aus der Umgebung des Robotermanipulators wirken. Sind sämtliche strukturellen Vorgaben bezüglich des Steuerprogramms abgeschlossen, und anschließend auch die Werte der Parameter für das Steuerprogramm festgelegt, so ist das Steuerprogramm grundsätzlich ausführbar. Diese Ausführung des Steuerprogramms beinhaltet jedoch nicht die an ein Steuerprogramm oder an eine Situation angepassten Überwachungswerte zum Ermitteln einer unerwünschten Kollision, eines Fehlerfalls, eines Schadensfalls, oder anderes. Vorteilhaft wird durch diese Ausführungsform bei der wiederholten Ausführung des Steuerprogramms einer oder ein ganzer Satz von Grenzwerten bezüglich der Prozessdaten festgelegt, die auf eine nominale Ausführung des Steuerprogramms schließen lassen. Dies erfolgt ebenfalls insbesondere aus den empirischen Daten, das heißt insbesondere aus den empirisch ermittelten Prozessdaten, wobei insbesondere über die ermittelte Qualität für jede einzelne Ausführung des Steuerprogramms abgeleitet werden kann, ob ein Fehlerfall, eine Störung oder Ähnliches (siehe oben) bei der Ausführung des Steuerprogramms vorlag.
-
Gemäß einer weiteren vorteilhaften Ausführungsform werden die Variationen der Werte des zumindest einen Teils der Parameter durch eine in einer zentralen Recheneinheit ausgeführten Optimierung ermittelt. Gemäß dieser Ausführungsform werden die Variationen der Werte des zumindest einen Teils der Parameter systematisch, zumindest algorithmisch systematisch, ermittelt. Eine direkte Systematik ergibt sich bei der Ermittlung durch Ausführen einer nichtlinearen Optimierung in der zentralen Recheneinheit durch deterministische Methoden wie einem gradientenbasierten Verfahren oder der quadratischen Optimierung. Solche Methoden ändern die Werte der Parameter insbesondere so, dass eine möglichst schnelle Änderung der Parameterwerte in Richtung eines globalen Optimums zu einer optimalen Qualität der Ausführung des Steuerprogramms ermöglicht wird. Dagegen beinhalten indirekt systematische, insbesondere algorithmisch systematische nichtlineare Optimierungsalgorithmen, die auf der zentralen Recheneinheit ausgeführt werden, das Verwenden von Zufallsfunktionen, wie beispielsweise bei genetischen Algorithmen oder Evolutionsalgorithmen. Die Konvergenzrate kann bei einer solchen nichtlinearen Optimierung nicht deterministisch vorhergesagt werden, jedoch bieten die Algorithmen eine konsistente Ausführung einer nichtlinearen Optimierung. Vorteilhaft wird gemäß dieser Ausführungsform die unter Umständen verfügbare erhöhte Rechenkapazität der zentralen Recheneinheit ausgenutzt, sowie weiterhin vorteilhaft eine Vielzahl von Steuerprogrammen aus einer Vielzahl von Robotermanipulatoren zentral optimiert, sodass Synergie-Effekte an der zentralen Recheneinheit dabei ausgenutzt werden können.
-
Ein weiterer Aspekt der Erfindung betrifft eine Steuereinheit zum Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator, wobei die Steuereinheit ausgeführt ist zum:
- - Auswählen von strukturell vorgegebenen Programmabschnitten und Zusammensetzen der ausgewählten Programmabschnitte zur strukturellen Definition des Steuerprogramms des Robotermanipulators,
- - Vorgeben eines initialen Satzes von Werten von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte, wobei die ausgewählten und zusammengesetzten Programmabschnitte mit ihren Parametern das Steuerprogramm bilden,
- - automatischen, wiederholten Ausführen des Steuerprogramms unter Variationen von Werten von zumindest einem Teil der Parameter,
- - Ermitteln einer Qualität eines jeweiligen Ergebnisses der jeweiligen Ausführung des Steuerprogramms, und
- - Abspeichern von ausgewählten variierten Werten des zumindest einen Teils der Parameter, wobei die Steuereinheit dazu ausgeführt ist, die abzuspeichernden Werte des Teils der Parameter gemäß der ermittelten Qualität nach einem vorgegebenen Gütekriterium auszuwählen.
-
Vorteile und bevorzugte Weiterbildungen der vorgeschlagenen Steuereinheit ergeben sich durch eine analoge und sinngemäße Übertragung der im Zusammenhang mit dem vorgeschlagenen Verfahren vorstehend gemachten Ausführungen.
-
Weitere Vorteile, Merkmale und Einzelheiten ergeben sich aus der nachfolgenden Beschreibung, in der - gegebenenfalls unter Bezug auf die Zeichnung - zumindest ein Ausführungsbeispiel im Einzelnen beschrieben ist. Gleiche, ähnliche und/oder funktionsgleiche Teile sind mit gleichen Bezugszeichen versehen.
-
Es zeigen:
- 1 ein Verfahren um Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator gemäß einem Ausführungsbeispiel der Erfindung,
- 2 grafische Elemente auf einem Bildschirm gemäß einem Ausführungsbeispiel der Erfindung, und
- 3 eine Steuereinheit zum Ausführen des Verfahrens nach 1.
-
Die Darstellungen in den Figuren sind schematisch und nicht maßstäblich.
-
1 zeigt ein Verfahren zum Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator 1. In einem ersten Schritt erfolgt das Auswählen S1 von strukturell vorgegebenen Programmabschnitten und Zusammensetzen der ausgewählten Programmabschnitte zur strukturellen Definition des Steuerprogramms. Die Steuereinheit 3 des Robotermanipulators 1 erfasst die Reihenfolge der durch Ziehen und Loslassen von grafischen Elementen 7 durch einen Anwender ausgewählten grafischen Elemente 7, wobei die grafischen Elemente 7 auf einem Bildschirm 5 dargestellt werden und jedes der grafischen Elemente 7 einem der strukturellen vorgegebenen Programmabschnitte zugeordnet ist. Ein solcher Bildschirm 5 mit den jeweiligen grafischen Elementen 7 ist in der 2 dargestellt. Die Bezugszeichen der hier gemachten Erläuterungen können dabei direkt auf die 2 bezogen werden. Auf dem Bildschirm 5 sind zwei Bereiche voneinander abgegrenzt, wobei der untere Bereich ein Reservoir von möglichen und auswählbaren grafischen Elementen 7 beinhaltet, die die Gesamtheit der durch die Steuereinheit 3 des Robotermanipulators 1 ausführbaren Programmabschnitte auflistet. Durch Ziehen und Loslassen in den oberen Bereich in einer entsprechend gewünschten Reihenfolge wird strukturell das Steuerprogramm definiert. Außerdem ist jedes der grafischen Elemente 7 einer vordefinierten rückwärtigen Ausführung des jeweiligen Programmabschnitts zugeordnet, wobei von der Steuereinheit 3 aus der Kombination der ausgewählten grafischen Elemente 7 und mittels der den grafischen Elementen 7 zugeordneten rückwärtigen Ausführungen eine Umkehrung des Steuerprogramms ermittelt wird, wobei die Umkehrung des Steuerprogramms strukturell derart ermittelt wird, dass sich der Robotermanipulator 1 nach Ausführung des Steuerprogramms und anschließender Ausführung der Umkehrung des Steuerprogramms in seinem Anfangszustand wie vor Ausführung des Steuerprogramms befindet. Im weiteren Schritt erfolgt das Vorgeben S2 eines initialen Satzes von Werten von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte, wobei die ausgewählten und zusammengesetzten Programmabschnitte mit ihren Parametern das Steuerprogramm bilden. Das Vorgeben des initialen Satzes von Werten von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte erfolgt hierbei durch Erfassen einer Eingabe eines Anwenders in Form einer haptischen Geste mittelbar an der Steuereinheit 3, die die manuellen Bewegungen beim Führen des Robotermanipulators 1 durch den Anwender aufzeichnet. Es folgt hierauf, auf eine Eingabe des Anwenders hin, nämlich durch Aktivieren des am Bildschirm 5 angezeigten grafischen Wiederholungselements 9, das automatisch wiederholte Ausführen S3 des Steuerprogramms unter Variationen von Werten von zumindest einem Teil der Parameter durch die Steuereinheit 3, wobei die Variationen der Werte des zumindest einen Teils der Parameter durch eine in einer zentralen Recheneinheit 13 ausgeführten Optimierung ermittelt werden. Diese zentralen Recheneinheit 13 ist in der 3 dargestellt. Das Ermitteln S4 einer Qualität eines jeweiligen Ergebnisses der jeweiligen Ausführung des Steuerprogramms erfolgt durch Prüfung, ob das Steuerprogramm zur vollständigen Ausführung einer Aufgabe geführt hat, was durch die externe Anwendereingabe bezüglich des Erfolgs erfolgt, sowie, in welcher Zeit die Ausführung des Steuerprogramms erfolgt und ob dabei ein Abnutzungsgrad am Robotermanipulator 1 unter einem vorgegebenen Grenzwert verblieben ist. Im weiteren Schritt erfolgt das Abspeichern S5 von ausgewählten variierten Werten des zumindest einen Teils der Parameter in der Steuereinheit 3, wobei die abzuspeichernden Werte des Teils der Parameter gemäß der ermittelten Qualität nach einem vorgegebenen Gütekriterium ausgewählt werden. Im weiteren Schritt erfolgt das Ermitteln S6 von Grenzwerten bezüglich Prozessdaten, wobei die Grenzwerte zum Ermitteln von Fehlerfällen bei der späteren Ausführungen im späteren Betrieb des Robotermanipulators dienen und das Abspeichern der ermittelten Grenzwerte in der Steuereinheit 3 zum späteren Gebrauch.
-
2 zeigt die in 1 erwähnten grafischen Elemente 7 sowie das grafische Wiederholungselement 9, welche allesamt auf dem Bildschirm 5 dargestellt werden. Ein solcher Bildschirm 5 ist auch in der 3 dargestellt. Daher wird auf die Beschreibungen der 1 sowie der 3 verwiesen.
-
3 zeigt eine Steuereinheit 3 zum Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator 1. Auf dieser Steuereinheit 3 wird das Steuerprogramm und das gesamte Verfahren, wie unter 1 beschrieben ausgeführt. Der Bildschirm 5 ist dabei der Bildschirm 5 eines Anwenderrechners, der direkt mit der Steuereinheit 3 des Robotermanipulators 1 verbunden ist. Die Steuereinheit 3 ist dabei eine vom Anwenderrechner separierte Recheneinheit, die einer Basis des Robotermanipulators 1 angeordnet ist. Die Steuereinheit 3 ist ausgeführt zum:
- - Auswählen von strukturell vorgegebenen Programmabschnitten und Zusammensetzen der ausgewählten Programmabschnitte zur strukturellen Definition des Steuerprogramms des Robotermanipulators 1,
- - Vorgeben eines initialen Satzes von Werten von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte, wobei die ausgewählten und zusammengesetzten Programmabschnitte mit ihren Parametern das Steuerprogramm bilden,
- - automatisches, wiederholtes Ausführen des Steuerprogramms unter Variationen von Werten von zumindest einem Teil der Parameter,
- - Ermitteln einer Qualität eines jeweiligen Ergebnisses der jeweiligen Ausführung des Steuerprogramms, und
- - Abspeichern von ausgewählten variierten Werten des zumindest einen Teils der Parameter, wobei die Steuereinheit 3 dazu ausgeführt ist, die abzuspeichernden Werte des Teils der Parameter gemäß der ermittelten Qualität nach einem vorgegebenen Gütekriterium auszuwählen.
-
Hier wird die ermittelte Qualität des jeweiligen Ergebnisses zusammen mit dem Steuerprogramm und/oder zusammen mit bei der Ausführung des Steuerprogramms erfassten Prozessdaten an die zentrale Recheneinheit 13 übermittelt, wobei von der zentralen Recheneinheit 13 zumindest eine aus den folgenden Funktionen bzw. Werte überprüft wird:
- - die absoluten Werte der ermittelten Qualität,
- - der Zusammenhang zwischen einem absoluten Wert der ermittelten Qualität und den Werten der Parameter der Programmabschnitte,
- - die Sensitivität zwischen einer Änderung der Werte der Parameter der Programmabschnitte und der Änderung der ermittelten Qualität,
und wobei bei einer festgestellten Anomalie in den überprüften Funktionen bzw. Werten eine Warnung an den als Ausgabeeinheit 11 fungierenden Bildschirm 5 für den Anwender übermittelt wird und an der Ausgabeeinheit 11 ausgegeben wird.
-
Bezugszeichenliste
-
- 1
- Robotermanipulator
- 3
- Steuereinheit
- 5
- Bildschirm
- 7
- Elemente
- 9
- Wiederholungselement
- 11
- Ausgabeeinheit
- 13
- zentrale Recheneinheit
- S1
- Auswählen
- S2
- Vorgeben
- S3
- Ausführen
- S4
- Ermitteln
- S5
- Abspeichern
- S6
- Ermitteln