Optimised trajectories for robotic arms
Patent Information
- Application Number
- EP2023765285
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-09-16
- Filing Date
- 2023-09-12
- Publication Date
- 2025-07-23
AI Technical Summary
Robotic arms face limitations in moving loads quickly and efficiently due to the risk of the effector releasing the load under high accelerations and the need to manage mechanical constraints, such as maximum achievable acceleration, while also considering obstacles in the path.
A method is proposed to determine optimized trajectories for the center of mass of a load, involving a temporal profile of vertical and horizontal acceleration phases, ensuring uninterrupted succession of acceleration and deceleration phases, and sending control instructions to the effector to apply these profiles, thereby minimizing forces applied to the load and respecting mechanical constraints.
This approach allows for faster and more efficient movement of heavier loads without risking the effector releasing the load, while also avoiding obstacles and optimizing travel times.
Smart Images

Figure 1.1
Abstract
Description
Description Title: OPTIMIZED TRAJECTORIES OF ROBOTIC ARMS Technical field
[0001] The present disclosure relates to the field of robotic arms. More specifically, the present disclosure relates to the calculation of optimized trajectories of robotic arms for transporting loads. Prior art
[0002] Robotic arms, also called articulated arms, are robots that can move loads. To this end, robotic arms have several articulated segments at the end of which is an effector that can attach the load. The relative movement of the articulated arms allows the effector to move the load from one point to another. The effector is a means of gripping the robotic arm with respect to the load in question, which most often consists of a gripper or a suction cup.
[0003] Fundamentally, the goal is to operate such robotic arms at maximum speeds and accelerations in order to achieve the shortest possible cycle times. A cycle time is the time taken by the robot to move a load from its starting point to its desired final destination. For example, from a storage bin to another bin or to a packaging box. Reducing cycle times brings logistical and therefore financial gains. However, the pursuit of maximum speeds and accelerations is not without posing a number of technical challenges.
[0004] When moving the load, the acceleration applied to the load induces the application of forces to the load. These forces have a normal component collinear with the orientation of the robot's end segment, and a tangential component orthogonal to the orientation of the robot's end segment. Applying too much force to the load can cause the end-effector to release the load, if the force is greater than the maximum force that the end-effector can withstand. Tangential forces are particularly difficult to sustain for most end-effectors, especially suction-type end-effectors. Other end-effectors may have different force directions that are particularly difficult to sustain.
[0005] Generally speaking, the greater the accelerations applied to the load, and the greater the mass of the load, the greater the forces. The limits of the forces that an effector can support can therefore limit the movement that a robotic arm can apply to a load in two ways: the mass of the load to be moved can be limited; the acceleration applied to the load can be limited, which increases the travel time of the load for a given displacement.
[0006] To overcome these limitations, one solution is to use robotic arms with more powerful effectors, capable of handling greater forces. However, such robotic arms and effectors can be more expensive and bulky.
[0007] There is therefore a need to increase the load that a single robotic arm can move and / or to reduce the travel time of a load between two points by this same robotic arm. This need can also be expressed as the need to transport a load of the same mass more quickly between two points.
[0008] There is also a need to have a trajectory management profile for a robotic arm, which takes into account the mechanical constraints of said robot, such as a maximum physically achievable acceleration, an operational constraint, etc.
[0009] There is also a need for a trajectory management strategy, as well as acceleration profiles of a robotic arm, in order to optimize travel times, while avoiding load tearing at the end effector.
[0010] There is also a need for this strategy to be able to take into account the existence of obstacles on the path of the load, from its initial point to its final destination. Summary
[0011] This disclosure improves the situation.
[0012] There is provided a method for moving a load from an initial point to an end point by a robotic arm comprising a plurality of segments, and, at the terminal end of said plurality of segments, at least one end effector capable of joining the load, the method comprising: determining a trajectory of the center of mass of the load between the initial point at an initial time and zero speed and the end point at a final time and zero speed passing through at least one local altitude extremum at which the vertical speed of the center of mass of the load is zero, said determining the trajectory comprising: determining a vertical acceleration time profile comprising, in each interval between the initial point, the end point and a local altitude extremum, an uninterrupted succession of a vertical acceleration phase and a vertical deceleration phase;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 greater than or equal to the initial time and a sixth time less than or equal to the final time; sending control instructions to at least one effector of the robotic arm, to apply the trajectory profile of the center of mass of the load.;
[0013] The term "terminal end" of the robotic arm refers to a movable end of the robotic arm segments that can be freely moved. The terminal end is therefore generally the last end of the last segment from the base of the robot, which is in direct contact with the effector.
[0014] An "end effector" means an effector capable of attaching a load and located at a terminal end of the robotic arm. An end effector may, for the purposes of this disclosure, simply be referred to as an "effector".
[0015] The term "local extremum of altitude" means a local minimum or maximum altitude of the center of mass of the load on the trajectory.
[0016] An "uninterrupted succession" means a succession of phases without an intermediate phase; thus, an uninterrupted succession of a vertical acceleration phase and a vertical deceleration phase may comprise either an acceleration phase followed by a deceleration phase, or a deceleration phase followed by an acceleration phase, but will not comprise a zero acceleration phase. Similarly, an uninterrupted succession of at least one horizontal acceleration phase and at least one horizontal deceleration phase may comprise one or more horizontal acceleration and deceleration phases, but will not comprise a zero horizontal acceleration (or constant horizontal speed) phase; only zero acceleration points may exist between two successive acceleration and deceleration phases.
[0017] A "vertical acceleration phase" is a time phase during which the vertical velocity of the load's center of mass increases. This can be an uphill vertical acceleration phase, during which the load's center of mass rises increasingly faster (the vertical velocity is positive and the absolute value of the velocity increases), or a downhill vertical acceleration phase, during which the load's center of mass descends increasingly slowly (the vertical velocity is negative and the absolute value of the velocity decreases).
[0018] A "vertical deceleration phase" is a time phase during which the vertical velocity of the load's center of mass decreases. This can be a downward vertical deceleration phase, during which the load's center of mass descends increasingly faster (the vertical velocity is negative and the absolute value of the velocity increases), or an upward vertical deceleration phase, during which the load's center of mass rises increasingly slowly (the vertical velocity is positive and the absolute value of the velocity decreases).
[0019] A "horizontal acceleration phase" is a phase during which the absolute value of the horizontal velocity increases.
[0020] A "horizontal deceleration phase" is a phase during which the absolute value of the horizontal speed decreases.
[0021] "Control instruction" means any instruction or information that can be followed or executed by the robotic arm to apply the determined trajectory to the center of mass of the load.
[0022] Thus, the vertical acceleration profile of the load's center of mass does not include any zero acceleration phase, and the horizontal acceleration profile does not include any zero acceleration phase between the fourth and sixth times.
[0023] This makes it possible to obtain, for a given trajectory travel time, lower accelerations over longer durations, and therefore to apply lower forces to the load for the same travel time. This therefore makes it possible, with the same robotic arm, to carry heavier loads and / or to benefit from faster trajectories, without risking the end effector releasing the load.
[0024] The trajectories determined by a method according to the invention, and applied to the loads, are characterized by pairs of vertical acceleration and deceleration phases between two points of zero vertical speed and acceleration, without having a phase of constant vertical speed (and therefore zero acceleration).
[0025] According to another aspect, there is provided a computer program comprising instructions for implementing the method according to one of the embodiments of the present disclosure when this program is executed by a processor.
[0026] According to another aspect, there is provided a non-transitory recording medium readable by a computer on which is recorded a program for implementing the method of one of the embodiments of the present disclosure when this program is executed by a processor.
[0027] According to another aspect, there is provided a robotic system capable of moving a load from an initial point to an end point comprising: at least one robotic arm comprising a plurality of segments, and, at the terminal end of said plurality of segments, at least one end effector capable of joining the load; at least one computing unit configured to execute the method according to one of the embodiments of the present disclosure.
[0028] The term "computing unit" means an electronic component capable of performing electronic or computer calculations to perform a specific function. A computing unit may designate any type of processor or electronic component capable of performing digital calculations. For example, a computing unit may be an integrated circuit, an ASIC (from the English acronym "Application-Specific Integrated Circuit", literally in French "integrated circuit specific to an application", a microcontroller, a microprocessor, a DSP (from the English acronym "Digital Signal Processor", literally in French "digital signal processor"), a processor, a GPU (from the English acronym "Graphics Processing Unit", literally in French "graphics computing unit"). A computing unit according to the 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 set out 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 the acceleration according to a predefined jerk up to an acceleration of maximum absolute value over the phase, and ends with a decrease in absolute value of the acceleration according to the predefined jerk.
[0031] "Jerk" (or "jolt") is the derivative of acceleration, expressed for example in ms -3 , and can be represented by the symbol J.
[0032] The predefined jerk can, for example, be predefined for a given robotic arm, depending on its mechanical constraints. The jerk can be the same for all phases or different depending on the acceleration phases. For example, the predefined jerk can be different for horizontal or vertical accelerations, for accelerations or decelerations, etc.
[0033] This allows for a trajectory that is physically achievable by the robot, which is generally not capable of abruptly 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 the acceleration over the phase as the minimum between: a maximum possible value of acceleration; and half the duration of the phase multiplied by said predefined jerk.
[0035] The term "maximum possible acceleration value" means an absolute maximum possible acceleration value, which can be defined according to different constraints: robot mechanical constraints with a physically achievable maximum acceleration, operational constraint, etc.
[0036] This therefore makes it possible to obtain an acceleration profile achievable by the robot, and respecting the maximum possible accelerations.
[0037] In one set of embodiments of the invention, two successive phases of acceleration and deceleration are such that the speed at the end of the deceleration phase is equal to the speed at the start of the acceleration phase.
[0038] In a set of embodiments of the invention, two successive phases of acceleration and deceleration are such that: the acceleration of maximum absolute value over the successive phase of acceleration (|Az11, |Az4|, |Ax11), multiplied by the time of the successive phase of acceleration minus said acceleration of maximum absolute value over the successive phase of acceleration divided by said predefined jerk (ti - to - tf — t3 - y- 2 , ts — t4 - y- 2 ) is equal to the acceleration of maximum absolute value over the successive deceleration phase (|Az2|, |Az3|, |Ax2|), multiplied by the time of the successive deceleration phase minus said acceleration of maximum absolute value over the successive deceleration phase divided by said predefined jerk
[0039] This makes it possible to obtain a total acceleration equal in absolute value to the total deceleration over the two phases, and therefore an identical speed between the initial time and the final time of the acceleration and deceleration phases, for example a zero speed.
[0040] In one set of embodiments of the invention, the method comprises: calculating the fourth time as the time of the start of the horizontal movement such that the center of mass of the load has moved horizontally at most a first horizontal distance at the time when its altitude is greater than or equal to the altitude of the initial point plus a first vertical margin; calculating the sixth time as the time of the end of the horizontal movement such that the center of mass of the load is at most a second horizontal distance from the end point at the time when its altitude is greater than or equal to the altitude of the end point plus a second vertical margin.
[0041] The term "start of horizontal movement" means the time when the center of mass of the load begins to move away from the initial point.
[0042] The term "end of horizontal motion" means the time when the center of mass of the load arrives horizontally above the end point.
[0043] This allows horizontal movements to be made from a given vertical distance above the initial and final points of the trajectory, which helps avoid obstacles at the start and end of the trajectory.
[0044] In this case, we can observe that the horizontal movement starts after / ends before the vertical movement, and that the associated delays correspond to a difference in altitude on the vertical trajectory.
[0045] In one set of embodiments of the invention, the method comprises: calculating the fourth time as a first time at which the absolute value of the acceleration loses a maximum value over the first phase of vertical acceleration or deceleration; calculating the sixth time as a first time at which the absolute value of the acceleration takes a maximum value over the first phase of vertical acceleration or deceleration.
[0046] This makes it possible not to add horizontal acceleration when the vertical acceleration is high (Az1 or Az4), at the start of the ascent or at the end of the descent, and therefore to limit the forces applied to the load.
[0047] In a set of embodiments of the invention, the trajectory of the center of mass of the load comprises as a single local altitude extremum a point of maximum altitude; the vertical acceleration time profile successively comprising a first vertical acceleration phase from the initial time to a first time, a first vertical deceleration phase up to a second time of passage to the point of maximum altitude, a second deceleration phase up to a third time and a second acceleration phase up to the final time; and the horizontal acceleration time profile successively comprises a horizontal acceleration phase from a fourth time greater than or equal to the initial time to a fifth time, then a horizontal deceleration phase from the fifth time to a sixth time less than or equal to the final time.
[0048] This allows for as simple a trajectory as possible, and therefore as fast as possible, between an initial point and an end point.
[0049] The trajectory is characterized by an ascent phase followed by a descent phase, with during each phase an increase then a decrease in speed, without it being constant. In the same way, the vertical trajectory is characterized by an acceleration then a deceleration.
[0050] In a set of embodiments of the invention, the method comprises a selection of the first time, second time and third time, respectively from a first predefined interval, a second predefined interval and a third predefined interval; a calculation of the maximum absolute value acceleration on the first vertical acceleration phase as the minimum between: a maximum possible acceleration value; and half the difference between the first time and the initial time multiplied by said predefined jerk; a calculation of the maximum absolute value acceleration on the first deceleration phase, from said maximum absolute value on the first acceleration phase; a calculation of the maximum absolute value acceleration on the second vertical deceleration phase, of the maximum absolute value acceleration on the second vertical acceleration phase, and of the final time to arrive at the end point.
[0051] This makes it possible to obtain all the horizontal and vertical acceleration profiles for a given trajectory, while respecting the mechanical constraints of the robotic arm.
[0052] In one set of embodiments of the invention, the method includes calculating the fifth beat as a median beat between the fourth beat and the sixth beat.
[0053] This allows for longer horizontal acceleration and deceleration phases, and thus limits the amplitude of the horizontal acceleration, and therefore the angle of the effector.
[0054] In one set of embodiments of the invention, the trajectory of the center of mass of the load is defined in a vertical plane including the initial point and the end point; and the horizontal acceleration profile is a one-dimensional acceleration profile.
[0055] This allows for a shorter, and therefore faster, trajectory between the starting point and the end point.
[0056] In one set of embodiments of the invention, the trajectory of the center of mass of the load is defined in 3 dimensions between the initial point and the end point; and the horizontal acceleration profile is a two-dimensional acceleration profile.
[0057] This allows for complex 3D trajectories, for example to avoid obstacles.
[0058] In one set of embodiments of the invention, the method comprises determining a temporal orientation profile of a terminal segment of the robotic arm allowing to minimize the tangential forces applied to the load, from said vertical acceleration time profile, said horizontal acceleration time profile, and the gravity acceleration; and said control instructions for applying the trajectory profile of the center of mass of the load comprise the terminal segment orientation time profile.
[0059] Minimizing tangential forces means making tangential forces as low as possible. This may mean, for example, making tangential forces tend towards zero within the limits of the mechanical capabilities of the robotic arm and / or limiting tangential forces below maximum absolute values.
[0060] The orientation of the terminal segment thus makes it possible to largely compensate for the tangential forces induced by gravity and the acceleration of the center of mass of the load. This makes it possible to move heavier loads (and therefore generating higher tangential forces) with the same end effector and / or to increase the speed of movement of the center of mass of the load, with the same end effector, without risk of the load falling.
[0061] In this case, we see that the robotic arm applies a movement in order to move the initial end of the segment and orient the terminal segment. There are therefore actuators that can orient the terminal segment. We also see that the terminal segment will tend to orient itself in the direction of the forces applied to the load, so that the forces are overwhelmingly normal forces. We can therefore see a correlation between the direction of the forces applied to the load and the orientation of the terminal segment.
[0062] In a set of embodiments of the invention, determining the terminal segment orientation time profile for minimizing the tangential forces applied to the load comprises: determining a target terminal segment orientation time profile for canceling the tangential forces applied to the load; determining a terminal segment orientation time profile based on the target terminal segment orientation time profile.
[0063] This makes it possible to obtain a time profile of the orientation of the terminal segment as close as possible to the target profile, allowing the tangential forces to be completely cancelled.
[0064] In a set of embodiments of the invention, the target time profile of orientation of the terminal segment making it possible to cancel the tangential forces applied to the load is determined, by calculating at any instant between the initial time and the final 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.
[0065] This allows to obtain at any time an orientation angle of the global acceleration applied to the load. If this target orientation angle is applied to the load, there will therefore only be normal forces, and no tangential forces.
[0066] In one set of embodiments of the invention, determining the terminal segment orientation time profile based on the target segment orientation time profile comprises: determining a maximum orientation time profile, and a time profile minimum orientation of the terminal segment, by adding and respectively subtracting an angle corresponding to a maximum tangential force to the target orientation time profile.
[0067] This makes it possible to obtain at any time a minimum and maximum angle according to which the tangential force applied to the load respects the capacities of the end effector. And thus to be able to apply orientation profiles respecting the mechanical constraints of the effector.
[0068] In a set of embodiments of the invention, determining the terminal segment orientation time profile based on the target segment orientation time profile comprises: generating a set of candidate terminal segment orientation time profiles; removing said set of candidate terminal segment orientation time profiles having, at least at one time, an orientation lower than that of the minimum orientation time profile, or higher than that of the maximum orientation time profile; selecting the median orientation candidate orientation profile from among the remaining candidates.
[0069] This allows for an orientation profile to be obtained as close as possible to an optimal profile, while ensuring that it respects safety margins with respect to the orientation of the load. Brief description of the drawings
[0070] Other features, details and advantages will become apparent upon reading the detailed description below, and upon analyzing the attached drawings, in which: Fig. 1
[0071] [Fig. 1] shows an example of a robotic arm according to a set of embodiments of the invention. Fig. 2
[0072] [Fig. 2] shows an exemplary robotic system according to a set of embodiments of the invention. Fig. 3
[0073] [Fig. 3] shows a first example of a method of moving a load according to a set of embodiments of the invention. Fig. 4a
[0074] [Fig. 4a] shows a first example of a trajectory of a center of mass of a load according to a set of embodiments of the invention. Fig. 4b
[0075] [Fig. 4b] shows a first example of a time profile of position, velocity and acceleration of the center of mass of a load according to a set of embodiments of the invention. Fig. 5
[0076] [Fig. 5] shows a second example of a trajectory of a center of mass of a load according to a set of embodiments of the invention. Fig. 6
[0077] [Fig. 6] shows a second example of a method of moving a load according to a set of embodiments of the invention. Fig. 7
[0078] [Fig. 7] shows an example of a 3-dimensional trajectory according to a set of embodiments of the invention; Fig. 8
[0079] [Fig. 8] shows an example of determining a target temporal profile of orientation of a terminal segment of a robotic arm in a set of embodiments of the invention. Fig. 9
[0080] [Fig. 9] shows an example of determining a target angle, a maximum angle and a minimum angle of orientation of an end segment of a robotic arm in a set of embodiments of the invention. Fig. 10
[0081] [Fig. 10] shows an example of defining orientation profiles of a terminal segment of a robotic arm according to a set of embodiments of the invention; Fig. 11
[0082] [Fig. 11] shows a third example of a method of moving a load according to a set of embodiments of the invention; Fig. 12a
[0083] [Fig. 12a] shows a first example of a trajectory of a load and position of a terminal segment of a robotic arm obtained by a method according to a set of embodiments of the invention; Fig. 12b
[0084] [Fig. 12b] shows a first example of a time profile of vertical acceleration of a center of mass of a load, a time profile of horizontal acceleration of a center of mass of a load, and a time profile of orientation of a terminal segment of a robotic arm according to a set of embodiments of the invention. Fig. 13a
[0085] [Fig. 13a] shows a second example of a trajectory of a load and position of an end segment of a robotic arm obtained by a method according to a set of embodiments of the invention; Fig. 13b
[0086] [Fig. 13b] shows a second example of a time profile of vertical acceleration of a center of mass of a load, a time profile of horizontal acceleration of a center of mass of a load, and a time profile of orientation of an end segment of a robotic arm according to a set of embodiments of the invention. Fig. 14a
[0087] [Fig. 14a] shows a third example of a trajectory of a load and position of an end segment of a robotic arm obtained by a method according to a set of embodiments of the invention; Fig. 14b
[0088] [Fig. 14b] shows a second example of a time profile of vertical acceleration of a center of mass of a load, a time profile of horizontal acceleration of a center of mass of a load, and a time profile of orientation of an end segment of a robotic arm according to a set of embodiments of the invention. Fig. 15a
[0089] [Fig. 15a] shows a fourth example of a trajectory of a load and position of an end segment of a robotic arm obtained by a method according to a set of embodiments of the invention. Fig. 15b
[0090] [Fig. 15b] shows a second example of a time profile of vertical acceleration of a center of mass of a load, a time profile of horizontal acceleration of a center of mass of a load, and a time profile of orientation of an end segment of a robotic arm according to a set of embodiments of the invention.
[0091] Description of the embodiments
[0092] Reference is now made to Figure 1.
[0093] Figure 1 represents an example of a robotic arm BR according to a set of embodiments of the invention.
[0094] In the example of Figure 1, the robotic arm BR is used to transport a load Cha from a first bin Bci to a second bin Bc2. For example, the robotic arm BR can be used to move objects from the first to the second bin one by one, or to sort objects from the first bin.
[0095] The BR robotic arm is fixed to the ground by a fixed base BasRob, and comprises three successive mobile segments Segi, Seg2 and Segs. The mobile segments Segi, Seg2 and Segs have a fixed length, but are linked together by actuators at their respective ends allowing rotations around the BasRob base, and rotations of the segments relative to each other.
[0096] The relative movement of the segments allows a terminal end Extt of the robotic arm to be moved. The terminal end Extt is in this example a movable end of the arm located at the end of the last segment Segs from the base, also called the terminal segment.
[0097] The robotic arm BR comprises, at the terminal end Extt, at least one terminal effector Eff capable of joining the load Cha. In the example of figure 1, the robotic arm comprises a single terminal effector, which is a suction cup. In this example, the suction cup can join, or on the contrary release the load Cha.
[0098] Thus, the joining of the load by the end effector Eff, the relative movement of the mobile segments, and the release of the load by the end effector Eff make it possible to move the load Cha from the first bin Bci to the second bin Bc2, and more generally from an initial point to an end point near the robotic arm.
[0099] The robotic arm shown in Figure 1 is provided as a non-limiting example only of a robotic arm according to a set of embodiments of the invention. Other robotic arms may be used according to the invention. For example: the robotic arm may be linked to the ground by a fixed base like the robot shown in Figure 1. It may also be mobile, for example on a mobile platform on wheels or on a rail; the robotic arm may be made up of different numbers of mobile segments. For example, the robotic arm may comprise 3 segments like the arm shown in Figure 1, but also 2, 4, 5 segments, etc. the mobile segments may have a fixed length as shown in Figure 1, or at least some of them may have variable lengths; the robotic arm may comprise one or more end effectors.For example, it may include one or more suction cups collocated at the end of the segments; the effector may be a suction cup as shown in the example of Figure 1, or another type of effector such as, for example, a robotic hand, a magnet, or a set of suction cups. If the robotic arm includes multiple end effectors, these may be of the same type (e.g., multiple suction cups), or of different types (e.g., a suction cup and a robotic hand).
[0100] Reference is now made to Figure 2.
[0101] Figure 2 represents a robotic system Sys.
[0102] The Sys robotic system includes a robotic arm such as the BR robotic arm.
[0103] The robotic system also comprises at least one computing unit Cale configured to calculate a trajectory of the center of mass of the load Cha, and send control instructions to the robotic arm BR. For this purpose, the at least one computing unit Cale may be located to execute a method according to one of the embodiments of the present disclosure.
[0104] In the example of Figure 2, the at least one computing unit Cale is located in a computing device Disp external to the robotic arm BR, for example a workstation. The trajectory calculation is therefore carried out remotely and sent to the robotic arm.
[0105] The robotic system of Figure 2 is provided as a non-limiting example only of a robotic system according to a set of embodiments of the invention. Other robotic systems may be used according to the invention. For example: the robotic arm may be the BR arm shown in Figure 2, or any other robotic arm conceivable according to an embodiment of the invention; the at least one computing unit may be located in an external device as shown in Figure 2, or in the robotic arm itself; if several computing units are used, they may be located in different devices, whether it is the robotic arm itself, or several external computing devices. If several computing units are used, they may implement different steps of the method.For example, part of the process steps can be performed within the robotic arm itself, and another part in an external computing device.
[0106] Reference is now made to Figure 3.
[0107] Figure 3 represents an example of a method P3 for moving a load from an initial point to an end point by a robotic arm which may be, for example, the BR arm.
[0108] The method P3 comprises a first step S31 of determining a trajectory of the center of mass of the load between the initial point at an initial time to and the final point at a final time tF. The trajectory of the center of mass of the load has the following characteristics: the speed of the center of mass of the load is zero at time to and at the final time tF. This means that the load is moved from an initial static state to a final static state, which is for example the case in the example of figure 1, where objects are moved from a first bin to a second bin; the trajectory passes through at least one local altitude extremum, the vertical speed of the center of mass of the load being zero at each local altitude extremum. A local altitude extremum may be a local minimum or a local maximum. According to the embodiments, the trajectory may comprise a single local altitude extremum, or several successive extrema.
[0109] Thus, the vertical trajectory of the center of mass of the load includes several points of zero vertical velocity: the initial point, the final point and each of the extrema.
[0110] Step S31 comprises a first sub-step S311 of determining a vertical acceleration time profile.
[0111] The time profile includes, in each interval between the initial point and the final point (this interval including at least one local altitude extremum) an uninterrupted succession of a vertical acceleration phase and a vertical deceleration phase.
[0112] Thus, for each of these intervals between a first point and a second point of zero vertical speed, the vertical acceleration profile comprises a vertical acceleration phase followed by a vertical deceleration phase. Over a given interval between a first point and a second point, the vertical acceleration profile may in particular comprise: an uphill acceleration phase, followed by an uphill deceleration phase, if the altitude of the second point is higher than the altitude of the first point; a downhill deceleration phase, followed by a downhill acceleration phase, if the altitude of the second point is lower than the altitude of the first point.
[0113] Step S31 comprises a second sub-step S312 of determining a horizontal acceleration time profile.
[0114] 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 initial time to and a sixth time te less than or equal to the final time
[0115] The horizontal acceleration time profile can thus comprise one or more successive series of acceleration-deceleration between the fourth time and the sixth time. Since the speed is zero at the initial point and at the final point, the horizontal acceleration time profile can also comprise: a phase of zero acceleration and zero speed between the initial time to and the fourth time t4; a phase of zero acceleration and zero speed between the sixth time te and the final time t f .
[0116] Once the acceleration profiles are obtained, the accelerations can be integrated to obtain the velocities and positions of the center of mass of the load. According to different embodiments of the invention, the accelerations can be calculated first, then integrated to obtain the velocities and positions, or conversely the accelerations, velocities and positions of the center of mass of the load can be calculated jointly.
[0117] The method P3 then comprises a final step S33 of sending control instructions to at least one effector of the robotic arm, to apply the trajectory profile to the center of mass of the load.
[0118] Control instructions can be of different types, depending on the possible inputs of the robotic arm. For example, control instructions can be: the trajectory itself; positions, length and / or angles of the robotic arm segments; low-level instructions sent to the robot's actuators; etc.
[0119] According to different embodiments of the invention, the trajectory can therefore be converted into instructions for actuators of the robotic arm, either by the robotic arm itself or by an external computing device.
[0120] The method P3 shown in Figure 3 is provided as a non-limiting example only of a method for moving a load according to a set of embodiments of the invention. Other methods are conceivable according to other embodiments of the invention. For example, the order of sub-steps S311 and S312 can be modified: step S311 can be performed before step S312 as shown in Figure 3, or on the contrary after. The two sub-steps can also be performed in parallel. If one of the two sub-steps is performed before the other, the output of the sub-step performed first can be used as input for the sub-step performed second.
[0121] The method P3 may also comprise, between steps S31 and S33, an intermediate step S32 of determining a time profile of orientation of a terminal segment of the robotic arm making it possible to minimize the tangential forces applied to the load, from said vertical acceleration time profile, said horizontal acceleration time profile, and the gravitational acceleration g. In this case, the control instructions for applying the trajectory profile of the center of mass of the load comprise the time profile of orientation of the terminal segment.
[0122] Determining an orientation profile of the end segment of the robotic arm according to intermediate step S32 allows the orientation of the end segment to largely compensate for the tangential forces induced by gravity and the acceleration of the center of mass of the load, which allows heavier loads and / or faster trajectories to be carried without the effector releasing the load.
[0123] Step S32 is however not necessarily present in a method according to the invention. Indeed, other ways of applying an orientation to the end effector can be used. For example: the robotic arm does not necessarily control the orientation of the end effector, which can be left free, in which case the orientation of the end effector is freely oriented according to the movement; in cases where the robotic arm controls the orientation of the end effector, this can be calculated and applied in real time by the robot during the movement; finally, in the case where the method comprises a step of determining a temporal profile of orientation of the end segment, this can be determined in different ways.
[0124] The center of mass of the load can be determined in several ways. For example, the load can be studied by cameras, in order to model the load and determine its geometric center, which can be assimilated to the center of mass.
[0125] Reference is now made to Figures 4a and 4b.
[0126] The trajectory of the center of mass of the load starts from an initial point with coordinates xo, zo to arrive at an end point with coordinates xt, zt.
[0127] In the example shown in Figures 4a and 4b, the trajectory is a two-dimensional trajectory, and is defined in a vertical plane. The trajectory is therefore defined along a horizontal axis x, and a vertical axis z.
[0128] In the example of Figures 4a and 4b, the trajectory starts from an initial bin BacO and ends in a final bin Bacf. This is therefore an example of transporting a load from a first bin to a second bin, as in the example of Figure 1.
[0129] A 2-dimensional trajectory is presented here because it allows for a shorter and more direct trajectory between two points, and will be simpler to represent for the sake of readability of the present disclosure. However, the invention is of course also applicable to 3D trajectories, which allow for more complex movements, for example to avoid obstacles.
[0130] It should be noted that, in general, the trajectories will be described in this disclosure with respect to orthogonal reference frames. The letters x and z therefore refer respectively to a horizontal axis and a vertical axis orthogonal to the horizontal axis x. In the case of a 3D trajectory, a letter y will refer to a second horizontal axis, orthogonal to both the x and z axes.
[0131] The trajectory Traj4 represents the spatial trajectory, along the x and z axes.
[0132] The trajectory can be defined by one or more of the following: An altitude profile Trajzx4 shown in Figure 4a, representing the altitude as a function of the horizontal position This profile shows: o on the vertical axis, the vertical position along the z axis, in m; o on the horizontal axis, the horizontal position along the x axis, in m; a vertical acceleration time profile Acc z4 shown in Figure 4b, i.e. a vertical acceleration profile as a function of time. This profile shows: o on the vertical axis, the vertical acceleration along the z axis, in ms -2 ; o on the horizontal axis, time, in s; a horizontal acceleration time profile Acc x 4 shown in Figure 4b, i.e. a horizontal acceleration profile as a function of time. This profile shows: o on the vertical axis, the horizontal acceleration along the x axis, in ms -2 ; o on the horizontal axis, time, in s; a time profile of vertical velocity Vit z 4 shown in Figure 4b, i.e. a vertical velocity profile as a function of time. This profile shows: o on the vertical axis, the vertical velocity along the z axis, in ms -1 ; o on the horizontal axis, time, in s; a time profile of horizontal velocity Vit x4 shown in Figure 4b, i.e. a horizontal velocity profile as a function of time. This profile shows: o on the vertical axis, the horizontal velocity along the x axis, in ms -1 ; o on the horizontal axis, time, in s; a time profile of vertical position (altitude) Pos z 4 shown in Figure 4b, that is, a profile of vertical position as a function of time. This profile shows: o on the vertical axis, the vertical position, or altitude, along the z axis, in m; o on the horizontal axis, the time, in s; a time profile of horizontal position Pos x 4 shown in Figure 4b, i.e. a horizontal position profile as a function of time. This profile shows; o on the vertical axis, the horizontal position along the x axis, in m; o on the horizontal axis, the time, in s.
[0133] Trajectory 4 has the following characteristics: the trajectory of the center of mass of the load includes as its only local altitude extremum a point with coordinates X2, Z2. Z2 therefore represents the maximum altitude of the trajectory.
[0134] The trajectory Traj4 therefore includes a phase of ascent from the initial point with coordinates xo, zo to the maximum trajectory with coordinates X2, Z2. This ascent phase is subdivided into: a phase of vertical acceleration in ascent PhAccZmont to initial time to at a time ti, during which the altitude increases according to an increasing vertical speed, until reaching a maximum speed Vit z (ti); followed by a vertical deceleration phase in ascent PhDecZmont from time ti to time t2, during which the altitude increases according to a decreasing vertical speed, until reaching zero vertical speed at the altitude point Z2.
[0135] The trajectory Traj4 then includes a descent phase from the maximum trajectory of coordinates X2, Z2 to the end point of coordinates xt, zt. This descent phase is subdivided into: a vertical deceleration phase in descent PhDecZdec from time t2 to a time ta, during which the altitude decreases according to a decreasing negative vertical speed (i.e. an increasing negative vertical speed in absolute value), until reaching a negative speed of maximum absolute value Vitz(ts); followed by a vertical acceleration phase in descent PhAccZdec from time ta to the final time tf, during which the altitude decreases according to an increasing negative vertical speed (i.e. a decreasing negative vertical speed in absolute value), until reaching a zero vertical speed at the final point.
[0136] The trajectory Traj4 also includes: a horizontal acceleration phase PhAccX from time t4 to time ts, during which the load advances in x with an increasing positive horizontal vertical speed, until reaching a maximum speed of maximum absolute value Vitx(t5); followed by a horizontal deceleration phase PhDecX from time ts to time te, during which the load advances in x with an increasing positive horizontal vertical speed, until reaching zero horizontal speed.
[0137] Between times to and t4 on the one hand, and te and tf on the other hand, the horizontal speed is zero but not the vertical speed: these two intervals therefore correspond to phases of ascent and descent only, close to the initial and final points.
[0138] In the example of Figures 4a and 4b, each horizontal or vertical acceleration or deceleration phase begins with an increase in the absolute value of the acceleration according to a predefined jerk J up to an acceleration of maximum absolute value, and ends with a decrease in the absolute value of the acceleration according to the predefined jerk. The predefined jerk corresponds to the “slopes” of variation of the acceleration on the profiles Acc x 4 and Acc z 4. The absolute values of the maximum accelerations on the different phases are respectively: |Az11 for the vertical acceleration phase in ascent PhAccZmont; |Az2| for the vertical deceleration phase in ascent PhDecZmont; |Az31 for the vertical deceleration phase in descent PhDecZdec; |Az4| for the vertical acceleration phase in descent PhAccZdec; |Ax11 for the horizontal acceleration phase PhAccX; |Ax2| for the horizontal deceleration phase PhDecX.
[0139] This allows for progressive variations in acceleration that can be physically achieved by the robot. The predefined jerk can, for example, be defined based on the characteristics or mechanical constraints of the robotic arm.
[0140] For at least one of the phases, the maximum absolute value (|Az11, |Az2|, |Az3|, |Az4|, |Ax11, |Ax2| of the acceleration on the phase can be calculated as the minimum between: a maximum possible acceleration value Az_max; and half the duration of the phase multiplied by said predefined jerk.
[0141] The maximum possible acceleration value Az_max is here an input constraint, which could correspond for example to mechanical constraints of the robot, or operational constraints.
[0142] In the first case, if the minimum is the maximum possible acceleration value Az_max, then the acceleration and deceleration phase will be characterized by an increase in the absolute value of the acceleration according to the predefined jerk J, a constant acceleration, then a decrease in the absolute value of the acceleration. This is for example the case, in the example of figure 4a, of the phase PhAccZmont.
[0143] The Az_max value can be defined according to different mechanical or operational constraints, and can be the same for all phases, or on the contrary different according to the different phases (horizontal / vertical, acceleration / deceleration, etc.).
[0144] In the second case, if the minimum is half the duration of the phase multiplied by the said predefined jerk, this means in practice that the duration of the phase is too short to reach Az_max. The acceleration will then have a "triangle" shape on the phase, as for example in the case of the PhDecZdec phase.
[0145] One of the characteristics of the Traj4 trajectory is to have zero speeds at the end of pairs of acceleration and deceleration phases. For example: the vertical speed Vit z 4(to) at the start, and the vertical speed Vit z 4(t2) at the end of the phase pair PhAccZmont and PhDecZmont are both zero; the vertical speed Vit z 4(t2) at the start, and the vertical speed Vit z 4(tf) at the end of the phase pair PhAccZmont and PhDecZmont are both zero; the horizontal velocity Vit x4(t4) at the beginning, and the horizontal velocity Vitx4(te) at the end of the phase pair PhAccZmont and PhDecZmont are both zero.
[0146] This implies that the integral of the acceleration is zero on each of these phase pairs, that is to say that the integral of the acceleration is the opposite of the integral of the deceleration. For example, we can have, between time to and time t2 for the phases PhAccZmont and PhDecZmont:
[0147] [Math 1]
[0148] Which implies:
[0149] [Math 2] |Azl| |Az2| |j4zl 1 1 t1— t0= |J4Z21 1 t2— ti
[0150] Similarly, for the phase pairs PhAccZdec and PhDecZdec on the one hand, and PhAccX and PhDecX on the other hand, we have:
[0151] [Math 3]
[0152] [Math 4]
[0153] The times t4 and te can be defined in different ways.
[0154] For example, in an example not shown in Figures 4a and 4b: the fourth time t4 can be calculated as a first time at which the absolute value of the acceleration loses a maximum value on the first phase of vertical acceleration or deceleration. In the example of Figures 4a and 4b, this would therefore be the last instant at which the vertical acceleration is equal to Azi before decreasing; the sixth time te can be calculated as a first time at which the absolute value of the acceleration takes a maximum value on the first phase of vertical acceleration or deceleration. In the example of Figures 4a and 4b, this would therefore be the last time at which the vertical acceleration is equal to Az before decreasing in absolute value.
[0155] Thus, in this case, in the example of figures 4a and 4b, we would have:
[0156] [Math 5] |Azl| t4— ti j
[0157] [Math 6]
[0158] This avoids adding horizontal acceleration when the vertical acceleration is high (Az1 or Az4), at the start of the ascent or at the end of the descent, and therefore limits the forces applied to the load.
[0159] Once the times t4 and te are obtained, the time te can be obtained in different ways. For example, it can be defined as the median time of t4 and te: te = (t + te) / 2.
[0160] The trajectory shown in Figures 4a and 4b is however provided by way of example only, and other trajectories are conceivable according to different embodiments of the invention. For example: the starting and arrival points may be different, and are not necessarily located in bins. For example, they may be located on a table, on the ground, etc. the trajectory may be a 3D trajectory, in which case the horizontal acceleration profile is a 2D profile including a y-component; the trajectory may include several local altitude extrema, for example with successive phases of ascent and descent, in which case it will include more vertical acceleration and deceleration phases (one acceleration phase and one vertical deceleration phase per ascent or descent phase); the trajectory may include several horizontal acceleration and deceleration phases; the horizontal acceleration may start from the beginning of the trajectory (in which case t4 = to) and / or the horizontal deceleration may end at the end point (in which case te = tf); the values of t4 and te may more generally take different values depending on operational needs.t4 and te can in particular take times related to the vertical acceleration levels; the predefined jerk J can be the same for all acceleration or deceleration phases, as shown in Figure 4b, or different depending on the phases (e.g. different for horizontal or vertical phases, for ascent or descent phases, etc.); the acceleration and deceleration phases can have different time profiles than those shown in Figure 4b, for example with variable jerks over the phase; the time ts can be defined as the median time of t4 and te, or in another way.
[0161] Reference is now made to Figure 5.
[0162] Figure 5 shows a second example trajectory in a set of embodiments of the invention.
[0163] The trajectory shown in Figure 5 is similar to the trajectory Traj4 shown in Figures 4a and 4b, and differs from Traj4 only in the calculation of times t4 and te.
[0164] For readability, Figure 5 represents the following elements of the trajectory: an altitude profile Trajzx5, representing the altitude as a function of the horizontal position; a horizontal acceleration time profile Acc x 5; a temporal profile of vertical position (altitude) Pos z 5; a horizontal position time profile Pos x 5.
[0165] The conventions adopted are the same as in Figures 4a and 4b.
[0166] As in the example of Figures 4a and 4b, the load is here moved from a first low Baco to a second bin Bact. The first bin Baco and the second bin Bact both have a height h_bin.
[0167] In the example of Figure 5, the times t4 and te are then calculated as: t4, the time from which the horizontal acceleration phase must start, so that the center of mass of the load has moved at most a first horizontal distance margin_bin from the initial point at the moment when its altitude is greater than or equal to the altitude of the initial point plus the bin height h_bin (at time t4' in this example),; te, as the time until which the horizontal deceleration phase must last, so that the center of mass of the load is at most a second horizontal distance margin_pc at the moment when its altitude is equal to the altitude of the end point plus the bin height h_pc (at time t6' in this example),.
[0168] Thus, horizontal movement only occurs when the load is outside the bins, or close to the vertical exit of the bins, as shown on the Trajzx5 elevation profile. Thus, the load can move without risk of collision with the bins or other loads in the bins. In other words, the margins margin_pc and margin_bin allow for limited movement within the bins, to allow for a small movement while avoiding collision with another load in a bin.
[0169] This example is provided as an illustrative and non-limiting example only, and other ways of calculating the h_bin, margin_bin and margin_pc values may be used according to different embodiments of the invention. In particular, the margins margin_bin and margin_pc, and therefore the times t4 and te can be calculated in any way that allows avoiding obstacles at the beginning and end of the trajectory. For example, it is quite possible to have zero values for margin_pc and margin_bin, in which case the horizontal movement only takes place when the load is outside the bins. The values of h_bin may also be different for the initial bin and the final bin, if they have different heights for example.
[0170] Reference is now made to Figure 6.
[0171] Method P6 is an example of a method according to a set of embodiments of the invention. Method P6 comprises all the steps of method P3, and is characterized in that step S311 comprises the following sub-steps. Method P6 makes it possible to obtain different parameters of a trajectory as represented in Figures 4 and 5.
[0172] In the example of Figure 6, the acceleration phases include an increase in absolute value of the acceleration according to a predefined jerk, up to an acceleration of maximum absolute value on the first phase, and a decrease in absolute value of the acceleration according to the predefined jerk J.
[0173] A first sub-step S61 consists of selecting the first time ti, second time t2 and third time ts, respectively from a first predefined interval [ti_min; ti_max], a second predefined interval [t2_min; t2_max] and a third predefined interval [t3_min; t3_max],
[0174] The predefined intervals [ti_min ; ti_max], [t2_min ; t2_max] and [t3_min ; t3_max] can be obtained in several ways. For example, they may have been obtained experimentally for a given trajectory, or have been obtained via a simplified calculation of travel time to which a margin has been added.
[0175] The selection of the first time ti , second time t2 and third time ta can be done in different ways. For example, it can be a random selection, or several successive values can be selected within the intervals, in order to find the best solution among the possible parameter values.
[0176] Step S311 then comprises a second sub-step S62 consisting of determining the acceleration of maximum absolute value over the first vertical acceleration phase Az1 as the minimum between a maximum possible acceleration value Az_max, and half the difference between the first time and the initial time multiplied by said predefined jerk J. In a set of embodiments of the invention, Az1 can be defined as the minimum between the two previously cited values, and a maximum acceleration value Az_max_speed1 making it possible to satisfy a speed limit at the end of the first vertical acceleration phase.
[0177] The Az_max_speed1 value is a maximum value allowing to limit the speed at the first time ti, that is to say at the end of the PhAccZmont phase, to a speed satisfying the physical limits of the robotic arm, for example 2000mm. s -1. Az_max_speed1 thus depends on the duration of the first vertical acceleration phase PhAccZmont.
[0178] The maximum possible acceleration value Az_max can for example be defined as the maximum vertical acceleration defined by the physical limits of the robot. For example, we can have Az_max = 10 ms -2 .
[0179] Step S311 then comprises a third sub-step S63 consisting of determining Az2 as a function of Az1 according to the following equation:
[0180] [Math 7]
[0181] As explained above, this ensures that the vertical speed at the end of the deceleration phase when climbing PhDecZmont is zero.
[0182] Step S311 then comprises a fourth sub-step S64 consisting of determining the acceleration of maximum absolute value Az3 on the second vertical deceleration phase PhDecZdec, the acceleration of maximum absolute value Az4 on the second vertical acceleration phase PhDecZacc, and the final time tf allowing arrival at the end point.
[0183] In other words, at this stage the altitude at t2, the time ta and the altitude zt at the final point are known. It is therefore a question of determining Az3, Az4 and tf to obtain at time tf the altitude Zf, as well as a zero speed and acceleration.
[0184] This can be done in several ways.
[0185] For example a maximum value Az3_max of the acceleration of maximum absolute value Az3 on the second vertical deceleration phase PhDecZdec as the minimum between: the maximum possible acceleration value (Az_max); and half the difference between the third time and the second time multiplied by said predefined jerk; a maximum acceleration value Az_max_speed3 allowing a speed limit to be satisfied at the end of the second vertical deceleration phase PhDecZdec;
[0186] The Az_max_speed3 value is a maximum value allowing to limit the speed at the third time t3, that is to say at the end of the PhDecZdec phase, to a speed satisfying the physical limits of the robotic arm, for example 2000mm. s -1 . Az_max_speed3 thus depends on the duration of the PhDecZdec phase.
[0187] Then, we calculate in the same way a maximum possible value Az4_max for Az4 such that Az4_max = min(Az_max_force, Az_max, Az4_max_triangle), where Az_max_force is the maximum vertical acceleration such that the normal force applied to the effector remains below the defined limit, Az4_max_triangle is the maximum acceleration considering a triangle profile between t3 and tf, and Az_max is the maximum acceleration allowed by the robotic arm.
[0188] We can then calculate a first value tf as a function of Az3 = Az3_max, and Az4 = Az4_max, so that the vertical acceleration and velocity are zero at tf. This allows us to obtain a first final altitude value Zf' at tf, which will most likely be different from the actual final altitude Zf'.
[0189] If z > Zf, then we must accelerate harder and / or for longer. Since we have already chosen the maximum accelerations, we must accelerate for longer, but t2 and t3 are fixed, so we must increase the time tf. Az3 can therefore remain fixed at its maximum Az3_max, but Az4 must decrease as long as tf increases, until we have Zf' = Zf to maintain the fact that the area under the acceleration profile between t2 and tf is zero.
[0190] If z < Zf, then less acceleration and / or less time is required. We can therefore reduce tf, we recalculate the maximum value of Az4 corresponding to this new tf, then we recalculate Az3 from tf and Az4, to keep the area under the acceleration profile between t2 and tf zero.
[0191] The resolution of the problem in these two cases therefore involves solving an equation whose only variable is tf: Zf'(tf)-Zf = 0
[0192] Method P6 is provided only as a non-limiting example of a method according to the invention. In particular, method P6 is provided only as an illustration of a way in which the different parameters of a trajectory profile as shown in Figures 4a and 4b can be determined to obtain a valid trajectory respecting the time and altitude constraints, as well as the mechanical constraints of the robotic arm. Other methods are possible. For example: the first time ti , second time t2 and third time ta can be obtained in a way other than by selection in intervals. For example, they can be obtained by a simplified calculation of the trajectory parameters; the acceleration phases may not include an increase / decrease in accelerations according to predefined jolts, and other ways of calculating the parameters Az2 and Az4 as a function of Az1 and Az3 respectively can be used, provided that they allow obtaining a zero vertical speed at the end of the pairs of acceleration and deceleration phases.
[0193] Reference is now made to Figure 7.
[0194] In the case of Figure 7, the trajectory is a 3-dimensional trajectory, because an obstacle Obs7 is present around the robotic arm Rob7, which prevents a straight line path from an initial bin Baco to a final bin Bact.
[0195] In order to facilitate understanding of the figure, we have not represented here the vertical component of the trajectory: the trajectory Traj xy 7 represents the horizontal component of the trajectory: the X' axis represents defined by the direction between the initial point and the final point, and the Y' axis the horizontal axis orthogonal to this direction.
[0196] In order to avoid the obstacle, the horizontal trajectory must deviate by a maximum distance d_obs from the X' axis.
[0197] In this example, we therefore define, in addition to the acceleration and position profiles along the X and Z axes already mentioned, an acceleration profile Acc y 7, and a Pos position profile y 7 along the Y' axis.
[0198] The acceleration profile consists of a first deceleration phase, and a first acceleration phase, to move away from the distance d_obs of the obstacle at time t_obs, then a second deceleration phase and a second acceleration phase to return to a zero position along the Y axis, and therefore return to the axis of the trajectory, at the end point of the trajectory.
[0199] This example is provided as an illustrative example only of a 3-dimensional trajectory including a second horizontal dimension. Other such trajectories are possible. For example, the acceleration profile could include a greater number of acceleration and deceleration phases to avoid a greater number of obstacles.
[0200] Reference is now made to Figure 8.
[0201] Figure 8 shows an example of determining a target temporal profile of orientation of a terminal segment of a robotic arm in a set of embodiments of the invention.
[0202] In a set of embodiments of the invention, where a step S32 is implemented, step S32 comprises determining a target time profile of orientation of the terminal segment making it possible to cancel the tangential forces applied to the load, then a time profile of orientation of the terminal segment as a function of the target time profile of orientation of the terminal segment. A time profile of orientation of the terminal segment represents the evolution of the angle theta of orientation of the terminal segment in the plane of the trajectory, as a function of time. This profile temporal is shown for illustration in a 2D trajectory. In other embodiments of the invention, the orientation of the terminal segment may be represented by a higher number of angles, for example two angles theta and phi for if the trajectory of the center of mass of the load is shown in 3D.
[0203] For example, the target orientation time profile may be an "ideal" profile canceling all tangential forces but not physically achievable by the robotic arm, and the orientation time profile actually calculated may be a profile as close as possible to the target profile, while still being physically achievable by the robotic arm.
[0204] In the example of Figure 8, the trajectory is in two dimensions, and a target time profile of the orientation of the terminal segment Ori_tar8 is determined from: the horizontal acceleration profile Accx8; the vertical acceleration profile Accz8; the mass m of the load; the acceleration of gravity g.
[0205] This target temporal profile can be supplemented by a temporal profile of maximum orientation of the terminal segment Ori_max8, and by a temporal profile of minimum orientation of the terminal segment Ori_min8.
[0206] Reference is now made to Figure 9.
[0207] Figure 9 shows an example of determining a target angle, a maximum angle and a minimum angle of orientation of an end segment of a robotic arm in a set of embodiments of the invention.
[0208] In a set of embodiments of the invention, the target orientation profile of the terminal segment Ori_tar8 can be obtained by calculating, at a set of times, a target orientation angle. This target orientation angle can be equal to an angle formed between the vector of the total acceleration applied to the load and the vertical axis.
[0209] In the example of Figure 9, the forces applied to the load, at a time t are the following, with m the mass of the load, g the value of acceleration of gravity, Acc x 8(t the horizontal acceleration value at time t in the horizontal acceleration profile Acc x 8, Acc z 8(t) the vertical acceleration value at time t in the vertical acceleration profile Acc z 8: Horizontal force: o Force generated by the horizontal component of the acceleration applied by the movement of the robotic arm: -m * Acc x 8(t); Vertical forces: Force generated by the vertical component of the vertical acceleration applied by the movement of the robotic arm: -m * Acc z 8(t); o Gravitational force: -m * g.
[0210] In one set of embodiments of the invention, the target orientation angle 0 tar of the end effector at a time t is therefore equal to the angle of the forces, or accelerations, acting on the load and the vertical axis.
[0211] Diagram F_tar9 shows a situation where the end effector angle, and therefore the load orientation angle, is equal to the target angle 9 tar We note that only a normal force is exerted on the load in this case, and that no tangential force is exerted on the load. In this case we have:
[0212] [Math 8]
[0213] In a set of embodiments of the invention, the maximum orientation profile of the terminal segment Ori_max8, and the minimum orientation profile of the terminal segment Ori_min8 can be obtained by calculating, at a set of instants, a maximum orientation angle 0 max (t) and minimal 0 min (t) by adding and respectively subtracting an angle corresponding to a maximum tangential force F_tan_max at the target angle 0 tar (t).
[0214] The diagrams F_min9 and F_max9 respectively show a situation where the end effector angle, and therefore the load orientation angle, is equal to the minimum angle 0 min , and a situation where the end effector angle, and therefore the load orientation angle, is equal to the maximum angle 0 mnr ,.
[0215] The vector of forces acting on the load remains unchanged, but, with angles 0 min , and 0 max, the forces are divided between: a normal force F_normal_min; a tangential force F_tan_max.
[0216] In other words, angles 0 min , and 0 max are the minimum and maximum angles for which the tangential force applied to the load is equal to F_tan_max.
[0217] It is therefore possible to determine the Ori_tar8, Ori_max8, and Ori_min8 profiles from the Accx8 and Acc profiles z 8, by determining at each instant t the angles 0 tar (t), 9 m m(. ) so that any real orientation profile of the terminal segment, and therefore of the load between the profiles Ori_max8 and Ori_min8, makes it possible to ensure that the tangential force applied to the load is less than or equal in absolute value to F_tan_max.
[0218] F_tan_max can be determined in different ways. In particular, it can be determined as a maximum tangential force that the end effector can withstand without releasing the load. The calculation of F_tan_max can vary according to different embodiments of the 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 can be estimated, or a maximum load can be used.
[0219] Reference is now made to Figure 10.
[0220] In one set of embodiments of the invention, the method comprises a step of determining an actual orientation profile of the end effector from the target, minimum and maximum orientation profiles of the end effector.
[0221] Indeed, the orientation variation capabilities of the end effector may be limited, so that the actual speed of variation of the orientation of the end segment may not follow a too fast speed of variation of the orientation in the target profile. Thus, the actual orientation profile of the end segment can be determined to be as close as possible to the target profile, while respecting the mechanical capabilities of the robotic arm, and being located between the minimum and maximum orientation profiles.
[0222] This can be done in several ways. For example: A real orientation profile can be obtained by constrained optimization; Several candidate profiles can be selected, before selecting the best candidate profile; - Etc.
[0223] In the example of Figure 10, the target profile is denoted Ori_tar10, the maximum profile Ori_max10, and the minimum profile Ori_min10. Obtaining the actual orientation profile is done in several steps, each represented by a graph Ori_10.1 , Ori10.2 and Ori10.3 in which the horizontal axis represents the time in seconds and the vertical axis the orientation angle of the terminal segment in degrees: a first step, represented by the graph Ori10.1 , consists of generating a set ori_cand10.1 of candidate orientation profiles, represented on the graph Ori10.1 in addition to the profiles Ori_tar10, Ori_max10, and Ori_min10. The candidate profiles are defined so as to respect the mechanical constraints of the robotic arm, and in particular the maximum angular rotation speed of the terminal segment.In this example, the profiles are generated by formulas representing the actual orientations generated by the robotic arm and observed as a function of control parameters, in this example a target angular amplitude, and two velocity amplitudes, for negative and positive angles respectively; ; a second step, represented by the graph Ori10.2, consists of removing from the set ori_cand10.1 the candidate profiles having, at least one time, an angle value greater than that of the profile Ori_max10 or less than that of the profile Ori_min10. This makes it possible to remove from the candidates the candidate profiles whose realization would lead, at least one time, to the exertion of a tangential force greater than F_tan_max on the load. Thus, all the Ori_cand10.2 profiles retained at the end of this step, and represented by the graph. Ori_10.2 allow both to satisfy the mechanical constraints of the robotic arm, and to obtain at any time the exercise of a tangential force less than or equal to F_tan_max on the load; a third step, represented by the graph Ori10.3, consists of selecting the real orientation profile Ori_reel10 to apply to the terminal segment. In the example of figure 10, the profile Ori_reel10 is selected as the median profile among the profiles Ori_cand10.2 retained in the previous step. This makes it possible to obtain the most central profile, and therefore potentially the closest to the target profile allowing both to satisfy the mechanical constraints of the robotic arm, and to obtain at any time the exercise of a tangential force less than or equal to F_tan_max on the load.
[0224] The Ori_reel10 orientation profile can therefore be applied to the terminal segment of the robotic arm, for example by means of actuators controlling the orientation of the terminal segment.
[0225] The steps shown in Figure 10 are provided as examples only of steps for defining an orientation profile of the terminal segment of a robotic arm according to a set of embodiments of the invention. Other methods are however conceivable. For example: the profiles can be 2D orientation profiles as shown in Figure 10, but also 3-dimensional profiles; the generation of candidate profiles in step Ori10.1 can be carried out according to different formulas taking into account the specificities of the trajectory, for example the number of phases of the vertical and horizontal profiles of the trajectory, and the phase change times; the profile ori_reel selected in step Ori10.3 can be selected in different ways, for example it can be the profile having the smallest distance from the profile Ori_tar10; etc.
[0226] Reference is now made to Figure 11.
[0227] Figure 11 shows a third example of a method P11 for moving a load according to a set of embodiments of the invention.
[0228] The method P11 comprises all the steps of the method P6 discussed with reference to Figure 6. In particular, the method P11 relates to an example of a 2D trajectory as represented in Figures 4a and 4b, in which the calculation of the trajectory parameters starts with the selection of the three times ti, t2 and ta from their respective intervals at step S61.
[0229] In particular, the P6 method is based on the principle that the three times ti, t2 and ta are incremented among a set of possible times, until an optimal solution associated with a minimal time tmin is obtained.
[0230] The method P11 thus comprises: the execution of step S31 determining the trajectory of the center of mass of the load, comprising all the sub-steps defined in figure 6, and starting with the sub-step S61 of selecting the times ti, t2 and ts. At the end of this step, the obtained trajectory of the center of mass is notably defined by its final time tf; a step S1101 comparison of the time tf and a minimum time tmin the time tmin is the shortest time for which a feasible trajectory was generated during the previous iterations. When the first trajectory is studied, its feasibility must be studied in all cases. To this end, it is possible for example to initialize tmin so as to necessarily have tf < tmin until a first trajectory feasible by the robotic arm is identified. If tf < tmin: o step S32 of determining the time profile of the orientation of the terminal segment; o followed by a step S1102 of verifying that a continuous variation of the orientation of the terminal segment is possible on the trajectory; o if a positive verification is obtained at step S1102, that is to say if a variation of the orientation of the terminal segment is possible on the trajectory with tf < tmin, a step S1103 of saving the parameters of the trajectory (in particular the times ti, t2 and ts which define the fastest trajectory at this stage), and of assigning the value tf to tmin. At this stage, the parameters associated with the fastest feasible trajectory encountered so far are therefore known =, and the associated minimum time;in the event of a negative verification at one of the steps S1101 and S1102, or at the end of step S1103, i.e. if tf > tmin, if a continuous variation of the orientation of the terminal segment is not possible on the trajectory, or if the parameters of the shortest trajectory have been recorded and the time tmin updated: o a step S1104 of incrementation of three times ti, t2 and ts, i.e. of selection of the next possible times ti, t2 and t3; o a step S1105 of verification that the incrementation is possible; o in the event of a positive verification at step S1105, i.e. if the incrementation was possible, a return to step S62 with the new times ti, t2 and t3;o in the event of a negative verification at step S1105, i.e. if all possible times have been processed, a step S1106 of selecting the ti, t2 and t3 associated with the optimal trajectory, followed by step S33 of sending control instructions to carry out the trajectory with a view to executing the trajectory.;
[0231] Method P11 provides a concrete example of defining an optimal trajectory. However, method P11 is provided as a non-limiting example only of a method according to a set of embodiments of the invention. Other methods are thus possible, in particular, if other parameters are used as input to the trajectory calculation, other conditions and loops for modifying the input parameter values can be used.
[0232] Reference is now made to Figures 12a, 12b, 13a, 13b, 14a, 14b, 15a and 15b.
[0233] Figures 12a, 13a, 14a, and 15a represent 4 examples of trajectories of a load in 4 examples of embodiments of the invention, each time consisting of transporting the load from an initial bin Bac0_12, Bac0_13, Bac0_14, Bac0_15 to a final bin Bacf_12, Bacf_13, Bacf_14, Bacf_15 at different distances and heights respectively.
[0234] For each example, the corresponding figures 12b, 13b, 14b and 15b represent respectively: the vertical acceleration profiles Acc z 12, Acc z 13, Acc z 14 and Acc z 15; horizontal acceleration profiles Acc x 12, Acc x 13, Acc x 14 and Acc x15; graphs Ori12.3, Ori13.3, Ori14.3, Ori15.3 showing: o the target time profiles Ori_tar12, Ori_tar13, Ori_tar14 and Ori_tar15 of orientation of the terminal segment of the robotic arm; o the maximum time profiles Ori_max12, Ori_max13, Ori_max14 and Ori_max15 of orientation of the terminal segment of the robotic arm; o the minimum time profiles Ori_min12, Ori_min13, Ori_min14 and Ori_min15 of orientation of the terminal segment of the robotic arm; o the candidate profiles, selected as real profiles of orientation of the terminal segment of the robotic arm Ori_reel12, Ori_reel13, Ori_reel14 and Ori_reel15. the altitude profiles Traj xy 12, Traj xy 13, Traj xy 14, and Traj xy 15 representing: o the Traj_ch altitude profiles xy 12, Traj_ch xy 13, Traj_ch xy 14, and Traj_ch xy 15 of the center of mass of the load; o the Traj_seg altitude profiles xy 12, Traj_seg xy 13, Traj_seg xy14, and Traj_seg xy 15 of the initial point of the terminal segment; o and, at a set of given points representing successive instants, bars representing the orientation of the terminal segment of the robotic arm.
[0235] It is observed that the tangential forces are reduced in several ways, and in particular: by the shape of the vertical and horizontal acceleration profiles of the center of mass of the load; by the orientation profile followed by the terminal segment of the robotic arm, as close as possible to the target profile. It is observed on the trajectory profiles that the orientation of the segment terminal tends to follow as much as possible the ideal orientation defined by the horizontal and vertical accelerations.
[0236] These examples demonstrate the ability of the invention to generate trajectories that can be carried out by robotic arms, making it possible to limit the tangential forces applied to the transported loads. However, they are provided only as non-limiting examples of trajectories calculated in a set of embodiments of the invention.
[0237] This disclosure is not limited to the examples of method, computer program, recording medium and robotic system described above, only by way of example, but it encompasses all the variants that may be envisaged by those skilled in the art within the framework of the protection sought.
Claims
Claims
1. Method (P3, P6) for moving a load (Cha) from an initial point (xo, zo) to an end point (xt, zt) by a robotic arm (BR) comprising a plurality of segments, and, at the terminal end (Extt) of said plurality of segments (Segi, Seg2, Segs), at least one end effector (Eff) capable of joining the load, the method comprising: determining (S31) a trajectory of the center of mass of the load between the initial point at an initial time (to) and zero speed and the end point at a final time (tp) and zero speed passing through at least one local altitude extremum (X2, Z2) at which the vertical speed of the center of mass of the load is zero, said determination of the trajectory comprising: o determining (S311) a vertical acceleration time profile (Acc z 4, Acc z8) comprising, in each interval between the initial point, the final point and a local altitude extremum, an uninterrupted succession of a vertical acceleration phase and a vertical deceleration phase; and o the determination (S312) of a horizontal acceleration time profile (Acc x 4, Acc x 5, Acc y 7, Accx8) comprising 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 initial time (to) and a sixth time (te) less than or equal to the final time; sending (S33) control instructions to at least one effector of the robotic arm, to apply the trajectory profile of the center of mass of the load.
2. Method according to claim 1, in which a horizontal or vertical acceleration or deceleration phase begins with an increase in absolute value of the acceleration according to a predefined jerk (J) up to an acceleration of maximum absolute value over the phase (|Az1 1, |Az2|, |Az3|, |Az4|, |Ax1 1, |Ax2|), and ends with a decrease in absolute value of the acceleration according to the predefined jerk.
3. A method according to claim 2, comprising calculating the maximum absolute value of the acceleration over the phase (|Az1 |, |Az2|, |Az3|, |Az4|, |Ax1 |, |Ax2|) as the minimum between: a maximum possible acceleration value (Az_max); and half the duration of the phase multiplied by said predefined jerk.
4. Method according to one of claims 2 or 3, in which two successive phases of acceleration and deceleration are such that the speed at the end of the deceleration phase is equal to the speed at the start of the acceleration phase.
5. Method according to claim 4, in which two successive phases of acceleration and deceleration are such that: the acceleration of maximum absolute value on the successive phase of acceleration (|Az1 |, |Az4|, |Ax11), multiplied by the time of the successive phase of acceleration minus said acceleration of maximum absolute value on the successive phase of acceleration divided by said predefined jerk (ti - to - is equal to: the acceleration of maximum absolute value over the successive deceleration phase (|Az2|, |Az3|, |Ax2|), multiplied by the time of the successive deceleration phase minus said acceleration of maximum absolute value over the successive deceleration phase divided by said predefined jerk (t2 - ti - to — ts - ^y).
6. Method according to claims 1 to 5, comprising: a calculation of the fourth time (t4) as the time of the start of the horizontal movement such that the center of mass of the load has moved horizontally at most by a first horizontal distance (margin_bin) at the moment when its altitude is greater than or equal to the altitude of the initial point plus a first vertical margin (h_bin); a calculation of the sixth time (te) as the time of the end of the horizontal movement such that the center of mass of the load is at most a second horizontal distance (margin_pc) from the final point at the moment when its altitude is greater than or equal to the altitude of the final point plus a second vertical margin (h_pc).
7. Method according to one of claims 1 to 5, comprising: a calculation of the fourth time (t4) as a first time at which the absolute value of the acceleration takes a maximum value (Azi) on the first phase of vertical acceleration or deceleration; a calculation of the sixth time (te) as a first time at which the absolute value of the acceleration takes a maximum value (Az4) on the first phase of vertical acceleration or deceleration.
8. Method according to any one of the preceding claims, in which: the trajectory of the center of mass of the load comprises as a single local altitude extremum a point of maximum altitude (X2, Z2); the vertical acceleration time profile (Acc z4) successively comprising a first phase of vertical acceleration from the initial time to a first time (ti), a first phase of vertical deceleration up to a second time (t2) of passage at the point of maximum altitude, a second phase of deceleration up to a third time (ta) and a second phase of acceleration up to the final time (tp); and the horizontal acceleration time profile (Acc x 4) successively comprises a horizontal acceleration phase from a fourth time (t4) greater than or equal to the initial time (to) to a fifth time (ta), then a horizontal deceleration phase from the fifth time to a sixth time (te) less than or equal to the final time.
9. Method (P6) according to claim 8 dependent on claim 3, comprising: a selection (S61) of the first time, second time and third time, respectively from a first predefined interval, a second predefined interval and a third predefined interval; a calculation (S62) of the acceleration of maximum absolute value on the first vertical acceleration phase (Az1) as the minimum between: o a maximum possible acceleration value (Az_max); and o half the difference between the first time and the initial time multiplied by said predefined jerk; a calculation (S63) of the acceleration of maximum absolute value on the first deceleration phase (Az2), from said maximum absolute value on the first acceleration phase (Az1);a calculation (S64) of the maximum absolute value acceleration on the second vertical deceleration phase (Az3), of the maximum absolute value acceleration on the second vertical acceleration phase (Az4), and of the final time (tf) allowing the end point to be reached.;
10. A method according to one of claims 8 or 9, comprising calculating the fifth time as a median time between the fourth time and the sixth time.
11. A method according to any preceding claim, wherein: the trajectory of the center of mass of the load is defined in a vertical plane including the initial point and the end point; and the horizontal acceleration profile is a one-dimensional acceleration profile.
12. A method according to one of claims 1 to 10, wherein: the trajectory of the center of mass of the load is defined in 3 dimensions between the initial point and the final point; and the horizontal acceleration profile is a two-dimensional acceleration profile.
13. A method according to any preceding claim: comprising determining (S32) a time profile of orientation of a terminal segment of the robotic arm for minimizing the tangential forces applied to the load, from said vertical acceleration time profile, said horizontal acceleration time profile, and the gravity acceleration; and wherein said control instructions for applying the trajectory profile of the center of mass of the load comprise the time profile of orientation of the terminal segment.
14. The method of claim 13, wherein determining the terminal segment orientation time profile for minimizing the tangential forces applied to the load comprises: determining a target terminal segment orientation time profile for canceling the tangential forces applied to the load (ori_tar8); determining a terminal segment orientation time profile based on the target terminal segment orientation time profile.
15. Method according to any one of claims 13 or 14, in which the target time profile of orientation of the terminal segment making it possible to cancel the tangential forces applied to the load is determined, by calculating at any instant between the initial time and the final 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. Method according to one of claims 14 or 15, in which the determination of the orientation time profile of the terminal segment as a function of the target orientation time profile of the segment comprises: the determination of a maximum orientation time profile (ori_max8), and of a minimum orientation time profile (ori_min8) of the terminal segment, by adding and respectively removing an angle corresponding to a maximum tangential force (F_tan_max) from the target orientation time profile.
17. The method of claim 16, wherein determining the terminal segment orientation time profile based on the target segment orientation time profile comprises: generating a set (Ori_cand10.1) of candidate terminal segment orientation time profiles; deleting said set of candidate terminal segment orientation time profiles having, at least at one time, an orientation lower than that of the minimum orientation time profile, or higher than that of the maximum orientation time profile; selecting the median orientation candidate orientation profile (ori_reel10) from among the remaining candidates.
18. Computer program comprising instructions for implementing the method according to one of claims 1 to 17 when this program is executed by a processor.
19. Non-transitory recording medium readable by a computer on which is recorded a program for implementing the method according to one of claims 1 to 16 when this program is executed by a processor.
20. Robotic system (Sys) capable of moving a load (Cha) from an initial point (xi, zi) to an end point (J, Z3) comprising: at least one robotic arm (BR) comprising a plurality of segments, and, at the terminal end of said plurality of segments (Segi, Seg2, Segs), at least one end effector (Eff) capable of joining the load; at least one calculation unit (Cale) configured to execute the method according to one of claims 1 to 16.