(19)
(11) EP 3 272 468 A1

(12) EUROPÄISCHE PATENTANMELDUNG

(43) Veröffentlichungstag:
24.01.2018  Patentblatt  2018/04

(21) Anmeldenummer: 17175405.4

(22) Anmeldetag:  12.06.2017
(51) Internationale Patentklassifikation (IPC): 
B25J 9/00(2006.01)
(84) Benannte Vertragsstaaten:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR
Benannte Erstreckungsstaaten:
BA ME
Benannte Validierungsstaaten:
MA MD

(30) Priorität: 14.07.2016 DE 102016212911

(71) Anmelder: Siemens Aktiengesellschaft
80333 München (DE)

(72) Erfinder:
  • Mayer, Hermann Georg
    83209 Prien am Chiemsee (DE)

   


(54) VERFAHREN UND VORRICHTUNG ZUM STEUERN EINER ROBOTERBEWEGUNG EINES ROBOTERS ANHAND EINER ZWEITEN TRAJEKTORIE


(57) Die Erfindung betrifft ein Verfahren zum Steuern einer Roboterbewegung eines Roboters anhand einer zweiten Trajektorie, wobei die zweite Trajektorie anhand eines Viskositätsvolumenmodells berechnet wird.













Beschreibung


[0001] Die Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zum Steuern einer Roboterbewegung eines Roboters anhand einer zweiten Trajektorie.

[0002] Es besteht ein Bedarf eine Trajektorie im dreidimensionalen Raum für ein technisches Gerät (z. B. einen Roboter) zu finden. Die abzufahrende Bahn (Trajektorie) soll dabei möglichst kurz sein und zu keinerlei Kollisionen des technischen Geräts mit seiner Umgebung führen. Neben der reinen geometrischen Bewegung sollen durch die Trajektorie weitere Vorgaben für das Abfahren der Bahn gemacht werden. So darf zu keiner Zeit der zulässige Geschwindigkeitsbereich des technischen Geräts verlassen werden. Im Fall von Robotern bedeutet dies, dass bei einer Bewegung des Endeffektors (z.B. einer Schweißzange) auch die Geschwindigkeit der einzelnen Gelenke unter einer technisch vorgegebenen Maximalgeschwindigkeit liegen muss. Insbesondere müssen Singularitäten in der Roboterstellung vermieden werden und Bereiche in der Nähe einer Singularität entsprechend langsam durchfahren werden. Da in Zukunft Roboter in flexiblen Umgebungen eingesetzt werden (z.B. Industrie 4.0 Szenarien) und auch die zu bearbeitenden Aufgaben variieren können (individualisierte Produktion), ist es zunehmend schwierig, Trajektorien "manuell" auf ihre Durchführbarkeit zu prüfen.

[0003] Eine Aufgabe der vorliegenden Erfindung ist es, ein Verfahren und eine Vorrichtung bereitzustellen, die es erlauben, eine Roboterbewegung eines Roboters anhand einer zweiten Trajektorie zu steuern, wobei die zweite Trajektorie möglichst einfach berechenbar ist.

[0004] Die Aufgabe wird durch die in den unabhängigen Ansprüchen angegebenen Merkmale gelöst. In den Unteransprüchen sind vorteilhafte Weiterbildungen der Erfindung dargestellt.

[0005] Gemäß einem ersten Aspekt betrifft die Erfindung ein Verfahren zum Steuern einer Roboterbewegung eines Roboters anhand einer zweiten Trajektorie mit folgenden Verfahrensschritten:
  1. a) Berechnen eines Viskositätsvolumenmodells zur Modellierung einer ersten Arbeitsumgebung des Roboters, wobei
    • das Viskositätsvolumenmodell erste räumliche Bereiche mit ersten unterschiedlichen Viskositäten umfasst;
    • die ersten Bereiche anhand von ersten Charakteristiken des Roboters und der ersten Arbeitsumgebung bestimmt werden;
  2. b) Festlegen einer ersten Trajektorie für den Roboter;
  3. c) Anregen einer simulierten Flüssigkeit in dem Viskositätsvolumenmodell zur Bewegung entlang der ersten Trajektorie, wobei die angeregte Flüssigkeit eine Strömung aufweist;
  4. d) Erfassen eines Flüssigkeitselementes in der angeregten Flüssigkeit an einen Anfang der ersten Trajektorie;
  5. e) Erfassen eines zurückgelegten Pfades des Elements in der angeregten simulierten Flüssigkeit in dem Viskositätsvolumenmodell, wobei eine Strömungsrichtung der simulierten Flüssigkeit durch die ersten Bereiche bestimmt wird;
  6. f) Speichern des zurückgelegten Pfades als die zweite Trajektorie;
  7. g) Steuern der Roboterbewegung anhand der zweiten Trajektorie.


[0006] Sofern es in der nachfolgenden Beschreibung nicht anders angegeben ist, beziehen sich die Begriffe "durchführen", "berechnen", "rechnergestützt", "rechnen", "feststellen", "generieren", "konfigurieren", "rekonstruieren" und dergleichen, vorzugsweise auf Handlungen und/oder Prozesse und/oder Verarbeitungsschritte, die Daten verändern und/oder erzeugen und/oder die Daten in andere Daten überführen, wobei die Daten insbesondere als physikalische Größen dargestellt werden oder vorliegen können, beispielsweise als elektrische Impulse. Insbesondere sollte der Ausdruck "Computer" möglichst breit ausgelegt werden, um insbesondere alle elektronischen Geräte mit Datenverarbeitungseigenschaften abzudecken. Computer können somit beispielsweise Personal Computer, Server, Handheld-Computer-Systeme, Pocket-PC-Geräte, Mobilfunkgeräte und andere Kommunikationsgeräte, die rechnergestützt Daten verarbeiten können, Prozessoren und andere elektronische Geräte zur Datenverarbeitung sein.

[0007] Unter "rechnergestützt" kann im Zusammenhang mit der Erfindung beispielsweise eine Implementierung des Verfahrens verstanden werden, bei dem insbesondere ein Prozessor mindestens einen Verfahrensschritt des Verfahrens ausführt.

[0008] Unter einem Prozessor kann im Zusammenhang mit der Erfindung beispielsweise eine Maschine oder eine elektronische Schaltung verstanden werden. Bei einem Prozessor kann es sich insbesondere um einen Hauptprozessor (engl. Central Processing Unit, CPU), einen Mikroprozessor oder einen Mikrokontroller, beispielsweise eine anwendungsspezifische integrierte Schaltung oder einen digitaler Signalprozessor, möglicherweise in Kombination mit einer Speichereinheit zum Speichern von Programmbefehlen, etc. handeln. Bei einem Prozessor kann es sich beispielsweise auch um einen IC (integrierter Schaltkreis, engl. Integrated Circuit), insbesondere einen FPGA (engl. Field Programmable Gate Array) oder einen ASIC (anwendungsspezifische integrierte Schaltung, engl. Application-Specific Integrated Circuit), oder einen DSP (Digitaler Signalprozessor, engl. Digital Signal Processor) handeln. Auch kann unter einem Prozessor ein virtualisierter Prozessor oder eine Soft-CPU verstanden werden. Es kann sich beispielsweise auch um einen programmierbaren Prozessor handeln, der mit Konfigurationsschritten zur Ausführung des genannten erfindungsgemäßen Verfahrens ausgerüstet wird oder mit Konfigurationsschritten derart konfiguriert ist, dass der programmierbare Prozessor die erfindungsgemäßen Merkmale des Verfahrens, der Komponente, des Sicherheitsmoduls, oder anderer Aspekte und Teilaspekte der Erfindung implementiert.

[0009] Unter einer "Speichereinheit" kann im Zusammenhang mit der Erfindung beispielsweise ein Speicher in Form von Arbeitsspeicher (engl. Random-Access Memory, RAM) oder eine Festplatte verstanden werden.

[0010] Unter einer "Arbeitsumgebung", insbesondere eines Roboters, kann im Zusammenhang mit der Erfindung beispielsweise ein Bewegungsraum des Roboters und/oder ein Arbeitsraum des Roboters verstanden werden. Der Bewegungsraum beschreibt insbesondere einen Raum, der beispielsweise von bewegten Elementen des Roboters insbesondere inklusive des Endeffektors mit der Gesamtheit aller Achsbewegungen erreicht werden kann. Insbesondere berücksichtigt der Bewegungsraum beispielsweise eine spezielle Form des Endeffektors und/oder eines Handhabungsobjekts, die insbesondere mit diesen in der Arbeitsumgebung erreicht werden können.

