An easy to implement project on Swarm Robotics! Multiple robots are scattered in the frame. The objective is to form recognizable shapes from them, without any collisions, in the least time possible. Multiple path planning algorithms (like A* and Djikstra), with swarm optimization algorithms will be applied to achieve this goal. ArUco markers are used to detect the position of the bots, and movement commands are sent through UDP packets to individual bots using in-build WiFi in ESP8266. The ESP8266 controls the robot's movement using a motor controller.
Note: This project is a work in progress.
The project is divided into several subsections. A non-technical summary is given below:
The project uses several dependencies for faster prototyping. These dependencies will be removed in the later stages. The project is entirely built on python (The ESP8266 use's C (Arduino) which will be gradually shifted to micropython). The updated list of python packages needed are listed here:
- Numpy
- OpenCV 4.2
- Pygame
- Pandas
- Sympy
- Simple-Pid
Please Make sure you have the latest version of these packages installed
- Webcam (Minimum 30 fps recommended)
- Small chassis
- Wheels
- ESP 8266 NodeMCU (Micro-Controller)
- Battery's
- Wires, switches, jumper cables, etc.
Assemble the basic bots. Please keep in mind the following details, while connecting peripherals to the NodeMCU
Upload the code, found here onto the MCU
Run aruco_thread.py to switch on ArUco detection
Run bot_x.py (in a separate terminal) to send moving signal to the robots
Run pygame_display.py (in a separate terminal) to view the bots in pygame
Easier deployment technique to run from a single command window is being worked upon
This project is licensed under the GPL 3.0 License - see the LICENSE.md file for details