High-strength animatronic arm

Project Abstract
Our project is a high-strength animatronic arm designed to mimic the human arm. The arm is designed to be a relatively cheap alternative to industry standard animatronic and industrial robotic arms, while still boasting a high degree of strength & accuracy. Our project could easily be retrofitted to work inside of a full animatronic figure, or could possibly even be used in a factory setting to replace human workers. The design is very replicable and modifiable, as it only consists of 3D prints, wooden supports, aluminum “bones”, and high-strength servo motors. It is also very modular in its function, as it runs off of an Arduino board anyone could easily reprogram new patterns into the arm at a moment’s notice.
Building Process / Summary
The building process is easily the most interesting part of the project, as I had to employ many techniques to get the arm function in the way I wanted. To begin with we had to find motors that could control the arm reliably, and we ended up settling on using 150 kg/cm torque servos, which is enough torque to easily lift anything we attach to it. Initially having to balance motor torque against the overall weight of the arm was by far the biggest concern, but having found these exceptionally powerful (and surprisingly small) servos, that concern was essentially removed, since 150 kg/cm is genuinely enough torque to move a car. Once we settled on that we moved onto the hand, as it was among the most visually prominent parts of the project and needed to be done early. Instead of designing it ourselves, we decided to use the Flexy Hand model by Steve Wood (uploaded to Thingiverse in 2014 & licensed under Creative Commons). We decided to use this model because designing a hand from scratch would have been so extraordinarily time consuming that it would detract from the quality of the rest of the arm, which was the primary focus of the project. If we had time towards the end of the project we would design our own end effector.

As soon as the hand was complete I moved onto the shoulder, as I knew that would be by far the most high-stress part in the whole project, as the entire arm does literally hinge on it. The arm is designed such that both the shoulder and elbow will each have two motors, one that will rotate it and another that will pitch the ligament around. This will allow a full range of motion highly similar to the human arm, with a little extra since the elbow can bend backwards. Due to the rather extreme amount of stress going through the shoulder I decided to split the shoulder across the wood mounting plank, so that the rotary half of the shoulder was on the other side of the plank from the pitch servo. This allows the stress to be split much more evenly across the plank and takes away most of the stress from the servos themselves (because even though these servos are still extraordinarily strong, using them as structural pieces is a terrible idea).

To further help dissipate the weight of the arm, I created a ring of bearings to hold the shoulder pieces in place.

While simply using a giant bearing would’ve been better, we had none of that scale on hand in the Maker-Space, and it was far more efficient to just use what we had than it would’ve been to find new bearing of a perfect size.
The mounting plate for the shoulder pitch servo ended up being significantly more complex than the one for the rotary, as the servo had to be perpendicular to the plate and would also be holding most of the weight of the arm. To assist with weight distribution I created two pillars to hold more bearings, so the weight of the arm will go through them instead of only through the servo bracket.

Due to the rather limited amount of space available for reinforcements, I cranked up the print infill to add extra strength. This worked very well as this part proved to be reliable throughout the whole of the project.
Once the shoulder itself was completed we had to figure out how to connect each section of the arm to each other. We ended up settling on using square aluminum pipes as the “bones” that would connect everything. Since aluminum is a spectacularly light and strong material it is absolutely perfect for this use case, keeping the weight of the arm to an absolute minimum while retaining shape perfectly.
Next up was the elbow, which was a part I’d been dreading the whole project. Firstly it needed to attach a servo with its axis perfectly in line with the aluminum bone, then also needed to be able to support the bracket attaching to the top of that servo which would hold yet another servo perpendicular to it. This servo would also be directly supporting and moving all of the weight of the rest of the arm. Needless to say, this design needed to be spectacularly strong. After a very long time modelling, this is the design we settled on.



This model also incorporated multiple bearings in and around the pitch mount sections, as they needed to be able to rotate freely but the part was in desperate need for further reinforcement. The grey geometry around the pitch motor (the leftmost servo) is a bearing holder designed to mimic the bearing stands as seen in the shoulder, so I could reuse the same model attaching the aluminum bone in the shoulder here while also still using more bearings to better dissipate weight. The elbow design is easily the most extreme part of the whole project, as this model alone had 23 versions. Getting this 3D printed out was also equally difficult, as the elbow rotary mount took 33 hours to print by itself.

To that end, getting these parts 3D printed in general was an absolute nightmare. Since they were all fairly tall and massive prints, it caused the printers to fail quite often, as the printer will always lose accuracy every layer it moves upward. On top of that I also had to rush to get many of these prints done as everyone else in the Maker-Space also needed parts printed, so I had to simply hope I could start my prints before all the other printers were taken up or be forced to do them all on my personal printer (as seen above).

I used up so much filament while trying to print everything out (and reprinting everything because the earlier prints failed) that I ran out of the nice orange filament I had been planning on creating the whole arm out of, hence why the models themselves are all in orange even though most of the project was printed in gray-blue. On top of failed models we also had to simply throw some away due to tolerances or measurements being off, which added even more printing time on top of everything else.

Beyond reprints though assembly was rather painless, as every part was designed to fit together from the get-go. The only initial struggle was some prints got in the way of where I needed to screw parts into the servo (an issue that was rectified in later designs).
Wiring, however, was a totally different story. Disappointingly I had failed to consider how many wires this would take and how far many of the wires would have to travel. Every servo needs three wires, power, ground, and control. Power and ground wires can be wired in parallel between the servos to save space, but every servo will need an individual control wire.

What’s worse is that when soldering I hadn’t thought to run the wires through the aluminum bones themselves (since they’re hollow). This caused a massive tangle of wires to be hanging all around the arm, and to stop them from getting caught in the servo (and to make it look nicer) I had to wrap duct tape all over the arm to hold them in place. While it was an improvement over the wire tangle it did still make the arm look messy in general, something I was not at all pleased with. Needless to say, version 2 of this project will handle the wiring much better.
Initially it was the plan for the arm to be controlled by a radio controller I had on hand, but after that proved to be difficult I decided to shelve that idea in favor of hard-coding in some movements for presentation. While I did start on the code for multiple different movements, I only ended up polishing two of them for MakerFaire. One was a simple waving motion where the arm would raise itself high up, and the other was a fistbump (the fistbump was coded to move very slowly so we wouldn’t accidently punch anyone while we were presenting).
While testing these movements the strength of the parts became a problem for the first time in the whole project. With the way these servos are controlled you cannot directly input how fast you want them to move, so you have to do it by hand in the code by having angles slowly change over time. The thing is though in any point where a function to do that is missing from the code and instead an angle is simply written to the servo, it will attempt to get to that angle as fast as possible and then force stop itself. This ultimately caused part of the shoulder to snap and the servo’s steel bracket to bend when the arm went from a high position to a low position as fast as it could. Due to a shortage of time I had to employ some… creative solutions.

I reinforced the part using steel powder laced epoxy (SteelSilk brand epoxy) and used zip-ties to reintroduce tension into the part so it could hold itself together until MakerFaire ended. This kind of oversight in the code is something that I will be fixing in later iterations of the project, as the control methods for the arm in general are currently lackluster.
Reflection
Overall I’m quite happy with how this project turned out. It was fun having to manage almost every part of it and I am very proud of not only how much modelling I did but the quality of it. Beyond that singular part pictured above none of my parts failed due to any fault of their own. There are certainly problems to fix though, control of the hand proved to be very difficult with how we set it up, the wiring is an absolute mess, power in general has proven to be a difficult thing to manage with these servos, and the code does not allow for nearly as much modularity as I would like. I aim to fix every one of these problems in V2.

Leave a Reply