Vous êtes sur la page 1sur 28

Robot Kuka KR6/2

Prise en main

20 01 - 2003
Frdric PRIEUR
Benot Telle
1 AVERTISSEMENT.........................................................................................................................................3
1.1 SCURIT DES OPRATEURS PROTECTION DES MATRIELS.....................................................................3
2 / PRSENTATION GNRALE..................................................................................................................4
2.1 ARCHITECTURE MATRIELLE....................................................................................................................4
2.1.1 Le Robot............................................................................................................................................4
2.1.2 La baie de commande.......................................................................................................................4
2.1.3 Le KCP (Kuka Control Panel)..........................................................................................................5
2.2 LES MODES DE FONCTIONNEMENT.............................................................................................................6
2.3 GESTION EXCUTION DES PROGRAMMES...............................................................................................7
2.3.1 Environnement de travail logiciel.....................................................................................................7
2.3.2 Systme de fichiers............................................................................................................................7
2.3.3 Variables systmes............................................................................................................................7
2.4 SYSTMES DE COORDONNES - BASES......................................................................................................8
2.4.1 Mesurer une base..............................................................................................................................9
2.4.2 Mesurer un outil................................................................................................................................9
2.4.3 Zone de travail..................................................................................................................................9
3 CRATION DE PROGRAMMES................................................................................................................9
3.1 STRUCTURE DE DONNES........................................................................................................................10
3.1.1 Les types simples.............................................................................................................................10
3.1.2 Les tableaux....................................................................................................................................10
3.1.3 Les numrations............................................................................................................................10
3.1.4 Les structures..................................................................................................................................10
3.2 OUTILS DE PROGRAMMATION..................................................................................................................11
3.2.1 Oprateurs logiques et arithmtiques :...........................................................................................11
3.2.2 Oprateur gomtrique :.................................................................................................................11
3.3 LES SOUS PROGRAMMES ET LES FONCTIONS............................................................................................11
3.3.1 sous programme local.....................................................................................................................11
3.3.2 sous programme externe.................................................................................................................12
3.3.3 fonctions..........................................................................................................................................12
3.4 LES INTERRUPTIONS................................................................................................................................12
3.5 LES ENTRES / SORTIES............................................................................................................................13
3.6 CRATION, DITION ET SLECTION DE PROGRAMMES.............................................................................13
3.6.1 Modification de programme...........................................................................................................13
3.6.2 Folds...............................................................................................................................................14
4 CRATION DE TRAJECTOIRE...............................................................................................................14
4.1 APPRENTISSAGE DE POINTS.....................................................................................................................14
4.2 DPLACEMENTS.......................................................................................................................................14
4.2.1 Mode de dplacement :...................................................................................................................14
4.3 DPLACEMENT POINT POINT PTP.........................................................................................................14
4.3.1 Dplacement continus.....................................................................................................................15
4.3.2 Dplacements relatifs......................................................................................................................15
4.4 CONTRLE DORIENTATION.....................................................................................................................15
4.5 CHANGEMENT DE BASE OU DCALAGE DE BASE ?..................................................................................16
1 Avertissement
1.1 Scurit des oprateurs Protection des matriels
Le robot KUKA KR6 nest en aucun cas une maquette ou un outil de vulgarisation. Cest un
robot industriel puissant et rapide. Son utilisation exige une attention de tous les instants et le
respect strict de procdures de test et mise en scurit tant des matriels que des oprateurs.
Le droit lerreur nexiste pas dans un tel environnement. Le risque de blessure grave et de
casse matrielle majeure est rel.

Un essai pralable du cycle complet en mode Test1 est ABSOLUMENT


INDISPENSABLE avant tout lancement de squence en mode Auto
mme aprs une modification de programme a-priori bnigne.

Il est strictement exclu de rester dans lenceinte de la cellule en mode


Test2 et en mode auto .

Ne jamais manipuler le robot plusieurs : SEUL loprateur ayant en main


la commande KCP est autoris pntrer dans lenceinte et ce
UNIQUEMENT lors des essais et rglages EN MODE TEST1 .

TOUT MANQUEMENT A CES REGLES DE SECURITE SERA


IMMEDIATEMENT SANCTIONNE.
2 / Prsentation gnrale
2.1 Architecture Matrielle

2.1.1 Le Robot
Les robots de la srie KR sont des bras manipulateurs 6 axes nots A1 A6. KR 6 / 2 dsigne
un robot Kuka Robotic de 2eme gnration capable de travailler avec une masse utile de 6Kg.
La gamme KR3KR15 a une rptabilit infrieure 2/10eme mm.

