Apparatus and method for determining a motion trajectory for a kinematic structure of a robot

The apparatus and method blend pre-computed motion trajectories using weighting factors to address computational complexity and jerk constraints, enabling efficient, real-time motion planning for robots in dynamic environments.

WO2025149509A1PCT designated stage expired Publication Date: 2025-07-17SONY GROUP CORP +1
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
PCT/EP2025/050316
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-09
Filing Date
2025-01-08
Publication Date
2025-07-17

AI Technical Summary

Technical Problem

Existing motion planning methods for robots are computationally complex and unsuitable for real-time regeneration or modification, particularly in dynamic environments with strict jerk constraints, limiting their adaptability and efficiency.

Method used

An apparatus and method for determining a motion trajectory that blends pre-computed trajectories based on minimization of weighting factors, ensuring kinematic constraints are met, allowing for real-time adaptation to environmental changes.

Benefits of technology

Enables computationally efficient, jerk-constrained motion planning that adapts to dynamic environments, expanding the applicability of industrial robots to tasks requiring rapid changes and adaptability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2025050316_17072025_PF_FP_ABST
    Figure EP2025050316_17072025_PF_FP_ABST
Patent Text Reader

Abstract

An apparatus for determining a motion trajectory for a kinematic structure of a robot for a time instant t is provided. The apparatus includes interface circuitry configured to receive first input data indicating a plurality of predetermined motion trajectories, the predetermined motion trajectories satisfy kinematic constraints of the kinematic structure. Furthermore, the interface circuitry is configured to receive second input data indicating a respective nominal weighting factor for each of the predetermined motion trajectories for the time instant t. The apparatus additionally includes processing circuitry configured to determine a respective weighting factor for each of the predetermined motion trajectories for the time instant t based on a minimization of the difference between the respective weighting factor for the time instant t and the respective nominal weighting factor for the time instant t. The processing circuitry is further configured to determine the motion trajectory for the time instant t by blending the predetermined motion trajectories based on the determined weighting factors for the time instant t.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] APPARATUS AND METHOD FOR DETERMINING A MOTION TRAJECTORY

[0002] FOR A KINEMATIC STRUCTURE OF A ROBOT

[0003] Field

[0004] The present disclosure relates to motion trajectory planning for kinematic structures of robots. In particular, examples of the present disclosure relate to an apparatus and a method for determining a motion trajectory for a kinematic structure of a robot, a robotic system, a non- transitory machine-readable medium and a program.

[0005] Background

[0006] In various robotics applications, such as object manipulation in a dynamic environment, precise and adaptive motion planning considering the robot's constraints is important. These constraints may encompass position, velocity, acceleration, and jerk values. To address this challenge, traditional methods have relied on offline trajectory planning techniques, such as replaying-demonstrations or offline optimal control. However, these methods have limitations in that they compute trajectories offline, making them unsuitable for real-time regeneration or modification due to the computational complexities involved.

[0007] Hence, there may be a demand for improved motion trajectory planning.

[0008] Summary

[0009] This demand is met by an apparatus and a method for determining a motion trajectory for a kinematic structure of a robot, a robotic system, a non-transitory machine-readable medium and a program in accordance with the independent claims. Advantageous embodiments are defined by the dependent claims.

[0010] According to a first aspect, the present disclosure provides an apparatus for determining a motion trajectory for a kinematic structure of a robot for a time instant t. The apparatus comprises interface circuitry configured to receive first input data indicating a plurality of predetermined motion trajectories. The predetermined motion trajectories satisfy kinematic constraints of the kinematic structure. Furthermore, the interface circuitry is configured to receive second input data indicating a respective nominal weighting factor for each of the predetermined motion trajectories for the time instant t. The apparatus additionally comprises processing circuitry configured to determine a respective weighting factor for each of the predetermined motion trajectories for the time instant t based on a minimization of the difference between the respective weighting factor for the time instant t and the respective nominal weighting factor for the time instant t. The processing circuitry is further configured to determine the motion trajectory for the time instant t by blending the predetermined motion trajectories based on the determined weighting factors for the time instant t.

[0011] According to a second aspect, the present disclosure provides a method for determining a motion trajectory for a kinematic structure of a robot for a time instant t. The method comprises receiving first input data indicating a plurality of predetermined motion trajectories. The predetermined motion trajectories satisfy kinematic constraints of the kinematic structure. In addition, the method comprises receiving second input data indicating a respective nominal weighting factor for each of the predetermined motion trajectories for the time instant t. The method further comprises determining a respective weighting factor for each of the predetermined motion trajectories for the time instant t based on a minimization of the difference between the respective weighting factor for the time instant t and the respective nominal weighting factor for the time instant t. Additionally, the method comprises determining the motion trajectory for the time instant t by blending the predetermined motion trajectories based on the determined weighting factors for the time instant t.

[0012] According to a third aspect, the present disclosure provides robotic system comprising an apparatus according to the first aspect and a robot comprising the kinematic structure. The robot is configured to receive motion data indicating the determined motion trajectory for the time instant t from the apparatus, and to cause motion of the kinematic structure based on the determined motion trajectory for the time instant t.

[0013] According to a fourth aspect, the present disclosure provides a non-transitory machine- readable medium having stored thereon a program having a program code for performing the method according to the second aspect, when the program is executed on a processor or a programmable hardware. According to a fifth aspect, the present disclosure provides a program having a program code for performing the method according to the second aspect, when the program is executed on a processor or a programmable hardware.

[0014] Brief description of the Figures

[0015] Some examples of apparatuses and / or methods will be described in the following by way of example only, and with reference to the accompanying figures, in which

