Welcome to the Micromouse project repository! This project showcases a small autonomous robot designed for maze navigation. Explore this project if you're interested in robotics and autonomous systems.
The Micromouse project utilizes the following hardware components:
The central control hub that connects and manages all other components.
You can find all details and schematic Here.
Measures distances and detects obstacles for navigation.
Detects lines and walls for precise navigation in mazes.
Tracks wheel movements for accurate control.
The wheels of the robot.
We have designed a custom 3D chassis for the robot using Fusion 360. Here's a photo of our 3D design:
For More Photos click Here
Allows remote debugging and control for monitoring the robot.
Drive the wheels for movement.
Provides stability and maneuverability during turns.
Measures angles and helps maintain orientation for accurate navigation.
We've implemented a PD (Proportional-Derivative) control system for angle control using the Gyroscope (MPU6050) as the feedback element. The primary goal of this system is to keep the robot moving in a straight line and execute precise 90-degree turns when needed.
-
Proportional (P): The proportional part of the controller ensures that the desired angle remains static, allowing the robot to move in a straight line.
Functionality: When P is adjusted, it affects how quickly the robot corrects deviations from a straight path.
-
Derivative (D): The derivative part helps fine-tune the turning process.
Functionality: Tuning D affects how the robot responds to deviations in the angle, contributing to stable and precise turns.
For graphs and visualizations of the tuning process, please click Graphs to access the response graphs.
To navigate the maze effectively, the robot continuously reads sensors located in every cell. Here's how the sensors work:
-
Ultrasonic Sensors: These sensors detect obstacles, specifically walls, by measuring distances. This information helps the robot avoid collisions and navigate around maze walls.
-
IR Sensors (Infrared Sensors): While the robot is designed to move in a straight line, minor alignment issues can occur. The IR sensors play a crucial role in detecting deviations from a straight path. If an IR sensor reads a signal, it indicates that the robot is getting too close to a wall.
Functionality: In response to IR sensor readings, we make minor adjustments to the desired angle, typically by 5 degrees, to correct the alignment and maintain a straight path.
By combining precise angle control and sensor readings, our robot can successfully navigate the maze with accuracy and efficiency.
The general idea for the algorithm is that it discovers the whole maze using the flood-fill algorithm and collects the data needed to configure the shortest path using BFS. The code is provided with comments to explain in detail this approach Algorithm.
You can watch a maze simulation in action below:
Maze1.mp4
Meet the team members who contributed to this project:
-
Hamed: Responsible for controlling the robot.
-
3bkareem: Responsible for algorithm development.
-
om4rrr: Responsible for PCB design and assembling hardware.
-
Kareem: Responsible for 3D design.
- You can download the latest version of the Micromouse project as a ZIP file by clicking here.
While this project primarily serves as a showcase, we welcome suggestions and improvements. Feel free to create issues or send pull requests.
For inquiries or to get in touch, you can reach us at [[email protected]]. Enjoy exploring the Micromouse project! 🤖🚀