Report Navigation Prashanth Ramadoss
-
Upload
austinvishal -
Category
Documents
-
view
215 -
download
0
Transcript of Report Navigation Prashanth Ramadoss
![Page 1: Report Navigation Prashanth Ramadoss](https://reader035.fdocuments.in/reader035/viewer/2022081815/577cce1f1a28ab9e788d617c/html5/thumbnails/1.jpg)
EMARO, ARIA 2013-14 , ECN Prashanth Ramadoss
MOBILE ROBOTS – NAVIGATION
WAVEFRONT BASED PATH PLANNING
In this exercise, we simulate the navigation of a robot using wave-front expansion using C++
programming. Initially the world in which the robot is to navigate is generated using a simple
two dimensional array structure grid[200][200]. Obstacles of circular shapes (with random
radius and centre) and rectangular shapes (with random width and height) are introduced in
random positions in the world. These positions (where the obstacle surrounds) are marked with
variable obstacle.
For circular obstacles, the distance between the centre and the current position in the grid is
calculated and if this distance is less than that of the radius of the circle then the current position
is marked as an obstacle. Similarly for the rectangular obstacles, having randomly generated the
random values of height, width and tilt-angle, we calculate homogeneous transformations
between the points and generate the points for the rectangular obstacles.
The robot and goal positions are also generated randomly such that these positions do not fall
inside the boundaries of the obstacles.
Now that we have our world/map with robot, goal, free-path and obstacle positions, we generate
the wave-front expansion. This wave-front generates from the goal and reaches the robot keeping
in account the obstacles. Von Neumann neighborhood (4-point connectivity) is used to check if
the neighboring cells are valid and within boundaries. The wave-front begins at goal cell and
branches outward adding the currentwave value plus one to each of its empty valid neighbors.
In the first cycle, the neighboring cells are numbered 3 and then 4 and wave continues. This
repeats until the wave has reached the current robot position such that no free-path or zero-
valued cell remains. The world is complete and has the information of the path that can be
followed by the robot to navigate to the goal.
The robot checks the neighbor cells and moves to the one with the minimum value and also
avoids the cell in case if its and obstacle. The robot continues to move to the minimum valued
neighbor until it has reached a value of ‘2’ which indicates that it has reached the goal. (since
initially we define the variable goal = 2) .
We finally print the world onto a output.dat file which indicates the path followed by robot as “999” ,
obstacle as “0” , Goal as “G” and the wave-front field values by its distance from the goal.