Remarque :Notez la colinarit des axes A4 et A6 qui sera source de singularit dans la
commande sur certains des systmes de coordonnes.
2.1.2 La baie de commande
La baie KRC1 assure le contrle et lalimentation du robot. Elle est compose des lments
suivants (voir Figure 2) :
- Un PC Cleron 433Mhz, 64Mo de Ram, un disque dur de 15,3Go, Windows 95. Seules 2
partitions de 2Go chacune sont utilises par le systme. Lapplication logicielle Kuka est
gre par un module temps rel VxWin cadenc avec une priode dchantillonnage de 12ms.

- Une carte multifonction MFC qui gre les entres sorties du systme (16 entres, 16 + 4
sorties) et possde une liaison bus CAN.

- Une carte daxes DSEAT base de DSPs contrle les 6 axes moteurs asservis.

- Une carte RDW grant les rsolveurs de position daxes ainsi que les conversions A/N
(contrle des tempratures moteurs). Cette carte RDW est implante dans la base du robot lui-
mme.

La puissance est fournie par le module PM6-600 : Power Module 6axes 600V DC. Ce module
permet lalimentation du PC avec des drivations en 27V.

Baie
Synoptique de de commande
la cellule robotKRC1
:
Figure 2 Synoptique de la cellule robot KR6

2.1.3 Le KCP (Kuka Control Panel)

2.1.3.1 Face avant :


Cest linterface du PC prsent dans la baie. Il possde :
- 3 touches dhomme mort quivalentes dans leur fonction mais places de faon diffrentes
selon la saisie du KCP ;
- une souris six degrs de libert ;
- un commutateur pour slectionner le mode de fonctionnement du robot (Test1, Test2,
Automatique, automatique externe) ;
- un arrt durgence.

Face arrire :

Figure 3 Vue de la face arrire du KCP

3 touches homme mort et un start program doublant celle de faade lors dune
utilisation avec KCP en main .
2.2 Les modes de fonctionnement

2.2.1 Modes pupitre

Un commutateur situ en facade du KCP permet de placer le robot dans lun des quatre modes
possibles :

Fig 4 Slecteur
de mode Test1 : Le mode Test1 permet de tester les programmes, la vitesse est
plus
ncessaire
SEUL
LARRT
DURGENCE
permettra
dans ce mode
darrter
lexcution.

Automatique
externe :
dclenchemen
t par
lenvironneme
nt extrieur.
Ce dernier
mode ne sera
pas utilis
dans le cadre
des mini-
projets.
ATTENTION : TOUJOURS tester une programmation sous le mode Test1 avant de passer successivement
en Test2 puis enfin en Automatique. Ne jamais brler une tape mme quand une modification parat
bnigne.

2.2.2 Mode Oprateur et mode Expert


Deux modes de service existent sur le systme Kuka. Le mode oprateur , trs contraint
interdit toute intervention logicielle hormis la redfinition de points dj existant dans le
fichier .DAT du programme. Il est destin, comme son nom lindique tre utilis par
loprateur dans le cadre dune production et permet simplement de lancer et dinterrompre
des programmes crits par ailleurs par le programmateur attitr. Ce mode est le mode par
dfaut au lancement du systme.
Le mode Expert quand lui autorise laccs lensemble des fonctionnalits et
programmes du robot. Cest le mode que vous utiliserez dans le cadre du mini-projet en
saisissant le mode de passe KUKA . Ce mode sous-entend une matrise totale des
manuvres...

2.3 Gestion Excution des programmes


Les fichiers contenant les programmes sont de deux natures. Les premiers rsident dans la
mmoire RAM de lordinateur, ils sont accessibles et ditables en slectionnant
lenvironnement robot dans le menu Fichier. Les seconds sont stocks sur le disque dur, il
sagit des fichiers de configurations et des sauvegardes de la mmoire RAM. Ils peuvent tre
conservs sur un autre support (disquette ou rseau).

2.3.1 Environnement de travail logiciel


Il faut distinguer les deux modes de base que sont le mode dition et le mode
slection . Le mode dition permet comme son nom lindique de raliser la saisie ou la
modification dun fichier sans pouvoir lxcuter. Le mode slection permet lexcution
du programme et la saisie en ligne de certaines commandes de mouvement, commandes
logiques Ce mode ne permet en aucun cas dimplanter des tests conditionnels, des sauts de
programme ou toute autre insertion de code algorithmique. Dans un cas gnral, pour
modifier un fichier, il faudra quitter le mode slection ( abandon du programme ),
slectionner puis diter le fichier, insrer les modifications, quitter lditeur puis relancer la
slection du fichier concern. A noter que la compilation se fait automatiquement la
sauvegarde du fichier et gnrera ventuellement un fichier derreur nom.ERR .

