Optimized robot arm trajectory

By implementing a method with uninterrupted acceleration and deceleration phases and optimizing the end section orientation, the robotic arm efficiently transports heavier loads faster and securely, addressing the limitations of existing systems.

JP2025529508APending Publication Date: 2025-09-04EXOTEC PRODUCT FRANCE
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
JP2025515982
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-09-16
Filing Date
2023-09-12
Publication Date
2025-09-04

AI Technical Summary

Technical Problem

Existing robotic arms face challenges in transporting loads efficiently due to limitations in payload capacity and cycle time, as excessive acceleration can cause the effector to release the load, and there is a need for a strategy to manage trajectory and acceleration profiles while avoiding obstacles.

Method used

A method for determining a trajectory of the load's center of gravity with uninterrupted vertical and horizontal acceleration and deceleration phases, along with a strategy to manage the robot arm's trajectory and acceleration profile, including a time profile for the orientation of the end section to minimize tangential forces, allowing for heavier loads to be transported faster without releasing them.

Benefits of technology

This approach enables the robotic arm to carry heavier loads and achieve faster transport times while preventing the load from being released, optimizing travel time and ensuring the effector maintains a secure grip.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025529508000001_ABST
    Figure 2025529508000001_ABST
Patent Text Reader

Abstract

The present disclosure relates to a method for moving a load from a start point to an end point by a robotic arm having a plurality of sections and at least one end effector capable of attaching to the load at an end of the plurality of sections, the method comprising the steps of: determining a trajectory of the load's center of gravity while passing through at least one extreme value of height where the vertical speed of the load's center of gravity is zero between the start point at a start time and a speed of zero and the end point at an end time and a speed of zero, the step of determining the trajectory comprising: determining a vertical acceleration time profile comprising an uninterrupted succession of vertical acceleration phases and vertical deceleration phases in each interval between the start point, the end point, and the height extreme; and determining a horizontal acceleration time profile comprising an uninterrupted succession of at least one horizontal acceleration phase and at least one horizontal deceleration phase between a fourth time equal to or greater than the start time and a sixth time equal to or less than the end time; and sending control commands to at least one effector of the robotic arm to apply the trajectory profile of the load's center of gravity.
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, and more particularly to calculating optimized trajectories for robotic arms to transport loads. [Background technology]

[0002] A robotic arm, also called an articulated arm, is a robot that allows it to move a load. For this purpose, it has several articulated sections at its end, which are effectors that can attach to a load. Thus, the relative movement of the articulated arm allows the effector to move the load from one point to another. The effector is the gripping means of the robotic arm that grips the target load and is most often a clamp or suction cup.

[0003] Essentially, the desire is to operate such a robotic arm with maximum speed and acceleration to obtain the shortest possible cycle time. Cycle time is the time it takes for the robot to move a load from its starting point to a desired end point, e.g., from one storage bin to another box or packaging container. A shorter cycle time carries with it logistical and therefore financial benefits. However, the pursuit of maximum speed and acceleration presents several technical challenges.

[0004] When a load is moved, 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 robot's end section and a tangential component that is perpendicular to the orientation of the robot's end section. Applying too much force to the load can cause the effector to release the load if the force is greater than the maximum force the effector can withstand. For most effectors, especially suction cup-type effectors, tangential forces are particularly difficult to withstand. Other effectors can have particular difficulty withstanding forces in different directions.

[0005] Generally, the greater the acceleration and mass of the load applied to the load, the greater the force. Therefore, the force limits that the effector can withstand can limit the movement that the robot arm can impart to the load in two ways: - May limit the mass of the load to be moved. - May limit the acceleration applied to the load, which increases the load's travel time for a given movement.

[0006] One way to overcome these limitations is to use robotic arms with more powerful effectors capable of supporting larger forces, however, such robotic arms and effectors can be more expensive and larger. Summary of the Invention [Problem to be solved by the invention]

[0007] Therefore, there is a need to increase the payload that can be moved by the same robotic arm and / or to decrease the time it takes to move a payload between two points by the same robotic arm, which may also be expressed as a need to transport the same mass of payload between two points more quickly.

[0008] There must also be a profile for managing the trajectory of the robot arm that takes into account the mechanical constraints of said robot, such as maximum physically achievable acceleration, motion constraints, etc.

[0009] There must also be a strategy for managing the robot arm's trajectory as well as the acceleration profile to optimize travel time while preventing the load from falling off the end effector.

[0010] It is also necessary that the strategy be able to take into account the presence of obstacles in the path of the load from its origin to its destination. [Means for solving the problem]

[0011] The present disclosure improves this situation.

[0012] A method for moving a load from a start point to an end point using a robot arm having a plurality of sections and at least one end effector capable of attaching to the load at an end of the plurality of sections is provided, the method comprising the steps of: determining a trajectory of the load's center of gravity through at least one extreme value of height where the vertical speed of the load's center of gravity is zero between the start point at a start time and a speed of zero and the end point at an end time and a speed of zero, the step of determining the trajectory comprising: determining a vertical acceleration time profile comprising an uninterrupted succession of vertical acceleration phases and vertical deceleration phases in each interval between the start point, the end point, and the height extreme; and determining a horizontal acceleration time profile comprising an uninterrupted succession of at least one horizontal acceleration phase and at least one horizontal deceleration phase between a fourth time equal to or greater than the start time and a sixth time equal to or less than the end time; and sending control commands to at least one effector of the robot arm to apply the trajectory profile of the load's center of gravity.

[0013] The term "end" of a robot arm is understood to mean the movable end of a section of the robot arm that is free to move. The end therefore generally corresponds to the last end of the last section relative to the base of the robot, which is in direct contact with the effector.

[0014] The term "end effector" is understood to mean an effector located at the end of a robot arm that is capable of attaching to a load. In the context of this disclosure, the end effector may be simply referred to as an "effector."

[0015] The term "height extrema" is understood to mean the minimum or maximum height of the centre of gravity of the load in the trajectory.

[0016] The term "uninterrupted succession" is understood to mean a succession of stages with no intermediate stages, and thus an uninterrupted succession of vertical acceleration stages and vertical deceleration stages may comprise either an acceleration stage followed by a deceleration stage, or a deceleration stage followed by an acceleration stage, but does not comprise a stage of zero acceleration. Similarly, an uninterrupted succession of at least one horizontal acceleration stage and at least one horizontal deceleration stage may comprise one or more horizontal acceleration and horizontal deceleration stages, but does not comprise a stage of zero horizontal acceleration (or constant horizontal speed). A point of zero acceleration may only exist between two consecutive acceleration and deceleration stages.

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

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

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

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

[0021] The term "control commands" is understood to mean any command or information that can be followed or executed by the robot arm in order to apply a determined trajectory to the center of gravity of the load.

[0022] Thus, between the fourth and sixth times, the vertical acceleration profile for the load's center of gravity does not include any zero acceleration steps, and the horizontal acceleration profile does not include any zero acceleration steps.

[0023] This allows for a given travel time of the trajectory to have a smaller acceleration over a longer period of time, and therefore to apply a smaller force to the load during the same travel time. This therefore allows the same robot arm to carry a heavier load and / or benefit from a faster trajectory, without the risk of the end effector releasing the load.

[0024] 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 where the vertical velocity and acceleration are zero, without any phases where the vertical velocity is constant (and therefore the acceleration is zero).

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

[0026] According to another aspect, a non-transitory computer-readable storage medium is provided having stored thereon a program for performing a method according to one of the embodiments of the present disclosure when executed by a processor.

[0027] According to another aspect, there is provided a robotic system capable of moving a load from a start point to an end point, comprising at least one robotic arm having a plurality of sections and at least one end effector capable of attaching to a load at an end of the plurality of sections, and at least one computing unit configured to perform a method according to one of the embodiments of the present disclosure.

[0028] The term "computing unit" is understood to mean 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 ASIC (application-specific integrated circuit), a microcontroller, a microprocessor, a DSP (digital signal processor), a processor, or a GPU (graphics processing unit). 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.

[0029] The features described in the following paragraphs may optionally be implemented independently of each other or in combination with each other.

[0030] In one set of embodiments of the invention, a horizontal or vertical acceleration or deceleration phase begins with an increase in absolute value of acceleration at a predetermined jerk up to the maximum absolute value of acceleration over that phase, and ends with a decrease in absolute value of acceleration at a predetermined jerk.

[0031] The term "jerk" refers to, for example, ms -3 This can be understood to mean the derivative of acceleration, denoted by the symbol J.

