Patent Description:
Nondestructive inspection (NDI) is a testing and analysis technique used to evaluate the properties of a structure without causing damage to the structure. Nondestructive inspection may be also referred to as nondestructive testing (NDT), nondestructive examination (NDE), and nondestructive evaluation (NDE). Evaluating the data generated via some currently available nondestructive inspection techniques may be challenging with respect to large structures with complex shapes, such as fuselage structures, wing structures, and other types of aircraft structures. For example, an ultrasound device may be used to generate measurements (e.g., distance measurements between different surfaces, thickness measurements, etc.) for a fuselage structure. But currently available methodologies may not provide an accurate and reliable way to analyze these measurements with respect to the design data for the fuselage structure. Manual techniques for comparing such measurements with design data may be more cumbersome and time-consuming than desired.

<CIT> in an abstract states that "A device and method for performing ultrasound scanning of a substantially cylindrical object, the device comprising a cuff adapted to fit around a circumference of the object, a carrier mounted slidably on the cuff and adapted to traverse the circumference of the object, an ultrasound probe mounted on the carrier and positioned to scan the circumference of the object as the carrier traverses the circumference of the object, a carrier motor mounted on the cuff or the carrier and used to drive the movement of the carrier about the circumference of the object, and one or more data connections providing control information for the carrier motor and the ultrasound probe and receiving scanning data from the ultrasound probe.

<CIT> in an abstract states that "A system is provided that includes computer-readable storage configured to store non-destructive testing inspection data relating to a portion of an object that has been inspected. Further, a processor presents a model associated with the object, associates the inspection data with the related portion of the object; and presents an indication of availability of the inspection data on a portion of the presented model. The portion of the presented model relates to the portion of the object associated with the inspection data.

In one or more examples, a method is provided for inspecting a structure. A scan surface that represents an inspection area of the structure is identified. A plurality of sample points on an outer surface identified from a model of the structure and a corresponding plurality of projected points on an inner surface identified from the model of the structure are generated using the scan surface, a first geometric representation of the outer surface, and a second geometric representation of the inner surface. Distance data is computed using the plurality of sample points and the corresponding plurality of projected points. Sensor data generated for the inspection area of the structure is analyzed using the distance data to detect a presence of an inconsistency in the structure. In one or more examples, a system comprises a memory for storing a machine-readable medium comprising machine executable code and a processor coupled to the memory. The processor is configured to execute the machine executable code to cause the processor to implement an analysis tool that is configured to: identify a scan surface that represents an inspection area of a structure; generate a plurality of sample points on an outer surface identified from a model of the structure and a corresponding plurality of projected points on an inner surface identified from the model of the structure using the scan surface, a first geometric representation of the outer surface, and a second geometric representation of the inner surface; and compute distance data using the plurality of sample points and the corresponding plurality of projected points, wherein the distance data identifies a distance between a point pair formed by a sample point of the plurality of sample points and a projected point of the corresponding plurality of projected points.

In one or more examples, a method for computing distance data for an aircraft structure is provided. A scan surface that represents an inspection area of the aircraft structure is identified. An outer surface for the aircraft structure and a set of inner surfaces for the aircraft structure are identified using a model of the aircraft structure. A plurality of sample points on the outer surface and, for each selected inner surface of the set of inner surfaces, a corresponding plurality of projected points on the selected inner surface are generated using the scan surface, a first geometric representation of the outer surface, a second geometric representation of the selected inner surface, and a spatial indexing algorithm. Distance data is computed using the plurality of sample points and the corresponding plurality of projected points generated for each selected inner surface of the set of inner surfaces. The distance data provides as-designed data for use in comparing with sensor data generated for the aircraft structure to detect an inconsistency in the aircraft structure.

The novel features believed characteristic of the example embodiments are set forth in the appended claims. The example embodiments, however, as well as a preferred mode of use, further objectives and features thereof, will best be understood by reference to the following detailed description of an example embodiment of the present disclosure when read in conjunction with the accompanying drawings.

The example embodiments described below provide methods and systems for generating as-designed data for use in conjunction with sensor data to detect the presence of structural inconsistencies. The as-designed data includes as-designed distance data. This as-designed data identifies the distances between various surface layers within a structure that are designed for the structure. As one example, for an aircraft structure, the as-designed data may provide the theoretical distance between an outer mold line and an inner mold line of the aircraft structure at various locations along the aircraft structure.

The example embodiments described herein provide methods and systems for automating the process of computing the as-designed data. These methods and systems provide cost savings and time savings as compared to using manual techniques that are currently available. The as-designed data includes distance data identifying distances for each of a plurality of sample points. In some examples, these distances include thicknesses, such as part thicknesses, material thicknesses, etc..

For example, the distance data may be computed for each of a plurality of inspection areas designated for a structure. An inspection area may be an area, section, or zone of the structure that is designated for inspection in a single pass. Within this inspection area, an inspection device (e.g., a nondestructive inspection device) may follow a pattern comprising a plurality of paths and a plurality of scan locations along each path of the plurality of paths. In one or more examples, the sample points are the theoretical or abstract representation of the scan locations at which nondestructive inspection has been or is to be performed.

Further, the example embodiments described herein provide methods and systems for generating a function that enables these types of as-designed distances to be computed for any location on a structure regardless of the scan pattern used to inspect the structure. This function may be, for example, a continuous function. Thus, the automated process of computing distance data may not need to be repeated for different types of scan patterns or previously unrepresented scan locations.

Referring now to the figures, <FIG> is a block diagram of an inspection system in accordance with one or more example embodiments. Inspection system <NUM> may be used to inspect structure <NUM>. In one or more examples, structure <NUM> is a composite structure, with inspection system <NUM> being used to perform nondestructive inspection of the composite structure.

Structure <NUM> may take any of a number of different forms. In one or more examples, structure <NUM> takes the form of an aircraft structure. For example, structure <NUM> may take the form of fuselage structure <NUM> (e.g., a barrel fuselage structure). Fuselage structure <NUM> may be an entire fuselage of an aircraft, such as aircraft <NUM> described below with respect to <FIG>, or may be a portion of a fuselage. In other examples, structure <NUM> takes the form of a wing structure, a tail section, a nose section, a control surface structure (e.g., a flap, a stabilizer, an aileron, etc.). Thus, depending on the implementation, structure <NUM> may be a part, an assembly, a system, a collection of surfaces, or some other type of structural entity.

