System and method for continuous positioning of scanner using non-destructive inspection data

By calculating the position changes of the NDI scanner using one-dimensional sensor array and image processing technology, the dependence on rotary incremental encoder in the prior art is solved, and high-precision and low-cost position tracking is achieved.

CN112629462BActive Publication Date: 2025-05-09THE BOEING CO
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
CN202010742266.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-09-24
Filing Date
2020-07-29
Publication Date
2025-05-09
Estimated Expiration
2040-07-29

AI Technical Summary

Technical Problem

The prior art requires rotating incremental encoder in position tracking of non-destructive inspection (NDI) scanners, resulting in increased system complexity and cost.

Method used

By acquiring an image of the target object using a one-dimensional sensor array, the image processor constructs and compares partially overlapped scanned images, calculates the position difference of common feature points to determine the position change of the scanner, and updates the absolute position.

Benefits of technology

It enables high-precision tracking of the NDI scanner position without rotating the incremental encoder, simplifying system design and reducing costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112629462B_ABST
    Figure CN112629462B_ABST
Patent Text Reader

Abstract

Systems and methods for continuously positioning a scanner using nondestructive inspection data. The present invention provides systems and methods for tracking the position of a nondestructive inspection (NDI) scanner (14) using scan data converted into an image of a target object (30). Scanned images (42a, 42b) are formed by aggregating continuous scan strips (40a, 40b) acquired using one or two one-dimensional sensor arrays (60). An image processor (24) constructs and then compares continuous partially overlapping scanned images that include common feature points (48a) corresponding to corresponding structural features (11a) of the target object. The image processor is also configured to calculate a change in the position of the NDI scanner relative to a previous position based on the corresponding positions of those common features in the partially overlapping scanned images. This relative physical distance is then added to the previous (old) absolute position estimate to obtain the current (new) absolute position of the NDI scanner.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure generally relates to systems and methods for tracking the position of a scanner as the scanner moves over a target area (e.g., a surface of a target object). Specifically, the present disclosure relates to systems and methods for tracking the position of a non-destructive inspection scanner (hereinafter, "NDI scanner"). As used herein, the term "position" includes a position in a coordinate system and an orientation relative to the coordinate system. Background Art

[0002] Various types of imagers can be used to perform nondestructive inspection (NDI) on a target object. One or more imagers can be moved over a portion of a structure to be inspected and acquire scanned image data representing characteristics or features of the structure (e.g., boundaries of an object or surface). For example, pulse-echo, through-wave, or shear wave sensors can be used to obtain ultrasonic data, such as thickness measurements, detection of layered defects and porosity, and / or crack detection in a structure. Resonant, pitch-catch, or mechanical impedance sensors can be used to provide an indication of voids or porosity (e.g., in an adhesive bond line of a structure). In addition, single and dual eddy current sensors impart and detect eddy currents within a structure to provide data for detecting cracks and / or corrosion (particularly in metals and other conductive structures).

[0003] As used herein, the term "sensor data" means analog data acquired by a sensor array, which may be part of an NDI scanner that additionally includes a digital signal processor. As used herein, the term "scanned image data" means digital data in the form of a 2D matrix of pixel values ​​(hereinafter, "pixels") derived from the sensor data. For example, a one-dimensional (linear) sensor array may be scanned over a surface to acquire corresponding analog sensor data, which is converted into a corresponding 2D matrix of pixels that represents an image of the subsurface structure of the scanned portion of the target object (hereinafter, "scanned image").

