• Aucun résultat trouvé

XXI *Tcyi *-jai

Dans le document Disponible à / Available at permalink : (Page 86-157)

«y> ^ ^

IjŒi lyri 1e

= ‘w,I^ + ‘Wa‘ü,(I^ - I^) + (‘ü, + ‘u,‘u,) + (‘ü,* - ‘u,0

+ (‘W, - ‘Wu‘w,I,^) (5.88)

Un calcul analogue permet d’avoir No^ et No^. Ces deux composantes

contiennent elles aussi deux termes constants, (I„ -1^) et (1,^,

-On pose :

DI. =

Ini ■ lyyi

lyyi “ lad

et on introduit le vecteur auxiliaire :

(5.89)

W. = (-‘w./ , ‘Ü./W.2 , ‘U.;Ua , -Ua , . -W y

en reportant les termes de ce vecteur dans la matrice U„ on obtient :

(5.90) ‘U. W., + w, w, - -w,

w, + ‘ü, w., + w,

_ w, - -ô, w, + -ü., W.3 + w,. ‘w, W., + w.

quant au vecteur ‘No., il s’écrit :

(5.91)

+ W,DI, + - U.3.4 + (W. - W,)

■No. = + W,DI, + + (W, - WJ

+ W,DI, + U,3l^ - + (W, - WJ

(5.92)

Il est donc évident que l’introduction de la matrice ’U. et du vecteur W., permet d’éliminer certaines opérations redondantes.

Le terme (q.+j + ‘^'u. x q^, ‘**z.+,) de la relation (5.62), contient à priori

6 multiplications et 6 additions; mais du fait que = (0,0,1)\ certaines opérations

80 Explicitons ce terme, r • 1 0 Wu 0 Wü q.i 0 + Wi2 X 0 = -W.1 q.i + _____ 1 L ^ L q.i J (5.93)

ce qui ramène le nombre d’opérations à deux multiplications seulement.

Pour obtenir le terme (2 x + q de la relation (5.63), il

suffit de multiplier les deux premières composantes de (5.93) par 2. 5.4.1 Génération automatique des variables intermédiaires

Le calcul symbolique récursif est utilisé pour éviter de refaire le calcul d’une expression apparaissant au moins deux fois dans un algorithme. Pour ce faire, on crée une nouvelle variable à laquelle on affecte le résultat de calcul de l’expression, et dans la suite des calculs, on remplace l’expression par la nouvelle variable qui lui est associée. Autrement dit, on procède à un changement de variables.

La création de variable intermédiaire n’est nécessaire, que si l’expression contient au moins une opération (multiplication, addition, cosinus, sinus). Mais dans le cas où le résultat d’un calcul ne contient aucune opération, on ne crée pas de variable et on utilise ce résultat tel quel par la suite.

Le calcul symbolique récursif tel qu’il est utilisé par certains auteurs (KIRCANSKI et VUKOBRATOVIC [20]; KHALIL, KLEINHNGER et GAUTIER [14]), demande un grand nombre de variables intermédiaires, parce qu’on doit déterminer à l’avance les variables à créer. Nous proposons une nouvelle méthode qui consiste à confier au programme la création des variables intermédiaires nécessaires, et à les réutiliser pour d’autres expressions dans la mesure du possible. En effet, il arrive qu’une variable soit utilisable juste par une partie de l’algorithme et reste inutilisable dans la suite des calculs. Il serait donc profitable d’utiliser cette variable pour remplacer une nouvelle expression au lieu de créer une nouvelle variable intermédiaire. De cette façon, nous pouvons réduire de plus de 50% le nombre de variables intermédiaires.

Nous allons voir maintenant l’application du calcul symbolique récursif à la détermination du modèle dynamique inverse.

A partir des paramètres de Denavit-Hartenberg du corps Q, on calcule la matrice de rotation ‘‘‘Ri et le vecteur position ‘‘‘Pj du repère lié à Q :

-1

O JP -S0i 0

^■Ri = Ctti S0i Oi C0i -Sai t ‘■'P =1 -fi Sa,

Sa, S0i

L Sa, C0i Ctti Ti Ca,

Les termes Ca^ et Sa^ sont constants, ils sont donc calculés hors ligne. Si la liaison est rotoïde :

Le vecteur ‘‘‘Pj est constant, les termes -r.So^ et r^Ctti sont calculés hors ligne. La matrice ‘ ‘Rj dépend de la variable 0, = q,. Les variables créées sont : Cqi = cos qi , Sq, = sin q^

LCli = Qïj Cq,, LC2i = Gï, Cq^, LC3i = Sttj Sq,, LC4i = Sa, Cq,

elles sont calculé^en ligne. Si la liaison est prismatique :

La matrice “Rj est constante, ses composantes sont calculées hors ligne.

Le vecteur ‘‘‘Pj dépend de la variable rj = qj. Les variables intermédiaires seront donc :

LCli = -qi Stti, LC2i = qj COj

Dans le cas particulier où = kîr/2 , avec k = 0,± 1,±2,..., Caj et Stt; sont, soit nuis, soit égaux à ± 1. Il n’y a pas donc de variables à créer.

82

Nous utilisons les variables locales LCji seulement pour la matrice de rotation et le vecteur de position, parce que ces derniers vont être utilisés pour les récurrences avant et arrière. Pour le reste du calcul, la variable générée pour remplacer une expression sera notée wi. L’ensemble des variables intermédiaires sera noté w.

Initialement, l’ensemble w est vide (w = {}). Et chaque fois qu’on rencontre une expression à une (ou plusieurs) opération, une variable est générée et vient s’ajouter à l’ensemble w ,

à l’état initial : w = {}

première expression : w = {wl}

deuxième expression : w = {wl,w2}

i'”' expression : w = {wl,w2,...,wi}

Le principe de calcul symbolique récursif est le suivant : récurrence avant :

• On calcule par la relation (5.60), les composantes contenant des opérations sont remplacées par des symboles qui viennent s’ajouter à l’ensemble w. Pour le premier corps C„ par exemple, il n’y a pas de symboles à créer, puisque la vitesse °Wo de la base est nulle. Le vecteur devient donc :

= (w^w^,i,w,,j)^

• Si la liaison est rotoïde, on calcule ensuite par (5.61). Dans le cas où la troisième composante n’est ni un nombre ni un symbole, elle sera nommée par un nouveau symbole :

= (w,„w^,„w,,3)^

• Ensuite, on effectue le produit vectoriel x de (5.93), utilisable dans (5.62) si la liaison est rotoïde, ou dans (5.84) si la liaison est prismatique. Le résultat est le vecteur :

* est calculé par (5.62), ce qui donne :

• Pour déterminer de (5.84), on calcule tout d’abord le vecteur

[Vj + *Uj X afin d’éviter des calculs redondants lorsqu’on le multiplie par la

matrice ‘'’R;.

On obtient le vecteur symbolique (Wk+„Wk+,o,Wk+„)^

Et si la liaison est prismatique, on ajoute au résultat le vecteur :

(w,.,j,w,„„qi„ ) avec ^ ^ 2w,,5

• Le vecteur Wi+, est ensuite calculé par (5.90) :

w,.,7 -Wk,/ , - -w,,/

• La matrice ‘*‘Ui+, est calculée par la relation (5.91). Les composantes qui ne sont ni des nombres ni des symboles sont remplacées par de nouveaux symboles.

• Puis on calcule par la relation (5.85), et ‘*'No.*, par la relation (5.92).

Seules les variables intermédiaires relatives à et ‘^'NOj^i sont

conservées pour les utiliser dans le calcul récursif arrière. Quant aux autres variables, on les libère au fur et à mesure, pour les utiliser pour le corps suivant.

récurrence arrière

• A partir de (5.73), on calcule le vecteur et on remplace ces composantes qui ne sont ni des nombres ni des symboles par des symboles de la récurrence avant, s’ils sont "libres" bien sûr, sinon on crée de nouveaux symboles.

• Le vecteur ïj est calculé par (5.74). Les composantes (symboliques) de Ej qui ne sont pas transmises à ïj, seront utilisées dans la suite des calculs.

84

• On calcule finalement le vecteur ^n^ par (5.80), et on libère les symboles relatifs à 'No„ ‘Vi et ï,,, .

Nous avons vu donc, comment les variables intermédiaires (ou symboles) sont générées seulement si le résultat d’un calcul est une expression contenant une opération au moins, et si toutes les autres variables (générées précédemment) seront utilisables ultérieurement.

5.4^ Optimisation du modèle symbolique

Le modèle obtenu par l’algorithme précédent n’est pas parfaitement prêt, parce qu’il arrive souvent que des symboles générés durant le calcul ne jouent aucun rôle dans la détermination des efforts généralisés.

Supposons par exemple que la liaison entre la base et le corps Q est rotoïde. L’effort développé par l’actionneur de cette articulation est égal à la troisième composante de ‘n,. Nous aurons donc besoin, seulement du symbole relatif à cette composante. Tandis que tous les symboles qui ont servi au calcul des deux autres composantes de *n, et des trois composantes de 'fj sont inutilisables.

Nous avons cité cet exemple pour montrer que le modèle engendré doit subir un traitement qui consiste à revoir tous les symboles créés et à éliminer ceux qui n’interviennent pas pour le calcul des efforts généralisés.

Supposons que le modèle obtenu soit de la forme : w, = p,(c,) ^2 = P2(c*,sw,) Wi = Pi(Ci,SW,) Wj = P;(Cj,SWj) Wk = pk(Ck,swJ w, = p,(c„sw,) w„ = p.(c„,sw„) w, = p,(c„sw,)

avec Pi un polynôme qui est fonction de :

- l’ensemble sWj des variables intermédiaires créées pour les expressions qui précédent.

- l’ensemble Cj des paramètres qui ne sont pas des variables intermédiaires (paramètres géométriques et dynamiques, coordonnées généralisées q, vitesses généralisées qet accélérations généralisées q, efforts extérieurs ).

Et supposons que les efforts généralisés soient donnés par les symboles et w„. Le procédé qui permet d’éliminer les symboles inutiles est le suivant : a) l’ensemble des symboles SW est initialisé à : {Wj,w„}.

b) ne pas tenir compte des équations dont l’indice est supérieur à celui du dernier élément de SW (ici on ne tient pas compte de l’équation d’indice r).

c) extraire les symboles sw„ du polynôme p„ et les rechercher dans les membres gauches des équations. La recherche de ces symboles se fait en remontant dans

l’ensemble des équations à partir de l’équation m-1 (dans l’exemple, c’est l’équation

1

).

d) former un nouveau ensemble SW en remplaçant son dernier élément w„ par les symboles sw„ contenus dans p„. Les éléments de cet ensemble sont ordonnés suivant leur apparition dans les membres gauches des équations. (Si les symboles sw„ sont par exemple : w^, Wj et Wj, l’ensemble SW devient {wj,Wi,Wj,w^}. L’équation d’indice

1 est donc éliminée du modèle).

e) si l’ensemble SW n’est pas vide, recommencer à partir de l’étape b). La recherche s’arrête lorsque SW = {}.

On obtient de la sorte, l’ensemble des symboles utilisables par le modèle et l’ensemble des polynômes qui leur correspondent.

Illustrons ceci par l’exemple suivant :

86 1) wl = ol 2) w2 = o2 3) w3 = a3 wl 4) w4 = a4 + û5 wl + a6 w3 5) w5 = a7 + a8 w2 6) w6 = a9 7) w7 = alO w5 + w6 8) w8 = ail 9) w9 = -w6* 10) wlO = al2 w9 11) wll = al3 w7 + w6 12) wl3 = al4 wlO 13) wl4 = al5 wll + wlO 14) wl5 = al6 wll + wl3 15) wl6 = al7 w9 + wl3 avec :

. les ai, des fonctions qui peuvent dépendre des paramètres géométriques et dynamiques et des positions, vitesses et accélérations généralisées.

. les wi, les symboles générés pour remplacer des expressions contenant des opérations.

Et supposons que les efforts généralisés soient donnés par : Fl = wl5 et F2 = wl3. On commence par initialiser l’ensemble SW par ces deux symboles,

SW = {wl3,wl5}

et en remontant dans les équations, on cherche le dernier élément de SW dans les membres de gauche.

On élimine l’équation 15 (qui ne sert pas au calcul des efforts) et on repère l’équation 14 qui contient wl5.

Puis après, on extrait les symboles wll et wl3 se trouvant dans le membre de droite de l’équation 14. Ces symboles sont recherchés dans les membres de gauche des équations et viendront remplacer wl5 dans l’ensemble SW. Ce dernier devient donc :

L’équation 13 est éliminée, puisque wl4 n’est pas utilisé pour calculer wl5. Le même processus s’applique pour le nouveau dernier élément wl3 de SW :

extraire le symbole wlO,

repérer l’équation 10,

remplacer dans SW le symbole wl3 par wlO, d’où le nouveau ensemble SW = {wl0,wll}.

En continuant ainsi, on obtient les ensembles suivants : SW = {w6,w7,wl0} SW = {w6,w7,w9} SW = {w6,w7} SW = {w5,w6} SW = {w5} SW = {w2} SW = {}