2.3.2 Systme de fichiers


Les fichiers .SRC : ils contiennent les sources des programmes crits en langage KRL.

Les fichiers .DAT : ce sont les fichiers de donnes. Ils sont associs aux sources en portant le
mme nom. On y dclare les variables locales et les sous-programmes externes (contenus
dans un autre fichier src)

Les fichiers .SUB : il sagit de la tache de fond. Une application Kuka est compose de 2
taches qui fonctionnent en parallle. La premire excute le contenu des fichiers sources, cest
la tache principale, la seconde excute le contenu du fichier SPS.SUB en tache de fond. Il est
possible dditer ce fichier pour excuter des instructions ou des sous programmes (.SUB),
mais il ne doit pas sagir de mouvements ni de temporisations susceptibles daugmenter le
temps de cycle de la tache SUB (12ms).
$CONFIG.DAT : Il sagit dun fichier de donnes qui a la particularit dtre visible par tous
les programmes. On y dclare les variables et les fonctions globales. NE JAMAIS
INTERVENIR SUR CE FICHIER.

Les fichiers .ERR : Ces fichiers se crent automatiquement lapparition dune erreur. Pour
visualiser le commentaire associ a une erreur : Visualiser variables modifier , dans le
champ : nom de la variable inscrire : &numero_erreur (expl &3027).

2.3.3 Variables systmes


Les variables systmes sont au cur du systme de contrle du robot. On peut les lire et les
diter depuis le menu : visualiservariablesmodifier. Ces variables conditionnent le
fonctionnement du robot. il peut sagir de la base en cour, de loutil en cour, des mesures de
calibration, la position actuelle, le temps restant avant datteindre le point suivant, le pointeur
dexcution, les vitesses, les acclrations
La liste de lensemble de ces variables est prsente dans le manuel KUKA et certaines sont
introduites dans la suite de ce document.

2.4 Systmes de coordonnes - Bases


Lors de linstallation initiale du robot sur son site, les axes de celui-ci sont calibrs cest
dire placs dans une configuration relative dtermine par construction et dfinissant la
position home ainsi que la base world rfrence de toutes les autres bases. Cette
calibration est faite une fois pour toute et stocke en RAM sauvegarde. Elle na pas tre
modifie en fonctionnement normal.

Les bases de travail sont les diffrents repres associs au robot. Ils peuvent tre dfinis par
construction ou par lutilisateur lui-mme en fonction de ses besoins pour la gnration de
mouvements du robot.
Il y a trois sortes de base ou systmes de coordonnes:
- Systme de coordonnes articulaires : chaque axe est dplac
individuellement dans le sens positif ou ngatif.

- la base WORLD : elle est unique et protge en criture. Elle sert de


rfrence pour la dfinition de toutes les autres et se situe dans la base du
robot, le plan XY tant horizontal et laxe OX dirig dans la direction du
bras du robot quand il est en position home.

- les bases simples qui dfinissent des repres quelconques utiles au


programmeur. Elles servent effectuer des positionnements sans avoir
besoin de faire lapprentissage de points de passage, mais aussi des
dplacements relatifs dans ces systmes de coordonnes.

- Les bases lies aux diffrents outils que le robot peut manipuler. Dans une
mme application, le robot peut avoir changer doutil. Mme si ce nest pas
encore notre cas, il y aura toujours au moins un outil donc une base associe.
Elle est facultative mais elle savrera parfois trs utile ou au moins pratique
pour lapprentissage de points.
Intrt
Pour chaque application, on peut associer plusieurs bases pour faciliter la programmation et
mme parfois rduire le nombre dapprentissages de points de passage. Ici, le positionnement
initial du robot par rapport la cellule ne permet pas de se reprer facilement pour faire des
trajectoires dans lespace de travail. Il est donc judicieux dassocier une base (un repre
orthonorm) la cellule. Le choix du repre est totalement arbitraire et laiss au programmeur.
Il est souvent ncessaire de casser le poignet en passant en commande articulaire afin
dviter les singularits introduites par la colinarit des axes A4 et A6.

Figure 5 -Les diffrents systmes de coordonnes-

