Programming Team
We write programs to control the robot. They are compiled and uploaded to the robot before the competition.
Most years there is a 15 second fully autonomous period where we need to control the robot in code, then a remote controlled
period where we allowed to use a controller.
Code for previous years is stored on GitHub.
Getting setup with WPILIB
WpiLib is a control library made by Warcestor Polytechnic Institute (WPI). They have a pretty good site with documentation on how to use this from Java
here. We will need to follow the step in there to get our robot code started.
Terms and Abbreviations
- FRC - First Robotics Competition
- Java - The programming language we are using to write code for the robot.
- JVM - Java Virtual Machine - This runs jars which contain our compiled code.
- RoboRio - A small Linux computer that controls our robot.
- Gradle - A program that gathers libraries we need, compiles our code, and uploads them to the robot.
- IDE - Integrated Development Environment - A text editor with additional features to help programming. We will use either Intellij Community Edition or Visual Studio Code
Advanced Useful Concepts
There are a ton of advanced topics we can cover depending on what we try to do.
- Command Pattern This allows us to encode instructions as objects. It allows
us to program commands that can be chained together to do more complex actions.
- Finite State Machines - When a mechanism
becomes more complex with multiple states and transitions between them, we can represent it in code with an FSM.
- PID Loop - Used to get to and hold a position, speed, or angle.
- Pathfinding - Can be used to plan a path between two points.
- Planning - Allows us to use a list of actions to modify a complex world state to reach a goal.
- Vision - Allows the robot to see and aim at targets.
Build Team