CROSS-REFERENCE TO RELATED APPLICATIONSThis application claims priority to U.S. Provisional Patent Application No. 62/127,476, filed on Mar. 3, 2015, titled SCANNING ENVIRONMENTS AND TRACKING UNMANNED AERIAL VEHICLES, which is herein incorporated by reference in its entirety.
TECHNICAL FIELDThe present disclosure is directed generally to scanning environments and tracking unmanned aerial vehicles.
BACKGROUNDUnmanned aerial vehicles (UAVs) have become increasingly popular devices for carrying out a wide variety of tasks that would otherwise be performed with manned aircraft or satellites. Such tasks include surveillance tasks, imaging tasks, and payload delivery tasks. However, UAVs have a number of drawbacks. For example, it can be difficult to operate UAVs, particularly autonomously, in close quarters, e.g., near buildings, trees, or other objects. In particular, it can be difficult to prevent the UAVs from colliding with such objects. While techniques exist for controlling UAVs and other autonomous vehicles in complex environments, such techniques typically rely on hardware that is too heavy, too bulky, and/or requires too much power to be carried by a typical UAV without dramatically impacting the range and/or payload capacity of the UAV. Accordingly, there remains a need for techniques and associated systems that can allow UAVs to safely and accurately navigate within their working environments.
BRIEF DESCRIPTION OF THE DRAWINGSFIGS. 1A-1C are partially schematic, block diagrams illustrating an overall process for scanning an environment and tracking a UAV within the environment, in accordance with an embodiment of the present technology.
FIG. 2 is a flow diagram of a representative scanning and tracking process configured in accordance with a particular embodiment of the present technology.
FIG. 3 illustrates a representative scanner configured in accordance with an embodiment of the present technology.
FIG. 4 is a block diagram illustrating components of a representative scanner operating in a scanning mode, in accordance with a representative embodiment of the present technology.
FIG. 5 is a block diagram illustrating components of a representative scanner operating in a tracking mode, in accordance with an embodiment of the present technology.
FIGS. 6A and 6B are schematic illustrations a UAV having a coding arrangement to facilitate identifying and/or tracking the UAV in accordance with an embodiment of the present technology.
FIG. 7 illustrates an arrangement of multiple scanners positioned to scan an environment in accordance with an embodiment of the present technology.
FIG. 8 illustrates an arrangement for carrying out a scanning operation via equipment carried by a UAV in accordance with an embodiment of the present technology.
FIG. 9A schematically illustrates a conventional process for scanning an object.
FIG. 9B schematically illustrates a technique for selectively scanning features of an object in accordance with an embodiment of the present technology.
FIG. 10 is a schematic block diagram illustrating a process for identifying and scheduling features to be scanned in accordance with an embodiment of the present technology.
FIG. 11 is a flow diagram illustrating a process for planning and executing a flight path trajectory in accordance with an embodiment of the present technology.
FIG. 12 illustrates a scanner positioned in an environment in accordance with an embodiment of the present technology.
FIGS. 13A-13B illustrate isometric and plan views, respectively, of an image of the environment shown inFIG. 12,
FIG. 14 illustrates an image of another portion of the environment shown inFIG. 12.
FIGS. 15A-15C illustrate front, top, and side views of an environment that includes wind turbine, and an associated UAV flight path, in accordance with an embodiment of the present technology.
FIGS. 16A-16D illustrate a process for obtaining data from wind turbine blades while the blades are in motion, in accordance an embodiment of the present technology.
DETAILED DESCRIPTIONThe present technology is directed generally to unmanned aerial vehicles (UAVs) and more particularly, to systems and methods for scanning the environments in which unmanned aerial vehicles operate, planning a flight for the unmanned aerial vehicles through one or more of the environments, and tracking the motion of the unmanned aerial vehicles in those environments. Specific details of several embodiments of the disclosed technology are described below with reference to particular, representative configurations. In other embodiments, the disclosed technology may be practiced in accordance with UAVs and associated systems having other configurations. In still further embodiments, particular aspects of the disclosed technology may be practiced in the context of autonomous vehicles other than UAVs (e.g., autonomous cars or watercraft). Specific details describing structures or processes that are well-known and often associated with UAVs, but that may unnecessarily obscure some significant aspects of the presently disclosed technology, are not set forth in the following description for purposes of clarity. Moreover, although the following disclosure sets forth several embodiments of different aspects of the disclosed technology, several other embodiments of the technology can have configurations and/or components different than those described in this section. As such, the present technology may have other embodiments with additional elements and/or without several of the elements described below with reference toFIGS. 1A-15C.
Several embodiments of the disclosed technology may take the form of computer-executable instructions, including routines executed by a programmable computer or controller. Those skilled in the relevant art will appreciate that the technology can be practiced on computer or controller systems other than those shown and described below. The technology can be embodied in a special-purpose computer, controller, or data processor that is specifically programmed, configured or constructed to perform one or more of the computer-executable instructions described below. Accordingly, the terms “computer” and “controller” as generally used herein include a suitable data processor and can include internet appliances and hand-held devices, including palm-top computers, wearable computers, cellular or mobile phones, multi-processor systems, processor-based or programmable consumer electronics, network computers, laptop computers, mini-computers and the like. Information handled by these computers can be presented at any suitable display medium, including a liquid crystal display (LCD). As is known in the art, these computers and controllers commonly have various processors, memories (e.g., non-transitory computer-readable media), input/output devices, etc.
The present technology can also be practiced in distributed environments, where tasks or modules are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules or subroutines may be located in local and remote memory storage devices. Aspects of the technology described below may be stored or distributed on computer-readable media, including magnetic or optically readable or removable computer discs, as well as distributed electronically over networks. Data structures and transmissions of data particular to aspects of the technology are also encompassed within the scope of the present technology.
1. OverviewFIGS. 1A-1C schematically identify several functions that can be performed as part of the technology disclosed in the present application.FIG. 1A illustrates a process for scanning anenvironment190 in which a UAV is expected to operate. Theenvironment190 can be indoors and/or outdoors, and include one ormore objects191, for example, a building. Asystem100 in accordance with an embodiment of the present technology includes ascanner110 that is used to scan theenvironment190 and, in particular, the object orobjects191, to produce a computer-basedmodel136 of theenvironment190. Thescanner110 can be controlled by acontroller130. Thesame controller130 can be used to perform a variety of additional functions, also described herein, in accordance with particular embodiments of the present technology. In other embodiments, these functions may be divided over multiple controllers. Multiple controllers may be referred to herein as “controllers,” and one or more controllers can be included in a “control system,” As discussed above, thecontroller130 can have any of a variety of suitable configurations, e.g., a laptop computer configuration.
As shown schematically inFIG. 1B, thecontroller130 can include aprocessor131, a memory132 (e.g., non-transitory computer-readable media), and one or more input/output devices133. The input/output devices133 can include an input device134 (e.g., a keyboard) and an output device135 (e.g., a screen displaying a graphical user interface). As shown inFIG. 1B, theoutput device135 is displaying a computer-basedobject image136 of theenvironment190, including theobject191 shown inFIG. 1A. Theoutput device135 also displays a proposedflight path image137, representing a proposed flight path for a UAV in the region of theobject191. Accordingly, thecontroller130 can be used to plan the UAV's flight path, e.g., by identifying obstacles in the flight path, alerting the operator to such obstacles, and/or suggesting or automatically implementing alternate flight paths.
A further aspect of the system is illustrated inFIG. 1C. Thecontroller130 and thescanner110, initially described above with reference toFIG. 1A, can be used to track the motion of aUAV150 as it operates in theenvironment190 and around theobject191. In particular, thescanner110 can be used in this context to identify the actual location of theUAV150 relative to the computer-based model of theobject191, and can communicate this information to theUAV150 via a communication device138 (e.g., an antenna). Accordingly, thesystem100 can be used to provide real-time data regarding the UAV's position and, by comparing that data to the model described above with reference toFIGS. 1A and 1B, can provide positional feedback to the UAV. The feedback can be used to adjust the UAV'sactual flight path151, as necessary, in comparison to the plannedflight path137 to allow the UAV to carry out its mission with a high degree of precision and/or avoid collisions.
Thus, thesystem100 can be used to (a) map the environment in which the UAV operates, (b) facilitate defining a flight plan for the UAV in the environment, and (c) provide feedback to the UAV if it deviates from the flight plan. Further details of each of these functions are described below with reference toFIGS. 2-15C.
2. Scanning and TrackingFIG. 2 is a flow diagram illustrating a representative process for scanning an environment and tracking a UAV within the environment, in accordance with an embodiment of the present technology. The overall process can include the subprocesses of scanning, planning a flight path, and tracking the UAV. Depending on the embodiment, these subprocesses can be performed sequentially as part of a single overall process, or any of the subprocesses can be performed individually. Theprocess200 can include scanning the local environment with a ground or other off-board scanner (block201). In a representative embodiment, the scanner is located on the ground, e.g., supported by a tripod or another suitable structure. In other embodiments, the scanner can have other locations, e.g., it can be carried aloft by a balloon or aircraft.
Inblock202, the process includes planning a flight path within the environment, where the flight path may be manually input by a human operator or calculated automatically based on various constraints. Indecision block203, the process includes determining whether the planned path is achievable, for example, determining if the path is free of obstacles. If not, the process returns to block202 for an update to the planned flight path. In various embodiments, the process can exclude detected obstacles when computing a revised path. If the path is achievable (e.g., is free of obstacles given the proximity constraints and dynamics of the UAV), the process proceeds to block204, which begins the tracking portion of the process. As part of this process, the system acquires a track on the UAV as it is in use, e.g., as it takes off and flies. When the tracking information is acquired (e.g., when the location of the UAV is acquired with a camera and/or rangefinder), this location information can be transmitted to thecontroller130 that controls the tracking device in pan and tilt axes, continuously keeping the UAV within the field of view. Thecontroller130 launches the UAV (block205) and directs the UAV to the beginning of its planned flight path (block206). Inblock207, the UAV follows the flight path to its conclusion, and atblock208 lands at the end of the mission, During the course of the flight, the information received via tracking the UAV (e.g., the coordinates of the UAV) can be transmitted to thecontroller130 to update the trajectory of the UAV. For example, if the UAV begins deviating from the pre-defined flight plan, the information can be used to guide (e.g., automatically) the UAV back to the planned route. Accordingly, portions of the controller can be located on-board the UAV, off-board the UAV, or both, depending on the manner in which UAV control and feedback are implemented.
As the UAV flies (blocks205-208), the process includes checking, e.g., continually checking, to determine whether the UAV is successfully being tracked (block209). As long as the UAV is being successfully tracked, the process continues as indicated. If the system loses track of the UAV, then inblock210, the process includes taking actions to facilitate re-acquiring the track on the UAV. Such steps can include directing the UAV to hover, land, and/or fly toward the scanner, and/or performing a sweeping (and/or other) motion with the scanner to locate the UAV, and/or other suitable actions.
As part of the process of flying the UAV, the operator can manipulate the progress of the UAV along the flight path. For example, the operator can use controls similar to VCR controls to fast-forward, reverse, or pause the progress of the UAV along the flight path. Such controls, of course, will be dependent on the UAV configuration, e.g., the UAV must have a hover capability in order for it to be paused. A similar approach can be used to preview the flight of the UAV along a proposed flight path, as part of the planning process for the flight path, which is described further below with reference toFIGS. 11-15C.
FIG. 3 is an isometric illustration of arepresentative scanner110 having features configured in accordance with an embodiment of the present technology. Thescanner110 can include asupport111 that carries acamera117 and arangefinder118. Thecamera117 can be configured to produce two-dimensional optical images of the environment around thescanner110 by receiving radiation from the environment in the visible spectrum, infrared range, and/or other suitable frequency ranges. Therangefinder118 can include anemitter119 and areceiver120. Theemitter119 emits a signal that reflects from an object in the environment and is received by thereceiver120. The distance from thescanner110 to the object is then determined or estimated by using any of a variety of suitable techniques, including estimating the amount of time required for the signal to transit from theemitter119 to the object and back to the receiver120 (“time of flight”). Accordingly, thecamera117 can identify and transmit two-dimensional information about the environment, and therangefinder118 can add the third dimension.
Thecamera117 and therangefinder118 can be carried by atilt stage114 and can be moved together as a unit to scan the environment around thescanner110. Thetilt stage114 carries atilt motor115 that rotates thecamera117 and therangefinder118, as a unit, about a first axis (e.g., a horizontal axis H). Acorresponding tilt encoder116 tracks the motion of thecamera117 and therangefinder118 relative to the horizontal axis H.A pan motor112 carried by thesupport111 rotates the tilt stage114 (including thecamera117 and the rangefinder118) as a unit about a second axis (e.g., a vertical axis V). Apan encoder113 tracks the rotational position of thecamera117 and therangefinder118 around the vertical axis V. Accordingly, thepan motor112 and thetilt motor115 can rotate to thecamera117 and therangefinder118 through arcs sufficient to cover a roughly hemispherical volume around thescanner110.
In a particular embodiment, therangefinder118 can include a lidar detector, which emits and receives laser light (e.g., IR laser light). Suitable lidar detectors have range capabilities in the hundreds of meters, depending on factors that include the size of theemitter119 and receiver ordetector120, and the ranging technology used. As discussed above the ranging technology can include a time of flight technique in one embodiment. In other embodiments, other techniques, such as SETS techniques, can produce suitable results without requiring direct time of flight calculations, at lower cost and lower (but still suitable) resolution. The scans can be conducted in a methodical sweep pattern, or a coarse scan followed by a detailed scan, or an adaptive scan (described further below with reference toFIGS. 9A-10), or via another suitable technique. In other embodiments, therangefinder118 can emit signals other than a laser signal, suitable for detecting the distance between thescanner110 and the objects around it. For example, a radar signal can be used for tracking, though it is expected that a laser signal will out-perform a radar signal for scanning. In another embodiment, the laser scanner can be replaced by multiple high-resolution cameras or a structured light arrangement to perform the scanning process.
FIG. 4 is a schematic block diagram illustrating thesystem100 operating in a scanning mode, in accordance with an embodiment of the present technology. As shown inFIG. 4, thecamera117 records images of the surroundingenvironment190, while therangefinder118 records the distances to the objects within theenvironment190. Thecamera117 accordingly generates RGB data (or other optical data)123 and therangefinder118 generates depth ordistance data124. TheRGB data123 is transmitted to theprocessor131. Thedepth data124 is converted from spherical coordinates to Cartesian coordinates at the processor usingconventional converter logic125 that operates on information from thetilt encoder116 and thepan encoder113. This transformed coordinate information is used to generate a point cloud from the data captured by thecamera117 and therangefinder118 using the pointcloud builder logic127.
Thesystem100 can also include a motor control unit that provides instructions to thetilt motor115 and thepan motor112, and is itself under the control of ascan controller430. Thescan controller430 can include scanregion logic122, which is described in further detail below with reference toFIGS. 9A-10. Thescan controller430 can be a stand-alone controller, or it can be integrated with one or more other controllers, e.g., thecontroller130 described above with reference toFIGS. 1A-1C.
Apower supply126 provides power to the various components of thesystem100. The input/output device133 receives information from an operator and provides output information to the operator. The result of the process performed during the scanning mode shown inFIG. 4 is a computer-based model (e.g., a point cloud) of theenvironment190.
In particular embodiments, the data obtained during the scanning operation and used to build the three-dimensional model can be supplemented with additional data. For example, the model can be augmented or enhanced with photographs or other sensor readings taken by thescanner camera117 or by a UAV that flies through the scanned environment. This operation can be conducted in real time in some embodiments, and offline in others. The enhancement can include adding the color information contained in the camera image to the points in the point cloud to produce a more realistic, colored model displaying the spectral representation at each point.
The data obtained from a particular scan can be stored and used later by the same scanner (e.g., in a track mode), or by a different scanner, also in the track mode, or by a UAV operating independently of an offboard tracking device. In a particular embodiment, when a tracker is positioned in a particular area, it can automatically access prior scans made of that environment, and those scans can be downloaded to the scanner as it operates in the track mode. Furthermore, a particular scan may be used at multiple locations, not necessarily the same as the location at which the initial scan was made. For example, a scan made of a particular wind turbine, power line tower, or other structure can be used to survey or inspect other structures that have an identical configuration, for example, wind turbines of the same make and model. In such cases, the scanned information can be calibrated to the particular location of an individual wind turbine, which may be different for each wind turbine.
FIG. 5 illustrates thesystem100 operating in a tracking mode. In this mode, thecamera117 identifies a UAV150 (e.g. by tracking a fiducial such as an LED carried by the UAV, by matching airframe characteristics as trained by a machine learning algorithm, or by other means) and generates two-dimensional tracking data123. Simultaneously, therangefinder118 generatesrange data561 corresponding to the distance between thescanner110 and theUAV150, as the UAV flies. This information is provided to theprocessor131 which generates an estimate of the position of theUAV150 usingposition estimator logic562. The position information can be transmitted to the I/O device133, which can transmit the information via aninformation signal563 to theUAV150. With this information, theUAV150 can modify, adjust, and/or compensate for variations in the flight path it executes. The position information is also transmitted to theMotor Control Unit121 which actuates thepan motor112 andtilt motor115 to continuously keep theUAV150 within the field of view of thecamera117 and in front of therangefinder118 as the UAV flies.
In another embodiment, the system can track theUAV150 by combining corner cube interferometry with a laser-based position sensing device to generate the position estimate for theUAV150. The position information can be transmitted to the I/O device133 andUAV150 so that it can modify, adjust, and/or compensate for variations in its flight path.
In particular embodiments, the system can, in addition to transmitting information to theUAV150, receive information from theUAV150. In a particular aspect of this embodiment, the information received from theUAV150 can correspond to an identity of theUAV150 and/or an orientation of theUAV150.FIGS. 6A and 6B illustrate arepresentative UAV650 having abody652 and one or more rotors653 (four are shown inFIGS. 6A and 6B) for propulsion. TheUAV650 can also include a physical encoding schema, for example aring654 or lighting system that in turn includes one or more coding patterns655 (FIG. 6B). Thecoding patterns655 can be used to identify the type of UAV detected by the scanner110 (FIG. 5) during its tracking process, for example, to confirm that the proper UAV is being tracked. This procedure can also be used to identify new or additional UAVs that may enter the environment in which the tracking process is being conducted. Accordingly, thecoding patterns655 can perform the function of an identifying fiducial.
In addition, thecoding patterns655 can have different characteristics at different circumferential positions around thecoding ring654. Accordingly, when thesystem100 detects thecoding patterns655, it can detect the orientation of theUAV650. This information can in turn be used to help control, guide, and/or direct theUAV650. To obtain this information, the camera117 (or a separate, dedicated camera) can obtain an image of the coding patterns, which is then processed (e.g., in the manner of a bar coder). In another embodiment, thesystem100 can issue an inquiry signal664 (e.g., in addition to the information signal563) that impinges on and is reflected by thecoding pattern655. The reflected signal is then processed to determine the orientation and/or identity of theUAV650. In both of the foregoing embodiments, thecoding pattern655 is passive. In other embodiments, thecoding pattern655 can be actively transmitted by theUAV650, e.g., via a radio emission, an LED pattern or flash sequence, and/or other suitable arrangements.
An advantage of the orientation function described above is that it may be more accurate than the orientation function provided by an on-board inertial navigation system. Another advantage is that on-board inertial navigation systems typically include a magnetometer, which can be affected by nearby structures, e.g., magnetic or metal structures. The off-board scanner can provide orientation information that is unaffected by such structures, allowing the UAV to operate in environments it might not otherwise be able to.
In at least some instances, a single scanner may be insufficient to provide all the data required for the UAV to carry out its tasks. For example, as shown inFIG. 7, atarget object791 may include a building having target features that are not accessible to a single scanner at a single location. In one embodiment, thescanner110 is moved among multiple locations to provide sufficient data for the desired point cloud. At each location, thescanner110 obtains two-dimensional image data and depth data, as discussed above, and the multiple data sets can be “stitched” together to form a composite computer model. In other embodiments,multiple scanners110 can be used to both scan the features of the building, and provide tracking for theUAV150 as it flies its mission. Thescanners110 can communicate with each other, as indicated by arrows M so as to hand off tracking responsibility from one scanner to the other as theUAV150 conducts its mission.
In yet another embodiment, illustrated inFIG. 8, the scanning function can be performed by aUAV850 itself. In such an embodiment, the scanning equipment is made compact and lightweight enough to be carried by theUAV850. In some embodiments, the scanning equipment may be compromised in some manner to reduce its weight. For example, the scanning equipment may have a coarser resolution, reduced range, reduced field of view and/or other weight-saving features. However, with the system on board, theUAV850 can assume the positions identified by letters A, B, C and D to map the features of thebuilding791. After mapping the features, theUAV850 can carry out its mission, as indicated by letter E.
In the foregoing embodiment, the tracking function described above with reference toFIG. 5 may be performed by comparing images taken by theUAV850 while it is in flight, with point cloud information produced by scans taken by the UAV while it is on the ground at positions A-D. In another embodiment, the tracking operation is carried out by twoUAVs850, each equipped with a scanner. Accordingly, oneUAV850 can fly a mission (e.g., an inspection mission) and thesecond UAV850 can track thefirst UAV850. The tracking function can be performed from any of the scanning positions A-D described above, or (with accommodations for an offset) from a different location.
The system can perform still further functions directed to tracking the UAVs. For example, in the track mode, the system can scan the environment to determine if a UAV is in the area. Upon detecting the UAV, the tracker can use any of the arrangements described above to identify the UAV and, optionally, its orientation. The tracker can also communicate with UAVs that are out of visual range or beyond line of sight (BLOS). Such UAVs can relay their position and trajectory to the tracker (for example, via GPS and radio communication) and the tracker can accordingly orient itself toward the position where the UAV is expected to come within range. Once the UAV comes within range, the tracker can carry out the tracking operations described above. In other embodiments, the UAV can be tracked using ADS-B in addition to, or in lieu of GPS. Still further, the system can scan a pre-scanned environment to check for new objects that may have entered the environment after the initial scan was completed. Such new objects can include a UAV, or other objects that may represent obstacles to a UAV. If such objects are detected, the three-dimensional model of the environment can be updated to reflect the existence of those objects.
As noted above with reference toFIG. 7, some arrangements can include multiple scanners for performing scanning and/or tracking functions. In such cases, these scanners can communicate with each other to provide continuity within the three-dimensional models that they create, and to transmit information related to UAVs in their individual environments. For example, the scanners can cooperate to give control priority to the scanner that is closest to the UAV, or that is projected to have the longest contact with the UAV before a handoff. In addition, whether an operation includes one scanner or more than one scanner the system can schedule on-board photo/recording/sensing functions. For example, it may be advantageous to direct the UAV to perform a sensing function from a precise location. When the scanner is performing in the tracking mode, it can alert the UAV when the UAV reaches the precise location, in real time, to ensure that the sensing function is performed at the proper location. This technique can also be used to capture an image of the UAV when it is in a particular location, using the ground-based camera portion of the scanner. In this manner, the UAV can capture an image at a particular location, and the scanner can capture an image of the UAV at that location. Both techniques can be used to improve the reproducibility of data, e.g., if the same image is to be obtained at different times. The UAV position information from the tracker can be used to reduce computation and improve the fit of photos to the cloud of points. For example, the downstream analysis of the data can be simpler and/or more accurate when the data are tagged with the precise location from which the data were taken.
3. Adaptive ScanningFIG. 9A illustrates anobject991 being scanned by ascanner110 in accordance with a conventional scanning technique. Using this technique, thescanner110 methodically and sequentially pans and tilts to producescan paths994a(shown in dotted lines) that cover theobject991. This process can be time-consuming, particularly when only certain features of theobject991 may be of real interest to the end user. For example, the end user may be more interested in certain target features992. The target features992 can include straight lines that formtarget regions993, for example, the roof and windows of the building.
FIG. 9B illustrates thescanner110 carrying out an adaptive scan routine in accordance with an embodiment of the present technology. In this embodiment, thescan paths994bexecuted by thescanner110 are directed specifically to the target features992 and therefore thetarget regions993. As a result, thescanner110 spends less time unnecessarily scanning features that are not of interest. Accordingly, the process of scanning theobject991 can take significantly less time than it does using conventional techniques, and can use significantly fewer resources.
FIG. 10 is a block diagram illustrating a process for carrying out the scanning operation shown inFIG. 9B. Anoverall process1000 in accordance with an embodiment of the present disclosure includes animage processing block1001 that in turn includes animage acquisition block1002. Atblock1002, the process includes acquiring image data, e.g., from thecamera117. Atblock1003, the image data are analyzed, for example to identify particular features, and more particularly, features that are likely to be of interest, e.g., by an end user. Such features can include lines, corners, and/or other target shapes, or features that may be identified by a user.
Atblock1004, the target shapes are grouped into regions, which may correspond to doors, windows, and/or other shapes or areas.Block1005 and1006 include classifying each of the target regions, for example, by selecting regions that are of interest for targeted scanning by the rangefinder118 (block1009). This process can be performed manually, automatically, or via a combination of manual and automated techniques. For example, the process can include using computer-based shape recognition routines to identify target features (or target regions) and a user can approve or reject the automatically generated selections. In other embodiments, the user can assume full control of the selection process (fully manual) or cede control (fully automated). In particular embodiments, algorithms such as Hough transforms are used to identify features and/or regions of interest. In other embodiments, machine learning and/or neural network techniques can be used to identify features and/or regions of interest, thus reducing the required user input. If the features and/or regions are of interest, ascheduler1007 collects the information for each region and identifies an optimal (or at least expedient) scan path (block1008). Atblock1009, the scan controller430 (FIG. 4) directs thecamera117 and the associated rangefinder118 (FIG. 4) along the scan paths identified atblock1008, The output (block1010) is a three-dimensional model, which the UAV uses to navigate and perform its mission.
4. Flight Path PlanningFIGS. 11-15C illustrate representative processes for forming or defining flight paths in accordance with which the UAV conducts its mission in the environment scanned by the scanner, as described above. Arepresentative process1100 shown inFIG. 11 includes scanning the environment or importing a three-dimensional model of the environment (block1101). Atblock1102, the process includes constructing a flight path within the environment. In a particular embodiment, the flight path is constructed usinguser input1103. For example, the user can view the three-dimensional model on a computer screen and, via a mouse, keys, a joystick, and/or other input devices, construct the flight path. Because the flight path is three-dimensional, the system can allow the user to rotate the image in any manner (e.g., tumble the image) so as to view the environment from multiple perspectives and provide a suitable three-dimensional flight path.
In another embodiment, the flight path can be automatically generated, as indicated byblock1104. In this case, the process may requireadditional inputs1105. Such inputs can include a general characterization of the desired flight path, for example, an identification of the regions of interest and the distance away from the regions of interest that the UAV is to fly. It may be of particular importance to maintain a set distance from an object, (a) to prevent collisions with the object, and/or (b) to keep the object within the target range of a sensor aboard the UAV. Additionally, the information can include the speed of the UAV, the flight dynamics and capabilities of the UAV, and any restrictions or limitations associated with the ability of the UAV to point its camera or other sensor toward the target region. Based on this information, and an input from the user (e.g., the user can click on a feature or object, and select an offset distance), the system can automatically generate a flight path. The flight path can be a single-pass path or a multi-pass path (e.g., a “lawnmower” pattern) depending on factors including the field of view of the UAV-based sensor, and the desired resolution of the object it senses.
Block1106 includes calculating a predicted trajectory based on the UAV path determined atblock1102, taking into account the speed of the UAV, the flight dynamics and capabilities of the UAV, and other restrictions as described above.Block1107 includes checking to determine if the path is free of collisions, for example, collisions with the objects represented in the model imported atblock1101. If the path does include collisions (or greater than a threshold likelihood of collisions), the process returns to block1102 for adjustments to the flight path. As an example, the process can prevent areas of the path that are causing the collisions from being included in a subsequent construction of a suitable path. If not, then the flight path can be initiated and executed, as indicated atblock1108.
FIG. 12 illustrates thescanner110 in arepresentative environment1290 that includes first objects (e.g.,statues1291a) and second objects (e.g.,buildings1291b).FIG. 13A illustrates the computer-based model of the environment, including thestatues1291aand thebuildings1291b, based on data obtained from thescanner110.FIG. 13A also illustrates a proposedflight path1337 that may be constructed by a user viewing the pointcloud of theenvironment1336.FIG. 13B is a plan view (top-down) of thepointcloud environment1336 shown inFIG. 13A. The user can toggle between preset views (e.g., plan view, side view, front view, etc.), or can move gradually and incrementally at any pace from one view to another by tumbling around thepointcloud environment1336.
FIG. 14 illustrates one of thebuildings1291bshown inFIGS. 13A and 13B along with the proposedflight path1337. The proposedflight path1337 includes an interferingportion1337awhere the UAV would collide with, or come too close to, thebuilding1291b. Accordingly; the user is alerted to the interference, for example, by displaying the interferingportion1337aof the flight path in a different color than the non-interfering portion. In other embodiments, the system can use other alerting techniques (e.g.; flashing lights, and/or an audible signal). Additionally, the system can prevent the user from flying the mission until the interfering portion is removed, e.g. by modifying the flight path.
FIGS. 15A, 15B, and 15C are front, top, and side views of anobject1591 that includes awind turbine1591.FIGS. 15A-C also illustrate aflight path1551 along which aUAV150 flies to examine thewind turbine1591, and a (schematic) field ofview1593 for the ground-based scanner. The three-view illustration is suitable for indicating to the user that no collisions or likely collisions exist for theUAV150. As discussed above, the image may also be tumbled or otherwise rotated to provide this information to the user. In any of the foregoing embodiments, the data collected by the scanner can be used to aid the UAV in performing at least two functions. First, the data can be used to aid the UAV in carrying out the substance of its mission. For example, as shown inFIGS. 15A-C, the mission may include inspecting the blades of a wind turbine. Accordingly, the image data can provide an accurate indication of the location of the blades and/or other areas of interest that the UAV may focus on as part of its mission. Second, the data can aid the UAV in avoiding obstacles as it carries out its mission. For example, the image data can allow the UAV to avoid striking thepylon1592 that carries the wind turbine blades.
In the embodiment shown inFIGS. 15A-15C, thewind turbine1591 is stopped while theUAV150 performs its inspection. In another embodiment, theUAV150 can perform the inspection while the turbine blades are spinning, as illustrated in a representative embodiment shown inFIGS. 16A-16D.
Beginning withFIG. 16A, thewind turbine1591 includes thepylon1592 described above, which carries threeblades1595. When theblades1595 are in motion, they sweep out a disk D. Eachblade1595 can include multiple regions extending inwardly from the blade tips. Two representative regions are illustrated inFIGS. 16A-16D as afirst region1596aand asecond region1596b. In the embodiment shown inFIG. 16A, theUAV150 moves to a first position P1 located toward the outer periphery of the disk D, so as to be aligned with thefirst regions1596aof eachblade1595 as the blades pass by.
Referring now toFIG. 16B, thefirst region1596aof one of theblades1595 has rotated into the field ofview1597 of a sensor carried by theUAV150. With thefirst region1596ain the field ofview1597, as determined by the UAV and/or the ground-based scanner/tracker, the sensor is activated. For example, when the sensor includes a camera, the camera is activated to take an image of thefirst region1596a. TheUAV150 can remain in the first position P1 and, as thefirst region1596aof eachsuccessive blade1595 passes into the field ofview1597, theUAV150 can activate the sensor to take an image or collect other data. When thefirst regions1596aof eachblade1595 have been imaged or otherwise sensed, theUAV150 can move to a second position P2, as shown inFIG. 16C. From the second position P2, theUAV150 can image or otherwise sense thesecond regions1596bof eachblade1595, as shown inFIG. 16D. The foregoing process can be repeated for additional regions of interest, e.g., regions located inwardly from thesecond region1596btoward thehub1599 from which theblades1595 extend. An advantage of the foregoing approach is that thewind turbine1591 need not be halted while theUAV150 obtains diagnostic information, including but not limited to image data of theblades1595. This in turn can increase the run time of thewind turbine1591 without compromising on the need for obtaining periodic diagnostic data.
One feature of at least some of the foregoing embodiments is that the system can include a combination of a camera (or other two-dimensional imaging device) and a laser scanner (or other rangefinder) to map out an environment in which a UAV is expected to fly. One advantage of this arrangement is that it is relatively inexpensive when compared to traditional surveying laser scanners, or spinning lidar devices. Another advantage of the foregoing arrangement is that it provides capabilities different than those of existing systems. For example, existing surveying rangefinders operate at about 0.5-1 Hz and provide resolution at a millimeter or sub-millimeter level. Embodiments of the present system operate at rates of 50 Hz-100 Hz, which (unlike a 1 Hz rate) are sufficient to keep pace with the flight speeds and offset distances of typical UAVs. The resolution of embodiments of the present system can be reduced to the centimeter level, which is sufficient for typical UAV tasks, and reduces the cost of the system.
Yet another expected advantage of embodiments of the disclosed systems is that they can be located off-board the UAV and therefore do not require the UAV to provide payload capacity and processing power for the scanning and mapping equipment. Instead, the payload capacity can be reserved for mission-performance equipment, and the power can be conserved for conducting the UAV's mission. This feature can be particularly important for UAVs that have limited battery capacity. Still another advantage is that the combined scanner and rangefinder arrangement is compact and is therefore more portable than other mapping equipment, for example, equipment that includes an array of infrared cameras.
Another feature of at least some of the foregoing embodiments is that the scanner can perform a tracking function, in addition to a scanning function. An advantage of this feature is that the UAV can be told what its position is from an off-board source on roughly the same time scale at which it is flying. In particular, the UAV can receive updates multiple times per second, and at a rate that allows it to change course if necessary, for example, to avoid obstacles. Another advantage of this feature is that the UAV's position can be continually compared to a pre-defined flight path that has been defined using an accurate, three-dimensional model of the local environment. Accordingly, the likelihood for the UAV to get off track is reduced, and if the UAV does get off track, the system can redirect the UAV with a high degree of accuracy.
Yet another feature of at least some of the foregoing embodiments is that the process for planning a flight can be automated, semi-automated, and/or more visually interactive than conventional waypoint planning arrangements. An advantage of this arrangement is that it can speed up the process for flightpath planning, particularly, in cluttered local environments. Another advantage is that the flight path can be more accurate, which again has particular utility in GPS-denied or crowded areas where GPS is either unavailable or insufficient to provide the level of detail required to navigate through such areas. Yet another advantage is that the interface can be intuitive. This is so for at least the reason that the objects presented at the interface are visually representative of the objects as they actually appear. A building looks like a building, a tree looks like a tree, etc. Still another advantage is that the interface can better simulate (via rotation or tumbling) the actual three-dimensional environment, and the user can appreciate the three-dimensional nature of the flight environment by rotating the image so as to see obstacles and targets of interest from multiple angles. This is unlike typical flight planning arrangements in which the user has to imagine the height of obstacles. Still another advantage is that at least some aspects of the flight planning process can be automated. For example, the user can input a representative flight path, which can be automatically evaluated for collision problems. The flight path can also automatically be adjusted to provide a constant offset from a particular object, for example, a wind turbine blade that is being inspected by the UAV flying along the flight path.
Still another feature of at least some of the foregoing embodiments is that the process for obtaining the data used to build the three-dimensional model can be adapted to account for the environment that is scanned. In particular, the scanning process can be focused on areas of interest, rather than the environment as a whole. An advantage of this approach is that the process for scanning the environment can be faster because areas that are similar (e.g., large flat surfaces) and areas that are physically unscannable (e.g.; the sky) may be avoided and therefore do not take time to map, Another advantage is that the limited number of data points available for a particular model can be focused on the areas of interest so that those areas are modeled with greater resolution than areas that are of less importance. In addition, the overall number of points required to define a particular model can be reduced. Still further, the demands on (and therefore the cost of) the scanning motors are reduced when fewer data points are taken. This approach can reduce the cost/complexity of the overall system.
5. Further EmbodimentsIn particular embodiments, thescanner110 remains in the same position for both the scanning operation and the tracking operation. In other embodiments, the scanner may be moved between these two operations. In such cases, the process for tracking the UAV can include accounting for an offset between the position at which the scanner conducted the scan, and the position from which the scanner tracks the UAV. The offset can be determined using GPS and/or other suitable techniques. A particular scan may be tagged with its GPS coordinates so that it can be used for multiple missions, each of which may have the tracker at a different location. The GPS coordinates from which the initial scan is made can provide a constant reference point suitable for multiple uses. Alternatively, a local coordinate system can be used in lieu of GPS.
In particular embodiments, the fiducial carried by the UAV can take the form of a coding pattern, as described above. In other embodiments, the fiducial can include other arrangements, for example, an LED or LED pattern. In still further embodiments, when in the track mode, the scanner can identify the UAV by matching certain characteristics of the UAV (e.g., its silhouette) with a library of pre-identified silhouettes as trained by machine learning algorithms, e.g. a deep neural network.
From the foregoing, it will be appreciated that specific embodiments of the present technology have been described herein for purposes of illustration, but that various modifications may be made without deviating from the technology. For example, while certain embodiments have been described in the context of UAVs, in other embodiments, similar techniques may be used for other types of robots, e.g., water-based robots and in particular, submersible robots, which can confront issues associated with three-dimensional environments similar to those confronted by air vehicles. In particular embodiments described above, the tracking mode includes tracking coordinates. In other embodiments, the tracking mode can include tracking the direction of travel, the UAV speed, and/or other variables, in addition to or in lieu of tracking the vehicle coordinates. The tracking process and the associated scanning process can be performed outdoors, as shown in several of the Figures above, and can also be performed indoors. The system can cycle or oscillate between the scanning mode and the tracking mode, even when used in the same environment, for example, to detect changes in the environment. Such changes can then be imported into the point cloud or other computer-based image file so as to update the associated three-dimensional model. Particular embodiments of the system were described above in the context of a quad-rotor UAV, and in other embodiments, the UAV can have other quad-rotor or non-quad-rotor configurations.
The scanner can have different arrangements in different embodiments. For example, in a representative embodiment described above, the camera and rangefinder each have independent optical paths to the environment and the UAV. In another embodiment, a prism or other beam splitter provides identical optical information to both the camera and the rangefinder. This approach can improve the correspondence between information provided by the camera and information provided by the rangefinder. In other embodiments, the scanner can include devices other than a single camera and a single rangefinder, e.g., multiple cameras (having different fields of view, wavelength sensitivities, and/or other functional parameters) and/or multiple rangefinders (having different sensitivities over different distances, and/or other functional parameters).
Certain aspects of the technology described in the context of a particular embodiment may be combined or eliminated in other embodiments. For example, in particular embodiments, the flight path planning algorithm described above can be used independently of the scanning and tracking processes described above. In another embodiment, the adaptive scanning techniques described above can be used independently of the tracking and/or flight planning processes described above. Further, while advantages associated with certain embodiments of the technology have been described in the context of those embodiments, other embodiments may also exhibit such advantages, and not all embodiments need necessarily exhibit such advantages to fall within the scope of the present technology. Accordingly, the present disclosure and associated technology can encompass other embodiments not expressly shown or described herein.
The present application is related to the following co-pending, concurrently-filed applications, each of which is herein incorporated by reference in its entirety: U.S. patent application Ser. No. ______ (Attorney Docket No. 115577-8002.US00), titled SCANNING ENVIRONMENTS AND TRACKING UNMANNED AERIAL VEHICLES, U.S. patent application Ser. No. ______ (Attorney Docket No. 115577-8003.US00), titled SCANNING ENVIRONMENTS AND TRACKING UNMANNED AERIAL VEHICLES, and PCT application Ser. No. ______, (Attorney Docket No. 115577-8001.W000), titled SCANNING ENVIRONMENTS AND TRACKING UNMANNED AERIAL VEHICLES. To the extent any materials incorporated herein by reference conflict with the present disclosure, the present disclosure controls.