0% found this document useful (0 votes)
71 views21 pages

Arduino Controlled Robotic Biped

This document outlines the design and assembly of an Arduino-controlled robotic biped that mimics human walking and running. It emphasizes creating a low-cost and robust system using readily available parts and 3D printing, while also detailing the necessary components, design process, and programming requirements. The project encourages experimentation with various gaits and dynamic locomotion, providing a foundation for further development.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views21 pages

Arduino Controlled Robotic Biped

This document outlines the design and assembly of an Arduino-controlled robotic biped that mimics human walking and running. It emphasizes creating a low-cost and robust system using readily available parts and 3D printing, while also detailing the necessary components, design process, and programming requirements. The project encourages experimentation with various gaits and dynamic locomotion, providing a foundation for further development.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

instructables

Arduino Controlled Robotic Biped

by Technovation

I have always been intrigued by robots, especially the hardware to its limit. A secondary goal was to make
kind that attempts to mimic human actions. This the biped relatively low-cost using readily available
interest led me to try to design and develop a robotic hobby parts and 3D printing leaving room for further
biped that could imitate human walking and running. upgrades and expansions. These two goals combined
In this Instructable, I will show you the design and provide a robust foundation to perform various
assembly of the robotic biped. experiments, letting one develop the biped to more
speci c requirements.
The primary goal while building this project was to
make the system as robust as possible such that while Follow on to create your own Arduino co nt ro lle d
experimenting with various walking and running Ro bo t ic Bipe d and do drop a vote in the "Arduino
gaits, I wouldn't have to constantly worry about the Co nt e s t " if you liked the project.
hardware failing. This allowed me to push the

https://youtu.be/CxociTjzR4Q

Arduino Controlled Robotic Biped: Page 1


Step 1: Design Process

Arduino Controlled Robotic Biped: Page 2


The humanoid legs were designed in Autodesk's free Another goal while designing the biped was to keep
to use Fusion 360 3d modelling software. I began by the model as compact as possible to make maximum
importing the servo motors into the design and built use of the torque provided by the servo motors. The
the legs around them. I designed brackets for the dimensions of the links were made to achieve a large
servo motor which provides a second pivot point range of motion while minimizing the overall length.
diametrically opposite to the servo motor's shaft. Making them too short would make the brackets
Having dual shafts on either end of the motor gives collide, reducing the range of motion, and making it
structural stability to the design and eliminates any too long would exert unnecessary torque on the
skewing that may occur when the legs are made to actuators. Finally, I designed the body of the robot
take some load. The links were designed to hold a onto which the Arduino and other electronic
bearing while the brackets used a bolt for the shaft. components would mount.
Once the links were mounted to the shafts using a
nut, the bearing would provide a smooth and robust No t e : The parts are included in one of the following
pivot point on the opposite side of the servo motor steps.
shaft.

Step 2: The Role of the Arduino

Arduino Controlled Robotic Biped: Page 3


An Arduino Uno was used in this project. The Arduino In this project, further versions will include an Inertial
was responsible to compute the motion paths of the Measurement Unit for motion processing such as fall
various gaits that were tested and instructed the detection and dynamic locomotion in uneven terrain
actuators to move to precise angles at precise speeds and a distance measuring sensor to avoid obstacles.
to create a smooth walking motion. An Arduino is a
great choice for developing projects because of its The Arduino IDE was used for this project. (Arduino
versatility. It provides a bunch of IO pins and also also provides a web-based IDE)
provides interfaces such as serial, I2C, and SPI to
communicate with other microcontrollers and No t e : The programs for the robot can be
sensors. The Arduino also provides a great platform downloaded from one of the following steps.
for rapid prototyping and testing and also gives
developers room for improvements and expandability.

Step 3: Materials Needed

Here is the list of all the components and parts required to make your very own Arduino powered Bipedal robot. All
parts should be commonly available and easy to nd.

ELEC T RO NICS:

Arduino Uno x 1

To w e rpro M G9 9 5 s e rv o m o t o r x 6

Pe r f bo a rd (similar size to the Arduino)

M a le a nd Fe m a le he a de r pins (about 20 of each)

Jum pe r W ire s (10 pieces)

M PU6 0 50 IM U (optional)

Arduino Controlled Robotic Biped: Page 4


