Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
EXECUTION OF A ROBOT APPLICATION AND CREATION OF A PROGRAM THEREFOR
Document Type and Number:
WIPO Patent Application WO/2023/194007
Kind Code:
A1
Abstract:
The invention relates to a method for creating a program for carrying out a robot application which comprises a plurality of actions of a first robot (1), said method comprising the steps of: detecting (S10) programming inputs for programming these actions of the first robot; and creating (S20) the program on the basis of these detected programming inputs; wherein, to create the program for different robots, in particular by a context, input names are uniformly specified and the programming inputs are interpreted on the basis of the input name used by the particular programming input and the content determined for these used input names by the particular programming input, in particular by means of JSON-LD; and/or at least one of the programming inputs comprises at least one specification of a coordinate space, a specification of a control method of the first robot, a specification of a path of the first robot, a specification of a pose of the first robot, a specification of a tool action of the first robot, and/or a specification of a sensor type and/or action of the first robot.

Inventors:
SHARMA SHASHANK (DE)
Application Number:
PCT/EP2023/055387
Publication Date:
October 12, 2023
Filing Date:
March 03, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
KUKA DEUTSCHLAND GMBH (DE)
International Classes:
B25J9/16
Foreign References:
JP2003108220A2003-04-11
JP6958884B12021-11-02
Other References:
GÜNTER SCHREIBER ET AL: "The Fast Research Interface for the KUKA Lightweight Robot", ICRA 2010 WORKSHOP ON INNOVATIVE ROBOT CONTROL ARCHITECTURES FOR DEMANDING (RESEARCH) APPLICATIONS, 3 May 2010 (2010-05-03), pages 15 - 21, XP055614534
Attorney, Agent or Firm:
OELKE, Jochen (DE)
Download PDF:
Claims:
Patentansprüche Verfahren zum Erstellen eines Programms zur Durchführung einer Roboterapplikation, die mehrere Aktionen, insbesondere Bewegungen, eines ersten Roboters (1) umfasst, mit den Schritten:

Erfassen (S10) von Programmiereingaben zum Programmieren dieser Aktionen des ersten Roboters; und

Erstellen (S20) des Programms auf Basis dieser erfassten Programmiereingaben; wobei zum Erstellen des Programms für unterschiedliche Roboter, insbesondere durch einen Kontext, Eingabenamen einheitlich vorgegeben sind und die Programmiereingaben auf Basis von dem durch die jeweilige Programmiereingabe verwendeten dieser Eingabenamen und dem für diesen verwendeten Eingabenamen durch die jeweilige Programmiereingabe bestimmten Inhalt interpretiert werden, insbesondere mittels JSON-LD; und/oder wenigstens eine der Programmiereingaben wenigstens eine Angabe eines Koordinatenraums, insbesondere wenigstens eine Auswahl zwischen einem von mehreren vorgegebenen Koordinatenräumen, eine Angabe eines Regelverfahrens des ersten Roboters, insbesondere eine Auswahl zwischen einem von mehreren vorgegebenen Regelverfahren, eine Angabe einer Bahn des ersten Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Bahnarten, eine Angabe einer Pose des ersten Roboters, insbesondere unter Auswahl zwischen einem von mehreren vorgegebenen Koordinatenräumen für die Pose, eine Angabe einer Werkzeugaktion des ersten Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Werkzeugaktionen, und/oder eine Angabe einer Sensorart und/oder -aktion des ersten Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Sensorarten und/oder -aktionen, umfasst. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, dass die Roboterapplikation mehrere Aktionen, insbesondere Bewegungen, wenigstens eines weiteren, von dem ersten Roboter verschiedenen, Roboters (2) umfasst und das Verfahren die Schritte umfasst: Erfassen von Programmiereingaben zum Programmieren dieser Aktionen des weiteren Roboters; und

