Let's Make Robots!

RuBo the drummer robot

Drums on things
drum-machine.bas37.38 KB
player-v2.bas18.74 KB
player-v3.bas18.5 KB

UPDATE 16th Feb 2010: File attachments

First of all: Thanks to fritsl for the original YDM. That's (quite obviously) the source for my inspiration to start building my first own robot. For instructions how to build your own go here: How to make a Yellow Drum Machine

So this is my first robot and it's called RuBo (drummer robot is "RUmpaliroBOtti" in Finnish). It's mostly finished but the software still needs some fine tuning. Anyway, it's already drumming :-)













































Here's some more pictures.

Front view:




Happy New Year!

Register plate attached and ready to rock 'n' roll!




Update Jan 13, 2010:

I think it's time to mark RuBo as complete. Otherwise it'll never be finished because I'll be playing with its software forever.

Since the first post I have made the left drumstick a little bit longer, tried some different navigation routines that usually made RuBo's navigation worse and also added a couple of new beats (remember: I'm not a musician).

So today I decided to shoot a new video just to show the "finished" version. Unfortunately RuBo got a little bit hurt. Ok, I'll confess. It was my fault. I accidentally almost pushed RuBo off the table and grabbed him. That's when I must have broken its drumstick. I didn't notice it until I was shooting the video. Here's a picture of the broken drumstick and the video is here: http://www.youtube.com/watch?v=u-01z8Q_pig (also embedded above).

RuBo's drumstick got broken

I looks like the cheapest 2 component glue I found didn't hold.  Same thing happened with the teaspoon tail earlier. Maybe I didn't clean those GM10 motors well enough before applying the glue or maybe it just won't hold. So now I tied some fishing line around sticks to hold them in place before applying the glue. Hope it helps.

And here's a picture of fixed RuBo.
RuBo is just fine again

After fixing RuBo I finally managed to shoot that "finished" video. It's here: http://www.youtube.com/watch?v=oiNepTlNZcc and also embedded above.

You may notice that RuBo has difficulties staying in rhythm every now and then. It's because I implemented the "player" part of the software so that drum beats are stored in EEPROM in an encoded format I made on the fly and I didn't think of any timing issues at that time. When I tested the player the first time it seemed to work just fine. But when I added other features than just playing with drum sticks (moving, turning head, loop, set tempo) I noticed that processing the beat data took so much time it was noticeable when RuBo was playing. So I had to optimize the player code couple of times to make it sound better. But you can still hear the timing issues in RoBo's drumming. At least I can :-)

To make writing new beats for RuBo easier I created an Excel macro that gives me code to be pasted in to the player's code. Here's a screenshot of my "Excel drum beat designer" :-) (click for larger image):

Excel drum beat designer

I'm already having some thoughts of rewriting the player part (once) again. Now I have used pause to implement tempo (pause x ms between beats). I think it may be better to use timer for tempo so that every N timer increments next beat is played.

That's all there is for now. Check out the new videos embedded above :-)


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
I didn't know there are more finns than me
Hey, you got shuffle in the code now! Respect! Only you and TheCowGod came that far! :)
Shuffle is the easy part. The hard part is creating new beats since I'm not a musician :-)

it should be fairly easy to find basic drum patterns on the net. Also midi files and "soundtrackers" / sequencers.

However, a fun thing is to 

A) When driving around generate some "random variables based on sensors" / "Compose your track based on the suroundings"

B) Instead of hard coding the tracks, only hard code the basic rules (like ex bass drum on 1, and snare drum on 3) - and then let the random variables fill in, like "If variable this, than every 4 times skip bass drum, if variable that, then every second time let bass drum also be on 2 etc.) And then let another variable set over all speed, shuffle, andmix of tracks to play (like AAAB AAAB) etc etc.. all sorts of fun makes robot "compose" by itself.

Really interesting is it if you are able to play one snare drum track in another beat, gives cool new stuff!

Robotic composer could be funny. Didn't think of that. I just concentrated on packing "precomposed" songs to eeprom. So far I managed to put 4 songs in 215 bytes. Maybe I give that random composer a try. It would give a plenty of variation to drumming. Too bad I'm now so excited about building robots that I just want to build too many different ones and can't concentrate on just one :-)

Great drummer bot and good looking pictures! And it's always nice to see finnish robot builders.

I've been planning to build drummer bot for some time now, let's see if i'll find some time soon. 

Welcome to the club of drumbots!

 Like that fast drumming.. i should try it on my own drumbot if he also can do it that fast. (My robot is bigger so his drumsticks are longer/heavier..)

Good work!


You've got a great YDM type bot there - definitely see Frits has made an impression :-) The picture with a sparkler is PRICELESS!

Nice bot!!!


I wonder how many drum robots are on LMR now?


Can you guys imagine if some way, some how, we could get all of them together playing a tune in time.

That would either be SWEET, or they would work together and take over the earth and kill us all !!!  -LOL


Awesome and very cute. I noticed he occasionally used his own head as a drum stick. Was that a happy accident or by design? Either way, an inspired drum machine!