System and method for controlling robot using constrained dynamic movement primitives

By introducing mandatory functions and weight correction in the DMP framework, the problem that the prior art is difficult to incorporate constraints into the robot when there are constraints is solved, and efficient and effective constraint control is achieved in different environments.

CN119855686APending Publication Date: 2025-04-18MITSUBISHI ELECTRIC CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380064690.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-09-14
Filing Date
2023-06-16
Publication Date
2025-04-18

AI Technical Summary

Technical Problem

Existing DMP-based technologies are difficult to effectively incorporate constraints into robots when there are constraints, resulting in possible collisions or exceeding the limits of robot joints.

Method used

By introducing a coercive function in the DMP framework that represents the force acting on the dynamic system during demonstration and treating the constraints as external factors of the coercive function independent of the environment, the minimum correction of the predefined weights of the basis function forming the coercive function is found so that the new coercive function satisfies the constraints in the new environment.

Benefits of technology

The efficient and efficient use of learning from demonstrations in different environments is achieved to incorporate constraints into robots, avoid collisions and joint limits beyond problems, simplify the adaptation process and allow different types of constraints to be considered.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119855686A_ABST
    Figure CN119855686A_ABST
Patent Text Reader

Abstract

A controller for controlling operation of a robot to perform a task is provided. The controller includes a memory configured to store a set of dynamic motion primitives (DMPs) associated with the task. The DMP set comprises at least two dynamic system sets: a function representing point attractor dynamics; and a mandatory function corresponding to a learned presentation of the task. The controller includes a processor configured to transform the set of DMPs into a set of constrained DMPs (CDMPs) by determining a perturbation function associated with the forcing function. The perturbation function is associated with a set of operational constraints. The processor is further configured to solve a non-linear optimization problem for the set of CDMPs based on the set of operational constraints, and to generate a control input for controlling the robot to perform the task based on the solution.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates generally to robotic manipulation and locomotion, and more particularly to methods and systems for constrained robotic manipulation and locomotion. Background Art

[0002] Various types of robotic devices have been developed to perform various operations such as material handling, transportation, welding, assembly, etc. Learning from demonstration, also known as robotic programming by demonstration, is a common technique to enable robots to perform new tasks autonomously. These techniques assume that a suitable robotic controller can be derived by observing the performance of humans or human-controlled robots performing the required tasks. Dynamic Mobile Primitives (DMP) based techniques are widely used to learn skills that can be demonstrated to a robot class by a skilled human or controller. DMP is a nonlinear dynamic system representation that allows complex trajectories to be learned from demonstrations by decoupling nonlinear forcing functions from nominal attractor behaviors. DMP based techniques offer broad capabilities and simple formulation. In addition, DMP can be reparameterized by its start and goal positions.

[0003] However, it can be difficult to directly control the execution trajectory between the start and goal positions (poses). Therefore, DMP-based techniques may lead to undesirable behaviors in the presence of constraints. If care is not taken, a new start or goal position may cause the robot to collide with itself or the environment (i.e., obstacles), or exceed the limits of its joints. When a collision is likely, such as due to a change in the environment in which the task is performed from that in which the task was demonstrated, conventional DMP-based techniques tend to correct the trajectory estimated based on the skills learned from the demonstration. However, such corrections are computationally expensive and impractical, and may even be impossible when the generated trajectory severely violates the constraints.

[0004] Therefore, there is a need for a system and method for incorporating constraints into a robot using learning from demonstrations during tasks such as trajectory generation in an efficient and effective manner. Summary of the invention

[0005] It is an object of some embodiments to provide a system and method for constrained control of a robot. Specifically, it is an object of some embodiments to provide a system and method for constrained control of a robotic manipulator using skills learned from demonstrations. Additionally or alternatively, it is an object of some embodiments to incorporate constraints during robot performance of a task, such as during trajectory generation of a robot using learning from demonstrations.

[0006] Additionally or alternatively, it is an object of some embodiments to provide systems and methods that can provide constrained control of a robot, particularly a robotic manipulator, in the presence of different types of constraints, such as avoiding collisions with the environment, joint limits, self-collisions.

[0007] Some embodiments are based on the understanding that the skills demonstrated to the robot are performed offline in an environment that may be different from the environment during actual control of the robot. Furthermore, in the DMP framework, the learned skills are captured using forcing functions that represent the forces acting on the dynamic system during the demonstration, which allow the dynamic system to follow the demonstrated trajectory. The forcing function is a mathematical representation of the skills demonstrated to the robot in the demonstrated trajectory. While these forces may be applied in the environment, after the forcing function is learned, the forcing function is independent of the environment. To this end, a natural way to think about constraints is to consider them as external factors to the forcing function that are independent of the environment. Furthermore, it is impractical to relearn the forcing function for different environments manipulated by the robot.

[0008] However, some embodiments are based on the recognition that the forcing function can be adapted to different environments without having to relearn it. This adaptation allows the constraints to be an internal part of the skill, rather than having the correction performed outside the skill. To this end, some embodiments aim to find the minimum correction to the predefined weights of the basis functions that form the forcing function, so that the new forcing function satisfies the constraints in the new environment.

[0009] Such a formulation is different from learning new weights because while the weights define the skill, the corrections to the weights define the environment and / or the adaptation of the skill to the new environment. Thus, the unknown corrections depend on the environment but are independent of the skill itself, which simplifies the adaptation and allows to consider different types of constraints. Furthermore, finding the corrections incorporates the constraints inside the forcing function, making the constraints intrinsic to the skill without the need for a relearning process. In this way, different traditional approaches for DMP-based control can be reused for new environments.

[0010] For example, corrections to the skill used to adapt the skill to the environment can be expressed as additional parameters in the original formula of the DMP. These additional parameters can be optimized using an optimization problem that can be solved using an off-the-shelf solver.

[0011] To this end, additional parameters in the original formulation of the DMP define corrections to the weights of the basis functions that can be estimated using optimization methods so that the DMP can then satisfy certain constraints. This results in the use of corrections in the weights as perturbations in the original forcing functions to transform the DMP into a constrained DMP, which can be represented by a nonlinear optimization problem. The nonlinear optimization problem is solved to identify these perturbations and then the control inputs for the robot to perform the task within the constraints.

[0012] To this end, in one embodiment, a method of controlling a robot to perform a task is disclosed. The method is performed by a processor coupled to a memory, wherein the memory stores a set of dynamic motion primitives (DMPs) associated with the task, wherein the set of DMPs includes at least two sets of dynamic systems, the at least two sets of dynamic systems including at least: a function representing point attractor dynamics associated with the task and a forcing function associated with a learned demonstration of the task. The processor includes stored instructions that, when executed by the processor, implement the steps of the method, the steps including obtaining the set of DMPs associated with the task. Then, the obtained set of DMPs is transformed into a set of constrained DMPs (CDMPs) by defining a perturbation function associated with the learned forcing function, such that the perturbation function is associated with a set of operational constraints that need to be satisfied to perform the task. In addition, a nonlinear optimization problem for the set of CDMPs is solved based on the operational constraints. In addition, a control input for controlling the robot to perform the task is generated based on the solution of the nonlinear optimization problem for the set of CDMPs.

[0013] According to another embodiment, a controller for controlling the operation of a robot to perform a task is provided. The controller includes a memory configured to store a set of dynamic motion primitives (DMPs) associated with the task, wherein the set of DMPs includes at least two sets of dynamic systems. The at least two sets of dynamic systems include at least: a function representing the dynamics of a point attractor associated with the task; and a forcing function associated with a learned demonstration of the task. The controller also includes a processor configured to transform the set of DMPs into a set of constrained DMPs (CDMPs) by determining a perturbation function associated with the learned forcing function, such that the perturbation function is associated with a set of operational constraints that need to be satisfied to perform the task; solve a nonlinear optimization problem of the set of CDMPs based on the set of operational constraints; and generate a control input for controlling the robot to perform the task based on the solution of the nonlinear optimization problem of the set of CDMPs. The controller also includes an output interface configured to command the robot to execute the generated control input to perform the task.

