Method and device for route planning of unmanned aerial vehicle, medium and program product

By storing and processing UAV spatiotemporal data in blocks on the GPU and processing it in parallel, the memory and speed challenges in multi-UAV planning are solved, enabling efficient route planning and collaborative operations, and improving memory utilization and system flexibility.

CN120909760APending Publication Date: 2025-11-07BEI DOU FU XI XIN XI JI SHU YOU XIAN GONG SI
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510864014.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-06-25
Publication Date
2025-11-07

AI Technical Summary

Technical Problem

Existing technologies face dual challenges of memory and speed in spatiotemporal planning for multiple drones. They cannot efficiently store spatiotemporal data, the interaction between GPU computing units is difficult, collision detection is complex, and the memory requirements are too large, making it difficult to meet the huge data storage needs.

Method used

On the GPU side, spatiotemporal data is stored in blocks according to time windows and spatial regions. A parallel strategy combining multi-threaded collaborative read and write and asynchronous read and write is adopted. The flight route planning task is decomposed into parallel subtasks. Dynamic memory management is performed based on flight altitude and time. A tabular data structure and distributed algorithm are designed.

Benefits of technology

It improves the efficiency of UAV spatiotemporal data processing, supports collaborative operation of multiple UAVs, enhances memory utilization, adapts to different altitude planning requirements, supports dynamic task insertion, enhances system flexibility and adaptability, and realizes unified management and efficient scheduling of multiple UAVs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120909760A_ABST
    Figure CN120909760A_ABST
Patent Text Reader

Abstract

The invention relates to an unmanned aerial vehicle route planning method and device, a medium and a program product. The method comprises the following steps: acquiring spatio-temporal data of multiple unmanned aerial vehicles; the spatio-temporal data are stored in blocks according to a time window and a space area at a GPU end, dynamic memory management is carried out based on the flight height and time, and the data are operated by adopting a parallel strategy combining multi-thread collaborative read-write and asynchronous read-write; and decomposing the route planning task into parallel subtasks at the GPU end, and generating a route planning result based on a flight height range matching planning algorithm. According to the invention, route planning corresponding to the plurality of unmanned aerial vehicles is carried out at the GPU end based on the spatio-temporal data of the unmanned aerial vehicles, so that collaborative operation of the plurality of unmanned aerial vehicles is realized, and the task execution efficiency and effect are improved; and a GPU parallel read-write strategy is adopted, so that the processing efficiency of the spatio-temporal data of the unmanned aerial vehicle is improved, and parallel read-write of the spatio-temporal data of the unmanned aerial vehicle is realized.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of computer, in particular to a method and device for unmanned aerial vehicle (UAV) route planning, computer readable medium and computer program product. BACKGROUND

[0002] Based on the existing scheme, the space-time planning of multiple UAVs faces the dual challenges of memory and speed. Due to the memory limitation, it is not possible to design a table form data structure to efficiently store the space-time data of the UAVs, although the read-write time complexity of this data structure can reach O(1), but its demand for memory is too large. For example, when the height is not divided, the memory occupation can be kept within 10g; but if the height of 300m is considered, the memory demand will surge to about 3000g. In addition, if the flight time data of 5000 UAVs is stored according to the time slice division of 0.1 seconds, the memory occupation will also be as high as 800g or more, obviously the existing memory conditions cannot meet the huge data storage demand.

[0003] In the implementation of parallel route planning, the problems mainly concentrate on the GPU end. Unlike the CPU which can realize the linked list structure by means of the operating system memory management unit and find the optimal route by backtracking, the GPU end has the following main problems: first, the computing units of the GPU are relatively independent, and the interaction between single computing units cannot be as convenient as the CPU, which makes it difficult to directly realize the interactive operation such as sharing data between different computing units to update the calculation results, and it is necessary to design data structures such as shared memory and global memory to achieve the purpose of data interaction and information transmission; second, the routes cannot be output by linked list, because the GPU is not convenient to use the linked list structure to backtrack the route, and it is necessary to find another way, such as storing the route information in an array or other data structure, and then processing and outputting; third, the collision detection between line segments and obstacles is difficult in the GPU end, because of the large amount of data and complex calculation, it is necessary to design special algorithms and data structures to efficiently represent line segments and obstacles, and to quickly judge the collision situation by means of parallel computing, which requires high computing and data processing capacity of the GPU; fourth, the instruction set of the GPU itself is relatively simple, mainly used for graphics processing and large-scale parallel computing in specific scenarios, and some complex code logic such as conditional judgment and loop control is difficult to be directly implemented on the computing unit of the GPU, and it is necessary to convert and optimize the algorithm to adapt to the computing environment of the GPU SUMMARY

[0004] The present application provides a method and device for unmanned aerial vehicle (UAV) route planning, computer readable medium and computer program product.

[0005] In an aspect of the present application, a method for planning a route of a UAV is provided, and the method comprises the following steps: acquiring space-time data of multiple UAVs; storing the space-time data in a GPU according to time windows and space regions, performing dynamic memory management based on flight altitudes and time, and operating the data by using a parallel strategy combining multi-thread cooperative reading and writing with asynchronous reading and writing; decomposing a route planning task into parallel subtasks in the GPU, and generating a route planning result based on flight altitude range matching a planning algorithm.

[0006] In an aspect of the present application, an apparatus for planning a route of a UAV is provided, and the apparatus comprises the following modules: a space-time data acquisition module, configured to acquire space-time data of multiple UAVs; a data storage processing module, configured to store the space-time data in a GPU according to time windows and space regions, perform dynamic memory management based on flight altitudes and time, and operate the data by using a parallel strategy combining multi-thread cooperative reading and writing with asynchronous reading and writing; a route planning module, configured to decompose a route planning task into parallel subtasks in the GPU, and generate a route planning result based on flight altitude range matching a planning algorithm.

[0007] In another aspect of the present application, an electronic device is provided, which comprises at least one processor and a memory connected with the at least one processor in communication; the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method of the embodiments of the present application.

[0008] In another aspect of the present application, a computer readable storage medium is provided, which stores computer program instructions executable by a processor to implement the method of the embodiments of the present application.

[0009] In another aspect of the present application, a computer program product is provided, which comprises a computer program executable by a processor to implement the method of the embodiments of the present application.

[0010] In the scheme provided by the embodiments of the present application, the flight path planning of multiple unmanned aerial vehicles corresponding to the unmanned aerial vehicle space-time data is performed at the GPU end, the coordinated operation of multiple unmanned aerial vehicles is realized, and the efficiency and effect of task execution are improved; the GPU parallel read-write strategy is adopted, the efficiency of unmanned aerial vehicle space-time data processing is improved, and the parallel read-write of unmanned aerial vehicle space-time data is realized; the adaptability to unmanned aerial vehicle planning requirements at different altitudes is improved by combining the height flight frequency and the distributed algorithm to divide the height, and the unmanned aerial vehicle planning requirements at different altitudes are supported; the memory utilization efficiency is improved by optimizing the storage structure and the algorithm, for example, adopting the table form data structure, and adjusting the height resolution, time resolution and other parameters, the effective unmanned aerial vehicle flight path planning under the condition of limited memory resources of a single server system is supported; the flexibility of the system is improved and the adaptability is improved by the dynamic refreshing mechanism, new tasks can be inserted at any time of the day, and the practical application requirements such as dynamic task allocation and emergency response can be better met; by reasonably designing the data structure and the algorithm architecture, the simultaneous input of multiple unmanned aerial vehicle data is supported, the processing capacity of the system for the coordinated task of multiple unmanned aerial vehicles is improved, and the unified management and efficient scheduling of multiple unmanned aerial vehicles can be realized. BRIEF DESCRIPTION OF DRAWINGS

