Introduction: QUATTRO - the Arduino Quadruped Robot

Hi guys! Here's a spider robot that we had made for the 2016 science fair which was held at our school. Well, you can't technically call it a "spider robot" as spiders have 8 legs, but we atleast tried to make it look like a spider (or maybe spider like) . Our robot has four legs, so the correct term would be a quadruped. Well guys say hello to "Quattro", a non lethal, arduino quadruped!

Here is an instructable on how we made her, taking you through the building process, getting to the programming and finally admiring the robot come to life once its finally done :) . Watch the video to get an idea of what it will finally look like, the problems we encountered and how we solved it and improved it.

Before going to the next step please note that a laser cutter has been used in the making of this robot. A laser cutter can be avoided if you are very skillful with your hands, as precision is key to completing the project!

PLEASE VOTE FOR US IN THE CONTESTS, AND FOLLOW US ON YOUTUBE AND INSTRUCTABLES!

thanks for your support.

Step 1: How It Works?

The robot has 4 legs, with 3 servo motors in each leg, which give the legs a freedom of three degrees. We use a simple gait to get the robot to walk which is known as the creep gait .

We used a creep gait as its one of the simplest, slowest and yet smoothest of all gaits. At first we just get the robot to walk forward, back, left, and right and then we add cooler features such as obstacle avoiding and Bluetooth control to take it to the next level.

Step 2: Parts Needed...

The body:

  • 2 mm thick clear acrylic

Bare minimum electronics:

  • 12 servo motors (quite a lot )
  • arduino nano (any other will do as well)
  • a servo shield will surely help (we made one ourselves with some pcb and pin-headers, will explain the process of building the shield in a later step)
  • a power supply (5v at 4a will work great, that's what worked for us) we used a simple wall adapter

Extra electronics:

  • ultrasonic sensor (for obstacle avoiding)
  • hc 05 bluetooth module (for smartphone control)

For the shield:

  • pcb (preferably the ones with common lines for ground and power)
  • female headers
  • male headers
  • wire

Tools:

  • laser cutter (or skilled hands)
  • super-glue
  • hot glue

Step 3: Laser Cutting the Parts

Using a graphic design software (inkscape, link to this free software below) we designed the parts we would need to make the robot's legs and body.

Then we took the design to a nearby workshop to get the parts laser cut. Attachment below for the designs. After laser cutting be sure to have 30 individual pieces.

Link to download inkscape: link to download inkscape

Step 4: Assembling Quattro

The first thing you need to do after laser cutting is actually the hardest and most time taking thing to do: peeling the paper covering off the acrylic, painfully one by one. At this point I would advise you to catch a friend and ask him/her to help you out. My mom helped me here.

Next assemble the legs. The slots are already made and all you have to do is fit them together. The joints are tight but just for safety you could put a drop of superglue or acrylic glue to really join them together.

To be able to proceed to the next step you need to modify your motors a bit. Glue a bolt symmetrically opposite to the motor's shaft. This gives your motor a dual axis pivot, which helps in making the robot more stable (have a look at the picture above).

Please note you need to do this with just 8 motors, as four will be attached directly to the body.

Next attach the servo motors!Finally attach the legs to the center link joint (the curved piece) and attach the link to the servo on the body (keep referring to the picture on top as the servo orientation will make a difference).

Step 5: Making the Shield

To make the shield for all the servo connections you'll need:

  • some pcb(preferably the ones with common lines for ground and power)
  • female headers (30 no.)
  • male headers (36 no.)
  • some wire

Making the board is quite straightforward follow the picture above to make your shield. Or you could just buy one...

We will be making a separate instructables to show you how its made in detail, please share any doubts or questions in the comments section down below

Step 6: Electronics

Now its time to attach all the servo pins onto the arduino. Connecting them using jumper cables would be really messy and confusing, so use the diy shield, which we made in the previous step . The servo wires need to be connected in the right sequence, this is key to make it work!

Carefully follow the picture.

Step 7: Programming

Now this is the time when your robot comes alive. First upload the legs_init program and make sure the robot is at a position similar to the first picture above. Next upload the quattro_test.ino to check whether your robot is managing to do the basic movements such as walking forward, back, left and right.

IMPORTANT: You need to add an extra library to your arduino IDE now. Link to this library below :

https://github.com/wimleers/flexitimer2

If you don't know how to install libraries to your arduino ide here is a good tutorial on how to do so:

Now she should go forward 5 steps, back 5 steps, turn left 90 degrees then turn right 90 degrees. If she's doing everything right you're on the right track. If not, there might be several reasons it's not working out, explaining all of them here wouldn't make sense, so i'd suggest you drop a comment down below mentioning your problem.

P.S: put a cup as a stand to start with so that Quattro doesn't go all over the place. Once tested and working fine, you could proceed to leave her on the ground.

Step 8: Inverse Kinematics

Inverse kinematics is what's actually driving her. ( if you are not interested in the math behind this project and you are hurrying to finish this project you could actually skip this step, but knowing what's happening "behind the robot" is always helpful.)

