Additive manufacturing is a process by which a three-dimensional structure is built, usually in a series of layers, based on a digital model of the structure. The process is sometimes referred to as three-dimensional (3D) printing or 3D rapid prototyping, and the term “print” is often used even though some examples of the technology rely on sintering or melting/fusing by way of an energy source to form the structure, rather than “printing” in the traditional sense where material is deposited at select locations. Examples of additive manufacturing techniques include powder bed fusion, fused deposition modeling, electron beam melting (EBM), laminated object manufacturing, selective laser sintering (SLS), direct metal laser sintering (DMLS), direct metal laser melting (DMLM), selective laser melting (SLM), and stereolithography, among others. Although 3D printing technology is continually developing, the process to build a structure layer-by-layer is relatively slow, with some builds taking several days to complete.
One of the disadvantages of current additive manufacturing processing relates to quality assurance. There is typically some amount of analysis to determine whether the produced part meets the manufacturing thresholds and design criteria. In some examples, the part may have to be dissected in order to test whether a certain lot of products or a sampling has satisfied the design limits. This can lead to considerable inefficiency when, for example, it is later determined that a production lot is defective due to a machining or design problem.
According to an aspect, a method is provided for inspection of 3D manufactured parts or structures or process control of a 3D manufacturing apparatus. The method includes obtaining, in real-time during a 3D manufacturing build process in which at least one structure is built by the 3D manufacturing apparatus, a topographical scan of an area of a build platform on which the at least one structure is built. An evaluating step evaluates, by a processor, the topographical scan to determine a powder depth and/or a layer depth after powder redistribution. A determining step determines based on the evaluating, whether the powder depth or the layer depth is either inside or outside a predetermined range. A modifying step modifies, based on the determining, an operational characteristic of the 3D manufacturing apparatus. The topographical scan may be obtained by a laser scan, a blue light scan, a confocal scan or a multifocal plane microscopy scan.
According to another aspect, a system for inspection of 3D manufactured structures or process control of a 3D manufacturing apparatus has a memory and a processor in communication with the memory. The system is configured to perform an obtaining step that obtains with a topographic scanner, in real-time during a 3D manufacturing build process in which at least one structure is built by the 3D manufacturing apparatus, a topographical scan of an area of a build platform on which the at least one structure is built. An evaluating step evaluates, by a processor, the topographical scan to determine a powder depth and/or a layer depth after powder redistribution. A determining step determines, based on the evaluating, whether the powder depth and/or the layer depth is either inside or outside a predetermined range. A modifying step modifies, based on the determining, an operational characteristic of the 3D manufacturing apparatus.
According to a further aspect, a computer program product for inspection of 3D manufactured structures or process control of a 3D manufacturing apparatus includes a non-transitory computer readable storage medium readable by a processor and storing instructions for execution by the process to perform a method. The method includes an obtaining step for obtaining, in real-time during a 3D manufacturing build process in which at least one structure is built by the 3D manufacturing apparatus, a topographical scan of an area of a build platform on which the at least one structure is built. An evaluating step evaluates, by a processor, the topographical scan to determine a powder depth or a layer depth after powder redistribution. A determining step determines, based on the evaluating, whether the powder depth or the layer depth is either inside or outside a predetermined range. A modifying step modifies, based on the determining, an operational characteristic of the 3D manufacturing apparatus.
Additional features and advantages are realized through the concepts of aspects of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention.
One or more aspects of the present invention are particularly pointed out and distinctly claimed as examples in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the invention are apparent from the following detailed description taken in conjunction with the accompanying drawings in which:
The phrase “additive manufacturing apparatus” is used interchangeably herein with the phrase “printing apparatus” and term “printer”, and the term “print” is used interchangeably herein with the word “build”, referring to the action for building a structure by an additive manufacturing apparatus, regardless of the particular additive manufacturing technology being used to form the structure. As used herein, print and printing refer to the various forms of additive manufacturing and include three-dimensional (3D) printing or 3D rapid prototyping, as well as sintering or melting/fusing technologies. Examples of additive manufacturing or printing techniques include powder bed fusion, fused deposition modeling, electron beam melting (EBM), laminated object manufacturing, selective laser sintering (SLS), direct metal laser sintering (DMLS), direct metal laser melting (DMLM), selective laser melting (SLM), and stereolithography, among others.
Assurance that a build process is progressing as planned is important for cost and quality reasons. At the end of a build cycle to build one or more three-dimensional structures, an operator of the additive manufacturing apparatus may find that the parts are defective or unusable because of a failure with the additive manufacturing apparatus during the build cycle. This can be especially problematic when building expensive parts, such as molds for casting structures having complex geometries.
A topographic scanning system and method are disclosed herein that may be used to monitor the building of layers of one or more objects being built by an additive manufacturing apparatus, and, in one embodiment, to detect operational flaws as they occur, (i.e. during the build process rather than afterward), as an example. In a further embodiment, evaluation/analysis of scans acquired during the build process of previous parts is performed as part of post-processing (and not as part of the real-time acquisition of scanned data). Real-time acquisition as used herein refers to the scans of individual layer(s) of the structure as the structure is being built (“printed”). Real-time analysis refers to evaluation of the acquired scans of the various layers.
Operational flaws may include, as examples, errors with the structure(s), build process, powder depth outside desired range or additive manufacturing apparatus errors, or indicators that one or more errors are likely to occur with the structure(s), build process, or additive manufacturing apparatus, or lack of fusion, porosity or micro/macro cracks. In some embodiments, action(s) may be taken responsive to observing that an operational flaw has occurred. For instance, remedial actions may be taken so that the flaw can be corrected, the build process stopped, the problem fixed, a new build started, etc.
Provided is an ability to topographically observe a build process that may take hours or days to complete in order to detect and react to potential operational flaws with the additive manufacturing apparatus and/or errors with one or more printed layers. Also provided is the ability to communicate indications of the operational flaws to operators early in the build process as, or before, they occur, so that a failed build can be stopped prior to its completion. A new build may then be started earlier than it otherwise would have been (i.e. had the failure been discovered only after the failed build process completes). From a manufacturing resources perspective, wasted materials usage and wasted build time are reduced. In addition, as described below, rather than stopping an entire build process, printing of individual parts that are showing flaws or otherwise undesired features can be turned off so as the flaws/features do not cause the build to fail, which could cause errors with all of the structures in the build. By terminating building of individual parts that are becoming problematic, manufacturing yields and machine uptime can be maximized.
Some problems that may be observed during the monitoring of a build process as described herein include, but are not limited to, powder depth, dimensional errors, distortion, lack of fusion, porosity, micro cracking or macro cracking in the printed structures, malfunctioning of a roller/planarizer or other component of the printing apparatus, poor layer surface finish, delamination of the structures, misplacement, excess, or absence of build material, or any other additive manufacturing errors. In general, the monitoring can monitor for anything that can cause the built part to fail or that can indicate that that additive manufacturing apparatus has failed, is about to fail, or needs maintenance, as examples.
An example additive manufacturing apparatus and associated process in accordance with aspects described herein are presented with reference to
In one example, the printing apparatus prints the structures in layers. For the first layer, a recoating blade moves across a build platform and powder is pushed onto the build platform in a desired thickness. A light source (or laser) with an appropriate wavelength is then passed over the portion that is to be printed, thereby fusing it in place. After this layer is complete, the build platform lowers a distance that is equal to the layer thickness of the build (this is usually predetermined by the operator of the system), and the new powder stock platform rises by a predetermined amount. Then, the recoating blade moves across the build platform and more powder is pushed onto the build platform. The light source passes over selected regions to fuse the next layer of the part, and this cycle continues until the part is finished.
One potential challenge in the above process is flaws in the printed structure. If there are errors in printing—for instance lack of fusion, porosity, or cracks, as examples—then the printed structure may not function as intended in its downstream application. By way of some examples, lack of fusion or porosity may be the result of insufficient laser power, a laser speed that is too fast, or a recoating powder layer that is too thick or too thin. The lack of fusion or porosity may be hard or impossible to see with the naked eye, as these defects may be below the surface of the part layer. However, these defects can cause the parts to fail design specifications, and result in significant losses in production yields and production time (clean up, refixturing, etc.). The above problems and others may lead to manufacturing failures that may be extremely expensive, for instance when they cause defects in expensive parts.
According to aspects described herein, a topographic scanning system is leveraged for monitoring of build quality and machine health, and modifying machine operating characteristics during an additive manufacturing process to build a structure, so that the quality of the structure being built and the health of the additive manufacturing apparatus can be assessed. Aspects of the monitoring and analyzing can be performed in real-time, e.g. during the build process, and in non-real-time. The monitoring includes, in some embodiments, obtaining topographic scans of the build during the build process (real-time acquisition of images of the build process). The method and system also include evaluating data from previously made parts and a correlation database. The correlation database correlates defect locations with part locations and specific powder depths. The topographic scanning may include, for instance, scans of area(s) of the build platform, including the individual layers of the structure(s) as the layers are being built, scans of one or more additive manufacturing apparatus components, etc., as examples, and scans of the build platform after powder redistribution. An assessment of part quality may then be performed by evaluating the scan data. For instance, the scan data may be evaluated to ascertain characteristics (e.g. powder depth) of the structure(s) being printed and compare these to a ‘golden standard’, such as a computer-aided design (CAD) specification for the structure. The CAD specification may be a specification that the additive manufacturing apparatus uses in building the structure. The comparison can assess whether the structure is being built consistent with the CAD specification in order to identify possible distortions, deviations, or other flaws. The scan data may also be compared to physical or statistical models that correlate defect locations with powder depths, both before laser sintering and after laser sintering.
Since, build quality is dependent on machine and material performance, the evaluation of the scans can additionally identify features in the data that suggest problems with the additive manufacturing apparatus, such as, powder depth, lack of fusion, porosity or micro/macro cracks or other items that indicate a flaw. Thus, the data can be evaluated to not only detect errors in the structure(s) being built as they are printed, and assign a part ‘health’ score to the structure(s), but also monitor additive manufacturing apparatus health, indicating when the machine might require maintenance, adjustment or modification and identifying what is needed for that maintenance, adjustment or modification. In some examples, the evaluation is performed in real-time during the build process, though in other examples, the evaluation is performed at a later time.
When the evaluation of the scan data reveals a problem, one or more actions may be taken in response, and the types of actions may vary. For instance, an operator of the additive manufacturing apparatus may be notified of the problem. In some embodiments, an auditory or visual alarm or alert, or an electronic communication (i.e. text or email), is provided to the operator indicating that the flaw has occurred. Additionally or alternatively, adjustments or modifications may be made to the additive manufacturing process. The process may be halted for instance. In this regard, some errors may be not recoverable, necessitating shut down of the machine in order to allow for operator intervention. However, in some instances, such as if the error is exhibited only when building a particular part or row of parts, the process is modified but not halted altogether; instead, the process is optionally continued to a next phase, skipping the building of object(s) where the operational flaw(s) is/are exhibited. For instance, a ‘bad row’ of parts or problematic area of the build platform may be noted and the rest of the build may be completed. Noting the bad row may include notifying the operator of the bad row of parts. In further embodiments, the build process may be continued despite observing occurrence of an operational flaw, and, if the error occurs over a substantial area of the build platform or with a threshold number of parts, then the rest of the build may be halted.
Detection algorithms can be used in the evaluation of the acquired scan data in order to detect the built structure(s), compare them to CAD models, physical or statistical models, and identify distortions, deviations or flaws in the build structure(s). Early detection of operational flaws may reduce manufacturing time spent on failed part builds, reduce scrap, reduce raw materials usage, eliminate post inspection/quality evaluation and increase up time on additive manufacturing equipment, as examples.
The dispensing section 120 contains a supply of powder 130 supported by dispensing platform 122 and contained by walls 116 and 123. The dispensing platform 122 is raised up by shaft or support 124. When a new layer of powder is required in build section 110, the dispensing platform 122 will raise up by a predetermined amount so that recoating blade 150 can push the powder 130 from section 120 over to section 110. In this manner, a new layer of powder is spread over part/structure 140 so that the laser 102 may fuse the next layer of the part/structure 140. The recoating blade 150 will then return to its position above wall 123, and be ready for the next layer.
To monitor and assess operational performance of the 3D manufacturing apparatus 100, a topographic scanner 160 is provided to topographically scan the structure/part 140 each time it passes over the structure/part 140, and to topographically scan the build platform after powder redistribution is complete. The scanner 160 may comprise one or more of a laser scanner, a blue light scanner, a confocal scanner, a multifocal plane microscopy scanner or any other suitable topographical scanner. Calibration blocks 170 may be located on walls 123 and/or on walls 116, 114 (not shown) to calibrate the scanner 160 prior to a scan operation. The calibration block 170 may have different known artificial defects such as holes, notches, delamination, and voids that represent actual defects that can happen during the printing/build process. Referring to
h(x,y)=zp(x,y)−zlast(x,y) (Equation 1)
Where h(x,y) is the powder depth at a specific x, y location, zp(x,y) is the powder height at the specific x, y location and zlast(x,y) is the last welded/fused layer height at the specific x, y location.
These h(x,y) powder depth values can be calculated for each layer during the build process. Areas having thicker powder depths may require greater laser power or slower laser speed, and areas with thinner powder depths may require less laser power or faster laser speed to obtain high quality weld/fuse results. For example, in regions with deeper powder levels a standard build process may result in areas of unfused powder and resulting defects. Powder depth for each layer and also the layer depth that can be calculated by differentiating two successive layers are can be stored and added to a database. For each structure layer, two values will be measured at each x and y location, and these values may be powder depth and layer depth. Data for multiple layers (e.g., every layer of the finished part) is combined and added to a database, and this database may contain data for a plurality of parts. Non-destructive testing of a sampling of parts may be performed to identify the location of any defects. The defects may be unfused regions, holes, cracks, undesired porosity, etc. These defect locations are then cross-referenced with the powder depth and/or layer depth data for the respective part, and the results are entered into a correlation database or model. The correlation database correlates defect locations with powder depth and/or layer depth. Two correlation databases or models are discussed below.
A physical model, including but not limited to the thermal domain, mechanical domain, and optical domain, is generated that can indicate correlation of powder depths and/or layer depths resulting in defects. For example, a powder depth greater than a certain amount (e.g., 10 mm) may have a lower temperature gradient in the physical model that implies a high probability of creating a defect, or a powder depth lower than a certain amount (e.g., 2 mm) may also have a high probability of creating a defect. This metaphysical numerical simulation of the physical phenomena includes the laser melting process, temperature gradient, and fluid mechanics of the melt during the build process and can be updated in real time using different measurement tools. In addition, specific regions of the structure/part may be more prone to defects than other regions based on part geometry. In these “problem” regions operational characteristics of the 3D manufacturing apparatus may need to be modified to reduce the occurrence of defects. The operational characteristics to be modified may include laser power, laser speed, powder size, powder material, chamber temperature, laser spot size or even powder depth.
A statistical model may also be generated from the same part/structure or different parts/structures that indicates the probability of defect free regions (or defect regions) based on powder depth and/or layer depth. A chart of powder depth versus defect free regions may take the form of a bell curve (i.e., a Gaussian distribution). The center point (or high point) of the bell curve indicates defect free probabilities (e.g., 90% to 100%), and indicates a medium or average powder depth. The extremes of the bell curve indicate smaller and larger powder depths, and have much lower defect free probabilities (e.g., 1% to 10%). If a specific location of the part has a power depth in one of these outlying regions (extremes of the bell curve), then a defect is highly possible, and the process (i.e., one or more of the operational characteristics) should either be modified (to correct the defect), or the build process for that part should be terminated (if the defect is uncorrectable). Also, during the build if the powder layer falls beyond the extremes a redistribution of powder can be applied to correct the powder depth anomalies.
A determining step 530 determines, based on the evaluating step, whether the powder and/or layer depth is either inside or outside a predetermined range. For example, a desired powder depth may be between about 20 μm to about 100 μm, and an undesired powder depth is outside this range. Relative terms (e.g., about) are defined to have a tolerance of 10%. Based on this result a decision is made. If the powder depth is in the predetermined range (YES), then the process skips step 540. However, if the powder depth is outside the predetermined range (NO), then the process continues to step 540. A modifying step 540 modifies an operational characteristic of the 3D manufacturing apparatus based on the results of the determining step 530. As examples, if the powder depth is greater than the predetermined powder depth range, then the laser power may be increased, the laser speed may be decreased, the laser spot size may be changed, the powder may be redistributed, etc. Conversely, if the powder depth is lower than the predetermined range, then the laser power may be decreased, laser speed increased, etc. These modifications of the operational characteristic compensate or correct for the abnormal powder depths. Thicker powder levels may need more laser power or longer laser dwell time to properly fuse the powder. A thicker part/structure layer may need higher laser power in the next layer build process to correct the previously non-normal built layer. Accordingly, thinner powder levels may need the opposite, less laser power or faster dwell times. One or more operational characteristics may be modified as desired. The process then may be repeated until the build is complete.
The scanner(s) 160 may capture data in real-time during the build process. The data may then be evaluated, in real time, in one example, using one or more algorithms executed as software on a data processing system. The data processing system may be included as part of the apparatus 100, in one example. In other examples, the data processing system is in wired or wireless communication with scanner 160 responsible for acquiring the scan data, where the scanner communicates the data through one or more wired or wireless communication paths to the data processing system. The separate data processing system may be a controller 800 data processing system described above, or may be a different data processing system dedicated to evaluation of the acquired scan data.
In any case, the data processing system that obtains the scan data may evaluate the data, either separately or by one or more of various techniques for comparison with one or more 3D CAD models, correlation databases, physical models and/or statistical models, to determine whether the structure(s) are being printed correctly. In a typical build setup, a designer of the structures to be printed may utilize software to build designs for all of the parts to be printed onto the build platform. Software for controlling the additive manufacturing apparatus may then (offline) ‘slice’ the 3D models of the structure(s) to be printed into layers, with each layer to be printed as a ‘pass’ of the laser.
As described herein, layers of a build process may be scanned and the properties and characteristics of the printed materials may be compared to a CAD specification in order to assess the quality of the build and determine whether operational flaw(s) have occurred. The scanning of one or more layers in real time during the additive manufacturing process, and the evaluation of the scan data, which may be in real-time during the build process or may be at a later time, provides online inspection and process monitoring that facilitates assessment of the operational health of the additive manufacturing apparatus.
Input/output (I/O) devices 912, 914 (including but not limited to keyboards, displays, pointing devices, etc.) may be coupled to the system either directly or through I/O controllers 910. Network adapters 908 may also be coupled to the system to enable the data processing system to become coupled to other data processing systems through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters 908. In one example, network adapters 908 and/or input devices 912 facilitate obtaining scan data of a build process in which a three-dimensional structure is printed.
Data processing system 900 may be coupled to storage 916 (e.g., a non-volatile storage area, such as magnetic disk drives, optical disk drives, a tape drive, cloud storage, etc.), having one or more databases. Storage 916 may include an internal storage device or an attached or network accessible storage. Computer programs in storage 916 may be loaded into memory 904 and executed by a processor 902 in a manner known in the art.
Additionally, data processing system 900 may be communicatively coupled to the scanner 160 via one or more communication paths, such as a network communication path, serial connection, or similar, for communicating data between data processing system 900 and the scanner. Communication may include acquisition by the data processing system of the data acquired by the scanner 160.
The data processing system 900 may include fewer components than illustrated, additional components not illustrated herein, or some combination of the components illustrated and additional components. Data processing system 900 may include any computing device known in the art, such as a mainframe, server, personal computer, workstation, laptop, handheld computer, tablet, smartphone, telephony device, network appliance, virtualization device, storage controller, etc. In addition, processes described above may be performed by multiple data processing systems 900, working as part of a clustered computing environment. Data processing system 900, memory 904 and/or storage 916 may include data compression algorithms specifically designed for 3D printing due to the large amount of data needed to be stored for each part.
In some embodiments, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s). The one or more computer readable medium(s) may have embodied thereon computer readable program code. Various computer readable medium(s) or combinations thereof may be utilized. For instance, the computer readable medium(s) may comprise a computer readable storage medium, examples of which include (but are not limited to) one or more electronic, magnetic, optical, or semiconductor systems, apparatuses, or devices, or any suitable combination of the foregoing. Example computer readable storage medium(s) include, for instance: an electrical connection having one or more wires, a portable computer diskette, a hard disk or mass-storage device, a random access memory (RAM), read-only memory (ROM), and/or erasable-programmable read-only memory such as EPROM or flash memory, an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device (including a tape device), or any suitable combination of the above. A computer readable storage medium is defined to comprise a tangible medium that can contain or store program code for use by or in connection with an instruction execution system, apparatus, or device, such as a processor. The program code stored in/on the computer readable medium therefore produces an article of manufacture (such as a “computer program product”) including program code.
Referring now to
In one example, program code includes one or more program instructions obtained for execution by one or more processors. Computer program instructions may be provided to one or more processors of, e.g., one or more data processing system, to produce a machine, such that the program instructions, when executed by the one or more processors, perform, achieve, or facilitate aspects of the present invention, such as actions or functions described in flowcharts and/or block diagrams described herein. Thus, each block, or combinations of blocks, of the flowchart illustrations and/or block diagrams depicted and described herein can be implemented, in some embodiments, by computer program instructions.
The flowcharts and block diagrams depicted and described with reference to the Figures illustrate the architecture, functionality, and operation of possible embodiments of systems, methods and/or computer program products according to aspects of the present invention. These flowchart illustrations and/or block diagrams could, therefore, be of methods, apparatuses (systems), and/or computer program products according to aspects of the present invention.
In some embodiments, as noted above, each block in a flowchart or block diagram may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified behaviors and/or logical functions of the block. Those having ordinary skill in the art will appreciate that behaviors/functions specified or performed by a block may occur in a different order than depicted and/or described, or may occur simultaneous to, or partially/wholly concurrent with, one or more other blocks. Two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order. Additionally, each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, can be implemented wholly by special-purpose hardware-based systems, or in combination with computer instructions, that perform the behaviors/functions specified by a block or entire block diagram or flowchart.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprise” (and any form of comprise, such as “comprises” and “comprising”), “have” (and any form of have, such as “has” and “having”), “include” (and any form of include, such as “includes” and “including”), and “contain” (and any form contain, such as “contains” and “containing”) are open-ended linking verbs. As a result, a method or device that “comprises”, “has”, “includes” or “contains” one or more steps or elements possesses those one or more steps or elements, but is not limited to possessing only those one or more steps or elements. Likewise, a step of a method or an element of a device that “comprises”, “has”, “includes” or “contains” one or more features possesses those one or more features, but is not limited to possessing only those one or more features. Furthermore, a device or structure that is configured in a certain way is configured in at least that way, but may also be configured in ways that are not listed. Additionally, the terms “determine” or “determining” as used herein can include, e.g. in situations where a processor performs the determining, performing one or more calculations or mathematical operations to obtain a result.
The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiment with various modifications as are suited to the particular use contemplated.
It is to be understood that the above description is intended to be illustrative, and not restrictive. For example, the above-described embodiments (and/or aspects thereof) may be used in combination with each other. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the various embodiments without departing from their scope. While the dimensions and types of materials described herein are intended to define the parameters of the various embodiments, they are by no means limiting and are merely exemplary. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. The scope of the various embodiments should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. In the appended claims, the terms “including” and “in which” are used as the plain-English equivalents of the respective terms “comprising” and “wherein.” Moreover, in the following claims, the terms “first,” “second,” and “third,” etc. are used merely as labels, and are not intended to impose numerical requirements on their objects. Further, the limitations of the following claims are not written in means-plus-function format and are not intended to be interpreted based on 35 U.S.C. § 112, sixth paragraph, unless and until such claim limitations expressly use the phrase “means for” followed by a statement of function void of further structure. It is to be understood that not necessarily all such objects or advantages described above may be achieved in accordance with any particular embodiment. Thus, for example, those skilled in the art will recognize that the systems and techniques described herein may be embodied or carried out in a manner that achieves or optimizes one advantage or group of advantages as taught herein without necessarily achieving other objects or advantages as may be taught or suggested herein.
While the invention has been described in detail in connection with only a limited number of embodiments, it should be readily understood that the invention is not limited to such disclosed embodiments. Rather, the invention can be modified to incorporate any number of variations, alterations, substitutions or equivalent arrangements not heretofore described, but which are commensurate with the spirit and scope of the invention. Additionally, while various embodiments of the invention have been described, it is to be understood that aspects of the disclosure may include only some of the described embodiments. Accordingly, the invention is not to be seen as limited by the foregoing description, but is only limited by the scope of the appended claims. This written description uses examples to disclose the invention, including the best mode, and also to enable any person skilled in the art to practice the invention, including making and using any devices or systems and performing any incorporated methods. The patentable scope of the invention is defined by the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements with insubstantial differences from the literal language of the claims.