Home
A.P.I. Kuka Manuel de l`utilisateur Version 0.0.5
Contents
1. 17 SAT Les d placements MU ne LA ML ie pos Emme a 1449 1347 iaa 17 3 4 2 Changement de base 19 3453 Poser Pr ndre rings ut idee de a ati tete nage 20 4 R solution de probl mes 20 Ail Messages d rreur 44 4444 be DAME TUE T eee A P rr ns A NE 20 kuka_api 0 0 5 Manuel de l utilisateur 1 Utilisation sur le robot serveur Cette premi re partie vous explique comment utiliser le serveur Le serveur est un programme d coute qui r pondra aux requettes des clients Ces actions s op rent sur le PC du robot Kuka 1 1 Installation Premi re tape installer le programme Notez que le moyen le plus simple est d utiliser les binaires fournis sous forme d auto installeur T l charger Les binaires disponibles http nestor imerir com kuka kukaApi bin kuka_api_serveur 0 0 5 i386 1 exe auto installeur ou http nestor imerir com kuka kukaApi bin kuka_api_serveur 0 0 5 1386 1 tgz Les sources disponibles http nestor imerir com kuka kukaApi src kuka_api_serveur 0 0 5 tar gz Compiler Si vous avez choisis d utiliser directement les binaires passer la section Installer sinon 1 d compressez archive avec winzip par exemple 2 compiler en lancant le script adapt votre environnement de d veloppement make_vc bat pour Ms Visual ou make_bc bat pour Borland Installer Si vous avez t l charg l auto installeur
2. Hinclude kukaApi h Declarations kukaVar_t pince PINCE KUKA BOOL 0 kukaVar_t pinceFlag PINCE FLAG KUKA BOOL 1 Macro pour ouvrir define O x x valeur kukaVar_u kukaBool kukaBool_t 1 et pour fermer x Hdefine F x x valeur kukaVar_u kukaBool kukaBool_t 0 4 R solution de probl mes 4 1 Messages d erreur 1 Erreur 2047 nom 99 99 type KUKA_ERROR valeur KUKAKUKAE 2047 kuka you should call showVar with amp 2047 as var name and KUKA STRING as type to get a description Cette erreur arrive lorsque vous essayez d obtenir la valeur d une variable qui est inconnue du cross Vous devriez alors v rifier d avoir d clar dans le fichier config dat toutes les variables auxquelles vous avez besoin d acc der distance Voir section 1 2 page 4 21
3. int kuka_uninitialize void ATTENTION PAPI est pr vue pour etre utilis e que depuis un seul client Ceci se traduit par Lors du premier appel kuka_initialize le client a ouvert une session sur kuka Lors des appels suivant kuka_initialize les autres clients utiliseront la session ouverte par le premier Lors du premier appel kuka_uninitialize le client ferme la session Plus aucun client ne peut communiquer avec kuka Les appels suivant kuka_uninitialize seront sans effet Ceci fut con ut de cette facon dans un soucis de simplification Les impl mentration future pourraient g rer plusieurs connections 2 2 2 D finition des variables Le programme de commande qui tourne sur Kuka contr le un certain nombre de variables destin es commander le robot Par exemple nous pourrions avoir notre disposition les variables suivantes 2Le manuel de r f rence de l api d crit en d tail les fonctions param tres retours les structures les types etc 3Voir la description du programme de commande page 15 4Ce sont effectivement les variables qui sont notre disposition si c est le programme kuka_api src qui est charg dans le robot kuka_api 0 0 5 Manuel de l utilisateur CIE a ontr le la position de la pince en mm CIBLE_FLAG BOOL PINCE BOOL Contr le l tat ouvert true ferm false de la pince PINCE_FLAG BOOL BASE FRAME Contr le la base de travail en mm BASE_FLAG
4. 1 double cliquez sur kuka_api_serveur 0 0 5 1 exe et suivez les instructions ou si vous avez t l charg l archive 1 copier pm_ascii exe le portmaper pour rpc kukaApi exe le serveur de l API sur votre disque dur 1 Utilisation sur le robot serveur 1 2 2 copier le programme de commande kuka_api src et kuka_api dat dans le r pertoire des pro grammes du robot Par exemple c KRC ROBOTER KRC R1 Program Note le programme de commande fournit dans l archive est minimaliste et vous pourrez le modifier ou en faire d autre plus adapt s vos besoins Toutefois dans la suite des explications nos exemples s appuieront sur lui Configuration Pour rendre utilisable le serveur il suffit de d clarer les variables que nous aurons besoin de partager sur le r seau de mani re globale Voici la d marche suivre 1 5 6 Note Sauvegarder C KRC ROBOTER KRC R1 SYSTEM config dat dans C KRC ROBOTER KRC R1 SYSTEM config dat bak Ouvrir C KRC ROBOTER KRC R1 PROGRAM kuka_api kuka_api dat Ouvrir C KRC ROBOTER KRC R1 SYSTEM config dat Copier le FOLD Section a copier dans config dat du fichier kuka_api dat dans le fold USER GLOBALS du fichier config dat en dessous de Userdefined Variables Sauver config dat Red marer la machine Lors du red marage si le BOF vous signale une erreur dans l en t te du fichier uninstall dat ce n est pas grave 1 3 Utilisation
5. A P I Kuka Manuel de l utilisateur Version 0 0 5 Paul Chavent Kubrick 8 septembre 2003 kuka_api 0 0 5 Manuel de l utilisateur Table des mati res 1 Utilisation sur le robot serveur 1 1 1 2 1 3 Installation qre ant aa dio A e dee en E nn A ERAS VA A R O TO D er er US CONSULTA LION v aa nend nd A re re C Tr i Do Bo da ADAP Ar BA SR Ra DEE E NEL an mate h UUISATION SL pb Ab TE A de ds de Led ala a IAS De A ST Ta da 2 Utilisation sur le pc distant client 2 1 2 2 Installation e x ze ere mines LL AD au DA E ZER Ge GADE RAE ten fe Cet ltd ZT Wado M cuca ds AA E me a ant ne EEIE EE f Ir SIDA 212 A APO A A A ADE a a 7 p a a a agde Ed 4 44 4 4 48 Utilisations LE A AR EN een A E E TES EUR MA e 2 21 initialisation a Ve de Te RE EA SAD E TRS 2 2 2 D finition des variables 24 Lux gen x mu aa as 2 2 3 Lecture crituredesvariables QQ 0224222424 2 2 4 Gestion des CrteUrS a 4 4 2 4 4 2 eme NAAL dd aaa 22 5 Exemple 2 20 8 Lingus se t r dE 4 eaaa a a a dN Na DE 222 A ALES ta ROA e a De NOD V NES ue E dr us s A 22 Avertissement aaa A EE ER 3 Exemple le jeu de dame 3 1 3 2 Introductions e ia AN A a AE AS LPO SR Re A ie D de END Le programme de commande description Table des mati res 3 3 Pr parer le plateau de jeu 16 3 4 Impl menter une interface
6. BOOL Contr le la vitesse en pourcentage VITESSE_FLAG BOOL Pour utiliser ces variables sur le poste client il suffit de les d clarer tant de type kukaVar_t kukaVar_t cible CIBLE KUKA POS 0 kukaVar_t cibleFlag CIBLE_FLAG KUKA BOOL 1 Note l unit dans laquelle nous manipulerons ces variables est la m me que 2 2 3 Lecture criture des variables Les variables peuvent tre lues et crites A cette fin nous disposons de deux focntions int kuka_setVar kukaVar_t variable int kuka_getVar kukaVar_t variable Pour afficher le contenu d une variable sur la sortie standard stdout nous avons void kuka_displayVar kukaVar_t xvariable 2 2 4 Gestion des erreurs Enfin comme une commande peut parfois chouer vous disposez d une variable qui contient la derni re erreur Vous pouvez obtenir un pointeur sur cette variable en invoquant la fonction void kuka_getError kukaVar_t x kukaError 10 2 Utilisation sur le pc distant client 2 2 5 Exemple Pour atteindre une nouvelle position vous pouvez suivre l exemple suivant include kuka_api h Declarations kukaVar_t kukaError kukaVar_t cible CIBLE KUKAPOS 0 kukaVar_t cibleFlag CIBLE_FLAG KUKA BOOL 1 Initialisation du pointeur sur les erreurs x kuka_getError amp kukaError Initialisation des valeurs des variables x cible valeur kukaVal_u kuk
7. Le serveur fonctionne avec trois programmmes 1 2 3 le programme qui permet d couter les requetes le portmapper rpc le programme qui impl mente les requettes le programme de commande qui actionne le robot Voici la marche suivre pour lancer ces programmes Lancement 1 Dans Windows Voir la description du programme de commande page 15 kuka_api 0 0 5 Manuel de l utilisateur a Menu d marrer programmes kuka_api kuka_serveur exe ou a Lancer port_map exe portmapper pour les rpc b Lancer kuka_api_serveur exe 2 Dans le BOF a V rifiez au pr alable d tre en mode automatique SMODE_OP AUT d avoir ferm le portillon du park de kuka et d avoir acquitt tous les d fauts oa b S lectionner le programme de commande kuka_api src pour nos exemples c Enclencher la puissance d Amener le robot au COI position home avec la touche start du KCP e Appuyez nouveau sur la touche start afin de lancer la boucle d attente Le serveur est d sormais pr t recevoir des ordres Arr t 1 Dans le BOF a Arr ter le programme de commande l aide de la touche stop 00 b Mettre les moteurs hors puissance 2 Dans Windows a Terminer kuka_api_serveur exe puis pm_ascii exe 2 Utilisation sur le pc distant client 2 Utilisation sur le pc distant client Cette partie d crit les fonctions que APT met votre disposition A la fin de cette pa
8. aPos x kukaReal_t 10 cible valeur kukaVal_u kukaPos y kukaReal_t 60 cible valeur kukaVal_u kukaPos z kukaReal_t 110 7 J Initialisation de l api if kuka_initialize kuka printf Erreur a l initialisation n kuka_displayVar kukaError exit 1 Mise a jour de la valeur sur kuka if kuka_setVar amp cible kuka setVar amp cibleFlag printf Erreur la cible ne sera pas atteinte n kuka_displayVar kukaError Traitement des erreurs Desinitialisation de l api if kuka_uninitialize printf Erreur a la desinitialisation n kuka_displayVar kukaError Fin du programme x a 11 kuka_api 0 0 5 Manuel de l utilisateur 2 2 6 Astuces Aussi pour simplifier la programmation vous pouvez d clarer des macros Pour permettre la mise jour de la variable et de son flag rapidement define SET x kuka_setVar x kuka_setVar x Flag Pour acc der plus facilement aux membres des variables define CIBLE cible valeur kukaVar_u kukaPos CIBLE x 32 define OUVRE x x valeur kukaVar_u kukaBool kukaBool_t 1 define FERME x x valeur kukaVar_u kukaBool kukaBool_t 0 OUVRE pince Nous pouvons alors utiliser ces macros comme suit CIBLE x 32 OUVRE pince SET pince SET cible Attention remarquez que dans ce cas les macros prennent en param tre le nom de la variable alors q
9. amme est en 14 donc termin Le robot n aura pas ex cut les derni res instructions et nous obtenons la trajectoire suivante P2 O PE O P3 PO 13 kuka_api 0 0 5 Manuel de l utilisateur le programme est en 10 et continue de s ex cuter Il r cup re les coordonn es du point qu il croit tre P2 mais comme le robot est en P1 le d placement relatif fausse la trajectoire et nous emm ne en P3 comme l illustre la figure ci dessous L objectif n est pas atteint P2 O P1 O p3 P3 PO Nous proposons alors deux nouveaux programmes D placements relatifs sans mise jour de la position actuelle 1 kuka_getVar amp position 2 CIBLE y 7 3 kuka setVar amp cible 4 kuka_setVar amp cibleFlag 5 CIBLE x 5 s CIBLE y 3 7 kuka_setVar amp cible s kuka_setVar amp cibleFlag o CIBLE x 4 10 CIBLE y 3 u kuka_setVar amp cible 12 kuka_setVar amp cibleFlag D placements absoluts 1 kuka_setVar amp P1 amp cibleFlag amp P2 amp cibleFlag amp P3 amp cibl 2 kuka_setVar 3 kuka_setVar 4 kuka_setVar 5 kuka_setVar ESI LES DL CR E 6 kuka_set Var eFlag R sultat P1 P3 PO Nous atteignons bien P3 mais sans passer par P2 ce n est toujours pas la bonne solution La solution que nous vous sugg rons pour viter ces probl mes est la suivante 14 2 Utilisation sur le pc distant client kuka_g
10. ansmet Kuka via l A P I 3 2 Le programme de commande description Voici quelques caract ristiques de notre programme de commande kuka_api src il est crit en krl KukaRobotLanguage il est charg dans le robot il attend et re oit un signal puis ex cute un ordre associ ce signal Le programme de commande livr avec l api kuka_api src boucle ind finiment en attendant un signal que nous nommerons flag Chaque flag est associ une action qui est ex cut e si il est activ valeur TRUE Pour l instant le mod le impl mente les actions suivantes d placement point point PTP contr l par les variables CIBLE et CIBLE FLAG ouverture fermeture de la pince contr l par les variables PINCE et PINCE_FLAG changement de base contr l par les variables BASE et BASE FLAG changement de vitesse contr l par les variables VITESSE et VITESSE FLAG Enfin quelques conseils si vous voulez changer cr er un programme de commande La norme de d nomination des flags est la suivante nomdevariable_FLAG o nomdevariable correspond la variable associ e l action 16 3 Exemple le jeu de dame L impl mentation du programme de commande doit d sactiver le flag valeur FALSE d une action qui se termine Le nom des variables ne devraient pas d passer 12 caract res Les impl mentations d attente de signaux sont vari es boucle LOOP ou WHILE interrup
11. de commande impl mente ces d placements Note partir de la version 0 0 5 le programme de commande par d faut permet de g rer des trajectoires complexes avec plusieurs points du lissage et des mouvements lin aires circulaires ou point point 5 Voir la documentation de kuka programmation expert kuka prog_r23_5_5 pdf 17 kuka_api 0 0 5 Manuel de l utilisateur 3 4 Impl menter une interface Notre interface doit nous permettre de d placer la pince sur un damier de poser et de prendre des pions Nous allons en premier lieu nous int resser aux d placements 3 4 1 Les d placements Nous sommes la fronti re entre un monde qui ne comprend que des coordonn es sous forme de cases et un autre qui ne les comprend que sous forme de sextuples position et orientation ALGO Notre but est donc de r aliser une simple conversion et nous avons plusieurs moyens d y parvenir 1 Nous pouvons cr er une table qui chaque case du plateau de jeux fait correspondre des coordonn es cart siennes Par exemple 1 825 94 655 5 900 42 2 825 94 655 5 900 42 Pour r cup rer ces coordonn es il suffit par exemple de a amener le bras du robot au dessus d une pi ce en mode manuel b noter la position gr ce au menu visualiser gt position actuelle gt cart sienne du BOF c reporter dans la table les coordonn es correspondantes au point Cette solution l avantage de pouvoir s adapter
12. etVar amp position CIBLE y 7 kuka_setVar amp cible kuka_setVar amp cibleFlag while CIBLEFLAG kuka_getVar amp cibleFlag CIBLEFLAG 1 6 CIBLE x 5 7 CIBLE y 3 kuka_setVar amp cible kuka_setVar amp cibleFlag 10 while CIBLEFLAG kuka_getVar amp cibleFlag CIBLEFLAG 1 n CIBLE x 4 12 CIBLE y 3 13 kuka_setVar amp cible 14 kuka_setVar amp cibleFlag 15 while CIBLEFLAG kuka_getVar amp cibleFlag CIBLEFLAG 1 m N w A a o Les instructions 5 10 et 15 attendent que le flag soit remis z ro par le programme de commande ce qui signifie que l action d clench e pr c demment est finie Nous obtenons alors cette trajectoire P2 P3 PO 15 kuka_api 0 0 5 Manuel de l utilisateur 3 Exemple le jeu de dame Cet exemple illustre une des utilisations possible de l API Vous serez guid travers la r alisation du plateau de jeu et de son interface 3 1 Introduction Un jeu de plateau comme les dames consiste d placer des pions sur une grille Pour des applications d I A par exemple il serait int ressant de pouvoir communiquer au robot des coordonn es de la forme C5 plut t que de la forme X 468 15 Y 206 98 Z 900 A 0 02 B 89 1 C 0 002 La conversion sera r alis e par une interface L impl mentation de cette interface interpr te ces coordon n es les transforme en coordonn es cart siennes et les tr
13. flag 19 kuka_api 0 0 5 Manuel de l utilisateur 3 4 2 Changement de base Les changements de base permettent une manipulation de coordonn es plus adapt e au contexte Nous avons vu par exemple que c est pratique d avoir l origine du rep re de travail l origine du plateau de jeu Pour ce faire il faut r cup rer les param tres qui caract risent une base Ces param tres sont de type FRAME c est dire une structure contenant les coordonn es du centre de la base et celles de l orientation de la base Vous devez vous r f rer au manuel d utilisateur du robot pour d finir une nouvelle base Vous devrz alors initialiser une variable avec les valeurs cette nouvelle base En tetes include kukaApi h Constantes Declarations Initialisation base kukaVar_t base BASE KUKA FRAME 0 Hdefine BASE cible valeur kukaVal_u kukaFrame kukaVar_t baseFlag BASE FLAG KUKA BOOL 1 BASE x 812 5909 BASE y 435 7992 BASE z 900 0000 BASE a 88 30630 BASE b 0 001254 BASE c 0 002854 20 4 R solution de probl mes 3 4 3 Poser Prendre Cette action comprend la descente et la remont e de la pince ainsi que sa fermeture ouverture Mont Descente Ici il faut prendre en compte la hauteur des pi ces afin de ne pas les renverser lors des d placements Pr emption Voila un listing de code mod le pour utiliser la pince En tetes
14. rtie vous aurez construit travers des exemples simple un programme minimaliste pour faire fonctionner le robot distance Si vous recherchez des exemples d utilisation avanc rendez vous dans la partie suivante 2 1 Installation Les tapes d crient ci dessous sont effectu es sur un PC distant ce niveau vous avez le choix d utiliser P gt Windows ou Linux Voici la d marche suivre suivant votre syst me 2 1 1 Windows A partir des sources Attention sous Windows la compilation de la doc n a pas t test et ne le sera jamais Vous pourrez donc r cup rer toutes la documentation en ligne http www imerir com kuka ou dans les archives des binaires Les tapes suivantes d crivent uniquement la compilation de la librairie 1 T l charger les sources disponibles sur http nestor imerir com kuka kukaA pi src kuka_api_client 0 0 5 tar gz 2 D compressez l archive avec winzip par exemple 3 Aller dans le r pertoire des source gt cd src win 4 Compiler avec le script adapt votre environnement de d veloppement Par exemple avec les outils Microsoft taper src win gt nmake f Makefile msvc install Pour les exemples nous vous laissons libre de les compiler avec le moyen que vous voudrez A partir des binaires 1 T l charger les binaires disponibles sur http nestor imerir com kuka kukaApi bin kuka_api_client 0 0 5 tgz kuka_api 0 0 5 Manuel de l utilisate
15. tions INTERRUPT attente WAIT et peut tre d autres 3 3 Pr parer le plateau de jeu Vous devriez conna tre les contraintes impos es par le robot afin de construire le plateaux de jeux en cons quence Nous pouvons notamment citer qu il faut prendre en compte Les positions singuli res En effet certains points ne sont pas atteignables avec certaines configuration des articulations L encombrement maximum de la pince Celui ci fait 80x80mm pour le robot d IMERIR ce qui implique qu il faut faire des cases d une largeur maximum de 80mm La capacit de pr emption de la pince Celle ci fait 40mm pour le robot d IMERIR ce qui implique qu il faut des pi ces d une paisseur maximum de 40mm La capacit de charge du robot Le robot d IMERIR peut porter au maximum 6Kg l extr mit de son bras Les obstacles qui peuvent nuire l volution du robot Imaginons que le robot ait une pi ce encom brante il faudrait v rifier si la pi ce ne risque pas d accrocher la bari re de s curit du parc de kuka L encombrement des pions longeurxlargeurxhauteur De leur hauteur par exemple d pendra l am plitude du mouvement minimum pour lever la pi ce et la d placer au dessus des autres sans les renverser La configuration initiale des pions Les actions et les type de mouvements Nous pouvons imaginer qu il soit n cessaire de faire par courir la pince une trajectoire circulaire Il faudra que le programme
16. ue les fonctions de l API prennent en param tre un pointeur Dans la suite nous choisirons d appeler la structure de la variable par nomDeLaVariable et d appeler la valeur de la variable par NOMDELAVARTABLE Bien s r ces conseil sont donn s titre d exemple et il n est pas imp ratif de les suivre pour faire fonctionner l A P I 12 2 2 7 Avertissement 2 Utilisation sur le pc distant client ATTENTION si certaines r gles ne sont pas suivies la trajectoire programm e peut ne pas tre respect e Soit le programme 1 kuka_getVar amp position 2 CIBLE y POSITION y 7 3 kuka_setVar amp cible Les d placements devraient tre 7mm en y 5mm en x et 3mm en y 4mm en x et 3mm en y a kuka_setVar amp cibleFlag La trajectoire devrait tre s kuka_getVar amp position 6 CIBLE x POSITION x 5 O CIBLE y POSITION y 3 pl gt 8 kuka_setVar amp cible kuka_setVar amp cibleFlag 10 kuka_getVar amp position u CIBLE x POSITION x 4 Po O 12 CIBLE y POSITION y 3 13 kuka_setVar amp cible 14 kuka_setVar amp cibleFlag Commentons le d roulement des op rations 1 A l instruction 1 le robot est en PO 2 A l instruction 4 le robot part vers Pl 3 Au m ment o le robot arrive en P1 il lib re le flag de la cible CIBLE FLAG FALSE et se met en attente d ordre nouveaux Alors plusieurs cas se pr sentent nous le progr
17. un plateau dont les espacements entre les cases seraient irr guliers comme un jeu de l oie par exemple 2 Si le plateau est r gulier nous pouvons utiliser un syst me de conversion qui calcule les coordonn es dynamiquement Il suffit de conna tre la largeur et la longueur des cases Ainsi la coordonn e de la case C4 est obtenue en calculant X lt 3 x largeur_de_case Y lt 4 x hauteur_de_case 18 3 Exemple le jeu de dame Nous obtenons donc des coordonn es relatives l origine du damier Mais avant cela il aura fallut changer de rep re cf 3 4 2 les changements de base car par d faut nous travaillons dans le rep re world du robot Cette solution l avantage de pouvoir tre tr s rapidement adaptable une nouveau plateau de jeu CODE Ceci se traduit finalement par En tetes include kukaApi h Constantes const float largeur_de_case 80 const float hauteur_de_case 80 Declarations kukaVar_t cible CIBLE KUKAPOS 0 define CIBLE cible valeur kukaVal_u kukaPos kukaVar_t cibleFlag CIBLEFLAG KUKA BOOL 1 las Algo 2 la fonction retourne 0 si elle n a pas generee d erreur x int deplaceSur int alpha int num Nous ajustons la cible a atteindre CIBLE x alpha largeur_de_case CIBLE y numx xhauteur_de_case Nous demandons a kuka d executer la commande return kuka_setVar amp cible kuka_setVar amp cible_
18. ur 2 Installer copier le fichier kuka_api h dans le dossier o vous rangez vos en t tes et copier le fichier kuka lib dans le dossier o vous rangez vos librairies 3 Tester lancer un test en ex cutant test_api kuka 2 1 2 Linux A partir des sources 1 T l charger les sources disponibles sur http nestor imerir com kuka kukaApi src kuka_api_client 0 0 5 tar gz 2 D compressez l archive par exemple tar zxvf kuka_api_client 0 0 5 tar gz usr local src 3 Compiler cd usr local src kuka_api_client make 4 Installer make install A partir des binaires 1 T l charger les binaires disponibles sur http nestor imerir com kuka kukaApi bin kuka_api_client 0 0 5 tgz 2 Installer Si vous utilisez une slackware installpkg kuka_api_client 0 0 5 tgz Sinon d compr ssez l archive par exemple tar zxvf kuka_api_client 0 0 5 tgz 2 Utilisation sur le pc distant client 2 2 Utilisation Nous allons d crire ici les fonctionnalit s de l api Bien s r pour pouvoir utiliser l A P I vous devez avant toutes choses inclure dans votre source l ent te include kuka_api h 2 2 1 Initialisation Pour pouvoir faire appel aux fonctions de l api vous devez initialiser la connection au robot De m me avant de quitter le programme vous devez stopper la connection Vous disposez pour cela de deux fonc tions int kuka_initialize char serveur
Download Pdf Manuals
Related Search
Related Contents
METEOR-NT - Soler & Palau お手入れのお願い ASUS TS300-E7/PS4 C6468 User's Manual LG LS620 Specification Sheet Philips Micro music system DCM2020 Therapsid User Manual - Twisted Braun Photo Technik Una ME-02-03-édition complète Copyright © All rights reserved.
Failed to retrieve file