Managing drones in vehicular system

In an example, a method may assign a first drone of a drone network a first task, the first task may instruct the first drone to transport a first package to a first destination in a geographic area. The method may receive roadway traffic data for a plurality of roadway vehicles in the geographic area; determine, based on the roadway traffic data and during transit of the first package to the first destination by the first drone, to transfer the first package to a second drone in the drone network; and transfer the first package to the second drone in the drone network.

BACKGROUND

The present disclosure relates to drone management. In a more particular example, the disclosure relates to technologies for managing drones in a vehicular system.

Drones are popularly used in a wide variety of areas for data collection, telecommunication, package delivery, security, and surveillance, etc. However, the drones often have limited operation range because they can only travel a limited distance due to their limited power source. Today, some modern systems rely on optimal placement of charging stations to extend the operation range of the drones. However, these existing solutions are usually inflexible and inefficient because the drones may fly to and from various locations and the charging stations may not exist in their travel routes. Other existing systems generally select a vehicle to carry the drone closer to the destination associated with the assigned task of the drone. However, there may not be a vehicle that can carry the drone towards the destination among the vehicles available on the roads. Even if there is a vehicle that can carry the drone to a point closer to the destination, the distance between that point and the destination may still be longer than the distance that the drone can fly, given its remaining power source. Therefore, it is generally impractical or impossible for these existing systems to guarantee that the assigned task of the drone is successfully completed.

SUMMARY

The subject matter described in this disclosure overcomes the deficiencies and limitations of the existing solutions by providing novel technology for managing drones in a vehicular system.

According to one innovative aspect of the subject matter described in this disclosure, a computer-implemented method comprises: assigning a first drone of a drone network a first task, the first task instructing the first drone to transport a first package to a first destination in a geographic area; receiving roadway traffic data for a plurality of roadway vehicles in the geographic area; determining, based on the roadway traffic data and during transit of the first package to the first destination by the first drone, to transfer the first package to a second drone in the drone network; and transferring the first package to the second drone in the drone network.

In general, another innovative aspect of the subject matter described in this disclosure may be embodied in computer-implemented methods comprising: receiving, at a first drone of a drone network, a first task to transport a first package to a first destination in a geographic area; receiving roadway traffic data for the geographic area; determining, based on the roadway traffic data and during transit of the first package to the first destination by the first drone, to transfer the first package to a second drone of the drone network; wirelessly communicating a request to transfer the first package to the second drone; wirelessly receiving a response to the request accepting the transfer of the first package; and transferring the first package to the second drone.

In general, another innovative aspect of the subject matter described in this disclosure may be embodied in systems comprising: one or more processors; and one or more memories storing instructions that, when executed by the one or more processors, cause the system to: assign a first drone of a drone network a first task, the first task instructing the first drone to transport a first package to a first destination in a geographic area; receive roadway traffic data for a plurality of roadway vehicles in the geographic area; determine, based on the roadway traffic data and during transit of the first package to the first destination by the first drone, to transfer the first package to a second drone in the drone network; and transfer the first package to the second drone in the drone network.

These and other implementations may each optionally include one or more of the following features: that determining a vehicle route of a first roadway vehicle based on the roadway traffic data, wherein the first drone is docked on the first roadway vehicle that is traveling towards the first destination in the geographic area, and determining to transfer the first package to the second drone is based on a range of the first drone and the vehicle route of the first roadway vehicle; that determining to transfer the first package to the second drone includes determining, based on the range of the first drone and the vehicle route of the first roadway vehicle, that the first destination is unreachable by the first drone, determining, based on a proximate traffic condition, that a traffic flow of one or more roadway vehicles is insufficient for transporting the first drone to within a drop-off region of the first destination, and determining to transfer the first package to the second drone based on the first destination being unreachable and the traffic flow being insufficient; that the second drone is docked on a second roadway vehicle that is traveling towards the first destination in the geographic area, determining to transfer the first package to the second drone includes determining a vehicle route of the second roadway vehicle based on the roadway traffic data, selecting, from the drone network, the second drone based on the vehicle route of the second roadway vehicle, and transferring the first package to the second drone includes reassigning the first task to the second drone, the reassigned first task instructing the second drone to transport the first package to the first destination in the geographic area, and coordinating a package handover of the first package from the first drone to the second drone; that selecting the second drone includes determining, based on an assigned task of the second drone, an available range of the second drone, determining, based on the available range of the second drone and the vehicle route of the second roadway vehicle, that the first destination will be reachable by the second drone, and selecting the second drone from the drone network based on the first destination being reachable by the second drone; that selecting the second drone includes determining, based on a proximate traffic condition, that a traffic flow of one or more roadway vehicles is sufficient for transporting the second drone to within a drop-off region of the first destination, and selecting the second drone from the drone network based on the traffic flow being sufficient; that assigning the second drone of the drone network a second task, the second task instructing the second drone to transport a second package to a second destination in the geographic area, reassigning the first task to the second drone and the second task to the first drone, transferring the first package from the first drone to a first roadway vehicle, transferring the second package from the second drone to a second roadway vehicle, navigating the first drone from the first roadway vehicle to the second roadway vehicle having the second package, and navigating the second drone from the second roadway vehicle to the first roadway vehicle having the first package, wherein transferring the first package to the second drone includes transferring the first package from the first drone to the first roadway vehicle, and transferring the first package from the first roadway vehicle to the second drone; that reassigning the first task to the second drone and the second task to the first drone is based on one or more of a task priority, a battery level of the first drone, a battery level of the second drone, a traffic condition associated with a vehicle route of the first roadway vehicle, and a traffic condition associated with a vehicle route of the second roadway vehicle.

These and other implementations may each optionally include one or more of the following features: that the second drone is docked on a second roadway vehicle that is traveling towards the first destination in the geographic area, wirelessly communicating the request to transfer the first package to the second drone includes reassigning the first task to the second drone, the reassigned first task instructing the second drone to transport the first package to the first destination in the geographic area, and transferring the first package to the second drone includes navigating to the second roadway vehicle, and performing a package handover of the first package from the first drone to the second drone; that the second drone is assigned a second task, the second task instructing the second drone to transport a second package to a second destination in the geographic area, wirelessly communicating the request to transfer the first package to the second drone includes reassigning the first task to the second drone and the second task to the first drone, and transferring the first package to the second drone includes transferring the first package from the first drone to a first roadway vehicle, navigating from the first roadway vehicle to a second roadway vehicle having the second package, the second package being transferred from the second drone to the second roadway vehicle, and transferring the second package from the second roadway vehicle to the first drone; that selecting the second drone from the drone network based on one or more of a range of the first drone, a range of the second drone, a traffic condition associated with a vehicle route of a first roadway vehicle, the first drone is docked on the first roadway vehicle, a traffic condition associated with a vehicle route of a second roadway vehicle, and that the second drone is docked on the second roadway vehicle.

Other implementations of one or more of these and other aspects include corresponding systems, apparatus, and computer programs, configured to perform the actions of methods, encoded on non-transitory computer storage devices.

The novel technology for managing drones in a vehicular system presented in this disclosure is particularly advantageous in a number of respects. For example, the technology described herein is capable of enabling the drones to collaboratively form a drone network, in which the first drone can hand over or switch its drone task with a second drone of the drone network based on the roadway traffic data (e.g., roadway data of road segments, vehicle data of roadway vehicles, etc.) and/or other factors (e.g., range of the drones, destination point, subsequent stop point of the drones, urgency level of drone task, etc.). For example, in the package delivery system, if the first drone is incapable of reaching a first destination to deliver a first package due to its limited flight range, the first drone may hand over the first package to the second drone docked on the second roadway vehicle, and the second drone may transport the first package of the first drone in addition to its own package. In another example, the first drone docked on the first roadway vehicle and the second drone docked on the second roadway vehicle may release their packages and switch to dock on the other roadway vehicle that previously transported the other drone, thereby exchanging their drone tasks with one another. Due to the collaboration among the drones in the drone network, the present technology can significantly improve the likelihood that the drone tasks are successfully completed.

Furthermore, the technology described herein can take advantage of the roadway vehicles present on the roads to transport the drones. As a result, the present technology can maximize the overall utilization of these roadway vehicles and eliminate the need to introduce more roadway vehicles on the roads, thereby avoid intensifying vehicular emission and traffic congestion. In addition, the technology described herein can use the drones with limited operation range to perform the drone tasks without increasing the potential risk of task failure, and thus the security concern can be addressed. The present technology is advantageously applicable in various systems that utilize the drones to deliver packages, detect traffic accidents, surveil crime scenes, facilitate transportation with the drones being implemented as mobile roadside units, etc. It should be understood that the foregoing advantages are provided by way of example and that the technology may have numerous other advantages and benefits.

The disclosure is illustrated by way of example, and not by way of limitation in the figures of the accompanying drawings in which like reference numerals are used to refer to similar elements.

DESCRIPTION

The technology described herein can advantageously manage the drones of the drone network to significantly improve the likelihood that drone task is successfully completed. As described in further detail below, the technology includes various aspects, such as drone management methods, systems, computing devices, computer program products, and apparatuses, among other aspects.

Drones are popularly used in various areas. However, it is challenging to expand the drone service area in which the drones are used to perform tasks and guarantee that the tasks are successfully completed due to the limited battery capacity of the drones, excessive cost of the drones that can fly long distances, drone restricted zone, etc. The present technology can leverage the drone collaboration to significantly improve the likelihood that the drone tasks are successfully completed. As discussed in details below, multiple short-range and low-cost drones may form a drone network, the drones of the drone network may include free drones that are flying on their own and/or hosted drones that are piggybacking on host roadway vehicles. The drones in the drone network that are located proximate to one another may dynamically switch or reassign their drone tasks based on various static, dynamic, and/or predefined factors (e.g., real-time traffic information, predicted traffic information, start point and destination point of the drones, package destination, subsequent stop point of the drones, remaining battery of the drones, etc.), thereby improving the likelihood of completion of the drone tasks.

