FR3139744A1 - Trajectoires optimisees de bras robotiques - Google Patents
Trajectoires optimisees de bras robotiques Download PDFInfo
- Publication number
- FR3139744A1 FR3139744A1 FR2209350A FR2209350A FR3139744A1 FR 3139744 A1 FR3139744 A1 FR 3139744A1 FR 2209350 A FR2209350 A FR 2209350A FR 2209350 A FR2209350 A FR 2209350A FR 3139744 A1 FR3139744 A1 FR 3139744A1
- Authority
- FR
- France
- Prior art keywords
- acceleration
- time
- profile
- phase
- load
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000001133 acceleration Effects 0.000 claims abstract description 280
- 238000000034 method Methods 0.000 claims abstract description 76
- 230000002123 temporal effect Effects 0.000 claims abstract description 66
- 239000012636 effector Substances 0.000 claims abstract description 55
- 238000005304 joining Methods 0.000 claims abstract description 6
- 238000004364 calculation method Methods 0.000 claims description 38
- 230000036461 convulsion Effects 0.000 claims description 30
- 230000007423 decrease Effects 0.000 claims description 13
- 230000005484 gravity Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 2
- 230000001419 dependent effect Effects 0.000 claims 1
- 230000000670 limiting effect Effects 0.000 description 8
- 230000003247 decreasing effect Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 4
- IQVNEKKDSLOHHK-FNCQTZNRSA-N (E,E)-hydramethylnon Chemical compound N1CC(C)(C)CNC1=NN=C(/C=C/C=1C=CC(=CC=1)C(F)(F)F)\C=C\C1=CC=C(C(F)(F)F)C=C1 IQVNEKKDSLOHHK-FNCQTZNRSA-N 0.000 description 2
- 240000008042 Zea mays Species 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/416—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control of velocity, acceleration or deceleration
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40454—Max velocity, acceleration limit for workpiece and arm jerk rate as constraints
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/43—Speed, acceleration, deceleration control ADC
- G05B2219/43045—Max torque, acceleration, then variable, then reverse, variable then max deceleration
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/43—Speed, acceleration, deceleration control ADC
- G05B2219/43062—Maximum acceleration, limit
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Manipulator (AREA)
Abstract
La présente divulgation concerne 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. Figure de l’abrégé : Figure 3
Description
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.
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.
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.
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.
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é.
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.
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.
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.
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.
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.
La présente divulgation vient améliorer la situation.
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.
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.
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 ».
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.
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.
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).
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).
On entend par « phase d’accélération horizontale » une phase au cours de laquelle la valeur absolue de la vitesse horizontale augmente.
On entend par « phase de décélération horizontale » une phase au cours de laquelle la valeur absolue de la vitesse horizontale diminue.
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.
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.
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.
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).
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
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.
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.
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ésigner tout 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.
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 :
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
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.
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 pour toutes 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.
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.
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.
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.
Ceci permet donc d’obtenir un profil d’accélération réalisable par le robot, et respectant des accélérations maximales possibles.
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.
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 (|Az1|, |Az4|, |Ax1|), 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 (t1– t0- , tf– t3- , t5– t4- ) 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– t1- , t3– t2- , t6– t5- ).
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.
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.
On entend par « début du mouvement horizontal » le temps où le centre de masse de la charge commence à s’éloigner du point initial.
On entend par « fin du mouvement horizontal » le temps où le centre de masse de la charge arrive horizontalement au-dessus du point final.
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.
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.
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.
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.
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.
Ceci permet d’obtenir une trajectoire aussi simple que possible, et donc aussi rapide que possible, entre un point initial et un point final.
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.
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.
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.
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.
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.
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.
Ceci permet d’obtenir une trajectoire plus courte, et donc plus rapide entre le point initial et le point final.
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.
Ceci permet d’obtenir des trajectoires complexes en 3D, par exemple pour éviter des obstacles.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 :
Il est maintenant fait référence à la .
La représente exemple de bras robotique BR selon un ensemble de modes de réalisation de l’invention.
Dans l’exemple de la , le bras robotique BR permet de transporter une charge Cha d’un premier bac Bc1à 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.
Le bras robotique BR est fixé au sol par une base fixe BasRob, et comprend trois segments mobiles successifs Seg1, Seg2et Seg3. Les segments mobiles Seg1, Seg2et Seg3ont 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.
Le déplacement relatif des segments permet de déplacer une extrémité terminale Exttdu bras robotique. L’extrémité terminale Exttest dans cet exemple une extrémité mobile du bras située à l’extrémité du dernier segment Seg3en partant de la base, également appelé segment terminal.
Le bras robotique BR comprend, à l’extrémité terminale Exttau moins un effecteur terminal Eff apte à joindre la charge Cha. Dans l’exemple de la , 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.
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 Bc1au deuxième bac Bc2, et plus généralement d’un point initial à un point final à proximité du bras robotique.
Le bras robotique montré à la 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
- 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
- les segments mobiles peuvent avoir une longueur fixe comme représenté en
- 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
Il est maintenant fait référence à la .
La représente un système robotique Sys.
Le système robotique Sys comprend un bras robotique tel que le bras robotique BR.
Le système robotique comprend également au moins une unité de calcul Calc 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 Calc peut être située pour exécuter un procédé selon l’un des modes de réalisation de la présente divulgation.
Dans l’exemple de la , l’au moins une unité de calcul Calc 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.
Le système robotique de la 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
- l’au moins une unité de calcul peut être située dans un dispositif externe comme représenté en
- 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.
Il est maintenant fait référence à la .
La 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.
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 t0et 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 t0et 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
- 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.
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.
L’étape S31 comprend une première sous-étape S311 de détermination d’un profil temporel d’accélération verticale.
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.
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.
L’étape S31 comprend une deuxième sous-étape S312 de détermination d’un profil temporel d’accélération horizontale.
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 t4supérieur ou égal au temps initial t0et un sixième temps t6inférieur ou égal au temps final
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 t0et le quatrième temps t4;
- une phase d’accélération nulle et de vitesse nulle entre le sixième temps t6et le temps final tf.
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.
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.
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.
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.
Le procédé P3 montré en 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 , 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.
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.
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.
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.
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.
Il est maintenant fait référence aux et 4b.
La trajectoire du centre de masse de la charge part d’un point initial de coordonnées x0, z0pour arriver à un point final de coordonnées xf, zf.
Dans l’exemple représenté aux 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.
Dans l’exemple des figures 4a et 4b, la trajectoire part d’un bac initial Bac0 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 .
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.
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.
La trajectoire Traj4 représente la trajectoire spatiale, selon les axes x et z.
La trajectoire peut être définie par un ou plusieurs des éléments suivants :
- Un profil d’altitude Trajzx4 représenté en
- sur l’axe vertical, la position verticale selon l’axe z, en m ;
- sur l’axe horizontal, la position horizontale selon l’axe x, en m ;
- un profil temporel d’accélération verticale Accz4 représenté en
- sur l’axe vertical, l’accélération verticale selon l’axe z, en m.s-2;
- sur l’axe horizontal, le temps, en s ;
- un profil temporel d’accélération horizontale Accx4 représenté en
- sur l’axe vertical, l’accélération horizontale selon l’axe x, en m.s-2;
- sur l’axe horizontal, le temps, en s ;
- un profil temporel de vitesse verticale Vitz4 représenté en
- sur l’axe vertical, la vitesse verticale selon l’axe z, en m.s- 1;
- sur l’axe horizontal, le temps, en s ;
- un profil temporel de vitesse horizontale Vitx4 représenté en
- sur l’axe vertical, la vitesse horizontale selon l’axe x, en m.s- 1;
- sur l’axe horizontal, le temps, en s ;
- un profil temporel de position verticale (altitude) Posz4 représenté en
- sur l’axe vertical, la position verticale, ou altitude, selon l’axe z, en m ;
- sur l’axe horizontal, le temps, en s ;
- un profil temporel de position horizontale Posx4 représenté en
- sur l’axe vertical, la position horizontale selon l’axe x, en m ;
- sur l’axe horizontal, le temps, en s.
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. z2représente donc l’altitude maximale de la trajectoire.
La trajectoire Traj4 comprend donc une phase de montée du point initial de coordonnées x0, z0au 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 t0à un temps t1, au cours de laquelle l’altitude augmente selon une vitesse verticale croissante, jusqu’à atteindre une vitesse maximale Vitz(t1) ;
- suivie d’une phase de décélération verticale en montée PhDecZmont du temps t1à 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 .
La trajectoire Traj4 comprend ensuite une phase de descente du maximum de trajectoire de coordonnées x2, z2au point final de coordonnées xf, zf. Cette phase de descente se subdivise en :
- une phase de décélération verticale en descente PhDecZdec du temps t2à un temps t3, 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(t3) ;
- suivie d’une phase d’accélération verticale en descente PhAccZdec du temps t3au 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.
La trajectoire Traj4 comprend également :
- une phase d’accélération horizontale PhAccX du temps t4à un temps t5, 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 t5au temps t6, au cours de laquelle la charge avance en x selon une vitesse verticale horizontale positive croissante, jusqu’à attendre une vitesse horizontale nulle.
Entre les temps t0et t4d’une part, et t6et tfd’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.
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 Accx4 et Accz4. Les valeurs absolues des accélérations maximales sur les différentes phases sont respectivement :
- |Az1| 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 ;
- |Az3| pour la phase de décélération verticale en descente PhDecZdec ;
- |Az4| pour la phase d’accélération verticale en descente PhAccZdec ;
- |Ax1| pour la phase d’accélération horizontale PhAccX ;
- |Ax2| pour la phase de décélération horizontale PhDecX.
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.
Pour l’une au moins des phases, la valeur absolue maximale (|Az1|, |Az2|, |Az3|, |Az4|, |Ax1|, |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.
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.
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 , de la phase PhAccZmont.
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.).
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.
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 Vitz4(t0) au début, et la vitesse verticale Vitz4(t2) à la fin du couple de phases PhAccZmont et PhDecZmont sont toutes les deux nulles ;
- la vitesse verticale Vitz4(t2) au début, et la vitesse verticale Vitz4(tf) à la fin du couple de phases PhAccZmont et PhDecZmont sont toutes les deux nulles ;
- la vitesse horizontale Vitx4(t4) au début, et la vitesse horizontale Vitx4(t6) à la fin du couple de phases PhAccZmont et PhDecZmont sont toutes les deux nulles.
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 t0et le temps t2pour les phases PhAccZmont et PhDecZmont :
Ce qui implique :
De même, pour les couples de phases PhAccZdec et PhDecZdec d’une part, et PhAccX et PhDecX d’autre part, on a :
Les temps t4et t6peuvent être définis de différentes manières.
Par exemple, dans un exemple non représenté aux figures 4a et 4b :
- le quatrième temps t4peut ê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 Az1avant de diminuer ;
- le sixième temps t6peut ê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 Az4avant de diminuer en valeur absolue.
Ainsi, on aurait dans ce cas, dans l’exemple des figures 4a et 4b :
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.
Une fois les temps t4et t6obtenus, le temps t5peut être obtenu de différentes manières. Par exemple, il peut être défini comme le temps médian de t4et t6: t5= (t4+ t6) / 2.
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= t0) et/ou la décélération horizontale peut se terminer au point final (auquel cas t6= tf) ; les valeurs de t4et t6peuvent de manière plus générale prendre des valeurs différentes selon les besoins opérationnels. t4et t6peuvent 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
- 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
- le temps t5peut être défini comme le temps médian de t4et t6, ou d’une autre manière.
Il est maintenant fait référence à la .
La représente un second exemple de trajectoire dans un ensemble de modes de réalisation de l’invention.
La trajectoire représentée en 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 t4et t6.
Par mesure de lisibilité, la 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 Accx5 ;
- un profil temporel de position verticale (altitude) Posz5 ;
- un profil temporel de position horizontale Posx5.
Les conventions adoptées sont les mêmes que dans les figures 4a et 4b.
Comme dans l’exemple des figures 4a et 4b, la charge est ici déplacée d’un premier bas Bac0à un deuxième bac Bacf. Le premier bac Bac0et le deuxième bac Bacfont tous les deux une hauteur h_bin.
Dans l’exemple de la , les temps t4et t6sont 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),;
- t6, 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),.
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.
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 t4et t6peuvent ê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.
Il est maintenant fait référence à la .
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.
Dans l’exemple de la , 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.
Une première sous-étape S61 consiste à sélectionner les premier temps t1, deuxième temps t2et troisième temps t3, respectivement parmi un premier intervalle prédéfini [t1_min ; t1_max], un deuxième intervalle prédéfini [t2_min ; t2_max] et un troisième intervalle prédéfini [t3_min ; t3_max].
Les intervalles prédéfinis [t1_min ; t1_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.
La sélection des premier temps t1, deuxième temps t2et troisième temps t3peut 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.
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.
La valeur Az_max_speed1 est une valeur maximale permettant de limiter la vitesse au premier temps t1, 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.
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.
L’étape S311 comprend ensuite une troisième sous-étape S63 consistant à déterminer Az2 en fonction de Az1 selon l’équation suivante :
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.
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 tfpermettant d’arriver au point final.
Dit autrement, à ce stade l’altitude à t2, le temps t3et l’altitude zfau point final sont connus. Il s’agit donc de déterminer Az3, Az4 et tfpour obtenir au temps tfl’altitude zf, ainsi qu’une vitesse et une accélération nulles.
Ceci peut être effectué de plusieurs manières.
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 ;
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.
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 t3et tf, et Az_max est l’accélération maximale permise par le bras robotique.
On peut ensuite calculer une première valeur tfen 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’.
Si zf’ > 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 t2et t3sont 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 tfaugmente, jusqu’à avoir zf’ = zfpour conserver le fait que l’aire sous le profil d'accélération entre t2et tfest nulle.
Si zf’ < 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 tfet Az4, pour conserver que l’aire sous le profil d'accélération entre t2et tfnulle.
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
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 t1, deuxième temps t2et troisième temps t3peuvent ê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.
Il est maintenant fait référence à la .
Dans le cas de la , 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 Bac0à un bac final Bacf.
Afin de faciliter la compréhension de la figure, nous n’avons pas représenté ici la composante verticale de la trajectoire : la trajectoire Trajxy7 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.
Afin d’éviter l’obstacle, la trajectoire horizontale doit s’écarter d’une distance maximale d_obs de l’axe X’.
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 Accy7, et un profil de position Posy7 selon l’axe Y’.
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.
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.
Il est maintenant fait référence à la .
La 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.
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.
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.
Dans l’exemple de la , 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.
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.
Il est maintenant fait référence à la .
La 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.
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.
Dans l’exemple de la figure 9, les forces appliquées à la charge, à un instant t sont les suivants, avec la masse de la charge, la valeur d’accélération de la pesanteur, la valeur d’accélération horizontale à l’instant dans le profil d’accélération horizontale , la valeur d’accélération verticale à l’instant dans le profil d’accélération verticale :
- Force horizontale :
- Force générée par la composante horizontale de l’accélération appliquée par le mouvement du bras robotique:
- Force générée par la composante horizontale de l’accélération appliquée par le mouvement du bras robotique:
- 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:
- Force gravitationnelle :
- Force générée par la composante verticale de l’accélération verticale appliquée par le mouvement du bras robotique:
Dans un ensemble de modes de réalisation de l’invention, l’angle d’orientation cible 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.
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 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 :
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 et minimal en ajoutant et respectivement retirant un angle correspondant à une force tangentielle maximale F_tan_max à l’angle cible
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 , et une situation où l’angle de l’effecteur terminal, et donc l’angle d’orientation de la charge, est égal à l’angle maximum ,.
Le vecteur des forces s’appliquant à la charge demeure inchangé, mais, avec les angles , et , les forces se répartissent entre :
- un effort normal F_normal_min ;
- un effort tangentiel F_tan_max.
Dit autrement, les angles , et sont les angles minimal et maximal pour lesquels l’effort tangentiel appliqué à la charge est égal à F_tan_max.
Il est donc possible de déterminer les profils Ori_tar8, Ori_max8, et Ori_min8 à partir des profils Accx8 et Accz8, en déterminant à chaque instant t les angles , et , 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.
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.
Il est maintenant fait référence à la .
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.
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.
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.
Dans l’exemple de la , 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 valeur d’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
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.
Les étapes représentées en 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
- 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.
Il est maintenant fait référence à la .
La 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.
Le procédé P11 comprend toutes les étapes du procédé P6 discuté en référence à la . En particulier le procédé P11 est relatif à un exemple de trajectoire en 2D tel que représenté en et 4b, dans lequel le calcul des paramètres de la trajectoire démarre par la sélection des trois temps t1, t2et t3parmi leurs intervalles respectifs à l’étape S61.
En particulier, le procédé P6 est basé sur le principe selon lequel les trois temps t1, t2et t3sont incrémentés parmi un ensemble de temps possibles, jusqu’à obtenir une solution optimale associée à un temps minimal tmin
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
- une étape S1101 comparaison du temps tfet d’un temps minimal tminle temps tminest 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 tminde manière à ce avoir nécessairement tf< tminjusqu’à ce qu’une première trajectoire réalisable par le bras robotique soit identifiée.
- si tf< tmin:
- l’étape S32 de détermination du profil temporel d’orientation du segment terminal ;
- suivi d’une étape S1102 de vérification qu’une variation continue de l’orientation du segment terminal est possible sur la trajectoire ;
- 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 t1, t2et t3qui 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 tminmis à jour :
- une étape S1104 d’incrémentation de trois temps t1, t2et t3 ,c’est-à-dire de sélection des prochains temps t1, t2et t3possibles ;
- une étape S1105 de vérification que l’incrémentation est possible ;
- 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 t1, t2et t3;
- 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 t1, t2et t3associé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.
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.
Il est maintenant fait référence aux figures 12a, 12b, 13a, 13b, 14a, 14b, 15a et 15b.
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.
Pour chaque exemple, les figures correspondantes 12b, 13b, 14b et 15b représentent respectivement :
- les profils d’accélération verticaux Accz12, Accz13, Accz14 et Accz15 ;
- les profils d’accélération horizontaux Accx12, Accx13, Accx14 et Accx15 ;
- des graphes Ori12.3, Ori13,3, Ori14.3, Ori15.3 montrant :
- les profils temporels cibles Ori_tar12, Ori_tar13, Ori_tar14 et Ori_tar15 d’orientation du segment terminal du bras robotique ;
- les profils temporels maximaux Ori_max12, Ori_max13, Ori_max14 et Ori_max15 d’orientation du segment terminal du bras robotique ;
- les profils temporels minimaux Ori_min12, Ori_min13, Ori_min14 et Ori_min15 d’orientation du segment terminal du bras robotique ;
- 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 Trajxy12, Trajxy13, Trajxy14, et Trajxy15 représentant :
- les profils d’altitude Traj_chxy12, Traj_chxy13, Traj_chxy14, et Traj_chxy15 du centre de masse de la charge;
- les profils d’altitude Traj_segxy12, Traj_segxy13, Traj_segxy14, et Traj_segxy15 du point initial du segment terminal;
- et, à un ensemble de points donnés représentant des instants successifs, des barres représentant l’orientation du segment terminal du bras robotique.
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.
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.
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.
Claims (20)
- Procédé (P3, P6) de déplacement d’une charge (Cha) d’un point initial (x0, z0) à un point final (xf, zf) par un bras robotique (BR) comprenant une pluralité de segments, et, à l’extrémité terminale (Extt) de ladite pluralité de segments (Seg1, Seg2, Seg3), 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 (t0) et une vitesse nulle et le point final à un temps final (tF) 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:
- 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
- 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 (t0) et un sixième temps (t6) 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.
- la détermination (S31) d’une trajectoire du centre de masse de la charge entre le point initial à un temps initial (t0) et une vitesse nulle et le point final à un temps final (tF) 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:
- 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|, |Az2|, |Az3|, |Az4|, |Ax1|, |Ax2|), et se termine par une diminution en valeur absolue de l’accélération selon l’à-coup prédéfini.
- 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.
- 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.
- 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|, |Ax1|), 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 (t1– t0-
- 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– t1-
- l’accélération de valeur absolue maximale sur la phase successive d’accélération (|Az1|, |Az4|, |Ax1|), 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 (t1– t0-
- 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 (t6) 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).
- 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 perd une valeur maximale (Az1) sur la première phase d’accélération ou de décélération verticale ;
- un calcul du sixième temps (t6) 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.
- 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 (t1), 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 (t3) et une deuxième phase d’accélération jusqu’au temps final (tF) ; 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 (t0) à un cinquième temps (t5), puis une phase de décélération horizontale du cinquième temps à un sixième temps (t6) inférieur ou égal au temps final.
- 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 :
- 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 ;
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Système robotique (Sys) apte à déplacer une charge (Cha) d’un point initial (x1, z1) à un point final (x3, z3) comprenant :
- au moins un bras robotique (BR) comprenant une pluralité de segments, et, à l’extrémité terminale de ladite pluralité de segments (Seg1, Seg2, Seg3), au moins un effecteur terminal (Eff) apte à joindre la charge ;
- au moins une unité de calcul (Calc) configuré pour exécuter le procédé selon l’une des revendications 1 à 16.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2209350A FR3139744A1 (fr) | 2022-09-16 | 2022-09-16 | Trajectoires optimisees de bras robotiques |
PCT/EP2023/075058 WO2024056687A1 (fr) | 2022-09-16 | 2023-09-12 | Trajectoires optimisees de bras robotiques |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2209350 | 2022-09-16 | ||
FR2209350A FR3139744A1 (fr) | 2022-09-16 | 2022-09-16 | Trajectoires optimisees de bras robotiques |
Publications (1)
Publication Number | Publication Date |
---|---|
FR3139744A1 true FR3139744A1 (fr) | 2024-03-22 |
Family
ID=84569294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR2209350A Pending FR3139744A1 (fr) | 2022-09-16 | 2022-09-16 | Trajectoires optimisees de bras robotiques |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR3139744A1 (fr) |
WO (1) | WO2024056687A1 (fr) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040265110A1 (en) * | 2002-05-28 | 2004-12-30 | Bernd Schnoor | Method and apparatus for moving a handling system |
-
2022
- 2022-09-16 FR FR2209350A patent/FR3139744A1/fr active Pending
-
2023
- 2023-09-12 WO PCT/EP2023/075058 patent/WO2024056687A1/fr unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040265110A1 (en) * | 2002-05-28 | 2004-12-30 | Bernd Schnoor | Method and apparatus for moving a handling system |
Non-Patent Citations (3)
Title |
---|
"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 * |
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 <URL:https://www.researchgate.net/profile/Nadir-Bendali-2/publication/324227804_On-line_trajectory_planning_of_time-jerk_optimal_for_robotic_arms/links/5ac6af5fa6fdcc8bfc7f7d8c/On-line-trajectory-planning-of-time-jerk-optimal-for-robotic-arms.pdf> [retrieved on 20230330] * |
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 * |
Also Published As
Publication number | Publication date |
---|---|
WO2024056687A1 (fr) | 2024-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3305710B1 (fr) | Procédé de commande de grue anti-ballant à filtre du troisième ordre | |
FR2915588A1 (fr) | Procede et systeme de navigation permettant de faire naviguer un moyen de transport de produits, leurs applications ainsi qu'un programme informatique et un support de stockage de donnees | |
WO2017089623A1 (fr) | Procédé et dispositif pour le pilotage d'un robot en co-activité | |
EP3448589B1 (fr) | Procédé et dispositif d'orientation d'un fruit ombiliqué notamment en vue de son emballage | |
WO2015185764A1 (fr) | Dispositif d'aide au parking et vehicule equipe d'un tel dispositif | |
EP3472075A1 (fr) | Procede et dispositif d'egrainage de colis a debit regule | |
EP3152593B1 (fr) | Dispositif de detection a plans croises d'un obstacle et procede de detection mettant en oeuvre un tel dispositif | |
WO2006131664A1 (fr) | Dispositif de reglage automatique des asservissements d'un simulateur mecanique de mouvements et dispositif associe | |
CN109843752A (zh) | 集成式障碍物检测和有效负载定心传感器系统 | |
EP3519306A1 (fr) | Procede de chargemement automatise d'une caisse avec des objets au moyen d'un robot prehenseur | |
WO2018042131A1 (fr) | Véhicule autonome compliant et procédé de commande associé | |
FR3139744A1 (fr) | Trajectoires optimisees de bras robotiques | |
FR3097852A1 (fr) | Système de déplacement modulaire tridimensionnel d'éléments standard au sein d'une structure tridimensionnelle de type maillage | |
EP2766251B1 (fr) | Procédé de contrôle d'un robot possédant au moins deux jambes | |
JPWO2020071296A1 (ja) | 制御装置、制御方法及びプログラム | |
FR2653219A1 (fr) | Detecteur et procede de detection de verticalite, et base de maintien d'attitude d'un appareil. | |
EP3928292A1 (fr) | Procede et dispositif de surveillance de l'environnement d'un robot | |
EP3383597A1 (fr) | Procede et installation permettant de constituer un lot de pieces a partir de pieces situees dans des zones de stockage differentes | |
EP0611211B1 (fr) | Système de contrôle et de commande de la vitesse de déplacement d'une charge pendulaire et appareil de levage comprenant un tel système | |
FR3073769A1 (fr) | Robot de parking et son procede de gestion | |
EP3776471B1 (fr) | Procédé pour la localisation d'une cible à partir d'un contour elliptique | |
FR3025025A1 (fr) | Procede de determination de la posture relative d'un engin mobile par rapport a un ouvrage d'art et engin mobile adapte | |
FR3124963A1 (fr) | Robot parallèle à cables muni de cables doublÉs et installation comprenant un tel robot parallèle À cables | |
FR3140786A3 (fr) | Procédé d’optimisation d’une trajectoire d’un robot multiaxe pour presse d’injection | |
EP3050830A1 (fr) | Procede de transfert de colis et dispositif correspondant |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
TP | Transmission of property |
Owner name: EXOTEC PRODUCT FRANCE, FR Effective date: 20240506 |
|
PLFP | Fee payment |
Year of fee payment: 3 |