In one or more examples, inspection system <NUM> includes sensor system <NUM> and analysis tool <NUM>. Sensor system <NUM> may include one or more sensors that are used to generate sensor data <NUM>. In one or more examples, sensor system <NUM> includes at least one nondestructive inspection (NDI) device. An NDI device may include one or more sensors for performing nondestructive inspection.

For example, without limitation, an NDI device may include an ultrasonic device (e.g., an ultrasonic transducer) for performing ultrasonic inspection of structure <NUM>. During inspection, the ultrasonic device may be moved (or scanned) over structure <NUM>. The ultrasonic device may be separated from exterior surface <NUM> of structure <NUM> by a couplant (e.g., oil) or water.

Sensor system <NUM> generates sensor data <NUM> that is used to determine whether structure <NUM> has any inconsistencies. As used herein, an inconsistency may be an undesired feature or a feature that is outside of the design of or selected tolerances for structure <NUM>. For example, an inconsistency may be a void, a crack, a certain level of porosity, delamination, some other type of inconsistency or a combination thereof. In one or more examples, sensor data <NUM> includes measurements or data that can be used to calculate distances between different surfaces of structure <NUM>. At least a portion of these distances may identify or may be used to identify thicknesses for different parts of structure <NUM> or layers of parts.

In one or more examples, analysis tool <NUM> may be communicatively coupled to sensor system <NUM>. For example, analysis tool <NUM> may be capable of communicating with sensor system <NUM> over at least one of a wireless communications link, a wired communications link, an optical communications link, or a combination thereof.

Analysis tool <NUM> may be implemented using hardware, software, firmware, or a combination thereof. When software is used, the operations performed by analysis tool <NUM> may be implemented using, for example, without limitation, program code configured to run on a processor unit. When firmware is used, the operations performed by analysis tool <NUM> may be implemented using, for example, without limitation, program code and data and stored in persistent memory to run on a processor unit.

When hardware is employed, the hardware may include one or more circuits that operate to perform the operations performed by analysis tool <NUM>. Depending on the implementation, the hardware may take the form of a circuit system, an integrated circuit, an application specific integrated circuit (ASIC), a programmable logic device, or some other suitable type of hardware device configured to perform any number of operations.

A programmable logic device may be configured to perform certain operations. The device may be permanently configured to perform these operations or may be reconfigurable. A programmable logic device may take the form of, for example, without limitation, a programmable logic array, a programmable array logic, a field programmable logic array, a field programmable gate array, or some other type of programmable hardware device.

In one or more examples, analysis tool <NUM> is implemented within computer system <NUM>. Computer system <NUM> may take the form of any of a number of different types of computing platforms. For example, computer system <NUM> may include a single computer or multiple computers in communication with each other. In other examples, computer system <NUM> may take the form of a cloud computing system, a smartphone, a tablet, or some other type of computing platform.

Analysis tool <NUM> is used to generate distance data <NUM> that can be used in conjunction with sensor data <NUM> to detect any inconsistencies in structure <NUM>. In some examples, analysis tool <NUM> is itself capable of performing an analysis of sensor data <NUM> using distance data <NUM> to detect inconsistencies in structure <NUM>. In one or more examples, analysis tool <NUM> may receive input <NUM> that is used to generate distance data <NUM>. Input <NUM> may include user input, input from a program, input from a different computing platform, data retrieved from a database or some other data store, some other type of input, or a combination thereof. Input <NUM> may identify, for example, user (or customer) requirements.

Distance data <NUM> comprises data identifying different distances between one or more surface pairs associated with structure <NUM>. A surface pair comprises two surfaces that are aligned (e.g., overlap). For example, distance data <NUM> may identify the distance between a first location along an outer surface of a fuselage skin and a second location on an inner surface of the fuselage skin. The second location on the inner surface lies along a vector that is substantially normal to the outer surface at the first location. As used herein, "substantially normal" means normal or nearly normal, with selected tolerances. Distance data <NUM> may include any number of distances for any number of surface pairs.

Distance data <NUM> is generated based on the design of structure <NUM>. Accordingly, distance data <NUM> may be referred to as design distance data, design-based distance data, or as-designed distance data. In one or more examples, a distance identified in distance data <NUM> may be a thickness of a part or portion of structure <NUM>. Thus, in some cases, at least a portion of distance data <NUM> may include thickness data. This thickness data may be also referred to as design thickness data, design-based thickness data, or as-designed thickness data.

In these examples, analysis tool <NUM> generates distance data <NUM> based on model <NUM> of structure <NUM>. Model <NUM> may be a data-based representation of structure <NUM>. For example, model <NUM> may be a computer-aided design (CAD) model of structure <NUM>. In some examples, model <NUM> comprises data that can be used to construct a three-dimensional model of structure <NUM>. In or more examples, model <NUM> is received in input <NUM>.

Analysis tool <NUM> uses model <NUM> to identify a plurality of surfaces <NUM> for structure <NUM>. These surfaces <NUM> are the as-designed surfaces for structure <NUM>. In one or more examples, surfaces <NUM> includes outer surface <NUM> and set of inner surfaces <NUM>. Set of inner surfaces <NUM> includes one or more inner surfaces of structure <NUM>. Each surface of surfaces <NUM> may be a continuous surface or a discontinuous surface.

When structure <NUM> takes the form of an aircraft structure such as fuselage structure <NUM>, outer surface <NUM> may be an outer mold line (OML) of fuselage structure <NUM>, which is the outermost surface of fuselage structure <NUM>. This outer mold line may be formed by, for example, at least the outer surface of the fuselage skin.

In this example, inner surface <NUM> is one example inner surface in set of inner surfaces <NUM> for fuselage structure <NUM>. Inner surface <NUM> may be a surface that is located closer to a center axis of fuselage structure <NUM> as compared to outer surface <NUM>. For example, fuselage structure <NUM> may have a barrel shape, a cylindrical shape, a cylinder-type shape, or similar. In some examples, inner surface <NUM> is the surface of the fuselage skin facing the interior of fuselage structure and forms at least a portion of the inner mold line (IML) of fuselage structure <NUM>. In some examples, inner surface <NUM> is a surface formed by the filler material used in fuselage structure <NUM>. In other examples, inner surface <NUM> is a surface formed by the various outer surfaces or the various inner surfaces of stringers of fuselage structure <NUM>.

Analysis tool <NUM> further identifies scan surface <NUM>. Scan surface <NUM> is a representation of an area of structure <NUM> that has been inspected (or "scanned") using sensor system <NUM> or that is to be inspected using sensor system <NUM>. This area may be referred to as an inspection area of an inspection zone. For example, scan surface <NUM> may represent inspection area <NUM> over exterior surface <NUM> of structure <NUM>.

Analysis tool <NUM> generates a plurality of sample points <NUM> and, for each surface of set of inner surfaces <NUM>, a corresponding plurality of projected points <NUM> using scan surface <NUM>, outer surface <NUM>, set of inner surfaces <NUM>, and spatial indexing algorithm <NUM>. Sample points <NUM> are located along outer surface <NUM>. As used herein, a "sample point" is a point (e.g., defined with respect to three dimensions) that is projected from scan surface <NUM> at a vector substantially normal to scan surface <NUM> and that lies on or is coincident with outer surface <NUM>.

Projected points <NUM> are located along an inner surface (e.g., inner surface <NUM>) of set of inner surfaces <NUM>. As used herein, a "projected point" on an inner surface is a point (e.g., defined with respect to three dimensions) that is projected from a corresponding one of sample points <NUM> along a vector that is substantially normal to outer surface <NUM> and that lies on or is coincident with the inner surface.

Sample points <NUM> and projected points <NUM> may be generated using spatial indexing algorithm <NUM>. In one or more examples, spatial indexing algorithm <NUM> is used to identify a portion of model <NUM> most relevant to generating sample points <NUM> and projected points <NUM>. Thus, spatial indexing algorithm <NUM> may be used to reduce the data that needs to be processed to generate sample points <NUM> and projected points <NUM>, thereby reducing the overall time and processing resources needed to generate distance data <NUM>.

For example, analysis tool <NUM> may use spatial indexing algorithm <NUM> to narrow down a portion of inner surface <NUM> that is aligned with or overlapped by scan surface <NUM> such that the entirety of inner surface <NUM> does not need to be processed in order to generate projected points <NUM>. Spatial indexing algorithm <NUM> may comprise, for example, but is not limited to, one or more algorithms for building k-dimensional trees. Examples of how sample points <NUM> and projected points <NUM> may be generated are described in greater detail below in <FIG> and <FIG>, respectively.

Using sample points <NUM> and projected points <NUM>, analysis tool <NUM> computes distance data <NUM>. Distance data <NUM> includes a distance between each corresponding point pair (sample point-projected point pair) from sample points <NUM> and projected points <NUM>. Distance data <NUM> thus provides information based on model <NUM> of structure <NUM> that can be used for verifying and/or analyzing sensor data <NUM> generated by sensor system <NUM>.

For example, sensor data <NUM> may be compared to distance data <NUM> to determine whether any actual distances between surfaces of structure <NUM> are outside of the selected tolerances from the designed distances, as identified by distance data <NUM>. Such differences may signal the detection of one or more inconsistencies in structure <NUM>.

In one or more examples, analysis tool <NUM> generates function <NUM> using distance data <NUM>. Function <NUM> enables identifying the designed distance between surfaces (e.g., a design thickness) to be computed at other points along outer surface <NUM> beyond sample points <NUM>. For example, function <NUM> may be a continuous function that enables a distance between outer surface <NUM> and inner surface <NUM> to be generated for any point along outer surface <NUM>, including those points not included in sample points <NUM>.

In some cases, function <NUM> may be output from analysis tool <NUM> to another computing platform (e.g., a cloud computing platform, another computer system, etc.) to enable one or more different users to use function <NUM> to compute designed distances. Depending on its implementation, function <NUM> may be alternatively referred to as a distance function or a thickness function.

Although distance data <NUM> has been described as being generated for a single scan surface <NUM>, distance data <NUM> may include data generated for multiple scan surfaces. For example, model <NUM> may be divided into various inspection areas (or inspection zones). Distance data <NUM> may include data generated for each of these various inspection areas such that data is generated for the entire structure <NUM>.

In some examples, analysis tool <NUM> generates visualization output <NUM> of distance data <NUM>. Visualization output <NUM> may be sent to, for example, display device <NUM> for display to a user. Visualization output <NUM> may take different forms. In one or more examples, visualization output <NUM> takes the form of a three-dimensional distance map or distance model that visually presents at least a portion of distance data <NUM>. In one or more examples, visualization output <NUM> is a thickness map or thickness model that visually presents thicknesses.

The block diagram of <FIG> is not meant to imply physical or architectural limitations to the manner in which an example embodiment may be implemented. Other components in addition to or in place of the ones illustrated may be used. Some components may be optional. Further, the blocks are presented to illustrate functional components. One or more of these blocks may be combined, divided, or combined and divided into different blocks when implemented in an example embodiment.

<FIG> are illustrations that describe different steps that may be involved in the generation of distance data, such as distance data <NUM> in <FIG>. <FIG> are thus described with continuing reference to <FIG>.

<FIG> is a schematic diagram of a process for generating a scan surface in accordance with one or more example embodiments. In particular, the process illustrated in <FIG> may be implemented by analysis tool <NUM> in <FIG>.

Coordinates <NUM> are first identified. Coordinates <NUM> may define an area of structure <NUM> that has been or is to be inspected or "scanned" using sensor system <NUM> in <FIG>. For example, coordinate <NUM> may define inspection area <NUM> of structure <NUM> in <FIG>. Coordinates <NUM> are on a reference coordinate system. This reference coordinate system may be, for example, the coordinate system of model <NUM> of structure <NUM> in <FIG>.

In one or more examples, coordinates <NUM> are identified from input <NUM> in <FIG>. For example, input <NUM> may include coordinates <NUM> extracted from or a program that is used to control sensor system <NUM> and move sensor system <NUM> along structure <NUM>. In some cases, input <NUM> may include the program itself and analysis tool <NUM> may identify coordinates <NUM> from the program.

In other examples, input <NUM> includes user input that identifies coordinates <NUM>. In some cases, input <NUM> includes data received from sensor system <NUM> that identifies coordinates <NUM>. In yet other examples, analysis tool <NUM> may receive input <NUM> that includes initial coordinates corresponding to a different coordinate system. Analysis tool <NUM> processes these initial coordinates (e.g., transforms the initial coordinates) to generate coordinates <NUM> on the reference coordinate system.

