P27 Robot de fraiseuse

De Wiki d'activités IMA


Vidéo HD


La société SARL LEQUIEN est spécialisée dans la fabrication et la commercialisation d’ensembles mécaniques et de mécano-soudure de précision, usinés en commande numérique en petites et moyennes séries. Notre projet s'inscrit dans le cadre du projet Centaure et consiste à concevoir les déplacements d'un Robot KUKA KR210 R2700 extra ainsi qu'une interface graphique pour la société Lequien (http://www.lequien.fr/).

Environnement de travail

Descriptif du projet

L'objectif de notre projet étant de réaliser la configuration du robot Kuka, nous avons rencontré notre tuteur entreprise le jeudi 24 septembre afin de mettre au point le cahier des charges. Le centre de fraisage est équipé de deux palettes permettant le chargement en temps masqué de pièces à usiner. Chaque palette est équipée de deux faces d’usinage, permettant ainsi le chargement de plusieurs pièces ou opérations d’usinage. Chaque pièce est produite en petite ou moyenne quantité (rotation quotidienne entre les différents types) et subie une ou deux opérations d'usinage.

Usinage piece.png

Afin de charger le centre de fraisage, un robot Kuka à été installé afin de permettre le chargement des pièces la nuit. Les pièces sont disposées dans les magasins 1 ou 2 sur des paniers empilés.

Dispositif.png

Cahier des charges

Le projet se décompose en plusieurs phases distinctes. La première partie consiste en la modélisation 3D de la pièce ainsi que la simulation des trajectoires. Pour cela, nous allons utiliser le logiciel Kuka Sim pro qui nous permet de réaliser les cycles des différentes pièces. L'un des cycles à réaliser est le suivant :

  • Prise d’une pièce (1)
  • Dépôt sur le support d’ajustement (2)
  • Dépôt sur le montage de bridage pour la 1ere opération d’usinage (3)
  • Usinage de la 1ere Opération
  • Dépôt sur le support de retournement (4)
  • Dépôt sur le montage de bridage pour la 2eme opération d’usinage (5)
  • Usinage de la 2eme Opération
  • Dépôt sur le panier fini (6)
Cycle.png

La deuxième partie consiste à réaliser une base de données qui va référencer les différentes pièces existantes ainsi que les trajectoires qui leurs sont associées. Enfin, la dernière étape sera de réaliser une interface graphique permettant de choisir les pièces à usiner.

Dans le futur, l'entreprise souhaiterait ajouter un poste d'ébavurage afin d'automatiser la finition de la pièce ainsi qu'un recalage par palpage avec RENISHAW afin de recaler les pièces (la tolérance est de 0.1 mm)

Problématique Majeure du Projet

Afin de mener à bien ce projet il y a de nombreuses choses que nous devons prendre en compte. La problématique majeure de ce projet viens du contexte dans lequel il se place. Car cette entreprise usine de nombreuses pièces différentes à la demande du client et donc, cela va induire quelques contraintes et nous obliger à réaliser quelque chose de très flexible.

Premièrement les cycles d'usinages que nous devons programmer sont multiples car comme décrit précédemment la machine d'usinage comporte deux palettes et deux faces par palettes. Suivant les faces disponibles nous allons devoir ajuster notre programme afin de pouvoir réaliser nos opérations d’usinages sur n'importe quelles faces. Mais aussi être capable de gérer plusieurs programmes de façon concurrente.

Pour les pièces comportant deux étapes d’usinages il devra être possible de stopper le programme entre les deux opérations d’usinage dans le cas par exemple d’une commande urgente d’un client.

Une autre contrainte concerne les magasins de pièces. Les pièces sont stockées sur des palettes que l’on va venir empiler les unes sur les autres. Or, suivant le type de pièce il est parfois nécessaire d’ajouter des rehausseurs entre deux palettes. Ces derniers peuvent être de différentes tailles ce qui entraîne une hauteur variable pour chaque palette qui doit être prise en compte lors du programme.

Avancement du projet

Semaine du 21 au 25 septembre 2015

  • Rencontre avec le tuteur entreprise afin de mettre au point le cahier des charges
  • Prise des mesures afin de simuler l'environnement de travail

Semaine du 5 au 9 octobre 2015

  • Création du wiki
  • Rédaction du cahier des charges
  • Prise en main du logiciel Kuka Sim Pro

Semaine du 12 au 16 octobre 2015

  • Formation sur le logiciel Kuka Sim Pro
  • Début de la génération de l'environnement

Semaine du 19 au 23 octobre 2015

  • Réalisation des premières trajectoires (Simulation de la fraiseuse et du magasin)

