Go to Post "It is a guaranteed fact that at least one rookie team will name their robot 'Chuck Norris'." - Tim Arnold [more]
Home
Go Back   Chief Delphi > Competition > Rules/Strategy
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
 
Thread Tools Rating: Thread Rating: 2 votes, 5.00 average. Display Modes
  #1   Spotlight this post!  
Unread 05-02-2017, 21:17
Caleb Sykes's Avatar
Caleb Sykes Caleb Sykes is online now
Registered User
FRC #4536 (MinuteBots)
Team Role: Mentor
 
Join Date: Feb 2011
Rookie Year: 2009
Location: St. Paul, Minnesota
Posts: 1,076
Caleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond repute
Re: How to use FRC Events data to determine gear ability

Quote:
Originally Posted by Brian Maher View Post
In the interest of standardization, here is some psuedocode of how I think these estimates should be calculated:
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):
     return matchTotalGears(match) - matchAutoGears(match)
What concerns me about doing that method is that some matches could have a negative value for teleop gears, which is nonsensical to me. Consider a match where one gear is scored in auto and only the reserve gear is placed in teleop. By the above method, matchAutoGears would return 1, matchTotalGears would return 0, and matchTeleopGears would return -1.
Reply With Quote
  #2   Spotlight this post!  
Unread 05-02-2017, 21:27
Caleb Sykes's Avatar
Caleb Sykes Caleb Sykes is online now
Registered User
FRC #4536 (MinuteBots)
Team Role: Mentor
 
Join Date: Feb 2011
Rookie Year: 2009
Location: St. Paul, Minnesota
Posts: 1,076
Caleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond repute
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)
Reply With Quote
  #3   Spotlight this post!  
Unread 05-02-2017, 21:28
cadandcookies's Avatar
cadandcookies cadandcookies is offline
Director of Programs, GOFIRST
AKA: Nick Aarestad
FTC #9205 (The Iron Maidens)
Team Role: College Student
 
Join Date: Jan 2012
Rookie Year: 2009
Location: Minnesnowta
Posts: 1,565
cadandcookies has a reputation beyond reputecadandcookies has a reputation beyond reputecadandcookies has a reputation beyond reputecadandcookies has a reputation beyond reputecadandcookies has a reputation beyond reputecadandcookies has a reputation beyond reputecadandcookies has a reputation beyond reputecadandcookies has a reputation beyond reputecadandcookies has a reputation beyond reputecadandcookies has a reputation beyond reputecadandcookies has a reputation beyond repute
Re: How to use FRC Events data to determine gear ability

Quote:
Originally Posted by Caleb Sykes View Post
What concerns me about doing that method is that some matches could have a negative value for teleop gears, which is nonsensical to me. Consider a match where one gear is scored in auto and only the reserve gear is placed in teleop. By the above method, matchAutoGears would return 1, matchTotalGears would return 0, and matchTeleopGears would return -1.
Considering it's an extremely narrow set of possibilities, I would think it would be easy to add some edge-case handling code for the rare matches where negative scores are possible. In these cases, teleop would simply be zero. In most other cases, I think Brian's method seems reasonable, but I also haven't thought through the problem terribly much.
__________________

Never assume the motives of others are, to them, less noble than yours are to you. - John Perry Barlow
tumblr | twitter
'Snow Problem CAD Files: 2015 2016
MN FTC Field Manager, FTA, CSA, Emcee
FLL Maybe NXT Year (09-10) -> FRC 2220 (11-14) -> FTC 9205(14-?)/FRC 2667 (15-16)
VEXU UMN (2015-??)
Volunteer since 2011
2013 RCA Winner (North Star Regional) (2220)
2016 Connect Award Winner (North Super Regional and World Championship) (9205)
Reply With Quote
  #4   Spotlight this post!  
Unread 05-02-2017, 21:36
Caleb Sykes's Avatar
Caleb Sykes Caleb Sykes is online now
Registered User
FRC #4536 (MinuteBots)
Team Role: Mentor
 
Join Date: Feb 2011
Rookie Year: 2009
Location: St. Paul, Minnesota
Posts: 1,076
Caleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond repute
Re: How to use FRC Events data to determine gear ability

