Brevet FR2696969A1 — publié le 19940422

PROCEDE D'ETALONNAGE D'UN ROBOT La présente invention concerne les procédés d'étalonnage d'un robot destinés à réajuster périodiquement les paramètres intrinsèques du robot. L'article intitulé "A Survey of Kinematic Calibration" paru dans "The Robotics Review", 1989, N" 1, pages 207-242, décrit des procédés d'étalonnage de robot. Généralement, à chaque segment i d'un bras de robot, on associe un référentiel Ri constitué par un point d'origine Oi et un système de vecteurs orthonormé (xi,yi,zi). Le référentiel du robot est le référentiel noté RO qui correspond au référentiel du support fixe sur lequel est monté le robot. La position du segment i par rapport au segment i-l qui le précède s'exprime par une matrice 4x4 notée i T (Pi,#i) i-l qui est en outre la matrice de passage du référentiel Ri au référentiel Ri-l. Le chapitre 3 "Manipulator Kinematics" de l'ouvrage intitulé "An Introduction to Robotics" par John J. Craig, Addison-Wesley Publishing Company, 1986, décrit en détail comment obtenir les coefficients de cette matrice dans le cadre d'un modèle de paramétrage dit de Denavit-Hartenberg, et comment manipuler ces matrices, notamment pour connaltre la position d'un segment quelconque par rapport à un autre segment quelconque, en en particulier par rapport au référentiel O du robot. Chacun des coefficients des trois premières rangées de cette matrice T est exprimé en fonction de quatre paramètres dont trois sont constants et un variable. Selon le modèle de Denavit-Hartenberg, ces paramètres sont - l'angle de rotation si du segment i par rapport au segment i-l (ce paramètre, ci-après appelé variable articulaire, est égal à la différence entre la mesure fournie par un capteur de rotation et une valeur de décalage eOi, cette valeur étant en fait un cinquième paramètre constant) - la distance ai entre les axes des articulations du segment i ; - un angle cri de torsion de segment ; et - une distance di de déport d'articulation. Lorsque un segment i du robot est articulé, les paramètres constants, notés Pi, sont eo i, ai, i, di et le paramètre variable est ei. Ci-après, on suppose que les segments sont articulés (si un segment i est coulissant par rapport à un autre, le paramètre variable est di et les autres sont constants). Les paramètres intrinsèques d'un robot, notés p ci-après, comprennent 1 'ensemble des paramètres constants Pi (ou des paramètres équivalents selon d'autres modèles de paramétrage). Des valeurs estimées de la manière la plus précise possible de ces paramètres intrinsèques sont stockées dans un système informatique pour déterminer à tout instant les positions des segment du robot à l'aide des mesures fournies par les capteurs de rotation. Au cours de l'utilisation du robot, les paramètres réels peuvent être modifiés involontairement à cause, par exemple, de déformations des segment du robot. Les paramètres stockés deviennent alors erronés et il faut les réajuster. C'est précisément le but des procédés d'étalonnage de robot. La figure 1 est destinée à illustrer un procédé classique d'étalonnage d'un robot. Le robot, 10, est fixé sur un sol 12 et porte, à l'extrémité du bras, un outil 14. Le robot est relié à un circuit de commande de puissance 16 lui-meme relié à un ordinateur 18. Selon un procédé classique d'étalonnage du robot, on dispose à proximité du robot deux théodolites 20, 21, positionnés avec précision l'un par rapport à l'autre et reliés à l'ordinateur 18. Pour effectuer 1 'étalonnage du robot, on rapporte un repère R sur l'outil 14 et on fait prendre au robot un grand nombre de positions différentes. Pour chaque position k, on vise le repère R avec chaque théodolite 20, 21, ce qui permet par triangulation de déterminer les coordonnées (x(k),y(k),z(k)) de ce repère dans un référentiel lié aux théodolites. On sait trouver une fonction vectorielle F reliant les coordonnées théoriques (xt,yt,zt) du repère R, dans le référentiel des théodolites, aux variables articulaires e = (01, 02, e...) et aux paramètres liés à la configuration de mesure de la figure 1. Ces paramètres comprennent les paramètres intrinsèques p susmentionnés du robot ainsi que les paramètres, que l'on appelera paramètres de mesure, reliant le repère R, d'une part, et le référentiel des théodolites, d'autre part, au référentiel du robot. Les paramètres de mesure sont, bien entendu, aussi définis selon la le modèle de paramétrage choisi du robot. Lorsque les mesures ont été effectuées pour toutes les positions, les paramètres estimés du robot et les paramètres de mesure, que 1 'on aura préalablement estimés grossièrement, sont réajustés par itérations, par exemple à l'aide de la méthode dite de Levenberg-Marquardt, pour faire tendre les coordonnées théoriques calculées à l'aide de la fonction F vers les coordonnées mesurées. Cette méthode est décrite dans le chapitre 14.4 "Nonlinear Models" de l'ouvrage intitulé "Numerical Recipies: The Art of Scientific Computing" par B.P. Flannery et al., Cambridge University Press, England, 1986. Selon cette méthode on minimise un critère qui est la somme des carrés des écarts entre les coordonnées mesurées (x,y,z) et les coordonnées théoriques (xt,yt,zt). Bien entendu, lors des itérations, on réajuste inévitablement les paramètres de mesure, mais ceux-ci ne sont plus utilisés une fois que l'on a trouvé les nouvelles valeurs des paramètres du robot. Le procédé décrit en relation avec la figure 1 s' avère, à l'heure actuelle, être l'un des moins coûteux à mettre en oeuvre au point de vue du matériel nécessaire et du temps nécessaire pour effectuer les mesures. Toutefois, les théodolites sont relativement coûteux en eux-mêmes et le temps nécessaire aux mesures est long car il faut à chaque position (il y en faut une centaine) viser le repère R avec soin si l'on veut obtenir des mesures précises. Un objet de la présente invention est de prévoir un procédé d'étalonnage de robot nécessitant un investissement matériel relativement faible et un temps de manipulation particulièrement court. Cet objet est atteint grâce à un procédé d'étalonnage de robot, comprenant les étapes suivantes : disposer à proximité du robot un plan de mesure affecté d'un référentiel ; fixer une source laser sur un bras du robot ; faire prendre au robot un ensemble de positions où le faisceau laser intercepte le plan de mesure, relever les coordonnées réelles des points d'intersection du faisceau laser avec le plan, et relever les valeurs correspondantes des variables articulaires du robot déterminer la fonction vectorielle liant les coordonnées théoriques des points d'intersection aux variables articulaires et à des paramètres estimatifs liés au robot et aux positions relatives par rapport au robot du faisceau laser et du plan de mesure ; et ajuster les paramètres estimatifs de manière à faire tendre les coordonnées théoriques vers les coordonnées réelles relevées. Selon un mode de réalisation de la présente invention, le plan de mesure est une mire munie de points de repère et le procédé comprend les étapes suivantes : relever à l'aide d'une caméra reliée à un système informatique les positions des points de repère et faire correspondre les pixels de 1' image à des coordonnées de points de la mire ; et relever les coordonnées des points d'intersection du faisceau laser avec la mire à l'aide de la caméra. Selon un mode de réalisation de la présente invention, le plan de mesure est formé par un capteur optique matriciel relié à un système informatique. Selon un mode de réalisation de la présente invention, la mire est une plaque opaque dans laquelle les points de repère sont matérialisés par des ouvertures éclairées à partir de la face arrière de ladite plaque. Selon un mode de réalisation de la présente invention, la mire est constituée d'une première plaque opaque dans laquelle les points de repère sont matérialisés par des ouvertures et d'une deuxième plaque opaque sans ouvertures, ces deux plaques étant insérées successivement dans un même support, l'étape consistant à relever les positions des points de repère étant mise en oeuvre tandis que la première plaque est en place. Selon un mode de réalisation de la présente invention, on fait prendre au robot un premier et un deuxième ensemble de positions en modifiant, entre le premier et le deuxième ensemble, la position de la source laser de manière connue par rapport à un support d'outil. Selon un mode de réalisation de la présente invention, on fait prendre au robot un premier et un deuxième ensemble de positions en modifiant, entre le premier et le deuxième ensemble, la position de la mire (M) de manière connue ou non. Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention sont exposés en détail dans la description suivante de modes de réalisation particuliers faite en relation avec les figures jointes parmi lesquelles la figure 1, précédemment décrite, est destinée à illustrer un procédé classique d'étalonnage de robot ; et la figure 2 est destiné à illustrer le procédé d'étalonnage d'un robot selon la présente invention. Dans la figure 2, on retrouve un robot 10 fixé sur un sol 12 et commandé par un ordinateur 18 par l'intermédiaire d'un circuit de commande de puissance 16. Selon la présente invention, une source laser 24 est montée à 1 'extrémité du bras du robot 10. A proximité du robot est disposée une mire M, par exemple posée sur le sol 12. La mire M comprend une face plane tournée vers le robot et observée par une caméra 26 fixe par rapport à la mire M. La caméra 26 est reliée à une carte de numérisation d'image, non représentée, installée dans l'ordinateur 18 et dont les informations sont exploitées par un logiciel de traitement d' image classique. Une étape préliminaire du procédé selon l'invention consiste à déterminer un référentiel (par exemple constitué d'axes orthogonaux xM et yM) de la face de la mire M dans l'image observée par la caméra 26. Pour cella, la mire M est munie de points de repère disposés, par exemple, en rangées et colonnes équidistantes. Pour que la caméra et le logiciel de traitement d' image puissent efficacement détecter et isoler les images des points de repère, les points de repère sont de préférence constitués de trous percés à travers la mire M, ce qui permet d'obtenir des taches lumineuses en éclairant la mire de derrière.Le logiciel de traitement d'image pourra alors fournir le barycentre des taches lumineuses observées, ce qui permet d'établir une correspondance entre tout pixel de 1' image observée par la caméra 26 et un point associé de la face de la mire, de coordonnées (xM,yM). Ensuite, on fait prendre au robot N positions où le faisceau laser fourni par la source 24 intercepte la mire M dans une zone observée par la caméra 26. Pour chaque position k, on enregistre les coordonnées (xM(k),yM(k)) du point d'intersection du faisceau laser avec la mire, ainsi que les variables articulaires associées o(k) = (01(k), e2(k)... ). Les coordonnées (xM(k),yM(k)) sont fournies par le logiciel de traitement d'image qui détermine la position du barycentre de la tache lumineuse formée par le faisceau laser sur la mire M. Bien entendu, il serait gênant que le faisceau laser intercepte la mire à l'endroit où se trouve un trou de repère. Pour éviter cela, la mire pourra comprendre un système à tiroir dans lequel on glisse d'abord une plaque munie des trous de repère que l'on remplace ensuite par une plaque sans trous dont la face exposée au laser est au même endroit que celui où se trouvait la face de la plaque trouée. Chacune des N positions de mesure du robot peut être obtenue à l'aide d'une télécommande. De préférence, le robot est mis en mode d'apprentissage pour enregistrer les positions de mesure, ce qui permet d'exécuter plusieurs fois, en cas de besoin, les N mesures. Le nombre N de positions différentes que l'on doit faire prendre au robot dépend du nombre d'axes de celui-ci et du choix judicieux des positions par rapport à la mire. En théorie, le nombre minimal de positions est égal à la moitié du nombre de paramètres à réajuster. Toutefois, en pratique, il faut une centaine de positions pour un robot six axes. Les paramètres que l'on cherche à réajuster sont, dans la disposition de la figure 2, bien sûr les paramètres intrinsèques p du robot, mais inévitablement aussi des paramètres constants reliant le laser 24 au dernier segment n du robot, notés p', et des paramètres constants reliant la mire M au robot, notés pM. Les paramètres p' et pM sont, bien entendu, définis selon le modèle de paramétrage choisi pour le robot. Le montage du laser sur le dernier segment n (par exemple le segment 4 dans la figure) introduit une matrice supplémentaire laser T (p') n qui est fonction seulement des paramètres p', qui sont grossièrement estimés initialement. La mire M est reliée au référentiel O du robot par une matrice O T (PM) M qui est fonction seulement des paramètres pM, qui sont aussi grossièrement estimés initialement. Le laser 24 est relié au référentiel O du robot par une matrice laser 1 n laser T (p,p',,e) = T (pî,el)... T (p4,e4) T (p) O 0 3 n En partant de l'hypothèse que le faisceau laser constitue un axe supplémentaire du robot, une colonne connue de cette matrice contient les coordonnées (xU,yU,zU)O d'un vecteur U donnant la direction du faisceau laser, et une autre colonne connue contient les coordonnées (xP ,yP, zP )o d'un point P par où passe le faisceau laser, ces coordonnées étant exprimées dans le référentiel O du robot. Les coordonnés (xU,yU,zU)M du vecteur U et (xP,yP,zP)M du point P exprimées dans le référentiel de la mire M sont déterminées par les relations suivantes xU M xU xP M xP yU = T yP = T yP zU O zP O zP M O M O Les coordonnées théoriques (xMt,yMt,zMt) d'intersection du faisceau laser avec la mire sont données par xMt xP - (zP/zU) xU yMt = yP - (zP/zU) yU zMtM M On a ainsi trouvé une fonction vectorielle F permettant de calculer les coordonnées théoriques (xMt,yMt) du point d'intersection du faisceau laser avec la mire en fonction des paramètres p, p' et pM et en fonction des variables articulaires o. Lorsque le robot aura pris les N positions, on aura enregistré N coordonnées (xM(k) ,yM(k)) (k=1... N) de points d'intersection du faisceau laser avec la mire, et N jeux correspondants o(k) de variables articulaires. On dispose alors de N équations sous la forme (xMt(k),yMt(k)) = F(p,p',pM,#(k)). On réajuste par itérations de manière connue (par exemple selon l'algorithme dit de Levenberg-Marquardt précédemment mentionné) les paramètres p, p' et pM de manière à faire tendre les coordonnées théoriques (xMt(k),yMt(k)) vers les coordonnées mesurées correspondantes (xM(k),yM(k)). Afin d'éviter un temps de calcul trop long ou une éventuelle divergence, on pourra donner des valeurs de paramètres initiaux issues, soit d'un étalonnage précédent, soit d'une estimation grossière. A la fin de ces itérations, on aura réajusté les paramètres intrinsèques p du robot et l'on aura également ajusté les paramètres p' et pM reliant respectivement le laser au robot et la mire au robot. Ces paramètres p' et PM ne sont plus nécessaires par la suite. Un avantage du procédé de l'invention est que le matériel nécessaire à le mettre en oeuvre, à savoir une caméra, une carte de numérisation, une mire, et un laser à monter sur le robot, est d'un coût inférieur à celui des théodolites de la figure 1. De plus, un opérateur n'a plus qu'a positionner le robot pour que le faisceau laser intercepte la mire, alors que dans le procédé classique décrit en relation avec la figure 1 il fallait en outre, pour chaque position, soigneusement viser un point de repère avec chacun des théodolites. Un autre avantage du procédé selon l'invention est que les positions enregistrées en mode d' apprentissage du robot peuvent être répétées lors d'une séance subséquente d'étalonnage. Il suffit alors de replacer la mire à son endroit précédent que l'on aura repéré à environ un centimètre près, par exemple, par des marques sur le sol. On s'économise alors les étapes de positionnement du robot. Il est alors utile de conserver les paramètres p' et pM trouvés lors de la séquence précédente. Dans le procédé tel que décrit jusqu'ici, on part de l'hypothèse que le faisceau laser correspond à un axe supplémentaire du robot. Pour définir cet axe supplémentaire, deux des paramètres p' peuvent être quelconques (i' et d') et on les choisit arbitrairement nuls (0' et d'). En effet, le paramètre (e') de rotation autour de l'axe du faisceau laser et le para mètre (d') de translation dans la direction du faisceau peuvent prendre une infinité de valeurs. Ce sont les paramètres p' restants (a' et (x') qui sont ajustés par itération et qui permettent de trouver la fonction vectorielle F susmentionnée grâce à deux des colonnes de la matrice reliant le laser au dernier segment. Le contenu des deux autres colonnes de cette matrice est arbitraire et n'est pas utilisé. Ainsi, la matrice reliant le laser au dernier segment n du robot est incomplètement définie, ce qui veut dire que l'on ne peut pas connaître toutes les positions de l'outil (le laser 24) manipulé par le robot. Selon un mode de réalisation de l'invention, on propose de trouver une définition complète de la matrice reliant un outil au dernier segment du robot. Pour cela, on monte dans un porte-outil de caractéristiques précises et connues du dernier segment du robot un support de laser particulier fabriqué avec soin. Ce support comporte deux lasers dont les faisceaux sont coplanaires et perpendiculaires, ou permet de positionner le même laser dans des première et deuxième positions de sorte que les faisceaux soient coplanaires et perpendiculaires d'une position à l'autre. Il est possible, grâce à des appareils de mesure, de déterminer avec précision la matrice outil T laser reliant le support laser à un outil à monter dans le porte-outil. On procède à une série de N mesures dont la moitié, par exemple, est effectuée avec le laser dans la première position, et le restant est effectué avec le laser dans 1' autre position. On émet comme hypothèse que chacun des faisceaux laser est confondu avec un axe du référentiel du support laser. Ceci permet de trouver dans une colonne connue de la matrice reliant le support laser au référentiel du robot un vecteur U dirigeant le premier faisceau laser, un vecteur V dirigeant le deuxième faisceau laser dans une autre colonne connue, et enfin les coordonnées du point P d'intersection des deux faisceaux laser dans une troisième colonne connue. A l'aide du point P et du vecteur U, on trouve, comme cela a été décrit précédemment, une fonction vectorielle F1 reliant les coordonnées théoriques du point d' intersection du premier faisceau laser avec la mire aux variables articulaires 0 et aux paramètres p, p', pM. A l'aide du point P et du vecteur V, on trouve une deuxième fonction vectorielle F2 reliant les coordonnées théoriques du point d ' intersection du deuxième faisceau laser avec la mire aux variables articulaires o et aux paramètres p, p', pM. Pour les premières mesures, on ajuste par itérations, à l'aide de la fonction F1, les paramètres p, pM et les paramètres p' que 1 'on peut définir. Pour les deuxièmes mesures, on ajuste par itérations, à l'aide de la fonction F2, les paramètres p, pM et les paramètres p' restants. A la fin de ces itérations on aura déterminé tous les paramètres p' permettant de définir la matrice reliant le support laser au dernier segment n du robot laser T (p') n Finalement, la matrice reliant 1 'outil au dernier segment du robot est donnée par la relation suivante outil laser outil T = T (p') T n n laser La précision des mesures obtenues dépend de la résolution de 1 'élément capteur de la caméra et des dimensions de la zone observée par la caméra. Plus la résolution du capteur est grande et plus la zone observée est petite, meilleure est la précision. En utilisant un élément capteur de 512 x 512 pixels, on obtient une précision de 0,05 mm pour une zone observée de 2 x 2 cm. Selon un mode de réalisation, la mire M est remplacée par un élément capteur de caméra ou tout autre capteur optique matriciel de résolution équivalente. Ainsi, on peut s 'affranchir de l'étape consistant à faire correspondre le référentiel de la mire à celui de l'image formée, puisque le référentiel de la mire n' est alors autre que le référentiel de 1' image. Si les N positions du robot ou la position de la mire ne sont pas judicieusement choisies, il est possible que l'on se heurte à une non convergence de certains paramètres due à l'existence de plusieurs valeurs possibles de ces paramètres. Selon un mode de réalisation de l'invention, on propose pour pallier cet inconvénient d'effectuer une série de mesures avec la mire dans une première position et une deuxième série avec la mire dans une deuxième position. Pour cela, on peut prévoir deux mires fixes 1 'une par rapport à 1 'autre et reliées par une matrice connue, ce qui évite la détermination à deux reprises des paramètres pM. De nombreuses variantes et modifications de la présente invention apparaîtront à l'homme du métier. On a décrit un mode de réalisation où deux faisceaux laser étaient coplanaires et perpendiculaires. Rien n' empêche de choisir deux faisceaux laser non coplanaires et non perpendiculaires ; il est alors plus complexe de déterminer les fonctions vectorielles F1 et F2. REVENDICATIONS 1. Procédé d'étalonnage de robot, caractérisé en ce qu' il comprend les étapes suivantes - disposer à proximité du robot (10) un plan de mesure (M) affecté d'un référentiel - fixer une source laser (24) sur un segment du robot ; - faire prendre au robot un ensemble de positions où le faisceau laser intercepte le plan de mesure, relever les coordonnées réelles (xM(k),yM(k)) des points d'intersection du faisceau laser avec le plan, et relever les valeurs correspondantes des variables articulaires (o(k)) du robot - déterminer la fonction vectorielle (F) liant les coordonnées théoriques (xMt(k),yMt(k)) des points d'intersection aux variables articulaires (o(k)) et à des paramètres estimatifs (p, p', PM) liés au robot et aux positions relatives par rapport au robot du faisceau laser et du plan de mesure ; et - ajuster les paramètres estimatifs de manière à faire tendre les coordonnées théoriques vers les coordonnées réelles relevées. 2. Procédé selon la revendication 1, caractérisé en ce que le plan de mesure est une mire (M) munie de points de repère et en ce que le procédé comprend les étapes suivantes - relever à l'aide d'une caméra (26) reliée à un système informatique les positions des points de repère et faire correspondre les pixels de l'image à des coordonnées de points de la mire ; et - relever les coordonnées des points d'intersection du faisceau laser avec la mire à l'aide de la caméra. 3. Procédé selon la revendication 1, caractérisé en ce que le plan de mesure est formé par un capteur optique matriciel relié à un système informatique. 4. Procédé selon la revendication 2, caractérisé en ce la mire (M) est une plaque opaque dans laquelle les points de repère sont matérialisés par des ouvertures éclairées à partir de la face arrière de ladite plaque. 5. Procédé selon la revendication 4, caractérisé en ce la mire (M) est constituée d'une première plaque opaque dans laquelle les points de repère sont matérialisés par des ouvertures et d'une deuxième plaque opaque sans ouvertures, ces deux plaques étant insérées successivement dans un même support, l'étape consistant à relever les positions des points de repère étant mise en oeuvre tandis que la première plaque est en place. 6. Procédé selon la revendication 1, caractérisé en ce que lton fait prendre au robot un premier et un deuxième ensemble de positions en modifiant, entre le premier et le deuxième ensemble, la position de la source laser de manière connue par rapport à un support d'outil. 7. Procédé selon la revendication 1, caractérisé en ce que 1 'on fait prendre au robot un premier et un deuxième ensemble de positions en modifiant, entre le premier et le deuxième ensemble, la position de la mire (M) de manière connue ou non.