In simple words inverse kinematics, for short ik, is a bunch of trigonometric equations that determine the position of the tip of the leg, the angle of each motor, and other values when given a couple of presets that you need to determine. For example, the length of each step that you want your robot to take and the height at which you want your robots body to be at. Using this pre-determined (data) it will derive how much it should move each servo to be able to manage to perform the given task.

The picture above shows the trigonometric equations, developed by a friend of ours in the college, Suman Pal ,who then transferred the mathematics into a program.

The code attached bellow is just the raw formulas that you could fiddle around with to experiment upon, improve and try out better methods.

Step 9: Getting Fancy

Once you see that your robot is managing all the basic movements, you can start to make it fancy. We decided to add an ultrasonic sensor so that it can avoid obstacles on its way. You can also try Bluetooth control or voice control. To do the movements you need to just call a function.

The following list says what function you need to call for what movement :

  • to move forward - step_forward()
  • to move backward - step_back()
  • to turn left - turn_left()
  • to turn right - turn_right()
  • to stand - stand()
  • to sit - sit()

In the brackets you can put an integer value to define the number of steps that you want the robot to move by.

With this added feature Quattro will never touch anything if left in a room. Almost as though she has a mind of her own! Please do share if you add any other interesting features...

Step 10: QUATTRO IS COMPLETE!

And there you have it your very own robot companion! This project gave us a lot of experience and we developed several skills. We would encourage you to make one as its easy to make yet very impressive. The future looks towards robotics and we with quattro have taken our first steps!

We hope you enjoyed this instructables, do leave a comment below!

lastly, we would be grateful if you could vote for quattro in the contest and subscribe to our channel both on instructables and youtube. Thank you for your support!

Cheers!

Comments

author
WarunaK (author)2017-06-28

Thank you very much

author
AntonyM21 (author)2017-06-24

Hola yo soy nuevo en estod tema pero necesito hacer este proyecto para el colegio, habra algun lugar donde pueda encontrar instrucciones mas detalladas o si ustedes podrian brindarmelas se lo agradeceria bastante

author
DishantU (author)2017-06-08

Plz help
Plz give the link of bluetooth controller app

author
KhoaT12 (author)2017-05-15

Can you tell me where exactly their lengths are ? Thanks.

const float z_absolute = -28;
const float z_default = -50;
const float z_up = -30;
const float z_boot = z_absolute;
const float x_default =62;
const float x_offset = 0;
const float y_start = 0;

const float y_step = 40;

author
Technovation (author)KhoaT122017-05-15

Y constanst define the step length, z defines the step heights, and x constants are for finetuning

author
KhoaT12 (author)Technovation2017-05-15

Thank you very much!

author
Technovation (author)KhoaT122017-05-15

Do let us know how it goes

author
KhoaT12 (author)Technovation2017-05-16

i am remaking the mechanical part for this project. I think I was on the right track. =))

author
Technovation (author)KhoaT122017-05-16

Great do send us some pics!!!

author
KhoaT12 (author)Technovation2017-05-16

I will send you when i finish it

author
Technovation (author)KhoaT122017-05-16

Okay cool

author
tknight20 (author)2017-02-02

Hi,great project! very detailed! I am also building a quadruped robot, i 3D printed my parts but i am not good with coding, so i uploaded your test codes and it kinda works. I think i need to change a few parameters. I just want to ask if you set your motors at an initial angle? and where on the robot is length a, b and c and side? And how do you go about calculating z-absolute?

Thank you

author
KhoaT12 (author)tknight202017-05-15

Hi tknight20. Me too. Can you share your solution for me?


author
Technovation (author)tknight202017-02-03

hey, thank you for the support. The motors do need to be set at an initial position, this can be done by uploading the legs_init code in step 7 and making sure the robot looks like the picture in step 7. For the inverse kinematics algorithms the lengths a, b, c are drawn in the little diagram in the 3rd picture in step 8. And for the value of z-absolute, you choose the value depending on how big of steps you want the robot to take. I hope this clears your doubts.

author
KimberleeM4 (author)2017-04-21

Hi, how did you connect the sensor to the board?

author
PierreP21 (author)KimberleeM42017-04-30

A4 TRIGGER A5 ECHO

author
Technovation (author)PierreP212017-05-10

Thanks!

author
Technovation (author)KimberleeM42017-05-10

A4 trigger A5 echi

author
ciran (author)2017-05-09

Hi! Great project, by any chance do you have the dimensions of each piece? I want to 3d print it but can't do it from the pdf, or at least I don't know how. With dimensions I could make the pieces in solidworks. Thanks!

