A comprehensive path planning algorithm for unmanned sailboats

By employing a full-coverage path planning algorithm, combined with wind speed sensors and an improved APF algorithm, the problem of unmanned sailboat path planning being affected by the environment was solved, achieving flexible and safe path planning that adapts to changes in wind direction and completes the full-coverage task.

CN119536260BActive Publication Date: 2025-11-14HARBIN ENG UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411632213.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-11-15
Publication Date
2025-11-14
Estimated Expiration
2044-11-15

AI Technical Summary

Technical Problem

Existing unmanned sailboat path planning algorithms are affected by the motion environment and have overly simplistic calculation processes, making them unsuitable for the functional characteristics of unmanned sailboats.

Method used

A full-coverage path planning algorithm is adopted. Wind speed is detected by wind speed sensor, wind direction area is divided according to the speed polar coordinate map of unmanned sailboat, unnavigable grid is disabled, and improved APF algorithm and breadth-first search algorithm are used. Combined with global and local potential fields, the path is planned to avoid obstacles and covered areas and adapt to changes in wind direction.

Benefits of technology

It achieves flexibility and safety in unmanned sailboat path planning, can adapt to complex environments, complete full-coverage tasks, reduce redundancy, and improve task efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119536260B_ABST
    Figure CN119536260B_ABST
Patent Text Reader

Abstract

A full-coverage path planning algorithm for unmanned sailboats includes the following steps: detecting and sensing the actual wind speed via a wind speed sensor; setting the wind direction at the start of the full-coverage task to 0°, and rasterizing the map along directions parallel and perpendicular to the wind direction; assigning values ​​to each node on the raster map to determine if an upwind zone exists; when an upwind zone exists, proceeding to the relatively maximum upwind position, reassigning values ​​to the raster map based on the flight path, and leaving navigation markers along the way; when a dead zone exists on the raster map, the unmanned sailboat leaves the dead zone and repeats the steps; when no dead zone exists on the raster map, the unmanned sailboat proceeds to the node with the largest value among the surrounding feasible raster cells, reassigns values ​​to the raster map, and leaves navigation markers; determining whether the unmanned sailboat has passed through all target areas, thus completing the full-coverage path planning task for the unmanned sailboat.
Need to check novelty before this filing date? Find Prior Art

Description

Technical fields:

[0001] This invention relates to a full-coverage path planning algorithm for unmanned sailboats. Background technology:

[0002] Unmanned sailboats are primarily powered by wind and solar energy, making them suitable for long-term, long-distance monitoring missions. With the increasing demand for marine environmental information, unmanned sailboats have become an important marine monitoring platform, used for marine data collection and environmental monitoring.

[0003] The main tasks of unmanned sailboats include marine monitoring, security patrols, search and rescue missions, scientific research, and resource exploration. They can be used to monitor environmental changes, pollutant dispersion, and ecosystem status in real time, collect data, and generate maps. Security patrols can detect illegal activities or suspicious targets, enhancing marine security. As a prerequisite for unmanned sailboats to perform their missions, path planning is an essential and crucial step. However, existing path planning algorithms are affected by the motion environment, their overall computational process is too simplistic, and they are subject to too many constraints, making them unsuitable for the functional characteristics of unmanned sailboats. Summary of the Invention:

[0004] This invention provides a full-coverage path planning algorithm for unmanned sailboats. The method is rationally designed. It rasterizes the map according to the wind direction at the start of coverage, so that the wind direction at the start of coverage is from the top to the bottom of the raster map. Then, it divides the wind direction into different regions according to the polar coordinate map of the unmanned sailboat's speed. It disables the navigable directions in the eight grids surrounding the current grid, so that the planned path changes with the wind direction, avoiding the influence of the dynamic environment and the constraints of external conditions. It can be fully applied to the functional characteristics of unmanned sailboats and solves the problems existing in the prior art.

[0005] The technical solution adopted by the present invention to solve the above-mentioned technical problems is as follows:

[0006] A comprehensive path planning algorithm for unmanned sailboats, the path planning algorithm comprising the following steps:

[0007] S1 detects and senses the actual wind speed via a wind speed sensor;

[0008] S2, set the wind direction to 0° when the full coverage mission begins, and rasterize the map along the directions parallel and perpendicular to the wind direction, and then disable some of the eight grids around the unmanned sailboat according to the unmanned sailboat VPP curve.

[0009] S3 assigns a value to each node on the grid map, and then determines whether there is an upwind area on the grid map;

[0010] S4. When there is an upwind area on the grid map, proceed to the position with the maximum relative upwind, reassign the grid map according to the track, and leave a navigation mark along the way; when there is no upwind area on the grid map, determine whether there is a dead zone on the grid map.

