Last night during vigorous discussion of game play strategy at HBR we discovered what we believe to be a serious challenge with this year’s game as related to typical FIRST strategy for repeatable goal alignment.

Because of the processing rate of the boiler (5 fuel per second) the maximum achievable pressure with teleop fuel scoring is 225 points of 675 fuel. In order to create a viable “cycle” this dictates that you have to exceed 5 fuel per second entering the boiler to maximize your scoring ability for fuel. At this point we believe something in the neighborhood of 15 fuel per second is needed to create an adequate processing time buffer to allow for transit, collection, and scoring of additional fuel.

The logical jump when considering this is to use the key immediately in front of the boiler as an alignment tool to create a repeatable scoring situation. The problem with this strategy is what I’ll outline below.

As the distance traveled across the ground by the projectile decreases and apex height increases the ratio of vertical and horizontal velocity components becomes larger. Eventually this means that as projectiles reach apex and the vertical component of velocity is exhausted the total velocity of the projectile becomes quite small. As you consider a string of projectiles in this situation, convergence can be observed as projectiles move towards the apex. When projectiles actually converge in flight this creates very erratic behavior and has the potential to cause a significant number of missed shots.

The mathematical model required to describe and evaluate this situation is not clear to us at this point and we’re looking for some help. Maybe someone here has an idea?

I think better than a mathematical calculation is a prototype in this case. Get a shooter or two or 3 shooting at 15 bps total and see what happens. I’m definitely not counting on 100% accuracy from anybody, but that should be fine considering the large quantity of balls being shot

Worth noting that if you miss, the balls roll back down on top of your robot if you were to be sitting with your bumper up against the boiler. So if you had a hopper with an open top, you could reload on your missed shots.

Because of that, I would say accuracy takes a back seat to speed/balls per second on this one. Up to you to decide what percentage of missed balls is acceptable.

If you’re looking to launch 15 fuel per second, and keep the balls at least an inch apart from each other, the speed at the top of the arc must be at least 7.5 ft/s, if your shooting interval is quite regular. (That is, keep a 6 inch separation between ball centers.) If it’s more of a random timing, you would need to go significantly faster. Perhaps if you had two launchers running in parallel…:yikes:

Potential issue with this is that you’re hogging the entire boiler if you’re sitting right in front of it like this, but that might be OK if you’re the ball specialist and you’re teamed up with two gear specialists looking to get that RP. Or if other high-goal shooters are able to aim at the boiler from a distance so you’re not in each other’s way.

If you can actually score at 10-15 bps, you’re the only ball scorer your team needs, literally, since you’re outrunning the high boiler scoring mechanism. Your partners should be gearing and maybe dumping haphazardly collect balls at your feet.

GeeTwo’s math makes sense. 15 balls x 6" center-to-center = 90"/s = 7.5 ft/s. And that’s horizontal movement at the top of the arc. Let’s try some back of the envelope experimenting with logic and a trajectory calculator:

Assume you need to get the center of the ball 2.1m up from the last point your shooter accelerates it.

You’d need 21 ft/s vertical velocity, and it’d take you 0.65s to hit the apex.*]If you have the previously calculated lateral velocity of 7.5 ft/s you’ve travelled 59" laterally when you hit the apex.

Front edge of the goal is 6" back from the wall. So your release point needs to be 53" back from the wall. So your robot’s not touching the wall.

10 balls per sec = 5 ft/s = 33" set back. Which may be doable, since you don’t HAVE to aim at the front-center edge.

This is all roughly speaking, of course. Drag is going to slow the balls down and complicate things, which will probably require higher separation and more lateral speed. Reasoning about it, here’s ways to improve your max rate of fire:

This is a limit for one stream of balls. Multiple streams will reduce the balls/sec in the stream but maintain the total bps.

Shoot from the side instead of dead center to increase your distance to the edge of the goal.

A higher release point isn’t as helpful as I would think. A 30" release point shaves 0.05s off flight time to apex, for a miserable 3" savings in lateral distance.

I think good high rate of fire teams will have a 2-3 wide shooter at the back of the robot, optimized for shooting diagonally into the goal.

EDIT: Also thinking about a single stream shooter, this means you’re shoving balls through your feed system at 6.25 ft/s to acheive 15 balls/s. Which sounds pretty insane, honestly. 10 balls/sec with 3 streams makes for 1.4 ft/s, which seems somewhat more reasonable.