[0011] Unter einer "ersten Arbeitsumgebung", kann im Zusammenhang mit der Erfindung beispielsweise eine vereinfachte Arbeitsumgebung, eine Simulation der realen oder zweiten Arbeitsumgebung oder ein reales Modell der zweiten Arbeitsumgebung oder der tatsächlichen Arbeitsumgebung des Roboters verstanden werden. Die erste Arbeitsumgebung kann insbesondere eine vereinfachte zweite Arbeitsumgebung sein, bei der beispielsweise zunächst bestimmte Hindernisse aus der (zweiten) Arbeitsumgebung entfernt werden. Insbesondere kann die erste Arbeitsumgebung aber auch der zweiten Arbeitsumgebung entsprechen, abhängig vom gewählten Szenario.

[0012] Unter einer "zweiten Arbeitsumgebung", kann im Zusammenhang mit der Erfindung beispielsweise eine tatsächliche oder reale Arbeitsumgebung des Roboters verstanden werden. Die zweite Arbeitsumgebung kann insbesondere ein Arbeitsort sein, in dem der Roboter betrieben werden soll.

[0013] Die zweite Arbeitsumgebung könnte sich insbesondere auch zur gleichen Zeit an einem anderen Ort befinden. So kann beispielsweise der Operateur in der ersten Arbeitsumgebung ein Gerät (z. B. einen Roboter oder den Endeffektor eines Roboters) führen, dessen Bewegungen beispielsweise auf ein vorzugsweise baugleiches Gerät (oder auch ein anderes Gerät zur Ausführung von Trajektorien) in der entfernt liegenden Umgebung (z. B. zweite Arbeitsumgebung) übertragen werden. Insbesondere müssen etwaige Hindernisse in der zweiten Umgebung dem Operateur nicht bekannt sein, d.h. er kann beispielsweise in der ersten Arbeitsumgebung eine erste Trajektorie ohne Detailwissen über die zweite Arbeitsumgebung aufzeichnen. Die zweite Trajektorie wird dann beispielsweise durch die in den Ansprüchen/Ausführungsbeispielen beschriebenen Verfahren beispielsweise an die zweite Arbeitsumgebung angepasst. Zum Beispiel, wäre die Steuerung eines Roboters beispielsweise im Weltall vom Boden aus (entfernte Arbeitsumgebung in Verbindung mit einem Zeitversatz: vorliegende Verhältnisse in der zweiten Arbeitsumgebung können beim Festlegen/Aufzeichnen der ersten Trajektorie noch nicht vollständig bekannt sein: z.B. Hindernis wird während des Zeitversatzes eingebracht)

[0014] Unter einem "Arbeitsraum", insbesondere eines Roboters, kann im Zusammenhang mit der Erfindung beispielsweise ein Raum verstanden werden, der insbesondere von den Schnittstellen und/oder Bewegungsachsen und/oder einem Endeffektor gebildet werden, indem man beispielsweise alle Hauptachsen in ihre jeweilige Maximal- und Minimalstellung verfährt. Insbesondere ist der Arbeitsraum unabhängig von spezieller Form des Endeffektors und/oder des Handhabungsobjekt definiert (oder diese Aspekte werden im Arbeitsraum nicht berücksichtigt). Vorzugsweise ist der Bewegungsraum mindestens so groß wie der Arbeitsraum, wobei der Bewegungsraum auch größer sein kann als der Arbeitsraum.

[0015] Unter einem "Viskositätsvolumenmodell" kann im Zusammenhang mit der Erfindung beispielsweise eine rechnergestützte oder numerische Modellierung der Arbeitsumgebung des Roboters als fluidgefüllter/flüssigkeitsgefüllter Raum verstanden werden. Dies kann beispielsweise als dreidimensionales Modell, das insbesondere mittels Punkten (beispielsweise Punktwolken), Polygonen (beispielsweise Polygonnetze) oder Voxeln (beispielsweise Voxelgitter) implementiert ist. Das dreidimensionale Modell kann beispielsweise Positionen und/oder Bewegungen im Viskositätsvolumenmodell über Koordinaten und (Richtungs-)Vektoren beschreiben, die insbesondere durch eine x-Achse, eine y-Achse und eine z-Achse, die in einem Ursprung orthogonal aufeinander stehen, definiert werden. Unter einem "Viskositätsvolumenmodell" kann im Zusammenhang mit der Erfindung beispielsweise auch ein inhomogenes Viskositätsvolumenmodell mit einem oder mehreren räumlichen Bereichen verstanden werden, die insbesondere jeweils unterschiedliche Viskositäten aufweisen. Die jeweiligen unterschiedlichen Bereiche können beispielsweise räumlich zusammenhängende Voxel des Viskositätsvolumenmodells sein.

[0016] Unter einem "anisotropen Viskositätsvolumenmodell" kann im Zusammenhang mit der Erfindung beispielsweise eine Erweiterung des Viskositätsvolumenmodells verstanden werden, wobei insbesondere die Viskositäten des Viskositätsvolumenmodells richtungsabhängig sind. Beispielsweise unterscheiden sich die jeweiligen Viskositäten der einen oder mehreren unterschiedlichen räumlichen Bereiche abhängig von einer Bewegungsrichtung oder einem Richtungsvektor in dem jeweiligen Bereich. Beispielsweise kann in einem Bereich bei einer Bewegung, insbesondere eines Roboters, eine erste Viskosität in x-Richtung wirken und eine zweite Viskosität bei einer Bewegung in y-Richtung wirken.

[0017] Unter einem "Modell", insbesondere einem Viskositätsvolumenmodell und dergleichen, kann im Zusammenhang mit der Erfindung beispielsweise eine Datenstruktur, insbesondere zur Aufnahme von Daten (beispielsweise Voxel und dergleichen) zur Modellierung der Arbeitsumgebung als fluidgefüllter Raum, verstanden werden.

[0018] Unter einem "Modul" kann im Zusammenhang mit der Erfindung beispielsweise ein Prozessor und/oder eine Speichereinheit zum Speichern von Programmbefehlen verstanden werden. Beispielsweise ist der Prozessor speziell dazu eingerichtet, die Programmbefehle derart auszuführen, damit der Prozessor Funktionen ausführt, um das erfindungsgemäße Verfahren oder einen Schritt des erfindungsgemäßen Verfahrens zu implementieren.

[0019] Unter einer "Trajektorie" kann im Zusammenhang mit der Erfindung beispielsweise eine Raumkurve oder ein Pfad, entlang dem sich ein Punkt oder ein Endeffektor eines Roboters bewegt, verstanden werden.

[0020] Unter einem "Abspielen einer Trajektorie" kann im Zusammenhang mit der Erfindung beispielsweise ein Abfahren der Trajektorie mit dem Roboter verstanden werden, wobei insbesondere ein Messsystem die zweiten Charakteristiken (z. B. Hindernisse und Kollisionen) erfasst.

[0021] Unter einem "Messsystem" kann im Zusammenhang mit der Erfindung beispielsweise System zum Erfassen der Arbeitsumgebung und/oder Hindernisse in der Arbeitsumgebung verstanden werden. Bei dem Messsystem kann es sich beispielsweise um ein 3D-Kamerasystem oder ein Laserscanner handeln.

[0022] Unter einem "Roboter" kann im Zusammenhang mit der Erfindung beispielsweise ein medizinischer Roboter oder ein Industrieroboter verstanden werden, dessen Bewegungen insbesondere durch die Denavit-Hartenberg-Konvention beschreibbar sind.

[0023] Unter "unendlicher" oder "annähernd unendlicher" Viskosität kann im Zusammenhang mit der Erfindung beispielsweise ein sehr hoher Wert verstanden werden, der insbesondere nur noch eine kaum wahrnehmbare Fließgeschwindigkeit zulässt. Eine unendliche/annähernd unendliche Viskosität kann beispielsweise bei einer Implementierung derart festgelegt werden, dass insbesondere ein Datenfeld, das die Viskosität speichert, auf den höchsten erlaubten Wert eines Datentyps (z. B. float, double, integer) des Datenfeldes gesetzt wird.

[0024] Unter "Konfigurationen", insbesondere eines Roboters, können im Zusammenhang mit der Erfindung beispielsweise mechanischen Eigenschaften des Roboters verstanden werden, die insbesondere die möglichen Bewegungen und Bewegungsgeschwindigkeiten angeben. Die Konfigurationen eines Roboters geben beispielsweise zulässige Geschwindigkeit für Mechaniken (z. B. Drehgelenke, Motoren usw.) des Roboters für bestimmte Punkte/Positionen in der Arbeitsumgebung des Roboters an. Hierdurch ergeben sich beispielsweise die in diesem Punkt/dieser Position maximal zulässige Geschwindigkeiten für den Roboter und/oder Drehgeschwindigkeiten der Gelenke des Roboters.

