Chapitre 2 Géométrique Modifier

download Chapitre 2 Géométrique Modifier

of 28

description

Chapitre 2 Géométrique Modifier

Transcript of Chapitre 2 Géométrique Modifier

Chapitre 2 Modlisation Gomtrique

Chapitre 2 Robotique (Modlisation Gomtrique)

Chapitre 2 Modlisation Gomtrique

2.1 Introduction

Un manipulateur en boucle ouverte consiste en un certain nombre de liens dont la position relative est dfinie par les variables darticulations. Ces dernires peuvent tre des rotations ou des translations. Puisque chacun des liens constitue un corps rigide, il est logique de lui associer un rfrentiel cartsien. La configuration du robot est ainsi dfinie par la position relative des rfrentiels associs chacun des liens.Premirement, la position dun objet sera dfinie par lorigine du systme de coordonnes. Cette position sera donc donne par trois valeurs, ou encore par un vecteur de trois dimensions:

p = [px, py, pz]T (2.1)

Il est cependant moins vident de trouver comment on reprsente lorientation. On remarque que le systme de coordonnes est reprsent par trois vecteurs unitaires orthogonaux. On peut donc penser que si on donne ces trois vecteurs par rapport un systme de rfrence on connatra lorientation. On reprsente alors lorientation par une matrice 3x3 forme par ces 3 vecteurs.

=

(2.2) Fig 2.1

Exemple 2.1

On devrait facilement voir sur la figure que la position du systme de coordonnes b par

rapport au systme 0 est:

P= et que son orientation est donne par :

En pratique, il y aura plusieurs systmes de coordonnes. Il faudra alors prciser par rapport quel systme on donne la position et lorientation. Supposons qu on appelle le systme de rfrence le systme 0, la position dun systme de coordonnes par rapport au systme 0 sera crit:

et lorientation:

On peut donc penser que pour donner une orientation on doit donner 9 valeurs (matrice 3x3). En ralit ce nest pas vrai car ces 9 valeurs ne sont pas indpendantes. En effet les 3 vecteurs doivent tre orthogonaux, c--d. leur produit scalaire est nul.

x y = z x = y z = 0Ce qui donne 3 relations entre ces 9 valeurs. De plus ces vecteurs sont unitaires. On a donc 3 autres relations :

x x = y y = z z = 1On a donc en ralit que 3 inconnues. On peut donc conclure que la position dun objet est donne par un vecteur (3x1) et lorientation par une matrice 3x3.

Compte tenu de ce que, par dfinition, on a

Cette importante relation est du reste une consquence immdiate de lorthogonalit de R.

On verra plus tard qu on regroupe en gnral la position et lorientation en une seule matrice 4x4.

2.2 Transformations linairessi un robot veut aller prendre un objet, le contrleur du robot doit savoir les transformations ncessaires pour que le systme de coordonnes de loutil concide avec celui de lobjet. Il y a plusieurs transformations classiques, La plus simple est probablement la translation. En se referant la (Fig. 2.2), on voit que

Fig.2.2

0p2 =0p1 + op (2.3)Pour trouver le nouvel origine, on na donc qua faire une addition vectorielle. On remarque galement que Lorientation na pas chang. La matrice orientation restera donc identique aprs une translation.

Une autre transformation classique est la rotation autour dun axe. Si on regarde une rotation autour de laxe z (Fig. 2.3), pour trouver la position dun objet aprs rotation il suffit de trouver les relations entre les nouveaux axes (x2, y2, z2), par rapport aux anciens (x1, y1, z1). On trouve facilement que ces relations sont donnes par:

0px2 = 0px1 cos 0py1 sin

0py2 = 0px1 sin + 0py1 cos (2.4)

0pz2 = 0pz1Il sera trs intressant, pour rendre les oprations plus systmatiques, de reprsenter ces oprations sous forme de matrices. Ainsi la dernire relation peut scrire

Fig.2.3

Ou on a remplac cos par c pour simplifier lcriture. Cette notation sera suivie dans tout le reste des notes de cours. Pour trouver la nouvelle orientation, il suffit dappliquer la mme transformation chaque vecteur unitaire. On aura ainsi:

O2 = Rotz()O1O1, O2: reprsentent les matrice dorientations.

Rotz(): reprsente la transformation.

2.2.1 Coordonnes HomognesUne transformation approprie rigide gnrale dun corps est donne par une paire (O(),P), o, O() est une matrice de rotation et P un vecteur de Position, ces paires ont l'effet suivant sur les vecteurs de position v:

(O(),P): v O()v+P