Competition is going to be so much fun to watch, with robots machine-gunning balls at the goals.

But regardless of how effective your shooter is, the problem remains that if you sit at the base of the boiler you’re occupying that space. One of the (many) reasons our team decided to specialize in gears is the realization that a low-goal dumper or a basic high-goal shooter is likely going to want to sit right next to the boiler, which means there will be congestion and/or a line-up to get in there.

If a dumping robot plays a perfect match (which is actually unachieveable due to the time required to acquire game pieces at the beginning of teleoperated period) it scores 75 points maximum based on the 5 fuel per second processing rate for a total of 675 fuel scored. If a gear robot places two gears in teleop assuming no auto gears it scores 80 points. I’m not sure I see a place for dumping robots in this year’s game especially given it isn’t just a floor level open goal. No offense intended at all, I just don’t see it and I don’t see the value in designing around it. Cycle structure also dictates the goal should be free at some interval, so worst case there is space to work around a high goal robot. Alliance strategy is important here certainly, but I don’t necessarily see sacrificing individual performance for what is a mathematically infeasible strategy. Maybe I’m missing something, but it seems like a team considering dumping should maybe focus on gears, since its an easier task to build for and it makes for a valuable position as a part of an alliance when it comes to elimination rounds. A well practiced robot that has a robust drive and gear delivery mechanism (heck, even a climber) is a really valuable alliance partner and is really pretty simple.

average of 4balls/s processed means the final 30s of the match can only process 120 balls. Anything in the boiler after that risks not being scored right?

Supposedly it’s 4-5. If the goal is more full it should be closer to 5, because you’re less likely to have game pieces “wandering” looking for a slot to drop into in the mechanism inside the goal, but your logic is sound. Looks like adding fuel to a full goal (150 per the update) after 37.5-30s isn’t valuable because it stops counting at 0.

If a dumping robot can score 41Kpa he has a total of 81 points (41 from the dumping and 40 from the free gear in the airship) whereas a gearbot needs 6 gears (plus the free one) to beat that score.

Calculate how long it’ll take to go across the field, lineup on the loading station, retrieve the gear, run back across the field, line up on the lift and deposit that gear … all while avoiding defense, spilled fuel and dropped gears.

A BOILER processes FUEL in to steam at an average rate of five (5) FUEL per second per GOAL, but actual rate is dependent on the amount and packing of FUEL in the GOALS (i.e. the tighter the packing in a GOAL, the faster the FUEL processing rate).

5 is average, but if you jam the thing full (70 max balls for low, 150 max balls for high), it should actually go faster than 5/s for the same idea of less time wasted bouncing around before dropping into a carousel slot.

I’ve heard estimates of anywhere from 8 to 15 balls/s for a full boiler, but I don’t have a source for those numbers.

I was interpreting this to mean that it would be rotating at a fixed speed (5 fuel/s), and packing it tighter ensures there will be fuel in each slot of the rotating mechanism, essentially making 5/s the max. I could be wrong, but I’m going to assume that’s the case until I can see a source with numbers for it going faster than 5/s. I’d LIKE to be proven wrong here, but for now I think it’s best to assume the worst case.

A BOILER processes FUEL in to steam at an average rate of five (5) FUEL per second per GOAL, but actual rate is dependent on the amount and packing of FUEL in the GOALS (i.e. the tighter the packing in a GOAL, the faster the FUEL processing rate).

From this I’d say it’s spinning faster but if there aren’t many balls, it will average 5/s.

If you look at the picture of the boiler innards, it looks like a spinning disc with holes for fuel. If you fill the boiler such that a ball always drops into every available hole as the disc spins, then you get 5 fuel/sec. If you’re filling the boiler such that balls don’t drop into every hole, e.g. some get skipped over, then your effective rate drops.

Has this been Q&A’d? I’ve also been reading the nanual as “5 or higher” (probably due to other HQ and non-HQ sources talking about numbers like 8+). But it’s true the manual as written could well mean “5 or less”, and that also makes mechanical sense. This could be huge for some teams. Regardless, if that number is controlled, e.g. the disc always spins at 5 fuel holes per second, teams deserve to know. Or if it spins at 10 and more balls means less “wandering” but fewer means missed holes (so they think it’ll average 5), we ought to know that too. This is the problem with having a black boxed field element.