Generate control programs for robotic manipulators

By acquiring trajectory and force data during the first robot manipulator execution application, generating robot commands and optimizing control programs, the problem of adaptation complexity of different robot manipulators is solved, and more efficient control program generation is achieved.

CN114746223BActive Publication Date: 2025-08-29FR ADMINISTRATION GMBH
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202080083951.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-12-27
Filing Date
2020-12-22
Publication Date
2025-08-29
Estimated Expiration
2040-12-22

Smart Images

  • Figure CN114746223B_ABST
    Figure CN114746223B_ABST
Patent Text Reader

Abstract

The invention relates to a method for generating a control program, comprising the following steps: executing (S1) an application program by a first robot manipulator (1); determining (S2) trajectory data and / or force torque data during this; determining (S3) robot commands from a stored time sequence, wherein the robot commands are basic elements of the control program for the respective robot manipulator without reference to the structural conditions of the first robot manipulator (1); and generating (S4) a control program for a second robot manipulator (2) based on the stored robot commands and based on the structural conditions of the second robot manipulator (2).
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The invention relates to a method for generating a control program for a second robotic manipulator based on experience data obtained during the execution of a predetermined application program by a first robotic manipulator, and a robotic system having a first control unit and a second control unit for executing the method. Summary of the Invention

[0002] The object of the present invention is to simplify the generation of control programs for performing tasks by a robotic manipulator.

[0003] The invention is derived from the features of the independent claim. Advantageous developments and refinements are the subject matter of the dependent claims.

[0004] A first aspect of the present invention relates to a method for generating a control program for a second robotic manipulator based on empirical data obtained during the execution of a predetermined application program by a first robotic manipulator, comprising the following steps:

[0005] - executing a predetermined application program by means of the first robot manipulator;

[0006] - during the execution of a predetermined application: determining a time series of trajectory data by means of a joint angle sensor of the first robotic manipulator and / or determining a time series of force torque data by means of a sensor unit of the first robotic manipulator for detecting forces and / or torques, and storing the determined time series in a memory unit, wherein the trajectory data comprises kinematic data related to a reference point of the first robotic manipulator or to the joint angles of the first robotic manipulator, and wherein the force torque data comprises forces and / or torques acting between the first robotic manipulator and an object from the surroundings;

[0007] - determining a robot command from the stored time sequence and storing the determined robot command in a memory unit, wherein the robot command is an essential element of a control program for the respective robot manipulator without reference to structural conditions of the first robot manipulator; and

[0008] - generating a control program for the second robotic manipulator based on the stored robotic commands and based on the structural conditions of the second robotic manipulator.

[0009] Preferably, the steps are also performed:

[0010] The control program for the second robotic manipulator is executed by the second robotic manipulator, in particular by a second control unit of the second robotic manipulator.

[0011] The construction of the first robot manipulator and the second robot manipulator does not necessarily have to be similar or identical, but can also have different technical solutions and structural methods. The first robot manipulator is in particular connected to such a (first) control unit, which is implemented for executing a first control program in order to execute a predetermined application. The first control program is optimized in particular for the first robot manipulator, that is, it takes into account the technical conditions and structural solutions of the first robot manipulator, so that the application can be completely executed by the first robot manipulator, wherein the first control program is also optimized in particular for the structural conditions of the first robot manipulator. Preferably, all steps of the method according to the first aspect of the invention are executed by the first control unit. Alternatively, preferably, the generation of the control program for the second robot manipulator is performed by a second control unit that is different from the first control unit.

[0012] In a first step of the method according to the first aspect of the invention, a predetermined application is executed by a first robotic manipulator. Possible applications include, in particular, moving an object from one location to another, gripping only objects, selecting an object from a large number of objects, gripping a selected object, processing the surface of a workpiece, or other tasks typical for robotic manipulators.

