System and method for generating scanning procedures - Patents.com

JP2024524371A5Pending Publication Date: 2025-07-08ILLINOIS TOOL WORKS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023580440
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-06-29
Filing Date
2022-06-30
Publication Date
2025-07-08

AI Technical Summary

Technical Problem

Conventional scanner positioning systems require significant trial and error to determine the optimal positioning of components for scanning procedures, leading to reduced throughput and increased costs due to extended scanning cycle times.

Method used

A virtual environment-based scanning procedure generation system that allows users to simulate and optimize scanning techniques interactively, generating precise scanning procedures that can be executed by physical scanners, reducing the need for manual adjustment and minimizing trial and error.

Benefits of technology

Enhances scanning efficiency by allowing users to design scanning procedures remotely, optimizing component placement and reducing scanning cycle times, thereby improving throughput and reducing operational costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

An exemplary scanning procedure generation system includes a display, a processor, and a computer-readable storage medium including computer-readable instructions that, when executed, cause the processor to output a first visual representation of an arrangement of a radiation source, a radiation detector, a work positioner, and a workpiece via the display, and generate a scanning procedure to be performed by a physical scanner having a physical radiation source, a physical radiation detector, and a physical work positioner based on the positions and orientations of the radiation source, the radiation detector, the work positioner, and the workpiece, the generated scanning procedure including multiple movements of one or more of the physical radiation source, the physical radiation detector, and the physical work positioner, and multiple image captures to capture multiple scanned images of a physical workpiece corresponding to the workpiece in the first virtual representation.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates generally to radiography, and more particularly to a scan sequence generation system and method for generating a scan sequence. [Background technology]

[0002] X-ray scanning systems involve directing high intensity radiation at a device or object under test to obtain one or more images that may not be obtainable using other scanning systems (e.g., ultrasound, visible light, etc.) X-ray scanning systems may have several parameters that depend on the relative placement of components within the X-ray scanning system. Summary of the Invention

[0003] As more fully set forth in the claims, a scan procedure generation system and method for generating scan procedures is disclosed, substantially as shown in and described in connection with at least one of the drawings.

[0004] These and other features, aspects, and advantages of the present disclosure will be better understood when the following detailed description is read in conjunction with the accompanying drawings, in which like reference characters represent like parts throughout. [Brief description of the drawings]

[0005] [Figure 1] FIG. 1 illustrates an example X-ray scanning system that may be controlled using a scanner positioning control system based on a generated scanning procedure, in accordance with aspects of the present disclosure.

[0006] [Diagram 2] FIG. 2 is a block diagram of the example X-ray scanning system, scan positioning control system, and scan procedure generation system of FIG. 1, in accordance with an aspect of the present disclosure.

[0007] [Figure 3A]3A-3C show an example object displayed in multiple positions and / or orientations in a virtual environment that may be implemented on the scanning procedure generation system of FIG. 2. [Figure 3B] 3A-3C show an example object displayed in multiple positions and / or orientations in a virtual environment that may be implemented on the scanning procedure generation system of FIG. 2.

[0008] [Figure 3C] FIG. 3 illustrates an example object displayed in an example virtual environment that may be implemented on the scanning procedure generation system of FIG. 2, including a bounding box that encloses at least a portion of the object and specifies a portion of the object to be scanned.

[0009] [Figure 3D] 3A-3C illustrate exemplary changes in position and orientation using a virtual environment and interactive modification of the rendering of a projection of an object on a radiation detector that may be implemented on the scanning procedure generation system of FIG. 2. [Figure 3E] 3A-3C illustrate exemplary changes in position and orientation using a virtual environment and interactive modification of the rendering of a projection of an object on a radiation detector that may be implemented on the scanning procedure generation system of FIG. 2.

[0010] [Figure 3F] FIG. 3 illustrates an example object displayed in an example virtual environment, in which at least a portion of a workpiece is rendered to indicate characteristics of the workpiece (e.g., possible defects), that may be implemented on the scanning procedure generation system of FIG.

[0011] [Figure 3G] FIG. 3 illustrates an example object displayed in an example virtual environment, including an automatically generated fixture configured to support the object on a manipulator, which may be implemented on the scanning procedure generation system of FIG.

[0012] [Figure 3H]3 shows an example object displayed in an example virtual environment, including a rendering of a cone of radiation emitted by a radiation source, which may be implemented on the scanning procedure generation system of FIG. 2.

[0013] [Figure 4] 3 is a flowchart representing example machine-readable instructions that may be executed by the example scan procedure generation system of FIG. 2 to generate a scan procedure executed by a physical scanning system.

[0014] [Diagram 5] 3 is a flowchart representing example machine-readable instructions that may be executed by the example scanning procedure generation system of FIG. 2 to automatically determine one or more placements and movements based on identification of a bounding box that encloses a portion of a workpiece.

[0015] [Figure 6] 3 is a flowchart representing example machine-readable instructions that may be executed by the example scanning procedure generation system of FIG. 2 to automatically determine one or more placements and movements based on identification of a bounding box that encloses a portion of a workpiece.

[0016] [Figure 7] 3 is a flowchart representing example machine-readable instructions that can be executed by the example scanning procedure generation system of FIG. 2 to render a portion of a workpiece to exhibit characteristics of the workpiece based on at least one of data in a CAD model or data received from a modeling algorithm based on the CAD model.

[0017] [Figure 8] 3 is a flowchart representing example machine-readable instructions that can be executed by the example scanning procedure generation system of FIG. 2 to generate a fixture model that supports a workpiece on a work positioner as defined in the generated scanning procedure.

[0018] [Figure 9]3 is a flowchart representing example machine-readable instructions that may be executed by the example scan procedure generation system of FIG. 2 to calculate a cycle time for physically performing the generated scan procedure.

[0019] [Figure 10] 3 is a flowchart representing example machine-readable instructions that can be executed by the example scan procedure generation system of FIG. 2 to generate a scan procedure based on dimensions of a virtual detector that are larger corresponding dimensions of a physical detector that performs the scan procedure.

[0020] [Figure 11] FIG. 3 is a block diagram of an example computing system that can be used to implement the scanner positioning control system and / or the scanning procedure generation system of FIG. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0021] The drawings are not necessarily to scale and, where appropriate, like or identical reference numbers are used to refer to like or identical components.

[0022] Conventional digital radiography (DR) and / or computed tomography (CT) scanner positioning systems include a user interface that provides control of individual modes of component positioning. For example, a conventional scanner positioning system may include numbers and ranges representing the height of an x-ray emitter, numbers and ranges representing the height of a manipulator, and / or numbers and ranges representing the height of an x-ray receiver. However, the person operating the control device may not have a clear idea of ​​the final position that will result from changing the numbers on the interface. Thus, conventional scanner positioning systems may involve a lot of trial and error on the part of the operator to determine the desired positioning to achieve the desired scan. Development of scan positioning and parameters has traditionally been done with a physical scanning system, which can incur significant costs to the system owner or operator due to the loss of time available to actually perform the scan. As a result, the throughput of the conventional scanning system is reduced while the appropriate scanning procedure is determined by the personnel, which can lead to increased costs and / or lost revenue due to increased scan cycle times.

[0023] The disclosed system and method allows a scanning procedure to be generated in a virtual environment that may be separate and / or remote (e.g., at any other location) from a scanning system or scanner positioning system. For example, a design, test, or manufacturing engineer, or any other personnel, may use the virtual environment to position and / or orient a workpiece (e.g., an object to be scanned) while obtaining interactive (e.g., real-time or substantially real-time) feedback to assist the user. The virtual environment and interactive feedback of the disclosed example allows a user to simulate and / or optimize factors that affect the development of a scanning technique. A user may also specify radiation source and / or radiation detector parameters and simulate the resulting scan through the virtual environment based on the component placement, the CAD model of the workpiece, and the source and detector parameters to determine whether the designed scanning procedure obtains the desired scan image.

