METHOD FOR CONTROLLING PLURALITY OF ROBOTIC DEPOSITORS IN A NON-CONTINUOUS DEPOSITION PROCESS
In the context of additive manufacturing processes wherein an object is built by layered accumulations of discrete instantaneous deposits of feedstock material at specific locations according to a three-dimensional digital data model, systems and methods are taught for operating multiple independently-moving depositing devices in a shared build space to build the object. In some embodiments, depositing components perform discrete material depositing actions according to sequential lists of deposit location instructions which are dynamically sortable, enabling a control methodology to alleviate collision risks among depositing components and to improve thermal conditions of a workpiece during construction. Further embodiments provide for dynamic apportionment of discrete deposition actions among the available depositing devices for load balancing and fault tolerance.
This application is a continuation-in-part of U.S. patent application Ser. No. 16/837,696, filed Apr. 1, 2020, which claims priority pursuant to 35 U.S.C. § 119 to U.S. Provisional Patent Application No. 62/827,527, filed Apr. 1, 2019, each of which is hereby incorporated by reference in its entirety.
TECHNICAL FIELDEmbodiments of the technology relate, in general, to systems and methods for fabricating a component via additive manufacturing using a non-continuous deposition process.
BACKGROUNDAdditive manufacturing (AM) has made great strides over the past decade as popular AM processes such as Laser Powder Bed Fusion (LPBF), Electron Beam Melting (EBM), and Selective Laser Sintering (SLS) have transitioned away from strictly high-end R&D projects to a much broader range of productionized applications. While advances in the aforementioned technologies are being made on a frequent basis, they also have their limitations. These common processes have limited build volumes and low deposition rates, sometimes resulting in parts that can take weeks and even months to complete. The high cost of equipment and of the fine-grained powders used in these processes is also a limiting factor in their widespread adoption. The high costs involved have typically limited applications to high performance, lightweight aerospace parts that require intensive and time-consuming qualification requirements before a single part can be used for a specific application, further increasing the cost of adoption.
Due to the cost and size limitations inherent in LPBF, EBM, and SLS, a wide range of varying AM modalities based on melting, sintering, or solid-state processing are being developed with the intent to build larger parts at higher deposition rates for a lower cost. Two of the more popular processes currently offered on the market include Directed Energy Deposition (DED) and Wire Arc Additive Manufacturing (WAAM). DED systems are typically expensive and difficult to operate, given that they utilize high-power lasers and complex motion systems such as 5-axis CNC platforms or 6+ axis robotic systems. The material costs associated with DED are also fairly high as the standard feedstock is still a fine powder. Furthermore, 10-50% of all powder used in DED is lost, adding to the cost of each part produced. The WAAM concept was designed to overcome the capital and material costs of DED by utilizing standard arc welding processes such as Gas Metal Arc Welding (GMAW), Gas Tungsten Arc Welding (GTAW), and Plasma Arc Welding (PAW) along with standard weld filler metal in the wire form. Typical WAAM systems are designed around 6-axis welding robots to further reduce costs. Despite the attractive cost and lead time reduction of a robot over a CNC platform for both DED and WAAM, the dynamic accuracy of robotic systems while following a toolpath is limited, increasing the likelihood of manufacturing defects such as lack of fusion. While WAAM successfully combats the capital and material cost issues of DED, it is faced with poorer surface finishes along with higher heat inputs and residual stresses as deposition rates increase.
Even if the cost issue can be eliminated by selecting WAAM over DED, one of the most pressing issues limiting the widespread adoption of all large scale AM processes is that of toolpath generation and motion control. Existing slicing software and toolpath generation methods for large scale AM are focused primarily on either the generation of simplistic shapes, or are developed for very specific geometric applications. A “universal” slicer does not yet exist, and thus programmers and machine operators can thus be forced to spend days or weeks writing code to run large scale AM machines. Once code has been written and is ready for implementation on the factory floor, finding skilled operators familiar with both CNC or robot-based codes and the deposition process can be incredibly difficult, often resulting in higher personnel costs to run machines as engineers are utilized instead of technicians. As additive manufacturing continues to mature, the need for a simple and robust, high throughput, low-cost machine must be met before AM fully revolutionizes manufacturing around the world. As cost is reduced and accessibility is increased, AM will make its way into low-criticality applications with ease, thus increasing the adoption rate of the technology worldwide.
SUMMARYAs explained in various illustrative embodiments set forth in the detailed description below, the present teachings provide for additive manufacturing systems, methods and processes for constructing an object by making a series of discrete material deposits in a discontinuous manner, rather in the continuous manner that is characteristic of bead-forming extrusion and welding processes. In particular, the present teachings address the control of multiple robotic material-depositing subsystems, each subsystem comprising a motion control system acting to move a non-continuous material-depositing device to, and perform discrete deposition of material at, specific locations according to a time-ordered list of deposit location instructions. The control taught herein enables predicting potential collisions when multiple subsystems are operated according to their respective time-ordered lists and resolving such conflicts by selective alterations of the lists' order and contents. Various approaches set forth herein also allow for controlling and adapting to thermal conditions or stresses that an object may experience during construction, the adaptation facilitated by the agility with which the discrete material deposition instructions may be manipulated in the time-ordered lists.
Various exemplary embodiments are illustrated by way of example, and not by way of limitation, in the following detailed description, claims and accompanying drawings, in which like reference numerals refer to similar elements and in which:
Various non-limiting embodiments of the present disclosure will now be described to provide an overall understanding of the principles of the structure, function, and use of the apparatuses, systems, methods, and processes disclosed herein. One or more examples of these non-limiting embodiments are illustrated in the accompanying drawings. Systems and methods specifically described herein and illustrated in the accompanying drawings are by way of example and are non-limiting embodiments. The features illustrated or described in connection with one non-limiting embodiment may be combined with the features of other non-limiting embodiments. Such modifications and variations are intended to be included within the scope of the present disclosure.
Reference throughout the specification to “various embodiments,” “some embodiments,” “one embodiment,” “some example embodiments,” “one example embodiment,” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with any embodiment is included in at least one embodiment. Thus, appearances of the phrases “in various embodiments,” “in some embodiments,” “in one embodiment,” “some example embodiments,” “one example embodiment,” or “in an embodiment” in places throughout the specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined in any suitable manner in one or more embodiments.
Described herein are example embodiments of apparatuses, systems, and methods for making a component via additive manufacturing with non-continuous deposition. The component may be a blank for a part. In one example embodiment, software for toolpath generation takes a 3D model and fills it with a series of layers of hexagonally packed cells that create the complete volume of the given part. The cells are then sorted to build a toolpath consisting of a series of discrete deposition events (i.e., each event corresponds to a single deposited cell). In some embodiments, the cells are sorted to allow for rapid traversals between the discrete deposition events in an order that is designed to maximize deposition rates while residual stress and distortion are minimized by controlling heat input throughout the part. As used herein, references to modeled cell(s) or cell(s) refer to the discrete unit making up the cellular model, which is used to create an order of the discrete deposition events during the non-continuous deposition process, as discussed further below. Each cell is associated with a deposited cell to be deposited during the non-continuous deposition process. As used herein, deposited cell(s) refers to the individual physical depositions that form the blank of a part or the part. As used herein, the term ‘voxel’ may also be used to refer to one of array of elements that conceptually subdivide a three-dimensional space. Each voxel has a unique location and bounds within the three-dimensional space. Thus, even though a voxel is an abstract entity, it may be appropriately said that material is deposited to fill a given ‘voxel space’ meaning at a location within the build space corresponding to a voxel's relative location and bounds as applied to that build space. A voxel space having been filled with material constitutes a deposited cell. Costs are reduced and industrial reliability is maintained by utilizing a variant of the standard GMAW process to build each deposited cell until they are joined together and form the final part. The non-continuous, discrete deposition nature of the process allows for modular scalability of machines without interference in the process or build quality.
In various embodiments, the component formed using a non-continuous deposition process as described herein can be understood to be a “blank” that is further milled or otherwise shaped into a final part. By fabricating the component using the deposited cell-by-deposited cell, layer-by-layer process described herein, the resultant blank can have a configuration that roughly resembles the final part but does not have the associated cost and complexity associated with conventional metal additive manufacturing processes such as, for example, conventional Directed Energy Deposition (DED), Laser Powder Bed Fusion (LPBF), Electron Beam Melting (EBM), and Selective Laser Sintering (SLS). The deposited cell-by-deposited cell, layer-by-layer process can replace rough machining operations carried out on large billets and bar stock that are costly and time consuming. Solely machining a final product from bar stock may be sub-optimal and, likewise, generating a final part using only conventional metal additive manufacturing may also be sub-optimal.
The examples discussed herein are examples only and are provided to assist in the explanation of the apparatuses, devices, systems and methods described herein. None of the features or components shown in the drawings or discussed below should be taken as mandatory for any specific implementation of any of the apparatuses, devices, systems or methods unless specifically designated as mandatory. For ease of reading and clarity, certain components, modules, or methods may be described solely in connection with a specific FIG. Any failure to specifically describe a combination or sub-combination of components should not be understood as an indication that any combination or sub-combination is not possible. Also, for any methods described, regardless of whether the method is described in conjunction with a flow diagram, it should be understood that unless otherwise specified or required by context, any explicit or implicit ordering of steps performed in the execution of a method does not imply that those steps must be performed in the order presented but instead may be performed in a different order or in parallel.
In general, it will be apparent that at least some of the embodiments described herein can be implemented in many different embodiments of software, firmware, and/or hardware. The software and firmware code can be executed by a processor or any other similar computing device. The software code or specialized control hardware that can be used to implement embodiments is not limiting. For example, embodiments described herein can be implemented in computer software using any suitable computer software language type, using, for example, conventional or object-oriented techniques. Such software can be stored on any type of suitable computer-readable medium or media, such as, for example, a magnetic or optical storage medium. The operation and behavior of the embodiments can be described without specific reference to specific software code or specialized hardware components. The absence of such specific references is feasible, because it is clearly understood that skilled persons would be able to design software and control hardware to implement the embodiments based on the present description with no more than reasonable effort and without undue experimentation.
Moreover, the processes described herein can be executed by programmable equipment, such as computers or computer systems and/or processors. Software that can cause programmable equipment to execute processes can be stored in any storage device, such as, for example, a computer system (nonvolatile) memory, an optical disk, magnetic tape, or magnetic disk. Furthermore, at least some of the processes can be programmed when the computer system is manufactured or stored on various types of computer-readable media.
It can also be appreciated that certain portions of the processes described herein can be performed using instructions stored on a computer-readable medium or media that direct a computer system to perform the process steps. A computer-readable medium can include, for example, memory devices such as diskettes, compact discs (CDs), digital versatile discs (DVDs), optical disk drives, or hard disk drives. A computer-readable medium can also include memory storage that is physical, virtual, permanent, temporary, semi-permanent, and/or semi-temporary.
A “computer,” “computer system,” “host,” “server,” or “processor” can be, for example and without limitation, a processor, microcomputer, minicomputer, server, mainframe, laptop, personal data assistant (PDA), wireless e-mail device, cellular phone, pager, processor, fax machine, scanner, or any other programmable device configured to transmit and/or receive data over a network. Computer systems and computer-based devices disclosed herein can include memory for storing certain software modules used in obtaining, processing, and communicating information. It can be appreciated that such memory can be internal or external with respect to operation of the disclosed embodiments. The memory can also include any means for storing software, including a hard disk, an optical disk, floppy disk, ROM (read only memory), RAM (random access memory), PROM (programmable ROM), EEPROM (electrically erasable PROM) and/or other computer-readable media. Non-transitory computer-readable media, as used herein, comprises all computer-readable media except for a transitory, propagating signals.
Embodiments are hereinafter described in detail in connection with the views and examples of
The welding system 14, which can be for example any suitable deposition system, can include a welding machine 22 and a weld gun 24 that is coupled to the welding machine 22 via a cable assembly (not shown). The welding system 14 can include a chiller 25. The welding machine 22 can selectively feed welding wire to the weld gun 24 (via the cable assembly) as part of a welding process, as is commonly understood in the art. It is to be appreciated that the welding machine 22 and the weld gun 24 can be configured to accommodate any of a variety of suitable welding processes, such as, for example, Gas Metal Arc Welding (GMAW), Gas Tungsten Arc Welding (GTAW), and Plasma Arc Welding (PAW). Some processes that are amenable to the present teachings are explained later in connection with
The weld gun 24 can be coupled with an articulated robot 26 that is disposed on the frame assembly 12 or welding table 16 beneath the hood 20. In an embodiment, the welding machine is configured to begin feeding the welding wire through the weld gun 24 while the articulated robot 26 is moving. In this manner, the tip of the welding wire may be in the appropriate position to begin arc initiation as the weld gun 24 reaches the next weld location. For example, the initiation time may be from 10 milliseconds to 100 milliseconds and the movement time may be from 50 milliseconds to 900 milliseconds, such that combining the initiation phase with the movement phase may reduce the overall time required for the overall weld. The arc initiation can begin simultaneously or immediately after the articulated robot 26 completes the movement of the weld gun 24. During the welding process, welding gasses emitted from the weld gun 24 can be at least partially collected by the hood 20. In one embodiment, a fume extraction system (not shown) can be associated with the hood 20 and can facilitate extraction of the welding gases from the welding table 16. In another embodiment, welding gases may be recirculated in an enclosed chamber in order to maintain an inert atmosphere.
During the welding process, the articulated robot 26 can facilitate selective positioning of the weld gun 24 relative to the welding table 16. In one embodiment, as illustrated in
In one embodiment, each of the weld gun 24, the first arm 30, and the second arm 32 can be associated with respective servos (not shown) that can be independently controlled to move the weld gun 24, the first arm 30, and the second arm 32 relative to each other. In other embodiments, any of a variety of suitable alternative electronic actuators can be used to facilitate automated movement of the weld gun 24, the first arm 30, and the second arm 32. It is to be appreciated that although the articulated robot 26 is illustrated and described above to be a SCARA robot, any of a variety of suitable alternative robot arrangements are contemplated for positioning the weld gun 24 relative to the welding table 16 (e.g., a delta robot, 6-axis robot arm, or gantry machine). The time it takes the articulated robot 26 to move the weld gun 24 may vary. In some embodiments, the move time may be in a range of 0.01 s to 100 s, 0.01 s to 50 s, 0.01 s to 10 s, 0.01 s to 1 s, 0.01 s to 0.5 s, 0.1 s to 0.5 s, 0.1 s to 1 s, 0.1 to 10 s, 0.1 s to 100 s, 0.5 s to 1 s, 0.5 s to 10 s, 0.5 s to 100 s, 1 s to 10 s, 1 s to 50 s, or 1 s to 100 s. In an embodiment, the articulated robot 26 may move from 1 m/min to 60 m/min.
Still referring to
The welding machine 22 and the controller 36 are shown to be disposed on the lower shelf 18 beneath the welding table 16. A spool or container of welding wire (not shown) can also be provided on the lower shelf 18. By arranging each of these components on the frame assembly 12, the fabrication system 10 can be a self-contained unit that is easily transportable. In one embodiment, the frame assembly 12 can have an overall length and width that is similar to a standard pallet (e.g., about 40 inches by about 48 inches) to enable the fabrication system 10 to be easily transported with pallet moving equipment, such as a pallet jack or a forklift, for example.
Referring now to
The welding parameters may vary. In some embodiments, the voltage applied may be in a range of 10 V to 40 V, 10 V to 30 V, 10 V to 20 V, 15 V to 25 V, 15 V to 35 V, 20 V to 30 V, 20 V to 40 V, or 30 V to 40 V. Various embodiments can include an applied current of 10 A to 1000 A, 10 A to 500 A, 10 A to 250 A, 10 A to 100 A, 100 A to 250 A, 100 A to 400 A, 100 A to 500 A, 100 A to 750 A, 250 A to 500 A, 250 A to 750 A, 500 A to 750 A, or 500 A to 1000 A. The duty cycle may be in a range of 0% to 100%, 25% to 100%, 25% to 90%, 25% to 75%, 40% to 100%, 40% to 90%, or 40% to 75%. The length of the unmelted wire extending from the weld gun (wire stick out) and wire feed rate may vary. In some embodiments, the wire stick out may be in a range of 1 mm to 50 mm, 1 mm to 40 mm, 1 mm to 30 mm, 1 mm to 20 mm, 5 mm to 50 mm, 5 mm to 35 mm, 10 mm to 50 mm, 10 mm to 40 mm, 10 mm to 30 mm, 10 mm to 25 mm, 12 mm to 25 mm, 15 mm to 25 mm, 15 mm to 35 mm, 20 mm to 40 mm, or 20 mm to 30 mm. In various embodiment, the wire feed rate (inches per minute) may be in a range of 10 to 1500, 10 to 1250, 10 to 1000, 10 to 500, 50 to 1500, 50 to 1000, 50 to 500, 100 to 1500, 100 to 1250, 100 to 750, 100 to 500, 100 to 250, 250 to 1250, 250 to 1000, 250 to 500, 500 to 1500, 500 to 1000, 750 to 1500, 1000 to 1500. Additionally, the arc-on time may vary and, in some embodiments, can be in a range of 0.01 s to 100 s, 0.01 s to 50 s, 0.01 s to 10 s, 0.01 s to 1 s, 0.1 s to 100 s, 0.1 s to 50 s, 0.1 s to 10 s, 0.1 s to 1 s, 0.2 s to 100 s, 0.2 s to 50 s, 0.2 s to 10 s, 0.2 s to 1 s, 0.5 s to 50 s, 0.5 s to 10 s, 1 s to 100 s, 1 s to 10 s, 5 s to 100 s, or 10 s to 100 s. Further, the build rate may be in a range from, for example, 0.1 lb/hr to 1000 lb/hr, 0.1 lb/hr to 500 lb/hr, 0.1 lb/hr to 100 lb/hr, 0.1 lb/hr to 50 lb/hr, 0.1 lb/hr to 10 lb/hr, 0.5 lb/hr to 10 lb/hr, 0.5 lb/hr to 50 lb/hr, 0.5 lb/hr to 100 lb/hr, 1 lb/hr to 10 lb/hr, or 1 lb/hr to 50 lb/hr. Distortion in the deposited component may be affected by amperage, duty cycle required to hit each deposition rate. Distortion may be reduced or minimized using the non-continuation deposition process, as discussed below in Example 4. Large wire diameters (e.g., 0.045-0.062″) with high amperage and duty cycles (e.g., move speeds in excess of 20-30 m/min) may be capable of achieving high deposition rates while minimizing distortion. Machine X-Y area may not have a large impact on deposition rates compared to travel speeds, but it may affect heated bed requirements and inert gas consumption. Larger machine areas may require higher duty cycles in order to achieve higher deposition rates.
In various embodiments, the welding system 14 can provide an inert shielding gas during the fabrication of the metal component. The inert shielding gas prevents oxidation of the molten metal, which could otherwise create voids, defects, or discontinuities in the final product. Examples of the inert shielding gas include, without limitation, argon, carbon dioxide (CO2), helium, nitrogen, oxygen, and combinations thereof. The welding system 14 can include an inert shielding gas source (e.g., a gas tank) or may be coupled to a central supply if one is available. Multiple techniques may be used to deliver the inert shielding gas, as discussed below, and more than one technique may be used at a time. An example embodiment includes delivery of the inert shielding gas via a GMAW nozzle. The GMAW nozzle produces a laminar flow of inert shielding gas directly above each deposited cell 40 as it is welded. The deposited cell 40 is still red hot as the gas delivery nozzle moves away towards the next deposited cell 40 to be welded, which may still allow oxidation. The deposition method may vary. For example, the GMAW process has multiple modes: short circuit, globular, spray, or pulsed. The short circuit mode results in a low heat input, which could result in faster depositions. The globular mode results in large amounts of spatter. The spray mode has a high heat input, which may eliminate lack of fusion but can result in overheating the component, which may be addressed by techniques discussed further below. In an embodiment, a combination of these modes may be used to build one component depending on the component geometry and requirements.
In another embodiment, the welding system 14 can include delivery of the inert shielding gas via a gas diffusing lens. The gas diffusing lens creates a relatively large area of slow-moving inert shielding gas that displaces oxygen around a portion of the metal component. The diameter of the gas diffusing lens may vary based on, for example, the overall size of the metal component, the average robot move time between deposited cells 40, the raw material used, and the overall temperature of the metal component.
In another embodiment, the fabrication system 10 can include welding the metal component in a bath of the inert shielding gas. The fabrication system 10 can include a chamber having a bottom surface and a sidewall extending up from the bottom surface. In an embodiment, the bottom surface of the chamber may be the welding table 16. The chamber includes an inlet in either the bottom surface or at about the bottom of the sidewall. The inert shielding gas may be delivered to the bottom of the chamber through the inlet. The inert shielding gas, which is heavier than air, displaces the air previously at the bottom of the chamber. As the chamber fills with the inert shielding gas, the air is pushed up and over the sidewall. After the air has been expelled from the chamber, the welding may proceed. In an embodiment, the bath of the inert shielding gas may be used in conjunction with a GMAW nozzle or a gas diffusing lens as described above.
In another embodiment, the fabrication system 10 can include an enclosed inert environment surrounding the metal component as it is being welded. The fabrication system 10 can include a chamber having a bottom surface, a top surface, and a sidewall extending between the bottom surface and the top surface. The interior of the chamber may be filled with the inert shielding gas and pressurized above the ambient barometric pressure. The positive pressure differential with respect to the ambient environment prevents oxygen-rich air from interfering with the welding.
The weld gun 26 may include an end effector designed for the discontinuous deposition architecture as described herein. Traditional welding torches are often too heavy (e.g., in excess of 3 kg) to allow rapid acceleration required for high travel speed of process and do not allow for a simple automated contact tip change during processing. The end effector 42 shown in
Referring to
In an embodiment, the welding machine 22 may include a multi-tip end effector. In an embodiment, the end effector may include three tips. The triple-tip end effector can include three welding contact tips positioned along the perimeter of a circle, spaced at 120 degrees apart such that each contact tip is able to produce a deposited cell within the sorting pattern at the same time within one robot movement. In another embodiment, the multi-tip end effector could be used in a multi-material configuration in which each contact tip on the end effector could hold a welding wire of a different material.
In some embodiments, multi-material components can be produced by integrating multiple wires into a single system. For example, the welding system 14 may include a single end effector capable of producing deposited cells from welding wire extending from more than one wire feeder. Referring to
The deposited cells 40 deposited on the weld plate 38 can be provided in the pattern illustrated in
The shape and dimensions of each deposited cell 40 may vary. In an embodiment, the shape of the deposited cells 40 may be generally shaped like a cylinder, clipped sphere, hemisphere, or any other suitable shape. In various embodiments, the average diameter of each deposited cell may be in a range of 0.1 mm to 50 mm, 1 mm to 45 mm, 1 mm to 30 mm, 1 mm to 20 mm, 4 mm to 16 mm, 5 mm to 20 mm, 10 mm to 30 mm, 10 mm to 40 mm, 10 mm to 50 mm, 20 mm to 50 mm, 30 mm to 50 mm, or 40 mm to 50 mm. In some embodiments, the average height of each deposited cell may be in a range of 0.1 mm to 25 mm, 0.1 mm to 20 mm, 0.1 mm to 10 mm, 0.1 to 5 mm, 0.5 mm to 5 mm, 0.5 mm to 10 mm, 0.5 mm to 20 mm, 1 mm to 4 mm, 1 mm to 5 mm, 1 mm to 10 mm, 1 mm to 20 mm, 5 mm to 10 mm, 5 mm to 20 mm, 5 mm to 25 mm, 10 mm to 20 mm, or 10 mm to 25 mm. In various embodiments, the diameter to height aspect ratio may vary and may be, for example, at least 1, at least 1.5, at least 2, at least 2.5, at least 3, and at least 5. These shapes and ranges may also apply to the cells in the cellular model.
In an embodiment, the deposited cells 40 may overlap adjacent deposited cells 40. The overlap of a single deposited cell 40 may be based on the percentage of volume that overlaps with any adjacent deposited cell 40. The overlap may be in a range of 0% to 50%, 0% to 40%, 0% to 30%, 10% to 50%, 10% to 40%, 10% to 30%, 20% to 50%, 20% to 40%, or 30% to 50%. In an embodiment, the overlap can be 20%. In some embodiments, there may be a tolerance of +/−10% of the overlap for the deposited cells 40. In another embodiment, the overlap between the deposited cells 40 is based upon the distance by which adjacent deposited cells 40 overlap. This overlap may be in the range of 0% to 50%, 0% to 40%, 0% to 30%, 10% to 50%, 10% to 40%, 10% to 30%, 20% to 50%, 20% to 40%, or 30% to 50% of the radius of the deposited cell 40. In some embodiments, there may be a tolerance of +/−10% for the relative distance of the overlap to the deposited cell radius. These ranges and tolerance may also apply to the cells in the cellular model. It will be appreciated that any suitable overlap is contemplated that reduces cavities in the finished component or otherwise improves the consistency or integrity of the component.
In an embodiment, the size of each deposited cell 40 may be the same. In another embodiment, the deposited cells 40 may have variable sizes. For example, deposited cells 40 at the edge of a layer may be smaller in size than those not adjacent to the edge.
The edges of each layer may include an overhang or a portion of one or more deposited cells 40 that is unsupported by the layer directly below. An overhang degree may be measured between a line or vector normal direction of the substrate or a lower layer of the component and a vector tangent to the lower leading edge of the overhanging portion of the cell. The overhang degree may be in a range of, for example, 0° to 90°, 0° to 75°, 0° to 60°, 0° to 45°, or 0° to 30°.
Suitable metals include, without limitation, iron, nickel, titanium, copper, aluminum, steel, and alloys, such as stainless steel, austenitic, ferritic, martensitic, precipitation hardening alloys, iron alloys, nickel alloys (e.g., Inconel®), aluminum alloys, copper alloys, and titanium alloys. In one embodiment, each of the deposited cells 40 can be formed of the same material (e.g., welding wire), such that the component is a homogeneous component. In another embodiment, certain of the deposited cells 40 can be formed of a different material such that the metal component can be heterogeneous (e.g., an aluminum component having a portion of steel embedded therein). It is to be appreciated that each particular layer of deposited cells 40 deposited on the weld plate 38 does not need to be completed before depositing additional deposited cells 40 over that layer. The embodiments described herein are not limited to metal components, as discussed further below. Homogenous components can include a center portion having one composition with an outer coating having a different composition, pockets of the component having different compositions, layers of the component having different compositions, or the like.
Machining a blank formed in accordance with methods described herein can allow for less material that needs to be removed during the milling process, which can lead to significant time and cost savings during manufacturing, while also reducing complexity of the overall additive manufacturing system. As shown in
One example of a method for manufacturing a component will now be discussed. First, a computer model of a final part is provided to the controller 36, which identifies the overall shape and size of the metal component that should be fabricated to ensure the final part can be milled or otherwise processed therefrom. The controller 36 can then calculate the optimal deposition order and pattern of the deposited cells 40 to be deposited on the weld plate 38 (e.g., based on heuristics or other conditions such as those discussed further below). The weld plate 38 can be oriented on the welding table 16 and locked in place (e.g., with clamps). The controller 36 can establish a datum (e.g., reference frame) on the substrate 38 which can be a corner or other physical feature. The controller 36 can then operate the welding machine 22 and the articulated robot 26 to begin depositing deposited cells 40 on the weld plate 38 using the datum as a reference frame. During deposition of the deposited cells 40, the controller 36 can monitor various operating characteristics of the welding system 14, such as the voltage and current input at the weld gun 24, for abnormalities that may be indicative of an imperfection in the metal component. If an abnormality is detected, the location of the abnormality (e.g., the deposited cell location) in the component can be flagged for further investigation by the user. Once fabrication of the component is complete, the weld plate 38 can be removed from the welding table 16 and the component can be subsequently milled or otherwise finalized. For example, the post-process machining of a blank may be handled by a CNC milling or turning machine. The datum identified by the controller 36 can be used during the milling process to identify the metal component on the weld plate 38 more easily than with conventional datums (i.e., datums that are integrated into the component itself) which can save significant time and cost. It will be appreciated, however, that systems described herein can be used to manufacture completed parts. For example, components not requiring tight tolerances or a highly specific configuration can be made using embodiments described herein without post-processing or machining. In one embodiment, portions of a component may be machined while other portions of the component may not be finished or otherwise altered.
In various embodiments, multiple components may be constructed in the same deposition process. For example, more than one component may be built in parallel or series, and each component may be built with reference to a single datum. In an embodiment, more than one of the same can be built in parallel or series. In another embodiment, more than one component of different types can be built in parallel or series. As discussed above, each component can be built from a datum or chosen reference point. The build order can then be sorted out to be parallel or series production, after which the cell arrays are sorted. More than one articulated robot 26 may be used.
An example embodiment of software used in the additive manufacturing processes described above includes manipulation of a computer model of the component to be built. A boundary representations (b-rep) model is brought into a build preparation software. The software can then assist the user to quickly orient that model in the machine and plan how the component will be created. The user then chooses a predefined parameter set for the build. The parameters that may be defined include, but are not limited to, layer height, cell height, cell diameter or width, cell aspect ratio, arc on time, wire feed speed, stick out distance, voltage, maximum interpass temperature, overlap distance, overlap percent, deposition time, retraction distance, X-Y-Z positions, i-j-k tool axis vector components and supply or machine characteristics such as program number (a power supply dependent value), arc control (power supply dependent value), work offset (reference frame for the robot), etc. To create the discrete depositions from the component or part model, the software first builds a series of planes separated by the layer height given in the parameter set, and then finds the intersections of each of these planes with the part model. Each of these layers is then covered with an array of cells, such as those described above. In an embodiment, the array is a rectangular array of hexagonally spaced cylindrical cells. Each cell is then checked to determine whether or not to include it in the model. In an embodiment, the program determines what cells are entirely contained within the boundary of the layer. Cells that are contained entirely by the layer contours are included in the model. Next, for any cells not contained entirely by the contours of the layers, the program can determine whether the boundary of the cell intersects the boundary of the layer. The cells having boundaries that don't intersect the layer boundary are not included in the model. For the remaining intersecting cells, the program can determine whether the surrounding cells already cover all of the area of the layer boundary. If a cell is needed to completely cover the area of the layer boundary, that cell is included in the model otherwise it is not included. This process occurs for each layer. (These aspects will be further described in conjunction with
In one alternative embodiment, the discrete depositions are populated through a 2D packing algorithm, rather than being created with an underlying grid. After establishing the intersection curve for each layer, the curves are then filled with uniform sized cells (e.g., cylindrically shaped). The cells may have a defined overlap and an optional programmable tolerance (e.g., +/−10%). Alternatively, in another embodiment, the boundary is filled with circles having a varying diameter with a defined overlap. In another embodiment, the diameter and/or the overlap may vary according to a determined relationship.
In another embodiment, the software does not divide the model into a series of planes, and instead the user selects a starting surface and the contours of the model are filled using a 3D cell packing algorithm. This algorithm can start by building up cells with tool axes built according to the given surface or surfaces. Then additional layers would be created based upon the previous deposition surface or surfaces. This process can repeat until the volume was filled and could be iterated on to optimize packing according to a given metric such as minimizing wasted volume, minimized deviation in overlaps, etc.
The cells can then be rendered, and the user can then preview the initial model superimposed with the planned discrete deposited cells. If the user desires more stock added they can then add an extra padding layer of depositions around the edges, and the model rendered again. Next, the depositions are then sorted as discussed above and passed along to the machine. The user can then choose to export the cellular model (e.g., as a mesh or NURB model) to the CAD or CAM package of their choice for post-process machining and create a build file for the machine. Examples of the software and techniques utilized by the controller 36 are discussed further below.
The process for creating the cell-based architecture can happen very quickly. First, the math for adding offsets or adjusting overhangs is simplified from complicated geometry used in traditional additive or CAD/CAM systems (e.g., where the boundary curves or the actual model geometry needs to be offset and modified and all of the edge cases need to be addressed) to modifying 1D or 2D bitmasks based on whether or not a cell is within the boundary of a layer, as discussed above. This significant simplification of the planning speeds up the processing dramatically. Next, because each cell can essentially be treated as its own unit, the system can include complete traceability from start-to-finish of each cell within the model. In addition to traceability throughout the build, it also allows for the cells to be the finite elements in the analyses to allow for easier prediction of the results and close the control loop to get the component built correctly the first time. Finally, this simplified model can be passed directly to a CAD or CAM package for post-process machining in any software of choice. This is a simpler, streamlined system that not only removes significant complexity from the conventional process but also enables the user to make better components with less effort. In an embodiment, the system includes machine learning in conjunction with a data acquisition (DAQ) system to improve the processing, such as where data regarding minimizing voids can be used to optimize cell deposition.
The slicer 72 receives the incoming geometry and the given layer height and builds an array of planes through the object layer height away from each other in the Z-direction. It then intersects the model with the planes and creates a series of layers or ‘model layer slices.’ Each layer is a group of curves or ‘contours’ on the same plane where the model intersects the plane. These layer curves are passed both to the cell generator 74 as well as the masker object upstream. Once the layer curves are generated, then each layer is passed to the cell generator 74 where a bounding box is generated for the layer and a cell field is generated over the bounding box, and it is extended several multiples of the cell diameter over each edge. The field is represented as, for example, a 1D bitmask array with stored dimensions or as a 2D bitmask in so-called ‘raster’ arrangement. (A one-dimensional listing of records, each comprising two-dimensional coordinates, is shown in
The masker 76 takes the layer curves as well as the bitmask array and creates an equal length 1D bitmask. It then populates the bitmask based on what cells will be used to form the layer, as discussed above, to create the final bit mask array. In an embodiment, the software then checks for intersection to keep cells if the intersecting length is above a predetermined threshold. The user could guide this setup through the GUI. It can also create a bit mask for rendering where the interior volume is removed for a lightweight version. In an embodiment, the cell fields are created as a grid along the X- and Y-axes. The software can be configured to allow the user to manually shift the edges for extruded objects. In an embodiment, the software may be configured to align the cell grid so that it uses the smallest feasible number of cells for a given layer. In another embodiment, the software may be configured to allow for multiple cell sizes and/or non-grid creation by using some circle packing of the layer curves. In some embodiments, the software can be configured to minimize the overhangs by reducing the angle or extrude the furthest overhanging portions down to the build plate. (Processes for manually or automatically making such adjustments are shown and described in connection with
Conventional slicers typically work by intersecting a model with a surface at one point and calling that a layer essentially by extruding that layer up or down. One potential issue with this method is that it can miss any Z feature less than a single layer height. As the layer height increases, this can rapidly cause issues especially if the goal is to always make a stock positive component. To overcome this, in an embodiment, the software is configured to take multiple slices per layer and take the largest version of the superimposed curves to create a more accurate boundary for the layer. In an embodiment, the software treats one cell as one discrete deposition (e.g., one deposited cell 40).
Still referring to
The post processor 80 can take a list of cell objects and convert it into commands that are readable by a machine, such as a welding robot. Notably, this may be the only step of the process that may be specific to the type of machine being used. Primarily, it provides the structure for a program and configures and moves through each cell in the list and applies the discrete deposition. In an embodiment, a deposition model, such as welding model 79 can be generated and provided to the post processor 80.
As discussed earlier, the sorting process can be based upon a stack of heuristics. In this system a series of heuristics could be applied to the cell field in which a heuristic gives each cell a weighting factor. The weighting factors for each heuristic are combined per cell, and the system can select the next cell to be deposited by finding the maximum or minimum value depending upon the weighting factors' sense. In this way, the sorting could take into account multiple factors such as, minimized distortion, maximized build rate, minimized thermal input, net cooling rates, maximum interpass temperature, etc., but also be flexible as the component is being built (e.g., as the temperature changes). Additionally, the software can provide a STEP, STL, or other solid output file that can then be used in later stages of processing. An advantageous manner for providing an ‘as-deposited’ model of the blank to a subsequent process that calculates machining tool paths is presented in
In an embodiment, the system may employ an algorithm or model to predict physical characteristics of the deposited cells and/or the component as a whole. Such physical characteristics include, without limitation, stress, strain, deformation, temperature, deposited cell thermal history, etc. The model can be a finite element analysis model based on the cellular mesh of the component to be produced. Each deposited cell can have an associated heat input based on processing parameters (e.g., voltage, amperage, and arc-on time). The thermal history of the completed component can be predicted by the model based on the order in which cells are sorted and produced within the slicing software. The data from the thermal model can be used to predict thermal strains and residual stresses within the completed component by using the same finite element analysis system. A process for predicting behavior and performing simulations and then making responsive adjustments to build instructions is set forth in
In various embodiments, the software may be configured to display the expected material properties of the component and/or how long the component will take to build using the chosen parameter set. For example, as discussed above, a model may be used to predict physical characteristics (e.g., in a plot or profile format), which may inform the user in making adjustments to the sorting. Due to the size and organization of the cells, the microstructure of the entire deposited structure (with the exception of the outer surface of the final component) could be controlled by modifying the parameters used to generate each cell. In an embodiment, the software can allow the user to adjust the parameters after the initial cellular mesh is created. This allows the user to iterate with various parameter choices to produce a component that best meets the desired material characteristics. In an embodiment, the discrete deposition process could control the tempering effect on alloy and high carbon steels in order to mitigate crack susceptibility commonly seen in other AM processes. Adjusting the cell generation parameters could also be used to control precipitation reactions in other alloys. The software can be configured to take the generated planes and do as much of the processing from planes to masked cell fields in separate threads or processes to optimize the speed. In an embodiment, the time frame for the software to process and slice a model is less than 0.1 s, which allows the system to be recalculating cell sequences according to data being collected during the build process. At least one process for performing such adjustments is explained in the context of
In an embodiment, each cell is traceable. Each cell has a number of associated parameters. For example, the history of what user created the planned cell and when may be stored. The associated parameters can also include what machine was used to build the cell (i.e., perform the discrete deposition to create the deposited cell(s) 40), the time and date of deposition, feedback from any sensors, and comparison with the predictions about that cell. Thus, the system may be able to predict and track defects throughout and tie them back to their root causes.
In an embodiment, process data may be collected and stored. Process data, such as amperage, voltage, and wire feed speed, can be easily captured by using standard welding equipment. This data can be used to continuously monitor cell quality and build a digital twin of the component, which can be used both to reduce non-destructive evaluation (NDE) requirements and as an aid for post-process machining. Data collection will also enable closed-loop control of the process to further increase performance and reliability.
As discussed above, the particular order in which the deposited cells 40 are deposited onto the weld plate 38 can be selected (e.g., sorted) based upon any of a variety of desired heuristics or other conditions. In an embodiment, the order of deposition can be selected to ensure that each deposited cell 40 is never placed next to the deposited cell 40 that was deposited last except where there are too few discrete depositions per layer. In another embodiment, stacked heuristics may be used to give preference to next deposited cells 40 that have a larger distance (or an ‘ideal’ distance given machine speed and necessary cooling delays) from the previous deposited cell 40. In yet another embodiment, the order of deposition can be selected to achieve a desired build speed for the metal component (e.g., maximum speed).
In one embodiment, the timing and/or order of deposition can be based upon a profile of physical characteristics of the metal component being manufactured. In such an embodiment, the timing and/or order of deposition can be selected to ensure that each deposited cell 40 is deposited in an area that is cool enough to receive the deposited cell 40. To that end, in some embodiments, the interpass temperature (i.e., temperature of the metal component prior to an additional deposited cell being welded to the metal component) can be controlled based on, for example, the timing of each weld or the order of deposition. Control of the interpass temperature affects the desired geometric shape and material properties of the metal component. Multiple techniques may be used to control the interpass temperature, as discussed below, and more than one technique may be used at a time. In an embodiment, the fabrication process includes a time-based delay between welding of each deposited cells 40. For example, the deposited cells 40 may be applied periodically. The time-based delay may be based on, for example, the interplay between the cross-sectional area of the sliced component in the current deposition surface (e.g., the surface area of the layer currently being deposited, in mm2), the temperature of the metal component (e.g., measured or predicted in ° C.), and a delay time (e.g., in seconds). As the cross-sectional area decreases, the temperature of the component was observed to increase. Delaying the welding of the next deposited cell 40 reduces the overall heat input and, consequently, the temperature of the metal component. Smaller cross-sectional areas may require longer delays between each weld. The time-based delay between the welding of each deposited cell 40 may be on the order of seconds. For example, the delay between each weld may be on the order of seconds in the single digits. The length of the delay may be constant or may vary over time. In an embodiment, the length of the time delay can vary based on changing characteristics of the component as it is built. For example, the length of the time delay can be adjusted based on changes in component temperature, the cross-sectional area of the current layer being deposited, energy input associated with the deposition parameters of each deposited cell 40.
In some embodiments, a predictive algorithm or model, such as one discussed above, may be used to determine or adjust the deposition order and timing. Using such an algorithm or model, the sorting and timing of the deposition of each deposited cell 40 may be determined or adjusted to reach a goal, such as minimizing thermal gradients throughout the component, maintaining a certain cooling rate, reducing or evening out residual stress, or producing maximum overhang. The algorithm or model may be adjusted based on feedback of the build process. A process for such adjustments is explained in connection with
In another embodiment, the timing and/or order of depositions can be controlled based on feedback from the welding system 14. For example, the welding system 14 may include a temperature sensing device associated with the controller 36. The temperature sensing device may be, for example, coupled to the weld gun 24 or the articulated robot 26. Examples of the temperature sensing device include, without limitation, an optical pyrometer, an infrared (IR) thermometer, etc. The temperature sensing device is configured to measure the temperature of the welding pool. The user may define a maximum interpass temperature. The maximum interpass temperature may vary and, in some embodiments, may be in a range of 0° C. to 2000° C., 0° C. to 1000° C., 0° C. to 500° C., 0° C. to 100° C., 100° C. to 500° C., 100° C. to 1000° C., 100° C. to 2000° C., 200° C. to 500° C., 200° C. to 1000° C., or 200° C. to 2000° C. When the weld gun 24 is moved to the next position, controller 36 receives the newly measured temperature form the temperature sensing device. If the temperature is below the maximum interpass temperature, the weld gun 24 can weld the next deposited cell 40. If the measured temperature is above the maximum interpass temperature, the system may perform one of two operations. First, the controller 36 may delay the next weld until the measured temperature is below the maximum interpass temperature. Second, the controller 36 may move on to the next planned cell in the program, with the intent of returning to the skipped cell at a later time, which allows the portion of the metal component that is too hot to cool down prior to welding the skipped cell. Thus, because any delay between welding the deposited cells 40 is based on temperature, the time between each weld may vary (e.g., not be periodic). (
In another embodiment, the temperature sensing device may include a thermal imaging camera. The thermal imaging camera can be configured to measure the temperature of a relatively larger portion (e.g., compared to an optical pyrometer) or the entirety of the metal component. The controller 36 may be configured to determine whether the temperature of the area intended for the next deposited cell 40 is above or below the maximum interpass temperature as discussed above. Additionally, because the temperature of a larger portion of the metal component is being analyzed, the controller 36 may be configured to measure and analyze localized thermal trends. The thermal trends may affect the order of the upcoming welds. If, for example, the controller 36 sees that the area for an upcoming weld is above the maximum interpass temperature, the controller 36 may proactively move to the next weld that has a temperature below the maximum interpass temperature. (Refer to
While the above embodiments are described in a welding application, the technology is not so limited. The benefits of simplifying programming, reducing thermal stresses and distortion, and reducing personnel/operating costs apply across many applications. The embodiments as described above may be applied in additive manufacturing applications such as laser/powder directed energy deposition, laser/wire directed energy deposition, laser powder bed fusion, binder jetting, cold spray, or a combination thereof. While the embodiments as described above are directed to metal materials, the materials useful in the embodiments can include, without limitation, metals, alloys, ceramics, plastics, composites, glass, and a combination thereof. Further, these techniques may be applicable in painting, repair, and other robotic sorting applications.
A three-dimensional space may conceptually be subdivided into an array of finite-sized elements of volume called ‘voxels’ that each have a particular location and bounds within the three-dimensional space, in much the same way that a two-dimensional raster image may be subdivided into ‘pixels’ that are indexed or arranged by row and column.
As used herein the term ‘single-mass transfer’ refers to a depositing of material, either onto a substrate or upon previously deposited materials, as a consolidated single mass. A single-mass transfer event will generally correspond to a single instance of energizing the given mass of feedstock material as the mass becomes integral to the ‘workpiece’ or part being formed through an additive process. A single-mass transfer may also be termed a ‘unitary deposition’ or ‘unitary mass transfer’ event and the material so transferred may be termed a unitary deposit. Such action may correspond to filling a voxel space, especially when the voxel spaces that subdivide a build space are roughly matched in size to the range of singular deposit sizes that a given depositing component supports.
In accordance with preferred embodiments of the present teachings, each instance of a single-mass transfer will entirely or substantially fill a voxel space having planned boundaries in XY and depth in Z. In general, as an object is constructed from approximately planar layers of deposited material, each voxel to be filled will have a height equal to a layer height which is also the vertical increment by which the movement of the depositor(s) will be placed further away from a build surface as one layer is completed and a next layer is to be commenced.
Thus, in the course of build a layer of material, a deposition performed by single-mass transfer preferably creates, in a single momentary emission as a consolidated mass, a deposit of material that fills the voxel to the designated layer height. Preferably, therefore, a build layer is formed from a monolayer of adjoining material deposits. In accordance with preferred embodiments, the depositing element need only perform such a deposition once at each designated nominal X-Y location in the course of filling a given layer. In accordance with a preferred embodiment and as will be explained in conjunction with
The mass being deposited may be energized by, for example, pressure, heat, release of energy due to phase change or the release of chemical potential energy. Sources of heat to energize transferred matter may include, but are not limited to, electrical current flow and ohmic heating, conduction, radiation, convection from other heat-laden sources, electrical arc or plasma, combustion flame, sonic energy, friction, electrical inductive heating or electromagnetic radiation, such as photonic energy or radio waves. The mass being deposited may be energized by any one of the above or by simultaneous or sequential combinations thereof.
As illustrative examples,
Depositing device 1420 may comprise electrodes and additional passages (not shown) for carrying a shielding gas. A flow of an inert shielding gas may be directed into the vicinity of the where wire 1424 will make contact with substrate 1410 and this flow may need to commence some time before the deposition (pre-purge) and continue for some time afterward (post-purge) prevent unwanted oxidation. (If applicable, the times to conduct pre-purging upon arrival at a nominal deposit location and to dwell at the location for post-purging shall be assumed to be included in the overall cycle times depicted elsewhere herein, such as in
The end of the wire is thrust towards the substrate and, having been heated by the arc, deforms and fuses with the substrate to form a cooling deposited mass 1425. As shown in panel (iii), wire 1424 is withdrawn and separates from deposited mass 1425 which has been transferred to, and become part of, the substrate. The short circuit now having been opened, electrical arc 1430 can be resumed. In the context of the present teachings, the depositing device may move to a different location prior to restarting the electrical arc.
Thus, a single, consolidated mass is delivered in a single action by the depositor at a given location contributing to the formation of a layer, preferably a monolayer, comprising many such deposits.
Within array 1500, an alternating regular arrangement of designations of the voxels is represented in that a first subset 1502 are designated with the letter ‘A’, a second subset of voxels 1504 are designated with the letter ‘B’, and a final subset 1506 of the remainder of the voxels are designated with the letter ‘C’.
The layer shown is part of a general field of voxel boundaries just showing a hypothetical solidly filled pattern. Generally, only a subset of such an array will be needed to form an object shape for a given layer. Object-specific layer contours, derived from ‘slicing’ a digital data model representing the three-dimensional shape of the object, are to be imposed as explained elsewhere herein conjunction with
The hexagonal outlines approximate the mating interfaces as roughly spherical or cylindrical deposits are placed in close proximity. For practical purposes, describing and manipulating each deposit as a hexagonal shape simplifies calculations during modeling and simulations.
It is important to note that, even though the array of Tillable voxels shows adjoining positions, the voxels need not be filled in a consecutively sequenced, side-by-side manner. In fact, in accordance with the present teachings, notable advantages are achieved by avoiding such a pattern of consecutive deposits that are physically adjacent. In many material deposition techniques, such as cold metal transfer, substantial heat energy may be imparted to a substrate as energized deposits are made. Even distribution of heat energy across a layer and over time is considered generally desirable to avoid hot spots and extreme temperature gradients, thereby reducing stresses within the object being constructed.
One way to generally assure that heat-carrying deposit events are distributed both spatially across a layer and temporally in terms of sequence is to designate groupings of voxels as shown in
The voxels are labeled ‘A’, ‘B’ and ‘C’ in a pattern such that each unit is surrounded only by voxels having a different label. For example, no ‘A’ voxel is adjacent to another ‘A’ voxel. This pattern is referred to herein as ‘soccer sort’ because the intermeshing of groups of hexagons resembles the manner in which like-colored panels on a soccer ball are separated by a complementary color rather than adjoining one another.
Applied in the present context, in a one-dimensional time-ordered sequence of locations at which deposits will be made (as planned by the operation of sorter 78), the placement of two consecutive deposits in contact with one another, which would undesirably concentrate heat in one vicinity within a short period of time, is averted by simply arranging the sequence to cause all ‘A’-designed locations to be filled by material deposition, followed by ‘B’ and ‘C’ locations.
As deposits are made according to ‘A’-designated locations (subset 1502), each deposit is isolated from any side-to-side contact and heat mainly dissipates by conduction into the underlying substrate or underlying layers of the same build. (See
Record 1640 is merely illustrative and may, in some implementations, comprise a lesser or greater number of fields or may comprise alternative fields. The data fields shown for record 1640 may be distributed among other structures, such as separate tables within a relational database. Record 1640 is shown to comprise a ‘Tool’ field 1604 which may be useful when multiple depositors or other effectors are in use. A ‘Point Name’ field 1605 may contain a textual name or other convenient reference to uniquely specify a voxel space. A ‘Mass’ field 1608 and an ‘Energy’ field 1610 may express the amount of material to be deposited and the amount of energy to be imparted in making the deposit while at the nominal location specified in location field 1606. While these fields are shown as examples, it is contemplated that these fields may be replaced by such data as expressions of material feed instructions to a motor (perhaps driving wire 1424 forward) or by welding current and time duration (corresponding to a specified total energy delivery into the deposited mass). An estimated time-of-arrival or ‘ETA’ field 1612 may optionally be included to indicate the time within the build that the specified deposit is expected to occur. Although, this can be estimated or calculated without a dedicated field within a record 1640, this stored value may be beneficial for dynamic collision avoidance when fabrication system 10 is implemented with multiple independently moving depositors.
Aside from being ‘time-ordered’ in a sense implied by being a ‘sequence’, the ‘time-ordered’ aspect recited herein also acknowledges a possibility of including, in each instruction record, a time-related data field indicating when the deposit will occur. This field can be used as an ‘ETA’ of sorts to estimate cumulative build times or as an explicit command or an encoding for a specific time that a deposit should occur. In the case where multiple separately moving depositors may reach into a shared space, the inclusion of timing information allows for detecting collision possibilities, especially when an unplanned delay affecting one subsystem during a build may shift timings and create new potential collision instances. The embedded timing information can help detect collision risks and then be edited, along with dynamic re-sequencing of the list, to avert interferences and allow the build to continue.)
A ‘Dwell’ field 1614 may be included to encode for a time delay between deposits or before or after each location-to-location move corresponding to various delay times that will be explained in the context of
Notably in
Even among the ‘A’-designated locations it is possible to further scatter and distribute the injection of energy into the part to improve the evenness of energy injection and resultant temperature rises. Furthermore, in consideration of the finite travel time that it takes for the machinery of fabrication system 10 to move a depositor from one location to a next location, there is a trade-off involving the distance of travel between successive deposits and the time that it takes to make such moves. Even though it may be possible to arrange a sequential list to cause consecutive deposits to be 20 or 50 voxel compartments away in the voxel pattern and the depositor could jump back and forth over considerable distances further increasing the distribution, the overall time to build a part would start to increase excessively. Accordingly, it is contemplated that, depending on part geometry, there may be optimal distances between successive deposits—even within each subset of ‘A’, ‘B’ or ‘C’-designated voxels—to achieve both evenness of heating and reasonable tool travel times. In view of cooling behaviors, there may be an optimal average travel time and distance to allow between instances of discrete material deposits for each given layer of a given part.
As a result of the sequencing approach taught by way of example herein, a general pattern is established wherein: a first-applied group of the deposits to form a given layer will be each made upon a substrate or previously deposited layer and, at the time of being deposited, will not be formed in contact with other deposited materials within the same group; a secondly-applied group of the deposits will be made in contact with the substrate or previously deposited layer and also in contact with at least one previous deposit from the first-applied group; and a thirdly-applied group of deposits will contact the substrate underneath, as well as at least one of the prior deposits from first-applied group and at least one of the prior deposits from the secondly-applied group. In a given layer, there may be exceptions depending on part shape and voxel pattern alignment, but the majority of deposits forming a layer (or a build comprising multiple layers) will fall into one of these categories. As layer of deposited material is formed in accordance with preferred embodiments, the proportion of deposits that can, by proper sequencing, be formed in adherence to the general principle of assuring non-adjacency of consecutive deposits may often be 100% or may fall in the any of ranges of 50% to 100%, 60% to 100%, 80% to 100%, 90% to 100%, 80% to 90%, 80% to 95%, or the like.
Next, model layer slice 1814 is combined with, or compared to, what may be termed a ‘cell field’ or a ‘voxel pattern’ 1804 which may resemble the pattern shown in
A listing of the shaded voxels and their specific locations within pattern 1804 form a ‘raw’ list of voxels 1877 for inclusion but as yet the sequence in which the voxel spaces are to be filled with material has not been established. The arrangement of required voxels into a specific order is performed by sorter 78 as described earlier in conjunction with
The operation of masker 1876 may include evaluating multiple different alignments between pattern 1804 and contour 1802 and selecting a specific alignment that efficiently fulfills a given contour 1802 by material deposition according to specific voxel spaces. Processes for performing such refinements by masker 1876 are later shown and described in conjunction with
The output of masker 76 will simply be an indication of which voxel spaces in the pattern need to be included in the layer so that material will be deposited at the corresponding locations. This information is then provided to sorter 78 (shown in
The shaded set of required voxel locations for providing material along contour 1902 and providing solid infill are identified in a sequential list of voxel locations 1920, generated by compiling the list of the shaded voxel spaces (by the action of masker 76) then by sorting into a one-dimensional sequence by sorter 78. Note that, for list 1920, only the voxel label and XY location data fields are shown though, in actuality, each record in list 1920 will resemble record 1640 and comprise other fields.
Referring briefly back to
Another useful consequence of creating a time-ordered sequential list by applying a soccer sort pattern 1500 as a default is explained in connection with
It is noted that with, polymer extrusion 3D printers for example, it is possible to encounter situations in which an extruder fills a small interior space then moves without extruding (‘travels’) to another location perhaps to fill another tiny interior space. Filling the small interior spaces may call for moving the extruder along a small tool path, resulting in brief but continuous extrusion over more than the width of the extruded bead, but it is conceivable that an extruder could be directed by slicer-generated instructions to deposit a miniscule trace. In polymer extrusion or bead-forming weld process, these short-deposit occurrences are incidental or minimal and are generally avoided because of the inherent inefficiency of having an extruder waste time moving yet accomplishing very little volume filling. Slicers often disregard the filling of spaces that are below a threshold size and, in all such cases, the slight void to be filled is surrounded by extruded traces rather than other adjoining pinpoint-filled areas. With these common bead-forming processes, the overwhelming majority of the part is designed to be efficiently formed by depositing of material as the depositing element moves along a path to form a continuously deposited bead. In contrast, the present teachings recognize and maximize certain advantages of intentionally non-continuous deposition that have been heretofore unappreciated, such as fine temperature management by resequencing of scheduled unit deposits, enablement of enlarged unit-deposit volumes and improved coordination opportunities when multiple robotic depositors collaboratively build a single part. Consistent with the present teachings, the formation of a continuous bead is de-emphasized in favor of achieving a roughly formed blank part to undergo subsequent machining while realizing other compelling advantages explained herein.
Typically in accordance with preferred embodiments, when a part is built in sequential layers or strata, a first deposit that has been made in the course of depositing a first layer will not receive any other mass deposited on top until all of the other deposits for the first layer have been completed. In other words, a typical sequencing of deposits encompassing two layers may involve, within a first layer, a first deposit, followed by at least one second deposit and preferably several more intervening deposits that are also within the first layer but not deposited in contact with the first deposit. Preferably after these other non-contacting deposits are made, at least one third deposit is made as part of the first layer that does contact the first deposit, and then any other deposits (some of which may contact the first deposit and others may not contact the first deposit) are made to complete the formation of the first layer. After the first layer is completed, a second layer may be built by continued deposits onto the first layer and one or more of these second layer deposits may make contact with the ‘top’ surface of the first deposit.
It is acknowledged that in some systems, such as those employing multiple independently moving depositors, it may be possible to commence a second layer in some areas of a build even while a first layer is still being completed. The general pattern will be that a first deposit becomes surrounded by other deposits of the same layer before another deposit, such as from a subsequent build layer, is placed on top. This is in keeping with the general principle that each deposit completely fills an assigned voxel space defined by the layer thickness and that a unitary mass transfer sufficiently fills the voxel space such that only one mass transfer is needed at each distinct nominal location within a given build layer.
Once an instruction has been retrieved, then step 2112 is executed to move the depositing device to the location coordinates listed on that line, in an action analogous to
If and when, in step 2116, a deposit at the nominal location is detected to have been successful, then the flow of execution proceeds to another decision step 2120 to determine whether all deposit locations in the sequential list have been processed and, if so, process 2100 concludes in step 2121. Reaching this point signifies that all discrete deposits ordered for the subject layer have been completed, at which point the system may move to the next highest layer in the build, if any, and repeat all the steps above until all layers needed for the part blank have been completed. If on the other hand, in step 2120, it is determined not all locations in sequential list have been processed, execution, optionally and in accordance with preferred embodiments, proceeds to step 2122 to assess the conditions of the system at large, or of the workpiece, as a result of the most recent deposit accomplished in step 2114. This may include assessing temperatures of the part, build stresses or other factors. While it is possible to simulate or predict many conditions that will be encountered before a build takes place, it is possible for some unforeseen circumstances to affect temperatures across an object being built. These sources of variation may include differences in convective airflow or forced airflow, the electrical resistance path through underlying layers of the build when welding currents are applied, concentrations of mass on previous layers underneath the current layer that is being built and variations in energy input to the mass that is being transferred, to name a few.
In step 2124 and based upon observations gathered in step 2122, a decision is made as to whether there is a need to delay the next deposit, such as to alleviate problems with undesirably high temperature buildup in some areas. Delaying new deposit events for a time may allow the energy that has been thus far transferred into the workpiece to dissipate for a time, allowing the part to cool off before additional deposits of material. If no delay is deemed necessary or beneficial for the build process in step 2124, then execution simply returns to step 2110 to retrieve the next deposit location from the time-ordered sequential list and to move to a different deposit location which would correspond to the action of moving to a next location some distance away as shown in
Plotted along the same time axis as trace 2210, ‘depositor motion’ trace 2220 indicates, at a given time, whether the depositor is being moved by the system to a specified deposit location or is remaining at one of the nominal locations. Over a first time span 2240, the depositor is indicated as being in motion to approach the location for a specified deposit. During this time, the depositor is not depositing any material. At a first point in time 2250, the depositor comes to rest at a first nominal location at which to perform a deposit. While the depositor remains substantially at the nominal location during time intervals 2241, 2242 the depositor remains effectively stationary or within the bounds of nominal location ‘N’. While there, as shown by depositing action trace 2210, the depositor performs a material deposit action as indicated by a pulse 2205 in time interval 2241. After this depositing action and during interval 2242, the success of the deposit and, optionally, the conditions of the process may be assessed as described in steps 2116 and 2122 of process 2100. At time 2251, upon sensing a successful deposit and no conditions warranting a delay, the location of a next deposit ‘N+1’ is obtained from the sequential list (returning to step 2110).
Then, during time interval 2244, trace 2220 reflects that the system moves the depositor to location N+1 and comes to a stop there, whereupon another depositing action occurs during time interval 2246 and another assessment is done to assess the success of deposit ‘N+1’ during time interval 2248 before moving on to yet other deposits.
Turning now to
Finally, in
Referring now to
In
To demonstrate the opposite effect,
Considering all of the pairings of consecutive deposit instructions in an ordered list, it is preferred that any candidate rearrangements exhibit an acceptable proportion or percentage of ‘non-contacting’ pairings wherein the respective voxel spaces do not intersect or share any common faces, implying also that any materials filling these voxel spaces by consecutive discrete deposit actions do not make physical contact. Even with possible constraints imposed by part shape and thermal management, the percentage of non-contacting pairings of consecutive deposits should be maximized during rearrangement. In accordance with preferred embodiments, the percentage of non-contacting pairings achievable by rearrangement should reach ranges such as 50% to 100%, 60% to 100%, 70% to 100%, 80% to 100%, 80% to 90%, 80% to 95%, 90% to 100%, 95% to 100%, 97% to 100%, 99% to 100% and 99.9% to 100.0%. As an alternative assessment related to the distancing of consecutive deposits, each ‘non-contacting pairing’ may be defined by identifying vicinities around each of the respective voxel spaces bounded by a boundary distance ‘D’ from the nominal location of each voxel space and then determining that non-contacting pairing when the distance between the nominal locations is greater than three times the boundary distance ‘D’. Under this definition, the percentage of non-contacting pairs achievable by sequence rearrangement are comparable to the ranges listed above. Any computer or data processing context set forth herein may host a process for performing a rearrangement of deposit instructions as just described and the process may be encoded as software and embodied as one or more computer programming code segments present in non-transitory computer-readable media. Computer programming code segments residing on the non-transitory computer-readable media may also provide logic for invoking the rearrangement under conditions explained herein.
If the output of a masker 76 and sorter 78 has created an initial sequencing in which, for example in
This attribute of flexibility is further illustrated with reference to
One contemplated mechanism for resequencing is culling out specific voxels that are in problematic areas and simply moving them to the end of the sequential list and performing them after the remainder of the voxels have been filled. Among these transplanted instructions, re-sorting or delay could be imposed if they happen to be too close physically. Another possibility contemplated is to place specific deposit locations later in the sequence but to favor re-inserting each deposit location at a position in the existing sequence when the depositor happens to approach the vicinity of the displaced deposit location while addressing other originally scheduled voxel-filling instructions.
Many algorithmic approaches are contemplated for performing rearrangement of instructions in the sequential list and arriving at a suitable final sequencing, whether fully composed before a build, retouched during a simulation or modified in the midst of an ongoing build. An intuitive, goal-driven rearrangement, as was conceptually depicted in
Yet other techniques for evaluating possible sequences and more effectively reaching a ‘global optimum’ over a layer or entire build may rely on a more stochastic or probabilistic approach. A general ‘goodness’ score can be assessed (for example, based on reduced build time and improved compliance with a thermal profile) for a proposed arrangement of deposit instructions, and then myriad re-arrangements can be tried to reach an optimal or acceptable score. Some techniques may start from complete randomness, whereas others may start with the organized list produced by sorter 78. The explorative algorithms or heuristics may then perturb the starting arrangement with minor changes and recalculate the score, systematically testing a large number of sequences in constant pursuit of a ‘better’ alternative sequence having an improved score. In some techniques, a trend in improved scores may be detected to result from a certain pattern of action, such as concentrating deposit occurrences in a particular place and time. Once this phenomenon is recognized, an iterative goal-seeking algorithm or genetic algorithm may continue to explore adding other similar alterations until no further score improvement is achieved.
In conventional extrusion or welding type additive manufacturing systems, a material-depositing element, such as an extrusion nozzle or a wire welding tip, may be used to place a continuous bead of a build material on top of a previously formed layer, with additional feedstock being transferred through the material depositor as it is moved laterally along the top of the previously formed layer.
For building large parts, one may desire to engage multiple, independently-moving robotic depositor subsystems to operate collaboratively and with overlapping ranges of motion. This has been difficult to achieve in practice with linear extrusion systems, where the emphasis has been on bead continuity and steady, uninterrupted motion to assure contour adherence and part strength.
However, by virtue of using discrete, sequenced deposition events to make ‘near-net’ blank parts, the isolable tasks of filling each planned voxel space to fill a layer may be readily delegated among multiple material depositor subsystems. Sequencing of reaches into shared spaces can be freely coordinated (because of the ‘granularity’ of discrete deposit scheduling) or interleaved in the time domain without the constraints imposed by linear motion and bead continuity.
Moreover, the apportionment of voxel-filling responsibilities among two or more overlapping material depositor subsystems can be shifted, either (a) before a part build based anticipated thermal behavior or stresses as simulated using finite element analysis, or (b) dynamically during the part build based on real-time thermal observations as deposits add heat to the part. This shuffling of ‘which effector handles which voxels’ can provide additional control of part temperature profiles. For example, as a first material depositor may shift to more frequent discrete deposit events to maintain temperature in a given vicinity, adjacent effectors may take on added duty for filling voxels that were within a shared reach domain with the first effector, effectively offloading some burden from the first effector and optimizing the total build time for the part. Alternatively, assuming a region of the build that needs more frequent deposit events to maintain a desired temperature happens to be within reach of multiple material depositing subsystems, those subsystems may share the burden of frequently addressing voxels (thereby injecting heat) within the region while also tending to their respective tasks of filling voxel spaces outside of the commonly-accessible region. As yet another advantage, the use of multiple effector systems operating in a common space enables interspersing and gradient-building involving multiple materials or alloys.
Where each subsystem is shown to be communicably linked with central coordinator 2610, this may literally correspond to data communications links or may represent inter-process communications among processes hosted within a common processor or a community of linked processors. The communications from central coordinator 2610 to, for example, subsystem 2620a are represented as downlink 2630 by which central coordinator 2610 may convey deposit location instructions that are specific for that subsystem. An uplink 2632 is also depicted as a direction of communication by which each subsystem may report its operational status or indicate its readiness to receive a next deposit location instruction. Central coordinator 2610 may be said to execute, host, perform or encompass any of the processes depicted elsewhere herein, including the processes that divide an overall list of deposit locations for a build or a build layer into respective per-subsystem queues. Central coordinator 2610 may generally monitor the operational status and per-deposit success of each of the subsystems. Central coordinator 2610 may act upon one or more sequential lists of deposit locations such as by adjusting delay times between deposits, dynamically re-sequencing of deposits location lists or reassigning certain voxel among subsystems to improve build efficiency and resiliency to faults arising during a build. Central coordinator 2610 may also provide an end user interface or ‘dashboard’ which may include build time estimates that are updated as a build proceeds and may be affected by delays introduced by thermal characteristics, emerging conditions or occasional misfires or the need to change out tool tips or feedstock materials.
As shown in
Central coordinator 2610 may comprise, host or have communications access to a build timer 2615 that steadily increments a count representing the passage of time. Build timer 2615 may be reset or initialized by the central coordinator 2610, such as when a build process is commenced. Build timer 2615 is available as a general timing reference and may be used, as described later herein, to compare with stored or calculated ETA values for specific deposit events. Central coordinator 2610 may compare expected deposit times, expressed in terms of time offset from the beginning of the build, to the value of the build timer as the actual build process progresses. As will be shown, build timer 2615 plays an important role in assuring synchronization among the independently moving subsystems.
Build timer 2615 may increment according to any arbitrary time unit, including seconds, milliseconds, microseconds or any non-standard intervals such as periodic pulses from a free-running electronic resistor-capacitor (RC) oscillator or a crystal-regulated oscillator or external time base. Build timer 2615 may be implemented as a data location in memory within a computing platform hosting other functions of central coordinator 2610 and may be incremented by software processes that are somewhat dependent on the clock frequency of the processor or the incrementing of the timer value may be interrupt-driven by an external time base. Because ETA values for deposit events are to be compared to build timer values as a build proceeds, it is preferable that the resolution and format of these time values are compatible. Furthermore, if the frequency of incrementing build timer 2615 were to change, then the time interval between deposit events would change proportionally. In general, built timer 2615 will conform to a steady, standard time period between increments, such as milliseconds or tenths of seconds, and any planning of deposit frequencies, especially where deposition rates and thermal responses have been simulated beforehand, will be predicated on build timer 2615 operating during a build process just as it was presumed to operate during the simulation. Although, build timer 2615 could be implemented as a simple event counter that counts sequential deposit events independently of time, the reliance on time is considered preferable in support of time-sensitive thermally-significant deposit schedules. Collision avoidance logic explained below is also dependent on time, as such, due to the movement speeds, acceleration/deceleration profiles and inertial characteristics of the robotic arm subsystems.
Based on the anchored location of pivot 2711 relative to the build space, the maximum ‘reach’ of robotic arm assembly 2710 is depicted by dotted line 2717, which outlines a region within which effector tip 2715 can be moved and actuated to deposit material. Whereas dotted line 2717 shows the limits of where effector tip 2715 can reach, a second dotted line 2718 represents an additional margin by which robotic arm assembly 2710 physically extends beyond the effector tip. This is important to consider as two robotic arms may suffer a collision even without aiming for the same effector tip location. Depending on the shape of the robotic arm assemblies and of the sizable deposition energy sources, tip actuators, material feed channels, cover gas delivery systems etc. each arm assembly may require a significant additional ‘safe distance’ margin surrounding the effector tip.
For robotic arm assembly 2730, which comprises analogous components and involves comparable operating motions as was described for assembly 2710, a separate dotted line 2737 depicts the region reachable by effector tip 2735 and dotted line 2738 shows the corresponding additional margin that must be allowed for clearance around other protruding parts of the assembly 2730 as it extends the effector tip 2735 to locations approaching dotted line 2737. As an important observation from
To illustrate this point with a specific scenario, several deposit locations, exemplified by deposit location 2760, are shown scattered within the build space and labeled as ‘J1’ through ‘J5’, for locations slated to receive deposits from assembly 2710, and ‘K1’ through ‘K5’, for those locations to be handled by robotic arm assembly 2730. (The scattered distribution of these waypoints is consistent with the principles described earlier in conjunction with
Parenthetically, a partial hexagonal pattern 2704 is shown in
To accompany the explanation of a potentially problematic scenario,
The remaining features of
Process 2900 commences at step 2902 upon the designation of two specific robotic arm subsystems to be considered and the need to detect possible collisions among them based on their physical configuration and instruction lists. Execution immediately continues with step 2904 in which a mutual region of overlap is identified. Referring to
In step 2906, time-ordered lists (designated ‘J’ and ‘K’ for convenience) are obtained which, for the respective subsystems identified in step 2902, describe the locations at which deposits are to be made and at what times. Excerpts 2810, 2830 represent portions of the lists provided in step 2904.
Next, in step 2908, each record 2840 in the sequential list represented by excerpt 2810 is reviewed and compared to the boundaries of the overlap region identified in step 2904. A simplified list 2820 is compiled in which each record represents the time of entry of the first robotic arm into the overlap region as indicated by a time value in field 2822 as well as a time at which the first robotic arm moves out of the overlap region in field 2824. With reference to
In addition to the simplification or conversion of sequential lists of deposit locations into summaries of entry and exit times (lists 2820, 2860), an additional step 2912 is preferably applied to the data in list excerpt 2820 to provide for a margin in the time axis. In step 2912, a buffer time value is applied to the derived entry and exit times shown in fields 2822 and 2824, effectively expanding the apparent duration for which the first robotic arm assembly is within the overlap region. In this example, the time at which the first robotic arm is directed to enter the overlap region is adjusted by 1.5 seconds earlier and the time at which the first robotic arm assembly leaves the overlap region is augmented or adjusted to 1.5 seconds later. The buffer time of 1.5 seconds is arbitrary and may conceivably be adjusted depending on the attributes of the overall system, the subsystems and the operating speeds expected. By selecting a buffer time of 1.5 seconds, one is effectively instructing process 2902 detect any situations when two robotic arm assemblies will pass within a given proximity within a certain timeframe. In response to this detection of a near collision, additional analyses may be made to determine whether the overlapping times correspond to a certain collision, a high risk of collision or an acceptably low risk of collision. In some implementations, a time buffer of only a few milliseconds may suffice or time buffering may be unnecessary if sufficient measures are exercised in spatial margins and tool path planning to avoid collisions. By analyzing and perhaps modifying the exact tool paths of the respective robotic arm assemblies the identified collision possibility may be mitigated. It should be noted that, in comparing the timed deposit locations represented by excerpts 2810 and 2830 and compiling entry/exit time lists therefrom, it is only necessary to augment the time fields for one or the other of the robotic arm assemblies because where the data shows the two arms to be in proximity at approximately the same time it does not matter which of the two data sets is expanded in time—the same proximity in time and space will be detected in either case.
Whereas steps 2904 through 2912 have been preparatory in providing extracted data derived from the lists of deposit timings ‘J’ and ‘K’, the remainder of the steps in process 2900 pertain to performing actual collision detection calculations on the derived lists 2860 and 2850.
In step 2914, the intervals expressed in derived list 2850 are compared to each of the entry times 2842 and exit times 2844 within derived list 2860 to see if either of these fields in list 2860 fall between paired values 2852 and 2854 in list 2850. If this condition is found for any of the entries compared in step 2914, then step 2916 acts to branch the execution to reporting of the likely collision in step 2926, whereupon process 2900 may be concluded, signified by step 2928.
Returning to step 2916 if none of these fields listed in list 2860 have values that fall within the intervals indicated by each line item of list 2850, then step 2918 is undertaken to again compare list 2860 and list 2850 but in a reverse sense. Step 2918 corresponds to examining a value in each field 2852 and 2854 with respect to each interval expressed by each line or record in list 2860 to determine if either value in field 2852 or field 2854 fall within the limits of interval expressed between the values in fields 2842 and 2844.
Though similar, the actions in steps 2914 and 2918 are complementary and not redundant. The comparison of step 2918 detects movement of the first robotic arm subsystem into and out of overlap region 2780 within an interval of time when the second robotic arm assembly remains within overlap region 2780—in a way that would not be detected by the logic of step 2914 alone.
Similarly to step 2916, step 2920 is then performed to alter the course of execution based on whether any of the entry or exit times in list 2850 fall within any of the intervals in list 2860 and to report any such affirmative findings as possible collisions in step 2930. Depending on implementation, process 2900 may then halt further processing (step 2928) or append the affirmative finding to an overall list or report and continue searching for other collision risks by repeating the action of steps 2914-2920 for the remainder of the entry/exit timings. The logic presented in
Returning to step 2920, if it is determined that none of the entry or exit times listed in derived list 2850 fall within intervals expressed in list 2860 then, in step 2922, it may be reported that no collisions are detected among the two robotic arm assemblies if they are instructed according to the time-ordered lists that were provided in steps 2906 and process 2900 concludes in step 2924.
In all of
Each figure also depicts a second trace, such as lower trace 3020a, expressing, at a given point in time, whether the second robotic arm assembly is outside of the overlap region (by lower trace 3020a aligning with third level 3013) or is positioned inside of the overlap region as indicated wherever lower trace 3020a moves into alignment with second level 3012. In
By presenting the actions of both arms in this manner, it becomes visually apparent, as when both the upper trace and lower trace are simultaneously at the second level 3012, whether the first and second robotic arm assemblies will be ever commanded to be in the overlap region at the same time. This manner of presentation will assist in explaining various adaptive actions that may be taken while controlling multiple robotic arm assemblies to execute a build process using discrete depositions, including single-mass transfers.
As an additional feature in these figures, the transitions of upper trace 3010 between the outward or inward states (shown by levels 3011 and 3012) are depicted as hashed bands rather than singular lines, with the width of the hashed bands representing the temporal margin or buffer time comparable to the augmentation explained for step 2912. (As stated earlier, this time-domain ‘guard band’ could be applied to either trace alone or could be halved and applied to both.)
In
Depending on implementation, a control methodology for deciding how to best resolve timing conflicts may be biased against disturbing a group of critically-timed deposit instructions. A weighting factor 1616 shown earlier as an optional part of record 1640 may be used within the sequential list of deposit locations for the second arm to signify these deposits as being time-critical and potentially impactful (or ‘costly’ in a sense) to relocate. Weighting factors may be adjusted by, for example, simulation and optimization processes that implement the types of control measures described in connection with
In
If an area requiring more frequent deposits (for thermal or other considerations) is within the reach domain of the first arm but not the second arm, the first arm may be directed to maintain frequent deposits in the subject area while some of the first arm's assignments within the overlap region are reassigned to the second arm. Alternatively, if an area requiring more frequent deposits falls within a region where both arms can reach, the arms may be carefully coordinated to cooperatively address the heightened need without colliding.
In
If the deposit tasks transferred from the first arm to the second are not time-sensitive, the insertion point for the transferred tasks within the second arm's sequential list may be chosen based on when the second arm is already approaching the overlap region and will therefore incur minimal added travel time to include the added waypoints.
Subroutine 3100 is invoked by other processes that have detected a situation, such as an unexpected delay among one subsystem (as in
Subroutine 3100 commences in step 3102 when another process invokes subroutine 3100 because the calling process has detected an event that could impact expected times of deposit events and create a possible collision conflict or significant load imbalance among two or more robotic arm subsystems. The calling process may communicate, convey, or provide reference information leading to, context data specific to the request for tiered corrective action, such as pointers to data structures embodying the sequential lists of deposit locations (such as list 1600) for one or more robotic arm subsystems.
In step 3104, two or more sequential lists representing the planned actions for respective robotic arms are compared using process 2900 or the like to determine whether only a very minor issue has been introduced (as in
Returning to step 3106, if it is apparent that minor timing adjustments are insufficient or inefficient for addressing a detected conflict or load imbalance (as may be the result of quantifying overlap durations 3038 or having a heuristic indicate the unavailability of a low-cost solution) then the tiered treatment provide by subroutine 3100 is escalated to a more extensive approach, namely resequencing of deposit locations within one or more of the sequential deposit location lists that are at issue. The resequencing may involve evaluating many stochastic rearrangements, applications of genetic algorithms or the like until a suitable alternative sequencing can be found that is free of collision risks and is acceptable from the standpoint of, for example, anticipated thermal behavior. Where some deposit locations within the remaining deposit tasks for the build have been previously determined to be time-sensitive for achieving thermal objectives, these listed deposit locations may carry a relatively high weighting factor 1616 that will cause a resequencing heuristic to discount any tentative solutions that would call for disrupting the timings among this group of deposits.
Before engaging in resequencing alone, step 3110 is performed to assess whether there are deposit locations within the overlap region that are transferrable from one assigned robotic arm subsystem to another. If there are limited numbers of deposit locations that can be reassigned (perhaps due to part shape or due to thermally time-sensitive clusters) or if the available reassignments do not significantly help the situation or improve resequencing options, then step 3110 directs execution to step 3112 as what may regarded an intermediate tier in terms of rigorously finding alternative sequences and deposit timings that at least avoid collisions and preferably improve other aspects such as load balancing (as in
If, in step 3110, some deposit locations may be advantageously reassigned among robotic arm subsystems, then step 3110 directs execution of step 3114 next, wherein various resequencing possibilities may be evaluated while also considering variations of possible reassignments. In comparison to the analysis of step 3112, step 3114 represents a more sophisticated upper tier of treatment that may involve greater complexity but may also yield more optimal rearrangements of deposit location timings and assignments among multiple robotic arm subsystems.
As depicted in
Process 3200 commences with step 3202 upon the need to take at least one slice from a three-dimensional object model and to create a sequential list of instructions by which a depositor will be moved to specific locations in sequence and make discrete prescribed deposits at each location. Execution proceeds immediately to step 3204 referring to the process of obtaining a two-dimensional model slice which shows the contours of the object the height of that layer. This action was conceptually described in connection with
Step 3206 refers to the act of applying masker 76 to identify specific voxels from within a voxel pattern (such as generalized pattern 1500), while ensuring that there is material present everywhere along the contour of the object. After a finite set of required voxels has been identified, each having a unique two-dimensional location within the given layer, step 3208 is undertaken to sort the set of required voxels into a one-dimensional time-ordered sequential list. Sorter 78, shown
Once this time-ordered sequential list has been prepared in process 3200, then any of several subsequent processes take place. One such process that receives the output of process 3200 as an input or starting point is depicted in
Whereas process 3200 results in a generalized sequential list for forming one or more layers of a build which already reflects the aspect of avoiding consecutively placed adjoining deposits as was explained in connection with
In
In step 3312, the sequential list provided from execution of process 3200 is divided into separate sequential lists according to the reachable territory applicable to each of the robotic arm subsystems. To perform this partitioning, step 3312 involves receiving input, referred to as system configuration info 3313, describing the configuration of the multiple robotic arm subsystems in terms of, for example, their relative positioning, their reach, their geometries, the spatial safety margins needed around each moving robotic arm and the boundaries of the total build space.
Note that where multiple robotic arms have overlapping regions of reach, step 3312 may simply assign each deposit location within the overlap region arbitrarily to any one of the robotic arms that can reach into the space, perhaps with some consideration for proximity to other recently deposited locations in the sequence (to reduce arm travel time.) As of the time that step 3312 is initially performed, it is unlikely that any forehand knowledge of the dynamics of the build would cause particular deposit locations to be assigned in a certain manner among the available robotic arm subsystems. However, as other subsequent logic steps analyzes the tentative and proposed partitioning set forth initially by step 3312, then the resulting subset sequential lists may be refined as needed to avoid collisions and to achieve improved overall build performance.
In step 3314, the sequential lists tentatively assigned to each of the available subsystems are checked for conflicts in areas where the robotic arms overlap. A process for reviewing the subset lists and evaluating possible conflicts was explained in
Step 3320 concerns whether a specific build requires a pre-build simulation as may be decided by engineering personnel, for example, out of concern for the thermal or mechanical behavior of the part. Some parts may not need such a pre-build study while others may involve part shapes or build materials more prone to issues with thermal characteristics or material stresses and justify predictive modeling of the part before the actual build. If no simulation is deemed necessary then, in step 3320, execution continues along connector 3321 (labeled ‘BB’) to proceed with the build as will be discussed in connection with
The overall result of process 3300 is a set of sequential lists for controlling each of the multiple robotic arm subsystems. These lists have undergone screening and are coordinated in time to be free of collision risks and, if required, are also sequenced and timed in consideration of thermal behaviors. Process 3300 is considered a preparatory process readying a set of coordinated sequential lists before the time of an actual build.
In contrast,
Process 3400 mainly describes the interaction between the central coordinator 2610 in each of the subsystems comparable to the communications depicted by the information flows 2630 and 2632 that were presented in
In process 3400, step 3402 pertains to preparing a system to execute a build process which involves physical tasks such as bringing any heated parts of the system to their target temperatures, establishing any atmospheric conditions such as flow of inert gases, zeroing or initializing the axes of various motion-controlled apparatuses, calibrating the positions of the arms, etc. This initial effort may also involve loading feedstock into feed tubes and material feeding or driving mechanisms, etc. Depending on what material depositing technology is used (see
In particular, in the context of multiple robotic arms performing discrete deposition processes, step 3402 involves loading the sequential lists of deposit locations that pertain to each of the subsystems into their respective queues 2612. It is envisioned that central coordinator 2610 will maintain a set of data structures in memory that represent the sequential lists and that step 3402 will include acquiring or loading the data from non-volatile memory or the like and having those data structures on hand for use in context of the steps that follow.
In step 3404, build timer 2615 or the like may be initialized to serve as a timing reference so that central coordinator 2610 can appropriately pace the actions of the respective subsystems. Build timer 2615 may present time in terms of, for example, milliseconds or microseconds or any other arbitrary time format with sufficient resolution to detect and mitigate collision risks depending on movement speeds of the robotic arm assemblies. The value of build timer 2615 will be compared to the ETA values within each record for the build (analogous to record 1640) to coordinate the timing of deposit events and to sense whether the deposit events are occurring in agreement with the intended timings or are starting to deviate therefrom.
Step 3406 and the remaining steps in process 3400 relate to a cyclic exchange of communications between each subsystem and the central controller. Step 3406 pertains to providing one or a few deposit locations to a subsystem from the queue maintained by the central coordinator for that subsystem. The deposit location instruction received may resemble a complete record 1640 or may comprise only the fields necessary for the subsystem to carry out the instruction.
In step 3408, the subsystem moves to the location specified in the instruction that was received in step 3406. If an implementation allows for conveying multiple deposit locations to a subsystem in a small batch, then step 3408 involves moving an effector to the first location or to a subsequent one, in sequence, of the locations received thus far.
In step 3409, with the subsystem having moved a depositing tool to the specified location (in an action comparable to
After the subsystem moves its effector to the location and performs a deposit action, the subsystem determines whether the deposit action was successful. In the case of the examples of single-mass transfer processes depicted in
For example, if a subsystem detects a simple misfire in a welding deposition process, the subsystem may fairly quickly reattempt the same deposit. In step 3416, the central coordinator participates in deciding whether the given subsystem should reattempt the deposit. When a subsystem has reported a problem and the controller has acknowledged the indication and responded, in step 3416, that the subsystem is instructed to reattempt the same deposit then execution passes to step 3418 wherein the subsystem will perform (generally automatically) any corrective action, such as scrubbing over the contact zone or touching a depositing tip against an alternative surface or a cleaning brush and returning to the specified deposit location, refeeding the raw material and simply retrying the same deposit and then again reporting its success or failure in step 3410. Note that it is important for the central coordinator to be kept apprised of the success or failure of the subsystem rather than allowing the subsystem to, on its own, reattempt the same deposit action an indefinite number of times. Step 3416 allows central coordinator 2610 to participate in the decision on how to circumvent or respond to a given fault experienced by the subsystem.
As another possible determination made by step 3416, the controller central coordinator may respond to a fault indication from subsystem by instructing the subsystem to neglect or ignore the deposit location at which a problem was observed by the subsystem and to return to the step 3406 and obtain a next deposit location. In some cases, the central coordinator may elect to allow the deposit location to go unfilled (if non-critical) or may reassign the deposit location to be handled by another robotic arm or by some other tool that may be able to correct the problem with the particular location. As a third possibility based on decision step 3416, central coordinator 2610 may respond to the subsystem that it is to take corrective action to fix or resolve the detected problem and to then notify the central coordinator when the operation is restored as indicated in step 3418. Upon an indication that proper operation has been restored for the subsystem, then the subsystem may, in step 3406, request its next deposit location from the controller.
As each of the subsystems continue to report the status of their material deposit activities, central coordinator 2610 reviews the overall conditions of the system and the build process in step 3422. At least as frequently as when a subsystem indicates a successful deposit at a specific time, central coordinator 2610 may evaluate the reported time of the deposit versus the expected time and determine whether any discrepancy between these values warrants timing adjustments or rearrangements within the sequential lists. Additionally, central coordinator 2610 may, at this juncture or periodically, assess the overall operational status of the system at large and monitor the condition of the build, such as by using infrared imaging, probing, strain gages, visual confirmation, or other sensing techniques. Adherence to desired thermal or stress conditions may be sensed by the coordinator itself or by adjunct signal processing systems communicating with the coordinator. If an undesirable condition or trend is detected by, or reported to, the central coordinator, then the coordinator may initiate timing adjustments or rearrangements of the sequential lists to correct or circumvent the issue. This aspect of the central coordinator logic is further explained in process 3500.
Also represented by step 3422 is the ability for central coordinator 2610 to compare pending task loads and estimated completion times among the active subsystems (explained in conjunction with
Although process 3400 appears to iterate indefinitely as the coordinator communicates with multiple subsystems, process 3400 actually concludes (effectively via an exit within step 3422 and as will be explained in
In complement to process 3400, which represents the high-level interaction between the central coordinator and each of the subtending subsystems,
Shown starting in
If all required deposit locations for a given layer have received deposited material, then the build process for the layer is deemed complete, at least on the part of the subsystem that provided the notification. When all subsystems have performed all of their respectively scheduled deposit tasks and no more deposit tasks for the current build layer remain in the queued sequential lists, then, by passage to step 3508, the process of building a layer is deemed complete and the execution of process 3500, at least for the one layer of the build, is concluded. At this point, the construction of a next layer may be commenced or, if all required layers have been deposited, the entire build is deemed completed and looped execution of processes 3400 and 3500 ceases.
If it is determined, in step 3506, that not all locations have been processed, then execution continues to step 3510 to examine the time according to build timer 2615 (initialized upon beginning the build in step 3404) versus the expected time for the deposit to have occurred as indicated in ETA field 1612 within record 1640 for the particular deposit location.
Step 3512 acts upon the time comparison of step 3510 and relates to calculating whether any significant time disparity exists between the time reported time of completion of the deposit reported by the subsystem versus the estimated time called for in the deposit location record. If a significant delay has been introduced as a result of executing the last deposit, step 3512 causes execution to proceed directly to step 3518 which amounts to invoking an instance of subroutine 3100, introduced earlier, to assess the impact of an unexpected delay and to take corrective action as necessary by resequencing or introducing delays as was described in connection with subroutine 3100. After such corrective action has taken place, then as shown by connector 3430 (labeled ‘E’), execution flow returns to process 3400, re-entering the loop of interaction between the controller and subsystems at step 3406.
Returning to step 3512, if it is determined that the disparity between the time reported by the subsystem for completion of the deposit versus the expected time is insignificant, then step 3514 is undertaken to assess the condition of the part being built or the workpiece or to review the operational status of the system as a result of the recent deposit. As explained elsewhere herein, this may entail performing infrared imaging or measuring stresses or other characteristics that may need to be controlled and may require throttling the pace at which subsequent deposits are occurring.
In step 3516, the determination is made as to whether the conditions of the workpiece are deviating from desired criteria, which may or may not match the build criteria 3323 that were set forth earlier during a simulation, if any. If no important deviations are occurring, then step 3516 causes execution to proceed through connector 3430 back to the point at which, in step 3406, the subsystem requests a next deposit location at the subsystem is to act.
If, on the other hand, in step 3516 it is noted that the workpiece conditions are significantly deviating from their intended limits, then 3518 is undertaken to invoke subroutine 3100 and perhaps re-simulate the behavior of the part (in a manner described for steps 3323-3326 of
The description of process 3500 is continued in
First, to describe the handling of minor faults, such as momentary misfires that may be handled by fast automated recovery, step 3520 causes branching to the execution of step 3522 wherein the number of consecutive error reports from the same subsystem are evaluated and, for example, compared to ‘maximum retries allowed’ threshold as may have been established by a manufacturer or operator of the system. Though not explicitly shown, this implies the presence of a per-subsystem counter, such as a data value in computing memory, that may be reset, incremented and compared to the threshold value, which may also be a value stored in memory and accessible to a processor executing the instructions that implement process 3500.
If, in step 3522, the unsuccessful deposit is only a first attempt or at least has not exceeded the maximum retry threshold, then, in step 3524, the coordinator signals the subsystem to proceed with retrying the deposit at the same location (See
In the particular logic flow implementation shown by way of example, the fault-affected subsystem remains at the last-assigned deposit location and is still tasked with making a successful material deposit at the location where the fault was reported. Accordingly, step 3409 is the return point into process 3400 (signifying the re-attempt and success reporting) rather than step 3406 in which the subsystem would request a ‘next’ deposit location. Other logic flows are possible, for example, wherein the fault-affected subsystem must re-acquire the deposit task or move back to the location (step 3408) after having moved away either in anticipation of likely success (as in
As another alternative to the specific logic flow shown, the evaluation of collision risks may be suspended until the subsystem reports a successful reattempt, at which time the full impact of one or more reattempt delays can be assessed in a single, conclusive pass rather than performing steps 3526-3528 for every re-attempt at the same location.
Returning to step 3526, if the retry delay results in a collision conflict, then step 3528 is applied, essentially calling the ‘tiered corrective action’ subroutine 3100 to review the situation and act upon the sequential lists involved in the conflict. After subroutine 3100 has performed any needed actions necessitated by the delay, then execution continues, via connector 3432, with step 3409 as the affected subsystem re-attempts a deposit at the same location.
As a second pathway through the logic shown in
As explained above for handling of minor faults, it is assumed that the fault-affected subsystem is to retain the last-assigned deposit task and to re-attempt that deposit when normal operation is restored. Using this approach, successful completion of the last-assigned deposit task is used to prove the return to operational status. As coordinator 2610 might go about retiming and reshuffling sequential lists because of the reported moderate-severity fault condition, the coordinator may exclude the one deposit from being included in reshuffling. Other approaches for addressing the reported deposit location and for reactivating a subsystem as it recovers from a fault are possible, depending on implementation preferences, and the present teachings should not be construed to rely solely on the specific logic flows as were shown merely as examples in processes 3400 and 3500.
Following the execution of step 3532, possible impacts from the unexpected time delay itself, as well as possible effects on thermal state, are both considered and adjustments are made by the central coordinator as necessary. Step 3534 involves assessing the thermal state (or resultant stress state) of the workpiece being formed and determining whether the unexpected delay causes enough deviation to warrant invoking the aforementioned tiered corrective action subroutine in step 3528. Note that this more extensive assessment is performed for a ‘moderate’ severity fault due to the potentially longer delay compared to a ‘minor’ severity fault. If, in step 3534, thermal issues are not concerning, then a second assessment is made in step 3526, as was done for a minor fault, to determine if the delay causes potential collisions or conflicts. If so, then tiered corrective action is applied in step 3528. If not, then execution continues at step 3409 by way of connector 3432.
Returning the branch at step 3520, a third pathway is designed to address indications of severe faults or failures within a subsystem that involve long or indefinite recovery times and may even mean that the subsystem is offline for the remainder of a layer build or an entire part build. These instances are expected to occur very rarely, but steps 3540-3544 seek to circumvent such failures by leveraging the redundant coverage of adjacent subsystems where possible. Once a severe fault state has been reported by a subsystem, decision step 3540 is performed to assess whether the remaining deposit tasks that were queued for the now-failed subsystem are either non-critical to the build or can be handled by other subsystems nearby. The non-essentiality of a given deposit location may have been established by a part designer as part of a model and encoded as an additional field in a corresponding record 1640. The non-essentiality may also be inferred when the problem arises during construction of extraneous support material intended to be discarded after the blank part is completed.
In some system implementations, an alternative solution to a complete failure of a subsystem may be to suspend the build, reorient the workpiece to not rely on the reach of the failed subsystem and to rebuild the sequential lists by revisiting processes 3200 and 3300 based on the new workpiece positioning. It is contemplated that the repositioning and recalculating of sequential lists may be automated and that the workpiece might be repositioned more than once as the build progresses to allow other subsystems to act upon the tasks originally slated for the failed subsystem. It is contemplated that subsystems might be dynamically repositioned as well and that the severity of a fault might be classified as ‘moderate’ if another subsystem can move into position to replace the coverage within a reasonable time. As an advantage of the non-continuous deposition approach taught herein, and in contrast to typical continuous bead extrusion processes, the exact locations and bounds of each single subsequent deposits can be readily translated to new coordinates with high accuracy and yield a finished blank that may be indistinguishable from an identical part built without interruption and repositioning.
In step 3540, if there are deposit locations that cannot be dismissed as non-essential and there are no ways to reassign the deposit tasks to other subsystems, then the build process is halted in step 3548, either temporarily until the subsystem can reactivated or permanently resulting in a failed build.
As a preferable outcome of step 3540, if the deposit tasks jeopardized by the failure of the subsystem can be handled elsewhere, then the reporting subsystem is instructed (step 3542) to skip the one deposit location for which the problem was reported (enabling a different subsystem to assume responsibility for that deposit task) and then step 3544 invokes subroutine 3100 to accomplish the assignments and resequencing necessary to work around the failed subsystem. Once a fresh set of sequential lists have been computed in subroutine 3100, then execution continues by way of connector 3430 at step 3406 wherein the remaining functional subsystems continue to receive next deposit location instructions from the central controller. The controller, having been notified of the failed subsystems and having undertaken the re-computation of sequential lists, no longer includes the failed subsystem as it distributes deposit locations. Were the failed subsystem to regain operation at some point during a build, the subsystem may alert the central coordinator as part of the logic (not explicitly shown) operating in step 3422. If, in step 3540, it is determined that not all locations assigned to the failed subsystem can be reassigned and that some essential voxel spaces cannot be filled and are indispensable for a successful build, then, in step 3548, the build process at hand may need to be suspended or halted until the subsystem is returned to operation or until the workpiece can be reoriented so that other subsystems are within reach to continue the build. The latter option would likely require revisiting process 3300 but this could conceivably occur quickly so that the build may continue before excessive cooling of the workpiece has occurred. Barring these possibilities, step 3548 may amount to stopping and abandoning the build process and scrapping the partially built part.
Testing was performed using a 6-axis robotic weld cell with a GMAW power supply using 0.045″ diameter ER7OS filler wire with 15 mm stick out and a 90/10 Argon/CO2 shielding gas flowing at 25 CFH. Four separate tests were performed: 1) a DoE varying wire feed speed and arc on time to understand the variety of cell sizes possible with the process, 2) a series of 100 cells using identical parameters in order to characterize repeatability of the process, 3) tests varying the overlap and positioning of cells required to build a three-dimensional block, and 4) a comparison of residual stress and distortion between the proposed architecture and a standard WAAM process. With the exception of the stress test, all tests used 6″×6″×0.375″ hot rolled A36 steel base plates.
Example 1Summary of Initial Process Development 2.2.1 Cell Size DoE
Arc-on time and wire feed speed were varied to evaluate the range of cell sizes that could be generated by the equipment in the welding cell. Arc-on times ranged from 100 to 1,000 milliseconds (ms) in 100 ms increments, while wire feed speeds were varied from 100 to 300 inches per minute (ipm) in 50 ipm increments. The test was performed twice and the average height, diameter, and aspect ratio of each combination of arc-on time and wire feed speed was calculated.
Cell size (both diameter and height) increased with respect to both time and wire feed speed. Diameters ranged from 2.85 to 7.3 mm, while the average height ranged from 0.95 to 3.12 mm. This wide range of cell sizes suggests that there is a wide process window that can be utilized to fine tune the cells not only in terms of size, but in terms of heat input and microstructure. The diameter to height aspect ratios ranged from 1.72 to 3.38, with the largest aspect ratios correlated to cells produced with short arc-on times and high wire feed speeds. While aspect ratios of 4 to 5 are suggested to be the minimum allowed to avoid macroscopic lack of fusion between weld beads, the relatively low aspect ratios observed were attributed to the “cold” nature of the short circuiting CMT process. The aspect ratio could be increased by changing wire feed speed, stick out, and shielding gas in order to change the arc characteristics away from a short circuit and towards a spray, globular, or pulsed mode. Some voids were present on top of larger cells suggesting that the base plates were dirty and/or insufficient shielding gas was present. This is unsurprising as the weld cell automatically turned the gas on and off during the move time between each cell. Running the shielding gas continuously to maintain an inert environment surrounding the process may prevent such voids.
Example 2Two sets of parameters (i.e., “small” and “large)” were down-selected from Example 1 to continue testing. Both cell sizes were generated using a wire feed speed of 300 ipm, with an arc-on time of 100 ms for the small cells and 900 ms for the large cells. 100 cells were produced with each set of parameters, and the heights and diameters were measured with calipers. Average heights, diameters, and aspect ratios were calculated.
Statistical analysis for both sets of cell sizes showed a relatively normal distribution in terms of diameter, height, and aspect ratio. The average diameter and height of the 100 ms cells were 4.69 and 1.33 mm respectively, while the 900 ms cells had an average height and diameter of 7.42 and 3.06 mm respectively.
Three sigma manufacturing control analysis for each of the two sizes shows that the process is controllable, as none of the cells measured were found to fall outside of the control limits. The manufacturing control plot of the small cells shows no trends with respect to the order in which cells were generated. This is likely due to the low heat input generated by these cells, as the manufacturing control plot for the large cells shows that the cell aspect ratio increased as additional cells were produced. The diameter remained the same, while the cell height decreased as additional cells were produced. An increase in the starting temperature means that there is excess thermal energy in the deposition (i.e., the energy input from the GMAW process remains constant), which melts more of the material around the cell, thus increasing the diameter while reducing height. Thus, it was inferred that the overall temperature of the plate increased as the test progressed due to the higher heat input used to generate large cells.
Example 3Once the average diameter and height were calculated for each set of parameters, the slicing software was implemented to write code to test the effects of cell overlap and stacking on the architecture's ability to build three dimensional blocks. Cell placement was randomized by the slicing software within a hexagonal array, while cell overlaps were varied from 0-40% of the cell diameter for both small and large cells. Thin two-layer blocks were built first to determine a visually acceptable level of overlap, followed by a full size block measuring 25 mm×100 mm×12 mm. The final block was then cross sectioned and polished using standard metallographic techniques for macro- and microscopic evaluation.
The first overlap tests were performed with the small 100 ms cells. The cells rapidly placed in close proximity resulted in a propensity to agglomerate and become asymmetric. An initial assumption was made during testing that the agglomeration was due to the low heat input of the small cells, and no further testing was performed with the small cells at that time. Overlap testing performed with the larger 900 ms cells showed visually acceptable results at a 20% overlap of cell diameter (i.e., overlap of the cells within the same layer). The initial layers of the large block had a much rougher upper surface than the final layer of the full-size block. This effect was reduced in the full size block as the overall temperature of the component increased during the build. In-situ human observation of the process revealed that the agglomeration effect seen in the small cells was still occurring when cells were generated in close proximity, regardless of the layer. The last cells deposited in each layer were observed to wet evenly to all sides as they filled in divots left by the surrounding hexagonally patterned cells. This suggests that the agglomeration effect can be overcome by changing the order in which cells are deposited from a fully random sorting to a semi-randomized sorting pattern which will ensure that no two cells are generated immediately in close proximity.
Macroscopic evaluation of the block revealed a welding defect—lack of fusion—between cells. The lack of fusion appeared to be more frequent on the initial layers of the build, likely due to the lower overall temperature of the component. This is not surprising, as the CMT process uses the short-circuit transfer mode, which is prone to lack of fusion. Lack of fusion in the cell-arc process can be overcome by changing the aspect ratio of each individual cell or increasing the heat input of the process by changing to different GMAW transfer mode such as spray transfer.
Microscopic evaluation showed that the steel microstructure underwent significant recrystallization as it is reheated by the cells surrounding it on all sides. The recrystallization occurred as underlying cells were reheated and tempered, thus forming a highly desirable tough, fine grained microstructure.
Example 4Magnitudes of residual stress were compared between blocks built with three different cell parameter sets (Inventive Examples 1-3) and a conventional low-heat input CMT linear weld (Comparative Example). For each of Inventive Examples 1-3 (IE1-IE3) and the Comparative Example (CE), long, thin blocks measuring 0.5″×10″×0.5″ were each produced on a 2″×12″×0.125″ plate to minimize the restraint provided by the base plate and maximize distortion generated by the block. Each build plate was weighed before and after each block was deposited, and the total time required to build each block and the final temperature of each sample were recorded. Energy input was calculated based on welding parameters and known arc and melting efficiencies for the GMAW process. Table 1 shows various process parameters for IE1-IE3 and CE.
Distortion was measured by placing the each sample on a flat surface and measuring the amount of deflection between the surface and the high points of each build plate. Test results showed that IE3 exhibited the lowest amount of distortion, thus containing the least residual stress of all samples. Distortion was found to increase as the arc on time per cell diminished. CE contained the largest amount of distortion. The total energy inputs, deposited weight, and volume of all samples used to produce all samples were approximately equal. The duty cycle and energy input per cell were strongly correlated to the final temperature, and inversely related to the measured distortion of each sample. While the total energy input, energy density, and final temperature of IE2 and IE3 were approximately equal, the energy per cell in IE3 was twice that of IE2, while the distortion measured in IE3 was half that of IE2. This suggests that the energy input per cell is influential in controlling residual stress.
The most critical factors affecting residual stress in this test were energy input per cell and the ratio of the weld bead area to the area of surrounding material. In light of these test results, without being bound by theory, the residual stress was reduced substantially in the cellular, non-continuously deposited samples, IE1-IE3, compared to the linear sample, CE, for two primary reasons: 1) the temperature gradient between each cell and the component is lower than traditional linear welding processes thanks to the ability of the randomized cell architecture to distribute energy evenly throughout a component, and 2) the lack of linear stress buildup during deposition by eliminating linear deposition paths in favor of even distributed small, circular weld beads. The cell-based architecture resulted in substantially lower residual stresses than the conventional arc-based DED processes, and residual stress and distortion can be controlled by controlling the amount of energy input per cell.
In various embodiments disclosed herein, a single component can be replaced by multiple components and multiple components can be replaced by a single component to perform a given function or functions. Except where such substitution would not be operative, such substitution is within the intended scope of the embodiments.
The foregoing description of embodiments and examples has been presented for purposes of illustration and description. It is not intended to be exhaustive or limiting to the forms described. Numerous modifications are possible in light of the above teachings. Some of those modifications have been discussed and others will be understood by those skilled in the art. The embodiments were chosen and described for illustration of various embodiments. The scope is, of course, not limited to the examples or embodiments set forth herein, but can be employed in any number of applications and equivalent devices known in the art. Rather, it is hereby intended that the scope be defined by the claims appended hereto. Also, for any methods claimed and/or described, regardless of whether the method is described in conjunction with a flow diagram, it should be understood that unless otherwise specified or required by context, any explicit or implicit ordering of steps performed in the execution of a method does not imply that those steps must be performed in the order presented and may be performed in a different order or in parallel.
Claims
1. In an additive manufacturing system for constructing an object by making a series of discrete material deposits, a method comprising:
- providing at least one first robotic material-depositing subsystem comprising a first non-continuous material-depositing device attached to a first motion control system, the first subsystem acting to move the first material-depositing device to, and perform discrete deposition of material at, specific locations according to a first time-ordered list of deposit location instructions;
- providing at least one second robotic material-depositing subsystem comprising a second non-continuous material-depositing device attached to a second motion control system, the second subsystem acting to move the second material-depositing device to, and perform discrete deposition of material at, specific locations according to a second time-ordered list of deposit location instructions;
- detecting a potential collision between the first and second non-continuous material-depositing devices caused by simultaneous operation of the first subsystem according to the first time-ordered list and of the second subsystem according to second time-ordered list; and
- altering at least one of the first and second time-ordered lists to resolve the potential collision.
2. The method of claim 1 wherein each deposit location instruction in the first and second time-ordered lists is associated with an instance of expected-time-of-occurrence data and the detecting of a potential collision comprises comparing instances of expected-time-of-occurrence data among deposit instructions in the first and second time-ordered lists.
3. The method of claim 2 wherein the altering comprises changing the value of at least one expected-time-of-occurrence data instances associated with at least one of the deposit location instructions.
4. The method of claim 1 wherein the altering comprises reordering the sequence of deposit location instructions within at least one of the first and second time-ordered lists until the potential collision is eliminated.
5. The method of claim 1 wherein the altering comprises moving at least one of the deposit location instructions from the first time-ordered list to the second time-ordered list.
6. The method of claim 4 wherein the altering further comprises moving at least one deposit location instruction from the second time-ordered list to the first time-ordered list.
7. The method of claim 1 further comprising:
- determining, as the first robotic material-depositing subsystem operates according to the first time-ordered list of deposit location instructions, a time difference between an actual time-of-occurrence for discrete deposition of material responsive to a deposit location instruction and a value of an instance of expected-time-of-occurrence data associated with the deposit location instruction;
- detecting whether a potential collision exists when the time difference is applied to expected-time-of-occurrence data associated with subsequent deposit location instructions in the first time-ordered list; and
- performing the altering responsive to the detecting a potential collision when the time difference is applied.
8. The method of claim 1 wherein at least one of the first and second material-depositing devices acts by adding heat energy to perform discrete deposition of material and wherein the method further comprises:
- obtaining a planned thermal profile for at least a portion of the object's volume;
- producing a predictive thermal model that predicts at least one temperature within the portion caused by at least one of the first and second subsystems adding heat to specific locations of the portion as they perform discrete depositions of material within the portion;
- comparing the predictive thermal model to the planned thermal profile to determine at least one difference value; and
- responsive to the difference value, reducing the difference value by performing at least one of: changing timing between discrete depositions by at least one of the first subsystem and the second subsystem, reordering the programmed locations in at least one of the first time-ordered list and the second time-ordered list, moving at least one deposition location from the first time-ordered list to the second time-order list, and moving at least one deposition location from the second time-ordered list to the first time-ordered list.
9. The method of claim 1 wherein at least one of the first and second material-depositing devices acts by adding heat energy to perform a discrete deposition of material and wherein the method further comprises:
- providing a planned thermal profile for at least a portion of the object's volume;
- obtaining, as the construction of the object progresses, temperature measurements within the portion caused by at least one of the first and second subsystems adding heat to specific locations of the portion as they perform discrete depositions of material within the portion;
- comparing the temperature measurements to the planned thermal profile to determine at least one temperature difference value; and
- responsive to the temperature difference value, reducing the temperature difference as the construction of the object proceeds by performing at least one of: changing timing between discrete depositions by at least one of the first subsystem and the second subsystem, reordering the programmed locations in at least one of the first time-ordered list and the second time-ordered list, moving at least one deposition location from the first time-ordered list to the second time-order list and moving at least one deposition location from the second time-ordered list to the first time-ordered list.
10. The method of claim 1 wherein at least one of the first and second material-depositing devices acts by adding heat energy to perform discrete deposition of material and wherein the method further comprises:
- obtaining a planned mechanical stress profile for at least a portion of the object's volume;
- producing a predictive model that predicts at least one mechanical stress within the portion caused by at least one of the first and second subsystems adding heat to specific locations of the portion as they perform discrete depositions of material within the portion;
- comparing the predictive model to the planned mechanical stress profile to determine at least one difference value; and
- responsive to the difference value, reducing the difference value by performing at least one of: changing timing between discrete depositions by at least one of the first subsystem and the second subsystem, reordering the programmed locations in at least one of the first time-ordered list and the second time-ordered list, moving at least one deposition location from the first time-ordered list to the second time-order list, and moving at least one deposition location from the second time-ordered list to the first time-ordered list.
11. The method of claim 1 wherein at least one of the first and second material-depositing devices acts by adding heat energy to perform a discrete deposition of material and wherein the method further comprises:
- providing a planned mechanical stress profile for at least a portion of the object's volume;
- obtaining, as the construction of the object progresses, mechanical stress measurements within the portion caused by at least one of the first and second subsystems adding heat to specific locations of the portion as they perform discrete depositions of material within the portion;
- comparing the mechanical stress measurements to the planned mechanical stress profile to determine at least one difference value; and
- responsive to the difference value, reducing the difference as the construction of the object proceeds by performing at least one of: changing timing between discrete depositions by at least one of the first subsystem and the second subsystem, reordering the programmed locations in at least one of the first time-ordered list and the second time-ordered list, moving at least one deposition location from the first time-ordered list to the second time-order list and moving at least one deposition location from the second time-ordered list to the first time-ordered list.
12. An additive manufacturing system for forming an object by successively depositing at least one material comprising:
- a first robotic material-depositing subsystem comprising a first non-continuous material-depositing device attached to a first motion control system, the first subsystem performing a material depositing action at a specified first location by moving the first material-depositing device to the first location and depositing a mass of material at the first location, the first location being within a first area comprising a plurality of locations reachable by the first subsystem and being specified by deposit location information provided to the first subsystem;
- a second robotic material-depositing subsystem comprising a second non-continuous material-depositing device attached to a second motion control system, the second subsystem performing a material depositing action at a specified second location by moving the second material-depositing device to the second location and depositing a mass of material at the second location, the second location being within a second area comprising a plurality of locations reachable by the second subsystem and being specified by deposit location information provided to the second subsystem;
- a central controller, communicably coupled to the first and second subsystems, operable to maintain at least one ordered list of deposit instructions comprising deposit location information and to control the construction of the object by providing deposit location information to the first and second subsystems.
13. The system of claim 12 wherein the controller controls which subsystem is to perform a material depositing action corresponding to each of the deposit instructions.
14. The system of claim 13 wherein at least one deposit location specified by a deposit instruction is within both the first area and the second area and wherein the central controller is further operable to control whether the first subsystem or the second subsystem performs a material depositing action at the deposit location.
15. The system of claim 12 wherein each instance of communication from the central controller to a subsystem contains a proper subset of the total deposit location information contained in the ordered list of deposit instructions.
16. The system of claim 15 wherein each instance of communication from the central controller to a subsystem contains no more than one single instance of deposit location information for use by the subsystem.
17. The system of claim 12 further comprising:
- a source of time information available to the central controller;
- wherein each deposit instruction in the ordered list is associated with a scheduled time-of-occurrence value; and
- wherein the central controller is operable to change scheduled time-of-occurrence values.
18. The system of claim 17 further comprising a thermal sensor coupled to the central controller and detecting one or more thermal conditions of materials that have been deposited by the system, wherein the central controller operates to change at least one scheduled time-of-occurrence value responsive to at least one thermal condition detected by the thermal sensor.
19. The system of claim 17 wherein the first and second subsystems are positioned within the system such that, for at least one combination of a first location within the first area and a second location within the second area, moving the first subsystem in accordance with the first location while moving the second subsystem in accordance with the second location results in physical contact between one or more components of the first subsystem and one or more components of the second subsystem.
20. The system of claim 19 wherein the central controller is operable to analyze the scheduled times of occurrence values for as-yet-unexecuted deposit instructions in the at least one ordered list and to detect the presence of one or more collision instances in which moving the first subsystem in accordance with the first location and moving the second subsystem in accordance with the second location will be coincident.
21. The system of claim 20 wherein, responsive to detecting the presence of at least one collision instance, the central controller is further operable to iteratively rearrange the deposit instructions in the at least one ordered list and analyze the scheduled times of occurrence values for all as-yet-unexecuted deposit instructions until no collision instances are detected.
22. The system of claim 19 wherein the controller maintains a first subsystem-specific ordered list of deposit instructions corresponding to a sequence of deposit actions to be performed by the first subsystem and a second subsystem-specific ordered list of deposit instructions corresponding to a sequence of deposit actions to be performed by the second subsystem.
23. The system of claim 22 wherein at least one location specified by a deposit instruction in the first subsystem-specific ordered list is also within the second area and wherein the controller is further operable to move the deposit instruction from the first ordered list to the second ordered list.
24. The system of claim 22 wherein each instance of communication from the central controller to a particular subsystem contains a proper subset of the total deposit location information contained in the subsystem-specific ordered list of deposit instructions for that particular subsystem.
25. The system of claim 24 wherein each instance of communication from the central controller to the particular subsystem contains no more than one single instance of deposit location information for use by the particular subsystem.
26. The system of claim 21 wherein at least one subsystem is operable to detect failure of an attempted discrete deposit at a specific location corresponding to a first deposit instruction and to communicate a first notification of the failure to the central controller and wherein, in response to the notification, the central controller is operable to suspend communicating further deposit location information to the subsystem until receiving a second notification from the subsystem that the discrete deposit at the specific location has been successfully completed.
27. The system of claim 26 wherein the central controller is further operable to compare a time associated with the successfully completed discrete deposit to the scheduled time-of-occurrence value for the first deposit instruction and calculating an incurred delay time value resulting from the failure at the subsystem.
28. The system of claim 27 wherein the central controller is further operable to apply the incurred delay to changing the scheduled time-of-occurrence values for all as-yet-unexecuted deposit instructions in at least one ordered list.
29. The system of claim 28 wherein the central controller is further operable, upon applying the incurred delay to changing the scheduled time-of-occurrence values, to iteratively rearrange the deposit instructions in the at least one ordered list and analyze the scheduled times of occurrence values for all as-yet-unexecuted deposit instructions until no collision instances are detected.
30. The system of claim 23 further comprising:
- a thermal sensor coupled to the central controller and detecting one or more thermal conditions of materials that have been deposited by the system, wherein the central controller is further operable to, responsive to detecting at least one thermal condition, move at least one deposit instruction from the first ordered list to the second ordered list and to iteratively rearrange the deposit instructions in the at least one ordered list and analyze the scheduled times of occurrence values for all as-yet-unexecuted deposit instructions until no collision instances are detected.
Type: Application
Filed: Mar 16, 2023
Publication Date: Jul 6, 2023
Inventors: Alexander Gabriel Steinberg (Woodland Park, CO), Rex Thomas Alexandre (Laguna Vista, TX)
Application Number: 18/122,510