[0013] During the execution of a predetermined application by the first robotic manipulator, a time series of trajectory data is determined, in particular, by the first control unit. This is performed based on the sensor values ​​of the joint angle sensors of the first robotic manipulator. These joint angle sensors are particularly designed to detect and output the corresponding angle between two links of the first robotic manipulator that are connected to each other via a common joint. This is performed in particular in discrete time steps and repeatedly at a high frequency, so that a time series of discrete joint angle data of the first robotic manipulator is available. The pose of the first robotic manipulator is thus known at any time via the sum of all joint angles, thereby allowing the path curve of a reference point of the first robotic manipulator to be determined in a Cartesian coordinate system, in particular relative to a first fixed coordinate system.

[0014] Preferably, the reference point of the first robotic manipulator is imaginarily arranged at the distal end of the first robotic manipulator, particularly preferably at the end effector. The term trajectory also encompasses a path curve, i.e., purely geometric information about the movement of the reference point of the first robotic manipulator purely in terms of joint angles or (also) a Cartesian path. Optionally, the term trajectory also encompasses time information, so that each position of the geometric path curve is also assigned a time, and the knowledge of the geometric course of the path curve also allows the velocity and / or acceleration of the reference point during movement along this geometric path curve to be determined.

[0015] In addition to or as an alternative to the joint angle information, during the execution of a predetermined application by the first robotic manipulator, Cartesian information based on the joint angle information of a path curve or trajectory and, in particular, one or more forces and / or moments acting between the first robotic manipulator and objects from the robotic manipulator's surroundings are detected. The latter is performed, in particular, by means of sensor units for detecting forces and / or moments, preferably torque sensors in the joints or strain gauges on the robot structure, thereby recording a time series of force-related interactions between the first robotic manipulator and the surroundings.

[0016] Thus, kinematic data and / or information about forces / torques are available during the execution of a predetermined application by the first robot manipulator. These data are each stored in a time series so that the history during the execution of the application is known.

[0017] Robot commands are then formed from this information in the time series. Regardless of the structural conditions of the first robot manipulator, these robot commands reflect functional information about how a given application is generally executed and, based on this, how the given application is specifically executed by the first robot manipulator. Therefore, these robot commands do not include any transformations using the Jacobian matrix valid for the first robot manipulator or its (pseudo) inverse, that is, they do not take into account how the movement of an object from a first position to a second position is specifically carried out by controlling the actuators in conjunction with each other. Therefore, robot commands are abstract function blocks of the control program that, in principle, should be executed independently of the architecture of the currently used robot manipulator. Therefore, robot commands essentially correspond to the commands of the outermost loop of the controller of the corresponding robot manipulator when executing the control program.

[0018] Then, based on this abstract information, a specific control program for the second robotic manipulator is generated, wherein the complete control program for the second robotic manipulator takes into account the structural conditions of the second robotic manipulator, in particular how many joints the second robotic manipulator has, whether it is redundant or the only second robotic manipulator, what type of gripper or universal type of end effector is currently arranged on the second robotic manipulator, etc.

[0019] The present invention thus advantageously provides a control program for the second robotic manipulator based on empirical data acquired during the execution of a predetermined application by the first robotic manipulator. This control program already contains essential functional information in the form of robot commands. Consequently, no additional sensors are required for the second robotic manipulator and for the application to be executed by the second robotic manipulator and its control program, particularly for detecting objects in the second robotic manipulator's surroundings, and generally for adapting the control program for the second robotic manipulator to the current situation. Rather, the application is executed based on the provided robot commands, which contain information empirically determined during the execution of the application by the first robotic manipulator. Consequently, the generation of a control program for the second robotic manipulator is advantageously significantly accelerated and simplified, as the second robotic manipulator can utilize information from the previously executed application, regardless of whether the first robotic manipulator and the second robotic manipulator are identical in structure or differ in structure, configuration, or software.

[0020] According to an advantageous embodiment, the robot commands include at least one of the following categories:

[0021] a predetermined path curve of a reference point of the respective robot manipulator, from a predetermined starting point to a predetermined end point of said path curve;

[0022] - the speed of the reference point on the path curve;

[0023] - acceleration of the reference point on the path curve;

[0024] - forces and / or moments exerted by a reference point of the respective robotic manipulator on objects from the surroundings of the respective robotic manipulator;

[0025] - Rated torque of the rotary actuator of the corresponding robot manipulator.

[0026] According to another advantageous embodiment, at least two consecutive robot commands are determined from different categories, wherein a smooth transition is determined between the two consecutive robot commands of different categories. The smooth transition particularly allows the selected robot commands to be passed to one another in a smooth transition. This corresponds to intuitive human behavior, in which, for example, vision and touch are combined to perform tactile and visual coordinated actions. For example, impedance control and so-called "visual servoing" (light guide path) transitions are generated using a smooth, jump-free function curve as the weighting function.

[0027] According to another advantageous embodiment, the smooth transition is implemented by a continuous, time-dependent predefined function curve. This continuous function curve is particularly free of jumps and kinks and, in particular, has a strictly monotonically decreasing or increasing curve over the duration of the transition. Advantageously, this function curve provides a particularly smooth transition between the application of robot commands.

[0028] According to another advantageous embodiment, the robot commands are determined from the stored time series by nonlinear optimization. Nonlinear optimization uses, in particular, a cost function that reflects the difference between a hypothetical time series executed by the selected command and the time series actually executed. This cost function is then minimized by a nonlinear optimization method, in particular a gradient-based method, an evolutionary method, a genetic algorithm, a quadratic optimization method, or the like, thereby selecting, in particular, those robot commands that, when calculated in reverse, also result in a time series that corresponds to the actual time series. The most suitable robot commands are thus selected.

[0029] According to another advantageous embodiment, the robot command is determined from the stored time series using a predetermined artificial neural network, wherein the input variable of the artificial neural network is the stored time series, and the output variable of the artificial neural network is a robot command selected from a plurality of at least structurally predetermined robot commands, wherein the parameters of the robot command selected from the predetermined robot commands are adapted based on the stored time series. Advantages of artificial neural networks are their great flexibility and the wide variety of functions that can be mapped by them.

[0030] According to another advantageous embodiment, the temporal sequence of trajectory data is also determined using a camera unit. The camera unit is preferably located on the robot manipulator itself. Furthermore, the camera unit is preferably a stereo camera unit, so that the camera unit advantageously detects spatial information about the path curve and / or trajectory of the robot manipulator's reference points. The information from the camera unit is preferably combined with or supplemented by information from the joint angle sensors.

[0031] According to another advantageous embodiment, the camera unit is an external camera unit. The external camera unit is preferably arranged physically separate from the first robot manipulator on a frame or another support in the surroundings of the first robot manipulator. Advantageously, information from non-robot-specific sensors is thus also available, which can be optimally supplemented with the robot-specific sensors to form an overall more reliable data source.

[0032] According to another advantageous embodiment, the structural conditions of the first robotic manipulator and / or the second robotic manipulator include at least one of the following:

[0033] - the distances between the joints of the respective robot manipulators;

[0034] - the number of joints of the corresponding robot manipulator;

[0035] - the maximum applicable torque of the rotary actuator of the corresponding robot manipulator;

[0036] - Type and configuration of the end effector of the corresponding robotic manipulator;

[0037] a virtual stiffness of a controller of the respective robot manipulator, in particular the stiffness of a virtual spring in the controller, in particular an impedance controller;

[0038] - Material stiffness of the links and / or joints of the corresponding robot manipulator;

[0039] - the geometrically maximum possible workspace of the corresponding robot manipulator;

[0040] - time constants and / or bandwidths of actuators of the respective robotic manipulator;

[0041] - the safety level and / or current safety configuration and / or residual risk of the respective robot manipulator;

[0042] - the physical presence and / or configuration of the communication interface of the respective robotic manipulator;

[0043] - the number of robot arms of the corresponding robot manipulator;

[0044] The mass and / or inertia of the components of the respective robot manipulator, in particular the connecting rods.

