What Time Is It?

August 21, 2013 • 8 notes •

So, let’s talk about timing of tasks in FRC, or anything really. In an FRC match you have 135 seconds in which to do actions to win the match. What these specific actions are is irrelevant for this discussion, however, we’ll be using a subset of 2013’s actions as examples.

First, a bit of book keeping. When we say win I mean that your score is higher than that of your opponents. It doesn’t matter if it is 1 to 0 or 157 to 156. We’re also going to define a limited set of actions so that we don’t go too far off point here.

Ok, so we skipped a LOT of possible actions in there. That’s fine, this isn’t about showing that a certain strategy is best; We’re investigating a process you can use to choose actions and strategies.

We’re going to assume that we are a reasonable cycler robot. This means we take about 27 seconds per cycle and are capable of 4 cycles in a match. For each of these scenarios we’re going to say that we are 80% accurate in whatever goal we’re aiming for. That’s a HUGE assumption since the overwhelming majority of teams were nowhere near that accurate in the 3 point goal. 469 was, you weren’t, end of discussion.

Our contribution to the match is then:

runs = 4

discs per cycle = 4

accuracy = 80%

points = 3

contribution(runs) = floor(runs * discs per cycle * accuracy * points)

Based off our initial assumptions…

contribution(4) => 38

Now, that doesn’t seem like a lot of points but that is ignoring auton and end game points. We’ll get to end game in a bit, for now how do we lower point output? Simple, we cut down a cycle.

contribution(runs=3) => 28

Well, that was effective. But what would the opponent have to do to remove those 10 points? Remember how we said each cycle takes 27 seconds? You’ve probably picked up that 27 seconds per cycle x 4 cycles < 120 seconds. In fact, it’s a lot less, and that fact plays to our advantage. We are wasting 12 seconds, this means that to remove a complete cycle our opponents would need to slow us down for that time period. Or, impede us over 3 seconds per cycle.

By this point you’re probably wondering why we’re boring you with the obvious “moar cycles = moar wins” schtick. Bear with us here… We’re now going to play against Team Plowie, they were capable of 6 cycles per match. Meaning their contribution is:

contribution(runs = 6) => 57

Clearly Team Plowie is a nasty opponent, how do we counter them with our measly 28 points? To answer that we have to see how they got to 6 cycles.

Simply put,

cycles(time) = 120/(time)

So we can derive why we got 4 cycles from

floor(cycles(27)) => 4

Solving backwards we find that time defined in terms of cycles is:

time => 120/cycles

So to get how fast they need to cycle we can plug in 6 and get:

time(6) => 20

But how long do we have to slow them down before they lose a cycle? Not long at all, in fact they are running so close to the limit that if we can harry them for 1 second per cycle they will most likely lose a cycle bringing their points to:

contribution(runs = 5) => 48

Hey, not bad we’ve cut them down by by 9 points, but what impact did we have on our own scoring now that we’ve added a second or two to our own cycle times? Let’s see…

contribution(floor(cycles(29))) => 38

Wait, what is this black magic? By slowing down and getting in Team Plowie’s way for 2 seconds per cycle we’ve knocked 9 points from their score without impacting ours at all. Well, what if we slow them down more? We can add another three seconds to our cycle time and slow them down more right?

So Team Plowie now takes 25 seconds per cycle so they can contribute:

contribution(floor(cycles(25))) => 38

And what is your team’s contribution now that it takes 32 seconds per cycle?

contribution(floor(cycles(32))) => 28

And you’re still down 10 points. What happened? Well, playing defense has diminishing returns after a while. It’s the basic economic concept of opportunity cost. Those 20 seconds you’ve spent harrying Team Plowie to lower their score were seconds you COULD have been scoring. Yes, the numbers in this example were contrived and rounded slightly but they are here to illustrate a point. What we’re pointing out is Defense is Effective but you have to play it right.

We would like to point out that smart defense is very important…a bad defensive team will spend 10 seconds of driving to perhaps slow down the team they are defending by 2 seconds. A good defensive team could, and arguably should slow down an opponent by MORE time than the time spent defending.

Simply put, this is an overly simplified example showing you a proper way to play defense. The concept is sound but it needs some expanding to work in the 3v3 model. That, as well as expanding it to include your various other options and scoring modes, is left as an exercise to the user. Why? Because working out the parameters and options is good practice for when you have to do stuff like this next year.

*And, for the record, Cycles is one of those metrics like shots on goal in hockey. A cycle where you spray your shots wide the minute you cross the mid field line is akin to that lazy bounce off the boards that the goalie leisurely deflects to a player. It’s just padding numbers. *

  1. anotherpersonwithablog reblogged this from twentyfour-ewcp
  2. moonchildcorinne reblogged this from webuildrobotsforfun
  3. webuildrobotsforfun reblogged this from cadandcookies
  4. cadandcookies reblogged this from twentyfour-ewcp and added:
    Hey, they’re back! This is filed under my head as “things any FRC team member should read.”
  5. twentyfour-ewcp posted this