System and method for generating a flight path to navigate an aircraft
The take-off waypoint of the aircraft is determined and adjusted through sensor data, which solves the problem that the hovering aircraft is difficult to avoid obstacles during take-off and landing, and achieves high adaptability and comfort flight path generation.
Patent Information
- Application Number
- CN202010708404.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-07-29
- Filing Date
- 2020-07-22
- Publication Date
- 2025-03-18
- Estimated Expiration
- 2040-07-22
AI Technical Summary
The prior art has difficulty meeting the navigation needs of hovered aircraft during takeoff and landing in terms of adaptability, comfort and consistency, especially in environments with multiple obstacles.
A new flight path is generated by scanning the flight path through sensors associated with the aircraft, identifying obstacles and responsively adjusting the takeoff waypoint, translating and rotating the flight path to avoid obstacles.
It is achieved without sacrificing comfort and reliability, and generates highly adaptable flight paths for the aircraft, avoiding obstacles, and ensuring stable and smooth operation of the aircraft.
Smart Images

Figure CN112306087B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates generally to operation of an aircraft, and more particularly to systems and methods for generating a flight path to navigate an aircraft. Background Art
[0002] Aircraft that are able to hover in place, such as helicopters or vertical and / or short takeoff and landing (V / STOL) aircraft, can take off and land differently than aircraft that use runways. In particular, such aircraft are not constrained to a path associated with a runway, but can hover and rotate before taking off or landing. This allows these aircraft to take off and / or land in restrictive environments with multiple obstacles.
[0003] Manned flights of aircraft that can hover in place rely on the pilot's experience and intuition, and automating these flights (especially in the case of takeoff and landing) presents difficulties. For example, it is desirable for the system to maintain aircraft stability and a smooth flight path while avoiding obstacles to maintain passenger comfort, and to do so in different flight environments. Existing systems and methods for automatic flight path planning may have difficulty meeting these requirements in terms of adaptability, comfort, and consistency.
[0004] What is needed is a system for automatically generating a flight path for navigating an aircraft, particularly during takeoff and landing. Summary of the invention
[0005] In one example, a method of generating a flight path to navigate an aircraft is described. The method includes causing the aircraft to hover at a predetermined hover point, wherein the predetermined hover point corresponds 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 by one or more sensors associated with the aircraft. The method includes using sensor data obtained by the one or more sensors to determine that an obstacle obstructs a first flight path of the first trajectory, wherein the first flight path begins at the first takeoff waypoint. The method includes: in response to determining that the obstacle obstructs the first flight path, using the sensor data to determine a second takeoff waypoint, wherein determining the second takeoff waypoint includes: specifying that the first flight path begins at the second takeoff waypoint, and by translating the first flight path to align it with the second takeoff waypoint and rotating the first flight path to avoid the obstacle obstructing the first flight path, thereby changing the first flight path of the first trajectory according to the second takeoff waypoint, 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 example, a system for generating a flight path to navigate an aircraft is described. The system includes an aircraft. The aircraft includes one or more sensors and a computing device having a processor and a memory storing instructions, the instructions executable by the processor to perform functions. The instructions are executable by the processor to cause the aircraft to hover at a predetermined hover point, wherein the predetermined hover point corresponds 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 a first flight path of the first trajectory through one or more sensors associated with the aircraft. The instructions are executable by the processor to determine that an obstacle obstructs the first flight path of the first trajectory using sensor data obtained by the one or more sensors, wherein 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 obstructs the first flight path, determine a second takeoff waypoint using the sensor data, wherein determining the second takeoff waypoint includes designating the first flight path to begin at the second takeoff waypoint, and altering the first flight path of the first trajectory according to the second takeoff waypoint by translating the first flight path to align it 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 having instructions stored thereon is described, the instructions causing the computing device to perform functions when executed by one or more processors of a computing device. The functions include causing an aircraft to hover at a predetermined hover point, wherein the predetermined hover point corresponds to a first takeoff waypoint of a first trajectory of the aircraft. The functions include scanning at least a portion of a first flight path of the first trajectory by one or more sensors associated with the aircraft. The functions include determining, using sensor data obtained by the one or more sensors, that an obstacle obstructs the first flight path of the first trajectory, wherein the first flight path begins at the first takeoff waypoint. The functions include: in response to determining that the obstacle obstructs the first flight path, (i) determining a second takeoff waypoint using the sensor data, wherein determining the second takeoff waypoint includes: specifying that the first flight path begins at the second takeoff waypoint; (ii) changing the first flight path of the first trajectory according to the second takeoff waypoint by translating the first flight path to align it with the second takeoff waypoint and rotating the first flight path to avoid the obstacle obstructing the first flight path. The functions include causing the aircraft to follow the flight path of the first trajectory from the second takeoff waypoint.
[0008] The features, functions, and advantages that have been discussed can be achieved independently in various examples or may be combined in yet other examples.More details of the examples can be seen with reference to the following description and drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The novel features which are believed to be characteristic of the exemplary embodiments are set forth in the appended claims. However, the illustrative examples together with the preferred modes of use, further objects and description thereof will be best understood by reference to the following detailed description of illustrative examples of the disclosure when read in conjunction with the accompanying drawings, in which:
[0010] Figure 1A A block diagram of an aircraft is shown according to an example implementation.
[0011] Figure 1B A flow chart of a trajectory generation module for an aircraft is shown according to an example implementation.
[0012] Figure 2 An aircraft is shown in a takeoff context according to an example implementation.
[0013] Figure 3 An aircraft is shown in a landing context according to an example implementation.
[0014] Figure 4A A side view of an aircraft is shown in another takeoff context according to an example embodiment.
[0015] Figure 4B A top view of an aircraft is shown in another takeoff context according to an example embodiment.
[0016] Figure 5 An aircraft is shown in another landing environment according to an example implementation.
[0017] Figure 6 An aircraft is shown in another landing environment according to an example implementation.
[0018] Figure 7 A flow chart of a method of generating a takeoff flight path to navigate an aircraft is shown according to an example implementation.
[0019] Figure 8 According to an example embodiment, Figure 7 The method shown is used in conjunction with a flow chart of another method.
[0020] Fig. 9 According to an example embodiment, Figure 7 The method shown is used in conjunction with a flow chart of another method.
[0021] Fig.10 According to an example embodiment, Figure 5 and Fig. 9 The method shown is used in conjunction with a flow chart of another method.
[0022] Fig.11 According to an example embodiment, Figure 7 and Fig. 9 The method shown is used in conjunction with a flow chart of another method.
[0023] Fig.12 According to an example embodiment, Figure 7 and Fig. 9 The method shown is used in conjunction with a flow chart of another method.
[0024] Fig.13 According to an example embodiment, Figure 7 , Fig. 9 and Fig.12 The method shown is used in conjunction with a flow chart of another method.
[0025] Fig.14 According to an example embodiment, Figure 7 The method shown is used in conjunction with a flow chart of another method.
[0026] Fig.15 According to an example embodiment, Figure 7 The method shown is used in conjunction with a flow chart of another method.
[0027] Fig.16 According to an example embodiment, Figure 7 The method shown is used in conjunction with a flow chart of another method.
[0028] Fig.17 According to an example embodiment, Figure 7 The method shown is used in conjunction with a flow chart of another method.
[0029] Fig.18 According to an example embodiment, Figure 7 and Fig.17 The method shown is used in conjunction with a flow chart of another method.
[0030] Fig.19 According to an example embodiment, Figure 7 and Fig.17 The method shown is used in conjunction with a flow chart of another method. DETAILED DESCRIPTION
[0031] The disclosed examples will now be described more fully hereinafter with reference to the accompanying drawings, in which some but not all of the disclosed examples are shown. In fact, several different examples may be described, and they should not be construed as limited to the examples set forth herein. Instead, these example descriptions are provided so that the disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
[0032] In the examples, systems and methods for generating a flight path to navigate an aircraft are described. More specifically, methods and systems for automatically performing this operation are described. For the purposes of the following description, the terms "automatically" or "autonomously" may refer to programmatically performing a function based on sensor data, stored information, machine learning techniques, etc. without user input and / or instructions. In this context, if a user action prompts the function at some point, the function may still be referred to as automatic or autonomous.
[0033] In some examples, an aircraft can take off using a predetermined trajectory. The predetermined trajectory can predictably, reliably and comfortably facilitate the aircraft to rise to a cruising altitude. In other words, the predetermined trajectory can be similar to the trajectory of a human pilot. However, when taking off, an aircraft (especially an aircraft that does not use a runway) may encounter various obstacles, such as trees, hills, buildings, etc. Identifying and avoiding such obstacles allows the aircraft to rise without hitting such objects. However, doing this automatically may cause the aircraft to take an unstable or uneven path, causing items to move within the aircraft and reducing passenger comfort. In addition, avoiding these obstacles by changing the flight path of the predetermined trajectory may result in an untested or less predictable flight path depending on the obstacles. Therefore, in some examples, the aircraft can change the waypoints associated with takeoff, but otherwise maintain the flight path of the predetermined trajectory. Therefore, the present application describes an example that allows an aircraft to take off without sacrificing comfort or reliability.
[0034] In other examples, the protocol used for flight path selection can change depending on the flight environment of the aircraft. For example, the aircraft can use a first protocol when taking off, a second protocol when cruising, and a third protocol when landing. For example, when taking off, the aircraft can use a brute force approach to generate and select a flight path, which selects from a set of possible flight paths within a set of constraints (e.g., to save computing resources), while when cruising, the aircraft can use a rapidly expanding random tree (RRT) to generate and select a flight path, and when landing, the aircraft can use a combination of a brute force approach and an RRT approach. Thus, the present application describes examples that allow the use of protocols that are particularly suitable for each given context for robust flight path solutions.
[0035] Turning now to the accompanying drawings, Figure 1A A block diagram of an aircraft 100 is shown according to an example implementation. Aircraft 100 includes computing device 102, navigation system 112, obstacle detection system 120, trajectory generation system 128, and steering / hover mechanism 132. Other devices, systems, devices, modules, software, data storage devices, etc. may also be included. In addition, in some examples, with respect to Figure 1A The various components described may be integrated into a single computing device or system, separated into more discrete components, or otherwise rearranged to achieve functionality similar to that described herein. In addition, the various systems, devices, and mechanisms may be implemented in software or hardware contexts.
[0036] The computing device 102 includes one or more processors 104, a 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 instructions 108 (e.g., computer readable program instructions) that are stored in the memory 106 and executable to provide the functionality of the computing device 102 and the related systems and methods described herein.
[0037] The memory 106 may include or appear as one or more computer-readable storage media that can be read or accessed by one or more processors 104. The computer-readable storage media may include volatile and / or non-volatile storage components, such as optical storage, magnetic storage, organic storage, or other storage or disk storage devices, which may be integrated with the processor 104 in whole or in part. The memory 106 is considered to be a non-transitory computer-readable medium. In some examples, the memory 106 may be implemented using a single physical device (e.g., an optical storage, magnetic storage, organic storage, or other storage or disk storage unit), while in other examples, the memory 106 may be implemented using two or more physical devices. Therefore, the memory 106 is a non-transitory computer-readable storage medium, and instructions 108 executable by one or more processors 104 are stored on the memory 106. The instructions 108 include computer executable code and may be executed by one or more processors 104 to implement the functions described herein.
[0038] User interface 110 may include a mouse, keyboard, touch screen, microphone, gesture recognition system, combination thereof, or any other device that receives user input. In particular, user interface 110 may be configured to receive input from a pilot of aircraft 100 or a remote technician of aircraft 100, for example.
[0039] like Figure 1A As shown, computing device 102 is communicatively coupled to navigation system 112, obstacle detection system 120, trajectory generation system 128, and steering / hover mechanism 132. Figure 1A 104, memory 106, and instructions 108, and each of these components of aircraft 100 may include one or more processors, memories, and instructions configured similarly to the one or more processors 104, memory 106, and instructions 108 described above, and each component may include instructions executable to perform different functions. In addition, although these components are not depicted as being in direct communication (instead, they are shown as communicating via computing device 102), each of these components may communicate directly with each other, or operate independently without receiving communications from each other.
[0040] Navigation system 112 includes a global positioning system (GPS) 114, an inertial navigation system (INS) 116, and an inertial measurement unit (IMU) 118. Navigation system 112 and / or one or more of its components are configured to determine the position, orientation, and altitude of aircraft 100. More specifically, one or more of GPS 114, INS 116, and IMU 118 may obtain sensor data indicative of the position, orientation, and altitude of aircraft 100 (although not shown, for example, an altimeter may also be included). This information may be transmitted to computing device 102 in the form of unprocessed sensor data or as target information indicative of the position, orientation, and altitude of aircraft 100. For example, navigation system 112 may send a simplified representation of the sensor data. As described below, computing device 102 and / or one or more additional components of aircraft 100 may use this information to generate and select a flight path for aircraft 100.
[0041] The obstacle detection system 120 includes a light detection and ranging (LIDAR) device 122, an image capture device 124 (e.g., a camera, an array of light sensors, 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 obtain sensor data indicating 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 around the aircraft 100 (e.g., an area corresponding to a planned flight path) to obtain data indicating any objects or the absence of objects within the environment. The sensor data may include three-dimensional (3D) point cloud data, image data, or other data indicating the presence or absence of an object (e.g., an obstacle). The information may be sent to the computing device 102 in the form of unprocessed sensor data or as target information indicating the environment around the aircraft 100. For example, the obstacle detection system may send 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 to generate and select a flight path for aircraft 100 .
[0042] The trajectory generation system 128 includes a trajectory decision module 130. The generation system may receive information from the navigation system 112 and from the computing device 102 to determine a trajectory including a flight path for the aircraft to follow. The trajectory generation system 128 may be a stand-alone computing device, or may alternatively be included as part of the computing device 102, the navigation system 112, or any other component of the aircraft 100. More details about the trajectory generation system 128 and the trajectory decision module 130 are provided below. Figure 1B Give a description.
[0043] The steering / hovering mechanism 132 may include one or more rotors, thrusters, stabilizers, ailerons, elevators, or other controllable operating devices of the aircraft 100. The computing device 102 may send control signals to the steering / hovering mechanism 132 to implement various aspects of determining the trajectory and / or flight path of the aircraft 100.
[0044] Figure 1B A flow chart of the trajectory decision module 130 of the aircraft 100 is shown according to an example implementation. In particular, Figure 1B A logic diagram depicting a simplified method of determining a trajectory using the trajectory decision module 130 is shown. The trajectory decision module 130 may be a software program having a memory stored in the trajectory generation system 128 and executable to implement Figure 1B The instructions for the functionality shown. A flow chart representing aspects of the functionality includes blocks 134-150.
[0045] At block 134 , the functionality includes determining a flight context for the aircraft 100 using information received from the navigation system 112 indicating one or more of the position, orientation, and altitude of the aircraft 100 or instructions received from the computing device 102 .
[0046] Figure 1B A takeoff context, a cruise context, or a landing context are depicted, but other types of contexts are possible. For example, rather than having a discrete context for determining the trajectory generation and selection method, these decisions can be simulated and various weights can be applied to different factors (e.g., altitude, speed, rotation speed, user input, and / or other factors that determine the type of trajectory generation and selection protocol). In some examples, this may involve a cost function that evaluates different trajectory scenarios against each other and has a desired output of the minimum rotational jerk and / or linear jerk produced by each given trajectory.
[0047] Back to Figure 1B , at box 136, the functionality includes determining whether there is an obstacle in the takeoff context. This may include receiving sensor data from the obstacle detection system 120, or receiving instructions from the computing device 102. If an obstacle has not been detected, the predetermined takeoff trajectory may be maintained (i.e., not changed) at box 144. If an obstacle has been detected, a brute force 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. Although the second flight path is formed, the flight path may differ from the first flight path only in certain aspects so as to maintain stability and comfort during takeoff while avoiding obstacles. For example, as further described below, the second flight path may be a rotated and / or translated version of the first flight path. In the context of the present disclosure, a brute force approach may refer to selecting from each available flight path within a set of constraints. For example, the set of constraints in the takeoff context may include a predetermined hover point for takeoff, a flight path of a predetermined trajectory for takeoff, and a clearance zone associated with the size of the aircraft 100.
[0048] In some cases, selecting from every available flight path can be computationally taxing. However, in a takeoff context with appropriate constraints, this is ameliorated to some extent. For example, the available flight paths are initially constrained by the ground surface that blocks the downward flight path. Further limiting the possible flight paths to a subset of flight paths that are available, for example, in an area around the flight path of the predetermined trajectory of the aircraft 100 allows for reduced computational burden and faster flight path solutions.
[0049] At box 138, the function includes receiving a function that includes determining whether an obstacle exists in the cruise context. This may include receiving sensor data from the obstacle detection system 120, or receiving instructions from the computing device 102. If an obstacle has not been detected, or if an obstacle has been detected, the trajectory decision module 130 may use the RRT approach 146 to generate and select a flight path. In some examples, this may involve a random selection using the available space in front of the aircraft 100. In this case, available refers to the obstacle-free space around the current flight path of the aircraft 100. In some examples, different types of methods may be used, such as RRT* algorithm, Parti-game Directed RRT (PDRRT), closed-loop rapid exploration tree (CL-RRT), rapid exploration random graph (RRG), Voronoi diagram, visibility diagram, backward horizontal motion plan, or other algorithms for generating and / or selecting a path. Such a method may be suitable for quickly selecting a flight path through an open space, where there are many (e.g., thousands) of available options for flight paths.
[0050] At box 140, functionality includes determining whether an obstacle is present in the landing context. This may include receiving sensor data from the obstacle detection system 120, or receiving instructions from the computing device 102. If an obstacle has not been detected, then at box 150 the predetermined landing trajectory may be maintained (i.e., not changed). At box 148, if an obstacle is detected, functionality includes determining an updated waypoint for takeoff. For example, a brute force approach may be used primarily or initially to generate and select a trajectory, and at box 148, a decision may be made to continue using the brute force approach (box 152) or to switch to an RRT approach (box 154), which may complement or override the brute force approach in a particular context.
[0051] Further description of these contexts and the generation and selection of trajectories will be described below. For purposes of the following disclosure, a trajectory may relate to the speed of the aircraft 100 and the path of the aircraft 100, and a trajectory may be defined using a plurality of points connected to form a spline defining a corresponding flight path. At certain points along the flight path, waypoints may be included that represent goals for the aircraft 100 to achieve before changing the flight context. For example, a mission for the aircraft 100 may include a takeoff waypoint at which the aircraft 100 begins its takeoff, a cruise waypoint at the end of a predetermined takeoff trajectory, a descent waypoint at which the aircraft begins its transition to landing, and a landing waypoint at the end of a predetermined landing trajectory. These will be described below with reference to Figure 2 , Figure 3 , Figure 4A , Figure 4B , Figure 5 and Figure 6 Further solution.
[0052] Figure 2 Aircraft 100 is shown in takeoff context 200 according to an example embodiment. In particular, Figure 2 An example scenario is shown in which the aircraft 100 encounters no obstacles. In the takeoff context 200, the aircraft is initially parked on the ground 202 and begins to approach a predetermined hover point 208, where a predetermined takeoff trajectory 210 begins. The aircraft 100 follows a translation path 206 (on which its position is translated) from the takeoff point 204 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 may rotate to align with the direction of the flight path of the predetermined takeoff trajectory 210. Upon reaching the predetermined hover point, the obstacle detection system 120 may scan along the direction of the predetermined takeoff trajectory 210 (e.g., an area in front of the aircraft 100 defined in part by the dimensions of the aircraft 100), or more generally scan the environment surrounding the aircraft 100, to determine whether a portion of an obstacle is obstructing the flight path of the aircraft 100 using the predetermined takeoff trajectory 210.
[0053] In this example scenario, no obstacles are detected, so 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 of a plurality of points in space (e.g., point 212 and point 214) that are connected to form a spline that describes predetermined takeoff trajectory 210.
[0054] In some examples, forming the predetermined takeoff trajectory 210 may be determined based on a machine learning algorithm trained using manned flights of the aircraft 100 and / or other aircraft. In other examples, the predetermined takeoff trajectory 210 may be determined by combining multiple past flights of the aircraft 100. In other examples, 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., an acceleration intended to remain constant or nearly constant during takeoff). In further examples, the predetermined takeoff trajectory 210 may be set by a user via the user interface 110. Other ways of forming the predetermined trajectory are possible.
[0055] Figure 3 An aircraft 100 is shown in a landing context 300 according to an example embodiment. In particular, Figure 3An example scenario is shown in which the aircraft 100 encounters no obstacles. In landing context 300, the aircraft 100 follows a predetermined landing trajectory 302 defined by vectors 304 and 306 and terminates at landing waypoint 306. At 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 202. While following the predetermined landing trajectory 302, the obstacle detection system 120 may periodically scan for obstacles. Because no obstacles are detected in the example scenario, the aircraft 100 maintains the predetermined landing trajectory 302.
[0056] In some examples, forming the predetermined landing trajectory 302 may be used in conjunction with the above description of Figure 2 The predetermined takeoff trajectory 210 is formed in a similar manner. In particular, the predetermined landing trajectory can be formed to decelerate at a constant or nearly constant rate.
[0057] Figure 4A A side view of aircraft 100 is shown in another takeoff context 400 according to an example embodiment. In particular, Figure 4A An example scenario is shown in which the aircraft 100 detects an obstacle 402. In this example, the aircraft 100 launches from a takeoff point 404 on the ground 202. 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 an obstacle 402 (which is depicted as a tree). The obstacle 402 intersects the first trajectory 410 defined by points 412 and 414, so it is determined that the takeoff waypoint and the corresponding hover point should be changed.
[0058] To change the takeoff waypoint, the aircraft 100 can iterate through a series of nominal hover points and orientations to determine whether any of them avoids the obstacle until such a hover point and / or orientation is deemed to avoid the obstacle. For example, this can involve rotating in predetermined increments (e.g., in 5 degree increments) within a predetermined orientation range (e.g., 15 degrees to either side of the first trajectory 410). In addition to rotating and / or translating the trajectory to match the nominal orientation that avoids the obstacle, the predetermined takeoff trajectory (e.g., the first trajectory 410) can be maintained in this context. In this way, a brute force approach is used to generate a takeoff trajectory that limits which flight paths are considered and / or selected. In some examples, this may involve physically rotating and translating the aircraft 100 and scanning the environment at each nominal point while rotating and translating the aircraft 100. In other examples, these rotations and / or translations can be performed virtually using sensor data obtained by the obstacle detection system 120.
[0059] In this example, the aircraft 100 rotates through a series of nominal orientations at the predetermined hover point 408, but none of the nominal orientations avoids the obstacle 402. The process is repeated at the second hover point 416 according to the nominal trajectory 418 defined by points 420 and 422, and the process is repeated again at the third hover point 424 according to the second trajectory 426 defined by points 428 and 430. In this example, at the third hover point 424 and the nominal orientation of the aircraft 100, a takeoff waypoint is determined that avoids the obstacle. Therefore, the aircraft 100 follows the second trajectory 426 starting from the hover point 424.
[0060] Figure 4B A top view of aircraft 100 in another takeoff context 400 is shown according to an example embodiment. In particular, Figure 4B 4 shows a representation of how the aircraft 100 rotates through a nominal orientation to determine a takeoff waypoint that allows obstacle 402 to be avoided. Figure 4B As shown, in this example, the defined first trajectory 410 defined by points 412 and 414 and the nominal trajectory 418 defined by points 420 and 422 will cause the aircraft 100 to intersect the obstacle 402. However, the hover point 424 corresponding to the second trajectory 426 defined by points 428 and 430 does not intersect and is therefore selected as the takeoff waypoint for takeoff.
[0061] Determining that the obstacle will not obstruct the aircraft 100 may involve 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 the area 432 defined by the potential takeoff waypoint (e.g., hover point 424), the flight path from the potential takeoff waypoint (e.g., the flight path corresponding to the second trajectory 426), and the clearance zone associated with the size of the aircraft. For example, the rotor of the aircraft 100 may be 25 meters, and the clearance zone may include an additional gap (e.g., 5 meters). Therefore, the selection of the takeoff waypoint may be determined based on the clearance zone of the aircraft 100.
[0062] Figure 5 An aircraft 100 is shown in another landing context 500 according to an example embodiment. In particular, Figure 5 FIG. 1 shows an aircraft 100 that is landing using a brute force approach. Figure 5As shown, the aircraft 100 starts on a predetermined trajectory 514 defined by points 516, 518, and 520, and ends at a hover point 510 corresponding to a landing waypoint. However, during the descent, the aircraft 100 detects an obstacle 402 that blocks the predetermined trajectory 514. In the landing context 500, the aircraft 100 can use a flight path selection protocol to generate and select different trajectories. In particular, the protocol corresponding to the landing context 500 may include: first using a brute force approach, and if the brute force approach does not provide a satisfactory trajectory, then using an RRT approach. In other examples of the protocol, a brute force approach or an RRT approach may be used simultaneously and compared to determine which is more ideal. For example, the points corresponding to each estimated trajectory may be input into a cost function that is weighted to favor low linear jerk and low rotational jerk within other constraints (e.g., speed and nose angle) associated with keeping the aircraft 100 airborne. In other examples, a trained machine learning model may be used to evaluate each corresponding trajectory.
[0063] Qualitatively speaking, a brute force approach may generally perform better than an RRT when crossing an obstacle, while an RRT approach may perform better than a brute force approach when going around an obstacle. Thus, for purposes of example, in landing scenario 500, a landing trajectory 502 defined by points 504, 506, and 508 is generated and selected. Thus, in some examples, aircraft 100, and more specifically computing device 102, may use obstacle detection system 120 to determine that an obstacle is below the bottom of aircraft 100 in the current state, and accordingly select a brute force approach to generate a new trajectory (e.g., temporarily flatten the trajectory). Conversely, computing device 102 may use obstacle detection system 120 to determine that an obstacle is in front of the front of aircraft 100 in the current state, and in response select an RRT approach to generate a new trajectory (e.g., a temporary lateral movement trajectory). Other examples of protocols operating for landing contexts are possible.
[0064] Figure 6 An aircraft 100 is shown in another landing context 600 according to an example embodiment. In particular, Figure 6An overhead view of aircraft 100 is shown laterally avoiding obstacle 402. In this example, a predetermined trajectory 618 defined by points 620, 622, 624, 626, 628, and 630 directed toward hover point 616 intersects obstacle 402. In this example, obstacle 402 is located directly in front of aircraft 100 (i.e., not under the bottom of aircraft 100), so lateral movement according to the RRT approach is determined to be appropriate. In particular, the RRT approach generates a landing trajectory 602 defined by points 604, 606, 60, 610, 612, and 614 and ending at hover point 616. The selection of an RRT approach over a brute force approach according to a landing trajectory protocol can be described above with respect to Figure 5 Performed as described.
[0065] Figure 7 A flow chart of a method 700 of generating a takeoff flight path for navigating aircraft 100 is shown according to an example implementation. Figure 7 The method 700 shown in FIG. 7 presents a method that can be used with Figure 1A The aircraft 100 or a component of the aircraft 100 shown in Figure 1A In addition, the device or system may be configured to perform Figure 7 The logical functions shown in the figure. In some cases, the parts of the device and / or system can be configured to perform functions so that these parts are actually configured and structured (by hardware and / or software) to achieve this performance. In other examples, the parts of the device and / or system can be arranged to be suitable for, capable of or applicable to perform functions, such as when operating in a particular manner. Method 700 may include one or more operations, functions or actions as shown in one or more of the blocks 702-710. Although these blocks are shown in a certain order, these blocks can also be performed in parallel and / or in an order different from the order described herein. Moreover, each block can be combined into fewer blocks based on the desired implementation, divided into other blocks and / or removed.
[0066] It should be understood that for the process and other processes and methods disclosed herein, the flowchart shows the functions and operations of a possible implementation of this example. In this regard, each box or part of each box can represent a module, a segment or a portion of a program code, which includes one or more instructions that can be executed by a processor for a specific logical function or step in the implementation process. The program code can be stored on any type of computer-readable medium or data storage device, for example, a storage device including a disk or a hard drive. In addition, the program code can be encoded on a computer-readable storage medium or on other non-transitory media or products in a machine-readable format. The computer-readable medium may include a non-transitory computer-readable medium or memory, for example, a computer-readable medium that stores data in a short time such as a register memory, a processor cache, and a random access memory (RAM). The computer-readable medium may also include a non-transitory medium, such as a secondary or permanent long-term storage device, such as a read-only memory (ROM), an optical disk or a disk, a CD-ROM read-only memory (CD-ROM). The computer-readable medium may also be any other volatile or non-volatile storage system. For example, a computer-readable medium may be considered to be a tangible computer-readable storage medium.
[0067] In addition, Figure 7 Each box or portion of each box in the process and other processes and methods disclosed herein may represent a circuit that is wired to perform a specific logical function in the process. As reasonably understood by those skilled in the art, alternative implementations are included within the scope of the examples of the present disclosure, where functions may not be performed in the order shown or discussed (including substantially simultaneously or in reverse order) depending on the functions involved.
[0068] At block 702, the method 700 includes causing the aircraft 100 to hover at a predetermined hovering point 408, wherein the predetermined hovering point 408 corresponds to a first takeoff waypoint of a first trajectory 410 of the aircraft. Figure 4A and Figure 4B Follow the diagrams and corresponding descriptions in the .
[0069] At block 704, method 700 includes scanning at least a portion of a first flight path of first trajectory 410 via one or more sensors associated with aircraft 100. For example, the first flight path of first trajectory 410 may be scanned via one or more sensors associated with aircraft 100. Figure 1A The obstacle detection system 120 performs a scan of a portion of the first flight path.
[0070] At block 706, method 700 includes determining, using sensor data obtained by one or more sensors, that obstacle 402 obstructs a first flight path of first trajectory 410, wherein the first flight path originates from the first takeoff waypoint. Determining that obstacle 402 obstructs the first flight path may include comparing a current position of aircraft 100 to a detected position of obstacle 402, and determining that at least a portion of obstacle 402 falls within area 432 corresponding to a clearance zone associated with a size of aircraft 100.
[0071] At block 708, method 700 includes, in response to determining that obstacle 402 is obstructing the first flight path, (i) determining a second takeoff waypoint for first trajectory 410 using sensor data, wherein determining the second takeoff waypoint includes specifying that the first flight path begins at the second takeoff waypoint, and (ii) altering the first flight path of first trajectory 410 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 obstacle 402 obstructing the first flight path, thereby forming a second flight path for second trajectory 426. This may be based on Figure 4A and Figure 4B For example, second trajectory 426 may correspond to changing the first flight path of first trajectory 410 by rotating and / or translating first trajectory 410 to take off from a second takeoff waypoint. As described above, this may involve otherwise maintaining a predetermined trajectory for takeoff of aircraft 100 to maintain stability and comfort for takeoff.
[0072] At block 710, method 700 includes causing aircraft 100 to follow a second flight path of second trajectory 426 from a second takeoff waypoint. Figure 4A and Figure 4B Follow the diagrams and corresponding descriptions in the .
[0073] Figure 8 According to an example embodiment, Figure 7 Flowchart of another method for use with the method 700 shown. In particular, Figure 8 Blocks 712 and 714 are shown as being executed in accordance with block 708. At block 712, method 700 includes using sensor data to determine that substantially no portion of obstacle 402 falls within an area defined by: (i) a possible second takeoff waypoint (e.g., corresponding to Figure 4B (ii) a flight path from a possible second takeoff waypoint (e.g., corresponding to the hover point 424 shown in FIG. Figure 4B ), and (iii) a clearance zone associated with the size of the aircraft (e.g., as described above with respect to Figure 4BThe area 432 is described. For example, this can be Figure 4B At block 714, method 700 includes selecting a possible second takeoff waypoint as the second takeoff waypoint based on determining that substantially no portion of obstacle 402 falls within the region. For example, this may be performed as follows: Figure 4B Perform as shown and described.
[0074] Fig. 9 According to an example embodiment, Figure 7 Flowchart of another method for use with the method 700 shown. In particular, Fig. 9 An example is shown in which the second trajectory 426 is a takeoff trajectory determined according to the first flight path selection protocol. In this context, at block 716, the method 700 includes arriving at a cruise waypoint at the end of the second flight path of the second trajectory 426 after causing the aircraft 100 to follow the second flight path of the second trajectory from the second takeoff waypoint. For example, the cruise waypoint may signal the start of a cruise flight context, such as Figure 1B At block 718, method 700 further includes: selecting a flight path for the cruise trajectory at the cruise waypoint according to a second flight path selection protocol that is different from the first flight path selection protocol. Figure 1B As shown, this may involve switching from a brute force approach to an RRT approach to generate and select trajectories in a cruise context.
[0075] Fig.10 According to an example embodiment, Figure 5 and Fig. 9 A flowchart of another method for using the method shown in the figure. In particular, Fig.10 Block 720 is shown. Block 720 is performed according to block 716. At block 716, method 700 includes selecting from a set of available flight paths within a set of constraints, the constraints including the predetermined hover point 408, the flight path, and a clearance zone associated with the size of the aircraft. For example, this may be based on Figure 4B and its corresponding description to execute.
[0076] Fig.11 According to an example embodiment, Figure 7 and Fig. 9 A flowchart of another method for using the method shown in the figure. In particular, Fig.11 Block 722 is shown. Block 722 is performed according to block 718. At block 718, method 700 includes using a rapidly expanding random tree (RRT) to generate and select a flight path for a cruise trajectory. This may be as described above with respect to, for example Figure 1B , Figure 5 and Figure 6Performed as described.
[0077] Fig.12 According to an example embodiment, Figure 7 and Fig. 9 A flowchart of another method for using the method shown in the figure. In particular, Fig.12 Blocks 724 and 726 are shown. At block 724, method 700 includes following the flight path for the cruise trajectory until a descent waypoint is reached. For example, the descent waypoint may mark an approach to a landing point. At block 726, method 700 includes selecting a flight path for the descent trajectory at the descent waypoint according to a third flight path selection protocol that is 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 a brute force approach and an RRT approach in a landing context. This may be based on Figure 5 and Figure 6 and its corresponding description to execute.
[0078] Fig.13 According to an example embodiment, Figure 7 , Fig. 9 and Fig.12 The method shown is used together with another method flow chart. Specifically, Fig.13 Block 728 is shown. Block 728 is performed according to block 726. At block 728, method 700 includes selecting 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 number tree (RRT) when an obstacle 402 is detected in the initial descent path. For example, Figure 5 As shown, if the obstacle 402 is below the aircraft 100, a brute force approach may be implemented, whereas if the obstacle 402 is directly in front of the aircraft 100 and the brute force approach does not generate a path around or over the obstacle (e.g., Figure 6 In some examples, a brute force approach may be used at any time during the descent, but if the brute force approach does not produce a flight path, the flight path generation may be switched to RRT. In other examples, RRT may be used at any time during the descent when obstacles are encountered, otherwise a brute force approach is used.
[0079] Fig.14 According to an example embodiment, Figure 7 Flowchart of another method for use with the method 700 shown. In particular, Fig.14Box 730 and box 732 are shown. Box 730 and box 732 can be performed 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. At box 730, the method 700 includes detecting a triggering event after causing the aircraft 100 to follow a second flight path of the second trajectory 426 from a second takeoff waypoint. For example, the triggering event can be reaching a threshold altitude (e.g., 60 meters above ground level (AGL) or the aircraft's maximum altitude above ground (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 202 is less than 5%), or reaching a cruise waypoint, among other possibilities. At box 732, the method 700 also includes transitioning to a second flight path selection protocol in response to detecting the triggering event, the second flight path selection protocol including using a rapidly expanding random tree (RRT) to generate and select a subsequent flight path. For example, this can be as described above with respect to Figure 1B This is performed in the context of cruising of the aircraft 100 .
[0080] Fig.15 According to an example embodiment, Figure 7 A flowchart of another method for using the method shown in the figure. In particular, Fig.15 Box 734, box 736, box 738, and box 740 are shown. At box 734, method 700 includes determining first trajectory 410. Box 736, box 738, and box 740 are performed according to box 734. At box 736, method 700 includes receiving information indicating multiple past trajectories taken during takeoff of multiple aircraft. For example, the information can be stored in memory 106, a database on aircraft 100, or a remote data storage device. At box 738, method 700 also includes determining common characteristics of multiple past trajectories. For example, this may involve normalizing each trajectory, determining a standard deviation for each point used to define the trajectory, and using an average value for points with low standard deviations (e.g., less than 2%). These points with low standard deviations can be considered common characteristics. Other ways of extracting these characteristics are also possible. At box 740, method 700 includes generating first trajectory 410 based on the common characteristics. For example, this may involve determining an average value of points with low standard deviations and using these average values to define first trajectory 410.
[0081] Fig.16 According to an example embodiment, Figure 7 A flowchart of another method for using the method shown in the figure. In particular, Fig.16Blocks 742-748 are shown. Blocks 742-748 are performed in response to determining that obstacle 402 obstructs the first flight path of first trajectory 410. At block 742, method 700 includes causing aircraft 100 to hover at a second hover point corresponding to a second takeoff waypoint (e.g., at Figure 4A and Figure 4B At block 744, method 700 includes scanning the environment of aircraft 100 again. For example, this may be performed by obstacle detection system 120. At block 746, method 700 includes determining that no obstacles obstruct the second flight path of second trajectory 426 from the second takeoff waypoint. Block 748 is performed in accordance with block 710. At block 748, method 700 includes: in response to determining that no obstacles obstruct the second flight path of second trajectory 426 from the second takeoff waypoint, causing aircraft 100 to follow the second flight path of second trajectory 426 from the second takeoff waypoint. For example, this may be performed as described with respect to Figure 4A and Figure 4B Performed as described.
[0082] Fig.17 According to an example embodiment, Figure 7 Flowchart of another method for use with the method 700 shown. In particular, Fig.17 Block 750 is shown. Block 750 is performed according to block 708. At block 750, method 700 includes rotating the first flight path through a set of nominal orientations at a predetermined hover point to determine whether any of the set of nominal orientations avoids obstacle 402. For example, this may be as described above with respect to Figure 4A and Figure 4B Performed as described.
[0083] Fig.18 According to an example embodiment, Figure 7 and Fig.17 A flowchart of another method for using the method shown in the figure. In particular, Fig.18 Block 752 is shown. Block 750 is performed according to block 708. At block 750, method 700 includes rotating the first flight path through a set of nominal orientations at a predetermined hover point until a nominal orientation that avoids obstacle 402 is reached. Figure 4B Predetermined hover point 408 shown in FIG. 4 does not illustrate this scenario, but in some examples, aircraft 100 may rotate at the predetermined hover point and determine that one of the nominal orientations avoids obstacle 402 .
[0084] Fig.19 According to an example embodiment, Figure 7 and Fig.17 A flowchart of another method for using the method shown in the figure. In particular, Fig.19 Blocks 754, 756, and 758 are shown. Blocks 754, 756, and 758 are performed according to block 708. At block 754, method 700 includes determining that no nominal orientation in the set of nominal orientations avoids obstacle 402. For example, this may be as described with respect to Figure 4A At block 756, the method includes translating the first flight path to the nominal hover point. For example, this may be performed as described with respect to the first hover point 408 in FIG. Figure 4A At block 758, method 700 includes rotating the first flight path at the nominal hover point through a second set of nominal orientations until a nominal orientation is reached that avoids obstacle 402. In some examples, changing one or both of the predetermined hover point and the predetermined orientation includes changing the predetermined hover point to match the nominal hover point and changing the predetermined orientation to match the nominal orientation that avoids obstacle 402.
[0085] In a further embodiment of method 700, according to box 708, determining the second takeoff waypoint includes determining multiple possible second takeoff waypoints that avoid obstacle 402. For example, aircraft 100 can determine multiple nominal orientations and nominal hovering points that avoid obstacle 402. In these examples, the functionality may also include: providing, through user interface 110, selectable options corresponding to each of the multiple possible second takeoff waypoints that avoid obstacle 402. The functionality may also include: receiving, through user interface 110, an indication of a selected possible second takeoff waypoint, wherein the second takeoff waypoint corresponds to the selected possible second takeoff waypoint. In such an example, computing device 102 may designate the selected possible second takeoff waypoint as the second takeoff waypoint. In this manner, a user may trigger certain aspects of a takeoff or landing process. For example, computing device 102 may use such user input for the purpose of training a machine learning model.
[0086] In other embodiments of method 700, the system may include aircraft 100 and a ground control system (not shown in the figures). In these examples, according to block 708, determining the second takeoff waypoint includes receiving a range of acceptable altitudes (e.g., 10-25 meters) and orientations (e.g., approximately east or approximately southeast) for takeoff of aircraft 100 from the ground control system. The function includes determining that the second takeoff waypoint falls within the range of acceptable altitudes and orientations. In these examples, selecting the second takeoff waypoint is performed in response to determining that the second takeoff waypoint falls within the range of acceptable altitudes and orientations. In this way, aircraft 100 and related methods can be implemented autonomously at different landing points with different controls, standards, or rules governing landing and takeoff.
[0087] The systems and methods described herein provide functionality that enables an aircraft to take off and land autonomously. Selecting from a plurality of available protocols based on context allows these functions to be performed reliably and comfortably. In addition, in some examples, protocols are used to reduce the computational burden on the system for generating and selecting trajectories. In other examples, the predetermined trajectory is maintained within a feasible range to ensure consistent takeoff and landing procedures. Therefore, the above-described systems and methods provide a robust, consistent, and comfortable experience for aircraft passengers.
[0088] The terms "substantially," "similar to," and "approximately" as used herein mean that the recited features, parameters, or values need not be achieved precisely, but rather deviations or changes including, for example, tolerances, measurement errors, measurement precision limitations, and other factors known to those skilled in the art may occur in an amount that does not negate the effect that the characteristic is intended to provide.
[0089] The different examples of one or more systems, one or more devices, and one or more methods disclosed herein include various components, features, and functions. It should be understood that the various examples of one or more systems, one or more devices, and one or more methods disclosed herein may include any components, features, and functions in any combination or any subcombination of any other examples of one or more systems, one or more devices, and one or more methods disclosed herein, and all of these possibilities are intended to be within the scope of the present disclosure.
[0090] Furthermore, the present disclosure includes embodiments according to the following clauses:
[0091] Clause 1. A method of generating a flight path for navigating an aircraft (100), comprising:
[0092] (702) causing the aircraft (100) to hover at a predetermined hovering point (408), wherein the predetermined hovering point (408) corresponds to a first take-off waypoint of a first trajectory (410) of the aircraft (100);
[0093] (704) scanning at least a portion of a first flight path of a first trajectory (410) via one or more sensors associated with the aircraft (100);
[0094] (706) using sensor data obtained by the one or more sensors to determine that an obstacle (402) is obstructing a first flight path of a first trajectory (410), wherein the first flight path begins at a first takeoff waypoint;
[0095] (708) in response to determining that the obstacle (402) obstructs the first flight path,
[0096] (i) determining a second takeoff waypoint (424) using the sensor data, wherein determining the second takeoff waypoint (424) includes specifying that the first flight path begins at the second takeoff waypoint (424), and
[0097] (ii) altering the first flight path of the first trajectory (410) according to 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
[0098] (710) The aircraft (100) is caused to follow a second flight path of a second trajectory (426) from a second takeoff waypoint (424).
[0099] Clause 2. The method of clause 1, wherein (708) determining the second takeoff waypoint (424) comprises:
[0100] (712) using the sensor data to determine that substantially no portion of the obstacle (402) falls within an area (432) defined by: (i) a possible second takeoff waypoint, (ii) a flight path from the possible second takeoff waypoint, and (iii) a clearance zone associated with the size of the aircraft (100); and
[0101] (714) Based on determining that substantially no portion of the obstacle (402) falls within the area (432), selecting a possible second takeoff waypoint as the second takeoff waypoint (424).
[0102] Clause 3. The method of clause 1 or 2, wherein the second trajectory (426) is a takeoff trajectory determined according to a first flight path selection protocol, the method further comprising:
[0103] (716) after causing the aircraft (100) to follow the second flight path of the second trajectory (426) from the second takeoff waypoint (424), reaching a cruise waypoint at an end of the second flight path of the second trajectory (426); and
[0104] (718) At the cruise waypoint, a flight path for the cruise trajectory is selected according to a second flight path selection protocol different from the first flight path selection protocol.
[0105] Clause 4. A method according to clause 3, wherein the first flight path selection protocol includes: (720) selecting from a set of available flight paths within a set of constraints, wherein the set of constraints includes a predetermined hover point (408), the first flight path, and a clearance zone associated with the size of the aircraft.
[0106] Clause 5. The method of clause 3 or 4, wherein the second flight path selection protocol comprises: (722) using a rapidly expanding random tree (RRT) to generate and select a flight path for a cruise trajectory.
[0107] Clause 6. The method according to any one of clauses 3-5, further comprising:
[0108] (724) following the flight path for the cruise trajectory until reaching a descent waypoint; and
[0109] (726) At the descent waypoint, a flight path for the descent trajectory is selected according to a third flight path selection protocol that is different than the first flight path selection protocol and the second flight path selection protocol.
[0110] Clause 7. A method according to clause 6, wherein the third flight path selection protocol includes: (728) 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.
[0111] Clause 8. The method of clause 1 or 2, wherein the second trajectory is a takeoff trajectory (426) determined according to a first flight path selection protocol, the first flight path selection protocol comprising selecting from a set of available flight paths within a set of constraints, the method further comprising:
[0112] (730) after causing the aircraft (100) to follow a second flight path of a second trajectory (426) from a second takeoff waypoint (424), detecting a triggering event; and
[0113] (732) In response to detecting the triggering event, transitioning to a second flight path selection protocol that includes using a rapidly expanding random tree (RRT) to generate and select a subsequent flight path.
[0114] Clause 9. The method of any of clauses 1-8, further comprising: (734) determining a first trajectory (410), wherein (734) determining the first trajectory (410) comprises:
[0115] (736) receiving information indicating a plurality of past trajectories taken during takeoff of a plurality of aircraft;
[0116] (738) determining common features of the plurality of past trajectories; and
[0117] (740) Generate a first trajectory (410) based on the common features.
[0118] Clause 10. The method of any one of clauses 1-9, further comprising: in response to determining that an obstacle (402) obstructs the first flight path of the first trajectory (410):
[0119] (742) causing the aircraft to hover at a second hovering point corresponding to the second take-off waypoint (424);
[0120] (744) scanning the environment of the aircraft again; and
[0121] (746) determining that there are no obstacles obstructing a second flight path of a second trajectory (426) from the second takeoff waypoint (424),
[0122] Wherein (710) causing the aircraft to follow the second flight path of the second trajectory (426) from the second takeoff waypoint (424) includes: (748) in response to determining that there are no obstacles obstructing the second flight path of the second trajectory (426) from the second takeoff waypoint (424), causing the aircraft to follow the second flight path of the second trajectory (426) from the second takeoff waypoint (424).
[0123] Clause 11. A method according to any of clauses 1-10, wherein (708) determining the second takeoff waypoint (424) includes: (750) rotating the first flight path at a predetermined hover point (408) through a set of nominal orientations to determine whether any nominal orientation in the set of nominal orientations avoids the obstacle (402).
[0124] Clause 12. The method of clause 11, wherein (708) determining the second takeoff waypoint (424) further comprises:
[0125] (752) Rotating the first flight path at the predetermined hover point (408) through a set of nominal orientations until a nominal orientation is achieved that avoids the obstacle (402).
[0126] Clause 13. The method of clause 11, wherein (708) determining the second takeoff waypoint (424) further comprises:
[0127] (754) determining that no nominal orientation in the set of nominal orientations avoids the obstacle (402);
[0128] (756) translating the first flight path to a nominal hover point; and
[0129] (758) Rotating the first flight path at the nominal hover point through a second set of nominal orientations until a nominal orientation is achieved that avoids the obstacle (402).
[0130] Clause 14. A system (100) for generating a flight path for navigating an aircraft, comprising:
[0131] An aircraft (100), comprising:
[0132] one or more sensors; and
[0133] A computing device (102) having a processor (104) and a memory (106) storing instructions (108) executable by the processor (104) to:
[0134] causing the aircraft (100) to hover at a predetermined hovering point (408), wherein the predetermined hovering point (408) corresponds to a first take-off waypoint of a first trajectory (410) of the aircraft (100);
[0135] scanning at least a portion of a first flight path of a first trajectory (410) via one or more sensors associated with the aircraft (100);
[0136] using sensor data obtained by one or more sensors to determine that an obstacle (402) is obstructing a first flight path of a first trajectory (410), wherein the first flight path begins at a first takeoff waypoint;
[0137] In response to determining that an obstacle (402) obstructs the first flight path,
[0138] (i) using the sensor data to determine a second takeoff waypoint (424), wherein determining the second takeoff waypoint (424) includes specifying that the first flight path begins at the second takeoff waypoint (424), and
[0139] (ii) altering the first flight path of the first trajectory (410) according to the second takeoff waypoint (424) by translating the first flight path to align it with the second takeoff waypoint (424) 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); and
[0140] The aircraft (100) is caused to follow a second flight path of a second trajectory (426) from a second takeoff waypoint (424).
[0141] Clause 15. The system of clause 14, wherein the one or more sensors include a light detection and ranging (LIDAR) device (122), and wherein the sensor data includes three-dimensional (3D) point cloud data detected by the LIDAR device (122).
[0142] Clause 16. The system of clause 14 or 15, further comprising a user interface (110), wherein determining the second takeoff waypoint (424) comprises:
[0143] determining a plurality of possible second takeoff waypoints that avoid obstacles (402);
[0144] providing, via a user interface (110), selectable options corresponding to each of a plurality of possible second takeoff waypoints that avoid obstacles (402); and
[0145] An indication of a selected possible second takeoff waypoint is received via a user interface (110), wherein a second takeoff waypoint (424) corresponds to the selected possible second takeoff waypoint.
[0146] Clause 17. The system of any of clauses 14-16, further comprising a ground control system, wherein determining the second takeoff waypoint (424) comprises:
[0147] receiving from a ground control system a range of acceptable altitudes and directions for takeoff of the aircraft (100); and
[0148] A second takeoff waypoint (424) is determined to be within an acceptable range of altitude and direction.
[0149] Clause 18. A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors of a computing device (102), cause the computing device (102) to perform functions comprising:
[0150] causing the aircraft (100) to hover at a predetermined hovering point (408), wherein the predetermined hovering point (408) corresponds to a first take-off waypoint of a first trajectory (410) of the aircraft (100);
[0151] scanning at least a portion of a first flight path of a first trajectory (410) via one or more sensors associated with the aircraft (100);
[0152] using sensor data obtained by one or more sensors to determine that an obstacle (402) is obstructing a first flight path of a first trajectory (410), wherein the first flight path begins at a first takeoff waypoint;
[0153] In response to determining that an obstacle (402) obstructs the first flight path,
[0154] (i) determining a second takeoff waypoint (424) using the sensor data, wherein determining the second takeoff waypoint (424) includes specifying that the first flight path begins at the second takeoff waypoint (424), and
[0155] (ii) altering 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) obstructing the first flight path, thereby forming a second flight path of the second trajectory (426); and
[0156] The aircraft (100) is caused to follow a second flight path of a second trajectory (426) from a second takeoff waypoint (424).
[0157] Clause 19. The non-transitory computer-readable medium of clause 18, wherein the second trajectory (426) is a takeoff trajectory determined according to the first flight path selection protocol, the functions further comprising:
[0158] After causing the aircraft (100) to follow a second flight path of a second trajectory (426) from a second takeoff waypoint (424), reaching a cruise waypoint at an end of the second flight path of the second trajectory (426); and
[0159] At the cruise waypoint, a flight path for the cruise trajectory is selected according to a second flight path selection protocol that is different from the first flight path selection protocol.
[0160] Clause 20. The non-transitory computer-readable medium of clause 18 or 19, wherein the functions further comprise:
[0161] Follow the flight path for the cruise trajectory until the descent waypoint is reached; and
[0162] At the descent waypoint, a flight path for the descent trajectory is selected according to a third flight path selection protocol that is different than the first flight path selection protocol and the second flight path selection protocol.
[0163] Descriptions of different advantageous arrangements have been given for purposes of illustration and description, and are not intended to be exhaustive or limited to examples in disclosed form. Many modifications and variations will be apparent to those of ordinary skill in the art. In addition, different advantageous examples may describe different advantages compared to other advantageous examples. The selected one or more examples are selected and described in order to best explain the principles of the examples, practical applications, and to enable others of ordinary skill in the art to understand that the disclosure of various examples with various modifications is suitable for specific intended uses.
Claims
1. A method for generating a flight path for navigating an aircraft (100), comprising: (702) causing the aircraft (100) to hover at a predetermined hovering point (408), wherein the predetermined hovering point (408) corresponds to a first take-off 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) via one or more sensors associated with the aerial vehicle (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), wherein the first flight path originates at the first takeoff waypoint; (708) in response to determining that the obstacle (402) obstructs the first flight path, (i) determining a second takeoff waypoint (424) using the sensor data, wherein determining the second takeoff waypoint (424) includes specifying that the first flight path begins at the second takeoff waypoint (424), and (ii) altering 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 flight path to avoid the obstacle (402) obstructing 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).
2. The method of claim 1, wherein (708) determining the second takeoff waypoint (424) comprises: (712) using the sensor data to determine that substantially no portion of the obstacle (402) falls within an area (432) defined by (i) a possible second takeoff waypoint, (ii) a flight path from the possible second takeoff waypoint, and (iii) a clearance zone associated with a size of the aircraft (100); and (714) selecting the possible second takeoff waypoint as the second takeoff waypoint (424) based on determining that substantially no portion of the obstacle (402) falls within the area (432).
3. The method of claim 1 or 2, wherein the second trajectory (426) is a takeoff trajectory determined according to a first flight path selection protocol, the method further comprising: (716) after causing the aircraft (100) to follow the second flight path of the second trajectory (426) from the second takeoff waypoint (424), reaching a cruise waypoint at an end of the second flight path of the second trajectory (426); and (718) At the cruise waypoint, select a flight path for the cruise trajectory according to a second flight path selection protocol different from the first flight path selection protocol.
4. The method of claim 1 or 2, wherein the second trajectory is a takeoff trajectory (426) determined according to a first flight path selection protocol, the first flight path selection protocol comprising selecting from a set of available flight paths within a set of constraints, the method further comprising: (730) after causing the aircraft (100) to follow the second flight path of the second trajectory (426) from the second takeoff waypoint (424), detecting a triggering event; and (732) In response to detecting the triggering event, transitioning to a second flight path selection protocol, the second flight path selection protocol comprising using a rapidly expanding random tree (RRT) to generate and select a subsequent flight path.
5. The method according to claim 1 or 2, further comprising: (734) determining the first trajectory (410), wherein (734) determining the first trajectory (410) includes: (736) receiving information indicating a plurality of past trajectories taken during takeoff of a plurality of aircraft; (738) determining common features of the plurality of past trajectories; and (740) Generating the first trajectory (410) based on the common feature.
6. The method according to claim 1 or 2, further comprising: In response to determining that the obstacle (402) obstructs the first flight path of the first trajectory (410): (742) causing the aircraft to hover at a second hovering point corresponding to the second take-off waypoint (424); (744) scanning the environment of the aircraft again; and (746) determining that no obstacles are obstructing the second flight path of the second trajectory (426) from the second takeoff waypoint (424), Wherein (710) causing the aircraft to follow the second flight path of the second trajectory (426) from the second takeoff waypoint (424) includes: (748) in response to determining that there are no obstacles obstructing the second flight path of the second trajectory (426) from the second takeoff waypoint (424), causing the aircraft to follow the second flight path of the second trajectory (426) from the second takeoff waypoint (424).
7. The method of claim 1 or 2, wherein (708) determining the second takeoff waypoint (424) comprises: (750) rotating the first flight path at the predetermined hover point (408) through a set of nominal orientations to determine whether any of the set of nominal orientations avoids the obstacle (402).
8. A system for generating a flight path for navigating an aircraft (100), comprising: An aircraft (100), comprising: one or more sensors; and A computing device (102) having a processor (104) and a memory (106) storing instructions (108) executable by the processor (104) to: causing the aircraft (100) to hover at a predetermined hovering point (408), wherein the predetermined hovering point (408) corresponds to a first take-off 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) via 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), wherein the first flight path originates at the first takeoff waypoint; In response to determining that the obstacle (402) obstructs the first flight path, (i) determining a second takeoff waypoint (424) using the sensor data, wherein determining the second takeoff waypoint (424) includes specifying that the first flight path begins at the second takeoff waypoint (424), and (ii) altering 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) obstructing the first flight path, thereby forming a second flight path of a second trajectory (426); and The aircraft (100) is caused to follow the second flight path of the second trajectory (426) from the second takeoff waypoint (424).
9. The system of claim 8, further comprising a ground control system, wherein determining the second takeoff waypoint (424) comprises: receiving from the ground control system a range of acceptable altitudes and orientations for takeoff of the aircraft (100); as well as A determination is made as to whether the second takeoff waypoint (424) is within the range of acceptable altitudes and orientations.
10. A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors of a computing device (102), cause the computing device (102) to perform functions comprising: causing the aircraft (100) to hover at a predetermined hovering point (408), wherein the predetermined hovering point (408) corresponds to a first take-off 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) via 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), wherein the first flight path originates at the first takeoff waypoint; In response to determining that the obstacle (402) obstructs the first flight path, (i) determining a second takeoff waypoint (424) using the sensor data, wherein determining the second takeoff waypoint (424) includes specifying that the first flight path begins at the second takeoff waypoint (424), and (ii) altering 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) obstructing the first flight path, thereby forming a second flight path of a second trajectory (426); and The aircraft (100) is caused to follow the second flight path of the second trajectory (426) from the second takeoff waypoint (424).
Citation Information
Patent Citations
Aircraft, take-off control method and system thereof and landing control method and system thereof
CN105518559A
Systems and methods for UAV path planning and control
CN108139759A