L’impression 3D permet de fabriquer quantité d’objets. Mais la production demeure très lente. Une des façons d’améliorer la performance pourrait consister à optimiser le code interprété par les machines. Suite à une première étude technique, Inria mène actuellement une action exploratoire dans laquelle trois équipes de recherche revisitent la chaîne logicielle allant du modèle 3D au langage bas niveau, comme l’explique Damien Hardy, le scientifique rennais à l’origine du projet.
C’est une histoire qui commence dans un garage. Celui de Damien Hardy, enseignant-chercheur à l’Université de Rennes et membre de Pacap, une équipe spécialisée dans la compilation pour la performance des langages bas niveau*. À ses heures perdues, il y fabrique des jouets pour sa fille à l’aide de deux imprimantes 3D à filament fondue.
Mars 2020, arrive le covid. Confinement général. Pénurie de masques. Mais aussi de visières en plastique pour les personnels soignants. Dans la France entière des initiatives voient le jour pour en fabriquer avec les moyens du bord. Damien Hardy transforme son garage en atelier de production. Infirmière, sa voisine se charge de la distribution. Au total, plus de 200 visières vont ainsi être imprimées et livrées.
Optimisation des trajets
Mais au passage, le scientifique prend conscience d’un problème : la lenteur de l’impression. “Au début, cela me prenait 2h30 par pièce !” Assez naturellement, une question commence donc à se profiler : “ne pourrait-on pas améliorer la performance ?” Un élément en particulier retient l’attention : le trajet de la buse pour déposer le filament de matière durant l’impression. Ou plus exactement les longs parcours à vide pour aller d’un point à l’autre entre ces dépôts. “C’est un problème classique d’optimisation des trajets. Dans la littérature, on appelle cela le problème du voyageur de commerce. Comment passer par toutes les villes en faisant le minimum de kilomètres ?”
De fil en aiguille, décision est prise de lancer une étude technique afin de savoir si le sujet mérite que l’on s’y penche plus profondément. Pour ce tour d’horizon technologique, Damien Hardy reçoit le renfort d’Erven Rohou, responsable de l’équipe Pacap, et de trois ingénieurs du Service expérimentation et développement d’Inria.
Découper tranche par tranche
Dans la chaîne logicielle de l’impression 3D, les objets sont d’abord modélisés à l’aide d’outils traditionnels de CAO. Les utilisateurs exportent ensuite les modèles qu’ils ont créés vers un format de fichier appelé STL. Ce format décrit la surface externe du modèle à l’aide d’un maillage de triangles. Mais la machine ne peut pas comprendre cette représentation. Il faut d’abord la transformer. C’est le rôle d’un autre logiciel qui va s’avérer ici crucial : le trancheur. À partir du fichier STL, il va découper le modèle 3D en couches horizontales successives où l’imprimante devra déposer du filament. Pour ce faire, le trancheur produit un fichier d’instructions en G-code. Il s’agit d’un langage de bas niveau compréhensible par les machines-outils à commande numérique. L’imprimante va trouver dans ce fichier texte des milliers de lignes d’instructions stipulant, les unes après les autres, l’ordre pour le parcours d’impression ainsi que la quantité de matière à déposer le long de ce parcours.
“Dans une certaine mesure, ce processus s’apparente à de la compilation pour produire du langage bas niveau. Il était donc intéressant de voir si nos approches classiques dans le domaine pouvaient contribuer à en améliorer la performance.”
L’étude technique va durer trois mois pour se terminer en juillet 2020. Elle constitue aussi une première preuve de concept. “Nous avons cherché dans la littérature un algorithme permettant de traiter ce problème du voyageur de commerce. En l’occurrence, nous avons exploité OR-Tools qui est une bibliothèque dans laquelle Google rassemble divers outils pour effectuer ce genre de choses.” Candidat retenu : l’heuristique de Christophides, connue pour ses bons résultats dans ce type de résolution. Durant des tests, les chercheurs vont parvenir à accélérer l’impression d’une visière de 12%. Un signe encourageant avant d’aller plus loin.
Réussir le passage à l’échelle
Au passage, un autre scientifique s’implique dans cette recherche : Fabrice Lamarche, membre de l’équipe rennaise MimeTIC* et spécialiste de la modélisation. “Son bagage en 3D et planification nous a beaucoup aidé. En raisonnant avec cette culture que nous n’avions pas, il nous a permis de réussir un passage à l’échelle. Au départ, notre programme d’analyse et d’optimisation demandait une nuit de calcul. Avec le background de Fabrice, nous sommes tombés à 5 minutes.”
Ces résultats préliminaires sont présentés ensuite à Sylvain Lefebvre, responsable de l’équipe MFX au centre Inria de Nancy*. “Il possède une grande expérience en impression 3D. Il est d’ailleurs le créateur du trancheur IceSL. Notre étude lui a paru intéressante. Ce qui nous a conforté dans l’idée de solliciter une Action exploratoire Inria.”
Action exploratoire OFAST3D
Ce dispositif de l’institut permet de faciliter l’émergence de nouvelles thématiques de recherche en donnant aux scientifiques les moyens de tester des idées originales. Demande acceptée. L’action exploratoire débute en janvier 2022. Elle prend le nom d’Ofast3D. Elle implique les trois équipes. Une dizaine d’imprimantes en tous genres arrivent au centre de recherche Inria de Rennes. “Nous avons aussi obtenu les moyens pour recruter un ingénieur* sur une durée de 30 mois ainsi qu’un post-doctorant. Ce deuxième poste reste actuellement à pourvoir. Sur les fonds propres de l’équipe Pacap, nous employons par ailleurs un deuxième ingénieur* qui était auparavant chez MFX . À cela s’ajoutent deux étudiants de master qui travaillent au laboratoire une journée par semaine.”
Quelle direction donner à ces travaux ? Un choix possible consisterait à intégrer les améliorations proposées au sein d’un trancheur. Mais ce n’est pas l’option envisagée. “En pratique, les utilisateurs ont leurs habitudes. Quand ils maîtrisent un logiciel, ils ne souhaitent pas en changer. Nous allons donc plutôt nous insérer à la sortie du trancheur, quel qu’il soit. Nous prendrons le G-code pour l’analyser puis en produire une version optimisée.”
Ce nouvel outil dans la chaîne devra aussi offrir à l’utilisateur des fonctions de paramétrage pour lui permettre d’arbitrer lui même entre vitesse et qualité à différents endroits de la pièce à imprimer. La version bêta de l’application sera testée en situation réelle par l’entreprise Protype 3D, partenaire du projet. Basée à Melesse, près de Rennes, cette société propose, entre autre, des services d’impression à la demande.
Parallèlement, les scientifiques continuent d’étendre le champs d’investigation. “Nous développons par exemple un simulateur qui nous permettra d’estimer le temps de production nécessaire pour une pièce sans devoir l’imprimer réellement. Grâce à cela, nous pourrons mener nos expériences plus rapidement sans avoir à attendre le travail de la machine.”
|