Coordinates <NUM> are processed to identify initial surface <NUM>, which represents inspection area <NUM> in <FIG>. In particular, coordinates <NUM> are used to identify boundary <NUM> for use in defining initial surface <NUM>. Initial surface <NUM> may be represented in the three-dimensional domain.

In some cases, when processed with respect to the two-dimensional domain, one or more portions of boundary <NUM> for initial surface <NUM> may be formed by one or more convex curves, concave curves, or both. To reduce the processing time associated with initial surface <NUM> having this type of boundary <NUM>, convex shape <NUM> may be generated for initial surface <NUM> in the two-dimensional domain. Convex shape <NUM> includes one or more local convex hulls that ensure that initial surface <NUM> is fully or generally contained within convex shape <NUM>. In this manner, convex shape <NUM> may be convex or nearly convex. In one or more examples, convex shape <NUM> is generated such that boundary <NUM> for initial surface <NUM> is entirely overlapped with or contained within convex shape <NUM>.

Scan surface <NUM> is then generated in the three-dimensional domain based on convex shape <NUM>. Scan surface <NUM> is one example of an implementation for scan surface <NUM> in <FIG>. Scan surface <NUM> has a substantially convex shape or boundary. As used herein, "substantially convex" means convex or nearly convex. In one or more examples, scan surface <NUM> represents the global convex or nearly convex shape for inspection area <NUM>. In these examples, scan surface <NUM> corresponds to the same reference coordinate system as initial surface <NUM>.

In other cases, boundary <NUM> of initial surface <NUM> may itself be substantially convex. Accordingly, initial surface <NUM> may be used as scan surface <NUM>. In some examples, initial surface <NUM> is used as scan surface <NUM> when the shape of boundary <NUM> is sufficiently simple so as to not increase the amount of processing time or resources needed more than desired.

<FIG> is schematic diagram of a process for generating a plurality of sample points on scan surface <NUM> from <FIG> in accordance with one or more example embodiments. In particular, the process illustrated in <FIG> may be implemented by analysis tool <NUM> in <FIG>.

First, a plurality of reference curves <NUM> are identified along scan surface <NUM>. Each of reference curves <NUM> represents a path along which sensor system <NUM> is moved within inspection area <NUM> in <FIG> to inspect or "scan" structure <NUM>. In one or more examples, reference curves <NUM> are generated based on the same portion of input <NUM> from which coordinates <NUM> in <FIG> are identified. In other examples, reference curves <NUM> are generated based on another portion of input <NUM> received at analysis tool <NUM>.

Reference curves <NUM> may be equally spaced apart. For example, input <NUM> may identify a first reference curve (e.g., a spine curve). Analysis tool <NUM> uses this first reference curve to generate additional reference curves that are parallel to this first reference curve and equally spaced apart with respect to each other. In other examples, not all of reference curves <NUM> may be equally spaced.

A collection of points <NUM> along scan surface <NUM> are then identified using reference curves <NUM> and a spacing distance. Each of points <NUM> may be defined in three dimensions (e.g., an x-y-z point). Points <NUM> may be spaced apart along each of reference curves <NUM> according to the spacing distance. This spacing distance may be provided by input <NUM>. In some examples, this spacing distance is provided by the same portion of input <NUM> from which coordinates <NUM> in <FIG>, reference curves <NUM>, or both are generated. In other examples, the spacing distance is provided by another portion of input <NUM>.

A plurality of scan points <NUM> are selected from points <NUM> based on initial surface <NUM>, boundary <NUM>, or both in <FIG>. Scan points <NUM> are those ones of points <NUM> that are fully contained within boundary <NUM> or that overlap with initial surface <NUM> if initial surface <NUM> were to be superimposed or overlaid over scan surface <NUM>. Scan points <NUM> may be projected onto an outer surface, such as outer surface <NUM> in <FIG>, to generate sample points <NUM> in <FIG>.

<FIG> is a schematic diagram of a geometric representation that has been generated using model <NUM> of structure <NUM> in <FIG> in accordance with one or more example embodiments. Geometric representation <NUM> may be generated for one of surfaces <NUM> identified from model <NUM> in <FIG>. In the illustrated example, geometric representation <NUM> is generated for outer surface <NUM> in <FIG>.

Geometric representation <NUM> comprises a plurality of patches <NUM>. As used herein, a "patch" is a geometric representation of a portion of or a section of a corresponding surface. In some cases, a patch may also be referred to as a surface path. This abstract geometric representation may have a curved shape, a polygonal shape, an irregular shape, or some other type of shape. In one or more examples, patches <NUM> may have the same shape and size (e.g., the same polygonal shape to form a polygonal mesh) or may have different shapes, different sizes, or both. A patch may be alternatively referred to as a "face," a "surface section. " In some examples, geometric representation <NUM> is referred to as a patched or patch-based representation.

Analysis tool <NUM> in <FIG> may sample patches <NUM> to identify at least one patch point in each of patches <NUM>. This sampling may be performed in order to build at least one k-dimensional tree that organizes these patch points in the three-dimensional domain.

<FIG> is a schematic diagram of a relevant surface area that has been identified from geometric representation <NUM> in <FIG> in accordance with one or more example embodiments. Relevant surface area <NUM> includes selected portion <NUM> of patches <NUM> from <FIG> that have been determined to overlap with, coincide with, and/or be in close proximity to scan surface <NUM> if scan surface <NUM> were aligned with or superimposed over geometric representation <NUM> in <FIG>. Thus, relevant surface <NUM> corresponds to the surface (e.g., outer surface <NUM>) from which geometric representation <NUM> is created by representing the portion of that surface most relevant scan surface <NUM>.

The one or more k-dimensional trees generated for geometric representation <NUM> are used to narrow down patches <NUM> and identify relevant surface area <NUM>. Relevant surface area <NUM> provides a more focused space from which to identify sample points <NUM> in <FIG>. Using relevant surface area <NUM> to generate sample points <NUM> may reduce the overall amount of processing time needed and the amount of processing resources used to generate distance data <NUM>. Although relevant surface area <NUM> has been described as being generated using k-dimensional trees, in other examples, some other type of technique for accelerating the process of identifying relevant surface area <NUM> may be used.

Although geometric representation <NUM> in <FIG> and relevant surface area <NUM> are described with respect to outer surface <NUM> in <FIG>, similar steps may be performed for each inner surface of set of inner surfaces <NUM> in <FIG>. For example, similar steps may be used to generate projected points <NUM> in <FIG>.

