Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
OPTIMISED TRAJECTORIES FOR ROBOTIC ARMS
Document Type and Number:
WIPO Patent Application WO/2024/056687
Kind Code:
A1
Abstract:
The invention relates to a method for movement of a load from an initial point to a final point by a robotic arm comprising a plurality of segments and, at the terminal end of the plurality of segments, at least one end effector capable of meeting the load, the method comprising: determining a trajectory of the centre of mass of the load between the initial point at an initial time and zero speed and the final point at a final time and zero speed, passing through at least one local extremum of altitude at which the vertical speed of the centre of mass of the load is zero, said determination of the trajectory comprising: determining a vertical acceleration time profile comprising, in each interval between the initial point, the final point and a local extremum of altitude, 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 in order to apply the trajectory profile of the centre of mass of the load.

Inventors:
DARMET ULYSSE (FR)
LALUBIN FRANÇOIS (FR)
Application Number:
PCT/EP2023/075058
Publication Date:
March 21, 2024
Filing Date:
September 12, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
EXOTEC (FR)
International Classes:
B25J9/16; G05B19/416
Foreign References:
US20040265110A12004-12-30
Other References:
"Trajectory Planning for Automatic Machines and Robots", 3 November 2008, SPRINGER, ISBN: 978-3-540-85629-0, article BIAGIOTTI LUIGI ET AL: "Chapters 3-4", pages: 1 - 515, XP055972737
ELENA DE MOMI ET AL: "A Neural Network-Based Approach for Trajectory Planning in Robot-Human Handover Tasks", FRONTIERS IN ROBOTICS AND AI, vol. 3, 27 June 2016 (2016-06-27), XP055459535, DOI: 10.3389/frobt.2016.00034
BENDALI NADIR ET AL: "On-line trajectory planning of time-jerk optimal for robotic arms", 1 January 2016 (2016-01-01), XP093036012, Retrieved from the Internet [retrieved on 20230330]
Attorney, Agent or Firm:
PLASSERAUD IP (FR)
Download PDF:
Claims:
Revendications

[Revendication 1] Procédé (P3, P6) de déplacement d’une charge (Cha) d’un point initial (xo, zo) à un point final (xt, zt) par un bras robotique (BR) comprenant une pluralité de segments, et, à l’extrémité terminale (Extt) de ladite pluralité de segments (Segi, Seg2, Segs), au moins un effecteur terminal (Eff) apte à joindre la charge, le procédé comprenant : la détermination (S31) d’une trajectoire du centre de masse de la charge entre le point initial à un temps initial (to) et une vitesse nulle et le point final à un temps final (tp) et une vitesse nulle en passant par au moins un extremum local d’altitude (X2, Z2) auquel la vitesse verticale du centre de masse de la charge est nulle, ladite détermination de la trajectoire comprenant: o la détermination (S311) d’un profil temporel d’accélération verticale (Accz4, Accz8) comprenant, dans chaque intervalle entre le point initial, le point final et un extremum local d’altitude, une succession ininterrompue d’une phase d’accélération verticale et une phase de décélération verticale ; et o la détermination (S312) d’un profil temporel d’accélération horizontale (Accx4, Accx5, Accy7, Accx8) comprenant une succession ininterrompue d’au moins une phase d’accélération horizontale et au moins une phase de décélération horizontale entre un quatrième temps (t4) supérieur ou égal au temps initial (to) et un sixième temps (te) inférieur ou égal au temps final ; l’envoi (S33) d’instructions de commande à au moins un effecteur du bras robotique, pour appliquer le profil de trajectoire du centre de masse de la charge.

[Revendication 2] Procédé selon la revendication 1 , dans lequel une phase d’accélération ou de décélération horizontale ou verticale commence par une augmentation en valeur absolue de l’accélération selon un à-coup prédéfini (J) jusqu’à une accélération de valeur absolue maximale sur la phase (|Az1 1, |Az2|, |Az3|, |Az4|, |Ax1 1, |Ax2|), et se termine par une diminution en valeur absolue de l’accélération selon l’à-coup prédéfini.

[Revendication 3] Procédé selon la revendication 2, comprenant le calcul de la valeur absolue maximale de l’accélération sur la phase (|Az1 |, |Az2|, |Az3|, |Az4|, |Ax1 |, |Ax2|) comme le minimum entre : une valeur maximale possible d’accélération (Az_max) ; et la moitié de la durée de la phase multipliée par ledit à-coup prédéfini.

[Revendication 4] Procédé selon l’une des revendications 2 ou 3, dans lequel deux phases successives d’accélération et de décélération sont telles que la vitesse à la fin de la phase de décélération soit égale à la vitesse au début de la phase d'accélération. [Revendication 5] Procédé selon la revendication 4, dans lequel deux phases successives d’accélération et de décélération sont telles que : l’accélération de valeur absolue maximale sur la phase successive d’accélération (|Az1 |, |Az4|, |Ax11), multipliée par le temps de la phase successive d’accélération moins ladite accélération de valeur absolue maximale sur la phase d’accélération successive divisée par ledit à-coup prédéfini (ti - to - est égale à : l’accélération de valeur absolue maximale sur la phase successive de décélération (|Az2|, |Az3|, |Ax2|), multipliée par le temps de la phase successive de décélération moins ladite accélération de valeur absolue maximale sur la phase successive de décélération divisée par ledit à-coup prédéfini (t2 - ti - to — ts - ^y).

[Revendication 6] Procédé selon les revendications 1 à 5, comprenant: un calcul du quatrième temps (t4) comme le temps du début du mouvement horizontal tel que le centre de masse de la charge se soit déplacé horizontalement au maximum de d’une première distance horizontale (margin_bin) au moment où son altitude est supérieure ou égale à l’altitude du point initial plus une première marge verticale (h_bin) ; un calcul du sixième temps (te) comme le temps de la fin du mouvement horizontal tel que le centre de masse de la charge soit au plus à une deuxième distance horizontale (margin_pc) du point final au moment où son altitude est supérieure ou égale à l’altitude du point final plus une deuxième marge verticale (h_pc).

[Revendication 7] Procédé selon l’une des revendications 1 à 5, comprenant : un calcul du quatrième temps (t4) comme un premier temps auquel la valeur absolue de l’accélération prend une valeur maximale (Azi) sur la première phase d’accélération ou de décélération verticale ; un calcul du sixième temps (te) comme un premier temps auquel la valeur absolue de l’accélération prend une valeur maximale (Az4) sur la première phase d’accélération ou de décélération verticale.

[Revendication 8] Procédé selon l’une quelconque des revendications précédentes, dans lequel: la trajectoire du centre de masse de la charge comprend comme unique extremum local d’altitude un point d’altitude maximale (X2, Z2) ; le profil temporel d’accélération verticale (Accz4) comprenant successivement une première phase d’accélération verticale du temps initial à un premier temps (ti), une première phase de décélération verticale jusqu’à un deuxième temps (t2) de passage au point d’altitude maximale, une deuxième phase de décélération jusqu’à un troisième temps (ta) et une deuxième phase d’accélération jusqu’au temps final (tp) ; et le profil temporel d’accélération horizontale (Accx4) comprend successivement une phase d’accélération horizontale d’un quatrième temps (t4) supérieur ou égal au temps initial (to) à un cinquième temps (ta), puis une phase de décélération horizontale du cinquième temps à un sixième temps (te) inférieur ou égal au temps final.

[Revendication 9] Procédé (P6) selon la revendication 8 dépendant de la revendication 3, comprenant : une sélection (S61) des premier temps, deuxième temps et troisième temps, respectivement parmi un premier intervalle prédéfini, un deuxième intervalle prédéfini et un troisième intervalle prédéfini ; un calcul (S62) de l’accélération de valeur absolue maximale sur la première phase d’accélération verticale (Az1) comme le minimum entre : o une valeur maximale possible d’accélération (Az_max) ; et o la moitié de la différence entre le premier temps et le temps initial multipliée par ledit à-coup prédéfini ; un calcul (S63) de l’accélération de valeur absolue maximale sur la première phase de décélération (Az2), à partir de ladite de valeur absolue maximale sur la première phase d’accélération (Az1) ; un calcul (S64) de l’accélération de valeur absolue maximale sur la deuxième phase de décélération verticale (Az3), de l’accélération de valeur absolue maximale sur la deuxième phase de d’accélération verticale (Az4), et du temps final (tf) permettant d’arriver au point final.

[Revendication 10] Procédé selon l’une des revendications 8 ou 9, comprenant un calcul du cinquième temps comme un temps médian entre le quatrième temps et le sixième temps.

[Revendication 11] Procédé selon l’une quelconque des revendications précédentes, dans lequel : la trajectoire du centre de masse de la charge est définie dans un plan vertical comprenant le point initial et le point final ; et le profil d’accélération horizontale est un profil d’accélération en une dimension. [Revendication 12] Procédé selon l‘une des revendications 1 à 10, dans lequel : la trajectoire du centre de masse de la charge est définie en 3 dimensions entre le point initial et le point final ; et le profil d’accélération horizontale est un profil d’accélération en deux dimensions.

[Revendication 13] Procédé selon l’une quelconque des revendications précédentes : comprenant la détermination (S32) d’un profil temporel d’orientation d’un segment terminal du bras robotique permettant de minimiser les efforts tangentiels appliqués à la charge, à partir dudit profil temporel d’accélération verticale, dudit profil temporel d’accélération horizontale, et de l’accélération de pesanteur ; et dans lequel lesdites instructions de commande pour appliquer le profil de trajectoire du centre de masse de la charge comprennent le profil temporel d’orientation du segment terminal.

[Revendication 14] Procédé selon la revendication 13, dans lequel la détermination du profil temporel d’orientation du segment terminal permettant de minimiser les efforts tangentiels appliqués à la charge comprend : la détermination d’un profil temporel cible d’orientation du segment terminal permettant d’annuler les efforts tangentiels appliqués à la charge (ori_tar8) ; la détermination d’un profil temporel d’orientation du segment terminal en fonction du profil temporel cible d’orientation du segment terminal.

[Revendication 15] Procédé selon l’une quelconque des revendications 13 ou 14, dans lequel le profil temporel cible d’orientation du segment terminal permettant d’annuler les efforts tangentiels appliqués à la charge est déterminé, en calculant à tout instant entre le temps initial et le temps final, une valeur d’orientation égale à l’arctangente de l’accélération horizontale divisée par la somme de l’accélération verticale et de l’accélération de la pesanteur.

[Revendication 16] Procédé selon l’une des revendications 14 ou 15, dans lequel la détermination du profil temporel d’orientation du segment terminal en fonction du profil temporel cible d’orientation du segment comprend : la détermination d’un profil temporel d’orientation maximale (ori_max8) , et d’un profil temporel d’orientation minimale (ori_min8) du segment terminal, en ajoutant et respectivement retirant un angle correspondant à une force tangentielle maximale (F_tan_max) au profil temporel cible d’orientation.

[Revendication 17] Procédé selon la revendication 16, dans lequel la détermination du profil temporel d’orientation du segment terminal en fonction du profil temporel cible d’orientation du segment comprend : la génération d’un ensemble (Ori_cand10.1) de profils temporels candidats d’orientation du segment terminal ; la suppression dudit ensemble des profils temporels d’orientation candidats du segment terminal ayant, à au moins un temps, une orientation inférieure à celle du profil temporel d’orientation minimale, ou supérieure à celle du profil temporel d’orientation maximale ; la sélection du profil d’orientation candidat d’orientation médian (ori_reel10) parmi les candidats restants.

[Revendication 18] Programme informatique comportant des instructions pour la mise en œuvre du procédé selon l’une des revendications 1 à 17 lorsque ce programme est exécuté par un processeur.

[Revendication 19] Support d’enregistrement non transitoire lisible par un ordinateur sur lequel est enregistré un programme pour la mise en œuvre du procédé selon l’une des revendications 1 à 16 lorsque ce programme est exécuté par un processeur.

