Optimized robotic arm trajectory

By determining the trajectory of the load centroid on the robot arm and applying vertical and horizontal acceleration time curves, the problem of difficulty in achieving maximum speed and acceleration in the robot arm in the prior art is solved, and more efficient load transportation and shorter travel time are achieved.

CN119907732APending Publication Date: 2025-04-29EXOTEC PRODUCT FRANCE
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380066282.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-09-16
Filing Date
2023-09-12
Publication Date
2025-04-29

AI Technical Summary

Technical Problem

Existing robot arms are difficult to achieve maximum speed and acceleration when moving the load, resulting in a prolonged cycle time and actuators are prone to release load due to excessive force.

Method used

By determining the trajectory of the load centroid, using vertical and horizontal acceleration time curves, including continuous and uninterrupted acceleration and deceleration phases, control instructions are sent to the actuator of the robot arm to apply the trajectory curve of the load centroid.

Benefits of technology

It is possible to carry heavier loads on the same robot arm and/or shorten travel time while avoiding the load being pulled away from the end effector, improving transportation efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119907732A_ABST
    Figure CN119907732A_ABST
Patent Text Reader

Abstract

The present disclosure relates to a method for moving a load from a starting point to an ending point by a robotic arm comprising a plurality of sections and at least one end effector at the ends of the plurality of sections capable of attaching the load, the method comprises: determining a trajectory of the center of mass of the load between the starting point at an initial time and at a zero velocity and the ending point at a final time and at a zero velocity, the trajectory passing through at least one local height extremum of the center of mass of the load at which a vertical velocity is zero, the determination of the trajectory comprises: determining a vertical acceleration time profile comprising continuous and uninterrupted vertical acceleration phases and vertical deceleration phases in each interval between the start point, the end point and a local height extremum; and determining a horizontal acceleration time profile comprising at least one horizontal acceleration phase and at least one horizontal deceleration phase which are continuous and uninterrupted between a fourth time greater than or equal to the initial time and a sixth time less than or equal to the final time; a control command is sent to at least one actuator of the robotic arm for applying the trajectory curve of the center of mass of the load.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of robotic arms. More specifically, the present disclosure relates to the calculation of optimized trajectories of a robotic arm for transporting a load. Background Art

[0002] A robotic arm, also called an articulated arm, is a robot that makes it possible to move a load. To do this, the robotic arm has several articulated sections, at the end of which are actuators to which the load can be attached. Thus, the relative movement of the articulated arm allows the actuator to move the load from one point to another. The actuator is the gripping member of the robotic arm used to grip the load in question, usually consisting of a clamp or a suction cup.

[0003] In general, it is desirable to operate such a robot arm at maximum velocity and acceleration in order to obtain the shortest possible cycle time. The cycle time is the time it takes the robot to move a load from its starting point to its desired final destination: for example, from one storage box to another or a packaging container. A reduction in cycle time is accompanied by logistical and, therefore, financial gains. However, the search for maximum velocity and acceleration is not without a certain number of technical problems.

[0004] When moving a load, the acceleration applied to the load causes forces to be applied to the load. These forces have a normal component that is collinear with the orientation of the end segment of the robot, and a tangential component that is orthogonal to the orientation of the end segment of the robot. Applying too much force to the load can cause the actuator to release the load if the force is greater than the maximum force the actuator can withstand. Tangential forces are particularly difficult to withstand for most actuators, especially suction cup type actuators. Other actuators may have forces in different directions that are particularly difficult to withstand.

[0005] Generally speaking, the greater the acceleration applied to the load and the greater the mass of the load, the greater the force. Therefore, the limit of the force that the actuator can withstand can restrict the movement that the robot arm can apply to the load in two ways:

[0006] -The mass of the load to be moved can be limited;

[0007] -The acceleration applied to the load can be limited, which increases the travel time of the load for a given movement.

[0008] To overcome these limitations, one solution is to use a robotic arm with more powerful actuators that can support greater forces. However, such robotic arms and actuators can be more expensive and bulky.

[0009] Therefore, there is a need to increase the load that can be moved by the same robotic arm, and / or to reduce the travel time of a load between two points by the same robotic arm. This need can also be expressed as a need to transport the same mass of load between two points faster.

[0010] It is also necessary to have a curve for managing the trajectory of the robot arm which takes into account the mechanical constraints of the robot, such as the maximum acceleration that is physically achievable, operating constraints, etc.

[0011] It is also necessary to have a strategy for managing the trajectory and acceleration profile of the robot arm in order to optimize travel time while avoiding the load being pulled away from the end effector.

[0012] This strategy also needs to be able to account for the presence of obstacles in the load’s path from its starting point to its final destination. Summary of the invention

[0013] The present disclosure improves this situation.

[0014] A method for moving a load from a starting point to an end point by a robot arm is provided, the robot arm comprising a plurality of sections and at least one end effector capable of attaching a load at the ends of the plurality of sections, the method comprising: determining a trajectory of the center of mass of the load between a starting point at an initial time and zero velocity and an end point at a final time and zero velocity, the trajectory passing through at least one local extreme value of height where the vertical velocity of the center of mass of the load is zero, the determination of the trajectory comprising: determining a vertical acceleration time curve comprising continuous and uninterrupted vertical acceleration phases and vertical deceleration phases in each interval between the starting point, the end point and the local extreme value of height; and determining a horizontal acceleration time curve comprising continuous and uninterrupted at least one horizontal acceleration phase and at least one horizontal deceleration phase between a fourth time greater than or equal to the initial time and a sixth time less than or equal to the final time; and sending a control instruction to at least one effector of the robot arm for applying the trajectory curve of the center of mass of the load.

[0015] The term "tip" of the robot arm is understood to mean the freely movable mobile end of the segment of the robot arm. Thus, the tip usually corresponds to the rearmost end of the rearmost segment relative to the base of the robot, in direct contact with the actuator.

[0016] The term "end effector" should be understood to refer to an effector capable of attaching a load and located at the end of a robot arm. In the context of the present disclosure, the end effector may be referred to simply as an "effector".

[0017] The term "local extreme of height" is understood to mean the local minimum or maximum height of the center of mass of the load in the trajectory.

[0018] The term "continuous" is understood to mean a series of stages without intermediate stages; thus, a continuous series of vertical acceleration stages and vertical deceleration stages may include an acceleration stage followed by a deceleration stage, or a deceleration stage followed by an acceleration stage, but will not include a zero acceleration stage. Similarly, a continuous series of at least one horizontal acceleration stage and at least one horizontal deceleration stage may include one or more horizontal acceleration and deceleration stages, but will not include a zero horizontal acceleration stage (or a constant horizontal speed); a zero acceleration point may only exist between two consecutive acceleration and deceleration stages.

[0019] The term "vertical acceleration phase" is understood to mean a time phase during which the vertical velocity of the center of mass of the load increases. This can be an ascending vertical acceleration phase, during which the center of mass of the load rises faster and faster (vertical velocity is positive and the absolute value of the velocity increases), or a descending vertical acceleration phase, during which the center of mass of the load descends slower and slower (vertical velocity is negative and the absolute value of the velocity decreases).

[0020] The term "vertical deceleration phase" is understood to mean a time phase during which the vertical velocity of the center of mass of the load decreases. This can be a descending vertical deceleration phase, during which the center of mass of the load descends faster and faster (the vertical velocity is negative and the absolute value of the velocity increases), or an ascending vertical deceleration phase, during which the center of mass of the load ascends slower and slower (the vertical velocity is positive and the absolute value of the velocity decreases).

[0021] The term "horizontal acceleration phase" should be understood to mean a phase in which the absolute value of the horizontal velocity increases.

[0022] The term "horizontal deceleration phase" is understood to mean a phase in which the absolute value of the horizontal speed decreases.

[0023] The term "control instructions" should be understood to mean any instructions or information that can be followed or executed by the robot arm in order to apply the determined trajectory to the center of mass of the load.

[0024] Thus, between the fourth and sixth times, the vertical acceleration curve of the center of mass of the load does not include any zero acceleration phase, and the horizontal acceleration curve does not include any zero acceleration phase.

[0025] This makes it possible to obtain lower accelerations for a longer duration for a given travel time of a trajectory and therefore apply less force to the load for the same travel time. This therefore makes it possible to carry heavier loads with the same robot arm and / or benefit from faster trajectories without the risk of the end effector releasing the load.

[0026] The trajectory determined by the method according to the invention and applied to the load is characterized by pairs of vertical acceleration and deceleration phases between two points of zero vertical velocity and acceleration, without phases of constant vertical velocity (and therefore zero acceleration).

[0027] According to another aspect, a computer program is provided comprising instructions for implementing a method according to one of the embodiments of the present disclosure when the program is executed by a processor.

[0028] According to another aspect, a non-transitory computer-readable storage medium is provided, on which a program is stored, and when the program is executed by a processor, the program is used to implement the method according to one of the embodiments of the present disclosure.

[0029] According to another aspect, a robotic system capable of moving a load from a starting point to an end point is provided, comprising: at least one robotic arm comprising a plurality of segments and at least one end effector at the ends of the plurality of segments to which a load can be attached; and at least one computing unit configured to execute a method according to one of the embodiments of the present disclosure.

[0030] The term "computing unit" is understood to refer to an electronic component capable of performing electronic or computer calculations to perform a determined function. A computing unit may refer to any type of processor or electronic component capable of performing numerical calculations. For example, a computing unit may be an integrated circuit, an application specific integrated circuit (ASIC), a microcontroller, a microprocessor, a digital signal processor (DSP), a processor, or a graphics processing unit (GPU). A computing unit according to the present invention is not limited to a particular type of computing architecture. For example, a processor may implement a Harvard or Von Neumann type architecture.

[0031] The features set out in the following paragraphs may optionally be implemented independently of one another or in combination with one another:

[0032] In one set of embodiments of the invention, a horizontal or vertical acceleration or deceleration phase starts with an increase in the absolute value of the acceleration with a predefined jerk, until a maximum absolute value of the acceleration in the phase, and ends with a decrease in the absolute value of the acceleration with a predefined jerk.

[0033] The term "jerk" is understood to mean the derivative of acceleration, e.g. -3 Indicates that it can be represented by the symbol J.

[0034] The predefined jerk may be predefined, for example, for a given robot arm according to its mechanical constraints. The jerk may be the same for all phases, or different depending on the acceleration phase. For example, the predefined jerk may be different for horizontal or vertical acceleration, for acceleration or deceleration, etc.

[0035] This makes it possible to obtain physically achievable trajectories for robots which are usually not able to suddenly switch from one acceleration to a very different acceleration.

[0036] In one set of embodiments of the invention, the method comprises calculating the maximum absolute value of acceleration in a phase as the minimum value between the maximum possible acceleration value and half the duration of the phase multiplied by said predefined jerk.

[0037] The term "maximum possible acceleration value" is understood to mean the maximum possible absolute acceleration value, which may be defined according to different constraints: robot mechanical constraints with physically achievable maximum acceleration, operational constraints, etc.

[0038] This therefore makes it possible to obtain an acceleration curve which is achievable for the robot and which complies with the maximum possible acceleration.

[0039] In one set of embodiments of the invention, two consecutive acceleration and deceleration phases are such that the speed at the end of the deceleration phase is equal to the speed at the beginning of the acceleration phase.

[0040] In one set of embodiments of the present invention, two consecutive acceleration and deceleration phases are such that: the maximum absolute value of the acceleration in the consecutive acceleration phases (|Az1|, |Az4|, |Ax1|) multiplied by the time of the consecutive acceleration phases minus the maximum absolute value of the acceleration in the consecutive acceleration phases divided by the predefined jerk =Equal to the maximum absolute value of the acceleration in the continuous deceleration phase (|Az2|, |Az3|, |Ax2|) multiplied by the time of the continuous deceleration phase minus the maximum absolute value of the acceleration in the continuous deceleration phase divided by the predefined jerk

[0041] This makes it possible to obtain a total acceleration equal in absolute value to the total deceleration in both phases and therefore to obtain the same speed, for example zero speed, between the initial and final times of the acceleration and deceleration phases.

[0042] In a group of embodiments of the present invention, the method includes: calculating the fourth time as the time when the horizontal movement starts, so that the center of mass of the load moves horizontally at most a first horizontal distance when its height is greater than or equal to the height of the starting point plus the first vertical margin; calculating the sixth time as the time when the horizontal movement ends, so that the center of mass of the load is at most a second horizontal distance away from the end point when its height is greater than or equal to the height of the end point plus the second vertical margin.

[0043] "Start of horizontal movement" is understood to mean the time when the center of mass of the load starts to move away from the starting point.

[0044] The term "end of the horizontal movement" is understood to mean the time when the center of mass of the load reaches above the end point in the horizontal direction.

[0045] This allows horizontal movement to be performed starting from a given vertical distance above the start and end points of the trajectory, which makes it possible to avoid obstacles at the start and end points of the trajectory.

[0046] In this case, it can be seen that the horizontal movement starts after / ends before the vertical movement, and the associated delay corresponds to the height difference in the vertical trajectory.

[0047] In a set of embodiments of the present invention, the method includes: calculating the fourth time as the first time when the absolute value of the acceleration takes a maximum value in the first vertical acceleration or deceleration stage; and calculating the sixth time as the first time when the absolute value of the acceleration takes a maximum value in the first vertical acceleration or deceleration stage.

[0048] This makes it possible to avoid increasing the horizontal acceleration when the vertical acceleration is high (Az1 or Az4), at the beginning of ascent or at the end of descent, and thus to limit the forces applied to the load.

[0049] In a set of embodiments of the present invention, the trajectory of the center of mass of the load includes a maximum height point as a single local extreme value of height; the vertical acceleration time curve continuously includes a first vertical acceleration phase from an initial time to a first time, a first vertical deceleration phase to a second time passing the maximum height point, a second deceleration phase to a third time, and a second acceleration phase to a final time; and the horizontal acceleration time curve continuously includes a horizontal acceleration phase from a fourth time greater than or equal to the initial time to a fifth time, and then a horizontal deceleration phase from the fifth time to a sixth time less than or equal to the final time.

[0050] This makes it possible to obtain a trajectory between the starting point and the end point that is as simple and therefore as fast as possible.

[0051] The trajectory is characterized by an ascending phase followed by a descending phase, during each phase the speed increases and then decreases, rather than being constant. In the same way, the vertical trajectory is characterized by an acceleration followed by a deceleration.

[0052] In a set of embodiments of the present invention, the method includes: selecting a first time, a second time and a third time from a first predefined interval, a second predefined interval and a third predefined interval, respectively; calculating the maximum absolute value of acceleration in a first vertical acceleration phase as the minimum value between: a maximum possible acceleration value; and half of the difference between the first time and an initial time multiplied by a predefined acceleration; calculating the maximum absolute value of acceleration in a first deceleration phase based on the maximum absolute value in the first acceleration phase; and calculating the maximum absolute value of acceleration in a second vertical deceleration phase, the maximum absolute value of acceleration in a second vertical acceleration phase and a final time of reaching an end point.

[0053] This makes it possible to obtain all horizontal and vertical acceleration profiles for a given trajectory while complying with the mechanical constraints of the robot arm.

[0054] In one set of embodiments of the invention, the method includes calculating the fifth time as a median time between the fourth time and the sixth time.

[0055] This makes it possible to obtain longer horizontal acceleration and deceleration phases, thereby limiting the amplitude of the horizontal acceleration and therefore the angle of the actuator.

[0056] In one set of embodiments of the invention, the trajectory of the center of mass of the load is defined in a vertical plane including the starting point and the end point; and the horizontal acceleration curve is a one-dimensional acceleration curve.

[0057] This makes it possible to obtain a shorter and therefore faster trajectory between the starting point and the end point.

[0058] In one set of embodiments of the invention, the trajectory of the centre of mass of the load is defined in three dimensions between a start point and an end point, and the horizontal acceleration profile is a two-dimensional acceleration profile.

[0059] This makes it possible to obtain complex trajectories in 3D, for example in order to avoid obstacles.

[0060] In one set of embodiments of the present invention, the method includes: determining a time curve of the orientation of the end segment of the robot arm that allows minimizing the tangential force applied to the load based on the vertical acceleration time curve, the horizontal acceleration time curve and the gravitational acceleration; and the control instructions for the trajectory curve of the center of mass of the applied load include the time curve of the orientation of the end segment.

[0061] The term "minimizing tangential force" is understood to mean making the tangential force as small as possible. This may, for example, mean making the tangential force tend to zero within the limits of the mechanical capabilities of the robot arm and / or limiting the tangential force to below a maximum absolute value.

[0062] Thus, the orientation of the end section makes it possible to compensate to a large extent the tangential forces caused by gravity and the acceleration of the center of mass of the load. This makes it possible to move heavier loads (and therefore generate higher tangential forces) with the same actuator and / or to increase the speed of movement of the center of mass of the load with the same end effector, without the risk of the load falling.

[0063] In this case, it can be seen that the robot arm applies a movement to move the starting end of the segment and orient the end segment. Therefore, there is an actuator that allows the end segment to be oriented. It can also be seen that the end segment will tend to orient itself in the direction of the force applied to the load, so that the force is overwhelmingly a normal force. Therefore, a correlation can be observed between the direction of the force applied to the load and the orientation of the end segment.

[0064] In a set of embodiments of the present invention, determining a time curve of the orientation of the end segment that allows minimizing the tangential force applied to the load includes: determining a target time curve of the orientation of the end segment that allows offsetting the tangential force applied to the load; and determining the time curve of the orientation of the end segment based on the target time curve of the orientation of the end segment.

[0065] This makes it possible to obtain a time curve which is as close as possible to the orientation of the end section of the target curve, which allows the tangential forces to be completely offset.

[0066] In one set of embodiments of the present invention, a target time curve for the orientation of the end segment that allows counteracting the tangential forces applied to the load is determined by calculating, at all moments between an initial time and a final time, an orientation value equal to the inverse tangent of the horizontal acceleration divided by the sum of the vertical acceleration and the acceleration due to gravity.

[0067] This makes it possible to obtain the orientation angle of the total acceleration applied to the load at any time. If this target angle of orientation is applied to the load, there will therefore be only normal forces, but no tangential forces.

[0068] In a set of embodiments of the present invention, determining the time curve of the orientation of the end segment based on the target time curve of the orientation of the segment includes: determining the time curve of the maximum orientation and the time curve of the minimum orientation of the end segment by adding and subtracting the angle corresponding to the maximum tangential force from the target time curve of the orientation, respectively.

[0069] This makes it possible to obtain at each moment the minimum and maximum angles at which the tangential force applied to the load complies with the capabilities of the end effector and thus to apply a curve with an orientation that satisfies the mechanical constraints of the effector.

