This is the robot code for FRC Team 316's 2014 robot, SAM XV. It is released under a 2-clause BSD license, detailed in LICENSE.md.
Vision Code: https://github.com/LuNaTeCs-316/LuNaCV
Our code is structured using a custom subsystem pattern based on the
IterativeRobot base class. Teleop mode is managed by the
TeleopControl class, and we have a variety of autonomous modes to choose from.
This package contains all of the subsystem classes. Each subsystem (Drivetrain, Pickup, and Shooter) implements the Subsystem interface. They follow the singleton pattern and each subsystem manages its own shared instance.
This package contains utility and helper classes such as a timer class, an Xbox controller wrapper class, a logger and more.
This package contains all classes related to autonomous mode. All autonomous modes extend the abstract base class
AutonomousMode. Most autonomous modes are based on finite state machines:
- LowGoalAutonomous: Simplest autonomous mode. Drive backwards and score the ball in the low goal
- HighGoalAutonomous: Score a single ball in the high goal. Uses the vision data to score when the goal is hot.
- TwoBallAutonomous: Drive forwards and score two balls in the high goal. Does not worry whether the goal is hot or not.
- StationaryTwoBallAutonomous: Score two balls in the high goal without moving, and then drive forwards.