[0024] In the disclosed examples, the generated scanning procedure includes necessary information and parameters to enable the scanner positioning control system to automatically perform the scanning procedure. For example, the generated scanning procedure may include commands to position, orient, and / or move the radiation source or emitter, the radiation detector, the work positioner or manipulator, the workpiece or object to be scanned, and / or any other associated components. The generated scanning procedure may further include operating parameters of the radiation source and / or the radiation detector. Other commands, parameters, data and / or information are provided in the disclosed examples below.

[0025] The disclosed systems and methods advantageously allow a user to design a scanning technique or procedure from any convenient location. In some examples, a user can use the disclosed systems and methods to design a scanning procedure in a virtual environment and verify that the procedure meets the requirements of an industry standard (e.g., ASTM standard E1695, ASTM standard E2737, etc.) or a customer's requirements.

[0026] The disclosed examples are described with reference to X-rays. However, the disclosure is not limited to X-rays and the examples disclosed herein can be modified to use any desired wavelength or energy, or any combination of wavelengths or energies, within the electromagnetic spectrum, such as gamma rays, monochromatic and / or polychromatic X-rays, white light, and / or neutron radiation.

[0027] As used herein, the term "configuration" refers to both the position and orientation of one or more components.

[0028] The terms "source" and "emitter" used in reference to a source of radiation are used interchangeably herein. In other words, as used herein, an "X-ray source" is the same as an "X-ray emitter."

[0029] An example scanning procedure generation system is disclosed that includes a display, a processor, and a computer-readable storage medium containing computer-readable instructions that, when executed, cause the processor to output a first visual representation of an arrangement of a radiation source, a radiation detector, a work positioner, and a workpiece via the display, and generate a scanning procedure to be performed by a physical scanner having a physical radiation source, a physical radiation detector, and a physical work positioner based on the positions and orientations of the radiation source, the radiation detector, the work positioner, and the workpiece, the generated scanning procedure including multiple movements of one or more of the physical radiation source, the physical radiation detector, and the physical work positioner, and multiple image captures that capture multiple scanned images of a physical workpiece corresponding to the workpiece in the first virtual representation.

[0030] In some example scanning procedure generation systems, the computer readable instructions cause the processor to identify changes made to an arrangement of at least one of the radiation source, the radiation detector, the work positioner, or the workpiece, and output, via the display, a second visual representation of the arrangement of the radiation source, the radiation detector, the work positioner, and the workpiece based on the changes made to the arrangement. In some example scanning procedure generation systems, the computer readable instructions cause the processor to render a projection of the workpiece onto the radiation detector based on the arrangement of the radiation source, the radiation detector, the work positioner, and the workpiece, and to update in real time the projection of the workpiece on the radiation detector in response to changes in the arrangement of one or more of the radiation source, the radiation detector, the work positioner, or the workpiece.

[0031] In some example scanning procedure generation systems, the computer readable instructions cause the processor to calculate the projections based on at least one of beam hardening, radiation energy or wavelength, spectrum and / or other characteristics of the polychromatic beam, randomization or errors in the accuracy of the movement or positioning of one or more of the scanner components, motion dynamics, alignment of the radiation source, radiation detector, work positioner, and work, accuracy or tolerance of the positioning of the work on the work positioner, collimation characteristics of the radiation source, focal spot size and / or shape of the radiation source, radiation scatter, a selected radiation spectrum, non-uniformity of the radiation cone, radiation flux, component degradation, variations in radiation emission by the radiation source, source warm-up time, scintillator efficiency of the radiation detector, scintillator resolution of the radiation detector, blurring of the radiation detector, noise in the radiation detector, and defects in the radiation detector.

[0032] In some example scanning procedure generation systems, the computer readable instructions cause the processor to determine whether a collision between one or more of the radiation source, the radiation detector, the workpiece positioner, or the workpiece and at least one other component has at least a threshold likelihood based on at least one of the first configuration, the altered second configuration, or the movement from the first configuration to the second configuration. In some example scanning procedure generation systems, the computer readable instructions cause the processor to determine whether a collision has at least a threshold likelihood further based on positioning of one or more additional components within the physical scanner.

[0033] In some example scanning procedure generation systems, the computer readable instructions cause the processor to render at least one of a cone of radiation or a collimation of radiation based on a positioning of the radiation source. In some example scanning procedure generation systems, the computer readable instructions cause the processor to render a projection of the workpiece onto the radiation detector based on the positioning of the radiation source, the radiation detector, the workpiece positioner, and the workpiece, and based on one or more radiation emission characteristics of the radiation source.

[0034] In some example scanroutine generation systems, the computer readable instructions cause the processor to generate a fixture model supporting a workpiece on a workpiece positioner as defined in the generated scanroutine. In some example scanroutine generation systems, the computer readable instructions cause the processor to load a workpiece into a first visual representation based on a computer-aided drafting (CAD) model of the workpiece. In some example scanroutine generation systems, the computer readable instructions cause the processor to render a portion of the workpiece to exhibit characteristics of the workpiece based on at least one of data in the CAD model or data received from a modeling algorithm based on the CAD model.

[0035] In some example scan procedure generation systems, the computer readable instructions cause the processor to automatically determine one or more of a positioning and movement of a radiation source, a radiation detector, a workpiece positioner, and a workpiece to generate a scan of the workpiece. In some example scan procedure generation systems, the computer readable instructions cause the processor to automatically determine one or more of a positioning and movement based on an identification of a bounding box that encloses a portion of the workpiece. In some example scan procedure generation systems, the computer readable instructions cause the processor to automatically determine one or more of a positioning and movement based on simulating two or more potential generated scan procedures to determine respective three-dimensional computed tomography or three-dimensional digital radiography results and comparing one or more aspects of the results determined via simulation.

[0036] In some example scanning procedure generation systems, the computer readable instructions cause the processor to simulate one or more sources of error in at least one of the positioning of one or more of the radiation source, the radiation detector, the work positioner, and the workpiece, the movement of one or more of the radiation source, the radiation detector, the work positioner, and the workpiece, the emission characteristics of the x-ray radiation emitted by the radiation source, the detection characteristics of the radiation detector, or the characteristics of the x-ray radiation in the system. In some example scanning procedure generation systems, the computer readable instructions cause the processor to calculate a cycle time for physically performing the generated scanning procedure.

[0037] In some example scanning procedure generation systems, the computer readable instructions cause a processor to calculate a three-dimensional computed tomography result or a three-dimensional digital radiography result based on simulating the generated scanning procedure. In some example scanning procedure generation systems, the generated scanning procedure includes second instructions executed by a physical scanner to perform the multiple movements and the multiple image captures. In some example scanning procedure generation systems, the generated scanning procedure is associated with an identifier of the workpiece.

[0038] In some example scan procedure generation systems, the instructions cause the processor to determine dimensions of a virtual detector via the virtual environment, at least one of the dimensions being greater than a corresponding dimension of a physical radiation detector, and to generate a scan procedure based on the determined dimensions, the scan procedure including positioning the physical radiation detector to satisfy the dimensions of the virtual detector.

[0039] FIG. 1 illustrates an example X-ray scanning system 100 that may be controlled using a scanner positioning control system that employs the generated scanning procedure. The example X-ray scanning system 100 may be used to perform non-destructive testing (NDT) and / or any other scanning application. The example X-ray scanning system 100 is configured to direct X-rays 102 from an X-ray emitter 104 through a workpiece 108 (e.g., an object under test) to an X-ray detector 106. In the example of FIG. 1, a workpiece positioner 110 holds or fixes the workpiece 108 and moves and / or rotates the workpiece 108 such that a desired portion and / or orientation of the workpiece 108 is located within the path of the X-ray radiation 102.

