Arduino Biped




A robot is defined as a mechanical or virtual intelligent agent that can perform tasks automatically or with guidance .
Typically a robot is an electro -mechanical device that is guided by computer and electronic programming .

So I decided to try my hand at robotics, and what appealed to me the most was the Biped as it involves movement and balance. For this Ide be able to incorporate servos and accelerometers.

The Final Biped is a two legged Arduino controlled actuated robot with 8 Degrees of Freedom (DOF) and accelerometer feedback.

This is my first time using Arduino, servos and accelerometers so this may not be the best way to go about the final robot but it seems to be working as intended.


After much research I decided to go with the Arduino as it has Servo libraries which makes life a lot easier. Instead of creating 8 different PWM (pulse width modulation) signals for each servo, one can just set the rotation using a single command. (I will post code later). The Arduino I went with is the MEGA250 which has 14 PWM pins , Im only using 8 for the servos, also more than enough Analogue inputs for the accelerometer. 

The Arduino does not come with an istallation cd so the software can be found at the following link:

Arduino Software

It also doesn't come with the USB cable.
You will have to install the Arduino drivers, they come with the download. A "how to" google search should help.

The servos I used are HD-1501MG which have the minimum torque I would suggest for a biped of this size as it struggles in some positions. I purchased 8 from microRobotics. Heres the link to the product, you can also view the specs:


As far as precision is concerned, these are probably not the best option, but anything more high end was too expensive considering I needed 8.

The accelerometre is an ADXL330 which I picked up off an old project. A gyroscope from a broken WII remote works well too.

The structure of the BOT is Perspex, I cut it from a single sheet and rounded the edges.

I used many nuts and bolts, and a glue gun to hold it together.

An example of a biped with serial communication, Also has a nice GUI which I adapted to work with mine:

A similar Project, which I used the code as a template for my code:

A nice tutorial on how to get the robot walking:

Step 1: Structure - Perspex

Cutting the Perspex:

- I used a Table saw for the long cuts and a jig saw for the short ones.

- I used a grinder to round the edges.

Step 2: Feet

Feet Construction:

- Attach a single bracket onto the center of the base of the foot. img[1]
the ankle servo will be supported by this bracket

- Cut a slot in the bracket for a perspex piece which we will mount to the servo. img[2]

- place the perspex piece into the slot and glue down with the glue gun. img[3]

- Round off the edges. img[4]

Step 3: Joints

The Pivot points are made up of 3 small square pieces of perspex sandwidged together.

- The first square has a hole drilled in so that the bolt can fit through, but the head cant.

- The second square has a larger diameter hole that the head of the bold can fit through freely

- The third square is solid piece of perspex which goes on top of the 2nd square to make sure the bold doesnt fall out.

Put the bolt through the hole of the1st square, place the 2nd square over the head of the bolt (note: the perspex needs to be slightly thicker than the height of the bolts head). Place the 3rd over the 2nd to cover the bolts head.

- grind down the edges of the block

The joint is complete, I used about 14 of these.

Step 4: Lower Legs - (tibia/fibula)

The best way to do this step is to follow the pictures below as it is hard to explain the attachments.

Basically the lower leg consists of the Foot---> Bolt---->Shock Absorber---->cross bolt of shin

- To fit the lower bolt holding the shock absorber, drill a hole at a 45 degree angle through the lowest part of the perspex front plate of the foot.

- Slip on the shock absorber to the end and then slip a nut on each side to hold it in place, 

- see pictures on how to assemble the shin region.

I added a wider base to the feet and a back support with a pivot point all for extra stabilization, see last image.

Step 5: Thighs -(Femoral Region)

The thighs are setup by bolting two of the "thigh" perspex cutouts together. Once the edges of the cutouts are rounded off, make sure to drill holes for the pivot points, 1 at either end of a single side of a thigh section at the centre of the radius of the rounded edge.

- Drill the holes for the servos.

- When attaching the servos, make sure to position them so that their is enough rotation space in the correct direction.

- the best way to attach the servo is to drill 3 holes in line, the 2 holes on either side will attach the turning arm/disk, the center hole will be so that you can attach the servo to its arm/disk with its bolt after attaching the disk to the perspex.

