The present disclosure generally relates to part tracking and, more particularly, to systems and methods for part tracking using machine learning techniques.
Welding is sometimes used to assemble one or more parts. Some conventional weld monitoring systems capture and/or monitor data relating to each individual weld. Once monitoring of individual welds is underway, a weld monitoring system may collect data relating to many thousands of individual welds.
Limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with the present disclosure as set forth in the remainder of the present application with reference to the drawings.
The present disclosure is directed to systems and methods for part tracking using machine learning techniques, substantially as illustrated by and/or described in connection with at least one of the figures, and as set forth more completely in the claims.
These and other advantages, aspects and novel features of the present disclosure, as well as details of an illustrated example thereof, will be more fully understood from the following description and drawings.
The figures are not necessarily to scale. Where appropriate, the same or similar reference numerals are used in the figures to refer to similar or identical elements. For example, reference numerals utilizing lettering (e.g., welding system 100a, welding system 100b) refer to instances of the same reference numeral that does not have the lettering (e.g., welding system 100).
Conventional weld monitoring systems capture and/or monitor data relating to individual welds of welding operations. The result can be a collection of data relating to many thousands of welds, with no indication as to what parts were assembled via the welds. While manual identification of each of the parts assembled by the welds may be theoretically possible, such manual identification would likely be very complicated, cumbersome, and/or time consuming.
Some conventional part tracking systems can identify parts assembled via welds in real time. However, these part tracking systems typically require some manual operator input to tell the system when a part is being started and when a part has been finished. The part tracking systems that do automatically identify and track part assembly in real time require extensive setup by an expert before the system is able to operate effectively. Setting up the system can be a complicated, expensive, and time consuming task, even with an expert. Additionally, even after setup, the system may be strictly future looking—able to track parts that are created after setup, but unable to identify parts created via prior welds.
Some examples of the present disclosure relate to systems that analyze data related to one or more welds to identify one or more parts repeatedly assembled by the welds, and/or determine characteristics of one or more parts repeatedly assembled by the welds. In some examples, the disclosed systems may use machine learning techniques to identify the types of parts assembled, and/or determine the characteristics of the parts. Identifying the parts assembled from the welds may make it possible to do part based analytics (e.g., related to part quality, cost, production efficiency, etc.), as opposed to just weld based analytics. Additionally, identifying a part assembled from several welds results in an ordering of those several welds used to create the part, which can make it easier to compare/contrast similar welds across parts. Further, determining the characteristics of the parts can assist in configuring the necessary settings of certain part tracking systems, thereby reducing the expertise, time, and personnel required to accurately configure automatic part tracking systems.
Some examples of the present disclosure relate to a system, comprising processing circuitry; and memory circuitry comprising computer readable instructions which, when executed, cause the processing circuitry to identify a plurality of welds that occur during a time period based on captured data pertaining to a welding related operation taking place during the time period, and analyze one or more feature characteristics of the plurality of welds determined based on the sensor data using one or more machine learning techniques to determine a type of part assembled via first consecutive welds of the plurality of welds.
In some examples, the one or more machine learning techniques include a distance metric, a statistical analysis, or a neural net technique. In some examples, the memory circuitry comprises computer readable instructions which, when executed, further cause the processing circuitry to construct a model of the type of part using at least some first characteristics of the one or more feature characteristics, wherein the first consecutive welds are associated with the first characteristics, and apply the model to second characteristics of the one or more feature characteristics to identify second consecutive welds that match the model. In some examples, the model comprises a neural network representation of the type of part, a data set comprising measured data relating to assembly of the type of part, or a statistical representation of the type of part.
In some examples, the memory circuitry comprises computer readable instructions which, when executed, further cause the processing circuitry to determine whether the second consecutive welds match the model based on a comparison of the second characteristics with one or more model characteristics of the model, and in response to determining the second consecutive welds do match the model, associate the second consecutive welds with the type of part. In some examples, the memory circuitry comprises computer readable instructions which, when executed, further cause the processing circuitry to analyze a quality of a part assembled by the one or more other consecutive welds via a comparison of the second characteristics with ideal feature characteristics. In some examples, the ideal feature characteristics comprise one or more statistical averages or standard deviations, or the ideal feature characteristics are determined based on the model.
In some examples, the memory circuitry comprises computer readable instructions which, when executed, further cause the processing circuitry to analyze a production metric or cost metric of a part assembled by the one or more other consecutive welds. In some examples, the memory circuitry comprises computer readable instructions which, when executed, further cause the processing circuitry to predict a next part assembled via one or more new welds will be a part type the same as the type of part assembled by the second consecutive welds, output, via a user interface, directions that guide an operator through assembly of the part type, determine whether one or more new feature characteristics of the one or more new welds are within one or more threshold deviations of one or more expected feature characteristics for the part type, and in response to determining the one or more new feature characteristics are not within one or more threshold deviations of the one or more expected featured characteristics, output a notification. In some examples, the model comprises a first model, and wherein the memory circuitry comprises computer readable instructions which, when executed, further cause the processing circuitry to determine whether the one or more second consecutive welds match the first model based on a comparison of the second characteristics with one or more first model characteristics of the first model, and in response to determining the one or more second consecutive welds do not match the first model, determine whether the one or more second consecutive welds match a second model based on a comparison of the second characteristics with one or more second model characteristics of the second model.
Some examples of the present disclosure relate to a method, comprising identifying, via processing circuitry, a plurality of welds that occur during a time period based on captured data pertaining to a welding related operation taking place during the time period, and analyzing one or more feature characteristics of the plurality of welds using one or more machine learning techniques to determine a type of part assembled via first consecutive welds of the plurality of welds.
In some examples, the one or more machine learning techniques include a distance metric, a statistical analysis, or a neural net technique. In some examples, the method further comprises constructing a model of the type of part using at least some first characteristics of the one or more feature characteristics, wherein the first consecutive welds are associated with the first characteristics; and applying the model to second characteristics of the one or more feature characteristics to identify second consecutive welds that match the model. In some examples, the model comprises a neural network representation of the type of part, a data set comprising measured data relating to assembly of the type of part, or a statistical representation of the type of part.
In some examples, the method further comprises determining whether the second consecutive welds match the model based on a comparison of the second characteristics with one or more model characteristics of the model; and in response to determining the second consecutive welds do match the model, associate the second consecutive welds with the type of part. In some examples, the method further comprises analyzing a quality of a part assembled by the one or more other consecutive welds via a comparison of the second characteristics with ideal feature characteristics. In some examples, the ideal feature characteristics comprise one or more statistical averages or standard deviations, or the ideal feature characteristics are determined based on the model.
In some examples, the method further comprises analyzing a production metric or cost metric of a part assembled by the one or more other consecutive welds. In some examples, the method further comprises predicting a next part assembled via one or more new welds will be a part type the same as the type of part assembled by the second consecutive welds; outputting, via a user interface, directions that guide an operator through assembly of the part type; determining whether one or more new feature characteristics of the one or more new welds are within one or more threshold deviations of one or more expected feature characteristics for the part type; and in response to determining the one or more new feature characteristics are not within one or more threshold deviations of the one or more expected featured characteristics, output a notification. In some examples, the method further comprises determining whether the one or more second consecutive welds match the first model based on a comparison of the second characteristics with one or more first model characteristics of the first model, and in response to determining the one or more second consecutive welds do not match the first model, determine whether the one or more second consecutive welds match a second model based on a comparison of the second characteristics with one or more second model characteristics of the second model.
In the example of
In the example of
In the example of
In the example of
In the example of
In the example of
In the example of
In the example of
In some examples, the control circuitry 134 is also electrically coupled to and/or configured to control the wire feeder 140 and/or gas supply 142. In some examples, the control circuitry 134 may control the wire feeder 140 to output wire at a target speed and/or direction. For example, the control circuitry 134 may control the motor of the wire feeder 140 to feed wire to (and/or retract the wire from) the torch 118 at a target speed. In some examples, the welding-type power supply 108 may control the gas supply 142 to output a target type and/or amount gas. For example, the control circuitry 134 may control a valve in communication with the gas supply 142 to regulate the gas delivered to the welding torch 118.
In the example of
In the example of
In some examples, the sensors 150 may be configured to sense, detect, and/or measure various data of the welding system 100. For example, the sensors 150 may sense, detect, and/or measure data such as one or more locations, positions, and/or movements of the operator 116, welding torch 118, workpiece 110, and/or other objects within the welding cell 101. As another example, the sensors 150 may sense, detect, and/or measure data such as air temperature, air quality, electromagnetism, and/or noise in the welding cell 101. As another example, the sensors 150 may sense, detect, and/or measure data such as a voltage and/or current of the power received by the welding-type power supply 108, power conversion circuitry 132, and/or welding torch 118, and/or the voltage and/or current of the power output by the welding-type power supply 108 and/or power conversion circuitry 132. As another example, the sensors 150 may sense, detect, and/or measure data such as a velocity (e.g., speed and/or feed direction) of the wire feeder 140 and/or type of wire being fed by the wire feeder 140. As another example, the sensors 150 may sense, detect, and/or measure data such as a gas type and/or gas flow (e.g., through a valve) from the gas supply 142 to the welding torch 118. As another example, the sensors 150 may sense, detect, and/or measure data such as a trigger signal (e.g., actuation, de-actuation, etc.) of the welding torch 118, and/or a clamping signal (e.g., clamp, unclamp, etc.) of the clamp 117.
In some examples, the sensors 150 may be configured to communicate data sensed, detected, and/or measured to the welding-type power supply 108 and/or tracking station 202. In some examples, the control circuitry 134 may be in communication with some or all of the sensors 150 and/or otherwise configured to receive information from the sensors 150. In some examples, the tracking station 202 may be in communication with some or all of the sensors 150 and/or otherwise configured to receive information from the sensors 150 (e.g., through the control circuitry 134).
In some examples, a welding operation (and/or welding process) may be initiated when the operator 116 actuates the trigger 119 of the welding torch 118 (and/or otherwise activates the welding torch 118). During the welding operation, the welding-type power provided by the welding-type power supply 108 may be applied to the electrode (e.g., wire electrode) of the welding torch 118 in order to produce a welding arc between the electrode and the one or more workpieces 110. The heat of the arc may melt portions of a filler material (e.g., wire) and/or workpiece 110, thereby creating a molten weld pool. Movement of the welding torch 118 (e.g., by the operator) may move the weld pool, creating one or more welds 111.
When the welding operation is finished, the operator 116 may release the trigger 119 (and/or otherwise deactivate/de-actuate the welding torch 118). In some examples, the control circuitry 134 may detect that the welding operation has finished. For example, the control circuitry 134 may detect a trigger release signal via sensor 150. As another example, the control circuitry 134 may receive a torch deactivation command via the operator interface 144 (e.g., where the torch 118 is maneuvered by a robot and/or automated welding machine).
In some examples, the sensors 150 may detect certain data pertaining to the welding-type power supply 108, clamp 117, bench 112, and/or welding torch 118 during a welding process. In some examples, the welding-type power supply 108 may also detect certain data (e.g., entered via the operator interface 144, detected by control circuitry 134, etc.) In some examples, the sensors 150 and/or welding-type power supply 108 may be configured to communicate this data to the tracking station 202 (directly and/or through welding-type power supply 108). In some examples, the data may be communicated to the tracking station 202 in real time, periodically during a welding operation, and/or after a welding operation. In some examples, the tracking station 202 may be embodied and/or implemented within the welding-type power supply 108 (e.g., via control circuitry 134)
The data collected by the sensors 150, power supply 108, and/or other portions of the welding system 100 can be valuable. For example, the data may be analyzed to automatically identify individual welds, as well as determine quality, cost, and/or production metrics of the individual welds. However, the data would be even more valuable if the part(s), and/or type(s) of part(s), produced by the individual welds could be automatically identified as well.
In the example of
In the example of
In the example of
In the example of
In the example of
While shown as stored in memory circuitry 214 in the example of
In some examples, the part tracking program 300 may analyze data collected by the sensors 150, operator interface 144, and/or welding equipment 151 of each welding system 100, as well as data collected via the UI 216 (collectively referred to hereinafter as sensor data 218). In some examples, the sensor data 218 may be used to identify time periods of welding activity (e.g., via signal(s) representative of a trigger pull/release, voltage/current detection, etc.). In some examples, these time periods of welding activity may be identified as welds 234 (e.g., of the identified welds 222). In some examples, the part tracking program 300 may determine certain feature characteristics 220 based on the analysis of the sensor data 218, and associate relevant feature characteristics 220 with each weld 234 of the identified welds 222.
In some examples, the part tracking program 300 may identify the parts 236 (and/or type(s) of parts 236) created and/or assembled via identified welds 222 using one or more machine learning techniques. For example, the part tracking program 300 may create one or more part models 232 using machine learning techniques (and/or access one or more existing part models 232). In some examples, the part tracking program 300 may create (and/or use) a different part model 232 for each different type of part 236 identified by the part tracking program 300 and/or assembled by the welding system 100. In some examples, the part tracking program 300 may use the part models 232 to identify parts 236 (and/or types of parts 236) created and/or assembled via one or more welds 234 of the identified welds 222.
In the example of
As shown, the part tracking program 300 also collects known constraints 226 (e.g., from UI 216) at block 302. In some examples, the known constraints 226 may comprise information that may assist the part tracking program 300 in constructing and/or selecting part model(s) 232. In some examples, known constraints 226 may include such information as, for example, probable (and/or actual): number(s) of welds 234 in a part 236 (and/or type of part 236), parts 236 (and/or type(s) of parts 236) produced by particular operator(s) 116, parts 236 (and/or type(s) of parts 236) produced during particular shift(s), parts 236 (and/or type(s) of parts 236) produced during particular time frames, parts 236 (and/or type(s) of parts 236) produced using particular fixture(s), and/or other pertinent information. In some examples, known constraints 226 may include such information as, for example, a preference for (or against) models 232 trained on welds 234 of one or more particular operators 116, shifts, time periods, fixtures, parts 236, etc.
In some examples, the sensor data 218 and/or constraints 226 may be stored in the DB 230 and/or memory. While shown in the example of
In the example of
While shown in the example of
In the example of
In some examples, feature characteristics 220 of a weld 234 may comprise one or more of a weld start time, a weld end time, a weld duration, a weld type, a weld identifier, a weld class, a weld procedure, a voltage, a current, a wire feed speed, a gas flow, a torch travel speed, a torch travel angle, a work angle, weld coordinates, a weld temperature, a weld property measurement, weld inspection data, a shift start time, a shift end time, an operator identifier, an operator name, an operator qualification, workpiece material preparation information, a workpiece material type, a wire type, a filler material property, a gas type, an assembly location, an ambient temperature, an ambient humidity, a false weld/arc flag (e.g., if weld duration is below a threshold), an ignore weld flag (e.g., if some input provided directing system to ignore), a total deposited wire/filler amount, a total gas amount used, a weld pass number, a weld confidence metric, a weld quality metric, a previous event type (e.g., weld, operator login, equipment fault, tip change, shift start/end, break start/end, etc.), a time since last weld, a time until next weld, a previous workflow event (e.g., perform maintenance), a job type, an image of an operational environment, and/or an image of the welding-related operation. In some examples, feature characteristics may 220 also be determined for and/or associated with each part 236, in addition to the feature characteristics 220 of the welds 234 of the part 236. In some examples, feature characteristics 220 specific to a part 236 may include one or more of a part assembly start time, a part assembly end time, a part assembly duration, a number of expected welds, a number of completed welds, a number of false arcs, a number of ignored welds, a number of extra welds, a number of missing welds, a clamp time, a cycle time, a total deposited wire/filler amount, a total arc time, a total gas amount used, a part property measurement, part inspection data, a shift start time, a shift end time, an operator identifier, an operator name, an operator qualification, and/or a job type. In some examples, the part tracking program 300 may store the feature characteristics in the DB 230.
In some examples, the part tracking program 300 may output (e.g., via the UI 216 and/or operator interface 144) one or more graphical representations of the identified welds 222 similar to the diagram of the time period 900 shown in
In some examples, the part tracking program 300 may output a diagram similar to the diagram shown in
In the example of
In the example of
In some examples, the selection of the one or more part models 232 may be based (at least partially) on one or more of the known constraints 226. In some examples, the part tracking program 300 may determine which part models 232 to select and/or access based on a confidence level associated with each part model 232 at block 400 of the part tracking program 300. In some examples, the number of part models 232 selected and/or accessed may be based on one or more feature characteristics 220.
In the example of
In some examples, the application of the part model(s) 232 to identified welds 222 at block 800 may include analyzing groups of consecutive welds 234 in search of one or more part model 232 matches. In some examples, each part model 232 may model a part 236 with n welds, where n is an integer (e.g., 1, 2, 3, etc.). In some examples, each part model 232 may specify the value of n (e.g., in metadata, a readable file, some association, etc.) for that model 232. At block 800, the part tracking program 300 may analyze different n sized groups of consecutive welds 234 and identify those n consecutive welds 234 as a part 236 if the n consecutive welds 234 match the part model 232. In some examples, the part tracking program 300 may analyze smaller groups of consecutive welds 234 in real time, in an attempt to determine which part model 232 the consecutive welds 234 would most likely match when all n consecutive welds 234 were completed. In some examples, feature characteristics 220 (and/or other information) of each part 236 (e.g., part type, number of welds, etc.) may be saved and/or associated with the part 236. An example implementation of block 800 is discussed with respect to
In some examples, the part tracking program 300 may output (e.g., via the UI 216 and/or operator interface 144) one or more graphical representations of identified parts 224 and/or identified welds 222 in a time period 900, similar to the diagram shown in
In some examples, the part tracking program 300 may output a diagram similar to the diagram shown in
In the example of
In some examples, the part tracking program 300 may compare one or more parts 236 to an ideal part and/or typical part, and determine a quality metric of the part 236 based on the comparison. In some examples, the part tracking program 300 may determine the appropriate ideal and/or typical part for comparison based on a part type of the part 236 (e.g., determined at block 800). In some examples, one or more part models 232 may be used as ideal and/or typical parts. In some examples, the ideal and/or typical part may be part 236 having one or more welds 234 with one or more feature characteristics 220 that include statistical average and/or standard deviation values compiled from statistical analysis of many parts 236 of the appropriate part type (and/or part quality).
In some examples, the part tracking program 300 may determine quality metrics of a part 236 in real time. For example, the part tracking program 300 may identify welds 234 as they are performed, and/or parts 236 as they are assembled, in real time. In such an example, the part tracking program 300 may assume and/or predict that the next part 236 being created (e.g., by the newly identified weld(s) 234) is of the same type as the last part 236 that was created and/or identified.
In some examples, the part tracking program 300 may compare feature characteristics 220 of each newly identified weld 234 to feature characteristics 220 of an ideal part, typical part, and/or part model 232, as the weld 234 is identified. In some examples, the part tracking program 300 may output a notification (and/or alarm, communication, disable signal, etc.) if the quality metrics deviate more than a threshold amount from what is expected. Such a real time notification may allow an operator 116 to immediately fix whatever caused the deviation in real time, rather than having to go back and fix later, or failing to realize a fix was needed at all. In some examples, the part tracking program 300 may also output directions (e.g., via the UI 216 and/or operator interface 144) to guide an operator 116 through assembly of the part 236, to help minimize deviation from expectation.
In the example of
In the example of
In the example of
In the example of
In the example of
In the example of
In some examples, the part tracking program 300 may also determine at block 508 whether there are a relatively consistent number of intervening welds 234v between pairs of initial welds 234i, or pairs of final welds 234f. For example, if the initial/final weld hypothesis analysis is sufficiently accurate and/or precise, the part tracking program 300 may successfully identify all, or nearly all, initial/final welds 234 in the test subset. In such an example, the part tracking program 300 may find that the same number of intervening welds 234v always (or almost always—e.g., at or above a threshold percentage) separate adjacent initial welds 234i, or adjacent final welds 234f. In some examples, the part tracking program 300 may determine the number of welds 234 in a part 236 based on the number of typical welds 234 separating adjacent pairs of initial welds 234i and/or final welds 234f. If the part tracking program 300 finds a relatively consistent number of intervening welds 234v separate adjacent pairs of initial welds 234i and/or final welds 234f, the part tracking program 300 may determine that each part 236 has a number of welds 234 equal to the number of intervening welds 234v plus one.
In the example of
In some examples, the part tracking program 300 may output (e.g., via the UI 216 and/or operator interface 144) one or more graphical representations of the initial welds 234, final welds 234, and/or intervening welds 234i, similar to the diagram of the time period 900 shown in
In some examples, the part tracking program 300 may output a diagram similar to the diagram shown in
In the example of
Different algorithms may be more or less effective at testing an N weld hypothesis, depending on the data being tested (e.g., the test subset). In some examples, the part tracking program 300 may determine the algorithm to test the hypothesis based on one or more known constraints 226 and/or feature characteristics 220. In some examples, the part tracking program 300 may choose one algorithm to test the N weld hypothesis initially and then subsequently test using one or more different algorithms.
In some examples, the part tracking program 300 may use an initial N value of 1. In some examples, the part tracking program 300 may use a different initial N value (e.g., 2, 3, 4) based on user input, a saved default, or some predetermination. In some examples, the part tracking program 300 may determine an initial N value based on a number of typical intervening welds 234 found by the initial/final weld hypothesis block 500.
In some examples, the part tracking program 300 may determine an initial N value based on one or more known constraints 226 and/or feature characteristics 220. For example, the known constraints 226 may indicate that most parts 236 produced by a particular operator 116 and/or a particular shift are x type parts 236, or have y number of welds 234 (or between y and z welds 234). In such an example, the part tracking program 300 may determine whether the welds 234 in the test subset were performed by that particular operator 116 and/or on that particular shift. If so, the part tracking program 300 may set the beginning N value to be y (or z), or determine what the typical number (and/or number range) of welds 234 is for x type parts 236 (e.g., via a lookup in memory).
In the example of
In some examples, the part tracking program 300 may determine a match metric at block 604 representative of a degree to which the part tracking program 300 was successful in finding a repeating pattern of N consecutive welds 234 in the test subset of identified welds 222 using the testing algorithm. For example, the match metric may be a percentage, a grade, a score, and/or some other appropriate metric. In some examples, the part tracking program 300 may further determine a confidence metric representative of a degree to which the match metric is likely to be accurate.
In the example of
In the example of
In the example of
In the example of
In some examples, the part tracking program 300 may determine the threshold(s) based on one or more known constraints 226 and/or feature characteristics 220. For example, the known constraints 226 may indicate that most parts 236 produced by a particular operator 116 and/or a particular shift have between x and y welds 234. In such an example, the part tracking program 300 may determine the upper threshold to be x (or x+1) and/or the lower threshold to be y (or y−1). As shown, the part tracking program 300 returns to block 604 after block 612 if the part tracking program 300 determines the N value is not outside the threshold range.
In the example of
In some examples, the part tracking program 300 may keep (e.g., record and/or store) the N weld hypothesis with the best (e.g., highest) match metric. In some examples, the part tracking program 300 may keep (e.g., record and/or store) the N weld hypothesis with the best (e.g., highest) combined match and confidence metric. In some examples, the part tracking program 300 may keep (e.g., record and/or store) multiple N weld hypothesis (e.g., top 2, 3, etc.).
In some examples, the part tracking program 300 may discard an N weld hypothesis with an N value that is a multiple of a different kept N weld hypothesis. For example, the part tracking program 300 may keep a 5 weld hypothesis and discard 10, 15, and 20 weld hypotheses in the assumption that the 10, 15, and 20 weld patterns are simply repeating 5 weld patterns. In some examples, the part tracking program 300 may discard the N weld hypotheses that are not best fits, or have match metrics (or combined metrics) that are too low (e.g., below a threshold). In some examples, the part tracking program 300 may record an error or fault, or hypothesize a fabrication procedure is taking place, where there are no best fit N weld hypotheses to record. As shown, the N weld hypothesis analysis block 600 ends after block 614.
In the example of
In the example of
In the example of
In the example of
In some examples, the part tracking program 300 may output (e.g., via the UI 216 and/or operator interface 144) one or more dendograms 1000 similar to the dendogram 1000 shown in
In some examples, the part tracking program 300 may output a dendogram 1000 as a prompt to solicit feedback from a user. For example, a user may see a dendogram 1000 similar to
In the example of
In the example of
In the example of
In the example of
In the example of
In the example of
In the example of
In some examples, the part model(s) 232 may be one or more neural nets trained on N consecutive welds 234 of one or more N weld parts 236 identified in blocks 500-700. In some examples, the part model(s) 232 may be one or more N weld statistical models. In some examples, each N weld statistical model may be a part 236 with N welds 234, where the feature characteristic 220 values of each weld 234 have been reduced (e.g., by taking averages and/or standard deviations of one or more N weld parts 236 identified in blocks 500-700). In some examples, the part model(s) 232 may be one or more data set collections comprising a collection of N weld parts 236 identified in blocks 500-700.
In some examples, the part tracking program 300 may determine that an applicable part model 232 has been previously developed, in which case, the part model 232 may be loaded from memory. In some examples, an existing part model 232 may be updated via the new N weld parts 236 identified in blocks 500-700. In some examples, the part tracking program 300 may first analyze the new N weld parts 236 identified in blocks 500-700 in view of an existing part model 232 (e.g., using a clustering analysis, statistical analysis, neural net, etc.) to determine whether the existing part model 232 is applicable, or a new part model 232 should be created. In the example of
In the example of
In the example of
In the example of
In some examples, the part tracking program 300 may also determine the number of welds 234 in each part 236 represented by the part model(s) 232 selected at block 802 (e.g., via information within and/or associated with the part model 232). In some examples, even a single part model 232 may represent several different parts 236, each with a different number of welds 234. For example, a data collection part model 232 may include a collection of several different types of parts 236, each with a different number of welds 234. As another example, a neural net may be trained on a data collection having several different types of parts 236, each with a different number of welds 234. In some examples, the part tracking program 300 may determine an X-Z number range of the welds 234 of the different parts 236 represented by the part model(s) 232 (e.g., where X and Z are integers and X<=Z.).
In the example of
In the example of
In the example of
For example, where the part model 232 is a data set collection, the part tracking program 300 may perform a K nearest neighbor (KNN) analysis to determine which K (e.g., 5, 10, 15, etc.) parts 236 of the data set collection are “nearest” to the N consecutive welds 234. In some examples, K may be a default value stored in memory. In some examples, the part tracking program 300 may determine K based on one or more known constraints 226 and/or feature characteristics 220. In some examples, the part tracking program 300 may determine which type part 236 makes up the majority of the K “nearest” parts 236. In some examples, the part tracking program 300 may determine that the N consecutive welds 234 were used to assemble that same type of part 236. In some examples, the KNN analysis may be particularly useful when analyzing welds 234 in real time, as the “distance” calculations can be easily scaled to accommodate fewer welds 234 than would normally be in a fully completed part 236.
In some examples, the part tracking program 300 may require that the KNN analysis satisfy certain criteria before relying on the KNN analysis. For example, the part tracking program 300 may require that at least a threshold number of the K nearest neighbors be within a certain threshold distance of the N consecutive welds 234. In some examples, the part tracking program 300 may base the criteria on one or more known constraints 226 and/or feature characteristics 220. In some examples, the part tracking program 300 may determine that the KNN analysis is unreliable if the criteria are not met.
As another example, the part tracking program 300 may perform a statistical analysis, such as where the one or more part models 232 are statistical models. In some examples, the statistical analysis may analyze the N consecutive welds 234 in view of one or more statistical part models 232, and determine, using statistical calculations, the probability that a particular part model 232 corresponds to the N consecutive welds 234. In some examples, the part tracking program 300 may determine that the N consecutive welds 234 were used to assemble a part 236 of a type corresponding to the particular part model 232 with the highest probability.
In some examples, the part tracking program 300 may use Bayesian statistical analysis. In some examples, the part tracking program 300 may require the statistical analysis satisfy certain criteria before relying on the statistical analysis. For example, the part tracking program 300 may require at least a threshold number of part models 232 have a probability of higher than a threshold before relying on the statistical analysis. In some examples, the part tracking program 300 may base the criteria on one or more known constraints 226 and/or feature characteristics 220. In some examples, the part tracking program 300 may determine that the statistical analysis is unreliable if the criteria are not met.
As another example, where the one or more part models 232 are one or more neural nets, the part tracking program 300 may simply pass the N consecutive welds 234 to the neural net and analyze the output. In some examples, the neural net may output the probability that the N consecutive welds correspond to that particular neural net part model 232 (or, where the neural net 232 has been trained on data from several different types of parts 236, the probability that the N consecutive welds correspond to a particular part type). In some examples, the part tracking program 300 may determine that the N consecutive welds 234 were used to assemble a part 236 of a type corresponding to the highest probability. In some examples, the part tracking program 300 may require the neural net analysis satisfy certain criteria before relying on the analysis, similar to that which is discussed above with respect to the statistical analysis.
In the example of
In the example of
In the example of
In the example of
In the example of
The part tracking system 200 disclosed herein uses machine learning techniques to identify parts 236, and/or determine the characteristics of parts 236, repeatedly assembled via one or more welds 234 in a welding cell 101. Identifying parts 236 assembled from the welds 234 may make it possible to do part based analytics (e.g., related to part quality, cost, production efficiency, etc.), as opposed to just weld 234 based analytics. Also, the system can automatically learn which parts 236 are being created (though it may take some time to accumulate enough data). This results in the eventual ability to recognize, monitor, and track parts 236 in real time, as they are created; thereby reducing the expertise, time, and personnel required to accurately configure automatic part tracking systems.
The present methods and/or systems may be realized in hardware, software, or a combination of hardware and software. The present methods and/or systems may be realized in a centralized fashion in at least one computing system, or in a distributed fashion where different elements are spread across several interconnected computing or cloud systems. Any kind of computing system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computing system with a program or other code that, when being loaded and executed, controls the computing system such that it carries out the methods described herein. Another typical implementation may comprise an application specific integrated circuit or chip. Some implementations may comprise a non-transitory machine-readable (e.g., computer readable) medium (e.g., FLASH drive, optical disk, magnetic storage disk, or the like) having stored thereon one or more lines of code executable by a machine, thereby causing the machine to perform processes as described herein.
While the present method and/or system has been described with reference to certain implementations, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present method and/or system. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present disclosure without departing from its scope. Therefore, it is intended that the present method and/or system not be limited to the particular implementations disclosed, but that the present method and/or system will include all implementations falling within the scope of the appended claims.
As used herein, “and/or” means any one or more of the items in the list joined by “and/or”. As an example, “x and/or y” means any element of the three-element set {(x), (y), (x, y)}. In other words, “x and/or y” means “one or both of x and y”. As another example, “x, y, and/or z” means any element of the seven-element set {(x), (y), (z), (x, y), (x, z), (y, z), (x, y, z)}. In other words, “x, y and/or z” means “one or more of x, y and z”.
As utilized herein, the terms “e.g.,” and “for example” set off lists of one or more non-limiting examples, instances, or illustrations.
As used herein, the terms “coupled,” “coupled to,” and “coupled with,” each mean a structural and/or electrical connection, whether attached, affixed, connected, joined, fastened, linked, and/or otherwise secured. As used herein, the term “attach” means to affix, couple, connect, join, fasten, link, and/or otherwise secure. As used herein, the term “connect” means to attach, affix, couple, join, fasten, link, and/or otherwise secure.
As used herein the terms “circuits” and “circuitry” refer to physical electronic components (i.e., hardware) and any software and/or firmware (“code”) which may configure the hardware, be executed by the hardware, and or otherwise be associated with the hardware. As used herein, for example, a particular processor and memory may comprise a first “circuit” when executing a first one or more lines of code and may comprise a second “circuit” when executing a second one or more lines of code. As utilized herein, circuitry is “operable” and/or “configured” to perform a function whenever the circuitry comprises the necessary hardware and/or code (if any is necessary) to perform the function, regardless of whether performance of the function is disabled or enabled (e.g., by a user-configurable setting, factory trim, etc.).
As used herein, a control circuit may include digital and/or analog circuitry, discrete and/or integrated circuitry, microprocessors, DSPs, etc., software, hardware and/or firmware, located on one or more boards, that form part or all of a controller, and/or are used to control a welding process, and/or a device such as a power source or wire feeder.
As used herein, the term “processor” means processing devices, apparatus, programs, circuits, components, systems, and subsystems, whether implemented in hardware, tangibly embodied software, or both, and whether or not it is programmable. The term “processor” as used herein includes, but is not limited to, one or more computing devices, hardwired circuits, signal-modifying devices and systems, devices and machines for controlling systems, central processing units, programmable devices and systems, field-programmable gate arrays, application-specific integrated circuits, systems on a chip, systems comprising discrete elements and/or circuits, state machines, virtual machines, data processors, processing facilities, and combinations of any of the foregoing. The processor may be, for example, any type of general purpose microprocessor or microcontroller, a digital signal processing (DSP) processor, an application-specific integrated circuit (ASIC), a graphic processing unit (GPU), a reduced instruction set computer (RISC) processor with an advanced RISC machine (ARM) core, etc. The processor may be coupled to, and/or integrated with a memory device.
As used, herein, the term “memory” and/or “memory device” means computer hardware or circuitry to store information for use by a processor and/or other digital device. The memory and/or memory device can be any suitable type of computer memory or any other type of electronic storage medium, such as, for example, read-only memory (ROM), random access memory (RAM), cache memory, compact disc read-only memory (CDROM), electro-optical memory, magneto-optical memory, programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically-erasable programmable read-only memory (EEPROM), a computer-readable medium, or the like. Memory can include, for example, a non-transitory memory, a non-transitory processor readable medium, a non-transitory computer readable medium, non-volatile memory, dynamic RAM (DRAM), volatile memory, ferroelectric RAM (FRAM), first-in-first-out (FIFO) memory, last-in-first-out (LIFO) memory, stack memory, non-volatile RAM (NVRAM), static RAM (SRAM), a cache, a buffer, a semiconductor memory, a magnetic memory, an optical memory, a flash memory, a flash card, a compact flash card, memory cards, secure digital memory cards, a microcard, a minicard, an expansion card, a smart card, a memory stick, a multimedia card, a picture card, flash storage, a subscriber identity module (SIM) card, a hard drive (HDD), a solid state drive (SSD), etc. The memory can be configured to store code, instructions, applications, software, firmware and/or data, and may be external, internal, or both with respect to the processor.
The term “power” is used throughout this specification for convenience, but also includes related measures such as energy, current, voltage, and enthalpy. For example, controlling “power” may involve controlling voltage, current, energy, and/or enthalpy, and/or controlling based on “power” may involve controlling based on voltage, current, energy, and/or enthalpy.
As used herein, welding-type power refers to power suitable for welding, cladding, brazing, plasma cutting, induction heating, carbon arc cutting, and/or hot wire welding/preheating (including laser welding and laser cladding), carbon arc cutting or gouging, and/or resistive preheating.
As used herein, a welding-type power supply and/or power source refers to any device capable of, when power is applied thereto, supplying welding, cladding, brazing, plasma cutting, induction heating, laser (including laser welding, laser hybrid, and laser cladding), carbon arc cutting or gouging, and/or resistive preheating, including but not limited to transformer-rectifiers, inverters, converters, resonant power supplies, quasi-resonant power supplies, switch-mode power supplies, etc., as well as control circuitry and other ancillary circuitry associated therewith.
As used herein, a part, as used herein, may refer to a physical item that is prepared and/or produced through a welding-type process and/or operation, such as, for example, by welding two or more workpieces together. In some contexts, a part may refer to data stored in non-transitory memory that is representative of a physical item prepared and/or produced through a welding-type process and/or operation.
Disabling of circuitry, actuators, and/or other hardware may be done via hardware, software (including firmware), or a combination of hardware and software, and may include physical disconnection, de-energization, and/or a software control that restricts commands from being implemented to activate the circuitry, actuators, and/or other hardware. Similarly, enabling of circuitry, actuators, and/or other hardware may be done via hardware, software (including firmware), or a combination of hardware and software, using the same mechanisms used for disabling.
This application claims priority to, and the benefit of, U.S. Provisional Application No. 63/043,854, filed Jun. 25, 2020, entitled “SYSTEMS AND METHODS FOR PART TRACKING USING MACHINE LEARNING TECHNIQUES,” the entire contents of which are hereby incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
4375026 | Kearney | Feb 1983 | A |
5221825 | Siewert | Jun 1993 | A |
5714734 | Peterson et al. | Feb 1998 | A |
5756967 | Quinn et al. | May 1998 | A |
6362456 | Ludewig | Mar 2002 | B1 |
6484584 | Johnson et al. | Nov 2002 | B2 |
6583386 | Ivkovich | Jun 2003 | B1 |
6624388 | Blankenship et al. | Sep 2003 | B1 |
6636776 | Barton et al. | Oct 2003 | B1 |
6795778 | Dodge et al. | Sep 2004 | B2 |
6815640 | Spear et al. | Nov 2004 | B1 |
7159753 | Subrahmanyam | Jan 2007 | B2 |
7375304 | Kainec et al. | May 2008 | B2 |
7574172 | Clark et al. | Aug 2009 | B2 |
7643890 | Hillen et al. | Jan 2010 | B1 |
7687741 | Kainec et al. | Mar 2010 | B2 |
7772524 | Hillen et al. | Aug 2010 | B2 |
7873495 | Lindell | Jan 2011 | B2 |
8224881 | Spear et al. | Jul 2012 | B1 |
8274013 | Wallace | Sep 2012 | B2 |
8354614 | Ma | Jan 2013 | B2 |
8355805 | Ricket | Jan 2013 | B2 |
8592723 | Davidson et al. | Nov 2013 | B2 |
8657605 | Wallace | Feb 2014 | B2 |
8847115 | Casner et al. | Sep 2014 | B2 |
9193004 | Enyedy et al. | Nov 2015 | B2 |
9266182 | Hung | Feb 2016 | B2 |
9321133 | Fischer et al. | Apr 2016 | B2 |
9415514 | Geheb et al. | Aug 2016 | B2 |
9449498 | Dina et al. | Sep 2016 | B2 |
9481045 | Spear | Nov 2016 | B2 |
9498839 | Hillen et al. | Nov 2016 | B2 |
9514421 | Mullin | Dec 2016 | B2 |
9665093 | Lamers et al. | May 2017 | B2 |
9669484 | Holverson et al. | Jun 2017 | B2 |
9684303 | Lamers et al. | Jun 2017 | B2 |
9704140 | Lamers et al. | Jul 2017 | B2 |
9724787 | Becker et al. | Aug 2017 | B2 |
9773429 | Boulware | Sep 2017 | B2 |
9821400 | Hillen et al. | Nov 2017 | B2 |
9836994 | Kindig et al. | Dec 2017 | B2 |
9862048 | Holverson et al. | Jan 2018 | B2 |
9862049 | Becker | Jan 2018 | B2 |
9889517 | Lambert et al. | Feb 2018 | B2 |
9937577 | Daniel | Apr 2018 | B2 |
9937578 | Becker et al. | Apr 2018 | B2 |
9965973 | Peters et al. | May 2018 | B2 |
9975196 | Zhang et al. | May 2018 | B2 |
9993890 | Denis et al. | Jun 2018 | B2 |
10010959 | Daniel | Jul 2018 | B2 |
10012962 | Lamers et al. | Jul 2018 | B2 |
10032388 | Sommers et al. | Jul 2018 | B2 |
10065260 | Hutchison | Sep 2018 | B2 |
10099308 | Vogel | Oct 2018 | B2 |
10144080 | Chantry et al. | Dec 2018 | B2 |
10183351 | Peters | Jan 2019 | B2 |
10204406 | Becker et al. | Feb 2019 | B2 |
10213862 | Holverson et al. | Feb 2019 | B2 |
10242317 | Barhorst et al. | Mar 2019 | B2 |
10688584 | Starzengruber | Jun 2020 | B2 |
10722969 | Ulrich | Jul 2020 | B2 |
11103948 | Holverson | Aug 2021 | B2 |
11347191 | Hsu | May 2022 | B2 |
20060169682 | Kainec et al. | Aug 2006 | A1 |
20080124968 | Kirk | May 2008 | A1 |
20090173726 | Davidson et al. | Jul 2009 | A1 |
20100152554 | Steine et al. | Jun 2010 | A1 |
20120248081 | Hutchison | Oct 2012 | A1 |
20130075380 | Albrech et al. | Mar 2013 | A1 |
20130105556 | Abell | May 2013 | A1 |
20130178953 | Wersborg | Jul 2013 | A1 |
20130189658 | Peters | Jul 2013 | A1 |
20130212512 | Frenz | Aug 2013 | A1 |
20140047107 | Maturana | Feb 2014 | A1 |
20140131320 | Hearn et al. | May 2014 | A1 |
20140332514 | Holverson et al. | Nov 2014 | A1 |
20140337429 | Asenjo | Nov 2014 | A1 |
20150069112 | Abou-Nasr et al. | Mar 2015 | A1 |
20170032281 | Hsu | Feb 2017 | A1 |
20170036288 | Albrecht | Feb 2017 | A1 |
20170072496 | Falde et al. | Mar 2017 | A1 |
20170072497 | Ivkovich | Mar 2017 | A1 |
20170185058 | Holverson et al. | Jun 2017 | A1 |
20180032066 | Enyedy et al. | Feb 2018 | A1 |
20180178320 | Webster | Jun 2018 | A1 |
20180350056 | Cardenas Bernal | Dec 2018 | A1 |
20190019061 | Trenholm et al. | Jan 2019 | A1 |
20190022787 | Daniel | Jan 2019 | A1 |
20190084069 | Daniel et al. | Mar 2019 | A1 |
20190160601 | Daniel | May 2019 | A1 |
20190163172 | Daniel et al. | May 2019 | A1 |
20200130089 | Ivkovich | Apr 2020 | A1 |
20200261997 | Daniel | Aug 2020 | A1 |
Number | Date | Country |
---|---|---|
2356304 | Feb 2001 | CA |
101193723 | Jun 2008 | CN |
101329169 | Dec 2008 | CN |
101374627 | Feb 2009 | CN |
102528227 | Jul 2012 | CN |
102596476 | Jul 2012 | CN |
102922089 | Feb 2013 | CN |
103331506 | Oct 2013 | CN |
103846915 | Jun 2014 | CN |
103862135 | Jun 2014 | CN |
103874965 | Jun 2014 | CN |
103909325 | Jul 2014 | CN |
104379291 | Feb 2015 | CN |
104520046 | Apr 2015 | CN |
104551372 | Apr 2015 | CN |
104768694 | Jul 2015 | CN |
106104587 | Nov 2016 | CN |
107154950 | Sep 2017 | CN |
107155317 | Sep 2017 | CN |
107635710 | Jan 2018 | CN |
107848083 | Mar 2018 | CN |
108027911 | May 2018 | CN |
102009016798 | Oct 2010 | DE |
0109723 | Feb 2001 | WO |
2012000650 | Jan 2012 | WO |
2013160745 | Oct 2013 | WO |
2014149786 | Sep 2014 | WO |
2018080994 | May 2018 | WO |
Entry |
---|
Yuan Bao, et. al., “Massive Sensor Data Management Framework in Cloud Manufacturing Based on Hadoop”, IEEE, Jul. 25, 2012, pp. 397-401 (Y type reference). |
European Patent Office, Office Action, No. 20192803.3, mailed Feb. 11, 2022. |
The welding system of the future is self-learning (Mar. 20, 2015) retrieved Apr. 7, 2015 from http://phys.org/news/2015-03-welding-future-self-learning.html. |
Gundersen, O., et al., The Use of an Integrated Multiple Neural Network Structure for Simultaneous Prediction of Weld Shape, Mechanical Properties, and Distortion in 6063-T6 and 6082-T6 Aluminium Assemblies. |
Huot, Pierre, The Basics of Weld and Process Monitoring, Apr. 9, 2015, Quality Magazine. |
Porter, Nancy C., Session 5, Joining Technologies for Naval Applications, FABTECH International & AWS Welding Show, Nov. 13-16, 2015. |
Zaharia, Matei, et al., Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing, Electrical Engineering and Computer Sciences, University of California at Berkeley, Technical Report No. UCB/EECS-2011-82, http://www.eecs.berkeley.edu/Pubs/TechRpts/2011/EECS-2011-82.html, Jul. 19, 2011. |
Lu, Huang et al: “Research on Hadoop Cloud Computing Model and its Applications”, Networking and Distributed Computing (ICNDC), 2012 Third International Conference On, IEEE, Oct. 21, 2012 (Oct. 21, 2012), pp. 59-63, XP032293322, DOI: 10.1 109/I CN DC.2012.22 ISBN: 978-1-4673-2858-6. |
PCT, Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration, in Application No. PCT/US2016/051585, dated Dec. 21, 2016 (12 pages). |
International Search Report and Written Opinion, mailed Oct. 14, 2016, in International application No. PCT/US2016/044463, filed Jul. 28, 2016. |
Bao, Yuan et al: “Massive sensor data management framework in Cloud manufacturing based on Hadoop”, Industrial Informatics (INDIN), 2012 10th IEEE International Conference on, IEEE, Jul. 25, 2012 (Jul. 25, 2012), pp. 397-401, XP032235317, DOI: 10.1109/1 NDI N.2012.6301192 ISBN: 978-1-4673-0312-5. |
PCT, Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration, in International application No. PCT/US2016/051579, dated Jan. 10, 2017 (12 pages). |
Canadian Office Action Appln No. 2,996, 182 dated Nov. 5, 2019 (5 pgs.). |
European Patent Office, Extended Search Report, European Patent Application No. 20161414.6, mailed Aug. 5, 2020, 7 pages. |
European Patent Office, Extended Search Report, European Patent Application No. 20176044.4, mailed Dec. 17. 2020, 9 pages. |
European Patent Office, Extended European Search Report, European Patent Application No. 20192803.3, mailed Mar. 10, 2021, 7 pages. |
Ting Wang, Binliang Jiao, Limeng Ji, “A Wireless Sensor Network Design in Oilfield based on STM32W108”, Computer Security, No. 05, May 15, 2011. |
Le Zhang, Guangzhi Li, Xin Zeng, “Analysis of Factors Affecting Human Reliability”, China Military-Civilian Conversion, No. 03, Mar. 10, 2016. |
Shuang Zheng, Mingri Zhu, Yue Wang, “Design of Welding Controlled System Power Source Based on Intensive Interference”, Electric Welding Machine, No. 12, Dec. 20, 2008. |
Number | Date | Country | |
---|---|---|---|
20210402523 A1 | Dec 2021 | US |
Number | Date | Country | |
---|---|---|---|
63043854 | Jun 2020 | US |