[0032] The predetermined jerk may be predetermined for a given robot arm, for example, according to its mechanical constraints. The jerk may be the same for all stages or may differ depending on the acceleration stage. For example, the predetermined jerk may be different for horizontal or vertical acceleration, or for acceleration or deceleration.

[0033] This makes it possible to obtain trajectories that are physically achievable by a robot that is generally not capable of suddenly switching from one acceleration to a very different acceleration.

[0034] In one set of embodiments of the invention, the method comprises calculating the maximum absolute value of acceleration over the stage as the lesser of the maximum possible acceleration value and half the product of the stage time length and the predetermined jerk.

[0035] The term "maximum possible acceleration value" is understood to mean the absolute value of the maximum possible acceleration, which may be defined according to different constraints, such as mechanical constraints, operational constraints of the robot with the maximum acceleration that is physically achievable.

[0036] This therefore makes it possible to obtain an acceleration profile that is achievable by the robot and that matches the maximum possible acceleration.

[0037] In one set of embodiments of the invention, two successive stages of acceleration and deceleration are such that the speed at the end of the deceleration stage is equal to the speed at the beginning of the acceleration stage.

[0038] In one set of embodiments of the invention, two successive stages of acceleration and deceleration are determined by subtracting the quotient of the maximum absolute value of acceleration (|Az1|, |Az4|, |Ax1|) over the successive acceleration stages from the time of the successive acceleration stages, where |Az1|, |Az4|, |Ax1|, and |Ax2| are the maximum absolute value of acceleration over the successive acceleration stages divided by the predetermined jerk.

[0039]

number

[0040] the product of |Az2|, |Az3|, |Ax2| and |Ax2| is the maximum absolute value of acceleration over successive deceleration steps minus the quotient of the maximum absolute value of acceleration over successive deceleration steps divided by the predetermined jerk, minus the time of the successive deceleration steps.

[0041]

number

[0042] It is equal to the product multiplied by .

[0043] This makes it possible to obtain an overall acceleration that is equal in absolute value to the overall deceleration over the two stages, and therefore the speed is identical between the start and end times of the acceleration and deceleration stages, e.g., the speed is 0.

[0044] In one set of embodiments of the invention, the method comprises calculating a fourth time as the time of start of horizontal movement such that the center of gravity of the load has moved horizontally a maximum first horizontal distance at the moment when the height of the load is equal to or greater than the sum of the height of the starting point and a first vertical margin, and calculating a sixth time as the time of end of horizontal movement such that the center of gravity of the load is at most a second horizontal distance from the end point at the moment when the height of the load is equal to or greater than the sum of the height of the end point and a second vertical margin.

[0045] "Start of horizontal movement" is understood to mean the time at which the center of gravity of the load begins to move away from the starting point.

[0046] "End of horizontal movement" is understood to mean the time when the center of gravity of the load reaches above the end point horizontally.

[0047] This makes it possible to perform horizontal movements starting at a given vertical distance above the start and end of the trajectory, which makes it possible to avoid obstacles at the beginning and end of the trajectory.

[0048] 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.

[0049] In one set of embodiments of the invention, the method comprises calculating a fourth time as the first time that the absolute value of the acceleration is maximum over the first vertical acceleration or deceleration phase, and calculating a sixth time as the first time that the absolute value of the acceleration is maximum over the first vertical acceleration or deceleration phase.

[0050] This makes it possible to avoid applying horizontal accelerations at the beginning of an ascent or at the end of a descent when the vertical acceleration is large (Az1 or Az4) and thus limit the forces applied to the load.

[0051] In one set of embodiments of the present invention, the trajectory of the center of gravity of the load comprises a point of maximum height as a single extremum in height, the vertical acceleration time profile comprises successively a first vertical acceleration stage from a start time to a first time, a first vertical deceleration stage until a second time at which the passage of the point of maximum height occurs, a second deceleration stage until a third time, and a second acceleration stage until an end time, and the horizontal acceleration time profile comprises successively a horizontal acceleration stage from a fourth time equal to or greater than the start time to a fifth time, and a horizontal deceleration stage from the fifth time to a sixth time equal to or less than the end time.

[0052] This makes it possible to obtain the simplest and therefore fastest possible trajectory between the start and end points.

[0053] The trajectory is characterized by an upward phase followed by a downward phase, and the speed during each phase is not constant but increases and then decreases. Similarly, the vertical trajectory is characterized by an acceleration followed by a deceleration.

[0054] In one set of embodiments of the present invention, a method comprises the steps of selecting a first time, a second time, and a third time from a first predetermined interval, a second predetermined interval, and a third predetermined interval, respectively; calculating a maximum absolute value of acceleration over a first vertical acceleration stage as the smaller of a maximum possible acceleration value and half the product of the difference between the first time and a start time and the predetermined jerk; calculating a maximum absolute value of acceleration over a first deceleration stage based on the maximum absolute value over the first acceleration stage; and calculating a maximum absolute value of acceleration over a second vertical deceleration stage, a maximum absolute value of acceleration over the second vertical acceleration stage, and an end time that allows reaching an end point.

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

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

[0057] This makes it possible to obtain longer horizontal acceleration and deceleration phases, thereby limiting the magnitude of the horizontal acceleration and therefore the angle of the effector.

[0058] In one set of embodiments of the present invention, the locus of the center of gravity of the load is defined in a vertical plane with a start point and an end point, and the horizontal acceleration profile is a one-dimensional acceleration profile.

[0059] This allows for a shorter and therefore faster trajectory between the start and end points.

[0060] In one set of embodiments of the invention, the trajectory of the center of gravity 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.

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

[0062] In one set of embodiments of the invention, the method comprises determining a time profile for an orientation of an end section of the robot arm that enables minimizing a tangential force applied to a load based on the vertical acceleration time profile, the horizontal acceleration time profile, and gravitational acceleration, and the control command for applying a trajectory profile for the center of gravity of the load comprises the time profile for the orientation of the end section.

[0063] The term "minimizing the tangential force" is understood to mean making the tangential force as small as possible, which may mean, for example, making the tangential force approach zero within the limits of the mechanical capabilities of the robot arm and / or constraining the tangential force to be equal to or less than a maximum absolute value.

[0064] This end section orientation therefore allows for compensation of most of the tangential forces caused by gravity and acceleration of the load's center of gravity, which allows for the same end effector to be used to move a heavier load (and therefore generate a larger tangential force) and / or to increase the speed of movement of the load's center of gravity without risking the load dropping.

[0065] In this case, we see that the robotic arm applies a motion to move the initial end of the section to orient the end section. Thus, there is an actuator that allows the end section to be oriented. We also see that this force is predominantly a normal force, as the end section will tend to orient itself in the direction of the force applied to the load. Thus, a correlation can be seen between the direction of the force applied to the load and the orientation of the end section.

[0066] In one set of embodiments of the present invention, the step of determining a time profile for the orientation of the end section that enables the tangential force applied to the load to be minimized comprises the steps of determining a target time profile for the orientation of the end section that enables the tangential force applied to the load to be counteracted, and determining a time profile for the orientation of the end section according to the target time profile for the orientation of the end section.

[0067] This makes it possible to obtain a time profile for the orientation of the end section as close as possible to the target profile, which makes it possible to completely cancel the tangential forces.

[0068] In one set of embodiments of the invention, a target time profile for the orientation of the end section that allows for cancellation of the tangential forces applied to the load is determined by calculating, at all instants between the start time and the end time, an orientation value equal to the arctangent of the horizontal acceleration divided by the sum of the vertical acceleration and the acceleration of gravity.

[0069] This allows us to obtain the angle of the total acceleration direction applied to the load at any time. When this target angle direction is applied to the load, the result is only normal forces, no tangential forces.

[0070] In one set of embodiments of the present invention, the step of determining a time profile for the orientation of the terminal section according to the target time profile for the section orientation comprises determining a time profile for the maximum orientation and a time profile for the minimum orientation of the terminal section by adding / subtracting, respectively, the angle corresponding to the maximum tangential force to / from the target time profile for the orientation.

[0071] This allows the tangential force applied to the load at each instant to achieve a minimum and maximum angle that respects the end effector's capabilities, thus allowing for the application of an orientation profile that satisfies the mechanical constraints of the effector.

[0072] In one set of embodiments of the present invention, the step of determining a time profile for the orientation of a terminal section according to a target time profile for the orientation of the section comprises the steps of generating a set of time profile candidates for the orientation of the terminal section, removing the set of time profile candidates for the orientation of the terminal section that have an orientation less than the orientation of the minimum time profile for the orientation or greater than the orientation of the maximum time profile for the orientation at least one time, and selecting a median profile candidate for the orientation from the remaining candidates.

