Route planning method and device based on A* planning algorithm, equipment and storage medium

By modifying the evaluation function of the A* algorithm and adding weight parameters, the path for UAV power line inspection is optimized, solving the problems of redundant turning points and non-smooth paths in the traditional A* algorithm, and achieving more efficient UAV flight and inspection.

CN115857541BActive Publication Date: 2026-03-31BEIJING SMARTCHIP SEMICON TECH CO LTD +1
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-11-21
Publication Date
2026-03-31

AI Technical Summary

Technical Problem

Traditional A* algorithms suffer from redundant turning points, excessive total turning angles, and insufficient path smoothness in UAV power line inspection path planning, leading to increased flight energy consumption and reduced inspection efficiency.

Method used

By modifying the evaluation function of the A* programming algorithm, adding weight parameters, and combining map testing, the preliminary planned route is optimized, redundant turning points are removed, and the target planned route is generated using a preset strategy.

Benefits of technology

It reduces drone flight energy consumption, improves path smoothness, avoids drone crashes caused by excessive energy consumption, and improves inspection efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115857541B_ABST
    Figure CN115857541B_ABST
Patent Text Reader

Abstract

The application discloses a route planning method based on an A* planning algorithm, and has the characteristics that the method comprises the following steps: determining an evaluation function according to the A* planning algorithm and a map; determining a preliminary planning route according to the evaluation function; and removing redundant objects in the preliminary planning route according to a preset strategy and the preliminary planning route, and determining a target planning route. According to the method, an optimized planning route can be determined on the basis of the A* algorithm, redundant turning points and other objects are removed, the total turning angle is reduced, the path smoothness is further improved, the length of the flight trajectory is simply and efficiently reduced, the energy consumption of the unmanned aerial vehicle (UAV) is further reduced, the flight completion rate of the UAV is improved, and UAV crash accidents caused by excessive energy consumption are avoided.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of unmanned aerial vehicle (UAV) technology, and in particular to a route planning method, route planning device, route planning system, UAV equipment, and computer-readable storage medium based on the A* programming algorithm. Background Technology

[0002] Currently, commonly used path planning algorithms for UAV power line inspection include the A* algorithm, the RRT algorithm, and the artificial potential field method. Among them, the A* algorithm is more widely used in relevant scenarios due to its good adaptability, heuristics, and completeness. However, the traditional A* algorithm still has shortcomings in path planning, such as redundant turning points in the path, excessively large total turning angles, and insufficient path smoothness. It cannot meet the stability and continuity requirements of UAV flight during power line inspection, and it also increases flight energy consumption and reduces inspection efficiency. Summary of the Invention

[0003] This application provides a route planning method, route planning device, route planning system, unmanned aerial vehicle (UAV) equipment, and computer-readable storage medium based on the A* programming algorithm.

[0004] The route planning method based on the A* programming algorithm in this application includes:

[0005] Based on the A* programming algorithm and the map, determine the evaluation function;

[0006] Based on the evaluation function, a preliminary planned route is determined;

[0007] Based on the preset strategy and the preliminary planned route, redundant objects in the preliminary planned route are removed to determine the target planned route.

[0008] Thus, this application modifies and optimizes the evaluation function provided by the A* planning algorithm based on the actual situation shown on the map. A preliminary planned route is then determined using this modified and optimized evaluation function. A preset optimization strategy is then used to further refine and correct the preliminary planned route, removing redundant turning points, redundant route nodes, and other redundant objects to determine the final target planned route. Through this method, this application can determine an optimized planned route based on the A* algorithm, removing redundant turning points and other objects, reducing the total turning angle while further improving path smoothness. This simply and efficiently reduces the energy consumption of the UAV, avoiding UAV crashes caused by excessive energy consumption.

[0009] In some implementations, determining the evaluation function based on the A* programming algorithm and the map includes:

[0010] Based on the evaluation function formula of the A* programming algorithm, weight parameters are added to obtain the preliminary evaluation function;

[0011] Based on the map, the preliminary evaluation function is tested to determine the evaluation function.

[0012] Thus, this application adds weight parameters to the evaluation function provided by the A* programming algorithm, and tests evaluation functions with different weight parameters based on the map to select the evaluation function that is finally put into application.

[0013] In some implementations, the expression for the preliminary evaluation function is as follows:

[0014]

[0015] in:

[0016] f(n) is the estimated total cost from the initial state to the target state via state n, g(n) is the actual cost from the initial state to state n, h(n) is the estimated cost of the optimal route from state n to the target state, a and b are weight parameters, d is the straight-line distance from the current node to the target position, and L is the straight-line distance between the starting position and the ending position.

