Anand Tyagi – Swarm Project: Final Observations

For our final project, our team of Gabi, Diana, Kevin, and I, decided to mimic territorial behaviors of animals aiming to protect their territory. The main procedure would involving identifying the “enemy” and sending the robots to remove it from their territory. In this case, the enemy was a specific QR code and the “territory” was the green box under the camera. Our plan was to use the computer vision program set up in the room to communicate the position of the robots and use that information to send commands to each robot. Although we could send every command to every robot and have each individual robot decide how and when to run, we realized that this could be more efficiently done by doing the calculations on the computer instead, and sending more limited instructions to each robot. This was the system could run faster and more naturally mimic a real life system. Of course, this also takes away from some of the “swarm nature” of the project. However, since the only difference is the amount of computation each robot has to do, rather than the type of computation, I think it is justified to do the computation on the computer instead of doing the same repeated computation on each robot. 

Beyond just having the robots collectively remove the enemy out of the territory, we decided to add another layer of complexity and only send as many robots as necessary. We did this by sending one robot and checking if that robot was able to move the enemy on its own. If not, it would call for reinforcements and continue this process until it had enough power to move the enemy out of rectangle. We were planning on testing this by filling a box with varying levels of sand. 

Although we were not able to test our project and code in the end, we did make a lot of progress. This project helped us learn a lot about how to break down a problem into steps and how to go about constructing a complex algorithm for a large system of robots. As you can see in the picture down below, we broke down each process and listed out the procedure step by step. 

Besides this, we also iterated over our code several  times while figuring out how to simplify and speed up the entire process. We also learned a lot about how to break down a larger project into more manageable parts and have a little insight into how larger coding projects are broken down and worked on by multiple people.  

Overall, I enjoyed this project as it taught me quite a bit about how to build code for larger systems and also, how to make algorithms for swarms of robots. 

Leave a Reply