Ult ra s o nic s e ns o r (optional)

HARDWARE:

Ska t e bo a rd B e a ring (8x19x7mm)

M 4 nut s a nd bo lt s

3D print e r la m e nt (in case you don't own a 3D printer, there should be a 3D printer in a local
workspace or the prints can be done online for quite cheap)

Excluding the Arduino and 3D printer the total cost of this project is 20$.

Step 4: 3D Printed Parts

The parts required for this project had to be custom designed therefore a 3D printer was used to print them out.
The prints were made at 40% in ll, 2 perimeters, 0.4mm nozzle, and a layer height of 0.1mm with PLA, color of your
choice. Below you can nd the complete list of parts and the STLs to print your own version.

No t e : From here on the parts will be referred to using the names in the list.
Arduino Controlled Robotic Biped: Page 5
f o o t s e rv o ho lde r x 1
f o o t s e rv o ho lde r m irro r x 1
kne e s e rv o ho lde r x 1
kne e s e rv o ho lde r m irro r x 1
f o o t s e rv o ho lde r x 1
f o o t s e rv o ho lde r m irro r x 1
be a ring link x 2
s e rv o ho rn link x 2
f o o t link x 2
bridg e x 1
e le ct ro nics m o unt x 1
e le ct ro nics s pa ce r x 8 (optional)
s e rv o ho rn s pa ce x 12 (optional)

In total, excluding the spacers, there are 14 parts. The total printing time is about 20 hours.

Download
https://www.instructables.com/ORIG/FEQ/O658/KBJR4AGX/FEQO658KBJR4AGX.rar

Step 5: Preparing the Servo Brackets


Arduino Controlled Robotic Biped: Page 6
Once all of the parts are printed you can begin by to align the motor so that the shaft is on the same
setting up the servos and the servo brackets. First side of the bolt you had attached earlier. Finally
push in a bearing into the knee servo holder. The t secure the servo with the rest of the nuts and bolts.
should be snug but I would recommend sanding the
inner surface of the hole a bit instead of forcing the Do the same with the hip servo holder and foot servo
bearing which may risk breaking the part. Then pass holder. With this, you should have three servo motor
an M4 bolt through the hole and tighten it using a and their corresponding brackets.
nut. Next, grab the foot link and attach a circular
servo horn to it using the supplied screws. Attach the No t e : I am providing instructions for building one
foot link to the knee servo holder using the screws leg, the other is simply mirrored.
you will use to also attach the servo motor. Make sure

Arduino Controlled Robotic Biped: Page 7


Step 6: Making the Link Pieces

Once the brackets are assembled, start making the 3D print and line up the holes, next screw the horn
links. To make the bearing link, once again lightly onto the 3D print by attaching the screw from the 3D
sand the inner surface of the holes for the bearing print side. I recommend using a 3D printed servo horn
then push the bearing into the hole on both sides. spacer for these screws. Once the links are built you
Make sure to push the bearing in till one side is ush. can begin the assemble the leg.
To build the servo horn link, grab two circular servo
horns and the supplied screws. Place the horns on the

Arduino Controlled Robotic Biped: Page 8


Step 7: Assembling the Legs

Arduino Controlled Robotic Biped: Page 9


Once the links and brackets are assembled, you can servo bracket by inserting the protruding bolt
combine them to build the leg of the robot. First, use through the bearing on the knee servo holder. And x
the servo horn link to attach the hip servo bracket the servo shaft to the servo horn connected to the
and knee servo bracket together. No t e : Don't screw knee servo holder on the other side. This may be a
the horn to the servo just yet as there is a setup stage tricky task and I would recommend a second pair of
in the following stage and it'll be an inconvenience if hands for this.
the horn were screwed onto the servo motor.
Repeat the steps for the other leg. Use the pictures
On the opposite side mount the bearing link onto the attached to each step as a reference.
protruding bolts using nuts. Lastly, attach the foot

Arduino Controlled Robotic Biped: Page 10


Step 8: Custom PCB and Wiring

This is an optional step. To make the wiring neater I decided to make a custom PCB using perf board and header
pins. The PCB contains ports to directly connect the servo motor wires. In addition, I also left extra ports in case I
wanted to expand and add other sensors such as Inertial Measurement Units or ultrasonic distance sensors. It also
contains a port for the external power source required to power the servo motors. A jumper connection is used to
switch between USB and external power for the Arduino. Mount the Arduino and PCB to either side of the
electronics mount using screws and the 3D printed spacers.