[0025] Unter "Charakteristiken", insbesondere einer Arbeitsumgebung und/oder eines Roboters, können im Zusammenhang mit der Erfindung beispielsweise räumliche Informationen über Hindernisse in der ersten/zweiten Arbeitsumgebung und/oder die mechanischen Eigenschaften und/oder Beschränkungen des Roboters verstanden werden. Charakteristiken umfassen insbesondere auch Informationen über mögliche Kollisionen des Roboters mit Hindernissen oder Singularitäten, die anhand der mechanischen Eigenschaften des Roboters ableitbar sind.

[0026] Unter "ersten Bereichen", insbesondere eines Viskositätsvolumenmodells, können im Zusammenhang mit der Erfindung beispielsweise räumliche Bereiche verstanden werden, die jeweils eine unterschiedliche Viskosität aufweisen können. Die ersten räumlichen Bereiche können beispielsweise durch Punkte oder Voxel im Viskositätsvolumenmodell dargestellt werden. Die ersten räumlichen Bereiche können beispielsweise auch aktualisiert oder erweitert werden. Hierzu kann beispielsweise für die ersten räumlichen Bereiche jeweils eine neue Viskosität eingestellt werden oder die ersten räumlichen Bereiche werden beispielsweise um zusätzliche räumliche Bereiche erweitert.

[0027] Unter einer "Singularität" kann im Zusammenhang mit der Erfindung beispielsweise eine ungünstige Position der Achsen verstanden werden. Eine Singularität ist beispielsweise dadurch gekennzeichnet und erkennbar, dass insbesondere zwei Achsen des Roboters kollinear (fluchtend) sind. Eine typische Konfiguration mit Singularität ist beispielsweise die Überkopfstellung des Werkzeuges/Endeffektors eines sechsachsigen Roboters. Hier fluchten beispielsweise die erste Achse und die sechste Achse. Die Steuerung kann beispielsweise eine auszuführende Rotation um eine Senkrechte nicht eindeutig der ersten Achse oder der sechsten Achse zuordnen. Eine andere Konstellation ist beispielsweise beim Nulldurchgang der fünften Achse gegeben. Hier fluchten insbesondere die vierte Achse und die sechste Achse. Hier gibt es insbesondere unendlich viele Achsstellungen, die insbesondere zur gleichen Werkzeugstellung/Endeffektorstellung führen bzw. Bewegungsbahnen, bei denen beispielsweise mehrere Achsen mit unendlicher Geschwindigkeit gegeneinander bewegt werden müssten.

[0028] Vorzugsweise wird die Flüssigkeit derart durch die erste Trajektorie angeregt, dass keine Turbulenzen entstehen und es sich somit vorzugsweise bei der Strömung um eine laminare Strömung handelt.

[0029] Die erste Trajektorie des erfindungsgemäßen Verfahrens kann beispielsweise in der ersten Arbeitsumgebung und/oder in einer simulierten Arbeitsumgebung (beispielsweise anhand eines 3D Modells der ersten/zweiten Arbeitsumgebung) und/oder in der zweiten Arbeitsumgebung beispielsweise über ein Eingabegerät festgelegt werden.

[0030] Das Verfahren ist beispielsweise dahingehend vorteilhaft, um eine Trajektorie (zweite Trajektorie) im dreidimensionalen Raum für ein technisches Gerät (z.B. einen Roboter) zu finden. Insbesondere ist mit dem erfindungsgemäßen Verfahren die Trajektorie (abzufahrende Bahn) derart bestimmbar, dass diese vorzugsweise möglichst kurz ist und es vorzugsweise zu keinen Kollisionen des technischen Geräts/Endeffektors des technisehen Gerätes mit/in seiner Arbeitsumgebung oder Hindernissen in der zweiten Arbeitsumgebung kommt. Insbesondere erlaubt das erfindungsgemäße Verfahren, dass beispielsweise zu keiner Zeit der zulässige Geschwindigkeitsbereich des technischen Geräts verlassen wird. Für Roboter wird beispielsweise sichergestellt, dass bei einer Bewegung des Endeffektors (z.B. einer Schweißzange) des Roboters entlang einer Trajektorie auch die Geschwindigkeit der einzelnen Gelenke des Roboters unter einer technisch vorgegebenen Maximalgeschwindigkeit liegt. Insbesondere werden mit dem erfindungsgemäßen Verfahren Singularitäten in der Roboterstellung (Stellung der Gelenke des Roboters) vermieden und Bereiche in der Nähe einer Singularität entsprechend langsam durchfahren. Dies wird durch das erfindungsgemäße Verfahren beispielsweise dadurch erreicht, dass insbesondere Bereiche mit Singularitäten eine annähernd unendlich hohe Viskosität zugewiesen wird und Bereichen in der Nähe von Singularitäten eine höhere Viskosität zugewiesen wird als Bereiche die weiter entfernt von Singularitäten sind.

[0031] Des Weiteren ist das Verfahren beispielsweise dahingehend vorteilhaft, um beim Abfahren einer Trajektorie mit einem Endeffektor Pausen zu vermeiden oder ein plötzliches Drehen des Endeffektors zu verhindern, da so insbesondere Kollisionen des vom Roboter gehaltenen Werkstücks verhindert werden. Das vorgestellte Verfahren ist insbesondere dahingehend vorteilhaft, um automatisiert eine Trajektorie zu erstellen, die insbesondere kollisionsfrei ist und/oder Singularitäten umfährt.

[0032] Bei einer ersten Ausführungsform des Verfahrens, umfasst das Verfahren einen zusätzlichen Verfahrensschritt zwischen den Verfahrensschritten b) und c):

b2) Aktualisieren des Viskositätsvolumenmodells anhand von zweiten Charakteristiken einer zweiten Arbeitsumgebung und des Roboters, wobei

  • anhand eines Abspielens der ersten Trajektorie in der zweiten Arbeitsumgebung die zweiten Charakteristiken ermittelt werden,
  • anhand der zweiten Charakteristiken die ersten Bereiche aktualisiert und/oder erweitert werden.



[0033] Bei einer weiteren Ausführungsform des Verfahrens werden die zweiten Charakteristiken anhand des Abspielens der ersten Trajektorie in der zweiten Arbeitsumgebung und einem Messsystem erfasst.

[0034] Insbesondere werden die zweiten Charakteristiken anhand des Abspielens der ersten Trajektorie in einer Simulation der zweiten Arbeitsumgebung und/oder einem Messsystem erfasst. Damit kann die zweite Trajektorie in der zweiten Arbeitsumgebung beispielsweise auf numerischem Wegeberechnet werden.

[0035] Das Verfahren ist beispielsweise dahingehend vorteilhaft, um Hindernisse und/oder Kollisionen in der zweiten Arbeitsumgebung des Roboters zu erkennen und dieser jeweils einen ersten Bereich mit einer entsprechenden Viskosität zuzuweisen oder einen ersten Bereich zu aktualisieren. Hierzu kann beispielsweise in den Roboter ein spezifischer Endeffektor eingesetzt werden, um insbesondere die Bewegung des Roboters nach zu verfolgen und zu messen. Hierzu kann beispielsweise über ein Eingabegerät die erste Trajektorie manuell durch einen Benutzer abgefahren werden. Der Benutzer umfährt dann beispielsweise Hindernisse in der Arbeitsumgebung des Roboters und dieses Ausweichen kann dann beispielsweise durch ein Messsystem erfasst werden, um die zweiten Charakteristiken zu ermitteln.

[0036] Bei einer weiteren Ausführungsform des Verfahrens verfügt ein Eingabegerät für das Festlegen oder Abspielen der ersten Trajektorie über eine Kraftrückkopplung, wobei mittels der Kraftrückkopplung die zweiten Charakteristiken erfasst werden.

[0037] Das Verfahren ist beispielsweise dahingehend vorteilhaft, um die Viskosität dem Benutzer mittels der Kraftrückkopplung anzuzeigen. Insbesondere kann bereits während der Eingabe der Benutzer um Hindernisse und Singularitäten herum geführt werden, sodass beispielsweise die zweiten Charakteristiken einfacher und/oder schneller und/oder genauer ermittelbar sind.

[0038] Bei einer weiteren Ausführungsform des Verfahrens umfassen die ersten Charakteristiken des Roboters und/oder die zweiten Charakteristiken des Roboters zulässige Geschwindigkeiten der Motoren und/oder zulässige Drehbereiche der Gelenke des Roboters.

[0039] Das Verfahren ist beispielsweise dahingehend vorteilhaft, um die Eigenschaften eines Roboters mit unterschiedlichen Viskositäten zu modellieren. Hiermit können beispielsweise eine Beweglichkeit des Roboters in seiner Arbeitsumgebung und die technischen Grenzen, die dieser Beweglichkeit unterworfen ist, modelliert werden.

