Introduction: Quadruped Robot
Have you ever wanted a robot that acts just like a real animal? The ones you can buy are outrageously expensive and not customizable.
Well, you can learn how to make one right here! Not only is it of good quality, but it is also inexpensive and good to gain valuable experience in robotics. It is very simple and easy to make, with easy to obtain materials. I didn't have any prior experience on making robots or coding, so you can do it too!
My goal and why I did it:
My goal is to make a robot that is relatively inexpensive, acts like a mammal, and easy to build with minimal coding. I've been a huge fan of Boston Dynamics, a company that create amazing and versatile robots that can travel over rough terrain and slip on banana peels. I also love dogs and cats, but don't have the time to care for one. Thus, creating a quadruped robot would allow me to fulfill my dreams of having a robotic pet while being inspired by Boston Dynamics.
Materials (Suggested):
12x Servos ($20)
1x Arduino (Clones are cheaper) ($9)
1x Servo Contoller ($7)
1X Battery Pack ($14)
1x Wood, plastic, or other material to make legs and base ($4)
Nuts and Bolts ($10)
Your Total: $64
For just $70 (robot kits found online can be around $100), you can make your own highly customizable robot! Most of them even have free shipping. Just note, though, that I did not test the above parts out myself--I found that there were cheaper components from different producers after I bought my parts. I compiled the above list to show that it is possible make cheap robots without sacrificing quality. If you are buying the parts above, do a lot of research beforehand, as they may work differently. This is what I used instead of corresponding parts:
12x Hobbyking Servos ($42+S&H)
1x Raspberry Pi 3 ($35)
1x Mini Maestro Pololu Servo Driver ($36)
My total: $141+S&H+Materials for Experimenting
Optional Additional Parts:
Camera Module ($14)
Faux fur, clay, or other additional material to dress up robot
Rubber, sponge, or other material as a foot to prevent slipping
Springs for Improved Legs (Altered Design)
Remember that you can use whatever other materials are available at home! For instance, the wood base of the robot for mine was made from the backing of an old thrown away cabinet, and the wood for the legs could be pulled from old furniture. The brackets used to connect the servos to the base are actually old plastic brackets someone threw away long ago, possibly from an old cabinet. The sponges on the feet were used and originally meant to be thrown away. The cardboard for the decoration and head were from useless boxes of shipped goods and old magazines were used to make a paper mache dog head. It's entirely possible that you only need to buy the electronics, or maybe not even that if you have an old robot that can be transformed into a different kind of robot. Be creative and you may drastically reduce the cost of your robot while recycling to save the environment!
Step 1: Overall Plan
Because I had no prior knowledge of quadruped robots before this project, I decided to base my design off of another person's design and modify it as a way of learning. The current design is based off of StaffanEk's KITtyBot at https://create.arduino.cc/projecthub/StaffanEk/kittybot-f21cc0?ref=platform&ref_id=424_trending___&offset=27 so you should definitely check it out and give their project love, because it is wonderful.
You can see in the picture how the overall design will be and what my goal looks like (I will continue working towards the goal after publishing this Instructable, so watch out for updates).
Originally, I planned to model it after BioRob's cheetah cub, but I didn't have enough time to properly experiment and make it work. Its heavy reliance on springs makes it very easy to fail and there are many variables that are hard to get right. Thus, I settled with StaffanEk's design.
Step 2: Making the Legs
The specific measurements don't matter, as long as there is a center of balance and the overall design works. You can see the measurements (in cm) above in the picture. The thigh part (make 4) consists of a board that attaches to the two servos (hip and knee), which will be attached by bolts to the servo horn (you can trace the holes onto the board, as shown). The lower leg part (make 4) consists of a rectangular hole fitting the servo (so size may vary depending on your brand of servo) and space to drill holes to attach the servo with bolts. The lower leg should also have a point cut onto it.
When you are done marking it, cut and drill the leg parts out and attach the servos with bolts to the leg. Then, attach the two leg segments together with screws, as shown.
You should add some sort of material, such as rubber, at the end of the robot so that it does not slip.
Step 3: Building the Base Board+Connecting Electronics
Drills holes matching the brackets, or something else to attach the servos to the board, and screw the servos onto the the board to that you have four servos, one at each corner of the board, facing outwards.This should be similar to the pictures above, but without the four servos toward the center (this is because I changed the design).
Next, drill more holes matching the holes on the servo controller and Raspberry Pi board and attach them to the board. You may need to buy smaller screws. It is also a good idea to put the servo controller in the center. This way, all of the servos can connect to the controller.
Afterwards, you should connect the servos to the controller and the Raspberry Pi board to the controller (with the USB cable). If the knee servo wires are too short, you can solder them to make them longer. To do this, cut the wires and use a soldering gun to melt the wires. With another length of wire, connect it to a central wire to make it longer. Use electrical tape to insulate the wires separately so that they do not short circuit.
You should connect the Raspberry Pi board to the Anker Battery and the battery pack to the servo controller. Connecting the battery is not shown here because I decided to use a power supply and wires to power the robot, rather than the battery, to conserve energy in the battery. If you wish to add an camera, you should connect it to the Raspberry Pi.
Finally, you can connect each leg to the servos.
Step 4: Controlling the Servos and Making It Move--Setting Up the Raspberry Pi
On the Raspberry Pi, you are using Linux and will want to download the Polulu Maestro Servo Controller Center (if you are using the Maestro Servo Controller).
To do this, use this Instructable to download the Raspian Wheezy Operating System (OS) and insert a micro SD card into the Raspberry Pi. This website was also very helpful: http://pinet.org.uk/articles/guides.html. To set up the Raspberry Pi and download the Servo Controller Center, I used this great Instructable (it's great open source robot, especially if you have a 3-D printer). Please check out their Instructable and give it love! I summed up the information below.
In brief, plug the Raspberry Pi into a monitor and use a USB cable to connect the keyboard and mouse. Enter the username (pi) and the password (raspberry). Enter the following commands:
- sudo nano /etc/network/interfaces (connects to wifi)
auto lo<br> iface lo inet loopback iface eth0 inet dhcp allow-hotplug wlan0 auto wlan0 iface wlan0 inet dhcp wpa-ssid "NAMEOFYOURNETWORK" wpa-psk "PASSWORDOFYOURNETWORK"
- Replace the capital words with the name and password of your network, accordingly
- Save with Ctrl+X and restart
- sudo apt-get update (update system)
- sudo apt-get upgrade(install update package)
- Download the servo controller by following the instructions on their website (you'll be inputting more sudo commands): https://www.pololu.com/docs/0J40/3.a
Under Channel Settings, you can set the initial position of the legs by changing the number and selecting "Go To". For this, make sure you know which servo corresponds to which number (if you want you can name each servo or label each servo the number).
Under Sequence you should start a new sequence.
Under Status check the boxes of the moving servos and slide the bar to move the servos. After each keyframe of movement, click "Save Frame" at the bottom. Keep adding and saving new frames until the robot is back at its original position. This is similar to animating a walk cycle. Don't worry if you feel confused; it will make sense if you experiment.
Back under Sequence, you should "Copy All Sequence to Script". Under the Script tab, the script should look something like that in the picture above. You may need to add in other lines such as "while", "1 minus", "dup", and the number of times you want to repeat the sequence yourself so that the walk can repeat a certain number of times. Basically, the Servo Control Center generates the basic code itself.
Alternatively, you can use code to control the servos by downloading Node.js, but I will not be showing you how because the goal is to keep it simple and require minimal coding.
Step 5: Improvements
To improve the basic robot, you can add traction to the legs by adding rubber or foam feet. I cut up a sponge into 4 pieces, split the middle with scissors, and hot glued it onto the legs.
As is evident in the above videos, the robot does not seem to move well. I believe the most effective remedy would be for me to remake the code (reposition the legs per frame) by referencing how real animals walk or how other quadruped robots walk, which I will do shortly.
To make the robot look more like an actual quadruped robot, you can decorate it with fake fur and create a head out of paper mache. As a base to hold the head, I inserted a piece of cardboard over the Raspberry Pi, which also doubles to protect it. To make the head, I crumbled paper and glued it together into the shape of a dog head and painted over it. Of course, you can make the head of any animal you want! If you wish, you can 3-D print a head or tail for the robot. It's not shown in the pictures, but I'm adding a 3-D printed tail.
If you wish, you can add the Raspberry Pi camera, sensors, and make the robot remote controlled or autonomous, but that requires coding. As I stated, my goal is to make an easy to construct robot with minimal coding so that it is easily recreated by beginners in robotics and coding.
I would love to hear how you improve this quadruped robot in the comments!
Step 6: My Process
My initial design was modeled after this robot. I decided to do this design because it had a long gait and recycled energy (due to the spring). It was also versatile in an environment filled with obstacles because of the spring. I worked on this design (entailing pantograph legs) until February. I decided to switch to StaffanEk's design as a base instead because it was taking too long to 3-D print the parts for the pantograph legs and I had no time left to experiment with the legs. Unlike StaffanEk's design, though, this robot uses the Raspberry Pi and does not require a 3-D printer. It is also much easier to reconstruct as it does not require as much coding. My robot is also much bigger and heavier, so it can be stronger in an open environment outside.
Step 7: Credits, Inspiration, and Other Great DIY Robots
Thanks to all the great information online; there is so much knowledge and software that is open source.
Thanks to my dad; he was a great help in teaching me how to solder and work the Raspberry Pi 3.
Some other great robots that you can check out and make include:
http://coretechrobotics.blogspot.de/2014/10/a-simp...
https://www.instructables.com/id/Fenrir-an-Open-So...
https://create.arduino.cc/projecthub/StaffanEk/kit...
In addition to those, I was inspired be these robots:
https://biorob.epfl.ch/cheetah
Boston Dynamic's Spot
I hope my Instructable will inspire you to get into robotics as well!