[0016] Fig. 1 illustrates an exemplary apparatus for determining a motion trajectory for a kinematic structure of a robot;

[0017] Fig. 2 illustrates exemplary temporal courses of various parameters of two predetermined motion trajectories and a motion trajectory determined according to the proposed technique;

[0018] Fig. 3 illustrates exemplary temporal courses of nominal weighting factors and determined weighting factors for the two predetermined motion trajectories illustrated in Fig. 2;

[0019] Fig. 4 illustrates in subfigures (a) and (b) the three-dimensional courses of four predetermined motion trajectories and a motion trajectory determined according to the proposed technique from different points of view;

[0020] Fig. 5 illustrates exemplary temporal courses of nominal weighting factors and determined weighting factors for the four predetermined motion trajectories illustrated in Fig. 4;

[0021] Fig. 6 illustrates an exemplary robotic system; and

[0022] Fig. 7 illustrates a flowchart of an example of a method for determining a motion trajectory for a kinematic structure of a robot.

[0023] Detailed Description Some examples are now described in more detail with reference to the enclosed figures. However, other possible examples are not limited to the features of these embodiments described in detail. Other examples may include modifications of the features as well as equivalents and alternatives to the features. Furthermore, the terminology used herein to describe certain examples should not be restrictive of further possible examples.

[0024] Throughout the description of the figures same or similar reference numerals refer to same or similar elements and / or features, which may be identical or implemented in a modified form while providing the same or a similar function. The thickness of lines, layers and / or areas in the figures may also be exaggerated for clarification.

[0025] When two elements A and B are combined using an “or”, this is to be understood as disclosing all possible combinations, i.e. only A, only B as well as A and B, unless expressly defined otherwise in the individual case. As an alternative wording for the same combinations, "at least one of A and B" or "A and / or B" may be used. This applies equivalently to combinations of more than two elements.

[0026] If a singular form, such as “a”, “an” and “the” is used and the use of only a single element is not defined as mandatory either explicitly or implicitly, further examples may also use several elements to implement the same function. If a function is described below as implemented using multiple elements, further examples may implement the same function using a single element or a single processing entity. It is further understood that the terms "include", "including", "comprise" and / or "comprising", when used, describe the presence of the specified features, integers, steps, operations, processes, elements, components and / or a group thereof, but do not exclude the presence or addition of one or more other features, integers, steps, operations, processes, elements, components and / or a group thereof.

[0027] Fig- 1 illustrates an exemplary apparatus 100 for determining a motion trajectory for a kinematic structure of a robot for (at) a time instant (time step) t. A kinematic structure of a robot is an arrangement of two or more rigid bodies (links) which are coupled via joints such that they can move relative to each other. The kinematic structure may comprise one or more actuators for moving the two or more rigid bodies with respect to each other. For example, the kinematic structure may be a serial kinematic structure, a parallel kinematic structure or a hybrid kinematic structure. One of the rigid bodies or links may be the robot’s end-effector (i.e., the part of the robot that interacts with its environment). A motion trajectory is the path that an object or a point takes through space as it moves over time. Accordingly, a motion trajectory for a kinematic structure of a robot describes the path the kinematic structure (or a certain part thereof) takes through space as it moves over time.

[0028] The apparatus 100 comprises at least interface circuitry 110 and processing circuitry 120. The processing circuitry 120 is coupled to the interface circuitry 110.

[0029] The interface circuitry 110 is configured to receive first input data 101 indicating (representing, encoded with) a plurality of predetermined motion trajectories (i.e. N > 2 motion trajectories). The predetermined (pre-computed) motion trajectories may be generated in various ways. For example, the predetermined motion trajectories may be generated off-line by demonstrations or from optimization methods like optimal control or Ruckig. The predetermined motion trajectories satisfy kinematic constraints of the kinematic structure. The kinematic constraints of the kinematic structure are restrictions or limitations on the motion of a kinematic structure. The kinematic constraints of the kinematic structure may be manifold such as joint constraints, geometric constraints or position, velocity, acceleration and / or jerk constraints. For example, the interface circuitry 110 may receive the first input data 101 from a library or memory (internal or external of the apparatus 100).

[0030] Furthermore, the interface circuitry 110 is configured to receive second input data 102 indicating (representing, encoded with) a respective nominal weighting (blending) factor for each of the predetermined motion trajectories for the time instant t. The respective nominal weighting factor is a desired (target) weighting factor for each of the predetermined motion trajectories. The respective nominal weighting factor may be determined externally (i.e. not by the apparatus 100) and, hence, received from an external device (not part of the apparatus 100).

[0031] The processing circuitry 120 is configured to receive and further process first input data 101 and the second input data 102. For example, the processing circuitry 120 may be a single dedicated processor, a single shared processor, or a plurality of individual processors, some of which or all of which may be shared, a digital signal processor (DSP) hardware, an application specific integrated circuit (ASIC), a neuromorphic processor or a field programmable gate array (FPGA). The processing circuitry 120 may optionally be coupled to, e.g., memory such as read only memory (ROM) for storing software, random access memory (RAM) and / or non-volatile memory. For example, the apparatus 100 may comprise memory configured to store instructions, which when executed by the processing circuitry 120, cause the processing circuitry 120 to perform the steps and methods described herein.

[0032] The processing circuitry 120 is configured to determine a respective (actual) weighting factor for each of the predetermined motion trajectories for the time instant t based on a minimization of the difference between the respective weighting factor for the time instant t and the respective nominal weighting factor for the time instant t. In other words, a minimization of the difference between the respective weighting factor for the time instant t and the respective nominal weighting factor for the time instant t is performed to find an optimized respective weighting factor for the time instant t.