[0040] Bei einer weiteren Ausführungsform des Verfahrens umfassen die ersten Charakteristiken und/oder die zweiten Charakteristiken der ersten Arbeitsumgebung und/oder der zweiten Arbeitsumgebung Eigenschaften von Hindernissen, wobei die Eigenschaften von Hindernissen insbesondere eine Größe und/oder eine Länge und/oder eine Position in der ersten Arbeitsumgebung und/oder der zweiten Arbeitsumgebung umfassen.

[0041] Bei einer weiteren Ausführungsform des Verfahrens werden die ersten räumlichen Bereiche mit den ersten unterschiedlichen Viskositäten anhand einer zulässigen Geschwindigkeit des Roboters festgelegt, wobei die die zulässige Geschwindigkeit insbesondere von Konfigurationen des Roboters bestimmt wird.

[0042] Dazu werden beispielsweise zu den Positionen in den ersten Bereichen in der Arbeitsumgebung des Roboters im Viskositätsvolumenmodell (entsprechend einer gewählten räumlichen Auflösung) insbesondere die Konfigurationen des Roboters untersucht, durch die sich insbesondere für diese Positionen jeweils eine maximal zulässige Geschwindigkeit ergeben. Dies kann insbesondere anhand der ersten Charakteristiken durchgeführt werden. Gibt es beispielsweise für eine Position mehrere zulässige Konfigurationen (z.B. Lefty/Righty oder Ellbow Up/Down), so können diese beispielsweise entweder in einem Viskositätsvolumenmodell vereinigt werden, beispielsweise als eine maximal mögliche Geschwindigkeit über alle Konfigurationen oder es wird für jede Konfiguration ein eigenes Viskositätsvolumenmodell angelegt, um später mehrere Handlungsalternativen zu haben. Die maximal zulässige Geschwindigkeit wird beispielsweise über eine Formel in eine Viskosität an diesem Punkt umgerechnet Beispielsweise kann die Viskosität wie folgt bestimmt werden: Je geringer die Geschwindigkeit sein darf, desto höher ist die Viskosität und umgekehrt. Die Viskosität wird dabei insbesondere so gewählt, dass beispielsweise bei der Anregung der Flüssigkeit durch die erste Trajektorie keine Turbulenzen entstehen (vorzugsweise nur ein laminarer Fluss entsteht). Die sich vorzugsweise dadurch einstellende Geschwindigkeit der zweiten Trajektorien wird dann auf die Maximalgeschwindigkeit des Geräts hin kalibriert.

[0043] Bei einer weiteren Ausführungsform des Verfahrens bei mehreren Konfigurationen wird für jeweils einen der ersten räumlichen Bereiche jeweils ein Viskositätsvolumenmodel berechnet oder die mehreren Konfigurationen werden für den jeweiligen ersten räumlichen Bereich in dem Viskosevolumenmodell zusammengefasst.

[0044] Bei einer weiteren Ausführungsform des Verfahrens sind die ersten unterschiedlichen Viskositäten des Viskositätsvolumenmodells richtungsabhängig, wobei das Viskositätsvolumenmodell insbesondere ein anisotropes Viskositätsvolumenmodell ist.

[0045] Bei einer weiteren Ausführungsform des Verfahrens werden bei einer Veränderung der zweiten Charakteristiken während dem Abspielen der ersten Trajektorie und/oder bei einer Veränderung einer Position des Roboters in der zweiten Arbeitsumgebung während dem Abspielen der ersten Trajektorie nachfolgende Verfahrensschritte wiederholt:
  • Aktualisieren des Viskositätsvolumenmodells;
  • Anregen der simulierten Flüssigkeit;
  • Erfassen des Flüssigkeitselementes;
  • Erfassen von weiteren zurückgelegten Pfaden jeweils für eine Wiederholung,
    wobei der zurückgelegte Pfad und die weiteren zurückgelegten Pfade für die jeweilige Wiederholung die zweite Trajektorie aktualisieren


[0046] Das Verfahren ist beispielsweise dahingehend vorteilhaft, um eine Bewegung des Roboters oder der Hindernisse während des Abspielens der Trajektorie bei der Erstellung der zweiten Trajektorie zu berücksichtigen.

[0047] Bei einer weiteren Ausführungsform des Verfahrens wird das Wiederholen in kurzer zeitlicher Abfolge wiederholt.

[0048] Gemäß einem weiteren Aspekt betrifft die Erfindung eine Vorrichtung zur rechnergestützten Trajektorienberechnung für Roboter, aufweisend,
  • ein erstes Berechnungsmodul zum Berechnen eines Viskositätsvolumenmodells zur Modellierung einer ersten Arbeitsumgebung des Roboters, wobei
    • das Viskositätsvolumenmodell erste räumliche Bereiche mit ersten unterschiedlichen Viskositäten umfasst;
    • die ersten Bereiche anhand von ersten Charakteristiken des Roboters und der ersten Arbeitsumgebung bestimmt werden;
  • ein erstes Festlegemodul zum Festlegen einer ersten Trajektorie für die erste Arbeitsumgebung des Roboters;
  • ein erstes Anregungsmodul zum Anregen einer simulierten Flüssigkeit in dem Viskositätsvolumenmodell zur Bewegung entlang der ersten Trajektorie, wobei die angeregte Flüssigkeit eine Strömung aufweist;
  • ein erstes Erfassungsmodul zum Erfassen eines Flüssigkeitselementes in der angeregten Flüssigkeit an einem Anfang der ersten Trajektorie;
  • ein zweites Erfassungsmodul zum Erfassen eines zurückgelegten Pfades des Elements in der angeregten simulierten Flüssigkeit in dem Viskositätsvolumenmodell, wobei eine Strömungsrichtung der simulierte Flüssigkeit durch die ersten Bereiche bestimmt wird;
  • ein erstes Speichermodul zum Speichern des zurückgelegten Pfades als zweite Trajektorie;
  • ein erstes Steuermodul zum Steuern der Roboterbewegung anhand der zweiten Trajektorie.


[0049] Bei einer ersten Ausführungsform der Vorrichtung umfasst die Vorrichtung mindestens ein weiteres Modul zur Durchführung des erfindungsgemäßen Verfahrens einer der Ausführungsformen.

[0050] Des Weiteren wird ein Computerprogrammprodukt mit Programmbefehlen zur Durchführung der genannten erfindungsgemäßen Verfahren beansprucht, wobei mittels des Computerprogrammprodukts jeweils eines der erfindungsgemäßen Verfahren, alle erfindungsgemäßen Verfahren oder eine Kombination der erfindungsgemäßen Verfahren durchführbar ist.

[0051] Zusätzlich wird eine Variante des Computerprogrammproduktes mit Programmbefehlen zur Konfiguration eines Erstellungsgeräts, beispielsweise ein 3D-Drucker oder ein zur Erstellung von Prozessoren und/oder Geräten, beansprucht, wobei das Erstellungsgerät mit den Programmbefehlen derart konfiguriert wird, dass die genannte erfindungsgemäße Vorrichtung erstellt wird.

[0052] Darüber hinaus wird eine Bereitstellungsvorrichtung zum Speichern und/oder Bereitstellen des Computerprogrammprodukts beansprucht. Die Bereitstellungsvorrichtung ist beispielsweise ein Datenträger, der das Computerprogrammprodukt speichert und/oder bereitstellt. Alternativ und/oder zusätzlich ist die Bereitstellungsvorrichtung beispielsweise ein Netzwerkdienst, ein Computersystem, ein Serversystem, insbesondere ein verteiltes Computersystem, ein cloudbasiertes Rechnersystem und/oder virtuelles Rechnersystem, welches das Computerprogrammprodukt vorzugsweise in Form eines Datenstroms speichert und/oder bereitstellt.

[0053] Diese Bereitstellung erfolgt beispielsweise als Download in Form eines Programmdatenblocks und/oder Befehlsdatenblocks, vorzugsweise als Datei, insbesondere als Downloaddatei, oder als Datenstrom, insbesondere als Downloaddatenstrom, des vollständigen Computerprogrammprodukts. Diese Bereitstellung kann beispielsweise aber auch als partieller Download erfolgen, der aus mehreren Teilen besteht und insbesondere über ein Peer-to-Peer Netzwerk heruntergeladen oder als Datenstrom bereitgestellt wird. Ein solches Computerprogrammprodukt wird beispielsweise unter Verwendung der Bereitstellungsvorrichtung in Form des Datenträgers in ein System eingelesen und führt die Programmbefehle aus, sodass das erfindungsgemäße Verfahren auf einem Computer zur Ausführung gebracht wird oder das Erstellungsgerät derart konfiguriert, dass dieses die erfindungsgemäße Vorrichtung erstellt.