[0017] Thus, this application provides a way to add weight parameters to the evaluation function provided by the A* programming algorithm.

[0018] In some implementations, the expression for the preliminary evaluation function is as follows:

[0019]

[0020] in:

[0021] f(n) is the estimated total cost from the initial state to the target state via state n, g(n) is the actual cost from the initial state to state n, h(n) is the estimated cost of the optimal route from state n to the target state, a and b are weight parameters, d is the straight-line distance from the current node to the target position, L is the straight-line distance between the starting position and the ending position, and N is a positive integer greater than 1.

[0022] Thus, this application provides a preliminary evaluation function that can simultaneously guarantee accuracy and operating speed.

[0023] In some implementations, the step of testing the preliminary evaluation function based on the map to determine the evaluation function includes:

[0024] Multiple preliminary evaluation functions to be tested are identified, each of which has a different weight parameter value;

[0025] Based on the preliminary evaluation function to be tested and the map, determine the test route;

[0026] In response to the test operation, the test route is tested multiple times to obtain the preset evaluation index value of the test route;

[0027] Based on the preset evaluation index value, determine the test result of the preliminary evaluation function to be tested;

[0028] In response to the function generation operation, the preliminary evaluation function to be tested with the optimal preset evaluation index value is determined as the evaluation function.

[0029] Thus, this application provides a method for selecting and determining an evaluation function by obtaining preset evaluation index values ​​through testing.

[0030] In some implementations, the step of removing redundant objects from the preliminary planned route and determining the target planned route based on a preset strategy and the preliminary planned route includes:

[0031] Traverse and obtain all nodes on the planned route, where the starting point is the starting node and the ending point is the final node;

[0032] The final node is designated as the current execution node;

[0033] Confirm whether the current execution node is a turning point:

[0034] If the current execution node is not a turning point:

[0035] Connect the node preceding the currently executing node with the node following the currently executing node to determine an existing route segment, which is part of the target planned route;

[0036] The node following the currently executing node is determined as the new currently executing node;

[0037] Return to confirm whether the current execution node is a turning point.

[0038] Thus, this application can determine a portion of the target planned route when the nodes on the planned route are not turning points.

[0039] In some implementations, confirming whether the current execution node is a turning point further includes:

[0040] If the current execution node is a turning point:

[0041] Connect the current execution node with all nodes preceding the current execution node and remove redundant turning points to determine the first route segment;

[0042] The optimization effect of the first route segment is determined according to the preset strategy;

[0043] The node closest to the starting node in the first route segment is determined as the new current execution node;

[0044] Return to confirm whether the current execution node is a turning point.

[0045] Thus, this application can further determine the first route segment when the nodes on the planned route are turning points, in order to obtain the target planned route.

[0046] In some implementations, the step of determining the next node after the current execution node as the new current execution node further includes:

[0047] When the current execution node is the starting node, the target planned route is determined, and the process of confirming whether the current execution node is a turning point is no longer performed.

[0048] Thus, this application provides the triggering conditions for breaking out of the loop to complete the target planning route generation process.

[0049] In some implementations, the step of determining the node closest to the starting node in the first route segment as the new current execution node further includes:

[0050] When the current execution node is the starting node, the target planned route is determined, and the process of confirming whether the current execution node is a turning point is no longer performed.

[0051] Thus, this application provides the triggering conditions for breaking out of the loop to complete the target planning route generation process.

[0052] In some implementations, determining the optimization effect of the first route segment according to the preset strategy includes:

[0053] Confirm whether the first route segment is detected as intersecting with obstacle markers in the preset map:

[0054] If the first route segment is detected as intersecting with an obstacle marker:

[0055] Return to the connection between the currently executing node and all nodes preceding the current node to determine the first route segment.

[0056] Thus, this application provides a method for handling situations where the first route segment does not meet actual operating conditions when the nodes on the planned route are turning points.

[0057] In some implementations, confirming whether the first route segment is detected as intersecting with an obstacle marker in a preset map further includes:

[0058] If the first route segment is detected as not intersecting with the obstacle marker:

[0059] The first route segment is identified as part of the target planned route.

[0060] Thus, this application defines a method for determining a portion of the target planned route when the nodes on the planned route are turning points, provided that the first route segment meets the actual operating conditions.

[0061] The route planning device of this application includes:

