Maze Solving Algorithms For Micro Mouse - Semantic Scholar
Maze Solving Algorithms For Micro Mouse - Semantic Scholar
[email protected] [email protected]
Abstract
The problem of micro-mouse is 30 years old tral area of the maze unaided. The mouse
but its importance in the field of robotics is will need to keep track of where it is, dis-
unparalleled, as it requires a complete analy- cover walls as it explores, map out the maze
sis & proper planning to be solved. This pa- and detect when it has reached the goal.
per covers one of the most important areas Having reached the goal, the mouse will typ-
of robot, “Decision making Algorithm” or in ically perform additional searches of the
lay-man’s language, “Robot Intelligence”. maze until it has found an optimal route
For starting in the field of micro-mouse it is from the start to the center. Once the optimal
very difficult to begin with highly sophisti- route has been found, the mouse will run
cated algorithms. This paper begins with that route in the shortest possible time.
very basic wall follower logic to solve the
maze. And gradually improves the algorithm
to accurately solve the maze in shortest time
with some more intelligence. The Algorithm
is developed up to some sophisticated level
as Flood-Fill algorithm. The paper would
help all the beginners in this fascinating
field, as they proceed towards development
of the “brain of the system”, particularly for
robots concerned with path planning and na-
vigation
1. Introduction
When it comes time to make a move, the ro- Now the mouse has a way of getting to cen-
bot must examine all adjacent cells which ter in a maze with no walls. But real mazes
are not separated by walls and choose the have walls and these walls will affect the
one with the lowest distance value. In our distance values in the maze so we need to
example above, the mouse would ignore any keep track of them. Again, there are 256
cell to the West because there is a wall, and cells in a real maze so another 256 bytes will
it would look at the distance values of the be more than sufficient to keep track of the
cells to the North, East and South since walls. There are 8 bits in the byte for a cell.
those are not separated by walls. The cell to The first 4 bits can represent the walls leav-
the North has a value of 2, the cell to the ing you with another 4 bits for your own
East has a value of 2 and the cell to the use. A typical cell byte can look like this:
South has a value of 4. The routine sorts the
values to determine which cell has the low- Remember that every interior wall is shared
est distance value. It turns out that both the by two cells so when you update the wall
North and East cells have a distance value of value for one cell you can update the wall
2. That means that the mouse can go North value for its neighbor as well. The instruc-
or East and traverse the same number of tions for updating the wall map can look
cells on its way to the destination cell. Since something like this
turning would take time, the mouse will
choose to go forward to the North cell. So Update the wall map:
the decision process would be something
like this
Is the cell to the North separated by a wall?
Yes -> Turn on the "North" bit for the cell
Decide which neighboring cell has the low- we are standing on and
est distance value: Turn on the "South" bit for the cell to the
North
Is the cell to the North separated by a wall? No -> Do nothing
Yes -> Ignore the North cell
No -> Push the North cell onto the stack to
Is the cell to the East separated by a wall?
be examined Yes -> Turn on the "East" bit for the cell we
are standing on and
Is the cell to the East separated by a wall? Turn on the "West" bit for the cell to the
Yes -> Ignore the East cell East
No -> Push the East cell onto the stack to be No -> Do nothing
examined
Is the cell to the South separated by a wall?
Is the cell to the South separated by a wall? Yes -> Turn on the "South" bit for the cell
Yes -> Ignore the South cell we are standing on and
No -> Push the South cell onto the stack to Turn on the "North" bit for the cell to the
be examined South
No -> Do nothing
Is the cell to the West separated by a wall?
Yes -> Ignore the West cell Is the cell to the West separated by a wall?
No -> Push the West cell onto the stack to Yes -> Turn on the "West" bit for the cell we
be examined are standing on and
Turn on the "East" bit for the cell to the
Pull all of the cells from the stack (The stack West
is now empty) No -> Do nothing
Sort the cells to determine which has the
lowest distance value So now we have a way of keeping track of
the walls the mouse finds as it moves about
the maze. But as new walls are found, the
distance values of the cells are affected so
we need a way of updating those. Returning
to our example, suppose the mouse has
found a wall.
End If
}
{
Pull a cell from the stack
Is the distance value of this cell = 1 + the
minimum value of its open neighbors?
No -> Change the cell to 1 + the minimum
value of its open neighbors and
push all of the cell's open neighbors onto the
In the example above, the minimum value of stack to be checked
its open neighbors is 3. Adding 1 to this val- Yes -> Do nothing
ue results in 3 + 1 = 4. The maze now looks }
like this:
Most of the time, the modified flood-fill is
faster than the regular flood-fill. By updat-
ing only those values which need to be up-
dated, the mouse can make its next move
much quicker.
Now that the cell values have been updated, Bellman time flooding array
the mouse can once again follow the dis-
tance values in descending order. The standard Bellman algorithm solves the
maze for the shortest route, but this is not 7. Conclusion and Future Work
always the quickest. To find the quickest
route to the centre of the maze it is neces- This paper reports the results of a feasibility
sary to use an advanced form of the study which aims to establish that in future
Bellman flooding algorithm, which floods some military purpose vehicles or we say the
with time instead of distance. There might unmanned vehicles which can searches its
be two paths in first path robot has to make own path in the battlefield avoiding the ob-
more turns than the other path in which the stacles. Currently this project is undertaken
number of steps are few more. by the government of U.S to design auto-
nomous vehicles for military purpose by the
For this Time Flooding Array first of all we year 2020.
have to create a Direction Array in which
the direction of robot is stored. It can be implemented in making the ve-
hicles autonomous, DARPA Challenge in
US challenges engineers to make autonom-
ous vehicles which can cross through the
hurdles placed in their way. The basic mo-
tive behind this is to make unmanned ve-
hicles for US Army till 2020.
Direction Array
Finally, we aim to combine Artificial Intelli-
In the above direction array the current di- gence and some other sophisticated algo-
rection of the robot is stored. Now the flood- rithms on our robots to make them more in-
ing array is filled in taking direction array as telligent and smart slaves which reduces our
reference. work efficiently.