le processus s’arrête puisque SW est vide.

Le modèle final sera constitué des équations repérées,

2) w2 = a2 5) w5 = a7 + a8 w2 6) w6 = a9 7) w7 = alO w5 + w6 9) w9 = -w6^ 10) wlO = al2 w9 11) wll = al3 w7 + w6 12) wl3 = al4 wlO 14) wl5 = al6 wll + wl3

La procédure ci-dessus et celle du § 5.4.1, constituent l’algorithme symbolique qui permet de générer des modèles dynamiques inverses plus performants par rapport à ceux fournis par les algorithmes numériques.

88

Mais l’efficacité de l’algorithme symbolique réside dans le fait qu’il tient compte des valeurs particulières des paramètres géométriques et dynamiques du robot (tenseur d’inertie diagonal, cosinus et sinus égaux à 0 ou à ±1,...). Autrement dit, l’algorithme symbolique s’adapte automatiquement aux particularités de chaque robot. Ce qui a pour effet l’élimination d’un grand nombre d’opérations inutiles. C’est une caractéristique que les algorithmes numériques ne possèdent pas.

Nous avons apporté une nouvelle amélioration pour les robots comportant au moins une liaison prismatique (aj =1), avec = kn/2 et 0^ = kn/2. Ce qui est le cas pour de nombreux robots (STANFORD et SCARA par exemple).