[0014] According to another embodiment, a non-transitory computer-readable medium storing computer-executable instructions for a robot to perform a task is disclosed. The computer-executable instructions are configured to obtain a set of dynamic motion primitives (DMPs) associated with the task, wherein the obtained set of DMPs includes at least two sets of dynamic systems. The at least two sets of dynamic systems include at least: a function representing the dynamics of a point attractor associated with the task; and a forcing function associated with a learned demonstration of the task. The computer-executable instructions may also be configured to transform the set of DMPs into a set of constrained DMPs (CDMPs) by defining a perturbation function associated with the learned forcing function, such that the perturbation function is associated with a set of operational constraints that need to be satisfied to perform the task. The computer-executable instructions may also be configured to solve a nonlinear optimization problem of the set of CDMPs based on the set of operational constraints. In addition, the computer-executable instructions may also be configured to generate a control input for controlling the robot to perform the task based on a solution to the nonlinear optimization problem of the set of CDMPs.

[0015] It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.

[0016] The presently disclosed embodiments will be further explained with reference to the accompanying drawings. The drawings shown are not necessarily drawn to scale, with emphasis instead generally being placed upon illustrating the principles of the presently disclosed embodiments. BRIEF DESCRIPTION OF THE DRAWINGS

[0017] [ Figure 1A ]

[0018] Figure 1A A block diagram of a system including a controller for controlling the operation of a robot to perform a task is shown according to an embodiment of the present disclosure.

[0019] [ Figure 1B ]

[0020] Figure 1B The embodiment according to the present disclosure is shown Figure 1A Block diagram of the controller.

[0021] [ Figure 2A ]

[0022] Figure 2A The embodiment according to the present disclosure is shown. Figure 1B Schematic diagram of the DMP collection used by the controller.

[0023] [ Figure 2B ]

[0024] Figure 2BThe embodiment of the present disclosure corresponds to Figure 2A The DMP collection represents the mathematical formula of the dynamic system.

[0025] [ Figure 2C ]

[0026] Figure 2C The embodiment of the present disclosure corresponds to Figure 2A The DMP collection represents the mathematical formula of the forcing function.

[0027] [ Figure 2D ]

[0028] Figure 2D The embodiment of the present disclosure corresponds to Figure 2A The DMP set represents the mathematical formula of the basis functions.

[0029] [ Figure 3A ]

[0030] Figure 3A A block diagram illustrating transformation of a set of DMPs into a set of constrained DMPs (CDMPs) according to an embodiment of the present disclosure is shown.

[0031] [ Figure 3B ]

[0032] Figure 3B A block diagram illustrating the transformation of a set of DMPs into a set of constrained DMPs (CDMPs) using a perturbation function in accordance with an embodiment of the present disclosure is shown.

[0033] [ Figure 3C ]

[0034] Figure 3C The embodiment according to the present disclosure is shown Figure 3B Mathematical representation of the barrier function used in the perturbation function of .

[0035] [ Figure 3D ]

[0036] Figure 3D A mathematical formulation for a nonlinear optimization problem that is solved to determine the value of a barrier function is shown in accordance with an embodiment of the present disclosure.

[0037] [ Figure 4A ]

[0038] Figure 4A A flow chart of a method executed by a controller for a robot to perform a task according to an embodiment of the present disclosure is shown.

[0039] [ Figure 4B ]

[0040] Figure 4B A flow chart of another method performed by a controller for a robot to perform a task according to an embodiment of the present disclosure is shown.

[0041] [ Figure 5 ]

[0042] Figure 5 is a block diagram of an exemplary computer system for implementing various embodiments.

[0043] [ Fig. 6A ]

[0044] Fig. 6A The embodiment of the present disclosure is shown based on the first set of conditions. Figure 1A Schematic diagram of a use case of a controller for a robotic system.

[0045] [ Figure 6B ]

[0046] Figure 6B The embodiment of the present disclosure shows that the Figure 1A Schematic diagram of a use case of a controller for a robotic system. DETAILED DESCRIPTION

[0047] In the following description, for the purpose of explanation, many specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it is apparent to those skilled in the art that the present disclosure can be practiced without these specific details. In other cases, devices and methods are shown only in block diagram form to avoid obscuring the present disclosure.

[0048] As used in this specification and claims, the terms "for example," "for example," and "such as," and the verbs "comprise," "have," "include," and other verb forms thereof, when used in conjunction with a list of one or more components or other items, are each interpreted as open-ended, meaning that the list should not be viewed as excluding other additional components or items. The term "based on" means based, at least in part, on. In addition, it should be understood that the words and terminology employed herein are for descriptive purposes and should not be considered limiting. Any headings used in this specification are for convenience only and have no legal or limiting effect.

[0049] Various embodiments disclosed herein provide a transformation of DMP-based techniques to CDMP-based techniques for enforcing constraints in tasks performed by a robot. DMP-based techniques are based on learned skills captured using a forcing function that represents the forces acting on a dynamic system representing the task during a demonstration of the task by a skilled user. This allows the robot to follow the demonstrated task. The forcing function is a mathematical representation of the skills demonstrated to the robot in the demonstrated task. Although these forces can be applied in the environment after the forcing function is learned, the forcing function is independent of the environment. In other words, the constraints are external to the forcing function, which is independent of the environment. It is impractical to relearn the forcing function for different environments of the robot.

[0050] Some embodiments are based on the recognition that a forcing function can be adapted to different environments without having to relearn it. This adaptation allows the constraints to be an internal part of the skill, rather than having the correction performed outside the skill. To this end, the goal of the present disclosure is to find the minimum correction to the predefined weights of the basis functions that form the forcing function, so that the new forcing function satisfies the constraints in the new environment.

[0051] Some embodiments are also based on the recognition that the above methods are different from learning new weights because, while the weights define the skill, the corrections to the weights define the environment and / or the adaptation of the skill to the new environment. Therefore, the unknown corrections depend on the environment, but are independent of the skill itself. This simplifies the adaptation and allows different types of constraints to be considered. In addition, finding the corrections incorporates the constraints inside the forcing function, so that the constraints are inherent to the skill without the need for a relearning process. In this way, different traditional methods for control based on DMP can be reused for new environments. For example, corrections to the skill in order to adapt the skill to the (new) environment can be expressed as additional parameters defined by perturbations to the original formula of the forcing function in the original DMP formula. These additional parameters can be optimized using an optimization problem, which can be solved using any known solver. The resulting formula is a constrained DMP or CDMP, which provides constrained control of a robot performing a task within an environment.

[0052] Figure 1A A block diagram of a system 100 is shown, the system including a controller 101 for controlling the operation of a robot 102 to perform a task, in accordance with an embodiment of the present disclosure.

[0053] The robot 102 may include a robot arm or a robot manipulator such as a desired task to perform. The task may include, for example, lifting an object, moving an object, placing an object in a desired location, shifting an object from one location to another, etc. To this end, the robot 102 may need to follow a motion trajectory in order to perform the desired task. For example, the robot 102 may be a food placement robot configured to place different foods in designated locations in a box or delivery carton.

[0054] In another embodiment, the robot 102 is an assembly line robot used to lift and move objects within an industrial or manufacturing cell, such as between different machines, for transporting objects, removing defective manufacturing cells, etc.

[0055] Another embodiment of the task is that the end effector of the robot 102 moves from an initial position in 3D space to another position in 3D space; another embodiment of the task is opening a gripper end effector, reaching a position in 3D space, closing the gripper to grab an object, and moving to a final position in 3D space.

[0056] Typically, a task has a starting condition and an ending condition, referred to as a task objective. Once the task objective is obtained, the task is considered complete. Tasks can be divided into subtasks. For example, if the task is for the robot 102 to move to a 3D location in Cartesian space and then pick up an object, the task can be decomposed into subtasks: (1) move to the 3D location; and (2) pick up the object. It should be understood that the program can decompose more complex tasks into subtasks. If the task is decomposed into subtasks, a task description can be provided for each subtask. In one embodiment, the task description can be provided by a human operator. In another embodiment, the program is executed to obtain the task description. The task description can also contain constraints for the robot 102. An example of such a constraint is that the robot 102 cannot move faster than a certain speed specified by the human operator. Another example of a constraint is that the robot 102 is prohibited from entering a portion of the 3D Cartesian workspace specified by the human operator. The goal of the robot 102 is to complete the task specified in the task description as quickly as possible given any constraints in the task description.

[0057] The robot 102 may include one or more sensors that may be configured to obtain sensor data associated with one or more obstacles or objects present in the environment of the robot 102 or movements performed by the robot 102 itself. For example, the one or more sensors may include a visual sensor, i.e., a camera. In some embodiments, the robot 102 may be communicatively coupled to the one or more sensors via a communication network.

[0058] In addition, the robot 102 is configured to receive one or more control inputs generated by the controller 101. The control inputs are configured to cause the robot 102 to perform a desired task. To this end, the control inputs may be received by one or more actuators of the robot 102, which further generate signals for controlling different parts of the robot (such as a robot arm of the robot 102) to move the robot 102 along a desired motion trajectory to perform the task. The robot 102 receives different control inputs for different tasks from the controller 101 configured to generate these different control inputs. The controller 101 controls the movement of the robot 102 to complete the task by sending commands to a physical robotic system (such as the robot 102). In another embodiment, the controller 101 is incorporated into the robot 102.

[0059] Figure 1B A block diagram of a controller 101 for controlling the operation of a robot 102 to perform a task is shown. The controller 101 includes a memory 103, a processor 105, and an output interface 106. In addition, the controller 101 may also include an input interface and other components required for the controller 101 to perform the operations included in the present description without departing from the scope of the present disclosure.

[0060] The memory 103 is configured to store computer executable instructions that can be executed by the processor 105. The processor 105 can be a single core processor, a multi-core processor, a computing cluster, or any number of other configurations. The memory 103 can include a random access memory (RAM), a read-only memory (ROM), a flash memory, or any other suitable memory system. The processor 105 is connected to one or more input and output devices via a bus.

[0061] The memory 103 is also configured to store a set of dynamic movement primitives (DMPs) 104 associated with the task. To this end, the memory 103 can be configured to store DMPs 104 representing the original task performed by the robot 102. For example, the original task may include the movement of the end effector of the robot 102 along the original trajectory. These DMPs 104 can be obtained during the learning phase of the robot 102, when the robot 102 learns various parameters associated with the task through demonstrations performed by human operators. As will be understood by those skilled in the art, DMP-based techniques are widely used for learning skills that can be demonstrated to the robot by a technician or controller. Therefore, using the technique of learning from demonstration, the robot 102 learns the characteristics of the original demonstration. These characteristics include, for example, how the end effector of the robot moves during the task demonstration.

[0062] DMP 104 is a nonlinear dynamic system formulation that can learn complex tasks (such as trajectories) from demonstrations by decoupling nonlinear forcing functions from nominal attractor behaviors. In other words, DMP 104 is a method for task control and planning. As such, DMP 104 is a mathematical formalization of proposed complex subtasks, such as movement in the case of trajectories (composed of a set of "building blocks" of elementary actions that are executed sequentially and / or in parallel). As will be further appreciated, DMP 104 differs from previously proposed building blocks because DMP 104 is a nonlinear dynamic system.

[0063] For example, in the case of trajectory planning, the DMP 104 can be understood as a combination of two systems - a hypothetical system that plans the trajectory and a real system that actually executes the planned trajectory. The DMP 104 may include their own dynamic set, and when the DMP is set, control signals may be obtained for the robot 102 to follow. The control signals form the control inputs generated by the controller 101 for the robot 102 to perform the desired task. For example, the DMP control signals for the path (i.e., trajectory) followed by the end effector (also called the robot manipulator) of the robot 102 may include a set of forces that need to be applied to the end effector to guide the path. The robot 102 can apply these forces by converting them into joint torques.

[0064] For the task of trajectory planning, the trajectory can be expressed as a function y d (t), t belongs to the set [0, T]. The trajectory can include multiple passing points (poses and postures) of the end effector in Cartesian space. Once one or more trajectories y(t) are recorded for a fixed pose, the DMP learning algorithm can learn a DMP for each component of y(t). To remove explicit time dependencies, the DMP 104 uses a canonical system to track the progress of the task.

[0065] Thus, the DMP 104 has the form of two sets of coupled parameterized ordinary differential equations (ODEs) that represent the task. For example, the DMP 104 can generate a trajectory that takes a system (such as the robot 102) from a starting pose to a target pose. The DMP 104 can easily adjust the trajectory based on new starting and target states, essentially constituting a closed-loop controller. Furthermore, the DMP 104 can be learned from a limited number of training examples, including even a single training example. Thus, the original trajectory can be modified in response to changes in the starting pose and the target pose. The formulation of the DMP 104 will be described in detail in the following sections. Figure 2A Further explanation in.

[0066] Figure 2A The embodiment according to the present disclosure is shown. Figure 1BSchematic diagram of a DMP 104 set used by a controller 101. The DMP 104 set includes at least two sets of dynamic systems, a first dynamic system 107 and a second dynamic system 108. The second dynamic system 108 includes a function representing point attractor dynamics 109 associated with a task and a forcing function 110 associated with a learned demonstration of the task.

[0067] For example, when the task follows the motion trajectory of the robot 102 along the desired path, the two dynamic systems are represented as follows: The first dynamic system 107:

[0068]

[0069] In addition, the second dynamic system 108 Figure 2B Shown in.

[0070] Figure 2B A second dynamic system 108 is shown given by:

[0071]

[0072] Among them, y, Denotes different demonstration trajectories for learning a DMP (such as DMP 104). Point attractor dynamics 109 are given. It will be appreciated by those skilled in the art that point attractor dynamics 109 represent a set of states that the second dynamic system 108 tends to evolve toward for various starting conditions of the second dynamic system 108. System values ​​that are sufficiently close to the attractor values ​​remain close even if slightly disturbed. To this end, the function of point attractor dynamics 109 includes parameters associated with the starting spatial pose of the robot 102 and the target spatial pose of the robot 102.

[0073] For example, the DMP 104 set is associated with a point attractor dynamics 109 parameterized according to a starting space pose and a goal space pose of the robot 102, and the forcing function 110 includes one or more weights corresponding to a basis function associated with an original trajectory of the robot 102. The original trajectory can be configured with a plurality of original space points between the starting space pose and the ending space pose. It should be noted that in response to one or more demonstrations, one or more predefined weights can be configured in a first configuration.

[0074] In addition, the forcing function 110 is composed of Figure 2C The term f(x,g) shown in represents .

[0075] Figure 2C It is shown that the forcing function 110 can be expressed as:

[0076]

[0077] The forcing function 110 includes one or more weights 111, w corresponding to a set of basis functions 112. i , ψ associated with the task i, , such that the one or more weights 111 are adjustable parameters associated with the learned demonstration of the task.

[0078] Therefore, the forcing function 110 includes the adjustable parameter w i . The weights 111 of the weighted combination are learned based on demonstrations of the task. In addition, one or more weights 111 are learned by solving a local weighted regression to learn one or more weights 111 of the basis functions 112. In an embodiment of a trajectory generation task for the robot 102, the forcing function 110, f(x,y) is learned from the demonstrated trajectories of the task. By learning f(x,y) from the demonstrations, the characteristics of the original demonstrations (e.g., how the robot end effector moves during the task) are learned. For example, during the learning phase, these are learned by solving a local weighted regression to learn the weights of the basis functions 112.

[0079] In particular, the forcing function 110 may include a weighted combination of basis functions 112. For example, the basis function 112 may be Figure 2D The radial basis function shown in .

[0080] Figure 2D The mathematical formula corresponding to the basis function 112 represented by the set of DMPs 104 is shown. The basis function 112 is given as:

[0081] ψ i (s) = exp(-h i (xc i )^2) (Equation 4)

[0082] Among them, h i and c i denote the width and center of the Gaussian basis function, respectively. When DMP 104 is associated with the task of trajectory generation, basis function 112 covers the entire duration of the trajectory. In addition, parameter w of force function 110 is iIt can be obtained by performing a least squares regression on the trajectory y(t). By applying the DMP learning algorithm, a DMP or a set of DMPs can be determined. For a given new target posture gd, the DMP can generate a new desired trajectory yew(t) by integrating the ordinary differential equation (ODE) of the DMP in time from the starting position forward without any additional demonstration or programming. Therefore, the DMP uses point attractor dynamics parameterized by its starting and target positions and modified by force terms including a forcing function learned through demonstration. Here, the forcing function represents the skill demonstrated by the operator. The transformation of the skill to the actual trajectory of the starting posture and ending posture of the connection point actuator can be determined by solving and integrating the ordinary differential equations for the specific starting posture and ending posture.

[0083] Return to reference Figure 1B , the controller 101 also includes a processor 105 configured to execute one or more computer executable instructions. The one or more computer executable instructions cause the processor 105 to perform one or more operations. To this end, as a result of the execution of the one or more operations, the processor 105 is configured to transform the set of DMPs 104 into a constrained set of DMPs (CDMPs).

[0084] The present disclosure provides a constrained DMP (CDMP) that includes additional functions that represent perturbations to the original forcing function 110 so that the learned DMP 104 can satisfy new operational constraints. It should be noted that the operational constraints may depend on the environment in which the robot 102 is performing the task. Thus, different environments may have different constraints, and thus the function may depend only on the constraints that need to be satisfied, which is done during operation of the robot 102 in the new environment.

