A full-coverage path planning method based on ox-plowing motion
Through the full coverage path planning method based on cattle-pit-type motion, using grid division and path insertion operations, the problem of high path repetition rate in complex plane areas is solved, and more efficient area coverage is achieved.
Patent Information
- Application Number
- CN202211137238.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-09-19
- Publication Date
- 2025-05-27
- Estimated Expiration
- 2042-09-19
AI Technical Summary
The existing full coverage path planning algorithm is prone to dead zones in complex plane areas, resulting in high path repetition rate and low area coverage rate.
A full coverage path planning method based on cattle-pit movement is adopted, and a path with a shorter length and a low path repetition rate is generated through grid division and path insertion operations.
In a two-dimensional environment with complex regional boundaries and obstacles, the path repetition rate is effectively reduced and the area coverage rate is improved.
Smart Images

Figure CN115542897B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of full-coverage path planning for a single robot, and particularly relates to a full-coverage path planning method based on plowing motion. Background Art
[0002] Full-coverage path planning can be applied to task scenarios such as cleaning, rust removal, flaw detection, and mine sweeping for a single robot. Its purpose is to provide support for the robot to traverse the target area orderly and completely under the control of a computer / processor.
[0003] Existing full-coverage path planning patents, for example, a full-coverage path planning algorithm based on polygon decomposition (CN202111669496.8), a full-coverage path planning method and related equipment based on cell decomposition (CN202111579455.X), etc. When performing path planning, they divide the target area into multiple easily traversable sub-areas by means of cell decomposition according to the shape and position distribution of obstacles, and transform the problem between sub-areas into a traveling salesman problem for solution. Although they can obtain a path to traverse the task area, when the target area has characteristics such as irregular edges, or a large number of randomly distributed obstacles in the area, the planned paths obtained by these methods are longer (i.e., the path repetition rate is higher). The reason is that in this case, the robot is prone to fall into a dead zone (that is, the robot is surrounded by obstacles or traversed areas), and due to the complex environment and a large number of sub-areas, the robot will pass through some traversed areas again during the process of escaping from the dead zone and moving between sub-areas, resulting in a higher final path repetition rate.
[0004] Therefore, it is necessary to study a full-coverage path planning method applicable to the above-mentioned relatively complex planar area and ensure that the obtained path has a small path repetition rate. Summary of the Invention
[0005] The purpose of the present invention is to provide a full-coverage path planning method based on plowing motion to solve the technical problems that the full-coverage paths obtained by existing algorithms in a relatively complex planar area have a high path repetition rate or a low area coverage rate.
[0006] To solve the above technical problems, the specific technical solution of a full-coverage path planning method based on plowing motion of the present invention is as follows:
[0007] A full-coverage path planning method based on plowing motion includes the following steps: Step 1: Divide the map with grids, represent obstacles and the area to be covered by the robot with different shadows, and the robot starts from the initial position and performs plowing motion;
[0008] Step 2: Repeat Step 1 until none of the four adjacent grids (above, below, left, and right) of the robot's current position are uncovered, i.e., it enters a dead zone. At this time, jump to Step 3;
[0009] Step 3: Divide the currently unvisited grids to generate several grid sets;
[0010] Step 4: Determine whether each grid set meets the path insertion condition;
[0011] Step 5: Perform path insertion operations on each grid set that meets the requirements in Step 4 in sequence;
[0012] Step 6: Repeat Steps 4 - 5 until there are no grid sets that meet the path insertion condition;
[0013] Step 7: Determine whether the coverage task of all grids has been completed. If so, jump to Step 9; if not, jump to Step 8;
[0014] Step 8: Calculate the moving distances from all still-uncovered grids to the grid where the robot is currently located using the A* algorithm, select the shortest distance among them, and move the robot to the corresponding uncovered grid. At the same time, record this grid at the end of the existing path in C Nav , and then jump to Step 1;
[0015] Step 9: According to the finally obtained ordered navigation point set C Nav , use the A* algorithm to complete the actual moving path between two adjacent grids arranged in sequence in the set;
[0016] Step 10: Merge each moving path to obtain the final actual movement path of the robot.
[0017] Furthermore, Step 1 includes the following specific steps:
[0018] The coordinate origin of the grid map is located in the upper left corner. The downward direction is the X-axis, and the rightward direction is the Y-axis. The grids in the m-th row and n-th column are represented by the coordinates (m, n). Starting from the initial position, the robot moves in a plowing pattern and gives priority to the Y-axis direction. If both of the adjacent grids on the left and right of the robot's current position are uncovered, randomly select one grid to move; if only one of the adjacent grids on the left and right is uncovered, move to the uncovered grid; if neither of the adjacent grids on the left and right is uncovered, judge the coverage of the adjacent grids above and below and determine the next moving target, similar to the left and right cases. At the same time, during the movement of the robot, record the newly covered grids and their coordinates in sequence to obtain the ordered navigation point set C Nav .
[0019] Furthermore, Step 3 includes the following specific steps:
[0020] For a grid map, along the X-axis direction, a straight line is successively drawn across the entire map, and all the uncovered grids connected by each row of the straight line and not blocked by obstacles are grouped into the same set.
[0021] Further, step 4 includes the following specific steps:
[0022] For a certain set C m select the adjacent grids above or below all the grids in this set to temporarily form a new set C 0 , if C 0 simultaneously satisfies:
[0023] (1) There are no uncovered grids in the set;
[0024] (2) All the covered grids in the set are not blocked by obstacles;
[0025] then C m meets the requirements.
[0026] Further, step 5 includes the following specific steps:
[0027] Step 5.1: Find the traversed grids with the smallest and largest Y-axis values in the new set C m temporarily formed in step 4 corresponding to the current set C 0 ;
[0028] Step 5.2: Find the sorting serial numbers of these two grids in C Nav Let the serial number of the grid with the minimum Y-axis value be P Ymin , and the serial number of the maximum value be P Ymax , and take P min = min(P Ymin , P Ymax ), P max = max(P Ymin , P Ymax );
[0029] Step 5.3: For all the grids in C Nav whose serial numbers are between P min and P max , successively judge two adjacent grids arranged front and back. Let the serial numbers and coordinates be P n , P n+1 , (x n , y n ), (x n+1 , y n+1 ), and check whether they satisfy:
[0030] (a) x n = x n+1 = x 0 ; where, x0 is the set C 0 the X-axis coordinate value of the grid in;
[0031] (b)|y n - y n+1 | = 1;
[0032] If the requirements are not met, continue to judge the next group, that is, take n = n + 1; if the requirements are met, in the grid map, the grids adjacent to (x n , y n ), (x m , y n ), and (x n+1 , y n+1 ) are inserted in sequence between the serial numbers P m and P n+1 in C Nav (x n is the X-axis value of the grid in C n+1 ), and continue to take n = n + 1 and repeat;
[0033] Step 5.4: Determine whether there are still uninserted grids in the set C m If not, skip this step; if so, discuss in three cases at this time;
[0034] (a) No grids were inserted into C Nav in Step 5.3. At this time, determine the moving direction of the robot on the grid map in the set C 0 . If it is the positive Y-axis direction, insert all the grids in C m in ascending order of the X-axis value before the serial number P Nav in C max ; if it is the negative Y-axis direction, insert all the grids in Cm in descending order of the X-axis value before the serial number P Nav in C min ;
[0035] (b) The uninserted grid is in the middle of the inserted grids on the grid map. At this time, find the sorting of the grids adjacent to this grid on the map in C 0 and insert them in the first two positions of this serial number;
[0036] (c) For the uninserted grids other than those in (b), if the robot's moving direction is the positive Y-axis direction, when the right adjacent grid of an uninserted grid on the map is inserted, insert it before this inserted grid in C Nav , and when its left adjacent grid is inserted, insert it in C Nav before this inserted grid, when its left adjacent grid is inserted, insert it before this inserted grid in C Nav ; when its left adjacent grid is inserted, insert it before this inserted grid in C Nav ; when its left adjacent grid is inserted, insert it before this inserted grid in CNav The next one after the inserted grid in C; if the moving direction of the robot is the negative Y-axis, when the adjacent grid on its right is inserted, insert it after the inserted grid in C Nav The next one after the inserted grid in C, when the adjacent grid on its left is inserted, insert it after the inserted grid in C Nav The previous one before the inserted grid in C until all grids are inserted;
[0037] Step 5.5: Locate the grid in case (b) of Step 5.4, and the grid on one side of the map with an obstacle on one side and an adjacent grid on the other side being the grid inserted in Step 5.3 in C Nav The sorting serial number in C, denoted as P s , with the coordinate value being (x s , y s ). Assume that the grid adjacent to it in the same row of the grid map and in the sorting in C Nav has the sorting in C Nav as Pr, and the coordinate value is (x r , y r );
[0038] Take P t = min(P r , P s ), and assume that the grid serial numbers (P t - 2i + 1) and (P t - 2i) have the grid coordinates (x t-2i+1 , y t-2i+1 ), x t-2i , y t-2i ), where i is a positive integer. If the following conditions are met:
[0039] (a) x t-2i+1 = x t-2i ;
[0040] (b) (y t-2i+1 = y s && y t-2i = y r ) || (y t-2i = y s && y t-2i+1 = y r );
[0041] Then swap the arrangement positions of the grids represented by (P t - 2i + 1) and (P t - 2i) in C Nav ;
[0042] Then take P u = max(P r , P s), let the grid coordinates of the serial numbers (P u +2i - 1) and (P u +2i) be (x u+2i-1 , y u+2i-1 ), x u+2i , y u+2i ), where i is a positive integer. Similar to P t , if the following conditions are met:
[0043] (c) x u+2i-1 = x u+2i ;
[0044] (d) (y u+2i-1 = y s && y u+2i = y r ) || (y u+2i = y s && y u+2i-1 = y r );
[0045] Then swap the arrangement positions of the grids represented by (P u +2i - 1) and (P u +2i) in C Nav .
[0046] A full - coverage path planning method based on ox - plowing motion of the present invention has the following advantages: The present invention can obtain a single - robot full - coverage path with a shorter length (lower path repetition rate) in a two - dimensional known environment with relatively complex regional boundaries and obstacles. BRIEF DESCRIPTION OF THE DRAWINGS
[0047] Figure 1 is the overall flowchart of the full - coverage path planning method based on ox - plowing motion of the present invention;
[0048] Figure 2 is the grid map;
[0049] Figure 3 is the schematic diagram of the navigation point set recording the grids successively covered by the robot;
[0050] Figure 4 is the schematic diagram of the movement of the robot when it first falls into the dead zone;
[0051] Figure 5 is the schematic diagram of the method for dividing and updating the generation of the uncovered grid set;
[0052] Figure 6 is the schematic diagram of four cases that meet the path insertion requirements when selecting the adjacent grid below;
[0053] Figure 7It is a schematic diagram of the initial path insertion operation;
[0054] Figure 8 It is a schematic diagram of two situations where the grid cannot be inserted during the initial path insertion operation;
[0055] Figure 9 It is a schematic diagram of the situation where the uninserted grid is located between the inserted grids in the grid map;
[0056] Figure 10 It is a schematic diagram of the path adjustment effect after inserting the grid;
[0057] Figure 11 It is Figure 4 a schematic diagram of the situation after the path insertion operation is completed;
[0058] Figure 12 It is a schematic diagram of the final movement path. Detailed implementation manners
[0059] To better understand the purpose, structure and function of the present invention, the following further describes in detail a full-coverage path planning method based on ox-plowing motion of the present invention with reference to the accompanying drawings.
[0060] As Figure 1 shown, in a full-coverage path planning method based on ox-plowing motion of the present invention, on a two-dimensional grid map, the robot starts from the initial position and performs ox-plowing motion. When the robot falls into a dead zone, the remaining un-traversed grids are divided to generate several grid sets. Conditional judgments are made on these grid sets. If the requirements are met, they are inserted into the generated path. After the path insertion operation is completed, it is judged whether the traversal of the target area has been completed. If so, the final actual movement path is generated. Otherwise, it goes to the nearest un-traversed grid by the A* algorithm to escape from the dead zone.
[0061] Next, taking the grid map shown in the attached Figure 2 figures as an example, the specific implementation process of this method is described. Among them, in the attached Figure 2 figures, the black grids are obstacles, the white grids are the grids to be covered, the black circle represents the robot, and the grid where it is currently located is the initial position of the robot. The area outside the map edge is regarded as the obstacle area. The coordinate origin of the grid map is located in the upper left corner, the downward direction is the X axis, and the rightward direction is the Y axis. The grid in the m-th row and n-th column is represented by the coordinate (m, n).
[0062] 1. The robot starts from the current position and performs a plowing motion, prioritizing the Y-axis direction, as follows: If neither of the two adjacent grids to the left and right of the robot's current position is covered, it randomly selects one grid to move to; if only one of the two adjacent grids to the left and right is not covered, it moves to the uncovered grid; if neither of the two adjacent grids to the left and right is uncovered, it determines the coverage of the two adjacent grids above and below and determines the next movement target, similar to the left and right cases. Meanwhile, during the robot's movement, it sequentially records the newly covered grids and their coordinates, obtaining the ordered set of navigation points C that the robot has successively experienced. Nav Figure Figure 3 is a schematic diagram of the set of navigation points C Nav , indicating that the robot has successively covered and passed through grids A, B, C, D, E... (coordinate values not marked).
[0063] 2. Repeat step 1 until none of the four adjacent grids above, below, left, and right of the robot's current position are uncovered (i.e., it enters a dead end), and then jump to step 3. Figure Figure 4 is the movement situation of the robot when it first enters a dead end on the Figure 2 grid map.
[0064] 3. Divide the currently unvisited grids to generate several grid sets, as follows: For the grid map, along the X-axis direction, a straight line is successively drawn across the entire map, and the uncovered grids that are not blocked by obstacles and are connected in series by each row of the straight line are grouped into the same set. Figure Figure 5 is a schematic diagram for generating grid sets. Among them, the straight line with X = 1 only passes through 1 group of 3 uncovered grids, so these 3 grids are grouped into set 1; the straight line with X = 6 passes through 3 groups of multiple uncovered grids, so 3 sets are generated.
[0065] 4. Determine whether each grid set meets the path insertion condition, as follows: For a certain set C m , select the adjacent grids above (or below) all the grids in this set to temporarily form a new set C 0 . If C 0 simultaneously meets:
[0066] (1) There are no uncovered grids in the set;
[0067] (2) All the covered grids in the set are not blocked by obstacles.
[0068] Then C m meets the requirements. Figure Figure 6 is a schematic diagram of four cases that meet the requirements when selecting the adjacent grids below (selecting the adjacent grids above is similar). Among them, the left shaded grids represent C m , the white grids represent the covered grids in C 0 , and the black ones are C0 The obstacles therein (the same hereinafter).
[0069] 5. Perform path insertion operations on each grid set that meets the requirements in step 4 as follows:
[0070] (1) Find the traversed grids with the smallest and largest Y-axis values in the new set C temporarily formed in step 4 corresponding to the current set C m ; 0 ;
[0071] (2) Find the sorting serial numbers of these two grids in C Nav . Let the serial number of the grid with the minimum Y-axis value be P Ymin , and the serial number of the maximum value be P Ymax . And take P min = min(P Ymin , P Ymax ), P max = max(P Ymin , P Ymax );
[0072] (3) For all grids in C Nav whose serial numbers are between P min and P max , determine in turn whether two adjacent grids arranged front and back (assuming the serial numbers and coordinates are P n , P n+1 , (x n , y n ), (x n+1 , y n+1 )) meet the following conditions:
[0073] (a) x n = x n+1 = x 0 ; (x 0 is the X-axis coordinate value of the grid in set C 0 )
[0074] (b) |y n - y n+1 | = 1.
[0075] If the requirements are not met, continue to judge the next group (that is, take n = n + 1); if the requirements are met, then in the grid map, the grids adjacent to (x n , y n ), (x m , y n ), and the grids adjacent to (x n+1 , y n+1 ), (x m , y n+1 ) are inserted into C NavSerial number P in n and P n+1 in between (x m is C m the X-axis value of the grid in ), and continue to take n = n + 1 and repeat. Attached Figure 7 is a schematic diagram of this process and its achieved effect, where the two shaded grids on the right are the ones that have been inserted at this time (x m , y n ), and (x m , y n+1 ), and the black arrowed line segment is the robot's movement path determined according to C Nav (the same below).
[0076] (4) Determine whether there are still uninserted grids in the set C m . If not, skip this step; if so, then discuss in three cases at this time:
[0077] (a) No grids were inserted into C Nav in step (3). Attached Figure 8 are schematic diagrams of two cases at this time, where the vertically solid-line shaded grids are the grids in C Nav whose arrangement serial numbers are between P min and P max and do not belong to C 0 , and the vertically dotted-line shaded ones are the other grids in C Nav (the same below). At this time, judge the movement direction of the robot on the grid map in the set C 0 . If it is the positive Y-axis direction, then insert all the grids in C m in ascending order of the X-axis value, one by one, in front of the serial number P Nav in C max ; if it is the negative Y-axis direction, then insert all the grids in C m in descending order of the X-axis value, one by one, in front of the serial number P Nav in C min ;
[0078] (b) The uninserted grid is in the middle of the inserted grids on the grid map. Attached Figure 9 is a schematic diagram of this case. At this time, find the sorting of the grids adjacent to this grid on the map in C 0 and insert them in the first two positions of this serial number; Nav
[0079] (c) For the uninserted grid other than that in (b), if the robot's movement direction is the positive Y-axis direction at this time, when the right adjacent grid of an uninserted grid on the map is inserted, insert it in C NavThe previous one of the inserted grid. When the adjacent grid on its left is inserted, insert it at C Nav The next one of the inserted grid in it; if the moving direction of the robot is the negative Y-axis, when the adjacent grid on its right is inserted, insert it at C Nav The next one of the inserted grid in it. When the adjacent grid on its left is inserted, insert it at C Nav The previous one of the inserted grid in it until all grids are inserted.
[0080] (5)Find the grid in step (4)(b) and the sorting serial number in C of the grid on one side of the map being an obstacle and the adjacent grid on the other side being the grid inserted in step (3) Nav Set it as P s , and the coordinate value is (x s , y s ). Assume that the grid adjacent to it in the same row of the grid map and in the C Nav sorting has the sorting of P Nav in C, and the coordinate value is (x r , y r ). r )
[0081] Take P t = min(P r , P s ), and assume that the grid coordinates of the serial numbers (P t - 2i + 1) and (P t - 2i) are (x t-2i+1 , y t-2i+1 ), x t-2i , y t-2i ), where i is a positive integer. If it satisfies:
[0082] (a)x t-2i+1 = x t-2i
[0083] (b)(y t-2i+1 = y s && y t-2i = y r ) || (y t-2i = y s && y t-2i+1 = y r )
[0084] Then swap the arrangement positions of the grids represented by (P t - 2i + 1) and (P t - 2i) in C Nav .
[0085] Then take P u= max(P r , P s ), let the grid coordinates of the sequence numbers (P u + 2i - 1) and (P u + 2i) be (x u+2i-1 , y u+2i-1 ), (x u+2i , y u+2i ) respectively, where i is a positive integer. Similar to P t , if the following conditions are satisfied:
[0086] (c) x u+2i-1 = x u+2i
[0087] (d) (y u+2i-1 = y s && y u+2i = y r ) || (y u+2i = y s && y u+2i-1 = y r )
[0088] Then swap the arrangement positions of the grids represented by (P u + 2i - 1) and (P u + 2i) in C Nav .
[0089] Attached Figure 10 is the path change brought by this step, where the left - directed sparse shadow represents the grid to be inserted.
[0090] 6. Repeat steps 4 - 5 until there is no set of grids that meet the path insertion conditions. Attached Figure 11 is the path change situation after the robot repeats steps 4 - 5 in Attached Figure 4 .
[0091] 7. Determine whether all grids have been covered. If so, jump to step 9; if not, jump to step 8.
[0092] 8. Calculate the moving distance from all uncovered grids to the grid where the robot is currently located using the A* algorithm. Select the shortest distance and move the robot to the corresponding uncovered grid, and record this grid at the end of the existing path in C Nav . Then jump to step 1.
[0093] 9. According to the finally obtained ordered navigation point set C Nav , use the A* algorithm to complete the actual moving path between two adjacent grids arranged in the set.
[0094] 10. Combine each moving path to obtain the final actual movement path of the robot, as shown in the appendix Figure 12 as follows.
[0095] It can be understood that the present invention is described by means of some embodiments. Those skilled in the art will know that, without departing from the spirit and scope of the present invention, various changes or equivalent substitutions can be made to these features and embodiments. Additionally, under the teaching of the present invention, these features and embodiments can be modified to adapt to specific situations and materials without departing from the spirit and scope of the present invention. Therefore, the present invention is not limited by the specific embodiments disclosed herein, and all embodiments falling within the scope of the claims of this application belong to the scope protected by the present invention.
Claims
1. A full-coverage path planning method based on ox-plowing motion, characterized in that, it includes the following steps: Step 1: Divide the map into grids, represent obstacles and the area to be covered by the robot with different shades, and the robot starts from the initial position and performs ox-plowing motion; Step 2: Repeat Step 1 until the four adjacent grids above, below, left, and right of the current position of the robot are all not uncovered, that is, it falls into a dead zone, and then jump to Step 3; Step 3: Divide the currently un-traversed grids to generate several grid sets; Step 4: Judge whether each grid set meets the path insertion condition; Step 5: Perform path insertion operations on each grid set that meets the requirements in Step 4 in sequence; Step 5.1: Find the temporarily formed new set C in Step 4 corresponding to the current set C m and find the traversed grid cells with the minimum and maximum Y-axis values 0 in it. Step 5.2: Locate the sorting sequence numbers of these two grids in C Nav Let the sequence number with the minimum Y-axis value be P Ymin , and the sequence number with the maximum value be P Ymax , and take P min = min(P Ymin , P Ymax ), P max = max(P Ymin , P Ymax ); Step 5.3: For C Nav all the grids whose serial numbers are between P min and P max are judged successively for two adjacent grids arranged before and after. Let the serial numbers and coordinates be P n , P n+1 , (x n , y n ), (x n+1 , y n+1 ). Whether it satisfies: (a)x n = x n+1 = x 0 ; where x 0 is the X-axis coordinate value of the grid in set C 0 ; (b)|y n - y n+1 | = 1; If the requirements are not met, continue to judge the next group, that is, take n = n + 1; if the requirements are met, in the grid map, the grids adjacent to (x n , y n ), namely (x m , y n ), and the grids adjacent to (x n+1 , y n+1 ), namely (x m , y n+1 ) are inserted in turn between the serial numbers P Nav and P n in C n+1 . x m is the X-axis value of the grid in C m , and continue to take n = n + 1 and repeat; Step 5.4: Determine the set C m to check whether there are still uninserted grids. If not, skip this step; if so, discuss in three cases at this time; (a) In step 5.3, no grid is inserted into C Nav At this time, judge the moving direction of the robot on the grid map in the set C 0 If it is the positive direction of the Y-axis, then insert all the grids in C m into C in ascending order of the X-axis values, one by one Nav at the position before the serial number P max in it; if it is the negative direction of the Y-axis, then insert all the grids in Cm into C in descending order of the X-axis values, one by one Nav at the position before the serial number P min in it; (b)The uninserted grid is located in the middle of the inserted grids on the grid map. At this time, find the set C 0 and sort the grids adjacent to this grid on the map in C Nav and insert it at the first two positions of this serial number; (c) The grids not inserted in (b). At this time, if the moving direction of the robot is the positive Y-axis, when the right adjacent grid of an uninserted grid on the map is inserted, insert it before the inserted grid in C. When the left adjacent grid of the uninserted grid is inserted, insert it after the inserted grid in C. If the moving direction of the robot is the negative Y-axis, when the right adjacent grid of the uninserted grid is inserted, insert it after the inserted grid in C. When the left adjacent grid of the uninserted grid is inserted, insert it before the inserted grid in C, until all grids are inserted. Nav in the previous position of the inserted grid in C. When the left adjacent grid of the uninserted grid is inserted, insert it after the inserted grid in C. Nav in the next position of the inserted grid in C. If the moving direction of the robot is the negative Y-axis, when the right adjacent grid of the uninserted grid is inserted, insert it after the inserted grid in C. Nav in the next position of the inserted grid in C. When the left adjacent grid of the uninserted grid is inserted, insert it after the inserted grid in C. Nav in the previous position of the inserted grid in C, until all grids are inserted. Step 5.5: Find the grid in case (b) of Step 5.4, and on the map in case (c), where one side is an obstacle and the adjacent grid on the other side is the grid inserted in Step 5.3 in C Nav The sorting serial number in it is set as P s , and the coordinate value is (x s , y s ). Suppose the grid adjacent to it in the same row of the grid map and in the C Nav sorting is Pr, and the coordinate value is (x Nav , y r , y r ); Take P t = min(P r , P s ), and let the grid coordinates of the serial numbers (P t - 2i + 1) and (P t - 2i) be (x t-2i+1 , y t-2i+1 ), (x t-2i , y t-2i ), respectively, where i is a positive integer. If the following conditions are satisfied: (a)x t-2i+1 = x t-2i ; (b)(y t-2i+1 = y s && y t-2i = y r ) || (y t-2i = y s && y t-2i+1 = y r ); Then swap the arrangement positions of the grids represented by (P t -2i + 1) and (P t -2i) in C Nav ; Take P again u = max(P r , P s ), and let the grid coordinates of the serial numbers (P u + 2i - 1) and (P u + 2i) be (x u+2i-1 , y u+2i-1 ), (x u+2i , y u+2i ), respectively, where i is a positive integer. Similar to P t , if it satisfies: (c)x u+2i-1 = x u+2i ; (d) (y u+2i-1 = y s && y u+2i = y r ) || (y u+2i = y s && y u+2i-1 = y r ); Then swap the arrangement positions of the grids represented by (P u + 2i - 1) and (P u + 2i) in C Nav ; Step 6: Repeat Steps 4-5 until there is no grid set that meets the path insertion condition; Step 7: Judge whether all grids have been covered. If so, jump to Step 9; if not, jump to Step 8; Step 8: Calculate the moving distance from all the still uncovered grids to the grid where the robot is currently located using the A* algorithm, select the shortest distance among them, move the robot to the corresponding uncovered grid, and record this grid at the end of the existing path in the ordered navigation point set C Nav Then jump to Step 1; Step 9: According to the finally obtained ordered set of navigation points C Nav , use the A* algorithm to complete the actual movement path between two adjacent grids arranged in the set Step 10: Merge each movement path to obtain the final actual movement path of the robot.
2. The full-coverage path planning method based on ox-plowing motion according to claim 1, characterized in that, the said Step 1 includes the following specific steps: The origin of coordinates of the grid map is located at the upper left corner, the downward direction is the X-axis, and the rightward direction is the Y-axis. The grid in the m-th row and the n-th column is represented by the coordinates (m, n). Starting from the initial position, the robot performs a plowing-like movement and prefers the Y-axis direction. If neither of the two adjacent grids on the left and right of the robot's current position is covered, a grid is randomly selected for movement; if only one of the two adjacent grids on the left and right is not covered, the robot moves to the uncovered grid; if neither of the two adjacent grids on the left and right is uncovered, the coverage of the two adjacent grids above and below is judged to determine the next movement target, which is similar to the left and right cases. At the same time, during the movement of the robot, the newly covered grids and their coordinates are successively recorded to obtain the ordered set of navigation points C that the robot has experienced successively Nav 。 3. The full-coverage path planning method based on ox-plowing motion according to claim 1, characterized in that, the said Step 3 includes the following specific steps: For the grid map, along the X-axis direction, cross the entire map with a straight line in sequence, and classify the uncovered grids connected by each row of straight lines and not blocked by obstacles into the same set.
4. The full-coverage path planning method based on ox-plowing motion according to claim 1, characterized in that, the said Step 4 includes the following specific steps: For a certain set C m select the adjacent grids above or below all the grids in this set to temporarily form a new set C 0 If C 0 simultaneously satisfies: (1) There are no uncovered grids in the set; (2) All covered grids in the set are not blocked by obstacles; Then C m Meets the requirements.
Citation Information
Patent Citations
Full-coverage path planning algorithm based on polygon decomposition
CN114323047A
Full coverage path planning method and related equipment based on unit decomposition
CN114397889B
Mobile robot grating map creating method of real-time data fusion
CN101413806A
Path following method and system, electronic equipment and storage medium
CN110362070A