Média:TestTrajectoire.pdf‎

Semaine du 2 au 6 novembre 2015

  • Environnement quasiment finalisé
  • Premières gestions des trajectoires avec l'utilisation d'un préhenseur

Média:TestAttachPrehenseur.pdf‎

Semaine du 9 au 13 novembre 2015

  • Réalisation d'un cycle avec prise et relâche d'un préhenseur

Semaine du 16 au 20 novembre 2015

  • Rencontre avec le tuteur entreprise pour faire un point sur l'avancement du projet
  • Prise de mesures supplémentaire

Semaine du 23 au 27 novembre 2015

  • Problème pour ajouter du contenu dynamique à l'environnement. (Simulation de vérins pneumatiques)
  • Exportation d'un programme test réalisé avec Kuka sim pro et application fonctionnelle sur le robot KR6

Média:TestKR6.mp4

Semaine du 30 novembre au 4 décembre 2015

  • Avancement du rapport

Semaine du 7 au 11 décembre 2015

  • Tests pour ajouter des parties dynamiques à notre environnement. Pour l'instant aucune solution fonctionnelle.
  • Réalisation de nouvelles trajectoires plus complexes

Semaine du 14 au 18 décembre 2015

  • Préparation de la soutenance et peu d'avancement du projet car nous avons rencontré un problème au niveau de la licence des logiciels.

Semaine du 4 au 8 janvier 2016

  • Tests de récupération de la position du robot lors d'un déplacement piloté en manuel. Nous avons été en salle Kuka et nous avons piloté le robot manuellement vers une position et nous avons ensuite récupéré la position exacte du robot afin de l'intégrer à Kuka sim pro et vérifier que les positions coïncident.
  • Puisque nous avons testé que l'on peut récupérer la position du robot avec un déplacement manuel et fini de réaliser une trajectoire plus complexe, nous avons pris rendez-vous avec l'entreprise afin de réaliser nos ajustements, et de présenter l'avancement de notre projet.

Semaine du 11 au 15 janvier 2016

  • Rendez-vous avec notre tuteur entreprise lors duquel nous avons présenté l'avancement du projet. Nous avons aussi récupéré le cahier des charges pour l'interface graphique. Cette interface devra finalement être réalisée à partir de zéro suivant le souhait de l'entreprise.
  • Nous avons commencé à réfléchir au développement de l'interface graphique et la façon d'y intégrer nos trajectoires. On nous laisse beaucoup de libertés à ce sujet, nous pensons faire l'interface en C#.
  • Concernant les trajectoires il est possible de rester sur une programmation modulaire, ou l'on fait des trajectoires simples que l'on va utiliser pour réaliser le cycle de production, ou alors réaliser des trajectoires complètes. Étant donné que l'on nous demande beaucoup de souplesse, nous avons choisi de rester sur une programmation modulaire.

Semaine du 18 au 22 janvier 2016

  • Le lundi 18 nous sommes retournés à l'entreprise afin d'y faire nos ajustements, c'est à dire d'obtenir les positions exactes des éléments de l’environnement afin de le finaliser. Les mesures grossières qui avaient été prises étant proche de la réalité il est donc assez simple d'ajuster les positions.
  • Une partie des trajectoires a également été réalisé (prise des préhenseurs et des pièces, retournement et le déplacement des palettes)

Semaine du 25 au 29 janvier 2016

Toutes les trajectoires ont été terminées. De plus, à partir de cette semaine, nous avons commencé la réalisation de l'interface graphique. Pour l'instant, il s'agit d'une interface basique. Cette interface doit permettre de lancer un programme sur le robot. Pour cela il faut donc rentrer tous les paramètres nécessaires afin de définir le programme que l'on souhaite lancer.