o deux transformations successives donneront:

(O(2),P2) : O(1)v+P1 O(2) O(1)v+ O(2)P1+P2C'est quivalent une transformation rigide simple donne par la paire :

(O(2) O(1), O(2)P1+P2)

Ainsi nous obtenons une sorte de rgle "simple" de multiplication pour ces paires :

(O(2),P2)(O(1),P1)=(O(2) O(1), O(2)P1+P2)

Noter ici que la translation pure sont reprsentes par des paires de la forme (I, P), o I est la matrice d'identit. Les rotations pures, ces des rotations au tour de l'origine, donn par des paires (O(),0). L'ordre que ces transformation est trs important. Par ce que la multiplication n'est pas commutative. Pour l'exemple, le rsultat de la rotation puis de la translation est diffrent de la translation d'abord et ensuite la rotation. Dans le premier cas nous avons :

(I, P)( O(),0) = (O(), P)O le contraire donne :

( O(),0)(I, P) = (O(), O()P)Alors les coordonnes homognes. Sont former par une matrice 4x4 qui contienne la matrice orientation et le vecteur position. On a ainsi

(2.5)

(2.6)

Exemple 2.2:

une translation dans la direction x dune grandeur a va donner:

px2 = px1 + a

py2 = px1pz2 = pz1Ceci revient au mme que dcrire

p2 = Transx(a)p1une rotation en z: une rotation en y:

une rotation en x:

Remarque: Ici il faut faire trs attention au sens des rotations et de suivre toujours la mme convention pour le sens positif. La convention la plus utilise est ce quon appelle la convention de la main droite. Pour savoir si un angle de rotation en z est positif, il suffit de penser quon tourne une vis. Si la rotation produit une dplacement de la vis vers laxe z positif, langle est positif, sinon ngatif. On trouve ainsi que le sens positif pour les trois axes est illustre sur la figure suivante:

fig.2.42.2.2 Sries de Transformations

pour trouver la matrice de transformation dune suite de plusieurs transformations, il suffira de multiplier les matrices de transformations lmentaires.

Il faudra juste faire attention du sens dans lequel on fait la multiplication car en gnral la multiplication de matrices nest pas commutatif. Regardons un exemple simple dune rotation autour de laxe z de 45 suivie translation dans le sens x de 1 unit. Plaons-nous dans un plan pour simplifier. Faisons concider un systme daxes de rfrence fixe et un autre mobile qui subira les transformations. On a premirement la matrice de rotation autour de z

a) b)

fig.2.5

et une translation dans le sens x.

Ici on peut se demander si cest dans lancien x ou le nouveau. En fait, on peut tout fait faire les deux si on veut mais on voit sur la figure que cest dans la direction de lancien x. Dans ce cas, on voit quil faut multiplier la nouvelle matrice gauche de lancienne.

Ici on doit faire tout de suite une observation importante. La matrice rsultante peut tre interprte dau moins 2 faons diffrentes. Premirement, elle reprsente la srie doprations ncessaires pour faire passer un systme de coordonnes un autre, mais elle reprsente galement lorientation et la position du nouveau systme daxes par rapport au premier. En effet les trois premires colonnes reprsentent lorientation et la dernire la position de lorigine.

Si on avait multiplier par la droite on aurait eu

qui naurait pas donn le bon rsultat pour la position. Si on regarde la figure de droite maintenant, on voit quon aurait pu arriver au mme rsultat en commenant par une translation en x suivi dune rotation de 45 en z mais autour du nouveau z et non lancien. Comme le rsultat est le mme, il faut que la matrice soit la mme et donc que la multiplication soit :

La deuxime matrice (Rotation) a donc maintenant t multiplie droite de lancienne car on a effectu la rotation autour du nouvel axe z. En rsum on a:

- Lorsquon effectue une nouvelle transformation par rapport au systme de rfrence fixe, on multiplie la nouvelle matrice gauche.

- Lorsquon effectue une nouvelle transformation par rapport au nouveau systme daxes, on multiplie la nouvelle matrice droite.

Une autre conclusion trs importante est quon peut interprter le rsultat de deux faons possibles:

1. Soit la srie de transformations ncessaires pour faire passer un systme de coordonnes un autre

2. ou encore la position et lorientation du nouveau systme daxes par rapport lancien.

On introduira la notation suivante

(2.8)

pour indiquer la matrice de transformation pour faire passer le systme daxe B au systme daxe A. ou encore la position et lorientation de A, par rapport B. Dans la premire interprtation, la sous-matrice 3x3 de gauche reprsentait la partie rotation et la 4me colonne, une translation (2.7). Dans la deuxime interprtation, on aurait plutt