[0070] In a set of embodiments of the present invention, determining the time curve of the orientation of the terminal segment based on the target time curve of the segment's orientation includes: generating a set of candidate time curves for the orientation of the terminal segment; deleting the set of candidate time curves for the orientation of the terminal segment whose orientation at at least one time is less than the orientation of the minimum time curve of the orientation or greater than the orientation of the maximum time curve of the orientation; and selecting a median candidate curve for the orientation from the remaining candidates.

[0071] This makes it possible to obtain a curve with an orientation as close as possible to the optimum curve, while ensuring that it complies with the safety margins with regard to the load orientation. BRIEF DESCRIPTION OF THE DRAWINGS

[0072] Other features, details and advantages will become apparent from reading the following detailed description and analyzing the accompanying drawings, in which:

[0073] Figure 1

[0074] [ Figure 1 ] shows an example of a robot arm according to a set of embodiments of the present invention.

[0075] Figure 2

[0076] [ Figure 2 ] shows an exemplary robotic system according to a set of embodiments of the present invention.

[0077] Figure 3

[0078] [ Figure 3 ] shows a first example of a method for moving a load according to a set of embodiments of the present invention.

[0079] Figure 4a

[0080] [ Fig. 4a ] shows a first example of the trajectory of the center of mass of a load according to a set of embodiments of the present invention.

[0081] Figure 4b

[0082] [ FIG. 4 b ] shows a first example of time curves of the position, velocity and acceleration of the center of mass of a load according to a set of embodiments of the present invention.

[0083] Figure 5

[0084] [ Figure 5 ] shows a second example of the trajectory of the center of mass of a load according to a set of embodiments of the present invention.

[0085] Figure 6

[0086] [ Figure 6] shows a second example of a method for moving a load according to a set of embodiments of the present invention.

[0087] Figure 7

[0088] Figure 7 An example of a 3-dimensional trajectory according to a set of embodiments of the present invention is shown.

[0089] Figure 8

[0090] [ Figure 8 ] shows an example of a target time curve for determining the orientation of an end segment of a robot arm in one set of embodiments of the present invention.

[0091] Fig. 9

[0092] [ Fig. 9 ] shows an example of determining the target angle, maximum angle and minimum orientation angle of the end segment of a robot arm in a set of embodiments of the present invention.

[0093] Fig.10

[0094] Fig.10 Examples of curves defining orientations for an end section of a robot arm are shown according to a set of embodiments of the present invention.

[0095] Fig.11

[0096] [ Fig.11 ] shows a third example of a method for moving a load according to a set of embodiments of the present invention.

[0097] Fig.12a

[0098] [ Fig. 12a ] shows a first example of the load trajectory and the position of the end section of the robot arm obtained by the method according to a set of embodiments of the present invention.

[0099] Figure 12b

[0100] 12b shows a first example of time profiles of the vertical acceleration of the center of mass of a load, the horizontal acceleration of the center of mass of the load and the orientation of the end section of a robot arm according to a set of embodiments of the invention.

[0101] Fig.13a

[0102] [ Fig. 13a ] shows a second example of the load trajectory and the position of the end section of the robot arm obtained by the method according to a set of embodiments of the present invention.

[0103] Fig.13b

[0104] 13b shows a second example of time profiles of the vertical acceleration of the center of mass of the load, the horizontal acceleration of the center of mass of the load and the orientation of the end section of the robot arm according to a set of embodiments of the invention.

[0105] Fig.14a

[0106] [ Fig. 14a ] shows a third example of the load trajectory and the position of the end section of the robot arm obtained by the method according to a set of embodiments of the present invention.

[0107] Fig.14b

[0108] 14b shows a second example of time profiles of the vertical acceleration of the center of mass of the load, the horizontal acceleration of the center of mass of the load and the orientation of the end section of the robot arm according to a set of embodiments of the invention.

[0109] Fig.15a

[0110] [ Fig. 15a ] shows a fourth example of the load trajectory and the position of the end section of the robot arm obtained by the method according to a set of embodiments of the present invention.

[0111] Fig.15b

[0112] 15b shows a second example of time profiles of the vertical acceleration of the center of mass of the load, the horizontal acceleration of the center of mass of the load and the orientation of the end section of the robot arm according to a set of embodiments of the invention. DETAILED DESCRIPTION

[0113] Reference now Figure 1 .

[0114] Figure 1 An example of a robot arm BR according to a set of embodiments of the present invention is shown.

[0115] exist Figure 1 In the example of , the robot arm BR allows to transport the load Cha from the first box Bc1 to the second box Bc2. For example, the robot arm BR can be used to move objects from the first box to the second box one by one, or to sort the objects in the first box.

[0116] The robot arm BR is fixed to the floor by a fixed base BasRob and comprises three consecutive mobile segments Seg1, Seg2 and Seg3. The mobile segments Seg1, Seg2 and Seg3 have fixed lengths but are linked together by actuators at their respective ends, which allow rotation around the base BasRob and rotation of the segments relative to each other.

[0117] The relative movement of the segments makes it possible to move the end of the robot arm Ext t In this example, the terminal Ext t It is the moving end of the arm, located at the end of the last segment Seg3 relative to the base, also called the end segment.

[0118] Robot arm BR at the end Ext t The device includes at least one end effector Eff capable of attaching a load Cha. Figure 1 In the example of , the robot arm includes a single end effector, which is a suction cup. In this example, the suction cup can attach or release the load Cha.

[0119] Thus, attachment of the load by the end effector Eff, relative movement of the movable sections and release of the load by the end effector Eff enable the load Cha to be moved from the first box Bc1 to the second box Bc2 and more generally from a starting point close to the robot arm to an end point.

[0120] Figure 1 The robot arms shown in the figure are provided only as non-limiting examples of robot arms according to one set of embodiments of the present invention. Other robot arms may be used according to the present invention. For example:

[0121] -The robot arm can be connected to the ground via a fixed base, such as Figure 1 The robot shown. It may also be mobile, for example on wheels or on a mobile platform on tracks;

[0122] - The robot arm can consist of a different number of moving segments. For example, the robot arm can include three segments, such as Figure 1 The arms shown, but may also include 2, 4, 5 segments, etc.

[0123] - The mobile segment can have Figure 1 fixed length as shown, or at least some of them may be of variable length;

[0124] - The robotic arm may include one or more end effectors. For example, it may include one or more suction cups co-located at the end of a segment;

[0125] - The actuator can be Figure 1 The end effectors may be the suction cups shown in the example of , or may be another type of actuator, such as a robotic hand, a magnet, or a set of suction cups. If the robotic arm includes several end effectors, these end effectors may be of the same type (e.g., several suction cups) or of different types (e.g., a suction cup and a robotic hand).

[0126] Reference now Figure 2 .

[0127] Figure 2 A robot system Sys is shown.

[0128] The robot system Sys comprises a robot arm, such as a robot arm BR.

[0129] The robot system further comprises at least one calculation unit Calc configured to calculate the trajectory of the center of mass of the load Cha and to send control instructions to the robot arm BR. To this end, the at least one calculation unit Calc may be positioned to execute a method according to one of the embodiments of the present disclosure.

[0130] exist Figure 2 In the example of , at least one calculation unit Calc is located in a calculation device Disp external to the robot arm BR, for example a workstation. Thus, the calculation of the trajectory is performed remotely and sent to the robot arm.

[0131] Figure 2 The robot system is provided only as a non-limiting example of a robot system according to one set of embodiments of the present invention. Other robot systems can be used according to the present invention. For example:

[0132] -The robot arm can be Figure 2 The arm BR shown in , or any other robotic arm conceivable according to embodiments of the present invention;

[0133] - At least one computing unit may be located such as Figure 2 in an external device as shown, or in the robot arm itself;

[0134] If several computing units are used, they can be located in different devices, either in the robot arm itself or in several external computing devices. If several computing units are used, they can implement different steps of the method. For example, part of the steps of the method can be performed in the robot arm itself and another part in an external computing device.

[0135] Reference now Figure 3 .

[0136] Figure 3 An example of a method P3 is shown for moving a load from a starting point to an end point by means of a robot arm, which may be, for example, arm BR.

[0137] Method P3 includes determining the starting point of the center of mass of the load at the initial time t0 and the final time t F The first step S31 of the trajectory between the end points of the load. The center of mass trajectory of the load has the following characteristics:

[0138] - The velocity of the center of mass of the load at time t0 and at the final time tF This means that the load moves from an initial rest state to a final rest state, which is e.g. Figure 1 The case in the example of , where the object is moved from a first bin to a second bin;

[0139] - The trajectory passes through at least one local extremum of height, at each local extremum of height, the vertical speed of the center of mass of the load being zero. A local extremum of height may be a local minimum or a local maximum. According to an embodiment, the trajectory may comprise a single local extremum of height or several consecutive extrema.

[0140] Therefore, the vertical trajectory of the load's center of mass includes several points of zero vertical velocity: the starting point, the end point, and each extreme value.

[0141] Step S31 comprises a first sub-step S311 of determining a vertical acceleration time curve.

[0142] In each interval between the starting point and the end point (this interval includes at least one local maximum of altitude), the time curve includes a continuous and uninterrupted vertical acceleration phase and a vertical deceleration phase.

[0143] Thus, for each of these intervals between the first point and the second point of zero vertical velocity, the vertical acceleration profile comprises a vertical acceleration phase followed by a vertical deceleration phase. In a given interval between the first point and the second point, the vertical acceleration profile may in particular comprise:

[0144] - during the ascent acceleration phase and the subsequent ascent deceleration phase, if the height of the second point is greater than the height of the first point;