author
Technovation (author)ciran2017-05-09

Hey there thanks! Well we laser-cut everything on 4mm clear acrylic so I guess you could print with the same thickness as fast as dimensions we can send you a mail with them. Email id?

author
ciran (author)Technovation2017-05-10

Thank you so much! My mail is: rbarriosl86@gmail.com. I'll upload the files when I finish in case someone else wants to print it

author
Technovation (author)ciran2017-05-10

Give me few days I'll send it via mail! That will be great thanks! Do try out your own modifications as now you have the capability to make it look way cooler!

author
jamxc1994 (author)2017-04-03

Hello,

I am in the processing of this build and trying to look at the code. I have the additional library downloaded and installed but the legs_init file comes up as "sketch can't be created". Quattro_test opens just fine. Anybody else experience this issue?

author
w1ng0 (author)2017-02-03

having trouble with verifying scetch

54d91df42b450fd0ebfbd7958b9dda7f.png
author
Technovation (author)w1ng02017-02-16

Make sure to recheck step 7 and don't forget to install the additional library.

author
w1ng0 (author)Technovation2017-03-08

i was wondering if Math.h is something i am missing to get this to work.

author
Craftcorner (author)w1ng02017-03-08

It could be, could you tell us whats not working we could try to help you out

author
Technovation (author)Craftcorner2017-03-08

Thanks for your enthousiasm

author
Technovation (author)w1ng02017-03-08

We would be glad to try and help mail us the problem at : technovationrobot@gmail.com

author
A. J.K (author)2017-02-10

Hello I had a question about the PDF and the laser cut pieces. I had taken the PDF to a local make space and used their cutter to make the parts, however, the scale from the PDF,as is, was too small and could not be harnessed around the servos at all. I like what everything about this for sure, just what scale in inkscape or even Corel Draw does this need to be in?

author
Technovation (author)A. J.K2017-02-16

We don't quite understand the problem as it is supposed to be a 1 : 1 ratio. Any further questions email us at technovationrobot@gmail.com

author
Technovation (author)2017-01-27

We are very grateful for all the votes we got to put us through to the finalists! A big thanks for your suppoet! Stay tuned for more of our projects...

author
OlivierN7 (author)2017-01-24

Go go go !!!

author
Technovation (author)OlivierN72017-01-24

Thank you so much for the support!

author
robotstepheny (author)2017-01-23

Seriously AMAZING work. I've been looking for something like this for my own project, and you've executed it beautifully. Thank you for sharing. :)

author

Thanks for that wonderful feedback! We would be very happy to help you out :)

author
watchmeflyy (author)2017-01-22

Amazing job! Nice work with the inverse kinematics.

author
Technovation (author)watchmeflyy2017-01-22

Thanks!!!!

author

COOL ROBOTIC PROGRAMMED BY ARDUINO... GO FORTH AND HAVE AN EXCELLENT ROBOTIC INSPIRATION... 100% EXCELLENT!!!!!

author

Thanks for the positive feedback!

author
Satya Schiavina (author)2017-01-19

Nice detailed build, with a fantastic outcome. You've got my vote!

author

Thanks!

author
Fuzzy Monkey (author)2017-01-19

Adorable and awesome!

author

Haha thanks for your support!

author
tenasakai (author)2017-01-17

Hi,

I tried to download the pdf file (twice) and nothing came. I tried to download some other pdf file and I had no problem getting them. I am using Macintosh with OS 10.12.2. Any suggestion as to what else I can try?

BTW, this is a fascinating post for which I thank you!

Tena Sakai, sakaitena@yahoo.com

author
Technovation (author)tenasakai2017-01-17

Hi tenasakai,

You could also look at Doug's comment above it might help you.

author
tenasakai (author)Technovation2017-01-18

Hi, I tried just now (which is nothing different from what I had tried before) and I got the initial pdf file (24 pages), as well as ino files that were "imbeded" in the (24-page) pdf files. I am far from having digested material you presented, but at least I am over the first hurdle. I don't understand what I did wrong before, however. In any event, thank you for your posts! tenasakai

author
Technovation (author)tenasakai2017-01-18

Okay! I'm glad it worked...Would be glad to help you with any other problems!

author
tenasakai (author)Technovation2017-01-18

Thank you, Technovation! I appreciate your kindness and enthusiasm, not to mntion being thorough.

Tena

author
Technovation (author)tenasakai2017-01-18

Always welcomed!

About This Instructable

26,200views

320favorites

License:

Bio: We are two young inventors, Kousheek Chakraborty and Satya Schiavina, with the dream of becoming the craziest scientists. We like making robots and bringing inanimate ... More »
More by Technovation:Smart Home - Arduino Trash Indicator With BLECardboard Plane Armrest HackSmart Garbage Monitoring System Using Internet of Things (IOT)
Add instructable to: