Biped Arduino Humanoid Robot

I wanted to make a Biped Robot ‘from basics’ instead of a kit, using some sheets of metal that I could saw and bend myself, standard strong servos and an Arduino based development environment.

This is the result so far. It’s a work-in-progress, so I’ll probably make changes to it. The software isn’t done yet, but it can at least crouch and stretch, lift a leg etc.

Here is a video of it’s first steps. It fell forwards after the video was over. Will improve the software and then post it here later.

First steps

The version 1 plans of the robot are as shown on the image.

I basically cut along the solid lines and bend along the stapled lines. In fact I didn’t quite do it as on the plan, but it’s pretty close. There’s a full size pdf available here. The drawing is drawn using CadStd Lite and if you ask you can probably have the original file.
The main components are A and B. The servos are attached in A.

Some comments:

  • Component A could be made a bit narrower (30mm/35mm/30mm instead of 35mm/35mm/35mm), which might help the servos a bit. The servo could be placed along the ‘wall’. Maybe other components could be optimized also.
  • It’s quite tall (about 35 cm or about a foot). That together with no torso, makes it hard to balance. (and no feedback from servos).
  • It requires 12 really strong servos. I’m using Power HD 1501MG, which is said to have torque. The one that struggles the most is the hip that lifts the leg outwards. It might be that the design could be changed to make it easier for that servo.
  • I used a 1mm thick aluminium sheet, but it can probably be done with other materials also, for example steel or plexi glass.
  • I put some bigger feet on it to make it a bit more stable and easy to program, using plexi glass (see the picture).
  • Cut it with a jig or contour saw, drill the holes and bend the pieces along the dotted lines (check YouTube on how to bend sheet metal without special tools). It doesn’t take long to make. Before you drill, use a nail and hammer to make a mark where you want the hole. This makes the placement more accurate and makes it easier to drill.
  • The controller board is a self made AtMega328 board using Arduino as the development environment. It’s using 12 digital outputs to drive the servos. I’m using the servo library that’s part of Arduino. I can share more on the software later, but if you have questions or suggestions, please comment below.
  • I’m using separate batteries for the servos and the electronics to prevent voltage drops caused by the servos to reset the controller. For the servos I’m using a 6V NiMH battery. These servos draw a lot of current, in total somewhere between 5 and 10 A. I wanted to use LiPo batteries, but they’re quite high voltage and will probably damage the servos unless I use a regulator. There are LiPo capable servos, but they’re quite expensive.

If you want to try also, please go ahead using the Attribution + Noncommercial + ShareAlike (by-nc-sa) Creative Common License. Let me know if you have improvements, questions or comments. If you want to make your own biped robot and you find the kits too expensive, this is the way to go. It works, it’s not toooo much work and you learn a lot.
If you’re wondering where the parts go, here’s a picture trying to explain it.

I’ve used a 1mm thick aluminium sheet. It’s probably possible to use both steel and plexiglass instead. Some of the joints would benefit from thicker aluminium or steel.

As the project progresses, I’ll put in some more info here and maybe post a video and some code. If you have comments or questions, please post. I’ve got an antispam on that may make your comment take some time to appear.

Here is a picture of one of the servo mounts in more detail.


