Execution of a robot application and creation of a program therefor

EP4504460A1Pending Publication Date: 2025-02-12KUKA DEUT GMBH
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
EP2023709943
Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-04-06
Filing Date
2023-03-03
Publication Date
2025-02-12

AI Technical Summary

Technical Problem

Robot applications from different manufacturers require individual programming, which is inefficient and lacks standardization, especially when integrating movements and actions across various robots with different capabilities and coordinate systems.

Method used

A method and system that uses a context-based data format like JSON-LD to uniformly specify input names and convert programming inputs into machine-readable instructions, allowing for the creation of programs that can be executed across different robots, including those with multiple joints and various coordinate spaces, control methods, and sensor actions.

Benefits of technology

Enables easy, variable, and reliable programming of robot applications for multiple robots by standardizing input names and formats, facilitating the integration of diverse robotic systems through a unified lexicon and data structure, and allowing for state machine implementation and execution of complex actions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 1.1
    Figure 1.1
Patent Text Reader

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.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Description

[0002] Implementation of a robot application and creation of a program for it

[0003] The present invention relates to a method and system for creating a program for carrying out a robot application which comprises a plurality of actions, in particular movements, of a first robot, in particular a method and system for carrying out the robot application, as well as a computer program or computer program product for carrying out a method described here.

[0004] Many robot applications use robots from different manufacturers, especially robots from different manufacturers together, or alternatively robots from different manufacturers, etc. These robots must be programmed individually or manufacturer-specifically.

[0005] On the other hand, for example, for the Internet, JSON-LD is a context-based data format or structure that is particularly suitable as an interface between machines.

[0006] The object of the present invention is to improve the implementation of robot applications and the creation of programs therefor.

[0007] This object is achieved by a method having the features of claim 1 or 5. Claims 6, 7 represent a system or computer program or.

[0008] A computer program product for carrying out a method described herein is protected. The subclaims relate to advantageous developments.

[0009] According to one embodiment of the present invention, a robot application comprises several actions of a first robot.

[0010] In one embodiment, one or more of these actions each comprise one or more movements of the first robot, and can in particular be such movements. In one embodiment, the first robot and / or the subsequently mentioned further robot each have a robot arm with at least three, in particular at least six, joints, in one embodiment, rotary joints.

[0011] According to one embodiment of the present invention, a method for creating a program for implementing the robot application comprises the steps:

[0012] Capturing programming inputs to program the actions of the first robot; and

[0013] Creating the program based on these captured programming inputs.

[0014] According to one embodiment of the present invention, input names or keys or a lexicon or vocabulary with input names or keys are, in particular, uniformly specified for different robots, in particular different robot types and / or robots from different manufacturers, in one embodiment by a context specified in one embodiment, in a further development by means of JSON-LD or a similar standard or data format or structure. For or when creating the program, the programming inputs are then (in each case) based on the input name from these, in one embodiment by the context, uniformly specified input names or this lexicon that is used oris, and the content determined for this input name by the respective programming input, in particular one-dimensional or multi-dimensional value, interpreted, in particular converted into machine-readable instructions of the program or for the first robot, in an embodiment using JSON-LD or a similar standard or data format or structure.

[0015] This means that in one embodiment the robot application can be advantageously programmed or implemented for or with different robot(s).

[0016] Additionally or alternatively, according to one embodiment of the present invention, one or more of the programming inputs (each) comprise one or more details (each) of a coordinate space (for the first robot), in a further development one or more selections (each) between one of several predetermined coordinate spaces, in one embodiment a coordinate space for a movement input and / or a coordinate space for a pose of the first robot. In one embodiment, the predetermined coordinate spaces, in particular for a movement input and / or for a pose, comprise a joint coordinate space and / or one or more work spaces, in one development an environment-fixed and / or an end-effector-fixed and / or a workpiece-fixed coordinate space;and / or an indication of a control method of the first robot, in particular a selection between one of several predefined control methods, which in a further development comprise position control, speed control and / or force control, in particular impedance control and / or admittance control, and / or a parameterization of the optionally selected control method; and / or an indication of a path of the first robot, in particular a selection between one of several predefined path types, which in a further development comprise a point-to-point or PTP path, a circular segment or CIRC path, a straight line or LIN path, a spline or SPL path and / or one or more other path types, and / or a parameterization of the optionally selected path (type);and / or an indication, in particular parameterization, of a pose, in particular a target pose, of the first robot, in particular by selecting between one of several predefined coordinate spaces for the pose, which in a further development comprise a joint coordinate space and / or one or more work spaces, in a further development an environment-fixed and / or an end-effector-fixed and / or a workpiece-fixed coordinate space; and / or an indication of a tool action of the first robot, in particular a selection between one of several predefined tool actions and / or a parameterization of the optionally selected tool action;and / or an indication of a sensor type and / or action of the first robot, in particular a selection between one of several predefined sensor types and / or actions, wherein the sensor, in one embodiment, is a sensor guided by the first robot. Through these programming inputs, in particular a corresponding lexicon or context that provides or provides them, robot applications can be programmed or implemented particularly easily, variably, and / or reliably.