[0011] S5, when there is a dead zone on the grid map, the unmanned sailboat leaves the dead zone and repeats step S3; when there is no dead zone on the grid map, the unmanned sailboat goes to the node with the largest value among the surrounding feasible grids, reassigns the grid map, and leaves a sailing mark.

[0012] S6 determines whether the unmanned sailboat has passed through all target areas, completing the full-coverage path planning task for the unmanned sailboat.

[0013] Assigning values ​​to each node on a raster map involves the following steps:

[0014] S3.1, Based on the polar coordinate map of the unmanned sailboat speed, divide the wind direction into different areas and disable the grids in the eight grids around the current grid that are not navigable in the direction of sailing.

[0015] S3.2, set the wind direction from top to bottom of the map to 0°, and set the counterclockwise direction to the positive direction, thereby dividing the wind direction into eight directions and determining eight main wind directions in the grid map;

[0016] S3.3, when the wind direction θ is in the range of [-30°, 30°], [60°, 120°], [150°, 210°], [240°, 300°], the nodes in the grid map need to be assigned values ​​before coverage begins and after each step during coverage, defining the values ​​at the obstacle locations:

[0017] f(x, y) = -1

[0018] The formula for assigning values ​​at non-obstacle locations is:

[0019]

[0020] In the formula: x and y represent the horizontal and vertical coordinates of the map; X is the total number of grid cells counted along the prevailing wind direction; a is the sequence number of the current grid cell among the grid cells counted along the prevailing wind direction; Y is the total number of grid cells in a continuous string of grid cells counted perpendicular to the prevailing wind direction and not interrupted by obstacles, already sailed grid cells, or the current sailboat position; b is the sequence number of the current grid cell in a continuous string of grid cells counted perpendicular to the wind direction and not interrupted by obstacles, already sailed grid cells, or the current sailboat position; after the sailboat enters a grid cell, the current grid cell value is decremented by 1;

[0021] S3.4 When the wind direction θ changes to a region outside of [-30°, 30°], [60°, 120°], [150°, 210°], [240°, 300°], if the region where the previous wind direction was located is a neighboring region of the current region, then the value is assigned according to the previous assignment method; otherwise, the value is randomly assigned according to the assignment method of one of the two neighboring regions.

[0022] The improved APF algorithm is used to reach the position of relative maximum upwind. In the improved APF algorithm, the potential field is divided into the global potential field and the local potential field. During each movement, the node with the lowest total potential energy among the eight surrounding nodes is selected.

[0023] The overall situation field includes the attractive potential field generated by the target point, the repulsive potential field generated by obstacles and the covered area;

[0024] To attract the unmanned sailboat to the target point, a linear potential field P is established for each grid node P on the map as follows: g :

[0025] P g =G g ·dist(P,P goal )

[0026] G g It is the attractive gradient dist(P,P) goal () is a point-to-point P goal Euclidean distance;

[0027] To allow the unmanned sailboat to avoid obstacles, at obstacle node P obst Add a repulsive potential field P at the location o ;

[0028]

[0029] Where k1 is an adjustable parameter.

[0030] To prevent unmanned sailboats from entering covered areas, at the covered node P covered Add a repulsive potential field P at the location c ;

[0031]

[0032] In the formula: k2 is an adjustable parameter.

[0033] The local potential field is used to make the planned path conform to the motion law of the unmanned sailboat. The local potential field includes a headwind potential field and a hysteresis potential field. The headwind potential field is used to prevent the unmanned sailboat from sailing in the navigation restriction area. The hysteresis potential field is used to reduce the turning of the unmanned sailboat during the forward movement, so that the unmanned sailboat can reach the target point faster.

[0034] The headwind field is centered at point P where the sailboat is currently located, and moves with the sailboat's position and changes direction with changes in wind direction; any point P within the navigation restriction zone... w Wind potential energy P at the location up Size and P w The distance to point P is proportional; outside the navigation restriction area, the wind potential energy is 0.

[0035]

[0036] Among them, G up It is the gradient of wind potential energy in the restricted navigation area, and φ represents the true wind angle;

[0037] The hysteresis potential field is centered at point P where the sailboat is currently located, and moves with the sailboat's position, changing direction with the sailboat's heading Ψ. The hysteresis potential field is set to be 0 in the direction with the heading at the current moment, and any point P in the remaining region... w hysteresis potential energy P at the point h Size and P w The distance to point P is directly proportional:

[0038]

[0039] Among them, G h It is a parameter that limits the sailboat's turning.