50 thoughts on “Biped Arduino Humanoid Robot”

  1. good job guys .. like it …

    i am from india .. i did a similar one for hands.. but long hands.. some how managed to have some torque at 8 volts…

    it would be pleasure to contact you guys to discuss a few things…

    my id is [email protected]….com

  2. For 8 volts, don’t you need special servos? I thought 6 was max for standard cheap ones, though I haven’t tried 8 in fear of burning them.

  3. I don’t think you can do steppers instead of the servos. Stepper motors are typically heavier compared to the weight. The robot would be too heavy.

    About the price. This robot uses 12 metal gear servos, all relatively expensive, so the price is typically relatively high. I would think something like 150-200 USD in total. But you could probably use cheaper servos and also cut out some of the servos, and still be able to walk ok. Hobbyking is a good source for cheap servos.

    It may be that digital servos would be more accurate. My problem with this robot was that without feedback, the battery voltage/charge was not constant, leading to different torque and different behaviour. If I was to do this again, I would add a gyro or accelerometer to compensate, or use feedback on the servos. I’ve been thinking of repeating it with for example the cheap Gyro-board that can be picked out of a 10 USD Wii accessory from That may have prevented it from falling over.

  4. Hi Lars, very cool project using arduino for Humanoid robot, I try your code and compile it code, but coe is error, can you check out your code please?

    the code have comment error like this (stray in program)

  5. good work but i think, at the robot need ad accellerometer or alse.. and robot need a new perfectioned script for walking .

    1. Yes… this was one of my first projects. There are so many things I would have done differently. Maybe use a gyro/accelerometer etc. Thanks for the feedback anyway.

  6. Hello Lars,

    First of all I would like to congratulate you for this amazing project.
    I’m from Brazil, student of Computer engineering, and I’m very interested in your project because I’m developing a conclusion work for my degree about a protesis to inferior members with some colleagues where we’re planning to use arduino as you did.
    I would like to ask you if are you open to discuss some points about your project helping us to solve some issues that we’re having while planning our prototype. We’re “fresh” in these subjects once we just studied the basics in the college.
    your help would be really appreciated, granting you the proper contribution you did in our work.

    Thanks in advance!

    (sorry for my broken English)

    1. Sure, send me questions here or on email (as you have already done). The email alert for my messaging functions aren’t working properly, so safer to reach me on email.

  7. Hey Lars,
    Im an electrical engineering student in my final year, planning to do a humanoid robot as my graduation project, i have looked at this project and it looks great..the design is quiet simple and works fine,it could use some more sensors as you have mentioned.. i was wondering if a torso and an upper body could be developed and attached to this one..what do you think?please let me know if you have any ideas, i would appreciate your help.
    Thanks and best wishes,

    1. I think it would work better with a torso, since this could help balance it. I would consider building some of the parts in plastic to lower the weight.

  8. you dont happen to know of a similar design for torso,do you? or maybe a link that would help? im actually not familiar with all the mechanical work but trying to learn it… my main idea is the addition of a kinect sensor with an arduino to work as the vision system for the whole robot..but still stuck with the mechanical design!

  9. Hi Lars,

    First, a very nice designed robot. I intend to build a biped robot for my son as a gift. But, as newbie, I don’t have any experience. I would really appreciated if you can share me with your design, specifically, how you mount the servo motors?

    Thank you.

    1. Hi. Yes, it’s a bit difficult to see on the picture (you saw the picture with the characters on it, right?). F is on the bottom, glued onto E and D is also on the bottom. Sorry for the late reply. If you haven’t already figured it out or lost interest, I can try to take a better picture. Let me know.

    1. A good reason for using a separate controller could also be to have feedback of the servo position. That’d make the controls a lot more accurate (I think).

  10. hi guys
    can any one tell me how does the lower parts fit (D,E and F) a sketch or pictures would be very helpful

    1. The main problem with the servos I use is that there’s no feedback. That makes it very difficult to control, as the servo force reduces when the battery fades. So feedback would improve it tremendously.

  11. Hello,
    I read is a AtMega328 board, I use Arduino Mega 2560 R3, their is not errors in code, but doesn’t work in Arduino Mega 2560 R3, somebody knows how to convert AtMega328 to ATmega2560 R3.
    Thanks a lot

    1. The servos are the expensive parts… the aluminium board itself is cheap. Servos would typically be 10-20 USD each for strong enough servos.

  12. do I need to connect the servos in a definite output pin or can we connect it to any output pin.
    And can we connect extra servos then the required number for more power.

    Thanks in advance.

  13. Can you make a humanoid robot with hand legs and height of a human and talking if you can than post it on Google I liked your idea very much its hard for me but I’ll make it its hard because I m of only 12 years where you live

Leave a Reply

Your email address will not be published. Required fields are marked *