Prenons par exemple a, = x/2 et Gj = 0, la matrice de rotation "'Rj est donc égale

à : r 1 0 0 L 0 0 0 -1 1 0 1 J

la vitesse de rotation d’après (5.60) et (5.61) est égale à : ‘ü, = '-‘R, ‘-'u.

en prenant ‘■'Wj., = (w„W2,W3)\ on obtient :

‘Wi = (W„-W3,W2)^

Les composantes de ‘■‘Uj.i se transmettent donc à %

De même, l’accélération angulaire ‘Wj est obtenue par (5.62) :

On calcule le vecteur Wj par (5.90) :

Wi = (-w/, -«1W3, , -W3', -(J3W3, y

W,i = (-ü/ , U,U,, u,W3, -w/ , üjUj, -u/ y

on trouve :

w. = (W. , -w,'(1-1)3 * W(M)3 ^(M)6 » W(M>.)

Nous remarquons donc qu’il n’est pas nécessaire de calculer Wj à partir des

composantes de ‘ûj. Nous gagnons ainsi 6 multiplications.

A partir de (5.91) on calcule ‘Uj :

'U w, + W, -W, . û, -w, + ù, w, + w, + Ü3 -W^ + w. W^-Ô3 -w,. ô. W,+ w.

en comparant à ‘■'Uj.i, on trouve :

■D(i.,)i3

■U(i.i)3i U(i-1)33 *U(i.])32

U(i.i)2i *D(j.i)23 U(i.i)22

on gagne donc 9 additions.

Nous avons comparé le modèle dynamique inverse du robot STANFORD obtenu par KHALEL [15] à celui obtenu par notre programme, et nous avons trouvé que le premier contient les calculs redondants semblables à ceux mentionnés ci-dessus.

90

5.4.3 Nombre d*opérations du modèle symbolique

Si l’articulation qui lie les deux corps Qi et C, est rotoïde le nombre d’opérations est le suivant :

Terme Multiplications Additions

‘■R, (5.94) 4 0 '(à,i (5.60) 8 5 ‘Wi (5.61) 0 1 (5.62) 10 8 W, (5.90) 6 0 ‘U (5.91) 0 9 (5.84) 17 14 ■F. (5.85) 12 9 ■No. (5.92) 15 15 (5.73) 8 5 % (5.74) 0 3 % (5.80) 20 20

soit au total, 100 multiplications et 89 additions.

Si la liaisons est prismatique, on obtient 100 multiplications et 88 additions.

Pour un robot à n articulations rotoïdes, le calcul du modèle dynamique inverse va nécessiter lOOn multiplications et 89n additions, lorsque toutes les données (paramètres géométriques et dynamiques, efforts extérieurs) sont non nuUes. On remarque donc une nette amélioration par rapport aux algorithmes numériques (§ 5.3.3), Mais nous pouvons encore réduire ces nombres si :

- le référentiel absolu est pris confondu avec le référentiel Ri quand q, = 0. Ce

qui nous permet d’annuler r„ d, et a, (Pour une liaison prismatique, ce chobc annule

a„ d, et 0i).

- le vecteur unitaire x, du repère est colinéaire à 2în., lorsque q„ = 0, ce qui annule

le paramètre r,.

Ce choix ne fait pas perdre au robot sa généralité, mais permet d’éliminer certains calculs inutiles pour les deux premiers corps C, et C» ainsi que pour le dernier corps Q.

En effectuant les calculs, nous trouvons 135 multiplications et 124 additions inutiles. Nous obtenons donc : (pour un robot à n liaisons rotoïdes)

lOOn - 135 multiplications 89n - 124 additions

Khalil a obtenu pour les mêmes conditions (KHALIL, KLEINFINGER et GAUTIER [14], GAUTIER et KHAUL [7]) :

lOOn - 127 multiplications 89n - 118 additions

Nous avons repris l’exemple du robot STANFORD , qui a été traité par Khalil, le résultat est le suivant :

multiplications additions Khalil 285 278 Notre

méthode 279 251

5.5 REGROUPEMENT DES PARAMETRES DYNAMIQUES

Le regroupement des paramètres dynamiques a pour but la détermination du nombre minimum de paramètres utilisés pour le calcul du modèle dynamique (direct et/ou inverse) (CHEDMAIL, GAUTIER et KHALIL [3], GAUTIER et KHALIL [7]). La méthode est basée sur la propriété de linéarité du modèle dynamique par rapport aux paramètres dynamiques. Cette linéarité peut être démontrée, soit à partir des relations (5.17) et (5.18) qui expriment les énergies cinétique et potentielle du robot, soit à partir des relations (5.74) et (5.80) qui expriment les efforts articulaires (Ij et ^n,).

Les paramètres dynamiques du corps Q seront représentés par le vecteur :

92

Les paramètres dynamiques du robot (à n degrés de liberté) seront représentés par

le vecteur X de dimension (lOn x 1) :

X* X^

X = !

X’

X”

Du fait de la linéarité, on peut écrire :

r =

2

r‘

i-1 = 2HX, = H X (m = lOn)

(5.95)

(5.96)

H matrice de dimension (n x m), fonction de q, q, et des paramètres géométriques.

H' vecteur composé de la i*~ colonne de H. Xj un élément de X.

r = (A‘ q + B‘ qq + C q' + D‘) X, (5.97)

3A 3B dC dD

A =---- ,B‘ = — ,C = — ,D‘ =

De la relation (5.96) on déduit :

- si le vecteur H‘ est nul, alors n’a aucun effet sur T.

- un paramètre dynamique peut être regroupé à d’autres paramètres

» ••• » •

H‘ = a„ + ... + H*' + ... + H*" (5.99)

avec une constante 0 = 1. k).

Dans ce cas, le paramètre X, peut être mis à 0. Son effet sur F est maintenu en remplaçant X^ par XR.j, où :

XR.j = X. j = 1... k (5.100)

En effet de la relation (5.96), on écrit :

r + F“ + ... + F* = H- X. + H“ Xi. + ... + Xi,

= (a., H“ + ... + ) Xi + H" X,. + ... + H* X„

= H“ (a,. X. + X,.) + ... + H* (a., X. + Xi,)

= H” XR, + ... + H-" XRi, (5.101)

Les conditions nécessaires et suffisantes pour satisfaire la relation (5.99) sont :

A’ = a., A* + ... + a.. A*" (5.102)

et D‘ = a, D“ + ... + a., D“^ (5.103)

La raison c’est que, à partir des relations (5.31) et (5.32), nous remarquons que si la relation (5.102) est vraie, alors des relations analogues pour B‘ et C sont aussi vérifiées. Par conséquent, on a besoin seulement des expressions des A et D‘ pour étudier les regroupements possibles.

Les paramètres dynamiques qui affectent séparément le modèle dynamique et les paramètres regroupés constituent l’ensemble de paramètres dynamiques minimal. La détermination de cet ensemble contribue à la réduction du nombre d’opérations du modèle dynamique et accroît la qualité de l’identification des paramètres dynamiques du robot (FERREIRA [5]).

94

5.6 CONCLUSION

Nous avons présenté, dans les deux premières parties de ce chapitre, les deux formalismes les plus répandus dans le domaine de modélisation dynamique des robots. Les méthodes basées sur le formalisme de Lagrange sont coûteuses en temps de calcul, relativement aux méthodes basées sur le formalisme de Newton-Euler. Nous avons opté pour ce dernier.

Dans la troisième partie, nous avons présenté des méthodes d’optimisation du modèle dynamique inverse basées sur les techniques du calcul symbolique. Ceci nous a permis d’obtenir un modèle dynamique plus performant, non seulement en nombre d’opérations, mais aussi en nombre de variables intermédiaires, ce qui réduit l’espace mémoire occupé par le modèle.

Les descriptions topologique et géométrique, présentées dans le chapitre 3, vont nous permettre d’étendre aisément la méthode de Newton-Euler aux robots arborescents et aux robots à cinématique fermée; tout en gardant les mêmes performances que pour une structure simple. C’est l’objet du chapitre suivant.

96

CHAPITRE 6

MODELE DYNAMIQUE INVERSE DES ROBOTS A CHAINE CINEMATIQUE ARBORESCENTE ET FERMEE 6.1 INTRODUCTION

Dans ce chapitre, nous allons montrer en premier lieu que le modèle dynamique inverse d’une structure arborescente peut s’obtenir facilement en utilisant l’algorithme symbolique basé sur la méthode de Newton-Euler, que nous avons présenté précédemment.

Pour les structures à chaîne cinématique fermée, on commence par déterminer la structure arborescente équivalente en ouvrant les boucles mécaniques. Le modèle dynamique inverse de la structure équivalente et les équations de contrainte qui expriment la fermeture des boucles, vont constituer le modèle dynamique inverse de la structure initiale.

62 MODELE DYNAMIQUE INVERSE D’UNE STRUCTURE ARBORESCENTE 62.1 Equations du modèle

Soient les corps Ç et son antécédent Q, avec i = a(j) (voir § 3.2.2).

Les équations de la récurrence avant sont les mêmes que pour une structure simple. Il suffit de remplacer l’indice i+1 par j.

Pour le calcul des équations de la récurrence arrière, nous devons tenir compte du fait qu’un corps peut posséder plusieurs successeurs.

L’équilibre du corps Q s’écrit (figure 6.1) :

f. = F, + 2 ^

j

j = ji. h . ••• les successeurs de Q

n, = NOi + 2 (iij + Pÿ X Q + MPo x v^

j '

(6.1)

Figure 6.1

fj et n, s’expriment dans en fonction de leurs composantes dans par :

% = % % (6.3)

‘n, = ‘R, 'n, (6.4)

En projetant les équations (6.1) et (6.2) dans le repère R^ lié au corps Q, on

obtient :

t = 'F, + 2 (6.5)

j

‘n, = ’No, + 2 (‘n, + ‘P, X %) + x Sr. (6.6)

6.22 Çfllçyl symbQliqyg

Si Cj est un des successeurs de Q, la matrice de rotation ‘Rj et le vecteur position ‘Py sont obtenus à partir de (3.10) :

98

■R, =

-S/i,COjS0j+C/i,C0j -S/i,COjC0j-C^i,S0, S/ijSttj

C/ijCajS0j+S/ijC0j C/x^CajC0j-S/ijS0j -C/ijSOj

Sa^ S0j Sa, C0,■J Ca,

■P =^ y

rjS/ijSa^ + djCMj -rjC/ijSo^ + djS/ij

r^Ca^ + £,

Dans le cas où la liaison entre C, et C, est rotoïde, le vecteur 'P^ est constant, il est calculé hors ligne. Quant à la matrice ’Rj, elle est variable. Il faut donc optimiser le calcul de ses composantes.

On commence par le calcul des sinus et des cosinus, comme dans le cas d’une structure simple :

CQj = cos qj , Sqj = sin

Ca^ = cos ttj , Sttj = sin ttj

C/i, = cos n, , = sin fi,

Cqj et Sc|j sont les seules variables de la matrice.

Les termes SMjSa^ et -CfijSa, de la troisième colonne de Rj sont constants. Ils

sont calculés hors ligne et on les note : CFp = SMjSaj , CF^ = -C/ijSa^

Voyons maintenant les coefficients de Cq^ et Sq; dans la matrice. Nous

remarquons que le terme figure deux fois dans la première ligne. De même

pour le terme CfijCa, de la deuxième ligne. Ces deux étant constants, on les calcule

CFj, = -S/ijCa, , CF^ = Qi,Ca^

On gagne de cette façon quatre multiplications. La matrice de rotation devient :

LCj, LCjj CFp f'R, = LCp LC, CF, LC, LC, Ca, avec : LC„ = Cn, Cqj + CF„ Sq, LCp = Sn^ Cq, + CFj2 Sq, LCjs ~ Sûfj Sqj LC^ = -CMj Scjj + CFj, Cqj LC>4 “ "S/ij Sqj + CFj2 Cqj LCjé — Soij Cqj

Dans le cas où la liaison est prismatique, c’est le vecteur 'Pi^ qui varie en fonction de la variable articulaire qj = rj. La matrice de rotation ‘Rj est constante, on la calcule hors ligne.

Nous remarquons que le coefficient de q dans la composante d’indice k du vecteur ‘Pi^ est égal à l’élément d’indice (k,3) de la matrice R,. Nous écrivons donc ;

avec :

LCj, = CP, + CFj3 qj

LCj2 = CPî + CFj4 qj

100

les termes CP, et CPj sont constants :

CP. = d, C/ij CPj = dj SMj

On gagne là aussi quatre multiplications.

Pour éviter les calculs redondants et minimiser le nombre de variables intermédiaires à créer, on détermine les équations de la récurrence avant pour tous les successeurs d’un même corps avant de passer aux autres corps. Alors que les équations de la récurrence arrière ne sont calculées pour un corps, que si les efforts

Dans le document Disponible à / Available at permalink : (Page 86-157)

Documents relatifs