[0062] The function determination module is used to determine the evaluation function based on the A* programming algorithm and the map;

[0063] The route planning module is used to determine the preliminary planned route based on the evaluation function;

[0064] The route optimization module is used to remove redundant turning points in the preliminary planned route and determine the target planned route based on the preset strategy and the preliminary planned route.

[0065] The path planning system of this application includes the route planning device as described above, as well as the sensing device and the flight control device.

[0066] The unmanned aerial vehicle (UAV) device of this application includes a processor and a memory, wherein the memory stores a computer program, and when the computer program is executed by the processor, it implements the above-described method.

[0067] The computer-readable storage medium of this application stores a computer program that, when executed by one or more processors, implements the above-described method.

[0068] Additional aspects and advantages of embodiments of this application will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of embodiments of this application. Attached Figure Description

[0069] The above and / or additional aspects and advantages of this application will become apparent and readily understood from the description of the embodiments taken in conjunction with the following drawings, wherein:

[0070] Figure 1 This is a flowchart illustrating the route planning method based on the A* programming algorithm provided in this application;

[0071] Figure 2 This is a flowchart illustrating the route planning method based on the A* programming algorithm provided in this application;

[0072] Figure 3 This is a flowchart illustrating the route planning method based on the A* programming algorithm provided in this application;

[0073] Figure 4 This is a schematic diagram illustrating an application scenario of the route planning method based on the A* programming algorithm provided in this application;

[0074] Figure 5 This is a schematic diagram illustrating an application scenario of the route planning method based on the A* programming algorithm provided in this application;

[0075] Figure 6 This is a schematic diagram of the route planning device provided in this application. Detailed Implementation

[0076] The embodiments of the technical solution of this application will now be described in detail with reference to the accompanying drawings. These embodiments are only used to more clearly illustrate the technical solution of this application and are therefore merely examples, and should not be used to limit the scope of protection of this application.

[0077] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application pertains; the terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the application; the terms “comprising” and “having”, and any variations thereof, in the specification, claims, and foregoing description of the drawings are intended to cover non-exclusive inclusion.

[0078] In the description of the embodiments of this application, technical terms such as "first" and "second" are used only to distinguish different objects and should not be construed as indicating or implying relative importance or implicitly specifying the number, specific order, or primary and secondary relationship of the indicated technical features. In the description of the embodiments of this application, "multiple" means two or more, unless otherwise explicitly defined.

[0079] In this document, the term "embodiment" means that a particular feature, structure, or characteristic described in connection with an embodiment may be included in at least one embodiment of this application. The appearance of this phrase in various places throughout the specification does not necessarily refer to the same embodiment, nor is it a separate or alternative embodiment mutually exclusive with other embodiments. It will be explicitly and implicitly understood by those skilled in the art that the embodiments described herein can be combined with other embodiments.

[0080] In the description of the embodiments in this application, the term "and / or" is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, and B existing alone. Additionally, the character " / " in this document generally indicates that the preceding and following related objects have an "or" relationship.

[0081] In the description of the embodiments of this application, the term "multiple" refers to two or more (including two), similarly, "multiple sets" refers to two or more (including two sets), and "multiple pieces" refers to two or more (including two pieces).

[0082] In the description of the embodiments of this application, unless otherwise expressly specified and limited, technical terms such as "installation," "connection," "joining," and "fixing" should be interpreted broadly. For example, they can refer to a fixed connection, a detachable connection, or an integral part; they can refer to a mechanical connection or an electrical connection; they can refer to a direct connection or an indirect connection through an intermediate medium; they can refer to the internal communication of two components or the interaction between two components. For those skilled in the art, the specific meaning of the above terms in the embodiments of this application can be understood according to the specific circumstances.

[0083] like Figure 1 As shown, this application provides a route planning method based on the A* programming algorithm, including:

[0084] 01: Determine the evaluation function based on the A* programming algorithm and the map;

[0085] 02: Determine the preliminary planned route based on the evaluation function;

[0086] 03: Based on the preset strategy and the preliminary route plan, remove redundant objects in the preliminary route plan and determine the target route plan.

[0087] This application also provides a route planning device 10. The route planning method based on the A* programming algorithm of this application can be implemented by the route planning device 10. Specifically, the route planning device 10 includes: a function determination module 11, a route planning module 12, and a route optimization module 13. The function determination module 11 is used to determine an evaluation function based on the A* programming algorithm and a map; the route planning module 12 is used to determine a preliminary planned route based on the evaluation function; and the route optimization module 13 is used to remove redundant turning points in the preliminary planned route based on a preset strategy and the preliminary planned route to determine the target planned route.

