3D printing - or, generally speaking, Additive Manufacturing - is commonly used in several fields nowadays, providing different advantages with respect to the conventional production processes. Nevertheless, like other production processes, it is also subject to errors that affect the quality of the products and the accuracy and precision of the process itself. This work presents a self-developed methodology that allows detecting the errors on the surface of a 3D model, using a Python algorithm able to identify deviations between the printed component model and the designed model; the two models are provided in the form of point clouds. 3D registration is initially performed to align the two clouds and to project the printed component into the same coordinate system as the designed model. Following, a kD-Tree data structure with a Nearest Neighbour Search algorithm has been implemented in order to define the right correspondences between the points of the two clouds and evaluate their distances; these are successively compared to a threshold value defined before running the code, in order to identify only those points that have a higher distance value: these are the detected errors. Different threshold value results are analyzed in the document and the error detection procedure is illustrated. Finally, a file in output is generated: it contains, for each detected error point, information related to the G-Code line responsible of the error generation and its line number; in this way, the user is able to understand which are the lines that generate the deviations and he can easily go through the G-Code file to directly find them.

La stampa 3D - o, in generale, l’Additive Manufacturing - è oggi comunemente utilizzata in diversi settori, offrendo diversi vantaggi rispetto ai processi di produzione convenzionali. Tuttavia, come altri processi produttivi, è soggetta a errori che influiscono sulla qualità dei prodotti e sull’accuratezza e precisione del processo stesso. Questo lavoro presenta una procedura che consente di rilevare gli errori sulla superficie di un modello 3D, utilizzando un algoritmo Python in grado di identificare le deviazioni tra il modello del componente stampato e il modello progettato; i due modelli sono forniti sotto forma di nuvole di punti. Inizialmente, viene eseguita la registrazione 3D per allineare le due nuvole di punti e proiettare il componente stampato nello stesso sistema di coordinate del modello disegnato. In seguito, è stata implementata una struttura dati kD-Tree con un algoritmo Nearest Neighbour Search per definire le giuste corrispondenze tra i punti delle due nuvole e valutare le loro distanze; queste vengono successivamente confrontate con un valore di soglia definito prima dell’esecuzione del codice, al fine di identificare solo i punti che hanno un valore di distanza maggiore: essi sono gli errori rilevati dall’algoritmo. Nel documento vengono analizzati i risultati di diversi valori di soglia e viene mostrata la procedura di rilevamento degli errori. Infine, viene generato un file di output che contiene, per ogni punto di errore rilevato, le informazioni relative alla linea di file G-Code responsabile della generazione dell’errore e il suo numero di linea; in questo modo, l’utente è in grado di capire quali sono le linee che generano le deviazioni e può facilmente risalire ad esse nel file G-Code ed identificarle.

Precision enhancement of the 3D Printing process using Automated visual error detection

ALIETTI, LUCA
2021/2022

Abstract

3D printing - or, generally speaking, Additive Manufacturing - is commonly used in several fields nowadays, providing different advantages with respect to the conventional production processes. Nevertheless, like other production processes, it is also subject to errors that affect the quality of the products and the accuracy and precision of the process itself. This work presents a self-developed methodology that allows detecting the errors on the surface of a 3D model, using a Python algorithm able to identify deviations between the printed component model and the designed model; the two models are provided in the form of point clouds. 3D registration is initially performed to align the two clouds and to project the printed component into the same coordinate system as the designed model. Following, a kD-Tree data structure with a Nearest Neighbour Search algorithm has been implemented in order to define the right correspondences between the points of the two clouds and evaluate their distances; these are successively compared to a threshold value defined before running the code, in order to identify only those points that have a higher distance value: these are the detected errors. Different threshold value results are analyzed in the document and the error detection procedure is illustrated. Finally, a file in output is generated: it contains, for each detected error point, information related to the G-Code line responsible of the error generation and its line number; in this way, the user is able to understand which are the lines that generate the deviations and he can easily go through the G-Code file to directly find them.
LÜTJEN, MICHAEL
ING - Scuola di Ingegneria Industriale e dell'Informazione
21-lug-2022
2021/2022
La stampa 3D - o, in generale, l’Additive Manufacturing - è oggi comunemente utilizzata in diversi settori, offrendo diversi vantaggi rispetto ai processi di produzione convenzionali. Tuttavia, come altri processi produttivi, è soggetta a errori che influiscono sulla qualità dei prodotti e sull’accuratezza e precisione del processo stesso. Questo lavoro presenta una procedura che consente di rilevare gli errori sulla superficie di un modello 3D, utilizzando un algoritmo Python in grado di identificare le deviazioni tra il modello del componente stampato e il modello progettato; i due modelli sono forniti sotto forma di nuvole di punti. Inizialmente, viene eseguita la registrazione 3D per allineare le due nuvole di punti e proiettare il componente stampato nello stesso sistema di coordinate del modello disegnato. In seguito, è stata implementata una struttura dati kD-Tree con un algoritmo Nearest Neighbour Search per definire le giuste corrispondenze tra i punti delle due nuvole e valutare le loro distanze; queste vengono successivamente confrontate con un valore di soglia definito prima dell’esecuzione del codice, al fine di identificare solo i punti che hanno un valore di distanza maggiore: essi sono gli errori rilevati dall’algoritmo. Nel documento vengono analizzati i risultati di diversi valori di soglia e viene mostrata la procedura di rilevamento degli errori. Infine, viene generato un file di output che contiene, per ogni punto di errore rilevato, le informazioni relative alla linea di file G-Code responsabile della generazione dell’errore e il suo numero di linea; in questo modo, l’utente è in grado di capire quali sono le linee che generano le deviazioni e può facilmente risalire ad esse nel file G-Code ed identificarle.
File allegati
File Dimensione Formato  
2022_07_Alietti_01.pdf

non accessibile

Descrizione: Thesis document
Dimensione 4.5 MB
Formato Adobe PDF
4.5 MB Adobe PDF   Visualizza/Apri
2022_07_Alietti_02.pdf

accessibile in internet per tutti

Descrizione: Executive Summary
Dimensione 483.09 kB
Formato Adobe PDF
483.09 kB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/189133