(2.9)

Exemple 2.3

Regardons la transformation obtenue aprs les 4 transformations lmentaires suivantes:

On peut donc penser faire ces transformations de 2 faons diffrentes. Premirement

en allant de droite gauche en considrant les transformations par rapport au systme

daxes de rfrence

fig.2.6

On peut galement arriver au mme rsultat en faisant les oprations par rapport aux

nouveaux systmes daxes et en multipliant de gauche droite

fig.2.7

On remarque lutilit de la notation utilise. En effet, si on regarde la deuxime approche, les matrices individuelles sont donnes par :

On remarque quaprs une premire multiplication, on obtient effectivement la matrice reprsentant le systme 2 par rapport au systme de rfrence. Aprs la deuxime, le systme 3 par rapport au systme de rfrence, etc... Par contre dans la premire approche, bien que le rsultat final soit identique, les rsultats intermdiaires sont moins faciles interprter. En pratique, on utilisera trs peu cette approche et on utilisera surtout la deuxime faon de faire des transformations composes .Dans ce dernier exemple, on a galement introduit la position dun point q pour illustrer une autre application des matrices de transformation. En effet, on remarque sur la figure que la position du point q par rapport au repre initial est donne par

Ce mme point exprim par rapport au repre 4 est

En multipliant ce dernier vecteur par la matrice 0T4, on trouve

qui est bien la position du point q, par rapport au premier systme de rfrence. Symboliquement, on trouve

O on remarque encore une fois lintrt de la notation pour nous aider faire les calculs dans le bon sens. On pourrait se demander comment, partir de 0pq , trouver 4pq mais pour cela on a besoin de 4T0 qui est linverse de ce quon a trouv et on doit attendre lautre section. Par contre, on pourrait regarder ce que a donne si on multiplie notre matrice 0pq. Ceci donne

Ceci reprsente la nouvelle position du point q, q sur le dessin, si on lattache au systme de coordonnes mobile. Symboliquement la notation est moins descriptive que dans lautre cas. On a

Il serait peut-tre prfrable dutiliser une autre notation pour la matrice dans ce dernier cas, quelque chose comme

mais comme on nutilise pas trs souvent cette interprtation, nous garderons toujours la mme notation pour nos matrices de transformations en faisant attention linterprtation quon en fait.

2.2.3 Orientation des systmes de coordonnes

On a dit que lorientation dun repre tait donn par une matrice 3x3 reprsentant les 3 vecteurs unitaires. On a cependant indiqu que dans ces 9 valeurs, plusieurs taient redondantes et quen fait, il tait possible de donner lorientation en donnant simplement 3 valeurs. Supposons, par exemple, quon dsire avoir un robot qui suive une certaine trajectoire dans lespace en lui donnant une centaine de points intermdiaires passer. Si chacun des points est donn par 3 positions et une matrice 3x3 (9 chiffres), a risque de prendre assez de mmoire. Il est prfrable de ne prendre que 3 chiffres pour lorientation. En fait il y a une infinit de choix possibles pour dfinir une orientation dun repre par rapport `a un autre. Lide est de trouver 3 transformations qui vont faire passer le premier dans le deuxime. Un choix possible est de trouver trois rotations autour des axes du systme de rfrence.

. une rotation autour de x de (angle de lacet)

. une rotation autour de y de (angle de tangage)

. une rotation autour de z de (angle de roulis)

Comme cest autour des axes de rfrences, on doit multiplier par la gauche.

ou encore, si on regarde seulement la sous-matrice rotation:

(2.10)

Exemple 2.4Prenons par exemple un objet auquel on attache un repre (voir figure) (xb, yb, zb) et dont on cherche dfinir lorientation. On peut facilement trouver la matrice de rotation simplement par inspection. Ainsi on trouve:

Si on veut reprsenter lorientation maintenant par les trois angles (, , ), on peut le faire de deux faons. Soit en essayant de trouver les trois rotations visuellement ou en comparant cette dernire matrice (2.10). Comme ici, cest relativement simple, on trouve que pour passer de R b, on doit avoir = 0, = 90, = 0. Dans un cas gnral, il nest pas possible de le faire loeil. Il faut utiliser (2.10). Bien que a ait lair gros, ce nest pas si compliqu. Il suffit de commencer par le plus simple ( la troisime ligne). Ainsi, dans notre exemple, on a

fig.2.8:Connaissant maintenant un des angles, on simplifie la matrice initiale par les valeurs de

s et c. On obtient:

Llment de la 1re range et 2me colonne nous dit que s( + ) = 0 alors que llment de la 2me range 2me colonne donne c( + ) = 1 On a alors

En ralit, il y a une infinit de possibilits du moment que + = 0. On prend alors

le plus simple ( = = 0)

Il existe plusieurs autres dfinitions dangles de rotation possibles (24 en tout). Certaines sont autour daxes fixes comme la convention quon a choisi et certaines sont autour daxes variables, Angles dEuler.

2.3 Transformation inverse

Comme on vient de le dire, le passage entre diffrents systmes de coordonnes se fera par multiplication de matrices. Dans certains cas on devra inverser des matrices. Ainsi, si on connat 0T1 la position (et lorientation) du repre 1 par rapport 0 et 0T2, celle du repre 2 par rapport 0, pour trouver la position de 2 par rapport 1, on aura:

Il faudra donc inverser une matrice 4x4. De faon gnrale, ce nest pas trs facile faire. En effet linverse dune matrice est donn par (2.10)

(2 11)

o la matrice adjointe, est la transpose de la matrice forme par les cofacteurs. Sauf que dans notre cas, notre matrice est trs spciale. Premirement, dans la dernire range, il y toujours 3 zros. Deuximement, les 3 premiers vecteurs sont toujours orthogonaux entre eux. On peut montrer assez facilement que linverse dune matrice reprsentant un systme de coordonnes sera donne par:

(2.12)

Exemple 2.5Soit la matrice de transformation suivante

trouvons la matrice inverse

Exemple 2.6En se rfrant lexemple de la section prcdente, trouvons la position du point qpar rapport au systme de coordonnes 4, connaissant sa position par rapport au systme de rfrence.

Notre notation nous permet facilement de chercher ce quon a besoin. En effet, il suffit de trouver

Or qui vient dtre trouv `a lexemple prcdent. On a alors

ce quon savait dj par inspection.3 Modlisation Gomtrique 3.1 Modlisation Gomtrique directCette partie est consacr la description gomtrique directe des manipulateurs en boucle ouverte, cest dire la liaison entre la position et lorientation de lorgane terminal du robot et les variables darticulations. Nous nous limiterons au cas o chaque articulation a un seul degr de libert, de translation ou de rotation (ceci ne constitue pas une limitation physique puisque une articulation possdant plus dun degr de libert peut tre modlise en introduisant des liens fictifs de longueur nulle).

Pour effectuer la description gomtrique du manipulateur, nous associerons un rfrentiel chaque bras du robot, et nous dcrirons leur position relative laide des paramtres de Denavit-Hartenberg. La description gomtrique du manipulateur complet est alors obtenue trs simplement, par rcurrence.

3.2 Paramtres de Denavit-Hartenberg

Du point de vue gomtrique, un lien est un corps rigide qui est entirement caractris par la position relative de ses axes (figure 2.9). Celle-ci est compltement dfinie par les deux paramtres l et qui mesurent sa longueur et son vrillage ( pour le lien i1 sur la figure). l reprsente la longueur de la perpendiculaire commune et est langle de rotation autour de la perpendiculaire commune permettant de rendre les axes parallles.La position relative de deux liens successifs est dfinie laide des deux paramtres et d. est langle de rotation dont il faut tourner autour de laxe {i} pour amener la perpendiculaire commune du lien i1 parallle celle du lien i. d est la distance dont il faut ensuite la translater le long de laxe i pour lamener en concidence. Un des paramtres ou d constitue la variable darticulation, pour une articulation de rotation et d pour une articulation de translation. Les quatre paramtres , l , et d constituent les paramtres de Denavit-Hartenberg; ils constituent une caractrisation gomtrique minimale dun lien et de sa relation avec le lien suivant. Il existe de lgres variantes dans la dfinition des paramtres.Afin dexprimer formellement la relation gomtrique entre liens successifs, il convient de leur associer des rfrentiels. On exprimera alors la matrice de transformation homogne en fonction des paramtres de Denavit-Hartenberg. La convention qui gouverne le choix des rfrentiels est exprime la figure 2.9. Pour chaque lien, laxe z est orient suivant laxe de la premire articulation et laxe x est orient suivant la perpendiculaire commune,

Fig 2.9 choix des rfrentielsCompte tenu de ce qui prcde, la signification des paramtres de Denavit-Hartenberg peut tre rsume comme suit:

li: distance entre zi1 et zi mesure le long de xii: angle entre zi1 et zi mesur autour de xidi: distance entre xi1 et xi mesure le long de zi-1i: angle entre xi1 et xi mesur autour de zi-1La matrice de transformation entre un joint n 1 et n ainsi obtenue devient alors:

1. une rotation en z dun angle suivi.2. dune translation le long du nouveau z dune distance d suivi.3. dune translation le long du nouveau x dune distance l suivi.4. dune rotation le long du nouveau x dun angle .

(2.12)

En plus de prendre cette convention pour les transformations lmentaires, il sera important de choisir la mme convention pour le choix des axes. Ainsi, pour un joint rotatif, on va toujours prendre laxe z dans laxe de rotation. De mme dans le cas dun joint prismatique, on choisira laxe z dans le sens de la translation. Ainsi, dans le cas dun joint rotatif, la rotation autour de z va changer. La rotation sera donc une variable (appele variable de joint et les autres paramtres seront des constantes. Pour un joint prismatique, ce sera d, la translation selon z, qui sera la variable de joint. Une fois laxe z choisi, on choisira laxe x. Une fois laxe x choisi, laxe y est directement donn par la rgle de la main droite.

Gomtrique directe dun robot - Mthode gnrale

1re tape

- On identifie le nombre de segments du robot (1 n)

- On identifie le nombre de joints (1 n)

- On identifie le nombre de systmes de coordonnes (n + 1) (0 n)

2me tape

- On place le robot ( tous ses joints) dans leur position zro

- Ceci peut tre arbitraire, mais il est conseill de prendre la position suggre par

le fabricant si il y en a une

3me tape - Assignation des systmes de coordonnes

1) On fait concider le systme de rfrence (0 ou R) avec le joint 1

2) On place les autres systmes daxes lextrmit des segments

systme 1 concide avec le joint 2

systme 2 concide avec le joint 3 etc...

3) On identifie laxe z de tous les systmes de coordonnes

joint rotatif - axe de rotation

joint prismatique - axe de translation

4) On identifie laxe x- laxe xn concide avec le segment de droite perpendiculaire la fois laxe zn1 et laxe zn- Si zn1 est parallle zn ( ce qui est frquent) on choisit xn de manire le plus simple possible

- Si zn1 intersect laxe zn on choisit xn perpendiculaire au plan zn1 et zn passant par le point dintersection .

- laxe yn est trouv par la rgle de la main droite

5) Dans cette convention laxe zn et laxe x0 sont arbitraires. On les choisit le plus simple possible

4me tape

- On trouve les 4 variables associes chaque segment

n : angle de rotation par rapport zn1dn : distance de translation le long de laxe zn1ln : distance de translation le long de laxe xnn : angle de vrillage , rotation par rapport xn- On identifie les variables de joints (n joint rotatif, dn joint prismatique)

5me tape

Formation des matrices de transformation3.3 Paramtres de Denavit-Hartenberg modifiLes paramtres de Denavit-Hartenberg modifi permettent de disposer d'un paramtrage des liaisons tel que les matrices de passage aient toutes la mme forme littrale, ce qui facilite les calculs.

Notations :

On numrote les solides par ordre croissant en partant du socle. Ainsi le robot est compos de n+1 corps, nots C0......... Cn , et de n articulations . Le corps C0 dsigne le socle (la base) du

robot,Le repre Ri est li au corps Ci du robot.

La variable de l'articulation i, qui lie le corps Ci au corps Ci+1, est note qi.

(La convention de Denavit-Hartenberg (non modifi) est telle que laxe zi du repre Ri est confondu avec laxe n i+1 ,(et non i) du robot.)

Fig.2.10: systme daxes de Denavit-Hartenberg modifiLe passage du repre Ri-1 au repre Ri s'exprime en fonction des 4 paramtres suivants :

- On note i l'angle de rotation entre les axes zi-1 et zi autour de l'axe xi-1 ,

- On note li la distance entre zi-1 et zi mesure le long de l'axe xi-1,

- On note i l'angle de rotation entre les axes xi-1 et xi autour de l'axe zi ,

- On note di la distance entre xi-1 et xi mesure le long de l'axe zi .

Il en rsulte la matrice de transformation homogne i-1 Ti suivante

=

=

Exemple 3.1

Prenons le manipulateur simple illustr la figure suivante: On a 2 joints rotatifs, on aura donc 3 systmes daxes, 2 mobiles et 1 fixe. On prend z0 le long de la premire rotation, z1 dans laxe de la 2me rotation. z2 est arbitraire. En gnral, on le prendra le plus simple possible. Par exemple ici, on le met dans le mme sens que

