A value for an aircraft movement limit is received where the aircraft movement limit is associated with a manned aircraft. The aircraft movement limit is automatically set to the value. A pilot instruction is received and a control signal for the aircraft is generated using the pilot instruction and the aircraft movement limit.
|
15. A method, comprising:
receiving a value for an aircraft movement limit, wherein the aircraft movement limit is associated with a manned aircraft and includes at least one of: a position limit, a velocity limit, an altitude limit, an attitude limit, and a modeled repulsive force;
automatically setting the aircraft movement limit to the value, wherein the value is associated with a region;
receiving a pilot instruction; and
generating a control signal for the aircraft using the pilot instruction and the aircraft movement limit, wherein the control signal constrains the aircraft to stay above the region.
16. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:
receiving a value for an aircraft movement limit, wherein the aircraft movement limit is associated with a manned aircraft and includes at least one of: a position limit, a velocity limit, an altitude limit, an attitude limit, and a modeled repulsive force;
automatically setting the aircraft movement limit to the value, wherein the value is associated with a region;
receiving a pilot instruction; and
generating a control signal for the aircraft using the pilot instruction and the aircraft movement limit, wherein the control signal constrains the aircraft to stay above the region.
1. A system, comprising:
a processor; and
a memory coupled with the processor, wherein the memory is configured to provide the processor with instructions which when executed cause the processor to:
receive a value for an aircraft movement limit, wherein the aircraft movement limit is associated with a manned aircraft and includes at least one of: a position limit, a velocity limit, an altitude limit, an attitude limit, and a modeled repulsive force;
automatically set the aircraft movement limit to the value, wherein the value is associated with a region;
receive a pilot instruction; and
generate a control signal for the aircraft using the pilot instruction and the aircraft movement limit, wherein the control signal constrains the aircraft to stay above the region.
2. The system recited in
receiving the value for the aircraft movement limit includes receiving, from a base station, an instruction to set the aircraft movement limit, wherein the instruction includes an aircraft identifier and a specified value for the aircraft movement limit; and
setting the aircraft movement limit to the value includes:
deciding whether to obey the instruction, including by determining if the aircraft identifier matches an identifier associated with the aircraft; and
in response to deciding to obey the instruction, setting the aircraft movement limit to the specified value, wherein the aircraft movement limit is automatically set.
3. The system recited in
the value received for the aircraft movement limit is received from a base station; and
the base station selects the value, including by:
counting a plurality of aircraft in order to obtain a number of aircraft;
selecting, from a plurality of floorplans, a floorplan corresponding to the number of aircraft, wherein the floorplan includes a separate region over a body of water for each aircraft in the plurality of aircraft to fly over; and
assigning each aircraft in the plurality of aircraft to one of the regions in the floorplan.
4. The system recited in
5. The system recited in
the aircraft movement limit includes the velocity limit; and
the value is determined based at least in part on state information associated with the aircraft, including by:
determining a distance along a desired direction of movement from the aircraft to a boundary, wherein the state information associated with the aircraft includes the distance; and
determining the value for the velocity limit based at least in part on the distance, wherein:
a first, lower value is determined for the velocity limit based at least in part on a first, closer distance; and
a second, higher value is determined for the velocity limit based at least in part on a second, farther distance.
6. The system recited in
the aircraft movement limit includes the velocity limit; and
the value is determined based at least in part on state information associated with the aircraft, including by:
determining whether a desired direction of movement would move the aircraft closer to or farther away from a second aircraft, wherein the state information associated with the aircraft includes the desired direction of movement;
in response to determining that the desired direction of movement would move the aircraft closer to the second aircraft, determining a first, lower value for the velocity limit; and
in response to determining that the desired direction of movement would move the aircraft farther away from the second aircraft, determining a second, higher value for the velocity limit.
7. The system recited in
the aircraft movement limit includes the velocity limit; and
the value is determined based at least in part on state information associated with the aircraft, including by:
determining whether a desired direction of movement would move the aircraft closer to or farther away from a second aircraft, wherein the state information associated with the aircraft includes the desired direction of movement;
determining a distance between the aircraft and the second aircraft;
comparing the distance to a distance threshold;
in response to determining that (1) the desired direction of movement would move the aircraft closer to the second aircraft and (2) the distance does not exceed the distance threshold, determining a first, lower value for the velocity limit; and
in response to determining that (1) the desired direction of movement would move the aircraft farther away from the second aircraft and (2) the distance does not exceed the distance threshold, determining a second, higher value for the velocity limit.
8. The system recited in
the aircraft movement limit includes the modeled repulsive force;
the value for the modeled repulsive force is determined based at least in part on state information associated with the aircraft, including by:
determining a distance between the aircraft and a second aircraft, wherein the state information associated with the aircraft includes the distance; and
determining the value for the modeled repulsive force based at least in part on the distance; and
generating the control signal includes modeling repulsion between the aircraft and the second aircraft based at least in part on the modeled repulsive force.
9. The system recited in
the aircraft movement limit includes the modeled repulsive force;
the value for the modeled repulsive force is determined based at least in part on state information associated with the aircraft, including by:
determining a distance between the aircraft and a second aircraft, wherein the state information associated with the aircraft includes the distance; and
determining the value for the modeled repulsive force based at least in part on the distance; and
generating the control signal includes modeling repulsion between the aircraft and the second aircraft based at least in part on the modeled repulsive force, wherein the control signal causes the aircraft to come to a stop and subsequently move away from the second aircraft in response to an input device of the aircraft returning to a neutral position after being in a position associated with the aircraft flying towards the second aircraft.
10. The system recited in
the aircraft movement limit includes the modeled repulsive force;
the value for the modeled repulsive force is determined based at least in part on state information associated with the aircraft, including by:
determining a distance between the aircraft and a second aircraft, wherein the state information associated with the aircraft includes the distance; and
determining the value for the modeled repulsive force based at least in part on the distance; and
generating the control signal includes modeling repulsion between the aircraft and the second aircraft based at least in part on the modeled repulsive force, wherein an amount of displacement by an input device of the aircraft in order for the aircraft to hover in-place varies based at least in part on the modeled repulsive force.
11. The system recited in
the aircraft movement limit includes the velocity limit; and
the value is determined based at least in part on state information associated with the aircraft, including by:
determining an altitude associated with the aircraft, wherein the state information associated with the aircraft includes the altitude; and
determining a value for the velocity limit based at least in part on the altitude, wherein:
a first, higher value is determined for the velocity limit based at least in part on a first, higher altitude; and
a second, lower value is determined for the velocity limit based at least in part on a second, lower altitude.
12. The system recited in
the aircraft movement limit includes the attitude limit; and
the value is determined based at least in part on state information associated with the aircraft, including by:
determining a velocity associated with the aircraft, wherein the state information associated with the aircraft includes the velocity; and
determining a value for the attitude limit based at least in part on the velocity, wherein:
a first, lower value is determined for the attitude limit based at least in part on a first, higher velocity; and
a second, higher value is determined for the attitude limit based at least in part on a second, lower velocity.
13. The system recited in
the aircraft movement limit includes the velocity limit; and
the value is determined based at least in part on state information associated with the aircraft, including by:
determining a phase difference between a desired motor command signal and an actual motor command signal, wherein the state information associated with the aircraft includes the phase difference; and
determining a value for the velocity limit based at least in part on the phase difference, wherein:
a first, lower value is determined for the velocity limit based at least in part on a first, higher phase difference; and
a second, higher value is determined for the velocity limit based at least in part on a second, lower phase difference.
14. The system recited in
receiving recorded flight information, including an identifier associated with a pilot;
analyzing the recorded flight information;
determining the value for the aircraft movement limit based at least in part on the analysis of the recorded flight information; and
sending the value for the aircraft movement limit to the aircraft using the identifier associated with the pilot.
17. The method of
receiving the value for the aircraft movement limit includes receiving, from a base station, an instruction to set the aircraft movement limit, wherein the instruction includes an aircraft identifier and a specified value for the aircraft movement limit; and
setting the aircraft movement limit to the value includes:
deciding whether to obey the instruction, including by determining if the aircraft identifier matches an identifier associated with the aircraft; and
in response to deciding to obey the instruction, setting the aircraft movement limit to the specified value, wherein the aircraft movement limit is automatically set.
18. The method of
the value received for the aircraft movement limit is received from a base station; and
the base station selects the value, including by:
counting a plurality of aircraft in order to obtain a number of aircraft;
selecting, from a plurality of floorplans, a floorplan corresponding to the number of aircraft, wherein the floorplan includes a separate region over a body of water for each aircraft in the plurality of aircraft to fly over; and
assigning each aircraft in the plurality of aircraft to one of the regions in the floorplan.
19. The computer program product of
receiving the value for the aircraft movement limit includes receiving, from a base station, an instruction to set the aircraft movement limit, wherein the instruction includes an aircraft identifier and a specified value for the aircraft movement limit; and
setting the aircraft movement limit to the value includes:
deciding whether to obey the instruction, including by determining if the aircraft identifier matches an identifier associated with the aircraft; and
in response to deciding to obey the instruction, setting the aircraft movement limit to the specified value, wherein the aircraft movement limit is automatically set.
20. The computer program product of
the value received for the aircraft movement limit is received from a base station; and
the base station selects the value, including by:
counting a plurality of aircraft in order to obtain a number of aircraft;
selecting, from a plurality of floorplans, a floorplan corresponding to the number of aircraft, wherein the floorplan includes a separate region over a body of water for each aircraft in the plurality of aircraft to fly over; and
assigning each aircraft in the plurality of aircraft to one of the regions in the floorplan.
|
This application is a continuation of U.S. patent application Ser. No. 15/881,297, issued as U.S. Pat. No. 10,037,706, entitled AIRCRAFT MOVEMENT LIMITS FOR SAFE FLIGHT filed Jan. 26, 2018, which claims priority to U.S. Provisional Patent Application No. 62/596,594, entitled DYNAMIC CONSTRAINTS FOR SAFE FLIGHT filed Dec. 8, 2017, both of which are incorporated herein by reference for all purposes.
New types of aircraft are being developed for use by inexperienced pilots (e.g., without a pilot's license) and/or for use in closer proximity with other aircraft compared to traditional types of aircraft. For example, these new types of aircraft may be easier to learn (e.g., so that inexperienced pilots without a pilot's license can learn how to fly such aircraft quickly and easily) and perform vertical takeoff and landing (e.g., which permits more aircraft to occupy the same space compared to conventional takeoff and landing aircraft). New safety technologies for use in more crowded flight environments and/or with inexperienced pilots would be desirable. For example, these safety technologies may be used at a training facility where multiple people are simultaneously learning how to fly an aircraft. In some cases, these techniques are used even after a training session.
Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings.
The invention can be implemented in numerous ways, including as a process; an apparatus; a system; a composition of matter; a computer program product embodied on a computer readable storage medium; and/or a processor, such as a processor configured to execute instructions stored on and/or provided by a memory coupled to the processor. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the invention. Unless stated otherwise, a component such as a processor or a memory described as being configured to perform a task may be implemented as a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. As used herein, the term ‘processor’ refers to one or more devices, circuits, and/or processing cores configured to process data, such as computer program instructions.
A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured.
Various embodiments of a technique to set or otherwise adjust one or more aircraft movement limits are described herein. In some applications, one or more of the technique(s) described herein is/are used while pilots are learning how to fly a single-seat aircraft. With a single-seat aircraft, there is no room in the aircraft for a flight instructor. Aircraft movement limits enable an inexperienced pilot to safely learn how to fly a single-seat aircraft, even if there is no flight instructor present in the aircraft and/or even if the pilot is not obeying the instructions of a flight instructor or other supervisor on the ground. In some embodiments, the training site is an overwater training site and one or more aircraft movement limit(s) is/are used to keep the aircraft over the water for safety. In some embodiments, aircraft movement limit(s) (e.g., associated with an altitude limit and/or a velocity limit) is/are adjusted by a flight instructor or other supervisor on the ground depending upon a novice pilot's progress and/or how safely a pilot is flying. In some embodiments, an aircraft's state information (e.g., the aircraft's position with respect to something) is continuously monitored and adjustments to an aircraft movement limit are made dynamically and/or in real time in response to the aircraft's current state.
Although single-seat aircraft and/or vertical takeoff and landing (VTOL) aircraft examples are described herein, the techniques described herein may be used in combination with multi-seat aircraft and/or conventional takeoff and landing (CTOL) aircraft. Also, a variety of techniques are described herein and these techniques may be used in any combination with each other, even if there is no example with that specification combination.
At 100, a value for an aircraft movement limit is received, wherein the aircraft movement limit is associated with a manned aircraft. As used herein, the term aircraft movement limit is associated with some limit to the movement of an aircraft (e.g., where a pilot's instructions will be obeyed only to the degree permitted by the aircraft movement limit, if any). The value which is received at step 100 may be obtained from a variety of sources. In some embodiments, the value is specified and/or selected manually, for example, by a flight instructor or some other supervisor. In some embodiments, the value is automatically determined. For example, depending upon some state information associated with the aircraft (e.g., the aircraft's position relative to something, the aircraft's velocity, the aircraft's altitude, etc.), the value which is received at step 100 may be determined using a function, lookup table, mapping, etc.
In some embodiments, an aircraft movement limit includes a position limit associated with the aircraft, including (but not limited to) an attitude limit, an altitude limit, a latitude limit, and a longitude limit. In some embodiments, a position limit is relative to some boundary (e.g., the aircraft's position must remain over a body of water or some smaller area within that body of water). In some embodiments, a position limit is relative to some other aircraft (e.g., any two aircraft must remain a distance of 2r apart, where r is the radius of some “bubble” around each aircraft).
In addition to or as an alternative to a position limit as the aircraft movement limit, in some embodiments, the aircraft movement limit is a velocity limit. Some examples include a forward velocity limit, a lateral velocity limit, a rotational velocity limit (e.g., about a yaw or vertical axis), a vertical velocity limit, or a limit associated with a desired direction of movement (e.g., indicated by an input device such as a joystick). Other examples of an aircraft movement limit include a limit to some other rate associated with the aircraft, such as an attitude rate limit. In some embodiments, an aircraft movement limit includes an acceleration limit.
At 102, the aircraft movement limit is automatically set to the value. By setting the aircraft movement automatically, a pilot cannot override the changing or setting of the aircraft movement limit to the (new) value. For example, if a pilot is flying recklessly, a flight instructor or other supervisor may set the velocity limit(s) of that aircraft to zero so that the aircraft is forced to come to a stop (i.e., hover mid-air). Being able to set the aircraft movement limit to the value enables a flight instructor or other supervisor to take control, even if the pilot is uncooperative (one example of how an aircraft movement limit may be used). Even with a cooperative pilot, being able to set the aircraft movement limit automatically (e.g., without pilot permission) is desirable because then the pilot is not distracted by a request to set or otherwise update the aircraft movement limit.
At 104, a pilot instruction from the pilot is received. For example, in some embodiments, one or more of the techniques described herein is performed by a single-seat, vertical takeoff and landing (VTOL) multicopter. This exemplary multicopter has two input devices via which the pilot instruction can be received: a joystick with a twistable knob at the tip of the joystick (both of which are spring centered) and a (e.g., up-down) thumbwheel which is also spring centered. The two input devices may be placed or positioned so that one hand of the pilot (e.g., the right hand) controls the joystick and the other hand (e.g., the left hand) controls the thumbwheel. To take off or land (in this case, vertically), the pilot uses the up-down thumbwheel to ascend or descend vertically, thus changing the altitude of the multicopter. To yaw (e.g., rotate about a vertical or yaw axis), the twistable knob at the tip or top of the joystick is used. To move in a horizontal plane at a given altitude, the joystick (e.g., excluding the twistable knob) is used. In the event all input devices are released (e.g., the pilot lets go of the thumbwheel and the joystick, including the twistable knob), the multicopter is designed to come to a stop (e.g., if it was moving) and hover in-place, mid-air.
At 106, a control signal for the aircraft is generated using the pilot instruction and the aircraft movement limit. For example, with the exemplary multicopter described above, there are 10 rotors or propellers and the control signal may be for one of the rotors. The control signal is based on the pilot instruction, at least to a degree that the pilot instruction does not violate or exceed the aircraft movement limit (e.g., which is set to some limit at step 102).
For example, consider the scenario where a flight instructor or other supervisor observes that a pilot is flying recklessly or is in distress. The flight instructor or supervisor sets the velocity limit(s) (one type of an aircraft movement limit) of the relevant aircraft to zero. With the velocity limit(s) set to zero, even if the pilot moves the joystick or thumbwheel, the control signal(s) generated at step 106 will correspond to a “hover in-place” value as opposed to a “move” value. The pilot instruction to move at a non-zero velocity will be ignored because it is in violation of the velocity limit(s) which is/are currently set to zero.
In some embodiments, an aircraft movement limit has an initial or default value which is loaded or otherwise set when the aircraft is started. For example, the process shown here may be used to update an aircraft movement limit throughout the flight (e.g., depending upon the instructions from a flight instructor or other supervisor, new values for the aircraft movement limit which are automatically determined based on current state information, etc.). To put it another way, the process of
The following figure shows an exemplary multicopter with floats which permit the multicopter to take off and land on water.
In some embodiments, a position limit (a type of aircraft movement limit) is set to some value that corresponds to “over water.” For example, the values received at step 100 in
In some embodiments, to ensure the safety of new pilots, there is always some limit on the multicopter's velocity and position in these overwater training sessions. In one example, all of the multicopters are constrained to have: a position limit (e.g., must stay over water, cannot go higher than an altitude limit, must stay a minimum distance away from other multicopters/pilots, etc.), a velocity limit (e.g., in any direction or along any axis of rotation), an attitude rate limit (e.g., so the pilots cannot go nose-up or nose-down too quickly), etc.
In some embodiments, generation of a control signal at step 106 in
Being able to configure an aircraft movement limit so that the aircraft can only fly over water permits a variety of flight modes which can be turned on or off as desired. For example, the multicopter (200) can also take off and land on land. In one example usage scenario, on weekends, the multicopter is brought to a body of water and is flown over the body of water. During this time, for safety, the aircraft movement limit(s) are set so that the aircraft can only fly over water. At the end of the day, the multicopter is brought back home where the multicopter is used as a personal transportation device to fly between a home and an office during weekdays. This flight path goes over land and for this type of flight path, the aircraft movement limit can be (re)set so that the multicopter is permitted to fly over land.
This example of using a position limit to force a multicopter to fly over water is described more generally and/or formally in the flowchart below.
At 100a, a value for an aircraft movement limit is received, wherein the aircraft movement limit is associated with a manned aircraft pilot and the aircraft movement limit includes a position limit. For example, the position limit may include limits on an aircraft's permitted latitude and/or longitude (e.g., so that the aircraft remains over water which is safer than flying over land). In some embodiments, the value is for or associated with some part of the body of water so that the aircraft stays over a subsection of the body of water instead of being able to roam over the entire body of water.
At 102a, the aircraft movement limit is automatically set to the value, wherein the value is associated with a body of water. In one example, before a training session or lesson, a flight instructor flies the aircraft from land and lands on the body of water. The aircraft movement limit is then set at step 102a.
At 104, a pilot instruction is received from a pilot. For example, the pilot instruction may push a joystick forward and hold it, causing an exemplary multicopter to fly forward and approach the shoreline of a body of water.
At 106a, a control signal for the aircraft is generated using the pilot instruction and the aircraft movement limit, wherein the control signal constrains the aircraft to stay above the body of water. For example, as an exemplary multicopter approaches the shoreline, the control signal (e.g., directed to one of the rotors) will transition from a “fly forward” value to a “hover in place” value so that the multicopter does not cross some imaginary boundary (e.g., at or near the shoreline). See, for example,
As described above, at least some of the techniques described herein may be used to ensure the safety of pilots learning how to fly. The following figure shows an example of a base station which may be used to adjust the value of an aircraft movement limit (e.g., during a training session of new pilots, or even after a training session by a lifeguard or monitor of a shared recreational body of water).
In this example, the pilot of the first multicopter, MC1 (402), is flying in a safe and responsible manner. The pilot of the second multicopter, MC2 (404), is flying too fast and/or recklessly. To slow the second multicopter down, one or more velocity limits (a type of aircraft movement limit) for MC2 (404) are decreased using the base station. For example, using the base station, the flight instructor may identify MC2 as the multicopter to which the instruction is directed and specify one or more new velocity limits. In some embodiments, predefined limits (e.g., multiples of 5 or 10) and/or qualitative suggestions (e.g., slow down a little, slow down a lot, stop, etc.) are offered by the base station. The base station then generates an instruction (406) and broadcasts it over a wireless channel so that it is received by both MC1 and MC2.
In this example, the instruction includes an identification of the multicopter to which the instruction is directed (in this case, MC2). With this “To” field, the first multicopter (MC1) will know that the instruction is not directed to it and ignore the instruction. The second multicopter (MC2) will see its identifier in the “To” field and make the changes specified by the instruction.
Each multicopter may manage multiple aircraft movement limits. Since not all of the aircraft movement limits are necessarily being set by a given instruction, the example instruction (406) identifies which aircraft movement limit(s) are being set or otherwise updated by this particular instruction. In this example, all velocity limits are being set or otherwise updated by this instruction. The instruction also includes new values for those specified limits, which in this example sets all velocity limits to a new value of 5 mph.
Some examples of various aircraft movement limits include an altitude limit (e.g., above which the multicopter is not permitted to fly) as well as one or more velocity limits (e.g., associated with movement relative to various directions, planes, axes, etc.) where the multicopter is not permitted to fly faster than the limit (e.g., relative to the associated direction, plane, axis, etc.). For example, there may be a vertical velocity limit (e.g., how fast the multicopter can ascend or descend along a vertical axis), a forward flight velocity limit (e.g., for flight within some lateral plane at a given altitude), a yaw rate limit (e.g., how fast the multicopter is permitted to rotate about a yaw or vertical axis), as well as a pitch rate limit (e.g., how fast the multicopter is permitted to pitch nose-up or nose-down about a pitch axis), etc. The latter two limits may more generally be referred to as rotational rate limits.
In an extreme case, the velocity limit(s) of MC2 may be reduced to zero, such that the multicopter comes to a stop, hovering mid-air. In some embodiments, if desired, the base station may be used to manually land the halted multicopter or initiate an autonomous landing sequence from some base station (e.g., managed by an on-the-ground flight instructor or other supervisor). As with the instruction to change the velocity limit(s), the instruction may be sent wirelessly and include some unique aircraft identifier so that the appropriate aircraft lands and the other aircraft are not forced to land.
Alternatively, if a pilot is demonstrating progress and is flying in a responsible manner, an aircraft movement limit may be increased. For example, since the pilot of MC1 (402) has been flying safely on the current settings, one or more aircraft movement limits, such as a velocity limit and/or an altitude limit, may be increased.
In various embodiments, the base station may be implemented in a variety of ways depending upon the facilities available at the overwater training site. For example, if there is no power source, the base station may be a battery-powered, hand-held, and/or portable base station. Alternatively, if an AC power source is available, then the base station may operate off an AC power supply and be more permanent and/or larger. Any appropriate wireless communication channel may be used.
This example is described more generally and/or formally in the flowchart below.
At 500, an instruction to set the aircraft movement limit is received from a base station, wherein the instruction includes an aircraft identifier and a specified value for the aircraft movement limit. For example, instruction 406 in
At 502, it is decided whether to obey the instruction, including by determining if the aircraft identifier matches an identifier associated with the aircraft. For example, MC1 (402) in
At 504, in response to deciding to obey the instruction, the aircraft movement limit is automatically set to the specified value. For example, in
Conversely, if it is decided not to obey the instruction, then the aircraft movement limit(s) is/are not changed. For example, in
The following figures describe an example of geofencing where a body of water is divided into two regions with the arrival of a second multicopter. In this example, each region or zone would have at most one multicopter to prevent collisions.
Base station 616 performs a number of functions or operations to support this example division of the lake. For example, each of the multicopters broadcasts information over a wireless channel which permits the base station to know how many multicopters are flying over the lake. For example, each multicopter may broadcast its aircraft identifier (at least) which permits the base station to subsequently direct instructions (e.g., to change an aircraft movement limit) to a particular multicopter. This information broadcast by the multicopters also permits the base station to detect when there is a change from a single multicopter (as shown in
Once the base station detects an increase in the number of multicopters from one to two, the base station sets the appropriate aircraft movement limits in MC1 and MC2 so that they fly over the first and second regions, respectively. In some embodiments, the base station stores a variety of floorplans for various numbers of multicopters so that there are predefined regions readily available. For example, the base station may have a floorplan for two multicopters (e.g., with two predefined regions), a floorplan for three multicopters (e.g., with three predefined regions), etc.
In some embodiments, the base station performs operations or functions to more smoothly and/or safely switch from n regions to (n+1) regions or vice versa. For example, it may be safer to have all of the multicopters come to a stop when changing the number and/or location of the regions. A base station may issue the instructions to set the appropriate aircraft movement limits, bringing all of the multicopters to a stop. The base station may then issue a second round or set of instructions to the stopped multicopters to update the appropriate aircraft movement limits with the new regions. The base station may then issue a third round or set of instructions to update the appropriate aircraft movement limits so that the multicopters can again move (e.g., within the new region allocated to that particular multicopter).
To more quickly and/or safely switch from the geofencing shown in
Similarly, the base station may detect when the number of multicopters flying over the lake decreases, for example, because someone is done flying. For brevity, associated operations are not described herein, but operations and/or processes (similar to those described above) may be performed to make the switch from (n+1) regions to n regions easier, faster, and/or safer.
In some embodiments, a base station performs these operations or functions autonomously or otherwise automatically (e.g., without requiring the intervention of a flight instructor or supervisor on the ground). For example, this would enable a family or group of friends to fly together over a body of water without having to have someone man the base station. People could come and go throughout the day and the different regions (e.g., enforced through the appropriate setting of the appropriate aircraft movement limit(s)) would be updated automatically.
The following figure describes this more formally and/or generally in a flowchart.
At 700, a plurality of aircraft is counted in order to obtain a number of aircraft. For example, in
At 702, a floorplan corresponding to the number of aircraft is selected from a plurality of floorplans, wherein the floorplan includes a separate region over a body of water for each aircraft in the plurality of aircraft to fly over. For example, base station 616 in
At 704, each aircraft in the plurality of aircraft is assigned to one of the regions in the floorplan. For example, in
This process may be repeatedly performed so that as the number of aircraft changes (e.g., some aircraft begin flying and others end their flight), the appropriate floorplan and/or number of regions may be used.
The following figures describe various examples where the state of the aircraft (e.g., a distance from the aircraft, the aircraft's velocity, the aircraft's altitude, etc.) is used to select an appropriate value for an aircraft movement limit. First, a more general process of this is described. Then, more specific examples which show different applications or usage scenarios are described.
At 100b, a value for an aircraft movement limit is received, wherein the aircraft movement limit is associated with a manned aircraft and the value is determined based at least in part on state information associated with the aircraft. For example, as will be described in more detail below, in various embodiments, the state information may relate to a distance from the aircraft (e.g., along a desired direction of movement), an (absolute) altitude of the aircraft, or a (forward) velocity of the aircraft. Depending upon the state of the aircraft, appropriate values for certain aircraft movement limits are set automatically (e.g., by the flight controller or computer and/or without intervention by a flight instructor or supervisor on the ground).
At 102, the aircraft movement limit is automatically set to the value. For example, in some cases, the aircraft movement limit is a velocity limit along a desired direction of movement which is used to perform geofencing. In some embodiments, the aircraft movement limit is a velocity limit and is used to slow down aircraft which are flying low to the ground. In some embodiments, the aircraft movement limit includes an attitude limit which is used to reduce stress on certain types of multicopters which have certain structural vulnerabilities.
At 104, a pilot instruction is received from a pilot. At 106, a control signal is generated for the aircraft using the pilot instruction and the aircraft movement limit. As will be described in more detail below, in some embodiments (e.g., where a velocity limit is used to enforce a geofence), any pilot instruction to fly beyond a boundary would be countermanded by limiting a desired velocity per the velocity limit. Or, if a low flying aircraft tries to fly faster than a velocity limit's current value, the “too fast” desired velocity would be reduced in order to comply with the velocity limit. Or, if an aircraft is flying forward too fast and tries to go nose-up or nose-down too much at the same time (which would stress the airframe), the attitude limit would act to limit the desired attitude, thus reducing the stress on the airframe.
The following figures describe more specific examples of
The desired direction of movement is indicated using some input device, such as a joystick. For example, suppose the pilot pushed the joystick forward so that the desired direction of movement is forward (904). The distance between the multicopter (902) and the shoreline (900) along the forward desired direction of movement (904) is calculated and (generally speaking) as that distance decreases, the velocity limit in that direction (in this case, the forward direction (904)) would similarly decrease until it reaches zero. See, for example, the next figure.
If the aircraft gets closer to the shoreline, the velocity limit is reduced to L1 for distances between D2 and D1 to the shoreline (see, e.g., region 956). If the aircraft gets even closer to the shoreline, the velocity limit is further reduced to L2 for distances between D3 and D2 to the shoreline (see, e.g., region 958). Finally, at distances between 0 and D3 to the shoreline, the velocity limit is reduced to zero (see, e.g., region 960). For example, even if the pilot of multicopter 902 in
It is noted that the velocity limit of zero in region 960 is for a current or given desired direction of movement (in this example, forward) and other desired directions of movement may have non-zero velocity limits which would permit the aircraft to fly in those directions. For example, in
Some types of movement supported by the exemplary multicopter do not change the effective distance to the shoreline and therefore are not set or otherwise adjusted per this technique. For example, the exemplary multicopter can rotate about a vertical (yaw) axis of rotation. Such a rotation does not change the position of the multicopter relative to the shoreline and therefore any limit related to rotating about a vertical (yaw) axis of rotation is not adjusted or otherwise set in the manner described here.
Similarly, if so instructed by a pilot, the exemplary multicopter can ascend or descend along the vertical (yaw) axis without any front-to-back or side-to-side (lateral) movement. This up-down type of movement also does not effectively move the multicopter any closer to or further away from the shoreline and therefore a velocity limit in the vertical direction is not limited per the technique described here.
By setting or otherwise adjusting velocity limits in this more nuanced manner (e.g., instead of enforcing the same limit for all velocities in all directions), the multicopter is forced to slow down in those directions which would bring it closer to the shoreline (or, more generally, the geofence boundary) while not necessarily limiting the velocity in other directions (e.g., which would move the multicopter further away from the shoreline or which would not effectively change the distance of the multicopter to the shoreline (e.g., rotation)). This means that even if the multicopter flies up to the shoreline and it is “touching” the shoreline, it can still fly away, for example, by rotating around a vertical (yaw) axis to face the center of the body of water and subsequently flying away from the shoreline, or by flying backwards away from the shoreline (e.g., without first rotating to face the center of the body of water).
In one example of how this example fits into
In some embodiments, limits on deceleration (or, more generally, acceleration) or other limits ensure that any limiting of a desired velocity (e.g., specified or requested by the pilot) per the appropriate velocity limit does not induce a sudden deceleration or other undesirable effect (e.g., when generating a control signal at step 106 in
A similar technique of adjusting or otherwise setting velocity limits can be used to enforce a nucleoid (e.g., bubble-like) type of geofence. The following figure shows an example of this.
In this geofencing example, the multicopters must remain at least 2r apart from each other where r is the radius of the bubbles. In other words, bubbles 1004 and 1006 can touch (as they do here), but they cannot overlap. In the state shown here, bubble 1004 is touching bubble 1006. In this situation, the forward velocity limits (1008 and 1010) of the two multicopters are set to zero because moving forward would cause the two bubbles to overlap (i.e., be closer than the permitted distance of 2r) and therefore the two multicopters are not permitted to fly forwards. The range of desired directions of movement (from the perspective of second multicopter 1002) which would bring the two closer to each other is shown as shaded region 1012. Within this range of desired directions of movement, the velocity limits in those directions are set to zero.
However, if either pilot wished to fly their multicopter sideways (e.g., along lateral desired directions of movement 1014 and 1016), this would increase the distance between the two multicopters and therefore there is no adjustment (e.g., no reduction) to a lateral velocity limit. To put it another way, there would be a non-zero (i.e., higher) velocity limit for lateral direction 1016 compared to forward direction 1010. Note for example that lateral direction 1016 does not fall within shaded region 1012 (which represents the range of movement directions which would cause the two multicopters to move closer to each other).
In one example of how this example fits into
As described above, other types of movement and/or rotation which increase or maintain the distance between two multicopters are not necessarily restricted in this manner. For example, a diagonal (e.g., forward-left or forward-right) movement may be permitted, so long as the two bubbles do not overlap and the distance between the two multicopters stays the same or increases. This may, for example, permit the two multicopters to “slide” by each other. Or, one of the multicopters may rotate to face in another direction (i.e., away from the other multicopter) and fly away.
In some embodiments, in addition to the desired direction of movement (and whether that would bring the two multicopters closer to each other), the value for the velocity limit is also determined based on the current distance between the multicopters. For example, pilots may find it annoying, counterintuitive, and/or inexplicable to have velocity limits drop when another multicopter is relatively far away. It may be more intuitive and useful if velocity limits are only reduced when two multicopters are sufficiently close to each other. For example, the following table may be used.
TABLE 1
Example Velocity Limit(s) Based on Current
Distance and Desired Direction of Movement
Current Distance Between
Desired Direction
Multicopters is Between
of Movement
Velocity Limit(s)
0-10 feet
Decreases Distance
Set to 0
Between Multicopters
0-10 feet
Increases Distance
Set to 3 MPH
Between Multicopters
10 feet or more
N/A
Set to Default/
Global
In one example of how this may fit into
A variety of techniques may be used to calculate distances between multicopters. In one example, each multicopter continuously broadcasts its position (e.g., over a wireless channel). Each multicopter may listen for the positions of other multicopters in its vicinity and continuously calculate distances.
In some embodiments, some of this distance calculation is performed by a base station (not shown) to conserve power and/or processing resources on the multicopters. For example, each multicopter may broadcast its position (e.g., latitude, longitude, and altitude) over a wireless channel. The base station receives these positions, monitors relative distances between multicopters, and adjusts velocity limits accordingly from the base station. See, for example,
In some embodiments, all of the aircraft are treated like (point) charges with the same sign (e.g., a positive point charge or a negative point charge) and the aircraft movement limit is set in a manner that models the repulsive force between two charges of the same sign. The following figure shows an example of this.
When a control signal is generated for the aircraft (see, e.g., step 106 in
In one example, suppose that the pilot of multicopter 1020 is pushing his/her joystick forwards so that multicopter 1020 flies towards multicopter 1022 (the two multicopters are facing each other in this example). Suppose the two multicopters get relatively close to each other and then the pilot lets go of his/her joystick so that the joystick goes into a centered and/or neutral position. Normally, releasing the joystick like this would cause the multicopter to come to a gradual stop and then hover in-place. However, at close distances, the non-negligible value of the modeled repulsive force will (at least in this example) cause multicopter 1020 to come to a stop and then “bounce back” away from multicopter 1022 as a way of modeling a repulsive force between the two multicopters since they are too close to each other. This may, for example, signal or otherwise remind the pilot to stay away from the other multicopter and/or that the other multicopter is off limits. In some embodiments, as the value of the modeled repulsive force increases (e.g., because the two multicopters are closer to each other) the amount of displacement or “bounce back” is greater.
In another example of how the modeled repulsive force is used to model a repulsion between two multicopters, the modeled repulsive force may correspond to how much displacement in the joystick is required (e.g., towards the other, repelling multicopter) in order for a multicopter to hover in-place (e.g., when two multicopters get too close to each other). During normal operation (e.g., when one multicopter is not too close to another multicopter), a neutral or centered joystick position would cause the multicopter to hover in-place. However, in some embodiments, if multicopter 1020 and multicopter 1022 are too close to each other, an active or definite displacement of the joystick or other hand control is required to keep the multicopter hovering in-place. In some embodiments, a pilot would have to push the joystick further away from center in order to hover in-place more as two multicopters get closer to each other (e.g., a smaller joystick displacement is sufficient for in-place hovering when two multicopters are further away from each other).
The following figure describes this more formally and/or generally in a flowchart.
At 100c, a value is received for an aircraft movement limit, wherein the aircraft movement limit is associated with a manned aircraft and the value is determined based at least in part on state information associated with the aircraft, including by determining a distance between the aircraft and a second aircraft, wherein the state information associated with the aircraft includes the distance, and determining the value for the modeled repulsive force based at least in part on the distance. For example, the value for the modeled repulsive force may be determined or otherwise calculated to be small and/or non-negligible numbers or values when two multicopters are relatively far apart. For simplicity, the value for the modeled repulsive force may be determined to be zero at distances greater than some threshold (e.g., so that a repulsive modeling or repulsive effect does not come into play at distances above that threshold).
At 102, the aircraft movement limit is automatically set to the value. For example, the modeled repulsive force is set to the value calculated in the manner recited in step 100c.
At 104, a pilot instruction is received from the pilot. For example, the pilot instruction may be received through a joystick or some other input device.
At 106c, a control signal for the aircraft is generated using the pilot instruction and the aircraft movement limit, including by modeling repulsion between the aircraft and the second aircraft based at least in part on the modeled repulsive force. For example, as the value of the modeled repulsive force increases, the control signal would cause the aircraft to exhibit more of repulsion between itself and the second aircraft.
In some embodiments, the control signal causes the aircraft to come to a stop and subsequently move away from the second aircraft in response to an input device of the aircraft returning to a neutral position after being in a position associated with the aircraft flying towards the second aircraft. For example, the larger the modeled repulsive force is, the more “bounce back” there would be.
In some embodiments, an amount of displacement by an input device of the aircraft in order for the aircraft to hover in-place varies based at least in part on the modeled repulsive force. For example, the larger the modeled repulsive force is, the more displacement from center (e.g., for a joystick) would be required to keep the aircraft hovering in-place.
In some embodiments, an aircraft's altitude is used to adjust or otherwise set a velocity limit. The following figure shows an example of this.
To prevent injury to the pilot of the lower multicopter, as the multicopter approaches the surface of the water one or more velocity limits are generally reduced. In some embodiments, velocity limits in multiple or all directions (e.g., vertically, laterally, forward, within a horizontal plane, etc.) are reduced. This ensures that even if a low-flying multicopter crashes, it is going slower so that there will be less damage.
This technique may also be used to slow the multicopter down at altitudes where there are more likely to be obstacles. For example, at 50 feet up, there may be no trees, power lines, or rooflines to worry about. However, at 10 feet up, the pilot may have to maneuver around those obstacles and flying around those obstacles would be easier and safer if the multicopter had a lower velocity limit.
Unlike the velocity limit example shown in
In one example of how this example may fit into
The following figure describes an example where a multicopter's velocity is used to select a value for an attitude limit.
In this example, a first multicopter (1200) is flying at a relatively slow velocity. At this velocity, the rotors of the multicopter are better able to withstand the stress due to flying at this velocity and at larger attitudes (in this example, shown as nose-down). As such, the value for the attitude limit (a type of aircraft movement limit) is set to some larger, more permissive value.
The second multicopter (1202) is flying at a faster velocity and is therefore less able to withstand the same, steeper attitude as that shown for the first multicopter. As such, because of its faster velocity, a lower value is selected for the second multicopter's attitude limit. Generally speaking, as the velocity of a multicopter increases, the value selected for an attitude limit is reduced.
For completeness, it is noted that the exemplary multicopter is capable of flying in a nose-up position and an attitude limit may relate to a limit on a nose-up position and/or a nose-down position. In some embodiments, there are two independent and/or different attitude limits: one for the nose-up limit and one for the nose-down limit. In some embodiments, the technique described herein is used to select a value for a nose-up limit.
In one example of how this example fits into
In some embodiments, the state information used to select a value for an aircraft movement limit is associated with an electrical and/or non-physical state. The following figure shows one such example where the state information is associated with motor commands or thrust signals.
To address this, in some embodiments, when the system detects that the phase difference or lag between a desired (e.g., motor command or thrust) signal and an actual (e.g., motor command or thrust) exceeds some phase difference threshold, one or more velocity limits are reduced. This has the effect of dampening or otherwise reducing the input from the pilot (e.g., via the joystick or other input device) so that the pilot cannot continue to introduce a pilot-induced oscillation. The system, without the overcorrection from the pilot, will eventually be able to correct itself and the two signals will begin to converge again (e.g., characterized by a reduced phase lag). In some embodiments, once the phase lag goes down to some sufficient degree or amount, the velocity limits are returned to their previous values.
In one example of how this example fits into
In some embodiments, a (e.g., training) flight or session is evaluated (e.g., using some analysis process) to determine whether to increase a constraint or limit (e.g., associated with position (including altitude), velocity, etc.) or keep it the same. For example, if a pilot demonstrated safe or good pilot behavior, a constraint or limit may be increased. Otherwise, a constraint or limit may remain unchanged. The following figure describes an example of this.
At 1400, recorded flight information, including an identifier associated with the pilot, is received. For example, the recorded flight information may include position information, velocity information, and acceleration information from when an aircraft is turned on until the aircraft is turned off. In various embodiments, the recorded flight information may be exchanged via a variety of intermediary devices. In one example, there is an application running on a smartphone which communicates with the aircraft and stores the recorded flight information. The recorded flight information may then be sent from the app/smartphone to the central server (e.g., when the app/smartphone has access to a WiFi connection and/or is charging). In another example, the recorded flight information is sent to the central server via some base station (see, e.g.,
At 1402, the recorded flight information is analyzed. In various embodiments, the analysis tries to find or otherwise identify good or bad flying in the recorded information. For example, a sudden acceleration or deceleration may be indicative of someone who is reckless and/or cannot adequately control the aircraft. Alternatively, smooth accelerations and decelerations may be indicative of a safe pilot.
Some other examples include looking for pilot-induced oscillation by comparing a phase difference between an actual motor command or thrust signal and a desired motor command or thrust signal (see, e.g.,
In some embodiments, the recorded flight information is analyzed to identify a number of times a pilot tried to cross some boundary or otherwise enter a prohibited (air)space where the aircraft automatically prevents the pilot from entering (e.g., a geofence). This number of attempted incursions may be used to classify the pilot. In some embodiments, the aircraft is not prohibited from flying in a particular airspace (e.g., there is no geofence to keep the aircraft out) but flying in that space is undesirable and/or unsafe. For example, although not prohibited from flying over land, it may be preferable or desirable that the aircraft stay over water since this is safer in the event of a crash. In some embodiments, the number of times or time spent over land is assessed. Some standards for ultralight aircraft prohibit such aircraft from flying at night, as well as over inhabited areas and the recorded flight information may be analyzed for this type of behavior.
In some embodiments, the aircraft issues a warning but does not automatically prevent the pilot from flying in a particular manner. For example, the warning may relate to flying too low (high), flying too fast, etc. In some embodiments, if the flight behavior (e.g., once a warning is issued) does not change within a certain amount of time, the pilot is assumed or otherwise determined to be ignoring the warning and the analysis of the recorded flight information may count the number of ignored warnings in order to classify the pilot.
At 1404, the value for the aircraft movement limit is determined based at least in part on the analysis of the recorded flight information. For example, if bad flying behavior is detected, the same or a more restrictive value for the aircraft movement limit may be selected or otherwise determined (e.g., keep altitude limits, velocity limits, and/or distance from shoreline limits the same or reduce). Alternatively, if good flying behavior is detected, then more permissive values may be selected or otherwise determined (e.g., increase altitude limits, velocity limits, and/or distance from shoreline limits).
At 1406 the value for the aircraft movement is sent to the aircraft using the identifier associated with the pilot. For example, the aircraft, as part of the starting up may identify the pilot and retrieve the appropriate aircraft movement limits for that pilot. A variety of methods can be used to perform step 1406. For example, all values for all pilots could be pushed out and the aircraft selects the appropriate values based on the pilot's identifier. Or, a pull technique could be used where the aircraft uploads the pilot's identifier to a central server and the appropriate value(s) for that pilot is/are downloaded in response. As before, this information may be exchanged via an app running on a smartphone or a base station.
In some embodiments, multiple pilots have access to a given flyer. A variety of techniques may be used to uniquely identify a pilot (e.g., biometrics, a code/password, a fob or other near-field identifier, an app running on a smartphone, etc.). In some embodiments, a startup sequence includes identifying the pilot and loading those pilot's limits or constraints into the system. In various embodiments, limits or other settings associated with a pilot may be stored locally and/or remotely/centrally. For example, the multicopter may store a limited number of settings (including limits) locally on the multicopter. If it cannot locate a pilot's settings there, it may go to some server (e.g., at the base station or via the base station). If a pilot's settings cannot be located (e.g., a new pilot), then some default settings and/or limits may be loaded.
The process may be useful because the aircraft can start out in a “safe mode” for novice users and gradually open up the configurations or modes (e.g., permit faster flight, higher flight, etc.) even in remote locations where there is no instructor or evaluator present to evaluate the quality of pilot's flying in person. Analyzing recorded flight information also applies a uniform standard across all pilots whereas human assessment can be inconsistent between one person and another (e.g., one instructor or evaluator may be more lenient and/or have lower standards about flying than another instructor or evaluator).
Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.
Cutler, Mark Johnson, Selwa, Alexander David
Patent | Priority | Assignee | Title |
11803197, | Nov 15 2021 | BETA AIR, LLC | Systems and methods for controlling a flight boundary of an aircraft |
Patent | Priority | Assignee | Title |
10036651, | Jun 11 2015 | Thales | Electronic device and method for aiding the piloting of an aircraft, with calculation and display of at least a roll margin, related computer program product |
10037706, | Dec 08 2017 | Kitty Hawk Corporation | Aircraft movement limits for safe flight |
3568187, | |||
3737119, | |||
5345241, | Dec 07 1992 | Northrop Grumman Systems Corporation | Self-contained method for correction of an inertial system over a body of water |
6641087, | Oct 09 2001 | Cubic Defense Systems, Inc.; CUBIC DEFENSE SYSTEMS, INC | Anti-hijacking system operable in emergencies to deactivate on-board flight controls and remotely pilot aircraft utilizing autopilot |
6793171, | Apr 02 2003 | Northrop Grumman Systems Corporation | Method and system for flying an aircraft |
8442701, | Oct 02 2008 | The Boeing Company | Dynamic roll angle stall protection for an aircraft |
20070235267, | |||
20100087970, | |||
20150066240, | |||
20160163203, | |||
20170106953, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jun 27 2018 | Kitty Hawk Corporation | (assignment on the face of the patent) | / | |||
Oct 11 2018 | Kitty Hawk Corporation | ONE AERO, LLC | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 047308 | /0927 | |
Dec 03 2018 | Kitty Hawk Corporation | ONE AERO, LLC | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 047739 | /0947 | |
Oct 20 2020 | Kitty Hawk Corporation | ONE AERO, LLC | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 054206 | /0714 | |
Sep 30 2021 | Kitty Hawk Corporation | ONE AERO, LLC | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 058029 | /0610 | |
Mar 18 2022 | Kitty Hawk Corporation | ONE AERO, LLC | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 059503 | /0382 | |
May 19 2023 | ONE AERO, LLC | Kitty Hawk Corporation | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 063713 | /0367 |
Date | Maintenance Fee Events |
Jun 27 2018 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Jan 24 2024 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Aug 25 2023 | 4 years fee payment window open |
Feb 25 2024 | 6 months grace period start (w surcharge) |
Aug 25 2024 | patent expiry (for year 4) |
Aug 25 2026 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 25 2027 | 8 years fee payment window open |
Feb 25 2028 | 6 months grace period start (w surcharge) |
Aug 25 2028 | patent expiry (for year 8) |
Aug 25 2030 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 25 2031 | 12 years fee payment window open |
Feb 25 2032 | 6 months grace period start (w surcharge) |
Aug 25 2032 | patent expiry (for year 12) |
Aug 25 2034 | 2 years to revive unintentionally abandoned end. (for year 12) |