This repository contains the code for a basic robot that is capable of performing a variety of tasks. The robot is designed using Java and the WPILib library, and it is built using Gradle.
-
Shooting: The robot is equipped with a shooting mechanism, implemented in the
Shooter
class. The shooting calculations are handled by theShooterCalc
class. -
Climbing: The robot has a climbing feature, implemented in the
Climb
class. -
Elevator: The robot uses an elevator mechanism powered by Neos. The details of this feature are not currently available in the workspace.
-
Intake: The robot has an Intake subsystem, implemented in the
Intake
class. -
Indexer: The robot has an Indexer subsystem, implemented in the
Indexer
class. -
Limelight: The robot uses a Limelight for vision processing. The details of this feature are implemented in the
Limelight
class.
Auto paths are broken into components to be followed bit by bit, which means that they can later be created dynamically as a modular system
Just because we are on the move doesn't mean we have to miss!
Using the position of the bot, we can auto-align to the various chains on the field to get keep the bot level when we lift ourselves!
With some cool math, we can see where AprilTags would be on the field even if we are in sim!
This allows us to fine tune where the optimal camera position is for the bot so that we can see the most tags possible (for a kalman filter with main bot pose)
With decision-making, we are able to follow dynamic autos that can be based on if our camera can see an object or not! This is pretty stellar *The robot only goes to the note if the camera can see it, which can be simulated with a controller in simulation by holding 'x'. If it cannot see an object, it will skip over the location.
Keep in mind this project requires NetworkTables to run, but if you would like to run it in simulation you can do so by launching the newly installed WPIlib VSCode (from running the .bat file) and pressing CTRL+SHIFT+P and typing "simulate robot code"