Erstellen des Programms auf Basis dieser erfassten Programmiereingaben; wobei diese Programmiereingaben auf Basis von dem durch die jeweilige Programmiereingabe verwendeten der, insbesondere durch den Kontext, einheitlich vorgegebenen Eingabenamen und dem für diesen verwendeten Eingabenamen durch die jeweilige weitere Programmiereingabe bestimmten Inhalt interpretiert werden, insbesondere mittels JSON-LD; und/oder wenigstens eine der Programmiereingaben wenigstens eine Angabe eines Koordinatenraums, insbesondere wenigstens eine Auswahl zwischen einem von mehreren vorgegebenen Koordinatenräumen, eine Angabe eines Regelverfahrens des weiteren Roboters, insbesondere eine Auswahl zwischen einem von mehreren vorgegebenen Regelverfahren, eine Angabe einer Bahn des weiteren Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Bahnarten, eine Angabe einer Pose des weiteren Roboters, insbesondere unter Auswahl zwischen einem von mehreren vorgegebenen Koordinatenräumen für die Pose, eine Angabe einer Werkzeugaktion des weiteren Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Werkzeugaktionen, und/oder eine Angabe einer Sensorart und/oder -aktion des weiteren Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Sensorarten und/oder -aktionen, umfasst. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Eingabenamen durch Angabe eines Kontexts, insbesondere durch Angabe eines Typs innerhalb eines angegebenen Kontextes und/oder mittels JSON-LD, einheitlich vorgegeben sind, insbesondere werden. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass beim Erstellen des Programms wenigstens eine der programmierten Aktionen mithilfe einer Zustandsmaschine implementiert wird. Verfahren zur Durchführung einer Roboterapplikation, die mehrere Aktionen, insbesondere Bewegungen, eines ersten Roboters umfasst, mit den Schritten:

Erstellen eines Programms nach einem der vorhergehenden Ansprüche; und Ausführen dieses erstellten Programms mithilfe des ersten Roboters, insbesondere auch mithilfe des weiteren Roboters. System zum Erstellen eines Programms zur Durchführung einer Roboterapplikation, die mehrere Aktionen, insbesondere Bewegungen, eines ersten Roboters umfasst, insbesondere System zur Durchführung der Roboterapplikation, wobei das System zur Durchführung eines Verfahrens nach einem der vorhergehenden Ansprüche eingerichtet ist und/oder aufweist:

- Mittel zum Erfassen von Programmiereingaben zum Programmieren dieser Aktionen des ersten Roboters; und

- Mittel zum Erstellen des Programms auf Basis dieser erfassten Programmiereingaben; wobei zum Erstellen des Programms für unterschiedliche Roboter, insbesondere durch einen Kontext, Eingabenamen einheitlich vorgegeben sind und das Mittel zum Erstellen des Programms Mittel zum Interpretieren der Programmiereingaben auf Basis von dem durch die jeweilige Programmiereingabe verwendeten Eingabenamen und dem für diesen verwendeten Eingabenamen durch die jeweilige Programmiereingabe bestimmten Inhalt, insbesondere mittels JSON-LD, aufweist; und/oder wenigstens eine der Programmiereingaben wenigstens eine Angabe eines Koordinatenraums, insbesondere wenigstens eine Auswahl zwischen einem von mehreren vorgegebenen Koordinatenräumen, eine Angabe eines Regelverfahrens des ersten Roboters, insbesondere eine Auswahl zwischen einem von mehreren vorgegebenen Regelverfahren, eine Angabe einer Bahn des ersten Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Bahnarten, eine Angabe einer Pose des ersten Roboters, insbesondere unter Auswahl zwischen einem von mehreren vorgegebenen Koordinatenräumen für die Pose, eine Angabe einer Werkzeugaktion des ersten Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Werkzeugaktionen, und/oder eine Angabe einer Sensorart und/oder -aktion des ersten Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Sensorarten und/oder -aktionen, umfassen. Computerprogramm oder Computerprogrammprodukt, wobei das Computerprogramm oder Computerprogrammprodukt, insbesondere auf einem computerlesbaren und/oder nicht-flüchtigen Speichermedium gespeicherte, Anweisungen enthält, die bei der Ausführung durch einen oder mehrere Computer oder ein System nach Anspruch 6 den oder die Computer oder das System dazu veranlassen, ein Verfahren nach einem der Ansprüche 1 bis 5 durchzuführen.

Description:
Beschreibung

Durchführung einer Roboterapplikation und Erstellen eines Programms hierfür

Die vorliegende Erfindung betrifft ein Verfahren und System zum Erstellen eines Programms zur Durchführung einer Roboterapplikation, die mehrere Aktionen, insbesondere Bewegungen, eines ersten Roboters umfasst, insbesondere ein Verfahren und System zur Durchführung der Roboterapplikation, sowie ein Computerprogramm bzw. Computerprogrammprodukt zur Durchführung eines hier beschriebenen Verfahrens.

In vielen Roboterapplikationen werden Roboter unterschiedlicher Hersteller eingesetzt, insbesondere Roboter unterschiedlicher Hersteller gemeinsam, alternativ Roboter unterschiedlicher Hersteller oder dergleichen. Dabei müssen diese Roboter jeweils individuell bzw. herstellerspezifisch programmiert werden.

Auf der anderen Seite ist beispielsweise für das Internet mit JSON-LD ein(e) kontextbasierte(s) Datenformat bzw. -Struktur bekannt, das bzw. die insbesondere als Schnittstelle zwischen Maschinen untereinander geeignet ist.