[0011] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed to be used in the embodiments or the prior art description will be briefly introduced. Obviously, the drawings in the following description are some embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative labor.

[0012] Other features, objects and advantages of the present application will become more apparent from the following detailed description of the non-limiting embodiments, with reference to the accompanying drawings: Figure 1 A flowchart of a method for unmanned aerial vehicle flight path planning provided by the embodiments of the present application is shown; Figure 2 A structure diagram of an apparatus for unmanned aerial vehicle flight path planning provided by the embodiments of the present application is shown; Figure 3 A structure diagram of an apparatus for unmanned aerial vehicle flight path planning provided by the embodiments of the present application is shown;

[0013] The same or similar reference signs in the drawings represent the same or similar components. DETAILED DESCRIPTION

[0014] In order to make the objects, technical solutions and advantages of the embodiments of the present application clearer, the following will be combined with the accompanying drawings for the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only some but not all of the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative work fall within the protection scope of the present application.

[0015] In one typical configuration of the present application, the terminal and the device of the service network each include one or more processors (CPU), a graphic processing unit (GPU), an input / output interface, a network interface and a memory.

[0016] The memory can include a non-permanent memory in a computer readable medium, a random access memory (RAM) and / or a non-volatile memory such as a read-only memory (ROM) or a flash memory. The memory is an example of the computer readable medium.

[0017] The computer readable medium includes a permanent and non-permanent, removable and non-removable medium, and can be implemented by any method or technology to store information. The information can be computer program instructions, data structures, program modules or other data. Examples of the storage medium of the computer include, but are not limited to, a phase change memory (PRAM), a static random access memory (SRAM), a dynamic random access memory (DRAM), other types of random access memory (RAM), a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), a flash memory or other memory technology, a compact disc read-only memory (CD-ROM), a digital versatile disc (DVD) or other optical storage, a magnetic cassette, a magnetic tape disk storage or other magnetic storage device or any other non-transmission medium that can be used to store information accessible to a computing device.

[0018] Figure 1 A flowchart of a method for planning a route of a UAV is shown. The method includes at least steps S101, S102 and S103.

[0019] In an actual scenario, the execution subject of the method can be a computer device, or can also be an application program running on the computer device. The computer device includes a user device or a network device. The user device includes, but is not limited to, various terminal devices such as a computer, a mobile phone, a tablet computer, a smart watch, a bracelet, and the like, and the network device includes, but is not limited to, implementation such as a network host, a single network server, a plurality of network server sets, or a computer set based on cloud computing. Here, the cloud is composed of a large number of hosts or network servers based on cloud computing, wherein cloud computing is a kind of distributed computing, and a virtual computer is composed of a group of loosely coupled computer sets.

[0020] With reference to Figure 1 In step S101, space-time data of multiple unmanned aerial vehicles is acquired.

[0021] The space-time data includes, but is not limited to, data corresponding to the multiple unmanned aerial vehicles. The space-time data includes, but is not limited to, the speed, endurance, height, flight time distribution frequency, flight area distribution frequency, flight height distribution frequency, and task type of each unmanned aerial vehicle, the relationship between tasks, and the like.

[0022] Among them, the speed determines the distance that the UAV can fly in unit time, which affects the estimation of time when planning the route; the endurance determines the longest time that the UAV can perform tasks, which needs to ensure that the UAV has enough power or fuel to complete the task and return safely when planning the route; the flight height is related to whether the UAV will be restricted by obstacles during flight, and whether it can obtain better vision and communication conditions, etc.; by analyzing the flight time distribution frequency of the UAV, the usage and task demand of the UAV in different time periods can be understood. For example, if the flight time frequency of the UAV is higher in a certain time period, more resources such as batteries, communication bandwidth, etc. may need to be allocated to the UAV in that time period, or the traffic flow, weather conditions, etc. in that time period may need to be considered when planning the flight route and task scheduling to optimize the flight route and task scheduling; analyzing the flight area distribution frequency can help understand which areas the UAV performs tasks more frequently, so as to plan the route and optimize resources according to the characteristics of these areas. For example, in densely populated areas, more attention needs to be paid to flight safety and obstacle avoidance, while in remote mountainous areas, factors such as terrain complexity and communication signal coverage need to be considered; the distribution frequency of flight height helps to understand the flight situation of the UAV at different heights. Different heights may have different weather conditions, air flow conditions, and distribution of obstacles, etc. For example, lower heights may have obstacles such as buildings and trees, while higher heights may be affected by weather conditions such as wind speed, air pressure, etc. When planning the route, these factors need to be considered according to the distribution frequency of flight height, and the appropriate flight height needs to be selected to ensure flight safety and successful completion of the task; different tasks have different requirements for the flight mode, route planning, and load capacity of the UAV. Analyzing the types of tasks can help individualize the route planning and resource allocation according to the characteristics of different tasks. Understanding the relationship between different tasks also helps to optimize the overall flight task arrangement. For example, if there are multiple related tasks, they can be integrated into one flight task, or the order and route of the tasks can be reasonably arranged to improve the efficiency of task execution and reduce costs.

[0023] Optionally, the method collects the spatio-temporal data of the UAV in real time in step S101, and records the unique identification of each UAV for distinguishing and managing.

[0024] Among them, the way of triggering step S101 includes but is not limited to at least one of the following ways: the system monitors the state of the UAV in real time, and automatically triggers the acquisition of the spatio-temporal data of the UAV when it is detected that the UAV is ready to enter the planning area; or, when receiving the UAV task planning instruction sent by the user through the control terminal, the spatio-temporal data of the UAV is triggered to be acquired.

[0025] According to an embodiment, the acquired spatio-temporal data is preprocessed.

[0026] The preprocessing includes but is not limited to at least one of the following: 1) Data cleaning: removing error data, duplicate data and obviously abnormal data points, ensuring the accuracy and reliability of the data.

[0027] 2) Data alignment: aligning the data of different unmanned aerial vehicles to the same coordinate system and time reference, facilitating subsequent collaborative processing.

[0028] 3) Data dimension reduction and compression: using appropriate methods to reduce the dimension of high-dimensional spatio-temporal data, retaining key feature information while reducing data volume and improving processing efficiency.

[0029] When the step S101 is executed by the GPU end, the spatio-temporal data is transmitted from the CPU to the memory of the GPU. It should be noted that when the spatio-temporal data of the unmanned aerial vehicle is transmitted from the CPU to the memory of the GPU, the consistency and integrity of the data need to be ensured. This can be achieved through mechanisms such as checksum and data packet order control. For example, during data transmission, cyclic redundancy check (CRC) or checksum can be used to ensure data integrity. At the same time, in order to ensure data consistency, data verification can be performed after data transmission is completed to ensure that the data received by the GPU is completely consistent with the data sent by the CPU.

[0030] After completing data transmission, the GPU can start multiple threads for parallel processing, and each thread can independently process the spatio-temporal data of the unmanned aerial vehicle, thereby improving the execution efficiency of the path planning algorithm. This parallel processing method can fully utilize the computing power of the GPU and accelerate the path planning process.

[0031] Optionally, in order to further optimize the data transmission and processing process, the Unified Virtual Memory (UVM) technology can be used to enable the GPU to directly access the data in the CPU memory, thereby reducing the steps and overhead of data transmission. This technology can simplify the data transmission process and improve the overall performance of the system.

[0032] In step S102, the spatio-temporal data is stored in blocks according to time windows and spatial regions on the GPU end, dynamic memory management is performed based on flight height and time, and a parallel strategy combining multi-thread cooperative reading and writing and asynchronous reading and writing is used to operate the data.

[0033] The method stores the space-time data of multiple unmanned aerial vehicles according to a specific time window or a space region, each block contains the unmanned aerial vehicle data in a specific time period or region, such as position, speed, height and other information, so that the data has a regular layout in the memory, which facilitates batch read and write operations of GPU threads. Optionally, according to the characteristics of the unmanned aerial vehicle data and the parallel computing capability of the GPU, a suitable block granularity is determined. For a region or time period with large data volume and complex changes, the block granularity can be appropriately reduced to improve the refinement degree of parallel processing; and for a region or time period with small data volume and gentle changes, the block granularity can be appropriately increased to reduce the number of blocks and improve the processing efficiency.

[0034] According to one embodiment, the dynamic memory management based on flight height and time includes: constructing a plane map, a height table and a time table; establishing a bidirectional index based on flight height and time, so that based on the index, the video memory is dynamically allocated in the time dimension.

[0035] The plane map is used to record the two-dimensional position information of the space region, including but not limited to the position coordinates of the unmanned aerial vehicle in the horizontal direction, such as latitude and longitude coordinates. The height table is used to record the flight height of the unmanned aerial vehicle. The time table divides the time period into units of predetermined periods (for example, 1 hour) to manage the time dimension of the video memory. The time table allows memory to be allocated and released in time sequence. Since the GPU does not have an operating system, it cannot implement dynamic memory management like a CPU, but the unmanned aerial vehicle planning may involve a whole-day planning task for a huge region such as 25000x25000x300, and the GPU memory is difficult to meet the demand of such route planning. In the embodiment, the video memory is dynamically allocated in the time dimension based on the index of flight height and time. For example, a video memory block is allocated every hour to store the space-time data corresponding to the height and time period. If the data of the previous hour expires, the data read and write operation is automatically switched to the next time video memory block, thereby solving the problem that the GPU memory is difficult to meet the demand of dynamic route planning of the unmanned aerial vehicle.

[0036] The parallel read-write strategy includes multi-thread cooperative read-write: using the multi-thread feature of the GPU, one or more threads are allocated for each data block for read-write operation. During thread execution, each thread cooperates to complete the reading, processing and writing of the UAV space-time data according to the preset rules and task allocation. Asynchronous read-write operation: using asynchronous read-write mode, the data reading and writing operations can be performed synchronously without affecting the GPU calculation. For example, while the GPU is processing the current time period data, the next time period data is read from the storage device to the memory in advance, or the processed data is written back to the storage device asynchronously, thereby hiding the data transmission time and improving the overall efficiency of the system.

[0037] According to an embodiment, the method uses a compression algorithm suitable for the characteristics of UAV space-time data, such as differential encoding for time series data compression, recording the difference between data points instead of the complete value, thereby reducing the storage requirement. For spatial data, quadtree or octree encoding is used, which divides the space into multiple sub-regions according to the distribution characteristics of the data, and only stores the region information containing the data points, effectively reducing redundant data.

[0038] Optionally, a data caching mechanism is set up to retain hot data in the cache according to the access frequency and importance of the data, thereby improving the access speed of the data. For example, using the least recently used (LRU) or first in first out (FIFO) cache strategy, the frequently accessed data can be quickly obtained, and the overall performance of the system is improved.

[0039] According to an embodiment, a data indexing and retrieval mechanism is constructed to establish a spatial index based on geographic location, such as R-tree or Grid index, to quickly query the UAV data in a specific area. Indexes are established for time series data, such as B+ tree index, to quickly retrieve UAV data at different time periods. Further, a multi-dimensional combined index is constructed by combining spatial index and time index to support efficient spatio-temporal joint query.

[0040] According to an embodiment, in the memory management design, the memory structure suitable for GPU parallel processing is designed in advance according to the historical UAV task data and the system memory capacity, and the structured array or array is used to store the space-time data of the UAV.

[0041] According to one embodiment, the dynamic adjustment of the storage granularity comprises: pre-analyzing the flight time frequency of the UAV flight path planning, and dividing the time into a high-frequency flight period and a low-frequency flight period. The flight time frequency is the number of times the UAV passes through the planned area per unit time. The high-frequency flight period is divided into a plurality of time periods according to a predetermined time interval, the data corresponding to the plurality of time periods is recorded and stored in the high-frequency flight period, and the data is inserted in a dynamic insertion manner in the low-frequency flight period. Optionally, when the data is dynamically inserted, an independent GPU thread is started to establish an R-tree index for the new data and merge it with the existing spatial index.

[0042] The higher the flight time frequency, the more detailed the time division. For example, the high-frequency flight period is divided into time periods less than or equal to 10 minutes to record the corresponding data, so as to ensure that the state changes of the UAV in these short time periods can be captured in detail. Because the state of the UAV changes rapidly and complexly at these critical moments, high-frequency recording can provide more abundant and accurate data support for subsequent flight path adjustment and optimization, ensuring flight safety. For the low-frequency flight period, that is, the period when the flight state is relatively stable and does not require high-precision recording, a dynamic data insertion manner is adopted. For example, when the UAV is in the cruising stage, the flight height, speed and other parameters are relatively stable, and at this time, the recording frequency can be appropriately reduced, and the related data is dynamically inserted into the corresponding memory space. Through this dynamic data insertion manner, the waste of memory caused by storing a large amount of low-frequency time-related data at one time is avoided, and the limited memory resources can be more reasonably allocated and used.

[0043] By distinguishing the high-frequency flight period and the low-frequency flight period, the embodiment can more accurately calculate and optimize the flight path planning, and improve the accuracy and efficiency of the flight path planning. Dynamic insertion of data in the low-frequency period avoids wasting too much memory space in the low-frequency period to store redundant data in a high-frequency manner, and ensures the timeliness and integrity of the data, thereby achieving optimal use of resource performance as a whole and ensuring that the flight path planning system can operate efficiently and stably.

[0044] Optionally, the method flexibly adjusts the division of the time frequency and the strategy of dynamic insertion of data according to actual flight tasks and the performance of the UAV and other factors. For example, for some special tasks with high real-time requirements, the overall time frequency division accuracy can be appropriately improved, and the dynamic data insertion algorithm can be optimized to ensure that the UAV state changes can be quickly responded. At the same time, the spatio-temporal data is efficiently processed and analyzed by combining the parallel computing advantage of the GPU, further improving the performance of the flight path planning system.

[0045] According to one embodiment, the method updates the spatio-temporal data according to a predetermined period through a rolling refresh mechanism, and presets a memory growth step.

[0046] Specifically, the time interval of the rolling refresh can be configured, for example, two to three hours, to achieve a balance between the timeliness of data and the use of memory. Based on the preset time interval, the expired data records are periodically cleaned up, and the latest unmanned aerial vehicle spatiotemporal data is recorded according to the predefined data format and content standard. This rolling refresh method not only retains necessary historical data for analysis and backtracking, but also avoids excessive occupation of memory, thereby avoiding problems such as excessive memory occupation due to limited memory management mode in the GPU environment, while ensuring effective recording of unmanned aerial vehicle spatiotemporal data and meeting the basic data requirements of unmanned aerial vehicle route planning.

[0047] To further optimize memory management, the method presets memory optimization parameters according to unmanned aerial vehicle task parameters and system performance requirements. These parameters include initial memory allocation and memory growth step, and other key indicators. The setting of the initial memory allocation needs to consider the number of unmanned aerial vehicles, the complexity of the task, and the memory usage at system startup; and the memory growth step needs to be reasonably configured according to the data volume change trend during task execution, to ensure that the system can flexibly and efficiently use memory resources when processing multi-unmanned aerial vehicle data, and avoid memory leakage or insufficient problems.

[0048] Optionally, the memory growth step is set according to the historical task data peak value, and the calculation formula is: step = peak data volume x 1.5 / GPU memory block quantity.

[0049] In step S103, the route planning task is decomposed into parallel subtasks at the GPU end, and a flight height range matching planning algorithm is used to generate a route planning result.

[0050] The route planning result includes but is not limited to coordinate point sequences, flight heights, speeds, and estimated arrival times corresponding to the routes of multiple unmanned aerial vehicles, etc.

[0051] The route planning algorithm includes but is not limited to A* algorithm, Dijkstra algorithm, artificial potential field algorithm, etc.

[0052] According to an embodiment, step S103 further includes step S1031 and step S1032.

[0053] In step S1031, the route planning task is decomposed into multiple parallel subtasks according to the current number of unmanned aerial vehicle tasks and the computing capacity of the GPU. Each subtask corresponds to the route planning of one unmanned aerial vehicle.

[0054] Specifically, the current number of UAV tasks and the computing power of the GPU are analyzed, taking into account the number of UAVs, the complexity of the tasks, and the computing resources of the GPU, such as the number of cores, memory bandwidth, and computing power, to determine the granularity and manner of task decomposition. On the other hand, based on the above analysis, the route planning task is decomposed into multiple parallel subtasks, each corresponding to the route planning of a UAV, and the subtasks are independent of each other to avoid data dependency and conflict. Next, the priority of the decomposed subtasks is sorted, taking into account factors such as the urgency of the task, the priority of the UAV, and the estimated execution time of the task, to reasonably arrange the execution order. After sorting, the subtasks are assigned to the thread blocks or threads of the GPU according to the priority order, with each thread block responsible for processing one or more subtasks, and the threads within the thread block work together to complete the computation of the subtasks.

[0055] Optionally, the method supports the insertion of new tasks at any time of the day. This not only reduces memory consumption, but also meets the real-time change requirements of UAV tasks, such as emergency delivery tasks or sudden monitoring tasks. Dynamic refreshing ensures that the system quickly adapts to these changes and adjusts resource allocation and task planning in a timely manner. In emergency rescue, logistics distribution, and other scenarios, the priority and time requirements of tasks may change at any time, and dynamic refreshing technology enables the UAV system to respond quickly, improving the flexibility and completion rate of tasks.

[0056] In step S1032, each GPU thread generates a corresponding route planning result according to the height corresponding to the current route planning task using a planning algorithm matching the height.

[0057] According to an embodiment, the flight height is divided into low, medium, and high altitude zones, which correspond to one or more preset route planning algorithms. For example, an artificial potential field algorithm is used to avoid obstacles in the low altitude zone, and a The algorithm optimizes long-distance routes.

[0058] The reason for height division is that the environment and task requirements faced by the UAV may be different when flying at different heights. For example, low-altitude flight may require more detailed obstacle detection and route planning, while high-altitude flight may focus more on atmospheric conditions and navigation accuracy.

[0059] Optionally, the flight frequency data of the UAV at different heights is used to determine which height ranges are areas where the UAV frequently operates. These areas may require more detailed route planning and resource allocation, so special route planning algorithms and data structures are designed for these areas.

[0060] According to an embodiment, in order to ensure that the UAV can safely avoid obstacles during flight, a special collision detection algorithm is also designed in this embodiment. Specifically, an axis-aligned bounding box (AABB) model is used to represent the obstacles, which is a three-dimensional bounding box aligned with the coordinate axes, and the range of the obstacle can be determined by calculating the minimum and maximum coordinate values of the obstacle in the x, y and z coordinate axes. On the GPU side, each thread performs collision detection calculation in parallel, that is, the intersection detection of the UAV route segment and the AABBs is calculated in parallel. The parallel computing capability of the GPU enables simultaneous detection of multiple route segments and multiple obstacle AABBs, thereby quickly determining whether the UAV route is at risk of collision, improving the efficiency and real-time performance of collision detection, and providing a strong guarantee for the safe flight of the UAV.

[0061] Optionally, based on the distributed algorithm, the data corresponding to different height ranges is distributed to different computing nodes for processing. Each node is responsible for processing the UAV data in a specific height range, thereby realizing parallel processing. By dividing the height range and combining the height flight frequency and the distributed algorithm for processing, the planning needs of UAVs at different heights can be more efficiently met.

[0062] Optionally, during the calculation process, necessary information exchange and cooperation between GPU threads are performed through shared memory or atomic operations. In order to realize the cooperative route planning of multiple UAVs, some information needs to be shared between threads, such as the occupancy of the flight area, the position of the obstacle, etc. With the help of shared memory or atomic operations, safe and efficient information exchange and synchronization between threads can be ensured.

[0063] According to an embodiment, the method further comprises step S104.

[0064] In step S104, potential conflicts and obstacles on the route are monitored in real time during the execution of the task by the UAV, and the route is dynamically planned based on the monitoring results.

[0065] The dynamic planning of this embodiment needs to pre-plan a route, and then re-plan based on the potential conflict between the route and other routes or the update of the obstacle. Among them, the pre-planned route is generated based on the following two ways: one is a traditional planning-based way, which does not consider the conflict between other UAVs, and the purpose is to quickly generate a preliminary route; the other is a simple map planning-based way, which takes the line connecting the starting point and the ending point as the initial route, and then optimizes the conflict between the obstacle and the UAV based on this route.

[0066] Specifically, in the dynamic planning process, an initial flight path is first generated quickly using a pre-planning algorithm according to the current position of the UAV and the task target. Then, potential conflicts and obstacles on the flight path are monitored in real time as the UAV flies and the environment changes. If a conflict or obstacle is detected, flight path re-planning is triggered. In the flight path re-planning process, the algorithm takes into account the current state of the UAV, the surrounding environment, and the flight paths of other UAVs, and calculates a new optimized flight path to ensure that the UAV can safely and efficiently reach the destination.

[0067] The dynamic planning method of the embodiments of the present application can effectively cope with real-time changes in the flight environment and improve the flexibility and success rate of UAV task execution.

[0068] According to an embodiment, the workloads and task assignments of the GPU threads are dynamically adjusted throughout the execution process. Specifically, the workloads and task progress of the threads are monitored in real time, and the workloads of the threads are dynamically adjusted according to actual conditions, such as transferring tasks from heavily loaded threads to lightly loaded threads, to ensure load balancing among the threads.