[0040] As described in more detail below, any of the X-ray emitter 104, the X-ray detector 106, and / or the work positioner 110 can be positioned and / or reoriented using one or more actuators. Relative repositioning of the X-ray emitter 104, the X-ray detector 106, and / or the work positioner 110 can have various effects, such as changing the focal length, changing the focus, changing the blur parameters, changing the magnification (e.g., the ratio of the distance between the X-ray emitter and the X-ray detector to the distance between the X-ray emitter and the work positioner or the work), changing the portion of the workpiece 108 that is scanned, and / or other effects.

[0041] X-ray scanning system 100 further includes a housing 112 in which X-ray emitter 104, X-ray detector 106, and workpiece positioner 110 are enclosed. Housing 112 includes one or more doors 114 or other access openings for, for example, inserting or removing workpiece 108, servicing any of the components within housing 112, and / or otherwise accessing the interior of housing 112.

[0042] The X-ray detector 106 of FIG. 1 generates a digital image based on incident X-ray radiation (e.g., generated by the X-ray emitter 104 and directed to the X-ray detector 106). An example X-ray detector 106 may include a fluoroscopy detection system and a digital image sensor configured to receive images indirectly via scintillation, and / or may 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 another example, the X-ray detector 106 may use a solid-state panel coupled to a scintillation screen and having pixels corresponding to portions of the scintillation screen. An example solid-state panel may include a CMOS X-ray panel and / or a CCD X-ray panel.

[0043] Exemplary implementations of the work positioner 110 include a mechanical manipulator, such as a platen with linear and / or rotary actuators. Other exemplary work positioner 110 may include a robotic manipulator, such as a robotic arm with six degrees of freedom (DOF).

[0044] Although the example of FIG. 1 includes an X-ray emitter 104 and an X-ray detector 106, in other examples, the scanning system 100 may perform scans using other wavelengths of radiation.

[0045] Figure 2 is a block diagram of the example X-ray scanning system 100, scan positioning control system 200, and scan procedure generation system 250 of Figure 1. As discussed above, the example X-ray scanning system 100 includes an X-ray emitter 104, an X-ray detector 106, and a workpiece positioner 110. The example X-ray scanning system 100 further includes a source actuator 116, a detector actuator 118, and a positioner actuator 120.

[0046] 2 is communicatively coupled to a scanner positioning control system 200. In some examples, a programmable logic controller (PLC) 202 or other interface device may couple the scanner positioning control system 200 to the X-ray scanning system 100. For example, the PLC 202 may enable a personal computer or other general-purpose computing device to communicate with (e.g., command, obtain information from) the actuators 116-120 and / or sensor(s) of the scanning system 100.

[0047] 2 includes one or more processors 204, memory 206 and / or other computer readable storage device(s), a display 208, communications circuitry 210, and one or more input devices 212. The scanner positioning control system 200 controls the positioning of the X-ray emitter 104 (e.g., via a source actuator 116), the positioning of the X-ray detector 106 (e.g., via a detector actuator 118), and / or the positioning of the work positioner 110 and / or workpiece 108 (e.g., via a positioner actuator 120).

[0048] The scanner positioning control system 200 controls the X-ray emitter 104, receives digital images from the X-ray detector 106, and / or outputs digital images to a display device 208. Additionally or alternatively, the scanner positioning control system 200 may store the digital images in a storage device. The scanner positioning control system 200 may output the digital images as digital video to aid in real-time non-destructive testing and / or store digital still images.

[0049] The scanner positioning control system 200 further controls the scanner positioning system (e.g., actuators 116, 118, 120 via PLC 202) to physically move the X-ray emitter 104, X-ray detector 106, and work positioner 110 based on input received via input device(s) 212 and / or based on an automated scanning procedure that may be generated via a scanning procedure generation system 250 and transferred to the scanner positioning control system 200 for execution. The processor(s) 204 calculate paths between the positions of the X-ray emitter 104, X-ray detector 106, and work positioner 110 in a first configuration and the positions of the physical components 104, 106, 110 in a subsequent configuration. The processor(s) 204 then commands (e.g., via the PLC 202) the source actuator 116, the detector actuator 118, and / or the positioner actuator 120 to move the X-ray emitter 104, the X-ray detector 106, and the work positioner 110. In some examples, the PLC 202 can calculate a path based on coordinate information communicated by the scanner positioning control system 200.

[0050] Similar to scanner positioning control system 200, the example scanner positioning control system 200 of FIG. 2 includes one or more processors 254, memory 256 and / or other computer-readable storage device(s), a display 258, communication circuitry 260, and one or more input devices 262.

[0051] The example scanning procedure generation system 250 of Figure 2 is communicatively coupled to the scanner positioning control system 200. For example, the scanning procedure generation system 250 may be connected to the scanner positioning control system 200 via one or more computer networks, such as a local area network (LAN), a wide area network (WAN), the Internet, and / or any other type of network. In some examples, the scanning procedure generation system 250 may transfer scanning procedures to the scanner positioning control system 200 (or directly to the scanning system 100) via network-based file transfer and / or storage device file transfer. In other examples, the scanning procedure generation system 250 and the scanner positioning control system 200 may access the same file repository for storage and subsequent retrieval of generated scanning procedures.

[0052] To reduce trial and error associated with positioning the components 104-110, the example scanning procedure generation system 250 outputs via the display 208 a virtual environment including a visual representation of the placement of the X-ray emitter 104, X-ray detector 106, and work positioner 110, which can be updated based on the user's manipulation of the components 104, 106, 110.

[0053] Exemplary operator input device(s) 212, 262 include buttons, switches, analog joysticks, thumb pads, trackballs, and / or any other type of user input device.

[0054] 3A illustrates a first example arrangement of components having a first position and / or orientation in a virtual environment 300 that may be implemented on the scanning procedure generation system 250 of FIG. 2. The example virtual environment 300 includes virtual representations of a radiation source 302, a radiation detector 304, a work positioner 306, and a workpiece 308. The radiation source 302, the radiation detector 304, and the work positioner 306 are considered scanner components, while the workpiece 308 is considered separate from the scanner. In some examples, other scanner components, such as a housing for the scanning system, may be rendered within the virtual environment.

[0055] The example scanner components 302-306 may be generalized for a generic scanning system or may be rendered to be specific to a particular type of scanning system specified in the scanning procedure generation system 250 for the virtual environment 300. Whether generic or specific to a scanning system, the virtual environment may constrain the positioning and / or orientation of the scanner components 302-306 based on predefined or user-defined constraints.

[0056] In addition to components, a user can load a workpiece 308 into the virtual environment 300 by instructing the scanning procedure generation system 250 to load a CAD model of the workpiece 308. The CAD model can be in any desired format supported by the scanning procedure generation system 250. The CAD model can be created using CAD software and / or can be created from data generated by a previous radiographic scan (e.g., via the scanning system 100 of FIG. 1). In this manner, a user can perform a scan of a sample component, which can then be loaded into the virtual environment 300 for design of a scanning procedure for a subsequent component of similar or identical design.

[0057] As discussed above, the example scanning procedure generation system 250 allows a user to change the position and orientation of any of the radiation source 302, radiation detector 304, work positioner 306, and workpiece 308. FIG. 3B illustrates a second example arrangement of components 302-308 having a second position and / or orientation within the virtual environment 300 as implemented on the scanning procedure generation system 250 of FIG. 2. For example, a user may reposition and / or reorient the detector 304 (or other component) within the virtual environment 300 by clicking and dragging the detector 304 (or other component) to adjust the position and / or orientation, which may be represented by a second representation of the detector 304 (or other component) until the change is confirmed by the user. The operator may iteratively adjust the position(s) and / or orientation(s) of the components 302-308 until the desired position(s) and / or orientation(s) are achieved.

[0058] To assist the operator in determining the desired positions of the components 302-308 within the virtual environment 300, the example scanning procedure generation system 250 may include additional visual representations on the virtual environment 300, such as projections of the current and / or updated positions of the components 302-308 onto one or more reference planes. The reference plane(s) assist the user by displaying the relative current positions of the components 302-308 and / or the relative updated positions of the components 302-308 in a particular plane where it may be difficult for the user to accurately perceive the spatial relationships between the components.

