Brevet FR3002047A1 — publié le 20140815

Procédé de commande d'un robot déformable, module et programme d'ordinateur associés La présente invention concerne un procédé de commande d'un robot comportant au moins une partie déformable par un ensemble d'actionneur(s), chaque point d'un ensemble de point(s) dit(s) point(s) effecteur(s), du robot, devant suivre une trajectoire déterminée, le robot étant défini par un modèle de noeuds et une matrice K définissant une variation des forces internes du robot en chaque noeud en fonction de la variation de position des noeuds. Pour rappel, un actionneur est un organe du robot qui fournit un effort, sous la forme d'une force et/ou d'une pression et/ou d'un couple, dont l'intensité est fonction d'une commande qu'il reçoit. Les commandes «classiques» pour le contrôle d'un robot se basent, en général, sur une modélisation de la cinématique entre le ou les actionneurs du robot et au moins un point du robot auquel on souhaite appliquer un mouvement déterminé, qu'on appelle point effecteur du robot. Cette modélisation est relativement facile à obtenir si la cinématique correspond à une chaîne articulaire : le robot se compose alors de segments rigides sur lesquels des articulations (souvent considérées comme «parfaites») sont placées, et éventuellement des encodeurs pour pouvoir mesurer les mouvements relatifs de ces segments. La commande calcule la configuration du robot à partir d'un calcul relativement simple, souvent analytique, réalisable en temps-réel. Les robots flexibles ou déformables existants, i.e. comportant au moins une partie en matériau flexible ou déformable, sont particulièrement bien adaptés pour évoluer dans des environnements fragiles, par exemple, le corps humain pour la robotique chirurgicale. Ils sont aussi plus robustes (meilleure résistance aux chocs) et peuvent être plus faciles à fabriquer (notamment par impression 3D). La plupart des robots flexibles ou déformables réellement utilisés sont limités à un faible nombre de degrés de liberté, par exemple les robots comportant une pince flexible, qui sont utilisés pour la micro manipulation. Dans ces conditions, la cinématique reste relativement simple et peut, tout simplement, être mesurée, ou pré-calculée. Toutefois, contrairement aux robots rigides, le nombre de degrés de liberté des robots souples peut être infini, des actionneurs pouvant être placés en une infinité de points, puis être contrôlés pour permettre à chaque point effecteur de suivre le mouvement déterminé qui lui est associé. Mais les travaux sur des robots flexibles ou déformables multi-actionnés buttent sur le problème de leur contrôle, notamment en raison du nombre élevé de degrés de liberté d'actionnement. Par ailleurs, les méthodes par éléments finis ou FEM (en anglais « Finite Element Method ») sont utilisées pour modéliser les robots flexibles lorsque, connaissant les commandes ou efforts appliqués sur un robot flexible, on cherche à déterminer le comportement de ce robot flexible. Même si le calcul de la déformation par un modèle FEM peut se faire en temps réel, la difficulté du point de vue du contrôle est d'obtenir la valeur de l'actionnement qui va générer la déformation souhaitée, c'est une sorte d'inversion du modèle qui est donc nécessaire. Or, l'utilisation de la FEM pour résoudre le problème inverse n'a pas pu être mise en oeuvre jusqu'à présent car les temps de calcul généralement nécessaires sont prohibitifs. La présente invention vise à contribuer à pallier certains de ces problèmes rencontrés dans le pilotage des actionneurs de robots déformables, en proposant une technique avantageuse basée sur une inversion optimisée du modèle FEM en temps-réel. A cet effet, suivant un premier aspect, l'invention propose un procédé de commande d'un robot du type précité caractérisé en ce que, pour déterminer la commande destinée à chaque actionneur lors d'un ième pas de calcul de commande : i/ on actualise les valeurs de la matrice K en fonction de la position courante des noeuds du robot ; ii/ on détermine les valeurs courantes de la matrice jacobienne J du vecteur 5 (x), où x est un vecteur de position des noeuds et le vecteur 5 (x) comporte au moins un sous-ensemble de ligne(s) relatif à chaque point effecteur et indiquant les coordonnées des écarts entre la position dudit point effecteur et sa trajectoire déterminée, et au moins un sous-ensemble de ligne(s) indiquant le déplacement de chaque actionneur ; iii/ on calcule les valeurs de la matrice W = J . JT , où K-1 est la matrice inverse de K et JT est la matrice transposée de J ; et iv/ on résout l'équation 5 = W. À + 80, pour déterminer les valeurs des vecteurs 5 et À audit ième pas de calcul, où À est un vecteur comportant, pour chaque ligne du vecteur ô relative à un point effecteur, une ligne comportant une valeur nulle et pour chaque ligne du vecteur 5 relative à un actionneur, une ligne comportant une valeur d'effort exercé par l'actionneur correspondant au déplacement indiqué, et go est un vecteur comportant des valeurs déterminées ; et v/ on déduit la commande destinée à chaque actionneur en fonction au moins de valeurs déterminées à l'étape iv/ du vecteur ô ou À. Un tel procédé permet de piloter des robots déformables, particulièrement dans le cas où plusieurs actionneurs permettent de piloter la déformation d'au moins une partie, composée d'un matériau flexible, du robot, afin de créer un mouvement désiré sur un ou plusieurs points effecteurs terminal, tout en réduisant considérablement la charge de calcul nécessaire au pilotage des actionneurs. Dans des modes de réalisation, le procédé de commande d'un robot suivant l'invention comporte en outre une ou plusieurs des caractéristiques suivantes : - le vecteur ô comporte en outre au moins un sous-ensemble de ligne(s) indiquant un déplacement d'un point du robot soumis à des contraintes extérieures au robot, et le vecteur À comporte en outre un sous-ensemble correspondant de ligne(s) indiquant des valeurs de forces exercées par les contraintes extérieures au robot correspondant au déplacement indiqué ; - la position correspondant à la trajectoire déterminée d'un point effecteur est soustraite à la position du point effecteur déterminée par interpolation, associée à des coefficients d'interpolation respectifs, de la position d'un ensemble desdits nceud(s) pour obtenir le sous-ensemble de lignes du vecteur ô (x) relatives à l'effecteur, et selon lequel, dans ledit même sous-ensemble de lignes de la matrice jacobienne J, les valeurs dans les colonnes qui correspondent auxdits noeuds, sont fonction desdits coefficients d'interpolation ; - un point de fixation d'un actionneur est une interpolation de nceud(s) associé(s) chacun à un coefficient d'interpolation non nul, et au moins une ligne de la matrice J est déterminée en fonction de la direction d'actionnement dudit l'actionneur, chaque terme de ladite ligne étant nul à l'exception de ceux sur les colonnes dudit noeud ou desdits noeuds ; - lors d'un iè" pas de calcul de commande : - on détermine 3,x vérifiant : - K. 3,x = p + f(x,_1), où 3,x représente une variation du vecteur x, le vecteur p représente les forces externes s'exerçant sur le robot, K est la matrice actualisée à l'étape i/, x,_, est le vecteur de position courante des noeuds et f(x,_1) est le vecteur des forces internes s'exerçant sur le robot dans sa position courante ; - on calcule Xfree = X1-1 - on calcule les valeurs du vecteur ô (xfree) ; et - l'équation 8 = W. À + go est résolue à l'étape iv, en prenant go égal à ô (xfree). - à l'étape iii/, l'équation ô = W. À + go est résolue par un algorithme itératif de type Gauss-Seidel, intégrant les contraintes liées aux directions d'actionnement, aux limites de butée et/ou à un effort maximum exercé par au moins un actionneur, et/ou des caractéristiques de contraintes extérieures au robot. Suivant un deuxième aspect, la présente invention propose un programme d'ordinateur pour commander un robot comportant au moins une partie déformable par un ensemble d'actionneur(s), chaque point d'un ensemble de point(s), dit(s) point(s) effecteur(s) du robot, devant suivre une trajectoire déterminée, le robot étant défini par un modèle de noeuds et une matrice K définissant une variation des forces internes du robot en chaque noeud en fonction de la variation de position des noeuds, ledit programme comportant des instructions pour mettre en oeuvre les étapes d'un procédé suivant le premier aspect de l'invention lors d'une exécution du programme par des moyens de traitement, pour déterminer la commande destinée à chaque actionneur lors d'un ième pas de calcul de commande. Suivant un troisième aspect, la présente invention propose un module de commande d'un robot comportant au moins une partie déformable par un ensemble d'actionneur(s), chaque point d'un ensemble de point(s), dit(s) point(s) effecteur(s), du robot, devant suivre une trajectoire déterminée, le robot étant défini par un modèle de noeuds et une matrice K définissant une variation des forces internes du robot en chaque noeud en fonction de la variation de position des noeuds, le module de commande étant caractérisé en ce qu'il est adapté pour, lors de la détermination de la commande destinée à chaque actionneur lors d'un ième pas de calcul de commande, actualiser les valeurs de la matrice K en fonction de la position courante des noeuds du robot, puis pour déterminer les valeurs courantes de la matrice jacobienne J du vecteur ô (x), où x est un vecteur de position des noeuds et le vecteur ô (x) comporte au moins un sous-ensemble de ligne(s) relatif à chaque point effecteur et indiquant les coordonnées des écarts entre la position dudit point effecteur et sa trajectoire déterminée, et au moins un sous-ensemble de ligne(s) indiquant le déplacement de chaque actionneur ; ledit module de commande étant adapté pour calculer les valeurs de la matrice W = J . K-1 . JT , où K-1 est la matrice inverse de K et JT est la matrice transposée de J et pour résoudre l'équation ô = W. À + 80 , en déterminant les valeurs des vecteurs ô et À audit ième pas de calcul, où À est un vecteur comportant, pour chaque ligne du vecteur ô relative à un point effecteur, une ligne comportant une valeur nulle et pour chaque ligne du vecteur 8 relative à un actionneur, une ligne comportant une valeur d'effort exercé par l'actionneur correspondant au déplacement indiqué, et go est un vecteur comportant des valeurs déterminées ; et ledit module de commande étant adapté pour déduire la commande destinée à chaque actionneur en fonction au moins desdites valeurs déterminées du vecteur ô ou À. Ces caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple, et faite en référence aux dessins annexés, sur lesquels : - la figure 1 représente schématiquement un robot déformable multi-actionné dans un mode de réalisation de l'invention ; - la figure 2 est un organigramme d'étapes d'un procédé dans un mode de réalisation de l'invention ; - la figure 3 représente un vecteur ô ; - la figure 4 comporte deux sections 4a et 4b, qui représentent un robot déformable soumis à des actionnements. La figure 1 représente un robot 1 comportant une structure en matériau déformable, par exemple en silicone souple. L'invention propose un procédé de commande du robot 1, itérant un ensemble 100 d'étapes représenté en figure 2. Dans le cas considéré, le robot 1 est un robot en en 3 dimensions (3D), mobile en 3D, dans un espace associé à un référentiel, nommé Ref, associé à un point d'origine O et à 3 axes X, Y, Z. Le robot 1 comporte un nombre p d'actionneurs 2, conférant une déformation au robot. Le nombre p est quelconque et est choisi, dans l'exemple considéré, égal à huit. L'actionnement 1 relatif à un actionneur peut être de nature diverse et peut comprendre par exemple : - une rotation ou une translation d'une partie de la structure du robot par une liaison sur un moteur électrique, éventuellement équipé d'un réducteur, et/ou - un mouvement obtenu par traction d'un câble attaché à la structure, d'un côté, et à un moteur équipé d'une poulie de l'autre, et/ou - une ou des poches élastiques à l'intérieur de la structure permettant un actionnement par air comprimé ou hydraulique, et/ou - un multi-actionnement réparti, par positionnement sur la structure d'un grand nombre d'actionneurs (par exemple piezzoélectriques ou par polymères électroactifs ou par matériau à mémoire de forme...) , qui créent une déformation locale de la structure du robot. L'effort appliqué par l'actionneur sur la structure du robot peut comprendre une force, une pression et/ou un couple. Par ailleurs, le robot comporte en outre m points 3 du robot 1, nommé(s) point(s) effecteur(s) du robot, au(x)quel(s) une trajectoire respective est imposée. Le nombre m est quelconque et est choisi, dans le cas considéré, égal à trois. Ainsi le point effecteur Peffj, j = 1 à m, doit se trouver à une position imposée, correspondant à un point P,mpj, à un iè" pas d'itération du procédé de commande du robot. Sa trajectoire imposée peut être modifiée à tout moment, notamment dans le cadre d'une application en temps réel. Dans un mode de réalisation, l'environnement de mobilité du robot 1 comporte un nombre n d'obstacles 4. Le nombre n est quelconque et est choisi dans le cas considéré, égal à deux. Ces obstacles peuvent être statiques (i.e. ne pas bouger dans le référentiel) ou dynamiques, avec un comportement connu. On dispose d'un modèle de l'interaction mécanique entre les obstacles 4 et le robot 1, qui est par exemple de type contact, liaison glissière, appui plan etc. Cette modélisation sera notamment utilisée pour adapter la commande du robot en fonction des obstacles. Le robot déformable 1 est défini par un modèle comprenant un ensemble de noeuds et par une matrice tangente K associée, dite matrice de raideur, définissant les forces internes en chaque noeud en fonction des positions des noeuds, qui permettent la modélisation des déformations, notamment non-linéaires, du robot. Dans le cas présent, le robot 1 est modélisé par un modèle à éléments finis ou FEM, associé à un maillage de N noeuds (cf. notamment C. Felippa, « A systematic approach to the element-independent corotational dynamics of finite elements », Technical Report, Center for Aerospace Structures, 2000). Toute autre méthode permettant de définir un modèle physique de la déformation du robot 1 peut être utilisée à la place, par exemple une formulation de type « meshless », une méthode de Galerkine, une méthode XFEM etc. Selon l'invention, en référence à la figure 2, un procédé itératif 100 est mis en oeuvre pour déterminer à l'issue de chaque pas d'itération, le contenu de la commande de chaque actionneur du robot 1 permettant que les points effecteurs suivent au maximum les trajectoires désirées, tout en prenant en compte les obstacles. Dans un mode de réalisation, ce procédé itératif 100 est mis en oeuvre par un module de pilotage du robot 1. Dans un mode de réalisation, ce module de pilotage du robot comprend une mémoire et un microprocesseur. Des données, par exemple définissant le modèle FEM, les trajectoires des effecteurs et les obstacles, ainsi que des instructions logicielles, sont stockées dans cette mémoire. Et les étapes du procédé 100 telles que décrites ci-dessous sont mises en oeuvre par le module de pilotage du robot, lorsque les instructions logicielles stockées dans la mémoire sont exécutées sur le microprocesseur. Ainsi à un iè" pas d'itération du procédé 100 dans un mode de réalisation de l'invention, les étapes 101 à 105 suivantes sont mises en oeuvre. Soit x, le vecteur comprenant les coordonnées des N points. On notera x,_, le vecteur qui comprend les coordonnées courantes des N points définissant le robot, à l'issue de la mise en oeuvre des actionnements déterminés lors de l'itération i-1 du procédé 100. Ainsi dans une étape 101, on considère ce vecteur x,_, de valeurs connues, qui définit la position du robot 1 telle qu'obtenue à l'issue de l'itération i-1 du procédé 100, les coordonnées ayant été mesurées (détermination en boucle fermée), ou estimées (détermination en boucle ouverte) à partir du modèle et des actionnements déterminés à l'itération i-1. Le vecteur x, comprendra de la même façon les coordonnées des N points définissant le robot à l'issue de l'itération courante i du procédé 100, une fois mis en oeuvre les actionnements qui seront déterminés lors de cet itération i. On détermine la position courante des n obstacles, la position courante des p actionneurs ainsi que la position imposée P,mp, souhaitée pour chacun des m points effecteurs. Un degré de liberté est une mobilité possible (autorisée ou non) dans l'espace considéré. Chaque noeud du robot a un certain nombre de degrés de liberté (par exemple translation selon un à trois axes orthogonaux et/ou rotations selon un ou des axes). Le nombre total de degrés de liberté d'un objet déformable, c'est donc le nombre de degrés de liberté par noeud *N. La notion de degré de liberté s'applique aussi pour les points effecteurs et pour les actionneurs, ainsi que les liaisons mécaniques, ou contraintes, liées aux obstacles. Pour un point effecteur, il s'agit du nombre de mobilités contrôlées (par exemple, si on contrôle la position d'un point effecteur, il y a 3 degrés de libertés, donc 3 lignes correspondant à ce point effecteur dans Ô- en revanche, si on contrôle 3 orientations en plus, ça fait 6 degrés de liberté au total dans 5 pour ce point effecteur). Pour chaque actionneur, en général, il n'y a qu'un seul degré de liberté (par exemple, une translation ou une rotation). Cependant, il peut exister des actionneurs combinés (une translation + une rotation). Dans ce cas, l'actionneur aura 2 degrés de liberté. Pour chaque obstacle, on considère le nombre de degrés de liberté supprimés : par exemple un point sur un plan n'est contraint que selon une direction (les deux autres restent libres), donc la contrainte a 1 degré de liberté. En revanche, contraindre un point à suivre une ligne ou une courbe nécessite une contrainte à 2 degrés de liberté. Pour des liaisons plus complexes, incluant translation et rotation, on peut aller jusqu'à 6 degrés de liberté supprimés. On considère à présent le vecteur ô (x), fonction non linéaire du vecteur x. 6 comporte des lignes relatives aux points effecteurs qui indiqueront, pour chaque point effecteur considéré successivement à l'issue de l'itération i, les coordonnées de l'écart entre le point de trajectoire imposée pour ce point effecteur et la position de ce point effecteur à l'issue de l'itération i. Dans le cas considéré, pour chaque point effecteur, il y a une ligne dans ô par degré de liberté du point effecteur. Les points effecteurs sont considérés en tant que points interpolés à partir de la position des N noeuds donnée par x,. Avec m points effecteurs, il faudra 3*m lignes dans ô pour contrôler la position de ces deux points effecteurs avec 3 degrés de liberté chacun en translation relativement aux axes X, Y, Z, ou 6*m lignes pour contrôler la position et l'orientation de ces m points effecteurs avec 6 degrés de liberté chacun. Le vecteur ô (x) comprend ensuite des lignes qui indiqueront, pour chaque actionneur considéré successivement, le déplacement de la zone actionnée dans la direction d'actionnement en fonction de la position des noeuds interpolant la zone actionnée et de la possible modification de la direction de l'actionnement (en effet, quand la structure du robot se déforme et que l'on tire sur une zone avec un câble, la direction du câble change). On notera que quand l'actionneur est de type pneumatique ou hydraulique, le déplacement de la zone actionnée indique une variation de volume. Dans le cas considéré, pour chaque actionneur, il y a une ligne dans 6 par degré de liberté de l'actionnement. Le vecteur ô (x) comprend enfin des lignes qui indiqueront, pour chaque obstacle considéré successivement, la contrainte associée à l'obstacle en la zone concernée du robot (par exemple le déplacement d'un point du robot soumis à cet obstacle en tant qu'interpolation de la position des N noeuds donnée par x,). Dans le cas considéré, pour chaque obstacle, il y a une ligne dans ô par degré de liberté possiblement supprimé par l'obstacle. Par exemple, un contact d'un point avec un plan peut supprimer un degré de liberté dans le sens normal au plan si le point considéré touche le plan (sinon, il ne supprime rien) : on dira dans ce cas que la contrainte est active et supprime un degré de liberté ; sinon, elle ne supprime rien. Le vecteur 5 (x) est donc une fonction de l'espace RN vers l'espace RM, où M est égal à la somme des degrés de liberté cumulés des m points effecteurs, des degrés de liberté cumulés des p actionneurs et des degrés de liberté cumulés des n obstacles. On considère à présent la matrice J, qui est la matrice jacobienne, par rapport à x, du vecteur 5 (x). Cette matrice J permet ainsi d'écrire une variation du vecteur 5 (x) en fonction d'une variation du vecteur x de manière linéaire : 0 (x) = J. équation (1) Les variations considérées sont par exemple celles entre les itérations i-1 et i ; ainsi 3,x= x,_ x,_1. Ainsi, les valeurs dans 0ô relatives aux actionneurs indiquent les déplacements des actionneurs pendant cette variation 3,x, ie entre les itérations i-1 et i. On considère en outre le vecteur À(x), de même taille M que le vecteur 5, chaque ligne de À correspondant à une ligne de Ô. Ainsi la ligne n°k de c5 concerne le même degré de liberté du même point effecteur ou du même actionneur ou du même obstacle, que celui concerné par la ligne n°k de À. Dans À, toutes les lignes correspondant aux points effecteurs ont une valeur nulle. A chaque ligne pour laquelle dans Ô, il sera indiqué un déplacement d'actionneur, il figurera dans À l'intensité de l'effort (force, pression, couple) correspondant exercée par l'actionneur sur le robot 1. A chaque ligne pour laquelle dans ô, il est indiqué une contrainte d'obstacle, il figurera dans À l'intensité de l'effort correspondant exercé par l'obstacle sur le robot 1 correspondant au degré de liberté considéré à cette ligne. Les traitements réalisés au cours de l'itération i du procédé 100 vont permettre de déterminer les valeurs des vecteurs c5 et À, et par là de connaître les valeurs d'actionnement à commander aux actionneurs. Les valeurs prises par la matrice J sont maintenant déterminées. On considère que J est constant pendant une itération. Les variations de c5 durant une itération sont déterminées par l'équation (1).35 Cette matrice J comporte un nombre M de lignes égales au nombre de lignes de , et un nombre de colonnes égal à 3N dans le cas considéré (6N dans le cas où on considère 6 degrés de liberté pour les noeuds). Ainsi la ligne n°k de J concerne le même degré de liberté du même point effecteur ou du même actionneur ou du même obstacle, que celui concerné par la ligne n°k de ô. Ainsi à chaque ligne de c5 relative à un degré de liberté d'un point effecteur correspond une ligne dans la matrice jacobienne J. Si le point effecteur est un noeud du modèle, alors la ligne de la matrice J qui lui est associé pour un degré de liberté donné, i.e. selon l'axe X, Y ou Z, est remplie de 0 sauf pour la coordonnée relative à cet axe, (ou encore selon une rotation rX, rY, rZ autour de l'axe selon un axe X, Y ou Z) du noeud sur cette ligne pour ce noeud, où la valeur vaut 1. Si le point effecteur ne correspond pas à un noeud, mais à un point placé dans un élément du maillage entre plusieurs noeuds, c'est-à-dire qu'il résulte d'une fonction d'interpolation de ces noeuds, on utilise cette fonction d'interpolation pour construire les lignes de la matrice J relatives à ce point effecteur (cf. notamment C. Duriez, C. Guébert, M. Marchai, S. Cotin, and L. Grisoni, « Interactive simulation of flexible needle insertions based on constraint models », International Conference on Medical Image Computing and Computer Assisted Intervention, Londres, Royaume-Uni, 2009, pp. 291-299 ; http://hal.inria.fr/inria-00540334). Pour chaque ligne correspondant à un degré de liberté respectif, on a alors une valeur non nulle uniquement au niveau de ces noeuds et les valeurs utilisées correspondent au poids associé à ce noeud dans la fonction d'interpolation. De même, à chaque ligne de c5 relative à un degré de liberté d'un actionneur ou d'un obstacle correspond une ligne dans la matrice jacobienne J. Par exemple, si l'actionneur choisi est un câble, la direction d dans laquelle le câble tire (correspondant à la direction de déplacement de cet actionneur, i.e. ou encore au degré de liberté du câble), est stockée dans cette ligne de la matrice J, en choisissant les colonnes qui correspondent au(x) nceud(s) sur le(s)quel(s) le câble est attaché. Si on dérive une ligne de ô correspondant au déplacement d'un câble dans la direction d'actionnement et à un point d'actionnement sur la structure du robot, alors on obtient dans la matrice J à la ligne correspondant à ce point d'actionnement pour la direction d'actionnement : - des 0 pour toutes les colonnes correspondant à des noeuds qui n'interpolent pas directement le point d'actionnement. - des valeurs non nulles pour toutes les colonnes qui correspondent à des noeuds qui interpolent directement le point d'actionnement. Dans chacune des colonnes selon X, Y et Z d'un noeud, on retrouve la direction (unitaire) d'actionnement multiplié par le poids du noeud dans l'interpolation. Par exemple : => si le point actionnement P résulte de l'interpolation suivante : P = a.N, + p.Nb + y.N, où Na,Nb et N, sont les positions respectives, dans (O, X, Y, Z) dans le cas présent de trois des N noeuds, et a, [3 et y sont les poids de l'interpolation avec la norme de a, [3 et y compris entre 0 et 1 et la somme de a, [3 et y est égale à 1. et si la direction d'actionnement est indiquée par le vecteur unitaire d = d, dy d z_ alors la ligne correspondante de J = [ 0 0 ... 0 a*dx a*dy a*dz 0 0 .... O [3*dx [3*dy R* d, 0 0 0 y*dx y*dy y*d, 0 0 ... 0], où a*dx respectivement a*dy respectivement a*d, est le terme de la ligne considérée en la colonne relative à l'axe X, respectivement Y, respectivement Z du noeud considéré de position Na ; [3*dx, respectivement [3*dy, respectivement [3* d, est le terme en la colonne relative à l'axe X, respectivement Y, respectivement Z du noeud considéré de position Nb et z*dx, z*dy, z*d, est le terme en la colonne relative à l'axe X, respectivement Y, respectivement Z du noeud considéré de position N, Pour un actionneur en pression, les éléments de maillage, par exemple des triangles, qui gonflent ou dégonflent avec la pression, sont sélectionnés. Si la pression est uniforme dans la cavité, l'ensemble des triangles concernés contribuent à la même ligne sur la matrice J en utilisant la normale au triangle ainsi qu'une pondération proportionnelle à l'aire du triangle. Au niveau de la construction de J, cela correspond à une manière classique d'imposer une contrainte en pression sur un modèle par éléments finis. Dans ce cas, la ligne de Ô correspondant à cet actionneur contient une valeur du volume de la cavité au niveau de la ligne correspondant à la contrainte, et la ligne correspondante de À contiendra la valeur de pression utilisée. Ainsi, de façon générale, un point de fixation d'un actionneur est une interpolation de nceud(s) associé(s) chacun à un coefficient d'interpolation non nul, et la direction de déplacement de l'actionneur est indiquée dans une ligne de la matrice J, chaque terme de ladite ligne étant nul à l'exception de ceux dudit noeud ou desdits noeuds. Pour les interactions du robot avec les obstacles de l'environnement extérieur, on peut utiliser différents types de contraintes tels que décrit dans les articles comme « Interactive simulation of flexible needle insertions based on constraint models » mentionné ci-dessus pour simuler l'insertion du robot dans un milieu déformable, ou I. Peterlik, M. Nouicer, C. Duriez, S. Cotin, and A. Kheddar, « Constraintbased haptic rendering of multirate compliant mechanisms », EEE Trans.Haptics, vol. 4, no. 3, pp. 175187, Jul. 2011, http://dx.doi.org/10.1109/TOH.2011.41) pour un formalisme plus générique, y compris en réponse à une collision. Pour un obstacle, comme indiqué ci-dessus, chaque ligne relative à l'obstacle du vecteur Ô correspond à un degré de liberté possiblement supprimé par l'obstacle. Par exemple, dans le cas d'un contact point / plan, la valeur indiquée dans ô pour cette ligne mesure la distance du point au plan : si cette valeur de ô est positive la contrainte est désactivée, si la valeur devient négative, la contrainte est activée pour ramener à une valeur égale à 0. De même, pour un obstacle, chaque ligne correspondante de la matrice J correspond au mouvement du ou des degré(s) de liberté possiblement supprimé(s) par l'obstacle en fonction du mouvement des noeuds. Pour le même exemple du contact point / plan, pour construire la ligne considérée de J, on va s'appuyer sur 2 informations : - l'interpolation du mouvement du point P: (par exemple) P = a.N, + [3.Nb + y.N, où Na,Nb et Nb sont les positions respectives de trois des N noeuds, et a, [3 et y sont les poids de l'interpolation avec la norme de a, [3 et y compris entre 0 et 1 et la somme de a, [3 et y est égale à 1 nx - la direction normale au plan indiquée par le vecteur n unitaire : n= nY nz_ Alors la ligne correspondante de J = [ 0 0 ... 0 a*nx a*ny a*n, 0 0 .... O [3*nx [3*ny R* n, 0 0 0 y*nxy*nyy*nz 0 0 ... 0], où a*nx respectivement a*ny respectivement a*n, est le terme de la ligne considérée, en la colonne relative à l'axe X, respectivement Y, respectivement Z du noeud considéré de position Na ; [3*nx, respectivement [3*ny, respectivement [3* n, est le terme en la colonne relative à l'axe X, respectivement Y, respectivement Z du noeud considéré de position Nb et z*nx, z*ny, z*nz est le terme en la colonne relative à l'axe X, respectivement Y, respectivement Z du noeud considéré de position N, Quelle que soit la méthode de détermination, la matrice jacobienne J une fois construite, est largement remplie de valeurs nulles. On peut donc la stocker en utilisant un format de matrice creuse. Pour tenir compte des grandes transformations du robot déformable, engendrées par les commandes, le modèle à éléments finis utilisé est non-linéaire. En revanche, une linéarisation de ce modèle est effectuée à chaque itération i, qui permet le calcul d'une matrice tangente K(x)= df/dx. Si on utilise un modèle à éléments finis dynamique, on utilisera une méthode d'intégration implicite ou semi-implicite qui nécessite le calcul de la matrice tangente du modèle non-linéaire. Dans le cas considéré, un modèle à éléments finis statique est utilisé, qui calcule le vecteur f des forces internes en fonction du vecteur de position x des noeuds. Dans une étape 102, les valeurs de la matrice tangente K de raideur, définissant les forces internes en chaque noeud en fonction des positions des N noeuds, sont remises à jour en fonction des d positions x,_, courantes déterminées de ces N noeuds. La matrice K ainsi mise à jour est notée K(xi-1). Dans le cas considéré, la taille de K est 3N*3N. On calcule alors une linéarisation des forces internes sur la base de la position xi-1 des noeuds : f(x,) f(x,_1) + K(x,_1). Ox équation (2) avec 3,x= xi_ xi-1. Pour établir l'équilibre statique (la somme des forces externes et internes au robot 1 est égale à zéro sur l'ensemble des noeuds) à l'itération i courante, on aboutit à l'équation : - K(x,_1). 3,x= p + f(x,_1) + JT À équation (3) où le vecteur p représente les forces externes connues, comprenant par exemple la gravité, et JT À rassemble les contributions de toutes les contraintes prises en compte selon l'invention (i.e. celles relatives aux points effecteurs, actionneurs et interactions mécaniques avec l'environnement extérieur). La matrice J est celle calculée à l'étape 101 et les valeurs courantes du vecteur À sont à déterminer. On calcule alors la configuration libre du robot 1, correspondant à la résolution de l'équation 3 du modèle du robot avec le vecteur À égal au vecteur nul. La position correspondante ainsi déterminée est Xfree = x,_ Ax 1 + --free- La matrice K est très creuse. Pour résoudre le système formé par cette matrice, on peut utiliser un gradient conjugué et une méthode directe avec factorisation, par exemple de type LDLT. Par exemple, pour un maillage du robot 1 composé de 1000 noeuds et de 3000 éléments tétraédriques, il est possible d'obtenir un taux de rafraîchissement de 60 Hz, ce qui est compatible avec la commande en temps réel d'un robot. Pour utiliser des maillages plus complexes, la factorisation LDLT peut être désynchronisée et la technique dite de « warping » peut être utilisée (cf. par exemple H. Courtecuisse, J. Allard, C. Duriez, and S. Cotin, « Preconditioner-based contact response and application to cataract surgery », Medical Image, Computing and Computer-Assisted Intervention (MICCAI), 2011, http://www.lifl.fil-courtecu/). A partir de cette position résultante xfree (qui correspondrait à l'absence d'actionnement et d'obstacle) et de l'équation 1, on détermine la valeur du vecteur 6 - free = 5 (x free) =J-Ax free- Dans cette étape 102, les valeurs de la matrice K sont actualisées en fonction de la position courante des noeuds du robot et du modèle de déformation choisi : modèle FEM ou autre modèle basé sur la physique. En effet, si un modèle dynamique et un schéma d'intégration temporelle implicite ont été choisis, K contient aussi une linéarisation des forces inertielles dans une somme pondérée avec la linéarisation des forces internes: la pondération dépend alors du schéma d'intégration et du pas de temps choisi. Dans tous les cas, on suppose que l'on utilise une unique valeur de K par pas de calcul de la commande. Dans une étape 103, on calcule une matrice W, dite de compliance réduite, qui permet de travailler dans un espace de dimension réduite, avec W = J.K-1JT, où J est la matrice déterminée à l'étape 101, JT est sa matrice transposée et K-1 est l'inverse de la matrice K obtenue à l'étape 102. A partir du calcul de la configuration libre telle que décrite ci-dessus, on obtient une nouvelle formulation décrivant la variation du vecteur c : Ô= W. À + ô free équation (4). La mise en forme de la détermination des commandes du robot 1 sous la forme de l'équation (4) montre que la taille du système à résoudre correspond à la taille de la matrice W, qui est égale à M, la taille du vecteur c5, c'est-à-dire à l'addition du nombre de degrés de liberté des points effecteurs, des actionneurs et des obstacles. Autrement dit, pour un robot commandé en position sur deux points effecteurs (correspondant au total à 6 degrés de liberté), par 10 actionneurs (correspondant au total à 10 degrés de liberté) avec 5 points de contact (correspondant au total à 5 degrés de liberté), on arrive à un système de taille 21. Alors que dans l'art antérieur, les tailles des systèmes à résoudre correspondent à la taille du vecteur x, soit au nombre N de noeuds utilisés par le modèle à éléments finis multiplié par le nombre de degrés de liberté par noeud, ce qui pour des maillages de taille moyenne, utilisables en temps réel, correspond à des systèmes de taille située entre 1000 et 3000. Pour permettre un calcul efficace de l'inverse de K, certaines méthodes de factorisation peuvent être utilisées en temps réel pour les maillages de taille réduite (environ 300 noeuds à 3 degrés de liberté). Pour les structures de robot linéiques et dont la matrice K peut se mettre sous la forme d'une matrice bloc tri-diagonale, le calcul peut se faire avec un solveur dédié comme dans C. Duriez, S. Cotin, J. Lenoir, and P. F. Neumann, « New approaches to catheter navigation for interventional radiology simulation », Computer Aided Surgery, vol. 11, pp. 300-308, 2006. De façon générale, on peut utiliser une très bonne approximation de la matrice W en utilisant la méthode décrite dans l'article mentionné ci-dessus « Preconditioner-based contact response and application to cataract surgery », qui s'appuie sur un algorithme adapté à une unité de traitement graphique GPU (« Graphic Processor Unit » en anglais). En utilisant la matrice de compliance W = [wrj]r,j, on peut connaître le couplage mécanique entre un point effecteur r et un point actionneur j de la structure. Plus précisément, on peut avoir une estimation du déplacement Der créé sur un point effecteur r sur un degré de liberté (correspondant à une variation de la différence entre la position actuelle du point effecteur et sa position désirée sur ce degré de liberté), stockée sur la ligne r de la matrice J) en fonction de l'effort À (force, pression ou couple) appliquée par l'actionneur j, sur la structure et dont la direction de la contrainte est stockée sur la ligne j de la matrice J : on obtient : Aôr = Wrj À. Pour simplifier, on nomme ci-après ce point effecteur associé à la ligne r de la matrice J « effecteur r » et cet actionneur associé à la ligne j de la matrice J « l'actionneur j Le lien cinématique entre la position de l'actionneur j et la position de l'effecteur r est fourni par 3, r = DÔ, . Wrj / wn, où 3, Ô, est une variation de position de l'actionneur j (dans la direction d'actionnement) et 3, r est une variation de position de l'effecteur r. Si l'effecteur a plusieurs degrés de liberté, Der et Wrj ont autant de lignes que de degrés de liberté. Un autre actionneur, associé à la ligne k de la matrice J et nommé ci-après « l'actionneur k » peut aussi influencer le déplacement de l'actionneur j, et vice-versa. Ce couplage mécanique peut aussi être connu à l'aide de la matrice W : la variation de déplacement correspondante, sur le degré de liberté de l'actionneur j, est Ag, = Wj k Àk= A k-Wjk Wkk- Les figures 4a et 4b illustrent ces liens cinématiques, et représentent la manière dont un actionnement ÔJ) de l'actionneur j le long de la direction j peut être commandé de manière à imposer un déplacement Der sur l'effecteur terminal r (figure 4a). Un autre actionnement (Àk, k) de l'actionneur k le long de la direction R peut créer un déplacement non souhaité Ag sur l'actionneur j (figure 4b). Dans une étape 104, les commandes d'actionnement vont être déterminées en fonction de la matrice W, de la connaissance de la position x,_, des points effecteurs et de leur trajectoire désirée à l'issue de l'itération i, de la position des actionneurs et de l'ensemble des contraintes liées à l'environnement. Etant considérés les termes r(x;) des rèmes lignes du vecteur ô relatives aux points effecteurs (r dans l'exemple considéré étant égal à 3*m=3*2), indiquant les distances entre leurs positions réelle et désirée selon les différentes directions X, Y, Z de l'espace, le but de l'algorithme détaillé ci-dessous est d'identifier une position (correspondant à un effort d'actionnement) sur les actionneurs (stockée sur les lignes de pour la position d'actionnement et sur les lignes de À pour l'effort d'actionnement) telle que le robot se déforme de manière à arriver à r(x;)=0. Parmi les algorithmes utilisables pour effectuer ce calcul, un solveur itératif de type Gauss-Seidel est ici choisi. Les itérations de cet algorithme sont stoppées une fois que la solution se stabilise, la variation entre deux itérations de la solution déterminée devenant alors inférieure à un seuil fixé. A chaque itération « it », l'algorithme met à jour, une par une, les contributions À des actionneurs j, tout en gelant les contributions Àk des autres actionneurs à leur valeur actuelle, pour tenir compte du couplage entre les actionneurs, sur la base de cette équation : j-1 p équation (5) si jj ij _ " jk ek + V, " jk ek-1 ,s- + "free,j k=0 k= j+1 où 51 est le terme de la ligne du vecteur S relatif à l'actionneur j,.1",t, est le terme de la ligne du vecteur À relatif à l'actionneur k tel que déterminé à l'itération it-1, p est le r e nombre d'actionneurs, Ô:freed est le terme de la ligne du vecteur f e relatif à l'actionneur j. Comme un algorithme de type Gauss-Seidel est utilisé, lorsqu'on effectue une mise à jour locale de l'actionneur j, les contributions gelées des actions 0,..., j-1 viennent de l'itération courante it alors que les contributions gelées des actionneurs j,..., p, viennent de l'itération précédente it-1. La mise à jour locale de l'actionneur j donne une nouvelle contribution il , et une nouvelle position du point effecteur 8r selon la direction r, est mise à jour en utilisant : r + = (11 - = WriA111 où Adj représente la variation de l'effort/1j exercé par l'actionneur j suite à la mise à jour locale de l'actionneur j. Ainsi durant la mise à jour de l'actionneur j, on peut évaluer comment l'actionneur peut ou non réduire la valeur de g r. Lorsqu'on effectue cette mise à jour en 3D, r est pris successivement égal à X, Y, Z pour un point effecteur considéré, donnant ainsi successivement les valeurs 8x, 8v, 8z. En imposant la variation de .11, un mouvement est créé sur ce point effecteur : 8x + = wxj A./11 Sy Yi 8z wzj où wx,, respectivement wy,, respectivement wz, sont les termes de la matrice W à la ligne associée au point effecteur considéré pour la direction X, respectivement Y, respectivement Z et à la colonne associée à l'actionneur j. On appelle Ô* le vecteur Sy , et on appelle w* le vecteur A chaque itération it et à chaque passage sur un actionneur j, on cherche donc à réduire la distance entre la position actuelle et la positon désirée pour le point effecteur considérée, mesurée par Ô*. Mais l'actionneur j ne crée de mouvement sur le point effecteur que dans la direction donnée par le vecteur w*. Par conséquent, on cherche une nouvelle valeur de 3,.11 telle que : w' - w' - (w-1A,1j).( )= ) Ilw*/11 Ilw*111 Cette valeur est obtenue en utilisant : w - w - wzj A111 = -(w jAj+wyjAjy +wziAjz)lw*j 211 équation (6) où M,, , My et Mz représentent respectivement la variation de gx , Sy et 8z. L'équation 6 permet de déterminer la variation de l'effort exercé par un actionneur afin de corriger au mieux l'écart entre positions réelle et désirée d'un point effecteur. Etant donné cette nouvelle valeur de 0.11, on peut mettre à jour /ri et la position jj de l'actionneur j en utilisant l'équation (5). Si la position mise à jour de l'actionneur j dépasse une butée qu'on a associée à l'actionneur j ou si la valeur .11 de l'effort d'actionnement de l'actionneur j dépasse les capacités de l'actionneur, on limite alors l'actionnement pour respecter ces contraintes. On a décrit ci-dessus la prise en compte des contraintes liées aux actionneurs. Pour prendre en compte des auto-collisions du robot, des contacts ou autres contraintes avec l'environnement, il suffit pour cela d'ajouter une ligne dans le système considéré pour chaque contrainte supplémentaire. A chaque itération it, une fois qu'on aura mis à jour les contraintes liées aux actionneurs, on met à jour les lignes correspondantes à ces autres contraintes. Pour une contrainte de contact, on impose par exemple la loi de Signorini : sur un contact j, on calcule d'abord SI en utilisant l'équation (5). Ensuite, on calcule 3.21= - Puis, si et seulement sis L'algorithme de Gauss-Seidel permettant de faire un contrôle avec actionnement redondant n'est qu'un des algorithmes utilisables. D'autres algorithmes peuvent être utilisés de manière à déterminer un effort/une pression à appliquer sur les actionneurs pour obtenir la trajectoire désirée des points effecteurs. Dans une étape 105, les commandes indiquant les contributions à fournir par les actionneurs sont fournies à ces derniers, les actionneurs mettant alors en oeuvre leur commande respective. Si l'actionneur est commandé en position, la commande est fonction de la valeur en chaque ligne de c5 associée à l'actionneur. Si l'actionneur est commandé en effort, la commande est fonction de la valeur en chaque ligne de.1 associée à l'actionneur. Les coordonnées des N noeuds du robot 1 dans la configuration résultant de ces actionnements sont alors déterminées, par exemple par mesures, puis stockées dans le vecteur x,. Dans un autre mode de réalisation, les coordonnées des N noeuds du robot 1 dans la configuration résultant de ces actionnements sont déterminées à l'aide de : x, = xtr' + K-1JTÀ. La présente invention permet ainsi en temps réel le contrôle d'un robot déformable par un ensemble d'actionneur(s) permettant d'obtenir une trajectoire désirée d'au moins un effecteur terminal du robot, grâce notamment à l'utilisation d'une méthode à éléments finis et ce, même lorsque cet ensemble d'actionneurs comporte un très grand nombre d'actionneurs. Dans un mode de réalisation, on regroupe dans la matrice de compliance les lignes relatives aux zones d'actionnement compatibles (i.e. qui créent des déplacements similaires sur un effecteur terminal) pour simplifier le calcul du contrôle en temps réel. Dans le cas considéré, la détermination des commandes prenait en compte la présence d'obstacles présents autour du robot. Néanmoins, l'invention peut être mise en oeuvre sans prise en compte d'obstacles. Dans ce cas, les matrices et vecteurs considérés ne comportent pas de lignes relatives aux obstacles. Dans le cas considéré, le robot déformable comportait une structure en 3 dimensions (3D) déformable. Néanmoins, l'invention est applicable pour toute géométrie 1D, 2D ou 3D de robot déformable selon un nombre quelconque de dimensions. Par exemple, le robot peut correspondre à une structure en 1D, par exemple de type tube flexible actionné ou une structure 2D, par exemple une coque de faible épaisseur actionnée. On notera que dans l'équation (4), on utilise C5free comme valeur de référence pour le vecteur. Dans d'autres modes de réalisation, on pourrait prendre en compte les vecteurs ô et À calculés à l'itération précédente et déterminer de façon prédictive les valeurs de ces vecteurs pour l'itération courante à l'aide des équations 3 et 4, comme cela est présenté aux sections 3.2 et 3.4 de l'article Peterlik, I.; Nouicer, M.; Duriez, C.; Cotin, S. & Kheddar, « A. Constraint-Based Haptic Rendering of Multirate Compliant » Mechanisms IEEE Trans. Haptics, IEEE Computer Society Press, 2011, 4, 175-187. Ainsi suivant l'invention, tout type de contrainte peut être prise en compte, extérieure (obstacles...), ou intérieure au robot (butée des actionneurs par exemple, une rigidification locale, ou au contraire, un assouplissement de certaines parties de la structure qui peuvent être constituées d'un matériau dont les propriétés mécaniques sont contrôlables), des contacts internes (actifs: un actionneur vient créer un contact entre deux parties de la structure, ou passif: la déformation créée des contacts internes à la structure) peuvent être utilisés pour optimiser l'efficacité de la structure. C'est le calcul de la matrice de compliance réduite selon l'invention, intégrant des lignes relatives à ces contraintes qui permet de piloter la modification du comportement de la structure. Le modèle d'interaction mécanique entre un obstacle 4 et le robot 1 est utilisé pour la construction du vecteur Ô (et donc en conséquence, pour la matrice J et la matrice W). Il est aussi utilisé dans l'algorithme qui calcule les positions du robot dans l'étape 105. Les applications de l'invention sont très larges et le spectre d'utilisation englobe notamment celui de la robotique, par exemple dans les domaines suivants. - Robotique chirurgicale ou en milieu fragile : un robot flexible présente plusieurs avantages. Il peut tout d'abord être réalisé «d'un seul bloc», ce qui évite l'utilisation de matériau non compatible avec l'imagerie. En outre, en chirurgie, une des contraintes est que le robot ne doit pas blesser le patient : il est donc intéressant d'avoir un robot étant capable de se déformer lorsqu'il entre en contact avec l'anatomie du patient. - Robotique médicale : pour la création d'orthèse fonctionnelle (cyberthèse), il est avantageux de ne pas avoir un exosquelette rigide de robot, particulièrement inconfortable car la cinématique des articulations est difficile à suivre pour des orthèses articulées. L'approche proposée permet d'utiliser des exosquelettes flexibles qui s'adaptent à la morphologie du patient et qui optimisent l'actionnement suivant l'anatomie et la situation. - Exosquelettes : pour les mêmes raisons que celles évoquées ci-dessus, il peut être avantageux d'utiliser un exosquelette flexible. - Robotique biomimétique : pour la création de robots proches de l'anatomie humaine ou animale, il est intéressant de pouvoir piloter des structures déformables pour mimer le rôle des muscles. Dans un mode de réalisation, le robot peut comporter au moins une partie rigide et au moins une partie deformable : par exemple, le robot peut comporter un bras rigide et une aiguille flexible tenue par le bras rigide, le robot devant insérer l'aiguille dans des tissus mous. REVENDICATIONS1.- Procédé de commande d'un robot (1) comportant au moins une partie déformable par un ensemble d'actionneur(s) (2), chaque point d'un ensemble de point(s) (3), dit(s) point(s) effecteur(s), du robot, devant suivre une trajectoire déterminée, le robot étant défini par un modèle de noeuds et une matrice K définissant une variation des forces internes du robot en chaque noeud en fonction de la variation de position des noeuds, le procédé étant caractérisé en ce que, pour déterminer la commande destinée à chaque actionneur lors d'un iè" pas de calcul de commande : i/ on actualise les valeurs de la matrice K en fonction de la position courante des noeuds du robot ; ii/ on détermine les valeurs courantes de la matrice jacobienne J du vecteur 5 (x), où x est un vecteur de position des noeuds et le vecteur 5 (x) comporte au moins un sous-ensemble de ligne(s) relatif à chaque point effecteur et indiquant les coordonnées des écarts entre la position dudit point effecteur et sa trajectoire déterminée, et au moins un sous-ensemble de ligne(s) indiquant le déplacement de chaque actionneur ; iii/ on calcule les valeurs de la matrice W = J . K-1. JT , où K-1 est la matrice inverse de K et JT est la matrice transposée de J ; et iv/ on résout l'équation 5 = W. À + 80, pour déterminer les valeurs des vecteurs 5 et À audit ième pas de calcul, où À est un vecteur comportant, pour chaque ligne du vecteur ô relative à un point effecteur, une ligne comportant une valeur nulle et pour chaque ligne du vecteur 5 relative à un actionneur, une ligne comportant une valeur d'effort exercé par l'actionneur correspondant au déplacement indiqué, et go est un vecteur comportant des valeurs déterminées ; et v/ on déduit la commande destinée à chaque actionneur en fonction au moins de valeurs déterminées à l'étape iv/ du vecteur 5 ou À. 2.- Procédé de commande d'un robot (1) selon la revendication 1, selon lequel le vecteur comporte en outre au moins un sous-ensemble de ligne(s) indiquant un déplacement d'un point (4) du robot soumis à des contraintes extérieures au robot, et le vecteur À comporte en outre un sous-ensemble correspondant de ligne(s) indiquant des valeurs de forces exercées par les contraintes extérieures au robot correspondant au déplacement indiqué. 3.- Procédé de commande d'un robot (1) selon la revendication 1 ou 2, selon lequel la position correspondant à la trajectoire déterminée d'un point effecteur est soustraite à la position du point effecteur déterminée par interpolation, associée à des coefficients d'interpolation respectifs, de la position d'un ensemble desdits nceud(s) pour obtenir le sous-ensemble de lignes du vecteur ô (x) relatives à l'effecteur, et selon lequel, dans ledit même sous-ensemble de lignes de la matrice jacobienne J, les valeurs dans les colonnes qui correspondent auxdits noeuds, sont fonction desdits coefficients d'interpolation. 4.- Procédé de commande d'un robot (1) selon l'une des revendications précédentes, selon lequel un point de fixation d'un actionneur (2) est une interpolation de nceud(s) associé(s) chacun à un coefficient d'interpolation non nul, et au moins une ligne de la matrice J est déterminée en fonction d'une direction d'actionnement de l'actionneur, chaque terme de ladite ligne étant nul à l'exception de ceux sur les colonnes dudit noeud ou desdits noeuds. 5.- Procédé de commande d'un robot (1) selon l'une des revendications précédentes, selon lequel lors d'un iè" pas de calcul de commande : - on détermine 3.x vérifiant : - K. 3.x = p + f(x,_1), où 3.x représente une variation du vecteur x, le vecteur p représente les forces externes s'exerçant sur le robot, K est la matrice actualisée à l'étape i/, x,_, est le vecteur de position courante des noeuds et f(x,_1) est le vecteur des forces internes s'exerçant sur le robot dans sa position courante ; - on calcule Xfree = X1-1 - on calcule les valeurs du vecteur CS (xfree) ; et - l'équation ô = W. À + go est résolue à l'étape iv, en prenant go égal à ô (xfree)- 6.- Procédé de commande d'un robot (1) selon l'une quelconque des revendications précédentes, selon lequel à l'étape iii/, l'équation 6 = W. À + go est résolue par un algorithme itératif de type Gauss-Seidel, intégrant les contraintes liées aux directions d'actionnement, aux limites de butée et/ou à un effort maximum exercé par au moins un actionneur, et/ou des caractéristiques de contraintes extérieures au robot. 7.- Programme d'ordinateur pour commander un robot (1) comportant au moins une partie déformable par un ensemble d'actionneur(s) (2), chaque point d'un ensemble de point(s) (3), dit(s) point(s) effecteur(s) du robot, devant suivre une trajectoire déterminée, le robot étant défini par un modèle de noeuds et une matrice K définissant une variation des forcesinternes du robot en chaque noeud en fonction de la variation de position des noeuds, ledit programme comportant des instructions pour mettre en oeuvre les étapes d'un procédé selon l'une des revendications 1 à 6 lors d'une exécution du programme par des moyens de traitement, pour déterminer la commande destinée à chaque actionneur lors d'un ième pas de calcul de commande. 8.- Module de commande d'un robot (1) comportant au moins une partie déformable par un ensemble d'actionneur(s) (2), chaque point d'un ensemble de point(s) (3), dit(s) point(s) effecteur(s), du robot, devant suivre une trajectoire déterminée, le robot étant défini par un modèle de noeuds et une matrice K définissant une variation des forces internes du robot en chaque noeud en fonction de la variation de position des noeuds, le module de commande étant caractérisé en ce qu'il est adapté pour, lors de la détermination de la commande destinée à chaque actionneur lors d'un ième pas de calcul de commande, actualiser les valeurs de la matrice K en fonction de la position courante des noeuds du robot, puis pour déterminer les valeurs courantes de la matrice jacobienne J du vecteur ô (x), où x est un vecteur de position des noeuds et le vecteur 5 (x) comporte au moins un sous-ensemble de ligne(s) relatif à chaque point effecteur et indiquant les coordonnées des écarts entre la position dudit point effecteur et sa trajectoire déterminée, et au moins un sous-ensemble de ligne(s) indiquant le déplacement de chaque actionneur ; ledit module de commande étant adapté pour calculer les valeurs de la matrice W = J . K-1 . JT , où K-1 est la matrice inverse de K et JT est la matrice transposée de J et pour résoudre l'équation 6 = W. À + 80, en déterminant les valeurs des vecteurs ô et À audit ième pas de calcul, où À est un vecteur comportant, pour chaque ligne du vecteur ô relative à un point effecteur, une ligne comportant une valeur nulle et pour chaque ligne du vecteur 6 relative à un actionneur, une ligne comportant une valeur d'effort exercé par l'actionneur correspondant au déplacement indiqué, et go est un vecteur comportant des valeurs déterminées ; et ledit module de commande étant adapté pour déduire la commande destinée à chaque actionneur en fonction d'au moins desdites valeurs déterminées du vecteur ô ou À. 9.- Module de commande d'un robot (1) selon la revendication 8 adapté pour déterminer un vecteur 6 comportant en outre au moins un sous-ensemble de ligne(s) indiquant un déplacement d'un point (4) du robot soumis à des contraintes extérieures au robot, et un vecteur À comportant en outre un sous-ensemble correspondant de ligne(s) indiquant desvaleurs de forces exercées par les contraintes extérieures au robot correspondant au déplacement indiqué. 10.- Module de commande d'un robot (1) selon la revendication 8 ou 9, adapté pour soustraire la position correspondant à la trajectoire déterminée d'un point effecteur à la position du point effecteur déterminée par interpolation, associée à des coefficients d'interpolation respectifs, de la position d'un ensemble desdits nceud(s) pour obtenir le sous-ensemble de lignes du vecteur 5 (x) relatives à l'effecteur, et adapté pour déterminer, dans ledit même sous-ensemble de lignes de la matrice jacobienne J, les valeurs dans les colonnes qui correspondent auxdits noeuds, en fonction desdits coefficients d'interpolation. 11.- Module de commande d'un robot (1) selon l'une des revendications 8 à 10, adapté pour déterminer un point de fixation d'un actionneur (2) en tant qu'une interpolation de nceud(s) associé(s) chacun à un coefficient d'interpolation non nul, et pour déterminer au moins une ligne de la matrice J en fonction d'une direction d'actionnement dudit actionneur, chaque terme de ladite ligne étant nul à l'exception de ceux sur les colonnes dudit noeud ou desdits noeuds. 12.- Module de commande d'un robot (1) selon l'une des revendications 8 à 11, adapté pour lors d'un ième pas de calcul de commande, déterminer 3,x vérifiant : - K. 3,x = p + f(x,_ 1), où 3,x représente une variation du vecteur x, le vecteur p représente les forces externes s'exerçant sur le robot, K est la matrice actualisée, x,_, est le vecteur de position courante des noeuds et f(x,_1) est le vecteur des forces internes s'exerçant sur le robot dans sa position courante ; ledit module étant adapté pour calculer xfree = xi-1 + Ox, puis pour calculer les valeurs du vecteur CS (Xfree) ; et pour résoudre l'équation ô = W. À + go en prenant go égal à 8 (xfree). 13.- Module de commande d'un robot (1) selon l'une quelconque des revendications 8 à 12, adapté pour résoudre l'équation ô = W. À + go par un algorithme itératif de type Gauss-Seidel, en y intégrant les contraintes liées aux directions d'actionnement, aux limites de butée et/ou à un effort maximum d'au moins un actionneur, et/ou des caractéristiques de contraintes extérieures au robot.