Global Navigation with GPP
This time the objective is to create a plan or path to guide a robot to a distant location, specifically a taxi. To solve this the Gradient Path Planing (GPP) will be used. This algorithm gives us the shortest way to reach the target by calculating the descending gradient of a given grid, similar to this figure:
In our case the planing will be done with an ascending gradient instead of a descending one, but this will be explained later.
At first instance we need to be aware that the GPP method needs a metric grid map of the world, this means that the map will consist of diferent cells that will mantain some correlation with the real world distances between objects, fo example it could look like this:
Now that we have the map, we need to fill the cells to calculate the path. In the algorithm we are using the target will generate an expansive wave that will assign lower values to the cells that are further from the target and greater ones to the closer cells, this wave will continue until the robot is reached (and a bit more for precaution) . Then we must give some type of penalty to the cells that are near an obstacle to avoid them. The main difference of the approach that is used in this part, is that the map we have (in grayscale) has the buildings (obstacles) represented as the lower value possible (0) and the road (available space to move) with the maximum value (255) so the procedure will be the same but changing the cells values accordingly to this new statement.
Finally, we obtain maps like these:
Then the path is calculated by obtaining the consecutive cells that increases the value of the last one and that is closer to the final destination.
Although, since there are numeric limits to the array representation, it can only contain integer numbers between 0 and 255, due to this if the objective is very far away it can lead to some unexpected results when the number overflows and
gives a wong map, this can be solved simply by reducing the difference between consecutive cells:
gives a wong map, this can be solved simply by reducing the difference between consecutive cells:
At last but not least, once the gradient and the path have been calculated, it is time for the car to move. Since it is an holomonic car, to simplify the movement only four configurations (north, east, south, west) will be considered for the orientation of the car.
Finally, by joining the path with the movement the behaviour of the car is the following:

Comments
Post a Comment