[0145] - A descent deceleration phase and a subsequent descent acceleration phase if the altitude of the second point is lower than the altitude of the first point.

[0146] Step S31 comprises a second sub-step S312 of determining a horizontal acceleration time curve.

[0147] The horizontal acceleration time curve includes at least one horizontal acceleration phase and at least one horizontal deceleration phase continuously and uninterruptedly between a fourth time t4 greater than or equal to the initial time t0 and a sixth time t6 less than or equal to the final time.

[0148] Therefore, the horizontal acceleration time curve may include one or more continuous acceleration-deceleration series between the fourth time and the sixth time. Since the speed is zero at the starting point and the end point, the horizontal acceleration time curve may also include:

[0149] - a zero acceleration and zero speed phase between an initial time t0 and a fourth time t4;

[0150] - The sixth time t6 and the final time t fThe phase between zero acceleration and zero velocity.

[0151] Once the acceleration curve is obtained, the acceleration can be integrated to obtain the velocity and position of the center of mass of the load. According to different embodiments of the present invention, the acceleration can be calculated first and then integrated to obtain the velocity and position, or vice versa, the acceleration, velocity and position of the center of mass of the load can be jointly calculated.

[0152] The method P3 then comprises a final step S33 of sending a control command to at least one actuator of the robot arm in order to apply the trajectory curve to the centre of mass of the load.

[0153] The control instructions can be of different types, depending on the possible inputs to the robot arm. For example, the control instructions can be:

[0154] - the trajectory itself;

[0155] - Position, length and / or angle of robot arm segments;

[0156] - low-level commands sent to the robot’s actuators;

[0157] -etc.

[0158] According to different embodiments of the invention, the trajectory may thus be converted into instructions for the actuators of the robotic arm, either by the robotic arm itself or by an external computing device.

[0159] Figure 3 The method P3 shown in FIG. 1 is provided only as a non-limiting example of a method for moving a load according to a set of embodiments of the present invention. Other methods may be envisioned according to other embodiments of the present invention. For example, the order of sub-steps S311 and S312 may be modified: Figure 3 As shown, step S311 can be performed before step S312, or can be performed after step S312. These two sub-steps can also be performed in parallel. If one of the two sub-steps is performed before the other, the output of the sub-step performed first can be used as the input of the sub-step performed second.

[0160] The method P3 may also include an intermediate step S32 between steps S31 and S33, which determines the time curve of the orientation of the end segment of the robot arm based on the vertical acceleration time curve, the horizontal acceleration time curve and the gravitational acceleration g, which allows minimizing the tangential forces applied to the load. In this case, the control instructions for applying the trajectory curve of the center of mass of the load include the time curve of the orientation of the end segment.

[0161] The curve for determining the orientation of the end section of the robot arm in intermediate step S32 allows the orientation of the end section to compensate to a large extent for the tangential forces caused by gravity and the acceleration of the center of mass of the load, which allows faster trajectories and / or the transport of heavier loads without releasing the load at the end effector.

[0162] However, step S32 does not necessarily exist in the method according to the present invention. In fact, other ways of applying the orientation to the end effector can be used. For example:

[0163] - the robot arm does not necessarily control the orientation of the end effector, which can be free, in which case the orientation of the end effector occurs freely as it moves;

[0164] - In the case where a robotic arm controls the orientation of the end effector, said orientation can be calculated and applied by the robot in real time during movement;

[0165] - Finally, in case the method comprises a step of determining the time profile of the orientation of the end segment, said orientation can be determined in different ways.

[0166] The center of mass of a load can be determined in several ways. For example, the load can be studied by a camera in order to model the load and determine its geometric center, which can be equivalent to the center of mass.

[0167] Reference is now made to Figures 4a and 4b.

[0168] The trajectory of the center of mass of the load starts from the starting point x0, z0 with coordinates x and reaches the center of mass with coordinates x f 、z f The end point.

[0169] In the example shown in Figures 4a and 4b, the trajectory is a two-dimensional trajectory and is defined in a vertical plane. Thus, the trajectory is defined along a horizontal axis x and a vertical axis z.

[0170] In the example of Figures 4a and 4b, the trajectory starts from the initial box Bac0 and ends at the final box Bacf. Therefore, this is an example of transporting a load from a first box to a second box, such as Figure 1 In general, in the example.

[0171] A 2-dimensional trajectory is presented here, as this allows a shorter and more direct trajectory between two points to be obtained, and for the sake of readability of the present disclosure will be represented more simply. However, the invention is of course also applicable to 3D trajectories, which allow more complex movements to be performed, for example to avoid obstacles.

[0172] It will be noted that, generally, in this disclosure, trajectories will be described relative to an orthogonal reference frame. Thus, the letters x and z refer to the horizontal axis and the vertical axis perpendicular to the horizontal axis x, respectively. In the case of a 3D trajectory, the letter y will refer to a second horizontal axis orthogonal to both axes x and z.

[0173] Trajectory Traj4 represents a two-dimensional trajectory along axes x and z.

[0174] A track can be defined by one or more of the following elements:

[0175] - The height curve Traj shown in Figure 4a zx 4, indicating that the height varies with the horizontal position. This curve shows:

[0176] ο on the vertical axis, the vertical position along the z axis, in m;

[0177] ο On the horizontal axis, the horizontal position along the x-axis, in m;

[0178] - The vertical acceleration time curve Acc shown in Figure 4b z 4, which is the vertical acceleration curve changing with time. This curve shows:

[0179] οOn the vertical axis, vertical acceleration along the z-axis, in ms -2 ;

[0180] ο on the horizontal axis, time in seconds;

[0181] - The horizontal acceleration time curve Acc shown in Figure 4b x 4, which is the horizontal acceleration curve changing with time. This curve shows:

[0182] ο On the vertical axis, horizontal acceleration along the x-axis, in ms -2 ;

[0183] ο on the horizontal axis, time in seconds;

[0184] - The vertical velocity time curve Vit shown in Figure 4b z 4, which is the vertical velocity curve changing with time. This curve shows:

[0185] oOn the vertical axis, vertical speed along the z axis, in ms -1 ;

[0186] ο on the horizontal axis, time in seconds;

[0187] - The horizontal velocity time curve Vit shown in Figure 4b x 4, that is, the horizontal velocity curve changing with time. This curve shows:

[0188] ο On the vertical axis, the horizontal speed along the x-axis, in ms -1 ;

[0189] ο on the horizontal axis, time in seconds;

[0190] - The vertical position (height) time curve Pos shown in Figure 4b z 4, which is the vertical position curve changing with time. This curve shows:

[0191] οOn the vertical axis, the vertical position or height along the z axis, in meters;

[0192] ο on the horizontal axis, time in seconds;

[0193] - The horizontal position time curve Pos shown in Figure 4b x 4, i.e. the horizontal position curve changing with time. This curve shows;

[0194] ο On the vertical axis, the horizontal position along the x-axis, in m;

[0195] οOn the horizontal axis, time in seconds.

[0196] Trajectory 4 has the following property: the trajectory of the center of mass of the load comprises as its only local extremum of height the point with coordinates x2, z2. z2 therefore represents the maximum height of the trajectory.

[0197] Therefore, the trajectory Traj4 includes a phase of rising from the starting point with coordinates x0, z0 to the maximum trajectory with coordinates x2, z2. This rising phase is subdivided into:

[0198] - the ascent vertical acceleration phase PhAccZmont from the initial time t0 to the time t1, during which the altitude increases according to the increasing vertical speed until the maximum speed Vit is reached z (t1);

[0199] This is followed by a vertical deceleration phase of ascent PhDecZmont from time t1 to time t2, during which the altitude increases according to a reduced vertical speed until zero vertical speed is reached at a point at altitude z2.

[0200] Traj4 includes the maximum trajectory from coordinates x2 and z2 to coordinate x f 、z f The descent phase at the end of the descent phase. This descent phase is divided into:

[0201] - a vertical deceleration phase of descent PhDecZdec from time t2 to time t3, during which the altitude decreases according to a decreasing negative vertical velocity (i.e. a negative vertical velocity whose absolute value increases) until a maximum absolute value of the negative velocity Vit is reached z (t3);

[0202] - followed by time from t3 to the final time t f The descent vertical acceleration phase PhAccZdec, during which the altitude decreases according to an increasing negative vertical velocity (ie a negative vertical velocity that decreases in absolute value) until a zero vertical velocity is reached at the end point.

[0203] Traj4 also includes:

[0204] - a horizontal acceleration phase PhAccX from time t4 to time t5, during which the load advances along x according to an increasing positive horizontal vertical velocity until reaching the maximum absolute value of the maximum velocity Vit x (t5);

[0205] This is followed by a horizontal deceleration phase PhDecX from time t5 to time t6, during which the load advances along x according to an increasing positive horizontal vertical velocity until a zero horizontal velocity is reached.

[0206] On the one hand, between time t0 and t4, and on the other hand, between time t6 and t f The horizontal velocity is zero, but the vertical velocity is not: therefore, these two intervals correspond only to the ascent and descent phases near the start and end points.

[0207] In the example of FIGS. 4a and 4b , each horizontal or vertical acceleration or deceleration phase starts with an increase in the absolute value of the acceleration at a predefined jerk J until the maximum absolute value of the acceleration and ends with a decrease in the absolute value of the acceleration at a predefined jerk. The predefined jerk corresponds to the curve Acc x 4 and Acc z 4 is the “slope” of the acceleration change. The absolute values ​​of the maximum acceleration at different stages are:

[0208] -|Az1|, for the ascent vertical acceleration phase PhAccZmont