[0085] Figure 3A A block diagram illustrating the transformation 113 of the set of DMPs 104 into a set of constrained DMPs (CDMPs) 114 in accordance with an embodiment of the present disclosure is shown.

[0086] The transformation 113 is performed by defining a perturbation to the original learned forcing function 110 such that the perturbation is associated with a set of operational constraints 115 that are related to the task to be performed by the robot 102. The set of operational constraints 115 may be defined by the environment in which the robot 102 is operating. More specifically, the perturbation defines a set of additional parameters that represent the operational constraints 115 in the learned forcing function 110. This set of additional parameters represents new task constraints. To this end, successful execution of the task is determined based on satisfying the constraints included in the set of operational constraints 115.

[0087] For example, the set of operational constraints 115 may include collision avoidance constraints. Collision avoidance constraints may include conditions for ensuring that the robot 102 should not collide with obstacles that may be present in the robot's 102 environment.

[0088] In another embodiment, the set of operational constraints may include a self-collision avoidance constraint. A self-collision avoidance constraint may include a condition for ensuring that the robot 102 does not collide with itself.

[0089] In yet another embodiment, the set of operational constraints 115 may include constraints on the joint limits of the end effector of the robot 102. For example, consider the task of re-parameterizing a learned DMP in a new environment based on a new goal and starting state. However, the new trajectory for this task may not be feasible to run on the robot 102 because some joint rotations may not be kinematically feasible. Such constraints may be explicitly considered in the formulation of the CDMP 114 so that a feasible solution that satisfies the joint limits can be found.

[0090] The set of operational constraints 115 is introduced in the form of a perturbation term added to the learned forcing function 110. As a result of the transformation 113, the original set of DMPs 104 is transformed into a set of CDMPs, such as Figure 3B As shown in .

[0091] Figure 3B 1 is a block diagram illustrating the transformation 113 of a set of DMPs 104 into a set of constrained DMPs (CDMPs) 114 using a perturbation function 116, g(x), in accordance with an embodiment of the present disclosure. Figure 3B As shown in , the perturbation function 116 is added as an additional set of parameters, representing the set of operating constraints 115 in the learned forcing function 110, to define the perturbation function 116. As a result of adding the perturbation function 116, the transformed DMP or CDMP 114 is represented as:

[0092]

[0093] Wherein, in equation (5), g(x) represents the perturbation 116 to the learned forcing function 110.

[0094] In addition, the perturbation function 116 includes a new task constraint represented by an additional set of parameters as an at least once differentiable barrier function, such as Figure 3C as shown in .

[0095] Figure 3C shows a barrier function 117 used in the perturbation function 116 according to an embodiment of the present disclosure, Mathematical representation of . To identify the value of the barrier function 117, a nonlinear optimization problem for the set of CDMPs 114 is formulated using the set of operating constraints 115. Thus, the forcing function 110 with an additional set of parameters in the perturbation 116 term is represented as:

[0096]

[0097] Among them, the barrier function is 117, represents the set of additional parameters to be found via optimization. In other words, in Equation 7, the corrected forcing function is expressed as:

[0098]

[0099] in, represents the correction, which can be determined by solving a nonlinear optimization problem such as Figure 3D shown.

[0100] Figure 3D The mathematical formulation of the nonlinear optimization problem 118 is shown, which is solved to determine the barrier function 117, The value of .

[0101] Nonlinear optimization problems 118 include:

[0102]

[0103] Make

[0104]

[0105] Then, the solution of the nonlinear optimization problem 118 based on the set of CDMPs of the set of operational constraints 115 is used to identify a set of feasible values ​​for the set of additional parameters for the new task to be performed by the robot 102, and the obstacle function 117 now represents the constraints of the new task. The set of feasible values ​​corresponds to those values ​​of the set of additional parameters that satisfy the constraints associated with the task to be performed (such as the new task constraints mentioned here) under a given set of environmental conditions. Therefore, the set of feasible values ​​includes the set of all possible nonlinear points 118 that satisfy the problem (which may include the problem) and the constraints. Therefore, the set of feasible values ​​includes all possible points of the nonlinear optimization problem 118 that satisfy the constraints, which may include inequalities, equations, and integer constraints. In addition, the solution of the nonlinear optimization problem 118 is used to determine a perturbation function 116, which is further used to generate one or more control inputs for controlling the robot 102 to perform the task based on the solution of the nonlinear optimization problem 118 of the set of CDMPs 114.

[0106] However, in nonlinear optimization problems118, earlier There is no constraint. Therefore, we need Another condition of can help determine by introducing new task constraints Therefore, additional constraints 119 are added It is a mathematical representation of the new task constraints.

[0107] In one embodiment, additional constraints 119 specify limits on the amount that CDMP 114 may deviate from original DMP 104. The design of CDMP 114 may be viewed as a tradeoff between constraint satisfaction and original forcing function 110. This tradeoff may be controlled using a hyperparameter that constrains the maximum allowed deviation between original DMP 104 and CDMP 114, which may be added as additional constraints 119 to nonlinear optimization problem 118.

[0108] You can use methods such as IPOPT TM , SNOPT, etc. to obtain the solution of the nonlinear optimization problem 118. Therefore, the transformation of DMP 104 to CDMP 114 disclosed herein provides a cost-effective, computationally efficient, easy to implement and practical solution to the motion control problem of the robot in a constrained environment. In addition, CDMP 114 makes the overall operation of the robot 102 very safe and efficient based on the satisfaction of the operation constraints 115 including safety and collision avoidance conditions.

[0109] Furthermore, the solution of the optimization problem 118 enables the determination of corrected weights of the modified forcing function 110 , which are transformed into control inputs that are transmitted by the output interface 106 to the robot 102 in order to command the robot 102 to execute the generated control inputs to perform the task.

[0110] Figure 4A A flowchart of a method executed by the controller 101 for the robot 102 to perform a task according to an embodiment of the present disclosure is shown.

[0111] At 401 , a set of DMPs associated with a task is acquired. For example, a set of DMPs 104 stored in the memory 103 is acquired by the processor 105 .

[0112] Then, at 402, the DMP set is transformed into a CDMP set by defining perturbations to the original learned forcing function associated with the task. For example, the DMP 104 includes an original learned forcing function 110, f(x, g), which is transformed 113 by defining a perturbation function 116, g(x), which is added as an additional parameter to the learned forcing function 110, f(x, g). The perturbation function 116, g(x) is associated with an operational constraint 115 that needs to be satisfied to perform the task.

[0113] To determine the value of the perturbation function 116, at 403, a nonlinear optimization problem 118 is formulated and solved by the processor 105 using a set of CDMPs 114 and a formula for the operational constraints 115, which includes a set of new task constraints defined by the change in the environment of the robot performing the task. These new task constraints are represented as an additional set of parameters in the perturbation function 116. To this end, Figure 4B A flow chart of another method performed by the controller 101 for determining a solution to the nonlinear optimization problem 118 is shown. At 405, a set of feasible values ​​for the barrier function 117 representing a new task constraint of the operational constraint 115 is determined. This will be combined with Figure 3D Have a discussion.

[0114] At 406 , the value of the barrier function 117 is then used to determine the value of the perturbation function 116 , such as by using the modified forcing function provided in Eq.

[0115] Furthermore, at 407, the solution of the value of the perturbation function 116 is used to generate a control input for controlling the robot 102 by the controller 101. The example task of trajectory generation is explained using the following Figure 4A and Figure 4B The method shown in .

[0116] In this embodiment, the original trajectory can be based on a plurality of movements performed by an end effector associated with the robot 102 using sensors in response to the demonstration. For example, the sensor can be an encoder and / or a visual sensor. These movements are used to generate a DMP 104 corresponding to the movements performed by the end effector associated with the robot 102. These DMPs are then stored in the memory 103 of the controller 101 and retrieved at step 401 above.

[0117] It should be appreciated that in the presence of operational constraints 115 that differ from the constraints during demonstration, the DMP 104 may result in undesirable behavior. Since the DMP 104 does not explicitly account for any additional disturbances and simply learns the forcing function during demonstration, the resulting generalization may only be admissible during demonstration. However, without any adaptation of the forcing function during actual operation, the resulting robot trajectory may not be feasible during actual control. For example, due to new task constraints on the admissible states of the robot (which were not present during manipulation), changes in the environment may cause the robot 102 to collide, thereby placing the object manipulated by the robot 102 outside the range defined by the physical constraints on the robot structure.