No t e : Make sure to unplug the jumper before connecting the Arduino to your computer through USB. Not doing
this may result in damaging the Arduino.

If you decide to not use the PCB and instead use a breadboard here are the servo connections:

Left Hip >> pin 9


Right Hip >> pin 8
Left Knee >> pin 7
Right Knee >> pin 6
Left Foot >> pin 5
Right Foot >> pin 4

If you do decide to make the PCB follow the same order as above by using the ports on the PCB from right to left
with the IMU port facing up. And use regular male to female jumper wires to connect the PCB to the Arduino using
the above pin numbers. Make sure to also connect the ground pin and create the same ground potential and Vin
pin for when you decide to run it without USB power.

Arduino Controlled Robotic Biped: Page 11


Arduino Controlled Robotic Biped: Page 12
Step 9: Assembling the Body

Once the two legs and the electronics are assembled, use M4 nuts and bolts to make the joint.
combine them together to build the robot body. Use
the bridge piece to link the two legs together. Use the Refer to the attached images for help. With this, you
same mounting holes on the hip servo holder and have completed the hardware build of the robot.
nuts and bolts that hold the servo motor. Finally, Next, let's jump into the software and bring the robot
connect the electronics mount to the bridge. Line up to life.
the holes on the bridge and electronics mount and

Step 10: Intial Setup

Arduino Controlled Robotic Biped: Page 13


What I've noticed while building this project is that found on the adjacent tab and modify the servo o set
the servo motors and the horns need not align values (lines 1-6) till the legs are perfectly aligned and
perfectly to stay relatively parallel. This is why the the foot is at. Play around with the values and you
"central position" of each servo motor has to be will get an idea about what is necessary in your case.
manually adjusted to align with the legs. To achieve
this remove the servo horns from each servo and run Once the constants have been set, note these values
the init ia l_s e t up. ino sketch. Once the motors have as they will be needed later on.
settled in their central position reattach the horns
such that the legs are perfectly straight and the foot Refer to the pictures for help.
is perfectly parallel to the ground. If this is the case
you are in luck. If not open the co ns t a nt s . h le

Download
https://www.instructables.com/ORIG/FEQ/DXMX/KBJR4ALE/FEQDXMXKBJR4ALE.rar

Step 11: A Bit About the Kinematics

To make the biped perform useful actions such as running and walking the various gaits need to be programmed
in the form of motion paths. Motion paths are paths along which the end e ector (the feet in this case) travel along.
Arduino Controlled Robotic Biped: Page 14
There are two ways of achieving this:

1. One approach would be to feed the joint angles of the various motors in a brut e f o rce manner.
This approach can be time-consuming, tedious, and also lled with errors since the judgment is
purely visual. Instead, there is a smarter way of achieving the desired results.
2. The second approach revolves around feeding the coordinates of the end e ector instead of all the
joint angles. This is what is known as Inv e rs e Kine m a t ics . The user inputs coordinates and the
joint angles adjust to position the end e ector at the speci ed coordinates. This method can be
considered as a black box that takes as inputs a coordinate and outputs the joint angles. For those
who are interested in how the trigonometric equations of this black box were developed can look at
the diagram above. For those who are not interested, the equations are already programmed and
can be used using the po s function which takes as input x, z and outputs three angles
corresponding to the motors.

The program containing these functions can be found on the next step.

Step 12: Programming the Arduino

Arduino Controlled Robotic Biped: Page 15


Before programming the Arduino, slight constants. The nal two constants are used fo the
modi cations need to be made to the le. Remember gaits. The s t e pCle a ra nce constant measures how
the constants I had asked you to take a note o ? high the foot will lift while coming forward after a
Modify the same constants to the values you set in step and the s t e pHe ig ht constant measures the
the co ns t a nt s . h le. height from the ground to the hip while its taking
steps.
No t e : If you have used the designs provided in this
Instructable, you have nothing to change. In case Once all the constants are modi ed according to your
there are some of you who have made their own need, you can upload the main program. The main
designs you will have to change a few more values program simply initializes the robot into a walking
along with the o sets. The constant l1 measures the stance and starts taking steps forward. The functions
distance between the hip pivot and knee pivot. The can be modi ed according to your need to explore the
constant l2 measures the distance between the knee various gaits, speeds and step lengths to see what
pivot and ankle pivot. So if you designed your own works best.
model, measure these lengths, and modify the