Aufgabe der vorliegenden Erfindung ist es, das Durchführen von Roboterapplikationen bzw. das Erstellen von Programmen hierfür zu verbessern.

Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 bzw. 5 gelöst. Ansprüche 6, 7 stellen ein System bzw. Computerprogramm bzw.

Computerprogrammprodukt zur Durchführung eines hier beschriebenen Verfahrens unter Schutz. Die Unteransprüche betreffen vorteilhafte Weiterbildungen.

Nach einer Ausführung der vorliegenden Erfindung umfasst eine Roboterapplikation mehrere Aktionen eines ersten Roboters.

In einer Ausführung umfassen eine oder mehrere dieser Aktionen jeweils eine oder mehrere Bewegungen des ersten Roboters, können insbesondere solche Bewegungen sein. Der erste Roboter und/oder der nachfolgend genannte weitere Roboter weisen in einer Ausführung (jeweils) einen Roboterarm mit wenigstens drei, insbesondere wenigstens sechs Gelenken, in einer Ausführung Drehgelenken, auf.

Nach einer Ausführung der vorliegenden Erfindung umfasst ein Verfahren zum Erstellen eines Programms zur Durchführung der Roboterapplikation die Schritte:

Erfassen von Programmiereingaben zum Programmieren der Aktionen des ersten Roboters; und

Erstellen des Programms auf Basis dieser erfassten Programmiereingaben.

Nach einer Ausführung der vorliegenden Erfindung sind, insbesondere werden, für unterschiedliche Roboter, insbesondere unterschiedliche Robotertypen und/oder Roboter unterschiedlicher Hersteller, Eingabenamen bzw. Schlüssel bzw. ein Lexikon bzw. Vokabular mit Eingabenamen bzw. Schlüsseln einheitlich vorgegeben, in einer Ausführung durch einen, in einer Ausführung vorgegebenen, Kontext, in einer Weiterbildung mittels JSON-LD oder einem/r ähnlichen Standard bzw. Datenformat bzw. -Struktur. Zum bzw. beim Erstellen des Programms werden die Programmiereingaben dann (jeweils) auf Basis von demjenigen) Eingabenamen von diesen, in einer Ausführung durch den Kontext, einheitlich vorgegebenen Eingabenamen bzw. dieses Lexikons, der durch die jeweilige Programmiereingabe verwendet wird bzw. ist, und dem für diesen verwendeten Eingabenamen durch die jeweilige Programmiereingabe bestimmten Inhalt, insbesondere ein- oder mehrdimensionalen Wert, interpretiert, insbesondere in maschinenlesbare Anweisungen des Programms bzw. für den ersten Roboter umgesetzt, in einer Ausführung mittels JSON-LD oder einem/r ähnlichen Standard bzw. Datenformat bzw. -Struktur.

Dadurch kann in einer Ausführung die Roboterapplikation vorteilhaft für bzw. mit unterschiedliche(n) Roboter(n) programmiert bzw. durchgeführt werden.

Zusätzlich oder alternativ umfassen nach einer Ausführung der vorliegenden Erfindung eine oder mehrere der Programmiereingaben (jeweils) eine oder mehrere Angaben (je) eines Koordinatenraums (für den ersten Roboter), in einer Weiterbildung eine oder mehrere Auswahlen (jeweils) zwischen einem von mehreren vorgegebenen Koordinatenräumen, in einer Ausführung eines Koordinatenraums für eine Bewegungseingabe und/oder eines Koordinatenraums für eine Pose des ersten Roboters. In einer Ausführung umfassen die vorgegebenen Koordinatenräume, insbesondere für eine Bewegungseingabe und/oder für eine Pose, einen Gelenkkoordinatenraum und/oder einen oder mehrere Arbeitsräume, in einer Weiterbildung einen umgebungsfesten und/oder einen endeffektorfesten und/oder einen werkstückfesten Koordinatenraum; und/oder eine Angabe eines Regelverfahrens des ersten Roboters, insbesondere eine Auswahl zwischen einem von mehreren vorgegebenen Regelverfahren, die in einer Weiterbildung eine Positionsregelung, Geschwindigkeitsregelung und/oder Kraftregelung, insbesondere Impedanzregelung und/oder Admittanzregelung, umfassen, und/oder eine Parametrierung des, gegebenenfalls ausgewählten, Regelverfahrens; und/oder eine Angabe einer Bahn des ersten Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Bahnarten, die in einer Weiterbildung eine Punkt-zu- Punkt- bzw. PTP-Bahn, eine Kreissegment- bzw. CIRC-Bahn, eine Geraden- bzw. LIN-Bahn, eine Spline- bzw. SPL-Bahn und/oder eine oder mehrere andere Bahnarten umfassen, und/oder eine Parametrierung der, gegebenenfalls ausgewählten, Bahn(art); und/oder eine Angabe, insbesondere Parametrierung, einer Pose, insbesondere Zielpose, des ersten Roboters, insbesondere unter Auswahl zwischen einem von mehreren vorgegebenen Koordinatenräumen für die Pose, die in einer Weiterbildung einen Gelenkkoordinatenraum und/oder einen oder mehrere Arbeitsräume, in einer Weiterbildung einen umgebungsfesten und/oder einen endeffektorfesten und/oder einen werkstückfesten Koordinatenraum, umfassen; und/oder eine Angabe einer Werkzeugaktion des ersten Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Werkzeugaktionen und/oder eine Parametrierung der, gegebenenfalls ausgewählten, Werkzeugaktion; und/oder eine Angabe einer Sensorart und/oder -aktion des ersten Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Sensorarten und/oder -aktionen, wobei der Sensor in einer Ausführung ein durch den ersten Roboter geführter Sensor ist. Durch diese Programmiereingaben, insbesondere ein entsprechendes Lexikon bzw. einen entsprechenden Kontext, das bzw. der diese vorsieht bzw. zur Verfügung stellt, können Roboterapplikationen besonders einfach, variabel und/oder zuverlässig programmiert bzw. durchgeführt werden.

