Making a Double Jointed Arm

This year, my team (4013 Clockwork Mania) came up with a design for an arm with two joints. I wish I had the official CAD for it, but it was on a laptop that unfortunately did not survive an incident involving a flying tape measure (this was outside of FRC, don’t worry) However, I was able to find this really old concept from when we first started designing.

The idea was that the two sections could rotate independent of each other, and the shorter section (that has an intake at the end) could pass through the robot as a whole. This meant that we could pick up cubes at any height, place them at any height, pick up cones from any height and orientation, etc. If we picked up a tipped cone that would be upside down when raised, we would just have to pass it through the robot and it was suddenly ready to place.

The joint for the larger section has max around 150 degrees of rotation, and the joint for the smaller section has a bit more than 360 degrees, basically a full rotation’s worth of freedom but not continuous because wires for the motors running the intake run through the entire arm mechanism.

When we built it, it worked! (mechanically only tho sadly). Our team didn’t have a mentor in that era (we had supervision in the robotics room and someone registered us) but we didn’t really get any help aside from that. On a very similar and important note, at the time we didn’t have the resources to properly execute the design. Specifically, we didn’t have any VPs or gearboxes strong enough to run the arm. Eventually, we ended up making bigger reductions with adding more stages and sprockets and chain. It was a mess, and extremely ugly, but the arm held its weight and more. It was still struggling though, and the sprockets we used at our competition were mostly borrowed from other teams, so we had to disassemble the source of our gear ratios.

This year, we have a mentor and more resources. My main question is, how would you best manage creating enough torque in both arms with a design like this? The less chain, the better.

We are planning on attending an off-season event this October, and want our arm to be scorable. Obviously it doesn’t have to be world class, but we want to at least accomplish something with the many hours of headaches and daydreaming that went into this robot. I know it’s possible, as we got it to score a bit on the practice field (albeit janky) but I would like to know how some of you would tackle this if you were faced with this design.

Planetary gearbox with a final chain reduction. For high torque applications like arms, VP’s aren’t that great - the gears are thinner than other options and can break. The AndyMark Sport gearboxes had an extra large “HD” stage that supports high torque applications better, and Rev’s MaxPlanetary system is also more robust. In any case, you want to use it with a CIM class motor (CIM, Neo, Falcon), not with a smaller, faster motor like a 775. The additional speed of a 775 doesn’t do you any good, it just means you need more reduction to get the torque you need.

You want a final chain reduction to help with shock loads. When you run your arm into a wall, that shock needs to be absorbed somewhere. Chain is great at helping to absorb it, gears not so much. Direct driving the arm with gears and adding that shock on can lead to some broken gears! I’ve seen gear driven work before, but I’ve seen many, many more with that final chain reduction.

One of the biggest challenges with a design like this is where to put the motors and gearboxes - it does you no good if the arm runs into them trying to pass through the robot! 90 degree output options for the various planetaries were quite popular this year, as they allowed the gearbox and motor to be parallel to the arm and open up more room across the robot for things like pass through features. They might be worth looking into!

2 Likes

I made a post (the whole thread is good btw) about high torque pivots early in this season and I still stand by the advice with one caveat. Tube nuts can and will deform given enough load. I recommend a different method for mounting a large OD tube such as machined plug.

Now that the season is over, there’s tons of teams that have posted high quality multi jointed arm CAD in all different configurations. Here’s a few examples:

My last piece of advice is something you are doing already: be curious, ask questions. There’s no better way to learn!

10 Likes

As a team that has tried to do with twice, my suggestion is simple: don’t. it is the HARDEST thing we have ever tried to do. The programing alone needed to make this work effectively, is enough to shy me away from doing it again. There are much easier solutions that perform as well, or in my experience, better than an arm of this type in FRC.

2 Likes

Team 3467 has some good resources for driving this type of arm. They did not implement a pass-through design, but their ideas for driving a two-degree-of-freedom arm still apply.

6 Likes

You mention in your post having low resources and being a young team.
STRONG SUGGESTION: Watch Karthik: Effective FIRST Strategies . EVEN if the resources have improved, there are SEVERAL simpler designs that will have lower COM and be much more effective. Getting more drive practice on a simpler bot will be a big win for your team. Not meaning to be condescending. This is a truism for many much more experienced teams.