Download
https://www.instructables.com/ORIG/FBT/CUQE/KBJR4ATK/FBTCUQEKBJR4ATK.rar

Step 13: Final Results: Time to Experiment

Arduino Controlled Robotic Biped: Page 16


The biped can take steps that vary from 10 to 2 cms sensors can be added to the legs to experiment with
long without tipping over. The speed too can be dynamic locomotion on uneven surfaces.
varied while keeping the gait balanced. This biped
combined with the power of the Arduino provides a Hope you enjoyed this Instructable and is enough of
robust platform to experiment with various other an inspiration to build your own. If you liked the
gaits and other objectives such as jumping or project do support it by dropping a vote in the
balancing while kicking a ball. I would recommend "Arduino Co nt e s t ".
you to try to change the motion paths of the legs to
create your own gaits and discover how various gaits
a ects the performance of the robot. Sensors such as Happy Making!
an IMU and distance sensor can be added to the
system to increase its functionalities while force

Arduino Controlled Robotic Biped: Page 17


Update: Bearings in parts list changed from 22mm diameter to 19mm.

My robot is ready today! Behind 3 weeks of waiting for components from Aliexpress. A very
interesting and exciting project for my 60 years old :)
Tomorrow I will start teaching him to walk, and today I just downloaded the installation program
and adjusted the constants. I upgraded the movable units and made additional inserts for 4x10x4
bearings. This is a more rational solution than sawing holes up to 22mm. Also, I used a standard
Arduino UNO expansion board to connect the servos.
It should be noted that the names of the legs are not indicated as in humans. The left leg in the
program is the one on the left when you look at the robot's "face" in the photo. In my opinion, this is
a gross mistake. I'd love to know how to use the MPU6050 IMU. Maybe the author will share this
information?
In general, I find the author's work very useful. I express my deepest gratitude and respect to him.

My robot is ready today! Behind 3 weeks of waiting for components from Aliexpress. A very
interesting and exciting project for my 60 years old :)
Tomorrow I will start teaching him to walk, and today I just downloaded the installation program
and adjusted the constants. I upgraded the movable units and made additional inserts for 4x10x4
bearings. This is a more rational solution than sawing holes up to 22mm. Also, I used a standard
Arduino UNO expansion board to connect the servos.
It should be noted that the names of the legs are not indicated as in humans. The left leg in the
program is the one on the left when you look at the robot's "face" in the photo. In my opinion, this is
Arduino Controlled Robotic Biped: Page 18
a gross mistake. I'd love to know how to use the MPU6050 IMU. Maybe the author will share this
information?
In general, I find the author's work very useful. I express my deepest gratitude and respect to him.

where can i found the code?

FINALLY A HUMAN HAS DESIGNED LEGS FOR ME!!!

Haha! Next the brains...

Oh yes!

Sir can we make it without the perfboard

Mine's done! Need to mount the PWBs on the head and figure out why the stride isn't as smooth
as in your video, but that's why I like it . . . very stimulating and great learning experience! Thanks
for posting and referencing Fusion 360 . . . I'm going to give it a try also.

BTW, I think there's an error in the parts list . . . bearings should be 8x19x6 not 8x22x7 . . . the
19mm ones fit much better in the 19mm hole :-)

I was disappointed in the amount of material I have to remove to get the bearing to fit.

