Let's Make Robots!

A journey into small robotics

Swarmi - A journey into swarm robotics




Swarmi - A journey into swarm robotics

or a journey into small robotics

I think each of us have a favourite branch in robotics. There are many different types to choose from. I have several favourites and one of them is swarm robotics. It's an area that is gaining poularity and there is a ton of resources on the net. For now most of it is University based however that may change. The real obstacle for hobbyists is cost. While Universities have swarms of 100 or more bots I figure as a hobbyist if I can build ten as a minimum, I can still call it a swarm and do useful experiments with them.
As I don't have a budget like a University, I am keen to get the price down per unit as low as possible.
A basic start here robot could cost around 100 bucks multiply that by 10 and you've got a $1000 outlay. I don't know about you but $1000 can be good for a lot of other things too.
I first stumbled across a project called Formica which I got really excited about. Using pager motors and an msp430 processor it looked a really impressive effort. It was the first example of low cost swarm robotics I'd seen. Then only a year later came the kilobot project. Cost to build one kilobot unit was said to be 14 dollars on the BOM(bill of materials).
So this is my inspiration for the design of swarmi.
LMR member Lumi is working on swarm robotics as well and his project looks very interesting and of course I am following closely.
So I've made a start with my own interpretation of formica and kilobot using pager motors for propulsion.

Here is my first model of Swarmi. It is for the time being only a test unit for the motors and how good/bad they work. I am using my four button IR remote to control the motors for now to experiment with motion control.

Which in the initial stages does not appear to work as well as I'd hoped. Before I try another tack though I need to swap out the cr2032 battery which is inadequate for the supply.

The voltage drops too much as the tiny cr2032 is loaded up by the motor current. The IR receiver then fails to respond to signals from the remote because it will only work at above 4.5 volts. In fact I used a 3-5 volt booster on the cr2032 which is only 3.2 volts and that is also just asking too much. So I will fit this lithium cell and do some further testing with the motors before I decide if I need to change my design.

If you are interested in swarm robotics as well here are a few links to interesting sites covering them.
Ant Robotics
Artificial Culture Project

update 21/9/12

Upgraded the battery and although I don't like the size of it in relation to swarmi it at least has all the power I need.


I've had a bit of fun adding pwm for the motors. Because the IR receiver is using the capture pin the inbuilt pwm isn't available and it would only do one motor any way. So I've bitbanged pwm using timer interrupts with timer 0. Unfortunately the capture function uses timer 1 and getting the timing right between the receive message function and maintaining a pwm signal has not been easy.
I've learnt something about the performance of the motors though. I learnt that the front has to be the sloped down end with the single rail, I had it the other way around. So I built a second unit the correct way. I also worked out that the motors must turn counter clockwise to drive forward.
While I can get reasonable control using my remote I'm not sure if consistent results are possible with this design. If I can get the timing issues sorted better I'll be better able to determine whether I need to rethink the mechanical design.
Also the surface very much affects how controllable the movement is. It's a no brainer that it needs to be smooth and flat but it also needs to be very level and consistent friction.

Not much space to fit everything so I had to use a 1k smd resistor for current limit to one of the transistors. I ripped it from an old board and was a perfect fix for tight space.

Leaving in a couple hours for a weeks holiday. Will continue when I get back.















Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Hey merser, any news about your swarm?

I have not been able to get predictable control out of the motor setup. I'm going to go differential drive now. I have some small coreless motors on the way but I discovered I can get those motors your using for as little as 1.60 if I buy 10.
I suspect in the end my swarmbots may end up looking very much like yours.

I see. No problem, I am sure yours will look different or at least behave different :-) Good luck with the differential drive.

Thanks for your fast response to my comment in your remote control post :-)

Your system looks well designed, a little tweak here or there and you get something reliable done. For the pager motors, I would go to power them down to a minimum via PWM also to save battery power. Antother way to get a better power efficiancy is to add a small solar panel on the robot to recharge the battery whenever it's bright enough. 

I build my first own swarm bot this weekend (yes, we built some in the hackerspace before but as a group project) and going to try some different attachments (sensors, actuators..chainsaw LOL). I will collect your blog an keep an eye on it :-)

I am sure we can profit from each of our findings :-)


I find tiny robots fascinating, I like how you used components to mount the motors. Are your bots going to BE the swarm system, or is there going to be an overhead controller like the kilobot project? (collected)

Hey JerZ, while I'm not using the resistors(holding the motors) in circuit now for any purpose it is an option I though of if I run out of space for components. And it is a tight squeeze fitting everything in 30x35mm.
For now I want to see what I can do using only the memory in the pic. I won't rule out an overhead contoller in the future.

Thanks Birdmun. I hope I can continue to provide updates as I iron out all the problems I find with turning an idea into reality.
I've upgraded the battery but now I need to pwm the motors as near to 5v to them is like using a sledgehammer to put in a tack. The vibration is loosening one of the plugs,lol. I'm going to try 50 percent duty at about 400hz and see if I can get a better result.
In the end I think I may have to try either coin type pager motors like kilobot or mounting the motors like formica. I'd prefer to stick with the kilobot way as it's a pain to remove the counterweight on the motors.

you could probably buy a couple of those motors without the off-center weight.

after having been quiet for a while.

Nice work!