UNIVERSITE DE MONTRÉAL TRAITEMENT … · 3 INTRODUCTION Avec les systèmes modernes...

49
1 UNIVERSITE DE MONTRÉAL TRAITEMENT OPTIMAL DE LA REDONDANCE DANS LES POST- PROCESSEURS DES MACHINES-OUTILS SAREGHI FARNOUSH DÉPARTEMENT DE GÉNIE MÉCANIQUE ÉCOLE POLYTECHNIQUE DE MONTRÉAL MÉMOIRE PRÉSENTÉ EN VUE DE L’OBTENTION DU DIPLÔME DE MAITRISE EN INGÉNIERIE (GÉNIE MÉCANIQUE)

Transcript of UNIVERSITE DE MONTRÉAL TRAITEMENT … · 3 INTRODUCTION Avec les systèmes modernes...

1

UNIVERSITE DE MONTRÉAL

TRAITEMENT OPTIMAL DE LA REDONDANCE DANS LES POST-

PROCESSEURS DES MACHINES-OUTILS

SAREGHI FARNOUSH

DÉPARTEMENT DE GÉNIE MÉCANIQUE

ÉCOLE POLYTECHNIQUE DE MONTRÉAL

MÉMOIRE PRÉSENTÉ EN VUE DE L’OBTENTION

DU DIPLÔME DE MAITRISE EN INGÉNIERIE

(GÉNIE MÉCANIQUE)

2

UNIVERSITE DE MONTRÉAL

ÉCOLE POLYTECHNIQUE DE MONTRÉAL

Ce mémoire intitulé :

TRAITEMENT OPTIMAL DE LA REDONDANCE DANS LES POST-

PROCESSEURS DES MACHINES-OUTILS

Présenté par : Sareghi Farnoush

En vue de l’obtention du diplôme de : Maîtrise en ingénierie

3

INTRODUCTION

Avec les systèmes modernes d’ingénierie assistée par ordinateur (IAO),

l’usinage d’une pièce est généralement obtenu en trois étapes. D’abord, la

géométrie est modélisée à l’aide d’un logiciel de conception assistée par

ordinateur (CAO). Ensuite, le parcours de l’outil est défini de façon soit

interactive, soit automatique, avec un logiciel de fabrication assistée par

ordinateur (FAO). Ce dernier permet d’ajouter des informations

technologiques d’usinage aux informations géométriques de parcours de

l’outil, afin de créer un fichier de position de l’outil, appelé fichier *.CL

« cutter-location file ». Enfin, ce fichier doit passer par le post-processeur de

la machine-outil devant servir à usiner la pièce, afin d’être traduit en un

programme d’usinage, connu sous le nom de fichier code G (G-code). La

figure 1 schématise les différentes étapes permettant d’obtenir un

programme d’usinage (fichier G).

CAO FAO.dwg

.CLPost-processeur

.G Machine - outil

Figure 1: Processus de création d’un programme d’usinage

4

Comme le standard ISO 3592 le spécifie, le fichier CL contient deux types

d’informations :

ü Des mots post-processeur, qui n’ont rien à voir avec le mouvement

de l’outil et qui sont donc directement transmis dans le code G.

ü Les positions et orientations d’outil par rapport à la pièce, qui

nécessitent des transformations par le post-processeur avant d’être

codées dans le fichier de codes G.

Ces transformations requièrent généralement la connaissance de la longueur

de l’outil par rapport au plan de jauge de la broche et/ou, la position de la

pièce par rapport au référentiel attaché à la table de la machine pour résoudre

le modèle géométrique inverse et transférer les informations sur la position

et l’orientation de l’outil (espace opérationnel), en coordonnées articulaires

de la machine (espace articulaire). La figure 2 montre la transformation de

l’espace opérationnel à l’espace articulaire par le modèle géométrique

inverse (MGI) et vice versa par le modèle géométrique direct (MGD).

Notons que le modèle géométrique direct des machines-outils (qui sont en

général des chaînes cinématiques sérielles) donne un système d’équations

Espace

articulaire

B Y Z X C

Espace

opérationnel

MG

MGD

5

linéaires et donc est facile à résoudre. Par contre le modèle géométrique

inverse donne un système modal, non linéaire et beaucoup plus difficile à

résoudre.

Ce mémoire présente une méthode d’optimisation pour traiter les situations

de redondance pouvant apparaître lors d’usinages, réalisés à l’aide de la

machine-outil 5-axes Générique (B, Y, Z, X, C). La figure 3 présente la

machine-outil sur laquelle l’étude a été réalisée.

Dans la plupart des post-processeurs de ce genre de machines-outils, on

considère les trois axes de translations consécutifs. Ce qui signifie que le

modèle géométrique de ces machines est complètement découplé et que la

partie orientation peut être résolue de façon indépendante de la partie

position. Bien qu’il existe des machines dont l’architecture soit différente et

que le modèle géométrique inverse ne se simplifie pas autant, il faut garder à

Figure 3: La machine 5-axes générique

6

l’idée que le modèle décrit plus haut représente un nombre très important de

machines-outils présentes sur le marché.

Par ailleurs, il faut noter que ce modèle ne permet pas de voir à l’avance si

les limites articulaires seront dépassées ou non. Dans ce cas le programmeur

de la commande numérique (NC), ne peut pas prédire si le parcours de

l’outil est réalisable ou non. Il est de loin préférable d’avoir une stratégie qui

permet d’éviter les limites articulaires, et ce dès le début de la résolution du

modèle géométrique inverse afin d’obtenir un parcours réalisable. Cette

spécification peut devenir possible si la dimension de l’espace opérationnel

est inférieure à celle de l’espace articulaire. Ce qui signifie que le nombre de

degrés de liberté nécessaires pour accomplir le travail est inférieur au

nombre de degrés de liberté de la machine.

Cette redondance apparaît dans plusieurs situations d’usinage. Ici, nous

avons choisi le cas où l’outil demeure parallèle à un des axes de rotation, soit

l’axe C pour la machine générique, tout le long de la trajectoire. Dans ce cas,

la rotation de l’axe C ne change en rien l’orientation de l’outil par rapport à

la pièce. Par contre, la rotation de cet axe a une incidence directe sur les

translations de l’outil par rapport à la pièce dans le plan perpendiculaire à

l’axe de rotation. Bien que le parcours que l’on désire réaliser puisse l’être

réalisé à l’aide des trois translations, nous allons voir comment on peut

améliorer la faisabilité articulaire de l’usinage, et ainsi augmenter l’espace

de travail en mettant à contribution le degré de liberté redondant, soit la

rotation de l’axe parallèle à l’axe de l’outil.

7

CHAPITRE I

DÉFINITION DU PROBLÈME

1.1 Introduction

La redondance peut être présente dans plusieurs situations d’usinage.

Comme on l’a déjà mentionné, ces situations se présentent lorsque le

nombre de degrés de liberté de la machine-outil dépasse celui nécessaire à

l’accomplissement de la tâche. En robotique, il est possible d’illustrer cette

situation avec un bras manipulateur de plus de trois articulations qui exécute

des mouvements planaires et en usinage, lorsqu’on usine un plan à l’aide

d’une machine 5-axes.

Dans le cadre de ce travail, nous avons décidé d’illustrer cette redondance avec l’usinage

d’une poche d’une grandeur supérieure aux limites articulaires en X et Y de la machine.

La figure 1.1, illustre les limites articulaires représentées par un cadre blanc, ainsi que la

poche à usiner.

Figure 1.0.1 : Limites articulaires de la machine générique

8

Il est certain que l’on peut réaliser cet usinage à l’aide des trois translations soient X, Y

et Z. Pour autant il n’est pas réellement désirable d’avoir à usiner cette poche en plusieurs

passes, puisque cela engendre inévitablement des erreurs de tolérances au niveau de la

planéité, ainsi que le fini de surface laissera à désirer.

Il apparaît clairement à la figure 1.2 qu’il n’est pas possible d’usiner entièrement la poche

avec seulement les trois axes en translations X, Y et Z, sans dépasser les limites

articulaires. Ainsi, les coins 1 et 2 sont atteints sans trop de problème (voir figure 1.2 a) et

b)), alors que les coins 3 et 4 sont nettement en dehors des limites articulaires (c et d).

Figure 1.0.2 : Usinage à l’aide des trois axes de translation seulement

On remarque alors la nécessité d’ajouter un autre axe de façon à augmenter l’espace de

travail et pouvoir ainsi atteindre notre but. Ceci veut dire aussi l’ajout de nouvelles

spécifications pour justement tenir compte de la redondance créée.

a) Coin 1

b) Coin 2

c) Coin 3

d) Coin 4

9

Pour pouvoir générer le code d’usinage (G-CODE), le post-processeur doit solutionner le

modèle géométrique inverse, et ainsi calculer les déplacements et vitesses de chaque

articulation, afin d’atteindre les positions et orientations d’outil désirées. Le post-

processeur devrait aussi permettre à l’usager de prévoir et éviter les situations de

dépassement articulaire avant de générer le code G. Dans notre cas, la résolution de la

redondance va s’appliquer au niveau des vitesses, puisque à ce niveau le système

d’équation est linéaire. Les vitesses articulaires sont reliées aux vitesses de déplacement

de l’outil par rapport à la pièce, par la relation :

où J est la matrice jacobienne de la machine-outil, .

p le vecteur de vitesse de

déplacement de l’outil par rapport à la pièce et .

θ le vecteur de vitesses articulaires.

Étant donné que notre système est redondant par rapport à la tâche à

accomplir, cela donne un système sous-déterminé. Donc, une infinité de

solutions existe pour résoudre ce système. Il s’agit alors d’en trouver une qui

corresponde le mieux à la tâche qui doit être réalisée.

1.2 Revue de la littérature

Les robots redondants ont été le sujet de nombreuses études depuis plusieurs

années. Il faut signaler que leurs particularités permettent de réaliser des

parcours plus sophistiqués que les méthodes qui ne bénéficient pas des

degrés de liberté supplémentaires. La plupart des travaux se situent au

niveau de la simulation, et on trouve peu de cas où la résolution de la

redondance soit réellement implantée dans un contrôleur. Cela est encore

plus vrai au niveau des machines-outils. Étant donné que la théorie est

,pθJ..

= (1.1)

10

quasiment la même pour les deux domaines, nous allons nous servir de la

littérature existante au niveau des robots.

On peut mentionner de nombreuses solutions pour ce problème que ce soit

au niveau des vitesses articulaires et des déplacements articulaires. Yaşhi et

Özgören (1984) ont proposé des solutions en utilisant le déplacement

minimal des articulations comme critère d’optimisation, avec les

multiplicateurs de Lagrange, et ont linéarisé les équations de déplacements,

alors que Ballieul (1985) proposait une forme étendue de la matrice

jacobienne. Angeles, Anderson et Gosselin (1987) ont résolu un système de

déplacements articulaires, problème non linéaire en introduisant un

algorithme de décomposition orthogonale. Ils décomposaient ainsi la

solution en deux composantes orthogonales, une qui est projetée dans

l’espace nulle de la matrice et l’autre sur l’espace orthogonale à celle-ci.

Angeles et Mathur (1989) ont résolu le problème de la géométrie inverse

pour des vitesses articulaires et la solution présentait un mouvement

cyclique.

Récemment, on tente de résoudre ce problème en utilisant des réseaux de

neurones. Wu et Wang (1994) ont proposé un réseau qui permet d’éliminer

les notions d’apprentissage. Par ailleurs, Ramdane-Cherif, Perdereau et

Drouin (1995,1996) en utilisant des réseaux de neurones qui utilisent de

façon automatique, l’expérience des fois précédantes pour améliorer les

performances futures. Schemmler (1996) a proposé la division du problème

en deux. D’une part, rechercher la position désirée et d’autre part, rechercher

le parcours optimal pour atteindre l’objectif. Ces problèmes seraient résolus

en parallèle.

11

La plupart des méthodes utilisent l’inverse généralisé de la jacobienne. Nous

allons voir dans ce qui suit, ces méthodes plus en détail.

1.2.1 Méthodes utilisant l’inverse généralisé

L’inverse généralisé est décrit en détail au chapitre III, ici nous rappelons

brièvement son rôle et sa forme. En résolvant l’équation (1.1), on obtient :

avec :

où J+ représente l’inverse généralisé de J et h est la tâche secondaire. Si la

tâche secondaire est nulle, on arrive à une solution dont la norme est

minimale, mais Klein et Huang (1983) ont montré que cette solution peut

mener à des mouvements non cycliques. Différentes valeurs de h mènent à

différentes performances. En générale, selon la méthode de résolution,

l’équation (1.1) peut donner des solutions exactes (analytiques) ou

approximatives (numériques).

1.2.1.1 Méthodes exactes

Les méthodes permettant d’accéder à la solution exacte sont à leur tour

divisées en deux catégories distinctes. Il y a des méthodes qui sont

localement ou globalement exactes. Les méthodes locales, sont basées sur

l’équation (1.2). Il s’agit de déterminer la performance souhaitée de laquelle

la tâche secondaire est dérivée. Les solutions répondent donc à des besoins

instantanés. Cela résulte du fait que la longueur de la trajectoire cartésienne

( )hJJ1pJθ..

++ −+= (1.2)

( ) 1TT JJJJ −+ = (1.3)

12

accomplie à chaque instant n’est pas égale, et donc les mouvements ne sont

pas cycliques. Ces méthodes peuvent être utilisées pour la programmation en

temps réel du robot. Par contre les méthodes globales donnent des solutions

répondant à un besoin de performance pour la tâche dans son ensemble. Ces

solutions doivent être implantées dans des programmes pré-compilés.

Regardons d’abord les méthodes locales.

Liégeois(1977) a proposé de minimiser l’indice scalaire de performance

dépendant de la position p(θ) et prendre son gradient comme tâche

secondaire :

où k est une constante arbitraire. Liégeois a introduit un p qui évite les

limites articulaires :

où :

est la valeur moyenne des déplacements articulaires.

Yoshikawa (1984) a proposé d’éviter les singularités, en minimisant une

mesure μ qu’il a appelé « la manipulabilité »,

T

n21 θp

θp

θpk

θpkh ⎥

⎤⎢⎣

⎡∂∂

∂∂

∂∂=

∂∂=

(1.4)

∑=

⎟⎟⎠

⎞⎜⎜⎝

⎛−

−=n

1i

2

maxi

moyi

moyii

θθθθ

n1p (1.5)

( )2

θθθmaxi

minimoy

i+= (1.6)

(1.7)

13

Il a aussi introduit un indice de performance pour éviter les obstacles, qui

est :

Où H est une matrice diagonale, et θr est une position articulaire de

référence.

Maciejewski et Klein (1985) ont aussi résolu la redondance pour éviter des

obstacles. Ils ont appelé le point du manipulateur étant le plus proche de

l’obstacle «obstacle-avoidance point» (point d’évitement de l’obstacle). Ils

ont alors résolu l’équation qui permet d’éviter l’obstacle,

où Jo et o

.p sont respectivement la matrice jacobienne et le vecteur de

vitesses de déplacements, pour le point d’évitement de l’obstacle. La

solution est alors obtenue à partir de l’équation (1.2). On a comme tâche

secondaire :

Pour obtenir le résultat, on remplace h par sa valeur dans l’équation (1.2) et

en utilisant les propriétés des inverses généralisées, on obtient la forme

simplifiée :

( )TJJdetμ =

( ) ( )rT

r θθHθθ21p −−= (1.8)

o

..

o pθJ = (1.9)

( )[ ] ⎟⎠⎞

⎜⎝⎛ −−= +++

.

oo

.

o pJJpJJ1Jh(1.10)

(1.11)

14

Klein (1985) à son tour a résolu la redondance pour obtenir une dextérité

maximale. Il a suggéré de prendre une mesure de performance μ, qui soit la

plus petite valeur singulière de la jacobienne, puisque cette valeur définit

souvent les singularités. Alors μr peut être utilisée comme vitesse articulaire

maximale, tel que :

Toutefois, un problème est soulevé car la norme du vecteur des vitesses

cartésiennes peut être physiquement compliquée à définir.

L’indice de manipulabilité de Yoshikawa a été souvent utilisé, car comme

Nakamura et Hanafusa (1986) l’ont soulevé, il peut être vu comme une

distance jusqu’aux points singuliers. Golub et Van Loan (1989) ont dit que

le déterminant ne peut pas dire dans quelle mesure une matrice est proche de

la singularité, c’est plutôt le conditionnement qui donne cette mesure. Le

conditionnement est suggéré par Kosuge et Furuta (1985) de prendre le

conditionnement de la jacobienne comme une « mesure de contrôle ».

Angeles et Rojas (1987) ont aussi proposé de prendre un indice de

performance qui minimise le conditionnement de la jacobienne.

Klein et Blaho (1987) ont comparé plusieurs mesures de performances, dont

la manipulabilité de Yoshikawa, le conditionnement de la jacobienne, la

disponibilité des vitesses articluaires qui ressemble à la mesure des limites

( )[ ] ⎟⎠⎞

⎜⎝⎛ −−+= ++++

.

oo

.

o

..pJJpJJ1JpJθ

.

r

.p

μ1θ =

(1.12)

15

articulaires de Liégeois et la plus petite valeur singulière de la jacobienne. Ils

ont comparé ces mesures avec une mesure de minmax introduit par Klein et

Huang(1983).

1.2.1.2 Méthodes approximatives

Hanafusa, Yoshikawa et Nakamura (1981) ont divisé une tâche en plusieurs

sous-tâches, et ont donné des priorités à chaque sous-tâche. Ils tiennent

compte de ces sous-tâches dans le modèle géométrique inverse. Ensuite

chaque sous-tâche est résolue, en utilisant le degré de liberté supplémentaire

laissé par la résolution précédante. La solution est obtenue en utilisant

l’inverse généralisé de la jacobienne.

Les méthodes des moindres carrés amorties introduisent un facteur

d’amortissement ρ à la solution, ce qui donne :

où :

Nakamura et Honofusa (1986) ont appelé l’inverse utilisé dans l’équation

(1.14), « SR-inverse » (singularity-robust inverse). Ils ont proposé d’ajuster

le facteur d’amortissement de façon automatique, améliorant ainsi la

performance du manipulateur dans les régions de singularités. Ils procèdent

.

τ

.pJθ += (1.13)

( ) 1TTτ ρIJJJJ

−+ += (1.14)

⎪⎩

⎪⎨⎧ <⎟

⎠⎞⎜

⎝⎛ −=

onsin0

μμ siμμ1ρρ o

2

oo (1.15)

16

comme suit :

Où μ a été défini dans l’équation (1.7), ρo est une constante qui définit le

facteur d’échelle à la singularité et μo est un seuil qui représente la frontière

voisine des points singuliers.

Kelmar et Khosla (1990) ont introduit une méthode basée sur SR-inverse

introduit par Nakamura et Honofusa (1986), mais au lieu de déterminer le

seuil μo et tester si μ < μo , ils ont proposé de calculer le rapport des μ entre

deux itérations. L’idée était basée sur le principe que le rapport chuterait de

façon rapide lorsqu’on se rapprocherait de la singularité. Ils ont alors

suggéré le facteur d’amortissement suivant :

où μo est un seuil, qu’ils ont trouvé expérimentalement égale à 0.1 pour un

manipulateur à 7 degrés de libertés.

1.2.2 Méthodes utilisant l’inverse généralisé pondéré

L’inverse généralisé pondéré s’exprime comme suit :

Et W est une matrice pondération.

( )⎪⎩

⎪⎨⎧ <−

=++

onsin0

μμμ siμμ1ρρ

oi1ii1io

(1.16)

.

w

.pJθ += (1.17)

( ) 1T1T1w JJWJWJ −−−+ = (1.18)

17

Whitney (1969) a appliqué des priorités à travers une matrice de

pondération. Konstantinov, Markov et Nenchev (1981) ont introduit une

méthode qui évite les dépassements articulaires. Park, Chung et Youm

(1996) ont utilisé l’inverse généralisé pondéré et ont introduit la pondération

non seulement dans l’inverse généralisé, mais en plus dans la jacobienne et

les vitesses articulaires. En faisant cela, ils ont résolu l’équation impliquant

la jacobienne pondérée et les vitesses articulaires pondérées.

Cette étude bibliographique nous a donné une vue globale sur les différentes

méthodes existantes, permettant la résolution de l’équation (1.1). Nous

avons choisi de résoudre cette équation à l’aide de la méthode utilisée par

Arenson et Angeles. Cette méthode est largement décrite et expliquée dans

les chapitres suivants, en particulier aux chapitres IV et V.

.

W

.

W pθJ = (1.19)

18

CHAPITRE II

MODÈLE GÉOMÉTRIQUE

2.1 Modèle géométrique direct (MGD)

2.1.1 Données du projet

La machine-outil générique a été imaginée afin de démontrer un certain nombre de

résultats obtenus par la résolution des problèmes de redondances de son post-processeur.

Cette machine-outils à commandes numériques compte 5 axes (B, Y, Z, X, C). La figure

2.1 présente la machine-outils, ainsi que ses mouvements articulaires. Le repère global

(fixe) est situé au-dessus du plateau (au centre). Il nous permet de définir les différents

déplacements articulaires. Ainsi, nous pouvons constater que X est une translation le long

de l’axe x mais dans le sens contraire des x positifs, Y et Z sont des translations le long

des axes y et z respectivement, C est une rotation autour de l’axe z (règle de la main

droite) et B est une rotation autour de l’axe y’ qui est parallèle à l’axe y.

Figure 2.1 : Architecture de la machine-outil générique

19

Dans le cadre de notre étude, on pose comme hypothèse que la rotation B est nulle. Cette

hypothèse est faite sans perte de généralité, puisque la redondance traitée dans ce

mémoire se présente lorsque l’axe de l’outil est parallèle à l’axe de rotation C, ce qui est

obtenu lorsque B = 0º ou 180º Les tâches exécutées pourraient l’être à l’aide de

seulement trois degrés de liberté, mais elles vont être exécutées à l’aide de 4 axes de

façon à avoir un axe redondant. Ce chapitre présente en détail les différentes étapes de

construction du simulateur. Les différentes articulations ont pour amplitudes respectives :

• En X : 600 mm (-300 à 300)

• En Y : 300 mm (-450 à -150)

• En Z : 1000 mm (0 à 1000)

• En C : infini (0º à 360º) 2.1.2 Modèles géométriques

Le modèle géométrique direct (MGD) nous permet d’obtenir la pose du référentiel fixé

au centre du bout demi-sphérique de la fraise (pose = position + orientation), par rapport

au référentiel fixé à la pièce, et cela à partir des différentes positions articulaires.

Le référentiel P (pièce) est rattaché au centre du plateau et est positionné et orienté départ

de la même façon que le référentiel global (illustré sur la figure 2.1). Le référentiel O

(outil) est rattaché au centre du bout demi-sphérique de la fraise, son axe z pointant vers

le haut de la broche et ses axes x et y sont orientés dans le même sens que les axes x et y

de P.

La figure 2.2 présente la chaîne cinématique de la machine générique ainsi que les

différentes matrices de transformations qui permettent de passer d’un référentiel à un

autre. La figure 2.3 schématise les référentiels rattachés à chaque articulation. Notons que OTP représente les transformations qui permettent de passer du référentiel P (pièce) au

référentiel O (outil), OTG et PTG représentent les transformations qui permettent de passer

du référentiel global G au référentiel outil O et au référentiel pièce P respectivement.

20

Tout corps immobile le long de la chaîne cinématique est considéré comme étant de la

base.

Afin de résoudre le problème du MGD, on utilise les matrices homogènes. Cet outil

mathématique est assez utilisé dans le domaine de la robotique. Il s’agit de combiner les

différents mouvements de la machine par rapport au référentiel global, à savoir :

• Translation le long de l’axe x (sens négatif) d’une valeur X (valeur articulaire)

• Translation le long de l’axe y (sens positif) d’une valeur Y (valeur articulaire)

• Translation le long de l’axe z (sens positif) d’une valeur Z (valeur articulaire)

• Rotation autour de l’axe z (sens anti-horaire) d’une valeur C (valeur articulaire)

Figure 2.2 : Chaîne cinématique de la fraiseuse générique

Y

ZG

X

C

P

O

OTGPTG

OTP

21

Chaque transformée homogène JTI exprime la position et l’orientation du référentiel J par

rapport au référentiel I. En accord avec la figure 2.3 , on peut fermer la chaîne

cinématique de la façon suivante :

⎪⎩

⎪⎨⎧

=

=

TTTTTT

OO

OG

OG

21

1G

PG

1

1 (2.1)

Figure 2.3 : Référentiels de la fraiseuse générique

Partie du haut : Référentiel Pièce par rapport à la base

Partie du bas: Référentiel attaché à l’outil par rapport à la base

(i) représente la séquence des transformations

(1) Ty(Y)

(2) Tz(Z-L)

(2) Tz(C)

(1) Tx(X)

C

X

Z-L

Y

xG

zG yG

xO1

zO1 yO1

22

ce qui donne alors :

[ ] TTT TTT OG

GP

OP

OG

1PG

OP =⇒= −

(2.2)

avec :

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=

1000

0100

0010

X001

T 1G

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

⎡ −

=

1000

0100

00CS

00SC

TCC

CC

P1

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

−=

1000

LZ100

Y010

0001

T 1OG

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

−=

1000

0C0S

0010

0S0C

TBB

BB

OO1 (2.3)

où :

CC = cos C , CB = cos B , SC = sin C , SB = sin B.

Évidemment la matrice de rotation de B n’apparaîtra pas, puisqu’elle est égale à la

matrice identité (B = 0º ⇒ CB = 1, SB =0). La longueur L représente la longueur de

l’outil, c’est à dire la distance entre le plan de jauge et le bout de l’outil, et a une

influence très importante.

23

2.2 Le simulateur Xanimate Afin de visualiser les déplacements des axes de la machine générique, nous avons réalisé

un simulateur graphique avec les librairies Xanimate. Il faut rappeler que notre machine-

outil est imaginaire, bien que reflétant une certaine réalité. Ce simulateur est un outil

simple et efficace afin d’illustrer notre méthode, puisqu’il traduit les résultats de

résolution du MGD en mouvements.

2.2.1 La construction à partir des primitives

On définit le repère global G comme étant placé au centre du plateau tournant (au-

dessus). La figure 2.4 montre la position et l’orientation du référentiel global, ainsi que

tous les objets constituant la machine-outil générique.

Figure 2.4 : Primitives constituant la machine-outil Générique

24

On regarde alors comment vont se placer les autres objets par rapport au repère global:

ü Plateau tournant : (rotation C autour de ZG centré sur le plateau circulaire)

C’est un cylindre/disque de 1000 mm de diamètre et de 100 mm d’épaisseur. Le repère de

cet objet est placé au centre de la face supérieur et est donc confondu avec le repère

global lorsque les articulations X et C sont nulles.

ü Table glissante : (translation X le long de -xG)

C’est une boîte de 1000x1000x200mm dont le repère fixé en son centre est situé à

(0,0,-100) dans le repère global, lorsque X est nul.

ü Bâti horizontal : (immobile)

C’est une boîte de 2000x1000x200mm dont le repère fixé en son centre est en tout temps

situé à (0,0,-300) dans le repère global.

Afin de faciliter les calculs, nous supposons que le repère attaché au bout de la colonne,

est centré au repère global, lorsque les articulations X, Y et Z sont nulles.