Les paramètres à définir sont :

  • Le type de pièce que l'on souhaite usiner.
  • Le nombre d'opérations à réaliser sur ces pièces. (une ou deux suivant les pièces)
  • La face de la machine outil utilisée pour cette ou ces opérations. (il y a quatre faces disponibles)
  • L'emplacement ou l'on va venir chercher les pièces à usiner et déposer les pièces usinées. (il y a deux magasins produit dans l'environnement du robot)
  • Et pour finir le nombre de pièces que l'on va usiner.

Semaine du 1 au 5 février 2016

Une version alpha de l'interface à été réalisée.

P27 IHM 1.jpg
P27 IHM 2.jpg


Sur la page 1, à gauche, on peut voir le choix du type de pièce entre les pièces 1, 2 et 3. Ce choix est assisté via des illustrations des pièces en question avec le préhenseur utilisé pour ce type de pièce. Pour le moment nous avons utilisé les images que nous avions à notre disposition mais par la suite nous aurons d'autres images. De même, nous avons actuellement des boutons afin de modifier les images, ces boutons ont été implanté car sur l'interface précédente il était possible de le faire. En revanche nous pensons à les retirer car ils ne sont pas des plus important.

Sur la page 2, à droite, se trouve le choix du nombre d'opérations d'usinage. L'OP10 correspond à une opération et l'OP20 à deux opérations. Ici aussi les images sont temporaires afin de pouvoir bien visualiser mais nous allons les remplacer dès que possible.

P27 IHM 3.jpg
P27 IHM 3bis.jpg

Les pages 3 et 3bis sont les pages permettant de choisir ou va être réalisé l'opération d'usinage au sein des 4 faces possibles. La page 3bis permet de prendre en compte le cas ou l'on doit faire deux opérations d'usinage et permet donc de sélectionner les faces pour la première et la seconde opération.

P27 IHM 4.jpg
P27 IHM 4bis.jpg

La page 4 est la page permettant d'entrer le nombre de pièces que l'on veux usiner ainsi que le magasin ou l'on va venir chercher les pièces brutes pour l'usinage. Comme on peux le voir sur l'image de droite, lorsque l'on veux lancer le programme, on a une fenêtre de confirmation qui récapitule les choix réalisés avant le lancement du programme.


Ceci récapitule la partie graphique de notre interface. Maintenant nous souhaitons faire des tests concernant la communication avec le robot, par contre nous n'avons que peu d'informations concernant la communication. Nous attendons donc une réponse de Kuka concernant ce point, pour le moment nous allons essayer de réaliser cette communication par nous même.

Nous avons également commencé la réalisation d'un code permettant de lancer les trajectoires souhaitées en fonction des choix fait dans l'IHM.

Semaine du 8 au 12 février 2016

Une petite modification a été réalisée au sein de l'interface graphique car un point avait été oublié. Il est parfois nécessaire de retourner la pièce avant ou après une opération d'usinage. C'est pourquoi ils disposent d'une surface d'attente sur le magasin ou sont posé les préhenseurs. Si un retournement est nécessaire, le robot viens déposer la pièce sur cette surface d'attente et la reprendre sous un angle différent.

C'est pourquoi nous avons eu à ajouter une fenêtre ou l'utilisateur peut choisir les retournement nécessaire à l'usinage. Il y en a 3 au maximum.

P27 IHM 5.jpg

Celle-ci viens s'insérer avant la page 4 qui permet de lancer le programme.

La réalisation du code faisant la liaison entre l'IHM et les trajectoires est plus compliqué que prévu. Nous avons des problèmes pour faire l'appel de nos programmes ainsi que pour la réalisation de nos boucles.


Semaine du 15 au 19 février 2016

Tests concernant la communication entre l'interface et le robot à l'aide de la librairie CrossCom qui nous a été conseillée par Kuka. Cette librairie est disponible uniquement en Visual Basic 6 et l'absence de documentation rend son utilisation difficile. Nous arrivons à récupérer le path de nos fichiers et à les charger dans le robot via cette librairie mais il reste impossible de les exécuter. Différentes syntaxes on été testées pour lancer un programme, sans succès pour l'instant.

Par la suite nous avons découvert une variable système permettant de lancer un programme en revanche celle-ci est disponible uniquement en lecture. En revanche nous arrivons maintenant à appeler des programmes fils à partir du robot Kuka. Ceci nous permet de tester l'état des capteurs et les valeurs en mémoire du robot et d'appeler des programmes en fonction de ces valeurs.

Du coup pour contourner le problème rencontré au niveau de l’exécution des programme nous avons choisi d’exécuter manuellement un programme main sur le robot qui attend un signal de l'interface graphique pour exécuter nos différents programmes. De cette manière l'interface graphique a seulement besoin de venir écrire les différentes variables dans la mémoire du robot, et l'une de ces variables va déclencher l’exécution du programme. Ceci a pour le moment été testé sans l'utilisation de l'interface graphique, en exécutant directement le programme de communication pour des raisons de compatibilité avec Windows XP. Nous travaillons à résoudre ce problème.

Le problème de compatibilité a été résolu en réalisant une version XP de l'interface graphique réalisée avec Visual Studio 2010. Le code principale permettant l’exécution des sous programmes est réalisé et la communication entre l'interface graphique et le robot fonctionne.

Le temps restant sera consacré à la finition du rapport et la préparation de la soutenance.