To make this easier and to keep the hole circular, I used an adjustable hand reamer. Be careful
when enlarging the bearing hole in the knee servo holders. Not much meat there at all, very easy
to break:(
In the picture for step #4, next to the bridge, is what looks like a cylinder with a tab. I don't see this
piece in any of the .stl files. What is this piece for?
I wondered also, but if you watch the video it’s to suspend the robot while experimenting with leg
movements. I will be building one also. ( my last robot went down the basement stairs by
accident.lol)
Yes the mount is used during the testing phase, safety measure if anything goes wrong!

Please provide a link to the .stl file for this test fixture. It was not included in the zipped file (stls.rar)

making it, thanks for this!

Great, good luck!

Great project and great job explaining the kinetics. Very informative.

Thanks for the positive feedback.

They are looking phenomenal. Excellent photoshoot.Thanks for sharing.

Thanks!

Arduino Controlled Robotic Biped: Page 19


Great work!

Awesome project For my 8 yr old! Mine so far, working on the programming, should be walking
soon!
i looked online for a while for something like this. This has to be the best project online right now.
Thanks!

Hi, I am in the process of building your robot legs but am stumped with the connections on the perf
board and the connections from the perf board to the UNO.
Would you be able to supply a connections drawing or schematic of the perf board and pin to pin
between the perf board and the UNO?
You have provided a very good explanation of your robot and your build steps including lots of
pictures. You also demonstrated a degree of professionalism that we talk about with our students.
Students will also see the importance of being able to communicate well with technical writing. I
believe Fusion 360 is free to students and it is one of the preferred cad/cam programs for today
(search for fusion 360 free). There are tons of tutorials on YouTube for learning how to design with
it but nothing helps more than providing a finished design like the one you created here (perhaps
you might consider creating a fusion tutorial!) Also, 3D printers are pretty cheap now (see
sainsmart, etc) and they make a good learning and prototyping tool to use at home. I am certain
there are some FIRST robotics teams that might enjoy the challenge of creating this design during
their 2020 season cancellation. It's small enough and uses inexpensive parts making it the perfect
project. Again, thank you for submitting a great project and for sharing it with all of us!
Absolutely! This project is fun and enjoyable to work on and one can learn about various fields
through it such as design, 3D printing, electronics, kinematics etc. It is perfect for beginners as well
as for people with some experience. Thank you so much for your feedback!
I will be trying this soon once i have the 3D printer and accessories

Absolutely, go for it, its an enjoyable process!

It's an awesome project! I just want to replicate it!


But I have a question: Can it turn or it only can go forward and backwards?
And an idea: You can add hands to build a full humanoid robot!
Thank you! Yes, it can turn by taking bigger steps with one leg and smaller with the other. Adding
hands would also be a great addition

very very very nice ...


Have you already thought about whether there is a technique to rotate left or right?

Thank you, to rotate the robot could take bigger steps on one side and smaller on the other.

nice and cool work

Thanks for the feedback!

Would love to do this with my robotics class, any chance I can get a .zip file of the 3D printed parts
and the Arduino code?
It's already been added in the steps. If there is any troubling downloading it, I could mail them

Arduino Controlled Robotic Biped: Page 20


I'm going to build one with my grandchild, she is really into robots!

Thanks, would love to see it!

Great article! May I know what kind of power supply are you using? I'm currently working on 6-axis
DOF robot arm with 6 pieces MG996r servos. I'm kinda newbie so i'm having a hard time to power
them up. Here's the image of what i am working..

One reason you may be having a problem with power supply is a "start up spike". When the robot
powers up, all 6 servos are most likely way out of position. It is not uncommon for a servo to draw
a peak of 2 amps when making a large move, so that would be 12A for your robot, most likely
overwhelming the supply, and causing Arduino to crash and reboot, repeating the whole sequence
forever...
The way to solve this is to put in the software a start up routine that starts the PWM one servo at a
time, spaced 1 second apart, in sequence. This staggers the start-up spikes so does not
overwhelm the supply. Also in the software, it is wise to put a slew-rate limiting routine which
prevents sudden large movements of a servo (especially when debugging the movement
calculation routines). I have flowchart for such a routine if you are interested.
Thank you, for testing purposes a variable lab bench power supply was used

I see. Thanks for the reply

.rar files require a paid program to expand. zip is more universal and free.

7 Zip is free and can unpack rar files. Also WinZip works.

Use free 7-Zip .. https://www.7-zip.org/ .. it opens most compressed files inc zip, rar etc..

can you tell me about the hole for the bearings, why is the hole 3mm smaller then the bearing6?

It is so that the bearing can friction fit properly into the pocket.

Exceptionally well done. It's not clear to me how it's powered.

Thank you. At the moment, it's powered with a variable power supply.

Voted for you, this is great work! Great to see Fusion 360 being used

Arduino Controlled Robotic Biped: Page 21

You might also like