ü Porte-outil : (rotation B autour de y’ (// yG) et translation Y et Z le long de yG et zG)

C’est un cylindre de 100 mm de diamètre et de 100 mm de hauteur. Le repère attaché au

centre de la face inférieure du cylindre est confondu avec le repère global, lorsque les

articulations X, Y et Z sont nulles. La rotation B est supposée nulle.

ü L’outil : (les mouvements du porte-outil et une rotation continuelle autour de zO)

Cette pièce est composé d’une tête demi-sphérique et d’une partie cylindrique. Le repère

attaché à l’outil est confondu avec celui attaché au porte-outil. Les dimensions de l’outil

peuvent être variables. Le sens de la rotation de l’outil importe peu dans le contexte de ce

simulateur.

ü Le pivot : (rotation B autour de y’ (// yG) et translation Y et Z le long de yG et zG)

C’est une boîte de dimensions 300x300x300mm. C’est à cette pièce qu’est attaché le

porte-outil. Le repère de cette pièce est situé sur le centre de la face de dessous et est situé

à (0,0,100) mm dans le repère global lorsque Z et B sont nuls. Cette pièce est à la tête de

la colonne.

ü La colonne : (translation Y et Z le long de yG et zG )

25

C’est une boîte de dimensions 300x600x300mm. Le repère de cette pièce est situé sur le

centre de la face de dessous de la boîte et est à (0,-450,100) mm du repère global. Cette

pièce est le lien entre la partie outil et le bâti vertical.

ü Le bâti vertical : (immobile)

C’est une boîte de dimensions 300x300x2200mm. Le repère de cette pièce est situé sur le

centre de la face de dessous et est situé à (150,-450,100)mm dans le repère global.

Certaines suppositions sont là pour faciliter la construction. Pour simuler les mouvements

de la machine, il faudra déplacer certains objets vers une position de départ. En fait la

seule partie qui doit changer de place, est la colonne et les objets qui s’y attachent (porte-

outil, outil).

2.2.2 Simulations

Une fois le simulateur au point, il faut alors le tester pour voir s’il respecte un certain

nombre de critères fixées au départ. Pour cela il faut ajouter un bout de code pour faire de

l’interpolation linéaire. Ceci donne alors une animation linéaire continue et non saccadé.

Pour l’interpolation, on va avoir besoin de calculer le vecteur position de l’outil par

rapport à la pièce. En prenant l’équation (2.2), en utilisant les transformées homogènes

décrites à l’équation (2.3) et en supposant la rotation nulle autour de B, on obtient après

calcul et simplification :

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

+−

=

1000

LZ100

XSYC0CS

XCYS0SC

CCCC

CCCC

OPT (2.4)

donc on peut en déduire que l’orientation de l’outil est toujours le même que l’axe zG, et

le vecteur position de l’outil par rapport à la pièce devient :

26

⎥⎥⎥⎥

⎢⎢⎢⎢

+

=

LZ

XSYC

XCYS

p CC

CC

(2.5)

En dérivant par rapport au temps l’équation (2.5), on calcule la matrice jacobienne J en connaissant la relation :

⎩⎨⎧

∂∂≡= θpJ

.θ,J

.p (2.6)

où θ =[X,Y,Z,C]T, et :

⎥⎥⎥⎥

⎢⎢⎢⎢

+−

+−

=

0100

XCYS0CS

XSYC0SC

J CCCC

CCCC

(2.7)

2.2.3 Pièce usinée

Pour notre étude, le choix de la pièce à usiner s’arrête sur un bloc massif dans lequel on

désire usiner une poche carrée.

27

Figure 2.5 : Limites articulaires

Pour notre pièce, nous avons les valeurs suivantes :

⎪⎩

⎪⎨

=+===

mmdmmdmmd

83.540450300450150

223

2

1

(2.8)

la simulation doit illustrer les deux cas suivants :

1) 21 drd ≤<

2) 32 drd ≤<

Où r =D/2 (D :diagonal du carré à usiner).

Lors de la première situation l’usinage peut être complété même si l’articulation X reste

immobile pendant l’usinage. Par contre, X ne peut rester immobile pendant l’usinage

pour le deuxième cas. L’outil ne pourrait atteindre tous les points du parcours.

On pourrait prendre par exemple r =300 mm et r = 500 mm. Notons que les axes x et y

présents sur la figure 2.5, sont ceux du référentiel global.

La pièce est une construction à partir de cinq boîtes de la façon suivante :

ü Blocbase : (les mêmes mouvements que le plateau)

Ce boîte de 800 x 800 x 100, a son repère attaché au milieu de sa face de dessous et

confondu avec le repère global lorsque les articulations X et C sont nulles.

ü Bloc1 : (les mêmes mouvements que le plateau)

Ce boîte de 50 x 800 x 100, a son repère attaché au milieu de sa face de dessous et est

décalé de (-375,0,100) par rapport au repère global lorsque les articulations X et C sont

nulles.

ü Bloc2 : (les mêmes mouvements que le plateau)

Ce boîte de 700 x 50 x 100, a son repère attaché au milieu de sa face de dessous et est

décalé de (0,375,100) par rapport au repère global lorsque les articulations X et C sont

nulles.

ü Bloc3 : (les mêmes mouvements que le plateau)

28

Ce boîte de 50 x 800 x 100, a son repère attaché au milieu de sa face de dessous et est

décalé de (375,0,100) par rapport au repère global lorsque les articulations X et C sont

nulles.

ü Bloc4 : (les mêmes mouvements que le plateau)

Ce boîte de 700 x 50 x 100, a son repère attaché au milieu de sa face de dessous et est

décalé de (0,-375,100) par rapport au repère global lorsque les articulations X et C sont

nulles.

Afin de faciliter la visualisation, plusieurs objets ont été mis en place. Parmi ceux-là, on

peut énumérer les axes xP, yP, zP, ainsi que les limites articulaires supérieures et

inférieures de X et Y. Ces objets sont des boîtes attachés à la pièce et ont donc les mêmes

mouvements.

Une fois que le simulateur graphique est mis en place le travail consiste à mettre au point

le module de résolution numérique de la redondance. Comme cela a déjà été mentionné,

ce module numérique est construit à l’aide de Matlab. Pour la mise au point de ce dernier,

il est nécessaire de connaître les différentes notions algébriques qui doivent être utilisées.

Le prochain chapitre présente une description de ces différentes notions.

29

CHAPITRE III

CRITÈRE D’OPTIMISATION

Dans ce chapitre, nous allons voir les définitions et les démonstrations algébriques des

principales méthodes utilisées à travers ce projet. Ainsi, nous verrons ce qu’est l’inverse

généralisé de la matrice jacobienne, la tâche secondaire choisie, la transformation de

Householder pour rendre la matrice jacobienne triangulaire supérieure, et enfin le

conditionnement de la jacobienne qui permet d’évaluer la stabilité d’une méthode par

rapport à une autre.

3.1 L’inverse généralisé

L’inverse généralisé est utilisé pour résoudre un système d’équations linéaires de type

Ax= b, où A∈Rm×n, m ≠ n, et A une matrice qui ne soit pas nécessairement de plein

rang. La matrice unique qui représente le plus souvent l’inverse généralisé de A est

appelé G et est défini comme suit :

Où le H donne le transposé du conjugué complexe de la matrice. Ainsi, si A est réel, on

aura alors AH = AT. Si A est carrée et inversible, alors on a G = A – 1. Dans le cas où

m ≠ n, deux types d’inverses généralisés apparaissent. L’inverse généralisé de gauche est

utilisé pour les cas où m > n, tendis que l’inverse généralisé de droite est utilisé quand

m < n. Dans le cas des robots ou des machines-outils redondantes, m sera toujours

inférieur à n.

( )( ) GAGA4.G2.GAG

AGAG3.A1.AGAH

H

==== (1.2)

30

Quand m > n, le système est alors sur-déterminé. Dans ce cas il n’y a pas de solution au

problème, car il y a plus d’équations que d’inconnus. Toutefois, l’inverse généralisé de

gauche,

peut être utilisée pour donner la solution aux moindres carrées du système Ax = b,

solution qui minimise la norme de l’erreur ||Ax - b||2 . La solution est alors :

Quand m < n, le système est sous-déterminé, ce qui signifie qu’il y a plus d’inconnus que

d’équations. Ce genre de système admet une infinité de solutions. Dans ce cas, l’inverse

généralisée de droite,

Donne la solution

Où h est un vecteur arbitraire. Si h = 0, la solution minimise ||x||2 . On l’appelle alors

la solution de norme minimale. On peut énumérer quelques propriétés de l’inverse

généralisé :

Où 1 est la matrice identité (n × n) et 0 est la matrice de zéros(m × n).

( ) T1T AAAA −+ ≡ (3.2)

( ) bAAAbAx T1T −+ == (3.3)

( ) 1TT AAAA −+ ≡ (3.4)

( )hAA1bAx ++ −+= (3.5)

( )( )( )

( ) ( )AA1AA1AA1AA1AA1

0AAA1

+++

+++

++

−=−−=−−

=−(3.6)

31

3.2 La tâche secondaire

La partie de droite de l’équation (3.5) représente la solution homogène du système, ayant

la matrice (1 – A+A) comme étant le complément orthogonal de A, qui projète le

vecteur h sur l’espace nulle de A. Si on choisit différentes valeurs pour le vecteur h, on

aura différentes solutions pour x. En fait, cette partie représente les mouvements des

différentes articulations, sans pour autant entraîner un déplacement de la position de

l'outil par rapport à la pièce. On appelle ce genre de déplacement le mouvement propre.

Dans le cadre de notre application, on aimerait pouvoir usiner une poche de certaine

grandeur, et ce de façon continue. Vu les limites articulaires de la machine, il sera

difficile d’atteindre cet objectif sans les outrepasser. À cet effet, nous introduisons des

pondérations (poids) qui nous permettent d’éviter ce que l’on pourrait appeler les

« solutions violentes » (en dehors des limites articulaires).

Notre système d’équation à résoudre exprime la relation entre les vitesses articulaires et

les vitesses dans l’espace opérationnelle. Il s’écrit alors :

Où J est la matrice jacobienne. À ce niveau les équations sont linéaires. La solution de ce

système est :

On appellera h « Tâche secondaire », et elle est choisie par le gradient de z, z étant une

fonction objective à optimiser.

..pθJ = (3.7)

( )hJJ1pJθ..

++ −+= (3.8)

⎟⎠⎞

⎜⎝⎛ −⎟

⎠⎞

⎜⎝⎛=

−θθWWθ-θ2

1z TT_

(3.9)

32

Où W est la matrice de pondération définie positive et −θ sont les valeurs moyennes des

limites articulaires.

Ici, on n’a pas besoin de tenir compte de l’orientation puisqu’on l’a considéré comme

étant fixe et parallèle à l’axe des zG.

Cette fonction objective permettra au centre du bout demi-sphérique de la fraise de rester

sur la trajectoire désirée, tout en maintenant les valeurs articulaires le plus proche

possible des valeurs moyennes. Il suffit maintenant d’établir les valeurs de pondération

de façon satisfaisante, et à l’aide des valeurs articulaires moyennes calculer le vecteur

comme suit :

3.3 La transformation de Householder

Le calcul de l’inverse généralisé est assez coûteux et entraîne un certain nombre d’erreurs

dues aux arrondies. On va voir comment on va contourner ce problème en se servant des

transformations de Householder. Cette méthode permet de transformer une matrice

( )( )⎪⎩

⎪⎨⎧

+=

=

minmax

_Czyx

θθ21θ

w,w,w,wdiagW(3.10)

⎪⎪⎪⎪

⎪⎪⎪⎪

⎟⎠⎞

⎜⎝⎛ −

⎟⎠⎞

⎜⎝⎛ −

⎟⎠⎞

⎜⎝⎛ −

⎟⎠⎞

⎜⎝⎛ −

=

4

_

4C

3

_

3z

2

_

2y

1

_

1x

θθw

θθw

θθw

θθw

h (3.11)

33

quelconque en une triangulaire supérieure tout en préservant ses propriétés. Il s’agit

d’une matrice symétrique P (n × n) qui projète orthogonalement n’import quel vecteur x

De dimension n sur un plan normal à un vecteur u, avec :

L’objectif consiste alors à trouver u qui va nous donner la matrice P telle que :

En premier lieu, on calcule ρ en faisant :

Ensuite,

On prend u tel que :

Puis,

Donc,

Tτuu1P −= (3.12)

[ ]T1 0...00ρρePx == (3.13)

( ) ( ) 2TTTT2

2ρxxPxPxPxPxPx ==== (3.14)

2xρ ±= (3.15)

1uuxu2 T

T

= (3.16)

1T

T

ρeuxuuxu2uxPx =−=−= (3.17)

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡ −

=−=

⎥⎥⎥⎥

⎢⎢⎢⎢

=

n

2

1

1

n

2

1

x

xρx

ρex

u

uu

u (3.18)

34

Où ρ est défini par l’équation (3.15) et son signe est choisi de façon à éviter d’avoir

(x1 -ρ) = 0.

On peut présenter l’algorithme comme suit :

Jusqu’ici, on s’est intéressé à produire P pour fonctionner avec des vecteurs. Pour

transformer des matrices, il faut trouver une succession de multiplication par des matrices

P, jusqu’à trouver la forme désirée (chaque multiplication agit sur une seule colonne).

Pour une matrice A (m × n) où m > n, l’opération sur la première colonne donne :

À présent la matrice P’2 va agir sur A2 :

( )( )

( )( ) ( )

⎪⎪⎪⎪

⎪⎪⎪⎪

−=⎪⎩

⎪⎨⎧

−==

−==

−= ∑ =

T1

T

1

11

21n

1i2i1

τuu1P

sinon,ρu1

uu2

0ρusi,0ρxu

xuxxsignρ

(3.19)

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

⎡ ×××

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

×××

×××××××××

=

0

A00ρ

0

00ρ

AP 2

11

1

(3.20)

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡ ××

⎥⎥⎥⎥

⎢⎢⎢⎢

××

××××

=

0A

0

AP3

22

2'2 (3.21)

35

où :

On a alors le résultat intermédiaire suivant :

On constate le début de la triangularisation dans les premières colonnes. Le processus va

continuer jusqu’à ce qu’on arrive au résultat suivant :

On peut aussi noter de façon plus compacte :

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=

0

P00

0001

P '22

(3.22)

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

××

×××××××

=

00

00ρ0

ρ

APP2

1

12 (3.23)

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

××××××

=−

0000

0000ρ000

ρ00ρ0

ρ

APPPPm

3

2

1

121mm(3.24)

⎥⎦

⎤⎢⎣

⎡=

0U

HA (3.25)

36

Où H est une matrice orthogonale (HTH = I), puisqu’elle représente le produit de

plusieurs matrices orthogonales.

Nous verrons dans les prochains chapitres comment on utilise les transformations de

Householder pour résoudre un système linéaire sous-déterminée.

3.4 Le conditionnement

Nous avons vu auparavant, deux méthodes souvent utilisées pour résoudre des systèmes

d’équations linéaires. Il s’agit alors d’avoir des outils qui permettent de décider laquelle

de ces méthodes est la plus efficace pour faire le travail. Parmi ces outils, on peut citer le

conditionnement. Ce nombre quantifie en quelque sorte la sensibilité d’un système vis à

vis les erreurs d’arrondies. Il mesure donc la part d’instabilité que ces erreurs peuvent

engendrer lors de la résolution des systèmes linéaires.

Selon Golub et Van Loan (1989), le conditionnement d’une matrice carrée A s’exprime

par :

Dans le cas de notre problème la jacobienne n’est pas une matrice carrée, le

conditionnement s’exprime alors par :

où J+ est la pseudo-inverse ou l’inverse généralisé de droite, comme on l’a déjà vu

auparavant.

Comme on peut le constater, le conditionnement dépend de la norme d’une matrice. Donc

on peut exprimer le conditionnement dépendant de la norme 2 comme étant :

121mm PPPPH −=

(3.26)

( ) 1AAAκ −= (3.27)

( ) += JJAκ (3.28)

37

Où σmax et σmin représentent, respectivement, la plus grande et la plus petite valeur

singulière de J et aussi à la racine carrée de la plus grande te la plus petite valeur propre

de JJT.

Si on désire exprimer le conditionnement à l’aide de la norme de Froebenius, ce nombre

devient :

Où la valeur de m dépend de la dimension de l’espace de travail. On a m=3 s’il s’agit

uniquement des contraintes de position et m=6 si en plus de la position, il y a des

contraintes d’orientation.. Toutefois m peut prendre d’autres valeurs.

Il existe aussi d’autres façons de calculer le conditionnement. Il s’agit de voir à quel point

le calcul est coûteux au niveau de temps de calcul et ressources utilisées.

( )

J3(e)5..2(e)5.9)nt (Z(pT− ( T ) T j ω 1 6 3 0 5 4 7 0 0 ω 1 6 3 0 5 4 2 4 − 1 1 2 6 7 . 7 . 6 6 T c = . 3(e)5..3(e)5.0)nt

38

CHAPITRE V

APPLICATION ET RÉSULTATS

5.1 Usinage d'une poche (Pocket milling) Comme nous l'avons mentionné au Chapitre I, nous avons choisi d'usiner une poche à

travers un grand bloc, afin de pouvoir illustrer les théories développées à travers ce

mémoire. Les dimensions de la poche doivent dépasser les limites articulaires de la

machine en X et Y. Nous pouvons exprimer les équations caractérisant le contour dans le

repère pièce comme :

⎪⎪⎩

⎪⎪⎨

−−

dωtd

ddωt

x

⎪⎪⎩

⎪⎪⎨

−−

ωtdd

dωtd

y

où d représente la moitié d'un des cotés de la poche qui est carrée. La valeur 4T

représente la durée totale du trajet, alors que la vitesse ω est définie comme suit : .

T2dω ≡

Il est évident que l’usinage de cette poche peut se faire de plusieurs manières. Dans la

partie qui suit, nous allons voir deux façons d’usiner, d’abord en utilisant seulement trois

axes de translations et ensuite, en utilisant les trois translations avec un axe de rotation

redondant.

0 ≤ t ≤ T

T ≤ t ≤ 2T

2T ≤ t ≤ 3T

3T ≤ t ≤ 4T

0 ≤ t ≤ T

T ≤ t ≤ 2T

2T ≤ t ≤ 3T

3T ≤ t ≤ 4T

(5.1)

(5.2)

(5.3)

39

5.2 Usinage avec 3 axes de translations Nous avons voulu réaliser cet usinage pour bien démontrer les divers problèmes qui

surgissent lorsque l’espace de travail en translation n’est pas assez grand pour faire tout le

parcours en une seule passe.

Il existait plusieurs possibilités pour réaliser cet usinage. Pour en choisir une, il a fallu

consulter des personnes ayant une expérience dans la programmation des machines outils

à commande numérique. La figure 5.1 illustre comment la poche est réalisée, et la

description en détail est :

• la pièce est tournée de 45 degrés (étape 1);

• l’outil se déplace jusqu’au milieu d’une arête du carré, et commence à usiner

(étape 2);

• l’outil se dirige vers le coin tout en continuant à usiner (étape3);

• l’outil usine l’arête adjacente jusqu’au milieu (étape 4);

• l’outil remonte puis la pièce est tournée de 90 degrés (étape 5);

• on répète trois fois les quatre étapes précédentes.

Il est vrai que la figure ne présente pas l’usinage en entier, mais elle est assez

représentative de l’ensemble du parcours.

Évidemment ce type d’usinage comporte un certain nombre d’inconvénients. En effet, les

tolérances (comme celles de planéité ou de parallélisme) sont assez difficiles à respecter

le long des arêtes, car elles ne sont pas usinées de façon continue. Il en va de même pour

les finis de surface, qui laisseraient aussi à désirer. Comme considérations secondaires,

on peut citer le temps d’opération nécessaire à l’opérateur et à la machine pour réaliser ce

genre d’usinage.

40

a) Étape 1

b) Étape 2

c) Etape3

d) Étape 4

e) Étape 5

f) Étape 6

Figure 5.1 : usinage d'un coin de la poche

42

5.3 Usinage avec un axe redondant

Afin de réaliser cet usinage nous devons résoudre un problème algébrique. En effet,

nous désirons atteindre des points sur un plan dans l’espace cartésien en utilisant

trois articulations. Cela revient à résoudre un système de trois équations à deux

inconnus. Ce système étant sous-déterminé, il existe une infinité de solution pour le

résoudre. Afin de résoudre ce système d’équation, nous allons procéder avec la

méthode d’orthogonalization de Householder. La théorie attachée à cette méthode a

été traitée au chapitre III.

5.3.1 Algorithme de résolution Nous allons voir ici l’algorithme implémenté au niveau du post-processeur, ainsi

qu’une description des différentes étapes. Cet algorithme est basé sur la théorie du

« Resolved-Motion Rate » de Whitney (1969). On discrétise le parcours à réaliser en

un certain nombre de segments, qu’on essaie de parcourir consécutivement. L’outil

doit demeurer parallèle à l’axe zG de la machine-outil, donc on n’a pas besoin de

s’occuper des problèmes d’orientation le long du parcours. Notons Pf représente la

position finale de l’outil, θo représente les valeurs initiales des articulations et J est