[0088] This application also provides a drone device, including a memory and a processor. Specifically, the memory stores a computer program, and the processor is used to determine an evaluation function based on the A* programming algorithm and a map, to determine a preliminary planned route based on the evaluation function, and to remove redundant turning points in the preliminary planned route based on a preset strategy and the preliminary planned route to determine a target planned route.

[0089] Specifically, the A* programming algorithm is commonly used for planning routes in UAV inspections of power lines. This application proposes improvements to the A* programming algorithm to reduce redundant objects in the determined target route, especially addressing the root cause of inflection points. To achieve this technical objective, further optimization should first be performed based on the evaluation function given in the A* programming algorithm. Since the traditional A* algorithm only uses a heuristic direct search method to find the shortest path, the algorithm has poor adaptability in different environments. During the search process, to ensure the shortest path, the algorithm generates more inflection points with a large total inflection angle, resulting in an uneven planned path and long pathfinding time. Therefore, multiple search modes can be provided for the evaluation function in the A* algorithm, improving the flexibility of the heuristic search method and providing multiple sets of parameters to reduce the number of inflection points in the searched path compared to the traditional A* algorithm. Although the number of turning points in the preliminary planned route obtained from the optimized evaluation function is less than that of the traditional A* algorithm, it is still insufficient to meet the actual needs. Therefore, a preset strategy is needed to further optimize and remove redundant turning points in the preliminary planned route to make the route smoother, reduce the total length of the route, thereby saving drone energy consumption, improving the completion rate, and avoiding problems such as drone crashes due to energy exhaustion.

[0090] In summary, this application modifies and optimizes the evaluation function provided by the A* planning algorithm based on the actual situation shown on the map. A preliminary planned route is then determined using this modified and optimized evaluation function. A preset optimization strategy is then used to further refine and correct the preliminary planned route, removing redundant turning points, redundant route nodes, and other redundant objects to determine the final target planned route. Through this method, this application can determine an optimized planned route based on the A* algorithm, removing redundant turning points and other objects, reducing the total turning angle, and further improving path smoothness. This simple and efficient method reduces the energy consumption of UAV flight, preventing UAV crashes caused by excessive energy consumption.

[0091] In some implementations, step 01 includes:

[0092] 011: Based on the evaluation function formula of the A* programming algorithm, add weight parameters to obtain the preliminary evaluation function;

[0093] 012: Based on the map, test the preliminary evaluation function and determine the evaluation function.

[0094] In some implementations, the function determination module 11 is used to add weight parameters according to the evaluation function formula of the A* programming algorithm to obtain a preliminary evaluation function, and to test the preliminary evaluation function according to the map to determine the evaluation function.

[0095] In some implementations, the processor is used to add weight parameters to obtain a preliminary evaluation function based on the evaluation function formula of the A* programming algorithm, and to test the preliminary evaluation function based on a map to determine the final evaluation function.

[0096] Specifically, to improve the flexibility of the search by providing multiple search modes for the evaluation function formula of the A* programming algorithm, this application adopts the method of adding weight coefficients to the formula. By adjusting the values ​​of the weight coefficients, the evaluation function is changed, thus providing multiple possibilities for the evaluation function. The final parameter values ​​of the evaluation function need to be evaluated and determined through testing; therefore, we can test it based on map examples. In some examples, the general formula of the preliminary evaluation function is: Where f(n) is the estimated total cost from the initial state to the target state via state n, g(n) is the actual cost from the initial state to state n, h(n) is the estimated cost of the optimal route from state n to the target state, a and b are weight parameters, d is the straight-line distance from the current node to the target position, and L is the straight-line distance between the starting position and the ending position. Before testing, the values ​​of multiple sets of parameters are compiled into ordered pairs (a, b) and substituted into the general formula to determine multiple preliminary evaluation functions. Then, a grid map with a size of 30×30 and an obstacle ratio of 0.4 is used to test the preliminary evaluation functions, and the preliminary evaluation function with the best test results is determined as the evaluation function actually used.

[0097] Thus, this application adds weight parameters to the evaluation function provided by the A* programming algorithm, and tests evaluation functions with different weight parameters based on the map to select the evaluation function that is finally put into application.

[0098] In some implementations, the expression for the preliminary evaluation function is as follows:

[0099]

[0100] in:

[0101] f(n) is the estimated total cost from the initial state to the target state via state n, g(n) is the actual cost from the initial state to state n, h(n) is the estimated cost of the optimal route from state n to the target state, a and b are weight parameters, d is the straight-line distance from the current node to the target position, and L is the straight-line distance between the starting position and the ending position.

[0102] In some implementations, the expression for the preliminary evaluation function is as follows:

[0103]

[0104] in:

[0105] f(n) is the estimated total cost from the initial state to the target state via state n, g(n) is the actual cost from the initial state to state n, h(n) is the estimated cost of the optimal route from state n to the target state, a and b are weight parameters, d is the straight-line distance from the current node to the target position, L is the straight-line distance between the starting position and the ending position, and N is a positive integer greater than 1.

[0106] Specifically, the traditional A* programming algorithm gives the evaluation function as f(n) = g(n) + h(n), while current related technologies generally use f(n) = g(n) + Wh(n), where W is the weight parameter. Neither of these provides sufficient flexibility for the current technical requirements. Therefore, this application sets two weight parameters to further improve the search flexibility of the evaluation function and reduce the number of inflection points. Furthermore, considering the speed and accuracy of the algorithm's search, this application proposes a segmented approach to the evaluation function, as shown in the formula above. The function is segmented at a point between the start and end points. The segment closer to the start point has the smallest weight coefficient to ensure path search speed, while the segment closer to the end point ensures path search accuracy. The value of N can be changed according to the actual situation; in some examples, 3 is sufficient.

[0107] Thus, this application provides general formulas for different preliminary evaluation functions that can be adjusted according to different needs.

[0108] In some implementations, such as Figure 2 As shown, step 012 includes:

[0109] 0121: Identify multiple preliminary evaluation functions to be tested;

[0110] 0122: Determine the test route based on the preliminary evaluation function to be tested and the map;

[0111] 0123: In response to the test operation, perform multiple tests on the test route to obtain the preset evaluation index value of the test route;

[0112] 0124: Determine the test results of the preliminary evaluation function to be tested based on the preset evaluation index values;

[0113] 0125: In response to the function generation operation, the preliminary evaluation function to be tested with the optimal preset evaluation index value is determined as the evaluation function.

[0114] In some implementations, the function determination module 11 is used to determine multiple preliminary evaluation functions to be tested, and to determine a test route based on the preliminary evaluation functions to be tested and a map, and to perform multiple tests on the test route in response to a test operation to obtain a preset evaluation index value for the test route, and to determine the test result of the preliminary evaluation functions to be tested based on the preset evaluation index value, and to determine the preliminary evaluation function to be tested with the optimal preset evaluation index value as the evaluation function in response to a function generation operation.

[0115] In some implementations, the processor is configured to determine a plurality of preliminary evaluation functions to be tested, and to determine a test route based on the preliminary evaluation functions to be tested and a map, and to perform multiple tests on the test route in response to a test operation to obtain a preset evaluation index value for the test route, and to determine the test result of the preliminary evaluation functions to be tested based on the preset evaluation index value, and to determine the preliminary evaluation function to be tested with the optimal preset evaluation index value as the evaluation function in response to a function generation operation.

[0116] Specifically, the process of determining the evaluation function can be manifested as follows: using multiple sets of preliminary evaluation functions with different weight parameters as test objects, evaluating the test routes obtained by the preliminary evaluation functions in a pre-set map with a specific test environment, obtaining pre-set evaluation indicators, and judging the planning effect of the preliminary evaluation functions based on these indicators. The pre-set evaluation indicators generally include the number of nodes traversed, the average search time, and the relative length of the route. The number of nodes traversed has an optimal range, and the shorter the average search time and the relative length of the route, the better. Finally, the set of preliminary evaluation functions with the optimal evaluation indicators is comprehensively evaluated and determined as the evaluation function for practical application. In some examples, the general formula of the preliminary evaluation function is adopted. A 30×30 grid map with an obstacle ratio of 0.4 was used to test each generated test route 6 times. Three evaluation metrics were obtained: the number of nodes traversed, the average search time, and the relative length of the route. The conclusion was that the preliminary function performed optimally when a=2, b=1, and N=3. The evaluation function was determined for practical applications.

[0117] Thus, this application can select and determine the evaluation function for practical application by obtaining the preset evaluation index value through testing.

[0118] In some implementations, such as Figure 3 As shown, step 03 includes:

[0119] 0301: Traverse and obtain all nodes on the planned route;

[0120] 0302: Set the final node as the current execution node;

[0121] 0303: Determine if the current execution node is a turning point; otherwise, proceed to step 0304.