<FIG> is an illustration of a thickness map in accordance with one or more example embodiments. Thickness map <NUM> is one example of an implementation for visualization output <NUM> in <FIG>. Thickness map <NUM> is a three-dimensional mapping of distance data <NUM> computed for fuselage structure <NUM> in <FIG>. In one or more examples, thickness map <NUM> is color-coded to provide a visualization of different ranges of thicknesses for fuselage structure <NUM>.

In other examples, thickness map <NUM> may provide a different type of visual indication of the different ranges of thicknesses for fuselage structure <NUM>. For example, different shades of a single color may be used. As another example, different patterns may be used.

<FIG> is a flowchart of a process for inspecting a structure in accordance with one or more example embodiments. Process <NUM> in <FIG> may be implemented using analysis tool <NUM> in <FIG>.

Process <NUM> begins by identifying a scan surface that represents an inspection area of a structure (operation <NUM>). The structure may be, for example, structure <NUM> in <FIG>. In one or more examples, the structure takes the form of fuselage structure <NUM> in <FIG>. In other examples, the structure may be another type of aircraft structure (e.g., a wing structure, a tail section, a nose section, a control surface structure, etc.). The inspection area of the structure may be, for example, inspection area <NUM> in <FIG>. The scan surface may be, for example, scan surface <NUM> in <FIG>. In one or more examples, the scan surface may have a substantially convex shape.

A plurality of sample points on an outer surface identified from a model of the structure and a corresponding plurality of projected points on an inner surface identified from the model of the structure are generated using the scan surface, a first geometric representation of the outer surface, a second geometric representation of the inner surface, and a spatial indexing algorithm (operation <NUM>). The plurality of sample points and the corresponding plurality of projected points may be, for example, sample points <NUM> and projected points <NUM> in <FIG>, respectively.

Distance data is computed using the plurality of sample points and the corresponding plurality of projected points (operation <NUM>). The distance data may be, for example, distance data <NUM> in <FIG>. Optionally, process <NUM> may further include generating a visualization output using the distance data (operation <NUM>). This visualization output, which may be visualization output <NUM> in <FIG>, may take a number of different forms. For example, the visualization output may include one or more two-dimensional distance maps, one or more three-dimensional distance maps, or a combination thereof.

Sensor data generated for the inspection area of the structure is analyzed using the distance data to detect a presence of an inconsistency in the structure (operation <NUM>), with the process terminating thereafter. The sensor data may be, for example, sensor data <NUM> in <FIG>. In one or more examples, the distance data includes a distance between each corresponding point pair from the plurality of sample points and the corresponding plurality of projected points. In other words, the distance data includes a distance for each corresponding sample point-projected point pair.

<FIG> is a flowchart of a process for identifying a scan surface in accordance with one or more example embodiments. Process <NUM> in <FIG> may be implemented using analysis tool <NUM> in <FIG>. Further, process <NUM> may be one example of a manner in which operation <NUM> in <FIG> may be implemented.

Process <NUM> begins by identifying coordinates for an inspection area of the structure (operation <NUM>). Coordinates <NUM> in <FIG> may be one example of an implementation for the coordinates identified in operation <NUM>. The coordinates may be received in user input, identified from a program, or identified in some other manner.

Thereafter, an initial surface is created using the coordinates (operation <NUM>). The initial surface is three-dimensional. Initial surface <NUM> in <FIG> is one example of an implementation for the initial surface created in operation <NUM>.

A determination is made as to whether the initial surface is substantially convex (operation <NUM>). If the initial surface is substantially convex (i.e., substantially contained within a convex shape), the initial surface is used as a scan surface that represents the inspection area of the structure (operation <NUM>), with the process terminating thereafter.

Otherwise, a convex shape is generated for the initial surface (operation <NUM>). The convex shape includes one or more local convex hulls that ensure that the initial surface <NUM> is fully contained within the convex shape. This convex shape is substantially convex. In one or more examples, the convex shape is generated in the two-dimensional domain. Convex shape <NUM> in <FIG> is one example of an implementation for the convex shape generated in operation <NUM>.

A scan surface that represents the inspection area of the structure is formed using the convex shape (operation <NUM>). In one or more examples, operation <NUM> may include transforming the convex shape from the two-dimensional domain into the three-dimensional domain to form the scan surface. Scan surface <NUM> in <FIG> is one example of an implementation for the scan surface generated in operation <NUM>.

<FIG> is a flowchart of a process for generating sample points in accordance with one or more example embodiments. Process <NUM> in <FIG> may be implemented using analysis tool <NUM> in <FIG>. Further, process <NUM> may be one example of a manner in which at least a portion of operation <NUM> in <FIG> may be implemented.

Process <NUM> may begin by identifying a relevant surface area that represents a portion of an outer surface that corresponds to a scan surface (operation <NUM>). Relevant surface area <NUM> in <FIG> is one example of an implementation for the relevant surface area identified in operation <NUM>. When the structure is a fuselage structure, the outer surface may be an outer mold line of the fuselage structure. The outer surface may be identified from a model of the structure.

Scan points are identified on a scan surface that represents an inspection area of the structure (operation <NUM>). The scan surface may be, for example, scan surface <NUM> in <FIG>. The scan surface may be generated using, for example, process <NUM> in <FIG>.

A scan point is selected for processing (operation <NUM>). The relevant surface area is processed to identify a patch of the relevant surface area that is nearest the selected scan point (operation <NUM>). Operation <NUM> may be performed using, for example, one or more k-dimensional trees built for the relevant surface area, built for the inner surface, or both.

A sample point is formed using a point on the patch that intersects with a vector that is substantially normal to the scan surface at a location of the selected scan point (operation <NUM>). In one or more examples, operation <NUM> may be performed by identifying the point on the patch that has a minimum distance to the selected scan point as the sample point. In some cases, this sample point is selected from a collection of sampling of points generated for the patch.

A determination is made as to whether any unprocessed scan points remain (operation <NUM>). If any unprocessed scan points remain, process <NUM> returns to operation <NUM> described above. Otherwise, the process terminates.

<FIG> is a flowchart of a process for generating projected points in accordance with one or more example embodiments. Process <NUM> in <FIG> may be implemented using analysis tool <NUM> in <FIG>. Further, process <NUM> may be one example of a manner in which at least a portion of operation <NUM> in <FIG> may be implemented.

