-
Die Erfindung betrifft ein Verfahren zum Erzeugen eines Steuerprogramms für einen zweiten Robotermanipulator auf Basis von empirischen Daten einer Ausführung einer vorgegebenen Anwendung durch einen ersten Robotermanipulator sowie ein Robotersystem mit einer ersten Steuereinheit und einer zweiten Steuereinheit zum Ausführen des Verfahrens.
-
Im Stand der Technik sind diverse Techniken zur Ansteuerung von Robotermanipulatoren bekannt.
-
So betrifft die
DE 20 2019 101 831 U1 ein System zum Erzeugen und Ausführen von modularen Steuerprogrammen für Robotermanipulatoren, aufweisend eine Verteilereinrichtung und eine Vielzahl von jeweils mit der Verteilereinrichtung in einem Netzwerk verbundenen Steuereinheiten von Robotermanipulatoren, wobei eine erste der Steuereinheiten dazu ausgeführt ist, ein der ersten der Steuereinheiten zur Verfügung stehendes erstes Steuerprogramm an die Verteilereinrichtung zu übermitteln, und ein fusioniertes Steuerprogramm durch Verbinden einer Vielzahl von der ersten der Steuereinheiten zur Verfügung stehenden Steuerprogrammen an ihren Schnittstellen zu erzeugen und das fusionierte Steuerprogramm an die Verteilereinrichtung zu übermitteln, wobei die Verteilereinrichtung dazu ausgeführt ist, das erste Steuerprogramm und das fusionierte Steuerprogramm abzuspeichern und auf Anfrage einer zweiten der Steuereinheiten das erste Steuerprogramm und/oder das fusionierte Steuerprogramm an die zweite der Steuereinheiten zu übermitteln, und wobei die erste und die zweite der Steuereinheiten jeweils dazu ausgeführt sind, das erste Steuerprogramm und das fusionierte Steuerprogramm auszuführen und beim Ausführen des fusionierten Steuerprogramms die im fusionierten Steuerprogramm verbundenen Steuerprogramme sequentiell in einem Steuerablauf auszuführen und Daten zumindest unidirektional zwischen den verbundenen Steuerprogrammen auszutauschen.
-
Die
DE 10 2018 214 417 B3 betrifft außerdem ein Verfahren zur Programmierung eines Roboters für die Durchführung einer Tätigkeit, wobei der Roboter mit einer programmierbaren Steuereinheit ausgestattet ist, wobei die Roboter-Programme mit einem einheitlichen Programm-Generator erstellt werden, wobei der Programm-Generator eine oder mehrere Sequenzen von Schlüsselwörtern in gültigen Programmcode für die programmierbare Steuereinheit umsetzt, derart, dass der Programm-Generator bei der Umsetzung der Schlüsselwörter der jeweiligen Sequenz einen Abruf von Informationen in einem Programmier-Regelwerk durchführt von dem er den für den jeweiligen Robotertyp passenden Programmcode in der vorgegebenen Syntax zurückerhält und wobei der Programm-Generator die empfangenen ProgrammCode-Abschnitte zu einem fertigen Programmcode zusammensetzt.
-
Die
DE 20 2017 105 598 U1 betrifft ferner ein nichttransitorisches computerlesbares Speichermedium, auf dem Anweisungen gespeichert sind, wobei die Anweisungen, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren Schritte durchführen, die umfassen: während der Durchführung von mehreren Episoden durch jeden von mehreren Robotern, wobei jede der Episoden eine Untersuchung der Durchführung einer Aufgabe auf der Basis eines neuronalen Richtliniennetzes ist, das eine Verstärkungslernrichtlinie für die Aufgabe darstellt: Speichern von Instanzen von Robotererfahrungsdaten in einem Puffer, die während der Episoden durch die Roboter erzeugt werden, wobei jede der Instanzen der Robotererfahrungsdaten während einer entsprechenden der Episoden erzeugt wird und zumindest teilweise an einer entsprechenden Ausgabe erzeugt wird, die unter Verwendung des neuronalen Richtliniennetzes mit entsprechenden Richtlinienparametern für das neuronalen Richtliniennetz für die entsprechende Episode erzeugt wird; iteratives Erzeugen von aktualisierten Richtlinienparametern des neuronalen Richtliniennetzes, wobei jede der Iterationen des iterativen Erzeugens das Erzeugen der aktualisierten Richtlinienparameter unter Verwendung einer Gruppe von einer oder mehreren Instanzen der Robotererfahrungsdaten im Puffer während der Iteration umfasst; und durch jeden der Roboter in Verbindung mit einem Start von jeder von mehreren Episoden, die durch den Roboter durchgeführt werden, Aktualisieren des neuronalen Richtliniennetzes, das durch den Roboter in der Episode verwendet werden soll, wobei das Aktualisieren des neuronalen Richtliniennetzes die Verwendung der aktualisierten Richtlinienparameter einer jüngsten Iteration des iterativen Erzeugens der aktualisierten Richtlinienparameter umfasst.
-
Die
DE 21 2013 000 217 U1 betrifft ein System zur Fernpositionierung eines Endeffektors, das Folgendes umfasst: Eine Eingabevorrichtung; einen ersten Sensor in der Eingabevorrichtung, wobei der erste Sensor auf eine erste Achse ausgerichtet ist und dafür konfiguriert ist, ein erstes Signal zu generieren, das eine erste Winkelverschiebung des ersten Sensors um die erste Achse herum widerspiegelt; und einen Prozessor in Kommunikation mit dem ersten Sensor, so dass der Prozessor das erste Signal empfängt, wobei der Prozessor dafür konfiguriert ist, einen ersten Satz Logik auszuführen, der in einem Speicher gespeichert ist, der den Prozessor veranlasst, das erste Signal zu filtern, das erste Signal zu glätten und ein erstes Steuersignal an den Endeffektor zu generieren, das proportional zu der ersten Winkelverschiebung des ersten Sensors um die erste Achse herum ist.
-
Die
DE 10 2010 029 745 A1 betrifft ein Werkstück-Handhabungssystem, aufweisend mindestens zwei zur Handhabung von Werkstücken kooperierende Manipulatoren, die mittels wenigstens einer frei programmierbaren Steuervorrichtung in drei oder mehr Achsen automatisch steuerbar und/oder programmierbar sind, wobei mindestens ein erster Manipulator in wenigstens einem seiner Freiheitsgrade zum manuell geführten Bewegen eingerichtet ist, und die Steuervorrichtung eingerichtet ist, mindestens einen zweiten Manipulator in Abhängigkeit des manuell geführten Manipulators automatisch zu steuern.
-
Die
DE 20 2008 014 481 U1 betrifft schließlich ein tragbares Roboterkontrollgerät zum Kontrollieren einer Bewegung eines Roboters oder eines Roboterwerkzeugendes, wobei es eine Trägheitsvorrichtung umfasst mit zumindest einem Beschleunigungssensor und/oder zumindest einem Rotationssensor, wobei die Trägheitsvorrichtung ihre relative Bewegung misst und das Gerät ein die relative Bewegung darstellendes Signal zu einem Roboterkontroller aussendet, so dass es dem Roboterkontroller möglich ist, den Roboter derart zu kontrollieren, dass die relative Bewegung von dem Roboter oder von dem Roboterwerkzeugende in Echtzeit wiederholt wird.
-
Aufgabe der Erfindung ist es, das Erzeugen eines Steuerprogramms zum Ausführen einer Aufgabe durch einen Robotermanipulator zu vereinfachen.
-
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 eines Steuerprogramms für einen zweiten Robotermanipulator auf Basis von empirischen Daten einer Ausführung einer vorgegebenen Anwendung durch einen ersten Robotermanipulator, aufweisend die Schritte:
- - Ausführen der vorgegebenen Anwendung durch den ersten Robotermanipulator,
- - während der Ausführung der vorgegebenen Anwendung: Ermitteln von Zeitreihen von Trajektoriendaten mittels Gelenkwinkelsensoren des ersten Robotermanipulators und/oder von Zeitreihen von Kraftwinderdaten durch eine Sensoreinheit des ersten Robotermanipulators zum Erfassen von Kräften und/oder Momenten, und Abspeichern der ermittelten Zeitreihen in einer Speichereinheit, wobei die Trajektoriendaten kinematische Daten bezüglich eines Referenzpunktes des ersten Robotermanipulators oder bezüglich der Gelenkwinkel des ersten Robotermanipulators umfassen und wobei die Kraftwinderdaten zwischen dem ersten Robotermanipulator und einem Objekt aus der Umgebung wirkende Kräfte und/oder Momente umfassen,
- - Ermitteln von Roboterkommandos aus den abgespeicherten Zeitreihen und Abspeichern der ermittelten Roboterkommandos in der Speichereinheit, wobei die Roboterkommandos prinzipielle Elemente eines Steuerprogramms für einen jeweiligen Robotermanipulator ohne Bezug zu den konstruktiven Gegebenheiten des ersten Robotermanipulators sind, und
- - Erzeugen des Steuerprogramms für den zweiten Robotermanipulator auf Basis der abgespeicherten Roboterkommandos und auf Basis von konstruktiven Gegebenheiten des zweiten Robotermanipulators.
-
Bevorzugt erfolgt weiterhin der Schritt:
- - Ausführen des Steuerprogramms für den zweiten Robotermanipulator durch den zweiten Robotermanipulator, insbesondere durch die zweite Steuereinheit des zweiten Robotermanipulators.
-
Der erste Robotermanipulator und der zweiten Robotermanipulator sind nicht notwendigerweise ähnlich oder gleich aufgebaut, sondern können auch verschiedene technische Lösungen und Bauweisen aufweisen. Der erste Robotermanipulator ist insbesondere mit einer solchen (ersten) Steuereinheit verbunden, die zum Ausführen eines ersten Steuerprogramms ausgeführt ist, um die vorgegebene Anwendung auszuführen. Dieses erste Steuerprogramm ist insbesondere für den ersten Robotermanipulator optimiert, das heißt es berücksichtigt die technischen Gegebenheiten und konstruktiven Lösungen am ersten Robotermanipulator, sodass die Anwendung durch den ersten Robotermanipulator überhaupt ausgeführt werden kann wobei das erste Steuerprogramm insbesondere für die konstruktiven Gegebenheiten des ersten Robotermanipulators auch optimiert ist. Bevorzugt werden dabei sämtliche Schritte des Verfahrens gemäß dem ersten Aspekt der Erfindung durch die erste Steuereinheit ausgeführt. Alternativ bevorzugt wird das Erzeugen des Steuerprogramms für den zweiten Robotermanipulator von einer zweiten, von der ersten verschiedenen, Steuereinheit ausgeführt.
-
Im ersten Schritt des Verfahrens gemäß dem ersten Aspekt der Erfindung wird die vorgegebene Anwendung durch den ersten Robotermanipulator ausgeführt. Mögliche Anwendungen sind insbesondere das Bewegen eines Gegenstands von einem Ort zu einem anderen, das ledigliche Greifen des Gegenstands, das Auswählen eines Gegenstands aus einer Vielzahl von Gegenständen, das Greifen des ausgewählten Gegenstands, das Bearbeiten einer Oberfläche eines Werkstücks, oder andere für einen Robotermanipulator typische Aufgaben.
-
Während dieser Ausführung der vorgegebenen Anwendung durch den ersten Robotermanipulator wird insbesondere von der ersten Steuereinheit eine Zeitreihe von Trajektoriendaten ermittelt. Dies erfolgt auf Basis der Sensorwerte von Gelenkwinkelsensoren des ersten Robotermanipulators. Diese Gelenkwinkelsensoren sind insbesondere dazu ausgeführt, einen jeweiligen Winkel zwischen zwei durch ein gemeinsames Gelenk miteinander verbundenen Gliedern des ersten Robotermanipulators zu erfassen und auszugeben. Dies erfolgt insbesondere in diskreten Zeitschritten und in hohen Frequenzen wiederholt, sodass eine Zeitreihe von diskreten Gelenkwinkeldaten des ersten Robotermanipulators zur Verfügung steht. Durch die Gesamtheit aller Gelenkwinkel ist zu jedem Zeitpunkt daher eine Pose des ersten Robotermanipulators bekannt, woraus in kartesischen Koordinatensystemen, insbesondere gegenüber einem ersten festen Koordinatensystem, eine Bahnkurve eines Referenzpunktes des ersten Robotermanipulators ermittelt werden kann.
-
Bevorzugt ist der Referenzpunkt des ersten Robotermanipulators an einem distalen Ende, und insbesondere bevorzugt an einem Endeffektor, des ersten Robotermanipulators gedacht angeordnet. Der Begriff der Trajektorie beinhaltet außerdem eine Bahnkurve, das heißt die rein geometrische Information einer Bewegung, entweder rein bezüglich von Gelenkwinkel oder (auch) bezüglich einer kartesischen Bahn des Referenzpunktes des ersten Robotermanipulators. Optional enthält der Begriff der Trajektorie zusätzlich eine Zeitinformation, sodass jedem Ort der geometrischen Bahnkurve auch eine Zeit zugeordnet ist, und über die Information des geometrischen Verlaufs der Bahnkurve auch eine Geschwindigkeit und/oder eine Beschleunigung des Referenzpunktes während des Abfahrens dieser geometrischen Bahnkurve bekannt sind.
-
Zusätzlich oder alternativ zu den Gelenkwinkelinformationen werden während dieser Ausführung der vorgegebenen Anwendung durch den ersten Robotermanipulator auf den Gelenkwinkelinformationen basierende kartesische Informationen einer Bahnkurve bzw. einer Trajektorie sowie insbesondere eine oder mehrere Kräfte und/oder Momente erfasst, die zwischen dem ersten Robotermanipulator und einem Objekt aus der Umgebung des Robotermanipulators wirken. Letzteres erfolgt insbesondere durch die Sensoreinheit zum Erfassen von Kräften und/oder Momenten, bevorzugt Drehmomentsensoren in den Gelenken oder auch Dehnmessstreifen an der Roboterstruktur, sodass hierdurch eine Zeitreihe von kraft-bezogenen Wechselwirkungen zwischen dem ersten Robotermanipulator und der Umgebung aufgezeichnet werden.
-
Damit stehen kinematische und/oder Informationen bezüglich einer Kraft/Moment während der Ausführung der vorgegebenen Anwendung durch den ersten Robotermanipulator zur Verfügung. Diese Daten werden jeweils in Zeitreihen abgespeichert, sodass eine Historie über den Verlauf der Ausführung der Anwendung bekannt ist.
-
Aus diesen Informationen der Zeitreihen werden anschließend Roboterkommandos gebildet. Solche Roboterkommandos geben unabhängig von den konstruktiven Gegebenheiten des ersten Robotermanipulators funktionale Informationen wieder, wie die vorgegebene Anwendung generell ausgeführt wird, basierend darauf, wie sie speziell vom ersten Robotermanipulator ausgeführt wurde. Diese Roboterkommandos beinhalten damit nicht die Umrechnung über die für den ersten Robotermanipulator gültige Jacobimatrix bzw. deren (Pseudo-)inverse, das heißt, es wird nicht berücksichtigt, wie eine Bewegung eines Gegenstands von einem ersten Ort auf einen zweiten Ort konkret durch Ansteuerung der Aktuatoren im Verhältnis untereinander auszuführen ist. Die Roboterkommandos sind daher abstrahierte Funktionsbausteine eines Steuerprogramms, die prinzipiell und unabhängig von der Architektur des aktuell verwendeten Robotermanipulators ausgeführt werden sollen. Sie entsprechen daher grundsätzlich den Kommandos einer äußersten Schleife einer Regelung des jeweiligen Robotermanipulators bei der Ausführung des Steuerprogramms.
-
Auf Basis dieser abstrahierten Informationen wird anschließend ein konkretes Steuerprogramm für den zweiten Robotermanipulator erzeugt, wobei das vollständige Steuerprogramm für den zweiten Robotermanipulator die konstruktiven Gegebenheiten des zweiten Robotermanipulators berücksichtigt, insbesondere wie viele Gelenke der zweite Robotermanipulator aufweist, ob es ein redundanter oder ein eindeutiger zweiter Robotermanipulator ist, welche Art von Greifer oder generell Art von Endeffektor aktuell am zweiten Robotermanipulator angeordnet ist, etc..
-
Es ist daher eine vorteilhafte Wirkung der Erfindung, dass für den zweiten Robotermanipulator auf Basis der empirisch erfassten Daten während der Ausführung der Anwendung durch den ersten Robotermanipulator ein Steuerprogramm bereitgestellt wird, welches die funktional wesentlichen Informationen in Form von Roboterkommandos bereits beinhaltet, und sodass weitere Sensoren für den zweiten Robotermanipulator und für die durch ihn und sein Steuerprogramm auszuführende Anwendung nicht benötigt werden, insbesondere um Objekte in der Umgebung des zweiten Robotermanipulators zu erfassen, und, allgemein ausgedrückt, das Steuerprogramm für den zweiten Robotermanipulator an die aktuelle Situation anzupassen. Die Ausführung der Anwendung erfolgt vielmehr auf Basis der bereitgestellten Roboterkommandos, die die empirisch ermittelten Informationen der Ausführung der Anwendung durch den ersten Robotermanipulator enthalten. Vorteilhaft wird daher das Erzeugen des Steuerprogramms für den zweiten Robotermanipulator deutlich beschleunigt und vereinfacht, da dieser auf Informationen von bereits erfolgten Ausführungen der Anwendungen zurückgreifen kann, unabhängig davon, ob der erste Robotermanipulator baugleich mit dem zweiten Robotermanipulator ist, oder ob sich diese beiden konstruktiv oder in ihrer Konfiguration oder in ihrer Software unterscheiden.
-
Gemäß einer vorteilhaften Ausführungsform umfassen die Roboterkommandos zumindest eine aus den folgenden Kategorien:
- - eine vorgegebene Bahnkurve eines Referenzpunktes des jeweiligen Robotermanipulators von einem vorgegebenen Startpunkt zu einem vorgegebenen Endpunkt der Bahnkurve,
- - eine Geschwindigkeit des Referenzpunktes auf der Bahnkurve,
- - eine Beschleunigung des Referenzpunktes auf der Bahnkurve,
- - eine Kraft und/oder ein Moment, die der Referenzpunkt des jeweiligen Robotermanipulators auf ein Objekt aus der Umgebung des jeweiligen Robotermanipulators ausübt,
- - Soll- Drehmomente für rotatorische Aktuatoren des jeweiligen Robotermanipulators.
-
Gemäß einer weiteren vorteilhaften Ausführungsform werden zumindest zwei aufeinander folgende Roboterkommandos aus unterschiedlichen Kategorien ermittelt, wobei ein überschleifender Übergang zwischen den zwei aufeinander folgenden kategorisch unterschiedlichen Roboterkommandos ermittelt werden. Der überschleifende Übergang bewirkt insbesondere, dass die ausgewählten Roboterkommandos zueinander in einem weichen Übergang überführt werden. Dies entspricht dem intuitiven menschlichen Verhalten, bei dem beispielsweise der Sehsinn und der Tastsinn miteinander zum haptisch und optisch koordinierten Handeln kombiniert werden. Beispielsweise wird ein Übergang von einer Impedanzregelung und dem sogenannten „visual servoing“ (optisch geführte Bahn) durch einen weichen Funktionsverlauf ohne Sprünge als Gewichtungsfunktion erzeugt.
-
Gemäß einer weiteren vorteilhaften Ausführungsform erfolgt der überschleifende Übergang durch einen stetigen und über die Zeit des Übergangs zeitabhängigen vorgegebenen Funktionsverlauf. Ein solcher stetiger Funktionsverlauf ist insbesondere ohne Sprünge und Knicke, und weist insbesondere einen streng monoton fallenden oder steigenden Verlauf über die Zeitdauer des Übergangs auf. Vorteilhaft liefert ein solcher Funktionsverlauf einen besonders weichen Übergang zwischen den Anwendungen der Roboterkommandos.
-
Gemäß einer weiteren vorteilhaften Ausführungsform erfolgt das Ermitteln der Roboterkommandos aus den abgespeicherten Zeitreihen durch nichtlineare Optimierung. Bei der nichtlinearen Optimierung wird insbesondere eine Kostenfunktion verwendet, die die Differenz zwischen der durch die ausgewählten Kommandos hypothetisch erfolgten Zeitreihen und den tatsächlich erfolgten Zeitreihen wiedergibt. Eine solche Kostenfunktion wird dann durch Methoden der nichtlinearen Optimierung, insbesondere gradientenbasierte Methoden, Evolutionsmethoden, genetische Algorithmen, Methoden quadratischer Optimierung etc., minimiert, sodass insbesondere diejenigen Roboterkommandos ausgewählt werden, die rückwärtsgerechnet zu Zeitreihen führen, die auch den tatsächlichen Zeitreihen entsprechen. So werden die am besten passenden Roboterkommandos ausgewählt.
-
Gemäß einer weiteren vorteilhaften Ausführungsform erfolgt das Ermitteln der Roboterkommandos aus den abgespeicherten Zeitreihen durch Anwenden eines vorgegebenen künstlichen neuronalen Netzes, wobei eine Eingangsgröße des künstlichen neuronalen Netzes die abgespeicherten Zeitreihen, und eine Ausgangsgröße des künstlichen neuronalen Netzes ein jeweils ausgewähltes aus einer Vielzahl von zumindest strukturell vorgegebenen Roboterkommandos ist, wobei Parameter des jeweils ausgewählten der vorgegebenen Roboterkommandos auf Basis der abgespeicherten Zeitreihen angepasst werden. Der Vorteil eines künstlichen neuronalen Netzes ist die große Flexibilität und die breite Klasse von Funktionen, die durch das künstliche neuronale Netz abgebildet werden können.
-
Gemäß einer weiteren vorteilhaften Ausführungsform erfolgt das Ermitteln von Zeitreihen von Trajektoriendaten zusätzlich durch eine Kameraeinheit. Die Kameraeinheit ist bevorzugt am Robotermanipulator selbst angeordnet. Weiterhin bevorzugt ist die Kameraeinheit eine Stereokameraeinheit, sodass vorteilhaft räumliche Informationen über die Bahnkurve und/oder die Trajektorie des Referenzpunktes des Robotermanipulators von der Kameraeinheit erfasst werden. Bevorzugt werden die Informationen der Kameraeinheit mit den Informationen aus den Gelenkwinkelsensoren fusioniert bzw. zu diesen ergänzt.
-
Gemäß einer weiteren vorteilhaften Ausführungsform ist die Kameraeinheit eine externe Kameraeinheit. Die externe Kameraeinheit ist bevorzugt physisch getrennt vom ersten Robotermanipulator an einem Gestell oder an einem anderen Träger in der Umgebung des ersten Robotermanipulators angeordnet. Vorteilhaft stehen damit auch Informationen von nicht robotereigenen Sensoren zur Verfügung, die sich optimal mit den robotereigenen Sensoren zu insgesamt zuverlässigeren Datenquellen ergänzen lassen.
-
Gemäß einer weiteren vorteilhaften Ausführungsform die konstruktiven Gegebenheiten des ersten Robotermanipulators und/oder des zweiten Robotermanipulators zumindest eine aus den folgenden umfassen:
- - Abstände zwischen Gelenken des jeweiligen Robotermanipulators,
- - Anzahl der Gelenke des jeweiligen Robotermanipulators,
- - maximal aufbringbares Drehmoment von rotatorischen Aktuatoren des jeweiligen Robotermanipulators,
- - Art und Konfiguration eines Endeffektors des jeweiligen Robotermanipulators,
- - virtuelle Steifigkeit einer Regelung des jeweiligen Robotermanipulators, insbesondere die Steifigkeit einer virtuellen Feder in der Regelung, insbesondere Impedanzregelung,
- - materielle Steifigkeit von Gliedern und/oder Gelenken des jeweiligen Robotermanipulators,
- - ein geometrisch maximal möglicher Arbeitsraum des jeweiligen Robotermanipulators,
- - Zeitkonstanten und/oder Bandbreiten von Aktuatoren des jeweiligen Robotermanipulators,
- - Sicherheitsniveau und/oder aktuelle Sicherheitskonfiguration und/oder Residualrisiko des jeweiligen Robotermanipulators,
- - physische Existenz und/oder Konfiguration von Kommunikationsschnittstellen des jeweiligen Robotermanipulators,
- - Zahl der Roboterarme des jeweiligen Robotermanipulators,
- - Masse und/oder Trägheit von Komponenten, insbesondere Gliedern, des jeweiligen Robotermanipulators.
-
Ein weiterer Aspekt der Erfindung betrifft ein Robotersystem mit einer ersten Steuereinheit und einer zweiten Steuereinheit, die zusammen zum Erzeugen eines Steuerprogramms für einen zweiten Robotermanipulator des Robotersystems auf Basis von empirischen Daten einer Ausführung einer vorgegebenen Anwendung durch einen ersten Robotermanipulator des Robotersystems dienen, wobei die erste Steuereinheit zum Ansteuern des ersten Robotermanipulators zum Ausführen der vorgegebenen Anwendung ausgeführt ist, und dazu ausgeführt ist, während der Ausführung der vorgegebenen Anwendung Zeitreihen von Trajektoriendaten mittels Gelenkwinkelsensoren des ersten Robotermanipulators und/oder Zeitreihen von Kraftwinderdaten mittels einer Sensoreinheit des ersten Robotermanipulators zu ermitteln, und die ermittelten Zeitreihen in einer Speichereinheit abzuspeichern, wobei die Trajektoriendaten kinematische Daten bezüglich eines Referenzpunktes des ersten Robotermanipulators und/oder bezüglich der Gelenkwinkel des ersten Robotermanipulators umfassen und die Kraftwinderdaten zwischen dem ersten Robotermanipulator und einem Objekt aus der Umgebung wirkende Kräfte und/oder Momente umfassen, und wobei die erste Steuereinheit zum Ermitteln von Roboterkommandos aus den abgespeicherten Zeitreihen und Abspeichern der ermittelten Roboterkommandos in der Speichereinheit ausgeführt ist, wobei die Roboterkommandos prinzipielle Elemente eines Steuerprogramms für einen jeweiligen Robotermanipulator ohne Bezug zu den konstruktiven Gegebenheiten des ersten Robotermanipulators sind, und wobei die zweite Steuereinheit zum Erzeugen des Steuerprogramms für den zweiten Robotermanipulator auf Basis der abgespeicherten Roboterkommandos und auf Basis von konstruktiven Gegebenheiten des zweiten Robotermanipulators ausgeführt ist.
-
Vorteile und bevorzugte Weiterbildungen des vorgeschlagenen Robotersystems 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 zum Erzeugen eines Steuerprogramms für einen zweiten Robotermanipulator auf Basis von empirischen Daten einer Ausführung einer vorgegebenen Anwendung durch einen ersten Robotermanipulator gemäß einem Ausführungsbeispiel der Erfindung, und
- 2 ein Robotersystem 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 eines Steuerprogramms für einen zweiten Robotermanipulator 2 auf Basis von empirischen Daten einer Ausführung einer vorgegebenen Anwendung durch einen ersten Robotermanipulator 1. Die folgende Beschreibung des Verfahrens bezieht sich auch auf das Robotersystem 10 der 2. Zum Verständnis können daher beide Figuren herangezogen werden, insbesondere beziehen sich auch die folgenden erwähnten Bezugszeichen sowohl auf die 1 als auch wahlweise auf die 2. In einem ersten Schritt erfolgt das Ausführen S1 der vorgegebenen Anwendung durch den ersten Robotermanipulator 1. Die Anwendung betrifft das Herausheben eines spitzen Gegenstandes aus einer zylinderförmigen Kiste. Dafür ist ein Steuerprogramm für den ersten Robotermanipulator 1 vorgegeben, das auf die konstruktiven Gegebenheiten des ersten Robotermanipulators 1 angepasst ist, insbesondere an die Zahl der Gelenke, die Geometrie der Glieder und die Konfiguration mit seinem Greifer. Während der Ausführung der Anwendung erfolgt im weiteren Schritt das Ermitteln S2 von Zeitreihen von Trajektoriendaten mittels Gelenkwinkelsensoren 3 des ersten Robotermanipulators 1 und von Zeitreihen von Kraftwinderdaten durch eine Sensoreinheit 5 des ersten Robotermanipulators 1, wobei die Gelenkwinkelsensoren 3 zusammen mit den Drehmomentsensoren der Sensoreinheit 5 zum Erfassen von Kräften und Momenten in einem jeweiligen Gelenk des ersten Robotermanipulators 1 untergebracht sind. Diese ermittelten Zeitreihen werden in einer Speichereinheit 7 abgespeichert. Die Trajektoriendaten weißen dabei Daten über eine Bahnkurve bezüglich eines Referenzpunktes des ersten Robotermanipulators 1 des ersten Robotermanipulators 1 auf, indem die Gelenkwinkel mittels Transformation in einen kartesischen Positionsverlauf des Referenzpunktes am Endeffektor des ersten Robotermanipulators 1 transformiert werden. Die Kraftwinderdaten dagegen umfassen die zwischen dem ersten Robotermanipulator 1 und dem spitzen Gegenstand wirkenden Kräfte und Momente. Ferner folgt das Ermitteln S3 von Roboterkommandos aus den abgespeicherten Zeitreihen und das Abspeichern der ermittelten Roboterkommandos in der Speichereinheit 7, wobei die Roboterkommandos prinzipielle Elemente eines Steuerprogramms für einen jeweiligen Robotermanipulator ohne Bezug zu den konstruktiven Gegebenheiten des ersten Robotermanipulators 1 sind. Die zusammengesetzten Roboterkommandos umfassen die vorgegebene Bahnkurve des Referenzpunktes des ersten Robotermanipulators 1 von der Kiste zu einem vorgegebenen Endpunkt, dabei eine Beschleunigung des Referenzpunktes auf der Bahnkurve, sowie eine Kraft und ein Moment, die der Endeffektor am Referenzpunkt auf den spitzen Gegenstand ausübt. Diese Roboterkommandos ergeben in ihrer Zusammensetzung einen funktionellen Ablauf der Anwendung, der unabhängig von den oben genannten konstruktiven Gegebenheiten des ersten Robotermanipulators 1 ist. Die Roboterkommandos werden durch die Anwendung eines künstlichen neuronalen Netzes ermittelt, indem sämtliche Zeitreihen dem künstlichen neuronalen Netz als Eingangsgröße zugeführt werden und als Ausgang die Kombination der Roboterkommandos durch Ausführung des künstlichen neuronalen Netzes folgen. Hierauf erfolgt das Erzeugen S4 des Steuerprogramms für den zweiten Robotermanipulator 2 auf Basis der abgespeicherten Roboterkommandos und auf Basis von konstruktiven Gegebenheiten des zweiten Robotermanipulators 2. Weitere Erläuterungen zu diesen findet sich in der Beschreibung der 2.
-
2 zeigt ein Robotersystem 10 mit einer ersten Steuereinheit 11 und einer zweiten Steuereinheit 12, zum Erzeugen eines Steuerprogramms für einen zweiten Robotermanipulator 2 des Robotersystems 10 auf Basis von empirischen Daten einer Ausführung einer vorgegebenen Anwendung durch einen ersten Robotermanipulator 1 des Robotersystems 10. Der Robotermanipulator 1 ist dabei ein konventioneller Ein-Arm Robotermanipulator ohne redundante Freiheitsgrade. Dagegen ist der zweite Robotermanipulator 2 ein Zweiarmsystem mit zwei Roboterarmen. Die konstruktiven Gegebenheiten der beiden Robotermanipulatoren 1,2 weichen daher voneinander ab. Die erste Steuereinheit 11 ist am ersten Robotermanipulator 1 angeordnet und dient zum Ansteuern des ersten Robotermanipulators 1 zum Ausführen S1 der vorgegebenen Anwendung, sowie, um während der Ausführung der vorgegebenen Anwendung Zeitreihen von Trajektoriendaten mittels Gelenkwinkelsensoren 3 des ersten Robotermanipulators 1 und Zeitreihen von Kraftwinderdaten mittels einer Sensoreinheit 5 des ersten Robotermanipulators 1 zu ermitteln, und die ermittelten Zeitreihen in einer Speichereinheit 7 abzuspeichern. Ferner ermittelt die erste Steuereinheit 11 die Roboterkommandos aus den abgespeicherten Zeitreihen und speichert diese ermittelten Roboterkommandos in der Speichereinheit 7 ab, die Teil der ersten Steuereinheit 11 ist. Die zweite Steuereinheit 12 ist am zweiten Robotermanipulator 2 angeordnet und dient zum Erzeugen des Steuerprogramms für den zweiten Robotermanipulator 2 auf Basis der abgespeicherten Roboterkommandos und auf Basis von konstruktiven Gegebenheiten des zweiten Robotermanipulators 2.
-
Bezugszeichenliste
-
- 1
- erster Robotermanipulator
- 2
- zweiter Robotermanipulator
- 3
- Gelenkwinkelsensoren
- 5
- Sensoreinheit
- 7
- Speichereinheit
- 10
- Robotersystem
- 11
- erste Steuereinheit
- 12
- zweite Steuereinheit
- S1
- Ausführen
- S2
- Ermitteln
- S3
- Ermitteln
- S4
- Erzeugen