In einer Ausführung umfasst die Roboterapplikation mehrere Aktionen wenigstens eines weiteren, von dem ersten Roboter verschiedenen, Roboters. In einer Weiterbildung umfassen eine oder mehrere dieser Aktionen jeweils eine oder mehrere Bewegungen des weiteren Roboters, können insbesondere solche Bewegungen sein.

In einer Ausführung umfasst das Verfahren die Schritte:

Erfassen von Programmiereingaben zum Programmieren dieser Aktionen des weiteren Roboters; und

Erstellen des Programms auf Basis dieser erfassten Programmiereingaben.

In einer Ausführung werden zum bzw. beim Erstellen des Programms diese Programmiereingaben zum Programmieren der Aktionen des weiteren Roboters (jeweils) auf Basis von demjenigen) Eingabenamen von den, in einer Ausführung durch den Kontext, einheitlich vorgegebenen Eingabenamen bzw. des Lexikons, der durch die jeweilige Programmiereingabe verwendet wird bzw. ist, und dem für diesen verwendeten Eingabenamen durch die jeweilige Programmiereingabe bestimmten Inhalt, insbesondere ein- oder mehrdimensionalen Wert, interpretiert, insbesondere in maschinenlesbare Anweisungen des Programms bzw. für den weiteren Roboter umgesetzt, in einer Ausführung mittels JSON-LD oder einem/r ähnlichen Standard bzw. Datenformat bzw. -Struktur.

Dadurch kann in einer Ausführung die Roboterapplikation vorteilhaft für mehrere unterschiedliche Roboter programmiert bzw. durchgeführt werden.

Zusätzlich oder alternativ umfassen in einer Ausführung eine oder mehrere der Programmiereingaben zum Programmieren der Aktionen des weiteren Roboters (jeweils) eine oder mehrere Angaben (je) eines Koordinatenraums (für den weiteren Roboter), in einer Weiterbildung eine oder mehrere Auswahlen (jeweils) zwischen einem von mehreren vorgegebenen Koordinatenräumen, in einer Ausführung eines Koordinatenraums für eine Bewegungseingabe und/oder eines Koordinatenraums für eine Pose des weiteren Roboters. In einer Ausführung umfassen die vorgegebenen Koordinatenräume, insbesondere für eine Bewegungseingabe und/oder für eine Pose, einen Gelenkkoordinatenraum und/oder einen oder mehrere Arbeitsräume, in einer Weiterbildung einen umgebungsfesten und/oder einen endeffektorfesten und/oder einen werkstückfesten Koordinatenraum; und/oder eine Angabe eines Regelverfahrens des weiteren Roboters, insbesondere eine Auswahl zwischen einem von mehreren vorgegebenen Regelverfahren, die in einer Weiterbildung eine Positionsregelung, Geschwindigkeitsregelung und/oder Kraftregelung, insbesondere Impedanzregelung und/oder Admittanzregelung, umfassen, und/oder eine Parametrierung des, gegebenenfalls ausgewählten, Regelverfahrens; und/oder eine Angabe einer Bahn des weiteren Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Bahnarten, die in einer Weiterbildung eine Punkt-zu- Punkt- bzw. PTP-Bahn, eine Kreissegment- bzw. CIRC-Bahn, eine Geraden- bzw. LIN-Bahn, eine Spline- bzw. SPL-Bahn und/oder eine oder mehrere andere Bahnarten umfassen, und/oder eine Parametrierung der, gegebenenfalls ausgewählten, Bahn(art); und/oder eine Angabe, insbesondere Parametrierung, einer Pose, insbesondere Zielpose, des weiteren Roboters, insbesondere unter Auswahl zwischen einem von mehreren vorgegebenen Koordinatenräumen für die Pose, die in einer Weiterbildung einen Gelenkkoordinatenraum und/oder einen oder mehrere Arbeitsräume, in einer Weiterbildung einen umgebungsfesten und/oder einen endeffektorfesten und/oder einen werkstückfesten Koordinatenraum, umfassen; und/oder eine Angabe einer Werkzeugaktion des weiteren Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Werkzeugaktionen und/oder eine Parametrierung der, gegebenenfalls ausgewählten, Werkzeugaktion; und/oder eine Angabe einer Sensorart und/oder -aktion des weiteren Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Sensorarten und/oder -aktionen, wobei der Sensor in einer Ausführung ein durch den ersten Roboter geführter Sensor ist.

