IP Library Granted Patent US 10,745,127
Granted Patent B2
US 10,745,127 · App. 15/949,857 · Granted Aug 18, 2020

Systems and methods for execution of recovery actions on an unmanned aerial vehicle

Inventors: Benjamin Stuart Stabler (Menlo Park, CA); Robert Parker Clark (Palo Alto, CA); Nathaniel Hall-Snyder (Palo Alto, CA); Paul Doersch (Carmichael, CA)
Assignee: Kespry Inc.
B64C39/024G05B23/0286G05D1/0088B64C2201/145
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,745,127
App. No.
15/949,857
Granted
Aug 18, 2020
Kind
B2
Abstract

Provided herein are systems and methods for providing reliable control of an unmanned aerial vehicle (UAV). A system for providing reliable control of the UAV can include a computing device that can execute reliable and unreliable programs. The unreliable programs can be isolated from the reliable programs by virtue of executing one or more of the programs in a virtual machine client. The UAV can initiate a recovery action when one or more of the unreliable programs fail. The recovery action can be performed without input from one or more of the unreliable programs.

Claims (39)

1. A method of providing a reliable control system on-board an unmanned aerial vehicle (UAV), comprising:

executing a first program on a first processor, the first processor configured to:

collect sensor data from one or more sensors of the UAV, and

transmit the sensor data from the first program to a second program;

executing the second program on a second processor of a simpler architecture than the first processor, the second processor coupled to one or more subsystems of the UAV, the second program configured to:

monitor the sensor data transmitted from the first program to the second program to determine a level of accuracy of the sensor data transmitted from the first program to the second program with respect to the sensor data collected from the one or more sensors of the UAV; and

initiate a recovery action by the UAV if the level of accuracy falls below a threshold accuracy over a pre-determined time interval.

2. The method of claim 1 , further comprising receiving, by the second program on the second processor, instructions describing the recovery action of the UAV at discrete time intervals.

3. The method of claim 1 , wherein the second program is more reliable than the first program.

4. The method of claim 1 , wherein the recovery action includes one or more instructions to return the UAV to a given location.

5. The method of claim 1 , wherein the recovery action includes one or more instructions to land the UAV.

6. The method of claim 1 , wherein the recovery action includes one or more instructions to return the UAV to a closest or nearby safe landing area.

7. The method of claim 1 , wherein the first program is executed by the first processor on a client virtual machine on a computer.

8. The method of claim 1 , wherein the second program receives and follows instructions transmitted from the first program upon execution by the second processor.

9. The method of claim 1 , wherein the second program receives and disregards instructions transmitted from the first program upon execution by the second processor.

10. The method of claim 1 , further comprising generating instructions describing the recovery action based on one or more UAV state parameters and one or more location parameters corresponding to the UAV in real time.

11. The method of claim 10 , wherein the one or more UAV state parameters include current charge remaining on a battery of the UAV.

12. The method of claim 10 , wherein the one or more location parameters include a distance between a current location of a UAV and a starting point of the UAV.

13. The method of claim 10 , wherein the one or more location parameters include a distance between a current location of a UAV and a nearest landing area of the UAV.

14. The method of claim 10 , wherein the instructions are generated by one or computer processors off-board the UAV.

15. The method of claim 1 , wherein the first processor and the second processor are onboard the UAV.

16. A system for providing reliable control of an unmanned aerial vehicle (UAV), comprising:

one or more sensors onboard the UAV configured to provide sensor data;

memory onboard the UAV configured to store the sensor data from the one or more sensors; and

a first processor configured to execute a first program, the first program configured to:

collect sensor data from the one or more sensors, and

transmit the sensor data from the first program to a second program; and

a second processor coupled to one or more subsystems of the UAV, the second processor having a simpler architecture than the first processor and configured to execute the second program, the second program configured to:

monitor the sensor data transmitted from the first program to the second program to determine a level of accuracy of the sensor data transmitted from the first program to the second program with respect to the sensor data collected from the one or more sensors of the UAV; and

initiate a recovery action by the UAV if the level of accuracy falls below a threshold accuracy over a pre-determined time interval.

17. The system of claim 16 , wherein the second program is more reliable than the first program.

18. The system of claim 16 , wherein the first processor is configured to execute the first program on a client virtual machine.

19. A non-transitory, computer-readable medium comprising machine executable code that implements a method of providing a reliable control system on-board an unmanned aerial vehicle (UAV), the method comprising:

executing, by a first processor, a first program configured to:

collect sensor data from one or more sensors of the UAV, and

transmit the sensor data from the first program to a second program;

executing the second program on a second processor having a simpler architecture than the first processor, the second processor coupled to one or more subsystems of the UAV, wherein the second program is configured to:

monitor the sensor data transmitted from the first program to the second program to determine a level of accuracy of the sensor data transmitted from the first program to the second program with respect to the sensor data collected from the one or more sensors of the UAV; and

initiate a recovery action by the UAV if the level of accuracy falls below a threshold accuracy over a pre-determined time interval.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2022
From: KESPRY, INC.
To: KESPRY, LLC
Reel/Frame 058975/0676 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2022
From: KESPRY, LLC
To: FIRMATEK SOFTWARE, LLC
Reel/Frame 058975/0798 →
SECURITY INTEREST Recorded Sep 1, 2021
From: KESPRY, INC.
To: SILICON VALLEY BANK
Reel/Frame 057355/0980 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2019
From: STABLER, BENJAMIN STUART; CLARK, ROBERT PARKER; HALL-SNYDER, NATHANIEL; DOERSCH, PAUL
To: KESPRY INC.
Reel/Frame 048224/0606 →
Continuity (4)
Continuation 14693734 · Apr 22, 2015
Continuation In Part PCTUS2014061626 · Oct 21, 2014
Provisional Application 61893736 · Oct 21, 2013
Related Publication 20180229842A1 · Aug 16, 2018