Flywheels and Shooter Wheels

Our robot uses a single-wheel shooter on a rotating turret. (Actually, it’s two wheels close together on one axle, so they act as one wheel for purposes of this discussion.) We’re considering adding a flywheel, because it is supposed to help with consistency, given the different ways balls react to the shooter (older balls get softer, so they don’t shoot quite as far for the same settings). At least, that’s what we’ve been told.

My question is, has anyone done a test to demonstrate that the flywheel helps, and by how much? How big a flywheel is needed? I enjoy trying new things, but at this point in the season (our second regional is a little over a week away) I don’t want to have my team spend a lot of time and resources for something that may be of no value. Possibly it could do more harm than good (causing vibrations, increasing spin-up time, adding weight high on the robot…). But if I saw evidence that it really helps, we could be convinced to give it a go.

We decided against a flywheel, because we found that the mass slowed our ability to get back up to speed after a shot. Instead we use a tightly-controlled PID loop with ‘normal’ speed at about 70% power. The extra 30% “headroom” allows up to spool the wheel back to speed in about 1.6 seconds at present, but we are working to improve the response time.

One difference to your wheel is that we use two powered wheels opposing each other, allowing us to more closely control backspin.

A flywheel will allow for tuning your pid more easily. The increased inertia will help damp acceleration and deceleration.

However, consider it as a physics problem.

From a standstill, you need to spin that flywheel up to a given RPM. The heavier the flywheel, the more work it will take, and the longer it will take.

Once you have fired a ball, a given amount of energy is transferred from the flywheel to the ball. Regardless of whether your shooter slows down a little (heavy shooter) or a lot (light shooter), you’ll need to use your motors to add that same amount of energy back into the system. The same amount of energy is removed from both systems, so the motors will have to work just as much in either case to add it back in.

The sum effect is that unless you make your flywheel so heavy that you can shoot without having to spin it back up, a flywheel will only slow down your shooting, due to a longer initial spin up time. It may make it easier to tune a PID to control your shooter. We use 8 inch wheels and have managed to tune a fairly accurate pid (+/- 6% speed).

I think a shooter with a flywheel can transfer a little more energy than without a flywheel. I am assuming that the rate of energy transfer is proportional to the difference between wheel speed and ball speed. Imagine two identical shooters A and B, except that shooter B has a flywheel. Shooter A will slow down during the launch process, so it will be adding less energy near the end of the launch. Shooter B will maintain its speed (nearly), so it continues adding energy to the ball at a higher rate than A.

What I don’t know is, does the flywheel help the launcher behave more consistently with balls of different stiffness? “Consistent” meaning balls exiting the launcher at the same speed, regardless of stiffness.

Hello, some of this is slightly off topic but I do have a reason behind it.