After your October competition, explore your double jointed arm in more detail. We built a double jointed arm that was quite effective, (Magnolia Regional, 3rd place, highest scoring bot and winning alliance), but we still had issues with chain tension, positioning, etc.

4 Likes

This is the architecture we built this year, and I wouldn’t do it again. Not because of mechanics, but because of controls.

We put two falcons on 25:1 planetaries plus about a 24:60 chain reduction (parallel chains, one on each side of the robot) for the shoulder, and did a single falcon 3-stage planetary (iirc ~36:1? Maybe 48?) with 1:1 chain for the elbow.

This is about double the reduction we started with - we needed to slow everything down to achieve controllable PID positions, because we didn’t directly feed the elbow position into shoulder control effort. So we could not predict our control effort, and needed to just go slow so that the joints couldn’t overshoot. Really annoying.

We never got to a control pattern we loved. We had a nightmarish statemachine stepping between all the different poses, as well as enforcing intermediate poses between the goal poses when we needed to not destroy our robot with itself. Yes, it was working… And we could have done an elevator with a single rotation elbow in 1/4 the programming time, and run more than one autonomous routine at our comps.

2 Likes

Unless you’re comfortable with Lagrangian analysis, don’t build one of these.

It took 449 most of the season to get one working well. We’d do it again, but it wasn’t trivial.

For what?

2 Likes

Calculating an accurate feedforward. The static terms are fairly simple to work out from a free-body diagram, but the dynamic terms are quite tricky.

1 Like

Do you think an understanding of Lagrangian analysis and how to use it to calculate feedforward is vitally necessary to successfully implement the controls for a double jointed arm?

4 Likes

Depending on the mechanical design of the arm, it definitely can be. It depends how strong the coupling forces are compared to the motor torques.

This sounds like a design issue/constraint and not a constraint for if a team should build a double jointed arm. Controlling a reasonably designed double jointed arm with on-board motor controller PID that is hand tuned will suffice.

This isn’t to say that most teams should build a double jointed arm - you can get a lot more performance at certain resource levels with simpler designs. Just don’t want to scare/mislead any high school students into thinking they need to learn continuum analysis to do so.

8 Likes

Several teams above have expressed how difficult they found it to tune such arms by hand.

What you consider “reasonably designed” is not likely obvious to someone asking for whether they should investigate this sort of mechanism. Calculating whether the interaction forces are actually negligible for a given design isn’t that much easier than figuring out the plant inversion feedforward with a Lagrangian.

PID with a feedforward based on the arms position was “good enough” for us. A lot of teams focus too much on programming / tuning “perfect” controls when you can get something that is good enough for frc without being too complicated for high school students to understand.

The difficult part of a double jointed arm for us was other issues like backlash, encoder mounts, and chain skipping to name a few. An elevator is much easier to maintain and program from my experience so overall for a vast majority of teams it is the better option.

9 Likes

Our experience was that, while these were difficult problems in their own right, they were exponentially harder to deal with before we implemented an accurate dynamic feedforward. Feedback loops are not gentle!

tbf, the design was built and exists. The main thing I meant to ask overall wasn’t so much “is this possible?” but rather “now that we have resources, and we know it’s possible, how can we execute this better than before?” I figured that using some sort of stackable planetary gearbox and a chain reduction would make things better and less janky than a series of 5+ sequential chain reductions. I just wanted to ask to see if someone has done this before and there’s something else similar or simpler that I failed to think of

image

image

image

image

image

image

image

image

image

We didn’t even put a ff on the elbow, and frankly might have neglected it on the shoulder too, because I knew they’d be inaccurate.

We also had wayyyy more torque and less speed than I was originally hoping for. Neighborhood of 2 falcons on 150:1. We ran into the “wow this is uncontrollably fast” and then solved it with more planetary at the first stage. Helping with the controllability, our joint designs are also significantly stiffer than OP’s, because we ran dead axle Maxsplines running all the way to flush to the frame, instead of hexes with big span gaps. We also have a beam over the top of the shoulder connecting both sides, so we can’t go 360 but we do get more stiffness.

The final result is not dissimilar to running flat out bang-bang, because our P term is so high shrug

2 Likes

How did the transmission hold up to the vibrations and shock loading?