FR 2761292 A1 19981002 FR 9801067 A 19980130 Procédé de commande de guidage interactif, sur trajectoire, d'un manipulateur à redondance cinématique La présente invention concerne un procédé pour diriger la commande lors d'un guidage interactif, sur trajectoire, d'un manipulateur à redondance cinématique, sur la base de déplacements ciblés d'effecteurs terminaux commandés par un programmateur, en liaison avec un calcul de valeurs de positions d'articulations conformément à un algorithme de cinématique inverse. D'après Siciliano, B., Sciavicco, L.: "Modelling and Control of Robot Manipulators", McGraw-Hill Copanies (1996), page 95 à 101 et d'après Vukobratovic, M., Kircanski, N.: "Kinematics and Trajectory Synthesis of Manipulation Robots", Springer-Verlag, Tokyo, 1986, pages à 122, on connaît des procédés de commande pour un guidage, sur trajectoire, d'un manipulateur à redondance cinématique, sur la base de déplacements ciblés de l'effecteur final, commandés par un programmateur, en liaison avec un calcul exécuté en fonction d'un algorithme de cinématique inverse, moyennant l'utilisation de la matrice de Jacobi. A cet égard, on connaît un procédé mettant en oeuvre un calcul d'une inverse généralisée de la matrice de Jacobi, qui possède en général quelques caractéristiques avantageuses, mais entraîne également à cet égard une série d'inconvénients. Ainsi on obtient une uniformité de la trajectoire calculée d'une articulation et une faible usure du dispositif d'entraînement du robot, par minimalisation du décalage local de position de l'articulation (critères locaux d'énergie). En outre la distance entre les positions des articulations et les limites physiques des articulations est prise en compte par optimisation de critères globaux dans l'espace zéro de la matrice de Jacobi. Un inconvénient tient au fait que des limitations de trajectoire par des limites physiques des articulations ne peuvent pas être répétées d'une manière garantie, que l'on obtient un comportement instable dans des positions singulières du robot en raison d'une inversion (généralisée) de la matrice de Jacobi et que des configurations inefficaces de la trajectoire du robot sont possibles, lorsque des critères locaux et globaux antagonistes apparaissent. Dans un autre procédé connu, dans lequel un calcul de la matrice de Jacobi transposé est réalisé, l'objectif commandé de l'effecteur final est atteint d'une manière itérative, en fonction d'une représentation de la cinématique inverse en tant que problème d'optimisation. Comme caractéristique avantageuse on obtient un comportement stable dans des positions singulières du robot étant donné qu'aucune inversion de la matrice de Jacobi n'est réalisée. D'une manière générale on ne prend aucunement en compte des limitations de trajectoire dues à des butées physiques d'articulations et des vitesses maximales d'articulation. Il faut établir des heuristiques d'ordre supérieur pour détecter ces exigences imposées. On obtient des allures inefficaces de trajectoire sous la forme de déplacements parasites de l'effecteur final étant donné que le déplacement linéaire cartésien, commandé par la boule de commande manuelle ne peut pas être transmise de façon précise à l'effecteur final du manipulateur. En outre on obtient une usure élevée du matériau du dispositif d'entraînement du robot en raison du passage brusque du robot par des positions singulières, et en raison d'une trajectoire d'articulation en général suffisamment uniforme (on ne prend pas en compte des critères locaux d'énergie). En outre il faut s'accommoder d'une faible vitesse de convergence, c'est-à-dire de réductions de la capacité de travail en temps réel, étant donné qu'aucune stratégie optimale possible pour déterminer la matrice cartésienne de rigidité, définie de façon positive. Dans le document allemand DE 33 44 633 C2 on décrit une commande en temps réel, avec laquelle, en vue de calculer la vitesse des articulations redondantes, on peut déterminer celles qui ne sont pas nécessaires pour le déplacement d'un effecteur final. Un tel calcul est exécuté par au moins l'une des combinaisons d'articulations. Les vitesses pour chaque articulation sont alors déterminées par formation de la moyenne des vitesses calculées de l'articulation. Par conséquent, dans l'état de la technique, on exécute une pondération, et ce des vitesses des articulations. Dans le document US 5 430 643 on décrit également un procédé en temps réel, lors duquel la matrice de Jacobi inverse est calculée. Egalement dans le cas de ce procédé connu selon ce brevet US, on prend en compte des valeurs de pondération pour les vitesses des articulations ainsi que des limitations de trajectoire au moins pour une simulation graphique du déplacement du robot. L'invention a pour but d'indiquer un procédé de commande pour un guidage interactif sur trajectoire d'un manipulateur à redondance cinématique, avec lequel on peut respecter de façon sûre des limitations de trajectoires sur la base de butées physiques d'articulations ainsi que de vitesses maximales autorisées d'articulations et avec lequel aucune heuristique de rang supérieur n'est nécessaire pour contrôler la fiabilité de la solution déterminée, sur la base des limitations de trajectoires et éventuellement corriger cette solution. Ce problème est résolu conformément à l'invention à l'aide d'un procédé du type indiqué plus haut, caractérisé en ce que - à partir d'un déplacement ciblé commandé d'un effecteur final et de la valeur réelle actuelle (qi) de La poslt.on d'articulation du manipulateur, compte tenu d'une -fronction de qualité (f(q)), qui est paramétrée par des valeurs non négatives de pondération (aj, j) et compte -enu de limitations de la trajectoire par des butées physiques d'articulation (qmi, qmex), d'une vitesse maxinale d'articulation (q.x) et de la relation cinématique qui est représentée par la matrice de Jacobi, une nouvelle position d'articulation (quel) est calculée, position qui fixe par avance les nouvelles valeurs pour les régulateurs d'articulations, la fonction de qualité étant la somme d'un critère d'énergie et d'un critère de Position de référence, le critère d'énergie étant calculé a partir de (q-q,)tdiag(cj)(q-q,) et le critère de position de référence étant calculé à partir de (q-q=.:)-diag(oj)(q-q,. f) la grandeur q=.f étant une valeur de rosition d'articulation prédéterminée qui est fixée de telle sorte que la succession des valeurs calculées de pcsitions d'articulation (qj) s'étend à proximité et autour de cette position de référence; - a partir d'une valeur de position d'articulation qu) en tant que point de départ, sur la base de la fonc:zon de qualité un vecteur autorisé d'optimisation est déterminé en rapport avec toutes les conditions secondaires actLves qui indiquent quelles limitations de trajectoire sont atteintes, et ce vecteur est étalonné en fonction des conditions secondaires inactives, qui indiquent quelles limitations de la trajectoire ne sont pas atteintes - le vecteur d'optimisation étalonné est ajouté à la valeur de position d'articulation calculée lors du pas d'itération précédent; et - le caractère optimal de ces valeurs de positions d'articulations est évalué sur la base de la fonction de qualité et des conditions secondaires activées dans la position d'articulation nouvellement calculée. Selon une variante de réalisation avantageuse du procédé selon l'invention, selon lequel moyennant l'utilisation de la matrice de Jacobi de la cinématique, à partir d'un déplacement ciblé commandé Ax, :=(Axt,tAxr) à un instant Ti, Ax=, C 43 et Axr C 9a désignant respectivement la composante de translation et la composante de rotation du déplacement ciblé commandé de l'effecteur final, et Axtm x et AxmaX définissant respectivement le décalage cartésien maximum (en valeur scalaire) de translation ou de rotation, prédéterminé par un programmateur, de l'effecteur final pendant chaque durée d'échantillonnage AT, les décalages ciblés cartésiens désirés, de l'effecteur final en translation et en rotation Axtd et Ax=d par intervalle d'échantillonnage At sont définis comme suit: C A Xdans le cas o Axti Axtji:= Ax. X ailleurs { Ax, dans le cas ou Ax= max(Atq,At=) de telle sorte que la durée de calcul Atq pour le calcul d'un décalage admissible optimum Aq de la position d'articulation et la durée de régulation At,, dont les régulateurs ont besoin pour régler les positions d'axe sur les valeurs de consigne g se situent à l'intérieur de l'intervalle de temps AT. D'autres caractéristiques et avantages de la présente invention ressortiront de la description donnée ci-après prise en référence aux dessins annexés, sur lesquels: - la figure 1 montre, en association avec les caractéristiques indiquées précédemment de l'invention, une représentation du flux d'entrée/de sortie de la cinématique inverse selon une trame en temps réel; - la figure 2 illustre la mise en oeuvre du procédé selon l'invention en utilisant un algorithme pour la cinématique inverse. Le procédé selon l'invention fournit une uniformité de la trajectoire calculée d'articulations et conduit à une faible usure du dispositif d'entraînement du robot, par réduction du décalage local de position des articulations (critères locaux d'énergie). On obtient des trajectoires "élancées" d'articulations autour d'une position de référence (par exemple la position zéro). On évite avantageusement des limites d'articulations dans une très large mesure ou bien ou s'en rapproche en douceur et moyennant la mise en oeuvre d'une faible usure. Ce comportemnt est provoqué par un effet de décélération des axes du robot, qui agit d'une manière proportionnelle à la distance par rapport à la position de référence. En outre on obtient un comportement stable dans des ositions singulières du robot étant donné qu'aucune inversion de la matrice de Jacobi n'est réalisée. En outre on obtient avantageusement des allures efficaces de trajectoire grâce à une transmission précise du déplacement linéaire cartésien, commandé par la boule de commande manuelle, à l'effecteur final du manipulateur. On va décrire ci-après, sous la forme d'un algorithme, le procédé selon l'invention. J,,i=l,..,ndof désignent les colonnes de la matrice de Jacobi de la cinématique au point qo de la position actuelle du manipulateur, ndof désigne le nombre des articulations et J:=q.x dT désigne le décalage maximum autorisé de la position d'une articulation dans chaque intervalle de temps d'exploration JT. Avec aq'^ y:= --- et Jg:=(JlClJ3ú,-.,JdofSndo.) la relation ciné- e1 matique incrémentale est (pAxd,qAx=d)=Jy (1) Sur la base des limitations de trajectoire, on obtient les limitations d'encadrement suivantes pour y: _:=max 1 6) / qimax-' O ":=min t-1, qo désigne l'ensemble admissible calcule de positions de consigne, sur la base des valeurs desquelles les axes du robot sont déjà réglées, ces valeurs représentant la valeur q r. r q c réelle. On définit en outre: y1 r.:= ----------. Afin que Et. toutes les limitations de trajectoire puissent être satisfaites, conformément à la relation cinématique (1), le déplacement ciblé désiré de l'effecteur final est soumis à une extension centrée, que l'on décrit sous la forme de deux scalaires: O de trajectoire sont respectées. On définit b:=(OOOOOOyOO,-y.-1,-1),x:=(y,p,q) et les grandeurs auxiliaires AJq:=(xdO,OO)6, AJq:=(O,OAxd,)R, ainsi que la matrice AcE92in6 avec n:=ndof+2: Je, -Ax, -axa A:= I (2) -In In C E désigne la matrice unité. En outre ai, i=l,...,2,n+6 désigne les lignes de A. Les poids a,o des critères sont représentés par la matrice diagonale AcE"', en tant que facteur de Cholesky de la matricede Hesse à partir de la somme mise sous forme scalaire du critère d'énergie (q-q=.,f)tdiag(oj)(q-q=.f). Les éléments de sa diagonale principale sont: Aj:= I2(ti-a' + 11") pour l s s ^ p- --------_-- -- ndof(q mmx>-qXmi) La structure de base du procédé particulier, selon l'invention, qui utilise une cinématique inverse, pour la commande est illustré schématique sur la figure 2, sur laquelle on voit que la commande de la boule de commande manuelle 1 au manipulateur 4 inclut une phase d'initialisation 2 et une phase d'optimisation. En référence à la figure 2, on va décrire ci-après de façon plus précise un algorithme, qui est utilisé dans le procédé selon l'invention, pour la cinématique inverse. Dans le cas de l'algorithme utilisé de la cinématique inverse, on exécute tout d'abord une phase d'initialisation 2, qui est conçue de la manière suivante: indice chiffré:k=0; valeur de départ: xk=(yk,pk, qk)=O;kmax>7; initialisation, avec m,:=8, de la matrice des conditions secondaires actives At 'm i: A J, -AXt, -AX i At:= 0, 1, 0; 0; 0; 1 initialisation de la valeur d'indice kl; 2, '''.,) pour caractériser les conditions secondaires actives, singulières et inactives: n+5 pour i=7 jJ = n+6 pour i=8 i-2 pour i=9,... ,n+6 i ailleurs initialisation de la subdivision orthogonale en triangles de: (rk,Jk,YR,Zk,Lk,Sk):=AO (A,mk,Jk); initialisation de la position orthogonale régulière en triangles de Z:=AZk: (QzRZ):=o(Zr); initialisation du vecteur -2scai c "al sca. lndofkndof scasndof go- R, gk 2( ( Y k ' Ye) +, Yk..Pdf Yndof Yk yref)+c"ndof Yk Pk-,qk-) Pour g. on utilise l'écriture abrégée suivante: 2(c' (yi kY f) '+ y pk--1 q--1). Dans le cadre de l'algorithme utilisé de la cinématique inverse, on exécute ensuite une phase d'optimisation 3 qui est exécutée de la manière suivante: I. Calcul de la direction d'optimisation dk: RZkd =-QzkZ.gk. Calcul, à partir de là, de d,,x par substitution inverse. Rz d =QZkd Calcul, à partir de là, de dz par substitution inverse. Définition de la direction d'optimisation: dx:=ZkdZ. II. Détermination de la largeur de pas maximale sk et de l'indice jok de la condition secondaire limitative: avec atjdk O, ?>mk avec j=j'K (En cas d'ambiguïté, choisir le jO possédant le plus petit indice iO). III. Contrôle du caractère optimal et mise à jour de toutes les grandeurs de la matrice et des grandeurs d'indice. (a) Dans le cas o on a Sk 1 est devenu active): i. Dans le cas o l'on a m3 gk+1 = 2(1"'(yik+., - Y'ref) + aic 'yik+,, Pk.1 - 1,qk+1 - 1). * Actualisation des factorisations matricielles et de la quantité d'indice: (rk+1,mk+l,Jk+l,Yk+l.Zk+l, Lk+l,.Sk-1):=tA.(io.rk,mkJk.Yk,Zk, Lk,Sk) Contrôle du caractère optimal de x+l: Dans le cas o l'on a Z tl= g,_l=O; et >.+ = LLS(rk_,m fg-_l, Yi+lLk+l) Ä0 alors: passer au pas IV. Sinon: k=k+l (indice d'itération accru) Dans le cas o l'on a k>kmax: passer au pas IV. Sinon: détermination de la subdivision orthogonale régulière en triangles de Z:=AZ7, -: (QZ RZ _1):=DZ(Z,rr). Passer au pas I. ii. Dans le cas o l'on a mk = n (le coin de la zone admissible est atteint, un remplacement de conditions secondaires actives est nécessaire): * Xk+l= Xk+skdk, Xk+l=(yk+ 1,pk+1,qk+1) gk-1=2( "l'(YA-k+I-Y,.f)+(! yk+lY Pk+l=,1qk+1-1 *) i-k = LLS(rk+1,mk+1,gkYk. Lk) * Libération d'une direction avec le potentiel maximum d'optimisation: kj:=mink. J * Actualisation de factorisations matricielles et de la quantité d'indice (rk,mk,Jk,Yk,Zk,Lk,Sk):=..0,r k,mk,Jk.Yk,Zk,Lk,Sk). * Activation de la condition secondaire j . Actualisation des factorisations matricielles et de la quantité d'indice: A, " ' (rk+,mk+1,Jk+ljYk+1,Zk+l,Lk+1,Sk+1)= (irk, mk, JK,YKZ, L, S). * Contrôle du caractère optimal de xk- Dans le cas o l'on a Zt+1g+1=0; et X+1 = LLS(r±,mk.,ga Yx+,L+2)>0 alors: passer au pas IV. Sinon: k=k+1 (indice d'itération accru) Dans le cas o l'on a k>kmax: passer au pas IV. Sinon: détermination de la subdivision orthogonale régulière en triangles de Z: =AZ): (Q Z+,R k+l) =Z (Zr,_)- Passer au pas I. (b) Dans le cas o l'on a s,=l (aucune nouvelle condition secondaire active) * Xk'l =Xk+dk,Xk+l =(Yk-l, Pkl,qk+1) ' gk+l1 = 2(1i(yk+l'yref)+.ayk+,,pp1-1,qk.1-1); * Actualisation de factorisations matricielles et de la quantité d'indice: (rk+l, mk+,Jk+l,Yk+l,Zk+, Lk.1, Sk+l): =(rk. mk. Jk,Yk,Zk,Lk,Sk). Contrôle du caractère optimal de x+1: Dans le cas o l'on a Zt+xg+L=.,=; et Xk+ = LLS(rx+,mx+,gk+,YI+,LL +L)>O alors: passer au pas IV. Sinon: Libération d'une direction avec le potentiel maximum d'optimisation o= min AJr - Actualisation de factorisations matriciel- les et de la quantité d'indice: (rk+1,mk+l1,Jk+ljYk+,1,Zk+1,Lk+1,Sk+,):=) -_Ork,mk,JL,YK,ZK,LK,SK). - k=k+l (indice d'itération accru) Dans le cas o l'on a k>kmax: passer au pas IV. Sinon: détermination de la subdivision orthogonale régulière en triangles de Z:=AZk+. l (Qzk+,RZ+ ):=cZ(Z,r+i). Passer au pas I. IV. La solution x-_. est déterminée. Stop Fin de l'algorithme de la cinématique inverse. Définition de la fonction LLS: k=LLS(r,m,g,Y,L) k:=0,i=r+l,...,m; XIL:=(+, (.1 * *..,); Lt=k=Ytg. Détermination, à partir de là, de kXL 'X par substitution inverse. Définition de la valeur de sortie de la fonction: k:=(k=,k=). Avec 1.q:=l+maxl j)l(i)l, positionnement des composantes de X, qui appartiennent aux conditions secondaires (1) de l'équation, sur la valeur 1.q. Fin de la fonction LLS. Définition de la fonction +: (r,m,J,Y,Z,L,S)=( ±(iO,r,m,J,Y,Z,L,S). Activation de la condition secondaire j . Avec ajo avec j0:=j' désigne la ligne jo de A. Définition de Q=:=(Y,Z) et formation de a:=Qao. Partition de a:=(ay,a) avec iye'e et a= "-. Détermination de la réflexion de Householder Hi- t..-t de manière que l'on ait là,le,='Hwi, avec e1:=(l,0,...,O)E6n-r. Définition de la transformation unitaire H e IR'" conformément à: I=, O H:= 0, H Définition de la transformation unitaire: Q:=HQ; Actualisation d'indices: r dans le cas o Il=0o; _r+l ailleurs m:=m+l Permutation de conditions secondaires: Dans le cas o l'on a r#r, alors o dans le cas o i=r j: = j" dans le cas o i=iO. jr dans le cas o i=m j4 ailleurs sinon j1O dans le cas o i=m j' j" dans le cas o i=iO; ailleurs j:=(jX f 2n,) Actualisation des factorisations matricielles: Y est la matrice partielle de Qt, qui contient les colonnes 1 à rde Q. Z est la matrice partielle de Qt, qui contient les colonnes r+1 jusqu'à n de Q. L, O r l (S,ay) dans le cas ou r=r S:= S S sinon Fin de la fonction,+. Définition de la fonction D_: (r,m,J, Y,Z,L,S)=A_(jO,r,m,J, ,Z,L,S). Desactivation de la condition secondaire jo S Dans le cas o on a jO>r: (élimination de la condition secondaire singulière active) Actualisation des indices: r:=r; m:=m-l; Permutation de conditions secondaires: ji dans le cas o i=m+l j':=] jm' dans le cas o i=jO ailleurs 3 j Actualisation des factorisations matricielles Y:=Y; Z:=z; L:=L; S=(S., S jo-r_,Sjorl,*.,Smr), Si désignant les colonnes de S * Dans le cas o on a jO Q:=(Y,Z); Q:=E=_,=E=_2,=_1À.E o jolQ;Q - Dans le cas o la dernière ligne de S est nulle ou dans le cas ou l'on a r=m: Actualisation des indices r:=r-l; m:= m-l; Changement des conditions secondaires: ]j dans le cas o i=m+l ji dans le cas o i=jO,..,m l:= ji ailleurs J =( 2 Actualisation de factorisations matricielles: Y est la matrice partielle de Q=, qui contient les colonnes 1 à r de Q. Z est la matrice partielle de t, qui contient les colonnes r+l jusqu'à n de Q=. Dans le cas o l'on a j-.. r E: =^, S:=S - Sinon (conversion de la condition secondaire active sin- gulière en une condition secondaire active régulière): Détermination de l'élément de la dernière ligne de S possédant l'indice 10 le plus petit de telle sorte que l'on ait: S=, 10toO. Permutation de la colonne 10 avec la colonne 1 de S. Définition de la transformation linéaire: R: =( R, Slo) S1o désignant la 10-eme colonne de S. Actualisation des indices: r:=r; m: =m-1 Permutation des conditions secondaires: jio dans le cas ou i=mi+l jl:= j] dans le cas ou i=jO,..,m j ailleurs jr+10-1 dans le cas ou i=r ji:= j] dans le cas o i=r+10-1. j ailleurs Actualisation de factorisations matricielles: Y est la matrice partielle de Qt, qui contient les colonnes 1 à r de Qt. Z est la matrice partielle de Qt, qui contient les colonnes r+l jusqu'à n de Qt. -S=( 2s t **.Slo_11S-l Slo+l - SmrIt). Les Si désignant les colonnes de S. Fin de la fonction O_. Définition de la fonction o,: (r,J,Y,Z,L,S):=4o( ,m,J). l. Définition de: A := , i:=0. 2. Définition de la récursion matricielle suivante: Al+:=HiAl, i>0. La transformation unitaire Hi s IR"'' s'explique comme suit: Hi =t 0, Hi La réflexion de Householder Hil-'i'-i est définie de telle sorte que l'on a: la o el = Hjo-a avec ex =(io,..,o) 0)n- - Les vecteurs aàkc9",k=l,..,n-i désigne les colonnes de la matrice A F*, A= *,A_ En outre on a l alors au pas III, sinon passer au pas IV. 3. Définition des indices: r:=i; Définition des factorisations matricielles: Q:=H=_1H=_*2.Ho; Y est la matrice partielle de Q, qui contient les colonnes 1 à r de Qt. Z est la matrice partielle de Q, qui contient les colonnes r+l jusqu'à n de Q=. T est la matrice qui est obtenue par suppression des lignes r+l jusqu'à n dans A '. Définition de LE)=' et Sce'm- = confornement à: (L,S) =T. Arrêt: l'exécution de la fonction b. est terminée 4. Remplacement de la colonne i+kO par la cclonne i+l dans Ai rji' dans le cas o k=i4-l jk:= _. dans le cas o k = i-kD j ailleurs Positionnement de je:=jk k, augmentation de l'indice chiffré i=i+l et avance au pas II. Fin de la fonction VO. Définition de la fonction CVo: (Qz,RZ):=z o(Z,r). Détermination de la subdivision en triangles QR de Z: Rz Qzz= [ Q5Z X désigne une matrice unitaire et RZ c %R"' désigne une matrice triangulaire supérieure. Fin de la Fonction DZo. En outre, conformément à l'invention le décalage ciblé cartésien Ax, de l'effecteur final, qui est commandé à un instant TI, est commandé par le programmateur sous la forme d'un vecteur d'incrémentation à 6 dimensions. En outre, conformément à l'invention le vecteur d'incrémentation du décalage ciblé cartésien Ax, de l'effecteur final, commandé à un instant Tx est déterminé par le programmateur, par formation de la différence de coordonnée absolue de l'effecteur final. REVENDICATIONS 1. Procédé pour diriger la commande dans le cas d'un guidage interactif, sur trajectoire, d'un manipulateur à redondance cinématique,sur la base de déplacements ciblés d'effecteurs terminaux commandés par un programmateur, en liaison avec un calcul de valeurs de positions d'articulations conformément à un algorithme de cinématique inverse, caractérisé par les caractéristiques suivantes: - à partir d'un déplacement ciblé commandé d'un effecteur final et de la valeur réelle actuelle (qj) de la position d'articulation du manipulateur, compte tenu d'une fonction de qualité (f(q)), qui est paramétrée par des valeurs non négatives de pondération (cj, go) et compte tenu de limitations de la trajectoire par des butées physiques d'articulation (qm1i, qm>x), d'une vitesse maximale d'articulation (qmx) et de la relation cinématique qui est représentée par la matrice de Jacobi, une nouvelle position d'articulation (q,+,) est calculée, position qui fixe par avance les nouvelles valeurs pour les régulateurs d'articulations, la fonction de qualité étant la somme d'un critère d'énergie et d'un critère de position de référence, le critère d'énergie étant calculé à partir de (q-q,)tdiag(cj,)(q-q,) et le critère de position de référence étant calculé à partir de (q-q=.. )=tdiag(dj)(q-q=.er) la grandeur quel étant une valeur de position d'articulation prédéterminée qui est fixée de telle sorte que la succession des valeurs calculées de positions d'articulation (q,) s'étend à proximité et autour de cette position de référence; - à partir d'une valeur de position d'articulation (q,) en tant que point de départ, sur la base de la fonction de qualité un vecteur autorisé d'optimisation est déterminé en rapport avec toutes les conditions secondaires actives qui indiquent quelles limitations de trajectoire sont atteintes, et ce vecteur est étalonné en fonction des conditions secondaires inactives, qui indiquent quelles limitations de la trajectoire ne sont pas atteintes; le vecteur d'optimisation étalonné est ajouté à la valeur de position d'articulation calculée lors du pas d'itération précédent; et - le caractère optimal de ces valeurs de positions d'articulations est évalué sur la base de la fonction de qualité et des conditions secondaires activées dans la position d'articulation nouvellement calculée. 2. Procédé selon la revendication 1, caractérisé en ce que moyennant l'utilisation de la matrice de Jacobi de la cinématique, à partir d'un déplacement ciblé commandé Ax.:=(Axt,Ax=) à un instant T, Axt, E fl3 et Ax I ER3 désignant respectivement la composante de translation et la composante de rotation du déplacement ciblé commandé de l'effecteur final, et Axt' et Axmax définissant respectivement le décalage cartésien maximum (en valeur scalaire) de translation ou de rotation, prédéterminé par un programmateur, de l'effecteur final pendant chaque durée d'échantillonnage AT, les décalages ciblés cartésiens désirés, de l'effecteur final en translation et en rotation Axtdc et Axd par intervalle d'échantillonnage At sont définis comme suit: Axe dans le cas o IAxK _cir. par sa norme euclidienne i x:= (i xix), le déplace- --nr.t ciblé désiré de l'effecteur final est explicité par Axd:={AxCd, AxCd) et les critères d'énergie et les critères -e position de référence peuvent être pondérés de façon appropriée en fonction des exigences présentes, qui sont spécifiques aux problèmes par le fait qu'à chaque axe j sont affectées deux valeurs chiffrées positives aj, Ij Prédéterminées par le programmateur, et parmi lesquelles la aleur cj sert à pondérer un critère d'énergie, qui évalue ia différence de deux positions d'articulations voisines calcu.ées de l'axe j, et la valeur A, sert à pondérer un critère, qui évalue la déviation de la position 'articulation qj par rapport à une valeur de référence re. j egalement prédéterminée par le programmateur, valeur cui est prédéterminée par le programmateur exactement comme -es butées physiques d'articulation qminqm du manipulateur, qui concernent les limitations de crajectoire, ainsi que les limitations qx de la vitesse ce i'articulation, et que, lorsque les grandeurs de sortie Au procédé pour un décalage ciblé désiré Axd de _'effecteur final sont obtenues à l'instant T^_^^ pendant L'intervalle de temps AT un décalage optimum admissible Aq -e la position d'articulation est calculé avec l'algorithme ce la cinématique inverse, qui se déroule pendant une phase c'initialisation (2) et une phase suivante d'optimisation 3), la valeur de consigne actuelle étant obtenue dans le régulateur de l'articulation à partir de q ig = osige + Aq (avec q con les positions des articulations sont franchies de façon correspondante par -es régulateurs de l'articulation pendant l'intervalle de temps AT) et étant considérée pour un décalage admissible ie la position d'articulation, que la valeur de position D'articulation actualisée avec Aq satisfait aux limitations P hysiques d'articulations q n,qm conformément à q,, max(Atq,At=) de telle sorte que la durée de calcul Atq pour le calcul d'un décalage admissible optimum Aq de la position d'articulation et la durée de régulation At=, dont les régulateurs ont besoin pour régler les positions d'axe sur les valeurs de consigne q=oiqoe, se situent à l'intérieur de l'intervalle de temps AT. 3. Procédé selon la revendication 2, caractérisé en ce que dans l'hypothèse o J,,i=l,...,ndof désigne les colonnes de la matrice de Jacobi de la cinématique, ndof dsigne le nombre des articulations et Es:=q mAT représente le décalage maximum obtenu de la position d'articulation pendant l'intervalle de temps Aq d'échantillonnage AT, avec y:= --- et El ji:=(J1g1,J2g2,.**, JrNcOfErdcf) (pAx c,qAx=)=Jy (1) de telle sorte qu'on obtient, sur la base des limitations de trajectoire, les limites d'encadrement mq m,-qO qm- axq o y1,:=max -----------) et y'a.:=min q---- ---) qo étant l'en- E,, semble admissible de positions de consigne, calculé en dernier, sur la base des valeurs desquelles les axes du i i q r.f-q o robot sont déjà réglés, qu'en outre y.e:= ---------- est définie, que, pour que toutes les limitations de trajectoire soient satisfaites, conformément à la relation cinématique (1), le déplacement ciblé désiré de l'effecteur terminal est soumis à une extension centrée, qui peut être décrite sous la forme de deux scalaires O 7; initialisation, avec m,:=8, de la matrice des conditions secondaires actives À s A.: \tJ., -Axt, -Axrl A:= 0, 1, 0 0; 0; 1 initialisation d la valeur d'indice J):=(j,j2x,.f. .,j R) pour caractériser les conditions secondaires actives, singulières et inactives: n+5 pour i=7 j = l n+6 pour i=8 i-2 pour i=9,. ,n+6 Ci ailleurs initialisation de la subdivision orthogonale en triangles de: (rk,Jk,Yk,Z,Lk,Sk):=Ao (,mk,J); initialisation de la position orthogonale régulière en triangles de Z:=AZx: (QzRZ):=Zo(Zr); initialisation du vecteur go E R':g.:=2(' a(yx -y aEtr) + ai= Y Ikp-lqg-) et que dans le cas de l'algorithme utilisé de la cinématique inverse, on exécute ensuite une phase..CLMF: d'optimisation, qui est conçue de la manière indiquée ci- après: I. Calcul de la direction d'optimisation d: R,d x=-Qz.Zkg. Calcul, à partir de là, de deux par substitution inverse. RZCd==Qz ldax Calcul, à partir de là, de dz par substitution inverse. Définition de la direction d'optimisation: dk:=Z kdZ. II. Détermination de la largeur de pas maximale s. et de l'indice j k de la condition secondaire limitative: avec a'jdk O,Vi>mk avecj=jiK (En cas d'ambiguïté, choisir le jO possédant le plus petit indice io). III. Contrôle du caractère optimal et mise à jour de toutes les grandeurs de la matrice et des grandeurs d'indice. (a) Dans le cas o on a Sk gk+: = 2(13sca(yik+ - yref') +,ScaIyik+. Pk+1 - 1,qk+1 - 1). * Actualisation des factorisations matricielles et de la quantité d'indice: (rk+1 mk+1 Jk+lYk+l.Zk+1 Lk+l, Sk+): =a) +(io. rk.mk, Jk,Yk,Zk, Lk, Sk) Contrôle du caractère optimal de xk: Dans le cas o l'on a Zt +gk.=0; et i_+ = LLS(r+l,mR gk+,lY+ xLk+1)>0 alors: passer au pas IV. Sinon: k=k+l (indice d'itération accru) Dans le cas o l'on a k>kmnax: passer au pas IV. Sinon: détermination de la subdivision orthogonale régulière en triangles de Z:=AZ.- 1: (QZ RZ (Q +,RZk+l):= (Zrk.). Passer au pas I. ii. Dans le cas o l'on a m: = n (le coin de la zone admissible est atteint, un remplacement de conditions secondaires actives est nécessaire): * Xk+1 = Xk+ Skdk, Xk1 =(Yk+1 Pk*1,qk+l) gk+1=2(P1 (yk1-yref)+a, yk+1.,pk+1=l qk+1- 1) kk = LLS(rk+1,mk+1.gk.Yk.Lk). * Libération d'une direction avec le potentiel maximum d'optimisation: k :=minkj j * Actualisation de factorisations matricielles et de la quantité d'indice (rk, mk, Jk,YkZk, Lk, Sk): =( -O, rk, mk, Jk,Yk,Zk, Lk, Sk). * Activation de la condition secondaire j. Actualisation des factorisations matricielles et de la quantité d'indice: A '"' NJV %'U O C lr5 a èp(rk+1,mk+1,Jk+ljYk+1,Zk+, Lk+1, Sk+1): =(I) +(iO, rk, mkJK,YK,ZK,LK,SK). * Contrôle du caractère optimal de x,-, Dans le cas o l'on a Z +1g1=0; et + = LLS(rk+.,m+ ,L2 +)>0 alors:passer au pas IV. Sinon: k=k+l (indice d'itération accru) Dans le cas o l'on a k>kmax: passer au pas IV. Sinon: détermination de la subdivision orthogonale régulière en triangles de :=Az.+: (QZ +,,RZ +x):= Z(Z,rk+x). Passer au pas I. (b) Dans le cas o l'on a sk=l (aucune nouvelle condition secondaire active) ' Xk.l=xk+dk,Xk+1=(yk-1,Pk-l, qk+1); gk+l = 2(lscaI(Yk+l'yryf)+jisca'yk+l,Pp+l1-1,qk+1-1) * Actualisation de factorisations matricielles et de la quantité d'indice: (rk+1,mk+l,Jk+l,Yk+1,Zk+1 Lk+,Sk+l): =(rk, mk,Jk,Yk,Zk, Lk, Sk). Contrôle du caractère optimal de x+: Dans le cas o l'on a Z +1g+x=O; et k+ = LLS(rk+,m=+,g+,Y+,L+)0 alors: passer au pas IV. Sinon: Libération d'une direction avec le potentiel maximum d'optimisation k = min k>; - Actualisation de factorisations matriciel- les et de la quantité d'indice: (rk+,,mk+l,Jk+ljYk+1,Zk+lLk+,Sk+,):=@ A(Orkmk,JK,YKZKLKSK). - k=k+l (indice d'itération accru) Dans le cas ou l'on a k>kmnax: passer au pas IV. Sinon: détermination de la subdivision orthogonale régulière en triangles de Z:=,\Zk+l: (QZ +,R Z y):= (z,r,+). Passer au pas I. IV. La solution Xko_ est déterminée. Stop Fin de l'algorithme de la cinématique inverse. Définition de la fonction LLS: k=LLS(r,m,g,Y,L) X:=O,i=r+l,...,m; kL:=( + t,*.*.*.t,); Lt =Ytg. Détermination, à partir de la, de k e 9 r par substitution inverse. Définition de la valeur de sortie de la fonction: k:=(k=,kmL). Avec lq:=l+maxl, m k(i)l, positionnement des composantes de k, qui appartiennent aux conditions secondaires (1) de l'équation, sur la valeur 1,. Fin de la fonction LLS. Définition de la fonction): (r,m,J,Y,Z,L,S)=(D+(iO,r,m,J,Y,Z,L,S). Activation de la condition secondaire j. Avec ajo avec jO:=ji désigne la ligne jlo de A. Définition de Qt:=(Y,Z) et formation de a:=Qajo. Partition de:=(ay,) avec ayez 9 et a9c"-. Détermination de la réflexion de Householder Hc9"i ' ' de manière que l'on ait: aà e1=Ha., avec ex:=(l,0,...,0)esK-. Définition de la transformation unitaire H E 'Ji conformément à: I=, 0 H:= qc N H Définition de la transformation unitaire: Q:=HQ; Actualisation d'indices: r dans le cas o u.z=O r:=- r+l ailleurs m:=m+l Permutation de conditions secondaires: Dans le cas o l'on a rtr, alors lO _ ji dans le cas o i=r := m dans le cas o i=iO j dans le cas o i=m ailleurs sinon _ i dans le cas o i=i jodans le cas o i=iO i: = jm dans le cas o i=i0; ji ailleurs J:=(j',. *3,2n+: dn l aso ii Actualisation des factorisations matricielles: Y est la matrice partielle de Q=, qui contient les colonnes 1 à r de Q. Z est la matrice partielle de Q, qui contient les colonnes r+1 jusqu'à n de Qt. L, 0 l L:= La., a. I (S,ay) dans le cas o r=r _ S sinon Fin de la fonction +. Définition de la fonction _: (r,m,J,Y,Z,L,S) =c( jr,m,J, Y,Z,L,S). Désactivation de la condition secondaire jj. * Dans le cas o on a jO>r: (élimination de la condition secondaire singulière active) Actualisation des indices: r:=r; m:=m-1; Permutation de conditions secondaires: jo dans le cas ou i=m+l 7j i3 dans le cas ou i=jo j ailleurs J: (j1. n+ Actualisation des factorisations matricielles Y:=Y; Z:=Z; i:=L; S:=(S1' 1SJ _ o-r--- lSj-+)I Si désignant les colonnes de S * Dans le cas o on a j0o colonnes 1 à E de Q=. Z est la matrice partielle de t, qui contient les colonnes r+l jusqu'à n de t. Dans le cas o l'on a r - Sinon (conversion de la condition secondaire active sin- gulière en une condition secondaire active régulière): Détermination de l'élément de la dernière ligne de S possédant l'indice 10 le plus petit de telle sorte que l'on ait: S.=o0. Permutation de la colonne 10 avec la colonne 1 de S. Définition de la transformation linéaire: _ - _ R:=(RSo),w S1o désignant la 10-ème colonne de S. Actualisation des indices: r:=r; m:=m-1 Permutation des conditions secondaires: ^j dans le cas o i=m+l I j:= j dans le cas o i=j0,..,m jî ailleurs jr+10-1 dans le cas o i=r j1= jdans le cas o i=r+10-1. jl ailleurs Actualisation de factorisations matricielles: Y est la matrice partielle de Q, qui contient les colonnes 1 à r de Qt. Z est la matrice partielle de Qt, qui contient les colonnes r+1 jusqu'à n de Qt. S:=( 2 * * Slo_1SSlo 1 Sm- I), Les S, désignant les colonnes de S. Fin de la fonction!_. Définition de la fonction A'o: (r,J,Y,Z,L,S):= o(AmJ). 1. Définition de: A :=A, i:=0. 2. Définition de la récursion matricielle suivante: A:=HiAl, i>O. La transformation unitaire Hi c X' s'explique comme suit: tIi, i Hi =. O, Hi La réflexion de Householder H i est définie de telle sorte que l'on a: -i Iva' a koiel = Hia, avec e1:=(l,0,.., 0)t -i't-i Les vecteurs :a),k=l,..,n-i désigne les colonnes de la matrice [ Ai =. *Ai En outre on a l Dans le cas ou aucun kO de ce type n'existe, passer alors au pas III, sinon passer au pas IV. 3. Définition des indices: r:=i; Définition des factorisations matricielles: Q:=H=_-H=_2.Ho;H Y est la matrice partielle de Q=, qui contient les colonnes 1 à r de Q=. Z est la matrice partielle de Q, qui contient les colonnes rF+1 jusqu'à n de Qt. T est la matrice qui est obtenue par suppression des lignes +1 jusqu'à n dans Ai'. Définition de Le='= et SEST conformément à: (Lt,S):=T. Arrêt: l'exécution de la fonction o' est terminée! 4. Remplacement de la colonne i+kO par la colonne i+l dans A Fjex dans le cas o k=i+l 3:= j+ dans le cas o k = i+kO. _jk ailleurs Positionnement de j:=j, Vk, augmentation de l'indice chiffré i=i+l et avance au pas II. Fin de la fonction to. Définition de la fonction zo: (QZ,Rz):= Zo(Z,r). Détermination de la subdivision en triangles QR de Z: Rz Qzz=[j QZ E l'a W désigne une matrice unitaire et RZ c- 9"E ' désigne une matrice triangulaire supérieure. Fin de la Fonction zo. 5. Procédé selon la revendication 2, caractérisé en ce que le décalage ciblé cartésien Ax. de l'effecteur final, qui est commandé à un instant T1, est commandé par le programmateur sous la forme d'un vecteur d'incrémentation à 6 dimensions. 6. Procédé selon la revendication 2, caractérisé en ce que le vecteur d'incrémentation du décalage ciblé cartésien Ax. de l'effecteur final, commandé à un instant Tx est déterminé par le programmateur, par formation de la différence de coordonnées absolues de l'effecteur final.