For example, in the context of package delivery, the present technology enables not only the switching of drones among host roadway vehicles but also enables the switching of packages among drones. During the transit of packages by the drones, the drones may receive sensor data from their drone sensors, drone data from other drones, up-to-date roadway traffic information from connected roadway vehicles, roadway infrastructures (e.g., roadside units, edge servers, etc.), and/or other drones, etc. The drones may establish a drone network with other proximate drones, and use the roadway traffic information (e.g., roadway conditions, traffic flow, vehicle data, etc.) to determine their route plan, switch among host roadway vehicles (e.g., the first drone may carry the package and switch to situate on another roadway vehicle), collaboratively switch packages among the drones in the drone network (e.g., the first drone and the second drone may release their packages onto the roadway vehicles that they are currently docked and switch to the roadway vehicle that previously carried the other drone, the first drone may delegate its drone task to the second drone, etc.). The present technology also enables the collaboration between the roadway vehicles and the drones to facilitate the drone operation of the drones. For example, the roadway vehicles may provide updates on their vehicle trajectory, include one or more vehicle stops on their vehicle route, slow down as the drones perform the drone switching or package switching, etc.

The present technology enables a vehicular system in which the drone operations of the drones are independent from the host roadway vehicles on which the drones may dock and independent from the packages that the drones may carry. As a result, the drones may flexibly switch the roadway vehicle on which the drones are piggybacking and switch their packages as needed so that the packages can be successfully transported to the corresponding destinations. The present technology is applicable to the Drone-as-a-Service (DaaS) model.

An example drone management system may assign a first task to a first drone and the first task may instruct the first drone to transport a first package to a first destination in a geographic area. The drone management system may receive roadway traffic data for a plurality of roadway vehicles in the geographic area. During the transit of the first package to the first destination by the first drone, the drone management system may determine to transfer the first package to a second drone in the drone network based on the roadway traffic data, and the first drone may then transfer the first package to the second drone in the drone network.

As an example of the package transfer, the first drone may perform a package handover of the first package to the second drone, and thus the first package may then be transported by the second drone situated on a second roadway vehicle. As another example, the first drone and the second drone may perform a task exchange. To perform the task exchange between the first drone docked on the first roadway vehicle and the second drone docked on the second roadway vehicle, the first drone may release the first package onto the first roadway vehicle, and the second drone may release the second package onto the second roadway vehicle. The first drone may navigate to the second roadway vehicle having the second package, and receive the second package released by the second drone. The second drone may navigate to the first roadway vehicle having the first package, and receive the first package released by the first drone. Thus, the first package may then be transported by the second drone situated on the first roadway vehicle, and the second package may then be transported by the first drone situated on the second roadway vehicle. It should be understood that while the drone management system is described herein in the context of package delivery, the drone management system is applicable to any context in which the drones are implemented.

FIG. 1Ais a block diagram of an example system100for managing drones in a vehicular system. As shown, the system100includes a management server101, one or more drones103a. . .103n, and one or more roadway vehicles107a. . .107ncoupled for electronic communication via a network105. The one or more drones103a. . .103nmay be coupled to one another via signal lines148(e.g., drone-to-drone connection) to form a drone network130. InFIG. 1Aand the remaining figures, a letter after a reference number, e.g., “103a”, represents a reference to the element having that particular reference number. A reference number in the text without a following letter, e.g., “103”, represents a general reference to instances of the element bearing that reference number. It should be understood that the system100depicted inFIG. 1Ais provided by way of example and the system100and/or further systems contemplated by this present disclosure may include additional and/or fewer components, may combine components and/or divide one or more of the components into additional components, etc. For example, the system100may include any number of drones103, roadway vehicles107, management servers101, or networks105.

The network105may be a conventional type, wired and/or wireless, and may have numerous different configurations including a star configuration, token ring configuration, or other configurations. For example, the network105may include one or more local area networks (LAN), wide area networks (WAN) (e.g., the Internet), personal area networks (PAN), public networks, private networks, virtual networks, peer-to-peer networks, near-field networks (e.g., Bluetooth®, NFC, etc.), vehicular networks, drone networks, and/or other interconnected data paths across which multiple devices may communicate.

The network105may also be coupled to or include portions of a telecommunications network for sending data in a variety of different communication protocols. Example protocols include, but are not limited to, transmission control protocol/Internet protocol (TCP/IP), user datagram protocol (UDP), transmission control protocol (TCP), hypertext transfer protocol (HTTP), secure hypertext transfer protocol (HTTPS), dynamic adaptive streaming over HTTP (DASH), real-time streaming protocol (RTSP), real-time transport protocol (RTP) and the real-time transport control protocol (RTCP), voice over Internet protocol (VOW), file transfer protocol (FTP), WebSocket (WS), wireless access protocol (WAP), various messaging protocols (SMS, MMS, XMS, IMAP, SMTP, POP, WebDAV, etc.), or other suitable protocols. In some embodiments, the network105is a wireless network using a connection such as Dedicated Short Range Communication (DSRC), WAVE, 802.11p, a 3G, 4G, 5G+ network, WiFi™, satellite networks, vehicle-to-vehicle (V2V) networks, vehicle-to-infrastructure/infrastructure-to-vehicle (V2I/I2V) networks, drone-to-drone networks, drone-to-infrastructure/infrastructure-to-everything (D2I/D2N) networks, or any other wireless networks. AlthoughFIG. 1Aillustrates a single block for the network105that couples to the management server101, the drone(s)103, and the roadway vehicle(s)107, it should be understood that the network105may in practice comprise any number of combination of networks, as noted above.

The roadway vehicle107may be a vehicle platform that includes a processor, a memory, and network communication capabilities (e.g., a communication unit). The roadway vehicle107may be configured to transmit data to and/or receive data from the management server101, other roadway vehicles107, and/or the drones103via the network105. In some embodiments, as the roadway vehicle107is located within the communication range of the drone103, the roadway vehicle107may be communicatively coupled to the drone103via signal line146(e.g., drone-to-vehicle connection). In some embodiments, the roadway vehicle107(s) are capable of transporting on a roadway surface (e.g., ground surface, water surface, etc.). Non-limiting examples of the roadway vehicle107(s) include a vehicle, an automobile, a bus, a boat, a bionic implant, a robot, or any other roadway vehicle platforms. In some embodiments, the roadway vehicle107may carry one or more drones103as the roadway vehicle107travels on the roadway surface. The drone103may dock on the roadway vehicle107(e.g., situated on the vehicle roof), and thus proceed together with the roadway vehicle107. As a result, the roadway vehicle107may transport the drone103from one point to another as the roadway vehicle107travels along the roads without the drone103flying on its own and consuming its drone power source. In some embodiments, the roadway vehicle107may cooperate with the drone103to facilitate the drone operations of the drone103. For example, the roadway vehicle107may decrease the vehicle speed as the drone103prepares to land on or take off the vehicle roof of the roadway vehicle107, thereby facilitating the docking and undocking of drone103on the roadway vehicle107.

The drone(s)103include computing device(s)132having sensor(s)113, processor(s)115, memory(ies)117, communication unit(s)119, a drone data store121, and a drone management application120. Examples of computing device132of the drone103may include virtual or physical computer processors, control units, micro-controllers, etc., which are coupled to other components of the drone103, such as one or more sensors113, one or more actuators, one or more motivators, etc. The drone103may be coupled to the network105and may send and receive data to and from the management server101via the network105as indicated by the signal lines140and142. The drone103may also be communicatively coupled to the roadway vehicle(s)107via the network105and/or the signal line146, and communicatively coupled to other drone(s)103via the network105and/or the signal line148, etc. In some embodiments, the drones103that are located within a predefined distance (e.g., 300 m) from a reference point (e.g., a traffic intersection, a drone location of a first drone103) may couple to one another to establish a drone network. In some embodiments, the drone103may be an aerial vehicle platform capable of flying from one point to another. Non-limiting examples of the drone103include, but are not limited to, an unmanned drone controlled by an onboard computing device, unmanned drone remotely controlled by a human operator and/or control system, aircraft controlled by an onboard human pilot, etc.

An example of the drone103is illustrated inFIG. 1B.FIG. 1Bdepicts an example geographic area150including multiple drones103and multiple roadway vehicles107. Each drone103may dock on a roadway vehicle107to be transported by the roadway vehicle107or may fly on its own. For example, as depicted inFIG. 1B, the drones172,174,176may be respectively situated on the roadway vehicles182,184,186, while the drone170may fly independently. As illustrated, each drone103may wirelessly send and receive data to and from other entities (e.g., other drones103, the roadway vehicles107, the management server101, etc.). In some embodiments, the drone103is capable of carrying and transporting objects. As depicted inFIG. 1B, to provide the capabilities of flying and transporting objects, the drone103may include the sensor(s)113, the propeller(s)152, the power source154(e.g., drone battery), the landing gear156, the package handler158, etc. In some embodiments, the package handler158may include one or more mechanical arms, mechanical claws, and/or other mechanical structures to grasp and release the package160transported by the drone103. The package handler158may also accommodate and/or provide support to the package160during transportation. Other components of the drone103are also possible and contemplated.

The processor115may execute software instructions (e.g., tasks) by performing various input/output, logical, and/or mathematical operations. The processor115may have various computing architectures to process data signals. The processor115may be physical and/or virtual, and may include a single core or plurality of processing units and/or cores. The processor115may receive and store the sensor data as drone operation data in the drone data store121for access and/or retrieval by the drone management application120and/or other drone applications. In some implementations, the processor115may be capable of controlling various actuators, motivators, and/or other components of the drone103(e.g., propellers, motors, landing gear, etc.). The processor115may also be capable of performing complex tasks including various types of data processing and drone management, etc. In some implementations, the processor115may be coupled to the memory117via bus (not shown) to access data and instructions therefrom and store data therein. The bus may couple the processor115to the other components of the drone103including, for example, the sensor113, the memory117, the communication unit119, and/or the drone data store121.