[0069] Optionally, the calculation results are verified and optimized. After the threads complete the flight path planning calculation, the obtained flight path results are verified to check whether the flight path meets the flight safety requirements, whether it is consistent with the task target, etc. If there are flight paths that do not meet the requirements, optimization adjustment is needed to ensure the feasibility and optimality of the flight path.

[0070] According to an embodiment, the method integrates and organizes the flight path planning results calculated by the threads, aggregates the UAV flight path planning results obtained by the threads, organizes and stores them in a unified format, and forms a complete set of flight path planning results.

[0071] Optionally, the flight path planning results are smoothed to remove sharp turns and unnecessary fluctuations in the flight path, making the flight trajectory of the UAV more stable and natural.

[0072] According to the method of the embodiment of the present application, the flight path planning of multiple unmanned aerial vehicles is performed based on the unmanned aerial vehicle space-time data at the GPU end, the collaborative work of multiple unmanned aerial vehicles is realized, and the efficiency and effect of task execution are improved. The GPU parallel read-write strategy is adopted to improve the efficiency of unmanned aerial vehicle space-time data processing and realize the parallelization of unmanned aerial vehicle space-time data read-write. The adaptability to unmanned aerial vehicle planning requirements at different altitudes is improved by combining the flight frequency and distributed algorithm to divide the altitude, and unmanned aerial vehicle planning requirements at different altitudes are supported. The memory utilization efficiency is improved by optimizing the storage structure and algorithm, such as adopting a table form data structure and adjusting the altitude resolution, time resolution and other parameters, and effective unmanned aerial vehicle flight path planning is supported under the condition of limited memory resources of a single server system. The flexibility and adaptability of the system are improved by the dynamic refreshing mechanism, and the system can better meet the actual application requirements of dynamic task allocation and emergency response. The processing capacity of the system for multiple unmanned aerial vehicle collaborative tasks is improved by reasonably designing the data structure and algorithm architecture, and unified management and efficient scheduling of multiple unmanned aerial vehicles can be realized.

[0073] Figure 2 A structure schematic diagram of an apparatus for unmanned aerial vehicle flight path planning provided by an embodiment of the present application is shown.

[0074] The apparatus comprises a space-time data acquisition module 101, a data storage processing module 102 and a flight path planning module 103.

[0075] Referring to Figure 2 The space-time data acquisition module 101 acquires space-time data of multiple unmanned aerial vehicles.

[0076] The space-time data includes but is not limited to data corresponding to multiple unmanned aerial vehicles. The space-time data includes but is not limited to the speed, endurance, altitude, flight time distribution frequency, flight area distribution frequency, flight altitude distribution frequency and task type of each unmanned aerial vehicle, the relationship between tasks and the like.

[0077] Optionally, the space-time data acquisition module 101 acquires the space-time data of the unmanned aerial vehicle in real time, and records the unique identifier of each unmanned aerial vehicle for distinguishing and managing.

[0078] The manner of triggering the operation of the space-time data acquisition module 101 includes but is not limited to at least one of the following manners: the system monitors the state of the unmanned aerial vehicle in real time, and automatically triggers the acquisition of the space-time data of the unmanned aerial vehicle when it is detected that the unmanned aerial vehicle is ready to enter the planning area; or the acquisition of the space-time data of the unmanned aerial vehicle is triggered when the unmanned aerial vehicle task planning instruction sent by the user through the control terminal is received.

[0079] According to an embodiment, the device pre-processes the acquired spatio-temporal data.

[0080] The pre-processing includes, but is not limited to, at least one of the following: 1) Data cleaning: removing erroneous data, duplicate data, and obviously abnormal data points to ensure the accuracy and reliability of the data.

[0081] 2) Data alignment: aligning the data of different drones to the same coordinate system and time reference for subsequent collaborative processing.

[0082] 3) Data dimension reduction and compression: using appropriate methods to reduce the dimension of high-dimensional spatio-temporal data, retaining key feature information while reducing data volume and improving processing efficiency.

[0083] When the operation of the spatio-temporal data acquisition module 101 is executed by the GPU end, the spatio-temporal data is transmitted from the CPU to the memory of the GPU. It should be noted that when the spatio-temporal data of the drone is transmitted from the CPU to the memory of the GPU, the consistency and integrity of the data need to be ensured. This can be achieved through mechanisms such as checksum and data packet order control. For example, during data transmission, cyclic redundancy check (CRC) or checksum can be used to ensure data integrity. At the same time, in order to ensure data consistency, data verification can be performed after data transmission is completed to ensure that the data received by the GPU is completely consistent with the data sent by the CPU.

[0084] After completing data transmission, the GPU can start multiple threads for parallel processing, and each thread can independently process the spatio-temporal data of the drone, thereby improving the execution efficiency of the path planning algorithm. This parallel processing method can fully utilize the computing power of the GPU to accelerate the path planning process.

[0085] Optionally, in order to further optimize the data transmission and processing process, the Unified Virtual Memory (UVM) technology can be used to enable the GPU to directly access the data in the CPU memory, thereby reducing the steps and overhead of data transmission. This technology can simplify the data transmission process and improve the overall performance of the system.

[0086] The data storage processing module 102 stores the spatio-temporal data in time windows and spatial regions on the GPU end, dynamically manages the memory based on flight height and time, and uses a parallel strategy combining multi-thread cooperative reading and writing with asynchronous reading and writing to operate the data.

[0087] The data storage processing module 102 stores the space-time data of multiple unmanned aerial vehicles according to a specific time window or a space region, each block contains the unmanned aerial vehicle data in a specific time period or region, such as position, speed, height and other information, so that the data has a regular layout in the memory, which facilitates batch read and write operations of GPU threads. Optionally, according to the characteristics of the unmanned aerial vehicle data and the parallel computing capability of the GPU, a suitable block granularity is determined. For a region or time period with large data volume and complex changes, the block granularity can be appropriately reduced to improve the refinement degree of parallel processing; and for a region or time period with small data volume and gentle changes, the block granularity can be appropriately increased to reduce the number of blocks and improve the processing efficiency.

[0088] According to one embodiment, the dynamic memory management based on flight height and time includes: constructing a plane map, a height table and a time table; establishing a bidirectional index based on flight height and time, so that based on the index, the video memory is dynamically allocated according to the time dimension.

[0089] The plane map is used to record the two-dimensional position information of the space region, including but not limited to the position coordinates of the unmanned aerial vehicle in the horizontal direction, such as latitude and longitude coordinates. The height table is used to record the flight height of the unmanned aerial vehicle. The time table divides the time period into units of predetermined periods (for example, 1 hour) to manage the time dimension of the video memory. The time table allows memory to be allocated and released in time sequence. Since the GPU does not have an operating system, it cannot implement dynamic memory management like a CPU, but the unmanned aerial vehicle planning may involve a whole-day planning task for a huge region such as 25000x25000x300, and the GPU video memory is difficult to meet such route planning requirements. The embodiment dynamically allocates the video memory according to the time dimension based on the index of flight height and time in the above manner. For example, a video memory block is allocated every hour to store the space-time data corresponding to the height and time period. If the data of the previous hour expires, it is automatically switched to the next time video memory block for data read and write operations, thereby solving the problem that the GPU video memory is difficult to meet the dynamic route planning requirements of the unmanned aerial vehicle.

