|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools |
Rating:
|
Display Modes |
|
|
|
#1
|
||||
|
||||
|
Re: How to use FRC Events data to determine gear ability
Quote:
|
|
#2
|
||||
|
||||
|
Re: How to use FRC Events data to determine gear ability
Here is a possible alternative which avoids my above complaint. This would treat the reserve gear just like any other teleop gear. Let's call Brian's original pseudocode Option 1, and this pseudocode Option 2.
Code:
function matchTotalGears(match):
if match.rotor4Engaged: return 13
if match.rotor3Engaged: return 7
if match.rotor2Engaged: return 3
else: return 1
function matchAutoGears(match):
if match.rotor2Auto: return 3
if match.rotor1Auto: return 1
else: return 0
function matchTeleopGears(match):
return matchTotalGears(match) - matchAutoGears(match)
|
|
#3
|
||||
|
||||
|
Re: How to use FRC Events data to determine gear ability
Quote:
|
|
#4
|
||||
|
||||
|
Re: How to use FRC Events data to determine gear ability
Quote:
Code:
function matchTotalGears(match):
if match.rotor4Engaged: return 12
if match.rotor3Engaged: return 6
if match.rotor2Engaged: return 2
else: return 0
function matchAutoGears(match):
if match.rotor2Auto: return 3
if match.rotor1Auto: return 1
else: return 0
function matchTeleopGears(match):
if matchTotalGears(match) - matchAutoGears(match) < 0: return 0
else: return matchTotalGears(match) - matchAutoGears(match)
|
|
#5
|
||||
|
||||
|
Re: How to use FRC Events data to determine gear ability
Quote:
Here is my proposal for Option 4, which maintains the linearity of the properties by incorporating auto into calculating matchTotalGears: Code:
function matchTotalGears(match):
if match.rotor4Engaged: return 12
if match.rotor3Engaged: return 6
if match.rotor2Auto: return 3
if match.rotor2Engaged: return 2
if match.rotor1Auto: return 1
else: return 0
function matchAutoGears(match):
if match.rotor2Auto: return 3
if match.rotor1Auto: return 1
else: return 0
function matchTeleopGears(match):
return matchTotalGears(match) - matchAutoGears(match)
|
|
#6
|
||||
|
||||
|
Re: How to use FRC Events data to determine gear ability
Quote:
Option 4 > Option 2 > Option 1 > Option 3 |
|
#7
|
||||
|
||||
|
Re: How to use FRC Events data to determine gear ability
Option 5: Covers the edge case where an alliance scores no gears and also forgets about the reserve gear.
Code:
function matchTotalGears(match):
if match.rotor4Engaged: return 12
if match.rotor3Engaged: return 6
if match.rotor2Auto: return 3
if match.rotor2Engaged: return 2
if match.rotor1Auto: return 1
if match.rotor1Engaged: return 0
else: return -1
function matchAutoGears(match):
if match.rotor2Auto: return 3
if match.rotor1Auto: return 1
else: return 0
function matchTeleopGears(match):
return matchTotalGears(match) - matchAutoGears(match)
|
|
#8
|
||||
|
||||
|
Re: How to use FRC Events data to determine gear ability
Here is another metric I am thinking of pursuing this year in addition to the metric described above. While the above metrics looks at the number of "scored" gears for each match, I would like to attempt to track the number of gears placed, regardless of whether they are scored or not. I really want to find the metric that has the most predictive power for future matches, even if it is not defined as clearly as the above metric.
My plan is to use the same general structure as the above methods, but to use an alternative number of gears for each possibility. To do this, I will wait until week 1 events are completed, and then try a bunch of different combinations of gear values for each combination of auto rotors and engaged rotors, and use the mapping which has the most predictive power. For example, I might find that the following mapping has the most predictive power for future matches: Code:
function matchTotalGears(match):
if match.rotor4Engaged: return 13.6
if match.rotor3Engaged: return 8.1
if match.rotor2Auto: return 4.4
if match.rotor2Engaged: return 3.3
if match.rotor1Auto: return 0.8
if match.rotor1Engaged: return 0.2
else: return -1.5
function matchAutoGears(match):
if match.rotor2Auto: return 2.8
if match.rotor1Auto: return 1.7
else: return -0.1
function matchTeleopGears(match):
return matchTotalGears(match) - matchAutoGears(match)
I am thinking of calling this the "estimated placed gears." |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|