A repository for the Rebuilt 2026 FRC game season.
Autonomous-capable double shooter bot for the 2026 REBUILT game.
- Overview
- Hardware
- Software Architecture
- Subsystems
- Commands
- Autonomous Modes
- Controls
- Getting Started
- Building & Deploying
- Contributing
- License
| Field | Details |
|---|---|
| Team Number | 4141 |
| Robot Name | Artiller-E |
| Season / Game | 2026 — REBUILT |
| Language | Java |
| Framework | WPILib Command-Based |
| Build System | Gradle |
- Type: Swerve
- Motors: 8x Falcon 500
- Motor Controllers: TalonFx
- Gyro: Pigeon 2
| Mechanism | Motors | Controller | Sensors |
|---|---|---|---|
| Shooter | NEO Vortex x 2 | SPARK Flex | None |
| Kicker | NEO Vortex x 1 | SPARK Flex | None |
| Hopper | NEO Vortex x 1 | SPARK Flex | None |
| Intake | NEO Vortex x 3 | SPARK Flex | Through-bore encoder x 2 |
| Device | CAN ID |
|---|---|
| Gyro (Pigeon 2) | 0 |
| Front Left Drive | 8 |
| Front Left Turn | 9 |
| Front Right Drive | 10 |
| Front Right Turn | 11 |
| Rear Left Drive | 12 |
| Rear Left Turn | 13 |
| Rear Right Drive | 14 |
| Rear Right Turn | 15 |
| Intake Right | 16 |
| Intake Left | 17 |
| Intake Spinner | 18 |
| Shooter Right | 19 |
| Shooter Left | 20 |
| Kicker | 21 |
| Hopper | 22 |
This robot uses the WPILib Command-Based framework.
src/main/java/frc/robot/
├── Main.java
├── Robot.java # Entry point, lifecycle hooks
├── RobotContainer.java # Subsystem & command wiring, button bindings
├── Constants.java # All hardware constants and tuning values
├── commands/
│ ├── [ExampleCommand].java
│ └── autos/
│ └── [ExampleAuto].java
└── subsystems/
├── CommandSwerveDrivetrain.java
├── Shooter.java
├── Hopper.java
└── Intake.java
- Description: Controls robot movement using swerve.
- Default Command:
DefaultDriveCommand— joystick field-relative drive. - Key Methods:
drive(double xSpeed, double ySpeed, double rot)— drives the robot.resetOdometry(Pose2d pose)— resets pose estimate.getPose()— returns currentPose2d.
- Description: Controls the arm for [game piece] manipulation.
- Default Command: Stops all motors.
- Key Methods:
setAngle(double degrees)— moves arm to target angle.getAngle()— returns current arm angle.
- Description: Controls the rollers on the hopper to feed the shooter.
- Default Command: Stops all motors.
- Key Methods:
setAngle(double degrees)— moves arm to target angle.getAngle()— returns current arm angle.
- Description: Intakes game pieces.
- Default Command: Stops spinner and returns to stowed position.
- Key Methods:
intake()— runs intake inward.outtake()— runs intake outward.stop()— stops intake.
Add additional subsystems as needed.
| Command | Description | Used By |
|---|---|---|
DefaultDriveCommand |
Joystick-driven teleop driving | DriveSubsystem |
IntakeCommand |
Runs intake while held | Operator controller |
ArmToPositionCommand |
Moves arm to a preset angle | Operator controller |
AutoBalanceCommand |
Auto-levels on the charging station | Auto / teleop |
DriveToTargetCommand |
Vision-assisted alignment to a target | Auto / teleop |
Add or remove commands to match your robot.
Autonomous routines are selected via Shuffleboard / SmartDashboard using a SendableChooser.
| Mode Name | Description |
|---|---|
DoNothingAuto |
Robot does not move (default/fallback). |
TaxiAuto |
Drives out of the starting zone. |
OnePieceAuto |
Scores one preloaded game piece and taxis. |
TwoPieceAuto |
Scores preload, intakes, and scores a second piece. |
[CustomAuto] |
[Description] |
Autos are implemented using WPILib's Command Composition and/or PathPlanner.
| Input | Action |
|---|---|
| Left Stick X/Y | Translate (field-relative) |
| Right Stick X | Rotate |
| Left Bumper | Slow mode (50% speed) |
| Right Bumper | Turbo mode (100% speed) |
| Back Button | Reset field-relative heading |
| Start Button | Reset odometry |
| A Button | Auto-align to target |
| Input | Action |
|---|---|
| Left Stick Y | Manual arm control |
| Right Trigger | Intake |
| Left Trigger | Outtake |
| A Button | Arm to floor position |
| B Button | Arm to mid position |
| Y Button | Arm to high position |
| X Button | Arm to stow position |
| Left Bumper | Climber up |
| Right Bumper | Climber down |
- WPILib 2026 installed
- FRC Game Tools installed
- Java 17+
- Git
git clone https://github.com/[ORG]/[REPO_NAME].git
cd [REPO_NAME]- Open VS Code.
- Open the cloned folder: File → Open Folder.
- VS Code should detect the WPILib project automatically.
./gradlew buildEnsure the computer is connected to the robot's network (radio or tether), then:
./gradlew deploy./gradlew simulateJava- Fork the repo and create a feature branch:
git checkout -b feature/my-feature - Commit your changes with clear messages:
git commit -m "Add: arm position presets" - Push to your branch:
git push origin feature/my-feature - Open a Pull Request and request review from a lead.
- Follow WPILib Java conventions.
- All constants go in
Constants.java. - Every subsystem and command should have a Javadoc summary comment.
- Avoid
magic numbers— use named constants.
This project is licensed under the MIT License — see the LICENSE file for details.
Go Monarch Robotics!