P38 Conception par fabrication additive des pièces en plastique à partir d’un robot

De Wiki de Projets IMA
Révision datée du 21 février 2018 à 12:00 par Dmarruch (discussion | contributions) (Rapport)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Etudiante : Diana Marrucho
Encadrants : Rochdi Merzouki, Othman Lakhal

Présentation générale du projet

Contexte du projet

La société All-Trends est une start-up lilloise développant la technologie e-Bridium® de fabrication additive directe à granulés en plasturgie dans le but d'imprimer des pièces en polymère à partir de granulés plastiques non-propriétaires.

Dans le cadre du programme Centaure, All-Trends s'est associée à Polytech Lille et le laboratoire CRIStAL afin de l'accompagner pour la réalisation d'un prototype d'impression 3D robotisé à base des granulés. Une buse, permettant la fusion des granulés est fixée à un robot Kuka pour pouvoir imprimer dans toutes les positions.

Actuellement, des pièces à base de PS (Polystyrène) ont été réalisées en salle C002 à Polytech Lille et des tests sont effectués les vendredis.

Robot KUKA et Buse ALL-TRENDS.
Pièces imprimées en PS.

Cahier des charges

But du projet

Dans une première partie, l'objectif est de tester différents types de matières et d'en contrôler la régulation de température de la buse en fonction des granulés utilisés.

Actuellement, le robot est contrôlé par un contrôleur CompactRIO de National Instruments. La seconde partie du projet consisterait donc à intégrer le programme de commande sur une MyRIO de National Instruments.

Pour se faire, l'utilisation du logiciel LabVIEW est nécessaire.

Planning Prévisionnel

  • Semaine 1 :
    • Apprentissage du LabVIEW ;
  • Semaine 2 :
    • Prise en main sur la programmation et la commande du dispositif robotisé existant ;
  • Semaine 3-4 :
    • Test d'impression et régulation pour trois différentes matières ;
  • Semaine 5 :
    • Intégration du programme de commande et supervision embarqué sur une MyRIO de National Instruments ;
  • Semaine 6 :
    • Test et validation ;
    • Rédaction du rapport.


Avancement du projet

Semaine 1 (du 11/01/2018 au 14/01/2018)

  • A partir de mercredi, j'ai repris en main le logiciel LabVIEW. Lecture de la documentation d'utilisation Labview et du CompactRIO de National Instruments :
    • Lien de la documentation :[1]
  • Réalisation de tests sur la jambe de cheval : contrôle par LabVIEW via CompactRIO, analog output, du système électro-pneumatique pour le contrômle des muscles de la jambe de cheval.
  • Nouvel objectif : réaliser un interpréteur du G-Code via LabVIEW afin de pouvoir tout contrôler directement par National Instruments sans l'utilisation de Matlab. Attention à prendre en compte que ce n'est pas la plateforme support qui se déplace mais le bras robot Kuka.
  • Vendredi : en présence de monsieur Grégory SANT de la société All-Trends, nous avons effectués des tests d'impression de pièces 3D avec des granulés de polystyrène en effectuant des variations des deux anneaux de température, de débit de sortie de buse, de vitesse ou de hauteur afin de pouvoir renseigner les paramètres les plus optimaux pour le robot industriel et la tête d'impression All-Trends. L'objectif des prochains tests sera de diminuer la taille de la buse afin de se rendre compte de son impact sur la pièce imprimée et surtout de pouvoir avoir une résolution maximale avec un temps réduit. Effectivement, contrairement à une imprimante 3D classique, ce robot plutôt destiné à l'industrie, permet de sortir 700g de matériaux à l'heure contre 1kg la journée pour l'imprimante classique. De plus, le coût de la matière est moindre contrairement au fil qui est déjà dégradé par sa transformation en fil.

Semaine 2 (du 15/01/2018 au 21/01/2018)

  • Actuellement, afin de pouvoir réaliser des impression, Matlab était utilisé afin de générer les différentes trajectoires. Les pièces réalisées jusqu'à présent sont des pièces dont le périmètre était imprimé, sans grand angle et sans support pour une pièce déportée. L'objectif de la semaine 2 est donc de pouvoir tester de nouvelles formes.
  • Afin de pouvoir convertir le fichier 3D, généralement de format STL, on utilise le slicer CURA que l'on paramètre avec les données correspondant au diamètre de la buse utilisée, à la température des couronnes et du plateau chauffant, au diamètre de sortie du cordon, à la hauteur de couche...
  • Le but de cette semaine est donc de réaliser un interpréteur avec LabVIEW capable de transformer le G-Code en fichier CSV :
    • Dans un premier temps, j'ai d'abord cherché à récupérer toutes les données du gcode et les indexer dans un tableau :
Récupération des données du Gcode par LabVIEW.
  • Ensuite, afin de ne garder que les données qui nous intéressent, à savoir les lignes de code contenant les commandes en G, j'ai récupéré selon toutes les différentes commandes (à savoir les commandes selon G0, G1, G2, G3, G4, G20, G21, G28, G29, G90, G91 et G92 selon la documentation du Wiki RepRap [2]
  • A partir de mercredi, et de la lecture du document Software KUKA.CAMRob KRC 3.0, et des paramètres que CAMRob peut prendre en considération, je me suis limitée à la récupération des données correspondantes. En effet, le fichier de donnée CAM peut contenir jusqu'à 26 paramètres selon des positions bien précises. Ainsi, voici les données pouvant être récupérées pour le fichier CSV utilisé par CAMRob :
CAMRob data parameters.
  • Les données récupérées seront donc les cordonnées cartésiennes selon les axes X, Y et Z pour les paramètres 2, 3 et 4. Suite au paramétrage de la buse et de la base du robot Kuka, on récupère les rotations A, B et C. Car elles ne sont pas paramétrées dans le slicer. De plus, on y introduit la vitesse de 0.04m/s qui sera ensuite réglée en pourcentage sur CAMRob, ainsi que l'accélération que l'on a fixé à 1m/s². Tous les autres paramètres sont fixés à 0 car non utilisés. Cela me donne donc en face avant et diagramme de LabVIEW les aperçus suivants :
Diagramme de l'interpréteur GCODE en CSV.
Face avant de l'interpréteur GCODE en CSV.
  • Vendredi, suite à des tests dès le matin avec la présence de messieurs Gragory SANT et Othman LAKHAL, nous avons imprimé pour la première fois avec le Polystyrène, des pièces pleines. Cela fut dans un premier temps compliqué car le slicer CURA n'était pas très précis concernant les premières couches, le motif du remplissage et les pièces n'étaient donc pas parfaites. Nous avons donc essayé d'imprimer des pièces basiques (des disques, des rectangles, une attache fleur, une raquette sans angles et ne nécessitant pas de support) avec différents remplissages (entre 15 et 100%). Suite aux réglages des différents paramètres, au changement de slicer vers Slic3r qui est plus précis et qui nous permet de ne pas faire de motif de remplissage aléatoirement et aux différents tests de la journée, notre réglage le plus précis était donc le suivant :
    • Température Haute de la buse : 250°C ;
    • Température Basse de la buse : 260°C ;
    • Vitesse : 75% de 0.04m/s ;
    • Débit : 0.04V.
    • Et dont les paramètres sur Slic3r étaient les suivants :
Slic3r Parameters.

Semaine 3 (du 22/01/2018 au 28/01/2018)

  • Le premier objectif de cette semaine est maintenant de prendre en compte les vitesses générées par le slicer et non plus de la fixer nous même sur CAMRob en pourcentage de la vitesse maximale. Pour cela, je vais récupérer les données selon le paramètre F des commandes G. Les vitesses sont différentes selon que nous sommes en remplissage, en support, en transfert d'un point à l'autre ou encore en périmètre.
  • De plus, suite aux problèmes rencontrés vendredi, c'est-à-dire que certaines cases étaient vides donc posaient problème lors de la lecture par CAMRob du fichier CSV, j'ai supprimé ses cases car elles permettaient de ne pas fournir de matière PS à la buse pour aller d'un point à l'autre, mais la communication ne se fait pas encore directement entre CAMRob et le CompactRIO.
  • Voici donc le diagramme réalisé et la face avant sur LabVIEW :
