Visual preview for laser processing

CN117259959BActive Publication Date: 2026-08-18MAKER WORKSHOP HONG KONG HOLDINGS LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202311146215.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2015-09-23
Filing Date
2016-02-12
Publication Date
2026-08-18
Estimated Expiration
2036-02-12

Smart Images

  • Figure CN117259959B_ABST
    Figure CN117259959B_ABST
Patent Text Reader

Abstract

This application relates to visual preview for laser processing. A computer numerical controlled machine can include a movable head configured to deliver electromagnetic energy to a portion of a work area in which the movable head can be commanded to cause delivery of electromagnetic energy. The interior space can be defined by a housing and can include an openable barrier that attenuates transmission of light between the interior space and an exterior of the computer numerical controlled machine when the openable barrier is in a closed position. The computer numerical controlled machine can include an interlock that prevents emission of electromagnetic energy upon detection that the openable barrier is not in the closed position. The command can cause the computer numerical controlled machine to perform operations of a motion plan to cause movement of the movable head to deliver electromagnetic energy to cause a change in material contained at least partially in the interior space.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of PCT international invention patent application No. 201680021300.5, filed on February 12, 2016, entitled "Visual Preview for Laser Processing".

[0002] Cross-references to related applications

[0003] This application claims priority to the following applications: U.S. Provisional Patent Application No. 62 / 115,562, filed February 12, 2015; U.S. Provisional Patent Application No. 62 / 115,571, filed February 12, 2015; U.S. Provisional Patent Application No. 62 / 222,756, filed September 23, 2015; and U.S. Provisional Patent Application No. 62 / 222,757, filed September 23, 2015; and U.S. Provisional Patent Application No. 62 / 222,758, filed September 23, 2015. The written description, claims, and drawings of all of the above applications are incorporated herein by reference. Technical Field

[0004] The subject described in this article relates to manufacturing processes that implement or are assisted by machine vision, which is combined with a wide-angle observation system inside the manufacturing machine. Background Technology

[0005] Computer-controlled manufacturing systems (e.g., 3D printers, laser cutters / engraving machines, CNC milling machines, etc.) can be used to create complex objects that traditional manufacturing techniques, such as molding or hand assembly, cannot produce. Such automated methods operate based on instructions specifying cuts, layers, patterns, and other actions to be performed. These instructions can be transferred as computer files to the memory of the machine's computer controller and interpreted at runtime to provide a series of steps in the manufacturing process. Summary of the Invention

[0006] In one aspect, a computer numerical control (CNC) machine includes a movable head configured to transmit electromagnetic energy to a portion of a working area defined by limits, the movable head being commanded to induce the transmission of electromagnetic energy within said limits. The working area is located within an internal space of the laser CNC machine. The internal space is defined by a housing including an openable barrier that, when in a closed position, attenuates light transmission between the internal space and the exterior of the CNC machine. The CNC machine includes an interlock that prevents the emission of electromagnetic energy when the openable barrier is detected to be not in a closed position. Commands cause the CNC machine to perform a motion-planned operation to cause the movable head to move, thereby transmitting electromagnetic energy to cause a change in material at least partially contained within the internal space.

[0007] An image including at least half of the working area is generated using at least one camera. This generation occurs when the interlock does not prevent the emission of electromagnetic energy.

[0008] In another aspect, a computer numerically controlled machine includes a movable head configured to transmit electromagnetic energy to a portion of a working area defined by limits, within which the movable head is commanded to induce the transmission of electromagnetic energy. The working area is located within an internal space of the laser computer numerically controlled machine. The internal space is defined by a housing including an openable barrier that, when in a closed position, attenuates light transmission between the internal space and the exterior of the computer numerically controlled machine. The command causes the computer numerically controlled machine to perform a motion-planned operation to cause the movable head to move, thereby transmitting electromagnetic energy to cause a change in material at least partially contained within the internal space.

[0009] The emission of electromagnetic energy is temporarily blocked. Furthermore, an image including at least half of the working area is generated using at least one camera. This occurs while the openable barrier is in the closed position and during the temporary blocking of electromagnetic energy emission.

[0010] In some variations, one or more of the following features may be optionally included in any feasible combination.

[0011] Material alterations can include at least one of cutting, etching, bleaching, curing, and burning. The image can be processed to remove distortion. Distortion can include color differences. The image can be enhanced by increasing contrast. Pixels in the image can be mapped to their corresponding physical locations within a working area.

[0012] The camera is not mounted to the movable head or is attached to an openable barrier. The camera can be a single camera not mounted to the movable head. The single camera can be mounted within the interior space and opposite the work area or attached to an openable barrier.

[0013] When the openable barrier is not in the closed position, images can be captured using the single camera, and additional images may include objects outside the interior space. These objects outside the interior space may be users of a computer-controlled digital machine.

[0014] The camera is movable. Motion can include translation, rotation, and tilting along one or more axes to various locations. The camera can be mounted to a translational support. The translational support can include a movable head.

[0015] Generating an image may include capturing sub-images via a camera, and the generation may include assembling the sub-images to produce the image. A second sub-image may be captured after at least some movement of the camera relative to a first sub-image. The assembly may include stitching together multiple sub-images to produce the image.

[0016] The image can be processed to generate data relating to one or more of the following: position, higher-order derivative of position, velocity, acceleration, and abnormal or non-abnormal conditions of a movable part of a computer-controlled machine captured in the image. Based on the generated data, another action can be initiated or terminated.

[0017] The movable component can be positioned in a fixed spatial relationship with the movable head, and the method may further include updating software that controls the operation of a computer-controlled digital machine using data based on the position of the movable head and its higher-order derivatives. The movable component may include identifiable markings on the movable head. The movable component may include the movable head and / or a gantry.

[0018] The image can be processed using one or more mathematical operations on the image itself and an additional image of the working area. These mathematical operations can produce an improved image relative to the image itself for analyzing the image of the object being imaged.

[0019] Additional images of the work area can be captured, along with changes in the operation of components that cause the computer-controlled machine to be in operation. Changes in operation may include altering the light output of a lamp between capturing the image and the additional image. The position of the components may be changed between capturing the image and the additional image, and the camera may be vibrated during the capture of the image and / or the additional image. Improved images may include sharpening relative to the image, correcting illumination artifacts, averaging, edge detection, and noise reduction. The images may be generated using different lighting conditions produced by a light source within the interior space. The light source may include light resulting from the operation of a laser.

[0020] The camera can be triggered based on signals from sensors integrated into a computer-controlled digital machine, where the sensors are not user-operable camera controls.

[0021] Implementations of this subject matter may include, but are not limited to, methods consistent with the descriptions provided herein, and objects including tangibly implemented machine-readable media operable to cause one or more machines (e.g., computers, etc.) to perform operations implementing one or more of the features described herein. Similarly, computer systems are also described, which may include one or more processors and one or more memories coupled to the one or more processors. Memory that may include computer-readable storage media may include, encode, store, or cause one or more processors to perform one or more of the operations described herein. Computer-implemented methods consistent with one or more embodiments of this subject matter may be implemented by one or more data processors residing in a single computing system or multiple computing systems. Such multiple computing systems may be connected via one or more connections, via direct connections between one or more of the multiple computing systems, etc., and may exchange data and / or commands or other instructions, said one or more connections including, but not limited to, connections via networks (e.g., the Internet, wireless wide area networks, local area networks, wide area networks, wired networks, etc.). Attached Figure Description

[0022] Certain aspects of the subject matter disclosed herein are illustrated in conjunction with the accompanying drawings, which are incorporated in and form part of this specification, and these drawings, together with the specification, help to explain some principles associated with the disclosed embodiments. In the drawings,

[0023] Figure 1 This is a front view of a computer numerical control machine (CNC machine) consistent with some embodiments of this subject, the CNC machine having a camera positioned to capture an image of the entire material bed and another camera positioned to capture an image of a portion of the material bed;

[0024] Figure 2 yes Figure 1A top view of an embodiment of the computer numerical control machine shown;

[0025] Figure 3A This is a diagram illustrating an example of an SVG source file consistent with some implementation methods of this topic;

[0026] Figure 3B This is an example of a graphical representation of a cutting path in a computer-controlled digital machine consistent with some implementations of this subject;

[0027] Figure 3C This is a diagram illustrating machine files corresponding to cutting paths and source files that are consistent with some implementations of this topic;

[0028] Figure 4A This is a graph showing the sum of images consistent with some embodiments of this subject;

[0029] Figure 4B This is a diagram showing the subtraction of images consistent with some embodiments of this subject;

[0030] Figure 4C This is a diagram showing the difference of images consistent with some embodiments of this subject to isolate simulated internal lighting effects;

[0031] Figure 5 This is a diagram showing a cover camera for imaging three-dimensional objects in a computer digitally controlled machine, consistent with some embodiments of this subject.

[0032] Figure 6 This illustrates some implementations consistent with this topic. Figure 5 The imaged object is represented as a set of 2-D patterns superimposed on material in a computer-controlled digital machine;

[0033] Figure 7 This is a diagram showing a collection of 2-D patterns previewed as three-dimensional objects, consistent with some embodiments of this subject.

[0034] Figure 8 This is a diagram showing a head-mounted camera that images a watermark on a material present in a computer digitally controlled machine, consistent with some embodiments of this subject.

[0035] Figure 9 This is a diagram illustrating the determination of material thickness by imaging spots on a material using a cover camera, generated by a distance-finding light source, consistent with some embodiments of this subject.

[0036] Figure 10 This is a diagram illustrating the determination of material thickness by imaging the size of a laser spot, consistent with some embodiments of this subject.

[0037] Figure 11 This is a diagram illustrating a scattered light detector used to determine whether a cut extends through the material, consistent with some embodiments of this subject.

[0038] Figure 12 This is a diagram illustrating the correction of aberrations in images acquired by a wide-field camera, consistent with some implementations of this subject.

[0039] Figure 13 This is a process flowchart illustrating the features of a method consistent with some embodiments of this subject; and

[0040] Figure 14 This is a process flowchart illustrating the characteristics of a method consistent with some embodiments of this subject.

[0041] In practice, similar reference numerals indicate similar mechanisms, features, or components. Specific Implementation

[0042] Details of one or more variations of the subject matter described herein are set forth in the accompanying drawings and the description below. Other features and advantages of the subject matter described herein will become apparent from the description, drawings, and claims. While some features of the currently disclosed subject matter may be described for illustrative purposes with respect to the use of machine vision for assisting automated manufacturing processes (e.g., CNC processes), it should be readily understood that such features are not intended to be limiting.

[0043] When used herein, the term "cutting" can generally refer to altering the appearance, properties, and / or state of a material. Cutting can include, for example, through-cutting, engraving, bleaching, curing, burning, etc. When specifically mentioned herein, engraving refers to the process of modifying the appearance of a material without completely penetrating it using a computer-controlled machine. For example, in the context of laser cutting machines, it can mean, for example, removing some material from a surface or fading a material by applying focused electromagnetic radiation that delivers electromagnetic energy, as described below.

[0044] When used herein, the term "laser" includes (in the context of a cutting tool) any source of electromagnetic radiation or focused or coherent energy that uses photons to modify a substrate or cause some change or alteration to a material affected by photons. Lasers (whether for cutting tools or diagnostics) can be of any desired wavelength, including, for example, microwaves, lasers, infrared lasers, visible lasers, UV lasers, X-ray lasers, gamma-ray lasers, etc.

[0045] Additionally, when used herein, “camera” includes, for example, a visible light camera, a monochrome camera, an IR or UV sensitive camera, a separate brightness sensor (e.g., a photodiode), a photon sensitive detector (e.g., a photomultiplier tube or an avalanche photodiode), an infrared radiation detector that is far from the visible spectrum (e.g., microwaves, X-rays, or gamma rays), an optical filter detector, a spectrometer, and other detectors that may include sources that provide electromagnetic radiation for illumination to aid acquisition (e.g., a flash lamp, UV illumination, etc.).

[0046] Additionally, when used herein, references to "real-time" action include some degree of delay or latency, whether intentionally programmed into the action or a result of limitations in machine response and / or data transmission. When used herein, "real-time" action is intended only to approximate an instantaneous response, or the fastest possible response given system limitations, and does not imply any specific numerical or functional limitations on response time or the machine action resulting from that response time.

[0047] Additionally, when used herein, unless otherwise specified, the term "material" refers to the material on the machine tool of a CNC machine. For example, if the CNC machine is a laser cutter, lathe, or milling machine, the material is the material placed in the CNC machine to be cut, such as raw material, raw material, etc. In another example, if the CNC machine is a 3D printer, the material is the current layer, or a previously existing layer or substrate, of an object meticulously produced by the 3D printing process. In yet another example, if the CNC machine is a printer, the material could be paper on which the CNC machine deposits ink.

[0048] Introduction

[0049] A Computer Numerical Control (CNC) machine is a machine used to add or remove material under the control of a computer. One or more motors or other actuators may be present to move one or more heads that perform the addition or removal of material. For a CNC machine adding material, as in a typical 3D printer, the head may be equipped with nozzles that jet or release polymer. In some embodiments, the head may include an ink source, such as a cartridge or pen. In the case of 3D printing, material can be accumulated layer by layer until a fully realized 3D object has been created. In some embodiments, the CNC machine can scan the surface of a material such as a solid, liquid, or powder, harden it with a laser, or otherwise alter the material properties of the material. New material can be deposited. The process can be repeated to construct continuous layers. For a CNC machine removing material, the head may be equipped with tools, such as cutting edges on a lathe, a drag blade, a plasma cutter, a water jet, a drill bit for a milling machine, a laser for a laser cutter / engraving machine, etc.

[0050] Figure 1 This is a front view of a CNC machine 100 consistent with some embodiments of this subject, the CNC machine having a camera positioned to capture an image of the entire material bed 150 and another camera positioned to capture an image of a portion of the material bed 150. Figure 2 yes Figure 1 A top view of an embodiment of the CNC machine 100 shown.

[0051] Figure 1 The CNC machine 100 shown corresponds to one embodiment of a laser cutting machine. Although some features are described in the context of a laser cutting machine, there is no intention to limit them. Many of the features described below can be implemented with other types of CNC machines. The CNC machine 100 can be, for example, a lathe, an engraving machine, a 3D printer, a milling machine, a drilling machine, a saw, etc.