[0073] This makes it possible to obtain a profile for the orientation that is as close as possible to the optimum profile while ensuring that a safety margin regarding the load orientation is respected.

[0074] Other features, details, and advantages will become apparent upon reading the following detailed description and examining the accompanying drawings. [Brief explanation of the drawings]

[0075] [Figure 1] FIG. 1 illustrates an example of a robotic arm according to one set of embodiments of the present invention. [Figure 2] FIG. 1 illustrates an exemplary robotic system according to one set of embodiments of the present invention. [Figure 3] FIG. 1 illustrates a first example of a method for transferring a load according to one set of embodiments of the present invention. [Figure 4a] FIG. 1 shows a first example of a trajectory of the center of gravity of a load according to one set of embodiments of the present invention. [Figure 4b]FIG. 2 illustrates a first example of time profiles for the position, velocity, and acceleration of the center of gravity of a load according to one set of embodiments of the present invention. [Figure 5] FIG. 10 illustrates a second example of a trajectory of the center of gravity of a load according to one set of embodiments of the present invention. [Figure 6] FIG. 10 illustrates a second example of a method for transferring a load according to one set of embodiments of the present invention. [Figure 7] FIG. 1 illustrates an example of a three-dimensional trajectory according to one set of embodiments of the present invention. [Figure 8] FIG. 10 illustrates an example of determining a target time profile for the orientation of an end section of a robot arm in one set of embodiments of the present invention. [Figure 9] 10A-10C illustrate examples of determining the target, maximum, and minimum angles of orientation of the end section of a robot arm in one set of embodiments of the present invention. [Figure 10] FIG. 10 illustrates an example of defining a profile for the orientation of an end section of a robot arm according to one set of embodiments of the present invention. [Figure 11] FIG. 10 illustrates a third example of a method for transferring a load according to one set of embodiments of the present invention. [Figure 12a] 1A-1C show a first example of a load trajectory and a position of an end section of a robot arm obtained by a method according to one set of embodiments of the present invention; [Figure 12b] FIG. 10 illustrates a first example of a time profile for the vertical acceleration of the center of gravity of a load, a time profile for the horizontal acceleration of the center of gravity of a load, and a time profile for the orientation of an end section of a robot arm, according to one set of embodiments of the present invention. [Figure 13a] FIG. 10 shows a second example of a load trajectory and a position of an end section of a robot arm obtained by a method according to one set of embodiments of the present invention. [Figure 13b]FIG. 10 illustrates a second example of a time profile for the vertical acceleration of the center of gravity of a load, a time profile for the horizontal acceleration of the center of gravity of a load, and a time profile for the orientation of the end section of a robot arm, according to one set of embodiments of the present invention. [Figure 14a] FIG. 10 shows a third example of a load trajectory and a position of an end section of a robot arm obtained by a method according to one set of embodiments of the present invention. [Figure 14b] FIG. 10 illustrates a third example of a time profile for the vertical acceleration of the center of gravity of a load, a time profile for the horizontal acceleration of the center of gravity of a load, and a time profile for the orientation of the end section of a robot arm, according to one set of embodiments of the present invention. [Figure 15a] FIG. 10 shows a fourth example of a load trajectory and a position of an end section of a robot arm obtained by a method according to one set of embodiments of the present invention. [Figure 15b] FIG. 10 illustrates a fourth example of a time profile for the vertical acceleration of the center of gravity of a load, a time profile for the horizontal acceleration of the center of gravity of a load, and a time profile for the orientation of the end section of a robot arm, according to one set of embodiments of the present invention. DETAILED DESCRIPTION OF THE INVENTION

[0076] Reference is now made to FIG.

[0077] FIG. 1 shows an example of a robotic arm AR according to one set of embodiments of the present invention.

[0078] In the example of Fig. 1, the robot arm AR allows the transport of a load LD from a first box Bc1 to a second box Bc2. For example, the robot arm AR can be used to move objects one by one from the first box to the second box or to sort objects in the first box.

[0079] The robot arm AR is fixed to the floor by a fixed base BasRob and comprises three successive movable sections Seg1, Seg2 and Seg3, which have fixed lengths but are connected together by actuators at each end, which allow them to rotate around the base BasRob and relative to each other.

[0080] The relative movement of these sections is determined by the end of the robot arm, Ext t In this example, the terminal Ext t is the movable end of the arm located at the end of the last section Seg3 relative to the base, also called the end section.

[0081] The robot arm AR is the terminal Ext t In the example of Fig. 1, the robot arm has at least one end effector Eff that can be attached to a load LD. In the example of Fig. 1, the robot arm has a single end effector, which is a suction cup. In this example, the suction cup can be attached to the load LD or, conversely, can release the load LD.

[0082] Thus, the attachment of the load by the end effector Eff, the relative movement of the movable sections, and the release of the load by the end effector Eff allows the transfer of the load LD from the first box Bc1 to the second box Bc2, and more generally from a starting point to an end point near the robot arm.

[0083] The robotic arm shown in FIG. 1 is given only as a non-limiting example of a robotic arm according to one set of embodiments of the present invention. Other robotic arms may be used according to the present invention. For example: The robot arm may be tethered to the floor by a fixed base, as in the robot shown in Figure 1. It may also be mobile on a mobile platform, for example on wheels or rails. The robotic arm may consist of a different number of movable sections. For example, the robotic arm may have three sections like the arm shown in Figure 1, but may also have two, four, five sections, etc. The movable sections may have a fixed length, as shown in FIG. 1, or at least some of them may have a variable length. The robotic arm may comprise one or more end effectors, for example, one or more suction cups juxtaposed to the ends of the sections. The effector may be a suction cup as shown in the example of Fig. 1, or may be another type of effector, such as a robotic hand, a magnet, or a set of suction cups. If the robotic arm comprises several end effectors, these may be of the same type (e.g. several suction cups) or of different types (e.g. suction cups and a robotic hand).

[0084] Reference is now made to FIG.

[0085] Figure 2 shows the robot system Sys.

[0086] The robot system Sys comprises a robot arm such as a robot arm AR.

[0087] The robot system also comprises at least one calculation unit Calc configured to calculate the trajectory of the center of gravity of the load LD and to send control commands to the robot arm AR. To this end, the at least one calculation unit Calc may be arranged to perform a method according to one of the embodiments of the present disclosure.

[0088] In the example of Fig. 2, the at least one calculation unit Calc is located in a computing device Dev external to the robotic arm AR, for example a workstation, so that the trajectory calculation is done remotely and transmitted to the robotic arm.

[0089] The robotic system of Figure 2 is provided only as a non-limiting example of a robotic system according to one set of embodiments of the present invention. Other robotic systems may be used in accordance with the present invention. For example: The robotic arm may be the arm AR shown in FIG. 2 or any other robotic arm conceivable according to an embodiment of the present invention. At least one computing unit may be located in an external device, as shown in Figure 2, or in the robot arm itself. If several computing units are used, they may be located in different devices, whether in the robot arm itself or in some external computing device. If several computing units are used, they may perform different steps of the method. For example, some steps of the method may be performed in the robot arm itself and other steps may be performed in an external computing device.

[0090] Reference is now made to FIG.

[0091] FIG. 3 shows an example of a method P3 for the transfer of a load from a start point to an end point by a robotic arm, which may be for example an arm AR.

[0092] Method P3 is a method for determining the start point at start time t0 and the end point at end time t F The method comprises a first step S31 of determining the trajectory of the center of gravity of the load between the end points at . The trajectory of the center of gravity of the load has the following properties: - time 0 and end time t F , the velocity of the center of gravity of the load is 0. This means that the load is moved from an initial rest state to a final rest state, which is the case for example in the example of Figure 1 where the object is moved from the first box to the second box. The trajectory passes through at least one extremum in height, and at each extremum in height the vertical velocity of the center of gravity of the load is zero. The extremum in height may be a minimum or a maximum. Depending on the embodiment, the trajectory may comprise a single extremum in height or several consecutive extremums in height.

[0093] The vertical trajectory of the load's center of gravity therefore comprises several points where the vertical velocity is zero: a start point, an end point, and each of the extrema.

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

[0095] The time profile comprises an uninterrupted succession of vertical acceleration and deceleration phases in each interval between the start and end points (this interval comprising at least one extremum in height).