Diagramme de l'interpréteur GCODE en CSV.
Face avant de l'interpréteur GCODE en CSV.
  • Afin de pouvoir récupérer les données générées par notre fichier CSV lu par CAMROB, il est nécessaire d'établir une liaison RSI. Cette liaison RSI entre le robot et le PC est nécessaire pour récupérer la vitesse du moteur de la buse afin de ne plus avoir à la fixer nous même.
  • Le prochain objetif est donc de tester de nouvelles pièces pleines ou creuses avec les nouveaux réglages, et par la suite commencer à tester des pièces avec nécessité de support car présentent des angles importants et/ou sont déportées.
  • Mercredi :
    • Test des trajectoires sur le robot KUKA du nouveau programme et essai d'un début de pièce avec support : remarque que le plateau de verre était soumis à une quantité importante de vibrations surtout au changement de trajectoire sur petites pièces même en contrôle T1 (c'est-à-dire sans mode auto). Il était donc nécessaire de trouver un moyen de fixation et de stabilisation pour les futurs tests.
  • Cette semaine, et dans un second temps, j'ai optimisé le fichier LabVIEW:
    • Réalisation de sous-VI de chaque récupération des données intéressanteS (positions X, Y, Z, vitesse F, et vitesse moteur E en tour/min) afin de simplifier l'affichage et de permettre une meilleure ergonomie de l'interface :
Récupération du paramètre X (idem pour Y et Z avec limite de 0).
Récupération de la variable vitesse robot F et conversion en m/s
Calcul de la valeur de la vitesse moteur E à partir de F.
Récupération de la valeur E et rotation inverse si valeur nulle.
Interface utilisateur Labview pour G-Code en CSV.
  • Tests du vendredi et avancées :
    • Ce vendredi, Othman a mis en place la liaison RSI entre le robot (CAMROB) et LabVIEW afin d'envoyer la vitesse moteur traduite par la relation . Cette liaison consiste dons à récupérer la vitesse du moteur de l'extrudeur et de passer en mode auto.
    • Tests :
      • 1er test : pièce pleine avec un remplissage de 30% sur une forme parallélépipédique avec une vitesse du robot à 50% de vitesses de périmètres et de transfert à 60mm/sec, et une vitesse de remplissage à 80mm/sec. Notre première remarque était que le robot était trop lent donc arrêt au bout de 3 couches.
      • 2nd test : pièce identique réduite de 50% selon les axes X et Y pour permettre une réalisation plus rapide, mais avec un remplissage de 30% à une vitesse de 75%. Le robot est légèrement plus rapide et de ce fait nous avons pu terminer la pièce dans les délais. Les principales remarques étaient que les contours étaient effectués trop rapidement, et que l'intérieur, donc le remplissage de la pièce à 30% était bien trop rapide et débitait donc trop de matière.
      • 3ème test : pièce identique, avec un remplissage à 15% et une diminution de la vitesse de remplissage et de transfert avec les nouveaux paramètres.
    • Conclusion de ces tests : nous pouvons désormais réaliser des pièces pleines grâce à l'interface LabVIEW, mais les paramètres de l'impression sont encore à améliorer pour le polystyrène. La dernière pièce réalisée lors de ces tests est prometteuse. Maintenant, il faut chercher les paramètres à récupérer pour améliorer la qualité de l'impression, et surtout augmenter la rapidité et donc optimiser au mieux la quantité de matière pouvant être utilisée dans l'heure (pour rappel 700g/heure de granulés peuvent être transformés par cette buse). Enfin, lors de nos essais, lorsque les moteurs s'arrêtaient, c'est à dire à 0tr/min, il y avait toujours un dépot de matière qui se faisait. Pour eviter ce phénomène, il serait intéressant de voir si nous pouvons réaliser une rétractation de la matière comme il est possible de le faire sur certaines machines 3D telles que celles du fabricarium de l'école.
  • Un des objectifs de la semaine prochaine est donc de réaliser de nouvelles pièces et de permettre une meilleure finition de pièce et donc de changer les paramètres en fonction de notre avancée. Tester aussi si on ajoute des couches supplémentaires au dessus où en dessous pour observer une meilleure finition.

Semaine 4 (du 29/01/2018 au 04/02/2018)

  • Pour contrôler l'un des paramètres qui posaient problème la semaine passée, j'ai tout d'abord essayé de réaliser une rétractation de la matière.