[0118] The operational constraints 115 may include additional or different obstacles present in the environment of the robot 102 compared to the previous environment. To this end, the operational constraints 115 may include positions and configurations associated with obstacles present in the environment of the robot 102 in the case of a changed environment. For example, the positions and configurations may be obtained using pose estimation techniques using vision sensors. Alternatively or additionally, the robot 102 may have joint limitations of the end effector of the robot.

[0119] Thus, these additional constraints may form new task constraints, which may be used at step 402 to define a perturbation 116 to the original forcing function 110, which in turn results in reconfiguring one or more predefined weights 111 associated with the original trajectory of the original forcing function 110 in a second configuration based on the one or more operating constraints 115. In some embodiments, reconfiguring the one or more predefined weights 111 may include converting the one or more operating constraints 115 into one or more differentiable functions using a smoothing function or a barrier function 117. For example, the smoothing function may be a control barrier function (CBF).

[0120] In one embodiment, the obstacle function 117 is a zero barrier function (ZBF). One of the advantages of using ZBFs to represent constraints is the generality they provide - ZBFs can prove joint limit avoidance as well as obstacle avoidance. In addition, the above formula leads to a nonlinear optimization to perturb the DMP, thereby forcing the weights regressed by local weighted regression to allow for a user-constructed ZBF, which can be solved using a standard NLP solver. The CDMP is under different constraints on the movement of the end effector, such as collision avoidance and safe state constraints. ZBF is used to represent smooth task-specific constraints. Additional sets of parameters are added to the resulting formula, which can be optimized to meet these constraints. The resulting optimization is projected as a nonlinear program, which can be solved using an off-the-shelf nonlinear program solver (such as IPOPT). Using the set invariance of the ZBF, it is guaranteed that the constraints of the CDMP are met. The ZBF can then be used to optimize one or more weights.

[0121] More specifically, a brief mathematical overview of ZBFs is provided and how they can be used to incorporate new task constraints in new environments. First, assume h(s): R n →R is a continuously differentiable function. Define the set C as the following high-level set:

[0122] C={s∈R n :h(s)≥0}

[0123]

[0124] Int(C)={s∈R n :h(s)gt;0}

[0125] Assume a nonlinear dynamic system of the following form:

[0126]

[0127] If the following inequality holds, then h(s) is a ZBF:

[0128]

[0129] where γ:R→R is a K-type function, and the case when γ>0 is considered.

[0130] For the above dynamical system (Eq. 8), if we find a valid ZBF h(s) (or alternatively, change our dynamical system to allow for an existing ZBF), then the dynamical system [Eq. 8] is forward invariant in the set C, i.e., if s0∈C and but:

[0131]

[0132] Since collision avoidance is one of the most common operating constraints for robots, we will explain how to obtain the ZBF for collision avoidance. has a boundary The obstacle set Ω uses the signed distance function (SDF) f: The usual definition of is used to define the boundaries of obstacles:

[0133]

[0134] Among them, the distance (or metric) Defined by:

[0135]

[0136] Where this gradient is well defined (and for convex polyhedra this is true whenever f(x)>0), In addition, embedded in The implicit surface in is composed of all points where f(x) = 0 is also the boundary of the obstacle, and f(x) < 0 whenever x is inside the obstacle. Therefore, SDF satisfies the specified safety set (denoted as h(s) above) and proves that the DMP trajectory is in the safety set Ω c There is also a requirement for the function to be invariant.

[0137] Compute the exact SDF for several basic shapes (sphere, box, and cylinder). Compute the smooth lower bound SDF of the union of two obstacles to ensure differentiability of the SDF in the safe set. For simplicity, assume that the centroid of each shape is located at The origin of , since these SDFs can represent shapes in arbitrary poses through translations and rotations. Signed distance functions for a large class of regularly shaped obstacles can be easily constructed, so they can be used to obtain ZBFs for collision avoidance constraints.

[0138] These one or more differentiable functions are used to optimize one or more predefined weights. This is done by formulating and solving a nonlinear optimization problem at step 403.

[0139] CDMP takes an existing DMP with a forcing function learned from expert trajectories, and then optimizes the forcing term so that the DMP dynamic system admits a ZBF that proves that the DMP will produce trajectories that remain in a safe set of workspaces. This safe set (and the ZBF) is constructed by composing signed distance fields from elementary convex polyhedra. More specifically, the resulting nonlinear optimization problem is described as follows:

[0140] The system of equations and forcing functions for DMP can be written and expressed by the following system of equations:

[0141]

[0142] in, is the forcing function expressed as a sum of radial basis functions and learned from the provided expert demonstrations.

[0143] CDMP 114 introduces additional parameters to the original DMP 104 formula that can be optimized to allow constraint satisfaction. i The perturbation set {ζ} i} to compute CDMP 114 to comply with the ZBF inequality for forward invariance in the user-defined security set.

[0144]

[0145] in, is the decision variable optimized for the formulated optimization problem. We note that this is just one possible way to express the perturbation of the original DMP 104 forcing function 110 based on its most common representation in the DMP literature as a radial basis function.

[0146] The formula for nonlinear optimization problem 118 is used to calculate Parameter Set It is represented by p:

[0147]

[0148] Subject to the dynamic constraints:

[0149]

[0150] s(t0)=s0...(Equation 14)

[0151] Where s = [x, z, y] T and p is the parameter set (including ). Note that the function c(·,·,·) represents the cost function of the optimization problem. The simplest cost function can penalize the decision variables The L2 norm of .

[0152] The problem formulation represented by [Equations 11 to 14] is converted into a finite dimensional discrete problem. This can then be solved using a nonlinear optimization solver such as IPOPT or SNOPT to produce a desired parameter set.

[0153] In addition, a new trajectory is generated based on one or more predefined weights configured in a second configuration. The new trajectory may include multiple new spatial points between the starting spatial point and the ending spatial point. It should also be noted that at least one of the multiple new spatial points may be different from the multiple original spatial points.

[0154] In some embodiments, generating the new trajectory may include formulating a nonlinear dynamic constrained optimization problem 118 using one or more predefined weights associated with the original trajectory and one or more differentiable functions 117 corresponding to one or more operational constraints 115. In addition, generating the new trajectory may include solving the nonlinear dynamic constrained optimization problem 118 by optimizing one or more predefined weights of a radial basis function, such as basis function 112, to generate the new trajectory. The new trajectory satisfies the one or more operational constraints 115 for performing the task. To this end, determining the new trajectory includes determining a correction term 116 that modifies at least some of the weights 111 of the forcing function 110, such that the DMP 104 having the forcing function with the corrected weights represents a new feasible trajectory that satisfies the operational constraints 115. In some embodiments, a gradient-based solver may be used to optimize the one or more predefined weights, wherein the gradient-based solver is based on an interior point method, such as an interior point optimizer (IPOPT), a sparse nonlinear optimizer (SNOPT), etc.

[0155] In some embodiments, in order to generate a new trajectory, a hyperparameter corresponding to the deviation of the new trajectory from the original trajectory can be specified. In addition, based on the hyperparameter, the degree of deviation of the new trajectory from the original trajectory can be limited.

[0156] To this end, the following mathematical formula can be used for basic optimization. The design of CDMP 114 can be viewed as a trade-off between constraint satisfaction and the original forcing function 110. This trade-off can be controlled using a hyperparameter that constrains the maximum allowed deviation between the original DMP 104 and CDMP 114, which can be added as another constraint to the trajectory optimization problem. The original DMP trajectory can be expressed as And the hyperparameter of the deviation from the original trajectory can be expressed as ∈. Then, the additional constraints can be expressed as follows:

[0157]

[0158] With this additional deviation constraint, the optimization problem 118 can then be written as follows:

[0159]

[0160] So that for equations 15 to 17,

[0161]

[0162] Depending on the value of ∈, a family of CDMPs can be obtained that allow different deviations of the new trajectory from the original DMP trajectory.

[0163] In this way, the controller 101 can be used to perform motion control of the robot 102 to perform various tasks, such as trajectory generation and optimization in the presence of new constraints, as described above. As will be appreciated by those of ordinary skill in the art, the embodiments of trajectory generation described herein are for illustrative purposes only. Any equivalent embodiments may be used to implement the principles of the various embodiments disclosed herein without departing from the scope of the present disclosure.

[0164] The controller 101 may be embodied within the robot 102. The controller 101 may be any general or special purpose computer system known in the art. Figure 5 One embodiment of such a computer system is described in .

