- Floodfill maze mapping with intelligent exploration
- Persistent memory (ESP32 NVRAM) for instant speed runs
- Advanced motion: Curve turns, diagonal paths, PID control
- Webots simulation for algorithm validation before deployment
- HC-12 wireless module for debugging and data transmission
Sensors:
- 5Γ VL53L0X TOF (Front, Left, Right, 45Β°L, 45Β°R)
- 2Γ Quadrature Encoders
Specs:
- ESP32 Dual-Core | 58:1 Gear Motors
- Max: 14.5Γ14.5cm | <24V | 43mm wheels
- HC-12 wireless module (433MHz)
algorun-robot-2.0/
βββ Algorun_main_3_0_full/
β βββ Algorun_main_3_0_full.ino # ESP32 firmware (C++)
β
βββ Webots/
βββ controllers/N03/
β βββ N03.py # Python simulation
β βββ maze_data.json # Exported maze data
βββ path/
βββ main maze.obj # 16Γ16 Blender maze model
Required Arduino Libraries:
Wire.h // I2C communication
VL53L0X.h // Pololu TOF sensor library
Preferences.h // ESP32 NVRAM storageUpload:
git clone https://github.com/SkyLark-19/algorun-robot-2.0.git
cd algorun-robot-2.0
# Open Algorun_main_3_0_full/Algorun_main_3_0_full.ino in Arduino IDE
# Board: ESP32 Dev Module | Upload Speed: 921600
# Upload to ESP32Requirements:
- Webots R2023b or later
- Python 3.8+
Run Simulation:
cd Webots/
# Open Webots and load the world file
# In Robot window: Controller β Select "N03"
# Press βΊ (Play) to start simulationThe Python controller will automatically explore the maze and output results to console.
Floodfill Strategy:
RUN 1: Explore to center goal
RUN 2: Return to start (explore all cells)
RUN 3: Fast run using known maze
RUN 4: Ultra-optimized (curves + diagonals)
Interface:
- Button 1 : First exploration mode
- Button 2 : Fast run with saved maze
- Button 3 : Ultra-optimized speed run
- Green LED : Success/Setup complete
- Red LED : Wall detection/Stop
- Blue LED : Mode 4 activated
- Simulate algorithm in Webots (Python)
- Port to ESP32 firmware (C++)
- Calibrate sensors + PID parameters
- Test on physical maze
- Optimize speed runs
Enjoy solving mazes autonomously!