[0033] Furthermore, the processing circuitry 120 is configured to determine the motion trajectory for the time instant t by blending (mixing, combining) the predetermined motion trajectories based on (according to) the determined weighting factors for the time instant t. In other words, the predetermined motion trajectories are combined with each other taking into account the determined weighting factors for the time instant t to determine an optimum motion trajectory for the time instant t that satisfies the kinematic constraints of the kinematic structure.

[0034] The apparatus 100 provides computationally efficient motion planning that addresses various limitations of conventional motion planning approaches. The desired motion of the robot’s kinematic structure is modulated in response to the latest changes in the environment and the imposed kinematic constraints. By integrating predetermined (pre-recorded) motion trajectories and blending them in a seamless manner, the resulting motion trajectory satisfies the robot's constraints while being adaptable to environmental variations (via the nominal weighting factors).

[0035] The interface circuitry 110 may be further configured to output motion data 103 indicating (representing, encoded with) the determined motion trajectory for the time instant t. The motion data 103 may be fed to the robot. Accordingly, the robot may cause motion of its kinematic structure based on (according to) the determined motion trajectory for the time instant t.

[0036] The mathematical principles of the motion trajectory determination by the processing circuit 120 described above are described in more detail below. In particular, further details of the motion trajectory determination by the processing circuit 120 are described in more detail below.

[0037] As described above, predetermined (pre-computed) motion trajectories may be generated off-line by using demonstration or from optimization methods like optimal control or Ruckig. In the following, it is assumed that the predetermined motion trajectories are called (determined) by where N is the number of the trajectories (e.g., the number of demonstrations from which the predetermined trajectories), q is the number of joints and / are position, velocity, acceleration and jerk values of the predetermined motion trajectories, correspondingly. The motion trajectories are computed such that they respect the joint constraints and the position, velocity, acceleration, and jerk levels as stated below:

[0038] The processing circuitry 120 determines the motion trajectory P for the kinematic structure of the robot by blending the predetermined motion trajectories This may be formulated as weighted sum of the predetermined motion trajectories P7:

[0039] The respective weighting factor (weight, weighting sum, blending factor) ajfor each of the predetermined motion trajectories . In other words, the respective weighting factor a7is smaller than one and equal to or greater than zero. Accordingly, the processing circuitry 120 determines the respective weighting factor under the constraint that the respective weighting factor is smaller than one and equal to or greater than zero.

[0040] The sum of the weighting factors a7is one Accordingly, the processing cir cuitry 120 determines the respective weighting factor a7under the constraint that the sum of the weighting factors a7is one.

[0041] The weighting factors a7are further determined such that

[0042] The aforementioned constraints are always held if the weighting factors are constant as this creates a convex polytope:

[0043] Due to the dynamic environment of the robot, the weighting factors a7need to change over time, i.e. . Therefore, the processing circuitry 120 determines the respective (actual) weighting factor < for each of the predetermined motion trajectories P7for the time in stant t based on a minimization of the difference between the respective weighting factor a-i(t)' for the time instant t and the respective nominal weighting factor a(t) for the time instant t. For the time instant t = i + 1, this may be formulated as a one-step optimization: where the respective nominal weighting factor a is the desired nominal value of the blending at the time instant t = i + 1. The time difference between the time instant t = i + 1 and its preceding time instant t = i is At. For example, At may be 1 second or less, 0.5 seconds or less, 0.1 seconds or less, 0.01 seconds or less, or 0.001 seconds or less, a is a vector representing the respective nominal weighting factor for the time instant t = i + 1. ai+1is a vector representing the respective weighting factor for the time instant t = i + 1.

[0044] As a consequence, the processing circuitry 120 determines the respective weighting factor <z7(t) for the time instant t (e.g., t = i + 1) under the constraint that the sum of the weighting factors <z7(t) for the time instant t is one (analogously to what is described above). Similarly, the processing circuitry 120 determines the respective weighting factor <z7(t) for the time instant t under the constraint that the respective weighting factor <z7(t) for the time instant t is smaller than one and equal to or greater than zero.

[0045] For integration of the weighting factor <z7(t), implicit first-degree Taylor expansion of Euler integration may be used:

[0046] This can be re-written as: with subject to:

[0047] The optimization is solved such that not only but also the corresponding velocity VpxP VP ... ) and optionally also the corresponding acceleration A ... ) and jerk j(aj,P, ... ) respect these values. In other words, the processing circuitry 120 determines the respective weighting factor apt) for the time instant t (e.g., t = i + 1) under constraints for position and velocity of the kinematic structure and optionally constraints for acceleration and jerk of the kinematic structure. In the following, two different integration schemes on how the on how P7are generated from P7, / 7, p G are exemplarily presented. It is to be noted that the present disclosure is not limited thereto. In other examples, different integration schemes may be used. In particular, integration schemes omitting constraints for acceleration and jerk of the kinematic structure may be used alternatively.

[0048] The first exemplary integration scheme is based on an implicit first order Taylor expansion and will be described in the following.

[0049] In the first exemplary integration scheme, it is assumed that are generated based on the following integration scheme:

[0050] The satisfaction of the velocity, acceleration and jerk constraints may be written as:

[0051] This may be simplified to:

[0052] For the velocity level:

[0053] This may be simplified to:

[0054] Similarly, it may be written for the acceleration level:

[0055] This may be simplified to

[0056] The jerk level may be written as: Accordingly, the optimization may be re-written as:

[0057] With respect to the following constraints: Accordingly, the processing circuitry 120 determines the respective weighting factor for the time instant by minimizing the mathematical expression