[0165] Figure 5 500 is a block diagram of an exemplary computer system for implementing various embodiments. The disclosed methods and systems may be implemented on a conventional or general purpose computer system such as a personal computer (PC) or a server computer. Figure 5, a block diagram 500 of an exemplary computer system 502 for implementing various embodiments is shown. The computer system 502 can be used to implement the controller 101. Alternatively, the computer system 502 can be a controller. The computer system 502 can include a central processing unit ("CPU" or "processor") 504. The processor 504 can include at least one data processor for executing program components (for executing user-generated or system-generated requests). The processor 504 can be equivalent to Figure 1B 105 shown in . A user may include a person, a person using a device such as those included in the present disclosure, or such a device itself. Processor 504 may include a special processing unit such as an integrated system (bus) controller, a memory management control unit, a floating point unit, a graphics processing unit, a digital signal processing unit, etc. Processor 504 may include a microprocessor such as microprocessor, Microprocessor or Microprocessors, ARM applications, embedded or security processors, INTEL'S processor, processor, processor, processor or other processor line, etc. The processor 504 can be implemented using a mainframe, distributed processor, multi-core, parallel, grid or other architecture. Some embodiments can utilize embedded technology such as application specific integrated circuits (ASICs), digital signal processors (DSPs), field programmable gate arrays (FPGAs), etc.

[0166] The processor 504 may be configured to communicate with one or more input / output (I / O) devices via the I / O interface 506. The I / O interface 506 may employ communication protocols / methods such as, but not limited to, audio, analog, digital, monaural, RCA, stereo, IEEE-1394, serial bus, universal serial bus (USB), infrared, PS / 2, BNC, coaxial, component, composite, digital visual interface (DVI), high-definition multimedia interface (HDMI), RF antenna, S-video, VGA, IEEE802.n / b / g / n / x, Bluetooth, cellular (e.g., code division multiple access (CDMA), high-speed packet access (HSPA+), global system for mobile communications (GSM), long term evolution (LTE), WiMax, etc.), etc.

[0167] Using I / O interface 506, computer system 502 can communicate with one or more I / O devices. For example, input device 508 can be an antenna, keyboard, mouse, joystick, (infrared) remote control, camera, card reader, fax machine, dongle, biometric reader, microphone, touch screen, touchpad, trackball, sensor (e.g., accelerometer, light sensor, GPS, gyroscope, proximity sensor, etc.), stylus, scanner, storage device, transceiver, video device / source, visual sensor (visor), etc. Output device 510 can be a printer, fax machine, video display (e.g., cathode ray tube (CRT), liquid crystal display (LCD), light emitting diode (LED), plasma, etc.), audio speaker, etc. In some embodiments, transceiver 512 can be connected to processor 504. Transceiver 512 can facilitate various types of wireless transmission or reception. For example, transceiver 512 may include an antenna operably connected to a transceiver chip (e.g., INSTRUMENTS WILINK Transceiver, Transceiver, INFINEON X-GOLD618- transceiver, etc.), providing IEEE802.6a / b / g / n, Bluetooth, FM, Global Positioning System (GPS), 2G / 3G HSDPA / HSUPA communications, etc.

[0168] In some embodiments, the processor 504 can be configured to communicate with a communication network 514 via a network interface 516. The network interface 516 can communicate with the communication network 514. The network interface 516 can use connection protocols including, but not limited to, direct connection, Ethernet (e.g., twisted pair 50 / 500 / 5000Base T), Transmission Control Protocol / Internet Protocol (TCP / IP), Token Ring, IEEE802.11a / b / g / n / x, etc. The communication network 514 can include, but is not limited to, direct interconnection, a local area network (LAN), a wide area network (WAN), a wireless network (e.g., using wireless application protocol), the Internet, etc. Using the network interface 516 and the communication network 514, the computer system 502 can communicate with devices 518, 520, and 522. These devices 518, 520, and 522 can include, but are not limited to, personal computers, servers, fax machines, printers, scanners, various mobile devices such as cellular phones, smart phones (e.g., Smartphone, Smartphone, based mobile phones, etc.), tablet computers, e-book readers ( E-readers, Tablets, etc.), laptops, notebooks, gaming consoles ( Game consoles, Game consoles, game console, etc.) etc. In some implementations, the computer system 502 itself may embody one or more of these devices 518, 520, and 522.

[0169] In some embodiments, the processor 504 can be configured to communicate with one or more memory devices 530 (e.g., RAM 526, ROM 528, etc.) via a storage interface 524. The storage interface 524 can be connected to the storage 530 using connection protocols such as Serial Advanced Technology Attachment (SATA), Integrated Drive Electronics (IDE), IEEE-1394, Universal Serial Bus (USB), Fibre Channel, Small Computer System Interface (SCSI), etc. The storage 530 includes, but is not limited to, a memory drive, a removable disk drive, etc. The memory drive can also include a drum, a magnetic disk drive, a magneto-optical drive, an optical drive, a redundant array of independent disks (RAID), a solid-state memory device, a solid-state drive, etc.

[0170] Memory 530 may store a collection of program or data repository components, including but not limited to an operating system 532, a user interface application 534, a web browser 536, a mail server 538, a mail client 540, user / application data 542 (e.g., any data variables or data records discussed in this disclosure), etc. Memory 530 may be equivalent to memory 103. Operating system 532 may facilitate resource management and operation of computer system 502. Examples of operating system 532 include but are not limited to: OS X platforms, UNIX platforms, Unix-like system distributions (e.g., Berkeley Software Distribution (BSD), FreeBSD, NetBSD, OpenBSD, etc.), LINUX distributions (e.g., wait), OS / 2 platform, Platform (XP, Vista / 7 / 8, etc.), platform, platform, OS platform, etc. The user interface 534 can facilitate the display, execution, interaction, manipulation, or operation of program components through text or graphical facilities. For example, the user interface 534 can provide computer interactive interface elements such as cursors, icons, check boxes, menus, scrollers, windows, widgets, etc. on a display system operably connected to the computer system 502. A graphical user interface (GUI) can be used, including but not limited to Operating System platform, platform, Platform (e.g. platform, platforms, etc.), UNIX X-WINDOWS, web interface libraries (e.g. platform, programming language, programming language, Programming languages, HTML, platform, etc.)

[0171] In some implementations, computer system 502 may implement a program component stored in web browser 536. Web browser 536 may be a hypertext viewing application such as INTERNET Browser, web browser, web browser, Web browsers, etc. Secure web browsing can be provided using HTTPS (Secure Hypertext Transfer Protocol), Secure Sockets Layer (SSL), Transport Layer Security (TLS), etc. Web browsers can utilize technologies such as AJAX, DHTML, platform, programming language, Programming languages, application programming interfaces (APIs), etc. In some implementations, computer system 502 may implement program components stored by mail server 538. Mail server 538 may be such as The mail server 538 can utilize an Internet mail server such as ASP, ActiveX, ANSI C++ / C#, Programming languages, CGI scripts, programming language, programming language, programming language, programming language, The mail server 538 may utilize communication protocols such as Internet Message Access Protocol (IMAP), Messaging Application Programming Interface (MAPI), Microsoft Exchange, Post Office Protocol (POP), Simple Mail Transfer Protocol (SMTP), etc. In some implementations, the computer system 502 may implement a program component stored in a mail client 540. The mail client 540 may be a mail viewing application such as APPLE Mail client, MICROSOFT Mail client, MICROSOFT Email client, MOZILLA Mail clients, etc.

[0172] In some implementations, computer system 502 may store user / application data 542, such as data, variables, records, etc. described in this disclosure. Such a data repository may be implemented as a fault-tolerant, relational, scalable, secure data repository, such as Data repository or Alternatively, such a data repository may be implemented using standardized data structures, such as arrays, hashes, linked lists, structures, structured text files (e.g., XML), tables, or as an object-oriented data repository (e.g., using Object Data Repository, Object Data Repository, Object data storage, etc.). Such data storage can be combined or distributed, sometimes between various computer systems discussed in this disclosure. It should be understood that the structure and operation of any computer or data storage component can be combined, combined or distributed in any working combination.

[0173] One working combination of such a system may include a combination of a computer system 502 operating as a controller 101 for controlling a robot 102 to perform a task based on a previous demonstration of the task being performed by a human operator.

[0174] Fig. 6A A schematic diagram illustrating a use case of a robot 602 in the process of learning from demonstration according to an embodiment of the present disclosure.

