FR 2638115 A1 19900427 FR 8813957 A 19881026 PROCEDE DE CALAGE D'UN BRAS DE ROBOT ET ROBOTS UTILISANT-CE PROCEDE La présente invention se rapporte à un procédé de calage du positionnement d'un bras de robot et aux robots mettant en oeuvre ledit procédé. ENVIRONNEMENT DE L' INVENTION L'utilisation de robots s'étend sur une grande échelle dans l'industrie. De nombreux robots comportent un bras, comprenant une channe d'au moins deux segments articulés, à savoir un segment d"'arrière-bras", monté pivotant sur un support par une articulation "d'épaule" et un segment 'tdlavant-bras'' monté pivotant sur l"'arrière-bras" par une articulation de "coude", un outil quelconque étant monté à l'extrémité du "poignet" du segment "d'avant-bras".Dans un souci de simplicité et de cohérence, on désignera par "bras de robot" l'ensemble des segments leviers ou bielles et leurs articulations, par "bras" le segment relié à l'épaule, et par "avant-bras" le dernier segment de la channe portant l'outil dans une "main", par l'intermédiaire du "poignet". Il est de pratique commune, tant pour l'articulation d'épaule que pour l'articulation de coude, de faire pivoter celles-ci autour d'axes parallèles (qui sont habituellement verticaux) et de déplacer le bras au-dessus d'une surface de travail (qui est habituellement horizontale). Les articulations comportent des codeurs d'angle connectés pour informer un processeur des angles des articulations, et des moyens d'entraSnement sont prévus pour modifier les angles des articulations sous la commande du processeur, en vue de déplacer la "main" par rapport à la surface de travail. Bien que les bras de robot antérieurs à segments multiples présentent un haut degré de répétabilité lorsqu'ils exécutent les mêmes séquences de mouvements de manière répétitive, ils souffrent d'un manque surprenant de précision absolue. Dans le passé, ce défaut a été corrigé par le fait que les robots étaient fréquemment "entraînés" dans leurs mouvements par un travailleur expérimenté qui déplaçait physiquement la main du robot dans les positions requises, le robot répétant les mouvements qu'il avait appris du travailleur. De toute façon, un haut degré de répétabilité est nécessaire. Toutefois, on a également besoin d'un bras de robot qui soit capable d'exécuter directement des instructions générées par des systèmes dits CAO (Conception Assistée par Ordinateur), sans étape intermédiaire, au cours de laquelle un travailleur tienne la main du robot. C'est cette application qui exige un haut degré de précision absolue. Le but de la présente invention est de proposer un procédé améliorant la précision absolue, de manière à obtenir des résultats améliorés lorsque le bras est utilisé sous la commande directe d'un système CAO. L'invention est basée sur le fait qu'une source significative d'erreurs affectant la précision absolue (mais non la précision relative), reside dans les mises à zéro à partir desquelles opèrent les codeurs d'angle, et sur le fait que l'erreur de mise à zéro de chaque codeur d'angle peut être mesurée indépendamment de l'erreur de zéro sur les autres codeurs du meme bras. Une fois que les erreurs de mise à zéro sont connues, différentes mesures peuvent être prises pour corriger ces erreurs, ou simplement pour les prendre en compte. RESUME DE L'INVENTION La présente invention propose un procédé pour déterminer l'erreur de zéro dans un ou plusieurs des codeurs d'angle d'un bras de robot, comprenant au moins deux segments, articulés en série autour d'articulations ayant des axes parallèles et comprenant chacun un codeur d'angle, le procédé étant applicable à n'importe quelle chaîne de deux segments consécutive comprenant une articulation d'épaule, un segment de bras, une articulation de coude, un segment d'avant-bras et un point de référence proche de l'extrémité de poignet de l'avant-bras, le point de référence étant constitué par un point fixe sur l'axe longitudinal du segment d'avant-bras, tout en étant dit point de référence "mobile", puisque le bras se déplace, le procédé comprenant les étapes suivantes - définition d'un point de référence fixe, ce point se trouvant dans une position fixe par rapport à l'axe de l'articulation d'épaule - déplacement du point de référence mobile vers ledit point de référence fixe, le bras prenant chacune des deux configurations symétriques possibles - lecture des deux configurations possibles ; et - calcul de l'erreur de zéro dans le codeur d'angle de l'articulation de coude, à partir des lectures relevées dans les deux configurations en exploitant la propriété de symétrie des deux configurations possibles, de sorte que tout effet dû à une erreur éventuelle de zéro dans le codeur d'angle de l'articulation de l'épaule soit annulé. Selon un premier aspect de l'invention, le point de référence mobile est amené en colncidence exacte avec le point de référence fixe, par exemple en engageant physiquement une bille portée par le bras mobile dans un siège fixe ; l'angle lu sur le codeur d'angle de coude est relevé à chacune des deux configurations, et l'erreur de zéro dans le codeur d'angle de coude est égale à la moitié de la différence entre la somme des deux lectures d'angle et la somme attendue (qui est égale à 00 ou 3600, en fonction des conventions utilisées pour exprimer les lectures). Ce premier aspect peut être utilisé pour découvrir une erreur de zéro d'angle de coude de grandeur arbitraire. Il est totalement indépendant d'une quelconque erreur de zéro d'angle du codeur d'épaule, et il ne fait appel à aucune information additionnelle telle que la longueur du segment d'avant-bras. Dans un second aspect de l'invention, le bras est commandé pour occuper les angles qui doivent théoriquement provoquer le déplacement du point de référence mobile en regard du point de référence fixe dans les deux configurations possibles, et la différence est mesurée entre les deux positions prises effectivement par le point de référence mobile, l'erreur de zéro du codeur d'angle de coude étant alors égale à une fonction trigonométrique de la différence mesurée entre les deux positions, divisées par la longueur du segment d'avant-bras, la fonction trigonométrique spécifique dépendant des conventions utilisées pour mesurer la différence des positions. Ce second aspect repose sur les connaissances précises de la longueur de l'avant-bras, mais cette longueur est généralement connue en pratique, avec une précision suffisante. La caractéristique la plus avantageuse du procédé ci-dessus, dans l'un ou l'autre de ses aspects, est qu'il permet de mesurer les erreurs de mise à zéro éventuelle de coude en s'affranchissant complètement de l'erreur de zéro du codeur d'angle d'épaule. Une fois que l'erreur de coude est connue et prise en compte, il devient possible d'estimer l'erreur de zéro sur l'épaule de différentes manières classiques. Toutefois, si le bras de robot inclût des segments additionnels en série, non seulement ce procédé peut être appliqué à n'importe quel couple de segments consécutifs, mais il peut aussi être appliqué sur le couple des deux segments extrêmes, qui sont ensuite verrouillés dans une configuration connue et traités ensemble comme un simple segment d'avant-bras, pour mesurer l'erreur de zéro à la prochaine articulation le long de la channe et ainsi de suite. Ceci présente l'avantage d'utiliser toujours le même point de référence mobile. L'invention concerne également un robot, dans lequel ledit procédé est mis en oeuvre en vue de réduire ou d'éliminer les effets d'une erreur de zéro, au moins dans le codeur d'angle de coude. DESCRIPTION BREVE DES DESSINS Deux modes de réalisation de l'invention seront décrits, à titre d'exemple, en référence aux figures des dessins annexés qui représentent des diagrammes géométriques pour décrire le principe de l'invention sur lesquels - la figure 1 schématise le premier mode de réalisation - la figure 2 schématise le deuxième mode de réalisation, DESCRIPTION DETAILLEE La figure 1 est une vue en plan, représentant un bras de robot à deux segments, comprenant un bras 10 et un avant-bras 12. L'une des extrémités du bras 10 est montée pivotante sur une structure fixe (non représentée), au moyen d'une articulation d'épaule à axe vertical au point d'origine 0. L'extrémité opposée du bras 10 est montée pivotante sur l'une des extrémités de }'avant-bras 12, au moyen d'une articulation de coude à axe vertical disposé au premier point intermédiaire li. L'extrémité opposée du segment d'avant-bras 12 (c'est-à-dire son poignet), comprend un point de référence qui est amené en coIncidence avec un point fixe de référence R, dont la position par rapport à l'origine O est fixe, mais ne nécessite pas d'entre connue en termes absolus avec un haut degré de précision.Par exemple, l'origine O peut être définie par rapport à une table de travail, et le point de référence fixe peut entre réalisé dans un bloc qui est temporairement fixé à la table de travail, seulement lors du calibrage du bras. Par souci de généralité, le segment de bras 10 a une longueur "L" différente de la longueur "l" du segment d'avant-bras, mais l'invention est également applicable au cas de deux segments ayant une longueur égale. Chacune des articulations comporte un codeur d'angle (non représenté) qui délivre un signal représentatif de l'angle dans cette articulation. L'angle au point d'origine O est mesuré par rapport à une direction fixe arbitraire 14. Le segment de bras est représenté comme formant un angle "a" par rapport à la direction 14. L'angle "b" de l'articulation de coude est mesuré par rapport à la direction 16 dans laquelle s'étend le segment d'avant-bras 12. Par convention, l'angle du coude est égal à zéro lorsque les deux segments 10 et 12 sont alignés, et aussi par convention, les deux angles sont mesurés dans la direction trigonométrique directe à partir de la direction respective de référence. D'autres conventions peuvent être adoptées sans modifier la base du procédé. Le procédé consiste à établir un point de référence R qui est fixe par rapport à l'articulation d'épaule à l'origine 0, et à provoquer la corncidence du point de référence mobile à l'extrémité du poignet, avec le point de référence fixe R dans chacune des deux configurations possibles du bras de robot. L'étape finale du procédé consiste à comparer la somme des deux angles donnés par le codeur d'angle de coude pour chacune de ces positions, avec la somme géométrique attendue, et à déduire l'erreur de mise à zéro à partir de la différence résultante. Sur les figures 1 et 2, une première configuration est dessinée en traits pleins (références 10 et 12). L'autre configuration possible est l'image spéculaire de la première autour d'une ligne imaginaire joignant le point R de référence à l'origine 0, et est tracée en traits interrompus. Le segment de bras et le segment d'avant-bras dans la seconde configuration portent respectivement les références 20 et 22, et le second point intermédiaire porte la référence I2. Le second angle de coude b2 est mesuré dans le sens direct, à partir de la direction 26', dans laquelle s'étend l'arrière-bras 20. En variante, une autre convention consiste à mesurer le second angle de coude b2 dans le sens horaire, et à lui donner un signe négatif pour obtenir bt2. Puisque les longueurs des segments ne changent pas, on peut voir par symétrie que bl à la même valeur et est de signe opposé à b'2, de sorte que la somme bl + b'2 est égale à zéro, ou que, alternativement, la somme bl + b2 est égale à 3600 ou 2 T radians. On observera que ceci s'applique indépendamment des valeurs des angles a1 et a2 de l'articulation d'épaule. La discussion géométrique ci-dessus se rapporte à une situation idéale. Dans un bras de robot réel, les angles spécifiés ci-dessus sont connus seulement avec une précision finie. Un type commun de codeur d'angle comprend un disque de codage avec des marques radiales multiples et un système optique de comptage et de décomptage. Les angles peuvent etre mesurés de cette manière avec une résolution d'environ 6 000 divisions par tour complet. Cette résolution établit une limite sur la répétabilité. Un problème indépendant réside dans la précision sur la mise à zéro. Il arrive souvent que la direction dans laquelle un codeur d'angle de robot indique un angle zéro diffère, en fait, de la vraie direction de zéro par un écart qui est plus grand que la limite de résolution. Un tel écart est une source d'erreur dans la détermination de la position absolue du bras de robot. Etant donné que l'écart de zéro du codeur d'angle de coude est un petit angle d en direction positive, comme représenté d'une manière exagérée aux points intermédiaires 11 et 12 par rapport aux directions erronées de référence 16' et 26', la première lecture donnée par le codeur d'angle de coude est (1) al = bl - d. De manière similaire, la seconde lecture donnée par le même codeur est (2) a2 = b2 - d. L'addition des équations (1) et (2) donne (3) al + a2 = bl i b2 - 2d. Ainsi, en utilisant la première convention mentionnée ci-dessus (4) d = g360 (al + a2) / 2, ou en utilisant la seconde convention (5) d = - (al + a2) / 2, on peut observer que, dans ce premier mode de réalisation, la précision du résultat obtenu dépend seulement de la précision avec laquelle les points de références coIncident, et de la précision de lecture de l'angle de coude. En particulier, la longueur 'll't de l'avant-bras n'a pas d'effet sur la précision du résultat final. Il en résulte que le point de référence mobile peut être monté par des moyens fixés temporairement sur l'avant-bras. La fixation nécessite seulement d'être localisée sur l'axe longitudinal du segment d'avant-bras et d'être assurée seulement pour le temps nécessaire à la mise en oeuvre du procédé, mais elle ne nécessite pas d'etre positionnée précisément sur l'axe. Un tel moyen temporaire pour réaliser le point de référence mobile peut être constitué par une bille d'acier dur à l'extrémité d'une tige et le point de référence fixe correspondant peut etre réalisé par une rainure en V ou une empreinte en pyramide constituant un siège dans un bloc métallique fixé temporairement sur la surface de travail qui, à son tour, est fixé par rapport à l'origine du point 0. Une coincidence est assurée en pressant la bille dans la rainure ou dans l'empreinte. Dans le second mode de réalisation, le point de référence fixe R est un point purement théorique Ro, dont les coordonnées en X et Y, XO et YO, sont données par les équations (6) X = - L cos al - l cos cl. (7) YO = L sin al + 1 sin cl. ou comme suit (8) XO = - L cos a2 - 1 cos c2. (9) YO = L sin a2 + 1 sin c2. dans lesquelles : ci = ai + bi, l'axe des Y étant considéré comme positif en allant vers le bas à partir de l'origine 0, alors que l'axe des X est pris comme étant positif à partir de la droite du zéro de manière conventionnelle. Deux essais sont faits pour déplacer le point de référence mobile, de sorte qu'il coïncide avec le point théorique R,. Malheureusement, les valeurs théoriques de a et de b ne peuvent pas être obtenues en pratique. En utilisant la convention que l'erreur de zéro sur b est un petit angle positif d, et en faisant abstraction d'une éventuelle erreur de zéro sur a, il est clair que le point de référence mobile prend, en réalité, deux positions différentes R1 et R2, de sorte que tous calculs faits d = 4 /l.f (c), dans laquelle # est la différence des coordonnées d R1 et R2, et la fonction trigonométrique f(c) est une fonction d'angles théoriques seulement, qui peut donc être calculée avec toute précision voulue.De plus, Ro peut être délibérément sélectionné soit pour maximiser la précision de mesure (en rendant le module de f(c) aussi grand que possible c'est-à-dire 2), soit pour simplifier les calculs. Les calculs sont simplifiés, en particulier lorsque tous les angles ai et bi sont choisis -pour être des multiples de 900, de sorte que la valeur de f(c) soit égale à t 1. Divers fonctions trogonométriques f(c) peuvent être utilisées selon que l'on choisit d comme représentant la différence entre R1 et R2 selon l'axe des X, ou selon l'axe des Y, ou la distance même entre R1 et R2. Ce choix est guidé par les exigences des instruments de mesure utilisés.Dans le cas où # représente la distance entre R1 et R2, et appliquant la loi des cosinus et les identités trigonométriques concernant les demi-angles, on obtient sin (d/2) = ##/41sin C2 - C1 2 soit, pour un angle d/2 d = #/#sin C2 -C1 d = + /21sin ( ) Comme les angles ci sont purement théoriques, on peut choisir le point R0 tel que: C2 C1 \ 2 #----# = 1, donnant : d= ##/21. 2 Dans une configuration géométrique telle que représentée sur la figure 2, le signe + ou - de d est le même que le signe + ou - de Y2 - Y1. Une fois que l'erreur de calage de zéro a été déterminée selon le procédé, différentes mesures peuvent être prises pour améliorer en pratique la précision du robot. Pour un robot existant donné, une possibilité est d'inclure un paramètre pour le terme d'erreur "d" dans le logiciel qui est utilisé pour la commande du robot et ensuite de compiler un Jeu d'instructions spécifiques au robot. Un avantage de cette solution est qu'elle peut être mise en oeuvre sans démantèlement ou ajustement du robot un inconvénient, au moins dans une usine employant plus d'un robot, est qu'il est nécessaire de compiler un jeu d'instructions différent pour chaque robot. Une autre possibilité consiste à faire appel à la technique ci-dessus pendant la fabrication des robots pour ajuster les positions physiques des composants des codeurs d'angle Jusqu'à ce que les erreurs de zéro soient trop petites pour être détectées en raison de la résolution des codeurs. Toutefois, celà peut être difficile étant donné la petitesse des angles. Entre ces deux solutions extremes (logiciel extérieur ou élimination physique), il existe deux autres solutions qui peuvent être avantageuses. L'une consiste à incorporer dans le robot des moyens qui peuvent être réglés, soit lors de la fabrication, soit lors de la maintenance, pour additionner ou soustraire un écart sur les lectures de l'angle brut données par chacun des codeurs. La seconde consiste à prévoir des moyens pour utiliser le procédé ci-dessus automatiquement, chaque fois que le robot est mis en marche. Cette technique est particulièrement adaptée aux robots dans lesquels chaque codeur d'angle génère une lecture sous -forme d'impulsions appliquées sur un compteur-décompteur. Les robots accomplissent toujours une séquence d'initialisation assez compliquée, et la variante suivante peut etre avantageuse. Des moyens de détermination de zéro comme des contacteurs de butée relativement imprécis peuvent être utilisés au début de la séquence d'initialisation donnant au robot une précision suffisante pour qu'il soit capable d'atteindre un point de référence fixe en un endroit permanent et connu d'avance. Une fois que l'erreur de zéro a été déterminée par le procédé ci-dessus, l'articulation en question peut être ramenée à sa position zéro réelle et, alors que l'articulation est dans cette position, le compteur-décompteur répondant aux impulsions du codeur peut être remis à zéro. La présente invention ne se rapporte pas directement aux techniques particulières de formation des points de référence fixes ou mobiles, ni aux techniques disponibles pour amener ces points en coincidence ni, alternativement, pour mesurer les différences de position. Toutefois, en règle générale, les erreurs dans la repétabilité d'un robot ne dépassent pas l/lOème de mm, alors que les erreurs absolues peuvent atteindre 1 mm. Les valeurs exactesdépendent de paramètres tels que la longueur du bras (par exemple de 300 à 500 mm), la résolution du codeur d'angle (par exemple I pour 6000), et de la configuration du bras de robot. Les moyens utilisés pour établir la coincidence ou pour mesurer la différence de positions doivent être au moins du même ordre de grandeur que la répétabilité. Ceci implique l'emploi des jauges à vis micrométrique ou tout autre équipement de mesure de précision, par exemple basé sur les interférences lumineuses. Dans ses deux aspects, le procédé peut être mis en oeuvre soit manuellement, soit automatiquement, à l'aide de servo-systèmes. Le procédé peut etre modifié de différentes façons et, par exemple, une pluralité de points de référence peut etre utilisée, une moyenne étant effectuée sur les différentes mesures. L'écart d'erreur est alors connu dans une fraction de la résolution d'angle. Un écart fractionnel peut être représenté par une sortie paramétrable d'un système CAO, ou en ajustant physiquement le positionnement des composants du codeur d'angle, même si il ne peut pas être corrigé par les autres techniques mentionnées ci-dessus. Un écart fractionnel d'erreur de zéro peut aussi être obtenu directement (sans moyenne) par le second aspect, puisque les lectures de l'incrémentation du codeur d'angle ne sont pas prises directement en compte dans le calcul. Toutefois, les lectures d'angle influencent la position dans laquelle le point de référence mobile vient au repos, et il peut être avantageux d'utiliser non seulement une pluralité de points de référence fixes, mais aussi de comparer les résultats obtenus en déplaçant 1' avant-bras dans chacune de ses positions dans le sens horaire et anti-horaire. La présente description fait abstraction des autres sources d'erreurs (absolues et relatives) présentes dans un bras de robot. Si de telles erreurs ont un effet plus grand que les erreurs de mise à zéro, elles doivent etre prises en compte avant la mise en oeuvre du procédé. REVENDICATIONS 1. Procédé de calage d'un robot par détermination des erreurs de réglage de zéro dans au moins l'un des codeurs d'angle d'un bras de robot, à au moins deux segments articulés en série autour d'articulations ayant des axes parallèles et comportant chacune un codeur d'angle, comprenant en série une articulation d'épaule, un segment de bras (10, 20), une articulation de coude, un segment d'avant-bras (12, 22) présentant une extrémité de poignet, et un point de référence proche de l'extrémité de poignet d'avant-bras, ledit point de référence étant constitué par un point fixe sur l'axe longitudinal du segment d'avant-bras, tout en étant dit point de référence "mobile" puisque le bras est mobile, le procédé comprenant les étapes suivantes - définition d'un point de référence fixe (R), ce point se trouvant en une position fixe par rapport à l'axe (O) de l'articulation d'épaule - déplacement du point de référence mobile en coincidence avec le point de référence fixe (R), le bras prenant successivement chacune des deux configurations symétriques possibles - lecture des deux angles (bl, b2) de l'articulation de coude, et, - détermination de l'erreur de zéro dans le codeur d'angle de l'articulation de coude comme étant égale à la moitié de la différence entre la somme des deux lectures d'angle et la somme théorique. 2. Procédé selon la revendication 1, caractérisé en ce que ledit point de référence mobile est matérialisé par une bille fixée sur l'avant-bras, le point de référence fixe (R) étant matérialisé par un bloc recevant un siège pour la bille. 3. Procédé de calage d'un robot par détermination des erreurs de réglage de zéro dans au moins l'un des codeurs d'angle d'un bras de robot, à au moins deux segments articulés en série autour d'articulations ayant des axes parallèles et comportant chacune un codeur d'angle, comprenant en série une articulation d'épaule, un segment de bras (10, 20), une articulation de coude, un segment d'avant-bras (12, 22), et un point de référence proche de l'extrémité de poignet de la bielle d'avant-bras, ledit point de référence étant constitué par un point fixe sur l'axe longitudinal du segment d'avant-bras (12, 22), tout en étant dit point de référence "mobile" puisque le bras est mobile, le procédé comprenant les étapes suivantes - définition d'un point de référence fixe, ce point se trouvant en une position fixe par rapport à l'axe (O) de l'articulation d'épaule - amenée du bras dans les deux configurations théoriques qui devraient amener le point de référence mobile en coincidence avec le point de référence fixe - mesure de la différence entre les deux positions occupées réellement par le point de référence mobile ; et - déduction de l'erreur de zéro du codeur d'angle de l'articulation de coude, égale à une fonction trigonométrique de la différence mesurée des positions divisée par la longueur "1" de l'avant-bras. 4. Procédé selon la revendication 3, caractérisé en ce que le point de référence fixe est choisi de sorte que lesdits angles théoriques soient des multiples de Sao. 5. Procédé de fabrication d'un robot à bras constitué de segments multiples, caractérisé en ce que le calage de zéro, dans au moins un codeur d'angle de coude dudit robot, est physiquement obtenu par le procédé selon l'une quelconque des revendications précédentes. 6. Robot à bras à segments multiples incluant des moyens électriques de correction de lecture d'au moins l'angle du codeur de l'articulation de coude, pour prendre en compte l'erreur de zéro déterminée par le procédé selon l'une des revendications I à 4. 7. Robot selon la revendication 6, caractérisé en ce que lesdits moyens comprennent des moyens pour ajouter ou soustraire un terme de correction d'erreur auxdites lectures. 8. Robot ayant un bras à segments multiples et comportant des moyens de lecture numérique d'au moins un codeur d'angle, lesdites lectures étant obtenues par un compteur-décompteur pour mesurer les variations d'angle, ledit robot comprenant des moyens pour mettre en oeuvre automatiquement le procédé selon l'une des revendications 1 ou 3 lors de la séquence d'initialisation, des moyens pour mettre l'angle de coude dans sa position de zéro exacte, et des moyens de remise à zéro du compteur-décompteur lorsque ledit angle de code est dans sa position de zéro. 9. Procédé de mise en oeuvre d'un robot utilisant un bras articulé comprenant les étapes suivantes - détermination de l'erreur de zéro, au moins dans le codeur de l'angle du robot par le procédé selon l'une des revendications 1 à 4 - compensation de l'erreur de zéro en commandant le mouvement dudit bras de robot au moyen d'un logiciel programmé pour prendre en compte ladite erreur.