During the build season Team 1100 had a huge consistency issue with our basketballs. four out of our five were relatively normal (and behave how the competition balls behaved at WPI regional), but one was especially hard and dense. we had originality built an opposing wheel shooter that was powered by an FP motor on each wheel with a 4:1 reduction using KOP wheels. After testing we where not able to control the speed of the shooter reliably enough to score any balls consistently. We decided to switch to a single wheel shooter with both of the FP motors running on direct drive. The new shooter was capable of shooting 3 pointers from the key according to the math but wasn’t meeting that in real life so we had a slight problem. To fix the problem we added two steel flywheels inside our shooter wheel (a 2.3" OD PVC pipe) each one is about a pound and has an OD of ~2 inches. and increased the compression of the ball by moving the back plate in, causing more energy to be put into the ball.

With these modifications we noticed a few changes:

  1. More consistency at all speeds, regardless of ball properties
  2. Better control of the ball, especially at low speeds
  3. Greater top-end range
  4. Less effect on our shooter’ surface velocity while we were shooting

It should be noted that the only way we could increase the compression was to add the flywheel because the shooter bogged down to much without it.

At the WPI regional we decided to forgo shooting from the key because it was much more consistent to have our operator aim from the fender instead and we didn’t fully have the control algorithm for our turret’s tilt mechanism up and running. That said, 1100 was the first seed at the regional and only missed 5 balls all competition wile running in AUTO mode. Two of which were due to positioning the robot in the wrong spot to accommodate an alliance partner.

At Boston we intend to run the same auto-mode but shoot 3s from the key.

I hope this helps,

We didn’t actually test out flywheels on my team, but I would think that flywheels would improve consistency. One of the problems with stiffer balls is that they require more energy to compress and thus slow down your shooter much more - taking energy that is not really going towards speeding up the ball. Flywheels, as was said previously, cause your shooter to maintain its speed better when it is transferring its energy to a ball. By maintaining wheel speed, you ensure that “stiffer” and “squishier” balls exit closer to the same speed.

That being said, sizes and weights of flywheels for this purpose would require testing and data. Soooo I guess you either need to try out some flywheels yourself or hope that somebody comes along with the data instead of using general conceptual analysis of the problem.

Our shooter, as designed and built, included an aluminum flywheel between the two shooter wheels, on the same rotation axis. Preliminary testing showed all the benefits you would expect, consistent shots and nearly no RPM dip between shots. And, yes, the PID control over the wheel RPM was much smoother. Surprisingly, the flywheel did not make such a difference in the spinup time, as we have plenty of excess shooter drive motor power. As the electronics were installed, it became evident we had a serious weight issue, and the flywheel had to go.

We have solved our weight issues (shortening the tower helped) and now probably have the spare weight to reinstall the flywheel. But, with the importance of bridge balancing, we may not be willing to add back 2 lbs to the top of the tower. That weight may be better spent on adding a “killer bees” style balance steadying stinger. We’ll see how our first competition goes this weekend.

Thanks for these responses, everyone. This discussion is really helping.

Several people have mentioned PID control. Are you using the Jaguar built-in PID feature, or are you implementing it yourself in the cRIO? Either way, what’s your tuning method, and how long did it take? We only have the Thursday at regional competition to get it done.

I am confused as to what the difference is between a fly wheel and a shooter wheel??

Yes I am also interested in how you guys do PID looping. A code snippet anyone?

The shooter wheel is an object that propels the ball from the robot. it may have some inertia but usually doesn’t have very much.

A flywheel is a device thats only purpose is to store rotary inertia. It is usually heavy and has most of it’s weight as far away from the center shaft as possible to maximize the inertia to weight ratio. Ideally the flywheel would be direct drive from the motor where the shooter wheel would be through some gear reduction.

On many teams these two objects are the same.

On an unrelated note, 1100 didn’t need to use a PID control to get consistency in our shooter, just standard PWM drive through a jag.

This wouldn’t be very ideal (or safe) on a 19,000 rpm motor like the 550.

That’s not “unrelated”; it’s very relevant, as implementing a PID within the limited timeframe is one of my big concerns at this moment. If we can just use open-loop control and still get (most of) the benefit, we are more likely to go for it.

You didn’t mention in this thread what motor controller you are using. If you are using a Jag via CAN, at least consider using Voltage mode instead of %Vbus. This will compensate for varying supply voltage.

You can also do similar compensation in the cRIO by scaling your command based on the battery voltage. A member of team 1986 outlined their specific method of doing so in one of these PID/shooter threads somewhere.

Flywheel vs PID control was the biggest unknown we had this season, so we decided to make our shooter as flexible as possible.

I CAD’ed tight-tolerance plates that would bolt onto the side of our 8" IFI wheel using the pre-existing holes, and then had 12 of them watercut out of 1/4" plate. This gives us a total of about ~3.5 lbs in flywheel weight in removeable increments of ~0.6lbs. We haven’t actually taken any of the weight off yet because the balls are extremely consistent distance-wise. We have yet to test integration of the software PID, but as a backup we also have human-in-the-loop control via a tactical display.

We have a 2.5 second spin-up time to ~2000 RPM (from the key), but the wheel can aggressively spin up to 3600 RPM in under ~1.5 seconds if we let the motors run without the trapezoidal speed profile.

During initial testing the wheel only spun down about 20% (200RPM-ish) while compressing the ultra-squishy balls 1" and could return to the target speed in about 1 second. We didn’t measure spin-down of stiff balls with 0.5" compression, but the distances were the same. We have this ridiculous test & integration plan to figure out compression, PID adjustments, flywheel weights, driving constraints and what the actual balls will be on the field. If I’m not exhausted after tomorrow’s practice, I’ll report back some actual #'s.

Shared test data is always greatly appreciated. Thank you.


You may be making several assumptions with this statement. This year 1100 is using a single wheel shooter that is mounted direct drive to a Fisher Price motor (9015 or 9013?) our shooter diameter is about 2.3" (although if I rebuilt it I would use 3" tubing instead) and as such we can get away with a very small flywheel.

We know the energy stored in a flywheel can be represented as:
E = (Moment_of_Inertia * Angular_Velocity^2)/2

So if you double the angular velocity you will effectively quadruple the Energy stored in the flywheel. On the same lines, if you have a target Energy you wish to store in the flywheel, then by connecting the flywheel to the motor and not to the shooter shaft you can use a smaller lighter flywheel (more ideal in FIRST applications where shooters tend to be high up in the robot and weight and balance are issues).

The other thing I would like to mention is that the safety of the system mostly depends on the configuration of how things are assembled. If properly done there is no more chance of something going wrong in one model of the system then in the other.

If you have concerns about the safety of direct drive applications of the flywheel/shooter in our robot please send me a PM.

We’re using Jaguars via CAN. I’ll need to check with the programming subteam whether we’re using Voltage mode or %Vbus. Thanks for the suggestion, Ether.

Our shooter was working rather well on practice day, before very weird electrical problems knocked it out for the rest of FLR. Our tuning method took about an hour, and was as follows (using encoders for feedback):

Start with all values at zero. Increase P until further increases result in a similar stall below the threshold value. (Too low will result in stall, FYI, so start with a value above that). Decrease P to the minimum value in that diminishing-returns range.

Start with a large I. You’ll notice that it takes a long time to get up to speed, but it does get up to the target value and holds steady without overshooting. Decrease I until you get a ramp-up that satisfies your needs.

Spin it up, then feed in a ball and make sure that it ramps back up to speed without oscillating. (Ours didn’t oscillate using this method).

Leave D at zero.

That, at least, worked for us… Though if you saw us at FLR you’d just have to take our word for it. (Rattin’ smattin’ electricity!)