[0209] -|Az2|, for the ascent vertical deceleration phase PhDecZmont;

[0210] -|Az3|, for the vertical deceleration phase of descent PhDecZdec;

[0211] -|Az4|, for the vertical acceleration phase of descent PhAccZdec;

[0212] -|Ax1|, for the horizontal acceleration phase PhAccX;

[0213] -|Ax2|, for the horizontal deceleration phase PhDecX.

[0214] This allows for a stepwise change of the acceleration that is physically achievable for the robot.The predefined jerk may be defined, for example, based on characteristics or mechanical constraints of the robot arm.

[0215] For at least one of the phases, the maximum absolute value of the acceleration in the phase (|Az1|, |Az2|, |Az3|, |Az4|, |Ax1|, |Ax2|) may be calculated as the minimum value between:

[0216] - the maximum possible acceleration value Az_max; and

[0217] - Half the duration of the phase multiplied by the predefined jerk.

[0218] Here, the maximum possible acceleration value Az_max is an input constraint, which may correspond to a mechanical constraint or an operational constraint of the robot, for example.

[0219] In the first case, if the minimum value is the maximum possible acceleration value Az_max, the acceleration and deceleration phases will be characterized by an increase in the absolute value of the acceleration with a predefined jerk J, a constant acceleration and then a decrease in the absolute value of the acceleration. This is the case, for example, in the phase PhAccZmont in the example of FIG. 4a .

[0220] The value Az_max may be defined according to different mechanical or operational constraints and may be the same for all phases or, on the contrary, may be different according to different phases (horizontal / vertical, acceleration / deceleration, etc.).

[0221] In the second case, if the minimum value is half the duration of the phase multiplied by the predefined jerk, this actually means that the duration of the phase is too short to reach Az_max. The acceleration will then have a "triangular" shape in the phases, for example in the case of the phase PhDecZdec.

[0222] One of the characteristics of trajectory Traj4 is that it has zero velocity at the end of the paired acceleration and deceleration phases. For example:

[0223] - Vertical velocity Vit at the beginning of the paired phases PhAccZmont and PhDecZmont z 4(t0) and the vertical velocity Vit at the end z 4(t2) are all zero;

[0224] - Vertical velocity Vit at the beginning of the paired phases PhAccZmont and PhDecZmont z 4(t2) and the vertical speed Vit at the end z 4(t f ) are all zero;

[0225] -Horizontal velocity Vit at the beginning of the paired phases PhAccZmont and PhDecZmont x 4(t4) and the horizontal speed Vit at the end x 4(t6) are all zero.

[0226] This means that in each of these pairs of phases, the integral of the acceleration is zero, which means that the integral of the acceleration is opposite to the integral of the deceleration. For example, one can have between time t0 and time t2 of the phases PhAccZmont and PhDecZmont:

[0227] [Mathematical formula 1]

[0228]

[0229] This means:

[0230] [Mathematical formula 2]

[0231]

[0232] Similarly, for the paired phases PhAccZdec and PhDecZdec on the one hand, and PhAccX and PhDecX on the other hand, we have:

[0233] [Mathematical formula 3]

[0234]

[0235] [Mathematical formula 4]

[0236]

[0237] Times t4 and t6 may be defined in different ways.

[0238] For example, in one example not shown in Figures 4a and 4b:

[0239] - The fourth time t4 can be calculated as the first time that the absolute value of the acceleration takes a maximum value in the first vertical acceleration or deceleration phase. Thus, in the example of Figures 4a and 4b, this would be the last moment that the vertical acceleration is equal to Az1 before decreasing;

[0240] - The sixth time t6 can be calculated as the first time that the absolute value of the acceleration is at a maximum value in the first vertical acceleration or deceleration phase. Thus, in the example of Figures 4a and 4b, this would be the last time that the absolute value of the vertical acceleration is equal to Az4 before decreasing.

[0241] Thus, in this case, in the example of Figures 4a and 4b, we would have:

[0242] [Mathematical formula 5]

[0243]

[0244] [Mathematical formula 6]

[0245]

[0246] This therefore makes it possible to avoid increasing the horizontal acceleration when the vertical acceleration is high ( Az1 or Az4 ), at the beginning of ascent or at the end of descent, and thus to limit the forces applied to the load.

[0247] Once times t4 and t6 have been obtained, time t5 can be obtained in different ways. For example, it can be defined as the median time between times t4 and t6: t5 = (t4 + t6) / 2.

[0248] However, the trajectories shown in Figures 4a and 4b are provided only as examples, and other trajectories may be envisaged in different embodiments of the present invention. For example:

[0249] - The start and end points can be different and not necessarily located in a box. For example, they can be located on a table, on the floor, etc.

[0250] - the trajectory may be a 3D trajectory, in which case the horizontal acceleration profile is a 2D profile including a y component;

[0251] - a trajectory may include several local extrema of altitude, for example with consecutive ascent and descent phases, in which case it will include more vertical acceleration and deceleration phases (each ascent or descent phase has an acceleration phase and a vertical deceleration phase);

[0252] - The trajectory may include several horizontal acceleration and deceleration phases;

[0253] - Horizontal acceleration can start at the beginning of the trajectory (in this case t4 = t0) and / or horizontal deceleration can end at the end (in this case t6 = t f ); The values ​​of t4 and t6 can generally adopt different values ​​according to the operation requirements. t4 and t6 can specifically adopt time values ​​associated with the vertical acceleration level;

[0254] - the predefined jerk J may be the same for all acceleration or deceleration phases, as shown in FIG. 4 b , or may be different according to the phase (e.g. different for horizontal or vertical phases, for ascent or descent phases, etc.);

[0255] - the acceleration and deceleration phases may have a different time profile than that shown in FIG. 4 b , for example with a variable jerk during the phases;

[0256] - Time t5 may be defined as the median time between times t4 and t6, or defined in other ways.

[0257] Reference now Figure 5 .

[0258] Figure 5 A second example of a trajectory in one set of embodiments of the present invention is shown.

[0259] Figure 5 The trajectory shown in is similar to the trajectory Traj4 shown in FIGS. 4a and 4b and differs from Traj4 only in the calculation of times t4 and t6.

[0260] For readability, Figure 5 The following elements of the trajectory are shown:

[0261] -Height Curve Traj zx 5, indicating the height varying with the horizontal position;

[0262] -Horizontal acceleration time curve Acc x 5;

[0263] -Vertical position (height) time curve Pos z 5;

[0264] -Horizontal position time curve Pos x 5.

[0265] The convention used is the same as in Figures 4a and 4b.

[0266] 4a and 4b, the load is moved from the first box Bac0 to the second box Bac1. f The first box is Bac0 and the second box is Bac f Both have height h_bin.

[0267] exist Figure 5 In the example of , times t4 and t6 are then calculated as:

[0268] - t4: the time at which the horizontal acceleration phase must start so that the center of mass of the load has moved at most a first horizontal distance margin_bin from the starting point when its height is greater than or equal to the height of the starting point plus the bin height h_bin (at time t4' in this example);

[0269] - t6: the time that the horizontal deceleration phase must last so that the center of mass of the load is at most at the second horizontal distance margin_pc when its height is equal to the height of the end point plus the box height h_pc (at time t6' in this example).

[0270] Therefore, horizontal movement only occurs when the load is outside the box or close to the box outlet in the vertical direction, as shown in the height curve Traj zx 5. In this way, the load can be moved without the risk of colliding with the bin or other loads in the bin. In other words, the margins margin_pc and margin_bin allow limited movement within the bin in order to allow small movements while avoiding collisions with other loads in the bin.

[0271] This example is provided only as an illustrative and non-limiting example, and other ways of calculating the values ​​h_bin, margin_bin and margin_pc may be used in different embodiments of the invention. Specifically, the margins margin_bin and margin_pc, and therefore the times t4 and t6, may be calculated in any way that allows avoiding obstacles at the beginning and end of the trajectory. For example, it is possible to have zero values ​​or margin_pc and margin_bin, in which case horizontal movement only occurs when the load is outside the box. For example, if the initial box and the final box have different heights, then their values ​​of h_bin may also be different.

[0272] Reference now Figure 6 .

[0273] Method P6 is an example of a method according to a set of embodiments of the present invention. Method P6 includes all the steps of method P3 and is characterized in that step S311 includes the following sub-steps. Method P6 allows obtaining different parameters of the trajectory as shown in Figures 4 and 5.

[0274] exist Figure 6 In the example of , the acceleration phase includes an increase in the absolute value of the acceleration at a predefined jerk until the maximum absolute value of the acceleration in the first phase, and a decrease in the absolute value of the acceleration at a predefined jerk J.

[0275] The first sub-step S61 comprises selecting a first time t1 , a second time t2 and a third time t3 from the first predefined interval [t1_min; t1_max], the second predefined interval [t2_min; t2_max] and the third predefined interval [t3_min; t3_max], respectively.

[0276] The predefined intervals [t1_min; t1_max], [t2_min; t2_max] and [t3_min; t3_max] may be obtained in several ways. For example, they may be obtained experimentally for a given trajectory, or they may be obtained by a simplified calculation of the travel time plus a margin.

[0277] The selection of the first time t1, the second time t2 and the third time t3 can be done in different ways. For example, it can be a random selection, or several consecutive values ​​can be selected within an interval in order to find the best solution among the possible parameter values.

[0278] Step S311 then comprises a second sub-step S62 consisting in determining the maximum absolute value Az1 of the acceleration in the first vertical acceleration phase as the minimum between the maximum possible acceleration value Az_max and the difference between the first time and the initial time multiplied by half of the predefined jerk J. In one set of embodiments of the invention, Az1 may be defined as the minimum between the two previously cited values ​​and the maximum acceleration value Az_max_speed1, which allows respecting the speed limit at the end of the first vertical acceleration phase.

[0279] The value Az_max_speed1 is a maximum value that allows limiting the speed at the first time t1, ie the end of the phase PhAccZmont, to a speed that complies with the physical limits of the robot arm, for example 2000 mm.s- 1 Therefore, Az_max_speed1 depends on the duration of the first vertical acceleration phase PhAccZmont.

[0280] The maximum possible acceleration value Az_max may be defined, for example, as the maximum vertical acceleration limited by the physical limits of the robot. For example, one may have Az_max=10 m.s -2 .

[0281] Step S311 then includes a third sub-step S63, which includes determining Az2 as a function of Az1 according to the following equation:

[0282] [Mathematical formula 7]

[0283]

[0284] As mentioned above, this makes it possible to ensure that the vertical speed is zero at the end of the ascent deceleration phase PhDecZmont.

[0285] Step S311 then includes a fourth sub-step S64, which includes determining the maximum absolute value Az3 of the acceleration in the second vertical deceleration phase PhDecZdec, the maximum absolute value Az4 of the acceleration in the second vertical acceleration phase PhDecZacc, and the final time t f .

[0286] In other words, at this stage, the height at t2, time t3 and the height z at the end point are f is known. Therefore, this is a method to determine Az3, Az4 and t f The problem is that in order to f Get the height z f and zero velocity and acceleration.

[0287] This can be achieved in several ways.

[0288] For example, the maximum value Az3_max of the maximum absolute value Az3 of the acceleration in the second vertical deceleration phase PhDecZdec is the minimum value between:

[0289] - the maximum possible acceleration value (Az_max); and

[0290] - half the difference between the third time and the second time multiplied by the predefined jerk;

[0291] - A maximum acceleration value Az_max_speed3 which allows taking into account the speed limitation at the end of the second vertical deceleration phase PhDecZdec.

[0292] The value Az_max_speed3 is a maximum value that allows limiting the speed at the third time t3 (meaning at the end of the phase PhDecZdec) to a speed that complies with the physical limits of the robot arm, for example 2000 mm.s- 1 . Therefore, Az_max_speed3 depends on the duration of the phase PhDecZdec.

[0293] Next, the maximum possible value of Az4, Az4_max, is calculated in the same way, such that Az4_max=min(Az_max_force, Az_max, Az4_max_triangle), where Az_max_force is the maximum vertical acceleration such that the normal force applied to the actuator remains below the defined limit, and Az4_max_triangle is the maximum vertical acceleration that can be achieved taking into account the difference between t3 and t fThe triangular curve between is the maximum acceleration, and Az_max is the maximum acceleration allowed by the robot arm.

[0294] Then the first value t f Calculated as a function of Az3 = Az3_max and Az4 = Az4_max, so that the vertical acceleration and velocity at t f This makes it possible to obtain f The first final height value z at f ', which is likely to be different from the actual final height z f 'different.

[0295] If z f '>z f , then the acceleration must be greater and / or longer. Since the maximum acceleration has been selected, the acceleration must be longer, but t2 and t3 are fixed, so the time t must be increased f Therefore, Az3 can remain fixed at its maximum value Az3_max, but as long as t f increases, Az4 must decrease until z f '=z f , so as to keep t2 and t f The fact that the area under the acceleration curve between is zero.

[0296] If z f ' <z f , then the acceleration must be smaller and / or the duration of the acceleration must be less. Therefore, t f , recalculate the value corresponding to this new t f The maximum value of Az4 is then based on t f and Az4 recalculate Az3 so that t2 and t f The fact that the area under the acceleration curve between is zero.

[0297] Thus, in both cases, the solution of the problem involves solving an equation in which the only variable is t. f :z f '(t f )-z f =0.

[0298] Method P6 is provided only as a non-limiting example of a method according to the present invention. Specifically, method P6 is provided only as an illustration of one way in which different parameters of the trajectory curves shown in Figures 4a and 4b can be determined in order to obtain an effective trajectory that satisfies the time and height constraints and the mechanical constraints of the robot arm. Other methods are also possible. For example:

[0299] - the first time t1, the second time t2 and the third time t3 can be obtained in a manner other than selection within the interval. For example, they can be obtained by simplified calculation of trajectory parameters;

[0300] The acceleration phase may not include an increase / decrease in acceleration by a predefined jerk and other ways may be used to calculate the parameters Az2 and Az4 as functions of Az1 and Az3 respectively, as long as they allow to obtain zero vertical velocity at the end of a paired acceleration and deceleration phase.

[0301] Reference now Figure 7 .

[0302] exist Figure 7 In the case of , the trajectory is a 3D trajectory because there is an obstacle Obs7 around the robot arm Rob7, which prevents the straight line from the initial box Bac0 to the final box Bac f straight line path.

[0303] To facilitate understanding of the diagram, the vertical component of the trajectory is not shown here. xy 7 represents the horizontal component of the trajectory: the X' axis represents the direction defined by the starting point and the end point, while the Y' axis represents the horizontal axis orthogonal to this direction.

[0304] To avoid obstacles, the horizontal trajectory must deviate from the X' axis by a maximum distance d_obs.

[0305] In this example, in addition to the acceleration and position curves already mentioned for the X and Z axes, the acceleration curve Acc y 7 and the position curve Posy7 are therefore defined with respect to the Y' axis.

[0306] The acceleration profile consists of a first deceleration phase and a first acceleration phase to move away from the obstacle a distance d_obs at time t_obs, and then a second deceleration phase and a second acceleration phase to return to the zero position along the Y axis and therefore to the axis of the trajectory at the end of the trajectory.

[0307] This example is provided only as an illustrative example of a 3-dimensional trajectory including a second horizontal dimension. Other trajectories of this type can be envisioned. For example, the acceleration profile can contain a greater number of acceleration and deceleration phases to avoid a greater number of obstacles.

[0308] Reference now Figure 8 .

[0309] Figure 8 An example of a target time profile for determining the orientation of an end section of a robot arm in one set of embodiments of the present invention is shown.

[0310] In a set of embodiments of the invention implementing step S32, step S32 comprises determining a target time curve for the orientation of the end segment that allows to counteract the tangential forces applied to the load, and then determining a time curve for the orientation of the end segment as a function of the target time curve for the orientation of the end segment. The time curve for the orientation of the end segment represents the evolution of the angle θ of the orientation of the end segment in the trajectory plane over time. For illustration purposes, this time curve is represented as a 2D trajectory. In other embodiments of the invention, if the trajectory of the center of mass of the load is represented in 3D, the orientation of the end segment may be represented by a greater number of angles, for example two angles θ and

[0311] For example, the target time curve for orientation may be an "ideal" curve that counteracts all tangential forces but is not physically achievable by the robotic arm, and the actual calculated time curve for orientation may be a curve that is as close to the target curve as possible while being physically achievable by the robotic arm.

[0312] exist Figure 8 In the example of , the trajectory is two-dimensional and the target time curve Ori_tar8 of the orientation of the end segment is determined by:

[0313] -Horizontal acceleration curve Accx8;

[0314] - vertical acceleration curve Accz8;

[0315] - the mass of the load, m;

[0316] -The acceleration due to gravity, g.

[0317] This target time curve can be supplemented by a maximum time curve of the orientation of the end segment Ori_max8 and a minimum time curve of the orientation of the end segment Ori_min8.

[0318] Reference now Fig. 9 .

[0319] Fig. 9 An example of determining a target angle, a maximum angle, and a minimum angle for the orientation of an end section of a robot arm in a set of embodiments of the present invention is shown.

[0320] In one set of embodiments of the present invention, a target curve Ori_tar8 of the orientation of the end segment can be obtained by calculating the target angle of orientation at a set of times. This target angle of orientation can be equal to the angle formed between the vector of the total acceleration applied to the load and the vertical axis.

[0321] exist Fig. 9 In the example, the force applied to the load at time t is as follows, where m is the mass of the load, g is the value of the gravitational acceleration, and Acc x8(t) is the horizontal acceleration curve Acc x 8 is the horizontal acceleration value at time t; and Acc z 8(t) is the vertical acceleration curve Acc z 8Vertical acceleration value at time t:

[0322] -Horizontal force

[0323] o The force generated by the horizontal component of the acceleration applied by the movement of the robot arm: -m*Acc x 8(t);

[0324] -Vertical force:

[0325] o Force generated by the vertical component of the vertical acceleration applied by the movement of the robot arm: -m*Acc z 8(t);

[0326] ο Gravity: -m*g.

[0327] In one set of embodiments of the present invention, the target angle θ of the orientation of the end effector at time t is tar It is therefore equal to the angle or acceleration applied to the load and the force on the vertical axis.

[0328] Schematic diagram F_tar9 shows that the angle of the end point angle and therefore the angle of the orientation of the load is equal to the target angle θ tar It can be seen that in this case, only the normal force is applied to the load, and no tangential force is applied to the load. In this case, we have:

[0329] [Mathematical formula 8]

[0330]

[0331] In one set of embodiments of the present invention, the maximum θ of the orientation can be calculated at a set of times max (t) and minimum θ min (t) angle, and the target angle θ tar (t) Adding and subtracting the angle corresponding to the maximum tangential force F_tan_max to obtain the maximum curve Ori_max8 of the orientation of the end segment and the minimum curve Ori_min8 of the orientation of the end segment.

[0332] The schematic diagrams F_min9 and F_max9 respectively show the angle at which the end effector angle and therefore the orientation of the load is equal to the minimum angle θ min and the angle of the end effector and therefore the orientation of the load is equal to the maximum angle θ max situation.

[0333] The vector of the force applied to the load remains constant, but as the angle θ min and θ max , the force is distributed between:

[0334] - Normal force F_normal_min;

[0335] -Tangential force F_tan_max.

[0336] In other words, the angle θ min and θ max are the minimum and maximum angles at which the tangential force applied to the load equals F_tan_max.

[0337] Therefore, it is possible to determine the angle θ at each time t by tar (t),θ min (t) and θ max (t) According to the curve Acc x 8 and Acc z 8 The curves Ori_tar8, Ori_max8 and Ori_min8 are determined such that any actual curve for the orientation of the end segment and therefore any actual curve for the load between the curves Ori_max8 and Ori_min8 allows ensuring that the absolute value of the tangential force applied to the load is less than or equal to F_tan_max.

[0338] F_tan_max can be determined in different ways. Specifically, it can be determined as the maximum tangential force that the end effector can withstand without releasing the load. The calculation of F_tan_max can vary in different embodiments of the present invention. For example:

[0339] - A safety margin can be applied to the normal force that the end effector can theoretically withstand;

[0340] - If the exact mass of the load is unknown, it can be estimated, or the maximum load value can be used.

[0341] Reference now Fig.10 .

[0342] In one set of embodiments of the invention, the method comprises the step of determining an actual curve for the orientation of the end effector based on the target, minimum and maximum curves for the orientation of the end effector.

[0343] In practice, the capability of the end effector to change its orientation may be limited, so that the actual speed of the change of the orientation of the end segment cannot follow the speed of the change of the orientation in the target curve too quickly. Therefore, the actual curve of the orientation of the end segment may be determined so as to be as close as possible to the target curve while complying with the mechanical capabilities of the robot arm and being between the minimum and maximum curves of the orientation.

[0344] This can be done in several ways. For example:

[0345] -The actual curve of orientation can be obtained by constrained optimization;

[0346] - You can select several candidate curves and then select the best candidate curve;

[0347] -etc.

[0348] exist Fig.10 In the example of , the target curve is denoted Ori_tar10, the maximum curve is denoted Ori_max10 and the minimum curve is denoted Ori_min10. The actual curves of orientation are obtained in several steps, each of which is represented by the line graphs Ori_10.1, Ori10.2 and Ori10.3, where the horizontal axis represents the time in seconds and the vertical axis represents the angle of orientation of the end segment in degrees:

[0349] - a first step represented by the graph Ori10.1 consists in generating a set of candidate curves ori_cand10.1 of orientation, represented by the graph Ori10.1, in addition to the curves Ori_tar10, Ori_max10 and Ori_min10. The candidate curves are defined so that they comply with the mechanical constraints of the robot arm, in particular the maximum angular velocity of rotation of the end segment. In this example, the curves are generated by formulas representing the actual orientation generated by the robot arm and observed as a function of control parameters, in this example the target angle magnitude and two velocity magnitudes for negative and positive angles respectively;

[0350] - a second step represented by the graph Ori10.2 consists in removing from the set ori_cand10.1 the candidate curves having at least once an angle value greater than the angle value of the curve Ori_max10 or less than the angle value of the curve Ori_min10. This makes it possible to remove from the candidate curves those whose implementation would lead to the application of a tangential force on the load exceeding F_tan_max at at least one moment. Thus, all the curves Ori_cand10.2 that remain at the end of this step and are represented by the graph Ori_10.2 make it possible both to satisfy the mechanical constraints of the robot arm and to apply a tangential force on the load less than or equal to F_tan_max at all moments;

[0351] - The third step, represented by the line graph Ori10.3, consists in selecting the actual curve Ori_reel10 for the orientation to be applied to the end segment. Fig.10 In the example of , the curve Ori_reel10 is selected as the median curve among the curves Ori_cand10.2 retained in the previous step. This makes it possible to obtain the most central curve, and therefore the closest to the target curve, making it possible to satisfy the mechanical constraints of the robot arm and to exert a tangential force on the load that is less than or equal to F_tan_max at all times.

[0352] Thus, the curve of orientation Ori_reel10 may be applied to the end section of the robot arm, for example by means of an actuator controlling the orientation of the end section.

[0353] Fig.10 The steps shown in are provided only as examples of steps for defining a curve for the orientation of the end section of a robot arm according to a set of embodiments of the present invention. However, other methods are conceivable. For example:

[0354] - The curve can be Fig.10 2D curves of orientation shown, but 3D curves are also possible;

[0355] - the generation of candidate curves in step Ori10.1 can be performed according to different formulas that take into account specific characteristics of the trajectory, such as the number of phases of vertical and horizontal curves of the trajectory and the time of phase changes;

[0356] - the curve ori_reel selected in step Ori10.3 can be chosen in different ways: for example, it can be the curve that is the smallest distance away from the curve Ori_tar10;

[0357] -etc.

[0358] Reference now Fig.11 .

[0359] Fig.11 A third example of a method P11 for moving a load according to a set of embodiments of the present invention is shown.

[0360] Method P11 includes reference Figure 6 All steps of method P6 are discussed. Specifically, method P11 concerns an example of a 2D trajectory as shown in Figures 4a and 4b, where the calculation of trajectory parameters starts with selecting them in step S61 from a respective interval of three times t1, t2 and t3.

[0361] Specifically, method P6 increments a set of possible times based on three times t1, t2, and t3 until a minimum time t minThe principle of associated optimal solution.

[0362] Therefore, method P11 comprises:

[0363] - performing a step S31 of determining the trajectory of the center of mass of the load, comprising Figure 6 All the sub-steps defined in and starting with sub-step S61 of selecting times t1, t2 and t3. At the end of this step, the trajectory obtained for the centroid is specifically composed of its final time t f limited;

[0364] - Comparison time t f and minimum time t min Step S1101, where time t min is the minimum time to generate a feasible trajectory during the previous iteration. When analyzing the first trajectory, its feasibility must be analyzed in all cases. For this purpose, it is possible to initialize t min , so that we must have t f <t min , until a first trajectory achievable by the robot arm is identified.

[0365] -If t f <t min ,So:

[0366] o Step S32 determines the time curve of the orientation of the end segment;

[0367] o Step S1102 then verifies that a continuous change of the orientation of the end segment is possible in the trajectory;

[0368] If successful verification is obtained in step S1102, that is, if f <t min In the case of a change in the orientation of the end segment in the trajectory, step S1103 saves the trajectory parameters (specifically, the times t1, t2 and t3 that define the fastest trajectory at this stage) and allocates t f to min Thus, at this stage, the parameters associated with the fastest achievable trajectory encountered so far and the associated minimum time are known;

[0369] - In the event that one of the verifications in steps S1101 and S1102 fails, or at the end of step S1103, i.e. if t f ≥t min , if it is not possible to have a continuous change of the orientation of the end segment in the trajectory, or if the parameters of the shortest trajectory have been recorded and updated at time t min ,So:

[0370] o Step S1104 increments the three times t1, t2 and t3, i.e. selects the next possible time t1, t2 and t3;

[0371] o Step S1105 verifies that incrementing is possible;

[0372] o In case of successful verification in step S1105, i.e. incrementing is possible, return to step S62 with new times t1, t2 and t3;

[0373] o In case of a validation failure in step S1105, ie if all possible times have been processed, step S1106 selects t1, t2 and t3 associated with the optimal trajectory, after which step S33 sends a control instruction for implementing the trajectory to execute the trajectory.

[0374] Method P11 provides a specific example of defining an optimal trajectory. However, method P11 is provided only as a non-limiting example of a method according to a set of embodiments of the present invention. Therefore, other methods are possible, especially if other parameters are used as inputs to the trajectory calculation, then other conditions and loops for modifying the input parameter values ​​can be used.

[0375] Reference is now made to Figures 12a, 12b, 13a, 13b, 14a, 14b, 15a and 15b.

[0376] Figures 12a, 13a, 14a, and 15a represent four examples of the trajectory of a load in four exemplary embodiments of the present invention, each example comprising transporting the load from an initial box Bac0_12, Bac0_13, Bac0_14, and Bac0_15 to a final box Bacf_12, Bacf_13, Bacf_14, and Bacf_15 at different corresponding distances and heights.

[0377] For each instance, the corresponding Figures 12b, 13b, 14b and 15b respectively show:

[0378] -Vertical acceleration curve Acc z 12. Acc z 13. Acc z 14 and Acc z 15;

[0379] -Horizontal acceleration curve Acc x 12. Acc x 13. Acc x 14 and Acc x 15;

[0380] - Line graphs Ori12.3, Ori13.3, Ori14.3, Ori15.3, showing:

[0381] o target time curves Ori_tar12, Ori_tar13, Ori_tar14 and Ori_tar15 for the orientation of the end section of the robot arm;

[0382] o Maximum time curves Ori_max12, Ori_max13, Ori_max14 and Ori_max15 of the orientation of the end section of the robot arm;

[0383] o Minimum time curves Ori_min12, Ori_min13, Ori_min14 and Ori_min15 of the orientation of the end section of the robot arm;

[0384] o Candidate curves Ori_reel12, Ori_reel13, Ori_reel14 and Ori_reel15 are selected as the actual curve of the orientation of the end section of the robot arm.

[0385] -Height Curve Traj xy 12. Traj xy 13. Traj xy 14 and Traj xy 15, which means:

[0386] οHeight curve Traj_ch of the center of mass of the load xy 12. Traj_ch xy 13. Traj_ch xy 14 and Trajúch xy 15;

[0387] oHeight curve Traj_seg of the starting point of the terminal segment xy 12. Traj_seg xy 13. Traj_seg xy 14 and Traj_seg xy 15;

[0388] o and, at a given set of points representing successive times, a bar representing the orientation of the end segment of the robot arm.

[0389] It will be observed that the tangential force is reduced in several ways, specifically:

[0390] - the shape of the vertical and horizontal acceleration curves through the center of mass of the load;

[0391] - The curve of the orientation followed by the end section of the robot arm is as close as possible to the target curve. It will be observed in the trajectory curve that the orientation of the end section tends to follow as closely as possible the ideal orientation defined by the horizontal and vertical accelerations.

[0392] These examples demonstrate the ability of the invention to generate trajectories achievable by a robotic arm that allow limiting the tangential forces applied to the transported load. However, they are provided only as non-limiting examples of trajectories calculated in one set of embodiments of the invention.

[0393] The present disclosure is not limited to the examples of methods, computer programs, storage media and robotic systems described above merely by way of example, but encompasses all variants that a person skilled in the art can envisage within the framework of the protection sought.

Claims

1. A method for moving a load (Cha) from a starting point (x0, z0) to an end point (x0, z0) by a robot arm (BR). f ,z f ) method (P3, P6), the robot arm includes a plurality of segments and at the ends (Ext t ) at least one end effector (Eff) capable of attaching the load, the method comprising: - Determine (S31) the mass center of the load at the initial time (t0) and the starting point of zero speed and the final time (t F ) and the end points of zero velocity, the trajectory passing through at least one local extreme value (x2, z2) of height where the vertical velocity of the center of mass of the load is zero, the determination of the trajectory comprising: ○ Determine (S311) the vertical acceleration time curve (Acc z 4. Acc z 8), which comprises a vertical acceleration phase and a vertical deceleration phase continuously and uninterruptedly in each interval between the starting point, the end point and the local extreme value of the altitude; and ○ Determine (S312) the horizontal acceleration time curve (Acc x 4. Acc x 5. Acc y 7. Acc x 8), comprising at least one horizontal acceleration phase and at least one horizontal deceleration phase continuously and uninterruptedly between a fourth time (t4) greater than or equal to the initial time (t0) and a sixth time (t6) less than or equal to the final time; - sending (S33) a control instruction to at least one actuator of the robot arm for applying the trajectory curve of the center of mass of the load.

2. The method according to claim 1, characterized in that The horizontal or vertical acceleration or deceleration phase starts with the absolute value of the acceleration increasing with a predefined jerk (J) until the maximum absolute value of the acceleration in the phase (|Az1|, |Az2|, |Az3|, |Az4|, |Ax1|, |Ax2|), and ends with the absolute value of the acceleration decreasing with a predefined jerk.

3. The method according to claim 2, comprising calculating the maximum absolute value of the acceleration in the phase (|Az1|, |Az2|, |Az3|, |Az4|, |Ax1|, |Ax2|) as the minimum value between: - the maximum possible acceleration value (Az_max); and - Half the duration of the phase multiplied by the predefined jerk.

4. The method according to claim 2 , wherein: Two consecutive acceleration and deceleration phases result in a speed at the end of the deceleration phase equal to the speed at the beginning of the acceleration phase.

5. The method according to claim 4, characterized in that Two consecutive acceleration and deceleration phases result in: - the maximum absolute value of the acceleration in the continuous acceleration phase (|Az1|, |Az4|, |Ax1|) multiplied by the time of the continuous acceleration phase minus the maximum absolute value of the acceleration in the continuous acceleration phase divided by the predefined jerk equal: - the maximum absolute value of the acceleration in the continuous deceleration phase (|Az2|, |Az3|, |Ax2|) multiplied by the time of the continuous deceleration phase minus the maximum absolute value of the acceleration in the continuous deceleration phase divided by the predefined jerk 6. The method according to claims 1 to 5, comprising: - calculating the fourth time (t4) as the time when the horizontal movement starts, so that the center of mass of the load moves horizontally at most a first horizontal distance (margin_bin) when its height is greater than or equal to the height of the starting point plus a first vertical margin (h_bin); - calculating the sixth time (t6) as the time at which the horizontal movement ends so that the center of mass of the load is at most a second horizontal distance (margin_pc) from the end point when its height is greater than or equal to the height of the end point plus a second vertical margin (h_pc).

7. The method according to one of claims 1 to 5, comprising: - calculating the fourth time (t4) as the first time at which the absolute value of the acceleration takes a maximum value (Az1) in the first vertical acceleration or deceleration phase; - the sixth time (t6) is calculated as the first time at which the absolute value of the acceleration takes a maximum value (Az4) in the first vertical acceleration or deceleration phase.

8. The method according to any one of the preceding claims, characterized in that: - the locus of the center of mass of the load includes the maximum height point (x2, z2) as a single local extremum of height; - The vertical acceleration time curve (Acc z 4) continuously including a first vertical acceleration phase from the initial time to a first time (t1), a first vertical deceleration phase to a second time (t2) of passing the maximum altitude point, a second deceleration phase to a third time (t3), and a second vertical deceleration phase to the final time (t F ) of the second acceleration phase; and - The horizontal acceleration time curve (Acc x 4) continuously includes a horizontal acceleration phase from a fourth time (t4) greater than or equal to the initial time (t0) to a fifth time (t5), and then a horizontal deceleration phase from the fifth time to a sixth time (t6) less than or equal to the final time.

9. The method (P6) according to claim 8 as appended to claim 3, comprising: - selecting (S61) the first time, the second time and the third time from a first predefined interval, a second predefined interval and a third predefined interval, respectively; - Calculate (S62) the maximum absolute value of the acceleration (Az1) in the first vertical acceleration phase as the minimum value between: ○ Maximum possible acceleration value (Az_max); and o half of the difference between the first time and the initial time multiplied by the predefined jerk; - calculating (S63) a maximum absolute value (Az2) of acceleration in the first deceleration phase based on the maximum absolute value (Az1) in the first acceleration phase; - Calculate (S64) the maximum absolute value of the acceleration in the second vertical deceleration phase (Az3), the maximum absolute value of the acceleration in the second vertical acceleration phase (Az4) and the final time to reach the end point (t f ).

10. The method according to one of claims 8 or 9, comprising calculating the fifth time as a median time between the fourth time and the sixth time.

11. The method according to any one of the preceding claims, characterized in that: - the locus of the centre of mass of said load is defined in a vertical plane including said starting point and said end point; and and -The horizontal acceleration curve is a one-dimensional acceleration curve.

12. The method according to any one of claims 1 to 10, characterized in that: - the locus of the center of mass of the load is defined in 3 dimensions between the starting point and the end point; and -The horizontal acceleration curve is a two-dimensional acceleration curve.

13. The method according to any one of the preceding claims: - comprising determining (S32) a time profile of an orientation of the end section of the robot arm that allows minimizing a tangential force applied to the load, based on the vertical acceleration time profile, the horizontal acceleration time profile and the gravitational acceleration; - and wherein the control instructions for applying the trajectory profile of the center of mass of the load comprise a time profile of the orientation of the end section.

14. The method according to claim 13, characterized in that Determining the time profile of the orientation of the end segment that allows minimizing the tangential force applied to the load comprises: - determining a target time curve (ori_tar8) of the orientation of the end section allowing to counteract the tangential forces applied to the load; - determining the time profile of the orientation of the end segment as a function of a target time profile of the orientation of the end segment.

15. The method according to any one of claims 13 or 14, characterized in that A target time profile of the orientation of the end segment allowing to counteract the tangential force applied to the load is determined by calculating, at all moments between the initial time and the final time, an orientation value equal to the inverse tangent of the horizontal acceleration divided by the sum of the vertical acceleration and the gravitational acceleration.

16. The method according to claim 14 or 15, characterized in that Determining the time profile of the orientation of the end segment according to a target time profile of the orientation of the segment comprises: - Determining the time curve of maximum orientation (ori_max8) and the time curve of minimum orientation (ori_min8) of the end segment by adding and subtracting the angle corresponding to the maximum tangential force (F_tan_max) from the target time curve of orientation, respectively.

17. The method according to claim 16, characterized in that Determining the time profile of the orientation of the end segment according to a target time profile of the orientation of the segment comprises: - generating a set of candidate time curves for the orientation of the end segment (Ori_cand10.1); - deleting the set of candidate time curves of the orientation of the end segment having an orientation at at least one time smaller than the orientation of the minimum time curve of the orientation or larger than the orientation of the maximum time curve of the orientation; - Select the median candidate curve (ori_reel10) of the orientation among the remaining candidates.

18. A computer program comprising instructions for implementing the method according to one of claims 1 to 17 when this program is executed by a processor.

19. A non-transitory computer-readable storage medium having stored thereon a program for implementing the method according to one of claims 1 to 16 when the program is executed by a processor.

20. A robot system (Sys) capable of moving a load (Cha) from a starting point (x1, z1) to an end point (x3, z3), comprising: - at least one robotic arm (BR) comprising a plurality of segments and at least one end effector (Eff) at the end of said plurality of segments (Seg1, Seg2, Seg3) capable of attaching said load; - at least one calculation unit (Calc) configured to carry out the method according to one of claims 1 to 16.