[0058] In the equations, atis a vector representing the respective weighting factor for the time instant t = i, a i is a vector representing first order derivates of the respective weighting factor for the time instant t = i, aiis a vector representing second order derivates of the respective weighting factor for the time instant t = i and ai+1is a vector representing third order derivates of the respective weighting factor for the time instant

[0059] The second exemplary integration scheme is based on an explicit third order Taylor expansion and will be described in the following.

[0060] In the second exemplary integration scheme, it is assumed that and P7, V-i, Ai,p are generated based on the following integration scheme:

[0061] Similar to the above explanations for the first exemplary integration scheme, the one-step optimization can be re-written in the second exemplary integration scheme as follows:

[0062] With respect to the following constraints:

[0063] Accordingly, the processing circuitry 120 determines the respective weighting factor for the time instant by minimizing the mathematical expression In case a was constant over time, the above formulation could be further formulated as a model predictive control problem which may help in improving the stability of the optimization.

[0064] In order to derive the above constraints for the optimization according to the second exemplary integration scheme, the next position P / +1, velocity l<7x, acceleration -d7+1, and jerk Jij+1are expressed as a function of the optimization variable ai+1. In this regard, the positional constraint can be formulated as follows: are written as a function of P / +1, PtJ,AJt, l<7. With a bit of refactoring, this may be expressed as follows:

[0065] For the jerk level:

[0066] For the acceleration level:

[0067] For the position level:

[0068] By substituting jerk, acceleration and velocity, this may be re-written as:

[0069] Accordingly, l<7xmay be calculated as a function of P / +1and all the previous values. The same may be done for the acceleration and jerk level:

[0070] To sum-up, the third-degree Taylor transformation is changed to:

[0071] This can be re-written as a function of

[0072] These expressions are used in the above constraints for the optimization according to the second exemplary integration scheme.

[0073] It is evident from the two exemplary integration schemes described above, that the processing circuitry 120 in both schemes determines the respective weighting factor <z7(t) for the time instant t such as t = i + 1 using a system of mathematical expressions (equations) comprising terms for the constraints for position and velocity of the kinematic structure and optionally terms for the constraints for acceleration and jerk of the kinematic structure. Additionally, the system of mathematical expressions further comprises terms for the respective weighting factor <z7(t) for the time instant t = i and terms for derivatives of the respective weighting factor <z7(t) for the time instant t = i (such as and ai). Furthermore, the system of mathematical expressions further comprises terms for one or more of a position of the kinematic structure for the time instant t = i, a velocity of the kinematic structure for the time instant t = i and an acceleration of the kinematic structure for the time instant t = i.

[0074] One or more (e.g., all) of the position of the kinematic structure for the time instant t = i, the velocity of the kinematic structure for the time instant t = i and the acceleration of the kinematic structure for the time instant t = i may be derived from a previously calculated motion trajectory for the kinematic structure for the time instant t = i. In other words, the motion trajectory may be calculated in a closed-loop manner without input (feedback) from the robot.

[0075] It is evident from the two exemplary integration schemes described above, that the processing circuitry 120 in both schemes determines the respective weighting factor for the time instant t such as t = i + 1 by minimizing a mathematical expression comprising at least a term for the respective weighting factor for the time instant t = i + 1, a term for the respective weighting factor for the time instant t = i and a term for the respective nominal weighting factor for the time instant t = i + 1. The mathematical expression may further comprise a term for a derivative of the respective weighting factor for the time instant t = i + 1 (such as dt3ai+1) and a term for a derivative of the respective weighting factor for the time instant t = i (such as dt or dt2at). As described above, the mathematical expression is minimized with respect to a derivative of the respective weighting factor for the time instant t = i + 1 (such as min). ai+i

[0076] The processing described above for determining the motion trajectory for the time instant t such as t = i + 1 may be performed iteratively (repeatedly for successive time instants). For example, the processing described above for determining the motion trajectory for the time instant t such as t = i + 1 may be performed iteratively (repeatedly for successive time instants) until the robot’s kinematic structure reaches a target (desired end) position.

[0077] Exemplary blending of predetermined motion trajectories according to the proposed technique will be described in the following with reference to Figs. 2 to 5. Fig. 2 illustrates an exemplary blending of two predetermined motion trajectories. In particular, Fig. 2 illustrates exemplary temporal courses of various parameters of the two predetermined motion trajectories and a motion trajectory determined according to the proposed technique.

[0078] In the upper most diagram of Fig. 2, the temporal courses of the position are illustrated. Curve 210 represents the temporal course of the position for the motion trajectory determined according to the proposed technique (i.e., by blending the two predetermined motion trajectories). The curves 211 and 212 represent the temporal courses of the position for the two predetermined motion trajectories blended according to the proposed technique. Furthermore, the curves 213 and 214 represent the position constraints of the robot’s kinematic structure.

[0079] In the second diagram from the top of Fig. 2, the temporal courses of the velocity are illustrated. Curve 220 represent the temporal course of the velocity for the motion trajectory determined according to the proposed technique. The curves 221 and 222 represent the temporal courses of the velocity for the two predetermined motion trajectories blended according to the proposed technique. Furthermore, the curves 223 and 224 represent the velocity constraints of the robot’s kinematic structure. In the third diagram from the top of Fig. 2, the temporal courses of the acceleration are illustrated. Curve 230 represent the temporal course of the acceleration for the motion trajectory determined according to the proposed technique. The curves 231 and 232 represent the temporal courses of the acceleration for the two predetermined motion trajectories blended according to the proposed technique. Furthermore, the curves 233 and 234 represent the acceleration constraints of the robot’s kinematic structure.

