The present technology of this application is directed generally to unmanned vehicle security and management, and more specifically, but not by way of limitation, to systems and methods for operation of a secure unmanned vehicle ecosystem.
This summary is provided to introduce a selection of concepts in a simplified form that are further described in the Detailed Description below. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
In various exemplary embodiments a system for operation of a secure unmanned vehicle ecosystem includes: (a) an application store comprising application store servers; (b) a user control station; (c) a plurality of private communication towers; and (d) a secure unmanned vehicle in communication with the application store servers, the user control station, and the plurality of private communication towers via a private network, the private network preventing malicious code from being implemented on the secure unmanned vehicle ecosystem. Other features, examples, and embodiments are described below.
The accompanying drawings, where like reference numerals refer to identical or functionally similar elements throughout the separate views, together with the detailed description below, are incorporated in and form part of the specification, and serve to further illustrate embodiments of concepts that include the claimed disclosure, and explain various principles and advantages of those embodiments.
The methods and systems disclosed herein have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding embodiments of the present disclosure so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the disclosure. It will be apparent, however, to one skilled in the art, that the disclosure may be practiced without these specific details. In other instances, structures and devices are shown at block diagram form only in order to avoid obscuring the disclosure.
Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of the phrases “in one embodiment” or “in an embodiment” or “according to one embodiment” (or other phrases having similar import) at various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. Furthermore, depending on the context of discussion herein, a singular term may include its plural forms and a plural term may include its singular form. Similarly, a hyphenated term (e.g., “on-demand”) may be occasionally interchangeably used with its non-hyphenated version (e.g., “on demand”), a capitalized entry (e.g., “Software”) may be interchangeably used with its non-capitalized version (e.g., “software”), a plural term may be indicated with or without an apostrophe (e.g., PE's or PEs), and an italicized term (e.g., “N+1”) may be interchangeably used with its non-italicized version (e.g., “N+1”). Such occasional interchangeable uses shall not be considered inconsistent with each other.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
It is noted that the terms “coupled,” “connected”, “connecting,” “electrically connected,” etc., are used interchangeably herein to generally refer to the condition of being electrically/electronically connected. Similarly, a first entity is considered to be in “communication” with a second entity (or entities) when the first entity electrically sends and/or receives (whether through wireline or wireless means) information signals (whether containing data information or non-data/control information) to the second entity regardless of the type (analog or digital) of those signals. It is further noted that various figures (including component diagrams) shown and discussed herein are for illustrative purpose only, and are not drawn to scale.
In some embodiments the unmanned vehicle 115 (e.g., drone) is an unmanned aerial vehicle (UAV). For example, the unmanned vehicle 115 may be a drone, an unmanned airplane, and the like. In various embodiments the unmanned vehicle 115 is an unmanned ground vehicle (UGV), an unmanned surface vehicle (USV), an unmanned underwater vehicle (UUV), and the like. In various embodiments the unmanned vehicle 115 may be any autonomous or unmanned vehicle. For example, the UAV may be a quadcopter. The unmanned vehicle 115 communicably couples to the user computer system 110, the unmanned vehicle controller 120, and the plurality of gaming/utility towers (i.e., gaming/utility tower 125) using at least one of wired and wireless communications interfaces.
In various embodiments the system 100 includes a secure unmanned vehicle ecosystem for a distributed and secure way to distribute user developed applications (APPs). The App Store 105 communicates with the user computer system 110 and the plurality of gaming/utility towers (i.e., gaming/utility tower 125). In some embodiments a user downloads APPs from the App Store 105, using App Store servers, to the user computer system 110 and the user installs the download APPs from the user computer system 110 to the unmanned vehicle 115 (e.g., drone) to create a secure unmanned vehicle ecosystem. For example, the App Store 105 distributes user developed APPs similar to the way Apple® distributes Apple® Apps using the Apple® App Store.
In some embodiments the application store 105 (App Store), the user computer system 110, the unmanned vehicle 115 (e.g., drone), the unmanned vehicle controller 120, and the plurality of gaming/utility towers (i.e., gaming/utility tower 125) include a computing device. A computing device is described further in relation to computing system 1 in
In various embodiments the unmanned vehicle 115 (e.g., drone) communicates with the user computer system, the unmanned vehicle controller, and the plurality of gaming/utility towers (i.e., gaming/utility tower 125). The App Store 105 of the present technology and unmanned vehicle 115 (e.g., drone) both have a secure connection with a plurality of gaming/utility towers (i.e., gaming/utility tower 125). The plurality of gaming/utility towers (i.e., gaming/utility tower 125) isolate systems for a secure unmanned vehicle ecosystem from existing internet systems (e.g., existing mobile phone towers) making the plurality of gaming/utility towers (i.e., gaming/utility tower 125) secure. For example, the plurality of gaming/utility towers (i.e., gaming/utility tower 125) operate with a unique protocol and do not use Transmission Control Protocol (TCP) or Internet Protocol (IP) to transmit data to the unmanned vehicle 115 (e.g., drone). Thus, the plurality of gaming/utility towers (i.e., gaming/utility tower 125) are used for communicating secure data to the unmanned vehicle 115 (e.g., drone). Furthermore, the plurality of gaming/utility towers (i.e., gaming/utility tower 125) reduce a surface of attack for hackers that may be interested in using unmanned vehicles as carriers of malicious code or malicious hardware.
In various embodiments the plurality of gaming/utility towers (i.e., gaming/utility tower 125) are separate control towers specifically used to control the unmanned vehicle 115 (e.g., drone). Thus, the unmanned vehicle 115 (e.g., drone) uses a separate and dedicated infrastructure for security reasons. The separate and dedicated infrastructure includes the plurality of gaming/utility towers (i.e., gaming/utility tower 125) and protects the secure unmanned vehicle ecosystem from attack by malicious code because the separate and dedicated infrastructure uses a unique protocol. Furthermore, the separate and dedicated infrastructure including the plurality of gaming/utility towers (i.e., gaming/utility tower 125) reduces load of unwanted control signals on existing data networks that need network bandwidth for data intensive activities.
In various embodiments the plurality of gaming/utility towers (i.e., gaming/utility tower 125) use separate control towers specifically used to control the unmanned vehicle 115 (e.g., drone) using a private network. Suitable networks (may include or interface with any one or more of wireless networks known to those of ordinary skill in the art. Exemplary wireless networks may include communications over radio frequencies, such as for example, digital spread spectrum radio control. Other exemplary wireless networks may include, for instance, a local intranet, a PAN (Personal Area Network), a LAN (Local Area Network), a WAN (Wide Area Network), a MAN (Metropolitan Area Network), a virtual private network (VPN), a storage area network (SAN), a frame relay connection, an Advanced Intelligent Network (AIN) connection, a synchronous optical network (SONET) connection, a digital T1, T3, E1 or E3 line, Digital Data Service (DDS) connection, DSL (Digital Subscriber Line) connection, an Ethernet connection, an ISDN (Integrated Services Digital Network) line, a dial-up port such as a V.90, V.34 or V.34bis analog modem connection, a cable modem, an ATM (Asynchronous Transfer Mode) connection, or an FDDI (Fiber Distributed Data Interface) or CDDI (Copper Distributed Data Interface) connection.
Furthermore, communications may also include links to any of a variety of wireless networks, including WAP (Wireless Application Protocol), GPRS (General Packet Radio Service), GSM (Global System for Mobile Communication), CDMA (Code Division Multiple Access) or TDMA (Time Division Multiple Access), cellular phone networks, GPS (Global Positioning System), CDPD (cellular digital packet data), RIM (Research in Motion, Limited) duplex paging network, Bluetooth radio, or an IEEE 802.11-based radio frequency network. The private network can further include or interface with any one or more of an RS-232 serial connection, an IEEE-1394 (Firewire) connection, a Fiber Channel connection, an IrDA (infrared) port, a SCSI (Small Computer Systems Interface) connection, a USB (Universal Serial Bus) connection or other wired or wireless, digital or analog interface or connection, mesh or Digi° networking.
In various embodiments a user downloads APPs from the App Store 105, using App Store servers, to the user computer system 110 and the user installs the download APPs from the user computer system 110 to the unmanned vehicle 115 (e.g., drone) to create a secure unmanned vehicle ecosystem. The App Store 105 authenticates APPs before uploading to the App Store servers and checks the APPs for security holes including any malicious code and authenticity of software.
In various embodiments the App Store 105 authenticates APPs before downloading to the user computer system 110. For example, the user computer system 110 may be a user smart phone or another user device carrying a data connectivity chip. In some instances, the user computer system 110 uses an existing communications tower (e.g., existing mobile phone towers) or a satellite to download the APPs from the App Store servers of the App Store 105.
In some embodiments the user computer system 110 uses the plurality of gaming/utility towers (i.e., gaming/utility tower 125) to download the APPs from the App Store servers of the App Store 105. The plurality of gaming/utility towers (i.e., gaming/utility tower 125) isolate systems for a secure unmanned vehicle ecosystem from existing internet systems (e.g., existing mobile phone towers) making the plurality of gaming/utility towers (i.e., gaming/utility tower 125) secure. The plurality of gaming/utility towers (i.e., gaming/utility tower 125) are a separate network designed specifically for recreational purposes like gaming and utility applications (e.g., transportation of user goods) and for authenticity of users.
In various embodiments APPs from the App Store 105 are used to create a secure unmanned vehicle ecosystem and include various functions. In some instances functions include tactile control of the unmanned vehicle 115 (e.g., drone) using the tactile sensors of the graphical user interface 400. In some instances functions include voice activated control of the unmanned vehicle 115 (e.g., drone) using the microphone/speaker 415 of graphical user interface 400.
In some embodiments functions used to create a secure unmanned vehicle ecosystem with the graphical user interface 400 include creating a program from user inputs. For example, a user creates a personalized input by drawing using the tactile sensors comprising the speed ball 405 and the direction ball 410. In some instances a user creates a personalized input with voice commands using the microphone/speaker 415. The personalized input may be transferred to the unmanned vehicle 115 (e.g., drone) over a wired network or a separate identifier based network.
In some embodiments functions used to create a secure unmanned vehicle ecosystem with the graphical user interface 400 include verifying security of communication between the APPs and the unmanned vehicle 115 (e.g., drone).
In various embodiments functions used to create a secure unmanned vehicle ecosystem with the graphical user interface 400 include alerting a user for a malfunctioning of the unmanned vehicle 115 (e.g., drone).
In some embodiments functions used to create a secure unmanned vehicle ecosystem include controlling a hard stop of the unmanned vehicle 115 (e.g., drone) through primary test suite that is always available on object module of the unmanned vehicle 115 (e.g., drone) and can be run at any time by a user.
In various embodiments functions used to create a secure unmanned vehicle ecosystem include controlling a hard stop of the unmanned vehicle 115 (e.g., drone) explicitly by a user with an App.
In some embodiments functions used to create a secure unmanned vehicle ecosystem include informing a user in real-time a takeover status of the unmanned vehicle 115 (e.g., drone) with the takeover status including a takeover of the unmanned vehicle 115 (e.g., drone) at a code level. For example, the takeover status may be whether initial code on the unmanned vehicle 115 (e.g., drone) has been altered during flight.
In various embodiments functions used to create a secure unmanned vehicle ecosystem include informing a user in real-time a location status of the unmanned vehicle 115 (e.g., drone) using a Global Positioning System (GPS) on the unmanned vehicle 115 (e.g., drone).
In some embodiments functions used to create a secure unmanned vehicle ecosystem include altering a route of the unmanned vehicle 115 (e.g., drone) by transferring a new program to the unmanned vehicle 115 (e.g., drone) or by overriding an auto pilot mode by using tactile commands or voice commands. For example a user may override an auto pilot mode of the unmanned vehicle 115 (e.g., drone) using the graphical user interface 400 by delivering tactile input to the speed ball 405 and the direction ball 410 or verbal input the microphone/speaker 415.
In various embodiments a secure communications channel to the unmanned vehicle 115 (e.g., drone) is established for a secure unmanned vehicle ecosystem. For example when code is transferred to the unmanned vehicle 115 (e.g., drone) a library compatibility test is completed. For example, when code is transferred through a development kit or through an APP to the unmanned vehicle 115 (e.g., drone) the library compatibility test is completed that determines whether the code to be transferred is compatible with code on the unmanned vehicle 115 (e.g., drone). For example, the code to be transferred is checked against a library of codes already on the unmanned vehicle 115 (e.g., drone) for compatibility. If the code to be transferred is not compatible with the library of codes already on the unmanned vehicle, the transfer is blocked. In various embodiments a manual override by a user overcomes the block of the transfer even when the code to be transferred is not compatible with the library of codes already on the unmanned vehicle.
In various embodiments a firmware compatibility test is completed between the library of codes already on the unmanned vehicle 115 (e.g., drone) and firmware on the unmanned vehicle 115 (e.g., drone). If the firmware compatibility test determines that a code of the library of codes already on the unmanned vehicle 115 (e.g., drone) is not compatible with the firmware on the unmanned vehicle 115 (e.g., drone), a compatible framework is automatically downloaded to update the firmware.
In some embodiments the library compatibility test and the firmware compatibility test detect a malicious code on the unmanned vehicle 115 (e.g., drone). In some instances a server confirms the signature of the firmware while the unmanned vehicle 115 (e.g., drone) is in operation (e.g., in-flight).
In various embodiments programs are verified using an asymmetric key that is used to verify whenever an APP is transferred to the unmanned vehicle 115 (e.g., drone) using the using the graphical user interface 400 by receiving tactile input to the speed ball 405 and the direction ball 410 or verbal input the microphone/speaker 415.
In various embodiments the drone module is made of a design for easy attachment of modules (e.g., the battery module 515, the processor module 520, and the attachment module 525). In various instances the drone module is weight balanced and made from material that is temperature resistant and light weight.
In some embodiments the drone body 505 uses the drone module slot 510 that is located at a position of center of gravity of the drone body 505 and a position of center of gravity of the unmanned vehicle 115 (e.g., drone). The drone module slot 510 only allows adding modules (e.g., the battery module 515, the processor module 520, and the attachment module 525) in a vertical axis.
In some embodiments the battery module 515 is attached above onto the processor module 520 and relays electrical current to the processor module 520. The battery module 515 may relay power generated by sources such as photovoltaic generated power, fuel generated power, and the like. The battery module 515 provides power to the processor module 520 and the battery module 515 may be upgraded depending on time of operation and attachments required by the unmanned vehicle 115 (e.g., drone). All attachment modules comply with the unmanned vehicle 115 (e.g., drone) object module specifications, including size, weight, and power consumption requirements.
In some embodiments the processor module 520 includes a processor with a cache storage, a dual memory store, power distribution system, input data bus, output data bus, and a separate processor to relay the commands to the hardware of the unmanned vehicle 115 (e.g., drone).
In various embodiments a version of the firmware 615 controls limitations of the Duckyworx APIs 620. The attachment modules 610 may include the battery module 515, the processor module 520, and the attachment module 525.
In some embodiments the Duckyworx APIs 620 control various activities of the unmanned vehicle 115 (e.g., drone) by control of the Duckyworx hardware 605. Functionalities of the Duckyworx APIs 620 include but are not limited to the following functionalities disclosed below.
Establishing a secure connection with the unmanned vehicle 115 (e.g., drone) by responding to calls from a smart device. For example, Input (Device ID, Connection Key, *). For example, Output (Device ID, Connection Key, Hash, *).
Run a battery test to predict the flight time available. For example, Input (Device ID, Connection Key, Hash, *, Approximate Weight of the unmanned vehicle 115 (e.g., drone) (Model ID, Attachments, Additional Payload)). For example, Output (Device ID, Connection Key, Hash, *, Time in minutes available).
Lift the unmanned vehicle 115 (e.g., drone) vertically. For example, Input (Device ID, Connection Key, Hash, *, Number of steps). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Drop the unmanned vehicle 115 (e.g., drone) vertically. For example, Input (Device ID, Connection Key, Hash, *, Number of steps). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Ascend the unmanned vehicle 115 (e.g., drone) vertically at an angle. For example, Input (Device ID, Connection Key, Hash, *, Number of steps, Angle). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Descend the unmanned vehicle 115 (e.g., drone) vertically at an angle. For example, Input (Device ID, Connection Key, Hash, *, Number of steps, Angle). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Ascend the unmanned vehicle 115 (e.g., drone) vertically over a distance at an angle. For example, Input (Device ID, Connection Key, Hash, *, Distance in Millimeters, Angle). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Descend the unmanned vehicle 115 (e.g., drone) vertically over a distance at an angle. For example, Input (Device ID, Connection Key, Hash, *, Distance in Millimeters). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Ascend the unmanned vehicle 115 (e.g., drone) vertically over a time at an angle. For example, Input (Device ID, Connection Key, Hash, *, Number of Milliseconds, Angle). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Descend the unmanned vehicle 115 (e.g., drone) vertically over a time at an angle. For example, Input (Device ID, Connection Key, Hash, *, Number of Milliseconds, Angle). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Ascend the unmanned vehicle 115 (e.g., drone) vertically to a specific height over a time. For example, Input (Device ID, Connection Key, Hash, *, Height in Millimeters, Number of Milliseconds). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Descend the unmanned vehicle 115 (e.g., drone) vertically to a specific height over a time. For example, Input (Device ID, Connection Key, Hash, *, Height in Millimeters, Number of Milliseconds). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Ascend the unmanned vehicle 115 (e.g., drone) vertically to a specific height at an angle. For example, Input (Device ID, Connection Key, Hash, *, Height in Millimeters, Angle). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Descend the unmanned vehicle 115 (e.g., drone) vertically to a specific height at an angle. For example, Input (Device ID, Connection Key, Hash, *, Height in Millimeters, Angle). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Ascend the unmanned vehicle 115 (e.g., drone) vertically to a specific height over a distance. For example, Input (Device ID, Connection Key, Hash, *, Height in Millimeters, Horizontal Distance in Millimeters). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Descend the unmanned vehicle 115 (e.g., drone) vertically to a specific height over a distance. For example, Input (Device ID, Connection Key, Hash, *, Height in Millimeters, Horizontal Distance in Millimeters). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Slide the unmanned vehicle 115 (e.g., drone) left number of steps. For example, Input (Device ID, Connection Key, Hash, *, Number of steps). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Slide the unmanned vehicle 115 (e.g., drone) right number of steps. For example, Input (Device ID, Connection Key, Hash, *, Number of steps). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Slide the unmanned vehicle 115 (e.g., drone) back number of steps. For example, Input (Device ID, Connection Key, Hash, *, Number of steps). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Slide the unmanned vehicle 115 (e.g., drone) straight number of steps. For example, Input (Device ID, Connection Key, Hash, *, Number of steps). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Accelerate the unmanned vehicle 115 (e.g., drone) up for milliseconds. For example, Input (Device ID, Connection Key, Hash, *, Number of Milliseconds). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Accelerate the unmanned vehicle 115 (e.g., drone) down for milliseconds. For example, Input (Device ID, Connection Key, Hash, *, Number of Milliseconds). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Turn the unmanned vehicle 115 (e.g., drone) Left at an angle. For example, Input (Device ID, Connection Key, Hash, *, Angle). For example, Output (Device ID, Connection Key, Hash, *, Ack)
Turn right at an angle. For example, Input (Device ID, Connection Key, Hash, *, Angle). For example, Output (Device ID, Connection Key, Hash, *, Ack).
Calculate an angle with a distance, direction, and an angle to Y-Z plane as an input.
Calculate an angle with a distance, direction and an angle to Y-Z plane as an input but with a steer back parameter and with a percentage of remaining distance, this function calls a steer back function to bring the unmanned vehicle 115 (e.g., drone) in exactly same direction as before the start of the turn.
Calculate an angle with a distance, direction, and an angle to Y-Z plane as an input but with an angle back parameter which will bring the unmanned vehicle 115 (e.g., drone) in exact same angle before the start of the turn.
Drive the unmanned vehicle 115 (e.g., drone) in a circle of a given radius and an angle to Y-Z plane.
Let the unmanned vehicle 115 (e.g., drone) throw itself for number of milliseconds with rotors off and start the rotors at the end of the interval in exact same position.
Land the unmanned vehicle 115 (e.g., drone) in an upright position in Y direction.
In various embodiments the Duckyworx preprogramed modules 625 include a basic APP for smart devices to control the unmanned vehicle 115 (e.g., drone) with tactile and voice commands. For example, a basic APP includes the graphical user interface 400 with the speed ball 405 and the direction ball 410 for tactile input. Furthermore, a basic APP includes the graphical user interface 400 with the microphone/speaker 415 for verbal input.
In various embodiments user programs 635 include a program to check locations in and around a house that can be controlled by using an App on a smart device.
In some embodiments the software stack 600 is used to control the unmanned vehicle 115 (e.g., drone) to accomplish the various functionalities using a computing system. A computing device is described further in relation to computing system 1 in
In some embodiments the software stack 600 is used to control the unmanned vehicle 115 (e.g., drone) to accomplish transportation purposes. For example, sending personal items of a user in an urban environment is shown in
Various embodiments of the present technology can be practiced with a local computer system, and/or a cloud-based system.
The example computer system 1 includes a processor or multiple processor(s) 5 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both), and a main memory 10 and static memory 15, which communicate with each other via a bus 20. The computer system 1 may further include a video display 35 (e.g., a liquid crystal display (LCD)). The computer system 1 may also include an alpha-numeric input device(s) 30 (e.g., a keyboard), a cursor control device (e.g., a mouse), a voice recognition or biometric verification unit (not shown), a drive unit 37 (also referred to as disk drive unit), a signal generation device 40 (e.g., a speaker), and a network interface device 45. The computer system 1 may further include a data encryption module (not shown) to encrypt data.
The disk drive unit 37 includes a computer or machine-readable medium 50 on which is stored one or more sets of instructions and data structures (e.g., instructions 55) embodying or utilizing any one or more of the methodologies or functions described herein. The instructions 55 may also reside, completely or at least partially, within the main memory 10 and/or within the processor(s) 5 during execution thereof by the computer system 1. The main memory 10 and the processor(s) 5 may also constitute machine-readable media.
The instructions 55 may further be transmitted or received over a network via the network interface device 45 utilizing any one of a number of well-known transfer protocols (e.g., Hyper Text Transfer Protocol (HTTP)). While the machine-readable medium 50 is shown in an example embodiment to be a single medium, the term “computer-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-readable medium” shall also be taken to include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the machine and that causes the machine to perform any one or more of the methodologies of the present application, or that is capable of storing, encoding, or carrying data structures utilized by or associated with such a set of instructions. The term “computer-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media, and carrier wave signals. Such media may also include, without limitation, hard disks, floppy disks, flash memory cards, digital video disks, random access memory (RAM), read only memory (ROM), and the like. The example embodiments described herein may be implemented in an operating environment comprising software installed on a computer, in hardware, or in a combination of software and hardware.
One skilled in the art will recognize that the Internet service may be configured to provide Internet access to one or more computing devices that are coupled to the Internet service, and that the computing devices may include one or more processors, buses, memory devices, display devices, input/output devices, and the like. Furthermore, those skilled in the art may appreciate that the Internet service may be coupled to one or more databases, repositories, servers, and the like, which may be utilized in order to implement any of the embodiments of the disclosure as described herein.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present technology has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the present technology in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the present technology. Exemplary embodiments were chosen and described in order to best explain the principles of the present technology and its practical application, and to enable others of ordinary skill in the art to understand the present technology for various embodiments with various modifications as are suited to the particular use contemplated.
Aspects of the present technology are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the present technology. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present technology. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
In the following description, for purposes of explanation and not limitation, specific details are set forth, such as particular embodiments, procedures, techniques, etc. in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced in other embodiments that depart from these specific details.
Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of the phrases “in one embodiment” or “in an embodiment” or “according to one embodiment” (or other phrases having similar import) at various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. Furthermore, depending on the context of discussion herein, a singular term may include its plural forms and a plural term may include its singular form. Similarly, a hyphenated term (e.g., “on-demand”) may be occasionally interchangeably used with its non-hyphenated version (e.g., “on demand”), a capitalized entry (e.g., “Software”) may be interchangeably used with its non-capitalized version (e.g., “software”), a plural term may be indicated with or without an apostrophe (e.g., PE's or PEs), and an italicized term (e.g., “N+1”) may be interchangeably used with its non-italicized version (e.g., “N+1”). Such occasional interchangeable uses shall not be considered inconsistent with each other.
Also, some embodiments may be described in terms of “means for” performing a task or set of tasks. It will be understood that a “means for” may be expressed herein in terms of a structure, such as a processor, a memory, an I/O device such as a camera, or combinations thereof. Alternatively, the “means for” may include an algorithm that is descriptive of a function or method step, while in yet other embodiments the “means for” is expressed in terms of a mathematical formula, prose, or as a flow chart or signal diagram.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
It is noted at the outset that the terms “coupled,” “connected”, “connecting,” “electrically connected,” etc., are used interchangeably herein to generally refer to the condition of being electrically/electronically connected. Similarly, a first entity is considered to be in “communication” with a second entity (or entities) when the first entity electrically sends and/or receives (whether through wireline or wireless means) information signals (whether containing data information or non-data/control information) to the second entity regardless of the type (analog or digital) of those signals. It is further noted that various figures (including component diagrams) shown and discussed herein are for illustrative purpose only, and are not drawn to scale.
While specific embodiments of, and examples for, the system are described above for illustrative purposes, various equivalent modifications are possible within the scope of the system, as those skilled in the relevant art will recognize. For example, while processes or steps are presented in a given order, alternative embodiments may perform routines having steps in a different order, and some processes or steps may be deleted, moved, added, subdivided, combined, and/or modified to provide alternative or sub-combinations. Each of these processes or steps may be implemented in a variety of different ways. Also, while processes or steps are at times shown as being performed in series, these processes or steps may instead be performed in parallel, or may be performed at different times.
While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. The descriptions are not intended to limit the scope of the invention to the particular forms set forth herein. To the contrary, the present descriptions are intended to cover such alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims and otherwise appreciated by one of ordinary skill in the art. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above-described exemplary embodiments.
This patent application claims the benefit of U.S. Provisional Application Ser. No. 62/593,798, filed on Dec. 1, 2017, entitled “Systems and Methods of Drone Applications,” which is hereby incorporated in its entirety including all references and appendices cited therein.
Number | Date | Country | |
---|---|---|---|
62593798 | Dec 2017 | US |