[0004] Some existing solutions for inspecting structures include a motion platform (e.g., a robotic crawler vehicle or an end effector mounted to a robot's manipulator arm) with a frame that supports the NDI scanner. The frame can be moved over the outer mold line of the structure. In alternative embodiments, the motion platform can be designed for manual movement.

[0005] The effective use of these motion platforms often depends on their accurate positioning within the environment in which they are moved. Several positioning solutions have been developed that can be used for this purpose. Some existing positioning systems require separate position measurement components, such as rotary incremental encoders. It may be desirable to provide a system and method of NDI that avoids the use of rotary incremental encoders dedicated to position tracking functions. Summary of the invention

[0006] The subject matter disclosed herein relates to systems and methods for tracking the position (hereinafter referred to as "positioning") of a non-destructive inspection (NDI) scanner using images of a target object acquired by a NDI scanner. The target object has features representing geometric elements, such as object boundaries (discontinuities in depth and / or material type) and surface boundaries (hereinafter, "structural features"). A scanned image is formed by aggregating continuous scan bands acquired using one or two one-dimensional sensor arrays (hereinafter, "1D sensor arrays"). An image processor constructs and then compares continuous partially overlapping scanned images that include common feature points corresponding to corresponding structural features of the target object. The image processor is also configured to calculate a change in the position of the NDI scanner relative to a previous position based on the corresponding positions of those common feature points in the partially overlapping scanned images. This relative physical distance is then added to the previous (old) absolute position estimate to obtain the current (new) absolute position of the NDI scanner.

[0007] As used herein, the term "feature point" means a point of a feature that appears in a scanned image. For example, a feature point may be the centroid of a feature. As used herein, the term "common feature" means a feature that appears in two consecutive scanned images. As used herein, the term "common feature point" means a point of a common feature. For example, a common feature point may include a point of a common feature in a first scanned image and the same point of the same common feature in a second scanned image.

[0008] According to some embodiments, the system includes: a motorized motion platform including a frame; a scanner including a 1D sensor array supported by the frame; and a computer system communicatively coupled to receive sensor data from the 1D sensor array and to send control signals for controlling movement of the motorized motion platform. The 1D sensor array is oriented approximately perpendicular to the direction in which the NDI scanner moves (translates). In one proposed implementation, the 1D sensor array is fixedly coupled to the frame and moves only when the motion platform moves. In other proposed implementations, the 1D sensor array is displaceably (e.g., slidably) coupled to the frame and moves only after the motion platform has moved and then stopped.

[0009] According to other embodiments, the system includes: a motion platform (manually movable or motorized) including a frame; first and second scanners, each including a first and second 1D sensor array having center lines oriented parallel to each other and separated by a fixed distance; and a computer system, which is communicatively coupled to receive sensor data from the first and second 1D sensor arrays. In this case, the two 1D sensor arrays are oriented perpendicular to the direction of movement.

[0010] According to one embodiment with a single 1D sensor array, as the NDI scanner moves over the surface of the target object at a known speed, the subsurface depth sensor data is repeatedly (cyclically, continuously) acquired and output by the 1D sensor array. The resulting 1D scan band sequence is fed to a synthetic scan image construction module, which constructs a synthetic scan image by aggregating continuous scan bands. The resulting synthetic scan image contains (virtual) features corresponding to structural features in the target object. In addition, the synthetic scan image construction module periodically assembles the scan band sequence to form individual two-dimensional scan images (also referred to as "frames" herein), and each frame partially overlaps. The image processor also includes an image processing and feature point comparison module, which is configured to construct and then compare continuous partially overlapping scan images (frames) including common features corresponding to corresponding structural features of the target object. The image processor also includes an image processing and feature point comparison module, which is configured to construct and then compare continuous partially overlapping scan images including common features corresponding to corresponding structural features of the target object. The image processing and feature point comparison module is also configured to calculate the change in the position of the scanner relative to the previous position based on the corresponding positions of the common feature points in the partially overlapping scan images. More specifically, the number of pixels representing the pixel position difference of the corresponding positions of the common feature points appearing in the two most recently captured scanned images is calculated and scaled based on the scanned tape capture rate (hereinafter, "capture rate") and the motion platform speed, and the corresponding relative physical distance traveled in the time interval between the sequential scanned image captures is calculated. This relative physical distance is then added to the previous absolute position estimate to obtain a new (current) absolute position.

[0011] In an alternative embodiment having two mutually parallel 1D sensor arrays, subsurface depth sensor data is repeatedly (cyclically, continuously) acquired and output by each 1D sensor array as the NDI scanner moves over the surface of the target object. The resulting 1-D scan strip sequence is fed to a corresponding synthetic scan image construction module, which constructs a corresponding synthetic scan image by aggregating consecutive scan strips. The image processor also includes an image processing and feature point comparison module, which constructs corresponding partially overlapping scan images from the corresponding 1D scan strip sequence and then compares those scan images to search for common features. The image processing and feature point comparison module is also configured to calculate the change in the position of the scanner relative to the previous position based on the corresponding positions of the common feature points in the partially overlapping scan images. More specifically, the number of pixels representing the pixel position difference of the corresponding positions of the common features appearing in the two most recently captured scan images is calculated. Then, a scaling factor is calculated by dividing the fixed distance by the imaged position difference. Then, the distance separating the first and third X positions is calculated by multiplying the number of scan strips in the first sequence by the scaling factor. Then, this relative physical distance is added to the previous absolute position estimate to obtain a new (current) absolute position.

[0012] The process disclosed herein allows for positioning of both manual and automated NDI applications without the need for rotating incremental encoders. Optionally, the positioning process can include a correction step to reorient the sensor array (e.g., occasional manual checks and manual corrections of position and orientation). A map of system correction values ​​can also be used to identify errors in manufacturing, such as mis-positioning or missing substructures (e.g., subsurface features).

[0013] Although various embodiments of systems and methods for tracking the position of an NDI scanner using scanned images acquired from a target object are described in detail later herein, one or more of those embodiments may be characterized by one or more of the following aspects.

[0014] One aspect of the subject matter disclosed in detail below is a method of tracking the position of a scanner, the method comprising: (a) translating a scanner having a 1D sensor array in an X direction across a surface of a target object from a first X position to a second, third, and fourth X positions in sequence at a known speed; (b) acquiring successive sets of sensor data at a known capture rate as the scanner translates in the X direction; (c) converting the successive sets of sensor data into respective swaths of scanned image data; (d) constructing a first scanned image from a first sequence of swaths converted from sensor data acquired during movement of the 1D sensor array from the first X position to the third X position; (e) constructing a second scanned image from a second sequence of swaths converted from sensor data acquired during movement of the 1D sensor array from the second X position to the fourth X position; (f) finding feature points in the first and second scanned images; (g) determining which feature points found in step (f) are common feature points in the first and second scanned images; (h) calculating pixel position differences between respective positions of the common feature points in the first and second scanned images; and (i) calculating scanner displacement by multiplying the pixel position differences calculated in step (h) by a scaling factor representing the distance traveled per swath by the scanner.

[0015] According to one embodiment, the method described in the previous paragraph further includes: calculating a pixel position difference by counting the number of pixel columns by which the position of the common feature point in the second scanned image is offset relative to the position of the common feature point in the first scanned image; and calculating a scaling factor by dividing the known speed by the known capture rate. In addition, the method may also include: (j) calculating an estimated X position coordinate representing the second X position in the reference system of the target object by adding the distance separating the first and second X positions to the X position coordinate of the first X position; and (k) storing the X position coordinate of the second X position in association with the second scanned image in a non-transitory tangible computer readable storage medium.

[0016] Another aspect of the subject matter disclosed in detail below is a method of tracking the position of first and second scanners, the first and second scanners respectively comprising first and second 1D sensor arrays having respective centerlines oriented parallel to the Y direction and separated by a fixed distance. According to one embodiment, the method comprises: (a) translating the first and second scanners in tandem in the X direction at a known speed across a surface of a target object, during which the first scanner moves from a first X position to a third X position and the second scanner moves from the second X position to a fourth X position, wherein the second X position is between the first X position and the third X position and the third X position is between the second X position and the fourth X position; (b) operating the first scanner to acquire a first sequence of sensor data sets as the first scanner moves from the first X position to the third X position; (c) operating the second scanner to acquire a second sequence of sensor data sets as the second scanner moves from the second X position to the fourth X position; (d) converting the first sequence of sensor data sets into corresponding first sequence of scanned image data; (e) converting a second sequence of sensor data sets into a corresponding second scan band sequence of scanned image data, wherein the number of scan bands in the second scan band sequence is the same as the number of scan bands in the first scan band sequence; (f) constructing a first scanned image from the first scan band sequence; (g) constructing a second scanned image from the second scan band sequence; (h) finding feature points in the first and second scanned images; (i) determining which feature points found in step (h) are common feature points in the first and second scanned images; (j) calculating the pixel position difference between corresponding positions of the common feature points in the first and second scanned images; and (k) calculating the scanner displacement by multiplying the pixel position difference calculated in step (j) by a scaling factor representing the distance traveled per scan band by the first and second scanners.

[0017] Another aspect of the subject matter disclosed in detail below is a system comprising: an electric motion platform comprising a frame; a scanner comprising a 1D sensor array supported by the frame; and a computer system communicatively coupled to receive sensor data from the 1D sensor array and to send control signals for controlling movement of the electric motion platform. The computer system is configured to perform operations including: (a) controlling a motorized motion stage to translate a scanner in an X direction across a surface of a target object from a first X position to a second, third, and fourth X positions in sequence at a known speed while the one-dimensional sensor array is oriented in the Y direction; (b) acquiring a continuous sensor data set at a known capture rate as the scanner translates in the X direction; (c) converting the continuous sensor data set into corresponding swaths of scanned image data; (d) constructing a first scanned image from a first swath sequence converted from sensor data acquired during movement of the one-dimensional sensor array from the first X position to the third X position; (e) constructing a second scanned image from a second swath sequence converted from sensor data acquired during movement of the one-dimensional sensor array from the second X position to the fourth X position; (f) finding feature points in the first and second scanned images; (g) determining which feature points found in step (f) are common feature points in the first and second scanned images; (h) calculating pixel position differences between corresponding positions of the common feature points in the first and second scanned images; and (i) calculating scanner displacement by multiplying the pixel position differences calculated in step (h) by a scaling factor representing the distance traveled per swath by the scanner.

[0018] Another aspect of the subject matter disclosed in detail below is a system comprising: a motion platform comprising a frame; first and second scanners comprising first and second 1D sensor arrays having respective centerlines oriented in parallel and separated by a fixed distance; and a computer system communicatively coupled to receive sensor data from the first and second 1D sensor arrays and configured to perform operations comprising: (a) operating the first scanner to acquire a first sequence of sensor data sets at a known capture rate as the first scanner moves from a first X position to a third X position; (b) operating the second scanner to acquire a second sequence of sensor data sets at a known capture rate as the second scanner moves from a second X position to a fourth X position, wherein the second X position is between the first X position and the third X position, and the third X position is between the second X position and the fourth X position; (c) moving the sensor data from the first scanner to the third X position; and (d) moving the sensor data from the first scanner to the fourth X position. (i) calculating the pixel position difference between the corresponding positions of the common feature points in the first and second scanned images; and (j) calculating the scanner displacement by multiplying the pixel position difference calculated in step (i) by a scaling factor representing the distance traveled per scan band by the first and second scanners.

[0019] On the other hand, a non-destructive inspection system includes: a frame; a plurality of wheels rotatably connected to the frame; a linear guide fixedly connected to the frame; a slide slidably connected to the guide; a motor; a drive mechanism mechanically connecting the slide to the motor so that the slide slides along the guide during operation of the motor; a 1D sensor array fixedly connected to the slide and oriented perpendicular to the guide, the 1D sensor array including a plurality of sensors aligned with each other; and a motion controller configured to control the motor so that the 1D sensor array moves relative to the frame in a direction parallel to the linear guide.

[0020]

[0013] Other aspects of systems and methods for tracking the position of an NDI scanner using a scanned image of a target object are disclosed below. BRIEF DESCRIPTION OF THE DRAWINGS

[0021] The features, functions, and advantages discussed in the previous section may be implemented independently in various embodiments, or may be combined in other embodiments. To illustrate the above and other aspects, various embodiments will be described below with reference to the accompanying drawings. The figures briefly described in this section are not drawn to scale.

[0022] Figure 1 is a block diagram identifying some components of a system for tracking the position of an NDI scanner mounted to a motorized motion platform and including a 1D array of sensors (1D sensor array) according to one embodiment.

[0023] Figure 2A is a diagram showing a composite scanned image formed by gathering scanned image data acquired while scanning a target object having subsurface features using a 1D sensor array. The dashed line and dotted rectangle indicate a pair of partially overlapping scanned images.

[0024] Figure 2B It means from Figure 2A A diagram of a pair of partially overlapping scanned images constructed from sequentially scanned image data depicted in FIG.

[0025] Figure 2C Yes means including Figure 2A FIG. 4 is a diagram of a sequential scanned image of pixels of common feature points obtained in a partially overlapping region.

[0026] Figure 3 is a diagram showing a sequence of scan bands converted into corresponding pixel columns in a synthetic scanned image.

[0027] Figure 4 is a diagram showing a pair of frames containing partially overlapping scanned images constructed by removing and adding pixel columns.

[0028] Figure 5 is a diagram showing the positions of common feature points in partially overlapping scanned images constructed by aggregating scanned image data acquired using a moving 1D sensor array.

[0029] Figure 6 is a flow chart identifying the steps of a method for tracking the position of an NDI scanner in a reference frame of a target object using a scanned image derived from sensor data acquired by a 1D sensor array of the scanner according to an alternative embodiment.

[0030] Figure 7 is a diagram showing multiple partially overlapping paths in a raster scan pattern consisting of an NDI scanner passing sequentially over the surface of a target object.

[0031] Figure 8is a flow chart identifying the steps of a method for calculating a current absolute position of a 1D NDI scanner defined in a target object's coordinate system by comparing partially overlapping scan images, calculating the current relative position change using common feature points, and then adding the relative position change to the previous absolute position.

[0032] Fig. 9 is a diagram showing a top view of a motion platform equipped with a pair of mutually parallel 1D sensor arrays according to an alternative embodiment and moving on the surface of a target object.

[0033] Fig.10 is a block diagram identifying some components of a system for tracking the position of a pair of spaced-apart NDI scanners mounted to a motorized motion platform, according to one embodiment.

[0034] Fig.11 is a block diagram identifying some components of a system for tracking the position of a pair of spaced-apart NDI scanners mounted to a manually movable motion platform according to an alternative embodiment.

[0035] Fig.12 is a block diagram identifying some components of a system for tracking the position of an NDI scanner including a 1D sensor array displaceable relative to a motorized motion stage according to another embodiment.

[0036] Fig.13 is a diagram showing a top view of an electric motion platform according to one embodiment, which includes a frame, wheels rotatably coupled to the frame, linear guides fixedly coupled to the frame, and a 1D sensor array slidably coupled to the linear guides.

[0037] Fig.14 is a diagram showing a side view of some components of a motorized motion platform that enables displacement of a ID sensor array relative to a frame of the platform according to one proposed implementation.

[0038] Fig.15 is a diagram showing a top view of a motorized motion platform according to an alternative embodiment, which includes a frame, wheels rotatably coupled to the frame, linear guides fixedly coupled to the frame, and a ID sensor array slidably coupled to the linear guides.

[0039] Fig.16 is a block diagram identifying some components of a system for tracking the position of an NDI scanner comprising a 1D sensor array displaceable relative to a manually movable motion platform according to an alternative embodiment.

[0040] Fig.17is a block diagram of some components of an identification system, including a 1D sensor array mounted to a robotic tracked vehicle and a computer system configured to control a scanning position of the 1D sensor array based on images acquired by the 1D sensor array.

[0041] Reference will now be made to the drawings, in which similar elements in different drawings have the same reference numerals. DETAILED DESCRIPTION

[0042] For purposes of illustration, a system and method for tracking the position of an NDI scanner using a scanned image of a target object will now be described in detail. However, not all features of an actual implementation are described in this specification. Those skilled in the art will appreciate that in the development of any such implementation, many implementation-specific decisions must be made to achieve the developer's specific goals (e.g., to comply with system-related and business-related constraints that will vary from one implementation to another). Furthermore, it will be appreciated that such a development effort may be complex and time consuming, yet will be a routine undertaking for those of ordinary skill in the art having the benefit of this disclosure.

[0043] Given as a non-limiting example for illustrative purposes only, the target object may be an aircraft part, such as a barrel section of an aircraft fuselage. However, it should be understood that the systems and methods described below with reference to fuselage sections may also be applied to other types of workpieces that are parts of some other types of vehicles or structures.

[0044] Furthermore, the workpiece may be made of any material desired for a particular application. It will be appreciated that the type of material used for the workpiece may determine, in part, which type of non-destructive inspection technique is used to inspect the workpiece. Given as non-limiting examples, the workpiece may be made of a composite material (e.g., a composite laminate made of fiber reinforced plastic) or a metal (e.g., aluminum or titanium). It will be appreciated that it is not intended to limit in any way the materials from which the workpiece to be inspected may be made.

[0045] Depending on the type of material being inspected, any of a variety of types of NDI sensors may be utilized. The methods presented herein may be applied to any 1D NDI imager, including imagers in which a 1D array of sensors (e.g., ultrasonic transducers or eddy current coils) is in contact with the surface being inspected. In alternative embodiments, an infrared thermographic flash system, a terahertz camera, a microwave imager, or a laser Doppler vibrometric system may generate a non-contact 2D image that is digitized / pixelated in an XY format and may be overlapped, aligned, and used for tracking purposes. Various types of NDI sensors suitable for use with the scanning device disclosed herein are listed and described in U.S. Patent No. 7,743,660.

[0046] In the context of a particular application of inspecting a fuselage section, the scanning system may include means for scanning the skin of the fuselage section from a vantage point external to the fuselage section. In the embodiments disclosed below, the scanning means is an NDI scanner in the form of a 1D sensor array that collects sensor data from opposing portions of the fuselage section. In one proposed implementation, the NDI scanner scans the outer mold line of the fuselage section in a raster (e.g., serpentine) scan pattern.

[0047] As used herein, the terms "X-axis" and "Y-axis" refer to respective axes that intersect at right angles at the origin on the surface of the target object and follow the contour of the surface as the axis extends away from the origin. In the case where the surface is planar (flat), the X and Y axes are straight, coplanar and perpendicular to each other. In the case where the surface is curved in the Y direction and straight in the X direction, the Y axis is locally tangent to the surface. In the case where the surface is curved in both the X and Y directions, the X and Y axes are locally tangent to the surface. In each case, the Y position coordinate of a point on the surface is measured along the Y axis and is equal to the first distance from the origin, while the X position coordinate of a point on the surface is measured along the X axis and is equal to the second distance from the origin. On the other hand, if the axis is straight, the position coordinate is equal to the distance of the point from the origin; on the other hand, if the axis is an arc (because the surface of the target object is curved), the position coordinate is equal to the arc length (not the chord length) from the origin.

[0048] The systems and methods described in detail below allow for the positioning of the position of an NDI scanner to be tracked using images of a target object. A scanned image is formed by aggregating successive scan swaths acquired using one or two 1D sensor arrays. An image processor constructs and then compares successive partially overlapping scanned images that include common features corresponding to corresponding structural features of the target object. The image processor is also configured to calculate a change in the position of the NDI scanner relative to a previous position based on the corresponding positions of those common feature points in the partially overlapping scanned images. This relative physical distance is then added to the previous (old) absolute position estimate to obtain the current (new) absolute position of the NDI scanner.

[0049] Figure 11 is a block diagram identifying some components of a system 10 for tracking the position of an NDI scanner 14 including a 1D sensor array according to one embodiment. In this embodiment, the NDI scanner 14 is mounted on a motion platform 12 (e.g., a robotic crawler vehicle) that is powered to move automatically. The movement of the motion platform 12 is controlled by an onboard platform motion controller 16 so that the NDI scanner 14 follows a pre-planned scanning path over a target object. For example, as the motion platform 12 translates along the X-axis, the NDI scanner 14 may scan across the surface of the target object. During such translation, the NDI scanner 14 may be continuously activated to scan the surface of the target object and acquire sensor data containing information about structural features of the target object.

[0050] According to some embodiments, the NDI scanner 14 is rigid so that the 1D sensor array will not conform directly to the surface of the target object, but in most cases the NDI scanner 14 will be mounted in a manner that allows the 1D sensor array to be roughly aligned with opposing portions of the target object surface. Additionally, if the sensor is an ultrasonic transducer, an acoustic couplant (e.g., water or some type of gel-like substance or dry acoustic couplant elastic material) may be used between the sensor array and the surface. The presence of the acoustic couplant provides some ability to compensate for slight curvature mismatches.

[0051] Figure 1 The system 10 partially depicted in FIG. 1 also includes an NDI sensor data processor 20, which is communicatively connected to the NDI scanner 14 (via a cable or wirelessly). The NDI sensor data processor 20 is configured to convert the sensor data output by the NDI scanner 14 into 1D scan image data (hereinafter, "scanning strip"). The resulting scanning strip sequence is fed to the image processor 15. More specifically, the scanning strip sequence is fed to a synthetic scanning image construction module 22, which constructs a synthetic scanning image by aggregating consecutive scanning strips. The resulting synthetic scanning image contains (virtual) features corresponding to structural features in the target object. In addition, the synthetic scanning image construction module 22 periodically assembles the scanning strip sequence to form individual two-dimensional scanning images (also referred to as "frames" herein), and the individual frames partially overlap.

[0052] In addition, the image processor 15 includes an image processing and feature point comparison module 24, which is communicatively connected to receive the 2D scan image from the synthetic scan image construction module 22. The image processing and feature point comparison module 24 can be a processor or computer configured (e.g., programmed) to use the 2D scan image data to track the position of the NDI scanner 14 relative to the surface of the target object (also referred to herein as "localization"). The localization algorithm includes a relative motion update process based on the features of the subsequent scans from one captured NDI scan image to the next captured NDI scan image in order to determine the movement of the 1D sensor array. According to one embodiment, the image processing and feature point comparison module 24 is configured to construct and then compare consecutive partially overlapping scan images (frames) including common virtual features (hereinafter, "features") corresponding to corresponding structural features of the target object. The image processing and feature point comparison module 24 uses image processing (e.g., edge detection) to find the centroids of common features (hereinafter, "common feature points") in the partially overlapping scan images, and saves the pixel locations of those feature points in a non-transitory tangible computer-readable storage medium (e.g., computer memory).

[0053] The image processing and feature point comparison module 24 is also configured to calculate the change in the position of the NDI scanner 14 relative to the previous position based on the corresponding positions of the corresponding common feature points in the partially overlapping scanned images. More specifically, the number of pixels representing the pixel position difference of the corresponding positions of the centroids of the common features appearing in the two most recently captured scanned images is counted and scaled based on the capture rate and the motion platform speed, and the corresponding relative physical distance traveled in the time interval between the sequential scanned image captures is calculated. In one proposed implementation, the image processing and feature point comparison module 24 calculates a scale factor representing the distance traveled by the scanner per scan band by dividing the known speed by the known capture rate; and then calculates the corresponding distance traveled by the motion platform 12 by multiplying the pixel position difference between the corresponding positions of the common feature points in the first and second scanned images by the scale factor. The pixel position difference is calculated by counting the number of pixel columns by which the position of the common feature points in the second scanned image is offset relative to the position of the common feature points in the first scanned image. The relative physical distance traveled is then added to the previous absolute position estimate to obtain a new (current) absolute position. The platform motion controller 16 then uses the absolute position estimate to control the motion of the motion platform 12 according to the pre-planned scan path. For example, the position tracking method may also include: calculating continuous scanner displacements; calculating continuous X position coordinates corresponding to continuous X positions of the NDI scanner 14 after the corresponding scanner displacements; and stopping the translation of the NDI scanner 14 when the X position coordinate of the scanner is equal to the limit X position coordinate.

[0054] Figure 2AA full scan area 46 of a target object having random structural features 11 (represented by dots in this example) is shown. The dashed line and dotted rectangle indicate a pair of partially overlapping scan images 42a and 42b (in Figure 2B ). Figure 2A As can be seen in FIG. 4 , scanned images 42a and 42b cover a common scanned area 46a having a common feature 11a. Figure 2C 46a, common feature point 48a appears in corresponding regions 58a and 58b of scanned images 42a and 42b. Since regions 58a and 58b of scanned images 42a and 42b are images of the same rectangular scanned area 46a, regions 58a and 58b will be identical (hereinafter referred to as "overlapping regions of the scanned images"). Those overlapping regions in sequential (continuous) scanned images that have common features are used to track subsequent positions of the NDI scanner 14 relative to previous positions. Additionally, when scanned images 42a and 42b are stitched together to form a composite scanned image, redundant information in one of the scanned images 42a or 42b may be omitted.

[0055] Figure 2A The composite scanned image 46 shown is composed of individual swaths of scanned image data acquired sequentially during translation of the ID sensor array. Figure 3 4 is a diagram showing a synthetic scan image 46 formed by aggregating scan image data acquired while scanning a target object having random structural features using a 1D sensor array. A sequence of scan strips 40 is converted into corresponding pixel columns to form the synthetic scan image 46. Figure 4 4 is a diagram showing a pair of frames including partially overlapping scanned images 42a and 42b constructed by removing and adding scanned strips 40. The diagram assumes that scanned image 42a is acquired first. The old scanned strip 40a is then removed and the new scanned strip 40b is added to form a second scanned image 42b.

[0056] exist Figure 3 and Figure 4 In the depicted example, a scanner having a 1D sensor array is translated across the surface of a target object at a known speed in the X direction from a first position X1 to a second position X2, a third position X3, and a fourth position X4 in sequence. A first scanned image 42a is constructed from a first scanned strip sequence converted from sensor data acquired during the movement of the 1D sensor array from position X1 to position X3; a second scanned image 42b is constructed from a second scanned strip sequence converted from sensor data acquired during the movement of the 1D sensor array from position X2 to position X4.

[0057] The relative motion update process proposed in this paper is based on the concept that partially overlapping sequential scanned images will have some common features (representing structural features in the target object) within a pair of images. It is assumed here that the second scanned image will have some common features (hereinafter, "common features") with the first scanned image. The pixel distance differences between the corresponding positions of the common feature points are counted and scaled, and then the relative physical distance is added to the previous position estimate to obtain the new absolute position. Figure 4 In the depicted example, the distance separating positions X1 and X2 may be calculated by multiplying the pixel position difference between corresponding positions of the common feature point in scanned images 42a and 42b by a scaling factor.

[0058] For example, assume that the capture rate of the NDI scanner 14 is 10 sets of full array sensor data per second (resulting in 10 scan swaths per second), and the motion platform 12 moves at a speed of 2 inches per second in the X direction. Then, the capture rate is 2 / 10 (or 0.2) inches per sample. One set of full array sensor data is equal to one pixel column, so in the X direction (which is the direction of vehicle movement), the scale factor would be 0.2 inches per pixel. If the image processor 15 determines that a common feature point in one image is 15 pixels away in the X direction compared to a common feature point in the next image, then the physical distance the platform moved between image one and image two is 15*0.2=3 inches.

[0059] Figure 5 4 is a diagram showing the location of a common feature point 48a in partially overlapping scanned images 42a and 42b constructed by aggregating scanned image data acquired using a mobile 1D sensor array having a row of sensors. This example assumes that the NDI scanner 14 is moved parallel to the X-axis on the surface of the target object using a row of sensors arranged parallel to the Y-axis (perpendicular to the X-axis) to control or constrain the motion platform 12, in which case the centerline of the 1D sensor moves from a first position having a first X-position coordinate in a reference system on the surface of the target object to a second position having a second X-position coordinate that is a distance from the first X-position coordinate.

[0060] The image processing and feature point comparison module 24 is configured to: (a) find feature points in the first scan image 42a and the second scan image 42b; (b) determine which feature points found in step (a) are common feature points in the first scan image 42a and the second scan image 42b (e.g., Figure 5 and (c) then comparing pixels indicating the positions of the common feature points in the first scanned image 42a with pixels indicating the positions of the same common feature points in the second scanned image 42b (eg, Figure 5The number of pixel columns separated by the first pixel indicating the position of the common feature point 48a in the first scanned image 42a and the second pixel indicating the position of the common feature point 48a in the scanned image 42b is counted. Figure 5 In , this change in pixel position in terms of pixel columns is indicated by ΔC. In this example, the pixel containing common feature point 48a in scanned image 42a is located at row 5 and column 5, while the pixel containing common feature point 48a in scanned image 42b is located at row 5 and column 11, which means ΔC = 6 columns. If the calibration scale factor f that characterizes the relationship between the pixel column difference and the physical distance traveled by the 1D sensor array is cal is known, then it can be calculated by multiplying ΔC by the calibration scale factor f cal The physical distance traveled by the 1D sensor array in the X direction is calculated. Then, a second X position coordinate (indicating the position of the 1D sensor array in the reference frame of the target object) can be calculated by adding the estimated physical distance traveled to the first X position coordinate.

[0061] In the above setup, feature points are defined by significant local changes in intensity (e.g., changes in contrast or color) that occur within a scanned image. The system does not need to know which structural features within the physical object are represented by these virtual features; the system only needs to detect the same pixel pattern in sequential scanned images. The overall concept is sometimes referred to as "solving the camera pose problem," in which case the "camera" is the NDI scanner. The system tracks a set of points in consecutive scanned images and determines their 2D positions from one scanned image to the next to derive the relative displacement of common feature points in the scanned images. This information is then used to calculate the relative physical motion (position and orientation) of the motion platform 12 on which the NDI scanner 14 is mounted during the time period between one scanned image and the subsequent scanned image. In order for this to apply to both position and orientation, a sufficient number of common features are required. In theory, a minimum of two, but preferably more common feature points are required to improve the estimate.

[0062] The use of feature point comparisons in the localization process has been disclosed elsewhere. For example, simultaneous localization and mapping (SLAM) methods use data from one or more optical cameras or laser scanners and an extended Kalman filter to: (1) update the current state (position) estimate using dead reckoning data; (2) update the estimated position based on features (landmarks) that are observed again; and (3) add new features (landmarks) to the current state. In SLAM, the relative displacement of feature points common to two images is used to provide offset estimates. To do this, relatively small changes in position and orientation, as well as significant overlap between images, are required to achieve registration. In addition, a known reference size of the 1D sensor array is required to determine the scaling of the displacement.

[0063] Various algorithms based on common feature points can be used to determine the distance the scanner moved during the time interval separating the two moments in time when the two images were captured. These algorithms can be used to determine the position and orientation offset between the two images. The process involves aligning two sets of common feature points acquired from the two images and determining the amount by which one set of points must be translated and rotated in order to achieve an optional alignment between the two sets of points. These algorithms are configured to solve this point-to-point matching problem.

[0064] One of the methods that can be used to determine the position and orientation offset between common feature points in two images (or more generally, between two sets of points) is to use the so-called Iterative Closest Point (ICP) algorithm, which is sometimes referred to as the "Iterative Corresponding Points" algorithm. In the present case, the offset is determined from the corresponding x and y pixel positions of the common feature points in the two images.

[0065] The basic form of the ICP algorithm is described in a technical paper written by Besl and McKay in 1992, entitled "A Method for Registration of 3-D Shapes" (hereinafter, the "1992 paper"). Several SLAM methods use variations of the IPC algorithm to align groups of points (this type of alignment is also called "registration"). There are several speed improvements to this concept that allow SLAM to run faster than the basic form of the ICP method, but the core idea is the same. In addition to other types of geometric data, the 1992 paper describes solutions for points in 3D space (x, y, z) and points in 2D space (x, y). The system disclosed herein uses a form of the ICP algorithm involving point sets. The method determines how much the first point set must be translated or rotated from its starting position and orientation to another position and orientation in order to minimize the total distance between the first point set and the second point set.

[0066] The ICP algorithm in its basic form is as follows: (1) for each point in a given set of point data, compute the closest point in another set using a distance metric; (2) estimate the amount of translation and rotation required to align the point sets; (3) transform the points in one set by the amounts determined in the translation and rotation estimates; (4) iterate (i.e., return to step (1) to compute the closest point again); (5) stop iterating when a predetermined distance metric value (e.g., a distance metric value equal to a specified threshold) is achieved.

[0067] Initially, a distance measurement or "distance metric" (here, a mean square distance metric) is used to determine the distance from each point in each point set; then one of the point sets is moved (offset) to reduce the mean square distance. The ICP method requires an initial estimate of the position and orientation offset. In the present application, a rough approximation of the offset is made using the desired direction of travel and the current velocity estimate of the motion platform (the approximation does not need to be very accurate). Then, the distance measurement is calculated again, and then a new estimate of the position and orientation offset is calculated using an iterative optimization method (e.g., a gradient descent method). The iteration continues until a convergence criterion is reached. Ideally, if each point in one set has exactly one corresponding point in the other point set and all points are accurately acquired, the total offset determined by the mean square distance metric will be zero, but since there may be outliers in one set that are not aligned with points in the other set (and small errors in acquisition accuracy), the optimal mean square distance will not be zero. For real-world scenarios where some points are common between the two sets and some are not, the method will not reach a zero mean square distance. Therefore, the total method needs to determine when to stop the iterative search (usually when the convergence rate slows down to a specified amount).

[0068] Common feature points are points that have a smaller closest point distance value than the point with the largest closest point distance value. The basic ICP algorithm looks for common feature points along the way, but the ICP algorithm does not need to know which points they are before starting the rest of the processing. In order for this method to work, a sufficient number of common feature points are still needed, but they do not need to be found explicitly in a dedicated step separate from the position and orientation offset determination process. As iterations are performed, common feature points are discovered, and in some variations of the ICP process, non-common feature points (e.g., outliers) are eliminated from the analysis early in the process to speed up convergence (reduce the number of iterations required). In other methods or other variations of the ICP method, outliers may be first eliminated from the common feature points to improve performance.

[0069] In summary, the ICP technique uses common feature points between two point sets to determine the position and orientation offset of one point set relative to another point set. Depending on the specific algorithm used, finding common feature points from two point sets may or may not be a separate step from using the points to determine the position and orientation offset. For example, some versions of the ICP algorithm determine common feature points simultaneously with determining the position and orientation offset.

[0070] To calculate the absolute displacement in the reference frame of the surface of the target object, the system proposed in this article adds the relative displacements together after processing each set of scanned images (called dead reckoning). However, as more and more discrete relative distance values ​​are added together, the absolute position estimate becomes inaccurate, so to account for this deviation, features appearing in the scanned image can be compared to landmarks / features with known coordinates. Based on these known coordinates, the absolute position estimate is updated, which is used to recalibrate the system. Image-to-image feature tracking occurs at a high update rate, and the comparison with known landmark / feature data occurs at a lower update rate.

[0071] Figure 6 1 is a flow chart identifying the steps of a method 100 for tracking the position of a 1D sensor array in a reference frame of a target object using a scanned image derived from sensor data according to an alternative embodiment. Initially, a determination is made as to whether a system motion calibration is required (step 102). If it is determined in step 102 that a system motion calibration is required, a motion platform 12 having an NDI scanner 14 is placed to one side of an area on the surface of a target object where the location and separation distance of structural features are known (step 104). Otherwise, if it is determined in step 102 that a system motion calibration is not required, the motion platform 12 having an NDI scanner 14 is moved to a known location on the surface of the target object where an NDI scanning procedure will be initiated (step 112).

[0072] During the system motion calibration procedure, the motion platform 12 begins translating the NDI scanner 14 from one side of a known area toward the other side at a known speed. As the motion platform 12 translates at a known speed (assuming no wheel slip), the NDI scanner 14 is activated to capture NDI sensor data at a known capture rate over a short distance (step 106). More specifically, the sensors of the 1D sensor array of the NDI scanner 14 are sequentially and repeatedly activated at regular time intervals, thereby obtaining a sequence of NDI sensor data sets. The NDI sensor data sets are converted into corresponding scan strips, which are then gathered to form a composite scanned image. The position difference between two feature points in the scanned image (corresponding to two structural features of the target object separated by a known physical distance) is then determined (step 108). For example, the position difference can be expressed in terms of the number of pixel columns that separate the corresponding pixels corresponding to the centroid of the feature of interest. A calibration scale factor is then calculated by dividing the known separation distance of the two structural features by the pixel position difference of the corresponding virtual feature points in the scanned image (step 110). Digital data representing the value of the calibration scale factor is stored in a non-transitory tangible computer-readable storage medium (e.g., a computer memory).

[0073] When the calibration procedure is completed, the motion platform 12 with the NDI scanner 14 is placed on the surface of the target object at a known position selected as the starting point of the NDI scanning procedure (step 112). During the NDI scanning procedure, the motion platform 12 causes the NDI scanner 14 to translate at a known speed. As the motion platform 12 translates at the known speed, the NDI scanner 14 is activated to capture NDI sensor data at a known capture rate (step 114). More specifically, the sensors of the 1D sensor array of the NDI scanner 14 are activated repeatedly in sequence at regular time intervals, thereby obtaining a sequence of NDI sensor data sets. The NDI sensor data sets are converted into corresponding scan strips, which are then gathered to form partially overlapping scan images. The position difference of the common feature points appearing in the partially overlapping scan images is then determined (step 116). For example, the position difference can be expressed in terms of the number of pixel columns separated by the corresponding pixels corresponding to the centroid of the common feature points. The physical distance traveled by the motion platform 12 is then calculated by multiplying the difference between the corresponding positions of the common feature points in the first and second scan images by the calibration scale factor (step 118). The calculated travel distance may be used to calculate the current absolute position of the motion platform 12 (and NDI scanner 14) in the target object's frame of reference by adding the calculated platform displacement to the previous absolute position.

[0074] It is then determined whether the movement / scanning process should continue (step 120). If it is determined in step 120 that the movement / scanning process should continue, the method 100 returns to step 102. Otherwise, if it is determined in step 120 that the movement / scanning process should not continue, the method 100 terminates.

[0075] Figure 7 is a diagram showing multiple partially overlapping paths of a raster scan pattern consisting of NDI scanner 14 sequentially passing over surface 31 of target object 30 having a rectangular area. NDI scanner 14 is translated alternately along the X and Y axes so that it follows a serpentine path to raster scan an area of ​​surface 31. NDI scanner 14 is shown in four different positions at respective times during respective linear passes parallel to the X axis. The serpentine scan path (indicated by arrows) can be used to provide complete scan coverage of a rectangular surface area. To achieve Figure 7 For the type of motion shown, the motion platform can be a complete vehicle. Figure 7, the starting position of the NDI scanner 14 is indicated by the legend "Start" adjacent to the upper left corner of the rectangular surface 31. The first pass from the left edge to the right edge (in the rightward X direction) of the target object 30 is indicated by arrow A; the scanning area covered by the NDI scanner 14 during the first pass is bounded by the dashed rectangle extending from the left edge to the right edge of the target object 30. During the first pass, the 1D sensor array carried by the NDI scanner 14 is activated to acquire NDI sensor data from the target object 30. When the NDI scanner 14 translates to the right and reaches the right edge, the motion platform ( Figure 7 The platform motion controller 16 is configured to determine whether the NDI scanner 14 has reached the right edge by continuously calculating an estimated current X position coordinate representing the current position of the NDI scanner 14 in the reference frame of the target object 30 in the manner described herein, and then comparing the current X position coordinate with the limit X position coordinate. When the current X position coordinate becomes equal to the limit X position coordinate, the rightward translation of the NDI scanner 14 stops. The platform motion controller 16 then drives the motion platform 12 in the downward Y direction (e.g., by rotating 90 degrees). The motion platform 12 then translates in the downward Y direction (as indicated by arrow B) a distance less than the length of the 1D sensor array and stops. The motion platform is then driven in the leftward X direction.

[0076] Next, the motion stage moves the NDI scanner 14 in the leftward X direction from the right edge to the left edge of the target object 30 (hereinafter, the "second pass"). The second pass from the right edge to the left edge of the target object 30 is indicated by arrow C; the scan area covered by the NDI scanner 14 during the second pass is bounded by a dash-dot rectangle extending from the right edge to the left edge of the target object 30. During the second pass, the 1D sensor array is activated to acquire NDI sensor data from the target object 30. Since the NDI scanner 14 translates in the downward Y direction a distance that is less than the length of the 1D sensor array, the area scanned during the second pass partially overlaps with the area scanned during the first pass, as shown in FIG. Figure 7 When the NDI scanner 14 reaches the left edge after being translated to the left, the motion platform 12 stops, moves the NDI scanner 14 in the downward Y direction (as indicated by arrow D) by a distance less than the length of the 1D sensor array, stops again, and then is driven in the rightward X direction.

[0077] Next, the motion platform moves the NDI scanner 14 in the rightward X direction from the right edge to the left edge of the target object 30 (hereinafter, the "third pass"). In the figure, the third pass from the left edge to the right edge of the target object 30 is indicated by arrow E; the scanning area covered by the NDI scanner 14 during the third pass is bounded by the dashed rectangle extending from the left edge to the right edge of the target object 30. During the third pass, the 1D sensor array is activated to acquire NDI sensor data from the target object 30. Since the NDI scanner 14 is again translated in the downward Y direction by a distance less than the length of the 1D sensor array, the area scanned during the third pass partially overlaps with the area scanned during the second pass, as shown in FIG. Figure 7 The overlapping area 31b is indicated by a dashed line on one side and a dotted line on the other side. When the NDI scanner 14 is translated to the right and reaches the right edge, the motion platform stops, and then moves the NDI scanner 14 in the downward Y direction (as indicated by arrow F) by a distance less than the length of the 1D sensor array, and then stops. The motion platform is then driven again in the left X direction.

[0078] Next, the motion platform again moves the NDI scanner 14 in the leftward X direction from the right edge to the left edge of the target object 30 (hereinafter, "the fourth pass"). Figure 7 , the fourth pass from the right edge to the left edge of the target object 30 is indicated by arrow G; the scan area covered by the NDI scanner 14 during the fourth pass is bounded by the dashed rectangle extending from the left edge to the right edge of the target object 30. During the fourth pass, the 1D sensor array is activated to acquire NDI sensor data from the target object 30. Since the NDI scanner 14 is translated again in the downward Y direction a distance less than the length of the 1D sensor array, the area scanned during the fourth pass partially overlaps the area scanned during the third pass, as indicated by the overlap area 31c bounded on one side by the dashed line including short dashes and on the other side by the dashed line including long dashes. When the NDI scanner 14 translates to the left to reach the left edge, the scanning operation is completed and the motion platform stops.

[0079] Figure 81 is a flow chart identifying the steps of a method 130 of calculating a current absolute position of a 1D NDI scanner defined in a coordinate system of a target object according to one embodiment. During system setup, a 1D NDI scanner (including a 1D scanner array and associated circuitry) is placed on a surface of a target object at a known physical position (also referred to herein as an initial "absolute position") defined in the coordinate system of the target object (step 132). The 1D NDI scanner is then translated in the X direction across the surface of the target object from a first X position to a second, third, and fourth X positions in sequence at a known speed (step 134). As the scanner is translated in the X direction, a continuous sensor data set is acquired at a known capture rate (step 136). The continuous sensor data set is converted into corresponding scan strips of scanned image data (step 138). An image processor then constructs a pair of scanned images by aggregating the scan strips. More specifically, a first scanned image is constructed from a first scan strip sequence converted from sensor data acquired during movement of the 1D sensor array from a first X position to a third X position (step 140); and a second scanned image is constructed from a second scan strip sequence converted from sensor data acquired during movement of the 1D sensor array from a second X position to a fourth X position (step 142). Then, the image processor (more specifically, the image processing and feature point comparison module 24) finds feature points in the first and second scanned images (step 144) and determines which feature points found in step 144 are common feature points in the first and second scanned images (step 146). The image processor calculates the pixel position difference between the corresponding positions of the common feature points in the first and second scanned images (step 148), and calculates the scanner displacement by multiplying the pixel position difference calculated in step 148 by a scaling factor representing the distance traveled by the scanner per scan strip (step 150). More specifically, the image processor calculates the relative physical position change of the 1D sensor array based on the known speed, the known capture rate, and the difference between the corresponding positions of the common feature points in the first and second scanned images. In one proposed implementation, the relative physical position change is the distance separating the first and second X positions in the reference system of the target object (hereinafter, "scanner displacement"). The previous absolute position and the current relative position change are then used to calculate the current absolute position of the 1D NDI scanner defined in the coordinate system of the target object (step 152).

[0080] According to one proposed implementation, the distance separating the first and second X positions is calculated by multiplying the pixel position difference between the corresponding positions of the common feature point in the first and second scanned images by a scaling factor representing the distance traveled by the scanner per scan swath. The pixel position difference is calculated by counting the number of pixel columns by which the position of the common feature point in the second scanned image is offset relative to the position of the common feature point in the first scanned image. The scaling factor is calculated by dividing the known velocity of the motion stage by the known capture rate of the NDI scanner.

[0081] In one proposed implementation, the computer system is further configured to associate a corresponding timestamp with a swath of the scanned image data to mark when the corresponding sensor data set was captured. The timestamp can be used to calculate the X position coordinate of the NDI scanner 14 when a swath of interest (e.g., a swath containing feature points of interest) was acquired by multiplying the time interval defined by the first timestamp associated with the swath acquired at the X position having the known X position coordinate and the second timestamp associated with the swath of interest by the known speed of the motion platform.

[0082] In some use cases, a user may be looking at a display of a single NDI scan image and want to extract the position coordinates of a single feature of interest. Figure 8 In the context of the method described in part in , a user may search for feature points in a scanned image that represent a structural feature of interest in a target object. A computer system may be configured (e.g., programmed) to calculate an X position coordinate of the structural feature based on an X position coordinate of a one-dimensional sensor array when acquiring a scan swath that includes the feature point. In one proposed implementation, the computer system is further configured to associate a corresponding timestamp with the scan swath of the scanned image data to mark when the corresponding sensor data set was captured. In the case of a wheeled motion platform, the X position coordinate of the structural feature of interest may be calculated based at least in part on a correction for wheel slip.

[0083] The positioning method described above is a dead reckoning process, which means that the absolute position estimate becomes less accurate as more discrete relative distance values ​​are summed. An optional correction process can be used along with the basic relative positioning process to improve the position estimate based on knowledge of common features whose position coordinates are known identified within the scanned image. This correction process, which runs at a lower update rate than the main feature tracking process, can be used to improve the position estimate to compensate for feature synthesis measurement errors.

[0084] According to some embodiments, the positioning method includes a periodic correction step of repositioning the 1D sensor array, such as occasional manual inspection and manual correction of position and orientation. For example, the array scans the length of the part, moves less than the width of the array, and then repositions the 1D sensor array in the same manner as the 1D sensor array. Figure 7The scan is then returned to the original edge in a similar manner as shown. The distance from the starting position can be checked and adjusted after each scanning pass or after several passes, as can the array angle.

[0085] In the case of a robotic tracked vehicle, wheel slip in the direction of the path will become apparent as the NDI scanner travels across structural features of the target object. Position and orientation between scans can be checked using distance measurements to the starting point and simple laser line alignment adjustments to the starting position. If a random or non-repeating pattern is present, the position and orientation of the array can be checked with each overlapping pass and manually corrected using known reference features on the target object whenever there is significant divergence.

[0086] As previously referenced Figure 1 As described above, the synthetic scan image construction module 22 constructs a synthetic scan image 46 (shown in FIG. Figure 3 ). According to another aspect, if an accurately scaled synthetic scan image is desired, the synthetic scan image can then be scaled to the appropriate size if the actual total distance is known from other landmark data. It will also be appreciated that the synthetic scan image does not always need to be stored in memory. This is only the case when the synthetic scan image is useful for some type of analysis process (e.g., NDI analysis). In other cases, the scan image data may be stored in memory only for position tracking purposes, and the positioning process will delete the individual images from memory when they are no longer needed for feature alignment.

[0087] The proposed 1D NDI sensor-based localization process is applicable to both automated motion control systems (e.g., robots and surface tracked vehicles) and manual motion control systems (e.g., handheld devices) using feedback control.

[0088] For manual movement of the 1D NDI scanner, there are several options: (1) slide the 1D NDI scanner over the surface, the support housing of the 1D NDI scanner can be made of some type of low-friction plastic (e.g., Delrin) to reduce sliding resistance and potential scratching of the surface; or (2) the support frame of the 1D NDI scanner can be provided with three or more omnidirectional wheels.

[0089] For autonomous movement, a 1D NDI scanner may be mounted to a frame of a tracked vehicle (e.g., a holo-motion or non-holo-motion tracked vehicle). For example, a tethered tracked vehicle capable of scanning a 1D sensor array on a fuselage surface is disclosed in U.S. Patent No. 8,738,226. In an alternative embodiment, the 1D sensor array may be mounted to a vacuum-attached tracked vehicle of the type disclosed in U.S. Patent Nos. 8,738,226 and 10,168,287. Alternatively, autonomous movement may be achieved by mounting the NDI scanner to a frame assembly that is coupled to an end effector (articulated, telescopic, gantry, etc.) at the distal end of a manipulator arm. (As used herein, the term "end effector" means the last link of an automated device including an arm, with a frame assembly supporting the NDI scanner coupled to its end point.) A suitable robot including an articulated arm is disclosed in U.S. Patent No. 9,933,396. According to an alternative automated system, the NDI scanner may be carried by an unmanned aerial vehicle (UAV) that flies to a target area and then pulls the sensor array over the surface of the target area. For example, U.S. Patent Application No. 16 / 202,347 discloses a UAV carrying a ID sensor array.

[0090] According to an alternative embodiment, the system includes: a motion platform including a frame; a pair of 1D sensor arrays separated by a fixed distance; and a computer system that is communicatively connected to receive sensor data from the pair of 1D sensor arrays. In this case, the two 1D sensor arrays are oriented perpendicular to the direction of movement. As long as the motion platform 12 moves far enough so that each 1D sensor array acquires some of the same features, the position tracking method proposed in this article can be performed using feature point alignment techniques to track the position differences of common feature points appearing in a pair of scanned images. The motion platform can be manually movable (handheld) or motorized (automatic).

[0091] Fig. 9 is a diagram showing a top view of the motion platform 12 moving on the surface 31 of the target object 30. The motion direction is represented by Fig. 9 Indicated by the arrow pointing right in the middle. Motion platform 12 carries a pair of NDI scanners 14a and 14b, which include corresponding 1D sensor arrays whose centerlines are oriented parallel to each other and separated by a fixed distance d. As motion platform 12 translates across surface 31, NDI scanners 14a and 14b are activated to simultaneously acquire NDI sensor data containing information about corresponding potential subsurface structures of target object 30. The NDI sensor data is converted into corresponding scan band sequences, which can be aggregated to construct a pair of partially overlapping scan images 42a and 42b. Fig. 9In the example depicted in FIG. 1 , NDI scanner 14a includes a leading 1D sensor array, and NDI scanner 14b includes a trailing 1D sensor array. Scanned image 42a is derived from sensor data acquired by NDI scanner 14a; scanned image 42b is derived from sensor data acquired by NDI scanner 14b. Fig. 9 As indicated, scanned images 42a and 42b cover corresponding areas on surface 31 having a length D in the X direction. To ensure that scanned images 42a and 42b partially overlap, condition d must be satisfied. <D。

[0092] During the translation of the motion platform 12, the NDI scanners 14a and 14b pass over the same portion of the target object 30, but at different times. As a result, any common virtual features that appear in the scanned images and correspond to structural features in the same portion of the target object 30 will have different positions within the corresponding image frames. Feature point alignment techniques can be used to determine the corresponding position differences of the common feature points in the manner previously described herein. From this imaged position difference, the position change of the motion platform can be calculated (i.e., the platform displacement from the platform position at which the first NDI scanner 14 images a particular structural feature to the subsequent platform position at which the second NDI scanner 14b images the same structural feature). More specifically, the image pair comparison technique can be used to determine the position change of the motion platform 12. This relative position change can then be used to calculate the absolute position of the motion platform 12 (and the absolute positions of the NDI scanners 14a and 14b).

[0093] According to one embodiment, the position of the motion platform 12 on the surface 31 is tracked while the NDI scanners 14a and 14b are translated in tandem in the X direction at a known speed across the surface 31 of the target object 30. During the translation, the NDI scanner 14a moves from a first X position to a third X position, and the NDI scanner 14b moves from a second X position to a fourth X position, wherein the second X position is between the first and third X positions, and the third X position is between the second and fourth X positions. During the tandem translation, the NDI scanner 14a is operated to acquire a first sequence of sensor data sets at a known capture rate as the NDI scanner 14a moves from the first X position to the third X position, and the NDI scanner 14b is operated to acquire a second sequence of sensor data sets at a known capture rate as the NDI scanner 14b moves from the second X position to the fourth X position. The first sequence of sensor data sets is converted into a corresponding first sequence of scan strips of scanned image data, and the second sequence of sensor data sets is converted into a corresponding second sequence of scan strips of scanned image data. The number of scan strips in the second sequence is the same as the number of scan strips in the first sequence. In addition, the image processor 15( Fig. 9The image processor 15 (not shown) constructs a scanned image 42a from a first scanned strip sequence and a scanned image 42b from a second scanned strip sequence. The image processor 15 then searches for feature points 48 in the first scanned image 42a and the second scanned image 42b and determines which feature points found in the first scanned image 42a and the second scanned image 42b are common feature points. The common features 48 visible in the scanned images 42a and 42b represent the structural features 11 of the target object. The image processor 15 then calculates the scanner displacement by multiplying the pixel position difference between the corresponding positions of the common feature points in the first and second scanned images by a proportional factor representing the distance traveled per scanned strip by the first and second scanners. According to a proposed implementation, the pixel position difference is calculated by counting the number of pixel columns by which the position of the common feature points in the second scanned image 42b is offset relative to the position of the common feature points in the first scanned image 42a. The NDI sensor data processor 20 is configured to associate a corresponding timestamp with the scanned strip of the scanned image data to mark when the corresponding sensor data set was captured. The image processor 15 is also configured to calculate an estimated velocity of the moving platform based on a fixed (known) distance between NDI sensor scans and a time interval having a duration equal to the difference between a timestamp associated with a scan band in a first scan band sequence where the common feature appears and a timestamp associated with a scan band in a second scan band sequence where the common feature appears; and to calculate a scaling factor by dividing the estimated velocity by a known capture rate.

[0094] Fig.10 1 is a block diagram identifying some components of a system 10 for tracking the position of a motorized motion platform 12 carrying a pair of spaced-apart NDI scanners 14a and 14b according to one embodiment. Movement of the motion platform 12 is controlled by an onboard platform motion controller 16 so that the NDI scanners 14a and 14b follow a pre-planned scanning path on a target object. During translation, the NDI scanners 14a and 14b may be continuously activated to acquire sensor data containing information about structural features of the target object. Fig.10The system 10 partially depicted in FIG. 1 also includes an NDI sensor data processor 20 configured to convert sensor data output by the NDI scanners 14a and 14b into corresponding scan strip sequences. The resulting scan strip sequences are fed to a synthetic scan image construction module 22, which assembles the scan strip sequences to form partially overlapping individual 2D scan images. The image processing and feature point comparison module 24 executes an image pair comparison algorithm (described above). The image processing and feature point comparison module 24 is also configured to calculate the change in position of the motion platform 12 relative to a previous position based on the corresponding positions of corresponding common feature points in the partially overlapping scan images. This relative physical distance is then added to the previous absolute position estimate to obtain a new (current) absolute position. The platform motion controller 16 then uses the absolute position estimate to control the motion of the motion platform 12 according to a pre-planned scan path. Optionally (such as Fig.10 ), relative position data 26 is also sent to the NDI sensor data processor 20, which can be used to construct a synthetic scan image.

[0095] Fig.11 1 is a block diagram identifying some of the components of a system 10 for tracking the position of a pair of spaced apart NDI scanners 14a and 14b mounted to a manually movable motion platform 12' according to an alternative embodiment. The image processing modules 22 and 24 have the same configuration as previously described to allow tracking of the absolute position of the manually movable motion platform 12' in the reference frame of a target object. Fig.10 and Fig.11 The main difference between the systems described in the section is that Fig.11 The system 10 in FIG. 1 does not have a platform motion controller. Instead, the motion platform 12 ′ is configured with a handle to enable the examination technician to manually move the motion platform 12 ′.

[0096] According to other embodiments, the system includes: a motion platform including a frame; a single 1D sensor array mounted on a controllable motion element (e.g., a motorized rail attached to the frame) that enables the 1D sensor elements to move relative to the frame; and a computer system communicatively coupled to receive sensor data from the 1D sensor array. Employing a single 1D sensor array that is movable relative to the motion platform 12 avoids wheel slip issues and also addresses handheld motion configurations. The motion platform can be manually movable (handheld) or motorized (automatic). The motion platform does not move while the controllable motion element moves the 1D sensor array over the surface during NDI data collection. Once the controllable motion element completes a scan, the motion platform moves to a new position that partially overlaps the previous position.

[0097] Fig.121 is a block diagram identifying some components of a system 10 for tracking the position of an NDI scanner 14 including a 1D sensor array displaceable relative to a motorized motion platform 12, according to one embodiment. The movement of the motion platform 12 is controlled by an onboard platform motion controller 16. The movement of the NDI scanner 14 relative to the motion platform 12 is controlled by an onboard controllable motion unit 28. The platform motion controller 16 is configured to follow a pre-planned scanning path on a target object while periodically stopping. During the stops, the controllable motion unit 28 activates a mechanism that translates the NDI scanner 14 relative to the frame of the motion platform 12. For example, after the motion platform 12 has translated a preset distance in the X direction and then stopped, the NDI scanner 14 may move across the surface of the target object in the X direction while the motion platform 12 remains stationary. When the scan of the relative area of ​​the surface of the target object is completed, the NDI scanner 14 stops. The motion platform 12 is then translated again in the X direction by a preset distance, and the scanning process is repeated until sufficient information about the structural features of the target object has been acquired. Image processing modules 22 and 24 have the same configuration as previously described to allow tracking of the absolute position of motion platform 12 in the reference frame of the target object.

[0098] Fig.13 is a diagram showing a top view of a motorized motion platform 12, including a frame 2 and a plurality of wheels 4a-4d rotatably coupled to the frame 2. The wheels 4a-4d are driven to rotate by respective wheel drive motors 32a-32d mounted to the frame 2. The motion platform 12 carries an NDI scanner 14 that is translatable relative to the frame 2. The motion controller ( Fig.13 Not shown, but see Fig.12 The controllable motion unit 28 in the platform motion controller 16 (see Fig.12 ) under the control of the translation of the motion platform 12, allowing the NDI scanner 14 to translate relative to the frame 2. More specifically, the controllable motion unit 28 is configured to control the motor so that the one-dimensional sensor array moves relative to the frame in a direction parallel to the linear guide 8.

[0099] One proposed implementation of an electromechanical subsystem that enables the NDI scanner 14 to translate relative to the frame 2 of the motion platform 12 includes a linear guide rail 8 (hereinafter, "guide rail 8") spanning the opening 6 of the frame 2, with opposite ends of the guide rail 8 fixedly coupled to the frame 2. The NDI scanner 14 is driven along the guide rail 8 in either direction (in either direction) by a motor 38 mounted to the frame 2. Fig.13The NDI scanner 14 is slidably coupled and oriented perpendicular to the guide rail 8. The 1D sensor array includes a plurality of sensors aligned with each other to form a linear array. As the NDI scanner 14 is translated from one end of the opening 6 to the other end, the opening 6 covers an area to be scanned by the 1D sensor array.

[0100] Fig.14 8 is a diagram showing a side view of some of the components of an electromechanical subsystem 70 that enables the NDI scanner 14 to translate along the guide rail 8. The electromechanical subsystem 70 includes: a bearing guide 72 that is slidably coupled to the guide rail 8; and a drive mechanism that mechanically couples the carriage 74 to the motor 38 (see Fig.13 ) to slide the bearing guide 72 along the guide rail 8 during operation of the motor 38. The NDI scanner 14 is attached (fixedly coupled) to the carriage 74, having a slave configuration that enables the ID sensor array of the NDI scanner 14 to survey the relative surface area beneath the opening 6 in the frame 2 (see Fig.13 ).

[0101] The mechatronic subsystem 70 also includes a lead screw 76 and a nut (inside the carriage 74) threadedly engaged with the lead screw 76. The nut is mounted in a cavity formed in the carriage 74. The carriage 74 is coupled to the lead screw 76 by the nut so that the carriage 74 can translate (by sliding) along the guide rail 8 when the motor 38 drives the lead screw 76 to rotate. The opposite ends of the lead screw 76 are supported by corresponding bearings 78 and 80. The rotation of the lead screw 76 can be driven by the motor 38 via a belt (not shown) wound around a corresponding pulley. In other embodiments, the lead screw can be driven directly by the motor. Other options include gear transmission or chain transmission. The mechatronic subsystem 70 also includes a bearing guide 72 to which the carriage 74 is attached. The bearing guide 72 includes a series of recirculating ball bearings, whose balls roll along the guide rail 8. Optionally, the position of the carriage 74 along the guide rail 8 can be measured by a position sensor (e.g., a rotary encoder coupled to the lead screw 76) to provide position feedback to the controllable motion unit 28.

[0102] Fig.15 is a diagram showing a top view of a motorized motion platform 12 according to an alternative embodiment, which includes a frame 2, wheels 4a-4d rotatably coupled to the frame 2, linear guides 8 fixedly coupled to the frame 2, and an NDI scanner 14 including a 1D sensor array slidably coupled to the guides 8. This embodiment is similar to Fig.14 The embodiment depicted in FIG. 1 differs in that the guide rails 8 and the NDI scanner 14 are mounted in front of the frame 2 of the motion platform 12 , rather than covering the opening 6 in the frame 2 . Fig.15The motion platform 12 depicted in FIG. 1 also includes a rectangular extension frame 36 fixedly coupled to the front end of the frame 2 by a rigid support beam 34. The guide rail 8 spans the opening in the rectangular extension frame 36, and the opposite ends of the guide rail 8 are fixedly coupled to the rectangular extension frame 36. The NDI scanner 14 is driven by a motor 38 mounted to the frame 2 along the guide rail 8 in either direction (in either direction). Fig.15 Indicated by a double-headed arrow in the figure).

[0103] Fig.16 1 is a block diagram identifying some components of a system 10 for tracking the position of an NDI scanner 14 including a 1D sensor array that is displaceable relative to a manually movable motion platform 12' according to an alternative embodiment. The image processing modules 22 and 24 have the same configuration as previously described to allow tracking of the absolute position of the manually movable motion platform 12' in the reference frame of the target object. Fig.12 and Fig.16 The main difference between the systems described in the previous section is that Fig.16 The system 10 in does not have a platform motion controller.

[0104] Fig.17 is a block diagram identifying some components of a system 50 including a 1D sensor array 60 mounted to a Mecanum wheeled robotic crawler vehicle 52 (hereinafter, “crawler vehicle 52”) according to one embodiment. The system 50 also includes a computer system 58 configured to control a scanning position of the 1D sensor array 60 and acquisition of sensor data of the 1D sensor array 60. As previously described herein, the scanning position is controlled based on common features in a scanned image derived from sensor data acquired by the 1D sensor array 60 from a target object.

[0105] The tracked vehicle 52 includes a motion controller 16 and a plurality of Mecanum wheels 4 operatively coupled to respective drive motors 18. The motion controller 16 includes a motion control processor 54 and a plurality of motor controllers 56 for independently controlling the drive motors 18 according to control signals received from the motion control processor 54. The motion control processor 54 in turn receives commands from a computer system 58. The computer system 58 may be connected via a cable or wirelessly via a transceiver ( Fig.17 The computer system 58 (not shown) is communicatively coupled to the motion control processor 54. The computer system 58 uses the relative position information to track the relative position of the tracked vehicle 52 (eg, relative to an initial absolute position acquired using an external position measurement system).

[0106] More specifically, the computer system 58 is programmed with NDI scanning application software 64 and motion control application software 68. The computer system 58 may include a general purpose computer. The NDI scanning application software 64 is configured to control the pulse generator / receiver 62. Fig.17 , a pulser / receiver 62 is coupled to provide power and control signals and receive sensor data signals from the 1D sensor array 60. The pulser / receiver 62 sends pulses to the 1D sensor array 60 and receives return signals from the 1D sensor array 60. The NDI scanning application software 64 running on the computer system 58 controls all details of the image scan data and the display of the data. For example, the 1D sensor array 60 and the pulser / receiver 62 may be a 1D ultrasound transducer array and an ultrasound pulser / receiver unit, respectively.

[0107] In addition, the computer system 58 hosts the image processing and feature point comparison module 24, which outputs relative position data 26 to the positioning module 25 (see Figure 1 ). The positioning module 25 is configured to convert the relative position data 26 into absolute position data useful to the motion control application 68. The motion control application 68 is configured to control the motion of the tracked vehicle 52 based on the positioning updates received from the positioning module 25 to continue to follow the original predefined (planned) scan path. According to one embodiment, the motion control application software 68 is configured to control the position of the tracked vehicle 52 according to the absolute coordinates output by the positioning module 25. The current position of the stopped tracked vehicle 52 may be periodically checked to determine the extent to which the current absolute position may deviate from the desired position specified in the scan path plan.

[0108] Although displays like LCD monitors have fixed pixel pitches, when creating an NDI scanned image using a 1D sensor array, the computer system is configured to determine how far apart the NDI receiver elements are from each other when acquiring data. The spacing between the individual sensor elements of the linear array is known because those are fixed distances in the array housing, but the computer system is configured to accurately space the data from one capture of the array data to the next, which is possible if the speed of the motion platform and the capture rate of the NDI scanner are known. For example, assume that the motion platform (and array) moves from left to right, and the 1D sensor array is oriented perpendicular to the left-right direction (up and down). The individual NDI element (pixel) spacing is known in the up and down direction, but the computer system cannot determine the pixel column spacing until the left-right speed is known. If the motion platform is moving slowly, the left-right spacing will be less than if the motion platform is moving quickly. In the case where the X and Y spacing are not equal, one of the following options can be used to represent the scanned image: (1) accept the image not scaled equally in X and Y; or (2) insert space in the scanned image between columns of pixels; or (3) stretch or compress the pixels (to make them rectangular rather than square).

[0109] According to the teachings herein, relative motion measurements can be corrected by acquiring accurate absolute measurements at a lower update rate. This absolute measurement process (performed while the target object is stationary) can be integrated into a relative motion measurement system operating at a higher update rate (acquiring relative motion measurements while the target object is moving). According to one embodiment disclosed below, a process based on a lower update rate local positioning system provides correction for a higher update rate positioning process.

[0110] In addition to mapping subsurface features, absolute position measurements can be used to map the locations of surface and subsurface anomalies in the target object. Mapping defect size, shape, and depth to the CAD model of the target object will allow finite element analysis of defects in the structure, analysis of their impact on structural performance, and repair analysis and planning.

[0111] Position tracking correction can be performed manually (human assisted), where a person identifies common known landmarks in the CAD model data and the NDI scan image data and forces the estimate to align with the known coordinates. Alternatively, the correction process can be automated using appropriately prepared reference images. These reference images can come from previous NDI scans where the coordinates of the landmarks have been identified, or the data can come from CAD model data where the landmark coordinates are known.

[0112] According to one proposed implementation, the 1D sensor array takes the form of an array of ultrasonic transducer elements that are configured to allow the generation and display of a C-scan of a small area. Many different ultrasonic transducer element configurations may be used. For example, the ultrasonic transducer array may include an array of transmit / receive electrodes arranged in rows and columns in a pixel-type configuration. In an alternative configuration, the ultrasonic transducer array includes a set of mutually parallel elongated transmit electrodes that overlap and intersect with a set of mutually parallel elongated receive electrodes at a non-zero angle. The ultrasonic transducer array can be used to inspect any number of structures in various industries where defects or anomalies in the structure need to be detected, such as in the aircraft, automotive, shipbuilding or construction industries. The ultrasonic transducer array is capable of detecting any number of defects or anomalies in or on the surface of the structure, such as impact damage (e.g., delamination and matrix cracking), debonding (e.g., fuselage / reinforcement components or honeycomb composites), discontinuities, voids or pores that may adversely affect the performance of the structure.

[0113] Certain systems, devices, applications, or processes are described herein as including several modules. In addition to those modules that are preferably implemented as hardware or firmware to allow stream computing as disclosed herein, modules can be units of different functions that can be implemented in software, hardware, or a combination thereof. When the functions of a module are performed in any part by software, the module may include a non-transitory tangible computer-readable storage medium.

[0114] Although the system and method for tracking the position of an NDI scanner using a scanned image of a target object has been described with reference to specific embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the teachings herein. In addition, many modifications may be made to adapt a particular situation to the teachings herein without departing from the essential scope thereof. Therefore, the appended claims are not intended to be limited to the disclosed embodiments.

[0115] As used herein, the term "computer system" should be interpreted broadly to encompass a system having at least one computer or processor and may have multiple computers or processors communicatively coupled via a network or bus. As used in the previous sentence, both the terms "computer" and "processor" refer to a device that includes a processing unit (e.g., a central processing unit) and some form of memory (e.g., a non-transitory tangible computer-readable storage medium) for storing programs that can be read by the processing unit. For example, Figure 1 The image processor 15, the platform motion controller 16 and the NDI sensor data processor 20 identified herein form a "computer system" as defined herein.

[0116] The methods described herein may be encoded as executable instructions embodied in a non-transitory tangible computer-readable storage medium, including but not limited to a storage device and / or a memory device. These instructions, when executed by a processor or a computer, cause the processor or the computer to perform at least a portion of the methods described herein.

[0117] The accompanying method claims should not be interpreted as requiring that the steps described therein be performed in alphabetical order (any alphabetical order in the claims is used only for the purpose of referencing the preceding steps) or in the order in which they are recited, unless the claim language expressly indicates or states a condition indicating a specific order in which some or all of those steps are performed. A method claim should also not be interpreted as excluding any portion of two or more steps from being performed simultaneously or alternately, unless the claim language expressly states a condition excluding such an interpretation.

[0118] Furthermore, the present disclosure includes implementations according to the following clauses:

[0119] Clause 1. A method of tracking the location of a scanner, the method comprising:

[0120] (a) translating a scanner (14) having a one-dimensional sensor array (60) in an X direction across a surface (31) of a target object (30) at a known speed from a first X position to a second, third, and fourth X positions in sequence;

[0121] (b) As the scanner translates in the X direction, a continuous sensor data set is acquired at a known capture rate;

[0122] (c) converting the continuous sensor data set into corresponding scan strips of scanned image data (40);

[0123] (d) constructing a first scanned image (42a) from a first scanned swath sequence (40a) converted from sensor data acquired during movement of the one-dimensional sensor array from the first X position to the third X position;

[0124] (e) constructing a second scanned image (42b) from a second scanned swath sequence (40b) converted from sensor data acquired during movement of the one-dimensional sensor array from the second X position to the fourth X position;

[0125] (f) finding feature points (48) in the first and second scanned images;

[0126] (g) determining which feature points found in step (f) are common feature points in the first and second scanned images (48a);

[0127] (h) calculating the pixel position difference between the corresponding positions of the common feature points in the first and second scanned images; and

[0128] (i) Calculate the scanner displacement by multiplying the pixel position difference calculated in step (h) by a scaling factor representing the distance traveled by the scanner per scan swath.

[0129] Clause 2. The method according to Clause 1, further comprising calculating the pixel position difference by counting the number of pixel columns where the position of the common feature point in the second scanned image is offset relative to the position of the common feature point in the first scanned image.

[0130] Clause 3. The method of any of clauses 1-2, further comprising calculating a scaling factor by dividing the known velocity by the known capture rate.

[0131] Clause 4. The method according to any one of clauses 1 to 3, further comprising:

[0132] calculating an estimated X position coordinate representing a second X position in a reference frame of the target object by adding the scanner displacement distance to the X position coordinate of the first X position; and

[0133] The X position coordinates of the second X position are stored in association with the second scanned image in a non-transitory tangible computer readable storage medium.

[0134] Clause 5. The method according to any one of clauses 1 to 4, further comprising:

[0135] (j) finding feature points in the scanned image that represent interesting structural features in the target object; and

[0136] (k) Calculating the X position coordinates of the structural feature based on the X position coordinates of the one-dimensional sensor array when acquiring a scan strip including the feature point.

[0137] Clause 6. The method of clause 5, further comprising associating a corresponding time stamp with a scan swath of the scanned image data to mark when the corresponding sensor data set was captured.

[0138] Clause 7. The method according to any one of clauses 1 to 6, further comprising:

[0139] Calculate continuous scanner displacement;

[0140] calculating successive X position coordinates corresponding to successive X positions of the scanner following corresponding scanner displacements; and

[0141] When the X position coordinate of the scanner is equal to the limit X position coordinate, the translation of the scanner is stopped.

[0142] Clause 8. A method of tracking the position of a motion platform (12) carrying first and second scanners (14a, 14b), the first and second scanners respectively comprising first and second one-dimensional sensor arrays (60) having respective centerlines oriented parallel to the Y direction and separated by a fixed distance, the method comprising the steps of:

[0143] (a) translating a motion platform (12) in an X direction at a known speed across a surface (31) of a target object (30), during which the first scanner (14a) moves from a first X position to a third X position and the second scanner (14b) moves from a second X position to a fourth X position, wherein the second X position is between the first X position and the third X position and the third X position is between the second X position and the fourth X position;

[0144] (b) operating the first scanner to acquire a first sequence of sensor data sets at a known capture rate as the first scanner moves from the first X position to a third X position;

[0145] (c) operating the second scanner to acquire a second sequence of sensor data sets at a known capture rate as the second scanner moves from the second X position to a fourth X position;

[0146] (d) converting a first sequence of sensor data sets into a corresponding first scan band sequence (40a) of scanned image data;

[0147] (e) converting a second sequence of sensor data sets into a corresponding second scan band sequence (40b) of scanned image data, wherein the number of scan bands in the second scan band sequence is the same as the number of scan bands in the first scan band sequence;

[0148] (f) constructing a first scan image (42a) from the first scan band sequence;

[0149] (g) constructing a second scanned image (42b) from the second scanned band sequence;

[0150] (h) finding feature points (48) in the first and second scanned images;

[0151] (i) determining which feature points found in step (f) are common feature points in the first and second scanned images (48a);

[0152] (j) calculating the pixel position difference between the corresponding positions of the common feature points in the first and second scanned images; and

[0153] (k) Calculating the scanner displacement by multiplying the pixel position difference calculated in step (h) by a scaling factor representing the distance traveled per scanning swath by the first and second scanners.

[0154] Clause 9. The method according to Clause 8, further comprising calculating the pixel position difference by counting the number of pixel columns where the position of the common feature point in the second scanned image is offset relative to the position of the common feature point in the first scanned image.

[0155] Clause 10. The method according to any one of clauses 8-9, further comprising:

[0156] associating a corresponding timestamp with a scan swath of the scanned image data to mark when the corresponding sensor data set was captured;

[0157] calculating an estimated velocity of the moving platform based on a fixed distance and a time interval having a duration equal to the difference between a time stamp associated with a swath of a first swath sequence where the common feature occurs and a time stamp associated with a swath of a second swath sequence where the common feature occurs; and

[0158] The scaling factor is calculated by dividing the estimated velocity by the known capture rate.

[0159] Clause 11. The method according to any one of clauses 8 to 10, further comprising:

[0160] calculating an estimated X position coordinate representing a second X position in a reference frame of the target object by adding the scanner displacement distance to the X position coordinate of the first X position; and

[0161] The X position coordinates of the second X position are stored in association with the second scanned image in a non-transitory tangible computer readable storage medium.

[0162] Clause 12. The method according to any one of clauses 8 to 11, further comprising:

[0163] Calculate continuous scanner displacement;

[0164] calculating successive X position coordinates corresponding to successive X positions of the scanner following corresponding scanner displacements; and

[0165] When the X position coordinate of the scanner is equal to the limit X position coordinate, the translation of the motion platform is stopped.

[0166] Clause 13. A system comprising:

[0167] An electric motion platform (12) comprising a frame (2);

[0168] a scanner (14) comprising a one-dimensional sensor array (60) supported by a frame; and

[0169] A computer system (58) communicatively coupled to receive sensor data from the one-dimensional sensor array and to send control signals for controlling movement of the motorized motion platform, the computer system being configured to perform operations comprising:

[0170] (a) controlling a motorized motion platform to sequentially translate a scanner in an X direction at a known speed across a surface (31) of a target object (30) from a first X position to a second, third, and fourth X positions while orienting a one-dimensional sensor array in a Y direction;

[0171] (b) As the scanner translates in the X direction, a continuous sensor data set is acquired at a known capture rate;

[0172] (c) converting the continuous sensor data set into corresponding scan strips of scanned image data (40);

[0173] (d) constructing a first scanned image (42a) from a first scanned swath sequence (40a) converted from sensor data acquired during movement of the one-dimensional sensor array from the first X position to the third X position;

[0174] (e) constructing a second scanned image (42b) from a second scanned swath sequence (40b) converted from sensor data acquired during movement of the one-dimensional sensor array from the second X position to the fourth X position;

[0175] (f) finding feature points (48) in the first and second scanned images;

[0176] (g) determining which feature points found in step (f) are common feature points in the first and second scanned images (48a);

[0177] (h) calculating the pixel position difference between the corresponding positions of the common feature points in the first and second scanned images; and

[0178] (i) Calculate the scanner displacement by multiplying the pixel position difference calculated in step (h) by a scaling factor representing the distance traveled by the scanner per scan swath.

[0179] Clause 14. A system according to Clause 13, wherein the computer system is further configured to calculate the pixel position difference by counting the number of pixel columns where the position of the common feature point in the second scanned image is offset relative to the position of the common feature point in the first scanned image.

[0180] Clause 15. The system of any of clauses 13-14, wherein the computer system is further configured to calculate the scaling factor by dividing the known speed by the known capture rate.

[0181] Clause 16. The system of any of clauses 13-15, further comprising a non-transitory tangible computer-readable storage medium, wherein the computer system is further configured to perform operations comprising:

[0182] (j) calculating an estimated X position coordinate representing a second X position in a reference frame of the target object by adding the scanner displacement distance to the X position coordinate of the first X position; and

[0183] (k) storing the X position coordinates of the second X position in association with the second scanned image in a non-transitory tangible computer readable storage medium.

[0184] Clause 17. The system of any of clauses 13-16, wherein the computer system is further configured to perform operations comprising:

[0185] Calculate continuous scanner displacement;

[0186] calculating successive X position coordinates corresponding to successive X positions of the scanner following corresponding scanner displacements; and

[0187] When the X position coordinate of the scanner is equal to the limit X position coordinate, the translation of the scanner is stopped.

[0188] Clause 18. A system comprising:

[0189] A motion platform (12) comprising a frame (2);

[0190] first and second scanners, each comprising first and second one-dimensional sensor arrays (60) having respective centerlines oriented parallel and separated by a fixed distance; and

[0191] A computer system (58) communicatively coupled to receive sensor data from the first and second one-dimensional sensor arrays and configured to perform operations comprising:

[0192] (a) operating the first scanner to acquire a first sequence of sensor data sets at a known capture rate as the first scanner moves from a first X position to a third X position;

[0193] (b) operating the second scanner to acquire a second sequence of sensor data sets at a known capture rate as the second scanner moves from a second X position to a fourth X position, wherein the second X position is between the first X position and the third X position, and the third X position is between the second X position and the fourth X position;

[0194] (c) converting a first sequence of sensor data sets into a corresponding first scan band sequence of scanned image data (40a);

[0195] (d) converting a second sequence of sensor data sets into a corresponding second scan band sequence (40b) of scanned image data, wherein the number of scan bands in the second scan band sequence is the same as the number of scan bands in the first scan band sequence;

[0196] (e) constructing a first scan image (42a) from the first scan band sequence;

[0197] (f) constructing a second scan image (42b) from the second scan band sequence;

[0198] (g) finding feature points (48) in the first and second scanned images;

[0199] (h) determining which feature points found in step (f) are common feature points (48a) in the first and second scanned images;

[0200] (i) calculating the pixel position difference between the corresponding positions of the common feature points in the first and second scanned images; and

[0201] (j) Calculate the scanner displacement by multiplying the pixel position difference calculated in step (i) by a scaling factor representing the distance traveled by the scanner per scan swath.

[0202] Clause 19. A system according to Clause 18, wherein the computer system is further configured to calculate the pixel position difference by counting the number of pixel columns where the position of the common feature point in the second scanned image is offset relative to the position of the common feature point in the first scanned image.

[0203] Clause 20. The system of any of clauses 18-19, wherein the computer system is further configured to perform operations comprising:

[0204] associating a corresponding timestamp with a scan swath of the scanned image data to mark when the corresponding sensor data set was captured;

[0205] calculating an estimated velocity of the moving platform based on a fixed distance and a time interval having a duration equal to the difference between a time stamp associated with a swath of a first swath sequence where the common feature occurs and a time stamp associated with a swath of a second swath sequence where the common feature occurs; and

[0206] The scaling factor is calculated by dividing the estimated velocity by the known capture rate.

[0207] Clause 21. A non-destructive inspection system (50), comprising:

[0208] Frame (2);

[0209] a plurality of wheels (4a-4d) rotatably coupled to the frame;

[0210] a linear guide rail (8) fixedly coupled to the frame;

[0211] a carriage (74) slidably coupled to the guide rail;

[0212] Motor (38);

[0213] a drive mechanism (76) that mechanically couples the carriage (74) to the motor (38) so that the carriage slides along the rail during operation of the motor;

[0214] a one-dimensional sensor array (60) fixedly coupled to the carriage and oriented perpendicular to the rail, the one-dimensional sensor array comprising a plurality of sensors aligned with each other; and

[0215] A motion controller (28) is configured to control the motor to move the one-dimensional sensor array relative to the frame in a direction parallel to the linear guide.

Claims

1. A method for tracking the position of a scanner, the method comprising the following steps: (a) translating a scanner (14) having a one-dimensional sensor array (60) in an X direction across a surface (31) of a target object (30) at a known speed from a first X position to a second X position, a third X position, and a fourth X position in sequence; (b) acquiring a continuous sensor data set at a known capture rate as the scanner translates in the X direction; (c) converting the continuous sensor data set into corresponding scan strips of scanned image data (40); (d) constructing a first scanned image (42a) from a first scanned swath sequence (40a) converted from sensor data acquired during movement of the one-dimensional sensor array from the first X position to the third X position; (e) constructing a second scanned image (42b) from a second scanned swath sequence (40b) converted from sensor data acquired during movement of the one-dimensional sensor array from the second X position to the fourth X position; (f) finding feature points (48) in the first scanned image and the second scanned image; (g) determining which feature points found in step (f) are common feature points (48a) in the first scanned image and the second scanned image; (h) calculating the pixel position difference between corresponding positions of common feature points in the first scanned image and the second scanned image; as well as (i) Calculating scanner displacement by multiplying the pixel position difference calculated in step (h) by a scaling factor representing the distance traveled by the scanner per scanning swath.

2. The method according to claim 1 further comprises calculating the pixel position difference by counting the number of pixel columns by which the position of the common feature point in the second scanned image is offset from the position of the common feature point in the first scanned image.

3. The method of any one of claims 1 to 2, further comprising calculating the scaling factor by dividing the known speed by the known capture rate.

4. The method according to any one of claims 1 to 2, further comprising: calculating an estimated X position coordinate representing the second X position in the reference frame of the target object by adding the scanner displacement distance to the X position coordinate of the first X position; and The X position coordinates of the second X position are stored in association with the second scanned image in a non-transitory tangible computer readable storage medium.

5. The method according to any one of claims 1 to 2, further comprising: (j) finding feature points in the scanned image that represent interesting structural features in the target object; as well as (k) calculating the X position coordinate of the structural feature based on the X position coordinate of the one-dimensional sensor array when acquiring a scanning strip including the feature point. 6 . The method of claim 5 , further comprising associating a corresponding time stamp with the scanned swath of image data to mark when the corresponding sensor data set was captured.

7. A method for tracking the position of a motion platform (12) carrying a first scanner (14a) and a second scanner (14b), the first scanner and the second scanner respectively comprising a first one-dimensional sensor array and a second one-dimensional sensor array (60) having respective center lines oriented parallel to the Y direction and separated by a fixed distance, the method comprising the following steps: (a) translating the motion platform (12) in the X direction at a known speed across a surface (31) of a target object (30), during which the first scanner (14a) moves from a first X position to a third X position and the second scanner (14b) moves from a second X position to a fourth X position, wherein the second X position is between the first X position and the third X position and the third X position is between the second X position and the fourth X position; (b) operating the first scanner to acquire a first sequence of sensor data sets at a known capture rate as the first scanner moves from the first X position to the third X position; (c) operating the second scanner to acquire a second sequence of sensor data sets at the known capture rate as the second scanner moves from the second X position to the fourth X position; (d) converting the first sequence of sensor data sets into a corresponding first scan band sequence (40a) of scanned image data; (e) converting a second sequence of sensor data sets into a corresponding second scan band sequence (40b) of scanned image data, wherein the number of scan bands in the second scan band sequence is the same as the number of scan bands in the first scan band sequence; (f) constructing a first scanned image (42a) from the first scanned band sequence; (g) constructing a second scanned image (42b) from the second scanned band sequence; (h) searching for feature points (48) in the first scanned image and the second scanned image; (i) determining which feature points found in step (h) are common feature points in the first scanned image and the second scanned image (48a); (j) calculating the pixel position difference between the corresponding positions of the common feature points in the first scanned image and the second scanned image; and (k) calculating scanner displacement by multiplying the pixel position difference calculated in step (h) by a scaling factor representing the distance traveled per scanning swath by the first scanner and the second scanner.

8. A system for tracking the position of a scanner, the system comprising: An electric motion platform (12), the electric motion platform comprising a frame (2); The scanner (14) includes a one-dimensional sensor array (60) supported by the frame; and A computer system (58) communicatively coupled to receive sensor data from the one-dimensional sensor array and to send control signals for controlling movement of the motorized motion platform, the computer system being configured to perform operations comprising the steps of: (a) controlling the motorized motion platform to sequentially translate the scanner in the X direction at a known speed across a surface (31) of a target object (30) from a first X position to a second X position, a third X position, and a fourth X position while the one-dimensional sensor array is oriented in the Y direction; (b) acquiring a continuous sensor data set at a known capture rate as the scanner translates in the X direction; (c) converting the continuous sensor data set into corresponding scan strips of scanned image data (40); (d) constructing a first scanned image (42a) from a first scanned swath sequence (40a) converted from sensor data acquired during movement of the one-dimensional sensor array from the first X position to the third X position; (e) constructing a second scanned image (42b) from a second scanned swath sequence (40b) converted from sensor data acquired during movement of the one-dimensional sensor array from the second X position to the fourth X position; (f) finding feature points (48) in the first scanned image and the second scanned image; (g) determining which feature points found in step (f) are common feature points (48a) in the first scanned image and the second scanned image; (h) calculating the pixel position difference between the corresponding positions of the common feature points in the first scanned image and the second scanned image; and (i) Calculating scanner displacement by multiplying the pixel position difference calculated in step (h) by a scaling factor representing the distance traveled by the scanner per scanning swath.

9. The system according to claim 8, further comprising: a plurality of wheels (4a-4d) rotatably coupled to the frame; a linear guide rail (8) fixedly coupled to the frame; a carriage (74) slidably coupled to the guide rail; Motor (38); a drive mechanism (76) mechanically coupling the carriage (74) to the motor (38) so that the carriage slides along the rail during operation of the motor; as well as a motion controller (28) configured to control the motor so that the one-dimensional sensor array moves relative to the frame in a direction parallel to the linear guide, The one-dimensional sensor array is fixedly connected to the carriage and oriented perpendicular to the guide rail, and the one-dimensional sensor array includes a plurality of sensors aligned with each other.

10. A system for tracking the position of a motion platform carrying a first scanner and a second scanner, the system comprising: The motion platform (12) comprises a frame (2); The first scanner (14a) and the second scanner (14b), the first scanner and the second scanner respectively comprising a first one-dimensional sensor array and a second one-dimensional sensor array (60) with respective center lines oriented parallel to each other and separated by a fixed distance; as well as A computer system (58) communicatively coupled to receive sensor data from the first one-dimensional sensor array and the second one-dimensional sensor array and configured to perform operations comprising the steps of: (a) operating the first scanner to acquire a first sequence of sensor data sets at a known capture rate as the first scanner moves from a first X position to a third X position; (b) operating the second scanner to acquire a second sequence of sensor data sets at the known capture rate as the second scanner moves from a second X position to a fourth X position, wherein the second X position is between the first X position and the third X position, and the third X position is between the second X position and the fourth X position; (c) converting the first sequence of sensor data sets into a corresponding first scan band sequence (40a) of scanned image data; (d) converting a second sequence of the sensor data sets into a corresponding second scan band sequence (40b) of scanned image data, wherein the number of scan bands in the second scan band sequence is the same as the number of scan bands in the first scan band sequence; (e) constructing a first scan image (42a) from the first scan band sequence; (f) constructing a second scanned image (42b) from the second scanned band sequence; (g) searching for feature points (48) in the first scanned image and the second scanned image; (h) determining which feature points found in step (g) are common feature points (48a) in the first scanned image and the second scanned image; (i) calculating the pixel position difference between the corresponding positions of the common feature points in the first scanned image and the second scanned image; and (j) calculating the scanner displacement by multiplying the pixel position difference calculated in step (i) by a scaling factor representing the distance traveled by the scanner per scanning swath.

11. The system according to claim 10, further comprising: a plurality of wheels (4a-4d) rotatably coupled to the frame; a linear guide rail (8) fixedly coupled to the frame; a carriage (74) slidably coupled to the guide rail; Motor (38); a drive mechanism (76) mechanically coupling the carriage (74) to the motor (38) so that the carriage slides along the rail during operation of the motor; as well as a motion controller (28) configured to control the motor so that the first one-dimensional sensor array and the second one-dimensional sensor array move relative to the frame in a direction parallel to the linear guide, The first one-dimensional sensor array and the second one-dimensional sensor array are fixedly connected to the slide and oriented perpendicular to the guide rail, and the first one-dimensional sensor array and the second one-dimensional sensor array include a plurality of sensors aligned with each other.

Citation Information

Patent Citations

  • Automated detection of fatigue cracks around fasteners using millimeter waveguide probe

    US10168287B2

  • Methods for maintaining difficult-to-access structures using unmanned aerial vehicles

    US11079760B2

  • System and method for automated inspection of large-scale part

    US7743660B2

  • Holonomic motion vehicle for travel on non-level surfaces

    US8738226B2

  • Automated ultrasonic inspection of elongated composite members using single-pass robotic system

    US9933396B2