- Now attach the thigh to the lower leg.

Step 6: Hip - (Gluteal Region)

The Hip region is made the same way as the thighs, except they are facing forward instead of sideways.

Step 7: Waist

Step 8: Final Steps



  • Trash to Treasure

    Trash to Treasure
  • Arduino Contest 2019

    Arduino Contest 2019
  • Tape Contest

    Tape Contest

44 Discussions


1 year ago

Hi sir

Upto how much weight and height, it can manage to work


1 year ago

hey can i use this servo for bipedal robot?? it has 10kg/cm torque...please reply fast because i have to buy servos tomorrow...


3 years ago

Hello bluebean , I am Ritik from India. I was just going through your project and I have decided to make it as my science exhibit for the science exhibition . Could you mail me its dimensions . And are the shockers(the red springs attached to the feet) important ? They are not available in India and I was thinking to skip them. Please reply fast.



Have you joined the thigh and the tibua with glue gun or u have just kept the servo motor???

Sir, the supports u made is glued with servo motors or just kept there???



The project you made is awesome....I love it!!!
I m Pratham Kumar and I m 12 years old and I want to make such a biped robot like you.

Sir can u tell me how can we connect the servo motors and the accelarometer altogether on the Arduino board??

Sir I will be ur thankful..



3 years ago on Introduction

Hi, nice project. as i am working on a biped, could please help me to sync the swing and left-right movement for it? i am using arduino and MPU-6050. i just want to know the angle values for each servos for each step while walking.


3 years ago on Introduction

hello, my name is Marthus'm 16 and I'm from Brazil. I was amazed by your project and wanted to try to do it, however I have no card to buy the premium to download the project. could you send me email with the project ? thanks for attention, Marthus.


3 years ago on Introduction

hi..a really cool project..!!

i m too working on the biped..and could u tell me , how did u power up your servos? like , did u use a battery or?

2 replies

Reply 3 years ago on Introduction

Thank you, Originally I was going to use a battery pack but I was worried that the bipeds center of gravity would be too high up. So I used a power supply with 2 leads so the biped was always tethered.


4 years ago

hello i m working in this robot.i m using your code bt the problem is coming due to the speed of servo motors.plzz tell me a way to drive the servo smoothlly and slowelly.


hey this is the image of the biped i made... the problem is it's knee has gone too inclined due to the size of the shock absorber.... due you tthink would it be a problem during motion ???

1 reply

Thanks for the pic! Nice to see progress.

The shock abosrber can be problematic if its causing the knee to bend too much. I had alot of issues during the bipeds motion and I had to tighten the springs. If the shock absorber does not hold up the biped while it is stationary, then it will fail during motion. If its causing too much trouble, make that joint a fixed joint (remove the shock) and change your walking algorithm to compensate for that , i.e. The hip will have to lift the leg a bit higher so the foot does not drag on the floor


Yes, before mounting the servos set them at neutral so that it can have 90 degrees of motion in either direction. Most servos have a variable resistor that you can tweak with a screw driver if you are slightly off. But rather dont use that unless you have too.


6 years ago on Introduction

If you using the servo as a wheel then perhaps you can use something like this:


Servo myservo;

void setup()
myservo.writeMicroseconds(1500); // set servo to mid-point

void loop() {}

4 replies

Reply 6 years ago on Introduction

I finished my 8 dof but after a few minutes I do move through the gui resets continuously: (


Reply 6 years ago on Introduction

I'm not sure what you mean? '8 dof' the robot? which gui, the one I posted 'FOBO'?
send some pics to make this clear.


Reply 6 years ago on Introduction

yes yes, I did the robot similar to yours! I'm trying to do with the gui Fobo walk!


Reply 6 years ago on Introduction

The whole gui resets? Or the servo resets?Wen i connected my robot to Fobo gui, the prob i had was that Fobo gui is made for servos from 0->120 whereas my servos were 0->180 so if i slide the bar over too much, it goes back to zero, this may be what you are reffering to, if so you must limit your range of motion.