Summary

  • Mentor students and conduct workshops on effective robot design and strategy.
  • Managed a team of 10, designed and built a robot in OnShape for competitions.
  • Implemented odometry and programmed path planning for autonomous routines in Java.

FIRST Tech Challenge

The FIRST Tech Challenge is a robotics comepetition where teams of 15 design a robot to compete in a game that changes every year. Games include shooting rings, loading game pieces into a box, and stacking blocks. Another aspect of the competition is outreach where teams raise STEM awareness in their communities and uphold the values of “gracious professionalism”.

Programming

Part of my rationale behind joining the team was to recreate what I had taken for granted in FRC. One of these things was the command-based paradigm which is a way of organizing code for the robot into subsystems and their respective commands. This makes it easier for newer studens to understand code since we care more about what needs to be done rather than how.

One of my earliest major projects beyond the robot was trying to recreate this paradigm in FTC using the built-in timer and referring to the command scheduler that is used in WPILib. Later I found FTCLib which had already been under development and converted to using this for future robot codebases.

Another project our team took on was using dead-wheel odometry for localization. A combination of a relatively long autonomous period with the use of a mecanum drivetrain made it impractical to use the wheel encoders to determine the position of the robot due to slippage. Our system was based on that of Wizards.exe. For path planning, we used a library called Road Runner that utilizes PID and feedforward controllers for each of the drive motors along with PID controllers for overall path following. The dead-wheel subsystem was my first in-depth experience with control systems and is what sparked my interest in control systems.

Outreach

The year I became a captain of the team, we decided to make a nonprofit. At the time, our team would rely on our high school’s FRC team to receive any grands we were awarded and then deposit the check with a parent on the team. However, this made it hard to keep track of any funds we got and was not in line with the community-based nature of our team. Creating a nonprofit allowed us to apply for more grants that we were previously ineligible for and streamlined the process of receiving payments for our team’s summer camps.

Mentoring

Something I struggled with as a captain was transferring knowledge to the other members of the team. Given that the rest of the team was primarily students interested in outreach or with no technical background, this issue was exacerbated the year I left. Because of these circumstances, as a mentor I wanted to make sure I could create a sustainable way to transfer knowledge between the different students on the team. Part of this was creating workshops to teach the students how to program the basic subsystems of the robot and then if time permitted, enhance this with control loops.

Beyond programming help, I try to reinforce the ideas of strategic design, something that I took to heart after reading JVN’s blog and watching Karthik’s workshops. What I found is that students tend to complicate solutions to problems that have already been addressed for both FTC and FRC games. I enjoy finding relations between games and seeing the advantages of various designs that proved effective while maintaining simplicity.