Customizable Rotation Axis for Industrial Radiography Systems
Patent Information
- Application Number
- JP2024500285
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-07-08
- Filing Date
- 2022-06-16
- Publication Date
- 2025-06-24
- Estimated Expiration
- 2042-06-16
AI Technical Summary
Conventional industrial radiography systems face challenges in accurately inspecting parts for defects due to eccentric rotation of components, which complicates the analysis of 2D X-ray images and integration of new fixtures, often leading to instability and high costs.
A customizable rotation axis system that programmatically controls the rotation of parts around a custom axis offset from the real axis, using a rotatable fixture to maintain consistent eccentricity and generate precise 2D and 3D images without physical modifications to existing fixtures.
Enables accurate inspection of parts by ensuring consistent rotation around the part's center, improving image analysis and reducing the need for costly structural changes, thus enhancing the reliability and efficiency of industrial radiography systems.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] This disclosure relates generally to industrial radiography systems, and more particularly to customizable rotation axes for industrial radiography systems. [Background technology]
[0002] X-ray radiography is often used to inspect parts used in industrial applications such as, for example, aerospace, automotive, electronics, medical, pharmaceutical, military, and / or defense applications. The part can be rotated to perform a radiographic scan at different angles. The x-ray images produced by the radiographic scan can be used to inspect the part(s) for cracks, scratches, and / or defects that may not normally be visible to the human eye.
[0003] By comparing such a system with the present disclosure described in the remainder of this application with reference to the drawings, the limitations and disadvantages of the conventional and traditional approaches will become apparent to one skilled in the art. Summary of the Invention
[0004] The present disclosure relates to a customizable rotation axis for an industrial radiography system substantially as illustrated and / or described in connection with at least one of the drawings and more fully as set forth in the claims.
[0005] These and other advantages, aspects, and novel features of the present disclosure, as well as details of illustrated examples of the disclosure, will become more fully understood from the following description and drawings. [Brief description of the drawings]
[0006] [Figure 1a] FIG. 1 illustrates an exemplary industrial X-ray radiography machine, according to an embodiment of the present disclosure. [Figure 1b] FIG. 1 illustrates another example of an industrial X-ray radiography machine, according to an embodiment of the present disclosure. [Diagram 2]FIG. 2 is a block diagram illustrating an example industrial X-ray radiography system including the industrial X-ray radiography machine of FIG. 1a and / or FIG. 1b, according to an embodiment of the present disclosure. [Diagram 3] 11 is a flowchart illustrating operations of an example custom axis rotation process in accordance with aspects of the present disclosure. [Figure 4a] 13A-13C illustrate eccentric rotation of parts about the actual axis of the fixture, according to aspects of the present disclosure. [Figure 4b] 13A-13C illustrate eccentric rotation of parts about the actual axis of the fixture, according to aspects of the present disclosure. [Figure 4c] FIG. 4 illustrates centering rotation of a part about a custom axis that is offset from the actual axis of the fixture by the custom axis rotation process of FIG. 3 in accordance with an embodiment of the present disclosure. [Figure 4d] FIG. 4 illustrates centering rotation of a part about a custom axis that is offset from the actual axis of the fixture by the custom axis rotation process of FIG. 3 in accordance with an embodiment of the present disclosure. [Figure 4e] FIG. 4 illustrates centering rotation of a part about a custom axis that is offset from the actual axis of the fixture by the custom axis rotation process of FIG. 3 in accordance with an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0007] The figures are not necessarily drawn to scale. Where appropriate, the same or similar reference numbers are used in the figures to refer to similar or identical components. For example, reference numbers utilizing letters (e.g., radiographer 100a, radiographer 100b) refer to an instance of the same reference number without the letter (e.g., radiographer 100).
[0008] Some examples of the present disclosure relate to an X-ray radiography system that allows a user to define a custom (and / or virtual) axis of rotation that is offset from the actual axis of rotation of a rotatable fixture.
[0009] In conventional X-ray radiography systems, industrial parts can be rotated via a rotatable fixture to present the parts at different orientations relative to an X-ray radiation emitter and / or detector. Radiation detected by the detector can be used to generate two-dimensional (2D) X-ray images, which can be analyzed to inspect the parts for cracks, scratches, and / or defects. X-ray images captured at different orientations allow for inspection from different perspectives, which can reveal defects that would otherwise remain hidden. Additionally, multiple different X-ray images of a part at different orientations can be used to generate a three-dimensional (3D) image of the part.
[0010] However, if the part is not centered relative to the rotatable fixture, rotating the fixture will cause the part to rotate eccentrically. Eccentric rotation of the part can then result in off-center 2D x-ray images that are more difficult to analyze and / or composite into a 3D image. In some situations, centering the part relative to the fixture may be relatively trivial, while in other situations, centering the part relative to the fixture may be impossible or impractical.
[0011] Although some solutions to this problem have been proposed, these solutions tend to focus on redesigning the physical structure of the rotatable fixture, which can be expensive, complex, or difficult to integrate into existing systems, and / or can cause the part and / or fixture to become unstable. Instead, the radiography system described below focuses on dynamically translating the position of the rotatable fixture during rotation using program control, so that the part rotates around its own center (and / or some other custom axis) rather than the center of the fixture. This solution can be applied to existing systems without necessarily requiring physical modification of the existing rotatable fixture, integrating new components, or risking part and / or radiography machine instability.
[0012] Some examples of the present disclosure relate to a non-transitory computer-readable medium including machine-readable instructions that, when executed by a processor, cause a processor to: define a custom rotation axis in an industrial radiography system, the custom axis being offset from a real rotation axis about which a rotatable fixture configured to hold an object is configured to rotate; determine an offset vector extending between the custom rotation axis and the real rotation axis along a plane orthogonal to both the custom rotation axis and the real rotation axis; identify an angle or angular velocity at which to rotate the object about the custom axis; determine a translation of the rotatable fixture in the plane orthogonal to the custom rotation axis based on the offset vector and the angle, or the offset vector and the angular velocity; command a support structure to move the rotatable fixture in the plane based on the translation; and command the rotatable fixture to rotate about the real axis based on the angle or angular velocity, wherein the translation of the rotatable fixture in the plane and the rotation of the rotatable fixture about the real axis result in an effective rotation of the object about the custom axis.
[0013] In some examples, the custom rotation axis is parallel to the real rotation axis. In some examples, the offset vector includes an offset distance and an offset direction, and the support structure and the rotatable fixture are commanded to move such that the offset distance remains approximately constant during the movement. In some examples, the translation includes a new coordinate to move the rotatable fixture to, a distance and direction to move the rotatable fixture, or a direction and speed to move the rotatable fixture.
[0014] In some examples, the non-transitory computer readable medium further includes machine readable instructions that, when executed by the processor, cause the processor to determine a first translation of the rotatable fixture in a first axis based on the angle and the offset vector, the first axis being perpendicular to the custom rotation axis, and to determine a second translation of the rotatable platform in a second axis based on the angle and the offset vector, the second axis being perpendicular to the custom rotation axis, the translation including the first translation and the second translation. In some examples, the second axis is perpendicular to the custom axis and the first axis. In some examples, the offset vector includes an offset distance and an offset direction, and the non-transitory computer readable medium further includes machine readable instructions that, when executed by the processor, cause the processor to instruct a radiation emitter of the industrial radiography system to direct radiation through the object to a radiation detector of the industrial radiography system at a plurality of different time points, the offset distance remaining constant at each of the plurality of different time points.
[0015] In some examples, the non-transitory computer readable medium further includes machine readable instructions that, when executed by the processor, cause the processor to instruct a radiation emitter of the industrial radiography system to direct radiation through the object to a radiation detector of the industrial radiography system. In some examples, the non-transitory computer readable medium further includes machine readable instructions that, when executed by the processor, cause the processor to generate a two-dimensional image or a three-dimensional image of the object based on the radiation detected by the radiation detector. In some examples, defining the custom rotation axis includes sending a first signal to a radiation emitter of the industrial radiography system, the first signal representing a command to direct a first radiation through the object to a radiation detector of the industrial radiography system, generating a first image of the object based on the first radiation detected by the radiation detector, receiving a first selection of a first point in the first image, instructing the rotatable fixture to rotate, and sending a second signal to the radiation emitter, the second signal representing a command to direct a first radiation through the object to the radiation detector. generating a second image of the object based on the second radiation detected by the radiation detector; receiving a second selection of a second point in the second image; identifying an intersection of a first plane defined by the first point and the radiation emitter and a second plane defined by the second point and the radiation emitter, where the first plane and the second plane are parallel to the real rotation axis; and defining a custom rotation axis as a line extending through the intersection, where the line is parallel to the real rotation axis.
[0016] Some examples of the present disclosure relate to a method for rotating an object about a custom axis of rotation in an industrial radiography system, the method including: defining the custom axis of rotation, the custom axis being offset from a real axis of rotation about which a rotatable fixture configured to hold the object is configured to rotate; determining an offset vector extending between the custom axis of rotation and the real axis of rotation along a plane orthogonal to both the custom axis of rotation and the real axis of rotation; identifying an angle or angular velocity at which to rotate the object about the custom axis; determining a translation of the rotatable fixture in the plane orthogonal to the custom axis of rotation based on the offset vector and the angle, or the offset vector and the angular velocity; moving the rotatable fixture in the plane based on the translation; and rotating the rotatable fixture about the real axis based on the angle or angular velocity, wherein the translation of the rotatable fixture in the plane and the rotation of the rotatable fixture about the real axis result in an effective rotation of the object about the custom axis.
[0017] In some examples, the custom rotation axis is parallel to the real rotation axis. In some examples, the offset vector includes an offset distance and an offset direction. In some examples, the rotatable fixture moves such that the offset distance remains approximately constant.
[0018] In some examples, moving the rotatable fixture in the plane includes moving the rotatable fixture via a support structure that holds the rotatable fixture. In some examples, the method further includes directing radiation from a radiation emitter of the industrial radiography system through the object to a radiation detector of the industrial radiography system. In some examples, the radiation is x-ray radiation.
[0019] In some examples, the method further includes generating a two-dimensional image of the object based on the radiation detected by the radiation detector. In some examples, the method further includes generating a three-dimensional image of the object based on the two-dimensional image of the object and a plurality of other two-dimensional images of the object. In some examples, defining the custom rotation axis includes directing a first radiation from a radiation emitter of the industrial radiography system through the object to a radiation detector of the industrial radiography system, generating a first image of the object based on the first radiation detected by the radiation detector, receiving a first selection of a first point in the first image, rotating the rotatable fixture, directing a second radiation through the object to the radiation detector, generating a second image of the object based on the second radiation detected by the radiation detector, receiving a second selection of a second point in the second image, identifying an intersection of a first plane defined by the first point and the radiation emitter and a second plane defined by the second point and the radiation emitter, where the first plane and the second plane are parallel to the real rotation axis, and defining the custom rotation axis as a line extending through the intersection, where the line is parallel to the real rotation axis.
[0020] 1a illustrates an example industrial X-ray radiographer 100a. The example X-ray radiographer 100a can be used to perform non-destructive testing (NDT), digital radiography (DR) scans, computed tomography (CT) scans, and / or other applications on a part 102. In some examples, the part 102 can be an industrial part and / or an assembly of parts (e.g., engine castings, microchips, bolts, etc.). Although discussed primarily with respect to X-rays for simplicity, in some examples, the industrial X-ray radiographer 100 discussed herein can use other wavelengths of radiation (e.g., gamma, neutrons, etc.).
[0021] In the example of FIG. 1a, the X-ray radiographer 100a directs X-ray radiation 104 from an X-ray emitter 106 through a component 102 to an X-ray detector 108. In some examples, the X-ray detector 108 can include a fluoroscopy detection system and / or a digital image sensor configured to indirectly receive images via scintillation and / or can be implemented using a sensor panel (e.g., a CCD panel, a CMOS panel, etc.) configured to directly receive X-rays and generate a digital image. In some examples, the X-ray detector 108 can be a solid-state panel coupled to a scintillation screen having pixels corresponding to portions of the scintillation screen. Exemplary solid-state panels can include a CMOS X-ray panel and / or a CCD X-ray panel.
[0022] In some examples, a 2D digital image (e.g., a radiographic image, an X-ray image, etc.) can be generated based on the X-ray radiation 104 incident on the X-ray detector 108. In some examples, the 2D image can be generated by the X-ray detector 108 itself and / or by a computing system in communication with the X-ray detector 108. In some examples, one or more 3D images of the part 102 can be generated using multiple 2D images of the part 102. In some examples, the part 102 can be positioned at different angles relative to the X-ray emitter 106 and / or the X-ray detector 108 to obtain 2D images at different orientations.
[0023] 1a, component positioner 110a holds component 102 between x-ray emitter 106 and detector 108 in the path of x-ray radiation 104. In some examples, component positioner 110a can be configured to move and / or rotate component 102 such that a desired portion and / or orientation of component 102 is located in the path of x-ray radiation 104. As shown, component positioner 110a includes a rotatable fixture 112a on which component 102 is positioned.
[0024] In the example of FIG. 1a, the rotatable fixture 112a is a circular plate. In some examples, the rotatable fixture 112a can alternatively or additionally be a clamp, clasp, gripper, and / or other retention mechanism. As shown, the rotatable fixture 112a is attached to a motor 114 via a spindle 116, which can rotate the rotatable fixture 112a about an axis defined by the spindle 116. In some examples, one or more alternative and / or additional rotation mechanisms can be provided.
[0025] 1a, the rotatable fixture 112a is supported by a support structure 118. The support structure 118 comprises an arm 120, a post 122, a platform 124, and a floor 126. As shown, the support structure 118 further comprises an actuator 128 configured to move the arm 120, the post 122, and / or the platform 124.
[0026] 1a, rotatable fixture 112 is seated on (and / or supported by) arm 120 such that rotatable fixture 112 is fixed but still able to rotate on arm 120. Additionally, arm 120 is movably connected to post 122. As shown, post 122 has a post track 130 configured to guide arm 120 for vertical movement along post 122 (e.g., in the y-axis).
[0027] 1a, the support 122 is movably connected to a platform 124. The platform 124 has a shelf track 132 configured to guide the support 122 in movement along the platform 124 (e.g., in the z-axis). The platform 124 is movably connected to a floor 126, which has a floor track 134 configured to guide the platform 124 in movement along the floor 126 (e.g., in the x-axis). The support 122, platform 124, and floor 126 enable the radiographer 100a to move the rotatable fixture 112 (and / or component 102) in all three axes (x, y, z).
[0028] While depicted with the shape in the example of FIG. 1a for simplicity, in some examples, the actuator 128 can include mechanisms of varying complexity. For example, the actuator 128 can include one or more belts, pulleys, pistons, motors, drive shafts, and / or other suitable mechanisms. Although one post track 130, shelf track 132, and floor track 134 are shown in the example of FIG. 1a, in some examples, there can be two or more post tracks 130, shelf tracks 132, and / or floor tracks 134. Although described as tracks, in some examples, the post track 130, shelf track 132, and / or floor track 134 can alternatively or additionally include rails.
[0029] 1b shows an example of an alternative X-ray radiography machine 100b, which is the same as X-ray radiography machine 100a, except that alternative X-ray radiography machine 100 includes a robotic positioner 110b instead of positioner 110a.
[0030] In the example of Figure 1b, the robot positioner 110b comprises a robot arm 150 having multiple segments interconnected by joints that allow the robot arm 150 to move with multiple degrees of freedom. For example, each joint can have one or more degrees of freedom, allowing the robot arm to achieve multiple orientations. The robot positioner 110 further comprises a robot wrist 152 at the end of the robot arm 150 and an alternative robot fixture 112b attached to the wrist 152 at the end of the robot arm 150.
[0031] 1b, the robot positioner 110 further includes a number of actuators 128 (e.g., motors) configured to move the robot positioner 110 and / or rotate the wrist 152 and / or the rotatable fixture 112. As shown, the alternative rotatable fixture 112b is a gripper rather than a plate. The alternative rotatable fixture 112b holds the part 102 such that the part 102 can be rotated by the alternative rotatable fixture 112b (and / or the wrist 152 to which the alternative rotatable fixture 112b is attached).
[0032] In some examples, the robotic wrist 152 can include a spindle 116 and / or a motor 114 configured to rotate a rotatable fixture 112b similar to that shown in the arm 120 of the positioner 110a in FIG. 1a. In some examples, the alternative rotatable fixture 112b can be a different type of fixture, such as a magnetic fixture, etc. In some examples, the robotic positioner 110b (and / or its wrist 152) can be configured to be attached to a variety of different alternative rotatable fixtures 112b.
[0033] Figure 2 illustrates an example of an X-ray radiography system 200. As illustrated, the X-ray radiography system 200 includes an X-ray radiography machine 100, a computing system 202, a user interface (UI) 204, and a remote computing system 299. Although one X-ray radiography machine 100, computing system 202, UI 204, and remote computing system 299 is illustrated in the example of Figure 2, in some examples, the X-ray radiography system 200 can include multiple X-ray radiography machines 100, computing systems 202, UIs 204, and / or remote computing systems 299.
[0034] 2, the X-ray radiography machine 100 includes an emitter 106, a detector 108, and a positioner 110 enclosed within a housing 199. As shown, the X-ray radiography machine 100 is connected to and / or in communication with a computing system(s) 202 and a UI(s) 204. In some examples, the X-ray radiography system 100 may also be in electrical communication with a remote computing system(s) 299. In some examples, the communication and / or connection may be electrical, electromagnetic, wired, and / or wireless.
[0035] 2, the UI 204 includes one or more input devices 206 and / or output devices 208. In some examples, the one or more input devices 206 can include one or more touch screens, mice, keyboards, buttons, switches, slides, knobs, microphones, dials, and / or other electromechanical input devices. In some examples, the one or more output devices 208 can include one or more display screens, speakers, lights, tactile devices, and / or other devices. In some examples, a user can provide input to and / or receive output from the X-ray radiographer(s) 100, the computing system(s) 202, and / or the remote computing system(s) 299 via the UI(s) 204.
[0036] In some examples, the UI(s) 204 can be part of the computing system 202. In some examples, the computing system 202 can implement one or more controllers of the X-ray radiography machine(s) 100. In some examples, the remote computing system(s) 299 can be similar or identical to the computing system 202.
[0037] 2, computing system 202 is in communication (e.g., electrically) with X-ray radiography machine(s) 100, UI(s) 204, and remote computing system(s) 299. In some examples, the communication may be direct communication (e.g., over wired and / or wireless medium) or indirect communication, such as, for example, over one or more wired and / or wireless networks (e.g., local area networks and / or wide area networks). As shown, computing system 202 includes processing circuitry 210, memory circuitry 212, and communication circuitry 214 interconnected with each other via a common electrical bus.
[0038] In some examples, the processing circuitry 210 can include one or more processors. In some examples, the communications circuitry 214 can include one or more wireless adapters, wireless cards, cable adapters, wired adapters, radio frequency (RF) devices, wireless communication devices, Bluetooth devices, IEEE 802.11 compliant devices, WiFi devices, cellular devices, GPS devices, Ethernet ports, network ports, Lightning cable ports, cable ports, etc. In some examples, the communications circuitry 214 can be configured to facilitate communications over one or more wired media and / or protocols (e.g., Ethernet cable(s), Universal Serial Bus cable(s), etc.) and / or wireless media and / or protocols (e.g., Near Field Communication (NFC), Very High Frequency Radio (commonly known as Bluetooth), IEEE 802.11x, Zigbee, HART, LTE, Z-Wave, WirelessHD, WiGig, etc.).
[0039] 2, memory circuitry 212 includes and / or stores a custom axis rotation process 300. In some examples, custom axis rotation process 300 can be implemented by machine-readable (and / or processor-executable) instructions stored in memory circuitry 212 and / or executed by processing circuitry 210. In some examples, custom axis rotation process 300 can control positioner 110 of radiographer(s) 100 to translate rotatable fixture 112 such that as rotatable fixture 112 rotates, part 102 rotates about a custom axis that is offset from the actual axis of rotation of rotatable fixture 112.
[0040] Figure 3 is a flow chart illustrating an example operation of a custom axis rotation process 300. In the example of Figure 3, the custom axis rotation process 300 begins at block 302. At block 302, a custom axis 404 is defined (e.g., as shown in Figures 4a-4e).
[0041] In some examples, the custom axes 404 may be defined directly by a user (e.g., by user input received via the UI(s) 204). In some examples, the custom axes 404 may be defined automatically by the custom axis rotation process 300, such as based on known (and / or user entered) measurements of the part 102 and / or components of the radiographer 100. In some examples, the custom axis rotation process 300 may define the custom axes 404 based on an analysis of user input.
[0042] For example, the radiography system 200 can generate two or more different 2D images via the radiographer 100, with the part 102 at a different (e.g., off-center) rotational orientation in each image. The user can then select a point in each of the two or more 2D images. The custom axis rotation process 300 can then define two or more planes, each plane extending through the emitter 106 and a different one of the two or more points. Finally, the custom axis rotation process 300 can define a custom axis 404 as the intersection of the two or more planes.
[0043] In some examples, the custom axis 404 can be a line and / or a vector. In some examples, the custom rotation axis 404 can be parallel to the real rotation axis 402 of the rotatable fixture 112 (e.g., defined by the spindle 116). In some examples, the custom axis 404 can be defined to extend through an approximate (e.g., within 5% or 10% error) center (e.g., measured in a plane approximately parallel to the x-axis) of the part 102. In some examples, the custom axis 404 can be defined with respect to (and / or with respect to) a coordinate system, world space, virtual environment, and / or other framework that facilitates position / location determination. In some examples, the custom axis rotation process 300 can also define the real rotation axis 402 of the rotatable fixture 112 using the same framework (e.g., according to known and / or user-entered information).
[0044] 2, the custom axis rotation process 300 proceeds to block 304 after block 302. In block 304, the custom axis rotation process 300 determines an offset vector 406 that extends between the defined custom rotation axis 404 and the actual rotation axis 402 of the rotatable fixture 112 (e.g., as shown in FIGS. 4a-4e). In some examples, the offset vector 406 can represent the distance (and / or direction) between the custom rotation axis 404 and the actual rotation axis 402. In some examples, the offset vector 406 can be perpendicular (and / or orthogonal, perpendicular, etc.) to both the custom rotation axis 404 and the actual rotation axis 402 (and / or can lie in a plane perpendicular to such).
[0045] 4a-4e are top views of a rotatable fixture 112a holding a part 102. Other parts of the radiographer 100a have been omitted for clarity. FIG 4a shows an example of a real rotation axis 402 of the rotatable fixture 112a, a custom rotation axis 404, and an offset vector 406 that extends from the real axis 402 to the custom axis 404.
[0046] 4a, the real axis of rotation 402 of the rotatable fixture 112 is different from (and / or offset from) the custom axis 404. The real axis 402 is approximately at the center of the rotatable fixture 112a, and the custom axis 404 is approximately at the center of the part 102. However, the center of the part 102 is not aligned with the center of the rotatable fixture 112a.
[0047] The lack of alignment may be due to, for example, the mass of the part 102 being unevenly distributed. If most of the mass of the part 102 is in a circular portion of the part 102, then this circular portion (rather than the center of the part 102) may need to be more centrally located in the rotatable fixture 112a to maintain balance. However, as discussed above, the lack of alignment between the center of the rotatable fixture 112a (e.g., real axis 402) and the center of the part 102 (e.g., custom axis 404) can cause problems.
[0048] In the example of Figure 4b, the rotatable fixture 112a has been rotated counterclockwise about its real axis of rotation 402. The part 102 has also been rotated as a result of the rotation of the rotatable fixture 112. However, while the real axis 402 has not moved (as indicated by the crosshairs), the custom axis 404 (and part 102) have been translated in the x-axis and z-axis. The translation of the part 102 due to the misalignment of the center of the part 102 and the center of the rotatable fixture 112a is an undesirable result that the custom axis rotation process 300 is designed to address.
[0049] 3, the custom axis rotation process 300 proceeds after block 304 to block 306. In block 306, the custom axis rotation process 300 identifies an angle or speed (e.g., angular velocity) to rotate the part 102. In some examples, the direction of rotation (e.g., clockwise or counterclockwise) may also be identified.
[0050] In some examples, the custom axis rotation process 300 can use a default angle, speed, and / or direction stored in the memory circuitry 212. In some examples, the angle, speed, and / or direction can be provided by a user (e.g., via the UI(s) 204). For example, a particular angle, speed, and / or direction can be directly input by a user.
[0051] In some examples, the angle, speed, and / or direction can be determined automatically by the custom axis rotation process 300 (e.g., based on user input). For example, a user can select to perform a "step" rotation, in which the rotatable fixture 112 rotates the part 102 a set amount (and / or angle). In such examples, the user can select the number of "steps" to perform, and the custom axis rotation process 300 can determine the angle, speed, and / or direction based on the stored / entered angle (and / or direction / speed) per step. In some examples, the custom axis rotation process 300 can additionally (or alternatively) determine the angle, speed, and / or direction based on the number of steps selected. In some examples, the number of steps selected can be determined by the length of time the "step" input 206 (e.g., button) is selected (e.g., selection of 1 second = 1 step).
[0052] As another example, a user may select to continuously rotate the rotatable fixture 112 in a continuous "jog." In some examples, the "jog" may continue until a certain (e.g., stored and / or set) number of rotations have been made (e.g., ¼, ½, 1, 2, 5, 10, etc.) until a "stop" input is received. In some examples, the speed of the jog may be based on a default stored value, may be set directly by the user, and / or may be determined based on the length of time that the "jog" input 206 (e.g., a button) is selected. In some examples, a user may select the length of time they want to make a particular (e.g., ¼, ½, full) rotation, and the custom axis rotation process 300 may determine the appropriate speed based on the selection.
[0053] 3, the custom axis rotation process 300 proceeds to block 308 after block 306. In block 308, the custom axis rotation process 300 determines a translation of the rotatable fixture 112 based on the offset vector 406 (and / or the custom axis 404 and / or the real axis 402) and the angle, speed, and / or direction identified in block 306. In some examples, the custom axis rotation process 300 can determine the translation based on various trigonometric functions (e.g., sine, cosine, etc.) of the offset vector 406 and / or the selected angle and / or angular velocity.
[0054] In some examples, the desired translation can be in the form of a coordinate (or set of coordinates) that identifies a new location to which the rotatable fixture 112 (e.g., its center) should be moved to rotate the part 102 about the custom axis 404 by the identified angle, speed, and / or direction. In some examples, the translation can be in the form of a vector (or set of vectors) that identifies a distance and / or direction to which the rotatable fixture 112 should be moved to rotate the part 102 about the custom axis 404 by the identified angle, speed, and / or direction. In some examples, the desired translation can be in the form of a translational velocity (e.g., direction and / or speed) to which the rotatable fixture 112 should be moved to rotate the part 102 about the custom axis 404 by the identified angle, speed, and / or direction. In some examples, the translational coordinate(s), vector(s), and / or velocity can lie in a plane that is orthogonal (and / or perpendicular, orthogonal, etc.) to the custom rotation axis 404 and / or the real rotation axis 402.
[0055] In some examples, the translation can include a first translation (e.g., vector(s) / coordinate(s) / velocity) in a first axis (e.g., X-axis) and a second translation (e.g., vector(s) / coordinate(s)) in a second axis (e.g., Z-axis) perpendicular to the first axis. In such examples, both the first and second axes can lie in a plane that is perpendicular (and / or perpendicular, orthogonal, etc.) to the custom rotation axis 404 and / or the real rotation axis of the rotatable fixture 112. In some examples (e.g., corresponding to radiographer 100a), the first translation may correspond to movement of rotatable fixture 112 (and / or support structure 118) along floor 126 (and / or floor track 134) of positioner 110a shown in Figure 1, and the second translation may correspond to movement of rotatable fixture 112 (and / or support structure 118) along platform 124 (and / or shelf track 132) of positioner 110a. In some examples (e.g., corresponding to radiographer 100b shown in Figure 2), the translation(s) may be more complex and / or may occur in more than two axes (which may still ultimately result in a first translation / second translation in the first axis / second axis).
[0056] In the example of FIG. 3 , the custom axis rotation process 300 proceeds to block 310 after block 308. In block 310, the custom axis rotation process 300 commands the positioner 110 to move the rotatable fixture 112 (e.g., via the support structure 118 and / or the robot arm 150) according to the translation determined in block 308. As shown, the custom axis rotation process 300 then proceeds to block 312, where the custom axis rotation process 300 rotates the rotatable fixture 112 according to the direction, angle, and / or speed identified in block 306. Although shown as occurring in separate blocks 310 and 312 in the example of FIG. 3 , in some examples, the translation and rotation of the rotatable fixture 112 can occur simultaneously. The combination of the translation and rotation of the rotatable fixture 112 in blocks 310 and 312 causes the part 102 to rotate about the custom axis 404.
[0057] In some examples, the custom axis rotation process 300 can command (and / or the positioner 110 can perform) the rotations and / or translations in blocks 310 and / or 312 such that at least the distance portion of the offset vector 406 remains approximately constant (e.g., within 5% and / or 10%). Although the direction portion of the offset vector 406 may necessarily change as the rotatable fixture 112 rotates, the constant offset distance can provide the perception (e.g., to an observing user) that the part 102 is rotating about the custom axis 404 in a smooth coordinated motion. In some examples, the custom axis rotation process 300 can dynamically adjust the speed of the movement of the support structure 110 (and / or the rotation of the rotatable fixture 112) in a particular axis to provide the appearance of smooth coordinated motion. This can be particularly desirable during a "jog" motion intended to provide a continuous rotation that is always centered on the custom axis 404.
[0058] In contrast, if the offset distance is not held constant (and / or allowed to vary), then rotation of the part 102 about the custom axis 404 may be accomplished with uncoordinated motion that may ultimately result in rotation about the custom axis 404, but may not appear to be rotating about the custom axis 404. Nonetheless, such uncoordinated motion (and / or non-constant offset distance) may be acceptable or even desirable in some instances.
[0059] For example, the custom axis rotation process 300 may be simpler to implement if the offset distance is allowed to vary during rotation and / or translation. In some examples, the custom axis rotation process 300 may run faster and / or may save computational power required to coordinate movements if the offset distance is allowed to vary during rotation and / or translation. Also, in some examples, allowing the offset distance to vary during rotation and / or translation may increase the precision with which the part 102 may be rotated (e.g., by a particular angle) about the custom axis 404.
[0060] 3, the custom axis rotation process 300 proceeds to block 314 after block 312. In block 314, the custom axis rotation process 300 instructs the emitter 106 to direct X-ray radiation 104 through the part 102 to the detector 108. The custom axis rotation process 300 then generates one or more 2D and / or 3D images based on the radiation received at the detector 108. In some examples, a 3D image of the part 102 can be generated using multiple 2D images generated at different rotational orientations of the part 102. Although shown as ending after block 314, in some examples, the custom axis rotation process 300 can instead return to block 302 or block 306 after block 314.
[0061] 4c-e show an example of a rotation of a part 102 (e.g., via a translation of the custom axis rotation process 300) about a custom axis 404. FIG. 4c shows starting positions of the rotatable fixture 112, part 102, real axis 402, custom axis 404, and offset vector 406 similar to those shown in FIG. 4a. However, in contrast to FIG. 4a, FIG. 4c shows crosshairs at the custom axis 404 rather than the real axis 402, indicating that the rotation is centered on the fixed custom axis 404 rather than the fixed real axis 402.
[0062] In the example of Figure 4d, rotatable fixture 112a (and / or real axis 402) has been translated down in the negative z direction, rotating counterclockwise about real axis 402 and rotating part 102 counterclockwise about custom axis 404. As shown, the angle by which rotatable fixture 112a (and / or part 102) has been rotated is the same as the angle between new offset vector 406 and previous offset vector 406 (from Figures 4c and 4d, respectively). Because rotatable fixture 112 has been translated and not part 102 (contrary to the example of Figure 4b), custom axis 404 has not moved (as indicated by the crosshairs).
[0063] 4e illustrates an additional rotation about custom axis 404 via additional translation and rotation of rotatable fixture 112. As shown, rotatable fixture 112 has been further translated to the right and in the positive z and x directions and rotated counterclockwise about real axis 402. In some examples, further rotation of part 102 about custom axis 404 may cause rotatable fixture 112 to translate back to its original position of FIG. 4c.
[0064] The custom axis rotation process 300 enables the radiography system 200 to define a custom axis 404 and rotate the part 102 about the custom axis 404. This can be particularly beneficial in situations where it is difficult, impractical, and / or impossible to align the center of the part 102 with the center of the rotatable fixture 112 (and / or the real axis 402). The custom axis rotation process 300 can be applied to an existing radiography machine 100 without necessarily having to physically modify the radiography machine 100, integrate new components into the radiography machine 100, and / or risk instability of the part 102 and / or the radiography machine 100.
[0065] The method and / or system can be implemented in hardware, software, and / or a combination of hardware and software. The method and / or system can be implemented centrally in at least one computing system, or in a distributed fashion where different elements are distributed across several interconnected and / or remote computing systems. Any kind of computing system or other device adapted to perform the methods described herein is suitable. A typical combination of hardware and software can include a general-purpose computing system, with programs or other code that, when loaded and executed, controls the computing system to perform the methods described herein. Another typical embodiment can include application-specific integrated circuits or chips. Some embodiments can include a non-transitory machine-readable (e.g., computer-readable) medium (e.g., flash drive, optical disk, magnetic storage disk, etc.), which stores one or more instructions (e.g., lines of code) executable by a machine, thereby causing the machine to perform a process as described herein.
[0066] Although the method and / or system have been described with reference to certain specific embodiments, those skilled in the art will recognize that various modifications can be made and equivalents can be substituted without departing from the scope of the method and / or system. In addition, many modifications can be made to adapt a particular situation or material to the teachings of the disclosure without departing from its scope. Therefore, the method and / or system is not limited to the particular embodiments disclosed, but it is contemplated that the method and / or system will include all embodiments falling within the scope of the appended claims.
[0067] As used herein, "and / or" means any one or more of the items in the list linked 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."
[0068] As used herein, the term "for example" begins a list of one or more non-limiting examples, instances, or illustrations.
[0069] As used herein, the terms "coupled," "coupled to," and / or "coupled with" refer to a structural and / or electrical connection, whether by attaching, adhering, connecting, joining, fastening, linking, and / or otherwise securing. As used herein, the term "attach" refers to attaching, coupling, connecting, joining, fastening, linking, and / or otherwise securing. As used herein, the term "connect" refers to attaching, adhering, coupling, joining, fastening, linking, and / or otherwise securing.
[0070] As used herein, the terms "circuitry" and "circuitry" refer to physical electronic components (i.e., hardware) and any software and / or firmware ("code") that may comprise, be executed by, and / or be otherwise associated with the hardware. As used herein, for example, a particular processor and memory may comprise a first "circuitry" when executing a first one or more lines of code, and may comprise a second "circuitry" when executing a second one or more lines of code. As used herein, whenever circuitry comprises the hardware and code (if either is necessary) necessary to perform a function, the circuitry is "operable" and / or "configured" to perform that function, regardless of whether performance of that function is disabled or enabled (e.g., by a user-configurable setting, factory trim, etc.).
[0071] As used herein, control circuitry can include digital and / or analog circuitry, discrete and / or integrated circuitry, microprocessors, DSPs, etc., software, hardware and / or firmware that constitutes part or all of the controller and / or is located on one or more boards used to control the welding process and / or devices such as power supplies and wire feeders.
[0072] As used herein, the term "processor" refers to processing devices, apparatus, programs, circuits, components, systems, and subsystems, whether implemented in hardware, tangibly embodied software, or both, and whether programmable or not. As used herein, the term "processor" includes, but is not limited to, one or more computing devices, hardwired circuits, signal modifying devices and systems, system control devices and machines, central processing units, programmable devices and systems, field programmable gate arrays, application specific integrated circuits, systems on chips, systems with discrete elements and / or circuits, state machines, virtual machines, data processors, processing facilities, and any combination of the above. A processor may be, for example, any type of general purpose microprocessor or general purpose microcontroller, a digital signal processing (DSP) processor, an application specific integrated circuit (ASIC), a graphics processing unit (GPU), a reduced instruction set computer (RISC) processor with an advanced RISC machine (ARM) core, etc. A processor may be coupled to and / or integrated into a memory device.
[0073] As used herein, the terms "memory" and / or "memory device" refer to computer hardware or circuitry that stores information for use by a processor and / or other digital devices. The memory and / or memory device can be any suitable type of computer memory or any other type of electronic storage medium, such as 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), computer readable medium, etc. Memory may include, for example, non-transitory memory, non-transitory processor-readable medium, 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, stacked memory, non-volatile RAM (NVRAM), static RAM (SRAM), cache, buffer, semiconductor memory, magnetic memory, optical memory, flash memory, flash card, compact flash card, memory card, secure digital memory card, micro card, mini card, expansion card, smart card, memory stick, multimedia card, picture card, flash storage, subscriber identity module (SIM) card, hard drive (HDD), solid state drive (SSD), etc. Memory may be configured to store code, instructions, applications, software, firmware, and / or data and may be external, internal, or both to the processor.
Claims
Claim 1 A method of rotating an object about a custom rotation axis in an industrial radiographic system, comprising: directing first radiation from the radiation emitter towards the radiation detector through the object while the object is in a first orientation relative to the radiation emitter or the radiation detector of the industrial radiographic system; generating a first image of the object in the first orientation based on the first radiation detected by the radiation detector; receiving, via a user interface of the industrial radiographic system, a first selection of a point selected by a first user in the first image of the object; identifying a first plane defined by the radiation emitter and the point selected by the first user in the first image; rotating the object to a second orientation via a rotatable fixture of the industrial radiographic system; directing second radiation through the object towards the radiation detector while the object is in the second orientation; generating a second image of the object in the second orientation based on the second radiation detected by the radiation detector; receiving, via the user interface, a second selection of a point selected by a second user in the second image; identifying a second plane defined by the radiation emitter and the point selected by the second user in the second image; defining the custom rotation axis as a line extending through the intersection of the first plane and the second plane, wherein the custom rotation axis is offset from an actual rotation axis about which the rotatable fixture configured to hold the object is configured to rotate; determining an offset vector extending between the custom rotation axis and the actual rotation axis along a plane perpendicular to both the custom rotation axis and the actual rotation axis, the offset vector including an offset distance and an offset direction; identifying an angle or an angular velocity at which to rotate the object about the custom rotation axis; determining a translation of the rotatable fixture in the plane perpendicular to the custom rotation axis based on the offset vector and the angle, or the offset vector and the angular velocity; Moving the rotatable fixture in the plane based on the translation; Rotating the rotatable fixture about the actual axis of rotation based on the angle or the angular velocity, a method comprising.