[0080] In the bottom most diagram of Fig. 2, the temporal courses of the jerk are illustrated. Curve 240 represent the temporal course of the jerk for the motion trajectory determined according to the proposed technique. The curves 241 and 242 represent the temporal courses of the jerk for the two predetermined motion trajectories blended according to the proposed technique. Furthermore, the curves 243 and 244 represent the jerk constraints of the robot’s kinematic structure.

[0081] As can be seen from the upper most diagram of Fig. 2, the curve 210 representing the blended motion trajectory is inside the polytope created by the curves 211 and 212 representing the predetermined motion trajectories. Furthermore, as can be seen from the other diagrams of Fig. 2, velocity, acceleration and jerk are well respecting the constrains of the robot’s kinematic structure.

[0082] Fig- 3 further illustrates exemplary temporal courses of nominal weighting factors and determined weighting factors for the two predetermined motion trajectories illustrated in Fig. 2.

[0083] Curve 310 represents the temporal course of the nominal weighting factor a1(t) for the predetermined motion trajectory represented by curves 211, 221, 231 and 241 in Fig. 2. Curve 311 represents the temporal course of the determined weighting factor <z1(t) for the predetermined motion trajectory represented by curves 211, 221, 231 and 241 in Fig. 2.

[0084] Curve 320 represents the temporal course of the nominal weighting factor a2(t) for the predetermined motion trajectory represented by curves 212, 222, 232 and 242 in Fig. 2. Curve 321 represents the temporal course of the determined weighting factor <z2(t) for the predetermined motion trajectory represented by curves 212, 222, 232 and 242 in Fig. 2. Fig- 4 illustrates in subfigures (a) and (b) the three-dimensional courses at position level of four predetermined motion trajectories and a motion trajectory determined according to the proposed technique from different points of view. In particular, curves 410, 420, 430 and 440 represent the temporal courses of the position for the four predetermined motion trajectories blended according to the proposed technique. Furthermore, curve 400 represents the temporal course of the position for the motion trajectory determined according to the proposed technique. Point 401 represents the starting point and point 402 the target point (desired end point) for the movement of the robot’s kinematic structure.

[0085] As can be seen from Fig. 4, the curve 400 representing the blended motion trajectory is inside the polytope created by the curves 410 to 440 representing the predetermined motion trajectories.

[0086] Fig- 5 illustrates exemplary temporal courses of nominal weighting factors and determined weighting factors for the four predetermined motion trajectories illustrated in Fig. 4.

[0087] Curves 510, 520, 530 and 540 represent the temporal courses of the nominal weighting factors «7(t) for the predetermined motion trajectory represented by curves 410, 420, 430 and 440 in Fig. 4. Curves 511, 521, 531 and 541 represent the temporal courses of the determined weighting factors <z7(t) for the predetermined motion trajectory represented by curves 410, 420, 430 and 440 in Fig. 4.

[0088] A motion trajectory determined according to the above principles of the proposed technique may be used for controlling motion of a robot’s kinematic structure. For highlighting this aspect, Fig. 6 further illustrates a robotic system 600 comprising a robot 610, which comprises a kinematic structure 611, and the apparatus 100 for determining a motion trajectory for the kinematic structure of the robot as described herein.

[0089] The apparatus 100 determines the motion trajectory for the time instant t (e.g., t = i + 1) based on a) the first input data 101 indicating a plurality of predetermined motion trajectories and b) the second input data 102 indicating the respective nominal weighting factor for each of the predetermined motion trajectories for the time instant t. For example, the first input data 101 may be provided from a library or memory of the robot system 600 (not illustrated in Fig. 6). The apparatus 100 outputs the output motion data 103 indicating the determined motion trajectory for the time instant t to the robot 610.

[0090] The robot 610 receives the motion data 103 from the apparatus 100 and causes motion of the kinematic structure based on (according to) the determined motion trajectory for the time instant t. For example, the robot 610 may comprise control circuitry 613 (e.g., a low-level controller) translating (converting) the determined motion trajectory for the time instant t into a low-level command (e.g., a target torque or current) for one or more actuators 612 of the robot driving the kinematic structure 611.

[0091] As indicated in Fig. 6, the respective nominal weighting factor for the time instant time instant t such as t = i + 1 may be determined by processing circuitry 620 of the robotic system 600. For example, the processing circuitry 620 may determine the respective nominal weighting factor a7for the time instant t = i + 1 based on an actual position of the kinematic structure 611 at the time instant t = i and positions (coordinates) of two or more of the plurality of predetermined motion trajectories at the time instant t = i. The actual position of the kinematic structure 611 at the time instant t = i may, e.g., be provided to the processing circuitry 620 from the robot 610 via corresponding feedback data 611.

[0092] For example, the respective nominal weighting factor a7for the time instant t = i + 1 may be determined as follows: with P*, P* and Pzbeing the actual three-dimensional position of the kinematic structure 611 for the time instant t = i, P^(t = i), P^(t = i) and Pz(t = i) being the three- dimensional position (coordinate) of a motion trajectory I out of the plurality of predetermined motion trajectories for the time instant t = i being the three-dimensional position of a motion trajectory j out of the plurality of predetermined motion trajectories for the time instant t = i (the motion trajectory I is different from the motion trajectory j). It is to be noted that the calculation the respective nominal weighting factor a7for the time instant t = i + 1 is not limited to the above example. Other mathematical expressions taking into account the actual position of the kinematic structure 611 at the time instant t = i and positions of two or more of the plurality of predetermined motion trajectories at the time instant t = i may be used as well.

[0093] The processing described above for a time instant t such as t = i + 1 may be performed iteratively (repeatedly for successive time instants) for controlling the robot 610. For example, processing described above for a time instant t such as t = i + 1 may be performed iteratively (repeatedly for successive time instants) until the robot 610’s kinematic structure 611 reaches the target position.

