Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/intake' into intake
Browse files Browse the repository at this point in the history
  • Loading branch information
GearBoxFox committed Jan 18, 2025
2 parents 5bb1baa + 259a252 commit 79e143b
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 31 deletions.
10 changes: 5 additions & 5 deletions src/main/java/frc/robot/BuildConstants.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ public final class BuildConstants {
public static final String MAVEN_GROUP = "";
public static final String MAVEN_NAME = "2025Reefscape";
public static final String VERSION = "unspecified";
public static final int GIT_REVISION = 46;
public static final String GIT_SHA = "fc2146e65da02c09a5d8de6e201781e9c70bf442";
public static final String GIT_DATE = "2025-01-18 12:43:04 EST";
public static final int GIT_REVISION = 47;
public static final String GIT_SHA = "fc378f95b18eaf90917498dff52fc7476ec4cfe0";
public static final String GIT_DATE = "2025-01-18 13:01:14 EST";
public static final String GIT_BRANCH = "intake";
public static final String BUILD_DATE = "2025-01-18 12:55:56 EST";
public static final long BUILD_UNIX_TIME = 1737222956184L;
public static final String BUILD_DATE = "2025-01-18 14:49:05 EST";
public static final long BUILD_UNIX_TIME = 1737229745383L;
public static final int DIRTY = 1;

private BuildConstants(){}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

public class IntakeConstants {
public static final int INTAKE_ID = 17;
public static final int PIVOT_ID = 18;
public static final int PIVOT_ID = 16;
public static final double INTAKE_KP = 0.0;
public static final double INTAKE_KI = 0.0;
public static final double INTAKE_KD = 0.0;
Expand All @@ -11,7 +11,7 @@ public class IntakeConstants {
public static final double PIVOT_KD = 0.0;
public static final double INTAKE_OFFSET = 0.0;
public static final double PIVOT_OFFSET = 0.0;
public static final double LOOP_PERIOD_SECS = 10.0;
public static final double LOOP_PERIOD_SECS = .02;
public static final double INTAKE_GEAR_RATIO = 10.0;
public static final double PIVOT_GEAR_RATIO = 10.0;

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/frc/robot/subsystems/intake/IntakeIO.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ public interface IntakeIO {
class IntakeIOInputs {
//position, voltage, current draw, and any other important logging data
public Rotation2d pivotPosititon = new Rotation2d();
public double intakeVelocity = 0.0;
public double pivotVelocity = 0.0;
public double pivotVoltage = 0.0;
public double intakeVoltage = 0.0;
public double pivotCurrentDraw = 0.0;
public double intakeCurrentDraw = 0.0;
public double pivotAppliedVolts = 0.0;
public double intakeAppliedVolts = 0.0;
public double pivotTemperature = 0.0;
public double intakeTemperature = 0.0;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public IntakeIOProto() {

@Override
public void updateInputs(IntakeIOInputsAutoLogged inputs) {
inputs.intakeAppliedVolts = intake.getMotorVoltage().getValueAsDouble();
inputs.intakeVoltage = intake.getMotorVoltage().getValueAsDouble();
inputs.intakeCurrentDraw = intake.getSupplyCurrent().getValueAsDouble();
}

Expand Down
22 changes: 19 additions & 3 deletions src/main/java/frc/robot/subsystems/intake/IntakeIOSimulation.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@
import edu.wpi.first.math.geometry.Rotation2d;
import edu.wpi.first.math.system.plant.DCMotor;
import edu.wpi.first.math.system.plant.LinearSystemId;
import edu.wpi.first.math.util.Units;
import edu.wpi.first.wpilibj.RobotController;
import edu.wpi.first.wpilibj.simulation.DCMotorSim;
import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;

public class IntakeIOSimulation implements IntakeIO {
private final TalonFX intake = new TalonFX(IntakeConstants.INTAKE_ID);
Expand All @@ -30,14 +32,22 @@ public class IntakeIOSimulation implements IntakeIO {
public void updateInputs(IntakeIOInputsAutoLogged inputs) {
intakeSimState.setSupplyVoltage(RobotController.getBatteryVoltage());
pivotSimState.setSupplyVoltage(RobotController.getBatteryVoltage());
// update simulation
intakeMotorSim.update(IntakeConstants.LOOP_PERIOD_SECS);
pivotMotorSim.update(IntakeConstants.LOOP_PERIOD_SECS);

// update inputs
intakeMotorSim.setInputVoltage(intakeSimState.getMotorVoltage());
pivotMotorSim.setInputVoltage(pivotSimState.getMotorVoltage());

// update simulation
intakeMotorSim.update(IntakeConstants.LOOP_PERIOD_SECS);
pivotMotorSim.update(IntakeConstants.LOOP_PERIOD_SECS);
intakeSimState.setRawRotorPosition(
Units.radiansToRotations(intakeMotorSim.getAngularPositionRad()));
intakeSimState.setRotorVelocity(
Units.radiansToRotations(intakeMotorSim.getAngularVelocityRadPerSec()));
pivotSimState.setRawRotorPosition(
Units.radiansToRotations(pivotMotorSim.getAngularPositionRad()));
pivotSimState.setRotorVelocity(
Units.radiansToRotations(pivotMotorSim.getAngularVelocityRadPerSec()));

//inputs.intakeVoltage = in
inputs.pivotPosititon = Rotation2d.fromRotations(pivot.getPosition().getValueAsDouble());
Expand All @@ -47,5 +57,11 @@ public void updateInputs(IntakeIOInputsAutoLogged inputs) {
inputs.pivotCurrentDraw = pivot.getSupplyCurrent().getValueAsDouble();
inputs.intakeTemperature = intake.getDeviceTemp().getValueAsDouble();
inputs.pivotTemperature = pivot.getDeviceTemp().getValueAsDouble();
inputs.intakeVelocity = intake.getVelocity().getValueAsDouble();
inputs.pivotVelocity = pivot.getVelocity().getValueAsDouble();
}
@Override
public void setMotorVoltageIntake(double voltage) {
intake.setVoltage(voltage);
}
}
33 changes: 15 additions & 18 deletions src/main/java/frc/robot/subsystems/intake/IntakeIOTalon.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,7 @@
import com.ctre.phoenix6.controls.NeutralOut;
import com.ctre.phoenix6.controls.PositionVoltage;
import com.ctre.phoenix6.hardware.TalonFX;
import edu.wpi.first.units.measure.Angle;
import edu.wpi.first.units.measure.Current;
import edu.wpi.first.units.measure.Temperature;
import edu.wpi.first.units.measure.Voltage;
import edu.wpi.first.units.measure.*;

//Current limiting config - 20 amps on both supply and stater
public class IntakeIOTalon implements IntakeIO {
Expand All @@ -21,13 +18,12 @@ public class IntakeIOTalon implements IntakeIO {
private final StatusSignal<Voltage> pivotVoltageSignal;
private final StatusSignal<Current> intakeDrawSignal;
private final StatusSignal<Current> pivotDrawSignal;
private final StatusSignal<Voltage> intakeAppliedVoltsSignal;
private final StatusSignal<Voltage> pivotAppliedVoltsSignal;
private final StatusSignal<Temperature> intakeTemperatureSignal;
private final StatusSignal<Temperature> pivotTemperatureSignal;
private final StatusSignal<AngularVelocity> intakeVelocitySignal;
private final StatusSignal<AngularVelocity> pivotVelocitySignal;
private final NeutralOut stopRequest;


public IntakeIOTalon() {
intake = new TalonFX(IntakeConstants.INTAKE_ID);
pivot = new TalonFX(IntakeConstants.PIVOT_ID);
Expand Down Expand Up @@ -69,21 +65,22 @@ public IntakeIOTalon() {
pivotVoltageSignal = pivot.getMotorVoltage();
intakeDrawSignal = intake.getSupplyCurrent();
pivotDrawSignal = pivot.getSupplyCurrent();
intakeAppliedVoltsSignal = intake.getSupplyVoltage();
pivotAppliedVoltsSignal = pivot.getSupplyVoltage();
intakeTemperatureSignal = intake.getDeviceTemp();
pivotTemperatureSignal = pivot.getDeviceTemp();
intakeVelocitySignal = intake.getVelocity();
pivotVelocitySignal = pivot.getVelocity();


BaseStatusSignal.setUpdateFrequencyForAll(50.0,
pivotPositionSignal,
intakeVoltageSignal,
pivotVoltageSignal,
intakeDrawSignal,
pivotDrawSignal,
intakeAppliedVoltsSignal,
pivotAppliedVoltsSignal,
intakeTemperatureSignal,
pivotTemperatureSignal);
pivotTemperatureSignal,
intakeVelocitySignal,
pivotVelocitySignal);


intake.optimizeBusUtilization();
Expand All @@ -97,20 +94,20 @@ public void updateInputs (IntakeIOInputsAutoLogged inputs){
pivotVoltageSignal,
intakeDrawSignal,
pivotDrawSignal,
intakeAppliedVoltsSignal,
pivotAppliedVoltsSignal,
intakeTemperatureSignal,
pivotTemperatureSignal
pivotTemperatureSignal,
intakeVelocitySignal,
pivotVelocitySignal
);
inputs.intakeVoltage = intakeVoltageSignal.refresh().getValueAsDouble();
inputs.pivotVoltage = pivotVoltageSignal.refresh().getValueAsDouble();
inputs.intakeCurrentDraw = intakeDrawSignal.refresh().getValueAsDouble();
inputs.pivotCurrentDraw = pivotDrawSignal.refresh().getValueAsDouble();
inputs.intakeAppliedVolts = intakeAppliedVoltsSignal.refresh().getValueAsDouble();
inputs.pivotAppliedVolts = pivotAppliedVoltsSignal.refresh().getValueAsDouble();
inputs.intakeTemperature = intakeTemperatureSignal.refresh().getValueAsDouble();
inputs.pivotTemperature = pivotTemperatureSignal.refresh().getValueAsDouble();
}
inputs.intakeVelocity = intakeVelocitySignal.refresh().getValueAsDouble();
inputs.pivotVelocity = pivotVelocitySignal.refresh().getValueAsDouble();
}

@Override
public void setMotorVoltageIntake(double voltage) {
Expand Down

0 comments on commit 79e143b

Please sign in to comment.