Process <NUM> may begin by begin by identifying a relevant surface area that represents a portion of an inner surface that corresponds to a scan surface (operation <NUM>). This relevant area may be implemented in a manner similar to relevant surface area <NUM> in <FIG>. The inner surface in operation <NUM> may be, for example, inner surface <NUM> in <FIG>. The inner surface may be identified from a model of a structure.

A sample point is selected for processing from a plurality of sample points (operation <NUM>). The plurality of sample points may be, for example, the sample points generated by process <NUM> described above.

The relevant surface area is processed to identify a patch of the relevant surface area that is nearest the selected sample point (operation <NUM>). A projected point is formed using a point on the patch that intersects with a vector that is substantially normal to the outer surface at a location of the selected sample point (operation <NUM>). In one or more examples, operation <NUM> may be performed by identifying the point within the patch corresponding to the inner surface that has a minimum distance to the sample point as the projected point. In some cases, this projected point is selected from a collection of sampling points generated for the patch.

A determination is made as to whether any unprocessed sample points remain (operation <NUM>). If any unprocessed sample points remain, process <NUM> returns to operation <NUM> described above. Otherwise, the process terminates.

<FIG> is a flowchart of a process for identifying a relevant surface area for a surface in accordance with one or more example embodiments. Process <NUM> in <FIG> may be implemented using analysis tool <NUM> in <FIG>. Further, process <NUM> may be one example of a manner in which operation <NUM> in <FIG> and operation <NUM> in <FIG> may be implemented.

Process <NUM> may begin by generate a geometric representation of a surface (operation <NUM>). The geometric representation comprises a plurality of patches, each of these patches being an abstract geometric representation of a portion of the surface. Geometric representation <NUM> in <FIG> may be one example of an implementation for the geometric representation in operation <NUM>.

Thereafter, the geometric representation is sampled to generate sampling points (operation <NUM>). A set of k-dimensional trees is built using the sampling points (operation <NUM>). The sampling points are narrowed to a focused collection of sampling points using the set of k-dimensional trees (operation <NUM>). A relevant surface area comprising a selected portion of patches is formed based on the focused collection of sampling points (operation <NUM>), with the process terminating thereafter. Although process <NUM> is described using k-dimensional trees, in other examples, another type of spatial indexing algorithm may be used to perform operations <NUM> and <NUM> described above.

<FIG> is a flowchart of a process for generating a set of functions for a structure in accordance with one or more example embodiments. Process <NUM> in <FIG> may be implemented using inspection system <NUM> in <FIG>. As one example, process <NUM> may be implemented using analysis tool <NUM> in <FIG>. While process <NUM> is described with respect to an aircraft structure, process <NUM> may also be used with respect to other types of structures.

Process <NUM> may begin by identifying a plurality of surfaces of interest from a model of an aircraft structure, the plurality of surfaces including an outer surface and a set of inner surfaces (operation <NUM>). The aircraft structure may be a composite aircraft structure.

A set of scan surfaces that represent a corresponding set of inspection areas of the aircraft structure is identified (operation <NUM>). For example, the aircraft structure may be a large fuselage structure for which multiple inspection areas (or zones) have been identified. A scan surface is identified for each of these different inspection areas. In one or more examples, these inspection areas are non-overlapping. In other examples, two or more of the inspection areas may at least partially overlap.

A scan surface is selected for processing (operation <NUM>). A relevant surface area, corresponding to the selected scan surface, that represents a portion of the outer surface is identified using a spatial indexing algorithm (operation <NUM>). The relevant surface area may comprise a portion of patches selected from a geometric representation of the outer surface. The relevant surface area corresponds to the selected scan surface by including those patches that would at least completely overlap with the selected scan surface if the selected scan surface were superimposed over the outer surface. The spatial indexing algorithm described in process <NUM> may be, for example, spatial indexing algorithm <NUM> in <FIG>.

A plurality of sample points on the outer surface are generated using the selected scan surface, the relevant surface area representing the portion of the outer surface, and the spatial indexing algorithm (operation <NUM>).

An inner surface from the set of inner surfaces is selected for processing (operation <NUM>). A relevant surface area, corresponding to the selected scan surface, that represents a portion of the selected inner surface is identified using the spatial indexing algorithm (operation <NUM>). The relevant surface area may comprise a portion of patches selected from a geometric representation of the selected inner surface. The relevant surface area corresponds to the selected scan surface by including those patches that would at least completely overlap with the selected scan surface if the selected scan surface were superimposed over the selected inner surface.

A plurality of projected points on the selected inner surface are generated using the selected scan surface, the relevant surface area representing the portion of the selected inner surface, and the spatial indexing tree algorithm (operation <NUM>).

Distance data identifying the distance between the outer surface and the selected inner surface is computed using the plurality of sample points and the plurality of projected points (operation <NUM>). A determination is made as to whether any unprocessed inner surfaces remain in the set of inner surfaces (operation <NUM>). If any unprocessed inner surfaces remain, process <NUM> returns to operation <NUM> described above. Otherwise, a determination is made as to whether any unprocessed scan surfaces remain in the set of scan surfaces (operation <NUM>). If any unprocessed scan surfaces remain, process <NUM> returns to operation <NUM> described above.

Otherwise, the distance data collected is used to generate a set of functions for the structure (operation <NUM>). In one or more examples, each function of the set of functions may be a continuous function. In operation <NUM>, each function of the set of functions may correspond to a different inner surface of the set of inner surfaces. Each function may be used to identify an as-designed distance between the outer surface and the corresponding inner surface at any point along the outer surface.

With respect to operations <NUM> and <NUM>, generating the relevant surface area representing the portion of the outer surface corresponding to each scan surface of the set of scan surfaces reduces the overall processing time and processing resources needed to generate the sample points for each scan surface. Similarly, with respect to operations <NUM> and <NUM>, generating the relevant surface representing the portion of each inner surface of the set of inner surfaces corresponding to a selected scan surface reduces the overall processing time and processing resources needed to generate the projected points for each inner surface.

<FIG> is a flowchart of a process for identifying a plurality of scan points in accordance with one or more example embodiments. Process <NUM> in <FIG> may be implemented using analysis tool <NUM> in <FIG>. Process <NUM> may be one example of a manner in which operation <NUM> in <FIG> may be implemented.

