FRC 95 The Grasshoppers 2023 Build Thread


Our primary sheet sponsor is absolutely slammed and likely won’t be able to make sheet parts for us for ~3 weeks. A lifetime in build season. So we are going to rework our existing model to work with flat sheet metal than another sponsor can plasma cut, 3D printed parts, potentially weldments, and other parts we can cut on available cnc routers.

This has me seriously stressed, but I think we can pull it off.


Sending good vibes. Been there.


Currently going through this struggle but with our milling machinist. Keep your head up!


A tip we picked up from 3538 and are still playing with lightly. Robojackets used a vice sheet metal break like this for their entire robot. not sure what thicknesses/length it maxes out at, but we have done 1/8". @Allison_K could tell you more.


Thanks! We have a 4in version of something like that for quick parts in the pit.

Our home school has a variety of sheet forming tools that we will likely be dusting off, including a decent press brake and 4’ pan and box brake (as well as dusting off our bending skills). Sadly, nothing we have can beat the ±.0015in laser and CNC press brake from our sponsor!


@Rufus_t_Doofus, let’s talk about linear mechanism binding!

I derived this equation for estimating the likelihood of binding a linear mechanism.

A way to reconfigure this free body diagram to be more applicable to this year’s likely mechanism is as a laterally-extending telescope mechanism. It may be the case that a and b change as a mechanism is deployed, so you should use the smallest b and largest a values to be conservative.

The conclusions are intuitive:

  • As the eccentricity of the load increases (a) the chance of binding increases
  • As the wheelbase of the linear device increases (b) the chance of binding decreases
  • A the coefficient of friction increases (µf) the chance of binding increases

How does this inform mechanism choices in FRC? In bearing selection of course!

A plain bearing, like Igus Drylin from the KoP makes a great example: best-case we’re looking at a coefficient of friction of 0.05-0.12.

The coefficient of friction iglide®

Ball bearings/roller contact bearings also have an ‘effective coefficient of friction’ that is well understood. There are numerous sources for these numbers, the first one I found through google is here.

While 0.05 is impressive for a plain material contact pair, it is more than an order of magnitude higher than the effective coefficient of a ball bearing. To move the earlier equation around:


As the bearing friction decreases we can support a larger eccentric load and/or reduce the base of support without binding.

If you have a linear mechanism it is worth running your configuration through this quick calculation to see if it is likely to bind. For our intake we have a bearing spacing (center-to-center) of 4.5in=b and a total intake reach past the bearing center of ~16.5in=a. So we get:

4.5/(2*16.5) = 0.13 = µf likely to cause binding

So we would be REALLY close to binding if we used plain bearings with a µf of 0.05-0.12, but super comfortable with a roller contact bearing with an effective µf of 0.002. Looking at the factor of safety:

0.13/0.12 = 1.08
0.13/0.05 = 2.6
0.13/0.002 = 65 for the win


Our minor disaster recovery plan:

  • Route and attempt to bend our own chassis parts immediately
  • @Ty_Tremblay and Red Hawk Robotics 2713 sent our parts to their sheet sponsor, Churchill Corp, and they are making a set as quickly as they can. This set will be backups or immediate replacements if we totally muck up bending. We can’t think you gals/guys enough!

Scatter-brained update time!

We added slot features to our made-at-home sheet parts. This helps the bends to form where we want them and we chose this because we do not have CNC press brakes to work with, just a ratty pan and box brake. But it got the job done.

The intake redesign to avoid sheet parts (oof) relies on the MAXPlanetary gearbox structurally. I think it’ll be fine, they are stout.

I’m printing more parts because, of course, our print farm order is delayed.

Chassis assembly just kinda winked into existence. Packaging looks good, just like CAD said it would. We mounted the compressor a little differently than CAD and it does boop the slide a little, but nothing we can’t fix.

We still have some redesign work to do on the superstructure to build it a little differently, but I think we’re in good shape right now to release those parts for fab on Monday.

Gotta plead mea culpa on one thing though: I futzed one of the fitup sketches and we all missed it at review time. The rails interfered with the swerve modules just a smidge. A few minutes with a bandsaw and jigsaw had us back in operation, luckily.


What kind of metal do you use for your bending?

5052 H32 aluminum. I find it machines pretty well and is highly resistant to cracking during bending. It is a pretty common sheet/bending alloy in industry.


Welp, first day lost to snow this year.

@StephenWitwick and @JWC_95 improved CAD models and we released a bunch of printed parts for manufacture.

I have spent a bunch of time lately getting my router running better and ran some parts from scrap sheet I had kicking around.

Fusion 360’s arrange feature lets me sketch out my random scrap shapes and nest parts into these weird shapes efficiently. I’m a huge fan.

We made a pretty weird looking 3DP insert that gets used in almost every tube junction. We’re going to test hot glue, a technique used by @Cory_Walters on 2767 that aligns with our goals of reparability.


Let’s talk about how to make good OA content.

I have been writing open build threads since 2014 and sharing open content before that. I’ve developed my own style over the years and have opinions about what works and what does not work for OA/build thread content. I think it would be useful to share some of my thoughts as the OA sees explosive growth.