la matrice jacobienne de la machine-outils.

• Initialisation des valeurs :

θo = valeurs articulaires initiales

Pf = position finale de l’outil (cartésienne)

• Pour ( i = 0 ; i < s ; avec un pas de 1) Faire :

Á P = f (θ);

Á ΔP = ( )PPis

1f −

−; incrémentation de la position

Á h =∇ z (θ i);

Á r = ΔP – Jh;

43

Á {H, U} = orthogonalization de JT; ( avec H JT= ⎥⎦

⎤⎢⎣

⎡OU

)

Á UTy1 = r y1;

Á y =[ y1T 0T]T;

Á Δθ =HTy+ h;

Á θ i+1=θ i+ρΔθ ; ρ = 0.8 (facteur d’amortissement)

Grâce à cet algorithme, nous sommes capables de suivre la trajectoire voulue, en

calculant à chaque petit déplacement, les différentes positions articulaires.

5.3.2 Simulations et discussions

Cet algorithme a été programmé à l’aide de Matlab (le code source se trouve à

l’annexe A) et les résultats (variations articulaires) sont représentés sur les figures

5.2, 5.3, 5.4 et 5.5, où nous avons des courbes des mouvements articulaires sorties

de Matlab, et surtout sur la figure 5.7 où nous avons une séquence complète