[0052] While laser cutting / engraving machines share some common features with CNC machines, they also have many differences and present particularly challenging design constraints. Laser cutting / engraving machines are subject to regulatory constraints that limit electromagnetic radiation from the unit during operation, making it challenging to safely allow light to enter or exit the unit, for example, to view or record images of content. The laser beam must be guided along a path from the emitter to the area to be machined, potentially requiring a series of optical elements such as lenses and mirrors. The laser beam is susceptible to misdirection; even a small angular deflection of any component related to the beam path can cause the beam to deviate from its intended path, potentially with adverse consequences. If uncontrolled, the laser beam can cause material damage. Laser cutting / engraving machines may require high-voltage and / or radio frequency power supplies to drive the laser itself. Liquid cooling is commonly used in laser cutting / engraving machines to cool the laser, and fluid flow must be considered. Airflow is critical in the design of laser cutting / engraving machines because the air can be contaminated by byproducts of the laser's interaction with the material (e.g., fumes), which can damage parts of the machine, such as contaminating the optical system. Exhaust air from the machine may contain unwanted byproducts (e.g., fumes) that must be guided or filtered, and the machine may need to be designed to prevent such byproducts from escaping through unwanted openings, such as by sealing components that might be opened. Unlike most machining tools, the kerf (the amount of material removed during operation) is small and variable depending on the material being processed, the laser power, the laser speed, and other factors, making it difficult to predict the final size of the object. Furthermore, unlike most machining tools, the output of a laser cutting / engraving machine can be highly dependent on the speed of operation; even a momentary slowdown can ruin the workpiece due to the accumulation of too much laser energy. While operating parameters such as tool rotation speed and the volume of material removed are easily predicted, measured, and calculated continuously in many machining tools, laser cutting / engraving machines are much more sensitive to material and other conditions. In many machining tools, fluids are used as coolants and lubricants; in laser cutting / engraving machines, the cutting mechanism does not need to be in physical contact with the material being affected, and air or other gases can be used to assist the cutting process in different ways, such as by promoting combustion or cleaning up debris.

[0053] The CNC machine 100 may have a housing that defines an outer shell or internal region surrounding the housing. The housing may include walls, a bottom, and one or more openings to allow access to the CNC machine 100, etc. A material bed 150 may be present, which may include a top surface on which material 140 is generally disposed.

[0054] exist Figure 1In some embodiments, the CNC machine may further include an openable barrier as part of the housing to allow access between the exterior and interior spaces of the CNC machine. The openable barrier may include, for example, one or more doors, hatches, flaps, etc., actuable between an open and closed position. When in the closed position, the openable barrier may attenuate light transmission between the interior and exterior spaces. Optionally, the openable barrier may be transparent to one or more wavelengths of light or may consist of portions with varying light attenuation capabilities. One type of openable barrier may be a cover 130, which can be opened or closed to place material 140 on a material bed 150 on the bottom of the housing. Various exemplary embodiments discussed herein include references to covers. It will be understood that the use of the term "cover" is not intended to be limiting unless other possible configurations of the openable barrier are explicitly abandoned or there is no reason why a cover cannot be generally interpreted as meaning any kind of openable barrier. An example of an openable barrier may be a front door, which is generally vertical when in the closed position and can be opened horizontally or vertically to allow additional access. There may also be vents, ducts, or other access points to the internal space or components of the CNC machine 100. These access points can serve as pathways for electricity, air, water, data, etc. Any of these access points can be monitored by cameras, position sensors, switches, etc. If they are accidentally entered, the CNC machine 100 can take actions to ensure the safety of the user and the system, such as a controlled shutdown. In other embodiments, the CNC machine 100 may be completely open (i.e., without a cover 130 or walls). Where applicable, any of the features described herein may also appear in an open configuration.

[0055] As described above, the CNC machine 100 may have one or more movable heads that can be operated to modify the material 140. In some embodiments, for example, in Figure 1 In this embodiment, the movable head can be head 160. Multiple movable heads may exist, such as two or more mirrors that translate or rotate individually to position the laser beam, or multiple movable heads that operate independently, such as two milling drills in a CNC machine capable of operating independently, or any combination thereof. In the case of a laser cutting CNC machine, head 160 may include optical components, mirrors, cameras, or other electronic components for performing the desired machining operations. Furthermore, when used herein, head 160 is generally a laser cutting head, but can also be any type of movable head.

[0056] In some embodiments, the head 160 may be configured to include a combination of optics, electronics, and mechanical systems capable of transmitting a laser beam or electromagnetic radiation in response to a command to cut or engrave material 140. The CNC machine 100 may also execute motion-planned operations to move the movable head. As the movable head moves, it may transmit electromagnetic energy to cause changes in the material 140, which is at least partially contained within the internal space. In one embodiment, the position and orientation of the optical elements within the head 160 may be varied to adjust the position, angle, and focus of the laser beam. For example, a plane mirror, a translation lens, etc., may be transferred or rotated. The head 160 may be mounted on a translation rail 170 for moving the head 160 through the housing. In some embodiments, the movement of the head may be linear, such as along the X, Y, or Z axis. In other embodiments, the head may combine any combination of movements along directions in a linear, cylindrical, or spherical coordinate system.

[0057] The working area of ​​the CNC machine 100 can be defined by limits within which the movable head can induce the transmission of machining motions or, for example, the transmission of machining media such as electromagnetic energy. The working area can be within an internal space defined by a housing. It should be understood that the working area can generally be a three-dimensional volume rather than a fixed surface. For example, if the operating range of a vertically oriented laser cutter is a 10” x 10” square entirely above the material bed 150, and the laser beam from the laser cutter exits at a height of 4” above the material bed of the CNC machine, then 400 inches... 2 The volume can be considered as the working area. To restate, the working area can be defined by the extent of the location where material 140 can be machined by the CNC machine 100, and is not necessarily constrained or limited by the movement of any component. For example, if the head 160 can turn at an angle, the working area can extend in a direction beyond the movement of the head 160. According to this definition, the working area can include any surface or portion of any material 140 placed at least partially within the working area of ​​the CNC machine 100—if said surface can be machined by the CNC machine 100. Similarly, for materials that are too large to even extend beyond the CNC machine 100, only a portion of material 140 can be located within the working area at any given time.

[0058] The translation rail 170 can be any kind of translation mechanism that enables the head 160 to move in the XY direction, such as a single rail with a motor that makes the head 160 slide along the translation rail 170, a combination of two rails that move the head 160, a combination of a circular plate and a rail, a robotic arm with joints, etc.

[0059] Components of the CNC machine 100 can be substantially enclosed in a box or other housing. The box may include, for example, windows, holes, flanges, feet, vents, etc. The box may also contain, for example, a laser, a head 160, an optical tuning system, a camera, a material bed 150, etc. An injection molding process can be performed to manufacture any of the box or its components. The injection molding process can produce rigid boxes of various designs. The injection molding process can use materials with useful properties, such as reinforcing additives that enable the injection-molded box to maintain its shape when heated, or absorbent or reflective elements coated on a surface or dispersed throughout the material, such as those that dissipate or mask laser energy. As an example, one design of the box may include horizontal slots at the front and corresponding horizontal slots at the rear. These slots allow excessively large materials to pass through the CNC machine 100.

[0060] Optionally, an interlocking system may be present, engaging with, for example, an openable barrier, cover 130, a door, etc. Many regulations require such interlocks in various situations. The interlock can then detect the open state of the openable barrier, such as whether cover 130 is open or closed. In some embodiments, the interlock can prevent some or all functions of the CNC machine 100 when the openable barrier (e.g., cover 130) is in an open state (e.g., not in a closed state). Conversely, this means that some functions of the CNC machine 100 can be prevented when it is in a closed state. Series interlocks may also exist, for example, in cases where the CNC machine 100 will not operate until cover 130 and the front door are closed. Additionally, some components of the CNC machine 100 may depend on the state of other components of the CNC machine; for example, cover 130 may not be allowed to open when the laser is on, a movable part is moving, a motor is running, a sensor detects a specific gas, etc. In some embodiments, the interlock can prevent electromagnetic energy from being emitted from the movable head when the openable barrier is detected to be in an open position.

[0061] Convert source files into exercise plans

[0062] Traditional CNC machines accept user drawings, which serve as source files describing the object the user wants to create or the cuts the user wants to make. An example of a source file is:

[0063] 1) STL files, which are limited to three-dimensional objects that can be created using a 3D printer or sculpted using a milling machine.

[0064] 2) SVG files, which define a set of vector shapes that can be used for cutting or drawing on materials.

[0065] 3) JPG files, which are limited to bitmaps that can be etched onto a surface, and

[0066] 4) CAD files or other drawing files that can be interpreted to describe objects or operations in a similar manner to any of the examples above.

[0067] Figure 3A This is a diagram illustrating an example of an SVG source file 310 consistent with some implementations of this topic. Figure 3B This is an example of a graphical representation 320 of a cutting path 330 in a CNC machine consistent with some implementations of this topic. Figure 3C This diagram illustrates a machine file 340 generated from source file 310, consistent with some embodiments of this subject, which will cause the machine to generate a cutting path 330. Example source file 310 represents a 640x480 unit work surface with a 300x150 unit rectangle, the top-left corner of which is located 100 units to the right and 100 units downwards from the top-left corner of the work surface. A computer program can then convert source file 310 into machine file 340, which a CNC machine 100 can interpret to take... Figure 3B The actions shown. The conversion can occur on a local computer, where the source file resides on a CNC machine 100, etc.

[0068] Machine file 340 describes the idealized motion of CNC machine 100 to achieve the desired result. For example, consider a 3D printer that deposits a tubular string of plastic material. When extruding the plastic, if the source file specifies a rectangle, the machine file can instruct the CNC machine to move along a serpentine path that forms a fill within the rectangle. The machine file can also omit some information. For example, the height of the rectangle may no longer appear directly in the machine file; the height will be the same as the height of the plastic tube. The machine file can also add information. For example, instructions to move the print head from its starting position to a corner of the rectangle to begin printing. These instructions can even deviate from the user's directly expressed intent. For example, a common setting in 3D printers renders solid shapes as hollow in the machine file to save material costs.

