Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,19 @@ jobs:
# Runs a single command using the runners shell
- name: Compile and run tests on robot code
run: ./gradlew build

# Check code formatting with Spotless
spotless:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 17
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Check code formatting
run: ./gradlew spotlessCheck
9 changes: 4 additions & 5 deletions src/main/java/frc/robot/Constants.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,19 @@

package frc.robot;

import static edu.wpi.first.units.Units.Inches;
import static edu.wpi.first.units.Units.Volts;
import static edu.wpi.first.units.Units.Inches;
import static edu.wpi.first.units.Units.Meters;
import static edu.wpi.first.units.Units.Rotations;
import static edu.wpi.first.units.Units.RotationsPerSecond;
import static edu.wpi.first.units.Units.RotationsPerSecondPerSecond;
import static edu.wpi.first.units.Units.Second;
import static edu.wpi.first.units.Units.Volts;

import edu.wpi.first.apriltag.AprilTagFieldLayout;
import edu.wpi.first.apriltag.AprilTagFields;
import edu.wpi.first.math.geometry.Translation2d;
import edu.wpi.first.math.geometry.Translation3d;
import edu.wpi.first.units.AngularAccelerationUnit;
import edu.wpi.first.units.AngularVelocityUnit;
import edu.wpi.first.units.measure.Angle;
import edu.wpi.first.units.measure.AngularAcceleration;
import edu.wpi.first.units.measure.AngularVelocity;
Expand Down Expand Up @@ -97,7 +95,8 @@ public class HopperConstants {
public static final Distance DRUM_RADIUS = Inches.of(2.0);
public static final DistanceAngleConverter CONVERTER = new DistanceAngleConverter(DRUM_RADIUS);
public static final AngularVelocity ANGULAR_VELOCITY = RotationsPerSecond.of(1);
public static final AngularAcceleration ANGULAR_ACCELERATION = RotationsPerSecondPerSecond.of(1);
public static final AngularAcceleration ANGULAR_ACCELERATION =
RotationsPerSecondPerSecond.of(1);
}