[0096] Thus, for each of these intervals between the first and second points where the vertical velocity is zero, the vertical acceleration profile comprises a vertical acceleration phase followed by a vertical deceleration phase. Over a given interval between the first and second points, the vertical acceleration profile may in particular comprise: - If the height of the second point is higher than the height of the first point, an ascent acceleration phase followed by an ascent deceleration phase. - If the height of the second point is lower than the height of the first point, a downward deceleration phase followed by a downward acceleration phase.

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

[0098] The horizontal acceleration time profile comprises an uninterrupted succession of at least one horizontal acceleration phase and at least one horizontal deceleration phase between a fourth time t4 greater than or equal to the start time t0 and a sixth time t6 less than or equal to the end time t0.

[0099] Thus, the horizontal acceleration time profile may comprise one or more consecutive acceleration-deceleration series between the fourth and sixth times. Since the speed is zero at the start and end points, the horizontal acceleration time profile may be a phase of zero acceleration and zero speed between the start time t0 and a fourth time t4, - The sixth time t6 and the end time t f The stage between 0 acceleration and 0 speed It may also be provided.

[0100] Once the acceleration profile is obtained, the acceleration may be integrated to obtain the velocity and position of the center of gravity of the load. According to various embodiments of the present invention, the acceleration may be calculated first and then integrated to obtain the velocity and position, or conversely, the acceleration, velocity, and position of the center of gravity of the load may be calculated together.

[0101] The method P3 then comprises a final step S33 of sending control commands to at least one effector of the robot arm to apply the trajectory profile to the center of gravity of the payload.

[0102] The control commands can be of different types depending on the possible inputs of the robot arm. For example, the control commands can be: - The trajectory itself, - the position, length and / or angle of the robot arm section; - Low-level commands sent to robot actuators etc.

[0103] According to various embodiments of the present invention, the trajectory can thus be converted into commands for the actuators of the robot arm, either by the robot arm itself or by an external computing device.

[0104] The method P3 shown in FIG. 3 is provided only as a non-limiting example of a method for transferring a load according to one set of embodiments of the present invention. Other methods are conceivable according to other embodiments of the present invention. For example, the order of substeps S311 and S312 may be changed. Step S311 may be performed before step S312 as shown in FIG. 3, or vice versa. These two substeps may be performed in parallel. If one of these two substeps is performed before the other, the output of the first substep may be used as input for the second substep.

[0105] Method P3 may also comprise an intermediate step S32 between steps S31 and S33 of determining a time profile for the orientation of the end section of the robot arm, which enables minimizing the tangential force applied to the payload based on the vertical acceleration time profile, the horizontal acceleration time profile, and the gravitational acceleration g. In this case, the control instructions for applying a trajectory profile for the center of gravity of the payload comprise the time profile for the orientation of the end section.

[0106] Determining a profile for the orientation of the end section of the robot arm in intermediate step S32 allows the orientation of the end section to largely compensate for the tangential forces caused by gravity and acceleration of the center of gravity of the load, which allows for faster trajectories and / or transport of heavier loads without the end effector releasing the load.

[0107] However, step S32 is not necessarily present in the method according to the present invention. In fact, other methods of applying an orientation to the end effector may be used, for example: The robot arm does not necessarily control the orientation of the end effector, but the orientation of the end effector may remain free, in which case the orientation of the end effector occurs freely according to the movement. - If the robot arm controls the orientation of the end effector, this may be calculated and applied in real time by the robot during movement. Finally, if the method comprises a step of determining a time profile for the orientation of the end section, this may be determined in various ways.

[0108] The center of gravity of a load can be determined in several ways: For example, the load can be viewed by a camera to model the load and determine its geometric center, which may be equivalent to the center of gravity.

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

[0110] The locus of the center of gravity of the load starts from a starting point with coordinates x0, z0 and f , z f The endpoint having

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

[0112] In the example of Figures 4a and 4b, the trajectory starts at the first box Bac0 and ends at the last box Bacf, so this is an example of transporting a load from the first box to the second box, like the example in Figure 1.

[0113] Here, 2D trajectories are presented because they allow for shorter, more direct trajectories between two points and are easier to represent in view of the readability of the present disclosure, however, the present invention is of course also applicable to 3D trajectories, which allow for more complex movements to be performed, for example to avoid obstacles.

[0114] It will be noted that in general, in this disclosure, trajectories are described with respect to orthogonal frames of reference. Thus, the letters x and z refer to the horizontal axis and the vertical axis orthogonal to the horizontal axis x, respectively. For 3D trajectories, the letter y refers to a second horizontal axis orthogonal to both axes x and z.

[0115] The trajectory Traj4 represents a two-dimensional trajectory along the axes x and z.

[0116] A trajectory may be defined by one or more of the following elements: - Height profile Traj shown in Fig. 4a, which represents height as a function of horizontal position zx 4. This profile indicates: Vertical position along the z-axis in meters on the vertical axis. Horizontal position along the x-axis in meters on the horizontal axis. - the vertical acceleration time profile Acc represented in Figure 4b z 4, i.e., the vertical acceleration profile as a function of time. This profile shows: On the vertical axis, ms -2 Vertical acceleration along the z-axis in units of On the horizontal axis, time in seconds. - the horizontal acceleration time profile Acc represented in Figure 4b x 4, i.e., the horizontal acceleration profile as a function of time. This profile shows: On the vertical axis, ms -2 Horizontal acceleration along the x-axis in units of On the horizontal axis, time in seconds. - The vertical velocity time profile Vit shown in Figure 4b z 4, i.e., the vertical velocity profile as a function of time. This profile shows: On the vertical axis, ms -1 Vertical speed along the z-axis in units of . On the horizontal axis, time in seconds. - the horizontal velocity time profile Vit represented in Figure 4bx 4, i.e., the horizontal velocity profile as a function of time. This profile shows: On the vertical axis, ms -1 Horizontal speed along the x-axis in units of . On the horizontal axis, time in seconds. - Vertical position (height) time profile Pos shown in Figure 4b z 4, i.e., the vertical position profile as a function of time. This profile shows: Vertical position or height along the z-axis in meters on the vertical axis. On the horizontal axis, time in seconds. - the horizontal position time profile Pos represented in Figure 4b x 4, i.e., the horizontal position profile as a function of time. This profile shows: Horizontal position along the x-axis in meters on the vertical axis. On the horizontal axis, time in seconds.

[0117] Trajectory 4 has the property that the locus of the center of gravity of the load has as its only extreme value of height the point with coordinates x2, z2, so that z2 represents the maximum height of the locus.

[0118] The trajectory Traj4 therefore comprises a stage of ascent from a starting point at coordinates x0, z0 to a maximum trajectory at coordinates x2, z2. This ascent stage is subdivided into: - Maximum speed Vit z An upward vertical acceleration phase PhAccZmont from start time t0 to time t1, where the height increases with increasing vertical speed until (t1) is reached. - followed by an ascending vertical deceleration phase PhDecZmont from time t1 to time t2, during which the height increases with a decreasing vertical speed until it reaches zero vertical speed at a point of height z2.

[0119] The trajectory Traj4 is then calculated from the maximum trajectory of coordinates x2 and z2 to coordinate x f , z fThis descent stage is subdivided into: - Maximum absolute value Vit z A downward vertical deceleration phase PhDecZdec from time t2 to time t3, in which the height decreases with decreasing negative vertical velocity (i.e., increasing absolute negative vertical velocity) until a negative velocity of (t3) is reached. - followed by a decrease in height with an increasing negative vertical velocity (i.e., a decreasing absolute negative vertical velocity) from time t3 to the end time t, until a vertical velocity of zero is reached at the end point. f Downward vertical acceleration phase PhAccZdec.

[0120] Trajectory Traj4 also includes: - Maximum absolute value Vit x A horizontal acceleration phase PhAccX from time t4 to time t5 in which the load advances along x at increasing positive horizontal and vertical speeds until it reaches a maximum speed at (t5). - A subsequent horizontal deceleration phase PhDecX from time t5 to time t6 in which the load advances along x with increasing positive horizontal and vertical speeds until a horizontal speed of zero is reached.

[0121] On the one hand, between times t0 and t4, and on the other hand, between times t6 and t f Between , the horizontal speed is 0 but the vertical speed is not 0. Therefore, these two intervals correspond only to the ascending and descending phases near the beginning and end.

