16
Mech. Mack. TheoeyVol. 28. No. 3. pp. 301-316. 1993 0094-t 14X/93 $6.00+0.00 Printed in Great Britain. All rights reserved Copyright ~ 1993 Peqlamou Press Ltd COMMANDE DES ROBOTS MANIPULATEURS PAR LA PROGRAMMATION DYNAMIQUE MARC J. RICHARD, FRAN(~OIS DUFOUR et STANISLAW TARASIEWICZ D6parternent de 86nie m6canique, Universit6 Laval, Sainte-Foy, Qu6bec, Canada GIK 7P4 (Refu 27 Avril 1992; refu pour publication 23 Juin 1992) Rtmm6--Dans cet article, nous pr6sentons un mod61e dynamique de simulation pour Ins robots munis d'actionneurs 61ectriques ~ ¢ourant continu qui tient compte des non.lin6arit6s du syst~me. Nous avons d6velopp~ des algorithmes de calcul de la commande bas6s sur la programmation dynamique. Suite :i une d6finition de la trajectoire du robot, Ins crit6res de performance et les contraintes physiques peuvent 6tre adapt6s librement au mod61e du bras manipulateur. Une analyse d6taill6¢ des effets des contraintes sur les forces (ou Ins couples) g~n6ralis&'s nous a permis d'acc61~rer la convergence et d'augmenter la pr6ci$ion des algorithmes d6j~i existants en utilisant une nouvelle approche de discr6tisation. A title d'exemple, un bras manipulateur ;i 3 degr~s de libert6 est analys6. INTRODUCTION La diminution des cot~ts de production demeure le principal objectif de i'automatisation et la productivit~ d'une entreprise est garante de sa survie car elle peut rarement souffrir de demi-mesures sans mettre en p6ril ia sant6 financi6re et la position concurrentielle de ceile-ci. II est done primordial de maximiser rutilisation des 6quipements de production. C'est pourquoi nous nous int~resserons ;i la commande optimale des robots manipulateurs. La r6solution du probl~me classique d'optimisation entre deux bornes s'av~re tr~s complexe et pratiquemcnt inapplicable aux robots manipulateurs ~i moins d'effectuer d'importantes simplifications qui r~duisent consid6rablement la port~:e et la validit~ des r~sultats. A cause de leur conception particuli6re, Ins robots manipulateurs poss6dent une dynamique fortement non-lin~aire o6 I'on observe des effets de couplages entre Ins articulations. De plus, Ins contraintes diverses qui agissent sur le syst/:me compliquent davantage la r6solution du probl6me. Les chercheurs s'int&essent ~i la commande optimale des robots manipulateurs depuis plus de 20 arts (un des premiers articles a 6t6 publi6 sur le sujet par Kahn et Roth [1]), mais aucune des m6thodes raises au point jusqu'ici n'apporte de solution d6finitive. La m6thode pr6sent6e dans cet article s'inspire principalement des travaux de Singh et Leu [2] et ne s'int6resse qu'au deuxi6me niveau de la hi6rarchie de commande, soit celui qui contr61e la planification de la trajectoire. Nous laisserons done de c6t6 toute la probi6matique du niveau inf~rieur, celui du suivi de la trajectoire qui se doit de fonctionner en temps r6el pour compenser routes les perturbations du syst6me. Etant lib6r6 de rimportante contrainte du fonctionnement en temps r6el ("on line"), nous pouvons utiliser des mod61es dynamiques beaucoup plus r6alistes, mais notre m6thode ne sera applicable qu'en temps diff6r6 ("off line"). II y a trois faqons de r~soudre les probl6mes de commande optimale, chacune poss6dant ses forces et ses faiblesses: (1) par le calcul variationnel; (2) par le principe du maximum de Pontryagin; (3) par la programmation dynamique (principe de Bellman et Dreyfuss [3]). Le probl6me g6n6ral de la commande optimale r6solu par programmation dynamique exige une recherche parmi 2n variables (n correspondant au hombre de degr6s de iibert6 du robot). Les capacit6s informatiques actuelles sont insuflisantes pour traiter ce genre de probl~me (surtout pour Ins robots ~imultiples degr6s de libert6). Par contre, le d6finition initiale de la trajectoire nous permet de r6soudre un probl6me d'optimisation sur plusieurs variables ind6pendantes, soit Ins vitesses des articulations donn~es. Darts la pratique, cette contrainte n'est pas trop iimitative puisque plusieurs taches accomplies par les robots industriels doivent suivre des trajectoires pr&i6finies. On peut 301

Commande des robots manipulateurs par la programmation dynamique

  • Upload
    ulaval

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Mech. Mack. Theoey Vol. 28. No. 3. pp. 301-316. 1993 0094-t 14X/93 $6.00+0.00 Printed in Great Britain. All rights reserved Copyright ~ 1993 Peqlamou Press Ltd

C O M M A N D E D E S R O B O T S M A N I P U L A T E U R S P A R LA P R O G R A M M A T I O N D Y N A M I Q U E

MARC J. RICHARD, FRAN(~OIS DUFOUR et STANISLAW TARASIEWICZ D6parternent de 86nie m6canique, Universit6 Laval, Sainte-Foy, Qu6bec, Canada GIK 7P4

(Refu 27 Avril 1992; refu pour publication 23 Juin 1992)

Rtmm6--Dans cet article, nous pr6sentons un mod61e dynamique de simulation pour Ins robots munis d'actionneurs 61ectriques ~ ¢ourant continu qui tient compte des non.lin6arit6s du syst~me. Nous avons d6velopp~ des algorithmes de calcul de la commande bas6s sur la programmation dynamique. Suite :i une d6finition de la trajectoire du robot, Ins crit6res de performance et les contraintes physiques peuvent 6tre adapt6s librement au mod61e du bras manipulateur. Une analyse d6taill6¢ des effets des contraintes sur les forces (ou Ins couples) g~n6ralis&'s nous a permis d'acc61~rer la convergence et d'augmenter la pr6ci$ion des algorithmes d6j~i existants en utilisant une nouvelle approche de discr6tisation. A title d'exemple, un bras manipulateur ;i 3 degr~s de libert6 est analys6.

I N T R O D U C T I O N

La diminution des cot~ts de production demeure le principal objectif de i'automatisation et la productivit~ d'une entreprise est garante de sa survie car elle peut rarement souffrir de demi-mesures sans mettre en p6ril ia sant6 financi6re et la position concurrentielle de ceile-ci. II est done primordial de maximiser rutilisation des 6quipements de production. C'est pourquoi nous nous int~resserons ;i la commande optimale des robots manipulateurs.

La r6solution du probl~me classique d'optimisation entre deux bornes s'av~re tr~s complexe et pratiquemcnt inapplicable aux robots manipulateurs ~i moins d'effectuer d'importantes simplifications qui r~duisent consid6rablement la port~:e et la validit~ des r~sultats. A cause de leur conception particuli6re, Ins robots manipulateurs poss6dent une dynamique fortement non-lin~aire o6 I'on observe des effets de couplages entre Ins articulations. De plus, Ins contraintes diverses qui agissent sur le syst/:me compliquent davantage la r6solution du probl6me. Les chercheurs s'int&essent ~i la commande optimale des robots manipulateurs depuis plus de 20 arts (un des premiers articles a 6t6 publi6 sur le sujet par Kahn et Roth [1]), mais aucune des m6thodes raises au point jusqu'ici n'apporte de solution d6finitive.

La m6thode pr6sent6e dans cet article s'inspire principalement des travaux de Singh et Leu [2] et ne s'int6resse qu'au deuxi6me niveau de la hi6rarchie de commande, soit celui qui contr61e la planification de la trajectoire. Nous laisserons done de c6t6 toute la probi6matique du niveau inf~rieur, celui du suivi de la trajectoire qui se doit de fonctionner en temps r6el pour compenser routes les perturbations du syst6me. Etant lib6r6 de rimportante contrainte du fonctionnement en temps r6el ("on line"), nous pouvons utiliser des mod61es dynamiques beaucoup plus r6alistes, mais notre m6thode ne sera applicable qu'en temps diff6r6 ("off line").

II y a trois faqons de r~soudre les probl6mes de commande optimale, chacune poss6dant ses forces et ses faiblesses:

(1) par le calcul variationnel; (2) par le principe du maximum de Pontryagin; (3) par la programmation dynamique (principe de Bellman et Dreyfuss [3]).

Le probl6me g6n6ral de la commande optimale r6solu par programmation dynamique exige une recherche parmi 2n variables (n correspondant au hombre de degr6s de iibert6 du robot). Les capacit6s informatiques actuelles sont insuflisantes pour traiter ce genre de probl~me (surtout pour Ins robots ~i multiples degr6s de libert6). Par contre, le d6finition initiale de la trajectoire nous permet de r6soudre un probl6me d'optimisation sur plusieurs variables ind6pendantes, soit Ins vitesses des articulations donn~es. Darts la pratique, cette contrainte n'est pas trop iimitative puisque plusieurs taches accomplies par les robots industriels doivent suivre des trajectoires pr&i6finies. On peut

301

302 MARC J. RICHARD e l a . I.

penser, par example, aux robots "aveugles" (qui ne poss6dent pas de capteurs extdrioceptifs), qui doivent se mouvoir en 6vitant les obstacles environnants. Lorsque r6volution g6om6trique (ou la trajectoire) du robot est connue, la commande repose sur I'optimisation de la vitesse et de l'acc61dration de chaque articulation.

Mais heureusement, la programmation dynamique offre aussi des avantages. Elle nous permet notamment de tenir compte des non-lin~arit6s dynamiques sur toute la trajectoire. I1 n'est done pas n6cessaire de lin6ariser le syst6me, et on y gagne alors en pr6cision. De plus, elle nous donne une tr6s grande libert6 dans l'application des contraintes sur le syst6me et dans le choix des indices de performance. Par exemple, il nous est possible de limiter les vitesses, les forces (ou les couples), et m6me la d6riv6e temporeile des acc616rations ("jerk") de fa~;on fi prot~ger le robot contre les exc6s m~caniques et, par le fait m6me, augmenter la fiabilit~ de I'ensemble. En outre, nous ne sommes plus limit6s :~ la minimisation du temps uniquement, qui est un indice de performance trds discutable Iorsqu'ii s'agit d'6valuer la productivit6 des 6quipements.

LA MODELISATION DYNAMIQUE DES ROBOTS MANIPULATEURS

Les robots manipulateurs sont des m6canismes complexes et ieur mod61isation est toujours d61icate, surtout si nous prenons en consid6ration les ph6nom6nes dynamiques. Lorsque les vitesses et les acc~16rations atteintes par les articulations du robot sont 61ev6es, les forces centrifugcs et les forces de Coriolis ne peuvent plus 6tre n~glig~es car elles influenccnt le comportement du systdme. De plus, fi cause de leur g6om6trie particuli~re, les interactions entre les divers corps du robot sont souvent trop importantes pour permettrc unc analyse ind6pendante de chaque articulation.

Nous utilisons une m6thode de mod61isation dynamiquc misc au point par Vukobratovic et Potkonjak [4]. Cette m6thode tient compte de toutes les non-lin6arit6s du systdme et elle englobe aussi les actionneurs pour am61iorer ie r6alisme du mod61e.

Mais la m6thode n'est valide que Iorsque les hypoth6ses suivantes sont respect6es:

• elle ne s'applique qu'aux chaines m~caniques simples (c'est le cas de la majorit6 des robots manipulateurs);

• la cha/ne m6canique doit 6tre ouverte, c'est-/t-dire que I'extr6mit6 du robot est libre;

• chaque articulation est limit6e fi un seul degr6 de libert6 q (en rotation ou en translation)

et • chaque membre de la chaine est un solide ind6forrnable.

Nous nous retrouvons alors avec les expressions suivantes qui d6finissent math6matique de la partie m6canique du robot manipulateur [4]:

u = M ( q ) 4 + H(q , fl),

oiJ

I" r OM(q) ,~ H ( q , el) = Jf'l(q)fl - 2q ~ ,I - G ( q )

et

le module

(i)

G(q)---vecteur des forces gravitationnelles, M(q)--matrice d'inertie,

u--vecteur des forces/couples produit par les actionneurs.

Ii est possible de d~finir la commande du robot fi partir du module dynamique que nous venons de d~crire. Cependant, en r~alit~ les actionneurs ne sont pas command6s directement en force ou en couple. Dans ie cas des moteurs ~lectriques, par exemple, ie vecteur de commande est compos~ plut6t des tensions ou des intensit~s d'alimentation. Pour appliquer concr6tement notre commande ~i un robot manipulateur, nous devons int~grer le mod61e math6matique des actionneurs au module dynamique de la partie m6canique.

Dans l'industrie de la robotique nous retrouvons plusieurs types d'actionneurs aliment6s principalement par de l'6nergie ~lectrique ou hydraulique. Dans ce travail, nous ne nous

La programmation dynanfique 303

int6resserons qu'aux actionneurs munis de moteurs ~i courant continu (moteurs CC). lls tendent s'imposer de plus en plus dam l'architecture des robots ,i cause de leur grande versatilit6. Les

couples et les vitesses des moteurs 6rant appel6s ~i varier tout au long de la trajectoire, voici donc ies 6quations caract6ristiques des moteurs CC en r6gime transitoire [5.6] en n6gligeant le couple de frottement sec et le couple r6sistant de la charge:

of a

di(t) v(t) = L-~-- + Ri(t) + K,.N,q(t),

u(t) = K.,.N,i(t) - Ji~(t) - Fq(t),

F--coefficient de friction visqueux ramen6 fi la sortie du r6ducteur de vitesse:

F =Fm N,.3:, [N. m/rad/s],

i(t)--intensit6 61ectrique au rotor [A ], J - -moment d'inertie du rotor ramen6 fi la sortie du r6ducteur de vitess¢:

J = J, NcN, [kg" mZ},

K,.,---constante m~ano-61ectrique du moteur ['V/rad/s], K,,,-----constante 61ectro-m~canique du moteur [lq-m/A],

L--inductance du rotor du moteur CC [H], N, mrapport de r6duction du couple, N : - r appor t des vitesses angulaires du moteur au r6ducteur de vitesse,

q(t)--vitesse angulaire ~i la sortie (apr6s la r6duction de vitesse) [rad/s], ~(t)---acc~16ration angulaire fi la sortie [rad/sZ],

R--r6sistance du rotor [fl] u(t)----couple utile produit par le moteur ~ la sortie [N. m] [on note que ce couple

n'est qu'une composante du vecteur u dans 1'6quation (!)] v(t)----tension d'entr6¢ au rotor (variable de commande du moteur) IV].

(2)

(3)

Les moteurs CC sont donc d6finis par un syst6me d'6quations fi trois degr6s de libert6. Si nous substituons r6quation (2) dans i'~quation (3) pour la valeur de i(t), alors nous obtenons I'expression suivante:

L di K,.N,. J~ + [ F + K,,,N,.K,~N,.]4 + -~ r,,,N,-~t t + u = - - - ~ v. (4)

II est possible de representer r6quation (4) sous la forme:

( d ) N,Rdi v T,~ i~+ +(l+~a)il+LK,,-----~, d t = K , ~ N , (5)

avec JR

~" = K , . N , K . N , , " (6)

et

FR ~s = K , , ~ N , K . N , , " (7)

L r, = ~ . (8)

Les constantes t . et % sont ies constantes de temps m~canique et 61ectrique respectivement, tandis que Ts est une constante de dissipation. Pour les bras manipulateurs, la constante de temps ~lectrique est inf~rieure, voire tr6s inf~rieure, ~ ia constante de temps m6~anique [5, 7, 8]. Comme ordre de grandeur, on peut retenir que % est de I'ordre de la miiliseconde tandis que T. est 6gal

plusieurs dizaines de millisecondes. En plus, puisque z, est fonction de I'inductance et que t . est fonction de I'inertie totale du bras manipulateur, il est commun dans le domaine de ia robotique

304 M^ftc J. RaCH^RD et al.

de n6gliger l'inductance [4, 9, 10]. Donc, nous nous ramenons ;i un syst6me du 2" ordre pour les moteurs CC avec une erreur tr6s tr~s minime sur le comportement du bras manipulateur [i 1, 12]. Finalement. si nous divisons I'equation (5) par r,, qui est beaucoup sup6rieure ;i %, alors le quotient r , /zm devient ndgligeable et on ne commet pas d'erreur en 6crivant:

avec

q( t ) = a~l(t ) + bt ' ( t ) + cu( t ), (9)

K.,.K.~N~N,. F a = R J - ~ , ( lO)

K , . N , b = ~ ( l l )

R J '

I c = - j . (12)

off les param&res a, b et c sont ies constantes caract~ristiques de chaque moteur. Jusqu'ici nous n'avons analysk qu'un seul actionneur d la lois; pour un robot manipulateur d n

articulations, le module dynamique des actionneurs correspond au syst6me d'+quations matricielles (9). Nous utiliserons ce mod61e pour simuler le comportement des actionneurs d'un robot manipulatcur. Lcs r6sultats sont aussi pr~is qu'avec le module du troisi~me ordre et il est plus facile de I'int6grer au mod61e dynamique de la partie m~canique car les variables d'&at sont les m~mes (la position et la vitesse de chaque articulation).

II nc reste plus qu'fi int6grer le module math6matique des actionneurs ~t eelui de la pattie m&anique du robot. R6cup6rons tout d 'abord les modules math~matiques de la partie mfhzanique [6qt, ation (I)] et des actionneurs [equation (9)] munis de moteurs CC. Suite fi une combinaison des deux mod6lcs, nous obtenons le vecteur de commande v:

v = O ' [ ( I - C M ) i j - AiI - C t i ] . (13)

Maintenant quc nous poss6dons un mod61e dynamique de robot manipulateur complet et fiable, nous pouvons nous attaquee au probl~:me de la commande optimale.

I.A C O M M A N D E O P T I M A L E DES ROBOTS M A N I P U L A T E U R S

D~linissons d 'abord d'un¢ faqon g~n&ale le probl~me de la commande optimale. Le syst~me m~caniquc est d,3crit par les ~quations suivantes:

.:, = f ( x ( t ), v ( t )), (14)

off

x ( t ) - v c c t c u r des variables d'&at du syst6me m6canique, r ( t ) - -vecteur de commande (tension d'alimentation des moteurs).

Les valcurs initiale et finale du vecteur des variables d'6tat sont d6finies:

x( to ) = xo, (15)

x ( t / ) = x t . (16)

Le probl6me de la commande optimale consiste ~ trouver la commande v ( t ) qui optimise I'indice de performance gdn&al suivant:

J = K ( x ( t l ) , t/) + L ( x ( t ) , v(t)) dt. (17)

Tout en respectant les contraintes (de type ~galit~ ou in~galitO d~finies par les syst~mes d'~quations:

ck(x(t), v(t)) = 0, (18)

ck(x ( t ) , v ( t ) ) <~ O. (19)

La prog~mmation dynamiqu¢ 305

I! nous faut maintenant formuler le probl6me de la commande optimale i pat-fir des 6quations d~velopp~-s dans la section prC'~lente. Mais rutilisation de rordinateur pour ie calcul de la commande optimale implique la discr~tisation des ~quations pr~-<lentes. Le symbole At(k) repr~sente le temps ~oul~ dans rintervalle de discr~tisation [k, k + 1], o6 k repr~'sente ie point de discr~tisation de la trajectoire 0 ~< k <~ N - i e t Nes t I¢ nombre de segments de discr~tisation de la trajectoire.

l~finissons tout d'abord les ~quations cin~matiques du robot qui serviront ~ventueUement au ealcul de r~volution des coordonn~es g~n&alis~es le long de la trajectoire:

p(k ) = ~ (q(k )), (20)

o6 p e s t le vecteur position de rorgane terminal du robot manipulateur. Le module dynamique complet du robot manipulateur peut maintenant ~tre repr~sent~ sous la

forme:

Les positions et les vitesses initiales du manipulateur sont d6finies de la fa~;on suivante:

p(O) = po, p(O) = po, (22)

p(N) = p/, p (N) = pf. (23)

Notons qu'habituellement, le manipulateur est stationnaire fi chaque extremit~ de ia trajcctoire (ce n'est cependant pas une obligation). Les contraintes sur le syst~me viennent d'abord de la trajectoire qui est pr~d~finie:

G(p(k)) = O, (24)

et elles incluent aussi trois types de limitation de la performance du robot:

(i) limitation des vitesses g~n~ralis~es admissibles:

{~H(q(k). C?(k )) <~ (l(k ) <~ O.,,,.,(q(k ), dl(k )), (25)

(ii) limitation des forces (ou des couples) produites par les actionneurs (mod61e dynamique complet avec les actionneurs):

C,~(q(k ) , il(k)) ~ c(k) <~ Cm,,(q(k), ,~(k)); (26)

(iii) limitation des tensions de command¢ des actionneurs 61ectriques:

V,,,~,,(q(k ), il(k ), v(k )) <~ v(k ) <~ V,,,.,(q(k ), il(k ), v(k )). (27)

D'une fa~;on g6n6rale, les contraintes sur les tensions de commande et les forces produites par les actionneurs peuvent ~tre fonction des variables d'6tat des articulations, et m~me, dans certaines circonstances, cUes d6pendent des autres variables de commande. C'est le cas, par exemple, Iorsque la puissance totale d'alimcntation des actionneurs est limit6e. Nous limitons aussi les vitesses g6n&alis6es, car dans certaines situations, le manipulateur ou la charge transport6e peuvent devenir instables ~ haute vitesse.

L'indice de performance correspondant fi r6quation (17) est tr6s g6n&al. Nous ne nous int6resserons qu'aux probl6mes d'optimisation ax6s sur la minimisation du temps d'activation de la commandeet de r6nergie d6pens6e par les actionneurs. Nous pouvons done identifier trois types d'optimisation particuliers:

(i) minimisation du temps seulement; (ii) minimisation de r6nergie seulement;

(iii) combinaison des deux probl6mes d'optimisation:

(a) 6nergie m6canique:

J = ~, [~t, + tz2uT(k)~l(k)] At(k), (28)

M M T 2111~k--4~

306 MAaC J. RICRAaD et cd.

(b) ~nergie 61ectrique:

J = ~ [~l + ~:vr(k)i(k)] At(k),

(od) ~ et ~2 d6finissent i 'importance relative des deux 616ments ;i minimiser.

(29)

C A L C U L DE LA C O M M A N D E O P T I M A L E PAR LA P R O G R A M M A T I O N DYNAMIQUE

Pour assurer un fonctionnement ad6quat de l 'algodthme, il est essentiel de connaRre la configuration exacte du robot fi chaque point de discr6tisation de la trajectoire. Cela ne signifie pas n~cessairement que nous devons, par exemple, calculer la matrice jacobienne du robot, mais il est important de disposer d'une m6thode nous permettant de trouver la position des articulations d chaque point de discr6tisation. Les robots non-redondants satisfont habituellement ~ cette exigence, puisque nous pouvons calculer avec precision leur configuration tout au long de la trajectoire.

Comme la plupart des algorithmes de programmation dynamique, la r6solution du probl6me commence par le point d'arriv~e et se termine au point initial. Utilisons l'indice k comme pointeur pour la discr6tisation de la trajectoire (k = N - I d 0, od N: hombre de segments de discr6tisation de la trajectoire). Les positions des articulations d chaque point de discr6tisation (q(k)) sont calcul6es ~i partir des 6quations cin6matiques du robot.

Choisissons maintenant une articulation de r6f(~rence i dont la position varie tout au long de la trajectoire. La vitesse de cette articulation d u n point donn6 (t~,(k)) est inconnue, rile r6sulte d'ailleurs de l°optimisation de la commande. Nous savons toutefois qu'elle se situe entre certaines limites:

Q, mm(q(k), ,~(k)) ~< ,~,(k) ~< ~,, .~(q(k), q(k)). (30)

II nous faut done discr~tiser cet intervall¢ dc vitcsse en une s6rie de vitesses admissibles qui appartiendront fi Y~(k), l'ensemble des vitesses admissibles de l'articulation de r6f(~rence au point k. Comme cet intervalle peut (~tre tr6s grand, il risque d'affecter indfiment la performance de l'algorithme. Des re&bodes ellicaces et prgcises ont done (~t6 cr66s pour circonscrire plus &roitement l'intervalle des vitesses admissibles. Elles sont d(~crites dans la section suivante.

Etudions maintenant le comportement du manipulateur entre les points k et k + I. Si nous supposons que les d6placements des articulations entre ces dcux points sont petits et que les acc61&ations sont constantes, nous pouvons en tirer les 6quations suivantes (Singh et Leu [2]):

q , (k)e Y,(k) et q,(k + 1)~ Y,(k + I),

[,L(k + l)] 2 - [,L(k)] 2 /k,(k) = 2[q,(k + I ) - q , ( k ) ] ' (31)

A t ( k ) = 2[q,(k + I) - q,(k)] (32) [q, (k + I ) + ,~, (k)] "

Comme toutes les autres articulations doivent parcourir leur distance respective [qj(k + l ) - q~(k)] dans le m6me temps, alors:

2[qj(k + i ) - q j ( k ) ] - q,(k + l), (33) t~j(k) = At(k)

c],(k) = [~]j(k + 1) - q/(k)] (34) At(k)

Si une des vitesses ~]/(k) (06 j = I, 2 . . . . . n, j # i) viole les contraintes suivantes:

O/m,n(q(k), q(k)) ~< (~/(k) ~< (~j,~(q(k), #(k)), (35)

alors la vitesse ~]j(k) n'est pas admissible. Par contre, si les contraintes sur ies vitesses sont satisfaites, nous devons calculer et v6rifier les tensions d'alimentation des actionneurs pour r~aliser le mouvement entre les deux points k et k + I. Si une seule de ces tensions d6passe les limites permises, la vitesse ~]j(k) est aussi d6clar6e inadmissible.

La programmation dynamique 307

Lorsque nous sommes assur6s de radmissibilit6 du couple de vitesses [q,(k), q,(k + i)], on doit calculer rindice de performance entre nos deux points k et k + I (J°(ib(k),o~(k + !))). Nous r6p6tons ce processus avec la m6me vitesse q,(k), mais en ia couplant A routes ies vitesses #~(k + I)~ Z~(k + !) (Z~ 6rant l'ensemble de toutes les vitesses possibles au point k + 1). Nous trouverons donc une s6rie de couples [,~,(k), q,(k + 1)] admissible parmi lesquels il faut trouver le plus performant. I1 ne nous reste plus qu';i appliquer le principe d'optimalit6 de Bellman:

J(q,(k)) -- rain [J°(q,(k), 4,(k + I)) + J(q,(k + I))] 4,{k + I ) ~ Z , { k + ! }

(36)

J(q,(k))--valeur minimale de rindice de performance pour atteindre r6tat final partir de la position q,(k) et de la vitesse q,(k).

La description d6taiil~e de i'algorithme de calcui de la commande peut 6tre regroup~e sous les 10 points suivants:

1. Entr6e des donn6es caract6ristiques du robot manipulateur. 2. Entree des donn6es relatives d ia trajectoire suivie et aux 6tats initial et final du robot. 3. Discr~tisation de la trajectoire en N segments (N + ! points de discr6tisation). 4. Calcul des positions de chaque articulation d chaque point de discr~tisation de la

trajectoire en r/:soivant les 6quations cin6matiques inverses. 5. Choix d'une articulation de r6ference non-stationnaire, et caicul des bornes minimales et

maximales des vitesses de cette articulation. 6. Initialisation g6n6rale:

Jffb(N)) = O, (37)

k = N - ! (kvar iede N - I /~0).

7. Discr6tisation de rintervalle des vitesses de l'articulation de r6f6rence q~(k) (selon les bornes caicul~es fi 1'6tape 5). Pour chaque couple [#,(k), q,(k + I)]:

• Calcui des vitesses qj(k) (si elles d~passent les limites, le couple n'est pas admissible et nous sautons fi l'~tap¢ 8).

• Calcul des forces g~n6ralis6es (si elles violent les limites, le couple n'est plus admissible et nous passons aussi :i i'6tape 8).

• Nous caiculons ensuite les tensions de commande, puis nous v6rifions si les contraintes sont satisfaites.

• Pour chaque couple admissible, nous calculons i'indice de performance le long du segment [k, k + I], J°(ib(k), ib(k + !).

8. Calcul de I'indice de performance optimal J(il~(k)) pour chaque q,(k), et m~morisation de la vitesse optimale q,(k + !) associ~e.

9. R~p~tition des ~tapes 7 et 8 de k -- N - 2/~ 0. 10. Lorsque k = 0, I'~tat initial est atteint et la commande optimale calcul~¢. Nous pouvons

alors identifier la suite des vitesses #,(k) et les tensions v~(k) optimales.

L'efficacit~ de l'algorithme repose principalement sur la qualit~ de la discr6tisation des positions et des vitesses. C'est un aspect tr~s important puisqu'ii peut faire la difference entre le succC-s et I '~hec du calcul de la commande. Nous l'avons done ~tudi6 s~rieusement et les r~sultats de cette recherche sont pr~sent~s dans la prochaine section.

LA DISCRETISATION DU SYSTEME

L'utilisation de la programmation dynamique implique la discr~tisation des deux variables d'~tat de I'articulation de r6f~rence, soit sa position et sa vitesse (q~ et q,). Les/~quations d~velopp~ dans la section pr~ 'dente nous permettent de caiculer les autres variables d'~tat du syst6me. Nous connaissons donc l'6tat complet du syst~me d6s que la position et ia vitesse de I'articulation de r~f~rence sont d6termin~es. La Fig. I illustre ia m6thode classique de discr~tisation de ces deux

308

qi ,,m

0

qi min

MARC J. RICHAgD et al.

Np : 10

• • • • • • • • • N v : 7

• • • • • • • • •

d5

• • • • • • • • • "q

• • • • • • • • •

Fig. I. Discr6tisation classique.

variables. La position est discr6tis6e ~i intervalles r6guliers le long de la trajectoire du robot (avec Np = # de points de discr6tisation de la position) et la vitesse varie entre deux bornes pr6d6finies [3, 13, 14] (avec N,. = # de points de discr6tisation de la vitesse).

Les dimensions du quadrillage de discr6tisation influencent bcaucoup ia qualit6 et la pr6cision des r6sultats. De plus, le probl6me de commande optimale r6solu par programmation dynamique converge plus facilement Iorsque la discr6tisation se ratline. La r6solution de la grille dolt 6tre suflisamment fine pour donner de boris r6sultats tout en respectant des temps de caicul raisonnables ainsi que la capacit6 m6morieile de rordinateur. C'est habituellement ie temps d'ex6cution qui est iimitatif car il augmente rapidement avec I'am61ioration de la r6solution de la grille.

Par exemple, dans le pire des cas ralgorithme devra effectuer Np x N~ x N,. analyses et calcuis des variables d'6tats du robot (dans la pratique, ce hombre est moindre car on peut 61iminer les cas od les vitesses ne satisfont pas ies contraintes sur les forces g6n6ralis6es). Le temps d'ex6cution d6pend donc tout particuli6rement de ia discr6tisation de la vitesse.

Si nous augmentons la discr6tisation de la position de notre articulation de r6f6renc¢ (Np), nous obtenons une meilleure approximation des param6tres dynamiques du syst6me. Ii faut que la distance parcourue entre deux points de discr6tisation de la trajectoire soit suffisamment petite pour que les matrices dynamiques demeurent valides sur tout le segment. Par contre, ajouter des points :i la discr6tisation de la vitesse (N,.) am61iorera plut6t ia pr6cision du calcul de la commande.

II est aussi trds important d'analyser la relation entre les discr6tisations de la position et de la vitesse. Si la discr6tisation de la position est trop fine en comparaison de celle de la vitesse, le passage d'une vitesse ~i I'autre (de 6(k + 1) ;i il,(k)) exigera une force (ou un couple) plus grande que la force limite impos~e au syst6me (C,m et Cm,), et ralgorithme ne trouvera pas de solution.

L'une des fa~;ons d'all6ger cet effet n6faste, tel que montr6 en Fig. 2, consiste ;i ne plus discr6tiscr la vitesse fi intervalles constants, mais ~i concentrer plut6t les points de discr6tisation vers les vitesses 6lev6es. Nous avons utilis6 une m6thode simple pour distribuer les points, car il est tr6s difficile d'ajuster la discr6tisation aux effets r6els des contraintes sur les forces g6n6ralis6es. Mais en pratique, nous n'avons pas am61ior6 de fa~;on significative la m6thode classique.

qi max

qi rain

10 • • • • • • • • • N p • • • • • • • • •

Nv: 7

qi

• • • • • • • • •

Fig. 2. Discr6tisation de la vitesse.

La progr~mafion dynamique

q| I NI) : 10

Fig. 3. Discr6tisation de la vitesse ~ l'int~deur des limites maximale~ calcul/,=s.

II est beaucoup plus prometteur de resserrer les bornes extr6males, montr~s en Fig. 3, de la vitesse de I'articulation de r~f6rence de faqon ~i tenir compte des contraintes sur les tensions. En effet, la facilit~ d'utilisation des bornes ~mi. et ~m~ est contrebalanc~e cependant par une perte considerable de points de calculs qui ne seront jamais utilis,~s car ils sont hors de port~e des capacit~s physiques du robot. On retrouve surtout ces points de calculs pros des extr6mit6s de la trajectoire. Nous avons donc mis au point une technique qui nous permet de caiculer pr6cis~ment les vitesses maximales (positives et n6gatives) de l'articulation de rff6rence tout au long de la trajectoire en tenant compte sp~cifiquement des limitations sur les tensions. La discr~tisation des vitesses s'effectuant ensuite ~t i'int~rieur de ces nouveUes limites, ii n'y a plus de perte de points de calculs et nous b~n~ficions d'une augmentation consid&able de la pr&ision et de la convergence de Falgorithme de calcul de la commande optimale. Cet aigorithme est plus prL~=is que celui d6velopp6 par Singh et Leu [2], car il tient compte de la trajectoire pour le calcul des bornes ext&ieures des vitesses de I'articulation de r6f~rence.

Le calcul de la vitesse maximale repose sur le fait que toutes ies d~riv~es des variables d'6tat du syst~me sont fonction de la vitesse de I'articulation de r6f~rence (q,). Pour ia d~monstration, nous utiliserons 1'6quation dynamique du robot manipulateur:

v -- B-I[[1 - CM(q)i] - A4 - CH(q, 4)1. (38)

D6rivons maintenant cette 6quation par rapport fi la vitesse de l'articulation de r6f6rence:

t?v I Oi] g ( q ) .. t~4 - Ca H(q, 4 )] (39) O il---~ = B - ' [ l - C M ( q ) ] --~ - C O -~q q - A - ~ - - -~ , j .

L¢ param~tre aM(q)/a4~ est ~videmment nul, et nous pouvons consid~rer all(q, 4)/a4i comme n~gligeable car les variations des forces centrip~tes et des forces de Coriolis sont faibles entre deux points contigus de discr~tisation de la trajectoire. L'~quation pr~c~ente peut donc s'~rire sour la forme simplifi~e suivante:

o4,° = oO _ A B - ' [ l - C M ( q ) ] - ~ , . (40)

Comme les param6tres de la matrice des inerties (M(q)) et des matrices des caract&istiques 61ectriques ne varient pas ~ un point donn6 de la trajectoire, il est donc possible d'ajuster la vitesse de l'articulation de r6f6rence pour obtenir ia tension voulue (F'l~, ou V~m).

Avec r6quation (40), nous pouvons calculer 1'6volution de la vitesse de i'articulation de r6f6rence Iorsque nous fournissons la tension maximale au moteur. I I ne nous reste plus qu'~i d6finir i'algorithme de calcul des vitesses maximales atteintes par I'articulation de r6f6rence tout au long de la trajectoire (k --0 ~ N - I) lorsque la commande maximale est appliqu6e:

I. A un point k donn6, nous connaissons q(k) et q(k), donc nous pouvons calculer la matrice des inerties M(q) .

2. Nous choisissons ensuite arbitrairement une valeur pour la vitesse q,(k + I); il est cependant plus simple d'utiliser q,(k).

310 MARC J. RICHARD e t aft.

3. Nous calculons I'intervalle de temps [k, k + 1]:

2[q,(k + l) - q,(k) ] At (k) =

[#,(k + !) + #,(k) ] "

4. Nous calculons les v i tes~s des autres ar t icu lat ions:

5. Puis, les acc616rations:

.

.

( 4 1 )

q/(k + 1 ) = 2[qs(k + l ) - q)(k)] A t ( k ) ///(k). (42)

#(k + I ) - q(k) / / ( k ) = (43)

At(k)

La commande de I'articulation de r6f~rence:

v,(k) = 1 b,., [ ( / ' - c,., M , ) / / ( k ) - a,., El, (k ) - c,., H , ]. (44)

Puis nous calculons ies d6riv6es des acc616rations et de la commande en fonction de la vitessc de rarticulation de r6f6rence:

dq,(k) #,(k + l) (45)

d#,(k + I ) [q,(k + !) - q, (k) ]

d//,(k) [qj(k + I ) - q , (k) l i l ,(k) d#,(k + !) = [q,(k + I ) - q,(k)] 2 - [q,(k + !) - q, (k) ] ' (46)

[,/,(k + I) + #,(k)]

h , , ( k ) I r . O//(k) ] (47) + gL( l ' -<"M" dO ¥ •

8. II est maintenant possible d'ajuster la vitesse au point k + I en fonction de la commande maximale:

. F V , , - v,q q,(k + 1) = ,~,(k + 1) + / - 7 C - / , / (48)

/ / L ~ , J

of a v. ,=v , , , , , ou v. . , .

9. Nous reprenons ensuite les calculs ~i i'~tape 3 avec la nouvelle valeur q(k + I) autant de lois qu'il est n6cessaire pour atteindre la pr6cision d6sir6e. En pratique, il n'est pas utile d'effectuer plus de deux r6currences.

10. Nous devons r6p6ter les calculs au point k + 1, et continuer jusqu'~i la fin de la trajectoire (k = N - I).

Lorsque I'on calcule ies courbes de d6c61~rations maximales, il faut partir de I'extr~mit~ terminale de la trajectoire pour remonter jusqu'au point initial (k = N - - 0 ) . II faut alors d6river les accelerations et la force (ou le couple) en fonction de la vitesse de I'articulation de r~f~rence au point k. Les 6quations de r6tape num6ro 7 deviennent:

d//,(k) = il,(k + I) (49) d#,(k) [ q , ( k + I ) - q,(k)l"

d//j(k) = [qj(k + I ) - q,(k)] qj(k) + (50)

d//i(k) [q,(k + I ) - qi(k)~ [q,(k + I ) - q,(k)] ' [,~,(k + 1) + q,(k)]

= . ( I , - c , . i M , ) E l , ~ ( k ) - a, . , . (51)

La programmation dynamique 311

(]I

Vi min -~'%~ ~ / ' - Vi max

Fig. 4. Vitesse maximale de I'articulation de rff~rence.

Nous connaissons maintenant les bornes de la vitesse maximale, montr~s en Fig. 4 de I'articulation le long de la trajectoire. Toutes les vitesses possibles de rarticulation de r~f&ence sont comprises dans la surface circonscrite par les quatre courbes. Notre champ de recherche est donc eflicacement r~tr6:i comparativement ~i la discr~tisation classique et les gains en pr6cision sont substantiels. Pour certains probl~mes particuliers oti la position de I'articulation de rff~rence est toujours croissante (ou d,k:roissante), il est possible d'utiliser l'axe des q, comme limite nulle de la vitesse q,. Le champ de recherche est diminu~ de moiti~.

II est encore possible d'am~liorer la discr~tisation de notre syst~me. Comme le nombre de points de discr~tisation de la vitesse demeure constant, l'~cart entre deux de ces points est beaucoup plus grand au milieu de la trajectoire qu'~i ses extr~mit~s. Par contre, nous avons vu pr6~demment que les grands ~carts risquent d'etre pr~judiciables ~i la convergence de I'algorithme. D'autant plus que les vitesses les plus ~iev~es se retrouvent souvent au milieu de la trajectoire. Nous avons donc conqu une m~tbode de distribution des points de discr~tisation de la vitesse qui att~nue les differences d'~carts tout en respectant les exigences des m~moires des m~thodes pr6=~dentes.

Dam cette nouvelle m~thode, le nombre de points de discr~tisation de la vitesse passe progressivement de I ~i 2 × Nv (d'une extr~mit~ de la trajectoire jusqu'au milieu de ceile-ci, Fig. 5). Si nous comparons la distribution progressive des points de discr~tisation de la vitesse, nous avons pour une discr~tisation classique Np x N,. points de discr~tisation et Np x N,. x At,. couples de vitesses ~i analyser. Pour le cas d'une distribution progressive, le nombre de points de discr~tisation de la vitesse demeure le m~me:

2N,. N 2 x ~x-~-= , x N,., (52)

• • • • • • 1 qi

8 8

Fig. 5. Distribution progressive des points de discr~tisation de la vitcsse.

312 MAaC J. R~C~.~aD e t al.

et si les points de diser&isation sont distribu~s scion la fonction:

2N,. N,., = N./----2. x k. (53)

ofa k = 0 il N . / 2 . aiors le nombre de couples de vitesses devient:

~ k = Np ,2

N couples 2N,.~ x N~, dk, (54) dk=0

et en substituant i'equation (53) dans l'~quation (54), tout en effcctuant I'int~grale, nous obtenons:

[-32N~'k3-]~"/: ' N N: N c°uples=L ~ Jo =~ ' ~" (55)

Done, les ~quations (52) et (55) nous d~montrent bien que le nombre total de points de discr~tisation ne change pas, mais le temps d'ex~ution augmente de 33% parce qu'il y a l~g~rement plus de couples de vitesses [q~(k),q,(k + I)] d analyser. Mais les avantages de cette nouvelle distribution l'emportent tout de mEme malgrE l'augmentation du temps de calcul.

Une autre fafon efficace d'augmenter la precision des rEsultats consisted effectuer plusieurs passes de calcul de la commande en raffinant progressivement le degr~ de discr~tisation de la vitesse. La passe initiale est r~alis~e selon les m~thodes d~rites pr~c~demment, mais comme le degr~ de discr&isation est plut6t grossier, la solution calcul~e se r~v~le sous-optimale. La discr~tisation de la vitesse de rarticulation de r~f~rence des passes r~currentes subs~quentes est centr~e sur la vitesse sous-optimale calcul~e dans la passe pr~c~dente, montr~e en Fig. 6. Evidemment, d chaque r~currence nous diminuons rintervalle de vitesse entre deux points de discr~tisation selon un facteur pr~d~fini F (ce facteur varie entre 0 et 1 en pratique, 0.5).

Afin de justifier cette approche, comparons le temps d'ex~cution de la m~thode r~currente par rapport ;i la re&bode classique. Pour la m&hode r6currente, le nombre total de couples de vitesses qui doivent &re calculus et analys~s correspond ~ la formule suivante:

# de couples = N, x Np x N~., (56)

avec N,. repr~sentant le # de passes de calcul de la commande. En plus, pour comparer les deux re&bodes, il nous faut trouver le nombre de points de

discr&isation de la vitesse qui donne la m~me precision dans les rEsultats qu'avec la m&hode r~currente, mais d la suite d'une seule passe de calcul:

# de points = (N,.- i)(I/F) ~' - ~)+ 1. (57)

Si le nombre N,. est suftisamment 61evE, ii est possible de simplifier I'expression pr~c6dente sans affecter d~mesur~ment les r~sultats:

# de points = N , . ( I /F ) (~, - ~) (58)

Nous pouvons maintenant trouver ie nombre de couples de vitesses .a analyser:

# de couples = Np x [N , . ( I /F) (~, -~)]-'. (59)

. . a

o ' " e'". Np : 10

l e'" 4 ~ - - ' - 4 ~ e "'- Nv: S • w O * ~

I ..'"'J"o . . - "" ' " - . : e" e' .

* ' 0 i o

Fig. 6. Calcul r~urrent de la commande.

La programmation dynamique 313

Comme le temps d'ex/~ution des algorithmes est directement proportionnel au nombre de couples de vitesses a n a l y ~ , nous pouvons comparer les deux m~thodes en se fixant un rapport de rff6rence qui serait le quotient du temps d'ex~cution de la m~thode r~'urrente sur ie temps d'ex~cution de la m~thode classique:

R = N*N'NZ" ( 6 0 )

N,N~(I/Ff"* - ' ) '

en simplifiant, nous obtenons:

R = N, (60 ( ! /F )~ , - , ) "

Avcc quelques exemples, il est facile de mettre en 8vidence les avantages de la m~thode r~'current, pour F = 0.5:

R = 50.0%, pour N¢ = 2,

R = 18.8%, pour Nc=3,

e t

R = !.95%, pour N¢ = 5

R=0.0038%, pour N¢= 10.

E

(/} z

o o

cc

50

-50

T I T T

................. [ .................. ! .................................... • - - , , - 4 . . . . t ~ ' i t N ";-" L"L"| ,-: ..... !. ................................... t ............. r-

~ 'L.¢ , . . , .

0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 TEMPS (s)

E 5O - I _ I I I I i o° J I " z . . . . . . . . . . ~, . . . . . . . , . I

' [ : i i ! ! * ! !

t I I 1 I~ i -50 0 0.2 0.4 0.6 0.8 1.0 1.2 1.4

T E M P S (s)

E 5O Z 9 z

o

-50

I I I I I

i J [ ~'- ~ i ..... it". J, .oo , 8" oo..~ • ,

.. n.n ~ r~..~i' "-," ..... '" . ..111 w, ~ - : . 4 j " - ~ "I"" il ~

................ ~ ...... l . l l ~ ........ l ................ .:I. ................. " ............. -._

r",,,.~. I l l i i i i oo.I.o..P $ o

i i u i i t ! I I ! z 1 i i h i i

0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 T E M P S (s)

Fi 8. 7. Commande de ral imentat ion aux actionncurs.

314 M~,a~c J. R I c ~ et al.

Donc, pour une pr6cision 6quivalene des r6sultats, rutilisation du calcul recurrent peut diminuer de fa¢on spectaculaire le temps d'ex6cution, surtout si le nombre de r6currenccs est 61ev6 (cinq r6currences et plus). II faut toutefois s'assurer qu¢ la discr6tisation de la vitesse ~i la passe initiale satisfasse les crit6res de convergence ddfinis prdcddemment. De m6me, notre facteur de diminution des intervalles de discrdtisation fi chaque r6currence ne doit pas 6tre trop faible car il faut 6viter d'enfermer les calculs autour d'une solution sous-optimale. Nous pouvons nous pr6munir contre ce risque en nous assurant que les commandes calcul6es n'empruntent pas les points extr6mes de la discr6tisation de la vitesse. Et en #ndral, il est prudent de couvrir un intervalle total de vitesse 6quivalent fi au moins 50% de rintervaUe couvert ,i la passe pr6cddente. Ces precautions nous permettent d'utiliser en toute confiance le calcul r6current et de profiter de ses avantages int6ressants.

La combinaison des trois derni6res m6thodes, c'est-fi-dire la circonscription des vitesses possibles selon les forces g6n6ralis6es maximales et la distribution progressive des points de discr6tisation de la vitesse pour la passe de calcul initiale ainsi que le calcul r6current de passes subs6quentes, nous a permis de d~velopper un puissant algorithme de calcul de la commande optimale.

APPLICATION DE LA COMMANDE OPTIMALE

Nous avons choisi le robot manipulateur de Stanford comme sujet d'analyse. Nous ne prendrons en consideration toutefois que les trois premiers degr~s de libertY, les articulations de rorgane

A

I ° - 0 . 5

- I .0

- I .5

m -2.0

% I I I I I I ! ; \ . ~ ! i ! ! i ." ~ c " , I , ~ J L . . . . . . . . . . . . . . ~ ........... " . . . .

. . . . i ! i:

................ • ~ ............... -'--i .-'-'.-,:'.?-',---.,..,,.-~ .................. i ............... I--~ .................. 1 ......... i- ......

................ /-.-.-~ ........... T .................. , ............... "--i----:,..":-':t- . - - ' t ' ~ - , , - - ' - , k - - - - -~ ......... " i I i"'..

i ""¢'-"'--T i I i 0 0 .2 0 .4 0.6 0 .8 1.0 1.2 1,4

T E M P S (s)

1 . 5 i I ! ! ! !

! / - " ' J i i i i , . o . . . . . . . . . . . . . . . . . . . . . t . . . . . . . . . . . . . . . . . . i . . . . . . . . . . . . . . . . . . ..* . . . . . . . . . . . . . . . . . . i . . . . . . . . . . . . . . . . .

. . . . . . ~ . . . . . . . . i i i 0.s -~:::::"+;;':~ - ............. f .................. i .................

0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ~ - ; - - 7 " " : : : : " - - = ' , - , ; ; . . ; . ~ . . . . . i i i i

. 0 . s i I I I 0 0 .2 0.4 0.6 0 .8 1.0 1.2 1.4

T E M P S (s)

i .0

v 0 . 5 Lu ¢n 0 ~o

- 0 . 5

/'4 - I . 0 ILl

- I .5 N o

I I I ,I ..................................... ! .................. " ................. i t ................. ........

I I : o...-.-.°'" I %~ ................. ~ ................... i ................................ i ............ "-*..-

~ : ! ! ! i i ~ " ~ i i ............. :t ................ i .................. t .................. i .................. t .................. ii ................. 0.2 0 .4 0.6 0 .8 1.0 1.2 1.4

T E M P S (s)

Fig. 8. Evolution des vitcsses.

La programmation dynamique ;315

2 5 0 0

2 0 0 0

~ 1 5 0 0

n.- UJ Z

" i u I 0 0 0

5 0 0

I ! I ! i i i "

l ~ I ~ J 1 : I :°°"

i i , ! ! . ; ' ° ,,," ! i . i ..°° . i-"

i i i i . - " . . "

. . . . . . . . . . . . . . . . . 4- . . . . . . . . . . . . . . . ; . . . . . . . . . . . 4, . . . . . . . . . . . . . ; . . . . . . . . . . . . . . . ' ..,,:...d . . . . . . . . ; . . . . . . . . . . . . . . ! • i ! , . - ' . i - " i

i i i . i-".. o'" i i . . . . . . . . . . . . . . . . . • i . . . . . . . . . . . . . . . . l . . . . . . . . . . . . . . . . . ~ . . . . . , . . , . . ' . . ~ . ' : ; . . i . . . . . . . . . . . . . . . . . . " . . . . . . . . . . . . . . . . . i . . . . . . . . . . . . . . .

' ! . ; . . : . . ' " i . l . . ° ° . 1 ' ° ° I i i . . . . . : : : . . . . i i

• I l i ; ; ° ° '

0 0 ,2 0 .4 0 .6 o .e 1.0 1.2 T E M P S ( s )

F i g . 9. D ~ n s ¢ ( ~ n e r l l h i q u e .

. 4

terminal seront fixes. La configuration de base de ce robot est du type R-R-P. Les caract~ristiques g~om~triques du manipulateur de Stanford ont I~t~ tir~es d'un ouvrage de Paul[15], et les param~tres des actionncurs l~lcctriques proviennent d'un article de Shin et McKay [8].

La trajcctoire du robot correspond ;i la ligne droite trac~e entre les deux points cart~siens (0.7, 0.7, 0. I) et (0.4, -0.4, 0.4) en m~tre, et est mesur~e li partir du repute inertiel situ~ ~ la base du robot. Et sa vitesse est nulle aux extri~mitl~s de ia trajectoire.

Nous analyserons tout d'abord la commande de temps minimum (trait plein). Comme nous utilisons le mod(:le dynamique des actionneurs tHectriques, la Fig. 7 repri.'sente la commande de I'alimentation aux actionneurs. Conform~ment aux attentes, ii y a toujours au moins un actionneur d saturation, sauf li la route fin. Cette situation particuli~re (de 0.93 li 1.0 s) est cause par les importantes forces de frottement qui limitent les performances de ce robot. Au d~but de la trajectoire, l'actionneur 3 domine, mais il est remplac~ par i'actionneur I li 0.24 s. Les actionneurs qui ne sont pas ~ saturation s'ajustent pour assurer le suivi de la trajectoire.

La Fig. 8 iUustre les vitesses des articulations. Nous remarquons que les articulations 2 et 3 subissent une inversion de vitesse correspondant li un changement de direction. Comme les forces de frottement sont importantes, elles exercent un puissant freinage d la fin de la trajectoire.

Finalement, ia d~pense ~nerg~tique est repr~sent~e il la Fig. 9 par deux courbes. La courbe sup~rieure indique ia d~pense totale, et l'autre sert de ligne de d~marcation pour illustrer I'importance relative de l'~nergie perdue par effet Joule (portion du bas ~ 92%) par rapport ~, r~nergie demand~e par la partie m~canique pour acc~l~rer le robot et compenser les pertes par frottement (portion du haut "--8%). Nous percevons donc facilement les avantages des modules dynamiques complets (m~caniques et ~lectriques) pour un caicul juste et fiable des commandes axles sur la d~pense ~nerg~tique.

Nous avons d'ailleurs ~tudi~ une commande qui accorde une importance relative de 99.9% au temps et 0.1% ii I'~nergie d~pens~e. Toutes les courbes n~sultantes se trouvent dans les Figs 7 ii 9, en traits pointill~s. La dL'pense ~nerg~tique diminue de 29%, mais le temps d'activation de la commande augmente de 34%. Mais pendant la premiere partie du trajet, I'actionneur 2 semble s'imposer et dominer la commande car il exige la plus grande d~pense ~nerg~tique; puis il est progressivement supplant~ par les deux autres.

CONCLUSION

Les algorithmes d~velopp~s dans ce travail nous permettent de calculer en temps diff~rl~ la commande des robots manipulateurs le long d'une trajectoire pr~d~termin~e. Nous avons ajout~

316 MAaC J. Rlcrt~aD et al.

aux travaux de Singh et Leu le mod6le dynamique des actionneurs 61ectriques :i courant continu pour am61iorer I'applicabilit~ de la commande. De plus, nous avons rattin6 consid6rablement les techniques de discr~tisation existantes pour augmenter la precision et la fiabilit~ des r~sultats. Nous avons d~montr~ que notre principe de discr&isation est sup~rieur en rapidit~ d'ex~cution et en pr6cision ;i celui des m6thodes classiques, et m~me d celui de Singh et Leu.

Cependant, nous ne pouvons pas utiliser les mdthodes bas6es sur la programmation dynamique pour le calcul en temps r6el de la commande. Mais comme nous tenons compte de plusieurs non-lin~arit~s dans le syst~me, les r~sultats obtenus peuvent servir avantageusement de r~f~rence pour I'analyse et I'~valuation des algorithmes de calcul en temps r~ei de la commande.

Nous nous sommes limit,s aux probidmes de commande d trajectoire pr~d~finie ;i cause de I'accroissement excessif des calculs exig~ par 1'6tude des cas ;i trajectoire ind&ermin~e. N6anmoins, le nombre de degrds de libert~ du manipulateur ne doit pas d6passer celui de ia t~iche d accomplir. II serait done int6ressant d'~tendre aux robots redondants la port6e des algorithmes pr~sent~s dans cet article. D'autant plus que la charge de calculs suppldmentaires n'~touffe pas les capacit~s actuelles de I'informatique.

B I B L I O G R A P H I E

I. M. E. Kahn et B. Roth, J. Dynamic Systems Measurmt Control 93, 164-172 (1971). 2. S. Singh et M. C. Leu, J. Dynamic Systems Measurmt Control 109, 88-96 (1987). 3. R. E. Bellman et S. E. Dreyfuss, La Programmation Dynamique et ses Applications. Dunod, Paris (1965). 4. M. Vukobratovic et V. Potkonjak, Dynamics of Manipulation Robots. Scientific Fundamentals of Robotics, Tome I.

Springer. Berlin (1982). 5. P. Andre et al.. Constituants Technologiques. Les Robtos. Tome 4. Hermes. Paris (1983). 6. M. Vukobratovic et M. Kircanski, Kinematics and Trajectory Synthesis of Monipulation Robots. Scientific Fundamentals

of Robotics. Tome 3. Springer, Berlin 0986). 7. P. Coiffet et M. Chirouze, Eldments de Robotique. Hermes. Paris 0982). 8. G. Shin et N. D, McKay, IEEE Trans. Aurora. Control AC-31, 501-511 0986). 9. J. Y. S. Luh, lhmdbook oJ" Industrial Robotics, pp. 169 d 202. Wiley, New York (1985).

I0. M. Vukobratovic, Introduction to Robotics. Springer. Berlin 0989). II. B. Borovac, M. Vukobratovic et D. Stokie, Mech. Mach. Theory 18, 113-122 (1983). 12. M. Vukobratovic. D. Stokic et M. Kircanski, Non.adaptive and Adaptive Control of Manipulation Robots, Scientific

Fundamentals of Robotics. Tome 5. Springer. Berlin 0985). 13. E. V. Denardo, Dynamic Programming (Models and Applications). Prentice-Hall, Englewood Cliffs, N.J. (1982), 14. J.-L. Lauriere. El~tments de Programmalion Dynamique. Programmation. Gauthier-Villars. Pads (1979). 15. R. P, Paul, Robot Manipulators: Mathematics, Programming and Control. MIT Press, Cambridge. Mass. (1981).

279 pages.

DYNAMIC PROGRAMMING FOR THE CONTROL OF ROBOTS

Abstract--This article provides a detailed presentation of the mechanical implications of robots equipped with direct current electric actuators which takes into account the non-lincarities of the system. We developed computational algorithms for the control of manipulators based on the dynamic programming technique. Once the robot's trajectory was defined, the performance criteria and physical constraints were implemented into the mathematical model. A detailed analysis of the effects of constraints on generalized torques has made it possible to accelerate the convergence and increase the accuracy of the already existing algorithms by exploiting a new discretization approach. For example, a manipulator arm with three degrees of freedom is analyzed.