Let's Make Robots!

Barry, HXT900 Hexapod - Video & code added

Robomnia_1.0.zip531.29 KB


This is my latest walking robot under construction. It's an improvement over my Lollypod robot in that it uses three servos per leg rather than two. This will allow me to do inverse kinematics. I'm trying to keep the cost of this robot down as a testbed for my control program, which runs on my laptop or phone and control the robot over bluetooth.

It's made from a 4mm plastic chopping board and some 4mm plywood that was lying around. So far it has cost around £100, most of this is the servo controller and bluetooth module. The servos were $3.60 when I bought them from Hobby City, they're now down to $2.99. 

Hopefully this will prove that these servos are adequate for walking robots, as most of the small ones I've seen use Hitec HS55s which are at least 3x the price.

My ultimate aim is to built a slightly larger hexapod which can carry it's brain (Windows Mobile smartphone) and use the sensors built into the phone (eg. GPS, accelerometer, compass, light sensor) to navigate autonomously.


Leg parts

Coxa joints


Lots of parts



Quick update, parts mostly put together. Still need to centre all servos.


Update, 1st June:
I got a Pololu Maestro 24 to improve the movements a bit. The SD21 and Picaxe combo just weren't fast enough to

update all the servos regularly enough for smooth movements. Another plus is that it's much smaller, so once I got all the servo cables tidied I was able to get the battery to fit in the body with room to spare.


I've been trying to get more and more things automated in the code, with a view to full autonomy at some point. My main function takes a speed, steplength, stepheight, pitch, roll, yaw, degrees to turn in each step, x, y, and z body shift, number of calculations to be done per step and gait type. Hopefully the 'AI' or navigation part of the code will just need to decide a speed and direction to walk in, and all the other parameter will be calculated from those.



Another update. I have the SD21 swapped out for the Maestro which works a lot better. It's walking much faster than it did previously. The limit is now flexing in the legs. Since the femur and tibia (the wooden leg parts) are only attached to the servo horn, there is some twisting going on. To counteract that, I'm modifying the HXT900s to add a pivot point opposite to the servo horn shaft. I'm glueing M2 nut inside the case with a hole for a bolt to go through. This will allow me to add a second femur part to the legs.


Here's a few pics of the hexapod as it is just now. I think I'll wait until after I strengthen the legs to post a video.





Update, 31/5/11;


Well I've been doing a bit more work, and got the walking smoothed out quite a bit! Video attached showing IK movements and walking with a couple a different gaits. Also I have added an autonomous behaviour, which is currently just wandering around using the sonar. It doesn't work all that well; I think the way I have it mounted or its position (quite close to the ground) might be interfering a bit and giving poor ranges. I am going to add a Sharp IR sensor and some whisker switched so it'll have a range of sensors to rely on. Once I have it avoiding objects reliably, I can start working on more interesting behaviours :) . Thanks for all the comments btw!

Code now added. Most of the interesting stuff is done by the classes in the hexapod namespace. It's pretty messy, there are a few classes which aren't used at all and it could definitely be organised better, hopefully it's useful to someone.

Comment viewing options

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

Wow.. great job..

I am very interesting in how the hexapod is walking with the servo's you are using. What is the total weight of the hexapod?


I'm not too sure how much it weighs . . . I'd guess about 300-400g. The servo's weren't the limitation so much as getting the servos to move smoothly between calculated IK positions. However the guys at Pololu have said that they are working on a mode for their servo controller which should improve this, if and when I do more work on it.

Thanks for posting.  This looks absolutely awesome!  I'm new to microchips in general and robotics.  My goal is get a hexapod running someday.  I'm intimidated by the hardware and shell construction aspect.  It's great to see someone fashion a working model from materials I could work with.  I love the design, including the ascetic angle of the "hips".  I can't wait to see video.  

I'm curious, would it be better to update the legs in sequence of body part rather than one leg at a time?  I have absolutely no experience in this, so I'm just spit balling.  I was thinking, update hip angles, then knees, then hip rotations??