[0054] Die oben beschriebenen Eigenschaften, Merkmale und Vorteile dieser Erfindung sowie die Art und Weise, wie diese erreicht werden, werden klarer und deutlicher verständlich im Zusammenhang mit der folgenden Beschreibung der Ausführungsbeispiele, die im Zusammenhang mit den Figuren näher erläutert werden. Dabei zeigen in schematischer Darstellung:
Fig. 1
ein Ablaufdiagramm eines ersten Ausführungsbeispiels des erfindungsgemäßen Verfahrens;
Fig. 2a-d
ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens zum Steuern einer Roboterbewegung, wobei insbesondere Hindernisse und/oder Singularitäten berücksichtigt werden;
Fig. 3
eine erfindungsgemäße Vorrichtung zum Steuern einer Roboterbewegung eines Roboters anhand einer zweiten Trajektorie;


[0055] In den Figuren sind funktionsgleiche Elemente mit denselben Bezugszeichen versehen, sofern nichts anderes angegeben ist.

[0056] Die nachfolgenden Ausführungsbeispiele weisen, sofern nicht anders angegeben oder bereits angegeben, zumindest einen Prozessor und/oder eine Speichereinrichtung auf, um das Verfahren zu implementieren oder auszuführen.

[0057] Die Fig. 1 zeigt ein Ablaufdiagramm eines ersten Ausführungsbeispiels des erfindungsgemäßen Verfahrens.

[0058] Im Einzelnen zeigt Fig. 1 ein Verfahren zum Steuern einer Roboterbewegung eines Roboters anhand einer zweiten Trajektorie.

[0059] Das Verfahren umfasst einen ersten Verfahrensschritt zum Berechnen 110 eines Viskositätsvolumenmodells zur Modellierung einer ersten Arbeitsumgebung des Roboters. Das Viskositätsvolumenmodell umfasst dabei erste räumliche Bereiche mit ersten unterschiedlichen Viskositäten, wobei die ersten Bereiche anhand von ersten Charakteristiken des Roboters und der ersten Arbeitsumgebung bestimmt werden.

[0060] Das Verfahren umfasst einen zweiten Verfahrensschritt zum Festlegen 120 einer ersten Trajektorie für den Roboter. Die erste Trajektorie kann beispielsweise in einer Speichereinheit oder einem Speichermodul gespeichert werden. Beispielsweise kann die erste Trajektorie für den Roboter mit einem Eingabegerät aufgenommen werden oder die erste Trajektorie kann durch eine Software(komponente) vorgegeben werden.

[0061] Das Verfahren umfasst vorzugsweise in einer Variante einen optionalen Verfahrensschritt zum Aktualisieren des Viskositätsvolumenmodells anhand von zweiten Charakteristiken einer zweiten Arbeitsumgebung und des Roboters, wobei anhand eines Abspielens der ersten Trajektorie in der zweiten Arbeitsumgebung die zweiten Charakteristiken ermittelt werden und anhand der zweiten Charakteristiken die ersten Bereiche aktualisiert und/oder erweitert werden. Das Abspielen der Trajektorie in der simulierten zweiten Arbeitsumgebung kann man sich als Umrühren einer Flüssigkeit vorstellen.

[0062] Das Verfahren umfasst einen dritten Verfahrensschritt zum Anregen 130 einer simulierten Flüssigkeit in dem Viskositätsvolumenmodell zur Bewegung entlang der ersten Trajektorie, wobei die angeregte Flüssigkeit eine Strömung aufweist, wobei die Strömung vorzugsweise eine laminare Strömung ist.

[0063] Das Verfahren umfasst einen vierten Verfahrensschritt zum Erfassen 140 eines Flüssigkeitselementes/eingebrachten Partikels in der angeregten Flüssigkeit an einem Anfang der ersten Trajektorie.

[0064] Das Verfahren umfasst einen fünften Verfahrensschritt zum Erfassen 150 eines zurückgelegten Pfades des Elements/Partikels in der angeregten simulierten Flüssigkeit in dem Viskositätsvolumenmodell, wobei eine Strömungsrichtung der simulierten Flüssigkeit durch die ersten Bereiche bestimmt wird.

[0065] Das Verfahren umfasst einen sechsten Verfahrensschritt zum Speichern 160 des zurückgelegten Pfades als zweite Trajektorie.

[0066] Das Verfahren umfasst einen siebten Verfahrensschritt zum Steuern 170 der Roboterbewegung anhand der zweiten Trajektorie.

[0067] Mit anderen Worten wird mittels des erfindungsgemäßen Verfahrens insbesondere zunächst die erste Arbeitsumgebung des Roboters als flüssigkeitsgefüllter Raum in Form des Viskositätsvolumenmodells modelliert und simuliert. Hierzu bestimmt man beispielsweise zunächst den Arbeitsraum des Roboters.

[0068] Hierzu kann man den Roboter beispielsweise in die erste Arbeitsumgebung stellen. Danach können die ersten Charakteristiken beispielsweise anhand mindestens eines der nachfolgenden drei Schritte (oder einer Kombination der drei Schritte) bestimmt werden und um anhand der ersten Charakteristiken das Viskositätsvolumenmodell zu berechnen, wobei beispielsweise die Fig. 2a-2d die entsprechenden Schritte zeigen.

[0069] Zunächst werden beispielsweise erste Hindernisse 211 (Fig. 2a), die sich in dem Arbeitsraum 270 bereits befinden, erfasst. Für die Positionen bzw. Bereiche der ersten Hindernisse 211 im Arbeitsraum werden beispielsweise entsprechende Positionen bzw. die entsprechenden Bereiche ebenfalls als die ersten Bereiche mit unterschiedlichen Viskositäten 260 modelliert. Für den äußeren ersten Bereich 265, der das erste Hindernis 211 umschließt, wird beispielsweise zunächst eine fünfte, relativ geringe, Viskosität 265 festgelegt. Danach wird der Bereich des ersten Hindernisses mit einer höheren sechsten Viskosität 267 umschlossen. Der Bereich des ersten Hindernisses 211 und/oder ein zusätzlicher frei gewählter Sicherheitsabstand werden dann beispielsweise auf unendlich hohe Viskosität (eine siebte Viskosität 266) gesetzt. Die unterschiedlichen Bereiche werden dann vorzugsweise als die ersten Bereiche mit den unterschiedlichen Viskositäten im Viskositätsvolumenmodell modelliert. Der Sicherheitsabstand kann beispielsweise als fließender Übergang zwischen der unendlichen Viskosität des Hindernisses und der umgebenden Viskosität modelliert werden.

[0070] Danach werden insbesondere mögliche Kollisionen 240 außerhalb des Arbeitsraums mit zweiten Hindernissen 210 ermittelt (Fig. 2a und Fig. 2b: z.B. Kollisionen der hinteren Robotergelenke), die beispielsweise bei einer geplanten Bewegung 220 des Roboters 230 mit dem Endeffektor 232 auftreten können. Diese werden ebenfalls als erste Bereiche mit unterschiedlichen Viskositäten 260 modelliert.

[0071] Dies wird beispielsweise in Fig. 2c gezeigt. Der Roboter bewegt sich beispielsweise nach links oben, was insbesondere durch einen ersten Richtungspfeil 251 und einem zweiten Richtungspfeil 252 angedeutet ist. Je näher sich der Roboter dem zweiten Hindernis 210 nähert umso höher wird die Viskosität, bis diese unendlich oder annähernd unendlich hoch ist und keine weitere Bewegung in Richtung des zweiten Hindernisses zulässt. Wie in Fig. 2c dargestellt ist, wirkt zunächst eine erste Viskosität 261, wenn der Roboter noch relativ weit von dem zweiten Hindernis 210 entfernt ist. Nähert sich der Roboter 230 dem zweiten Hindernis 210, umfasst ein näher an dem zweiten Hindernis 210 gelegener erster Bereich eine zweite höhere Viskosität 262. Nähert sich der Roboter 230 weiter dem zweiten Hindernis 210 an, so umfassen weitere erste Bereiche jeweils eine dritte (höhere) Viskosität 263 und eine vierte (noch höhere) Viskosität 264.

[0072] Es ist beispielsweise auch möglich, dass die ersten Bereiche für das erste Hindernis 211 und das zweite Hindernis 210 jeweils ohne eine ansteigende Viskosität modelliert werden. Dies kann insbesondere dadurch erreicht werden, dass die ersten Bereiche für das erste Hindernis 211 und das zweite Hindernis 210 jeweils auf eine unendlich hohe Viskosität gesetzt werden.