[0059] Using the input device(s) 262, the example scan procedure generation system 250 can identify change(s) to be made to the current configuration (e.g., position(s) and / or orientation(s)) of at least one of the source 302, the detector 304, the work positioner 306, and / or the workpiece 308. Based on the change(s) to the current configuration in the virtual environment 300 identified via the input device(s) 262, the scan procedure generation system 250 displays a visual representation of the updated configuration in the virtual environment 300. The example virtual environment 300 can be manipulated (e.g., via the input device(s) 262) to change the position and / or orientation of the components 302-308 and / or the viewing angle of the virtual environment 300 (e.g., the camera angle from which the configuration is viewed in the virtual environment 300). As the operator manipulates the position and / or orientation of one or more of the components 302-308, the scan procedure generation system 250 may generate corresponding modified components and / or change the position of the modified components while maintaining the same positions and / or orientations of the components 302-308 in their current configuration.

[0060] In some examples, the virtual environment 300 includes sufficient detail to make the virtual environment 300 closely resemble the physical scanning system 100. Such detail can further improve a user's ability to generate a scanning procedure.

[0061] The arrangement of the radiation source 302, radiation detector 304, work positioner 306, and workpiece 308 directly impacts the resulting radiographic or tomographic scan generated by the scanning system 100. As shown in Figures 3A and 3B, the scanning procedure generation system 250 can render a projection 310 of the workpiece 308 based on the arrangement of the radiation source 302, radiation detector 304, work positioner 306, and workpiece 308. In some examples, the projection 310 can be displayed directly on a virtual representation of the detector 304. Additionally or alternatively, the scanning procedure generation system 250 can display the projection 310 in a separate window or frame or outside the virtual environment 300 such that the display of the projection 310 is not affected by the viewing angle of the virtual environment 300.

[0062] 3A and 3B, the projections 310 may represent simulated radiographic images captured by the detector 304 based on the current parameters and configuration of the components 302-308. As the configuration and / or parameters are changed, the scan sequence generation system 250 interactively updates the projections 310 (e.g., in real time, with an update time of less than 2 seconds, etc.). The interactive updating of the projections 310 assists an operator in determining the proper configuration of the components 302-308 to obtain the desired DR or CT scan of the workpiece 308.

[0063] Figure 4 is a flowchart depicting example machine-readable instructions 400 that may be executed by the example scanning procedure generation system 250 of Figure 2 to generate a scanning procedure executed by the physical scanning system 100. The example instructions 400 are described below with reference to the example virtual environment and scanning procedure generation system 250 of Figures 3A and 3B.

[0064] In block 402, the scanning procedure generation system 250 (e.g., via the processor(s) 254) loads representations of the radiation source 302, radiation detector 304, and work positioner 306 into the virtual environment 300. The representations of the radiation source 302, radiation detector 304, and work positioner 306 may be selected and loaded based on a particular or desired type or model of the radiation source 302, radiation detector 304, and / or work positioner 306, or scanning system 100 having particular attributes of a scanning system in general.

[0065] At block 404, the scanning procedure generation system 250 loads one or more CAD or other data files representing the selected workpiece 308 (or combination of workpieces) into the virtual environment 300. The CAD files may be generated manually or automatically. An example of an automatically generated CAD file may be a file based on a contour determined from a previous DR or CT scan of the workpiece 308. In some examples, the radiation source 302, radiation detector 304, workpiece positioner 306, and / or workpiece 308 are provided with a default position and / or orientation upon loading. The scanning procedure generation system 250 may determine an initial position of the workpiece 308 based on matching the orientation and / or position data in the CAD files to the position of the positioner 306.

[0066] In block 406, the scanning procedure generation system 250 renders and outputs a visual representation of the arrangement of the radiation source 302, the radiation detector 304, the work positioner 306, and the workpiece 308 in the virtual environment 300 based on the respective positions and orientations of the components 302-308. The rendering is also based on the camera angle or viewpoint of the virtual environment 300 on the display 258.

[0067] In block 408, the scanning procedure generation system 250 determines whether the position(s) and / or orientation(s) of the radiation source 302, the radiation detector 304, the work positioner 306, and / or the workpiece 308 have been changed via the virtual environment 300. For example, a user may manipulate any of the components 302-308 to configure the scanning characteristics.

[0068] If the position(s) and / or orientation(s) of one or more of the components 302-308 have not changed (block 408), then the scanroute generation system 250 determines whether one or more aspects of the generated scanroute are automatically calculated, in block 410. For example, the scanroute generation system 250 may automatically calculate one or more scan procedures, geometry, parameter sets, fixtures, areas of interest of the workpiece 308, cycle time, scan bounding boxes, sources of potential error(s), such as component collisions, and / or any other aspects of the scanroute.

[0069] If one or more aspects of the generated scan procedure are to be automatically calculated (block 410), then in block 412, the scan procedure generation system 250 calculates the requested aspects of the generated scan procedure. For example, a user may select particular aspects of the generated scan procedure to be calculated and / or may request that the entire scan procedure be calculated for review and / or modification. Example instructions that may be executed to implement block 412 are disclosed below with reference to FIGS. 5-10.

[0070] After calculating the requested aspect(s) (block 412) or if the position(s) and / or orientation(s) of one or more components 302-308 have been changed (block 408), in block 414, the scanning procedure generation system 250 updates the placement(s) and / or parameters within the virtual environment 300 and returns to block 406 to update the rendering of the component(s) 302-308.

[0071] If the position(s) and / or orientation(s) of one or more of the components 302-308 have not been changed (block 408) and further aspects of the generated scan procedure are not automatically calculated (block 410), then in block 416 the scan procedure generation system 250 determines whether a projection or simulation of the scan is to be generated. For example, a user may select to simulate radiation being output by the radiation source 302 and corresponding images being generated by the detector 304 (e.g., "X-ray on").

[0072] If a projection or simulation of a scan is to be generated (block 416), then in block 418 the scan procedure generation system 250 renders and outputs a projection of the workpiece 308 based on the positioning of the source 302, the detector 304, the positioner 306, and the workpiece 308, based on source and / or detector parameters, and / or based on characteristics of the workpiece 308. In some examples, the scan procedure generation system 250 allows a user to select to simulate and render one or more effects on the projection to enhance realism, which can assist the user in improving the generated scan procedure. Example aspects that may be simulated by the scanning procedure generation system 250 for projection include beam hardening, radiation energy or wavelength, spectrum and / or other characteristics of a polychromatic beam, randomization or errors in the accuracy of the movement or positioning of one or more of the scanner components 302-306, motion dynamics (e.g., vibrations), alignment of the scanner components 302-306, accuracy or tolerance of the positioning of the workpiece 308 on the positioner 306, collimation characteristics of the radiation source 302, focal spot size and / or shape of the radiation source 302, radiation scatter, selected radiation spectrum, non-uniformity of the radiation cone and / or radiation flux, component degradation (e.g., pitting of a tungsten target of an x-ray source), variations in radiation emission by the radiation source 302, source warm-up time, scintillator efficiency of the detector 304, scintillator resolution and / or blur of the detector 304, noise in the detector 304, and / or defects of the detector 304 (e.g., over-response, under-response, and / or non-responsive pixels). The scanning procedure generation system 250 can render and output the projection 310 onto the surface of the detector 304 in a separate window or interface overlaid on or outside the display of the virtual environment 300. The example scanning procedure generation system 250 can update the projection in response to changes in geometry and / or parameters (e.g., block 408).

[0073] After rendering and outputting the projections 310 (block 418), or if no projections are generated (block 416), the scan procedure generation system 250 determines whether to generate a scan procedure in block 420. For example, a user may indicate that the placement of the components 302-308 and / or the source and / or detector parameters are satisfactory.