I am curious about what I'll run into in terms of speed of update.  I would plan on bit banging the PWM signals directly, dividing the timings by 18.  Thoughts?

Again, thanks.  This has given me great ideas as well as hope that I can build a hexapod within my budget.

Hey, I'm glad you like it. I started off hacking it out of plywood with a view to getting it made from aluminium or plastic later, but the wood does just fine and didn't cost me a penny.

I don't think the speed of updating the servos is really the problem now, the IK code runs pretty fast on the phone. The best thing to do would be to control the servo's speed as well as position, which would be a pretty easy addition to the code. However, the Pololu guys are bringing out a feature which should make this even easier. I'm busy with uni and all that entails just now so I'm not sure when I'll get back to it. Good luck with your project.

Feel like a fool.  I meant "aesthetic" not ascetic.  ( I'm a former monk, so forgive the slip ).  :-)



This is a great little hexapod and like everyone else I would love to see a video.

Thinking about building something similar for a Uni project, there is just one thing im not sure on though.

Im assuming you are using a UBEC to step down the Lipo voltage, what current is the UBEC rated for? I know they are small servos, but im guessing ~20 of them holding position or moving at the same time would draw quite a bit of current.

If anyone else has any idea about this let me know. I want to order one asap, but I want to be sure to order one that can handle the current.


guess humans are the first ones to make 6 legged spiders :P

by the way i think covering the bottom of the legs with some rubbery material would improve the grip thus enchancing movement




I've decided it's high time I got on with this project. Over the last few evenings I've made some enhancements to the code.

Instead of just sending the servo positions to the Maestro I'm now also sending a speed values, which is calculated so the servos arrive in at their position just as the new positions are received. This is a lot smoother than my old approach of just sending as many positions as possible, and it also means I can run the inverse kinematics functions less frequently. 

Also I'm getting into using the object orientated side of programming, which will make it a lot easier to update the speed, direction etc. of the robot from different parts of the code. This has been a major problem so far whenever I've tried to write autonomous functions.

I'll try and get some new pictures taken soon, the hexapod now has double femur parts and a tail section for holding the battery and voltage regulator, freeing up space in the body. Maybe a video too if I get a decent navigation function working :)


Great job -

I've used these 9g Mini servos on my simple hex walker (see Simple hexapod walker  http://letsmakerobots.com/node/26783 ). I've found they're fine - there seem to be 2 varieties, a 2.2 Kilo Torq one(which I used ) and a 1.8Kilo torque. It's scuttles around fine as you can see on the video on only 3 Servos, so spreading your load between 12 (even assuming only 6 in ground contact) I'm guessing you'll be fine. I love it when people solve a problem rather than just throw cash at it !

I'm working on a similar design myself, but not got this far (slightly different issues with mine, but that's for another posting) - oinly a a 12 Servo model (intending like you to expand to 18 and more) - my other 'bot was a bit of a diversion for a few quick results. I'm using standard servos for this one, as I'm using a lot of Aluminium, but I think you'll be fine. I do find the little servos are just as greedy for power as their grown- up versions.

Would be  interested in understanding inverse kinematics - not a subject I've ever looked at until now - if you have some tips I'd be greatful !

Just love the 'bot - looking forward to the video

Hey I saw your bot! It looks cool, I built the same three servo hexapod design as my 'start here' robot. It was pretty haphazard, just bits of wood glued together with chunks of lego and other stuff holding it together. It walked pretty well though, and the ease of only three servos was great, a lot easier to concentrate on doing interesting stuff.

As you get up to 18 servos it makes more sense to use IK as it makes adding new gaits etc. easy, while also allowing cool stuff like body rotations, variable speeds, variable walking direction and so on. There's quite a bit of stuff online.

I kind of wish I'd gone for cheap standard size servos, for a couple of quid extra per servo I'd have a much bigger platform that could lug extra batteries and sensors, along with the smartphone doing the calcs. Maybe when I get this one really dialled in I'll invest in bigger brother bot!