[0122] In the example of Figures 4a and 4b, each horizontal or vertical acceleration or deceleration step begins with an increase in the absolute value of the acceleration at a predetermined jerk J up to a maximum absolute value of the acceleration and ends with a decrease in the absolute value of the acceleration at a predetermined jerk J. The predetermined jerk is defined by the profile Acc x 4 and Acc z The absolute values ​​of the maximum acceleration over the different stages are: - |Az1| for the ascending vertical acceleration phase PhAccZmont, - |Az2| for the ascending vertical deceleration phase PhDecZmont, - |Az3| for the downward vertical deceleration phase PhDecZdec, - |Az4| for the downward vertical acceleration phase PhAccZdec, - |Ax1| for the horizontal acceleration phase PhAccX, - |Ax2| for horizontal deceleration phase PhDecX is.

[0123] This allows for gradual variation in the acceleration physically achievable by the robot. For example, a predetermined jerk can be defined based on the properties or mechanical constraints of the robot arm.

[0124] For at least one of the steps, the maximum absolute value of the acceleration across the steps (|Az1|, |Az2|, |Az3|, |Az4|, |Ax1|, |Ax2|) is - the maximum possible acceleration value Az_max, and - half the product of the time length of the step and said predetermined jerk It can be calculated as the smaller of

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

[0126] In the first case, when the smaller value is the maximum possible acceleration value Az_max, the acceleration and deceleration phases are characterized by an increasing absolute value of the acceleration with a predetermined jerk J, a constant acceleration and a decreasing absolute value of the acceleration. This is the case for example for the phase PhAccZmont in the example of FIG. 4a.

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

[0128] In the second case, if the smaller value is half the product of the stage duration and the predetermined jerk, this means that the stage duration is in fact too short to reach Az_max, and the acceleration then has a "triangle" shape in this stage, as for example in the case of the stage PhDecZdec.

[0129] One of the properties of the trajectory Traj4 is that the velocity at the end of the paired acceleration and deceleration phases is zero. For example, - vertical speed Vit at the beginning of the paired phases PhAccZmont and PhDecZmont z 4(t0) and the vertical speed at the end Vit z 4(t2) are both 0. - vertical speed Vit at the beginning of the paired phases PhAccZmont and PhDecZmont z 4(t2) and the vertical speed at the end Vit z 4(t f ) are both 0. - horizontal speed Vit at the beginning of the paired phases PhAccZmont and PhDecZmont x 4(t4) and the horizontal speed at the end Vit x 4(t6) are both 0.

[0130] This implies that the integral of acceleration is zero in each of these paired stages, which means that the integral of acceleration is the opposite of the integral of deceleration. For example, for stages PhAccZmont and PhDecZmont, between time t0 and time t2,

[0131]

number

[0132] This can be

[0133]

number

[0134] This suggests that...

[0135] Similarly, for the paired steps PhAccZdec and PhDecZdec on the one hand, and PhAccX and PhDecX on the other hand,

[0136]

number

[0137]

number

[0138] is.

[0139] Times t4 and t6 can be defined in a variety of ways.

[0140] For example, in one example not shown in Figures 4a and 4b, The fourth time t4 can be calculated as the first time that the absolute value of the acceleration is at its maximum value over the first vertical acceleration or deceleration phase. In the example of Figures 4a and 4b, this would therefore be the last time that the vertical acceleration is equal to Az1 before decreasing. The sixth time t6 can be calculated as the first time that the absolute value of the acceleration is at its maximum value throughout the first vertical acceleration or deceleration phase. In the example of Figures 4a and 4b, this would therefore be the last time that the vertical acceleration is equal to Az4 before decreasing in absolute value.

[0141] So in this case, in the example of Figures 4a and 4b,

[0142]

number

[0143]

number

[0144] This becomes:

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

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

[0147] However, the trajectories shown in Figures 4a and 4b are given as examples only, and other trajectories are conceivable in different embodiments of the invention. For example: The start and end points may be different and are not necessarily located inside the box. For example, they may be located on a table, the floor, etc. The trajectory may be a 3D trajectory, in which case the horizontal acceleration profile is a 2D profile with a y component. The trajectory may comprise several extrema of height, for example with successive ascent and descent phases, in which case the trajectory comprises more vertical acceleration and deceleration phases (one acceleration phase and one vertical deceleration phase per ascent or descent phase). The trajectory may comprise several horizontal acceleration and deceleration phases. - Horizontal acceleration may start at the beginning of the trajectory (in this case t4 = t0), and / or horizontal deceleration may end at the end point (in this case t6 = t f). More generally, the values ​​of t4 and t6 may take different values ​​depending on operational requirements. Specifically, t4 and t6 may take time values ​​that are tied to vertical acceleration levels. The predetermined jerk J may be the same for all acceleration or deceleration phases, as shown in FIG. 4b, or may be different depending on the phase (e.g. different for horizontal or vertical phases, different for ascending or descending phases, etc.). The acceleration and deceleration phases may have different time profiles to those shown in Figure 4b, for example with variable jerk over the phases. Time t5 may be defined as the median time between t4 and t6, or in some other way.

[0148] Reference is now made to FIG.

[0149] FIG. 5 shows a second example of a trajectory in one set of embodiments of the present invention.

[0150] The trajectory shown in FIG. 5 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.

[0151] For ease of reading, Figure 5 shows the following elements of the trajectory: - Height profile Traj, which shows the height according to the horizontal position zx 5. - Horizontal acceleration time profile Acc x 5. - Vertical position (height) time profile Pos z 5. - Horizontal position time profile Pos x 5.

[0152] The conventions adopted are the same as in Figures 4a and 4b.

[0153] As in the example of Figures 4a and 4b, here the load is transferred from the first box Bac0 to the second box Bacf The first box Bac0 and the second box Bac f both have height h_bin.

[0154] In the example of FIG. 5, times t4 and t6 are then t4: the time at which the horizontal acceleration phase must begin so that at the moment when the height of the load is equal to or greater than the sum of the height of the starting point and the height of the box h_bin (in this example, at time t4'), the center of gravity of the load has moved at most a first horizontal distance margin_bin from the starting point; - t6: The time during which the horizontal deceleration phase must continue so that the center of gravity of the load is at most the second horizontal distance margin_pc at the moment when the height of the load is equal to the sum of the height of the end point and the height of the box h_pc (time t6' in this example). It is calculated as:

[0155] Therefore, the height profile Traj zx As shown in Figure 5, horizontal movement only occurs when the load is outside the box or vertically close to the exit of the box. In this way, the load can move without risking a collision with the box or other loads inside the box. In other words, the margins margin_pc and margin_bin allow limited movement inside the box to allow small movements while avoiding a collision with another load inside the box.

[0156] This example is given only as an illustrative and non-limiting example, and other methods of calculating the values ​​h_bin, margin_bin, and margin_pc may be used in different embodiments of the present invention. Specifically, the margins margin_bin and margin_pc, and therefore times t4 and t6, may be calculated in any manner that allows avoiding obstacles at the beginning and end of the trajectory. For example, it is entirely possible for the values ​​of margin_pc and margin_bin to be 0, in which case horizontal movement occurs only when the load is outside the box. The value of h_bin may also be different for the first and last boxes, for example if the heights of the first and last boxes are different.

[0157] Reference is now made to FIG.

[0158] Method P6 is an example of a method according to one set of embodiments of the present invention. Method P6 comprises all the steps of method P3, characterized in that step S311 comprises the following substeps: Method P6 allows obtaining different parameters for the trajectory, as shown in Figures 4 and 5.

[0159] In the example of FIG. 6, the acceleration phase comprises an increase in the absolute value of acceleration at a predetermined jerk up to a maximum absolute value of acceleration over a first phase, and a decrease in the absolute value of acceleration at a predetermined jerk J.

[0160] The first substep S61 consists of selecting a first time t1, a second time t2, and a third time t3 from a first predetermined interval [t1_min;t1_max], a second predetermined interval [t2_min;t2_max], and a third predetermined interval [t3_min;t3_max], respectively.

[0161] The predetermined 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 via a simplified calculation of the sum of travel times and margins.

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

[0163] Step S311 then comprises a second sub-step S62 consisting of determining the maximum absolute value of the acceleration over the first vertical acceleration phase Az1 as the smaller of the maximum possible acceleration value Az_max and half the product of the difference between the first time and the start time and said predetermined jerk J. In one set of embodiments of the invention, Az1 may be defined as the smaller of the two above-listed values ​​and the maximum acceleration value Az_max_speed1, which makes it possible to take into account speed limitations at the end of the first vertical acceleration phase.

[0164] The value Az_max_speed1 is a speed that takes into account the physical limits of the robot arm, for example 2000 mm.s -1 Az_max_speed1 is thus a maximum value that makes it possible to limit the speed in the first time t1, i.e. at the end of the phase PhAccZmont. Az_max_speed1 therefore depends on the duration of the first vertical acceleration phase PhAccZmont.