The drone management application120includes software and/or hardware logic executable to manage the drones to improve the likelihood that drone task is successfully completed. As illustrated inFIG. 1A, the management server101, the drones103, and the roadway vehicles107may include instances120a,120b, and120cof the drone management application120. In some embodiments, each instance120a,120b,120cmay comprise one or more components as depicted inFIG. 2, and may be configured to fully or partially perform the functionalities described herein depending on where the instance resides. In some embodiments, the drone management application120may be implemented using software executable by one or more processors of one or more computer devices, using hardware, such as but not limited to a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), etc., and/or a combination of hardware and software, etc. The drone management application120may receive and process the drone data and/or the roadway traffic data, and communicate with other components of the drone103via the bus, such as the communication unit119, the memory117, the drone data store121, etc. The drone management application120is described in details below with reference to at leastFIGS. 2-8B.

The memory117includes a non-transitory computer-usable (e.g., readable, writeable, etc.) medium, which can be any tangible non-transitory apparatus or device that can contain, store, communicate, propagate or transport instructions, data, computer programs, software, code, routines, etc., for processing by or in connection with the processor115. For example, the memory117may store the drone management application120and/or other drone applications. In some implementations, the memory117may include one or more of volatile memory and non-volatile memory. For example, the memory117may include, but is not limited to, one or more of a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device, a discrete memory device (e.g., a PROM, FPROM, ROM), a hard disk drive, an optical disk drive (CD, DVD, Blue-Ray™, etc.). It should be understood that the memory117may be a single device or may include multiple types of devices and configurations.

The communication unit119transmits data to and receives data from other computing devices to which it is communicatively coupled (e.g., via the network105, drone-to-drone connections148, drone-to-vehicle connections146, etc.) using wireless and/or wired connections. The communication unit119may include one or more wired interfaces and/or wireless transceivers for sending and receiving data. The communication unit119may couple to the network105and communicate with other entities of the system100, such as other drone(s)103, roadway vehicle(s)107, and/or management server101, etc. The communication unit119may exchange data with other computing nodes using standard communication methods, such as those discussed above.

The sensor(s)113includes any type of sensors suitable for the drone(s)103. The sensor(s)113may be configured to collect any type of signal data suitable to determine characteristics of the drone103and/or its internal and external environments. Non-limiting examples of the sensor(s)113include various optical sensors and/or image sensors (CCD, CMOS, 2D, 3D cameras, etc.), motion detection sensors, barometers, altimeters, thermocouples, moisture sensors, switches, infrared (IR) sensors, radar sensors, other photosensors, gyroscopes, accelerometers, speedometers, steering sensors, geo-location sensors (Global Positioning System (GPS) sensor), orientation sensor, wireless transceivers (e.g., cellular, WiFi™, near-field, etc.), sonar sensors, ultrasonic sensors, proximity sensors, distance sensors, tilt sensor, magnetic sensor, current sensor, engine intake flow sensor, inertial measurement unit, etc. In some embodiments, the sensors113may be provided at the top side, bottom side, right side, and/or left side of the drone103in order to capture the situational context surrounding the drone103.