OA posting is technical writing. Sure, the environment is much less formal than academia, but the same basic rules of technical writing apply.

  1. You suck at technical writing. Paraphrased from my Dad and Mom. Technical writing is hard, basically untaught before college, and from evidence available to me it is often poorly taught in college. You will have to work hard to be good at it.

  2. Be concise. Paragraphs should be four sentences or shorter. No run-on sentences. Long blocks of text are rarely engaging, and people will ask for more detail in the areas of their interest.

  3. Don’t waste time writing about what you see. Take pictures and video (or make other visual content) and share those instead. Provide bullet notes on what you see. Your audience can, and will, notice things your whole team missed. Sometimes these insights are critical.

  4. Acknowledge that you have your own biases, even if it’s just to yourself. We are all biased. “I like using virtual 4-bars” or “colson wheels have served us well in the past” are the type of phrases I like to use and see in OA posts to acknowledge these biases.

  5. Share failures, but be positive and not whiny. E.g. a 2018 video where our elevator assembly experienced rapid unplanned disassembly during testing was quite popular. Seeing a team explode things during testing, do a failure analysis, and implement a solution is a REALLY helpful process to share. Some of the best feedback I have received from a build thread has been about sharing our failures.

Now that I’ve made an OA post that breaks many of the rules I suggest…

  1. Understand the rules so you know when to break them. No, not like the game rules, that’s not okay. Breaking the rules such as ‘I try to never have posts that are all text,’ but ‘this post doesn’t really benefit from graphics, so, I’m skipping it’ kind of breaking the rules.

Good luck, and be open!


Huge fan of Fusion’s nesting feature. Enjoy seeing the once odd shaped material can be saved.

Am I crazy…I don’t think I saw this feature before.


Our big batch of 3D printed parts got rolling between yesterday and today, we expect to see them on Friday.

I am printing some templates to make marking our parts for rework easier.

Largely waiting on school district purchasing and shipping to filter through before we can do much more assembly and wiring.

The wait is painful.

1 Like

Programming Update!

With the high number of scoring and starting locations this year, as well as changeable gamepiece staging and the possibility of balancing the ramp in auto, I thought a system for customizing auto routines might be helpful. Essentially, I’ve created a very small, Java-esque domain-specific-language (DSL) for constructing automoves: you put the text on the SmartDashboard, click compile, and then the robot runs that auto when it’s next enabled. Here’s a demonstration in sim:

Of course, all the code is on our Github.

In addition, because we’re using the full 3d localization with AprilTags and Limelight, I’m looking at creating an automove that drives the robot to a point with on-the-fly path generation, allowing the robot to be placed anywhere on the field at the start of the match.

Combining these, we could then have alliance strategy meetings that start with something like this:
“We can score up to X gamepieces and balance, or up to Y gamepieces without balance. Where should we stage the robot to let your autos run, and where should we pick up/score gamepieces to maximize scoring?”
Start-from-anywhere autos also reduces setup time, as well as allowing greater flexibility.


ok nerds imma talk about gripper now

using only one air cylinder to reduce mass creates too much floppiness. Not good.

In order to control the chaotic motion of the pinchers, nylon components were added to limit the motion of each side of the mechanism and prevent any metal-on-metal nastiness. A benefit of limits is that the gripper automatically centers when fully opened or fully closed

the concave geometry is designed to maximize surface area on both game pieces whilst still being able to open wide enough for the whole intake. Do to the likely use of a shuttle valve, mass can be reduced further by using the same section of the gripper to pick up cubes and cones without creating purple confetti.

cubes are to be picked up in a partially closed position

squished cones should roughly match the curvature of the gripper when fully closed

total mass is 3.2 lbs, even using two layers of 1/4" polycarbonate



To provide some history for @StephenWitwick’s post:

Let’s talk about placing game pieces.

2011 was my first year as the lead technical mentor on 95, so a lot of my choices (and mistakes) are etched into my memory. One of the choices was to use a roller claw.

(hooray low-rez pics)

While this claw overall met our team goals for the season it was not as consistent as I would have liked. We reversed the rollers to score game pieces which usually worked. However, sometimes the tubes did not release quite right, or they got pinched between a roller and a field component, or otherwise didn’t actually wind up getting scored on a peg.

Infuriating to say the least.

Then I read this.

  • Pneumatics jaw releases tubes without using rollers to gracefully hang tubes on rack.

Ever since then I have tried to make end effectors that could ‘gracefully release’ game pieces. Some of our most competitive robots (2017-19) all used pneumatically-released effectors for at least once game piece. The repeatability of this approach was great, giving the drivers and programmers confidence to push cycles faster and faster.

This experience (or scar tissue, depending on your view) led us to choose a pneumatically-actuated gripper for this year’s end effector.

Some of the design requirements include:

  • Open as wide as possible
  • Close small enough to grip at ~1/2 the cone height
  • Tend to center gripped game pieces
  • Keep it light (see mass compounding)

Would you mind expanding on the shuttle valve? If I understand correctly, it alows you to vary the pressure that you input into the piston, how would such a system look like om a robot?
Also I would love to know where would you source it.

1 Like

McMaster-Carr Page:

Simply put: plumb two different pressures to two different solenoids (or a single, fancier, solenoid). Plumb these solenoids into either input of the shuttle valve. If only one solenoid is activated that pressure will be passed to the cylinder. If both are activated only the higher pressure is passed to the cylinder.