RuBo the drummer robot
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:
Bottom:
Left:
Right:
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).
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.
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):
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 :-)
Drums on things
- Actuators / output devices: 4 x GM10 + 2 x GM2 Solarbotics geared motors
- CPU: Picaxe 28x1
- Power source: 4 AA 2450 mAh NiMH Cells
- Programming language: Picaxe basic
- Sensors / input devices: SRF005