[0165] For example, the maximum possible acceleration value Az_max may be defined as the maximum vertical acceleration defined by the physical limits of the robot. For example, Az_max=10 m.s -2 It could be.

[0166] Step S311 then comprises a third substep S63 consisting of determining Az2 according to Az1 according to the following formula:

[0167]

number

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

[0169] Step S311 then determines the maximum absolute value Az3 of the acceleration over the second vertical deceleration phase PhDecZdec, the maximum absolute value Az4 of the acceleration over the second vertical acceleration phase PhDecZacc, and the end time t f A fourth sub-step S64 comprises determining:

[0170] In other words, at this stage, the height at t2, the time t3, and the height z at the end f is known. Therefore, it is f At height z f and Az3, Az4, and t to obtain the velocity and acceleration of 0. f The problem is to determine:

[0171] This can be achieved in several ways.

[0172] For example, the maximum value Az3_max of the maximum absolute value Az3 of the acceleration during the second vertical deceleration phase PhDecZdec is: - maximum possible acceleration value (Az_max), - one-half the product of the difference between the third time and the second time and the predetermined jerk; - the maximum acceleration value Az_max_speed3 that allows respecting the speed limit at the end of the second vertical deceleration phase PhDecZdec. It is the smallest of the.

[0173] The value Az_max_speed3 determines the speed at the third time t3, i.e. at the end of the phase PhDecZdec, to a speed that takes into account the physical limits of the robot arm, for example 2000 mm.s -1 Az_max_speed3 is therefore dependent on the duration of the phase PhDecZdec.

[0174] Next, calculate the maximum possible value Az4_max for Az4 in the same way, so 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 effector remains below a predetermined limit, and Az4_max_triangle ... f is the maximum acceleration when considering a triangular profile between Az_max and Az_max, and Az_max is the maximum acceleration allowed by the robot arm.

[0175] Next, the vertical acceleration and speed are t f A first value t according to Az3=Az3_max and Az4=Az4_max so that f This means that t f The first and last height value z in f ', which is the actual final height z f ' is likely to be different.

[0176] z f '>z f If , the acceleration must be larger and / or longer. Since the maximum acceleration has already been selected, the acceleration must be longer, but since t2 and t3 are fixed, the acceleration must be longer at time t f Therefore, Az3 can remain fixed at its maximum value Az3_max, but Az4 can be increased by the time t2 and t f To preserve the fact that the area under the acceleration profile between z is zero, f '=z f Until t f As long as increases, Az4 must decrease.

[0177] z f ' <z f If t2 and t3 are 0, there must be a smaller acceleration and / or a shorter acceleration time. f To keep the area under the acceleration profile zero during tf and this new t f Recalculate the maximum value of Az4 corresponding to t f and Az3 can be recalculated based on Az4.

[0178] Therefore, the problem strategy in these two cases is that the only variable is t f An expression z such that f '(t f )-z f This involves solving =0.

[0179] 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 profile as shown in Figures 4a and 4b can be determined to obtain a plausible trajectory that satisfies the time and height constraints, as well as the mechanical constraints of the robot arm. Other methods are possible, for example: The first time t1, the second time t2, and the third time t3 may be obtained in a manner other than by selecting them within an interval, for example, by a simplified calculation of the trajectory parameters. The acceleration phases may not comprise an acceleration increase / decrease with a predetermined jerk, and other methods may be used to calculate the parameters Az2 and Az4 according to Az1 and Az3, respectively, as long as they make it possible to obtain a vertical speed of zero at the end of the paired acceleration and deceleration phases.

[0180] Reference is now made to FIG.

[0181] In the example of Figure 7, the trajectory is a three-dimensional trajectory, which means that an obstacle Obs7 exists around the robot arm Rob7, and it moves from the first box Bac0 to the last box Bac f This is because it prevents a straight line from being traced to the point.

[0182] To facilitate understanding of the diagram, the vertical component of the trajectory is not shown here. xy7 represents the horizontal component of the trajectory. The X' axis is defined by the direction between the start and end points, and the Y' axis represents the horizontal axis perpendicular to this direction.

[0183] To avoid obstacles, the horizontal trajectory must be a maximum distance d_obs away from the X' axis.

[0184] In this example, in addition to the acceleration and position profiles for the X and Z axes already mentioned, we therefore also have an acceleration profile Acc for the Y' axis. y 7 and position profile Posy7 are defined.

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

[0186] This example is given only as an illustrative example of a three-dimensional trajectory with a second horizontal dimension. Other trajectories of this type are conceivable. For example, the acceleration profile may include more acceleration and deceleration phases to avoid more obstacles.

[0187] Reference is now made to FIG.

[0188] FIG. 8 shows an example of determining a target time profile for the orientation of an end section of a robot arm in one set of embodiments of the present invention.

[0189] In one set of embodiments of the invention in which step S32 is performed, step S32 comprises determining a target time profile for the end-section orientation that allows for counteracting the tangential forces applied to the load, and a time profile for the end-section orientation according to the target time profile for the end-section orientation. The time profile for the end-section orientation represents the evolution of the end-section orientation angle θ in the plane of the trajectory as a function of time. This time profile is represented by a 2D trajectory for illustrative purposes. In other embodiments of the invention, the end-section orientation may be represented by more angles, for example, by two angles θ and φ when the trajectory of the load's center of gravity is represented in 3D.

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

[0191] In the example of Figure 8, the trajectory is in two dimensions, and the target time profile for the orientation of the terminal section, Ori_tar8, is - horizontal acceleration profile Accx8, - vertical acceleration profile Accz8, - mass of the load m, - gravitational acceleration g is determined from

[0192] This target temporal profile may be supplemented by a maximum temporal profile for the orientation of the end leg, Ori_max8, and by a minimum temporal profile for the orientation of the end leg, Ori_min8.

[0193] Reference is now made to FIG.

[0194] FIG. 9 shows an example of determining the target, maximum, and minimum angles for the orientation of the end section of a robot arm in one set of embodiments of the present invention.

[0195] In one set of embodiments of the present invention, a target profile for the orientation of the end section, Ori_tar8, can be obtained by calculating a target angle of orientation at a set of times, which may be equal to the angle formed between the vector of the total acceleration applied to the load and the vertical axis.

[0196] In the example of Figure 9, the force applied to the load at time t is: where m is the mass of the load, g is the value of the gravitational acceleration, and Acc x 8(t) is the horizontal acceleration profile Acc x 8 is the value of horizontal acceleration at time t, Acc z 8(t) is the vertical acceleration profile Acc z is the value of the vertical acceleration at time t in 8. - Horizontal forces Force generated by the horizontal component of acceleration applied by the robot arm movement: -m*Acc x 8(t) - Vertical force Force generated by the vertical component of the vertical acceleration applied by the robot arm movement: -m*Acc z 8(t) Gravity:-m*g

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

[0198] Diagram F_tar9 shows that the angle of the end angle, and therefore the angle of the load orientation, is the target angle θ tar In this case, only normal forces are applied to the load, and no tangential forces are applied to the load. In this case,

[0199]

number

[0200] is.

[0201] In one set of embodiments of the present invention, the maximum profile for the orientation of the end section, Ori_max8, and the minimum profile for the orientation of the end section, Ori_min8, are respectively set to the angle corresponding to the maximum tangential force F_tan_max at a set of times relative to the target angle θ tar (t) by adding / subtracting the maximum angle of orientation θ max (t) and minimum angle θ min (t) can be obtained by calculating

[0202] The graphs F_min9 and F_max9 respectively show the angle of the end effector, and therefore the angle of the load orientation, at the minimum angle θ min and the angle of the end effector, and therefore the angle of the load orientation, is equal to the maximum angle θ max This indicates a situation equivalent to

[0203] The force vector applied to the load remains the same, but the angle θ min and θ max So, the power is - Normal force F_normal_min - tangential force F_tan_max are dispersed among

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

[0205] Therefore, any real profile for the orientation of the end sections, and therefore the orientation of the load, between the profiles Ori_max8 and Ori_min8 is determined so as to ensure that the absolute value of the tangential force applied to the load is less than or equal to F_tan_max at each time t. tar (t), θ min (t), and θ max By determining (t), the profile Acc x 8 and Acc z 8 it is possible to determine the profiles Ori_tar8, Ori_max8, and Ori_min8.