[0017] In one embodiment, the robot application comprises a plurality of actions of at least one additional robot, different from the first robot. In a further development, one or more of these actions each comprise one or more movements of the additional robot, and can in particular be such movements.

[0018] In one embodiment, the method comprises the steps:

[0019] Capturing programming inputs to program these actions of the other robot; and

[0020] Creating the program based on these captured programming inputs.

[0021] In one embodiment, for or when creating the program, these programming inputs for programming the actions of the further robot are (in each case) interpreted on the basis of that input name from the input names, in one embodiment uniformly specified by the context, or of the lexicon that is or is used by the respective programming input, and the content used for this input name determined by the respective programming input, in particular a one-dimensional or multi-dimensional value, in particular converted into machine-readable instructions of the program or for the further robot, in one embodiment using JSON-LD or a similar standard or data format or structure.

[0022] This means that the robot application can be advantageously programmed or implemented for several different robots in one version.

[0023] Additionally or alternatively, in one embodiment, one or more of the programming inputs for programming the actions of the further robot (each) comprise one or more details (each) of a coordinate space (for the further robot), in a further development, one or more selections (each) between one of several predetermined coordinate spaces, in one embodiment, a coordinate space for a movement input and / or a coordinate space for a pose of the further robot. In one embodiment, the predetermined coordinate spaces, in particular for a movement input and / or for a pose, comprise a joint coordinate space and / or one or more workspaces, in one further development, an environment-fixed and / or an end-effector-fixed and / or a workpiece-fixed coordinate space;and / or an indication of a control method of the further robot, in particular a selection between one of several predefined control methods, which in a further development comprise position control, speed control and / or force control, in particular impedance control and / or admittance control, and / or a parameterization of the optionally selected control method; and / or an indication of a path of the further robot, in particular a selection between one of several predefined path types, which in a further development comprise a point-to-point or PTP path, a circular segment or CIRC path, a straight line or LIN path, a spline or SPL path and / or one or more other path types, and / or a parameterization of the optionally selected path (type);and / or an indication, in particular parameterization, of a pose, in particular a target pose, of the further robot, in particular by selecting between one of several predefined coordinate spaces for the pose, which in one development comprise a joint coordinate space and / or one or more work spaces, in one development comprise an environment-fixed and / or an end-effector-fixed and / or a workpiece-fixed coordinate space; and / or an indication of a tool action of the further robot, in particular a selection between one of several predefined tool actions and / or a parameterization of the optionally selected tool action; and / or an indication of a sensor type and / or action of the further robot, in particular a selection between one of several predefined sensor types and / or actions, wherein the sensor in one embodiment is a sensor guided by the first robot.;

[0024] Through these programming inputs, in particular a corresponding lexicon or context that provides or makes them available, robot applications for several different robots can be programmed or implemented particularly easily, variably and / or reliably.

[0025] In one embodiment, in a further development, the input names are specified uniformly by specifying a context, in one embodiment by specifying a type within a specified context and / or by means of JSON-LD.

[0026] This advantageously allows for selective or alternative access to different contexts or different types within a specified context, or for the use of a globally available and well-structured standard or data format with JSON-LD. This allows for particularly flexible and / or reliable programming and implementation of robot applications.

[0027] In an execution, when the program is created, one or more of the programmed actions are implemented using a state machine.

[0028] This allows branches (“IF...THEN...”, “IF... ELSE...”, etc.) to be advantageously implemented in one execution.

[0029] According to one embodiment of the present invention, a method for carrying out the robot application comprises the steps:

[0030] Creating a program according to a method described here; and executing this created program using the first robot and, if appropriate, the further robot.

[0031] According to one embodiment of the present invention, a system for creating the program for implementing the robot application, in particular a system for implementing the robot application, is configured in terms of hardware and / or software, in particular program technology, for implementing a method described here and / or comprises:

[0032] Means for capturing programming inputs for programming these actions of the first robot; and

[0033] Means for creating the program based on these captured programming inputs.

[0034] According to one embodiment of the present invention, input names are uniformly specified for creating the program for different robots, in one embodiment by a context, and the means for creating the program has means for interpreting the programming inputs on the basis of the input name used by the respective programming input and the content used for this input name determined by the respective programming input, in particular by means of JSON-LD.

[0035] Additionally or alternatively, according to an embodiment of the present invention, at least one of the programming inputs comprises at least one specification of a coordinate space (for the first robot), in particular at least one selection between one of several predefined coordinate spaces, an specification of a control method of the first robot, in particular a selection between one of several predefined control methods, an specification of a path of the first robot, in particular a selection between one of several predefined path types, an specification of a pose of the first robot, in particular with a selection between one of several predefined coordinate spaces for the pose, an specification of a tool action of the first robot, in particular a selection between one of several predefined tool actions, and / or an specification of a sensor type and / or action of the first robot,in particular a selection between one of several predefined sensor types and / or actions.,

[0036] In one embodiment, the robot application comprises several actions, in particular movements, of at least one further robot, different from the first robot, and the system or its means comprise: means for detecting programming inputs for programming these actions of the further robot; and

[0037] Means for creating the program based on these captured programming inputs.

[0038] In one embodiment, the means for creating the program comprises means for interpreting these programming inputs for programming the actions of the further robot on the basis of the input names used by the respective programming input, which in one embodiment are uniformly specified by the context, and the content used for these input names determined by the respective programming input, in particular by means of JSON-LD.

[0039] Additionally or alternatively, according to an embodiment of the present invention, at least one of the programming inputs for programming the actions of the further robot comprises at least one specification of a coordinate space (for the further robot), in particular at least one selection between one of several predefined coordinate spaces, an specification of a control method of the further robot, in particular a selection between one of several predefined control methods, an specification of a path of the further robot, in particular a selection between one of several predefined path types, an specification of a pose of the further robot, in particular with a selection between one of several predefined coordinate spaces for the pose, an specification of a tool action of the further robot, in particular a selection between one of several predefined tool actions, and / or an specification of a sensor type and / or action of the further robot,in particular a selection between one of several predefined sensor types and / or actions.,

[0040] In one embodiment, the system or its means comprises

[0041] Means for uniformly specifying the input names by specifying a context, in particular by specifying a type within a specified context and / or using JSON-LD; and / or means for implementing at least one of the programmed actions when creating the program using a state machine; and / or means for executing the created program using the first robot and, if appropriate, the further robot. A system and / or means within the meaning of the present invention can be implemented in hardware and / or software, in particular at least one, preferably data- or signal-connected, especially digital, processing unit, in particular a microprocessor unit (CPU), graphics card (GPU) or the like, and / or one or more programs or program modules.The processing unit can be designed to execute instructions implemented as a program stored in a memory system, to detect input signals from a data bus and / or to output signals to a data bus. A memory system can have one or more, in particular different, storage media, in particular optical, magnetic, solid-state and / or other non-volatile media. The program can be designed in such a way that it embodies or is capable of carrying out the methods described here, so that the processing unit can carry out the steps of such methods and can thus in particular create or execute the program. In one embodiment, a computer program product can be a, in particular computer-readable and / or non-volatile, storage medium for storing a program or instructions or with a program or instruction stored thereon.with instructions stored thereon, in particular. In one embodiment, execution of this program or these instructions by a system or a computer or an arrangement of multiple computers causes the system or computers to perform a method described herein or one or more of its steps, or the program or instructions are configured to do so.

[0042] In one embodiment, one or more, in particular all, steps of the method are carried out fully or partially automatically, in particular by the system or its means.

[0043] In one embodiment, the system comprises the first robot and, if applicable, also the additional robot.

[0044] The present invention is explained with reference to JSON-LD, as this is a known and advantageous standard, data format, or structure, but it is in no way limited to this. Further advantages and features emerge from the subclaims and the exemplary embodiments. The following shows, partially schematically:

[0045] Fig. 1 : a system for performing a robot application according to an embodiment of the present invention;

[0046] Fig. 2: a method for carrying out the robot application according to an embodiment of the present invention; and

[0047] Fig. 3, 4: Programming input structures.

