A Guide to Designing Robust Robot Arms

Google Doc with Edits for feedback and comments

Intro

Many teams are trying arms for this season, and it can sometimes get confusing with all the considerations and parts you need to make a well-designed arm. I’ve noticed some attempts at copying 7461’s arm, and there are some things I didn’t take note of that might be useful when designing your own. Hopefully, this guide isn’t too late in the season. Feel free to ask questions or message me if you need help. This guide might have some errors as I’m still learning as a designer. Please correct this post!

This writeup was mostly based on the design process and learnings of designing 7461’s 2023 robot. Check out the build thread here! FRC 7461 Sushi Squad 2023 Build Thread

Although it is a bit late, hopefully, you learn something new and can fix any errors you had in your arm designs.

Good arm design is important as it facilitates avoiding the most common failures, allowing your team to focus on the other parts of the design while allowing for easy control of the game pieces. There are many ways to set up an arm or wrist, and factors may change depending on your team’s resources, but hopefully, this guide aids you in the process.

Here is also some example cad to look at while you read through the guide.

GO TO BOTTOM FOR ORDER LIST

To design a good arm, there are a few necessary things.

  1. A strong superstructure with a design that accounts for all the expected loads

  2. A low backlash, rigid power transmission method that won’t break

  3. A solid support structure that allows the arm to move freely without overconstraining it.

  4. A means of accurately measuring the rotation of the arm

  5. “Good” design practices surround the arm to ensure that the arm can function adequately. For example, manipulator design or center of mass allocation.

  6. A means of easily maintaining the arm or switching if breakages happen.

All of these requirements aren’t too difficult to fulfill, but it is important to take note as its easy to overlook.

Arm Structure

Before you design your arm, you need to have a structure that supports the arm, usually known as your superstructure. Your superstructure is important as it carries and supports the entire weight of your arm and all the associated forces.

An example of a superstructure.

This supports your arm, so it’s essential to make it sufficiently rigid and strong so that your arm behaves predictably and withstands impact loading. Primarily, you have the front and back loads and the sideways loads on your superstructure, though the most important is the back and front loads.


Front and back loads of an arm, see how the cross beam helps support the main support beams. You can also put the beams in front instead of the back of the arm for support.

Note that the horizontal loads are much less, so you don’t need as much support. As you widen your superstructure, you need to worry less about these loads. In the pictured image above, some features to help stiffen the structure will significantly help. As the structure gets wider, you get more loads on your axle, but you don’t have to stiffen the structure as much, and vice versa.

To construct the superstructure, I recommend a box tube and gusset setup, or a tie rod setup for the loads, with the box tube and gusset being a lot easier.

Note that this is on an elevator but has the same structural principles. This setup uses carbon fiber rods, but you can easily do the same with a hex shaft and 10-32 tie rods. (links to both here)

Additionally, you want your superstructure to be pretty light, as the heavier it gets higher up on the robot, the harder it is to drive. As a result, I recommend using the thin-wall tube. MAXtube grid pattern light works great here as it has an excellent strength-to-weight ratio.

A common pitfall is having your primary support tubes too far from each other, which can cause your axle to bend. You generally want to get it as close to your arm as possible while giving enough clearance. For a ballpark number, 6-7 inches is generally a good balance, and 5 inches is possible if you put in enough effort and are a good designer.

