Skip to content

Developed a Line following and Maze Solving bot based on PID controller which can find the shortest path in a given maze.

Notifications You must be signed in to change notification settings

SurajSonawane2415/MazeBlaze

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MazeBlaze

Develop a Line following and Maze Solving bot based on PID controller that can find the shortest path in a given maze.

Table of Contents

About The Project

In this project, we will create a Line-following, Maze-solving bot that can find the shortest path in the given maze.

Domains Explored

Artificial Intelligence, Embedded C, Control Systems, Graph Algorithms, Electronics and PCB Design

Project Workflow

  • Learning firmware development by completing Firmware task. And we also understand the firmware used in SRA Wall-E and MazeBlaze-v2.
  • Learning PCB design by completing the line sensor array pcb_design task.
  • For bot design improvement we created a detailed sheet to make the bot design better. In which we added the advantages and disadvantages of many designs we've reviewed and chosen the best design for the MazeBlaze-v3 bot.
  • PCB Design for MazeBlaze-v3 by considering all points to make the bot design better.
  • Implementing left follow rule.
  • Implementing path planning.
  • Implementing dijkstra's algorithm.
  • Implementing flood-fill algorithm.

PCB MODEL

Screenshot 2023-11-04 191809

Demo

LFR algorithm(Left follow rule):

LFR.UPDATED.mp4

Dijkstra's algorithm:

DIJKSTRAS.mp4

File Structure

👨‍💻MazeBlaze-v3.1
├ 📂 Firmware
| └ 📂1_left_follow_rule //Contains code for left-follow-rule and path planning
| | ├ 📂main
| | |   ├ 📄1_left_follow_rule.c
| | |   └ 📄CMakeList.txt
| | ├ 📄CMakeList.txt
| ├ 📂2_Dijkstra //Contains code for dijkstra`s algorithm   
| └ 📂Components //Contains all the header and source files used in the project
|   ├ 📂include
|   ├ 📂src
|   ├ 📂esp-wifi-logger
|   ├ 📄CMakeList.txt
├ 📂 assets
├ 📂 documentation //Contains documentation of the project.
├ 📂 pcb_design //Contains pcb_design files of MazeBlaze-v3 board
├ 📂 task
  ├ 📂 Atharv
  | ├ 📂 firmware 
  | |  └📂 1_led_blink.c
  | |    ├ 📂main
  | |    |   ├ 📄1_led_blink.c
  | |    |  └ 📄CMakeList.txt
  | |    ├ 📄CMakeList.txt
  | ├ 📂 pcb_design
  ├ 📂 Suraj
    ├ 📂 firmware //Conatins led blink task files and documentation of the task
    |  └📂 1_led_blink.c 
    |    ├ 📂main
    |    |   ├ 📄1_led_blink.c
    |    |   └ 📄CMakeList.txt
    |    ├ 📄CMakeList.txt
    |    ├ 📄README.md
    ├ 📂 pcb_design //Conatins lsa PCB design task files and documentation of the task

Getting started

Prerequisites

To download and use this code, the minimum requirements are:

  • ESP_IDF
  • Windows 7 or later (64-bit), Ubuntu 20.04 or later
  • Microsoft VS Code or any other IDE

Installation

Clone the project by typing the following command in your Terminal/CommandPrompt:

 `git clone https://github.com/SurajSonawane2415/MazeBlaze`

Navigate to the MazeBlaze folder: cd MazeBlaze

Usage

Once the requirements are satisfied, you can easily download the project and use it on your machine. After following the above steps, use the following commands to:

To activate the IDF: get_idf

To build the code: idf.py build

To flash the code: idf.py -p (PORT) flash monitor

Future Work

  • Implementing better algorithms like DFS/BFS.
  • Achieve higher speeds by increasing the efficiency of the bot.

Contributors

Resources

  • MazeBlaze-v2 GitHub repository of MazeBlaze-v2
  • MazeBlaze-v1 GitHub repository of MazeBlaze-v1
  • Dikstra's Implementation of dijkstr's algorithm in c.
  • Floodfill Implementation of the Floodfill algorithm (simulation).

Acknowledgements

  • SRA VJTI Eklavya 2023
  • Special thanks to our mentors Raj Gupta, Prit Kanadiya, and all the seniors at SRA, VJTI for their constant support and guidance throughout the project.

License

MIT License

About

Developed a Line following and Maze Solving bot based on PID controller which can find the shortest path in a given maze.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published