Fig.2.11z1.Remarquons que bien que laxe z soit laxe de rotation, le sens positif est arbitraire.

On peut le prendre d un sens ou lautre

On choisit ensuite les axes x. x0 est arbitraire mais pas x1. Comme z0 et z1 sont parallles, il y a une infinit de perpendiculaires communes aux 2 axes. On choisit la plus simple, cest--dire au centre du joint. On fait la mme chose pour x2. Pour x0, on prend galement le plus simple possible, en gardant la mme direction que x1 ( la position zro).

Une fois les systmes daxes en place, il suffit de trouver les paramtres de Denavit- Hartenberg et de remplacer dans (3.1). On trouve ainsi

On forme ensuite les 2 matrices

o pour simplifier davantage lcriture on a enlev le . On trouve de la mme faon

Et

o on a pris comme convention dcriture

Une fois la matrice trouve, il est toujours bon de vrifier le rsultat en essayant quelques valeurs dangles. Ainsi, si on essaie avec 1 = 0 et 2 = 90 on aura comme matrice

ce qui a du sens. Il serait bon de faire au moins 2 vrifications.

Exemple 3.2

Refaisons les mmes tapes avec un manipulateur deux degrs de libert indiqu sur la figure. Les systmes daxes lorsque le robot est linitialisation sont donns sur la figure. Les paramtres sont:

Fig.2.12

et les matrices de transformations sont trouves de la mme faon

En essayant avec par exemple, 1 = 0, 2 = 90, on a

qui est bien ce quoi on sattendait

Exemple 3.3

Terminons avec un exemple ayant un joint prismatique 3 degrs de libert Les systmes

Fig.2.13daxes sont reprsents sur la figure. Ici, il y a videmment un peu darbitraire au niveau de la position de loutil `a la position zro. On peut trs bien choisir qu linitialisation, les 3 systmes daxes 1,2 et 3 concident o mettre le dernier une certaine distance des 2 autres. a na pas tellement dimportance. Avec le choix qui a t fait, on obtient:

Les matrices de transformations sont:

On peut encore une fois vrifier en essayant par exemple 1 = 90, d2 = 0, 3 = 90

Remarque:

Les exemples prcdents sont des problmes de gomtrique directe. Ces relations nous donnent le lien qui existe entre les variables joints(c--d ou d) et variables cartsiennes (c--d positions et orientations). On dit quon passe de lespace articulaire(joint) lespace oprationnel (cartsien).

A O espace articulaire espace oprationnelAinsi dans le dernier exemple, si prend par exemple 1 = 90,d2 = 4, 2 = 90, on en dduit directement que la position de loutil est (4, 0, d1) de lorigine et que son orientation est (0, 90, 180). On verra cependant que cest souvent le contraire quon veut. On devra alors trouver la gomtrique inverse.3.4 Gomtrique inverseImaginons quon fasse le contrleur dun robot ayant trois moteurs. On devra faire une interface usager permettant lutilisateur du robot de lui faire faire des tches utiles. Si on offre la possibilit lutilisateur de donner une certaine trajectoire, par exemple venant dun dessin dAutocad, comment devrons-nous procder pour gnrer la trajectoire. Premirement, avec trois degrs de libert, il sera impossible de fixer la position et lorientation de loutil, alors occupons-nous simplement de la position pour linstant. La premire chose faire sera de gnrer un certain nombre de points par lesquels loutil de notre robot devra passer. On devra exprimer ces points en fonction dun repre de rfrence connu. Connaissant tous ces points, on devra envoyer les commandes nos moteurs de manire ce que le robot (son outil en fait) passe par ces oints. Pour cela, comme chaque actionneur (pour nous ce sera surtout des moteurs) est associ `a un joint, on devra connatre les valeurs de toutes les variables de joints. Ceci est appel la gomtrique inverse On passe de lespace oprationnel lespace articulaire.Exemple 3.4Reprenons lexemple (3.1) o la matrice de transformation tait donne par

Ici, on a deux degrs de libert. On ne peut donc pas imposer six valeurs pour la position et lorientation. On peut simplement imposer deux valeurs pour la position ou encore une position une orientation. Prenons les deux positions px, py. Ici la configuration du manipulateur impose que pz = 0. Lide est de trouver 1, 2, connaissant px, py.

Identifions donc les deux termes:

px = l1c1 + l2c12py = l1s1 + l2s12Bien que ce manipulateur peut paratre trs simple, ce nest pas du tout vident de rsoudre ces deux quations cause des termes trigonomtriques. Cest videmment ce qui pose souvent des problmes lorsquon fait la gomtrique inverse. Heureusement cest souvent le mme genre dquations qui reviennent et en faisant quelques exemples, on finit par reconnatre des situations semblables. Dailleurs dans la table suivante, on donne certaines astuces pour rsoudre des quations trigonomtriques. Ici on utilise le cas 3. On a alors

En sommant les deux expressions, on trouve:

On trouve alors

Pour trouver 1, on doit dcomposer chacun des termes

On peut isoler s1, c1. On trouve

Do finalement

Remarque:

On doit faire trs attention lorsquon utilise des fonctions trigonomtriques inverses car ces fonctions sont `a valeur multiple. En effet, si on value tan(45) et tan(225) on aura 1 dans les 2 cas. Donc si on calcule tan1 1, on devrait avoir un ou lautre mais en ralit, une calculatrice et un ordinateur va toujours donner 45. En ralit, pour savoir dans quel quadrant on se trouve ,on doit regarder la fois le signe du sin et le signe du cos et non pas simplement le rapport entre les deux. A partir de l, on trouve le bon angle. Si on fait un programme dordinateur et quon utilise un langage dordinateur qui possde que la fonction tangente inverse, on devra crire une procdure pour cela. La plupart des langages volus comme C et Matlab possdent dj ces fonctions, appeles atan 2 dans leur librairies. Il est donc toujours prfrable dutiliser cette fonction si possible plutt que les autres. Dans lexemple prcdent, on valuait 2 en faisant un cosinus inverse car on navait pas le choix. Encore l, i l faut faire attention car il y a deux valeurs possibles. Ainsi, si on a acos(0.5), on pourra avoir 60 ou 60. Il faudra garder les deux et vrifier ensuite si les deux sont acceptables ou non. Dans lexemple prcdent les deux valeurs sont acceptables. On a ce quon appelle une redondance

Connaissant maintenant les variables joints, si on veut on doit en dduire les variables moteurs. La plupart du temps chaque moteur est associ `a un seul joint. Le moteur peut tre coupl au joint directement ou par lintermdiaire dun rducteur ou par des courroies. Dans tous ces cas la relation est assez simple, ce sera simplement un changement dchelle quon peut crire par

(2.13)x1 reprsente un changement dunits. Supposons, par exemple, quentre le moteur et laxe du joint, on ait un rducteur 10:1, que 1 est en radians et quun tour de moteur correspond 4000 pulses. On a alors

