An intelligent ship path planning algorithm based on ADR-A*
Through the ADR-A*-based path planning algorithm, custom double-layer boundary expansion and adaptive direction restriction priority node search strategy, combined with the full path coverage strategy, the safety, economy and smoothness of path planning in complex marine environments are solved, and efficient path planning is achieved.
Patent Information
- Application Number
- CN202411905088.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-23
- Publication Date
- 2025-08-22
- Estimated Expiration
- 2044-12-23
AI Technical Summary
The existing intelligent ship path planning algorithm is difficult to take into account safety, economy and smoothness in complex marine environments, and the simulation experimental environment is simple, which cannot fully reflect the algorithm's path planning capabilities.
A path planning algorithm based on ADR-A* is adopted to generate comprehensive navigation paths by customizing the two-layer boundary expansion strategy and adaptive direction restriction of priority node search strategy.
Planning a comprehensive path that combines safety, smoothness, economy and efficiency in complex marine environments proves the feasibility and superiority of the algorithm, and provides a path planning solution for intelligent ships in complex environments.
Smart Images

Figure CN119826844B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of intelligent ship path planning, in particular to an intelligent ship path planning algorithm based on ADR-A*. Background Art
[0002] With the continued growth of global trade, rapid technological advancements, and growing awareness of environmental protection, smart ships, as a key vehicle for the digital transformation of the shipping industry, are gradually entering the engineering application stage. Path planning, as one of its core elements, provides a strong guarantee for the safe and efficient navigation of smart ships. Current path planning algorithms primarily optimize single path characteristics, lacking comprehensive navigable paths that balance safety, economy, efficiency, and smoothness. Furthermore, the simulation experimental environment is relatively simple, failing to fully demonstrate the algorithm's path planning capabilities in complex environments. The industrialization of smart ships urgently requires a method for generating comprehensive navigable paths in complex nautical chart environments. Summary of the Invention
[0003] In view of the above problems, the present invention proposes an intelligent ship path planning algorithm based on ADR-A*.
[0004] The technical means adopted in the present invention are as follows:
[0005] An intelligent ship path planning algorithm based on ADR-A* includes the following steps:
[0006] Step 1: Process the obtained chart based on a custom double-layer boundary puffing strategy to obtain a first-layer puffed chart and a second-layer puffed chart;
[0007] Step 2: Use the A* algorithm to perform path planning on the second-layer puffed chart to obtain all the path point data of the second-layer puffed chart. The sub-node list in the A* algorithm is obtained by using an adaptive direction-restricted priority node search strategy.
[0008] Step 3: Calculate the turning point data based on all the obtained path point data, and calculate the key path points using the full path coverage strategy in the first layer of expanded chart based on the obtained turning point data;
[0009] Step 4: Plan the path in the chart environment based on the calculated key path points.
[0010] Furthermore, the customized double-layer boundary expansion strategy includes the following steps:
[0011] Step 10: Binarize the obtained color chart to generate a binary chart;
[0012] Step 11: performing binary data boundary extraction on the binary nautical chart to obtain obstacle boundaries;
[0013] Step 12: Performing a first-layer puffing and a second-layer puffing based on the obstacle boundary to obtain a first-layer puffed chart and a second-layer puffed chart; wherein the distance of the second-layer puffing is greater than the distance of the first-layer puffing.
[0014] Furthermore, the adaptive direction-restricted priority node search strategy in the A* algorithm includes the following steps:
[0015] Step 20: Get the current node coordinates and the end point coordinates;
[0016] Step 21: obtaining a search direction attribute according to the current node coordinates and the end point coordinates, and obtaining a priority node coordinate and a suboptimal node coordinate of the current node coordinate based on the search direction attribute;
[0017] Step 22: Get the coordinates of the current suboptimal node and determine whether the coordinates of the current suboptimal node are the end coordinates. If so, the path planning is completed and the node search ends; if not, execute step 23;
[0018] Step 23: Determine whether the current suboptimal node coordinates are obstacle coordinates. If so, obtain the unreachable priority node coordinates based on the current suboptimal node coordinates and enter them into the unreachable node list before executing step 24. If not, execute step 24 directly.
[0019] Step 24: Determine whether all suboptimal nodes have been traversed. If so, obtain the coordinates of the reachable priority nodes and input them into the reachable node list; if not, return to step 22 and perform the next optimal node determination.
[0020] Furthermore, the search direction attributes include up, down, left, right, upper left, lower left, upper right and lower right;
[0021] The strategy for obtaining the priority node coordinates and suboptimal node coordinates of the current node coordinates based on the search direction attribute is as follows:
[0022] When the search direction attribute is up, the current node coordinates are (x, y), the priority node coordinates are (x-2, y), (x-2, y-1), (x-2, y-2), (x-1, y-2), (x, y-2), (x+1, y-2), (x+2, y), (x+2, y-1), and (x+2, y-2), and the suboptimal node coordinates are (x-1, y), (x-1, y-1), (x, y-1), (x+1, y), and (x+1, y-1);
[0023] When the search direction attribute is down, the current node coordinates are (x, y), the priority node coordinates are (x-2, y), (x-2, y+1), (x-2, y+2), (x-1, y+2), (x, y+2), (x+1, y+2), (x+2, y), (x+2, y+1), and (x+2, y+2), and the suboptimal node coordinates are (x-1, y), (x-1, y+1), (x, y+1), (x+1, y), and (x+1, y+1);
[0024] When the search direction attribute is left, the current node coordinates are (x, y), the priority node coordinates are (x-2, y+2), (x-2, y+1), (x-2, y), (x-2, y-1), (x-2, y-2), (x-1, y+2), (x-1, y-2), (x, y+2), and (x, y-2), and the suboptimal node coordinates are (x-1, y+1), (x-1, y), (x-1, y-1), (x, y+1), and (x, y-1);
[0025] When the search direction attribute is right, the current node coordinates are (x, y), the priority node coordinates are (x, y+2), (x, y-2), (x+1, y+2), (x+1, y-2), (x+2, y+2), (x+2, y+1), (x+2, y), (x+2, y-1), and (x+2, y-2), and the suboptimal node coordinates are (x, y+1), (x, y-1), (x+1, y+1), (x+1, y), and (x+1, y-1);
[0026] When the search direction attribute is upper left, the current node coordinates are (x, y), the priority node coordinates are (x-2, y+2), (x-2, y+1), (x-2, y), (x-2, y-1), (x-2, y-2), (x-1, y-2), (x, y-2), (x+1, y-2), and (x+2, y-2), and the suboptimal node coordinates are (x-1, y+1), (x-1, y), (x-1, y-1), (x, y-1), and (x+1, y-1);
[0027] When the search direction attribute is lower left, the current node coordinates are (x, y), the priority node coordinates are (x-2, y+2), (x-2, y+1), (x-2, y), (x-2, y-1), (x-2, y-2), (x-1, y+2), (x, y+2), (x+1, y+2), and (x+2, y+2), and the suboptimal node coordinates are (x-1, y+1), (x-1, y), (x-1, y-1), (x, y+1), and (x+1, y+1);
[0028] When the search direction attribute is upper right, the current node coordinates are (x, y), the priority node coordinates are (x-2, y-2), (x-1, y-2), (x, y-2), (x+1, y-2), (x+2, y-2), (x+2, y-1), (x+2, y), (x+2, y+1), and (x+2, y+2), and the suboptimal node coordinates are (x-1, y-1), (x, y-1), (x+1, y-1), (x+1, y), and (x+1, y+1);
[0029] When the search direction attribute is lower right, the current node coordinates are (x, y), the priority node coordinates are (x-2, y+2), (x-1, y+2), (x, y+2), (x+1, y+2), (x+2, y+2), (x+2, y+1), (x+2, y), (x+2, y-1) and (x+2, y-2), and the suboptimal node coordinates are (x-1, y+1), (x, y+1), (x+1, y+1), (x+1, y) and (x+1, y-1).
[0030] Furthermore, if the current suboptimal node coordinates are obstacle coordinates, the strategy for obtaining the unreachable priority node coordinates based on the current suboptimal node coordinates is specifically as follows: when the line connecting the current node coordinates and the priority node coordinates passes through the grid corresponding to the current suboptimal node coordinates, the priority node coordinates are the unreachable priority node coordinates.
[0031] Furthermore, the calculation of key path points using the full path coverage strategy includes the following steps:
[0032] Step 300: Obtain any two turning point data, and use the two turning point data as the starting point coordinates (Xs, Ys) and the end point coordinates (Xe, Ye);
[0033] Step 301: Create a list points for storing coverage grid positions;
[0034] Step 302: Calculate the minimum abscissa value Xmin, the maximum abscissa value Xmax, the minimum ordinate value Ymin, the maximum ordinate value Ymax, the absolute value of the abscissa difference Dx, and the absolute value of the ordinate difference Dy based on the starting point coordinates and the end point coordinates;
[0035] Step 303: Determine whether the absolute value of the horizontal coordinate difference Dx is 0. If so, execute step 304; if not, execute step 307.
[0036] Step 304: Initialize the current Y to Ymin;
[0037] Step 305: Obtain the corresponding extended grid coordinates according to the current Y value. The extended grid coordinates are (Xs, Y), (Xs-1, Y), and (Xs+1, Y). Add the extended grid coordinates (Xs, Y), (Xs-1, Y), and (Xs+1, Y) to the list points.
[0038] Step 306: Add 1 to the current Y value and determine whether the added Y value is greater than Ymax. If so, execute step 317; if not, return to step 305 and perform corresponding processing on the added Y value.
[0039] Step 307: Calculate the equation of the line passing through the starting point coordinates (Xs, Ys) and the end point coordinates (Xe, Ye), and obtain the slope K and intercept b of the line equation;
[0040] Step 308: Determine whether Dx is greater than Dy. If so, go to step 309; if not, go to step 313.
[0041] Step 309: Initialize the current X to Xmin;
[0042] Step 310: Calculate the Y value corresponding to the current X value based on the straight line equation;
[0043] Step 311: Round the Y value calculated by the line equation to obtain a rounded Y value round(Y). According to the rounded Y value round(Y), corresponding extended grid coordinates are obtained. The extended grid coordinates are (X, round(Y)), (X, round(Y)-1), and (X, round(Y)+1). The extended grid coordinates (X, round(Y)), (X, round(Y)-1), and (X, round(Y)+1) are added to the list points.
[0044] Step 312: Add 1 to the current X value and determine whether the added X value is greater than Xmax. If so, proceed to step 317; if not, return to step 310 and perform corresponding processing on the added X value.
[0045] Step 313: Initialize the current Y to Ymin;
[0046] Step 314: Calculate the X value corresponding to the current Y value based on the straight line equation;
[0047] Step 315: Round the X value calculated by the line equation to obtain the rounded X value round(X). The corresponding extended grid coordinates are (round(X), Y), (round(X)-1, Y), and (round(X)+1, Y). The extended grid coordinates (round(X), Y), (round(X)-1, Y), and (round(X)+1, Y) are added to the list points.
[0048] Step 316: Add 1 to the current Y value and determine whether the added Y value is greater than Ymax. If so, proceed to step 317; if not, return to step 314 and perform corresponding processing on the added Y value.
[0049] Step 317: Complete points calculation.
[0050] Furthermore, the method of performing path planning processing on the second-layer puffed nautical chart using the A* algorithm to obtain all path point data of the second-layer puffed nautical chart includes the following steps:
[0051] Step 400: Initialize the OPEN table and CLOSE table based on the second-layer expanded chart, and add the starting point as the current node Current to the OPEN table;
[0052] Step 401: Determine whether the OPEN table is empty. If so, determine that the path planning fails and end the path planning. If not, execute step 402.
[0053] Step 402: Determine whether the destination is in the OPEN table. If so, the path planning is successful. If not, execute step 403.
[0054] Step 403: Calculate the F value of the nodes in the OPEN table according to the evaluation function of the A* algorithm, sort them according to the F value, define the node with the smallest value as the current node, and add the current node to the CLOSE table;
[0055] Step 404: According to the positional relationship between the current starting point and the end point, a list of sub-nodes to be detected is calculated based on an adaptive direction-restricted priority node search strategy;
[0056] Step 405: Determine whether the end point is detected during the calculation of the subnodes in step 404. If so, the path planning is successful. If not, proceed to step 406.
[0057] Step 406: Determine whether the current child node is in the CLOSE table. If so, execute step 409; if not, execute step 407.
[0058] Step 407: Determine whether the child node is in the OPEN table. If so, execute step 408. If not, add the current child node to the OPEN table and execute step 409.
[0059] Step 408: Determine whether the current F value of the child node is less than the F value of the node in the OPEN table. If so, update the OPEN table data, mainly including the parent node corresponding to the child node, the F value and the G value, and execute step 409. If not, do not modify the OPEN table data and execute step 409 directly.
[0060] Step 409: Determine whether the traversal of the child nodes is complete. If so, return to step 403 and continue calculating based on the updated OPEN table data. If not, return to step 405 and continue detecting the child nodes.
[0061] Furthermore, the specific process of calculating the turning point data from all the obtained path point data is as follows:
[0062] Calculate the equations of the lines passing through two adjacent path points in sequence. When the slopes of the equations of the two adjacent lines change, the path point where the two lines intersect is the turning point.
[0063] The specific process of calculating key path points using the full path coverage strategy in the first layer of expanded chart is as follows:
[0064] Step 50: Connect the starting point with each turning point in sequence, and determine whether each connection line crosses an obstacle based on the path full coverage strategy. If so, proceed to step 51. If not, determine whether the current turning point is the end point. If so, complete the key path point acquisition. If not, proceed to the next turning point connection.
[0065] Step 51: Use the previous turning point as a new starting point and key path point, and return to step 50.
[0066] Compared with the prior art, the intelligent ship path planning algorithm based on ADR-A* disclosed in the present invention has the following beneficial effects: the intelligent ship path planning algorithm based on ADR-A* disclosed in the present invention performs double-layer boundary expansion on the nautical chart, and adopts an adaptive direction restriction priority node search strategy in the calculation process of the sub-node list in the A* algorithm. At the same time, by calculating turning points and adopting a path full coverage strategy to calculate key path points, path planning in the nautical chart environment is realized, so that the ship path planning algorithm disclosed in the present invention can plan a comprehensive path with safety, smoothness, economy and efficiency in a complex environment, effectively proving the feasibility, rationality and superiority of the algorithm, and can provide a new solution for path planning of intelligent ships in complex marine environments. BRIEF DESCRIPTION OF THE DRAWINGS
[0067] Figure 1This is a flow chart of the ADR-A*-based intelligent ship path planning algorithm disclosed in the present invention;
[0068] Figure 2 This is a flow chart of the custom double-layer boundary expansion strategy disclosed in the present invention;
[0069] Figure 3 It is a schematic diagram of performing double-layer boundary expansion on a nautical chart using the customized double-layer boundary expansion strategy disclosed in the present invention;
[0070] Figure 4 This is a schematic diagram of a puffed chart with one layer of boundaries;
[0071] Figure 5 This is a schematic diagram of the second-layer boundary puffing chart;
[0072] Figure 6 This is a flow chart of the path planning process for the second-layer puffed chart using the A* algorithm disclosed in the present invention;
[0073] Figure 7 This is a flow chart of the adaptive direction-limited priority node search strategy in the present invention;
[0074] Figure 8 A distribution diagram of priority nodes and suboptimal nodes corresponding to eight search direction attributes in the adaptive direction-restricted priority node search strategy of the present invention;
[0075] Figure 9 Schematic diagram of the unreachable situation of the priority node when the suboptimal node in the straight line direction is an obstacle;
[0076] Figure 10 Schematic diagram of the unreachable situation of the priority node when the suboptimal node in the diagonal direction is an obstacle;
[0077] Figure 11 Schematic diagram of the practical application of the adaptive direction-restricted priority node search strategy of the present invention when the search direction attribute is lower left;
[0078] Figure 12 Schematic diagram of the practical application of the adaptive direction-restricted priority node search strategy of the present invention when the search direction attribute is below;
[0079] Figure 13 A schematic diagram showing how to calculate turning points based on path points;
[0080] Figure 14 This is a flow chart of the path full coverage strategy in the present invention;
[0081] Figure 15 Schematic diagram of the full path coverage strategy in the present invention;
[0082] Figure 16A schematic diagram of extracting key nodes in the present invention;
[0083] Figure 17 This is a comparison chart of the optimization effects of path planning based on a custom two-layer expansion strategy and based on the existing expansion strategy;
[0084] Figure 18 For the Sea Figure 1 The simulation experiment results of
[0085] Figure 19 For the Sea Figure 1 Data comparison chart of the middle path;
[0086] Figure 20 For the Sea Figure 2 The simulation experiment results of
[0087] Figure 21 For the Sea Figure 2 Data comparison chart of the paths in the figure. DETAILED DESCRIPTION
[0088] like Figure 1 FIG. 1 is a flow chart of an intelligent ship path planning algorithm based on ADR-A* disclosed in the present invention, which includes the following steps:
[0089] Step 1: Process the obtained chart based on a custom double-layer boundary puffing strategy to obtain a first-layer puffed chart and a second-layer puffed chart;
[0090] Step 2: Use the A* algorithm to perform path planning on the second-layer puffed chart to obtain all the path point data of the second-layer puffed chart. The sub-node list in the A* algorithm is obtained by using an adaptive direction-restricted priority node search strategy.
[0091] Step 3: Calculate the turning point data based on all the obtained path point data, and calculate the key path points using the full path coverage strategy in the first layer of expanded chart based on the obtained turning point data;
[0092] Step 4: Plan the path in the chart environment based on the calculated key path points.
[0093] The intelligent ship path planning algorithm based on ADR-A* disclosed in the present invention performs double-layer boundary expansion on the nautical chart and adopts the Adaptive Direction Restriction Priority-node Search Strategy (ADRPSS) in the calculation process of the sub-node list in the A* algorithm. At the same time, the key path points are calculated by calculating the turning points and adopting the full coverage strategy of the path to realize the path planning in the nautical chart environment. The ship path planning algorithm disclosed in the present invention can plan a comprehensive path with safety, smoothness, economy and efficiency in a complex environment, effectively proving the feasibility, rationality and superiority of the algorithm, and can provide a new solution for the path planning of intelligent ships in complex marine environments. It can quickly plan a navigable path with a small number of turning points and a safe distance from obstacles, which has great safety significance and economic value.
[0094] Furthermore, if Figure 2 As shown, the custom double-layer boundary expansion strategy includes the following steps:
[0095] Step 10: Binarize the obtained color chart to generate a binary chart;
[0096] Step 11: performing binary data boundary extraction on the binary nautical chart to obtain obstacle boundaries;
[0097] Step 12: Performing a first-layer puffing and a second-layer puffing based on the obstacle boundary to obtain a first-layer puffed chart and a second-layer puffed chart; wherein the distance of the second-layer puffing is greater than the distance of the first-layer puffing.
[0098] Specifically, existing ship path planning generally uses the traditional A* algorithm for path planning. The path planned by the traditional A* algorithm is close to the obstacle. In order to improve the safety of the path, the path points need to be kept away from the obstacles. The use of the expansion method can solve the above problems, but there are many path turning nodes in the existing path planning, which does not meet the requirements of smoothness and economy and needs to be optimized. Since the path points are close to the obstacles, the probability of the path crossing the obstacles during optimization is high, and the optimization effect is not good. In response to the above needs, this application proposes a customizable double-layer boundary expansion strategy (CDBES). The specific process of CDBES is to convert the sea Figure 2 Binarization is to perform binarization on the obtained color chart to generate a binary chart. Obstacle boundaries are extracted based on the binary data, and two puffing operations are performed based on this boundary. The size of each puffing layer can be customized according to needs, but the puffing distance of the second layer should be greater than that of the first layer. Figure 3The specific situation of double-layer expansion is shown. Figure 3 The middle white area is the navigable water area, the gray-white area is the island and reef area, and the dark gray area outside the gray-white area is the obstacle boundary. The dark gray area is the first-layer expansion range, which is defined as the warning area in this application. The final path must be outside the warning area to ensure the safety of the path. The light gray area outside the dark gray area is the range between the second-layer expansion and the first-layer expansion (the second-layer expansion includes the first-layer expansion part and the part outside the first-layer expansion). This article defines it as a buffer zone. The buffer zone provides a solution space for eliminating redundant nodes, and the final path can pass through this area. Figure 4 and Figure 5 The figure shows the final generation of two charts using the custom double-layer boundary puffing strategy in this invention: a first-layer puffed chart and a second-layer puffed chart. This application, by using a custom double-layer boundary puffing strategy, offers the following advantages: First, path planning is performed based on the second-layer puffed chart, generating an initial path outside the buffer zone. Second, redundant nodes are eliminated based on the first-layer puffed chart. This now places path points and warning zones within a buffer zone, leaving more room for feasible paths and enabling full path optimization. Ultimately, a path with fewer turning points and no crossings into warning zones is generated, improving path smoothness and safety.
[0099] After performing double-layer boundary puffing processing on the obtained nautical chart based on a custom double-layer boundary puffing strategy, the application uses the A* algorithm to perform path planning processing on the obtained second-layer puffed nautical chart to obtain all the path point data of the second-layer puffed nautical chart. The specific process is as follows:
[0100] like Figure 6 As shown, the method of using the A* algorithm to perform path planning processing on the second-layer puffed nautical chart to obtain all path point data of the second-layer puffed nautical chart includes the following steps:
[0101] Step 400: Initialize the OPEN table and CLOSE table based on the second-layer expanded chart, and add the starting point as the current node Current to the OPEN table;
[0102] Step 401: Determine whether the OPEN table is empty. If so, determine that the path planning fails and end the path planning. If not, execute step 402.
[0103] Step 402: Determine whether the destination is in the OPEN table. If so, the path planning is successful. If not, execute step 403.
[0104] Step 403: Calculate the F value of the nodes in the OPEN table according to the evaluation function of the A* algorithm, sort them according to the F value, define the node with the smallest value as the current node, and add the current node to the CLOSE table;
[0105] Step 404: According to the positional relationship between the current starting point and the end point, a list of sub-nodes to be detected is calculated based on an adaptive direction-restricted priority node search strategy;
[0106] Step 405: Determine whether the end point is detected during the calculation of the subnodes in step 404. If so, the path planning is successful. If not, proceed to step 406.
[0107] Step 406: Determine whether the current child node is in the CLOSE table. If so, execute step 409; if not, execute step 407.
[0108] Step 407: Determine whether the child node is in the OPEN table. If so, execute step 408. If not, add the current child node to the OPEN table and execute step 409.
[0109] Step 408: Determine whether the current F value of the child node is less than the F value of the node in the OPEN table. If so, update the OPEN table data, mainly including the parent node corresponding to the child node, the F value and the G value, and execute step 409. If not, do not modify the OPEN table data and execute step 409 directly.
[0110] Step 409: Determine whether the traversal of the child nodes is complete. If so, return to step 403 and continue calculating based on the updated OPEN table data. If not, return to step 405 and continue detecting the child nodes.
[0111] In this application, the child node list in the A* algorithm is obtained by adopting an adaptive direction-restricted priority node search strategy, such as Figure 7 As shown, it specifically includes the following steps:
[0112] Step 20: Get the current node coordinates and the end point coordinates;
[0113] Step 21: obtaining a search direction attribute according to the current node coordinates and the end point coordinates, and obtaining a priority node coordinate and a suboptimal node coordinate of the current node coordinate based on the search direction attribute;
[0114] Specifically, the search direction attributes include up, down, left, right, upper left, lower left, upper right, and lower right; that is, the end point may be located at different directions of the current node; and the node search is performed based on different directions, specifically using the following strategy:
[0115] The strategy for obtaining the priority node coordinates and suboptimal node coordinates of the current node coordinates based on the search direction attribute is as follows: This patent performs path planning based on a binary image. In computer software, the origin of image processing refers to the upper left corner of the image. When the search direction attribute is upward, the current node coordinates are (x, y), the priority node coordinates are (x-2, y), (x-2, y-1), (x-2, y-2), (x-1, y-2), (x, y-2), (x+1, y-2), (x+2, y), (x+2, y-1) and (x+2, y-2), and the suboptimal node coordinates are (x-1, y), (x-1, y-1), (x, y-1), (x+1, y) and (x+1, y-1);
[0116] When the search direction attribute is down, the current node coordinates are (x, y), the priority node coordinates are (x-2, y), (x-2, y+1), (x-2, y+2), (x-1, y+2), (x, y+2), (x+1, y+2), (x+2, y), (x+2, y+1), and (x+2, y+2), and the suboptimal node coordinates are (x-1, y), (x-1, y+1), (x, y+1), (x+1, y), and (x+1, y+1);
[0117] When the search direction attribute is left, the current node coordinates are (x, y), the priority node coordinates are (x-2, y+2), (x-2, y+1), (x-2, y), (x-2, y-1), (x-2, y-2), (x-1, y+2), (x-1, y-2), (x, y+2), and (x, y-2), and the suboptimal node coordinates are (x-1, y+1), (x-1, y), (x-1, y-1), (x, y+1), and (x, y-1);
[0118] When the search direction attribute is right, the current node coordinates are (x, y), the priority node coordinates are (x, y+2), (x, y-2), (x+1, y+2), (x+1, y-2), (x+2, y+2), (x+2, y+1), (x+2, y), (x+2, y-1), and (x+2, y-2), and the suboptimal node coordinates are (x, y+1), (x, y-1), (x+1, y+1), (x+1, y), and (x+1, y-1);
[0119] When the search direction attribute is upper left, the current node coordinates are (x, y), the priority node coordinates are (x-2, y+2), (x-2, y+1), (x-2, y), (x-2, y-1), (x-2, y-2), (x-1, y-2), (x, y-2), (x+1, y-2), and (x+2, y-2), and the suboptimal node coordinates are (x-1, y+1), (x-1, y), (x-1, y-1), (x, y-1), and (x+1, y-1);
[0120] When the search direction attribute is lower left, the current node coordinates are (x, y), the priority node coordinates are (x-2, y+2), (x-2, y+1), (x-2, y), (x-2, y-1), (x-2, y-2), (x-1, y+2), (x, y+2), (x+1, y+2), and (x+2, y+2), and the suboptimal node coordinates are (x-1, y+1), (x-1, y), (x-1, y-1), (x, y+1), and (x+1, y+1);
[0121] When the search direction attribute is upper right, the current node coordinates are (x, y), the priority node coordinates are (x-2, y-2), (x-1, y-2), (x, y-2), (x+1, y-2), (x+2, y-2), (x+2, y-1), (x+2, y), (x+2, y+1), and (x+2, y+2), and the suboptimal node coordinates are (x-1, y-1), (x, y-1), (x+1, y-1), (x+1, y), and (x+1, y+1);
[0122] When the search direction attribute is lower right, the current node coordinates are (x, y), the priority node coordinates are (x-2, y+2), (x-1, y+2), (x, y+2), (x+1, y+2), (x+2, y+2), (x+2, y+1), (x+2, y), (x+2, y-1), and (x+2, y-2), and the suboptimal node coordinates are (x-1, y+1), (x, y+1), (x+1, y+1), (x+1, y), and (x+1, y-1);
[0123] That is, in this application, based on the positional relationship between the child node and the parent node, the nodes directly adjacent to the parent node within the 8-neighborhood are defined as suboptimal nodes, and the nodes indirectly adjacent to the parent node within the 24-neighborhood and outside the 8-neighborhood are defined as priority nodes. Figure 8 As shown in , the cross pattern part is the suboptimal node, and the diagonal pattern part is the priority node. Through this strategy, the algorithm only searches for the priority nodes during the pathfinding process, and can make adaptive adjustments based on the relative position relationship between the path point and the end point. This search strategy improves the operating efficiency of the path planning algorithm and improves the goal orientation during the search process.
[0124] Step 22: Get the coordinates of the current suboptimal node and determine whether the coordinates of the current suboptimal node are the end coordinates. If so, the path planning is completed and the node search ends; if not, execute step 23;
[0125] Step 23: Determine whether the current suboptimal node coordinates are obstacle coordinates. If so, obtain the unreachable priority node coordinates based on the current suboptimal node coordinates and enter them into the unreachable node list before executing step 24. If not, execute step 24 directly.
[0126] Specifically, if Figure 9 and Figure 10 Figure 2 shows a schematic diagram of determining whether a priority node is feasible in a custom direction-restricted priority node search strategy. When an obstacle is located in the linear or diagonal direction of the node, the three priority nodes corresponding to that direction are all infeasible. Specifically, if the current suboptimal node coordinates are obstacle coordinates, the strategy for obtaining the unreachable priority node coordinates based on the current suboptimal node coordinates is as follows: if the line connecting the current node coordinates and the priority node coordinates passes through the grid corresponding to the current suboptimal node coordinates, the priority node coordinates are considered unreachable.
[0127] Figure 11 and Figure 12 Schematic diagram of the custom direction-restricted priority node search strategy in practical application. Figure 11 and Figure 12 The figure shows the distribution of priority nodes when the destination is located in two different directions and there are obstacles at the suboptimal nodes. Affected by the obstacles, 3 unreachable priority nodes are deleted and 5 reachable priority nodes are retained in both cases.
[0128] Step 24: Determine whether all suboptimal nodes have been traversed. If so, obtain the coordinates of the reachable priority nodes and input them into the reachable node list; if not, return to step 22 and perform the next optimal node determination.
[0129] The present invention obtains all the path point data of the second-layer puffed chart through the above-disclosed ADR-A* algorithm (Adaptive Direction Restriction-A*, ADR-A*). Then, the turning point data is calculated based on the obtained all the path point data. Based on the obtained turning point data, the key path points are calculated in the first-layer puffed chart using a full path coverage strategy. The specific process of calculating the turning point data from all the path point data is as follows: the equations of the lines passing through two adjacent path points are calculated in sequence. When the slopes of the two adjacent line equations change, the path point where the two lines intersect is the turning point, such as Figure 13 In the figure, points A, B, and C are all turning points;
[0130] like Figure 14As shown in Figure 2, the calculation of key path points using the full path coverage strategy includes the following steps:
[0131] Step 300: Obtain any two turning point data, and use the two turning point data as the starting point coordinates (Xs, Ys) and the end point coordinates (Xe, Ye);
[0132] Step 301: Create a list points for storing coverage grid positions;
[0133] Step 302: Calculate the minimum abscissa value Xmin, the maximum abscissa value Xmax, the minimum ordinate value Ymin, the maximum ordinate value Ymax, the absolute value of the abscissa difference Dx, and the absolute value of the ordinate difference Dy based on the starting point coordinates and the end point coordinates;
[0134] Step 303: Determine whether the absolute value of the horizontal coordinate difference Dx is 0. If so, execute step 304; if not, execute step 307.
[0135] Step 304: Initialize the current Y to Ymin;
[0136] Step 305: Obtain the corresponding extended grid coordinates according to the current Y value. The extended grid coordinates are (Xs, Y), (Xs-1, Y), and (Xs+1, Y). Add the extended grid coordinates (Xs, Y), (Xs-1, Y), and (Xs+1, Y) to the list points.
[0137] Step 306: Add 1 to the current Y value and determine whether the added Y value is greater than Ymax. If so, execute step 317; if not, return to step 305 and perform corresponding processing on the added Y value.
[0138] Step 307: Calculate the equation of the line passing through the starting point coordinates (Xs, Ys) and the end point coordinates (Xe, Ye), and obtain the slope K and intercept b of the line equation;
[0139] Step 308: Determine whether Dx is greater than Dy. If so, go to step 309; if not, go to step 313.
[0140] Step 309: Initialize the current X to Xmin;
[0141] Step 310: Calculate the Y value corresponding to the current X value based on the straight line equation;
[0142] Step 311: Round the Y value calculated by the line equation to obtain a rounded Y value round(Y). According to the rounded Y value round(Y), corresponding extended grid coordinates are obtained. The extended grid coordinates are (X, round(Y)), (X, round(Y)-1), and (X, round(Y)+1). The extended grid coordinates (X, round(Y)), (X, round(Y)-1), and (X, round(Y)+1) are added to the list points.
[0143] Step 312: Add 1 to the current X value and determine whether the added X value is greater than Xmax. If so, proceed to step 317; if not, return to step 310 and perform corresponding processing on the added X value.
[0144] Step 313: Initialize the current Y to Ymin;
[0145] Step 314: Calculate the X value corresponding to the current Y value based on the straight line equation;
[0146] Step 315: Round the X value calculated by the line equation to obtain the rounded X value round(X). The corresponding extended grid coordinates are (round(X), Y), (round(X)-1, Y), and (round(X)+1, Y). The extended grid coordinates (round(X), Y), (round(X)-1, Y), and (round(X)+1, Y) are added to the list points.
[0147] Step 316: Add 1 to the current Y value and determine whether the added Y value is greater than Ymax. If so, proceed to step 317; if not, return to step 314 and perform corresponding processing on the added Y value.
[0148] Step 317: Complete points calculation.
[0149] Figure 15 Schematic diagram of the path full coverage strategy (PFCS). Figure 15 The medium gray filled area represents the grid that needs to be checked when judging the safety of the route. Figure 15The schematic diagram shows the grid that needs to be detected when the difference between the horizontal and vertical coordinates of the starting point and the end point is equal. Traditional path planning algorithms usually regard the path as a line segment without width, and only detect whether the points on the line segment encounter obstacles when judging the safety of the path. This method may cause the path to be too close to the obstacle. Therefore, this patent proposes a full path coverage strategy. By treating the path as an area with a certain width rather than a single line, it is more comprehensive when evaluating the path safety, effectively improving the safety of path planning.
[0150] In this application, the specific process of calculating key path points using the full path coverage strategy in the first layer of expanded chart is as follows:
[0151] Step 50: Connect the starting point with each turning point in sequence, and determine whether each connection line crosses an obstacle based on the path full coverage strategy. If so, proceed to step 51. If not, determine whether the current turning point is the end point. If so, complete the key path point acquisition. If not, proceed to the next turning point connection.
[0152] Step 51: Use the previous turning point as a new starting point and key path point, and return to step 50.
[0153] Figure 16 : This figure is a schematic diagram of extracting key nodes. Figure 16 The specific optimization process is as follows: connect the starting point s and turning point p2. If the line segment does not cross an obstacle, remove turning point p1 between the two points. Connect the starting point s and turning point p3. If the line segment crosses an obstacle, p2 becomes the key path point. After extracting the key path point, use this key path point as the new starting point and continue optimizing the path. Connect turning point p2 and end point e, removing turning point p3 between the two points. At this point, the end point is detected, and the path optimization is complete. The optimized path is s-p2-e, with the key path point being p2.
[0154] like Figure 17 The following figure shows the comparison of the optimization effect of path planning based on the customized double-layer puffing strategy and the existing puffing strategy. The solid line path in the figure is the path planned based on the second layer puffing chart of the present invention and the path optimized based on the first layer puffing chart, and the dots are the turning points. The dotted line path is the path planned based on the first layer puffing chart and the path optimized based on the first layer puffing chart, and the dots are the turning points. Figure 17 The results show that the customized double-layer expansion strategy not only keeps the path points away from obstacles, but also fully eliminates redundant nodes, thereby improving the navigability and economy of the path.
[0155] Figure 18 and Figure 20 These are simulation experiment results. Figure 19 and Figure 21All of them are data comparison charts. All experiments in this patent are simulated using QT. The chart size is 500×500, and the algorithm is run 20 times. The simulation results are all close to the average value. The data comparison chart shows that the results are the average value.
[0156] Figure 18 For the sea Figure 1 In the example, the starting point is (32,7) and the end point is (239,469). A comparative experiment is conducted between the ADR-A* algorithm (Adaptive Direction Restriction-A*, ADR-A*) and the A* algorithm, the Bidirectional A* algorithm (Bi-A*), and the Rapidly-exploring Random Trees Star (RRT*). Figure 19 From the data comparison chart, we can see that the number of turning points is optimized by at least 83.33%, the path length is optimized by at least 3.96%, and the running time is optimized by at least 53.6%.
[0157] Figure 20 For the sea Figure 2 In the experiment, the starting point is (60,10) and the end point is (422,482). ADR-A* algorithm is compared with A* algorithm, Bi-A* algorithm and RRT* algorithm. Figure 21 From the data comparison chart, we can see that the number of turning points is optimized by at least 83.33%, the path length is optimized by at least 3.96%, and the running time is optimized by at least 53.6%.
[0158] The intelligent ship path planning algorithm based on the ADR-A* algorithm disclosed in the present invention innovatively proposes three strategies. First, in order to improve the safety of the path, a custom double-layer boundary expansion strategy is proposed. The pre-processing of the nautical chart environment not only retains the real environmental characteristics of the obstacles, but also keeps the path points away from the obstacles, leaving optimization space for the subsequent elimination of redundant points. Secondly, in order to improve the search efficiency of the algorithm, an adaptive direction restriction priority node search strategy is proposed. During the path-finding process, the algorithm adaptively adjusts the position and number of search nodes according to the positional relationship between the path point and the end point and the distribution of obstacles, thereby increasing the accuracy and goal orientation of the path-finding process. Finally, in response to the problem of uneven path, a path full coverage strategy is proposed. The key nodes are extracted, and the path is optimized based on the path full coverage strategy, and finally a shortest path with higher smoothness is obtained.
[0159] This patent discloses an intelligent ship path planning algorithm based on ADR-A*, and conducts comparative experiments with classic path planning algorithms (A*, Bi-A*, RRT*) in different nautical environments. The evaluation indicators of the experiment are path length, number of turning points, and running time. The experimental results show that the three evaluation indicators of the ADR-A* algorithm are all better than those of the other three path planning algorithms, indicating that the algorithm can plan a comprehensive path that is safe, smooth, economical, and efficient in complex environments. This effectively proves the feasibility, rationality, and superiority of the algorithm, and can provide a new solution for path planning of intelligent ships in complex marine environments.
[0160] The above description is only a preferred specific embodiment of the present invention, but the scope of protection of the present invention is not limited thereto. Any technician familiar with the technical field, within the technical scope disclosed by the present invention, who makes equivalent replacements or changes based on the technical solution and inventive concept of the present invention, should be covered by the scope of protection of the present invention.
Claims
1. An intelligent ship path planning algorithm based on ADR-A*, characterized in that: The following steps are involved: Step 1: Process the obtained chart based on a custom double-layer boundary puffing strategy to obtain a first-layer puffed chart and a second-layer puffed chart; Step 2: Use the A* algorithm to perform path planning on the second-layer puffed chart to obtain all the path point data of the second-layer puffed chart. The sub-node list in the A* algorithm is obtained by using an adaptive direction-restricted priority node search strategy. Step 3: Calculate the turning point data based on all the obtained path point data, and calculate the key path points using the full path coverage strategy in the first layer of expanded chart based on the obtained turning point data; Step 4: Plan a path in the chart environment based on the calculated key path points; The adaptive direction-limited priority node search strategy in the A* algorithm includes the following steps: Step 20: Get the current node coordinates and the end point coordinates; Step 21: obtaining a search direction attribute according to the current node coordinates and the end point coordinates, and obtaining a priority node coordinate and a suboptimal node coordinate of the current node coordinate based on the search direction attribute; Step 22: Get the coordinates of the current suboptimal node and determine whether the coordinates of the current suboptimal node are the end coordinates. If so, the path planning is completed and the node search ends; if not, execute step 23; Step 23: Determine whether the current suboptimal node coordinates are obstacle coordinates. If so, obtain the unreachable priority node coordinates based on the current suboptimal node coordinates and enter them into the unreachable node list before executing step 24. If not, execute step 24 directly. Step 24: Determine whether all suboptimal nodes have been traversed. If so, obtain the coordinates of the reachable priority nodes and input them into the reachable node list; if not, return to step 22 and perform the next optimal node determination.
2. The intelligent ship path planning algorithm based on ADR-A* according to claim 1 is characterized in that: The custom double-layer boundary expansion strategy includes the following steps: Step 10: Binarize the obtained color chart to generate a binary chart; Step 11: performing binary data boundary extraction on the binary nautical chart to obtain obstacle boundaries; Step 12: Performing a first-layer puffing and a second-layer puffing based on the obstacle boundary to obtain a first-layer puffed chart and a second-layer puffed chart; wherein the distance of the second-layer puffing is greater than the distance of the first-layer puffing.
3. The intelligent ship path planning algorithm based on ADR-A* according to claim 1, characterized in that: The search direction attributes include up, down, left, right, upper left, lower left, upper right and lower right; The strategy for obtaining the priority node coordinates and suboptimal node coordinates of the current node coordinates based on the search direction attribute is as follows: When the search direction attribute is up, the current node coordinates are (x, y), the priority node coordinates are (x-2, y), (x-2, y-1), (x-2, y-2), (x-1, y-2), (x, y-2), (x+1, y-2), (x+2, y), (x+2, y-1), and (x+2, y-2), and the suboptimal node coordinates are (x-1, y), (x-1, y-1), (x, y-1), (x+1, y), and (x+1, y-1); When the search direction attribute is down, the current node coordinates are (x, y), the priority node coordinates are (x-2, y), (x-2, y+1), (x-2, y+2), (x-1, y+2), (x, y+2), (x+1, y+2), (x+2, y), (x+2, y+1), and (x+2, y+2), and the suboptimal node coordinates are (x-1, y), (x-1, y+1), (x, y+1), (x+1, y), and (x+1, y+1); When the search direction attribute is left, the current node coordinates are (x, y), the priority node coordinates are (x-2, y+2), (x-2, y+1), (x-2, y), (x-2, y-1), (x-2, y-2), (x-1, y+2), (x-1, y-2), (x, y+2), and (x, y-2), and the suboptimal node coordinates are (x-1, y+1), (x-1, y), (x-1, y-1), (x, y+1), and (x, y-1); When the search direction attribute is right, the current node coordinates are (x, y), the priority node coordinates are (x, y+2), (x, y-2), (x+1, y+2), (x+1, y-2), (x+2, y+2), (x+2, y+1), (x+2, y), (x+2, y-1), and (x+2, y-2), and the suboptimal node coordinates are (x, y+1), (x, y-1), (x+1, y+1), (x+1, y), and (x+1, y-1); When the search direction attribute is upper left, the current node coordinates are (x, y), the priority node coordinates are (x-2, y+2), (x-2, y+1), (x-2, y), (x-2, y-1), (x-2, y-2), (x-1, y-2), (x, y-2), (x+1, y-2), and (x+2, y-2), and the suboptimal node coordinates are (x-1, y+1), (x-1, y), (x-1, y-1), (x, y-1), and (x+1, y-1); When the search direction attribute is lower left, the current node coordinates are (x, y), the priority node coordinates are (x-2, y+2), (x-2, y+1), (x-2, y), (x-2, y-1), (x-2, y-2), (x-1, y+2), (x, y+2), (x+1, y+2), and (x+2, y+2), and the suboptimal node coordinates are (x-1, y+1), (x-1, y), (x-1, y-1), (x, y+1), and (x+1, y+1); When the search direction attribute is upper right, the current node coordinates are (x, y), the priority node coordinates are (x-2, y-2), (x-1, y-2), (x, y-2), (x+1, y-2), (x+2, y-2), (x+2, y-1), (x+2, y), (x+2, y+1), and (x+2, y+2), and the suboptimal node coordinates are (x-1, y-1), (x, y-1), (x+1, y-1), (x+1, y), and (x+1, y+1); When the search direction attribute is lower right, the current node coordinates are (x, y), the priority node coordinates are (x-2, y+2), (x-1, y+2), (x, y+2), (x+1, y+2), (x+2, y+2), (x+2, y+1), (x+2, y), (x+2, y-1) and (x+2, y-2), and the suboptimal node coordinates are (x-1, y+1), (x, y+1), (x+1, y+1), (x+1, y) and (x+1, y-1).
4. The intelligent ship path planning algorithm based on ADR-A* according to claim 3 is characterized in that: If the current suboptimal node coordinates are obstacle coordinates, the strategy for obtaining the unreachable priority node coordinates based on the current suboptimal node coordinates is as follows: when the line connecting the current node coordinates and the priority node coordinates passes through the grid corresponding to the current suboptimal node coordinates, the priority node coordinates become the unreachable priority node coordinates.
5. The intelligent ship path planning algorithm based on ADR-A* according to claim 1, characterized in that: The calculation of key path points using the full path coverage strategy includes the following steps: Step 300: Obtain any two turning point data, and use the two turning point data as the starting point coordinates (Xs, Ys) and the end point coordinates (Xe, Ye) respectively; Step 301: Create a list points for storing coverage grid positions; Step 302: Calculate the minimum abscissa value Xmin, the maximum abscissa value Xmax, the minimum ordinate value Ymin, the maximum ordinate value Ymax, the absolute value of the abscissa difference Dx, and the absolute value of the ordinate difference Dy based on the starting point coordinates and the end point coordinates; Step 303: Determine whether the absolute value of the horizontal coordinate difference Dx is 0. If so, execute step 304; if not, execute step 307. Step 304: Initialize the current Y to Ymin; Step 305: Obtain the corresponding extended grid coordinates according to the current Y value. The extended grid coordinates are (Xs, Y), (Xs-1, Y), and (Xs+1, Y). Add the extended grid coordinates (Xs, Y), (Xs-1, Y), and (Xs+1, Y) to the list points. Step 306: Add 1 to the current Y value and determine whether the added Y value is greater than Ymax. If so, execute step 317; if not, return to step 305 and perform corresponding processing on the added Y value. Step 307: Calculate the equation of the line passing through the starting point coordinates (Xs, Ys) and the end point coordinates (Xe, Ye), and obtain the slope K and intercept b of the line equation; Step 308: Determine whether Dx is greater than Dy. If so, go to step 309; if not, go to step 313. Step 309: Initialize the current X to Xmin; Step 310: Calculate the Y value corresponding to the current X value based on the straight line equation; Step 311: Round the Y value calculated by the line equation to obtain a rounded Y value round(Y). According to the rounded Y value round(Y), corresponding extended grid coordinates are obtained. The extended grid coordinates are (X, round(Y)), (X, round(Y)-1), and (X, round(Y)+1). The extended grid coordinates (X, round(Y)), (X, round(Y)-1), and (X, round(Y)+1) are added to the list points. Step 312: Add 1 to the current X value and determine whether the added X value is greater than Xmax. If so, proceed to step 317; if not, return to step 310 and perform corresponding processing on the added X value. Step 313: Initialize the current Y to Ymin; Step 314: Calculate the X value corresponding to the current Y value based on the straight line equation; Step 315: Round the X value calculated by the line equation to obtain the rounded X value round(X). The corresponding extended grid coordinates are (round(X), Y), (round(X)-1, Y), and (round(X)+1, Y). The extended grid coordinates (round(X), Y), (round(X)-1, Y), and (round(X)+1, Y) are added to the list points. Step 316: Add 1 to the current Y value and determine whether the added Y value is greater than Ymax. If so, proceed to step 317; if not, return to step 314 and perform corresponding processing on the added Y value. Step 317: Complete points calculation.
6. The intelligent ship path planning algorithm based on ADR-A* according to claim 1, characterized in that: The method of performing path planning on the second-layer puffed nautical chart using the A* algorithm to obtain all path point data of the second-layer puffed nautical chart includes the following steps: Step 400: Initialize the OPEN table and CLOSE table based on the second-layer expanded chart, and add the starting point as the current node Current to the OPEN table; Step 401: Determine whether the OPEN table is empty. If so, determine that the path planning fails and end the path planning. If not, execute step 402. Step 402: Determine whether the destination is in the OPEN table. If so, the path planning is successful. If not, execute step 403. Step 403: Calculate the F value of the nodes in the OPEN table according to the evaluation function of the A* algorithm, sort them according to the F value, define the node with the smallest value as the current node, and add the current node to the CLOSE table; Step 404: According to the positional relationship between the current starting point and the end point, a list of sub-nodes to be detected is calculated based on an adaptive direction-restricted priority node search strategy; Step 405: Determine whether the end point is detected during the calculation of the subnodes in step 404. If so, the path planning is successful. If not, proceed to step 406. Step 406: Determine whether the current child node is in the CLOSE table. If so, execute step 409; if not, execute step 407. Step 407: Determine whether the child node is in the OPEN table. If so, execute step 408. If not, add the current child node to the OPEN table and execute step 409. Step 408: Determine whether the current F value of the child node is less than the F value of the node in the OPEN table. If so, update the OPEN table data, mainly including the parent node corresponding to the child node, the F value and the G value, and execute step 409. If not, do not modify the OPEN table data and execute step 409 directly. Step 409: Determine whether the traversal of the child nodes is complete. If so, return to step 403 and continue calculating based on the updated OPEN table data. If not, return to step 405 and continue detecting the child nodes.
7. The intelligent ship path planning algorithm based on ADR-A* according to claim 1, characterized in that: The specific process of calculating the turning point data from all the obtained path point data is as follows: Calculate the equations of the lines passing through two adjacent path points in sequence. When the slopes of the equations of the two adjacent lines change, the path point where the two lines intersect is the turning point. The specific process of calculating key path points using the full path coverage strategy in the first layer of expanded chart is as follows: Step 50: Connect the starting point with each turning point in sequence, and determine whether each connection line crosses an obstacle based on the path full coverage strategy. If so, proceed to step 51. If not, determine whether the current turning point is the end point. If so, complete the key path point acquisition. If not, proceed to the next turning point connection. Step 51: Use the previous turning point as a new starting point and key path point, and return to step 50.
Citation Information
Patent Citations
Path planning method of grid map
CN112683275A
Path planning algorithm based on fusion of few barrier sides and steering cost
CN116976535A