2.4.1 Mesurer une base


La mesure dune base est aussi est une tape essentielle. Elle permet de dfinir un espace de
travail en coordonnes cartsiennes. Dans le menu ServiceMesurerBase slectionnez la
mthode 0-3points. Il faut ensuite pointer lorigine de la base, un point de laxe OX+, et un
point du plan OXY+. Le robot reconstruit alors la base orthonorme associ a ces
informations.

Figure 6 -Mesure dune base par la mthode des trois points

2.4.2 Mesurer un outil


La mesure de loutil permet de dfinir la position et lorientation du repre li au centre
doutil dans le repre de la bride (terminaison du dernier axe).
La position du centre du nouveau repre est calcule par la mthode des 4 points :
ServicesOutilXYZ 4 Points. On place le centre doutil en un point avec 4 orientations
diffrentes, il est au centre de la sphre dcrite par les 4 positions du centre de la bride.
Pour dterminer lorientation 2 mthodes sont accessibles. Dans le menu :
ServicesoutilABC World on a le choix pour une mesure 5D ou 6D.
La mesure 5D permet de calibrer simplement un outil dont lorientation principale est dans un
des plans principaux de la bride. Il faut aligner laxe X du repre outil avec laxe Z de la base
World, les autres axes sont dduit du repre bride (composition de rotations).
La mesure 6D est utilis pour calibrer un outil quelconque. Il faut aligner laxe X de loutil
avec laxe Z de la base World, les axes Y et Z de loutil sont construit directement partir des
axes X et Y de la base World.

Lintrt dune base outil est de pouvoir raliser des trajectoires avec un contrle dincidence
de loutil (et donc de sa base) ; dans le cas dun soudage larc, un cordon peut ainsi tre
raliser sur un contour quelconque avec respect de la position et incidence relative entre pice
et outil.

On peut mmoriser jusqu' 16 outils, ils sont accessibles par les variables systmes : $TOOL
pour loutil en cours, $TOOL_DATA[i] pour loutil i.

2.4.3 Zone de travail


Il est possible de dfinir 8 zones de travail paralllpipdiques. On peut interdire loutil actif
daccder ou de sortir de ces zones. Les zones de travail sont dfinies dans le tableaux de
structure suivant :
$WORKSPACE[i=18]={X,Y,Z,A,B,C,X1,Y1,Z1}
ou (X,Y,Z) est la position du point de rfrence de la zone par rapport au repre World.
(A,B,C) est lorientation de la zone dans le repre World
X1,Y1,Z1 sont les dimensions de la zone de travail.
Pour dfinir une zone de travail, il faut remplir directement les champs de cette structure.
Cette solution est implante en dur dans le fichier de configuration de votre application
afin de limiter les risques de collision avec lenvironnement de la cellule.

3 Cration de programmes
Les programmes KUKA sont cods en langage KRL (Kuka Robotic Langage).

La structure dun programme source est la suivante :


DEF NomProgramme(Parametre1 :Type1, )

DECL type1 Var1,


DECL type2 Var2
. ;Dclaration des variables
.
.
INI ;sous programme par dfaut dinitialisation (vitesses, acclrations valeurs par
dfaut)
;initialisation des variables
PTP HOME ; initialisation de la position du robot
;
; corps du programme
;
PTP HOME ;retour du robot dans une position darrt
END ;fin du programme
Remarque : certaines parties du programme sont constitues en folds qui peuvent tre
visibles ou non. Par exemple INI est un sous-programme par dfaut constitu en ralit de
plusieurs lignes non-apparentes ici. De la mme faon, la ligne DEF NomProgramme peut
tre apparente ou non. Ces options de visibilits sont valides ou pas dans les menus de
lditeur.

3.1 Structure de donnes


Les structures de donnes supportes par KRL sont les types simples, les tableaux, les
numrations et les structures. Les variables associes ces types de donnes peuvent tre
dclares dans le fichier source, juste aprs la dfinition du programme, leur porte est locale
au programme. Si elles sont dclares dans le fichier de donnes elles ont une porte sur tout
le fichier source mais ne sont pas prioritaires par rapport aux variables locales. Si elles sont
dclares dans le fichier $CONFIG.DAT, elles sont globales, leur priorit est voir (mais na
pas grand intrt).

3.1.1 Les types simples


INT Entiers cods sur 32 bits -2-31<X<2-31
REAL Flottants cods sur 64 bits -3,4.10e-38<X<3,4.10e-38
BOOL Boolen cod sur 1 bit TRUE ou FALSE
CHAR Caractre cod sur 8 Bits Codage ASCII

3.1.2 Les tableaux


Les tableaux peuvent tre multidimensionnels et de nimporte quel type :
DECL Type NomTableau[dim1,dim2,]

3.1.3 Les numrations


Elles sont dfinies de la manire suivante :
ENUM NomEnumeration Valeur1, Valeur2, , ValeurN
La valeur de lnumration est alors #Valeur1, #valeur2

Exemple : une variable systme de type numration $MODE_OP indique le mode dans
lequel fonctionne le robot, il peut prendre les valeurs #T1, #T2, #AUT, #EX ou #INVALID

3.1.4 Les structures


Il est possible de construire ses propres structures.
La dfinition dune structure a la syntaxe suivante :

STRUC NomStructure Type1 Var1, Type2 Var2, , TypeN VarN


Laccs aux diffrents champs se fait de 2 manires possibles :
DECL NomStructure StrucVar
StrucVar.Var1 = Valeur1
StrucVar.Var2 = Valeur2
Ou
StrucVar = {Var1 Valeur1, Var2 Valeur2 } ; on nest pas oblig de remplir tous les
champs.
Il existe des structures prdfinies :
- La structure POS est composes de 6 rels et 2 entiers(x,y,z,a,b,c,s,t). Elle
dfinit une position et une orientation, et possde deux entiers (STATUS et
TURN) pour contrler la configuration des axes.
- La structure AXIS contient les valeurs angulaires des 6 axes du robot, elle est
compose de 6 rels (A1A6).
- La structure FRAME contient 6 rels, elle dfinit une position et une
orientation. Elle est utilise pour la dfinition des bases.

3.2 Outils de programmation


3.2.1 Oprateurs logiques et arithmtiques :
KRL possde lensemble des oprations logiques des langages de programmations
classiques. Il est possible de faire :
- les oprations numriques (+, -, /, * , ABS(), cos, sin, )
- les oprations boolennes (<>, >,<,==,NOT, OR )
- oprations sur bit (10 B_AND 9 = 8)
- les branchements (if then else, switch)
- les sauts (goto)
- les boucles (for, while, reapeat until)
- les temporisations (wait, wait for, la variable systme $TIMER)

On peut distinguer quelques oprations qui sont plus spcifiques un langage orient
robotique (automatique), ce sont les fonctions associes a des mouvements ou a des donnes
propres au robot.
exemple :les triggers permettent dexcuter un code conditionn par les dplacements du
robot (oprateur TRIGGER)
TRIGGER WHEN DISTANCE=1 DELAY= -5 DO action()
Excute action() 5ms avant datteindre le point suivant.

3.2.2 Oprateur gomtrique :


Il est figur en KRL par : et tablit un lien FRAME entre les types de donnes FRAME et
POS.
La liaison de deux FRAMEs correspond une transformation de systme de cordonnes (Cf
manuel Programmation Expert ). Vous verrez un exemple dutilisation de cet oprateur
dans le cadre des changements de base prsents plus loin dans le texte.

3.3 Les sous programmes et les fonctions


On dfinit un programme (ou sous-programme) grce au mot clef DEF. On en distingue de
deux types. Les sous-programmes locaux sont dans le mme fichier et la suite du
programme principal et les programmes externes situs dans un autre fichier source.
Les fonctions sont des sous-programmes qui renvoient une valeur.

3.3.1 Sous programme local


On peut crire jusqu' 255 programmes dans un fichier. Le premier est le programme
principal, il donne son nom au fichier, les autres sont les sous-programmes.
La dclaration est la suivante :
DEF SProg()

END
Le passage de paramtres se fait par les mots clefs IN et OUT. IN indique un paramtre pass
par valeur (le sous programme peut utiliser la valeur mais ne peut pas la modifier)

OUT indique que le paramtre est passer par rfrence (la valeur peut tre modifier).
Le type des paramtres doit tre dfini dans la partie des dclarations des variables du sous-
programme.
exemple:
DEF Main ()

SProg(p1, p2)
...
END

DEF SProg(Param1:IN, Param2:OUT )


INT Param1 ; param1 est un paramtre de type entier. Il est pass par valeur, aprs l'appel de
SProg p1 n'aura pas chang de valeur.
POS Param2 ;param2 est de type STUC POS, il est pass par rfrence, aprs l'appel de
SProg p2 peut avoir chang de valeur.

END

3.3.2 Sous programme externe