[0094] For further highlighting the motion trajectory determination described above, Fig. 7 illustrates a flowchart of a method 700 for determining a motion trajectory for a kinematic structure of a robot for a time instant t. The method 700 comprises receiving 702 first input data indicating a plurality of predetermined motion trajectories. The predetermined motion trajectories satisfy kinematic constraints of the kinematic structure. In addition, the method 700 comprises receiving 704 second input data indicating a respective nominal weighting factor for each of the predetermined motion trajectories for the time instant t. The method 700 further comprises determining 706 a respective weighting factor for each of the predetermined motion trajectories for the time instant t based on a minimization of the difference between the respective weighting factor for the time instant t and the respective nominal weighting factor for the time instant t. Additionally, the method 700 comprises determining 708 the motion trajectory for the time instant t by blending the predetermined motion trajectories based on the determined weighting factors for the time instant t.

[0095] Analogously to what is described above, the method 700 provides computationally efficient motion planning that avoids various limitations of conventional motion planning approaches.

[0096] More details and aspects of the method 700 are explained in connection with the proposed technique or one or more examples described above (e.g., Fig. 1 to Fig. 6). The method 700 may comprise one or more additional optional features corresponding to one or more aspects of the proposed technique or one or more examples described above. The proposed technique allows to generate the constrained motion of an actuator regardless of the integration method, which is used to generate the offline motions. There are numerous methods in learning from demonstrations to encode the trajectories. In the present disclosure, a framework is proposed to generate a new trajectory based on the demonstrated ones without encoding them. The approach introduced in the present disclosure emphasizes the closed-loop updating of the robot's motion concerning the nominal blending coefficients. One main use case of the proposed technique is to generate a constrained motion of an actuator online without a need to embedding procedure.

[0097] The proposed technique particularly addresses the following demands in the field of robotics: a) fast changing environment: Robot motion trajectories should be computed extremely fast (e.g., at the order of a few milliseconds or on-demand) to respect new environmental changes such as collisions with moving objects or to track moving targets whose trajectories change abruptly. b) strict jerk constraints: A robot is constrained by derivative limits in position, velocity, acceleration, and jerk (the derivative of acceleration). Disrespecting any of these constraints leads to an error. Strict jerk limits are used to reduce mechanical stress, wear and tear, and ultimately maintenance and down-time cost; issues that are of ultimate importance in manufacturing, for example.

[0098] There has been little focus in the robotics filed on methods that specifically address both requirements a) fast changing environment and b) strict jerk constraints. When robots with jerk constraints are controlled, trajectories are typically computed offline and carefully verified prior to deployment (e.g., as it is typical in industrial applications where motions are repetitive and the environment is static). Conversely, robots such as robotic arms that prioritize ease of control and high adaptability over maintenance and durability tend to not impose strict constraints up to the jerk level. Such robots are much less common and not readily available when compared to industrial robots since their demand is lower. These robots are usually found in research environments. Since those “research” robots are made for flexibility, they are restricted in terms of availability, speed, weight, and form factor.

[0099] The proposed technique allows to generate jerk constrained trajectories at high frequencies of re-planning, which in turn allows to expand the scope of use of fast industrial robots (e.g. jerk limited) to applications that involve highly dynamical / adaptive tasks. The benefit of the proposed technique is two-fold. For academic and research labs, the benefit is that the poll of available robots potentially expands to those aimed at industrial applications. Industrial robots are not only widely available in different size, shapes, and forms, but also have a low- price tag while requiring less maintenance. The benefit for the industry is that the range of applications and tasks can be more easily expanded to those in which environments are not static and require rapid, unforeseen changes in the robot trajectory.

[0100] The following examples pertain to further embodiments:

[0101] (1) An apparatus for determining a motion trajectory for a kinematic structure of a robot for a time instant t, the apparatus comprising: interface circuitry configured to: receive first input data indicating a plurality of predetermined motion trajectories, wherein the predetermined motion trajectories satisfy kinematic constraints of the kinematic structure; and receive second input data indicating a respective nominal weighting factor for each of the predetermined motion trajectories for the time instant t; and processing circuitry configured to: determine a respective weighting factor for each of the predetermined motion trajectories for the time instant t based on a minimization of the difference between the respective weighting factor for the time instant t and the respective nominal weighting factor for the time instant t; and determine the motion trajectory for the time instant t by blending the predetermined motion trajectories based on the determined weighting factors for the time instant t.

[0102] (2) The apparatus of (1), wherein the processing circuitry is configured to determine the respective weighting factor for the time instant t under the constraint that the sum of the weighting factors for the time instant t is one.

[0103] (3) The apparatus of (1) or (2), wherein the processing circuitry is configured to determine the respective weighting factor for the time instant t under the constraint that the re- spective weighting factor for the time instant t is smaller than one and equal to or greater than zero.

[0104] (4) The apparatus of any one of (1) to (3), wherein the processing circuitry is configured to determine the respective weighting factor for the time instant t under constraints for position and velocity of the kinematic structure and optionally constraints for acceleration and jerk of the kinematic structure.

[0105] (5) The apparatus of (4), wherein the processing circuitry is configured to determine the respective weighting factor for the time instant t using a system of mathematical expressions comprising terms for the constraints for position and velocity of the kinematic structure and optionally terms for the constraints for acceleration and jerk of the kinematic structure.

[0106] (6) The apparatus of (5), wherein the time instant t = i + 1, and wherein the system of mathematical expressions further comprises terms for the respective weighting factor for the time instant t = i and terms for derivatives of the respective weighting factor for the time instant t = i.

