Introduction: Robotic Soldier
Have you ever wanted your own robot body guard or soldier? If so, then this is the tutorial for you!
Welcome! Today we are going to build a robotic soldier that will be able to execute any command you give it.
This project was inspired by Halo Soldiers and Police Droids from sci-fi movies. I am a big fan of both and I wanted to combine the two to make my own custom robotic solider, and so that's exactly what I did. I 3D printed some Halo Armour, designed and built the robotic mechanisms, attached my custom robotic head onto it, added some props, and viola! I made my self a futuristic S.W.A.T robot.
To get started you will need:
(x1) Ardunio Uno
(x1) Self-powered speaker
(x10) 1 KG PLA
(x2) MG996R servo motors (Used for Bicep Mechanism)
(x3) DM-S2000MD servo motors (Used for Shoulder (if there is no bicep mechanism) and Torso)
(x2) 60kg Servo (Used for shoulders only if you are adding the bicep mechanism. The DM-S2000MD servo and MG996R servo don't have enough torque to lift the arm if you add the bicep mechanism. Therefore you must use the 60kg servo. I only used (x1) 60kg servo because I only had one moving bicep/forearm).
(10ft or longer) 2" Diameter Vacuum Pipe
(x1) Vacuum Pipe T-Coupling (non-threaded)
(x4) Vacuum Pipe 90 Degree Connector/Coupling (non-threaded)
(x4) Vacuum pipe Coupling (non-threaded)
(x4) 2" Vacuum U-Strap
(x1) 1" PVC pipe (Length is dependent on 1/2" PVC Pipe length. Please refer to images on step 2 for a better understanding).
(x2 Non-threaded) 1/4" PVC Coupling
(x1) 1/2" PVC TA
(15-20cm long) 1/2" PVC Pipe (length depends on how tall you want the torso to be. I recommend 15-20cm long. But 20cm is the MAX).
(Some) Plumbers Strap
(x1) 6V 10-20A Power Supply
(Optional) Some 5V L.E.D lights or 5V Blinking RGB Led diodes
(Optional) Spray Paint
Now, before you get started you must have all the parts printed. First, you must print and assemble Moe Sizzlac's Halo Armour which can be foundhere on Thingiverse. Then, you will have to print my Halo Robot Body Parts which can be found here on Thingiverse.
(Please note that Moe Sizzlac created and designed the Halo Armour so all credit for the Armour goes to him. I just happened to stumble upon it one day, and decided to print it and turn it into a robot. This tutorial is going to show you how you can turn his 3D printable costume into a full sized robotic soldier).
Step 1: Pre-Print Tips
Tip 1: Not all of the Halo Armour parts need support. I was able to print the Forearms, Boot Heels, Shin R2 & L2, and most of the Thigh parts without support.
Tip 2: For the parts that require support, go into Cura, click custom setting, then click generate support, and select touching build plate under support placement. Also, I used Zig Zag as my support pattern. (This will save you a lot of time and plastic).
Tip 3: For the Infill select Cubic Subdivision (It uses less plastic and gives your parts strength in all directions). This can be found in Cura under custom setting, then by clicking infill, followed by infill pattern. I also printed all the parts with an infill density of 10%.
Tip 4: Join the 3D printed parts together using a soldering iron or PVC glue. I highly recommend welding the parts together with a soldering iron because you don't have to wait for anything to dry or cure, and it makes for a stronger bond.
Step 2: Some Things You Should Know
Before we get started, I would like to let you know that I will try my best to explain how I built the robotic body. The body was a prototype for another robot I had built (you can check it out here). But after trying to make a 3D printable body for this Armour, things didn't quite work out and I disassembled that robot to make this one. Since that body was a prototype, I didn't take any pictures of how I built it. So i'm going to try my best to explain it to you.
In the pictures above it shows how I made the torso rotate. First, I cut out a slot for my servo to fit in the center of the Vacuum pipe and attache the 3D printed Axle to the servo. Then I found a PVC pipe or coupler and fit it onto of the axle (It's been a while so I don't remember what exactly it was). It was a perfect fit and I secured the two pieces with PVC glue. Then I took a 1/2" PVC pipe about 20cm long and attached it (using PVC glue) to the coupler that was attached to the axle. then I took a 1/2" PVC TA and secured it to the top of my PVC pipe with PVC glue; After I drilled the hole through the Vacuum tube T-Bracket of course.
Then I created a housing using the two 1/4" and one 1" PVC couplers in order to keep the 1/2" pipe inside straight and aligned.
Step 3: Starting the Torso
Alright, hopefully after having read the previous step you have somewhat of an understanding of how the torso will function. In this step I will explain to you how to built it.
First, Take a 20-22 cm long piece of vacuum tube (This will determine how far apart the legs are). Then attach a 90 degree coupler on both sides of the tube, and secure them together with PVC glue. Now, find the center of the Vacuum tube and cut a rectangle for the servo to fit in (I used a Dremel to cut the rectangle) and cut a small square farther away to allow the wire to come out and not stay stuck in the tube.
Now, take the 3D printed bearing case 1 & 2 and insert the 2 bearings into them and bolt them together, using two torso bearing case bolts. Make sure the axle fits into the bearings and it rotates the bearings when you turn the axle. If that doesn't happen and just the axle turns, add one layer of electrical tape around the axle and push it through the bearings. Then bolt the servo horn to the axle and attach it to the servo (make sure the servo horn is centered with the axle). I used a center punch to help me align the center servo horn with the center of the axle.
Now, set the servo to 90 degrees (This is very important).
(Refer to images above)
Step 4: Starting the Torso (Part 2)
Now you must secure the Bearing Case to the Vacuum tube, to ensure it is sturdy and doesn't move. I used some metal brackets I had laying around to secure it. We want to make sure that the Bearing Case doesn't rotate and doesn't fall when the rest of the body is applied.
Step 5: Starting the Torso (Part 3)
Now take a PVC pipe or coupler and fit it onto of the axle. It should be a perfect fit and you must secured the two pieces with PVC glue. Then take a 1/2" PVC pipe about 20cm long and attached it (using PVC glue) to the coupler that was attached to the axle. Then take a 1/2" PVC TA and secured it to the top of the 1/2" PVC pipe with PVC glue; but do that after you have drilled a hole in the T-bracket for the threaded portion of the 1/2" TA to fit through. You can bolt down the TA after you have completed the housing (which is the next step).
Step 6: Starting the Torso (Part 4)
Now we are going to create the housing.
Take a 1/4" coupler and place it on-top of the bearing case. Then take an appropriate sized 1" PVC pipe and place it into the 1/4"coupler and secure them together with PVC glue. Then take another 1/4" coupler and place it on-top of the 1" PVC pipe and secure it with PVC glue. (Do not secure the last 1/4" Coupler to the Vacuum T T-Bracket. It must spin freely).
Now, secure the first 1/4" coupler to the bearing case using PVC glue first and then lots of hot glue.
Make sure to test out the torso to make sure it works. You can do this by manually turning it and then running a servo sweep code in Arduino.
Step 7: Building the Upper Torso/Chest
Now we need to create the upper torso/chest. We can do this by creating a U-shape with the vacuum tube. The height of my vacuum tube for the arm part is 30cm you can have yours 5cm shorter but I don't recommended going any shorter or any longer than 25-30cm. If you have it to short the Armour will rub against it's lower part and it won't be able to turn properly. If you have it too long, the chest is top and front heavy (especially with the head) so it will lean forward and cause the body to fall, especially while rotating (trust me, I tried it).
The width part (the torso part) of my vacuum tube has a total length of 26cm from 90 degree coupler to the other 90 degree coupler. This consists of 2 short vacuum tube pieces which I believe were around 6-8cm in length.
Step 8: Adding the Armour to the Upper Torso/Chest
Now take some vacuum tube couplers and attach them to the to of the U-shaped body (Upper Torso/Chest). This will gives us a bigger surface area to rest the Armour on. Place the Armour onto the couplers and adjust it until it is mostly level and can stay in that position on its own with no support. If you refer to the images above you can see my robot with its head resting on the Armour. The Armour and head stays still and nothing slides off. That is the sweet spot. That is what we want. Once you have found that sweet spot, manually rotate the chest by gently pushing and pulling on the Armour from 90 degrees to 180, then back to 90 degrees, then from 90 to 0 degrees, then go back to 90 degrees. Do this manually and slowly to see if the head and/or chest slides off or away from it original position. If so, you must reposition the Armour and find that sweet spot (this may take a while. If it slides a little bit but doesn't come off completely or isn't completely away from it original position, you should be fine).
Now that we found the sweet spot and the chest and head rest without falling of, we can now bolt the Armour to the U-shaped body. We will do this by taking 2 U-Brackets (that fit the vacuum tube), and attach them together with the vacuum tube in the middle, and then bolt the one side of the U-Bracket to the Armour. This allows the Armour to turn with the body, but also allows us to slide the Armour off if we need to.
(Refer to the images above)
Step 9: Adding Armour to the Lower Torso
Now we can attach the lower part of the Armour to the Lower torso. Take some long L-Brackets and bolt them to the Armour and the metal brackets you used to hold the Bearing case in place.
Step 10: Animating the Shoulder
First, cut a slot for the servo to fit in, and make a hole for the wire to go through. Insert the DM-S2000MD servo (If you are not going to use the Bicep Mechanism) into the slot and bolt it down (If you plan to use the Bicep Mechanism, insert the 60 kg servo) . Then, take the axle and bolt the servo horn to it (Make sure they are centered). Then place a bearing in the shoulder bearing holder (you may have to heat it up in order to press fit the bearing in). Now, insert the axle through the bearing, making sure the axle and bearing rotate together.
To prevent the shoulder bearing case from rotating, take some plumbers strap and bolt it to the bearing case and Vacuum pipe.
(Refer to images above)
Step 11: Animating the Shoulder (Part 2)
Now, take Shoulder connector 1 and attach it to the Pivot (I welded it it using a soldering iron and some spare PLA. That way it creates a stronger bond, since your melting the pieces together).
Now, if you're doing the right shoulder you must set your servo to 0 degrees. If you're doing the left shoulder you must set the servo to 180 degrees.
Once you have set your servo to the appropriate degree, take the Pivot and Axle and attach them to each other using the axle nut. Do a test to make sure the shoulder rotates in the correct direction. You can do this by welding Connector 2 to the shoulder Armour (Making sure it is as level and centered as possible). Now, you can slide it over Connector 1 and put an screw through the hole to join them together. Now, run a sweep code and make sure it moves in the proper direction.
Once you have tested it, you can weld the Pivot to the Axle after you screwed on the nut of course (The nut allows you to prevent the pivot from rating while welding and gives you extra plastic for a stronger bond. This is good because these parts will be under load, so we need a strong bond).
Repeat this step for the other shoulder.
Step 12: Building the Bicep Mechanism
If you want your robot to move its bicep either side to side or up and down then you will need to build the bicep mechanism and use the 60 kg servo for the shoulder, as the other servos won't have enough torque to lift the whole arm afterwards. I only built one Bicep mechanism so I could have my robot put the riot shield in front of his face to give him cover and a nice pose. I had the other bicep welded to the shoulder (Bicep doesn't move)and I had that arm hold a prop gun.
Refer to the images above for the bicep mechanism assembly (I forgot to take pictures while I was building it, so I took a screenshot of the designs in sketch up and how they are supposed to be assembled).
First, weld the Bicep-Armour Connector to the Shoulder Armour. Set the Servo that will go into the Bicep Servo Holder to 0 degrees if you are doing the right bicep or 180 degrees if you're doing the left bicep. Bolt the servo to the Bicep Servo Holder and bolt the servo horn to Bicep U-Bracket V.2. Now, take the Servo Axle and push it trough the holes. This will act as pin to keep everything aligned and allow the mechanism to turn. Now, Screw the Servo Axle Nut onto the Servo Axle, to ensure the Servo Axle will not slide out when he bicep mechanism moves.
After you have done that, weld the assembled bicep mechanism to the Bicep-Armour Connector, and the Forearm Armour. (Bicep U-Bracket V.2 gets welded to the forearm, and Bicep Servo Holder gets welded to the Bicep-Armour Connector).
Step 13: Creating the Legs
Alright, for this step we will be creating the legs.
First, cut 2 pieces of vacuum tube that will be the desired length of the leg. Then attach a 90 degree coupler from the leg to the torso. Do the same for the other side. Now, Take a drill and drill out a 1/4" hole through the 90 degree coupler and the leg. now insert a 1/4" pin through the hole. This will keep join the leg and torso together, but if you need to transport it, you can take out the pin and the legs will come off. Once you have done that, rotate the torso tube until the chest and head are straight and are not leaning forward (I had to rotate my torso tube backward a little bit). Please refer to the images above for a better understanding.
Once you have your desired results/position you may apply glue the outside of the degree coupler and torso tube. That way you don't have to take apart the coupler from the torso tube, apply glue, then reattach it and reposition the torso tube. If your torso tube and coupler fit really tightly together (I mean really tight. So tight that it would take almost all your strength to pull them apart), you could get away with not gluing them.
Once you have that all straightened out, find an appropriate sized base and take two 2" couplers and secure them to the base (I bolted it down using L-Brackets). Before you bolt it down, make sure the couplers are the space out the same as the legs. (I place the legs onto the base and circled where they were, that way I knew where I had to put the coupler).
Step 14: Hiding the Internals
To make our robot look nice we must hide the internals.
To do this I used an old shirt and I hot glued it to the top of the torso but I left the bottom half unglued, so it could spin freely with the torso (If you glue the bottom the torso will not be able to rotate because the shirt will stop it).
For the arm I hot glued the front half of the arm hole. I left the back half exposed in case I needed to get in there and make some upgrades or modifications. I added a small dab of hot glue near the screw on the Shoulder connector, so the shirt would cover the shoulder parts and not fall down when it rotates.
For the legs, I hot glued the top half and let the bottom half drape down and I secured it to the Armour with Velcro. But since the Velcro an't strong enough (Well, for me anyways) I used thumbtacks to hold it in place. This way when I need to take the pin out and take off the legs all I need to do is un-Velcro and un-tack the shirt from the leg Armour.
For the Bicep, I hot glued the top half and let the bottom half drape down into the forearm armor. This will allow the shirt to move with the bicep when it rotates and not get caught. For the other bicep (the one that doesn't move) I just hot glued the top and bottom.
Refer to the pictures above for a better understanding.
Step 15: Wiring and Programming
First start by following the instructions for the MOVI Shield (Which can be found here). Now wire all the positive and negative terminals of all your servo motors to the power supply. Then take the signal wires of each servo and plug them into there respective pins on the Arduino.
Important: You must also connect all the negative wires from the servo to the Arduino as well. So the negative wires get connected to the power supply and the GND pin on the Arduino. (I forgot to do this and it drove me crazy for about 10 minutes until I finally realized what the problem was).
servo1 is the Torso (pin 3), servo2 is the R-Shoulder (pin 5), servo3 is the R-Bicep(pin 6), and servo4 is the L-Shoulder (pin 9).
Now, take all the negative pins from your LEDs and connect them all together and wire them to the negative of the power supply. Take the positive leads from each of your LEDs and attach them to their respected pins on the Arduino.
Pins where positive wire of LED connects. (4=Chest Armour LED 7=Eye LED 8=Shield LED)
led1 connects to pin 4, led2 connects to pin 7, led3 connects to pin 8
Now, you can upload the code to the Arduino/Movi Shied (The code can be found on the next step or on my Thingiverse Page).
Step 16: The Code
hereDownload the Arduino code and upload it to the MOVI Shield.
My MOVI Shield was acting very weird. It wouldn't let me upload my latest version of the code (MK 4) but it would upload anything other program. I manged to solves this by uploading an earlier version (MK 3) of the code and then uploading the MK 4 code. If you run into this problem, hopefully this will fix it. (I have included both versions of the code above).
Update (7/20/20):I have created a code which allows the MOVI Shield to communicate with Pololu's Maestro board. This allows you to create a routine/gesture on the Maestro and use voice commands to trigger it. The code is provided below (SERGEY MK 5 Program).
If you need help understanding how the code works you can view my discussion of how to get it operational, here.
I have also include pictures of my Maestro script code and serial settings above.
Wiring schematics can be found on Pololu's site and I also commented some of them in the Arduino code.
Update (7/31/20):I have updated the code to allow better communication with the Maestro board. I had created a longer routine for the Maestro and the Arduino/Movi Shield had a problem running it. The MK 6 code allows the new routine to run. You can see my new routine in action here.
Step 17: Enjoy and Stay Tuned!
Now you can enjoy your very own robot soldier. Feel free to modify the code to allow your robot to execute new commands.
Participated in the