[0073] In einem nächsten Schritt modelliert man beispielsweise noch die Singularitäten beispielsweise mittels anisotropen Viskositäten. Hierdurch wird insbesondere erreicht, dass Bewegungen des Endeffektors 232 in Pfeilrichtung 280 noch möglich sind. Bewegungen senkrecht zur Pfeilrichtung 280 oder aus der Bildebene, erfordern eine sehr schnelle Bewegung der Gelenke des Roboters 230. Diese schnellen Bewegungen, insbesondere mit einer hohen Gelenk-Geschwindigkeit, können beispielsweise die mechanische Belastbarkeit von Komponenten des Roboters übersteigen. Die Begrenzung der Geschwindigkeit kann beispielsweise durch anisotrope Viskositäten in den ersten Bereichen modelliert werden. Mit anderen Worten bedeutet dies, dass vorzugsweise am selben Ort geringe Viskosität in Pfeilrichtung 280 herrscht, ansonsten eine sehr hohe Viskosität im Viskositätsvolumenmodell eingestellt ist.

[0074] Die einzelnen Schritte können beispielsweise jeweils als ein eigenes Viskositätsvolumenmodell berechnet werden und am Ende in einem Viskositätsvolumenmodell zusammengeführt werden. Alternativ ist es beispielsweise möglich, dass all diese Schritte an einem Viskositätsvolumenmodell berechnet werden, das für jeden Schritt das Viskositätsvolumenmodell aktualisiert.

[0075] Nachdem das Viskositätsvolumenmodell berechnet wurde, kann dieses beispielsweise anhand der zweiten Charakteristiken der zweiten Arbeitsumgebung aktualisiert werden. Hier kann beispielsweise die erste Trajektorie, die irgendwo aufgenommen wurde, beispielsweise an einem verkleinerten Modell oder in der ersten Arbeitsumgebung, auf die zweite Arbeitsumgebung, beispielsweise eine Fabrikhalle, übertragen. Es werden beispielsweise mittels eines Messsystems zusätzliche Hindernisse oder mögliche weiteren Singularitäten erfasst und im Viskositätsvolumenmodell modelliert. Hierzu können beispielsweise die ersten räumlichen Bereiche aktualisiert oder um weitere erste räumliche Bereiche ergänzt werden, für die insbesondere jeweils im Viskositätsvolumenmodell eine Viskosität eingestellt wird.

[0076] Um nun die zweite Trajektorie zu berechnen, wird beispielswiese die erste Trajektorie in das berechnete Viskositätsvolumenmodell gesetzt und es wird insbesondere eine Fluidsimulation (simulierte Flüssigkeit) gestartet. Die erste Trajektorie wird nun dazu genutzt, um die simulierte Flüssigkeit im Viskositätsvolumenmodell anzuregen ("umzurühren"). Bei diesem Prozess wird die Viskosität nicht beachtet, die Viskositäten sind hingegen insbesondere für die Bewegung der Flüssigkeit (Strömung), die sich nun einstellt (d.h. durch die Simulation berechnet wird), relevant.

[0077] Kurz nach dem Start der Anregung (Umrühren) wird ein Flüssigkeitselement erfasst/bzw. ein Partikel in die Strömung eingebracht. Das Flüssigkeitselement kann beispielsweise markiert werden oder es wird ein Flüssigkeitselement in Form eines Partikels verwendet, wobei der Partikel beispielsweise in die simulierte Flüssigkeit eingefügt wird. Die Erfassung des Flüssigkeitselements (bzw. dessen zurückgelegter Pfad) beginnt dort, wo die übertragene bzw. erste Trajektorie beginnt. Das Flüssigkeitselement bewegt sich nun aufgrund der Viskosität und der damit berechneten Fluidbewegung um Hindernisse herum (also im die ersten Bereiche mit einer hohen Viskosität) und vermeidet Singularitäten bzw. bewegt sich mit der gewünschten Geschwindigkeit. Die neue, kollisionsfreie Trajektorie (zweite Trajektorie), die das Flüssigkeitselement beschreibt wird nun auf den Roboter in der zweiten Arbeitsumgebung zu dessen Bewegungssteuerung übertragen.

[0078] Mit anderen Worten, können insbesondere mittels des Viskositätsvolumenmodells zunächst Hindernisse der ersten Arbeitsumgebung mittels der Viskositäten in den ersten räumlichen Bereichen des Viskositätsvolumenmodells modelliert werden, wobei die Viskosität(en) des Viskositätsvolumenmodells vorzugsweise räumlich variabel sind. Die Viskositäten des Viskositätsvolumenmodells können vorzugsweise bei einem Abfahren einer Trajektorie (erste Trajektorie oder zweite Trajektorie) direkt einem Benutzer zurückgegeben werden. Dies kann beispielsweise mittels eines Eingabegeräts erfolgen, das beispielsweise über eine haptische Kraftrückkopplung verfügt.

[0079] Mit diesen Eingabegeräten kann beispielsweise der Benutzer Kräfte spüren und es können unterschiedliche Viskositäten dargestellt werden. Zudem stellen diese Eingabegeräte vorzugsweise eine gute Möglichkeit dar, um Trajektorien auf einfache Art und Weise eingeben zu können. Ein entsprechendes Eingabegerät wird daher beispielsweise für das Festlegen der ersten Trajektorie und/oder das Abspielen der ersten Trajektorie verwendet.

[0080] Zusätzlich kann beispielsweise ein Messsystem verwendet werden um die zweiten Charakteristiken zu erfassen. Die zweiten Charakteristiken können beispielsweise für die zweite Arbeitsumgebung, insbesondere für Hindernisse in der zweiten Arbeitsumgebung, ermittelt werden. Bei dem Messsystem kann es sich beispielsweise um ein 3D-Kamerasystem oder einen Laserscanner handeln. Zusätzlich kann das Messsystem beispielsweise über Steuermodule verfügen um den Roboter anzusteuern, dass dieser eine Trajektorie abfährt. Vorzugsweise ist das Messsystem in der Lage vom Roboter Zustände, beispielsweise Konfigurationen und/oder Positionen, zu erfassen. Dies kann beispielsweise durch ein Auslesen von Konfigurationen und Laufzeitdaten des Roboters über eine Datenschnittstelle des Roboters erfolgen. Verknüpft werden diese Daten schließlich durch eine zentrale Recheneinheit, beispielsweise einem Prozessor, in dem Viskositätsvolumenmodell, das beispielsweise in einem Datenspeicher/Speichereinheit abgelegt ist, vorzugsweise in Form der ersten Bereiche und den unterschiedlichen Viskositäten.

[0081] Vorzugsweise kann das erfindungsgemäße Verfahren dazu verwendet werden, Trajektorien zu generieren, die sowohl kollisionsfrei sind als auch Singularitäten umgehen. Dazu kann beispielsweise in einer weiteren Variante in einem Vorverarbeitungsschritt zunächst eine Speichereinheit zur Aufnahme des Viskositätsvolumenmodells vorbereitet werden. Dazu werden vorzugsweise zu allen Positionen oder Punkten in der Arbeitsumgebung des Roboters im Viskositätsvolumenmodell (abhängig von der gewählten räumlichen Auflösung), die Konfigurationen des Roboters untersucht. Durch die untersuchten Konfigurationen ergeben sich beispielsweise die in diesem Punkt/dieser Position maximal zulässige Geschwindigkeiten für den Roboter, beispielsweise Drehgeschwindigkeiten der Gelenke des Roboters. Gibt es beispielsweise für einen Punkt/eine Position mehrere zulässige Konfigurationen (z. B. Lefty/Righty oder Ellbw Up/Down), so können diese beispielsweise in dem Viskositätsvolumenmodell vereinigt werden (z. B. maximal mögliche Geschwindigkeit über alle Konfigurationen) oder es wird für jede Konfiguration ein eigenes Viskositätsvolumenmodell angelegt, um insbesondere später mehrere Handlungsalternativen zu haben. Die maximal zulässige Geschwindigkeit wird nun beispielsweise über eine Formel in eine Viskosität an diesem Punkt/Position umgerechnet.

[0082] Im Falle einer Kollision (entweder des Endeffektors des Roboters oder der Gelenke des Roboters) wird die Viskosität auf unendlich oder annähernd unendlich gesetzt. Bei einer Implementierung als Softwarekomponente kann dies beispielsweise durch das Setzen eines Datentypen, beispielsweise eines Double-Wertes, auf den höchsten zulässigen Wert erreicht werden. Auf die gleiche Weise können beispielsweise Singularität modelliert werden.

[0083] In einer Variante kann beispielsweise eine anisotrope Viskosität verwendet werden. Mit dieser lassen sich insbesondere auch richtungsabhängige Geschwindigkeitsbeschränkungen modellieren. So kann beispielsweise ein Industrieroboter mit fast ausgestrecktem Arm nur noch sehr langsam in Streckrichtung fahren, da für diese Richtung in einem Bereich eine hohe Viskosität im Viskositätsvolumenmodell festgelegt wurde. Senkrechte Bewegungen können beispielsweise noch mit hoher Geschwindigkeit ausgeführt werden, da für diese Richtung in dem entsprechenden ersten Bereich eine geringe Viskosität festgelegt wurde. Entsprechende mathematische Simulationsmodelle für anisotrope Viskosität werden beispielsweise in der Geologie eingesetzt.

[0084] Die vorherrschende Viskosität zwischen den betrachteten Punkten/Positionen kann beispielsweise interpoliert werden. Dies gilt insbesondere nicht im allgemeinen Fall von Singularitäten. Singularitäten werden vorzugsweise vorab aus der Mechanik des Roboters bestimmt und die entsprechenden Punkte/Positionen explizit berechnet und insbesondere in den ersten Charakteristiken berücksichtigt, beispielsweise in ersten Charakteristiken gespeichert.

[0085] Sobald das Viskositätsvolumenmodell berechnet ist, kann beispielsweise die erste Trajektorie für den Roboter mit einem Eingabegerät aufgenommen werden oder die erste Trajektorie kann durch eine Software vorgegeben werden. Die Parameter der ersten Trajektorie, beispielsweise Positionen und Geschwindigkeiten, werden gespeichert (beispielsweise in der Speichereinheit) .

[0086] Die zweiten Charakteristiken werden beispielsweise durch ein Abspielen der Trajektorie in einer neuen Umgebung oder der tatsächlichen/zweiten Arbeitsumgebung des Roboters ermittelt. Dazu werden beispielsweise zunächst neue, mit dem Messsystem erkannte Hindernisse, in den zweiten Charakteristiken berücksichtigt. Mittels der zweiten Charakteristiken wird insbesondere das Viskositätsvolumenmodell aktualisiert.

[0087] In einer weiteren Variante können auch die Kollisionspunkte und Singularitäten aktualisiert werden (also erste Charakteristiken und/oder die zweiten Charakteristiken), falls sich in einem dynamischen Szenario der Roboter selbst bewegt hat, beispielsweise auf einer fahrbaren Plattform. Das Viskositätsvolumenmodell wird dann insbesondere anhand der ersten Charakteristiken und/oder der zweiten Charakteristiken aktualisiert.

[0088] Nach dem Aktualisieren wird nun durch die erste Trajektorie eine simulierte Flüssigkeit in dem Viskositätsvolumenmodell angeregt, wobei die Flüssigkeit nach dem Anregen eine Strömung aufweist - also in eine Richtung fließt. In geeignetem zeitlichem Abstand wird nun beispielsweise ein Element am Anfang der ersten Trajektorie in der Flüssigkeit erfasst. Hierzu kann beispielsweise ein Partikel in die angeregte simulierte Flüssigkeit eingefügt werden. Die Position des Elements wird verfolgt und als Bewegung des Endeffektors interpretiert. Während die Anregung der Flüssigkeit mittels der ersten Trajektorie theoretisch durch Hindernisse hindurch erfolgen kann (die Viskosität wird dabei nicht beachtet), folgt das Element vorzugsweise stets auf einer Bahn, die keine Kollisionen mit verbotenen Zonen (unendlich hohe Viskosität oder annähernd unendlich hohe Viskosität) aufweist und auch in der durch die Viskosität vorgegebenen Geschwindigkeit erfolgt. Die dazu erforderlichen Berechnungen werden beispielsweise durch die zugrunde liegende Fluidmechanik geleistet.

[0089] In einer weiteren bevorzugten Variante ist die Viskosität abhängig von einer Distanz zu einem Hindernis oder eine Singularität.

[0090] In einer weiteren bevorzugten Variante erhöht sich die jeweilige Viskosität, die durch ein Hindernis und/oder Singularität definiert wird, abhängig von einer Distanz zu dem Hindernis und/oder Singularität. Mit anderen Worten umfasst der jeweilige erste Bereich eine hohe Viskosität für eine Position nahe dem Hindernis und/oder Singularität und eine niedrigere Viskosität für eine Position, die weiter entfernt ist von dem Hindernis und/oder Singularität. Insbesondere kann die Viskosität schrittweise erhöht werden, je näher sich eine Position/Punkt an dem Hindernis und/oder Singularität befindet.

[0091] In einer weiteren bevorzugten Variante ist ein Prozessor speziell dazu eingerichtet, die Programmbefehle derart auszuführen, damit der Prozessor Funktionen ausführt, um das erfindungsgemäße Verfahren oder mindestens einen der Schritte des erfindungsgemäßen Verfahrens zu implementieren.

[0092] Die Fig. 3 zeigt eine erfindungsgemäße Vorrichtung zum Steuern einer Roboterbewegung eines Roboters anhand einer zweiten Trajektorie.

[0093] Im Einzelnen zeigt die Fig. 3 eine Vorrichtung zur rechnergestützten Trajektorienberechnung für Roboter. Die Vorrichtung umfasst ein erstes Berechnungsmodul 310, ein erstes Festlegemodul 320, ein optionales erstes Aktualisierungsmodul (nicht dargestellt), ein erstes Anregemodul 330, ein erstes Erfassungsmodul 340, ein zweites Erfassungsmodul 350, ein erstes Speichermodul 360, ein erstes Steuermodul 370 und eine optionale Kommunikationsschnittstelle 304, die über einen Bus 303 kommunikativ miteinander in Verbindung stehen.

[0094] Das erste Berechnungsmodul 310 ist dazu ausgelegt eines Viskositätsvolumenmodells zur Modellierung einer ersten Arbeitsumgebung des Roboters zu berechnen, wobei das Viskositätsvolumenmodell erste räumliche Bereiche mit ersten unterschiedlichen Viskositäten umfasst und die ersten Bereiche anhand von ersten Charakteristiken des Roboters und der ersten Arbeitsumgebung bestimmt werden.

[0095] Das erste Berechnungsmodul 310 kann beispielsweise mittels eines Prozessors und einer ersten Programmkomponente implementiert werden, die mittels Programmbefehlen das Viskositätsvolumenmodell berechnen.

[0096] Das erste Festlegemodul 320 ist zum Festlegen einer ersten Trajektorie für die erste Arbeitsumgebung des Roboters ausgelegt. Das Festlegemodul 320 kann beispielsweise ein Eingabegerät sein, so wie dies beispielsweise in der Fig. 1 beschrieben wurde.

[0097] Das erste Aktualisierungsmodul ist zum Aktualisieren des Viskositätsvolumenmodells anhand von zweiten Charakteristiken einer zweiten Arbeitsumgebung und des Roboters ausgelegt, wobei anhand eines Abspielens der ersten Trajektorie in der zweiten Arbeitsumgebung die zweiten Charakteristiken ermittelt werden. Anhand der zweiten Charakteristiken werden beim Aktualisieren die ersten Bereiche aktualisiert und/oder erweitert.

[0098] Das erste Aktualisierungsmodul kann beispielsweise mittels des Prozessors, einer zweiten Programmkomponente und dem in Fig. 1 erläuterten Messsystem implementiert werden, wobei mittels Programmbefehle und den ersten Charakteristiken und/oder zweiten Charakteristiken das Viskositätsvolumenmodell aktualisieren wird.

[0099] Das erste Anregemodul 330 ist zum Anregen einer simulierten Flüssigkeit in dem Viskositätsvolumenmodell zur Bewegung entlang der ersten Trajektorie ausgelegt, wobei die angeregte Flüssigkeit eine Strömung aufweist.

[0100] Das erste Anregemodul 330 kann beispielsweise mittels des Prozessors und einer dritten Programmkomponente implementiert werden, die mittels Programmbefehle das Anregen der simulierten Flüssigkeit berechnen.

[0101] Das erste Erfassungsmodul 340 ist zum Erfassen eines Flüssigkeitselementes in der angeregten Flüssigkeit an einem Anfang der ersten Trajektorie ausgelegt.

[0102] Das erste Erfassungsmodul 340 kann beispielsweise mittels des Prozessors und einer vierten Programmkomponente implementiert werden, die mittels Programmbefehle das Flüssigkeitselement derart markieren, dass dieses beachtet werden kann.

[0103] Das zweite Erfassungsmodul 350 ist zum Erfassen eines zurückgelegten Pfades des Elements in der angeregten simulierten Flüssigkeit in dem Viskositätsvolumenmodell ausgelegt, wobei eine Strömungsrichtung der simulierten Flüssigkeit durch die ersten Bereiche bestimmt wird.

[0104] Das zweite Erfassungsmodul 350 kann beispielsweise mittels des Prozessors und einer fünften Programmkomponente implementiert werden, die mittels Programmbefehle die Bewegung des Flüssigkeitselements in der simulierten Flüssigkeit verfolgen.

[0105] Das erste Speichermodul 360 ist zum Speichern des zurückgelegten Pfades als zweite Trajektorie ausgelegt. Das erste Speichermodul 360 kann beispielsweise als eine Festplatte, ein USB-Speicher oder eine SSD-Festplate sein.

