Path planning algorithm summary

Breadth-First-Search (BFS)

The breadth-first algorithm has actually been able to find the shortest path. BFS traverses the entire graph in a way that continues to spread from the starting point. It can be proved that as long as the diffusion process from the start point can traverse to the end point, then the start point and the end point must be connected, so there is at least one path between them, and because of the characteristic that BFS spreads radially from the center, it finds This path is the shortest path;

Heuristic search

Change the FIFO mode of the original queue of the breadth-first algorithm and add priority to different points. You can know that the smaller the distance to the end of Manhattan, the higher the priority of the point

There are problems, but this leads to preconceivedly treating the earliest traverse path as the shortest path

Dijkstra algorithm

The main idea is to choose the shortest one from multiple paths: we record the current minimum length of each point traversed from the starting point to it, when we traverse to this point again through another path, because the point has been After traversing, we no longer skip the point directly, but compare whether the current path costs less than the path that the point originally traversed. If so, then add the point to the new path. (

A* algorithm

We need the algorithm to diffuse in a direction (heuristic). On the other hand, we need to get the shortest path possible. Therefore, A* was born. It combines the advantages of Dijkstra and the heuristic algorithm to get from the starting point to the point The sum of the distance plus the estimated distance from the point to the end point is used as the priority of the point in the Queue

LPA_star

It is an incremental version of A_star. It can adapt to changes in the graph without recalculating the entire graph. The method is to update the g value (distance from the start) of the previous search during the current search so that it can be corrected if necessary. Like A_star, LPA* uses a heuristic algorithm, the heuristic comes from the lower boundary of the path cost from a given node to the target. If the guarantee is non-negative (zero is acceptable) and is never greater than the cost of the lowest path to the goal, then the heuristic is allowed.

 

The difference between heuristic search and incremental search is that heuristic search uses heuristic functions to guide the search, so as to achieve efficient search. Heuristic search is a kind of "smart" search. Typical algorithms such as A_star algorithm and genetic Algorithm etc. Incremental search is to re-use the previous search result information to achieve efficient search, greatly reducing the search range and time, such as LPA_star, D_star Lite algorithm, etc.

D*path search algorithm

The name "D_star algorithm" is derived from Dynamic A Star, originally introduced by Anthony Stentz in "Optimal and Efficient Path Planning for Partially-Known Environments". It is a heuristic path search algorithm, suitable for scenes where the surrounding environment is unknown or the surrounding environment has dynamic changes.

 

Similar to the A_star algorithm, D-star searches for path nodes in the scene by maintaining a priority queue (OpenList). The difference is that D* does not start from the starting point, but starts from the target point. Start the search by placing the target point in the Openlist until the node at the current position of the robot is dequeued from the queue (of course, if there is a dynamic change in the state of a node in the middle, it needs to be found again, so it is a dynamic pathfinding algorithm)

D_star Lite algorithm is a path planning algorithm proposed by Koenig S and Likhachev M based on the LPA_star algorithm.

D_star Lite 

The D_star Lite algorithm is to the LPA_star algorithm as the D_star algorithm is to the A_star algorithm. Different from the forward search algorithm used by LPA_star, D_star Lite uses a reverse search method, which has the same effect as the D_star algorithm. Neither the LPA_star algorithm nor the A_star algorithm mentioned above can meet the path planning requirements of mobile robots in an unknown environment, because it requires constant attempts in an unknown map, which is contrary to finding the optimal path while walking. At this time, the reverse search algorithm can handle this situation well. Although the D_star algorithm can realize path planning in an unknown environment, it is less efficient. D_star Lite based on LPA_star can deal with the unknown environment well. The core of the algorithm is Assuming that the unknown areas are all free spaces, based on this, the path planning is implemented incrementally, and the shortest distance from the target point to each node is found by minimizing the rhs value.

RRT 

(RRT / rapidly exploring random tree) path planning algorithm, through collision detection of sampling points in the state space, avoiding the modeling of the space, can effectively solve the path planning problem of high-dimensional space and complex constraints. The feature of this method is that it can search high-dimensional space quickly and effectively. Through random sampling points in the state space, the search is directed to blank areas, so as to find a planned path from the starting point to the target point. It is suitable for solving the complex problems of multi-degree-of-freedom robots. Path planning in environment and dynamic environment. Similar to PRM, this method is probabilistically complete and not optimal.

 

PRM

PRM is a method based on graph search, which converts continuous space into discrete space, and then uses search algorithms such as A* to find a path on the road map to improve search efficiency. This method can use relatively few random sampling points to find a solution. For most problems, relatively few samples are enough to cover most of the feasible space, and the probability of finding a path is 1 (as the number of samples increases, P( Find a path) The index tends to 1). Obviously, when the sampling points are too few or the distribution is unreasonable, the PRM algorithm is incomplete, but as the number of points used increases, it can also be complete. Therefore, PRM is probabilistically complete and not optimal.

 

 

Algorithm comparison

A*, LPA* and D* lite can all be used for path planning of mobile robots in a static environment. At this time, the computational efficiency of the three is not much different, and heuristic search is used to improve efficiency. LPA* and D* Lite Incremental search is not helpful at this time, but for path planning in a dynamic environment, the A* algorithm is weak, but for the second search in a dynamic environment, the efficiency of LPA* and D* Lite is significantly higher than that of A*.

The principles of LPA* and D* lite are roughly similar. They are based on the idea that the changed environment is not much different from the original map information. Incremental search can be used to use previously stored information to improve the secondary, tertiary and later information. Search efficiency.

The cost function of the A* algorithm is f=g+h, and the priority of each grid point is also measured by f.

Both LPA* and D* Lite introduce the rhs variable and use it as a cost function. The key is used as a comparison basis for priority, and the key has two elements [k1;k2], breaking the "level" situation in the A* algorithm; due to D *The Start point of the Lite algorithm is always moving, so km is introduced to improve calculation efficiency.

LPA* and D* Lite introduce the concept of local consistency to describe the state of grid points to replace the Closedlist and Openlist of A*, that is, all Openlist points are locally inconsistent, and all locally inconsistent points are on the Openlist list, which reduces Storage burden, improve algorithm efficiency.
 

Guess you like

Origin blog.csdn.net/qq_41371349/article/details/107500688