[0040] The breadth-first search algorithm is used to find the nearest grid cell with a gradient value greater than 0. First, a queue is created and the current node is added to the queue. Then, a node is taken out of the queue and its neighboring nodes are checked. These neighboring nodes are the nodes directly adjacent to the current node and are added to the queue, but they are not added to the queue when an obstacle is encountered. This process is repeated, continuously taking nodes out of the queue and exploring their neighboring nodes. After finding the target grid cell, the improved APF method is used to go to the grid cell.

[0041] When an unmanned sailboat approaches a covered area, the heading vector is decomposed into a direction parallel to the prevailing wind direction used for the assignment and a direction perpendicular to the prevailing wind direction. If there are other grids to move through, the sailing track that crosses the already sailed route in the direction perpendicular to the prevailing wind direction and is the same as the heading direction of the covered route is not adopted.

[0042] This invention employs the aforementioned structure. By setting the wind direction to 0° at the start of the full coverage task, the map is rasterized along directions parallel and perpendicular to the wind direction. Then, based on the unmanned sailboat's VPP curve, some grids among the eight surrounding grids are disabled. By assigning values ​​to each node on the raster map, it is determined whether an upwind area exists. Based on the unmanned sailboat's speed polar coordinates, different regions are divided according to the wind direction, and grids in the eight surrounding grids that are not navigable are disabled. By determining whether the unmanned sailboat has passed through all target areas, the full coverage path planning task for the unmanned sailboat is completed. If not, the actual wind speed is detected by a wind speed sensor, and the previous steps are repeated. This invention offers advantages such as flexibility, practicality, safety, and reliability. Attached image description:

[0043] Figure 1 This is a polar coordinate diagram of sailboat speed provided in an embodiment of the present invention;

[0044] Figure 2 This is a schematic diagram of disabling grids based on wind direction provided in an embodiment of the present invention.

[0045] Figure 3 This is a flowchart of the algorithm provided in an embodiment of the present invention;

[0046] Figure 4 This is a schematic diagram of wind direction division provided in an embodiment of the present invention.

[0047] Figure 5 This is a schematic diagram of the algorithm assignment provided in the embodiment of the present invention.

[0048] Figure 6 This is a schematic diagram of the gradient change in the assignment process provided in an embodiment of the present invention. Detailed implementation method:

[0049] To clearly illustrate the technical features of this solution, the invention will be described in detail below through specific implementation methods and in conjunction with the accompanying drawings.

[0050] like Figure 1-6 As shown, a full-coverage path planning algorithm for unmanned sailboats includes the following steps:

[0051] S1 detects and senses the actual wind speed via a wind speed sensor;

[0052] S2, set the wind direction to 0° when the full coverage mission begins, and rasterize the map along the directions parallel and perpendicular to the wind direction, and then disable some of the eight grids around the unmanned sailboat according to the unmanned sailboat VPP curve.

[0053] S3 assigns a value to each node on the grid map, and then determines whether there is an upwind area on the grid map;

[0054] S4. When there is an upwind area on the grid map, proceed to the position with the maximum relative upwind, reassign the grid map according to the track, and leave a navigation mark along the way; when there is no upwind area on the grid map, determine whether there is a dead zone on the grid map.

[0055] S5, when there is a dead zone on the grid map, the unmanned sailboat leaves the dead zone and repeats step S3; when there is no dead zone on the grid map, the unmanned sailboat goes to the node with the largest value among the surrounding feasible grids, reassigns the grid map, and leaves a sailing mark.

[0056] S6 determines whether the unmanned sailboat has passed through all target areas, completing the full-coverage path planning task for the unmanned sailboat.

[0057] Assigning values ​​to each node on a raster map involves the following steps:

[0058] S3.1, Based on the polar coordinate map of the unmanned sailboat speed, divide the wind direction into different areas and disable the grids in the eight grids around the current grid that are not navigable in the direction of sailing.

[0059] S3.2, set the wind direction from top to bottom of the map to 0°, and set the counterclockwise direction to the positive direction, thereby dividing the wind direction into eight directions and determining eight main wind directions in the grid map;

[0060] S3.3, when the wind direction θ is in the range of [-30°, 30°], [60°, 120°], [150°, 210°], [240°, 300°], the nodes in the grid map need to be assigned values ​​before coverage begins and after each step during coverage, defining the values ​​at the obstacle locations:

[0061] f(x, y) = -1

[0062] The formula for assigning values ​​at non-obstacle locations is:

[0063]

