Let's Make Robots!


Holonomic move, remote controlled with a RC transmitter.
IMG_8489.JPG90.05 KB
IMG_8488.JPG87.68 KB
IMG_8490.JPG73.53 KB

This is a hexapod robot based on OpenSCB, an open source servo controller. All code and schematics will be provided under an open source license. It's still a work in progress but a lot of internal code has been done already.

The hardware is based on a MSR-µBug, which is a tiny hexapod structure from Micromagic Systems + 18x Mystery SD90 servos which are the cheapest servo I have seen so far. When the first prototype works correctly, I may move to something more robust, probably custom-built. Fitting the SD90 servos in the MSR-µBug wasn't an easy task. The frame is not designed for these cheap servos, so I had to shorten some plastic pieces with my dremel. The SD90 are wearing out pretty quickly, already 4 of them had their gears broken, so they are probably a bit too cheap for an hexapod.


The board is running realtime translation and rotation matrix for body orientation, and a 3 DoF inverse kinematic algorithm on each leg, all of them implemented with efficient fixed point arithmetic. The board receives commands from a RC receiver, which had been hacked to get the PPM signal. Four channels are mixed together to drive the hexapod, I can alternate between several modes with a switch on the radio.

When it moves around, it uses a dynamic "tripod gait" algorithm, each tripod is translated and rotated for every step corresponding to channels mixing. In the end, the IK does the magic and place each leg at the correct position.


Comment viewing options

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


thats so cool! makes me wanna rush out and buy parts to build one myself!

Thanks! As I just said to hardmouse, I'd recommend stronger servos, the one I used are a bit cheap.

Very well done. I am impressed and would love to see the IK code when you get a chance to put it up.

Thanks! Most of the code is already available in this two files:

demo_hexapod.c / rc_utils.c

Though its not very easy to understand as it is implemented in fixed point arithmetic. I'm planning to write a detailed article about all the algorithm I used here, but it's quite hard to find the time at the moment. Anyway, if you have any questions don't hesitate!


Most of all I like the head.

It is spectacular.

That's a bike light from my local sport shop actually see here :)


Thanks for making this open source.  This bug looks really great and I love the movements you've put together.  I've recently replaced the plastic gears in my Hitech HS-81 servos with metal ones, using a replacement kit Hitech sells, and I've been very happy with no new breakage (so far).

I'd been looking at the Pololu Maestro for some things I want to build, but haven't gotten into it yet.  I'm curious, what were the shortcomings you found with that controller?

Yes I was considering switching to metal gear servos, but they cost about 10 time the price of the ones I used!

About Pololu maestro, I don't have one myself so I might not be the best one to talk about them. From what we've seen from their website, there are a few reasons why we didn't use it:

  • It's designed around a small 16 bits PIC microcontroller (i'm guessing from the picture, because I couldn't find it anywhere on their site), with 8KB of eeprom available for the user. OpenSCB is designed around a 32 bits AVR microcontroller with 256KB of flash in total (program+user).
  • I believe the main difference is that because their firmware and configuration GUI is closed source, I'm limited to what Pololu offer me, I can't extend it, I can't improve it.
  • We wanted to have RC/PPM input from a RC transmitter, I don't think the maestro can do that.
  • So even if I make the considerable effort of rewriting a custom firmware for the Pololu, I don't think I would be able to implement real time inverse kinematric and rotation matrix as we did for this robot. We would need another board to control the maestro.
  • The next release of OpenSCB, will probably have even more IO, and the possibility to easily plug a bluetooth module, Lego NXT sensors, and AX-12 servos. That's another cool thing about an open source project, people are more easily giving their feedback and we can improve our board.

So for a lot of applications maestro might be a very good board, but when you need more complex control, I believe you need a better board. It really depends what you are trying to do.

I looked up your Mystery servo and foound it for $4.  That's a quarter of the $13 I paid for my HS-81 metal replacement gears alone, so yeah, that's really cheap!

As a software developer, I've spent years in the Microsoft world dealing with closed source product, and I greatly appreciate your point of view on open.  I'm also trying to build my individual robot units as cheaply as possible, because after all, then you can have more of them.

Thanks for the thoughtful response, you've got me convinced.  I already have a Pololu unit so I'm going to test some of the boundaries there, but looking forward to getting an OpenSCB and exploring it's capabilities.  I'm excited about your extremely cool project and I can't wait to see how you proceed!

Thanks! If you are really interested and would like to join the project, we have one remaining v0.1 prototype PCB with components waiting to be soldered. It might be quite different from the final board, but it's already working pretty well.

We'll probably organize a broader beta testing of the board for the v0.2 PCB release, if you want to be part of this beta testing, let me know!

Meanwhile, we have a few brainstorming on the way on our forum, if you want to give us some ideas and feedback that would be awesome: OpenSCB forum