Process <NUM> may begin by identifying a plurality of reference curves for the scan surface that correspond to a plurality of paths used by a sensor system to scan the inspection area of the structure (operation <NUM>). In operation <NUM>, the plurality of reference curves may be identified based on a program that was used or is to be used to control the sensor system. In one or more examples, the reference curves are substantially parallel to each other and equally spaced apart. As used herein, "substantially parallel" means parallel or nearly parallel. The sensor system in operation <NUM> may be, for example, sensor system <NUM> in <FIG>.

Next, a plurality of scan points are formed using the plurality of reference curves and a spacing distance used by the sensor system (operation <NUM>), with the process terminating thereafter. The spacing distance provides the distance for scan points identified along a same reference curve.

Operation <NUM> may be performed in various ways. In one or more examples, operation <NUM> includes identifying points along each reference curve of the plurality of reference curves based on the spacing distance to form a collection of points. Operation <NUM> may further include selecting a portion of the collection of points that falls within a boundary corresponding to the inspection area to form the plurality of scan points.

<FIG> is a flowchart of a process for computing distance data for an aircraft structure in accordance with one or more example embodiments. Process <NUM> in <FIG> may be implemented using analysis tool <NUM> in <FIG>. While process <NUM> is described with respect to an aircraft structure, process <NUM> may also be used with respect to other types of structures, including various types of composite structures.

Process <NUM> may begin by identifying a scan surface that represents an inspection area of the aircraft structure (operation <NUM>). An outer surface for the aircraft structure and a set of inner surfaces for the aircraft structure are identified using a model of the aircraft structure (operation <NUM>).

Thereafter, a plurality of sample points on the outer surface and, for each selected inner surface of the set of inner surfaces, a corresponding plurality of projected points on the selected inner surface are generated using the scan surface, a first geometric representation of the outer surface, a second geometric representation of the selected inner surface, and a spatial indexing algorithm (operation <NUM>). Using the spatial indexing algorithm may help speed up processing. In one or more examples, the spatial indexing algorithm uses one or more k-dimensional trees to provide indexing for the first geometric representation and the second geometric representation.

Distance data is computed using the plurality of sample points and the corresponding plurality of projected points generated for each selected inner surface of the set of inner surfaces, wherein the distance data provides as-designed data for use in conjunction with sensor data generated for the aircraft structure to detect an inconsistency in the aircraft structure (operation <NUM>), with the process terminating thereafter. In some examples, operation <NUM> includes generating a function (e.g., a continuous function) for each pairing of the outer surface and an inner surface of the set of inner surfaces.

This function, which may be, for example, function <NUM> in <FIG>, may be used to quickly and reliably identify the as-designed distance between the outer surface and the particular inner surface for any location on the outer surface. This as-designed distance may be compared to measurements generated by a sensor system for the actual aircraft structure to evaluate whether the aircraft structure conforms with the design for the aircraft structure. Differences between the as-designed distances and the measurements generated by the sensor system that are outside of selected tolerances may indicate the presence of an inconsistency in the aircraft structure. The inconsistency may include a void, delamination, a crack, an undesired level of porosity, some other type of inconsistency, or a combination thereof.

Turning now to <FIG>, an illustration of a data processing system in the form of a block diagram is depicted in accordance with an example embodiment. Data processing system <NUM> may be used to implement computer system <NUM> in <FIG>. As depicted, data processing system <NUM> includes communications framework <NUM>, which provides communications between processor unit <NUM>, storage devices <NUM>, communications unit <NUM>, input/output unit <NUM>, and display <NUM>. In some cases, communications framework <NUM> may be implemented as a bus system.

Processor unit <NUM> is configured to execute instructions for software to perform a number of operations. Processor unit <NUM> may comprise a number of processors, a multi-processor core, and/or some other type of processor, depending on the implementation. In some cases, processor unit <NUM> may take the form of a hardware unit, such as a circuit system, an application specific integrated circuit (ASIC), a programmable logic device, or some other suitable type of hardware unit.

Instructions for the operating system, applications, and/or programs run by processor unit <NUM> may be located in storage devices <NUM>. Storage devices <NUM> may be in communication with processor unit <NUM> through communications framework <NUM>. As used herein, a storage device, also referred to as a computer readable storage device, is any piece of hardware capable of storing information on a temporary and/or permanent basis. This information may include, but is not limited to, data, program code, and/or other information.

Memory <NUM> and persistent storage <NUM> are examples of storage devices <NUM>. Memory <NUM> may take the form of, for example, a random access memory or some type of volatile or nonvolatile storage device. Persistent storage <NUM> may comprise any number of components or devices. For example, persistent storage <NUM> may comprise a hard drive, a flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of the above. The media used by persistent storage <NUM> may or may not be removable.

Communications unit <NUM> allows data processing system <NUM> to communicate with other data processing systems and/or devices. Communications unit <NUM> may provide communications using physical and/or wireless communications links.

Input/output unit <NUM> allows input to be received from and output to be sent to other devices connected to data processing system <NUM>. For example, input/output unit <NUM> may allow user input to be received through a keyboard, a mouse, and/or some other type of input device. As another example, input/output unit <NUM> may allow output to be sent to a printer connected to data processing system <NUM>.

Display <NUM> is configured to display information to a user. Display <NUM> may comprise, for example, without limitation, a monitor, a touch screen, a laser display, a holographic display, a virtual display device, and/or some other type of display device.

In one or more examples, the processes of the different example embodiments may be performed by processor unit <NUM> using computer-implemented instructions. These instructions may be referred to as program code, computer usable program code, or computer readable program code and may be read and executed by one or more processors in processor unit <NUM>.

In these examples, program code <NUM> is located in a functional form on computer readable media <NUM>, which is selectively removable, and may be loaded onto or transferred to data processing system <NUM> for execution by processor unit <NUM>. Program code <NUM> and computer readable media <NUM> together form computer program product <NUM>. In one or more examples, computer readable media <NUM> may be computer readable storage media <NUM> or computer readable signal media <NUM>.

Computer readable storage media <NUM> is a physical or tangible storage device used to store program code <NUM> rather than a medium that propagates or transmits program code <NUM>. Computer readable storage media <NUM> may be, for example, without limitation, an optical or magnetic disk or a persistent storage device that is connected to data processing system <NUM>.

