Rock'em Sock'em Robots: Part 1
2023-10-04 | By Zach Hipps
License: See Original Project
Rock’em Sock’em Robots were a popular toy released in the 1960s. The toy consists of two little plastic robots that fight each other until one of them knocks the other one's block off. A couple of decades later when I was a kid, it was still a hit and I have memories of playing with this iconic toy. And because I have a problem with overcomplicating and over-engineering everything that I do, I decided to build a life-size version of Rock’em Sock’em Robots.
This is kind of a bigger project so I’m going to break it up into smaller “byte-sized” pieces if you will. In part 1 I'm just going to focus on building and prototyping the arm mechanism that moves forward and punches. I used some pneumatic cylinders in some previous projects, and they are so much fun! Pneumatic cylinders come in different bore sizes which refers to the diameter of the actual piston inside that moves back and forth. They also come with different stroke lengths which refers to how far back and forth the piston moves. I want these robots to be fairly strong, but I think some of the bigger ones I found were going to be too strong. I don't want these robots to destroy themselves so I'm going with a 16mm bore diameter and a 100mm stroke length. The pneumatic piston will be my starting point, and I’ll design everything around it.
The arm needs to be built using a mechanical linkage. I don't know about you, but I have a really hard time visualizing mechanical linkages. I really can't wrap my head around it unless I build a prototype or model it on the computer. It turns out that what I need to do is not actually that hard. It's called a four-bar linkage, and it’s the most common type of linkage. You start with one grounded link that has two joints. The grounded link is our frame of reference, and it doesn’t move relative to the other links in the mechanism. From there you attach two parallel links that are the same length. The fourth link is connected to links two and three and is parallel to the first link; the one I grounded. When you move the fourth link it follows an arc path because of how it's constrained by the other links. I plan to make these links out of some sort of metal, probably aluminum, to keep it lightweight. These aluminum links won't move on their own, so I need to add that pneumatic cylinder. When I attach the cylinder between opposing joints, I can extend and retract the pneumatic cylinder causing the linkage to move in a punch-like arc shape. To help myself understand this a little bit more clearly, I used a really cool online resource called MotionGen Pro that I recently discovered. It allows you to draw and simulate linkages on the computer before building them in the real world. I could probably sit for hours cutting out pieces of paper and trying to get the right link lengths, but MotionGen Pro took out all of the guesswork and saved me a bunch of time. Next, I need to take what I've learned from my simulation and build a prototype.
I used a CO2 laser cutter to cut out some cardboard links and physically assemble the moving arm mechanism for the first time. For a maker like me, this is the main reason I have a CO2 laser cutter. It's perfect for making quick prototypes to make sure that I have the right dimensions before moving on to more expensive and more time-consuming materials and processes. I'm really glad that I decided to make a cardboard prototype because I found a few adjustments I needed to make. I forgot to account for the brackets that hold the links together, so I'll need to make the links a little bit shorter to accommodate them. I got everything else sorted out with this prototype and now I can move on.
These pneumatic cylinders will run off of my air compressor, and in order to control the opening and closing of the pneumatic cylinder, I need to use a solenoid valve. I need to have one cylinder and one solenoid for the right arm, one pair for the left arm, and one pair for the head that pops up any time there's a knockout. Then, of course, all of that is multiplied by two because there are going to be two fighting robots! I went ahead and ordered a bunch of pneumatic parts and some tubing that will connect everything together. This is going to be quite an ordeal, hooking this all up, but honestly, I can't wait because it's going to be noisy and chaotic and really awesome!
I’ve used 2020 and 2040 aluminum extrusion for many past projects, and I think it's going to be perfect for this one as well. It is a versatile construction material for engineering projects like this, and pretty simple to cut using basic woodworking tools. I cut all the pieces I needed using a table saw, being careful to go slow. As I started messing around with the aluminum links I cut out, I ran into my first obstacle. How am I going to create a joining for these links to pivot around? I thought about drilling a hole through the aluminum extrusion and just passing a bolt through there and making a really crude joint. But I feel like that would have caused a lot of friction. And it also would have looked pretty ugly. Then I remembered that I had some pillow block bearings that I used when I built my CO2 laser cutter. These are going to work a lot better because they're actual bearings as opposed to hastily drilled holes in aluminum, and they’re designed to attach to aluminum extrusion like this. But I need to design and make a little bracket that connects the links to the pillow block bearings. I quickly designed and 3D printed a simple bracket that solved the problem so that I could move on to assembling the actual robot arm. According to my kinematic model, I need to space the pillow block bearings 80mm apart, so I used my trusty DigiKey ruler to get them perfectly spaced. I started to get a little giddy at this point because I could see the design in my head coming to life! It was starting to resemble a robot arm, and the movement was perfect!
At this point, I'm ready to start figuring out how to attach the pneumatic cylinder. I've gone back and forth on where and how to place these but ultimately decided that they should go on the inside of the arm. To get the mechanics to work, I have to make sure that one side of the cylinder is rotating around the same joint as the linkage. The other side is not so critical. It can still push on that arm and make it swing back and forth, but the back side needs to use the same joint.
Before I connect the robot arm to an air compressor, I need to assemble the solenoid valve I talked about earlier. Once that's assembled, I can connect the cylinder to the solenoid valve and the solenoid valve to the air compressor. The solenoid valve is triggered using 12 volts so I'll use my benchtop power supply. Let's take a closer look at the solenoid valve. It's got five ports, which at first glance might seem a little confusing or overwhelming. But it's actually not that bad. One port is the air intake, then there are two output ports. When the solenoid is open, the air flows from the intake port to port A. From port A the air flows into the front of the solenoid, which retracts the piston, retracting the arm. When the solenoid is closed, the air flows from the intake port to port B. When the air flows from port B, it goes into the back of the cylinder, pushing the piston out, and extending the arm. Every time I cycle the pneumatic cylinder some air is lost. There's no way to save the air that was inside the cylinder so there are two little vent ports for the air to be exhausted. As I'm putting this together, it occurs to me that if you're familiar with electronic switches, this solenoid valve is kind of like a single pole double throw switch. It has one air supply that it's controlling, and it can move that air supply in one of two places.
I think I'm ready to attach the air compressor, but I do not feel safe around this thing! There's no way I'm going to be holding this in my hands on my first test, so I think I should fasten it to my workbench just to be safe. I'm not exactly sure of the best way to do this, so I used a squeeze clamp. In hindsight, I should have spent some time figuring out how to anchor the mechanism to my workbench, but I was too excited, and the squeeze clamp worked long enough for me to test my design. I set the air compressor to 25 PSI because I don't want, I don't want this thing to tear itself apart or for me to get hurt. I connected the air compressor hose, and the arm retracted backward! Success! But the feeling of success was soon extinguished because I couldn’t get the arm to extend to the forward position. I carefully checked the tube connections and made sure everything was correct and that no hoses were being pinched. My power supply was set correctly, and I soon ran out of obvious things to check. I spent a few minutes troubleshooting and realized that the pressure from my air compressor had dipped down to about 12 PSI which was too low. When I adjusted the regulator, I didn’t account for all the air needed to pressurize the system. With the system at pressure, I reset the regulator to 25 PSI and gave it another go. The robot arm flew forward with startling force! I was caught off guard, and absolutely delighted! I had found the problem and was back in business with a punching robot arm! The squeeze clamp wasn’t doing a great job of holding the arm linkage to my workbench, so I decided to stop while I was ahead. I had put a lot of work into this project, and I didn’t want anything to break now.
I'm already working on part two of this project where I build a second arm and print out the giant fists that go on the end of the arms. Stay tuned to see how the project continues next time!
Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.
Visit TechForum