FR2503010A1 - Procede et appareil comportant un bras de robot dont on peut modifier le mouvement du centre d'un outil associe a un element fonctionnel - Google Patents

Procede et appareil comportant un bras de robot dont on peut modifier le mouvement du centre d'un outil associe a un element fonctionnel Download PDF

Info

Publication number
FR2503010A1
FR2503010A1 FR8205756A FR8205756A FR2503010A1 FR 2503010 A1 FR2503010 A1 FR 2503010A1 FR 8205756 A FR8205756 A FR 8205756A FR 8205756 A FR8205756 A FR 8205756A FR 2503010 A1 FR2503010 A1 FR 2503010A1
Authority
FR
France
Prior art keywords
point
tool
offset
center
predetermined
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR8205756A
Other languages
English (en)
Other versions
FR2503010B1 (fr
Inventor
John Gerald Holmes
Brian John Resnick
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Milacron Inc
Original Assignee
Milacron Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Milacron Inc filed Critical Milacron Inc
Publication of FR2503010A1 publication Critical patent/FR2503010A1/fr
Application granted granted Critical
Publication of FR2503010B1 publication Critical patent/FR2503010B1/fr
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36417Programmed coarse position, fine position by alignment, follow line, path adaptive
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45135Welding
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45187Printer
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50167Adapting to copying

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

L'INVENTION CONCERNE UN APPAREIL DESTINE A MODIFIER LE MOUVEMENT D'UN CENTRE D'OUTIL, ASSOCIE A UN ELEMENT FONCTIONNEL, LE LONG DE COURSES PREDETERMINEES ENTRE DES POINTS PROGRAMMES. L'APPAREIL COMPORTE UN BRAS 10 DE ROBOT QUI PORTE UN CENTRE 76 D'OUTIL ET QUI EST ARTICULE AUTOUR DE PLUSIEURS AXES POUR QUE LE CENTRE 76 DE L'OUTIL PUISSE SUIVRE DES COURSES PREDETERMINEES, LES AXES DEFINISSANT UN SYSTEME DE COORDONNEES GENERALISEES. UN ELEMENT 49 PRODUIT UN SIGNAL DE DEVIATION ORDONNANT UN CHANGEMENT DE POSITION DU CENTRE 76 DE L'OUTIL. UNE COMMANDE 35 COMPREND UN ELEMENT DESTINE A MEMORISER DES SIGNAUX D'ENTREE DEFINISSANT LES COURSES PREDETERMINEES, ET UN CIRCUIT 42 DE SERVO-MECANISME QUI EST RELIE A DES ACTIONNEURS 14, 20, 24 AFIN DE DEPLACER LE CENTRE 76 DE L'OUTIL LE LONG DES COURSES PREDETERMINEES. DOMAINE D'APPLICATION: ROBOTS DESTINES A L'EXECUTION D'OPERATIONS DE FABRICATION.

Description

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.

Claims (10)

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.
FR8205756A 1981-04-03 1982-04-02 Procede et appareil comportant un bras de robot dont on peut modifier le mouvement du centre d'un outil associe a un element fonctionnel Expired FR2503010B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/250,908 US4403281A (en) 1981-04-03 1981-04-03 Apparatus for dynamically controlling the tool centerpoint of a robot arm off a predetermined path

Publications (2)

Publication Number Publication Date
FR2503010A1 true FR2503010A1 (fr) 1982-10-08
FR2503010B1 FR2503010B1 (fr) 1986-03-07

Family

ID=22949659

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8205756A Expired FR2503010B1 (fr) 1981-04-03 1982-04-02 Procede et appareil comportant un bras de robot dont on peut modifier le mouvement du centre d'un outil associe a un element fonctionnel

Country Status (7)

Country Link
US (1) US4403281A (fr)
JP (1) JPS57178689A (fr)
CA (1) CA1167143A (fr)
DE (1) DE3210675A1 (fr)
FR (1) FR2503010B1 (fr)
GB (1) GB2096362B (fr)
SE (1) SE455846C (fr)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4380696A (en) * 1980-11-12 1983-04-19 Unimation, Inc. Method and apparatus for manipulator welding apparatus with vision correction for workpiece sensing
JPS57113115A (en) * 1980-12-30 1982-07-14 Fanuc Ltd Robot control system
JPS57113116A (en) * 1980-12-30 1982-07-14 Fanuc Ltd Robot control system
JPS5858607A (ja) * 1981-10-05 1983-04-07 Sankyo Seiki Mfg Co Ltd プリセツト式ロボツトにおけるポイント測定方式
JPS5877775A (ja) * 1981-10-07 1983-05-11 Yaskawa Electric Mfg Co Ltd 溶接ロボツトの制御方式
FR2519690A1 (fr) * 1982-01-11 1983-07-18 Montabert Ets Dispositif d'asservissement electro-hydraulique de bras-support articule pour glissiere d'appareil de foration
US4484294A (en) * 1982-03-03 1984-11-20 Nordson Corporation Method and apparatus for modification of a prerecorded programmed sequence of motions during execution thereof by a robot
US4481591A (en) * 1982-03-03 1984-11-06 Nordson Corporation Method and apparatus for modifying a prerecorded sequence of ON/OFF commands for controlling a bistable device operating in conjunction with a moving robot under program control
US4486843A (en) * 1982-03-03 1984-12-04 Nordson Corporation Transitional command position modification for a controller
DE3244307A1 (de) * 1982-11-30 1984-05-30 Siemens AG, 1000 Berlin und 8000 München Robotersteuerung
JPS59114609A (ja) * 1982-12-22 1984-07-02 Hitachi Ltd ロボットの制御装置
JPS59153207A (ja) * 1983-02-21 1984-09-01 Mitsubishi Electric Corp ロボツトの制御装置
US4484120A (en) * 1983-04-13 1984-11-20 Nordson Corporation Auxiliary function command presequencing for a robot controller
US4562391A (en) * 1983-06-08 1985-12-31 Inoue-Japax Research Incorporated Robotic positioning system
JPS59231607A (ja) * 1983-06-14 1984-12-26 Mitsubishi Electric Corp ロボツトの制御装置
SE8304100L (sv) * 1983-07-22 1985-01-23 Ibm Svenska Ab System for automatisk kalibrering av rymdkoordinaterna hos en robotgripper i sex frihetsgrader
DE3332749A1 (de) * 1983-09-10 1985-03-28 Ibau Hamburg Ingenieurgesellschaft Industriebau Mbh, 2000 Hamburg Verfahren zum befuellen von kesselfahrzeugen, insbesondere mit schuettgut wie zement
EP0142072A3 (fr) * 1983-11-15 1986-12-30 Aida Engineering Ltd. Robot de meulage
JPS6115207A (ja) * 1984-06-29 1986-01-23 Shin Meiwa Ind Co Ltd ロボツト制御方法およびその装置
JP2628297B2 (ja) * 1984-07-03 1997-07-09 新明和工業株式会社 ロボット制御方法およびその装置
JPS6115209A (ja) * 1984-06-29 1986-01-23 Sumitomo Metal Ind Ltd 溶接線倣い方法
JPS61157903A (ja) * 1984-12-28 1986-07-17 Yaskawa Electric Mfg Co Ltd ロボツトの制御方法
JPS61163404A (ja) * 1985-01-12 1986-07-24 Fanuc Ltd サ−ボコントロ−ラのインタフエイス方式
JPH0789286B2 (ja) * 1986-02-28 1995-09-27 株式会社日立製作所 多関節マニピユレ−タの作業原点決定方法
EP0269372A3 (fr) * 1986-11-20 1988-08-17 Unimation Inc. Robot à commande numérique à base d'un microprocesseur
EP0269374A3 (fr) * 1986-11-20 1988-08-24 Unimation Inc. Système modulaire de commande pour un robot
US4786847A (en) * 1986-11-20 1988-11-22 Unimation Inc. Digital control for multiaxis robots
EP0268491A3 (fr) * 1986-11-20 1988-08-03 Unimation Inc. Robot multiaxal à commande de mouvement
JPS63288658A (ja) * 1987-05-21 1988-11-25 Mitsubishi Electric Corp バリ取り用ロボット装置
JP2511072B2 (ja) * 1987-10-23 1996-06-26 三菱重工業株式会社 ロボットにおける教示デ―タの記録・再生方法
EP0328887A1 (fr) * 1988-02-18 1989-08-23 Siemens Aktiengesellschaft Procédure pour influencer des procédé automatisés par des robots, par exemple pour recouvrir des composants électroniques hybrides
US4969108A (en) * 1988-04-08 1990-11-06 Cincinnati Milacron Inc. Vision seam tracking method and apparatus for a manipulator
US5014183A (en) * 1988-10-31 1991-05-07 Cincinnati Milacron, Inc. Method and means for path offsets memorization and recall in a manipulator
US5102280A (en) * 1989-03-07 1992-04-07 Ade Corporation Robot prealigner
US5197846A (en) * 1989-12-22 1993-03-30 Hitachi, Ltd. Six-degree-of-freedom articulated robot mechanism and assembling and working apparatus using same
CA2088071A1 (fr) * 1990-08-08 1992-02-09 John Richard Edwards Systeme de controle des mouvements destine au cinema
CA2082790A1 (fr) * 1991-12-02 1993-06-03 R. David Hemmerle Systeme de maintenance automatise pour machines a commande numerique par ordinateur
JP2812920B2 (ja) * 1996-05-30 1998-10-22 川崎重工業株式会社 ロボットの動作指令作成方法
US6560513B2 (en) * 1999-11-19 2003-05-06 Fanuc Robotics North America Robotic system with teach pendant
US6313595B2 (en) 1999-12-10 2001-11-06 Fanuc Robotics North America, Inc. Method of controlling an intelligent assist device in a plurality of distinct workspaces
US6204620B1 (en) 1999-12-10 2001-03-20 Fanuc Robotics North America Method of controlling an intelligent assist device
SE0001312D0 (sv) * 2000-04-10 2000-04-10 Abb Ab Industrirobot
US6455800B1 (en) * 2001-01-04 2002-09-24 Festo Corporation Servo-pneumatic modular weld gun
US8219246B2 (en) * 2001-06-13 2012-07-10 Oliver Crispin Robotics Limited System and method for controlling a robotic arm
US20050220582A1 (en) * 2002-09-13 2005-10-06 Tokyo Electron Limited Teaching method and processing system
JP2006099260A (ja) * 2004-09-28 2006-04-13 Fanuc Ltd ロボットプログラム作成装置
US20070142966A1 (en) * 2005-12-20 2007-06-21 Khalid Mirza Process for moving a robot
DE102007062109A1 (de) * 2007-12-21 2009-06-25 Kuka Roboter Gmbh Industrieroboter und Verfahren zum Steuern eines Industrieroboters
JP4443614B2 (ja) * 2008-02-27 2010-03-31 トヨタ自動車株式会社 パワーアシスト装置及びその制御方法
JP2011108044A (ja) * 2009-11-18 2011-06-02 Fanuc Ltd N個のロボットを同時に制御するロボット制御装置
JP6008121B2 (ja) * 2013-01-28 2016-10-19 セイコーエプソン株式会社 ロボットおよびロボット制御装置
DE102014226933B3 (de) * 2014-12-23 2016-03-24 Kuka Roboter Gmbh Vorrichtung und Verfahren zum Aufnehmen von Positionen
CN106003083B (zh) * 2016-06-28 2018-02-13 宁波优学智能科技有限公司 一种视频监控机器人
DE102016217118A1 (de) 2016-09-08 2018-03-08 Siemens Aktiengesellschaft Manipulator und Verfahren zur Regelung einer Bewegung eines Manipulators
CN108081255B (zh) * 2016-11-23 2019-10-15 广汽乘用车有限公司 一种机器人零点校准方法及装置
US11707843B2 (en) * 2020-04-03 2023-07-25 Fanuc Corporation Initial reference generation for robot optimization motion planning
JP7276359B2 (ja) * 2021-01-07 2023-05-18 株式会社安川電機 動作指令生成装置、機構制御システム、コンピュータプログラム、動作指令生成方法及び機構制御方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4011437A (en) * 1975-09-12 1977-03-08 Cincinnati Milacron, Inc. Method and apparatus for compensating for unprogrammed changes in relative position between a machine and workpiece
US4035706A (en) * 1973-07-26 1977-07-12 Hymie Cutler Offset path generating system particularly useful for numerical control machines
FR2342826A1 (fr) * 1976-03-03 1977-09-30 Unimation Inc Manipulateur programmable pendant son fonctionnement
US4178632A (en) * 1978-03-06 1979-12-11 Cincinnati Milacron Inc. Method for controlling the operation of a computer operated robot arm

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3770947A (en) * 1971-08-20 1973-11-06 City Nat Bank Of Detroit Tool control
US3909600A (en) * 1972-06-26 1975-09-30 Cincinnati Milacron Inc Method and apparatus for controlling an automation along a predetermined path
US3866179A (en) * 1972-09-22 1975-02-11 Giddings & Lewis Numerical control with envelope offset and automatic path segment transitions
JPS5132587B2 (fr) * 1973-09-17 1976-09-13
US3888361A (en) * 1974-05-15 1975-06-10 Unimation Inc Programmed manipulator arrangement for continuously moving conveyor
JPS50159445A (fr) * 1974-06-14 1975-12-24
US3920972A (en) * 1974-07-16 1975-11-18 Cincinnati Milacron Inc Method and apparatus for programming a computer operated robot arm
US4025838A (en) * 1974-12-26 1977-05-24 Kawasaki Heavy Industries, Ltd. Signal modification device for memory controlled manipulator apparatus
SE416452B (sv) * 1975-06-16 1981-01-05 Asea Ab Industrirobot
SE402540B (sv) * 1976-08-13 1978-07-10 Asea Ab Forfarande och anordning for att vid en givarstyrd industrirobot astadkomma en approximativ transformation mellan givarens och robotarmens olika koordinatsystem for styrning av roboten inom ett forutbestemt ...
US4086522A (en) * 1976-09-08 1978-04-25 Unimation, Inc. Computer assisted teaching arrangement for conveyor line operation
US4162527A (en) * 1977-07-29 1979-07-24 Hamill Company, Inc. Numerically controlled machine tool system with programmable tool offset
JPS5858682B2 (ja) * 1978-04-26 1983-12-27 ファナック株式会社 産業用ロボツトの制御方式
US4356554A (en) * 1980-09-12 1982-10-26 Thermwood Corporation Method and apparatus for compensating for system error in an industrial robot control

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4035706A (en) * 1973-07-26 1977-07-12 Hymie Cutler Offset path generating system particularly useful for numerical control machines
US4011437A (en) * 1975-09-12 1977-03-08 Cincinnati Milacron, Inc. Method and apparatus for compensating for unprogrammed changes in relative position between a machine and workpiece
FR2342826A1 (fr) * 1976-03-03 1977-09-30 Unimation Inc Manipulateur programmable pendant son fonctionnement
US4178632A (en) * 1978-03-06 1979-12-11 Cincinnati Milacron Inc. Method for controlling the operation of a computer operated robot arm

Also Published As

Publication number Publication date
SE455846B (sv) 1988-08-15
SE455846C (sv) 1989-09-27
CA1167143A (fr) 1984-05-08
FR2503010B1 (fr) 1986-03-07
DE3210675C2 (fr) 1989-04-27
GB2096362A (en) 1982-10-13
GB2096362B (en) 1985-02-06
SE8202088L (sv) 1982-10-04
US4403281A (en) 1983-09-06
JPS57178689A (en) 1982-11-02
JPH0439086B2 (fr) 1992-06-26
DE3210675A1 (de) 1982-10-28

Similar Documents

Publication Publication Date Title
FR2503010A1 (fr) Procede et appareil comportant un bras de robot dont on peut modifier le mouvement du centre d'un outil associe a un element fonctionnel
FR2526703A1 (fr) Appareil, du type manipulateur programmable, pour deplacer un outil associe a un element fonctionnel en fonction de signaux d'entree
CN104339349B (zh) 机器人装置及机器人控制方法
FR2493744A1 (fr) Appareil de soudage a manipulateur utilisant une correction de vision pour la detection de la piece a souder, et procede de commande de cet appareil
US10406686B2 (en) Bare hand robot path teaching
FR2589127A1 (fr) Machine a emballer horizontale commandee par calculateur
FR2749950A1 (fr) Procede pour produire des points discrets definissant le trajet d'un couteau en tenant compte de l'aptitude d'une machine individuelle de maniere a augmenter son efficacite
FR2624411A1 (fr) Procede et appareil de commande d'un manipulateur, et application a une cintreuse de toles
CN100462198C (zh) 工件测量的装置和方法
FR2513925A1 (fr) Manipulateur pour deplacer le centre d'un outil d'element fonctionnel vers plusieurs positions
CN108674922A (zh) 一种用于机器人的传送带同步跟踪方法、装置及系统
JP2015212012A (ja) ロボットツールの制御方法
FR2513161A1 (fr) Usinage d'un contour tridimentionnel dans une piece avec une machine a commande numerique
FR2627872A1 (fr) Systeme graphique interactif pour la representation mathematique de modeles physiques par l'intermediaire de signaux pour detection d'une information relative a des points supplementaires sur un modele au moyen d'un robot ou analogue, et applique notamment a des machines-outils
FR2626506A1 (fr) Machine a cintrer et procede de positionnement d'une plaque dans une telle machine
FR2548659A1 (fr) Procede et appareil de pressage de verre feuillete
EP1098722B1 (fr) Presse plieuse a precision amelioree
FR2513165A1 (fr) Appareil de manipulation mecanique et procede de mise en oeuvre de cet appareil
CN114273726A (zh) 3d视觉引导切坡口方法、装置、设备、系统及存储介质
FR2678190A1 (fr) Procede et systeme de soudage assistee par ordinateur, bases sur la vision de la scene de soudage.
CN113269085B (zh) 一种直线传送带跟踪控制方法、系统、装置及存储介质
JP2014013231A (ja) 動き予測制御付き機械視覚装置および方法
CN112578736A (zh) 模拟装置
FR2552243A1 (fr) Procede de commande d'installations integrees de fabrication, et dispositif pour sa mise en oeuvre
EP3375575A1 (fr) Procédé de commande d'une cellule de travail automatisée

Legal Events

Date Code Title Description
TP Transmission of property
TP Transmission of property