[0069] like Figure 3A The example with -C shows that the conversion from source file 310 to machine file 330 allows the CNC machine to move the cutting tool from (0,0)( Figure 3B Move to the point where the cut will begin, enable the cutting tool (e.g., lower the drag blade or excite the laser), track the rectangle, deactivate the cutting operation, and return to (0,0).

[0070] Once the machine file is created, a motion plan for the CNC machine 100 can be generated. The motion plan contains data that determines the actions of the CNC machine 100's components at different points in time. The motion plan can be generated on the CNC machine 100 itself or by another computing system. The motion plan can be a data stream describing, for example, electrical pulses instructing how a motor should rotate precisely, voltages indicating the desired output power of a laser, pulse trains specifying the rotational speed of a milling head, etc. Unlike source code files and machine files (such as G-code), the motion plan is defined by the presence of explicit or inferred time elements that indicate the time or time offset at which each action should occur. This allows one of the key functions of motion planning—coordinated motion, where multiple actuators coordinate to achieve a single, pre-planned effect.

[0071] Motion planning transforms abstract, idealized machine specifications into a series of actual electrical and mechanical tasks. For example, a machine specification might include instructions such as “move one inch to the right at a speed of one inch per second while maintaining a constant number of revolutions per second for the cutting tool.” Motion planning must account for the fact that motors cannot accelerate immediately, but must “spin up” at the start of the motion and “spin down” at the end. The motion plan then assigns specified pulses (such as those sent to a stepper motor or other device used to move the head or other parts of a CNC machine) that begin slowly, then accelerate, and then slow down again at the end of the motion.

[0072] The motion controller / planner translates machine files into motion plans. Physically, the motion controller can be a general-purpose or special-purpose computing device, such as a high-performance microcontroller or single-board computer coupled to a digital signal processor (DSP). The motion controller's job is to acquire vector machine code and convert it into electrical signals that will be used to drive the motors on the CNC machine 100, taking into account the exact state of the CNC machine 100 at that moment (e.g., "since the machine has not yet moved, maximum torque must be applied, and the resulting speed changes will be small") and the machine's physical limitations (e.g., accelerating to a certain speed without generating forces exceeding those allowed by the machine's design). The signals can be stepping and direction pulses fed to stepper motors or position signals fed to servo motors, among other possibilities, which produce the motion and actions of the CNC machine 100, including the operation of elements such as the actuation of head 160, and the moderate application of heating and cooling. In some implementations, a compressed file of electrical signals can be decompressed and then output directly to the motors. These electrical signals can include binary instructions similar to 1s and 0s to indicate the electrical power applied to each input of each motor over time to achieve the desired motion.

[0073] In the most common implementation, motion planning is the sole stage for understanding the detailed physics of the CNC machine 100 itself and translating idealized machine data into achievable steps. For example, a particular CNC machine 100 might have a heavier head and require more gradual acceleration. This limitation is modeled in the motion planner and influences the motion plan. Each model of the CNC machine can require precisely tailored motion plans based on its measured properties (e.g., motor torque) and observed behavior (e.g., band skipping when accelerating too quickly). The CNC machine 100 can also have its motion plans adjusted on a per-machine basis to account for variations from CNC machine to CNC machine.

[0074] Motion plans can be generated and fed to the output device in real time or near real time. Alternatively, motion plans can be pre-calculated and written to a file, rather than being streamed to the CNC machine, read back from the file, and then transmitted to the CNC machine 100 later. Instructions sent to the CNC machine 100, such as machine files or portions of motion plans, can be streamed entirely or in batches from a computing system storing the motion plans. Batches can be stored and managed separately, allowing pre-calculation or additional optimization to be performed only on portions of the motion plan. In some implementations, electrical signal files can be output directly to the motor, and these files can be compressed to save space and decompressed for easy use. The electrical signals can include binary instructions similar to 1s and 0s to instruct the actuation of the motor.

[0075] Motion planning can be enhanced by using machine vision to pre-calculate or update in real time. Machine vision is a general term describing the use of sensor data, not limited to optical data, to provide additional input for machine operation. Other forms of input can include, for example, audio data from an onboard sound sensor such as a microphone, or position / accelerometer / vibration data from an onboard sensor such as a gyroscope or accelerometer. Machine vision can be achieved by using cameras to provide images, such as the CNC machine 100, the material being operated on by the CNC machine, the environment of the CNC machine 100 (if there is debris buildup or smoke), or any combination of these. These cameras can route their output to a computer for processing. By observing the CNC machine 100 during operation and analyzing the image data, it can be determined, for example, whether the CNC machine 100 is working properly, whether the CNC machine 100 is performing optimally, the current state of the CNC machine 100 or its sub-components, etc. Similarly, the material can be imaged, and the operation of the CNC machine 100 can be adjusted according to the instruction manual, for example. The user can be notified when the project is completed, or information about the material can be determined from the image data. Error conditions can be identified, such as whether a foreign object has been unintentionally left in the CNC machine 100, whether the material is not securely fixed, or whether the material reacts unexpectedly during processing.

[0076] Camera system

[0077] Cameras can be mounted inside the CNC machine 100 to acquire image data during operation of the CNC machine 100. Image data refers to all data collected from a camera or image sensor, including still images, image streams, video, audio, metadata such as shutter speed and aperture settings, settings or data from or about flash or other auxiliary information, graphical overlays of data superimposed on images such as GPS coordinates, in any format, including but not limited to raw sensor data such as .DNG files, processed image data such as .JPG files, and data derived from analysis of image data processed from a camera unit, such as orientation and velocity from an optical mouse sensor. For example, cameras can be mounted such that they collect image data from an internal portion of the CNC machine 100 (also referred to as a “view” or “image”). Observation can occur when the cover 130 is in a closed position, an open position, or a position independent of the cover 130. In one embodiment, when the cover 130 of the CNC machine 100 is in a closed position, one or more cameras, such as cameras mounted to the inner surface of the cover 130 or other locations within the housing or enclosure, can observe the internal portion. Specifically, in some preferred embodiments, the camera can image the material 140 while the CNC machine 100 is closed, for example, while the material 140 is being processed. In some embodiments, the camera can be mounted within an internal space and opposite the work area. In other embodiments, there can be a single camera or multiple cameras connected to the cover 130. The camera can also be movable, for example, translated to multiple positions along one or more axes, rotated, and / or tilted. One or more cameras mounted to a translational support (e.g., a stand 210) can be any mechanical system that can be commanded to move (movement is understood to include rotation) a camera or, for example, a mirror that can redirect the camera's viewing angle to different positions and observe different areas of the CNC machine. The head 160 is a special housing of the translational support, wherein the head 160 is limited by a rail 220 and a translational rail 170 that restricts its movement.

[0078] Lenses can be selected for wide-angle coverage, for extremely deep depth of field, allowing both near and far objects to be focused, or for many other considerations. Cameras can be positioned to additionally capture the user to record the construction process, or placed where the user can move the camera, such as under cover 130, where opening CNC machine 100 allows the camera to point at the user. Here, for example, when the cover is not in the closed position, the aforementioned single camera can capture images. Such images can include objects such as the user outside CNC machine 100. Cameras can be mounted in movable positions such as head 160 or cover 130, with the aim of using video or multiple still images captured as the camera moves to assemble a larger image, such as a scanning camera across material 140 to obtain an image of the entire material 140, allowing analysis of image data across more than one image.

[0079] like Figure 1 As shown, cover camera 110 or more cover cameras can be mounted on cover 130. Specifically, as... Figure 1 As shown, cover camera 110 can be mounted under cover 130. Cover camera 110 can be a camera with a wide field of view 112, capable of imaging a first portion of material 140. This can include most of material 140 and the material bed, or even all of material 140 and the material bed 150. Cover camera 110 can also image the position of head 160 if head 160 is within the field of view of cover camera 110. Mounting cover camera 110 under cover 130 allows the user to be in the field of view when cover 130 is open. For example, this can provide images of the user loading or unloading material 140, or retrieving a completed project. Here, multiple sub-images (which may be acquired at multiple different locations) can be assembled, possibly along with other data such as source files of SVG or digitally rendered text, to provide a final image. When cover 130 is closed, cover camera 110 rotates downward with cover 130, bringing material 140 into the field of view.

[0080] Similarly, Figure 1 As shown, head camera 120 can be mounted on head 160. Compared to cover camera, head camera 120 can have a narrower field of view 122 and capture higher resolution images of a smaller area of ​​material 140 and material bed. One application of head camera 120 can be to image cuts made in material 140. Head camera 120 can identify the position of material 140 more accurately than cover camera 110.

[0081] Other locations for the camera may include, for example, on the optical system that guides the laser for laser cutting, on the laser itself, within the housing surrounding the head 160, below or inside the material bed 150, within an air filter or associated duct, etc. The camera may also be mounted externally to the CNC machine 100 to observe the user or external features of the CNC machine 100.

[0082] Multiple cameras can also work together to provide views of the object or material 140 from multiple positions, angles, resolutions, etc. For example, the cover camera 110 can identify the approximate location of a feature in the CNC machine 100. The CNC machine 100 can then instruct the head 160 to move to that location, allowing the head camera 120 to image the feature in more detail.

[0083] While the examples here are primarily depicted as laser cutters, the use of cameras for machine vision in this application is not limited to this particular type of CNC machine 100. For example, if the CNC machine 100 is a lathe, a cover camera 110 could be mounted nearby to observe the rotating material 140 and head 160, and a head camera 120 could be located near the cutting tool. Similarly, if the CNC machine 100 is a 3D printer, a head camera 120 could be mounted on the head 160 that deposits material 140 to form the desired workpiece.

[0084] Image recognition programs can identify the condition of internal parts of the CNC machine 100 from acquired image data. The identifiable conditions will be described in detail below, but may include the location and properties of material 140, the position of components of the CNC machine 100, operational errors, etc. Based in part on the acquired image data, instructions for the CNC machine 100 can be created or updated. Instructions can be used, for example, to counteract or mitigate undesirable conditions identified from the image data. Instructions may include changes to the output of the head 160. For example, for a CNC machine 100 acting as a laser cutter, the laser may be instructed to decrease or increase power or be turned off. Furthermore, updated instructions may include different parameters for motion planning calculations or modifications to existing motion plans, which can alter the movement of the head 160 or gantry 210. For example, if the image indicates that a recent cut has deviated from its desired position by a certain amount, for example, due to a portion moving out of alignment, then, for example, for a second subsequent operation or for all future operations, the motion plan can be calculated with an equal and opposite offset to counteract this problem. The CNC machine 100 can execute instructions to create motion plans or otherwise produce the aforementioned changes. In some embodiments, the movable component may be gantry 210, head 160, or an identifiable marker on head 160. The movable component, such as gantry 210, may have a fixed spatial relationship with the movable head. Image data can be used to update software controlling the operation of the CNC machine 100 with the position of the movable head and / or to update the movable component with the position of the movable component and / or any of its higher-order derivatives.

[0085] Because the type of image data required may vary, and / or due to the potential limitations of the field of view of any single camera, multiple cameras can be placed around the CNC machine 100 to provide the required image data. Camera selection and placement can be optimized for many use cases. A camera closer to the material 140 can be used for detail at the expense of a wide field of view. Multiple cameras can be placed adjacent to each other so that images generated by multiple cameras can be analyzed by a computer to collectively achieve a higher resolution or wider coverage than is possible for any single image alone. Image manipulation and enhancement can include, for example, stitching images to create a larger image, adding images to increase brightness, differentiating images to isolate changes (e.g., moving objects or changing lighting), multiplying or dividing images, averaging images, rotating images, scaling images, sharpening images, etc., in any combination. Furthermore, the system can record additional data to aid in image manipulation and enhancement, such as recordings from an ambient light sensor and the position of movable parts. In particular, stitching can include capturing one or more sub-images from one or more cameras and combining them to form a larger image. As a result of the stitching process, some parts of the images may overlap. Other images may need to be rotated, cropped, or otherwise manipulated to provide a consistent and seamless larger image as a result of the stitching process. Illumination artifacts such as glare and reflections can be reduced or eliminated using any of the methods described above. Furthermore, image analysis programs can perform edge detection and noise reduction or cancellation on the acquired images. Edge detection may include performing contrast comparisons on different portions of the image to detect edges and identify objects or features in the image. Noise reduction may involve averaging or smoothing one or more images to reduce the contribution of periodic, random, or pseudo-random image noise, such as noise from the operation of a CNC machine 100, such as vibrating fans, motors, etc.

[0086] Figure 4A This is a graph showing the sum of images consistent with some embodiments of this subject. For example, images captured by a camera can be summed to increase the brightness of the image. Figure 4A In the example, there are a first image 410, a second image 412, and a third image 414. The first image 410 has horizontal bands (displayed as white against a black background in the figure). These horizontal bands may correspond to brightly illuminated objects, but the key point is that there is a distinction between the bands and the background. The second image 412 has similar horizontal bands, but they are offset vertically relative to the horizontal bands in the first image 410. When the first image 410 and the second image 412 are added together, their sum is shown in the third image 414. Here, the two sets of bands interweave to fill in bright squares, as shown. This technique can be applied, for example, to acquiring many image frames from a camera, possibly under low-light conditions, and adding them together to form a brighter image.

[0087] Figure 4BThis is a diagram illustrating the subtraction of images consistent with some embodiments of this subject. Image subtraction can be used, for example, to isolate a dim laser spot from a relatively bright image. Here, the first image 420 shows two spots, one representing a laser spot and the other representing an object. To isolate the laser spot, a second image 422 can be captured with the laser off, leaving only the object. The second image 422 can then be subtracted from the first image 420 to obtain a third image 424. The remaining spots in the third image 424 are the laser spots.

[0088] Figure 4C This is a diagram illustrating the difference between images consistent with some embodiments of this subject to isolate the simulated effects of internal lighting. Objects may be present in the CNC machine 100, represented as circles in the first image 430. This could represent, for example, objects on the material bed 150 of the CNC machine 100. For example, if half of the material bed 150 of the CNC machine 100 is illuminated by external lighting (e.g., sunlight), the second image 420 might appear as shown, where the illuminated side is brighter than the unilluminated side. Using internal lighting during operation can sometimes be advantageous, for example, to illuminate watermarks, aid in image diagnostics, or simply to better show the user what is happening in the CNC machine. Even if none of these reasons apply, internal lighting still allows for the reduction or elimination of external lighting (in this case, sunlight) in this way. This internal lighting is represented in the third image 434 by adding a brightness layer to the entire second image 432. To isolate the effects of internal lighting, the second image 432 can be subtracted from 434 to produce a fourth image 436. Here, the fourth image 436 shows areas and objects that appear as if only under internal lighting. This difference allows image analysis to be performed as if only controlled internal lighting were present, even in the presence of external lighting contaminants.

[0089] Machine vision processing of images can occur, for example, at a CNC machine 100, on a locally connected computer, or on a remote server connected via the Internet. In some implementations, image processing capabilities can be performed by the CNC machine 100, but at limited speed. One such example could be a situation where the onboard processor is slow and can only run simple algorithms in real time, but given more time, it can run more complex analyses. In this case, the CNC machine 100 can pause to allow the analysis to complete, or alternatively, the data can be processed on a faster, connected computing system. A specific example could be a situation where complex recognition is performed remotely (e.g., by a server on the Internet). In these cases, limited image processing can be performed locally, while more detailed image processing and analysis can be performed remotely. For example, a camera can use a simple algorithm running on the processor in the CNC machine 100 to determine when the cover 130 is closed. Once the CNC machine 100 detects that the cover 130 is closed, the processor on the CNC machine 100 can send the image to a remote server for more detailed processing, such as identifying the location of the inserted material 140. The system can also dedicate dedicated resources to analyzing images locally, pausing other actions, or diverting computing resources away from other activities.

[0090] In another implementation, the head 160 can be tracked via real-time analysis on the board. For example, tracking the position of the head 160, a task typically performed by an optical encoder or other dedicated hardware, can be accomplished by images captured by a camera at high resolution, low resolution, or a combination of high and low resolution. When high-resolution images are captured, they can be converted to smaller, lower-resolution images in memory size by resizing or cropping. If the images include video or still image sequences, some images can be eliminated or cropped. The data processor can repeatedly analyze the smaller images, for example, several times per second, to detect any overall misalignment. If a misalignment is detected, the data processor can stop all operations of the CNC machine 100 while more precisely positioning the head 160 using higher-resolution images in more detailed processing. After the head 160 is positioned, it can be adjusted to restore the corrected position. Alternatively, the images can be uploaded to a server where further processing can be performed. The positioning can be determined, for example, by viewing the head 160 with a cover camera, by viewing what the head camera 120 is currently imaging, etc. For example, the head 160 can be instructed to move to a registration mark. The head camera 120 can then image the registration mark to detect any minute misalignment.

[0091] Basic camera functions

[0092] The camera can be, for example, a single wide-angle camera, multiple cameras, a moving camera whose images are digitally combined, etc. A camera used for imaging a large area inside the CNC machine 100 can be different from other cameras used for imaging more localized areas. In some embodiments, the head camera 160 can be an example of a camera that images a smaller area compared to a wide-angle camera.

[0093] Other camera configurations exist for different purposes. A single camera (or multiple cameras) with a wide field of view can cover the entire interior of the machine or a predefined, significant portion thereof. For example, image data acquired from one or more cameras may include most (meaning more than 50%) of the working area. In other embodiments, the image data may include at least 60%, 70%, 80%, 90%, or 100% of the working area. These quantities do not take into account the obstruction of material 140 or any other intermediate object. For example, if a camera is able to observe 90% of the working area without material 140, and a piece of material 140 is placed in the working area, partially obscuring it, the camera is still considered to provide image data including 90% of the working area. In some embodiments, image data can be acquired when the interlock does not prevent the emission of electromagnetic energy.

[0094] In other embodiments, a camera mounted externally to the machine can observe users entering or leaving the CNC machine 100 and / or material 140, recording the use of the CNC machine 100 for sharing or analysis, or to detect safety issues such as uncontrolled fire. Other cameras can provide a more precise view with a limited field of view. Optical sensors, like those used in optical mice, can provide very low resolution and very little color or grayscale over a very small area with very high pixel density, then quickly process the information to detect movement of material 140 relative to the optical sensor. The lower resolution and color depth, combined with specialized computing power, allow for very fast and precise operation. Conversely, if the head is static and the material is moving, for example, if a user touches it, the method can observe the movement of the material and characterize it very precisely, allowing additional operations on the material to continue where previous operations stopped, such as restarting a cut that was interrupted before the material moved.

[0095] Video cameras can detect changes over time, such as by comparing frames to determine the rate at which the camera is moving. Still cameras can be used to capture higher-resolution images, which can provide more detail. Another type of optical scanning can implement a linear optical sensor, such as a flatbed scanner, on an existing track, like the sliding gantry 210 in a laser system, and then scan it across material 140, assembling the image as it scans.

[0096] To isolate light from the laser, the laser can be turned off and on again, and the difference between the two measurements represents the light scattered from the laser, while eliminating the influence of ambient light. Cameras can have fixed or adjustable sensitivity, allowing them to operate in dim or bright conditions. Any combination of cameras sensitive to different wavelengths can exist. For example, some cameras may be sensitive to wavelengths corresponding to cutting lasers, ranging lasers, scanning lasers, etc. Other cameras may be sensitive to wavelengths specifically falling outside the wavelengths of one or more lasers used in CNC machine 100. Cameras may be sensitive only to visible light, or their sensitivity may be extended to infrared or ultraviolet light, for example, to view invisible barcodes marked on a surface, to distinguish materials that are the same if not viewed through IR reflectivity, or to directly view invisible (e.g., infrared) laser beams. A camera can even be a single photodiode that measures, for example, the flash of a laser illuminating material 140, or it may react to light emission that appears to be associated with uncontrolled fire. Cameras can be used to image, for example, beam spots on a mirror, light escaping the expected beam path, etc. Cameras can also detect scattered light, for example, if a user attempts to cut a reflective material. Other types of cameras can be implemented, for example, instead of detecting light of the same wavelength as the laser, they can detect secondary effects, such as infrared radiation (using a thermal imaging camera) or X-rays emitted through contact between the laser and another material.

[0097] The camera can be coordinated with a lighting source within the CNC machine 100. The lighting source can be positioned anywhere within the CNC machine 100, such as on the inner surface of the cover 130, walls, base plate, gantry 210, etc. An example of coordination between the lighting source and the camera is adjusting the internal LED lighting while simultaneously capturing images of the interior using the camera. For example, if the camera can only capture black and white images, the internal LEDs can be illuminated sequentially in red, green, and blue, capturing three separate images. The resulting images can then be combined to create a full-color RGB image. If external lighting causes shadows or problems with the external lighting effect, the internal lighting can be turned off when one image is captured and then turned on when a second image is captured. Ambient light can be eliminated by subtracting the two images on a pixel-by-pixel basis, so that it can be determined what the image would look like when illuminated only by the internal lights. If the lighting is movable, for example, on a translation arm of the CNC machine 100, the lighting can be moved around while multiple images are captured, and then the multiple images can be combined to achieve an image with more uniform lighting. The brightness of the internal lights can also be varied, like a flash in a conventional camera, to assist in illumination. The illumination can be moved to a position that better illuminates the area of ​​interest; for example, it can be positioned to directly illuminate the slot formed by the cut, allowing the camera to see the bottom of the cut. If internal illumination is interfering, it can be turned off while the camera is capturing an image. Alternatively, the illumination can be turned off for a brief period of time (e.g., less than a second, less than 1 / 60 of a second, or less than 1 / 120 of a second) without the viewer noticing. Conversely, internal illumination can be momentarily brightened, like a camera flash, to capture the photograph. Dedicated lights can be used and / or combined only when needed; for example, there may be invisible but UV-fluorescent ink on the material. When scanning a barcode, ultraviolet illumination can be briefly flashed during photograph capture to illuminate any ink present. The same technique for altering illumination conditions can also be used by switching ranging and / or cutting lasers to isolate their signals and / or effects during imaging. If the object (or camera) moves between acquisitions, images can be cropped, translated, expanded, rotated, etc., to obtain images sharing common features, allowing for subtraction. This differential technique is preferably overridden or disabled by automatic adjustments within the camera. For example, disabling autofocus, flash, etc. Features that can ideally be kept constant between images may include, for example, aperture, shutter speed, white balance, etc. In this way, variations in the two images are attributed only to differences in illumination and not to adjustments in the optical system.

[0098] Multiple cameras or a single camera moved to different positions within the CNC machine 100 can provide images from different angles to generate a 3D representation of the material 140 or the surface of an object. This 3D representation can be used to generate 3D models, measure depths produced by engraving or laser operations, or provide feedback to the CNC machine 100 or the user during manufacturing. It can also be used for scanning to build a model of the material 140 for replication.

[0099] Cameras can be used to record photos and videos that users can share of their progress. Automatic "making-of" sequences can be created, stitching together various still images and video images along with accompanying sound and visuals, such as digital renderings of source files or user-generated images from social networks. Understanding the motion plan, or directly controlling the camera via the motion plan, enables a variety of optimizations. In one example, given a machine with two cameras, one mounted in the head and one in the cover, the final video can be created at any time with a footage shot from the head camera, positioned where the gantry would normally blur the cover camera. In another example, when the machine's internal lights are activated, the camera can be instructed to reduce its aperture size, decreasing the amount of light allowed to enter. In yet another example, if the machine is a laser cutter / engraver and activating the laser overloads and renders the head camera useless, the footage shot can be discarded when unavailable. In yet another example, elements of the motion plan can be coordinated with camera recording for optimal visual or audio effects, such as dimming the internal lights before cutting or driving motors in a coordinated manner to allow the head camera to sweep across the material to form a final view of the work result. In another example, sensor data collected by the system can be used to select camera images; for example, when an accelerometer, gyroscope, or other sensor in the lid detects that the lid has been opened and has reached the optimal angle, a still photo of the user can be captured from a camera mounted in the lid. In another example, video recording may stop if an erroneous condition is detected, such as the lid being accidentally opened during machining operations. Information such as the total duration of the cut file can be used to automatically edit the video to eliminate or speed up monotonous events; for example, if a laser must make 400 holes, that section of the cutting plan can be displayed at high speed. Traditionally, these decisions must be made by reviewing the final shot, with little or no prior knowledge involved. Pre-selecting shots (and even coordinating their capture) can allow for higher quality video with less time spent editing it. Video and images from the production process can be automatically stitched together in a variety of ways, including stop-motion animation with images, interweaving video with still images, and combining video and photography with computer-generated images, such as a 3D or 2D model of a project being rendered. Videos can also be enhanced using media from other sources, such as photos taken with the user's camera on the final product.

[0100] Additional features, which may be included individually or in any combination, are described in the following sections.

[0101] Call the header to the starting position before image acquisition.

[0102] Especially with cameras that have a wide field of view, obstacles may be present in the images acquired using these cameras. For example, see reference... Figure 1 The field of view of the cover camera 110 includes the head 160. Therefore, the head 160 obstructs a portion of the material 140 from being imaged. If it is determined that the head 160 or any other component is obstructing the camera's view of a desired area, instructions can be sent to the CNC machine 100 to move the obstructing element to a position within the interior portion so that it does not impede the camera from imaging the material 140. For example, the head 160 can be moved to a starting position toward the rear, side, or front of the machine. Once the head 160 is no longer obstructing the view of the material 140, or has reached a predetermined position, the camera can acquire additional images. Subsequently, instructions can be generated for the head 160 to move to another position or continue executing the motion plan. In another example, it may be impossible to capture the entire interior without obstructions, so the head or other obstructions can be instructed to move to multiple different positions and take photographs at each point. The images can then be combined to form an accurate view of the entire bed. In another example, the camera can be instructed to image components of the CNC machine 100, such as the head 160. Therefore, the CNC machine 100 can receive instructions to move the head or other parts of the CNC machine 100 into the view of the camera.

[0103] Image acquisition triggered by sensor data

[0104] As described above, in addition to the camera in CNC machine 100, there are other sensors that can be integrated into or otherwise associated with CNC machine 100. Such sensors may include any of the following: accelerometers (e.g., sensors for determining position and its higher-order derivatives, such as velocity, acceleration, etc.), microphones, thermal sensors, optical sensors, etc. Sensors can provide sensor data that can be interpreted by a sensor data analysis program. The interpretation of the sensor data may correspond to conditions in CNC machine 100, such as vibration, temperature, sound, the presence of electromagnetic radiation, etc. In some implementations, images can be acquired in response to sensor data (e.g., signals from one or more sensors) and subsequent interpretation of the sensor data. In some examples, the sensor providing such a signal is not a user-actuable camera control (e.g., not a hardware or graphical user interface button or other control that the user can manually trigger to capture an image). In one example, an event of closing CNC machine 100 (e.g., opening a barrier) can trigger one or more sensors indicating that the content of CNC machine 100 may have changed and an image should be captured, thereby eliminating the need for the user to manually trigger an image capture event to check for new content. In another example, a sensor may detect that cover 130 is open. This event may trigger the capture of an image of a user loading or unloading materials. In another example, if an unusual sound is detected by a microphone, a command may be sent to a camera to capture an image of a portion of the CNC machine 100. The image can then be analyzed by an image analysis program or by the user to determine the cause of the unusual sound or other sensor input and / or to identify other events, factors, etc., related to the unusual sound or other sensor input. In another example, if an accelerometer in the head detects an unusual reading, the camera may image the head and check if it has been impacted; however, if the same unusual reading is detected in an accelerometer in the body, the system may determine that the entire unit has been impacted from the outside and instead examine the materials to see if the impact has moved its position. Typically, events that trigger the capture of images by a camera through the CNC machine 100 may include any one of the following: moving an openable barrier from a closed position, moving an openable barrier to a closed position, movement of a laser computer numerical control machine (e.g., housing), fire within the internal space, abnormal condition of a component of the laser computer numerical control machine, temperature exceeding a threshold within the internal space, or electromagnetic radiation occurring in an unexpected place or at an unexpected time.

[0105] 3D scan

[0106] Figure 5 This is a diagram showing a cover camera 110 for imaging a three-dimensional object 510 in a CNC machine 100, consistent with some embodiments of this subject. Figure 6This diagram illustrates, according to some embodiments of the present subject, a set of 2-D patterns 610 superimposed on material 140 in a CNC machine 100, representing the imaged object 510 in FIG3. Any optical features described herein can be utilized by the CNC machine 100 to perform a 3-D scan of material 140. Such a scan can be implemented according to its own motion plan, regardless of whether the created motion plan is intended for manufacturing. Once completed, the 3D scan can be transmitted to a cloud server or other computing system to provide a computer rendering of material 140 to the user. The 3-D scan of material 140 can also be used with a preview of what material 140 will look like after it has been sculpted and / or cut. The 3-D scan can also provide an estimate of the amount of waste material 140 will be left after cutting. Multiple 3-D scans can also be taken during the cutting process to provide a digital evolution of material 140 as the motion plan is executed. The 3-D scan can even be used for a single purpose, such as sharing the results of a cutting operation on a social network. It can also be used to scan object 510 (e.g., a metal statue) to replicate it on another material 140. Specifically, images captured by any camera in the CNC machine 100 can be combined to perform 3D rendering. This can be done in conjunction with user input, such as specifying that the image (from a particular camera) is "top," "side," etc. Furthermore, ranging techniques can be used to determine the position of the surface of material 140. For example, one or more lasers can be used to determine the extent of material 140.

[0107] Material profile

[0108] The camera can also be used to determine the size and profile of the material 140 in the CNC machine 100. This allows the user to place the material 140 anywhere within the CNC machine 100 and to use material 140 with unusual shapes, such as scrap material 140 with holes already cut into it.

[0109] Images from the camera can be compared with images from a device without any material 140. Differentiating these images can provide indications of the material 140, such as its outline or 3D shape. In another embodiment, the bottom of the CNC machine 100 and / or the material bed 150 can be designed to appear in a specific manner to facilitate digital removal from the image. For example, the bottom of the CNC machine 100 can be green, and the green in the image can be digitally removed to identify the material 140. Alternatively, on-machine LEDs can use “flash” to illuminate using colors that will not be reflected from the material 140. In another example, the material 140 can be identified by its appearance or by the presence of distinguishing markings (e.g., UV barcodes repeated on its surface). In another example, the edges of the material 140 can be detected as a continuous closed shape even if the center of the material 140 may be invisible (in the case of transparent acrylic).

[0110] Once the material profile has been captured, the material 140 profile can be displayed to the user. The material profile can be used as input to an automatic layout algorithm that attempts to place all parts within the boundaries of the material 140. The material 140 profile can also be used as a set of constraints in a virtual simulation, allowing the user to drag parts that will collide with the edges of the material 140, thus enabling the user to attempt to position the parts without dragging them off the material 140.

[0111] Material Preview

[0112] Figure 7 This is a diagram illustrating a collection of 2-D patterns 610, consistent with some implementations of the present topic, previewed as a 3D object 510. A camera can capture the appearance of material 140 in a CNC machine 100 prior to machining. For example, the system can show a user what the final product will look like, rendered as a 3D object 510. The image of material 140 can be used as a texture map, which can then be rendered onto the 3-D object 510. This means that the user can accurately see what the final product will look like using material 140 currently in the CNC machine 100. Furthermore, if defects exist in material 140, the user can see where they will appear on the 3-D object 510. If the user repositions the cuts on material 140 in the software, the result of the material 140 preview can be changed to reflect the repositioned cut location. Among other possible benefits, this feature allows users to optimize the pattern so that areas of poor quality material 140 are hidden from view, such as on the inner surface of an assembled product, or completely outside the pattern. It also allows users to preview their creations using different materials to aid in material selection.

[0113] Users can also indicate the location of cuts across various materials 140 present on the material bed 150. For example, a user can place a piece of maple and a piece of walnut plywood on a support and then use an image of the materials 140 on the screen to arrange the cut locations so that some parts are made of maple and some parts are made of plywood. Alternatively, users can select some shapes from each type of material 140 to cut based on the desired appearance or physical properties.

[0114] Different power levels and speeds of the output used for the head 160 can result in different appearances of the material 140 during processing. For example, moving the head 160 at different speeds can cause variations in the burn pattern left by the laser, changes in the roughness of the cuts produced by the milling head, and so on. Users can preview what the material 140 will look like after processing by using images captured, for example, from a previous calibration step. For example, the appearance of a type of wood marked with 20% maximum power during calibration can be used to predict what it will look like when carved at 20% power. The predicted appearance can be displayed to the user on a graphic display to aid in project design or selection of settings to use.

[0115] The camera can also capture the appearance of material 140 after it has been cut, engraved, rotated, printed on, etc. These captured images, accessed from an image library or obtained from test cuts on actual material 140, can provide a precise picture of the material 140’s response to machining using specific output parameters. For example, a test cut can be performed in the scrap area of ​​material 140 under given power, head speed 160, drill rotation, etc., to provide an example of how material 140 would look if cut with the same settings. Similarly, images of material 140 after it has been cut can be used to evaluate the material’s new position after some interaction with the user. For example, a large design approximately twice the size of the material bed 150 can be completed in the form of two consecutive cuts with a pause in between, where [a] the user or some material translation mechanism of the CNC machine or associated with the CNC machine repositions the material to expose further uncut space and [b] the camera determines from which point the cut stops.

[0116] If material 140 is identified based on a library, image analysis, or previous use, the desired results can be provided using pre-calculated or stored settings. Identification of material 140 based on a library can be achieved in several ways.

[0117] First, the type of material 140 can be identified using barcodes or other markings. These may be visible to the naked eye or invisible and only become apparent when using an infrared camera and illumination, or under ultraviolet light provided by a suitable lamp (e.g., UV LED). They can also be printed with standard visible ink. Text can be printed on the material and identified using optical character recognition software. The camera can also detect accompanying markings, such as the brand of material 140 on a protective film.

[0118] Second, the camera can use image recognition to identify material 140. For example, maple, cherry, and walnut all have different granular structures. The unique colors and patterns in material 140 can be imaged and compared with known examples of material 140 stored in the local memory of CNC machine 100 or stored on a remote computer.

[0119] Use markings and drawings to indicate cutting.

[0120] Camera scanning can also be used to replicate patterns from existing 2D objects. In one example, a user can mark a piece of material 140 with a black pen. They can then place material 140 in a cell. The camera can scan the image and isolate the area with the black pen, creating a source file using the image. The system can then generate a machine file and motion plan, instructing the machine to move into place, move its head along a calculated path across the indicated area, activate the engraving function, deactivate the function, and complete the process. The result will be material 140 engraved in the same location as the ink and with the same markings. Different colors of ink can be used to represent different operations; for example, red lines can be used to indicate cutting, while brown lines indicate photo-engraving. Functions can be specified in the software between the scanning step and the creation of the machine file; for example, the user might be asked whether they should cut or scan the black markings. Other indicators besides ink may be used; for example, a user could cut a paper snowflake and use a machine vision system to scan its perimeter and generate a source file from the image of the perimeter. In all these examples, the source file can be saved and modified, so the scanned image can be moved, resized, repeated, or retained for later use.

[0121] In another embodiment, the camera can detect a pattern on material 140 corresponding to a design stored in memory, and then the CNC machine 100 can machine the stored design onto material 140. Note that this differs from registration marks, which are used when motion planning software is informed of where the registration marks are and what the corresponding design is. In this case, the camera can image material 140 and the registration marks and determine what the design is based on the image. In another example, the camera can identify scrap debris left from previous operations by imaging cutting marks present as a result of previous operations or cutting marks intentionally generated on scrap as registration marks, anticipating further use of the scrap for waste processing.

[0122] In one implementation, material 140 can be inserted into a CNC machine 100 with a specific pattern, such as a red square surrounded by a black circle. The material (and pattern) can be imaged by a camera. Specific operations can be selected based on the image; for example, the red line can be converted into a vector cutting path, and the black area can be converted into raster engraving. Motion plans can be generated based on the selected operations, such as cutting out a square and engraving a circle. The CNC machine 100 can then implement the motion plan to perform, for example, cutting and engraving.

[0123] Different color markings can indicate different cutting operations—for example, a red line can indicate cutting, while a black filled area may indicate etching. A sheet of paper or other suitable cover containing a pattern or image can be fastened to a piece of material 140, and the pattern or image can then be engraved directly onto the material 140 through the cover. This design can be applied directly to the target material 140, where the cover may be damaged by the machining operation. Alternatively, the material can be removed before the operation begins. In either case, the pattern can be saved for later modification and / or repetition. The type of output from the CNC machine 100 can vary depending on color, line thickness, line type, etc. As an example, a blue line can indicate etching at 40% power, and a green line can indicate etching at 60% power.

[0124] Users can also place the drawing in the CNC machine 100, allowing multiple cameras to scan and draw the drawing, and then insert individual material pieces 140 to be cut or carved. The first pass of the scanning camera can scan the image, while the second pass with the head 160 can cut the material 140.

[0125] The system can use a screen, projector, or other visual feedback unit to generate a virtual overlay of programmed cutting lines on an image or video of the actual material 140. Furthermore, previously collected images can allow the preview of the cut to appear realistic, for example, during calibration for test cuts. Moreover, previously collected images can allow the preview of the cut to appear realistic, for example, during product previews. For instance, when previewing the product, the texture of the actual material 140 and the typical “V” shape of cutting or vibrating at the cut edge can be displayed. Users can also choose to arrange the fragments among multiple materials that may be present, or rearrange them to take advantage of material properties, such as aligning the fragments with wood grains.

[0126] Similarly, a user can simultaneously insert the drawing and material 140 to be cut at different locations on the machine tool, specifying one as the source and the other as the destination. In this example, the user copies the image from one section to the next. The user can selectively resize or otherwise modify the drawing in the software before machining. For example, the user can specify that the destination will be zoomed in, rotated, and / or translated relative to the source. In instances of cutting transparent materials (such as glass or transparent acrylics), the drawing can also be clearly placed on the underside of the material to minimize these interactions.

[0127] Inspecting materials and objects in CNC machines

[0128] Many CNC machines, especially mills, rely on having known material in place before starting. If incorrectly sized raw material is inserted, for example, if the material is too tall, the head may collide with it. In another example, unidentified materials, such as jigs, may be present in the workspace. Collisions between the head and these items are common, causing damage.

[0129] Multiple cameras or a moving camera can be used to determine the actual configuration of the workspace. This can be used to detect collisions in various ways. For example, software that creates motion plans can pre-specify what material is expected to be present and where it is located. This can include characterizing the coordinates of the surfaces corresponding to the material from acquired image data. These coordinates can be compared with coordinates indicating where the material should be. The comparison can be based on the motion plan, images, user input, etc. If the current coordinates of the material are inconsistent with the expected coordinates, this can be interpreted as an error state. The CNC machine 100 can then take action in response to the detection of the error state. For example, it can stop processing, activate an alarm, identify the user, or update the motion plan based on the new material coordinates.

[0130] The software can model machines moving around all existing material. An error state occurs if the machine intersects the material at an unsafe speed or if it moves a rotating drill bit through too much material.

[0131] The software for creating motion plans can specify which motions are intended to intersect with solid material and which are intended not to. The software can then run a motion plan-based simulation along with the observed material in the workspace to see if the intersection occurs outside the planned area.

[0132] Materials that are characterized and calibrated

[0133] Images acquired by a camera or otherwise provided to or from the CNC machine 100 can be analyzed to generate or modify instructions for the operation of the CNC machine 100. Images can be used to identify, for example, materials or products placed within the CNC machine 100. Identification of material 140 within the CNC machine 100 can be associated with or based on known characteristics of the material or product. For example, it can be identified by the CNC machine 100 based on wood grain, color, texture, etc. In another example, identification can be based on text or other visual analysis of markings present on a protective coating of certain materials. An example of such a protective coating could be plastic with a paper layer adhered to its surface. Besides protecting the plastic from scratches during transport or handling, the paper layer can include images, text, barcodes, etc., providing readable information for humans or machines other than the CNC machine, such as for automated inventory management. In another example, identification can be based on markings designed for this purpose; text, images, barcodes, watermarks, or embedded or connected devices, such as printed labels or embedded microchips, for reading by the CNC machine.

[0134] In some implementations, the material can be identified as a "characteristic material." A characteristic material is one that can have significant variations, but the CNC machine is capable of adapting the motion plan to handle any observed variations in the results during machining. As an example, there can be natural walnut wood with significant variations, and the CNC machine can be equipped to handle its "worst-case" behavior and / or iteratively process the material, checking after each pass to ensure the material is adequately cut, carved, etc.

[0135] In other embodiments, materials can be identified as calibration materials. Calibration materials, as described herein, can refer to one or more materials that have a well-understood and consistent composition and / or whose laser cutting effects are well-characterized, spatially homogeneous, etc. These calibration materials, as described herein, are well-understood enough to allow calibration of other components of the CNC machine (e.g., lasers, cameras, etc.). For example, a homogeneous material can be provided, i.e., substantially free of defects such as junctions, cavities, density variations, etc. Other materials can have consistent and well-known optical properties. Another example could be an alloy with a consistent composition throughout. Material calibration data related to the physical properties of different materials can be accessed by the CNC machine 100 or a remote computing system. A library or database containing material calibration data can be accessed during operation of the CNC machine 100 or when generating or updating motion plans. Furthermore, detailed calibration information can be encoded on the material itself as text, images, barcodes, additional devices, embedded microchips, or otherwise. By combining the known output of a cutting tool (e.g., a laser) with the material calibration data, precise cutting can be performed by the CNC machine 100. During or after cutting, the cut can be imaged and compared to the expected results for given CNC operating parameters and calibrated material type. Detected differences, such as those exceeding predefined or configurable tolerances, can cause the system to send an alert to the user that the CNC machine is operating differently than expected in some way.

[0136] For example, a laser cutter / engraver might be able to engrave 1” of acrylic calibrated material to a depth of 0.5” at 100% power and 2 inches per second. If such an engraving is attempted and the resulting depth is only 0.4”, then it is concluded that there is a problem, such as laser aging and a decrease in its output, and appropriate measures should be taken, such as notifying the operator.

[0137] The type of material is sometimes unknown, which does not necessarily give the material desirable characteristics, and a CNC machine can determine what the material is or how best to process it. In some implementations, the user can determine the ideal settings, laser power, and head speed by, for example, cutting and / or carving a predetermined test pattern into a block of unknown material. The test cut in the unknown material can scan a variety of possible settings. The settings can be selected by the user or accessed from computer memory. The camera can then capture an image of the material, and the user can visually select which areas of the test pattern produce their preferred results. The image can be used to determine which settings are used as part of a test motion plan to allow saving the user's custom material settings for future use. In another implementation, the camera can image the test cut and automatically determine the optimal settings based on a comparison with stored test cut images.

[0138] watermark

[0139] Figure 6 This is an illustration of a head-mounted camera 120 imaging a watermark 810 present on material 140 within a CNC machine 100, consistent with some embodiments of the present subject. The watermark 810 can be identified from the acquired image and interpreted as identifying material 140 and its properties. The watermark 810 may contain any amount or type of information about material 140, permitted uses of material 140, etc. As used herein, the term "watermark" includes any form of marking on material 140, including the markings described above regarding calibration materials.

[0140] In one embodiment, the watermark 810 may be printed on the material 140 or attached to a cover sheet of the material 140. The watermark 810 may be visible to the naked eye or invisible, such as a UV watermark 810. In some embodiments, the CNC machine 100 may include a light source that illuminates the watermark 810 to make it visible to a camera. In one embodiment, the watermark may be a QR code containing data, such as settings or a link to where settings can be found. In another embodiment, the mark is repeatedly applied to the surface of the material such that even if the material is cut or a portion of the surface is removed, the remaining portion of the material has sufficient information to reconstruct the original data.

[0141] In addition to the calibration properties described above, the watermark 810 can be used to track material 140 across different CNC machines. For example, the watermark 810 can be unique to material 140, and material 140 can be tracked by imaging the watermark 810 and uploading the identity of the CNC machine 100 operating on material 140. Furthermore, if a predefined cutting pattern identified by the watermark 140 is to be used with material 140, the CNC machine 100 can first check authorization, ownership, etc. If the user is not authorized to use a cutting pattern calibrated with material 140, the CNC machine 100 can refuse the user's operation. Use or attempt to use the watermarked material can be recorded on any number of computing systems. The same watermark 810 can also be used for inventory tracking, inventory management, retail checkout, etc.

[0142] For any similar material blocks, the watermark can be identical, or it can be unique to each individual material block. The data on the watermark may contain information necessary for processing the material, or simply enough information for the CNC machine to locate the necessary information for processing the material, such as a unique identifier that can be looked up in a database. It may also have the material processing information in the watermark as a backup in case the network connection fails to provide more detailed information online.

[0143] In one implementation, it can be determined that, based on watermark 810, specific settings of the CNC machine 100 should be used to perform the desired cut. In another implementation, it can also be determined that, based on the identified material 140, the settings of the CNC machine 100 are incorrect for the desired cut. Correction of the motion plan can be achieved through user input or automatically by the CNC machine 100. The absence of detected watermark 810 can also be used to provide an alert to the user that material 140 is not a characteristic or calibrated material. Watermark 810 can also be used to identify different regions of material 140 that must be treated differently—for example, calibrated or characteristic materials may have two or more distinct regions, higher density regions, and lower density regions, each requiring a different power setting.

[0144] Typically, watermark 810 may contain data about material 140 that can be accessed by a user. For example, watermark 810 may be associated with a serial number, material 140 name, power settings required for the desired cut (for any CNC machine 100), proprietary settings for a specific CNC machine 100, a picture of material 140 below, and what the material will look like after processing on the machine using certain settings. Watermark 810 may also contain general information such as comments about material 140, instructions, suggestions, warnings, etc., for the user. In another embodiment, the watermark may not contain this information but may contain information sufficient to retrieve it, such as a unique identifier for an online database.

[0145] Production Records

[0146] Any method described herein can be recorded using a combination of a cover camera, a head camera, or any other camera in the CNC machine 100. In one embodiment, video data files can be generated by combining recordings of the production process, including, for example, design phases, manufacturing phases, finishing phases, etc. The design phase may include, for example, recordings of a user scanning or providing material 140 in the CNC machine 100, the development of motion plans, and manipulation of patterns to be engraved or cut, etc. The production phase may include, for example, placing material 140 in the CNC machine 100, with the CNC machine 100 executing motion plans, etc. The finishing phase may include, for example, any final handling of the finished product, recordings of cooling / setting, and user retrieval of the finished product. At any phase, recording can be coordinated with system activity. For example, recording may be paused if there is a pause during production. Furthermore, recording may end with the cover 130 open, or otherwise, it may be extended for a predetermined duration to capture the user retrieving the finished product. The user may be prompted to perform final steps such as assembling and then re-inserting the finished product for imaging, 3D scanning, or other recording purposes.

[0147] At any or all of these stages, video data files can be transferred from the CNC machine 100 or other recording computing systems to the network, for example, for cloud storage, for real-time streaming to social media feeds, such as email file attachments, etc.

[0148] Material thickness measurement – ​​general

[0149] Various methods can be used to determine the thickness of the material 140 to be cut or carved. One method is to determine the height of the top surface of the material 140 and compare it to a known position of the bottom surface of the material 140. Typically, although not necessary, the bottom surface of the material 140 coincides with the surface of the top material bed 150, which can be of a known height. The difference between the height of the top surface of the material 140 and the height of the bottom surface of the material 140 can then be determined as the thickness of the material 140. In another embodiment, the method for determining the thickness of the material 140 can be calibrated by measuring the material 140 with a known thickness. For example, an object with a thickness of 1 cm can be placed on the material bed 150. The data can be acquired by a camera and can be correlated with the known thickness of the object. In another embodiment, the camera can determine the height of the surface on which the material 140 is located. For example, if there are portions of other material 140 between the topmost material 140 and the material bed 150, the camera can measure the height of the topmost surface before the material 140 is inserted, or measure the height of the topmost surface in a position not obscured by the material 140.

[0150] In one implementation, the heights at different points on the surface of material 140 can be measured, for example in a grid pattern, to characterize the curvature of material 140. Once the heights at many points on material 140 are known (and therefore the surface curvature), instructions can be generated such that one or more actuators can follow the curve of material 140. For example, a cutting laser can remain focused, a camera can remain in focus, a 3D printer head can maintain a constant separation from the material base, or a CNC milling head can maintain a constant distance from material 140.

[0151] Once the distance between the surface and the lens (or any other reference point in the CNC machine 100) is known, this can be used during machining to precisely control the height of the head 160 (and the optics inside the head 160).

[0152] The contrast detection, phase detection, or any other ranging techniques described herein can also be implemented on other machines, such as CNC milling machines, where the distance determines the position of head 160 to position the milling head. In this way, motion planning can include, for example, contrast detection, autofocus, etc., to perform real-time analysis of the position of material 140 and / or the position of head 160 relative to material 140.

[0153] Material retention

[0154] While knowing the location of the surface of material 140 is important, and the surface location (or height) is the easiest to measure, the thickness of material 140 is also important. If material 140 can be flattened, for example against a bed of material 150, then the height of the top of material 140 minus the height of the bed of material 150 equals the thickness. Therefore, the method of securely holding material 140 to the support can be combined with any method used to measure the thickness of material 140. This can be helpful in situations where material 140 may have a natural tendency to bend or arch, or where material 140 may be lightweight and contain air bubbles underneath.

[0155] In one embodiment, at least one plunger may be present to securely hold the material 140 against the support. The plunger may be located near the cutting point, or at another location or multiple locations on the material 140. Moreover, the location of the plunger itself can provide cross-checking of any optically determined thickness of the material 140, for example, if the height of the plunger surface relative to the surface of the material bed 150 is known.

[0156] In another embodiment, the material bed 150 may be a vacuum stage with multiple holes extending through the surface to a vacuum system. The vacuum system can generate a negative pressure under the material 140 through the holes, and then press the material down against the vacuum stage through a pressure difference on either side of the material 140.

[0157] There may be situations where material 140 cannot be pressed against material bed 150, such as bent metal sheets, stones, etc. If material 140 is known to have a constant thickness, the thickness can be determined by measurement at any location on material 140. If material 140 contacts a reference surface at one or more points, the determination of the lowest point on the surface of material 140 can be interpreted by CNC machine 100 and compared with the height of material bed 150 to determine the thickness of material 140. In cases where the thickness of material 140 is measured at multiple locations instead of at the lowest point on the surface, a map can be generated from the multiple measured points. The slope calculated from the existing points can be used to identify possible areas of local minima, which may then be sampled for more accurate measurements.

[0158] Determining material thickness using stereoscopic vision

[0159] One method for determining the height or location of surface features of material 140 is to stereoscopically observe material 140 to determine its depth distribution, using multiple cameras or multiple images from the same camera (moving between exposures) to determine distances. In one embodiment, stereoscopic measurement can be performed by one or more cover cameras and / or head cameras. Additional cameras located within CNC machine 100 dedicated to this purpose may also be used. Here, the multiple images required to generate the stereoscopic image can be interpreted by an image analysis program to determine the depth of features imaged on material 140 based on differences between images at different angular wavelengths or angles. To determine the height of the material's surface, images are captured from two separate cameras, and one or more features on the material's surface are isolated and considered. In the same way that human binocular vision is used to determine distances, the amount of movement of the observed feature between the two camera images indicates its distance, and thus the height of the material.

[0160] In some implementations, a motion plan can be created that includes positioning the head 160 so that the unique feature to be measured is within the field of view of a camera located on the head 160. The camera can then acquire an image of the feature. A second motion plan (or a second step in a single motion plan) can be created to move the head 160 by a fixed amount. After the head 160 has moved, the feature should be within the camera's field of view. A second image containing the feature can then be captured by the camera. In each image, the feature is identified. An image analysis program can then measure how much the feature has moved in each image relative to the amount of movement relative to the camera. Based on the relatively apparent movement, the height of the feature can be determined. Generally, the closer a feature is to the camera (i.e., the height of the feature), the more apparent the movement of the feature.

[0161] Determined by interferometry.

[0162] Another method for obtaining the distance to the surface of material 140 could be to include an imaging laser and an imaging detector to perform an interferometric measurement on the surface of material 140. Here, light from the imaging laser can be reflected away from the surface of material 140 and then guided to the detector. Light from the imaging laser can also be guided to a reference mirror and then to the detector. The number of changes in interference fringes at the detector can be detected and counted to determine the distance to the surface of material 140. In one embodiment, the laser output from head 160, such as a laser output used for cutting, can also be used as the imaging laser. Alternatively, the imaging laser does not necessarily have to be a laser; it can be any light source of known wavelength, such as an atomic lamp, a bandpass filter light source, etc.

[0163] Material thickness determined by contrast measurement

[0164] In another embodiment, when each image is captured, an algorithm using multiple images from a camera with a known focal plane can determine the distance to the surface of material 140 by determining the image with the maximum contrast. In this embodiment, the image of material 140 can be captured by head-mounted camera 120, cover camera 110, or any other camera in a system capable of adjusting its focus, whether by changing its position or the position of a lens. Analysis may include changing the position of one or more lenses until the image of material 140 captured by head-mounted camera 120 has maximum contrast. When this is detected, the focal plane of the camera is the same as the distance from the lens to the surface of material 140, and therefore the height of the surface of material 140 is known.

[0165] In some implementations, the lens can be moved to a first position, such as at the top of its range within the camera or head 160. An image can then be acquired at this first position. Contrast can be quantified, for example, by performing a Fourier transform on the image and measuring the amplitude of high-frequency components characterized by rapid changes in the image. The lens can then be moved to a second position, such as at the bottom of the camera's range. Contrast can be quantified after each movement, while the lens is moved in a direction that results in a determined increase in contrast. When the lens is at its maximum contrast position, the lens is in focus.

[0166] Material thickness determined by phase detection

[0167] In one embodiment, phase detection can be used to determine the distance from the lens to the material 140. In this embodiment, an image captured from the material 140 is divided into at least two portions corresponding to at least two distinct parts through which light passes through the lens, said at least two distinct portions being symmetrically arranged to image the same location when the lens is at its focal length from the material 140. The intensity or other image features of each portion can then be compared. The position of the lens can be adjusted until the portions imaged by each portion of the lens are substantially the same. When this is done, the focal length of the lens is the distance between the material and the lens.

[0168] Determining material thickness using time of flight

[0169] In one implementation, time-of-flight technology can be used to determine the distance from a source to an object in the CNC machine 100. For example, there may be a light source emitting pulses or other known light waveforms. A detector can detect light reflected off a surface. By measuring the time between emission and detection and knowing the path between the source and the detector, the distance between the source (or detector) and the object can be determined. A similar process can be performed using a sound source. Time-of-flight can be measured by a detector based on the rising or falling edge of the signal, interference patterns, signal attenuation, etc.

[0170] Material thickness is determined by the location / shape of the imaging point.

[0171] Figure 9 This diagram illustrates how, according to some embodiments of the present subject, the thickness of material 140 is determined by imaging a light spot on material 140 generated by a ranging light source 910 using a cover camera 110. In one embodiment, a well-collimated beam from the ranging light source 910, such as from a laser diode or an LED with a dense beam, can be directed at the material 140 at an angle. Figure 9 As shown in the left pane, the thicker material 140 (thickness T1) will intercept the beam earlier at a distance D1 from the ranging light source 910, causing the intersection to be visible to the cover camera 110, which is closer to the ranging light source 610. Figure 9 As shown in the right pane, the thinner material 140 (thickness T2) will allow the beam to travel further, so the beam will appear to intersect the material 140 at a greater distance (distance D2) from the rangefinder 910. Therefore, the position of the bright spot on the material 140 can be proportional to the thickness of the material 140. In other embodiments, the rangefinder 910 can be any combination of cameras other than those in the cover camera 110 or the CNC machine 100.

[0172] In another embodiment, the ranging light source 910 may have measurable divergence. If material 140 is thick, the spot on the surface of material 140 will appear small. If material 140 is thin, the spot will be larger because the light diverges more before intersecting the material. The thickness of material 140 can be determined using trigonometric calculations based on a known divergence angle and the measured size of the spot on the surface.

[0173] In related implementations, the focal length of the rangefinder camera can be made as small as possible. If the beam spot is close to the camera, it will be focused and therefore appear smaller; if it is far away, it will be blurred and therefore appear larger and darker. This technique can be combined with divergence techniques to make increases in spot size easier to detect.

[0174] Material thickness is determined by the size of the imaging laser spot.

[0175] Figure 10This diagram illustrates how material thickness is determined by imaging the size of a laser spot, according to some embodiments of the present subject matter. To provide a precise cut, the laser should be focused on the surface of material 140. If the laser is not in focus, the kerf may be larger than expected, and the kerf may have a different depth than desired. In one embodiment, if the lens 370 in the head 160 specifies a particular focal point for the laser, the minimum spot size 1010 can be measured by observing the laser spot on the surface using a camera. Conversely, if the distance to material 140 is not equal to the focal length of lens 370, the spot size 1020 will be larger. By measuring the spot size, lens 370 in the head 160 can be adjusted until the laser spot size is at its minimum, or other known size, corresponding to the surface of material 140 at the focal length of lens 370. In some embodiments, this adjustment can be performed automatically and / or continuously to provide a constant power density at the surface of material 140. As a result, a consistent cut can be provided even if the thickness of material 140 changes. Additionally, if there is a discrepancy between the observed spot size and the expected spot size, the "known" focal length of lens 370 is inaccurate or the determination of the surface height is inaccurate. Indications of these inconsistencies can be provided to the user or recorded by the CNC machine 100. The laser used for this can be a primary cutting laser or a secondary laser (typically a lower-power laser whose frequency is more easily visible to a camera, such as a helium-neon laser). If the secondary laser is at a frequency that the camera can register, the spot size can be observed directly, or indirectly by observing the color changes, engravings, or cuts produced by the secondary laser.

[0176] In one embodiment, the cutting laser can be used to draw lines by moving the head 160 through the material 140 during laser operation. Figure 10 (Seen in a solid horizontal shape). As the laser moves, the focusing lens 370 acquires an image as it travels through its entire range of motion. When the motion is complete, the camera image of the line is analyzed, and the narrowest section is determined. The lens position at the moment the narrowest section of the line is created corresponds to the moment when the beam is focused, and the lens is positioned at the moment when the distance between lens 370 and the material equals the focal length of the lens, allowing the laser to be focused and determining distances for other purposes, such as reporting thickness (measured from the height of the material surface) to the user.

[0177] Directly check the material thickness

[0178] In another embodiment, material 140 can be imaged by a camera at a low angle relative to the material surface. This angle can be, for example, 0 degrees (parallel to the surface), less than 5 degrees, less than 10 degrees, etc. This "side-view" view allows for direct determination of the material's height. Here, an image of the material can be acquired. The height or thickness of material 140 is related to the number of pixels of the material in the image. In some embodiments, a distance measurement between the camera and the edge of the material can be performed first. Based on the distance from the camera to the imaged edge, a conversion can be performed between the height in pixels and the material height.

[0179] Cutting inspection

[0180] Figure 11 This is a diagram illustrating a scattered light detector 1110 according to some embodiments of the present subject, which determines whether a cut extends through material 140. In some embodiments, a laser combined with a photoelectric sensor can provide information down to a single point at a very precise location, for example, probing the cut line to see if material 140 has been cut through. In this example, as... Figure 11 As shown in the left half, a low-power laser 1120, which may be used solely for this purpose, projects a beam 1130 onto a point on the uncut material 140. A photodiode 1110 can then detect the scattered light 1140 indicating that the material 140 is uncut. Figure 8 As shown in the right half, when the laser 1120 collides with the cut material 140, the photodiode 1110 does not detect the scattered light. In this example, accuracy can be improved by selecting a photodiode 1110 that is sensitive to the laser wavelength, by filtering only that wavelength, or by capturing consecutive images with the laser 1120 on and off and then subtracting them, so that only the illumination provided by the laser 1120 is visible and the background light is canceled out and not analyzed. This method can also result in image enhancement by increasing contrast.

[0181] In other embodiments, a camera can be positioned to inspect the cut by imaging the bottom of material 140 to verify that material 140 has been cut through. The focal plane of the camera viewing through the cut can be varied to scan the vertical edge of the cut to obtain defects. A specific focal plane can be specified with focus adjustment, and then the blur can be used as an indication of depth. In some embodiments, a camera with a depth of field (area on the focal plane) sufficient to image both sides of the cut can be used.

[0182] Position sensing

[0183] Traditionally, various systems are used to detect machine position. Encoders on motors, shafts, and / or mechanical switches can detect when a machine is in a limit position, or the internal position estimate in the software header can be "reset" to the correct known state.

[0184] These can be replaced by a camera system. An overhead camera can visually locate the head 160 or other parts of the system. A camera mounted on the head 160 can detect with extremely high precision when the head 160 has been moved to a specific position, such as on a target printed at a starting position. In some embodiments, image data from any camera in the CNC machine can be processed to generate data including, for example, position or any of its higher-order derivatives (such as velocity, acceleration, etc.). The image data can also be correlated with anomalous conditions such as fire, smoke, etc. The image data can also be correlated with non-nominal conditions such as normal operation and movement of CNC machine parts. Based on the generated data, any action of the CNC machine 100 described herein can be started or terminated.

[0185] Head motion detection

[0186] Multiple wide-angle cameras can determine the position, velocity, acceleration, and other motion parameters of the head 160. Cameras mounted on the head 160 can acquire this information through various techniques, such as comparing successive images or observing motion blur, by observing the apparent motion of the material 140 in an image. Special-purpose cameras optimized for this purpose can be used; for example, the image sensor on an optical mouse can be reused to precisely measure the travel of the head 160. Cameras mounted on the cover 130 or other locations, having the field of view of the head 160, can directly monitor the head 160.

[0187] Observation point

[0188] Additional features can be included in the CNC machine 100 to aid in identification. Typically, markers or other indicators can be added to the CNC machine 100, which does not require complex image recognition procedures. Instead, changes to the image including markers can indicate specific conditions. For example, distinguishing markers or reference points can be defined on the head 160 for better, more precise positioning. The position (or coordinates in the CNC machine 100) 100 of the head 160 can be determined by mapping the reference point on the head 160 to coordinates in the CNC machine 100, as shown in the image data. The camera only needs to track the markers 220 and does not interpret the rest of the image of the head 160. LEDs can be placed in the CNC machine 100 and activated in a specific pattern similar to a beacon; the pattern can be observed in video or by capturing multiple images synchronized with the beacon's flashing. A small flag can be placed at the airflow location so that a camera monitoring the flag can easily detect whether the air is moving. Chemically reactive areas (such as pH bars) can be placed within the camera's field of view so that the machine can observe color changes to detect different chemicals in the air, such as substances that emit harmful fumes if laser cutting is used. Expansion modules or other accessories can be added to the CNC machine 100 and detected by the camera using unique designs or barcodes. Markings can be printed on any surface of the CNC machine 100 so that the camera can observe when moving parts of the system obscure them, thus allowing for better measurement of the position of the moving parts.

[0189] Restart after pause

[0190] Processing typically involves intermediate steps. For example, to prevent soot buildup, a user might perform a light cut, then mask the material 140 with tape, perform another light cut, apply more tape, and then make the final cut. In another example, a user might make a small cut, check the cut, and then continue.

[0191] This is usually difficult because any interference with material 140 means that subsequent processing operations will be inconsistent with the operations performed so far. For example, if the user is cutting a square and removing material 140 in an intermediate process, the latter half of the operation will not be correctly aligned with the former half, even if the operator is very careful when replacing material 140.

[0192] However, cameras and image recognition systems can be used to precisely determine where material 140 is and where it has been replaced, to correct any offset in material 140 caused by the replacement, thus allowing operation to continue seamlessly. After an interruption, material 140 can be re-imaged, and the cutting pattern aligned with the new (if changed) orientation of material 140. This can be accomplished by recording any or all of the aforementioned mechanisms, including grain patterns, past cuts, references, and corners of the material. Motion plans can be updated and executed based on the realigned cutting pattern. This feature allows, for example, a user to remove material 140 from CNC machine 100, inspect it, and then replace material 140 without having to perform any manual alignment.

[0193] In another example, there could be a method where five sheets of material 140 are each cut with a different pattern, leaving space to be drawn, for example, and then cut again. Based on their shape, texture, and / or previous cuts, the system can identify each sheet when it is reinserted and pick it up from where it left off.

[0194] Image-based anomaly detection

[0195] If problems, errors, malfunctions, or other abnormalities exist in the CNC machine 100, they can be detected using a combination of cameras and sensors. For example, if the machine collides and the material moves, the camera can see the material slipping and notify the software to compensate for the new position. The camera can detect physical faults, such as a loose screw, because the original part appears to be missing a screw. The camera can also detect the accumulation of smoke, indicating a malfunction in the exhaust system. This can be achieved by imaging smoke particles passing through a visible laser beam, detecting light scattered back to the camera from the smoke particles from internal illumination (differential imaging will help with this), image recognition of the actual smoke, or other methods. The camera can also observe that the head does not move if a belt breakage is assumed. Many other features and implementations for detecting anomalies and processing sensor data are given below.

[0196] Air filtration and cooling system

[0197] An air filter, optionally including one or more fans, can be integrated into the housing of the CNC machine 102 to remove smoke or other particulate matter. In one embodiment, the air filter may have a predetermined configuration for connecting the air filter to a specific location on the housing. The air filter may be located, for example, below, but directly connected to the housing. The CNC machine and the air filter may share a common boundary, for example, if the air filter forms at least a portion of the base of the CNC machine. Because the configuration is predetermined, a rigid, pre-aligned conduit may exist between the air inlet on the air filter and the housing of the CNC machine 102.

[0198] The operation of the air filter can be based in part on data such as the type of material being cut, operating parameters, and sensor data measuring debris and / or smoke. This operation can also be integrated into the motion plan. For example, the air filter can accelerate or decelerate based on a motion plan specifying that more material is being cut and more smoke is being generated. Using known materials and predefined motion plans, the amount of smoke can be estimated based on information in a database. The smoke estimate can be used to update the motion plan and modify the air filter operation to handle the expected generation of smoke or particles. In this way, the CNC machine 100 communicates with the air filter to implement updated instructions in the motion plan. Communication can be electrical, infrared, near-field communication, Bluetooth, etc. The air filter operation can be associated with conditions in the CNC machine, such as light or sound from LEDs, the shutdown of the exhaust fan when it is off, detection of pressure changes, etc. The fan / air filter can optionally operate independently of the CNC machine, communicating directly with a remote computing system to manage fan / air filter operation.

[0199] The lifespan of an air filter can be continuously updated based on the materials used, the cutting operation, the amount of debris measured, and the airflow measurement through the air filter. Fan operation can also be based on the desired noise level, the desired filtration rate, or both. For example, a user can specify that quiet operation is preferred, and the CNC machine 100 can respond by running the fan at a lower setting despite the detection of particulate matter. Observations made within the machine, such as smoke levels observed by a camera, can be used to measure filter effectiveness, for example, detecting when airflow decreases, and thus necessitating a change in the filter media or replacement of the fan.

[0200] The cooling system can also interface with an air filtration system and internal sensors that monitor component temperature, smoke, and / or debris. The cooling system can be entirely internal to the CNC machine 100, for example, a liquid cooling system for a laser that uses radiators and fans to dissipate heat, selectively assisting a Peltier or "solid-state" device to drive temperatures below ambient temperature. If the cooling system fails to maintain the component within a specified temperature range, the CNC machine 100 can stop executing the motion plan until the component cools down. Once the component temperature is within an acceptable range, the motion plan can resume. The cooling system can also be external, such as a cooler for cooling water that in turn cools the laser; this cooling system can interface directly with a server controlling the CNC machine, allowing it to provide critical information such as coolant temperature. Similar to the operation of the fan / air filter, the cooling system can also be updated based on the CNC machine's status. The cooling system can also interface with a remote computing system to enable operation independent of the CNC machine 100.

[0201] Improved imaging

[0202] When implementing any of the techniques described herein, other methods can be incorporated in any combination to improve image recognition. In one implementation, material 140 may first be imaged with a first camera, such as a wide-angle, low-resolution cover camera 110, to determine the approximate location of an edge or to identify areas beyond the cover camera's field of view. Once an approximate edge is known, or if there is an area requiring further imaging to determine where the edge is, a second camera, such as a close-up head camera 120, can be moved to image the edge to determine the precise location of the material 140's outline. If neither the head camera 120 nor the cover camera 110 can determine the extent of material 140, the user can warn that material 140 is too large, that material 140 needs to be repositioned, etc. In alternative implementations, a single camera may reorient itself, refocus, take a higher resolution image, or otherwise use the initial image to determine that a more thorough inspection is needed.

[0203] In some implementations, the portion of an image captured by the camera can be reduced to obtain a smaller or simpler image. For example, if only a small area of ​​the image is needed, but the camera has an unnecessarily large field of view compared to the size of the area, the image can be acquired and masked or cropped. Masking can completely eliminate the unnecessary area, reducing the pixel size of the image. Alternatively, masking can make the unwanted image appear as a specific color, such as black, white, green, etc. The masked color can then be easily identified as an unwanted area in the software without further analysis. In another implementation, physical masking techniques, such as using a diaphragm, can be used.

[0204] Other techniques can be implemented to provide clearer images for image analysis. First, any laser used for ranging (cutting laser, if visible, or a secondary laser) can be modulated so that the camera can acquire images of the material 140 with and without contamination attributed to external light, such as indoor lighting, reflected laser light, or burning flashes. An internal light source within the CNC machine 100 can also be present, capable of being modulated to provide image data under internal lighting conditions. For example, a first image can be acquired by turning on the internal light source. A second image can then be acquired by turning off the internal light source. The second image corresponds only to external lighting. The image analysis program can subtract the second image from the first image to determine the internal light profile generated solely by the internal source within the CNC machine 100. The internal light profile can be used through further processing by the image analysis program when determining images captured during processes such as distance, cutting behavior, and material appearance.

[0205] Other implementations may include using an RGB-controlled light source in the CNC machine 100 or for a laser. Examining material 140 under different colored illuminations can identify which color of illumination provides the most information. IR illumination and cameras can also be used in situations where better information is provided than visible light. If a color saturates a particular camera, multiple cameras can be used sequentially. A monochrome camera can be combined with images illuminated by red, green, and blue light to extract a color image. Filters such as bandpass filters can be placed on the cameras so that they receive only a certain illumination color—for example, predominantly 633nm red light from the laser diode in head 160, effectively ignoring all other light sources. For example, when performing a high-resolution scan of the entire surface of material 140 using head 160, multiple images can be stitched together to obtain a larger image. Linear scanning elements can be used to scan lines on the surface instead of points, and the scans combine to form a continuous image. A single-point detector can replace camera elements, such as a single photodiode.

[0206] By introducing random perturbations into the camera's position, the image resolution can be increased beyond the pixel limit of a particular camera. The camera can vibrate with small random amounts or move alternately by predefined distances, allowing a histogram of the camera position to define a probability function. Camera images are acquired during camera movement. For example, a head camera can move around in small, known steps, and then it can be offset so that the images can be aligned, combined, and averaged. In another example, by introducing random or nearly random vibrations, such as by running an exhaust fan at full speed, a cover camera can be moved by an extremely small amount; the result will be averaged. In one implementation, the function can be Gaussian-shaped, where specific imaging features can be distributed between pixel-sized bins within the Gaussian. After obtaining sufficient statistics, the envelope of the Gaussian can be defined, and the centroid can be identified to its position within the pixel. The position of the centroid, now defined by the Gaussian distribution generated by the camera's motion, can now be associated with the position of a specific feature in the image. While the probability function can be Gaussian, any distribution with a known probability density can be used.

[0207] The distance to an object with a known range can also be determined by its apparent size in an image. In some implementations, the size or dimensions of an object in the image data (in pixels) can be compared to another image of the same object or a portion thereof. Changes in pixels (whether linear, contour, area, or any combination thereof) can be combined with a mapping or transfer function that correlates the pixel change with a change in distance. For example, an image of a 1" square at a given distance from the camera might occupy 100 x 200 pixels. If the camera moves away from the square, the image of the square might become 50 x 100 pixels. The change in pixel size is directly related to the distance of the change, and also directly related to the camera angle, the direction of displacement of the material 140, and the optical characteristics of the camera system (e.g., image distortion or optical aberrations).

[0208] Image aberration correction

[0209] Figure 12 This diagram illustrates how to correct aberrations in images acquired by a camera with a wide field of view, according to some embodiments of the present topic. A major challenge in wide-angle imaging within the small, enclosed workspace of a unit is the distortion introduced by the desired wide-angle lens. Images from a camera, particularly those with a wide field of view, can suffer from various types of distortion. In one embodiment, an image correction procedure can be performed to convert distorted image data 1210 (which can be considered a perfect image and the sum of distortion) into corrected image data 1260 (which can be a perfect image or at least an image with reduced distortion). Distortion correction can include processing the image to remove distortion, enhancing the image by increasing contrast, and mapping pixels in the image to corresponding physical locations within the work area or other areas in the CNC machine, one or more (or all) of these. Distortion can be due to optical components in the camera, such as a wide-angle lens, eccentricity of the imaging sensor within the lens, aberrations, reflections or reflectivity, damage or unwanted coatings on the lens, etc. These distortions can be a mixture of external factors related to the orientation of the camera 110 relative to the material bed 150, as observed as a result of its mounting on the cover 130, including the camera's position, rotation, and tilt. After calibration, the image data can be replaced with calibrated image data or used in place of calibrated image data before identifying the situation in the CNC machine 100 or performing further image analysis.

[0210] In another embodiment, the conversion can be performed by imaging one or more visible features 1220 shown in the distorted image data. Figure 12In the example shown, visible feature 1220 may be an intersection of a known distance interval distribution across the surface of an object. A distorted image 1210 including visible feature 1220 can be obtained. A partially dedistorted image 1230 can be produced by applying a bucket dedistortion function to the distorted image 1210. The partially dedistorted image 1230 can be separated into smaller images 1240, where each smaller image 1240 includes only one of the visible features 1220. Multiple smaller images 1240 (as indicated by their numbering in the smaller images 1240) can be classified into at least one set of visible features based on the coordinates of the visible feature 1220, which are approximately collinear. For example, smaller images 1, 2, 3, and 4 can be determined to be collinear (in the X direction), and smaller images 1 and 5 can be determined to be collinear (in the Y direction). For each of the set of visible features and based on the coordinates of the visible feature 1220 in the corresponding set, a mathematical expression for the line 1250 passing through each coordinate is calculated. Line 1250 can be a polynomial fit of a set of features such as visible features 1220, splines, etc. Distorted image data 1210 at any point in the image data can be converted into corrected image data 1260 by applying correction to the distorted image data 1210, based on interpolation of mathematical expressions for other points in the distorted image data 1210. For example, interpolation can be performed between lines 1250 extending in two orthogonal directions (i.e., grid pattern 12 shown in the figure). The linear distance between the interpolated lines can correspond to less than 5 pixels, less than 3 pixels, or a single pixel. Alternatively, a coarser interpolation extending over more pixels than previously mentioned can be used.

[0211] Figure 13 This is a process flowchart illustrating the characteristics of a method consistent with some embodiments of this subject.

[0212] In 1310, a computer numerical control (CNC) machine may include a movable head configured to transmit electromagnetic energy to a portion of a working area defined by limits, the movable head being commandable within the limits to induce the transmission of electromagnetic energy. The working area may be within an internal space of the laser CNC machine. The internal space may be defined by a housing, which may include an openable barrier that, when in a closed position, attenuates light transmission between the internal space and the exterior of the CNC machine. The CNC machine may include an interlock that prevents the emission of electromagnetic energy when the openable barrier is detected to be not in a closed position. The command may cause the CNC machine to perform a planned motion operation to cause the movable head to move, thereby transmitting electromagnetic energy to cause a change in material at least partially contained within the internal space.

[0213] At 1320, an image including at least half of the working area can be generated using at least one camera. This generation can occur when the interlock does not prevent the emission of electromagnetic energy.

[0214] Figure 14 This is a process flowchart illustrating the characteristics of a method consistent with some embodiments of this subject.

[0215] In 1410, a computer numerical control (CNC) machine may include a movable head configured to transfer electromagnetic energy to a portion of a working area defined by limits, the movable head being commandable within said limits to induce the transfer of electromagnetic energy. The working area may be within an internal space of the laser CNC machine. The internal space may be defined by a housing, which may include an openable barrier that, when in a closed position, attenuates light transmission between the internal space and the exterior of the CNC machine. The command may cause the CNC machine to perform a motion-planned operation to cause the movable head to move, thereby transferring electromagnetic energy to cause a change in material at least partially contained within the internal space.

[0216] At 1420, the emission of electromagnetic energy can be temporarily prevented.

[0217] At 1430, an image including at least half of the working area can be generated using at least one camera. This generation can occur when the openable barrier is in the closed position and during the temporary blocking of electromagnetic energy emission.

[0218] One or more aspects or features of the subject matter described herein can be implemented in digital electronic circuits, integrated circuits, application-specific integrated circuits (ASICs) of special design, field-programmable gate arrays (FPGAs), computer hardware, firmware, software, and / or combinations thereof. These various aspects or features may be implemented in one or more computer programs that can be executed and / or interpreted on a programmable system, which includes at least one programmable processor, which may be for special or general purposes, coupled to receive and send data and instructions from and to a storage system, at least one input device, and at least one output device. The programmable system or computing system may include clients and servers. Generally, clients and servers are geographically separated and typically interact via a communication network. Client-server relationships are formed through computer programs running on individual computers and having client-server relationships with each other.

[0219] These computer programs (also referred to as programs, software, software applications, applications, components, or code) include machine instructions for a programmable processor and can be implemented in high-level programming languages, object-oriented programming languages, functional programming languages, logic programming languages, and / or assembly / machine languages. As used herein, the term "machine-readable medium" means any computer program article, apparatus, and / or device, such as a disk, optical disk, memory, and programmable logic device (PLD), used to provide machine instructions and / or data to a programmable processor, including machine-readable media that receive machine instructions as machine-readable signals. The term "machine-readable signal" refers to any signal used to provide machine instructions and / or data to a programmable processor. Machine-readable media can store these machine instructions non-transitory, such as non-transitory solid-state memory or disk hard drives or any equivalent storage medium. Machine-readable media can alternatively or additionally store these machine instructions in a transient manner, such as in a processor cache or other random access memory associated with one or more physical processor cores.

[0220] To provide interaction with the user, one or more aspects or features of the subject matter described herein can be implemented on a computer having a display device and a keyboard and pointing device, such as a cathode ray tube (CRT), liquid crystal display (LCD), or light-emitting diode (LED) monitor for displaying information to the user, and a keyboard and pointing device such as a mouse or trackball through which the user can provide input to the computer. Other types of devices may also be used to provide interaction with the user. For example, feedback provided to the user can be any form of sensory feedback, such as visual feedback, audio feedback, or haptic feedback; and input from the user can be received in any form, including but not limited to sound, speech, or haptic input. Other possible input devices include, but are not limited to: touchscreens or other haptic-sensitive devices, such as single-point or multi-point resistive or capacitive touchpads, voice recognition hardware and software, optical scanners, optical pointers, digital image capture devices, and related interpretation software and similar devices.

[0221] In the foregoing description and claims, phrases such as “at least one” or “one or more” may be followed by a list of connecting words for elements or features. The term “and / or” may also appear in a list of two or more elements or features. Unless implied or explicitly contradicted by the context in which it is used, such phrases are used to refer to any one of the independently listed elements or features, or any combination of any cited element or feature with any other cited element or feature. For example, the phrases “at least one of A and B,” “one or more of A and B,” and “A and / or B” all mean “A alone,” “B alone,” or “A and B together.” A similar interpretation applies to lists comprising three or more items. For example, the phrases “at least one of A, B, and C,” “one or more of A, B, and C,” and “A, B, and / or C” all mean “A alone,” “B alone,” “C alone,” “A and B together,” “A and C together,” “B and C together,” or “A and B and C together.” The use of the term "based on" in the foregoing and claims is intended to mean "at least partially based on," thus allowing uncited features or elements to also be permitted.

[0222] Depending on the desired configuration, the subject matter described herein can be implemented in systems, apparatuses, methods, and / or articles. The embodiments listed in the foregoing specification do not represent all embodiments consistent with the subject matter described herein. Rather, they are merely some examples consistent with aspects related to the described subject matter. Although some variations have been described in detail above, other modifications or additions are possible. Specifically, other features and / or variations may be provided in addition to the features and variations listed herein. For example, the embodiments described above may involve various combinations and sub-combinations of the disclosed features and / or combinations and sub-combinations of several other features disclosed above. Furthermore, the logical flows depicted in the drawings and / or described herein do not necessarily require the specific order or sequential order shown to achieve the desired results. Other embodiments may fall within the scope of the following claims.

Claims

1. A method implemented by a system including a computer numerically controlled (CNC) machine, the method comprising the following steps: An image comprising a pattern corresponding to the intended final appearance of the material is generated by a camera of the CNC machine having a view of the internal portion of the CNC machine, the pattern being arranged at a first location; A set of machine instructions is generated based on at least a portion of the image, the set of machine instructions being used to control the CNC machine to perform a change corresponding to at least a portion of the pattern at a second position on the material that is different from the first position, the set of machine instructions being generated without replacing any part of the pattern with a design associated with one or more pre-existing machine instructions, the second position being determined at least based on an image of the material disposed inside the CNC machine; as well as Executing at least one machine instruction from the set of machine instructions to control the CNC machine to achieve at least a portion of the change, the execution including operating an electromagnetic energy source coupled to the CNC machine according to the at least one machine instruction, the electromagnetic energy source being configured to achieve the change on the material at the second location.

2. The method according to claim 1, further comprising: Analyze the image to identify one or more features of the material; Analyze the image to identify the pattern independently of the one or more features of the material; as well as At least based on the pattern, the set of machine instructions is generated to enable the CNC machine to perform the changes on the material.

3. The method of any one of claims 1-2, wherein, The first position and the second position are on the material, and wherein the electromagnetic energy source tracks the pattern on the material based at least on the image including the pattern.

4. The method of any one of claims 1 to 2, wherein, The material is a second material, and the pattern is arranged at a first position on a first material separate from the second material.

5. The method according to any one of claims 1 to 2, further comprising: The image is corrected by performing one or more of the following: dedistortion, dewarping, correction of lighting effects, adjustment or thresholding of lighting within the housing of the CNC machine.

6. The method according to claim 3, further comprising: The image is corrected by performing one or more of the following: dedistortion, dewarping, correction of lighting effects, adjustment or thresholding of lighting within the housing of the CNC machine.

7. The method according to claim 4, further comprising: The image is corrected by performing one or more of the following: dedistortion, dewarping, correction of lighting effects, adjustment or thresholding of lighting within the housing of the CNC machine.

8. The method of any one of claims 1 to 2, wherein, The camera is positioned to capture the entire material bed of the CNC machine, wherein the material is at least partially arranged on the material bed.

9. The method of claim 3, wherein, The camera is positioned to capture the entire material bed of the CNC machine, wherein the material is at least partially arranged on the material bed.

10. The method of claim 4, wherein, The camera is positioned to capture the entire material bed of the CNC machine, wherein the material is at least partially arranged on the material bed.

11. The method of claim 5, wherein, The camera is positioned to capture the entire material bed of the CNC machine, wherein the material is at least partially arranged on the material bed.

12. The method of claim 6, wherein, The camera is positioned to capture the entire material bed of the CNC machine, wherein the material is at least partially arranged on the material bed.

13. The method of claim 7, wherein, The camera is positioned to capture the entire material bed of the CNC machine, wherein the material is at least partially arranged on the material bed.

14. A method implemented by a system including a computer numerically controlled (CNC) machine, the method comprising the following steps: An image comprising a pattern corresponding to the intended final appearance of the material is generated by a camera of the CNC machine having a view of the internal portion of the CNC machine, the pattern being arranged at a first location; A first set of machine instructions is generated based on at least a portion of the image. The first set of machine instructions controls the CNC machine to perform a first change corresponding to at least a portion of the pattern at a second position on the material, different from the first position. The first set of machine instructions is generated without replacing any part of the pattern with a design associated with one or more pre-existing machine instructions. The second position is determined at least based on an image of the material disposed inside the CNC machine. The first set of machine instructions and the second set of machine instructions are combined to generate a third set of machine instructions, wherein the second set of machine instructions is used to control the CNC machine to achieve the second change of the material; as well as Executing at least one machine instruction from the third set of machine instructions to control the CNC machine to implement the first change and the second change, the execution including operating an electromagnetic energy source coupled to the CNC machine according to the at least one machine instruction, and the electromagnetic energy source being configured to directly implement the first change and the second change onto the material.

15. A method implemented by a system including a computer numerically controlled (CNC) machine, the method comprising the following steps: A first image of the material disposed inside the CNC machine is generated by a camera having a view of the internal parts of the CNC machine; Based on at least a portion of a second image including a pattern set at a first position, at least a portion of a set of machine instructions for controlling the CNC machine to realize a change in material, the change corresponding to at least a portion of the pattern, the set of machine instructions being generated without replacing any part of the pattern with a design associated with one or more pre-existing machine instructions, the change being realized at a second position on the material different from the first position, and the second position being determined at least based on the first image; as well as Executing at least one machine instruction from the set of machine instructions to control the CNC machine to achieve the change, the execution including operating an electromagnetic energy source coupled to the CNC machine according to the at least one machine instruction, and the electromagnetic energy source being configured to directly apply the change to the material at the second location.

16. The method of claim 15, further comprising the step of: A virtual overlay of the changes on the material is generated at the display, the changes corresponding to at least a portion of the pattern included in the second image; as well as In response to user-generated input, the virtual overlay is modified, including adjusting the size, position, or orientation of at least said portions of the pattern.

17. A system comprising: Computer numerical control (CNC) machines; At least one processor; Non-transitory computer-readable medium; and Program instructions stored on the non-transitory computer-readable medium, which are executable by the at least one processor, cause the system to be configured as follows: An image comprising a pattern corresponding to the intended final appearance of the material is generated by a camera of the CNC machine having a view of the internal portion of the CNC machine, the pattern being arranged at a first location; A set of machine instructions is generated based on at least a portion of the image, the set of machine instructions being used to control the CNC machine to perform a change corresponding to at least a portion of the pattern at a second position on the material that is different from the first position, the set of machine instructions being generated without replacing any part of the pattern with a design associated with one or more pre-existing machine instructions, the second position being determined at least based on an image of the material disposed inside the CNC machine; as well as Executing at least one machine instruction from the set of machine instructions to control the CNC machine to achieve at least a portion of the change, the execution including operating an electromagnetic energy source coupled to the CNC machine according to the at least one machine instruction, the electromagnetic energy source being configured to achieve the change on the material at the second location.

18. The system of claim 17, wherein, The changes include: Analyze the image to identify one or more features of the material; Analyze the image to identify the pattern independently of the one or more features of the material; and At least based on the pattern, the set of machine instructions is generated to enable the CNC machine to perform the changes on the material.

19. The system of any one of claims 17-18, wherein, The first position and the second position are on the material, and wherein the electromagnetic energy source tracks the pattern on the material based at least on the image including the pattern.

20. The system of any one of claims 17-18, wherein, The material is a second material, and the pattern is arranged at a first position on a first material separate from the second material.

21. The system of any one of claims 17-18, further comprising: The image is corrected by performing one or more of the following: dedistortion, dewarping, correction of lighting effects, adjustment or thresholding of lighting within the housing of the CNC machine.

22. The system of claim 19, further comprising: The image is corrected by performing one or more of the following: dedistortion, dewarping, correction of lighting effects, adjustment or thresholding of lighting within the housing of the CNC machine.

23. The system of claim 20, further comprising: The image is corrected by performing one or more of the following: dedistortion, dewarping, correction of lighting effects, adjustment or thresholding of lighting within the housing of the CNC machine.

24. The system of any one of claims 17-18, wherein, The camera is positioned to capture the entire material bed of the CNC machine, wherein the material is at least partially arranged on the material bed.

25. The system according to claim 19, wherein, The camera is positioned to capture the entire material bed of the CNC machine, wherein the material is at least partially arranged on the material bed.

26. The system according to claim 20, wherein, The camera is positioned to capture the entire material bed of the CNC machine, wherein the material is at least partially arranged on the material bed.

27. The system according to claim 21, wherein, The camera is positioned to capture the entire material bed of the CNC machine, wherein the material is at least partially arranged on the material bed.

28. The system according to claim 22, wherein, The camera is positioned to capture the entire material bed of the CNC machine, wherein the material is at least partially arranged on the material bed.

29. The system according to claim 23, wherein, The camera is positioned to capture the entire material bed of the CNC machine, wherein the material is at least partially arranged on the material bed.

30. A system comprising: Computer numerical control (CNC) machines; At least one processor; Non-transitory computer-readable medium; and Program instructions stored on the non-transitory computer-readable medium, which are executable by the at least one processor, cause the system to be configured as follows: An image comprising a pattern corresponding to the intended final appearance of the material is generated by a camera of the CNC machine having a view of the internal portion of the CNC machine, the pattern being arranged at a first location; Based on at least a portion of the image, at least a portion of a first set of machine instructions is generated to control the CNC machine to perform a first variation corresponding to at least a portion of the pattern at a second position on the material that is different from the first position. The first set of machine instructions is generated without replacing any part of the pattern with a design associated with one or more pre-existing machine instructions. The second position is determined at least based on an image of the material disposed inside the CNC machine. The first set of machine instructions and the second set of machine instructions are combined to generate a third set of machine instructions, wherein the second set of machine instructions is used to control the CNC machine to achieve the second change of the material; as well as Executing at least one machine instruction from the third set of machine instructions to control the CNC machine to implement the first change and the second change, the execution including operating an electromagnetic energy source coupled to the CNC machine according to the at least one machine instruction, and the electromagnetic energy source being configured to directly implement the first change and the second change onto the material.

31. A system comprising: Computer numerical control (CNC) machines; At least one processor; Non-transitory computer-readable medium; and Program instructions stored on the non-transitory computer-readable medium, which are executable by the at least one processor, cause the system to be configured as follows: A first image of the material disposed inside the CNC machine is generated by a camera having a view of the internal parts of the CNC machine; Based on at least a portion of a second image including a pattern set at a first position, at least a portion of a set of machine instructions for controlling the CNC machine to realize a change in material, the change corresponding to at least a portion of the pattern, the set of machine instructions being generated without replacing any part of the pattern with a design associated with one or more pre-existing machine instructions, the change being realized at a second position on the material different from the first position, and the second position being determined at least based on the first image; as well as Executing at least one machine instruction from the set of machine instructions to control the CNC machine to achieve the change, the execution including operating an electromagnetic energy source coupled to the CNC machine according to the at least one machine instruction, and the electromagnetic energy source being configured to directly apply the change to the material at the second location.

32. The system of claim 31, further comprising: A virtual overlay of the changes on the material is generated at the display, the changes corresponding to at least a portion of the pattern included in the second image; as well as In response to user-generated input, the virtual overlay is modified, including adjusting the size, position, or orientation of at least said portions of the pattern.

33. A non-transitory computer-readable medium, wherein, The non-transitory computer-readable medium provides program instructions that, when executed by at least one processor, cause the system to: A camera with a view of the internal parts of a computer numerically controlled CNC machine generates an image including a pattern corresponding to the expected final appearance of the material, the pattern being arranged at a first location; A set of machine instructions is generated based on at least a portion of the image, the set of machine instructions being used to control the CNC machine to perform a change corresponding to at least a portion of the pattern at a second position on the material that is different from the first position, the set of machine instructions being generated without replacing any part of the pattern with a design associated with one or more pre-existing machine instructions, the second position being determined at least based on an image of the material disposed inside the CNC machine; as well as Executing at least one machine instruction from the set of machine instructions to control the CNC machine to achieve at least a portion of the change, the execution including operating an electromagnetic energy source coupled to the CNC machine according to the at least one machine instruction, the electromagnetic energy source being configured to achieve the change on the material at the second location.

34. A non-transitory computer-readable medium, wherein, The non-transitory computer-readable medium provides program instructions that, when executed by at least one processor, cause the system to: A camera with a view of the internal parts of a computer numerically controlled CNC machine generates an image including a pattern corresponding to the expected final appearance of the material, the pattern being arranged at a first location; Based on at least a portion of the image, at least a portion of a first set of machine instructions is generated to control the CNC machine to perform a first variation corresponding to at least a portion of the pattern at a second position on the material that is different from the first position. The first set of machine instructions is generated without replacing any part of the pattern with a design associated with one or more pre-existing machine instructions. The second position is determined at least based on an image of the material disposed inside the CNC machine. The first set of machine instructions and the second set of machine instructions are combined to generate a third set of machine instructions, wherein the second set of machine instructions is used to control the CNC machine to achieve the second change of the material; as well as Executing at least one machine instruction from the third set of machine instructions to control the CNC machine to implement the first change and the second change, the execution including operating an electromagnetic energy source coupled to the CNC machine according to the at least one machine instruction, and the electromagnetic energy source being configured to directly implement the first change and the second change onto the material.

35. A non-transitory computer-readable medium, wherein, The non-transitory computer-readable medium provides program instructions that, when executed by at least one processor, cause the system to: A camera with a view of the internal parts of a computer numerically controlled CNC machine generates a first image of the material disposed inside the CNC machine; Based on at least a portion of a second image including a pattern set at a first position, at least a portion of a set of machine instructions for controlling the CNC machine to realize a change in material, the change corresponding to at least a portion of the pattern, the set of machine instructions being generated without replacing any part of the pattern with a design associated with one or more pre-existing machine instructions, the change being realized at a second position on the material different from the first position, and the second position being determined at least based on the first image; as well as Executing at least one machine instruction from the set of machine instructions to control the CNC machine to achieve the change, the execution including operating an electromagnetic energy source coupled to the CNC machine according to the at least one machine instruction, and the electromagnetic energy source being configured to directly apply the change to the material at the second location.

Citation Information

Patent Citations

  • Intelligent laser cutting system provided with master-slave camera and cutting method thereof

    CN101733558A

  • Laser machine tool with image sensor for registration of workhead guidance system

    US20050051523A1