[0090] The parallel read-write strategy includes multi-thread cooperative read-write: using the multi-thread feature of the GPU, one or more threads are allocated for each data block for read-write operation. During thread execution, each thread cooperates to complete the reading, processing and writing of the UAV space-time data according to the preset rules and task allocation. Asynchronous read-write operation: using asynchronous read-write mode, the data reading and writing operations can be performed synchronously without affecting the GPU calculation. For example, while the GPU is processing the current time period data, the next time period data is read from the storage device to the memory in advance, or the processed data is written back to the storage device asynchronously, thereby hiding the data transmission time and improving the overall efficiency of the system.

[0091] According to one embodiment, the data storage processing module 102 uses a compression algorithm suitable for the characteristics of UAV space-time data, such as differential encoding for time series data compression, recording the difference between data points rather than the complete value, thereby reducing storage requirements. For spatial data, quadtree or octree encoding is used, which divides the space into multiple sub-regions according to the distribution characteristics of the data, and only stores the region information containing the data points, effectively reducing redundant data.

[0092] Optionally, a data caching mechanism is set up to retain hot data in the cache according to the access frequency and importance of the data, thereby improving the access speed of the data. For example, using the least recently used (LRU) or first in first out (FIFO) caching strategy, the frequently accessed data can be quickly obtained, and the overall performance of the system is improved.

[0093] According to one embodiment, a data indexing and retrieval mechanism is constructed to establish a spatial index based on geographic location, such as R-tree or Grid index, to quickly query the UAV data in a specific area. Indexes are established for time series data, such as B+ tree index, to quickly retrieve UAV data at different time periods. Further, a multi-dimensional combined index is constructed by combining spatial index and time index to support efficient spatio-temporal joint query.

[0094] According to one embodiment, in the memory management design, the memory structure suitable for GPU parallel processing is designed in advance according to the historical UAV task data and the system memory capacity, and the structured array or array is used to store the space-time data of the UAV.

[0095] According to one embodiment, the dynamic adjustment of the storage granularity comprises: pre-analyzing the flight time frequency of the UAV route planning, and dividing the time into a high-frequency flight period and a low-frequency flight period. The flight time frequency is the number of times the UAV passes through the planning area per unit time. The high-frequency flight period is divided into a plurality of time periods according to a predetermined time interval, the data corresponding to the plurality of time periods is recorded and stored in the high-frequency flight period, and the data is inserted in a dynamic insertion manner in the low-frequency flight period. Optionally, when the data is dynamically inserted, an independent GPU thread is started to establish an R-tree index for the new data, and the R-tree index is merged with an existing spatial index.

[0096] By distinguishing the high-frequency flight period and the low-frequency flight period, the embodiment can more accurately calculate and optimize the route planning, improve the accuracy and efficiency of the route planning, dynamically insert data in the low-frequency period to avoid wasting too much memory space to store redundant data in the high-frequency manner in the low-frequency period, and ensure the timeliness and integrity of the data, thereby achieving optimal use of resource performance as a whole and ensuring that the route planning system can operate efficiently and stably.

[0097] Optionally, the method flexibly adjusts the division of the time frequency and the strategy of dynamically inserting data according to actual flight tasks and the performance of the UAV and the like. For example, for some special tasks with high real-time requirements, the overall time frequency division accuracy can be appropriately improved, and the dynamic data insertion algorithm can be optimized to ensure that the UAV state changes can be quickly responded. At the same time, the spatio-temporal data is efficiently processed and analyzed by combining the parallel computing advantage of the GPU, and the performance of the route planning system is further improved.

[0098] According to one embodiment, the data storage processing module 102 updates the spatio-temporal data according to a predetermined period by a rolling refresh mechanism, and a memory growth step is preset.

[0099] Specifically, the time interval of the rolling refresh can be configured, for example, two to three hours, to balance the timeliness of the data and the use of the memory. Based on the preset time interval, the expired data records are periodically cleaned up, and the latest UAV spatio-temporal data is recorded according to the predefined data format and content standard. This rolling refresh manner not only retains necessary historical data for analysis and backtracking, but also avoids excessive occupation of the memory, thereby avoiding problems such as excessive memory occupation due to the limitation of the memory management manner in the GPU environment, while ensuring effective recording of the UAV spatio-temporal data and meeting the basic data requirements of the UAV route planning.

[0100] To further optimize memory management, preset memory optimization parameters according to the UAV task parameters and system performance requirements. These parameters include initial memory allocation and memory growth step, and other key indicators. The setting of the initial memory allocation needs to consider the number of UAVs, the complexity of the task, and the memory usage at system startup; while the memory growth step needs to be reasonably configured according to the data volume change trend in the task execution process, to ensure that the system can flexibly and efficiently use memory resources when processing multi-UAV data, avoiding memory leakage or insufficient problems.

[0101] Optionally, the memory growth step is set according to the historical task data peak value, and the calculation formula is: step = peak data volume x 1.5 / GPU memory block quantity.

[0102] The route planning module 103 decomposes the route planning task into parallel subtasks on the GPU side, and generates a route planning result based on a flight height range matching planning algorithm.

[0103] The route planning result includes but is not limited to coordinate point sequences, flight heights, speeds, and estimated arrival times corresponding to the routes of multiple UAVs, etc.

[0104] The route planning algorithm includes but is not limited to A* algorithm, Dijkstra algorithm, artificial potential field algorithm, etc.

[0105] According to an embodiment, the route planning module 103 further includes a task decomposition module and a sub-planning module.

[0106] The task decomposition module decomposes the route planning task into multiple parallel subtasks according to the current number of UAV tasks and the computing power of the GPU. Each subtask corresponds to the route planning of one UAV.

[0107] Specifically, analyze the current number of UAV tasks and the computing power of the GPU, which needs to consider the number of UAVs, the complexity of the task, and the computing resources of the GPU, such as the number of cores, memory bandwidth, and computing power, etc., to determine the granularity and method of task decomposition. On the other hand, based on the above analysis, the route planning task is decomposed into multiple parallel subtasks, each subtask corresponds to the route planning of one UAV, and the independence between subtasks is ensured to avoid data dependency and conflict. Next, the priority of the decomposed subtasks is sorted, and factors such as the urgency of the task, the priority of the UAV, and the estimated execution time of the task are considered to reasonably arrange the execution order. After sorting, the subtasks are allocated to the thread blocks or threads on the GPU side, each thread block is responsible for processing one or more subtasks, and the threads in the thread block work together to complete the calculation of the subtasks.

[0108] Optionally, the route planning module 103 supports the insertion of new tasks at any time of the day. This not only reduces memory consumption, but also addresses the real-time changing needs of UAV tasks, such as emergency delivery tasks or sudden monitoring tasks. Dynamic refreshing ensures that the system quickly adapts to these changes and adjusts resource allocation and task planning in a timely manner. In emergency rescue, logistics distribution and other scenarios, the priority and time requirements of tasks may change at any time, and dynamic refreshing technology enables the UAV system to respond quickly, improving the flexibility and completion rate of tasks.

[0109] The sub-planning module GPU threads generate corresponding route planning results according to the height corresponding to the current route planning task, using a planning algorithm that matches the height.

[0110] According to an embodiment, the flight height is divided into low, medium and high altitude zones, which correspond to one or more preset route planning algorithms. For example, in the low altitude zone, an artificial potential field algorithm is used to avoid obstacles, in the high altitude zone, a The algorithm optimizes long-distance routes.

[0111] The reason for height division is that the environment and task requirements faced by the UAV may be different when flying at different heights. For example, low-altitude flight may require more detailed obstacle detection and route planning, while high-altitude flight may focus more on atmospheric conditions and navigation accuracy.