[0048] Fig. 1 shows a system for carrying out a robot application with the aid of a first robot 1 and, in a further development, an optional further robot 2, which are controlled by a central or decentralized or distributed controller 3, which executes a created program and for this purpose has a means 3.1 for creating the program, which, as mentioned, can also be implemented decentrally, in particular by a separate computer with software running thereon, a cloud or the like, Fig. 2 shows a method for carrying out the robot application.

[0049] In a first step S10, programming inputs for programming actions of the first and, if applicable, also the other robot are recorded.

[0050] In a second step S20, a program for executing a robot application is created based on these recorded programming inputs.

[0051] In a third step S30, the created program is executed using the first robot and, if necessary, also the other robot.

[0052] Fig. 3, 4 illustrate programming input structures.

[0053] The program inputs can include the following examples:

[0054] # JSON-LD for Robot Application 1 {

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

[0056] “name”: “Robot Application 1”,

[0057] “step 1”: “Motion Command 1”,

[0058] “step 2”: “Motion Command 2”,

[0059] } or

[0060] # JSON-LD for robot application 1

[0061] {

[0062] “©context”: “https: / / schema.org”,

[0063] “@type”: “Robot application”

[0064] “name”: “Robot Application 1”,

[0065] “Step 1”: “Movement Command 1”,

[0066] “Step 2”: “Movement Command 2”,

[0067] } or

[0068] # JSON-LD for robot application 1

[0069] {

[0070] “©context”: “htps: / / schema.org”,

[0071] '©type”: “Robot application”

[0072] “name”: “Robot Application 1”,

[0073] “step 1”: “Movement command 1”,

[0074] “step 2”: “Movement command 2”,

[0075] } or the like.

[0076] '©context”: “https: / / schema.org” specifies a context, whereby schema.org provides an exemplary uniform ontology for structuring data on websites based on existing markup languages, “@type”: “Robot Application” or “@type”: “Roboterapplikation” specifies a type within the context, which can be generated or modified if necessary, in particular extended, in particular in such a way that it provides the programming inputs mentioned here.

[0077] As can be seen from Fig. 3, 4, program inputs can be motion commands with a selection between one of several predefined coordinate spaces (“C.space” or “Domain”: “Joint” or “Joint”, “Cartesian”), a selection between one of several predefined control methods (“Algorithm” or “Range / Algorithm”: “Position”, “Velocity”, “Force-Impedance” or “Force-Impedance”, “Force-Admittance” or “Force-Admittance”), a parameterization of the (selected) control method (“Stiffness” or “Stifness”, “Damping” or “Force”, “Force” or “Force”), a selection between one of several predefined path types (“Trajectory” or “Trajectory”: “PTP”, “CIRC”, “LIN”, SPL”, “sampled path profile” or “Sampled Path Profile”, “MISC”) or their parameterization, robot poses (“robot pose” or“Robot Pose”), in particular by selecting between one of several predefined coordinate spaces (“Joint”, “Cartesian”) for the pose and its parameterization (“Joint pose”, “EE Frame”, “Redundancy”), tool actions (“Gripper”: “Actions”) or their parameterization (“Open”, “Closed”), sensor types and / or actions (“Sensors”: “Camera”, “Accelerometer”, “...”) and further elements (“Other”). The respective programming input determines the corresponding contents (“Stiffness”, “Damping”, “Force”, “EE Frame”, “Redundancy”, “Joint Pose”, “Open”, “Closed”).

[0078] As Fig. 4 illustrates, for example, step 3 of the program can be a

[0079] A movement command is detected or implemented, which comprises a position-controlled PTP path in the joint angle space to a target pose, which is specified in the joint angle space by the values ​​"joint pose". This is indicated in Fig. 4 by a line with the reference symbol 300, which is to be understood as "is of type" or "is of type". Analogously, in Fig. 3, the reference symbol 100 is to be understood as "has name" or "has name" and the reference symbol 200 as "does not have" or "does not have".

[0080] The JSON-LD data model represents an extension or serialization of the RDF model. Thus, in one implementation, the robot application can be represented in an RDF graph and then serialized to JSON-LD. An RDF serialization in N-QUADS serialization would be, for example:

[0081] _:b0 < http: / / schema.org / name> “Robot Application 1”. or

[0082] _:b0 < http: / / schema.org / name> “Robot Application 1”.