Un sous-programme externe peut tre appel par tous les autres programmes la condition
d'tre dclar dans leur fichier de donnes ou dans le fichier $CONFIG.DAT.
La dclaration a la syntaxe suivante :

EXT Prog(TypeParam1 :IN/OUT, TypeParam2 :IN/OUT, , TypeParamN :IN/OUT)

3.3.3 Fonctions
Les fonctions sont des sous-programmes capables de retourner une valeur, elles peuvent tre
inclues dans des expressions logiques (y=f(x)+t).
Leur structure est la suivante :

DEFFCT Type NomFonction(Param1 :IN/OUT, Param2 :IN/OUT,,ParamN :IN/OUT)


;dclaration des paramtres
Type1 Param1
Type2 Param2

TypeN ParamN

; Corps de la fonction

ENDFCT
Les dclarations des fonctions dans les fichiers de donnes ou dans les en-ttes de
programmes ont les mmes proprits que les sous programmes. La syntaxe est la suivante :
EXTFCT Type NomFonction (TypeParam1 :IN/OUT, , TypeParamN :IN/OUT)

3.4 Les Interruptions


Les interruptions sont les branchements du programme dclenchs par un vnement
asynchrone. On peut dclarer jusqu' 32 interruptions et en activer 16 simultanment. La
priode du cycle de surveillance est de 12ms.
Une interruption est successivement : dclare, active et arrte.
La dclaration se fait dans la partie Instruction du programme source avec la syntaxe
suivante :

INTERRUPT DECL priorit WHEN vnement DO sous-programme

Le numro de linterruption donne sa priorit. Linterruption 1 est la plus prioritaire.


0 < priorit < 40 et 80 < priorit < 129
Les priorits 40 80 sont utiliss par les triggers.

Lvnement est une variables boolenne (ou une expression simple) et linterruption est
dtecte sur un front. On dmarre la surveillance de lvnement par la commande :

INTERRUPT ON priorit
pour activer 1 interruption, ou
INTERRUPT ON
pour activer toutes les interruptions dclare (<17)

Lorsque le sous-programme associ une interruption a termin son excution, le programme


reprend lendroit ou est intervenue linterruption. Ce retour peut tre grer par certaines
variables systmes qui mmorisent ltat avant de partir dans le sous programme et
linstruction RESUME. (variables systmes : $POSBACK, $AXISBACK, $POSINT,
$AXISINT, $POS_RET, $AXIS_RET, $POSFOR, $AXISFOR).

NB : le tableaux de boolens $CYCFLAG[32] peut tre utile pour la gestion des interruptions
car il est rafrachit avec une priode 12ms.

3.5 Les entres / sorties


Ces entres-sorties vous seront utiles pour synchroniser vos programmes avec
lenvironnement externe par le biais de la mise 1 ou 0 dE/S que vous aurez affect tel ou
tel rle.

Le contrle des entres sorties seffectue par lintermdiaire des variables systme $IN et
$OUT. Ce sont des tableaux de boolens de dimension 1024.
Il est possible de regrouper des parties du tableau pour accder a des plages dentres/sorties.
$IN[i] peut prendre les valeurs TRUE ou FALSE, mais la plage $IN[ii+j] permet de coder
2j valeurs.
Le groupement se fait dans les variables de type SIGNAL :

SIGNAL plage $OUT[30] to $ OUT [34]


Il est possible denvoyer les valeurs 015 sur la sortie plage

La dclaration de ces variables suit les mmes rgles que les types classiques.
3.6 Cration, dition et slection de programmes
A la cration dun nouveau fichier, un .SRC ainsi quun .DAT seront automatiquement crs
lun pour le source, lautre pour les donnes spcifiques au programme. Lorsque lditeur est
ferm, le programme est compil et un ventuel fichier .ERR est gnr signalant les erreurs.
On ne pourra slectionner le programme correspondant que dans la mesure ou celui-ci na
plus derreur syntaxique.Lors du chargement du programme avec la touche Slection ,
tous les fichiers ncessaires sont lis par lditeur de liens et un contrle est effectu sur les
types de variables . Si une erreur est dtecte, un fichier .ERR est gnr tout comme lors
de la sortie de lditeur.
Remarque : lors de la cration dun nouveau programme, les lignes DEF nom, END sont
gnres automatiquement (mais elles peuvent tre invisibles selon loption daffichage
choisie), une squence INI ainsi que laccostage la position dorigine en dbut et fin de
programme sont crs.

3.6.1 Modification de programme


