Skip to content

Commit 1137b31

Browse files
ShooterIOSim frist updates
1 parent c20e431 commit 1137b31

5 files changed

Lines changed: 78 additions & 16 deletions

File tree

0 Bytes
Binary file not shown.

bin/main/frc/robot/Robot.class

1.66 KB
Binary file not shown.

src/main/java/frc/robot/subsystems/Shooter/ShooterConstants.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,7 @@ public class ShooterConstants {
88
public static final double MAX_VELOCITY = 5000.0;
99
public static final double MAX_ACCELERATION = 3000.0;
1010

11+
public static double flywheelReduction = 1.0; // Gear reduction ratio
12+
public static double momentOfInertia = 0.1; // Moment of inertia of the flywheel
13+
1114
}
Lines changed: 75 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,78 @@
11
package frc.robot.subsystems.Shooter;
22

3-
public class ShooterIOSim {
4-
3+
4+
5+
import edu.wpi.first.math.MathUtil;
6+
import edu.wpi.first.math.controller.ProfiledPIDController;
7+
import edu.wpi.first.math.controller.SimpleMotorFeedforward;
8+
import edu.wpi.first.math.system.plant.DCMotor;
9+
import edu.wpi.first.math.trajectory.TrapezoidProfile;
10+
import edu.wpi.first.wpilibj.simulation.FlywheelSim;
11+
12+
13+
import edu.wpi.first.math.util.Units;
14+
15+
public class ShooterIOSim implements ShooterIO {
16+
public void updateInputs(ShooterIOInputs inputs) {
17+
leftSim.update(0.020);
18+
rightSim.update(0.020);
19+
//need to figure out simpler way for if statements (verbose site)
20+
}
21+
private double leftAppliedVolts = 0.0;
22+
private double rightAppliedVolts = 0.0;
23+
24+
private Double leftSetpointRPM = null;
25+
private Double rightSetpointRPM = null;
26+
27+
28+
private ProfiledPIDController pidController = new ProfiledPIDController(
29+
ShooterConstants.kP,
30+
ShooterConstants.kI,
31+
ShooterConstants.kD,
32+
new TrapezoidProfile.Constraints(
33+
ShooterConstants.MAX_VELOCITY,
34+
ShooterConstants.MAX_ACCELERATION
35+
)
36+
);
37+
38+
FlywheelSim rightSim = new FlywheelSim(null, DCMotor.getNeoVortex(1), 6.7);
39+
FlywheelSim leftSim = new FlywheelSim(null, DCMotor.getNeoVortex(1), 6.7);
40+
41+
private SimpleMotorFeedforward leftFF = new SimpleMotorFeedforward(0.0, 0.0, 0.0);
42+
private SimpleMotorFeedforward rightFF = new SimpleMotorFeedforward(0.0, 0.0, 0.0);
43+
44+
45+
@Override
46+
public void setFeedForwardGains(double kS, double kV, double kA) {
47+
leftFF = new SimpleMotorFeedforward(kS, kV, kA);
48+
rightFF = new SimpleMotorFeedforward(kS, kV, kA);
49+
}
50+
51+
@Override
52+
public void setVoltage(double voltage) {
53+
rightSetpointRPM = null;
54+
rightAppliedVolts = MathUtil.clamp(voltage, -12.0, 12.0);
55+
rightSim.setInputVoltage(rightAppliedVolts);
56+
57+
leftSetpointRPM = null;
58+
leftAppliedVolts = MathUtil.clamp(voltage, -12.0, 12.0);
59+
leftSim.setInputVoltage(rightAppliedVolts);
60+
}
61+
62+
@Override
63+
public void setPIDGains(double kP, double kI, double kD) {
64+
pidController.setP(kP);
65+
pidController.setI(kI);
66+
pidController.setD(kD);
67+
}
68+
69+
@Override
70+
public void setRPM(double rpm){
71+
leftSetpointRPM = rpm;
72+
rightSetpointRPM = rpm;
73+
//is it really this simple??
74+
}
75+
76+
77+
578
}

src/main/java/frc/robot/subsystems/Shooter/ShooterIOSparkMax.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -74,20 +74,6 @@ public void setVoltage(double voltage) {
7474
leftMotor.setVoltage(voltage);
7575
rightMotor.setVoltage(voltage);
7676
}
77-
@Override
78-
public void setP(double kP) {
79-
pidController.setP(kP);
80-
}
81-
82-
@Override
83-
public void setI(double kI) {
84-
pidController.setI(kI);
85-
}
86-
87-
@Override
88-
public void setD(double kD) {
89-
pidController.setD(kD);
90-
}
9177

9278
@Override
9379
public void setPIDGains(double kP, double kI, double kD) {

0 commit comments

Comments
 (0)