IP Library Granted Patent US 10,922,983
Granted Patent B2
US 10,922,983 · App. 16/012,677 · Granted Feb 16, 2021

Programming language for execution by drone

Inventors: Jeanette L. Blomberg (Portola Valley, CA); Eric K. Butler (San Jose, CA); Anca A. Chandra (Los Gatos, CA); Pawan R. Chowdhary (San Jose, CA); Thomas D. Griffin (Campbell, CA); Divyesh Jadav (San Jose, CA); Shun Jiang (San Jose, CA); Sunhwan Lee (Menlo Park, CA); Robert J. Moore (San Jose, CA); Hovey R. Strong, Jr. (San Jose, CA); Chung-hao Tan (San Jose, CA)
Assignee: International Business Machines Corporation
G08G5/0039B64C39/024G01W1/10G08G5/0004G08G5/0013G08G5/0021G08G5/0026G08G5/0056G08G5/0069G08G5/0091B64C2201/141
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,922,983
App. No.
16/012,677
Granted
Feb 16, 2021
Kind
B2
Abstract

One embodiment provides a method comprising maintaining a weather model based on predicted weather conditions for an air traffic control zone. A hash table comprising multiple hash entries is maintained. Each hash entry comprises a timestamped predicted weather condition for a cell in the zone. A flight plan request for a drone is received. The request comprises a planned flight path for the drone. For at least one cell on the planned flight path, same latitude or same longitude cells, whichever is most closely orthogonal to a direction of the planned flight path, are heuristically probed. Weather conditions for the at least one cell are estimated based on predicted weather conditions for the same latitude or same longitude cells. An executable flight plan is generated if the planned flight path is feasible based on the estimated weather conditions; otherwise, a report including an explanation of infeasibility is generated instead.

Claims (31)

1. A method comprising:

receiving an executable flight plan for a drone, wherein the executable flight plan is based on a planned flight path for the drone, the executable flight plan comprises a first set of commands in a first programming language, the first set of commands comprises one or more commands for one or more cells in an air traffic control zone that are included on the planned flight path, and each command for each cell in the air traffic control zone is indicative of a location of the cell and a time interval of the cell;

converting the first set of commands to a second set of commands in a second programming language compatible with an Application Programming Interface (API) for the drone, wherein a first command of the first set for a cell in the air traffic control zone is converted to a second command of the second set to change a heading of the drone to a new heading based on a location of a prior cell in the air traffic control zone and a location of the cell; and

providing the second set of commands to the API, wherein execution of the second set of commands invokes one or more changes in operation of one or more rotors of the drone to cause flight of the drone to the one or more cells.

2. The method of claim 1 , wherein the one or more commands are time and location sensitive commands that are incompatible with the API.

3. The method of claim 2 , further comprising:

determining time and location information for the drone utilizing at least one of a Global Positioning System (GPS), a compass, a gyroscopic sensor, or triangulation.

4. The method of claim 3 , wherein the time and location information comprises at least one of a current orientation of the drone, a current location of the drone, or a current time.

5. The method of claim 3 , wherein the first command of the first set is converted to the second command of the second set further based on the time and location information, and execution of the second command of the second set invokes at least one change in the operation of the one or more rotors of the drone to cause the flight of the drone to the cell during a time interval of the cell.

6. The method of claim 1 , wherein execution of at least one command of the second set of commands invokes the one or more rotors of the drone to increase or decrease rotational speed.

7. The method of claim 1 , wherein execution of at least one command of the second set of commands invokes the one or more rotors of the drone to change orientation.

8. The method of claim 1 , wherein execution of at least one command of the second set of commands invokes the one or more rotors of the drone to change a heading of the drone to a new heading.

9. The method of claim 1 , wherein execution of at least one command of the second set of commands invokes the one or more rotors of the drone to cause the drone to hover in place.

10. The method of claim 1 , wherein execution of at least one command of the second set of commands invokes at least one change in the operation of the one or more rotors of the drone to cause the drone to proceed forward at full speed.

11. The method of claim 1 , wherein execution of at least one command of the second set of commands invokes at least one change in the operation of the one or more rotors of the drone to cause the drone to rise up at full speed.

12. The method of claim 1 , wherein the first set of commands include high level commands, and the second set of commands include one of middle level commands or low level commands.

13. A system comprising a computer processor, a computer-readable hardware storage medium, and program code embodied with the computer-readable hardware storage medium for execution by the computer processor to implement a method comprising:

receiving an executable flight plan for a drone, wherein the executable flight plan is based on a planned flight path for the drone, the executable flight plan comprises a first set of commands in a first programming language, the first set of commands comprises one or more commands for one or more cells in an air traffic control zone that are included on the planned flight path, and each command for each cell in the air traffic control zone is indicative of a location of the cell and a time interval of the cell;

converting the first set of commands to a second set of commands in a second programming language compatible with an Application Programming Interface (API) for the drone, wherein a first command of the first set for a cell in the air traffic control zone is converted to a second command of the second set to change a heading of the drone to a new heading based on a location of a prior cell in the air traffic control zone and a location of the cell; and

providing the second set of commands to the API, wherein execution of the second set of commands invokes one or more changes in operation of one or more rotors of the drone to cause flight of the drone to the one or more cells.

14. The system of claim 13 , wherein the one or more commands are time and location sensitive commands that are incompatible with the API.

15. The system of claim 14 , wherein the method further comprises:

determining time and location information for the drone utilizing at least one of a Global Positioning System (GPS), a compass, a gyroscopic sensor, or triangulation.

16. The system of claim 15 , wherein the time and location information comprises at least one of a current orientation of the drone, a current location of the drone, or a current time.

17. The system of claim 15 , wherein the first command of the first set is converted to the second command of the second set further based on the time and location information, and execution of the second command of the second set invokes at least one change in the operation of the one or more rotors of the drone to cause the flight of the drone to the cell during a time interval of the cell.

18. The system of claim 13 , wherein the first set of commands include high level commands, and the second set of commands include one of middle level commands or low level commands.

19. A computer program product comprising a computer-readable hardware storage device having program code embodied therewith, the program code being executable by a computer to implement a method comprising:

receiving an executable flight plan for a drone, wherein the executable flight plan is based on a planned flight path for the drone, the executable flight plan comprises a first set of commands in a first programming language, the first set of commands comprises one or more commands for one or more cells in an air traffic control zone that are included on the planned flight path, and each command for each cell in the air traffic control zone is indicative of a location of the cell and a time interval of the cell;

converting the first set of commands to a second set of commands in a second programming language compatible with an Application Programming Interface (API) for the drone, wherein a first command of the first set for a cell in the air traffic control zone is converted to a second command of the second set to change a heading of the drone to a new heading based on a location of a prior cell in the air traffic control zone and a location of the cell; and

providing the second set of commands to the API, wherein execution of the second set of commands invokes one or more changes in operation of one or more rotors of the drone to cause flight of the drone to the one or more cells.

20. The computer program product of claim 19 , wherein the one or more commands are time and location sensitive commands that are incompatible with the API.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2018
From: BLOMBERG, JEANETTE L.; BUTLER, ERIC K.; CHANDRA, ANCA A.; CHOWDHARY, PAWAN R.; GRIFFIN, THOMAS D.; JADAV, DIVYESH; JIANG, SHUN; LEE, SUNHWAN; MOORE, ROBERT J.; STRONG, HOVEY R., JR.; TAN, CHUNG-HAO
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046134/0701 →
Continuity (2)
Continuation 15064542 · Mar 8, 2016
Related Publication 20180301042A1 · Oct 18, 2018
Cited By (1)
US 12,365,494