Enhanced Unmanned Aerial Vehicle Flight Along Computed Splines
Technology for operating an unmanned aerial vehicle (UAV) is disclosed herein that allows a drone to be flown along a computed spline, while also accommodating in-flight modifications. In various implementations, a UAV includes a flight control subsystem and an electromechanical subsystem. The flight control subsystem records keyframes during flight and computes a spline based on the keyframes. The flight control subsystem then saves the computed spline for playback, at which time the UAV automatically flies in accordance with the computed spline.
1 . An unmanned aerial vehicle comprising:
a flight control subsystem; and
an electromechanical subsystem coupled with the flight control subsystem and configured to fly the unmanned aerial vehicle as directed by the flight control subsystem;
wherein the flight control subsystem is configured to:
define one or more keyframes during a flight of the unmanned aerial vehicle, wherein the one or more keyframes include a physical location of the unmanned aerial vehicle determined based on visual tracking;
compute a spline based on the one or more keyframes, resulting in a computed spline; and
during a subsequent flight of the unmanned aerial vehicle according to the computed spline, modify the computed spline based on a flight command received from a remote control device, wherein to modify the computed spline, the flight command is attenuated according to a dampening function applied to the flight command.
2 . The unmanned aerial vehicle of claim 1 , wherein the physical location of the unmanned aerial vehicle included in the one or more keyframes is further based on Global Positioning System data.
3 . The unmanned aerial vehicle of claim 2 , wherein the physical location of the unmanned aerial vehicle comprises three-dimensional coordinates.
4 . The unmanned aerial vehicle of claim 1 , wherein the visual tracking is based on visual input from one or more navigational cameras onboard the unmanned aerial vehicle.
5 . The unmanned aerial vehicle of claim 1 , wherein the flight control subsystem is further configured to record and store the physical location determined based on the visual tracking.
6 . The unmanned aerial vehicle of claim 1 , wherein the dampening function is based on a simulation of a three-dimensional spring response.
7 . The unmanned aerial vehicle of claim 6 , wherein the three-dimensional spring response is based on a model comprising three linear springs and three torsional springs.
8 . The unmanned aerial vehicle of claim 1 , wherein the dampening function comprises an operating envelope around the computed spline, wherein the operating envelope limits a range of modification to the computed spline.
9 . A computing apparatus comprising:
one or more non-transitory computer-readable storage media; and
program instructions stored on the one or more non-transitory computer-readable storage media that, when executed by one or more processors, direct a flight control subsystem of an unmanned aerial vehicle to at least:
define one or more keyframes during a flight of the unmanned aerial vehicle, wherein the one or more keyframes include a physical location of the unmanned aerial vehicle determined based on visual tracking;
compute a spline based on the one or more keyframes, resulting in a computed spline; and
during a subsequent flight of the unmanned aerial vehicle according to the computed spline, modify the computed spline based on a flight command received from a remote control device, wherein to modify the computed spline, the flight command is attenuated according to a dampening function applied to the flight command.
10 . The computing apparatus of claim 9 , wherein the physical location of the unmanned aerial vehicle included in the one or more keyframes is further based on Global Positioning System data.
11 . The computing apparatus of claim 10 , wherein the physical location of the unmanned aerial vehicle comprises three-dimensional coordinates.
12 . The computing apparatus of claim 9 , wherein the visual tracking is based on visual input from one or more navigational cameras onboard the unmanned aerial vehicle.
13 . The computing apparatus of claim 9 , wherein the program instructions further direct the flight control subsystem to record and store the physical location determined based on the visual tracking.
14 . The computing apparatus of claim 9 , wherein the dampening function is based on a simulation of a three-dimensional spring response.
15 . The computing apparatus of claim 14 , wherein the three-dimensional spring response is based on a model comprising three linear springs and three torsional springs.
16 . The computing apparatus of claim 9 , wherein the dampening function comprises an operating envelope around the computed spline, wherein the operating envelope limits a range of modification to the computed spline.
17 . A method of operating an unmanned aerial vehicle, the method comprising:
in a flight control subsystem of the unmanned aerial vehicle:
defining one or more keyframes during a flight of the unmanned aerial vehicle, wherein the one or more keyframes include a physical location of the unmanned aerial vehicle determined based on visual tracking;
computing a spline based on the one or more keyframes, resulting in a computed spline; and
during a subsequent flight of the unmanned aerial vehicle according to the computed spline, modifying the computed spline based on a flight command received from a remote control device, wherein modifying the computed spline comprises attenuating the flight command according to a dampening function applied to the flight command.
18 . The method of claim 17 , wherein the physical location of the unmanned aerial vehicle included in the one or more keyframes is further based on Global Positioning System data.
19 . The method of claim 18 , wherein the physical location of the unmanned aerial vehicle comprises three-dimensional coordinates.
20 . The method of claim 17 , wherein the dampening function is based on a simulation of a three-dimensional spring response.