Parallel-alternating bidirectional jump point search path planning method for mobile robots
Through the parallel-alternating bidirectional jump point search algorithm, the problems of slow path planning and low safety of the jump point search algorithm in complex obstacle environments are solved, and fast and safe path planning is achieved.
Patent Information
- Application Number
- CN202211095135.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2022-03-05
- Filing Date
- 2022-09-05
- Publication Date
- 2025-09-19
- Estimated Expiration
- 2042-09-05
AI Technical Summary
The existing jump point search algorithm reduces the path planning speed when the obstacle positions are complex or random, and does not consider the volume of the mobile robot, resulting in the path being close to the obstacle, posing a safety risk.
A parallel-alternating bidirectional jumping point search algorithm is adopted to construct a grid map, expand obstacles, and determine the central hotspot area. The parallel bidirectional jumping point search plans the path from the starting point and target point to the central hotspot area, and the alternating bidirectional jumping point search plans the path within the central hotspot area and corrects collision risks.
It effectively shortens the path planning time, optimizes the path, increases the safety of mobile robot operation, and avoids collisions with obstacles.
Smart Images

Figure CN115355924B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of mobile robot path planning, in particular to a mobile robot path planning method with parallel-alternating bidirectional jump point search. Background Art
[0002] With the advancement of science and technology, mobile robots are finding applications in a wide range of fields, including industrial production, rescue and exploration, service, and military fields. The advent of mobile robots has brought significant convenience to people's lives, and mobile robotics technology has garnered widespread attention worldwide. Path planning is a key component of mobile robotics technology, playing a crucial role in reducing energy consumption and improving safety. In 2011, D. Harabor proposed the skipping point search algorithm. This algorithm optimizes the A* algorithm by skipping unnecessary nodes during the A* algorithm's expansion process, retaining only the key hops needed for expansion. Consequently, the skipping point search algorithm significantly improves path planning speed. However, when obstacles are located in complex or random locations, the number of key hops increases, significantly reducing path planning speed. Furthermore, because the skipping point search algorithm does not consider the size of the mobile robot, the planned path may cling to obstacles, posing a safety risk to the mobile robot. Summary of the Invention
[0003] To address the aforementioned technical issues, the present invention provides a mobile robot path planning method using a parallel-alternating bidirectional jumping point search algorithm. This method utilizes both a parallel and an alternating bidirectional jumping point search algorithm to plan the mobile robot's path, effectively reducing path planning time. Furthermore, it optimizes the path to address the obstacle-adjacent path problem encountered by the jumping point search algorithm, thereby enhancing the safety of the robot's operation.
[0004] The technical solutions of the present invention are as follows:
[0005] A parallel-alternating bidirectional jump point search mobile robot path planning method comprises the following steps:
[0006] (1) Constructing a grid map;
[0007] (2) Expansion of obstacles;
[0008] (3) Identify the central hotspot area;
[0009] (4) Use a parallel bidirectional jump point search algorithm to plan the path from the starting point to the central hotspot area and the path from the target point to the central hotspot area respectively;
[0010] (5) Within the central hotspot area, an alternating bidirectional jump point search algorithm is used to plan paths in both the forward and reverse directions;
[0011] (6) Correct local paths that may have collision risks.
[0012] Preferably, the step of expanding the obstacle in the above step (2) is as follows:
[0013] Step (2-1): Use a 2*2 square sliding window to scan the grid map;
[0014] Step (2-2): Determine whether there is an obstacle on the diagonal line of the square sliding window. If so, execute step (2-3). Otherwise, exit the expansion process.
[0015] Step (2-3): Fill virtual obstacles in the grid map inside the square sliding window.
[0016] Preferably, in the above step (3), the shape of the central hotspot area is circular, and the steps for determining the central hotspot area are as follows:
[0017] Step (3-1): Calculate the center grid position of the starting point and the target point according to formula (1);
[0018]
[0019] In formula (1), x center and y center is the grid position coordinate of the center point between the starting point and the target point, x start and y start is the grid position coordinate of the starting point, x goal and y goal is the grid position coordinate of the target point;
[0020] Step (3-2): According to formula (2), draw a circle with the center point grid as the center and R as the radius;
[0021] (xx center ) 2 +(yy center ) 2 =R 2 (2)
[0022] In formula (2), x and y are the coordinates of the trajectory curve of the central hotspot area, and the value of R is
[0023] Preferably, in step (4), a parallel bidirectional jump point search algorithm is used to plan the path from the starting point to the central hotspot area and the path from the target point to the central hotspot area respectively as follows:
[0024] Step (4-1): Create two working threads in the CPU;
[0025] Step (4-2): In thread 1, calculate the path from the starting point to the central hotspot area;
[0026] Step (4-3): In thread 2, calculate the path from the target point to the central hotspot area.
[0027] Preferably, in the above step (4-2) in thread 1, the steps of calculating the path from the starting point to the central hotspot area are as follows:
[0028] Step (4-2-1): Add the starting point to OpenSetStart;
[0029] Step (4-2-2): Calculate the cost function of the node in OpenSetStart according to formula (3);
[0030] g start (n) = p start ·|x(n)-x start |+q start ·|y(n)-y start | (3)
[0031] In formula (3), g start (n) is the cost function of node n in OpenSetStart, p start is the weight coefficient in the x direction, q start is the weight coefficient in the y direction, x start and y start are the grid coordinates of the starting point, x(n) and y(n) are the coordinates of node n in OpenSetStart;
[0032] Step (4-2-3): Calculate the heuristic function of the node in OpenSetStart according to formula (4);
[0033]
[0034] In formula (4), h start (n) is the cost function of node n in OpenSetStart, p start is the weight coefficient in the x direction, q start is the weight coefficient in the y direction, x center and y center are the grid coordinates of the center point between the start and target points, and x(n) and y(n) are the coordinates of node n in OpenSetStart;
[0035] Step (4-2-4): Calculate the priority function of the node in OpenSetStart according to formula (5);
[0036] f start (n) = g start (n)+w start (n)·h start (n)(5)
[0037] In formula (5), f start (n) is the priority function of node n in OpenSetStart, g start (n) is the cost function of node n in OpenSetStart, h start (n) is the cost function of node n in OpenSetStart, w start (n) is a variable weight function, whose size is related to the region where the node is located;
[0038] Step (4-2-5): Select the node with the smallest priority function and set it as CurrentStart;
[0039] Step (4-2-6): Determine whether CurrentStart is a point inside the central hotspot area. If so, terminate the pathfinding of thread 1 and record the position A0 of the point. If not, execute step (4-2-7).
[0040] Step (4-2-7): Move CurrentStart from OpenSetStart to CloseSetStart;
[0041] Step (4-2-8): Based on the current direction of CurrentStart, search for the jump point PointStart that is not in CloseSetStart;
[0042] Step (4-2-9): Determine whether the jump point PointStart is in OpenSetStart. If so, update the node information and return to step (4-2-2). If not, add PointStart to OpenSetStart and return to step (4-2-2).
[0043] Preferably, the above step (4-3) is performed in thread 2, and the steps of calculating the path from the target point to the central hotspot area are as follows:
[0044] Step (4-3-1): Add the target point to OpenSetGoal;
[0045] Step (4-3-2): Calculate the cost function of the node in OpenSetGoal according to formula (6);
[0046] g goal (n) = p goal ·|x goal (n)-x goal |+q goal ·|y goal (n)-y goal | (6)
[0047] In formula (6), g goal (n) is the cost function of node n in OpenSetGoal, p goal is the weight coefficient in the x direction, q goal is the weight coefficient in the y direction, x goal (n) and y goal (n) is the coordinate of node n in OpenSetGoal;
[0048] Step (4-3-3): Calculate the heuristic function of the node in OpenSetGoal according to formula (7);
[0049]
[0050] In formula (7), h goal (n) is the cost function of node n in OpenSetGoal, p goal is the weight coefficient in the x direction, q goal is the weight coefficient in the y direction, x center and y center are the grid coordinates of the center point between the start point and the goal point, and x(n) and y(n) are the coordinates of node n in OpenSetGoal;
[0051] Step (4-3-4): Calculate the priority function of the node in OpenSetGoal according to formula (8);
[0052] f goal (n) = g goal (n)+w goal (n)·h goal (n)(8)
[0053] In formula (8), f goal (n) is the priority function of node n in OpenSetGoal, g goal (n) is the cost function of node n in OpenSetGoal, h goal (n) is the cost function of node n in OpenSetGoal, w goal (n) is a variable weight function, whose size is related to the region where the node is located;
[0054] Step (4-3-5): Select the point with the smallest priority function and set it as CurrentGoal;
[0055] Step (4-3-6): Determine whether CurrentGoal is a point inside the central hotspot area. If so, terminate the pathfinding of thread 1 and record the position B0 of the point. If not, execute step (4-3-7).
[0056] Step (4-3-7): Move CurrentGoal from OpenSetGoal to CloseSetGoal;
[0057] Step (4-3-8): Based on the current direction of CurrentGoal, search for the jump point PointGoal that is not in CloseSetGoal;
[0058] Step (4-3-9): Determine whether the jump point PointGoal is in OpenSetGoal. If so, update the node information and return to step (4-3-2). If not, add PointGoal to OpenSetGoal and return to step (4-3-2).
[0059] Preferably, in the above step (5), within the central hotspot area, the steps of using an alternating bidirectional jump point search algorithm to plan paths from both the forward and reverse directions are as follows:
[0060] Step (5-1): In grid A n Node, grid B n Perform a jump point search for the target;
[0061] Step (5-2): Calculate the priority function of the nodes in OpenSetA according to formula (9);
[0062]
[0063] In formula (9), f A (n) is the priority function of node n in OpenSetA, x A (n) and y A (n) is the coordinate of node n in OpenSetA, and is the coordinate of point A0 inside the central hotspot area obtained in step (4-2-6), and are the coordinates of the optimal node in OpenSetB;
[0064] Step (5-3): Record the optimal node A with the minimum priority function n+1 , and broadcast;
[0065] Step (5-4): Determine A n+1 Whether with B n If they meet, then the pathfinding ends, otherwise, proceed to step (5-5);
[0066] Step (5-5): In grid B n Node, grid A n+1 Perform a jump point search for the target;
[0067] Step (5-6): Calculate the priority function of the nodes in OpenSetB according to formula (10);
[0068]
[0069] In formula (10), f B (n) is the priority function of node n in OpenSetB, x B (n) and y B (n) is the coordinate of node n in OpenSetB, and is the coordinate of point B0 inside the central hotspot area obtained in step (4-3-6), and are the coordinates of the optimal node in OpenSetA;
[0070] Steps (5-7): Select the optimal node B with the smallest priority function n+1 , and broadcast;
[0071] Steps (5-8): Determine A n+1 Whether with B n+1 If they meet, then end the pathfinding process, otherwise proceed to steps (5-8);
[0072] Step (5-9): n is incremented by 1, and the process returns to step (5-1).
[0073] Preferably, the steps of correcting the local path with potential collision risks in step (6) are as follows:
[0074] Step (6-1): Loop through the path matrix Route;
[0075] Step (6-2): Determine whether there is an obstacle in the upper, lower, left, and right neighborhoods of the kth element in the path matrix Route. If so, proceed to step (6-3). If not, exit the current path correction.
[0076] Step (6-3): Determine whether the obstacle Obstacle obtained in step (6-2) exists in the upper, lower, left, and right neighborhoods of the k+1th element in the path matrix Route. If so, proceed to step (6-4). Otherwise, exit the current path correction.
[0077] Step (6-4): Calculate the position matrix of the grids that need to be detected around the path according to formula (11);
[0078]
[0079] In formula (11), P1 and P2 are the position matrices of the grids to be detected around the path, and x k and y k is the coordinate of the kth element in the path matrix Route, x k+1 and y k+1 is the ordinate of the k+1th element in the path matrix Route;
[0080] Step (6-5): Determine whether there is an obstacle at the grid position corresponding to matrices P1 and P2. If so, increment k by 1 and return to step (6-2). Otherwise, execute step (6-6).
[0081] Step (6-6): Correct the path to the position corresponding to matrix P1 or P2, and return to step (6-1).
[0082] The beneficial effects of the present invention are as follows: by successively using a parallel and an alternating bidirectional jumping point search algorithm to plan the running path of the mobile robot, the present method can effectively shorten the path planning time. At the same time, the method used by the present invention also optimizes the path to address the problem of the path being close to obstacles in the jumping point search algorithm, thereby increasing the safety of the robot's operation. BRIEF DESCRIPTION OF THE DRAWINGS
[0083] Figure 1 is a system flow chart of the present invention;
[0084] Figure 2 Schematic diagram to determine the central hotspot area;
[0085] Figure 3 A schematic diagram for correcting a local path with potential collision risks;
[0086] Figure 4 This is a schematic diagram of the path planning results of this method. DETAILED DESCRIPTION
[0087] The present invention will be further described below with reference to the accompanying drawings.
[0088] like Figure 1 As shown, a parallel-alternating bidirectional jump point search mobile robot path planning method includes the following steps:
[0089] (1) Constructing a grid map;
[0090] (2) Expansion of obstacles;
[0091] (3) Identify the central hotspot area;
[0092] (4) Use a parallel bidirectional jump point search algorithm to plan the path from the starting point to the central hotspot area and the path from the target point to the central hotspot area respectively;
[0093] (5) Within the central hotspot area, an alternating bidirectional jump point search algorithm is used to plan paths in both the forward and reverse directions;
[0094] (6) Correct local paths that may have collision risks.
[0095] Preferably, the step of expanding the obstacle in the above step (2) is as follows:
[0096] Step (2-1): Use a 2*2 square sliding window to scan the grid map;
[0097] Step (2-2): Determine whether there is an obstacle on the diagonal line of the square sliding window. If so, execute step (2-3). Otherwise, exit the expansion process.
[0098] Step (2-3): Fill virtual obstacles in the grid map inside the square sliding window.
[0099] Preferably, in the above step (3), the shape of the central hotspot area is circular, and the steps for determining the central hotspot area are as follows:
[0100] Step (3-1): Calculate the center grid position of the starting point and the target point according to formula (1);
[0101]
[0102] In formula (1), x center and y center is the grid position coordinate of the center point between the starting point and the target point, x start and y start is the grid position coordinate of the starting point, x goal and y goal is the grid position coordinate of the target point;
[0103] Step (3-2): According to formula (2), draw a circle with the center point grid as the center and R as the radius;
[0104] (xx center ) 2 +(yy center ) 2 =R 2 (2)
[0105] In formula (2), x and y are the coordinates of the trajectory curve of the central hotspot area, and the value of R is
[0106] The central hotspot area determined by step (3) is as follows Figure 2 As shown, Figure 2 The circle in the figure is the central hotspot area, where the confluence point of the path from the starting point to the target point is located.
[0107] Preferably, in step (4), a parallel bidirectional jump point search algorithm is used to plan the path from the starting point to the central hotspot area and the path from the target point to the central hotspot area respectively as follows:
[0108] Step (4-1): Create two working threads in the CPU;
[0109] Step (4-2): In thread 1, calculate the path from the starting point to the central hotspot area;
[0110] Step (4-3): In thread 2, calculate the path from the target point to the central hotspot area.
[0111] Preferably, in the above step (4-2) in thread 1, the steps of calculating the path from the starting point to the central hotspot area are as follows:
[0112] Step (4-2-1): Add the starting point to OpenSetStart;
[0113] Step (4-2-2): Calculate the cost function of the node in OpenSetStart according to formula (3);
[0114] g start (n) = p start ·|x(n)-x start |+q start ·|y(n)-y start | (3)
[0115] In formula (3), g start (n) is the cost function of node n in OpenSetStart, p start is the weight coefficient in the x direction, q start is the weight coefficient in the y direction, x start and y start are the grid coordinates of the starting point, x(n) and y(n) are the coordinates of node n in OpenSetStart;
[0116] Step (4-2-3): Calculate the heuristic function of the node in OpenSetStart according to formula (4);
[0117]
[0118] In formula (4), h start (n) is the cost function of node n in OpenSetStart, p start is the weight coefficient in the x direction, q start is the weight coefficient in the y direction, x center and y center are the grid coordinates of the center point between the start and target points, and x(n) and y(n) are the coordinates of node n in OpenSetStart;
[0119] Step (4-2-4): Calculate the priority function of the node in OpenSetStart according to formula (5);
[0120] f start (n) = g start (n)+w start (n)·h start (n) (5)
[0121] In formula (5), f start (n) is the priority function of node n in OpenSetStart, g start (n) is the cost function of node n in OpenSetStart, h start (n) is the cost function of node n in OpenSetStart, w start (n) is a variable weight function, whose size is related to the region where the node is located;
[0122] Step (4-2-5): Select the node with the smallest priority function and set it as CurrentStart;
[0123] Step (4-2-6): Determine whether CurrentStart is a point inside the central hotspot area. If so, terminate the pathfinding of thread 1 and record the position A0 of the point. If not, execute step (4-2-7).
[0124] Step (4-2-7): Move CurrentStart from OpenSetStart to CloseSetStart;
[0125] Step (4-2-8): Based on the current direction of CurrentStart, search for the jump point PointStart that is not in CloseSetStart;
[0126] Step (4-2-9): Determine whether the jump point PointStart is in OpenSetStart. If so, update the node information and return to step (4-2-2). If not, add PointStart to OpenSetStart and return to step (4-2-2).
[0127] Preferably, the above step (4-3) is performed in thread 2, and the steps of calculating the path from the target point to the central hotspot area are as follows:
[0128] Step (4-3-1): Add the target point to OpenSetGoal;
[0129] Step (4-3-2): Calculate the cost function of the node in OpenSetGoal according to formula (6);
[0130] g goal (n) = p goal ·|x goal (n)-x goal |+q goal ·|y goal (n)-y goal | (6)
[0131] In formula (6), g goal (n) is the cost function of node n in OpenSetGoal, p goal is the weight coefficient in the x direction, q goal is the weight coefficient in the y direction, x goal (n) and y goal (n) is the coordinate of node n in OpenSetGoal;
[0132] Step (4-3-3): Calculate the heuristic function of the node in OpenSetGoal according to formula (7);
[0133]
[0134] In formula (7), h goal (n) is the cost function of node n in OpenSetGoal, p goal is the weight coefficient in the x direction, q goal is the weight coefficient in the y direction, x center and y center are the grid coordinates of the center point between the start point and the goal point, and x(n) and y(n) are the coordinates of node n in OpenSetGoal;
[0135] Step (4-3-4): Calculate the priority function of the node in OpenSetGoal according to formula (8);
[0136] f goal (n) = g goal (n)+w goal (n)·h goal (n) (8)
[0137] In formula (8), f goal (n) is the priority function of node n in OpenSetGoal, g goal (n) is the cost function of node n in OpenSetGoal, h goal (n) is the cost function of node n in OpenSetGoal, w goal (n) is a variable weight function, whose size is related to the region where the node is located;
[0138] Step (4-3-5): Select the point with the smallest priority function and set it as CurrentGoal;
[0139] Step (4-3-6): Determine whether CurrentGoal is a point inside the central hotspot area. If so, terminate the pathfinding of thread 1 and record the position B0 of the point. If not, execute step (4-3-7).
[0140] Step (4-3-7): Move CurrentGoal from OpenSetGoal to CloseSetGoal;
[0141] Step (4-3-8): Based on the current direction of CurrentGoal, search for the jump point PointGoal that is not in CloseSetGoal;
[0142] Step (4-3-9): Determine whether the jump point PointGoal is in OpenSetGoal. If so, update the node information and return to step (4-3-2). If not, add PointGoal to OpenSetGoal and return to step (4-3-2).
[0143] Preferably, in the above step (5), within the central hotspot area, the steps of using an alternating bidirectional jump point search algorithm to plan paths from both the forward and reverse directions are as follows:
[0144] Step (5-1): In grid A n Node, grid B n Perform a jump point search for the target;
[0145] Step (5-2): Calculate the priority function of the nodes in OpenSetA according to formula (9);
[0146]
[0147] In formula (9), f A (n) is the priority function of node n in OpenSetA, x A (n) and y A (n) is the coordinate of node n in OpenSetA, and is the coordinate of point A0 inside the central hotspot area obtained in step (4-2-6), and are the coordinates of the optimal node in OpenSetB;
[0148] Step (5-3): Record the optimal node A with the minimum priority function n+1 , and broadcast;
[0149] Step (5-4): Determine A n+1 Whether with B n If they meet, then the pathfinding ends, otherwise, proceed to step (5-5);
[0150] Step (5-5): In grid B n Node, grid A n+1 Perform a jump point search for the target;
[0151] Step (5-6): Calculate the priority function of the nodes in OpenSetB according to formula (10);
[0152]
[0153] In formula (10), f B (n) is the priority function of node n in OpenSetB, x B (n) and y B (n) is the coordinate of node n in OpenSetB, and is the coordinate of point B0 inside the central hotspot area obtained in step (4-3-6), and are the coordinates of the optimal node in OpenSetA;
[0154] Steps (5-7): Select the optimal node B with the smallest priority function n+1 , and broadcast;
[0155] Steps (5-8): Determine A n+1 Whether with B n+1 If they meet, then end the pathfinding process, otherwise proceed to steps (5-8);
[0156] Step (5-9): n is incremented by 1, and the process returns to step (5-1).
[0157] Preferably, the steps of correcting the local path with potential collision risks in step (6) are as follows:
[0158] Step (6-1): Loop through the path matrix Route;
[0159] Step (6-2): Determine whether there is an obstacle in the upper, lower, left, and right neighborhoods of the kth element in the path matrix Route. If so, proceed to step (6-3). If not, exit the current path correction.
[0160] Step (6-3): Determine whether the obstacle Obstacle obtained in step (6-2) exists in the upper, lower, left, and right neighborhoods of the k+1th element in the path matrix Route. If so, proceed to step (6-4). Otherwise, exit the current path correction.
[0161] Step (6-4): Calculate the position matrix of the grids that need to be detected around the path according to formula (11);
[0162]
[0163] In formula (11), P1 and P2 are the position matrices of the grids to be detected around the path, and x k and y k is the coordinate of the kth element in the path matrix Route, x k+1 and y k+1 is the ordinate of the k+1th element in the path matrix Route;
[0164] Step (6-5): Determine whether there is an obstacle at the grid position corresponding to matrices P1 and P2. If so, increment k by 1 and return to step (6-2). Otherwise, execute step (6-6).
[0165] Step (6-6): Correct the path to the position corresponding to matrix P1 or P2, and return to step (6-1).
[0166] Correction diagram of local paths with potential collision risks Figure 3 shown. Figure 3 The left side shows the path before correction. Since the traditional jump point search algorithm regards the mobile robot as a mass point without considering the volume of the mobile robot, there is a risk of collision with obstacles during the operation of the mobile robot. Figure 3 The right side shows the corrected path. This method takes the volume of the mobile robot into account and eliminates the risk of collision between the mobile robot and obstacles in the corrected path.
[0167] The path planning result of this method is shown in the following figure: Figure 4 As shown, in Figure 4The path planned by this method passes through the central hotspot area and corrects the path in the local path where there is a collision risk. The mobile robot can move safely and quickly from the starting point to the target point by following this path.
[0168] The above-mentioned mobile robot path planning method based on parallel-alternating bidirectional jump point search was subjected to simulation experiments under the following conditions: (1) Software environment: MATLAB 2016a; (2) Hardware environment: Intel i5-6300HQ @ 2.30GHz processor, 8GB memory size; (3) Grid map size: 100*100; (4) Obstacle grid ratio: 1.5%.
[0169] Table 1 Performance comparison of path search algorithms
[0170]
[0171]
[0172] Table 1 shows a comparison of the performance of path search algorithms on a 100*100 grid map with a 1.5% obstacle ratio. As can be seen from Table 1, the path planning time of the method used by the present invention is 78.7% shorter than that of the A* algorithm and 42.7% shorter than that of the jump point search algorithm. Furthermore, the paths planned by the method of the present invention are free of collision safety hazards. This demonstrates that the method provided by the present invention effectively shortens path planning time while increasing the safety of robot operation.
[0173] The above embodiments are only preferred technical solutions of the present invention and should not be regarded as limitations of the present invention. The protection scope of the present invention is not limited thereto, but also includes equivalent replacement solutions of the technical features in the technical solutions recorded in the claims as the protection scope.
Claims
1. A parallel-alternating bidirectional jump point search mobile robot path planning method, characterized in that: The following steps are involved: (1) Constructing a grid map; (2) Expansion of obstacles; (3) Identify the central hotspot area; (4) Use a parallel bidirectional jump point search algorithm to plan the path from the starting point to the central hotspot area and the path from the target point to the central hotspot area respectively; (5) Within the central hotspot area, an alternating bidirectional jump point search algorithm is used to plan paths in both the forward and reverse directions; (6) Correct local paths that may have collision risks.
2. The mobile robot path planning method with parallel-alternating bidirectional jump point search according to claim 1, characterized in that: The steps of expanding the obstacle in step (2) are as follows: Step (2-1): Use a 2*2 square sliding window to scan the grid map; Step (2-2): Determine whether there is an obstacle on the diagonal line of the square sliding window. If so, execute step (2-3). Otherwise, exit the expansion process. Step (2-3): Fill virtual obstacles in the grid map inside the square sliding window.
3. The mobile robot path planning method with parallel-alternating bidirectional jump point search according to claim 1, characterized in that: In step (3), the shape of the central hotspot area is circular, and the steps for determining the central hotspot area are as follows: Step (3-1): Calculate the center grid position of the starting point and the target point according to formula (1); In formula (1), x center and y center is the grid position coordinate of the center point between the starting point and the target point, x start and y start is the grid position coordinate of the starting point, x goal and y goal is the grid position coordinate of the target point; Step (3-2): According to formula (2), draw a circle with the center point grid as the center and R as the radius; (x-x center ) 2 +(y-y center ) 2 =R 2 (2) In formula (2), x and y are the coordinates of the trajectory curve of the central hotspot area, and the value of R is 4. The mobile robot path planning method with parallel-alternating bidirectional jump point search according to claim 1, characterized in that: In step (4), a parallel bidirectional jump point search algorithm is used to plan the path from the starting point to the central hotspot area and the path from the target point to the central hotspot area respectively as follows: Step (4-1): Create two working threads in the CPU; Step (4-2): In thread 1, calculate the path from the starting point to the central hotspot area; Step (4-3): In thread 2, calculate the path from the target point to the central hotspot area.
5. The mobile robot path planning method with parallel-alternating bidirectional jump point search according to claim 4, characterized in that: In step (4-2) in thread 1, the steps for calculating the path from the starting point to the central hotspot area are as follows: Step (4-2-1): Add the starting point to OpenSetStart; Step (4-2-2): Calculate the cost function of the node in OpenSetStart according to formula (3); g start (n)=p start ·|x(n)-x start |+q start ·|y(n)-y start | (3) In formula (3), g start (n) is the cost function of node n in OpenSetStart, p start is the weight coefficient in the x direction, q start is the weight coefficient in the y direction, x start and y start are the grid coordinates of the starting point, x(n) and y(n) are the coordinates of node n in OpenSetStart; Step (4-2-3): Calculate the heuristic function of the node in OpenSetStart according to formula (4); In formula (4), h start (n) is the cost function of node n in OpenSetStart, p start is the weight coefficient in the x direction, q start is the weight coefficient in the y direction, x center and y center are the grid coordinates of the center point between the start and target points, and x(n) and y(n) are the coordinates of node n in OpenSetStart; Step (4-2-4): Calculate the priority function of the node in OpenSetStart according to formula (5); f start (n)=g start (n)+w start (n)·h start (n)(5) In formula (5), f start (n) is the priority function of node n in OpenSetStart, g start (n) is the cost function of node n in OpenSetStart, h start (n) is the cost function of node n in OpenSetStart, w start (n) is a variable weight function, whose size is related to the region where the node is located; Step (4-2-5): Select the node with the smallest priority function and set it as CurrentStart; Step (4-2-6): Determine whether CurrentStart is a point inside the central hotspot area. If so, terminate the pathfinding of thread 1 and record the position A0 of the point. If not, execute step (4-2-7). Step (4-2-7): Move CurrentStart from OpenSetStart to CloseSetStart; Step (4-2-8): Based on the current direction of CurrentStart, search for the jump point PointStart that is not in CloseSetStart; Step (4-2-9): Determine whether the jump point PointStart is in OpenSetStart. If so, update the node information and return to step (4-2-2). If not, add PointStart to OpenSetStart and return to step (4-2-2).
6. The mobile robot path planning method with parallel-alternating bidirectional jump point search according to claim 5, characterized in that: In step (4-3) in thread 2, the steps of calculating the path from the target point to the central hotspot area are as follows: Step (4-3-1): Add the target point to OpenSetGoal; Step (4-3-2): Calculate the cost function of the node in OpenSetGoal according to formula (6); g goal (n)=p goal ·|x goal (n)-x goal |+q goal ·|y goal (n)-y goal | (6) In formula (6), g goal (n) is the cost function of node n in OpenSetGoal, p goal is the weight coefficient in the x direction, q goal is the weight coefficient in the y direction, x goal (n) and y goal (n) is the coordinate of node n in OpenSetGoal; x goal and y goal is the grid position coordinate of the target point; Step (4-3-3): Calculate the heuristic function of the node in OpenSetGoal according to formula (7); In formula (7), h goal (n) is the cost function of node n in OpenSetGoal, p goal is the weight coefficient in the x direction, q goal is the weight coefficient in the y direction, x center and y center are the grid coordinates of the center point between the start point and the goal point, and x(n) and y(n) are the coordinates of node n in OpenSetGoal; Step (4-3-4): Calculate the priority function of the node in OpenSetGoal according to formula (8); f goal (n)=g goal (n)+w goal (n)·h goal (n)(8) In formula (8), f goal (n) is the priority function of node n in OpenSetGoal, g goal (n) is the cost function of node n in OpenSetGoal, h goal (n) is the cost function of node n in OpenSetGoal, w goal (n) is a variable weight function, whose size is related to the region where the node is located; Step (4-3-5): Select the point with the smallest priority function and set it as CurrentGoal; Step (4-3-6): Determine whether CurrentGoal is a point inside the central hotspot area. If so, terminate the pathfinding of thread 1 and record the position B0 of the point. If not, execute step (4-3-7). Step (4-3-7): Move CurrentGoal from OpenSetGoal to CloseSetGoal; Step (4-3-8): Based on the current direction of CurrentGoal, search for the jump point PointGoal that is not in CloseSetGoal; Step (4-3-9): Determine whether the jump point PointGoal is in OpenSetGoal. If so, update the node information and return to step (4-3-2). If not, add PointGoal to OpenSetGoal and return to step (4-3-2).
7. The mobile robot path planning method with parallel-alternating bidirectional jump point search according to claim 6, characterized in that: In step (5), within the central hotspot area, the steps of using the alternating bidirectional jump point search algorithm to plan paths in both the forward and reverse directions are as follows: Step (5-1): In grid A n Node, grid B n Perform a jump point search for the target; Step (5-2): Calculate the priority function of the nodes in OpenSetA according to formula (9); In formula (9), f A (n) is the priority function of node n in OpenSetA, x A (n) and y A (n) is the coordinate of node n in OpenSetA, and is the coordinate of point A0 inside the central hotspot area obtained in step (4-2-6), and are the coordinates of the optimal node in OpenSetB; Step (5-3): Record the optimal node A with the minimum priority function n+1 , and broadcast; Step (5-4): Determine A n+1 Whether with B n If they meet, then the pathfinding ends, otherwise, proceed to step (5-5); Step (5-5): In grid B n Node, grid A n+1 Perform a jump point search for the target; Step (5-6): Calculate the priority function of the nodes in OpenSetB according to formula (10); In formula (10), f B (n) is the priority function of node n in OpenSetB, x B (n) and y B (n) is the coordinate of node n in OpenSetB, and is the coordinate of point B0 inside the central hotspot area obtained in step (4-3-6), and are the coordinates of the optimal node in OpenSetA; Steps (5-7): Select the optimal node B with the smallest priority function n+1 , and broadcast; Steps (5-8): Determine A n+1 Whether with B n+1 If they meet, then end the pathfinding process, otherwise proceed to steps (5-8); Step (5-9): n is incremented by 1, and the process returns to step (5-1).
8. The mobile robot path planning method with parallel-alternating bidirectional jump point search according to claim 1, characterized in that: The steps for correcting the local path with potential collision risks in step (6) are as follows: Step (6-1): Loop through the path matrix Route; Step (6-2): Determine whether there is an obstacle in the upper, lower, left, and right neighborhoods of the kth element in the path matrix Route. If so, proceed to step (6-3). If not, exit the current path correction. Step (6-3): Determine whether the obstacle Obstacle obtained in step (6-2) exists in the upper, lower, left, and right neighborhoods of the k+1th element in the path matrix Route. If so, proceed to step (6-4). Otherwise, exit the current path correction. Step (6-4): Calculate the position matrix of the grids that need to be detected around the path according to formula (11); In formula (11), P1 and P2 are the position matrices of the grids to be detected around the path, and x k and y k is the coordinate of the kth element in the path matrix Route, x k+1 and y k+1 is the ordinate of the k+1th element in the path matrix Route; Step (6-5): Determine whether there is an obstacle at the grid position corresponding to matrices P1 and P2. If so, increment k by 1 and return to step (6-2). Otherwise, execute step (6-6). Step (6-6): Correct the path to the position corresponding to matrix P1 or P2, and return to step (6-1).
Citation Information
Patent Citations
Single mobile robot optimal itineration control method based on target tracking control strategy
CN104834309A
Bidirectional jump point search unmanned vehicle path planning method based on boundary search
CN113515129A