FR 2503010 A1 19821008 FR 8205756 A 19820402 250301 G D'une manière générale, avec les bras de robot à course commandée par ordinateur, la course du point com- mandé associé à l'extrémité du bras de robot, c'est-à-dire le centre de l'outil, est déterminée durant le mode de fonctionnement en enseignement ou en programmation. En mode d'enseignement, un certain nombre de points prédéter- minés sont définis et mémorisés et, pendant le mode de fonctionnement automatique, la commande du robot génère une course prédéterminée entre les points programmés. Une fois que cette course programmée est définie, elle est fixée et ne peut être modifée pendant le fonctionnement en mode automatique. Cependant, il existe de nombreuses situa- tions dans lesquelles le processus réel exige que la rela- tion entre le bras de robot et la pièce diffère de celle qui a été enseignée. Par exemple, dans une application au soudage continu, la position réelle de la soudure diffère d'une pièce à l'autre, et la course programmée ne convient pas à la commande du centre de l'outil le long de la soudure lorsqu'on utilise le même programme pour souder un certain nombre de pièces. Par conséquent, il est nécessaire que la course programmée puisse être modifiée pendant le mode de fonctionnement automatique, c'est-à-dire qu'il faut que'la relation entre le centre de l'outil et la pièce soit réglée de façon dynamique entre les points prédéterminés. Bien que de nombreuses techniques puissent être mises en oeuvre pour résoudre ce problème, deux variantes seront décrites. Dans un premier procédé, l'opérateur peut dis- poser d'un levier de commande pouvant exécuter des mouve- ments vers l'avant, vers l'arrière, vers la gauche et vers la droite et représentant des déviations orientées respec- tivement vers le haut, vers le bas, vers la gauche et vers la droite par rapport à la course programmée. En mode de fonctionnement automatique, l'opérateur observe la rela- tion entre le centre de l'outil et la soudure et il déplace le levier de commande pour indiquer les dévia- tions auxquelles il faut procéder à partir de la course programmée pour maintenir le centre de l'outil en posi- tion convenable par rapport à la soudure. Le mouvement du levier de commande actionne des contacts qui sont connec- tés à la commande du robot. Cette commande détecte les signaux d'entrée des contacts et exécute une modification de course appropriée. Dans un autre procédé, un dispositif suiyant la soudure peut être fixé à l'extrémité du bras de robot qui suit la course programmée. Lorsque ce dispositif détecte des écarts de la soudure par rapport à la course program- mée, il actionne des contacts qui indiquent à la commande du robot la direction de l'écart ou déviation. La commande modifie alors la course en fonction des écarts détectés. Il existe d'autres applications dans lesquelles il peut être souhaitable de modifier les positions relatives du centre de l'outil et de la pièce par rapport à la disposi- tion programmée. Par exemple, il peut être demandé au robot de suivre le contour d'un bord d'une pièce lors d'une opéra- tion d'ébarbage. ou d'élimination de bavures. Dans ces cas, le contour du bord peut varier d'une pièce à l'autre. L'invention a donc pour objet un appareil au moyen duquel un opérateur peut modifier le mouvement d'un centre d'outil associé à un élément fonctionnel d'un bras de robot en mode de fonctionnement automatique. L'inven- tion a pour autre objet d'effectuer des changements de mouvement à partir d'une course prédéterminée, entre deux points programmés, durant un mode de fonctionnement auto- matique. L'invention a également pour objet d'effectuer des changements de mouvement à partir d'une course prédé- terminée en réponse à des signaux de déviation ou d'écart, produits automatiquement par un appareil associé de traite- ment d'une pièce durant un mode de fonctionnement automa- tique. L'invention a également pour objet la génération de courses décalées par rapport à des courses prédéterminées, en réponse à des signaux de déviation produits manuelle- ment ou automatiquement. L'invention concerne donc un appareil destiné à commander un bras de robot et à modifier le mouvement d'un centre d'outil à partir d'une course prédéterminée, entre deux points prédéterminés et programmés. Les points prédéterminés sont définis par des signaux d'entrée mémo- risés qui définissent deux positions et une vitesse de course entre ces positions par rapport à un système de coordonnées rectangulaires. Le bras de robot comprend une base et un bras supérieur dont une extrémité est reliée mécaniquement à la base et est mobile par rapport à cette dernière autour de deux axes perpendiculaires de rotation. Un bras inférieur comporte une extrémité associée au centre de l'outil et une autre extrémité qui est articulée sur l'autre extrémité du bras supérieur par un troisième axe de rotation. Plusieurs actionneurs sont associés à chacun des axes de rotation et ces derniers et les bras supérieur et inférieur forment un système de coordonnées générali- sées, indépendant du système de coordonnées rectangulaires. D'autres moyens sont prévus pour produire un signal de déviation en réponse à la détection de déviations souhai- tées de la position du centre de l'outil. Les signaux de déviation ordonnent un changement de la position du centre de l'outil par rapport à la course prédéterminée. Une com- mande de robot, comportant des moyens destinés à mémoriser les signaux d'entrée et un circuit de servomécanisme con- necté aux actionneurs pour déplacer le centre de l'outil suivant la course prédéterminée, entre les deux points prédéterminés, exécute un processus de commande. Tout d'abord, en réponse aux signaux d'entrée, la commande génère un groupe de signaux intermédiaires représentant des valeurs intermédiaires de coordonnées par rapport au sys- tème de coordonnées rectangulaires d'un point intermédiai- re le long de la course prédéterminée. Le jeu de signaux intermédiaires est modifié en réponse au signal de dévia- tion afin que l'on obtienne un jeu modifié de signaux intermédiaires représentant un point décalé qui est espacé de la course prédéterminée. Ensuite, la commande génère, en réponse aux signaux intermédiaires modifiés, un groupe de signaux individuels de commande représentant des valeurs de coordonnées généralisées par rapport au système de coor- données généralisées du point décalé. Les signaux indivi- duels de commande sont appliqués au circuit du servoméca- nisme pour mettre en action les actionneurs d'une manière coordonnée afin de déplacer le centre de l'outil vers le point décalé. Le processus de commande se répète afin de faire passer le centre de l'outil par une série de points décalés, espacés de la course prédéterminée. L'invention sera décrite plus en détail en regard des dessins annexés à titre d'exemples nullement limitatifs et sur lesquels: la figure 1 est une élévation d'ensemble, avec arrachement partiel, d'un bras de robot, cette vue montrant la disposition du bras par rapport à un dispositif. de oom- mande de robot; *.. la figure 2 est un schéma synoptique détaillé d'un dispositif de commande de robot destiné à commander le fonctionnement du bras de robot, cette vue montrant le milieu général dans lequel l'invention est utilisée; la figure 3 est un graphique montrant la rela- tion entre les points décalés et la course prédéterminée entre deux points prédéterminés et programmés; 25. la figure 4 est un organigramme du procédé général de commande du bras de robot; les figures 5a, 5b, 5c et 5d représentent un organigramme détaillé d'un programme utilisant l'appareil selon l'invention pour la génération de points décalés de la course prédéterminée; les figures 6a, 6b, 6c et 6d représentent un organigramme détaillé d'un programme illustrant les étapes spécifiques de processus pour déterminer des points décalés selon une première variante de l'invention; 35. les figures 7a et 7b sont des graphiques illustrant une rotation d'une pièce par rapport à la posi- tion prévue et les modifications de course correspondantes; la figure 8 est un graphique montrant les relations géométriques de points le long de la course prédéterminée et programmée et de la course prédéterminée et modifiée conformément à une seconde variante de l'in- vention; et les figures 9a, 9b, 9c, 9d et 9e représentent un organigramme détaillé d'un programme destiné à l'exécu- tion de la seconde variante. La figure 1 représente la configuration générale d'un bras de robot disponible dans le commerce et elle représente également, sous une forme simplifiée, une com- mande associée à ce bras de robot. L'expression "bras de robot" utilisée dans le présent mémoire englobe tout appa- reil auquel l'invention peut être appliquée. Le bras de robot représenté 10 comprend exclusi- vement des axes de mouvement rotatif. Une embase 12 comporte un actionneur 14 qui est relié par un accouplement 16 à un plateau 18 monté de manière à pouvoir tourner. Un action- neur 20, fixé rigidement au plateau 18, détermine un deuxième axe de rotation. Un bras supérieur 22 est relié à un élément de travail de l'actionneur 20. Un actionneur 24, fixé au bras supérieur 22, commande la rotation d'un élément de bras inférieur 26 autour de l'élément de bras supérieur 22. Les actionneurs 14, 20 et 24 ont la possibi- lité de déplacer le centre de l'outil en tout point de l'espace situé à la portée de l'outil. Un poignet 27, constitué d'actionneurs tournants 28, 30 et 32, est relié à un élé- ment fonctionnel 34. Il convient de noter que la nature exacte des actionneurs n'est pas importante dans l'appa- reil décrit. Des procédés antérieurs de commande d'action- neurs, que ces derniers soient électriques, hydrauliques, pneumatiques, etc., peuvent être appliqués. La course prédéterminée est définie par le mouvement du bras de robot déplaçant le centre de l'outil de l'élément fonctionnel à travers l'espace en réponse à un programme. La position exacte du centre de l'outil dépend de l'outillage constituant l'élément fonctionnel. Par exemple, le centre de l'outil peut être le point de contact de doigts de serrage, par exemple le point 76, un point situé à l'extrémité d'un outil de coupe, le point auquel des têtes de soudage par points se rencontrent, un point situé au centre du cône de pulvérisation d'un pistolet de pulvérisation, le foyer d'une tête à tracer optique, etc. Il convient de noter que l'élément fonction- nel 34 comporte un petit actionneur (non représenté) des- tiné à exécuter la fonction souhaitée, par exemple une action de serrage. A titre d'exemple, la figure 1 représente l'élé- ment fonctionnel 34 sous la forme d'un bec 47 de soudage à l'arc équipé d'un mécanisme 43 d'avance du fil de soudage et d'un capteur 49 suivant la soudure et associé à un émetteur 51. Comme décrit plus en détail ci-après, l'infor- mation provenant du capteur 49 et transmise par l'émet- teur 51 à la commande 35 du robot est utilisée ou peut être utilisée pour adapter le mouvement du centre de l'outil aux variations par rapport à la course prévue. La commande 35 du robot comprend une unité 36 à console qui constitue une liaison de communication avec le bras de robot. La console permet diverses fonc- tions de commande générales et elle comporte des dispo- sitifs d'entrée destinés à la génération de signaux d'entrée permettant un cycle prédéterminé de fonctionne- ment. L'unité à console comprend des commandes qui permet- tent de programmer ou d'enseigner un cycle de fonctionne- ment au bras de robot. Une commande 38 utilise des program- mes et des signaux d'entrée pour générer une course pré- déterminée et elle transmet des signaux de commande à un circuit 42 de commande de servomécanisme. Le circuit 42 commande les actionneurs du bras de robot afin de dépla- cer le centre de l'outil de l'élément fonctionnel suivant la course prédéterminée. Le bras de robot et la commande décrits dans le présent mémoire correspondent à l'ensemble à robot industriel et commande du type "T3" commercialisé par la firme Cincinnati Milacron Inc. En outre, le fonctionne- ment détaillé du bras de robot dans son mode de commande automatique est décrit dans le brevet des Etats-Unis d'Amérique n0 3 909 600/ et un procédé et un appareil pou- vant être utilisés pour enseigner un programme au bras de robot sont décrits dans le brevet des Etats-Unis d'Améri- que n0 3 920 972. La figure 2 est un schéma synoptique détaillé illustrant les éléments fondamentaux de la commande de robot disponible dans le commerce et mentionnée précédem- ment. Un calculateur programmé 40 comprend un circuit 41 de mémorisation, un circuit 44 d'interface d'entrée et de sortie et un circuit central 46 de traitement. Ces trois éléments principaux sont interconnectés par un bus interne 48. Des signaux de commande sont transmis au calculateur et en sortent au moyen d'un bus externe 50 qui est connecté à un certain nombre de périphériques. Tout d'abord, un dispositif 52 d'enseignement en bout de cable est un outil de programmation à distance utilisé par l'opérateur pour déplacer l'extrémité du bras de robot vers un certain nombre de positions souhaitées pendant le processus d'en- seignement. Ensuite, une commande 54 d'entrée/sortie défi- nit un certain nombre de signaux divers de machine-outil nécessaires au fonctionnement du bras de robot. Le bloc 58 de transmission de données extérieures en direct repré- sente un dispositif permettant l'introduction de données dans l'ordinateur 40 à partir d'une mémoire extérieure de données, en temps réel, c'est-à-dire pendant que le bras de robot exécute un cycle de fonctionnement. Une unité 60 de mémorisation de données autonome permet l'introduction de programmes dans l'ordinateur au moyen d'appareils tels qu'un lecteur de bandes perforées, un lecteur de cassettes, etc. Un tube cathodique 62 et un clavier 64 constituent des moyens grâce auxquels le bras de robot et sa commande peuvent transmettre des messages à l'opérateur et en recevoir de ce dernier. L'unité 66 d'entraînement d'axes reçoit périodiquement des blocs de données de l'ordinateur. Chaque bloc de données représente les amplitudes incrémen- tielles des mouvements des actionneurs du bras de robot au cours de chaque intervalle périodique. En outre, l'ampli- tude des mouvements sur chaque période fixe établit évi- demment une définition de la vitesse souhaitée du bras de robot. L'unité 66 d'entraînement d'axes reçoit les données sous forme numérique et exécute une conversion numérique/analogique pour transmettre un signal analogique à un dispositif 68 à servoamplificateur et compensation d'axes. Les signaux analogiques compensés sont alors uti- lisés comme entrée pour un actionneur 70 qui entraîne l'élément 71 de robot auquel il est relié mécaniquement. Un dispositif 72 de réaction est relié mécaniquement à l'actionneur et produit un signal de réaction qui repré- sente le mouvement réel de l'élément mené du bras de robot. Il convient de noter que, bien qu'il existe plusieurs configurations pour la commande de la boucle du servomé- canisme associé à chaque élément du bras de robot, dans la forme préférée de réalisation, l'unité 66 d'entraîne- ment d'axes, le servoamplificateur 68, l'actionneur 70 et l'élément 72 de réaction sont utilisés en nombres égaux à celui des axes commandés sur le bras de robot. La mémoire 41 située à l'intérieur de l'ordina- teur 40 est constituée de deux éléments de base. Le pre- mier élément est une mémoire 74 de données qui mémorise toutes les informations numériques, et la partie restante de la mémoire est définie comme étant le système d'exécu- tion du bras de robot. Le système d'exécution peut être caractérisé comme étant un programme de commande qui défi- nit comment les données doivent être générées et utilisées pendant le fonctionnement du bras de robot. La première section du système d'exécution est une section 76 d'entrée/sortie. Les programmes d'entrée/ sortie comprennent un programme 78 d'entrée/sortie de données, un programme 80 d'entrée/sortie pour le disposi- tif d'enseignement en bout de cable, un programme 82 d'entrée/sortie pour le tube cathodique et le clavier, un programme 84 d'entrée/sortie de commande, un programme 85 d'entrée/sortie pour l'unité d'entraînement d'axes, un programme 86 de transmission de données extérieures et un programme 88 d'entrée/sortie pour l'utilisateur. Il convient de noter qu'il existe un programme d'entrée/ sortie correspondant à chaque type différent de périphéri- ques en interface avec le système de commande. Chaque pro- gramme d'entrée/sortie réagit uniquement aux données pro- duites par chaque dispositif périphérique et il peut effec- tivement commander le flot de signaux provenant des disposi- tifs périphériques pour l'introduire dans l'ordinateur et le faire sortir de l'ordinateur. Le système d'exécution contient également un programme 90 de commande de mode qui exerce une action prépondérante sur l'ensemble du système d'exécution. Le programme 90 de commande de mode fait commuter la com- mande de l'ordinateur entre les divers modes de fonctionne- ment, par exemple manuel, en enseignement, automatique, etc. Cependant, étant donné que seul le mode automatique est nécessaire dans le cas de l'appareil selon l'invention, seul ce mode sera décrit en détail. Le système 92 à mode d'enseignement comporte un programme 96 d'addition de don- nées et un programme 98 de fonctions d'opération d'ensei- gnement. Ces deux programmes commandent le fonctionnement du bras de robot en mode d'enseignement et les particula- rités de ces programmes sont décrites dans le brevet des Etats-Unis d'Anmérique n0 3 920 972, ou bien sont dispo- nibles auprès de la firme Cincinnati Milacron Inc. Le système 94 à mode automatique est constitué d'un pro- gramme 102 de prise en charge de données, d'un programme 104 de calcul de course, d'un programme 106 de transfor- mation, d'un programme 108 destiné à l'unité d'entrai- nement d'axes, d'un programme 110 de commande de fonc- tion et d'un programme 111 de service périphérique. Les détails de ces programmes sont décrits précisement dans le brevet n0 3 909 600 précité ou peuvent être obtenus auprès de la firme Cincinnati Milacron Inc. Le système 94 à mode automatique contient égale- ment un programme 112 de modification de course qui fait l'objet de la présente invention. Comme décrit précédem- ment, on utilise un appareil fixé à l'extrémité du bras de robot ou bien un dispositif placé à distance et commandé par l'opérateur pour générer des signaux de déviation ordonnant une déviation ou un écart souhaité à partir d'une course prédéterminée. Les contacts 116 à 122 repré- sentent des déviations vers le haut, vers le bas, vers la gauche ou vers la droite, respectivement, à partir de la course programmée. Les contacts 115 et 113 représentent des ordres de repositionnement qui provoquent le retour du centre de l'outil sur la course prédéterminée. Ces contacts sont représentatifs des signaux de sortie d'un appareil destiné à ordonner un changement vers la course prédéter- minée. Les fermetures de ces contacts produisent des signaux de-déviation qui sont appliqués comme signaux d'entrée à l'unité 56 d'entrée/sortie de l'utilisateur. La figure 3 illustre la relation entre les points décalés et la course prédéterminée et les points programmés. Les axes X, Y et Z définissent un système 124 de coordonnées rectangulaires dans lequel le plan X-Y est horizontal et Z est vertical. P0 et P1 sont des points programmés situés dans le plan X-Y et définis pendant le processus d'enseignement. Des signaux d'entrée représen- tant des valeurs en coordonnées rectangulaires des points programmés P0 et P1, dans le système 124 de coordonnées rectangulaires, sont mémorisés afin d'être utilisés par la commande du robot. Pendant le mode de fonctionnement automatique, la commande du robot produit un groupe de signaux intermédiaires représentant: des valeurs en coordon- nées rectangulaires de points intermédiaires Pkl indiqués typiquement en 126, qui sont définis par la cadence de répétition des signaux de commande du circuit d'entraine- ment et la vitesse programmée. Les points intermédiaires ont des coordonnées de la forme générale (Xk, ykl Zk). Comme décrit plus en détail ci-après, la forme préférée de réalisation de l'invention ne permet pas une modifica- tion du décalage à partir de tous les points intermé- diaires, mais, par contre, des incréments de décalage peu- vent être effectués en des points intermédiaires qui appa- raissent à intervalles entiers à partir d'un premier point intermédiaire modifiable. Les points intermédiaires situés dans ces intervalles sont modifiés par le décalage accu- mulé net. Les points intermédiaires modifiables sont dési- gnés en Pk+cq sur la figure 3 et les points décalés résul- tant de la modification des coordonnées de ces points sont désignés en OP. En provoquant un déplacement du centre de p, l'outil vers chacun des points intermédiaires, la commande effectue un mouvement sur une course prédéterminée de P0 à P1, illustrée par une ligne droite 128 contenue dans le plan X-Y et formant un angle e avec l'axe X. La course suivie en passant par les points décalés est représentée en traits pointillés. Lorsque le centre de l'outil se déplace le long de la course 128 et que l'on souhaite déplacer le centre de l'outil dans le plan X-Y, suivant une perpendiculaire, vers la gauche, à la course, on ferme le contact 120 afin de produire un signal de déviation. La commande du robot pro- duit alors un signal de décalage incrémentiel horizontal correspondait à 131, qui est utilisé pour produire des signaux de composantes de coordonnées représentant des composantes de coordonnées 130 et 132 du décalage incré- mentiel, ces composantes étant respectivement parallèles aux axes X et Y. Les composantes de coordonnées sont uti- lisées pour modifier les valeurs des coordonnées du point 134, désigné Pk' de sorte que l'on obtient un groupe modi- fié de signaux intermédiaires qui provoquent un déplacement du centre de l'outil vers le point décalé 0P1. D'autres décalages vers la gauche ou vers la droite sont effectués de la même manière par addition ou soustraction des déca- lages incrémentiels 131 le long des perpendiculaires partant des points intermédiaires modifiables. En utilisant le décalage calculé pour déplacer le centre de l'outil vers OP1, les points intermédiaires 126 qui suivent immrediate- ment et pour lesquels la commande ne permet pas d'autres modifications par décalages incrémentiels 131, suivront la course indiquée par le trait pointillé sur la figure 3. Si l'on souhaite déplacer l'outil vers la droite des points décalés, le contact droit 122 est fermé, ou bien l'opéra- teur peut fermer le contact 115 de repositionnement. Dans tous les cas, le décalage incrémentiel suivant aura pour effet de modifierles données de coordonnées associées au point intermédiaire Pk+ lq* Etant donné que, si aucun autre décalage n'est souhaité, les coordonnées du point Pk+lq devraient être modifiées par les incréments de déca- lage précédents qui ont pour effet de modifier les points intermédiaires à partir de Pk, il faudra soit un reposi- tionnement du décalage, soit un décalage vers la droite dans les coordonnées du point intermédiaire ramené vers les coordonnées d'origine pour le point le long de la course 128. De façon analogue, si l'on souhaite décaler verticalement le centre de l'outil, on ferme les contacts 116 ou 118. Si le contact 116 est fermé, le point intermé- diaire modifiable suivant, à savoir le point Pk+2q, sera * modifié par un décalage incrémentiel vertical 136 provo- quant un nouveau déplacement du centre de l'outil le long de la course en trait pointillé jusqu'au point décalé OP4. Le point intermédiaire modifiable suivant est Pk+3q? Si on souhaite un retour à la course programmée, ce retour peut être effectué par fermeture du contact 118 ou du con- tact 115 de repositionnement. Dans tous les cas, le centre de l'outil suit la course indiquée par le trait pointillé, de OP6 jusqu'à Pk+3q- La figure 4 est un organigramme définissant les étapes de processus nécessaires à l'exécution du mode de fonctionnement automatique. La case 140 de processus rappelle de la mémoire les valeurs des coordonnées rectan- gulaires des deux points programmés et la vitesse de course prédéterminée. L'étape 142 du processus calcule les nombres de direction. Chaque nombre de direction possède un sens représentant la direction du mouvement et une amplitude proportionnelle à une composante de coordonnées rectangu- laires de la course entre les points programmés. L'étape 144 de processus calcule les paramètres de distance le long de la course entre les points programmés. L'étape 146 de processus calcule le changement de distance le long de la course lors de chaque répétition des signaux de com- mande du circuit d'entraînement. Ensuite, un groupe de signaux intermédiaires représentant les valeurs de coor- données rectangulaires définissant un point intermédiaire pour chaque changement de distance est généré par l'étape 148 de processus. Ceci est effectué au moyen des nombres de direction. Par conséquent, le calcul des valeurs de coordonnées d'un point intermédiaire le long de la course au cours de chaque répétition exige les opérations exécu- tées par les étapes-deprocessus 142, 144, 146 et 148. L'étape 152 du processus modifie les valeurs de coordon- nées, pour le point intermédiaire, d'incréments prédé- terminés en fonction des fermetures des contacts pouvant exister par suite de déviations souhaitées à partir de la course prédéterminée. Ensuite, l'étape 150 du processus génère les signaux individuels de commande représentant les valeurs des coordonnées généralisées correspondant aux valeurs de coordonnées modifiées calculées dans l'étape 152. Les détailsde l'étape 150 du processus sont donnés dans le brevet n0 3 909 600 précité. Par conséquent, les détails de cette étape 150 ne seront pas décrits dans le présent mémoire. Enfin, l'étape 154 du processus calcule les changements des valeurs de coordonnées généralisées du point présent jusqu'au point intermédiaire et mémorise ce groupe de valeurs de coordonnées généralisées différen- tielles dans une mémoire tampon en attendant une interrup- tion provenant du circuit 42 d'entraînement du servoméca- nisme. Un certain nombre de groupes de valeurs de coordon- nées généralisées différentielles peuvent être placés les uns à la suite des autres, ensemble, dans la mémoire tampon. Ainsi qu'il apparaît aisément à l'homne de l'art, le processus décrit jusqu'à présent fonctionne de façon asynchrone avec le circuit 42 d'entraînement du servoméca- nisme. Le circuit 42 fonctionne sur un système d'échantil- lonnage à base de temps fixe; en d'autres termes, à inter- valles de temps fixes et prédéterminés, le servomécanisme demande une nouvelle information à l'ordinateur. En faisant travailler le servomécanisme à une cadence d'échantillon- nage fixe, l'ordinateur bénéficie de plusieurs avantages. Par exemple, en connaissant la longueur de la coursepro- grammée, la vitesse de la course programmée et la longueur fixe d'un intervalle d'échantillonnage, l'ordinateur est capable, dans l'étape 144 de processus, de calculer le nombre de répétitions nécessaires à l'exécution de la course programmée. Par conséquent, en disposant de cette information, l'ordinateur peut ensuite calculer le change- ment de distance le long de la course programmée au cours de chaque répétition ou itération. En outre, ainsi qu'il apparaîtra à l'homme de l'art, l'utilisation d'une cadence temporelle fixe d'échantillonnage permet à l'ordinateur d'exécuter de nombreuses autres fonctions en plus de la génération de la course prédéterminée. Etant donné que l'ordinateur est sensiblement plus rapide que les disposi- tifs périphériques auxquels il est relié, un arriéré d'in- formations à produire par cet ordinateur est généré. En conséquence, un système d'interruptions ayant chacune une priorité particulière est utilisé. La fonction du programme de servo-interruption défini dans le bloc 156 est de transférer des données à partir de la mémoire tampon en réponse à une interruption provenant du circuit 42 d'entraînement du servomécanisme. L'interruption peut apparaître à tout moment du processus. Lorsque l'interruption se produit, la commande du processus est transférée du programme principal au programme 156 de servo-interruption. Dans le programme 156 de servo- interruption ou d'interruption asservie, la case 158 de processus transfère l'un des groupes, en file d'attente, de valeurs de coordonnées généralisées différentielles de la mémoire tampon au circuit 42 d'entraînement du servo- mécanisme. Ensuite, une étape 160 de décision vérifie si la course entre les deux points programmés est complète. Si la course est incomplète, le programme de servo- interruption ramène la commande du processus au programme principal, au point o l'interruption s'est produite, et le processus se poursuit. Si la course est complète, l'étape 164 de processus exécute une fonction prédéterminée, après quoi le processus revient à l'étape 140 pour commencer la course programmée suivante. La durée pendant laquelle les signaux de coor- données généralisées sont mémorisés dans le tampon peut s'étendre sur un intervalle de plusieurs répétitions ou itérations de la génération de points intermédiaires. Par conséquent, si un changement des coordonnées générali- sées est mémorisé pendant quatre répétitions, il faut cette période de temps avant que le centre de l'outil réagisse réellement aux valeurs de coordonnées rectangu- laires générées pour un point intermédiaire. Cette tempo- risation dans la mémoire tampon est nuisible au fonction- nement de l'appareil utilisé pour détecter une déviation souhaitée. Par exemple, si cet appareil détecte une dévia- tion souhaitée et ordonne que le point intermédiaire soit déplacé hors de la course prédéterminée, l'ordre sera reconnu et un nouveau point intermédiaire modifié sera déterminé. Cependant, pendant la période au cours de laquelle les changements des valeurs de coordonnées généra- lisées représentant ce point intermédiaire sont mémorisés dans la mémoire tampon, le dispositif de détection conti- nue à détecter le fait que le centre de l'outil doit être écarté de la course prédéterminée, et il continue à pro- duire des ordres pour établir un point intermédiaire modifié. A l'expiration de la durée de mémorisation en mémoire tampon, le centre de l'outil commence réellement à s'écarter de la course prédéterminée. Ce processus se poursuit jusqu'à ce que le centre de l'outil arrive dans la position décalée souhaitée. A ce moment, le dispositif de détection cesse de produire des ordres pour modifier la position du point intermédiaire. Si le processus de modification du point intermédiaire accumulait des incré- ments de décalage pour chaque calcul de point intermédiaire aussi longtemps que le dispositif de détection détecterait -un écart souhaité, les points intermédiaires modifiés refléteraient alors un décalage croissant. Si ce décalage était effectivement exécuté, le dispositif de détection pourrait détecter une déviation opposée souhaitée. Par conséquent, l'effet sera que le centre de l'outil conti- nuera à osciller ou à se déplacer de part et d'autre de la position réelle souhaitée comme déterminé par le dispo- sitif de détection. Pour résoudre le problème décrit ci-dessus, il est nécessaire que le processus destiné à modifier les décalages accumulés se produise une seule fois pendant la période de temps au cours de laquelle le groupe de valeurs de coordonnées généralisées différentielles est mémorisé dans la mémoire tampon. De cette manière, lorsque le dis- positif de détection ordonne un changement de position du centre de l'outil, il se produit une modification qui est exécutée par la machine avant qu'une autre modifica- tion soit effectuée. Il en résulte la course décalée par étapes associée aux points intermédiaires modifiables décrits en regard de la figure 3. Les figures 5a, 5b, 5c et 5d représentent un organigramme détaillé du processus décrit en regard de la figure 4. La transcription de l'organigramme des figures a à 5d en un programme codé pour ordinateur peut être aisément effectuée par un spécialiste de la programmation, au moyen d'un langage compatible avec un ordinateur de commande à usage général. Lorsque l'on examine la figure 5a et qu'on la compare à l'organigramme de la figure 4, on découvre que la majorité des opérations montrées peuvent être classées sous l'étape de processus consistant à calculer des paramètres de distance et indiquée dans la case 146 de la figure 4. Ceci est dé au problème de la détermination de l'amplitude des intervalles de change- ment de vitesse. En général, une course comprise entre deux points prédéterminés peut être divisée en trois interval- les séparés. Un premier intervalle peut nécessiter une accélération ou un ralentissement suivant la vitesse d'entrée dans l'intervalle et la vitesse de la course pro- grammée. Un deuxième intervalle peut être constitué d'une phase à vitesse constante, et un troisième intervalle peut exister si un ralentissement est nécessaire. Par conséquent, en examinant les vitesses aux points extrêmes de la course programmée, l'ordinateur peut déterminer s'il faut deux ou trois intervalles dépendant de la vitesse. Une fois que cette détermination est réalisée, un autre problème se pose. Si les vitesses demandées et les changements possi- bles de vitesse sont connus, on peut calculer la longueur de chaque intervalle dépendant de la vitesse. Cependant, il peut exister une situation dans laquelle la somme des intervalles idéaux dépendant de la vitesse dépasse la lon- gueur de la course entre les points extrêmes programmés. Ces cas particuliers doivent être détectés et traités individuellement. Par conséquent, le calcul des paramètres de distance dans tous les cas possibles constitue un pro- blème important. Il existe un autre problème dans le temps de traitement demandé pour l'exécution des solutions néces- saires. Sur la figure 5a, l'étape 166 de processus rappelle les valeurs de coordonnées (XQY0'Z0) définissant la position du point actuel ou du premier point programmé P. les valeurs de coordonnées (XlYl,,Z1) du point suivant ou du deuxième point programmé P1 et la vitesse de course programmée (V) entre ces points. L'étape 168 du processus calcule la longueur (S) de la course prédéterminée. Après que les nombres de direction (U1,U21U3) ont été déterminés dans l'étape 170 de processus, l'étape 172 calcule la longueur de l'intervalle de changement de vitesse initial (S1) en utilisant la vitesse initiale (V.i), la vitesse programmée (V) et un taux d'accélération (a) préalablement défini. La case 174 de processus est destinée à déterminer si la vitesse au point P1 est nulle ou non. En d'autres termes, existe-t-il un arrêt entre l'exécution des courses programmées successives, ou bien les courses programmées successives sont-elles exécutées de manière continue? Si la vitesse finale est nulle, le processus vérifie si la vitesse initiale est nulle au moyen de la case 176 de décision. Si la vitesse initiale et la vitesse finale sont toutes deux nulles, la casel78 d'opération règle la longueur de l'intervalle (S3) de changement de vitesse final à une valeur égale à celle de la longueur de l'in- tervalle de changement de vitesse initial (S 1) calculé dans la case 172 de processus. Si la vitesse finale est nulle, mais la vitesse initiale est non nulle, la case de processus calcule la longueur de l'intervalle de changement de vitesse final en utilisant la vitesse pro- grammée (V) et le taux d'accélération (a). A ce moment, la case de décision 182 effectue une vérification pour déterminer si la somme des intervalles de changement de vitesse calculée jusqu'à présent est inférieure à la lon- gueur de la course programmée. Si la somme des longueurs des intervalles de changement de vitesse est inférieure à la longueur de la course programmée, le processus se pour- suit par l'organigramme de la figure 5b en passant par B2. Il convient de noter, à ce stade, que la longueur de l'in- tervalle de vitesse constante est égale à la différence entre la longueur de la course totale et la longueur de la somme des intervalles de changement de vitesse initial et final. Connaissant les longueurs des intervalles cons- tituant la course programmée et la base de temps fixe du système d'échantillonnage, il est à présent possible de calculer le nombre de répétitions ou d'itérations néces- saires à l'exécution de chacun des intervalles. Ces calculs sont effectués par les cases de processus 184, 186 et 188. 250301 0 Les cases suivantes 192 et 194 sont destinées à calculer des constantes qui sont utilisées par la suite dans le processus. En revenant à la case de décision 174 de la figure 5a, la détermination d'une vitesse finale non nulle signifie que la course se poursuit en continu entre les intervalles programmés successifs. Si l'on considère la dynamique du robot lui-même, ceci peut être physiquement possible ou impossible suivant le changement de direction ou l'angle formé entre les courses successives. On a choisi arbitrairement un angle (y) de 120 entre les courses suc- cessives comme valeur de référence dans la case 196 de décision. Si l'angle (y) entre les courses successives est supérieur à 1200, les courses successives sont exécutées sur une base continue. Cependant, si.l'angle (y) est infé- rieur à 1200, le processus introduit automatiquement un point d'arrêt, et les courses successives sont exécutées de façon discontinue. La loi des cosinus est utilisée pour déterminer si l'angle est supérieur ou inférieur à 1200. Ceci exige l'utilisation des longueurs de la course pré- déterminée présente (S) et de la course prédéterminée suivante (Sn). Le carré de la distance (ST) du premier point programmé P0 au point extrême P2 de la course pro- grammée suivante, lorsque l'angle formé entre les deux courses est de 120 , est déterminé, d'après la loi des cosinus, comme étant de: S2 = S 2 + S2 + S(S T(120 n n Le carré de la distance comprise entre le pre- mier point programmé et le point extrême P2 peut également être calculé sans tenir compte de l'angle, connaissant les coordonnées (X01Y1oZ0) du premier point programmé P0 et les coordonnées (X2,Y21Z2) du point extrême P2, d'après la relation suivante: S T =- (X-X)2 + (Y2-Y)2 + (Z2-Zo)2 Par conséquent, on peut en conclure que l'angle (y> est supérieur à 1200 lorsque: S2> S2 T T(120) La case suivante 198 de décision détermine si la longueur de l'intervalle de changement de vitesse initial est inférieure à la longueur de la course programmée. Si (S1) n'est pas inférieur à la course programmée, la case desprocessus donne arbitrairement à la longueur de l'in- tervalle de changement de vitesse initial une valeur égale à la moitié de la longueur de la course programmée. En outre, dans la case 300 de processus, une nouvelle valeur de la vitesse V est calculée. Il convient de noter, à ce stade, que si des courses programmées successives doivent être exécutées en continu, par définition, il n'existe pas d'intervalle de changement de vitesse final (S3). En outre, par définition, le nombre de répétitions nécessaires à l'exécution de l'intervalle de changement de vitesse final est égal à zéro. Si la longueur de l'intervalle de change- ment de vitesse initial est inférieure à la course program- mée, le nombre de répétitions nécessaires à l'exécution de l'intervalle de changement de vitesse initial est calculé dans la case d'opération 302. Le processus se poursuit par Cl avec l'organigramme de la figure 5c. Dans les cases 304, 306 et 308 de processus, on calcule des constantes qui sont uti- lisées par la suite dans le processus et qui ne seront donc pas décrites pour l'instant. En revenant à la figure 5a, l'importance du cal- cul des paramètres de distance apparatt aisément à l'homme de l'art. Un cas particulier n'a pas été décrit en détail. Ce cas apparaît à la case 182 de décision o la somme des longueurs des intervalles de changement de vitesse initial et final n'est pas inférieure à la longueur de la course totale. Dans ce cas, il convient de se référer à l'organi- gramme de la figure 5b en passant par BI. Des cases 310 à 330 définissent un autre cas particulier dont la solution est semblable à celle des autres cas particuliers décrits précédemment en détail. Par conséquent, le processus suivi à ce stade ne sera pas de nouveau décrit en détail. On peut se reporter aux indications accompagnant cet orga- nigramme. Il suffit de noter que dans la case 316, on calcule l'intervalle de changement de vitesse final (S3), que dans la case 318 on calcule le nombre de répétitions m2 pour S2, que dans la case 320 on calcule le nombre de répétitions m3 pour S3f et que dans la case 328 on cal- cule la valeur m3. Après exécution, cette partie du processus se poursuit par la case 190, en passant par B. Le processus se poursuit ensuite, par C2, par l'organigramme de la figure 5c. De même que précédemment, les cases 332 à 338 de processus définissent des constantes qui seront utili- sées par la suite dans le processus. Le processus se poursuit à la figure 5d. L'étape de décision détermine si l'intervalle de changement de vitesse initial est fini. Si tel n'est pas le cas, la case 197 de processus déclenche la première itération ou répéti- tion. En général, le changement de distance le long de la course pendant une itération en cours est égal au change- ment de distance le long de la course pendant l'itération précédente, augmenté d'une certaine constante calculée précédemment. Le calcul du changement de distance pendant la première itération pose un problème. Il existe un cas particulier qui est traité conformément à l'étape de pro- cessus 199. La longueur du changement de distance le long de la course pendant la première itération est égale à une constante particulière qui a été calculée précédemment. Après l'exécution de la première itération, toutes les ité- rations successives se produisant pendant le premier inter- valle sont déterminées par l'étape de processus 201 jusqu'à ce que le nombre d'itérations (K) soit égal au nombre d'ité- rations (m1) calculé pour l'intervalle de changement de vitesse initial (S1). Selon l'étape de processus 202, les valeurs de coordonnées rectangulaires (XkIYkZk) définis- sant les points intermédiaires sont calculées pour chaque changement de distance le long de la course, c'est-à-dire pour chaque itération. L'étape de processus 203 exécute un processus modifiant les valeurs des coordonnées rectan- gulaires. On a conçu deux schémas prédéterminés de modifi- cation de course qui diffèrent dans l'action à entrepren- dre à la fin d'une course prédéterminée. Les figures 6a à 6d, qui seront décrites par la suite, montrent un premier schéma dans lequel le centre de l'outil est ramené sur la course prédéterminée avant d'atteindre le point programmé suivant Pl. Les figures 9a à 9e, qui seront décrites plus en détail par la suite, donnent un second schéma différent du précédent et dans lequel le centre de l'outil est amené à un point suivant modifié P1d éloigné de la course prédé- terminée. Une fois que les coordonnées du point intermé- diaire ont été modifiées par l'un ou l'autre de ces sché- mas, l'exécution du processus se poursuit par la case 204 de la figure 5d. L'étape 204 du processus transforme ces valeurs de coordonnées rectangulaires en valeurs de coordonnées généralisées correspondantes qui sont représentées par des signaux individuels de commande définissant la position absolue du point intermédiaire par rapport au système de coordonnées généralisées. L'étape 206 du processus calcule les changements affectant les valeurs des coordonnées géné- ralisées et nécessaires pour déplacer le centre de l'outil de sa position actuelle jusqu'au point intermédiaire, et ce groupe de changements des valeurs des coordonnées géné- ralisées est placé en file d'attente dans la mémoire tampon afin d'attendre une interruption provenant du circuit 42 d'entraînement du servomécanisme. Le programme de servo- interruption a été décrit en regard de la figure 4 et il est inutile de le décrire davantage à ce stade. Lorsque le nombre d'itérations (K) est égal au nombre d'itérations m1 calculé pour l'intervalle de change- ment de vitesse initial (S1), le processus passe à la case de décision 208 qui détermine si l'intervalle de vitesse constante S2 est fini. Si l'intervalle de vitesse 2503010- constante n'est pas fini, le processus exécute les étapes 210, 212 et 214 pour calculer les valeurs de coordonnées rectangulaires du point intermédiaire suivant. Ensuite, l'étape 216 du processus peut modifier ces valeurs de coordonnées pour éloigner le centre de l'outil de la course prédéterminée. Après modification des coordonnées, les coordon- nées du point intermédiaire telles que modifiées sont trans- formées par l'étape 218 afin d'être mises sous la forme de coordonnées généralisées. L'étape 220 calcule ensuite les changements apportés aux coordonnées généralisées et elle mémorise ces incréments dans la mémoire tampon. Lorsque le nombre d'itérations (K) est égal a la valeur K2 représentant le nombre total d'itérations des deux premiers intervalles, le processus se poursuit jusqu'à l'étape 222 de décision. Cette étape est la première étape de la branche de cet organigramme traitant de l'exécution de l'intervalle (S3) de ralentissement. Comme c'était le cas pour les deux intervalles précédents, les étapes 221 à 230 calculent les coordonnées rectangulaires de points intermédiaires le long de la course prédéterminée, modi- fient ces coordonnées comme nécessaire-., les mettent sous la forme de coordonnées généralisées et calculent et mémo- risent les incréments de coordonnées généralisées. Une première variante du processus sera décrite en détail en regard des figures 6a à 6d. Comme représenté sur la figure 6a, une étape 240 de décision, qui suit une étape 240' de modification des valeurs des coordonnées, détermine si une fonction de repositionnement a été deman- dée. La fonction de repositionnement peut être déclenchée par l'opérateur ou par une autre étape du processus et elle a pour effet de ramener le centre de l'outil sur la course prédéterminée. Si la fonction de repositionnement n'est pas déclenchée, l'étape 244 de processus vérifie si l'indicateur de repositionnement est en place. Si tel n'est pas le cas, l'étape 246 du processus vérifie si l'intervalle de changement de vitesse initial est fini. Si cet intervalle n'est pas fini, le processus revient immédiatement à l'étape 204 de la figure 5d. Ainsi, une modification de la course prédéterminée n'est pas permise pendant l'intervalle de changement de vitesse initial. En pratique, la longueur de cet intervalle est relative- ment faible, par exemple environ 2,5 mm et, par conséquent, tous changements se produisant dans cet intervalle sont relativement sans effet. En conséquence, l'étape 203 de processus n'a aucun effet sur les valeurs des coordonnées rectangulaires du point intermédiaire, déterminées par l'étape 202 du processus. Etant donné que cette première variante du processus exige que le centre de l'outil soit toujours amené sur la course prédéterminée avant d'attein- dre le second point programmé, il apparaît qu'un mouvement suivant toute course prédéterminée est déclenché au pre- mier point programmé. Par conséquent, il est inutile d'appeler un repositionnement au commencement de la course prédéterminée. Cependant, si un tel repositionnement a été demandé, le processus, comme décrit plus en détail ci- après, résulterait dans des valeurs de modification du zéro pour la première itération de l'intervalle d'accéléra- tion (S1) et ferait suivre effectivement au centre de l'ou- til une course non modifiée jusqu'à l'exécution d'une modi- fication de course non nulle. Par conséquent, même dans le cas o, pendant l'exécution de l'étape 244, il a été déter- miné que l'indicateur de repositionnement est en place, cette variante du processus n'entraîne pas, néanmoins, une modification des points intermédiaires pendant le premier intervalle (S1). Les étapes de processus 248 à 254 déterminent la relation de l'itération en cours par rapport au nombre total d'itérations dans l'intervalle de vitesse constante. Lorsque l'itération en cours est à moins de -cinq itérations de la fin de l'intervalle de vitesse constante, l'étape 248 de décision oblige le centre de l'outil à revenir sur la course programmée en renvoyant le processus à l'étape 242. Si l'on suppose pour le moment que tel n'est pas le il cas, les étapes 250 à 254 sont utilisées pour contrôler si l'itération en cours est une itération pour laquelle une modification incrémentielle du décalage est permise ou non, comme cela a été décrit en regard des figures 3 et 4. Pendant la première itération du processus de la figure 6a, un compteur préalablement affecté (compteur de file d'attente d'itération) ou une position de mémcire préalablement affectée ont une valeur zéro, et l'étape 250 du processus fait descendre cette valeur au-dessous de zéro. L'étape 252 du processus détecte une valeur infé- rieure à zéro et fait passer le processus à l'étape 254 qui renvoie un nombre prédéterminé dans le compteur. Comme décrit précédemment, le nombre prédéterminé représente le nombre d'itérations correspondant à la période de temps au cours de laquelle le changement de valeurs de coordonnées généralisées est en file d'attente dans la mémoire tampon. On suppose, pour cet exemple, que les valeurs des coordon- nées généralisées différentielles sont en file d'attente pour trois itérations et que, par conséquent, le nombre introduit dans le compteur d'attente d'itération par l'étape 254 de processus est égal à 3. Au cours de la pre- mière itération de ce processus, les contacts 116 à 122 sont testés et, si cela est demandé, une modification du point intermédiaire est effectuée. L'étape 218 du processus de la figure 5d transforme les valeurs des coordonnées rectangulaires du point intermédiaire modifié en valeurs de coordonnées généralisées, et l'étape 220 du processus calcule le changement apporté aux coordonnées généralisées et place ces changements en attente dans la mémoire tampon. Au cours de l'itération suivante, le processus passe par les étapes montrées sur la figure 6a et l'étape 250 de processus provoque une décrémentation du compteur d'attente d'itération afin de laisser ce compteur à la valeur 2. L'étape 252 du processus détecte que le compteur d'attente d'itération ne contient pas une valeur inférieure à zéro, et il fait passer le processus à la case 280 de la figure 6d. Cette étape du processus a pour effet de modifier les valeurs de coordonnées rectangulaires du point intermé- diaire par les valeurs décalées déterminées pendant la dernière itération, et ces valeurs modifiées sont trans- formées et mémorisées. Ce processus se répète de lui-même pour les deux itérations suivantes, après lesquelles les changements de coordonnées généralisées, placés en attente, sont transmis au bras de robot et le centre de l'outil est déplacé réellement vers le point intermédiaire modifié. En outre, les valeurs de coordonnées généralisées diffé- rentielles qui sont actuellement en attente sont soumises aux mêmes modifications. Le dispositif de détection peut contrôler l'effet de son ordre initial et il modifie les états des contacts 116 à 122 en conséquence. Au cours de la-cinquième itération du processus, l'étape 250 de décré- mentation de la file d'attente d'itération fait passer le compteur d'attente à une valeur inférieure à zéro et, après que l'étape 252 de processus a provoqué le reposi- tionnement du compteur d'attente d'itération par l'inter- médiaire de l'étape 254, une autre modification peut être exécutée. Lesecond schéma de la présente demande utilise avec précision le même procédé de commande des points intermédiaires à modifier. Le processus passe ensuite à la figure 6b o l'étape 256 teste l'état du contact gauche 120 montré sur la figure 2. Si le contact 120 est fermé, l'étape 258 du pro- cessus établit une nouvelle valeur pour le signal de déca- lage horizontal cumulé (AXY). La quantité AXY représente l'amplitude du décalage horizontal cumulé le long d'une perpendiculaire à la course prédéterminée. Le processus selon l'invention définit la direction du décalage par rapport à la direction du mouvement le long de la course prédéterminée. Si la modification de course se produit vers la gauche, le décalage est défini en sens négatif, et si la modification se produit vers la droite de la course prédéterminée, le décalage est défini avec un sens positif. Etant donné que le contact gauche est fermé, l'étape 258 * du processus définit une valeur de décalage plus négative. Par conséquent, la nouvelle valeur de décalage cumulée est déterminée par soustraction d'une amplitude incrémentielle horizontale préalablement définie (INC) de l'amplitude de la valeur décalée cumulée en cours. Cet incrément est indi- qué par la ligne 131 sur la figure 3. L'étape 260 du pro- cessus vérifie si la valeur du signal de décalage horizon- tal cumulé est inférieure à la valeur de la limite gauche. La valeur de la limite gauche est un nombre négatif qui peut être établi arbitrairement suivant l'application. Si la valeur du signal de décalage horizontal cumulé est infé- rieure à la limite gauche, l'étape 261 du processus donne au signal décalé une valeur égale à la limite gauche et le processus se poursuit par la modification de la course limitée. Si la valeur du signal de décalage horizontal cumulé n'est pas inférieure à la limite gauche, le pro- cessus permet au point intermédiaire d'être déplacé sur un incrément horizontal complet de mouvement le long de la perpendiculaire vers la gauche à la course prédéterminée. Pour en revenir à l'étape 256 du processus, si le contact gauche n'est pas fermé, l'étape 262 du proces- sus détermine l'état du contact droit 122. Si le contact droit est fermé, l'étape 264 établit une nouvelle ampli- tude pour le signal de décalage horizontal cumulé par accroissement de la valeur en cours du signal de décalage cumulé, cet accroissement étant égal à l'incrément hori- zontal prédéterminé (INC). La nouvelle valeur du signal de décalage horizontal cumulé représente un déplacement incré- mentiel vers la droite de la course prédéterminée, suivant une perpendiculaire à un plan horizontal. Ensuite, l'étape 266 du processus détermine si la nouvelle valeur du signal de décalage horizontal cumulé est supérieure à la valeur de la limite droite. La limite droite est un nombre posi- tif qui est établi d'une manière analogue à la limite gauche. Si le signal de décalage horizontal cumulé possède une valeur supérieure à la valeur de la limite droite, l'étape 267 du processus donne au signal de décalage une 250301 0 valeur égale à la limite droite, et aucune autre modifica- tion de course ne peut se produire. Si le signal de déca- lage horizontal cumulé possède une valeur inférieure à la limite droite, le nouveau signal de décalage horizontal cumulé peut effectivement modifier la position du point intermédiaire d'une valeur égale à la totalité de l'incré- ment horizontal. L'étape 268 de processus détermine si le con- tact bas 118 est fermé. Si le contact est fermé, l'étape 270 du processus établit une nouvelle valeur du signal de décalage vertical cumulé (AZ) le long de l'axe vertical en soustrayant un incrément vertical prédéterminé (INCZ) de la valeur en cours du signal de décalage vertical cumulé. L'incrément vertical est indiqué par la ligne 136 sur la figure 3, sous forme d'un déplacement vers le haut. Des modifications de course le long de l'axe vertical, au- dessous de la course prédéterminée, ont un sens négatif, et des modifications de course le long de l'axe vertical, au-dessus de la course prédéterminée, ont un sens positif. L'étape 272 du processus détermine si l'amplitude du signal de décalage vertical cumulé est inférieure à la valeur de la limite vers le bas. La limite vers le bas est un nombre négatif prédéterminé et, si l'amplitude du signal de décalage est inférieure à la limite vers le bas, l'étape 273 du processus donne au signal de décalage ver- tical cumulé une valeur égale à la limite vers le bas, ce qui limite l'étendue de la modification apportée à la course. Si la valeur du signal de décalage vertical cumulé n'est pas inférieure à la limite vers le bas, le signal de déca- lage vertical peut effectivement modifier la position du point intermédiaire d'une amplitude égale à un incrément vertical complet. L'étape 274 du processus détermine l'état du contact de montée 116. Si le contact de montée est fermé, l'étape 276 du processus donne au signal de décalage ver- tical cumulé une nouvelle valeur qui est égale à la valeur actuelle augmentée d'une amplitude incrémentielle verticale prédéterminée (INCZ). L'étape 278 du processus détermine la valeur du signal de décalage vertical cumulé par rapport à une limite vers le haut. Si la valeur du signal de décalage vertical cumulé est supérieure à la limite vers le haut, l'étape 279 du processus donne au signal de décalage une valeur égale à la limite vers le haut, ce qui limite l'étendue de la modification de la course vers le haut. Si la valeur du signal de décalage vertical cumulé n'est pas supérieure à la limite vers le haut, le signal de décalage peut effectivement modifier la position du point intermédiaire sur une amplitude égale à un incrément vertical complet. Le processus passe ensuite à l'étape 280 qui a pour effet de modifier les valeurs des coordonnées rectan- gulaires du point intermédiaire défini dans l'étape 214 de la figure 5d. La modification peut s'effectuer suivant une perpendiculaire à un plan horizontal vers la gauche ou vers la droite de la course prédéterminée. Dans une forme préférée de réalisation de l'invention, le plan horizontal est défini par les axes de coordonnées XY du système de coordonnées rectangulaires du robot. Par conséquent, il est nécessaire de définir la position du point de décalage le long de la perpendiculaire sous la forme de valeurs de coordonnées XY. Si l'on se reporte à la figure 3 et que l'on considère le point de décalage 0P1, la composante 130 le long de l'axe X de coordonnées et la composante 132 le long de l'axe Y de coordonnées doivent être déterminées étant donné l'incrément du déplacement 131 perpendiculaire à la course. Des premier et second signaux de décalage axial représentant les composantes de coordonnées rectangu- laires peuvent être produits par multiplication de l'ampli- tude, mesurée le long de la normale (JAXYI), par les cosi- nus dirigés suivant les axes X et Y, respectivement. Ceci résulte de la relation de l'angle 0 de la course prédéter- minée 128, mesuré par rapport à l'axe X, et de l'angle a de la normale 131, mesuré par rapport à l'axe X; autrement dit? a est égal à 90 moins 0. Ainsi: y1-Y0 Cos a = sin 9 = = U8 xy Sin a = Cos O =1 = U7 xy O Sxy V=(X -X) 2 + (Y 2 y Par conséquent, la composante sur l'axe X de la normale est égale au produit du nombre de direction U8 et de l'am- plitude du décalage horizontal cumulé (AXY) et la compo- sante sur l'axe Y est égale au produit du nombre de direc- tion U7 et de l'amplitude de la composante horizontale cumulée (AXY). Par suite de la convention de signes pour les décalages cumulés, la composante sur l'axe Y est cal- culée à l'aide de la valeur négative du nombre de direction U7. Par conséquent, si on se réfère aux équations associées aux étapes de processus 280 à 283 de la figure 6d, un groupe modifié de signaux intermédiaires (XaY aZ a> peut être produit par modification des valeurs des compo- santes de coordonnées rectangulaires du point intermé- diaire par les signaux de décalage. Les composantes de coordonnées du décalage horizontal cumulé sont calculées par les étapes 280 et 281 et les coordonnées du point intermédiaire modifié sont calculées par l'étape 283. Un premier signal de composante de coordonnées (Zk) représen- tant la valeur suivant la coordonnée Z est additionné - algébriquement avec le signal de décalage vertical (AZ). Un deuxième signal de composante de coordonnées (Xk), représentant la valeur suivant la coordonnée X, est addi- tionné algébriquement avec le premier signal de décalage axial (X) et un troisième signal de composante de coor- données (Yk), représentant la valeur suivant la coordon- née Y, est additionné algébriquement avec le second signal de décalage axial (Y,). Si l'on se réfère de nouveau à la figure 5d, après que les valeurs de coordonnées rectangulaires du point intermédiaire ont été modifiées par l'étape de pro- cessus 216, l'étape de processus 218 transforme ces valeurs de coordonnées en valeurs de coordonnées généralisées cor- respondantes définies par la configuration géométrique du bras de robot. L'étape 220 de processus calcule la varia- tion incrémentielle des valeurs de coordonnées générali- sées nécessaire pour faire passer le centre de l'outil de sa position actuelle au point intermédiaire modifié, et un groupe de valeurs de coordonnées généralisées différentiel- les est mis en file d'attente dans une mémoire tampon, comme décrit précédemment. Le processus revient à l'étape 208 qui détermine si l'intervalle de vitesse constante est fini; si tel n'est pas le cas, le processus décrit pour les cases 208 à 220 se poursuit de façon itérative. Bien que le centre de l'outil puisse être éloi- gné de la course prédéterminée pendant l'intervalle de vitesse constante, dans cette première variante du proces- sus, il est nécessaire que le centre de l'outil revienne sur la course prédéterminée pour atteindre le point extrême prédéterminé P1 de la figure 3. Par conséquent, à la fin de l'intervalle de vitesse constante et pendant l'intervalle de changement de vitesse final, le processus ignore l'état des contacts 116 à 122 et il modifie automa- tiquement la valeur des coordonnées X, Y et Z d'une quantité incrémentielle lors de chaque itération, pour ramener le cen- tre de l'outil sur la course prédéterminée. Comme décrit précédemment, le processus déclenche arbitrairement ce retour à partir de cinq itérations avant la fin de l'inter- valle à vitesse constante. Ce point du processus est détecté par l'étape 248. Tant que le nombre d'itérations en cours, augmenté de cinq, est inférieur à K2 qui est égal à la somme ml + m2, c'est-à-dire le nombre d'itérations dans l'inter- valle de changement de vitesse initial et l'intervalle de vitesse constante, le processus de modification de course est actif. Cependant, une fois que le nombre d'itérations en cours augmenté de cinq dépasse le nombre total d'itéra- tions K2, le processus passe à l'étape 242 qui met en place l'indicateur de repositionnement et déclenche un retour du centre de l'outil vers la course prédéterminée. L'étape 244 du processus détermine si l'indicateur est en place. Si l'on suppose que l'indicateur est en place, le processus passe à l'étape 282 de la figure 6c qui déter- mine si la valeur du décalage horizontal cumulé le long de la normale est égale à zéro. Si la valeur le long de la normale est zéro, le centre de l'outil n'est pas déplacé dans le plan horizontal et aucun retour horizontal n'est nécessaire. Si la valeur le long de la normale n'est pas nulle, l'étape 284 du processus détermine si cette valeur est inférieure ou non à zéro. Si la valeur n'est pas infé- rieure à zéro, un décalage vers la droite de la course prédéterminée existe et l'étape 286 du processus peut effectivement établir une nouvelle valeur de décalage égale à la valeur du décalage en cours diminuée de l'in- crément horizontal prédéterminé (INC). L'étape 288 du pro- cessus détermine si la nouvelle amplitude du décalage dépasse zéro. Si tel est le cas, l'étape 290 du processus donne à l'amplitude du décalage une valeur égale à zéro. Si l'étape 284 du processus détermine que l'am- plitude du décalage est inférieure à zéro, un décalage le long de la normale, vers la gauche, à la course prédéter- minée existe. Dans ce cas, l'étape 292 du processus pro- duit une nouvelle valeur de décalage égale à la valeur du décalage en cours augmentée d'un incrément horizontal. On a choisi d'utiliser les mêmes incréments que ceux uti- lisés pour les mouvements de décalage. L'étape 294 du pro- cessus détermine si la nouvelle amplitude du décalage dépasse zéro. Si tel est le cas, l'étape 292 du processus donne à l'amplitude du décalage une valeur égale à zéro. D'une manière analogue, les étapes 296 à 307 du processus déterminent l'amplitude du décalage le long de l'axe vertical. Si un décalage existe dans le sens négatif de la direction Z, des incréments verticaux sont ajoutés au décalage. S'il existe un décalage dans le sens positif de la direction Z, des incréments verticaux de retour sont soustraits du signal de décalage. L'étape 309 du proces- sus détermine si les amplitudes des signaux de décalage horizontal et vertical sont nulles. Si tel est le cas, l'étape 311 du processus efface l'indicateur de reposi- tionnement. S'il existe encore une certaine amplitude de décalage, le processus passe à l'étape 280 de la figure 6d, puis aux étapes 281 et 283 qui ont pour effet de modifier les coordonnées X, Y et Z de manière que le centre de l'outil revienne vers la course prédéterminée. Si l'on se réfère de nouveau à la figure 5d, au cours des cinq dernières itérations de l'intervalle à vitesse constante, les étapes de processus 208 à 220 ont pour effet de déclencher un retour du centre de l'ou- til vers la course programmée. A la fin de l'intervalle à vitesse constante, le processus passe à l'étape 222 qui détermine si le second intervalle de changement de vitesse est fini. Si tel n'est pas le cas, les étapes de processus 221 à 225 produisent des valeurs de coordonnées rectangu- laires d'un point intermédiaire. Si le centre de l'outil n'est pas sur la course prédéterminée, l'étape 226 du pro- cessus provoque une modification incrémentielle des valeurs des coordonnées pour ramener le centre de l'outil sur la course. Les étapes 228 et 230 du processus déterminent les changements des valeurs de coordonnées généralisées représentant le point intermédiaire, et ces valeurs de coordonnées différentielles sont mises en mémoire tampon. Les étapes de processus 222 à-230 se poursuivent jusqu'à ce que le nombre d'itérations devienne égal à K3 qui est la somme m1 + m2 + m3. A ce moment, le centre de l'outil est placé au second point programmé Pl et la commande du processus passe à l'étape 166 de la figure 5a. Bien que le processus de modification de course décrit ci-dessus, qui ramène le centre de l'outil sur la course prédéterminée, convienne à un certain nombre d'ap- plications, il existe d'autres situations qui exigent de laisser le centre de l'outil en une position décalée du point extrême programmé. Une telle situation sera à pré- sent décrite en regard des figures 7a et 7b. La figure 7a représente schématiquement une pla- que 400 qui doit être soudée dans un évidement dont le péri- mètre est représenté en 401. L'orientation réelle de la plaque, indiquée en traits mixtes, apparait comme présen- tant une rotation d'un angle e par rapport à l'orientation souhaitée, tandis qu'un angle se trouve dans la position prévue. Comme décrit plus en détail ci-après, une transla- tion de la position de la pièce peut également être effec- tuée. A titre illustratif, l'amplitude de la rotation sur l'angle 0 est exagérée. L'amplitude de l'angle e est limitée en fonction de la différence acceptable entre la vitesse de course réelle et la vitesse de course programmée qui résulte de la poursuite d'une course décalée d'une valeur croissant constamment par rapport à la course prédéterminée. La figure 7b montre les courses prédéterminées devant être suivies par le centre de l'outil pour souder deux côtés du périmètre de la plaque 400 dans la cavité 401. Les courses sont définies par des points programmés P0, P1 et P2 et elles comprennent les traits pleins 406 et 408. La ligne pointillée de la figure 7b illustre la position réelle de la plaque 400. Il convient de noter que si la première variante du processus de modification de course décrite précédemment est utilisée dans ce cas, le centre de l'outil passe sur la plaque 400 en reve- nant au point programmé P. Par conséquent, il est néces- saire de déplacer le centre de l'outil vers une position décalée Pld correspondant à la position programmée P1. Ensuite, d'autres modifications de course doivent être effectuées, autrement le centre de l'outil serait entraîné du point Pld au point P Si le centre de l'outil devait duoin Pid aup V2 suivre une course parallèle à la course 408 et devait parcourir la distance programmée du point P1 au point P2, il en résulterait une course se terminant au point P2d' Il apparaît que le point extrême souhaité pour cette seconde course prédéterminée est le point P2nd' En ce qui concerne la course 406, si la modifi- cation du décalage le long d'une normale, telle que décrite dans la première variante du processus, était utilisée pour établir un point décalé par rapport au point Pl, le centre de l'outil s'arrêterait à un point P ldn situé dans une posi- tion décalée le long d'une normale à partir du point P1. Cependant, il résulte de ceci que la longueur de course Po0ldn est supérieure à la course prédéterminée P0P1* Il est donc nécessaire de trouver les coordonnées du point Pid avant d'atteindre l'itération pour le point extrême pro- grammé P1. Pour expliquer géométriquement le procédé d'éta- blissement du point auquel la position du point décalé cor- respond à un point P d de la figure 7b, on peut se référer à présent à la figure 8. Sur la figure 8, les points pro- grammés P0 et P1 sont représentés comme étant contenus dans le plan X, Y. Le point Pldn est le point d'intersec- tion de la normale partant du point P1 avec la course décalée 410. Le point P1d est le point d'arrêt souhaité le long de la course P P La distance du point P au point O ldn' Pld est égale à la distance du point P0 au point P1. Il apparaît que la course prédéterminée 406, du point P0 au point Pli est tournée de l'angle e pour produire la course décalée ou modifiée 410 de P0 à P1 Le point P est le point intermédiaire le long. de la course prédéterminée 406, point à partir duquel la normale coupe la course décalée 410 au point d'arrêt souhaité P d' Le point Pk représente un point intermédiaire le long de la course prédéterminée 410 et le point Pkd représente l'intersection entre la normale à la course 406, au point Pk et la course décalée 410. Etant donné que le processus selon l'invention pour exécuter le mouvement entre le point présent et le point suivant exige que la longueur de l'intervalle soit divisée en un certain nombre calculé d'itérations de mouvement incrémentiel le long de la course prédéterminée, on souhaite déterminer le nombre d'itérations représentees par la distance de PPl à P1, c'est-à-dire la valeur de laquelle la course prédéterminée doit être réduite. Connaissant cette valeur, il est alors possible de déter- miner la valeur d'itération (K) correspondant au point P P. Si l'on se réfère de nouveau à la figure 8, on peut voir que pour déterminer le nombre d'itérations nécessaires à l'exécution de l'intervalle de PPl à Pl, il est nécessaire de déterminer la longueur comprise entre PPl et P1. Les équations mathématiques pour calculer cette distance (SL) sont les suivantes: P Pl P 1Pd S PplPl PQPi P Pl P0 P1 POPîd (cos8) S - S (cos e) = S(i- cos 8) (cos 8) = ______ = (k = R O ldn O kd SL =plPl = S (1-R) o PO Pkd est une ligne droite. Tout en rappelant qu'une modification incrémen- tielle des coordonnées n'est pas permise pour tous les points intermédiaires, il convient de noter que le point réel décalé ne suit pas exactement une ligne droite et que la longueur calculée le long de la course décalée 410 est affectée à la fois par ces modifications pas à pas permises et par les variations incrémentielles de la valeur du décalage horizontal cumulé. Pour minimiser les erreurs affectant la valeur calculée de R, erreurs qui risquent autrement d'être introduites par ces varia- tions, on utilise, selon l'invention, une valeur moyenne Qr reflétant le rapport des distances le long de la course prédéterminée et de la course décalée plutôt qu'une valeur unique de R. Cette moyenne est calculée par cumul des valeurs des rapports R de longueurs de course de points intermédiaires et de leur point décalé associé, et division par le nombre de valeurs cumulées. Le rapport R est calculé à chaque itération et la moyenne n'est calcu- lée qu'une seule fois. Les équations utilisées pour ces calculs sont les suivantes: Rapport cumulé AR = AR + R Rapport moyen Q KTA+ o KT = une valeur d'itération arbitraire comprise entre K1 et K3 pour laquelle la moyenne est calculée et substitution SL = S (lQr) o P0Pkd correspond approximative- ment à une ligne droite. Une fois que la distance SL est connue, le nom- bre correspondant d'itérations MT nécessaires à l'avance du centre de l'outil sur cette distance,à la vitesse programmée, peut Gtre calculé de la manière suivante: M = S L T VAt o: V = vitesse programmée At = temps d'itération PPlPl =SL MT = nombre d'itérations Comme décrit ci-après, la valeur de MT est uti- lisée pour modifier les valeurs d'itération des intervalles S2 et S3 de la course prédéterminée. Si l'on se réfère à la figure 7b, lorsque le centre de l'outil atteint le point P d' si aucune modifica- tion de course supplémentaire n'est souhaitée pour le mou- vement du centre de l'outil pendant l'exécution de l'in- tervalle suivant correspondant à la course prédéterminée 408, la caractéristique de modification'de course pourrait alors être invalidée et le centre de l'outil pourrait suivre la course entre le point P ld et le point P2d pourvu que toutes les composantes de coordonnées des points intermédiaires de la course 408 soient modifiées par les valeurs décalées entraînant une modification effec- tive du point intermédiaire PPl de la course 406. Autrement dit, une course parallèle à la course prédéterminée 408 entre les points programmés P1 et P2 pourrait être suivie en utilisant la longueur de course P1-P2 et en partant du point Pid' Pour utiliser la première variante du processus de modification de course pendant l'exécution de l'inter- valle du point P d au point P 2d, afin que le centre de l'outil puisse être entraîné jusqu'au point P 2nd' il est nécessaire de modifier d'abord tous les points intermé- diaires en utilisant, comme valeurs de modification, les décalages cumulés actifs au point P d' puis en modifiant de nouveau les points intermédiaires par l'utilisation de valeurs décalées cumulées générées en réponse aux signaux de déviation. Il convient de noter que ceci suggère un pro- cessus en deux étages de modification continuelle de course, dans lequel des valeurs de référence de décalage sont appliquées à tous les points d'une course prédéter- minée en tant que première modification, et que d'autres valeurs de décalage cumulées sont appliquées en des points choisis, en tant qu'autre modification nécessaire pour réagir aux déviations détectées par rapport à la course par suite de la première modification. Ce processus en deux étages, c'est-à-dire la seconde variante du processus selon l'invention, permet de générer les courses entre les points Po0 Pid et P2nd de la figure 7b. Ce processus à deux étages destiné à modifier de façon continue la course sera à présent décrit en regard des organigrammes des figures 9a à 9e. Un examen rapide des organigrammes des figures 9b et 9c montre que ces derniers * sont identiques aux organigrammes des figures 6b et 6c. Par conséquent, la description détaillée des étapes de processus de ces organigrammes, c'est-à-dire des étapes 442 à 504, ne sera pas répétée. L'organigramme de la figure 9d montre le processus au moyen duquel les valeurs de référence de décalage sont ramenées à zéro. L'organi- gramme de la figure 9e donne les étapes de processus des- tinées au calcul des valeurs de composantes de coordon- nées des points décalés. Lorsque le processus de calcul de coordonnées arrive à la case 203 de la figure 5h, il se poursuit par les étapes de processus de la figure 9a, à partir de l'étape 420 de décision qui reçoit de l'étape 420' des valeurs de coordonnées modifiées. L'étape 420 détermine si l'itération en cours est la première itération de la course prédéterminée en cours. Si tel est le cas, les variables de modification de course sont amenées à leurs valeurs d'ini- tialisation à l'étape 422. Si tel n'est pas le cas, le processus passe à l'étape 424 de décision. Comme décrit précédemment, les valeurs de référence de décalage peuvent être utilisées pour modifier tous les points de la course prédéterminée en cours. Par conséquent, les valeurs ini- tiales des signaux de référence de décalage sont égales aux composantes de coordonnées du décalage entre la posi- tion réelle présente du centre de l'outil et le premier point programmé. Les coordonnées de la position réelle sont de la forme (Xa,Ya,Za). Les valeurs initiales des décalages cumulés horizontal et vertical pour la course prédéter- minée en cours sont égales à zéro. Le rapport cumulé (AR), qui est utilisé pour calculer le rapport de la longueur moyenne (Q r) comme décrit précédemment, reçoit une valeur initiale égale à 1. La valeur d'itération (KT) utilisée pour le calcul du rapport de la longueur moyenne (Q r) est établie de façon à être égale à 80% des itérations de l'intervalle à vitesse constante. L'étape 424 de décision détermine si le décalage de référence de priorité doit être repositionné. Ce repo- sitionnement est effectué par fermeture du contact 123 de la figure 2. Si tel est le cas, le processus se poursuit par l'organigramme de la figure 9d qui sera décrit ci-après. Si tel n'est pas le cas, le processus passe alors à l'étape 425 de décision pour déterminer si le processus de modifi- cation de course est validé ou non pour la course prédéter- minée en cours. Le processus de modification de course est validé par une fonction programmée. Si tel est le cas, le processus se poursuit par l'étape 426 de décision. Si tel n'est pas le cas, le processus se poursuit par l'organi- gramme de la figure 9e qui sera décrit ci-après. A l'étape 426 de décision, l'état du contact 115 de repositionnement est testé. Si le contact 115 de repositionnement est fermé, l'indicateur de repositionnement est mis en place par l'étape 428 de processus. S'il n'est pas fermé, le processus saute alors à l'étape 430 o l'état de l'indicateur de repositionnement est testé. Si l'indicateur de reposition- nement est en place, le processus se poursuit avec l'orga- nigramme de la figure 9c qui, comme indiqué précédemment, est identique à celui de la figure 6c et qui ne sera donc pas de nouveau décrit. Si l'indicateur de repositionnement n'a pas été mis en place, le processus se poursuit alors par les étapes 432 à 436 de traitement de la file d'attente d'itération. Ces étapes exécutent des opérations de la même manière que les étapes 250 à 254 de la figure 6a pour déter- miner les points intermédiaires qui doivent être affectés par des altérations incrémentielles des valeurs décalées cumulées. Lorsque le processus d'attente d'itération permet de modifier les valeurs décalées cumulées, le processus se poursuit par l'organigramme de la figure 9b qui, comme indi- qué précédemment, correspond à l'organigramme de la figure 6b. Lorsque le processus d'attente d'itération ne permet pas de modifier les valeurs décalées cumulées,le processus se poursuit par l'organigramme de la figure 9e. Avant de passer à la description du mécanisme de modification des coordonnées de points intermédiaires, il convient de décrire le processus de l'organigramme de la figure 9d et l'effet qu'il produit. On doit également se référer à la figure 7b et en particulier au point décalé 25030 1 0 P1d' à la course décalée P idP2d et à la course prédéterminée P1P2. Si tous les points de la course prédéterminée P 1P2 étaient modifiés par les valeurs décalées applicables au point P1 pour générer les coordonnées du point P d' la course PidP2d serait alors suivie par le centre de l'outil. Cependant, si l'on suppose qu'au départ de la course PldP2d' les valeurs de référence de décalage doivent être repositionnées, le centre de l'outil devrait partir de sa position réelle Pid vers le point P2. L'organigramme de la figure 9d a pour effet de produire les changements des valeurs de référence de décalage nécessaires à la produc- * tion de ce mouvement. Une brève comparaison des organigram- mes des figures 9d et 9c montre que les processus qu'ils effectuent sont similaires. Etant donné que l'on souhaite ramener le centre de l'outil sur la course prédéterminée entre les premier et second points programmés, les valeurs de référence de décalage doivent être ramenées à zéro. Ceci est effectué de la même manière incrémentielle que celle utilisée pour ramener à zéro les valeurs de décalage cumulées. Autrement dit, au cours de chaque itération, les amplitudes des valeurs de référence de décalage sont rédui- tes de l'amplitude du déplacement incrémentiel applicable. Si l'on se réfère à présent à la figure 9d, on peut voir que l'étape 510 de décision détermine si la valeur de référence de décalage Xref applicable à la compo- sante de coordonnées suivant l'axe X n'est pas nulle. S'il en est ainsi, l'étape 512 détermine si elle possède une valeur négative. S'il en est ainsi, son amplitude est réduite de celle du déplacement incrémentiel par addition à l'étape 514, et si elle est positive, cette diminution d'amplitude s'effectue par soustraction à l'étape 518. La valeur résultant de l'une ou l'autre de ces étapes est testée afin de déterminer si la réduction a modifié le signe de la valeur de référence de décalage et, s'il en est ainsi, l'étape 522 rend cette valeur égale à zéro. D'une manière analogue, les étapes 524 à 536 ont pour effet de réduire une amplitude non nulle de la valeur de référence de décalage d'une composante de coordonnées sui- vant l'axe Y. De même, les étapes 538 à 550 ont pour effet de réduire une valeur de référence de décalage non nulle d'une composante de coordonnées suivant l'axe Z. L'étape 552 de décision détermine si toutes les valeurs de réfé- rence de décalage sont nulles et, s'il en est ainsi, elle repositionne l'indicateur de repositionnement de référence de décalage testé dans l'étape de décision 424 de la fi'gure 9a. Qu'il passe par l'un quelconque des organigram- mes des figures 9b, 9c ou 9d, le processus aboutit finale- ment à l'organigramme de la figure 9e dans lequel les cal- rculs décalant les points de la course prédéterminée et déterminant le point intermédiaire devant constituer le point d'arrivée sont effectués. En décrivant les étapes de calcul de l'organi- gramme de la figure 9e, on se référera également aux repré- sentations géométriques des figures 7b et 8. L'étape 556 de processus calcule la distance du point présent P0 au point intermédiaire Pk de l'itération K le long de la course prédéterminée, à partir du point programmé P0 jus- qu'au point programmé P1. L'étape de processus 558 calcule les cosinus orientés U7 et U8. L'étape de processus 560 calcule les valeurs des composantes, suivant les axes de coordonnées, du décalage horizontal cumulé, généré en réponse à des signaux de déviation pendant l'exécution de la course en cours. Ces valeurs ont été arbitrairement dési- gnées par X et Ye. Le calcul suit la même analyse mathé- matique que celle utilisée pour calculer les composantes, suivant les axes de coordonnées, des valeurs décalées cumulées de la première variante du schéma prioritaire de course prédéterminée. L'étape 562 de processus exécute une translation des coordonnées du point intermédiaire vers les coordonnées du point décalé le long de la course de P0 à Pldn* Les coordonnées translatées représentent la position réelle du centre de l'outil et ont la forme Xa Ya Za. Les valeurs de Xref, yref et Zref sont celles déterminées pendant l'exécution de l'étape de processus 424 de la figure 9a ou du processus de la figure 9d, et elles représentent les valeurs des composantes-de coor- données de décalages modifiant effectivement tous les points intermédiaires de la course en cours. Les composan- tes de coordonnées modifiées du premier point programmé P0 sont également calculées par l'étape 562 à l'aide des composantes de coordonnées décalées de référence pour pro- duire les coordonnées du point de départ P de la course od décalée, ce point étant représenté sur la figure 8 comme coïncidant avec le point P0. Le point Pld de la figure 7b est un exemple de point de départ d'une course décalée, qui est écarté d'un point programmé. En outre, on peut à présent apprécier que si, sur la figure 7a, la plaque 400 avait été translatée afin qu'aucun de ses angles n'occupe la position prévue, en affectant des valeurs appropriées aux valeurs de référence décalées effectives pour le pre- mier point programmé PV, la translation de la plaque aurait été prise en compte pour tous les points programmés suivants. Le processus se poursuit alors par l'étape 564 o la distance mesurée le long de la course décalée 410, de Pod jusqu'au point intermédiaire décalé Pkd' est calcu- lée. L'étape 566 du processus calcule le rapport cumulé AR de la distance mesurée le long de la course prédéter- minée programmée à la distance mesurée le long de la course prédéterminée décalée. L'étape 568 de décision teste la valeur du nombre d'itérations (K) pour détermi- ner s'il est égal ou non à la valeur du nombre d'itéra- tions KT prévu pour le point d'arrivée. S'il n'en n'est pas ainsi, le processus se poursuit alors en revenant au point approprié du processus de transformation de la figure 5d. Cependant, si la valeur d'itération est égale à la valeur calculée, le processus se poursuit par l'étape 570 de calcul. Cette étape 570 effectue les calculs décrits précédemment en regard de la figure 8 pour (1) déterminer la longueur de l'intervalle du point PPl au point P1 (c'est-à-dire la longueur d'intervalle différen- tielle S L), (2) pour déterminer le nombre d'itérations (MT) nécessaires à l'exécution de cet intervalle M,, et (3) pour réduire les valeurs d'itération de fin d'inter- valle (K2,K3) pour les intervalles de vitesse constante et de ralentissement, ces valeurs étant réduites par le nombre calculé d'itérations (M T). Ensuite, le processus se poursuit en revenant au point approprié de l'organigramme de la figure 5d. Il convient de noter que, pendant chaque itéra- tion passant par les étapes 556 à 566, des coordonnées de points de décalage et le rapport des longueurs nécessaires au calcul de la prévision du point d'arrivée sont générés. Lorsque le centre de l'outil avance le long de la course décalée jusqu'au point P, la valeur de K est mise à jour pour traduire chaque itération traitée. Lorsque K est égal à la valeur de KT, le centre de l'outil se trouve à environ % de l'intervalle de vitesse constante S2. A ce point, la valeur moyenne des rapports de longueurs donne une bonne approximation du cosinus de l'angle de rotation, de sorte que le point d'arrivée demandé peut être prévu avec une précision suffisante. Pour passer du point P id au point P 2nd' les valeurs de référence de décalage reçoivent des valeurs initiales correspondant aux composantes de coordonnées de déplacement entre P et P id' Comme indiqué précédemment, ces valeurs établissent la course de P id à P2d' Pour dépla- cer le centre de l'outil vers P2nd' les valeurs décalées cumulées, qui devraient être initialisées à zéro lors de la première itération de cette course, doivent de nouveau être modifiées incrémentiellement par des signaux de déviation pour effectuer la rotation sur l'angle 6 de la course P idP2d. Il va de soi que de nombreuses modifications peuvent être apportées à l'appareil décrit et représenté sans sortir du cadre de l'invention. REVENDICATIONS 1. Appareil pour modifier le mouvement d'un centre (76) d'outil associé à un élément fonctionnel (34), le mouvement s'effectuant suivant des courses prédétermi- nées entre les points programmés et étant défini par des signaux d'entrée représentant des positions et des vitesses de course par rapport à un système de coordonnées rectangulaires, l'appareil étant caractérisé en ce qu'il comporte un bras (10) de robot qui comprend des moyens associés au centre de l'outil pour définir plusieurs axes de mouvement afin de déplacer le centre de l'outil suivant des courses prédéterminées, les axes de mouvement définis- sant un système de coordonnées généralisées, des moyens (49) destinés à produire un signal de déviation pour ordon- ner un changement de position du centre de l'outil afin de l'éloigner des courses prédéterminées, et une commande (35) qui comprend un élément destiné à mémoriser les signaux d'entrée et un circuit (42) de servomécanisme relié à des actionneurs pouvant déplacer le centre de l'outil le long des courses prédéterminées, la commande exécutant les opé- rations qui consistent: (1) à rappeler des premiers signaux d'entrée représentant des premier et second points programmés et une vitesse de course entre ces points; (2) à produire, en réponse aux premiers signaux d'entrée, un groupe de signaux intermédiaires représentant des valeurs de coordonnées intermédiaires, par rapport à des axes de coordonnées rectangulaires d'un point inter- médiaire placé à une distance incrémentielle du premier point programmé, le long de la course prédéterminée; (3) à modifier le groupe de signaux intermé- diaires en réponse au signal de déviation pour produire des signaux intermédiaires modifiés représentant un point décalé du point intermédiaire; (4) à générer, en réponse au groupe modifié de signaux intermédiaires, un groupe de signaux indivi- duels de commande représentant des valeurs de coordonnées généralisées, par rapport au système de coordonnées généra- lisées, du point décalé; (5) à appliquer les signaux individuels de com- mande au circuit du servomécanisme pour faire fonctionner les actionneurs d'une manière coordonnée afin de déplacer le centre de l'outil vers le point décalé; (6) à répéter les étapes (2) à (5) pour faire passer le centre de l'outil par une série de points déca- lés, espacés d'une série de points intermédiaires équidis- tants, situés le long de la course prédéterminée; (7) à répéter les étapes (1) à (6) pour faire suivre au centre de l'outil des courses décalées et espa- cées desdites courses prédéterminées. 2. Appareil selon la revendication 1, caractérisé en ce que les moyens destinés à produire un-signal de dévia- tion comprennent -en outre un élément destiné à produire des signaux de déviation horizontale représentant des changements de la position horizontale dans des directions opposées, per- pendiculaires à la course prédéterminée, un élément des- tiné à produire des signaux de déviation verticale repré- sentant des changements de la position verticale dans des directions opposées, parallèles à un axe vertical, et un élé- ment destiné à produire un signal de repositionnement de déviation qui représente des changements des positions horizontale et verticale pour ramener le centre de l'outil vers la course prédéterminée. 3. Appareil selon la revendication 2, caracté- risé en ce que l'étape de modification d'un groupe de signaux intermédiaires consiste en outre: (a) à produire un groupe de signaux de référence de décalage représentant des écarts par rapport aux axes de coordonnées rectangulaires pour modifier effectivement tous les groupes de signaux intermédiaires d'une course prédéter- minée; (b) à produire un groupe de signaux cumulés de décalage représentant des écarts par rapport aux axes de coordonnées rectangulaires afin de modifier des groupes choisis de signaux intermédiaires de la course prédétermi- née en réponse à l'apparition d'un signal de déviation; et (c) à modifier le groupe de signaux intermé- diaires en réponse au groupe de signaux de référence de décalage et au groupe de signaux cumulés de décalage pour produire des signaux intermédiaires modifiés représentant un point décalé du point intermédiaire par les écarts nets par rapport aux axes de coordonnées rectangulaires, ces écarts résultant du groupe de signaux de référence de déca- lage et du groupe de signaux cumulés de décalage. 4. Appareil pour modifier le mouvement d'un cen- tre (76) d'outil associé à un élément fonctionnel (34), ce mouvement s'effectuant le long de courses prédéterminées entre des points programmés et étant défini par des signaux d'entrée représentant des positions et des vitesses de course par rapport à un système de coordonnées rectangu- laires, l'appareil étant caractérisé en ce qu'il comporte un bras (10) de robot comprenant une embase (12), un bras supérieur (22) dont une extrémité est reliée mécaniquement à l'embase et qui est mobile par rapport à l'embase, autour de deux axes perpendiculaires de rotation, un bras inférieur (26) dont une extrémité est associée à l'élément fonction- nel et dont l'autre extrémité est articulée sur l'autre extrémité du bras supérieur par un troisième axe de rota- tion, et plusieurs actionneurs (14,20,24) commandant cha- cun indépendamment l'un des axes de rotation, lesdits axes de rotation et les bras supérieur et inférieur définissant un système de coordonnées généralisées indépendant du sys- tème de coordonnées rectangulaires, l'appareil comportant également des moyens (49) destinés à produire un élément de déviation pour ordonner un changement de position du centre de l'outil afin de l'éloigner des courses prédé- terminées, et une commande (35) qui comprend un élément destiné à mémoriser les signaux d'entrée et un circuit (42) de servomécanisme relié aux actionneurs pour déplacer le centre de l'outil le long des courses prédéterminées, la commande exécutant les opérations qui consistent: (1) à rappeler des premiers signaux d'entrée représentant des premier et second points programmés et une vitesse de course entre ces points; (2) à produire, en réponse aux premiers signaux d'entrée, un groupe de signaux intermédiaires représentant des valeurs de coordonnées intermédiaires, par rapport à des axes de coordonnées rectangulaires d'un point inter- médiaire situé à une distance incrémentielle du premier point programmé le long de la course prédéterminée; (3) à modifier le groupe de signaux intermé- diaires en réponse au signal de déviation pour produire des signaux intermédiaires modifiés représentant un point décalé et éloigné du point intermédiaire; (4) à générer, en réponse au groupe modifié de signaux intermédiaires, un groupe de signaux individuels de commande représentant des valeurs de coordonnées généra- lisées, par rapport au système de coordonnées généralisées, du point décalé; (5) à appliquer les signaux individuels de com- mande au circuit du servomécanisme pour faire fonctionner les actionneurs d'une manière coordonnée afin de déplacer le centre de l'outil vers le point décalé; (6) à répéter les étapes (2) à (5) pour faire passer le centre de l'outil par une série de points décalés et éloignés d'une série de points intermédiaires équidis- tants, le long de la course prédéterminée; et (7) à répéter les étapes (1) à (6) pour faire suivre au centre de l'outil des courses décalées et éloi- gnées desdites courses prédéterminées. 5. Appareil selon la revendication 4, caracté- risé en ce que les moyens destinés à produire un signal de déviation comprennent en outre un élément destiné à produire des signaux de déviation horizontale représentant des changements d'une position horizontale dans des direc- tions opposées, perpendiculaires à la course prédéterminée, un élément destiné à produire des signaux de déviation verticale représentant des changements d'une position 250-3010 verticale dans des directions opposées, parallèles à un axe vertical, et un élément destiné à produire un signal de repositionnement de déviation représentant des change- ments de positions horizontale et verticale pour ramener le centre de l'outil vers la course prédéterminée. 6. Appareil selon la revendication 5, caracté- risé en ce que la modification d'un groupe de signaux intermédiaires consiste en outre: (a) à produire un groupe de signaux de référence de décalage représentant des écarts par rapport à des axes de coordonnées rectangulaires, ayant pour effet de modifier tous les groupes de signaux intermédiaires d'une course prédéterminée; (b) à produire un groupe de signaux cumulés de décalage représentant des écarts par rapport à des axes de coordonnées rectangulaires pour modifier des groupes choisis de signaux intermédiaires de la course prédéterminée en réponse à l'apparition d'un signal de déviation; et (c) à modifier le groupe de signaux intermé- diaires en réponse au groupe de signaux de référence de décalage et au groupe de signaux cumulés de décalage pour produire des signaux intermédiaires modifiés représentant un point décalé du point intermédiaire, le décalage étant égal aux écarts nets par rapport aux axes de coordonnées rectangulaires, ces écarts étant réalisés par le groupe de signaux de référence de décalage et le groupe de signaux cumulés de décalage. 7. Appareil pour modifier le mouvement d'un centre (76) d'outil associé à un élément fonctionnel (34), le mou- vement s'effectuant suivant une course prédéterminée entre deux points programmés et étant défini par des signaux d'entrée représentant des positions et une vitesse de course entre ces positions par rapport à un système de coordonnées rectangulaires, l'appareil étant caractérisé en ce qu'il comporte un bras (10) de robot comprenant une embase (12), un bras supérieur (22) dont une extrémité est reliée mécaniquement à l'embase et qui est mobile par rapport à l'embase autour de deux axes perpendiculaires de rotation, un bras inférieur (26) ayant une extrémité asso- ciée à l'élément fonctionnel et l'autre extrémité articu- lée sur l'autre extrémité du bras supérieur par un troi- sième axe de rotation, et plusieurs actionneurs (14,20,24) commandant chacun indépendamment l'un des axes de rotation, lesdits axes de rotation et les bras supérieur et inférieur définissant un système de coordonnées généralisées, indépen- dant du système de coordonnées rectangulaires, l'appareil comportant également des moyens (49) destinés à produire un signal de déviation pour ordonner un changement de posi- tion du centre de l'outil afin de l'éloigner de la course prédéterminée, une commande (35) qui comprend un élément destiné à mémoriser les signaux d'entrée et un circuit (42) de servomécanisme relié aux actionneurs pour déplacer le centre de l'outil le long de la course prédéterminée, la commande exécutant les opérations qui consistent: (1) à rappeler des premiers signaux d'entrée représentant des premier et second points programmés et une vitesse de course entre ces points; (2) à produire, en réponse aux premiers signaux d'entrée, un groupe de signaux intermédiaires représentant des valeurs de coordonnées, par rapport aux axes de coor- données rectangulaires, d'un point intermédiaire situé à une distance incrémentielle du premier point programmé, le long de la course prédéterminée; (3) à modifier le groupe de signaux intermédiai- res en réponse au signal de déviation pour produire un groupe modifié de signaux intermédiaires représentant un point décalé et éloigné du point intermédiaire; (4) à générer, en réponse au groupe modifié de signaux intermédiaires, un groupe de signaux individuels de commande représentant des valeurs de coordonnées géné- ralisées, par rapport au système de coordonnées générali- sées, du point décalé; (5) à appliquer le groupe de signaux individuels de commande au circuit du servomécanisme pour faire fonctionner les actionneurs d'une manière coordonnée afin de déplacer le centre de l'outil vers le point décalé; et (6) à répéter les étapes (2) à (5) pour faire passer le centre de l'outil par une série de points déca- lés et espacés de la course prédéterminée, entre les pre- mier et second points programmés. 8. Appareil selon la revendication 7, caracté- risé en ce que les moyens destinés à produire un signal de déviation comprennent en outre un élément destiné à pro- duire des signaux de déviation horizontale représentant des changements d'une position horizontale dans des direc- tions opposées, perpendiculaires à la course prédéterminée, un élément destiné à produire des signaux de déviation verticale représentant des changements d'une position ver- ticale dans des directions opposées, parallèles à un axe vertical, et un élément destiné à produire un signal de repositionnement de déviation représentant des changements de positions horizontale et verticale pour ramener le cen- tre de l'outil vers la course prédéterminée. 9. Appareil selon la revendication 8, caracté- risé en ce que le signal de déviation ordonne un change- ment de la position du centre de l'outil parallèlement à un axe vertical et en ce que la modification d'un groupe de signaux intermédiaires consiste en outre: (a) à produire un signal cumulé de décalages verticaux représentant un écartement vertical par rapport au point intermédiaire, parallèlement à l'axe vertical; (b) à modifier les premiers signaux intermédiai- res en réponse au signal de décalage vertical pour pro- duire des signaux intermédiaires modifiés représentant les valeurs de coordonnées, par rapport au système de coordon- nées rectangulaires, d'un point décalé du point intermé- diaire, le décalage étant égal à l'écartement vertical. 10. Appareil selon la revendication 8, caracté- risé en ce que le signal de déviation ordonne un change- ment de position vers un point le long d'une perpendicu- laire à la course prédéterminée, cette perpendiculaire étant contenue dans un plan horizontalet en ce que la modification des signaux intermédiaires consiste en outre: (a) à produire un signal cumulé de décalages horizontaux représentant un écartement horizontal le long de la perpendiculaire dans le plan horizontal; (b) à modifier les premiers signaux intermédiai- res pour représenter les valeurs de coordonnées, par rap- port au système de coordonnées rectangulaires, d'un point décalé du point intermédiaire, le décalage étant égal à l'écart horizontal.