Durch diese Programmiereingaben, insbesondere ein entsprechendes Lexikon bzw. einen entsprechenden Kontext, das bzw. der diese vorsieht bzw. zur Verfügung stellt, können Roboterapplikationen für mehrere unterschiedliche Roboter besonders einfach, variabel und/oder zuverlässig programmiert bzw. durchgeführt werden.

In einer Ausführung sind, in einer Weiterbildung werden, die Eingabenamen durch Angabe eines Kontexts, in einer Ausführung durch Angabe eines Typs innerhalb eines angegebenen Kontextes und/oder mittels JSON-LD, einheitlich vorgegeben.

Dadurch kann in einer Ausführung vorteilhaft wahlweise bzw. alternativ auf unterschiedliche Kontexte bzw. unterschiedliche Typen innerhalb eines angegebenen Kontextes zugegriffen bzw. mit JSON-LD ein global verfügbarer/s und wohlstrukturierter/s Standard bzw. Datenformat genutzt werden. Damit können in einer Ausführung Roboterapplikationen besonders variabel und/oder zuverlässig programmiert bzw. durchgeführt werden.

In einer Ausführung werden beim Erstellen des Programms eine oder mehrere der programmierten Aktionen mithilfe einer Zustandsmaschine implementiert.

Dadurch können in einer Ausführung vorteilhaft Verzweigungen („IF...THEN...“, „IF... ELSE...“ etc.) implementiert werden.

Nach einer Ausführung der vorliegenden Erfindung umfasst ein Verfahren zur Durchführung der Roboterapplikation die Schritte:

Erstellen eines Programms nach einem hier beschriebenen Verfahren; und Ausführen dieses erstellten Programms mithilfe des ersten Roboters und gegebenenfalls des weiteren Roboters.

Nach einer Ausführung der vorliegenden Erfindung ist ein System zum Erstellen des Programms zur Durchführung der Roboterapplikation, insbesondere ein System zur Durchführung der Roboterapplikation, hard- und/oder software-, insbesondere programmtechnisch, zur Durchführung eines hier beschriebenen Verfahrens eingerichtet und/oder weist auf:

Mittel zum Erfassen von Programmiereingaben zum Programmieren dieser Aktionen des ersten Roboters; und

Mittel zum Erstellen des Programms auf Basis dieser erfassten Programmiereingaben.

Nach einer Ausführung der vorliegenden Erfindung sind zum Erstellen des Programms für unterschiedliche Roboter, in einer Ausführung durch einen Kontext, Eingabenamen einheitlich vorgegeben und das Mittel zum Erstellen des Programms weist Mittel zum Interpretieren der Programmiereingaben auf Basis von dem durch die jeweilige Programmiereingabe verwendeten Eingabenamen und dem für diesen verwendeten Eingabenamen durch die jeweilige Programmiereingabe bestimmten Inhalt, insbesondere mittels JSON-LD, auf.

Zusätzlich oder alternativ umfasst nach einer Ausführung der vorliegenden Erfindung wenigstens eine der Programmiereingaben wenigstens eine Angabe eines Koordinatenraums (für den ersten Roboter), insbesondere wenigstens eine Auswahl zwischen einem von mehreren vorgegebenen Koordinatenräumen, eine Angabe eines Regelverfahrens des ersten Roboters, insbesondere eine Auswahl zwischen einem von mehreren vorgegebenen Regelverfahren, eine Angabe einer Bahn des ersten Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Bahnarten, eine Angabe einer Pose des ersten Roboters, insbesondere unter Auswahl zwischen einem von mehreren vorgegebenen Koordinatenräumen für die Pose, eine Angabe einer Werkzeugaktion des ersten Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Werkzeugaktionen, und/oder eine Angabe einer Sensorart und/oder -aktion des ersten Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Sensorarten und/oder -aktionen.

