Welcome to the repository for Flagship 3140's Jackbot code for the 2024 FRC season. This README provides an overview of our robot, its subsystems, and how to use this codebase.
Our robot, Jackbot, is designed to perform the following actions:
- Pick up notes from the ground
- Pick up notes from the human player station
- Shoot notes into the speaker and amp
- Drive under the stage
Jackbot has the following subsystems:
- Arm
- Climber
- Shooter/Intake
- Drivetrain
During teleop, the player will control the robot to:
- Pick up notes on the ground on its side of the field
- Go across the field to pick up notes dropped by the human player
- Shoot notes into both the speaker and the amp until the endgame buzzer goes off
- Climb onto a chain (the stage), possibly climbing with another robot
To be determined.
The arm uses two motors to move up and down, which are configured as a group, allowing the intake/shooter subsystem to move to the ground to pick up the notes and move back up to shoot them.
Component ID | Interface | Connection | Role |
---|---|---|---|
Arm Motor 1 | CANSparkMax | CAN ID: | A motor for controlling the arm |
Arm Motor 2 | CANSparkMax | CAN ID: | A motor for controlling the arm |
Arm Encoder | [PutEncoderHere] | [PutPWMPortsHere] | An absolute encoder for sensing the arm angle |
The intake and shooter are both in one subsystem, connected to the top of the arm and using one motor. It picks up a ground note using 2 sets of wheels, then another set of wheels pushes the note into a shooter where it is then shot into the air through another set of wheels.
Component ID | Interface | Connection | Role |
---|---|---|---|
Intake Motor | CANSparkMax | CAN ID: | A motor for controlling the intake |
Shooter Motor | CANSparkMax | CAN ID: | A motor for controlling the shooter |
Shooter Motor | CANSparkMax | CAN ID: | A motor for controlling the shooter |
The climber is made up of two hooks that lift the robot off the ground in endgame.
Component ID | Interface | Connection | Role |
---|---|---|---|
Climber Motor Left | CANSparkMax | CAN ID: 14 | A motor for controlling the left climber |
Climber Motor Right | CANSparkMax | CAN ID: 15 | A motor for controlling the right climber |
Solenoid Left | Relay | Relay Port: 0 | A solenoid that is powered by a relay that locks the position of the left climber |
Solenoid Right | Relay | Relay Port: 1 | A solenoid that is powered by a relay that locks the position of the right climber |
This robot uses tank drive to move, and it includes 4 TalonSRX motors, white/80A durometer HiGRip wheels, and an 8.46:1 gear ratio.
Component ID | Interface | Connection | Role |
---|---|---|---|
Turn Motor Front Left | TalonSRX | CAN ID: | A motor and encoder for driving left |
Drive Motor Front Left | TalonSRX | CAN ID: | A motor and encoder for driving right |
To deploy and run this code on the robot, follow these steps:
- Open the project in your preferred IDE (we use WPIlib VSCode).
- Ensure that all dependencies are correctly installed and configured.
- Build the project to ensure there are no compilation errors.
- Deploy the code to your robot using your preferred deployment method (we use Ethernet).
- Test each subsystem to verify functionality.
If you would like to contribute to the robot code, please follow these guidelines:
- Do not code directly in the main branch, nor commit to main.
- Make your changes and ensure that the code compiles without errors.
- Test your changes thoroughly.
- Submit a pull request, describing the changes you've made and any relevant information.
Note: All commits are made by Grace (GP) or Brogan (BO), I keep forgetting to write my initials sorry...