For my junior undergraduate research project, I chose to focus on swarm intelligence. In particular, I simulated the process of phagocytosis - when one cell eats another - by using a swarm of Kilobots. These robots are developed by Harvard and designed to be used in swarm robotics applications.
Alone, each Kilobot is unable to perform any meaningful function, but as a group they perform emergent behavior matching that of a phagocyte. My simulation fully captures the searching, movement, and engulfing behavior of a phagocyte, but not the actual destruction of foreign bodies.
For a much more detailed description of my, you can checkout my GitHub repo which has my research paper and code. Otherwise, the following videos show off some of the results.
Each is an example of my code running in the Kilombo simulator for Kilobots. Because the simulator can’t render the light gradient (closest analog I could get to bacteria’s chemical gradients) I had to draw it in as well as the source (which I label ‘harmful bacterium’ for reference.
It might be worth describing the colors of the bots in the following videos as well, as each indicates a separate role:
Blue → Kilobots that have the highest light reading in the swarm. These bots call the others towards them.
Green → “middle-of-the-pack” Kilobots that know they don’t have the highest reading, but also aren’t at the “back” of the swarm.
Red → Kilobots that know they are at the “back” of the swarm and need to move. These bots attempt to follow the edge of the swarm.
Adaptability and Scalability
This video just shows that a member of the swarm can be ripped out and the swarm will adapt. That is, new Kilobots will emerge as the blue, highest-light-reading bots. Also, dropping the old bot back in doesn’t cause any issues.