[0107] (7) The apparatus of (5) or (6), wherein the time instant t = i + 1, and wherein the system of mathematical expressions further comprises terms for one or more of a position of the kinematic structure for the time instant t = i, a velocity of the kinematic structure for the time instant t = i and an acceleration of the kinematic structure for the time instant t = i.

[0108] (8) The apparatus of (7), wherein the one or more of the position of the kinematic structure for the time instant t = i, the velocity of the kinematic structure for the time instant t = i and the acceleration of the kinematic structure for the time instant t = i are derived from a previously calculated motion trajectory for the kinematic structure for the time instant t = i.

[0109] (9) The apparatus of any one of (1) to (8), wherein the time instant t = i + 1, and wherein the processing circuitry is configured to determine the respective weighting factor for the time instant t = i + 1 by minimizing a mathematical expression comprising at least a term for the respective weighting factor for the time instant t = i + 1, a term for the respective weighting factor for the time instant t = i and a term for the respective nominal weighting factor for the time instant t = i + 1.

[0110] (10) The apparatus of (9), wherein the mathematical expression further comprises a term for a derivative of the respective weighting factor for the time instant t = i + 1 and a term for a derivative of the respective weighting factor for the time instant t = i.

[0111] (11) The apparatus of (9) or (10), wherein the mathematical expression is minimized with respect to a derivative of the respective weighting factor for the time instant t = i + 1.

[0112] (12) The apparatus of any one of (9) to (11), wherein the processing circuitry is configured to determine the respective weighting factor for the time instant t = i + 1 by minimizing a mathematical expression which is mathematically equivalent to: with a being a vector representing the respective nominal weighting factor for the time instant t = i + 1, atbeing a vector representing the respective weighting factor for the time instant t = i, being a vector representing first order derivates of the respective weighting factor for the time instant t = i, aibeing a vector representing second order derivates of the respective weighting factor for the time instant t = i and ai+1being a vector representing third order derivates of the respective weighting factor for the time instant t = i + 1.

[0113] (13) The apparatus of any one of (1) to (12), wherein the interface circuitry is further configured to output motion data indicating the determined motion trajectory for the time instant t.

[0114] (14) A robotic system comprising: an apparatus according to any one of (1) to (13); and a robot comprising the kinematic structure and being configured to: receive motion data indicating the determined motion trajectory for the time instant t from the apparatus; and cause motion of the kinematic structure based on the determined motion trajectory for the time instant t. (15) The robotic system of (14), wherein the time instant t = i + 1, and wherein the system further comprises: processing circuitry configured to determine the respective nominal weighting factor for the time instant t = i + 1 based on an actual position of the kinematic structure at the time instant t = i and positions of two or more of the plurality of predetermined motion trajectories at the time instant t = i.

[0115] (16) A method for determining a motion trajectory for a kinematic structure of a robot for a time instant t, the method comprising: receiving first input data indicating a plurality of predetermined motion trajectories, wherein the predetermined motion trajectories satisfy kinematic constraints of the kinematic structure; receiving second input data indicating a respective nominal weighting factor for each of the predetermined motion trajectories for the time instant t; determining a respective weighting factor for each of the predetermined motion trajectories for the time instant t based on a minimization of the difference between the respective weighting factor for the time instant t and the respective nominal weighting factor for the time instant t; and determining the motion trajectory for the time instant t by blending the predetermined motion trajectories based on the determined weighting factors for the time instant t.

[0116] (17) A non-transitory machine-readable medium having stored thereon a program having a program code for performing the method according to (16), when the program is executed on a processor or a programmable hardware.

[0117] (18) A program having a program code for performing the method according to (16), when the program is executed on a processor or a programmable hardware.

[0118] The aspects and features described in relation to a particular one of the previous examples may also be combined with one or more of the further examples to replace an identical or similar feature of that further example or to additionally introduce the features into the further example. Examples may further be or relate to a (computer) program including a program code to execute one or more of the above methods when the program is executed on a computer, processor or other programmable hardware component. Thus, steps, operations or processes of different ones of the methods described above may also be executed by programmed computers, processors or other programmable hardware components. Examples may also cover program storage devices, such as digital data storage media, which are machine-, processor- or computer-readable and encode and / or contain machine-executable, processor-executable or computer-executable programs and instructions. Program storage devices may include or be digital storage devices, magnetic storage media such as magnetic disks and magnetic tapes, hard disk drives, or optically readable digital data storage media, for example. Other examples may also include computers, processors, control units, (field) programmable logic arrays ((F)PLAs), (field) programmable gate arrays ((F)PGAs), graphics processor units (GPU), ASICs, integrated circuits (ICs) or system-on-a-chip (SoCs) systems programmed to execute the steps of the methods described above.

[0119] It is further understood that the disclosure of several steps, processes, operations or functions disclosed in the description or claims shall not be construed to imply that these operations are necessarily dependent on the order described, unless explicitly stated in the individual case or necessary for technical reasons. Therefore, the previous description does not limit the execution of several steps or functions to a certain order. Furthermore, in further examples, a single step, function, process or operation may include and / or be broken up into several substeps, -functions, -processes or -operations.

[0120] If some aspects have been described in relation to a device or system, these aspects should also be understood as a description of the corresponding method. For example, a block, device or functional aspect of the device or system may correspond to a feature, such as a method step, of the corresponding method. Accordingly, aspects described in relation to a method shall also be understood as a description of a corresponding block, a corresponding element, a property or a functional feature of a corresponding device or a corresponding system.

[0121] The following claims are hereby incorporated in the detailed description, wherein each claim may stand on its own as a separate example. It should also be noted that although in the claims a dependent claim refers to a particular combination with one or more other claims, other examples may also include a combination of the dependent claim with the subject matter of any other dependent or independent claim. Such combinations are hereby explicitly proposed, unless it is stated in the individual case that a particular combination is not intend- ed. Furthermore, features of a claim should also be included for any other independent claim, even if that claim is not directly defined as dependent on that other independent claim.

