System and method for generating a flight path for navigating an aircraft - Patents.com
The system uses sensor data to adjust flight paths and employs various protocols for obstacle avoidance, addressing stability and comfort issues in automated takeoff and landing of hovering aircraft.
Patent Information
- Application Number
- JP2020126893
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-07-29
- Filing Date
- 2020-07-27
- Publication Date
- 2025-01-10
- Estimated Expiration
- 2040-07-27
AI Technical Summary
Existing systems for automated flight path planning in aircraft, particularly for hovering and vertical takeoff and landing aircraft, struggle to maintain stability, comfort, and consistency in navigating through obstacles during takeoff and landing.
A system and method that uses sensors to scan for obstacles, adjusts flight paths by altering takeoff waypoints to avoid obstacles, and employs different flight path generation protocols (forced approach and RRT) based on flight conditions, ensuring stability and comfort.
Enables reliable, comfortable, and efficient autonomous takeoff and landing by dynamically adjusting flight paths to navigate around obstacles, maintaining stability and reducing computational constraints.
Smart Images

Figure 0007611659000001 
Figure 0007611659000002 
Figure 0007611659000003
Abstract
Description
[Technical field]
[0001] background The present disclosure relates generally to aircraft operation, and more particularly to systems and methods for generating flight paths for navigating an aircraft. [Background technology]
[0002] Aircraft that can hover in place, such as helicopters or vertical and / or short take-off and landing (V / STOL) aircraft, may approach take-off and landing differently than aircraft that use runways. In particular, such aircraft are not bound to a path associated with a runway and may hover and rotate before taking off or landing. This allows these aircraft to take off and / or land in restrictive environments having multiple obstacles.
[0003] Manned flight with aircraft capable of hovering in place relies on the pilot's experience and intuition, and automating such flight presents challenges, especially in takeoff and landing situations. For example, the system is expected to avoid obstacles while maintaining aircraft stability and a smooth flight path to protect the comfort of the crew, and to do so in different flight situations. Existing systems and methods for automated flight path planning appear to struggle to overcome these needs in terms of suitability, comfort, and consistency.
[0004] What is needed is a system for automatically generating flight paths for navigating an aircraft, particularly during takeoff and landing situations. Summary of the Invention
[0005] In one embodiment, a method of generating a flight path for navigating an aircraft is described. The method includes hovering the aircraft at a predetermined hover point corresponding to a first takeoff waypoint of a first trajectory of the aircraft. The method includes scanning at least a portion of a first flight path of the first trajectory with one or more sensors associated with the aircraft. The method includes determining, using sensor data obtained by the one or more sensors, that an obstacle obstructs the first flight path of the first trajectory, where the first flight path begins at the first takeoff waypoint. The method includes, in response to determining that an obstacle is obstructing the first flight path, using the sensor data to determine a second takeoff waypoint including assigning the first flight path to begin at the second takeoff waypoint, and modifying the first flight path of the first trajectory in accordance with the second takeoff waypoint by translating the first flight path to align with the second takeoff waypoint and rotating the first flight path to avoid the obstacle obstructing the first flight path, thereby forming a second flight path of the second trajectory. The method includes causing the aircraft to follow the second flight path of the second trajectory from the second takeoff waypoint.
[0006] In another embodiment, a system for generating a flight path for navigating an aircraft is described. The system includes an aircraft. The aircraft includes one or more sensors, a processor, and a computing device having a memory storing instructions executable by the processor to perform functions. The instructions are executable by the processor to hover the aircraft at a predetermined hover point, the predetermined hover point corresponding to a first takeoff waypoint of a first trajectory of the aircraft. The instructions are executable by the processor to scan at least a portion of the first flight path of the first trajectory with one or more sensors associated with the aircraft. The instructions are executable by the processor to determine, using sensor data obtained by the one or more sensors, that an obstacle obstructs the first flight path of the first trajectory, where the first flight path begins at the first takeoff waypoint. The instructions are executable by the processor to, in response to determining that an obstacle is obstructing the first flight path, determine a second takeoff waypoint using the sensor data, including assigning the first flight path to begin at the second takeoff waypoint, and modify the first flight path of the first trajectory in accordance with the second takeoff waypoint by translating the first flight path to align with the second takeoff waypoint and rotating the first flight path to avoid the obstacle obstructing the first flight path, thereby forming a second path of the second trajectory. The instructions are executable by the processor to cause the aircraft to follow the second flight path of the second trajectory from the second takeoff waypoint.
[0007] In another example, a non-transitory computer-readable medium is described that stores instructions that, when executed by one or more processors of a computing device, cause the computing device to perform a function, including hovering the aircraft at a predetermined hover point corresponding to a first takeoff waypoint of a first trajectory of the aircraft. The function includes scanning at least a portion of a first flight path of the first trajectory with one or more sensors associated with the aircraft. The function includes determining, using sensor data obtained by the one or more sensors, that an obstacle is obstructing the first flight path of the first trajectory, where the first flight path begins at the first takeoff waypoint. The functions include, in response to determining that an obstacle is obstructing the first flight path, (i) using the sensor data, determining a second takeoff waypoint including assigning the first flight path to begin at the second takeoff waypoint, and (ii) modifying the first flight path of the first trajectory in accordance with the second takeoff waypoint by translating the first flight path to align with the second takeoff waypoint and rotating the first flight path to avoid the obstacle obstructing the first flight path, thereby forming a second flight path of the second trajectory. The functions include causing the aircraft to follow the flight path of the first trajectory from the second takeoff waypoint.
[0008] The above-described features, functions, and advantages may be realized independently in various embodiments or may be combined in other embodiments. Further details of the embodiments can be understood by referring to the following description and the accompanying drawings.
[0009] The novel features believed characteristic of the embodiments are set forth in the appended claims. However, the embodiments, as well as the preferred mode of use, further objects and explanations thereof, will best be understood by reference to the following detailed description of the embodiments of the present disclosure taken in conjunction with the accompanying drawings. [Brief description of the drawings]
[0010] [Figure 1A] FIG. 1 is a block diagram of an aircraft in accordance with an illustrative implementation. [Figure 1B] FIG. 1 illustrates a flow diagram of an aircraft trajectory generation module, according to an exemplary implementation. [Diagram 2] 1 illustrates an aircraft in a takeoff situation, according to an example implementation. [Diagram 3] 1 illustrates an aircraft in a landing situation, according to an example implementation. [Figure 4A] FIG. 2 is a side view of an aircraft in another takeoff scenario, according to an exemplary implementation. [Figure 4B] FIG. 1 is a top view of an aircraft in another takeoff scenario, according to an exemplary implementation. [Diagram 5] 1 illustrates an aircraft in another landing scenario, according to an example implementation. [Figure 6] 1 illustrates an aircraft in another landing scenario, according to an example implementation. [Figure 7] FIG. 2 is a flow diagram of a method for generating a flight path for navigating a takeoff aircraft, according to an exemplary implementation. [Figure 8] 8 is a flow diagram of another method used in the method shown in FIG. 7, according to an exemplary implementation. [Figure 9] 8 is a flow diagram of another method used in the method shown in FIG. 7, according to an exemplary implementation. [Figure 10] 10 is a flow diagram of another method used in the methods shown in FIGS. 5 and 9 according to an exemplary implementation. FIG. [Figure 11] 10 is a flow diagram of another method used in the methods shown in FIGS. 7 and 9 according to an exemplary implementation. FIG. [Figure 12] 10 is a flow diagram of another method used in the methods shown in FIGS. 7 and 9 according to an exemplary implementation. FIG. [Figure 13] FIG. 13 is a flow diagram of another method used in the methods shown in FIGS. 7, 9, and 12 according to an exemplary implementation. [Figure 14] 8 is a flow diagram of another method used in the method shown in FIG. 7, according to an exemplary implementation. [Figure 15] 8 is a flow diagram of another method used in the method shown in FIG. 7, according to an exemplary implementation. [Figure 16] 8 is a flow diagram of another method used in the method shown in FIG. 7, according to an exemplary implementation. [Figure 17] 8 is a flow diagram of another method used in the method shown in FIG. 7, according to an exemplary implementation. [Figure 18] FIG. 18 is a flow diagram of another method that may be used in the methods shown in FIGS. 7 and 17, according to an exemplary implementation. [Figure 19] FIG. 18 is a flow diagram of another method that may be used in the methods shown in FIGS. 7 and 17, according to an exemplary implementation. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] The disclosed embodiments will now be described more fully with reference to the accompanying drawings, which illustrate some, but not all, of the disclosed embodiments. Indeed, several different embodiments have been described, and these should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are described so that this disclosure will be comprehensive and complete, and so that the scope of the disclosure will be fully understood by those skilled in the art.
[0012] In the embodiments, systems and methods are described for generating flight paths for navigating an aircraft. More particularly, methods and systems for doing so automatically. For purposes of the following description, the terms "automatically" or "autonomously" may include performing a function by program code without user input and / or instructions, based on sensor data, stored information, machine learning techniques, etc. In such a context, a function would still be referred to as automatic or autonomous if prompted at some point by a user action.
[0013] In an embodiment, an aircraft uses a predefined trajectory for takeoff. The predefined trajectory can facilitate the aircraft's climb towards a cruising altitude in a predictable, reliable and comfortable manner. In other words, the predefined trajectory is similar to the trajectory of a human pilot. However, during takeoff, an aircraft, particularly an aircraft that does not use a runway, may encounter various obstacles such as trees, hills, structures, etc. By recognizing and avoiding such obstacles, the aircraft can climb without colliding with such objects. However, doing this automatically may cause the aircraft to take an unstable or uneven path, which may cause items inside the aircraft to move and reduce the comfort of the occupants. Furthermore, avoiding these obstacles by changing the flight path of the predefined trajectory may result in a flight path that is untested or less predictable depending on the obstacle. Thus, in an embodiment, the aircraft may change the waypoints associated with the takeoff, but otherwise maintain the flight path of the predefined trajectory. Thus, an embodiment is described that allows an aircraft to take off without sacrificing comfort or reliability.
[0014] In further embodiments, the protocol for flight path selection may vary depending on the flight situation of the aircraft. For example, the aircraft may use a first protocol for takeoff, a second protocol during cruise, and a third protocol during landing. For example, during takeoff, the aircraft may use a brute force approach to flight path generation and selection that selects from a set of possible flight paths within a set of constraints (e.g., to save computational resources), during cruise, the aircraft may use a Rapidly Expanding Random Tree (RRT) for flight path generation and selection, and during landing, the aircraft may use a combination of the brute force and RRT approaches. Thus, embodiments are described that enable robust flight path solutions that use protocols that are specifically suited to each given situation.
[0015] Referring now to the drawings, FIG. 1A illustrates a block diagram of an aircraft 100 according to one exemplary implementation. The aircraft 100 includes a computing device 102, a navigation system 112, an obstacle detection system 120, a trajectory generation system 128, and a steering / hovering mechanism 132. Other devices, systems, devices, modules, software, data stores, etc. may also be included. Furthermore, in embodiments, the various components described with reference to FIG. 1A may be integrated into a single computing device or system, or may be further divided into separate components, or may otherwise be configured to achieve similar functionality as described herein. Furthermore, the various systems, devices, and mechanisms may be implemented in software or hardware.
[0016] Computing device 102 includes one or more processors 104, memory 106, instructions 108, and a user interface 110. The one or more processors 104 may be general-purpose processors or special-purpose processors (e.g., digital signal processors, application specific integrated circuits, etc.). The one or more processors 104 may be configured to execute executable instructions 108 (e.g., computer readable program instructions) stored in memory 106 to provide functionality of computing device 102 and the associated systems and methods described herein.
[0017] The memory 106 may include or take the form of one or more computer-readable storage media that can be read or accessed by the processor(s) 104. The computer-readable storage media may include volatile and / or non-volatile storage components, such as optical, magnetic, organic or other memory, or disk storage, all or a portion of which may be integrated with the processor(s) 104. The memory 106 is considered a non-transitory computer-readable medium. In some embodiments, the memory 106 may be implemented using a single physical device (e.g., one optical, magnetic, organic or other memory or disk storage unit), while in other embodiments, the memory 106 may be implemented using two or more physical devices. Thus, the memory 106 is a non-transitory computer-readable storage medium, and the instructions 108 executable by the processor 104 are stored in the memory 106. The instructions 108 may include computer-readable code and may be executed by the processor 104 to achieve the functionality described herein.
[0018] User interface 110 may include a mouse, a keyboard, a touch screen, a microphone, a gesture recognition system, combinations thereof, or any other means for receiving user input. In particular, user interface 110 may be configured to receive input from, for example, a pilot of aircraft 100 or a remote technician of aircraft 100.
[0019] As shown in Figure 1A, computing device 102 is communicatively coupled to navigation system 112, obstacle detection system 120, trajectory generation system 128, and steering / hovering mechanism 132. Although not shown in Figure 1A, each of these components of aircraft 100 may include processor(s), memory, and instructions configured similarly to one or more of processor 104, memory 106, and instructions 108 described above, but each may include instructions executable to achieve separate functionality. Additionally, although these components are not shown in the figure to be in direct communication (but rather are shown to be communicating via computing device 102), each of these components may be in direct communication with each other or may operate independently without receiving communications from each other.
[0020] The navigation system 112 includes a global positioning system (GPS) 114, an inertial navigation system (INS) 116, and an inertial measurement unit (IMU) 118. The navigation system 112 and / or one or more of its components are configured to determine a position, orientation, and altitude of the aircraft 100. In more detail, one or more of the GPS 114, the INS 116, and the IMU 118 may obtain sensor data indicative of the position, orientation, and altitude of the aircraft 100 (which may include, for example, an altimeter, not shown). This information may be transmitted to the computing device 102 in the form of raw sensor data or as target information indicative of the position, orientation, and altitude of the aircraft 100. For example, the navigation system 112 may transmit a simplified representation of the sensor data. As described below, the computing device 102 and / or one or more additional components of the aircraft 100 may use this information in generating and selecting a flight path for the aircraft 100.
[0021] The obstacle detection system 120 includes a light detection and ranging (LIDAR) device 122, an image capture device 124 (e.g., a camera, a light sensor array, or another imaging device or system), and a radar device 126. Other devices may also be included. The obstacle detection system 120 and / or one or more of its components are configured to acquire sensor data indicative of the environment of the aircraft 100. For example, one or more of the LIDAR device, the image capture device, and the radar device 126 may periodically scan an area surrounding the aircraft 100, such as an area corresponding to a planned flight path, and acquire data indicative of any objects or their absence in the environment. The sensor data may include three-dimensional (3D) point cloud data, image data, or other data indicative of whether an object (e.g., an obstacle) is present. This information in the form of raw sensor data or as target information indicative of the environment surrounding the aircraft 100 may be transmitted to the computing device 102. For example, the obstacle detection system may transmit a simplified representation of the sensor data, such as the relative coordinates of a detected obstacle. As described below, computing device 102 and / or one or more additional components of aircraft 100 may use this information in generating and selecting a flight path for aircraft 100 .
[0022] Trajectory generation system 128 includes orbit determination module 130. The generation system may receive information from navigation system 112 and from computing device 102 to determine a trajectory, including a flight path, to be followed by the aircraft. Trajectory generation system 128 may be a stand-alone computing device or may alternatively be included as part of computing device 102, navigation system 112, or any other component of aircraft 100. Further details regarding trajectory generation system 128 and orbit determination module 130 are described below with reference to FIG. 1B.
[0023] Steering / hovering mechanism 132 may include one or more rotors, thrusters, stabilizers, ailerons, elevators, or other controllable maneuvers of aircraft 100. Computing device 102 may send control signals to steering / hovering mechanism 132 to effect aspects of the determined trajectory and / or flight path of aircraft 100.
[0024] Figure 1B is a flow diagram of orbit determination module 130 of aircraft 100 according to one example implementation. In particular, Figure 1B is a logic diagram describing a simplified method for determining an orbit using orbit determination module 130. Orbit determination module 130 may be a software program stored in memory on trajectory generation system 128 and having executable instructions to implement the functionality illustrated in Figure 1B. The flow diagram representing an aspect of this functionality includes blocks 134-150.
[0025] In block 134, the function includes determining a flight status of the aircraft 100 using information indicative of one or more of the position, orientation, and altitude of the aircraft 100 received from the navigation system 112 or instructions received from the computing device 102.
[0026] 1B shows a takeoff, cruise, or landing situation, other types of situations are possible. For example, rather than having separate situations for determining how to generate and select a trajectory, such a determination may be analogous, applying different weights to various factors such as altitude, speed, rotation rate, user input, and / or other factors to determine the type of trajectory generation and selection protocol. In an embodiment, this includes a cost function that evaluates against each other various trajectory solutions with desired outputs of minimum rotational jerk and / or linear jerk resulting from each given trajectory.
[0027] Returning to FIG. 1B, in block 136, the function includes determining whether an obstacle is present in a takeoff situation. This includes receiving sensor data from the obstacle detection system 120 or receiving instructions from the computing device 102. If no obstacle is detected, the predetermined takeoff trajectory may be maintained (i.e., unchanged) in block 144. If an obstacle is detected, an enforced approach 142 may be used to determine updated waypoints for takeoff. In the context of the present disclosure, the predetermined takeoff trajectory may be a first trajectory having a first flight path, and changing the flight path according to the updated waypoints may be referred to as forming a second flight path of a second trajectory. Even though the second flight path is formed, this flight path may only differ in some respects from the first flight path in order to maintain stability and comfort during takeoff while avoiding obstacles. For example, the second flight path may be a rotated and / or translated version of the first flight path, as described further below. In the context of the present disclosure, an enforced approach may refer to a selection from each available flight path within a set of constraints. For example, a set of constraints in a takeoff situation may include a predetermined hover point for takeoff, a predetermined trajectory flight path for takeoff, and a clearance zone associated with the size of the aircraft 100.
[0028] In some circumstances, the selection from each available flight path may be computationally taxy. However, in takeoff situations with appropriate constraints, this can be improved somewhat. For example, the available flight paths may initially be constrained by the terrain obstructing the flight path downwards. By further restricting the candidate flight paths to, for example, a subset of the flight paths available in a zone surrounding the flight path of a given trajectory of the aircraft 100, the computational constraints can be reduced and the flight path solution can be sped up.
[0029] In block 138, the function includes determining whether an obstacle is present in a cruise situation. This may include receiving sensor data from the obstacle detection system 120 or receiving instructions from the computing device 102. If no obstacle is detected or if an obstacle is detected, the orbit determination module 130 may generate and select a flight path using an RRT approach 146. In an embodiment, this includes using a random selection of available space ahead of the aircraft 100. Available in this context may refer to the obstacle-free space surrounding the current flight path of the aircraft 100. In an embodiment, various types of approaches may be used, such as the RRT* algorithm, Parti-game oriented RRT (PDRRT), Closed-loop fast search tree (CL-RRT), Fast-searching random graph (RRG), Voronoi diagram, visibility graph, Receding Horizon motion planning, or other algorithms for path generation and / or selection. Such approaches are suitable for quickly selecting a flight path through an open space where there are many (e.g., thousands) available options for flight paths.
[0030] In block 140, the function includes determining whether an obstacle is present in a landing situation. This may include receiving sensor data from the obstacle detection system 120 or receiving commands from the computing device 102. If no obstacle is detected, the predetermined landing trajectory is maintained (i.e., unchanged) in block 150. If an obstacle is detected, in block 148, the function includes determining an updated waypoint for takeoff. For example, an aggressive approach may be used first or initially to generate and select a trajectory, and a decision may be made in block 148 to continue using the aggressive approach (block 152) or to switch to an RRT approach (block 154) that refines or overrides the aggressive approach in certain circumstances.
[0031] Further discussion of these circumstances and the generation and selection of trajectories is provided below. For purposes of the following disclosure, a trajectory may be defined using a number of points connected to form a spline that defines a corresponding flight path relative to the speed of the aircraft 100 and the path of the aircraft 100. Particular points along the flight path may include waypoints that represent targets for the aircraft 100 to reach before changing flight conditions. For example, a mission for the aircraft 100 may include a takeoff waypoint where the aircraft 100 begins to take off, a cruise waypoint at the end of a predetermined takeoff trajectory, a descent waypoint where the aircraft begins a transition to landing, and a landing waypoint at the end of a predetermined landing trajectory, as further described below in connection with FIGS. 2, 3, 4A, 4B, 5, and 6.
[0032] FIG. 2 illustrates the aircraft 100 in a takeoff situation 200 according to one exemplary implementation. In particular, FIG. 2 illustrates an exemplary scenario in which the aircraft 100 does not encounter any obstacles. In the takeoff situation 200, the aircraft is initially located on the surface of the Earth 202 and begins its approach to a predetermined hover point 208, where a predetermined takeoff trajectory 210 begins. From the takeoff point 204, the aircraft 100 follows a translation path 206 that translates its position to reach the predetermined hover point 208. The predetermined hover point 208 corresponds to a takeoff waypoint for the aircraft 100. At or before the predetermined hover point 208, the aircraft 100 can rotate to align with the flight path direction of the predetermined takeoff trajectory 210. Upon reaching the predetermined hover point, the obstacle detection system 120 may scan the direction of the predetermined takeoff trajectory 210 (e.g., the area in front of the aircraft 100, defined in part by the size of the aircraft 100), or more generally, within the environment surrounding the aircraft 100 to determine whether any portion of an obstacle blocks the aircraft 100 from using the flight path of the predetermined takeoff trajectory 210.
[0033] In this exemplary scenario, no obstacles are detected and aircraft 100 continues along predetermined takeoff trajectory 210. In other words, aircraft 100 maintains predetermined takeoff trajectory 210. As described above, the trajectory is defined by one or more points (e.g., points 212 and 214) at points in space that collectively form a spline that describes predetermined takeoff trajectory 210.
[0034] In an embodiment, forming the predetermined takeoff trajectory 210 may be determined according to a machine learning algorithm that is trained using manned flights of the aircraft 100 and / or other aircraft. In another embodiment, the predetermined takeoff trajectory 210 may be determined by synthesizing multiple past flights of the aircraft 100. In yet another embodiment, the predetermined takeoff trajectory 210 may be determined using simulated force data to minimize one or more flight parameters, such as linear jerk during takeoff (e.g., aiming for constant or near constant acceleration during takeoff, etc.). In a further embodiment, the predetermined takeoff trajectory 210 may be set by a user via the user interface 110. Other methods of forming the predetermined trajectory are possible.
[0035] FIG 3 illustrates the aircraft 100 in a landing situation 300 according to one exemplary implementation. In particular, FIG 3 illustrates an exemplary scenario in which the aircraft 100 does not encounter any obstacles. In the landing situation 300, the aircraft 100 follows a predetermined landing trajectory 302 defined by vectors 304 and 306 and terminating at a landing waypoint 306. At the landing waypoint 308, the aircraft 100 follows a translation path 310 to a landing point 312 where the aircraft 100 makes contact with the ground surface 202. While following the predetermined landing trajectory 302, the obstacle detection system 120 periodically scans for obstacles. Since no obstacles are detected in this exemplary scenario, the aircraft 100 maintains the predetermined landing trajectory 302.
[0036] In an embodiment, forming the predetermined landing trajectory 302 may be formed in a manner similar to forming the predetermined takeoff trajectory 210 described above with reference to Figure 2. In particular, the predetermined landing trajectory may be formed to decelerate at a constant or near-constant rate.
[0037] FIG 4A is a side view of the aircraft 100 in another takeoff situation 400 according to one example implementation. In particular, FIG 4A illustrates an example scenario in which the aircraft 100 detects an obstacle 402. In this example, the aircraft 100 departs from the Earth's surface 202 at a takeoff point 404. The aircraft 100 follows a translation path 406 to a predetermined hover point 408. In this example, the aircraft 100 scans for obstacles at the predetermined hover point 408 and detects the obstacle 402, which is depicted as a tree in the figure. The obstacle 402 intersects with a first trajectory 410 defined by points 412 and 414, and therefore, it is determined that the takeoff waypoint and the corresponding hover point should be changed.
[0038] To change the takeoff waypoint, the aircraft 100 may cycle through a series of nominal hovering locations and orientations until such hovering locations and / or orientations are deemed to avoid the obstacle and determine if any of them avoid the obstacle. For example, this may include rotating within a predetermined range of orientations (e.g., 15 degrees on either side of the first trajectory 410) at predetermined increments (e.g., 5 degree increments). In this situation, the predetermined takeoff trajectory (e.g., the first trajectory 410) may be maintained without rotating and / or translating the trajectory to match the nominal orientation that avoids the obstacle. Thus, a brute force approach to takeoff trajectory generation that limits which flight paths are considered and / or selected. In an embodiment, this may include physically rotating and translating the aircraft 100 and scanning the environment at each nominal location while rotating and translating the aircraft 100. In other embodiments, such rotations and / or translations may be implemented using actual sensor data obtained by the obstacle detection system 120.
[0039] In this example, the aircraft 100 rotates through a series of nominal orientations at a given hover point 408, none of which avoids the obstacle 402. This process is repeated at a second hover point 416 according to a nominal trajectory 418 defined by points 420 and 422, and again at a third hover point 424 according to a second trajectory 426 defined by points 428 and 430. In this example, a takeoff waypoint is determined that avoids the obstacle at the third hover point 424 and at the nominal orientation of the aircraft 100. Thus, the aircraft 100 follows the second trajectory 426 from the hover point 424.
[0040] 4B is a top view of the aircraft 100 in another takeoff situation 400, according to an example implementation. In particular, FIG. 4B illustrates how the aircraft 100 rotates through a nominal orientation to determine a takeoff waypoint that allows for avoidance of the obstacle 402. As shown in FIG. 4B, in this example, a first trajectory 410 defined by points 412 and 414 and a nominal trajectory 418 defined by points 420 and 422 cause the aircraft 100 to intersect with the obstacle 402. However, a hover point 424 corresponding to a second trajectory 426 defined by points 428 and 430 does not intersect and is therefore selected as a takeoff waypoint for takeoff.
[0041] Determining that the obstacle does not obstruct the aircraft 100 includes comparing the current position of the aircraft 100 with the detected position of the obstacle 402, and determining that substantially no portion of the obstacle falls within an area 432 defined by a candidate takeoff waypoint (e.g., hover point 424), a flight path beginning at the candidate takeoff waypoint (e.g., a flight path corresponding to second trajectory 426), and a clearance zone associated with the size of the aircraft. For example, the rotor of the aircraft 100 is 25 meters, and the clearance zone includes an additional clearance (e.g., 5 meters). Thus, selecting the takeoff waypoint can be determined according to the clearance zone of the aircraft 100.
[0042] FIG. 5 illustrates the aircraft 100 in another landing scenario 500 according to an exemplary implementation. In particular, FIG. 5 illustrates the aircraft 100 using an aggressive approach to landing. As shown in FIG. 5, the aircraft 100 starts on a predefined trajectory 514 defined by points 516, 518, and 520 and ends at a hover point 510 corresponding to a landing waypoint. However, during descent, the aircraft 100 detects an obstacle 402 that blocks the predefined trajectory 514. In the landing scenario 500, the aircraft 100 can generate and select different trajectories using a flight path selection protocol. In particular, the protocol corresponding to the landing scenario 500 includes first using an aggressive approach and then using an RRT approach if the aggressive approach fails to provide a satisfactory trajectory. In other embodiments of the protocol, the aggressive approach or the RRT can be used simultaneously and compared to determine which is more desirable. For example, points corresponding to each predicted trajectory may be input into a cost function that is weighted to favor low linear and rotational jerks, within further constraints (e.g., speed and nose angle) associated with keeping the aircraft 100 aloft. In other embodiments, each respective trajectory may be evaluated using a trained machine learning model.
[0043] Qualitatively, an aggressive approach typically outperforms an RRT approach when passing over an obstacle, and an RRT approach outperforms an aggressive approach when passing around an obstacle. Thus, for purposes of the example embodiment, in landing scenario 500, a landing trajectory 502 defined by points 504, 506, and 508 is generated and selected. Thus, in an example embodiment, aircraft 100, and more particularly computing device 102, may use obstacle detection system 120 to determine that an obstacle is currently below the bottom of aircraft 100, and in response select an aggressive approach to generate a new trajectory (e.g., to temporarily flatten the trajectory). Conversely, computing device 102 may use obstacle detection system 120 to determine that an obstacle is currently in front of the front of aircraft 100, and in response select an RRT approach to generate a new trajectory (e.g., to temporarily shift the trajectory laterally). Other examples of operating protocols for landing situations are possible.
[0044] FIG. 6 illustrates the aircraft 100 in another landing situation 600 according to an exemplary implementation. In particular, FIG. 6 illustrates a top view of the aircraft 100 sideways around the obstacle 402. In this example, the predetermined trajectory 618 defined by points 620, 622, 624, 626, 628, and 630 following the hover point 616 intersects with the obstacle 402. In this example, the obstacle 402 is directly in front of the aircraft 100 (i.e., not under the bottom of the aircraft 100), and therefore it is determined that a lateral movement according to the RRT approach is appropriate. In particular, the RRT approach generates a landing trajectory 602 defined by points 604, 606, 60, 610, 612, and 614 and terminates at the hover point 616. Selecting the RRT approach over the aggressive approach according to the landing trajectory protocol can be performed as described above with reference to FIG. 5.
[0045] FIG. 7 is a flow diagram of a method 700 for generating a takeoff flight path for navigating the aircraft 100, according to one example implementation. The method 700 illustrated in FIG. 7 presents an example of a method that may be used in the aircraft 100 illustrated in FIG. 1A, or components of the aircraft 100, such as the computing device 102 described with reference to FIG. 1A. Furthermore, a device or system may be used or configured to perform the logical functions presented in FIG. 7. In some cases, the components of the device and / or system are configured to perform a function, and they are actually configured and constructed (using hardware and / or software) to enable such performance. In other examples, the components of the device and / or system may be configured to be compatible, capable, or suitable for performing this function, such as when operated in a particular manner. The method 700 may include one or more operations, functions, or actions, as illustrated by one or more of blocks 702-204. Although the blocks are shown sequentially, they may be performed in parallel and / or in a different order than the order described herein. Additionally, various blocks may be combined to reduce the number of blocks, divided to add or remove blocks, based on the desired implementation.
[0046] For this and other processes and methods disclosed herein, it should be understood that the flow diagram illustrates the functionality and operation of one possible implementation of the present embodiment. In this regard, each block or a portion of each block may represent a module, segment, or portion of a program code, including one or more instructions executable by a processor to implement a particular logical function or step in the process. The program code may be stored in any type of computer-readable medium or data storage device, such as a storage device including a disk drive or hard drive. Furthermore, the program code may be encoded in a machine-readable form in a computer-readable storage medium or other non-transitory medium or article of manufacture. The computer-readable medium may include non-transitory computer-readable media or memory, such as, for example, a computer-readable medium that stores data for a short period of time, such as a register memory, a processor cache, and a random access memory (RAM). The computer-readable medium may further include non-transitory media, such as, for example, a secondary or permanent long-term storage device, such as a read-only memory (ROM), an optical or magnetic disk, or a compact disk read-only memory (CD-ROM). The computer readable medium may be any other volatile or non-volatile storage system. The computer readable medium may be considered, for example, as a tangible computer readable storage medium.
[0047] In addition, each block or portion of each block in Figure 7, and each block or portion of each block in other processes and methods disclosed herein, represent hardwired circuitry for implementing particular logical functions within a process. Alternative implementations are included within the scope of the embodiments of the present disclosure, in which functions may be performed in an order different from that shown or described (including substantially simultaneously or in reverse order), depending on the functionality involved, as will be appreciated by one of ordinary skill in the art.
[0048] At block 702, the method 700 includes hovering the air vehicle 100 at a predetermined hover point 408 that corresponds to a first takeoff waypoint of the air vehicle's first trajectory 410. This may be performed in accordance with the illustrations of Figures 4A and 4B and corresponding description.
[0049] At block 704, method 700 includes scanning at least a portion of the first flight path of first trajectory 410 with one or more sensors associated with aircraft 100. For example, scanning the portion of the first flight path may be performed by obstacle detection system 120, for example, as described above with reference to FIG.
[0050] At block 706, the method 700 includes determining, using sensor data obtained by the one or more sensors, that an obstacle 402 is obstructing a first flight path of the first trajectory 410, where the first flight path begins at a first takeoff waypoint. Determining that an obstacle 402 is obstructing the first flight path may include comparing a current position of the aircraft 100 to a detected position of the obstacle 402, and determining that at least a portion of the obstacle 402 falls within an area 432 corresponding to a clearance zone 100 associated with a size of the aircraft.
[0051] At block 708, the method 700 includes, in response to determining that the obstacle 402 is obstructing the first flight path, (i) using the sensor data, determining a second takeoff waypoint for the first trajectory 410, including allocating the first flight path to begin at the second takeoff waypoint, and (ii) modifying the first flight path of the first trajectory according to the second takeoff waypoint by translating the first flight path to align with the second takeoff waypoint and rotating the first flight path to avoid the obstacle 402 obstructing the first flight path, thereby forming a second flight path of the second trajectory 426. This may be performed according to the illustrations of Figures 4A and 4B and corresponding description. For example, the second trajectory 426 may correspond to modifying the first flight path of the first trajectory 410 by rotating and / or translating the first trajectory 410 to take off from the second takeoff waypoint. As mentioned above, this may include otherwise maintaining a predetermined trajectory for takeoff of the aircraft 100 to ensure takeoff stability and comfort.
[0052] At block 710, the method 700 includes causing the aircraft 100 to follow a second flight path in a second trajectory 426 from a second takeoff waypoint 426. This may be performed in accordance with the illustrations of Figures 4A and 4B and corresponding description.
[0053] FIG. 8 is a flow diagram of another method used in the method 700 shown in FIG. 7 according to one exemplary implementation. In particular, FIG. 8 illustrates blocks 712 and 714 that are performed according to block 708. In block 712, the method 700 includes using the sensor data to determine that substantially no portion of the obstacle 402 falls within an area defined by (i) a candidate second takeoff waypoint (e.g., a waypoint corresponding to the hover point 424 shown in FIG. 4B), (ii) a flight path beginning at the candidate second takeoff waypoint (e.g., a flight path corresponding to the second trajectory 426 shown in FIG. 4B), and (iii) a clearance zone associated with the size of the aircraft (e.g., area 432 described above with reference to FIG. 4B). For example, this can be performed as illustrated and described with reference to FIG. 4B. In block 714, the method 700 includes selecting the candidate second takeoff waypoint as the second takeoff waypoint based on determining that substantially no portion of the obstacle 402 falls within the area. For example, this can be done as illustrated and described with reference to FIG. 4B.
[0054] FIG. 9 is a flow diagram of another method used in the method 700 shown in FIG. 7 according to an exemplary implementation. In particular, FIG. 9 illustrates an example in which the second trajectory 426 is a takeoff trajectory determined according to a first flight path selection protocol. In this context, in block 716, the method 700 includes having the aircraft 100 follow a second flight path of the second trajectory from a second takeoff waypoint and then reach a cruise waypoint at an end of the second flight path of the second trajectory 426. For example, the cruise waypoint may signal the start of a cruise flight regime, as shown in FIG. 1B. In block 718, the method 700 further includes selecting a flight path for the cruise trajectory at the cruise waypoint according to a second flight path selection protocol different from the first flight path selection protocol. For example, as shown in FIG. 1B, this includes switching from an aggressive approach to an RRT approach to generate and select a trajectory in a cruise regime.
[0055] Figure 10 is a flow diagram of another method for use in the methods shown in Figures 5 and 9, according to one exemplary implementation. In particular, Figure 10 illustrates block 720, which is performed in accordance with block 716. In block 716, the method 700 includes selecting from a set of available flight paths within a set of constraints including a clearance zone associated with a given hover point 408, flight path, and size of the aircraft. For example, this may be performed in accordance with Figure 4B and the corresponding description.
[0056] Figure 11 is a flow diagram of another method for use in the methods shown in Figures 7 and 9, according to one exemplary implementation. In particular, Figure 11 illustrates block 722, which is performed in accordance with block 718. In block 718, the method 700 includes generating and selecting a flight path for the cruise trajectory using a Rapidly Expanding Random Tree (RRT). This may be performed, for example, as described above with reference to Figures 1B, 5 and 6.
[0057] FIG. 12 is a flow diagram of another method used in the methods shown in FIG. 7 and FIG. 9 according to an exemplary implementation. In particular, FIG. 12 illustrates blocks 724 and 726. In block 724, the method 700 includes following a flight path for a cruise trajectory until a descent waypoint is reached. For example, the descent waypoint may be a cue of an approach to a landing site. In block 726, the method 700 includes selecting a flight path for a descent trajectory according to a third flight path selection protocol at the descent waypoint, the third flight path selection protocol being different from the first flight path selection protocol and the second flight path selection protocol. For example, the third flight path selection protocol may correspond to using one or both of an aggressive approach and an RRT approach in a landing situation. This may be implemented according to FIGS. 5 and 6 and the corresponding description thereof.
[0058] FIG. 13 is a flow diagram of another method used in the methods shown in FIG. 7, FIG. 9, and FIG. 12 according to an exemplary implementation. In particular, FIG. 13 illustrates block 728. Block 728 is performed according to block 726. In block 728, method 700 includes selecting an initial descent path from a set of available flight paths within a set of constraints, and using a Rapidly Expanding Random Tree (RRT) to change the initial descent path when an obstacle 402 is detected in the initial descent path. For example, an enforced approach can be performed when an obstacle 402 is below the aircraft 100 as shown in FIG. 5, and an RRT approach can be performed when an obstacle 402 is directly in front of the aircraft 100 and the enforced approach does not generate a path around or over the obstacle as shown in FIG. 6. In an embodiment, the enforced approach can be used at any time during descent, but if the enforced approach does not generate a flight path, the flight path generation can switch to the RRT. In other embodiments, the RRT may be used whenever an obstacle is encountered during descent, and the aggressive approach is used at all other times.
[0059] FIG. 14 is a flow diagram of another method used in the method 700 shown in FIG. 7 according to one exemplary implementation. In particular, FIG. 14 illustrates blocks 730 and 732. Blocks 730 and 732 can be implemented in a scenario where the second trajectory 426 is a takeoff trajectory determined according to a first flight path selection protocol that includes selecting from a set of available flight paths within a set of constraints. In block 730, the method 700 includes detecting a trigger event after causing the aircraft 100 to follow the second flight path of the second trajectory 426 from the second takeoff waypoint. For example, the trigger event can be reaching a threshold altitude (e.g., 60 meters above ground level (AGL) or the aircraft's maximum height ellipsoid (HAE)), detecting that the trajectory of the aircraft 100 is leveling (e.g., determining that the angular difference between the orientation of the aircraft 100 and the ground surface 202 is less than 5%), or reaching a cruise waypoint, among other possibilities. At block 732, the method 700 further includes, in response to detecting the trigger event, transitioning to a second flight path selection protocol that includes generating and selecting a subsequent flight path using a Rapidly Expanding Random Tree (RRT), which may be performed, for example, in a cruise situation for the aircraft 100, as described above with reference to FIG.
[0060] FIG. 15 is a flow diagram of another method used in the method shown in FIG. 7 according to an exemplary implementation. In particular, FIG. 15 illustrates blocks 734, 736, 738, and 740. In block 734, the method 700 includes determining the first trajectory 410. Blocks 736, 738, and 740 are performed in accordance with block 734. In block 736, the method 700 includes receiving information indicative of a plurality of past trajectories taken during takeoff of a plurality of aircraft. For example, the information may be stored in memory 106, a database in the aircraft 100, or a remote data storage. In block 738, the method 700 further includes determining common features of the plurality of past trajectories. For example, this may include normalizing each trajectory, determining a standard deviation of each point used to define the trajectory, and using an average value of points with low standard deviation (e.g., less than 2%). Those points with low standard deviation may be considered common features. Other methods of extracting these features are possible. At block 740, the method 700 includes generating the first trajectory 410 based on the common features. For example, this may include determining the average values of the points with low standard deviations and using these to define the first trajectory 410.
[0061] FIG. 16 is a flow diagram of another method used in the method shown in FIG. 7 according to an exemplary implementation. In particular, FIG. 16 illustrates blocks 742-748. Blocks 742-748 are performed in response to determining that an obstacle 402 is blocking the first flight path of the first trajectory 410. In block 742, the method 700 includes hovering the aircraft 100 at a second hover point (e.g., the third hover point 424 shown in FIGS. 4A and 4B) corresponding to a second takeoff waypoint. In block 744, the method 700 includes scanning the environment of the aircraft 100 a second time. For example, this may be performed by the obstacle detection system 120. In block 746, the method 700 includes determining that no obstacle is blocking the second flight path of the second trajectory 426 from the second takeoff waypoint. Block 748 is performed in accordance with block 710. At block 748, the method 700 includes, in response to determining that there is no obstacle obstructing the second flight path of the second trajectory 426 from the second takeoff waypoint, causing the aircraft 100 to follow the second flight path of the second trajectory 426 from the second takeoff waypoint. For example, this may be performed as described with reference to Figures 4A and 4B.
[0062] Figure 17 is a flow diagram of another method that may be used in the method 700 shown in Figure 7, according to one example implementation. In particular, Figure 17 illustrates block 750, which is performed in accordance with block 708. In block 750, the method 700 includes rotating the first flight path through a set of nominal orientations at a given hover point to determine whether any of the nominal orientations in the set avoids the obstacle 402. For example, this may be performed as described above with reference to Figures 4A and 4B.
[0063] Figure 18 is a flow diagram of another method for use in the methods shown in Figures 7 and 17, according to one implementation. In particular, Figure 18 illustrates block 752. Block 750 is performed in accordance with block 708. In block 750, method 700 includes rotating the first flight path through a set of nominal orientations at a predefined hover point until a nominal orientation is reached that avoids obstacle 402. Although predefined hover point 408 illustrated in Figure 4B does not illustrate this scenario, in an example embodiment, aircraft 100 may rotate at a predefined hover point and determine that one of the nominal orientations avoids obstacle 402.
[0064] FIG. 19 is a flow diagram of another method used in the methods shown in FIGS. 7 and 17 according to one exemplary implementation. In particular, FIG. 19 illustrates blocks 754, 756, and 758. Blocks 754, 756, and 758 are performed according to block 708. In block 754, the method 700 includes determining that there is no nominal orientation in the set of nominal orientations that avoids the obstacle 402. For example, this can be performed as shown and described with reference to the first hover point 408 in FIG. 4A. In block 756, the method includes translating the first flight path to the nominal hover point. For example, this can be performed as shown and described with reference to the third hover point 424 in FIG. 4A. In block 758, the method 700 includes rotating the first flight path through the second set of nominal orientations at the nominal hover point until a nominal orientation that avoids the obstacle 402 is reached. In an embodiment, altering one or both of the predetermined hover point and the predetermined orientation includes altering the predetermined hover point to coincide with a nominal hover point and altering the predetermined orientation to coincide with a nominal orientation to avoid the obstacle 402.
[0065] In a further implementation of method 700, determining the second takeoff waypoint according to block 708 includes determining a plurality of candidate second takeoff waypoints that avoid obstacle 402. For example, aircraft 100 may determine a plurality of nominal orientations and nominal hover points that avoid obstacle 402. In these examples, the functionality may further include providing, via user interface 110, a selectable option corresponding to each of the plurality of candidate second takeoff waypoints that avoid obstacle 402. The functionality may further include receiving, via user interface 110, an indication of a selected candidate second takeoff waypoint, where the second takeoff waypoint corresponds to the selected candidate second takeoff waypoint. In such examples, computing device 102 may assign the selected candidate second takeoff waypoint as the second takeoff waypoint. In this manner, a user may trigger certain aspects of a takeoff or landing process. Computing device 102 may use such user input, for example, to train a machine learning model.
[0066] In a further implementation of method 700, the system includes aircraft 100 and a ground control system (not shown). In such an example, determining the second takeoff waypoint according to block 708 includes receiving from the ground control system a range of acceptable heights (e.g., 10-25 meters) and orientations (e.g., substantially east or substantially southeast) for takeoff of aircraft 100. The function includes determining that the second takeoff waypoint falls within the range of acceptable heights and orientations. In such an example, selecting the second takeoff waypoint is performed in response to determining that the second takeoff waypoint falls within the range of acceptable heights and orientations. In this manner, aircraft 100 and associated methods can be performed autonomously at a variety of landing locations having different regulations, standards, or rules governing landing and takeoff.
[0067] The systems and methods described herein provide functionality that allows for autonomous takeoff and landing of aircraft. These functions can be performed reliably and comfortably by selecting from multiple available protocols depending on the situation. Furthermore, in embodiments, protocols are used that reduce the computational constraints imposed on the system for trajectory generation and selection. In further embodiments, the predefined trajectories are maintained to the extent feasible to ensure consistent takeoff and landing procedures. Thus, the above systems and methods provide a robust, consistent, and comfortable experience for the aircraft's crew.
[0068] As used herein, the terms "substantially," "similarly," and "about" mean that the characteristic, parameter, or value referred to need not be exactly achieved, but that deviations or variations, including, for example, tolerances, measurement errors, measurement accuracy limits, and other factors known to those of skill in the art, may occur to an extent that does not exclude the effect caused by the characteristic.
[0069] Various embodiments of the systems, devices, and methods disclosed herein include a variety of components, features, and functions. It is understood that various embodiments of the systems, devices, and methods disclosed herein may include any of the components, features, and functions of any of the other embodiments of the systems, devices, and methods disclosed herein, in any combination, or subcombination, and all such possibilities are intended to be within the scope of the present disclosure.
[0070] Furthermore, the present disclosure includes embodiments according to the following clauses:
[0071] Clause 1. A method of generating a flight path for navigating an aircraft (100), comprising: (702) hovering the aircraft (100) at a predetermined hover point (408) corresponding to a first takeoff waypoint of a first trajectory (410) of the aircraft (100); (704) scanning at least a portion of a first flight path of a first trajectory (410) with one or more sensors associated with the aircraft (100); (706) determining, using sensor data obtained by the one or more sensors, that an obstacle (402) is obstructing a first flight path of a first trajectory (410) originating at a first takeoff waypoint; (708) in response to determining that an obstacle (402) is blocking the first flight path, (i) determining a second takeoff waypoint (424) using the sensor data, including assigning a first flight path to begin at the second takeoff waypoint (424); and (ii) modifying the first flight path of the first trajectory (410) in accordance with the second takeoff waypoint (424) by translating the flight path to align with the second takeoff waypoint (424) and rotating the flight path to avoid the obstacle (402) obstructing the flight path, thereby generating a second flight path of the second trajectory (426); and (710) causing the aircraft (100) to follow a second flight path along a second trajectory (426) from a second takeoff waypoint (424). The method includes:
[0072] Clause 2. (708) Determining a second takeoff waypoint (424) (712) using the sensor data to determine that a portion of the obstacle (402) is substantially free of obstacles included in an area (432) defined by (i) a candidate second takeoff waypoint, (ii) a flight path beginning at the candidate second takeoff waypoint, and (iii) a clearance zone associated with a size of the aircraft (100); and (714) selecting a candidate second takeoff waypoint as the second takeoff waypoint (424) based on determining that the substantially no portion of the obstacle (402) is contained within the area (432); The method of clause 1, including
[0073] Clause 3. The second trajectory (426) is a takeoff trajectory determined according to a first flight path selection protocol, and the method further comprises: (716) causing the aircraft (100) to follow a second flight path of a second trajectory (426) from a second takeoff waypoint (424) and then arrive at a cruise waypoint at an end of the second flight path of the second trajectory (426); and (718) At a cruise waypoint, selecting a flight path for a cruise trajectory according to a second flight path selection protocol different from the first flight path selection protocol. 3. The method of clause 1 or 2, further comprising:
[0074] Clause 4. The method of clause 3, wherein the first flight path selection protocol includes selecting (720) from a set of available flight paths within a set of constraints including a clearance zone associated with the predetermined hover point (408), the first flight path, and a size of the aircraft.
[0075] Clause 5. The method of clauses 3 or 4, wherein the second flight path selection protocol includes generating and selecting a flight path for the cruise trajectory using a (722) Rapidly Expanding Random Tree (RRT).
[0076] Article 6. (724) Following the flight path for the cruise trajectory until the descent waypoint is reached; and (726) At the descent waypoint, selecting a flight path for the descent trajectory according to a third flight path selection protocol different from the first flight path selection protocol and the second flight path selection protocol. 6. The method of any one of clauses 3-5, further comprising:
[0077] Clause 7. The method of clause 6, wherein the third flight path selection protocol includes selecting (728) an initial descent path from a set of available flight paths within a set of constraints, and modifying the initial descent path using a Rapidly Expanding Random Tree (RRT) when an obstacle (402) is detected in the initial descent path.
[0078] Clause 8. The method according to claim 1, wherein the second trajectory is a takeoff trajectory (426) determined according to a first trajectory selection protocol that includes selecting a set of available trajectories within a set of constraints, and the method further comprises: (730) detecting a trigger event after causing the aircraft (100) to follow a second flight path of a second trajectory (426) from a second takeoff waypoint (424); and (732) In response to detecting a trigger event, transitioning to a second flight path selection protocol that includes generating and selecting a subsequent flight path using a Rapidly Expanding Random Tree (RRT). 3. The method of clause 1 or 2, further comprising:
[0079] Clause 9. (734) Further comprising determining a first trajectory (410), wherein (734) determining the first trajectory (410) comprises: (736) Receiving information indicative of a plurality of past trajectories taken during takeoff of a plurality of aircraft; (738) Determining common features among multiple past orbits; and (740) generating a first trajectory (410) based on the common feature; any one of clauses 1-8, including
[0080] Clause 10. In response to determining that an obstacle (402) is obstructing a first flight path of a first trajectory (410), (742) hovering the aircraft at a second hover point corresponding to a second takeoff waypoint (424); (744) A second scan of the aircraft's environment; and (746) determining that there is no obstacle obstructing a second flight path of a second trajectory (426) from a second takeoff waypoint (424); Further comprising: (710) causing the aircraft to follow a second flight path of a second trajectory (426) from the second takeoff waypoint (424), including (748) causing the aircraft to follow the second flight path of the second trajectory (426) from the second takeoff waypoint (424) in response to determining that there is no obstacle obstructing the second flight path of the second trajectory (426) from the second takeoff waypoint (424); Any one of the methods described in clauses 1-9.
[0081] Clause 11. (708) The method of any one of clauses 1-10, wherein determining a second takeoff waypoint (424) includes (750) rotating the first flight path through a set of nominal orientations at a given hover point (408) to determine whether any nominal orientation in the set of nominal orientations avoids the obstacle (402).
[0082] Clause 12. (708) Determining a second takeoff waypoint (424) (752) rotating a first flight path through a set of nominal orientations at a predetermined hover point (408) until a nominal orientation that avoids the obstacle (402) is reached; 12. The method of claim 11, further comprising:
[0083] Clause 13. (708) Determining a second takeoff waypoint (424) (754) determining that there is no nominal orientation in the set of nominal orientations that avoids the obstacle (402); (756) translating the first flight path to a nominal hover point; and (758) rotating the first flight path through a second set of nominal orientations at a nominal hover point until a nominal orientation is reached that avoids the obstacle (402); 12. The method of claim 11, further comprising:
[0084] Clause 14. A system for generating a flight path for navigating an aircraft (100), comprising: one or more sensors; A computing device (102) having a processor (104) and a memory (106) storing instructions (108) executable by the processor (104); and wherein the instructions include: hovering the aircraft (100) at a predetermined hover point (408) corresponding to a first takeoff waypoint of a first trajectory (410) of the aircraft (100); scanning at least a portion of a first flight path of a first trajectory (410) with one or more sensors associated with the aircraft (100); determining, using sensor data obtained by the one or more sensors, that an obstacle (402) is obstructing a first flight path of a first trajectory (410) originating at a first takeoff waypoint; In response to determining that an obstacle (402) is blocking the first flight path, (i) determining a second takeoff waypoint (424) using the sensor data, including assigning a first flight path to begin at the second takeoff waypoint (424); and (ii) modifying the first flight path of the first trajectory (410) in accordance with the second takeoff waypoint (424) by translating the first flight path to align with the second takeoff waypoint (424) and rotating the first flight path to avoid the obstacle (402) intercepting the first flight path, thereby generating a second flight path of the second trajectory (426). and causing the aircraft (100) to follow a second flight path along a second trajectory (426) from a second takeoff waypoint (424); system.
[0085] Clause 15. The system of clause 14, wherein the one or more sensors include a light detection and ranging (LIDAR) device (122), and the sensor data includes three-dimensional (3D) point cloud data detected by the LIDAR device (122).
[0086] Clause 16. The method further comprising the steps of: determining a second takeoff waypoint (424) including: determining a plurality of candidate second takeoff waypoints for avoiding obstacles (402); providing, via a user interface (110), selectable options corresponding to each of a plurality of second takeoff waypoints that are candidates for avoiding the obstacle (402); and receiving, via the user interface (110), an indication of a selected candidate second takeoff waypoint corresponding to the second takeoff waypoint (424); (c) a system as defined in clause 14 or 15,
[0087] Clause 17. The ground control system further includes: determining a second takeoff waypoint (424); receiving from a ground control system a range of acceptable heights and orientations for takeoff of the aircraft (100); and Determining that the second takeoff waypoint (424) falls within an acceptable range of height and orientation. any one of the systems of clauses 14-16,
[0088] Clause 18. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors of a computing device (102), cause the computing device (102) to: hovering the aircraft (100) at a predetermined hover point (408) corresponding to a first takeoff waypoint of a first trajectory (410) of the aircraft (100); scanning at least a portion of a first flight path of a first trajectory (410) with one or more sensors associated with the aircraft (100); determining, using sensor data obtained by one or more sensors, that an obstacle (402) is obstructing a first flight path of a first trajectory (410) originating at a first takeoff waypoint; In response to determining that an obstacle (402) is blocking the first flight path, (i) determining a second takeoff waypoint (424) using the sensor data, including assigning a first flight path to begin at the second takeoff waypoint (424); and (ii) modifying the first flight path of the first trajectory (410) according to the second takeoff waypoint (424) by translating the first flight path to align with the second takeoff waypoint (424) and rotating the first flight path to avoid the obstacle (402) intercepting the first flight path, thereby generating a second flight path of the second trajectory (426); and causing the aircraft (100) to follow a second flight path along a second trajectory (426) from a second takeoff waypoint (424); A non-transitory computer readable medium that causes functionality to be performed, including:
[0089] Clause 19. The second trajectory (426) is a takeoff trajectory determined according to the first flight path selection protocol, the function being: causing the aircraft (100) to follow a second flight path on a second trajectory (426) from a second takeoff waypoint (424) and then arrive at a cruise waypoint at an end of the second flight path on the second trajectory (426); and At the cruise waypoint, selecting a flight path for the cruise trajectory according to a second flight path selection protocol different from the first flight path selection protocol. 19. The non-transitory computer readable medium of clause 18, further comprising:
[0090] Article 20. Functions Following the flight path for the cruise trajectory until reaching the descent waypoint; and selecting a flight path for the descent trajectory at the descent waypoint according to a third flight path selection protocol different from the first flight path selection protocol and the second flight path selection protocol; 19. The non-transitory computer readable medium of clause 18 or 19, further comprising:
[0091] The description of the various advantageous configurations has been presented for purposes of illustration and description and is not intended to be complete or limited to the embodiments in the disclosed form. Numerous modifications and variations will be apparent to those skilled in the art. Moreover, various advantageous embodiments may exhibit different advantages over other advantageous embodiments. The selected embodiment or embodiments have been chosen and described in order to best explain the principles, practical applications of the embodiments, and to enable others skilled in the art to understand the disclosure of the various embodiments, together with various modifications suitable for the particular use contemplated.
Claims
1. 1. A method of generating a flight path for navigating an aircraft (100), comprising: (702) hovering the aircraft (100) at a predetermined hover point (408) corresponding to a first takeoff waypoint of a first trajectory (410) of the aircraft (100); (704) scanning at least a portion of a first flight path of the first trajectory (410) with one or more sensors associated with the aircraft (100); (706) determining, using sensor data obtained by the one or more sensors, that an obstacle (402) is obstructing the first flight path of the first trajectory (410) originating at the first takeoff waypoint; (708) In response to determining that the obstacle (402) is blocking the first flight path, (i) determining a second takeoff waypoint (424) using the sensor data, including assigning the first flight path to begin at a second takeoff waypoint (424); and (ii) modifying the first flight path of the first trajectory (410) in accordance with the second takeoff waypoint (424) by translating the flight path to align with the second takeoff waypoint (424) and rotating the flight path to avoid the obstacle (402) intercepting the flight path, thereby generating a second flight path of a second trajectory (426); and (710) causing the aircraft (100) to follow the second flight path of the second trajectory (426) from the second takeoff waypoint (424). The method includes:
2. (708) determining the second takeoff waypoint (424), (712) using the sensor data to determine that a portion of the aircraft (402) is substantially free of obstacles that are included in an area (432) defined by (i) a candidate second takeoff waypoint, (ii) a flight path beginning at the candidate second takeoff waypoint, and (iii) a clearance zone associated with a size of the aircraft (100); and (714) selecting the candidate second takeoff waypoint as the second takeoff waypoint (424) based on determining that substantially no portion of the obstacle (402) is contained within the area (432). The method of claim 1 , comprising:
3. the second trajectory (426) is a takeoff trajectory determined according to a first flight path selection protocol, and the method further comprises: (716) causing the aircraft (100) to follow the second flight path of the second trajectory (426) from the second takeoff waypoint (424) and then arrive at a cruise waypoint at an end of the second flight path of the second trajectory (426); and (718) At the cruise waypoint, selecting a flight path for a cruise trajectory according to a second flight path selection protocol different from the first flight path selection protocol. The method of claim 1 or 2, further comprising:
4. (724) following the flight path for the cruise trajectory until a descent waypoint is reached; and (726) At the descent waypoint, selecting a flight path for a descent trajectory according to a third flight path selection protocol different from the first flight path selection protocol and the second flight path selection protocol. The method of claim 3 further comprising:
5. The second trajectory is a takeoff trajectory (426) determined according to a first trajectory selection protocol that includes selecting from a set of available trajectories within a set of constraints, and the method further comprises: (730) detecting a trigger event after causing the aircraft (100) to follow the second flight path of the second trajectory (426) from the second takeoff waypoint (424); and (732) in response to detecting the trigger event, transitioning to a second flight path selection protocol that includes generating and selecting a subsequent flight path using a Rapidly Expanding Random Tree (RRT). The method of claim 1 or 2, further comprising:
6. (734) further comprising determining the first trajectory (410), wherein (734) determining the first trajectory (410) comprises: (736) Receiving information indicative of a plurality of past trajectories taken during takeoff of a plurality of aircraft; (738) determining common characteristics of the plurality of past orbits; and (740) generating said first trajectory (410) based on said common features. The method of any one of claims 1 to 5, comprising:
7. in response to determining that the obstacle (402) is obstructing the first flight path of the first trajectory (410), (742) causing the aircraft to hover at a second hover point corresponding to the second takeoff waypoint (424); (744) scanning the environment of the aircraft a second time; and (746) determining that no obstacle is obstructing the second flight path of the second trajectory (426) from the second takeoff waypoint (424); Further comprising: (710) causing the aircraft to follow the second flight path of the second trajectory (426) from the second takeoff waypoint (424) includes (748) causing the aircraft to follow the second flight path of the second trajectory (426) from the second takeoff waypoint (424) in response to determining that there is no obstacle obstructing the second flight path of the second trajectory (426) from the second takeoff waypoint (424).
7. The method according to any one of claims 1 to 6.
8. 8. The method of claim 1, wherein determining the second takeoff waypoint includes rotating the first flight path through a set of predetermined nominal orientations at the predetermined hover point to determine whether any of the set of predetermined nominal orientations avoids the obstacle.
9. (708) determining the second takeoff waypoint (424), (752) rotating said first flight path through said set of predetermined nominal orientations at said predetermined hover point (408) until reaching a predetermined nominal orientation that avoids said obstacle (402). The method of claim 8 further comprising:
10. (708) determining the second takeoff waypoint (424), (754) determining that there is no predefined nominal orientation among said set of predefined nominal orientations that avoids said obstacle (402); (756) translating the first flight path to a predetermined nominal hover point; and (758) rotating said first flight path through a second set of predetermined nominal orientations at said predetermined nominal hover point until reaching a predetermined nominal orientation that avoids said obstacle (402). The method of claim 8 further comprising:
11. 1. A system for generating a flight path for navigating an aircraft (100), comprising: one or more sensors; A computing device (102) having a processor (104) and a memory (106) storing instructions (108) executable by the processor (104); and wherein the instructions include: hovering the aircraft (100) at a predetermined hover point (408) corresponding to a first takeoff waypoint of a first trajectory (410) of the aircraft (100); scanning at least a portion of a first flight path of the first trajectory (410) with one or more sensors associated with the aircraft (100); determining, using sensor data obtained by the one or more sensors, that an obstacle (402) is obstructing the first flight path of the first trajectory (410) originating at the first takeoff waypoint; in response to determining that the obstacle (402) is obstructing the first flight path, (i) determining a second takeoff waypoint (424) using the sensor data, including assigning the first flight path to begin at a second takeoff waypoint (424); and (ii) modifying the first flight path of the first trajectory (410) in accordance with the second takeoff waypoint (424) by translating the first flight path to align with the second takeoff waypoint (424) and rotating the first flight path to avoid the obstacle (402) intercepting the first flight path, thereby generating a second flight path of a second trajectory (426). and causing the aircraft (100) to follow the second flight path of the second trajectory (426) from the second takeoff waypoint (424); system.
12. 12. The system of claim 11, wherein the one or more sensors include a light detection and ranging (LIDAR) device (122), and the sensor data includes three-dimensional (3D) point cloud data detected by the LIDAR device (122).
13. The method further includes a user interface (110), wherein determining the second takeoff waypoint (424) comprises: determining a plurality of candidate second takeoff waypoints for avoiding the obstacle (402); providing, via the user interface (110), a selectable option at each of the plurality of candidate second takeoff waypoints that avoid the obstacle (402); and receiving, via the user interface (110), an indication of a selected candidate second takeoff waypoint that corresponds to the second takeoff waypoint (424); The system according to claim 11 or 12, comprising:
14. and determining the second takeoff waypoint (424) further comprising: receiving from the ground control system a range of acceptable heights and orientations for takeoff of the aircraft (100); and determining that the second takeoff waypoint (424) is within the acceptable range of height and orientation; The system according to any one of claims 11 to 13, comprising:
15. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors of a computing device (102), cause the computing device (102) to: hovering the aircraft (100) at a predetermined hover point (408) corresponding to a first takeoff waypoint of a first trajectory (410) of the aircraft (100); scanning at least a portion of a first flight path of the first trajectory (410) with one or more sensors associated with the aircraft (100); determining, using sensor data obtained by the one or more sensors, that an obstacle (402) is obstructing the first flight path of the first trajectory (410) originating at the first takeoff waypoint; in response to determining that the obstacle (402) is obstructing the first flight path, (i) determining the second takeoff waypoint (424) using the sensor data, including assigning the first flight path to begin at a second takeoff waypoint (424); and (ii) modifying the first flight path of the first trajectory (410) in accordance with the second takeoff waypoint (424) by translating the first flight path to align with the second takeoff waypoint (424) and rotating the first flight path to avoid the obstacle (402) intercepting the first flight path, thereby generating a second flight path of a second trajectory (426); and causing the aircraft (100) to follow the second flight path from the second takeoff waypoint (424) along the second trajectory (426); A non-transitory computer readable medium that causes functionality to be performed, including:
Citation Information
Patent Citations
Ground collision avoidance controller for helicopter
JP1999271442A
Helicopter guidance controller
JP2000272592A
System for navigation of unmanned aerial vehicle and method used for the same
JP2010095246A
Method and system for flying ducted-fan aircraft
JP2011037426A
Flight altitude setting method of unmanned aircraft and unmanned aircraft system
JP2019015670A