Swarm Robotics Platform Notes

owen-truebloodOwen Trueblood wrote 10/19/2017 at 18:24 • 3 min read • Like

What does it take to get a bunch of robots moving around on a surface under the control of a computer?

Existing Platforms

Ladybug Swarm Platform

Most existing platforms are expensive because the most interesting swarm robotics research problems have to do with distributed sensing, decision making, coordination, etc. My goal is a little different, I just want to control a crowd of robots driving around on a floor. So centralization is okay and can be used to cut the complexity in each robot, making them cheaper.

Here for $13 you can get a remote control toy that goes straight forward and backwards while turning. Controller, music, and shipping included.

Plan: Hack the controller so it can be triggered from code on a PC (probably as easy as pulling the button pins low from an Arduino). Now you can make all the robots in your swarm do the same thing at the same time. Triggering the forward button makes them all go straight forward, and triggering the backward button makes them all go backwards while turning. That's a start but for the swarm to be useful there needs to be a way to control each robot individually.

So take a microcontroller, like an ATtiny13, and connect it to an IR receiver. Wire it into the toy so that the microcontroller can programmatically disable the toy's movement. Attach an IR transmitter to your computer. Write some code so you can temporarily enable a particular robot in your swarm specifically by transmitting its unique ID. Now you can move all of your robots individually, one at a time.

Add a bright LED to each robot, connected to the ATtiny13. Change the code so that when the robot is enabled the LED shines. Attach a camera to your central control computer and point it at your swarm. Now when you send a command to a robot in the swarm you can find out where that robot is in space. If you make a movement and then compare where the robot ended up against where it started then you can also figure out its orientation.