TRÁMITES PARA EXPORTAR
1.4. PROCESO DE SIEMBRE Y COSECHA DE LA GYPSOPHILA
In metric path planning methods, it is common to manipulate the map slightly before running the path planning algorithm. The alteration that is performed is to grow the obstacles in the environment, by the radius of a circle that encompasses the robot (assuming it can turn in-place). This new map representation is often known as the configuration space (C-space) and it represents the legal positions of the robot in the environment. This also makes it easier for motion planning algorithms, as it reduces the robot to a single point. This subsection reviews A* and Wavefront path planning algorithms.
A* path planning
A popular algorithm used in path finding and graph traversal is the A* algorithm [99]. Using A* is also convenient in that it can operate directly on grid maps, which is a popular choice of map representation in SLAM (see Subsection 4.3.1). It has been successfully applied to many robotic applications that require finding an optimum path through free space between two points [95, 100].
A* is a best-first search algorithm, as it explores the most promising node when travelling towards the goal. Note that it is not a greedy algorithm, as it also takes the distance already travelled into account. To find the most promising node, the algorithm uses cost metrics and seeks to find the minimum cost to the goal. The total cost (F) is the sum of the cost from the start to the current node, plus an estimate (H) of the distance from the current node to the destination. A popular choice for H is the ‘Manhattan distance’, which is the sum of the horizontal and vertical distance components to the destination. The basic operation of A* (adapted from [101]) is
shown in Algorithm 1.
Input : a 2-D bitmap (the C-space), with the start S, and the destination D
Output: an optimum trajectory from S to D
Empty the open and closed lists, and add S to the open list
while open list is not empty and current node is not equal to D do
Current node C = node with lowest F in open list Add C to closed list
foreach neighbour n of current node do
Cost = G(C) + H(C, n)
if n is in closed list then
continue end
if n is not in open list then
Set current node as parent of n Add n to open list
else if cost is less than G(n) then
Set C as parent of n end
end end
The optimum path is found by using the references to the parents of C Algorithm 1: The A* algorithm used to compute an optimum path to desti- nation in a grid map.
Wavefront path planning
The Wavefront algorithm (also known as Distance Transform [102]) considers the C-space (generated from the grid map of the environment) to be like a heat con- ducting material. Obstacles have zero conductivity, while open space has an infinite conductivity. The Wavefront algorithm works by systematically expanding wave- fronts that emanate from the goal, and thus it is a breadth-first search. The cost assigned to a node is larger than a neighbouring node that the wavefront reached first. The search stops when a wavefront has hit the current position, or there are no more nodes to explore (i.e., in this case there is no path). If a wavefront has hit the robot, the path to the goal is then found by exploring the node with a lower cost until the goal is reached [103]. Algorithmically, a basic Wavefront method is shown
in Algorithm 2.
Input : a 2-D bitmap (the C-space), with the start S, and the destination D
Output: an optimum trajectory T from S to D
For each node in the map, assign free space and S as 0, obstacles as 1, and D as 2
Empty the current node list, and add D
foreach current node C in the current node list do
foreach neighbour n of the current node do
if cost(n) is not 0 then
continue end if n is the S then break end cost(n) = cost(C) + 1
Add n to the end of the current node list end
Remove C from the current node list end
Empty trajectory T , and add S
if cost(S) is not 0 then
Current node C = S
while C is not D do
C = minimum cost of the neighbouring nodes of C Add C to the end of T
end else
No path found between S and D end
Algorithm 2: The Wavefront path planning algorithm.
Wavefront methods also have the ability to handle different ‘terrains’. For ex- ample, if a region in the map is unsafe to navigate for some reason (has a lot of obstacles, uneven surface, known to be congested, etc.), one can lower an area’s conductivity. This will influence the path that the Wavefront will find. There are also other enhancements that can be made to the basic algorithm. In order to reduce processing time, waves can be propagated from both the start and goal (i.e., a dual Wavefront method), as they tend to cover less area compared to one that uses a single wavefront [104].