Quote:
Originally Posted by cadandcookies View Post
Considering it's an extremely narrow set of possibilities, I would think it would be easy to add some edge-case handling code for the rare matches where negative scores are possible. In these cases, teleop would simply be zero. In most other cases, I think Brian's method seems reasonable, but I also haven't thought through the problem terribly much.
Option 3:

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)
My biggest complaint about this method is that we lose the nice linear relationship between these 3 parameters. I tend to like linear relationships, so I would probably prefer one of the first two options over this one.
Reply With Quote
  #5   Spotlight this post!  
Unread 05-02-2017, 21:45
Brian Maher's Avatar
Brian Maher Brian Maher is offline
Questionable Decisionmakers
FRC #2791 (Shaker Robotics), FRC #1257 (Parallel Universe)
Team Role: College Student
 
Join Date: Apr 2014
Rookie Year: 2012
Location: Troy, NY; NJ
Posts: 482
Brian Maher has a reputation beyond reputeBrian Maher has a reputation beyond reputeBrian Maher has a reputation beyond reputeBrian Maher has a reputation beyond reputeBrian Maher has a reputation beyond reputeBrian Maher has a reputation beyond reputeBrian Maher has a reputation beyond reputeBrian Maher has a reputation beyond reputeBrian Maher has a reputation beyond reputeBrian Maher has a reputation beyond reputeBrian Maher has a reputation beyond repute
Re: How to use FRC Events data to determine gear ability

Quote:
Originally Posted by Caleb Sykes View Post
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)
My one problem with this method is that when the time comes to regress it, the reserve gear will figure into the estimated contributions, which I think makes the contributions less meaningful.

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)
__________________
2016-present, Mentor, FRC 2791 - Shaker Robotics
2016: Tech Valley SF (5236, 2791, 3624) and Quality, Finger Lakes SF (5254, 2791, 2383), Battlecry@WPI Winner (195, 2791, 501), Robot Rumble Winner (2791, 195, 6463)

2016-present, Mentor, FRC 1257 - Parallel Universe
2016: Mount Olive Winner (1257, 5624, 1676), Bridgewater-Raritan Finalist (1257, 25, 3340, 555) and GP, MAR CMP Winner (225, 341, 1257), Archimedes SF (4003, 4564, 5842, 1257), IRI Invite

2012-2015, Student, FRC 1257 - Parallel Universe
2015: Mount Olive QF (1257, 1811, 1923) and Safety Award, North Brunswick Finalist (11, 193, 1257) and Team Spirit and Safety Awards
2014: Clifton Winner (1626, 869, 1257), MAR CMP QF (1257, 293, 303)
2013: TCNJ Safety Award
2012: Mount Olive QF (204, 303, 1257)
Reply With Quote
  #6   Spotlight this post!  
Unread 05-02-2017, 21:55
Caleb Sykes's Avatar
Caleb Sykes Caleb Sykes is online now
Registered User
FRC #4536 (MinuteBots)
Team Role: Mentor
 
Join Date: Feb 2011
Rookie Year: 2009
Location: St. Paul, Minnesota
Posts: 1,076
Caleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond repute
Re: How to use FRC Events data to determine gear ability

Quote:
Originally Posted by Brian Maher View Post
Here is my proposal for Option 4, which maintains the linearity of the properties by incorporating auto into calculating matchTotalGears:
This one is my new favorite. My ranking of the choices is:
Option 4 > Option 2 > Option 1 > Option 3
Reply With Quote
  #7   Spotlight this post!  
Unread 05-02-2017, 22:15
Caleb Sykes's Avatar
Caleb Sykes Caleb Sykes is online now
Registered User
FRC #4536 (MinuteBots)
Team Role: Mentor
 
Join Date: Feb 2011
Rookie Year: 2009
Location: St. Paul, Minnesota
Posts: 1,076
Caleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond repute
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)
Basically this would provide extra punishment for alliances with extremely bad pilots.
Reply With Quote
  #8   Spotlight this post!  
Unread 07-02-2017, 14:00
Caleb Sykes's Avatar
Caleb Sykes Caleb Sykes is online now
Registered User
FRC #4536 (MinuteBots)
Team Role: Mentor
 
Join Date: Feb 2011
Rookie Year: 2009
Location: St. Paul, Minnesota
Posts: 1,076
Caleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond reputeCaleb Sykes has a reputation beyond repute
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 anticipate that I would primarily use this metric for any predictive models I make. I am also planning to ask teams for week 1 scouting data so that I can see if this metric correlates better with scouted gear performance than the "scored gear contribution." I imagine it will.

I am thinking of calling this the "estimated placed gears."
Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 19:57.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi