This disclosure relates to welding systems, and more particularly to robotic welding systems that perform automatic welding.
Robotic welding systems that perform automatic welding are known in the art. See for example PCT publication WO 2019/153090, which discloses a method for controlling a robotic welding system to weld pipe sections together. In that disclosure, the pipe sections are held in fixed relation to each other by a plurality of stitches at a seam between the pipe sections, and the robotic welding system operates to weld the pipe sections together.
Robotic welding systems can perform welding automatically in accordance with a set of welding variables. The set of welding variables can for example include WFS (wire feed speed), UltimArc™, trim, amplitude, frequency, speed and/or dwell. However, in some situations, values used for the set of welding variables could be inappropriate. In general, for any given welding scenario, there can be difficulties in determining the values for the set of welding variables to be utilized by the robotic welding system. Moreover, even if the values are appropriate under a first welding scenario (e.g. while welding in a gap), they could become inappropriate upon entering a second welding scenario (e.g. while welding over a stitch).
It is desirable to provide a system and a method for automatically adjusting values of the welding variables of a robotic welding system while the robotic welding system is welding, such that there is a high probability of the values being appropriate during any given welding scenario.
Disclosed is a system having a robotic welding system, a controller, a camera, and a processor. The robotic welding system is configured to weld metal sections together in accordance with a plurality of welding variables. The controller is configured to automatically control the robotic welding system in accordance with a selected welding state of a plurality of possible welding states, wherein the possible welding states differ from one another in terms of values for the welding variables which are defined for each possible welding state. The camera is positioned to capture sequential images of the welding performed by the robotic welding system.
In accordance with an embodiment of the disclosure, the processor is configured to process the sequential images to determine when the selected welding state is to change to a next welding state of the possible welding states based on the selected welding state and multiple consistent determinations of the next welding state, and to signal that change to the controller to effect a change in how the welding is performed by the robotic welding system. By considering multiple consistent determinations of the next welding state, there can be a high probability that the next welding state is correct. This can avoid a situation in which a wrong welding state is selected.
In some implementations, the metal sections have been stitched together with stitches in preparation for the welding, and the processor is configured to determine the next welding state based on stitching between the metal sections in a region being welded.
Also disclosed is a method that involves automatically controlling a robotic welding system to weld metal sections together in accordance with a selected welding state of a plurality of possible welding states. The possible welding states differ from one another in terms of values for welding variables which are defined for each possible welding state. The method also involves receiving sequential images of the welding, and processing the sequential images to determine when the selected welding state is to change to a next welding state of the possible welding states.
In accordance with an embodiment of the disclosure, the determination of when the selected welding state is to change to a next welding state is based on the selected welding state and multiple consistent determinations of the next welding state. The method also involves, when the selected welding state is to change to the next welding state, automatically changing to the next welding state for the selected welding state to effect a change in how the welding is performed by the robotic welding system. By considering multiple consistent determinations of the next welding state, there can be a high probability that the next welding state is correct. This can avoid a situation in which a wrong welding state is selected.
Also disclosed is a non-transitory computer readable medium having recorded thereon statements and instructions that, when executed by control circuitry, implement a method as described herein.
Other aspects and features of the present disclosure will become apparent, to those ordinarily skilled in the art, upon review of the following description of the various embodiments of the disclosure.
Embodiments will now be described with reference to the attached drawings in which:
It should be understood at the outset that although illustrative implementations of one or more embodiments of the present disclosure are provided below, the disclosed systems and/or methods may be implemented using any number of techniques. The disclosure should in no way be limited to the illustrative implementations, drawings, and techniques illustrated below, including the exemplary designs and implementations illustrated and described herein, but may be modified within the scope of the appended claims along with their full scope of equivalents.
Referring first to
Referring now to
Referring now to
The robotic welding system 100 is configured to weld the metal sections P together in accordance with a plurality of welding variables. The controller 103 is configured to automatically control the robotic welding system 100 in accordance with a selected welding state of a plurality of possible welding states. The possible welding states differ from one another in terms of values for the welding variables, which are defined for each possible welding state. The camera C is positioned to capture sequential images of the welding performed by the robotic welding system 100.
In accordance with an embodiment of the disclosure, the processor 107 is configured to process the sequential images from the camera C to determine when the selected welding state is to change to a next welding state of the possible welding states based on the selected welding state and multiple consistent determinations of the next welding state, and to signal that change to the controller 103 to effect a change in how the welding is performed by the robotic welding system 100. By considering multiple consistent determinations of the next welding state, there can be a high probability that the next welding state is correct. This can avoid a situation in which a wrong welding state is selected.
In some implementations, the metal sections P have been stitched together with stitches St in preparation for the welding (see for example
Although the illustrated example shows the metal sections P as pipe sections P that have been stitched together with stitches St to form a pipe string, it is to be understood that other metal sections of varying shapes and sizes can be welded together. The disclosure is not limited to welding pipe sections P. Other metal sections such as flat metal sections can be welded together, for example. For such other implementations, there might be no positioner 105. Other mechanisms are possible for manipulating the metal sections P to be welded. Alternatively, the metal sections P are not manipulated at all, and the robotic welding system 100 performs all of movement for the welding.
There are many possibilities for the controller 103 and the processor 107. In some implementations, the controller 103 includes a PLC (programmable logic controller). In some implementations, the processor includes a CPU (central processing unit), an IPC (industrial PC) and/or a GPU (graphics processing unit) using CUDA (Compute Unified Device Architecture) or other parallel computing platform. Other implementations can include additional or alternative hardware components, such as any appropriately configured FPGA (Field-Programmable Gate Array), ASIC (Application-Specific Integrated Circuit), and/or processor, for example. More generally, the system 10 can be controlled with any suitable control circuitry. The control circuitry can include any suitable combination of hardware, software and/or firmware.
Details of an example implementation for the robotic welding system 100 can be found in PCT patent application publication no. WO 2019/153090 and PCT patent application publication no. WO 2017/165964, which are hereby incorporated by reference. Other implementations for the robotic welding system 100 are possible and are within the scope of the disclosure. Further details of the system 10 are provided below.
As described above with reference to
Referring first to
The manner in which welding is performed by the robotic welding system 100 depends on the region being welded. In particular, values for the welding variables utilized by the robotic welding system 100 depend on the region being welded. Therefore, four welding states are defined to correspond with the four distinct regions 401-404. The four welding states include a gap state 504 for welding the metal sections P together in the gap region 404 (i.e. a gap with no stitch), an enter state 501 for welding the metal sections P together in the enter region 401 (i.e. a gap leading to a stitch), a tack state 502 for welding the metal sections P together in the tack region 402 (i.e. a stitch and no gap), and an exit state 503 for welding the metal sections P together in the exit region 403 (i.e. a stitch leading to a gap). These four welding states 501-504 differ from one another in terms of values for the welding variables which are defined for each welding state.
There are many ways that the values for the welding variables can be defined for each welding state. In some implementations, the values are predefined in advance for each welding state. In other implementations, for each welding state, the values are a function of duration in the welding state and/or based some other input from another part of the system 10 (e.g. width of a stitch) such that the processor 107 can determine the values. Some criteria such as thickness of a pipe being welded, for example, could be considered in determining the values for the welding variables. Other implementations are possible.
In some implementations, the processor 107 determines a probable welding state of the plurality of possible welding states based on a set of images of the sequential images, and repeats the determining of the probable welding state for subsequent sets of images of the sequential images. Each set of images can for example include fifteen consecutive images (e.g. images 1-15 for first set, images 2-16 for second set, images 3-17 for third set, etc.), although other implementations are possible. Furthermore, upon determining a same welding state as the probable welding state a defined number of consecutive times, if the probable welding state is not equal to a current welding state, then the processor 107 determines that the current welding state is to change to the probable welding state as the next welding state. By considering multiple consistent determinations of the next welding state, there can be a high probability that the next welding state is correct. A specific example is provided below to illustrate this concept.
Referring now to
In some implementations, for each state transition to a target welding state, the minimum probability P and the number of consecutive times C are predefined in advance. An example set of values is listed below.
It is to be understood that, for each state transition, the two numbers are implementation-specific such that other values/quantities are possible. More generally, each minimum probability P can be set to any appropriate number in a range between zero and one (i.e. 0<P≤1), and each number of consecutive times C can be set to any appropriate whole number (i.e. C>0).
In the illustrated example, the state transitions can go through the four welding states 501-504 in a clockwise pattern, starting from any of the four welding states 501-504. For example, starting in the gap state 504, if the enter state 501 is calculated to be a probable welding state (e.g. at least 95% probability) for each of multiple consecutive sets of frames (e.g. ten consecutive sets of frames) of the sequential images, then the enter state 501 is determined to be the next welding state. Then, while in the enter state 501, if the tack state 502 is calculated to be a probable welding state (e.g. at least 95% probability) for each of multiple consecutive sets of frames (e.g. five consecutive sets of frames) of the sequential images, then the tack state 502 is determined to be the next welding state. Then, while in the tack state 502, if the exit state 503 is calculated to be a probable welding state (e.g. at least 95% probability) for each of multiple consecutive sets of frames (e.g. five consecutive sets of frames) of the sequential images, then the exit state 503 is determined to be the next welding state. Then, while in the exit state 503, if the gap state 504 is calculated to be a probable welding state (e.g. at least 95% probability) for each of multiple consecutive sets of frames (e.g. five consecutive sets of frames) of the sequential images, then the gap state 504 is determined to be the next welding state. Additional clockwise cycles through the state diagram 500 are possible until a welding operation is completed. Meanwhile, each state transition is signalled to the controller 103 to effect a change in how the welding is performed by the robotic welding system 100.
It is noted that the state diagram 500 is almost fully connected in terms of state transitions, including state transitions that would not be expected under normal operation. For example, the state diagram 500 includes a state transition from the gap state 504 to the tack state 502. This state transition would not be expected under normal operation because the enter state 501 should normally follow the gap state 504. However, including this state transition can help in erroneous situations, such as when the enter state 501 has been incorrectly skipped due to an error in processing. Given that this state transition is not expected under normal operation, there is a relatively high threshold for the state transition. In particular, while in the gap state 504, if the tack state 502 is calculated to be a probable welding state (e.g. at least 95% probability) for each of multiple consecutive sets of frames (e.g. thirty consecutive sets of frames) of the sequential images, then the tack state 502 is determined to be the next welding state. By considering thirty consecutive sets of frames (instead of five or ten consecutive sets of frames for example), there is a relatively high threshold for the state transition.
It is also noted that the currently selected state matters when determining the next welding state. For instance, a state transition from the gap state 504 to the tack state 502 has a different threshold compared to a state transition from the enter state 501 to the tack state 502. As noted above, the state transition from the gap state 504 to the tack state 502 would not be expected under normal operation and hence has a relatively high threshold. By contrast, the state transition from the enter state 501 to the tack state 502 would be expected under normal operation and hence has a lower threshold.
In some implementations, the controller 103 begins in an initial uncertain state 505 before the processor 107 determines a first welding state. Thus, the state diagram 500 includes the initial uncertain state 505 as a starting point before transitioning to one of the four welding states 501-504. For each of the possible welding states 501-504, a number of consecutive times to determine the possible welding state 501-504 as a probable welding state is defined as a threshold for determining the possible welding state 501-504 as the first welding state. For example, while in the initial uncertain state 505, if the gap state 504 is calculated to be a probable welding state (e.g. at least 90% probability) for each of multiple consecutive sets of frames (e.g. five consecutive sets of frames) of the sequential images, then the gap state 504 is determined to be the first welding state. The processor 107 would signal this information to the controller 103 so that the welding by the robotic welding system 100 is performed in accordance with the gap state 504.
In some implementations, the initial uncertain state 505 is a welding state, meaning that welding is performed by the robotic welding system 100 while in the initial uncertain state 505. In this regard, the state diagram 500 of
Whilst the state diagram 500 of
Referring now to
As noted above, the welding states 501-505 differ from one another in terms of values for the welding variables which are defined for each welding state 501-505. Some example values for the welding variables are listed below. It is to be understood that these welding variables and their values are very specific and are provided merely as an example. The values can be different based on pipe size or different reasons.
The chart above demonstrates how the values for the welding variables change based on changes in the welding state 501-505. For example, the weave amplitude is decreased during the enter state 501 and the exit state 503 and is increased in the tack state 502. In some implementations, some welding variables have values that remain constant such as the background current for example. However, each welding state 501-505 is unique in terms of its particular combination of values for the welding variables (i.e. no two welding states 501-505 are identical).
As described above with reference to
There are many possibilities for the camera C. In some implementations, the camera C is an NIR (near infrared) camera. In specific implementations in which the camera C is an NIR camera with a resolution of 2048×2048, an 8-bit depth, and the processor 107 is provided with images wherein each pixel corresponds to an area of about 0.02 mm by 0.02 mm. The camera C can be of different types, and may have a different resolution, bit depth, lens, or other parameters in other implementations. In some implementations, the camera C is a stereo camera. In some implementations, the camera C includes multiple cameras operably coupled to the processor 107.
There are many ways that the camera C can be mounted within the system 10. The camera C can be mounted in any suitable location so long as it has a view of the welding performed by the welding torch T (i.e. region of interest is captured). In some implementations, the camera C is mounted on an underside of the torch arm. In other implementations, the camera C is mounted on top or on a side of the torch arm. Alternatively, the camera C can be mounted at any other suitable location (e.g., on the robotic welding system 100, on a separate fixed support, etc.) so long as it has a view of the welding performed by the welding torch T (i.e. region of interest is captured). Other implementations are possible.
Referring now to
Referring now to
Whilst it may be possible to process the frame 801 in its entirety, including the superfluous regions, omitting the superfluous regions prior to processing can reduce an amount of computation by the processor 107. Also, a resizing operation can be performed to further reduce size of the frame 801. A final size can for example be 128×128 pixels, although other resolutions are possible and are within the scope of the disclosure. A reduced resolution can enable quicker computation and/or relax specifications for the processor 107 (e.g. reduced computational throughput) which could reduce cost while still enabling real-time processing (e.g. 20-30 fps processing).
In some implementations, once a smaller image 802 has been produced, the processor 107 analyzes the smaller image 802 to determine a probable welding state. In some implementations, rather than considering a single image at a time, the processor 107 considers a set of smaller images 802. The number of smaller image in the set is implementation-specific. In one specific example, the processor 107 analyzes 15 consecutive smaller images 802. However, other implementations are possible in which the processor 107 analyzes more or less smaller images 802. In some implementations, as an initialization step, the processor 107 uses an initial smaller image 802 and duplicates it 15 times rather than waiting for 15 consecutive smaller images. In other implementations, as an initialization step, the processor 107 waits for 15 consecutive smaller images 802.
In some implementations, the processor 107 calculates four outputs: a probability of the gap state 504, a probability of the enter state 501, a probability of the tack state 502, and a probability of the exit state 503. In some implementations, these four probabilities add up to a total probability of 100%. In some implementations, the processor 107 calculates the four outputs using a classifier 803. There are many possibilities for the classifier 803. In some implementations, the classifier 803 is a convolutional recurrent neural network, although other classifiers can be employed. In some implementations, the convolutional recurrent neural network is pre-trained as an encoder-decoder network, with the encoder being the same as a feature extraction part and the decoder being the exact same opposite with its weights being inverse of the encoder trained on a COCO (Common Objects in Context) dataset. In some implementations, the processor 107 determines that a given welding state is a probable welding state when it has been calculated to have a probability that exceeds a defined threshold, such as 90% or 95% for example.
There are many ways that the processor 107 can pre-process the frame 801 to produce the smaller image 802. An example will be described below. It is to be understood that this example is very specific and is provided merely as an example. Other ways to pre-process the frame 801 to produce the smaller image 802 are possible. For example, down sampling to a final size with interpolation techniques can be employed. However, the example described below may yield better results.
A sample camera input image is shown in
There are many possible thresholding techniques that can be used. Example thresholding techniques include Huang, Intermodes and Minimum, IsoData, Li, MaxEntropy, KittlerIllingworth, Moments, Yen, RenyiEntropy, Shanbhag, and Histogram Triangle Algorithm. Many of these thresholding techniques have been tested, and they work to some extent, but initial experiments show that the histogram triangle algorithm gives best results. As such, the histogram triangle algorithm is described in further detail below. However, it is to be understood that the disclosure is not limited to the histogram triangle algorithm.
Referring now to
Once the threshold b has been calculated, the threshold b is applied to the image to determine the largest connected component by assessing one or more clusters of pixels that meet the threshold b. Once the largest connected component is determined, the image is cropped to produce a smaller image that focuses on the largest connected component. The cropping involves finding a rectangle that is large enough to contain the largest connected component, but also small enough to suitably focus on the largest connected component and thereby effectively reduce size. In some implementations, the smaller image is further reduced in size by a resizing operation as described above. It is noted that the final size is not necessarily fixed, but could vary depending on network architecture and how it accepts it, type of classifier, and/or how much computation we have. In some implementations, an aspect ratio is maintained as described above.
Referring now to
At step 10-1, the control circuitry automatically controls a robotic welding system to weld metal sections together in accordance with a selected welding state of a plurality of possible welding states. Notably, the possible welding states differ from one another in terms of values of welding variables which are defined for each possible welding state.
At step 10-2, the control circuitry receives sequential images of the welding. The sequential images can be received from a camera as similarly described above.
At step 10-3, the control circuitry processes the sequential images to determine when the selected welding state is to change to a next welding state of the possible welding states. In accordance with an embodiment of the disclosure, this determination is based on the selected welding state and whether there are multiple consistent determinations of the next welding state, as similarly described above. By considering multiple consistent determinations of the next welding state, there can be a high probability that the next welding state is correct. This can avoid a situation in which a wrong welding state is selected.
If at step 10-4 the control circuitry determines that there are multiple consistent determinations of the next welding state, then at step 10-5 the control circuitry automatically changes to the next welding state for the selected welding state to effect a change in how the welding is performed by the robotic welding system. Otherwise, the welding continues without changing the selected welding state, assuming of course that the welding is not finished.
If at step 10-6 the control circuitry determines that the welding is finished, then the method ends. For example, upon a user pressing a stop button, a controller can send a stop signal to software.
In some implementations, the metal sections have been stitched together with stitches in preparation for the welding, and the next welding state is determined based on stitching between the metal sections in a region being welded, as similarly described above.
Whilst the method of
Referring now to
At step 11-1, the control circuitry receives sequential images of metal sections being welded together by a robotic welding system, in accordance with a selected welding state of a plurality of possible welding states. Notably, the possible welding states differ from one another in terms of values of welding variables which are defined for each possible welding state.
At step 11-2, the control circuitry processes the sequential images to determine when the selected welding state is to change to a next welding state of the possible welding states. In accordance with an embodiment of the disclosure, as shown at step 11-3, this determination is based on the selected welding state and whether there are multiple consistent determinations of the next welding state, as similarly described above. By considering multiple consistent determinations of the next welding state, there can be a high probability that the next welding state is correct. This can avoid a situation in which a wrong welding state is selected.
At step 11-4, upon determining that the selected welding state is to change to the next welding state, the control circuitry signals an indication of the next welding state to the robotic welding system or to a controller of the robotic welding system. This is performed to effect a change in how the welding is performed by the robotic welding system.
If at step 11-5 the control circuitry determines that the welding is finished, then the method ends. For example, upon a user pressing a stop button, a controller can send a stop signal to software.
According to another embodiment of the disclosure, there is provided a non-transitory computer readable medium having recorded thereon statements and instructions that, when executed by control circuitry (e.g. the processor 107 of the system 10 shown in
Numerous modifications and variations of the present disclosure are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the disclosure may be practised otherwise than as specifically described herein.
This patent application claims priority to U.S. provisional patent application No. 63/127,137 filed Dec. 17, 2020, the entire content of which is incorporated by reference herein.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CA2021/051822 | 12/16/2021 | WO |
Number | Date | Country | |
---|---|---|---|
63127137 | Dec 2020 | US |