In einer Ausführung umfasst die Roboterapplikation mehrere Aktionen, insbesondere Bewegungen, wenigstens eines weiteren, von dem ersten Roboter verschiedenen, Roboters und das System bzw. seine Mittel umfassen: Mittel zum Erfassen von Programmiereingaben zum Programmieren dieser Aktionen des weiteren Roboters; und

Mittel zum Erstellen des Programms auf Basis dieser erfassten Programmiereingaben.

In einer Ausführung weist das Mittel zum Erstellen des Programms Mittel zum Interpretieren dieser Programmiereingaben zum Programmieren der Aktionen des weiteren Roboters auf Basis von dem durch die jeweilige Programmiereingabe verwendeten der, in einer Ausführung durch den Kontext, einheitlich vorgegebenen Eingabenamen und dem für diese verwendeten Eingabenamen durch die jeweilige Programmiereingabe bestimmten Inhalt, insbesondere mittels JSON-LD, auf.

Zusätzlich oder alternativ umfasst nach einer Ausführung der vorliegenden Erfindung wenigstens eine der Programmiereingaben zum Programmieren der Aktionen des weiteren Roboters wenigstens eine Angabe eines Koordinatenraums (für den weiteren Roboter), insbesondere wenigstens eine Auswahl zwischen einem von mehreren vorgegebenen Koordinatenräumen, eine Angabe eines Regelverfahrens des weiteren Roboters, insbesondere eine Auswahl zwischen einem von mehreren vorgegebenen Regelverfahren, eine Angabe einer Bahn des weiteren Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Bahnarten, eine Angabe einer Pose des weiteren Roboters, insbesondere unter Auswahl zwischen einem von mehreren vorgegebenen Koordinatenräumen für die Pose, eine Angabe einer Werkzeugaktion des weiteren Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Werkzeugaktionen, und/oder eine Angabe einer Sensorart und/oder -aktion des weiteren Roboters, insbesondere eine Auswahl zwischen einer von mehreren vorgegebenen Sensorarten und/oder -aktionen.

In einer Ausführung umfasst das System bzw. seine Mittel

Mittel zum einheitlichen Vorgeben der Eingabenamen durch Angabe eines Kontexts, insbesondere durch Angabe eines Typs innerhalb eines angegebenen Kontextes und/oder mittels JSON-LD; und/oder Mittel zum Implementieren wenigstens einer der programmierten Aktionen beim Erstellen des Programms mithilfe einer Zustandsmaschine; und/oder Mittel zum Ausführen des erstellten Programms mithilfe des ersten Roboters und gegebenenfalls des weiteren Roboters. Ein System und/oder ein Mittel im Sinne der vorliegenden Erfindung kann hard- und/oder softwaretechnisch ausgebildet sein, insbesondere wenigstens eine, vorzugsweise mit einem Speicher- und/oder Bussystem daten- bzw. signalverbundene, insbesondere digitale, Verarbeitungs-, insbesondere Mikroprozessoreinheit (CPU), Graphikkarte (GPU) oder dergleichen, und/oder ein oder mehrere Programme oder Programmmodule aufweisen. Die Verarbeitungseinheit kann dazu ausgebildet sein, Befehle, die als ein in einem Speichersystem abgelegtes Programm implementiert sind, abzuarbeiten, Eingangssignale von einem Datenbus zu erfassen und/oder Ausgangssignale an einen Datenbus abzugeben. Ein Speichersystem kann ein oder mehrere, insbesondere verschiedene, Speichermedien, insbesondere optische, magnetische, Festkörper- und/oder andere nicht-flüchtige Medien aufweisen. Das Programm kann derart beschaffen sein, dass es die hier beschriebenen Verfahren verkörpert bzw. auszuführen imstande ist, sodass die Verarbeitungseinheit die Schritte solcher Verfahren ausführen kann und damit insbesondere das Programm erstellen bzw. ausführen kann. Ein Computerprogrammprodukt kann in einer Ausführung ein, insbesondere computerlesbares und/oder nicht-flüchtiges, Speichermedium zum Speichern eines Programms bzw. von Anweisungen bzw. mit einem darauf gespeicherten Programm bzw. mit darauf gespeicherten Anweisungen aufweisen, insbesondere sein. In einer Ausführung veranlasst ein Ausführen dieses Programms bzw. dieser Anweisungen durch ein System bzw. einen Computer oder eine Anordnung von mehreren Computern, das System bzw. den bzw. die Computer, dazu, ein hier beschriebenes Verfahren bzw. einen oder mehrere seiner Schritte auszuführen, bzw. sind das Programm bzw. die Anweisungen hierzu eingerichtet.

