Methods, apparatus, 3D printers, and storage media for 3D printers
By synchronizing the time of the camera system and motion control system in the 3D printer, the time alignment of image data and coordinate data is achieved, solving the problem that the image cannot accurately reflect the real pattern during the printing process. This enables timely detection and repair of printing defects and improves printing accuracy.
Patent Information
- Application Number
- CN202111050567.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-09-08
- Publication Date
- 2025-12-02
- Estimated Expiration
- 2041-09-08
AI Technical Summary
In the current 3D printer process, because the motion controller and camera system are asynchronous systems, the captured images cannot accurately reflect the actual printed pattern, making it difficult to detect printing defects in a timely manner.
By introducing the concept of system synchronization, the camera system and motion control system are synchronized in time. The interrupt source is used to synchronize image data and coordinate data, thereby achieving time alignment between image data and coordinate data. A true depth map is generated and compared with the expected depth map to detect printing defects.
It enables image data to accurately reflect the real pattern during the printing process, allowing for timely detection and repair of printing defects and improving printing accuracy.
Smart Images

Figure CN115771267B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of 3D printing technology, and more specifically to methods for 3D printers, methods for detecting printing defects, apparatus for 3D printers, apparatus for detecting printing defects, 3D printers, computer-readable storage media, and computer program products. Background Technology
[0002] 3D printing technology, also known as additive manufacturing, is a technology that uses digital model files as a basis and employs adhesive materials to construct objects layer by layer. 3D printing is typically achieved using 3D printers. 3D printers, also called three-dimensional printers or stereoprinters, are a type of rapid prototyping equipment. 3D printers are commonly used in mold making, industrial design, and other fields to manufacture models or parts. A typical 3D printing technology is fused deposition modeling (FDM), which builds objects by selectively depositing molten material layer by layer along a predetermined path. The material used is thermoplastic polymer in filament form. Currently, there is still significant room for improvement in the print quality of 3D printers.
[0003] The methods described in this section are not necessarily methods that had been previously conceived or adopted. Unless otherwise specified, no method described in this section should be assumed to be prior art simply because it is included in this section. Similarly, unless otherwise specified, the issues mentioned in this section should not be considered to be accepted in any prior art. Summary of the Invention
[0004] This disclosure provides methods and apparatus for 3D printers, methods and apparatus for detecting printing defects, 3D printers, computer-readable storage media, and computer program products.
[0005] According to one aspect of this disclosure, a method for a 3D printer is provided. The 3D printer includes a printer nozzle, a printing platform, a motion controller for controlling the movement of at least one of the printer nozzle and the printing platform based on coordinate data to perform a printing process, a camera for capturing a pattern printed by the printer nozzle during the printing process to generate image data, and an application processor for processing the coordinate data and the image data. The motion controller and the application processor are communicatively connected to the same interrupt source. The method includes: at the application processor: receiving an interrupt signal from the interrupt source; recording a first time at which the interrupt signal is received, the first time indicating a time relative to a time reference of the application processor; receiving image data from the camera corresponding to the first time; receiving a second time from the motion controller and coordinate data corresponding to the second time, the second time indicating a time relative to a time reference of the motion controller at which the interrupt signal is received from the interrupt source; and performing a conversion between the first time and the second time such that the image data corresponding to the first time and the coordinate data corresponding to the second time are time-synchronized.
[0006] According to another aspect of this disclosure, a method for detecting printing defects is provided, comprising: performing the method described above during the printing of a current slice of a target object to obtain time-synchronized image data and coordinate data for the current slice; generating a first depth map based on the time-synchronized image data and coordinate data, the first depth map containing true depth information of the current slice relative to a camera; acquiring a second depth map, the second depth map containing expected depth information of the current slice relative to a camera; and determining the existence of a first printing defect in response to determining that the depth difference between the first depth map and the second depth map is greater than a preset second threshold.
[0007] According to another aspect of this disclosure, a 3D printer is provided, comprising: a printer nozzle; a printing platform; a motion controller for controlling the movement of at least one of the printer nozzle and the printing platform based on coordinate data to perform a printing process; a camera for capturing a pattern printed by the printer nozzle during the printing process to generate image data; and an application processor for processing the coordinate data and the image data, wherein the motion controller and the application processor are communicatively connected to the same interrupt source, and the application processor is configured to perform the method according to the above.
[0008] According to another aspect of this disclosure, an apparatus for a 3D printer is provided. The 3D printer includes a printer nozzle, a printing platform, a motion controller for controlling the movement of at least one of the printer nozzle and the printing platform based on coordinate data to perform a printing process, a camera for capturing a pattern printed by the printer nozzle during the printing process to generate image data, and an application processor for processing the coordinate data and the image data. The motion controller and the application processor are communicatively connected to the same interrupt source. The apparatus resides on the application processor and includes: a module for receiving an interrupt signal from the interrupt source; a module for recording a first time at which the interrupt signal is received, the first time indicating a time relative to a time reference of the application processor; a module for receiving image data from the camera corresponding to the first time; a module for receiving a second time from the motion controller and coordinate data corresponding to the second time, the second time indicating a time relative to a time reference of the motion controller at which the interrupt signal is received from the interrupt source; and a module for performing a transition between the first time and the second time such that the image data corresponding to the first time and the coordinate data corresponding to the second time are time-synchronized.
[0009] According to another aspect of this disclosure, an apparatus for detecting printing defects is provided, comprising: a module for performing the method described above during a current slice of a target object being printed to obtain time-synchronized image data and coordinate data for the current slice; a module for generating a first depth map based on the time-synchronized image data and coordinate data, the first depth map containing true depth information of the current slice relative to a camera; a module for acquiring a second depth map, the second depth map containing expected depth information of the current slice relative to a camera; and a module for determining the existence of a first printing defect in response to determining that the depth difference between the true depth map and the theoretical depth map is greater than a preset second threshold.
[0010] According to another aspect of this disclosure, a non-transitory computer-readable storage medium is provided storing instructions for causing a 3D printer as described above to perform the methods described above.
[0011] According to another aspect of this disclosure, a computer program product is provided, including instructions for causing a 3D printer as described above to perform the methods described above.
[0012] According to one or more embodiments of this disclosure, it is possible to make images captured during the printing process accurately reflect the current actual printed pattern.
[0013] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of this disclosure, nor is it intended to limit the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description
[0014] The accompanying drawings exemplify embodiments and form part of the specification, serving together with the textual description to explain exemplary implementations of the embodiments. The illustrated embodiments are for illustrative purposes only and do not limit the scope of the claims. Throughout the drawings, the same reference numerals refer to similar but not necessarily identical elements.
[0015] Figure 1 A schematic diagram of a 3D printer according to an embodiment of the present disclosure is shown;
[0016] Figure 2 A flowchart of a method for a 3D printer according to an embodiment of the present disclosure is shown;
[0017] Figure 3A A schematic diagram is shown illustrating the time alignment of image data with coordinate data in a method for a 3D printer according to an embodiment of the present disclosure;
[0018] Figure 3B Another schematic diagram is shown illustrating the time alignment of image data with coordinate data in a method for a 3D printer according to an embodiment of the present disclosure;
[0019] Figure 3C Another schematic diagram is shown illustrating the time alignment of image data with coordinate data in a method for a 3D printer according to an embodiment of the present disclosure;
[0020] Figure 4 A flowchart of a method for detecting printing defects according to an embodiment of the present disclosure is shown;
[0021] Figure 5 Another flowchart of a method for detecting printing defects according to an embodiment of the present disclosure is shown;
[0022] Figure 6 Another flowchart of a method for detecting printing defects according to an embodiment of the present disclosure is shown;
[0023] Figure 7 A structural block diagram of an apparatus for a 3D printer according to an embodiment of the present disclosure is shown; and
[0024] Figure 8 A structural block diagram of an apparatus for detecting printing defects according to an embodiment of the present disclosure is shown. Detailed Implementation
[0025] The following description, in conjunction with the accompanying drawings, illustrates exemplary embodiments of the present disclosure, including various details of these embodiments to aid understanding; however, these should be considered merely exemplary. Therefore, those skilled in the art will recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope of this disclosure. Similarly, for clarity and brevity, descriptions of well-known functions and structures are omitted in the following description.
[0026] In this disclosure, unless otherwise stated, the use of terms such as "first," "second," etc., to describe various elements is not intended to limit the positional, temporal, or importance relationships of these elements; such terms are merely used to distinguish one element from another. In some examples, the first element and the second element may refer to the same instance of that element, while in other cases, based on the context, they may refer to different instances.
[0027] The terminology used in the description of the various examples described in this disclosure is for the purpose of describing particular examples only and is not intended to be limiting. Unless the context explicitly indicates otherwise, an element may be one or more unless the number of elements is specifically limited. Furthermore, the term "and / or" as used in this disclosure covers any one of the listed items and all possible combinations thereof. The term "based on" should be interpreted as "at least partially based on".
[0028] As previously mentioned, in 3D printing processes such as fused deposition modeling (FDM), objects are constructed by selectively depositing molten printing material layer by layer (each layer can be referred to as a slice) along a predetermined path. The printer controls the movement of at least one of the printing platform and the printer nozzle via a motion controller, and supplies printing material through the printer nozzle to print the model.
[0029] Since motion controllers typically control the movement of the printing platform or printer nozzles in an open-loop manner, when path planning errors occur in the motion controller, or movement errors occur in at least one of the printing platform or printer nozzles, or printing abnormalities occur in the printer nozzles, the motion controller may not be able to change its planned path in time, which may result in defects in the printed model.
[0030] The movement of the printing platform or printer nozzles can be controlled using a closed-loop control method. For example, a vision sensing system (e.g., a camera system) included in the 3D printer can capture an image of the current printed pattern during the printing process. The captured image can then be analyzed to determine if the printed model has defects. However, since the camera system and motion control system are typically independent asynchronous systems, accurate scanning position coordinates at the camera exposure time cannot be obtained, meaning that the images captured during the printing process often fail to accurately reflect the actual printed pattern.
[0031] The embodiments of this disclosure introduce the concept of system synchronization, enabling the camera system and motion control system to be synchronized in time, so that the images captured during the printing process can accurately reflect the actual printed pattern.
[0032] The embodiments of this disclosure will now be described in detail with reference to the accompanying drawings.
[0033] Figure 1 A schematic diagram of a 3D printer 100 according to an embodiment of the present disclosure is shown. (As...) Figure 1 As shown, the 3D printer 100 includes a printer nozzle 110, a printing platform 120, a motion controller 130 for controlling the movement of at least one of the printer nozzle 110 and the printing platform 120 based on coordinate data to perform the printing process, a camera 140 for capturing the pattern printed by the printer nozzle 110 during the printing process to generate image data, and an application processor 150 for processing the coordinate data and image data. The motion controller 130 and the application processor 150 are communicatively connected to the same interrupt source 160. Figure 1 Solid and dashed arrows in the diagram indicate the direction of data, signal, or information flow.
[0034] It will be understood that the exemplary embodiments of this disclosure are described below in conjunction with an FDM printer, but this disclosure is not limited to an FDM printer. The printer nozzle 110 can be configured to extrude any material suitable for 3D printing, including, for example, thermoplastics, alloys, metal powders, ceramic materials, ceramic powders, polymers, etc. Furthermore, the printer nozzle 110 can also deposit various combinations of the above materials.
[0035] The molten material extruded by the printer nozzle 110 can be deposited on the surface of the printing platform 120 and patterned. For example, the printer nozzle 110 can extrude molten material layer by layer on the surface of the printing platform 120 to build the object to be printed.
[0036] Motion controller 130 can be used to send control signals to control the movement of at least one of the printer nozzles 110 and the print platform 120. For example, motion controller 130 can control only the movement of the printer nozzles 110 in the X, Y, and Z axes (which are perpendicular to each other and not shown in the figure) in space; motion controller 130 can also control only the movement of the print platform 120 in the X, Y, and Z axes; motion controller 130 can also control the movement of the printer nozzles 110 in the X and Y axes and control the movement of the print platform 120 in the Z axis. It will be understood that motion controller 130 can control the movement of at least one of the printer nozzles 110 and the print platform 120 in any plane or along any axis, without limitation. Typically, motion controller 130 can send control signals based on a print file. The print file includes a series of instructions, which can be in the form of G-code or any other form of instruction. Motion controller 130 can read the corresponding instructions from the print file and send control signals. The print file can be stored in any suitable form of storage medium.
[0037] Camera 140 can be used to capture images of the pattern printed by the printer nozzle 110 during the printing process to generate image data. Camera 140 can be a digital camera. Image data includes any form of picture or video. In some exemplary embodiments, motion controller 130 can control the movement of camera 140. Exemplarily, camera 140 can be rigidly connected to printer nozzle 110; for example, camera 140 can be rigidly fixed to the same tool head as printer nozzle 110. 3D printer 100 may include multiple cameras 140 for capturing images of the pattern printed by printer nozzle 110 from different angles.
[0038] Application processor 150 can be used to process coordinate data and image data. The coordinate data may be obtained from motion controller 130, and the image data may be obtained from camera 140. Furthermore, application processor 150 may also include an image processing unit. The image processing unit can preprocess the image data from camera 140, such as performing automatic exposure, Gaussian filtering, temporal median filtering, etc., to eliminate noise in the image, making the image more suitable for subsequent processing.
[0039] In some exemplary embodiments, the 3D printer 100 may also include a laser 170. The laser 170 can be used to project laser light onto a pattern printed by the printer nozzle 110, and the camera 140 can receive the laser light reflected from the extruded pattern for image processing assistance. Exemplarily, the laser 170 can project a linear laser line. Exemplarily, the 3D printer 100 may include multiple (e.g., two) lasers 170 to project laser light from multiple angles to improve the signal-to-noise ratio of the image. The laser 170 can be rigidly connected to the printer nozzle 110 and the camera 140; for example, the laser 170 can be rigidly fixed to the same tool head as the printer nozzle 110 and the camera 140, respectively. The motion controller 130 can also control the movement of the laser 170.
[0040] In some exemplary embodiments, camera 140 may be a first camera, and the 3D printer 100 may also include a second camera 180, which is used to capture images of the target object being printed by the printer nozzle 110 from an angle different from that of the first camera 140 during the printing process to generate second image data. For example, the first camera 140 may be positioned adjacent to the printer nozzle 110 to capture the printed pattern from above; the second camera 180 may be positioned on one side of the printing platform 120 and at an angle to the first camera 140 (e.g., capturing the printed object from an oblique side), thereby enabling the second camera 180 and the first camera 140 to capture images from different angles. The second image data generated by the second camera 180 will be described in detail below.
[0041] The motion controller 130 and the application processor 150 are communicatively connected to the same interrupt source 160. The interrupt source 160 can be located anywhere on the 3D printer 100 and can communicate with the motion controller 130 and the application processor 150 via wired or wireless connection.
[0042] It will be understood that the 3D printer 100 may also include other components, not shown, such as supplemental lighting (e.g., LED supplemental lighting), to assist the camera 140 in adaptive lighting. These components, not shown, can be integrated with... Figure 1 The component connections shown include those via wired or wireless connections. Figure 1 The components shown are connected for communication purposes, but this is not a limitation.
[0043] Figure 2 A flowchart of a method 200 for a 3D printer according to an embodiment of the present disclosure is shown. Figure 2 As shown, method 200 includes steps 210 to 250 performed at application processor 150.
[0044] In step 210, an interrupt signal is received from interrupt source 160. Interrupt source 160 may be an external interrupt source relative to application processor 150, such as a real-time clock (or clock circuit). The interrupt signal may be a timing interrupt issued by the real-time clock.
[0045] In some exemplary embodiments, the interrupt source 160 may also be the timing controller of the camera 140. The timing controller of the camera 140 can be used to control the exposure timing of the camera 140. In some exemplary embodiments, the timing controller of the camera 140 may generate a horizontal sync signal (or a line sync signal), which can serve as an interrupt signal. In some exemplary embodiments, the timing controller of the camera 140 may generate a vertical sync signal (or a field sync signal), which can serve as an interrupt signal. The aforementioned interrupt signal may be an electrical signal in the form of a level signal.
[0046] By using the timing controller of camera 140 as the interrupt source, it is possible to provide interrupt signals with uniform time intervals. It will be understood that when the 3D printer 100 includes multiple cameras 140, the interrupt signal can be provided through the timing controller of only one of the multiple cameras 140.
[0047] In step 220, a first time t1 is recorded when the interrupt signal is received. The first time t1 indicates the time relative to the time base of application processor 150. It will be understood that the term "time base" as used herein can refer to the time of the system clock, which may be, for example, a circuit composed of an oscillator (signal source), a timer wake-up unit, a frequency divider, etc. The signal source can be a crystal oscillator or an RC oscillator. For example, the time base of application processor 150 can be the time of the system clock of application processor 150. In response to receiving an interrupt signal from interrupt source 160, application processor 150 may record this moment as a first time t1 relative to its own system clock.
[0048] In step 230, image data corresponding to a first time t1 is received from camera 140. The image data may be image data containing the pattern printed by printer nozzle 110. In one example, application processor 150 may simultaneously receive an interrupt signal from camera 140 and the image data corresponding to the first time t1.
[0049] In step 240, a second time t2 and corresponding coordinate data are received from the motion controller 130. The second time t2 indicates the time relative to the time reference of the motion controller 130 when the motion controller 130 receives an interrupt signal from the interrupt source 160. Figure 1As shown by the dashed arrow, not only can the application processor 150 receive interrupt signals from interrupt source 160, but the motion controller 130 can also receive interrupt signals from interrupt source 160. Therefore, the second time t2 indicates the time relative to the motion controller 130's own system clock when the motion controller 130 receives the same interrupt signal from interrupt source 160. Furthermore, the application processor 150 can also receive coordinate data corresponding to the second time t2 from the motion controller 130. As mentioned earlier, this coordinate data can be the X, Y, and Z axis coordinates of the printer nozzle 110 corresponding to the second time t2, or it can be the X and Y axis coordinates of the printer nozzle 110 and the Z axis coordinate of the print platform 120, or various combinations of the X, Y, and Z axis coordinates of the printer nozzle 110 and the print platform 120.
[0050] In step 250, a conversion between a first time t1 and a second time t2 is performed to synchronize the image data corresponding to the first time t1 and the coordinate data corresponding to the second time t2. In the following text, the terms "time synchronization" and "time alignment" may be used interchangeably.
[0051] Figure 3A A schematic diagram illustrating the time alignment of image data with coordinate data in a method 200 for a 3D printer according to an embodiment of the present disclosure is shown. Figure 3A As shown, the image data corresponding to the first time t1 is shown as 310, and the coordinate data corresponding to the second time t2 is shown as 320. Since the application processor 150, camera 140, and motion controller 130 are independent asynchronous systems, for example, the power-on times of the application processor 150 and motion controller 130 may differ, or their crystal oscillators may have inherent differences in properties. Therefore, when an interrupt signal is received from interrupt source 160, their respective first time t1 and second time t2 may differ in time scale. For example, the application processor 150 records the first time t1 when it receives the interrupt signal as 0.10 seconds, while the motion controller 130 records the second time t2 as 0.11 seconds. Thus, the image data corresponding to the first time t1 and the coordinate data corresponding to the second time t2 may not correspond accurately in time scale. Figure 3A In the example shown, the value of the second time t2 is converted into the corresponding value of the first time t1 (i.e., t... 2’ The corresponding time). Therefore, the value of the second time t2, 0.11 seconds, can be converted to 0.10 seconds (e.g., ...). Figure 3A (As shown at the bottom), so that the image data 310 corresponding to the first time t1 and the coordinate data 320 corresponding to the second time t2 can be synchronized in time.
[0052] In an example not shown, the value of a first time t1 can be converted into the corresponding value of a second time t2. For example, if the application processor 150 records the first time t1 when it receives an interrupt signal as 0.11 seconds, and the motion controller 130 records the second time t2 when it receives the interrupt signal as 0.10 seconds, then the value of the first time t1, 0.11 seconds, can be converted into 0.10 seconds so that the image data corresponding to the first time t1 and the coordinate data corresponding to the second time t2 can be synchronized in time.
[0053] Therefore, by triggering two independent asynchronous systems (which may be asynchronous due to differences in power-up times or inherent differences in the properties of their crystal oscillators) using an interrupt signal from the same interrupt source 160, the time of the two time-asynchronous systems can be synchronized. This ensures that, on a time scale, the pixels in the image captured by camera 140 accurately correspond to their coordinates, thereby enabling the image captured during the printing process to accurately reflect the current actual printed pattern.
[0054] In some exemplary embodiments, in step 250, performing the conversion between the first time t1 and the second time t2 includes: performing the conversion in response to determining that the difference between the first time t1 and the second time t2 is less than a preset first threshold. Figure 3B Another schematic diagram illustrates the time alignment of image data with coordinate data in a method 200 for a 3D printer according to an embodiment of the present disclosure. (See diagram below.) Figure 3B As shown, the first threshold can be 0.015 seconds. The transition between the first time t1 and the second time t2 is only performed when the difference between the first time t1 and the second time t2 is determined to be less than 0.015 seconds. Figure 3B As shown, when the second time t2 is 0.25 seconds, the difference between this second time t2 and the first time t1 (whether t1 is 0.20s or 0.30s) is 0.05 seconds, and both are greater than the first threshold of 0.015 seconds. This may mean that the coordinate data corresponding to the second time t2 does not represent the accurate position of the pixels in the image data corresponding to the first time t1. Therefore, the above conversion was not performed. In this way, it is possible to reduce or avoid synchronizing image data and coordinate data that should not be synchronized in the event of outliers caused by machine errors or other reasons.
[0055] In some exemplary embodiments, the interrupt source 160 is configured to periodically provide interrupt signals to the motion controller 130 and the application processor 150, and performing the transition between the first time t1 and the second time t2 includes: performing the transition in response to determining that for each of the consecutive interrupt signals, the difference between the first time t1 and the second time t2 is less than a preset first threshold. For example, the consecutive interrupt signals may be three consecutive interrupt signals. Figure 3C Another schematic diagram illustrates the time alignment of image data with coordinate data in a method 200 for a 3D printer according to an embodiment of the present disclosure. (See diagram below.) Figure 3C As shown, t1 and t2 are the times when the application processor 150 and motion controller 130 receive periodic interrupt signals from the interrupt source 160, respectively. Since the difference between t2 and the first time t1 (whether 0.20s or 0.30s) is greater than the first threshold of 0.015 seconds when the second time t2 is 0.25 seconds, the above conversion has not yet been performed. When the difference between the second time t2 (0.31s, 0.41s, and 0.51s) and the first time t1 (0.30s, 0.40s, and 0.50s) is less than the preset first threshold of 0.015 seconds, the above conversion can be performed starting from t2 = 0.51 seconds. This further reduces or avoids the need for time synchronization of image data and coordinate data that should not be synchronized due to machine errors or other reasons.
[0056] It should be understood that the aforementioned consecutive interrupt signals can be two, four, or five consecutive interrupt signals. The number of consecutive interrupt signals can be set according to actual needs.
[0057] In some exemplary embodiments, the first threshold is the time interval between two consecutive frames captured by the camera 140. For example, if the shooting frequency of the camera 140 is 60Hz, then the time interval between two consecutive frames captured by the camera 140 is (1 / 60) seconds, that is, approximately 0.01667 seconds. Using the time interval between two consecutive frames as the first threshold ensures that each frame captured by the camera 140 can be time-synchronized with the corresponding coordinate data. In some exemplary embodiments, the first threshold can be the time interval between more frames captured by the camera 140. For example, the first threshold can be the time interval between three frames captured by the camera 140, the time interval between four frames, etc., which can be set according to actual needs.
[0058] It will be understood that the difference between the first time t1 and the second time t2 described in this article includes the absolute value of the difference.
[0059] In some exemplary embodiments, the second time and coordinate data are sent by the motion controller 130 at preset time intervals. For example, the motion controller 130 may send the second time and coordinate data to the application processor 150 every 0.5 seconds, 1 second, or 2 seconds. Typically, since the clock frequency of the motion controller 130 is much higher than the shooting frequency of the camera 140, sending the second time and coordinate data to the application processor 150 at appropriate intervals allows the application processor 150 to time-align the image data received from the camera 140 with the corresponding coordinate data, without needing to receive every single coordinate data point from the motion controller 130. Therefore, while ensuring that the images captured during the printing process accurately reflect the current actual printed pattern, the data computation burden on the application processor 150 is reduced.
[0060] In some exemplary embodiments, the image data corresponding to the first time is the latest image data received from the camera 140 up to the first time.
[0061] In some exemplary embodiments, the coordinate data corresponding to the second time is the latest coordinate data used by the motion controller 130 up to the second time.
[0062] Therefore, during the 3D printing process, the image data and coordinate data received by the application processor 150 are the latest data in the time scale, so that the time-synchronized image data and coordinate data can reflect the real printing pattern in the 3D printing process in real time, so as to evaluate the printing status in real time and detect printing defects in the 3D printing process in a timely manner.
[0063] Figure 4 A flowchart of a method 400 for detecting printing defects according to an embodiment of the present disclosure is shown. Figure 4 As shown, method 400 includes steps 410 to 440.
[0064] In step 410, during the printing of the current slice of the target object, the method 200 described above is executed to obtain time-synchronized image data and coordinate data for the current slice.
[0065] In step 420, a first depth map is generated based on time-synchronized image data and coordinate data. The first depth map contains the true depth information of the current slice relative to the camera. The first depth map can reflect the true depth information of the current slice (the currently printed layer) relative to the camera 140 (i.e., the distance of each pixel from the camera 140).
[0066] In step 430, a second depth map is obtained, which contains the expected depth information of the current slice relative to the camera.
[0067] In some exemplary embodiments, in step 430, a second depth map can be reconstructed from a print file corresponding to the current slice. As previously described, the print file may include a series of instructions (which may be in the form of G-code or any other type of instruction). From the print file, based on the motion information indicated by the instructions, the processor 150 can reconstruct a second depth map corresponding to the currently printed layer, which may reflect the desired depth information of the current slice (the currently printed layer) relative to the camera 140.
[0068] In some exemplary embodiments, in step 430, a second depth map can be obtained from a computer separate from the 3D printer 100. The computer separate from the 3D printer 100 (not shown) can be a computer with slicing software installed or a cloud server.
[0069] A computer equipped with slicing software can communicatively connect to the 3D printer 100. The slicing software can slice the target model data to be printed and generate corresponding motion instructions for each slice. Before executing the printing process, the slicing software can reconstruct a second depth map corresponding to each layer to be printed based on the motion information indicated by the motion instructions. This second depth map reflects the expected depth information of each layer relative to the camera 140. By directly obtaining the second depth map generated by the slicing software from the computer equipped with the slicing software, the computational load on the processor 150 can be reduced.
[0070] The cloud server can communicate with the 3D printer 100. Furthermore, the cloud server can reconstruct a second depth map corresponding to the currently printed layer from the print file based on the motion information indicated by the instructions. This second depth map reflects the desired depth information of the current slice relative to the camera 140. By obtaining the second depth map generated by the cloud server, the computational load on the processor 150 can be reduced. The second depth map can be sent from the cloud server to the processor 150 in real time.
[0071] It will be understood that the processor 150 may obtain a second depth map from one or more of the processor 150, a computer with slicing software installed, or a cloud server, depending on actual needs.
[0072] In step 440, in response to determining that the depth difference between the first depth map and the second depth map is greater than a preset second threshold, a first printing defect is determined to exist. The size of the second threshold can be determined based on parameters such as the size and shape of the target object to be printed, and the properties of the printing material used. For example, the second threshold can be 0.5 mm, that is, when the depth difference between a point in the first depth map and a corresponding point in the second depth map is greater than 0.5 mm, it is determined that the printed pattern has a first printing defect.
[0073] Because the image and coordinate data are synchronized over time, the synchronized image data accurately reflects the current actual printed pattern. Therefore, comparing the first depth map generated from the time-synchronized image and coordinate data with the second depth map containing the desired depth information allows for accurate determination of whether the printed pattern has defects, or the precise measurement of defects, thereby reducing misjudgments of printing defects.
[0074] Figure 5 A flowchart of a method 500 for detecting printing defects according to an embodiment of the present disclosure is shown. Figure 5 As shown, method 500 includes steps 510 to 560.
[0075] Steps 510 to 540 are related to the above. Figure 4 Steps 410 to 440 are described in the same way, and will not be repeated here for the sake of brevity.
[0076] In step 550, in response to determining the existence of a first printing defect, a first repair strategy corresponding to the first printing defect is determined. In one embodiment, the numerical values of the printing defects can be clustered, and corresponding repair strategies can be determined for different types of printing defects. For example, if a printing layer is under-printed (e.g., printing material is not deposited at a location where it should have been deposited), the corresponding repair strategy can be determined to be to supplement the printing of that layer.
[0077] In step 560, the motion controller 130 controls the movement of at least one of the printer nozzles 110 and the print platform 120 based on a first repair strategy to perform defect repair. For example, the motion controller 130 may control only the printer nozzles 110 to move in the X, Y, and Z axes (which are perpendicular to each other and not shown in the figure) to perform defect repair (e.g., perform supplementary printing); the motion controller 130 may also control only the print platform 120 to move in the X, Y, and Z axes to perform defect repair (e.g., perform supplementary printing); or the motion controller 130 may control the printer nozzles 110 to move in the X and Y axes and the print platform 120 to move in the Z axis to perform defect repair (e.g., perform supplementary printing). It will be understood that the motion controller 130 may control at least one of the printer nozzles 110 and the print platform 120 to move in any plane or along any axis to perform defect repair.
[0078] Therefore, by identifying and implementing corresponding repair strategies for different types of printing defects, the printing accuracy of the 3D printing process can be improved, resulting in printed objects with higher precision.
[0079] Figure 6Another flowchart of a method 600 for detecting printing defects according to an embodiment of the present disclosure is shown.
[0080] like Figure 6 As shown, method 600 includes steps 610 to 670.
[0081] Steps 610 to 640 are related to the above. Figure 4 Steps 410 to 440 are described in the same way, and will not be repeated here for the sake of brevity.
[0082] In step 650, second image data is received from the second camera 180. As previously described, the second camera 180 can be positioned on one side of the printing platform 120 and at a certain angle to the first camera 140 (e.g., photographing the printed object from an oblique side), thereby capturing the second image data. Because the position of the second camera 180 is different from that of the first camera 140, the second image data is also different from the first image data. It should be understood that the second camera 180 and the first camera 140 can be the same type of camera or different types of cameras.
[0083] In step 660, desired image data of the target object is acquired. This desired image data represents a virtual image of the target object reconstructed from the viewpoint of the second camera 180 based on the print file executed up to the current slice during printing. Since the mounting position and angle of the second camera 180 are known, as are its position and angle relative to the printer nozzle 110, during printing, the processor 150 can reconstruct the virtual image observed from the viewpoint of the second camera 180 based on the print file executed up to the current slice and the relative positional relationship of the second camera 180 with respect to the printer nozzle 110.
[0084] In step 670, in response to determining that the image difference between the second image data and the desired image data is greater than a preset third threshold, a second printing defect is determined to exist. The third threshold can be determined based on parameters such as the size and shape of the target object to be printed, and the properties of the printing material used.
[0085] Method 600 may also include steps 680 and 690.
[0086] In step 680, in response to determining the existence of a second printing defect, a second repair strategy corresponding to the second printing defect is determined. In one embodiment, the numerical values of the printing defects can be clustered, and corresponding repair strategies can be determined for different types of printing defects. For example, if a printing layer is under-printed (e.g., printing material is not deposited at a location where it should have been deposited), the corresponding repair strategy can be determined to be to supplement the printing of that layer. It should be understood that the second repair strategy may be the same as or different from the aforementioned first repair strategy.
[0087] In step 690, the motion controller 130 controls the movement of at least one of the printer nozzles 110 and the print platform 120 based on the second repair strategy to perform defect repair. For example, the motion controller 130 may control only the printer nozzles 110 to move in the X, Y, and Z axes (which are perpendicular to each other and not shown in the figure) to perform defect repair (e.g., perform supplementary printing); the motion controller 130 may also control only the print platform 120 to move in the X, Y, and Z axes to perform defect repair (e.g., perform supplementary printing); or the motion controller 130 may control the printer nozzles 110 to move in the X and Y axes and control the print platform 120 to move in the Z axis to perform defect repair (e.g., perform supplementary printing). It will be understood that the motion controller 130 can control at least one of the printer nozzles 110 and the print platform 120 to move in any plane or along any axis to perform defect repair.
[0088] Therefore, by setting a second camera 180 at a different position from the first camera 140, the processor 150 can identify a second printing defect that is different from the first printing defect. This further reduces the number of incorrect judgments about printing defects, thereby improving the printing accuracy of the 3D printing process and obtaining printed objects with higher precision.
[0089] Figure 7 A structural block diagram of an apparatus 700 for a 3D printer 100 according to an embodiment of the present disclosure is shown. As mentioned above, the 3D printer 100 includes a printer nozzle 110, a printing platform 120, a motion controller 130 for controlling the movement of at least one of the printer nozzle 110 and the printing platform 120 based on coordinate data to perform a printing process, a camera 140 for capturing the pattern printed by the printer nozzle 110 during the printing process to generate image data, and an application processor 150 for processing the coordinate data and the image data. The motion controller 130 and the application processor 150 are communicatively connected to the same interrupt source 160. The apparatus 700 resides on the application processor 150 and includes:
[0090] Module 710 for receiving interrupt signals from interrupt sources;
[0091] Module 720 is used to record the first moment when an interrupt signal is received, the first moment indicating the time relative to the application processor's time base;
[0092] Module 730 for receiving image data from the camera corresponding to the first moment;
[0093] Module 740 for receiving a second time and corresponding coordinate data from a motion controller, wherein the second time indicates the time relative to the motion controller's time reference when the motion controller receives an interrupt signal from an interrupt source; and
[0094] Module 750 is used to perform the transition between a first time and a second time so that the image data corresponding to the first time and the coordinate data corresponding to the second time are time-synchronized.
[0095] Figure 8 A structural block diagram of an apparatus 800 for detecting printing defects according to an embodiment of the present disclosure is shown. The apparatus 800 includes:
[0096] Module 810, which is used to execute according to the above method during the current slice of the target object, is used to obtain time-synchronized image data and coordinate data for the current slice.
[0097] Module 820 for generating a first depth map based on time-synchronized image data and coordinate data, the first depth map containing the true depth information of the current slice relative to the camera;
[0098] Module 830 for acquiring a second depth map, the second depth map containing the desired depth information of the current slice relative to the camera; and
[0099] Module 840 is used to determine the existence of a first printing defect in response to determining that the depth difference between the actual depth map and the theoretical depth map is greater than a preset second threshold.
[0100] While specific functions have been discussed above with reference to specific modules, it should be noted that the functions of the modules discussed herein can be divided into multiple modules, and / or at least some functions of multiple modules can be combined into a single module. The specific actions performed by the modules discussed herein include the specific module itself performing the action, or alternatively, the specific module calling or otherwise accessing another component or module that performs the action (or performs the action in conjunction with the specific module). Therefore, a specific module performing an action can include the specific module performing the action itself and / or another module that performs the action, called or otherwise accessed by the specific module.
[0101] It should also be understood that this article can describe various technologies in the general context of software and hardware components or program modules. The above regarding... Figure 7 and 8 The various modules described can be implemented in hardware or in hardware in combination with software and / or firmware. For example, these modules can be implemented as computer program code / instructions configured to execute in one or more processors and stored in a computer-readable storage medium. Alternatively, these modules can be implemented as hardware logic / circuit. For example, in some embodiments, one or more of these modules can be implemented together in a system-on-a-chip (SoC). The SoC may include an integrated circuit chip (which includes a processor (e.g., a central processing unit (CPU), microcontroller, microprocessor, digital signal processor (DSP), etc.), memory, one or more communication interfaces, and / or one or more components of other circuitry) and may optionally execute received program code and / or include embedded firmware to perform functions.
[0102] According to embodiments of the present disclosure, a non-transitory computer-readable storage medium storing instructions for causing the 3D printer 100 as described above to perform the methods as described in any embodiment of the present disclosure is also provided.
[0103] According to embodiments of the present disclosure, a computer program product is also provided, including instructions for causing the 3D printer 100 as described above to perform the methods as described in any embodiment of the present disclosure.
[0104] It should be understood that the various forms of processes shown above can be used to rearrange, add, or delete steps. For example, the steps described in this disclosure can be performed in parallel, sequentially, or in a different order, as long as the desired result of the technical solution disclosed in this disclosure can be achieved, and this is not limited herein.
[0105] While embodiments or examples of this disclosure have been described with reference to the accompanying drawings, it should be understood that the methods, systems, and devices described above are merely exemplary embodiments or examples, and the scope of this disclosure is not limited by these embodiments or examples, but only by the granted claims and their equivalents. Various elements in the embodiments or examples may be omitted or replaced by their equivalents. Furthermore, the steps may be performed in a different order than that described in this disclosure. Further, various elements in the embodiments or examples may be combined in various ways. Importantly, as technology evolves, many elements described herein can be replaced by equivalents that appear after this disclosure.
Claims
1. A method for a 3D printer, wherein, The 3D printer includes a printer nozzle, a printing platform, a motion controller for controlling the movement of at least one of the printer nozzle and the printing platform based on coordinate data to perform a printing process, a camera for capturing images of the pattern printed by the printer nozzle during the printing process to generate image data, and an application processor for processing the coordinate data and the image data, wherein the motion controller and the application processor are communicatively connected to the same interrupt source, and the method includes: At the application processor: Receive an interrupt signal from the interrupt source; Record the first time when the interrupt signal is received, wherein the first time indicates a time relative to the time base of the application processor; Receive image data from the camera corresponding to the first time; Receive a second time from the motion controller and coordinate data corresponding to the second time, wherein the second time indicates the time relative to the motion controller's time reference when the motion controller receives the interrupt signal from the interrupt source; and Perform a conversion between the first time and the second time to synchronize the image data corresponding to the first time and the coordinate data corresponding to the second time.
2. The method according to claim 1, wherein, The process of performing the transition between the first time and the second time includes: The conversion is performed in response to determining that the difference between the first time and the second time is less than a preset first threshold.
3. The method according to claim 1, wherein, The interrupt source is configured to periodically provide the interrupt signal to the motion controller and the application processor, and The process of transitioning between the first time and the second time includes: In response to determining that for each of the consecutive interrupt signals, the difference between the first time and the second time is less than a preset first threshold, the conversion is performed.
4. The method according to any one of claims 1 to 3, wherein, The interrupt source is the timing controller of the camera.
5. The method according to claim 2 or 3, wherein, The first threshold is the time interval between two or more consecutive frames of images captured by the camera.
6. The method according to any one of claims 1 to 3, wherein, The second time and the coordinate data are sent by the motion controller at preset time intervals.
7. The method according to any one of claims 1 to 3, wherein, The image data corresponding to the first time is the latest image data received from the camera up to the first time.
8. The method according to any one of claims 1 to 3, wherein, The coordinate data corresponding to the second time is the latest coordinate data used by the motion controller up to the second time.
9. A method for detecting printing defects, comprising: The method according to any one of claims 1 to 8 is performed during the printing of the current slice of the target object to obtain time-synchronized image data and coordinate data for the current slice; A first depth map is generated based on the time-synchronized image data and coordinate data, and the first depth map contains the true depth information of the current slice relative to the camera. Obtain a second depth map, which contains the desired depth information of the current slice relative to the camera; as well as In response to determining that the depth difference between the first depth map and the second depth map is greater than a preset second threshold, a first printing defect is determined to exist.
10. The method according to claim 9, wherein, Obtaining the second depth map includes at least one of the following: Reconstruct the second depth map from the print file corresponding to the current slice; or The second depth map is obtained from a computer separate from the 3D printer.
11. The method of claim 9, further comprising: In response to determining that the first printing defect exists, a first repair strategy corresponding to the first printing defect is determined; as well as The motion controller controls the movement of at least one of the printer nozzles and the printing platform based on the first repair strategy to perform defect repair.
12. The method according to claim 9, wherein, The camera is a first camera, and the image data generated by the first camera capturing the pattern printed by the printer nozzle during the printing process is first image data. The 3D printer also includes a second camera, which is used to capture images of the target object printed by the printer nozzle from an angle different from the first camera during the printing process to generate second image data. The method further includes: Receive second image data from the second camera; Acquire desired image data of the target object, the desired image data representing a virtual image obtained from the viewpoint of the second camera, based on a virtual target object reconstructed from a print file executed up to the current slice during the printing of the target object; In response to determining that the image difference between the second image data and the desired image data is greater than a preset third threshold, a second printing defect is determined to exist.
13. The method of claim 12, further comprising: In response to determining the existence of the second printing defect, a second repair strategy corresponding to the second printing defect is determined; as well as The motion controller controls the movement of at least one of the printer nozzles and the printing platform based on the second repair strategy to perform defect repair.
14. A 3D printer, comprising: Printer nozzles; Printing platform; A motion controller is used to control the movement of at least one of the printer nozzles and the printing platform based on coordinate data to perform a printing process; A camera is used to capture images of the pattern printed by the printer nozzles during the printing process to generate image data; and An application processor is used to process the coordinate data and the image data. The motion controller and the application processor are communicatively connected to the same interrupt source, and The application processor is configured to execute instructions to implement the method as described in any one of claims 1 to 13.
15. The 3D printer of claim 14 further includes a laser for projecting laser light onto the printed pattern to assist the camera in generating image data.
16. An apparatus for a 3D printer, wherein, The 3D printer includes a printer nozzle, a printing platform, a motion controller for controlling the movement of at least one of the printer nozzle and the printing platform based on coordinate data to perform a printing process, a camera for capturing a pattern printed by the printer nozzle during the printing process to generate image data, and an application processor for processing the coordinate data and the image data, wherein the motion controller and the application processor are communicatively connected to the same interrupt source, the device resides on the application processor and includes: A module for receiving interrupt signals from the interrupt source; A module for recording a first time when the interrupt signal is received, wherein the first time indicates a time relative to the time reference of the application processor; A module for receiving image data from the camera corresponding to the first time; A module for receiving a second time and coordinate data corresponding to the second time from the motion controller, wherein the second time indicates the time relative to the motion controller's time reference when the motion controller receives the interrupt signal from the interrupt source; and A module for performing the conversion between the first time and the second time, so that the image data corresponding to the first time and the coordinate data corresponding to the second time are time-synchronized.
17. An apparatus for detecting printing defects, comprising: A module for performing the method according to any one of claims 1 to 8 during the printing of a current slice of a target object to obtain time-synchronized image data and coordinate data for the current slice; A module for generating a first depth map based on the time-synchronized image data and coordinate data, the first depth map containing the true depth information of the current slice relative to the camera; A module for acquiring a second depth map, the second depth map containing the desired depth information of the current slice relative to the camera; as well as A module for determining the existence of a first printing defect in response to determining that the depth difference between the first depth map and the second depth map is greater than a preset second threshold.
18. A non-transitory computer-readable storage medium storing instructions, wherein, The instructions are used to cause the 3D printer according to claim 14 or 15 to perform the method according to any one of claims 1 to 13.
19. A computer program product comprising instructions for causing a 3D printer according to claim 14 or 15 to perform the method according to any one of claims 1 to 13.
Citation Information
Patent Citations
Monitoring system and monitoring method of 3D printer
CN105338320A
Printer system and its motion control method
CN1515420A