Programmation des robots industriel et application sur le robot manipulateur Algérie machines outil 1( Télécharger le fichier original )par Abdelkader BENMISRA Université de Saad Dahleb de Blida (Algérie) - Magistère en Génie Mécanique 2007 |
Appendice K F21] :Dérivation de la matrice de transformation homogène : Soit Tij la matrice de transformation du repère Ri au repère rj qu'on peut mettre sous forme : T T i T i T T ij i i i i j j = + + + + - ( 1) . ( 1) . ( 1 )( 2 ) ( 1 )elle dépend des variables qi+1, .qj Pour calculer la dérivée partielle de Tij par rapport à la variable q1. On distingue les deux cas suivants : 1 ièr cas : i = 1 >j Les éléments de la matrice Tij ne dépend pas de q1 alors :
2èmecas :i<1=j ? T ij = ? ?q1 ? q 1 ? ? T ( 1 1 ) 1 ? - [ ] T T T T T T i i i i j j i i i i j j = T T ( 1 ) ( 1 )( 2 ) ( 1 ) ( 1 ) ( 1 )( 2 ) ( 1 2 ) ( 1 1 ) . . ... ... + + + - + + + - - ( 1 1 ) 1 ( 1 ) - - ?? q ?? ? 1 Sachant que : ? ?T ( i i T i . i ? i 1 ) 1 ? - 1 ) ( ? q i ?? = ? i 1 =
ój = 0 pour une liaison rotoïde ój=1 pour une liaison prismatique. ?T ij= ? = ? T T T T T ? q 1 i i ij i j ( 1 ) ( 1 1 ) 1 11 1 11 1 - - ? T ij T T = ? i j ? q 1 1 11 1 On pose ? j 1 =T j 1.?11.T ij et on peut écrire : ? T ij= ? = ? = ? T T T T T T i j ij ( j . j ) ij j ? q 1 1 11 1 1 11 1 1 Notons ici que : ? i 1 T ij = ( T i 1 ? 11 T 1 i ) T ij = T ij ? j 1 = T i ( T j 1 ? 11 T 1 j ) = T ij ? j 1 Donc on a : ? ij . T ij = T ij ? j 1 Finalement on peut écrire : ? [0 ? ? T ij .?j 1 ?Tij ? q 1 ] si si i , i > 1> j < 1= j , 0 1 = > n , n . ? n 0 1 < = n , ? [ 0 ? ? T0 ]si n= ? T 0 ?q1 1 si Matrice d'un système constitué de n corps : Soit T0n la matrice de transformation homogène du repère R0 au repère Rn alors : Appendice L L-1 La trajectoire : [12, 3, 4, 21, 27, 71, 90, 91] ; Selon la tâche que doit accomplir le robot, on peut classer les différents mouvements selon deux catégories de trajectoires l'une libre l'autre imposée, [90, 91], (voir figure L.7, L.8, L.9). La génération de trajectoire est une étape très importante dans la commande des robots manipulateurs. Elle consiste à calculer les consignes de référence en position, en vitesse, et en accélération, qui décrivent leurs mouvements désirés Cependant, la trajectoire est l'évolution de la position, et ses dérivées temporelles en fonction du temps pour chacune des articulations; le mouvement le plus simple est d'aller d'un point initial à un point final, ainsi le robot est commandé pour changer sa configuration initiale vers une configuration finale, ce type de mouvement convient aux tâches de transfert d'objets quand l'espace de travail ne comporte aucun obstacle ; le chemin à suivre par l'élément terminal peut être contraint par l'addition de points intermédiaires aux configurations initiales et finales. Pour assurer le fonctionnement normal du mécanisme, on choisira des mouvements continus, pour cela on définit une fonction lisse, (dérivées première et secondaire continues), afin d'éviter les risques d'usure (voir chapitre des causes structurales) et de vibrations pouvant exciter les modes propres du manipulateur. En résumé, le parcours peut être planifié de différentes manières dont on distingue : Le mouvement entre les deux points avec une trajectoire libre entre les points. Le mouvement entre deux points via des points intermédiaires avec une trajectoire libre entre les points intermédiaires. Le mouvement entre deux points avec une trajectoire contrainte entre les points (trajectoire rectiligne). Le mouvement entre deux points via des points intermédiaires avec une trajectoire contrainte entre les points intermédiaires. Dans les deux premiers cas, la génération de la trajectoire peut se faire directement dans l'espace articulaire. Quant aux deux derniers, la trajectoire étant décrite dans l'espace opérationnelle, il est préférable de raisonner dans cet espace. L-1-1 Génération de la trajectoire dans l'espace articulaire : [12, 3, 4, 21, 27] : La génération de trajectoire dans l'espace articulaire donne au résultat un ensemble de données : Positions, vitesses et accélérations articulaires ( è d ,è & d ,è & & d ) qui sont utilisées comme un signal de référence, pour une position initiale et finale données dans l'espace de travail, on utilise la géométrie inverse pour déterminer les angles articulaires correspondant à cette position et même pour l'orientation. La position initiale du manipulateur devient un ensemble d'angles articulaires d'arrivée, ce qui est demandé pour la planification de la trajectoire est de trouver une fonction lisse pour chaque articulation dont la valeur à l'instant t0 est la position initiale de l'articulation et dont la valeur à l'instant tf est la position désirée de cette même articulation. Il y a beaucoup de fonctions lisses O (t), qui pourraient être utilisées pour interpoler les valeurs d'angles articulaires. On cite : L-1-1-1 La fonction polynomiale cubique F26, 27] : Il s'agit d'une interpolation simple en effectuant un simple mouvement continu, au moins quatre contraintes sur O (t) sont évidentes pour avoir une fonction polynomiale cubique de la forme : è(t) =a 0 + a1t + a 2 t + a t 2 3 (L.1) 3 Ainsi on obtient la vitesse articulaire : è& t = a1 + 2a2t + 3 a 3 t (L.2) ( ) 2 et aussi l'accélération articulaire : è&& (t)=2a2+6a3t (L.3) Sachant qu'un polynôme du 3 ème degré, admet quatre coefficients, il peut être donc construit à partir de quatre contraintes, deux sont obtenues à partir du choix des valeurs initiales et finales de la
En relevant ce système d'équations on obtient : a 0 = è 0 .
(L.8) 3 a (L.10) 2 = 2 è f - è 0 ( ). tf
30 30 14 16 3 2 è è è è è è - + & + & - & & - & & ( ) ( ) 2 0 0 0 f f f f f t t 4 2t f a 4 = (L.22) 12 12 6 6 - - & + & - & & - & & ( ) ( ) 2 f f f f f 0 0 0 t t (L.23) a = 5 2 5 t f Avec ces quatre coefficients, on peut calculer le polynôme cubique qui connecte n'importe quelle position désirée. Exemple de génération d'une trajectoire articulaire (voir figure L.7, L.8, L.9). L-1-1-2 Polynôme de degré cinq : [12, 26] : On peut avoir des polynômes d'ordre supérieur pour la planification de la trajectoire, ils sont quelquefois utilisés dans le cas où on voudrait indiquer la position, la vitesse, et l'accélération au début et à la fin de la trajectoire. Ils sont aussi utilisés quand les robots manipulateurs fonctionnent à une grande vitesse. Il est nécessaire d'assurer la continuité des accélérations afin d'éviter l'excitation du mécanisme. Il faut avoir un polynôme d'ordre cinq de la forme : 2 3 4 5 è = + + + + + ( ) 0 1 2 t a a t a t a t a t a t (L.12) 3 4 5 Pour déterminer les coefficients de ce polynôme, il faut avoir au moins six contraintes, deux sur la vitesse et deux autres sur l'accélération : è 0 = a 0 (L.13) è&0=a1 (L.14) è& & 0=2a2 (L.15) f a a t a t a t a t a t 2 4 5 è = + + + + + 3 (L.16) 0 1 2 3 4 5 è& & = a + a t + a t + a t 2 6 1 2 20 2 3 f f f f (L. 17) 2 3 4 5 En résolvant le système d'équation, on trouve : a 0 = è 0 (L.18) a 1 = è& 0 (L.19) a2 =è& & 0 (L.20)
L-1-1-3 Loi Bang-Bang avec palier de vitesse (loi trapèze) : [12, 26] : Une autre voie pour générer les consignes est ce qu'on appelle segment linéaire avec portions paraboliques ou bien loi Bang-Bang avec palier de vitesse. Cette trajectoire est telle que la vitesse est rampée en haut à sa valeur spécifique initialement et puis rampée en bas au début (position désirée). Pour accomplir tout. Cela on spécifie la position désirée en trois phases. La première phase de l'instant t0 à l'instant tb est polynomiale quadratique. A l'instant tb la position change de forme et devient linéaire cela correspond à une vitesse constante. Finalement à l'instant tf- tb la trajectoire de position redevient polynomiale quadratique de sorte que la vitesse soit linéaire. On choisit l'instant tb de façon à ce que la courbure de position soit symétrique, par convention, on suppose que t0 =0 et q ( tf ) = q ( 0 )= 0 puis entre les instants 0 et tb on a : qd(t) =a 1 +a 1 t + a t 2 (L.24) 2 de façon que la vitesse soit : qd(t) =a 1 + a2 (L.25) t Les contraintes q ( 0)= 0 et q ( 0)= 0 impliquent que : a 0 = q0 (L.26) a1 =0 (L.27) Puisque à l'instant tb on veut que la vitesse soit égale à une constante donnée on aura : qd(t b ) = 2a2tb = V (L.28) ce qui implique que : a2 = V! 2t6 .. .(L.29) Par conséquent, la trajectoire requise entre les instants 0 et tb est donnée par : q d (t) = q0 +V!2tb.t2 = q0 +a!2.t2 ... (L.30) q d (t)=q0+V!t
b .t=at . (L.31) Où a est l'accélération. Maintenant et ente les instants tf et tf- tb , la trajectoire est un segment linéaire qui correspond à une vitesse constante V : qd(t)=á0+á 1 t=á0+Vt .... . (L.33) + Par symétrie : qd t ( ) q 0 q 1 = . (L.34) 2 2 + a . t q 0 . 0 2 < = t t d f V tf +Vt - 2 2 q q + f 0 2 - at at t 2 - f f + t t t t d f b < = - (L.42) 2 2 t q f t t t t f b f - < = ? ? ( ) q d ? On aura : q 0 q 1 = + Vtf + á (L.35) 2 02 Ce qui implique que : q + q - Vtf á = (L.36) 0 1 0 2 Comme les deux segments coïncident à l'instant tb on obtient : q + + Vtb q q V t V tb + = .(L.37) 0 1 2 0 2 2 Ce qui donne l'expression :
Il est à noter qu'on a la contrainte : 0 f t < t < (L.39) b 2 Ceci mène à l'inéquation : q q f f 0 2( - 0 ) - q q < = t (L.40) f V V q q 0 2( - 0 ) + q q f f Autrement dit : < = V (L.41) t t f f Par conséquent, la vitesse spécifiée doit être entre ces deux limites ou bien le mouvement ne sera pas possible, la portion de la trajectoire entre tf- tb et tf est maintenant déterminée par des considérations de symétrie. La trajectoire complète est donnée par : L-1-2 Génération de la trajectoire dans l'espace cartésien : Les trajectoires dans l'espace articulaire sont plus faciles à calculer et elles sont plus simples, cependant elles deviennent complexes si elles sont décrites dans l'espace cartésien puisque dans le premier cas on ne fait aucune correspondance continue entre l'espace articulaire et l'espace cartésien; il n' y a aucun problème avec les singularités du mécanisme. La trajectoire dans l'espace cartésien donne comme résultat la position, la vitesse et l'accélération cartésienne (x, x & , &x&). Pour certaines structures de commande spécifique, ces données doivent être converties en grandeurs équivalentes dans l'espace articulaire. Une analyse complète devrait être utilisée comme un signal de référence pour le régulateur synthétisé dans l'espace articulaire. Dans l'espace de travail, la forme du parcours prise par l'élément terminal n'est pas simple, mais plutôt une forme compliquée qui dépend de la géométrie du manipulateur. Les formes du parcours sont décrites en terme des fonctions du temps qui déterminent la position et l'orientation cartésiennes, la forme spatiale du parcours entre ces points peut être : Une ligne droite, circulaire, sinusoïdale, ellicoïdale ou d'autres formes. Pour la planification de trajectoire basée sur l'espace cartésien, les fonctions qui forment une trajectoire sont des fonctions du temps qui représentent les variables cartésiennes. Ces parcours peuvent être planifiés directement à partir de la définition, par l'utilisation des points de parcours qui sont les spécifications sur le parcours désiré. L-1-3 Problème géométrique dans un parcours cartésien : [27] : Plusieurs problèmes sont posés dans la génération des trajectoires cartésiennes à cause de la correspondance continue qui se trouve entre la forme de la trajectoire décrite dans l'espace cartésien et celle décrite dans l'espace articulaire. On en cite trois problèmes majeurs : Problème du type 1 : C'est le problème des points intermédiaires inaccessibles, comme il est présenté dans la figure L. 1, si on veut que le robot démarre du point A pour arriver au point B en passant par une trajectoire désirée qui est une ligne droite par exemple, bien que les points initials et finals du parcours soient compris dans l'espace de travail du robot, il y a certains points qui appartiennent à cette trajectoire et qui n'appartiennent pas à l'espace de travail du manipulateur. Ces points deviennent inaccessibles, ce qui rend impossible d'effectuer cette tâche dans l'espace opérationnel. Néanmoins il n'y aurait pas ce type de problème dans l'espace articulaire. B A Figure L.1 : Problème de type 2 Problème de type 2 : C'est le problème de vitesse articulaire qui est trop élevée en passant près de la singularité. Certains parcours dans l'espace cartésien sont impossibles à exécuter par le robot manipulateur surtout dans le cas où il devrait suivre une trajectoire en s'approchant d'une singulière du mécanisme, (par exemple une ligne). Une ou plusieurs vitesses articulaires peuvent augmenter vers l'infini. Puisque les vitesses des articulations sont bornées supérieurement, cette situation a pour conséquence la déviation du robot manipulateur de son parcours désiré. La figure L.1 montre un robot à deux articulations, ayant la même longueur, se déplaçant le long du parcours du point A au point B , la trajectoire désirée correspond au mouvement de l'élément terminal du manipulateur à vitesse linéaire constante le long d'un parcours rectiligne. Sur la figure, on montre plusieurs positions intermédiaires du manipulateur qui ont été dessinées pour mieux voir le mouvement, et tous les points de la trajectoire sont accessibles, mais dès que la vitesse de l'articulation 01 devient très élevée, plus le parcours s'approche étroitement de l'axe articulaire 01, plus la vitesse sera grande. B La vitesse est infinie (Jacobien singulier) A Figure L.2 : Problème de type 3. Problème de type 3 : Le troisième problème se produit quand il y à plusieurs solutions pour atteindre un point donné dans la trajectoire, la figure L.2 montre un robot manipulateur à deux liaisons de même longueur, ayant des butées au niveau des articulations qui diminue le nombre de solutions avec lesquelles il peut atteindre un point donné dans l'espace. En particulier, un problème surviendrait si le point final ne peut pas être atteint dans la même solution physique quand le robot est au point de départ. Comme il se voit dans la figure L. 1, le manipulateur peut atteindre tous les points du parcours pour une certaine solution, mais pas pour n'importe quelle solution. Dans cette situation le système ne peut pas se déplacer à cause des butées mécaniques. L-1-4 Étude comparative et discussion du choix d'une trajectoire : [12, 27] : Les deux approches étudiées précédemment présentent plusieurs avantages et inconvénients. La génération du mouvement dans l'espace articulaire présente les avantages suivants : Elle nécessite moins de calculs en ligne puisqu'il n'y a pas d'appel au modèle géométrique ou cinématique inverse. Le mouvement n'est pas affecté par le message, par les configurations singulières. Les contraintes de vitesse et de couples maximaux sont directement déduites des limites physiques des actionneurs. .En contre partie, la géométrie de la trajectoire de l'organe terminal dans l'espace opérationnel est imprévisible bien qu'elle soit répétitive : Il y a donc un risque de collision, lorsque le robot évolue dans un environnement encombré. Ce type du mouvement est par conséquent approprié pour réaliser des déplacements rapides dans un espace libre. La génération des mouvements dans l'espace opérationnel permet de contrôler la géométrie de la trajectoire. En revanche: Elle exige la transformation en coordonnées articulaires de chaque point de la trajectoire. Elle peut être mise en échec lorsque la trajectoire calculée passe par une position singulière. Elle est mise en échec chaque fois que les points de la trajectoire engendrée ne sont pas dans l'espace accessible par le robot ou chaque fois que la trajectoire impose une reconfiguration du mécanisme (changement d'aspect en cours de trajectoire); les limites en vitesse et en couple dans l'espace opérationnel varient selon la configuration du robot. On exprime alors ces limites par des valeurs traduisant des performances moyennes, satisfaisantes quelle que soit la configuration du robot. On impose donc au robot de travailler au-delà de ses capacités réelles. Le choix d'une méthode de génération de mouvement dépend de l'application considérée. Chaque approche a ses propres limites, inhérente au fait que les contraintes sont exprimées soit dans l'espace articulaire (vitesse, couples, butées) soit dans l'espace opérationnel (précision, obstacles). L-1-5 Génération de trajectoire dans l'espace cartésien : L-1-5-1 Description d'une trajectoire planaire : On veut générer une trajectoire dans l'espace cartésien, pour imposer une position et une orientation au manipulateur à suivre, on veut que l'élément terminal du bras manipulateur suive un demi cercle qui se situe dans le plan OXZ, le centre du cercle est repéré par les coordonnées suivantes (x', z' ) et dont le rayon est R. on impose une orientation à l'outil terminal de façon à ce qu'il soit radial au sens rentrant et en arrivant à l'extrémité de l'arc il conserve son orientation perpendiculairement au tronçon rectiligne. O' Z O' Z Z' O XT X'O ZT p + p0 XT O' a Point initial Z0 0 Y0 X0 O'X O'X d2 +d3 Figure L.3 : Schéma représentatif d'une trajectoire dans le plan. On désire que l'outil parcoure le demi cercle dans le sens de la flèche. L'orientation de l'outil terminal est représentée par l'angle p(t) pour lequel le point concerné sur le demi cercle est repéré par l'angle a(t). Ainsi nous obtenons les équations suivantes : ) ' r sin( á = + x ox t Z t á = z oz R t d2 d 3 oy + = (L.43) ? ?? ' ' = + cos( ) yt On impose à l'angle p une variation linéaire en fonction de a : p
(L.46). ? á / 2 ( ) ( ) t t = á x R & = cos( á t ? ?? ) - R sin( á ) z t 0 y t Figure L.4 : Variation de l'angle p en fonction du a. + p + 2 a D'où ?(t)=1/2á(t)+1/2á0-ð/2 (L.44) L-1-5-1-1 Génération de trajectoire sur le 1er tronçon: L'évolution de l'angle a (t) est imposée telle qu'il suive une loi Bang -Bang avec palier de vitesse. En résumé : Position : ? x ox r = + ' sin( ) á t ? oz R ' cos( ) + á ? Z t = ? y d d oy = + = (L.45) t 2 3 ? á á = ( ) t 1 / 2 / 2 á ð 0 - ? ? ( ) 1 / 2 ( ) ? ? á t t = + Vitesse : Accélération : ) á 2 + R sin(á ) á z R & & = cos( á t & & 0 yt ? á á ( ) ( ) t t = (L.47). ? ?? / 2 R R sin( ) 2 cos( á á á - ) á & & xt L-1-5-1-2 Génération de trajectoire sur le 2ème tronçon: L'outil se déplace le long du diamètre AO'B tel qu'il reste perpendiculaire à AB. Donc l'orientation de l'outil est maintenue constante de sorte que l'angle p vérifie toujours l'équation : p = p0 + ir/2 . Cependant le point figuratif est sur l'axe Q'Z' Ô ; Les équations horaires donnant les coordonnées du Wrist sont les suivantes : La position : x o x z = + ' t y d d = + a z z o z z = + ' " cos( 0) ? t ? ? ? ?? (L.48). " sin( 0) ? + 0 ð /2 ? ( ) Z' Z69 p0 XT X'O O' ZT + Figure L.5 : Génération du deuxième tronçon. La vitesse : ? V =0 TX Z V Y ?? V V = " sin( 0) " ? TZ Z ? = cos( 0) (L.49). ?? ? = 0 L'accélération : ? a = 0 TY TX Z a a ?? a a = " sin( 0) ' ? TZ Z ? = cos( 0)(L.50). ?? ? = 0 L-1-5-2 Description d'une trajectoire spatiale : On veut que l'outil terminal suit la trajectoire décrite ci-dessus (glissement sur la face d'un huitième de sphère de rayon R et de centre O' ( x'0 , y'0 , z'0 ) donné. L'orientation est calculée pour assurer la direction radiale entrante de l'outil afin qu'il puisse réaliser la tâche demandée (polissage par exemple) sachant que nous avons adopté la représentation d'Euler concernant les orientations. Les angles ö etø sont des paramètres auxiliaires qui servent à déterminer la position et l'orientation de l'outil terminal dans les repères lié à la sphère, et par une simple translation du vecteur [x'0, y'0 , z'0] on retrouvera les coordonnées cartésiennes de l'outil dans le repère de la base. En fonction des paramètre ö etø on peut exprimer le vecteur des positions et orientations comme suit : ' 0 + y ? ø sin y R = sin z R z = + ' cos ' ? (L.51) ? ? 0 á ø - ð â ? ø ?ä x R x = + sin cos ? ø ' 0 [ / 2,0] (L.52) Avec ?? ? ø ? [0, / 2] ð Ou : x , y et z représentent la position de l'outil et á, â et ä sont les angles d'Euler Correspondants à l'orientation de l'outil terminal exprimées dans le repère de base . Les angles ö etø obéissent à une loi d'évaluation dans le temps du type Bang Bang avec palier de vitesse comme il est schématisé ci-dessous. Les vitesses : ) x R & = + (cos cos sin sin ?? ø ? ?? á ø ø ?ä Figure L.6 : Génération d'une trajectoire tridimensionnelle. y (L.53) Les accélérations : sin( ) ? ? x R & & = - ( - - cos( ) sin( ) ? ? ø ø 2 cos cos( ) cos ø ? ? ø + + )ø - ? ø cos( sin ? ø sin( sin ( & & R y 2 sin ø - sin( ) ? ? + + + cos( ) sin cos( ) cos( ) ? ? ø ? ? ø ø cos( ) sin( ? ? ø )ø 2 sin + ? ø sin( )ø ) ø 2 - ? ? ? ?ä á â ? cos( ) sin( ? ? ø z R & & = - ø ø (cos(? )? )ø 2 + sin + sin( ? ? ø cos( ) ? ) ø (L.54) Z' y x y x + y z x Y' X O ø z z X O x (cos sin sin cos ?? ø ? ?? + z R & = -sin â ? ? ? ) y Rb & = ?? 70 Exemple de trajectoires de la position articulaires, vitesse angulaire et accélération articulaire. On veut générer la trajectoire articulaire pour passer d'un angle initial de 5° à un angle final de 65° dans 4 secondes [27,28]. 25 20 15 10 5 1 2 3 4 0 60 50 40 30 20 10 0 1 2 3 4 temps (sec) temps (sec) Figure L.7 : Position articulaire Figure L.8 : Vitesse Angulaire 30 20 10 0 -10 -20 -30 0 1 2 3 4 temps (sec) Figure L.9 : accélération articulaire Planification des mouvements Introduction sur la planification : L'utilisation courante manipulateurs dans l'exécution des taches répétitives fait que les recherches se sont naturellement orientées vers la planification de mouvements minimisant un coût relatif essentiellement le rendement du robot et son fonctionnement. Cette idée générale a conduit à la formulation du problème de planification dans lesquels des grandeurs physiques telles que la durée de parcours, les efforts actionneurs ou la puissance consommée soient optimisés individuellement ou globalement. Définition : Trajectoire libre : appelée aussi mouvement point à point ou mouvement de transfert. Seules les configurations initiale et finale doivent être respectées en plus des obstacles à éviter. La trajectoire quoi relie ces deux configurations est alors libre. Ceci peut être le cas de la manutention d'objets ou de soudure point à point. Trajectoire imposée : de tel mouvement sont rencontrés lorsque l'outil en fin de chaîne sur son environnement sans interruption et selon un parcours déterminé. Il est nécessaire de spécifier la trajectoire de l'effecteur. On citera par exemple les travaux de découpage ou de soudure en continu. Dans ces deux cas, il existe généralement plusieurs trajectoires possibles. Il faut profiter de cette multiplicité de choix pour adapter la meilleure solution afin d'accomplir la tache. Pour les mouvements libres, l'optimisation a pour but de rechercher le trajectoire à suivre de ainsi que les modalités pour la parcourir tandis que pour les mouvements imposés, l'optimisation ne porte que sur les modalités de la parcourir. Fonction objectif : Le choix du critère de performance est déterminant quant la à la qualification du mouvement et conditionne l'efficacité des méthodes de résolution du problème. Le critère à minimiser peut se présenter sous 3 formes distinctes : une fonctionnelle de type intégrale, de type terminal ou de type ou de type mixte. Bien que formulés différemment, ces 3 problèmes sont équivalents, la fonctionnelle intégrales est le milieux adaptée pour les mouvements de transfert. Les critères à optimiser dans ce cas se mettent sous la forme générale suivante [71, 90,91 ] : . L(q(t), q (t), q .. (t), ) = u + 1- u ? n 2 i t ( ) 2 i avec u ? ] 0,1[ (L.60) max i 1 = F (u,t) = ?T 0 L (x(t) ,u) dt (L.56) Ou : L : représente le lagrangien qui prend la forme selon l'objectif visé. X(t) : vecteur de variables d'état à l'instant t ?[0,T] U : vecteur qui représente la commande à optimiser, considère comme une inconnue du problème. T : temps de transfert total entre les configurations initiale et finale. Pour le cas d'une planification de mouvements libres, u représente les couples moteurs, x(t) les . .. variables articulaires de position q(t), de vitesse q (t) et d'accélération q (t) Dans ce cas, le critère s'écrit de la manière suivante : . .. F( ,T ) ?T 0 L(q(t), q(t), q (t), ) dt (L.57) Pour générer des mouvements de qualité, on peut citer parmi les critères les plus significatifs la durée de parcours, mixte temps - efforts quadratiques et mixte avec puissance quadrique . Critère durée de parcours : Il suscite l'intérêt d'un bon nombre de chercheurs roboticiens [92] car pour les robots qui travaillent d'une manière cyclique, la rapidité d'exécution (rentabilité ) est un critère très significatif. La dynamique du robot n'est pas représenté directement ans cette formulation. Ceci conduit à des commandes optimales discontinues. Les couples articulaires ne sont pas représentés dans le lagrangien d'où une forme simple comparée aux autres. . .. L(q(t), q (t), q (t), ) = 1 (L.58) Alors : F(T, ) = F(T) = ?T 0 dt = T (L.59) Critère mixte temps efforts quadratiques : Comparativement au critère précédent implique des discontinuités lors des transferts de charges, donc, nuisible au bon fonctionnement du manipulateur, ce critère est un moyen efficace pour régularisé les vitesses et les couples, en introduisant un facteur de pondération u , on peut favoriser soit le temps, soit les efforts ( couples) [93], le lagrangien prend la forme suivante : l'optimisation du temps. Le choix DE u d2temine alors le compromis entre ces deux quantités. Ceci conduit à une certaine souplesse d'exécution en tenant compte de la durée de la tache. Néanmoins, on rencontre des difficultés dans la formation de ce critère vu l'existence des efforts dans le lagrangien. Les contraintes : Pour que la planification du mouvement soit possible, on tient compte des capacités technologiques du robot et des spécificités de la tache à effecteur. Ceci indique une restriction des solutions. Pour planifier un mouvement, on s'intéresse aux contraintes suivantes : Contraintes sur les débattements : Du fait de la conception de la liaison et que les mouvements sont limités entre des butées mécaniques, les mouvements ne doivent pas dépasser les capacités de la structure. Tout ceci se traduit par la formule suivante : ? t ? [0, T] , qi(t) = qimax i =1, .,n (L.61) T : représente le temps qi(t) : représente les coordonnées généralisées de la iéme articulation. qimax : représente la valeur maximale de la iéme articulation ( valeur intrinsèque du robot) Contraintes cinématiques : La conception des articulations et la technologie des actionneurs impliquent une limitation des caractéristiques cinématiques notamment pour les objets manipulés sensibles aux survitesse, accélération et freinages ( par exemple des liquides qui peuvent se déverser ). Les formulations se traduisent par : Vitesse :
. .. q imax et q imax sont imposées par les caractéristiques techniques et la nature de la tache à effectuer . Contraintes sur les couples moteurs: Les capacités maximales des actionneurs impliquent la formule suivante [94] ? t ? [0,T] , i(t) = imax i =1, .,n (L.64) Contraintes dues aux obstacles dans l'espace opérationnel : L'encombrement du à la présence robots fait que la planification tient compte de ces obstacles. Ces contraintes rendent le problème très complexe. Pour éviter les collisions et si g traduit le distance entre le robot et l'obstacle, la formulation mathématique est la suivante [95,96,97] : En plus des disfonctionnements déjà cités, la génération des mouvements peut aussi entraîner les phénomènes de survitesses au niveau des articulations [98]. La puissance instantané est telle que : . P(t) = (t) . q (t) (L.65) Le lagrangien s'écrit dans ce cas : 2 n pi t ( ) 2 . .. n ( ) L (q(t), q (t), q (t), ) = u + 1 - u á ?= + (1-á) ?= (L.66) 2 i max pi max i 1 i 1 . Ou : pimax = imax. q imax q . imax représente la vitesse articulaire maximale tolérée de la iéme articulation. Quand à á, il joue le même rôle que u mais sur le terme des puissances quadratiques si veut accorder plus ou moins d'importance à la minimisation de ces dernières . G(q(t)] = 0. l ? T y ik q k ? . ? = ? ?+= ? ? k i 1 ? dTy ? ? ? l ? ? dt k i = + 1 ? ik q k ? T . y ? Donc Appendice M : Dérivée de la matrice de transformation homogène par rapport au temps : l ? T y k dT ?+= ? y dq k i k 1 q l ? T dq y y dt k i k += ? q 1 . dt ? Il existe deux formes pour la dérivée de Ty par rapport au temps : dT l l y y = = ? + ? = ? = ? + ? . . y k ik k ? ik T q q ? k i dt k i 1 1 dT l l ? y T q T q . . ? = = ? + ? = ? = ? + ? dt y ik k y ik k ? k i 1 1 ? k i ? Appendice N : Expression de l'énergie cinétique Expression de la matrice d'inertie A : Soit Mk un point appartenant au solide Sk tel que : O0Mk = T0k(OkMk) OkMk = cte cas des rigides 0 0 = = ( k ) ( k ) ( k )[ k k ] d 0 d V M O M T O M 0 0 dt dt n ?=1 a i b = Trace a b ( [ ][ ] t ) i Soit deux vecteurs a .et .b alors a .et .b = i [ ( ) ] ( [ ( ) ] [ ( ) ] T ) 0 = 2 V M Trace V M V M 0 0 k k k t k k [ ( ) ] [ ] [ ] ? T ? T k ? T ? ? ? T 0 k V M O M 0 0 ? ? . q O M ? = ? k = ? = = ? k k i k k ? ? q ? ? i i ? q i 1 i 1 ? L'énergie cinétique du solide Sk est donnée par : E k = ? [ V ( M k ) ] dm 1 2 0 0 2
k k 1 ? k ? ? T ? ? ? ? [ ][ ] i l T k ? E Trace 0 ?? ? ? 0 T 0 k = ? O M O M dm . . q q k k k k k 2 ?? ?? ? ? q ?? ?? q i = = = 1 1 1 l ? ? ? i i i ? ? [ J ] = ? [ O M ][ O M ] T dm K k k k k . [Jk] c'est la pseudo matrice d'inertie de dimension (4) relative au corps Sk de la chaîne dans le repère Rk. Elle est constitué a partir : Du moment d'ordre zéro dv Sk : mk masse de Sk. Des moments d'ordre un de Sk : Gk centre de masse de Sk. Des moments d'ordre deux Sk qui représente la matrice d'inertie [Ik] en Ok dans le repère Rk. [ ] I k [ ) J k ? ? ? ?? Ixx I xz - - - I xy - Ixy I yx Iyy ? ? ? ? I I I xz yz zz - ( ) - + + I I I xx yy zz - I xy / 2 - I xy ( ) I I I xx yy zz - + ? mx ? m y - I xz ( ) / 2 / 2 - I yz yy zz k ? - - + - I I I I I x xx z yz ? mx m y mz k k 1 ? ? ?? [ ] ? T ? ? T ? ? ? 0 0 k E Trace k = ? ? ? J ? . . q q & & 0 k k j i 2 ?? ?? = = ? ? ? q ? ? ? ? q 1 1 j i j ? i ? ? L'énergie cinétique total du système est donnée par : n E c E k = 0 ?= i 1
En tenant compte de l'annexe 3 on a : ? T 0 k = ? q l T 0 k . ? 0 j ? [ ] 0 ? ? si j>k si j=k tenant compte de l'annexe 3 on a : ? T 0 k = k l . ? 0 ? q T 0 l ? T 0 k = k l . ? 0 ? q T 0 l ? [ ] 0 ? ? ? [ ] 0 ? ? si l>k si l>k
1 E = ??? c 2 i = = = n n n 1 1 1 j k ? ? ? T ? ? ? 0 0 k [ ] j l ? T ? k Trace ? ? ? J ? . & . & q q k ? ? ? q ?? q ?? ? ? ? j ? ? l ? ? 1 E = ??? c 2 j = = = n n n 1 1 1 i k ? ? ? T ? ? ? 0 0 k [ ] j l ? T ? k Trace ? ? ? J ? . & . & q q k ? ? ? q ?? q ?? ? ? ? j ? ? l ? ? Pour cela : ? T 0 ? T 0 Si k < max (l, j) Si k = max (l,j) ? T 0 ? T 0 ?q ?q ? ? ?? j l ? ?? ?q ?q l ? ? ?? j [ ] 0 ? ? ? [ ] J k ?? ? ? k ? k ? ? ? [ ] J k ?? ? ? k ? k n n 1 ? n ? ? T ? ? ? T ? ? 0 0 k k E Trace = ?? ? ? ? ? [ ] J ? q q & & c k j l 2 ?? ?? = = = ? ( ) ? ? ? ? ? q j 1 1 max , l k l j j ? q ? l ? ?
Les éléments de la matrice d'inertie [A] sont donnés par la relation suivante :
Approche d'Euler - Lagrange :[12, 30, 31, 30, 88, 89] : L'approche d'Euler- Lagrange sert à modéliser et présenter la dynamique des robots à travers les équations du mouvement. Elle s'adapte lors des calculs manuels ainsi que pour des calculs par ordinateur. Le formalisme d'Euler- Lagrange et la, transformation homogène de Denavit - Hartenberg amène à un algorithme compact pour présenter les équations dynamiques du mouvements. L'équation d'Euler- Lagrange est : ? ?L ?L d - + ?Ed = i= ? a, ,n. Ti d t ?qi ?qi ?qi Ou : L est le Lagrangien qui s'exprime par : L = Ec - Ep Ec = Energie cinétique totale de toutes les liaisons. Ep = Energie potentielle totale de toutes les liaisons. Ed = Energie de dissipation en cas de présence de frottement visqueux. n : Nombre de degré de liberté. qi : Coordonnée généralisée d'ordre i. . q i : Dérivée de la coordonnée généralisée. Energie cinétique : L'énergie cinétique est calculée par l'expression de la vitesse : i V0 dr i 0 dt i ? ?? r i r T i 0 0 = Ou :ri i est la coordonnée homogène du point (i) exprimée dans le repère Ri comme la dri liaison n'est pas flexible, on a i = 0 donc : dt i dq j r i dt
Avec Ti i -1 est la matrice de transformation homogène sous une forme plus compacte, nous pouvons écrire : i i V0 iU q r = ?= [ ] ij i i j i Et T Q j - 1 0 j ? ?? U ij 0 = ?? T j i i = j - 1 j = i Pour une liaison rotative on a :
Et pour une liaison de translation : ? 0 0 0 0 ? ? 0 0 0 0 ? Qj ) = ? ? ? 0 0 0 1 ? ? ? ? 0 0 0 0 ? L'énergie cinétique de l'élément i dans la liaison i est : dEci = 1/2 trace ( Vi VT i ) dm En développant l'expression précédente, on obtient : i i
L'énergie cinétique de la liaison i est :
x dm i yi dm z dm i ? ? ? ? ? ? dm ? 2 ? ? ? ? x dm x y dm x z dm i i i i i Ji = x i y i ? ? ? ? dm y dm y z dm 2 i i i z dm i z dm i ? ? ? ? 2 x i y i z dm i x dm i y i dm ? ? ? ? z dm i L'énergie cinétique des actionneurs est définie par : n dEca = Y2 ? Ii qi i 1 = Où Ii caractérise le moment d'inertie dans le cas d'une rotation d'une masse, pour une translation de l'actionneur i. L'énergie cinétique totale sera : n
Energie potentielle : L'énergie potentielle est décrite par : n n
gT = [ 0 0 - g 1 ] Ou : g est l'accélération gravitationnelle. Enfin, l'énergie de dissipation est donnée par : n
n i i n
En appliquons la formule d'Euler - Lagrange à la fonction Lagrangienne donnée ci- dessous, on trouve la force ou le couple généralisé. n i =?= j 1 n .. tr(Ujk Ji UT ji)qk +?= j 1 n (Ujkl Ji UT ji ) q k. q l -? . . j 1 = mi gT Uji ri i+ Éviqi j ?= k 1 j j ?= k 1 ? l = 1 (2.55) Avec :
- 1 T k 1 - Qk T j - Qj Ti j - 1 k = j = i 0 k 1 - 1 T j 1 - Qj Tk- Qk Ti k - 1 ' j = k = i 0 j 1 0 j i k i =1, .,n j =1, .,n Méthode directe 1 : Cette méthode est basée essentiellement sur l'équation d'Euler - Lagrange, sa forme est : n i n
Avec : n Mij (q) = ? k max( i , j ) = n trace (Uki Jk UTki ) Nijk (q) = ? l max( i , j , k ) = i =1, .,n j =1, .,n k =1, .,n trace (Uljk Jl UT li )
n . . Hi( q i ) = Éviq i On écrit l'équation dynamique sous forme matricielle qui sera : T(t) = M(q) q+ N(q, q)+ G(q) +H(q) . .. Avec q E Rn ; q ERn ; q E Rn représentent respectivement les positions, les vitesses et les accélérations articulaires est : M(q) E Rnxn : Matrice symétrique définie positivement les accélérations inertielles dans l'élément Mij, cette matrice est l'inertie de la ième articulation sur la ième articulation ; . N(q, q) E Rn : Vecteur de forces et/ou couples aux accélérations de Coriolis et centrifuge ; G(q) E Rn : Vecteur de force et/ou couples dus aux forces de gravitation ; . H( q )E Rn : Représente les frottements visqueux ; T(t) E Rn : Vecteur de force et/ou couples moteurs. Méthode directe 2 : La méthode directe citée auparavant est efficace, en déterminant le vecteur due aux accélérations de Coriolis et centrifuge. Pour cela, le modèle dynamique est calculé en 3 étapes : Calcul des éléments de la matrice d'inertie par méthode directe 1. Calcul de deux matrices centrifuges de Coriolis qui sont multipliées par leurs vecteurs, la somme des vecteurs obtenue nous donne le vecteur voulu N. L'extrait de ces dernières matrices se fait par la dérivation de la matrice d'inertie le principe de la conservation d'énergie. Enfin, le calcul des vecteurs des gravités et des visqueux, s'effectue par la méthode directe, en se basant sur les équations (2.61) et (2.6 3) respectivement. La forme appropriée du modèle final sera : T(t) = M(q) q+ D(q)[ q q]+ C(q) [q2]+G(q) +H(q)
vitesses et les accélérations articulaires et : M(q) E Rnxn : Matrice symétrique définie positive des accélérations inertielles dont l'élément Mij de cette matrice est l'inertie de la ième articulation sur la ième articulation et vive versa ; C(q) E Rnxn : Matrice des couples centrifuges ; (n-1) D(q) ERnx n 2 : Matrice des couples de Coriolis ; . H( q )E Rn : Représente les frottement visqueux ; T(t) E Rn : Vecteur de force ou couples généralisés; . . ( n - 1 ) [ q q ] ?R n 2 : Vecteur de produit des vitesses généralisées; . [ q 2 ] ? Rn : Vecteur de carrée des vitesses généralisées; Ou :
. . . q 1 q n q 2 ]T....(2.64) . q 2 . . q 2 . q . q . q . q . q n-2 n-1 n n..... n q 3 [2 q ] = [ q 1 q 2 qn ] 2 2 2T Le calcul de la matrice D de Coriolis se base essentiellement sur la formule suivante : Dij = 2âiJk Ou le symbole de Christoffel définit par : 1 ? M i j, ?Mik ? Mij B ,k = + k ik ? ? ?? j i ? q ? q ? q ? ? ?? 2 ? M ? M Puisque la matrice d'inerte est positive on aura les propriétés suivantes : k ji ? ; ; ij = i j ? qk ? q j ? M ij 0pour i = k , j= k Les éléments de l amatrice centrifuge sont définis par l'équation suivante : Cij = â iJj Appendice O : Expression des coefficients dynamiques ? A = Expression des éléments de la matrice des termes de Coriolis Bi , jl ? A ? A ij il jl + + ? q l ? q ? q j i ? [ ] ? ? ? 2 T ? ? 0 0 n ? T ? ? Bi , jl 2 Trace k k ? ? ? J ?? ? k ?? k i j l = max( , , ) ? ? ? q q ? ? ? ? ? q j l ? l ? ? B Trace , 2 = ? i jl n [ [ ][ ] [ ] ] l ? ? ? 0 . 0 0 0 0 j l k k k j k T J T
Expression des éléments de la matrice des forces centrifuges :
C ij ? q 2 ? q i i 1 ? A ij ? A n - C i ,
Expression des éléments du vecteur force de gravité : ? E p n E p m i g T i u i = - ? ( ) . . . donc G i i = 1 G i n ? ? T ? ?= ? . . 0 i - m g i q ? i i ? ? 1 ? n ? . . 0 . 0 G = - ? i m i g T i i i = 1 Appendice P F71] : Propriété des coefficients dynamiques: Termes de Coriolis : ? Aij ? Aik Ajk B jk ? i = - Bij l si j = i et j = 1 B Bjj i = - Bij j si j = 1 jk i = 0 si j
= 1 ? Ajj
Avec : Cij = 1/2 Bij j si j >i Cii = 0
Appendice Q [71] : Formalisme de NEWTON - EULER Il est adapté à la construction du modèle dynamique inverse. Il permet le dimensionnement de la structure te des actionneurs. Le caractère itératif de ce formalisme réduit le temps de calcul par rapport au formalisme de LAGRANGE [12,31,88,89], il est basé sur une double récurrence : une récurrence avant de la base du robot vers l'effecteur en utilisant al formule de composition pour calculer les vitesses et accélérations donc, le torseur dynamique est une récurrence arrière de l'effecteur vers la base pour calculer les couples des actionneurs en exprimant le bilan des efforts pour chaque corps. La composition des vitesses donne : . co j = co j-1 + aj qj aj .( Q . 1 )
On dérive ces 2 expressions par rapport au temps pour obtenir la composition des accélérations : . . coj = coj-1 + aj ( qjaj + coj-1 A q j aj ) . ( Q . 3) . .. .. V J = VJ-1 + coj-1A Lj +coj-1 A(coj-1 A Lj+ a j qj aj ) +aj ( qj aj + co j-1 A qj aj ) ( Q .4) On arrange l'expression ( Q . 4 ) comme suit :
On peut utiliser cette dernière expression pour déterminer la vitesse du centre de gravité, à savoir :
Ce qui permet d'obtenir le torseur dynamique : Fj = mj V GJ .( Q . 7) . Nj = Cj coj +coj A( Cj A coj) .( Q . 8) Fj et Nj représente respectivement la somme totale des forces extérieures et le somme totale des moments extérieurs. On initialise la récurrence par : Convention de Denavt-Hartenberg: [8, 10, 12,35, 83, 85]. Denavit-Hartenberg ont établi une convention pour définir un repère Ri+1 par rapport à un autre repère Ri en utilisant quatre paramètres a i, ai ,ei,ri selon la figure ci-dessous: v yi e xi Zi+1 ai a i Vi+1 Oi+1 Oi Xi+1 z r Figure Q.1 : Représentation des paramètres de Denavit-Hartenberg [12, 8, 10, 35, 38, 85] La matrice de transformation homogène ainsi obtenue définit la ième transformation du repère Ri par rapport au repère Ri+1 par la matrice Ti (i+1) :
( 1) T i i+ sin cos è è i i - cos cos sin sin á è á è i i i i i a ri 0 sin cos á á i i (Q.9) ? ? ? ? ? ? (Q.11) cosè - i sin 0 0 è i . ( , ) i i zi i è è sin cos0 0 ? è = ? 0 0 1 0 ? Rot ? 0 0 01 0 0 0 1 Cette matrice est une fonction ( i ) T i +1 q de la ième coordonnée généralisée qi notée : i q i = óè i +ó i r i avec ói = 1 quand la liaison est prismatique et ói = 0 quand la liaison est rotoïde. Cette matrice a été obtenue par composition des matrices suivantes : Rot.(zi,ei).Trans. (zi,ri) Rot.(xi, ai). Trans. (xi+1 ,ai) (Q.1 0) ? ? ? Trans z r . ( , ) = i i ? ? ? 1000 ? ? 0100 (Q.12) ? ? ? ? ? ? (Q.13) Rot xi . ( ? ? ? , ) á = i ? ? ? 0 0 0 1 á á i i - sin0 á á i i cos0 0 0 0 1 0 cos 0 sin ? ? ? Trans x a . ( 1 , ) i i + = ? ? ? ? ? ? 0010 ? ? ? 100 ai 0100 0001 (Q.14) Le modèle géométrique est élaboré à partir du produit des matrices Ti associées à chaque repère TT T T n 1 2 1 n + 0 0 = (Q.15) 1 n Appendice R : [41] Rappel des notions de théorie des matrices la matrice est un tableau rectangulaire de nombres disposés par ligne et par colonnes. Le tableau ci-dessous a11 a12 A a1n a21 a22 qui contient m lignes et n colonnes est une matrice d'ordre m x
n. Les matrice sont généralement désignées par des
lettres majuscules ( A,B ), les élément des Si la matrice contient autant de lignes que de colonnes (m=n), on l'appel la matrice carrée. Par exemple la matrice de rotation (3x3) est une matrice carrée. Il y a des cas particulier ou la, matrice ne contient qu'une seule colonne ou une seule ligne, par exemple : b1 A = ÐÐ a1, a2, an ÐÐ ; b = La matrice colonne et la matrice ligne sont
désignées par une lettre minuscule (a1b1 ) les
éléments de telles matrice unidimensionnelles sont
désignées par la les opérations fondamentales effectuées sur la matrice sont les suivantes : Transposition : la transposée A' de la matrice A s'obtient en substituant à chaque ligne de la matrice A une colonne de même numéro. Par exemple étant donnée une matrice carrée (3 x 3 ) A .
Multiplication par un scalaire le produit de multiplication de la matrice A par le scolaire X est la matrice X a11 X a12 X a13 X a21 X a22 X a23 X A = X a31 X a32 X a33 Obtenu par multiplication de chaque élément de la matrice A par la quantité X Les produits XA et A X définissent une seule et même matrice XA = A X. Addition : deux matrice A et B sont additionnables si elles ont un même nombre de ligne et même nombres de colonnes. Par addition des matrices A et B on obtient une matrice C, C = A + B Dont les éléments Cik = aik + bik ( pour tout i,k ) Sont les sommes correspondants des matrice A et B L'addition des matrices est commutative et associative. A + B = B + A A + (B + C) = (A + B) + C = A + B + C Il en est de même pour la soustraction de deux matrices, car A -B = A +(-1) B . En cinématique des mécanismes, les opérations d'addition des matrices et de leur multiplication par un scolaire s'effectuent sur des matrices colonnes. Multiplication matricielle. O, ne peut multiplier deux matrices A et B si la première a autant de colonnes que la deuxième a de lignes. Si A est une matrice d'ordre (m x n ) et b est une matrice d'ordre (m x r ) . Illustrons la règle de multiplication de ces matrices par un schéma :
On considère les lignes de la matrice A et les colonnes de
la matrice B comme des vecteurs dimensionnels qui ont pour projections les
éléments des lignes et des colonnes correspondantes. C'est ainsi
que dans la matrice A les éléments de l'i-ème
ligne a11, a12 , b1k, b2k , bnk ( remarquons que k est le second indice
) conformément à la règle
(i = 1,2 .m ; k= 1,2 .r) (a) Au cas ou m=n = r = 3 c'est -à-dire lorsque A,B et C sont des matrices carrées ( 3 x 3 ) (tel est le cas des matrices de rotation), la formule (a) devient 3
Citons un exemple de multiplication de deux matrices :
Considérons encore un cas particulier: C=Ab On multiplie ici la matrice ( m x n ) A par la matrice colonne ( n x 1 ) b ; le produit en est la matrice colonne (m x 1 ) c. En vertu de la règle de multiplication des matrices b1 x bm c1 ci cm = a11 . . a1n ai1 ain am1 amn n
pour m= n = 3 cette formule traduit l'opération de multiplication de la matrice ( 3x 3) A par une colonne b à trois éléments. Ce cas a lieu pendant la transformation matricielle des projections d'un vecteur. De façon générale, la multiplication matricielle est non commutative. AB ? BA Mais par contre, elle est associative et distributive : (AB)C = A (BC) = ABC (associativité) A (B+C)=AB+AC (Distributivité) Techniques stochastiques d'optimisation Résoudre un problème d'optimisation, c'est trouver parmi un ensemble? de solutions possible S, la solution S* minimisant (ou maximisant) une fonction objectif F(S) donnée. Les techniques déterministes sont efficaces à condition que F(S) soit continue et comporte très peu d'extremums (minimums locaux) sinon les développements mathématiques deviennent très lourds et difficiles à établir. De plus, elles se basent sur la construction d'une direction de recherche privilégiée dans? donc, le risque de manque l'optimum global S* est d'autant plus quand F(S) comporte plusieurs optimums locaux. Dans ce cas, les techniques stochastiques qui se basent sur une recherche aléatoire de S* uniformément distribuée dans l'espace? Sont préférées. Seules des informations sur les valeur de F(S) sont nécessaires. Les techniques stochastiques les plus répandues sont : La technique de Monté-Carlo. Méthode de Hill-Climbing - Méthode de Monté-Carlo.avec réduction d'intervalle. Le recuit simulé. Les algorithmes génétiques. La recherche taboue. Technique de Monte-Carlo : Elle consiste à générer
aléatoirement plusieurs solutions S, de les comparer en
retenant suit : Algorithme R. 1 Algorithme de la technique de Monte-Carlo Générer aléatoirement une solution initiale S0 dans ? Prendre S* = S0 Générer aléatoirement une solution S dans ? Evaluer F (S) Si F(S) < F(S0 ) alors S* = S F(S) F(S*) I Figure R. 1 : Convergence d'une technique de Monte-Carlo Fin Répéter processus de base est arrête après un nombre d'itérations 1 suffisant pour que la solution recherchée soit acceptable. Pour réduire l'effort de calcul et accélérer la convergence, on introduit la notion de voisinage V(Si) défini par son étendue Li de la meilleure solution Si obtenue à l'étape i. cette idée est exploitée dans les techniques de HillClimbing, Monte-Carlo, recuit simulé et recherche Tabou. Méthode de Hill-Climbing : Elle propose d'effectuer une recherche dans un voisinage V(S) d'étendue fixe L centrée autour de la meilleure solution retenue [52] S S F(S) F(S) L L
Figure R.2 : Meilleur solution trouvée. Changement du centre dans la technique de Hill-Climbing La seul difficulté réside dans le choix de la taille de L. un mauvais choix induit à : Piégeage de la technique dans un minimum local (L trop petit). Augmentation du temps de calcul (L trop grands) L'algorithme correspondant est comme suit : Algorithme R.2 Algorithme de la technique de Hill-Climbing Générer aléatoirement une solution initiale S0 S* = S0 Centre de voisinage = S* Générer aléatoirement S dans le voisinage V(S*) Evaluer F(S) Si F(S) < F(S*) alors S=S* Centre du voisinage S* Jusqu'à convergence Méthode de Monté-Carlo avec réduction d'intervalle : C'est une version améliorée de la méthode précédente. Elle introduit un facteur de réduction de l'intervalle L. lors du tirage initial, L est choisi large. Au fur et à mesure que le nombre d'itérations i augmente, la taille de L est réduite afin d'affiner la solution. Soit E le nombre d'échecs successifs comptabilisés depuis la dernière amélioration (on considère un échec quand le choix de S fait augmenter F(S)). Quand E prend des valeurs significatives et pour rentabiliser le calcul, on réduit l'intervalle L. pour cela, on se fixe un seuil Emax pour une prise de décision. L'algorithme correspondant sera alors : Algorithme R.3 Algorithme de la technique de Monte-Carlo réduction d'intervalle Générer initiale S0 aléatoirement S* = S0 Générer une solution S dans V(S*) , évaluer F(S*) Si F(S) < F(S*), alors S*=S Sinon compter E Si E = Emax Réduire V(S) Jusqu'à convergence L'efficacité de cette méthde dépend du choix du facteur de réduction de L et de Emax Recuit simulé : Le fait, à tout prix, de diminuer la fonction objectif F(S) peut conduire à une situation de piégeage de la recherche autour d'un optimum local. L'idée de cette méthode est de faire échapper F(S) de cette situation (permettre l'augmentation de F(S) pour pouvoir se déplacer vers l'optimum global) [53, 54] . En métallurgie, le recuit est un traitement thermique qui consiste à chauffer un métal à un niveau tel qu'il permet l'équilibre physico-chimique et structurel d'un matériau et de le refroidir par palier afin que les atomes s'organisent de manière à le faire passer (le matériau) d'une configuration de haute énergie à celle d'énergie minimale. Ce passage obéit à la loi de Boltzman : P = exp [dE/KT] Ou : K : constante de Boltzman dE : différence d'énergie entre les niveaux initial et final. F : température. P : probabilité de passage d'un groupe d'atomes d'un niveau d'énergie E1 à un niveau d'énergie supérieure E2 Par analogie, les configurations stables correspondent aux solutions qui font diminuer la fonction objectif, les configurations instables font augmenter la fonction objectif. La loi de Boltzman adaptée s'écrit alors : P = exp[?F/T] e) Recherche Tabou : Cette technique consiste à se déplacer d'une solution à une autre en s'interdisant de revenir à une solution déjà rencontrée. On définit un voisinage V(S) pour chaque solution S en supposant qu'on dispose d'une liste Tab de toutes les solutions rencontrées depuis le début de l'exécution de la méthode. A partir de la solution courante Si on passe à une solution Si+1 ....V(S) minimisant la fonction objectif et en ajoutant Si à la liste Tab. En pratique, ce processus utilise trop de place mémoire ainsi que le temps de calcul (on doit comparer chaque solution choisie avec tous les éléments de la liste Tab). Pour éviter cet inconvénient, la méthode Tabou préconise de conserver en mémoire la transformation élémentaire qui permet de passe de la solution courante à la suivante en s'interdisant d'appliquer son inverse (la solution courante n'est pas ajoutée à la liste Tab). La recherche tabou se prête bien au problème d'optimisation discret (optimisation dans les réseaux) [13, 14, 15, 55] Algorithme R.4 Algorithme de la recherche Tabou L'algorithme correspondant sera : Générer aléatoirement une solution initiale S0 S* = S0 Tab = Ø Répéter Générer une solution aléatoire S dans V(S*) Si S Tab alors évaluer F(S) Si F (S)<F(S*) alors S*=S Centre du voisinage S* Sinon ajouter S à la liste Tab Jusqu'à convergence Algorithme génétique : Ils sont basés sur des mécanismes de sélection naturelle et sur la génétique. A partir d'une population de solutions potentielles (chromosomes) initiale arbitrairement choisie, on évalue leurs performances en utilisant des opérateurs simples : la sélection, le croisement et la mutation et on recommence le cycle 16 17 56 .Ces algorithmes différent des méthodes précédentes par les deux points suivants : On utilise un codage des paramètres (solutions). On travaille sur une population de points au lieu d'un point unique. Algorithme R.5 Algorithme génétique L'algorithme sera le suivant : Générer une population initiale. Répéter Evaluer les performances de chaque individu Les sélectionner et les regroupe par paires selon leurs Performances Générer une nouvelle population (appliquer les opérations de croisements et de mutations) Jusqu'à convergence Organigramme R.1: Organigramme d'un processus d'optimisation [71] Lecture des données géométriques et inertielles des robots Performances des robots (limites sur les vitesses, les
accélérations et les couples) Initialisation du processus d'optimisation Np=1 Fobj (meilleure)=+8 Générer aléatoirement une courbe q1(spline) Non Vérifier les débattements de q1(spline) Oui Calculer q2(spline) à partir de q1(spline) Non Vérifier les débattements de q2(spline) 1 2 3 4 Intervalle de recherche = débattements 4 1 5 2 Oui 3 Calculer S1 , S2, S3 Calculer T*Q=min Fobj (S1 , S2, S3) Non Fobj (T*Q, S1, S2, S3) = Fobj (meilleure) Calculer T1 , T2 Calculer Ta Calculer Tv Calculer T1, Tr Oui Calculer T* = intersection (T1, T2, Ta, Tv, T1, Tr) Fobj (T*) = Fobj (meilleure) Non Oui Echec = Echec + 1 Non 6 7 8 Oui 9 7
CONV Non Oui Echec = 0 Arrêter Oui Non Affiner la solution Echec = 0 Echec = Echec max Tableau R.2 : Liste des systèmes de CAO ayant des application,s dédiées à la robotiques [64] .
Tableau R.3 : Avantages comparés des programmations par CAO et par langages textuels [64].
Développement d'un système de CAO sur micro-ordinateur: Le système est organisé autour d'une base de donnée géométrique tridimensionnelle de type réseau. Un logiciel de modélisation permet de définir des objets par assemblage de primitives élémentaires. Une interface de dialogue opérateur assure une manipulation simple des modèles, essentiellement grâce à une tablette à digitaliser. Enfin, un logiciel graphique soumet les informations vectorielles 3D et les informations de type texte à un contrôler spécialisé. Base e données : afin de répondre au exigences ce temps de réponse et de place mémoire d'un micro- ordinateur. La base a été spécifiée autour des concepts suivants : Les entités sont stockées sur deux supports différents ; les modèles actifs, c'est-à-dire sollicités par l'application, restant en mémoire vive; les entités activables sont stockées en mémoire de masse et sont accessibles grâce à un répertoire. On minimise ainsi le nombre d'accès disque. Les modèles activés plusieurs fois dans une même scène ne sont pas dupliqués, ceci pour éviter toute redondance de l'information, la mémoire est gérée dynamiquement. Les trois types d'entités fondamentales représentées en base de données sont les objets, les robots (Chaînes cinématiques simples) et les outils. A ces entités de base, collectionnées par type dans des bibliothèques, il convient d'ajouter scène, qui rassemblent plusieurs entités ainsi qu'un certain nombre d'élément géométriques de conception (point, droite, plan, repère...) logiciel de modélisation tridimensionnelle : Les primitives polyédriques sont de type simple (prismatique ou de révolution), ou de type complexe (bielle, chape, équerre). A chaque primitive, est associée une description volumique paramétrée de type quadrique (suspensoïde) , qui constitue une enveloppe convexe englobante de al description. A partir de cette description, les calculs d'interférence entre solides peuvent être rapides. La modélisation des robots se fait au moyen d'un éditeur graphique interactif permettant de définir, de modifier ou de supprimer, des articulations de type primastique ou rotoide non couplées. Pour chaque liaison, on peut spécifier les limites articulaires, ainsi que les performances en vitesse et en accélération. Interface de dialogue : Il met à la disposition de l'opérateur plusieurs fonctionnalités : La trace d'une évolution d'une session de modélisation dans l'arbre hiérarchique des menus est toujours présente à l'opérateur; Un ensemble de fonction d'analyse permet d'accéder à la description des entités à tous les niveaux de conception, La gestion de la tablette à digitaliser permet de décrire et de manipuler les modèles en limitant au strict minimum les saisies au clavier, Les fonctions graphiques classiques (point observé, distance et direction d'observation, changement d'échelle, zoom) peuvent ter utilisées mode incrémental, procurant ainsi une pression des déplacement continu. Ces fonctions sont accessibles en permanence. Logiciel graphique : il réalise le prétraitement des données géométriques destinées au contrôleur graphique 3D qui assure les transformations, les projections 2D/3D et le clipping. Le logiciel effectue aussi une élimination des lignes cachées, partielle en ce sens que seules les lignes non visibles de chaque solide pris indépendamment des autres solides de la scène ne sont pas visualisées. On arrive ainsi à un compromis réalisme de la scène/temps de traitement satisfaisant. L'édition d'un fichier graphique intermédiaire 3D permet en outre d'envisager un couplage avec les systèmes de DAO en vue de constituer des dossiers techniques (cotations, sortie graphiques...). Nous avons développé autour de ce système une application interactive pour la programmation de robots de type SCARA, à partir d'une tablette à digitaliser. Celle-ci offre un moyen simple et efficace de définition de trajectoires 2D, l'altitude et l'orientation de l'outil sont gérées dans des zones spécifiques de la tablette. La trajectoire cartésienne peut être programmée soit en pointant, sur un schéma de la cellule posé sur la tablette, les points de passage désirés, soit en faisant référence à des entités géométriques de la scène représentant la cellule en base de données le choix d'une configuration de départ (coude à droite ou coude à gauche) est spécifié par l'utilisateur [64,101,102,130]. Programmation et contrôle d'exécution d'une cellule flexible d'assemblage : Introduction : Une cellule flexible d'assemblage (C.F.A) est le lieu, dans un atelier flexible, ou les taches d'assemblage et les opérations associées sont effectivement réalisées. Elle comprend un ensemble d'éléments fortement liés tels que manipulateurs, capteurs et dispositifs de péri- robotique. Ces éléments coopèrent étroitement pour réaliser une tache (ou un ensemble de taches) d'assemblage. A l'inverse de la problématique des robots dits " d'intervention" (robots mobiles autonomes par exemple) dans laquelle le système évolue dans un environnement peut ou pas structuré (et changeant), et acquiert par lui-même l'essentiel des information nécessaires, la problématique de la CFA est celle de la robotique dite " à poste fixe ". Elle s'intéresse à l'exécution, par un système robotisé, d'une tache pré-établie dans un environnement bien structuré et connu à priori, les aspects essentiels sont, dans ce cas, la programmation, ou plus généralement la " préparation des travaux " ainsi que l'ensemble des moyens permettant une exécution efficace et "robuste" de la tache, d'où la mise en avant des notions de flexibilité et d'autonomie. La flexibilité : une CFA doit être conçu de manière à permettre la réalisation non pas d'une seule tache mais d'un ensemble de taches appartenant à une même application. Il doit être possible de la programmer (et de la reprogrammer) facilement, de changer ou d'ajouter un composant, d'en modifier la configuration spatiale, de construire de nouveaux programmes traitant de nouvelles variantes de pièces. Bien qu'un certain niveau de flexibilité existe désormais au niveau des composants (manipulateurs généraux programmables dans l'espace cartésien, système de vision programmables ...), ceci ne suffit pas pour obtenir une flexibilité raisonnable au niveau de l'ensemble. Des méthodes et outils doivent être développés de manière à aider l'utilisateur à réaliser des taches d'assemblage. En effet, une telle programmation nécessite l'intégration et l'utilisation d'un grand nombre d'information et de connaissances provenant de sources très diverses et il n'est pas simple de les combiner dans le cadre d'une approche structurée bien définie. L'autonomie : a l'exécution, une CFA doit se comporter comme un système autonome qui délivre des pièces assembler selon un processus préalablement défini. Elle doit être capable de gérer ses propres ressources, d'adapter son fonctionnement conformément aux informations les plus récentes, de traiter les événements qui interviennent au niveau de la cellule de manière " Transparente". On ne fera appel au système de gestion de plus haut niveau (atelier, opérateur) que si les taches sui sont allouées à la cellule ne peuvent être réalisées conformément aux spécifications [64,104]. le système NNS : Le système NNS comporte un environnement de programmation (environnement hors- ligne) et un système de conduite (système en ligne) (figure R-3) L'environnement de programmation inclut essentiellement des Modules Décisionnels Spécialisés à aider le programmeur à spécifier et à raffiner progressivement une tache d'assemblage pour une cellule donnée. A partir de cette description, le compilateur de tache d'assemblage produit un ensemble structuré d'informations appelé modèle d'exécution. ENVIRONNEMENT DE PROGRAMMATION Modèle d'Exécution SYSTÈME DE CONDUITE Système de commande des composants de la cellule Figure R-3 : Architecture du système Le système de conduite est un système basé sur la connaissance (Knowledge - Based system); il assure l'exécution de la tache. Il utilise le modèle d'exécution pour générer, au fur et à mesure, les consignes nécessaires à la réalisation de la tache, à partir des informations provenant de l'environnement (arrivée d'une pièce, fin d'une action, détection d'une anomalie...) Cette architecture est fondée sur les idées suivantes. Des capacités décisionnelles doivent être mises en oeuvre à la fois hors - ligne et en- ligne afin de répondre aux objectifs de flexibilité et d'autonomie visés. Toutefois, il est important de pouvoir distinguer clairement les informations provenant de la phase de conception de la cellule et de définition de la tache, les problèmes qui peuvent être résolus à la programmation ainsi que les décisions qui doivent être prises au cours de l'exécution. Il est également important de noter que la plupart des problèmes nécessitant des processus décisionnels " lourds" peuvent être traités hors- ligne. Les aspects modélisation et représentation de la connaissance sont ici de première importance. En effet, tant à la programmation qu'à l'exécution, le système doit être capable de raisonner sur la tache, sur la cellule et sur ses interactions avec (environnement à différents niveaux d'abstraction. La modélisation : L'ensemble du système est basé sur une modélisation se la tache à différents niveaux d'abstraction: Le niveau PROCESSUS D'ASSEMBLAGE spécifié les différents opérations qui doivent être réalisées sur les pièces: alimentation, montage, inspection,etc.. Le niveau TACHE conserve l'évolution des pièces dans la cellule, il définit les différentes actions qui permettent à la cellule considérée de réaliser un processus d'assemblage donné. Le niveau ACTION explicite la manière de faire évoluer les pièces dans la cellule : grands mouvements d'approche, prise d'objets. Stratégies d'inscription...ce niveau établit notamment une modélisation fonctionnelle des éléments de la cellule à partir des fonctions qui leurs sont allouées dans le cadre des taches d'assemblage (effecteurs, support, capteur, machine spécialisée, opérateur atelier) ainsi q'une structuration de l'espace de la cellule (en vue de sa gestion pour l'exécution des différentes opérations). Le niveau FONCTION " encapsule" les primitives fournies parlent systèmes de commande des différents composants de la cellule dans des fonctions génériques manipulées par les niveaux supérieurs. Un processus d'assemblage consiste en un ensemble d'opérations partiellement ordonnées. Les composants primaires sont introduits dans la cellule et les produits fins repartent sur des convoyeurs. Une pièce représente l'état d'avancement (pièce primaire, sous - assemblage ...). Chaque pièce est caractérisée par son identité. Exemple : L'identité " pièce A " indique que la pièce
correspondante est du type " pièce A " ; l'identité "?(
pièce A1 pièceA2 .pièce An ) " indique que la
pièce fournisseurs à la cellule dans un ordre quelque ou après une opération d'indentification qui ne discrimine pas complément l'identité d'une pièce; L'identité "INCONNU" ou "!" est associée à toute pièce qui ne correspond à aucune étape du processus d'assemblage. Les opérations d'un processus d'assemblage font apparaître, disparaître ou modifient l'identité des pièces dans la cellule. Nous définissons les opérations Opération d'assemblage Pièce X& pièce Y pièce X Y Opération de démontage Pièce X pièce X1 & pièce X2 Opération technologique Pièce X pièce X* Opération d'inscription : pièce X pièce X+ / pièce X- Opération d'identification ? ( pièce X1 pièce Xn ) pièce X1 pièces Xn Opération de déchargement ... opération d'alimentation Pièce X pièce x Un processus d'assemblage est spécifié par la donnée de l'ensemble des pièces concernées ainsi que les différents opérations à réaliser sur ces pièces. Le processus peut comporter plusieurs ordonnancements possibles des opérations. Exemple : " Trois pièces A,B et C sont assemblées puis
inspectées avant d'être déchargées. Il existe N
variantes de la pièce A : ( A1 .An); elles sont
alimentées sur un convoyeur L'ensemble du processus peut être représenté par la liste des opérations suivantes : Algorithme [Processus] R-6 : ? ( A1 .An) alimentation ? ( A1 .An) A1 An |! Identification B | C alimentation ! déchargement C C* Op er . technologique Ai& B ABi assemblage ABi& C* ABCi assemblage B& C* BC assemblage Ai& BC ABCi assemblage ABCi + ABCi |- ABCi inspection + ABCi déchargement - ABCi déchargement L'état d'un processus d'assemblage peut être représenté, à chaque instant par l'identité de toutes les pièces présentes dans la cellule : < état. Processus > :: ( <pièce> * ) Cette représentation est indépendante de toute cellule particulière remarquons qu'elle peut être utilisée en- ligne au niveau de la gestion de l'atelier pour connaître l'état d'avancement d'un processus dans une cellule ainsi que les capacités fonctionnelles d'une cellule après une panne ou un incident (opérations qui ne peuvent plus être réalisées). L'environnement de programmation : L'objectif du système d programmation est de préparer et de structurer l'ensemble des connaissances qui sont nécessaire pour gérer et contrôler l'exécution. Outils pour la programmation avancée des taches de manipulation: Le but de ce paragraphe est montré, sans aucune prétention à l'exhaustivité, la grande variété des problèmes soulevés par la programmation et la conduite de taches d'assemblage robotisées. Au cours des dix dernières années des efforts importantes ont été consacrés à la programmation avancée des robots [107,108] de nombreux aspects ont été abordés. la programmation automatique essentiellement fondée sur les techniques de raisonnement géométrique. Des résultats significatifs ont été obtenus concernant notamment l'évitement d'obstacles [ 64,109,110,111,112] la détermination des positions de prise des objets [113], la génération des mouvements fins [114,115,116], l'analyse des incertitudes de positionnement [117,118]. Ces différentes techniques constituent incontestablement les "briques de base" des systèmes de programmation à venir. Cependant deux difficultés demeurent. D'une part, la plupart de ces systèmes sont encore en cours de développement et ne peuvent traiter de manière complètement automatique que des cas relativement simples. D'autre part, l'intégration de ces modules décisionnels pose de problèmes difficiles. En effets, dans le cas général, une opération d'assemblage ne peut se décomposer aisément en sous- problèmes résolus séparément (grands mouvement; mouvement d'approche, détermination des positions de prise; synthèse des stratégies d'insertion...) Des travaux récents dans ce domaine sont en cours notamment dans le cadre des projets ATALAS- HANDEY [119,120,121] le développement d'outils d'aide à la programmation au moyen de logiciels de type CAO [123,124] ce sont généralement des outils interactifs. Les principales fonctions fournies concernant l'aide à la configuration des cellules robotisés (choix de manipulateurs, emplacements ...), l'aide à la construction de trajectoires, simulation et la vérification des choix opérés par l'utilisateur. Le développement de logiciels pour la programmation de taches de montage complexe nécessitant notamment une interprétation des efforts et l'adoption de stratégies locales exprimées directement dans l'espace de la tache [123,125,126,127,128] . La modélisation des processus d'assemblage pour la génération automatique de séquences opératoires [129] ou la mise en oeuvre d'un ordonnancement opportuniste des actions [105,106] . Le contrôle d'exécution: ces recherches visent à doter le robot de moyens lui permettant de contrôler l'exécution d'un plan ou d'un programme [130,13 1,132,] l' système doit être capable de vérifier en permanence de conformité de l'état réel de la tache avec l'état planifié. Au plus bas niveau, la surveillance est effectuée principalement au moyen de capteurs. Le système de conduite doit être capable de déterminer, en fonction de contexte, quelle sont les surveillance qu'il doit activer. Par ailleurs, il doit être capable de réagir, avec un temps de réponse compatible avec la dynamique de l'environnement, à une grande variété d'évènements généralement asynchrone (échec d'une opération, détection d'une situation non prévue dans le plan courant, ordre en provenance de l'opérateur ou de l'atelier...). Les réactions du système peuvent entraîner des conséquences plus ou moins importantes sur l'exécution en cours: correction locale d'une anomalie de fonctionnement, amendement, planification totale, arrêt partiel. Tableau R-4 : Principales formes d'usure [138].
RÉFÉRENCES
76 . R. BATTITI, G TECCHIOLI ; « The reactive tabu search », O.R.S.A. Journal on Compuling, p.126-140, 1994.
143. V. DUPOURQUE ; « Architecture matérielles des contrôleurs de robots : Techniques de la robotique», tome 1, Hermès, 1988.
|
|