FR 2691093 A1 19931119 FR 9206150 A 19920512 ROBOT DE GUIDAGE DE GESTES ET PROCEDE DE COMMANDE La présente invention conoerne les robots commiandés par un système informatique pour faire suivre à un outil soli- daire d'un bras de robot une trajectoire mémorisée. De nombreux robots peuvent déplacer un outil, tel qu'une fraise, une torche à souder selon une trajectoire précise prémémorisée Pour déplacer un outil selon N degrés de liberté, il faut un robot d'au moins N axes Un degré de liberté correspond à un mouvement de translation ou de rotation selon un axe d'un référentiel tridimensionnel Avec 6 degrés de liberté, toutes les combinaisons de translation et de rotation d'un outil sont possibles (l'outil peut être positionné n'importe o selon n'importe quelle orientation à l'intérieur d'un champ d'action du robot) La relation entre les variables articulaires (les angles de rotation des axes du robot) et la position et l'orien- tation de l'outil s'écrit: P = f(A) o P est un vecteur dont les composantes représentent les coordonnées de position xi (i=l 3) et d'orientation ri (i= 1 3) de l'outil, o A est un vecteur dont les composantes représentent les variables articulaires aj (j=l 6), et o f est une fonction vectorielle. Une petite variation d A des variables articulaires autour du vecteur A est alors liée à une petite variation d P du vecteur de position par la relation d P = lJ(A)l d A, o EJ(A)l est une matrioe jacobienne dont les coefficients sont des fonctions des composantes du vecteur A. Vu la précision des trajectoires obtenues par des robots, on serait tenté de les utiliser en chirurgie Toutefois, les robots actuels, lorsqu'ils sont en mouvement, présentent des dangers qui les rendent inappliquables à la chirurgie En effet, en cas de défaillanoe du circuit de cammande d'un moteur du robot ou tout simplement à cause de parasites sur le secteur tels qu'une brève interruption de courant, le robot pourrait effectuer un geste incontrôlé de grande amplitude et de puis- sance considérable qui mettrait gravement en danger un patient subissant un acte chirurgical déterminé par le robot. Actuellement, on utilise en chirurgie des robots seulement pour des opérations de prépositionnement, oes robots étant bloqués lors du traitement chirurgical Par exemple, un traitement neuro-chirurgical consiste à enfoncer une aiguille dans le cerveau à une position très précise Pour cela, on utilise un robot qui positionne un cylindre de guidage de l'aiguille de façon précise par rapport à la tête du patient à l'aide d'un système permettant de repérer la position de la tête Une fois que le cylindre de guidage est positionné (suf- fisamment loin du patient pour qu'un geste incontrôlé du robot ne puisse pas l'atteindre), les axes du robot sont bloqués et son alimentation est coupée Après cela, le chirurgien enfonce l'aiguille de façon souhaitée dans le cylindre de guidage. Ainsi, en chirurgie, l'utilisation de robots est actuellement limitée au repérage d'une position initiale précise. Un objet de la présente invention est de prévoir une nouvelle conèption de robot permettant de faire suivre à un outil des trajectoires précises sans qu'il y ait de risque de35 gestes incontrôlés. Un autre objet de la présente invention est de prévoir un robot dont les actions sont directement contrôlées par un opérateur sans mettre en oeuvre d'autres forces motrices que celles fournies par l'opérateur. Un autre objet de la présente invention est de prévoir un robot permettant de guider passivement les gestes d'un opéra- teur. Ces objets sont atteints grâce à un robot de guidage de gestes dont la force motrice est fournie par un opérateur qui manipule un outil solidaire du robot Comme un robot classique, le robot de guidage est à plusieurs degrés de liberté (ou axes) respectivement associés à des capteurs de déplacement reliés à un système informatique dans lequel est mémorisée une trajec- toire à suivre Lorsque l'opérateur écarte l'outil de la trajec- toire mémorisée, des dispositifs de blocage adéquats commandés par le système informatique et remplaçant les moteurs du robot empêchent tout éloignement supplémentaire de l'outil par rapport à la trajectoire Ainsi, à tout instant, l'opérateur ne peut déplacer l'outil que selon la trajectoire mémorisée Les dispo- sitifs de blocage sont passifs, c'est-à-dire qu'ils sont tels qu'ils ne peuvent que s'opposer à un mouvement et non en pro- voquer un, oe qui supprime la possibilité de tout geste incon- trôlé. La présente invention vise plus particulièrement un robot à plusieurs degrés de liberté associés chacun à un capteur de déplacement relié à un système informatique calculant à partir d'informations fournies par chaque capteur la position d'un outil solidaire d'un bras du robot, le système informatique mémorisant en outre une trajectoire Selon l'invention, l'outil est manipulé par un opérateur et le robot comprend un dispositif de détermination de sens de déplaoement associé à chaque degré de liberté, ce dispositif pouvant autoriser le déplacement selon le degré de liberté associé dans un sens prédéterminé, le sens opposé, les deux sens, ou aucun sens, en fonction de signaux fournis par le système informatique. Selon un mode de réalisation de la présente invention, le dispositif de détermination de sens autorise le déplacement selon le degré de liberté associé seulement dans un sens propre à faire pénétrer l'outil dans une zone autorisée, éventuellement réduite à un point, si l'outil franchit la frontière de la zone. Selon un mode de réalisation de la présente invention, le dispositif de détermination de sens autorise le déplacement selon le degré de liberté associé seulement dans un sens propre à rapprocher l'outil de ladite trajectoire mémorisée selon une direction inclinée entre la normale à la trajectoire et la tan- gente à la trajectoire. Selon un mode de réalisation de la présente invention, le dispositif de détermination de sens comprend deux roues libres de sens de rotation opposés et comprenant chacune un moyen commandé par le système informatique de couplage à un axe constituant le degré de liberté associé. Selon un mode de réalisation de la présente invention, chaque moyen de couplage comprend un embrayage commandé par électro-aimant. Selon un mode de réalisation de la présente invention, le robot comprend pour chaque degré de liberté un limiteur de vitesse de déplacement commandé par le système informatique. La présente invention vise également un procédé de commande de robot à plusieurs degrés de liberté muni de capteurs de déplacement, pouvant faire suivre à un outil solidaire d'un bras du robot une trajectoire mémorisée dans un système informatique, comprenant les étapes suivantes: déplacer l'outil manuellement; calculer la position courante de l'outil et, le cas échéant, déterminer en fonction de cette position une direction préférentielle à faire suivre à l'outil; et autoriser un déplacement selon chaque degré de liberté du robot seulement dans un sens permettant à l'opérateur de déplacer l'outil selon ladite direction préférentielle. Selon un mode de réalisation de la présente invention, le sens de déplacement selon chaque degré de liberté est déter- miné par le signe d'uoe composante selon ce degré de liberté d'un vecteur de l'espace des déplacements selon les degrés de liberté, correspondant à un vecteur indiquant, dans l'espace des positions et des orientations de l'outil, ladite direction préférentielle. Selon un mode de réalisation de la présente invention, la direction préférentielle est la direction normale à la fron- tière d'une zone autorisée, éventuellement réduite à un point, si l'outil franchit la frontière. Selon un mode de réalisation de la présente invention, la direction préférentielle est comprise entre la normale et la tangente à la trajectoire mémorisée. Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront 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 représente un mode de réalisation d'axe de robot selon la présente invention; et les figures 2 A et 2 B représentent deux positions d'un robot deux axes selon l'invention pour illustrer son fonction- nement. A la figure 1 est représenté un axe A d'un robot selon l'invention Cet axe A est par exemple solidaire d'un bras 10 et relié à la sortie d'un premier réducteur 12 solidaire d'un bâti B formant partie, par exemple, d'un deuxième bras du robot. L'axe d'entrée A' du réducteur est relié à un frein 14 commandé par un signal F, à un capteur de position tel qu'une roue de codage 16 associée à un détecteur optique 17 fournissant un signal d'angle de rotation a, et à la sortie d'un deuxième réducteur 20 Un troisième réducteur est éventuellement prévu entre le frein et le capteur de position. Les éléments décrits jusqu'à maintenant sont des éléments que l'on trouve classiquement dans des articulations de robot Classiquement, l'axe d'entrée A" du réducteur 20 est relié à un moteur. Selon un mode de réalisation de l'invention, l'axe A" est relié à deux roues libres débrayables 22, 23 La roue libre 22 autorise la rotation de l'axe A, par l'intermédiaire des réducteurs 12, 20, dans un seul sens S lorqu'un signal de commande C est actif La roue libre 23 autorise la rotation de l'axe seulement dans le sens contraire S+ lorqu'un signal de commande C+ est actif Lorsque le signal de commande C associé à une roue libre est inactif, la roue libre permet la rotation de l'axe A dans les deux sens. Avec ètte configuration, l'axe A peut assurer quatre fonctions: tourner librement dans les sens S+ et S lorsque les signaux C+ et C sont inactifs; tourner seulement dans le sens S+ lorsque le signal C+ est actif et le signal C inactif; tourner seulement dans le sens opposé S lorsque le signal C est actif et le signal C+ inactif; et rester bloqué si les signaux C+ et C sont actifs. Le frein 14 assure l'une ou l'autre de deux fonctions différentes, à savoir limiter la vitesse de rotation de l'axe A à une valeur déterminée par le signal F ou bien exercer un effort de freinage déterminé par le signal F Le frein est un frein normalement bloqué afin de bloquer le robot en cas de panne de courant De même, pour une double sécurité, les roues libres débrayables seront choisies normalement embrayées (les signaux C+ et C sont actifs lorsque le courant est coupé) Afin de pouvoir déplacer le robot à la suite d'une panne de courant, les freins et les roues libres peuvent être prévus pour qu'on puisse les débloquer manuellement. Comme exemple de roue libre débrayable normalement embrayée, on peut envisager une roue libre couplée à un em- brayage commandé par électro-aimant au débrayage. Un système informatique non représenté stocke des données telles que des points d'une trajectoire ou d'une surface En fonction des signaux a fournis par les capteurs de rotation 16, 17 de chaque axe du robot, il fournit les signaux de commande C+ et C des roues libres et F des freins de chaque axe du robot pour réaliser les fonctions décrites ci-après. Un robot selon la présente invention est prévu pour fonctionner selon deux modes principaux que l'on appellera ci-après "mode région" et "mode suivi orienté" Le mode région autorise un opérateur à déplacer un outil dans une zone déli- mitée par des surfaces Le mode suivi orienté contraint l'opéra- teur à suivre de près une trajectoire dans un sens prédéfini. Un robot selon l'invention peut être utilisé par un chirurgien devant effectuer, par exemple, un trait de scalpel précis Le trait de scalpel est alors mémorisé en tant que tra- jectoire Lors d'une phase d'approche vers la trajectoire, le chirurgien peut d'abord déplacer le scalpel en toute liberté jusqu'à une certaine distance du patient; le robot est alors utilisé selon le mode région en définissant une zone autorisée de grandes dimensions Le chirurgien doit ensuite engager le scalpel dans une zone autorisée en entonnoir qui aboutit au début de la trajectoire La trajectoire peut alors être suivie selon le mode suivi orienté ou bien selon le mode région en définissant une zone en tunnel étroit autour de la trajectoire. Les figures 2 A et 2 B illustrent deux positions d'un robot deux axes commandé selon le mode région pour imposer à un point P du robot de rester dans une zone Z Cette zone est bi- dimensionnelle et délimitée par des courbes frontière mémorisées dans le système informatique Le robot comprend un premier axe AI selon l'invention articulant un premier bras 41 sur un bâti. Un deuxième bras 42 est articulé à l'extrémité libre du bras 41 par un deuxième axe A 2 selon l'invention Le point P est à l'extrémité libre du bras 42. Le système informatique calcule en permanence la posi- tion de l'extrémité P en se servant des indications fournies par les capteurs des axes Al et A 2 ainsi que des longueurs des bras 41 et 42 selon la relation P = f(A) précédemment mentionnée. Dans la figure 2 A, 1 'extrémité P est dans la zone autorisée Z et les axes Al et A 2 sont chacun commandés pour laisser une libre rotation dans les deux sens S+ et S- Ainsi l'extrémité P peut être déplacée librement dans n'importe quelle direction. A la figure 2 B, l'extrémité P franchit la frontière de la zone Z On commande alors chacun des axes Al et A 2 pour auto- riser une rotation respective seulement dans un sens propre (S- pour les deux axes) à faire pénétrer l'extrémité P dans la zone Z. Avec le fonctionnement décrit ci-dessus, un opérateur ne peut déplacer l'extrémité P qu'à l'intérieur de la zone Z, toute tentative de sortie de cette zone étant immédiatement détectée et empêchée en commandant les roues libres adéquates des axes Al et A 2. Une commande réelle du robot présente un temps de réponse (temps de calcul des positions et de réaction des roues libres débrayables) qui ne lui permet pas tout de suite de détecter si le point à contrôler P a atteint une position limite et de réagir instantanément Ainsi, selon la vitesse de déplacement du point, celui-ci pourra, avant détection, dépasser plus ou moins la position limite On comprend ici le rôle du limiteur de vitesse 14; en limitant la vitesse à une valeur connue et en connaissant le temps de réponse, on connaîtra la valeur maximale du dépassement Ce dépassement pourra donc être ajusté en réglant la vitesse limite. Pour des raisons de simplification, on s'est placé dans les figures 2 A et 2 B dans un cas plan Dans un cas réel, la zone limite Z est tridimensionnelle si l'on veut contrôler la position d'un point, et de dimension 6 si l'on veut également contrôler l'orientation d'un outil. Ainsi, plus généralement, le "mode région" consiste à mémoriser des surfaoes limites tout à fait quelconques à l'inté- rieur desquelles l'outil est autorisé à se déplacer librement. De préférence, les surfaoes limites seront décomposées en sur- faces simples, telles que des plans, des portions de cylindre, des portions de sphère Le système informatique calcule alors en permanenoe la distance minimale entre l'outil et une surface limite Si l'outil atteint ou franchit une surfaoe limite, il faut commander les axes du robot de sorte que l'outil ne puisse être déplacé que vers l'intérieur de la surfaoe limite. Si l'on veut contrôler le déplacement d'un outil selon n degrés de liberté (ns 6), les surfaces limites sont des sur- faces de dimension n-i (hypersurfaces de l'espaoe de dimension n) Ci-après, des termes tels que "point", "position", "trajec- toire" seront relatifs à l'espace de dimension n, c'est-à- dire, par exemple, qu'un point définit la position et l'orien- tation d'un outil Pour commander les différents axes du robot en cas de franchissement d'une hypersurface limite on pourra procéder de la manière suivante. On détermine d'abord la normale à la surfaoe limite qui est définie comme la droite passant par le point P de posi- tion courante de l'outil et le point H de la surface limite, le plus proche du point P On déduit de ètte normale un vecteur N orienté vers l'intérieur de la surface limite On applique ensuite la relation AN = lJ-1 i N o lJi 1 l est la matrice inverse de la matrice lJl, précédemment mentionnée, liant une variation de position d P à une variation d A des variables articulaires A. On obtient ainsi un ensemble AN de valeurs d' angles de rotation; si une valeur est positive, l'axe correspondant est autorisé à ne tourner que dans un sens positif, si une valeur est négative, l'axe correspondant est autorisé à ne tourner que dans le sens négatif, et si une valeur est nulle, l'axe correspondant est bloqué. Le nombre N de degrés de liberté du robot à commander effectivement selon l'invention peut être inférieur au nombre total Dans ce cas, les degrés de liberté restants sont bloqués ou libres, par exemple si l'on veut respectivement empêcher ou autoriser en continu une libre rotation de l'outil autour d'un axe. La figure 3 représente comment procéder selon le mode suivi orienté pour suivre une trajectoire mémorisée T, consi- dérée également dans l'espace de dimension n On opère selon les étapes suivantes effectuées selon une boucle infinie: calculer la position courante P de l'outil; trouver un vecteur N passant par la position P, normal à la trajectoire, et orienté vers la trajectoire; trouver un vecteur Tg orthogonal au vecteur N (tan- gent à la trajectoire) et orienté dans la direction voulue; calculer un vecteur V combinaison linéaire à coeffi- cients positifs des vecteurs N et Tg; et calculer un ensemble AV de valeurs d'angles de rotation des axes du robot en appliquant la matrioe jacobienne inverse lJL 1 l au vecteur V. On obtient ainsi un ensemble AV de valeurs d'an- gles On applique à cet ensemble de valeurs les règles définies précédemument pour l'ensemble AN Il en résulte que l'outil peut, à partir de la position courante, être déplacé selon le sens voulu (Tg) et vers (N) la trajectoire. il Les coefficients liant le vecteur V aux vecteurs N et Tg pourront dépendre de l'écart entre la position P et la tra- jectoire, de sorte que si l'écart est grand, le vecteur V est de direction proche de celle du vecteur N, et si 1 'écart est fai- ble, le vecteur V est de direction proche de celle du vecteur Tg. Selon une variante des procédés décrits permettant d'accélérer les temps de calcul, les surfaces limite et les trajectoires sont préalablement mémorisées dans l'espace des variables articulaires Pour cela, on applique à des points P convenablement choisis des surfaces et des trajectoires consi- dérées dans l'espace des positions et des orientations (des points manquants étant interpolés si nécessaire) le calcul A = f-l(P), o f-l est la fonction inverse de la fonction f précédemment mentionnée Il n'est alors pas nécessaire, pour déterminer les sens de rotation des axes, de calculer en temps réel les matrices J et leurs matrices inverses respectives En effet, les sens de rotation des axes sont alors directement fournis par les signes des composantes des vecteurs N (pour le mode région) et V (pour le mode suivi orienté), ces vecteurs étant déterminés selon les étapes susmentionnées appliquées dans l'espace des variables articulaires. Un robot selon l'invention pourra également être utilisé pour qu'un opérateur amène un outil vers une position précise Po A la position Po correspond un ensemble de valeurs a Oj des angles de rotation des axes Le sens de rotation de chaque axe A>, tant que la position n'est pas atteinte, est déterminé par le signe de l'expression a Oj-aj, o aj est la valeur courante de l'angle de rotation de l'axe Aj Ce mode d'utilisation peut être comparé au mode région dont la zone autorisée est réduite au point Po à atteindre. Pour faciliter le suivi de la trajectoire par l'opéra- teur, on pourra fournir à l'opérateur une information de posi- tion sous diverses formes (sonore, visuelle) On pourra, par exemple, afficher sur un écran la trajectoire mémorisée ainsi que la position courante de l'outil En outre, pour donner une sensation de guidage plus prononcée, on pourra commander les freins 14 de sorte que leur force de freinage soit proportion- nelle, par exemple, à l'écart de position par rapport à la trajectoire. Un robot selon la présente invention pourra comprendre un ensemble de bras légers permettant d'assurer la trajectoire précise et un ensemble de bras robustes permettant d'assurer la phase d'approche du robot, ces bras robustes étant bloqués, éventuellement par rapport à un dispositif de repérage de la position d'un patient, une fois l'approche effectuée. Le système informatique de commande pourra se repérer par rapport au patient à l'aide de systèmes connus, tels que ceux déjà utilisés en neurochirurgie pour positionner un cylin- dre de guidage d'aiguille par rapport à la tête du patient. La présente invention a été décrite à l'aide de robots à axes de rotation Bien entendu, elle s'applique de la même manière à des robots comprenant des axes de translation. L'homme du métier saura programmer le système informa- tique afin de commander adéquatement les axes selon l'invention en fonction du calcul de position et de la trajectoire mémorisée à respecter Il saura également choisir ou réaliser les roues libres débrayables. De nombreuses variantes et modifications de la pré- sente invention apparaîtront à l'homme de l'art Celui-ci pourra trouver de nombreux procédés de commande équivalents à ceux décrits Par exemple, pour suivre une trajectoire T, à partir de la position de la figure 2 A, on peut également bloquer l'un des axes, par exemple Al, et laisser libre l'axe A 2 afin de déplacer l'extrémité 43 selon un arc de cercle jusqu'à la limite T 2. Lorsque la limite T 2 est atteinte, on bloque 1 'axe A 2 et on libère l'axe Al afin que l'on puisse déplacer l'extrémité 43 jusqu'à la limite Tl o on bloque de nouveau l'axe Ai et o on libère l'axe A 2 De nombreuses applications non décrites pourront être trouvées pour un robot selon l'invention, notamment en réédu- cation, pour l'apprentissage de gestes l'outil mentionné étant alors, par exemple, une sangle attachée à un membre. REVENDICATIONS 1 Robot à plusieurs degrés de liberté (A) associés chacun à un capteur de déplacement ( 16, 17) relié à un système informatique calculant à partir d'informations (a) fournies par chaque capteur la position d'un outil solidaire d'un bras du robot, le système informatique mémorisant en outre une trajec- toire (T), caractérisé en ce que ledit outil est manipulé par un opérateur et en ce qu'il comprend un dispositif de détermination de sens de déplacement ( 22, 23) associé à chaque degré de liberté, ce dispositif pouvant autoriser le déplacement selon le degré de liberté associé dans un sens prédéterminé, le sens opposé, les deux sens, ou aucun sens, en fonction de signaux (C-, C-) fournis par le système informa- tique. 2 Robot selon la revendication 1, caractérisé en ce que le dispositif de détermination de sens ( 22, 23) autorise le déplacement selon le degré de liberté associé seulement dans un sens propre à faire pénétrer l'outil dans une zone autorisée (Z), éventuellement réduite à un point, si l'outil franchit la frontière de la zone. 3 Robot selon la revendication 1, caractérisé en ce que le dispositif de détermination de sens ( 22, 23) autorise le déplacement selon le degré de liberté associé seulement dans un sens propre à rapprocher l'outil de ladite trajectoire mémorisée (T) selon une direction (V) inclinée entre la normale (N) à la trajectoire et la tangente (Tg) à la trajectoire. 4 Robot selon la revendication 1, caractérisé en ce que ledit dispositif de détermination de sens comprend deux roues libres de sens de rotation opposés et comprenant chacune un moyen commandé par le système informatique de couplage à un axe constituant le degré de liberté associé. Robot selon la revendication 4, caractérisé en ce que chaque moyen de couplage comprend un embrayage commandé par électro-aimant. 6 Robot selon la revendication 1, caractérisé en ce qu'il comprend pour chaque degré de liberté un limiteur de vitesse de déplacement ( 14) commandé par le système informati- que. 7 Procédé de commande de robot à plusieurs degrés de liberté dont chacun est associé à un capteur de déplacement ( 16, 17), pouvant faire suivre à un outil solidaire d'un bras du robot une trajectoire (T) mémorisée dans un système informa- tique, caractérisé en ce qu'il comprend les étapes suivantes déplaoer l'outil manuellement; calculer la position courante (P) de l'outil et, le cas échéant, déterminer en fonction de ètte position une direc- tion préférentielle (N, V) à faire suivre à l'outil; et autoriser un déplaoement selon chaque degré de li- berté du robot seulement dans un sens permettant à l'opérateur de déplacer l'outil selon ladite direction préférentielle. 8 Procédé de commande selon la revendication 7, caractérisé en ce que le sens de déplacement selon chaque degré de liberté est déterminé par le signe d'une composante selon ce degré de liberté d'un vecteur (AN, AV) de l'espace des déplaoements selon les degrés de liberté, correspondant à un vecteur (N, V) indiquant, dans l'espace des positions et des orientations de l'outil, ladite direction préférentielle. 9 Procédé de commande selon la revendication 7, caractérisé en ce que ladite direction préférentielle est la direction normale (N) à la frontière d'une zone autorisée (Z),30 éventuellement réduite à un point, si l'outil franchit la frontière. Procédé de commande selon la revendication 7, caractérisé en ce ladite direction préférentielle (N, V) est comprise entre la normale (N) et la tangente (Tg) à ladite35 trajectoire mémorisée.