2304.14839
2304.14839
2304.14839
Alka Choudhary 1
1. Introduction
The application areas of autonomous robots have seen ex-
ponential growth in the last decade. Today they are used
in distribution centers, security, healthcare, hospitality, gro-
cery stores, last-mile delivery, self-driving cars, etc. Each
Figure 1. Structure of the paper
market and industry is heading toward automation and even-
tually will start using autonomous robots. Robot motion
is a complex problem to solve given the robot’s dynamics
2. Background
1
WPI, Worcester, USA. Correspondence to: Alka Choudhary
<mnnitalka@gmail.com>. Before we dive into sampling-based path-planning algo-
rithms it is important to understand how path planning fits
into the context of end-to-end robot operations. As shown
Sampling-based Path Planning Algorithms: A Survey
in the Figure 2 there are a few key components Sensors, processed by the Obstacle Detection / Perception unit to
Localization, Obstacle detection, Map representation, and map these objects on the map. Some of these sensors when
Path-planning. Path-planner gets information about the sur- used standalone are not sufficient to make a confident deci-
roundings and current location before it can start planning sion where an object is seen. A multi-sensor setup provides
for the goal. There are various other components for overall various types of raw data to come to a more confident de-
robot operation but for setting the context of this paper we cision. Recently in the autonomous vehicle industry, the
will be discussing on which Path-planner depends. focus has been on detecting 3D obstacles to provide a bet-
ter map representation of objects around a card. These are
the various state-of-art techniques to detect 3D obstacles
like vision-radar-based fusion (Singh, 2023b), surround-
view vision-based detection (Singh & Bankiti, 2023), and
transformer-based sensor fusion (Singh, 2023a) etc.
discretization is not possible and then sampling-based algo- Algorithm 1 PRM Algorithm
rithms are the better choice. There are two criteria on which Input: graph, iteration limit, radius
planning algorithms are rated: repeat
Initialize i = 0
• Feasible: A plan is guaranteed generated to the goal if new node = random sampler()
it is possible to reach to that point, efficiency is not a nearest n = nearest(graph, new node, radius)
concern here. nearest n = sort(nearest n)
for i = 1 to number of nearest nodes do
• Optimal: Optimizing the performance of the planner edge link = createEdge(new node, nearest[i])
in addition to finding the path to the goal. j = edgeN otInObstacleReigon(edge link)
k = in same cluster(new node, nearest[i])
In simpler terms, a path planner generates a plan which is if j and k then
a sequence of actions taken to reach the goal state. Robots addT oGraph(edge link)
today operate in dynamically changing environments so nearest n[i].cluster = new node.cluster
these planners also need to accommodate those functions of end if
the state. Another way to categorize the planner is - Global end for
vs Local planner. Global planners are used to generating a i=i+1
path from start to goal working with global costmaps while until i < iteration limit
local planner work with smaller local costmaps and are used
in trajectory generation and following.
Algorithm 2 PRM* Algorithm obstacle before connecting it to the closest node in the graph.
Input: graph, iteration limit Edge to the closest node should also avoid the path going
repeat through any obstacle. The end condition for this algorithm
Initialize i = 0 is hit either we created a point inside the goal area or the
new node = random sampler() time limit/number of tries has reached its maximum limit.
1/d To generate random nodes any random generator can be
RP RM ∗ = γP RM ∗ (log(i)/i)
nearest n = nearest(graph, new node, RP RM ∗ ) used as every random generator will bring its own bias so
for i = 1 to number of nearest nodes do we can say that it affects the path resulting from RRT. This
edge link = createEdge(new node, nearest[i]) paper (Karaman & Frazzoli, 2011a) talks about sampling
if edgeN otInObstacleReigon(edge link) then theory in detail.
addT oGraph(edge link) RRT is a fairly quick and easy-to-implement Algorithm 4
end if but it does not guarantee optimality. It also produces cubic
end for graphs which is solved by RRT*.
i=i+1
until i < iteration limit Algorithm 3 RRT Algorithm
Input: graph, iteration limit
repeat
2011a) to calculate this radius Initialize i = 0
new node = random sampler
1/d
if (notInObstacleReigon(new state)) then
log(n)
RP RM ∗ = γP RM ∗ (1) nearest n = nearest(graph, new node)
n
edge = createEdge(new node, nearest n)
if (notInObstacleReigon(edge)) then
1
1/d addT oGraph(edge)
γP RM ∗ > 2 1 + (µ(X(f ree))/ζd )1/d (2) end if
d
end if
i=i+1
Radius RP RM ∗ depends upon the number of nodes n, the until i < iteration limit
constant characteristic of the configuration space γP RM ∗,
and the number of dimensions d. Calculation of γ constant
is a factor of µ(Xf ree), free space available for path plan- 3.4. RRT*
ning, and ζd is the unit sphere volume. log(n)/n term keep
decreasing as we add more nodes which in effect causes a RRT* is an optimized (Karaman & Frazzoli, 2011a) version
decrease in radius to calculate neighboring nodes. of the Rapidly-exploring random trees algorithm. It guar-
This provides a significant improvement in cluster creation. antees the shortest path to be returned. In addition to the
We can see more straight roads after a path is generated. RRT algorithm, RRT* calculates the distance to k nearest
Think about it as driving in and outside the city, early gener- nodes and then calculates the total cost to reach a new node
ated nodes can be considered as far away cities, and edges via each neighbor. It chooses the minimum cost path and
to connect them are straight highways. As we start to grow connects the neighbor and the new node. One more step
in the number of nodes, the radius decrease and the nodes is to rewire the tree to connect the lowest-cost paths. For
created are closer and can be considered like a neighbor- each neighbor, the cost of traversal through the new node is
hood of a city and edges becomes smaller roads within the checked, and if that is less, the neighbor’s connection to its
city. previous parent is destroyed and the new node becomes the
Next optimization made to P RM ∗ is to get rid of the parent node. RRT* Algorithm 4 results in quite a straight
clustering system. Instead, any node within a radius be- path. It also performs better than RRT in obstacle-dense
come connected. It helps to reduce the complexity of Algo- environments. It has added computation hence performance
rithm 2. PRM* generates a graph that is very dense. A dense gets worse.
graph provides a smoother path while P RM presented a
zigzagged path. 4. Future Extensions
There are various other optimization techniques added
3.3. RRT
to these algorithms in the last decade e.g. Lazy PRM
RRT (Rapidly exploring Random Trees) explores the path (Bohlin & Kavraki, 2000), Obstalc-based PRM (Amato
to the goal while creating the graph. First RRT generates et al., 1998), Informed RRT (Gammell et al., 2014), Proba-
random nodes and checks if this node does not fall into any bilistic Roadmap of Tree (PRT) (Akinc et al., 2005), sPRM,
Sampling-based Path Planning Algorithms: A Survey