What does it take to get a bunch of robots moving around on a surface under the control of a computer?
- Kilobots (story) - Move on little stilt legs by vibration. Communicate with each other using reflected light. Various sources claim $14 per robot but commercially it costs $1127.28 for a pack of 10 robots ($112.73 per robot).
- AERobot - Can be purchased from Seeed Studio for $20 per robot. Uses vibration for motion, plugs directly into USB port.
- Jasmine - ~$120 per robot
- mROBerTO from University of Toronto
- Droplet from University of Colorado Boulder. Nice open design.
- R-One from Rice University
- Zooids from Stanford University - design is open source
- Actuated Workbench - Uses magnets in a surface to actuate a swarm of magnetic objects ("...the actuated workbench works even when set on fire")
- Madgets - Also uses magnets under a surface to actuate objects above
- Tangible Bots - Robots used as interface elements on tabletop display (paper)
- Thumbles - Swarm of robots with omni-wheels used for tabletop display interfaces
- BitDrones - Drone cubes for 3D user interfaces. 3 types: 1) Pixel Drones (w/ OLED display) 2) Shape Drones (cube) 3) Display Drones (big display)
- "Image and Animation Display with Multiple Mobile Robots"
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.