Go to Post Ironically, I think the best testament to the program [Dean Kamen] founded and his ideals wouldn't be if he won a Nobel Prize. It would be if you did. - Kevin Sevcik [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: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
  #2   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
  #3   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
  #4   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