Deux possibilits :
- Correction de programme sous slection (PROKOR)
Les modifications ne peuvent porter que sur une ligne la fois.
Les structures de contrle (boucles) ou les dclarations de
variables sont donc exclues ;
- Sortie de slection (abandon) puis dition du programme sous lditeur
Ce code tant alors compil lors de la sortie de lditeur, toute
modification ou rajout sont possibles.

3.6.2 Folds
Les lignes apparaissant en gras sont des FOLD (dossiers) prdfinis qui ne peuvent tre dits
dans le dtail que dans le seul mode expert . Ces FOLDS rendent la lecture du programme
plus concise en permettant de cacher certains segments de source. On peut ainsi crer des
FOLDS grce aux instructions FOLD et ENDFOLD et masquer des parties de code aux non-
experts.

4 Cration de trajectoire
Les trajectoires sont les dplacements dun outil dans une base. Elles sont stockes dans les
fichiers SRC. La cration de ces fichiers seffectue depuis lexplorateur de programme du
KCP : nouveau programme standard. Selon le mode utilisateur qui est slectionn :
oprateur ou expert (configurationutilisateur), la cration de la trajectoire peut tre plus ou
moins complte. Le mode utilisateur permet dcrire le programme avec un panel
dinstructions simple mais limit : les FOLD. Le mode expert permet dditer ces FOLD et
donne accs a dautres fonctions ou options.
4.1 Apprentissage de points
Lapprentissage de point consiste placer loutil ou le robot dans une configuration et de
mmoriser cet tat. Ces points sont en gnral les points de passage ou de rfrence pour les
trajectoires.
Lapprentissage dun point est effectif lorsque le robot est dans la configuration souhaite et
que lon appui sur la touche ModePos du KCP.

4.2 Dplacements
Pour crer un dplacement: diter un document.SRC ;Instructiondplacement.

4.2.1 Mode de dplacement :


Point point (PTP) : cest le dplacement le plus rapide, on va dun point un autre de la
manire la plus simple pour le robot.
Linaire (LIN): permet de relier deux points de manire rectiligne.
Circulaire (CIRC): dcrit une trajectoire circulaire allant de la dernire position du robot
jusquau point de destination PD en passant par le point dappui PA. En mode expert, on peut
indiquer langle de larc de cercle (en degr) que lon souhaite dcrire partir du point de
dpart (PA et PD servent uniquement dfinir le cecle).
Exple : CIRC Pappui , Pdest , CA 180 : dcrira le demi-cercle dfinit par la position du robot,
le points Pappui et le point de destination Pdest.

4.3 Dplacement point point PTP


La commande PTP est la possibilit la plus rapide pour amener la pointe de loutil (CDO :
centre de loutil) dune position lautre. Les variables systme $VEL_AXIS[n daxe] et
$ACC_AXIS[n daxe] permettent de fixer vitesse et acclration propres laxe en
pourcentage par rapport aux 100% fixs par la vitesse machine. Les mouvements de diffrents
axes sont synchroniss pour tous dbuter et finir leur volution en mme temps. Laxe le plus
contraignant fixe la vitesse de tous les autres.
Ce mode de dplacement est le plus performant car tant toujours aux limites de performances
du robot sur laxe contraignant. Les couples obtenus sont toujours maximum en tous points de
la trajectoire.

DPLACEMENT COORDONNES PARTIELLES :


Si on omet certaines composantes dans lordre de mouvement, les positions des axes omis
seront conserves :

Ex : PTP {A3 45} induira un mouvement de A3 en sa position +45.


Attention : il sagit dune coordonne absolue et non relative : le mouvement relatif sera
obtenu par PTP_REL{A3 45}.

4.3.1 Dplacement continus


Lorsque loption CONT est dsactive, on dfinit un point darrt. La trajectoire y passe
exactement et sy arrte. On peut lisser les dplacements en activant cette option et les points
de passage ne sont plus des points darrts, ils sont le centre dune sphre dans laquelle
passera la trajectoire.
NB : Le lissage maximum seffectue au plus la moiti de la distance entre les deux points
lisss, voir la variable systme $APO.

PTP P1 La zone de lissage est un cercle


LIN P2 CONT dont le rayon maximum est
LIN P3 infrieur la moiti de la
distance des points voisins.
P1 P2

P3

Fig 7 Lissage continu du mouvement

4.3.2 Dplacements relatifs