[0122] 0304: Connect the previous node of the currently executing node with the next node of the currently executing node to determine the existing route segment;

[0123] 0305: Determine the next node after the currently executing node as the new current executing node;

[0124] 0306: Determine if the currently executing node is the starting node. If not, return to step 0303.

[0125] In some implementations, the route optimization module 13 is used to traverse and obtain all nodes on the planned route, and to determine the final node as the current execution node, and to determine whether the current execution node is a turning point, and to connect the current execution node, the node before the current execution node, and the node after the current execution node to determine an existing route segment, and to determine the node after the current execution node as a new current execution node, and to determine whether the current execution node is a starting node.

[0126] In some implementations, the processor is used to traverse and obtain all nodes on the planned route, and to determine the final node as the current execution node, and to determine whether the current execution node is a turning point, and to connect the current execution node, the previous node of the current execution node and the next node of the current execution node to determine an existing route segment, and to determine the next node of the current execution node as the new current execution node, and to determine whether the current execution node is the starting node.

[0127] Specifically, after determining the initial planned route, redundant turning points need to be removed. First, the initial planned route is traversed to obtain all nodes, with the starting point being the initial node and the ending point being the final node. Then, the final node is used as the current execution node, and a loop is executed to remove redundant turning points throughout the route. If the current execution node is not a turning point, its preceding and following nodes are connected to form an existing route segment, which is part of the target planned route. The next node after the current execution node is then designated as the new current execution node for iterative iteration. After determining the new current execution node, it is necessary to check if the current execution node is the starting node. If it is, otherwise, the iterative process has not ended, and the process returns to check if the current execution node is a turning point to continue optimizing the next segment of the route.

[0128] Thus, this application can determine a portion of the target planned route when the nodes on the planned route are not turning points.

[0129] In some implementations, such as Figure 3 As shown, step 03 also includes:

[0130] 0303: Determine if the current execution node is a turning point; if so, proceed to step 0307.

[0131] 0307: Connect the currently executing node with all nodes preceding it and remove redundant turning points to determine the first route segment;

[0132] 0308: Determine the optimization effect of the first route segment based on the preset strategy;

[0133] 0309: Determine the node closest to the starting node in the first route segment as the new current execution node, and proceed to step 0306;

[0134] 0306: Determine if the currently executing node is the starting node. If not, return to step 0303.

[0135] In some implementations, the route optimization module 13 is also used to connect the current execution node with all nodes before the current execution node and remove redundant turning points to determine the first route segment, and to determine the optimization effect of the first route segment according to a preset strategy, and to determine the node closest to the starting node in the first route segment as the new current execution node.

[0136] In some implementations, the processor is also configured to connect the current execution node with all nodes preceding the current execution node and remove redundant turning points, determine a first route segment, determine the optimization effect of the first route segment according to a preset strategy, and determine the node closest to the starting node in the first route segment as the new current execution node.

[0137] Specifically, if the current execution node is a turning point, then the current execution node and all preceding nodes are connected to form the first route segment. This first route segment should not intersect with obstacles and all redundant turning points have been removed. Then, the first route segment is optimized according to a preset strategy to ensure that it intersects with obstacles and all redundant turning points have been removed. After removing redundant turning points, the node closest to the starting node in the first route segment is determined as the new current execution node. After determining the new current execution node, it is necessary to determine whether the current execution node is the starting node. If it is, otherwise, it means the iterative process has not ended, and the process directly returns to determining whether the current execution node is a turning point to continue optimizing the next route segment.

[0138] Thus, this application can further determine the first route segment when the nodes on the planned route are turning points, in order to obtain the target planned route.

[0139] In some implementations, such as Figure 3 As shown, step 03 also includes:

[0140] 0306: Determine if the currently executing node is the starting node. If so, proceed to step 0310.

[0141] 0310: Determine the target and plan the route.

[0142] In some implementations, the route planning module 13 is also used to determine the target planned route.

[0143] In some implementations, the processor is also used to determine the target planned route.

[0144] Specifically, when the current execution node is the starting node, it means that the optimization and generation process of the target route has ended. Following the direction from the final node to the starting node, when the current execution node is the starting node, no other node can be used as the new current execution node. Therefore, at this point, the conditional loop is broken, and the previously determined route segment and the first route segment are combined using a union operation to finally determine the target route, thus ending the generation process of the target route.

[0145] Thus, this application provides the triggering conditions for breaking out of the loop to complete the target planning route generation process.

[0146] In some implementations, step 0308 includes:

[0147] 03081: Determine whether the first route segment is detected as intersecting with obstacle markers in the preset map. If so, return to step 0307.

[0148] In some implementations, the route planning module 13 is also used to determine whether the first route segment is detected as intersecting with obstacle markers in a preset map.

[0149] In some implementations, the processor is also used to determine whether the first route segment is detected as intersecting with obstacle markers in a preset map.

[0150] Specifically, when generating the first route segment, since it is necessary to simultaneously satisfy the requirements of no collision and removal of redundant turning points, there may be a situation where the local optimum is not the overall optimum. Therefore, it is necessary to perform an additional obstacle intersection detection on the first route segment. If the conditions are not met, it means that the first route segment does not meet the overall optimum and needs to be replanned. Therefore, when it is determined that the first route segment is detected to intersect with the obstacle marker in the preset map, the process is directly returned to the step of determining the first route segment and the first route segment is replanned until the overall optimum is met.

[0151] Thus, this application provides a method for handling situations where the first route segment does not meet actual operating conditions when the nodes on the planned route are turning points.

[0152] In some implementations, step 0308 includes:

[0153] 03081: Determine whether the first route segment is detected as intersecting with obstacle markers in the preset map. If not, proceed to step 03082:

[0154] 03082: The first route segment is identified as part of the target planned route.

[0155] In some implementations, the route planning module 13 is also used to determine the first route segment as part of the target planned route.

[0156] In some implementations, the processor is also configured to determine the first route segment as part of the target planned route.

[0157] Specifically, when generating the first route segment, since it is necessary to simultaneously satisfy the conditions of no collision and removal of redundant turning points, there may be a situation where the local optimum is not the overall optimum. Therefore, it is necessary to perform an additional obstacle intersection detection on the first route segment. If the condition is not met, it means that the first route segment does not meet the overall optimum and needs to be replanned. Therefore, when it is determined that the first route segment does not intersect with the obstacle markers in the preset map, it means that the first route segment meets the conditions of the overall optimum and can be directly identified as part of the target planned route.

[0158] For example, such as Figure 4 and Figure 5 As shown, Figure 4 It is a map representation of the flight path obtained based on the traditional A* programming algorithm, while Figure 5 This is a schematic diagram of the flight path obtained according to the method provided in this application, displayed on a map. It is quite clear that... Figure 5 The trajectory in Figure 4 Compared to smoother curves, it has fewer sharp turning points and a smaller total turning angle, exhibiting a very obvious trajectory characteristic of straightening curves. (The text then abruptly shifts to a seemingly unrelated topic: "Adopting...") Figure 5 The trajectory shown is the same as the one used. Figure 4 Compared to flight, the aforementioned trajectory significantly reduces energy consumption, effectively improving the completion rate and reducing the probability of drone crashes.

[0159] Thus, this application defines a method for determining a portion of the target planned route when the nodes on the planned route are turning points, provided that the first route segment meets the actual operating conditions.

[0160] This application also provides a path planning system, including the route planning device as described above, as well as a sensing device and a flight control device.

[0161] Specifically, the route planning device can be operated in advance on the ground or completed by the UAV during flight. Therefore, the route planning system provided in this application can be installed on the UAV equipment. The route planning device generates the target planned route, and the flight control device controls the UAV to fly according to the target planned route. At the same time, the sensing device collects parameter data of the UAV's surrounding environment during flight, monitors the UAV's flight status, and the collected environmental parameters can also be used as a reference for subsequent replanning of the flight route.

[0162] This application also provides a computer-readable storage medium storing a computer program that, when executed by one or more processors, implements the above-described method.

[0163] Those skilled in the art will understand that all or part of the processes in the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments described above. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The processors involved in the embodiments provided in this application can be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, etc., and are not limited thereto.

[0164] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and not to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. These modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application, and they should all be covered within the scope of the claims and specification of this application. In particular, as long as there is no structural conflict, the various technical features mentioned in the embodiments can be combined in any way. This application is not limited to the specific embodiments disclosed herein, but includes all technical solutions falling within the scope of the claims.

Claims

