The Micromouse competition has been running since the late 1970s around the world. The goal
is simple: get to the end of the maze as fast as possible. To solve the problem, a differential
drive robot was built. The robot was programmed to navigate the maze with a given map of the
maze’s walls. The proposed solution combines several control algorithms to ensure the robot
can navigate the maze without losing track of its location. First, a map of the maze and a route
from start to finish with all the points along it were coded in the robot’s memory. The route
consists of two main actions: driving forward and turning. Second, the robot was fed with an
initial position and a destination point in the maze. When navigating in the maze, the robot
follows the route while keeping track of its position using encoders and distance sensors. The
robot is programmed to reach the next point in the route using a PID control scheme over the
distance it needs to travel. Combining encoder readings and the robot’s kinematic model allows
it to determine the distance it has traveled. Distance sensors are used to validate the robot’s
position against the known map of the maze. The measurements from both the encoders and
the distance sensors are fused using a Kalman filter to improve the robot’s estimation of its
position in the maze. The proposed solution shows a way to implement the navigating phase
from the start to the goal after the robot has learned the layout of the maze while establishing
localization to navigate the maze.