[Revendication 20] Système robotique (Sys) apte à déplacer une charge (Cha) d’un point initial (xi, zi) à un point final ( J, Z3) comprenant : au moins un bras robotique (BR) comprenant une pluralité de segments, et, à l’extrémité terminale de ladite pluralité de segments (Segi, Seg2, Segs), au moins un effecteur terminal (Eff) apte à joindre la charge ; au moins une unité de calcul (Cale) configuré pour exécuter le procédé selon l’une des revendications 1 à 16.

Description:
Description

Titre : TRAJECTOIRES OPTIMISEES DE BRAS ROBOTIQUES

Domaine technique

[0001] La présente divulgation relève du domaine des bras robotiques. Plus spécifiquement, la présente divulgation relève du calcul de trajectoires optimisées de bras robotiques pour le transport de charges.

Technique antérieure

[0002] Les bras robotiques, également appelés bras articulés, sont des robots permettant de déplacer des charges. A cet effet, les bras robotiques possèdent plusieurs segments articulés à l’extrémité desquels se situe un effecteur pouvant joindre la charge. Le mouvement relatif des bras articulés permet ainsi à l’effecteur de déplacer la charge d’un point à un autre. L'effecteur est un moyen de préhension du bras robotique vis-à-vis de la charge en question, qui consiste le plus souvent en une pince ou une ventouse.

[0003] De manière fondamentale, on cherche à faire fonctionner de tels bras robotiques avec des vitesses et des accélérations maximales et ce, afin d’obtenir des temps de cycle aussi courts que possible. Un temps de cycle étant le temps mis par le robot pour déplacer une charge de son point initial à sa destination finale souhaitée. Par exemple, d'un bac de stockage à un autre bac ou à un carton d’emballage. La diminution des temps de cycle s’accompagne de gains logistiques et donc financiers. Mais la recherche de vitesses et d’accélérations maximales n’est pas sans poser un certain nombre de problèmes techniques.

[0004] Lors du déplacement de la charge, l’accélération appliquée à la charge induit l’application d’efforts à la charge. Ces efforts possèdent une composante normale colinéaire à l’orientation du segment terminal du robot, et une composante tangentielle orthogonale à l’orientation du segment terminal du robot. L’application d’un effort trop important à la charge peut amener l’effecteur à lâcher la charge, si l’effort est plus important qu’un effort maximal que peut supporter l’effecteur. Les efforts tangentiels sont particulièrement difficiles à soutenir pour la plupart des effecteurs, notamment les effecteurs de type ventouse. D’autres effecteurs peuvent avoir des directions d’efforts particulièrement difficiles à soutenir différentes.

[0005] De manière générale, les efforts sont d’autant plus importants que les accélérations appliquées à la charge sont importantes, et que la masse de la charge est importante. Les limites des efforts qu’un effecteur peut soutenir peut donc limiter le mouvement qu’un bras robotique peut appliquer à une charge de deux manières : la masse de la charge à déplacer peut être limitée ; l’accélération appliquée à la charge peut être limitée, ce qui augmente le temps de parcours de la charge pour un déplacement donné. [0006] Pour surmonter ces limites, une solution consiste à utiliser des bras robotiques ayant des effecteurs plus puissants, capables de supporter des efforts plus importants. Cependant, de tels bras robotiques et effecteurs peuvent s’avérer plus coûteux et plus encombrants.

[0007] Il existe donc un besoin d’augmenter la charge qu’un même bras robotique peut déplacer et/ou de diminuer le temps de parcours d’une charge entre deux points par ce même bras robotique. Ce besoin peut aussi s’exprimer comme le besoin de transporter plus rapidement une charge de même masse entre deux points.

[0008] Il existe aussi un besoin de disposer d’un profil de gestion de la trajectoire d’un bras robotique, qui prenne en compte les contraintes mécaniques dudit robot, telle qu’une accélération maximale physiquement réalisable, une contrainte opérationnelle, etc.

[0009] Il existe aussi un besoin de disposer d’une stratégie de gestion de la trajectoire, et aussi des profils d’accélération d’un bras robotique, de manière à optimiser les temps de parcours, tout en évitant l'arrachement de la charge au niveau de l’effecteur terminal.

[0010] Il existe aussi un besoin que cette stratégie puisse prendre en considération l’existence d’obstacles sur le chemin de la charge, de son point initial jusqu"à sa destination finale.

Résumé

[0011] La présente divulgation vient améliorer la situation.

[0012] Il est proposé un procédé de déplacement d’une charge d’un point initial à un point final par un bras robotique comprenant une pluralité de segments, et, à l’extrémité terminale de ladite pluralité de segments, au moins un effecteur terminal apte à joindre la charge, le procédé comprenant :la détermination d’une trajectoire du centre de masse de la charge entre le point initial à un temps initial et une vitesse nulle et le point final à un temps final et une vitesse nulle en passant par au moins un extremum local d’altitude auquel la vitesse verticale du centre de masse de la charge est nulle, ladite détermination de la trajectoire comprenant: la détermination d’un profil temporel d’accélération verticale comprenant, dans chaque intervalle entre le point initial, le point final et un extremum local d’altitude, une succession ininterrompue d’une phase d’accélération verticale et une phase de décélération verticale ; et la détermination d’un profil temporel d’accélération horizontale comprenant une succession ininterrompue d’au moins une phase d’accélération horizontale et au moins une phase de décélération horizontale entre un quatrième temps supérieur ou égal au temps initial et un sixième temps inférieur ou égal au temps final ; l’envoi d’instructions de commande à au moins un effecteur du bras robotique, pour appliquer le profil de trajectoire du centre de masse de la charge.

[0013] On entend par « extrémité terminale » du bras robotique une extrémité mobile des segments du bras robotique pouvant être librement déplacée. L’extrémité terminale correspond donc généralement à la dernière extrémité du dernier segment en partant de la base du robot, qui est en contact direct avec l’effecteur. [0014] On entend par « effecteur terminal » un effecteur apte à joindre une charge et situé à une extrémité terminale du bras robotique. Un effecteur terminal pourra, dans le cadre de la présente divulgation, être simplement désigné comme « effecteur ».

[0015] On entend par « extremum local d’altitude » un minimum ou un maximum local d’altitude du centre de masse de la charge sur la trajectoire.

[0016] On entend par « succession ininterrompue » une succession de phases sans phase intermédiaire ainsi, une succession ininterrompue d’une phase d’accélération verticale et d’une phase de décélération verticale peut comprendre, soit une phase d’accélération suivie d’une phase de décélération, soit une phase de décélération suivie d’une phase d’accélération, mais ne comprendra pas de phase d’accélération nulle. De même, une succession ininterrompue d’au moins une phase d’accélération horizontale et d’au moins une phase de décélération horizontale peut comprendre une ou plusieurs phases d’accélération et de décélération horizontales, mais ne comprendra pas de phase d’accélération horizontale nulle (ou de vitesse horizontale constante), seuls des points d’accélération nulle peuvent exister entre deux phases d’accélération et de décélération successives.

[0017] On entend par « phase de d’accélération verticale » une phase temporelle au cours de laquelle la vitesse verticale du centre de masse de la charge augmente. Il peut s’agir d’une phase d’accélération verticale en montée, au cours de laquelle le centre de masse de la charge monte de plus en plus vite (la vitesse verticale est positive et la valeur absolue de la vitesse augmente), ou une phase d’accélération verticale en descente, au cours de laquelle le centre de masse de la charge descend de plus en plus lentement (la vitesse verticale est négative et la valeur absolue de la vitesse diminue).

[0018] On entend par « phase de de décélération verticale » une phase temporelle au cours de laquelle la vitesse verticale du centre de masse de la charge diminue. Il peut s’agir d’une phase de décélération verticale en descente, au cours de laquelle le centre de masse de la charge descend de plus en plus vite (la vitesse verticale est négative et la valeur absolue de la vitesse augmente), ou une phase de décélération verticale en montée, au cours de laquelle le centre de masse de la charge monte de plus en plus lentement (la vitesse verticale est positive et la valeur absolue de la vitesse diminue).

[0019] On entend par « phase d’accélération horizontale » une phase au cours de laquelle la valeur absolue de la vitesse horizontale augmente.

[0020] On entend par « phase de décélération horizontale » une phase au cours de laquelle la valeur absolue de la vitesse horizontale diminue.

[0021] On entend par « instruction de commandes » n’importe quelle instruction ou information pouvant être suivie ou exécutée par le bras robotique pour appliquer au centre de masse de la charge la trajectoire déterminée. [0022] Ainsi, le profil d’accélération verticale du centre de masse de la charge ne comprend aucune phase d’accélération nulle, et le profil d’accélération horizontale ne comprend aucune phase d’accélération nulle entre le quatrième et le sixième temps.

[0023] Ceci permet d’obtenir, pour un temps de parcours donné de la trajectoire, des accélérations plus faibles sur de plus longues durées, et donc d’appliquer des efforts plus faibles à la charge pour un même temps de parcours. Ceci permet donc, avec un même bras robotique, de porter des charges plus lourdes et/ou de bénéficier de trajectoires plus rapides, sans risquer que l’effecteur terminal ne lâche la charge.

[0024] Les trajectoires déterminées par un procédé selon l’invention, et appliquées aux charges, se caractérisent par des paires de phases d’accélération et de décélération verticales entre deux points de vitesse et d’accélération verticale nulle, sans avoir de phase de vitesse verticale constante (et donc d’accélération nulle).

[0025] Selon un autre aspect, il est proposé un programme informatique comportant des instructions pour la mise en œuvre du procédé selon l’un des modes de réalisation de la présente divulgation lorsque ce programme est exécuté par un processeur

[0026] Selon un autre aspect, il est proposé un support d’enregistrement non transitoire lisible par un ordinateur sur lequel est enregistré un programme pour la mise en œuvre du procédé l’un des modes de réalisation de la présente divulgation lorsque ce programme est exécuté par un processeur.

[0027] Selon un autre aspect, il est proposé un système robotique apte à déplacer une charge d’un point initial à un point final comprenant : au moins un bras robotique comprenant une pluralité de segments, et, à l’extrémité terminale de ladite pluralité de segments, au moins un effecteur terminal apte à joindre la charge ; au moins une unité de calcul configuré pour exécuter le procédé selon l’un des modes de réalisation de la présente divulgation.