Pour cela, lorsque le débit doit être nul, j'ai remplacé la vitesse du moteur qui était à 0 tour/min à -10 tour/min qui permettra d'éviter un dépot de matière supplémentaire sur la pièce imprimée.

  • L'un des objectif de cette semaine ainsi que de la semaine 5 est d'établir une connexion RSI complète entre Labview et le Kuka :
    • Actuellement, le cheminement suivant doit être suivi pour établir la connexion avec le KUKA doit passer par CAMROB, license expensive :
      • Logiciel de CAO -> Slicer délivrant un GCODE -> Convertisseur GCODE en CSV (Labview) -> USB -> Kuka CAMROB -> RSI -> Labview
    • Le but est de diminuer toutes les manipulations intermédiaires et de réaliser le cheminement suivant :
      • Logiciel de CAO -> Slicer délivrant un GCODE -> Convertisseur GCODE en CSV (Labview) -> RSI -> Communiquer avec KUKA et Tête D'impression (Buse ALLTRENDS)
  • Vendredi, nous avons imprimé pour la première fois des pièces telles une grenouille et des parallélépipèdes afin de contrôler la vitesse et de présenter à une entreprise intéressée par le projet, le travail effectué. Nous avons remarqué que la vitesse introduite n'était pas respectée. En effet, en ayant bridé l'accélération à 0.1m/s², le robot limitait donc la vitesse et on observait donc une dégradation de la matière à l'intérieur de la buse. Lors du dernier essai de la journée, nous avons modifié ce paramètre, et effectivement, la dégradation du polystyrène était moins observée.
Support et premières couches du cube.
Première grenouille imprimée.

On a remarqué qu'il faudrait améliorer les contours par la suite.

Semaines 5, 6 et 7 (du 05/02/2018 au 20/02/2018)

  • Le contrôleur MYRio a été commandé semaine 5 et réceptionné le jeudi 15 février.
  • Ensuite, l'objectif des semaines 4 et 5 est donc d'établir la connexion RSI entre Labview et Kuka.

La connexion RSI (Robot Sensor Interface) qui est une interface de communication Ethernet entre le robot industriel et un système de capteurs, et qui doit être intégré au programme KRL. Pour se faire, il est nécessaire d'établir des fichiers SRC, XML et RSI. J'utilise donc le logiciel RSIVisualShell afin de réaliser la connexion RSI.

  • Les données prévelées du fichier CSV généré par Labview sont donc inscrites en entrées par réception de bloc de données au format XML.

Le mode de traitement des signaux est fixé à 12ms avec filtrage (variable de champ #IPO).

  • Ci-dessous les fichiers réalisés :
    • Fichier XML :
Fichier XML.
    • Fichier RSI :
Fichier RSI.
    • Fichier SRC :
Fichier SRC.

Difficultés rencontrées :

  • Durant presque une semaine, j'ai été bloquée suite à l'ajout inopportun d'un espace vide qui ne permettait donc pas la lecture du fichier RSI ;
  • Le fichier source 8 jours avant d'être débloqué. En effet, j'avais effectué les essais sur le partage d'une seule donnée via la liaison RSI et le problème d'envoi/réception était correct. Cependant, lorsque j'ai ajouté toutes les valeurs à transmettre, le robot envoyait bien les instructions mais ne recevait aucune variable. Lundi 19 février j'ai donc décidé de reprendre le code ligne par ligne pour voir la différence, et en copiant le programme SRC initial ligne par ligne, j'ai supprimé l'erreur tout en conservant exactement le même code. Je soupçonne donc que des caractères inscrits dans mon fichier posaient problème mais je ne sais pas lesquels.
  • Ensuite, toujours dans le fichier source, j'ai eu de la difficulté à trouver le moyen de changer les base et outil pour le système Robot+Buse, mais après lecture de la documentation, l'aide de Othman, j'ai finalement trouvé l'erreur ;
  • Pour finir, la dernière difficulté rencontrée réside en l'affectation en temps réelle de la vitesse du robot. En effet, je souhaitais effectuer directement l'affectation via les variables $VEL.CP=$SEN_PREA[9], or celle-ci doit être modifiée via la commande BAS(VEL_CP,$SEN_PREA[9]). J'ai donc passé ma journée de mardi à résoudre ce problème.

Semaine 7 + Soutenance (du 20/02/2018 au 21/02/2018)

  • Finalisation du projet.
  • Rédaction du rapport.
  • Réalisation de la présentation

Rapport

Rapport rendu : Fichier:MARRUCHO Diana Rapport PFE.pdf