[0112] Optionally, the flight frequency data of the UAV at different heights is used to determine which height ranges are areas of frequent UAV activity. These areas may require more detailed route planning and resource allocation, so special route planning algorithms and data structures are designed for these areas.

[0113] According to an embodiment, in order to ensure the safety of the UAV during flight, a special collision detection algorithm is also designed in this embodiment. Specifically, an axis-aligned bounding box (AABB) model is used to represent obstacles. On the GPU side, each thread performs collision detection calculations in parallel, i.e. parallel computing of the intersection detection of UAV route segments and these AABBs. The parallel computing capability of the GPU enables simultaneous detection of multiple route segments and multiple obstacle AABBs, thereby quickly determining whether the UAV route is at risk of collision, improving the efficiency and real-time performance of collision detection, and providing a strong guarantee for the safe flight of the UAV.

[0114] Optionally, the route planning module 103 distributes data corresponding to different height ranges to different computing nodes for processing based on a distributed algorithm. Each node is responsible for processing data of the UAV in a specific height range, thereby achieving parallel processing. By dividing the height range and combining the height flight frequency and the distributed algorithm for processing, the planning requirements of the UAVs at different heights can be more efficiently met.

[0115] Optionally, during the calculation process, the necessary information exchange and cooperation between the GPU threads are performed through shared memory or atomic operations. In order to achieve the cooperative route planning of multiple UAVs, some information needs to be shared by the threads, such as the occupancy of the flight area and the position of the obstacles. With the help of shared memory or atomic operations, safe and efficient information exchange and synchronization between threads can be ensured.

[0116] According to an embodiment, the apparatus further comprises a dynamic planning module.

[0117] The dynamic planning module monitors potential conflicts and obstacles on the route in real time during the execution of the task by the UAV, and dynamically plans the route based on the monitoring results.

[0118] Specifically, during the dynamic planning process, the dynamic planning module uses a pre-planning algorithm to quickly generate an initial route according to the current position of the UAV and the task target. Then, as the UAV flies and the environment changes, potential conflicts and obstacles on the route are monitored in real time. If a conflict or an obstacle is detected, route re-planning is triggered. During the route re-planning process, the algorithm takes into account the current state of the UAV, the surrounding environment, and the flight routes of other UAVs, and calculates a new optimized route to ensure that the UAV can safely and efficiently reach the destination.

[0119] The dynamic planning method of the embodiments of the present application can effectively cope with the real-time changing flight environment and improve the flexibility and success rate of the execution of the task by the UAV.

[0120] According to an embodiment, the dynamic planning module dynamically adjusts the workloads and task allocation of the GPU threads during the entire execution process. Specifically, the workloads and task progress of the threads are monitored in real time, and the workloads of the threads are dynamically adjusted according to the actual situation, such as transferring tasks from threads with heavy loads to threads with light loads, to ensure load balancing between the threads.

[0121] Optionally, the apparatus verifies and optimizes the calculation results. After the threads complete the route planning calculation, the obtained route results are verified to check whether the route meets the flight safety requirements, whether it is consistent with the task target, etc. If there are routes that do not meet the requirements, optimization and adjustment need to be performed to ensure the feasibility and optimality of the route.

[0122] According to one embodiment, the device integrates and arranges the flight path planning results calculated by each thread, aggregates the UAV flight path planning results obtained by each thread, arranges and stores the results in a unified format, and forms a complete flight path planning result set.

[0123] Optionally, the device performs smoothing processing on the flight path planning results, removes sharp turns and unnecessary fluctuations in the flight path, and makes the flight trajectory of the UAV more stable and natural.

[0124] The device according to the embodiments of the application implements the cooperative operation of multiple UAVs by performing flight path planning corresponding to multiple UAVs based on UAV space-time data on the GPU side, improves the efficiency and effect of task execution; adopts the GPU parallel read-write strategy, improves the efficiency of UAV space-time data processing, and realizes the parallelization of UAV space-time data read-write; by combining the height flight frequency and the distributed algorithm to divide the height, the adaptability to the planning requirements of UAVs at different heights is improved, and the planning requirements of UAVs at different heights are supported; by optimizing the storage structure and algorithm, for example, using a table form data structure, and adjusting the height resolution, time resolution and other parameters, the memory utilization efficiency is improved, and in the case of limited memory resources, effective UAV flight path planning is supported under the condition of limited memory resources of a single server system; through the dynamic refreshing mechanism, new tasks can be inserted at any time of the day, the flexibility and adaptability of the system are improved, and the actual application requirements such as dynamic task allocation and emergency response can be better met; by reasonably designing the data structure and algorithm architecture, multiple UAV data can be input at the same time, the processing capacity of the system for cooperative tasks of multiple UAVs is improved, and unified management and efficient scheduling of multiple UAVs can be realized.

[0125] Based on the same inventive concept, the embodiments of the present application also provide an electronic device, the method corresponding to the electronic device can be the method in the foregoing embodiments, and the problem solving principle thereof is similar to the method. The electronic device provided by the embodiments of the present application comprises at least one processor and a memory in communication connection with the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute the method and / or technical solutions of the foregoing embodiments of the present application.

[0126] The electronic device can be a user device, or a device integrated by a user device and a network device through a network, or also can be an application program running on the above device, the user device includes but is not limited to computers, mobile phones, tablet computers, smart watches, bracelets and various terminal devices, and the network device includes but is not limited to network hosts, single network servers, multiple network server sets or computer sets based on cloud computing, which can be used to realize part of the processing function when setting an alarm. Here, the cloud is composed of a large number of hosts or network servers based on cloud computing, wherein the cloud computing is a kind of distributed computing, which is composed of a virtual computer set by a loose coupling computer group.

[0127] Figure 3 The structure of a device suitable for implementing the method and / or technical scheme in the embodiments of the present application is shown, the device 1200 includes a central processing unit (CPU, Central Processing Unit) 1201, which can perform various appropriate actions and processes according to the program stored in the read-only memory (ROM, Read Only Memory) 1202 or the program loaded from the storage part 1208 to the random access memory (RAM, Random Access Memory) 1203. In the RAM 1203, various programs and data required for system operation are also stored. The CPU 1201, the ROM 1202 and the RAM 1203 are connected to each other through a bus 1204. An input / output (I / O, Input / Output) interface 1205 is also connected to the bus 1204.

[0128] The following components are connected to the I / O interface 1205: an input part 1206 including a keyboard, a mouse, a touch screen, a microphone, an infrared sensor, etc.; an output part 1207 including a cathode ray tube (CRT, Cathode Ray Tube), a liquid crystal display (LCD, Liquid Crystal Display), an LED display, an OLED display, etc., and a speaker, etc.; a storage part 1208 including one or more computer readable media such as a hard disk, an optical disk, a magnetic disk, a semiconductor memory, etc.; and a communication part 1209 including a network interface card such as a LAN (Local Area Network) card, a modem, etc. The communication part 1209 performs communication processing via a network such as the Internet.

[0129] In particular, the method and / or embodiments in the present application can be implemented as a computer software program. For example, the embodiments disclosed in the present application include a computer program product comprising a computer program which is carried on a computer readable medium, and the computer program contains program codes for executing the method shown in the flow chart. When the computer program is executed by a central processing unit (CPU) 1201, the above-mentioned functions defined in the method of the present application are executed.