[0206] F_tan_max can be determined in a variety of 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 may vary in different embodiments of the present invention. For example, - A safety margin may be applied to the theoretical normal force that the end effector can withstand. - If the exact mass of the load is unknown, it may be estimated or the maximum load value may be used.

[0207] Reference is now made to FIG.

[0208] In one set of embodiments of the invention, a method comprises determining an actual profile for an orientation of the end effector based on a target profile, a minimum profile, and a maximum profile for the orientation of the end effector.

[0209] In practice, the end effector may have limited capability for orientation variation, so the actual rate of orientation variation of the end section cannot keep up with too rapid variations in the orientation rate in the target profile. Therefore, the actual profile for the orientation of the end section may be determined to be as close as possible to the target profile while respecting the mechanical capability of the robot arm and being between the minimum and maximum profiles for orientation.

[0210] This can be achieved in several ways, for example: The actual profile for the orientation can be obtained by constrained optimization. Several profile candidates may be selected before selecting the best profile candidate. etc.

[0211] In the example of Figure 10, the target profile is denoted Ori_tar10, the maximum profile is denoted Ori_max10, and the minimum profile is denoted Ori_min10. The actual profiles for the orientation are obtained in several steps, each represented by graphs Ori_10.1, Ori10.2, and Ori10.3, where the horizontal axis represents time in seconds and the vertical axis represents the angle of the end section orientation in degrees. The first step, represented by the graph Ori10.1, consists in generating a set of profile candidates for the orientation ori_cand10.1, represented in the graph Ori10.1 in addition to the profiles Ori_tar10, Ori_max10, and Ori_min10. The profile candidates are defined so as to take into account the mechanical constraints of the robot arm, in particular the maximum angular velocity of rotation of the end section. In this example, the profiles are generated by an equation that represents the actual orientation generated by the robot arm and observed as a function of the control parameters, in this example the magnitude of the target angle and the magnitude of two speeds for negative and positive angles, respectively. The second step, represented by the graph Ori10.2, consists in removing from the set ori_cand10.1 those profile candidates that, at least at one time, have angle values ​​greater than the angle value of the profile Ori_max10 or less than the angle value of the profile Ori_min10. This makes it possible to remove from the candidates those profile candidates whose implementation leads, at least at one moment, to the application of a tangential force to the load that exceeds F_tan_max. Thus, all profiles Ori_cand10.2 retained at the end of this step and represented by the graph Ori_10.2 make it possible both to satisfy the mechanical constraints of the robot arm and to obtain, at all moments, the application of a tangential force to the load that is less than or equal to F_tan_max. The third step, represented by the graph Ori10.3, consists in selecting the actual profile Ori_reel10 for the orientation to be applied to the end section. In the example of Figure 10, the profile Ori_reel10 is selected as the median profile from among the profiles Ori_cand10.2 retained in the previous step. This makes it possible to obtain the most central profile, and therefore possibly the profile closest to the target profile, which allows both to satisfy the mechanical constraints of the robot arm and to obtain at all times the application of a tangential force on the load less than or equal to F_tan_max.

[0212] Thus, the orientation profile Ori_reel10 may be applied to the end section of the robot arm, for example, by an actuator that controls the orientation of the end section.

[0213] The steps shown in Figure 10 are given only as an example of steps for defining a profile for the orientation of the end section of a robot arm, according to one set of embodiments of the present invention. However, other methods are conceivable. For example: The profile can be a 2D profile for an orientation as shown in Figure 10, but can also be a 3D profile. The generation of profile candidates in step Ori10.1 can be performed according to various formulas that take into account the specific characteristics of the trajectory, for example the number of stages in the vertical and horizontal profiles of the trajectory, as well as the number of stage changes. The profile ori_reel selected in step Ori10.3 can be selected in various ways, for example it can be the profile with the smallest distance from profile Ori_tar10. etc.

[0214] Reference is now made to FIG.

[0215] FIG. 11 shows a third example of a method P11 for transferring a load according to one set of embodiments of the present invention.

[0216] Method P11 comprises all the steps of method P6 discussed with respect to Figure 6. Specifically, method P11 relates to an example 2D trajectory as shown in Figures 4a and 4b, where calculation of trajectory parameters begins in step S61 with selecting three times t1, t2, and t3 from their respective intervals.

[0217] Specifically, method P6 determines the minimum time t min The principle is that three times t1, t2 and t3 of a set of possible times are incremented until an optimal strategy related to

[0218] Thus, the method P11 comprises: - carrying out a step S31 of determining the trajectory of the center of gravity of the load, comprising all the substeps defined in FIG. 6, starting with a substep S61 of selecting the times t1, t2 and t3; at the end of this step, the trajectory obtained for the center of gravity is determined, in particular at its end time t f is defined by - time tf and minimum time t min Step S1101, where time t min is the shortest time for which a feasible trajectory was generated during the previous iteration. When analyzing the initial trajectory, its feasibility must be analyzed in all cases. For this purpose, for example, it is always necessary to use t until the first trajectory achievable by the robot arm is identified. f <t min so that t min It is possible to initialize -t f <t min If: Step S32 of determining a time profile for the orientation of the end section. This is followed by step S1102 of verifying that continuous variation of the orientation of the end segments is possible in the trajectory. If the verification is successful in step S1102, that is, if the change in the orientation of the end section is t f <t min If possible, store the trajectory parameters (specifically, times t1, t2, and t3 that define the fastest trajectory at this stage) and f The value of t min At this stage, the parameters associated with the fastest achievable trajectory encountered are therefore known, as well as the associated minimum time. If the verification in one of steps S1101 and S1102 fails, or at the end of step S1103, i.e., t f ≧t min If continuous variation of the orientation of the end sections is not possible in the trajectory, or if the parameters of the shortest trajectory are recorded and the time t min If it is updated, Step S1104 of incrementing the three times t1, t2, and t3, ie, selecting the next possible times t1, t2, and t3. Step S1105 verifies that the increment is possible. If the verification in step S1105 is successful, ie, if incrementing is possible, the process returns to step S62 with the new times t1, t2, and t3. If the verification in step S1105 fails, i.e., all possible times have been processed, a step S1106 of selecting t1, t2, and t3 associated with the optimal trajectory, followed by a step S33 of sending control instructions for implementing the trajectory with the intention of executing the trajectory.

[0219] Method P11 provides a specific example of defining an optimal trajectory. However, method P11 is given only as a non-limiting example of a method according to one set of embodiments of the present invention. Therefore, other methods are possible, and in particular, if other parameters are used as inputs to the trajectory calculation, other conditions and loops for varying input parameter values ​​may be used.

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

[0221] 12a, 13a, 14a, and 15a represent four examples of load trajectories in four exemplary embodiments of the present invention, each of which consists of transporting a load from initial boxes Bac0_12, Bac0_13, Bac0_14, Bac0_15 to final boxes Bacf_12, Bacf_13, Bacf_14, Bacf_15 at different respective distances and heights.

[0222] For each example, the corresponding Figure 12b, Figure 13b, Figure 14b, and Figure 15b respectively represent: - Vertical acceleration profile Acc z 12. Acc z 13. Acc z 14, and Acc z 15. - Horizontal acceleration profile Acc x 12. Acc x 13. Acc x14, and Acc x 15. - Graphs Ori12.3, Ori13.3, Ori14.3, Ori15.3 showing: Target time profiles Ori_tar12, Ori_tar13, Ori_tar14, and Ori_tar15 for the orientation of the end section of the robot arm. Maximum time profiles Ori_max12, Ori_max13, Ori_max14, and Ori_max15 for the orientation of the end section of the robot arm. Minimum time profiles Ori_min12, Ori_min13, Ori_min14, and Ori_min15 for the orientation of the end section of the robot arm. Profile candidates Ori_reel12, Ori_reel13, Ori_reel14, and Ori_reel15 selected as the actual profile for the orientation of the end section of the robot arm. - Height profile Traj, which shows: xy 12. Traj xy 13. Traj xy 14, and Traj xy 15: Load center of gravity height profile Traj_ch xy 12. Traj_ch xy 13. Traj_ch xy 14, and Traj_ch xy 15. Height profile of the end section starting point Traj_seg xy 12. Traj_seg xy 13. Traj_seg xy 14, and Traj_seg xy 15. and a bar representing the orientation of the end section of the robot arm at a given set of points representing successive times.

[0223] Tangential forces can be measured in several ways, specifically: - The shape of the vertical and horizontal acceleration profiles of the load's center of gravity It is observed that the profile followed by the end section of the robot arm is reduced by an orientation as close as possible to the target profile. It is observed in the trajectory profile that the orientation of the end section tends to follow as close as possible to the ideal orientation defined by the horizontal and vertical accelerations.