Claims

ClaimsWhat is claimed is:

1. An apparatus for determining a motion trajectory for a kinematic structure of a robot for a time instant t, the apparatus comprising: interface circuitry configured to: receive first input data indicating a plurality of predetermined motion trajectories, wherein the predetermined motion trajectories satisfy kinematic constraints of the kinematic structure; and receive second input data indicating a respective nominal weighting factor for each of the predetermined motion trajectories for the time instant t; and processing circuitry configured to: determine a respective weighting factor for each of the predetermined motion trajectories for the time instant t based on a minimization of the difference between the respective weighting factor for the time instant t and the respective nominal weighting factor for the time instant t; and determine the motion trajectory for the time instant t by blending the predetermined motion trajectories based on the determined weighting factors for the time instant t.

2. The apparatus of claim 1, wherein the processing circuitry is configured to determine the respective weighting factor for the time instant t under the constraint that the sum of the weighting factors for the time instant t is one.

3. The apparatus of claim 1, wherein the processing circuitry is configured to determine the respective weighting factor for the time instant t under the constraint that the respective weighting factor for the time instant t is smaller than one and equal to or greater than zero.

4. The apparatus of claim 1, wherein the processing circuitry is configured to determine the respective weighting factor for the time instant t under constraints for position and veloc-ity of the kinematic structure and optionally constraints for acceleration and jerk of the kinematic structure.

5. The apparatus of claim 4, wherein the processing circuitry is configured to determine the respective weighting factor for the time instant t using a system of mathematical expressions comprising terms for the constraints for position and velocity of the kinematic structure and optionally terms for the constraints for acceleration and jerk of the kinematic structure.

6. The apparatus of claim 5, wherein the time instant t = i + 1, and wherein the system of mathematical expressions further comprises terms for the respective weighting factor for the time instant t = i and terms for derivatives of the respective weighting factor for the time instant t = i.

7. The apparatus of claim 5, wherein the time instant t = i + 1, and wherein the system of mathematical expressions further comprises terms for one or more of a position of the kinematic structure for the time instant t = i, a velocity of the kinematic structure for the time instant t = i and an acceleration of the kinematic structure for the time instant t = i.

8. The apparatus of claim 7, wherein the one or more of the position of the kinematic structure for the time instant t = i, the velocity of the kinematic structure for the time instant t = i and the acceleration of the kinematic structure for the time instant t = i are derived from a previously calculated motion trajectory for the kinematic structure for the time instant t = i.

9. The apparatus of claim 1, wherein the time instant t = i + 1, and wherein the processing circuitry is configured to determine the respective weighting factor for the time instant t = i + 1 by minimizing a mathematical expression comprising at least a term for the respective weighting factor for the time instant t = i + 1, a term for the respective weighting factor for the time instant t = i and a term for the respective nominal weighting factor for the time instant t = i + 1.

10. The apparatus of claim 9, wherein the mathematical expression further comprises a term for a derivative of the respective weighting factor for the time instant t = i + 1 and a term for a derivative of the respective weighting factor for the time instant t = i.

11. The apparatus of claim 9, wherein the mathematical expression is minimized with respect to a derivative of the respective weighting factor for the time instant t = i + 1.

12. The apparatus of claim 9, wherein the processing circuitry is configured to determine the respective weighting factor for the time instant t = i + 1 by minimizing a mathematical expression which is mathematically equivalent to:with a being a vector representing the respective nominal weighting factor for the time instant t = i + 1, atbeing a vector representing the respective weighting factor for the time instant t = i,being a vector representing first order derivates of the respective weighting factor for the time instant t = i, aibeing a vector representing second order derivates of the respective weighting factor for the time instant t = i and ai+1being a vector representing third order derivates of the respective weighting factor for the time instant t = i + 1.

13. The apparatus of claim 1, wherein the interface circuitry is further configured to output motion data indicating the determined motion trajectory for the time instant t.

14. A robotic system comprising: an apparatus according to claim 1; and a robot comprising the kinematic structure and being configured to: receive motion data indicating the determined motion trajectory for the time instant t from the apparatus; and cause motion of the kinematic structure based on the determined motion trajectory for the time instant t.

15. The robotic system of claim 14, wherein the time instant t = i + 1, and wherein the system further comprises: processing circuitry configured to determine the respective nominal weighting factor for the time instant t = i + 1 based on an actual position of the kinematic structure at the time in-stant t = i and positions of two or more of the plurality of predetermined motion trajectories at the time instant t = i.

16. A method for determining a motion trajectory for a kinematic structure of robot for a time instant t, the method comprising: receiving first input data indicating a plurality of predetermined motion trajectories, wherein the predetermined motion trajectories satisfy kinematic constraints of the kinematic structure; receiving second input data indicating a respective nominal weighting factor for each of the predetermined motion trajectories for the time instant t; determining a respective weighting factor for each of the predetermined motion trajectories for the time instant t based on a minimization of the difference between the respective weighting factor for the time instant t and the respective nominal weighting factor for the time instant t; and determining the motion trajectory for the time instant t by blending the predetermined motion trajectories based on the determined weighting factors for the time instant t.

17. A non-transitory machine-readable medium having stored thereon a program having a program code for performing the method according to claim 16, when the program is executed on a processor or a programmable hardware.

18. A program having a program code for performing the method according to claim 16, when the program is executed on a processor or a programmable hardware.

Citation Information

Patent Citations

  • ?

    KR1020220163893A