[0130] The program includes a mobile phone program (APP program, mini program, etc.), a smart device program, and the smart device includes a watch, a bracelet, a helmet, a smart hardware device, etc.

[0131] Another embodiment of the present application also provides a computer readable storage medium having stored thereon computer program instructions, which can be executed by a processor to implement the method and / or technical solutions of any one or more embodiments of the present application.

[0132] In particular, the embodiments can employ any combination of one or more computer readable media. The computer readable media can be a computer readable signal medium or a computer readable storage medium. The computer readable storage medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the above. More specific examples (a non-exhaustive list) of the computer readable storage medium include an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In this document, the computer readable storage medium can be any tangible medium that contains or stores a program that can be used by or in connection with an instruction execution system, apparatus, or device.

[0133] The computer readable signal medium can include a data signal propagated in baseband or propagated as a carrier wave in a propagated data signal, in which the computer readable program code is carried. Such a propagated signal can take a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. The computer readable signal medium can also be any computer readable medium that is not a storage medium and that can communicate, propagate, or transport program for use by or in connection with an instruction execution system, apparatus, or device.

[0134] The program code contained in the computer readable medium can be transmitted by any suitable medium, including, but not limited to, wireless, wireline, optical cable, RF, etc., or any suitable combination thereof.

[0135] Computer program code for carrying out operations of the present application can be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code can execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computer (for example, through the Internet using an Internet Service Provider).

[0136] The computer program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks.

[0137] Those skilled in the art can clearly understand that, for the convenience and brevity, the specific working process of the system, device and unit described above can refer to the corresponding process in the foregoing method embodiments, which will not be described here.

[0138] In several embodiments provided in the present application, it should be understood that the disclosed system, device and method can be implemented in other manners. For example, the described device embodiments are merely schematic. The division of the units is merely logical function division. There can be another division manner for the actual implementation, for example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the displayed or discussed mutual couplings or direct couplings or communication connections can be indirect couplings or communication connections through some interfaces, devices or units, and can be in electrical, mechanical or other forms.

[0139] The units described as separate components can or can not be physically separate, and the components shown as units can or can not be physical units, i.e., can be located in one place, or can be distributed on multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the embodiment.

[0140] In addition, each functional unit in the various embodiments of the present application can be integrated in one processing unit, or each unit can be physically present separately, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware, or in the form of hardware plus software functional units.

[0141] The integrated unit realized in the form of software functional units can be stored in a computer readable storage medium. The software functional units stored in the storage medium include a plurality of instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) or a processor to execute some steps of the method described in the various embodiments of the present application. The aforementioned storage medium includes a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and various program code storage media.

[0142] Finally, it should be noted that: the above embodiments are merely used to illustrate the technical solutions of the present application, rather than limit them; although the present application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that: it can still modify the technical solutions recorded in the foregoing embodiments, or make equivalent replacement for some technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present application.

[0143] Furthermore, the word "comprising" does not exclude other elements or steps, and the singular does not exclude the plural and vice-versa, unless the context clearly requires these exclusions. The conjunction "or" is used to link items in a list or a set of alternatives, and is not used to express an exclusive "or" unless explicitly stated. The word "about" is used to indicate that an item, a numerical value or a range of values is intended to be an approximation.

Claims

1. A method of route planning for a drone, wherein, The method comprises: acquiring spatiotemporal data of multiple unmanned aerial vehicles (UAVs); storing the spatiotemporal data in blocks according to time windows and spatial regions on a GPU side, performing dynamic memory management based on flight altitudes and time, and operating the data using a parallel strategy combining multi-thread cooperative reading and writing and asynchronous reading and writing; decomposing a flight route planning task into parallel subtasks on the GPU side, and generating a flight route planning result based on a planning algorithm matched with a flight altitude range.

2. The method of claim 1, wherein, The dynamic memory management based on the flight altitudes and the time comprises: constructing a plane map, an altitude table, and a time table, wherein the altitude table and the time table divide time periods into units of a predetermined period; establishing bidirectional index information based on the flight altitudes and the time, so as to dynamically allocate video memory according to a time dimension based on the index.

3. The method of claim 1, wherein, The dynamic adjustment of the storage granularity comprises: preanalyzing a flight time frequency of the UAV flight route planning, and dividing time into a high-frequency flight period and a low-frequency flight period; dividing the high-frequency flight period into multiple time periods according to a predetermined time interval, recording and storing data corresponding to the multiple time periods in the high-frequency flight period, and inserting data in the low-frequency flight period using a dynamic insertion method.

4. The method of claim 1, wherein, The method further comprises: updating the spatiotemporal data according to a predetermined period using a rolling refresh mechanism, and presetting a memory growth step.

5. The method of claim 1, wherein, The parallel reading and writing strategy of the parallel strategy combining multi-thread cooperative reading and writing and asynchronous reading and writing to operate the data comprises: multi-thread cooperative reading and writing: using a multi-thread feature of the GPU to assign one or more threads to each data block for reading and writing operations; asynchronous reading and writing operations: using an asynchronous reading and writing method to enable reading and writing operations of the data to be performed synchronously without affecting GPU calculation.

6. The method of claim 1, wherein, The decomposition of the flight route planning task into parallel subtasks on the GPU side and the generation of the flight route planning result based on the planning algorithm matched with the flight altitude range comprise: decomposing the flight route planning task into multiple parallel subtasks according to a number of current flight route planning tasks and a calculation capability of the GPU; each GPU thread generates a corresponding flight route planning result using a planning algorithm matched with a height corresponding to a current flight route planning task.

7. The method of claim 1, wherein, The method further comprises: monitoring potential conflicts and obstacles on a flight route in real time during execution of a task by the UAV, and dynamically planning the flight route based on a monitoring result.

8. The method of claim 7, wherein, The monitoring of the potential conflicts and obstacles on the flight route in real time during the execution of the task by the UAV and the dynamic planning of the flight route based on the monitoring result comprise: quickly generating an initial flight route using a pre-planning algorithm according to a current position of the UAV and a task target; monitoring the potential conflicts and obstacles on the flight route in real time as the UAV flies and the environment changes; triggering flight route re-planning if a conflict or an obstacle is detected.

9. An apparatus for conducting drone route planning, wherein, The device comprises: a spatiotemporal data acquisition module configured to acquire spatiotemporal data of multiple unmanned aerial vehicles (UAVs); a data storage processing module configured to store the spatiotemporal data in blocks according to time windows and spatial regions on a GPU side, perform dynamic memory management based on flight altitudes and time, and operate the data using a parallel strategy combining multi-thread cooperative reading and writing and asynchronous reading and writing. The route planning module is configured to decompose a route planning task into parallel subtasks at a GPU end, and generate a route planning result based on a flight height range matching planning algorithm.

10. The apparatus of claim 9, wherein, The data storage processing module is configured to: construct a plane map, a height table and a time table, wherein the height table and the time table divide time periods in units of a predetermined period; establish bidirectional index information based on flight height and time, so as to dynamically allocate video memory according to a time dimension based on the index.

11. An electronic device, comprising: at least one processor; and a memory connected to the at least one processor in communication; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method of any one of claims 1 to 9.

12. A computer readable medium having stored thereon computer program instructions executable by a processor to implement the method of any one of claims 1 to 9.

13. A computer program product comprising a computer program which, when executed by a processor, implements the method of any one of claims 1 to 9.