1. A route planning method based on A* planning algorithm, characterized in that, The method comprises: determining an evaluation function according to the A* planning algorithm and a map; determining a preliminary planning route according to the evaluation function; determining a target planning route by removing redundant objects in the preliminary planning route according to a preset strategy and the preliminary planning route; the determining an evaluation function according to the A* planning algorithm and a map comprises: adding a weight parameter to an evaluation function formula of the A* planning algorithm to obtain a preliminary evaluation function; testing the preliminary evaluation function according to the map to determine the evaluation function; the determining a target planning route by removing redundant objects in the preliminary planning route according to a preset strategy and the preliminary planning route comprises: traversing and obtaining all nodes on the planning route, wherein a starting node is at a starting point and a final node is at an ending point; determining the final node as a current execution node; confirming whether the current execution node is a turning point: if the current execution node is not a turning point: connecting a previous node of the current execution node and a next node of the current execution node to determine a route segment, the route segment being part of the target planning route; determining the next node of the current execution node as a new current execution node; returning to the confirming whether the current execution node is a turning point.

2. The method of claim 1, wherein, The expression of the preliminary evaluation function is as follows: wherein: f(n) is a total cost estimate from an initial state to a target state via a state n, g(n) is an actual cost from the initial state to the state n, h(n) is an optimal route estimate cost from the state n to the target state, a and b are weight parameters, d is a straight-line distance from the current node to the target position, and L is a straight-line distance between a starting position and an ending position.

3. The method of claim 1, wherein, The expression of the preliminary evaluation function is as follows: wherein: f(n) is a total cost estimate from an initial state to a target state via a state n, g(n) is an actual cost from the initial state to the state n, h(n) is an optimal route estimate cost from the state n to the target state, a and b are weight parameters, d is a straight-line distance from the current node to the target position, L is a straight-line distance between a starting position and an ending position, and N is a positive integer greater than 1.

4. The method according to any of claims 1 to 3, characterized in that, the testing the preliminary evaluation function according to the map to determine the evaluation function comprises: determining a plurality of preliminary evaluation functions to be tested, each of the preliminary evaluation functions to be tested having a different weight parameter value; determining a test route according to the preliminary evaluation functions to be tested and the map; in response to a test operation, testing the test route multiple times to obtain a preset evaluation index value of the test route; determining a test result of the preliminary evaluation function to be tested according to the preset evaluation index value; in response to a function generation operation, determining the preliminary evaluation function to be tested with the optimal preset evaluation index value as the evaluation function.

5. The method of claim 1, wherein, the confirming whether the current execution node is a turning point further comprises: if the current execution node is a turning point: connecting the current execution node and all nodes before the current execution node and removing redundant turning points to determine a first route segment; determine an optimization effect of the first route segment according to the preset strategy; determine a node closest to the start node in the first route segment as a new current execution node; return to the confirming whether the current execution node is a turning point.

6. The method of claim 1, wherein, The determining the next node of the current execution node as the new current execution node further includes: when the current execution node is the start node, determine the target planning route, and no longer return to the confirming whether the current execution node is a turning point.

7. The method of claim 5, wherein, The determining the next node of the current execution node as the new current execution node further includes: when the current execution node is the start node, determine the target planning route, and no longer return to the confirming whether the current execution node is a turning point.

8. The method of claim 5, wherein, The determining the optimization effect of the first route segment according to the preset strategy includes: confirm whether the first route segment is detected to intersect with an obstacle identifier in a preset map: if the first route segment is detected to intersect with the obstacle identifier: return to the connecting the current execution node and all nodes before the current execution node to determine the first route segment.

9. The method of claim 8, wherein, The confirming whether the first route segment is detected to intersect with the obstacle identifier in the preset map further includes: if the first route segment is detected not to intersect with the obstacle identifier: determine the first route segment as a part of the target planning route.

10. A route planning apparatus characterized by comprising: The device includes: a function determining module configured to determine an evaluation function according to an A* planning algorithm and a map; a route planning module configured to determine a preliminary planning route according to the evaluation function; a route optimization module configured to remove redundant turning points in the preliminary planning route according to a preset strategy and the preliminary planning route to determine a target planning route.

11. A path planning system characterized by comprising: The system includes the route planning device of claim 10, and a perception device and a flight control device.

12. A drone device, comprising: The UAV device includes a memory and a processor; the memory stores a computer program, and the computer program, when executed by the processor, causes the processor to execute the method of any one of claims 1-9.

13. A computer-readable storage medium, characterized in that, The computer readable storage medium stores a computer program, and the computer program, when executed by one or more processors, implements the method of any one of claims 1-9.

Citation Information

Patent Citations

  • Aircraft redundancy control method based on hybrid multi-target PSO algorithm of preference matrix

    CN110703787A

  • Method and equipment for fusing global path planning and local path planning of mobile robot

    CN113359718A