[0074] If no scanning procedures are generated (block 420), control returns to block 406 to continue rendering the virtual environment 300 and the components 302-308.

[0075] If a scan procedure is to be generated (block 420), then in block 422, the scan procedure generation system 250 generates a scan procedure to be performed by a physical scanner (e.g., scanning system 100) based on the arrangement(s) of the component(s) 302-308, the defined parameters of the source 302, the defined parameters of the detector 304, and / or the parameters of the workpiece 308. The generated scan procedure may be output as a file containing instructions or commands that, when executed by the scanning system 100 (e.g., directly or via the scanner positioning control system 200), cause the scanning system 100 to implement the positioning, orientation, movement, imaging, and / or image reconstruction of a DR or CT scan as defined in the scan procedure.

[0076] Exemplary scanning instructions and / or parameters that may be specified in the generated scan procedure include image acquisition placement (e.g., position and orientation) of components 302-308, workpiece loading and / or unloading locations, an unobstructed path around the workpiece 308 and / or workpiece fixture, warm-up location of radiation source 302, number of radiographs, start placement, final or ending placement, detector averaging parameters, component positioning and / or speed during and / or between radiographs (e.g., instructions to rotate and / or translate positioner 306, movement of detector 304, etc.), radiation energy or wavelength parameters or settings of source 302, focus mode and / or type, physical radiation filtering, collimation, region of interest on detector 304, integration time or frame rate, binning, and / or gain. However, any other component positioning and / or orientation parameters, radiation source parameters, radiation detector parameters, and / or DR or CT reconstruction parameters may be included in the generated scan procedure for execution by the physical scanning system and / or scanner positioning control system.

[0077] In some examples, additional data may be associated with the generated scan procedure, such as an identifier for the workpiece 308 (e.g., part number, model number, QR code or barcode, etc.) that allows the scan procedure to be loaded in response to input of the identifier in the scanner positioning control system 200. In some examples, fixture information may also be associated with the scan procedure.

[0078] After generating the scanning procedure, the example instructions 400 terminate.

[0079] 3C illustrates an example workpiece 308 displayed in an example virtual environment 300, which may be implemented on the scanning procedure generation system 250 of FIG. 2, including a bounding box 312 that encloses at least a portion of the workpiece 308 and designates the portion of the workpiece 308 that is to be scanned. The example bounding box 312 may be drawn by a user in the virtual environment 300 or may be automatically selected by the scanning procedure generation system 250 to include an area of ​​interest in the workpiece 308. A user may manipulate (e.g., resize, translate, redraw) the bounding box 312 in the virtual environment as needed.

[0080] In some examples, following selection of a bounding box 312 in the virtual environment 300, the scanning procedure generation system 250 determines at least a portion of a scanning procedure to scan a volume within the bounding box 312. For example, the scanning procedure generation system 250 may determine a positioning of the source 302 and the detector 304 relative to the bounding box 312, determine a position and / or orientation of the positioner 306, and / or determine a position of the workpiece 308 on the positioner 306 to scan the bounding box 312.

[0081] In some examples, the scanning procedure generation system 250 provides a wizard-type interface that prompts the user for certain information and automatically calculates a proposed scanning procedure based on the response. One example wizard interface may require the user to define a bounding box 312, voxel size, and beam hardening characteristics and generate a proposed scanning technique based on the provided information.

[0082] In some examples, the scanning procedure generation system 250 limits the DR or CT reconstruction from the simulated scanning procedure to reconstruct only the portion of the workpiece 308 within the bounding box 312 to conserve computing resources.

[0083] Figure 5 is a flow chart depicting example machine-readable instructions 500 that may be executed by the example scanning procedure generation system 250 of Figure 2 to automatically determine one or more placements and movements based on an identification of a bounding box that encloses a portion of a workpiece. The example instructions 500 are described below with reference to the example virtual environment of Figures 3A and 3B and the scanning procedure generation system 250 and may be executed to implement block 412 of Figure 4.

[0084] In block 502, the scanning procedure generation system 250 determines a portion of the workpiece 308 to be scanned. For example, the scanning procedure generation system 250 may determine that a certain portion of the workpiece 308 has a characteristic of interest for DR or CT scanning, a user may identify a portion of the workpiece 308, and / or the entire workpiece 308 may be scanned. In block 504, the scanning procedure generation system 250 generates a bounding box that encompasses at least a portion of the workpiece 308 to be scanned. In some examples, the bounding box has a cylindrical shape due to the placement and movement of the components 302-308. However, the bounding box may be configured in other shapes.

[0085] In block 506, the scanning procedure generation system 250 determines the position(s) and orientation(s) of the components 302-308 that scan the bounding box, and / or the source and / or detector parameters of the scan. The position(s) and orientation(s) may be determined based on the geometry of the bounding box. In some examples, the source and / or detector parameters may be based on characteristics of the workpiece, such as material, density, and / or any other characteristics determined from a CAD file and / or specified by a user.

[0086] At block 508, the scanning procedure generation system 250 simulates the scanning movement(s) and resultant image(s) to detect potential error(s). Exemplary errors that may be detected include collisions between different ones of the components 302-308 and / or between the components 302-308 and other elements of the scanning system 100, such as cabinets or enclosures, wiring, support structures, and / or any other physical components, errors in the positioning of one or more of the radiation source, radiation detector, work positioner, and workpiece, movement of one or more of the radiation source, radiation detector, work positioner, and workpiece, emission characteristics of the x-ray radiation emitted by the radiation source, detection characteristics of the radiation detector, or characteristics of the x-ray radiation within the system. In some examples, the scanning procedure generation system 250 simulates wobble (e.g., imbalance or other inaccuracies in the positioning of the positioner 306) or other errors in the positioner 306 and / or other components 302, 304, 308. Additionally or alternatively, the scanning procedure generation system 250 may perform Monte Carlo simulations of various parameters and / or resulting images for uncertainty estimation and / or prediction of potential sources of error.

[0087] In some examples, the scanning procedure generation system 250 performs a simulation of a full DR or CT scan (e.g., simulates the generation of a radiograph) using the position(s), orientation(s), and parameters determined using the CAD model of the workpiece 308, and performs a DR or CT reconstruction based on the simulated radiograph. The simulation of the full scan and the resulting simulated reconstruction enable a user to identify potential issues with the proposed scanning procedure and make appropriate changes.

[0088] At block 510, the scan procedure generation system 250 determines whether potential error(s) are detected. If one or more errors are detected (block 510), then at block 512, the scan procedure generation system 250 adjusts the position(s) and / or orientation(s) of one or more of the components 302-308 to scan the bounding box and eliminate the errors. Control then returns to block 508 to simulate updated scan movements and resulting image(s) for further errors.

[0089] If no potential errors are detected (block 510), then in block 514, the scan procedure generation system 250 outputs the position(s) and orientation(s) of the component(s) 302-308, and / or the source and detector parameter(s). The position(s), orientation(s), and parameter(s) may be used to generate a scan procedure and / or may be modified by a user. The example instructions 500 may then end.

[0090] Figure 6 is a flow chart representing example machine-readable instructions that may be executed by the example scanning procedure generation system 250 of Figure 2 to automatically determine one or more placements and movements based on an identification of a bounding box that encloses a portion of the workpiece 308. The example instructions 600 are described below with reference to the example virtual environment of Figures 3A and 3B and the scanning procedure generation system 250 and may be executed to implement block 412 of Figure 4.

[0091] In block 602, the scanning procedure generation system 250 determines a portion of the workpiece 308 to be scanned. For example, the scanning procedure generation system 250 may determine that a certain portion of the workpiece 308 has a characteristic of interest for DR or CT scanning, a user may identify a portion of the workpiece 308, and / or the entire workpiece 308 may be scanned. In block 604, the scanning procedure generation system 250 generates a bounding box that encompasses at least a portion of the workpiece 308 to be scanned. In some examples, the bounding box has a cylindrical shape due to the placement and movement of the components 302-308. However, the bounding box may be configured in other shapes.

