Cheesecaked Autonomous Ethics and "the Floor"

A hypothetical.

If Team XX1 brought to competition a set of ready-made code packets in each FRC supported language, ready to plug-n-play for any robot at the event, how would you feel about these two scenarios:

  1. Team XX1 meets in advance with each team they are scheduled to be alliance partners with, and works with them to upload and test their code prior to upcoming matches, with the intent of having each team on their alliance move in such a way that the alliance will gain 1RP (this assumes that Team XX1 has code of their own that allows them to score a Cube in their Switch in auto, and, that their alliance partners have no auto movement programmed or tested). Team XX1 explains that they would like their partners to be able to keep and continue using the code after their partnership ends, meaning the other teams will have the option of continuing to move in autonomous throughout the remainder of the event if they choose to do so.

  2. The same, with the exception that Team XX1 informs their partners that they consider the code proprietary, and will not allow their partners to keep using it after the alliance is dissolved.

Does scenario #1 raise the floor too much? Will the fact that more than half of the robots at the event will be able to move in auto by the end of qualification rounds change the competition in an unfair way? Do both scenarios unfairly hurt other teams who do not get to play with Team XX1? Does scenario #2 damage the prospects of teams that lose their auto ability once the match is over? Are there other ethical or practical problems with either scenario?

Note: I’m not the programming mentor. If my terminology or understanding is off, feel free to correct me.

To me, this is a no brainer.

#1 is perfectly acceptable and already being done by several team XX1s (including my own team).

#2 is unacceptable. Completely unacceptable.

If a team is giving then removing basic auto code for a Qual Match I think theres some serious issue. Something i suggested to my team is to have a full events worth of USB drives filled with basic auto code in both C++/Java (we do not know Labview so its kinda hard to code for that if you dont have anyone to take and learn it) and just have it out at events. If they need help we make it clear to come find us and help them out. I dont see anything wrong with that approach, everyone has the same amount of access to it and its a very intergal part of the game, much like 148’s climbers last year.

Like others said, #1 is a very clear way to raise the floor for a total cost of $0 in parts and a learned skill. We’re planning on doing this should the need arise.

#2 is absolutely absurd. A “drive forward” autonomous is not only in no way proprietary, it’s downright stupid to think you could ask a team to remove that forcibly. You’d be hurting essentially everyone involved.

I think it’d be absurd for anyone to ask to not use that code after the match.

The only time I think it’s understandable to ask for “cheesecake” back is when the cost for the components is considerable, and it’s only for playoffs. And I wouldn’t do that. Code only cost time. The 1s and 0s are free.

I can also understand in some instances a team asking for cheesecake not to be used against them in quals, depending on the point value. That’s not how I would operate personally. I think in this instance I would not find it reasonable, the point value is so low and the rp is still dependent on another robot being able to score in the switch

I wouldn’t be surprised if I saw teams going around the pits the day before matches making sure every team could move forward.


I don’t see how anyone who tried to do #2 wouldn’t get laughed out of the building.

The team who “doesn’t have autonomous code” holds all the power in this situation actually.


I haven’t met a team in FRC that would implement option 2. If I ever do that will be a sad day.

Something we’ve discussed with our team is that just moving forward in Auto should be a no-brainer that there is no real excuse not to be able to do it.

I know that there are teams with maybe not as much of a programming base who don’t realize how easy this actually is to do (can be done completely open-loop).

Helping a team who doesn’t have this code is definitely acceptable, and pretty much the definition of Gracious Professionalism.

Trying to take the code back after “letting” a team use it for one match is pretty much the opposite of Gracious Professionalism.

Agree 100%.

I’d think that scenario #2 would violate rules C03 and C04, if not in the letter of the law, definitely in the spirit of the law.
You’ve given someone an ability, then told them not to use it anymore. Now they’re playing below what they could’ve accomplished.

Scenario #1 seems fine to me.

Assuming that it’s a short enough time to avoid going through Null Territory…or the robot is aimed at the Fence/Scale to stop itself.

I agree with Paul. I also agree with ahartnet that it may be reasonable for some cheesecake to come back–but ONLY when that’s clear to both teams involved before it goes on.


But I would like to add a little wrinkle to this opportunity, I would suggest that any team providing programming help for those who do not have an autonomous mode should provide code that not only drives forward to cross the line but also drives immediately back to the wall. [Noting that the robot does not need to be across the AUTO LINE at the end of autonomous in order to score those points.]

Why? Because if you have autonomous modes that hope to do more than just score on the switch then it is incredibly helpful to know that your partners will not be in the way when you attempt to go around the side of the switch.

So I submit that the best “minimum” autonomous mode will drive forward crossing the AUTO LINE and then back to the wall. :smiley:

Have you watched prior games? lots of sits there then moves after 15 seconds. I have a feeling 3rd party code loading is not super prevalent until eliminations and even then used sparingly.

There hasn’t been an autonomous ranking point before…

Technically 40 pressure last year was a RP opportunity in auto with multiple teams or a bin dump and point multipliers, yes this year is seemingly much easier and restricted to auto. Drive forward in auto much more critical to rank high in PU

In this case, the low cost (i.e. it’s easy to move forward, so it is easy to provide that ability to other teams), and the high value (a ranking point, but only if all three teams cross), will make the “software cheesecake” a lot more common.

Like everyone else who has responded, I find #1 acceptable, #2 not acceptable.

Fair, but there’s obviously no cheesecake that would enable a team to run a 40 kPa auto. And this year is orders of magnitude easier in terms of cheescaking an autonomous routine to gain a Ranking Point.