[0064] In the formula: x and y represent the horizontal and vertical coordinates of the map; X is the total number of grid cells counted along the prevailing wind direction; a is the sequence number of the current grid cell among the grid cells counted along the prevailing wind direction; Y is the total number of grid cells in a continuous string of grid cells counted perpendicular to the prevailing wind direction and not interrupted by obstacles, already sailed grid cells, or the current sailboat position; b is the sequence number of the current grid cell in a continuous string of grid cells counted perpendicular to the wind direction and not interrupted by obstacles, already sailed grid cells, or the current sailboat position; after the sailboat enters a grid cell, the current grid cell value is decremented by 1;

[0065] S3.4 When the wind direction θ changes to a region outside of [-30°, 30°], [60°, 120°], [150°, 210°], [240°, 300°], if the region where the previous wind direction was located is a neighboring region of the current region, then the value is assigned according to the previous assignment method; otherwise, the value is randomly assigned according to the assignment method of one of the two neighboring regions.

[0066] The improved APF algorithm is used to reach the position of relative maximum upwind. In the improved APF algorithm, the potential field is divided into the global potential field and the local potential field. During each movement, the node with the lowest total potential energy among the eight surrounding nodes is selected.

[0067] The overall situation field includes the attractive potential field generated by the target point, the repulsive potential field generated by obstacles and the covered area;

[0068] To attract the unmanned sailboat to the target point, a linear potential field P is established for each grid node P on the map as follows: g :

[0069] P g =G g ·dist(P,P goal )

[0070] G g It is the attractive gradient dist(P,Pt) goal () is a point-to-point P goal Euclidean distance;

[0071] To allow the unmanned sailboat to avoid obstacles, at obstacle node P obst Add a repulsive potential field P at the location o ;

[0072]

[0073] Where k1 is an adjustable parameter.

[0074] To prevent unmanned sailboats from entering covered areas, at the covered node P covered Add a repulsive potential field P at the location c ;

[0075]

[0076] In the formula: k2 is an adjustable parameter.

[0077] The local potential field is used to make the planned path conform to the motion law of the unmanned sailboat. The local potential field includes a headwind potential field and a hysteresis potential field. The headwind potential field is used to prevent the unmanned sailboat from sailing in the navigation restriction area. The hysteresis potential field is used to reduce the turning of the unmanned sailboat during the forward movement, so that the unmanned sailboat can reach the target point faster.

[0078] The headwind field is centered at point P where the sailboat is currently located, and moves with the sailboat's position and changes direction with changes in wind direction; any point P within the navigation restriction zone... w Wind potential energy P at the location up Size and P w The distance to point P is proportional; outside the navigation restriction area, the wind potential energy is 0.

[0079]

[0080] Among them, G up It is the gradient of wind potential energy in the restricted navigation area, and φ represents the true wind angle;

[0081] The hysteresis potential field is centered at point P where the sailboat is currently located, and moves with the sailboat's position, changing direction with the sailboat's heading Ψ. The hysteresis potential field is set to be 0 in the direction with the heading at the current moment, and any point P in the remaining region... w hysteresis potential energy P at the point h Size and P w The distance to point P is directly proportional:

[0082]

[0083] Among them, G h It is a parameter that limits the sailboat's turning.

[0084] The breadth-first search algorithm is used to find the nearest grid cell with a gradient value greater than 0. First, a queue is created and the current node is added to the queue. Then, a node is taken out of the queue and its neighboring nodes are checked. These neighboring nodes are the nodes directly adjacent to the current node and are added to the queue, but they are not added to the queue when an obstacle is encountered. This process is repeated, continuously taking nodes out of the queue and exploring their neighboring nodes. After finding the target grid cell, the improved APF method is used to go to the grid cell.

[0085] When an unmanned sailboat approaches a covered area, the heading vector is decomposed into a direction parallel to the prevailing wind direction used for the assignment and a direction perpendicular to the prevailing wind direction. If there are other grids to move through, the sailing track that crosses the already sailed route in the direction perpendicular to the prevailing wind direction and is the same as the heading direction of the covered route is not adopted.

[0086] The working principle of a full-coverage path planning algorithm for unmanned sailboats in this embodiment of the invention is as follows: the map is rasterized according to the wind direction at the start of coverage, so that the wind direction at the start of coverage points from the top to the bottom of the raster map. Then, the wind direction is divided into different areas according to the polar coordinate map of the unmanned sailboat's speed. The directions that cannot be navigated in the eight grids around the current grid are disabled, so that the planned path changes with the wind direction, avoiding the influence of the remote environment and the constraints of external conditions, and can be fully applied to the functional characteristics of unmanned sailboats.

[0087] In the overall scheme, the path planning algorithm includes the following steps: detecting and sensing the actual wind speed via a wind speed sensor; setting the wind direction at the start of the full coverage task to 0°, and rasterizing the map along directions parallel and perpendicular to the wind direction, then disabling some of the eight grids around the unmanned sailboat based on the VPP curve; assigning values ​​to each node on the raster map, and then determining whether there is an upwind area on the raster map; when there is an upwind area on the raster map, proceeding to the relatively maximum upwind position, reassigning the raster map based on the track, and leaving a navigation mark along the way; when there is no upwind area on the raster map, determining whether there is a dead zone on the raster map; when there is a dead zone on the raster map, the unmanned sailboat leaves the dead zone and repeats step S3; when there is no dead zone on the raster map, the unmanned sailboat proceeds to the node with the largest value among the surrounding feasible grids, reassigns the raster map, and leaves a navigation mark; determining whether the unmanned sailboat has passed through all target areas, thus completing the full coverage path planning task for the unmanned sailboat.

[0088] The core innovation of this application lies in rasterizing the map according to the wind direction at the start of coverage, so that the wind direction at the start of coverage points from the top to the bottom of the raster map. Based on the polar coordinate diagram of sailboat speed, the wind direction is divided into different regions, and the grids in the eight grids surrounding the current grid that are not navigable are disabled; the wind direction from the top to the bottom of the map is set to 0°, and the counterclockwise direction is taken as the positive direction. If the wind direction θ is in [-30°, 30°], [60°, 120°], [150°, 210°], or [240°, 300°], it is assigned a value according to the following rules.

[0089] In the sailboat full coverage algorithm, values ​​need to be assigned to nodes on the map before coverage begins and after each step during coverage; the values ​​at obstacle locations are:

[0090] f(x, y) = -1

[0091] The formula for assigning values ​​at non-obstacle locations is:

[0092]

[0093] In the formula: x and y represent the horizontal and vertical coordinates of the map; X is the total number of grid cells counted along the prevailing wind direction; a is the sequence number of the current grid cell among the grid cells counted along the prevailing wind direction; Y is the total number of grid cells in a continuous string of grid cells counted perpendicular to the prevailing wind direction and not interrupted by obstacles, already sailed grid cells, or the current sailboat position; b is the sequence number of the current grid cell in a continuous string of grid cells counted perpendicular to the wind direction and not interrupted by obstacles, already sailed grid cells, or the current sailboat position; after the sailboat enters a grid cell, the current grid cell value is decremented by 1;

[0094] When the wind direction θ changes to a region outside of the areas [-30°, 30°], [60°, 120°], [150°, 210°], and [240°, 300°], if the region where the previous wind direction occurred is a neighboring region of the current region, then the value is assigned according to the previous assignment method; otherwise, the value is randomly assigned according to the assignment method of one of the two neighboring regions.

[0095] During the coverage process, the movement of the unmanned sailboat is restricted by the wind direction, and it cannot move directly in the opposite direction of the wind. Therefore, it needs to go to a suitable location to carry out the full coverage task in order to reduce the rediscovery rate. Once the unmanned sailboat determines that there is an uncovered area in the upwind direction, it finds a relatively suitable location in the upwind direction as the target and goes to that location. This point is called the relative upwind position. The criteria for determining the existence of upwind uncovered areas vary depending on the wind direction.

[0096] Since the unmanned sailboat can only select the next target grid from the eight grids around the current grid at a time, it is considered to be deadlocked when there is no area to be covered around the unmanned sailboat, only covered grids or obstacles; in the specific algorithm implementation, the unmanned sailboat is considered to be deadlocked when the f(x,y) of the surrounding neighboring grids is less than 0.

[0097] To avoid deadlock, this invention uses a breadth-first search algorithm to find the nearest grid cell with a gradient value greater than 0. First, a queue is created, and the current node is added to the queue. Then, a node is removed from the queue, and its adjacent nodes are checked. These adjacent nodes are the nodes directly next to the current node; they are added to the queue, but not if an obstacle is encountered. This process is repeated, continuously removing nodes from the queue and exploring their adjacent nodes. If a node has already been visited, it is not added to the queue again. This process is continued layer by layer until the target point is found.

[0098] Specifically, in order to escape deadlock and reach the relatively upwind position, an improved artificial potential field method is needed to reach the relatively upwind position. In the improved APF algorithm, the potential field is divided into a global potential field and a local potential field. During each move, the node with the lowest total potential energy among the eight surrounding nodes is selected.

[0099] The overall situation field includes the attractive potential field generated by the target point, the repulsive potential field generated by obstacles and the covered area;

[0100] To attract the unmanned sailboat to the target point, a linear potential field P is established for each grid node P on the map as follows: g :

[0101] P g =G g ·dist(P,P goal )

[0102] G g It is the attractive gradient dist(P,Pt) goal () is a point-to-point P goal Euclidean distance;

[0103] To allow the unmanned sailboat to avoid obstacles, at obstacle node P obst Add a repulsive potential field P at the location o ;

[0104]

[0105] Where k1 is an adjustable parameter.

[0106] To prevent unmanned sailboats from entering covered areas, at the covered node P covered Add a repulsive potential field P at the location c ;

[0107]

[0108] In the formula: k2 is an adjustable parameter.

[0109] Furthermore, the local potential field is used to make the planned path conform to the motion law of the unmanned sailboat. The local potential field includes a headwind potential field and a hysteresis potential field. The headwind potential field is used to prevent the unmanned sailboat from sailing in the navigation restriction area. The hysteresis potential field is used to reduce the turning of the unmanned sailboat during the forward movement, so that the unmanned sailboat can reach the target point faster.

[0110] The headwind field is centered at point P where the sailboat is currently located, and moves with the sailboat's position and changes direction with changes in wind direction; any point P within the navigation restriction zone... w Wind potential energy P at the location up Size and P wThe distance to point P is proportional; outside the navigation restriction area, the wind potential energy is 0.

[0111]

[0112] Among them, G up It is the gradient of wind potential energy in the restricted navigation area, and φ represents the true wind angle;

[0113] The hysteresis potential field is centered at point P where the sailboat is currently located, and moves with the sailboat's position, changing direction with the sailboat's heading Ψ. The hysteresis potential field is set to be 0 in the direction with the heading at the current moment, and any point P in the remaining region... w hysteresis potential energy P at the point h Size and P w The distance to point P is directly proportional:

[0114]

[0115] Among them, G h It is a parameter that limits the sailboat's turning.

[0116] During the unmanned sailboat coverage process, in order to reduce the number of times the sailboat crosses the covered area, a heading mark is left on the already sailed route; when approaching the covered area, the heading vector is decomposed into a direction parallel to the prevailing wind direction used in the assignment method and a direction perpendicular to the prevailing wind direction. Under the condition that there are other grids to walk on, the track that crosses the already sailed route in the direction perpendicular to the prevailing wind direction and the same as the heading direction of the covered route is not used.

[0117] Furthermore, the content of this application will be described in conjunction with the accompanying drawings; according to Figure 1 As can be seen from the data, when the actual wind angle is between -30° and 30°, there are areas where the sailboat has a low speed or is even unnavigable. Therefore, in the path planning, considering the movement pattern of the unmanned sailboat, the wind direction is divided into different areas, and the grids in the eight grids around the current grid that are unnavigable are disabled; the wind direction from the top of the map to the bottom is set to 0°, and the counterclockwise direction is taken as the positive direction.

[0118] For example Figure 2 As shown, when the true wind blows towards the sailboat from a direction of 295°, the area from 265° to 325° is a restricted navigation zone; corresponding to a grid map, as shown... Figure 2 As shown, the grid to the right and to the upper right are restricted areas. During its movement, the unmanned sailboat will choose its next direction of action from outside the restricted areas.

[0119] The algorithm flow is shown as follows Figure 3As shown, at the beginning, the map is converted into a raster map according to the wind direction, and the raster map is assigned values. Based on the current position of the unmanned sailboat, it is determined whether there is an upwind area to be covered. If there is, it moves to the relatively upwind position. Each time it moves, the map is reassigned, and a heading mark is left in the area along the way. After reaching the relatively upwind position, it is determined whether there is a deadlock. If there is no upwind area to be covered, it is determined whether there is a deadlock. If there is a deadlock, it escapes the deadlock. If there is no deadlock, it selects the raster with the largest gradient value among the eight selectable raster nodes around the current position according to the wind direction and the sailing path. After moving, the raster map is reassigned, and a heading mark is left.

[0120] After moving, check if coverage is complete. If it is, exit the loop; otherwise, check the wind direction and continue the loop.

[0121] like Figure 4 As shown, the wind direction at the start of the full coverage task is set to 0°, and the map is rasterized according to the wind direction. The assigned direction is changed according to the wind direction changes during the coverage task. The wind direction is divided into eight directions, and eight dominant wind directions are determined in the raster map.

[0122] For the assignment example in this application, in Figure 5 and Figure 6 It has already been shown; in Figure 5 In the diagram, black grids represent obstacles. The wind direction is from top to bottom; for example, for node (1, 3), the total number of grids counted along the prevailing wind direction, X, is 5, and the current grid's sequence number, a, along the wind direction is 3.

[0123] like Figure 6 As shown, the wind direction and obstacle conditions are similar to... Figure 5 Consistent, the sailboat moves from position (2,1) to (5,4). In the third row, there are two consecutive grid strings separated by obstacles and the sailing path, namely [(5,3)] and [(1,3),(2,3)], whose Y values ​​are 1 and 2 respectively. The b value of grid (2,3) is 2. In the figure, the counting order of b is from left to right, but the direction of this counting can also be from right to left, which does not affect the final assignment of grid value.

[0124] During the coverage process, the unmanned sailboat's movement is restricted by wind direction, preventing it from moving directly in the opposite direction. Therefore, it needs to move to a suitable location for full coverage to reduce redundancy. Once the unmanned sailboat determines that there is an uncovered area in the upwind direction, it finds a relatively suitable location in that direction as its target and moves to that location. The criteria for determining the existence of an upwind uncovered area vary depending on the wind direction. Centered on the sailboat, the wind direction from top to bottom is defined as 0°, with counterclockwise as positive. The method for determining the existence of an upwind uncovered area is shown in Table 1. If the coordinates of the sailboat's current position plus the value at the determination position show an upwind uncovered area, then an upwind uncovered area is considered to exist. If an upwind uncovered area exists, the grid with the largest gradient value in the direction of the determination position is found as the relative upwind position, and the improved APF method is used to move to that node. If the wind direction is [75°, 105°], and an upwind area to be covered is determined, then traverse the grid from the current position in the (0, 1) direction, finding the grid with the largest f(x, y) value as the target point; 60< If an upwind uncovered area is determined to exist when θ≤75, the grid is traversed from the current position in the directions (0,1) and (1,1) to find the grid with the largest f(x,y) value.

[0125] Table 1. Location of upwind coverage area under different wind conditions.

[0126]

[0127] It's important to note that since the unmanned sailboat can only select its next target grid from eight surrounding grids at a time, a deadlock occurs when there are no areas to be covered around the sailboat, only covered grids or obstacles. Specifically, in the algorithm implementation, a deadlock is considered to have occurred when the f(x,y) values ​​of all neighboring grids around the sailboat are less than 0. To escape deadlock, this paper uses a breadth-first search algorithm to find the nearest grid with a gradient value greater than 0, and then reaches that grid using an improved APF method.

[0128] In summary, the full-coverage path planning algorithm for unmanned sailboats in this embodiment of the invention rasterizes the map based on the wind direction at the start of coverage, so that the wind direction at the start of coverage points from the top to the bottom of the raster map. Then, based on the polar coordinate map of the unmanned sailboat's speed, the wind direction is divided into different regions, and the navigable directions in the eight grids surrounding the current grid are disabled. This allows the planned path to change with the wind direction, avoiding the influence of the remote environment and the constraints of external conditions, and is fully applicable to the functional characteristics of unmanned sailboats.

[0129] The specific embodiments described herein should not be construed as limiting the scope of protection of this invention. For those skilled in the art, any alternative improvements or modifications made to the embodiments of this invention fall within the scope of protection of this invention.

[0130] Any aspects of this invention not described in detail are well-known to those skilled in the art.

Claims

1. A full-coverage path planning algorithm for unmanned sailboats, characterized in that, The path planning algorithm includes the following steps: S1 detects and senses the actual wind speed via a wind speed sensor; S2, set the wind direction to 0° when the full coverage mission begins, and rasterize the map along the directions parallel and perpendicular to the wind direction, and then disable some of the eight grids around the unmanned sailboat according to the unmanned sailboat VPP curve. S3 assigns a value to each node on the grid map, and then determines whether there is an upwind area on the grid map; S4. When there is an upwind area on the grid map, proceed to the position with the maximum relative upwind, reassign the grid map according to the track, and leave a navigation mark along the way; when there is no upwind area on the grid map, determine whether there is a dead zone on the grid map. S5, when there is a dead zone on the grid map, the unmanned sailboat leaves the dead zone and repeats step S3; when there is no dead zone on the grid map, the unmanned sailboat goes to the node with the largest value among the surrounding feasible grids, reassigns the grid map, and leaves a sailing mark. S6 determines whether the unmanned sailboat has passed through all target areas, completing the full-coverage path planning task for the unmanned sailboat.