[0092] In block 606, the scanning procedure generation system 250 uses two or more techniques (e.g., planning algorithms) and / or parameter sets to determine the position, orientation, and / or movement(s) of the component(s) 302-308, and / or source and / or detector parameters to perform different scans of the bounding box 312. For example, the scanning procedure generation system 250 may have multiple techniques and / or planning algorithms stored for use in a procedure plan. Different ones of the planning algorithms may be optimized for particular types of scans and / or configurations.

[0093] At block 608, the scan procedure generation system 250 simulates two or more scan motion(s) and resultant image(s) (e.g., based on different planning algorithms). At block 610, the scan procedure generation system 250 determines one or more characteristics of each scan and / or the set of resultant image(s). For example, the scan procedure generation system 250 may determine whether each of the scans introduces any errors, provides image quality below a threshold, and / or otherwise meets or does not meet the criteria for a satisfactory scan.

[0094] In block 612, the scan-routine generation system 250 compares characteristics of the scans and selects one of the scans based on the characteristics. For example, the scan-routine generation system 250 may determine which scan provides preferred image quality and / or avoids errors such as collisions. The selected scan may provide a preferred combination of quantitative values ​​determined from the simulation.

[0095] In block 614, the scan procedure generation system 250 determines whether a potential error is detected in the selected scan. If one or more errors are detected (block 614), in block 616, the scan procedure generation system 250 adjusts the position(s) and / or orientation(s) of one or more of the components 302-308 to scan the bounding box and eliminate the error. Control then returns to block 608 to simulate the updated scan movement and resulting image(s) for further errors. The example scan procedure generation system 250 can update parameters of the algorithm that were simulated in the previous iteration.

[0096] If no potential errors are detected (block 614), then in block 618, the scan procedure generation system 250 outputs the position(s) and orientation(s) of the component(s) 302-308, and / or the source and detector parameter(s). The position(s), orientation(s), and parameter(s) may be used to generate a scan procedure and / or may be modified by a user. The example instructions 600 may then end.

[0097] 3D and 3E show an example modification of the position and orientation of the positioner 306 and workpiece 308 using the virtual environment 300 and interactive modification of a rendering of a projection 310 of the workpiece 308 on the radiation detector 304, which may be implemented on the scan procedure generation system 250 of FIG. 2. As shown in FIG. 3D, a user may select the workpiece positioner 306 for translation and / or rotation. In the illustrated example, the workpiece 308 may be linked by referencing the workpiece positioner 306 such that the workpiece 308 moves with the positioner 306 to maintain the same positional and / or orientation relationship as the positioner 306.

[0098] 3D, the results of the translation of the positioner 306 are represented in the virtual environment 300 using different visual styles (e.g., a ghost representation 314 or other visually distinct representation of the positioner 306). The virtual environment 300 also shows a direction 316 or plane of movement or orientation to assist the user in positioning the components 302-308.

[0099] Figure 3E illustrates the virtual environment following the position change made in Figure 3D. As shown in Figure 3E, the scan procedure generation system 250 updates the simulation of the projection 310 based on the updated positioning and renders the updated projection 310 onto the detector 304. Because the workpiece 308 is now closer to the source 302 (as shown by the projection 310), the workpiece 308 will occupy a larger portion of the resulting image, potentially altering the interaction between the radiation and the workpiece 308.

[0100] 3F illustrates an example workpiece 308 displayed in an example virtual environment 300 where at least a portion 318 of the workpiece 308 is rendered to indicate characteristics (e.g., potential defects) of the workpiece 308, which may be implemented on the scanning sequence generation system 250 of FIG. 2. In some examples, the scanning sequence generation system 250 may implement and / or invoke one or more modeling algorithms and / or simulations to analyze a CAD model of the workpiece 308. Example modeling algorithms that may be implemented or invoked may include casting analysis algorithms, porosity analysis modeling, and / or stress analysis modeling, which may be used to analyze the CAD model for potential voids, discontinuities, porosity, inclusions, tolerance issues, and / or any other potential defect or risk source that may occur during a casting process to manufacture the workpiece 308 based on the CAD model. However, any other type of manufacturing modeling or analysis algorithm may be implemented or invoked.

[0101] The modeling algorithm and / or scan procedure generation system 250 may specify thresholds or conditions that are noteworthy during a DR or CT scan of the workpiece 308. In response to identifying one or more portions of the workpiece 308 using the modeling or analysis algorithm(s), the example scan procedure generation system 250 may render the identified portions of the workpiece 308 differently from other or remaining portions of the workpiece 308 in the virtual environment 300. In some examples, different portions of the workpiece 308 may be identified via the modeling or analysis algorithm(s) for different reasons. The example scan procedure generation system 250 may render portions of the workpiece 308 identified using different algorithms by displaying different visual indications (e.g., different colors, different patterns, etc.), or may render portions identified in the same manner to visually indicate any areas of interest regardless of the algorithm that resulted in the identification.

[0102] In some examples, the scan procedure generation system 250 automatically determines a scan procedure (e.g., component placement, movement, and / or parameters) to include the identified portion of interest on the workpiece 308. The source and / or detector parameters may be selected based on the types of characteristics identified by one or more modeling or analysis algorithms.

[0103] FIG. 7 is a flowchart representing example machine-readable instructions that may be executed by the example scanning procedure generation system 250 of FIG. 2 to render a portion of a workpiece to exhibit characteristics of the workpiece based on at least one of data in a CAD model or data received from a modeling algorithm based on the CAD model.

[0104] At block 702, the scanning route generation system 250 loads one or more modeling programs or algorithms. For example, the scanning route generation system 250 may load a casting analysis algorithm if the workpiece 308 is manufactured by casting. The modeling program(s) may be automatically selected based on characteristics of the CAD model and / or may be manually selected by a user from a library of modeling program(s).

[0105] In block 704, the scanning procedure generation system 250 determines the output threshold(s) of the modeling program. For example, a user may specify a quantitative threshold that indicates the presence of a feature of interest, such as a discontinuity. In other examples, the modeling program is configured with predetermined thresholds.

[0106] In block 706 , the scanning procedure generation system 250 executes the modeling program(s) using the loaded CAD model of the workpiece 308 .

[0107] In block 708, the scanning procedure generation system 250 determines whether any of the executed modeling program(s) returns an output that satisfies a corresponding output threshold indicating the presence or threshold likelihood of the characteristic modeled by the modeling program.

[0108] If any of the executed modeling program(s) returns an output that satisfies the corresponding output threshold (block 708), then in block 710, the scanning procedure generation system 250 renders the portion(s) 320 of the workpiece 308 that corresponds to the output(s) that satisfy the output threshold(s) to indicate the corresponding characteristics of the workpiece 308. For example, the scanning procedure generation system 250 may render the portion 318 of the workpiece 308 in a different color and / or pattern than the remainder of the workpiece 308 to indicate the presence of one or more modeled characteristics (e.g., discontinuities, etc.) in the portion 318 of the workpiece 308.

[0109] After rendering portion 318 (block 710), or if none of the modeling algorithms identify properties (block 708), the example instructions 700 end.

[0110] FIG. 3G illustrates an example workpiece 308 displayed in an example virtual environment 300 including an automatically generated fixture 320 configured to support an object on a workpiece positioner 306, which may be implemented on the scanning procedure generation system 250 of FIG. 2. As shown in FIG. 3F, a user may determine that a relatively unstable orientation of the workpiece 308 on the positioner 306 results in a desired DR or CT scan, but a more stable orientation may not. Rather than requiring an operator of the scanning system 100 to determine an appropriate way to stabilize the workpiece 308, the example scanning procedure generation system 250 may automatically design (or automatically call another program that designs) a fixture 320 that can stabilize the workpiece 308. Additionally or alternatively, the fixture 320 may be designed to secure the positioner 306 (e.g., via a feature of the positioner 306 that allows for the attachment of an accessory).