d’usinage. Nous allons d’abord discuter des variations articulaires et ensuite nous

intéresser à la séquence d’usinage.

44

0 2 4 6 8 10 120

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

temps(s)

depl

acem

ent a

rticu

laire

Z(m

)

Figure 5.2 : Déplacements de l’articulation Z Comme nous pouvons le constater sur la figure (5.2), l’articulation Z qui représente

les mouvements verticaux de l’outil, descend à un rythme régulier et linéaire jusqu’à

atteindre la position désirée pour entamer l’usinage. La position de l’outil est

conservée tout au long de l’usinage, puis Z retrouve sa valeur initiale en suivant une

droite.

45

0 2 4 6 8 10 12-0.45

-0.4

-0.35

-0.3

-0.25

-0.2

-0.15

-0.1

temps(s)

depl

acem

ent a

rticu

laire

Y(m

)

Figure 5.3 : Déplacements de l’articulation Y

Il est plus intéressant de regarder les déplacements des articulations Y (figure 5.3) et

X(figure 5.4). Ces articulations bougent en suivant des mouvements pseudo-

sinusoïdaux. Ils déterminent la façon dont la machine bouge le plateau et le porte-

outil de façon à ce que l’outil se déplace entre les différents points du trajet et

complète ainsi l’usinage. Les limites articulaires des articulations X et Y sont

illustrées à l’aide des courbes tiretées. Ces courbes nous permettent de voir que si

l’outil arrive très proche de la limite à un endroit, celle-ci n’est jamais dépassée.

Pour X, les limites sont bien respectées.

46

0 2 4 6 8 10 12-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

temps(s)

depl

acem

ent a

rticu

laire

X(m

)

Figure 5.4 : les déplacements de l’articulation X

La figure 5.5 présente les variations de l’articulation C. Cette articulation détermine

la vitesse de rotation de l’outil par rapport à la pièce. Nous pouvons constater que

cette vitesse est constante.

0 2 4 6 8 10 12-7

-6

-5

-4

-3

-2

-1

0

temps(s)

depl

acem

ent a

rticu

laire

C(ra

d)

Figure 5.5 : les déplacements de l’articulation C

47

Cela peut apparaître quelque peu irréaliste de conserver une vitesse constante tout le

long du parcours, car il nécessiterait des accélérations très grandes de l’articulation

C dans coins. Ce sera un aspect intéressant pour les études futures. Il est à noter que

le conditionnement varie entre 1 et 1.12 (maximum atteint au niveau des coins), ce

qui montre que le système est plutôt stable.

0 2 4 6 8 10 121

1.02

1.04

1.06

1.08

1.1

1.12

temps(s)

cond

ition

nem

ent d

e la

jaco

bien

ne J

Figure 5.6 : Variations du conditionnement de J Le résultat est assez éloquent quand on regarde la séquence d’usinage, présentée à la

figure 5.7. On constate que les déplacements de l‘articulation X, viennent compenser

en quelque sorte ceux de l’articulation en Y, ce qui pour effet que l’outil ne sort

jamais des limites permises. L’usinage est réalisé de façon continue, sans rencontrer

d’obstacle physique. La méthode utilisée nous a fourni une solution numérique qui

satisfait les critères fixés pour ce travail, à savoir usiner une poche de certaine

grandeur, en faisant intervenir les 4 articulations X, Y, Z et C et ce en restant dans

les limites physiques de ces articulations.

48

Cet usinage, de par sa continuité de trajectoire, permet de respecter des

tolérancements géométriques plus serrés et donne un meilleur fini de surface, en

comparaison avec l’usinage proposé au début du chapitre.

49

RÉFÉRENCES

Baron, L., Mayer, R., Arghavani, J. and Fortin C., 1995, “Literature Review of the Kinematic Theories Pertaining to NC Post-Processors”, CDT Research Con-tract No. P1981, Ecole Polytechnique, 75 pages. Baron, L., 1999, “An Optimal Surfacing Post-Processor Module for 5-Axes CNC Milling Machines”, Third Int. Conference on Industrial Automation, Montréal, Canada, pp. 23.17—23.23. Yashi, 0.S. and Ozgoren, K., 1984, “Minimal Joint Motion Optimization of Manip-ulators with Extra degrees of freedom”, Mechanism and Machine Theory, Vol. 19, No. 3, pp. 325—330. Angeles, J., Anderson, K. and Gosselin, C., 1987, “An Orthogonal-Decomposition Algorithm for Constrained Least-Square Optimization”, ASME Robotics, Mech-anisms, and Machine Systems, Design Eng. Division, Vol. 2, pp. 215—220. Ballieul, J., 1985, “Kinematic Programming Alternatives for Redundant Ma-nipulators”, IEEE Int. Conference on Robotics and Automation, pp. 723—730. Siciliano, B., 1992, “Solving Manipulator Redundancy with the Augmented Task Space Method Using the Constraint Jacobian Transpose”, IEEE Int. Conference on Robotics and Automation, Tutorial Ml, pp. 5-1—5-8. Arenson, N., Angeles, J. and Slutski, L., 1998, “Redundancy-Resolution Algorithms for Isotropic Robots”, Advances in Robot Kinematics: Analysis and Control, Kluwer Academic Publishers, Dordrecht, pp. 425—434. Whitney, D.E., 1969, “Resolved motion rate control of manipulators and human prostheses”, IEEE Trans. Man-Machine Syst., Vol. 10, No. 2, pp. 47—53.

Angeles, J., 1988, “Rational Kinematics”, Springer—Verlag, New York.

Angeles, J., 1997, “Fundamentals of Robotic Mechanical Systems, Theory, Methods

and Algorithms”, Springer—Verlag, New York. Arenson, N., 1998, “Real Time Redundancy-Resolution Schemes For Manipulators”, McGill University. pp. 5—26.