2. The full-coverage path planning algorithm for unmanned sailboats according to claim 1, characterized in that, Assigning values ​​to each node on a raster map involves the following steps: S3.1, Based on the polar coordinate map of the unmanned sailboat speed, divide the wind direction into different areas and disable the grids in the eight grids around the current grid that are not navigable in the direction of sailing. S3.2, set the wind direction from top to bottom of the map to 0°, and set the counterclockwise direction to the positive direction, thereby dividing the wind direction into eight directions and determining eight main wind directions in the grid map; S3.3, when the wind direction θ is in the range of [-30°, 30°], [60°, 120°], [150°, 210°], [240°, 300°], the nodes in the grid map need to be assigned values ​​before coverage begins and after each step during coverage, defining the values ​​at the obstacle locations: f(x, y) = -1 The formula for assigning values ​​at non-obstacle locations is: In the formula: x and y represent the horizontal and vertical coordinates of the map; X is the total number of grid cells counted along the prevailing wind direction; a is the sequence number of the current grid cell among the grid cells counted along the prevailing wind direction; Y is the total number of grid cells in a continuous string of grid cells counted perpendicular to the prevailing wind direction and not interrupted by obstacles, already sailed grid cells, or the current sailboat position; b is the sequence number of the current grid cell in a continuous string of grid cells counted perpendicular to the wind direction and not interrupted by obstacles, already sailed grid cells, or the current sailboat position; after the sailboat enters a grid cell, the current grid cell value is decremented by 1; S3.4 When the wind direction θ changes to a region outside of [-30°, 30°], [60°, 120°], [150°, 210°], [240°, 300°], if the region where the previous wind direction was located is a neighboring region of the current region, then the value is assigned according to the previous assignment method; otherwise, the value is randomly assigned according to the assignment method of one of the two neighboring regions.

3. The full-coverage path planning algorithm for unmanned sailboats according to claim 1, characterized in that: The improved APF algorithm is used to reach the position of relative maximum upwind. In the improved APF algorithm, the potential field is divided into the global potential field and the local potential field. During each movement, the node with the lowest total potential energy among the eight surrounding nodes is selected. The overall situation field includes the attractive potential field generated by the target point, the repulsive potential field generated by obstacles and the covered area; To attract the unmanned sailboat to the target point, a linear potential field P is established for each grid node P on the map as follows. g : P g =G g ·dist(P,P goal ) G g It is the attractive gradient dist(P,P) goal () is a point-to-point P goal Euclidean distance; To allow the unmanned sailboat to avoid obstacles, at obstacle node P obst Add a repulsive potential field P at the location o ; Where k1 is an adjustable parameter. To prevent unmanned sailboats from entering covered areas, at the covered node P covered Add a repulsive potential field P at the location c ; In the formula: k2 is an adjustable parameter.

4. The full-coverage path planning algorithm for unmanned sailboats according to claim 3, characterized in that: The local potential field is used to make the planned path conform to the motion law of the unmanned sailboat. The local potential field includes a headwind potential field and a hysteresis potential field. The headwind potential field is used to prevent the unmanned sailboat from sailing in the navigation restriction area. The hysteresis potential field is used to reduce the turning of the unmanned sailboat during the forward movement, so that the unmanned sailboat can reach the target point faster. The headwind field is centered at point P where the sailboat is currently located, and moves with the sailboat's position and changes direction with changes in wind direction; any point P within the navigation restriction zone... w Wind potential energy P at the location up Size and P w The distance to point P is proportional; outside the navigation restriction area, the wind potential energy is 0. Among them, G up It is the gradient of wind potential energy in the restricted navigation area, and φ represents the true wind angle; The hysteresis potential field is centered at point P where the sailboat is currently located, and moves with the sailboat's position, changing direction with the sailboat's heading Ψ. The hysteresis potential field is set to be 0 in the direction with the heading at the current moment, and any point P in the remaining region... w hysteresis potential energy P at the point h Size and P w The distance to point P is directly proportional: Among them, G h It is a parameter that limits the sailboat's turning.

5. The full-coverage path planning algorithm for unmanned sailboats according to claim 1, characterized in that: The breadth-first search algorithm is used to find the nearest grid cell with a gradient value greater than 0. First, a queue is created and the current node is added to the queue. Then, a node is taken out of the queue and its neighboring nodes are checked. These neighboring nodes are the nodes directly adjacent to the current node and are added to the queue, but they are not added to the queue when an obstacle is encountered. This process is repeated, continuously taking nodes out of the queue and exploring their neighboring nodes. After finding the target grid cell, the improved APF method is used to go to the grid cell.

6. The full-coverage path planning algorithm for unmanned sailboats according to claim 3, characterized in that: When an unmanned sailboat approaches a covered area, the heading vector is decomposed into a direction parallel to the prevailing wind direction used for the assignment and a direction perpendicular to the prevailing wind direction. If there are other grids to move through, the sailing track that crosses the already sailed route in the direction perpendicular to the prevailing wind direction and is the same as the heading direction of the covered route is not adopted.

Citation Information

Patent Citations

  • Ship sailing method and system beneficial to river-crossing overhead line obstacle avoidance

    CN111324128A

  • Under-actuated dredger path planning obstacle avoidance method based on artificial potential field method

    CN118605503A