[0111] 3F , the scanning procedure generation system 250 can determine, based on the CAD model, the center of gravity of the workpiece 308, the external contour of the workpiece 308 (e.g., contact points), and / or any other features of the workpiece 308. Based on the configured orientation of the workpiece 308, the data from the CAD model, and the positioner 306, the example scanning procedure generation system 250 calculates and generates a CAD model of a physical fixture 320 to support and stabilize the workpiece 308 on the positioner 306. In some examples, the fixture 320 is further designed to secure the workpiece 308 to the positioner 306 to provide a consistent position and / or orientation of the workpiece 308 relative to the positioner 306.

[0112] In some examples, the user may select to physically generate one or more copies of the fixture 320 via 3D printing or other additive manufacturing and / or machining techniques. In response to such a selection, the scanning procedure generation system 250 may export the generated files to an external device (e.g., a 3D printer, a contract manufacturer, etc.) for manufacturing. In other examples, a CAD file of the fixture 320 may be packaged with the generated scanning procedure for use by an operator of the scanning system 100 when a physical copy of the workpiece 308 is scanned via the system 100.

[0113] FIG. 8 is a flowchart representing example machine-readable instructions 800 that can be executed by the example scanning procedure generation system 250 of FIG. 2 to generate a fixture model that supports the workpiece 308 on the work positioner 306 as defined in the generated scanning procedure.

[0114] In block 802, the scanning procedure generation system 250 determines a position and orientation of the workpiece 308 relative to the positioner 306 within the virtual environment 300. For example, the scanning procedure generation system 250 may determine contact and / or support points provided by the positioner 306 to the workpiece 308 based on the position and orientation of the workpiece 308 by the user.

[0115] In block 804, the scanning procedure generation system 250 determines whether the workpiece 308 is in a stable position for scanning. For example, the scanning procedure generation system 250 may determine whether the calculated center of gravity of the workpiece 308 is in a position relative to a support point that may destabilize the workpiece 308 during a scanning procedure (e.g., at a rest position, during movement and / or rotation of the positioner 306, etc.).

[0116] In block 806, the scanning procedure generation system 250 generates and outputs a CAD model of a fixture (e.g., fixture 320) to support the workpiece on the positioner 306 and / or secure the workpiece 308 to the positioner 306 in the configured position and orientation. For example, the scanning procedure generation system 250 can use a fixture generation algorithm to generate structures that contact points on the positioner 306 based on the geometry of the workpiece 308 and the positioner 306 and based on the position and orientation of the workpiece 308 relative to the positioner 306, structures configured to use the structures that contact the positioner 306 to contact points on the workpiece 308 (e.g., points at or near the ends of the workpiece 308, points having a higher density and / or weight, etc.) and support the workpiece 308 at those points, bridge structures connecting the structures that contact the positioner 306 and the workpiece 308, and / or location identification structures that can be used to identify the location of the fixture 320 and thereby identify the location of the workpiece 308 at a particular point and orientation on the positioner 306.

[0117] The resulting CAD model can be in any desired format and can be stored or incorporated into the generated scanning procedure of the workpiece 308 to allow an operator of the scanning system 100 to access and rapidly generate (e.g., via a 3D printer or other additive manufacturing device) the scanning procedure and desired fixture of the workpiece 308.

[0118] At block 808, the scanning route generation system 250 determines whether a physical fixture is to be generated. For example, a user of the scanning route generation system 250 and / or an operator of the scanner positioning control system 200 may choose to generate a physical copy of the fixture 320. If a physical copy of the fixture 320 is to be generated (block 808), then at block 810 the scanning route generation system 250 (or the scanner positioning control system 200) outputs a CAD model of the fixture 320 to an additive manufacturing system for physical generation.

[0119] After outputting the CAD model of the fixture 320 (block 810), if a physical fixture is not created (block 808), or if the workpiece 308 is in a stable position for scanning (and the user does not otherwise choose to create a fixture model), the example instructions 800 end.

[0120] 3H illustrates an example workpiece 308 displayed in an example virtual environment 300 including a rendering of a cone of radiation 322 emitted by a radiation source 302, which may be implemented on the scanning procedure generation system 250 of FIG. 2. The scanning procedure generation system 250 calculates the boundaries of the cone of radiation 322 based on the placement and parameters of the radiation source 302 in the virtual environment, such as the distance between the radiation source 302 and the radiation detector 304, collimation, and / or any other parameters. The scanning procedure generation system 250 can then render the calculated cone of radiation 322 with or without simulating and rendering the projection 310, as desired by the user. In other examples, the scanning procedure generation system 250 can project and / or render other positioning aids into the virtual environment, such as a radiation focus, scattered radiation, beam collimation, and / or any other aids or effects.

[0121] Additionally or alternatively, the user may designate portions of the detector 304 as non-functional or having another malfunction (e.g., loss of detector resolution), which is then included in any simulations or reconstructions by the scan procedure generation system 250, allowing the user to design scan procedures around expected or potential problem areas.

[0122] Figure 9 is a flow chart representing example machine-readable instructions 900 that may be executed by the example scan procedure generation system 250 of Figure 2 to calculate a cycle time for physically performing the generated scan procedure. The example instructions 900 are described below with reference to the example virtual environment of Figures 3A and 3B and the scan procedure generation system 250 and may be executed to implement block 412 of Figure 4.

[0123] In block 902, scanning procedure generation system 250 determines the type of physical scanning system 100. For example, a user of scanning procedure generation system 250 may select a model and / or one or more characteristics of physical scanning system 100 from a list or menu of options and / or may input other data that can be used by scanning procedure generation system 250 to calculate cycle times.

[0124] In block 904, the scanning procedure generation system 250 simulates the generated scanning procedure to calculate a cycle time based on the determined physical scanning system 100. For example, the scanning procedure generation system 250 may determine the cycle time to include an estimated time to position the workpiece 308 and / or any required fixtures, a housing closure time, a radiation source warm-up time, an image capture time including integration time and number of radiographs, a housing open time, a workpiece and / or fixture removal time, and / or any other aspect of performing the physical scan of the generated scanning procedure.

[0125] At block 906, the scan procedure generation system 250 outputs the calculated cycle time. The calculated cycle time may be used by the scan procedure generation system 250 as a factor to score or compare potential scan procedures for selection (e.g., block 612 of FIG. 6) since reducing the cycle time may be an advantageous feature of a scan procedure. The example instructions 900 may then end.

[0126] 10 is a flowchart depicting example machine-readable instructions 1000 that may be executed by the example scan procedure generation system 250 of FIG. 2 to generate a scan procedure based on virtual detector dimensions that are larger corresponding dimensions of the physical detector that performs the scan procedure. For example, the virtual environment 300 allows a user to configure the size of the radiation detector 304 to be larger than the actual size or dimensions of the detector 106. A resulting scan procedure is generated that includes multiple radiographs for each workpiece position to allow movement of the emitter 104, detector 106, and / or positioner 110 and workpiece 108 to effectively match the defined virtual detector dimensions.

[0127] At block 1002, the scanning procedure generation system 250 receives the boundaries (e.g., dimensions and location) of the detector 304 in the virtual environment as specified by an operator. In some examples, the scanning procedure generation system 250 automatically configures the virtual detector dimensions and location based on the size of the workpiece 308 and / or the bounding box 312, and the desired source and / or detector parameters (e.g., if the desired image quality cannot be obtained in a single radiograph for a given workpiece position).

[0128] At block 1004, the scanning procedure generation system 250 determines the position(s) and orientation(s) of the components 302-308 to scan the bounding box 312 with the specified detector boundary and effective detector boundary. The position(s) and orientation(s) of the components 302-308 can be used by the scanning procedure generation system 250 to automatically generate a scanning procedure for scanning the workpiece 308, as described above. The example scanning procedure generation system 250 can further include image stitching instructions that enable the scanning system 100 to stitch multiple radiographs taken for a given workpiece position and orientation into a single image having the effective dimensions of the virtual detector. The example instructions 1000 then end.