public class Ports {
Expand Down Expand Up @@ -152,7 +151,7 @@ public class FeederConstants {
public static final AngularVelocity FEED_SPEED = RotationsPerSecond.of(0.0);
public static final AngularAcceleration FEED_ACCELERATION = RotationsPerSecondPerSecond.of(0.0);
}

public class ClimberConstants {
public static final Distance TOLERANCE = Inches.of(0.1);
public static final double GEARING = (5.0 / 1.0);
Expand Down
5 changes: 2 additions & 3 deletions src/main/java/frc/robot/subsystems/LEDs/LEDs.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ public LEDs(LightsIO io) {
_io = io;
}

@Override
public void periodic() {}

@Override
public void periodic() {}
}
15 changes: 6 additions & 9 deletions src/main/java/frc/robot/subsystems/Vision/Vision.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
package frc.robot.subsystems.Vision;

import edu.wpi.first.wpilibj2.command.SubsystemBase;
import frc.robot.Constants;
import frc.lib.W8.io.vision.VisionIO;

public class Vision extends SubsystemBase {
private final VisionIO _io;
private final VisionIO _io;

public Vision(VisionIO io) {
_io = io;
}
public Vision(VisionIO io) {
_io = io;
}

@Override
public void periodic() {

}
@Override
public void periodic() {}
}
41 changes: 21 additions & 20 deletions src/main/java/frc/robot/subsystems/hopper/Hopper.java
Original file line number Diff line number Diff line change
@@ -1,43 +1,44 @@
package frc.robot.subsystems.hopper;

import static edu.wpi.first.units.Units.*;
import static edu.wpi.first.units.Units.Inches;

import edu.wpi.first.units.measure.*;
import edu.wpi.first.units.measure.Distance;
import edu.wpi.first.wpilibj2.command.SubsystemBase;
import frc.lib.W8.io.motor.MotorIO.PIDSlot;
import frc.lib.W8.mechanisms.flywheel.FlywheelMechanism;
import frc.robot.Constants;
import frc.robot.Constants.HopperConstants;

import static edu.wpi.first.units.Units.*;

import edu.wpi.first.units.measure.*;
import frc.robot.Constants.HopperConstants.*;

public class Hopper extends SubsystemBase {
private FlywheelMechanism _io;
private FlywheelMechanism _io;

public enum State
{
OFF (RevolutionsPerSecond.of(0.0)),
FORWARD_SLOW (RevolutionsPerSecond.of(HopperConstants.SLOW_SPEED_RPM/60)),
FORWARD_FAST (RevolutionsPerSecond.of(HopperConstants.FAST_SPEED_RPM/60)),
REVERSE (RevolutionsPerSecond.of(HopperConstants.REVERSE_SPEED_RPM/60));
public enum State {
OFF(RevolutionsPerSecond.of(0.0)),
FORWARD_SLOW(RevolutionsPerSecond.of(HopperConstants.SLOW_SPEED_RPM / 60)),
FORWARD_FAST(RevolutionsPerSecond.of(HopperConstants.FAST_SPEED_RPM / 60)),
REVERSE(RevolutionsPerSecond.of(HopperConstants.REVERSE_SPEED_RPM / 60));

private final AngularVelocity _stateVelocity;
private final AngularVelocity _stateVelocity;

private State(AngularVelocity stateVelocity) {
_stateVelocity = stateVelocity;
}
private State(AngularVelocity stateVelocity) {
_stateVelocity = stateVelocity;
}
}

public Hopper(FlywheelMechanism io) {
_io = io;
}
public Hopper(FlywheelMechanism io) {
_io = io;
}

public void setGoal(double position) {
Distance positionInches = Inches.of(position);
_io.runPosition(HopperConstants.CONVERTER.toAngle(positionInches), HopperConstants.ANGULAR_VELOCITY, HopperConstants.ANGULAR_ACCELERATION, null, PIDSlot.SLOT_0);
_io.runPosition(
HopperConstants.CONVERTER.toAngle(positionInches),
HopperConstants.ANGULAR_VELOCITY,
HopperConstants.ANGULAR_ACCELERATION,
null,
PIDSlot.SLOT_0);
}

@Override
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/frc/robot/subsystems/intake/Intake.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ public void setVelocity(double velocity) {
}

public AngularVelocity getVelocity() {
return _io.getVelocity();
return _rollerIO.getVelocity();
}

public Angle getPosition() {
return _io.getPosition();
return _pivotIO.getPosition();
}

public void stop() {
Expand Down
38 changes: 14 additions & 24 deletions src/main/java/frc/robot/subsystems/shooter/Shooter.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,13 @@

import static edu.wpi.first.units.Units.RotationsPerSecond;

import edu.wpi.first.units.Units;
import edu.wpi.first.units.measure.AngularVelocity;
import edu.wpi.first.wpilibj2.command.Command;
import edu.wpi.first.wpilibj2.command.Commands;
import edu.wpi.first.wpilibj2.command.SubsystemBase;
import frc.lib.W8.io.motor.MotorIO.PIDSlot;
import frc.lib.W8.mechanisms.flywheel.FlywheelMechanism;
import frc.robot.Constants.ShooterConstants;

import static edu.wpi.first.units.Units.Inches;
import static edu.wpi.first.units.Units.Meters;
import static edu.wpi.first.units.Units.Rotations;
import static edu.wpi.first.units.Units.RotationsPerSecond;
import static edu.wpi.first.units.Units.RotationsPerSecondPerSecond;
import static edu.wpi.first.units.Units.Second;
import edu.wpi.first.units.Units;
import edu.wpi.first.units.measure.AngularAcceleration;
import edu.wpi.first.units.measure.AngularVelocity;
import frc.robot.Constants.FeederConstants;
import frc.robot.Constants.ShooterConstants;

Expand Down Expand Up @@ -48,14 +38,15 @@ public void setFlywheelVelocity(double velocity) {
}

public enum State {
OFF(Units.RevolutionsPerSecond.of(0.0)),
IDLE(Units.RevolutionsPerSecond.of(ShooterConstants.IDLE_SPEED_RPM/60)),
SHOOT_FROM_HUB(Units.RevolutionsPerSecond.of(ShooterConstants.HUB_SPEED_RPM/60)),
SHOOT_FROM_TOWER(Units.RevolutionsPerSecond.of(ShooterConstants.TOWER_SPEED_RPM/60)),
SHOOT(Units.RevolutionsPerSecond.of(ShooterConstants.DEFAULT_SPEED_RPM/60)),
SHOOT_ON_MOVE(Units.RevolutionsPerSecond.of(ShooterConstants.DEFAULT_SPEED_RPM/60));
OFF(Units.RevolutionsPerSecond.of(0.0)),
IDLE(Units.RevolutionsPerSecond.of(ShooterConstants.IDLE_SPEED_RPM / 60)),
SHOOT_FROM_HUB(Units.RevolutionsPerSecond.of(ShooterConstants.HUB_SPEED_RPM / 60)),
SHOOT_FROM_TOWER(Units.RevolutionsPerSecond.of(ShooterConstants.TOWER_SPEED_RPM / 60)),
SHOOT(Units.RevolutionsPerSecond.of(ShooterConstants.DEFAULT_SPEED_RPM / 60)),
SHOOT_ON_MOVE(Units.RevolutionsPerSecond.of(ShooterConstants.DEFAULT_SPEED_RPM / 60));

private final AngularVelocity stateVelocity;

State(AngularVelocity stateVelocity) {
this.stateVelocity = stateVelocity;
}
Expand All @@ -72,18 +63,17 @@ public Command shoot(double velocity) {
() -> {
setFlywheelVelocity(velocity);
})
.until(
() -> flyAtVelocity())
.until(() -> flyAtVelocity())
.andThen(
() -> {
runFeeder();
})
.andThen(
()->{
setFlywheelVelocity(0);
});
() -> {
setFlywheelVelocity(0);
});
}

@Override
public void periodic() {}
}