[0045] Another aspect of the present invention relates to a robot system having a first control unit and a second control unit, which together are used to generate a control program for a second robot manipulator of the robot system based on experience data obtained during the execution of a predetermined application by a first robot manipulator of the robot system, wherein the first control unit for controlling the first robot manipulator is designed to execute the predetermined application and is designed to determine a time series of trajectory data by means of a joint angle sensor of the first robot manipulator and / or a time series of force torque data by means of a sensor unit of the first robot manipulator during the execution of the predetermined application, and to store the determined time series in a memory unit. wherein the trajectory data comprises kinematic data relating to a reference point of the first robotic manipulator or to joint angles of the first robotic manipulator, and the force torque data comprises forces and / or torques acting between the first robotic manipulator and an object from the surrounding environment, and wherein the first control unit is configured to determine robot commands from the stored time series and to store the determined robot commands in the memory unit, wherein the robot commands are basic elements of a control program for the respective robotic manipulator without reference to the structural conditions of the first robotic manipulator, and wherein the second control unit is configured to generate a control program for the second robotic manipulator based on the stored robot commands and based on the structural conditions of the second robotic manipulator.

[0046] The advantages and preferred developments of the proposed robot system result from an analogous and meaningful transfer of the above-described embodiments in connection with the proposed method.

[0047] Further advantages, features and details result from the following description, in which at least one embodiment is described in detail, with reference to the accompanying drawings, if necessary. Identical, similar and / or functionally identical parts are provided with the same reference numerals. BRIEF DESCRIPTION OF THE DRAWINGS

[0048] Figure 1 A method for generating a control program for a second robotic manipulator based on experience data obtained during execution of a predetermined application program by a first robotic manipulator according to an embodiment of the present invention is shown; and

[0049] Figure 2 A method for executing Figure 1 Method for robotic systems.

[0050] The illustrations in the figures are schematic and not drawn to scale. DETAILED DESCRIPTION

[0051] Figure 1A method for generating a control program for a second robotic manipulator 2 based on empirical data obtained during the execution of a predetermined application program by a first robotic manipulator 1 is shown. The following description of the method also relates to Figure 2 Therefore, for a better understanding, reference may be made to both figures, and in particular to the reference numerals mentioned below, which relate to both Figure 1 , and optionally also Figure 2 In a first step, a predetermined application (S1) is executed by the first robotic manipulator 1. This application involves removing a sharp object from a cylindrical box. To this end, a control program is provided for the first robotic manipulator 1, which is adapted to the structural conditions of the first robotic manipulator 1, in particular the number of joints, the geometry of the links, and the configuration of its gripper. During the execution of the application, in a further step, a time series of trajectory data (S2) is determined using the joint angle sensors 3 of the first robotic manipulator 1, and a time series of force torque data (S2) is determined using the sensor unit 5 of the first robotic manipulator 1. The joint angle sensors 3 are housed in the corresponding joints of the first robotic manipulator 1, along with the torque sensors of the sensor unit 5 for detecting forces and moments. These determined time series are stored in the memory unit 7. The trajectory data includes data about the path curve of the first robotic manipulator 1 relative to a reference point of the first robotic manipulator 1, wherein the joint angles are transformed into a Cartesian position curve of a reference point on the end effector of the first robotic manipulator 1 using a transformation. On the other hand, the force torque data includes the forces and torques acting between the first robot manipulator 1 and the sharp object. In addition, S3 robot commands are determined from the stored time series and the determined robot commands are stored in the memory unit 7, wherein the robot commands are the basic elements of the control program for the corresponding robot manipulator without reference to the structural conditions of the first robot manipulator 1. The composed robot commands include a predetermined path curve of the reference point of the first robot manipulator 1 from the box to the predetermined end point, the acceleration of the reference point on the path curve, and the forces and torques applied by the end effector to the sharp object at the reference point. These robot commands result in a functional sequence of the application in their composition, which functional sequence does not depend on the above-mentioned structural conditions of the first robot manipulator 1. The robot commands are determined by using an artificial neural network, that is, all time series are provided to the artificial neural network as input variables, and the robot commands are combined as output by executing the artificial neural network. Then, S4 a control program for the second robot manipulator 2 is generated based on the stored robot commands and based on the structural conditions of the second robot manipulator 2. Further explanation of this can be found in Figure 2 Found in the description.

