Our 2024-25 training program can be found at THIS LINK, it covers important things ranging from basic Kotlin to robot control systems. We no longer use Kotlin. Find the updated training below.
Note: this training is in a draft phase and still needs work before it is ready to be taught. Notably, code formatting is terrible.
At the end of the ~9 weeks training period:
Rookie students should be prepared to meaningfully contribute (writing code) to mechanisms on the robot
Returning software team members should be prepared to meaningfully contribute (writing code) to all of the robot code and other adjacent tools and processes
All students should feel confident in their ability to design the control systems of a robot and understand how the software of the REBUILT robot works.
Rookie students should…
be comfortable with the syntax of the Java programming language
be able to write a complete subsystem of a basic motor and sensor based mechanism (and the familiarity with wpilib required to do that)
be able to describe how every subsystem and command of the robot works
have been introduced to basic control systems (such as P, PI, PD, PID, duty-cycle, feed-forward) and how/when they are used
have basic experience with building and deploying robot code to a peanut bot from VS Code w/ WPILib on a team laptop
have a basic understanding of how software fits into FRC more broadly
be able to read code and pull requests on GitHub and use basic version control (fetch, pull, push, commit) within VS Code
Returning members should…
all of the above
be able to write all parts of the robot code (and thus be familiar with wpilib and other libraries) and explain how all parts of the robot code works
be familiar and proficient with tools and processes such as path planning, tuning a control systems parameters, rev hardware client, etc. etc.
have deep familiarity with basic control systems and where to apply them
be comfortable with setting up a Windows laptop from scratch so that it can be used to contribute to the robot
be able to create and use Github pull requests and use branches effectively in git. They should also have an understanding of what a merge conflict is and how to go about resolving it. Advanced git skills is not a goal.
have some experience with the debugging and tuning process of programming a robot
https://github.com/HighlanderRobotics/Highlanders-Training/tree/main
https://docs.wpilib.org/en/stable/