WO2023207861A1 - 用于检测3d打印机的打印质量的方法和装置、3d打印机 - Google Patents

用于检测3d打印机的打印质量的方法和装置、3d打印机 Download PDF

Info

Publication number
WO2023207861A1
WO2023207861A1 PCT/CN2023/090131 CN2023090131W WO2023207861A1 WO 2023207861 A1 WO2023207861 A1 WO 2023207861A1 CN 2023090131 W CN2023090131 W CN 2023090131W WO 2023207861 A1 WO2023207861 A1 WO 2023207861A1
Authority
WO
WIPO (PCT)
Prior art keywords
model
depth map
map
height
layer
Prior art date
Application number
PCT/CN2023/090131
Other languages
English (en)
French (fr)
Inventor
吴伟
唐克坦
Original Assignee
上海轮廓科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 上海轮廓科技有限公司 filed Critical 上海轮廓科技有限公司
Publication of WO2023207861A1 publication Critical patent/WO2023207861A1/zh

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29CSHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
    • B29C64/00Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
    • B29C64/30Auxiliary operations or equipment
    • B29C64/379Handling of additively manufactured objects, e.g. using robots
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29CSHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
    • B29C64/00Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
    • B29C64/30Auxiliary operations or equipment
    • B29C64/386Data acquisition or data processing for additive manufacturing
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B33ADDITIVE MANUFACTURING TECHNOLOGY
    • B33YADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
    • B33Y50/00Data acquisition or data processing for additive manufacturing
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B33ADDITIVE MANUFACTURING TECHNOLOGY
    • B33YADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
    • B33Y50/00Data acquisition or data processing for additive manufacturing
    • B33Y50/02Data acquisition or data processing for additive manufacturing for controlling or regulating additive manufacturing processes

Definitions

  • the present disclosure relates to the technical field of 3D printing, and specifically to a method for detecting the printing quality of a 3D printer, a device for detecting the printing quality of a 3D printer, a 3D printer, a computer-readable storage medium and a computer program product.
  • 3D printing technology also known as additive manufacturing technology, is a technology that is based on digital model files and uses adhesive materials to construct objects by printing layer by layer.
  • 3D printing is usually implemented using a 3D printer.
  • 3D printer also known as three-dimensional printer and three-dimensional printer, is a process equipment for rapid prototyping. 3D printers are often used to manufacture models or parts in fields such as mold manufacturing and industrial design.
  • a typical 3D printing technology is Fused Deposition Modeling (FDM), which builds objects by selectively depositing molten material in a predetermined path layer by layer.
  • the material used is a thermoplastic polymer and is in the form of filaments. At present, there is still a lot of room for improvement in the printing quality of 3D printers.
  • the present disclosure provides a method for detecting the printing quality of a 3D printer, an apparatus for detecting the printing quality of a 3D printer, a 3D printer, a computer-readable storage medium, and a computer program product.
  • a method for detecting printing quality of a 3D printer includes: a heat bed; a print head movable relative to the heat bed; a depth sensor arranged on the print head for measuring a distance of a portion of the heat bed relative to the depth sensor; and At least one processor for A local depth map of the portion of the hot bed is obtained based on the measurement results of the depth sensor and used to control the movement of the print head relative to the hot bed based on the control code generated by the slicing software to print the 3D model layer by layer.
  • the method includes: obtaining a model reference map, wherein the model reference map represents the occupied area of at least a part of the first layer of the 3D model on the thermal bed; generating a scan path based on the model reference map; making the The depth sensor moves along the scanning path under the support of the print head, and obtains a first partial depth map sequence based on measurements of the plurality of different positions by the depth sensor during the movement; causing the printing The head prints the first layer of the 3D model on the hot bed; the depth sensor is moved along the scanning path under the load of the print head, and the plurality of depth sensors are scanned during the movement according to the depth sensor.
  • Measurements at different positions result in a second sequence of local depth maps; generating a global depth map corresponding to the model reference map, wherein the global depth map is filled in at multiple coordinates corresponding to the multiple different positions.
  • the value of the corresponding height, the corresponding height value is the corresponding height of the first layer of the 3D model at the plurality of different positions, and is the difference between each local depth map in the first local depth map sequence and the third The difference between the corresponding local depth maps in the two local depth map sequences; and based on the model reference map, the printing height set by the slicing software for the first layer of the 3D model, and the global depth map, A print quality result is determined that is indicative of print quality of the at least a portion of the first layer of the 3D model.
  • the scan path is generated such that when the depth sensor moves along the scan path as the print head moves relative to the thermal bed, the depth sensor sequentially measures multiple portions of the occupied area. distances of different positions relative to the depth sensor.
  • the first sequence of local depth maps indicates corresponding distances of the plurality of different locations relative to the depth sensor.
  • the second partial depth map sequence indicates corresponding distances of the plurality of different positions relative to the depth sensor after the first layer of the 3D model is printed on the thermal bed.
  • the corresponding height value is obtained by a difference between each local depth map in the first local depth map sequence and the corresponding local depth map in the second local depth map sequence.
  • a device for detecting printing quality of a 3D printer includes: a heat bed; a print head movable relative to the heat bed; a depth sensor arranged on the print head for measuring a distance of a portion of the heat bed relative to the depth sensor; and At least one processor for deriving a local depth map of the portion of the thermal bed based on measurements from the depth sensor and for controlling the print head relative to the thermal bed based on control code generated by slicing software Move to print the 3D model layer by layer.
  • the device includes: a first module for obtaining a model reference diagram, wherein the model reference diagram represents the 3D model At least a part of the first layer of the model occupies an area on the thermal bed; a second module is used to generate a scanning path based on the model reference map; a third module is used to enable the depth sensor to be on the print head The carrier moves along the scanning path, and obtains a first partial depth map sequence based on the depth sensor's measurements of the plurality of different positions during the movement; a fourth module is used to position the print head at the desired position.
  • the first layer of the 3D model is printed on the hot bed; the fifth module is used to make the depth sensor move along the scanning path under the support of the print head, and to measure the depth sensor according to the movement during the movement.
  • the measurements at the plurality of different positions result in a second sequence of local depth maps; a sixth module is used to generate a global depth map corresponding to the model reference map, wherein the global depth map is at the same position as the plurality of different positions.
  • Corresponding multiple coordinates are filled with corresponding height values, which are the corresponding heights of the first layer of the 3D model at the multiple different positions, and are the first local depth map sequence.
  • the set print height of the first layer and the global depth map determine a print quality result, and the print quality result indicates the print quality of at least a portion of the first layer of the 3D model.
  • a 3D printer including: a heat bed; a print head movable relative to the heat bed; and a depth sensor arranged on the print head for measuring the depth of the heat bed. a distance of a portion relative to the depth sensor; and at least one processor configured to derive a local depth map of the portion of the thermal bed based on measurements from the depth sensor and for control based on slicing software generation
  • the code controls the print head to move relative to the thermal bed to print the 3D model layer by layer, wherein the at least one processor is further configured to execute instructions to implement the method as described above.
  • a non-transitory computer-readable storage medium storing instructions, wherein the instructions, when executed by the at least one processor of the 3D printer as described above, implement the above. method described.
  • a computer program product comprising instructions that, when executed by the at least one processor of a 3D printer as described above, implement the method as described above.
  • Figure 1 shows a schematic diagram of a 3D printer according to an example embodiment
  • Figure 2 shows the working principle of the laser profiler composed of the laser projector and camera in the 3D printer of Figure 1;
  • FIG. 3 shows a flowchart of a method for detecting print quality of a 3D printer according to an example embodiment
  • Figure 4 shows an example graphical representation of the first layer of the 3D model on a thermal bed
  • Figure 5 shows a model reference diagram corresponding to the example of Figure 4.
  • Figure 6 shows an example of a scan path for the model reference map of Figure 5;
  • Figure 7 shows an example of a first local depth map and a second local depth map at a corresponding position
  • Figure 8 shows an example of a global depth map
  • FIG. 9 shows a structural block diagram of an apparatus for detecting printing quality of a 3D printer according to an example embodiment.
  • first”, “second”, etc. to describe various elements is not intended to limit the positional relationship, timing relationship, or importance relationship of these elements. Such terms are only used for Distinguish one element from another.
  • the first element and the second element may refer to the same instance of the element, and in some cases, based on contextual description, they may refer to different instances.
  • 3D printing technology constructs objects by printing layer by layer.
  • the printing quality of the first layer of the 3D model is the key to determining the success of the printing. If the printing quality of the first layer is not good, it will seriously affect the quality of the final 3D model. Therefore, it is very important to detect the printing quality of the first layer, allowing users to stop printing in time if there is a problem with the first layer.
  • Current 3D printers do not have a first-layer quality detection function, so they cannot detect first-layer quality problems.
  • depth detection technology can be used to detect the printing quality of the first layer. Moreover, compared with other quality inspection technologies (for example, using optical cameras to detect the presence of printing voids), depth inspection technology has higher detection accuracy and is applicable to more types of printing materials.
  • FIG. 1 shows a schematic diagram of a 3D printer 100 according to an embodiment of the present disclosure.
  • the 3D printer 100 includes a heat bed 110 , a print head 120 movable relative to the heat bed 110 , and a depth sensor 130 arranged on the print head 120 for measuring a portion of the heat bed 110 relative to the depth sensor 130 distance.
  • a printhead that is movable relative to the heated bed may refer to any of the following situations: (1) the heated bed remains stationary and the printhead moves; (2) the heated bed moves and the printhead remains stationary; (3) Both the heating bed and the print head move.
  • Examples of the depth sensor 130 include, but are not limited to, a laser rangefinder, a time-of-flight (TOF)-based depth camera, a binocular camera-based depth camera, a structured light-based depth camera, and a laser profiler.
  • depth sensor 130 is shown as a laser profiler including laser projector 132 and camera 134 .
  • such a laser profiler is taken as an example to illustrate the embodiments of the present disclosure, but the present disclosure is not limited in this respect.
  • Laser projector 132 may be a line laser or an area laser (eg, a vertical cavity surface emitting laser (VCSEL)).
  • the 3D printer 100 may include more than one line laser.
  • the 3D printer 100 may include two line lasers, and the laser lines emitted by the two line lasers cross each other on the hot bed 110, so that the printing quality inspection of 3D models with different orientations can be adapted.
  • Camera 134 is generally a 2D optical camera.
  • the laser projector 132 and the camera 134 are arranged at a certain angle to each other. Common arrangements include the following: (1) The laser projector 132 is arranged obliquely with respect to the horizontal plane and projects the laser diagonally towards the object to be measured, while the camera 134 faces forward.
  • both the laser projector 132 and the camera 134 are arranged obliquely with respect to the horizontal plane.
  • 3D printer 100 also includes at least one processor (not shown). At least one processor is used to control the movement of the print head 120 relative to the thermal bed 110 to print the 3D model layer by layer based on the control code generated by the slicing software. As shown in FIG. 1 , at least one processor can drive a motor (not shown), and in turn drive the extrusion wheel 150 to feed the printing material 170 on the tray 160 into the print head 120 . During the movement of the print head 120 , printing material is extruded from the print head 120 and deposited on the heat bed 110 . Typically, the slicing software runs on a computing device communicatively connected to the 3D printer 100 and operates to generate control information that controls the printing process.
  • slicing software can provide graphics A user interface (GUI) is provided to allow the user to select or adjust layout information representing the position and orientation of the 3D model on the heat bed 110 .
  • GUI user interface
  • the slicing software can slice the 3D graphical representation of the 3D model to generate slicing data (e.g., number of slices, height of each layer of slices, etc.), and then convert the slicing data into data used to control the print head 120 of the 3D printer 100 to move along the printing path.
  • slicing data e.g., number of slices, height of each layer of slices, etc.
  • the control code is downloaded to the 3D printer 100 for execution by at least one processor.
  • the 3D printer 100 may also include at least one memory (not shown) for storing programs and/or data.
  • At least one processor is further configured to derive a local depth map of the portion of the heated bed 110 based on the measurements of the depth sensor 130 .
  • the depth sensor 130 is a combination of a laser projector 132 and a camera 134
  • the laser projector 132 projects laser light onto the hot bed 110
  • at least one processor captures the optics of the laser light projected onto the hot bed 110 based on the camera 134 .
  • FIG. 2 shows the working principle of the laser profiler composed of the laser projector 132 and the camera 134. In the example of FIG.
  • the laser projector 132 is a line laser and is arranged obliquely with respect to the horizontal plane, while the camera 134 is arranged directly downward.
  • the laser projector 132 projects a laser line to form a laser plane in three-dimensional space.
  • the laser plane intersects the object to be measured (a curved bump in this example) to form a curve.
  • the coordinates of each point on the curve in the camera coordinate system of the camera 134 can be obtained, including the distance between the point and the camera 134 (which can also be called depth). ), thereby obtaining the local depth map corresponding to the laser line.
  • the arrangement of Figure 2 is illustrative and not restrictive.
  • a surface laser can be used, and the laser surface projected onto the object to be measured can be regarded as a collection of multiple laser lines, and therefore the distances from points on the multiple laser lines to the camera 134 can be measured. Measurements can also be based on triangulation principles. The triangulation principle itself is a known technology, and will not be described in detail here in order not to obscure the subject matter of the present disclosure.
  • a processor includes a microcontroller or computer that executes instructions stored in firmware and/or software (not shown).
  • the processor may be programmable to perform the functions described herein.
  • the term computer is not limited to those integrated circuits known in the art as computers, but refers broadly to computers, processors, microcontrollers, microcomputers, programmable logic controllers, application specific integrated circuits and other programmable circuits, and these terms are used interchangeably herein.
  • the computers and/or processors discussed herein may each employ computer-readable media or machine-readable media, which refers to any medium that participates in providing instructions to the processor for execution.
  • the memory discussed above constitutes computer-readable media. Such media can take many forms, including, but not limited to, non-volatile media, volatile media, and transmission media.
  • the printhead 120 may be configured to extrude any material suitable for 3D printing, including, for example, thermoplastics, alloys, metal powders, ceramic materials, ceramic powders, polymers, and the like.
  • FIG. 3 is a flowchart illustrating a method 300 for detecting print quality of a 3D printer according to an example embodiment. For discussion purposes, method 300 is described below in conjunction with 3D printer 100 shown in FIG. 1 . In an example, method 300 may be implemented by at least one processor in 3D printer 100 .
  • a model reference map is obtained.
  • the model reference diagram represents the area occupied by at least a portion of the first layer of the 3D model on the heated bed 110 .
  • Figure 4 shows an example graphical representation of a first layer of a 3D model on a hot bed 410
  • Figure 5 shows a model reference diagram corresponding to the example of Figure 4.
  • the occupied area of the first layer of the 3D model on the heated bed 410 includes four discrete areas 440a, 440b, 440c, and 440d. These areas can be formed from the same printing material or different printing materials. Although discrete areas 440a, 440b, 440c, and 440d are shown in FIG.
  • the model reference map 510 includes four pixel areas 540a, 540b, 540c and 540d, as shown in Figure 5.
  • the model reference map 510 may be generated under the thermal bed coordinate system oxyz (FIG.
  • model reference figure 510 is shown in Figure 5 as having dimensions corresponding to the dimensions of the heat bed 410 of Figure 4, this is not required. In other examples, the model reference map 510 may only have dimensions corresponding to the bounding box of the occupied area (discrete areas 440a, 440b, 440c, and 440d as a whole in FIG. 4), thereby saving storage space.
  • model reference diagram does not necessarily need to represent the entirety of the first layer of the 3D model, but may only represent a portion of the first layer of the 3D model. This is because in some cases, it may be necessary to check the print quality of only a portion of the first layer of the 3D model. For example, since the temperature distribution of the heated bed may be uneven, the temperature in some heated bed areas is higher and the temperature in other heated bed areas is lower. In areas of the heated bed where the temperature is lower, the printed material may not form properly and thus print defects may occur. In this case, the printing quality can be detected only for the hot bed area with a lower temperature, thereby improving the detection efficiency.
  • Model reference diagrams can be generated by parsing control information generated by slicing software.
  • the control information generated by the slicing software includes control code (eg, gcode) for printing the first layer of the 3D model.
  • obtaining the model reference map may include: receiving the model reference map from a computing device communicatively connected to the 3D printer 100.
  • the model reference drawing is generated by the slicing software when running on the computing device by parsing the control code for printing the first layer of the 3D model.
  • obtaining the model reference map (step 310 ) may include reading the model reference map locally from the 3D printer 100 .
  • the model reference image is generated by at least one processor by parsing the control code for printing the first layer of the 3D model. Since the control code specifies the motion path of the print head, the occupied area of the first layer of the 3D model on the hot bed can be recovered from it.
  • the control information generated by the slicing software includes layout information representing the position and orientation of the 3D model on the thermal bed 110 .
  • obtaining the model reference map may include receiving the model reference map from a computing device communicatively connected to the 3D printer 100 .
  • Model reference drawings are generated by slicing software by parsing this layout information when running on a computing device. Since the layout information defines the position and orientation of the 3D model on the thermal bed, the occupied area of the first layer of the 3D model on the thermal bed can be recovered from it.
  • a scan path is generated based on the model reference map.
  • the scanning path is generated such that when the depth sensor 130 moves along the scanning path as the print head 120 moves relative to the heat bed 110 , the depth sensor 130 sequentially measures a plurality of different positions of the occupied area relative to the depth sensor 130 distance.
  • FIG. 6 shows an example of a scan path for the model reference map of FIG. 5 .
  • the occupied area includes at least one discrete area spaced apart from each other
  • the model reference map includes at least one pixel area respectively representing the at least one discrete area
  • generating the scan path may include the following operations:
  • (1b) Determine a scan path in the model reference diagram, along which a virtual box representing the field of view (FOV) of the depth sensor moves to cover a portion of the at least one bounding box as a whole each time, and finally traverse the at least one bounding box The entire area of a bounding box.
  • a virtual box is shown representing the FOV of camera 134, and the determined scan path is shown as an open arrow.
  • the scan path is a Zig-Zag path, but this is illustrative rather than limiting.
  • the scan path may be generated for the original shape of the pixel area in the model reference diagram representing the occupied area of the first layer of the 3D model on the thermal bed.
  • any other suitable method may be used to generate the scan path, as long as the depth sensor can measure multiple target positions in the occupied area of the first layer of the 3D model on the thermal bed.
  • the occupied area includes at least one discrete area spaced apart from each other
  • the model reference map includes at least one pixel area respectively representing the at least one discrete area
  • generating the scan path may include the following operations:
  • (2a) Determine the respective connected domains of the at least one pixel area to obtain at least one connected domain respectively corresponding to the at least one pixel area.
  • the connected domains of each of the pixel areas 540a, 540b, 540c, and 540d can be determined, thereby obtaining four connected domains.
  • (2c) Merge the movement paths for all connected domains into one merged path as the scan path.
  • the scan path is generated for the field of view of depth sensor 130 (eg, the field of view of camera 134) and that the scan path of depth sensor 130 does not necessarily coincide with the movement path of printhead 120 , because there may be rotation and/or translation between the orientation of the depth sensor 130 and the orientation of the printhead 120 .
  • the rotation and/or translation of the print head 120 and the depth sensor 130 in a three-dimensional coordinate system can be pre-calibrated through external parameter calibration, and the scan path for the depth sensor 130 can be converted into a scan path for the print head 120 movement path, and generate corresponding control codes to control the movement of the print head 120, so that the depth sensor 130 moves along the scanning path under the support of the print head 120.
  • External parameter calibration is a known technology, and will not be described in detail here in order not to obscure the subject matter of this disclosure.
  • the depth sensor 130 is moved along the scanning path under the support of the print head 120 , and the depth sensor 130 measures the plurality of different positions on the heating bed 110 during the movement.
  • First sequence of local depth maps indicates corresponding distances of the plurality of different positions relative to the depth sensor 130 .
  • each first partial depth map in the sequence of first partial depth maps is numbered according to the physical coordinates of the printhead 120 in the thermal bed coordinate system when the camera 134 captures each optical image along the scan path, and Store in memory.
  • the purpose of the numbering is to make each first local depth map different from the plurality of first local depth maps on the hotbed 110 The location can be matched.
  • the first local depth map can be stored in the camera coordinate system or converted to the image coordinate system. The following takes storage in the camera coordinate system as an example.
  • step 340 the print head 120 is caused to print the first layer of the 3D model on the hot bed 110 .
  • step 350 the depth sensor 130 is moved along the scanning path under the support of the print head 120 , and a second local depth map is obtained based on the measurements of the depth sensor 130 on the plurality of different positions on the hot bed 110 during the movement. sequence.
  • the second partial depth map sequence indicates the corresponding distances of the plurality of different positions relative to the depth sensor 130 after the first layer of the 3D model is printed on the hot bed 110 .
  • This step causes the depth sensor 130 to scan again along the same scanning path as in step 330 .
  • each second local depth map in the sequence of second local depth maps may be calculated according to the physical coordinates of the print head 120 in the thermal bed coordinate system when the camera 134 captures each optical image on the scan path. Numbered and stored in memory in the camera coordinate system. This allows each second local depth map to correspond to the plurality of different locations on the thermal bed 110 , and thus also to each first local depth map stored in step 330 .
  • FIG. 7 shows an example of the first local depth map Lb and the second local depth map Lm at the corresponding position.
  • the height of the first layer of the 3D model at this position can be obtained.
  • Figure 7 is only a visual representation of the depth map; the depth map itself can be a point cloud of three-dimensional coordinates, and each point in the point cloud can be regarded as a pixel of the depth map.
  • a global depth map corresponding to the model reference map 510 is generated.
  • the global depth map is filled with corresponding height values at the plurality of coordinates corresponding to the plurality of different positions on the hot bed 110, and the corresponding height values are the corresponding heights of the first layer of the 3D model at the plurality of different positions. , and is the difference between each local depth map in the first local depth map sequence and the corresponding local depth map in the second local depth map sequence.
  • Figure 8 shows an example 800 of a global depth map.
  • generating a global depth map corresponding to the model reference map may include the following operations:
  • (3a) Convert multiple first coordinates representing the multiple different positions in the first local depth map sequence or the second local depth map sequence into multiple second coordinates in the coordinate system of the model reference map respectively.
  • the coordinates of the first local depth map sequence or the second local depth map sequence in the camera coordinate system can be converted respectively.
  • the coordinate system transformation matrix can be obtained through internal parameter calibration. Internal reference calibration is a known technology, and will not be described in detail here in order not to obscure the subject matter of the present disclosure.
  • a blank depth map can be generated in the hot bed coordinate system.
  • the depth map can be a point cloud of three-dimensional coordinates (for example, in the form of a three-dimensional matrix). Each point can have three dimensions: x, y, and z, where x and y represent the xy plane in the thermal bed coordinate system. plane coordinates on, and z represents the height value in the z direction under the hot bed coordinate system. It can be understood that in a blank depth map, there is no data in the z dimension (or it can be filled with 0).
  • (3c) Fill the plurality of second coordinates in the blank depth map with values of corresponding heights to obtain a global depth map. This can be thought of as splicing local depths into a global depth map 800.
  • the print quality result is determined based on the model reference map, the print height set by the slicing software for the first layer of the 3D model, and the global depth map.
  • the print quality result is indicative of the print quality of the at least a portion of the first layer of the 3D model.
  • determining print quality results includes the following operations:
  • the above-described determining print quality result may also include:
  • operation (5a) Determine the normal height range of the first layer of the 3D model, and the upper and lower bounds of the normal height range are related (for example, proportional) to the set printing height. Because different printing materials have different characteristics, assuming that the first layer height is set to 0.2mm, the actual measured height may not necessarily be 0.2mm (usually a little lower), so the normal height range needs to be determined.
  • operation (5a) may include:
  • the upper and lower bounds of the default height range are functions of the set printing height.
  • the set printing height is h
  • the default height range is [h 0 , h 1 ].
  • the lower bound h 0 0.3h
  • the upper bound h 1 2h.
  • the upper and lower bounds h 0 and h 1 of the default height range [h 0 , h 1 ] may be other appropriate functions of the set printing height h.
  • (5a-2) Determine a group of pixels in the global depth map that includes all pixels with height values within the default height range [h 0 , h 1 ].
  • operation (5a) includes: determining a normal height range based on the set printing height and calibration information of the printing material.
  • the calibration information of the printing material specifies the upper and lower bounds of the normal height range and the desired height range. The functional relationship between the set printing heights described above. It will be understood that different print materials may have different calibration information and thus different normal height ranges for the same set print height.
  • the global depth map may be interpolated to increase the number of pixels with height values.
  • the original global depth map is sparse, for example due to large intervals between depth sensor measurement locations on the scan path, and/or holes in the depth sensor measurement data. This is detrimental to defect detection algorithms, so the original global depth map can be interpolated.
  • a variety of interpolation methods can be used, the simplest of which is linear interpolation. In the example, for the global depth map obtained by scanning in the column direction, all rows of the global depth map can be traversed.
  • D(x) ((xx 0 )D(x 1 )+(x 1 -x)D(x 0 ))/(x 1 -x 0 )
  • interpolation is not necessary.
  • the effective pixels in the global depth map are relatively dense, so interpolation is not needed.
  • the pixels in the global depth map are divided into normal pixels and abnormal pixels.
  • the height value at a normal pixel is within the normal height range, and the height value at an abnormal pixel is outside the normal height range.
  • Abnormal pixels can be divided into low pixels (the height value of the pixel is lower than the lower bound of the normal height range) and high pixels (the height value of the pixel is higher than the upper bound of the normal height range).
  • each pixel area is usually in the form of a connected domain, and each pixel in the connected domain represents that the corresponding position on the thermal bed is occupied by the first layer of the 3D model. It should be understood that different pixel areas representing occupied areas may have different areas. For the purpose of detection efficiency, detection may be performed only on a part of the pixel area with a larger area (for example, greater than the threshold T 1 ) instead of all pixel areas.
  • (5d-2) Determine print quality results based on the number of normal pixels and the number of abnormal pixels. For example, the number of normal pixels and the number of abnormal pixels are compared with corresponding thresholds respectively, and/or the relative quantity relationship between normal pixels and abnormal pixels is compared with the corresponding threshold, and the print quality result is determined based on the comparison results. As mentioned before, the error between the target value and the actual value of the print height can be measured in various possible ways.
  • the number of normal pixels, the number of abnormal pixels, and the relative quantitative relationship between normal pixels and abnormal pixels are all measurement criteria that reflect the error between the target value and the actual value of the printing height.
  • the error level l can be defined as follows:
  • T nb1 , T nr1 , T ng , T nb2 , T nb3 , T nr2 , and T nr3 are all threshold values
  • NC is the number of pixels in the connected domain C.
  • These thresholds can be preset or adaptive. For example, these thresholds can vary adaptively with the number of pixels in connected domain C as a function of the number of pixels in connected domain C.
  • the value of error level l can be 0, 1 or 2. It will be understood that such error levels are illustrative and not restrictive.
  • the print quality result may be determined in operation (4b) or (5d-2).
  • the following decision logic can be defined:
  • the print quality result may be determined based on the accumulated absolute value of the error between the target value and the actual value of the printing height. It should be understood that if the error between the target value and the actual value of the printing height is known, various possible decision criteria can be designed to detect the printing quality. It is impossible for this disclosure to exhaust all determination criteria, but this does not affect that these other determination criteria also fall within the scope of this disclosure.
  • print quality results may include a confidence level indicating how reliable the detection is.
  • the confidence is a function of the number of pixels with a height value in the global depth map and the total number of pixels in the model reference map. In the example, the confidence is the ratio of the number of pixels with a height value in the global depth map to the total number of pixels in the model reference map. In other examples, the confidence may be other suitable functions of the number of pixels with height values in the global depth map and the total number of pixels in the model reference map.
  • the actual printed first-layer pattern and the first-layer pattern of the model reference image are not necessarily strictly aligned. Therefore, it may be necessary to register the model reference image and the global depth map to find the best Error in matching position.
  • the global depth map and the model reference map can be registered, so that the global depth map and the model reference map are aligned according to the registration criteria.
  • various registration methods may be used, such as:
  • Grayscale-based template matching algorithm Find sub-images similar to the template image in another image based on the known template image. For example, the global depth map and the model reference map are binarized, and the binarized global depth map and the model reference map are template matched.
  • Feature-based matching algorithm first extract the features of the image, then generate feature descriptors, and finally match the features of the two images based on the similarity of the descriptors.
  • the features of an image can include points, lines (edges), regions (surfaces), etc., and can also be divided into local features and global features.
  • Relationship-based matching algorithm Use machine learning algorithms to match images.
  • a brute force search method can be used to find the best matching position between the global depth map and the model reference map, and then calculate the error at the best matching position. Specifically, the global depth map is moved from the x and y directions, and the error is calculated at the new position. If the number of abnormal pixels at the new position is less than the number of abnormal pixels at the previously recorded best position, the new position is updated as Best match position. In order to reduce the amount of calculation, the search range can be limited to a window range (such as 20 pixels, corresponding to 2mm of physical coordinates). Moreover, if the number of abnormal pixels at the new position is much greater than the number of abnormal pixels at the previous position (for example, 20% more), the search in the current direction is stopped.
  • determining the print quality results may include inputting the model reference map, the print height set by the slicing software, and the global depth map into a trained machine learning algorithm (eg, a classification neural network) to obtain a trained machine learning algorithm.
  • Print quality results output by the learning algorithm As mentioned previously, the model reference map and the print height set by the slicing software indicate the target print height at multiple different locations on the thermal bed, while the global depth map indicates the actual print height at the multiple different locations.
  • Machine learning algorithms can be applied to the application scenario of determining the error between the target value and the actual value of the printing height. In the presence of a large number of training samples, machine learning algorithms can be trained to detect the presence of printing defects.
  • FIG. 9 shows a structural block diagram of an apparatus 900 for detecting print quality of a 3D printer according to an example embodiment.
  • the apparatus 900 includes a first module 910, a second module 920, a third module 930, a fourth module 940, a fifth module 950, a sixth module 960 and a seventh module 970.
  • apparatus 900 is described below in conjunction with 3D printer 100 of FIG. 1 .
  • the first module 910 is used to obtain the model reference map.
  • the model reference diagram represents the area occupied by at least a portion of the first layer of the 3D model on the heated bed 110 .
  • the second module 920 is used to generate a scan path based on the model reference map.
  • the third module 930 is used to move the depth sensor 130 along the scanning path under the support of the print head 120 , and obtain the first partial position according to the measurements of the depth sensor 130 on the plurality of different positions on the hot bed 110 during the movement. Depth map sequence.
  • the fourth module 940 is used to enable the print head 120 to print the first layer of the 3D model on the hot bed 110 .
  • the fifth module 950 is used to move the depth sensor 130 along the scanning path under the support of the print head 120 , and obtain the second partial position according to the measurements of the depth sensor 130 on the plurality of different positions on the hot bed 110 during the movement. Depth map sequence.
  • the sixth module 960 is used to generate a global depth map corresponding to the model reference map 510 .
  • the global depth map is filled with corresponding height values at the plurality of coordinates corresponding to the plurality of different positions on the hot bed 110, and the corresponding height values are the corresponding heights of the first layer of the 3D model at the plurality of different positions. , and is the difference between each local depth map in the first local depth map sequence and the corresponding local depth map in the second local depth map sequence.
  • the seventh module 970 is used to determine the print quality result based on the model reference map, the print height set by the slicing software for the first layer of the 3D model, and the global depth map.
  • the print quality result is indicative of the print quality of the at least a portion of the first layer of the 3D model.
  • each module of the device 900 shown in FIG. 9 may correspond to each step in the method 300 described with reference to FIG. 3 . Accordingly, the operations, features and advantages described above with respect to method 300 apply equally to apparatus 900 and the modules it includes. For the sake of brevity, certain operations, features, and advantages are not described again here.
  • each module discussed herein may be divided into multiple modules, and/or at least some functionality of multiple modules may be combined into a single module.
  • Discussion herein of a particular module performing an action includes 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).
  • a specific module that performs an action may include the specific module that performs the action itself and/or another module that performs the action that the specific module calls or otherwise accesses.
  • An SoC may include an integrated circuit chip including a processor (eg, central processing unit (CPU), microcontroller, microprocessor, digital signal processor (DSP), etc.), memory, one or more communications interfaces, and/or or one or more components in other circuitry) and may optionally execute received program code and/or include embedded firmware to perform functions.
  • a processor eg, central processing unit (CPU), microcontroller, microprocessor, digital signal processor (DSP), etc.
  • a non-transitory computer-readable storage medium storing instructions for causing the 3D printer 100 described above to perform the method described in any embodiment of the present disclosure is also provided.
  • a computer program product including instructions for causing the 3D printer 100 as described above to execute the method described in any embodiment of the present disclosure.

Landscapes

  • Engineering & Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Materials Engineering (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Optics & Photonics (AREA)
  • Robotics (AREA)

Abstract

一种用于检测3D打印机的打印质量的方法。该方法包括:获取模型参考图;生成扫描路径;使深度传感器在打印头的承载下沿扫描路径移动,并根据深度传感器在该移动期间对多个不同位置的测量得出第一局部深度图序列;使打印头在热床上打印3D模型的首层;使深度传感器在打印头的承载下沿扫描路径移动,并根据深度传感器在该移动期间对多个不同位置的测量得出第二局部深度图序列;生成与所述模型参考图对应的全局深度图;以及确定打印质量结果。

Description

用于检测3D打印机的打印质量的方法和装置、3D打印机
相关申请的交叉引用
本申请要求2022年04月24日提交的中国专利申请第202210435067.2号的优先权,其内容通过引用的方式整体并入本文。
技术领域
本公开涉及3D打印技术领域,具体涉及用于检测3D打印机的打印质量的方法、用于检测3D打印机的打印质量的装置、3D打印机、计算机可读存储介质和计算机程序产品。
背景技术
3D打印技术,又称为增材制造技术,它是一种以数字模型文件为基础,运用可粘合材料,通过逐层打印的方式来构造物体的技术。3D打印通常采用3D打印机来实现。3D打印机,又称三维打印机、立体打印机,是快速成型的一种工艺设备。3D打印机常在模具制造、工业设计等领域被用于制造模型或零部件。一种典型的3D打印技术是熔融沉积成型(Fused Deposition modeling,FDM),通过逐层地在预定路径中选择性地沉积熔化材料来构建物体,使用的材料是热塑性聚合物并且呈长丝形式。目前3D打印机的打印质量还有很大的提升空间。
在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
发明内容
本公开提供了用于检测3D打印机的打印质量的方法、用于检测3D打印机的打印质量的装置、3D打印机、计算机可读存储介质和计算机程序产品。
根据本公开的一方面,提供了一种用于检测3D打印机的打印质量的方法。所述3D打印机包括:热床;打印头,相对于所述热床可移动;深度传感器,布置在所述打印头上用于测量所述热床的一部分相对于所述深度传感器的距离;以及至少一个处理器,用于 根据所述深度传感器的测量结果得出所述热床的所述部分的局部深度图,并用于基于切片软件生成的控制代码控制所述打印头相对于所述热床移动以逐层打印3D模型。所述方法包括:获取模型参考图,其中,所述模型参考图表示所述3D模型的首层的至少一部分在所述热床上的占用区域;基于所述模型参考图,生成扫描路径;使所述深度传感器在所述打印头的承载下沿所述扫描路径移动,并根据所述深度传感器在该移动期间对所述多个不同位置的测量得出第一局部深度图序列;使所述打印头在所述热床上打印所述3D模型的首层;使所述深度传感器在所述打印头的承载下沿所述扫描路径移动,并根据所述深度传感器在该移动期间对所述多个不同位置的测量得出第二局部深度图序列;生成与所述模型参考图对应的全局深度图,其中,所述全局深度图在与所述多个不同位置对应的多个坐标处分别被填充相应高度的值,所述相应的高度值为所述3D模型的首层在所述多个不同位置处的相应高度,且为所述第一局部深度图序列中各个局部深度图与所述第二局部深度图序列中对应的局部深度图之间的差值;以及基于所述模型参考图、所述切片软件为所述3D模型的首层设定的打印高度、以及所述全局深度图,确定打印质量结果,所述打印质量结果指示所述3D模型的首层的所述至少一部分的打印质量。
其中,所述扫描路径被生成以使得当所述深度传感器随着所述打印头相对于所述热床的移动而沿所述扫描路径移动时,所述深度传感器依次测量所述占用区域的多个不同位置相对于所述深度传感器的距离。
其中,所述第一局部深度图序列指示所述多个不同位置相对于所述深度传感器的相应距离。
其中,所述第二局部深度图序列指示在所述3D模型的首层被打印在所述热床上之后,所述多个不同位置相对于所述深度传感器的相应距离。
其中,可选地,所述相应的高度值通过所述第一局部深度图序列中各个局部深度图与所述第二局部深度图序列中对应的局部深度图之间的差值得出。
根据本公开的另一方面,提供了一种用于检测3D打印机的打印质量的装置。所述3D打印机包括:热床;打印头,相对于所述热床可移动;深度传感器,布置在所述打印头上用于测量所述热床的一部分相对于所述深度传感器的距离;以及至少一个处理器,用于根据所述深度传感器的测量结果得出所述热床的所述部分的局部深度图,并用于基于切片软件生成的控制代码控制所述打印头相对于所述热床移动以逐层打印3D模型。所述装置包括:第一模块,用于获取模型参考图,其中,所述模型参考图表示所述3D模 型的首层的至少一部分在所述热床上的占用区域;第二模块,用于基于所述模型参考图,生成扫描路径;第三模块,用于使所述深度传感器在所述打印头的承载下沿所述扫描路径移动,并根据所述深度传感器在该移动期间对所述多个不同位置的测量得出第一局部深度图序列;第四模块,用于使所述打印头在所述热床上打印所述3D模型的首层;第五模块,用于使所述深度传感器在所述打印头的承载下沿所述扫描路径移动,并根据所述深度传感器在该移动期间对所述多个不同位置的测量得出第二局部深度图序列;第六模块,用于生成与所述模型参考图对应的全局深度图,其中,所述全局深度图在与所述多个不同位置对应的多个坐标处分别被填充相应高度的值,所述相应的高度值为所述3D模型的首层在所述多个不同位置处的相应高度,且为所述第一局部深度图序列中各个局部深度图与所述第二局部深度图序列中对应的局部深度图之间的差值;以及第七模块,用于基于所述模型参考图、所述切片软件为所述3D模型的首层设定的打印高度、以及所述全局深度图,确定打印质量结果,所述打印质量结果指示所述3D模型的首层的所述至少一部分的打印质量。
根据本公开的另一方面,提供了一种3D打印机,包括:热床;打印头,相对于所述热床可移动;深度传感器,布置在所述打印头上用于测量所述热床的一部分相对于所述深度传感器的距离;以及至少一个处理器,被配置为根据所述深度传感器的测量结果得出所述热床的所述部分的局部深度图,并用于基于切片软件生成的控制代码控制所述打印头相对于所述热床移动以逐层打印3D模型,其中,所述至少一个处理器还被配置为执行指令以实现如上所述的方法。
根据本公开的另一方面,提供了一种存储有指令的非瞬时计算机可读存储介质,其中,所述指令在由如上所述的3D打印机的所述至少一个处理器执行时,实现如上所述的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括指令,所述指令在由如上所述的3D打印机的所述至少一个处理器执行时,实现如上所述的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用 于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1示出了根据示例实施例的3D打印机的示意图;
图2示出了图1的3D打印机中的激光投射器和相机组成的激光轮廓仪的工作原理;
图3示出了根据示例实施例的用于检测3D打印机的打印质量的方法的流程图;
图4示出了3D模型的首层在热床上的示例图形表示;
图5示出了与图4的示例对应的模型参考图;
图6示出了针对图5的模型参考图的扫描路径的示例;
图7示出了第一局部深度图和对应位置处的第二局部深度图的示例;
图8示出了全局深度图的示例;以及
图9示出了根据示例实施例的检测3D打印机的打印质量的装置的结构框图。
具体实施方式
以下结合附图对本公开的示例实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示例。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。术语“基于”应解释为“至少部分地基于”。
3D打印技术通过逐层打印的方式来构造物体。在3D打印时,3D模型的首层的打印质量是决定该次打印能否成功的关键。如果首层的打印质量不好,将严重影响最终成型的3D模型的质量。因此,检测首层的打印质量非常重要,可以让用户在首层出现问题时及时停止打印。目前的3D打印机没有首层质量检测功能,因此无法感知首层质量问题。
发明人认识到,可以利用深度检测技术来检测首层的打印质量。而且,相比其他质量检测技术(例如,利用光学相机来检测是否存在打印空洞),深度检测技术具有更高的检测精度和适用更多类型打印材料的可应用性。
下面将结合附图详细描述本公开的实施例。
图1示出了根据本公开的实施例的3D打印机100的示意图。如图1所示,3D打印机100包括热床110、相对于热床110可移动的打印头120、布置在打印头120上的深度传感器130,用于测量热床110的一部分相对于深度传感器130的距离。此处,短语“相对于热床可移动的打印头”可以是指以下情况中的任一种:(1)热床保持静止,打印头移动;(2)热床移动,打印头保持静止;(3)热床和打印头均移动。深度传感器130的示例包括但不限于激光测距仪、基于飞行时间(TOF)的深度相机、基于双目相机的深度相机、基于结构光的深度相机、激光轮廓仪。在图1的示例中,深度传感器130被示出为包括激光投射器132和相机134的激光轮廓仪。在本文中,为了便于描述,以这样的激光轮廓仪为例来说明本公开的实施例,但本公开在此方面不受限制。
激光投射器132可以是线激光器或者面激光器(例如,垂直腔面发射激光器(VCSEL))。在线激光器的情况下,3D打印机100可以包括多于一个线激光器。例如,3D打印机100可以包括两个线激光器,这两个线激光器发射的激光线在热床110上彼此交叉,从而可以适应具有不同朝向的3D模型的打印质量检测。相机134一般为2D光学相机。激光投射器132和相机134彼此成一定夹角布置,常见的布置方式有以下几种:(1)激光投射器132相对于水平面倾斜布置,斜着向被测物体投射激光,而相机134朝向正下方布置;(2)激光投射器132朝向正下方布置,而相机134相对于水平面倾斜布置;(3)激光投射器132和相机134均相对于水平面倾斜布置。借助于激光投射器132和相机134组成的激光轮廓仪,可以测量热床110与相机134之间的距离,这将在稍后进一步介绍。
3D打印机100还包括至少一个处理器(未示出)。至少一个处理器用于基于切片软件生成的控制代码控制打印头120相对于热床110移动以逐层打印3D模型。如图1所示,至少一个处理器可以驱动电机(未示出),并进而驱动挤出轮150将料盘160上的打印材料170馈送至打印头120中。在打印头120的移动过程中,打印材料从打印头120中被挤出并沉积在热床110上。通常,切片软件运行在与3D打印机100通信连接的计算设备上,并且操作用于生成控制打印过程的控制信息。例如,切片软件可以提供图形用 户界面(GUI)以允许用户选择或调整表示3D模型在热床110上的位置和朝向的布局信息。切片软件可以对3D模型的3D图形表示进行切片以生成切片数据(例如,切片数量、每层切片的高度等),然后将切片数据转换成用于控制3D打印机100的打印头120沿打印路径移动以打印各层切片的控制代码。这样的控制代码通常为gcode的形式。控制代码被下载到3D打印机100以供至少一个处理器执行。为此目的,3D打印机100还可以包括用于存储程序和/或数据的至少一个存储器(未示出)。
至少一个处理器还用于根据深度传感器130的测量结果得出热床110的所述部分的局部深度图。在深度传感器130为激光投射器132和相机134的组合的情况下,激光投射器132向热床110投射激光,并且至少一个处理器根据相机134捕获的被投射在热床110上的激光的光学图像来得出热床110的被该激光照射的部分的局部深度图。图2示出了激光投射器132和相机134组成的激光轮廓仪的工作原理。在图2的示例中,激光投射器132为线激光器,并且相对于水平面倾斜布置,而相机134朝向正下方布置。激光投射器132投射出一条激光线,在三维空间中形成一个激光平面。该激光平面与待测物体(该示例中为曲面凸起)相交,形成一条曲线。该曲线被相机134捕获到后,通过三角测距原理,可以得出这一曲线上的每一点在相机134的相机坐标系下的坐标,包括该点距相机134的距离(也可以称为深度),从而得到与该条激光线对应的局部深度图。将理解的是,图2的布置是说明性的而非限制性的。在其他实施例中,可以采用其他布置。例如,可以采用面激光器,其投射到被测物体上的激光面可以视为多条激光线的集合,并且因此可以测量多条激光线上的点到相机134的距离。测量同样可以基于三角测距原理。三角测距原理本身是已知的技术,为了不模糊本公开的主题,在此不再详细描述。
至少一个处理器还用于实现在下文中描述的各种功能。在示例中,处理器包括执行存储在固件和/或软件(未示出)中的指令的微控制器或计算机。处理器可以是可编程的以执行本文中所描述的功能。如本文中所使用的,术语计算机不仅仅限于在本领域被称为计算机的这些集成电路,而宽泛地指代计算机、处理器、微控制器、微计算机、可编程逻辑控制器、专用集成电路以及其它可编程电路,且这些术语在本文中可互换地使用。本文所讨论的计算机和/或处理器可各自采用计算机可读介质或机器可读介质,其指代参与向处理器提供指令以供执行的任何介质。上文所讨论的存储器构成计算机可读介质。这样的介质可采取许多形式,包括但不限于非易失性介质、易失性介质和传输介质。
将理解的是,在下文中结合FDM打印机来描述本公开的示例实施例,但是本公开并不限于FDM打印机。在实施例中,打印头120可以被配置为能够挤出任何适于3D打印的材料,包括例如热塑性塑料、合金、金属粉末、陶瓷材料、陶瓷粉末、聚合物等。
图3是示出根据示例实施例的用于检测3D打印机的打印质量的方法300的流程图。为了讨论的目的,下文结合图1所示的3D打印机100来描述方法300。在示例中,方法300可以由3D打印机100中的至少一个处理器来实现。
在步骤310,获取模型参考图。模型参考图表示3D模型的首层的至少一部分在热床110上的占用区域。
下面结合图4和图5来说明模型参考图。图4示出了3D模型的首层在热床410上的示例图形表示,并且图5示出了与图4的示例对应的模型参考图。在该示例中,3D模型的首层在热床410上的占用区域包括四个分立区域440a、440b、440c和440d。这些区域可以由相同的打印材料或不同的打印材料形成。虽然分立区域440a、440b、440c和440d在图4中被示出为具有矩形形状,但是这只是说明性的;在其他示例中,3D模型的首层的占用区域可以具有其他形状或配置(例如,单个连通的区域),本公开在此方面不受限制。与图4的图形表示相对应,模型参考图510包括四个像素区域540a、540b、540c和540d,如图5所示。一般地,模型参考图510可以是在热床坐标系oxyz(图4)下生成的,并且像素区域540a、540b、540c和540d在模型参考图510中的坐标与分立区域440a、440b、440c和440d在热床410上的坐标一一对应。将理解的是,虽然模型参考图510在图5中被示出为具有与图4的热床410的尺寸对应的尺寸,但这不是必须的。在其他示例中,模型参考图510可以仅具有与占用区域(图4中,作为整体的分立区域440a、440b、440c和440d)的边界框(bounding box)相对应的尺寸,从而节省存储空间。
还将理解的是,模型参考图并不一定需要表示3D模型的首层的全部,而可以只表示3D模型的首层的一部分。这是因为在一些情况下,可能只需要检测3D模型的首层的一部分的打印质量。例如,由于热床的温度分布可能是不均匀的,在一些热床区域温度较高,而另一些热床区域温度较低。在温度较低的热床区域,打印材料可能不能正常成型并因此出现打印缺陷。在这种情况下,可以只针对温度较低的热床区域来进行打印质量的检测,由此提高检测效率。
模型参考图可以通过解析切片软件生成的控制信息而生成。在一些实施例中,切片软件生成的控制信息包括用于打印3D模型的首层的控制代码(例如,gcode)。在这样 的实施例中,获取模型参考图(步骤310)可以包括:从与3D打印机100通信连接的计算设备接收模型参考图。模型参考图由切片软件在计算设备上运行时通过解析该用于打印3D模型的首层的控制代码而生成。替换地,获取模型参考图(步骤310)可以包括:从3D打印机100本地读取模型参考图。模型参考图由至少一个处理器通过解析该用于打印3D模型的首层的控制代码而生成。由于控制代码规定了打印头的运动路径,因此可以从其恢复出3D模型的首层在热床上的占用区域。
在一些实施例中,切片软件生成的控制信息包括表示3D模型在热床110上的位置和朝向的布局信息。在这样的实施例中,获取模型参考图(步骤310)可以包括:从与3D打印机100通信连接的计算设备接收模型参考图。模型参考图由切片软件在计算设备上运行时通过解析该布局信息而生成。由于布局信息定义了3D模型在热床上的位置和朝向,因此可以从其恢复出3D模型的首层在热床上的占用区域。
返回参考图3,在步骤320,基于模型参考图,生成扫描路径。其中,扫描路径被生成以使得当深度传感器130随着打印头120相对于热床110的移动而沿该扫描路径移动时,深度传感器130依次测量占用区域的多个不同位置相对于深度传感器130的距离。
图6示出了针对图5的模型参考图的扫描路径的示例。在一些实施例中,占用区域包括彼此间隔开的至少一个分立区域,模型参考图包括分别表示至少一个分立区域的至少一个像素区域,并且生成扫描路径(步骤320)可以包括以下操作:
(1a)确定该至少一个像素区域各自的边界框,以得到与该至少一个像素区域分别对应的至少一个边界框。在图6的示例中,可以确定像素区域540a、540b、540c和540d各自的边界框,从而得到四个边界框。
(1b)在模型参考图中确定一条扫描路径,表示深度传感器的视场(FOV)的虚拟框沿该扫描路径移动以每次覆盖作为整体的该至少一个边界框的一部分,并最终遍历该至少一个边界框的全部区域。在图6的示例中,示出了表示相机134的FOV的虚拟框,并且以空心箭头示出了所确定的扫描路径。在该示例中,扫描路径为Zig-Zag路径,但这是说明性的而非限制性的。
将理解的是,生成边界框的操作不是必须的。在一些实施例中,可以针对模型参考图中表示3D模型的首层在热床上的占用区域的像素区域的原始形状,来生成扫描路径。在其他实施例中,还可以采用任何其他适当的方式来生成扫描路径,只要深度传感器可以测量3D模型的首层在热床上的占用区域的多个目标位置即可。
在一些实施例中,占用区域包括彼此间隔开的至少一个分立区域,模型参考图包括分别表示至少一个分立区域的至少一个像素区域,并且生成扫描路径(步骤320)可以包括以下操作:
(2a)确定该至少一个像素区域各自的连通域,以得到与该至少一个像素区域分别对应的至少一个连通域。在图6的示例中,可以确定像素区域540a、540b、540c和540d各自的连通域,从而得到四个连通域。
(2b)针对每个连通域,在模型参考图中确定一条移动路径,表示深度传感器的视场的虚拟框沿该移动路径移动以每次覆盖该连通域的一部分,并最终遍历该连通域的全部区域。这可以与上面描述的操作(1b)类似,并且不再赘述。
(2c)将针对所有连通域的移动路径合并为一条合并路径,以作为所述扫描路径。通过针对占用区域的每个分立区域生成单独的扫描路径,并将各个单独的扫描路径合并为最终的扫描路径,可以减少针对非目标区域(例如,图6中的空白区域)的扫描,从而提高检测效率。
将理解的是,在实施例中,扫描路径是针对深度传感器130的视场(例如,相机134的视场)而生成的,而深度传感器130的扫描路径不一定与打印头120的移动路径重合,因为深度传感器130的取向和打印头120的取向之间可能存在旋转和/或平移。可以通过外参标定,预先标定打印头120与深度传感器130在三维坐标系(例如,热床坐标系)下的旋转和/或平移,并将针对深度传感器130的扫描路径转换成针对打印头120的移动路径,并生成相应的控制代码来控制打印头120的移动,使得深度传感器130在打印头120的承载下沿着扫描路径移动。外参标定是已知的技术,为了不模糊本公开的主题,在此不做详细描述。
返回参考图3,在步骤330,使深度传感器130在打印头120的承载下沿扫描路径移动,并根据深度传感器130在该移动期间对热床110上的所述多个不同位置的测量得出第一局部深度图序列。其中,第一局部深度图序列指示所述多个不同位置相对于深度传感器130的相应距离。
在一些实现方式中,按照相机134在扫描路径上拍摄各个光学图像时打印头120在热床坐标系下的物理坐标,对第一局部深度图序列中的各个第一局部深度图进行编号,并存储到内存中。编号的目的是使得各个第一局部深度图与热床110上的所述多个不同 位置可以对应上。将理解的是,第一局部深度图可以在相机坐标系下存储,也可以转换到图像坐标系下存储。下文以在相机坐标系下存储为例说明。
在步骤340,使打印头120在热床110上打印3D模型的首层。
在步骤350,使深度传感器130在打印头120的承载下沿扫描路径移动,并根据深度传感器130在该移动期间对热床110上的所述多个不同位置的测量得出第二局部深度图序列。其中,第二局部深度图序列指示在3D模型的首层被打印在热床110上之后,所述多个不同位置相对于深度传感器130的相应距离。这一步骤使得深度传感器130按照与步骤330中相同的扫描路径再次进行扫描。
同样地,在一些实现方式中,可以按照相机134在扫描路径上拍摄各个光学图像时打印头120在热床坐标系下的物理坐标,对第二局部深度图序列中的各个第二局部深度图进行编号,并在相机坐标系下存储到内存中。这使得各个第二局部深度图与热床110上的所述多个不同位置可以对应上,并且因此也与步骤330中存储的各个第一局部深度图也对应上。
图7示出了第一局部深度图Lb和对应位置处的第二局部深度图Lm的示例。在图7的示例中,通过确定第一局部深度图Lb与第二局部深度图Lm之间的差值,可以得出3D模型的首层在该位置处的高度。将理解的是,图7只是深度图的可视化表示;深度图本身可以是三维坐标的点云,并且点云中的每个点可以视为深度图的一个像素。
返回参考图3,在步骤360,生成与模型参考图510对应的全局深度图。全局深度图在与热床110上的所述多个不同位置对应的多个坐标处分别被填充相应高度的值,该相应的高度值为3D模型的首层在多个不同位置处的相应高度,且为第一局部深度图序列中各个局部深度图与第二局部深度图序列中对应的局部深度图之间的差值。图8示出了全局深度图的示例800。
在一些实施例中,生成与模型参考图对应的全局深度图(步骤360)可以包括以下操作:
(3a)将第一局部深度图序列或第二局部深度图序列中表示所述多个不同位置的多个第一坐标分别转换为模型参考图所在坐标系下的多个第二坐标。继续前文的示例(第一局部深度图和第二局部深度图在相机坐标系下被存储),可以将第一局部深度图序列或第二局部深度图序列的在相机坐标系下的坐标分别转换为模型参考图所在坐标系(例 如,热床坐标系)下的坐标。坐标系转换矩阵可以通过内参标定来得到。内参标定是已知的技术,为了不模糊本公开的主题,在此不作详细描述。
(3b)生成模型参考图所在坐标系下的空白深度图。在模型参考图位于热床坐标系的示例中,可以在热床坐标系下生成空白的深度图。如前所述,深度图可以是三维坐标的点云(例如,采用三维矩阵的形式),每个点可以具有x、y和z三个维度,其中x和y表示热床坐标系下xy平面上的平面坐标,并且z表示热床坐标系下z方向上的高度值。可以理解,空白深度图中,z维度没有数据(或者可以填充为0)。
(3c)在空白深度图中的所述多个第二坐标处分别填充相应高度的值,以得到全局深度图。这可以认为是将局部深度拼接为全局的深度图800。
返回参考图3,在步骤370,基于模型参考图、切片软件为3D模型的首层设定的打印高度、以及全局深度图,确定打印质量结果。打印质量结果指示3D模型的首层的所述至少一部分的打印质量。
应当理解,模型参考图510和切片软件设定的打印高度指示热床110上的所述多个不同位置处的目标打印高度,而全局深度图800指示所述多个不同位置处的实际打印高度。因此,可以根据打印高度的目标值与实际值之间的误差来检测是否存在打印缺陷,或者打印缺陷的严重程度。在一些实施例中,确定打印质量结果(步骤370)包括以下操作:
(4a)比较所述多个不同位置处的目标打印高度与所述多个不同位置中对应位置处的实际打印高度。
(4b)基于所述比较来确定打印质量结果。
还将理解,可以通过各种可能的方式来度量这种目标值与实际值之间的误差,并由此确定打印质量结果。在下文中,提供一些说明性的实现方式,不应视为限制性的。
在一些实施例中,上述确定打印质量结果(步骤370)还可以包括:
(5a)确定3D模型的首层的正常高度范围,所述正常高度范围的上下界与所述设定的打印高度相关(例如,成比例)。因为不同打印材料的特性不同,假设设定的首层高度为0.2mm,实际测量到的高度不一定是0.2mm(一般会偏低一点),因此需要确定正常高度范围。在一些实现方式中,操作(5a)可以包括:
(5a-1)基于所述设定的打印高度,确定默认高度范围,所述默认高度范围的上下界是所述设定的打印高度的函数。在示例中,设定的打印高度为h,默认高度范围为[h0,h1], 其中下界h0=0.3h,上界h1=2h。当然,这样的默认高度范围是说明性的,而非限制性的。在其他实现方式中,默认高度范围[h0,h1]的上下界h0和h1可以是设定的打印高度h的其他适当的函数。
(5a-2)确定全局深度图中的一组像素,该组像素包括高度值在默认高度范围[h0,h1]内的所有像素。
(5a-3)计算该组像素处的高度值平均值
(5a-4)通过将高度值平均值作为h代入所述函数(在5a-1的示例中,h0=0.3h,上界h1=2h)来更新上下界h0和h1。具有更新后的上下界h0和h1的默认高度范围为正常高度范围。
在一些实现方式中,在打印材料被预先标定的情况下(例如,预先标定打印材料的测量高度与打印高度的比值范围),可以直接用打印材料的标定信息来确定正常高度范围。在这样的实现方式中,操作(5a)包括:根据所述设定的打印高度和打印材料的标定信息确定正常高度范围,所述打印材料的标定信息指定所述正常高度范围的上下界与所述设定的打印高度之间的函数关系。将理解的是,不同的打印材料可以具有不同的标定信息,因而针对设定的同一打印高度可以具有不同的正常高度范围。
在一些实施例中,可以对全局深度图进行插值以增加具有高度值的像素的数目。在一些情况下,原始的全局深度图比较稀疏,例如由于深度传感器在扫描路径上的测量位置之间的间隔较大,和/或深度传感器的测量数据存在空洞。这对于缺陷检测算法是不利的,因此可以对原始的全局深度图进行插值。这里,可以使用多种插值方法,其中最简单的就是线性插值。在示例中,对在列方向上进行扫描得到的全局深度图,可以遍历全局深度图所有的行。如果全局深度图中的某个像素D(x)没有高度值,而它左右一定范围内(比如30个像素)存在具有高度值的有效像素D(x0),D(x1),那么,D(x)的估计值为:
D(x)=((x-x0)D(x1)+(x1-x)D(x0))/(x1-x0)
将理解的是,插值不是必须的。例如,在深度传感器中采用面激光器的情况下,全局深度图中的有效像素是比较稠密的,因而可以无需插值。
(5b)通过将全局深度图中各个像素处的高度值与正常高度范围进行比较,将全局深度图中的像素分为正常像素和异常像素。正常像素处的高度值在正常高度范围内,异常像素处的高度值在正常高度范围外。异常像素又可以分为偏低像素(该像素处的高度值低于正常高度范围的下界)和偏高像素(该像素处的高度值高于正常高度范围的上界)。
(5c)确定模型参考图中表示所述占用区域的至少一个像素区域。每个像素区域通常为连通域的形式,该连通域中的每个像素表示热床上的对应位置被3D模型的首层占用。应当理解,表示占用区域的不同像素区域可以具有不同的面积。出于检测效率的目的,可以只针对一部分面积较大(例如大于阈值T1)的像素区域而不是全部像素区域进行检测。
(5d)针对所述至少一个像素区域中的至少一者:
(5d-1)统计全局深度图中与该像素区域对应的各个像素中的正常像素数量和异常像素数量。例如,对于面积大于阈值T1的每个连通域C,分别统计在全局深度图中与该连通域C对应的坐标处的正常像素、偏低像素、偏高像素的像素数量ng,nb,nr
(5d-2)基于正常像素数量和异常像素数量来确定打印质量结果。例如,将正常像素数量和异常像素数量分别与对应的阈值相比较,和/或将正常像素与异常像素之间的相对数量关系与对应的阈值相比较,并基于比较结果来确定打印质量结果。如前所述,可以通过各种可能的方式来度量打印高度的目标值与实际值之间的误差。此处,正常像素数量、异常像素数量以及正常像素与异常像素之间的相对数量关系(例如,正常像素的数量大于或小于异常像素的数量,正常像素的数量与异常像素的数量之比等)都是反映打印高度的目标值与实际值之间的误差的度量准则。在一个示例中,根据正常像素、偏低像素、偏高像素的像素数量ng,nb,nr,可以定义误差级别l如下:
其中,Tnb1、Tnr1、Tng、Tnb2、Tnb3、Tnr2、Tnr3均为阈值,并且NC为连通域C中的像素数量。这些阈值可以是预先设定的或者是自适应的。例如,作为连通域C中的像素数量的函数,这些阈值可以随着连通域C中的像素数量的不同而自适应变化。在该示例中,误差级别l的取值可以为0、1或2。将理解的是,这样的误差级别只是说明性而非限制性的。
基于操作(4a)中的比较结果或(5d-1)中的正常像素数量和异常像素数量,在操作(4b)或(5d-2)中可以确定打印质量结果。继续上面关于误差级别l的示例,可以定义如下判定逻辑:
如果任意一个连通域C出现错误级别等于2的,则判定打印质量结果为“错误”,输出最终的错误级别2。
否则,如果出现错误级别等于1的连通域大于等于2个,且总的异常像素数(所有连通域内的nb+nr)大于阈值T4或异常像素比例大于阈值T5,也判定打印质量结果为“错误”,输出最终的错误级别2。
否则,如果出现错误级别等于1的连通域大于等于1个,判定打印质量结果为“警告”,输出最终的错误级别1。
否则,判定打印质量结果为“正常”,最终的错误级别0。
将理解的是,这样的判断逻辑只是说明性而非限制性的。在其他实施例中,可以适用其他的判定逻辑。例如,可以根据打印高度的目标值与实际值之间的误差的累加绝对值来进行打印质量结果的判定。应当理解,如果知晓打印高度的目标值与实际值之间的误差,就可以设计各种可能的判定准则来检测打印质量。本公开不可能穷尽所有的判定准则,但是这不影响这些其他的判定准则也落入本公开的范围内。
在一些实施例中,打印质量结果可以包括指示检测可靠程度的置信度。置信度为全局深度图中具有高度值的像素数目和模型参考图的像素总数的函数。在示例中,置信度为全局深度图中具有高度值的像素数目和模型参考图的像素总数之比。在其他示例中,置信度可以是全局深度图中具有高度值的像素数目和模型参考图的像素总数的其他适当的函数。
受各种系统误差的影响,实际打印的首层图案与模型参考图的首层图案不一定是严格对齐的,因此可还需要对模型参考图和全局深度图进行配准,以找出最佳匹配位置下的误差。在一些实施例中,在操作(5d)(即,针对所述至少一个像素区域中的至少一者,统计全局深度图中与该像素区域对应的各个像素中的正常像素数量和异常像素数量之前,可以将全局深度图与模型参考图配准,以使得全局深度图和模型参考图根据配准准则被对齐。
在实施例中,可以使用各种配准方法,例如:
(1)基于灰度的模板匹配算法:根据已知模板图像到另一幅图像中寻找与模板图像相似的子图像。例如,将全局深度图和模型参考图进行二值化,并对二值化后的全局深度图和模型参考图进行模板匹配。
(2)基于特征的匹配算法:首先提取图像的特征,再生成特征描述子,最后根据描述子的相似程度对两幅图像的特征之间进行匹配。图像的特征可以包括点、线(边缘)、区域(面)等,也可以分为局部特征和全局特征。
(3)基于关系的匹配算法:利用机器学习算法来对图像进行匹配。
在一个示例中,可以使用暴力搜索法,找到全局深度图与模型参考图的最佳匹配位置,然后在最佳匹配位置下计算误差。具体来说,将全局深度图从x,y两个方向进行移动,在新位置计算误差,如果新位置的异常像素数比之前记录的最佳位置的异常像素数少,则将新位置更新为最佳匹配位置。为了减少计算量,搜索范围可以限制在一个窗口范围(比如20个像素,对应物理坐标的2mm)。并且,如果新位置的异常像素数如果比上一个位置的异常像素数多很多(比如多20%),就停止当前方向的搜索。
如前所述,可以通过各种可能的方式来度量这种目标值与实际值之间的误差,并由此确定打印质量结果。在一些实施例中,确定打印质量结果可以包括:将模型参考图、切片软件设定的打印高度以及全局深度图输入经训练的机器学习算法(例如,分类神经网络),以得到经训练的机器学习算法输出的打印质量结果。如前所述,模型参考图和切片软件设定的打印高度指示热床上的多个不同位置处的目标打印高度,而全局深度图指示所述多个不同位置处的实际打印高度。机器学习算法可以适用于确定打印高度的目标值与实际值之间的误差这种应用场景。在存在大量训练样本的情况下,可以对机器学习算法进行训练,来检测是否存在打印缺陷。
图9示出了根据示例实施例的检测3D打印机的打印质量的装置900的结构框图。装置900包括第一模块910、第二模块920、第三模块930、第四模块940、第五模块950、第六模块960和第七模块970。为了讨论的目的,下面结合图1的3D打印机100描述装置900。
第一模块910用于获取模型参考图。模型参考图表示3D模型的首层的至少一部分在热床110上的占用区域。
第二模块920用于基于模型参考图,生成扫描路径。
第三模块930用于使深度传感器130在打印头120的承载下沿扫描路径移动,并根据深度传感器130在该移动期间对热床110上的所述多个不同位置的测量得出第一局部深度图序列。
第四模块940用于使打印头120在热床110上打印3D模型的首层。
第五模块950用于使深度传感器130在打印头120的承载下沿扫描路径移动,并根据深度传感器130在该移动期间对热床110上的所述多个不同位置的测量得出第二局部深度图序列。
第六模块960用于生成与模型参考图510对应的全局深度图。全局深度图在与热床110上的所述多个不同位置对应的多个坐标处分别被填充相应高度的值,该相应的高度值为3D模型的首层在多个不同位置处的相应高度,且为第一局部深度图序列中各个局部深度图与第二局部深度图序列中对应的局部深度图之间的差值。
第七模块970用于基于模型参考图、切片软件为3D模型的首层设定的打印高度、以及全局深度图,确定打印质量结果。打印质量结果指示3D模型的首层的所述至少一部分的打印质量。
应当理解,图9中所示装置900的各个模块可以与参考图3描述的方法300中的各个步骤相对应。由此,上面针对方法300描述的操作、特征和优点同样适用于装置900及其包括的模块。为了简洁起见,某些操作、特征和优点在此不再赘述。
虽然上面参考特定模块讨论了特定功能,但是应当注意,本文讨论的各个模块的功能可以分为多个模块,和/或多个模块的至少一些功能可以组合成单个模块。本文讨论的特定模块执行动作包括该特定模块本身执行该动作,或者替换地该特定模块调用或以其他方式访问执行该动作(或结合该特定模块一起执行该动作)的另一个组件或模块。因此,执行动作的特定模块可以包括执行动作的该特定模块本身和/或该特定模块调用或以其他方式访问的、执行动作的另一模块。
还应当理解,本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。上面关于图9描述的各个模块可以在硬件中或在结合软件和/或固件的硬件中实现。例如,这些模块可以被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并存储在计算机可读存储介质中。可替换地,这些模块可以被实现为硬件逻辑/电路。例如,在一些实施例中,这些模块中的一个或多个可以一起被实现在片上系统(SoC)中。SoC可以包括集成电路芯片(其包括处理器(例如,中央处理单元(CPU)、微控制器、微处理器、数字信号处理器(DSP)等)、存储器、一个或多个通信接口、和/或其他电路中的一个或多个部件),并且可以可选地执行所接收的程序代码和/或包括嵌入式固件以执行功能。
根据本公开的实施例,还提供了一种存储有指令的非瞬时计算机可读存储介质,指令用于使如上所述的3D打印机100执行如本公开任一实施例所描述的方法。
根据本公开的实施例,还提供了一种计算机程序产品,包括指令,指令用于使如上所述的3D打印机100执行如本公开任一实施例所描述的方法。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行、也可以顺序地或以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例实施例或示例,本公开的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。

Claims (18)

  1. 一种用于检测3D打印机的打印质量的方法,其中,所述3D打印机包括:热床;打印头,相对于所述热床可移动;深度传感器,布置在所述打印头上用于测量所述热床上的一部分区域相对于所述深度传感器的距离;以及至少一个处理器,用于根据所述深度传感器的测量结果得出所述部分区域的局部深度图,并用于基于切片软件生成的控制代码控制所述打印头相对于所述热床移动以逐层打印3D模型,所述方法包括:
    获取模型参考图,其中,所述模型参考图表示所述3D模型的首层的至少一部分在所述热床上的占用区域;
    基于所述模型参考图,生成扫描路径;
    使所述深度传感器在所述打印头的承载下沿所述扫描路径移动,并根据所述深度传感器在该移动期间对所述多个不同位置的测量得出第一局部深度图序列;
    使所述打印头在所述热床上打印所述3D模型的首层;
    使所述深度传感器在所述打印头的承载下沿所述扫描路径移动,并根据所述深度传感器在该移动期间对所述多个不同位置的测量得出第二局部深度图序列;
    生成与所述模型参考图对应的全局深度图,其中,所述全局深度图在与所述多个不同位置对应的多个坐标处分别被填充相应高度的值,所述相应的高度值为所述3D模型的首层在所述多个不同位置处的相应高度,且为所述第一局部深度图序列中各个局部深度图与所述第二局部深度图序列中对应的局部深度图之间的差值;以及
    基于所述模型参考图、所述切片软件为所述3D模型的首层设定的打印高度、以及所述全局深度图,确定打印质量结果,所述打印质量结果指示所述3D模型的首层的所述至少一部分的打印质量。
  2. 如权利要求1所述的方法,其中,所述生成与所述模型参考图对应的全局深度图包括:
    将所述第一局部深度图序列或所述第二局部深度图序列中表示所述多个不同位置的多个第一坐标分别转换为所述模型参考图所在坐标系下的多个第二坐标;
    生成所述模型参考图所在坐标系下的空白深度图;以及
    在所述空白深度图中的所述多个第二坐标处分别填充所述相应高度的值,以得到所述全局深度图。
  3. 如权利要求1或2所述的方法,其中,所述模型参考图和所述设定的打印高度指示所述多个不同位置处的目标打印高度,所述全局深度图指示所述多个不同位置处的实际打印高度,其中,所述确定打印质量结果包括:
    比较所述多个不同位置处的目标打印高度与所述多个不同位置中对应位置处的实际打印高度;以及
    基于所述比较来确定所述打印质量结果。
  4. 如权利要求1或2所述的方法,其中,所述确定打印质量结果包括:
    确定所述3D模型的首层的正常高度范围,所述正常高度范围的上下界与所述设定的打印高度相关;
    通过将所述全局深度图中各个像素处的高度值与所述正常高度范围进行比较,将所述全局深度图中的像素分为正常像素和异常像素,其中,所述正常像素处的高度值在所述正常高度范围内,所述异常像素处的高度值在所述正常高度范围外;
    确定所述模型参考图中表示所述占用区域的至少一个像素区域;
    针对所述至少一个像素区域中的至少一者:
    统计所述全局深度图中与该像素区域对应的各个像素中的正常像素数量和异常像素数量;以及
    将所述正常像素数量和所述异常像素数量分别与对应的阈值相比较,和/或将所述正常像素与所述异常像素之间的相对数量关系与对应的阈值相比较来确定所述打印质量结果。
  5. 如权利要求4所述的方法,其中,所述确定所述3D模型的首层的正常高度范围包括:
    基于所述设定的打印高度,确定默认高度范围,所述默认高度范围的上下界是所述设定的打印高度的函数;
    确定所述全局深度图中的一组像素,该组像素包括高度值在所述默认高度范围内的所有像素;
    计算该组像素处的高度值平均值;以及
    通过将所述高度值平均值代入所述函数来更新所述上下界,具有更新后的上下界的所述默认高度范围为所述正常高度范围。
  6. 如权利要求4所述的方法,其中,所述确定所述3D模型的首层的正常高度范围包括:
    根据所述设定的打印高度和打印材料的标定信息确定所述正常高度范围,所述打印材料的标定信息指定所述正常高度范围的上下界与所述设定的打印高度之间的函数关系。
  7. 如权利要求4至6中任一项所述的方法,还包括,在将所述全局深度图中的像素分为正常像素和异常像素之前:
    对所述全局深度图进行插值以增加具有高度值的像素的数目。
  8. 如权利要求1至6中任一项所述的方法,其中,所述打印质量结果包括指示检测可靠程度的置信度,所述置信度为全局深度图中具有高度值的像素数目和所述模型参考图的像素总数的函数。
  9. 如权利要求4所述的方法,还包括,在针对所述至少一个像素区域中的至少一者,统计所述全局深度图中与该像素区域对应的各个像素中的正常像素数量和异常像素数量之前:
    将所述全局深度图与所述模型参考图配准,以使得所述全局深度图和所述模型参考图根据配准准则被对齐。
  10. 如权利要求1至9中任一项所述的方法,其中,所述确定打印质量结果包括:
    将所述模型参考图、所述设定的打印高度以及所述全局深度图输入经训练的机器学习算法,以得到所述经训练的机器学习算法输出的所述打印质量结果。
  11. 如权利要求1至10中任一项所述的方法,其中,所述模型参考图是通过解析所述切片软件生成的控制信息而生成的,所述控制信息包括用于打印所述3D模型的首层的控制代码,并且其中,所述获取模型参考图包括:
    从与所述3D打印机通信连接的计算设备接收所述模型参考图,所述模型参考图由所述切片软件在所述计算设备上运行时通过解析所述用于打印所述3D模型的首层的控制代码而生成,或者
    从所述3D打印机本地读取所述模型参考图,所述模型参考图由所述至少一个处理器通过解析所述用于打印所述3D模型的首层的控制代码而生成。
  12. 如权利要求1至10中任一项所述的方法,其中,所述模型参考图是通过解析所述切片软件生成的控制信息而生成的,所述控制信息包括表示所述3D模型在所述热床上的位置和朝向的布局信息,并且其中,所述获取模型参考图包括:
    从与所述3D打印机通信连接的计算设备接收所述模型参考图,所述模型参考图由所述切片软件在所述计算设备上运行时通过解析所述布局信息而生成。
  13. 如权利要求1至12中任一项所述的方法,其中,所述占用区域包括一个或者彼此间隔开的至少两个分立区域,所述模型参考图包括分别表示所述至少一个分立区域的至少一个像素区域,并且其中,所述生成扫描路径包括:
    确定所述至少一个像素区域各自的边界框,以得到与所述至少一个像素区域分别对应的至少一个边界框;以及
    在所述模型参考图中确定所述扫描路径,表示所述深度传感器的视场的虚拟框沿所述扫描路径移动以遍历所述至少一个边界框的全部区域。
  14. 如权利要求1至12中任一项所述的方法,其中,所述占用区域包括一个或者彼此间隔开的至少两个分立区域,所述模型参考图包括分别表示所述至少一个分立区域的至少一个像素区域,并且其中,所述生成扫描路径包括:
    确定所述至少一个像素区域各自的连通域,以得到与所述至少一个像素区域分别对应的至少一个连通域;
    针对每个连通域,在所述模型参考图中确定一条移动路径,表示所述深度传感器的视场的虚拟框沿所述移动路径移动以遍历该连通域的全部区域;以及
    将针对所有连通域的移动路径合并为一条合并路径,以作为所述扫描路径。
  15. 一种用于检测3D打印机的打印质量的装置,其中,所述3D打印机包括:热床;打印头,相对于所述热床可移动;深度传感器,布置在所述打印头上用于测量所述热床的一部分相对于所述深度传感器的距离;以及至少一个处理器,用于根据所述深度传感器的测量结果得出所述热床的所述部分的局部深度图,并用于基于切片软件生成的控制代码控制所述打印头相对于所述热床移动以逐层打印3D模型,所述装置包括:
    第一模块,用于获取模型参考图,其中,所述模型参考图表示所述3D模型的首层的至少一部分在所述热床上的占用区域;
    第二模块,用于基于所述模型参考图,生成扫描路径;
    第三模块,用于使所述深度传感器在所述打印头的承载下沿所述扫描路径移动,并根据所述深度传感器在该移动期间对所述多个不同位置的测量得出第一局部深度图序列;
    第四模块,用于使所述打印头在所述热床上打印所述3D模型的首层;
    第五模块,用于使所述深度传感器在所述打印头的承载下沿所述扫描路径移动,并根据所述深度传感器在该移动期间对所述多个不同位置的测量得出第二局部深度图序列;
    第六模块,用于生成与所述模型参考图对应的全局深度图,其中,所述全局深度图在与所述多个不同位置对应的多个坐标处分别被填充相应高度的值,所述相应的高度值为所述3D模型的首层在所述多个不同位置处的相应高度,且为所述第一局部深度图序列中各个局部深度图与所述第二局部深度图序列中对应的局部深度图之间的差值;以及
    第七模块,用于基于所述模型参考图、所述切片软件为所述3D模型的首层设定的打印高度、以及所述全局深度图,确定打印质量结果,所述打印质量结果指示所述3D模型的首层的所述至少一部分的打印质量。
  16. 一种3D打印机,包括:
    热床;
    打印头,相对于所述热床可移动;
    深度传感器,布置在所述打印头上用于测量所述热床的一部分相对于所述深度传感器的距离;以及
    至少一个处理器,被配置为根据所述深度传感器的测量结果得出所述热床的所述部分的局部深度图,并用于基于切片软件生成的控制代码控制所述打印头相对于所述热床移动以逐层打印3D模型,
    其中,所述至少一个处理器还被配置为执行指令以实现如权利要求1至14中任一项所述的方法。
  17. 一种存储有指令的非瞬时计算机可读存储介质,其中,所述指令在由根据权利要求16所述的3D打印机的所述至少一个处理器执行时,实现根据权利要求1至14中任一项所述的方法。
  18. 一种计算机程序产品,包括指令,所述指令在由根据权利要求16所述的3D打印机的所述至少一个处理器执行时,实现根据权利要求1至14中任一项所述的方法。
PCT/CN2023/090131 2022-04-24 2023-04-23 用于检测3d打印机的打印质量的方法和装置、3d打印机 WO2023207861A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210435067.2 2022-04-24
CN202210435067.2A CN114770946A (zh) 2022-04-24 2022-04-24 用于检测3d打印机的打印质量的方法和装置、3d打印机

Publications (1)

Publication Number Publication Date
WO2023207861A1 true WO2023207861A1 (zh) 2023-11-02

Family

ID=82433880

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/090131 WO2023207861A1 (zh) 2022-04-24 2023-04-23 用于检测3d打印机的打印质量的方法和装置、3d打印机

Country Status (2)

Country Link
CN (1) CN114770946A (zh)
WO (1) WO2023207861A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114770946A (zh) * 2022-04-24 2022-07-22 上海轮廓科技有限公司 用于检测3d打印机的打印质量的方法和装置、3d打印机
CN116175977A (zh) * 2022-09-15 2023-05-30 上海轮廓科技有限公司 用于检测3d打印机的打印质量的方法和装置、3d打印机

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107379530A (zh) * 2017-08-21 2017-11-24 华南理工大学 Fdm式3d打印机平台倾斜时的斜路补偿装置及方法
US20190086899A1 (en) * 2017-09-21 2019-03-21 Hangzhou Regenovo Biotechnology Co., Ltd. On-line Monitoring Method and System for Three-dimensional Printing
CN112596981A (zh) * 2020-12-24 2021-04-02 深圳市汉森软件有限公司 三维打印进程的监测方法、装置、设备及存储介质
CN113232300A (zh) * 2021-05-11 2021-08-10 广东省珠海市质量计量监督检测所 3d阵列喷绘打印缺陷检测与矫正系统及方法
CN114770946A (zh) * 2022-04-24 2022-07-22 上海轮廓科技有限公司 用于检测3d打印机的打印质量的方法和装置、3d打印机

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3563270B1 (en) * 2017-09-26 2021-09-08 Siemens Industry Software Inc. System and method for providing variation in bead size to improve geometrical accuracy of deposited layers in an additive manufacturing process
CN110605854B (zh) * 2019-10-28 2022-08-12 杭州捷诺飞生物科技股份有限公司 打印控制方法、装置、系统及控制设备
CN215791804U (zh) * 2021-09-29 2022-02-11 深圳拓竹科技有限公司 用于3d打印的打印平台及3d打印机

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107379530A (zh) * 2017-08-21 2017-11-24 华南理工大学 Fdm式3d打印机平台倾斜时的斜路补偿装置及方法
US20190086899A1 (en) * 2017-09-21 2019-03-21 Hangzhou Regenovo Biotechnology Co., Ltd. On-line Monitoring Method and System for Three-dimensional Printing
CN112596981A (zh) * 2020-12-24 2021-04-02 深圳市汉森软件有限公司 三维打印进程的监测方法、装置、设备及存储介质
CN113232300A (zh) * 2021-05-11 2021-08-10 广东省珠海市质量计量监督检测所 3d阵列喷绘打印缺陷检测与矫正系统及方法
CN114770946A (zh) * 2022-04-24 2022-07-22 上海轮廓科技有限公司 用于检测3d打印机的打印质量的方法和装置、3d打印机

Also Published As

Publication number Publication date
CN114770946A (zh) 2022-07-22

Similar Documents

Publication Publication Date Title
WO2023207861A1 (zh) 用于检测3d打印机的打印质量的方法和装置、3d打印机
US11042146B2 (en) Automated 360-degree dense point object inspection
US10994462B2 (en) Planarizing build surfaces in three-dimensional printing
US10719929B2 (en) Error detection in additive manufacturing processes
US20180075618A1 (en) Measurement system and method for measuring multi-dimensions
CN114041168A (zh) 自动化360度密集点对象检验
US11040492B2 (en) System and method for monitoring and recoating in an additive manufacturing environment
US8786700B2 (en) Position and orientation measurement apparatus, position and orientation measurement method, and storage medium
TW201816362A (zh) 障礙物的檢測方法及相關裝置
JP2019022982A (ja) 3dプリンティング装置及び3dプリンティング方法
WO2017122462A1 (ja) 造形処理装置、造形処理システムおよびプログラム
CN110009673B (zh) 深度信息检测方法、装置及电子设备
CN113267180B (zh) 一种基于3d深度视觉的agv叉车托盘定位及叉取方法
WO2024055742A1 (zh) 用于检测3d打印机的打印质量的方法和装置、3d打印机
CN114055780B (zh) 一种3d打印机自动调平方法、存储介质及3d打印设备
CN111723441A (zh) 塑料件预变形零件建模方法、系统、装置及存储介质
CN113246473B (zh) 3d打印机的补偿方法、补偿装置、3d打印机和存储介质
JP2019215180A (ja) 計測システムおよび計測方法
US11967037B2 (en) Object deformation determination
US12001191B2 (en) Automated 360-degree dense point object inspection
JP2020197495A (ja) 情報処理装置、計測装置、情報処理方法、プログラム、システム及び物品の製造方法
Schindler et al. Computer Vision Based Analysis for Fused Filament Fabrication Using a G-Code Visualization Comparison
US20220413464A1 (en) Registering objects
WO2023121663A1 (en) Feature detections
Yuhong et al. Vision Guided Automatically Measuring in Coordinate Metrology

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23795294

Country of ref document: EP

Kind code of ref document: A1