[0052] Figure 2 A robotic system 10 is shown having a first control unit 11 and a second control unit 12 for generating a control program for a second robotic manipulator 2 of the robotic system 10 based on empirical data acquired during execution of a predetermined application by the first robotic manipulator 1 of the robotic system 10. Here, the robotic manipulator 1 is a conventional single-arm robotic manipulator without redundant degrees of freedom. The second robotic manipulator 2, on the other hand, is a dual-arm system with two robotic arms. Therefore, the two robotic manipulators 1 and 2 have different structural requirements. The first control unit 11 is disposed on the first robotic manipulator 1 and is configured to control the first robotic manipulator 1 to execute a predetermined application S1. During execution of the predetermined application, the first control unit 11 determines a time series of trajectory data using the joint angle sensor 3 of the first robotic manipulator 1 and a time series of force torque data using the sensor unit 5 of the first robotic manipulator 1, and stores the determined time series in a memory unit 7. Furthermore, the first control unit 11 determines robot commands from the stored time series and stores the determined robot commands in the memory unit 7, which is part of the first control unit 11. The second control unit 12 is arranged on the second robotic manipulator 2 and is used to generate a control program for the second robotic manipulator 2 based on stored robot commands and based on the structural conditions of the second robotic manipulator 2 .

[0053] Although the present invention has been illustrated and described in more detail by means of preferred embodiments, the present invention is not limited to the disclosed embodiments and those skilled in the art may deduce other variations therefrom without departing from the scope of protection of the present invention. It is therefore apparent that there are a variety of possible variations. It is also apparent that the embodiments cited by way of example only represent examples and should not in any way be understood as limiting, for example, the scope of protection of the present invention, its possible applications or construction. On the contrary, the foregoing description and the description of the accompanying drawings enable those skilled in the art to specifically implement the exemplary embodiments, wherein, having understood the disclosed inventive concepts, those skilled in the art may, without departing from the scope of protection defined by the claims and their legal equivalents, such as further explanations in the specification, make various changes, for example to the function or arrangement of the various elements mentioned in the exemplary embodiments.

[0054] Description of reference numerals:

[0055] 1. First Robot Manipulator

[0056] 2. Second Robot Manipulator

[0057] 3 joint angle sensors

[0058] 5 sensor units

[0059] 7 memory cells

[0060] 10 Robotic System

[0061] 11 First control unit

[0062] 12 Second control unit

[0063] S1 Execution

[0064] S2 OK

[0065] S3 OK

[0066] S4 generation

Claims

1. A method for generating a control program for a second robotic manipulator (2) based on empirical data obtained during the execution of a predetermined application program by a first robotic manipulator (1), comprising the following steps: - executing (S1) the predetermined application program by the first robot manipulator (1), wherein: The first robotic manipulator (1) is connected to a control unit, the control unit being configured to execute a first control program to execute the predetermined application program via the first robotic manipulator (1); - during the execution of the predetermined application: determining (S2) a time series of trajectory data by means of a joint angle sensor (3) of the first robot manipulator (1) and determining (S2) a time series of force torque data by means of a sensor unit (5) for detecting forces and / or torques of the first robot manipulator (1), and storing the determined time series in a memory unit (7), wherein the trajectory data comprises kinematic data related to a reference point of the first robot manipulator (1) or to a joint angle of the first robot manipulator (1), and wherein the force torque data comprises forces and / or torques acting between the first robot manipulator (1) and an object from the surrounding environment; - determining (S3) robot commands from the stored time sequence and storing the determined robot commands in the memory unit (7), wherein the robot commands are basic elements of a control program for the respective robot manipulator without reference to the structural conditions of the first robot manipulator (1), without regard to how an object is actually moved from a first position to a second position by controlling the mutually dependent actuators of the first robot manipulator (1), and wherein the robot commands, when composed, result in a functional sequence of an application program, the execution of which is carried out based on the provided robot commands, the functional sequence being independent of the structural conditions of the first robot manipulator; and - generating (S4) a control program for the second robot manipulator (2) based on the stored robot commands and based on the structural conditions of the second robot manipulator (2), wherein the first robot manipulator and the second robot manipulator have different structural types.