[0106] Das erste Steuermodul 370 ist zum Steuern der Roboterbewegung anhand der zweiten Trajektorie ausgelegt.

[0107] Das erste Steuermodul 370 kann beispielsweise mittels des Prozessors und einer sechsten Programmkomponente implementiert werden, die mittels Programmbefehle die Roboterbewegung steuert.

[0108] Die Vorrichtung kann beispielsweise zusätzlich noch (mindestens eine) weitere Komponente/(n) umfassen, wie beispielsweise einen Prozessor, eine Speichereinheit, ein Eingabegerät, insbesondere eine Computertastatur oder eine Computermaus, und einen Monitor.

[0109] Obwohl die Erfindung im Detail durch die Ausführungsbeispiele näher illustriert und beschrieben wurde, ist die Erfindung nicht durch die offenbarten Beispiele eingeschränkt, und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen.


Ansprüche

1. Verfahren zum Steuern einer Roboterbewegung eines Roboters (230) anhand einer zweiten Trajektorie mit folgenden Verfahrensschritten:

a) Berechnen (110) eines Viskositätsvolumenmodells zur Modellierung einer ersten Arbeitsumgebung (270) des Roboters, wobei

- das Viskositätsvolumenmodell erste räumliche Bereiche (260) mit ersten unterschiedlichen Viskositäten umfasst;

- die ersten Bereiche (260) anhand von ersten Charakteristiken des Roboters (230) und der ersten Arbeitsumgebung (270) bestimmt werden;

b) Festlegen (120) einer ersten Trajektorie für den Roboter(230);

c) Anregen (130) einer simulierten Flüssigkeit in dem Viskositätsvolumenmodell zur Bewegung entlang der ersten Trajektorie, wobei die angeregte Flüssigkeit eine Strömung aufweist;

d) Erfassen (140) eines Flüssigkeitselementes in der angeregten Flüssigkeit an einem Anfang der ersten Trajektorie;

e) Erfassen (150) eines zurückgelegten Pfades des Elements in der angeregten simulierten Flüssigkeit in dem Viskositätsvolumenmodell, wobei eine Strömungsrichtung der simulierten Flüssigkeit durch die ersten Bereiche bestimmt wird;

f) Speichern (160) des zurückgelegten Pfades als die zweite Trajektorie;

g) Steuern (170) der Roboterbewegung anhand der zweiten Trajektorie.


 
2. Verfahren nach Anspruch 1, wobei das Verfahren einen zusätzlichen Verfahrensschritt zwischen den Verfahrensschritten b) und c) umfasst:

b2) Aktualisieren (180) des Viskositätsvolumenmodells anhand von zweiten Charakteristiken einer zweiten Arbeitsumgebung und des Roboters (230), wobei

- anhand eines Abspielens der ersten Trajektorie in der zweiten Arbeitsumgebung die zweiten Charakteristiken ermittelt werden,

- anhand der zweiten Charakteristiken die ersten Bereiche (260) aktualisiert und/oder erweitert werden.


 
3. Verfahren nach Anspruch 2, wobei die zweiten Charakteristiken anhand des Abspielens der ersten Trajektorie in der zweiten Arbeitsumgebung und einem Messsystem erfasst werden.
 
4. Verfahren nach einem der vorhergehenden Ansprüche, wobei ein Eingabegerät für das Festlegen oder Abspielen der ersten Trajektorie über eine Kraftrückkopplung verfügt, wobei mittels der Kraftrückkopplung die zweiten Charakteristiken erfasst werden.
 
5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die ersten Charakteristiken des Roboters (230) und/oder die zweiten Charakteristiken des Roboters (230) zulässige Geschwindigkeiten der Motoren und/oder zulässige Drehbereiche der Gelenke des Roboters umfassen.
 
6. Verfahren nach einem der vorhergehenden Ansprüche, wobei die ersten Charakteristiken und/oder die zweiten Charakteristiken der ersten Arbeitsumgebung (270) und/oder der zweiten Arbeitsumgebung Eigenschaften von Hindernissen umfassen, wobei die Eigenschaften von Hindernissen insbesondere eine Größe und/oder eine Länge und/oder eine Position in der ersten Arbeitsumgebung (270) und/oder der zweiten Arbeitsumgebung umfassen.
 
7. Verfahren nach einem der vorhergehenden Ansprüche, wobei die ersten räumlichen Bereiche (260) mit den ersten unterschiedlichen Viskositäten anhand einer zulässigen Geschwindigkeit des Roboters festgelegt werden, wobei die die zulässige Geschwindigkeit insbesondere von Konfigurationen des Roboters bestimmt wird.
 
8. Verfahren nach Anspruch 7, wobei bei mehreren Konfigurationen für jeweils einen der ersten räumlichen Bereiche (260) jeweils ein Viskosevolumenmodell berechnet wird oder die mehreren Konfigurationen für den jeweiligen ersten räumlichen Bereich in dem Viskosevolumenmodell zusammengefasst werden.
 
9. Verfahren nach einem der vorhergehenden Ansprüche, wobei die ersten unterschiedlichen Viskositäten des Viskositätsvolumenmodells richtungsabhängig sind, wobei das Viskositätsvolumenmodell insbesondere ein anisotropes Viskositätsvolumenmodell ist.
 
10. Verfahren nach einem der vorhergehenden Ansprüche, insbesondere nach einem der Ansprüche 2 - 9, wobei bei einer Veränderung der zweiten Charakteristiken während dem Abspielen der ersten Trajektorie und/oder einer Position des Roboters (230) in der zweiten Arbeitsumgebung während dem Abspielen der ersten Trajektorie nachfolgende Verfahrensschritte wiederholt werden:

- Aktualisieren des Viskositätsvolumenmodells;

- Anregen der simulierten Flüssigkeit;

- Erfassen des Flüssigkeitselementes;

- Erfassen von weiteren zurückgelegten Pfaden jeweils für eine Wiederholung,
wobei der zurückgelegte Pfad und der weiteren zurückgelegten Pfade für die jeweilige Wiederholung als zweite Trajektorie zusammengefasst werden und gespeichert werden.


 
11. Verfahren nach Anspruch 10, wobei das Wiederholen in kurzer zeitlicher Abfolge wiederholt wird.
 
12. Vorrichtung zum Steuern einer Roboterbewegung eines Roboters (230) anhand einer zweiten Trajektorie, aufweisend,

- ein erstes Berechnungsmodul (310) zum Berechnen eines Viskositätsvolumenmodells zur Modellierung einer ersten Arbeitsumgebung (270) des Roboters (230), wobei

- das Viskositätsvolumenmodell erste räumliche Bereiche (260) mit ersten unterschiedlichen Viskositäten umfasst;

- die ersten Bereiche (260) anhand von ersten Charakteristiken des Roboters (230) und der ersten Arbeitsumgebung (270) bestimmt werden;

- ein erstes Festlegemodul (320) zum Festlegen einer ersten Trajektorie für den Roboter (230);

- ein erstes Anregungsmodul (330) zum Anregen einer simulierten Flüssigkeit in dem Viskositätsvolumenmodell zur Bewegung entlang der ersten Trajektorie, wobei die angeregte Flüssigkeit eine Strömung aufweist;

- ein erstes Erfassungsmodul (340) zum Erfassen eines Flüssigkeitselementes in der angeregten Flüssigkeit an einen Anfang der ersten Trajektorie;

- ein zweites Erfassungsmodul (350) zum Erfassen eines zurückgelegten Pfades des Elements in der angeregten simulierten Flüssigkeit in dem Viskositätsvolumenmodell, wobei eine Strömungsrichtung der simulierte Flüssigkeit durch die ersten Bereiche (260) bestimmt wird;

- ein erstes Speichermodul (360) zum Speichern des zurückgelegten Pfades als zweite Trajektorie;

- ein erstes Steuermodul (370) zum Steuern der Roboterbewegung anhand der zweiten Trajektorie.


 
13. Vorrichtung nach Anspruch 12, wobei die Vorrichtung mindestens ein weiteres Modul umfasst zur Durchführung des Verfahrens nach einem der Ansprüche 1 - 11.
 
14. Computerprogrammprodukt mit Programmbefehlen zur Durchführung des Verfahrens nach einem der Ansprüche 1 - 11.
 
15. Computerprogrammprodukt mit Programmbefehlen für ein Erstellungsgerät, das mittels der Programmbefehle konfiguriert wird, die Vorrichtung nach Anspruch 12 oder 13 zu erstellen.
 
16. Bereitstellungsvorrichtung für das Computerprogrammprodukt nach Anspruch 14 oder 15, wobei die Bereitstellungsvorrichtung das Computerprogrammprodukt speichert und/oder bereitstellt.
 




Zeichnung
















Recherchenbericht









Recherchenbericht