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 17kg.cm 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.

18 Responses to Biped Arduino Humanoid Robot

  • Pingback: Disruptive Messaging » Walking robot with two legs (biped)

  • sai says:

    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 ns.saiprashanth@gmail….com

  • Lars says:

    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.

  • Silviu says:

    Hi Lars ! Can you give me the code for Arduino on the robot ?

  • Silviu says:

    Sorry..I found it on the right side of your blog :D Thanks..

  • finoz says:

    can we replace servo motors with stepper motors?

  • lawrence says:

    please can u tell the total cost for the robot.
    Thanks

  • lawrence says:

    Also pls can u give the wiring diagram

  • Lars says:

    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 dealextreme.com. That may have prevented it from falling over.

  • Pingback: Fun with servos | Risto H. Kurppa

  • edy says:

    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)

  • Lars says:

    Hmm… sorry, it’s been a while. Will see if I can have a look at it.

  • Lars says:

    Sorry. Download the code from this location instead: http://lars.roland.bz/test/robot.c (it’s not a c-file though. Copy the code into Arduino, as it’s an Arduino sketch).

  • Angelo says:

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

    • Lars says:

      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.

  • Davi Cruz says:

    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!

    Cheers
    (sorry for my broken English)

    • Lars says:

      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.

Leave a Reply

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

*


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>