In einer Ausführung werden ein oder mehrere, insbesondere alle, Schritte des Verfahrens vollständig oder teilweise automatisiert durchgeführt, insbesondere durch das System bzw. seine Mittel.

In einer Ausführung weist das System den ersten Roboter und gegebenenfalls auch den weiteren Roboter auf.

Die vorliegende Erfindung ist mit Bezug auf JSON-LD erläutert, da dies ein(e) bekannte(rZs) und vorteilhafte(rZs) Standard bzw. Datenformat bzw. -Struktur ist, sie ist jedoch in keiner Weise hierauf beschränkt. Weitere Vorteile und Merkmale ergeben sich aus den Unteransprüchen und den Ausführungsbeispielen. Hierzu zeigt, teilweise schematisiert:

Fig. 1 : ein System zur Durchführung einer Roboterapplikation nach einer Ausführung der vorliegenden Erfindung;

Fig. 2: ein Verfahren zur Durchführung der Roboterapplikation nach einer Ausführung der vorliegenden Erfindung; und

Fig. 3, 4: Programmiereingaben-Strukturen.

Fig. 1 zeigt ein System zur Durchführung einer Roboterapplikation mithilfe eines ersten Roboters 1 und in einer Weiterbildung eines optionalen weiteren Roboters 2, die durch eine zentrale oder dezentrale bzw. verteilte Steuerung 3 gesteuert werden, welche ein erstelltes Programm durchführt und hierzu ein Mittel 3.1 zum Erstellen des Programms aufweist, das wie erwähnt auch dezentral, insbesondere durch einen eigenen Computer mit darauf ablaufender Software, eine Cloud oder dergleichen implementiert sein kann, Fig. 2 ein Verfahren zur Durchführung der Roboterapplikation.

In einem ersten Schritt S10 werden Programmiereingaben zum Programmieren von Aktionen des ersten und gegebenenfalls auch des weiteren Roboters erfasst.

In einem zweiten Schritt S20 wird auf Basis dieser erfassten Programmiereingaben ein Programm zur Durchführung einer Roboterapplikation erstellt.

In einem dritten Schritt S30 wird das erstellte Programm mithilfe des ersten Roboters und gegebenenfalls auch des weiteren Roboters ausgeführt.

Fig. 3, 4 illustrieren hierzu Programmiereingaben-Strukturen.

Die Programmeingaben können exemplarisch folgendes umfassen:

# JSON-LD for Robot Application 1 {

“©context”: “https://schema.org”, “@type”: “Robot Application”

“name”: “Robot Application 1“,

„step 1“: „Motion Command 1“,

„step 2“: „Motion Command 2“,

} bzw.

# JSON-LD für Roboterapplikation 1

{

“©context”: “https://schema.org”,

“@type”: “Roboterapplikation”

“name”: “Roboterapplikation 1“,

„Schritt 1“: „Bewegungskommando 1“,

„Schritt 2“: „Bewegungskommando 2“,

} bzw.

# JSON-LD for Robotererapplikation 1

{

“©context”: “htps://schema.org”,

‘©type”: “Robot application”

“name”: “Roboterapplikation 1“,

„step 1“: „Bewegungskommando 1“,

„step 2“: „Bewegungskommando 2“,

} oder dergleichen.

Durch ‘©context”: “https://schema.org” wird ein Kontext angegeben, wobei schema.org exemplarisch eine einheitliche Ontologie für die Strukturierung von Daten auf Websites auf der Basis von bereits bestehenden Auszeichnungssprachen zur Verfügung stellt, durch “@type”: “Robot Application” bzw. “@type”: “Roboterapplikation” ein Typ innerhalb des Kontextes, der gegebenenfalls generiert bzw. modifiziert, insbesondere erweitert werden kann, insbesondere so, dass er hier genannte Programmiereingaben zur Verfügung stellt.

Wie aus Fig. 3, 4 erkennbar, können Programmeingaben Bewegungsbefehle bzw. - kommandos („Motion Command“) mit einer Auswahl zwischen einem von mehreren vorgegebenen Koordinatenräumen („K.raum“ bzw. „Domain“: „Gelenk“ bzw. „Joint“, „kartesisch“ bzw. „Cartesian“), einer Auswahl zwischen einem von mehreren vorgegebenen Regelverfahren („Algorithmus“ bzw. „Range/Algorithm“: „Position“, „Geschwindigkeit“ bzw. „Velocity“, „Kraft-Impedanz“ bzw. „Force-Impedance“, „Kraft- Admittanz“ bzw. „Force-Admittance“), einer Parametrierung des (ausgewählten) Regelverfahren („Steifigkeit“ bzw. „Stifness“, „Dämpfung“ bzw. „Damping“, „Kraft“ bzw. „Force“), einer Auswahl zwischen einer von mehreren vorgegebenen Bahnarten („Trajektorie“ bzw. „Trajectory“: „PTP“, „CIRC“, „LIN“, SPL“, „gesampeltes Bahnprofil“ bzw. „Sampled Path Profile“, „MISC“) bzw. deren Parametrierung, Roboterposen („Roboterpose“ bzw. „Robot Pose“), insbesondere unter Auswahl zwischen einem von mehreren vorgegebenen Koordinatenräumen („Gelenk“ bzw. „Joint“, „kartesisch“ bzw. „Cartesian“) für die Pose und deren Parametrierung („Gelenkpose“ bzw. „Joint pose“, „EE Frame“, „Redundanz“ bzw. „Redundancy“), Werkzeugaktionen („Greifer“ bzw. „Gripper“: „Aktionen“ bzw. „Actions“) bzw. deren Parametrierung („Offen“ bzw. „Open“, „Geschlossen“ bzw. „Close“), Sensorarten und/oder -aktion („Sensoren“ bzw. „Sensors“: „Kamera“ bzw. „Camera“, „Beschleunigungsmesser“ bzw. „Accelerometer“, „...“) und weiteren Elementen („Weitere“ bzw. „Other“) umfassen. Durch die jeweilige Programmiereingabe werden entsprechende Inhalte („Steifigkeit“ bzw. „Stiffness“, „Dämpfung“ bzw. „Damping“, „Kraft“ bzw. „Force“, „EE Frame“, „Redundanz“ bzw. „Redundancy“, „Gelenkpose“ bzw. „Joint Pose“, „Offen“ bzw. „Open“, „Geschlossen“ bzw. „Close“) bestimmt.

Wie Fig. 4 illustriert, kann beispielsweise als Schritt 3 des Programms ein

Bewegungsbefehl erfasst bzw. umgesetzt werden, der eine positionsgeregelte PTP- Bahn im Gelenkwinkelraum zu einer Zielpose umfasst, die im Gelenkwinkelraum durch die Werte „Gelenkpose“ (bzw. „Joint pose“) vorgegeben ist. Dies ist in Fig. 4 durch eine Linie mit dem Bezugszeichen 300 angedeutet, welches als „ist vom Typ“ bzw. „is of type“ zu verstehen ist bzw. dies darstellt. Analog sind in Fig. 3 das Bezugszeichen 100 als „hat Namen“ bzw. „has Name“ und das Bezugszeichen 200 als „hat nicht“ bzw. „does not have“ zu verstehen bzw. stellen dies dar.

Das Datenmodell von JSON-LD stellt eine Erweiterung bzw. Serialisierung des RDF- Modells dar. Somit kann in einer Ausführung die Roboterapplikation in einem RDF- Graphen representiert und dann zu JSON-LD serialisiert werden. Eine RDF- Serialisierung in N-QUADS Serialisierung wäre zum Beispiel:

_:b0 < http://schema.org/name> “Robot Application 1“. bzw.

_:b0 < http://schema.org/name> “Roboterapplikation 1“.

Obwohl in der vorhergehenden Beschreibung exemplarische Ausführungen erläutert wurden, sei darauf hingewiesen, dass eine Vielzahl von Abwandlungen möglich ist. So wurden vorstehend insbesondere zusätzlich englischsprachige Begriffe angegeben, da diese bei robotischen Anwendungen gebräuchlich(er) sind. Außerdem sei darauf hingewiesen, dass es sich bei den exemplarischen Ausführungen lediglich um Beispiele handelt, die den Schutzbereich, die Anwendungen und den Aufbau in keiner Weise einschränken sollen. Vielmehr wird dem Fachmann durch die vorausgehende Beschreibung ein Leitfaden für die Umsetzung von mindestens einer exemplarischen Ausführung gegeben, wobei diverse Änderungen, insbesondere in Hinblick auf die Funktion und Anordnung der beschriebenen Bestandteile, vorgenommen werden können, ohne den Schutzbereich zu verlassen, wie er sich aus den Ansprüchen und diesen äquivalenten Merkmalskombinationen ergibt. Bezuqszeichenliste

1 erster Roboter

2 weiterer Roboter 3 Steuerung

3.1 Mittel zum Erstellen eines Programms

100 „hat Namen“ („has Name“)

200 “hat nicht” („does not have“)

300 “ist vom Typ” („is of type“)