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 :
où
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ρ
0
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.
Top Related