This is the final project of NYU ROB-GY 6333 Swarm Robotics done by Irving Fang. If you find this repo while you are doing your final project, I suggest you use this as a bit of inspiration for your own design and implementation instead of just copying my code. It's better for your learning (and grading if you got caught of course).
The project involve designing a controller for a swarm of mobile robots in PyBullet environment so they can:
- Make a square formation in the room
- Get all the robot out of the room and make a circle formation outside
- Move the purple ball on the purple square
- Move the red ball on the red square
- Get back into the room and make a diamond formation
While doing all these tasks, there should be no collision between different robots and between robots and wall.
My design involves using potential field theory for obstacle avoidance by Naomi Ehrich Leonard and Edward Fiorelli and edge tension function for formation control.
Most of the above algorithms are implemented in the python/robot.py
and python/wall.py
.
Please refer the the report for more details in math and implementation.
Make sure you have PyBullet
package installed, then run python/run_simulation.py
for the animation to appear.