Some embodiments described herein relate generally to methods and apparatus for unmanned aerial vehicle autonomous aviation. In particular, but not by way of limitation, some embodiments described herein relate to methods and apparatus for Unmanned Aerial Vehicles (UAVs) to autonomously track users while avoiding obstacles when filmmaking sporting activities.
An Unmanned Aerial Vehicle (UAV) (also referred herein to as a drone) is an aircraft without a human pilot on board. Its flight is often controlled either autonomously by computers or by the remote control of a human on the ground. When the flight of drones is controlled autonomously by computers, a flight route is often pre-selected for the drones. When the drones are remotely controlled by a human on the ground, the flight is often limited in its range, speed, and/or response time. Especially when drones are used for picture filmmaking of sporting activities (such as skiing and snowboarding events), tracking a skier or keeping the skier in the frame of the camera while avoiding obstacles on the route is important.
Accordingly, a need exists for methods and apparatus for drones to autonomously track users while avoiding obstacles when filmmaking sporting activities.
In some embodiments, an Unmanned Aerial Vehicle (UAV) is configured to navigate to a first location point from a plurality of location points. The plurality of location points defines a flight pattern. The UAV is further configured to receive a set of location coordinates of a moving object. The UAV is configured to determine the distance between the moving object and the UAV based on the set of location coordinates of the moving object and the first location point of the UAV. When the distance between the moving object and the UAV reaches a pre-determined threshold, the UAV is configured to advance to a second location point from the plurality of location points.
In some embodiments, an Unmanned Aerial Vehicle (UAV) is configured to navigate to a first location point from a plurality of location points. The plurality of location points defines a flight pattern. The UAV is further configured to receive a set of location coordinates of a moving object. The UAV is configured to determine the distance between the moving object and the UAV based on the set of location coordinates of the moving object and the first location point of the UAV. When the distance between the moving object and the UAV reaches a pre-determined threshold, the UAV is configured to advance to a second location point from the plurality of location points.
In some embodiments, an apparatus comprises a processor and a memory communicatively coupled to the processor. The memory stores instructions executed by the processor to establish an initial flight plan of an Unmanned Aerial Vehicle (UAV). The memory further stores instructions executed by the processor to update the initial flight plan based on a spatial safety consideration to form an updated flight plan. The memory stores instructions executed by the processor to store the updated flight plan in the memory and download the updated flight plan from the memory.
As used in this specification, the singular forms “a,” “an” and “the” include plural referents unless the context clearly dictates otherwise. Thus, for example, the term “a moving object” is intended to mean a single moving object or a combination of moving objects.
In one embodiment, a mobile device 105 associated with the moving object can communicate with the wearable device via Bluetooth. In addition, the mobile device 105 can be used to control the drone, view and/or share recorded videos. A kiosk 106, which can be disposed locally at the sporting activity site, can receive the video recorded by the drone and upload the video to a server 107. The server 107 can communicate with a video editor 108 and/or video sharing websites 104 for post-editing and sharing.
The wearable device 102 may also include a display device for the user to view analytics associated with the user and/or analytics associated with the drone. The analytics may include location, altitude, temperature, pressure, humidity, date, time, and/or flight route. In some instances, the display device can also be used to view the recorded video. A control inputs unit 124 can be included in the wearable device 102 to allow the user to provide control commands to the wearable device or to the drone. As discussed above with regards to
In some embodiments, the wearable device 102 can be configured to communicate with the drone in order to update it about the user's current position and velocity vector. In some embodiments, the wearable device 102 can be configured to communicate with the backend server to log the status of a user. In some embodiments, the wearable device 102 can be configured to communicate with user's phone to interact with a smartphone app. In some embodiments, the wearable device 102 can be configured to give a user the ability to control the drone via buttons. In some embodiments, the wearable device 102 can be configured to give a user insight into system status via audio output, graphical display, LEDs, etc. In some embodiments, the wearable device 102 can be configured to measure environmental conditions (temperature, wind speeds, humidity, etc.)
In some embodiments, the wearable device is a piece of hardware worn by the user. Its primary purpose is to notify the drone of the user's position, thus enabling the drone to follow the user and to keep the user in the camera frame.
In some embodiments, the wearable device can be in a helmet, a wristband, embedding in clothing (e.g., jackets, boots, etc.), embedded in sports equipment (snowboard, surfboard, etc.), and/or embedded in accessories (e.g., goggles, glasses, etc.).
In other embodiments, instead of defining fly/no-fly zones, a flight rail (also referred herein to as a flight plan) along which the drone can fly safely can be defined. A flight rail includes a set of waypoints (x,y,z coordinates) (also referred herein to as a set of location points). When the drone flies from one waypoint (or one location point) to the next one along this rail, the drone will not hit any static obstacle (e.g. tree, chairlift, mountain, etc.) that can be mapped out before the drone is in the air. This can be achieved by picking waypoints that maximize the drone's distance from any static obstacle. For instance, as shown in
In one implementation, a portable device (not shown in the figures) or the wearable device itself can be configured to measure & record pairs of <latitude, longitude> Global Navigation Satellite System (GNSS) coordinates (e.g. by using a u-blox M-8 GNSS module) as well as measure & record altitude above ground level (i.e. z-coordinate) using a barometer (e.g. the MEAS MS5611). In some instances, the portable device can include a processor (similar to the processor 810 in
In this implementation, the portable device can be configured to start recording <lat,lng,alt> triples. The very first recording is the start of the rail. Note that in some instances, the lat & lng measurements can be global coordinates in an absolute system. The barometer, on the other hand, gives relative measurements based on its starting point. The very first recording of the barometer can be set to 0. When the portable device takes 10 meters above ground level (AGL), the reading is +10. When the portable device is taken down a hill, the readings can be negative, e.g. −10. In some instances, this embodiment can be implemented by holding the portable device by a human while snowing down the ski run. While the portable device is recording, the human can physically traverse along the rail to create flattened <lat,lng> values. The safety of the rail can be increased if the distance between the human and any static obstacles, such as trees or power lines or chairlifts, is maximized. In other words, the human should ski along a safe path.
In some embodiments, in addition to the portable device being used by a human to map the rail, an UAV can be used to map out the rail with 3-dimensional details. In such embodiments, a safe rail can be created with an algorithm using the 3-dimensional map gathered by the UAV.
In some embodiments, the UAV flight controller 800 includes a processor 810, a memory 820, a communications interface 890, a flight navigator 830, a navigation monitor 840, an object tracker 850, and a multimedia recorder 860. In some embodiments, the UAV flight controller 800 can be a single physical device. In other embodiments, the UAV flight controller 800 can include multiple physical devices (e.g., operatively coupled by a network), each of which can include one or multiple modules and/or components shown in
Each module or component in the UAV flight controller 800 can be operatively coupled to each remaining module and/or component. Each module and/or component in the UAV flight controller 800 can be any combination of hardware and/or software (stored and/or executing in hardware) capable of performing one or more specific functions associated with that module and/or component.
The memory 820 can be, for example, a random-access memory (RAM) (e.g., a dynamic RAM, a static RAM), a flash memory, a removable memory, a hard drive, a database and/or so forth. In some embodiments, the memory 820 can include, for example, a database, process, application, virtual machine, and/or some other software modules (stored and/or executing in hardware) or hardware modules configured to execute an UAV flight control process and/or one or more associated methods for UAV flight control. In such embodiments, instructions of executing the UAV flight control process and/or the associated methods can be stored within the memory 820 and executed at the processor 810. In some embodiments, data can be stored in the memory 820.
The communications interface 890 can include and/or be configured to manage one or multiple ports of the UAV flight controller 800. In some embodiments, the communications interface 890 can be configured to, among other functions, receive data and/or information, and send commands, and/or instructions, to and from various devices including, but not limited to, the drone, the wearable device, the mobile device, the kiosk, the server, and/or the world wide web.
The processor 810 can be configured to control, for example, the operations of the communications interface 890, write data into and read data from the memory 820, and execute the instructions stored within the memory 820. The processor 810 can also be configured to execute and/or control, for example, the operations of the flight navigator 830, the navigation monitor 840, the object tracker 850, and the multimedia recorder 860, as described in further detail herein. In some embodiments, under the control of the processor 810 and based on the methods or processes stored within the memory 820, the flight navigator 830, the navigation monitor 840, the object tracker 850, and the multimedia recorder 860 can be configured to execute a UAV flight control process, as described in further detail herein.
The flight navigator 830 can be any hardware and/or software module (stored in a memory such as the memory 820 and/or executing in hardware such as the processor 810) configured to control the flight of the drone.
The navigation monitor 840 can be any hardware and/or software module (stored in a memory such as the memory 820 and/or executing in hardware such as the processor 810) configured to monitor the flight of the drone. The navigation monitor 840 can be configured to monitor the GNSS location, altitude, speed, flight route, battery life, and/or the like.
The object tracker 850 can be any hardware and/or software module (stored in a memory such as the memory 820 and/or executing in hardware such as the processor 810) configured to track the moving object (e.g., 101 in
The multimedia recorder 860 can be any hardware and/or software module (stored in a memory such as the memory 820 and/or executing in hardware such as the processor 810) configured to send commands to multimedia devices (e.g., camera) to start, stop, and/or edit a multimedia segment.
An alternative way of computing how close the user is to the UAV, and whether the UAV should advance, is via computer vision. Here, the live video stream from the drone's camera is analyzed. This visual information can be used to compute the user's distance from the UAV.
Other data streams that can be used to measure distance between UAV and user include infrared/thermal cameras, RFID, bluetooth, wifi, cell phone signal, etc.
In some instances, the gimbal that carries the camera on the UAV can be controlled independently of the UAV's flight motions. For instance, when the UAV itself is hovering in place at a given waypoint, the gimbal can move the camera along 3 axes in such a way that the user stays in frame of the camera. This can also be achieved when the user is traveling along elaborate curves (e.g. such as when skiing/snowboarding down a run).
In some embodiments, instead of tracking the user based on a minimum threshold distance from the UAV, the UAV can also be configured to track the user by using the user's velocity. In one implementation, the UAV can fly at a velocity that substantially matches the user's velocity. In another implementation, the UAV's velocity can be commanded along the rail based on a distance from the user. In other words, when the UAV is at a certain distance away from the user, for example, the velocity of the UAV is zero as the user gets closer to the UAV. The velocity of the UAV changes (e.g., increases) along the rail based on a mapping function from a distance between the UAV and the user to the velocity of the UAV along the rail.
An embodiment of the present invention relates to a computer storage product with a non-transitory computer readable storage medium having computer code thereon for performing various computer-implemented operations. The media and computer code may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well known and available to those having skill in the computer software arts. Examples of computer-readable media include, but are not limited to: magnetic media, optical media, magneto-optical media and hardware devices that are specially configured to store and execute program code, such as application-specific integrated circuits (“ASICs”), programmable logic devices (“PLDs”) and ROM and RAM devices. Examples of computer code include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer using an interpreter. For example, an embodiment of the invention may be implemented using JAVA@, C++, or other object-oriented programming language and development tools. Another embodiment of the invention may be implemented in hardwired circuitry in place of, or in combination with, machine-executable software instructions.
The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that specific details are not required in order to practice the invention. Thus, the foregoing descriptions of specific embodiments of the invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed; obviously, many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, they thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the following claims and their equivalents define the scope of the invention.
This application claims priority to U.S. Provisional Patent Application Ser. No. 62/041,009, filed on Aug. 22, 2014, and U.S. Provisional Patent Application Ser. No. 62/064,434, filed on Oct. 15, 2014. The contents of the aforementioned applications are incorporated herein by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
62041009 | Aug 2014 | US | |
62064434 | Oct 2014 | US |