Finalement y1 est simplement un changement dorigine. En pratique, lorsquon fait une mise zro dun moteur, on le fait tourner jusquau moment o`u il passe devant un capteur de fin de courses, souvent un capteur de proximit et on remet alors son encodeur zro. Or ce zro ne correspond pas ncessairement 1 = 0. On ajuste alors le zro laide de y1. Toutes ces valeurs sont trouves par calibration. Evidemment lorsquon utilise un robot dj fait, on na pas soccuper de ces particularits.

Equations trigonomtriques utiles pour la solution de la gomtrique inverse

cas: 1 Si on a

s = fc = galors = atan2 (f, g)

cas: 2 Si on a

a c + b s = dOn divise par les coefficients devant le cos et le sin peuvent tre considrs comme tant les composantes dun vecteur unitaire formant un angle . En posant

, on trouve

On en dduit cas: 3 Si on a une paire dquations du type

a c1 + b c12 = fa s1 + b s12 = gon met au carr chaque quation et on additionne pour obtenir

Do on trouve 2. Connaissant 2, on remplace dans c12 et s12 et on retrouve le cas 3 cas: 4 Si on a une paire dquations du type

a s12 + b c12 + d c1 = f-a c12 + b s12 + d s1 = gon met au carr chaque quation et on additionne pour obtenir

l s2 + mc2 = het on trouve 2 en faisant comme le cas 2.

cas: 5 Si on a une paire dquations du type

a1s1 + b1c1 = d1a2s1 + b2c1 = d2On rsoud le systme linaire et on trouve

1 = atan2 (d1b2 d2b1, a1d2 a2d1)

Exemple 3.5Faisons comme 2me exemple la gomtrique inverse du robot de lexemple 3.2. La matrice de transformation est donne par

On a encore ici que deux degrs de libert. On ne peut donc imposer que deux grandeurs physiques. On peut par exemple imposer la position px et py. On a alors

px = l2c2c1py = l2c2s1On trouve alors facilement que

1 = atan2 (py, px)

Pour trouver 2, une fois quon connait 1, cest trs simple. Par exemple on pourrait simplement crire:

Il faudrait cependant faire attention car si 1 = 90, on aura une division par zro. On peut toujours faire un test mais il est prfrable de faire de la faon suivante:

Bien quil soit possible de trouver un angle laide dun sinus inverse ou cosinus inverse, il est toujours prfrable, si on peut dutiliser la tangente inverse. Cest beaucoup plus prcis. Ainsi dans notre exemple, si on pouvait fixer pz, il serait prfrable de trouver galement le sinus de la faon suivante:

s2 = (pz d1)/l22 = atan2 (pz d1, pxc1 + pys1)

Par contre ici on ne peut pas et il faut utiliser le sinus inverse.Dans ce dernier exemple, ce manipulateur trs simple excute une trajectoire circulaire. Ce nest pas trs logique dimposer une position en x et y comme on vient de le faire car on na aucune ide quel z on sera. Il est plus logique dimposer les deux coordonnes sphriques. Ainsi si on a

x = r sin cosy = r sin sinz = r cos on trouve directement

1 = (angle dazimuth)

2 = 90 (angle de znith)

Encore une fois, dans la plupart des livres, lorsquon traite de la gomtrique inverse, on sarrte l, cest--dire en trouvant la relation entre les variables cartsiennes et les variables joints. Cependant en pratique, ce sont des moteurs quon commande, et il faut, partir de la connaissance des variables de joints (ici 1, 2), trouver les variables moteurs. Dans lexemple prcdent, on a vu que lorsquun moteur tait directement coupl `a un joint, la relation tait linaire et tr`es simple. Par contre ce nest pas toujours le cas. Prenons par exemple le robot de notre exemple. Sur la figure, la forme est trs schmatise, mais une faon pratique de raliser le deuxime joint serait possiblement davoir un arrangement tel quillustr sur la figure suivante: On remarque que la rotation du joint 2 nest pas ralise directement un moteur coupl sur le joint mais via une vis. La relation entre la variable joint et la variable moteur est alors un peu plus complexe.

Fig 2.14Premirement il faut trouver le lien entre langle de joint et la longueur de la vis. Ceci se fait par la loi des cosinus:

L2 = A2 + B2 2AB cos(90 + 2)

Connaissant, L, la longueur de la vis, la relation entre le boteur et la position de lcrou est relativement simple, elle ne dpend que du pas de vis. On trouve une relation linaire similaire `a (2.14).

M2 = x2L + y2o le facteur dchelle x2, est simplement le nombre de pulses de moteur par tour fois le pas de vis en mtres par tour. y2 sert ajuster lorigine.

Exemple 3.6Faisons la gomtrique inverse de lexemple 3.3. La matrice de transformation tait donne par:

On a ici trois degrs de libert. On peut donc imposer 3 grandeurs. On ne peut cependant pas imposer une valeur de pz car cette grandeur est fixe. On peut donc soit imposer deux positions px, py et une orientation ou encore une position et deux orientations (, , car = 0) . Si on impose px, py, ,on aura:

1 = atan2(-px, py)

d2 = pyc1 - pxs13 = Exemple 3.7Terminons les exemples de gomtrique avec un vrai robot. Le robot ASEA se trouvant au laboratoire. Commenons par mettre le robot une position initiale et plaons les systmes daxes.

Fig.2.15Les paramtres de Denavit-Hartenberg sont:

On en dduit les matrices de transformation:

Fig.2.16

On effectue ensuite les multiplications en vrifiant si les rsultats ont du sens.

Gomtrique inverse

Si on veut faire le contrleur de ce robot, on doit connatre la relation entre les moteurs et les positions cherches. Pour trouver ces relations, on pose la matrice de transformation gale la matrice voulue

A partir de px, py on trouve

1 = atan2 (py, px) (2.14)

On a aussi

(2.15)

On peut rcrire lquation de px et pz de la faon suivante:

Posons

On a alors

En prenant le carr de chacune de ces expressions on obtient

(2.16) (2.17)

A partir de (2.18),(2.17),(2.16) on trouve

(2.18)

Finalement on a que si c234 0,

(2.19)

Dans le cas contraire, on a

Do

(2.20)

Z0

Y0

X0

Z

Y

X

EMBED Equation.3

EMBED Equation.3

y

R

x

B

xb

zb

yb

z

li

PAGE 28

_1349603988.unknown

_1350215372.unknown

_1380535284.unknown

_1380536036.unknown

_1380535607.unknown

_1359104352.unknown

_1349607789.unknown

_1349607986.unknown

_1349530052.unknown

_1349530854.unknown

_1349530672.unknown

_1349530041.unknown