[0083] Although exemplary embodiments have been explained in the preceding description, it should be noted that a multitude of modifications are possible. For example, English-language terms have been additionally specified above, as these are more commonly used in robotic applications. Furthermore, it should be noted that the exemplary embodiments are merely examples and are not intended to limit the scope of protection, applications, or structure in any way. Rather, the preceding description provides the skilled person with a guide for implementing at least one exemplary embodiment, whereby various modifications, particularly with regard to the function and arrangement of the described components, can be made without departing from the scope of protection as it results from the claims and their equivalent combinations of features. List of reference symbols

[0084] 1 first robot

[0085] 2 additional robots 3 control

[0086] 3.1 Means of creating a program

[0087] 100 “has name”

[0088] 200 “does not have”

[0089] 300 “is of type” (“is of type”)

Claims

Patent claims Method for creating a program for carrying out a robot application comprising several actions, in particular movements, of a first robot (1), comprising the steps: Capture (S10) programming inputs for programming these actions of the first robot; and Creating (S20) the program based on these captured programming inputs; wherein, for creating the program for different robots, in particular through a context, input names are uniformly specified and the programming inputs are interpreted based on the input name used by the respective programming input and the content determined by the respective programming input, in particular by means of JSON-LD; and / or at least one of the programming inputs is at least a specification of a coordinate space, in particular at least a selection between one of several specified coordinate spaces, a specification of a control procedure of the first robot, in particular a selection between one of several specified control procedures, a specification of a path of the first robot, in particular a selection between one of several specified path types, a specification of a pose of the first robot,The method according to claim 1 comprises, in particular, a selection from one of several predefined coordinate spaces for the pose, a specification of a tool action of the first robot, in particular a selection from one of several predefined tool actions, and / or a specification of a sensor type and / or action of the first robot, in particular a selection from one of several predefined sensor types and / or actions. The method according to claim 1 is characterized in that the robot application comprises several actions, in particular movements, of at least one further robot (2) different from the first robot, and the method comprises the steps: Capturing programming inputs to program these actions of the further robot; and Creating the program based on these captured programming inputs; wherein these programming inputs are interpreted based on the input name used by the respective programming input, which is uniformly specified by the context, and the content determined for this input name by the respective further programming input, in particular by means of JSON-LD; and / or at least one of the programming inputs is at least a specification of a coordinate space, in particular at least a selection between one of several specified coordinate spaces, a specification of a control procedure of the further robot, in particular a selection between one of several specified control procedures, a specification of a path of the further robot, in particular a selection between one of several specified path types, a specification of a pose of the further robot,in particular, a method comprising a selection from one of several predefined coordinate spaces for the pose, a specification of a tool action of the further robot, in particular a selection from one of several predefined tool actions, and / or a specification of a sensor type and / or action of the further robot, in particular a selection from one of several predefined sensor types and / or actions. A method according to one of the preceding claims, characterized in that the input names are uniformly specified by specifying a context, in particular by specifying a type within a specified context and / or by means of JSON-LD. A method according to one of the preceding claims, characterized in that at least one of the programmed actions is implemented using a state machine when creating the program. A method for executing a robot application that includes several actions,especially movements of a first robot, including the steps: Creating a program according to one of the preceding claims; and Execution of this created program using the first robot, and in particular also using the second robot. System for creating a program for executing a robot application comprising several actions, in particular movements, of a first robot, in particular a system for executing the robot application, wherein the system is configured and / or comprises a method according to one of the preceding claims: - Means of capturing programming inputs for programming these actions of the first robot; and - Means for creating the program based on these captured programming inputs; wherein, for creating the program for different robots, in particular through a context, input names are uniformly specified, and the means for creating the program includes means for interpreting the programming inputs based on the input name used by the respective programming input and the content determined for this input name by the respective programming input, in particular by means of JSON-LD;and / or at least one of the programming inputs includes at least a specification of a coordinate space, in particular at least a selection from one of several predefined coordinate spaces, a specification of a control procedure of the first robot, in particular a selection from one of several predefined control procedures, a specification of a path of the first robot, in particular a selection from one of several predefined path types, a specification of a pose of the first robot, in particular a selection from one of several predefined coordinate spaces for the pose, a specification of a tool action of the first robot, in particular a selection from one of several predefined tool actions, and / or a specification of a sensor type and / or action of the first robot, in particular a selection from one of several predefined sensor types and / or actions. Computer program or computer program product, wherein the computer program or computer program product, in particular stored on a computer-readable and / or non-volatile storage medium, contains instructions which, when executed by one or more computers or a system according to claim 6, cause the computer(s) or system to perform a method according to any one of claims 1 to 5.