Alternatively, program code <NUM> may be transferred to data processing system <NUM> using computer readable signal media <NUM>. Computer readable signal media <NUM> may be, for example, a propagated data signal containing program code <NUM>. This data signal may be an electromagnetic signal, an optical signal, and/or some other type of signal that can be transmitted over physical and/or wireless communications links.

The illustration of data processing system <NUM> in <FIG> is not meant to provide architectural limitations to the manner in which the example embodiments may be implemented. The different example embodiments may be implemented in a data processing system that includes components in addition to or in place of those illustrated for data processing system <NUM>. Further, components shown in <FIG> may be varied from the examples shown.

Example embodiments of the disclosure may be described in the context of aircraft manufacturing and service method <NUM> as shown in <FIG> and aircraft <NUM> as shown in <FIG>. Turning first to <FIG>, an illustration of an aircraft manufacturing and service method is depicted in accordance with an example embodiment. During pre-production, aircraft manufacturing and service method <NUM> may include specification and design <NUM> of aircraft <NUM> in <FIG> and material procurement <NUM>.

During production, component and subassembly manufacturing <NUM> and system integration <NUM> of aircraft <NUM> in <FIG> takes place. Thereafter, aircraft <NUM> in <FIG> may go through certification and delivery <NUM> in order to be placed in service <NUM>. While in service <NUM> by a customer, aircraft <NUM> in <FIG> is scheduled for routine maintenance and service <NUM>, which may include modification, reconfiguration, refurbishment, and other maintenance or service.

For the purposes of this description, a system integrator may include, without limitation, any number of aircraft manufacturers and majorsystem subcontractors; a third party may include, without limitation, any number of vendors, subcontractors, and suppliers; and an operator may be an airline, a leasing company, a military entity, a service organization, and so on.

With reference now to <FIG>, an illustration of an aircraft is depicted in which an example embodiment may be implemented. In this example, aircraft <NUM> is produced by aircraft manufacturing and service method <NUM> in <FIG> and may include airframe <NUM> with plurality of systems <NUM> and interior <NUM>. Examples of systems <NUM> include one or more of propulsion system <NUM>, electrical system <NUM>, hydraulic system <NUM>, and environmental system <NUM>. Any number of other systems may be included. Although an aerospace example is shown, different example embodiments may be applied to other industries, such as the automotive industry.

Apparatuses and methods embodied herein may be employed during at least one of the stages of aircraft manufacturing and service method <NUM> in <FIG>. In particular, fabrication system <NUM> from <FIG> may be used to fabricate tool <NUM> during any one of the stages of aircraft manufacturing and service method <NUM>. For example, without limitation, inspection system <NUM>, sensor system <NUM>, or analysis tool <NUM> from <FIG> may be used during at least one of component and subassembly manufacturing <NUM>, system integration <NUM>, certification and delivery <NUM>, routine maintenance and service <NUM>, or some other stage of aircraft manufacturing and service method <NUM>. Still further, inspection system <NUM> may be used to inspect one or more aircraft structures of aircraft <NUM> such as, but not limited to, one or more structures of airframe <NUM>, interior <NUM>, or both of aircraft <NUM> in <FIG>. Analysis tool <NUM> in <FIG> may be used to compute distance data <NUM> for these aircraft structures of aircraft <NUM>.

In one or more example, components or subassemblies produced in component and subassembly manufacturing <NUM> in <FIG> may be fabricated or manufactured in a manner similar to components or subassemblies produced while aircraft <NUM> is in service <NUM> in <FIG>. As yet another example, one or more apparatus embodiments, method embodiments, or a combination thereof may be utilized during production stages, such as component and subassembly manufacturing <NUM> and system integration <NUM> in <FIG>. One or more apparatus embodiments, method embodiments, or a combination thereof may be utilized while aircraft <NUM> is in service <NUM> and/or during maintenance and service <NUM> in <FIG>. The use of a number of the different example embodiments may substantially expedite the assembly of and/or reduce the cost of aircraft <NUM>. Further, one or more embodiments described herein may be used as part of propulsion system <NUM> of aircraft <NUM>.

The flowcharts and block diagrams in the different depicted embodiments illustrate the architecture, functionality, and operation of some possible implementations of apparatuses and methods in an example embodiment. In this regard, each block in the flowcharts or block diagrams may represent a module, a segment, a function, and/or a portion of an operation or step.

In some alternative implementations of an example embodiment, the function or functions noted in the blocks may occur out of the order noted in the figures. For example, in some cases, two blocks shown in succession may be executed substantially concurrently, or the blocks may sometimes be performed in the reverse order, depending upon the functionality involved. Also, other blocks may be added in addition to the illustrated blocks in a flowchart or block diagram.

As used herein, the phrase "at least one of," when used with a list of items, means different combinations of one or more of the listed items may be used and only one of the items in the list may be needed. The item may be a particular object, thing, step, operation, process, or category. In other words, "at least one of" means any combination of items or number of items may be used from the list, but not all of the items in the list may be required. For example, without limitation, "at least one of item A, item B, or item C" or "at least one of item A, item B, and item C" may mean item A; item A and item B; item B; item A, item B, and item C; item B and item C; or item A and C. In some cases, "at least one of item A, item B, or item C" or "at least one of item A, item B, and item C" may mean, but is not limited to, two of item A, one of item B, and ten of item C; four of item B and seven of item C; or some other suitable combination.

Claim 1:
A computer-implemented method for inspecting a structure (<NUM>), the method comprising:
identifying (<NUM>) a scan surface (<NUM>) that represents an inspection area (<NUM>) of the structure (<NUM>);
generating (<NUM>) a plurality of sample points (<NUM>) on an outer surface (<NUM>) identified from a model (<NUM>) of the structure (<NUM>) and a corresponding plurality of projected points (<NUM>) on an inner surface (<NUM>) identified from the model (<NUM>) of the structure (<NUM>) using the scan surface (<NUM>, a first geometric representation (<NUM>) of the outer surface (<NUM>), and a second geometric representation of the inner surface (<NUM>);
computing (<NUM>) distance data (<NUM>) using the plurality of sample points (<NUM>) and the corresponding plurality of projected points (<NUM>), the distance data (<NUM>) including a distance between each corresponding point pair (sample point-projected point pair) from sample points (<NUM>) and projected points (<NUM>); and
analyzing (<NUM>) sensor data (<NUM>) generated for the inspection area (<NUM>) of the structure (<NUM>) using the distance data (<NUM>) to detect a presence of an inconsistency in the structure (<NUM>).