The disclosure relates generally to the field of 3D printing. More specifically, the disclosure relates to automated methods for calibrating extrusion systems parameters in material extrusion additive manufacturing processes.
Additive Manufacturing (AM) has been gaining a lot of popularity for its fast-prototyping advantage and commercial availability. Among all AM methods, material extrusion additive manufacturing (MEAM) is the predominant method. High-quality MEAM process requires accurate synchronization between the extrusion system and the motion system. To achieve this goal, parameters in MEAM processes need to be properly chosen and calibrated.
Traditionally, parameters in MEAM processes are selected by users depending on previous experiences and/or other similar approaches. However, when subject to new materials and/or different working conditions (e.g., printing time, nozzle speed, extrusion rate, extruder temperature, bed temperature, printing speed, retraction condition, fan rotation parameters, flow control parameters, minimum/maximum layer time, minimum/maximum layer thickness, base plate adhesion, different nozzles, different printing materials, etc.), widely adopted traditional methods for calibrating parameters are still based on trial and error through sequential groups of test printing and quality evaluation.
An example of the traditional method is Marlin, which designed a printing pattern for the linear advance factor calibration (marlinfw.org/docs/features/lin_advance.html). In this Marlin pattern, a series of tracks are printed with different pre-chosen linear advance factor(s) applied for each track. However, the linear advance factor calibration method as recited in Marlin is flawed at least because users are still required to choose the optimal set of parameters by evaluating the printing quality of the printed tracks after they are printed; users still need to spend a lot of time and a lot of printing materials in the linear advance factor calibration process given different working conditions despite only straight tracks are printed; and users still need to re-tune parameters when working conditions change since the previously well-tuned parameters are only valid for a specific set of working conditions.
To tune retraction settings in MEAM processes according to Marlin and other traditional methods, users print CAD models that require numerous retractions within each layer (e.g., cylindrical tower tests, www.yeggi.com/q/retraction+tower+test/) and change the parameters until no stringing (a.k.a., oozing, whiskers, or “hairy” prints) of the printing material is noticed.
In summary, these traditional trial and error methods do not extend and/or apply well to various MEAM processes and can also be extremely time-consuming and material-consuming due to their trial and error nature. Additionally, the previous printing results in these traditional methods are only valid for a specific set of working conditions and cannot be quantified and/or adopted for reference in subsequent tuning experiments in these traditional methods when working conditions change.
The following presents a simplified summary of the invention in order to provide a basic understanding of some aspects of the invention. This summary is not an extensive overview of the invention. It is not intended to identify critical elements or to delineate the scope of the invention. Its sole purpose is to present some concepts of the invention in a simplified form as a prelude to the more detailed description that is presented elsewhere.
In some embodiments, the disclosure provides a method for calibrating extrusion parameters in an additive manufacturing system. The method includes the following steps.
(1) Executing extrusion commands and printing a plurality of tracks based on one or more printing templates at different extrusion rates.
(2) Scanning the plurality of tracks to obtain at least one image of the plurality of tracks.
(3) Processing the at least one image of the plurality of tracks to obtain geometry information. The geometry information includes width and height of each one of the plurality of tracks.
(4) Generating a printing model based on the geometry information and the extrusion commands.
(5) Evaluating the printing model by following steps: (5.1) printing at least one test and collecting printing data from the at least one test, (5.2) comparing the printing data with data produced from the printing model to obtain a printing error result, and (5.3) determining whether the printing error result is within a pre-defined threshold.
(6) If the printing error result from step (5) is within the pre-defined threshold, adopting the printing model in step (4) as a reference for choosing extrusion parameters at a given extrusion rate.
(7) If the printing error result from step (5) is not within the pre-defined threshold, repeating steps (1)-(6).
Optionally, the extrusion commands are compiled in G-code.
Optionally, the one or more printing templates include at least one item selected from the group consisting of a steady-state template, a material leakage template, and a velocity transition template.
Optionally, the height is obtained by a laser distance sensor, the laser distance sensor being part of a scanning module.
Optionally, step (2) includes projecting a laser beam towards at least one of the printed tracks at an angle along a direction on a printing bed, the laser beam is generated by a laser module, and the laser module is part of a scanning module.
Optionally, the angle is between about 45 degrees to about 50 degrees.
Optionally, step (3) includes the following steps: (3.1) converting a color image to a gray image, the color image being captured by a camera; (3.2) filtering high frequency noises from the gray image; (3.3) for each one of the plurality of tracks, determining a location point and a straight line through the location point in the gray image; and (3.4) for each one of the plurality of tracks, determining the width using intersection points of: the straight line associated with a respective said track; and portions of the respective said track highlighted by the laser beam.
Optionally, the width of a respective said track is determined using a distance between two edges of the respective said track along the direction of the laser beam on the printing bed.
Optionally, the width of a respective said track is determined using a distance between two of the intersection points.
Optionally, the printing model is generated by a polynomial function of second or higher order.
In other embodiments, the disclosure provides an additive manufacturing system. The system includes a processor, a printing nozzle, and a scanning module. The scanning module includes a camera and the processor is configured to perform the following steps.
(1) Executing extrusion commands and printing a plurality of tracks based on one or more printing templates at different extrusion rates.
(2) Scanning the plurality of tracks to obtain at least one image of the plurality of tracks.
(3) Processing the at least one image of the plurality of tracks to obtain geometry information. The geometry information includes width and height of each one of the plurality of tracks.
(4) Generating a printing model based on the geometry information and the extrusion commands.
(5) Evaluating the printing model by following steps: (5.1) printing at least one test and collecting printing data from the at least one test, (5.2) comparing the printing data with data produced from the printing model to obtain a printing error result, and (5.3) determining whether the printing error result is within a pre-defined threshold.
(6) If the printing error result from step (5) is within the pre-defined threshold, adopting the printing model in step (4) as a reference for choosing extrusion parameters at a given extrusion rate.
(7) If the printing error result from step (5) is not within the pre-defined threshold, repeating steps (1)-(6).
Illustrative embodiments of the present disclosure are described in detail below with reference to the attached drawing figures.
The following describes some non-limiting exemplary embodiments of the invention with reference to the accompanying drawings. The described embodiments are merely a part rather than all of the embodiments of the invention. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the disclosure shall fall within the scope of the disclosure.
Some embodiments of the disclosure provide an automated method for calibrating extrusion parameters of a 3D printer. In some embodiments of automated methods, a 3D printer first executes programmable extrusion commands to actuate one or more printing nozzles to print one or more straight or non-straight tracks based on pre-designed printing templates at various different extrusion rates on the printing bed of the 3D printer. The geometry information (e.g., width and height) of the printed tracks is then captured by one or more cameras in a scanning process and extracted by an internal or external processer in an image processing step. Next, a printing model is generated based on the extracted geometry information and the executed programmable extrusion commands. Last, the generated model is subjected to a model evaluation process and is then implemented as a reference for choosing extrusion parameters of the 3D printer if the error of the model evaluation process is within a pre-defined threshold. Aforementioned method steps may be repeated if the error of the model evaluation process is outside the pre-defined threshold Additionally, other embodiments of the disclosure provide an automated method for calibrating extrusions parameters of a 3D printer based on laser triangulation-based data acquisition and model formulation.
In some examples, the generated printing model may include various mathematical relationships among different printing parameters including, but not limited to: printing time, nozzle speed, extrusion rate, extruder temperature, bed temperature, printing speed, retraction condition, fan rotation parameters, flow control parameters, minimum/maximum layer time, minimum/maximum layer thickness, base plate adhesion, different nozzles, different printing materials, etc.
Step S101 includes performing one or more printing tests according to pre-designed patterns, shapes, or designs in various printing templates at various extrusion rates. This may be done by one or more of the printing nozzles of a printing system (e.g., a 3D printer), and step S101 may also include performing one or more groups of various printing tests. In some examples of step S101, the printing system may execute programmable extrusion commands to acuate one or more printing nozzles of the printing system to print a series of parallel straight tracks based on pre-designed printing templates at different extrusion rates on its printing bed. Here, the executed programmable extrusion commands may be complied in G-code or other computer numerical control (CNC) programming languages.
It is worth noting that step S101 of the claimed method is not a trial and error process as implemented by other traditional calibration methods in 3D printing. A difference between the present disclosure and the traditional calibration methods includes at least that the traditional calibration methods are inefficient, time consuming, and material consuming because they require a lot of printing tests. Previous printing results of these traditional methods are only valid for a specific set of working conditions and cannot be quantified and/or adopted for reference in subsequent tuning experiments in these traditional methods when working conditions change. To the contrary, the present disclosure requires only limited number of printing tests (e.g., straight or non-straight tracks) which guarantees a low printing material consumption and a short printing time, and previous printing results may be quantified and/or adopted for reference in subsequent tuning experiments when working conditions change.
For step S101, a series of printing templates may be designed to identify and/or correspond to different printing parameters including, but not limited to: printing time, nozzle speed, extrusion rate, extruder temperature, bed temperature, printing speed, retraction condition, fan rotation parameters, flow control parameters, minimum/maximum layer time, minimum/maximum layer thickness, base plate adhesion, different nozzles, different printing materials, etc. These printing templates may be, individually or in combination, pre-designed before step S101, modified in real-time during step S101, and/or updated after step S101.
In some examples, the series of printing templates may include a steady-state template, a material leakage template, and/or a velocity transition template. One or more of these templates may be applied, individually or in combination, to different nozzles of the printing system for different nozzle performance evaluation processes.
The steady-state template may be designed to map the relationship model between the flow/extrusion rate and the steady-state geometry. The identified relationship model may be used as reference to select one or more flow/extrusion rates to achieve one or more target widths and/or heights. There are various ways to implement such steady-state template. One example of the steady-state template 200 is shown in
The material leakage template may be designed to map the relationship between flow/extrusion rate and material leakage time under a fixed retraction setting. The identified time then may be used for choosing the maximum non-extrusion travel distance. One example of the material leakage template 300 is shown in
The velocity transition template may be designed to explore the transient response when a change in the extrusion command is given to the extruder. The relationship between the identified transient response and extrusion command may be used for choosing the linear advance factor. One example of the velocity transition template 400 is shown in
Step S102 includes a scanning process after the printing tests in step 101 to obtain the geometry information (e.g., width, height, etc.) of the printed tracks in step S101. In this step S102, the printing system now switches from one or more the printing nozzles in step S101 to a modified toolhead and repeat the same motion commands as those already performed in the printing tests in step S101. In some examples of step S102, the printing system may switch from one or more the printing nozzles in step S101 to a scanning module and the printing system may execute programmable motion commands complied in G-code or other computer numerical control (CNC) programming languages to repeat the same movements (motion commands) already performed by the printing nozzles in step S101. In other words, the scanning module of the printing system in step S102 follow the same moving trajectories of the printing nozzles in step S101. In these examples, the scanning module may include, individually or in combination, one or more cameras and/or one or more laser modules.
The one or more cameras may be configured to capture the geometry information of the printed tracks in step S102 by recorded images and/or videos. It is worth noting that while one or more cameras are utilized in the above examples, other optical sensors and/or detecting devices may also be used to capture the geometry information by digital and/or physical formats other than recorded images and/or recorded videos. It is further worth noting that while width and height are included in the captured geometry information in these examples of step S102. Other geometry information may also be captured and/or calculated by the printing system, including, but not limited to: width, height, length, depth, angle, orientation, track shape, track offset, track spacing, track density, track pattern, track design, etc.
In some examples, the scanning process in step S102 may include a laser triangulation scanning method and/or a laser distance sensor scanning method. One example 500 of the hardware implementation of the laser triangulation method and/or the laser distance sensor scanning method here in step S102 is shown in
In the example 500 of the laser triangulation scanning method as shown in
The scanning module 510 as shown in
In an example of the laser triangulation scanning method, the scanning module 510 may move along the printing direction of the printing nozzle 550 of the printing system and the geometry information of the printed tracks may be then captured in a video by one or more cameras 513. The laser generator in the laser module 512 for emitting the one or more laser beams 520 may be configured to highlight the printed tracks to avoid potential errors and background noises from the ambient illumination and/or the printing bed 530 surface.
In an example of the laser distance sensor scanning method as shown in
In some examples, the CMOS type micro laser distance sensor may be a Panasonic® HG-C1050 sensor which has a measurement center distance of 50 mm, a measurement range of ±15 mm, a repeatability of 30 μm, a linearity of ±0.1% F.S., and a temperature characteristics of 0.03% F.S./° C.
In an example 600 of the laser distance sensor scanning method, the geometry information may be captured by scanning a printed track 610 vertically at equally-distanced points as shown in
More specifically, in the example 600 shown in
Step S103 includes an image and data processing step where the printing system extracts the geometry information of the printed tracks captured in step S102 from recorded images and/or recorded videos.
In an example of an image and data processing step, the data processing may be based on one or more libraries of programming functions for computer visions (e.g., Python OpenCV). The image processing step in this example is described as follows.
An example 700 of the image processing step is shown in
In an example of the image processing step, the printing system may perform the following steps to measure the width of each printed track. First, the captured image may be converted from a color image to a gray image by a Python OpenCV program (e.g., the cv2.cvtColor) or other applicable programs. Second, the converted gray image may be filtered by a Python OpenCV Gaussian filter (e.g., cv2.GaussianBlur) or other image filters to filter high frequency noises. Third, a pre-determined location point and a straight line from the pre-determined location point along a corresponding direction may be determined where the intersection points of the straight line and the highlighted blocks are used to determine block width.
In an example 800 shown in
Here, it is worth noting that the projected laser beam may or may not be vertical in the captured image as shown in
In an example of a laser distance sensor scanning method, the data acquisition and processing step afterwards may be straightforward in that one or more cameras may be used to capture the geometry information by video, the height information of the printed track may be obtained in real time directly from sensors, and the width information of the printed track may be measured by calculating the distance between two edges of the height peaks of the printed track as explained in step S102.
Step S104 includes a model generation step where the geometry information (e.g., width and height) obtained in step S103 and, alternatively or additionally, the extrusion rate commands may be used with or without a loss of generality to generate a printing model. In some examples, the measured geometry information and extrusion rate command may be used for model generation through one or more curve fitting processes. Additionally or alternatively, the printing model generation may be implemented by second-order polynomial functions based on the obtained geometry information of the printed tracks and the extrusion rate commands in G-code or other computer numerical control (CNC) programming languages with or without a loss of generality. In other examples, other mathematical models of higher order may implement the printing model generation. More specifically, mathematical models of higher order may be implemented based on the fitting results if the fitting error is too high for second-order models, models of higher order may be selected based on the fitting accuracy in the simulation. Additionally, the printing model generation may also be implemented by other mathematical tools and models included in commercially available software programs such as those available in MATLAB—MathWorks, Origin—OriginLab, Microsoft Excel, etc.
In some examples of step S104, a user may run one or more printing tests, measure the actual geometry information (e.g., width, height, etc.) of one or more printed tracks and generate various printing models using mathematical models based on the actually measured geometry information of the printed tracks, various extrusion rates, and/or other printing parameters in step S101.
Step S105 includes a model evaluation step where the printing model generated in step S104 is evaluated by one or more simulations to determine whether the model generated in step S104 meets the requirement, and if not, whether additional tests are needed to improve the model generated in step S104.
In an example of the model evaluation step S105, the printing system may perform one or two sets of printing tests and the data collected in these printing tests may be used to compare with the results computed by the model generated in step S104. If the error between the printing tests in step S105 and the model generated in step S104 is within a pre-defined threshold, the generated model is considered complete and the model generated in step S104 may then be implemented as a reference for choosing extrusion parameters of the printing system. If the error between the two is outside the pre-defined threshold, more cycles of steps 101, 102, 103, and 104 may be repeated. Optionally, the pre-defined threshold may be chosen as 2% to 5% of the root mean square of the measured output.
Various embodiments of the disclosure may have one or more the following effects. In some embodiments, the disclosure may help to avoid trial and error calibration for different kinematic setups. In other embodiments, the disclosure may automate the parameter optimization process through generating models of different process parameters from limited number of printing tests and adopting them as a reference for parameter selection.
Many different arrangements of the various components depicted, as well as components not shown, are possible without departing from the spirit and scope of the present disclosure. Embodiments of the present disclosure have been described with the intent to be illustrative rather than restrictive. Alternative embodiments will become apparent to those skilled in the art that do not depart from its scope. A skilled artisan may develop alternative means of implementing the aforementioned improvements without departing from the scope of the present disclosure.
It will be understood that certain features and subcombinations are of utility and may be employed without reference to other features and subcombinations and are conmoduled within the scope of the claims. Unless indicated otherwise, not all steps listed in the various figures need be carried out in the specific order described.