[0175] Demonstration of a human operator 600 performing a task, such as a robot 602 holding a mobile object 604 in its gripper 603, moving along a trajectory 605, and placing the mobile object 604 in a fixed pose 607 within an immovable object 606. The demonstration may relate to an assembly operation involving the mobile object 604.

[0176] According to one embodiment, the human operator 600 can guide the robot 602 to track the original trajectory 605 through the teach pendant 601, and the teach pendant 601 stores the coordinates of the passing points corresponding to the original trajectory 605 in the memory of the robot 602. The teach pendant 601 can be a remote control device. The remote control device can be configured to send robot configuration settings (i.e., settings of the robot) to the robot 602 to demonstrate the original trajectory 605. For example, the remote control device sends control commands such as moving to XYZ directions, speed control commands, joint position commands, etc., for demonstrating the original trajectory 605. In an alternative embodiment, the human operator 600 can guide the robot 602 with the help of a joystick, through kinesthetic feedback, etc. The human operator 600 can guide the robot 602 to track the original trajectory 605 multiple times for the same fixed posture 607 of the immovable object 606.

[0177] The robot 602 may be coupled to or include a controller 602a, such as the controller 101 discussed in the previous embodiments. The controller 602a includes a memory that may store DMPs associated with the original trajectory 605 based on the demonstration. These DMPs may include forcing functions learned based on the demonstration of the original trajectory 605 by the human operator 600. To this end, the DMPs of the original trajectory correspond to the previous figures (particularly Figure 1B ). The original trajectory 605 may include a plurality of original spatial points between the starting pose and the ending pose of the robot 602. In addition, the original trajectory 605 may be generated based on a demonstration corresponding to a task to be performed under a first set of conditions. However, when performing the task, the robot 602 may observe a second set of conditions or a different environment. It should be noted that the second set of conditions may be different from the first set of conditions.

[0178] Figure 6B The robot 602 is shown in Fig. 6A The second set of conditions may include operating constraints that form an association with obstacles 608 in the path of the original trajectory 605. Figure 6B One or more sensors (such as visual sensors) may be used to determine the position and configuration of the obstacle 608. To this end, the position and configuration associated with the obstacle 608 present in the environment of the robot 602 under the second set of conditions may be obtained.

[0179] In this case, first, the controller 602a may obtain a DMP set stored in the memory, where the DMP set is obtained using Fig. 6AThe controller 602a may also be configured to transform the obtained DMP set into a CDMP set by using the obstacle avoidance operation constraint of the obstacle 608 in the original trajectory 605. This transformation may be accomplished using the transformation 115 described in the previous embodiment. To this end, one or more differentiable functions associated with the operation constraint may be used to optimize one or more predefined weights associated with the original trajectory.

[0180] In addition, the controller 602a can then dynamically generate a new trajectory 605a based on one or more predefined weights configured in a second configuration. The new trajectory 605a can include multiple new spatial points between the starting pose and the ending pose. It should also be noted that at least one of the multiple new spatial points can be different from the multiple original spatial points.

[0181] To this end, generating the new trajectory 605a may include formulating a nonlinear dynamic constrained optimization problem, such as the nonlinear optimization problem 118 described in the previous embodiment, using one or more predefined weights of the original trajectory and one or more differentiable functions corresponding to the one or more new task constraints. In addition, generating the new trajectory may include solving the nonlinear dynamic constrained optimization problem by optimizing one or more predefined weights of the radial basis function to generate the new trajectory 605a. The new trajectory 605a satisfies the one or more new task constraints for performing the task. To this end, determining the new trajectory 605a includes determining a correction term that modifies at least some weights of the forcing function so that the DMP with the forcing function with the corrected weights represents a new feasible trajectory that satisfies the operating constraints. The new feasible trajectory allows the robot 602 to operate smoothly in an environment different from the original environment, and also safely navigates any obstacles along the new trajectory 605a.

[0182] Furthermore, in situations where the environment of the robot 602 changes, the object 604 manipulated by the robot 602 may be outside of its reach and may be defined by the physical constraints on the structure of the robot 602 .

[0183] To this end, the CDMP set is therefore used to solve a nonlinear optimization problem to satisfy the operational constraints of obstacle avoidance. The solution to the nonlinear optimization problem is then used to determine a new trajectory 605a for placing the object 604 in the immovable object 606. The end effector of the robot 602 can then generate a control input that causes the gripper 603 to follow the new trajectory 605a and successfully place the object 604 in the new target pose 607a within the immovable object 606.

[0184] Therefore, without additional learning computational burden, the robot 602 operated using the controller 602a is able to perform successful and safe task completion. By transforming the DMP into CDMP without incurring additional learning and demonstration costs, and by naturally reconfiguring the weights of the basis functions, and using any known off-the-shelf solver to solve the nonlinear optimization problem, the robot 602 is able to adapt to different types of environments. In addition, due to the guarantees provided by the execution and satisfaction of the constraints defined in the transformed CDMP formulation disclosed herein, the robot 602 is able to achieve higher safety compared to DMP-based task execution.

[0185] It should be understood that, for the sake of clarity, the above description has described embodiments of the present invention with reference to different functional units and processors. However, it is apparent that any suitable distribution of functions between different functional units, processors or domains may be used without departing from the present invention. For example, functions shown as being performed by separate processors or controllers may be performed by the same processor or controller. Therefore, references to specific functional units are only considered references to suitable means for providing the described functions, rather than indicating a strict logical or physical structure or organization.

[0186] In addition, one or more computer-readable storage media can be used to implement embodiments consistent with the present disclosure. Computer-readable storage media refers to any type of physical memory on which processor-readable information or data can be stored. Therefore, a computer-readable storage medium can store instructions for execution by one or more processors, including instructions for causing a processor to execute steps or stages consistent with the embodiments described herein. The term "computer-readable medium" should be understood to include tangible items and exclude carriers and transient signals, that is, non-transient. Embodiments include random access memory (RAM), read-only memory (ROM), volatile memory, non-volatile memory, hard disk drive, CD ROM, DVD, flash drive, disk, and any other known physical storage medium.

[0187] It is intended that the disclosure and examples be considered exemplary only, with a true scope and spirit of the disclosed embodiments being indicated by the following claims.

[0188] It should also be understood that the above techniques can take the form of computer or controller implemented processes and devices for practicing these processes. The present disclosure can also be embodied in the form of computer program code, which contains instructions embodied in a tangible medium (such as a floppy disk case, a solid state drive, a CD-ROM, a hard drive, or any other computer readable storage medium), wherein when the computer program code is loaded into and executed by a computer or controller, the computer becomes a device for practicing the present invention. The present disclosure can also be embodied in the form of computer program code or signals, for example, whether stored in a storage medium, loaded into and / or executed by a computer or controller, or transmitted through some transmission medium (such as by wire or cable, by optical fiber, or via electromagnetic radiation), wherein when the computer program code is loaded into and executed by a computer, the computer becomes a device for practicing the present invention. When implemented on a general-purpose microprocessor, the computer program code segments configure the microprocessor to create a specific logic circuit.

[0189] The disclosed methods and systems can be implemented on conventional or general-purpose computer systems, such as personal computers (PCs) or server computers. It should be understood that, for the sake of clarity, the above description has described embodiments of the present invention with reference to different functional units and processors. However, it is apparent that any suitable distribution of functions between different functional units, processors, or domains may be used without departing from the present invention. For example, functions shown as being performed by separate processors or controllers may be performed by the same processor or controller. Therefore, references to specific functional units are only considered references to suitable means for providing the described functions, rather than indicating a strict logical or physical structure or organization.

[0190] It is understood that a robot without a "physical", "real" or "real world" classification may refer to a physical robot system or a robot simulator that is intended to faithfully simulate the behavior of a physical robot system. A robot simulator is a program consisting of a set of algorithms based on mathematical formulas to simulate the motion and dynamics of a real-world robot. In a preferred embodiment, the robot simulator also simulates a robot controller. The robot simulator may generate data for 2D or 3D visualization of the robot, which may be output to a display device via a display interface.

[0191] The above description provides only exemplary embodiments and is not intended to limit the scope, applicability or configuration of the present disclosure. Instead, the following description of the exemplary embodiments will provide an enabling description for implementing one or more exemplary embodiments to those skilled in the art. Various changes may be made to the function and arrangement of the elements without departing from the spirit and scope of the disclosed subject matter set forth in the appended claims.