The drone data store121includes a non-transitory storage medium that stores various types of data. For example, the drone data store121of a first drone103may store drone data of the first drone103. In some embodiments, the drone data may include drone operation data collected from multiple sensors113coupled to different components of the first drone103for monitoring operating states of these components. Non-limiting examples of the drone operation data include the drone location (e.g., GPS coordinates), the moving direction, the drone speed (e.g., 25 mph), the drone acceleration/deceleration rate, the drone altitude (e.g., 14 m), the tilt angle (e.g., (15°), the propeller speed (Revolutions Per Minute—RPM), the motor temperature, etc. In some embodiments, the drone operation data may include the energy level indicating the remaining power source of the first drone103(e.g., 50%). The energy level of the first drone103may also be referred to herein as the battery level. In some embodiments, the drone operation data may include the range of the first drone103indicating the flight distance that the first drone103can fly given its energy level and/or operation constraints (e.g., flight endurance limit, motor temperature threshold, etc.). The range of the first drone103may dynamically change over time as the first drone103performs various operations and consume its drone power source. The range of the first drone103may also be referred to herein as the current range of first drone103or the flight range of first drone103. Other types of drone operation data are also possible and contemplated.

In some embodiments, the drone data may include a drone task list describing multiple drone tasks assigned to the first drone103, the drone task may be referred to herein as a task. In the context of package delivery, the drone task may instruct the first drone103to transport a first package to a destination. For the drone task associated with the first package, the drone task list may include a task identifier (ID) uniquely identifying the drone task, the pick-up point at which the first package is picked up, the destination point to which the first package is transported, the package data describing the first package (e.g., package weight, package urgency level, etc.), etc. In some embodiments, the drone data may also specify the current drone task currently performed by the first drone103, and the subsequent stop point of the first drone103to which the first drone103may navigate subsequent to performing the current drone task. In some embodiments, the drone data may also specify the roadway vehicle107on which the first drone103is currently docked. Other types of drone data are also possible and contemplated.

In some embodiments, the drone data store121of the first drone103may store drone data associated with other drones103. The drone data associated with a second drone103being stored in the drone data store121may include the drone location of the second drone103, the flight range of the second drone103, the task ID of the current drone task performed by the second drone103, the package data of a second package that is associated with the current drone task of the second drone103, the destination point to which the second package is transported, the subsequent stop point of the second drone103, the roadway vehicle107on which the second drone103is currently docked, etc.

In some embodiments, the drone data store121of the first drone103may store roadway traffic data describing one or more road segments in the geographic area and one or more roadway vehicles107in the geographic area. In some embodiments, the roadway traffic data may include roadway data associated with one or more road segments. The roadway data associated with a road segment may include the roadway status of the road segment (e.g., lane closure, road construction, detour), the drone restriction status of the road segment (e.g., fly zone, no-fly zone), the historical traffic data describing traffic pattern of the road segment (e.g., roadway vehicles107in the middle lane usually move to the right lane to enter the freeway), the traffic metrics describing the traffic condition of the road segment, etc. In some embodiments, the traffic metrics describing the traffic condition of the road segment may include the vehicle density indicating the number of roadway vehicles present on a predefined distance of the road segment (e.g., 40 vehicles/km), the traffic flow rate indicating the number of vehicles passing a static point on the road segment in a predefined time period (e.g., 4000 vehicles/h), the vehicle speed indicating the average speed of the roadway vehicles traveling on the road segment (e.g., 40 mph), the following distance indicating the average distance between the roadway vehicles traveling on the road segment (e.g., 5 m), etc. Other types of roadway data are also possible and contemplated.

In some embodiments, the roadway traffic data may include vehicle data associated with one or more roadway vehicles107in the geographic area. Non-limiting examples of the vehicle data associated with a roadway vehicle107include the vehicle speed, the vehicle acceleration/deceleration rate, the vehicle start point, the vehicle destination point, the vehicle route currently followed by the roadway vehicle107, the vehicle location indicating the geographic location of the roadway vehicle107(e.g., GPS coordinates), the vehicle lane indicating the lane in which the roadway vehicle107proceeds, etc. In some embodiments, the vehicle data associated with the roadway vehicle107may also include the vehicle attributes of the roadway vehicle107(e.g., private vehicle, public vehicle, fixed routes and schedules, etc.), the vehicle behavior data describing the vehicle maneuvers performed by the roadway vehicle107during a recent time window (e.g., in the last 10 minutes), the historical travel data describing travel pattern of the roadway vehicle107(e.g., the roadway vehicle107usually takes exit293on freeway 1-15 on Saturday afternoon), etc. Other types of vehicle data are also possible and contemplated.

In some embodiments, the drone data store121may be part of a data storage system (e.g., a standard data or database management system) for storing and providing access to data. Other types of data stored in the drone data store121are also possible and contemplated.

The management server101may be a hardware and/or virtual server that includes a processor, a memory, and network communication capabilities (e.g., a communication unit). The management server101may be communicatively coupled to the network105, as reflected by signal line138. In some embodiments, the management server101may send and receive data to and from other entities of the system100(e.g., the drones103and/or the roadway vehicles107) via the network105. As depicted, the management server101may include an instance120aof the drone management application120, and a server data store123that stores various types of data for access and/or retrieval by this application.

In some embodiments, the server data store123includes a non-transitory storage medium that stores drone data of multiple drones103in the geographic area. As discussed elsewhere herein, the drone data of a first drone103may include the drone location, the battery level (e.g., 87%), the current range of the first drone103(e.g., 150 m), the drone task list of the first drone103, the current drone task being performed by the first drone103, a priority of the task, the package data of the first package associated with the current drone task, the destination point to which the first package is transported, the subsequent stop point of the first drone103, the roadway vehicle107on which the first drone103is currently docked, etc. It should be understood that the server data store123may also store other types of drone data of the first drone103.

In some embodiments, the server data store123may store roadway traffic data describing one or more road segments in the geographic area and one or more roadway vehicles107in the geographic area. As discussed elsewhere herein, the roadway traffic data may include the roadway data associated with one or more road segments. The roadway data associated with a road segment may include the roadway status, the drone restriction status, the historical traffic data, the traffic metrics describing the traffic condition of the road segment (e.g., the vehicle density, the traffic flow rate, the average vehicle speed, the average following distance, etc.), etc. As discussed elsewhere herein, the roadway traffic data may also include the vehicle data associated with one or more roadway vehicles107. The vehicle data associated with a roadway vehicle107may include the vehicle speed, the vehicle acceleration/deceleration rate, the vehicle start point, the vehicle destination point, the vehicle location, the vehicle lane, the vehicle route, the historical travel data, the vehicle attributes (e.g., public vehicle, private vehicle, fixed routes and schedules, etc.), etc., of the roadway vehicle107. It should be understood that the server data store123may also store other types of roadway traffic data.

In some embodiments, the server data store123may be part of a data storage system (e.g., a standard data or database management system) for storing and providing access to data. Other types of data stored in the server data store123are also possible and contemplated.

Other variations and/or combinations are also possible and contemplated. It should be understood that the system100inFIG. 1Ais merely an example system and that a variety of different system environments and configurations are contemplated and are within the scope of the present disclosure. For example, various acts and/or functionality may be moved from a server to a client, or vice versa, data may be consolidated into a single data store or further segmented into additional data stores, and some implementations may include additional or fewer computing devices, services, and/or networks, and may implement various functionality client or server-side. Further, various entities of the system may be integrated into a single computing device or system or divided into additional computing devices or systems, etc.

FIG. 2is a block diagram of an example drone management application120. As depicted, the drone management application120may include a drone task manager202, an input processor204, and a drone manager206. It should be understood that the drone management application120may include additional components such as, but not limited to, a configuration engine, an encryption/decryption engine, etc., and/or these various components may be combined into a single engine or divided into additional engines. In some embodiments, the drone management application120may be implemented in various computing entities of the system100and may be configured based on the computing entity in which it is implemented. In some embodiments, the drone management application120may be implemented in the management server101, and optionally configured to enable the drone task manager202, and disable other components of the drone management application120. In some embodiments, the drone management application120may be implemented in the drone103and/or the roadway vehicle107, and optionally configured to enable the input processor204and the drone manager206, and disable other components of the drone management application120. In some embodiments, as depicted inFIG. 1A, the drone manager206implemented in the drones103may update the drone data, the roadway traffic data, the drone task list, and/or other data stored in the server data store123of the management server101as indicated by the signal line142. The drone task manager202implemented in the management server101may update the drone task list and/or other data stored in the drone data store121of the drones103as indicated by the signal line140. Other configurations of the drone management application120are also possible and contemplated.

The drone task manager202, the input processor204, and the drone manager206may be implemented as software, hardware, or a combination of the foregoing. In some embodiments, the drone task manager202, the input processor204, and the drone manager206may be communicatively coupled by the bus and/or the processor115to one another and/or to the other components of the computing device132. In some embodiments, one or more of the components120,202,204, and/or206are sets of instructions executable by the processor115to provide their functionality. In further embodiments, one or more of the components120,202,204, and/or206are storable in the memory117and are accessible and executable by the processor115to provide their functionality. In any of the foregoing embodiments, these components120,202,204, and/or206may be adapted for cooperation and communication with the processor115and other components of the computing device132. The drone management application120and its components202,204,206are described in further detail below with reference to at leastFIGS. 3-8B.

FIG. 3is a flowchart of an example method300for managing drones to improve the likelihood that drone task is successfully completed. In block302, the drone task manager202may assign a first task to a first drone103of the drone network, the first task may instruct the first drone103to transport a first package to a first destination in the geographic area. In some embodiments, the first destination may be the ultimate destination to which the first package is delivered for the package recipient, or the temporary destination of the first package during the delivery process (e.g., local store, warehouse, courier facility, etc.). In some embodiments, to transport the first package, the first drone103may carry the first package and fly to the first destination. Alternatively, the first drone103may carry the first package and dock on a first roadway vehicle107that is traveling towards the first destination, thereby being transported towards the first destination as the first roadway vehicle107proceeds forward.

In block304, the input processor204may receive roadway traffic data for a plurality of roadway vehicles107in the geographic area. In some embodiments, the input processor204may receive the roadway traffic data describing one or more road segments located between the drone location of the first drone103and the first destination associated with the first task. As discussed elsewhere herein, the roadway traffic data may include the roadway data of the road segments and vehicle data of one or more roadway vehicles107traveling on these road segments. The roadway data of the road segment may include the roadway status, the drone restriction status, the historical traffic data, the traffic metrics describing the traffic condition of the road segment, etc. The vehicle data of the roadway vehicle107may include the vehicle speed, the vehicle acceleration/deceleration rate, the vehicle start point, the vehicle destination point, the vehicle location, the vehicle lane, the vehicle route, the vehicle behavior data, the historical travel data, the vehicle attributes, etc., of the roadway vehicle107. In some embodiments, the input processor204may also receive the drone data associated with one or more second drones103that are distinct from the first drone103. As discussed elsewhere herein, the drone data of the second drone103may include the drone location, the current range of the second drone103, the current drone task being performed by the second drone103, the package data of the second package associated with the current drone task of the second drone103, the destination point to which the second package is transported, the subsequent stop point of the second drone103, the roadway vehicle107on which the second drone103is currently docked, etc.

In block306, during the transit of the first package to the first destination by the first drone103, the drone manager206may determine to transfer the first package to a second drone103in the drone network. In some embodiments, to determine to transfer the first package to the second drone103in the drone network, the drone manager206may rely on the roadway traffic data to determine whether the first package is to be transferred in order to successfully transport the first package to the first destination. If the first package is to be transferred, the first drone103may couple to the second drones103located within a predefined distance from its drone location to establish the drone network (e.g., 300 m), and the drone manager206may rely on the roadway traffic data to determine the second drone103in the drone network to which the first package is transferred. In block308, the first drone103may transfer the first package to the second drone103in the drone network.

In some embodiments, instead of transferring the first package to the second drone103, the drone manager206may perform other operations so that the first package can be successfully transported to the first destination. In some embodiments, the drone manager206may analyze the roadway traffic data and the drone data to determine suitable operation for the first drone103. Available operations for the first drone103may include: stop flying and dock on a first roadway vehicle107, remain situating on the first roadway vehicle107, navigate to dock on a second roadway vehicle107that is different from the first roadway vehicle107, transfer the first package to a second drone103(e.g., perform package handover or task exchange with the second drone103), or transport the first package to a nearby temporary location (e.g., warehouse, courier facility), etc. Other operations of the first drone103are also possible and contemplated.

FIG. 4is a flowchart of an example method400for determining whether the first package is to be transferred in order to successfully transport the first package to the first destination in the geographic area. As discussed above, the first package may currently be transported by the first drone103, and the first drone103may dock on a first roadway vehicle107that is traveling towards the first destination. In some embodiments, as the first roadway vehicle107is traveling towards the first destination, the distance between the first roadway vehicle107and the first destination may decrease over time. On the other hand, as the first roadway vehicle107is traveling away from the first destination, the distance between the first roadway vehicle107and the first destination may increase over time.

In block402, the drone manager206may determine the vehicle route of the first roadway vehicle107on which the first drone is docked based on the roadway traffic data. In some embodiments, the vehicle data of the first roadway vehicle107may include the vehicle route of the first roadway vehicle107, and thus the drone manager206may extract the vehicle route of the first roadway vehicle107from the vehicle data of the first roadway vehicle107in the roadway traffic data. In some embodiments, the vehicle data of the first roadway vehicle107may not include the vehicle route of the first roadway vehicle107. In that situation, the drone manager206may analyze the vehicle data of the first roadway vehicle107(e.g., the vehicle start point, the vehicle destination point, the vehicle lane, the vehicle acceleration/deceleration rate, the vehicle behavior data, the historical travel data, etc.) and the roadway data of the road segments (e.g., the roadway status, the traffic metrics, the historical traffic data, etc.), and predict the vehicle route of the first roadway vehicle107based on the vehicle data and/or the roadway data. For example, the drone manager206may determine that the first roadway vehicle107made a lane change to the rightmost lane and decelerated, and thus determine that the first roadway vehicle107is likely to make a right turn at the upcoming intersection and then proceed straight to the vehicle destination point. As another example, the drone manager206may determine that the road segment is closed due to a traffic accident, and thus determine that the first roadway vehicle107is likely to make a left turn at the intersection to take a detour.

In some embodiments, the drone manager206may determine whether the first package is to be transferred based on the current range of the first drone103and the vehicle route of the first roadway vehicle107. In block404, the drone manager206may determine that the first destination is unreachable by the first drone103based on the current range of the first drone103and the vehicle route of the first roadway vehicle107on which the first drone103is docked. In some embodiments, the drone manager206may determine on the vehicle route of the first roadway vehicle107a part-way location at which the first roadway vehicle107may travel away from the first destination, and thus the first roadway vehicle107will no longer transport the first drone103closer to the first destination at that point. The drone manager206may determine that the distance between the part-way location and the first destination is higher than the flight distance that the first drone103can fly as indicated by the range of the first drone103, and thus determine that the first drone103cannot reach the first destination.

In block406, the drone manager206may determine, based on a proximate traffic condition, that a traffic flow of one or more roadway vehicles107is insufficient for transporting the first drone103to within a drop-off region of the first destination. The drop-off region of the first destination may be the region in which a drone103transporting the first package may undock from the roadway vehicle107on which the drone103is situated, and fly to drop off the first package at the first destination within the drop-off region. In some embodiments, the drop-off region of the first destination may remain unchanged (e.g., 50 m from the front porch) or may vary depending on the range of the drone103transporting the first package (e.g., 50% of the range of the drone103).

In some embodiments, the drone manager206may analyze the traffic condition at one or more proximate locations on the vehicle route of the first roadway vehicle107, the proximate locations may be located between the vehicle location of the first roadway vehicle107and the part-way location at which the first roadway vehicle107may travel away from the first destination. In some embodiments, the proximate locations may be located within a predefined distance from the vehicle location of the first roadway vehicle107(e.g., 300 m). Alternatively, the proximate locations may be located within a predefined distance from the part-way location (e.g., 350 m). In some embodiments, the drone manager206may determine whether the traffic flow of one or more roadway vehicles107at these proximate locations is sufficient to transport the first drone103to within the drop-off region of the first destination. In some embodiments, the drone manager206may determine the traffic flow rate of the roadway vehicles107at the proximate location, and determine whether the traffic flow rate of the roadway vehicles107satisfies a traffic flow rate threshold. Alternatively, the drone manager206may determine the traffic flow rate of the roadway vehicles107that likely travel towards the first destination at the proximate location, or the traffic flow rate of the roadway vehicles107that likely travel to the start point of the drop-off region at the proximate location, and determine whether the traffic flow rate of these roadway vehicles107satisfies the traffic flow rate threshold. If the traffic flow rate of the roadway vehicles107satisfies the traffic flow rate threshold (e.g., less than 3000 vehicles/h), the drone manager206may determine that the traffic flow of the roadway vehicles107at the proximate location is insufficient to transport the first drone103carrying the first package to within the drop-off region of the first destination.

In block408, the drone manager206may determine to transfer the first package to a second drone103based on the first destination being unreachable by the first drone103and the traffic flow of the roadway vehicles107at the proximate location being insufficient. Thus, as discussed above, the distance between the part-way location at which the first roadway vehicle107may travel away from the first destination and the first destination is higher than the flight distance that the first drone103can fly, and therefore the first drone103cannot reach the first destination. The traffic flow of the roadway vehicles107at the proximate location between the vehicle location of the first roadway vehicle107and the part-way location is insufficient, and therefore the first drone103may unlikely be able to get on another roadway vehicle107that is traveling towards the first destination before the first roadway vehicle107reaches the part-way location on its vehicle route. As a result, the drone manager206may determine that the first package is to be transferred.

In some embodiments, in addition to the roadway traffic data, the drone manager206may determine to transfer the first package to a second drone103based on other factors. For example, the drone manager206may analyze the roadway traffic data, and determine that the traffic metric(s) of one or more road segments in the vehicle route of the first roadway vehicle107satisfies the corresponding traffic metric threshold(s) (e.g., the average vehicle speed is less than 15 mph, the average following distance is less than 1 m, etc.), and thus determine that a traffic congestion occurs on the vehicle route of the first roadway vehicle107. In some embodiments, if the drone manager206determines that the traffic congestion occurs on the vehicle route of the first roadway vehicle107on which the first drone103is docked, and that the package urgency level of the first package satisfies a package urgency level threshold (e.g., higher than 75%), the drone manager206may determine that the first package is to be transferred from the first drone103to a second drone103so that the first package can be timely transmitted to the first destination. Other factors and implementations for determining whether the first package is to be transferred are also possible and contemplated.

As an example,FIG. 8Aillustrates an example scenario800in which the first drone820may be assigned a first task of transporting the first package825to the first destination840. The first drone820may dock on the first roadway vehicle802, and thus may be transported towards the first destination840as the first roadway vehicle802travels along the vehicle route812. In this example, the drone manager206may determine on the vehicle route812the part-way location813at which the first roadway vehicle802may travel away from the first destination840. The drone manager206may determine that the distance between the part-way location813and the first destination840(e.g., 500 m) is higher than the current range of the first drone820(e.g., 200 m), and thus determine that the first drone820cannot reach the first destination840.

The drone manager206may then determine the traffic condition at one or more proximate locations between the vehicle location of the first roadway vehicle802and the part-way location813. For example, the drone manager206may determine the traffic flow of the roadway vehicles107at the proximate location811. In this example, the proximate location811may be the intersection on the vehicle route812that is directly adjacent to the vehicle location of the first roadway vehicle802on its moving direction. The drone manager206may determine that the traffic flow rate at the proximate location811satisfies the traffic flow rate threshold (e.g., less than 3000 vehicles/h). Therefore, the drone manager206may determine that the traffic flow of the roadway vehicles107at the proximate location811is insufficient, and thus the first drone820may unlikely be able to get on another roadway vehicle107that can transport the first drone820towards the first destination840at the proximate location811. As the first drone820cannot fly from the part-way location813to the first destination840, and the first drone820may unlikely be able to dock on another roadway vehicle107that is traveling towards the first destination840before the first roadway vehicle802moving away from the first destination840at the part-way location813, the drone manager206may determine that the first package825is to be transferred.

In some embodiments, the drone manager206may determine the second drone103to which the first package is transferred. In some embodiments, to transfer the first package, the first drone103may perform a package handover of the first package from the first drone103to the second drone103, and the second drone103may then transport the first package. Alternatively, the second drone103may currently transport a second package, and the first drone103may perform a task exchange with the second drone103. Thus, the second drone103may then transport the first package, and the first drone103may then transport the second package.

In some embodiments, to perform the package handover of the first package, the drone manager206may select the second drone103to which the first package will be handed over. In some embodiments, the drone manager206may determine the vehicle route of the roadway vehicles107on which other drones103of the drone network are docked, and select the second drone103from the other drones103based on the vehicle route of the second roadway vehicle107that is currently transporting the second drone103. As discussed elsewhere herein, the other drones103in the drone network may be located within the predefined distance from the drone location of the first drone103(e.g., 300 m). In some embodiments, the drone manager206may determine the vehicle route of the roadway vehicles107on which the other drones103are docked based on the roadway traffic data in a manner similar to determining the vehicle route of the first roadway vehicle107on which the first drone103is docked as discussed above with reference toFIG. 4.

FIG. 5Ais a flowchart of example method500for selecting the second drone103to perform the package handover of the first package from the first drone103to the second drone103. The first package will be transported by the second drone103as a result of the package handover, and therefore the drone manager206may select the second drone103that is docked on the second roadway vehicle107currently traveling towards the first destination in the geographic area. In block502, the drone manager206may determine the available range of the second drone103based on the assigned task of the second drone103. In some embodiments, the second drone103may itself be assigned a second task, and the second task may instruct the second drone103to transport a second package to a second destination. In some embodiments, the drone manager206may determine the unallocated flight distance that the second drone103can fly in addition to the flight distance to transport the second package to the second destination to complete the second task, and determine the available range of the second drone103to be the unallocated flight distance.

In block504, the drone manager206may determine that if the second drone103transports the first package, the first destination will be reachable by the second drone103. The drone manager206may determine that the first destination will be reachable by the second drone103based on the available range of the second drone103and the vehicle route of the second roadway vehicle107on which the second drone103is docked. As discussed above, the second roadway vehicle107on which the second drone103is docked may currently travel towards the first destination. The drone manager206may determine on the vehicle route of the second roadway vehicle107a part-way location at which the second roadway vehicle107may start to travel away from the first destination, and thus the second roadway vehicle107will no longer transport the second drone103closer to the first destination at that point. The drone manager206may determine that the distance between the part-way location and the first destination is lower than the flight distance that the second drone103can additionally fly as indicated by the available range of the second drone103, and thus determine that the second drone103can reach the first destination. In block506, the drone manager206may select the second drone103to perform the package handover of the first package.

Continuing the example inFIG. 8A, the drone manager206may determine a second drone830in the drone network, the second drone830may be located within a predefined distance from the drone location of the first drone820. In this example, the second drone830may currently transport the second package835to a second destination to perform a second task, and the second drone830may dock on a second roadway vehicle804that is traveling towards the first destination840. The drone manager206may determine the available range that the second drone830can additionally fly (e.g., 450 m) given the flight distance allocated for transporting the second package835to the second destination (e.g., 200 m). The drone manager206may determine on the vehicle route814of the second roadway vehicle804the part-way location815at which the second roadway vehicle804may travel away from the first destination840, and determine that the distance between the part-way location815and the first destination840(e.g., 300 m) is lower than the available range of the second drone830(e.g., 450 m). Therefore, the drone manager206may determine that the second drone830can reach the first destination840, and the second drone103is capable of transporting the first package825to the first destination840in addition to transporting the second package835to the second destination. Thus, the drone manager206may select the second drone830to perform the package handover of the first package825from the first drone802, and reassign the first task to the second drone830. The reassigned first task may instruct the second drone830to transport the first package825to the first destination840in the geographic area.

In some embodiments, once the second drone103is selected, the drone manager206implemented in the first drone103and the second drone103may coordinate the package handover of the first package from the first drone103to the second drone103. Continuing the example inFIG. 8A, the first drone820may carry the first package825and navigate from the first roadway vehicle802to the second roadway vehicle804. The first drone820may release the first package825onto the second roadway vehicle804, and the second drone830may pick up the first package825from the second roadway vehicle804. Alternatively, the first drone820may transfer the first package825directly to the second drone830. Other implementations for coordinating the package handover of the first package are also possible and contemplated.

As illustrated inFIG. 8A, once the package handover of the first package825is completed, the second drone830may carry both first package825and second package835. The first drone820may then navigate to its subsequent stop point, and the second drone830may be transported towards the first destination840by the second roadway vehicle804. As the second roadway vehicle804reaches the part-way location815at which the second roadway vehicle804starts to travel away from the first destination840, the second drone830may carry the first package825and fly to the first destination840, thereby transporting the first package825to the first destination840to complete the first task. Once the first task is completed, the second drone830may receive the vehicle location of the second roadway vehicle804, and navigate back to the second roadway vehicle804to perform the second task of transporting the second package835to the second destination. If the second drone830already transported the second package835to the second destination prior to transporting the first package825to the first destination840, the second drone830may navigate to its subsequent stop point (e.g., charging station, courier facility, pick-up point of the subsequent drone task, etc.).

FIG. 5Bis a flowchart of another example method550for selecting the second drone103to perform the package handover of the first package from the first drone103to the second drone103. As discussed above, the first package will be transported by the second drone103as a result of the package handover, and therefore the drone manager206may select the second drone103that is docked on the second roadway vehicle107currently traveling towards the first destination in the geographic area. In block552, the drone manager206may determine that if the second drone103transports the first package, a traffic flow of one or more roadway vehicles107is sufficient for transporting the second drone103to within the drop-off region of the first destination. The drone manager206may determine that the traffic flow of the one or more roadway vehicles107is sufficient based on a proximate traffic condition. As discussed elsewhere herein, the drop-off region of the first destination may be the region in which the drone103transporting the first package may fly to drop off the first package at the first destination within the drop-off region.

In some embodiments, the drone manager206may determine the vehicle route of the second roadway vehicle107on which the second drone103is docked, and determine on the vehicle route of the second roadway vehicle107the part-way location at which the second roadway vehicle107may travel away from the first destination. The drone manager206may analyze the traffic condition at one or more proximate locations on the vehicle route of the second roadway vehicle107, the proximate locations may be located between the vehicle location of the second roadway vehicle107and the part-way location at which the second roadway vehicle107may travel away from the first destination. In some embodiments, the drone manager206may determine the traffic flow rate of the roadway vehicles107at the proximate location, and determine whether the traffic flow rate of the roadway vehicles107satisfies a traffic flow rate threshold. Alternatively, the drone manager206may determine the traffic flow rate of the roadway vehicles107that likely travel towards the first destination at the proximate location, or the traffic flow rate of the roadway vehicles107that likely travel to the start point of the drop-off region at the proximate location, and determine whether the traffic flow rate of these roadway vehicles107satisfies the traffic flow rate threshold. If the traffic flow rate of the roadway vehicles107satisfies the traffic flow rate threshold (e.g., more than 3200 vehicles/h), the drone manager206may determine that the traffic flow of the roadway vehicles107at the proximate location is sufficient to transport the second drone103carrying the first package to within the drop-off region of the first destination, or to transport another drone103that may receive the first package from the second drone103at the proximate location to within the drop-off region of the first destination. In block554, the drone manager206may select the second drone103to perform the package handover of the first package.

As an example,FIG. 8Billustrates an example scenario850in which the first drone870may be assigned a first task of transporting the first package875to the first destination892. The first drone870may dock on the first roadway vehicle852that is traveling along the vehicle route862. In this example, the drone manager206may determine that the first package875is to be transferred so that the first package875can be successfully transported to the first destination892. The drone manager206may determine a second drone880in the drone network, the second drone880may be located within a predefined distance from the drone location of the first drone870. The second drone880may dock on a second roadway vehicle854that is traveling towards the first destination892. The drone manager206may determine the vehicle route864of the second roadway vehicle854, and determine on the vehicle route864the part-way location861at which the second roadway vehicle854may start traveling away from the first destination892. The drone manager206may determine that the distance between the part-way location861and the first destination892(e.g., 950 m) is higher than the available range of the second drone880(e.g., 450 m), and thus determine that the second drone880cannot reach the first destination892.

The drone manager206may then determine the traffic condition at one or more proximate locations between the vehicle location of the second roadway vehicle854and the part-way location861. For example, the drone manager206may determine the traffic flow of the roadway vehicles107at the part-way location861. The drone manager206may determine that the traffic flow rate at the part-way location861satisfies the traffic flow rate threshold (e.g., more than 3200 vehicles/h), and thus determine that the traffic flow of the roadway vehicles107at the part-way location861is sufficient. Therefore, the drone manager206may determine that although the second drone880cannot reach the first destination892, the second drone880may likely be able to get on another roadway vehicle107that can transport the second drone880towards the first destination892at the part-way location861, or to transfer the first package875to a third drone103that can reach the first destination892at the part-way location861. Thus, the drone manager206may select the second drone880to perform the package handover of the first package875from the first drone870, and reassign the first task to the second drone880. The reassigned first task may instruct the second drone880to transport the first package825to the first destination840in the geographic area.

As depicted inFIG. 8B, once the second drone880is selected, the drone manager206implemented in the first drone870and the second drone880may coordinate the package handover of the first package875from the first drone870to the second drone880. As a result of the package handover, the second drone880may carry the first package875together with its own package, if any (e.g., the second package885). The first drone870may then navigate to its subsequent stop point, and the second drone880may be transported towards the first destination892by the second roadway vehicle854.

As the second roadway vehicle854reaches the part-way location861at which the second roadway vehicle854starts to travel away from the first destination892, the second drone880may carry the first package875and get on a third roadway vehicle107that can transport the second drone880closer to the first destination892. For example, the drone manager206implemented in the second drone880may determine the vehicle route of the third roadway vehicle107that is located within a predefined distance from the drone location of the second drone880, and determine that the third roadway vehicle107is traveling towards the first destination892. The second drone880may then carry the first package875, and navigate to dock on the third roadway vehicle107, thereby being transported towards the first destination892by the third roadway vehicle107. Alternatively, as the second roadway vehicle854reaches the part-way location861, the second drone880may transfer the first package875to a third drone103that can reach the first destination892or can later on transfer the first package875to another drone103to transport the first package875towards the first destination892. For example, the drone manager206implemented in the second drone880may determine the third drone890using the method500and/or the method550discussed above with reference toFIGS. 5A and 5B, and reassign the first task to the third drone890. The reassigned first task may instruct the third drone890to transport the first package875to the first destination892.

Once the third drone890is selected, the second drone880and the third drone890may coordinate the package handover of the first package875from the second drone880to the third drone890, and thus the third drone890may then carry the first package875. As depicted inFIG. 8B, the third drone890may dock on the third roadway vehicle856, and the third roadway vehicle856may transport the third drone890towards the first destination892. In this example, as the third roadway vehicle856reaches the part-way location863at which the third roadway vehicle856starts to travel away from the first destination892, the third drone890may carry the first package875and fly to the first destination892, thereby transporting the first package875to the first destination892to complete the first task.

As discussed elsewhere herein, to transfer the first package to a second drone103in the drone network, instead of performing the package handover of the first package from the first drone103to the second drone103, the first drone103may perform a task exchange with the second drone103. In some embodiments, the drone task manager202may assign a second task to the second drone103, the second task may instruct the second drone103to transport a second package to a second destination in the geographic area. The second destination associated with the second task may be distinct from the first destination associated with the first task. In some embodiments, the drone manager206may determine to reassign the first task to the second drone103and reassign the second task to the first drone103based on a priority of the task being fulfilled (e.g., priority of the package(s), the current range of the first drone103, the current range of the second drone103, the battery level of the first drone103, the battery level of the second drone103, the traffic condition associated with the vehicle route of the first roadway vehicle107on which the first drone103is currently docked, the traffic condition associated with the vehicle route of the second roadway vehicle107on which the second drone103is currently docked, etc. As a result of the task exchange between the first drone103and the second drone103, the second drone103may then transport the first package to the first destination, and the first drone103may then transport the second package to the second destination.

FIG. 6Ais a flowchart of example method600for selecting the second drone103to perform the task exchange between the first drone103and the second drone103. In block602, the drone manager206may determine that if the second drone103transports the first package, the first destination will be reachable by the second drone103. The drone manager206may determine that the first destination will be reachable by the second drone103based on the range of the second drone103and the vehicle route of the first roadway vehicle107on which the first drone103is currently docked. In some embodiments, the drone manager206may determine on the vehicle route of the first roadway vehicle107a part-way location at which the first roadway vehicle107may start to travel away from the first destination. The drone manager206may determine that the distance between the part-way location and the first destination is lower than the flight distance that the second drone103can fly as indicated by the range of the second drone103, and thus determine that the second drone103can reach the first destination. As discussed elsewhere herein, the range of the second drone103may depend on the energy level (e.g., remaining battery level) and/or other operation constraints of the second drone103.

In block604, the drone manager206may determine that if the first drone103transports the second package, the second destination will be reachable by the first drone103. The drone manager206may determine that the second destination will be reachable by the first drone103based on the range of the first drone103and the vehicle route of the second roadway vehicle107on which the second drone103is currently docked. In some embodiments, the drone manager206may determine on the vehicle route of the second roadway vehicle107a part-way location at which the second roadway vehicle107may start to travel away from the second destination. The drone manager206may determine that the distance between the part-way location and the second destination is lower than the flight distance that the first drone103can fly as indicated by the range of the first drone103, and thus determine that the first drone103can reach the second destination. As discussed elsewhere herein, the range of the first drone103may depend on the energy level (e.g., remaining battery level) and/or other operation constraints of the first drone103.

Thus, the drone manager206may determine that although the first drone103cannot reach the first destination, the first drone103can reach the second destination if the first drone103docks on the second roadway vehicle107, and the second drone103can reach the first destination if the second drone103docks on the first roadway vehicle107. Therefore, the drone manager206may determine that the first drone103is capable of transporting the second package to the second destination to complete the second task that is currently assigned to the second drone103, and the second drone103is capable of transporting the first package to the first destination to complete the first task that is currently assigned to the first drone103. In block606, the drone manager206may select the second drone103to perform the task exchange between the first drone103and the second drone103.

As an example,FIG. 7Aillustrates an example scenario700in which the first drone720may be assigned a first task of transporting the first package725to the first destination740, the first drone720may dock on a first roadway vehicle702that is traveling towards the first destination740. In this example, the drone manager206may determine that the first drone720cannot reach the first destination740, and thus determine that the first package725is to be transferred. The drone manager206may determine a second drone730in the drone network, the second drone730may be located within a predefined distance from the drone location of the first drone720. The second drone730may be assigned a second task of transporting the second package735to the second destination742, and the second drone730may dock on a second roadway vehicle704that is traveling towards the second destination742.

The drone manager206may determine the vehicle route712of the first roadway vehicle702, and determine on the vehicle route712the part-way location711at which the first roadway vehicle702may start traveling away from the first destination740. The drone manager206may determine that the distance between the part-way location711and the first destination740(e.g., 450 m) is lower than the current range of the second drone730(e.g., 750 m), and thus determine that the second drone730is capable of transporting the first package725to the first destination740if the second drone730is to be docked on the first roadway vehicle702. The drone manager206may determine the vehicle route714of the second roadway vehicle704, and determine on the vehicle route714the part-way location713at which the second roadway vehicle704may start traveling away from the second destination742. The drone manager206may determine that the distance between the part-way location713and the second destination742(e.g., 100 m) is lower than the current range of the first drone720(e.g., 250 m), and thus determine that the first drone720is capable of transporting the second package735to the second destination742if the first drone720is to be docked on the second roadway vehicle704. Thus, as the second drone730is capable of transporting the first package725to the first destination740if the second drone730is to be docked on the first roadway vehicle702, and the first drone720is capable of transporting the second package735to the second destination742if the first drone720is to be docked on the second roadway vehicle704, the drone manager206may select the second drone730to perform the task exchange with the first drone720. Accordingly, the drone manager206may reassign the first task to the second drone830, and reassign the second task to the first drone720.

In some embodiments, once the second drone103is selected, the drone manager206implemented in the first drone103and the second drone103may coordinate the task exchange between the first drone103and the second drone103. Continuing the example inFIG. 7A, the first drone720may transfer the first package725from the first drone720to the first roadway vehicle702, and the second drone730may transfer the second package735from the second drone730to the second roadway vehicle704. For example, the first drone720may release the first package725onto the vehicle roof of the first roadway vehicle702, and the second drone730may release the second package735onto the vehicle roof of the second roadway vehicle704. The first drone720may then navigate from the first roadway vehicle702to the second roadway vehicle704that has the second package735, and transfer the second package735from the second roadway vehicle704to the first drone720. For example, the first drone720may leave the first package725on the vehicle roof of the first roadway vehicle702, fly from the first roadway vehicle702to the second roadway vehicle704, and pick up the second package735that was released by the second drone730from the vehicle roof of the second roadway vehicle704. Similarly, the second drone730may navigate from the second roadway vehicle704to the first roadway vehicle702that has the first package725, and transfer the first package725from the first roadway vehicle702to the second drone730. For example, the second drone730may leave the second package735on the vehicle roof of the second roadway vehicle704, fly from the second roadway vehicle704to the first roadway vehicle702, and pick up the first package725that was released by the first drone720from the vehicle roof of the first roadway vehicle702.

Thus, as a result of the first drone720transferring the first package725from the first drone720to the first roadway vehicle702, and the second drone730transferring the first package725from the first roadway vehicle702to the second drone730, the first package725is transferred from the first drone720to the second drone730. As a result of the second drone730transferring the second package735from the second drone730to the second roadway vehicle704, and the first drone720transferring the second package735from the second roadway vehicle704to the first drone720, the second package735is transferred from the second drone730to the first drone720. Alternatively, the first drone720may transfer the first package725directly to the second drone730, and the second drone730may transfer the second package735directly to the first drone720. Other implementations for coordinating the task exchange between the first drone103and the second drone103are also possible and contemplated.

As illustrated inFIG. 7A, once the task exchange between the first drone720and the second drone730is completed, the second drone730may carry the first package725and may dock on the first roadway vehicle702to be transported towards the first destination740. As the first roadway vehicle702reaches the part-way location711at which the first roadway vehicle702starts to travel away from the first destination740, the second drone730may carry the first package725and fly to the first destination740, thereby transporting the first package725to the first destination740to complete the first task. Similarly, once the task exchange between the first drone720and the second drone730is completed, the first drone720may carry the second package735and may dock on the second roadway vehicle704to be transported towards the second destination742. As the second roadway vehicle704reaches the part-way location713at which the second roadway vehicle704starts to travel away from the second destination742, the first drone720may carry the second package735and fly to the second destination742, thereby transporting the second package735to the second destination742to complete the second task. Thus, in this example, although the first drone720cannot reach the first destination740to complete the first task, by swapping the first drone720with the second drone730, the first package725can be transported to the first destination740by the second drone730situated on the first roadway vehicle702, and the second package735can be transported to the second destination742by the first drone720situated on the second roadway vehicle704. Accordingly, both first task and second task can be successfully completed.

FIG. 6Bis a flowchart of another example method650for selecting the second drone103to perform the task exchange between the first drone103and the second drone103. In block652, the drone manager206may determine that if the second drone103transports the first package, the first destination will be reachable by the second drone103. The drone manager206may determine that the first destination will be reachable by the second drone103based on the range of the second drone103and the vehicle route of the first roadway vehicle107on which the first drone103is currently docked. In some embodiments, the drone manager206may determine on the vehicle route of the first roadway vehicle107a part-way location at which the first roadway vehicle107may start to travel away from the first destination. The drone manager206may determine that the distance between the part-way location and the first destination is lower than the flight distance that the second drone103can fly as indicated by the range of the second drone103, and thus determine that the second drone103can reach the first destination.

In block654, the drone manager206may determine that if the first drone103transports the second package, a traffic flow of one or more roadway vehicles107is sufficient for transporting the first drone103to within the drop-off region of the second destination. The drone manager206may determine that the traffic flow of the one or more roadway vehicles107is sufficient based on a proximate traffic condition. In some embodiments, the drop-off region of the second destination may be the region in which the drone103transporting the second package may fly to drop off the second package at the second destination within the drop-off region.

In some embodiments, the drone manager206may determine the vehicle route of the second roadway vehicle107on which the second drone103is currently docked, and determine on the vehicle route of the second roadway vehicle107the part-way location at which the second roadway vehicle107may travel away from the second destination. The drone manager206may analyze the traffic condition at one or more proximate locations on the vehicle route of the second roadway vehicle107, the proximate locations may be located between the vehicle location of the second roadway vehicle107and the part-way location at which the second roadway vehicle107may travel away from the second destination. In some embodiments, the drone manager206may determine the traffic flow rate of the roadway vehicles107at the proximate location, and determine whether the traffic flow rate of the roadway vehicles107satisfies a traffic flow rate threshold. Alternatively, the drone manager206may determine the traffic flow rate of the roadway vehicles107that likely travel towards the second destination at the proximate location, or the traffic flow rate of the roadway vehicles107that likely travel to the start point of the drop-off region at the proximate location, and determine whether the traffic flow rate of these roadway vehicles107satisfies the traffic flow rate threshold. If the traffic flow rate of the roadway vehicles107satisfies the traffic flow rate threshold (e.g., more than 3200 vehicles/h), the drone manager206may determine that the traffic flow of the roadway vehicles107at the proximate location is sufficient to transport the first drone103carrying the second package to within the drop-off region of the second destination, or to transport another drone103that may receive the second package from the first drone103at the proximate location to within the drop-off region of the second destination. In block656, the drone manager206may select the second drone103to perform the task exchange between the first drone103and the second drone103.

As an example,FIG. 7Billustrates an example scenario750in which the first drone770may be assigned a first task of transporting the first package775to the first destination790, the first drone770may dock on a first roadway vehicle752that is traveling towards the first destination790. In this example, the drone manager206may determine that the first drone720cannot reach the first destination790, and thus determine that the first package775is to be transferred. The drone manager206may determine a second drone780in the drone network, the second drone780may be located within a predefined distance from the drone location of the first drone770. The second drone780may be assigned a second task of transporting the second package785to the second destination792, and the second drone780may dock on a second roadway vehicle754that is traveling towards the second destination792.

The drone manager206may determine the vehicle route762of the first roadway vehicle752, and determine on the vehicle route762the part-way location761at which the first roadway vehicle752may start traveling away from the first destination790. The drone manager206may determine that the distance between the part-way location761and the first destination790(e.g., 400 m) is lower than the current range of the second drone780(e.g., 750 m), and thus determine that the second drone780is capable of transporting the first package775to the first destination790if the second drone780is to be docked on the first roadway vehicle752.

The drone manager206may determine the vehicle route764of the second roadway vehicle754, and determine on the vehicle route764the part-way location763at which the second roadway vehicle754may start traveling away from the second destination792. The drone manager206may determine that the distance between the part-way location763and the second destination792(e.g., 150 m) is higher than the current range of the first drone770(e.g., 75 m), and thus determine that the first drone770is incapable of transporting the second package785to the second destination792if the first drone770is to be docked on second roadway vehicle754. The drone manager206may then determine the traffic condition at one or more proximate locations between the vehicle location of the second roadway vehicle754and the part-way location763. For example, the drone manager206may determine the traffic flow of the roadway vehicles107at the proximate location765. In this example, the proximate location765may be the intersection located upstream of the part-way location763and directly adjacent to the part-way location763. The drone manager206may determine that the traffic flow rate at the proximate location765satisfies the traffic flow rate threshold (e.g., more than 3200 vehicles/h), and thus determine that the traffic flow of the roadway vehicles107at the proximate location765is sufficient. Therefore, the drone manager206may determine that although the first drone770cannot reach the second destination792if the first drone770is to be docked on second roadway vehicle754, the first drone770may likely be able to get on another roadway vehicle107that can transport the first drone770towards the second destination792at the proximate location765, or to transfer the second package785to a third drone103that can reach the second destination792at the proximate location765.

Thus, as discussed above, the drone manager206may determine that the second drone780is capable of transporting the first package775to the first destination790if the second drone780is to be docked on the first roadway vehicle752, and while the first drone770cannot reach the second destination792if the first drone770is to be docked on the second roadway vehicle754, the first drone770may likely be able to get on another roadway vehicle107or transfer the second package785to another drone103at the proximate location765so that the second package785can be transported to the second destination792. As a result, the drone manager206may select the second drone780to perform the task exchange with the first drone770. Accordingly, the drone manager206may reassign the first task to the second drone780, and reassign the second task to the first drone770.

Once the second drone780is selected, the first drone770and the second drone780may collaboratively perform the task exchange between the first drone770and the second drone780in a similar manner as discussed above with reference toFIG. 7A. Once the task exchange between the first drone770and the second drone780is completed, the second drone780may carry the first package775and may dock on the first roadway vehicle752to be transported towards the first destination790. As the first roadway vehicle752reaches the part-way location761at which the first roadway vehicle752starts to travel away from the first destination790, the second drone780may carry the first package775and fly to the first destination790, thereby transporting the first package775to the first destination790to complete the first task. Similarly, once the task exchange between the first drone770and the second drone780is completed, the first drone770may carry the second package785and may dock on the second roadway vehicle754to be transported towards the second destination792.

As the second roadway vehicle754reaches the proximate location765at which the traffic flow rate is relatively high, the first drone770may transfer the second package785to a third drone103that can reach the second destination792or can later on transfer the second package785to another drone103to transport the second package785towards the second destination792. For example, the drone manager206implemented in the first drone770may determine the third drone103using the method500and/or the method550discussed above with reference toFIGS. 5A and 5B, and reassign the second task to the third drone103. Alternatively, the first drone770may carry the second package785and get on a third roadway vehicle107that can transport the first drone770closer to the second destination792. For example, the drone manager206implemented in the first drone770may determine the vehicle route766of the third roadway vehicle756that is located within a predefined distance from the drone location of the first drone770, and determine that the third roadway vehicle756is traveling towards the second destination792. The drone manager206may determine on the vehicle route766the part-way location767at which the third roadway vehicle756may travel away from the second destination792. The drone manager206may determine that the distance between the part-way location767and the second destination792(e.g., 35 m) is lower than the current range of the first drone770(e.g., 75 m), and thus determine that the third roadway vehicle107can reach the second destination792. The first drone770may then carry the second package785, and navigate to dock on the third roadway vehicle756, thereby being transported towards the second destination792by the third roadway vehicle756. As the third roadway vehicle756reaches the part-way location767at which the third roadway vehicle756starts to travel away from the second destination792, the first drone770may carry the second package785and fly to the second destination792, thereby transporting the second package785to the second destination792to complete the second task.

Thus, in this example, although the first drone770cannot reach the first destination790to complete the first task, by switching the first drone770with the second drone780, the first package775can be transported to the first destination790by the second drone730situated on the first roadway vehicle752, and the second package785can be transported to the second destination792by the first drone770situated on the second roadway vehicle754and then situated on the third roadway vehicle756. Accordingly, both the first task and the second task can be successfully completed.

As discussed elsewhere herein, the present technology may be implemented in the drones103so that the drones103can dynamically transfer the packages associated with their drone tasks to other drones103when needed, and thus the likelihood of the drone tasks being successfully completed can be significantly improved. In some embodiments, the first drone103may receive a first task instructing the first drone103to transport a first package to a first destination in a geographic area. The first drone103may receive roadway traffic data for the geographic area and/or drone data associated with one or more drones103. As discussed elsewhere herein, the roadway traffic data of the geographic area may include roadway data associated with one or more road segments (e.g., traffic condition, roadway status, etc.), vehicle data associated with one or more roadway vehicles107(e.g., vehicle route, vehicle behavior data, etc.), etc. The drone data may include the current range of the drone103, the package data of the package associated with current drone task of the drone103, the roadway vehicle107on which the drone103is currently docked, etc.

In some embodiments, during the transit of the first package to the first destination by the first drone103, the first drone103may establish a drone network with other drones103located within a predefined distance from its drone location, and determine to transfer the first package to a second drone103of the drone network. For example, the first drone103may perform the method400discussed above with reference toFIG. 4to determine whether the first package is to be transferred, and if the first package is to be transferred, the first drone103may perform one or more of the methods500,550,600,650discussed above with reference toFIGS. 5A, 5B, 6A, 6Bto determine the second drone103to which the first package will be transferred. As discussed elsewhere herein, the first drone103may select the second drone103from the drone network based on one or more of the range of the first drone103, the range of the second drone103, the traffic condition associated with the vehicle route of the first roadway vehicle107on which the first drone103is currently docked, the traffic condition associated with the vehicle route of the second roadway vehicle107on which the second drone103is currently docked, etc. In some embodiments, once the second drone103is selected, the first drone103may wirelessly communicate a transfer request to the second drone103, the transfer request may request to transfer the first package to the second drone103. In some embodiments, the first drone103may wirelessly receive from the second drone103a response to the transfer request, the response to the transfer request may accept the transfer of the first package. The first drone103may then transfer the first package to the second drone103.

As discussed elsewhere herein, in some embodiments, to transfer the first package from the first drone103to the second drone103, the first drone103may reassign the first task to the second drone103, the reassigned first task may instruct the second drone103to transport the first package to the first destination. In some embodiments, the second drone103may currently dock on a second roadway vehicle107that is traveling towards the first destination in the geographic area. As the first task of transporting the first package is reassigned to the second drone103, the first drone103may carry the first package and navigate to the second roadway vehicle107, and the first drone103and the second drone103may then collaboratively perform the package handover of the first package from the first drone103to the second drone103. As a result of the package handover, the second drone103may carry the first package and handle the first task of transporting the first package to the first destination. In some embodiments, the drone manager206implemented in the first drone103and/or the second drone103may update the drone task list of the first drone103and the drone task list of the second drone103in the server data store123of the management server101to reflect the reassignment of the first task from the first drone103to the second drone103.

As discussed elsewhere herein, the second drone103may itself be assigned a second task, the second task may instruct the second drone103to transport a second package to a second destination in the geographic area. The second destination associated with the first task may be distinct from the first destination associated with the first task. As discussed elsewhere herein, in some embodiments, to transfer the first package from the first drone103to the second drone103, the first drone103and the second drone103may perform a task exchange in which the first drone103may reassign the first task to the second drone103, and reassign the second task to the first drone103. In some embodiments, the first drone103may currently dock on a first roadway vehicle107that is traveling towards the first destination, and the second drone103may currently dock on a second roadway vehicle107that is traveling towards the second destination in the geographic area. As the first task of transporting the first package is reassigned to the second drone103and the second task of transporting the second package is reassigned to the first drone103, the first drone103may transfer the first package to the first roadway vehicle107, navigate from the first roadway vehicle107to the second roadway vehicle107having the second package that was previously transferred from the second drone103to the second roadway vehicle107by the second drone103, and transfer the second package from the second roadway vehicle107to the first drone103. Similarly, the second drone103may transfer the second package to the second roadway vehicle107, navigate from the second roadway vehicle107to the first roadway vehicle107having the first package that was previously transferred from the first drone103to the first roadway vehicle107by the first drone103, and transfer the first package from the first roadway vehicle107to the second drone103.

Thus, as a result of the task exchange between the first drone103and the second drone103, the second drone103may carry the first package and handle the first task of transporting the first package to the first destination, and the first drone103may carry the second package and handle the second task of transporting the second package to the second destination. In some embodiments, the drone manager206implemented in the first drone103and/or the second drone103may update the drone task list of the first drone103and the drone task list of the second drone103in the server data store123of the management server101to reflect the reassignment of the first task from the first drone103to the second drone103and the reassignment of the second task from the second drone103to the first drone103.

In some embodiments, the drone103and the roadway vehicle107may collaborate to facilitate the drone operations of the drone103that are related to the roadway vehicle107. In some embodiments, as the drone103land on, take off, release package, receive package, etc., to and from the roadway vehicle107, the drone103may communicate a drone facilitation instruction to the roadway vehicle107, the drone facilitation instruction may instruct the roadway vehicle107to adjust its vehicle movement to facilitate the drone operations of the drone103. For example, the drone103may instruct the roadway vehicle107to adjust its vehicle speed to satisfy a vehicle speed threshold (e.g., less than 35 mph), stay in current lane for at least a predefined time period (e.g., 20 s), etc., thereby facilitating the process of docking, undocking, package handover, task exchange, etc., performed by the drone103.

In the above description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it should be understood that the technology described herein could be practiced without these specific details. Further, various systems, devices, and structures are shown in block diagram form in order to avoid obscuring the description. For instance, various implementations are described as having particular hardware, software, and user interfaces. However, the present disclosure applies to any type of computing device that can receive data and commands, and to any peripheral devices providing services.

The technology described herein can take the form of a hardware implementation, a software implementation, or implementations containing both hardware and software elements. For instance, the technology may be implemented in software, which includes but is not limited to firmware, resident software, microcode, etc. Furthermore, the technology can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any non-transitory storage apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.

Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems, storage devices, remote printers, etc., through intervening private and/or public networks. Wireless (e.g., Wi-Fi™) transceivers, Ethernet adapters, and modems, are just a few examples of network adapters. The private and public networks may have any number of configurations and/or topologies. Data may be transmitted between these devices via the networks using a variety of different communication protocols including, for example, various Internet layer, transport layer, application layer protocols, and/or other communication protocols discussed elsewhere herein.

Finally, the structure, algorithms, and/or interfaces presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method blocks. The required structure for a variety of these systems will appear from the description above. In addition, the specification is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the specification as described herein.

The foregoing description has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the specification to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the disclosure be limited not by this detailed description, but rather by the claims of this application. As will be understood by those familiar with the art, the specification may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Likewise, the particular naming and division of the modules, routines, features, attributes, methodologies, and other aspects are not mandatory or significant, and the mechanisms that implement the specification or its features may have different names, divisions and/or formats.

Furthermore, the modules, routines, features, attributes, methodologies, and other aspects of the disclosure can be implemented as software, hardware, firmware, or any combination of the foregoing. Also, wherever a component, an example of which is a module, of the specification is implemented as software, the component can be implemented as a standalone program, as part of a larger program, as a plurality of separate programs, as a statically or dynamically linked library, as a kernel loadable module, as a device driver, and/or in every and any other way known now or in the future. Additionally, the disclosure is in no way limited to implementation in any specific programming language, or for any specific operating system or environment.