[0129] Although the above examples refer to linear actuators, any other type(s) of actuator(s) or manipulator(s) can be used to physically position and / or manipulate the X-ray emitter 104, the X-ray detector 106, the workpiece positioner 110, the workpiece, and / or any other components. For example, the actuator(s) 116, 118, 120 can include six degree of freedom robotic manipulators, rotational actuators (e.g., direct rotation, worm gear rotation, etc.), and / or any other type of actuator, which can be reflected in the virtual environment 300 of Figures 3A-3H.

[0130] Figure 11 is a block diagram of an example computing system 1100 that can be used to implement the scanner positioning control system 200 and / or the scanning procedure generation system 250 of Figure 2. The example computing system 1100 can be implemented using a personal computer, a server, a smart phone, a laptop computer, a workstation, a tablet computer, and / or any other type of computing device.

[0131] The example computing system 1100 of FIG. 11 includes a processor 1102. The example processor 1102 can be any general-purpose central processing unit (CPU) from any manufacturer. In some other examples, the processor 1102 can include one or more special-purpose processing units, such as a RISC processor with an ARM core, a graphics processing unit, a digital signal processor, and / or a system-on-chip (SoC). The processor 1102 executes machine-readable instructions 1104, which can be stored locally to the processor (e.g., in a cache included therein or in the SoC), in a random access memory 1106 (or other volatile memory), in a read-only memory 1108 (or other non-volatile memory such as flash memory), and / or in a mass storage device 1110. The example mass storage device 1110 can be a hard drive, a solid-state storage device, a hybrid drive, a RAID array, and / or any other mass data storage device.

[0132] The bus 1112 may enable communication between the processor 1102 , the RAM 1106 , the ROM 1108 , the mass storage device 1110 , the network interface 1114 , and / or the input / output interface 1116 .

[0133] The example network interface 1114 includes hardware, firmware, and / or software for connecting the computing system 1100 to a communications network 1118, such as the Internet. For example, the network interface 1114 may include IEEE 802.X compliant wireless and / or wired communications hardware for sending and / or receiving communication information.

[0134] The example I / O interface 1116 of FIG. 11 includes hardware, firmware, and / or software that couples one or more input / output devices 1120 to the processor 1102 to provide input to and / or output from the processor 1102. For example, the I / O interface 1116 may include a graphics processing unit for interfacing to a display device, a Universal Serial Bus port for interfacing to one or more USB-compliant devices, a FireWire, a Fieldbus, and / or any other type of interface. The example I / O device(s) 1120 may include a keyboard, a keypad, a mouse, a trackball, a pointing device, a microphone, an audio speaker, an optical media drive, a multi-touch touch screen, a gesture recognition interface, a display device (e.g., display device(s) 208, 258), a magnetic media drive, and / or any other type of input and / or output device.

[0135] The example computing system 1100 can access non-transitory machine-readable medium 1122 via I / O interface 1116 and / or I / O device(s) 1120. Examples of machine-readable medium 1122 in Figure 11 include optical disks (e.g., compact discs (CDs), digital versatile / video discs (DVDs), Blu-ray discs, etc.), magnetic media (e.g., floppy disks), portable storage media (e.g., portable flash drives, secure digital (SD) cards, etc.), and / or any other type of removable and / or installable machine-readable medium.

[0136] Exemplary wireless interfaces, protocols, and / or standards that may be supported and / or used by the network interface(s) 1114 and / or the I / O interface(s) 1116 include wireless personal area network (WPAN) protocols such as Bluetooth (registered trademark) (IEEE 802.15); near field communication (NFC) standards; wireless local area network (WLAN) protocols such as WiFi (IEEE 802.11); cellular standards such as 2G / 2G+ (e.g., GSM / GPRS / EDGE and IS-95 or cdmaOne) and / or 2G / 2G+ (e.g., CDMA2000, UMTS, and HSPA); 4G standards such as WiMAX (IEEE 802.16) and LTE; Ultra-Wideband (UWB), and the like. Example wired interfaces, protocols, and / or standards that may be supported and / or used by the network interface(s) 1114 and / or the I / O interface(s) 1116, such as for communicating with the display device(s) 212, include Ethernet (IEEE 802.3), Fiber Distributed Data Interface (FDDI), Integrated Services Digital Network (ISDN), cable television and / or Internet (ATSC, DVB-C, DOCSIS), Universal Serial Bus (USB) based interfaces, and the like.

[0137] The processor 802, the network interface(s) 1114, and / or the I / O interface(s) 1116 may perform, for example, filtering, amplification, analog-to-digital and / or digital-to-analog conversion, up-conversion / down-conversion of baseband signals, encoding / decoding, encryption / decryption, modulation / demodulation, and / or any other suitable signal processing.

[0138] The computing system 1100 may use one or more antennas for wireless communication and / or one or more wired ports for wired communication. The antenna(s) may be any type of antenna (e.g., directional antenna, omnidirectional antenna, multi-input multi-output (MIMO) antenna, etc.) suitable for the frequency, power level, diversity, and / or other parameters required for the wireless interface and / or protocol used to communicate. The port(s) may include any type of connector suitable for communication over a wired interface / protocol supported by the computing device system 1100. For example, the port(s) may include an Ethernet over twisted pair port, a USB port, an HDMI port, a passive optical network (PON) port, and / or any other suitable port for interfacing to a wire or optical cable.

[0139] The method and system can be implemented in hardware, software, and / or a combination of hardware and software. The method and / or system can be implemented in a centralized manner in at least one computing system, or in a distributed manner where different elements are distributed across several interconnected 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 lines of code executable by a machine, thereby causing the machine to perform a process as described herein. As used herein, the term "non-transitory machine-readable medium" is defined to include all types of machine-readable storage media and to exclude propagating signals.

[0140] 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 otherwise be associated with hardware. As used herein, for example, a particular processor and memory may include a first "circuitry" when executing a first one or more lines of code, and may include a second "circuitry" when executing a second one or more lines of code. As used herein, "and / or" refers to any one or more of the items in a list linked by "and / or". As an example, "x and / or y" refers to any element of the triplet {(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 used herein, the term "exemplary" means serving as a non-limiting example, instance, or illustration. As used herein, the term "for example" begins a list of one or more non-limiting examples, instances, or illustrations. As used herein, whenever circuitry includes the necessary hardware and code (if either is necessary) to perform a function, the circuitry is "operable" to perform that function, regardless of whether implementation of that function has been disabled or enabled (e.g., by a user-configurable setting, a factory trim, etc.).

[0141] 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 and equivalents may be substituted without departing from the scope of the method and / or system. For example, blocks and / or components of the disclosed examples may be combined, divided, rearranged, and / or otherwise modified. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the disclosure without departing from the scope of the disclosure. Thus, the method and / or system is not limited to the particular embodiments disclosed. Instead, the method and / or system includes all embodiments falling within the scope of the appended claims, both literally and under the doctrine of equivalents.

Claims

Claim 1 A scanning procedure generation system, comprising: a display; a processor; a computer-readable storage medium containing computer-readable instructions; wherein the computer-readable instructions, when executed, cause the processor to: output a first visual representation of the radiation source, the radiation detector, the work positioner, and the arrangement of the work via the display; generate a scanning procedure to be executed by a physical scanner having a physical radiation source, a physical radiation detector, and a physical work positioner based on the positions and orientations of the radiation source, the radiation detector, the work positioner, and the work; the generated scanning procedure includes a plurality of movements of one or more of the physical radiation source, the physical radiation detector, and the physical work positioner, and a plurality of image captures for capturing a plurality of scanning images of the physical work corresponding to the work in the first virtual representation; A scanning procedure generation system.