2. The method according to claim 1, wherein The robot commands include at least one of the following categories: - a predetermined path curve of a reference point of the respective robot manipulator, from a predetermined starting point to a predetermined end point of the path curve; - the speed of the reference point on the path curve; - the acceleration of the reference point on the path curve; - forces and / or moments applied by said reference point of said respective robotic manipulator on objects from the surroundings of said respective robotic manipulator; - The rated torque of the rotary actuator of the respective robot manipulator.

3. The method according to claim 2, wherein: At least two consecutive robot commands are determined from different categories, wherein a smooth transition between the two consecutive robot commands of different categories is determined.

4. The method according to claim 3, wherein: The smooth transition is effected by a predefined function curve which is continuous and time-dependent in terms of the transition time.

5. A method according to any one of the preceding claims, wherein Determination of the robot commands from the stored time series is performed by nonlinear optimization.

6. A method according to any one of the preceding claims, wherein The robot commands are determined from the stored time series using a predetermined artificial neural network, wherein an input variable of the artificial neural network is the stored time series and an output variable of the artificial neural network is a robot command selected from a large number of predetermined robot commands, wherein parameters of the robot commands selected from the predetermined robot commands are adapted based on the stored time series.

7. A method according to any one of the preceding claims, wherein The temporal sequence of the trajectory data is additionally determined by a camera unit (7).

8. The method according to claim 7, wherein: The camera unit (7) is an external camera unit.

9. A method according to any one of the preceding claims, wherein The structural conditions of the first robot manipulator (1) and / or the second robot manipulator (2) include at least one of the following: - the distances between the joints of the respective robot manipulators; - the number of joints of the respective robot manipulator; - the maximum applyable torque of the rotary actuator of the respective robot manipulator; - the type and configuration of the end effector of the respective robotic manipulator; - the virtual stiffness of the actuator of the respective robot manipulator; - Material stiffness of the links and / or joints of the respective robot manipulator; - the geometrically maximum possible workspace of the respective robot manipulator; - bandwidth of the actuators of the respective robotic manipulator; - the safety level and / or current safety configuration and / or residual risk of the respective robot manipulator; - the physical presence and / or configuration of the communication interface of said respective robotic manipulator; - the number of robotic arms of said respective robotic manipulator; - the mass and / or inertia of components of the respective robot manipulator.

10. A robot system (10) having a first control unit (11) and a second control unit (12) for generating a control program for a second robot manipulator (2) of the robot system (10) based on experience data obtained during the execution of a predetermined application program by a first robot manipulator (1) of the robot system (10), wherein: The first control unit (11) for controlling the first robot manipulator (1) is implemented to execute (S1) a first control program to execute the predetermined application by the first robot manipulator (1), and is implemented to determine a time series of trajectory data with the help of the joint angle sensor (3) of the first robot manipulator (1) and a time series of force torque data with the help of the sensor unit (5) of the first robot manipulator (1) during the execution of the predetermined application, and store the determined time series in a memory unit (7), wherein the trajectory data includes kinematic data related to a reference point of the first robot manipulator (1) or related to the joint angle of the first robot manipulator (1), and the force torque data includes forces and / or torques acting between the first robot manipulator (1) and an object from the surrounding environment, and wherein the first control unit (11) ) is implemented for determining robot commands from the stored time sequence and storing the determined robot commands in the memory unit (7), wherein the robot commands are basic elements of a control program for the corresponding robot manipulator without reference to the structural conditions of the first robot manipulator (1), without considering how an object is actually moved from a first position to a second position by controlling the mutually dependent actuators of the first robot manipulator (1), wherein the robot commands, when composed, result in a functional sequence of an application, the execution of which is carried out based on the provided robot commands, the functional sequence being independent of the structural conditions of the first robot manipulator, and wherein the second control unit (12) is implemented for generating a control program for the second robot manipulator (2) based on the stored robot commands and based on the structural conditions of the second robot manipulator (2).

Citation Information

Patent Citations

  • Offline programming demonstration device and method based on demonstration robot

    CN104552300A

  • Deep reinforcement learning for robotic manipulation

    CN109906132A

  • Article gripping device and control device for article gripping device

    WO2019207979A1