[0224] These examples demonstrate the ability of the present invention to generate trajectories achievable by a robotic arm, which makes it possible to limit the tangential forces applied to the transported load. However, they are given only as non-limiting examples of trajectories calculated in one set of embodiments of the present invention.

[0225] The present disclosure is not limited to the examples for the method, computer program, storage medium, and robotic system described above by way of example only, but encompasses all variants that can be conceived by a person skilled in the art within the framework of the protection sought. [Explanation of symbols]

[0226] P3 method P11 Method

Claims

1. A plurality of sections and the plurality of sections (Seg 1 ,Seg 2 ,Seg 3 ) end (Ext t ) at a starting point (x) by a robot arm (AR) having at least one end effector (Eff) that can be attached to a load (LD). 0 ,z 0 ) to the end point (x f ,z f a method (P3, P6) for transferring said load to a Start time (t 0 ) and the start and end times (t F ) and the end point at a speed of 0, at least one extreme value (x 2 ,z 2 ), wherein the determination of the trajectory comprises: a vertical acceleration time profile (Acc) comprising an uninterrupted succession of vertical acceleration and deceleration phases in each interval between the start point, the end point, and the height extremes; z 4. Acc z 8) (S311); The start time (t 0 ) or more for the fourth time (t 4 ) and the sixth time (t 6 ) with an uninterrupted succession of at least one horizontal acceleration phase and at least one horizontal deceleration phase between the horizontal acceleration phase and the horizontal deceleration phase. x 4. Acc x 5. Acc y 7. Acc x 8) and a step (S312) of determining and sending a control command to at least one effector of the robot arm to apply a trajectory profile of the center of gravity of the load (S33); A method comprising:

2. 2. The method of claim 1, wherein a horizontal or vertical acceleration or deceleration phase begins with an increase in absolute value of acceleration at a predetermined jerk (J) up to a maximum absolute value of acceleration (|Az1|, |Az2|, |Az3|, |Az4|, |Ax1|, |Ax2|) over the phase and ends with a decrease in the absolute value of the acceleration at the predetermined jerk.

3. The maximum absolute value of the acceleration (|Az1|, |Az2|, |Az3|, |Az4|, |Ax1|, |Ax2|) over the step is The maximum possible acceleration value (Az_max), and One-half the product of the time length of said step and said predetermined jerk 3. The method of claim 2, comprising calculating the minimum of:

4. 4. The method of claim 2 or 3, wherein two successive stages of acceleration and deceleration are performed such that the speed at the end of the deceleration stage is equal to the speed at the beginning of the acceleration stage.

5. Two successive stages of acceleration and deceleration the maximum absolute value of the acceleration (|Az1|, |Az4|, |Ax1|) over the successive acceleration steps minus the quotient of dividing the maximum absolute value of the acceleration over the successive acceleration steps by the predetermined jerk, from the time of the successive acceleration steps; [Equation 1] The product of this is the maximum absolute value of the acceleration (|Az2|, |Az3|, |Ax2|) over the successive deceleration steps minus the quotient of the maximum absolute value of the acceleration over the successive deceleration steps divided by the predetermined jerk, minus the time of the successive deceleration steps; [Equation 2] The method of claim 4, wherein the product is equal to the product of multiplying by

6. The fourth time (t ) is set as the time when the center of gravity of the load starts to move horizontally, so that the center of gravity of the load moves horizontally by at most a first horizontal distance (margin_bin) at the moment when the height of the load is equal to or greater than the sum of the height of the starting point and a first vertical margin (h_bin). 4 ) and The sixth time (t ) is set as the time of the end of the horizontal movement so that the center of gravity of the load is at most a second horizontal distance (margin_pc) from the end point at the moment when the height of the load is equal to or greater than the sum of the height of the end point and a second vertical margin (h_pc). 6 ) and 6. The method of claim 1, comprising:

7. The absolute value of the acceleration is the maximum value (Az 1 ) as the first time to take the fourth time (t 4 ) and The absolute value of the acceleration is the maximum value (Az 4 ) as the first time to take the sixth time (t 6 ) and 6. The method of claim 1, comprising:

8. The locus of the center of gravity of the load is the point of maximum height (x 2 ,z 2 ) as a single extremum in height, The vertical acceleration time profile (Acc z 4) from the start time to the first time (t 1 ) the first vertical acceleration phase, and the second time (t 2 ) the first vertical deceleration stage, the third time (t 3 ), and the second deceleration stage until the end time (t F ) and a second acceleration stage up to The horizontal acceleration time profile (Acc x 4) is the start time (t 0 ) or more for the fourth time (t 4 ) to the fifth time (t 5 ) horizontal acceleration stage, and a sixth time (t 6 8. The method according to claim 1, further comprising successive horizontal deceleration stages up to

9. (S61) selecting the first time, the second time, and the third time from a first predetermined interval, a second predetermined interval, and a third predetermined interval, respectively; The maximum absolute value of the acceleration (Az1) over the first vertical acceleration stage is The maximum possible acceleration value (Az_max), and One-half the product of the difference between the first time and the start time and the predetermined jerk a step (S62) of calculating the smaller of calculating (S63) the maximum absolute value of the acceleration over the first deceleration phase (Az2) based on the maximum absolute value over the first acceleration phase (Az1); the maximum absolute value of the acceleration during the second vertical deceleration phase (Az3), the maximum absolute value of the acceleration during the second vertical acceleration phase (Az4), and the end time (t f ) step (S64); The method according to claim 8 dependent on claim 3, comprising:

10. 10. The method of claim 8 or 9, comprising calculating the fifth time as the median time between the fourth time and the sixth time.

11. the locus of the center of gravity of the load is defined in a vertical plane including the starting point and the ending point; 11. The method of claim 1, wherein the horizontal acceleration profile is a one-dimensional acceleration profile.

12. the locus of the center of gravity of the load is defined in three dimensions between the start point and the end point; 11. The method of claim 1, wherein the horizontal acceleration profile is a two-dimensional acceleration profile.

13. determining (S32) a time profile for an orientation of the end section of the robot arm that enables minimizing the tangential force applied to the load based on the vertical acceleration time profile, the horizontal acceleration time profile, and the gravitational acceleration; 13. The method of claim 1, wherein the control instructions for applying the trajectory profile for the center of gravity of the load comprise the time profile for the orientation of the end section.

14. determining the time profile for the orientation of the end section that allows minimizing the tangential force applied to the load; determining a target time profile (ori_tar8) for the orientation of the end section that allows for cancelling the tangential force applied to the load; determining a time profile for the orientation of the end section according to the target time profile for the orientation of the end section; The method of claim 13, comprising:

15. 15. The method of claim 13 or 14, wherein the target time profile for the orientation of the end section that enables the tangential force applied to the load to be counteracted is determined by calculating, at every instant between the start time and the end time, an orientation value equal to the arctangent of the horizontal acceleration divided by the sum of the vertical acceleration and the acceleration of gravity.

16. determining the time profile for the orientation of the terminal section according to the target time profile for the orientation of the section, 16. A method according to claim 14 or 15, comprising determining a time profile for maximum orientation (ori_max8) and a time profile for minimum orientation (ori_min8) of the end section by adding / subtracting, respectively, an angle corresponding to the maximum tangential force (F_tan_max) to / from the target time profile for said orientation.

17. determining the time profile for the orientation of the terminal section according to the target time profile for the orientation of the section, generating a set of candidate temporal profiles (Ori_cand10.1) for the orientation of the end section; removing the set of candidate temporal profiles for the orientation of the end section that have, at least one time, an orientation less than the orientation of the minimum temporal profile for the orientation or greater than the orientation of the maximum temporal profile for the orientation; selecting a median profile candidate (ori_reel10) for said orientation from among the remaining candidates; The method of claim 16, comprising:

18. A computer program comprising instructions for performing the method of any one of claims 1 to 17 when executed by a processor.

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

20. Start point (x 1 ,z 1 ) to the end point (x 3 ,z 3 A robot system (Sys) capable of moving a load (LD) in a A plurality of sections and the plurality of sections (Seg 1 ,Seg 2 ,Seg 3 At least one robot arm (AR) having at least one end effector (Eff) at the end of the arm (AR) capable of attaching to said load; at least one calculation unit (Calc) configured to execute the method according to any one of claims 1 to 16; A robot system comprising:

Citation Information

Cited By

  • Fast settling for robotic motion control

    US20250144797A1