Les fonctions PTP_REL, LIN_REL, CIRC_REL, permettent de deffectuer respectivement un
dplacement point point, linaire ou circulaire en coordonnes relatives.
PTP_REL {X 100} dplace le centre outil de 100 mm dans la direction de laxe X de la base
en cours.
LIN_REL {Y 150, Z 200} dplace linairement le centre outil jusquau point situ 150mm
dans la direction de laxe Y de la base en cours, et de 200mm dans la direction de laxe Z de la
base en cours.
CIRC_REL { ?syntaxe? } permet de dfinir une trajectoire circulaire en positionnant de
manire relative le point dappui et le point de destination par rapport la position actuelle du
robot.

ATTENTION : un mouvement interrompu durant lexcution puis repris ne peut tre


poursuivi sans problmes, il y a toute les chances pour que la destination soit fausse. Il vaut
mieux alors effectuer un RESET du programme.
4.4 Contrle dorientation
On peut contrler lorientation avec les dplacements linaires ou circulaires par le biais des
variables systmes $ORI_TYPE et $CIRC_TYPE .
Dans le cas des trajectoires linaires , par dfaut $ORI_TYPE= #VAR, lorientation finale de
loutil est prise en compte et volue le long de la trajectoire.
En posant $ORI_TYPE= #CONSTANT, lorientation du point final nest pas prise en compte,
la trajectoire conserve lorientation initiale de loutil.
Dans le cas des trajectoires circulaires on peut combiner les variables $ORI_TYPE et
$CIRC_TYPE .

$CIRC_TYPE= #BASE $CIRC_TYPE=#PATH


$ORI_TYPE= #VAR Loutil interpole Langle entre loutil et la
lorientation sur la tangente du cercle est
trajectoire, lorientation conserv sur la trajectoire.
du point dappui nest pas
pris en compte.
$ORI_TYPE= #CONSTANT Lorientation de dpart est
conserve sur toute la
trajectoire
Guidage variable de lorientation par rapport lespace dans le Guidage variable de lorientation par rapport
cas dun dplacement linaire

la trajectoire pour les dplacements circulaires


Guidage
constant par
rapport la
trajectoire dans
le cas de
mouvement
circulaire

Guidage
constant par
rapport
lespace dans le
cas de
mouvement
circulaire
Figure 8- Quatre exemples de conservation ou pas dorientation sur la trajectoire ou dans lespace -

4.5 Changement de base ou dcalage de base ?


Si lon doit travailler dans une base spcifique correspondant par exemple une zone de
palettisation, on peut effectuer avant lordre de dplacement un changement de base.
Ex :
.
$BASE = WORLD
.
PTP POS_1
$BASE = {X 100, Y 200, Z 1000, A 0, B 0, C 145)
PTP POS_2

ATTENTION : Cela prsente cependant un risque puisque si le programme rebouclait en


ltat, au second passage sur PTP POS_1, nous travaillerions implicitement dans la nouvelle
base dfinie le risque daccident est grand.

Il vaut mieux dfinir une $BASE et un $TOOL unique pour tout le programme et utiliser
loprateur gomtrique : pour effectuer un changement de coordonnes ponctuellement
au dplacement.
Ex :
;-----Dclarations
DECL FRAME BASE1

;----Initialisations
BAS (#INITMOV,0) ;initialisation des vitesses, acclrations, $Base, $Tool
.
BASE1={FRAME : X 300,Y 630,Z 0,A 90,B 0,C 0}
.

;-----Partie principale
PTP HOME
PTP BASE1 :{POS : X 540,Y 630,Z 1500, A 0,B 90, C 0, S 2, T 35}
PTP HOME

Dans cet exemple, nous avons effectu un dplacement en X=540,Y=630,Z=1500 dans un


repre correspondant au dcalage de BASE1. Cela revient au mme quun changement de
base mais ici le retour en PTP HOME est sans surprise car tant dfini dans la base dorigine,
seule et unique.

Signification des paramtres S et T :


S (Status) et T (Turn) permettent de lever lambiguit de position et dorientation dans la
structure POS. En effet, les singularits du robot font quune mme position et une mme
orientation peuvent tre obtenues selon plusieurs configurations distinctes des segments entre
eux. Se reporter au document Programmation Expert pp 80 82 pour plus de prcisions sur
le sujet.
Notes :
ANNEXE

Modlisation directe et inverse gomtrique et


cinmatique du robot KUKA KR6

Par Mrs Benallal et El Jalaoui daprs le rapport de projet Apprentissage du geste en vue de la commande dun
systme robotique Projet ISIM-MEA 2002-2003