[0192] Specific details are given in the following description to provide a thorough understanding of the embodiments. However, it will be appreciated by those skilled in the art that the embodiments may be practiced without these specific details. For example, the systems, processes, and other elements in the disclosed subject matter may be shown as components in block diagram form to avoid obscuring the embodiments in unnecessary detail. In other cases, well-known processes, structures, and techniques may be shown without unnecessary detail to avoid obscuring the embodiments. In addition, the same reference numerals and numbers in the various drawings represent the same elements.

[0193] In addition, each embodiment can be described as a process depicted as a flow chart, flow diagram, data flow diagram, structure diagram or block diagram. Although a flow chart can describe an operation as a sequential process, many operations can be performed in parallel or simultaneously. In addition, the order of the operations can be rearranged. A process can terminate when its operation is completed, but can have additional steps not discussed or included in the figure. In addition, not all operations in any particularly described process can occur in all embodiments. A process can correspond to a method, function, process, subroutine, subprogram, etc. When a process corresponds to a function, the termination of the function can correspond to the function returning to the calling function or main function.

[0194] In addition, embodiments of the disclosed subject matter may be implemented at least in part manually or automatically. Manual or automatic implementation may be performed or at least assisted by the use of a machine, hardware, software, firmware, middleware, microcode, hardware description language, or any combination thereof. When implemented in software, firmware, middleware, or microcode, program code or code segments for performing the necessary tasks may be stored in a machine-readable medium. A processor may perform the necessary tasks.

[0195] The various methods or processes outlined herein may be encoded as software that can be executed on one or more processors using any of a variety of operating systems or platforms. In addition, such software may be written using any of a variety of suitable programming languages ​​and / or programming or scripting tools, and may also be compiled into executable machine language code or intermediate code that is executed on a framework or virtual machine. Typically, in various embodiments, the functionality of the program modules may be combined or distributed as desired.

[0196] Embodiments of the present disclosure may be embodied as a method, and embodiments of the method have been provided. The actions performed as part of the method may be ordered in any suitable manner. Therefore, embodiments may be constructed in which the actions are performed in an order different from that shown, which may include performing some actions simultaneously, although these actions are shown as sequential actions in illustrative embodiments. Although the present disclosure has been described with reference to certain preferred embodiments, it should be understood that various other adaptations and modifications may be made within the spirit and scope of the present disclosure. Therefore, the aspects of the appended claims cover all such changes and modifications that fall within the true thought and scope of the present disclosure.

Claims

1. A method of controlling a robot for performing a task, wherein: The method uses a processor coupled to a memory storing a set of dynamic motion primitives (DMPs) associated with the task, wherein the set of DMPs includes at least two sets of dynamic systems including at least: a function representing point attractor dynamics associated with the task and a forcing function associated with a learned demonstration of the task, the processor coupled to stored instructions that when executed by the processor implement the steps of the method, the steps including: Obtaining the DMP set associated with the task; Transforming the acquired DMP set into a constrained DMP CDMP set by defining a perturbation function associated with the learned forcing function, such that the perturbation function is associated with a set of operational constraints that need to be satisfied to perform the task; Solving the nonlinear optimization problem of the CDMP set based on operational constraints; and A control input for controlling the robot to perform the task is generated based on a solution to the nonlinear optimization problem of the set of CDMPs.

2. The method according to claim 1, wherein: The at least two sets of dynamical systems include a combination of ordinary differential equations (ODEs) representing each dynamical system in the at least two sets of dynamical systems.

3. The method according to claim 1, wherein: The function of the point attractor dynamics includes parameters associated with a starting pose of the robot and a target pose of the robot.

4. The method according to claim 1, wherein: The forcing function includes one or more weights corresponding to a set of basis functions associated with the task, such that the one or more weights are adjustable parameters associated with the learned demonstration of the task.

5. The method according to claim 4, wherein: The one or more weights are learned by solving a local weighted regression to learn the one or more weights of the basis functions.

6. The method according to claim 1, wherein: The step of transforming the DMP set into the CDMP set by defining the perturbation function associated with the operational constraint set comprises: An additional set of parameters representing operation constraints is added to the learned enforcement function to define the perturbation function, wherein the new task constraints are represented as an at least first-differentiable obstacle function using the additional set of parameters.

7. The method according to claim 6, wherein: The step of solving the nonlinear optimization problem of the CDMP set based on the operational constraints comprises: A set of feasible values ​​for the set of additional parameters is determined such that the new task constraint represented by the barrier function is satisfied during execution of the task.

8. The method according to claim 7, further comprising the steps of: determining a solution to the nonlinear optimization problem by finding the set of feasible values ​​of the barrier function representing the new task constraints; determining the perturbation function based on the determined solution to the nonlinear optimization problem; generating the control input for controlling the robot based on the determined perturbation function; as well as The robot is controlled to perform the task based on the generated control input.

9. The method according to claim 1, wherein: The task includes operating the robot to follow a trajectory.

10. The method according to claim 1, wherein: The one or more operational constraints include at least one of the following: avoiding collision with one or more obstacles present in the robot's environment; Avoid self-collision; and The joint limits of the robot's end effector.

11. A controller for controlling the operation of a robot to perform a task, the controller comprising: A memory, wherein the memory is configured as follows: A dynamic motion primitive DMP set associated with the task is stored, wherein the DMP set includes at least two dynamic system sets, and the at least two dynamic system sets include at least: a function representing the point attractor dynamics associated with the task; and a forcing function associated with a learned demonstration of said task; A processor, wherein the processor is configured as: transforming the set of DMPs into a set of constrained DMPs (CDMPs) by determining a perturbation function associated with the learned forcing function, such that the perturbation function is associated with a set of operational constraints that need to be satisfied to perform the task; Solving the nonlinear optimization problem of the CDMP set based on the operational constraint set; and generating a control input for controlling the robot to perform the task based on a solution to the nonlinear optimization problem of the set of CDMPs; and An output interface is configured to command the robot to execute the generated control input to perform the task.

12. The controller according to claim 11, wherein: The at least two sets of dynamical systems include a combination of ordinary differential equations (ODEs) representing each dynamical system in the at least two sets of dynamical systems.

13. The controller according to claim 11, wherein: The function of the point attractor dynamics includes parameters associated with a starting pose of the robot and a target pose of the robot.

14. The controller according to claim 11, wherein: The forcing function includes one or more weights corresponding to a set of basis functions associated with the task, such that the one or more weights are adjustable parameters associated with the learned demonstration of the task.

15. The controller according to claim 14, wherein: The one or more weights are learned by solving a local weighted regression to learn the one or more weights of the basis functions.

16. The controller according to claim 11, wherein: To transform the set of DMPs into the set of CDMPs by determining the perturbation function associated with a set of operational constraints, the processor is configured to: An additional set of parameters representing the operational constraints is added to the learned enforcement function to define the perturbation function, wherein the new task constraints are represented as an at least first-differentiable barrier function using the additional set of parameters.

17. The controller according to claim 16, wherein: To solve the nonlinear optimization problem of the CDMP set based on the operational constraints, the processor is configured to: A set of feasible values ​​for the set of additional parameters is determined such that the new task constraint represented by the barrier function is satisfied during execution of the task.

18. The controller according to claim 17, wherein: The processor is further configured to: determining a solution to the nonlinear optimization problem by finding the feasible set of parameters for the barrier function representing the new task constraints; determining the perturbation function based on the determined solution to the nonlinear optimization problem; generating the control input for controlling the robot based on the determined perturbation function; as well as The control input is output based on the generated control input to control the robot to perform the task.

19. The controller according to claim 11, wherein: The task includes operating the robot to follow a trajectory.

20. The controller according to claim 11, wherein: One or more operations constrain at least one of the following: avoiding collision with one or more obstacles present in the robot's environment; Avoid self-collision; and The joint limits of the robot's end effector.

21. A non-transitory computer-readable medium storing computer-executable instructions for a robot to perform a task, the computer-executable instructions being configured to: Get the DMP set associated with the task, where: The acquired DMP set includes at least two sets of dynamical systems, the at least two sets of dynamical systems including at least: a function representing point attractor dynamics associated with the task and a forcing function associated with a learned demonstration of the task; Transforming the acquired DMP set into a constrained DMP CDMP set by defining a perturbation function associated with the learned forcing function, such that the perturbation function is associated with a set of operational constraints that need to be satisfied to perform the task; Solving the nonlinear optimization problem of the CDMP set based on the operational constraint set; and A control input for controlling the robot to perform the task is generated based on a solution to the nonlinear optimization problem of the set of CDMPs.