[0028] On entend par « unité de calcul » un composant électronique apte à effectuer des calculs électroniques ou informatiques pour effectuer une fonction déterminée. Une unité de calcul peut désignertout type de processeur ou composant électronique apte à effectuer des calculs numériques. Par exemple, une unité de calcul peut être un circuit intégré, un ASIC (de l’acronyme anglais « Application-Specific Integrated Circuit », littéralement en français « circuit intégré propre à une application », un microcontrôleur, un microprocesseur, un DSP (de l’acronyme anglais « Digital Signal Processor », littéralement en français « processeur de signal numérique »), un processeur, un GPU (de l’acronyme anglais « Graphics Processing Unit », littéralement en français « unité de calcul graphique »). Une unité de calcul selon l’invention n’est pas limitée à un type particulier d’architecture de calcul. Par exemple, un processeur peut mettre en œuvre une architecture de type Harvard ou Von Neumann.

[0029] Les caractéristiques exposées dans les paragraphes suivants peuvent, optionnellement, être mises en œuvre, indépendamment les unes des autres ou en combinaison les unes avec les autres : [0030] Dans un ensemble de modes de réalisation de l’invention, une phase d’accélération ou de décélération horizontale ou verticale commence par une augmentation en valeur absolue de l’accélération selon un à-coup prédéfini jusqu’à une accélération de valeur absolue maximale sur la phase, et se termine par une diminution en valeur absolue de l’accélération selon l’à-coup prédéfini

[0031] On entend par « à-coup » (en anglais « jerk » ou « jolt ») la dérivée de l’accélération, exprimée par exemple en m.s -3 , et pouvant être représentée par le symbole J.

[0032] L’à-coup prédéfini peut par exemple être prédéfini pour un bras robotique donné, en fonction de ses contraintes mécaniques. L’à-coup peut être le même pourtoutes les phases ou différent selon les phases d’accélération. Par exemple, l’à-coup prédéfini peut être différent pour les accélérations horizontales ou verticales, pour les accélérations ou décélérations, etc.

[0033] Ceci permet d’obtenir une trajectoire physiquement réalisable par le robot, qui n’est généralement pas capable de passer brusquement d’une accélération à une accélération très différente.

[0034] Dans un ensemble de modes de réalisation de l’invention, le procédé comprend le calcul de la valeur absolue maximale de l’accélération sur la phase comme le minimum entre : une valeur maximale possible d’accélération ; et la moitié de la durée de la phase multipliée par ledit à-coup prédéfini.

[0035] On entend par « valeur maximale possible d’accélération » une valeur absolue maximale possible d’accélération, qui peut être définie selon différentes contraintes : contraintes mécaniques robot avec une accélération maximale physiquement réalisable, contrainte opérationnelle, etc.

[0036] Ceci permet donc d’obtenir un profil d’accélération réalisable par le robot, et respectant des accélérations maximales possibles.

[0037] Dans un ensemble de modes de réalisation de l’invention, deux phases successives d’accélération et de décélération sont telles que la vitesse à la fin de la phase de décélération soit égale à la vitesse au début de la phase d'accélération.

[0038] Dans un ensemble de modes de réalisation de l’invention, deux phases successives d’accélération et de décélération sont telles que : l’accélération de valeur absolue maximale sur la phase successive d’accélération (|Az11, |Az4|, |Ax11), multipliée par le temps de la phase successive d’accélération moins ladite accélération de valeur absolue maximale sur la phase d’accélération successive divisée par ledit à-coup prédéfini (ti - to - tf — t3 - y- 2 , ts — t4 - y- 2 ) est égale à l’accélération de valeur absolue maximale sur la phase successive de décélération (|Az2|, |Az3|, |Ax2|), multipliée par le temps de la phase successive de décélération moins ladite accélération de valeur absolue maximale sur la phase successive de décélération divisée par ledit à-coup prédéfini [0039] Ceci permet d’obtenir une accélération totale égale en valeur absolue à la décélération totale sur les deux phases, et donc une vitesse identique entre le temps initial et le temps final des phases d’accélération et de décélération, par exemple une vitesse nulle.

[0040] Dans un ensemble de modes de réalisation de l’invention, le procédé comprend : un calcul du quatrième temps comme le temps du début du mouvement horizontal tel que le centre de masse de la charge se soit déplacé horizontalement au maximum de d’une première distance horizontale au moment où son altitude est supérieure ou égale à l’altitude du point initial plus une première marge verticale ; un calcul du sixième temps comme le temps de la fin du mouvement horizontal tel que le centre de masse de la charge soit au plus à une deuxième distance horizontale du point final au moment où son altitude est supérieure ou égale à l’altitude du point final plus une deuxième marge verticale.

[0041] On entend par « début du mouvement horizontal » le temps où le centre de masse de la charge commence à s’éloigner du point initial.

[0042] On entend par « fin du mouvement horizontal » le temps où le centre de masse de la charge arrive horizontalement au-dessus du point final.

[0043] Ceci permet de n’effectuer des mouvements horizontaux à partir d’une distance verticale donnée au-dessus des points initial et final de la trajectoire, ce qui permet d’éviter des obstacles en début et fin de trajectoire.

[0044] On peut dans ce cas observer que le déplacement horizontal démarre après / se termine avant le déplacement vertical, et que les délais associés correspondent à une différence d’altitude sur la trajectoire verticale.

[0045] Dans un ensemble de modes de réalisation de l’invention, le procédé comprend : un calcul du quatrième temps comme un premier temps auquel la valeur absolue de l’accélération perd une valeur maximale sur la première phase d’accélération ou de décélération verticale ; un calcul du sixième temps comme un premier temps auquel la valeur absolue de l’accélération prend une valeur maximale sur la première phase d’accélération ou de décélération verticale.

[0046] Ceci permet de ne pas ajouter d’accélération horizontale lorsque l’accélération verticale est forte (Az1 ou Az4), en début de montée ou en fin de descente, et donc de limiter les efforts appliqués à la charge.

[0047] Dans un ensemble de modes de réalisation de l’invention, la trajectoire du centre de masse de la charge comprend comme unique extremum local d’altitude un point d’altitude maximale ; le profil temporel d’accélération verticale comprenant successivement une première phase d’accélération verticale du temps initial à un premier temps, une première phase de décélération verticale jusqu’à un deuxième temps de passage au point d’altitude maximale, une deuxième phase de décélération jusqu’à un troisième temps et une deuxième phase d’accélération jusqu’au temps final ; et le profil temporel d’accélération horizontale comprend successivement une phase d’accélération horizontale d’un quatrième temps supérieur ou égal au temps initial à un cinquième temps, puis une phase de décélération horizontale du cinquième temps à un sixième temps inférieur ou égal au temps final.

[0048] Ceci permet d’obtenir une trajectoire aussi simple que possible, et donc aussi rapide que possible, entre un point initial et un point final.

[0049] La trajectoire se caractérise par une phase de montée puis une phase de descente, avec au cours de chaque phase une augmentation puis une diminution de la vitesse, sans qu’elle soit constante. De la même manière, la trajectoire verticale se caractérise par une accélération puis une décélération.

[0050] Dans un ensemble de modes de réalisation de l’invention, le procédé comprend une sélection des premier temps, deuxième temps et troisième temps, respectivement parmi un premier intervalle prédéfini, un deuxième intervalle prédéfini et un troisième intervalle prédéfini ; un calcul de l’accélération de valeur absolue maximale sur la première phase d’accélération verticale comme le minimum entre : une valeur maximale possible d’accélération ; et la moitié de la différence entre le premier temps et le temps initial multipliée par ledit à-coup prédéfini ; un calcul de l’accélération de valeur absolue maximale sur la première phase de décélération, à partir de ladite de valeur absolue maximale sur la première phase d’accélération ; un calcul de l’accélération de valeur absolue maximale sur la deuxième phase de décélération verticale, de l’accélération de valeur absolue maximale sur la deuxième phase de d’accélération verticale, et du temps final permettant d’arriver au point final.

[0051] Ceci permet d’obtenir l’ensemble des profils d’accélération horizontaux et verticaux pour une trajectoire donnée, en respectant les contraintes mécaniques du bras robotique.

[0052] Dans un ensemble de modes de réalisation de l’invention, le procédé comprend un calcul du cinquième temps comme un temps médian entre le quatrième temps et le sixième temps.

[0053] Ceci permet d’obtenir des phases d’accélération et décélération horizontales plus longues, et ainsi de limiter l’amplitude de l’accélération horizontale, et donc de l’angle de l’effecteur.

[0054] Dans un ensemble de modes de réalisation de l’invention, la trajectoire du centre de masse de la charge est définie dans un plan vertical comprenant le point initial et le point final ; et le profil d’accélération horizontale est un profil d’accélération en une dimension.

[0055] Ceci permet d’obtenir une trajectoire plus courte, et donc plus rapide entre le point initial et le point final.

[0056] Dans un ensemble de modes de réalisation de l’invention, la trajectoire du centre de masse de la charge est définie en 3 dimensions entre le point initial et le point final ; et le profil d’accélération horizontale est un profil d’accélération en deux dimensions.

[0057] Ceci permet d’obtenir des trajectoires complexes en 3D, par exemple pour éviter des obstacles.

[0058] Dans un ensemble de modes de réalisation de l’invention, le procédé comprend la détermination d’un profil temporel d’orientation d’un segment terminal du bras robotique permettant de minimiser les efforts tangentiels appliqués à la charge, à partir dudit profil temporel d’accélération verticale, dudit profil temporel d’accélération horizontale, et de l’accélération de pesanteur ; et lesdites instructions de commande pour appliquer le profil de trajectoire du centre de masse de la charge comprennent le profil temporel d’orientation du segment terminal.

[0059] On entend par « minimiser les efforts tangentiels » rendre les efforts tangentiels aussi faibles que possibles. Cela peut par exemple signifier faire tendre les efforts tangentiels vers zéro dans la limite des capacités mécaniques du bras robotique et/ou borner les efforts tangentiels sous des valeurs absolues maximales.

[0060] L’orientation du segment terminal permet ainsi de compenser en grande partie les efforts tangentiels induits par la gravité et l’accélération du centre de masse de la charge. Ceci permet de déplacer des charges plus lourdes (et donc générant des efforts tangentiels plus élevés) avec un même effecteur et/ou d’augmenter la vitesse de déplacement du centre de masse de la charge, avec un même effecteur terminal, sans risque de chute de la charge.

[0061] On constate dans ce cas que le bras robotique applique un mouvement de sorte à déplacer l’extrémité initiale du segment, et orienter le segment terminal. Il existe donc des actuateurs permettant d’orienter le segment terminal. On constate également que le segment terminal aura tendance à s’orienter dans le sens des efforts appliqués à la charge, de sorte que les efforts sont très majoritairement des efforts normaux. On peut donc constater une corrélation entre la direction des efforts appliqués à la charge, et l’orientation du segment terminal.

[0062] Dans un ensemble de modes de réalisation de l’invention, la détermination du profil temporel d’orientation du segment terminal permettant de minimiser les efforts tangentiels appliqués à la charge comprend : la détermination d’un profil temporel cible d’orientation du segment terminal permettant d’annuler les efforts tangentiels appliqués à la charge ; la détermination d’un profil temporel d’orientation du segment terminal en fonction du profil temporel cible d’orientation du segment terminal.

[0063] Ceci permet d’obtenir un profil temporel d’orientation du segment terminal aussi proche que possible du profil cible permettant d’annuler totalement les efforts tangentiels.

[0064] Dans un ensemble de modes de réalisation de l’invention, le profil temporel cible d’orientation du segment terminal permettant d’annuler les efforts tangentiels appliqués à la charge est déterminé, en calculant à tout instant entre le temps initial et le temps final, une valeur d’orientation égale à l’arctangente de l’accélération horizontale divisée par la somme de l’accélération verticale et de l’accélération de la pesanteur.

[0065] Ceci permet d’obtenir à tout moment un angle d’orientation de l’accélération globale appliquée à la charge. Si cet angle cible d’orientation est appliqué à la charge, il n’y aura donc que des efforts normaux, et pas d’effort tangentiel.

[0066] Dans un ensemble de modes de réalisation de l’invention, la détermination du profil temporel d’orientation du segment terminal en fonction du profil temporel cible d’orientation du segment comprend : la détermination d’un profil temporel d’orientation maximale, et d’un profil temporel d’orientation minimale du segment terminal, en ajoutant et respectivement retirant un angle correspondant à une force tangentielle maximale au profil temporel cible d’orientation.

[0067] Ceci permet d’obtenir à chaque instant un angle minimal et maximal selon lesquels l’effort tangentiel appliqué à la charge respecte les capacités de l’effecteur terminal. Et ainsi de pouvoir appliquer des profils d’orientation respectant les contraintes mécaniques de l’effecteur.

[0068] Dans un ensemble de modes de réalisation de l’invention, la détermination du profil temporel d’orientation du segment terminal en fonction du profil temporel cible d’orientation du segment comprend : la génération d’un ensemble de profils temporels candidats d’orientation du segment terminal ; la suppression dudit ensemble des profils temporels d’orientation candidats du segment terminal ayant, à au moins un temps, une orientation inférieure à celle du profil temporel d’orientation minimale, ou supérieure à celle du profil temporel d’orientation maximale ; la sélection du profil d’orientation candidat d’orientation médian parmi les candidats restants.

[0069] Ceci permet d’obtenir un profil d’orientation aussi proche que possible d’un profil optimal, tout en s’assurant qu’il respecte des marges de sécurité vis-à-vis de l’orientation de la charge.

Brève description des dessins

[0070] D’autres caractéristiques, détails et avantages apparaîtront à la lecture de la description détaillée ci-après, et à l’analyse des dessins annexés, sur lesquels :

Fig. 1

[0071] [Fig. 1] montre un exemple de bras robotique selon un ensemble de modes de réalisation de l’invention.

Fig. 2

[0072] [Fig. 2] montre un exemple de système robotique selon un ensemble de modes de réalisation de l’invention.

Fig. 3

[0073] [Fig. 3] montre un premier exemple de procédé de déplacement d’une charge selon un ensemble de modes de réalisation de l’invention.

Fig. 4a

[0074] [Fig. 4a] montre un premier exemple de trajectoire d’un centre de masse d’une charge selon ensemble de modes de réalisation de l’invention.

Fig. 4b

[0075] [Fig. 4b] montre un premier exemple d’un profil temporel de position, de vitesse et d’accélération du centre de masse d’une charge selon ensemble de modes de réalisation de l’invention. Fig. 5

[0076] [Fig. 5] montre un deuxième exemple de trajectoire d’un centre de masse d’une charge selon un ensemble de modes de réalisation de l’invention.

Fig. 6

[0077] [Fig. 6] montre un deuxième exemple de procédé de déplacement d’une charge selon un ensemble de modes de réalisation de l’invention.

Fig. 7

[0078] [Fig. 7] montre un exemple de trajectoire en 3 dimensions selon un ensemble de modes de réalisation de l’invention ;

Fig. 8

[0079] [Fig. 8] montre un exemple de détermination d’un profil temporel cible d’orientation d’un segment terminal d’un bras robotique dans un ensemble de modes de réalisation de l’invention.

Fig. 9

[0080] [Fig. 9] montre un exemple de détermination d’un angle cible, d’un angle maximal et d’un angle minimal d’orientation d’un segment terminal d’un bras robotique dans un ensemble de modes de réalisation de l’invention.

Fig. 10

[0081] [Fig. 10] montre un exemple de définition de profils d’orientation d’un segment terminal d’un bras robotique selon un ensemble de modes de réalisation de l’invention ;

Fig. 11

[0082] [Fig. 11] montre un troisième exemple de procédé de déplacement d’une charge selon un ensemble de modes de réalisation de l’invention ;

Fig. 12a

[0083] [Fig. 12a] montre un premier exemple de trajectoire d’une charge et de position d’un segment terminal d’un bras robotique obtenus par un procédé selon un ensemble de modes de réalisation de l’invention ;

Fig. 12b

[0084] [Fig. 12b] montre un premier exemple d’un profil temporel d’accélération verticale d’un centre de masse d’une charge, d’un profil temporel d’accélération horizontale d’un centre de masse d’une charge, et d’un profil temporel d’orientation d’un segment terminal d’un bras robotique selon un ensemble de modes de réalisation de l’invention. Fig. 13a

[0085] [Fig. 13a] montre un deuxième exemple de trajectoire d’une charge et de position d’un segment terminal d’un bras robotique obtenus par un procédé selon un ensemble de modes de réalisation de l’invention;

Fig. 13b

[0086] [Fig. 13b] montre un deuxième exemple d’un profil temporel d’accélération verticale d’un centre de masse d’une charge, d’un profil temporel d’accélération horizontale d’un centre de masse d’une charge, et d’un profil temporel d’orientation d’un segment terminal d’un bras robotique selon un ensemble de modes de réalisation de l’invention.

Fig. 14a

[0087] [Fig. 14a] montre un troisième exemple de trajectoire d’une charge et de position d’un segment terminal d’un bras robotique obtenus par un procédé selon un ensemble de modes de réalisation de l’invention ;

Fig. 14b

[0088] [Fig. 14b] montre un deuxième exemple d’un profil temporel d’accélération verticale d’un centre de masse d’une charge, d’un profil temporel d’accélération horizontale d’un centre de masse d’une charge, et d’un profil temporel d’orientation d’un segment terminal d’un bras robotique selon un ensemble de modes de réalisation de l’invention.

Fig. 15a

[0089] [Fig. 15a] montre un quatrième exemple de trajectoire d’une charge et de position d’un segment terminal d’un bras robotique obtenus par un procédé selon un ensemble de modes de réalisation de l’invention.

Fig. 15b

[0090] [Fig. 15b] montre un deuxième exemple d’un profil temporel d’accélération verticale d’un centre de masse d’une charge, d’un profil temporel d’accélération horizontale d’un centre de masse d’une charge, et d’un profil temporel d’orientation d’un segment terminal d’un bras robotique selon un ensemble de modes de réalisation de l’invention.

[0091] Description des modes de réalisation

[0092] Il est maintenant fait référence à la figure 1 .

[0093] La figure 1 représente exemple de bras robotique BR selon un ensemble de modes de réalisation de l’invention.

[0094] Dans l’exemple de la figure 1 , le bras robotique BR permet de transporter une charge Cha d’un premier bac Bci à un deuxième bac Bc2. Par exemple, le bras robotique BR peut être utilisé pour déplacer les objets du premier au deuxième bas un par un, ou pour trier les objets du premier bac. [0095] Le bras robotique BR est fixé au sol par une base fixe BasRob, et comprend trois segments mobiles successifs Segi, Seg2 et Segs. Les segments mobiles Segi, Seg2 et Segs ont une longueur fixe, mais sont liés entre eux par des actuateurs au niveau de leurs extrémités respectives permettant d’effectuer des rotations autour de la base BasRob, et d’effectuer des rotations des segments les uns par rapport aux autres.

[0096] Le déplacement relatif des segments permet de déplacer une extrémité terminale Extt du bras robotique. L’extrémité terminale Extt est dans cet exemple une extrémité mobile du bras située à l’extrémité du dernier segment Segs en partant de la base, également appelé segment terminal.

[0097] Le bras robotique BR comprend, à l’extrémité terminale Extt au moins un effecteur terminal Eff apte à joindre la charge Cha. Dans l’exemple de la figure 1 , le bras robotique comprend un unique effecteur terminal, qui est une ventouse. Dans cet exemple la ventouse peut joindre, ou au contraire relâcher la charge Cha.

[0098] Ainsi, la jonction de la charge par l’effecteur terminal Eff, le mouvement relatif des segments mobiles, et la relâche de la charge par l’effecteur terminal Eff permettent de déplacer la charge Cha du premier bac Bci au deuxième bac Bc2, et plus généralement d’un point initial à un point final à proximité du bras robotique.

[0099] Le bras robotique montré à la figure 1 est fourni à titre d’exemple non limitatif uniquement d’un bras robotique selon un ensemble de modes de réalisation de l’invention. D’autres bras robotiques peuvent être utilisées selon l’invention. Par exemple : le bras robotique peut être lié au sol par une base fixe comme le robot représenté en figure 1. Il peut également être mobile, par exemple sur une plate-forme mobile sur roues ou sur rail ; le bras robotique peut être constitué de différents nombres de segments mobiles. Par exemple, le bras robotique peut comprendre 3 segments comme le bras représenté en figure 1 , mais aussi 2, 4, 5 segments, etc... les segments mobiles peuvent avoir une longueur fixe comme représenté en figure 1 , ou certains au moins d’entre eux peuvent avoir des longueurs variables ; le bras robotique peut comprendre un ou plusieurs effecteurs terminaux. Par exemple, il peut comprendre une ou plusieurs ventouses colocalisées à l’extrémité des segments ; l’effecteur peut être une ventouse comme représenté dans l’exemple de la figure 1 , ou un autre type d ‘effecteur tel que par exemple une main robotique, un aimant ou un ensemble de ventouses. Si le bras robotique comprend plusieurs effecteurs terminaux, ceux-ci peuvent être du même type (par exemple, plusieurs ventouses), ou de types différents (par exemple, une ventouse et une main robotique).

[0100] Il est maintenant fait référence à la figure 2.

[0101] La figure 2 représente un système robotique Sys. [0102] Le système robotique Sys comprend un bras robotique tel que le bras robotique BR.

[0103] Le système robotique comprend également au moins une unité de calcul Cale configurée pour calculer une trajectoire du centre de masse de la charge Cha, et envoyer des instructions de commande au bras robotique BR. A cet effet, l’au moins une unité de calcul Cale peut être située pour exécuter un procédé selon l’un des modes de réalisation de la présente divulgation.

[0104] Dans l’exemple de la figure 2, l’au moins une unité de calcul Cale est située dans un dispositif de calcul Disp externe au bras robotique BR, par exemple une station de travail. Le calcul de la trajectoire est donc effectué à distance et envoyé au bras robotique.

[0105] Le système robotique de la figure 2 est fourni à titre d’exemple non limitatif uniquement d’un système robotique selon un ensemble de modes de réalisation de l’invention. D’autres systèmes robotiques peuvent être utilisées selon l’invention. Par exemple : le bras robotique peut être le bras BR représenté en figure 2, ou tout autre bras robotique envisageable selon un mode de réalisation de l’invention ; l’au moins une unité de calcul peut être située dans un dispositif externe comme représenté en figure 2, ou dans le bras robotique lui-même ; si plusieurs unités de calcul sont utilisées, elles peuvent être situées dans différents dispositifs, qu’il s’agisse du bras robotique lui-même, ou plusieurs dispositifs de calcul externe. Si plusieurs unités de calcul sont utilisées, elles peuvent mettre en œuvre différentes étapes du procédé. Par exemple, une partie des étapes du procédé peut être réalisée au sein du bras robotique lui-même, et une autre partie dans un dispositif de calcul externe.

[0106] Il est maintenant fait référence à la figure 3.

[0107] La figure 3 représente exemple d’un procédé P3 de déplacement d’une charge d’un point initial à un point final par un bras robotique pouvant être par exemple le bras BR.

[0108] Le procédé P3 comprend une première étape S31 de détermination d’une trajectoire du centre de masse de la charge entre le point initial à un temps initial to et le point final à un temps final tF. La trajectoire du centre de masse de la charge possède les caractéristiques suivantes : la vitesse du centre de masse de la charge est nulle au temps to et au temps final tF. Ceci signifie que la charge est déplacée d’un état statique initial à un état statique final, ce qui est par exemple le cas dans l’exemple de la figure 1 , où des objets sont déplacés d’un premier bac à un deuxième bac ; la trajectoire passe par au moins un extremum local d’altitude, la vitesse verticale du centre de masse de la charge étant nulle en chaque extremum local d’altitude. Un extremum local d’altitude peut être un minimum local ou un maximum local. Selon les modes de réalisation, la trajectoire peut comprendre un unique extremum local d’altitude, ou plusieurs extrema successifs. [0109] Ainsi, la trajectoire verticale du centre de masse de la charge comprend plusieurs points de vitesse verticale nulle : le point initial, le point final et chacun des extrema.

[0110] L’étape S31 comprend une première sous-étape S311 de détermination d’un profil temporel d’accélération verticale.

[0111] Le profil temporel comprend, dans chaque intervalle entre le point initial et le point final (cet intervalle comprenant au moins un extremum local d’altitude) une succession ininterrompue d’une phase d’accélération verticale et une phase de décélération verticale.

[0112] Ainsi, pour chacun de ces intervalles entre un premier point et un second point de vitesse verticale nulle, le profil d’accélération vertical comprend une phase d’accélération verticale suivie d’une phase de décélération verticale. Sur un intervalle donné entre un premier point et un deuxième point, le profil d’accélération vertical peut notamment comprendre : une phase d’accélération en montée, suivie d’une phase de décélération en montée, si l’altitude du deuxième point est supérieure à l’altitude du premier point ; une phase de décélération en descente, suivie d’une phase de d’accélération en descente, si l’altitude du deuxième point est inférieure à l’altitude du premier point.

[0113] L’étape S31 comprend une deuxième sous-étape S312 de détermination d’un profil temporel d’accélération horizontale.

[0114] Le profil temporel d’accélération horizontale comprend une succession ininterrompue d’au moins une phase d’accélération horizontale et d’au moins une phase de décélération horizontale entre un quatrième temps t4 supérieur ou égal au temps initial to et un sixième temps te inférieur ou égal au temps final

[0115] Le profil temporel d’accélération horizontale peut ainsi comprendre une ou plusieurs séries successives d’accélération décélération entre le quatrième temps et le sixième temps. La vitesse étant nulle au point initial et au point final, le profil temporel d’accélération horizontale peut également comprendre : une phase d’accélération nulle et de vitesse nulle entre le temps initial to et le quatrième temps t4 ; une phase d’accélération nulle et de vitesse nulle entre le sixième temps te et le temps final t f .

[0116] Une fois les profils d’accélération obtenus, les accélérations peuvent être intégrées pour obtenir les vitesses et positions du centre de masse de la charge. Selon différents modes de réalisation de l’invention, les accélérations peuvent être calculées en premier, puis intégrées pour obtenir les vitesses et positions, ou au contraire les accélérations, vitesses et positions du centre de masse de la charge peuvent être calculées de manière conjointe. [0117] Le procédé P3 comprend ensuite une étape finale S33 d’envoi d’instructions de commande à au moins un effecteur du bras robotique, pour appliquer le profil de trajectoire au centre de masse de la charge.

[0118] Les instructions de commandes peuvent être de différents types, en fonction des entrées possibles du bras robotique. Par exemple, les instructions de commande peuvent être : la trajectoire elle-même ; des positions, longueur et/ou angles des segments de bras robotique ; des instructions de bas niveau envoyées aux actuateurs du robot ; etc.

[0119] Selon différents modes de réalisation de l’invention la trajectoire peut donc être convertie en instructions d’actuateurs du bras robotique, soit par le bras robotique lui-même, soit par un dispositif de calcul externe.

[0120] Le procédé P3 montré en figure 3 est fourni à titre d’exemple non-limitatif uniquement d’un procédé de déplacement d’une charge selon un ensemble de modes de réalisation de l’invention. D’autres procédés sont envisageables selon d’autres modes de réalisation de l’invention. Par exemple, l’ordre des sous-étapes S311 et S312 peut être modifié : l’étape S311 peut être effectuée avant l’étape S312 comme montré en figure 3, ou au contraire après. Les deux sous-étape peuvent également être effectuées en parallèle. Si l’une des deux sous-étapes est effectuée avant l’autre, la sortie de la sous-étape effectuée en premier peut être utilisée comme entrée de la sous-étape effectuée en deuxième.

[0121] Le procédé P3 peut également comprendre, entre les étapes S31 et S33, une étape intermédiaire S32 de détermination d’un profil temporel d’orientation d’un segment terminal du bras robotique permettant de minimiser les efforts tangentiels appliqués à la charge, à partir dudit profil temporel d’accélération verticale, dudit profil temporel d’accélération horizontale, et de l’accélération de pesanteur g. Dans ce cas, les instructions de commande pour appliquer le profil de trajectoire du centre de masse de la charge comprennent le profil temporel d’orientation du segment terminal.

[0122] La détermination d’un profil d’orientation du segment terminal du bras robotique selon l’étape intermédiaire S32 permet à l’orientation du segment terminal de compenser en grande partie les efforts tangentiels induits par la gravité et l’accélération du centre de masse de la charge, ce qui permet de transporter des charges plus lourdes et/ou des trajectoires plus rapides sans que l’effecteur ne lâche la charge.

[0123] L’étape S32 n’est cependant pas nécessairement présente dans un procédé selon l’invention. En effet, d’autres manières d’appliquer une orientation à l’effecteur terminal peuvent être utilisées. Par exemple : le bras robotique ne contrôle pas nécessairement l’orientation de l’effecteur terminal, qui peut être laissée libre, auquel cas l’orientation de l’effecteur terminal s’oriente librement en fonction du mouvement ; dans les cas où le bras robotique contrôle l’orientation de l’effecteur terminal, celle-ci peut être calculée et appliquée en temps-réel par le robot au cours du mouvement ; enfin, dans le cas où le procédé comprend une étape de détermination d’un profil temporel d’orientation du segment terminal, celui-ci peut-être déterminé de différentes manières.

[0124] Le centre de masse de la charge peut être déterminé de plusieurs manières. Par exemple, la charge peut être étudiée par des caméras, afin de modéliser la charge et d’en déterminer le centre géométrique, qui pourra être assimilé au centre de masse.

[0125] Il est maintenant fait référence aux figure 4a et 4b.

[0126] La trajectoire du centre de masse de la charge part d’un point initial de coordonnées xo, zo pour arriver à un point final de coordonnées xt, zt.

[0127] Dans l’exemple représenté aux figure 4a et 4b, la trajectoire est une trajectoire en deux dimensions, et est définie dans un plan vertical. La trajectoire est donc définie selon un axe horizontal x, et un axe vertical z.

[0128] Dans l’exemple des figures 4a et 4b, la trajectoire part d’un bac initial BacO et se termine dans un bac final Bacf. Il s’agit donc d’un exemple de transport d’une charge d’un premier bac à un deuxième bac, comme dans l’exemple de la figure 1 .

[0129] Une trajectoire en 2 dimensions est présentée ici car elle permet d’obtenir une trajectoire plus courte et plus directe entre deux points, et sera plus simple à représenter pour des soucis de lisibilité de la présente divulgation. Cependant, l’invention est bien entendu également applicable à des trajectoires 3D, qui permettent de réaliser des mouvements plus complexes, par exemple pour éviter des obstacles.

[0130] On notera que, de manière générale, les trajectoires seront décrites dans cette divulgation par rapport à des repères orthogonaux. Les lettres x, et z font donc référence respectivement à un axe horizontal et un axe vertical orthogonal à l’axe horizontal x. En cas de trajectoire 3D, une lettre y fera référence à un deuxième axe horizontal, orthogonal aux deux axes x et z.

[0131] La trajectoire Traj4 représente la trajectoire spatiale, selon les axes x et z.

[0132] La trajectoire peut être définie par un ou plusieurs des éléments suivants :

Un profil d’altitude Trajzx4 représenté en figure 4a, représentant l’altitude en fonction de la position horizontale Ce profil montre : o sur l’axe vertical, la position verticale selon l’axe z, en m ; o sur l’axe horizontal, la position horizontale selon l’axe x, en m ; un profil temporel d’accélération verticale Acc z 4 représenté en figure 4b, c’est-à-dire un profil d’accélération verticale en fonction du temps. Ce profil montre : o sur l’axe vertical, l’accélération verticale selon l’axe z, en m.s -2 ; o sur l’axe horizontal, le temps, en s ; un profil temporel d’accélération horizontale Acc x 4 représenté en figure 4b, c’est-à-dire un profil d’accélération horizontale en fonction du temps. Ce profil montre : o sur l’axe vertical, l’accélération horizontale selon l’axe x, en m.s -2 ; o sur l’axe horizontal, le temps, en s ; un profil temporel de vitesse verticale Vit z 4 représenté en figure 4b, c’est-à-dire un profil de vitesse verticale en fonction du temps. Ce profil montre : o sur l’axe vertical, la vitesse verticale selon l’axe z, en m.s -1 ; o sur l’axe horizontal, le temps, en s ; un profil temporel de vitesse horizontale Vit x 4 représenté en figure 4b, c’est-à-dire un profil de vitesse horizontale en fonction du temps. Ce profil montre : o sur l’axe vertical, la vitesse horizontale selon l’axe x, en m.s -1 ; o sur l’axe horizontal, le temps, en s ; un profil temporel de position verticale (altitude) Pos z 4 représenté en figure 4b, c’est-à-dire un profil de position verticale en fonction du temps. Ce profil montre : o sur l’axe vertical, la position verticale, ou altitude, selon l’axe z, en m ; o sur l’axe horizontal, le temps, en s ; un profil temporel de position horizontale Pos x 4 représenté en figure 4b, c’est-à-dire un profil de position horizontale en fonction du temps. Ce profil montre ; o sur l’axe vertical, la position horizontale selon l’axe x, en m ; o sur l’axe horizontal, le temps, en s.

[0133] La trajectoire 4 possède les caractéristiques suivantes : la trajectoire du centre de masse de la charge comprend comme unique extremum local d’altitude un point de coordonnées X2, Z2. Z2 représente donc l’altitude maximale de la trajectoire.

[0134] La trajectoire Traj4 comprend donc une phase de montée du point initial de coordonnées xo, zo au maximum de trajectoire de coordonnées X2, Z2. Cette phase de montée se subdivise en : une phase d’accélération verticale en montée PhAccZmont to temps initial to à un temps ti, au cours de laquelle l’altitude augmente selon une vitesse verticale croissante, jusqu’à atteindre une vitesse maximale Vit z (ti) ; suivie d’une phase de décélération verticale en montée PhDecZmont du temps ti à un temps t2, au cours de laquelle l’altitude augmente selon une vitesse verticale décroissante, jusqu’à attendre une vitesse verticale nulle au point d’altitude Z2.

[0135] La trajectoire Traj4 comprend ensuite une phase de descente du maximum de trajectoire de coordonnées X2, Z2 au point final de coordonnées xt, zt. Cette phase de descente se subdivise en : une phase de décélération verticale en descente PhDecZdec du temps t2 à un temps ta, au cours de laquelle l’altitude diminue selon une vitesse verticale négative décroissante (c’est- à-dire une vitesse verticale négative croissante en valeur absolue), jusqu’à atteindre une vitesse négative de valeur absolue maximale Vitz(ts) ; suivie d’une phase d’accélération verticale en descente PhAccZdec du temps t a au temps final tf, au cours de laquelle l’altitude diminue selon une vitesse verticale négative croissante (c’est-à-dire une vitesse verticale négative décroissante en valeur absolue), jusqu’à attendre une vitesse verticale nulle au point final.

[0136] La trajectoire Traj4 comprend également : une phase d’accélération horizontale PhAccX du temps t4 à un temps ts, au cours de laquelle la charge avance en x selon une vitesse verticale horizontale positive croissante, jusqu’à atteindre une vitesse maximale de valeur absolue maximale Vitx(t5) ; suivie d’une phase de décélération horizontale PhDecX du temps ts au temps te, au cours de laquelle la charge avance en x selon une vitesse verticale horizontale positive croissante, jusqu’à attendre une vitesse horizontale nulle.

[0137] Entre les temps to et t4 d’une part, et te et tf d’une part, la vitesse horizontale est nulle mais pas la vitesse verticale : ces deux intervalles correspondent donc à des phases de montée et descente uniquement, à proximité des points initial et final.

[0138] Dans l’exemple des figures 4a et 4b, chaque phase d’accélération ou de décélération horizontale ou verticale commence par une augmentation en valeur absolue de l’accélération selon un à-coup prédéfini J jusqu’à une accélération de valeur absolue maximale, et se termine par une diminution en valeur absolue de l’accélération selon l’à-coup prédéfini. L’à-coup prédéfini correspond aux « pentes » de variation de l’accélération sur les profils Acc x 4 et Acc z 4. Les valeurs absolues des accélérations maximales sur les différentes phases sont respectivement :

|Az11 pour la phase d’accélération verticale en montée PhAccZmont ;

|Az2| pour la phase de décélération verticale en montée PhDecZmont ;

|Az31 pour la phase de décélération verticale en descente PhDecZdec ;

|Az4| pour la phase d’accélération verticale en descente PhAccZdec ;

|Ax11 pour la phase d’accélération horizontale PhAccX ;

|Ax2| pour la phase de décélération horizontale PhDecX.

[0139] Ceci permet d’avoir des variations progressives d’accélération physiquement réalisables par le robot. L’à-coup prédéfini peut par exemple être défini en fonction de caractéristiques ou contraintes mécaniques du bras robotique.

[0140] Pour l’une au moins des phases, la valeur absolue maximale (|Az11, |Az2|, |Az3|, |Az4|, |Ax11, |Ax2|de l’accélération sur la phase peut être calculée comme le minimum entre : une valeur maximale possible d’accélération Az_max ; et la moitié de la durée de la phase multipliée par ledit à-coup prédéfini.

[0141] La valeur maximale possible d’accélération Az_max est ici une contrainte d’entrée, pouvant être par exemple correspondre à des contraintes mécaniques du robot, ou des contraintes opérationnelles.

[0142] Dans le premier cas, si le minimum est la valeur maximale possible d’accélération Az_max, alors la phase d’accélération et de décélération se caractérisera par une augmentation en valeur absolue de l’accélération selon l’à-coup prédéfini J, une accélération constante, puis une diminution en valeur absolue de l’accélération. C’est par exemple le cas, dans l’exemple de la figure 4a, de la phase PhAccZmont.

[0143] La valeur Az_max peut être définie selon différentes contraintes mécaniques ou opérationnelles, et peut être la même pour toutes les phases, ou au contraire différente selon les différentes phases (horizontale/verticale, accélération/décélération, etc.).

[0144] Dans le second cas, si le minimum est la moitié de la durée de la phase multipliée par ledit à-coup prédéfini, cela signifie en pratique que la durée de la phase est trop courte pour atteindre Az_max. L’accélération aura alors une forme « en triangle » sur la phase, comme par exemple dans le cas de la phase PhDecZdec.

[0145] L’une des caractéristiques de la trajectoire Traj4 est d’avoir des vitesses nulles à l’issue de couples de phases d’accélération et de décélération. Par exemple : la vitesse verticale Vit z 4(to) au début, et la vitesse verticale Vit z 4(t2) à la fin du couple de phases PhAccZmont et PhDecZmont sont toutes les deux nulles ; la vitesse verticale Vit z 4(t2) au début, et la vitesse verticale Vit z 4(tf) à la fin du couple de phases PhAccZmont et PhDecZmont sont toutes les deux nulles ; la vitesse horizontale Vit x 4(t4) au début, et la vitesse horizontale Vitx4(te) à la fin du couple de phases PhAccZmont et PhDecZmont sont toutes les deux nulles.

[0146] Ceci implique que l’intégrale de l’accélération est nulle sur chacun de ces couples de phase, c’est-à-dire que l’intégrale de l’accélération est l’opposé de l’intégrale de la décélération. On pourra par exemple avoir, entre le temps to et le temps t2 pour les phases PhAccZmont et PhDecZmont :

[0147] [Math 1]

[0148] Ce qui implique :

[0149] [Math 2]

|Azl| |Az2|

|j4zl 1 1 t 1 — t 0 = |J4Z21 1 t 2 — ti [0150] De même, pour les couples de phases PhAccZdec et PhDecZdec d’une part, et PhAccX et PhDecX d’autre part, on a :

[0151] [Math 3]

[0152] [Math 4]

[0153] Les temps t4 et te peuvent être définis de différentes manières.

[0154] Par exemple, dans un exemple non représenté aux figures 4a et 4b : le quatrième temps t4 peut être calculé comme un premier temps auquel la valeur absolue de l’accélération perd une valeur maximale sur la première phase d’accélération ou de décélération verticale. Dans l’exemple des figures 4a et 4b, il s’agirait donc du dernier instant auquel l’accélération verticale vaut Azi avant de diminuer ; le sixième temps te peut être calculé comme un premier temps auquel la valeur absolue de l’accélération prend une valeur maximale sur la première phase d’accélération ou de décélération verticale. Dans l’exemple des figures 4a et 4b, il s’agirait donc du dernier temps auquel l’accélération verticale vaut Az avant de diminuer en valeur absolue.

[0155] Ainsi, on aurait dans ce cas, dans l’exemple des figures 4a et 4b :

[0156] [Math 5]

|Azl| t 4 — ti j

[0157] [Math 6]

[0158] Ainsi, cela permet d’éviter d’ajouter une accélération horizontale lorsque l’accélération verticale est forte (Az1 ou Az4), en début de montée ou en fin de descente, et donc de limiter les efforts appliqués à la charge.

[0159] Une fois les temps t4 et te obtenus, le temps te peut être obtenu de différentes manières. Par exemple, il peut être défini comme le temps médian de t4 et te : te = (t + te) / 2.

[0160] La trajectoire représentée aux figures 4a et 4b est cependant fournie à titre d’exemple uniquement, et d’autres trajectoires sont envisageables selon différents modes de réalisation de l’invention. Par exemple : les points de départ et d’arrivée peuvent être différents, et ne sont pas nécessairement situés dans des bacs. Par exemple, ils peuvent se situer sur une table, au sol, etc. la trajectoire peut être une trajectoire 3D, auquel cas le profil d’accélération horizontal est un profil 2D comprenant une composante en y ; la trajectoire peut comprendre plusieurs extrema locaux d’altitude, par exemple avec des phases successives de montée et de descente, auquel cas elle comprendra plus de phase d’accélérations et décélération verticales (une phase d’accélération et une phase de décélération verticale par phase de montée ou de descente) ; la trajectoire peut comprendre plusieurs phases d’accélération et de décélération horizontale ; l’accélération horizontale peut démarrer dès le début de la trajectoire (auquel cas t4 = to) et/ou la décélération horizontale peut se terminer au point final (auquel cas te = tf) ; les valeurs de t4 et te peuvent de manière plus générale prendre des valeurs différentes selon les besoins opérationnels. t4 et te peuvent en particulier prendre des temps liés aux niveau d’accélération verticale ; l’à-coup prédéfini J peut être le même pour toutes les phases d’accélération ou de décélération, comme montré en figure 4b, ou différent selon les phases (par exemple différent pour les phases horizontales ou verticales, pour les phases de montée ou de descente, etc.) ; les phase d’accélération et de décélération peuvent présenter des profils temporels différents de ceux montrés en figure 4b, par exemple avec des à-coups variables sur la phase ; le temps ts peut être défini comme le temps médian de t4 et te, ou d’une autre manière.

[0161] Il est maintenant fait référence à la figure 5.

[0162] La figure 5 représente un second exemple de trajectoire dans un ensemble de modes de réalisation de l’invention.

[0163] La trajectoire représentée en figure 5 est similaire à la trajectoire Traj4 représentée aux figures 4a et 4b, et ne diffère de Traj4 que par le calcul des temps t4 et te.

[0164] Par mesure de lisibilité, la figure 5 représente les éléments suivantes de la trajectoire : un profil d’altitude Trajzx5, représentant l’altitude en fonction de la position horizontale ; un profil temporel d’accélération horizontale Acc x 5 ; un profil temporel de position verticale (altitude) Pos z 5 ; un profil temporel de position horizontale Pos x 5.

[0165] Les conventions adoptées sont les mêmes que dans les figures 4a et 4b.

[0166] Comme dans l’exemple des figures 4a et 4b, la charge est ici déplacée d’un premier bas Baco à un deuxième bac Bact. Le premier bac Bacoet le deuxième bac Bact ont tous les deux une hauteur h_bin. [0167] Dans l’exemple de la figure 5, les temps t4 et te sont alors calculés comme : t4, le temps à partir duquel la phase d’accélération horizontale doit démarrer, pour que le centre de masse de la charge se soit déplacé au maximum d'une première distance horizontale margin_bin du point initial au moment où son altitude est supérieure ou égale à l’altitude du point initial plus la hauteur de bac h_bin (au temps t4’ dans cet exemple),; te, comme le temps jusqu’auquel doit durer la phase de décélération horizontale, pour que le centre de masse de la charge soit au plus à une deuxième distance horizontale margin_pc au moment où son altitude est égale à l’altitude de point final plus hauteur de bac h_pc (au temps t6’ dans cet exemple),.

[0168] Ainsi, le mouvement horizontal n’a lieu que lorsque la charge est en dehors des bacs, ou proche de la sortie des bacs verticalement, comme montré sur le profil d’altitude Trajzx5. Ainsi, la charge peut se déplacer sans risque de collision avec les bacs ou d’autres charges dans les bacs. Dit autrement, les marges margin_pc et margin_bin permettent d’avoir un mouvement limité dans les bacs, pour permettre un petit mouvement tout en évitant une collision avec une autre charge dans un bac.

[0169] Cet exemple est fourni à titre d’exemple illustratif et non limitatif uniquement, et d’autres manières de calculer les valeurs h_bin, margin_bin et margin_pc peuvent être utilisées selon différents modes de réalisation de l’invention. En particulier, les marges margin_bin et margin_pc, et donc les temps t4 et te peuvent être calculés de n’importe quelle manière qui permette d’éviter des obstacles en début et en fin de trajectoire. Par exemple, il est bien possible d’avoir des valeurs nulles pour margin_pc et margin_bin, auquel cas le mouvement horizontal n’a lieu que lorsque la charge est en dehors des bacs. Les valeurs de h_bin peuvent également être différentes pour le bac initial et le bac final, s’ils ont des hauteurs différentes par exemple.

[0170] Il est maintenant fait référence à la figure 6.

[0171] Le procédé P6 est un exemple de procédé selon un ensemble de modes de réalisation de l’invention. Le procédé P6 comprend toutes les étapes du procédé P3, et est caractérisé en ce que l’étape S311 comprend les sous-étapes suivantes. Le procédé P6 permet d’obtenir différents paramètres d’une trajectoire telle que représentée en figures 4 et 5.

[0172] Dans l’exemple de la figure 6, les phases d’accélération comprennent une augmentation en valeur absolue de l’accélération selon un à-coup prédéfini, jusqu’à une accélération de valeur absolue maximale sur la première phase, et une diminution en valeur absolue de l’accélération selon l’à-coup prédéfini J.

[0173] Une première sous-étape S61 consiste à sélectionner les premier temps ti, deuxième temps t2 et troisième temps ts, respectivement parmi un premier intervalle prédéfini [ti_min ; ti_max], un deuxième intervalle prédéfini [t2_min ; t2_max] et un troisième intervalle prédéfini [t3_min ; t3_max],

[0174] Les intervalles prédéfinis [ti_min ; ti_max], [t2_min ; t2_max] et [t3_min ; t3_max] peuvent être obtenus de plusieurs manières. Par exemple, ils peuvent avoir été obtenus expérimentalement pour une trajectoire donnée, ou avoir été obtenus via un calcul simplifié de temps de parcours auquel a été ajoutée une marge.

[0175] La sélection des premier temps ti , deuxième temps t2 et troisième temps ta peut se faire de différentes manières. Par exemple, il peut s’agir d’une sélection aléatoire, ou plusieurs valeurs successives peuvent être sélectionnées au sein des intervalles, afin de trouver la meilleure solution parmi les valeurs de paramètres possibles.

[0176] L’étape S311 comprend ensuite une deuxième sous-étape S62 consistant à déterminer l’accélération de valeur absolue maximale sur la première phase d’accélération verticale Az1 comme le minimum entre une valeur maximale possible d’accélération Az_max, et la moitié de la différence entre le premier temps et le temps initial multipliée par ledit à-coup prédéfini J. Dans un ensemble de modes de réalisation de l’invention, Az1 peut être défini comme le minimum entre les deux valeurs précédemment citées, et une valeur maximale d’accélération Az_max_speed1 permettant de satisfaire une limite de vitesse à l’issue de la première phase d’accélération verticale.

[0177] La valeur Az_max_speed1 est une valeur maximale permettant de limiter la vitesse au premier temps ti, c’est-à-dire à l’issue de la phase PhAccZmont, à une vitesse satisfaisant les limites physiques du bras robotique, par exemple 2000mm. s -1 . Az_max_speed1 dépend ainsi de la durée de la première phase d’accélération verticale PhAccZmont.

[0178] La valeur maximale possible d’accélération Az_max peut par exemple être définie comme l’accélération verticale maximale définie par les limites physiques du robot. On peut par exemple avoir Az_max = 10 m.s -2 .

[0179] L’étape S311 comprend ensuite une troisième sous-étape S63 consistant à déterminer Az2 en fonction de Az1 selon l’équation suivante :

[0180] [Math 7]

[0181] Comme expliqué ci-dessus, ceci permet de s’assurer que la vitesse verticale à l’issue de la phase de décélération en montée PhDecZmont est nulle.

[0182] L’étape S311 comprend ensuite une quatrième sous-étape S64 consistant à déterminer l’accélération de valeur absolue maximale Az3 sur la deuxième phase de décélération verticale PhDecZdec, l’accélération de valeur absolue maximale Az4 sur la deuxième phase de d’accélération verticale PhDecZacc, et du temps final tf permettant d’arriver au point final.

[0183] Dit autrement, à ce stade l’altitude à t2, le temps ta et l’altitude zt au point final sont connus. Il s’agit donc de déterminer Az3, Az4 et tf pour obtenir au temps tf l’altitude Zf, ainsi qu’une vitesse et une accélération nulles.

[0184] Ceci peut être effectué de plusieurs manières. [0185] Par exemple une valeur maximale Az3_max de l’accélération de valeur absolue maximale

Az3 sur la deuxième phase de décélération verticale PhDecZdec comme le minimum entre : la valeur maximale possible d’accélération (Az_max) ; et la moitié de la différence entre le troisième temps et le deuxième temps multipliée par ledit à-coup prédéfini ; une valeur maximale d’accélération Az_max_speed3 permettant de satisfaire une limite de vitesse à l’issue de la deuxième phase de décélération verticale PhDecZdec ;

[0186] La valeur Az_max_speed3 est une valeur maximale permettant de limiter la vitesse au troisième temps t3, c’est-à-dire à l’issue de la phase PhDecZdec, à une vitesse satisfaisant les limites physiques du bras robotique, par exemple 2000mm. s -1 . Az_max_speed3 dépend ainsi de la durée de la phase PhDecZdec.

[0187] Ensuite, on calcule de même une valeur maximale possible Az4_max pour Az4 telle que Az4_max = min(Az_max_force, Az_max, Az4_max_triangle), où Az_max_force est l'accélération verticale maximale telle que la force normale appliquée à l’effecteur reste inférieure à la limite définie, Az4_max_triangle est l'accélération maximale en considérant un profil en triangle entre t3 et tf, et Az_max est l’accélération maximale permise par le bras robotique.

[0188] On peut ensuite calculer une première valeur tf en fonction de Az3 = Az3_max, et Az4 = Az4_max, de manière à ce que l’accélération et la vitesse verticales soient nulles à tf. Ceci permet d’obtenir une première valeur d’altitude finale Zf’ à tf, qui sera très probablement différente de l’altitude finale réelle Zf’.

[0189] Si z > Zf, alors il faut accélérer plus fort et/ou plus longtemps. Comme on a déjà choisi les accélérations maximales, on doit accélérer plus longtemps, or t2 et t3 sont fixés, donc il faut augmenter le temps tf. Az3 peut donc rester fixée à son maximum Az3_max, mais Az4 doit diminuer tant que tf augmente, jusqu’à avoir Zf’ = Zf pour conserver le fait que l’aire sous le profil d'accélération entre t2 et tf est nulle.

[0190] Si z < Zf, alors il faut moins accélérer et/ou moins longtemps. On peut donc diminuer tf, on recalcule la valeur maximale de Az4 correspondant à ce nouveau tf, puis on recalcule Az3 à partir de tf et Az4, pour conserver que l’aire sous le profil d'accélération entre t2 et tf nulle.

[0191] La résolution du problème dans ces deux cas passe donc par la résolution d’une équation dont l'unique variable est tf : Zf’(tf)-Zf = 0

[0192] Le procédé P6 n’est fourni qu’à titre d’exemple non limitatif uniquement d’un procédé selon l’invention. En particulier, le procédé P6 n’est fourni qu’à titre d’illustration d’une manière dont les différents paramètres d’un profil de trajectoire tel que représentés aux figures 4a et 4b peuvent être déterminés pour obtenir une trajectoire valide respectant les contraintes de temps et d’altitude, ainsi que les contraintes mécaniques du bras robotique. D’autres procédés sont possibles. Par exemple : les premier temps ti , deuxième temps t2 et troisième temps ta peuvent être obtenus d’une autre manière que par une sélection dans des intervalles. Par exemple, ils peuvent être obtenus par un calcul simplifié des paramètres de la trajectoire ; les phases d’accélération peuvent ne pas comprendre d’augmentation/diminution des accélérations selon des à-coup prédéfinis, et d’autres manières de calculer les paramètres Az2 et Az4 en fonction de Az1 et Az3 respectivement peuvent être utilisés, pourvu qu’ils permettent d’obtenir une vitesse verticale nulle à l’issue des couples de phases d’accélération et décélération.

[0193] Il est maintenant fait référence à la figure 7.

[0194] Dans le cas de la figure 7, la trajectoire est une trajectoire en 3 dimensions, car un obstacle Obs7 est présent autour du bras robotique Rob7, ce qui empêche un trajet en ligne droite d’un bac initial Baco à un bac final Bact.

[0195] Afin de faciliter la compréhension de la figure, nous n’avons pas représenté ici la composante verticale de la trajectoire : la trajectoire Traj xy 7 représente la composante horizontale de la trajectoire : l’axe X’ représente défini par la direction entre le point initial et le point final, et l’axe Y’ l’axe horizontal orthogonal à cette direction.

[0196] Afin d’éviter l’obstacle, la trajectoire horizontale doit s’écarter d’une distance maximale d_obs de l’axe X’.

[0197] Dans cet exemple, on définit donc, en plus des profils d’accélération et de position selon les axes X et Z déjà évoqués, un profil d’accélération Acc y 7, et un profil de position Pos y 7 selon l’axe Y’.

[0198] Le profil d’accélération est constitué d’une première phase de décélération, et d’une première phase d’accélération, pour s’écarter de la distance d_obs de l’obstacle au temps t_obs, puis d’une deuxième phase de décélération et d’une deuxième phase d’accélération pour retrouver une position nulle selon l’axe Y, et donc revenir dans l’axe de la trajectoire, au point final de la trajectoire.

[0199] Cet exemple est fourni à titre d’exemple illustratif uniquement d’une trajectoire en 3 dimensions comprenant un deuxième dimension horizontale. D’autres trajectoires de ce type sont envisageables. Par exemple, le profil d’accélération pourrait comporter un plus grand nombre de phases d’accélération et de décélération pour éviter un plus grand nombre d’obstacles.

[0200] Il est maintenant fait référence à la figure 8.

[0201] La figure 8 représente un exemple de détermination d’un profil temporel cible d’orientation d’un segment terminal d’un bras robotique dans un ensemble de modes de réalisation de l’invention.

[0202] Dans un ensemble de modes de réalisation de l’invention, où une étape S32 est implémentée, l’étape S32 comprend la détermination d’un profil temporel cible d’orientation du segment terminal permettant d’annuler les efforts tangentiels appliqués à la charge, puis d’un profil temporel d’orientation du segment terminal en fonction du profil temporel cible d’orientation du segment terminal. Un profil temporel d’orientation du segment terminal représente l’évolution de l’angle theta d’orientation du segment terminal dans le plan de la trajectoire, en fonction du temps. Ce profil temporel est représenté à titre d’illustration dans une trajectoire 2D. Dans d’autres modes de réalisation de l’invention, l’orientation du segment terminal peut être représentée par un nombre d’angles plus élevé, par exemple deux angles theta et phi pour si la trajectoire du centre de masse de la charge est représentée en 3D.

[0203] Par exemple, le profil temporel cible d’orientation peut être un profil « idéal » annulant tous les efforts tangentiels mais ne pouvant être physiquement réalisé par le bras robotique, et le profil temporel d’orientation effectivement calculé peut être un profil aussi proche que possible du profil cible, tout en étant physiquement réalisable par le bras robotique.

[0204] Dans l’exemple de la figure 8, la trajectoire est en deux dimensions, et un profil temporel cible d’orientation du segment terminal Ori_tar8 est déterminé à partir : du profil d’accélération horizontal Accx8 ; du profil d’accélération vertical Accz8 ; de la masse m de la charge ; de l’accélération de la pesanteur g.

[0205] Ce profil temporel cible peut être complété par un profil temporel d’orientation maximale du segment terminal Ori_max8, et par un profil temporel d’orientation minimale du segment terminal Ori_min8.

[0206] Il est maintenant fait référence à la figure 9.

[0207] La figure 9 montre un exemple de détermination d’un angle cible, d’un angle maximal et d’un angle minimal d’orientation d’un segment terminal d’un bras robotique dans un ensemble de modes de réalisation de l’invention.

[0208] Dans un ensemble de modes de réalisation de l’invention, le profil cible d’orientation du segment terminal Ori_tar8 peut s’obtenir en calculant, à un ensemble d’instants, un angle d’orientation cible. Cet angle d’orientation cible peut être égal à un angle formé entre le vecteur l’accélération totale appliquée à la charge et l’axe vertical.

[0209] Dans l’exemple de la figure 9, les forces appliquées à la charge, à un instant t sont les suivants, avec m la masse de la charge, g la valeur d’accélération de la pesanteur, Acc x 8(t la valeur d’accélération horizontale à l’instant t dans le profil d’accélération horizontale Acc x 8 , Acc z 8(t) la valeur d’accélération verticale à l’instant t dans le profil d’accélération verticale Acc z 8 :

Force horizontale : o Force générée par la composante horizontale de l’accélération appliquée par le mouvement du bras robotique: -m * Acc x 8(t) ;

Forces verticales :

Force générée par la composante verticale de l’accélération verticale appliquée par le mouvement du bras robotique: -m * Acc z 8(t) ; o Force gravitationnelle : -m * g.

[0210] Dans un ensemble de modes de réalisation de l’invention, l’angle d’orientation cible 0 tar de l’effecteur terminal à un instant t est donc égal à l’angle des forces, ou accélérations, s’exerçant sur la charge et l’axe vertical.

[0211] Le diagramme F_tar9 montre une situation où l’angle de l’effecteur terminal, et donc l’angle d’orientation de la charge, est égal à l’angle cible 9 tar On constate que seule une force normale s’exerce sur la charge dans ce cas, et qu’aucun effort tangentiel ne s’exerce sur la charge. On a dans ce cas :

[0212] [Math 8]

[0213] Dans un ensemble de modes de réalisation de l’invention, le profil maximal d’orientation du segment terminal Ori_max8, et le profil minimal d’orientation du segment terminal Ori_min8 peuvent s’obtenir en calculant, à un ensemble d’instants, un angle d’orientation maximal 0 max (t) et minimal 0 min (t) en ajoutant et respectivement retirant un angle correspondant à une force tangentielle maximale F_tan_max à l’angle cible 0 tar (t).

[0214] Les diagrammes F_min9 et F_max9 montrent respectivement une situation où l’angle de l’effecteur terminal, et donc l’angle d’orientation de la charge, est égal à l’angle minimum 0 min , et une situation où l’angle de l’effecteur terminal, et donc l’angle d’orientation de la charge, est égal à l’angle maximum 0 mnr ,.

[0215] Le vecteur des forces s’appliquant à la charge demeure inchangé, mais, avec les angles 0 min , et 0 max , les forces se répartissent entre : un effort normal F_normal_min ; un effort tangentiel F_tan_max.

[0216] Dit autrement, les angles 0 min , et 0 max sont les angles minimal et maximal pour lesquels l’effort tangentiel appliqué à la charge est égal à F_tan_max.

[0217] Il est donc possible de déterminer les profils Ori_tar8, Ori_max8, et Ori_min8 à partir des profils Accx8 et Acc z 8, en déterminant à chaque instant t les angles 0 tar (t), 9 m m(. ) de manière à ce que tout profil d’orientation réel du segment terminal, et donc de la charge compris entre les profils Ori_max8, et Ori_min8 permettent de s’assurer que l’effort tangentiel appliqué à la charge est inférieur ou égal en valeur absolue à F_tan_max.

[0218] F_tan_max peut être déterminé de différentes manières. Il peut notamment être déterminé comme un effort tangentiel maximal que l’effecteur terminal peut supporter sans lâcher la charge. Le calcul de F_tan_max peut varier selon différents modes de réalisation de l’invention. Par exemple :

Une marge de sécurité peut être appliquée à la force normale théorique que peut supporter l’effecteur terminal ; Si la masse exacte de la charge est inconnue, elle peut être estimée, ou une charge maximale peut être utilisée.

[0219] Il est maintenant fait référence à la figure 10.

[0220] Dans un ensemble de modes de réalisation de l’invention, le procédé comprend une étape de détermination d’un profil d’orientation réel de l’effecteur terminal à partir des profils cible, minimal et maximal d’orientation de l’effecteur terminal.

[0221] En effet, les capacités de variation de l’orientation de l’effecteur terminal peuvent être limitées, de sorte que la vitesse de variation réelle de l’orientation du segment terminal puisse ne pas suivre une vitesse de variation trop rapide de l’orientation dans le profil cible. Ainsi, le profil d’orientation réel du segment terminal peut être déterminé afin d’être aussi proche que possible du profil cible, tout en respectant les capacités mécaniques du bras robotiques, et en étant situé entre les profils minimal et maximal d’orientation.

[0222] Ceci peut être effectué de plusieurs manières. Par exemple :

Un profil d’orientation réel peut être obtenu par optimisation sous contraintes ;

Plusieurs profils candidats peuvent être sélectionnés, avant de sélectionner le meilleur profil candidat ;

- Etc.

[0223] Dans l’exemple de la figure 10, le profil cible est noté Ori_tar10, le profil maximal Ori_max10, et le profil minimal Ori_min10. L’obtention du profil d’orientation réel se fait en plusieurs étapes, chacune représentée par un graphe Ori_10.1 , Ori10.2 et Ori10.3 dans lesquels l’axe horizontal représente le temps en secondes et l’axe vertical l’angle d’orientation du segment terminal en degrés : une première étape, représentée par le graphe Ori10.1 , consiste à générer un ensemble ori_cand10.1 de profils d’orientation candidats, représentés sur le graphe Ori10.1 en plus des profils Ori_tar10, Ori_max10, et Ori_min10. Les profils candidats sont définis de manière à respecter les contraintes mécaniques du bras robotique, et notamment la vitesse de rotation angulaire maximale du segment terminal. Dans cet exemple, les profils sont générés par des formules représentant les orientations réelles générées par le bras robotique et observées en fonction de paramètres de commande, dans cet exemple une amplitude angulaire cible, et deux amplitudes de vitesse, pour les angles négatifs et positifs respectivement ; ; une deuxième étape, représentée par le graphe Ori10.2, consiste à supprimer de l’ensemble ori_cand10.1 les profils candidats ayant, à un moins un temps, une valeurd’angle supérieure à celle du profil Ori_max10 ou inférieure à celle du profil Ori_min10. Ceci permet de supprimer des candidats les profils candidats dont la réalisation entraînerait, à au moins un temps, l’exercice d’une force tangentielle supérieure à F_tan_max sur la charge. Ainsi, tous les profils Ori_cand10.2 retenus à l’issue de cette étrape, et représentés par le graphe Ori_10.2 permettent à la fois de satisfaire les contraintes mécaniques du bras robotique, et d’obtenir à tout instant l’exercice d’une force tangentielle inférieure ou égale à F_tan_max sur la charge ; une troisième étape, représentée par le graphe Ori10.3, consiste à sélectionner le profil d’orientation réel Ori_reel10 à appliquer au segment terminal. Dans l’exemple de la figure 10, le profil Ori_reel10 est sélectionné comme le profil médian parmi les profils Ori_cand10.2 retenus à l’étape précédente. Ceci permet d’obtenir le profil le plus central, et donc potentiellement le plus proche du profil cible permettant à la fois de satisfaire les contraintes mécaniques du bras robotique, et d’obtenir à tout instant l’exercice d’une force tangentielle inférieure ou égale à F_tan_max sur la charge.

[0224] Le profil d’orientation Ori_reel10 pourra donc être appliqué au segment terminal du bras robotique, par exemple par le biais d’actuateurs contrôlant l’orientation du segment terminal.

[0225] Les étapes représentées en figure 10 sont fournies à titre d’exemple uniquement d’étapes de définition d’un profil d’orientation du segment terminal d’un bras robotique selon un ensemble de modes de réalisation de l’invention. D’autres méthodes sont cependant envisageables. Par exemple : les profils peuvent être des profils d’orientation en 2D comme représenté en figure 10, mais également des profils en 3 dimensions ; la génération de profils candidats à l’étape Ori10.1 peut être effectuée selon différentes formules prenant en compte les spécificités de la trajectoire, par exemple le nombre de phases des profils verticaux et horizontaux de la trajectoire, et les temps de changement de phases ; le profil ori_reel sélectionné à l’étape Ori10.3 peut être sélectionné de différentes manières, par exemple cela peut être le profil ayant la distance la plus faible par rapport au profil Ori_tar10 ; etc.

[0226] Il est maintenant fait référence à la figure 11 .

[0227] La figure 11 montre un troisième exemple d’un procédé P11 de déplacement d’une charge selon un ensemble de modes de réalisation de l’invention.

[0228] Le procédé P11 comprend toutes les étapes du procédé P6 discuté en référence à la figure 6. En particulier le procédé P11 est relatif à un exemple de trajectoire en 2D tel que représenté en figure 4a et 4b, dans lequel le calcul des paramètres de la trajectoire démarre par la sélection des trois temps ti, t2 et ta parmi leurs intervalles respectifs à l’étape S61 .

[0229] En particulier, le procédé P6 est basé sur le principe selon lequel les trois temps ti, t2 et ta sont incrémentés parmi un ensemble de temps possibles, jusqu’à obtenir une solution optimale associée à un temps minimal tmin [0230] Le procédé P11 comprend ainsi : l’exécution de l’étape S31 détermination de la trajectoire du centre de masse de la charge, comprenant toutes les sous-étapes définies en figure 6, et démarrant par la sous-étape S61 de sélection des temps ti , t2 et ts. A l’issue de cette étape, la trajectoire obtenue du centre de masse est notamment définie par son temps final tf ; une étape S1101 comparaison du temps tf et d’un temps minimal tmin le temps tmin est le temps le plus court pour lequel une trajectoire réalisable a été générée au cours des itérations précédentes. Lorsque la première trajectoire est étudiée, sa faisabilité doit être étudiée dans tous les cas. A cet effet, on peut par exemple initialiser tmin de manière à ce avoir nécessairement tf < tmin jusqu’à ce qu’une première trajectoire réalisable par le bras robotique soit identifiée.

Si tf < tmin : o l’étape S32 de détermination du profil temporel d’orientation du segment terminal ; o suivi d’une étape S1102 de vérification qu’une variation continue de l’orientation du segment terminal est possible sur la trajectoire ; o si une vérification positive est obtenue à l’étape S1102, c’est-à-dire si une variation l’orientation du segment terminal est possible sur la trajectoire avec tf < tmin, une étape S1103 de sauvegarde des paramètres de la trajectoires (notamment les temps ti, t2 etts qui définissent la trajectoire la plus rapide à ce stade), et d’affectation de la valeur tf à tmin. A ce stade, on connaît donc les paramètres associés à la trajectoire réalisable la plus rapide rencontrée jusqu’ici=, et le temps minimum associé ; en cas de vérification négative à l’une des étapes S1101 et S1102, ou à l’issue de l’étape S1103, c’est-à-dire si tf > tmin, si une variation continue de l’orientation du segment terminal n’est pas possible sur la trajectoire, ou si les paramètre de la trajectoire la plus courte ont été enregistrés et le temps tmin mis à jour : o une étape S1104 d’incrémentation de trois temps ti, t2 et ts, c’est-à-dire de sélection des prochains temps ti, t2 et t3 possibles ; o une étape S1105 de vérification que l’incrémentation est possible ; o en cas de vérification positive à l’étape S1105, c’est-à-dire si l’incrémentation était possible, un retour à l’étape S62 avec les nouveaux temps ti, t2 et t3 ; o en cas de vérification négative à l’étape S1105, c’est-à-dire si tous les temps possibles ont été traités, une étape S1106 de sélection des ti, t2 et t3 associés à la trajectoire optimale, suivie de l’étape S33 d’envoi d’instructions de commandes pour réaliser la trajectoire en vue de l’exécution de la trajectoire. [0231] Le procédé P11 fournit un exemple concret de définition d’une trajectoire optimale. Cependant, le procédé P11 est fourni à titre d’exemple non limitatif uniquement d’un procédé selon un ensemble de modes de réalisation de l’invention. D’autres procédés sont ainsi possibles, notamment, si d’autres paramètres sont utilisés en entrée du calcul de trajectoire, d’autres conditions et boucles de modifications des valeurs de paramètres d’entrée peuvent être utilisées.

[0232] Il est maintenant fait référence aux figures 12a, 12b, 13a, 13b, 14a, 14b, 15a et 15b.

[0233] Les figures 12a, 13a, 14a, et 15a représentent 4 exemples de trajectoires d’une charge dans 4 exemples de modes de réalisation de l’invention, consistant à chaque fois à transporter la charge d’un bac initial Bac0_12, Bac0_13, Bac0_14, Bac0_15 à un bac final Bacf_12, Bacf_13, Bacf_14, Bacf_15 à différentes distances et hauteurs respectivse.

[0234] Pour chaque exemple, les figures correspondantes 12b, 13b, 14b et 15b représentent respectivement : les profils d’accélération verticaux Acc z 12, Acc z 13, Acc z 14 et Acc z 15 ; les profils d’accélération horizontaux Acc x 12, Acc x 13, Acc x 14 et Acc x 15 ; des graphes Ori12.3, Ori13,3, Ori14.3, Ori15.3 montrant : o les profils temporels cibles Ori_tar12, Ori_tar13, Ori_tar14 et Ori_tar15 d’orientation du segment terminal du bras robotique ; o les profils temporels maximaux Ori_max12, Ori_max13, Ori_max14 et Ori_max15 d’orientation du segment terminal du bras robotique ; o les profils temporels minimaux Ori_min12, Ori_min13, Ori_min14 et Ori_min15 d’orientation du segment terminal du bras robotique ; o les profils candidats, sélectionnés comme profils réels d’orientation du segment terminal du bras robotique Ori_reel12, Ori_reel13, Ori_reel14 et Ori_reel15. les profils d’altitude Traj xy 12, Traj xy 13, Traj xy 14, et Traj xy 15 représentant : o les profils d’altitude Traj_ch xy 12, Traj_ch xy 13, Traj_ch xy 14, et Traj_ch xy 15 du centre de masse de la charge; o les profils d’altitude Traj_seg xy 12, Traj_seg xy 13, Traj_seg xy 14, et Traj_seg xy 15 du point initial du segment terminal; o et, à un ensemble de points donnés représentant des instants successifs, des barres représentant l’orientation du segment terminal du bras robotique.

[0235] On observe que les efforts tangentiels sont réduits de plusieurs manières, et notamment : par la forme des profils d’accélérations verticaux et horizontaux du centre de masse de la charge ; par le profil d’orientation suivi par le segment terminal du bras robotique, aussi proche que possible du profil cible. On constate sur les profils de trajectoire que l’orientation du segment terminal tend à suivre autant que possible l’orientation idéale définie par les accélérations horizontale et verticale.

[0236] Ces exemples montrent la capacité de l’invention à générer des trajectoires réalisables par des bras robotiques permettant de limiter les efforts tangentiels s’appliquant aux charges transportées. Ils ne sont cependant fournis qu’à titres d’exemples non limitatifs uniquement de trajectoires calculées dans un ensemble de modes de réalisation de l’invention.

[0237] La présente divulgation ne se limite pas aux exemples de procédé, programme informatique, support d’enregistrement et système robotique décrits ci-avant, seulement à titre d’exemple, mais elle englobe toutes les variantes que pourra envisager l’homme de l’art dans le cadre de la protection recherchée.