2016 was an excellent year in FIRST, and an excellent year for 5254 and 20 both.
I plan on going over and reviewing most of the season for 5254 below, evaluating our choices and results critically. Regardless of the analysis below, I want to thank everyone team we got to compete with in 2016, it was a blast, and we couldn’t have been as successful as we were without your help.
At kickoff, we analyzed the game and found three different roles we thought we could play:
- Breacher: clear all the defenses, feed partners, score low goals, and climb.
- Cleaner: be excellent at shooting balls rapidly and accurately into the high goal. Being able to cross only a few defenses is an alright trade-off for being able to shoot high volumes of balls.
- Cycler: cycle back and forth from the secret passage crossing just a few defenses scoring balls in whatever goal you can. Consistency is valued over volume, and unblockability isn’t as important, because if you can’t shoot high goals, you can score low goals.
We evaluated what we wanted to do, and determined that at the regional level, being a cycle would get us a high seed and make us one of the best shooters, and when we got to championships, we’d be able to pair with a top-tier cleaner who can make up for our volume.
The next step was to figure out what our priorities were. As a cycler, we needed to guarantee we could cross one defense no matter what, and given the proximity of the secret passage to the low bar, and the ubiquity of the low bar in every match, we decided that was a high priority item for us.
In addition, being able to shoot high goals was a priority for us, but from where and when? Those are two questions to ask about scoring tasks in most games, because the location on the field and the time of scoring make a big difference in terms of how your robot is able to play the game.
Different times to shoot from include:
- The first 20-30 seconds of teleop (before defense can get to you)
- The main portion of the match
- The last 30 seconds (when defense has to leave, and other tasks, like climbing, may become more important)
In addition, shooting locations are just as important.
- The Outer Works
- The top of the batter
- The bottom of the batter
- Empty space
In autonomous, being able to shoot from empty space is a great thing, but in the middle of teleop it’s easily defendable. Shooting from the batter is great for most of teleop, but its hard to do in autonomous, for example.
We determined that we wanted to shoot from the top of the batter and the Outer Works, with an emphasis in teleop on the batter shot, and the Outer Works shot mainly being for autonomous.
We discussed briefly release points, but decided that since going under the low bar was such a priority for us, having a lower release point would be fine, so long as we could hit our batter shot under defense.
Build season went better than I ever could have hoped. 5254 developed a prototype robot, then both a competition and practice robot. The extra few weeks with the practice robot after stop build day and before Tech Valley helped us to develop our batter shot and diagnose some issues, however no matter what we did, we couldn’t get the batter shot to shoot with more than about 75% accuracy, and even less on the real field. This was a combination of our low release point and how close to the wall we shot from. The ball, when released from our shooter, has very little forward momentum, and would often bounce or spin out of the goal.
As a result of these shooting inconsistencies, for most of Tech Valley we were scoring low goals. One thing we noticed is that sometimes our shooter was hot, and sometimes it was not. When it was hot, we could hit a bunch of shots in a row, and when it was not, we’d miss those shots. This led to a general strategy of trying one high goal shot first, and then if that missed, we’d switch to low goals to guarantee the capture. We had one match against 359 and one match with 359. Had we won the match against 359, we could have seeded first and selected 359 and likely won the event. Our match with 359 went excellently, as we put up the regional high score at the time. Unfortunately our Saturday morning matches weren’t as hot, and 359 elected to select 3990 instead of us.
The question after that point was who should we select. I went over this decision in an earlier blog post, but I have more insight on it now than I did then. The three reasonable picks to make were:
- 20 – low goals
- 2791 – high goals from the batter
- 3419 – high goals from space
2791 and 3419 both had more scoring upside than 20, and we discussed each pick in-depth.
The problem was that we needed the high scoring upside to beat 359, who we knew was going to be running three offensive robots, but then we needed to get past 20, who would play heavy defense on our scoring partners. We also couldn’t guarantee we’d get a third partner who could help us in that scenario.
In retrospect, picking 2791 or 3419 was a better pick to win the regional with, as we could have gotten either 3624 or 4203 as our third robot and had another robot scoring high goals or low goals to guarantee the capture, even under defense. However there was a chance we may have lost to 20 in semifinals, losing us our championship berth.
Picking 20 was really safe bet, and picking 229 as our third also seemed like the safe bet as well. In retrospect, had we known about 229’s drive issues, we could have selected 4203 instead, who could score for us or play defense as well. I think with 4203, we could have had a good shot of winning the event, despite having 20 scoring mostly low goals.
Tldr; a higher risk strategy could have won us the event, however guaranteeing a trip to championships by picking 20 instead was the more important task.
The next week was the Finger Lakes Regional. On practice day, we experimented with our outer works shot and found it considerably more consistent than our batter shot, so it became our main scoring tool in qualifications at Finger Lakes. We seeded first, and again had a choice of teams to select.
In retrospect, I don’t think we thought hard enough about picking at Finger Lakes, and assuming that our offensive barrage would be able to overcome any defensive action was too arrogant. Had things gone differently, it would have, however we failed to consider alternative strategies that could have been safer bets to win the event.
The top teams at Finger Lakes were:
- 20 – low goals or inconsistent high goals
- 639 – low goals and a climb
- 1511 – low goals and a climb
- 2791 – high goals from the batter and outer works
- 3015 – high goals from space
- 3044 – high goals from. The outer works from a very low release point
The idea we came to was that since the next three seeded robots after us were low goal machines, picking any high goal machine we wanted would leave us as the only alliance with two competent high goal shooters. Of the high goal shooters, 2791 had been killing it, they shot from two relatively safe locations, and they had a crazy consistent autonomous shot.
However, selecting any robot would still keep other alliances from having two competent high goal shooters.
In addition, we discussed, for example, how easy it was to block 3044’s low release shot, but we never built anything to be ready to block those shots. All the high goal shooters at the event were defendable with a blocker, and we failed to have one ready to go.
In retrospect, perhaps we should have selected 20 as our first selection instead, or had a ready-built blocker to attach to our third. Maybe our third selection should have been a more defense-focused robot with a climb, like 3951 or 174, instead of the risky offense pick of 2383.
All of this is solely with the benefit of hindsight, and had things gone differently, we could have won the event with the alliance we had. Or maybe if we made a different decision, we’d have been wishing we picked 2791 and 2383. It’s hard to say.
Between FLR and the championship, we made some add-ons and planned some changes, but the practice robot was just a drivetrain, so we had difficulty tuning our shot during that time, which would have been the most helpful thing.
We developed a 118-style harpoon climber, and produced a few more we planned to cheesecake on partners if we needed to.
Unfortunately this did not pan out as planned. The shooter was having issues with arm sag, the climber cost us an important qualification match by ending up too far outside our robot, and autonomous never quite worked right. In addition I wasn’t at the championship event to help with these problems.
As a result, we were lucky to be selected as a backup robot for 971, 1323, and 193, and our Alliance made it to division finals, before losing to the powerful #1 seed.
The next few months were spent preparing for IRI. The main priority was to fix our shooting problems. Since our batter shot was always inconsistent, and our outer works shot was missing high and low due to arm sag, we decided to completely ditch the batter shot and focus on having a solid outer works shot. We moved the hard stop for the arm backwards, and made our main shooting position be the arm shooting backwards from the Outer Works. In addition, we worked on autonomous, a new, lighter and more effective collector, and a new climber.
As a result of these efforts, we were selected at IRI by the 3rd seed of 3620, 67, and 3683, and proceeded to fight our way to semifinals.
If we had to do 2016 over again, I’d have argued for a slightly higher release point during build season, I’d have argued for hard stops for the Outer Works shot much sooner, I’d have spent more time making scouting decisions for alliance selection, and I’d have made sure I could attend the championship event. Otherwise, I think 5254 made mostly the right choices this season for our team and our resources. I hope in 2017 we can keep up this momentum and produce another machine of this caliber, despite losing the founding students of the team.
Thanks for reading my blog. If you have any questions, don’t be afraid to comment here or message me on CD.