Maze Solving Algorithm With Artificial Intelligence

Video of the This Project  📺

Purpose of maze solver robot is solving a maze,  which is built by unit square. The robot doesn’t know start point, an end point and ways in the maze. Solving a maze means learning ways in a maze, finding endpoint and finding the shortest path between the end point and start point.


For this robot, a robot’s movement control and maze solving algorithm are important. I developed lots of different algorithms for maze solving. My last algorithm’s name is “Storm Algorithm“. This name comes from how it finds an endpoint. Also, for this algorithm, I used artificial intelligence. Maze solving is important. However, the robot’s movement control is important as maze solving. At the beginning of making the robot, I used PID control algorithm, but it wasn’t good enough. Because of that, I didn’t use integral(I) part of PID and I used addition techniques which I developed.



The software of robot is important, but electronics and mechanics must be good too. Before making the final version of the robot, I made lots of prototypes and test. One of my biggest problems was cables because I had to use too many cables to connect jumpers. To solve this problem, I learned making double layer PCB at my home. Of course, I found the right way after lots of test and failure. Maze solving algorithm does lots of processing, so I used a dsPIC series. I used smd PIC to have more space on PCB, so I developed my smd brazing skill :) With this, I was able to use smd versions of other components. The robot needs to know how much it went to move and solve a maze. For this, I used a magnetic encoder.

The robot has a control algorithm, but for success for this algorithm, the robot should have good wheels and motors. I made two types of maze solving robot: Two wheels and four wheels. They have both advantages and disadvantages. Firstly, I made four wheels robot. For this, I used two motors and gears.  I started with making the part which has gears, wheels, and motors attached on. I made lots of test for making this part because this part affects gears’ and wheels’ motion. After lots of tests, I found the right design. Next step was selecting a motor. To select motor, I made some researches and according to my researches, I bought different motors. I made tests using these motors and I decided motor which I will use.