The subject matter disclosed herein relates to additive manufacturing methods and systems for fabrication of complex multi-dimensional objects, parts, assemblies, and structures.
Current additive manufacturing systems include fused filament fabrication (FFF)/fused deposition modeling (FDM), stereolithography (SLA), selective laser sintering (SLS), digital light projector (DLP) printers, paste or aerosol jet, and direct metal laser melting (DMLS) deposition technologies, one or more robotic actuators, and other tools for depositing multi-materials such as structural or functional thermoplastics, resins and metals, solid or flexible, conductive and insulating inks, pastes and other nano-particle materials; tools for sintering, aligning/measuring, ablation, milling, drilling, and component pick-and-place tools for placement of components such as electronic, electro-mechanical, or mechanical devices. All of these processes generally rely on planar build plate geometries as shown in
Generally, the deposited material forms either the target object, or is support material for the target object. It should be appreciated that when the target object has features, such as overhangs or hollow areas for example, the printer system may deposit material for the purpose of providing a surface to deposit the material of the feature and support the feature. This support structure is subsequently removed by the operator during post-processing. It should be appreciated that the material deposited for the support structure increases the part cost (more material used) or extends the duration of the fabrication process.
The target objects are fabricated, layer-by-layer in the Z axis by the extruder in accordance with execution of program instructions (i.e. G-code). In some applications the material selection uses a heated build plate (sometimes referred to hotbed) for material adhesion during extrusion or tool operations. The selection of an extruder (and any other tools), the movement of the extruder, and control of the build plate temperature profile are typically performed on a computer using software. Typically, an additive manufacturing system uses a CAD/CAM system in conjunction with a slicer software module. The software inputs a CAD model of the target object and generates the machine control code instructions to the additive manufacturing system. This is code is typically represented in the G-code software language, however other software languages for additive manufacturing system control may be used.
Given the increasing utilization of additive manufacturing systems it is desirable to fabricate increasingly complex geometries, comprising multiple material characteristics with associated multiple operations and tools within the fabrication process. As a result, additive manufacturing systems that expand beyond a 3-axis (X,Y,Z) range of motion have been proposed to include to 4-to-9-axis systems. These multi-axis systems overcome some of the geometrical fabrication and support for multiple tool positioning limitations of the 3-axis based additive manufacturing systems.
While these 4-9 axis multi-axis systems are available, it is difficult to adapt traditional 3-axis systems 100, such as that shown in
Accordingly, while existing additive manufacturing systems are suitable for their intended purposes the need for improvement remains, particular in providing an additive manufacturing system having the features described herein. BRIEF DESCRIPTION OF THE DISCLOSURE
In accordance with an embodiment, a replacement build platform for an additive manufacturing system having a structure for supporting a build platform is provided. The replacement build platform comprising: a frame configured to removably couple with the structure; and a two-axis build portion rotationally coupled to the frame about a first axis, the two-axis build platform further being configured to rotate about a second axis, the second axis being perpendicular to the first axis.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the replacement build platform may include a planar build portion coupled to the frame adjacent the two-axis build portion.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the replacement build platform may include the frame includes a first and a second arm; and the two-axis build portion includes: a shaft rotationally coupled between the first arm and second arm; a first motor configured to rotate the shaft about the first axis; a second motor coupled to the shaft; and a rotational build platform coupled to the second motor to rotate about the second axis.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the replacement build platform may include the frame having a first arm having a first channel and a second arm having a second channel, the first channel and second channel being sized to receive the structure.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the replacement build platform may include the frame having base that extends between the first arm and second arm.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the replacement build platform may include the frame further having at least one clip portion coupled to the base, the at least one clip portion being configured to engage the frame and fixedly couple the frame to the structure.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the replacement build platform may include a processor module operably coupled to the two-axis build portion, the processor module being configured to execute executable computer instructions for receiving at least one input and causing a rotation of the two-axis build portion about at least one of the first axis or the second axis.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the replacement build platform may include the input being at least one distance measurement.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the replacement build platform may include the processor module being further responsive to executable computer instructions for predicting the next state of a machine control code in response to receiving the at least one input.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the replacement build platform may include the predicting of the next state of machine control code being based at least in part on a machine learning model.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the replacement build platform may include the machine learning model being a Hidden Markov Model.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the replacement build platform may include the predicting the next state of machine control code being based on determining an end condition has been achieved based at least in part on the at least one input.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the replacement build platform may include the predicting the next state of machine control code determining a change in phase.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the replacement build platform may include the change of phase being an initialization phase, a calibration phase, and a completion phase.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the replacement build platform may include the planar portion having a pitch relief region, the pitch relief region defining a pitch clearance area.
According to another aspect of the disclosure a build platform for an additive manufacturing system is provided. The build platform comprising: a planar build portion; and a two-axis build portion rotationally coupled to the planar build portion about a first axis, the two-axis build platform further being configured to rotate about a second axis, the second axis being perpendicular to the first axis.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include a first motor coupled to the two-axis build portion to rotate the two-axis build portion about the first axis; and a second motor coupled to the two-axis build platform to rotate the two-axis build portion about the second axis.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include the first motor and second motor are stepper motors.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include the planar build portion has an opening sized to receive the two-axis build portion; and the two-axis build portion has a first build area having a circular shape.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include the two-axis build portion being centrally located in the planar build portion.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include the two-axis build portion having a first build area; and the planar build portion includes a second build area, the first build area and second build area being co-planar when in an initial position.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include a controller operably coupled to first motor and second motor; an energy source operably coupled to the controller, the first motor and the second motor; and wherein the controller and energy source are disposed on a side of the planar build portion opposite the second build area.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include the planar build portion having a mount configured to couple with a vertical axis of an additive manufacturing system.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include the planar build portion having a pitch relief area adjacent the two-axis build portion, the pitch relief area defining a pitch clearance area.
In accordance with another aspect of the disclosure, a method is provided. The method comprising: providing an electronic model of an object; generating a machine control code to fabricate the object; transmitting the machine control code to a OEM Printer Controller, the machine control code including a two-axis portion; transmitting, in real-time, the two-axis portion to a two-axis controller; and rotating, with the two-axis controller, a two-axis build platform about a first axis or a second axis based at least in part on the two-axis portion.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the method may include the machine control code further having an N-axis portion.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the method may include moving a planar build platform in a vertical direction based at least in part on the N-axis portion.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the method may include moving a print head in an first-direction or a second-direction based at least in part on the N-axis portion, the first direction, the second direction, and the vertical direction being orthogonal to each other.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the method may include the rotating of the two-axis build platform further comprises transmitting control signals from the two-axis controller to at least one controller.
In accordance with another aspect of the disclosure, an additive manufacturing system is provided. The system comprising: planar circular build portion; a frame positions adjacent the planar circular build portion; first motor coupled between the frame and the planar circular build portion, the first motor configured to rotate the planar circular build portion about a first axis; a second motor operably coupled to the planar circular build platform, the second motor being configured to rotate the planar circular build portion about a second axis, the second axis being perpendicular to the first axis; and a two-axis build portion rotationally coupled to the planar build portion about a first axis, the two-axis build platform further being configured to rotate about a second axis, the second axis being perpendicular to the first axis.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include a drive assembly coupled to the frame, wherein the drive assembly is configured to move the frame in at least one translational direction.
In accordance with another aspect of the disclosure, an additive manufacturing system is provided. The system comprising: a real-time motion processor; an interface operably coupled to the real-time motion processor, the real-time motion processor being configured to receive sensor signals via the interface; a build platform; and a plurality of tools operably coupled to the build platform and the real-time motion processor, wherein the real-time motion processor is configured to receive the sensor signals and transmit fabrication signals to the plurality of tools and the build platform.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include the build platform further comprising: a planar build portion; and a two-axis build portion rotationally coupled to the planar build portion about a first axis, the two-axis build platform further being configured to rotate about a second axis, the second axis being perpendicular to the first axis.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include the real-time motion processor being configured to predict a next-state two-axis machine code based at least in part on the sensor signals, wherein the fabrication signals are based at least in part on the prediction.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include the prediction being based at least in part on analyzing the sensor signals with a Hidden Markov Model engine or a Neural Network engine.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include the next-state two-axis machine code being based at least in part on an N-2 axis machine control code and a 2-axis machine control code.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include the real-time motion processor being further configured to: identify a repetitive pattern in the N-2 axis machine control code; and repeat the next-state two-axis machine control code based at least in part on the repetitive pattern without performing an additional prediction step.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include the repetitive patterns being positioned on different layers of a target object.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include the identifying of the repetitive pattern including defining at least one compound linear Hidden Markov Model.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include the compound linear Hidden Markov Model being comprised of multiple linear models in consecutive sequence to define a single cyclic linear Hidden Markov Model.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the system may include the real-time motion processor being further configured to increment a counter index each time the next-state two-axis machine control code is repeated.
In addition to one or more of the features described herein, or as an alternative, further embodiments of the method may include the machine learning model being a Hidden Markov Model.
These and other advantages and features will become more apparent from the following description taken in conjunction with the drawings.
The subject matter, which is regarded as the disclosure, is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other features, and advantages of the disclosure are apparent from the following detailed description taken in conjunction with the accompanying drawings in which:
The detailed description explains embodiments of the disclosure, together with advantages and features, by way of example with reference to the drawings.
Embodiments herein are directed to additive manufacturing and in particular to an additive manufacturing system having additional axis incorporated into a system through a build platform, software system and processing methods. The build platform allows the adding of two additional axis to an existing additive manufacturing system. Some embodiments are further directed to controlling the two axis of the build platform using a printer controller. Still further embodiments are directed to controlling the two axis of the build platform by predicting the machine control code that is about to be performed by the additive manufacturing system. Still further embodiments provide for the prediction of the machine control code using a Hidden Markov Model or other machine learning including unsupervised and supervised methods such as neural networks. Other embodiments provide for simplified system and/or method of operation sometimes referred to as 3+2 indexed 2-axis operation, using either direct control through volume analysis algorithms and machine codes or prediction-based control operation and machine codes. Still further embodiments provide for using position sensors as a feedback signal for predicting and/or synchronizing machine control code.
Embodiments of the present disclosure provide advantages that includes reduction of cost and/or production time in additive manufacturing. Embodiments of the present disclosure provide further advantages in the fabrication of objects, parts, assemblies, sub-assemblies, or other structures (collectively referred to as a “target object”) whose composition, properties and behavior comprise properties that would otherwise be intractable to achieve utilizing contemporaneous additive manufacturing systems and build platform technology.
It should be appreciated that while certain embodiments described herein may refer to additive manufacturing systems that fabricate with a particular number of movement axis (e.g. five axis), this is for example purposes and the claims should not be so limited. In other embodiments, the two-axis build platform can be added to additive manufacturing systems having multiple axes, such as three, four, five or six axis-based systems for example (e.g. an N-2 axis additive manufacturing system).
Referring to
In the embodiment of
In still other embodiments, the build platform 210 is in a fixed position and the drive assembly 214 moves the tool or deposition assembly 206 along the N-axis.
In an embodiment, the two-axis build platform 212 is integrated with the N-2 axis platform member 210. In this embodiment a first motor 216 and second motor 218 are provided to move or rotate the two-axis build platform 212 along an “A” axis and a “B” axis respectively. In an embodiment, the A-axis is a rotational movement about an axis extending through the center of and perpendicular to the two-axis build platform 212. In an embodiment, the B-axis is a pitch or yaw rotation of the two-axis build platform 212 about an axis extending parallel to the plane of the N-2 axis build platform member 210.
The motors 216, 218 are controlled by a two-axis processing module 220. As will be discussed in more detail herein, the two-axis processing module 220 may be integrated with, or cooperate with, a OEM printer controller 222, or may operate independently from the OEM printer controller 222. The two-axis processing module 220 is part of a System-on-Chip (SoC) that also includes an interface 224 that allows the two-axis processing module 220 to transmit and receive signals (e.g. communicate) over wired mediums (e.g. system hardware bus, USB or Ethernet), wireless mediums (e.g. WiFi or Bluetooth™), or a combination of the forgoing. The interface 224 may provide a connection with the OEM printer controller 222, an external or remote computer (not shown), or one or more internal components, such as a sensor 226 for example.
As will be discussed in more detail herein, the build platform 208 that includes an N-2 axis build platform member 210 and a two-axis build platform 212 may be integrated into the system 200 (e.g. natively part of the system), or may be added to an existing system 200 to increase the number of axis in which the object may be fabricated.
Referring now to
Referring now to
Incorporated into the base section 256 is a two-axis build platform 213. In an embodiment, the two-axis build platform 213 is configured to rotate at least a portion of the build platform volume section about two axes. In an embodiment, the two-axis build platform 213 by motors 216, 218. The motors 216, 218 are controlled by a two-axis processing module 220. The two-axis processing module 220 includes an interface 224 that electrically couples or couples for communication the two-axis processing module 220 with the OEM printer controller 222.
Referring now to
In an embodiment, the build platform 300 includes a planar build portion 302 and rotational build portion 304. In an embodiment, the rotational build portion 304 is centrally located on the planar build portion 302. The rotational build portion 304 may be coupled to the planar build platform 302 to rotate about a first axis 306 and a second axis 308. In an embodiment, the first axis 306 extends parallel or co-planar with the planar build portion 302. In an embodiment, the first axis 306 extends through the center of the planar build portion 302. In an embodiment, the second axis 308 extends perpendicular to the rotational build portion 304. The second axis 308 rotates with the rotational build portion 304 when the rotational build portion 304 is rotated by the first axis 306.
In an embodiment, the planar build portion 302 includes a pitch relief region 303 defined between a pair of walls 305, 307. It should be appreciated that the pitch relief region provides a space for the object 309 that is being fabricated when the rotational build portion 304 is rotated about the pitch yaw axis 306 (
It should be appreciated that the larger the pitch relief region 303, the wider the target object may be. It should be appreciated that the size pitch relief region 303 may be different depending on the target object being fabricated. In the case of a relatively thin object, a build platform may be provided where the walls 305, 307 are closer together, or there is a contiguous planar build portion 302 It should further be appreciated that the larger the pitch relief region 303 is, the less build room is available on the planar build portion 302.
In an embodiment, a planar build portion 302 may be provided that allows an end user to remove portions of the planar build portion 302 to adjust the size of the pitch relief region 303.
The build platform 300 may further include a pair of motors 310, 312 that are coupled to the rotational build portion 304 to rotate the rotational build portion 304 about the axis 306, 308 as indicated by the arrows 314, 316. The build platform 300 may further include a 2-axis processing module 324 that is electrically coupled to the motors 310, 312 and is configured to rotate the rotational build portion 304 during operation. The 2-axis processing module 324 may include an interface 326 that allows the 2-axis processing module 324 to communicate with a OEM Printer Controller or a remote computer for example. In an embodiment, a power management circuit 328 is provided that couples the 2-axis processing module 324 and motors 310, 312 with an energy source, such as a USB-C interface or batteries 330 for example, if present.
In an embodiment, the build platform 300 is also movable about three-translation axis as indicated by arrows 318, 320, 322. The movement in the translation directions as indicated by arrows 318, 320, 322 may be accomplished by the additive manufacturing system drive assembly, such as drive assembly 214 for example. In an embodiment, the build platform may include a drive interface 232 that allows the build platform 300 to couple with the drive assembly 214.
In an embodiment, the build platform 300 only moves in the vertical or “Z” axis direction indicated by arrow 322. Movement in the other translation in the direction of arrows 318, 320 is performed by the tool/deposition assembly 206. In still other embodiments, the planar build portion 302 is fixed relative to the build chamber and the movement along the translation in the directions of arrows 318, 320, 322 is performed by the tool/deposition assembly 206. It should be appreciated that the build platform 300 includes two areas, an N-2 axis area 302 (e.g. 3-axis area) and a N axis portion 304. The additive manufacturing system may be configured to print in both portions 302, 304 separately, or in both areas at the same time. For example, a target object may be fabricated using N-2 axis may in portion 302, while a second target object may be fabricated using N-axis in portion 304 during the same fabrication session.
Referring now to
In an embodiment, the circular body 351 is supported by a frame 356. The frame 356 may have a V-shape when viewed along the direction of the second axis 354. The frame 356 supports a first motor 357 that rotates the body 351 about the first axis 352. In an embodiment a second motor 358 is coupled to rotate the body 351. The frame 356 may be adapted to couple with the drive assembly 214, such as to move the circular body 351 along the vertical or “Z” axis of the build chamber. The frame 356 may include features, such as set screws 360 for example, that allow the leveling of the circular body 351 relative to the X-Y plane of the system in which it is installed. The features may also allow the frame 356 to be coupled to a support structure 359 that is part of the additive manufacturing system in which the build platform 350 is being installed.
It should be appreciated that while the frame 356 is illustrated as having a particular V-shape, this is for exemplary purposes and the claims should not be so limited. In other embodiments, the frame 356 may have other geometric shapes, such as a U-shape build platform 399 (
For example, another circular body 351 similar to the build platform 350 is shown in
In this embodiment, a shaft 375 that is supported by bearings 377, 379 is suspended between the arms 361, 363. The shaft 375 is coupled to a motor (not shown) that rotates the shaft 375 about an axis (e.g. the B-axis of
In the embodiment of
In an embodiment, the build platform 399 shown in
Referring now to
In this embodiment, the build platform 355 includes a build platform support structure portion 388 that is coupled to a system support structure 389. The build platform portion 392 allows for the fabrication of a target object along five-axis. The system support structure 389 includes a pair of arms 390, 391. In an embodiment, a portion of the planar build platform extends onto the arms 390, 391. Rotationally coupled to the arms 390, 391 is a rotational build platform portion 392. The rotational build platform portion 392 is configured to be selectively (and in some cases simultaneously) rotated about two orthogonal axis (e.g. axis A and axis B of
In some instances, the embodiments shown in
Referring now to
axis processing module 402 is operably coupled with one or more components of the additive manufacturing system (e.g. manufacturing system 200, 230, 250) by an interface 404. The interface 404 is configured to couple with data transmission media that may include, but is not limited to, twisted pair wiring, coaxial cable, and fiber optic cable. Data transmission media also includes, but is not limited to, wireless, radio and infrared signal transmission systems. In the embodiment shown in
In general, axis processing module 402 accepts data via interface 404 and is given certain instructions for the purpose of controlling the angular and rotational position of the build platform member. In the exemplary embodiment, the OEM Printer Controller 422 transmits machine control code (e.g. G-code) via the interface 404 to the 2-axis processing module 402. The 2-axis processing module 402 receives the machine control code and transmits signals (e.g. low level control signals) to motor controllers 412, 414 to initiate operation of motors (e.g. motors 216, 218, 310, 312, 356, 358) to rotate the rotational build platform portion (e.g. portion 304, 351) to a desired angular position about the first axis (e.g. axis 306, 352) or the second axis (e.g. axis 308, 354). In an embodiment, the motor controllers 412, 414 convert the signals from the 2-axis processing module 402 into control signals to the motors 416, 418 (e.g. motor control pulses). In the exemplary embodiment, the motors 416, 418 are stepper motors.
The control system 400 further includes additional components, such as a power management module 420 that regulates power from an energy source, such as battery 421 to the 2-axis processing module 402. In an embodiment, the USB port 408 complies with the USB Implementers Forum type C standard. This port 408 is also coupled to the power management module 420 to allow electrical power received by the port 408 to be used to replenish the electrical power in the battery 421. In another embodiment, the USB-C directly powers the 2-axis system while recharging the battery 421 if present.
Referring now to
The outputted machine control code is transmitted to the OEM printer controller 422 in block 456. The OEM printer controller interprets the machine control code and transmits a first group of signals to the 3-axis components in block 458. The first group of signals may include low level control signals to one or more motor controllers that effectuate movement along the translational axis (e.g. in the direction of arrows 318, 320, 322). In an embodiment, the OEM printer controller interprets and separates the received machine control code into translational machine control code and rotational machine control code.
The OEM printer controller in block 456 also transmits machine control code for the angular positions of the rotational platform portion in real-time to the interface 404 in block 460. The interface transfers the machine control code to the 2-axis processing module 402 in block 462. The 2-axis processing module 402 interprets the machine control code and transmits low level control signals to the motor controllers 412, 414 in block 464 which generate motor control pulses that are transmitted to the motors 416, 418 in block 466.
It should be appreciated that the nonpredictive mode of operation includes an integration of the 2-axis processing module into the operation of the additive manufacturing system. In some embodiments, the functionality of the 2-axis processing module 402 may be integrated into the OEM printer controller 422. In embodiments such as this, the 2-axis processing module 402 and the OEM printer controller 422 operate synchronously. It should be appreciated that when such integration is not provided. Such as when a build platform with a 2-axis platform portion is added to an existing additive manufacturing system, the 2-axis processing module and the OEM printer controller may be operating independently, or asynchronously, at least to some degree. When the 2-axis processing module and the OEM printer controller are operating asynchronously, a predictive mode of operation may be used to operate the 2-axis build platform and to synchronize all tool path motion operations.
Referring now to
It should be appreciated that the embodiment of
In an embodiment of
It should be appreciated that in the embodiment of
In an embodiment, the positional data may include an X-axis position of the deposition extruder, a Y-axis position of the deposition extruder, Z-axis position of the deposition-extruder or build platform and optional movement data (collectively referred to by the variable “V”), such as velocity and/or acceleration of components within the build chamber. The positional data is transmitted to the interface 504 such as via port 506, USB port 508, or wireless communications circuit 510. The positional data is transferred to a real-time motion processor 526 that is part of 2-axis processing module 502. In the illustrated embodiment, the 2-axis processing module 502 is an integrated circuit in the form of a system-on-chip (SoC).
The motion processor 526 receives the positional data and combines this with information from a preprocessing engine 428 to determine the angular positions A, B that correspond to the 3-axis machine control code being executed on the positional data processor 522 to position the build platform and/or tool/deposition assembly. As will be discussed in more detail below, the preprocessing engine outputs a 3-axis machine control code data 530 and a 2-axis machine control code data 532 that are transmitted to the motion processor 526 via the interface 504. It should be appreciated that while the hardware/software functionality is described as being in a particular location, the embodiments described herein may be configured in different hardware and/or software configurations without deviating from the teachings herein.
The motion processor 526 determines the optimal angular positions A, B for the given OEM X, Y, and Z tool movements, and transmits them to a 2-axis processor 534 that generates low level control signals to motor controllers 512, 514. The motor controllers 512, 514 generate and transmit motor control pulses that are transmitted to motors 516, 518 to rotate the rotational platform portion to the defined angular positions A, B.
Referring now to
As shown in
The N-2 axis machine control code is processed using a machine control code generator software block 561 whose function is to create two streams of resultant machine control code command sequences in suitable format for processing by the 2-axis processing module of block 558 (e.g. the motion processor). In an embodiment, the first data stream 563 includes a machine control code having X, Y, Z command sequences and optionally V data and/or M data. The second data stream 565 includes machine control code having angular A, B command sequences and optionally V data and M data. In an embodiment, the M data may be an index or a look-up table that provides a correspondence between the X, Y, Z command sequences and the A, B command sequences. In an embodiment, the M data may include other tool control command sequences for controlling the build platform properties or operation, such as temperature. In an embodiment, the M data may include other command sequences for controlling other functional capabilities such as those supported in a multi-dimensional build platform. In an embodiment, the M data may include other control command sequences to apply correction metadata for the reduction or elimination of support structures. In an embodiment, the M data may include tool operation properties such as material feed rate and deposition control.
The N-2 axis STL model data is processed by the OEM slicer software (e.g. an N-2 slicer) in block 556 to generate an OEM N-2 axis machine control code (G-code). The OEM N-2 axis machine control code is then transferred to both the OEM printer controller 422 along data stream 567 in block 560 and along data stream 569 to the 2-axis processing module 502 in block 558 if available in a nonproprietary or open format. It should be appreciated that the data steam 569 to the 2-axis processing module may include M data when available.
It should be appreciated that in some embodiments the 2-axis processing module is configured to utilize any data that may be available in order to improve the accuracy of the prediction of the next state of the machine control code. Where the OEM slicer of block 556 outputs a nonproprietary or open format machine control code, this may be used to enhance the prediction. Where the OEM slicer of block 556 outputs a proprietary machine control code format, this may be readable only by the OEM printer controller 422 and the 2-axis processing module uses machine control code from data stream 563 as a close approximation of the OEM N-2 axis machine control code for making predictions on the next state of the machine control code.
The parser software 557 also generates 2-axis model machine control code in block 561 that represents the angular position commands for axis A, B. This 2-axis model machine code is first processed by the machine control code generator of block 561 to produce a final structured and formatted output, where it is then transmitted to the 2-axis processing module 502 in block 558.
It should be appreciated that the N-2 axis STL model data represents an electronic model of the source object that once processed by the OEM slicer software in block 556 will produce an N-2 axis machine control code. This N-2 axis machine control code, when executed in combination with the Model 2-axis machine control code results in the fabrication of the source object. In an embodiment, the N-2 axis STL model and resulting machine control code outputs corresponding to each of the desired axis movements is generated in the context of a N axis slicer such that the composition of the N-2 axes and 2 additional axes are configured and combined at fabrication time, creating a superposition process that results in the original target model and source object.
Referring back to
The real-time positional data is used by the motion processor 526 in block 566 along with the N-axis code and the 2-axis code to predict the angular positions A, B of the 2-axis platform portion. The angular positions A, B are transferred to the 2-axis processor in block 568 which generates low level control signals. These control signals are transmitted to the motor controllers 512, 514 in block 570. The motor controllers 512, 514 then transmit motor control pulses to the motors 516, 518 in block 572.
Referring now to
In general, a stochastic process is a collection of random variables which represent the evolution of a random values over time, such as the progression of a tool path or change of position of a tool in the context of an additive manufacturing (AM) system. The states in the stochastic process have distribution probabilities for the collection of random variables and the transitions from state to state depending on such distribution probabilities. The Markov property states that the probability distribution of future states depends only on the present state. In an HMM, the unobserved states indicate that the states are not directly visible, but rather that observed states or outputs depends probabilistically on the unobserved, or hidden states.
In embodiments herein, the tool command and/or control operations associated to a tool path are modeled as a sequence of hidden states where positional data and dynamic tool attributes, such as velocity and acceleration (collectively referred to as motion variables “V”), are modeled as observed states. To model the operation of an additive manufacturing system one or more machine learning methods may be utilized including HMM models and/or Neural Networks models to predict the tool path for a given additive manufacturing fabrication process.
Referring to
In some cases, a linear model may repeat one or more times to best represent the process being modeled. For example, in an additive manufacturing fabrication process, a sequence of tool operations may repeat over and over, as is the case where a given layer has the same trajectory but must be repeated for each Z-axis layer increment. This type of model may be referred to as a cyclic linear HMM 579. It should be appreciated that each of the Bakis and Left-to-Right may include such cyclic transitions (last state back to first state), in which case we have a cyclic Bakis or cyclic Left-to-Right HMM model as is shown in
In some embodiments, one or more HMM models may be organized into compound structures 580, where the compound HMM enables the implementation of more complex HMM models based on aggregation or creation of multiple simpler or partial HMM models as shown in
Referring now to
The motion processor 584 may further include predicted machine control code 586. The motion processor may include or have access to additional data, such as but not limited to previously calibrated X, Y, Z coordinates and spatial data for the additive manufacturing geometries associated to the hardware chassis, tooling and/or build platform and a lookup table for angles A, B associated with the X, Y, Z coordinates, or a combination of the foregoing for example. The predicted machine control code 586 may be received from a preprocessor, such as preprocessor of blocks 528, 554 for example. The motion processor receives the real-time observed states 585 and predicted machine control code 586 in a learning module of block 587. Using the HMM models described herein, or other machine learning models, such as neural networks for example, the learning module generates a probability matrix of next state machine operations of possible N-2 axis machine control codes based on the observed states 585.
The probability matrix is transferred to a machine control code motion classifier module 588. The classifier module 588 selects a next-state machine control code from the possible machine control codes in the probability matrix. This selection may be based on criteria, such as by selecting the machine control code with the highest predicted probability for example. In some embodiments, such as where there are two machine control codes with equal probabilities, additional criteria may be used. For example, in some embodiments a machine learning engine may be used to select between several equal probabilities.
In an embodiment, additional information provided by the meta data M and/or motion vector data V, including OEM data, may be processed by the motion classifier module 588 where additional machine learning methods executed by the motion classifier can be combined in the form of boosting methods (boosting is a technique for combining multiple machine learning algorithms together in order to improve inference accuracy or performance) to choose the most optimal next-state machine control code from both the set of possible next-state machine control codes as well as other real-time operating telemetry.
In an embodiment, performance or execution time of the machine learning processes may be further optimized (in execution time or required hardware and associated costs) wherein for any given additive manufactured fabrication process, one or more tool path patterns exist that are repetitive or have other similarities, resulting in the recurring machine learning execution patterns that may be reused, thereby presenting an opportunity to optimize execution time by reusing previously computed results. As example, a compound linear HMM model 580 as illustrated in
The selected machine control code is then transferred to the angle selection module 589. As used herein, the term “angle” with respect to angles A, B may include tilt/pitch, yaw, roll, or rotation angles. In an embodiment, the selection module receives the A, B angles as a lookup table that includes predicted machine control code and associated angles, A, B. In an embodiment, the selected machine control code is indexed against the predicted machine control code to identify the desired angles A, B. These angles A, B are transferred to the A-axis controller and B-axis controller, such as controllers 512, 514 for example.
In an embodiment, the controllers 512, 514 may further receive 3-axis volume region machine control code and 2-axis table data from block 595, such as when the additive manufacturing system is being operated in a 3+2 method of operation and the position/orientations of the build platform may be determined deterministically. In some embodiments, the data from block 595 is all that is used to operate the build platform. In some embodiments, the deterministic determination of the position/orientation of the build platform avoids the use of machine learning processes to predict the desired angles A, B.
The meta data M from the motion classifier module 588 may be transferred to a feature processing module M 593 that determines a next state function (where a function is a programmatic set of command and/or control machine codes representing the processed system state variables as M metadata, that can be transferred to internal or external modules, applications or systems) that transmits a signal to other applications 594 either internal or external to the additive manufacturing system. For example, the meta data may include information, such as a temperature for example, that is transferred to another application 594 that activates a heater or cooling system based on the observed states. In other embodiments, the meta data may include non-physical parameter data such as inspection information or instructions that are transmitted to a scanning measurement application for example.
In another embodiment, commands and/or machine codes are generated by the real-time motion processor (e.g. feature processing module) 526 and transmitted via interface 504 (e.g. such as via port 506) to other systems or components. These systems or components may include, but are not limited to one or more of tools, build platforms, and/or multi-dimensional build platforms within the additive manufacturing system, or to one or more other additive manufacturing systems containing tools, build platforms, and/or multi-dimensional build platforms over a network. In an embodiment, real-time motion processor 526 and interface 504 act as the master of tool and motion path operation, that can be transmitted in a fully distributed and coordinated fashion in the implementation of a network (internal to the additive manufacturing system, a local area network, a wide area network, a geographically distributed network, or cloud based computing networks) of additive manufacturing systems that act as a slave to the real-time motion processor 526 and interface 504 when configured to operate in master mode.
In this configuration, a highly scalable, cost efficient, additive manufacturing system cluster or cloud can be formed. In one embodiment, the additive manufacturing system may contain multiple independent extruders or tools operating across one more build platform configurations. In another embodiment, the configurations described can be implemented independently from the OEM additive manufacturing system. The various embodiments described herein are illustrated in
In contrast, in the configuration of
It should be appreciated that the operation of the motion processor 584 may be repeated continuously during the operation of the additive manufacturing system and the fabrication of the desired object. For example, as shown in
Referring now to
The N-2 axis and 2-axis machine control code 630, 632 then passes via interface 504 and received by the real-time motion processor 526. In an embodiment, the real-time motion processor 526 then determines the optimal machine control codes for angles A, B and the operation proceeds in the same manner as
Referring now to
As shown in
The N-2 axis machine control code is further processed using a machine control code (G-Code) to STL generator software in block 659 whose function is to generate a new intermediate 3D CAD model in STL format. This intermediate 3D CAD model is used to generate an OEM specific set of N-2 axis machine codes by the OEM slicer software In an embodiment, it is desired to provide the N-2 axis machine control code as a function of the original N axis sliced model, not the N-2 axis context as would be the case if the source CAD model file were to be processed by the OEM slicer alone. The desired result of the target object is achieved through the principle of superposition. Namely, the N-2 axis and 2-axis machine code operations, when combined together through the superposition of the operations of all the tool axis movements will compose at fabrication time the target object. In other words, the fabrication of the target object is realized by all N-axis operations cooperating together.
This N-2 axis intermediate CAD/STL model data is processed by the OEM slicer software (e.g. an N-2 slicer) in block 656 to generate an OEM N-2 axis machine control code (G-code) in the OEM additive manufacturing system native format. The OEM N-2 axis machine control code is then transferred to both the OEM printer controller in block 660 and optionally to the 2-axis processing module if the OEM N-2 axis machine control code is available in an open standard source format. This last step is optional, and OEM dependent, whereas the OEM N-2 axis machine code, if in source format, can be utilized by the 2-axis processing module motion processer 526 as part of the M feature vector, utilized as additional metadata describing the current fabrication process OEM tool path operations resulting in improved predictions and consequently, tool operation accuracy.
The parser 657 also generates 2-axis model machine control code in block 661 that represents the angular position commands for axis A, B. The 2-axis model machine code and the N-2 model machine control code are also transmitted to the 2-axis processing module 502. The resulting predicted 2-axis rotation values are then transferred to the stepper motor controller in block 670 and the stepper motors are operated in block 672.
It should be appreciated that the N-2 axis intermediate STL model data represents an electronic model of the source object that once processed by the N-2 slicer software in block 656 will produce an N-2 axis model machine control code. This N-2 axis model machine control code is used by the motion processor 526 during operation to predict the model 2-axis machine control code to allow the fabrication of the source object in N axis.
It should be further appreciated that the embodiment of
Referring now to
The 3-axis machine control code 630 and 2-axis table 732 then pass via interface 504 and received by the real-time motion processor 526. In an embodiment, the real-time motion processor 526 then determines the machine control codes for angles A, B based at least in part on the real time position data from sensors 724 and the 2-axis table 732. In an embodiment, only the Z-axis sensor measurement is used with the 2-axis table 732 to determine the angles A, B.
It should be appreciated that in some embodiments, where only 3+2 motion control is provided, the 2-axis processing module 502 may be simplified to directly transmit the machine control code 730 and 2-axis table 732 to the 2-axis processor 534 (similar to
Referring now to
The method 750 begins in block 752 where a CAD model, such as CAD model or target object 770 (
The method 750 then proceeds to block 754 where the geometry of the target object 770 is decomposed into a plurality of volume regions where each volume region may be fabricated in a 3-axis manner. In other words, the individual volume region may be fabricated along 3-axis while the B-axis angular position of the rotational build platform is maintained in a fixed position. Referring to the example target object 770, this object may be decomposed into three volume regions 774, 776, 778 (
The method 750 then proceeds to block 760 where a table (e.g. table 732) is generated of A-axis and B-axis values an end conditions for each volume region. The method 750 then proceeds to block 762 where fabrication begins for the first volume region 774 (e.g. N=1). In
When an end condition has been achieved, such as when the Z-axis value associated with point 780 is achieved for example, the method 750 proceeds to block 766 where the rotational build platform 782 is rotated about the A-axis and B-axis based on 2-axis table 732 to the orientation that allows the second volume region 776 to be fabricated along 3-axis. In the example shown in
It should be appreciated that in the embodiment of
In other embodiments, some overhang of material is allowable. In the embodiment of
In some embodiments it may be desirable to add two additional axis (A, B) to an additive manufacturing system that does not provide a data output, such as the X, Y, Z and optionally M values for example. In applications such as this, it may be desirable to add sensors to the additive manufacturing system such as those described in
Referring now to
To resolve this, embodiments herein may use a method 800 having an HMM model 802 that may be implemented in one or more of the HMM models described herein, that predicts an unknown operating state of the additive manufacturing system based on observational data 804. In this embodiment, observational data such as observational data from sensors 524 for example, is received via the interface 504 to the 2-axis processing module 502. The real-time motion processor 526 receives the observational data from sensors 524 and uses a machine learning module and data about tool/build-platform position data and movement data to predict a current operating state of the additive manufacturing system. As a result, the 2-axis processing module can predict (based on the observational data) whether the additive manufacturing system in an initialization phase 806, a calibration phase 808, a printing phase 810 (e.g.
It should be appreciated that this provides technical advantages in allowing the two-axis build platform to operate independently of any action of the operator or additive manufacturing system while also synchronizing the operation of the two-axis build platform with that of the additive manufacturing system.
It should further be appreciated that in a system such as that shown in
Referring now to
It should be appreciated that there is an offset between the actual N-2 path and the predicted N-2 path. This offset represents a spatial error function (as a vector function of X, Y, Z coordinates) that defines the set of Euclidean distance measurements between the absolute tool path movements (solid black line) directed by the OEM command codes and those specified by the predicted machine codes (dotted line). The goal of the real-time motion processor is to reduce or minimize the error function (e.g. such as a mean-square error minimization algorithm) across the total tool path such that the 2-axis command code selected for each N-2 axis movement is sufficiently accurate in the presence of any motion estimation errors. The result of real-time error reduction or minimization is fabrication of the final target object with minimal or negligible visible defects and an accurate target object geometry. In an embodiment, the motion processor includes a machine learning module, such as a HMM model, plurality of HMM models in one or more topologies including compound structure, neural network, plurality of neural networks, and/or combinations of each for example. The motion processor (e.g. motion processor 526) is implemented in both hardware and software to support high-performance, dynamic reconfigurability and pre-caching (stored in memory) machine learning models that can be pre-trained prior to use within an additive manufacturing system. In an embodiment, using one or more predetermined models, the motion processor is trained dynamically across multiple iterations. The first iteration is referred to as global training case, whereas subsequent iterations are based on end-user specific scenarios and are referred to as local training cases. To support either case, the motion processor contains memory storage for machine learning data, that collectively defines desired run-time machine learning structures and parameters (state transition matrices in the case of an HMM models and weight/coefficients in the case of neural networks) common to all machine learning models implemented by the motion processor. The initial training operation is global in scope, and provides a baseline set of trained HMM or neural networks for motion processor operation prior to exposure to specific CAD models during local training. Global training operations provide for significant reduction in training time used when the solution is deployed and provides the basis for basic operation of the motion processor and its motion estimation and prediction functionality. In an embodiment, numerous training examples are executed in software simulation that represent additive system operations, 3D CAD models, and their respective STL, G-Code representations and simulated positional data and/or feature vectors. The resulting data is utilized as labeled training data for software training (e.g. at the factory) of the respective HMM and neural network models, which once trained, can be pre-loaded into the motion processor memory space as a stored data set. Similar in manner to how program machine code is loaded into a micro-controller Flash or non-volatile memory storage.
Local training by calibration occurs as a combined online training and reconfiguration process whereby a set of calibration models are utilized with known relationships as they execute (fabrication run) within the OEM additive manufacturing system environment. In an embodiment, the local training process provides a technical effect of further enhancing the accuracy and performance of the motion processor machine learning models by updating each of the model parameters and structure as desired based on the use of error reduction/minimization and correction algorithms including expectation maximization methods, executing within the motion processor as described herein. It should be appreciated, that while the global training operation is performed in software, the local training is based on the actual/physical fabrication of one or more calibration target objects where the input CAD model parameters are known, the target observation state space (X, Y, Z, V, and M), where it is desired is to further improve based on empirical run-time data the prediction of the most likely next-state machine control code that aligns to the OEM machine control code instructions or hidden state space. A second form of local training entails dynamic learning during additive manufacturing system fabrication operation of new target objects and their respective input models. In this form, combined online training and reconfiguration of the motion processor HMM/NN models are based on unknown (non-calibration models) CAD models being fabricated for the first time. In this scenario the motion processor is dynamically updating and reconfiguring the machine learning models in an adaptive manner. In this operating mode, the motion processor is computing in real-time, error reduction/minimization and expectation increase/maximization algorithms (reducing/minimizing the gap of the actual vs. predicted tool path based on the machine code domain) in order to further improve its motion estimation and prediction of next-state machine control code (e.g. g-code) at run-time. In this mode, the motion processor is executing dynamic updates to all the machine learning parameters and structures as the target object fabrication is in process. As an embodiment, it should be appreciated that the accuracy and performance of the motion processor and machine learning functionalities described can be further optimized by utilizing all knowledge from and across the multiple ongoing fabrication activities. That is, in an embodiment, all fabrication cycles represent multiple incremental local training processes and opportunities so that all local optima can be utilized to achieve a global optimal. As such, knowledge/information gained from each fabrication run is refactored into the global set of machine learning model datasets and structures (update models in persistent memory). This additional method provides for additional optimization, accuracy, and machine learning model improvement, since we are learning and retraining across all models encountered collectively.
Referring now to
In an embodiment, the system 1000 may include sensors 1010, 1012, 1014. In the illustrated embodiment, the sensor 1010 measures in the x-direction to the surface of the build platform 1002, the sensor 1012 measures in the Y direction, and the sensor 1014 measures in the Z direction. In an embodiment, the sensors 1010, 1012 are arranged on an angle β, θ. These angles β, θ may be fixed for example. The angles β, θ may further be adjusted, such as using a set screw, to direct the light from the sensors 1010, 1012 onto a predetermined location, such as an indicia on the platform area 1004, or a feature on a fabricated object 1016, 1018 for example. In an embodiment, a different calibration platform is provided that includes different indicia (e.g. printed markers or embossed elements) that are used for calibrating the angle of the sensors 1010, 1012.
In still other embodiments, the system 1000 may include a calibration plate or fixture. This calibration plate may be removably coupled to the build platform 1002 or the build platform 1002 may be replaced by the calibration plate. The calibration plate may include on or more features, such as a boss for example, having a predetermined size, shape, and location. These features may be used in the same manner as the fabricated objects 1016, 1018 to calibrate the sensors 1010, 1012. In some embodiments, multiple calibration plates may be provided. In still further embodiments, the calibration plate may be used in combination with the method described herein where fabricated objects are formed on the calibration plate. For example, an initial calibration may be used to perform an initial calibration, then the indicia or fabricated objects 1016, 1018 are used to perform either an additional calibration or subsequent calibrations of the sensors 1010, 1012.
It should be appreciated that in the illustrated embodiment, the build platform 1002 moves in the Z direction, so the sensor 1014 may be positioned on the frame of the additive manufacturing chamber to measure the movement of the build platform 1002. In other embodiments, the sensor 1014 may be positioned on the tool 1008. In other embodiments, the sensor 1014 may be positioned within the build platform 1002 as an integral part of the build platform.
In an embodiment, the sensors 1010, 1012, 1014 may be calibrated to the system 1000. Referring to
The method then proceeds to block 1026 where the tool 1008 is moved to a predetermined position and the sensors 1010, 1012, 1014 are used to measure the distances D1, D2 in block 1028. The distances D1, D2 and the predetermined fixed angles θ, β are compared with predetermined values (e.g. expected values) and X, Y, Z offsets are determined in block 1030.
When the operator desires to fabricate a source object, the method 1020 moves to block 1032 where operation of the additive manufacturing system 1000 is initiated. The method 1020 then proceeds to measure the distances and angles to the build platform 1002 using the sensors 1010, 1012, 1014 in block 1034. In block 1036, the actual location of the tool 1008 and build platform 1002 are then determined based at least in part on the offset values determined in block 1030. These actual X, Y, Z and optionally M values are then used in block 1038 as inputs to the control system 500, 600, 700 to predict the A, B angles of the 2-axis build area 1006 during operation. It should be appreciated that the method 1020 is repeated continuously during operation to provide observational data to the real-time motion processor.
Referring now to
The system 1100 further includes a plurality of sensors 1110, 1112, 1114 that measure three orthogonal distances. In an embodiment the sensor 1110 measures a distance to a wall 1111 of the system 1100 build chamber and the sensor 1112 measures a distance to a wall 1113 of the system 1100 build chamber. As part of the calibration process, an embodiment includes the distance sensors in conjunction with the motion processor calibrating against a non-planar OEM chassis surface to account for topographical variations in each of the OEM printer wall elevations during subsequent distance measurements. The topographical map is stored in non-volatile memory as a set of calibration offsets or correction factors, so that the applicable correction factor is applied to each corresponding distance measurement location taken in order to achieve an accurate X, Y, and Z measurement during run-time operation of the system.
Referring now to
The operator then initiates operation to fabricate a source object in block 1127. During operation, the distances to the walls 1111, 1113 and the platform 1102 are measured using the sensors 1110, 1112, 1114 in block 1128 with correction factors applied as previously described. The method 1120 then proceeds to block 1130 where the actual position of the tool 1108 and build platform 1102 are determined based on the measured distances, the generated map from block 1124, and the calibration offsets. The method 1120 then proceeds to block 1132 where the X, Y, Z and optionally M values are transmitted to the motion processor to predict the A, B values as described herein. It should be appreciated that blocks 1128, 1130, 1132 may be repeated continuously during operation to provide real-time observational data to the motion processor.
Referring now to
One or more embodiments described herein can utilize machine learning techniques to perform tasks, such as to predict a next state of operation of an additive manufacturing system. More specifically, one or more embodiments described herein can incorporate and utilize rule-based decision making and artificial intelligence (AI) reasoning to accomplish the various operations described herein, namely the prediction of an unknown state, such as the next operation being performed by an additive manufacturing system, based on observational data. The phrase “machine learning” broadly describes a function of electronic systems that learn from data. A machine learning system, engine, or module can include a trainable machine learning algorithm that can be trained, such as in an external cloud environment, to learn functional relationships between inputs and outputs, and the resulting model (sometimes referred to as a “trained neural network,” “trained model,” and/or “trained machine learning model”) can be used for predicting a next operating state of an additive manufacturing system and determined angular positions of a 2-axis component, for example. In one or more embodiments, in addition to the HMM models described herein, machine learning functionality can be implemented using an artificial neural network (ANN) having the capability to be trained to perform a function. In machine learning and cognitive science, ANNs are a family of statistical learning models inspired by the biological neural networks of animals, and in particular the brain. ANNs can be used to estimate or approximate systems and functions that depend on a large number of inputs. Convolutional neural networks (CNN) are a class of deep, feed-forward ANNs that are particularly useful at tasks such as, but not limited to analyzing visual imagery and natural language processing (NLP). Recurrent neural networks (RNN) are another class of deep, feed-forward ANNs and are particularly useful at tasks such as, but not limited to, unsegmented connected handwriting recognition and speech recognition. Other types of neural networks are also known and can be used in accordance with one or more embodiments described herein.
ANNs can be embodied as so-called “neuromorphic” systems of interconnected processor elements that act as simulated “neurons” and exchange “messages” between each other in the form of electronic signals. Similar to the so-called “plasticity” of synaptic neurotransmitter connections that carry messages between biological neurons, the connections in ANNs that carry electronic messages between simulated neurons are provided with numeric weights that correspond to the strength or weakness of a given connection. The weights can be adjusted and tuned based on experience, making ANNs adaptive to inputs and capable of learning. For example, an ANN for handwriting recognition is defined by a set of input neurons that can be activated by the pixels of an input image. After being weighted and transformed by a function determined by the network's designer, the activation of these input neurons are then passed to other downstream neurons, which are often referred to as “hidden” neurons. This process is repeated until an output neuron is activated. The activated output neuron determines which character was input. It should be appreciated that these same techniques can be applied in the case of predicting of a next operating state of an additive manufacturing system as described herein.
Systems for training and using a machine learning model are now described in more detail with reference to
The training 1202 begins with training data 1212, which may be structured or unstructured data. According to one or more embodiments described herein, the training data 1212 includes a CAD model and machine control code for fabricating the target object with an additive manufacturing system. The training engine 1216 receives the training data 1212 and a model form 1214. The model form 1214 represents a base model that is untrained. The model form 1214 can have preset weights and biases, which can be adjusted during training. It should be appreciated that the model form 1214 can be selected from many different model forms depending on the task to be performed. For example, where the training 1202 is to train a model to perform image classification, the model form 1214 may be a model form of a CNN. The training 1202 can be supervised learning, semi-supervised learning, unsupervised learning, reinforcement learning, and/or the like, including combinations and/or multiples thereof. For example, supervised learning can be used to train a machine learning model to classify an object of interest in an image. To do this, the training data 1212 includes labeled images, including images of the object of interest with associated labels (ground truth) and other images that do not include the object of interest with associated labels. In this example, the training engine 1216 takes as input a training image from the training data 1212, makes a prediction for classifying the image, and compares the prediction to the known label. The training engine 1216 then adjusts weights and/or biases of the model based on results of the comparison, such as by using backpropagation. The training 1202 may be performed multiple times (referred to as “epochs”) until a suitable model is trained (e.g., the trained model 1218).
Once trained, the trained model 1218 can be used to perform inference 1204 to perform a task, such as to predict a next operating state of an additive manufacturing system. The inference engine 1220 applies the trained model 1218 to new data 1222 (e.g., real-world, non-training data). For example, if the trained model 1218 is trained to classify images of a particular object, such as a chair, the new data 1222 can be an image of a chair that was not part of the training data 1212. In this way, the new data 1222 represents data to which the trained model 1218 has not been exposed. The inference engine 1220 makes a prediction 1224 (e.g., a classification of an object in an image of the new data 1222) and passes the prediction 1224 to the system 1226 (e.g., the processor 535 of
In accordance with one or more embodiments, the predictions 1224 generated by the inference engine 1220 are periodically monitored and verified to ensure that the inference engine 1220 is operating as expected. Based on the verification, additional training 1202 may occur using the trained model 1218 as the starting point. The additional training 1202 may include all or a subset of the original training data 1212 and/or new training data 1212. In accordance with one or more embodiments, the training 1202 includes updating the trained model 1218 to account for changes in expected input data.
The term “about” is intended to include the degree of error associated with measurement of the particular quantity based upon the equipment available at the time of filing the application. For example, “about” can include a range of ±8% or 5%, or 2% of a given value.
Additionally, the term “exemplary” is used herein to mean “serving as an example, instance or illustration.” Any embodiment or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments or designs. The terms “at least one” and “one or more” are understood to include any integer number greater than or equal to one, i.e. one, two, three, four, etc. The terms “a plurality” are understood to include any integer number greater than or equal to two, i.e. two, three, four, five, etc. The term “connection” can include an indirect “connection” and a direct “connection.” It should also be noted that the terms “first”, “second”, “third”, “upper”, “lower”, and the like may be used herein to modify various elements. These modifiers do not imply a spatial, sequential, or hierarchical order to the modified elements unless specifically stated.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, element components, and/or groups thereof.
While the disclosure is provided in detail in connection with only a limited number of embodiments, it should be readily understood that the disclosure is not limited to such disclosed embodiments. Rather, the disclosure can be modified to incorporate any number of variations, alterations, substitutions, or equivalent arrangements not heretofore described, but which are commensurate with the spirit and scope of the disclosure. Additionally, while various embodiments of the disclosure have been described, it is to be understood that the exemplary embodiment(s) may include only some of the described exemplary aspects. Accordingly, the disclosure is not to be seen as limited by the foregoing description, but is only limited by the scope of the appended claims.
This application claims benefit of U.S. Provisional Patent Application Ser. No. 63/455,083 filed on Mar. 28, 2023, which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
63455083 | Mar 2023 | US |