There aren’t any numbers behind these numbers, based mostly on vibes, as frc dynamic loads are hard to calculate. The reason for going above 5 inches is that it’s very hard to package everything in that tight of a space, and anything above 8 tends to get sketchy in terms of the bending force on your dead axle (you can probably get away with max spline if you need to have your structure be that wide.

Axle Setup

You need something to pivot your arm on as you do an arm. Typically, this is done through a dead axle setup, which is a fixed axle that the arm rides on, then power is transferred directly to the arm. It’s vital to have a strong axle, as there is a ton of loads due to the arm, especially if you run into things.

How do you get a strong axel? You can design a stronger axle while keeping the weight low by primarily increasing the diameter of your axle. The primary thing you want to be concerned about is the second moment of area https://en.wikipedia.org/wiki/List_of_second_moments_of_area. Honestly, I don’t know much about the exact details. Still, generally bigger diameter axle = stronger in the bending and torsional loads, which are the primary loads important for this arm application. Having material inside your axle doesn’t impact the second moment of the area much as increasing the radius. Here’s the second moment of areas for a few standard axle parts in the lz axis, which is the main one for arms.

1/2 inch Hex shaft: 0.095
7/8 round tube 1/16 thin-wall: 0.23
Maxspline: 0.5 (?) (it’s a bit rough to calculate when it isn’t a circle) (someone plz correct)

You can check the FEA in this CD thread below.

Generally speaking, a big tube = good.

Typically, as your dead axle size increases, it’s harder to run a live axel setup, and torque through the axle and the forces are much more concentrated. As a result, a dead axle is a lot simpler for arms. A dead axle is important as it is fixed and doesn’t move, while the actual arm moves around it, meaning that no torque is transferred through the axle, compared to a traditionally live axle, in which the axle transfers torque to the arm. So that brings the question, how do you pivot and transfer power to your arm robustly and consistently?

Power Transmission:

Now you have a dead axle, your superstructure, and your arm. You need to design your arm and a means of transferring power to your arm. There are a lot of different materials for designing your arm, but the short answer is you should probably use 2x1 or 1/16 2x2. Some teams may also use carbon fiber rods, but box tubing is a lot easier, and I recommend it. Generally speaking, you want to increase the diameter of your arm via tube while keeping the weight as low as possible, especially at the end of the arm, as with a high lever, the force of anything on the end will be magnified. Finally, you want to extend your arm a bit on the other side for mounting purposes and to decrease the force going through the power transmission.

So how does the arm pivot on a dead axle? Usually, you can just use a bronze bushing that’s on the arm. That’s kind of it.

The holes on either side of the box tubing need to be concentric. This can be done correctly by using a drill press to go through both sides or hacked together by doing YYY.

So you now have an arm, a means of pivoting, and a superstructure. How do you power it? Arms can be powered via a chain, belt, cable, or gears, but the strongest and most ideal way of powering your arm is via chain and sprocket. The main reason is that it is a lot easier to make a high-strength chain run, while it’s tough to make a high-strength belt or gear setup without excellent manufacturing tolerances. Chain is also very well-proven, with teams like 330 running the setup and successfully running it.

35 and 25 chains can both be used. We prefer a single 35-chain run, but you can also use two 25-chain runs to power your arm. A large chain reduction is recommended from a small sprocket to a huge sprocket, as it reduces the torque output of the gearbox you are using (most likely a planetary gearbox), as well as insulates/protects your gearbox from harsh shock loads from crashing your arm. In 7461’s alpha bot cad, you can see a maxplanetary run being driven to a 12-tooth sprocket, which then goes into a giant 54-tooth sprocket that powers the arm.

Note that in real life, the MP stages are directly attached to the 12T shaft.

To keep the chain tensioned, I recommend putting your gearbox as low to the ground as possible for CG reasons and ensuring that you have enough length to put a chain tensioner. Both spartan and turnbuckles are fine for this application, assuming you don’t do anything wild. Spartan tensions are a pain to install, so turnbuckles are better for arm applications.

To tension a turnbuckle, I recommend tensioning by hand until it’s tight, avoiding hand tools, then, once tight, threading the nuts to hold the turnbuckle in place.

As seen in some of 7461’s past posts, you can break your turnbuckles if you either crash your arm or over-tension the turnbuckle (using a wrench), so please avoid breaking your tensioners. A spartan tensioner is probably much more reliable for this situation, but turnbuckles are much more manageable.

Additionally, you want to use 1/4-20 bolts near the edge of your sprocket to mount directly to your arm, with the dead axle not being mounted to your arm. otherwise, the bolts sheer your box tube, or the torque transfer ends up near the center of the axle, which is neither good.

As seen in this sketchy diagram. you want to increase L2 as much as possible, as it decreases the amount of F2 force. On the other hand, having a very long lever will cause F1 to be massive, which is also a problem.

Robustness/Sensors:

Quality control is important for arms, especially when it comes to controlling the arm. You want every single part to be robust and consistent so that you can replicate the same results consistently. The primary thing is your encoder setup and arm tensioning (which tensioning was mentioned above).

Another thing that will make ease of control easy for your arm will be avoiding flipping the arm’s direction from one side to another, as it keeps the backlash (the amount of wiggle when the motor is fixed) on one side of your arm, making life easy.

While modern brushless motors have integrated encoders, having a dedicated absolute encoder is a much more robust solution, as it allows you to record the rotation of the arm directly. This encoder should be geared 1:1 with the rotation of the arm and have no backlash. (Thank you Parker)

A CANcoder or REV through bore encoder would be ideal. I like using the REV through bore encoders as of now (2023), but as new encoders and electronics get introduced to the FRC market, do whatever is recommended.

You can’t directly record the arm axle’s rotation with a dead axle. As a result, you need to transfer motion to a separate off-axis encoder, which is then recorded by an encoder. A simple solution to this is bolting a large pulley to the arm, bringing it to another pulley with a loosened CC (-0.1in CC is good), then using a bearing tensioner system. This avoids many of the lineup and assembly tolerance issues you might have with gears and ensures you have an accurate reading of the arm’s current position.

Motor Calcs:

Gearing calculations are critical here as you need to make sure that your motors can move your arm the way you want it while not being too slow. If you gear too fast, your motors might struggle to turn the arm (make sure you current limit!), and if it’s too slow, it might be easy to control… but it’s slow.

Start by obtaining the fixed things you know from your robot design, arm mass, arm center of mass, and what motors you use. Cim class brushless motors are recommended (neo or falcon), as they can withstand a lot more abuse and don’t smoke up as quickly as other motors, as well as reducing the amount of gearing necessary to rotate the arm.

Put it through the calculator, and play around with the gearing until you get the fastest speed possible to raise your arm that doesn’t trip your breakers or smoke your motors, then add a bit more torque for the safety factor.

If your time to destination is still too slow, add another motor or decrease the weight of your arm. Rinse and repeat until you get something good.

Some general ballpark recommendations for values:
Use two cim class motors. Neos or falcons work great here, and overkill is better than smoking motors or moving slowly.
Set the current limit to 40 amps, but depending on how aggressive you want to be, you can increase or decrease this current limit

Feedback on this section, please!

Don’t want to think too hard about motor calcs?

Aim for 160:1 - 200:1 with 2 BLDC cim class motors with 35 chain in the last stage; it’ll probably work in 95 percent of situations. Adjust if it feels too slow or too fast. Check recalc

Try to keep your arm under 20 lbs

This allows you to have significant torque for most FRC applications you throw at the arm and makes it easy to control.

Counter Balancing: (a bit wordy, you can skip)

It’s very easy to increase the weight of your arm, and if it becomes too heavy, it may become difficult to drive with your motors or program. What counterbalancing allows you to do is effectively “reduce” the weight of your arm, typically using some form of spring or gas shock, which allows for a large quality of life improvement for your programming team, as well as decreases the loads on your arm, especially if you need to hold your arm up for extended periods. This allows you to put a lot more mass onto your arm, add fancy mechanisms without the worry of the motors being unable to handle it, and simplify the programming process.

Counter Balancing

Although counterbalancing seems very useful, you still have some slight issues, one being that the inertia of your arm remains, so your arm will have to be slower.

Additionally, as the standard is typically gas shocks, you will have a fixed and limited arm speed dependent on the gas spring, so insanely fast arm speeds aren’t possible.

As a result, you typically want to avoid using counterbalance or gas springs if you only need to lift your arm extremely quickly for short periods (a few seconds at most), without holding the arm up for long, and have competent programmers for programming the arm, and have an arm light enough to compensate. Even so, you can always over-gear to compensate for the increased mass.

So why use gas springs over other types of counterbalancing? Gas shocks have a few strengths that make it a clear pick in FRC. Compression springs are very dangerous, and you have to store over 50 lbs. of force in the springs to counterbalance the arm. Gas springs operate a bit slower, meaning there is less surprise factor, and they are more predictable and easier to control and build with. Additionally, compared to other forms of counterbalancing, gas springs are a lot easier to package with their smaller frame. Due to how they operate, they can be easily represented in sketches similar to traditional pneumatics, making them easy to design for and model. Finally, they are easy to mount, and you can easily buy the properly specced gas shock for your application, making them a lot easier to approach than other options, as you can easily integrate them into an existing arm design.

When designing for gas springs, you primarily want to follow a few rules and considerations.

You want first to ensure that you are using an under-specced gas spring, ideally under the actual mass of the arm that needs to be counterbalanced, as the arm is lifted by the gas spring is not very good, as it brings your backlash no longer on one side, meaning that the control is much more difficult. Aiming for 60-75 percent is good. For example, the 7461 beta arm required an 83 lb spring with a 3-inch radius and a 25-inch center of mass. As a result, we would use a 50-pound spring.

You also want to design it so that your gas spring is fully extended when your arm is at max extension. On the assembly side, this allows you to build the arm/mount the arm with the gas spring in a neutral state, meaning that you don’t have to be compressing a 50-pound spring to assemble your arm, which is very difficult.

Additionally, you want to place your gas spring mount in line with the horizontal axis of your arm, as well as to be somewhat close to the axis, as you don’t need too much mechanical advantage, and being closer to the center of the pivot means you need less length of gas spring to do the full rotation.

Finally, you want the down mounting of your gas spring to be directly under the axis of rotation, as it will allow for proper compensation of the force of gravity, which changes as the arm rotates.

Design Rules:

Besides your arm design, you should consider some general design rules while designing around your arm.

  1. As mentioned earlier, the force at the end of your arm is magnified via a lever, and a lighter arm makes it much easier to control for your programmers. Because of this, you should spend a lot of effort to minimize the weight at the end of the arm.

  2. Arm clearance is important as it’s easy to hit things with your arm, especially other parts of your robot. I recommend drawing a circle in your master sketch to represent the points of contact in your arm so you can design around it.

Typically you’ll encounter a few different issues when designing for arm clearance. Either:

  • Your arm can’t reach the ground and ground intake without an extra degree of freedom -You should probably change your strategy or add the degree of freedom. Otherwise, add a mechanism to pass it on to your
  • Your arm hits your pass-off mechanisms
    • You added pass-off mechanisms, so you don’t need to add an extra dof, but now your arm hits it. You need to play with the geometry until it fits or put it on the side where the arm doesn’t swing.
  • Your arm doesn’t reach your intended destination
    • Play around with the positioning, worst case. You add an extra .5-1 degree of freedom.

You can solve many of these issues by playing in your master sketch and geometry, which will generally be different for each team and set of constraints.

Thank you, onshape dark mode (onshape broke)

So you’re done with this long writeup, and you want just to order the parts, here’s a list of all the more specialized hardware you’ll need for some basic arms.

Consolidated Shopping list:

Standard Shopping list (bearing hole) (7461 alpha bot):

Dead Axel Setup: 7/8 OD 1/16 or 1/8 thickness 6061 round tubing

7/8 bronze bushings
McMaster-Carr 1 inch long
McMaster-Carr 0.5 inch long

Tube connecting nuts for 7/8 od:

Power transmission

35 Chain

Andymark 35 Series bearing bore plate sprockets, 52 or over Andymark or WCP 35 series steel sprockets, under 14 tooth

#35 Sprockets – WestCoast Products WCP-0758

Maxtube max pattern or 1/16 6061 2x2 extrusion (requires omio or precise machining, could make a jig (?)

3dp Filament MAXPlanetary (mps are better)/Sport Gearbox Can also use rev through bore gearbox with sports

Slightly Overkill shopping list (max spline semi-dead axle) (COTS heavy):

Maxspline

Stepped bushing:
https://www.revrobotics.com/rev-21-2396/
Tube Nuts for ¾ Dead Axle Tube (right threaded):
https://www.revrobotics.com/Tube-Nuts-for-3/4in-Dead-Axle-Tube/
¾ Dead Axle Tube

27 Likes

Filing this next to an answer about FRC elevators.

1 Like