Skip to content

RoboticsClub-IIT-Indore/IITISoC-24-IVR-3-MICROMOUSE

Repository files navigation

IITISoC-24-IVR-3-MICROMOUSE

GOAL

To develop a maze solving micromouse with hardware integration using simulation

People Involved :

Mentors:

Members:

Initial plan:

  1. Algorithm: To try out and find the best algorithm for our micromouse and simulate it in mms
  2. Hardware: To find the most suitable and optimal hardware for our micromouse according to the requirements and rules.
  3. Optimizations: If time allows, to optimize the movement of our mouse.

Algorithm:

Depth-first search:

It involves visiting all the connected nodes of the maze one by one and explores the whole node till it reaches a dead end.

DFS.mp4

Dijkstra's Algorithm:

It is an algorithm for finding the shortest paths between nodes in a weighted graph, which may represent, for example, road networks.

Dijkstra.s.mp4

A* Algorithm:

It is a graph traversal and pathfinding algorithm. A* achieves better performance by using heuristics to guide its search.

A-star.mp4

Floodfill:

This algorithm calculates the manhattan distances of each cell from the center and makes the mouse move towards the smallest distance from the cell choices it has. Our mouse doesn't know about the maze wall placements at the starting, so this algorithm dynamically adapts and calculates new distances as soon as the mouse finds a new/undiscovered wall.

Floodfill.mp4

We finalised this algorithm for our micromouse as it dynamically adapts to the maze and ensures the shortest path when run for a couple of times.

Next we added return trips to the algorithm as the rules state that the mouse has to return to the start on it's own. This return trip is again utilised by our mouse to find a better path.

FloodfillReturnTrip.mp4
Algorithm --- Floodfill

Hardware:

Once we were done with selection of an algorithm, our next step was to look out for the best hardware that we could put in our micromouse.

Microcontroller:

The microcontroller is the brain of our mouse. It carries out all the computation, hence we needed a powerful yet compact microcontroller. We compared various microcontrollers on a certain criteria. image

We finalised STM32F103C8T6 for our micromouse.

image

Sensors:

Sensors are the eyes of our mouse. They help the mouse detect where the walls are and move in the center of the maze, without colliding into the wall. After much thought, we went with IR sensors and ultrasonic sensors. IR sensor:

image

Ultrsonic sensor:

image

Motor:

We needed a high rpm, accurate, and compact motor. A comparison was done keeping in mind these factors. image

We chose N20 metal gear motors since they are powerful and compact.

image

Motor-Driver:

We needed a motor driver which is accurate and has a voltage range which can drive our motors. image

After a detailed comparison, we locked our choice on TB6612FNG Dual H-Bridge motor driver.

image

IMU sensor:

An inertial measurement unit sensor was needed for the bot to know where in the maze it exactly is. Finalised IMU was MPU6050 which is a 6-axis IMU sensor.

image

Power source:

The power source was required to provide power to all the components sufficiently. We first noted down how much power each component took. We checked the voltage requirement

image

and the current requirement

image

After comparing different power sources, we chose two 3.7V lithium ion cell.

image

Optimizations:

Due to constraints in time and lack of resources, we were unable to optimize much of it performance, but we optimized floodfill to follow more straighter paths.

Floodfill_optimised.mp4

References:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages